资源预览内容
第1页 / 共102页
第2页 / 共102页
第3页 / 共102页
第4页 / 共102页
第5页 / 共102页
第6页 / 共102页
第7页 / 共102页
第8页 / 共102页
第9页 / 共102页
第10页 / 共102页
亲,该文档总共102页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Datapaths1指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRALU指令寄存器 IR指令译码器操作控制器 时序产生器时钟状态 反馈取指 控制执行 控制cccc+120 21 22 23 243040CLA ADD 30 STA 40 NOP JMP 21000 006000 024 JMP 21JMP 21000 024000 021000 006000 006000 025000 021Datapaths2具体步骤如下: 1)根据程序计数器PC的内容从内存中取出一条指令,放置于指令 寄存器IR中; 2)分析IR中的操作码,决定应执行的操作; 3)根据IR的地址码取出参加运算的操作数; 4)对操作数进行运算; 5)根据IR的地址码把运算结果存入指定地址; 6)本条指令执行完毕,修改PC内容决定下一条指令所在的地址。Datapaths3时序与控制方式控制器在时钟脉冲驱动下产生节拍,一般情况下一个节拍对应于一个时钟脉 冲,如下图所示。图中用step_i 代表第i个节拍,其宽度与时钟周期相等。节 拍电位和其他信号相互组合用于控制操作,引导数据在数据通路中流动;而 在节拍的末尾处则由时钟脉冲把运算结果(或中间结果)打入寄存器。Datapaths4同步控制方式Datapaths5有限状态机(Finite State Machine, FSM)Datapaths6结构描述Datapaths7组合逻辑控制器操作码Datapaths8Datapaths9Datapaths10Datapaths11CPU 设计CPU 的设计可分为三部分: 数据通路datapath 实现真正的数据处理. 指令集 instruction set 实现程序和CPU之间的接口. 控制器 control unit 使用程序员的指令告诉数据通路 做什么。数据通路: ALU. 寄存器. 可读写的内存.Datapaths12CPU?处理器是一个很大规模的时序电路. 寄存器保存值,组成系统的状态 ALU 对存储在寄存器中的数据,进行数据处理.ALURegisters结构描述Datapaths13寄存器传送本质上,处理器只是在寄存器间传送数据,可能在ALU 中做一些计算. 引入 寄存器传送语言. 对象为寄存器. 基本的操作为 传送, 将数据从一个寄存器复制到另一个寄存器. 在传送中,利用ALU 做运算.ALURegistersDatapaths14用两个字符表示寄存器, 如 R0, R1, DR, 或 SA. 箭头表示 数据传送. 如在一个时钟周期内复制 源寄存器 R2 到 目标寄存器 R1 :R1 R2条件传送 : 仅当条件满足时进行传送如 K = 1: 传送 R3 至 R2 表示 为K=1: R2 R3在同一时钟周期内进行的多个传送.R1 R2, K: R2 R3寄存器传送语言Datapaths15表示 算术操作 :R1 R2 + R3 R3 R1 - 1表示 逻辑操作 :R2 R1 R2bitwise ANDR3 R0 R1bitwise OR表示移位:R2 sl R1 left shift R2 sr R1 right shiftRegister transfer operationsDatapaths16寄存器的方框图如上表示一个 n-bit 的寄存器. 数据: 当 Load = 1, 数据输入. 当 Load = 0, 寄存器保存当前值。 寄存器的输出总是有效. 省去时钟信号.LoadData inputData outputR0nnDatapaths17寄存器文件寄存器文件: 当代处理器通常将多个寄存器组织 到一起称为register file.与RAM类似, 寄存器用地址区分。右图为 2k x n 的寄存器文件:有2k 个寄存器,寄存器的地 址线为k bits 长. 每个寄存器存放一个n-bit 的字, ,数据输入输出为 n bits 宽.nnnkkkD data WriteD addressA addressB addressA dataB dataRegister FileDWRDAAAABBADatapaths18访问寄存器文件假设:同时给出 AA 和 BA ,则数据 同时出现在 A 和 B 输出; 当WR = 1 ,利用DA 和 D 写 入寄存器;方框图中省去了时钟信号:任何时候可以读出. 但只在时钟的上升沿写入nnnkkkD data WriteD addressA addressB addressA dataB dataRegister FileDWRDAAAABBADatapaths19寄存器文件的内部4个 n 位的寄存器文件nnnDatapaths20ALUALU的方框图: A / B 是2个 n-bit 的数值输入. FS 是 m-bit 的功能选择码, 可表示 2m 个功能. F 为 n-bit 的计算结果. 状态位 表示对应当前输出F 的附加状态: V = 1 溢出 . C 进位. N = 1 结果为负. Z = 1 结果 为0.ABALUFZNCVFSnnnmDatapaths21ALU 的功能功能选择码为5 bits 长 定义15种不同的功能。Datapaths22第1个数据通路最基本的数据通路: ALU 的2个输入来自于寄存器文 件. ALU 计算,结果存回寄存器. WR, DA, AA, BA ,FS 为控制信 号 ,决定数据通路的具体动作,如使用哪 个寄存器及执行何种运算.D data WriteD addressA addressB addressA dataB dataRegister FileWRDAAA BAABALUFZNCVFSFSnnn2225Datapaths23R0 R1 + R3 AA = 01 且 BA = 11. R1 给 A data, R3 给 B data. ALU 功能选择码 为 FS = 00010 (A + B). DA = 00 且 WR = 1. 在下一个时钟 的上升沿,ALU 结果 (R1 + R3) 存入 R0.D data WriteD addressA addressB addressA dataB dataRegister FileWRDAAA BAABALUFZNCVFSFS 0001001 11001Datapaths24Two questions需要更多的存储单元? 谁来决定读写哪个寄存器及执行何种 ALU 功能?D data WriteD addressA addressB addressA dataB dataRegister FileWRDAAA BAABALUFZNCVFSFSDatapaths25访问内存在数据通路中加入RAM. 写 RAM, 需给出地址ADRS和数 据DATA ,分别 取自寄存器的A data. 和B data 当 MW = 1 时写入 RAM. D dataWriteD addressA address B addressA dataB dataRegister FileWR DAAABAABALUFZNCVFSnQ D1D0SRAMADRSDATACSWROUTMW+5VnnnFSnMD1Datapaths26读RAM读RAM, A data 提供地址. MW = 0 结果存入寄存器. D data 有2个来源 ALU 或 RAM. 多路选择器 MD 选择数据源: 当 MD = 0, ALU 输出存入寄 存器. 当 MD = 1, RAM 输出存入寄 存器.D dataWriteD addressA address B addressA dataB dataRegister FileWR DAAABAABALUFZNCVFSnQ D1D0SRAMADRSDATACSWROUTMW+5VnnnFSnMD0Datapaths27数据可在内存与寄存器文件之间 传送. ALU 不能直接访问内存. 内存的容量受寄存器的限制。对 于 字长为n-bit 的寄存器,只能 使用2n x n 的内存. 假设RAM 与CPU 时钟一样快D dataWriteD addressA address B addressA dataB dataRegister FileWR DAAABAABALUFZNCVFSnQ D1D0SRAMADRSDATACSWROUTMW+5VnnnFSnMDDatapaths28地址为X的内存单元的内容可表示为MX. 例如: RAM 中的第1个字为 M0. 若 R1 中包含内存地址, 则MR1 表示 该单元的内容.Datapaths29寄存器传送:R3 MR0 R3 R3 + 1 MR0 R3地址为 R0 的 RAM 的数据+1. ALU 只能对寄存器运算, RAM 必须先装入寄存器,运算后再存回RAM. 假设R0 包含内存单元的地址. 数据通路如何完成该操作?Datapaths30R3 MR0AA = 00, 读 R0. R0 作为 RAM 的地址, MR0 出现在 RAM 的 OUT. MD =1, RAM 输出送到寄存器. DA = 11 且 WR = 1 ,结果存入 R3 MW =0,防止意外写入 RAM. 没有ALU (FS) 和BA.1110010D dataWriteD addressA address B addressA dataB dataRegister FileWR DAAABAABALUFZNCVFSnQ D1D0SRAMADRSDATACSWROUTMW+5VnnnFSnMDDatapaths31R3 R3 + 1AA = 11, R3 送入 ALU 的A 输入 端. FS = 00001,实现 A + 1. R3 + 1 出现在ALU 输出端 F. MD =0, ALU 输出送回寄存器. DA = 11 且 WR = 1 结果写回到R3 MW =0 ,避免意外写入内存 没有使用BA.D dataWriteD addressA address B addressA dataB dataRegister FileWR DAAABAABALUFZNCVFSnQ D1D0SRAMADRSDATACSWROUTMW+5VnnnFSnMD111110000001Datapaths32MR0 R3将R3 存回 RAM 中,其地址为 R0. AA = 00 且 BA = 11. R0 给 ADRS, R3 给 DATA. MW =1,内存写. WR =0,无需写寄存器, MD 和 DA 没有用. 不使用 ALU, 忽略 FSD dataWriteD addressA address B addressA dataB dataRegister FileWR DAAABAABALUFZNCVFSnQ D1D0SRAMADRSDATACSWROUTMW+5VnnnFSnMD000111Datapaths33加入常量 加入 常量 ,增加控制信号 MB. 这样可以用任意值初始化寄存器 和内存.D dataWriteD addressA address B addressA dataB dataRegister FileWR DAAABAQ D1D0SRAMADRSDATACSWROUTMW+5V ABALUFZNCVFSFSMDS D1 D0QConstantMBDatapaths34Control units数据通路的控制信号不同将执
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号