新一代九头蛇概况
Niagara之所以被称之为许德拉(九头蛇),是因为在上世纪90年代末,该项目的最初发起人KunleOlukotun教授将之命名为“ProjectHydra”, Magara ‖的设计目标是在不变的发热量和低耗能前提下,使芯片吞吐量加倍并增强单个线程执行效率。这些改善主要依靠加倍线程数目,增加单个核心的执行资源,以及常规系统结构和整合方式的彻底重构。
Niagara II有8个内核,每个内核最多可以运行8个线程,可同时运行多达64个线程,其设计基于IT(德州仪器)公司的65nm芯片工艺,并且使用了多达1831 个针脚,其中711个用于I/O,剩余的用作供能和接地。Niagarall的标准版本将附带4个具有全缓冲双内联内存模块(FBDIMM)内存支持功能的集成内存控制器、2个集成的10/1Gb以太网端口,且大幅提高了单线程性能。
采用Niagara2之后,内核之间不存在连接了,惟一的资源竞争将发生在内存和二级缓存上,每个线程都是由操作系统通过其自身上寄存器备份进行调度的轻量级进程。线程为一级缓存、地址转换缓冲器和ALU进行竞争,应用程序可以通过线程以线性方式进行扩展。
当然,Niagara除了并发线程的优势,在功耗方面也延续了上一代的优点。Sun设计了功率仅为70W的原始Niagara,随着数据中心功率、冷却要求和空间成本的提高,这一特色或许将更为系统厂商们看重。
集成FPU 不仅线程翻倍
虽然NiagaralI在很大程度上是前代产品的优化结果,但其微构架的改变还是非常的显著。NiagaralI的MPU(微处理器)中心是一个64 位,8线程,成梯状按次序排列的处理单元,且其连接通道相对较短并且对预测执行(一个用于执行未明指令流的区域,当分支指令发出之后,传统处理器在未收到正确的反馈信患之前,是不能做任何工作的,而具有预测执行能力的新型处理器,可以估计即将执行的指令,采用预先计算的方法来加快整个处理过程)做了限制。 Niagara ‖支持48位的虚拟寻址,以及40位的物理寻址。
Niagara ‖核心最为引人注目的改变是加倍了线程数,增加了一条执行通道并且加入7一个浮点计算单元。为7适应这些改进,Niagara‖的基本管线增加了1级臂线级数(管线级数越长,芯片频率提升的潜力也就越大)通过这种方法在8个线程中选取两个线程来执行。
在设计Niagara ‖的过程中,由于设计师们对计划尤为谨慎和强调节约厚则,必然会使内部组件的安排更为复杂,Niagara的8个线程实际上分为2组,每组一个管线,以使设计简化,从硬件上看这种线程的分组是静态的但操作系统可以在组间迁移线程来保证顺应性,每个线程部分配了8个寄存器宙(寄存器窗方案尝试将程序调用和返回时保存和恢复的寄存器数量减至最小) 需要用到160个整数寄存器(32个全局的,64个局部的,以及64个作参数传递用。)
Niagara ‖的指令读取器只是稍微做了些改进。Niagara‖能够静态地预测哪条分支持不被执行并且能够预测执行过去执行过的条件转移指令即使预测不准,也只是耽搁5个时钟周期。首先线程选择逻辑单元决定哪些线程已经为指令读取器准备好。Nisgara ‖和Niagara I不同,它的指令提取和指令分析不是严格耦合的,它的指令提取的目标是要使指令缓冲器转满,为了实现这个目标指令提取策略做了详细的定制。在活动线程中,它采用了一种最近提取策略,将从这个16KB的采用8路联合方式的L1缓存(一级指令缓存)的32位指令队列中预取4条指令,目的指令高遭缓存也包含一个简单的预取功能可以提取下一个连续的缓冲指令队列。
指令的读取方式是统一化的,所以可以使用单端口的缓存,读取之后这些线程被分为两组每一组都有自己的指令缓冲器,每个线程组都有一个指令读取器,它将从这曰个指令缓冲器中取出单条指令。然后送到译码器处理,每个时钟周期都会优先选择最近用过的就绪线程执行非预测指令,由于指令的选取是独立的结构风险(StructuralHazard,即两条指令试图同时访问同一个资源)有时会发生,译码器能够通过延缓执行两条相互冲突指令中的一条来达到解决结构冒险的目的。一个单一位的LRU计数器用来交替使线程延时以保证兼顾各个线程和顺利运行的目的。指令一旦解码将马上送往执行功能单元。
相关报道
网络设备导航