版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
影响CPU性能的若干主要因素字长(位数)指通用寄存器和定点运算器的宽度(即二进制整数运算的位数)(64位)指令系统指令的类型、数目和功能等都会影响程序的执行速度(Intel64)逻辑结构CPU包含的定点运算器和浮点运算器的数目、采用的流水线结构和级数、指令分支预测的机制、执行部件的数目等内核数目(4个)高速缓存(cache)的容量与结构(L2:4MB)主频(CPU内部时钟频率)指CPU芯片中电子线路(门、触发器)的工作频率,它决定着CPU芯片内部数据传输与操作速度的快慢(2.33GHz)CPU总线速率CPU总线(前端总线)传输速率:决定着CPU与内存之间传输数据的速度快慢
FSB速率=外部时钟频率x传输次数/周期x数据线宽度=333MHzx4次x8B=1333x8=10.67GB/s体系结构逻辑实现物理实现提高CPU性能的措施
——提高IC速度
——改进逻辑结构超标量结构流水线处理Cache存储器超线程技术多核处理器1.超标量结构Pentium4处理器的逻辑结构指令译码器整数寄存器组L2cache(48GB/s)
L1数据cache(8KB)浮点寄存器组慢ALU复杂指令2xALU简单指令2xALU简单指令2xAGU存地址浮点存浮点取2xAGU取地址MMXSSE/SSE2浮点加浮点乘浮点除跟踪cache分支预测器执行跟踪cache(12000微操作)微码ROM微操作队列微操作队列指令预取部件动态分支预测器前端总线256位,时钟频率64位,时钟频率总线接口部件预取控制逻辑寄存器组运算器(ALU)指令部件(指令寄存器、译码器等)总线接口IntelNetBurst®MicroarchitectureCoreMicroarchitecture128EntryITLB32KBI-cacheInstructionFetchUnitX86InstructionPre-decodeFetchbufferComplexdecoderComplexdecoderComplexdecoderComplexdecoderComplexdecoder7-Entrymopbuffer1mops4mops1mops1mopsRegisterAliasTableandAllocator96-EntryReorderBuffer(ROB)32-EntryReservationStationALU.4mops4mops4mops128BitSSE128BitFADDALUShift128BitSSE128BitFMULALUShift128BitSSEStoreDataStoreAddrLoadAddrMemoryreorderbuffer(MOB)256EntryDTLB32KBdualportedD-cacheRetirementRegisterFile4mops4MBsharedcacheSharedBusInterfaceUnit256128IntelCorePentium4的寄存器通用寄存器数据段存器DS附加段存器ES堆栈段存器SS代码段存器CS专用寄存器存放指令执行后的状态,如:有无进位是否溢出是否为0是否为正···每个寄存器用途可由程序/指令指定用于存放8位、16位或32位的操作数可直接送至ALU参与算术或逻辑运算结果仍写回寄存器标志寄存器EFLAFSPentium4的浮点寄存器
和MMX及XMM寄存器8个80位的浮点数寄存器,用于存放:32位、64位或80位的浮点数80位表示的紧凑BCD整数64位的二进制整数8个64位的MMX寄存器,用于存放MMX指令所处理的64位长度的SIMD操作数8个128位的XMM寄存器,用于存放SSE指令处理的128位的SIMD操作数Pentium4的超标量执行部件采用超标量(superscalar)结构,一共包含9个ALU,均可同时工作:2个高速整数ALU(每个时钟周期进行2次操作),用于完成简单的整数运算(如加、减法)1个慢速整数ALU(需要多个时钟周期才能完成1次操作),用于完成整数乘、除法运算2个地址生成部件(AGU),用于计算操作数的有效地址,所生成的地址分别用于从内存取操作数或向内存保存操作结果1个ALU用于完成浮点操作数地址的计算1个ALU用于完成浮点加法、乘法和除法运算1个ALU用于执行流式的SIMD处理(SSE/SSE2/SSE3指令)1个ALU用于完成多媒体信号处理(MMX指令)整数寄存器组
L1数据cache(8KB)FP/MMX/XMM寄存器慢ALU复杂指令2xALU2xALU简单指令2xAGU存地址浮点存浮点取2xAGU取地址MMXSSESSE2SSE3浮点加、减、乘、除等运算简单指令对整数寄存器内容进行运算对浮点寄存器内容进行运算超标量结构的工作过程多重指令启动:在一个时钟周期内能够启动多条指令交给执行部件执行2.流水线处理TT0T1T2T3T4T5T6T7T8T9I6I5I4I3指令的流水线执行指令1(I1)指令2(I2)···指令3(I3)I2指令的顺序执行:I1指令的流水线执行:取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数取指译码运算计数超流水线技术与超标量流水线
Pentium4流水线较长,定点指令达20级,浮点指令达到29级,流水线中每步操作都非常简单,因此主频可以大幅提高,允许主频高达3GHz以上,称为超流水线(Hyper-pipeline)20级超流水线的示意图:取指阶段译码阶段执行阶段保存结果,修改IP整数寄存器组浮点数寄存器组Pentium4有多条超流水线,称为超标量流水线,同时处于执行状态的指令数目最多可达到126条非流水线/流水线与超标量流水线非流水线流水线超标量流水线如何保证流水线畅通?AddAddAddAddAddDivSubMulAddSubAddCPU1流水线会阻塞吗?后面的指令要使用前面的计算结果,而前面的指令还没有执行完毕“比较并转移”指令有2种可能,在没有判断完毕时,后面哪一条指令提前进入流水线呢?
····2如何确保指令流水线通畅?
硬件措施:分支预测
、乱序执行、动态执行、推测执行软件措施:编译器生成的目标程序有优化措施
运算结果LOADR1,ALOADR2,BDIVR1,R2STORER1,CLOADR2,DLOADR3,ELOADR1,ALOADR2,BDIVR1,R2LOADR2,DLOADR3,ESTORER1,C优化后编译器优化处理避免流水线阻塞假定a,b,c,d,e,f均为内存操作数,以下源程序可生成两种不同的代码 a=b+c; d=e–f;优化的代码可避免Load阻塞
优化前:
LOAD R2,b LOAD R3,c
ADD R2,R3
STORE R2,a LOAD R5,e
LOAD R6,f
SUB R5,R6 STORE R5,d优化后:
LOAD R2,b LOAD R3,c
LOAD R5,e ADD R2,R3 LOAD R6,f
STORE R2,a SUB R5,R6 STORE R5,d3.高速缓存(cache)技术存储器与CPU速度差距愈来愈大DRAM,硬盘与CPU之间的速度差距愈来愈大:问题:由于CPU工作速度很快,内存储器速度比较慢(差1~2个数量级),从内存取数或向内存存数时,CPU往往需要等待寄存器cache内存硬盘1ns1~2ns10ns10ms存储层次结构(MemoryHierarchy)解决方案::采用多种不同的存储器技术,构成多级存储器的层次结构容量小但速度快容量大而速度慢工作过程:
CPU运行时,需要的操作数大部分来自寄存器如需要从(向)存储器中取(存)操作数和指令时,先访问cache,如在,则取自cache如操作数/指令不在cache,则访问RAM,如在RAM中,则取自RAM如不在RAM,则访问硬盘,操作数从硬盘中读出→RAM→cache什么是cache(高速缓存)?cache是一种小容量高速缓冲存储器,它由SRAM组成cache直接制作在CPU芯片内,速度几乎与CPU一样快程序运行时,CPU使用的一部分数据/指令会预先拷贝在cache中,cache的内容是主存储器中部分内容的映象当CPU需要从内存读(写)数据或指令时,先检查cache中有没有,若有,就直接从cache中读取,而不用访问主存储器指令寄存器指令计数器译码器ALUMUX0123456789101112131415地址译码器+100101111010011010010110010101111111000001000111001001100001011010110101101001101110000100000011100000011000000000000000100000000cache通用寄存器存储器访问的局部性原理空间局部性:当前访问的某个数据(或指令),其邻近范围的数据(或指令)可能很快也会被访问时间局部性:当前访问的某个数据(或指令)可能很快又会再次被访问时间存储器地址局部性原理举例sum=0;for(i=0;i<n;i++) sum+=a[i];*v=sum;每条指令4个字节;每个数组元素4个字节指令和数组元素在内存中均连续存放sum,ap,i,t均为通用寄存器;A,V为内存地址I0: sum<--0I1: ap<--AA是数组的起始地址I2: i<--0I3: if(i>=n)gotodonei4: loop: t<--(ap)数组元素a[i]的值I5: sum<--sum+t
累计在sum中I6: ap<--ap+4
计算下1个数组元素的地址I7: i<--i+1
I8: if(i<n)gotoloopI9: done: V<--sum累计结果保存至地址v对应的汇编语言指令:I1I2I3I4I5I60x1000x1040x1080x10C0x1100x114a[0]a[1]a[2]a[3]a[4]a[5]0x4000x4040x4080x40C0x4100x414•
•
•0x7A4•
•
•主存的布局:I00x0FC指令数据AVcache的工作过程与平均访问时间如果被访问的信息不在cache中,称为失效(miss)如果被访问的信息在cache中,称为命中(hit)Cache收到地址码A读出A的内容送给执行部件A的内容在cache中吗?访问主存读出A及相邻地址内容将A的内容发送给执行部件在cache中腾出空位置供接收用cache接收A及相邻地址的内容
命中率H是CPU需要的指令或数据在cache中能直接找到的概率,通常在95%以上!如何提高cache的命中率?增大cache容量采用2级或3级等多级cache技术cache中采用快速的查找算法,判定是否命中没有命中时,采用有效的算法将读入的内容替换cache中暂时不使用的内容编译器优化目标程序程序员写出cache-friendly的程序Cache-friendly程序举例哪个程序运行速度快?voidcopyji(inta[2048][2048],intb[2048][2048]){inti,j;for(j=0;j<2048;j++)for(i=0;i<2048;i++)
b[i][j]=a[i][j];}voidcopyij(inta[2048][2048],intb[2048][2048]){inti,j;for(i=0;i<2048;i++)for(j=0;j<2048;j++)
b[i][j]=a[i][j];}(59,393,288时钟周期)(1,277,877,876时钟周期)快21.5倍!(2GHz
IntelPentium4)I1I2I3I4I5I6a[0,0]a[0,1]a[0,2]a[0,3]a[0,4]a[0,2047]•
•
••
•
•I0指令数据a[1,0]a[1,1]a[1,2]a[1,3]a[1,4]a[1,2047]•
•
•a[2,0]a[2,1]a[2,2]•
•
•Pentium4的cache存储器Pentium4中有3个cache存储器,分成两级:一级cache数据缓存(L1数据cache),8KB指令缓存,8KB二级缓存(L2cache),容量为256KB~2MB某些型号还有容量更大的L3cacheL2cache(48GB/s)
L1数据cache(8KB)指令cache及指令预取部件前端总线256位,时钟频率64位,时钟频率总线接口部件预取控制逻辑Pentium4处理器的芯片布局L1数据cacheL2cacheTracecache(L1指令cache)浮点运算器MMX超标量流水线技术前端总线及其接口定点运算器高级动态执行4.超线程技术(HT)超线程(Hyper-Threading,HT)技术背景:超标量流水线、分支预测等均属于“指令级并行”,它们可以提高指令流的执行效率但CPU中只有一个指令流(操作系统中称为“线程”),若该指令流中出现整数指令,则浮点执行单元就空闲,若其中出现浮点指令,则整数执行单元就空闲(利用率一般不超过25%)如果能为CPU准备2个不同的指令流,当一个指令流遇阻暂时不能执行时,CPU可以转向执行另一个指令流,从而提高CPU效率超线程(HT)技术:把CPU模拟成两个处理器芯片,让OS看起来就像有两个CPU一样,可同时执行2个指令流(“线程”
)P4处理器增加了一个逻辑CPU指针,而整数运算单元、浮点运算单元、L2Cache等均由2个线程共享Demo(1’13”~1’50”)超线程技术的不足分析:由于不是2个真正的CPU,它们需要共享ALU、cache等资源,当两个线程同时需要使用某个资源时,一个线程必须暂停运行,直到该资源空闲后才能继续执行。因此超线程的性能达不到2个物理CPU的性能超线程技术需要芯片组、OS和应用软件支持,才能发挥该项技术的优势,Windows2000就不支持双线程当运行单线程应用软件时,超线程技术甚至会降低系统性能5.双核与多核技术复习CPU的功能——执行指令规定的操作指令系统(ISA)是CPU功能的体现CPU的主要组成部分:寄存器:GPU、FPU、SEE,标识寄存器、段寄存器等ALU指令部件CacheFSB总线接口CPU的性能指标:位数、指令系统、运算速度提高CPU性能的主要措施1980’1990’2005201020151980’1990’2005201020154核80x86Pentium
80核
双核年代性能CPU的发展趋势提高主频增加逻辑复杂度增加内核数目SSE指令/SIMD超标量结构流水线技术Cache64位指令超级流水线提高主频提高FSB速率多级cache双核多核异构的多核处理器性能与其逻辑复杂性的平方根成正比,若逻辑复杂性提高1倍,至多能提高40%的性能最大瓶颈是散热问题:
3.2GHz的Pentium
4功耗超过100W,温度达70度!主频到4.0GHz,功耗会达到150W!采用2个处理器构成一个双核处理器,可以提高70%~80%的性能电路与封装技术的进步,能把多个处理器做在单个芯片上双核/四核处理器揭开外壳后的PentiumD处理器共享的L2cache2x奔腾双核E5000处理器
单个芯片封装两个功能完全相同的处理器(内核),由北桥芯片保证两个L2内容相同(PentiumD)进一步发展为2个内核共享同一个L2cache(Core2Duo)2个双核封装在一起成为4核处理器(Q8200)4个内核共享L3cache(Corei7)IntelCorei7Processor芯片组integratedmemorycontrollersupportingthreechanneltoDDR3memory.IntelQuickPath取代FSB,4条双向点对点连接通路IntelHyperThreadingTechnologyIntelquad-coretechnology(3GHz左右)Nehalem微体系结构
Intel®Core™i7-900Extreme技术特点:(7.3亿晶体管,45nm工艺,LGA1366)IntegratedmemorycontrollerPoint-to-pointlinkinterfacebasedonIntelQPI(upto6.4GT/s)8MBLevel3cachesupportsSSE2,SSE3andSSE4.Intel®64Technology(Intel®64)EnhancedIntelSpeedStep®TechnologyIntel®VirtualizationTechnology(Intel®VT)Intel®TurboBoostTechnologyIntel®Hyper-ThreadingTe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超重型汽车列车挂车工安全生产规范评优考核试卷含答案
- 液晶显示器件彩膜制造工操作管理考核试卷含答案
- 选矿脱水工创新意识评优考核试卷含答案
- 电梯机械装配工岗前工作能力考核试卷含答案
- 颜料化操作工风险评估强化考核试卷含答案
- 医用供气工操作安全水平考核试卷含答案
- 吸油烟机制作工操作强化考核试卷含答案
- 2024年河池学院辅导员考试笔试题库附答案
- 2024年白银市特岗教师笔试真题汇编附答案
- 2025宁夏回族自治区公务员考试《行测》题库及参考答案
- 2026年1月福建厦门市集美区后溪镇卫生院补充编外人员招聘16人笔试备考试题及答案解析
- 2026年乡村治理体系现代化试题含答案
- 2026年济南工程职业技术学院单招综合素质考试参考题库带答案解析
- 甘肃省酒泉市普通高中2025~2026学年度第一学期期末考试物理(含答案)
- 2026 年高职应用化工技术(化工设计)试题及答案
- 2026年山西供销物流产业集团面向社会招聘备考题库及一套完整答案详解
- 城管执法文书培训课件
- 2026元旦主题班会:马年猜猜乐新春祝福版 教学课件
- T∕ZZB 1815-2020 塑料 汽车配件用再生聚碳酸酯(PC)专用料
- 人工智能对中国新能源汽车出口技术复杂度的影响研究
- 小学食堂食品安全培训记录
评论
0/150
提交评论