别人品牌的域名做网站吗,应用网站建设,太原房产网站建设,wordpress加速优化插件26考研 | 王道 | 计算机组成原理 | 五、中央处理器 文章目录 26考研 | 王道 | 计算机组成原理 | 五、中央处理器0.概览1.CPU的功能和结构**寄存器可见性与透明性分类**1.运算器2.控制器 2. 指令执行过程3.数据通路的功能和基本结构2. 数据通路-专用通路结构 4.控制器的功能和工…26考研 | 王道 | 计算机组成原理 | 五、中央处理器 文章目录 26考研 | 王道 | 计算机组成原理 | 五、中央处理器0.概览1.CPU的功能和结构**寄存器可见性与透明性分类**1.运算器2.控制器 2. 指令执行过程3.数据通路的功能和基本结构2. 数据通路-专用通路结构 4.控制器的功能和工作原理1.硬布线控制器的设计2. 微程序控制器的基本原理3. 微指令的设计1.微指令的编码方式2.微指令的地址形成方式 4. 微程序控制单元的设计 5. 异常与中断6. 指令流水线1. 指令流水线的基本概念指令流水线的表示方式流水线的性能指标 2. 指令流水线的影响因素和分类机器周期的设置影响流水线的因素流水线的分类似乎不考流水线的多发技术 3. 五段式指令流水线 7.多处理器概念1. 多处理器的基本概念2. 硬件多线程的基本概念 0.概览
CPU能够识别执行的只有机器指令和微指令汇编指令只有翻译为机器指令之后才可以执行
汇编程序员可见的寄存器有基址寄存器、状态寄存器PSW、程序计数器PC、通用寄存器组
不可见的MAR、MDR、IR、微指令寄存器 1.CPU的功能和结构
CPU读写控制信号的作用是 决定数据总线上的数据流动方向控制存储器操作的读写类型控制流入流出存储器信息的方向 寄存器可见性与透明性分类
寄存器用户可见性用户透明性用户可修改性修改方式PSW程序状态字可见 ✅不透明部分可修改间接修改硬件自动设置状态位部分标志位支持软件修改ACC累加器可见 ✅不透明可修改直接修改如 MOV ACC, 10H通用寄存器组如R0-R12可见 ✅不透明可修改直接修改如 MOV R1, AXPC程序计数器可见 ✅不透明可修改间接修改通过跳转指令如 JMP、CALLIR指令寄存器不可见 ❌透明 ✅不可修改-MAR存储器地址寄存器不可见 ❌透明 ✅不可修改-MDR存储器数据寄存器不可见 ❌透明 ✅不可修改-
不知道间接修改算不算可以修改按照书上的说法用户是不能修改PSW和PC的 1.运算器 专用数据通路方式就是只要有数据流过那你就给这个路径连上一条线所以ALU和各个寄存器之间都有线还要决定使用哪个寄存器有需要其他硬件所以硬件量就很大了 CPU内部单总线方式将所有寄存器的输入端和输出端都连接到一条公共的通路上。
如两个操作数分别来自主存和R0最后结果存回R0那么从主存中取来的操作数直接放入暂存器就不会破坏运算前R0的内容。
在R0给的信号不稳定之前ALU会产生一个输出信号送到内部总线上就会与R0送到内部总线上的信号冲突从而导致运算的错误。在ALU的输出端加一个暂存寄存器等R0送到总线上的信号稳定之后ALU把运算的结果放到暂存寄存器中在ALU的输出稳定之后让三态门导通把运算结果送到内部总线上给R0的输入端加上有效的电信号就会把运算的结果输入到R0寄存器中。 暂存寄存器改为移位寄存器是因为这个暂存寄存器多半具有移位这个功能
通用寄存器可以放数据也可以放地址但是不可以替代指令寄存器
PSW是专用寄存器 不需要像其他寄存器那样需要编号
用户不能直接修改PSW但是PSW对用户是可见的不是透明的
2.控制器
控制器功能是取指令分析指令和执行指令。执行指令就是发出有关操作的控制信号
指令译码器是指对指令的操作码字段进行译码
CPU不包括地址译码器
控制器的基本结构 程序计数器PC可以使用字节地址也可以使用字地址其位数取决于存储器容量和指令字长与机器字长无关
机器指令中不能显式的使用PC只能让其自增或者通过转移指令设置
指令寄存器IR位数取决于指令字长
CPU中通用寄存器长度取决于机器字长
CPU的基本结构 棕色的寄存器是用户可见的灰色的是对用户透明的
可见的有PSW,PC,ACC,R0-R3。可见的意思是用户可以通过汇编语言进行修改这个寄存器的值 课后题PC的位数问题 按字节编制一个指令32位占4B四个存储单元而又要按字边界对齐存放这句话说明了每条指令的起始地址必须是4的倍数
所以指令要放的话按找最多的情况来放置可以放 4GB/4B230这么多条指令也就是说有这么多个编号
为什么呢
如果地址空间全都放指令的话因为指令的地址一定是4的倍数一定是0,4,8,12,16…
那么0,4,8,12,16…4GB这些编号一共有多少个那不就是 4GB/4B个嘛
所以编号一共有230个那么我们只需要30位就可以存储下来所有的编号而又因为编号全都是4的倍数我们去主存里面找的时候只要左移2位即可就相当于乘以4了
比如虽然它原来的编号是0,4,8,12,16但是PC存储的时候就是0,1,2,3,4而我们用它到主存里面寻找指令的时候就乘以4就是0,4,8,12,16了
2. 指令执行过程
CPU的控制器通过指令周期的不同阶段区分是指令还是数据取指周期拿出来的就是指令执行阶段拿出来的就是数据
PC的值在指令的执行过程中修改具体是在取值周期进行修改
取指操作是控制器固有的功能不需要在操作码的控制下完成
取值操作是控制器自动完成的 单周期CPU中指令执行的所有阶段都在一个时钟周期内完成因此其指令周期就是一个时钟周期CPI1
多周期CPU中不同的类型的指令可以用不同的执行步骤需要几个周期就分配几个周期CPI1
流水线CPU追求目标是每个时钟周期完成一条指令的执行过程在理想情况下CPI1在每个时钟周期启动一条指令尽量让多条指令同时运行但各自在不同的执行步骤中 各个周期的关系 指令周期流程 指令周期的数据流-取址周期 指令周期的数据流-间址周期 除了把MDR拼接到Ad(IR)里面这种处理方式以外可能有的处理方式会直接把MDR放到MAR里面去
指令周期的数据流-执行周期
执行周期的任务是根据IR指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同因此没有统一的数据流向。
指令周期的数据流-中断周期 指令执行方案 3.数据通路的功能和基本结构
数据通路的功能由控制部件送出的控制信号决定
在一条指令的执行过程中单周期CPU的每个控制信号保持不变每个部件只能使用一次。多周期CPU的控制信号可能发生改变同一个部件可以使用多次
关于这句话的具体解释请看
单周期cpu和多周期cpu、单周期数据通路和多周期数据通路与总线结构数据通路和专用数据通路的关系-CSDN博客 内部总线数据通路的特点结构简单实现容易性能较低存在较多的冲突现象
专用的特点结构复杂硬件量大不易实现性能较高基本不存在冲突现象
CPU可以视作由数据通路和控制部件两大部分组成的 表示总线连接或者断开的部件是三态门图中的三角形
###1. 数据通路-单总线结构
数据通路通常指指令执行过程中数据经过的路径以及路径上的部件。 数据通路电路部件组合逻辑元件时序逻辑元件并且由控制信号进行控制。 组合逻辑元件操作元件不能存储如多路选择器MUX、ALU、译码器。 时序逻辑元件状态元件能存储如寄存器。
ALU通用寄存器状态寄存器CacheMMU浮点运算逻辑异常和中断处理逻辑等都是指令执行过程中数据流经的部件都属于数据通路的一部分
原则上来说每个时刻只能有一个器件发出信息一个或者多个器件接收信息
数据通路-CPU内部单总线方式
以下内容结合1.2.2“计算机的工作过程”进行学习 不严谨的原因是因为主存中的数据通过数据总线写到MDR的时候通常是另外一个信号
而MDRin只是CPU内部总线往MDR写的时候的信号而已
下图也有类似不严谨处 Y是暂存寄存器用来放其中一个加数Z是暂存结果的暂存寄存器
而Y和ALU有一个专用的数据通路不会占用CPU内部总线
每个时钟周期内CU都会发出一组相应的控制信号来完成某一个微操作到下一个时钟周期CU又会发出第二个控制信号完成第二个微操作。
CPU内部总线方式-例题
(R0)目的操作数有括号需要进行一次间接寻址表示R0中存放的是操作数在主存中的存储地址。
R1源操作数没有括号表示操作数直接存放在R1寄存器中。 Y和ALU有专门的数据通路不需要占用CPU内部总线
2. 数据通路-专用通路结构 专用数据通路的效率比单总线高但相对的成本也会高
专用数据通路方式-取值周期
图中的Cx表示的是如果是Cx有效那么这条路就是通的否则不通 第二问如果不放心还可以写上
pc1-pc
OP(IR)-微操作发生器 采用CPU内部总线结构简单实现容易性能较低存在较多的冲突现象。 专用数据通路结构复杂硬件量大不易实现性能高基本不存在数据冲突现象。
数据总线是双向的CPU–内存内存–CPU 地址总线是单向的CPU–内存
4.控制器的功能和工作原理
取指令操作是控制器固有功能不需要在操作码控制下进行 以访存所需节拍数量作为参考是因为 访存比较慢比大多数指令都慢所以具有参考价值
根据指令操作码、目前的机器周期、节拍信号T0、T1、T2、机器状态条件如PSW中溢出、正负性等、即可确定现在这个节拍下应该发出哪些微命令
根据操作码确定是什么操作根据FE,IND,EX,INT确定是哪个周期根据节拍确定是哪个微命令而微命令又一一对应了微操作确定节拍后可能还要参考PSW之后才能发出对应的微命令
1.硬布线控制器的设计 控制信号主要与指令译码信号和时钟信号有关 基于 上面的理解
传操作码译码器是为了知道操作码是多少四个触发器是为了知道哪个周期节拍发生器是为了确定哪个节拍传标志是为了确定到执行什么微命令最后输出出去即可
2.硬布线控制器的设计不考听一听便于理解 分析每个阶段的微操作序列 安排微操作时序的原则-取值周期 安排微操作时序的原则-间值周期 1和2在一个节拍内完成因为被控对象不同
3和4分别放在一个节拍完成因为3是访存操作一个节拍完成不了
安排微操作时序的原则-执行周期
一个微操作就可以完成的微指令可以用一个节拍来完成即放在三个节拍的最后一个节拍 电路设计-组合逻辑设计 2. 微程序控制器的基本原理 采用“存储程序”的思想CPU出厂前将所有指令的“微程序”存入“控制器存储器”中
微程序控制器中形成微程序入口地址的是机器指令的操作码字段 操作控制字段就是用若干个bit表示当前微指令对应的微操作是哪几个
微指令存放在控制器的一个特殊的存储器当中所以会有对应的地址
顺序控制字段可能会有几个bit表示地址的寻址方式是间接还是直接之类的
微程序控制器的基本结构 微程序控制器的工作原理 3. 微指令的设计 1.微指令的编码方式 2.微指令的地址形成方式 测试网络其实就是下图的顺序逻辑部分测试源就是标志 例题-断定方式 4. 微程序控制单元的设计 如下图这样安排也可以只要保证两个微操作可以在一个节拍内完成即可 微程序设计的分类 硬布线与微程序的比较 5. 异常与中断
视频说除数0是终止而书上说是故障暂且以书上为准吧 异常整数除以0溢出断点单步跟踪非法指令栈溢出地址越界缺页等
故障指在引起故障的指令启动后执行结束前被检测到的异常事件。例如非法操作码、缺页、除数为0。如果可以修复修复完了继续回来执行如果不可修复那就终止进程的执行
陷阱断点、单步跟踪
终止若在执行过程中发生了使计算机无法继续执行的硬件故障如控制器出错存储器校验错总线错误等程序无法继续执行只能终止。这类异常与故障和自陷不同不是由特定指令产生而是随机发生的
浮点数的上溢属于内中断但下溢直接当做机器0处理不属于中断
内部异常的产生与当前执行的指令相关
内部异常的检测由CPU内部逻辑实现
内部异常的相应发生在指令执行的过程中
异常事件检测由CPU在执行每一条指令的过程中进行
中断请求检测由CPU在每条指令执行结束、取下条指令之前进行 举个例子你在图书馆复习408在做某道题你就是CPU也就是CPU在执行当前指令。 1.陷入你想起来昨天晚上的那局王者被单杀气不过然后来了一把你是学习态想做游戏态的事情是不是很像系统调用打完又灰溜溜做题返回下一条指令。 2.故障你突然发现这道题的知识点不会也就是不在你的内存中你就去翻书外存查到之后还要继续做这道题返回本条指令。 3.终止你突然很累大脑宕机不想学习直接回寝室睡大觉不回来做题这就是终止不可恢复。 4.外中断和你自己没关系旁边来了个妹妹打断了你的学习你看了十分钟又灰溜溜的做题这就是外中断和你自己CPU没关系。 故障如果能修复那就是返回当前指令修复不了那就直接终止了
特性内部异常外部中断触发源CPU内部执行错误如除零、溢出外设或硬件故障如按键、掉电检测逻辑CPU指令执行单元自动检测依赖引脚电平扫描中断控制器同步性同步与指令执行严格相关异步随时可能发生响应时机立即终止当前指令当前指令结束后响应硬件依赖纯CPU内部逻辑需外部中断引脚和控制器支持 6. 指令流水线
1. 指令流水线的基本概念 指令流水线的表示方式 流水线的性能指标 2. 指令流水线的影响因素和分类 机器周期的设置
IF取指阶段
ID指令译码阶段指令译码从通用寄存器中取出当前指令所需要的操作数imm立即数
EX执行阶段
M访存阶段
WB写回通用寄存器组
cachedata cache和insrtuction cache将数据和指令放在两个独立的模块中对这两个模块的访问可以并行进行 这个锁存器就是流水段寄存器
指令译码得到的控制信号需要通过流水段寄存器传递到下一个流水段
每个流水段之间的寄存器的信息不一定相同因此寄存器位数也不一定相同用户程序不可以通过指令指定访问哪个流水段寄存器
影响流水线的因素
结构相关资源冲突–”互斥“数据相关数据冲突-”同步“控制相关控制冲突
①结构相关 再多准备一套数据存储器和指令存储器让冲突的指令去访问多出来的这一套
②数据相关 如果有后续的指令可以提前执行不需要依赖前序指令的执行结果可以通过编译器调整指令顺序来解决数据相关。类似于插入空操作)
③控制相关 静态预测的结果每次都一样的
流水线的分类似乎不考 流水线的多发技术 也叫动态多发射技术
很多超标量CPU都结合动态流水线调度技术通过动态分支预测等手段指令不按顺序执行这种方式成为乱序执行 3. 五段式指令流水线
常见的5类指令运算类指令、LOAD指令、STORE指令、条件转移指令、五条件转移指令
运算类指令的执行过程 LOAD指令的执行过程 STORE指令的执行过程 条件转移指令的执行过程 无条件转移指令的执行过程 7.多处理器概念
Tips只考选择题
1. 多处理器的基本概念
不太严谨的图方便理解 单指令流单数据流SISD结构一个指令流对应一个数据流 单指令流多数据流SIMD结构一个指令流对应多个数据流 多指令流单数据流MISD结构多个指令流对应一个数据流事实上不存在) 多指令流多数据流MIMD结构多个指令流对应多个数据流 M:Multiple S:Single l:Instruction D:Data UMA统一存储访问 NUMA非统一存储访问
2. 硬件多线程的基本概念