【计算机组成原理】课程设计五:单总线CPU设计(一)
了计算机组成原理课程设计五其一,即控制器设计(一),属于计算机课程设计专栏本文主要是介绍
课程设计五:单总线CPU设计(一)
一、课程设计目的
(一)第1关:MIPS指令译码器设计
- 帮助学生理解指令译码的基本概念,能将32位MIPS指令字译码成不同的指令译码信号。
(二)第2、3关:单总线CPU微程序入口查找/条件判别测试逻辑
- 了解微程序控制器中微程序分支的基本原理,要求能设计微程序入口查找逻辑以及判别测试逻辑。

(三)第4关:单总线CPU微程序控制器设计
- 帮助学生理解微程序控制器基本原理,要求学生能够设计微程序控制器。
(四)第5关:采用微程序的单总线CPU设计
- 帮助学生理解单总线结构CPU基本原理,能设计基于微程序控制器的单总线CPU,使得MIPS程序能在单总线结构上运行,最终能运行简单的排序程序sort-5.hex。
(五)第6关:现代时序硬布线控制器状态机设计
- 帮助学生理解现代时序系统中硬布线控制器设计的基本原理,学生能设计硬布线控制器核心部件状态机模块。

(六)第7关:现代时序硬布线控制器设计
- 帮助学生理解现代时序系统中硬布线控制器的设计原理。
二、课程设计内容
(一)第1关:MIPS指令译码器设计
- 利用比较器等功能模块将32位MIPS 指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr信号:

- 指令译码器是控制器核心功能部件,负责将指令字翻译成一根根的指令译码信号,每一根指令译码信号代表一条具体的指令,如上图中的I1…Im。
(二)第2关:单总线CPU微程序入口查找逻辑

- 设计如上电路,根据指令译码信号生成5位的微程序入口地址。
(三)第3关:单总线CPU微程序条件判别测试逻辑
- 根据微指令字中的判别测试字段和条件反馈信息生成后续地址的多路选择信号,要求实现对应组合逻辑。
(四)第4关:单总线CPU微程序控制器设计
- 完善下图中的微程序框架,将微程序入口查找逻辑,判别测试逻辑,控制存储器等部件进行适当连接,实现微程序控制器的主要数据通路,设计微程序并加载到控制存储器中。

- 微程序设计可以通过填写3号EXCEL文件中的微程序自动生成表自动产生。

(五)第5关:采用微程序的单总线CPU设计
- 完成前面所有实验关卡以后,在本关进行最终的联调,测试排序程序。在RAM中加载sort-5.hex程序,ctrl+k自动运行,程序应该运行至0x7c1节拍停下,指令计数为251,注意最后一条指令是一条beq分支指令,会跳回当前指令继续执行,是死循环。

- 内存数据如下:

注意蓝色区域的数值为有符号降序排序。
(六)第6关:现代时序硬布线控制器状态机设计
- 利用数字逻辑电路相关知识设计现代时序硬布线核心部件状态机模块,实际状态机如下图:

- 按状态图填写5号excel表,自动生成次态逻辑表达式后,即可在logisim中自动生成该电路。

(七)第7关:现代时序硬布线控制器状态机设计
- 在实现指令译码、现代时序状态机模块后,最终实现硬布线控制器的集成,在下图中完成硬布线控制器框架连接,注意硬布线控制器组合逻辑不需要实现直接采用微程序控制器的控制存储器代替即可。

三、课程设计步骤
(一)第1关:MIPS指令译码器设计
- 指令译码器如图6.1所示。

图6.1 指令译码器电路图
(二)第2关:单总线CPU微程序入口查找逻辑
- 根据指令译码信号生成5位的微程序入口地址,如下图6.2所示。

图6.2 微程序入口地址图
- 微程序入口查找逻辑图如下图6.3所示。

图6.3 微程序入口查找逻辑图
(三)第3关:单总线CPU微程序条件判别测试逻辑
- 单总线CPU微程序条件判别测试逻辑图如下图6.4所示。

图6.4 微程序条件判别测试逻辑图
(四)第4关:单总线CPU微程序控制器设计
- 将微程序入口查找逻辑以及判别测试逻辑,控制存储器等部件进行连接,实现微程序控制器的主要数据通路,设计微程序并加载到控制存储器中,微程序自动生成表如下图所示:

图6.5 微程序自动生成表
- 完善微程序框架,如下图6.6所示。

图6.6 硬布线控制器电路图
(五)第5关:采用微程序的单总线CPU设计
- 在实现指令译码、现代时序状态机模块后,最终实现硬布线控制器的组装,在下图中完成硬布线控制器框架连接,注意硬布线控制器组合逻辑不需要实现,直接采用微程序控制器的控制存储器代替即可。

图6.7 单总线CPU结构图
(六)第6关:现代时序硬布线控制器状态机设计
- 利用数字逻辑电路相关知识设计现代时序硬布线核心部件状态机模块,状态自动转换表如图6.8所示:

图6.8 状态自动转换表
- 现代时序硬布线控制器状态机设计如下图6.9所示。






图6.9 硬布线状态机电路图
(七)第7关:现代时序硬布线控制器状态机设计
- 在实现指令译码、现代时序状态机模块后,最终实现硬布线控制器的组装,在下图中完成硬布线控制器框架连接,注意硬布线控制器组合逻辑不需要实现,直接采用微程序控制器的控制存储器代替即可。

图6.10 硬布线控制器设计图
四、课程设计总结
1.单总线 CPU 设计主要包含现代时序、变长指令周期 3 级时序、定长指令周期 3 级时序这三个重要部分。在深入探究这些时序设计时,合理的学习或研究顺序对于理解其特性和差异有着重要意义。我个人推荐按照定长时序、变长时序、现代时序的顺序开展。传统三级时序存在执行速度较慢的问题,但其结构相对简单,是理解更复杂时序的基础。
2.定长指令周期的特点是机器数和节拍数固定不变。具体而言,机器周期数确定为 3 个,节拍数设定为 4 个节拍。这种固定模式在运行过程中,对于大多数指令来说,不可避免地会造成时钟节拍的浪费。因为指令执行的复杂程度不同,简单指令可能不需要这么多的节拍和机器周期,但仍需按部就班地走完整个流程,导致了时间资源的低效利用。
3.相比之下,变长指令周期则表现出较高的灵活性。其机器周期数和节拍数并非一成不变,而是能够依据具体的指令需求进行动态调整。通过先研究定长指令周期,再深入变长指令周期,能清晰地感受到在单总线 CPU 设计方面,从相对僵化到灵活多变的转变,体会到不同时序设计背后的理念差异以及随着技术发展所带来的改进之处,这有助于更全面深入地理解单总线 CPU 设计的精髓所在。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)