标签:操作码 解决 其他 重叠 运算 动作 间隔 连接线 add
CPU 的功能和基本结构
中央处理器(CPU)由运算器和控制器组成。控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指指令、分析指令和执行指令;运算器的功能是对数据进行加工。CPU 的具体功能包括:
1.运算器
运算器接收从控制器送来的命令并执行相应的动作,对数据进行加工和处理。运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑单元(ALU)、暂存寄存器、累加寄存器(ACC)、通用寄存器组、程序状态字寄存器(PSW)。移位器、计数器(CT)等组成。
2.控制器
控制器是整个系统的指挥中枢,在控制器的控制下,使运算器、存储器和输入/输出设备等功能部件构成一个有机的整体,根据指令的要求指挥全机协调工作。控制器的基本功能是执行指令,每条指令的执行是由控制器发出的一组微操作实现的。
控制器有硬布线控制器和微程序控制器两种类型。控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、存储器地址寄存器(MAR)、存储器数据寄存器(MDR)、时序系统和微操作信号发生器等组成。
控制器的工作原理是,根据指令操作码、指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号。计算机整机各硬件系统在这些控制信号的控制下协同运行,产生预期的执行效果。
CPU 内部寄存器大致可分为两类:一类是用户可见的寄存器,可对这类寄存器编程,如通用寄存器组、程序状态字寄存器;另一类是用户不可见的寄存器,对用户是透明的,不可对这类寄存器编程,如存储器地址寄存器、存储器数据寄存器、指令寄存器。
数据总线的位数与处理器的位数相同,它表示 CPU 一次能处理的数据的位数,即 CPU 的位数。
程序计数器的位数取决于存储器的容量。
指令寄存器的位数取决于指令字长。
通用寄存器的位数取决于机器字长。
指令包括操作码字段和地址码字段,但指令译码器仅对操作码字段进行译码,借以确定指令的操作功能。
地址译码器是主存等存储器的组成部分,其作用是根据输入的地址码唯一选定一个存储单元,它不是 CPU 的组成部分。
间址周期结束时,CPU 内寄存器 MAR 的内容为操作数地址。
指令执行过程
CPU 从主存每取出并执行一条指令所需的全部时间称为指令周期,即 CPU 完成一条指令的时间。
指令周期常用若干机器周期来表示,一个机器周期又包含若干时钟周期(也称节拍或 T周期,它是 CPU 操作的最基本单位)。每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。
对于无条件转移指令 JMP X,在执行时不需要访问主存,只包含取指阶段(包括取指和分析) 和执行阶段,所以其指令周期仅包含取指周期和执行周期。对于间接寻址的指令,为了取操作数,需要先访问一次主存,取出有效地址,然后访问主存。取出操作数,所以还需要包括间址周期。间址周期介于取指周期和执行周期之间。
一个完整的指令周期应包括取指、间址、执行和中断 4 个周期。这 4 个周期都有 CPU 访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。中断周期中的进栈操作是将 SP 减1,这和传统意义上的进栈操作相反,原因是计算机的堆栈中都是向低地址增加,所以进栈操作是减1而不是加1。
取指周期的任务是根据 PC 中的内容从主存中取出指令代码并存放在 IR 中。取指令的同时, PC 加 1。
间址周期的任务是取操作数有效地址。一次间址将指令中的地址码送到 MAR 并送至地址总线,此后 CU 向存储器发读命令,以获取有效地址并存至 MDR。
执行周期的任务是根据 IR 中的指令字的操作码和操作数通过 ALU 操作产生执行结果,不同指令的执行周期操作不同。
中断周期的任务是处理中断请求。
指令执行方案
1.单指令周期。对所有指令都选用相同的执行时间来完成,称为单指令周期方案。此时,每条指令都在固定的时钟周期内完成,指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。因此,指令周期取决于执行时间最长的指令的执行时间。
2.多指令周期。对不同指令选用不同的执行步骤来完成,称为多指令周期方案。指令之间串行执行,即下一条指令只能在前一条指令执行结束后才能启动。但可选用不同个数的时钟周期来完成不同指令的执行过程指令需要几个周期就为其分配几个周期,而不再要求所有指令占用相同的执行时间。
3.流水线方案。指令之间可以并行执行的方案,称为流水线方案,其追求的目标是力争在每个时钟脉冲周期完成一条指令的执行过程(只有在理想情况下才能达到该效果)。这种方案通过在每个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。
指令总是根据程序计数器从主存中读出。
在一条无条件跳转指令的指令周期内,程序计数器(PC)的值被修改了 2 次。首先在取指周期结束后,PC 的值自动加 1;在执行周期中,PC 的值修改为要跳转的地址。综上,在一条无条件跳转指令的指令周期内,程序计数器(PC)的值被修改了 2 次。取指操作是自动进行的,控制器不需要得到相应的指令。不同长度的指令,其取指操作可能是不同的。控制器可区分存储单元中存放的是指令还是数据。
取指操作时自动进行的,控制器不需要得到相应的指令。
不同长度的指令,其取指操作可能是不同的。
数据通路的功能和基本结构
数据在功能部件之间传送的路径称为数据通路。运算器与各寄存器之间的数据传送路径就是中央处理器的内部数据通路。数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,这些都要加以控制。建立数据通路的任务是由“操作控制部件”来完成的。数据通路的功能是实现 CPU 内部的运算器与寄存器及寄存器之间的数据交换。
数据通路的基本结构主要有以下几种:
内部总线是指同一部件,如 CPU 内部连接各寄存器及运算器部件之间的总线;系统总线是指同一台计算机系统的各个部件,如 CPU、内存、通道和各类 I/O接口之间互相连接的总线。
寄存器之间的数据传送可通过 CPU 内部总线完成。
主存与 CPU 之间的数据传送也要借助 CPU 内部总线完成。
执行算术或逻辑操作时,由于 ALU 本身是没有内部存储功能的组合电路,因此如要执行加法运算,相加的两个数必须在 ALU 的两个输入端同时有效。
在单总线的 CPU 中,ALU 只能有一个输入端可与总线相连,另一输入端需通过暂存器与总线相连,否则两个端口会同时获得两个相同的数据,是数据通路不能正常工作。
实现 ADD R1,(R2) 的微操作序列
(PC) → MAR
M → MDR
(PC) + 1 → PC
MDR → IR
R1 → LA
(R2) → MAR
M → MDR
MDR → LB
(LA) + (LB) → R1
控制器的功能和工作原理
根据控制器产生微操作控制信号的方式的不同,控制器可分为硬布线控制器和微操作控制器,两类控制器中的 PC 和 IR 是相同的,但确定和表示指令执行步骤的办法以及给出控制各部件运行所需要的控制信号的方案是不同的。
硬布线控制器
硬布线控制器的基本原理是根据指令的要求、当前的时序及外部和内部的状态,按时间的顺序发送一系列微操作控制信号。它由复杂的组合逻辑门电路和一些触发器构成,因此又称组合逻辑控制器。
指令的操作码是决定控制单元发出不同操作命令(控制信号)的关键。为了简化控制单元(CU)的逻辑,将指令的操作码译码和节拍发生器从 CU 分离出来,便可得到简化的控制单元图。CU 的输入信号来源如下:
控制单元还接收来自系统总线(控制总线)的控制信号,如中断请求、DMA 请求。
硬布线控制器的时序系统及微操作
一条指令分为 3 个工作周期:取指周期、间址周期和执行周期。
CPU 的控制方式主要有以下三种:
微程序控制器
微程序控制器采用逻辑存储实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。
(1)微命令与微操作。一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的 、不可再分解的操作。在微程序控制的计算机中,将控制部件向执行部件发出的各种程序控制命令称为微指令,它是构成控制序列的最小单位。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的执行过程。微命令有相容性和互斥性之分。相容性微命令是指那些可以同时产生、共同完成某一些微操作的微指令;而互斥性微命令是指在机器中不允许同时出现的微命令。相容和互斥都是相对的,一个微命令可以和一些微命令相容,和另一些微命令互斥。
(2)微指令与微周期。微指令是若干微命令的集合。存放微指令的控制存储器的单元地址称为微地址。一条微指令通常至少包含两大部分信息:
微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。
(3)主存储器与控制存储器。主存储器用于存放程序和数据,在 CPU 外部,用 RAM 实现;控制存储器(CM)用于存放微程序,在 CPU 内部,用 ROM 实现。
(4)程序与微程序。程序是指令的有序集合,用于完成特定的功能;微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。
微程序和程序是两个不同的概念。微程序是由微指令组成的,用于描述机器指令。微程序实际上是机器指令的实时解释器,是由计算机设计者实现编制好并存放在控制存储器中的,一般不提供给用户。对于程序员来说,计算机系统中微程序的结构和功能是透明的。而程序最终由机器指令组成,是由软件设计人员实现编制好并存放在主存或辅存中的。
注意区分以下寄存器:
1.地址寄存器(MAR)。用于存放主存的 读/写地址。
2.微地址寄存器(CMAR)。用于存放控制存储器的 读/写微指令的地址。
3.指令寄存器(IR)。用于存放从主存中读出的指令。
4.微指令寄存器(CMDR 或 μIR)。用于存放从控制器中读出的微指令。
若指令周期中具有 n 种机器指令,则控制存储器中的微程序数至少是 n + 1(1 为公共的取指微程序,有中断再 +1)。
微指令的编码方式:
微指令的格式与微指令的编码方式有关,通常分为水平型微指令和垂直型微指令。
混合型微指令。在垂直型的基础上增加一些不太复杂的并行操作。微指令较短,仍便于编写;微程序也不长,执行速度加快。
对比项目\类别 | 微程序控制器 | 硬布线控制器 |
工作原理 | 微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可 | 微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序即时产生 |
执行速度 | 慢 | 快 |
规整性 | 较规整 | 繁琐、不规整 |
应用场合 | CISC CPU | RISC CPU |
易扩充性 | 易扩充修改 | 困难 |
在微程序控制器中,形成微程序入口地址的是机器指令的操作码字段。
微程序控制存储器用来存放微程序,是微程序控制器的核心部件,属于 CPU 的一部分。
硬布线控制器与微程序控制器相比,微程序控制器的时序系统比较简单。
通常情况下,一个微程序的周期对应一个指令周期。
指令流水线
当多条指令在处理器中执行时,可以采用以下三种方式:
流水线方式的特点(与传统串行方式相比):
流水线的分类:
影响流水线的因素:
Cache 缺失的处理过程也会引起流水线阻塞。在不过多增加硬件成本的情况下,如何尽可能提高指令流水线的运行效率(处理能力)是选用指令流水线技术必须解决的问题。
流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关
流水线的性能指标:
1.流水线的吞吐率。在指令级流水线中,吞吐率是指在单位时间内流水线所完成的任务数量,或输出结果的数量。计算流水线吞吐率(TP)的最基本的公式为 TP = n / (Tk)。其中 n 是任务数,Tk是处理完 n 个任务所用的时间。
2.加速比。
3.效率。
1.超标量流水线技术。每个时钟周期可并发多条独立指令,即以并行操作方式将两条指令或多条指令编译并执行,为此需配置多个功能部件。超标量计算机不能调整指令的执行顺序,因此通过编译优化技术,把可并行执行的指令搭配起来,挖掘更多的并行性。
2.超流水线技术。在一个周期内再分段,在一个时钟周期内一个功能部件使用多次。不能调整指令的执行顺序,靠编译程序解决优化问题。
3.超长指令字。由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字(可达几百位),为此需要采用多个处理部件。
流水 CPU 是以时间并行性为原理构造的处理器。
超标量流水线能结合动态调度技术提高指令并行性。(与上面矛盾,暂时以此为准)
五阶段流水线可分为取指 IF、译码/取数 ID、执行 EXC、存储器读 MEM、写回 Write Back。数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路,包括程序计数器、算术逻辑运算部件、通用寄存器组、取指部件等,不包括控制部件。
流水线按序流动时,在 RAW、WAR、WAW 中,只可能出现 RAW相关。
标签:操作码 解决 其他 重叠 运算 动作 间隔 连接线 add
原文地址:https://www.cnblogs.com/oneMr/p/11481521.html