X86 8086微处理器的指令队列可以存储多少条指令?

X86 8086微处理器的指令队列可以存储多少条指令?,x86,intel,cpu-architecture,instructions,microprocessors,X86,Intel,Cpu Architecture,Instructions,Microprocessors,我认为,由于英特尔微处理器的内存是字节组织的,指令队列的大小是4字节,答案应该是4条指令?8086和8088芯片有预取队列。它们存储了从指令指针(和代码段)前面的内存中预取的字节数。这允许处理器在空闲总线周期内做一些“有用”的事情 8088预取队列有四个字节深。8086队列有六个字节深 同样,它们并不对应于设置数量的指令,而是对应于一定数量的字节 因此,您的问题的答案是多达四条(或六条)(单字节)指令,甚至不是一条完整的指令(对于较长的指令) 顺便说一句:8088的队列较小,因为它的8位总线较小

我认为,由于英特尔微处理器的内存是字节组织的,指令队列的大小是4字节,答案应该是4条指令?

8086和8088芯片有预取队列。它们存储了从指令指针(和代码段)前面的内存中预取的字节数。这允许处理器在空闲总线周期内做一些“有用”的事情

8088预取队列有四个字节深。8086队列有六个字节深

同样,它们并不对应于设置数量的指令,而是对应于一定数量的字节

因此,您的问题的答案是多达四条(或六条)(单字节)指令,甚至不是一条完整的指令(对于较长的指令)


顺便说一句:8088的队列较小,因为它的8位总线较小,这意味着可用的空闲周期较少,而较大的队列会减慢进程。8086可以在3个总线周期内填充其队列,8088需要4个周期来填充其较小的队列。

8086和8088芯片具有预取队列。它们存储了从指令指针(和代码段)前面的内存中预取的字节数。这允许处理器在空闲总线周期内做一些“有用”的事情

8088预取队列有四个字节深。8086队列有六个字节深

同样,它们并不对应于设置数量的指令,而是对应于一定数量的字节

因此,您的问题的答案是多达四条(或六条)(单字节)指令,甚至不是一条完整的指令(对于较长的指令)


顺便说一句:8088的队列较小,因为它的8位总线较小,这意味着可用的空闲周期较少,而较大的队列会减慢进程。8086可以在3个总线周期内填充其队列,8088需要4个周期来填充其较小的队列。

为什么较大的预取队列会使8088变慢?在解码指令之前,它不必等待缓冲区填满,是吗?i、 e.一个单字节的
xchgax,cx
可以在提取后立即解码并执行,即使它是缓冲区中唯一的字节,对吗?我猜8088并没有从一个更大的队列中获得太多的好处,所以随着总线宽度的增加而减少它是有意义的,只是为了降低晶体管计数。不,指令可以在获取后立即解码。这个问题是关于公交车使用的。如果预取过多,它们可能会干扰数据获取。8086可以在12个时钟周期内填充6字节队列。8088需要24个时钟来填充一个6字节的队列,但对于一个4字节的队列只有16个时钟。好的,没错,但是数据加载/存储的优先级不是高于指令(预)获取吗?我想即使这样,如果指令字节加载正在进行中,下一次数据访问仍必须等待下一个非完全流水线内存访问插槽。因此,缓冲区实际上经常被填满,足以对8088产生影响?为什么较大的预取队列会使8088变慢?在解码指令之前,它不必等待缓冲区填满,是吗?i、 e.一个单字节的
xchgax,cx
可以在提取后立即解码并执行,即使它是缓冲区中唯一的字节,对吗?我猜8088并没有从一个更大的队列中获得太多的好处,所以随着总线宽度的增加而减少它是有意义的,只是为了降低晶体管计数。不,指令可以在获取后立即解码。这个问题是关于公交车使用的。如果预取过多,它们可能会干扰数据获取。8086可以在12个时钟周期内填充6字节队列。8088需要24个时钟来填充一个6字节的队列,但对于一个4字节的队列只有16个时钟。好的,没错,但是数据加载/存储的优先级不是高于指令(预)获取吗?我想即使这样,如果指令字节加载正在进行中,下一次数据访问仍必须等待下一个非完全流水线内存访问插槽。所以缓冲区实际上经常被填满,足以在8088上产生差异?