计算机体系结构实验2008_第1页
计算机体系结构实验2008_第2页
计算机体系结构实验2008_第3页
计算机体系结构实验2008_第4页
计算机体系结构实验2008_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WelcometoSOCworld ComputerArchitectureExperiment ClassIV ByCharlieChenMarch5 2007ShanghaiChinaFudanUniversity Hardware Software Contents 计算机系统实验仪结构软件使用方法8位微程序控制计算机设计16位微程序控制计算机设计ARM架构16位RISC计算机设计DLX架构16位RISC计算机设计 ScheduleforCPUDesigns 指令测试及最终结果 理解实验仪结构 Cpu的Vhdl实现 微程序及程序设计 实验步骤 设计cpu结构 DocumentsforCPUDesigns 实验指导书 初期试验报告 最终实验报告 相关文档资料 Cpu框图 Vhdl代码微程序编码指令编码 电子文档 计算机结构和组成原理 冯 诺依曼计算机设计思想 存储程序概念计算机硬件基本上由运算器 控制器 存储器 输入设备和输出设备五大部件构成采用二进制来表示信息 数据和指令 运算器 多累加器结构单累加器多寄存器结构 多累加器结构 多累加器结构中两个操作数分别在寄存器堆中的两个寄存器中 Ai OP Aj Ai 第一拍 寄存器堆中的第一操作数经总线送累加器暂存器ACT 第二拍 ACT中的第一操作数送ALU的A口 寄存器堆中的第二操作数经总线由TMP 此时74373设置成透明即直通状态 送ALU的B口 ALU的运算结果送累加器A 第三拍 累加器A中的结果经BUFFER由总线送寄存器堆中 单累加器多寄存器结构 单累加器多寄存器结构中一个操作数在累加器A中 另一个在寄存器堆中 A OP Ri A 第一拍 累加器A中的第一操作数送累加器暂存器ACT 第二拍 ACT中的第一操作数送ALU的A口 寄存器堆中的第二操作数经总线送ALU的B口 ALU的运算结果经BUFFER由总线送累加器A 控制器 控制器主要由程序计数器 PC 指令寄存器 IR 指令译码器 ID 时序部件 T 微操作控制部件 uOP 中断逻辑等组成 微操作控制部件 常规逻辑控制器微程序控制器微周期 从控制存储器中取出并执行一条微指令所需的时间 微程序控制器的工作原理 uIR为微指令寄存器 用于寄存从控制存储器中读出的微指令 微指令中的控制字段经微指令译码器 uID 译码后产生微命令 发至各执行部分执行相应的微操作 其后续地址段与IR中的指令经指令译码器 ID 译出的指令码以及状态标志一起由后续微指令地址形成逻辑产生下一条微指令地址 计算机启动后 在uAR中自动形成 取指令微程序 的起始地址M 一般为0地址 即启动后就自动执行取指令微程序 每条指令所对应的微程序执行完毕 其最后一条微指令中的后续地址必然是取指令微程序的起始地址即M 微命令的编码方式 直接控制法 每一位对应一个微命令全译码法 每条微指令仅能发一个微命令分组直接译码法 相斥性微命令 相容性微命令 后续微指令地址的产生 增量方式断定方式 堆栈 向上生长型向下生长型 输入输出设备 统一编址方式独立编址方式查询方式中断方式DMA方式 总线 计算机系统实验仪结构 总体框图 说明1 U1和U2和U3 U1和U2采用XC2S50芯片 它们用于控制实验仪的工作方式 提供实验芯片与存贮器和微程序存贮器的接口 控制实验计算机的运行 采集实验计算机的运行数据 实验设计的CPU可通过串行的下载线装入U3中 以实现指定的各种功能控制单片机为MC68HC908GP32 它控制实验仪的全部工作包括设置工作方式 运行控制 数据采集 说明2 U3 32根输出线 CI31 0 同时接至32个LED发光管 显示输出状态32根输入 输出线 CO31 0 16根地址总线 输出 AB15 0 16根数据总线 DB15 0 可设置为8位方式 这时只使用DB7 0 说明3 U3的16根控制线 存贮器读 MRD 写 MWR 打印机输出 IOW 键盘输入 IOR 打印机状态 PRIX 键盘状态 KRIX 运行 RUN 复位 RESET 时钟输入 CLK和GCLK 主时钟输出 MCLK 四根备用控制线 CTRL1 CTRL4 三根MUX线 用于在单拍时选择观察的内容 说明4 U1 U2 实验CPU与存贮器和微程序存贮器的接口控制实验计算机的运行采集实验计算机的运行数据存贮器为32Kx16 微程序存贮器为1Kx32它们接有24个开关 在数字逻辑部件实验中 可接至CO23 0作为输入信号 说明5 控制单片机 RS 232串行口 可与主机 PC机 进行通讯小型字轮打印机提供给实验计算机作打印机输出设备接用4X6键盘 提供给实验计算机作键盘输入设备接有8位七段LED显示 在计算机实验时 可显示存贮器和调试信息 在数字逻辑实验时 它的高四位接至CI31 0 以七段方式显示输出信息 存贮器接口 32Kx16的存贮器 用作实验计算机的存贮器 地址线为AB15 0 数据线为DB15 0读出控制线为MRD 0有效 写入控制线为MWR 0有效 8位方式存贮器访问 存贮器为32Kx8数据总线为DB7 0 地址总线仅AB14 0有效 存贮器地址为0000 7FFFHAB15应用于控制读 写信号设CPU的读写输出信号为CRD CWR 均为0有效 如 则 MRD CRDorAB15 MWR CWRorAB15 全16位方式存贮器访问 存贮器为32Kx16它只支持字 16位 操作 即只能读出或写入16位每个地址单元为一个字 字编址方式 设CPU的读写输出信号为CRD CWR 均为0有效 如 则 MRD CRDorAB15 MWR CWRorAB15 16位 8位方式存贮器访问1 每个地址单元为一个字节 为字节编址方式 地址线AB15 1寻址字地址 AB0决定访问高位字节还时低位字节在需读出一个字节时 由CPU按地址为奇数 AB0 1 或偶数 AB0 0 来读取DB15 8或DB7 0上的数据写入时 需增加一个写高位字节允许信号 0有效 它使用CTRL1 在字写入时 AB0 0 CTRL1 0 在写入低位字节时 AB0 0 CTRL1 1 在写入高位字节时 AB0 1 CTRL1 0 16位 8位方式存贮器访问2 存贮器的写入信号有两根 一根为写低位字节 使用MWR 另一根为写高位字节 使用CTRL1 0有效 如果CPU内部有一根16位写入允许信号 WAL 0有效 则可如下得出控制信号 MWR CWRorAB0CTRL1 CWRor notAB0andWAL 微程序存贮器 实验仪配有1Kx32的微程序存贮器 又称为控存 它在实验计算机处于停机状态下可由主机访问 包括写入 读出 可直接从主机把微程序装入该存贮器中在运行时 该存贮器的地址来自U3的CI9 0 它的数据 32位 直接输出至CO31 0 微程序控制方法 一条指令是通过一段微程序的执行来实现的 微程序控制模块实现微指令的取指 执行功能 微指令编码格式 全水平编码 控制场每一位直接对应一种微操作 若控制场长m位 则至多可表示m个不同的微操作 分段编码 控制场分成若干段 如某段长i位 则可表示2i 1个互斥的即不能同时有效的微操作信号 微程序顺序控制方法 计数增量方法 用微地址计数器MPC来产生微指令地址 断定方式 微指令中设有 下地址场 它指出下条微指令的地址 微程序存贮器 控存CM 在实验芯片 XC2S150 外部 其它控制部件均应在实验芯片内如采用计数增量的微程序控制方法 则微程序首地址形成线路 可直接接至指令的操作码 微程序计数器MPC 微指令寄存器MIR等均在CPU中实现而控存CM在外部 它的地址CI9 0来自MPC的输出 它的微指令数据输出CO31 0接至MIR的输入MPC MIR等的控制和时钟信号由实验CPU控制 键盘使用方法 IOR为键盘读出信号 0有效 KRIX为键盘有数据输入标志 1有效 初始状态 KRIX 0 表示键盘无数据输入 按下 0 F 任一键后 数据打入键盘数据缓冲器中 高4位为0 并置位KRIX 表示有键输入 CPU发出IOR信号 把数据读至数据总线的低8位 并清零KRIXIOR可由CPU的读信号和片选信号产生 对于IO与存贮器统一编址的情况 可置键盘地址为8001H 这时IOR信号可如下得出 IOR notAB15ornotAB0orCRD 打印机使用方法 IOW为打印机输出信号 0有效 PRIX为打印机空闲标志 1有效 初始状态 PRIX为1 允许打印在需要输出数据打印时 IOW发一个写脉冲 低有效 把数据总线低8位 DB7 0 上的数据打入打印机数据缓冲器中 并启动打印机从缓冲器取出数据开始打印 同时使PRIX 0 这时不允许再向打印机输出数据 打印完成后 打印机状态PRIX置1 CPU可再次向打印机输出数据 JNKBaddrKRIX 0转移JNPAaddrPRIX 0转移 打印机 打印机共有三个字轮 右边两个字轮为字符和符号 左边一个字符为数字 打印机开始位置在最右边 打印时 从右到左 先打印一个右边字轮的字符 第二个中轮的字符 以后打印的均为左轮的字符 如输出的数据的高4位不等于0 则在打印完低4位的数字后自动回车换行 这也是使打印机回车的唯一方法 所以要输出某数字后回车换行 可以输出此数字加10H 例如要输出 3 后回车 只要输出 13H 即可 对于只需回车换行 不打印数据时 可输出1AH 三轮打印机字符编码 编码左中右00G 11KX22 33P 44D 55 S66MT77 M88 C99 A B R C D AE 观察信号 观察信号用于监视实验计算机的运行状态 以便于调试 两大类观察信号 外部信号 扩展信号 外部信号 地址总线 AB15 0数据总线 DB15 0控制信号 MWR MRD IOW IOR CTRL1 4I O信号 包括CI31 CI0和CO31 CO0在微程序控制计算机实验中CI9 CI0为实验计算机的微程序地址输出 CO31 CO0为微程序存贮器的微指令数据输出 CI31 CI10可由实验者任意控制 接至CPU的各个寄存器或控制信号 扩展信号 用于观察内部信号输入 接各个内部信号多路选择信号 来自外部的MUX2 0 它的控制由主机自动完成输出 至CI31 CI0 可按需使用少于32位 CI 31downto24 AwhenMUX 000 elsePC 15downto8 whenMUX 001 elseADRHwhenMUX 010 elseR0whenMUX 011 elseR2whenMUX 100 elseR4whenMUX 101 elseR6 CI 23downto16 IRwhenMUX 000 elsePC 7downto0 whenMUX 001 elseADRLwhenMUX 010 elseR1whenMUX 011 elseR3whenMUX 100 elseR5whenMUX 101 elseR7 CI 31downto24 AwhenMUX 000 elsePC 15downto8 whenMUX 001 elseADRHwhenMUX 010 elseR0whenMUX 011 elseR2whenMUX 100 elseR4whenMUX 101 elseR6 CI 23downto16 IRwhenMUX 000 elsePC 7downto0 whenMUX 001 elseADRLwhenMUX 010 elseR1whenMUX 011 elseR3whenMUX 100 elseR5whenMUX 101 elseR7 时钟和初始化 CLK输入MCLK主时钟时钟初始化 CLK输入 CLK为输入至实验芯片的时钟信号在单拍运行方式时 每次发出一个 微程序方式为两个脉冲 在全速运行方式时 CLK为连续脉冲频率可由主机设置 可为1 2 4 8MHz MCLK CPU的主时钟 由CPU产生并输出 控制外部电路时序在硬接线控制方式时 MCLK一般与CLK相同在微程序控制方式时 一般一个机器周期 MCLK 需执行三步操作 修改MPC 打入MIR 执行CPU的微操作 微程序控制方式的时序图 执行一拍CPU操作 需要两个外部时钟 CLK 在第一个时钟的上升沿修改MPC 时钟为MPCK 然后按MPC值读出微程序存贮器的内容 并在下降沿打入MIR中 时钟为MICK 在第二个时钟期间 MIR输出保持有效 在该时钟的后沿完成CPU的所有操作 时钟为MCLK 微程序控制方式的时序图 Process MCLK CLK beginIf RUN 0 or RESET 0 thenMCLK 0 elsif CLK event andCLK 0 thenMCLK notMCLK endif endprocess MPCK notMCLKandCLK MICK notMPCK 初始化 RUN用作置MPC和PC的清0信号 可在运行前置MPC和PC为0 但有一个缺点 即在一次运行停机后 如下次再运行 则MPC和PC又将从0开始执行 使用RESET作清0信号 可在需要时通过发复位命令清 0 MPC和PC 而平时不管在运行还是停机状态 它们均不改变 仅由实验计算机控制 对于PC的清0 可直接用RESET作为PC的清0的信号 MPC初始化问题 对于MPC 由于MPC一般在第一个CLK的上升沿改变数据 例接收一条指令的微程序地址或加1 在直接使用RESET清0时 有可能在第一个CLK的上升沿 MPC即改变为其它值 不再为0 使得无法执行取指令微指令 它一般放于微程序存贮器的0号单元 为此 可修改MPC的清0信号 使它在第一个CLK前保持为0 在以后才变为1 这可使用MCLR作MPC的清0信号 而MCLR如下编程 Process MCLK RESET beginif RESET 0 thenMCLR 0 elseif MCLK eventandMCLK 1 thenMCLR RUN endif endprocess 运行方式和调试手段 单步和扩展单步运行断点和屏蔽寄存器跟踪功能断点运行连续运行 软件使用方法 8位微程序控制计算机设计 8位单累加器计算机基本结构 结构描述 总线 该计算机采用单总线 即CPU的内部总线和外部总线均为一条总线 它的结构简单 实现较方便 但它的速度较慢 无法实现流水线和并行操作 CPU 它的CPU由ALU和寄存器模块 指令部件模块及微程序控制模块组成 寄存器 ALU和寄存器模块包括通用寄存器 含累加器 ALU 包括暂存器 状态寄存器等 它可采用单累加器多寄存器或多累加器结构 见第一章 ALU ALU可完成各种算术 逻辑运算功能 如加 减 与 或 取反 取负 移位等 状态寄存器可包括进位位 全零标志位 负数标志位 溢出标志位等 指令部件 指令部件模块包括程序计数器 PC 及它的控制电路 加1 接数等 指令寄存器 它一般包括一至三个8位寄存器 与最长的指令相对应 等 微程序控制部件 微程序控制摸块包括微程序存贮器 现为1Kx32 微程序计数器 MPC 及它的控制电路 加1 接数等 微指令寄存器 时序控制电路 微操作信号发生电路等 存贮器 存贮器为外接的RAM存贮器 现为32Kx8 外设 包括打印机输出设备 键盘输入设备 它们均接于总线上 有分别的读 写控制信号 定义指令系统 该计算机有一个累加器 A 8个寄存器 R0 R7 PC为16位寻址范围为64K其中0 7FFFH为32KRAM存贮器空间8000 FFFFH为I O空间编址的方法 I O采用与存贮器统一编址的方法 AB15 0为访问存贮器 AB15 1为访问I O口 三个8位指令存贮器 其中一个为IR 存放指令码 另二个分别为ADRH和ADRL 存放指令中的16位地址 确定指令相应的汇编代码 根据指令设计CPU结构框图 CPU结构的说明1 累加器 A为累加器 CA为它的打入脉中 后沿有效 下同 GA为它的打入允许端 0 为允许接数 ACT为暂存寄存器 CC和GC分别为它的打入脉冲和允许端 通用寄存器 R0 R7为8个通用寄存器 RA RB RC为选择端 用于选择中某个寄存器 WRC和WRE分别为写入脉冲和允许端 算术逻辑运算单元 ALU为8位的算术逻辑运算单元 FA FB为两路输入 FF为输出 S2 S1 S0用于选择工作方式 如加 减 FA FB等 COUT为加法的进位输出或减法的借位输出 需要时COUT的值可锁存于CY寄存器中 CCK为写入脉冲 CP为允许端 如果需执行带进位 或借位 的加法 或减法 时 ALU应该还有进位输入 ALU输出FF通过三态门 OB为控制端 加至数据总线 指令寄存器 IR为指令寄存器 它存放指令的第一字节 一般包含操作码和寄存器选择 CI和GI分别为它的打入脉冲和允许端 CPU结构的说明2 直接寻址指令寄存器 ADRH和ADRL为指令第二 三字节寄存器 存放直接寻址指令 如LDAaddr JMPaddr 的16位地址值 CA1 CA2和GA1 GA2分别为它们的打入脉冲和允许端 程序计数器 PC为16位的程序计数器 它的清0端接RESET 使它在复位时为0 从0地址开始执行程序 PCK为脉冲端 PINC为加1控制端 PLD为并行接数控制端 它的输入端来自多路开关 可选择为 1 CY 0 等 其中 1 对应于JMP指令 CY对应于JC指令 其他情况接 0 不转移 PC的输出和ADR 由ADRH ADRL组成 的输出通过多路开关加至地址总线AB 堆栈指针 SP为16位的堆栈指针 它的初态为7FFFHH 在把一个字节压入堆栈后 应把SP减一 指向下一个单元 在从堆栈弹出一个字节前 应把SP加一 设计指令流程 T0为取指令微指令 所在指令的T0拍均相同 T1 T3为执行微指令 T0中的 A ACT为节省从累加器A输出数据的时间而增设的 它把A预先送到暂存器ACT中 以后可直接传送到ALU中进行各种运算 对于微程序控制的计算机指令流程与微指令一一对应 Samples 注 除箭头上标注的信号 其它信号皆为无效状态 T0 PC MXAB 00 AB M CRDX 0 DBGI 0 IR PC 1PINC 0 PC A CG 0 ACT MPLD 0 MOVA RiT1 Ri MXFB 1S2 1 0 011 ALUMXDB 00 DBGA2 0 ADRL T2 7EHS2 1 0 111 ALUMXDB 00 DBGA1 0 ADRH T3 ADR MXAB1 0 01 AB M CRDX 0 DBGAX1 0 00 A 微程序控制实现方法 MPC为微程序计数器MCLR为它的清0端 用于复位时清0MPCMPCK为它的时钟MPLD为打入信号 用于取指令后按指令操作码散转 MPC的输入为它的打入地址 低2位接 1 其他4位接指令操作码 高4位接0 MPC输出加至微程序存储器 作为微指令地址 MIR为微指令寄存器 它的输入来自微程序存储器 微程序存储器位于实验芯片外 输出为32位微指令码 MICK为它的时钟 它根据MPC输出的微指令地址返回相应的32位微指令码到CO31 0 MIR 微程序计数增量方法 微程序段的大小 它的微程序首地址根据指令操作码编码来形成 对于本实验计算机来说 由于每条指令对应的微指令条数小于等于4 则我们可把微程序计数器打入地址的低2位置为 11 其他几位接指令操作码 采用此方法时 各条指令的微程序段的大小取决于指令的微程序入口的间距 在把微程序计数器打入地址的低2位置 11 其他位接指令操作码时 每条指令的微程序长度不能大于4 如果有某条指令需5个节拍完成操作 则应把微程序计数器打入地址的低3位接 111 根据指令条数确定操作码位数 由于本计算机有十八条指令 只需五位操作码 多余的首地址位 高位部分 可接为0 在第一次启动运行时 应把MPC清0 从而从微程序存储器的0号单元开始执行微指令 第一条微指令应为取指令微指令 在取出指令后 按指令操作码转移至相应指令的微程序入口执行 该入口处应为该指令的第二拍操作 第一拍为取指令 例 指令操作码为0000 则微程序入口地址为0000000011 以后微程序计数器加1 执行下一拍指令操作 每条指令的微程序的最后一条微指令应为取指令微指令 定义微操作信号 微操作信号比较少 因此可以采用全水平的微指令编码方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论