CN100561588C - 一种提高ram读写效率的方法 - Google Patents
一种提高ram读写效率的方法 Download PDFInfo
- Publication number
- CN100561588C CN100561588C CNB2006100813036A CN200610081303A CN100561588C CN 100561588 C CN100561588 C CN 100561588C CN B2006100813036 A CNB2006100813036 A CN B2006100813036A CN 200610081303 A CN200610081303 A CN 200610081303A CN 100561588 C CN100561588 C CN 100561588C
- Authority
- CN
- China
- Prior art keywords
- read
- bank
- formation
- ram
- write
- 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
Images
Landscapes
- Static Random-Access Memory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通讯技术领域中一种提高RAM读写效率的方法,所述方法包括:首先,提供多个队列,按顺序存储各信元的地址和使用bank个数的信息;在每一时钟对各个队列中可以使用的RAM的bank依次进行搜索,直到搜索到第一个可用单元或搜索完本队列的全部单元停止;按照队列的顺序从所述该时钟搜索到的所有可用单元中搜索第一个与之前读/写操作不冲突的可用bank执行读/写操作。本发明有效规避了DDR-RAM读写操作中的bank冲突问题,提高了外部存储器读写效率,同时不增加额外的存储空间。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种提高RAM读写效率的方法。
背景技术
在对DDR_RAM(双倍数据读写RAM)进行操作时,受其条件限制,对同一bank(单元)的操作必须等待若干时间。以RLDRAM II(简化等待时间的DDR_RAM)为例,对于RLDRAM器件来说,其相关操作条件如下表所示。
从上表可以看出,即使是在200M时钟下,最少要等4个循环才能对同一个bank进行第二次操作。这样,对于某些字节的包长在按地址片外读/写操作时带来一定的困难。例如,对于RLDRAM器件,一个地址有8个bank。如果每一个包长都占用(8×N+1)个bank,则包与包之间就会消耗3个循环等待时间的bank浪费。如果N=1,读或写的bank利用率就只有9/12,这就会对需要进行大流量存储转发的操作带来较大的影响。上述操作过程还存在读写转换间隙和DDR-RAM刷新引起的bank浪费。
对于上述问题,当前提出了如下解决方案,包括:通过提高接口频率来补偿bank损失、或者是对前后报文进行拼包以减少冲突几率、或者是对各个地址的信元所占用的起始bank,即start_bank进行动态分配,等等。所述的通过提高接口频率来补偿带宽损失的方案,虽然提高了接口频率,但tRC值也相应的增大,结果又增加了更多的带宽浪费。
下面以Start_bank动态分配的技术为例,其实现原理是:将写操作的每个cell(信元)对应地址的Start_bank进行动态分配,以便避开tRC条件的限制。例如,有若干个包需要进行存储操作,如果第一个包占用的bank为3,第二个包占用的bank为4,第三个包占用的bank为8,则在操作RLDRAM第一个地址时,分配Start_bank为0;操作第二个地址时,分配Start_bank为3;操作第三个地址时,分配的Start_bank为7。这样,就可以在写RAM时,进行连续操作了,具体如下表所示:
Num | Cell_Length | Start Address | Start_bank | Operation bank Sequence |
Cell0 | 3banks | Address0 | 0 | 0,1,2 |
Cell1 | 4banks | Address1 | 3 | 3,4,5,6 |
Cell2 | 8banks | Address2 | 7 | 7,0,1,2,3,4,5,6 |
由上述叙述可知,该方案只能用在对RLDRAM或其它DDR-RAM的写操作上,不适用于读操作。如果写操作到读操作的转换时间相邻很近,则写操作用到的bank对后面读操作也会产生tRC的影响,进而影响读操作的性能。因此,如果要规避该问题,还需要在写操作选bank时判断所选bank是否与相邻的读操作bank冲突。即使解决了该问题,在读操作本身,如果读操作是按调度器进行QOS调度,也还是会存在bank冲突的可能。
上述Start_bank动态分配的方案的缺点在于:
(1)只适合写操作,不能解决读操作本身的tRC冲突;
在对DDRRAM进行读操作时,由于地址和Start_bank固定,无法动态分配,因而必然影响读操作效率。如果在缓存管理时采用指针回收的方案,则当Buffer满时,也同样会影响到写操作上。
(2)增加了额外存储空间;
由于在写操作时,对每个地址都分配了一个start_bank,因此在管理地址指针时,也同样需要把start_bank的信息进行存储,这就增加了额外的空间来存储该信息。
因此现有技术都无法从根本上解决或规避tRC造成的带宽浪费。
发明内容
本发明的目的在于提供一种有效提高RAM读写效率的方法。
本发明的目的是通过以下技术方案实现的:
一种提高RAM读写效率的方法,
A、提供多个队列,按顺序存储各信元的地址和使用单元个数的信息;
B、在每一时钟对各个队列中可以使用的RAM的单元依次进行搜索,直到搜索到第一个可用单元或搜索完本队列的全部单元停止;
C、按照队列的顺序从所述该时钟搜索到的所有可用单元中搜索第一个与之前读/写操作不冲突的可用单元执行读/写操作。
所述步骤B中搜索过程进一步包括:
判断读、写操作之间的相互影响、和/或读、写操作本身对后续读、写操作的影响。
所述方法还包括:
当一个队列中的所有单元都被用完,则将与所述队列相邻的后面队列中装载的信息装载到当前被用完的队列中。
在非工作时隙对所述队列进行更新操作。
当读/写操作中的流量对应的所有信元长度都小于行周期时间tRC要求的值,则结合拼包方法共同执行读/写操作。
所述方法适用于对带(bank)单元存储结构的RAM。
由上述本发明提供的技术方案可以看出,本发明有效规避了RAM读写操作中的bank冲突问题,提高了外部存储器读写效率,同时不增加额外的存储空间。
附图说明
图1为本发明所述方法原理图。
具体实施方式
本发明的核心思想是提供了一种有效规避RAM读写操作中bank冲突的方法,通过同时操作相邻多个cell,按顺序搜索需执行读/写操作的队列,对第一个搜索到的可使用的bank进行相应的读/写操作,有效提高了外部存储器的读/写效率。
本发明提供一种提高RAM读写效率的方法,本发明通过提供若干个queue(队列),按顺序存储各cell的地址和使用bank个数的信息,然后在每一个时钟对各个queue里能使用的RAM的bank依次进行搜索,找到第一个与之前读/写操作不冲突的可用bank后取出使用。当某个queue里的所有操作bank都被用完,则可将后面queue里的信息前推进行更新。
下面以对DDR-RAM的读操作为例,其SLOT(读/写操作时间段)周期为8,即连续8拍的读操作,RLDRAMII操作频率为300M,tRC=6;假设该操作提供的queue为3个,分别表示为q0、q1、q2;前一轮写操作对本轮读操作的影响为前2拍,其中第一拍影响到的bank:bank0、bank1,第二拍影响到的bank:bank1;当前有4个Cell需要进行读操作,各Cell所用bank数信息如下表所示:
cell | cell0 | cell1 | cell2 | Cell3 |
bank | 3 | 4 | 5 | 8 |
其操作原理参照图1,具体操作流程包括如下步骤:
开始有3个cell的信息被依次装入3个queue:cell0对应q0、cell1对应q1、cell2对应q2,对所述3个cell执行读操作;
首先所述的3个queue同时依次进行搜索,每个queue当搜索到与之前读/写操作不冲突的可用的bank后停止搜索,然后按照从q0到q2的顺序从所述搜索到的可用的bank中选择最先与之前读/写操作不冲突的可用的bank进行读操作;
在读操作的第一拍,以T0表示,由于写操作在第一拍影响到bank0和bank1,因此T0时刻读操作选出的第一与之前读/写操作不冲突的可用的bank为q0的bank2,即读出q0中bank2中的cell0的相应信息;如果考虑电路实现方面逻辑量较大,可以不考虑读写操作之间的相互影响,则对于queue的空判断及Cell信息的推进只要考虑q0即可,不需要考虑其它queue;
T1时刻,即读操作的第二拍,由于写操作影响到的为bank1,而q0的bank0不被限制,因此在按照上述方式进行搜索过程中,q0的bank0作为第一个被找到的与之前读/写操作不冲突的可用bank,被选出使用,即读出q0中bank0中的cell0对应信息;
T2时刻,即读操作的第三拍,此时写操作对读操作已无影响,在按照上述方式进行搜索过程中,读操作选出的bank为q0的bank1。
此时,q0对应的cell中所有有效bank已被读出,将后面queue信息依次前推,即将原q1中装载的cell1信息装载到q0中,q1中装载cell2的信息,q2中装载cell3的信息;对于queue的更新可以不实时进行,而是在非工作时隙进行,比如对读操作queue的更新在写操作时隙进行,对写操作queue的更新在读操作时隙进行;
T3时刻,由于前面读操作所选用bank的影响,且tRC=6,cell1占用4个bank,因此在按照上述方式进行搜索过程中,选出的bank为q0的bank3,读取cell1的对应信息;
T4时刻,由于前面读操作的影响,q0已无可用bank,此时按所述搜索顺序,选出q1的bank4,读取其中cell2的对应信息;
在T5时刻,由于tRC=6,q0和q1都无可用bank,此时选出q2的bank5,读取cell3的对应信息;
在T6时刻,由于对T0时刻的tRC限制已过,此时选出q0的bank2,读取cell1对应的信息;
在T7时刻,由于对T1时刻的tRC限制已过,此时选出q0的bank0,读取cell1对应的信息,此时读操作周期结束。
对于上述整个操作过程,用表格表示如下:
读操作时隙 | T0 | T1 | T2 | T3 | T4 | T5 | T6 | T7 |
操作选中的queue | q0 | q0 | q0 | q0 | q1 | q2 | q0 | q0 |
操作选中的bank | bank2 | bank0 | bank1 | bank3 | bank4 | bank5 | bank2 | bank0 |
操作对应cell | cell0 | cell0 | cell0 | cell1 | cell2 | cell3 | cell1 | cell1 |
上述操作中,如果流量对应的cell长度都比较短,如小于tRC要求的值,则此时需要结合拼包方案共同操作以提高性能。
写操作的操作原理同上,将相应的读取信息的操作改为相应的写信息的操作,本方法同样适用于其他带bank的RAM的操作。
综上所述,本发明有效规避了RAM读写操作中的bank冲突问题,提高了外部存储器读写效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (6)
1、一种提高RAM读写效率的方法,其特征在于,包括:
A、提供多个队列,按顺序存储各信元的地址和使用单元个数的信息;
B、在每一时钟对各个队列中可以使用的RAM的单元依次进行搜索,直到搜索到第一个可用单元或搜索完本队列的全部单元停止;
C、按照队列的顺序从所述该时钟搜索到的所有可用单元中搜索第一个与之前读/写操作不冲突的可用单元执行读/写操作。
2、如权利要求1所述的一种提高RAM读写效率的方法,其特征在于,所述步骤B中搜索过程进一步包括:
判断读、写操作之间的相互影响、和/或读、写操作本身对后续读、写操作的影响。
3、如权利要求1所述的一种提高RAM读写效率的方法,其特征在于,所述方法还包括:
当一个队列中的所有单元都被用完,则将与所述队列相邻的后面队列中装载的信息装载到当前被用完的队列中。
4、如权利要求3所述的一种提高RAM读写效率的方法,其特征在于,在非工作时隙对所述队列进行更新操作。
5、如权利要求1所述的一种提高RAM读写效率的方法,其特征在于,当读/写操作中的流量对应的所有信元长度都小于行周期时间tRC要求的值,则结合拼包方法共同执行读/写操作。
6、如权利要求1所述的一种提高RAM读写效率的方法,其特征在于,所述方法适用于带(bank)单元存储结构的RAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100813036A CN100561588C (zh) | 2006-05-16 | 2006-05-16 | 一种提高ram读写效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100813036A CN100561588C (zh) | 2006-05-16 | 2006-05-16 | 一种提高ram读写效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1983439A CN1983439A (zh) | 2007-06-20 |
CN100561588C true CN100561588C (zh) | 2009-11-18 |
Family
ID=38165906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100813036A Expired - Fee Related CN100561588C (zh) | 2006-05-16 | 2006-05-16 | 一种提高ram读写效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100561588C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096562A (zh) * | 2011-02-12 | 2011-06-15 | 华为技术有限公司 | 数据写入方法及装置 |
CN109491926B (zh) * | 2018-10-26 | 2023-03-28 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN115052042B (zh) * | 2022-06-07 | 2023-05-26 | 成都北中网芯科技有限公司 | 一种高性能多通道共享缓存的实现方法 |
-
2006
- 2006-05-16 CN CNB2006100813036A patent/CN100561588C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1983439A (zh) | 2007-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220187B (zh) | 一种缓存管理方法、装置及现场可编程门阵列 | |
CN100590609C (zh) | 一种基于非连续页的动态内存管理方法 | |
US7733892B2 (en) | Buffer management method based on a bitmap table | |
US20020105853A1 (en) | Memory access methods and devices for use with random access memories | |
CN101122886B (zh) | 分配缓存空间的方法和装置以及缓存控制器 | |
CN103425435B (zh) | 磁盘存储方法及磁盘存储系统 | |
US8281103B2 (en) | Method and apparatus for allocating storage addresses | |
US7111289B2 (en) | Method for implementing dual link list structure to enable fast link-list pointer updates | |
US10324959B2 (en) | Garbage collection in storage system | |
CN110058816B (zh) | 一种基于ddr的高速多用户队列管理器及方法 | |
CN101673246A (zh) | 一种高效的先进先出数据池读写方法 | |
CN103605478B (zh) | 存储地址标示、配置方法和数据存取方法及系统 | |
CN115052042B (zh) | 一种高性能多通道共享缓存的实现方法 | |
CN100561588C (zh) | 一种提高ram读写效率的方法 | |
CN108304259A (zh) | 内存管理方法及系统 | |
CN100377118C (zh) | 基于sram的嵌入式文件系统的实现方法 | |
CN109324979A (zh) | 3d闪存固态盘系统的数据缓存划分方法及数据分配方法 | |
CN101825997A (zh) | 一种异步先入先出存储器 | |
CN113126911B (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN103092771A (zh) | 固态储存装置及其高速缓存的控制方法 | |
CN101883046B (zh) | 一种应用于epon终端系统的数据缓存架构 | |
CN114911724B (zh) | 一种基于多bank的cache预取技术的访存结构 | |
CN105630697B (zh) | 一种利用mram存储小文件的存储装置 | |
CN115079957B (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: 20091118 Termination date: 20180516 |
|
CF01 | Termination of patent right due to non-payment of annual fee |