深入理解计算机系统(3)——处理器体系结构

1、CPU的组成

传统上,CPU由控制器运算器这两个主要部件组成。

随着集成电路技术的不断发展和进步,新型CPU纷纷集成了一些原先置于CPU之外的分立功能部件,如浮点处理器、高速缓存(Cache)等,在大大提高CPU性能指标的同时,也使得CPU的内部组成日益复杂化。

CPU主要组成部分的逻辑结构如图3-2所示:

image

1.1、控制器

控制器是整个计算机系统的指挥中心。在控制器的指挥控制下,运算器、存储器和输入/输出设备等部件协同工作,构成了一台完整的通用计算机。

控制器根据程序预定的指令执行顺序,从主存取出一条指令,按该指令的功能,用硬件产生所需的带有时序标志的一系列微操作控制信号,控制计算机内各功能部件的操作,协调和指挥整个计算机完成指令的功能。

控制器通常由程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、时序发生器操作控制器组成。其主要功能包括:

  1. 从主存中取出一条指令,并指出下一条指令在主存中的位置;
  2. 对指令进行译码,并产生相应的操作控制信号,以便启动规定的动作;
  3. 指挥并控制CPU、主存和输入/输出设备之间数据流动的方向。

1.2、运算器

运算器是计算机中用于实现数据加工处理等功能的部件,它接受控制器的命令,负责完成对操作数据的加工处理任务,其核心部件是算术逻辑单元(Arithmetic Logic Unit,ALU)

相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。

运算器由算术逻辑单元(ALU)、累加寄存器(AC)、数据寄存器(DR)程序状态字寄存器(PSW)组成。它有两个主要功能:

  1. 执行所有的算术运算;
  2. 执行所有的逻辑运算,并进行逻辑测试。

1.2、寄存器

在CPU中至少要有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)。

这些寄存器用来暂存一个计算机字,其数目可以根据需要进行扩充。

下面详细介绍这些寄存器的功能与结构。

1.数据寄存器(DR)

数据寄存器(Data Register,DR)主要作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一个数据字时,也暂时将它们存放在数据寄存器中。

数据寄存器的作用是 :

1、作为CPU和主存、外围设备之间信息传送的中转站;
2、弥补CPU和主存、外围设备之间在操作速度上的差别;
3、在单累加器结构的运算器中,数据寄存器还可兼作操作数寄存器。

2.指令寄存器(IR)

指令寄存器(Instruction Register,IR)用来保存当前正在执行的一条指令。当执行一条指令时,先把该指令从主存读取到数据寄存器中,然后再传送至指令寄存器

一条指令被划分为操作码地址码2个字段。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器(Instruction Decoder,ID)就是完成这项工作的。

指令译码器对来自指令寄存器的操作码部分进行译码,以产生操作性质的控制电位,并将其送到微操作控制线路上,在时序部件定时信号作用下,产生具体的操作控制信号。

指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号

3.程序计数器(PC)

程序计数器(Program Counter,PC)用来指出下一条指令在主存储器中的单元地址。

在程序执行之前,首先必须将程序的首地址,即程序的第一条指令所在的主存单元地址送入PC。因此PC的内容即是从主存提取的第一条指令的地址

当执行指令时,CPU能自动递增PC的内容,使其始终保持将要执行的下一条指令的主存地址,为取下一条指令做好准备。

但是,当遇到转移指令时,下一条指令的地址将由转移指令的地址码字段指定,而不是像通常那样通过顺序递增PC的内容来取得。

因此,程序计数器的结构应当是具有寄存信息和计数两种功能的结构。

4.地址寄存器(AR)

地址寄存器(Address Register,AR)用来保存CPU当前所访问的主存单元的地址

由于在主存和CPU之间存在操作速度上的差异,所以必须使用地址寄存器来暂时保存主存的地址信息,直到主存的存取操作完成为止。

当CPU和主存进行信息交换,即CPU向主存存入/取出数据时,或者CPU从主存中读出指令时,都要使用地址寄存器数据寄存器

同样,如果我们把外围设备的设备地址作为像主存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样要使用地址寄存器和数据寄存器。

5.累加寄存器(AC)

累加寄存器通常简称累加器(Accumulator,AC),是一个通用寄存器。

累加器的功能是:当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为ALU提供一个工作区,可以为ALU暂时保存一个操作数或运算结果

显然,运算器中至少要有一个累加寄存器。

1、Y86-64指令集体系结构

2、逻辑设计和硬件控制语言HCL

3、Y86-64的顺序实现

4、流水线的通用原理

你可能感兴趣的:(深入理解计算机系统(3)——处理器体系结构)