CPU的功能和组成
CPU是控制计算机自动完成取指令和执行指令任务的部件,是计算机的核心部件、简称CPU
功能:
- 指令控制:对程序的顺序控制也是对指令执行的顺序控制(PC、JMP)
- 操作控制:产生各种操作信号(微操作信号)
- 时间控制:控制操作信号的发生时间(时序信号发生器)
- 数据加工:对数据进行算术和逻辑运算(ALU)
CPU主要组成成分如下:
- 控制器
协调指挥整个计算机系统工作
- 运算器
ALU,通用寄存器,数据缓冲寄存器,状态条件寄存器组成,是数据加工处理部件
- CACHE
高速缓冲存储器,介于CPU和主存之间
- 芯片级总线
处理CPU内部的总线
控制器功能
- 控制取出解释和执行指令
- 从内存中取指,并提供下一条指令地址
- 对指令进行译码测试,产生执行部件的运行所需要的控制信号
- 指挥并控制CPU、内存和IO设备之间的数据传送
- 存储器与控制器之间流动的信息-指令流
- 存储器与运算器之间流动的信息-数据流
- 中断控制-对异常情况和外部请求的处理
主要由下面几部分组成
- PC程序计数器
- IR指令寄存器
- ID指令译码器
- 对指令的操作码译码,为操作控制器提供输入信号
- TG时序发生器
- 产生各种时序信号(电位信号、脉冲信号)
- 对各种操作实施时间上的控制
- OC操作控制器
- 根据指令操作码和地址码、时序信号产生各种控制信号序列,建立正确的数据通路,从而完成取指令和执行指令的控制
- 分为:
- 时序逻辑型
- 比如说硬布线控制器,硬件实现
- 存储逻辑型
- 比如说微程序控制器(软件实现)
- 时序逻辑与存储逻辑结合型
- 比如说硬布线控制与微程序控制的混合型
- 时序逻辑型
数据通路是许多寄存器之间传递信息的通路
CPU还要用到一些主要的寄存器:
- PC程序计数器
- PC中存放的是下一条指令在内存中的地址
- 程序执行前,程序的第一条指令所在的内存单元地址送入PC
- 顺序执行指令时,PC自增
- 遇到转移指令时,PC的内容由转移指令来规定
- AR地址寄存器
- 地址寄存器用来保存当前CPU所访问的内存单元的地址
- DR数据缓冲寄存器
- 数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字
- 当向内存写入一个数据字时,也暂时将他们存放在数据缓冲寄存器中
- 作用有以下三个
- 作为CPU和内存、外部设备之间信息传送的中转站
- 补偿CPU和内存、外围设备之间在操作速度上的差异
- 在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器的作用
- IR指令寄存器
- 用来保存当前正在执行的一条指令
- R 0 − R n R_0 -R_n R0−Rn通用寄存器
- 用于传送和暂存数据;也可以参与算术逻辑运算并保存运算结果
- 累加寄存器(AC)
- 通用寄存器
- 为ALU提供一个工作区
- 暂存ALU运算结果
- PSW程序状态字
- 保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容
- 比如说进位标志(C)溢出标志(V)零标志(Z)负标志(N)
- 状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器
- 状态条件寄存器还保存中断和系统工作状态等信息
指令周期
指令周期是取出一条指令并执行这条指令的时间
时钟周期
- 通常称为节拍脉冲或T周期
- 是处理操作的最基本单位,是CPU主频的倒数
- 用于完成一次微操作的时间,如ALU一次运算、寄存器间的一次数据传送
CPU周期
- 又称为机器周期
- 从内存中读取一条指令的最短时间
- 由若干个T周期构成
指令周期
- 从内存中取出一条指令并执行这条指令的时间总和
- 一个指令周期包括若干个CPU周期
- 将指令周期划分为若干个相对独立的操作阶段
- 例如取指令周期IF 执行周期EXE等
比如下面是MOV R0,R1指令周期
开始-取指令PC+1-指令译码-执行指令-取下一条指令
比如说下面的LAD R1,6指令周期
是将存储器6号单元的数据送给R1
分为三个CPU周期
- 开始-取指令PC+1-指令译码
- 送操作数地址
- 取操作数-执行传送操作
- 取下条指令PC+1
方框图语言
- 在执行计算机设计时,可以采用方框图语言来表示一条指令的指令周期
- 方框表示一个CPU周期,方框的内容表示数据通路的操作或某种控制操作
- 菱形表示某种判别或测试,在时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期
公操作
- 一条指令执行完后,CPU进行的一些操作
- 对外设请求的处理
- 若无外设请求的处理,CPU则转而取下条指令,取指令是每条指令都有的,因此取指令也是公操作
时序信号的作用和体制
CPU如何知道从内存中取出的是指令还是数据?
- 时间上看是取值周期还是执行周期
- 空间上看送往指令寄存器还是运算器
时序信号
功能是提供各种定时信号
时序信号分为:
- 节拍电位
- 工作脉冲
节拍电位
把一个机器周期(CPU周期)分为若干个相等的时间段,每一个时间段对应一个电位信号,称为节拍电位信号
节拍的宽度取决于CPU完成一次基本操作的时间
比如说一次运算、一次传送等
统一节拍法
- 以最复杂的机器周期为基准定出节拍数,每一节拍时间的长短也以最繁杂的微操作作为标准
- 采用统一的具有相等时间间隔和相同数目的节拍,使得所有的机器周期长度都是相等,称为定长CPU周期
分散节拍法
按照机器周期的实际所需安排节拍数,需要多少节拍就发出多少节拍。由于各机器周期长度不同,称为不定长CPU周期
延长节拍法
在照顾多数机器周期要求的情况下,选取适当的节拍数,作为基本节拍,如果在某个机器周期内统一的节拍数无法完成该周期的全部微操作,则可以延长节拍
工作脉冲
在节拍中执行的有些操作需要同步定时脉冲信号,比如将稳定的运算结果打入寄存器
- 在节拍内设置一个或几个工作脉冲作为各种同步脉冲的来源
- 工作脉冲的宽度只占节拍电位宽度的1/n,并处于接拍的末尾
硬布线控制器中采用三级时序控制
- CPU周期
将指令周期划分为若干个相对独立的操作阶段,称为CPU周期
- 节拍电位
CPU周期包括若干个完成微操作的节拍电位
- 节拍脉冲(T周期)
与节拍电位配合完成数据加工和传送
时序发生器的组成和控制方式
- 是控制器的心脏
- 是用来产生时序信号
微程序控制器时序信号发生器的组成:
- 时钟源
- 为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号
- 通常由石英晶体振荡器和与非门组成的正反馈振荡电路组成
- 环形脉冲发生器
- 产生一组有序的间隔相等或不等的脉冲序列
- 由循环移位寄存器和译码器组成
- 节拍脉冲和读写时序产生逻辑
- 启停逻辑
- 控制原始节拍脉冲 T 1 0 − T 4 0 T_1^0-T_4^0 T10−T40的输出,产生CPU工作所需的节拍脉冲 T 1 − T 4 T_1-T_4 T1−T4
- 下面是对启停电路的一些要求
- 计算机的启动和停机是随机的,要求计算机启动时一定要从第一个节拍脉冲的前沿开始工作
- 在停机时,一定要在第四个节拍脉冲后沿结束后关闭时序产生器
- 要求最后一个脉冲和第一个脉冲是完整的脉冲
启停控制逻辑
运行标志触发器Cr
控制器基本控制方式
形成不同操作序列的时序信号的方法
有以下三种:
- 同步控制方式
- 每一步操作均由统一的时序信号来控制
- 具有统一的时钟信号
- 同步控制方案有以下三种
- 定长指令周期
- 每条指令含有相同的CPU周期数,每个CPU周期含有相同的节拍电位
- 时序简单、时间利用率低
- 不定长指令周期、定长CPU周期
- 按照指令需要的CPU周期数,但是每个CPU周期时间相同
- 时间利用率较高
- 变长CPU周期、定长节拍电位
- 指令周期和CPU周期都不固定,但CPU周期含有的节拍电位按需确定
- 时间利用率高但是控制电路复杂
- 定长指令周期
- 异步控制方式
- 按照实际需要确定每条指令、每个操作所需的时间
- 由前一个位操作执行完毕产生的结束信号作为下一个位操作的起始信号
- 时间利用率高但是控制结构复杂
- 联合控制方式
- 同步异步相结合
- 将各种指令可公共起来的微操作安排在固定的周期节拍中
- 对难以公共的为操作信号则以执行部件的回答信号作为本次操作的结束