基于存储空间复用提高sdram总线有效访问速率的方法

文档序号:9727265阅读:507来源:国知局
基于存储空间复用提高sdram总线有效访问速率的方法
【技术领域】
[00011本发明涉及SDRAM领域,具体涉及基于存储空间复用提高SDRAM总线有效访问速率 的方法。
【背景技术】
[0002] 随着网络带宽和网络数据量的不断快速增加,处于网络各个关键节点的通信设备 处理能力要求也不断提高。通信设备的处理能力不仅仅体现在芯片本身运算能力的提升, 同时也要求芯片对外围数据的存储、读写、输入输出等单元速率相应提升。然而,芯片本身 对外部存储访问能力的快速提升与外部存储器的性能总是不完全同步,这在一定程度上成 为制约芯片性能发挥的瓶颈。
[0003] 作为网络重要组件之一的核心路由器,除了拥有上百万条路由表外,还有大量的 MAC地址表、MPLS标签表、接口表、VLAN表和访问控制列表(ACL)等表项,因此,对芯片外围数 据存储的容量和性能提出了更高的要求。
[0004] SDRAM(同步动态随机存储器)相对于其它如SRAM(Static Random Access Memory)、TCAM(Ternary Content Addressable Memory)等存储芯片,以其价格低廉和存储 空间大的优势,在网络设备存储扩展方面有着广泛的应用。当前芯片外部SDRAM接口已经发 展到第三代(DDR3)并取得广泛应用,其主频从800MHz到2133MHz;部分芯片已经开始兼容集 成第四代(DDR4)接口,DDR4虽然支持更高主频,但是其价格昂贵,目前在产品商用方面使用 较少。虽然SDRAM访问频率有所提高,但仍满足不了芯片线速处理报文时对SDRAM接口访问 的性能要求。主要原因在于:访问一次SDRAM要完成必要的准备工作(激活)和必要的收尾工 作(充电、刷新、校准),数据总线上有效数据传输时间DQ占整个访问时间比例比较小,也就 是说即使总线频率很高,时钟tCK周期很短,但由于tCL周期变长,数据总线的利用率(一次 操作连读8次为例计算)只有15 %左右。以DDR3SDRAM常用1600MHz的访问频率为例计算,在 易1J除芯片读写过程中激活时间、充电时间、刷新时间、校验时间等开销后,对一个SDRAM的同 一物理Bank随机访问的实际速率约20Mpps,这与当前40G芯片60Mpps随机访问要求有很大 差别。
[0005] 鉴于SDRAM存在上述局限,当前业界对SDRAM存储接口进行了不同方式的优化和改 进,主要有以下几个方面:
[0006] (1)在片内增加读写临时存储空间Cache。
[0007] 一个SDRAM局部区域共享一个Cache项,Cache项中临时保存着该区域SDRAM最近一 次读入的数据,芯片如果在需要读入外部数据时,首先会在片内Cache中查找,如果查找命 中,将直接使用Cache中的数据交给芯片运算器处理,而不用在外部SDRAM中去读取,这样就 节省了一次SDRAM的访问开销,从而提高了数据读写的速率。这种利用芯片运行过程中空间 局部性,对于芯片长期从事重复数据运算的应用场景确实有一定的效果,但是对于网络设 备中需要处理的形式多样的网络报文和交替查找大量转发表项的应用场景,其效果并不明 显,反而会适得其反。这是由于进入芯片的每个数据报文可能查找SDRAM的表项各不一样, C a c h e项会被频繁的更新,新来的数据报文往往在C a c h e中找不到需要的数据(C a c h e Miss),转而要向SDRAM中读取,数据从外部SDRAM中读取到Cache中后再传递给运算单元进 行处理,这种Cache Miss造成读写一次SDRAM需要更长的时间,反而不能提高读写外部存储 的速率。
[0008] (2)基于SDRAM读写同一个Bank下的连续地址效率高,以及每次读写操作后都需要 进行预充电的特点,对芯片动态随机访问SDRAM的中间加入读写命令缓冲区,通过对读写命 令的序列进行分析和仲裁,根据SDRAM读写时序特点进行读写操作的优化。优化的方法一是 对于缓冲区中读相同Bank下的同一行但是不连续的数据的几次操作,转换为一次连续读操 作,再通过掩码去掉中间的无关数据,返回需要读操作需要的数据;优化的方法二是对不同 Bank下的不同行进行随机访问优化,通过"兵乓操作"让访问在不同的Bank上轮换进行,从 而隐藏了访问操作后所需的充电时间。然而,方法一的优化作用比较有限,原因在于:这种 对同一 Bank下同一行的读写操作在实际中概率不高,能够实施优化的概率不大;方法二为 了实现轮换的"兵乓操作",改变了访问SDRAM的顺序,有可能会导致数据的错误,这种优化 方案比较适合对于读写操作顺序没有太多要求的场合,并且这种采用"兵乓操作"的算法对 提高SDRAM访问速率比较有限,算法对SDRAM访问优化的深度还不够完善。另外,在采用常用 的"兵乓操作"进行优化后,通过FIFO缓冲去将原本连续访问同一个Bank不同行的操作转换 为依次访问两个不同Bank下的数据,可以部分隐藏系统充电时间tRP(7clock),通过时间叠 加隐藏了 2clock,优化后的带宽利用率大约为15.4%,访问带宽为21.321^?8;如果采用 4Bank之间的"乒乓操作",可以隐藏整个充电时间(7clock),优化后最大的带宽利用率为 20 %,访问速率为26.65Mpps。可见优化后带宽利用率还是没有得到较大的改善,与实际应 用60Mpps的需要还是有较大的差距。
[0009] 由此,在网络设备40G平台中,要求SDRAM提供足够大的访问带宽,保证其及时查找 表项并实现报文的线速转发,并且这个过程中访问SDRAM动态随机性大、规律性小,涉及表 项条目多、重复性小,单纯的应用上述优化方法难以满足实际应用需求。

【发明内容】

[0010]本发明所要解决的技术问题是现有提高SDRAM存储访问能力的方式难以满足实际 应用需求的问题。
[0011] 为了解决上述技术问题,本发明所采用的技术方案是提供一种基于存储空间复用 提高SDRAM总线有效访问速率的方法,包括以下步骤:
[0012] 将4片位宽为8比特的SDRAM芯片分成两个组GroupO和Groupl,每组2片SDRAM芯片 共用一个片选信号,内存访问命令利用不同的片选信号在时序上对GroupO和Groupl交替进 行;
[0013] 将表项在物理Bank上存储为4份镜像,且所述4份镜像分别处在不同的Bank内,对 用户虚拟出4个逻辑Bank;
[0014] 对逻辑Bank进行仲裁选择,将用户的内存访问请求按照时序分发到不同的物理 Bank上,实现多个物理Bank之间的轮转访问。
[0015] 在上述方法中,对SDRAM的实际物理内存地址空间与用户地址空间之间做映射,形 成逻辑地址。
[0016]在上述方法中,逻辑地址的最高两位作为SDRAM的Bank的低2位选择地址,依据用 户的访问仲裁输出。
[0017]在上述方法中,每个Bank上增加了两个分别用于存放读写访问命令的队列缓冲 区,用户的随机访问通过处理后,被缓存在对应的逻辑Bank缓冲区上。
[0018] 在上述方法中,用户对同一个逻辑Bank的访问被划分到不同的4个物理Bank上,对 缓冲区中访问请求仲裁器执行的逻辑步骤如下,其中刷新操作P需要在Ts为0或1上,写操作 Μ必须在Ts为0、4、8和12上,读操作F对Ts没有要求。
[0019]本发明,基于Bank镜像和Bank仲裁相结合,通过对总线分组复用,对用户隐藏了每 次SDRAM访问间消耗的激活时间和预充电时间,使得SDRAM同一Bank的访问速率由约20Mpps 提高到65Mpps,满足了当前网络设备40G平台60Mpps的访问速率要求。
【附图说明】
[0020] 图1为本发明中4片SDRAM芯片分组示意图;
[0021 ]图2为本发明中不同Bank内存储示意图;
[0022] 图3为本发明中实际物理内存地址空间与用户地址空间映射示意图;
[0023] 图4为本发明中用户访问示意图;
[0024] 图5为本发明中优化后的读时序图。
【具体实施方式】
[0025] 本发明提供了一种基于存储空间复用提高SDRAM总线有效访问速率的方法,基于 Bank镜像和Bank仲裁相结合,通过对总线分组复用,对用户隐藏了每次SDRAM访问间消耗的 激活时间和预充电时间,使得SDRAM同一Bank的访问速率由约20Mpps提高到65Mpps,满足了 当前网络设备40G平台60Mpps的访问速率要求。下面结合说明书附图和【具体实施方式】对本 发明做出详细的说明。
[0026] 本发明提供的基于存储空间复用提高SDRAM总线有效访问速率的方法,包括步骤:
[0027] 1)将4片位宽为8比特的SDRAM芯片分成两个组GroupO和Groupl,每组2片SDRAM芯 片共用一个片选信号,内存访问命令利用不同的片选信号在时序上对GroupO和Groupl交替 进行。
[0028]如图1所示,本实施例采用4片SDRAM芯片组成外围数据存储器,采用两个片选信号 CS0和CS1,4片位宽为8比特的SDRAM芯片501?舰1、501^12、50狀13和501^14,每两片组成一个 组(GroupO和Groupl ),每组共用一个片选信号。GroupO的数据连接接口数据总线的DATA [15:0 ],Group 1的数据连接接口数据总线的DATA[ 31:16 ],所有其它控制信号四芯片共享。 [0029] 访问命令在时序上对GroupO和Groupl交替进行,每次访问连读8次,共可读出 16bitX8 = 128bit 的数据。
[0030]实际应用过程中,为了能够一次访问读出整条表项,SDRAM的表项存储设计,每条 表项宽度不要超过128bit。
[0031 ] 2)将SDRAM的表项在物理Bank上存储为4份镜像形成4个逻辑Bank。
[0032] 每片SDRAM芯片内部划分为8个物理Bank(Physics Bank),每个物理Bank提供8bit 数据。
[0033]物理Bank类似于一张表格,每次访问需要先指定行,再指定列,从而能够找到这个 单元格,访问SDRAM时一次只能对一个物理Bank访问。SDRAM支持在本Bank预充电的时间内, 对别的Bank进行访问操作,即Bank轮换的寻址(乒乓操作)。
[0034]单一的Bank轮换虽然可以通过隐藏预充电时间,提高
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1