分类：教育/科学
问题：什么是指令流水线技术？我是电脑初学者，这个问题我不懂 
我是初学者，这个问题我不懂
回答：专用术语浅谈投稿网友:胡启翔Intel公司的X86序列CPU以及其它公司所生产的兼容产品,是目前世界上个人电脑中装机最多的芯片。每当各种媒体介绍或评价这类CPU时,经常会提到诸如“流水线”、“乱序执行”和“分枝预测”等专业术语,尽管不少朋友也知道这些都是CPU使用的先进技术,但毕竟比什么主频、外频等难理解多了。所以我就对经常出现在CPU特性表中的专业术语谈谈自己的理解,以供其他电脑爱好者参考。1、IA一32&IA-64IA是英语“英特尔体系/IntelArchitecture”的缩写。这是因为目前使用的CPU以Intel公司的X86序列产品为主,所以人们将Intel生产的CPU统称为英特尔体系(IA)CPU。由于其它公司如AMD等公司生产的CPU基本上能在软、硬件方面与Intel的CPU兼容,所以人们通常也将这部分CPU列入IA系列。由于目前使用的CPU,包括新推出的PentiumIII都还是32位的,所以又被列为IA-32。而IA-64就是Intel下一步将推出的64位CPU,但其物理结构和工作机理与目前的X86序列的IA-32CPU完全不同。2、CPU的位和字长位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是“0”或是“1”在CPU中都是一“位”。字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字节的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能处理一个宇节,而32位的CPU一次就能处理4个宇节,同理字长为64位的CPU一次可以处理8个字节。3、CPU外频CPU外频也就是常见特性表中所列的CPU总线频率,是由主板为CPU提供的基准时钟频率,而CPU的工作主频则按倍频系数乘以外频而来。在Pentium时代,CPU的外频一般是60/66MHz,从PentiumII350开始,CPU外频提高到1O0MHz。由于正常情况下CPU总线频率和内存总线频率相同,所以当CPU外频提高后,与内存之间的交换速度也相应得到了提高,对提高电脑整体运行速度影响较大。4、CPU主频CPU主频也叫工作频率,是CPU内核(整数和浮点运算器)电路的实际运行频率。在486DX2CPU之前。CPU的主频与外频相等。从486DX2开始,基本上所有的CPU主频都等于“外频乘上倍频系数”了。5、流水线技术流水线(pipeline)是InteI首次在486芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。在CPU中由5~6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5~6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。由于486CPU只有一条流水线,通过流水线中取指令、译码、产生地址、执行指令和数据写回五个电路单元分别同时执行那些已经分成五步的指令,因此实现了486CPU设计人员预期的在每个时钟周期中完成一条指令的目的(按笔者看法,CPU实际上应该是从第五个时钟周期才达到每周期能完成一条指令的处理速度)。到了Pentium时代、设计人员在CPU中设置了两条具有各自独立电路单元的流水线,因此这样CPU在工作时就可以通过这两条流水线来同时执行两条指令,因此在理论上可以实现在每一个时钟周期中完成两条指令的目的。6、超流水线超流水线(superpiplined)是指某型CPU内部的流水线超过通常的5~6步以上,例如Pentiumpro的流水线就长达14步。将流水线设计的步(级)数越多,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。这一点我们可以用日常事例来说明,比如栽树时由5个人同时栽10棵(一人两棵)所完成的速度当然没有10人同时栽(一人一棵)所完成的速度快。7、超标量技术超标量(superscalar)是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。8、乱序执行技术乱序执行(out-of-orderexecution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。比方说程序某一段有7条指令,此时CPU将根据各单元电路的空闹状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路执行。当然在各单元不按规定顺序执行完指令后还必须由相应电路再将运算结果重新按原来程序指定的指令顺序排列后才能返回程序。这种将各条指令不按顺序拆散后执行的运行方式就叫乱序执行(也有叫错序执行)技术。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。这好比请A、B、C三个名人为晚会题写横幅“春节联欢晚会”六个大宇,每人各写两个字。如果这时在一张大纸上按顺序由A写好“春节”后再交给B写“联欢”,然后再由C写“晚会”,那么这样在A写的时候、B和C必须等待、而在B写的时候C仍然要等待而A已经没事了。但如果采用三个人分别用三张纸同时写的做法,那么B和C都不必须等待就可以同时各写各的了、甚至C和B还可以比A先写好也没关系(就象乱序执行),但当他们都写完后就必须重新在横幅上(自然可以由别人做,就象CPU中乱序执行后的重新排列单元)按“春节联欢晚会”的顺序排好才能挂出去。9、分枝分枝(branch)是指程序运行时需要改变的节点。分枝有无条件分枝和有条件分枝,其中无条件分枝只需要CPU按指令顺序执行,而条件分枝则必须根据处理结果再决定程序运行方向是否改变。因此需要”分枝预测”技术处理的是条件分枝。10、分技预溯和推测执行技术分枝预测(branchprediction)和推测执行(speculatlonexecution)是CPU动态执行技术中的主要内容,动态执行是目前CPU主要采用的先进技术之一。采用分枝预测和动态执行的主要目的是为了提高CPU的运算速度。推测执行是依托于分枝预测基础上的,在分枝预测程序是否分枝后所进行的处理也就是推测执行。由于程序中的条件分枝是根据程序指令在流水线处理后结果再执行的,所以当CPU等待指令结果时,流水线的前级电路也处于空闲状态等待分枝指令,这样必然出现时钟周期的浪费。如果CPU能在前条指令结果出来之前就能预测到分枝是否转移、那么就可以提前执行相应的指令,这样就避免了流水线的空闲等待、相应也就提高了CPU的运算速度。但另一方面一旦前指令结果出来后证明分技预测错误,那么就必须将已经装人流水线执行的指令和结果全部清除,然后再装人正确指令重新处理,这样就比不进行分枝预测等待结果后再执行新指令还慢了(所以IDT公的WINC6就没有采用分枝预测技术)。这就好象在外科手术中,一个熟练的护士可以根据手术进展情况来判断医生的需要(象分枝预测)提前将手术器械拿在手上(象推测执行)然后按医生要求递给他,这样可以避免等医生说出要什么,再由护士拿起递给他(医生)的等待时间。当然如果护士判断错误,也必须要放下预先拿的器械再重新拿医生需要的递过去。尽管如此,只要护士经验丰富,判断准确率高,那么当然就可以提高手术进行速度。因此我们可以看出,在以上推测执行时的分枝预测准确性至关重要!所以通过InteI公司技术人员的努力,现在的Pentium和pentiumII系列CPU的分枝预测正确率分别达到了80%和90%,这样虽然可能会有2O%和10%分枝预测错误但平均以后的结果仍然可以提高CPU的运算速度。11、指令特殊扩展技术在介绍CPU性能中还经常提到“扩展指令”或“特殊扩展”一说,这都是指该CPU是否具有对X86指令集进行指令扩展而言。扩展指令中最早出现的是InteI公司自己的“MMX”,其次是AMD公司的“3DNow!”,最后是最近的PentiumIII中的“SSE”。 是英语“多媒体指令集”的缩写。共有57条指令,是Intel公司第一次对自1985年就定型的X86指令集进行的扩展。MMX主要用于增强CPU对多媒体信息的处理,提高CPU处理3D图形、视频和音频信息能力。但由于只对整数运算进行了优化而没有加强浮点方面的运算能力。所以在3D图形日趋广泛,因特网3D网页应用日趋增多的情况下,MMX已心有余而力不足了。3DNOW!:AMD公司开发的多媒体扩展指令集,共有27条指令,针对MMX指令集没有加强浮点处理能力的弱点,重点提高了AMD公司K6系列CPU对3D图形的处理能力,但由于指令有限,该指令集主要应用于3D游戏,而对其他商业图形应用处理支持不足。 是英语“因特网数据流单指令序列扩展/InternetStreamingSIMDExtensions”的缩写。它是InteI公司首次应用于最近才推出的PentiumIII中的。实际就是原来传闻的MMX2以后来又叫KNI(KatmaiNewInstruction),Katmai实际上也就是现在的PentiumIII。SSE共有70条指令,不但涵括了原MMX和3DNow!指令集中的所有功能,而且特别加强了SIMD浮点处理能力,另外还专门针对目前因特网的日益发展,加强了CPU处理3D网页和其它音、象信息技术处理的能力。CPU具有特殊扩展指令集后还必须在应用程序的相应支持下才能发挥作用,因此,当目前最先进的PenthmIII450和PentiumII450运行同样没有扩展指令支持的应用程序时,它们之间的速度区别并不大。12、CPU的生产工艺技术我们常可以在CPU性能列表上看到“工艺技术”一项,其中有“0.35um”或“0.25um”等,这些同样是为了说明CPU技术先进程度。一般来说“工艺技术”中的数据越小表明CPU生产技术越先进。目前生产CPU主要采用CMOS技术。CMOS是英语“互补金属氧化物半导体”的缩写。采用这种技术生产CPU时过程中采用“光刀”加工各种电路和元器件,并采用金属铝沉淀在硅材料上后用“光刀”刻成导线联接各元器件。现在光刻的精度一般用微米(um)表示,精度越高表示生产工艺越先进。因为精度越高则可以在同样体积上的硅材料上生产出更多的元件,所加工出的联接线也越细,这样生产出的CPU工作主频可以做得很高。正因为如此,在只能使用0.65um工艺时生产的第一代PentiumCPU的工作主频只有60/66MHz,在随后生产工艺逐渐发展到0.35um、0.25um时、所以也相应生产出了工作主额高达266MHz的PentiumMMX和主频高达500MHz的PentiumIICPU。由于目前科学技术的限制,现在的CPU生产工艺只能达到0.25um,因此Intel、AMD、Cyrix以及其它公司正在向0.18um和铜导线(用金属铜沉淀在硅材料上代替原来的铝)技术努力,估计只要生产工艺达到0.18um后生产出主频为l000MHz的CPU就会是很平常的事了。对于以上这些常见CPU专业技术,我以作为业余爱好者可以“只知其然而不必知其所以然”,因此只是一般性的介绍,至于对CPU技术比较感兴趣的朋友可以另外参考有关专业性资料。