高等计算机体系结构实验.docx
《高等计算机体系结构实验.docx》由会员分享,可在线阅读,更多相关《高等计算机体系结构实验.docx(9页珍藏版)》请在冰点文库上搜索。
高等计算机体系结构实验
1.典型微处理器的比较
可以从下面两组题目选择一个,阅读相关参考文献,形成3000字左右的小型论文。
1)Intel公司的Pentium4是一款面向桌面系统的微处理器,IBM公司的Power6和SUN公司的T1则是面向高端服务器系统的处理器。
其中P4代表了Intel公司超标量技术的发展巅峰,T1是多核处理器的典范,Power6则综合了超标量技术和多核技术。
请比较这三款处理器的技术差异。
2)Power是IBM公司用于服务器的微处理器系列,目前已经发展到Power7。
请阅读关于Power5,Power6,Power7的技术论文,比较三者之间的技术差异,指出Power系列处理器的发展脉络。
参考文献:
[1]TheMicroarchitectureofthePentium4Processor,IntelTechnologyJournalQ1,2001
[2]NIAGARA:
A32-WAYMULTITHREADEDSPARCPROCESSOR,IEEEMICRO,MARCH–APRIL.2005
[3]IBMPOWER5CHIP:
ADUAL-COREMULTITHREADEDPROCESSORIEEE,Micro,MARCH–APRIL2004
[4]IBMPOWER6Microarchitecture,IBMJ.RES.&DEV.VOL.51NO.6NOVEMBER2007
[5]IBMPOWER7multicoreserverprocessor,IBMJ.RES.&DEV.VOL.55NO.3PAPER1MAY/JUNE2011
Power处理器的发展
上世纪七十年代IBM发明精简指令集(RISC)技术,以指令硬件译码、长度一致的指令集(例如32位)和相同的指令执行时间(一个时钟周期)为代表的全新设计思想和处理器架构开创了微处理器结构的一片全新天地。
进入八十年代各工作站厂商的RISC处理器,如SPARC、MIPS等,与专业处理器厂商Intel、Motorola和Zilog的复杂指令集(CISC)处理器和RISC处理器(如Intel的i860,Motorola的M88000)等等争奇斗艳,一派繁荣景象。
而IBM则又在充分利用RISC技术特点的基础上推出超标量技术,在一个时钟周期内执行多条指令,再一次将处理器设计革命推向一个崭新的阶段,IBM的POWER(PerformanceOptimizationWithEnhancedRISC)处理器也登上了历史舞台。
1990年IBM第一款使用POWER处理器的RS/6000产品推向市场,由于使用了超标量技术,其处理器浮点计算性能比当时任何一台其他工作站都有成倍提高,而且不需要特殊的并行手段,不需要改变应用软件,充分展示了超标量技术的威力。
Power6继承了前几代产品的优点,并进行了重大的改进,拥有当时业内的多个第一
首先是高频率。
Power6芯片面积为341平方毫米,集成了7.9亿颗晶体管,采用65纳米绝缘硅SOI工艺、10层金属片而制造,与90纳米工艺相比,在一定的功率下,性能提高了30%。
2007年6月8日IBM推出的Power6主频为3.5GHz、4.2GHz和4.7GHz,2008年5月,IBM推出了主频5.0GHz的Power6芯片。
相对上一代的Power5,Power6主频提升了一倍,但是运行和散热所消耗的电能基本相同,对于用户这意味着处理器性能提高一倍或者能耗减半。
另一个重要特性是Power6是第一款在硬件上进行十进制浮点运算的处理器,Power6能够使用十进制数字0-9而非传统计算机通常使用的二进制数字0、1进行数学运算,处理器内置十进制浮点运算能力对于企业运算复杂的税收、金融和ERP程序具有重大意义——之前十进制运算都是由软件进行的。
Power6采用双核心设计,每个核心支持两个同步线程,每颗Power6芯片支持4个线程。
具有128KBL1缓存(64KB数据/64KB指令)。
每个内核拥有一个4MB的“半共享”L2缓存,即该缓存虽然被分配给某个内核,但其余内核也可以快速地访问它。
此外Power6的两个内核拥有32MB片外大容量L3缓存,中间通过80GB/s的总线共享。
在扩展性上,每颗Power6可以通过两条50GB/s的链接连接31颗处理器,组建64核心的高端系统。
相比Power6,Power7工艺有了进步,用45nmSOI铜互联工艺,核心面积为567mm,晶体管数量为12亿个,核心面积有所扩大,晶体管数量攀升,这也意味着片上可以集成更多的缓存。
Power7主频在3.0GHz和4.14GHz之间,可以看到Power7的主频相比Power6没有提升,反而有所降低,但是Power7核心设计借鉴了Cell处理器的优点,具有强大的浮点运算能力;并且Power7具有4个、6个或8个核心,每个核心支持4个线程,总共具备32线程的并行计算能力,相比Power6的双核四线程,计算能力明显提升。
在缓存上,Power7的每个核心具有32KBL1指令缓存和32KBL1数据缓存,每个核心具有256KBL2缓存。
此外,L3缓存从片外改为片内,Power7集成了32MB的eDRAML3缓存,eDRAM技术使一个晶体管就可以寄存1bit的数据,而一般的SRAM技术则需要6个晶体管才寄存1bit的数据。
这种新引入的eDRAM动态快速缓存技术大大减少了晶体管数量和芯片面积,并让速度得到成倍的提升。
在I/O上,Power7处理器集成了两个双通道DDR3内存控制器,提供100GB/s的内存带宽,这也远远领先Power6。
在特性上,Power7提供了一些新的性能和功耗控制特性,让Power7更加智能,具有更高的能效。
如Turbocore技术,用户可以关闭8核Power7处理器中的4个核心,其余4个核心频率可以自动提升,并可以利用所有的L3缓存和内存带宽,在某些应用中这样可以增强处理能力,并降低一些应用软件基于核心数量的许可证费用。
针对需要大量内存的工作负载,Power7提供了动态内存扩展(ActiveMemoryExpansion)功能,采用内存压缩技术,令服务器可见内存为物理内存的两倍。
此外,Power7还引入了IntelligentThreads技术,根据负载类型自动更改线程的数量,这样可以合理分配处理器资源,达到性能与能耗的平衡。
此外,IntelligentEnergyOptimization(智能能耗优化)技术可实现同样能耗下提高4倍性能,同时确保更低的能耗。
综观Power处理器的发展历程可以看到:
Power处理器是一个成熟的高性能处理器体系结构,技术上与Pentium处理器旗鼓相当,有着独特的优势。
尤其是进年来的新进展(铜连接,绝缘体硅,AltiVec)带突破性质,代表了下一代微处理器的发展方向,应当引起我们的注意。
事实上,许多国际大公司已经意识到Power处理器的新技术发展更具有很大的市场价值意义,纷纷采取了有利于身身利益的对策。
从以下事件可以使我们对这一点看的更清楚。
(1)1997年初微软公司宣布,该公司的手持式PCWindowsCE操作系统将能在Motorola公司的Power处理器芯片上运行。
(2)1999年初Motorola公司起诉Intel公司,指控这家世界最大的芯片制造商挖走其Power处理器芯片设计中心工程师的行为盗窃了该公司的商业机密。
Motorola称,Intel至少雇用了15名该公司在Austin的Somerset设计中心从事设计Power处理器芯片的工程师。
(3)1999年9月Cisco公司推出的多协议路由器1750采用了MotorolaMPC860TPowerQUICC嵌入式微处理器,运行频率为48MHz。
(4)国内方面,几年前我国在Power处理器应用和研究上取得一定的进展。
例如:
1996年10月29日,银河-S4/100超级服务器计算机系统研制成功,在长沙通过国防科工委主持的技术鉴定。
该系统采用开放式的共享主存多处理机SMP体系结构,其核心是4个高性能的Power2PC604微处理器。
(5)曙光信息产业有限公司和国家智能计算机研究开发中心开发出基于Power处理器芯片的曙光天演系列工作站、服务器、Internet网络服务器和HA高可靠容错系列机,这些产品在1996年4月召开的“国家863十年成果汇报展”上,受到广泛关注。
但是近两年以来,国内在应用Power处理器方面因操作系统不兼容和市场规模较小的原因,没有大的进展,实际上放弃了对Power处理器微处理器新产品的应用。
结合各方面的信息,笔者作出这样的预测:
从全球处理器市场角度出发,Power处理器处理器在高端服务器、图形工作站、台式机、客户机、便携机、工控机方面拥有成熟的产品、大量的用户和一定的市场占有率,Power2PC体系结构处理器的后继科技投入起点高,水平高,资源大,具有突破性质,今后二三年内Power处理器的应用面和市场场占有率会有一个增加的变化。
2.模拟分支预测器
使用ComputerArchitecture:
AQuantitativeApproach(FourthEdition)光盘中所附带的history.txt文件,模拟分支预测器的行为。
该文件格式和题目要求如第2章CaseStudy2所示。
3.Cache模拟器
程序运行时,都会对内存进行相关操作,所访问的内存地址可以被记录下来,形成memorytrace文件。
在本实验中,你将使用benchmark程序产生的memorytrace文件来测试Cache命中率,文件可以在http:
//cseweb.ucsd.edu/classes/fa07/cse240a/proj1-traces.tar.gz上获得。
每次存储器访问都包含了三个信息:
●访问类型,’l’表示Load操作,’s’表示Store操作;
●地址。
采用32位无符号的十六进制表示;
●存储器访问指令之间的间隔指令数。
例如第5条指令和第10条指令为存储器访问指令,且中间没有其他存储器访问指令,则间隔指令数为4。
1)请统计Load类型指令和Store类型指令在这5个trace文件中的指令比例?
Gcc文件中,Load类型指令占总指令数20.6599%,Store类型指令占12.8224%,共占33.4823%
Gzip文件中,Load类型指令占总指令数29.5786%,Store类型指令占14.8246%,共占44.4032%
Mcf文件中,Load类型指令占总指令数0.589124%,Store类型指令占71.1505%,共占71.7396%
Swim文件中,Load类型指令占总指令数18.7611%,Store类型指令占7.01623%,共占25.7773%
Twolf文件中,Load类型指令占总指令数24.2175%,Store类型指令占9.0571%,共占33.2746%
2)设Cache总容量为32KB,对以下所有参数进行组合(共有72种组合),测量相应5个文件的Cache命中率。
通过对命中率的分析,可以发现什么规律?
行大小:
32字节、64字节、128字节
相连度:
8路相联、4路相联、2路相联、1路相联
替换策略:
FIFO,随机替换,LRU
写策略:
写直达、写回
a)其它条件相同的情况下,写策略并不影响命中率,写策略只会影响主存和cache之间的数据传输量。
也就是说在其它条件相同的情况下使用何种写策略命中率都一样。
b)当取用的相联度是直接相联时,行大小固定的情况下,使用何种替换策略并不影响命中
c)在大部分情况下,其它条件相同时,采用LRU替换策略的命中率会高于或等于采用FIFO或者Random替换策略。
只有在gzip文件下有个别情况Random替换策略优于其它替换策略,或者在msf文件下其它条件相同,但随着组相联增加到4路或8路的情况下,会出现Random替换策略优于其它替换策略的情况
d)其它条件相同的情况下,随着行大小的增加,命中率也随着提高。
e)其它条件相同的情况下,随着相联度的增加,命中率也随着提高
3)给出5个文件的最佳Cache命中率的参数组合。
针对不同的trace文件,最佳配置相同吗?
行大小:
128字节,相连度:
8路相联,替换策略:
FIFO。
不同的trace文件,最佳配置相同。
4)测量各种组合下Cache和主存之间的数据传输量。
5)给出5个文件的最小数据传输量的参数组合。
这个组合和3)得到的组合一致吗?
针对不同的trace文件,最佳配置相同吗?
写直达时:
行大小:
32字节,相连度:
8路相联,替换策略:
FIFO。
写回时:
行大小:
32字节,相连度:
8路相联,替换策略:
FIFO。
6)Cache缺失有三种原因:
1)强制缺失;2)容量缺失;3)冲突缺失。
如何分析这三种缺失?
请说明你的分析方法。
强制缺失:
对块的第一次访问一定不在Cache中,所以该块必须被调入Cache中。
即使有无限大的,强制缺失也会发生。
容量缺失:
如果Cache容纳不了一个程序执行所需要的所有块,将会发生容量缺失,某些块被放弃,随后再被调入。
冲突缺失:
如果块未采用全相联放置策略,冲突缺失将会发生,如果有太多的冲突块映射到同一组,产生冲突,则某一个可能会被放弃,随后再调入。
读入一行指令时,如果在Cache中命中则无缺失;未命中则检查是否该行指令是第一次缺失,是则发生了强制缺失;不是则看是否该行指令读入时Cache已满,若满则是容量缺失,不满就是冲突缺失。
7)请给出5个trace文件在最优Cache命中率的情况下,这三种缺失所占的比例,并和教材图C.8给出的比例进行比较。
gcc.trace总缺失率:
0.571%,其中强制缺失率:
9.176%,容量缺失率:
82.647%,冲突缺失率:
8.177%。
swim.trace总缺失率:
0.692%,其中强制缺失率:
5.826%,容量缺失率:
84.765%,冲突缺失率:
9.409%。
mcf.trace总缺失率:
6.204%,其中强制缺失率:
3.194%,容量缺失率:
96.750%,冲突缺失率:
0.055%。
twolf.trace总缺失率:
0.150%,其中强制缺失率:
10.697%,容量缺失率:
76.082%,冲突缺失率:
13.221%。
gzip.trace总缺失率:
1.277%,其中强制缺失率:
5.416%,容量缺失率:
83.957%,冲突缺失率:
10.627%。