8086CPU预取指令队列有什么好处?

2024-11-22 10:18:05
推荐回答(2个)
回答1:

8086 以前的微处理器的操作都是串行的,即对每一条指令而言,都是先取指令,再分 析、执行。具体可表示为
取指令一 [ 读操作数 ] 一执行一 [ 写操作数 ] 一取 ( 下一条 ) 指令一……
方括号内的操作是操作数在内存中时所要进行的,当操作数是 CPIJ 内部的某个寄存器 时,不需要这一步。显然,在指令执行期间,总线 (BUS) 是空闲的,这一重要的系统资源没有 得到充分利用。而 8086 在执行部件执行指令期间,总线接口部件可利用总线预取后续指令 或进行存储器操作数的读或写。指令的并行操作,或者说指令的重叠执行,通常称之为指令流水线操作。

总线接口部件 (BIU)是 8086 同外部联系的接口。它负责所有涉及外部总线的操作,包括取指 令、读操作数、写操作数、地址转换和总线控制等。BIU 使用了指令预取队列 ( 简称指令队列或队列 ) 机构来实现指令流水线操作。该队列 的容量为 6 个字节,即允许预取 6 个字节的指令代码。每当指令队列有两个或两个以上的字节空间,且执行部件未向 BIU 申请读/写存储器操作数时, BIu 顺序地预取后续指令的代 码,并填入指令队列。

回答2:

8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。

8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。