为了提升内存使用效率,FB-DIMM推出平面式的存取架构。以往不管是一般UDIMM(Unbuffered DIMM,无缓冲DIMM)、RDIMM(Registered DIMM,注册DIMM)或SODIMM(Small Outline DIMM,小型DIMM)模组等,都是以通道上的模组为单位做线形存取。FB-DIMM在使用内存时,除了以内存通道为单位外,还有跨通道的分支(Branch)和内存列(Rank)等应用模式。
在FB-DIMM分支架构下,每两个通道可以组成一个分支。这两个通道必须以锁步(Lock-Step)方式运作,在相同时序下把两个通道虚拟为一个。在分支架构下,每一次读写资料,都是以每通道32位,共64位的方式进行。而所谓的内存列架构,是指在每一分支中,两通道上同一顺序模组可组成一个序列。当FB-DIMM以分支架构运作时,每个通道上的模组(或Rank)数目和容量必须相同,这样才能进行同步存取。在使用分支架构后,内存系统的效能得到重大提升。分支和序列架构的工作机制如图3-44所示。
图3-44 FB-DIMM内存中的Branch和Rank架构
1.单一内存通道读取方式
当系统只有单一内存通道时,FB-DIMM的存取模式是由最接近内存控制器的AMB把读取指令和地址依序传给下个AMB,并由最后一个AMB建立一个"返回框架"(Return Frame),再反向依序传递。此时返回框架中尚未包含真正需要的资料。这个动作等于把欲读取的地址事先通知给每个模组,使资料所在模组有充分时间进行读取。当返回框架回传到目标地址所在模组时,这个模组的AMB会把所需资料加入返回框架中,经由第一个AMB交付给内存控制器,完成读取指令。FB-DIMM单一内存通道读取流程如图3-45所示。
图3-45 FB-DIMM内存单一通道读取流程
2.单一内存通道写入方式
与单一内存通道读取类似,在执行写入工作时,内存控制器会先将欲写入的资料送出,经由第一个AMB依序传递给次一AMB,而目标地址所在的AMB会先将此资料收入缓冲区里。送出欲写入资料后,内存控制器接着送出写入命令,此命令传递到目标模组后,对应的AMB便将资料以并行方式写入模组上的内存里。为了确定资料已写入完成,内存控制器会再送出要求确认的状态讯号,这个状态讯号依序通过每个AMB后,最后一个AMB会建立状态框架(Status Frame)反向传递,经过目标模组时,该AMB完成状态设定并继续把状态框架传回给内存控制器。FB-DIMM单一内存通道写入流程如图3-46所示。
图3-46 FB-DIMM内存单一通道写入流程
3.多内存通道时的存取策略
如前所述,FB-DIMM可以在多通道时以Branch和Rank架构来提升内存运作效率。若系统中有2个以上分支,即4个以上内存通道,而这2个分支的Rank数量和内存容量也相等的话,这种架构叫做平衡式内存分支,可以使用交错式(Interleaving)定址存取,效率提升的幅度最高比非平衡架构增加80%以上,如图3-47所示。
图3-47 平衡式的内存分支架构的性能优势
同样,使用交错式定址存取,FB-DIMM架构上可能出现数种不同组合。以总共配置8GB内存的系统为例,依据使用的内存模组形式、模组配置方式,成为无交错(1Way)定址、2路(2Way)交错定址及4路(4Way)交错定址等组合。因具体原理比较复杂,在此不再介绍。