Power7的L3——L4缓存值得一提,它的容量达到了32MB(包括特别快速的L3或者说L2.5在内)!实际上,这些缓存(至少是大部分)属于DRAM(Dynamic RAM,动态内存),和通常CPU使用的SRAM(Static RAM,静态内存)不同,IBM称之为eDRAM,embedded DRAM,集成动态内存。DRAM也就是我们通常的内存条使用的技术。
DRAM和SRAM的区别是:DRAM使用一个晶体管和一个电容存储一个bit,由于电容会漏电,因此必须周期性地充电以维持数据,优点是简单、便宜;SRAM则用6个晶体管(Nehalem则使用了8个晶体管以降低功耗)组成的双稳态触发器电路来存储一个bit,不需要周期性地充电,速度很快,然而占地面积大,耗电高,造价也高。
为什么要用DRAM呢?不是说DRAM的速度慢么?这要从多个方面来考虑:首先是容量,Power7本身的8个核心以及4路多线程要求具有大容量的缓存以维持一定的性能水准,至少要达到30MB;其次是功耗,假如采用SRAM的话,其功耗将会非常高的:32MB的缓存会消耗大量的电力,并且设计更加复杂,多个核心的内部互联也变得麻烦(4核心的Itanium 3 Tukwila具有30MB的SRAM L3,不过目前处于难产阶段),使用DRAM的话,功耗将得到降低,同时占地面积也更小,互联线路也简单了。唯一的缺点是性能,这一点无法避免,这应该就是L2.5或者说L3存在的原因,这个特别快速的4MB区域可能仍然是SRAM构成的。
大容量的L3通过内部互联结构连接,据说处理器核心互联的带宽达到了500GB/s!经过了大容量L3(L4)的筛选之后,仍然需要大量的内存带宽,Power7提供了两个DDR3内存控制器,每个控制器支持4个DDR3通道,大约支持到主流水准:DDR3-1600,这样内存控制器可以提供100GB/s的带宽!内置内存控制器的设计并不容易,需要提供各种RAS特性,并需要面对多种不同厂商不同型号不同参数的内存模组。Nehalem支持三个DDR3通道,Nehalem-EX也只支持4个。
为了更好地支持多个内存通道,并提高性能,Power7每个内存控制器都具有16KB的重调度缓存来重新排序内存存取请求。