【发布时间】:2018-01-25 07:42:59
【问题描述】:
我认为,由于英特尔微处理器的内存是按字节组织的,指令队列的大小是 4 个字节,答案应该是 4 条指令?
【问题讨论】:
标签: x86 intel cpu-architecture instructions microprocessors
我认为,由于英特尔微处理器的内存是按字节组织的,指令队列的大小是 4 个字节,答案应该是 4 条指令?
【问题讨论】:
标签: x86 intel cpu-architecture instructions microprocessors
8086 和 8088 芯片具有预取队列。这些存储了从指令指针(和代码段)“前面”的内存中预取的一些字节。这允许处理器在原本空闲的总线周期中做一些“有用的”事情。
8088 预取队列有四个字节深。 8086 队列有六个字节深。
同样,这些不对应于指令数量,而是对应于字节数。
因此,您的问题的答案是多达四(或六)条(单字节)指令,甚至不是一条完整的指令(对于较长的指令)。
顺便说一句:8088 的队列更小,因为它的 8 位总线很小,这意味着可用的空闲周期更少,而更大的队列会减慢处理速度。 8086 可以在 3 个总线周期内填充其队列,8088 需要四个周期来填充其较小的队列。
【讨论】:
xchg ax, cx 可以在获取它后立即解码和执行,即使它是缓冲区中唯一的字节,对吧?我猜想 8088 并没有从更大的队列中受益,因此将其与总线宽度一起减少是有意义的,只是为了减少晶体管数量。