第三章 CPU子系统运算部件寄存器寄存器控制部件运算器控制器本章主要讨论:运算器 控制器 数据通路结构 与外部的连接指令的执行过程CPU组成CPU工作原理3.1 CPU模型设计设计步骤:拟定指令系统 确定总体结构 安排时序 拟定指令流程和微命令序列 形成控制逻辑3.1.1 指令系统 1.指令格式格式、寻址方式 、指令类型设置 寄存器、ALU、数 据通路设置 画流程图(寄存器传送级)列操作时间表 组:列逻辑式,形 成逻辑电路 微:按微指令格式 编写微程序 指令字长16位,采用寄存器型寻址,指令中 给出寄存器号 (主存容量为64K×16位)双操作数指令格式:4 6 3 3操作码 寄存器号 寻址方式 寄存器号 寻址方式目的地址源地址 单操作数指令格式:操作码 (可扩展) 寄存器号 寻址方式4 3 3 3 3目的地址转移指令格式: 15 12 11 9 8 6 5 4 3 2 1 0转移地址转移条件操作码 寄存器号 寻址方式 方式 N′Z′V′C′CPU可编程访问的寄存器:寻址方式 编码 助记符 定义2.寻址方式寄存器寻址通用寄存器R、指令计数器PC、堆栈指针SP、 程序状态字PSW000R(R)为操作数寄存器间址001(R)(R)为操作数地址自减型寄存 器间址010-(R) -(SP)(R)-1为操作数地址 (SP)-1为栈顶地址寻址方式 编码 助记符 定义101(PC)+(R)+d为有效地址(R)为操作数地址,立即/自增型 寄存器间址011(R)+ 访问后(R)+1 (SP)+(SP)为栈顶地址, 出栈后(SP)+1 (PC)为立即数地址, 取数后(PC)+1变址X(R) X(PC)(PC)+d为有效地址跳步110SKP跳过下条指令执行操作码 助记符 含义3.指令类型用于数传、堆栈 、I/O操作0000MOV传送 0001ADD加0101EOR异或双操作数指令0110COM求反1011SR右移单操作数指令1100JMP转移 1100RST返回 1101JSR转子0 0 0 0 0 5 4 3 2 1 0转移地址无条件转JMP 寄 寻 方式 N′Z′V′C′0 0 0 0 1 无进位转(C=0) 0 0 0 1 0 无溢出转(V=0) 0 0 1 0 0 数非零转(Z=0) 0 1 0 0 0 数为正转(N=0) 1 0 0 0 1 有进位转(C=1) 1 0 0 1 0 有溢出转(V=1) 1 0 1 0 0 数为零转(Z=1) 1 1 0 0 0 数为负转(N=1)条件满足,转转移地址;条件不满足,顺序执行。
隐含约定:转子时返回地址压栈保存15 12 11 9 8 6 5 0子程序入口RST SP (SP)+ JSR 寄 寻 方式 N′Z′V′C′5 4 3 2 1 03.1.2 CPU总体结构 1.寄存器设置 (1)可编程寄存器(16位) 通用寄存器:R0(000)、R1(001) R2(010)、R3(011)允许中断(开中断)(可扩展) I N Z V C4 3 2 1 0暂存器C(2)非编程寄存器(16位)堆栈指针:SP(100)指令计数器:PC(111) 程序状态字:PSW(101):暂存来自主存的源地址或源数据 暂存器D:暂存来自主存的目的地址或目的数 指令寄存器IR 地址寄存器MAR 数据寄存器MDR:存放现行指令实现CPU与主存的接口SN74181 4片 SN74182 1片2.算逻部件设置ALU选择数据来源选择器A 选择器B 移位器:实现直送、左移、右移、字节交换 3.数据通路结构 为了使数据传送控制简单、集中,采用以 ALU为中心的总线结构 (1)组成 包括四个部分: ALU部件、寄存器组、内总线、CPU与系统总 线的连接(16位)R0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 (2)特点 ALU为内部数据传送通路的中心; 寄存器采用 内总线采用单向数据总线(16位);分立结构;与系统总线 的连接通过 MAR、MDR实现。
MDR输入 输出至DB 输出至ALU的B门输出从内总线输入 从DB输入(打入) (置入)R0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 R0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 4.各类信息传送途径 M(1)指令信息置入DBIRMDBIR(2)地址信息R0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 1)指令地址 2)指令地址加1PCPCAALU移位器内总线MARPC打入AALU移内MAR PCAALU移内PC C0C0打入R0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 3)转移地址MIR寄存器寻址:R0R0BALU移位器内总线PCR0打入BALU移内PC 寄存器间址:R0打入BALU移内MAR ABMDB置入MDRBMARMDRMDR移、 内PCALUR0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 IRR0R0BALU移位器内总线4)操作数地址 寄存器寻址:R0R1 寄存器间址:R0打入BALU移内MARMARR1R0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 变址:PCAALU移位器内总线MARR0PCAALU移内MARAB MDB移内CPCMMMDRMDRBCMDRBALUR0R0CALUCAB移内MARR0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 (3)数据信息MIRR0R0BALU移位器内总线1)RR: R0打入BALU移内R1 DBM DBMDRBMDRMDR移、 内R2ALUR12)RM: R0打入BALU内MDR 3)MR:R2MR0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 MIRR0R0BALU移位器内总线4)MM: M(源)R0MDRMDRMDRDB内I/OALU5)RI/O:C打入DBMDR内CALU (计算目的地址)DBMCALU内MDR(目的)CAI/OR0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 MIRR0BALU移位器内总线DBMDRMDRDB DMA方式:I/O6)I/OR打入I/OMDR内R0ALUI/O7)I/OMM5.微命令设置(1)数据通路操作:ALU功能选择:ALU输入选择:输出移位选择: 结果分配:R0A、 R0B、 S3S2S1S0、M、C0 不移、左移、 CPR0、CPC、CPMAR、R0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 (2)访M、I/O操作:读 R地址使能 EMAR写 W 置入MDR SMDR,1 MAR向AB送地址 0 00 MDR与DB断开,MAR与AB断开 R=1读 W=1写 置入IR SIRR0~R3 R0~R3C D C DSP PC PSW MDRA移位器BALUR2R0R1MI/OCB内总线CR3DMARMDRIRPCSPPSWAB DB控制 逻辑 3.1.3 组合逻辑控制器设计 1.时序系统 (1)工作周期 取指周期FT用于指令正常执行设置6个触发器分别 作为各周期状态标志源周期ST 目的周期DT 执行周期ET 中断周期IT DMA周期DMAT用于I/O传送控制1 工作周期开始 0 工作周期结束 在整个指令周期中,任何时候必须、且只能有一 个工作周期状态标志为“1”。
1)取指周期FT 从M取出指令并译码;公操作修改PC3)目的周期DT4)执行周期ET取指结束时,按操作码和寻址方式(R/非R寻址) 转相应工作周期按寻址方式(非R寻址)形成源地址,从M取出源操 作数,暂存于C2)源周期ST按寻址方式(非R寻址)形成目的地址,或从M取出 目的操作数,暂存于D按操作码完成相应操作(传送、运算、取转移地址 送入PC、返回地址压栈保存); 后续指令地址送入MAR5)中断周期IT关中断、保存断点和PSW、转服务程序入口 由硬件完成1)时钟周期时间:IT指CPU响应中断请求后,到执行中断服务程序前6)DMA周期DMAT一次从M读出,并经数据通路传送的操作;或 一次数据通路传送操作;或 一次向M写入的操作DMAT指CPU响应DMA请求后,到传送完一次数据 DMA控制器接管总线权,控制直传 (2)时钟周期(节拍)T 1微秒完成一步操作:模型机以访存时间作为一步操作时间 一个总线 周期等于一个时钟周期,可根据需要扩展由硬件完成2)时钟周期数: 每个工作周期第一拍T=0, 每开始一个新节拍T计数, 工作周期结束时T清0。
一个工作周期中的时钟数可变用计数器T控制节拍数每个时钟结束时设置一个脉冲3)工作脉冲P1µSTP 打入寄存器进行时序转换 (周期状态设置/清除 时钟T计数/清除)将计数值译码,可产生节拍电位2.控制流程(工作周期转换)FT 双单转 SRSTDRDTETDMATDMA请求? 中断请求?ITSRDRYNYN3.指令流程图与操作时间表(1)取指周期FT拟定指令流程:初始化时置入FT,确定各工作周期中每拍完成的具体 操作(寄存器传送级) 列操作时间表:列出每一步操作所需的微命令及产 生条件1)进入FT的方式 FTSR DC总清1程序正常运行时 同步打入FT1 FTCPFT2)流程图1 STFT0: PC+1 PCM IR3)操作时间表 FT0:电位型微命令脉冲型微命令 M 。