首页 > 学院 > 常见问题 > 正文

科普一下CPU技术指令

2019-12-24 02:58:40
字体:
来源:转载
供稿:网友
因为最近家里的电脑要升级,考虑到买cpu的问题,今天就把cpu的一些基础知识拿出来科普下,希望各位不要见笑,给新手朋友学习一下!相互学习,相互进步,卡饭有你更精彩!
CPU频率 
l 主频 
主频也叫时钟频率,单位是MHz,表示CPU的运算速度。CPU主频=倍频*外频。很多人认为CPU主频就是CPU运行的速度,其实这认为是很片面的,毕竟双核2.0GHz比单核3.0GHz快很多,对吧?CPU主频表示CPU内数字脉冲信号振荡频率,与CPU实际的运算能力是没有直接关系的。 
当然,主频和实际的运算速度是有关的,但是目前还没有一个确定的公式来表示能够表示两者之间的数值关系,且CPU运算速度还要看其他指标。所以,主频仅仅是CPU运算速度的一个方面,很多JS喜欢这样子来蒙骗小白。 

l 外频 
外频是CPU的基准频率,单位也是MHz。外频是CPU与主板之间同步运行的速度,目前的绝大部分电脑系统中外频也是内存与主板之间的同步运行素的。所以我们一般认为外频是CPU与内存之间的同步运行速度,但不等同于总线。 

l 倍频系数 
倍频系数是指CPU主频和外频之间的相对比例关系。在相同的外频下,倍频越高,则主频也越高。 

l 前端总线频率 
前端总线(Front Side Bus,FSB)是CPU与外界沟通的唯一通道。处理器必须通过它才能获得数据,也只能通过它将运算结果传送出其他对应设备。前端总线的传输速度越快,CPU的数据传输也就越迅速。前端总线的速度主要使用前端总线的频率来衡量的。前端总线有两个概念,一是总线的物理工作频率,,二是有效工作频率,它直接决定了前端总线的数据传输速率。由于英特尔和AMD采用了不同的技术,所以他们之间FSB频率的关系式也就不一样。 
外频与前端总线的区别是,前端总线的速度指的是数据传输的速率,外频是CPU与主板同步运行的速率。也就是说,100MHz外频特指数字脉冲信号在每秒震荡1000万次,而100MHz前端总线指的是CPUCPU没买哦可接受的数据传输量。

高速缓存 
缓存(Cache)指的是可以进行高速数据交换的存储器,功能与内存相同,但是速度比内存快得多。它限于内存和CPU交换数据,速度很快。 
L1高速缓存,就是一级缓存。在CPU里内置高速缓存可以提高CPU的运行效率。内置的L1高速缓存的公粮和结构对CPU的性能影响较大,不过高速缓存的容量不可能做的很大。 
L2高速缓存指的是CPU二级缓存,分外部和内部两种芯片。内部二级缓存运行速度与主频相同,外部二级缓存速度只有主频的一半。目前的二级缓存都是内置的。 
由于CPU性能发展很快,CPU还发展出了三级缓存,作用于二级缓存差不多。Intel在SNB架构处理器中内置的三级缓存甚至可以代替原来的二级缓存。 
指令集 
现在,就到了本文的重点部分,CPU指令集。CPU依靠指令计算和控制系统,指令集的先进与丰富程度是衡量CPU性能的重要指标,指令集是提高CPU效率的最有效方法之一。从现阶段主流体系来看,指令集分为复杂指令集和精简指令集两部分。我们通常所说的CPU指令集是CPU的扩展指令集。 
下面我们来熟悉一下重要的CPU扩展指令集。 

1. MMX指令集 
MMX指令集最初包含在Intel的处理器 Pentium MMX上,是一种“单指令流,多数据流”的处理方式。它允许CPU同时对多个数据进行并行处理。它有效提高了多媒体方面的处理速度,但CPU所负责的运算主要就是浮点运算,而MMX指令集对CPU浮点运算能力没有太大帮助,因此MMX在3D处理方面基本没有意义。 

2.3D Now!指令集 
3D Now!指令集是一种3D加速指令集,由AMD公司开发。它和MMX指令集一样是一种“单指令流,多数据流”的处理方式,但它加速的是CPU的浮点运算。继承了3D Now!指令集的K6-2CPU,性能甚至超过了Pentium 2,但是必须有足够好的优化才能发挥这个指令集的强大威力。 

3.SSE指令集 
SSE指令集(Streaming SIMD Extension)也叫KNI指令集,是Intel公司嵌套在Pentium 3中的第二套多媒体指令集。和MMX指令集不同的是,SSE主要加速CPU的浮点运算能力。它总共包括70多条指令:50条SIMD(单指令多数据)浮点指令,主要用于3D处理。12条新MMX指令,加速整数运算速度。8条系统内存数据流传输优化指令。从实际效果来看,SSE比3D Now!指令集更胜一筹。 

4.SSE2指令集 
SSE2指令集包含了两个组成部分,SSE部分和MMX部分。SSE部分主要用于处理浮点数据,MMX部分主要用于处理整数运算。相对于MMX指令集,SSE2指令集的寄存器多了1倍,这使得SSE2指令集性能可达MMX指令集的两倍。 

l SSE3指令集 
SSE3指令集在最新的Prescott核心的Pentium 4处理器中嵌套,SSE3指令集分为五个应用层,共包括13条指令集包。 
第一层为数据传输命令,只有1条指令(FISTTP指令),它有利于X87的浮点转换成整数,大大提高优化的效率。 
第二层数据处理命令,共5条指令,分别是ADDSUBPS指令、ADDSUBPD指令、MOVSHDUP指令MOVSLDUP指令和MOVDDUP指令。它增强了复数的运算,简化复杂数据的处理过程,适应未来数据处理流量将会越来越大的情况。 
第三层特殊处理命令,只有一条指令。用于视频解码,用来提高处理器处理媒体数据结果的精确性。 
第四层优化命令,共四条指令,分别是HADDPS指令、HSBPS指令、HADDPD指令和HSUBPD指令,针对单指令多数据流进行优化,偏重处理3D图形。 
第五层超线程性能增强,有2条针对线程处理的指令:MONITOR指令和MWAIT指令。 
与SSE2指令集相比,SSE3指令集对CPU性能有明显的提升,尤其是在专门针对SSE3优化的软件和图像插件时比较明显。 

l SSE4.1指令集 
SSE4.1指令集由一套全新指令构成,可以提升一系列应用程序的性能和能效。SSE4.1指令集可以支持开发人员轻松改进产品,同时保持必要的应用级兼容性,以适应CPU不断还贷的需求。 
SSE4.1指令集包含54条指令,主要分为两类:矢量化编译器和媒体加速器,以及高效加速字符串和文本处理。其中,矢量化编译器和媒体加速器可提供高性能的编译器函数库,如封包(同时使用多个操作数)整数运算和浮点运算,可生成性能优化型代码。此外,它还包括高度优化的媒体相关运算,如绝对差值求和、浮点点积和内存负载等。矢量化编译器和媒体加速器可改进音频、视频和图像编辑应用、视频编码器、3D应用和游戏的性能。 
高速加速字符串和文本处理包含多个压缩字符串比较指令,允许同时运行多项比较和搜索操作。 

7.SSE4.2指令集 
SSE4.2指令集新加入了STINI(字符串文本新指令)和ATA(面向应用的加速器)两大优化指令。 
SSE4.2新加入的几条新指令集有两类,第一类是字符串与文本新指令STTNI,STTNI包括4条具体指令。SYNNI可以对两个16位的数据进行匹配操作,以加速在XML分析方面的性能。根据Intel公司的说法,新指令可以在XML分析方面取得3.8倍的性能提升。第二类指令是面向应用的加速指令ATA。ATA包括冗余校验的CRC32指令、计算源操作中非0位个数的POPCNT指令,以及对于打包的64位算术运算的SIMD指令。 

8.SSE5指令集 
SSE5指令集是AMD公司推出的全新指令集,它的功能是增强高性能计算应用,并充分发挥多核心、多媒体的并行优势。SSE5一共170条指令,其中基础指令64条。SSE5指令集增加了几条新指令:(1)三操作数指令(3-Operand Instructions):X86指令以往只能处理双操作数,而SSE5会提高到三操作数,达到RISC架构的水平,从而把多个简单的指令集整合到更高级的单独指令中,提高执行效率。(2)熔合乘法累积(Fused Multiply Accumulate,FMACxx):该技术可以把乘法和其他算法结合起来,保证只用一条指令就可以完成迭代运算,从而简化代码、提高效率,适用于真实图形着色、快速照相渲染、空间化音频、复向量(矢量)数学等场合。(3)除此之外,SSE5还新增了整数乘法累积指令(IMAC,IMADC)、置换与条件移动指令、向量比较与测试指令、精度控制舍入与变换指令,等等。 
9.AVX指令集 
AVX指令集(Advanced Vector Extensions,高级矢量扩,展)是Intel在SNB架构中新推出的全新一代SIMD指令集,直接跳过SSE5(由AMD所定义),AVX指令集借鉴了一些AMD SSE5指令集的设计思路,进行扩展和加强,形成一套新一代的完整SIMD指令集规范。 
AVX指令集将原来的128位XMM寄存器扩充为256位的YMM寄存器,从而支持256位的vector计算。改进和加强了原有的在3个operands指令的编码和语法,使之更灵活。 
增加一个全新的VEX prefix,实现对原有的prefix集成。 
AVX指令集通过VEX prefix可实现4个operands。AVX指令集不支持MMX寄存器。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表