在动态存储器中实现查表控制器的方法

文档序号:6761982阅读:126来源:国知局
专利名称:在动态存储器中实现查表控制器的方法
技术领域
本发明涉及存储器技术,尤其涉及一种在动态存储器中实现查表控制器的方法。
背景技术
目前常见的DRAM(如DDR SDRAM、SDR SDRAM、FCRAM、RLDRAM等)通常采用页面式的存储结构,如图1所示。例如DDR/SDR SDRAM是4页面(Bank)结构,页面(Bank)中有分行(Row)结构和列(Column)结构,便于地址复用和内部任务的分解处理,对于无地址复用的可看作一行多列或多行一列。由于复杂的存储结构和内部存取单元的存取特性决定了数据的存取需要相应较为复杂的过程。
参阅图2A、2B、2C、2D所示常见DRAM的存取操作过程,一般包括1、选中和打开某一页面(Bank)的某一行(Row),例如DDR/SDR SDRAM采用激活(Active)命令;2、对已激活的行(Row),按列(Column)地址进行读写操作;3、将处于开启状态的页面(Bank)的行(Row)关闭(例如DDR/SDR SDRAM可使用Precharge命令),否则无法对该页面(Bank)的其他行(Row)进行操作,当然也可以使用自动关闭(例如DDR/SDR SDRAM使用AutoPrecharge命令),让存储器自动完成关闭过程,但过程依然存在(下面以Precharge为例描述,AutoPrecharge的自动关闭同理)。
对于其它类型的采用页面结构的DRAM类存储器(如FCRAM、RLDRAM等),虽然所使用的命令不尽相同(如RLDRAM-I使用类似SRAM的指令),但在存储器内部类似打开-->存取-->关闭的过程依然存在,下面我们以DDRSDRAM为例描述,其它类型采用页面结构的DRAM类存储器在使用本文所阐述的技术和改进方面同理。
常见的页面结构的DRAM的页面访问特性如下1、连续两次访问相同页面(Bank)的最小间隔不得小于同页面访问周期(ACTIVE to ACTIVE/AUTO REFRESH command period=tRC,例如某DDRSDRAM该参数为60纳秒[1纳秒=0.000000001秒],某RLDRAM的该参数为25纳秒);2、连续访问相同页面的不同行时需先关闭已激活行,然后重新激活该页面的相应行,对于有些页面结构的DRAM(如FCRAM、RLDRAM)访问结束自动关闭,所以连续访问相同页面必然经过关闭和重新激活,因此在描述开销时原理相同。
3、连续访问不同的页面时,可以采用提前激活的方式将访问不同页面间各自的激活与关闭动作与读写进行重叠抵消,从而规避开销,所以连续的访问不同页面可提高访问的效率,提高可用带宽,但通常的随机访问很难保证只连续访问不同页面。(注上述示意图仅作为原理说明,还需参照相应的DRAM手册提供的参数来进行查表控制器设计)查表应用是一种以索引(此处以RAM地址为索引)查找获得内容(此处为存入RAM的数据内容)的应用。实际的查表应用通常包括表项配置(按索引将表项存入表项存储空间的相应位置)、表项维护(通常为表项的修改,将表项内容更新)、表项查询(或称查找,即按索引读取表项)。通常表项的配置和维护过程相对于表项查询过程是很少的,表项查询则要频繁的多,查表应用是以查找为目的的,所以查找速度是查表应用的主要性能指标。从技术上使用SRAM(静态存储器)做查表操作简单且速度很高,但相对于DRAM(动态存储器),SRAM(静态存储器)成本高,容量小,因此采用DRAM的查表被广泛的使用来提高容量和降低成本,而由于DRAM的特性使得查表速度较低和难以保证。
本发明描述的采用页面结构DRAM的查表控制器是以页面结构的DRAM为表项的存放场所,通过地址为索引,读取的数据为查找获得的内容(即表项条目)。表项的配置和维护体现为对存储器的写入操作,表项查询则体现为纯粹的读操作,通常每次的读操作读取的一个或多个数据组成的数据串对应一个表项条目,即每个读操作完成一次查找,所以读操作发起的速度越高,查表速度就越快,查表性能就越高,而表项的配置和维护动作由于明显少于表项的查询动作,所以对查表性能影响较小,通常可以忽略。
参阅图3所示,现有的使用页面结构的DRAM的查表控制器,将所有存储空间作为统一的连续的存储空间来分配给一个或多个表的表项存储空间使用的方式进行一个表或多个表的表项存储(参见下面相应的示意图,以4页面为例,其它同理),表项查询按照查表索引(即地址)从整个存储器统一的连续存储空间中读取。
表项的存取按照该DRAM的正常操作顺序(如DDR SDRAM的激活-->读/写-->关闭,参见图2A、2B、2C、2D中的相关描述。其它页面结构的DRAM操作指令不同,但过程相似,后面说明以DDR SDRAM为例,其它页面结构DRAM同理)先将表项存入DRAM中(即表项配置)然后按照查表需要读取表项。
由于现有的技术实现是将DDR SDRAM的全部存储空间作为连续的存储空间,按照表项大小等属性(而没有考虑结合多页面结构)将存储空间划分为一整块或者多块,因此在表项查询时由于表项索引的随机,导致访问的页面随机,则难以避免两次查找所访问的页面是同一个页面,而表项查询是对存储器的读操作,此时就面临对页面结构的DRAM的连续访问相同页面的问题,导致查找速度降低。
由于查表操作的查表索引是随机的,所以每次读取表项时所涉及的读取的页面是随机的,那么出现连续两次读取相同页面的概率是存在的(如4页面的DRAM为25%),这时便出现连续访问相同页面的情况,从而引入了大量的开销。参阅图4A、4B、4C所示,以Burst Length=4为例(参见DDR SDRAM用户手册)。图4A为单次查表操作,图4B为采用提前激活的操作方式,两次操作间开销抵消,速度较高,图4C为连续两次操作访问相同页面,需关闭并重新激活该页面,开销无法抵消,速度较低。
由于存在连续多次查表涉及同一个页面的概率,因而会引入大量开销,使查找速度大大降低,进而严重抑制系统的整体性能;对有速度要求的系统来说,可能无法满足系统要求的最低查表速度。

发明内容
本发明的目的在于提供一种在动态存储器中实现查表控制器的方法,以解决现有技术中因连续多次访问同一个页面而存在大量开销导致查表速度降低和难以保证实时高速查表的问题。
实现本发明的技术方案一种在动态存储器中实现查表控制器的方法,所述动态存储器(DRAM)为页面式存储结构,所述查表控制器以该结构的动态存储器为各表分配存储空间,并以地址为表的表项索引,查表控制器配置所述表体现为对存储器的写操作,查表控制器查询所述表体现为对存储器的读操作;其特征在于该方法为将动态存储器的所有页面作为非连续的存储空间为所述表分配页面;查表控制器配置和查询所述表的表项时轮流访问页面,并且后一次访问从不同于前一次访问结束时的页面开始。
其中当多个表共用存储器时,根据各个表的查询速度要求为表分配页面存储空间。
按每个表的查表速度占所有表总的查表速度的比例分配页面存储空间。
采用表镜像方式,将查表速度超过第一查表速度的表的镜像表分别存入多个页面存储空间中,并且每个镜像表的表项相同,使得在每一轮读取页面时,可以连续查询相同的表。
当对表和该表的镜像表中的任一表进行配置后刷新其余的表,使表和该表的镜像表的表项相同。
每一个表的所有表项不跨页面存储,只存放于一个页面存储空间中,与该表内容相同的镜像表存放于与该表不同的页面中,多个内容相同地镜像表则分别各自存放于不同的页面中,为查表速度低于第一查表速度并不小于第二查表速度的表分配一个页面,并且使该表独占该页面。
将查表速度低于第二查表速度的多个表存放于一个页面中,对页面的每一轮访问中只访问该多个表中的一个表。
本发明具有以下有益效果1、消除了连续访问相同页面的操作,提高了总体查表速度;2、对于存储器的访问采用页面轮流访问,而非随机访问,有效避免了连续多次访问相同页面时查表速度严重降低的情况出现,从而保证了实时又最优的查表速度。


图1为页面(Bank)存储结构示意图;图2A为现有技术中SDRAM的基本读写过程示意图;图2B为现有技术中由关闭和重新激活引入开销示意图;图2C为现有技术中由同页面访问周期可能引入的额外开销示意图;图2D为现有技术中连续访问不同页面时回避开销示意图;图3为现有技术中表在存储器内占用存储空间示意图;图4A为单次查表操作执行示意图;图4B为连续两次查表操作涉及不同页面时的操作示意图;图4C为连续两次查表操作涉及相同页面时的操作示意图;图5为查表控制器在芯片内部的位置示意图;图6为本发明的表在存储器内占用存储空间示意图;图7A为页面镜像的表项配置和维护的写入操作示意图;图7B为页面镜像的表项查询的读出操作示意图;图7C为按页面存放多个表的表项配置和维护的写入操作示意图;图7D为按页面存放多个表的表项查询的读出操作示意图。
具体实施例方式
参阅图5所示,本发明所指的查表控制器是完成从用户侧简单的查表和表项配置及维护的界面,通过针对存储器特性的复杂存取控制过程,实现用户查表和表项配置与维护功能的处理部分。本发明的查表控制器是以分页式结构的动态存储器作为表的表项存储空间,并以地址为表项索引。查表控制器对表的配置/维护体现为对存储器的写入操作,对表的查询体现为对存储器的读取操作。查表控制器与其它功能逻辑模块之间为简单的用户查表与表项维护接口,表控制器与DRAM之间为复杂的数据读取与写入控制接口,查表控制器完成复杂的DRAM控制功能实现数据在DRAM的存取。
为了能够有效的避免连续访问相同的页面,本发明摒弃现有技术将所有存储空间作为统一的连续的存储空间来分配给一个或多个表的方式;本发明以将动态存储器的所有页面作为相互独立的非连续的存储空间,并且以页面为单位分配给所述表。在分配页面存储单位时,将总查表速度除以所采用的存储器的页面数,即获得平均每个页面分得的查表速度,然后根据表的查找速度需求,分配相应的页面,一个表占用多个页面时采用镜像的方式;查表控制器配置/维护及查询所述表的表项时轮流访问所述页面,并且后一次访问从不同于前一次访问结束时的页面开始。
例如某个采用DDR SDRAM的查表控制器,工作频率133MHz,突发设定为2,则每2个时钟可读取一次,由于写操作和刷新操作等频度低,即可近似得出总查表速度为133MHz/2 66M条每秒,总查表速度为66M,4页面,则每个页面的平均查找速度为16.5M。如某表需要40M的查找速度,40M/16.5M=2.4,则最少为该表分配3个页面,16.5M×3=49.5M,可以满足其查找速度需要;而某2个表总的查找速度和还小于16.5M,则可以共同占用一个页面。
本实施例中,根据每个表的查表速度占所有表总的查找速度的比例分配页面存储空间。对于查表速度超过第一查表速度的表(即需高速查询的表)采用表镜像的方式将一个表同时重复地存入多个不同的页面中,每个镜像的页面都存入相同的表内容,以满足页面轮换时查询同一个表的需要。对于查表速度低于第一查表速度并不小于第二查表速度的表(即要求查表速度一般的表)分配一个页面,并且使该表独占该页面。对查表速度低于第二查表速度的多个表(即要求查表速度低的表)存放于一个页面中,对页面的每一轮访问中只访问该多个表中的一个表。
下面结合图6对本发明的方式进行详细说明1、表项的存储空间分配方式1中只有1个表,采用镜像方式占用4个页面;方式2中表1占3/4的总查找速度,利用镜像方式占用3个页面,表2占1/4的总查找速度;方式3中表1、2、3、4平均占用总查找速度,各占一个页面;方式4中表1、2、3各占用1/4的总查找速度,表4、5则共同占用1/4的总查找速度,两个表合用一个页面,表4、5交替查询;方式5则为8页面结构的DRAM,采用牺牲总查找速度(降为1/2)而节约存储空间(2页面放一个表)的变通用法(采用本技术保证实时查找速度),表1占用页面0、1,表2占用页面2、3,表3占用页面4、5,表4占用页面6、7。本例没有采用页面镜像的方式,页面轮换时以两个页面为一组,按组进行轮流查找,同样达到回避连续访问相同页面的目的。
2、查找操作时采用页面轮流查找的方式,多个页面轮流查找,来避免读DRAM时出现连续访问相同页面的情况出现方式1中采用读表1(Bank0)→读表1复本1(Bank1)→读表1复本2(Bank2)→读表1复本3(Bank3)→读表1(Bank0)→......,连续查表1,不会出现连续访问相同页面的情况出现;方式2中采用读表1(Bank0)→读表1复本1(Bank1)→读表1复本2(Bank2)→读表2(Bank3)→读表1(Bank0)→......,连续查表却不会出现连续访问相同页面的情况出现,下面方式3、4、5效果相同;方式3中采用读表1(Bank0)→读表2(Bank1)→读表3(Bank2)→读表4(Bank3)→读表1(Bank0)→......;
方式4中采用读表1(Bank0)→读表2(Bank1)→读表3(Bank2)→读表4或表5(Bank3)→读表1(Bank0)→读表2(Bank1)→读表3(Bank2)→读表5或表4(Bank3)→读表1(Bank0)→......;方式5中可采用读表1(Bank0或Bank1)→读表2(Bank2或Bank3)→读表3(Bank4或Bank5)→读表4(Bank6或Bank7)→读表1(Bank0或Bank1)→......;配置/维护操作与查找操作同理。
参阅图7A、7B、7C、7D所示时序,图中A代表激活(Active),W代表写(Write),r代表行(Row),c代表列(Column),示例中采用自动关闭AutoPrecharge。时序图示例采用Burst Length=4(参见DDR SDRAM手册)。
图7A中,采用镜像方式,将同样的表项条目重复写入4个页面的相同位置,每次表项配置和更新必须同时将所有镜像的页面全部更新,以维护个镜像的一致性。由于重复的写入使得表项配置和维护的效率降低,但表项配置和维护的操作频率通常远低于查找操作,对查找速度的影响可以忽略。
图7B中,采用镜像方式,每次查表操作页面都轮换,但不影响查表结果。由于页面的轮流访问,使得连续相同页面的情况被避免,查表速度较高和有实时保证(即时刻都可以保证较高的查表速度,不会出现连续多次访问相同页面的速度明显降低情况)图7C中,按页面存放多个表,可以将各个表单独更新,互不影响。
图7D中,以页面为单位存表,轮流查各个表的操作时页面相应轮换。由于页面的轮流访问,使得连续相同页面的情况被避免,查表速度较高和有实时保证(即时刻都可以保证较高的查表速度,不会出现连续多次访问相同页面的速度明显降低情况)本实施例虽以DDR SDRAM为例对本发明进行描述,但并不限于此,本发明对目前常见的页面结构的DRAM,如SDR/DDR SDRAM、FCRAM、RLDRAM等都适用,其原理与上述相同。
权利要求
1.一种在动态存储器中实现查表控制器的方法,所述动态存储器(DRAM)为页面式存储结构,所述查表控制器以该结构的动态存储器为各表分配存储空间,并以地址为表的表项索引,查表控制器配置所述表体现为对存储器的写操作,查表控制器查询所述表体现为对存储器的读操作;其特征在于该方法为将动态存储器的所有页面作为非连续的存储空间为所述表分配页面;查表控制器配置和查询所述表的表项时轮流访问页面,并且后一次访问从不同于前一次访问结束时的页面开始。
2.如权利要求1所述的方法,其特征在于,当多个表共用存储器时,根据各个表的查询速度要求为表分配页面存储空间。
3.如权利要求2所述的方法,其特征在于,按每个表的查表速度占所有表总的查表速度的比例分配页面存储空间。
4.如权利要求1、2或3所述的方法,其特征在于,采用表镜像方式,将查表速度超过第一查表速度的表的镜像表分别存入多个页面存储空间中,并且每个镜像表的表项相同,使得在每一轮读取页面时,可以连续查询相同的表。
5.如权利要求4所述的方法,其特征在于,当对表和该表的镜像表中的任一表进行配置后刷新其余的表,使表和该表的镜像表的表项相同。
6.如权利要求4所述的方法,其特征在于,每一个表的所有表项不跨页面存储,只存放于一个页面存储空间中,与该表内容相同的镜像表存放于与该表不同的页面中,多个内容相同地镜像表则分别各自存放于不同的页面中,
7.如权利要求4所述的方法,其特征在于,为查表速度低于第一查表速度并不小于第二查表速度的表分配一个页面,并且使该表独占该页面。
8.如权利要求7所术的方法,其特征在于,将查表速度低于第二查表速度的多个表存放于一个页面中,对页面的每一轮访问中只访问该多个表中的一个表。
全文摘要
本发明公开了一种使用动态存储器的高性能查表控制器的实现方法,该方法为将所述动态存储器的各页面作为相互独立的非连续的存储空间,并且以页面为单位分配给所述表;结合表的镜像技术,使查表控制器配置/维护及查询所述表的表项时能够轮流访问所述页面,有效的回避了连续访问相同页面的情况出现。本发明能够避免因连续多次访问同一个页面而引入的开销,提高整体查表速度,并有效的保证了高速查表实时性。
文档编号G11C7/00GK1652251SQ20041000514
公开日2005年8月10日 申请日期2004年2月4日 优先权日2004年2月4日
发明者慕光 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1