您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 轻松读懂移动处理器 CPU微架构全解析
轻松读懂移动处理器CPU微架构全解析2013年01月26日07:50泡泡网【转载】硬派网作者:陈寅初编辑:孙敏杰什么是应用处理器?泡泡网CPU频道1月26日原文标题为《轻松读懂“应用处理器”微架构2013版》,对不起,你被标题欺骗了,实际上对许多读者来说要读懂本文并不是那么轻松:p随着半导体工艺的日趋先进,智能手机(Smartphone或者Superphone)、平板电脑(Tablet或者Pad)已经成为许多网友最常使用、最多关注、更新最快的电子消费产品,高度便携性是这类产品的最关键成功原因。所谓便携性自然是指产品必须足够轻便而且需要有足够的续航能力,因此这就要求产品的原件必须足够省电,只有这样才能减少散热和电池体积这两个最占体积和重量的问题。要达到这个目标,肯定要做功能和性能上的妥协,至少相对个头更大的笔记本电脑、台式机而言,像降低吞吐率或者增加时延,从实测性能而言,目前智能手机或者平板电脑的CPU、图形处理器性能基本上相当于6到10年前台式电脑的水准。举个简单的例子,在俄罗斯网站ixbt的讨论区上,有这样的一条帖子,一位名为ssvb的网友采用origenboard.org的一片SamsungExynos4210开发板(配有Exynos4210处理器具备两个ARMCortex-A9处理器内核)跑出来的HighPerformanceLinpack(HPL)性能是1.307GFLOPS,同贴中还有IntelAtomN450(Pineview架构,45nm,单核)1.66GHz的测试结果——0.944GFLOPS以及Cortex-A151.7GHz双核HPL为4.3GFLOPS。NVIDIA官网上的一份SC011文件也表明Tegra2(ARMCortex-A9双核1GHz,理论双精度浮点性能2GFLOPS)的HPL性能为1.15GFLOPS(57%效率,200MFLOPS/瓦)。这都是一个什么概念?我曾经在06年的时候用PentiumD8202.8GHz跑出来的HPL性能为10.12GFLOPS,Athlon64X22.6GHz为9.158GFLOPS。那么现在台式机的HPL性能状况如何?在去年我用Corei72600K3.4GHz配合未支持AVX指令的GotoBLAS(数学库)上得到的HPL性能为51.18GFLOPS左右,后来又用支持AVX的OpenBLAS(原GotoBLAS开发者停止更新后的其中一个后续开源社区版)得出的HPL性能为99.38GFLOPS,到2013年支持AVX2指令集的Haswell架构出来后,这个测试结果应该还能接近再翻番,达到200GFLOPS级别。也许你会说手机、平板要双精度干啥呢?请不要忘记在30年前的x86处理器根本没有集成任何硬件浮点单元,现在的情况又如何?曾经做出号称最强x87协处理器的Cyrix后来一头扎进整数为王的产品策略后现在影都没了。“干啥”这个问题往往是硬件具备并达到一定性能条件后就会有答案的,台式机上的性能测试软件和方案会随着手机、平板性能日益强大而变得在这类设备上运行也理所应当,除了上面说的HPL外,各类PC上流行的测试工具例如SPECCPU20xx、3DMark等也会是如此。传统的CPU性能测试的确不能完全适用于手机、平板的SoC芯片(人们把可以在移动操作系统上跑应用软件的SOC称作应用处理器,简称AP),但是请注意我说这句话是因为SoC并不仅仅有CPU,还有GPU、音视频编解码器、存储控制器、非易失性存储单元、数模/模数转换器以及各种输入输出周边等,这使得我们要单纯评价一款SoC是否最佳的时候可能会感到颇为伤神。话虽如此,不过总的来说,SoC中和性能最密切相关的依然是CPU、GPU,因为智能设备里几乎所有程序的运行都必须依仗两者来执行,与用户的使用感受有直接关系(请注意,我们这里说的只是指SoC芯片中,而非手机或者平板电脑整体)。因此,纵然手机、平板处理器型号各异并且内中千头万绪,我们还是应该从大家最关心的CPU、GPU着手来了解。现在情况简单多了,按照ISA(指令集架构)划分,因为目前的手机、平板CPU无非是ARM、Intel/AMD两大阵营,潜在的还有MIPS,不过目前MIPS似乎在这个领域还成不了气候,更像是一个备胎。如果你对计算机科学还不是很了解的话,对ISA这个词可能也不会很了解,虽然它经常出现在一些时髦的技术文章中。电脑显然并不能直接明白C、Java、Basic这样的高级语言(虽然有人尝试过开发高级语言处理器,但是无不失败告终),搭建在高级语言和CPU本机代码之间的就是ISA。ISA的全称是instructionsetarchitecture,中文就是指令集架构,有时候直接称呼为架构(architecture),是指程序员实际“可见”的指令集,包含了程序员编写一个能正确运行的二进制机器语言程序的所有信息,涉及到指令、I/O设备等。例如Intel的IA-32、Intel64(曾经名为IA32e、EM64T等);ARM的ARMv7、ARMv8等等。这里的IA32、Intel64或者ARMv7、ARMv8其实是指各自指令集架构的不同版本,有时候我们嫌啰嗦,所以把前两者统称x86,后两者统称ARM。将ISA变成真正可以使用的实物需要经过“实现”,它包括两个层面:组成和硬件。组成是从计算机设计的高阶层面而言,例如:存储系统、存储互连接、CPU(包括算术、逻辑分支、数据传输的实现)设计,有时候“组成”又被称作微架构(microarchitecture),英特尔Nehalem、NVIDIAKepler、ARMCotrex-A57都可以属于各自某系列芯片的微架构,其中Kepler的ISA是CUDAPTX和Cortex-A57的ISA属于ARMv8。硬件通常是指电脑的规格,包括具体的逻辑设计、封装技术,同一系列的产品可能有相同的ISA、近乎一样的微架构,但是存在某些具体规格的差别,例如NVIDIATegra3,有AP30、AP33、T30、T33、T30S、T33S、T30SL等具体的型号,它们都属于Tegra3微架构,但是频率规格、内存规格等地方都有差别。而GPU方面则复杂一些,有PowerVR、高通、NVIDIA、ARM、Intel等等,其中使用最广泛的就是PowerVR,这得益于PowerVR10年前就决定全面切换到移动设备上,铺桥搭路的功夫很扎实,而NVIDIA和Intel的商业模型都是只用于自家产品(当然NVIDIA也曾经在游戏机领域做过RSX这样的IPcore授权)的,所以目前未能在其他SoC上看到。下面的表格给出了这两年来比较热门的手机或者平板电脑ARM处理器,它们基本上都被应用于各公司的旗舰级产品中。2011/2013SoC对比表SoC制程CPUGPU内存总线发布时间AppleA545nm/32nm2xARMCortexA9w/MPE@1GHzPowerVRSGX543MP22x32-bitLPDDR22011-10-4AppleA5X45nm2xARMCortexA9w/MPE@1GHzPowerVRSGX543MP44x32-bitLPDDR22012-3-16AppleA632nm2xAppleSwift@1.3GHzPowerVRSGX543MP32x32-bitLPDDR22012-9-12AppleA6X32nm2xAppleSwift@1.4GHzPowerVRSGX554MP44x32-bitLPDDR22012-10-23NVIDIATegra240nm2xARMCortexA9ULV1x32-bit2010-1-8@1GHzGeForceT2LPDDR2NVIDIATegra3/Kal-El40nm4xARMCortexA9w/MPE@~1.3GHzULVGeForceT31x32-bitLPDDR22011-11-8NVIDIATegra4/Wayne28nm4xARMCortexA15MPCorew/MPEULVGeForceT42x32-bitLPDDR22012-1SamsungExynos421045nm2xARMCortexA9w/MPE@1.2GHzARMMali-400MP42x32-bitLPDDR22011-2-10SamsungExynos421232nm2xARMCortexA9w/MPE@1.5GHzARMMali-400MP42x32-bitLPDDR22011-10-1SamsungExynos525032nm2xARMCortexA15MPcorew/MPE@1.7GHzARMMali-6042x32-bitLPDDR22011-11-30QualcommMSM8060/8260/866045nm2xScorpion@1.5GHzAdreno2201x32-bitLPDDR2*2011-2-10QualcommMSM896028nm2xKrait@1.5GHzAdreno2252x32-bitLPDDR22011-2-14QualcommMSM8960T28nm2xKrait@1.7GHzAdreno3202x32-bitLPDDR22012-2-27QualcommAPQ806428nm4xKrait@1.7GHzAdreno3202x32-bitLPDDR22011-2-14它们都属于ARMv7架构,架构寄存器数量为16个,其中Tegra2/3、Exynos、A5/A5X的CPU核心是CortexA9或者CoretxA15,都是来自于ARM的IPcore授权,而A6/A6X的Swift和高通的Scorpion/Krait则分别是苹果和高通获得ARM架构授权后而各自自行开发的。众所周知,IPcore的全称是IntellectualProertycore,意即知识产权内核,是目前各种嵌入式应用、个人智能消费类设备中最为常见技术类型,数十亿计的产品都采用了来自ARM、MIPS的IPcore。IPcore被设计成可以和芯片中其他逻辑单元(例如视频编解码器、I/O界面、内存界面)协同运作形成一枚可以支持特定应用的处理器。IPcore分为两类:硬核(hardcore......不要会错意了)和软核(softcore)。硬核是针对特定半导体厂商而优化的,对外人来说是一个提供了外部界面、不修改的“黑盒子”,获得授权的厂商通常只能对核外的逻辑参数进行修改,例如L2cache大小,但是IPcore本身不可修改。而软核的设计代码则是可以针对不同半导体厂商做编译和修改,当然这要求设计厂商具备强大的研发实力和经验,因为现在的IPcore相当复杂。简而言之而言,硬核的性能更高、占用管芯面积更小,而软核则可以让不同厂商作进一步的修改。长话短说“微架构”——流水线ISA的“实现”需要借助各种微架构,现在的处理器微架构基本上涉及以下部分:流水线化多核、多线程SIMD向量存储系统分层结构流水线早期一些采用非常简单的指令集(注意,我们说的不是RISC)的电脑是采用单周期设计的,取指、解码、执行、写回都是放在同一个拍(周期)内顺序完成,此时的CPI(每指令周期数)基本上是1,但是这样设计的效率很低:当取指的时候,其余工位都只能瞎瞪眼等开饭,这样的设计也被称作非流水线化执行。上:非流水线化(顺序化)执行下:流水线化执行流水线化则是实现各个工位不间断执行各自的任务,例如同样的四工位设计,指令拾取无需等待下一工位完成就进行下一条指令的拾取,其余工位亦然。世界上第一台采用流水线化指令执行的电脑为1961年的IBMStretch或者说IBM7030,具备四级流水线工位,它同时也是IBM第一台晶体管化电脑。这样原本四工位非流水线的一个周期是800个皮秒的话,在流水线设计的处理器上,虽然同样的指令完成时间依然是800皮秒,但是第二条指令则可能只需要在第一条指令完成时间加200皮秒即第1000皮秒就能完成,而非流水线设计则需要第1600皮秒才能完成。常见的五周期(FDEMW)流水线形式,对同步处理器来说Latch之间为一拍(周期)对Pentium
本文标题:轻松读懂移动处理器 CPU微架构全解析
链接地址:https://www.777doc.com/doc-4305629 .html