下一代的系统架构将解决CAM和cache不能解决的问题 Aeroflex UTMC公司TimMelchior著/雷天石 译
---- 工程师希望能出现有更强处理能力的计算机。这些年来,处理器设计师为我们带来了领先的速度,与1971年Intel的108kHz 4004处理器相比,处理器的速度增加了10000倍。与此相反,DRAM的存取时间在这段时期内只降低了相差甚远的10倍。
---- 处理器速度与内存速度之间日趋扩大的鸿沟使得内存成为提高计算机系统性能的一种主要障碍。通常把处理器与内存之间的差距称为内存瓶颈。
图1:Aerofilex UTMC公司听e.Card基于CAM技术,把标准的RAM变成联想存储器,很快减轻处理的负担,可以达到每秒钟1千万次数据库查找。
改善存取速度
---- 长期以来,为了减轻或消除内存瓶颈现象,电信工程师求助于内容定址存储器(CAM)。通过在CAM芯片中设计并行查找,工程师们可以使得找到与关键字相联系的数据非常迅速。这种方法取得了很好的效果,而且也依然是很多应用中一种很好的方法。
---- 但是,CAM有两个主要的缺点。它们比较贵,而且容量比较小。进行查找所需要的电路消耗掉芯片上的硅资源,这当然转换成不菲的成本以及降低了存储器的容量。由于CAM的生产量相对较低,这样带来的额外成本更加使得采用CAM的代价进一步提高。
----用于减轻内存瓶颈问题的另一种通常的办法是采用高速缓存(cache)。这种存储器用高速的SRAM来制作,它比CAM的密度要高,但是距DRAM的密度仍相去甚远。尽管SRAM的价格是DRAM的十倍,它通过存储不久前用过的、从较慢的DRAM中取得的数据,可以大大改善系统的性能。
----计算机指令和控制数据是在cache中存储的上乘之选,因为这种类型的数据常常在随后的程序中被访问,而且,cache控制器也能很好地保持cache在所需数据被使用之前得到及时的更新。
---- Cache存储器出现问题是在访问大型数据库的时候。如果数据访问要求无法预测,而且数据库的容量大大超过cache的数量,在cache中找到所需数据的概率就非常低。
----如果在cache中找不到数据,就出现一次cache落空,在缓慢的DRAM中进行访问时系统必需等待。电信工程师对速度的要求非常高,无法容许化费50个或更多CPU时钟周期去等待由于cache落空引起的延误时间。
处理解决方案
---- 工程师们除了要求增加传输速率之外,同时更要求设计出可以满足电信服务需求提高与扩大的系统。为这些系统提供支撑的数据库在容量与复杂性方面都在呈爆炸性增长。
---- 在这些系统中,CAM、cache、FPGA,甚至ASIC都无法解决涉及大型数据集合的查找密集的高性能问题。迫切需要的是一种处理解决方案,它通过挖掘并行分布处理、流水线和联想存储器技术来解决处理器内存瓶颈问题。
---- 这种解决方案的第一步是将基本的数据操作功能卸载到智能内存控制器中去执行。此控制器需要了解数据库的结构,而且必须设计得可以发挥当前内存技术的能力。
----与当今CPU使用的通用内存控制器不同,这种内存控制器必须以减少内存访问次数为首要目标,非常适合于执行数据库管理。通过缩减内存访问的次数,控制器立即对减轻内存瓶颈作出了贡献。
----从硬件的角度看,这个内存控制器让普通的低价、高密度DRAM像传统的CAM一样工作。正是基于这个原因,这种类型的内存控制器被称为CAM引擎。
---- 作为有效CAM引擎的内存控制器的主要特征是,它必须被设计成与自身的另外复制平行地工作。实现这点的最简单方法是在控制器内执行输入与输出FIFO(参考图2)。它允许由CPU或另一个逻辑器件内核对数据操作命令进行流水线处理。
图2:FIFO提供执行并处理的简单方法