导图社区 微体系结构层——CPU组织
这是一篇关于微体系结构层——CPU组织的思维导图,主要内容包括:精简指令集计算机(RISC),CPU模型机的组成及其数据通路,算术逻辑部件ALU和运算方法,CPU的组成和功能,微程序控制器原理,组合逻辑控制器原理。
编辑于2024-10-07 14:52:09微体系结构层——CPU组织
组合逻辑控制器原理
模型机的指令系统
指令格式
双操作数指令
单操作数指令
指令转移
寻址方式
0型 寄存器寻址方式,寻址方式字段代码 000,汇编符号R,定义为:操作数在指定的寄存器中。
1型 寄存器间址方式,寻址方式字段代码001,汇编符号(R),定义为:操作数地址在指定寄存器中(即从指定寄存器中获得操作数地址,再按此地址访问主存,从主存单元中读取操作数)。
2型 自减型寄存器间址方式,寻址方式字段代码010,汇编符号-(R),定义为:将指定寄存器内容减去1后作为操作数地址,再按地址访主存,从主存中读取操作数(在汇编 符号中减号在括号之前,形象地表示先减后操作)。
若指定的寄存器是SP,则适用于压栈操作。
若指定的寄存器是RO~R3,则可将指定寄存器当作反向指针使用:或将它当成堆栈指针,为临时软件建栈用。
3型立即/自增型寄存器间址方式,寻址方式字段代码011,汇编符号(R)+,定义为:操作数地址在指定寄存器中,地址使用后将寄存器内容加1(在汇编符号中,加号在括号之后,形象地表示先操作后加)。这里采用了合并优化技巧,即利用指定寄存器的不同,派生出立即寻址与自增型寄存器间址两种寻址方式。
若指定的寄存器是PC,为立即寻址,立即数紧跟着指令操作码与寻址字段后。编程时将立即数存放在紧跟指令操作码与寻址字段后的单元中,取指后PC+1,将修改后的PC内容作为地址,可读取立即数。取出立即数后PC内容再加1,指向立即数之后的一个单元,即下一条指令。
若指定的寄存器是SP,这种自增型寄存器间址方式可以作为堆栈操作的寻址方式。
若指定的寄存器是RO~R3,则可将指定寄存器当作正向指针使用,或将它当成堆栈指针用作临时软件建栈。
4型 直接寻址方式,寻址方式字段代码100,汇编符号DI,定义为:操作数地址紧跟着指令操作码与寻址字段后,编程时将操作数地址存放在紧跟指令操作码与寻址字段后的单元中,取指后PC+1,将修改后的PC内容作为地址,据此访问紧跟当前指令操作码与寻址字段后的存储单元,从中取得操作数地址(称为绝对地址),据此再度访存,读得操作数,然后PC+1.
5型 变址方式,寻址方式字段代码101,汇编符号X(R),其中X是变址的一种习惯标注符号,定义为:指定变址寄存器内容与紧跟指令操作码与寻址字段后的位移量相加,其结果为操作数地址。即从指定寄存器中取得变址量,从紧跟当前指令操作码与寻址字段后的存储单元中读取位移量,再据此访问,读得操作数
操作类型
传送指令
双操作数算数逻辑指令
单操作数算术逻辑指令
程序控制类指令
转移指令JMP,操作码1100
返回指令RST,操作码1100
转子指令JSR,操作码1101
模型机的时序系统
工作周期划分
取指周期FT。在取指周期FT中完成取指所需的操作。每条指令都必须经历FT周期。在FT中完成的操作是与指令操作码无关的公共性操作,但取指周期结束后将转向哪个工作周期,则与 FT 中取出的指令类型有关。
源周期ST。如果需要从主存中读取源操作数,则进入ST。在ST中将依据指令寄存器IR的源地址字段信息进行操作,形成源地址,读取源操作数。
目的周期DT。如果需要从主存中读取目的地址或目的操作数,则进入DT。在DT中将依据指令寄存器IR的目的地址段信息进行操作。
执行周期 ET。在取得操作数后,则进入ET,这也是各类指令都需经历的最后一个工作阶段。在 ET 中将依据 IR 中操作码执行相应操作,如传送、算术运算、逻辑运算、获得转移地址等。
中断响应周期IT。除了考虑指令的正常执行,还需要考虑外部请求带来的变化。CPU在响应中断请求之后,进入中断响应周期IT。在IT中将直接依靠硬件进行关中断、保存断点、转处理程序入口等操作。IT结束后,进入取指周期FT,开始执行中断处理程序。
DMA 传送周期 DMAT。CPU 响应 DMA 请求之后,进入DMAT。
节拍(时钟周期)
每个工作周期的操作一般需要分成若干步完成,为此将工作周期划分成若干节拍
工作脉冲
在节拍中执行的有些操作需要同步定时脉冲
指令流程
取指周期FT
进入FT的条件
初始化置入FT
程序运行过程中同步打入FT
有三种情况可采用同步方式进入新的取指周期:
当一条指令将执行完毕时,即在执行周期 ET中,如果不响应 DMA 请求与中断请求,程序正常执行,接着就转入新的FT,开始执行下一条指令。
在中断周期IT 这一过渡阶段操作结束后,就应转入中断处理程序,即进入FT。
在 DMA 周期完成一次 DMA 传送后,如果没有新的 DMA 请求,也没有中断请求,则恢复执行被暂停的程序,也应进入 FT。
取指流程
微操作时间表
MOV指令
FT
ST
R型
X(R)型
DT
ET
双操作数指令
加ADD
减SUB
与AND
或OR
异或EOR
单操作数指令
求反COM
求补NEG
加1INC
减1DEC
左移SL
右移SR
转移指令JMP/返回指令RST
对于转移指令只使用以下五种实用的寻址方式
寄存器寻址R,从指定寄存器中读取转移地址。
寄存器间址(R),从指定寄存器中读取间址单元地址,再从间址单元中读取转移地址。
自增型寄存器间址(R)+比上一种寻址方式增加一步修改指针
返回指令RST其寻址方式固定为(SP)+即从堆栈中寻找返回地址,然后修改指针SP
相对寻址X(PC)以PC内容为基准进行转移地址计算。
转子指令JSR
中断响应周期IT
DMA周期
键盘操作
微命令的综合与产生
小结
微程序控制器原理
微程序控制概念
微程序控制方式的基本思想
① 将机器指令分解为基本的微命令序列,用二进制代码表示这些微命令,并编成微指令多条微指令再形成微程序。每条机器指令对应一段微程序,在制造 CPU 时固化在CPU 中的个控制存储器(CM)中。当执行一条机器指令时,CPU依次从控制存储器CM 中取微指令从而产生微命令序列。
② 一条微指令包含的微命令,控制实现一步(一个节拍)操作;若干条微指令组成的一小段微程序解释执行一条机器指令。CM中的微程序能解释执行整个指令系统的所有机器指令这种将微命令以代码形式存储起来的做法就是前面提到的存储控制逻辑,而微指令序列设计方法可以借助于一般的程序设计技术实现。
微程序执行过程的描述
① 根据微地址寄存器的内容(通常为0或1),从CM的0号(或1号)单元中读出一条“取机器指令”微指令,送到微指令寄存器,这是一条公用微指令。该微指令的微命令字段产生有关控制信号,完成从存储器中取出机器指令送往指令寄存器R,并修改程序计数器PC的内容。
②IR 中机器指令的操作码通过微地址形成电路形成这条指令对应的微程序入口地址,并送入微地址寄存器中。
③ 根据微地址寄存器中的微地址从 CM 中取出对应微程序的一条微指令,其微命令字段产生一组微命令控制有关操作;由顺序控制字段形成下一条微指令地址,送入微地址寄存器。重复步骤③直到该机器指令的微程序执行完。
④ 执行完一条机器指令的微程序后,返回到CM的0号(或1号)微地址单元,重复步骤①,读取“取机器指令”微指令,以便取下一条机器指令。
基本概念和术语
微命令与微操作
微命令 构成控制信号序列的最小单位。。微命令由控制器通过控制线向有关的部件发出。
微命令是微操作的控制信号,微操作是微命令控制的操作过程。
微指令与微周期
微指令 若干微命令的组合,以编码形式存放在控制存储器的一个单元中,控制实现步操作。
微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。
微程序与微程序设计
①微程序 一系列微指令的有序集合。
②微程序设计 是将传统的程序设计方法运用到控制逻辑的设计中,在微程序中也可以 有微子程序、循环、分支等形态。
工作程序与微程序,主 存储器与控制存储器
微指令编码方式
直接控制编码(不译码法)
分段直接编译法
分段间接编译法
可解释的字段编译
分类编译
常数源字段E的设置
微程序的顺序控制
微程序入口地址的形成
① 当操作码的位数与位置固定时,可直接使操作码与入口地址码的部分相对应。例如,操作码为P,则入口地址为000P,这样控制存储器0页的一些单元地址被安排作为各段微程序入口地址,再通过单元内的无条件转移微指令与各自的后续微程序相连接。因此可以一次转移成功。操作码也可以与入口地址码其他位相对应,这时有若干连续CM单元用来存放条机器指令对应的微程序。如空出的单元不足以存放整个微程序时,依旧可通过无条件转移微指令再与其后继微程序连接。
② 当每类指令中的操作码位数与位置固定,而各类指令之间的操作码与位置不固定时,可采用分级转移的方式。先按指令类型标志转移到某条微指令,以区分出是哪一大类,如单操作数指令类或双操作数指令类;然后可以进一步按指令操作码转移,区分出是该类机器指令中的哪一种具体操作。
③ 当机器指令的操作码位数和位置都不固定时,通常可以采用PLA电路将每条指令的操作码翻译成对应的微程序入口地址,也可以采用PROM(可编程只读存储器)实现转移,将指令操作码作为PROM 的地址输入,其对应的PROM 单元内容即为该机器指令的微程序入口地址。
后继微地址的形成
增量方式(顺序——转移型微地址)
①顺序执行 由转移方式字段指明。此时,PC加1给出后继微地址。为减少微指令长度,可将转移地址字段暂作为微命令字段。
②无条件转移 由转移方式字段指明。转移地址字段提供微地址的全部;或给出低位部 分,高位与当前微地址相同。
③条件转移 由转移方式字段指明判别条件,转移地址字段指明转移成功的去向,不成功则顺序执行。机器中可作为转移判别的条件有多个,但每次只能选择一个测试判别源,所以一次只允许两路分支。
④转微子程序 由转移方式字段指明。微子程序入口地址由转移地址字段(或与uPC组合)提供。在转微子程序之前,要将该条微指令的下一条微指令地址(μPC+1)送入返回地址寄存器中,以备返回微主程序。
⑤微子程序返回 由转移方式字段指明。此时将返回地址寄存器内容作为后继微地址送入μPC 中,从而实现从微子程序返回到原来的微主程序。此时,可将转移地址字段暂用作微命令字段。
断定方式
非测试段
非测试段 可由设计者直接给定,通常是后继微地址的高位部分,用以指定后继微指令在某个区域内。
测试段
②测试段 根据有关状态的测试结果确定其地址值,占后继微地址的低位部分。这相当于在指定区域内断定具体的分支。所依据的测试状态可能是指定的开关状态、指令操作码、状态字等。
微指令格式
水平型微指令
① 微指令较长,通常为几十位到上百位左右。如 VAX-11/780的微指令字长 96位,总之机器规模越大、速度越快,其微指令字越长。
② 微指令中的微操作具有高度并行性,这种并行操作能力是以数据通路中各部件间的并行操作结构为基础的。例如执行一条水平型微指令就能控制信息从若干源部件同时传送到若干目的部件。
③ 微指令编码简单,一般采用直接控制编码和分段直接编码,以减少微命令的译码时间。水平型微指令的优点是执行效率高、灵活性好,微程序条数少,因此广泛应用于速度较快的机器中。但其微指令字较长,复杂程度高,难以实现微程序设计自动化。
垂直型微指令
垂直型微指令的特征是微指令较短,微指令的并行操作能力有限,一般一条微指令只能控制数据通路的一两种信息传送操作。
典型微指令举例——模型机微指令格式
精简指令集计算机(RISC)
RISC与CISC的概念
RISC和CISC
RISC的特点
面向寄存器结构
采用LOAD/STORE结构
较少的指令书和寻址方式
所有指令长度相同
硬布线控制逻辑
注重编译优化
超标量与超流水线概念
UItraSPARC CPU的为体系结构
UItraSPARC II概况
UItraSPARC II的流水线
UItraSPARC II的寄存器组
SPARC寄存器
CPU模型机的组成及其数据通路
基本组成
寄存器
CPU中的寄存器
存放控制信息的寄存器,如指令寄存器、程序计数器和程序状态字寄存器
存放所处理数据的寄存器,如通用寄存器和暂存器
可编程寄存器
暂存器
指令寄存器IR
与主存接口的寄存器MAR,MDR
运算部件
总线与数据通路结构
ALU总线
系统总线
控制器及微命令的基本形式
微命令的基本形式
电位型微命令
脉冲型微命令
控制器
控制器是整机的指挥中心,其基本功能就是执行指令,即根据指令产生控制信号序列以控制相应部件分步完成指定的操作。
数据传送
寄存器之间的数据传送
主存数据传送到CPU
CPU数据传送到主存
执行算数和逻辑操作
算术逻辑部件ALU和运算方法
算数逻辑部件内部ALU
全加器
并行加法器与进位链结构
基本进位公式
并行加法器的串行进位
并行进位(先行进位,同时进位)
ALU举例
SN74181外特性
SN74181内部结构
SN74181功能表
用SN74181构成多位ALU
定点数运算方法
定点数加减运算
原码加减运算
补码加减运算
溢出判别
移位
逻辑移位
循环移位
算数移位
定点数乘除运算
三种实现方式
软件实现
在原有实现加减运算的 ALU 的基础上增加一些逻辑线路以实现乘除运算,并在机器中设有乘除指令。如8086/8088CPU就采用这种方案来实现乘除运算。
设置专用的乘除法器
浮点数运算方法
浮点数加减运算
对阶操作
实现尾数的加(减)运算
实现规格化和判溢出
左规
右规
舍入操作
浮点数乘除运算
浮点数乘法运算
阶码相加并判溢出
尾数相乘
规格化处理
浮点数除法运算
预置
尾数调整
求阶差
尾数相除
十进制数加减运算
进制转换
直接进行十进制数运算
BCD码的加法运算
CPU的组成和功能
CPU的组成
ALU的部件与寄存器
ALU部件
寄存器
通用寄存器
暂存器
指令寄存器IR
程序计数器PC
状态寄存器
总线
CPU内部数据通路
单总线数据通路结构
多组内总线结构
指令执行过程
指令的分段执行过程
取指令
分析指令
执行指令
取操作数
执行操作
形成下一条指令地址
指令之间的衔接方式
串行的顺序执行方式
并行的重叠执行方式
时序控制方式
同步控制方式
优点是时序关系简单,结构上易于集中,相应的设计和实现比较简单
同步控制方式的多级时序系统
多及时序概念
多级时序信号之间的关系
时序系统的组成
指令流水线