目录
一、CPU组成
- 程序计数器(PC),保存将要执行指令的字节地址。
2、存储地址寄存器(AR),又称地址寄存器,保存CPU访问主存的地址,指令数据地址或存取数据地址。
3、存储数据寄存器(DR),又称数据寄存器,存放主存中读出的数据或准备写入主存的数据,其数据宽与机械字长相同。
4、指令寄存器(IR),保存当前正在执行的寄存器。
5、通用寄存器(GR),又称寄存器堆,多功能寄存器,如可作为ALU的累加器,变址寄存器等。
6、程序状态字寄存器(PSW),用于保存由算术运算指令、测试指令等建立的各种条件标志。
7、操作控制器,接受指令译码器送来的指令译码信息,与时序信号、条件状态信息进行组合,形成各种具有严格时间先后顺序的操作控制信号,并连接到计算机各部件功能的控制端,控制相应部件按指令的功能依次进行动作,从而实现指令功能。操作控制器分为硬布线控制器和微程序控制器两种。
8、时序产生器,指令执行过程中的所有操作必须按照一定的次序执行,各操作在什么时刻执行,执行时间有严格规定,不能有差错。
二、逻辑部件
1、程序计数器PC:采用32位寄存器实现,输出当前指令的字节地址,输入是下一条指令地址。
2、指令存储器:用于存放单独存放程序指令,输入为32位的字节地址,输出位32位的MIPS指令字。
3、数据存储器:数据存储器可读可写,A端口为32位的地址输入,WE端口为读写控制信号。WE = 0时,读操作;时钟上跳沿将WD端口的32位数据写入A端口地址对应的存储单元数据存储器进行写操作。
4、寄存器堆:CPU通过一定的接口可以对这些寄存器进行读写访问。
5、多路选择器:专用通路的数据通路较为复杂,很多时候某个功能部件的输入有多个来源,为此引入多路选择器。
6、符号扩展单元:用于将16位扩展位32位。
7、位移运算:用于对立即数进行位移运算。
8、加法器:这里的仅完成地址有关的加法运算。
9、运算器:指令的算术逻辑运算功能。
三、电路的简单分析(以下的图对应MIPS指令)
1、从指令存储器读出的源寄存器字段rs(21~25位)、rt(16~20位)分别送入R1#和R2#;将目的寄存器字段rd(11~15位)写入寄存器W#;将从寄存器堆读出的两个源寄存器的值经R1,R2端口输出到运算器;指令字中funct字段决定AluOp控制ALU进行相应的运算,运算结果送入写数据端口WD;时钟上跳沿到来时会将结果写入rd中。下图对应的是32位的。
2、比图6.18增加了符号扩展和数据存储器,符号扩展位运行16位立即数,将它扩展为32位送入ALU;数据存储器储存ALU运算结果,对应指令流水时发挥作用。
3、对于不同指令,进入ALU的来源不同,R2数据直接进入数据存储器(如读写指令)。
4、将图6.19和图6.20结合后,加上多路选择器。
5、图6.22增加跳转指令、条件分支等的加入。对应PC加+1,+4等。图6.23增加无条件分支。PC位置增加了一个多路选择器判断是否是条件分支。
6、增加控制器,控制器对应的控制来自于微操作控制信号,控制着每个逻辑部件。
6、将下两张图对比将它们联系起来,想必应该对这些会更清楚了吧。
四、时序控制器
1、传统三级时序中时序发生器主要根据时钟脉冲信号持续不断地产生状态周期电位和节拍电位,操作控制器利用这些周期、节拍电位信号对操作控制信号进行时序的调制,生成控制信号序列。通常将状态周期电位信号、节拍电位信号与指令译码信号、反馈信号等进行适当的逻辑与操作,从而限定操作控制信号的开始时间和持续时间。
五、硬布件控制器
硬布线控制器组合逻辑单元用于产生指令执行所需要的所有控制信号序列,是控制器的核心。操作控制信号的定时控制采用时序发生器生成的状态周期电位和节拍电位作为输入,使得控制器在不同的机器周期、不同的节拍向不同的部件发出各种操作控制信号,并保证信号产生的时间和持续的时间,以协调各部件之间进行正确的操作,从而实现指令的功能。
硬布线控制器的输出信号就是微操作控制信号序列,这些控制信号可以看作所有输入信号的逻辑函数。
现代时序采用有限状态机来描述指令的执行过程,将不同指令执行的每个时钟周期均对应一个状态,每一个状态会对应特定的微操作控制信号。同样采用 Moore 型电路构建控制器时序电路,因此所有微操作控制信号只与指令执行的当前状态﹣一现态有关,由硬布线控制器组合逻辑生成;后续状态一次态则与指令的译码信号、反馈信号和现态有关。
- 微程序控制器
微程序控制器,输出微操作控制信号如下,用于控制程序计数器、存储器、寄存器堆等,如图6.27,蓝色箭头。
生活本没有意义,干嘛要赋予它意义。