在网络处理器中采用嵌入式DRAM具有其它存储器不可比拟的优点:嵌入式DRAM可以提高网络处理性能;可以减少器件数量并降低功耗。本文将讨论如何利用嵌入式DRAM减少元件数量和降低功耗,以及嵌入式DRAM如何满足网络处理器的存储要求。
互联网骨干网的数据速率每六到九个月翻一番,比摩尔定律的十八个月要快很多。同时,对服务质量的要求以及对数据量也在不断提高。这对网络系统设备提出越来越高的要求,传统的技术方法难以为继。
网络处理器的的强大处理能力实现了传统处理器无法完成的网络功能。网络处理器市场竞争异常激烈,只有那些具有高可生产特性和性能的竞争者才能胜出。而只有实现更高的带宽和更大的片上存储器才有可能实现这些特性。
嵌入式DRAM可以采用DRAM与逻辑相结合的工艺或采用平面型纯CMOS工艺。采用DRAM与逻辑相结合的工艺,硅成本较高,但密度比SRAM高8到10倍,更适合存储量大的大容量器件。纯逻辑工艺的平面DRAM密度比SRAM高2倍,而工艺复杂度和成本并没有增加。过去,DRAM的随机存取速度无法突破100MHz,而最近已成功开发出166MHz的随机存取DRAM。
DRAM和SRAM在结构和性能上的区别决定了两者的工作方式不同。这些区别表现在DRAM的页模式和DRAM刷新要求上。
DRAM将状态存储为模拟电压,在读取之前必须检测到该模拟电压。检测操作是一次性对整页的位并行进行。每页可以包含很多字,在检测后,可以通过多工器以“页模式”高速存取。存储器设计不一样在存取上也存在差别,一页的容量可以为64Kb或更大,不同块或库中的页也可以通过快速多工器存取(见图1)。不同库也可以执行多个同步操作,如读/写和刷新,或者在数据传送量较小时将库关闭以降低功耗。
DRAM要求周期性刷新来恢复电荷。检测操作可以自动恢复电荷,但如果不经常读取存储器,就必须进行一次虚拟读取操作。
除了这两点区别以外,SRAM和DRAM还有很多共同点。现在的上千兆位SRAM要求具有冗余特性和内置自检(BIST),受软错误的影响越来越大。
四种基本类型的存储器
让我们考虑下一代网络处理器的要求(图2)。下一代网络处理器要求四个基本类型的存储器:数据包存储器、包头存储器、路由表查询存储器和程序存储器。
数据包存储器是一个数据缓冲器,存储待传输的有效载荷信息。这种出入处理器的数据流非常适合于连续存取的快速页模式DRAM的应用。由于数据包存储器通常较大,在32M到256M之间,通常与片外SDRAM或RDRAM配合使用。
由于数据包存储器直接与数据流相连,带宽非常重要。数据包存储器还要求至少两个端口,这样在与数据流相连的同时,在需要时网络处理器仍然可以对数据包存储器进行存取。
为了优化系统效率,必须适当选择数据包缓冲器的大小。最小的数据包至少应与缓冲器或段大小相当。如果数据包缓冲器过大,则对小数据包的存储效率将非常低;如果太小,则必须使用多个缓冲器来保存绝大多数数据包。这样不仅影响存储器效率,由于还损失了一些用于写入未用存储器地址的周期,因此还加大了对带宽的占用。另外,还要适当权衡数据包缓冲器大小和选择速度。如果可以迅速做出转发选择,则可以使用较小的数据包缓冲器,这易于将数据包存储器集成在芯片上,节省了功率和空间。
包头存储器用于存储与数据包有关的包头信息。它以脉冲串形式写入,并以小数据包随机读取。处理器读取包头存储器,得到关于数据包的信息,并决定处理这些数据的合适方法。包头存储器的大小通常为256K字节(2Mb),由于与数据包有关,数据的保存时间短。
查询存储器包含路由表,有时可用内容可寻址存储器(CAM)来实现。该存储器通常比较大,并在片外工作。路由表的大小在某种程度上与性能有直接关系。这种存储器中的数据相对稳定,数据通过速度较低的更新端口写入,但读取速度必须非常快,通常要求随机存取。
程序存储器用于网络处理器存储程序代码。程序存储器的数据保存期长,用户通常规定在通电情况下保存五年。程序存储器大小通常在4K到8K字之间,由于处理器字可能是32到64位,因此其大小为128 Kb到512Kb。下一代网络处理器的程序存储器将会更大,可能扩大8到16倍。
特定应用DRAM
程序和查询存储器的保存期长,很多生产商希望存储器内容可以保存至少五年。最近的数据表明,SRAM的软错误故障率达到每兆位1,000 FIT。由于DRAM已经留有刷新周期余量,刷新期间可以在不影响性能的情况下,有效检测和纠正存储器中错误,提供优异的软错误保护功能。简单的汉明码纠正法可以提供2位错误检测和1位纠正的功能,刷新操作之间出现多个错误的可能性非常小。
包头和数据包存储器的保存期短。在许多应用中,甚至可以不用刷新。由于数据存储时间短,数据包发生软错误的机率非常低。
由于数据包存储器通常写入和输出数据,建议采用可变页模式的高速DRAM。这种可变页模式可以在工作中将页多工器在4X、8X和16X之间切换,这样可以适应各种大小的数据包而不会浪费存储器。
嵌入式DRAM可以使用非常宽的数据总线,因而存储器一次可以进行几百位或几千位数据的存取。
嵌入式工艺已经不能满足包头存储器的要求,从经济角度不能将其集成在片上。查询存储器可以采用DRAM CAM,使面积和功率显著降低。下一代CAM器件的容量将至少达到18Mb,很难实现低成本集成。
程序存储器需要两个端口,其中一个连接至处理器的高速随机存取端口,另一个用于程序更新的低速端口。存储器具有刷新功能,还可以不被察觉地执行纠错码功能,并且数据保存期的指标远远超过大多生产商所要求的五年。
作者:Gord Harling
业务发展部高级主管
Atmos公司