【自己动手画CPU】控制器设计(一)

简介: 《自己动手画CPU》系列博文探讨了一项令人兴奋的计算机科学项目——CPU控制器的设计。在第一篇文章中,作者深入介绍了控制器的设计理念和基本原理。文章首先解释了CPU控制器在计算机系统中的关键作用,然后详细讨论了设计过程中的重要步骤和考虑因素。通过作者的生动解说,读者将了解到CPU控制器设计的基本概念,并感受到从零开始构建计算机核心部件的挑战与乐趣。

1.gif

7dd2b7f171704327b7d8987c49da4628.gif


🌷1. 闯关目的

🌼第1关:单周期MIPS CPU设计

(1) 掌握控制器设计的基本原理,利用硬布线控制器的设计原理,在 Logisim 平台中设计实现 MIPS 单周期 CPU。

🌼第2关:微程序地址转移逻辑设计

(1) 理解微程序控制器中微程序分支的基本原理,要求能设计微地址转移逻辑。

🌼第3关:MIPS微程序CPU设计

(1) 掌握微程序控制器设计的基本原理,能利用微程序控制器的设计原理,设计实现多周期 MIPS 处理器。

🌼第4关:硬布线控制器状态机设计

(1) 理解硬布线控制器中有限状态机FSM的基本原理,要求能设计控制器状态机逻辑。

🌼第5关:多周期MIPS硬布线控制器CPU设计(排序程序)

(1) 理解 MIPS 多周期处理器的基本原理,能利用硬布线控制器的设计原理,设计实现 MIPS 多周期 CPU。


🌷2. 闯关内容

🌼第1关:单周期MIPS CPU设计

利用运算器实验,存储系统实验中构建的运算器、寄存器文件、存储系统等部件以及 Logisim 中其它功能部件,构建一个32位 MIPS CPU 单周期处理器。

🌼第2关:微程序地址转移逻辑设计

设计如下电路,根据指令译码信号生成微程序入口地址。

image.gif

图4.1-1

🌼第3关:MIPS微程序CPU设计

对照多周期 MIPS 处理器数据通路,采用微程序控制器的设计方法实现控制器,构造多周期 MIPS 处理器,要求能支持表中的8条 MIPS 核心指令,最终设计实现的 MIPS 处理器能运行实验包中的冒泡排序测试程序 sort.asm,该程序自动在数据存储器0~15号字单元中写入16个数据,然后利用冒泡排序将数据升序排序。实验电路应能自动统计指令数目、时钟周期数。

🌼第4关:硬布线控制器状态机设计

在logisim中打开实验资料包中的 data.circ 文件,在对应电路中完成偶校验检错电路。输入:17位校验码,校验位存放在最高位;输出:16位原始数据,1位检错位;实验电路输入输出引脚定义,注意17位校验码的每一位都通过分线器利用隧道标签引出,方便实验时使用。

🌼第5关:多周期MIPS硬布线控制器CPU设计(排序程序)

(1) 构建主要功能部件和数据通路

在 Logisim 平台中设计 MIPS 多周期处理器所需的主要功能部件,其中寄存器文件使用 cs3410 中的标准库,其中运算器既可以使用运算器实验中自行设计的运算器,也可以使用标准库中的 ALU 模块,构建多周期 MIPS 处理器数据通路,最终将各功能部件连接形成数据通路。

image.gif

图4.1-2

(2) 构建硬布线控制器

根据给定的状态机,构建硬布线控制器

image.gif

图4.1-3

要求支持8条基本指令

image.gif

图4.1-4

图4.1-5

🌷3. 闯关步骤

🌼第1关:单周期MIPS CPU设计

image.gif

图4.1-6

🌼第2关:微程序地址转移逻辑设计

图4.1-7

🌼第3关:MIPS微程序CPU设计

image.gif

图4.1-8

🌼第4关:硬布线控制器状态机设计

image.gif

图4.1-9

🌼第5关:多周期MIPS硬布线控制器CPU设计(排序程序)

image.gif

图4.1-10


🌷4. 闯关总结

🌼第1关:单周期MIPS CPU设计

1. 理解了单周期MIPS CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个时钟周期完成。

2. 出现”can not find jar library cs3410.jar”,由于 cs3410.jar 和测试平台中的 cs3410.jar 路径不一样,可将本地 cs3410.jar 先移动到 cpu.circ 同目录下后,打开 cpu.circ,logisim 会提示找不到 cs3410.jar,重新指向同目录 cs3410.jar,存盘退出,再重新上传电路文本内容即可解决。

🌼第2关:微程序地址转移逻辑设计

1. 地址转移逻辑电路用于产生下一条微指令的地址,主要由两级与门、或门构成。地址转移逻辑需要用到的数据信号有:后续微地址 μA3-μA0 、判别位 P1 、指令操作码 IR7-IR5 。

2. 微地址寄存器 74LS175 为控制存储器提供微指令地址。当 CLR = 0 时,微地址寄存器清零,从控制存储器 00H 地址开始执行微程序,地址转移逻辑生成下一条微指令的地址,如果时序信号连续发生,微指令也会按一定的顺序接连输出。

🌼第3关:MIPS微程序CPU设计

1. 设计思路:在MIPS多周期CPU(微程序)子电路中,构建CPU数据通路 PC、MEM、IR、DR、RegFile、ALU、Controller。

2. 实现微程序地址转移逻辑由指令状态变换图可知。

🌼第4关:硬布线控制器状态机设计

设计思路:首先分析所有指令的执行周期、间址周期、执行周期、中断周期的微操作序列,其中执行周期、间址周期、中断周期的微操作序列对所有指令时通用的,不同指令的执行周期不同;然后选择CPU的控制方式,每条指令都是对应的微操作序列构成,然后对第一步微操作序列划分到各个机器周期的节拍中绘制机器周期、节拍、指令的所有微操作图,以此写出每个微操作的组合逻辑表达式,以此进行电路设计。

🌼第5关:多周期MIPS硬布线控制器CPU设计(排序程序)

多周期MIPS CPU硬布线控制器设计和单周期CPU相比,仅是微指令控制器改变成硬布线控制器,而其他部分并未改变,所以数据通路部分和微指令控制器多周期MIPS CPU一样。

目录
相关文章
|
7月前
|
存储 缓存 并行计算
CPU组成元素:运算器+控制器(一)
CPU组成元素:运算器+控制器
1521 0
|
7月前
|
存储 数据处理 vr&ar
②CPU - 运算器、控制器 【软考-软件设计师考点】
②CPU - 运算器、控制器 【软考-软件设计师考点】
248 0
|
3月前
|
Linux
使用funcgraph-retval和bpftrace/kprobe快速定位并解决cpu控制器无法使能的问题
使用funcgraph-retval和bpftrace/kprobe快速定位并解决cpu控制器无法使能的问题
|
7月前
|
存储 缓存 调度
CPU组成元素:运算器+控制器(二)
CPU组成元素:运算器+控制器
151 0
|
7月前
|
存储
【头歌·计组·自己动手画CPU】四、控制器设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】四、控制器设计(理论版) 【计算机硬件系统设计】
288 0
|
7月前
|
安全 机器人
ABB PLC自动化可编程逻辑控制器PLC AC500型 CPU
ABB PLC自动化可编程逻辑控制器PLC AC500型 CPU
|
7月前
|
存储 开发框架 算法
【自己动手画CPU】控制器设计(二)
作者深入探讨了自制CPU的控制器设计,为自学者提供了宝贵的实践指导。文章详细介绍了控制器的设计原理与关键步骤,涵盖了寄存器的配置、指令的执行以及时序控制等方面内容。通过图文并茂的演示,读者可以清晰了解如何从零开始搭建一个基本的控制器,并使其能够执行简单的指令。作者以通俗易懂的方式呈现技术细节,使初学者能够轻松理解和模仿。
625 0
【自己动手画CPU】控制器设计(二)
MOTOROLA MVME162-13 控制器将向CPU发出信
MOTOROLA MVME162-13 控制器将向CPU发出信
76 0
MOTOROLA MVME162-13 控制器将向CPU发出信
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十四章:硬布线控制器
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十四章:硬布线控制器
154 0
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十三章:微程序控制器
基于Verilog HDL与虚拟实验平台的计算机组成与CPU实验第十三章:微程序控制器
169 0