计算机组成原理实验:模型机的设计(CPU)

预习报告部分
一、实验目的:
 用Logisim实现CPU设计,并领会其原理及操作机制。
二、实验原理:             
现代CPU的结构主要包括以下几个主要部分:
控制单元(Control Unit):负责指令的解码和执行,控制CPU内部各个部件的协调工作。
算术逻辑单元(Arithmetic Logic Unit,简称ALU):负责进行算术运算和逻辑运算,如加减乘除、比较、位移等。
寄存器(Register):用于暂时存储数据和指令,包括通用寄存器、专用寄存器和状态寄存器等。
数据寄存器(Data Register):用于临时存储CPU需要频繁访问的数据,以提高数据读取效率。
指令寄存器(Instruction Register):用于存储CPU需要执行的指令,以提高指令的获取速度。
总线(Bus):用于CPU内部各个部件之间的数据传输和通信。
时钟(Clock):用于同步CPU内部各个部件的工作节奏,一般而言所说的CPU的主频就是指的时钟计数器的频率。
程序计数器(Program counter):程序计数器,用于存储下一跳计算机指令的地址。
CPU实现的运算操作有算术运算、逻辑运算和移位。算术单元一般简单CPU实现的运算操作有算术运算、逻辑运算和移位。算术运算主要包括加法、减法、增1、减1等,逻辑运算主要包括与、或、非、异或,移位实现左移右移或者不变。用补码表示整数的时候,加减法可以统一为加法运算。加法、减法,还需要增1、减1。通过与非和异或两个门就可以设计,由两路信号输入,通过选择功能。
控制器是整个CPU的控制中心,用来控制数据的流向,程序的转移。一般来说,控制器包括程序计数器(PC),指令译码器(ID),有时也将指令寄存器(IR)放到控制器中。总的控制功能是这样实现的:程序计数器负责保存程序执行到的位置,指令寄存器保存当前指令,指令译码器把指令转化成控制字。
三、实验内容:
通过运用Logisim软件进行模拟设计,设计并实现一个具备一定操作功能的CPU。通过熟练使用logisim软件,熟悉CPU的各个部分的作用以及具体运行过程,设计出一个完整的简易的CPU。
四、实验所用设备:                                                     PC计算机,Logisim软件
五、实验步骤:
    CPU的指令执行过程可以简单地描述为以下几个步骤:

1.初始化PC计数器:由程序计数器(PC)指定指令在存储器的位置。(程序计数器保存供识别程序位置的数值。换言之,程序计数器记录了CPU在程序里的踪迹。)
2.取指:根据PC,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)放到指令寄存器。
3.指令解码:CPU根据存储器提取到的指令来决定其执行行为。
3.1.首先译码,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。
3.2.一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其它的数值通常供给指令必要的信息,诸如一个加法(AddiTIon)运算的运算目标。
3.3.二是分析参与这次操作的各操作数所在的地址,即操作数的有效地址。
4.执行指令:在提取和解码阶段之后,紧接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。
5.数据写回:是一条指令的最终阶段,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。
6.更新PC计数器:根据指令代码和分支标志,从前面步骤得出的结果,生成下一条指令的地址放到PC里。


                                                     实验报告部分
一、实验步骤:
1.运算器
CPU实现的运算操作有算术运算、逻辑运算和移位。算术运算主要包括加法、减法、曾1、减1等,逻辑运算主要包括与、或、非、异或,移位实现左移右移或者不变。
(1)算术单元
使用一个的4选一数据选择器和一个加法器构建出一个算术单元,使用A和B进行数据输入,使用S1、S0和Cin进行不同功能的选择。

A和B是8路数据输入,S1、S0和Cin进行功能选择,右侧输出结果

(2)算术逻辑单元
将算术单元和逻辑单元结合起来,算术逻辑单元的设计旨在实现对输入A和B进行不同操作的选择,包括执行算术运算和逻辑运算。具体而言,ALU需要能够灵活地进行加法、减法、乘法、除法等算术运算,同时也能执行逻辑运算,例如与、或、非、异或等。


(3)移位器
移位器是一个重要的部件,其主要作用是对数据进行位移操作。移位器可以将二进制数据在寄存器或内存中向左或向右移动一定数量的位,实现不同的功能,通过对数据进行灵活的位移操作,提供了对各种算术和逻辑运算的支持。

(4)综合
当运算的结果超过最大表示范围的时候,就会发生溢出,状态标志设置了溢出OV、符号SI、进位CA、零ZO。将各个部分结合起来组成运算器。
溢出OV(算数)、符号SG(算数)、进位CA(算术移位)、零ZO(算术逻辑都有效)。
溢出OV检测:采用了对加法器的符号进位和最高进位进行异或运算以实现溢出判定,因此在布线时将加法器拆成了7bit+1bit。1表示溢出。
符号SG检测:通过检测加法器输出的符号位即可得出符号,为1时表示负数。
进位CA检测:移位操作移出的位或者是加法器最高位进位,因此需要在不同的操作时选用不同的线路,1表示进位。
零ZO检测:当输出为零时,所有位一定为零,因此逻辑就是全零得一,可用或非门实现。为1时,表示结果为0。

2.寄存器组
先对寄存器进行写入,并指定对哪一个寄存器写,用地址来表示一个具体的寄存器,然后从寄存器中取两个操作数输入运算器,寄存器组中有两个输出,这两个输出要分别选择连接到两个寄存器,实现选择两个寄存器分别输出到A、B两端。

3.控制器
控制器是整个CPU的控制中枢,主要任务是精确地管理和指导数据在CPU内的流动,以及有效地掌控程序的执行流程。通过生成适时的控制信号,控制器引导各个部件按照指令序列协调工作,确保数据在寄存器、运算器等部件之间正确传递。控制器包括程序计数器,指令译码器,指令寄存器。
(1)程序计数器
程序计数器存储着当前正在执行的指令的内存地址。当CPU需要执行下一条指令时,它从程序计数器中读取地址,并将其发送到内存,以获取相应的指令。程序计数器可以用寄存器、加法器和数据选择器实现。如果要顺序执行,则MUX选择常数01,指令所在地址每次加一,如果要跳转,则MUX选择下方的通路,下一条指令地址为当前地址加上偏移量。

(2)指令寄存器
指令寄存器存储当前指令的二进制表示。当控制器从内存中读取下一条指令时,该指令会被加载到指令寄存器中,以供CPU执行。

(3)控制字
通过控制字,将各个通路的控制信号汇集起来,组合成一个二进制数,通过一个二进制数实现对整个CPU内部各个功能的控制。

(4)指令译码器
指令译码器主要作用是解析和翻译从指令寄存器中读取的二进制指令。指令译码器负责理解指令的操作类型、操作数、以及执行方式,并生成相应的控制信号,以指导CPU的其他部分执行正确的操作。


其功能包括两个寄存器运算、寄存器加常量运算、写读主存、跳转。

(5)综合

4.CPU综合
1.运算器的封装:将算术逻辑单元、移位器、溢出检测等组件整合到一个模块中。

2.寄存器组的封装:是将多个寄存器单元整合到一个模块中。对每个寄存器单元添加使能端,确保在需要写入数据时进行使能。

3.控制器的封装:将程序计数器、状态寄存器、指令寄存器和指令译码器整合到一个模块中。

综合:
在一个指令周期过程中,首先,先从ROM中取指令,通过时钟的上升沿,将指令传送至指令寄存器。然后,经过指令译码、运算器处理或RAM读取等步骤,需要在第二个时钟上升沿触发相应操作。这确保了指令的解析、运算或数据访问等操作在正确的时钟周期内完成。其次,需要将运算器的计算结果或RAM中读取的数据需要送至寄存器组,因此寄存器组的操作需要第三个时钟上升沿。这确保了数据的正确传递和存储。最后,在第四个时钟上升沿时触发时,更新修改程序计数器以指向下一条指令。
综上所述,一个指令周期需要四个机器周期,且可以使用时钟发生器、一个四进制计数器和一个译码器实现。


二、实验数据及结果分析:
输入一条跳转指令,如jmp -5指令为80fb,即往上跳5个地址。如图所示

经过四次时钟上升沿,执行了跳转指令。

三、实验结论:
在本次实验过程中,我首先根据指令集和数据通路图设计了CPU的基本框架,然后逐步添加了各种控制信号和数据传输路径。通过不断调整和优化,我成功实现了一个能够执行基本指令集的CPU。同时通过在Logisim软件上实现CPU组建和功能实现实验的过程中,我深入了解到了计算机组成原理的基本概念和实际运作方式。通过设计运算器,寄存器,控制器等部分,以及对logisim软件的使用,我深入学习了计算机系统结构和数字逻辑设计的原理,进行了详细的模拟设计,这个综合性的设计过程不仅强调了各个模块的协同作业,同时也展现了整个CPU系统的高效运转,验证了CPU的功能和性能,并且保证了设计的准确性和可靠性,实现了实验预期的功能。
四、总结及心得体会:
在进行CPU设计实验的过程中,我深刻领悟到了理论知识与实践应用之间的桥梁作用。这一过程不仅锻炼了我的技术能力,尤其是在数字电路设计和计算机体系结构方面,还提升了我的创新思维和问题解决技巧。在使用 Logisim 进行 CPU 设计的过程中,我积累了许多宝贵的经验和心得。首先,设计 CPU 需要深入理解计算机体系结构和数字电路原理。通过 Logisim,我深入学习了算术逻辑单元、寄存器组、控制器等核心组件的设计与实现,这为我打下了坚实的基础。其次,时钟同步是设计中的一个重要考虑因素。在 Logisim 中,合理设置时钟同步确保了各个模块之间的协同工作,确保 CPU 在整个时钟周期内能够正确执行指令。在实现算术运算、逻辑运算、寄存器读写等功能时,我深刻体会到了每个模块的重要性。合理的模块划分、清晰的功能定义以及模块之间的高效连接,是实现一个稳健 CPU 的关键。通过Logisim工具,我学会了如何将抽象的理论概念转化为实际可操作的电路设计。此外,通过沟通交流解决问题我也明白了在项目中沟通和协调的重要性。总体而言,这次实验不仅增强了我的专业知识,也为我未来在技术领域的发展奠定了坚实基础。

  • 25
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: CPU是计算的核心处理器件,它负责执行计算的指令集,并完成各种运算和数据处理任务。简单模型实验是指使用简化的计算模型进行实验,通过模拟计算内部组成部件的工作原理和相互关系,来研究计算系统的性能和工作制。 在CPU简单模型实验中,主要关注以下几个方面: 1. 指令集和指令执行:CPU通过执行指令集中的指令来完成特定的操作,这些指令包括加法、减法、乘法、除法、逻辑运算等。在简单模型实验中,可以设计一套简化的指令集,通过模拟指令执行的过程来验证其正确性和效率。 2. 数据存储和寻址:CPU需要对数据进行存储和读取操作,而简单模型实验中可以通过设计简化的存储器模块来模拟数据的存储和读取。同时,还可以研究不同的寻址方式,如直接寻址、间接寻址等。 3. 控制逻辑和时序管理:CPU通过控制逻辑和时序管理来协调各个组成部件的工作,确保指令顺序执行,数据传输的正确性等。在简单模型实验中,可以通过设计简化的控制逻辑和时序电路来模拟CPU的工作制。 通过CPU简单模型实验的研究,可以深入理解计算内部组成部件之间的关系和工作原理,发现其中的问题和短板,并对CPU设计和实现提出优化方案。此外,还可以利用简单模型实验来培养学生的计算系统设计和调试能力,提高他们对于计算原理和体系结构的理解。 ### 回答2: CPU(Central Processing Unit)是计算中的核心组件之一,负责执行计算程序中的指令和处理数据。简单模型实验是一种计算教育实践活动,旨在通过搭建和操作基于简单电路的计算模型来理解计算的原理和工作方式。 在CPU简单模型实验中,两者都与计算的运行和功能密切相关。 首先,CPU是计算的"大脑",它能够根据输入的指令和数据进行运算、逻辑判断、存取数据等操作。它的核心部分包括算术逻辑单元(ALU)、控制单元(CU)和寄存器等。CPU可以根据不同的指令集进行工作,如x86、ARM等。 而简单模型实验是在教育环境中,为了帮助学生理解和掌握计算的基本原理而设计的一种实践活动。通过搭建和操作基于简单电路的计算模型,学生可以学习和实践计算的运行过程,了解计算组成部分之间的工作原理。这些模型实验通常包括简单的指令集、运算器、存储器等基本组件,可以演示计算中的数据运算、存储和控制等操作。 总而言之,CPU是计算中的核心组件,负责执行指令和处理数据,而简单模型实验是一种用于教育和理解计算原理的实践活动。两者相互关联,通过模型实验可以帮助学生深入理解CPU的工作原理和计算的基本原理。 ### 回答3: CPU(中央处理器)是计算系统中的重要组成部分,它负责执行计算指令和进行数据处理。简单模型实验是指通过构建一个简易的计算模型来理解和学习计算的工作原理。 CPU作为计算系统的核心,它由控制单元和算术逻辑单元组成。控制单元用于解析和执行指令,控制计算的各种操作,而算术逻辑单元则负责进行数据运算和逻辑判断。通过模拟电流的开关以及不同电平的信号来执行指令和完成运算,CPU使得计算可以高效地进行各种计算和处理操作。 简单模型实验通过搭建一个简易的计算模型来模拟和演示CPU的工作原理。在实验中,可以利用传输门、逻辑门等基础电子元件构建一个包含控制单元和算术逻辑单元的计算模型。通过这个模型,可以学习和理解计算指令的执行过程、数据传输的原理以及算术逻辑运算的方法。 在实验中可以通过输入不同的数据和指令来观察模型的响应和输出结果。这样可以更直观地了解CPU是如何解析和执行指令的,以及如何进行数据的计算和处理。通过实际操作和观察,可以让学习者更好地理解和掌握CPU的工作原理,加深对计算硬件结构的认识和理解。 总之,CPU是计算系统中的重要组成部分,简单模型实验是一种通过搭建计算模型来学习和理解CPU工作原理的方法。通过这种实验方法,可以加深对CPU和计算硬件的理解,提高对计算系统的认识。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值