zoukankan      html  css  js  c++  java
  • 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一样,也是一个有限状态机。一条指令 可以被进一步拆分为多个微指令。

  • 相关阅读:
    C# 实现任务栏图标程序
    C#实现的木马之客户端
    sql基本语法
    水晶报表引用DataSet做数据源
    解决多线程操作控件时可能出现的异常:“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级”
    电子书籍制作工具软件大全
    C#实现的木马之服务端
    2进制、8进制、10进制、16进制...各种进制间的轻松转换
    VC# .Net中使用Crystal Report水晶报表
    P2P技术学习
  • 原文地址:https://www.cnblogs.com/namezhyp/p/14164082.html
Copyright © 2011-2022 走看看