计算机组成原理:超标量,让CPU的吞吐率超过1
问题
一个公式:
程序的CPU执行时间=指令数∗CPI∗ClockCycleTime程序的CPU执行时间 = 指令数 * CPI * Clock Cycle Time程序的CPU执行时间=指令数∗CPI∗ClockCycleTime
这个公式里,有一个叫做CPI的指标,CPI的倒数,又叫作 IPC(Instruction Per Clock),也就是一个时钟周期里面能够执行的指令树,代表了CPU的吞吐率。那么,在反复优化流水线架构的CPU里面,能够达到多少呢?
答案是:最佳情况下,IPC也只能到1。因为无论做了哪些流水线层面的优化,即使做到了指令执行层面的乱序执行,CPU仍然只能在一个时钟周期里面,取一条指令。
但是,我们现在用的Intel CPU 或者 ARM 的 CPU,一般的 CPI 都能做到 2 以上,这是怎么做到的呢?
- 指令的执行阶段:乱序执行的时候,是由很多个功能单元(FU)并行(Parallel)进行的。
- 取指令和指令译码也可以通过增加硬件的方式,同时并行执行:
- 我们可以一次性从内存里面取出多条指令,然后分发给多个并行的指令译码器,进行译码,然后对应交给不同的功能单元去处理。
这样,我们在一个时钟周期里,能够完成的指令就不只一条了。IPC 也就能做到大于 1 了
(从上图可以看出,不同的功能单元的流水线长度是不一样的。我们平时说的14级流水线,指的通常是进行整数计算指令的流水线长度。如果是浮点数运行,实际的流水线长度会更长一点)
这种 CPU 设计,我们叫作多发射(Mulitple Issue)和超标量(Superscalar)。
- 多发射:在同一个时间,可能会同时把多条指令发送到不同的译码器或者后继处理的流水线中去
- 超标量:
- 在超标量的CPU里面,有很多条并行的流水线,而不是只有一条流水线。
- “超标量”这个词是说,本来我们在一个时钟周期里面,只能执行一个标量(Scalar)的运算。在多发射的情况下,我们就能够超越这个限制,同时进行多次计算。
总结
- 超标量可以让CPU不仅在指令执行阶段是并行的,在取指令和指令译码的时候,也是并行的。通过超标量技术,可以使得CPU的IPC超过1
- 在 Intel 的 x86 的 CPU 里,从 Pentium 时代,第一次开始引入超标量技术,整个 CPU 的性能上了一个台阶。对应的技术,一直沿用到了现在。
- 超标量技术和流水线技术一样,依赖于在硬件层面,能够检测到对应的指令的先后依赖关系,解决“冒险”问题。所以,它也使得CPU 的电路变得更复杂了。
计算机组成原理:超标量,让CPU的吞吐率超过1相关推荐
- 计算机组成原理实验 单总线CPU设计(变长指令周期3级时序)(HUST)思路总结
计算机组成原理实验 单总线CPU设计(变长指令周期3级时序)(HUST)思路总结 变长指令周期3级时序单总线CPU设计和定长指令周期的设计类似,区别在于时序发生器状态机和输出函数的设计,以及硬布线控制 ...
- 计算机组成原理实验 单总线CPU设计(定长指令周期3级时序)(HUST)思路总结
计算机组成原理实验 单总线CPU设计(定长指令周期3级时序)(HUST)总结 全部任务共六关.主要涉及定长指令周期三级时序系统的设计,设计过程中比较重要的是数电知识.Logisim的组合逻辑电路分析功 ...
- 计算机组成原理cpu模型详解,计算机组成原理第九讲(CPU模型).ppt
<计算机组成原理第九讲(CPU模型).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第九讲(CPU模型).ppt(29页珍藏版)>请在装配图网上搜索. 1.计算机组成 ...
- 计算机组成原理Logisim单总线CPU
计算机组成原理 Logisim单总线CPU 指令译码器设计 硬布线控制器 单总线CPU(3级时序) 硬布线控制器组合逻辑单元 时序发生器输出函数(定长指令周期) 时序发生器FSM设计(定长指令周期)
- 计算机组成原理——中央处理器(CPU)考研题
(一) CPU的功能和基本结构 (二) 指令执行过程 (三) 数据通路的功能和基本结构 (四) 控制器的功能和工作原理 硬布线控制器 微程序控制器 微程序.微指令和微命令: 微指令的编码方式: 微地址 ...
- 计算机组成原理实验信号cpu,计算机组成原理实验43_实验报告
计算机组成原理实验43_实验报告 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 学生实验报告学 院:软 件 学 院 专 业:软 件 工 ...
- 计算机组成原理课程设计——CPU与简单模型机设计
一.设计目的 1.掌握一个简单CPU的组成原理. 2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机. 3.掌握微程序控制器设计. 二.设计任务与要求 设计任务: 用所学知识,设计并构造 ...
- 合肥工业大学《系统硬件综合设计》(《计算机组成原理》,CPU)课程设计报告(2020)
文章目录 1 课程设计概述 1.1 设计目的 1.2 设计任务 1.3 设计要求 1.4 技术指标 2 总体方案设计 2.1 MIPS体系结构 2.1.1 MIPS寄存器 2.1.2 MIPS指令集 ...
- 计算机组成原理笔记——中央处理器CPU
文章目录 CPU的功能和基本结构 指令执行过程 数据通路的功能和基本结构 控制器的功能和工作原理 指令流水线 CPU的功能和基本结构 CPU的功能: 运算器和控制器的功能: 运算器 运算器是指计算机中 ...
- 计算机组成原理画出CPU与主存及3-8译码器之间信号线的连接问题
[前驱知识–主存储器扩展] 主存储器表达方法:字线(地址线) × 位线(数据线) *CS片选信号线.WE读写控制信号线.A地址线.D数据线. 位扩展(数据线扩充) 例如:两片16K ...
最新文章
- Could not open Hibernate Session for transaction;
- njust 1927 谁才是最强战舰!(anti-nim博弈论)
- ajax-简单参数方法实现阴影效果
- 疯狂动物消消乐html5游戏在线玩,疯狂动物消消乐免费
- 将Visual Studio打造成为Node.js IDE
- 系统监控技术 -- 主机监控,信息转发,前台显示
- 在iPhone/iPad/iPod touch Home主屏幕界面加快捷方式
- 解决Oracle进入实例账号,练习表的问题
- word排版案例报告_Word操作技巧:图文混排,就是这么简单
- PDF文件格式的特点
- 使用C++ Builder编译QuantLib
- MyTime类表示时间(小时+分钟)JAVA
- 执念于当下的平淡为美好
- 数据访问安全代理 CASB
- mysql用存储过程更新表_如何创建存储过程以更新MySQL表中的值?
- 如何再html5中嵌入视频网站视频
- 粗粒度与细粒度的解释
- python 12306抢票_Python爬虫实战:12306抢票开源!
- PAC模式与全局模式的区别
- C# 简单图片爬虫 快来斗图把
热门文章
- MySQL字符串的拼接方法
- ffmpeg教程 如何输出任务日志?用于进度条显示
- centos6下的vsftpd配置
- 太阳代理ip_IP直通车 | 冬季之始,你知多少
- Python爬虫爬取电影网站种子,让你以后再也不寂寞
- ai人工智能培训讲师计算机视觉讲师叶梓:计算机视觉领域的自监督学习模型——MAE-9
- 如何高效解决PCBA高精密电阻开尔文测试选针问题?
- 阿里云服务器“禁止外国IP访问服务器”和“禁止服务器访问外国IP”的安全组策略配置方法
- 双线性对在密码学中的应用(上)
- 传奇病毒劫持流量手法分析