CN103823762B - 存储器随机查表方法、装置和系统 - Google Patents
存储器随机查表方法、装置和系统 Download PDFInfo
- Publication number
- CN103823762B CN103823762B CN201210467822.1A CN201210467822A CN103823762B CN 103823762 B CN103823762 B CN 103823762B CN 201210467822 A CN201210467822 A CN 201210467822A CN 103823762 B CN103823762 B CN 103823762B
- Authority
- CN
- China
- Prior art keywords
- logic
- thesaurus
- memorizer
- found
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种存储器随机查表方法、装置和系统,一种存储器随机查表方法包括:将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,所述待查找表包括多个表项;按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,所述从每个存储有所述待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复该步骤,直到将所有待读取的表项读取为止。用于提高进行随机查表时的数据访问效率。
Description
技术领域
本发明实施例涉及数据存储技术,尤其涉及一种存储器随机查表方法、装置和系统。
背景技术
第三代双数据率同步动态随机访问存储器(Double Data Rate,Synchronous Dynamic Random Access Memory,3rd generation,DDR3SDRAM)作为目前应用最广泛的外部存储器,在成本、带宽、功耗等领域都有巨大的优势。
DDR3 SDRAM存储体分为8个相互独立的逻辑存储库(Bank),每个Bank分为数行(Row),每行称之为一页(Page),每页又分为数列,数据存储在每一列(Column)中。需要在DDR3 SDRAM中访问数据时,首先需要根据数据所在的Bank地址和Row地址打开一个Page,然后根据数据所在的列地址读取数据,当需要读取同一Bank中另一Page内的数据时,需要在打开前一Page后间隔行循环时间(time of Row Cycling,tRC)后才能打开另一Page,并在另一Page中读取数据。当使用DDR3 SDRAM进行查表操作时,由于表项的数据量很小,读取表项数据所需的数据传输时间远小于tRC,造成使用DDR3 SDRAM进行查表操作时效率很低。
发明内容
本发明实施例提供一种存储器随机查表方法、装置和系统,用于提高进行随机查表时的数据访问效率。
第一方面,本发明实施例提供一种存储器随机查表方法,包括:
将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,所述待查找表包括多个表项;
按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,所述从每个存储有所述待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复该步骤,直到将所有待读取的表项读取为止。
在第一种可能的实现方式中,所述将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中之前,所述方法还包括:
获取打开同一个逻辑存储库的时间间隔参数和时钟周期,根据所述时间间隔参数和时钟周期确定存储所述待查找表的逻辑存储库的数量。
在第二种可能的实现方式中,所述将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中之前,所述方法还包括:
根据所述待查找表的容量确定所述逻辑存储库的容量;
根据所述表项的容量分别确定通过所述第一命令读取的第一突发数据的容量和通过所述第二命令读取的第二突发数据的容量。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第一命令为读取命令,所述第二命令为读后自动关闭命令。
第二方面,本发明实施例还提供一种存储器随机查表装置,包括:
复制单元,用于将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,所述待查找表包括多个表项;
处理单元,用于按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,所述从每个存储有所述待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复该步骤,直到将所有待读取的表项读取为止。
在第一种可能的实现方式中,进一步地,该装置还包括:
第一确定单元,与所述复制单元相连,用于获取打开同一个逻辑存储库的时间间隔参数和时钟周期,根据所述时间间隔参数和时钟周期确定存储所述待查找表的逻辑存储库的数量。
在第二种可能的实现方式中,进一步地,该装置还包括:
第二确定单元,与所述处理单元相连,用于根据所述待查找表的容量确定所述逻辑存储库的容量,根据所述表项的容量分别确定通过所述第一命令读取的第一突发数据的容量和通过所述第二命令读取的第二突发数据的容量。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述第一命令为读取命令,所述第二命令为读后自动关闭命令。
第三方面,本发明实施例还提供一种存储器随机查表系统,包括存储器,还包括:
如上所述的存储器随机查表装置。
第四方面,本发明实施例还提供一种存储器随机查表系统,包括存储器,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,还包括:
处理器,与所述存储器相连,用于将所述存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述待查找表包括多个表项;按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,所述从每个存储有所述待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复该步骤,直到将所有待读取的表项读取为止。
本发明实施例提供的存储器随机查表方法、装置和系统,通过使用Bank复制加双突发的访问方式对DDR3 SDRAM进行随机查表,避免了tFAW对数据访问效率的影响,显著提高了对DDR3 SDRAM进行随机查表时数据访问的效率。
附图说明
图1为采用一般数据读取方法对DDR3 SDRAM进行查表操作时的时序图;
图2为采用Bank复制加单突发访问对DDR3 SDRAM进行查表操作时的时序图;
图3为本发明实施例提供的存储器随机查表方法实施例一的流程图;
图4为本发明实施例提供的存储器随机查表方法实施例二的时序图;
图5为本发明实施例提供的存储器随机查表装置实施例一的结构示意图;
图6为本发明实施例提供的存储器随机查表装置实施例二的结构示意图;
图7为本发明实施例提供的存储器随机查表装置实施例三的结构示意图;
图8为本发明实施例提供的存储器随机查表系统实施例一的结构示意图;
图9为本发明实施例提供的存储器随机查表系统实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
DDR3 SDRAM的数据读取是采用长度为8比特(bit)的突发式访问,突发是指对指定地址的一次读取(Read,RD)命令,一次突发读取地址x至x+7共8个连续地址上的数据。并且,DDR3 SDRAM采用上升沿和下降沿的双沿采样,一次突发的数据传输占用4个时钟周期。DDR3 SDRAM根据规格的不同,目前主要分为宽度为8和宽度为16两种,对于宽度为8的DDR3SDRAM,一次突发会返回8×8=64bit的数据,对于宽度为16的DDR3SDRAM,一次突发会返回16×8=128bit的数据。同一时间只能对DDR3SDRAM进行一次突发访问。
DDR3 SDRAM一次典型的数据读取过程为:发送激活(Activate,ACT)命令和需要读取的数据的Bank地址和Row地址,根据该地址打开存储该数据的Bank中的Page,之后发送RD命令和需要读取数据的列地址,并读取数据,在同一个Bank中的同一个Page中,两次读取数据的命令之间需要间隔tCCD(time of CAS to CAS,两次读或写命令之间的等待时间),固定为4个时钟周期。若需要读取的多个数据的Bank地址和Row地址相同,则可以使用RD命令在一个Page中连续读取,但若需读取同一Bank中另一Page中的数据,需要从打开当前Page的ACT命令开始经历tRC后,再发送ACT命令打开同一Bank中的另一Page,并从另一Page中读取数据。若需读取另一Bank中另一Page中的数据,则需要从打开当前Bank中的当前Page的ACT命令开始经历tRRD后,再发送ACT命令打开另一Bank中的另一Page,并从另一Bank中的另一Page中读取数据。其中ACT命令需要占用一个时钟周期,RD命令需要占用一个时钟周期。
DDR3 SDRAM还存在一个行循环刷新时间(Time of Row Refresh Cycle,tRFC),由于动态存储器晶体管靠电容电量维持数据存储状态,电容电量无法长期保持,因此必须定期发送刷新命令为电容重新充电,这是DDR3SDRAM的固有属性,由于tRFC的存在一般会损失3%的效率。
在DDR3 SDRAM的随机查表领域,一个表项为一次读取需要读取的数据,一个表项的大小一般很小,如128bit、256bit等,每一表项的大小均相等,大量的表项通过随机分布形成一张表,所述表存储与DDR3 SDRAM中。查表操作即对DDR3 SDRAM中存储的表项进行读取,由于表项是随机存储的,在进行查表操作时需要读取的两个表项连续存储在同一个Bank中的同一个Page中的几率较低。在DDR3 SDRAM中使用ACT命令打开一个Bank中的一个Page后,到再次打开该Bank中的另一个Page需要间隔tRC,该时间为DDR3S DRAM的固有属性,并且tRC远远大于一次突发的数据传输所占用的4个时钟周期,例如,对于宽度为16,频率为800MHz的DDR3 SDRAM,tRC为39个时钟周期。因此,当使用一般数据读取方法在DDR3 SDRAM中进行随机查表操作时,最差情况下每次读取表项均存储于同一Bank中的不同的Page中时,数据读取的效率很低。
图1为采用一般数据读取方法对DDR3 SDRAM进行查表操作时的时序图,如图1所示,其中:
CLK表示系统时钟周期,对DDR3 SDRAM进行的各项操作均以系统时钟周期为单位进行表示,不同规格的DDR3 SDRAM每一系统时钟周期占用的时间可能不同;CMD表示对DDR3 SDRAM进行的操作,其中对于不同宽度、不同频率的DDR3 SDRAM,同一个操作所占用的时钟周期可能不同;BA表示读取数据的位置,以Bank编号来表示。设一张表存储于一个Bank中,每个表项均可以使用一次突发读取完毕。
首先,需要读取的数据存储于Bank 0中的Page 0中,发送ACT命令打开Bank 0中的Page 0,一个时钟周期后,发送RD命令读取数据,4个时钟周期后,数据读取完毕;若下一个需要读取的数据存储于Bank 0中的Page 1中,则从发送ACT命令开始经历从激活到关闭时间(Time of ACT toPrecharge,tRAS)后,发送关闭(Precharge,PRE)命令关闭Page 0,PRE命令占用一个时钟周期;从打开Page 0的ACT命令开始,经历tRC后,发送ACT命令打开Bank 0中的Page1,一个时钟周期后,发送RD命令读取下一个数据。依次进行上述操作直至查表操作完成。
其中,RD、ACT、PRE命令所占用的系统时钟周期对于不同规格的DDR3SDRAM均是相同的,tRAS、tRC为系统的固有属性,对于不同规格的DDR3SDRAM可能不同,但tRC均大于tRAS。
使用本实施例的方法进行随机查表操作,不考虑tRFC的影响,最差情况下当每次需要读取的表项均存储于不同的Page中时,数据访问的效率为一次突发占用的时钟周期与tRC占用的时钟周期的比值。对于宽度为16,频率为800MHz的DDR3 SDRAM,一次突发的数据传输占用4个时钟周期,tRC占用39个时钟周期,因此数据访问效率仅为4/39≈10.2%。
为了解决采用一般数据读取方法对DDR3 SDRAM进行查表操作时效率过低的问题,目前一般在进行查表操作时采用Bank复制的方法来提高数据访问效率。
图2为采用Bank复制加单突发访问对DDR3 SDRAM进行查表操作时的时序图,如图2所示,其中:
CLK表示系统时钟周期,对DDR3 SDRAM进行的各项操作均以系统时钟周期为单位进行表示,不同规格的DDR3 SDRAM每一系统时钟周期占用的时间可能不同;CMD表示对DDR3 SDRAM进行的操作,其中对于不同宽度、不同频率的DDR3SDRAM,同一个操作所占用的时钟周期可能不同;BA表示读取数据的位置,以Bank编号来表示。设一张表存储于一个Bank中,每个表项均可以使用一次突发读取完毕。
首先,将存储于Bank 0中的表进行复制,并分别存储于其他Bank中,复制后其他Bank存储的表中相同的表项的地址仅有Bank地址不同,Row地址和行地址均相同。进行完Bank复制后,进行数据读取,先从Bank 0中读取数据,若第一次需要读取的数据A存储于Bank 0中的Page 0中,则发送ACT命令打开Bank 0中的Page 0,一个时钟周期后,发送读后自动关闭(Read with Auto Precharge,RDAP)命令读取数据A并自动关闭Bank 0,4个时钟周期后,数据A读取完毕并关闭Bank 0;若第二次需要读取的数据B存储于Bank 0中的Page 1中,由于已将Bank 0中的表进行了复制,因此,从Bank 1中的Page 1中读取数据B,从打开Bank 0中的Page 0的ACT命令开始经历tRRD后,发送ACT命令打开Bank 1中的Page 1,一个时钟周期后,发送RDAP命令读取数据B并自动关闭Bank 1,4个时钟周期后,数据B读取完毕并关闭Bank 1。按照上述方法依次从Bank 2中读取数据C,从Bank 3中读取数据D。当从Bank 3中读取完数据D后,由于已打开Bank0~Bank 3共四个Bank,需要从打开Bank 0中Page 0的ACT命令开始经历tFAW后,才可以继续打开下一个Bank。依次进行上述操作直至查表操作完成。
其中,RDAP、ACT、PRE命令所占用的系统时钟周期对于不同规格的DDR3 SDRAM均是相同的,tRRD、tFAW为系统的固有属性,对于不同规格的DDR3 SDRAM可能不同,但tFAW远大于tRRD。
使用本实施例的方法进行随机查表操作,不考虑tRFC的影响,数据访问的效率为四次突发占用的时钟周期与tFAW占用的时钟周期的比值。对于宽度为16,频率为800MHz的DDR3 SDRAM,一次突发的数据传输占用4个时钟周期,tFAW占用32个时钟周期,因此数据访问效率为16/32=50%。
由此可见,采用Bank对DDR3 SDRAM进行查表操作,可以提高数据访问的效率,但由于tFAW的影响,效率仍然偏低。
图3为本发明实施例提供的存储器随机查表方法实施例一的流程图,如图3所示,本实施例的方法包括:
步骤S101,将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,待查找表包括多个表项。
具体地,本实施例的存储器为DDR3 SDRAM,本实施例提供的随机查表方法用于当待查找表的容量小于DDR3 SDRAM中的一个Bank时使用。DDR3SDRAM一共包括8个独立的Bank,每个Bank的容量相同,例如一个DDR3SDRAM的容量为2Gbit,则该DDR3 SDRAM中每一个Bank的容量均为256Mbit。当待查找表的容量小于一个Bank的容量时,该待查找表可以存储于一个独立的Bank中。根据DDR3 SDRAM规格的不同,首先使用Bank复制的方法,将存储与一个独立Bank中的待查找表复制到DDR3 SDRAM的其他多个Bank中,Bank复制的数量根据DDR3 SDRAM规格的不同有所区别。DDR3 SDRAM的每个Bank中包括多个Page,每个Page中包括多个列,待查找表包括多个表项,表项分别随机存储于一个Bank中的不同列中。
步骤S102,按照预设顺序依次从每个存储有待查找表的逻辑存储库中读取表项,从每个存储有待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复该步骤,直到将所有待读取的表项读取为止。
具体地,本实施例提供的随机查表方法用于当待查找表中的每一表项都需要进行两次突发访问读取时使用。本实施例采用双突发访问方式读取数据,即打开一个Bank中的一个Page后,在该Page中进行两次突发访问,读取两次突发数据后关闭该Page,再打开另一Bank中的另一Page,在另一Page中进行两次突发访问,读取两次突发数据后关闭另一Page,依次进行直到将所有需要读取的数据读取完毕为止。步骤S101中根据DDR3 SDRAM规格的不同,将待查找表复制到了多个Bank中,本步骤中按照预设的顺序依次读取多个Bank中的数据。该预设的顺序可以为:DDR3 SDRAM的Bank均有Bank编号,从Bank 0到Bank 7,可以按照Bank编号由小到大的顺序依次循环读取每一Bank中的数据,例如:待查找表经复制后存储于Bank 0至Bank 4共5个Bank中,则读取顺序依次为Bank 0、Bank 1、Bank 2、Bank 3、Bank 4、Bank0…。首先打开Bank 0中的Page 0,通过第一命令读取第一突发数据,再通过第二命令读取第二突发数据并关闭Bank 0中的Page 0,第一突发数据和第二突发数据为待查找表中的待查找表项A,然后打开Bank 1中的Page 1,通过第一命令读取第三突发数据,再通过第二命令读取第四突发数据并关闭Bank 1中的Page 1,第三突发数据和第四突发数据为待查找表中的待查找表项B,依次顺序读取待查找表中的待查找表项直至完成查表操作。
本实施例采用Bank复制加双突发访问的方式对DDR3 SDRAM进行随机查表操作,与图2所示实施例采用Bank复制加单突发访问方式相比,打开每一Bank后的数据传输时间为8个时钟周期,这样打开4个Bank并读取数据后,数据传输共占用32个时钟周期,接近打开4个Bank后需要等待的时间tFAW,从而提高了数据读取的效率。对于宽度为16,频率为800MHz的DDR3SDRAM,一次突发占用4个时钟周期,tFAW占用32个时钟周期,在不考虑tRFC影响的情况下,数据访问效率为4×4×2/32=100%。
本实施例,通过使用Bank复制加双突发的访问方式对DDR3 SDRAM进行随机查表,避免了tFAW对数据访问效率的影响,显著提高了对DDR3SDRAM进行随机查表时数据访问的效率。
图4为本发明实施例提供的存储器随机查表方法实施例二的时序图,如图4所示,其中:
CLK表示系统时钟周期,对DDR3 SDRAM进行的各项操作均以系统时钟周期为单位进行表示,不同规格的DDR3 SDRAM每一系统时钟周期占用的时间可能不同;CMD表示对DDR3 SDRAM进行的操作,其中对于不同宽度、不同频率的DDR3 SDRAM,同一个操作所占用的时钟周期可能不同;BA表示读取数据的位置,以Bank编号来表示。设一张表存储于一个Bank中,每个表项均需使用两次突发进行读取。
首先,将存储于Bank 0中的表进行复制,并分别存储于其他Bank中,复制后其他Bank存储的表中相同的表项的地址仅有Bank地址不同,Row地址和行地址均相同。进行完Bank复制后,进行数据读取,先从Bank 0中读取数据,若第一次需要读取的表项A存储于Bank 0中的Page 0中,则发送ACT命令打开Bank 0中的Page 0,一个时钟周期后,发送RD命令读取数据A1,4个时钟周期后,数据A1读取完毕,并且时间间隔满足tCCD,发送RDAP命令读取数据A2并自动关闭Bank 0,4个时钟周期后,数据A2读取完毕并关闭Bank 0,数据A1和数据A2即为表项A;若第二次需要读取的表项B存储于Bank 0中的Page 1中,由于已将Bank 0中的表进行了复制,因此,从Bank 1中的Page 1中读取表项B,判断从打开Bank 0中的Page 0的ACT命令开始经历时间不小于tRRD后,发送ACT命令打开Bank1中的Page 1,一个时钟周期后,发送RD命令读取数据B1,4个时钟周期后,数据B1读取完毕,并且时间间隔满足tCCD,发送RDAP命令读取数据B2并自动关闭Bank 1,4个时钟周期后,数据B2读取完毕并关闭Bank 1,数据B1和数据B2即为表项B。按照上述方法依次从Bank 2中读取表项C,从Bank 3中读取表项D。当从Bank 3中读取完表项D后,由于已打开Bank0~Bank 3共四个Bank,需要从打开Bank 0中Page 0的ACT命令开始经历tFAW后,才可以继续打开下一个Bank,判断从打开Bank 0中Page 0的ACT命令开始经历时间不小于tFAW后,发送ACT命令打开下一个Bank。依次进行上述操作直至查表操作完成。
其中,RDAP、ACT、PRE命令和tCCD所占用的系统时钟周期对于不同规格的DDR3 SDRAM均是相同的,tRRD、tFAW为系统的固有属性,对于不同规格的DDR3 SDRAM可能不同,但tFAW远大于tRRD。
本实施例采用Bank复制加双突发访问的方式对DDR3 SDRAM进行随机查表操作,与图2所示实施例采用Bank复制加单突发访问方式相比,打开每一Bank后的数据传输时间为8个时钟周期,这样打开4个Bank并读取数据后,数据传输共占用32个时钟周期,接近打开4个Bank后需要等待的时间tFAW,从而提高了数据读取的效率。对于宽度为16,频率为800MHz的DDR3SDRAM,一次突发占用4个时钟周期,tFAW占用32个时钟周期,在不考虑tRFC影响的情况下,数据访问效率为4×4×2/32=100%。
本实施例,通过使用Bank复制加双突发的访问方式对DDR3 SDRAM进行随机查表,避免了tFAW对数据访问效率的影响,显著提高了对DDR3SDRAM进行随机查表时数据访问的效率。
进一步地,由于tRC的影响,图3和图4所示实施例中,打开第四个Bank后可能不能继续打开第一个Bank,而需要打开第五个Bank。因此,在进行Bank复制时需要判断需要进行Bank复制的Bank数量。由于在一个Bank中进行双突发访问的数据传输时间共占用8个时钟周期,因此,取不小于tRC/8的整数Z为总共需要参与数据读取的Bank,即读取第一个Bank开始到读取完第Z个Bank后,由于经历的时间不小于tRC,可以再次读取第一个Bank。因此,在采用Bank复制加双突发访问对DDR3 SDRAM进行随机查表操作时,最少需要复制的Bank数量为不小于(tRC/8)-1的整数。通过对tRC的判断确定Bank复制的数量,可以在确保数据访问效率的前提下,避免复制过多的待查找表到空余的Bank中,从而可以节约系统资源。
进一步地,由于本发明提供的存储器随机查表方法当待查找表的容量不大于一个Bank的容量,并且待查找表中一个表项需要通过两次突发才能读取时,才能够显著提高数据访问效率。因此,在使用本发明提供的存储器随机查表方法对DDR3 SDRAM进行随机查表之前,首先需要对待查找表的容量和表项的容量进行判断,选择适合规格的DDR3 SDRAM。DDR3 SDRAM分为宽度为8和宽度为16两种,其中宽度为8的DDR3 SDRAM一次突发可以读取64bit的数据,宽度为16的DDR3 SDRAM一次突发可以读取128bit的数据,因此,当待查找表中的每一表项容量为64bit至128bit时,选择宽度为8的DDR3 SDRAM,当待查找表中的每一表项容量为128bit至256bit时,选择宽度为16的DDR3 SDRAM,则采用本发明Bank复制加双突发的访问方式对DDR3 SDRAM进行随机查表可以提高数据访问效率。同时,DDR3SDRAM分为8个独立的Bank,每个Bank的容量相同,因此选择每一Bank的容量大于待查找表的DDR3 SDRAM,则采用本发明Bank复制加双突发的访问方式对DDR3 SDRAM进行随机查表可以提高数据访问效率。
本发明提供的存储器随机查表方法一个具体实施场景为:需要对一张容量为256Mbit,每一表项为128bit的表进行随机查表操作。
由于待查找表容量为256Mbit,256Mbit×8=2Gbit,因此选择2Gbit的DDR3 SDRAM;由于每一表项为128bit,128bit/2=64bit,因此选择宽度为8的DDR3 SDRAM。由于宽度为8的800MHz的DDR3 SDRAM,tRC为39个时钟周期,复制4个Bank后数据访问效率最高,因此,选择宽度为8,频率为800MHz,容量为2Gbit的DDR3 SDRAM进行随机查表操作。
宽度为8,频率为800MHz的DDR3 SDRAM,tFAW为24个时钟周期,采用Bank复制加双突发访问读取4个Bank中的数据的数据传输时间总共占用32个时钟周期,大于tFAW,因此,读取完第四个Bank后可以直接读取第五个Bank中的数据。tRC为39个时钟周期,39/8=4.875,因此一共需要循环读取5个Bank中的数据,进行Bank复制时,将待查找表一共存储在5个Bank中。这样,当读取完第五个Bank中的数据后,可以立即读取第一个Bank中的数据。如此,可以连续读取数据而避免了等待时间,可以达到理论上最高的数据读取效率。根据上述数据进行计算,考虑tRFC等因素的影响,使用本发明提供的存储器随机查表方法,每秒可以进行95M次以上的查表访问。
需要说明的是,本发明提供的存储器随机查表方法,针对表项大小为64bit至256bit的随机查表领域,在实际应用中,网络查表领域的表项大小一般为128bit或256bit,因此本发明提供的存储器随机查表方法应用在网络查表领域可以大幅度地提高数据访问效率。
图5为本发明实施例提供的存储器随机查表装置实施例一的结构示意图,如图5所示,存储器随机查表装置包括:
复制单元51,用于将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,待查找表包括多个表项。
处理单元52,用于按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,从每个存储有待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复该步骤,直到将所有待读取的表项读取为止。
本实施例的存储器随机查表装置用于实现图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明实施例提供的存储器随机查表装置实施例二的结构示意图,如图6所示,本实施例的存储器随机查表装置在图5的基础上,还包括:
第一确定单元53,与复制单元51相连,用于获取打开同一个逻辑存储库的时间间隔参数和时钟周期,根据所述时间间隔参数和时钟周期确定存储待查找表的逻辑存储库的数量。
本实施例通过设置第一确定单元,根据打开同一个逻辑存储库的时间间隔参数和时钟周期确定需复制的逻辑存储库的数量,可以在确保数据访问效率的前提下,避免复制过多的待查找表到空余的Bank中,从而可以节约系统资源。
图7为本发明实施例提供的存储器随机查表装置实施例三的结构示意图,如图7所示,本实施例的存储器随机查表装置在图6的基础上,还包括:
第二确定单元54,与处理单元52相连,用于根据表项的容量分别确定通过第一命令读取的第一突发数据的容量和通过第二命令读取的第二突发数据的容量,根据待查找表的容量确定逻辑存储库的容量。
本实施例通过设置第二确定单元,根据表项的容量和待查找表的容量确定所需使用的DDR3 SDRAM的规格,可以使用最为合适DDR3 SDRAM进行随机查表操作,提高了资源利用率。
进一步地,图5至图7所示实施例中,第一命令为读取命令,所述第二命令为读后自动关闭命令。
图8为本发明实施例提供的存储器随机查表系统实施例一的结构示意图,如图8所示,本实施例提供的存储器随机查表系统包括:
存储器81,用于存储数据,本实施例中,存储器81为DDR3 SDRAM。
存储器随机查表装置82,存储器随机查表装置82为图5至图7所示存储器随机查表装置中的任一种。
本实施例的存储器随机查表系统,通过使用Bank复制加双突发的访问方式对DDR3 SDRAM进行随机查表,避免了tFAW对数据访问效率的影响,显著提高了对DDR3 SDRAM进行随机查表时数据访问的效率。
图9为本发明实施例提供的存储器随机查表系统实施例二的结构示意图,如图9所示,本实施例提供的存储器随机查表系统包括:
存储器91,存储器91包括多个Bank,每个Bank包括多个Page。
处理器92,与存储器91相连,用于将存储器91的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,待查找表包括多个表项;按照预设顺序依次从每个存储有待查找表的逻辑存储库中读取表项,从每个存储有待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复该步骤,直到将所有待读取的表项读取为止。
本实施例的存储器随机查表系统,通过使用Bank复制加双突发的访问方式对DDR3 SDRAM进行随机查表,避免了tFAW对数据访问效率的影响,显著提高了对DDR3 SDRAM进行随机查表时数据访问的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种存储器随机查表方法,其特征在于,包括:
将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,所述待查找表包括多个表项;
按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,所述从每个存储有所述待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复所述从每个存储有所述待查找表的逻辑存储库中读取表项的步骤,直到将所有待读取的表项读取为止。
2.根据权利要求1所述的存储器随机查表方法,其特征在于,所述将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中之前,所述方法还包括:
获取打开同一个逻辑存储库的时间间隔参数和时钟周期,根据所述时间间隔参数和时钟周期确定存储所述待查找表的逻辑存储库的数量。
3.根据权利要求1所述的存储器随机查表方法,其特征在于,所述将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中之前,所述方法还包括:
根据所述待查找表的容量确定所述逻辑存储库的容量;
根据所述表项的容量分别确定通过所述第一命令读取的第一突发数据的容量和通过所述第二命令读取的第二突发数据的容量。
4.根据权利要求1-3任一所述的存储器随机查表方法,其特征在于:所述第一命令为读取命令,所述第二命令为读后自动关闭命令。
5.一种存储器随机查表装置,其特征在于,包括:
复制单元,用于将存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,所述待查找表包括多个表项;
处理单元,用于按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,所述从每个存储有所述待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复所述从每个存储有所述待查找表的逻辑存储库中读取表项的步骤,直到将所有待读取的表项读取为止。
6.根据权利要求5所述的存储器随机查表装置,其特征在于,还包括:
第一确定单元,与所述复制单元相连,用于获取打开同一个逻辑存储库的时间间隔参数和时钟周期,根据所述时间间隔参数和时钟周期确定存储所述待查找表的逻辑存储库的数量。
7.根据权利要求5所述的存储器随机查表装置,其特征在于,还包括:
第二确定单元,与所述处理单元相连,用于根据所述待查找表的容量确定所述逻辑存储库的容量,根据所述表项的容量分别确定通过所述第一命令读取的第一突发数据的容量和通过所述第二命令读取的第二突发数据的容量。
8.根据权利要求5-7任一所述的存储器随机查表装置,其特征在于:所述第一命令为读取命令,所述第二命令为读后自动关闭命令。
9.一种存储器随机查表系统,包括存储器,其特征在于,还包括:
如权利要求5-8任一所述的存储器随机查表装置。
10.一种存储器随机查表系统,包括存储器,所述存储器包括多个逻辑存储库,每个逻辑存储库包括多个页,其特征在于,还包括:
处理器,与所述存储器相连,用于将所述存储器的一个逻辑存储库中的待查找表复制到其他多个逻辑存储库中,其中,所述待查找表包括多个表项;按照预设顺序依次从每个存储有所述待查找表的逻辑存储库中读取表项,所述从每个存储有所述待查找表的逻辑存储库中读取表项具体为:根据待读取的表项的地址,打开所述逻辑存储库的一个页,通过第一命令读取第一突发数据,通过第二命令读取第二突发数据后将所述逻辑存储库关闭;重复所述从每个存储有所述待查找表的逻辑存储库中读取表项的步骤,直到将所有待读取的表项读取为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210467822.1A CN103823762B (zh) | 2012-11-19 | 2012-11-19 | 存储器随机查表方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210467822.1A CN103823762B (zh) | 2012-11-19 | 2012-11-19 | 存储器随机查表方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103823762A CN103823762A (zh) | 2014-05-28 |
CN103823762B true CN103823762B (zh) | 2016-08-31 |
Family
ID=50758843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210467822.1A Expired - Fee Related CN103823762B (zh) | 2012-11-19 | 2012-11-19 | 存储器随机查表方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103823762B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI587133B (zh) * | 2016-05-20 | 2017-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置之資料頁對齊方法及其查找表的製作方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851669A (zh) * | 2005-09-07 | 2006-10-25 | 深圳市海思半导体有限公司 | 一种提高存储器访问效率的方法及存储器控制器 |
CN101021814A (zh) * | 2007-03-16 | 2007-08-22 | 华为技术有限公司 | 存储、查询方法及存储控制器和查询系统 |
CN102708059A (zh) * | 2012-05-10 | 2012-10-03 | Ut斯达康通讯有限公司 | 提高sdram数据传输效率的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120109841A (ko) * | 2011-03-28 | 2012-10-09 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
-
2012
- 2012-11-19 CN CN201210467822.1A patent/CN103823762B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851669A (zh) * | 2005-09-07 | 2006-10-25 | 深圳市海思半导体有限公司 | 一种提高存储器访问效率的方法及存储器控制器 |
CN101021814A (zh) * | 2007-03-16 | 2007-08-22 | 华为技术有限公司 | 存储、查询方法及存储控制器和查询系统 |
CN102708059A (zh) * | 2012-05-10 | 2012-10-03 | Ut斯达康通讯有限公司 | 提高sdram数据传输效率的方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的支持切换Bank的SDRAM控制器设计;武文杰 等;《信息技术》;20060323;第30卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103823762A (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3433860B1 (en) | Fine granularity refresh | |
CN103544988B (zh) | 控制刷新周期的半导体存储器件、存储系统及其操作方法 | |
CN104981872B (zh) | 存储系统 | |
CN103811048B (zh) | 一种混合存储器结构的低功耗刷新方法 | |
CN102436427B (zh) | 一种数据读写方法和存储设备 | |
CN103915110A (zh) | 一种易失存储器的刷新方法及相关的易失存储器的控制器 | |
CN102081964A (zh) | 动态随机访问存储器刷新的方法和系统 | |
CN104850501B (zh) | 一种ddr存储器访存地址映射方法及访存地址映射单元 | |
CN101702326B (zh) | 内存控制器 | |
CN105280215A (zh) | 动态随机存取存储器dram的刷新方法、设备以及系统 | |
CN107220187A (zh) | 一种缓存管理方法、装置及现场可编程门阵列 | |
CN106856098B (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
CN104360825B (zh) | 一种混合内存系统及其管理方法 | |
CN103019974B (zh) | 存储器访问处理方法及控制器 | |
CN104143355B (zh) | 一种刷新动态随机存取存储器的方法和装置 | |
US20170236566A1 (en) | Data transfer for multi-loaded source synchrous signal groups | |
CN102945213A (zh) | 一种基于fpga的乱序内存控制器及其实现方法 | |
CN103164343A (zh) | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 | |
CN108701105A (zh) | 将片选信号用于双列直插式存储器模块的技术 | |
US9514800B1 (en) | DRAM and self-refresh method | |
CN110347621A (zh) | 与psram存储器连接的fpga及存储系统 | |
CN105487988B (zh) | 基于存储空间复用提高sdram总线有效访问速率的方法 | |
CN104461956A (zh) | 访问同步动态随机访问存储器的方法、装置及系统 | |
CN103823762B (zh) | 存储器随机查表方法、装置和系统 | |
CN101848150B (zh) | 维护多播计数器的计数值的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160831 Termination date: 20181119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |