hello,小铁来为大家解答以上问题,推土机怎么画,推土机很多人还不知道,现在让我们一起来看看吧!
什么是推土机建筑?
CMP和SMT
CMP:CMP的方式很直接。简单来说,CMP就是通过ldquo“复制”物理内核来扩展多线程软件中处理器的性能是获得最佳性能的最简单、最有效的方法。但是CMP的缺点是制造成本非常昂贵,而且还受到处理器制造工艺的限制。毕竟芯片不可能越做越大。而且CMP的方式需要很高的负荷。只有并行优化的负载才能充分发挥CMP的性能。许多核心CMP经常浪费资源。在某些应用中,频率更高、结构更简单的双核和四核处理器往往能获得更好的性能。
SMT:SMT是一种相对便宜的技术,比如英特尔的超线程,它允许每个物理内核同时运行两个线程。SMT的设计思想是充分利用各核心的资源。如果一个物理核只有一个执行线程,线程在等待内存中的关键代码或数据时会处于停顿状态,所以核的利用率较低。SMT技术允许一个物理内核运行两个或多个线程,可以根据当前情况动态切换。如果一个线程处于停顿状态等待内存,另一个线程的指令可以使用物理核的所有执行单元,这样物理核就可以充分利用。
为了让SMT正常工作,处理器的所有代码和内存部分都需要被复制或分区。例如,一个双线程SMT处理器需要两组架构寄存器和重命名寄存器,一组用于线程A,一组用于线程b,另外,构成指令窗口的共享指令队列要有较大的空间,这样指令窗口才能容纳足够多的来自两个线程的指令,执行单元才能保持忙碌。最后,两个线程的任何共享单元,比如处理流水线不同部分的指令缓存,都不能被任何一个线程独占。换句话说,SMT内核的两个线程需要与另一个线程紧密共享资源,以确保内核的缓存单元不会被线程闲置。
推土机建筑分析
AMD推土机将采用32nmSOI技术,这使得推土机与Manikul Opteron处理器相比,在不增加功耗的情况下,内核数量和吞吐量分别增加了33%和50%。与AMD之前所有处理器不同的是,“推土机”采用了“模块化”设计。每个“模块”包含两个处理器内核,这有点像启用了SMT的单核处理器。每个内核都有自己的整数调度器和四条专有流水线。两个内核共享一个浮点调度器和两个128位FMAC乘法累加器。
不同的是,在K10架构中,ALU和AGU共用三条流水线(平均1.5条),推土机每个核心整数单元的流水线数量增加到四条,两个独占AGU,两个独占ALU。L1的缓存也不同。在K10架构中,每个内核都有64KB L1指令缓存和64KB L1数据缓存。虽然“推土机”每个内核有16KBL1数据缓存,每个模块有64KB双向L1指令缓存,但减少的L1缓存是否会影响性能仍有待观察。两个内核共享L2高速缓存,模块共享L3高速缓存和北桥。
AMD“推土机”模块
“模块”和“核心”难免会混淆。其实对于用户来说,并不需要关注“模块”这个概念,这只是AMD在设计上的指定。当产品投放市场时,仍然会识别核心的数量。例如,我们说基于推土机架构的英特拉格斯服务器处理器有16个内核,而不是8个模块。对于采用这种“模块”设计的主要原因,AMD称是“为了减少CPU的冗余电路”。
如果采用CMP方式,随着核心数量的增加,CPU的核心面积会越来越大,重复的电路会越来越多,功耗也会增加——。因为CMP是复制内核的方式。而采用“模块化”设计,可以大大减少冗余电路,对于大量内核来说意义重大。比如“推土机”,两个内核共享浮点部分。对于大部分服务器应用来说,整数运算远高于浮点运算(高性能计算除外),所以共享浮点执行单元不会影响大部分应用的性能。整数部分不共享,否则会造成瓶颈。
上面我们回顾了CMP和SMT设计的特点,可以把AMD的“推土机”架构看作是介于这两种之间的一种设计:两个线程(核)共享浮点执行单元,但各自拥有独立的整数执行资源。它看起来像是SMT的另一种形式,或者是AMD改进的“AMD式第三条道路”。但是,与传统的SMT设计不同,SMT只复制核心内存部分,每个线程一个registerfile。在AMD的“推土机”架构中,每个线程复制完整的整数执行单元硬件,每个线程有一个registerfile和一组完整的整数执行单元。
本文讲解到此结束,希望对大家有所帮助。