微机简化模型的组成(二)模型机的运行过程

➢ 68*32的存储器,至少需要多少根地址线可以访问到每一个存储单元? 7根!

➢ 数据线呢? 32根!

  • 16×8存储器表示有16个存储单元,每个存储单元8位,它有4条地址线,8条数据线。

4位二进制数表示一个十六进制数。因为十六进制数是从0-15,2进制正好要4位可以全部表示0-15。

ALU加法和减法的实现_兰陵小小春的博客-CSDN博客_alu减法怎么实现

1.2 复习

什么是寄存器

寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。
内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU 中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。

寄存器的作用

可将寄存器内的数据执行算术及逻辑运算。

存于寄存器内的地址可用来指向内存的某个位置,即寻址。

可以用来读写数据到电脑的周边设备。

*eg: 缓冲寄存器


*eg:可控缓冲寄存器

什么是累加器

在中央处理器中,累加器 (accumulator) 是一种寄存器,用来储存计算产生的中间结果。如果没有像累加器这样的寄存器,那么在每次计算 (加法,乘法,移位等等) 后就必须要把结果写回到 内存,也许马上就得读回来。然而存取主存的速度是比从算术逻辑单元到有直接路径的累加器存取更慢。

累加器的作用

在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位、循环移位和求补等操作。是运算器的主要部分。

在汇编语言程序中,累加器 —— AX 是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最后将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。

什么是暂存器

暂存器是用来暂存由数据总线或通用寄存的东西。它是中央处理器内的其中组成部分。 暂存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、 数据和位址 。

暂存器的分类

资料暂存器 —— 用来储存整数数字(参考以下的浮点暂存器)。在某些简单 / 旧的 CPU,特别的资料暂存器是累加器 ,作为数学计算之用。
位址暂存器 —— 持有记忆体位址,以及用来存取记忆体 。在某些简单 / 旧的 CPU 里,特别的位址暂存器是索引暂存器 (可能出现一个或多个)。
通用目的暂存器 ( GPR s) —— 可以保存资料或位址两者,也就是说他们是结合资料 / 位址暂存器的功用。
浮点暂存器 ( FPR s) —— 用来储存浮点数字。
常数暂存器 —— 用来持有唯读的数值(例如 0、1、圆周率等等)。
向量暂存器 —— 用来储存由向量处理器执行 SIMD 指令所得到的资料。
特殊目的暂存器 —— 储存 CPU 内部的资料,像是程式计数器 (或称为指令指标),堆叠暂存器、以及状态暂存器 (或称微处理器状态字组)。
指令暂存器 ( 英语 :instrucTIon register ) —— 储存现在正在被执行的指令
索引暂存器 ( 英语 :Index_register ) —— 是在程式执行实用来更改运算元位址之用。

累加器是寄存器吗?
累加器的符号是 A,顾名思义,其意思是加,但是其除了能做累加器外,(A)还能做寄存器。对于累加器,有一些特别的指令是专门针对累加器的,比如在 8086 中的 RL,以及 mul 等指令,而在 51 单片机中 RL 对应的寄存器只能是 A,总之 A 是个很特殊的寄存器,除了能做寄存器还能作累加器。

寄存器、累加器、暂存器有什么区别?
寄存器是 CPU 内部存储单元,即寄存器是 CPU 的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址等。
在 CPU 内部,累加器 (accumulator) 是一种寄存器,所有数学运算必须通过它进行传递和运算。

提到暂存器要从寄存器与存储器来讲:寄存器是 CPU 里的存储单元,与 CPU 离得近,所以 CPU 在运算时通常都会用寄存器当中转站。存储器是在 CPU 外部的存储器,例如,RAM、ROM。

暂存器顾名思义,就是暂时存放一定数量数据寄存器或存储器。例如,目标寄存器和结果寄存器都已有数据,需要第三个数据输入;编程时某一逻辑信号经常多次使用,中间结果需要暂时记忆。

  • 微型计算机的基本功能

   能运算、能判别及能决策;速度快

  • 模型机
    • 简化了的微型计算机
    • 可以根据模型机理解各个基本电路和部件之间的信息流通过程,指令系统的意义,程序设计的步骤,控制部件的功能及其结构,还有控制矩阵产生控制字的过程等等。

“简化模型”的硬件结构特点:

功能简单:只能做两个数的加减法;

内存量小:只有一个16x8PROM(可编程序只读存储器);

字长8位:二进制八位显示;

手动输入:用拨动开关输入程序和数据。

寄存器、计数器、加减法运算器等基本电路组成的简化模由型,可分为三大部分:处理器、存储器和I/O接口。

一、简化模型的组成

1.程序计数器PC

CLR引脚用于计数器清零,
CLK信号是其计数脉冲,
Cp是计数允许信号,
Ep是计数器内容输出控制信号,用于控制三态门的输出;

当Cp信号有效(高电平)时,如果CLK信号出现上升沿,则计数器内容加1。当计数器内容为二进制的1111时,再加1,则变为0000。

2.总线结构

任一时刻,挂接在总线上的部件只允许有一个部件向总线输出信号,允许多个部件接收信号;

任何具有输出功能的部件,必须通过三态门连接到总线上。

3.累加器A(Accumulator)

8位寄存器,主要用于存放运算中间结果,故称累加器;

累加器A中的数据有两个输出方向:

通过三态门输出到总线方向和直接送到ALU的方向。

即A的数据信号是始终连通到ALU的,不受Ea信号的控制。Ea信号控制数据向总线的输送

4.寄存器B

8位寄存器,与累加器A一起给ALU提供数据;

它的数据直接送入ALU,不送给总线,不需三态输出,无Enable控制端。

5.算术逻辑单元ALU(Arithmetic Logical Unit)

cpu内部数据加工部件,实现各种运算;

简化模型的ALU只实现加法和减法两种运算,是可控的8位二进制加减法器。

当Su=0,进行加法运算;

Su=1,实现减法运算(A-B)。


6.指令寄存器IR(Instruction Register)

8位的二进制数寄存器,其内部的数据用作指令,因此称为指令寄存器。

指令从PROM中传送过来8位二进制数。这8位数据中高4位称为操作码,直接送给控制部件CON;低4位称为操作数,通过三态门送到总线上。

7.控制部件CON

计算机中各部件动作由其控制引脚信号决定。如当Cp=1,CLR=0,Ep=0,CLK出现上升沿时,PC内数据加1。
控制引脚信号从控制部件CON发出。每个时钟周期,CON发送一组控制信号,这一组控制信号称为控制字。本模型中,CON发出的控制字是12位:
CON=Cp Ep Lm ER LI EI LA EA Su Eu LB Io
控制部件是CPU内最复杂部分,CPU复杂程度主要取决于控制部件设计。控制部件可采用硬布线逻辑实现,也可采用微程序控制方式实现。 

8.存储器(Memory)​​​​​​

PROM是16*8的只读存储器,内部有16个存储单元,每个存储单元可存放8位二进制数。

为读取PROM中某个存储单元内容,需要提供4位地址信号来选择。

MAR(Memory Address Register)就是向PROM提供地址信号的。当MAR的内容=(1000)2时,PROM的8号存储单元被选中。如果ER=1,则8号存储单元的内容可送到总线上。

9.输出存储器O与外设D

计算机内部数据要送给外部设备进行显示或处理时,都要先送到输出寄存器O中进行暂存。 

暂存在输出寄存器中的数据直接与外部设备D相连接。

简化模型中,外设D由8个发光二极管(LED)组成的。8个LED的亮灭直接反映了输出寄存器O中的8位二进制数据。

4位二进制加1计数器,计数器范围由0000~1111(0~F) 

二、模型机的运行过程

1、CLK信号

计算机中,CLK信号用于各部件同步。由专门时钟电路提供。CLK信号的周期是固定的,称为时钟周期。在现代计算机中称为CPU的主频

计算机上电后,CLK就以恒定频率由时钟电路提供给计算机中的各部件。各部件一般在CLK的上升沿或下降沿产生动作。

初始上电后,各部件CLK信号首先有效,相应部件清零。如PC的内容,一上电,就可保证位0。

2、控制字

每一个CLK开始,控制部件发出一个控制字;当CLK上升沿到来时,通过控制字控制相应部件产生动作。

    如CON=Cp Ep LM ER LI EI LA EA Su Eu LB Io

                =  0   1    1    0   0  0   0   0    0   0   0   0   

当CLK上升沿到达时,PC中的内容输出到总线上,通过总线传送到MAR中,从而选中PROM中的响应存储单元。

初始状态:

1)存储器中事先存放一些数据;

2)上电时,各寄存器有初始值:PC=0000B;

3)上电后,CLK由CON不断送出,模型机进入自动运行状态。

 

3.简化模型机运行过程

地址节拍:第一个CLK,记为T0,这时,Ep=1,Lm=1。该周期内,PC的内容送至MAR,用于选中相应的存储单元,因此该周期实现了送地址的功能,成为地址节拍;

取指节拍:第2个CLK,记为T1,这时,ER=1,Li=1。选中的PROM单元内容通过总线送到IR中。这时,该PROM单元中的内容是作为指令来使用的; 

计数节拍:第3个CLK,记为T2,这时,Cp=1。该节拍实现PC的内容加1 ;
后续3个节拍,CON发出的控制字受IR高4位(操作码)的影响。

如果通过T1节拍送到IR中的内容为(0000 1001)2,则控制部件受IR高4位(0000)的影响,在第4个CLK,也就是T3节拍时,发出的控制字为:
     CON= CP EP LM ER LI  EI LA EA SU EU LB IO 
              = 0   0    1      0  0   1   0   0   0    0    0  0  
     IR中低4位,即操作数(1001)送至MAR,作为地址用,选中PROM中的9号存储单元 
第5个CLK记为T4,继续受IR高4位的影响,控制部件使ER=1,LA=1 ,将选中的PROM的9号单元的内容送至累加器A 。 

 

第6个CLK,记为T5。该节拍所有的控制信号均为0,表示模型中任何部件都不产生动作,成为空节拍。该节拍同样是受IR高4位,即指令字段的影响,不同的指令字段,会使得T3-T5节拍发出不同的控制字。     


后续的CLK,控制部件发出的动作顺序同T0-T5节拍,如此周而复始,循环下去。 


简化模型中每6个时钟节拍为一个周期,称为指令周期

指令周期前3个节拍(T0-T2)动作固定,用于完成以PC的内容为地址,将PROM中对应存储单元指令取到IR,PC再加1,为取下一条指令做准备。这3个节拍称为取指周期

指令周期后3个节拍(T3-T5)受指令代码中高4位(操作码)影响,发出不同的控制字,这3个节拍称为执行周期

so,指令周期=取指周期+执行周期

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值