导航:首页 > 信息技术 > 什么叫指令级并行技术

什么叫指令级并行技术

发布时间:2022-12-13 05:50:23

A. 计算机系统结构(双语)

计算机体系结构是计算机科学与技术、软件工程等专业的核心课程之一,重点论述计算机系统各种基本结构、设计技术和性能分析方法。通过本课程,了解计算机系统的各种基本结构,掌握在计算机设计各个环节中影响性能的因素,以及提高性能的各种理论和方法。

本门课程属于计算机偏硬技术课程,针对计算机科学与技术、软件工程等专业高年级学生开设。主要讲授内容为:计算机系统结构、计算机指令集结构设计、流水线技术、指令级并行、存储层次结构、输入输出系统、多处理机等。

结合计算机系统性能提升的技术路线及方法分析计算机体系结构的基本理论、基本技术和基本方法,与此同时,采用最新计算机体系结构实例讲解课程内容。

课程大纲

第一章 计算机系统结构的基本概念
1. 计算机系统结构的概念(计算机系统的层次结构,计算机系统结构,计算机组成,计算机实现,系列机)
2. 计算机系统结构的发展
3. 影响计算机系统结构的成本和价格因素
4. 定量分析技术基础(计算机性能评测的基本概念,测试程序,性能设计和评测的基本原则,Amdahl定律,CPU的性能)
5. 计算机系统结构中并行性的发展(并行性概念,提高并行性的技术途径)

第二章 计算机指令集结构设计
1. 指令集结构的分类
2. 寻址技术
3. 指令集结构的功能设计
4. 操作数的类型、表示和大小
5. 指令集格式的设计(寻址方式的表示方法,指令集格式的选择)
6. DLX指令集结构

第三章 流水线技术
1. 流水线的基本概念及分类
2. DLX的基本流水线
3. 流水线性能分析(时空图、吞吐率、加速比、效率、消除流水线瓶颈段的方法)
4. 流水线中的相关及解决方法(结构相关、数据相关、控制相关、定向技术、指令调度、分支预测、延迟分支等)
5. MIPS R4000流水线计算机简介
6. 向量处理机(向量处理方式、向量处理机的概念、提高向量处理机性能的主要技术、向量处理机的性能评价)

第四章 指令级并行
1. 指令级并行的概念(循环展开,相关)
2. 指令的动态调度(动态调度的原理、记分牌技术、Tomasulo算法)
3. 控制相关的动态解决技术(分支预测缓冲、分支目标缓冲、基于硬件的前瞻执行)
4. 多指令流出技术(静态超标量、动态多指令流出、超长指令字)

第五章 存储器层次结构
1. 存储器的层次结构(存储层次的性能参数、“Cache —主存”层

B. sse2指令集、多线程threads、openmpi、gpu之间的有什么区别和联系

SSE是指令级并行的技术SIMD,一条指令可以进行多个运算;多线程是利用CPU的多核并行,每个线程可以执行不同的指令流;mpi是进程间通信接口,可用于单机多进程并行,或多机并行;GPU是同一指令流的多线程SIMT,因为核心数多并行度很高。
区别就是这样,联系大概是他们都是用并行的方式来获得高性能的。

C. 指令集是什么意思

CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。我们通常会把CPU的扩展指令集称为"CPU的指令集"。

1、精简指令集的运用

在最初发明计算机的数十年里,随着计算机功能日趋增大,性能日趋变强,内部元器件也越来越多,指令集日趋复杂,过于冗杂的指令严重的影响了计算机的工作效率。后来经过研究发现,在计算机中,80%程序只用到了20%的指令集,基于这一发现,RISC精简指令集被提了出来,这是计算机系统架构的一次深刻革命。RISC体系结构的基本思路是:抓住CISC指令系统指令种类太多、指令格式不规范、寻址方式太多的缺点,通过减少指令种类、规范指令格式和简化寻址方式,方便处理器内部的并行处理,提高VLSI器件的使用效率,从而大幅度地提高处理器的性能。

RISC指令集有许多特征,其中最重要的有:

指令种类少,指令格式规范:RISC指令集通常只使用一种或少数几种格式。指令长度单一(一般4个字节),并且在字边界上对齐,字段位置、特别是操作码的位置是固定的。
寻址方式简化:几乎所有指令都使用寄存器寻址方式,寻址方式总数一般不超过5个。其他更为复杂的寻址方式,如间接寻址等则由软件利用简单的寻址方式来合成。
大量利用寄存器间操作:RISC指令集中大多数操作都是寄存器到寄存器操作,只以简单的Load和Store操作访问内存。因此,每条指令中访问的内存地址不会超过1个,访问内存的操作不会与算术操作混在一起。
简化处理器结构:使用RISC指令集,可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,而不必像CISC处理器那样使用微程序来实现指令操作。因此RISC处理器不必像CISC处理器那样设置微程序控制存储器,就能够快速地直接执行指令。
便于使用VLSI技术:随着LSI和VLSI技术的发展,整个处理器(甚至多个处理器)都可以放在一个芯片上。RISC体系结构可以给设计单芯片处理器带来很多好处,有利于提高性能,简化VLSI芯片的设计和实现。基于VLSI技术,制造RISC处理器要比CISC处理器工作量小得多,成本也低得多。
加强了处理器并行能力:RISC指令集能够非常有效地适合于采用流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。目前常用的处理器内部并行操作技术基本上是基于RISC体系结构发展和走向成熟的。
正由于RISC体系所具有的优势,它在高端系统得到了广泛的应用,而CISC体系则在桌面系统中占据统治地位。而在如今,在桌面领域,RISC也不断渗透,预计未来,RISC将要一统江湖。

2、CPU的扩展指令集

对于CPU来说,在基本功能方面,它们的差别并不太大,基本的指令集也都差不多,但是许多厂家为了提升某一方面性能,又开发了扩展指令集,扩展指令集定义了新的数据和指令,能够大大提高某方面数据处理能力,但必需要有软件支持。

MMX 指令集
MMX(Multi Media eXtension,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指令增强技术。MMX指令集中包括有57条多媒体指令,通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。MMX的益处在于,当时存在的操作系统不必为此而做出任何修改便可以轻松地执行MMX程序。但是,问题也比较明显,那就是MMX指令集与x87浮点运算指令不能够同时执行,必须做密集式的交错切换才可以正常执行,这种情况就势必造成整个系统运行质量的下降。

SSE指令集
SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III处理器中率先推出的。其实,早在PIII正式推出之前,Intel公司就曾经通过各种渠道公布过所谓的KNI(Katmai New Instruction)指令集,这个指令集也就是SSE指令集的前身,并一度被很多传媒称之为MMX指令集的下一个版本,即MMX2指令集。究其背景,原来"KNI"指令集是Intel公司最早为其下一代芯片命名的指令集名称,而所谓的"MMX2"则完全是硬件评论家们和媒体凭感觉和印象对"KNI"的 评价,Intel公司从未正式发布过关于MMX2的消息。

而最终推出的SSE指令集也就是所谓胜出的"互联网SSE"指令集。SSE指令集包括了70条指令,其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。理论上这些指令对目前流行的图像处理、浮点运算、3D运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。SSE指令与3DNow!指令彼此互不兼容,但SSE包含了3DNow!技术的绝大部分功能,只是实现的方法不同。SSE兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。

SSE2指令集
SSE2(Streaming SIMD Extensions 2,Intel官方称为SIMD 流技术扩展 2或数据流单指令多数据扩展指令集 2)指令集是Intel公司在SSE指令集的基础上发展起来的。相比于SSE,SSE2使用了144个新增指令,扩展了MMX技术和SSE技术,这些指令提高了广大应用程序的运行性能。随MMX技术引进的SIMD整数指令从64位扩展到了128 位,使SIMD整数类型操作的有效执行率成倍提高。双倍精度浮点SIMD指令允许以 SIMD格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速内容创建、财务、工程和科学应用。除SSE2指令之外,最初的SSE指令也得到增强,通过支持多种数据类型(例如,双字和四字)的算术运算,支持灵活并且动态范围更广的计算功能。SSE2指令可让软件开发员极其灵活的实施算法,并在运行诸如MPEG-2、MP3、3D图形等之类的软件时增强性能。Intel是从Willamette核心的Pentium 4开始支持SSE2指令集的,而AMD则是从K8架构的SledgeHammer核心的Opteron开始才支持SSE2指令集的。

SSE3指令集
SSE3(Streaming SIMD Extensions 3,Intel官方称为SIMD 流技术扩展 3或数据流单指令多数据扩展指令集 3)指令集是Intel公司在SSE2指令集的基础上发展起来的。相比于SSE2,SSE3在SSE2的基础上又增加了13个额外的SIMD指令。SSE3 中13个新指令的主要目的是改进线程同步和特定应用程序领域,例如媒体和游戏。这些新增指令强化了处理器在浮点转换至整数、复杂算法、视频编码、SIMD浮点寄存器操作以及线程同步等五个方面的表现,最终达到提升多媒体和游戏性能的目的。Intel是从Prescott核心的Pentium 4开始支持SSE3指令集的,而AMD则是从2005年下半年Troy核心的Opteron开始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3与Intel的SSE3并不完全相同,主要是删除了针对Intel超线程技术优化的部分指令。

3D Now!(3D no waiting)指令集
3DNow!是AMD公司开发的SIMD指令集,可以增强浮点和多媒体运算的速度,并被AMD广泛应用于其K6-2 、K6-3以及Athlon(K7)处理器上。3DNow!指令集技术其实就是21条机器码的扩展指令集。

与Intel公司的MMX技术侧重于整数运算有所不同,3DNow!指令集主要针对三维建模、坐标变换 和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3D处理性能。后来在Athlon上开发了Enhanced 3DNow!。这些AMD标准的SIMD指令和Intel的SSE具有相同效能。因为受到Intel在商业上以及Pentium III成功的影响,软件在支持SSE上比起3DNow!更为普遍。Enhanced 3DNow!AMD公司继续增加至52个指令,包含了一些SSE码,因而在针对SSE做最佳化的软件中能获得更好的效能。

D. 指令并行流水线是什么(出自微机原理与接口技术)

你指的是“指令流水线”吧, 指令的执行过程分为取指令,译码,执行3个阶段, 指令的这3个阶段是并行的, 就是说当前的指令在执行的时候,前一条指令正在译码, 再前一条正在取指令,在复杂一点的cpu上,执行阶段还要再细分,比如ARM9,五级流水线,就是这个概念,
取指令1个周期,译码1个周期,执行3个周期,每个周期都是并行的,一条1个周期的加法,实际的执行时间是5个周期。

E. 什么是指令重排

什么是指令重排序?
有两个层面:
**在虚拟机层面,**为了尽可能减少内存操作速度远慢于CPU运行速度所带来的CPU空置的影响,虚拟机会按照自己的一些规则(这规则后面再叙述)将程序编写顺序打乱——即写在后面的代码在时间顺序上可能会先执行,而写在前面的代码会后执行——以尽可能充分地利用CPU。拿上面的例子来说:假如不是a=1的操作,而是a=new byte1024*1024,那么它会运行地很慢,此时CPU是等待其执行结束呢,还是先执行下面那句flag=true呢?显然,先执行flag=true可以提前使用CPU,加快整体效率,当然这样的前提是不会产生错误(什么样的错误后面再说)。虽然这里有两种情况:后面的代码先于前面的代码开始执行;前面的代码先开始执行,但当效率较慢的时候,后面的代码开始执行并先于前面的代码执行结束。不管谁先开始,总之后面的代码在一些情况下存在先结束的可能。
**在硬件层面,**CPU会将接收到的一批指令按照其规则重排序,同样是基于CPU速度比缓存速度快的原因,和上一点的目的类似,只是硬件处理的话,每次只能在接收到的有限指令范围内重排序,而虚拟机可以在更大层面、更多指令范围内重排序。硬件的重排序机制参见《从JVM并发看CPU内存指令重排序(Memory Reordering)》
Java提供了两个关键字volatile和synchronized来保证多线程之间操作的有序性,volatile关键字本身通过加入内存屏障来禁止指令的重排序,而synchronized关键字通过一个变量在同一时间只允许有一个线程对其进行加锁的规则来实现。
在单线程程序中,不会发生“指令重排”和“工作内存和主内存同步延迟”现象,只在多线程程序中出现。
1)编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。
2)指令级并行的重排序。现代处理器采用了指令级并行技术(Instruction-LevelParallelism,ILP)来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行顺序。
3)内存系统的重排序。由于处理器使用缓存和读/写缓冲区,这使得加载和存储操作看上去可能是在乱序执行

F. 何为安腾的“显式并行指令计算(EPIC)技术”

安腾体系结构脱离了IA-32 CISC体系结构的束缚,但并没有完全照搬RISC处理机的设计思想。EPIC既不是RISC,也不是CISC,而是一种吸收了CISC和RISC两者长处的全新的体系结构。主要体现在以下几个方面:
1:显式并行指令计算(EPIC)技术
2:超长指令字(VLIW)技术
3:分支推断技术
4: 推测技术
5: 软件流水技术
6: 寄存器堆栈技术

显式并行指令计算(EPIC)技术:安腾的指令中设计了属性字段,用于指明哪些指令可以并行执行。这些属性信息并不是在指令执行过程中由处理机判定后获得的,而是由编译程序在编译时通过对源代码的分析获取指令级的并行性信息,并填写到执行代码中。这就是所谓显式并行的概念。
EPIC技术则充分利用现代编译程序强大的对程序执行过程的调度能力,由专用的EPIC编译器首先分析源代码,根据指令之间的依赖关系最大限度地挖掘指令级的并行性,从而确定哪些指令可以并行执行,然后把并行指令放在一起并重新排序,提取并调度其指令级的并行,并将这种并行性通过属性字段“显式”地告知指令执行部件。

超长指令字(VLIW)技术:超长指令字(VLIW)技术是提高计算机系统并行性的有效手段。VLIW系统中指令字长可多达几百位,编译器经过优化,能将多条能够并行执行的指令合并成一个具有多个操作码的超长指令字,控制多个独立的功能部件工作。

线面给你介绍一下安腾其它的技术

分支推断技术:推断技术能将传统的“if then else”分支结构转变为无分支的顺序/并行代码,以避免由于错误预测分支而付出代价。当处理机在运行中遇到分支时,它并不是进行传统的分支预测并选择可能性最大的一个分支执行,而是按分支的所有可能的后续路径开始并行执行多段代码并暂存各段代码的执行结果,直到处理机能够确认分支转移与否的条件是真是假时,处理机再把应该选择的路径上的指令执行结果保留下来。
采用了推断技术后,原有的转移指令被转换成条件执行指令。原有的转移指令的所有的分支都被并行执行,无论哪条分支将被命中,都不会出现流水线断流现象,故消除了因分支预测失误而重新装载流水线导致的低效率现象。更进一步,以前由于程序分支和指令依赖等因素不能并行执行的许多指令现在完全可以并行执行,从而提高了处理机的执行效率。

推测技术:推测技术,包括控制推测和数据推测,以减少存储器访问响应时间的影响。 控制推测技术和数据推测技术允许提前执行从内存单元至通用寄存器的取数指令。当程序中有分支时,控制推测技术将位于分支指令之后的取数指令提前若干周期执行,以此消除访存延时,提高指令执行的并行度。而数据推测技术则用于解决提前取数指令后的数据相关性问题。 推测技术避免了cache命中失败而导致访存延迟的损失,消除了因处理机空闲而导致的并行性降低的缺憾。

软件流水技术:安腾体系结构提供了很强的硬件支持,使循环执行过程中一次循环的代码执行与下一次循环代码的执行在时间上部分重叠,也即下一个循环步可以在上一个循环步结束前开始执行。 这种实现并行性的方式称为软件流水。
安腾体系结构引入了新机制来支持软件流水,包括自动寄存器重命名、推断执行和特殊的循环终止指令。因此,安腾处理机能够通过旋转寄存器机制为每个循环步提供自己的寄存器,并且不需要把循环扩展开来。
安腾体系结构中硬件对编译器管理软件流水线的支持使得编译器能够生成精简的代码,以高度并行的方式实现循环操作。

阅读全文

与什么叫指令级并行技术相关的资料

热点内容
怎么代理国际快递 浏览:101
深圳如何补贴电子产品 浏览:198
十佳代理记账要多少费用 浏览:442
手游问道交易时元宝买什么最划算 浏览:428
河北衡水哪里有收藏品交易市场 浏览:51
怎么看网上高铁票上的信息 浏览:568
柚子数据查征信收多少钱 浏览:280
公示信息如何隐藏股东名字 浏览:867
微信如何注册小程序进行调查问卷 浏览:635
南充网络技术哪个好 浏览:631
一个字有哪些数据类型 浏览:177
上市当天停牌什么时候可以交易 浏览:739
怎么数据加载失败了 浏览:290
如何代理百度竞价秒收 浏览:382
泉州万祥物流是什么产品 浏览:797
免费交易平台哪个好 浏览:40
机务技术员就业情况如何 浏览:391
山海经这游戏怎么代理 浏览:929
眼部祛斑产品有哪些 浏览:832
合肥红酒代理商有哪些 浏览:848