超标量、超流水、超线程
一、超流水线技术 超流水线(Super Pieline)技术是RISC采用的一种并行处理技术。他通过细化流水,增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质就是以时间换取空间。超流水机器的特征就是在所有的功能单元都才用流水,并有更高的时钟频率和更深的流水深度。 二、超标量技术 超标量(Super Scalar)技术是RISC采用的有一种处理技术。它通过内装多条流水线来同时执行多个处理。其实质就是以空间换取时间。流水线实现中的问题及解决
三.超线程技术 超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%。而其余部分如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。 超线程的具体解释: http://publish.it168.com/cword/962.shtml
----------------------------------------------------
流水线技术、超标量。流水线(pipeline)是 Intel首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高了CPU的运算速度。超流水线是指某型 CPU内部的流水线超过通常的5~6步以上,例如Pentium pro的流水线就长达14步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。超标量是指在一个时钟周期内CPU可以执行一条以上的指令。这在486或者以前的CPU上是很难想象的,只有Pentium级以上CPU才具有这种超标量结构;这是因为现代的CPU越来越多的采用了RISC技术,所以才会超标量的CPU。
------------------------------------------------------------------
1、超标量(Superscalar)
既然无法大幅提高ALU的速度,有什么替代的方法呢?并行处理的方法又一次产生了强大的作用。所谓的超标量CPU,就是只集成了多个ALU、多个FPU、多个译码器和多条流水线的CPU,以并行处理的方式来提高性能。
超标量技术应该是很容易理解的,不过有一点需要注意,就是不要去管“超标量”之前的那个数字,比如“9路超标量”,不同的厂商对于这个数字有着不同的定义,更多的这只是一种商业上的宣传手段。
2、流水线(Pipeline)
流水线是现代RISC核心的一个重要设计,它极大地提高了性能。
对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算(ALU),写结果。其中前三步一般由指令控制器完成, 后两步则由运算器完成。按照传统的方式,所有指令顺序执行,那么先是指令控制器工作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器 工作,完成第二条指令的前三步,在是运算器,完成第二条指令的后两部……很明显,当指令控制器工作是运算器基本上在休息,而当运算器在工作时指令控制器却 在休息,造成了相当大的资源浪费。解决方法很容易想到,当指令控制器完成了第一条指令的前三步后,直接开始第二条指令的操作,运算单元也是。这样就形成了 流水线系统,这是一条2级流水线。
如果是一个超标量系统,假设有三个指令控制单元和两个运算单元,那么就可以在完成了第一条指令的取址工作后直接开始第二条指令的取址,这时第一 条指令在进行译码,然后第三条指令取址,第二条指令译码,第一条指令取操作数……这样就是一个5级流水线。很显然,5级流水线的平均理论速度是不用流水线 的4倍。
流水线系统最大限度地利用了CPU资源,使每个部件在每个时钟周期都工作,大大提高了效率。但是,流水线有两个非常大的问题:相关和转移。
在一个流水线系统中,如果第二条指令需要用到第一条指令的结果,这种情况叫做相关。以上面哪个5级流水线为例,当第二条指令需要取操作数时,第 一条指令的运算还没有完成,如果这时第二条指令就去取操作数,就会得到错误的结果。所以,这时整条流水线不得不停顿下来,等待第一条指令的完成。这是很讨 厌的问题,特别是对于比较长的流水线,比如20级,这种停顿通常要损失十几个时钟周期。目前解决这个问题的方法是乱序执行。乱序执行的原理是在两条相关指 令中插入不相关的指令,使整条流水线顺畅。比如上面的例子中,开始执行第一条指令后直接开始执行第三条指令(假设第三条指令不相关),然后才开始执行第二 条指令,这样当第二条指令需要取操作数时第一条指令刚好完成,而且第三条指令也快要完成了,整条流水线不会停顿。当然,流水线的阻塞现象还是不能完全避免 的,尤其是当相关指令非常多的时候。
另一个大问题是条件转移。在上面的例子中,如果第一条指令是一个条件转移指令,那么系统就会不清楚下面应该执行那一条指令?这时就必须等第一条 指令的判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。所以,现在采用分支预测技术来处理转移问题。虽然我们的程序 中充满着分支,而且哪一条分支都是有可能的,但大多数情况下总是选择某一分支。比如一个循环的末尾是一个分支,除了最后一次我们需要跳出循环外,其他的时 候我们总是选择继续循环这条分支。根据这些原理,分支预测技术可以在没有得到结果之前预测下一条指令是什么,并执行它。现在的分支预测技术能够达到90% 以上的正确率,但是,一旦预测错误,CPU仍然不得不清理整条流水线并回到分支点。这将损失大量的时钟周期。所以,进一步提高分支预测的准确率也是正在研 究的一个课题。
越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。
超标量、超流水、超线程相关推荐
- AMD公司的灵魂Athlon产品回忆录
在CPU领域里的竞争,AMD与Intel从来就没有停止过,AMD也并没有如几年前人们所料想的那样被Intel压着打,反而步步紧逼Intel做出了种种不得以的决策.从AMD第一块CPU芯片开始,就已经发 ...
- 计算机组成原理-电大mooc
第1章计算机系统概述 1.1计算机的概念和类型 https://blog.csdn.net/aiqq136/article/details/118481670 1.1.1 计算机的基本概念 1.1.2 ...
- AMD Athlon CPU 全系列回忆录
Athlon已不仅是一款处理器名称,而成为AMD公司的灵魂.这是一个沿用了8年而不朽的称谓,它见证了AMD由受人摆布到走向成熟,见证了AMD与Intel 历时8年的性能斗争.Athlon并不是AMD的 ...
- 【基础课程】计算机组成原理
缩写词解释与一些计算题 白中英教材复习总结 内容总结 \,\, 其他总结 \,\, 其他总结 术语: PCI,外围器件互联Peripheral Component Interconnect,主要用于连 ...
- 计算机体系结构 标量处理机
标量处理机 5 标量处理机 5.1 先行控制技术 5.1.1 指令的重叠执行方式 1 顺序执行 2 一次重叠执行方式 3 二次重叠执行方式 5.1.2 先行控制方式的原理 1 采用二次重叠执行方式必须 ...
- CPU的结构和功能——指令流水及中断系统
CPU结构 (一)CPU的功能 想了解CPU的结构,首先要知道CPU的功能.然后讨论什么样的结构能够为CPU提供相应的功能.CPU由运算器和控制器组成. 1.控制器的功能 取指令,把指令从内存单元中取 ...
- 微机原理与接口技术 重点详解与章节总结——CPU架构详解
第一章绪论 微处理器分为三类的划分 微处理器主要可以分为三类: 通用高性能微处理器(通用CPU) 通用处理器追求高性能,它们用于运行通用软件,配备完备.复杂的操作系统. 通用微处理器一般指的是服务器用 ...
- 常见的计算机系统结构不包括,计算机系统结构
摘要: 本书系统地讲述了计算机系统结构的基本概念,设计原理和设计方法.本书是为高等院校计算机本科专业的高年级学生而编写的教材.其内容丰富,由浅人深,理论联系实际,每章利用一定的篇幅介绍了当今Penti ...
- 新书品读《三级网络技术预测试卷与考点解析》,欢迎拍砖、跟砖提建议。
新书品读:<三级网络技术预测试卷与考点解析>已正式出版上市,欢迎拍砖.跟砖提建议. 第1章 考前预测试卷1 1.1 上午试题 (考试时间120分钟,满分100分) 1.1.1 笔试试卷 ...
- 冯诺依曼计算机结构教案,冯诺依曼结构的计算机-同济大学精品课程.PPT
冯诺依曼结构的计算机-同济大学精品课程 * 第一章 概 述 同济大学软件学院 课程的内容: 1.介绍单计算机系统的硬件组成 (内部结构.工作机制) 2.计算机自动工作的原理 3.在对工作原理了解的基础 ...
最新文章
- cloud自动发卡平台cloudfaka_open-cloud基于springcloud、oauth2、nacos打造的微服务开放平台...
- 神经网络原来这么简单,机器学习入门贴送给你 | 干货
- 【upc5020】	Knight
- ASP解析JSON例子
- poj 2503(字符串hash)
- JS实现图片预览与等比缩放
- python重定向_在Python中使用urlopen()防止“隐藏”重定向
- CSAPP:第十一章 网络编程
- sqlserver 2008阻止保存要求重新创建表的更改
- 浅谈sql之连接查询
- 原生js发送ajax请求
- Linux服务器(CentOS7)基础信息设置之满足等保三级测评要求
- JAVA Future类详解
- Kafka的消息可靠性(防止消息丢失)
- 无人机倾斜摄影在矿山测量测绘中有哪些应用
- UK EU 码对照表,USA EURO SIZE码对照表 国外衣服码对照表
- chromium代码结构
- p20 021 函数:我的地盘听我的
- Java面向对象编程之继承练习题(三)
- 佛经小故事--《盲龟浮木》