CPU控制器相关

运算器和控制器一同构成了CPU。

控制器的组成:

1.程序计数器。即PC寄存器(指令地址寄存器)

2.指令寄存器IR  多数计算机都已经将其扩充为了指令队列/栈

3.指令译码器

4.控制信号形成组件

5.时序发生器

6.地址寄存器AR 专门收纳数据的地址, 无论数据来自指令还是寄存器还是主存,他们的地址都存在此处

7数据寄存器DR

------

指令周期:计算机取出一条指令并执行所需时间,不同指令对应时间也不同

机器周期:又叫CPU周期,是指CPU与内存交换一次数据(读或者写)所需的时间。一般CPU访问存储器的用时比内部操作长,所以将访存取一个指令字的最短时间作为机器周期。

一个指令周期可能包含多个机器周期

时钟周期:一个CPU周期包含多个时钟周期,是最基本单位。

-------

以一个8位的简单计算机系统为例:概念计算机包含存储器、运算器和控制器三部分。地址总线和数据总线交错其中。。对于这样一个计算机执行指令

1)存储器读

  送地址到地址总线AB和地址寄存器AR->控制器发送读信号,启动读操作,并将数据通过数据总线送入所需寄存器

2)存储器写

  步骤和读类似,第一步仍是地址预处理,第二部执行指令,处理数据

3)运算器运算

   送数据一到数据总线,并送入ALU暂存器DA1->送数据一到数据总线,并送入ALU暂存器DA1->发送运算器功能选择信号,控制ALU进行运算

----------

在这样的简单计算机系统中,以ADD指令为例描述其执行过程:假定这个计算机支持单字节和双字节两种指令。双字节指令方便装入立即数。

  假如指令是ADD R,#06H

存储器中数据和指令这样排列:

指令地址 指令机器码 助记符
0000 0100 0101 0000 ADD R0,06H
0000 0101 0000 0110 立即数06H在这里

1)取指令:控制器将第一条指令地址放入PC,PC将指令地址送到AR同时PC自+1。AR通过地址总线指明指令所在地址,这条指令再通过数据总线送到指令寄存器IR。  指令进入IR后,译码器就开始工作,分析指令

 2)执行指令:控制信号形成组件会根据指令,发出该指令所需的所有部件的控制信号有序序列。

      加法指令的目的,是将06H与寄存器R0的数值相加,并放在寄存器中。

  详细步骤:程序计数器PC设为0000 0100,并送入AR,并通过DB送到存储器,自身+1

-->控制器发出读信号,0000 0100处的数据被读出,通过数据总线送到指令寄存器IR,再转入译码器译码,再转入控制信号形成组件  

-->将PC的值0000 0101送入AR,同时PC+1

--->控制器发出读信号,并将数据06H取出,通过数据总线送到运算器ALU的暂存区DA1

-->指令寄存器IR的低四位0000是源寄存器地址和目的寄存器地址,因此翻译后得知应在R0中取出数据,并放到ALU的另一个暂存区DA2;

--->ALU进行加法运算,并将结果送入寄存器R0.

---------------

在计算机中,各个部件所需的微操作信号均由操作控制信号形成部件来实现。在实际中,这个组件有两种设计形式:一种是用组合逻辑来实现,即 硬布线控制器 ;另一类由存储逻辑实现,即 微程序控制器 。

  对于硬布线控制器,在设计时就已经确定了指令的格式、功能等内容,设计每种指令需要的 信号序列,综合每个信号的逻辑函数,最后以此设计逻辑电路,设计后即不可改动;

对于微程序控制器,它和CPU一样,也是一个有限状态机。一条指令 可以被进一步拆分为多个微指令。

原文地址:https://www.cnblogs.com/namezhyp/p/14164082.html