文档库 最新最全的文档下载
当前位置:文档库 › CPU组成与机器指令执行周期实验

CPU组成与机器指令执行周期实验

CPU组成与机器指令执行周期实验
CPU组成与机器指令执行周期实验

CPU组成与机器指令执行周期实验

一、实验目的

1. 将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机。

2. 用微程序控制器控制模型计算机的数据通路。

3. 通过TEC-5执行由8条机器指令组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。

二、实验电路

本次实验将前面几个实验中的所有电路,包括运算器、存储器、通用寄存器堆、微程序控制器等模块组合在一起,构成一台简单的模型机。因此,在基本实验中,这是最复杂的一个实验,也将是最有收获的一个实验。

在前面的实验中,实验者本身作为“控制器”,完成了对数据通路的控制。而在本次实验中,数据通路的控制将交由微程序控制器来完成。TEC-5从内存中取出一条机器指令到执行指令结束的一个指令周期,是由微程序完成的,即一条机器指令对应一个微程序序列。

三、实验设备

1. TEC-5计算机组成原理实验系统1台

2. 逻辑测试笔一支(在TEC-5)上

3. 双踪示波器一台(公用)

4. 直流万用表一只(公用)

四、实验任务

1. 对机器指令组成的简单程序进行译码。将下表的程序按机器指令格式手工汇编成二进制机器代码,此项任务请在预习时完成。

2. 按照下面框图,参考前面实验的电路图完成连线,工作量大概是:控制台、时序

部件、数据通路和微程序控制器之间的连线。控制器是控制部件,数据通路是执行部件,时序发生器是时序部件。注意通用寄存器堆RF的RD1、RD0、RS1、RS0、WR1、WR0与IR3-IR0间的连线。

3. 将任务1中的程序代码用控制台指令存入内存中,并根据程序的需要,用数码开关SW7-SW0设置通用寄存器的数据。注意:由于设置通用寄存器时会破坏存储器单元的数据,因此应先设置寄存器中的数据,再设置存储器中的程序和数据。要求使用两组寄存器数据,一组寄存器数据在执行ADD R1,R0指令时产生进位,一组寄存器数据在执行ADD R1,R0指令时不产生进位,以观察同一程序程序的不同执行流程。

4. 用单拍(DP)方式执行一遍程序,记录最后得到的四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值比较。执行时注意观察各个指示灯的显示,以跟踪程序执行的详细过程(可观察到每一条微指令的执行过程)。

5. 用连续方式再次执行程序。这种情况相当于计算机正常的工作。程序执行到STP指令后自动停机。读出寄存器中的运算结果,与理论值比较。

五、实验要求

1. 务必做好实验预习,这样在实验中才能做到头脑清醒、思路清晰、忙而不乱、心中有数。

2. 根据实验任务的要求,预习时做好必要的准备,填好相关表格、数据和理论分析值,以便与实验值对照。

3. 本次实验接线较多,务必仔细,以免因接线错误导致控制出错,影响实验进度。

4. 写出实验报告,内容是:

(1) 实验目的。

(2) 实验任务1-5中的数据表格。

(3) 值得讨论的其他问题。

六、实验步骤和实验结果

(1)对机器指令系统组成的简单程序进行译码。

(2)接线

本实验接线比较多,需仔细。

接线表

只要把上表中同列的信号用线连接即可,一共接线33条。

接好线后,将编程开关拨到“正常位置”。合上电源,按CLR#按钮,使TEC-5实验实验系统处于初始状态。

(3)存程序代码,设置通用寄存器R0、R1、R2和R3的第一组值及存储器相关单元的数据。本组的寄存器数据是R0=35H,R1=43H,R2=10H,R3=07H。存储器10H单元的内容为55H。选择这组数据的目的是执行ADD R1,R0指令时不产生进位C,从而在执行JC R3指令时不产生跳转,而是顺序执行。

●设置通用寄存器R0、R1、R2和R3的值

在本操作中,我们打算使R0=35H,R1=43H,R2=10H,R3=07H

1.令DP=0,DB=0,使系统处于连续运行状态。令SWC=0,SWB=1,SW A=1,使系统处于写寄存器状态WRF。按CLR#按钮,使实验系统处于初始状态。

2.在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容。例如可将该地址设置为FFH。按一次QD按钮,将FFH写入左端口地址寄存器AR。

3.在SW7—SW0上设置00H,作为通用寄存器R0的寄存器号。按一次QD按钮,将00H 写入指令寄存器IR。

4.在SW7—SW0设置35H,按一次QD按钮,将35H写入IR指定的R0寄存器。

5.在SW7—SW0上设置01H,作为通用寄存器R1的寄存器号。按一次QD按钮,将01H 写入指令寄存器IR。

6.在SW7—SW0设置43H,按一次QD按钮,将43H写入IR指定的R1寄存器。

7.在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号。按一次QD按钮,将02H 写入指令寄存器IR。

8.在SW7—SW0设置10H,按一次QD按钮,将10H写入IR指定的R2寄存器。

9.在SW7—SW0上设置03H,作为通用寄存器R3的寄存器号。按一次QD按钮,将03H 写入指令寄存器IR。

10. 在SW7—SW0设置07H,按一次QD按钮,将07H写入IR指定的R3寄存器。设置寄存器内容完毕。按CLR#按钮,使系统恢复到初始状态。

注意:设置完R0、R1、R2、R3的值后,最好用读寄存器控制台操作检查一下写入的内容是否正确。读寄存器内容的控制台操作见第一章的第七部分控制台。

●存程序机器代码

本操作中,我们从00地址开始存8个机器代码:01H,5CH,39H,4AH,22H,1EH,78H,60H。在10H单元存入55H,作为10H单元的初值,以检查LDA和STA两条指令的作用。

1.令DP = 0,DB = 0,使实验系统处于连续运行状态。令SWC = 0、SWB = 0、SWA = 1,使实验系统处于写双端口存储器工作方式WRM。按CLR#按钮,使实验系统处于初始状态。

2.置SW7—SW0为00H,按QD按钮,将00H写入左端口地址寄存器AR。

3.置SW7—SW0 为01H,按QD按钮,将01H写入存储器00H单元。AR自动加1,变为01H。

4.置SW7—SW0 为5CH,按QD按钮,将5CH写入存储器01H单元。AR自动加1,变为02H。

5.置SW7—SW0 为39H,按QD按钮,将39H写入存储器02H单元。AR自动加1,变为03H。

6.置SW7—SW0 为4AH,按QD按钮,将4AH写入存储器03H单元。AR自动加1,变为04H。

7.置SW7—SW0 为22H,按QD按钮,将22H写入存储器04H单元。AR自动加1,变为05H。

8.置SW7—SW0 为1EH,按QD按钮,将1EH写入存储器05H单元。AR自动加1,变为06H。

9.置SW7—SW0 为78H,按QD按钮,将78H写入存储器06H单元。AR自动加1,变为07H。

10.置SW7—SW0 为60H,按QD按钮,将60H写入存储器07H单元。AR自动加1,变为08H。

11.按CLR#按钮,使实验系统恢复到初始状态。

12.置SW7—SW0为10H,按QD按钮,将10H写入左端口地址寄存器AR。

13.置SW7—SW0 为55H,按QD按钮,将55H写入存储器10H单元。AR自动加1,变为11H。

往存储器输入程序和数据结束,按CLR#按钮,使实验系统恢复到初始状态。

注意:设置完存储器的程序和数据后,最好用存储器器控制台操作检查一下写入的内容是否正确。读存储器内容的控制台操作见第一章的第七部分控制台。

●用单拍(DP)方式执行一遍程序。

置SWC=0,SWB=0,SW A=0,DP=1,DB=0,使实验系统处于单拍运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后一次一次按QD 按钮,使程序一拍一拍的执行。

在单拍执行过程中,首先要随时监测AR、PC、μA5—μA0和IR的值,以判定程序执行到何处,正在执行哪条指令和微指令。对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。程序执行的结果如下:

初值:R0=35H,R1=43H,R2=10H,R3=07H。存储器10H单元的内容为55H。

1.ADD R1,R0

执行结果R0=35H,R1=78H,R2=10H,R3=07H。存储器10H单元的内容为()。无进位C。

2.JC R3

执行结果R0=35H,R1=78H,R2=10H,R3=07H。存储器10H单元的内容为()。PC为()。进位C不变。

3.STA R1,[R2]

执行结果R0=35H,R1=78H,R2=(),R3=07H。存储器10H单元的内容为()。

4.LDA R2,[R2]

执行结果R0=35H,R1=78H,R2=(),R3=07H。存储器10H单元的内容为()。

5.AND R2,R0

执行结果R0=35H,R1=78H,R2=(),R3=07H。存储器10H单元的内容为()。

6.SUB R2,R3

执行结果R0=35H,R1=78H,R2=(),R3=07H。存储器10H单元的内容为()。进位C为1。

7.OUT R2

执行结果R0=35H,R1=78H,R2=(),R3=07H。存储器10H单元的内容为()。可在数据总线DBUS指示灯上观察到()。

8.STP

执行结果R0=(),R1=(),R2=(),R3=()。存储器10H 单元的内容为()。

最后的执行结果可通过控制台的读寄存器操作和读存储器操作观察到,在观察最后结果之前,首先应按CLR#按钮,使实验系统处于初始状态。

●用连续方式执行一遍程序。

1.由于上面的单拍执行程序,已破坏了寄存器R1、R2和存储器10单元的内容(程序没有破坏),因此需要重新设置寄存器R1、R2和存储器10单元的值。初值:R0=35H,R1=43H,R2=10H,R3=07H。存储器10H单元的内容为55H。

2.置SWC=0,SWB=0,SWA=0,DP=0,DB=0,使实验系统处于连续运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后按一次QD按钮,则程序自动连续运行到地址为07H的STP指令。

执行结果R0=(),R1=(),R2=(),R3=()。存储器10H

单元的内容为()。

最后的执行结果可通过控制台的读寄存器操作和读存储器操作观察到,在观察最后结果之前,首先应按CLR#按钮,使实验系统处于初始状态。

(4)存程序代码,设置通用寄存器R0、R1、R2和R3的第二组值及存储器相关单元的数据。本组的寄存器数据是R0=86H,R1=88H,R2=10H,R3=07H。存储器10H单元的内容为55H。选择这组数据的目的是执行ADD R1,R0指令时产生进位C,从而在执行JC R3指令时产生跳转,而不是顺序执行。

●设置通用寄存器R0、R1、R2和R3的值

在本操作中,我们打算使R0=86H,R1=88H,R2=10H,R3=07H

1.令DP=0,DB=0,使系统处于连续运行状态。令SWC=0,SWB=1,SW A=1,使系统处于写寄存器状态WRF。按CLR#按钮,使实验系统处于初始状态。

2.在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容。

例如可将该地址设置为0FFH。按一次QD按钮,将0FFH写入左端口地址寄存器AR。

3.在SW7—SW0上设置00H,作为通用寄存器R0的寄存器号。按一次QD按钮,将00H 写入指令寄存器IR。

4.在SW7—SW0设置86H,按一次QD按钮,将86H写入IR指定的R0寄存器。

5.在SW7—SW0上设置01H,作为通用寄存器R1的寄存器号。按一次QD按钮,将01H 写入指令寄存器IR。

6.在SW7—SW0设置88H,按一次QD按钮,将88H写入IR指定的R1寄存器。

7.在SW7—SW0上设置02H,作为通用寄存器R2的寄存器号。按一次QD按钮,将02H 写入指令寄存器IR。

8.在SW7—SW0设置10H,按一次QD按钮,将10H写入IR指定的R0寄存器。

9.SW7—SW0上设置03H,作为通用寄存器R3的寄存器号。按一次QD按钮,将03H写入指令寄存器IR。

10.在SW7—SW0设置07H,按一次QD按钮,将07H写入IR指定的R3寄存器。设置寄存器内容完毕。按CLR#按钮,使系统恢复到初始状态。

注意:设置完R0、R1、R2、R3的值后,最好用读寄存器控制台操作检查一下写入的内容是否正确。读寄存器内容的控制台操作见第一章的第七部分控制台。

●存程序机器代码

本操作中,我们从00地址开始存8个机器代码:01H,5CH,39H,4AH,22H,1EH,78H,60H。在10H单元存入55H,作为10H单元的初值,以检查LDA和STA两条指令的作用。

1.令DP = 0,DB = 0,使实验系统处于连续运行状态。令SWC = 0、SWB = 0、SW A = 1,使实验系统处于写双端口存储器工作方式WRM。按CLR#按钮,使实验系统处于初始状态。

2.置SW7—SW0为00H,按QD按钮,将00H写入左端口地址寄存器AR。

3.置SW7—SW0 为01H,按QD按钮,将01H写入存储器00H单元。AR自动加1,变为01H。

4.置SW7—SW0 为5CH,按QD按钮,将5CH写入存储器01H单元。AR自动加1,变为02H。

5.置SW7—SW0 为39H,按QD按钮,将39H写入存储器02H单元。AR自动加1,变为03H。

6.置SW7—SW0 为4AH,按QD按钮,将4AH写入存储器03H单元。AR自动加1,变为04H。

7.置SW7—SW0 为22H,按QD按钮,将22H写入存储器04H单元。AR自动加1,变为05H。

8.置SW7—SW0 为1EH,按QD按钮,将1EH写入存储器05H单元。AR自动加1,变为06H。

7.置SW7—SW0 为78H,按QD按钮,将78H写入存储器06H单元。AR自动加1,变为07H。

8.置SW7—SW0 为60H,按QD按钮,将60H写入存储器07H单元。AR自动加1,变为08H。

9.按CLR#按钮,使实验系统恢复到初始状态。

10.置SW7—SW0为10H,按QD按钮,将10H写入左端口地址寄存器AR。

11.置SW7—SW0 为55H,按QD按钮,将55H写入存储器10H单元。AR自动加1,变为11H。

往存储器输入程序和数据结束,按CLR#按钮,使实验系统恢复到初始状态。

注意:设置完存储器的程序和数据后,最好用存储器器控制台操作检查一下写入的内容是否正确。读存储器内容的控制台操作见第一章的第七部分控制台。

●用单拍(DP)方式执行一遍程序。

置SWC=0,SWB=0,SW A=0,DP=1,DB=0,使实验系统处于单拍运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后一次一次按QD 按钮,使程序一拍一拍的执行。

在单拍执行过程中,首先要随时监测AR、PC、μA5—μA0和IR的值,以判定程序执行到何处,正在执行哪条指令和微指令。对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。程序执行的结果如下:

初值:R0=86H,R1=88H,R2=10H,R3=07H。存储器10H单元的内容为55H。

1.ADD R1,R0

执行结果R0=(),R1=(),R2=(),R3=()。存储器10H 单元的内容为()。有进位C。

2.JC R3

执行结果R0=(),R1=(),R2=(),R3=()。存储器10H 单元的内容为()。PC为()。进位C不变。

3.STP

执行结果R0=(),R1=(),R2=(),R3=()。存储器10H 单元的内容为(),进位C为1。

最后的执行结果可通过控制台的读寄存器操作和读存储器操作观察到,在观察最后结果之前,首先应按CLR#按钮,使实验系统处于初始状态。

●用连续方式执行一遍程序。

1.由于上面的单拍执行程序,已破坏了寄存器R1内容(程序没有破坏),因此需要重新设置寄存器R1的值。初值:R0=86H,R1=88H,R2=10H,R3=07H。存储器10H单元的内容为55H。

2.置SWC=0,SWB=0,SWA=0,DP=0,DB=0,使实验系统处于连续运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后按一次QD按钮,则程序自动连续运行到地址为07H的STP指令。执行结果R0=(),R1=(),R2=(),R3=()。存储器10H单元的内容为()。

最后的执行结果可通过控制台的读寄存器操作和读存储器操作观察到,在观察最后结果之前,首先应按CLR#按钮,使实验系统处于初始状态。

数据通路实验报告

非常简单CPU数据通路设计实验报告非常简单CPU数据通路设计【实验目的】 1. 掌握CPU的设计步骤 2. 学会芯片的运用及其功能 【实验环境】 Maxplus2环境下实现非常简单CPU数据通路的设计 【实验内容】 非常简单CPU的寄存器:一个8位累加器AC,一个6位的地址寄存器绘制 AR,一个6位的程序计数器PC,一个8位的数据寄存器DR,一个2位的指令寄存器IR。其数据通路详见教材P。 1、零件制作 6位寄存器 (自行设计) 6位计数器 (自行设计) 8位寄存器 (可选择74系列宏函数74273) 8位计数器 (由两个74161构成) 2位寄存器 (由D触发器构成,自行设计) 6三态缓冲器 (自行设计,可由74244内部逻辑修改而成) 8三态缓冲器 (选择74系列宏函数74244,或作修改) alu模块 (自行设计,限于时间,其内部逻辑不作要求) 2、选择器件,加入数据通路顶层图 8位累加器AC:选择8位计数器 6位地址寄存器AR:reg6 6位的程序计数器PC:cou6

8位的数据寄存器DR:选择8位寄存器 2位的指令寄存器IR:选择2位寄存器 3、为PC、DR加入三态缓冲器。 4、调整版面大小,器件位置。 5、设计地址引脚、数据引脚、8位内部总线,加入数据引脚到内部总线的 缓冲器。 6、连接各器件之间以及到内部总线的线路,设计并标注各控制信号。 7、(选做)编译之后,给出微操作 AR<-PC 的测试方法及仿真结果。 8、实验报告中应给出各元部件的实现方法、内部逻辑贴图、打包符号说 明及顶层的“非常简单CPU”数据通路图。 实验报告 一、实验步骤 基于前面非常简单CPU的讲解,我掌握了非常简单CPU的指令集结构及非常简单CPU的指令读取过程和执行过程,本次实验是在上次实验的基础之上完成非常简单CPU数据通路的设计,其步骤如下: (1)、AC累加器原理图如下:

时钟周期.机器周期.指令周期的含义

时钟周期.机器周期.指令周期的含义 时钟周期: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是 单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最 基本的、最小的时间单位。 在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ 的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250ns。由于 时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统 一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速 度就越快。 8051单片机把一个时钟周期定义为一个节 第 1 页 拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段 完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周 期(状态周期)组成。 8051系列单片机的一个机器周期同6个 S周期(状态周期)组成。前面已说过一个 时钟周期定义为一个节拍(用P表示),二个节拍定义 第 2 页 为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就 是说一个机器周期=6个状态周期=12个时钟周期。 例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒; 指令周期: 执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周 期也不同。 对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译 码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则 第 3 页

计算机组成原理实验报告单周期cpu的设计与实现

1个时钟周期 Clock 电子科技大学计算机科学与工程学院 标 准 实 验 报 告 (实验)课程名称: 计算机组成原理实验 电子科技大学教务处制表 电 子 科 技 大 学 实 验 报 告 学生姓名: 郫县尼克杨 学 号: 2014 指导教师:陈虹 实验地点: 主楼A2-411 实验时间:12周-15周 一、 实验室名称: 主楼A2-411 二、 实验项目名称: 单周期CPU 的设计与实现。 三、 实验学时: 8学时 四、 实验原理: (一) 概述 单周期(Single Cycle )CPU 是指CPU 从取出1条指令到执行完该指令只需1个时钟

周期。 一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保存结果。对于单周期CPU 来说,这些执行步骤均在一个时钟周期内完成。 (二) 单周期cpu 总体电路 本实验所设计的单周期CPU 的总体电路结构如下。 (三) MIPS 指令格式化 MIPS 指令系统结构有MIPS-32和MIPS-64两种。本实验的MIPS 指令选用MIPS-32。以下所说的MIPS 指令均指MIPS-32。 MIPS 的指令格式为32位。下图给出MIPS 指令的3种格式。 本实验只选取了9条典型的MIPS 指令来描述CPU 逻辑电路的设计方法。下图列出了本实验的所涉及到的9条MIPS 指令。 五、 实验目的 1、掌握单周期CPU 的工作原理、实现方法及其组成部件的原理和设计方法,如控制器、26 31 221 216 15 11 1 6 5 0 op rs rt rd sa func R 型指令 26 31 221 216 15 0 op rs rt immediate I 型指令 26 31 20 op address J 型指令

cpu实验报告

简易计算机系统综合设计设计报告 班级姓名学号 一、设计目的 连贯运用《数字逻辑》所学到的知识,熟练掌握EDA工具的使用方法,为学习好后续《计算机原理》课程做铺垫。 二、设计内容 ①按给定的数据格式和指令系统,使用EDA工具设计一台用硬连线逻辑控制的简易计算机系统; ②要求灵活运用各方面知识,使得所设计的计算机系统具有较佳的性能; ③对所做设计的性能指标进行分析,整理出设计报告。 三、详细设计 3.1设计的整体架构 控制信号

3.2各模块的具体实现 1.指令计数器(zhiling_PC) 元件: 输入端口:CLK,RESET,EN; 输出端口:PC[3..0]; CLK:时钟信号; RESET:复位信号; EN:计数器控制信号,为1的时候加一; PC[3..0]:地址输出信号; 代码:

波形图: 总共有九条指令,指令计数器从0000到1000;功能: 实现指令地址的输出; 2.存储器(RAM) 元件: 输入端口:PC[3..0],CLK; 输出端口:zhiling[7..0]; CLK:时钟信号; PC[3..0]:指令地址信号; zhiling[7..0]:指令输出信号; 代码:

波形图: 功能: 根据输入的地址输出相应的指令; 3.指令译码器(zlymq) 元件: 输入端口:zhiling[7..0]; 输出端口:R1[1..0],R2[1..0],M[3..0];zhiling[7..0]:指令信号; R1:目标寄存器地址; R2:源寄存器地址; M[3..0]:指令所代表的操作编号; 代码:

波形图:

功能: 实现指令的操作译码,同时提取出目标寄存器和源寄存器的地址; 4.算术逻辑运算器(ALU) 元件: 输入端口:EN_ALU,a[7..0],b[7..0],M[3..0]; 输出端口:c[7..0],z; EN_ALU:运算器的使能端; a[7..0]:目标寄存器R1的值; b[7..0]:源寄存器R2的值; M[3..0]:指令所代表的操作编号; c[7..0]:运算结果; z:运算完成的信号; 代码:

CPU设计实验报告文档(英文版)

Southeast University Microprogra m med CPU Design -- COA experiment School of Information Science and Engineering 04009XXX 2012-4-25

Purpose The purpose of this project is to design a simple CPU (Central Processing Unit). This CPU has basic instruction set, and we will utilize its instruction set to generate a very simple program to verify its performance. For simplicity, we will only consider the relationship among the CPU, registers, memory and instruction set. That is to say we only need consider the following items: Read/Write Registers, Read/Write Memory and Execute the instructions. At least four parts constitute a simple CPU: the control unit, the internal registers, the ALU and instruction set, which are the main aspects of our project design and will be studied. Instruction Set Single-address instruction format is used in our simple CPU design. The instruction word contains two sections: the operation code (opcode), which defines the function of instructions (addition, subtraction, logic operations, etc.); the address part, in most instructions, the address part contains the memory location of the datum to be operated, we called it direct addressing. In some instructions, the address part is the operand, which is called immediate addressing. For simplicity, the size of memory is 256×16 in the computer. The instruction word has 16 bits. The opcode part has 8 bits and address part has 8 bits. The instruction word format can be expressed in Figure 1 Figure 1 the instruction format The opcode of the relevant instructions are listed in Table 1. In Table 1, the notation [x] represents the contents of the location x in the memory. For example, the instruction word 00000011101110012 (03B916) means that the CPU adds word at location B916 in memory into the accumulator (ACC); the instruction word 00000101000001112 (050716) means if the sign bit of the ACC (ACC [15]) is 0, the CPU will use the address part of the instruction as the address of next instruction, if the sign bit is 1, the CPU will increase the program counter (PC) and use its content 7 as the address of the next instruction. Table 1 List of instructions and relevant opcodes

CPU设计实验报告

实验中央处理器的设计与实现 一、实验目的 1、理解中央处理器的原理图设计方法。 2、能够设计实现典型MIPS的11条指令。 二、实验要求 1、使用Logisim完成数据通路、控制器的设计与实现。 2、完成整个处理器的集成与验证。 3、撰写实验报告,并提交电路源文件。 三、实验环境 VMware Workstations Pro + Windows XP + Logisim-win-2.7.1 四、操作方法与实验步骤 1、数据通路的设计与实现 数据通路主要由NPC、指令存储器、32位寄存器文件、立即数扩展部件、ALU、数据存储器构成。其中指令存储器和数据存储器可直接调用软件库中的ROM和RAM元件直接完成,其余部件的设计如图所示: 图1.1 NPC

图1.2 32位寄存器

图1.3 立即数扩展部件 图1.4 ALU 2、控制器的设计与实现 控制器的主要设计思想如图所示 图2.1 控制器设计思想 输入 1 1 0

输出R-type ORI LW SW BEQ JUMP RegDst 1 0 0 x x x ALUSrc 0 1 1 1 0 x MemtoReg0 0 1 x x x RegWrite 1 1 1 0 0 0 MemWrite0 0 0 1 0 0 Branch 0 0 0 0 1 0 Jump 0 0 0 0 0 1 Extop x 0 1 1 1 x ALUop2 1 0 0 0 0 x ALUop1 x 1 0 0 x x ALUop0 x 0 0 0 1 x ALUop[2:0] Funct[3:0] 指令ALUctr[2:0] 111 0000 add 010 111 0010 sub 110 111 0100 and 000 111 0101 or 001 111 1010 slt 111 010 xxxx ori 001 000 xxxx Lw/sw 010 011 xxxx beq 110 表2.1 控制器设计真值表

指令周期机器周期等各种周期介绍

时钟周期: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。 在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。 8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。 8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。 例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒; 指令周期: 执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。 对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。 通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。 总线周期: 由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O接口的访问,是通过总线实现的。通常把CPU通过总线对微处理器外部(存贮器或I/O接口)进行一次访问所需时间称为一个总线周期。 总结一下,时钟周期是最小单位,机器周期需要1个或多个时钟周期,指令周期需要1个或多个机器周期;机器周期指的是完成一个基本操作的时间,这个基本操作有时可能包含总线读写,因而包含总线周期,但是有时可能与总线读写无关,所以,并无明确的相互包含的关系。

单片机时钟周期、机器周期、指令周期与总线周期

单片机时钟周期、机器周期、指令周期与总线周期 时钟周期: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。 在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。具体计算就是1/fosc。也就是说如果晶振为1MHz,那么时钟周期就为1us;6MHz的话,就是1/6us。 8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状

态周期)组成。 8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。具体计算为:时钟周期Xcycles。如果单片机是12周期的话,那么机器周期就是T×12。假设晶振频率为12M,单片机为12周期的话,那么机器周期就是1us。 例如外接24M晶振的单片机,他的一个机器周期=12/24M秒;52系列单片机一个机器周期等于12个时钟周期。设晶振频率为12MHz时,52单片机是12T的单片机,即频率要12分频。12M经过分频变为1M,由T=1/f,即一个机器周期变为1us 指令周期: 执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。通常,包含一个机器周期的指令成为单周期指令,比如CLR,MOV等等。包含两个机器周期的指令称为双周期指令。另外还有4周期指令,比如乘法和除法指令。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。 总线周期: 由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O接

单片机实验报告

本科生实验报告 实验课程单片机原理及应用 学院名称核技术与自动化工程学院 专业名称电气工程及其自动化 学生姓名 学生学号 指导教师任家富 实验地点6C902 实验成绩 二〇一五年三月二〇一五年六月 单片机最小系统设计及应用 摘要 目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用STC89C52单片机和ADC0804,LED显示,键盘,RS232等设计一个单片机开发板系统。进行了LED显示程序设计,键盘程序设计,RS232通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广

泛地应用于仪器仪表、现场数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52 第1章概述 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。 第2章实验内容 2.1单片机集成开发环境应用

实验6 CPU组成与机器指令执行实验

肇庆学院计算机学院/软件学院 实验报告 专业计算机学院班级姓名学号 课程名称:CPU组成与机器指令执行实验学年2014—2015 学期1□/ 2□ 课程类别专业必修 限选□任选□实践□ 评分:批阅老师:2016年月日 ●实验目的 (1)将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机; (2)用微程序控制器控制模型机数据通路; (3)通过CPU运行九条机器指令(排除中断指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。 ●实验电路 本次实验用到前面四个实验中的所有电路,包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。因此,在基本实验中,这是最复杂的一个实验,也是最能得到收获的一个实验。 在前面的实验中,实验者本身作为“控制器”,完成数据通路的控制。而在本次实验中,数据通路的控制将由微程序控制器来完成。CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是由微指令组成的序列来完成的,即一条机器指令对应一个微程序。 ●实验设备 (1)TEC-9计算机组成原理实验系统一台 (2)双踪示波器一台 (3)直流万用表一只 (4)逻辑测试笔一支 ●实验任务 (1)对机器指令系统组成的简单程序进行译码。 将下表的程序按指令格式手工汇编成十六进制机器代码,此项任务应在预习时完成。 地址指令机器代码 00H LDA R0,[R2] 58H 01H LDA R1,[R3] 5DH 02H ADD R0,R1 04H 03H JC +4 94H 04H AND R2,R3 3EH 05H SUB R3,R2 1BH 06H STA R3,[R2] 4BH 07H STP 60H 08H JMP [R1] 84H (2)按照下面框图,参考前面实验的电路图完成连线,控制器是控制部件,数据通路(包括上面各模块)是执行部件,时序产生器是时序部件。连线包括控制台、时序部分、数据通路和微程序控制器之间的连接。其中,为把操作数传送给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别与IR3至IR0连接,WR1、WR0也应接到IR1、IR0上。 开关控制

弱智的PIC教程之11 机器周期,指令周期

【弱智的PIC教程之11】 机器周期、指令周期 【问题引入】 上一讲中,我们单步执行时,可以看到LED一个一个被点亮。但如果连续运行,会发现LED乱闪烁 。为什么呢,我们来仔细研究一下。 下面这两张图,是RB0和RB1相继被点亮的截图。 可以看出,从RB0端口LED亮→灭→RB1亮,总共才花费2us的时间。如果将程序烧录到单片机硬件,用实际的电路进行运行,由于视觉暂留的原因,我们能看到的是8个LED全部亮,而不是一个一个依次点亮(用Protues仿真的效果与实际有差异)。 为此我们需要在每个LED点亮后,进行一段延时,让其保持一定的时间,再熄灭,点亮下一个LED。 是的,我们需要延时,增加一个延时子程序。这就是本讲要解决的问题。 【机器频率、机器周期】 每个单片机运行时,读需要一个元器件,就是晶振。如果你手头上有实物之类的电路板,可以找到上面的晶振,如下图的模样: 晶振和单片机内部的相关电路,构成一个振荡器,产生固定的振荡频率,单片机的运行全部依靠这种振荡,实现统一步

伐。可以把这种振荡比喻成为单片机的心脏。如果它出现故障停止运行了,单片机也就停止运行了。 有的电路板上找不到晶振,是因为已经固化的单片机内部了,或者使用的是陶振、阻容振荡。但这不影响我们分析。 仔细看晶振上的数值,比如我手头上的一个晶振,上面是“4MHz”,这就是单片机的心跳速度,我们叫做“机器频率”,其倒数就是“机器周期” 关于机器周期、指令周期我们在第14讲还会有进一步阐述。 回到前面这个例子来,我们是用Proteus仿真,在MPLAB IDE中,单击下面这个图标,打开PROTEUS程序: 进入到PROTEUS程序中,双击PIC16F628A,出现Edit Component对话框,如下: 这是我们在第3讲中设置的机器频率:4MHz,当然我们也可以设置成其他频率,如8MHz、20MHz等。就好比我们实际使用中,将4MHz的晶振换成8MHZ的一样。 关于晶振的使用条件,请参考该型号单片机的《数据手册》。 【指令周期】 指令周期是:单片机运行一“步”所花费的时间,等于4个机器周期。在上面的例子中,机器频率是4MHz,机器周期是1/4us,即0.25us,指令周期=4*0.25=1us。 在本讲开始的【问题引入】中,在第7us点亮RB0LED,运行两条指令后,点亮RB1LED,两条指令花去2us,所以第二张图上,显示在第7+2=9us时,RB1LED点亮。 PIC16系列的单片机大约有33条指令,绝大部分指令运行时,只需要一个指令周期。少数几条指令运行需要2个指令周期。如:GOTO、CALL等等,后面会有详细的介绍。

华中科技大学HUST类MIPS单周期微处理器设计实验报告

类MIPS单周期微处理器设计 实验报告 专业: 班级: 学号: 姓名:

一、微处理器各模块设计 各模块的框图结构如上图所示。由图可知,该处理器包含指令存储器、数据存储器、寄存器组、ALU单元、符号数扩张、控制器、ALU控制译码以及多路复用器等。图中还忽略了一个单元:时钟信号产生器,而且以上各个部件必须在时钟信号的控制下协调工作。 1.指令存储器的设计 指令寄存器为ROM类型的存储器,为单一输出指令的存储器。因此其对外的接口为clk、存储器地址输入信号(指令指针)以及数据输出信号(指令)。 (1)在IP wizard 中配置ROM,分配128个字的存储空间,字长为32位宽。 (2)选择输入具有地址寄存功能,只有当时钟上升沿有效时,才进行数据的输出。 (3)配置ROM内存空间的初始化COE文件。最后单击Generate按钮生成IROM模块。

2.数据存储器的设计 数据存储器为RAM类型的存储器,并且需要独立的读写控制信号。因此其对外的接口输入信号为clk、we、datain、addr;输出信号为dataout。 数据存储器基本建立过程同ROM的建立。 3.寄存器组设计 寄存器组是指令操作的主要对象,MIPS中一共有32个32位寄存器。在指令的操作过程中需要区分Rs、Rt、Rd的地址和数据,并且Rd的数据只有在寄存器写信号有效时才能写入,因此该模块的输入为clk、RegWriteAddr、RegWriteData、RegWriteEn、RsAddr、RtAddr、reset;输出信号为RsData、RtData。 由于$0一直输出0,因此当RsAddr、RtAddr为0时,RsData以及RtData 必须输出0,否则输出相应地址寄存器的值。另外,当RegWriteEn有效时,数据应该写入RegWriteAddr寄存器。并且每次复位时所有寄存器都清零。 代码如下: module regFile( input clk, input reset, input [31:0] regWriteData, input [4:0] regWriteAddr, input regWriteEn, output [31:0] RsData, output [31:0] RtData, input [4:0] RsAddr, input [4:0] RtAddr

MIPS单周期CPU实验报告

《计算机组成原理实验》 实验报告 (实验二) 学院名称: 专业(班级): 学生姓名: 学号: 时间:2017年11月25日

成绩: 实验二:单周期CPU设计与实现 一.实验目的 (1) 掌握单周期CPU数据通路图的构成、原理及其设计方法; (2) 掌握单周期CPU的实现方法,代码实现方法; (3) 认识和掌握指令与CPU的关系; (4) 掌握测试单周期CPU的方法; (5) 掌握单周期CPU的实现方法。 二.实验内容 设计一个单周期的MIPSCPU,使其能实现下列指令: ==> 算术运算指令 功能:rd←rs + rt。reserved为预留部分,即未用,一般填“0”。 功能:rt←rs + (sign-extend)immediate;immediate符号扩展再参加“加”运算。 (3)sub rd , rs , rt 功能:rd←rs - rt ==> 逻辑运算指令 功能:rt←rs | (zero-extend)immediate;immediate做“0”扩展再参加“或”运算。 (5)and rd , rs , rt

功能:rd←rs & rt;逻辑与运算。 (6)or rd , rs , rt 功能:rd←rs | rt;逻辑或运算。 ==>移位指令 功能:rd<-rt<<(zero-extend)sa,左移sa位,(zero-extend)sa ==>比较指令 功能:if (rs 存储器读/写指令 功能:memory[rs+ (sign-extend)immediate]←rt;immediate符号扩展再相加。即将rt寄存器的内容保存到rs寄存器内容和立即数符号扩展后的数相加作为地址的内存单元中。 (10) lw rt , immediate(rs) 读存储器 功能:rt ← memory[rs + (sign-extend)immediate];immediate符号扩展再相加。 即读取rs寄存器内容和立即数符号扩展后的数相加作为地址的内存单元中的数,然后保存到rt寄存器中。 ==> 分支指令 (11)beq rs,rt,immediate 功能:if(rs=rt) pc←pc + 4 + (sign-extend)immediate <<2 else pc ←pc + 4

8051 时钟周期,机器周期,指令周期

时钟周期 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。 在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ 的时钟频率,则时钟周期为250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。我们学习的8051单片机的时钟范围是1.2MHz-12MHz。 在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储

器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。 指令周期 指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。 通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。 以51为例,晶振22.1184M,时钟周期(晶振周期)就是(1/22.1184)μs,一个机器周期包含12个时钟周期,一个机器周期就是0.5425μs。一个机器周期一般是一条指令花费的时间,也有些是2个机器周期的指令,DJNZ,就是双周期指令,所以指令周期为0.5425μs 但不是所有机器周期都等于12个时钟周期的。

CPU设计实验报告

实验中央处理器的设计与实现 一、实验目的 1、 理解中央处理器的原理图设计方法。 2、 能够设计实现典型MIPS 的11条指令。 二、 实验要求 1、 使用Logisim 完成数据通路、控制器的设计与实现。 2、 完成整个处理器的集成与验证。 3、 撰写实验报告,并提交电路源文件。 三、 实验环境 VMware Workstatio ns Pro + Win dows XP + Logisim-wi n-2.7.1 四、 操作方法与实验步骤 1、数据通路的设计与实现 数据通路主要由NPC 、指令存储器、32位寄存器文件、立即数扩展部件、 ALU 、数据存储器构成。其中指令存储器和数据存储器可直接调用软件库中的 ROM 和RAM 元件直接完成,其余部件的设计如图所示: Cue ------- 吊孙 ----------- n -ar ch Zan [p]~ 图 1.1 NPC G —-- DO jlf* 04 4 D 04 nero & res?l ■&

幣> >曰CXI e Q

图1.3立即数扩展部件 图 1.4 ALU 2、控制器的设计与实现 控制器的主要设计思想如图所示 图2.1控制器设计思想 通过列真值表得到控制器的两部分电路,真值表如下 : 输入 000000 001101 100011 101011 000100 000010 immIC £it£ DOO -DO ooo n Q □□□non UOnflO OOC ?>:>0 DQ 000 指令 lnst :ruction[31:O] OP[5:OJ fu net [5:0] Jump ExBp Branch Mem Write ALUctr * RegWrite MemtoReg * ALUSrc 控制器 控制信号 LLLLLLLLLmM f ZERO A ()-- irnmmmiiiimiiiiifeiiim IIII93 1-] * 11114444 ".'O

cpu指令运行说明

cpu指令运行说明 cpu指令运行说明一计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器pc中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。 计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。 一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。 下面我们将举个实例来说明指令的执行过程: 开机时,程序计算器pc变为0000h。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。 例如执行指令:mov a,#0e0h,其机器码为“74h e0h”,该指令的功能是把操作数e0h送入累加器,

0000h单元中已存放74h,0001h单元中已存放e0h。当单片机开始运行时,首先是进入取指阶段,其次序是: 1 程序计数器的内容(这时是0000h)送到地址寄存器; 2 程序计数器的内容自动加1(变为0001h); 3 地址寄存器的内容(0000h)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000h的单元被选中; 4 cpu使读控制线有效; 5 在读命令控制下被选中存储器单元的内容(此时应为74h)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。 由于本次进入指令寄存器中的内容是74h(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到a累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(e0h)从存储器中取出送到cpu,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时pc已为0001h。指令译码器结合时序部件,产生74h操作码的微操作系列,使数字e0h 从0001h单元取出。因为指令是要求把取得的数送到a累加器,所以取出的数字经内部数据总线进入a累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中pc="0002h",pc 在cpu每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。cpu就是这样一条一条地执行指令,完成所有规定cpu指令运行说明二首先,cpu的内部结构可以分为控制

单片机指令周期怎么计算

单片机指令周期怎么计算 指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。 来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。 指令周期是不确定的,因为她和该条指令所包含的机器周期有关。一个指令周期=1个(或2个或3个或4个)机器周期,像乘法或除法就含有4个机器周期,单指令就只含有1个机器周期。 对于大多说的51单片机来说,1个机器周期=12个时钟周期(或振荡周期) 也有部分单片机时钟周期和振荡周期不相等,例如,1个时钟周期=2个振荡周期。 该定义指的是执行一条指令所需要的时间,通常一个指令周期会由若干个机器周期组成。指令不同,所需的机器周期数也不同。 对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。 PIC单片机指令周期计算PIC单片机的每四个时钟周期为一个内部指令周期 例如:8MHz的晶振,则内部指令周期为1/(8/4)= 0.5 uS 实例一:35us,8MHz的晶振,8位定时器,分频比1/2 ,初值E4 实例二:156.25us ,32768Hz的晶振,8位定时器,分频比1/32 ,初值FC 计算方法一:35 = =(256-初值)*分频*4/晶振+ 14/分频=(256-初值)+14/2

《单周期CPU设计》实验报告

《计算机组成原理与接口技术实验》 实验报告 学院名称: 学生姓名: 学号: 专业(班级): 合作者:

时间:2016年4月25日 成绩: 实验二: 一.实验目的 1.掌握单周期CPU数据通路图的构成、原理及其设计方法; 2.掌握单周期CPU的实现方法,代码实现方法; 3.认识和掌握指令与CPU的关系; 4.掌握测试单周期CPU的方法。 二.实验内容 设计一个单周期CPU,该CPU至少能实现以下指令功能操作。需设计的指令与格式如下: ==> 算术运算指令 (1)add rd , rs, rt(说明:以助记符表示,是汇编指令;以代码表示,是机器指令)

功能:rd←rs + rt。reserved为预留部分,即未用,一般填“0”。 (2)addi rt , rs ,immediate 功能:rt←rs + (sign-extend)immediate;immediate符号扩展再参加“加”运算。 (3)sub rd , rs , rt 完成功能:rd←rs - rt ==> 逻辑运算指令 (4)ori rt , rs ,immediate

功能:rt←rs | (zero-extend)immediate;immediate做“0”扩展再参加“或”运算。 (5)and rd , rs , rt 功能:rd←rs & rt;逻辑与运算。 (6)or rd , rs , rt 功能:rd←rs | rt;逻辑或运算。 ==> 传送指令 (7)move rd , rs 功能:rd←rs + $0 ;$0=$zero=0。 ==> 存储器读/写指令 (8)sw rt ,immediate(rs) 写存储器

相关文档
相关文档 最新文档