zoukankan      html  css  js  c++  java
  • 中央处理器——计算机组成原理

    中央处理器

    5.1 CPU的功能和组成

    1.CPU的功能

    控制程序按设定的方式执行的计算机部件成为中央处理器,简称CPU

    具有一下四方面的基本功能:

    a.指令控制 程序的顺序控制,称为指令控制。

    b.操作控制 一条指令的功能往往是由若干个操作信号的组合实现的,CPU管理并产生由内存取出的每条指令的操作信.号,把各种信号送往相应的部件,从而控制这些部件按照指令的要求进行动作

    c.时间控制 对各种操作实施时间上的定时

    d.数据加工 对数据进行算术运算和逻辑运算处理(由ALU完成,算术逻辑单元)

    2.CPU的基本组成

    早期的CPU由运算器和控制器两大部分组成。后来CPU的基本部分变成运算器、cache、控制器三大部分

    控制器 由程序计数器(PC)、指令寄存器(IR)、指令译码器、时序产生器 和 操作控制器(OC) 组成,主要功能有:

    (1)从指令cache中取出一条指令,并指出下一条指令在指令cache中的位置

    (2)对指令进行译码和测试,并产生相应的操作控制信号

    (3)指挥并控制CPU、数据cache和输入/输出设备之间数据流动的方向

    运算器 由算术逻辑单元(ALU)、通用寄存器、数据缓冲寄存器(DR)和状态条件寄存器(PSW)组成。运算器接受控制器的命令而进行动作,是执行部件。主要有两个功能:

    (1)执行所有的算术运算

    (2)执行所有的逻辑运算

    3.CPU中的主要寄存器

    CPU中至少有六类寄存器:指令寄存器(IR)、程序计数器(PC)、数据地址寄存器(AR)、缓冲寄存器(DR)、通用寄存器、状态字寄存器(PSW)

    (1)DR 暂时存放CPU与外界传送的数据,可以是指令字或者数据字,作用是 1)作为ALU运算结果和通用寄存器之间信息传送时间上的缓冲 2)补偿CPU和内存、外围设备之间在操作速度上的差别

    (2)IR 用来保存当前正在执行的一条指令。当执行一条指令时,先把它从指令cache存储器(指存)中读出,然后再传送至IR 。指令划分为操作码和地址码字段;一个叫指令译码器 的部件可以译码,然后向操作控制器发出具体操作的特定信号。IR 中的操作码字段的输出就是指令译码器的输入

    (3)PC 两种情况:顺序执行--> pc+1->pc ; 转移执行-->JMP 指令

    (4)AR 主要用于解决主存/外设和CPU之间的速度差异。使地址信息可以保持到主存/外设的读写操作完成为止

    (5)通用寄存器 当ALU执行运算时,为ALU提供一个工作区。例如,执行一次加法运算,选择两个操作数相加(假设存放在通用寄存器R0,R1),放到其中一个寄存器中(如R1)

    (6)PSW 保存由ALU运算或测试结果的各种条件代码。如运算结果进位标志(C)、运算结果溢出标志(V)等等

    4.操作控制器与时序产生器

    寄存器之间传送信息的通路,称为数据通路 。操作控制器的部件需要完成的任务就是,在各寄存器之间建立数据通路。根据指令译码器传过来的指令操作码和时序信号,产生各种操作控制信号,然后正确的选择数据通路,将有关数据打入到一个寄存器,从而完成取指令和执行指令的控制。

    5.2 指令周期

    1.指令周期基本概念 取出一条指令并执行这条指令总共需要的时间。指令周期通常由若干个CPU周期(又称机器周期或者时钟周期)数来表示。取指阶段需要一个CPU周期时间

    2.MOV指令的指令周期,MOV R0,R1 RR型指令,需要两个CPU周期,取指周期需要一个,执行周期需要一个。

    取指周期中CPU完成三件事:从指存中取出指令;对PC加1;将指令操作码输出到指令译码器进行译码或测试,以便进一步确定进行什么操作。

    取指周期:

    (1)PC-->AR

    (2)M-->DR

    (3)DR-->IR

    (4)PC + 1--> PC

    (5)指令寄存器中的操作码(OP)传入指令译码器译码

    (6)CPU识别出MOV指令,取指周期结束

    执行周期:

    (1)OC送出控制信号到通用寄存器,选择R1(10)作为源寄存器,选择R0作目标寄存器

    (2)OC送出控制信号到ALU,指定ALU做传送操作

    (3)OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上,注意:任何时候DBUS上只能有一个数据

    (4)OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由00变成10

    3.LAD指令的指令周期,LAD R1,6 RS型指令。先从指令寄存器(IR)取指,然后从数据存储器6号单元取出数据装入通用寄存器R1。由于一次访问指存,一次访问数存,需要3个CPU周期

    取指周期:同上

    执行周期:

    (1)OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS

    (2)OC发出操作命令,将地址码6装入数存地址寄存器AR

    (3)OC发出读命令,将数存6号单元中的数100读入DBUS

    (4)OC发出命令,将DBUS上的数据100装入DR

    (5)OC发出命令,将DR中的数据100装入R1,LAD指令执行周期结束

    4.ADD指令的指令周期,ADD R1,R2 RR型指令,取指访问、执行周期,一共需要两个CPU周期

    取指周期:同上

    执行周期:

    (1)OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器

    (2)OC送出控制命令到ALU,指定ALU做R1和R2的加法操作

    (3)OC送出控制命令,打开ALU输出三态门,运算结果放到DBUS上

    (4)OC送出控制命令,将DBUS上数据打入DR;ALU产生的进位信号保存到PSW中

    (5)OC送出控制命令,将DR装入R2,至此ADD指令执行周期结束

    5.STO指令的指令周期,STO R2,(R3) RS型指令,先访问指存取出STO指令,然后按(R3)=30地址访问数存(访问30号地址单元),将(R2)=120写入到30号地址单元。一次访问指存,一次访问数存,所以需要3个CPU周期

    取指周期:同上

    执行周期:

    (1)OC送出操作命令到通用寄存器,选择(R3)=30做数据存储器的地址单元

    (2)OC送出操作命令,打开通用寄存器输出三态门,将30放到DBUS上

    (3)OC发出操作命令,将地址30打入AR,并进行数存地址译码,地址30是从DBUS上得到(这里就是访问数存)

    (4)OC发出操作命令到通用寄存器,选择(R2)=120,作为数存的写入数据

    (5)OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上

    (6)OC发出操作命令,将数据120写入数存30号单元。STO指令执行周期结束

    6.JMP指令的指令周期,JMP 101 JMP是一条无条件转移指令,用来改变程序的执行顺序。指令周期为2个CPU周期,取指是一个CPU周期,执行周期是一个CPU周期

    取指周期:同上

    执行周期:

    (1)OC发出操作控制指令,打开IR输出三态门,将IR中的地址码101发送到DBUS上

    (2)OC发出操作控制指令,将DBUS上的地址码101打入到程序计数器PC中。JMP指令执行周期结束

    7.用方框图语言表示指令周期

    一个方框表示一个CPU周期,方框中内容表示数据通路的操作或者某种控制操作。一个菱形通常表示某种判别或者测试,不单独占用一个CPU周期

    5.4微程序控制器

    利用软件方法设计硬件的一门技术。

    把操作控制信号,编成所谓的“微指令”,存放到一个只读存储器里。机器运行时,一条条读出这些微指令,从而产生全机所需要的各种操作控制信号,是相应部件执行所规定的操作

    1.微命令和微操作

    一台数字计算机基本可以划分为两部分——控制部件和执行部件。

    控制部件,向执行部件发出控制信息;

    执行部件,向控制部件返回状态信息。

    控制部件和执行部件的一种联系,就是通过控制线。控制部件通过控制线向执行部件发出各种控制命令,通常这种控制命令就称作微命令;执行部件接收微命令后进行的操作,叫做微操做。

    另一种联系是反馈信息,执行部件通过控制线向控制部件反映操作情况,也叫做“状态测试”。

    微操作分为相容性和相斥性;相容性的微操做指可以在同时或同一个CPU周期内并行执行的微操做。例如ALU的+,-就是相斥性操作,ADD R1,R2,获取R1,R2就是相容性微操做。

    2.微指令和微程序

    在机器的一个CPU周期内,一组实现一定操作功能的微命令的组合是微指令。

    微指令一般由操作控制和顺序控制两部分组成。

    (1)操作控制部分用来发出控制信号,每一位都表示一个微指令,位信息为“1”表示发出微指令,“0”表示不发出。

    (2)顺序控制部分用来决定产生下一条微指令的地址

    微程序就是微指令构成的序列,每条机器指令都对应着一段微程序

    3.微程序控制器原理

    由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。微指令寄存器分为微地址寄存器和微命令寄存器

    (1)控制存储器:存放实现全部指令系统的微程序,只读。要求速度快,读出周期短

    (2)微指令寄存器:微命令寄存器存放控制存储器读出的一条微指令信息。微地址寄存器决定下一条微指令的地址

    (3)地址转移逻辑:用于跳跃寻址微指令时,承担自动完成修改微地址的任务

    4.微程序实例

    见书 P 159-160

    5.CPU周期与微指令周期的关系

    串行方式的微程序控制器中,一个微指令周期等于一个CPU周期

    6.机器指令与微指令的关系

    (1)一条机器指令对应一个微程序,这个微程序是由若干微指令序列组成。

    (2)指令与微指令、程序与微程序、地址与微地址一一对应。前者都是与内存储器有关,后者与控制存储器有关。

    (3)一个CPU周期对应一条微指令

    7.微程序设计技术

    微指令编码

    对微指令中的操作控制字段采用的表示方法

    (1)直接表示法:操作字段中的每一位代表一个微指令。优点是简单直观;缺点是微指令字较长,因而使控制存储器容量较大

    (2)编码表示法:把一组相斥性微指令信号组成一个字段,然后通过字段译码器对每一个微指令信号进行译码,译码输出作为操作控制信号。优点是,采用较小的二进制信息表示较多的微命令信号,缩短微指令字长度;缺点是减缓微指令执行速度

    (3)混合表示法:(1)(2)混合使用

    微地址形成方法

    微指令执行的顺序控制问题,是如何确定下一条微指令的地址问题,一般有两种产生后继地址的方法:

    (1)计数器方式:同用程序计数器来产生机器指令地址的方法相似

    (2)多路转移方式:一条微指令具有多个转移分支的能力称为多路转移。当微程序不产生分支时,后继微地址直接由微指令的顺序控制字段给出;当微程序出现分支时,有若干后继微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中一个微地址。

    微指令格式

    分为水平型微指令和垂直型微指令

    (1)水平型微指令:一次能定义并执行多个并行操作微命令的微指令,一般格式:控制字段、判别测试字段、下地址字段

    (2)垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。垂直型微指令的结构类似与机器指令的结构,它有操作码。书P 164

    5.5硬连线控制器

    暂略

    5.6流水线CPU

    暂略

    5.7 RISC CPU
    基本特点:

    (1)使用等长指令,目前典型长度为4B

    (2)寻址方式少且简单,绝不出现存储器间接寻址方式

    (3)只有取数指令、存数指令访问存储器。最多出现RS型指令,不会出现SS型指令

    (4)指令集中的指令数目一般少于100,指令格式一般少于4种

    (5)指令功能简单,控制器多采用硬布线方式

    (6)平均而言,所有指令的执行时间为一个处理时钟周期

    (7)指令格式中,用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数不少于16个

    (8)强调通用寄存器资源的优化使用

    (9)支持指令流水并强调指令流水的优化使用

    (10)RISC技术的复杂性在于它的编译程序,因此软件系统开发时间比CISC机器长

    有缘再见
  • 相关阅读:
    BZOJ 4555: [Tjoi2016&Heoi2016]求和 [分治FFT 组合计数 | 多项式求逆]
    BZOJ 4555: [Tjoi2016&Heoi2016]求和 [FFT 组合计数 容斥原理]
    BZOJ 4259: 残缺的字符串 [FFT]
    BZOJ 2287. [HZOI 2015]疯狂的机器人 [FFT 组合计数]
    BZOJ 4503: 两个串 [FFT]
    CF528D. Fuzzy Search [FFT]
    快速傅里叶变换 & 快速数论变换
    UOJ#77. A+B Problem [可持久化线段树优化建边 最小割]
    BZOJ 2034: [2009国家集训队]最大收益 [贪心优化 Hungary]
    BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin [线段树优化建边]
  • 原文地址:https://www.cnblogs.com/lambdaCheN/p/7756847.html
Copyright © 2011-2022 走看看