1,什么是计算机体系结构?
计算机体系结构包括两层含义。
狭义的定义为计算机体系结构是程序员所看到的系统的一些属性:概念性的结构和功能上的表现,这些属性既不同于数据流和控制的组织,也不同于逻辑设计和物理实现。这是从程序员,特别是汇编语言程序员的角度所看到的计算机系统的属性。
广义地看,计算机体系结构是连接硬件和软件的一门学科,它研究的内容不但涉及计算机硬件,也涉及计算机软件。
2,Pentium微处理器的整数流水线是怎样工作的?
Pentium微处理器包含两条整数流水线:U流水线和V流水线。
Pentium微处理器整数指令的执行要经过流水线中的五个操作步骤:
PF(预取):处理器从代码cache中预取指令
D1(译码阶段1):处理器对指令译码确定操作码和寻址信息。在这个阶段还进行指令的成对性检查和分支预测
D2(译码阶段2):产生访问存储器的地址
EX(执行):处理器或者访问数据cache,或者利用ALU、筒型移位器或其他功能单元计算结果
WB(写回):利用指令运行结果更新寄存器和标志寄存器
3,Pentium微处理器的配对规则是什么
1,两条指令都是简单指令
2,没有写后读和写后写的依赖关系
3,一条指令不能同时既包含位移量又包含立即数
4,带前缀的指令只能出现在U流水线中
5,此外,条件分支转移指令和非条件分支转移指令,只有当它们作为配对中的第二条指令出现时才可以配对。
4,分支转移预测功能的意义是什么?
由于课本对Pentium的分支预测功能介绍的比较粗略,这里多做一些解释:
要充分理解分支预测的意义,首先要了解条件转移指令对流水线效率的影响。条件转移指令在D1阶段经过的指令译码即可被处理器所发现,但是转移的方向,则要等到其前面的指令经过WB步骤更新了标志寄存器后才能确定,所以通常情况下一旦处理器发现条件转移指令,则停止后续指令的预取,等到条件转移指令前面的指令执行完毕,更新了标志寄存器,确定了转移方向以后,再重新开始流水线操作,而这时流水线已经空置,等到指令再次流到执行部件,执行部件已经停顿了好几个周期,所以条件转移指令对流水线效率的影响很大。
为了改进由于条件转移指令引起的流水线停顿现象,采取分支预测是一种有效的措施。
Pentium处理器采用动态分支预测策略,它根据最近执行的分支指令的历史状况来实现预测。BTB中保持着最近所遇到的条件转移指令的信息,每当在指令流中遇到条件转移指令指令时,就对BTB进行检查,如果该指令的信息在BTB已经存在,那么就依据它的历史信息进行预测,并按预测的转移方向继续预取指令,如果预测正确,则可以保证流水线不会空置,如果预测错误,那么流水线只好刷新,重新按另一个方向读取指令,这样处理器要花费3~4个周期的延迟。
在BTB中,被缓存的条件转移指令的信息包括2位的历史信息,所以有4种状态,11为最可能发生转移,00为最不可能发生转移。新进入BTB的指令其历史信息为11,此后出现一次未发生转移的情况,则将其减1,直到减为00,而发生一次转移,则将其加1,直到为11。
分支预测对循环的意义最为显著,只有在进入和退出循环时才会发生预测错误,而在循环中间过程中进行的分支预测都是正确的。据统计,采用动态分支预测策略,预测的正确率可以达到85%~95%。
5,实模式下Pentium微处理器的堆栈操作是怎样进行的,试举例说明
参考课本的第65页,需要指出的是书上图3.15中间的那个图中,栈顶所指是错误的,应该指向3412。
6,字ABCD(H)存放地址为0A002 (H)的存储器中,如何存放,是对准字还是非对准字?
0A002能够被2整除,所以是对准字
7,计算下列物理地址:
1000:1234
物理地址为11234H
0100:ABCD
物理地址为0BBCDH
计算机体系结构包括两层含义。
狭义的定义为计算机体系结构是程序员所看到的系统的一些属性:概念性的结构和功能上的表现,这些属性既不同于数据流和控制的组织,也不同于逻辑设计和物理实现。这是从程序员,特别是汇编语言程序员的角度所看到的计算机系统的属性。
广义地看,计算机体系结构是连接硬件和软件的一门学科,它研究的内容不但涉及计算机硬件,也涉及计算机软件。
2,Pentium微处理器的整数流水线是怎样工作的?
Pentium微处理器包含两条整数流水线:U流水线和V流水线。
Pentium微处理器整数指令的执行要经过流水线中的五个操作步骤:
PF(预取):处理器从代码cache中预取指令
D1(译码阶段1):处理器对指令译码确定操作码和寻址信息。在这个阶段还进行指令的成对性检查和分支预测
D2(译码阶段2):产生访问存储器的地址
EX(执行):处理器或者访问数据cache,或者利用ALU、筒型移位器或其他功能单元计算结果
WB(写回):利用指令运行结果更新寄存器和标志寄存器
3,Pentium微处理器的配对规则是什么
1,两条指令都是简单指令
2,没有写后读和写后写的依赖关系
3,一条指令不能同时既包含位移量又包含立即数
4,带前缀的指令只能出现在U流水线中
5,此外,条件分支转移指令和非条件分支转移指令,只有当它们作为配对中的第二条指令出现时才可以配对。
4,分支转移预测功能的意义是什么?
由于课本对Pentium的分支预测功能介绍的比较粗略,这里多做一些解释:
要充分理解分支预测的意义,首先要了解条件转移指令对流水线效率的影响。条件转移指令在D1阶段经过的指令译码即可被处理器所发现,但是转移的方向,则要等到其前面的指令经过WB步骤更新了标志寄存器后才能确定,所以通常情况下一旦处理器发现条件转移指令,则停止后续指令的预取,等到条件转移指令前面的指令执行完毕,更新了标志寄存器,确定了转移方向以后,再重新开始流水线操作,而这时流水线已经空置,等到指令再次流到执行部件,执行部件已经停顿了好几个周期,所以条件转移指令对流水线效率的影响很大。
为了改进由于条件转移指令引起的流水线停顿现象,采取分支预测是一种有效的措施。
Pentium处理器采用动态分支预测策略,它根据最近执行的分支指令的历史状况来实现预测。BTB中保持着最近所遇到的条件转移指令的信息,每当在指令流中遇到条件转移指令指令时,就对BTB进行检查,如果该指令的信息在BTB已经存在,那么就依据它的历史信息进行预测,并按预测的转移方向继续预取指令,如果预测正确,则可以保证流水线不会空置,如果预测错误,那么流水线只好刷新,重新按另一个方向读取指令,这样处理器要花费3~4个周期的延迟。
在BTB中,被缓存的条件转移指令的信息包括2位的历史信息,所以有4种状态,11为最可能发生转移,00为最不可能发生转移。新进入BTB的指令其历史信息为11,此后出现一次未发生转移的情况,则将其减1,直到减为00,而发生一次转移,则将其加1,直到为11。
分支预测对循环的意义最为显著,只有在进入和退出循环时才会发生预测错误,而在循环中间过程中进行的分支预测都是正确的。据统计,采用动态分支预测策略,预测的正确率可以达到85%~95%。
5,实模式下Pentium微处理器的堆栈操作是怎样进行的,试举例说明
参考课本的第65页,需要指出的是书上图3.15中间的那个图中,栈顶所指是错误的,应该指向3412。
6,字ABCD(H)存放地址为0A002 (H)的存储器中,如何存放,是对准字还是非对准字?
0A002能够被2整除,所以是对准字
7,计算下列物理地址:
1000:1234
物理地址为11234H
0100:ABCD
物理地址为0BBCDH