【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】

本文主要是介绍【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🕺作者: 主页

我的专栏
C语言从0到1
探秘C++
数据结构从0到1
探秘Linux

😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言

文章目录

    • 一、课程设计目的
    • 二、课程设计内容
    • 三、课程设计步骤
    • 四、课程设计总结

一、课程设计目的

利用经典的单总线结构运行MIPS程序,可以设计传统三级时序硬布线控制器,也可以设计现代时序硬布线控制器和微程序控制器,可以为不同的时序系统增加中断处理机制。

二、课程设计内容

  1. 单总线CPU设计(定长指令周期3级时序)(HUST)
  2. MIPS指令译码器设计

1.1.实验目的
理解指令译码的基本概念,能将32位MIPS指令字译码成不同的指令译码信号。

  1. 定长指令周期—时序发生器FSM设计

2.1.实验目的
理解传统三级时序系统中时序发生器的基本原理,能设计定长指令周期的时序发生器状态机以及输出函数。

  1. 定长指令周期–时序发生器输出

3.1.实验目的
理解传统三级时序系统中时序发生器的基本原理,能设计定长指令周期的时序发生器状态机以及输出函数。

  1. 硬布线控制器组合逻辑单元

4.1. 实验目的
理解传统三级时序系统中硬布线控制器的设计原理,能设计硬布线控制器组合逻辑单元。

  1. 定长指令周期-硬布线控制器设计

5.1.实验目的
理解传统三级时序系统中硬布线控制器的设计原理。

  1. 定长指令周期–单总线CPU设计

6.1. 实验目的
理解单总线结构CPU基本原理,能设计定长指令周期的三级时序系统,是的MIPS程序能在单总线结构上运行,最终能运行简单的排序程序sort-5.hex。

  1. 单总线CPU设计(变长指令周期3级时序(HUST)
  2. MIPS指令译码器设计
    1. 实验目的

理解指令译码的基本概念,能将32位MIPS指令字译码成不同的指令译码信号。

  1. 变长指令周期–时序发生器FSM设计
    1. 实验目的

理解传统三级时序系统中时序发生器的基本原理,能设计变长指令周期的时序发生器状态机以及输出函数。

  1. 变长指令周期–时序发生器输出函数设计
    1. 实验目的

理解传统三级时序系统中时序发生器的基本原理,能设计变长指令周期的时序发生器状态机以及输出函数。

  1. 硬布线控制器组合逻辑单元
    1. 实验目的

理解传统三级时序系统中硬布线控制器的设计原理,能设计硬布线控制器组合逻辑单元。

  1. 变长指令周期-硬布线控制器设计
    1. 实验目的

理解传统三级时序系统中硬布线控制器的设计原理。

  1. 变长指令周期—单总线CPU设计
    1. 实验目的

理解单总线结构CPU基本原理,能设计定长指令周期的三级时序系统,使得MIPS程序能在单总线结构上运行,最终能运行简单的排序程序sort-5.hex。

  1. 单总线CPU设计(现代时序)HUST)
  2. MIPS指令译码器设计
    1. 实验目的

理解指令译码的基本概念,能将32位MIPS指令字译码成不同的指令译码信号

  1. 单总线CPU微程序入口查找逻辑
    1. 实验目的

理解传统三级时序系统中时序发生器的基本原理,学生能设计定长指令周期的时序发生器状态机以及输出函数

  1. 单总线CPU微程序条件判别测试逻辑
    1. 实验目的

理解传统三级时序系统中时序发生器的基本原理,学生能设计定长指令周期的时序发生器状态机以及输出函数

  1. 单总线CPU微程序控制器设计
    1. 实验目的

理解传统三级时序系统中硬布线控制器的设计原理,学生能设计硬布线控制器组合逻辑单元

  1. 采用微程序的单总线CPU设计
    1. 实验目的

理解传统三级时序系统中硬布线控制器的设计原理

  1. 现代时序硬布线控制器状态机设计
    1. 实验目的

理解单总线结构CPU基本原理,能设计定长指令周期的三级时序系统,是的MIPS程序能在单总线结构上运行,最终能运行简单的排序程序sort-5.hex

  1. 现代时序硬布线控制器设计
    1. 实验目的

理解现代时序系统中硬布线控制器的设计原理。

三、课程设计步骤

  1. 单总线CPU设计(定长指令周期3级时序)(HUST)
  2. MIPS指令译码器设计
    1. 原理

MIPS指令译码器的设计可以分为以下几个步骤:
确定指令格式:MIPS指令有三种格式,分别是R型、I型和J型,每种格式有不同的字段和位数,因此需要先确定指令的格式。

分析指令字段:根据指令格式,确定各个字段的含义和作用。例如,R型指令中包含操作码、源操作数寄存器编号、目的操作数寄存器编号、移位量等字段,需要分析这些字段的位数和作用。

实现指令译码逻辑:根据指令格式和字段信息,设计指令译码逻辑。这一步通常需要使用逻辑门、多路选择器、寄存器等组件来实现。

测试和验证:设计完指令译码器后,需要进行测试和验证,确保它能够正确地解析各种指令,并将指令字段正确地传递到后续的执行阶段。

格式如下:

此实验需要mips知道操作码op对应的值,下面给出实验中用到的mips指令的op码的值

Mips指令Op码
LW100011(23)
SW101011(2b)
ADDI001000(08)
BEQ000100(04)
[SLT](https://so.csdn.net/so/search?q=SLT&spm=1001.2101.3001.7020" \t "https://blog.csdn.net/qq_62325622/article/details/_blank)000000(00)
  1. 接线图image.png
  2. 定长指令周期—时序发生器FSM设计

2.1.原理
状态机负责现态与次态的转换,输出函数根据当前状态生成状态周期电位和节拍周期电位。

单总线结构中如果采用定长指令周期,所有MIPS指令都需要3个机器周期,每个机器周期4个时钟节拍,一共需要12个状态,状态图如下: 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
按状态图填写相应的excel表,自动生成次态逻辑表达式后,即可在logisim中自动生成该电路。

2.2. 接线图image.png

  1. 定长指令周期–时序发生器输出

3.1.原理
根据状态转化图我们可以容易的填写输出函数的真值表,得到生成函数自动生成输出函数的逻辑电路。


3.2.接线图image.png

  1. 硬布线控制器组合逻辑单元

4.1. 原理
在硬布线控制器中,每个控制信号c都对应一个指令,并且硬布线控制器可以看作是存储组件和逻辑电路的结合体。因此,我们只需要了解每个操作控制信号所产生的调节作用,就能够得到它们的逻辑表达式。

通过对数据通路进行分析,我们可以得到五条不同的指令,并且在取指令周期、计算周期和执行周期的不同阶段,会产生不同的控制信号。这些控制信号的产生条件需要综合考虑下面两个图表。对于所有的控制信号,需要推导出其逻辑表达式,同时在设计 CPU 电路时对控制点的逻辑表达式进行化简。

可以列出所有微操作信号的产生条件,填写下面的excel表格,自动生成逻辑表达式,然后再Logisim中自动生成电路。

4.2. 接线图
image.png

  1. 定长指令周期-硬布线控制器设计

5.1. 原理
该实验是对前面的组装
5.2. 接线图image.png

  1. 定长指令周期–单总线CPU设计

6.1. 原理
该实验是对前面实验的全部封装
6.2. 接线图image.png

  1. 单总线CPU设计(变长指令周期3级时序(HUST))
  2. MIPS指令译码器设计
    1. 原理

MIPS指令译码器设计和定长是一样的。

  1. 接线图image.png
  2. 变长指令周期–时序发生器FSM设计
    1. 原理

变长的状态机和定长的状态机有区别,要根据变长的状态机的状态转化图,填写execl表格自动生成电路。

  1. 接线图image.png

  2. 变长指令周期–时序发生器输出函数

    1. 原理

    根据上面实验的状态转化图我们可以填写出execl表格。

    1. 接线图

image.png

  1. 硬布线控制器组合逻辑单元
    1. 原理

变长的控制器和变长的控制器是一样的,因此可以使用定长的硬布线控制器组合逻辑单元的execl表直接来生成函数,然后自动生成电路图。

  1. 接线图

image.png

  1. 变长指令周期-硬布线控制器设计
    1. 原理

对前面实验的组装

  1. 接线图

image.png

  1. 变长指令周期—单总线CPU设计
    1. 原理

对前面实验的封装与测试。

  1. 接线图

image.png

  1. 单总线CPU设计(现代时序)HUST)
  2. MIPS指令译码器设计

和前面的实验一样不再赘述。

  1. 单总线CPU微程序入口查找逻辑
    1. 原理

微程序的入口需要通过状态转化图来知道,并且需要我们把微程序入口的值填写到execl表中,采用自动生成逻辑表达式自动生成电路。

  1. 接线图

image.png

  1. 单总线CPU微程序条件判别测试逻辑
    1. 原理

和前面类似,使用EXCEL自动生成即可。

  1. 接线图

image.png

  1. 单总线CPU微程序控制器设计
    1. 原理

和前面类似,使用EXCEL自动生成即可。

  1. 接线图

image.png

  1. 采用微程序的单总线CPU设计
    1. 原理

对前面实验的测试

  1. 接线图

image.png

  1. 现代时序硬布线控制器状态机设计
    1. 原理

根据状态转换图填写EXCEL表

  1. 接线图(部分)

image.png

  1. 现代时序硬布线控制器设计
    1. 原理

依据前一个实验进行逻辑连接。

  1. 接线图

image.png

四、课程设计总结

通过本课程设计,我们深入了解了单总线结构运行MIPS程序的原理和设计过程,包括传统三级时序系统、变长指令周期系统以及现代时序系统。具体内容包括MIPS指令译码器设计、定长/变长指令周期的时序发生器设计、硬布线控制器的组合逻辑单元设计、单总线CPU的设计等。
在定长指令周期3级时序系统方面,我们学会了设计MIPS指令译码器、时序发生器FSM和输出函数、硬布线控制器组合逻辑单元等,最终实现了单总线CPU能在定长指令周期内运行MIPS程序的目标。
在变长指令周期3级时序系统方面,我们针对变长指令周期的特点,设计了相应的时序发生器和硬布线控制器,使得单总线CPU能够适应不同长度的指令周期。
在现代时序系统方面,我们学习了微程序控制器的设计原理,并将其应用在单总线CPU设计中,实现了采用微程序的单总线CPU设计以及现代时序硬布线控制器的状态机设计和硬布线控制器的设计。
通过这些实验,我们对计算机体系结构的实际设计有了更深入的理解,同时也提高了我们的设计能力和实践能力。这些知识和技能对我们今后在计算机体系结构领域的学习和工作都将大有裨益。

这篇关于【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/719397

相关文章

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySQL的cpu使用率100%的问题排查流程

《MySQL的cpu使用率100%的问题排查流程》线上mysql服务器经常性出现cpu使用率100%的告警,因此本文整理一下排查该问题的常规流程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一... 目录1. 确认CPU占用来源2. 实时分析mysql活动3. 分析慢查询与执行计划4. 检查索引与表

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作