【Hacker News搬运】英特尔8088处理器的指令预取电路:内部介绍
-
Title: The Intel 8088 processor's instruction prefetch circuitry: a look inside
英特尔8088处理器的指令预取电路:内部介绍
Text:
Url: https://www.righto.com/2024/03/8088-prefetch-circuitry.html
文章标题为《Intel 8088处理器的指令预取电路:内部揭秘》,由作者Ken Shirriff撰写,发布日期为2024年3月。文章主要讨论了Intel 8088微处理器中的指令预取电路,这是1979年推出的16位8086处理器的变体。8088处理器被IBM用于IBM PC(1981年),这是计算机历史上的一个关键点,导致了x86架构的主导地位持续至今。 文章详细介绍了8088处理器的工作原理,特别是其指令预取电路。处理器通过从内存中预取指令,可以在不需要等待相对较慢的内存的情况下执行它们。文章通过显微镜下的芯片照片,揭示了预取队列组件的关键功能块。文章还讨论了8088处理器与8086处理器之间的主要区别,包括数据总线的宽度,以及预取队列的大小。 文章还解释了预取如何影响8086和8088的设计,包括将处理器划分为处理内存访问的Bus Interface Unit(BIU)和执行指令的Execution Unit(EU)。文章还详细介绍了8088的指令预取队列的实现方式,包括队列寄存器和硬件指针。此外,文章还讨论了8088的"loader"电路,它解决了预取队列和指令解码器之间的同步问题。 最后,文章指出,尽管预取队列的电路相对简单,但它们占据了芯片相当大的部分。文章还提到,Intel使用模拟来确定8086和8088的最佳队列大小,平衡了预取的性能成本和收益。
Post by: matt_d
Comments:
h2odragon: > The 8086/8088 do not provide consistency ... self-modifying code can be used to determine the queue length, distinguishing the 8086 from the 8088 in software.<p>I sincerely doubt I was the first to work that out; but I remember being so incredibly happy when <i>I</i> figured that one out, when it solved a problem i had.<p>Cannot now recall why the difference was significant, something about installing different routines for bashing serial ports i think.
h2odragon: >;8086;8088不提供一致性。。。可以使用自修改代码来确定队列长度,从而区分软件中的8086和8088<p> 我真诚地怀疑我是第一个解决这个问题的人;但我记得当<I>我</I>发现这一点时,当它解决了我的一个问题时,我非常高兴<p> 现在想不起为什么差异很大了,我想是关于安装不同的例程来攻击串行端口。
jecel: A 4116 DRAM chip with a 250 ns access time would have a 500 ns cycle time, so could read or write 2 million words per second. The Acorn people called this a 2 MHz memory. You could have shorter cycle times in "column mode" where you pulsed the /CAS signal only to access words in the same row and the Acorn designers made good use of that for the Electron (reading 8 bits from a 4 bit wide memory) and the ARM based Archimedes (fetching instructions other than jump, load or store as well as loading the video and audio FIFOs).<p>From one DRAM generation to the next the cycle time might be different for chips with the same access time. This allowed me to make the 512KB Macintosh faster than the 128KB one (<a href="http://www.merlintec.com/lsi/mac512.html" rel="nofollow">http://www.merlintec.com/lsi/mac512.html</a>).
jecel: 访问时间为250纳秒的4116 DRAM芯片的循环时间为500纳秒,因此每秒可以读取或写入200万个字。橡子人称之为2MHz的存储器。您可以在“;列模式”;在那里你脉冲;CAS信号仅用于访问同一行中的字,Acorn的设计者很好地利用了Electron(从4位宽的存储器中读取8位)和基于ARM的阿基米德(获取除跳转、加载或存储之外的指令以及加载视频和音频FIFO)<p> 从一代DRAM到下一代,具有相同访问时间的芯片的周期时间可能不同。这使我能够使512KB的Macintosh比128KB的更快(<a href=“http://x2F;/;www.merlintec.com/,lsi/!mac512.html”rel=“nofollow”>http://x2F,/:www.merlintic.com/;lsiȏ;mac512.html</a>)。
kens: Author here for your 8086/8088 questions...
kens: 作者在这里为您的8086/;8088个问题。。。
kinj28: I wonder if queue length is already maintained by queue counter then is there really a need for MT flag?<p>Let’s say even if it is possible to do it, would the resulting saving of real estate and power would be worth the effort?
kinj28: 我想知道队列长度是否已经由队列计数器保持,那么是否真的需要MT标志<p> 比方说,即使有可能做到这一点,由此节省的房地产和电力是否值得?