计算机组成原理-中央处理器CPU5
(15页)
本资源提供全文预览,点击全文预览即可进行全文预览,如果您喜欢下载文档,查找使用更方便哦!
19.90 积分
综合内容? 设计一个组合逻辑设计方法CPU,该CPU字长8位, 有四个指令,分别是LDA, STA,ADD,HLT;内存有8个 字节;? 寄存器有R0,R1,PC,IR;? 指令意义 LDA Ri, [内存单元] 将指定内存单元的数据装入Ri寄存器 STA [内存单元] , Ri 把Ri将寄存器的数据保存到指定的内存单元 ADD Ri, [内存单元] Ri寄存器 内存单元->内存单元 HLT 停机 1? 首先设计指令格式: 因为指令总数是4 ,因此,使用两个位置可以表示所有手指 命令,命令格式为 OP(2位) AD (3位) AS (3位)? 用:00 表示 HLT,01表示LDA, 10 表示STA,11表 示ADD;? 内存单元地址用指令中的三位表示,用三位表示 寄存器号码,000表示R0,001表示R1;? HLT指令格式: 00 任意6位数? LDA指令格式: 01 RD (3位) AS (3位) 位 位? STA指令格式: 10 AS (3 ) RD (3 ) 位 位? ADD指令格式: 11 RD (3 ) AS (3 ) 2? 二、构造数据通路如图 3? 三、时序和控制方法 采用同步控制,采用长指令周期方案。 采用3个CPU周期分别是IF、DOF、EXE, 每 CPU周期有4个等宽度的节拍电位,每个节拍 电位有节拍脉冲; 4? 四、列出指令集中的每个机器指令 见指令操作流程 “DIYCPU指令执行过程.DOC”。 5? 五、通过上述指令执行过程获得每个微操作的逻辑 辑表达式 ,见下表:? PC->BUS = IF.T0.LDA IF.T0.STA IF.T0.ADD IF.T0.HLT ? BUS->AR = LDA.IF.T0 ADD.IF.T0 STA.IF.T0 HLT.IF.T0 LDA.DOF.T0 STA.DOF.T0 ADD.DOF.T1? BUS->LA = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 ADD.DOF.T0 HLT.IF.T0? Clear = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 HLT.IF.T0? 1->C0 = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 HLT.IF.T0 6? Add = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 HLT.IF.T0 ADD.EXE.T0? READ = LDA.IF.T1 STA.IF.T1 ADD.IF.T1 HLT.IF.T1 LDA.DOF.T1 ADD.DOF.T2? ALU->BUS = LDA.IF.T1 STA.IF.T1 ADD.IF.T1 HLT.IF.T1 ADD.EXE.T1? BUS->PC = LDA.IF.T1 STA.IF.T1 ADD.IF.T1 HLT.IF.T1 7? DR->BUS = LDA.IF.T2 STA.IF.T2 ADD.IF.T2 HLT.IF.T2 LDA.EXE.T0 ADD.DOF.T3? BUS->IR = LDA.IF.T2 STA.IF.T2 ADD.IF.T2 HLT.IF.T2? IR_Addr->BUS = LDA.DOF.T0 STA.DOF.T0 ADD.DOF.T1? BUS->LB = ADD.DOF.T3? BUS->DR = STA.EXE.T0? WRITE = STA.EXE.T1 8? BUS->Ri = LDA.EXE.T0 ADD.EXE.T1? Ri->BUS = STA.EXE.T0 ADD.DOF.T0? 1->DOF = LDA.IF.T3 STA.IF.T3 ADD.IF.T3 HLT.IF.T3? 1->EXE = LDA.DOF.T3 STA. DOF.T3 ADD.DOF.T3 HLT. DOF.T3? 1->IF = LDA.EXE.T3 STA. EXE.T3 ADD. EXE.T3 HLT. EXE.T3? 共 20个微操作 9? 六、简化: PC->BUS = IF.T0;? BUS->AR = IF.T0 LDA.DOF.T0 STA.DOF.T0 ADD.DOF.T1? BUS->LA = IF.T0 ADD.DOF.T0? Clear = IF.T0;? 1->C0 =IF.T0 10? Add = IF.T0 ADD.EXE.T0? READ = IF.T1 LDA.DOF.T1 ADD.DOF.T2? ALU->BUS =.IF.T1 ADD.EXE.T1? BUS->PC =IF.T1? DR->BUS = IF.T2 LDA.EXE.T0 ADD.DOF.T3 11? BUS->IR = IF.T2? IR_Addr->BUS = LDA.DOF.T0 STA.DOF.T0 ADD.DOF.T1? BUS->LB = ADD.DOF.T3? BUS->DR = STA.EXE.T0? WRITE = STA.EXE.T1 12? BUS->Ri = LDA.EXE.T0 ADD.EXE.T1 (再译码获得BUS-> R0, BUS-> R1 )? Ri->BUS = STA.EXE.T0 ADD.DOF.T0 (再译码获得R0->BUS, R1->BUS )? 1->DOF = IF.T3? 1->EXE = DOF.T3? 1->IF = EXE.T3 13? 七、画出CPU各部分电路图如图所示 DIYCPU外观.swf? DIYCPU电路图-ALU.swf? DIYCPU组合逻辑控制器1.swf? DIYCPU组合逻辑控制器2.swf ? DIYCPU控制线布局.swf。 14? 设内存和PC寄存器的初始内容如图所示,试试 描述启动后各电路部件的状态变化(涉及 及数据全部为二进制): 15 综合内容? 设计一个组合逻辑设计方法CPU,该CPU字长8位, 有四个指令,分别是LDA, STA,ADD,HLT;内存有8个 字节;? 寄存器有R0,R1,PC,IR;? 指令意义 LDA Ri, [内存单元] 将指定内存单元的数据装入Ri寄存器 STA [内存单元] , Ri 把Ri寄存器的数据保存到指定内存单元 ADD Ri, [内存单元] Ri寄存器 内存单元->内存单元 HLT 停机 1? 首先设计指令格式: 因为指令总数是4 ,因此,使用两个位置可以表示所有手指 命令,命令格式为 OP(2位) AD (3位) AS (3位)? 用:00 表示 HLT,01表示LDA, 10 表示STA,11表 示ADD;? 内存单元地址用指令中的三位表示,用三位表示 寄存器号码,000表示R0,001表示R1;? HLT指令格式: 00 任意6位数? LDA指令格式: 01 RD (3位) AS (3位) 位 位? STA指令格式: 10 AS (3 ) RD (3 ) 位 位? ADD指令格式: 11 RD (3 ) AS (3 ) 2? 二、构造数据通路如图 3? 三、时序和控制方法 采用同步控制,采用长指令周期方案。 采用3个CPU周期分别是IF、DOF、EXE, 每 CPU周期有4个等宽度的节拍电位,每个节拍 电位有节拍脉冲; 4? 四、列出指令集中的每个机器指令 见指令操作流程 “DIYCPU指令执行过程.DOC”。 5? 五、通过上述指令执行过程获得每个微操作的逻辑 辑表达式 ,见下表:? PC->BUS = IF.T0.LDA IF.T0.STA IF.T0.ADD IF.T0.HLT ? BUS->AR = LDA.IF.T0 ADD.IF.T0 STA.IF.T0 HLT.IF.T0 LDA.DOF.T0 STA.DOF.T0 ADD.DOF.T1? BUS->LA = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 ADD.DOF.T0 HLT.IF.T0? Clear = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 HLT.IF.T0? 1->C0 = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 HLT.IF.T0 6? Add = LDA.IF.T0 STA.IF.T0 ADD.IF.T0 HLT.IF.T0 ADD.EXE.T0? READ = LDA.IF.T1 STA.IF.T1 ADD.IF.T1 HLT.IF.T1 LDA.DOF.T1 ADD.DOF.T2? ALU->BUS = LDA.IF.T1 STA.IF.T1 ADD.IF.T1 HLT.IF.T1 ADD.EXE.T1? BUS->PC = LDA.IF.T1 STA.IF.T1 ADD.IF.T1 HLT.IF.T1 7? DR->BUS = LDA.IF.T2 STA.IF.T2 ADD.IF.T2 HLT.IF.T2 LDA.EXE.T0 ADD.DOF.T3? BUS->IR = LDA.IF.T2 STA.IF.T2 ADD.IF.T2 HLT.IF.T2? IR_Addr->BUS 关键词: 计算机组成原理-中央处理器CPU5 ppt、pptx格式 免费阅读 下载 天天文库
天文库的所有资源由用户上传共享,仅供网民学习和交流。未经上传用户书面授权,请勿使用。