新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 为系统设计人员提供的DRAM控制器

为系统设计人员提供的DRAM控制器

作者:时间:2012-11-07来源:网络收藏

物理接口的上游是命令处理器。这一模块跟踪的状态,将到达总线读写周期转换为相应的命令序列。例如,命令处理器会找到通过其输入队列散射连续字的总线读序列,然后,向其输出队列发出预充电,激活,以及模块读命令。对此,命令处理器必须知道当发出新命令后,将打开哪一芯片的哪一块的哪一行。在某些设计中,命令处理器还处理地址重新映射,在多个块上扩展一个连续的数据结构。

随着对带宽需求的增长,命令处理器的复杂度也在不断提高。例如,处理器会提前处理其输入队列,重新安排操作,尽可能保持在激活的行上,重叠预充电读操作,或者对块进行间插操作。最重要的是,处理器会尽量避免一个块的行之间出现乒乓效应。必须确定所有这些调整,并且随时能够进行调整。
这方面的努力会有其回报。Krikelis说:“我们看到在某些应用中,分组和重新排序能够实现92%的理论最大带宽。”

最后,事物处理器位于命令处理器和SoC的其他部分之间。一般有一些通道连接至SoC的高速中心交换结构上。事物处理器的主要工作是将到达的各种通道的读写数据流进行组合,加上优先级,这样,每一通道得到了所需的延时和带宽——因此,每一高速缓存、DMA引擎或者这些通道另一端的加速器也得到了所需的延时和带宽。

在动态环境中选择这种优先级方案并不容易。如果您不能精确的预测每一通道的数据流特性,那么,这会非常困难。理想情况下,工作负荷是固定的,因此,您可以为其优化优先级方案。或者,会有一些清晰的访问模式,随着数据流的变化而提供动态调整优先级。Krikelis说,系统规划人员和设计人员研究了这一问题,使用了从表格到商用DRAM仿真工具的所有工具。但,还是无法让工作更简单一些。

在某些情况下,应用的特征很明显,事物处理器会承担更多的工作。Krikelis说,可以对最近的DRAM行进行高速缓存操作,或者中经常被激活的行进行高速缓存操作。而且,在某些情况下,设计人员可以针对某些通道进行一些特定任务的重新排序或者某些读写操作。

高级DRAM控制器中的三个主要模块协同工作,能够使复杂多核SoC尽可能接近最大理论DRAM带宽。但是提高带宽可能需要牺牲延时,最高优先级线程除外。某些控制器设计会有32或者64深命令序列,意味着,低优先级访问会长时间停留在序列中。一般而言,DRAM控制器能够进行的工作越多,它处理的SoC体系结构和组合任务就越具体。这就把难题留给了人员。

回到系统级

您可能会说:“很有趣。对此,我应该做什么?”正如我们在开始所阐述的,软件、系统硬件以及控制器之间的交互会决定您从DRAM那里能够得到的实际带宽。作为一名人员,您的确有一定的自由度。

最好的方法一般是采用SoC供应商的参考设计。参考设计团队完成了他们的工作。理想情况下,您完全按照设计人员所希望的方式来使用SoC。Krikelis提醒说:“如果您购买了ASSP,那就没有太多的选择。DRAM控制器和芯片中的其他模块会针对特定的应用进行整体优化。”

参考设计中的这些软件也是在知道了这些优化后才编写的。例如,经验丰富的编程人员会尽可能保持存储器参考位于行中,可以同时打开,以便减少高速缓存未命中和DRAM行未命中等问题。他们能够熟练的在块上分配数据结构,采用间插操作。他们可以安排CPU内核、加速器和DMA的工作,避免控制器可能解决不了的冲突问题。他们知道,对于控制器中未处理器的命令,DRAM、高速缓存以及命令队列中的数据,数据一致性是他们要解决的关键问题。采用这类参考设计的人员的工作是尽量不打破这种一致性。

但是有些时候,系统设计人员会有更大的自由度。Krikelis指出,如果DRAM物理接口是可配置的,您可以通过简单的使用更大的DRAM来提高存储器的有效带宽。在某些情况下,可以调整一些DRAM控制器的内部参数,例如,分配给通道的优先级、重新排序算法,以及命令队列的深度等。

但是,在某些情况下,仅仅进行调整是不够的。Krikelis提醒说:“没有一个简单的答案来满足所有人的规划需求。有时候您需要建立自己的访问抽象层。”
对于资金雄厚的有影响的设计团队,这意味着,与ASSP供应商合作,修改事物处理器,甚至是命令处理器。对于其他规模较大的工程,DRAM带宽需求会满足开发ASIC的要求。对于不能满足ASIC前端成本的设计,替代方案是系统级FPGA。通过这些方法,系统设计人员在控制器的某些部分采用现有的知识产权(IP),设计尽可能多的定制操作和命令处理操作,以满足其需求。

即使系统团队选择不去修改DRAM控制器,他们理解其功能也很重要。很多选择都能够实现与DRAM控制器的互操作,从DRAM芯片选择到数据怎样在系统中输入输出,线程怎样分配给处理器,应用程序怎样将数据结构映射到物理存储器中等。难点是怎样高效的使用DARM带宽,最终目的是提高整个系统的性能和能效。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭