408计算机组成原理学习笔记——中央处理器(二)

简介: 408计算机组成原理学习笔记——中央处理器

4.控制器的功能和工作原理

4.1.硬布线控制器(硬件控制)c0d65d4f394f4408a9b6bf7c058ea901.png

1.一个时钟周期内可以并行的完成多个不会引发冲突的微操作

2.同一个微操作可能在不同阶段被使用到

3.选择定长的机器周期,如果实际所需的时钟周期较少,则安排在机器周期的末尾执行

4.硬布线控制器根据指令操作码、目前的机器周期、节拍信号、机器状态条件等确定当前节拍下应该发出哪些微命令:

①指令操作码:操作码译码器根据IR的n位操作码,选通操作码译码器连接CU导线(n位对应n条导线),从而判断当前指令将要执行什么操作

②目前的机器周期:根据四个触发器当前哪个值为1判断当前处于什么机器周期(取址、间址、执行、中断)

③目前的节拍:每个机器周期都有相等的节拍数,节拍发生器通过控制信号控制m+1条与CU相连的线使其能够判断当前处于该机器周期的第几个节拍

④机器状态条件:即各种执行单元的反馈信息,例如PSW、ACC标志位等

5.CU的每一条输出线对应一个微操作:微操的判断可以由多个输入端加上与/或/非门电路实现

6.硬布线控制器特点:

①指令越多,电路越复杂→适用于RISC(指令少)

②扩种指令困难(需要大改电路

③纯硬件控制→执行速度快

4.2.微程序控制器(软件控制)

4.2.1.微程序控制器的基本原理image.png


1.微程序:与指令一一对应,由一系列微指令序列组成

微指令:由一系列微操作组成

微操作(微命令):最小具体操作单位,可以并行完成且不违反顺序的微操作集合成一个微指令

2.微指令格式:由操作控制(操作码)和顺序控制(地址码)组成

3.控制存储器CM(Control Memory):用于存放微程序(若干个微指令,按顺序存放),由ROM组成(非易事性、读取快),实现存储程序

CMAR(CM Address Register):小PC,存放微指令的地址

地址译码:将CMDR中的地址转换为控制信号

CMDR(CM Data Register):小IR,存放从CM中取出的微指令。由实现当前微指令的控制信号(操作码)和下一条微指令的地址(地址码)组成

微地址形成部件:根据CPU中IR的OP部分形成实现OP操作的微指令序列的首地址

顺序逻辑:控制微指令序列执行的顺序(当前应该执行哪一条微指令)


image.png

4.取值周期、间址周期、中断周期的微指令序列通常公用,仅需存储一份;执行周期各不相同,需要单独存储

4.2.2.微指令的设计

1.微指令的格式image.png

2.微指令的编码方式image.png

image.png

3.微指令的地址形成方式


image.png

4.微程序控制单元的设计

image.png

①第一个微指令从CM的#0出取址

②每个微指令的执行结束后,都需要进行一次把下一条微指令的地址(若是该微程序的最后一条微指令,则将下一个微程序的首个微指令的地址)放入CMAR的时钟周期

image.png

4.3.硬布线控制器和微程序控制器的比较


6998d217847d4907bfd3466401a2fb5b.png

5.指令流水线

5.1.流水线的基本概念

5.1.1.指令流水的定义image.png1.一次重叠:总耗时 = 第 1 条指令的完整周期(3) + 剩余(n - 1)条指令每条两个周期

2.二次重叠:总耗时 = 第 1 条指令的完整周期(3) + 剩余(n - 1)条指令每条一个周期

5.1.2.流水线的表示方法

image.png

5.1.3.流水线的性能指标6a6f71f648e845c1b2f66fb7e3026b2c.png1.吞吐率:吞吐率TP = 任务数n / 总用时T

总用时T = 第一条指令的完整用时 + (n - 1)个指令执行阶段耗时(理想情况,取一个时钟周期)= kt + (n - 1)t = (k + n - 1)t

装入时间:第一条指令从开始到结束的时间

排空时间:最后一条指令从开始到结束的时间8f05b424745b4c30861c4db457d135f7.png

2.加速比6ec617d37d9c40f38e5a2a85c9b00809.png

3.加速比

5.2.指令流水线的影响因素和分类

5.2.1.机器周期的设置

①划分为五个周期

IF(Instruction Fetch)取值:根据PC所指向的位置到Instruction Cache中找出当前要执行的指令,然后将该指令放到IF阶段的锁存器中

ID(Instruction Decode)译码:该阶段除了完成指令译码外,还会完成取操作数(从通用寄存器中取出),然后将操作数分别放入ID阶段的锁存器A、B中(或指令中包含立即数,则放入IMM)

EX(Execute)执行:对ID阶段的锁存器中储存的两个操作数进行计算,并将结果放入EX阶段的锁存器中

MEM(Memory)访存

WB(WriteBack)写回:可能将数据写回通用寄存器中

(IF和MEM阶段中的Cache分别是指令Cache和数据Cache,将Cache分为指令和数据两个独立的部分,可以使得IF和MEM的部件并行工作)

Cache不命中将会导致指令流水线断流(需要访存)

每条指令被划分为五个机器周期,就算某条指令在实际执行过程中的某个周期不需要做任何事(例如不需要访存、不需要写回),但它仍然需要经历这个周期(无法跳过)

③每个机器周期设置为同一周期:每个机器周期所需的时间实际上可能并不相同(100、80、70、50、50),取最长的耗时为统一的机器周期

5cbc45621e4c4cf59d620e27dc35ec97.png

为了使得能够统一机器周期,需要在某个功能部件后添加数据缓冲器:例如图中ID阶段仅需要80ns,而统一的机器周期为100ns,即ID的功能部件执行完成后,还剩余20ns,则ID执行后需先将数据存放到ID部件后的数据缓冲器中,经过20ns后,再将数据从数据缓冲器中输出,此时就能控制ID的机器周期为100ns

5.2.2.影响流水线的因素

1.结构相关(资源冲突):多条指令在同一时间争用统一资源d6cdb57e5e6f4862a761944a959ee212.png

①IF和MEM阶段可能访问同一内存空间;ID和WB阶段可能访问同一通用寄存器

②解决方法:后访问/数据和指令分开存储

2.数据相关(数据冲突):必须等待前一条指令完成才能执行后一条指令

5348c773882e4e16bd63af2c096f423c.png

①SUB、AND和OR指令在ADD指令将指令执行结果放回r1之前就从r1中取出数据,产生数据冲突

②XOR指令在ADD指令将指令执行结果放回r1后才取出数据,未发生数据冲突

③解决方法:硬件——添加气泡节拍延后产生数据冲突的指令133b3e44ab084be79a792c36e04e8e06.png软件——在产生数据冲突的指令间插入若干条空指控(NOP,需要完整的五个机器周期)4fb3028d94e646ee9adf202b1d5a466e.png

数据旁路——把前一条指令的ALU计算结果作为后一条指令的ALU输入

编译优化——调整指令执行顺序(将不发生冲突的指令提前,发生冲突的指令延后)

3.控制相关(控制冲突):遇到转移指令和其他改变PC值得指令产生断流

解决:①简单预测:永远猜正确/错误

动态预测:根据历史情况动态调整

②将正确和错误的控制流的指令都预先取出

③加快和提前形成条件码(类似加法器的思想——增加一条电路将结果输入到后面的加法器中)


















相关文章
|
算法 Unix 调度
【OSTEP】调度: 多级反馈队列 (MLFQ) | 优先级提升 | 饥饿问题 | 愚弄调度问题 | MLFQ 调优
【OSTEP】调度: 多级反馈队列 (MLFQ) | 优先级提升 | 饥饿问题 | 愚弄调度问题 | MLFQ 调优
1228 0
|
存储 缓存 小程序
微信小程序登录流程解析
微信官方文档有小程序的登录流程时序图,本文围绕这张图从0到1做更具体的解析。微信小程序的登录看上去好像很复杂,实际上只是不同的接口调用、字段返回,整个过程有3方在参与:小程序、开发者服务器、微信服务器。
微信小程序登录流程解析
|
算法 Linux 数据处理
《操作系统》—— 处理机调度算法
《操作系统》—— 处理机调度算法
5096 1
|
2月前
|
数据采集 供应链 监控
超市空货架检测数据集(1500张)|YOLO训练数据集 智能零售 缺货识别 货架巡检 库存管理
本数据集含1500张真实超市场景图像,专为YOLO等模型训练设计,聚焦“空货架”单类别检测,支持缺货识别、智能巡检与库存管理,标注精准、结构规范、开箱即用。
|
11月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
机器学习/深度学习 人工智能 编解码
AIMv2:苹果开源多模态视觉模型,自回归预训练革新图像理解
AIMv2 是苹果公司开源的多模态自回归预训练视觉模型,通过图像和文本的深度融合提升视觉模型的性能,适用于多种视觉和多模态任务。
681 5
AIMv2:苹果开源多模态视觉模型,自回归预训练革新图像理解
|
搜索推荐
大模型训练常见通信源语解释
本文总结了在大模型分布式训练中常用的通信原语,包括一对多操作(Broadcast、Scatter)、多对一操作(Gather、Reduce)以及多对多操作(AllGather、AllReduce、ReduceScatter、All-To-All)。这些操作在模型并行和数据并行场景中起到关键作用,如参数初始化、数据切分与汇聚、规约运算等。通过详细介绍每种通信方式的功能与应用场景,帮助理解分布式训练中的数据交互机制。
1591 2
|
人工智能 自然语言处理 数据可视化
阿里云 Bolt.diy:一键开启全能开发,简单强大零门槛
Bolt.diy是Bolt.new的开源版本,通过自然语言交互简化开发流程,支持全栈开发与二次开发。依托多模态智能调度引擎和主流大模型,实现任务智能匹配、模块化部署及私有模型集成,大幅提升开发效率。平台提供代码自动生成、实时诊断优化与可视化工具,降低开发门槛。体验中发现其简单易用,但存在偶发卡顿问题。总体而言,Bolt.diy是一款高效实用的开发工具,适合新手与企业使用。
596 7
|
弹性计算 负载均衡 网络协议
阿里云共享流量包怎么用?自动生效的宝子们~不用设置,买完就自动抵扣了
阿里云共享流量包是一种自动生效的流量抵扣套餐,可覆盖ECS、EIP、CLB、共享带宽及IPv6网关等产品的公网流量费用。购买后无需手动设置,系统将自动抵扣对应地域的流量费用。适用于亚太全时、亚太闲时和欧美全时等多个区域,支持10GB至10TB不同规格,价格低至4元/月起。使用前需确保流量包与云产品地域匹配,查询用量可通过阿里云【费用与成本】页面查看。更多详情请参考官方文档。