CN1581104A - 一种动态存储器的访问方法 - Google Patents
一种动态存储器的访问方法 Download PDFInfo
- Publication number
- CN1581104A CN1581104A CNA031541356A CN03154135A CN1581104A CN 1581104 A CN1581104 A CN 1581104A CN A031541356 A CNA031541356 A CN A031541356A CN 03154135 A CN03154135 A CN 03154135A CN 1581104 A CN1581104 A CN 1581104A
- Authority
- CN
- China
- Prior art keywords
- page
- packet
- access
- address
- controller
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种动态存储器的访问方法,所述动态存储器(DRAM)为页面式的存储结构,由控制器控制数据包的存取操作,该方法为:将待存取的数据包分解为与所述动态存储器的多个页面相对应的子数据包;由控制器顺序地访问所述多个页面,并且每次访问向不同于上次访问的页面写入一个所述子数据包或从不同于上次访问的页面读取相应的子数据包。
Description
技术领域
本发明涉及存储器技术,尤其涉及一种动态存储器的访问方法。
背景技术
目前常见的动态存储器(DRAM,如:DDR SDRAM、SDR SDRAM)通常采用页面式的存储结构,如图1所示。例如DDR(双倍数据率)/SDR(单倍数据率)SDRAM(同步动态存储器)是4页面(Bank)结构,页面中分行(Row)结构和列(Column)结构,便于地址复用和内部任务的分解处理。
常见的DRAM存取操作过程如图2所示,一般包括:(1)选中和打开某一页面的某一行,DDR/SDR SDRAM采用激活(Active)命令;(2)对已激活的行,按列地址进行读写操作;(3)将处于开启状态的行关闭(Precharge,另:自动关闭(Autoprecharge)虽然是由存储器自动完成,但是过程依然存在,下面以非自动关闭为例阐述,自动关闭过程同理),否则无法对其他行进行操作。
现有的SDR/DDR SDRAM控制器,通常是按照SDRAM的正常操作顺序(激活-->读/写-->关闭)对每个需要读写的整包进行存取,即每个包的存取都是按激活相应页面的相应行,然后进行整个包的读取或写入,然后将该行关闭(Precharge),完成一次读/写操作;由于对SDRAM的激活和关闭都需要一定的命令周期,这就难免会对数据的存取引入开销,影响效率,降低带宽,如图3A所示,同页面访问引入的激活和关闭开销;图3B所示,同页面访问周期可能引入附加的开销。
目前,性能较高的控制器普遍采用预激活的方式来尽可能避免这种开销的引入,这种方式便是利用SDRAM的分页面特性,当激活或关闭某一个页面的同时;可以对其他页面(此页面需在已激活状态)进行读/写操作,也可以说当在对某个页面(此页面需在已激活状态)进行读/写操作的同时,对其他页面进行激活和关闭操作,利用这种特性,对下一次的读写操作进行提前激活,并且在对当前页面的读/写操作结束的关闭的时间即开始对已预激活的页面进行读/写操作,通过这样的方式可以有效的节省激活和关闭带来的开销,提高效率,如图3C所示。
根据DRAM的页面访问特性,在访问完成(以结束激活状态为标志)某一页面,可能不能立即再次访问该页面,而必须等待一个相当长的恢复时间(即同页面访问周期),如某款DDR SDRAM的同Bank访问周期为65ns,在此时间内只能对其他页面进行访问,同时另一方面,再次访问相同页面时,需要经过关闭过程和重新激活过程,从而导致连续的同页面访问势必引入大量的等待开销,影响带宽和效率。而常见DRAM的多页面结构即是出于对回避这种开销而设计的。
目前对DRAM的访问主要有两种技术方案:
技术方案一:通常按照DRAM的基本存取过程进行读写控制,将需要存入和读取的数据包,连续写入或读取某个页面的某一行,当执行到该行的结束时才进行换行(将原行关闭,发起新的激活->读/写->关闭操作),将该数据包的剩余部分从新的一行顺序的写入或读出,从而完成对整个数据包的存取操作。有的应用需要将整个数据包进行分段存取(例如流量控制,数据包按照一段的带宽存取),发起多个激活->读/写->关闭操作,将整个数据包分时分段写入和读取,但此时数据包依然是顺序的存放在某个页在的某一行,放不下时另起一行接续。以某DDR SDRAM为例,其行地址为13bit,Bank地址2bit,列地址9bit,则控制器对内侧逻辑模块的简单功能接口的地址(为13+2+9=24bit,其中高13bit对应SDRAM的行地址,中2bit对应SDRAM的Bank地址,低9bit对应SDRAM的列地址,则实现存取控制的时序如图4A、4B、4C所示,以写入为例,读出同理。图中A代表激活操作(Active),w代表写操作(Write),P代表关闭(Precharge),R代表行地址(Row address),C代表列地址(Column address);设定DDR SDRAM的Burst length参数=4(参考DDR SDRAM数据手册);黑色部分表示上次操作的延续。图4A为数据包跨行存入,跨行由于是不同页面间,采用了提前激活页面Bank0,因此没有引入开销,保证效率;图4B为不同数据包存入不同页面,两个数据包由于是不同页面间,采用提前激活页面Bank3,没有引入开销,保证效率;图4C为不同数据包存入同页面,两个数据包由于是存入同页面,重新关闭和激活引入开销,效率下降。
对于同页面(Bank)访问,该方案采用自然等待(如果遇到则加入开销进行等待)没有回避措施,即按随机的概率分布来说,本次操作需要访问的页面与上一次访问的页面相同的概率为1/页面数(即对与DDR/SDR SDRAM为1/4=25%),在带宽要求不高时,可认为为小概率,影响可以接受,直接采用等待(等待满足同bank访问周期的时间,此时空闲,带宽浪费)的方式来满足同页面访问问题。
技术一有以下缺点:
1、由于同页面访问周期限制带来等待开销,影响带宽;
2、存在同页面访问频繁出现的概率,此时对带宽抑制严重。
与本发明相关的现有技术二(如没有则1.3节不需提供,有更多则新建1.4节等)
技术方案二:由于技术方案一固有的缺点,本方案增加了一些回避技术来改善,即采用预存方法,将出现同页面访问限制的数据包(或数据段)进行DRAM外部缓存,先将下一个数据包(或数据段)进行处理,然后再从外部缓存中取出因同页面访问而滞留未完成的数据包(或数据段),将其推迟完成,如某几个数据包(或数据段)连续操作为读页面Bank0第n行-->读页面Bank0第m行-->读页面Bank3第x行,使本方案的控制器则转为读页面Bank0第n行-->读页面Bankl第x行(同时缓存读Bank0第m行的数据包)-->读页面Bank0第m行。也就是说调整数据包(或数据段)的存取顺序,来尽量避免同页面操作,而其它处理同技术方案一。
虽然技术方案二在一定程序上能避免连续对同页面操作,但存在以下不足:
1、需要复杂的同Bank访问碰撞的管理,和存取控制,硬件实现复杂和耗费资源;
2、需要一系列DRAM外部缓存和相应的管理,硬件实现复杂和耗费资源;
3、在连续的多次的同页面访问操作时,依然会出现同页面访问的限制和必要的等待。
发明内容
本发明的目的在于提供一种动态存储器的访问方法,以解决现有技术中访问动态存储器存在较大开销的问题。
一种动态存储器的访问方法,所述动态存储器为页面式的存储结构,由控制器控制数据段的存取操作,该方法包括步骤:
将待存取的数据包分解为与所述动态存储器的多个页面相对应的子数据包;
由控制器顺序地访问所述多个页面,并且每次访问向不同于上次访问的页面写入一个所述子数据包或从不同于上次访问的页面读取相应的子数据包。
其中:
下一数据包的存取操作从不同于上次存取操作结束时所访问的页面开始。
采用预激活方式访问动态存储器的页面。
所述数据包分解由控制器在实现芯片内侧简单用户接口的地址到动态存储器(DRAM)地址映射时将页面地址划分到每个连续写入或读出的数据包对应的地址的内部来实现,即该数据包所占的地址空间分布到多个页面中的多个子地址空间。
所述数据包切分在数据包送入控制器之前进行。
在进行数据包的读取操作时,控制器还将读取的与存入时相对应的多个子数据包组成为所需读取的完整数据包。
本发明有效的规避了常见分页面(Bank)存储结构的DRAM(如DDR/SDRSDRAM)控制器进行连续同页面(Bank)访问时引入的开销,能减少带宽的浪费,提高控制器效率。
附图说明
图1为动态存储器的页面结构示意图;
图2为SDRM基本读写时序示意图;
图3A为同页面访问引入开销的示意图;
图3B为同页面访问周期可能引入附加的开销示意图;
图3C为不同页面访问节省开销示意图;
图4A为数据包跨行存入的示意图;
图4B为不同数据包存入不同页面的示意图;
图4C为不同数据包存入同页面的示意图;
图5为控制器在芯片内部的位置示意图;
图6为本发明的控制器写数据的时序示意图;
图7A为现有技术中一个数据包存入存储器中的示意图;
图7B为本发明的一个数据包存入存储器中的示意图。
具体实施方式
参阅图5所示,本文所指的控制器是指在内嵌或
外接动态存储器(DRAM)的芯片内,用于控制对DRAM的存取操作的功能部分。控制器与其它功能逻辑模块之间提供简单的用户控制界面,控制器与DRAM之间为复杂专用的DRAM控制界面,控制器完成复杂的DRAM控制功能实现数据在DRAM的存取。
本发明将连续的数据包(或称数据段,即连续的读/写多个时钟周期的整段数据)的存取操作(连续的读/写多个时钟周期的数据),分解为多个对不同的页面(Bank)进行操作,使得下一个数据包(或数据段)的存取操作以不同于上一个数据包操作结束时所用的页面开始操作,从而规避同页面连续访问。
为真正有效的回避同页面(Bank)连续访问引入的等待所带来的开销对控制器效率和带宽造成的影响,利用常见DRAM的分页面(Bank)存储结构和不同页面(Bank)间循环访问时开销抵消的高效访问特性,打破每个数据包(或数据段)存取时只访问一个页面(Bank)(仅在访问跨行时,才被迫切换到另一个页面)的原有设计思想,采用每个数据包(或数据段)存取时都顺序访问多个页面(Bank),即将待存取的数据包分解为与所述动态存储器的多个页面相对应的子数据包;由控制器顺序地访问所述多个页面,并且每次向不同的页面写入一个所述子数据包或每次从不同的页面读取相应的子数据包。
以某DDR SDRAM控制器实例,定长读写64字节的数据段(一个数据包可以由多个数据段组成)。采用16bit数据线宽度的256Mb的X16 DDR SDRAM器件,与内部功能模块接口的简单用户控制界面,读写使能控制和数据接口及以64字节为单位的块地址接口共21bit,地址映射为用户地址高13bit对应DDR SDRAM的行地址,用户地址中间6bit对应DDR SDRAM的列地址的高6bit,用户地址的低2bit对应DDR SDRAM的Bank地址,DDR SDRAM的列地址的低3bit以全0为起始地址。
参阅图6,其中,图中A代表激活操作(Active),W代表写操作(Write),P代表关闭(Precharge),R代表行地址(Row address),C代表列地址(Columnaddress)。在存取过程中随地址的递增,每隔一个时间段(图6中为4个时钟周期)页面地址递增一次,4个时间段递增3次,4个页面(Bank)全部切换一次,等到下一个数据包(或数据段)存取时,页面(Bank)地址回到页面Bank0,即下一个数据包(或数据段)又从第0页面开始存取。图中“1”表示数据段1写入的具体操作过程,“2”表示数据段2的写入的具体操作过程(数据段2的后段部分未示出)。从上述方法的具体操作中可以清楚的看到,控制器在实现芯片内侧简单用户接口的地址到DRAM地址映射时将页面地址划分到每个连续写入或读出的数据包(或数据段)对应的地址的内部,则在该数据包(或数据段)的连续存取的操作过程中,随着地址的递增,每隔一段时间页面地址的递增导致读写页面的切换,实现页面(Bank)的倒换,而页面(Bank)的顺序倒换,使得下一次操作一定从新的页面Bank0开始操作,从而避免了连续两个数据包(或数据段)访问同一页面(Bank)引入的开销,提高了存取效率。采用预激活方式访问动态存储器的页面。
例如:对于DDR SDRAM控制器,执行连续写入8个时钟周期的数据的用户命令,原有的控制器直接将8个时钟周期的数据顺序的写入相应的页面(Bank)如图7A所示,本次操作与其他页面(Bank)无关,下一次紧接再次访问该页面(Bank)时,便引入开销;而本发明实现的控制器如图7B所示,将连续写入8个时钟周期数据的用户命令,由控制器分解到4个页面(Bank),从最左每个页面(Bank)依次写入,每个页面写入顺序的2个时钟周期的数据,对下一个用户操作依此类推,取得的效果是,当完成第7、8个时钟周期数据时,回到最左边的页面(Bank)时,最左边的页面又可以马上进行新一轮操作,无同页面(Bank)顺序访问的限制,从而保证的控制器效率和带宽。
读取数据包时分解的原则与写操作相同,且读取的页面和地址与写入时相对应,将要读取的数据包分解到与写入时相对应的多个页面,并顺序从这些页面中的每一个页面读取相应的子数据包,控制器将读取的多个子数据包组成为完整的数据包。
根据上述原理,也可在控制器前先将数据包(或数据段)切分为存入不同页面(Bank)的多个数据段,即实质上是将切分的过程移到控制器的简单用户接口外侧实现。
利用本技术原理,软件在通过硬件进行DRAM存取时,软件自行先将数据包(或数据段)拆分为存入不同页面(Bank)的数据段,然后通过传统控制器(原有技术)方法存取,也可以改善存取效率。
虽然本实施例以4个页为例进行说明,但本发明的方法并不限于4个页面的存储器,同样适用于对2个、8个或其它个数的页面(Bank)进行倒换。
本发明将用户存取的数据包(或数据段,即连续的读/写多个时钟周期的整段数据),分解为多个对不同的页面(Bank)进行存取操作的数据段完成存取操作,以达到每连续两个不同的数据包(或数据段)连续的存取过程中不出现连续访问同页面(Bank),从而避免不同数据段连续访问相同页面(Bank)时带来的开销,提高了存取效率。
Claims (6)
1、一种动态存储器的访问方法,所述动态存储器(DRAM)为页面式的存储结构,由控制器控制数据包的存取操作,其特征在于包括步骤:
将待存取的数据包分解为与所述动态存储器的多个页面相对应的子数据包;
由控制器顺序地访问所述多个页面,并且每次访问向不同于上次访问的页面写入一个所述子数据包或从不同于上次访问的页面读取相应的子数据包。
2、如权利要求1所述的方法,其特征在于,下一数据包的存取操作从不同于上一数据包存取操作结束时所访问的页面开始。
3、如权利要求1或2所述的访问方法,其特征在于,采用预激活方式访问动态存储器的页面。
4、如权利要求1所述的访问方法,其特征在于,所述数据包分解由控制器在实现芯片内侧简单用户接口的地址到动态存储器地址映射时将页面地址划分到每个连续写入或读出的数据包对应的地址的内部来实现,即该数据包所占的地址空间分布到多个页面中的多个子地址空间。
5、如权利要求1所述的方法,其特征在于,所述数据包切分在数据包送入存储器之前进行。
6、如权利要求1所述的方法,其特征在于,在进行数据包的读取操作时,控制器还将读取的与存入时相对应的多个子数据包组成为所需读取的完整数据包。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNA031541356A CN1581104A (zh) | 2003-08-12 | 2003-08-12 | 一种动态存储器的访问方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CNA031541356A CN1581104A (zh) | 2003-08-12 | 2003-08-12 | 一种动态存储器的访问方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN1581104A true CN1581104A (zh) | 2005-02-16 |
Family
ID=34580145
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNA031541356A Pending CN1581104A (zh) | 2003-08-12 | 2003-08-12 | 一种动态存储器的访问方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN1581104A (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102834815A (zh) * | 2010-01-29 | 2012-12-19 | 摩希斯股份有限公司 | 高利用率多分区串行存储器 |
| CN101923522B (zh) * | 2009-06-11 | 2013-05-08 | 中兴通讯股份有限公司 | 存储控制器及数据操作命令的处理方法 |
| CN113253928A (zh) * | 2021-05-06 | 2021-08-13 | 天津大学深圳研究院 | 一种通道信息可感知的数据库存储内并行处理方法 |
-
2003
- 2003-08-12 CN CNA031541356A patent/CN1581104A/zh active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101923522B (zh) * | 2009-06-11 | 2013-05-08 | 中兴通讯股份有限公司 | 存储控制器及数据操作命令的处理方法 |
| CN102834815A (zh) * | 2010-01-29 | 2012-12-19 | 摩希斯股份有限公司 | 高利用率多分区串行存储器 |
| US9342471B2 (en) | 2010-01-29 | 2016-05-17 | Mosys, Inc. | High utilization multi-partitioned serial memory |
| TWI563516B (en) * | 2010-01-29 | 2016-12-21 | Mosys Inc | High utilization multi-partitioned serial memory |
| CN102834815B (zh) * | 2010-01-29 | 2017-02-08 | 摩希斯股份有限公司 | 高利用率多分区串行存储器 |
| CN113253928A (zh) * | 2021-05-06 | 2021-08-13 | 天津大学深圳研究院 | 一种通道信息可感知的数据库存储内并行处理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101916227B (zh) | 一种rldram sio存储器访问控制方法和装置 | |
| US7447805B2 (en) | Buffer chip and method for controlling one or more memory arrangements | |
| CN1628293A (zh) | 地址空间、总线系统、存储器控制器以及设备系统 | |
| US9836416B2 (en) | Memory devices and systems including multi-speed access of memory modules | |
| CN1345070A (zh) | 具有数据掩蔽引脚的半导体存储装置及包括该装置的存储系统 | |
| CN1332864A (zh) | 存储器子系统中功率管理的方法与设备 | |
| CN102103548A (zh) | 提高双倍数据速率同步随机存储器读写速率的方法及装置 | |
| US11216386B2 (en) | Techniques for setting a 2-level auto-close timer to access a memory device | |
| CN1630858A (zh) | 用于计算机系统中的辅助命令总线的方法和设备 | |
| CN102541782A (zh) | Dram访问控制装置与控制方法 | |
| WO2012079436A1 (zh) | 一种存储器接口访问控制方法及装置 | |
| CN116955222A (zh) | 智能预取缓冲器和队列管理 | |
| CN1278241C (zh) | 用以跟踪内存存取的存储页管理装置及方法 | |
| CN1783332A (zh) | 双倍速动态随机存取存储器的读写方法 | |
| JP2006048342A (ja) | 省電力メモリアクセス制御装置 | |
| CN1581104A (zh) | 一种动态存储器的访问方法 | |
| KR100295930B1 (ko) | 램 장치 및 고속 메모리 시스템 | |
| CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及系统 | |
| JP2002351741A (ja) | 半導体集積回路装置 | |
| CN113886287A (zh) | 一种基于SoC的自适应实时缓存系统及方法 | |
| CN100530414C (zh) | 用于多存储体存储器调度的方法和设备 | |
| CN100377118C (zh) | 基于sram的嵌入式文件系统的实现方法 | |
| TWI721660B (zh) | 控制資料讀寫裝置與方法 | |
| TWI385672B (zh) | 儲存裝置之適應性多通道控制器及其方法 | |
| CN1551232A (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 | ||
| C12 | Rejection of a patent application after its publication | ||
| RJ01 | Rejection of invention patent application after publication |