CN102591814A - 支持多bank访问模式的dram访问控制装置和控制方法 - Google Patents

支持多bank访问模式的dram访问控制装置和控制方法 Download PDF

Info

Publication number
CN102591814A
CN102591814A CN2011104250958A CN201110425095A CN102591814A CN 102591814 A CN102591814 A CN 102591814A CN 2011104250958 A CN2011104250958 A CN 2011104250958A CN 201110425095 A CN201110425095 A CN 201110425095A CN 102591814 A CN102591814 A CN 102591814A
Authority
CN
China
Prior art keywords
bank
module
address
dram
row
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
Application number
CN2011104250958A
Other languages
English (en)
Inventor
谢少林
张星
杜学亮
刘子君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN2011104250958A priority Critical patent/CN102591814A/zh
Publication of CN102591814A publication Critical patent/CN102591814A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Dram (AREA)

Abstract

本发明公开了一种支持多BANK访问模式的DRAM访问控制装置和控制方法,其中通过BANK管理模块来实现多BANK访问模式。该DRAM访问控制装置包括用户模块1、控制模块2、数据通道模块3和BANK管理模块12,该BANK管理模块12用于对用户指令进行BANK是否冲突的判断,以使控制模块2产生正确的命令信号和地址信号;并且,该BANK管理模块接收来自控制模块2解析的BANK地址和行地址,向控制模块2发送检测的冲突信息。本发明将用户发送的读写命令、地址信息进行解析,产生DRAM能识别的命令信号和地址信号,从而实现对DRAM的读写访问;同时提供多BANK访问模式,支持同时打开多个BANK,提高了总线利用率。

Description

支持多BANK访问模式的DRAM访问控制装置和控制方法
技术领域
本发明属于DRAM技术领域,具体涉及一种支持多BANK访问模式的DRAM访问控制装置与DRAM访问控制方法。
背景技术
内存是影响数字信号处理器性能的重要因素,其数据传输率的提升对提高处理器性能有积极作用。由于内存不能直接识别处理器的访存请求,内存控制器负责完成处理器对内存的控制操作,将该请求转换为内存能够识别的命令发送给内存,同时还要传输数据和控制内存的定时刷新。
一种常见的内存是DRAM,它具有存储密度高,价格低廉、带宽高等优点。一般DRAM内存颗粒包含4或8个BANK,DRAM访问控制装置控制DRAM读写时,首先要激活某一BANK的某一行,然后才能读写此行对应的列;通常DRAM访问控制装置只能保持一个BANK为打开状态,这样如果下次读写命令访问的BANK或行与当前打开的BANK或行不一致,就需要通过预充电关闭当前BANK,然后激活下次读写命令访问的行,这样会消耗大量的预充电和激活等待时间,使得DRAM访问控制装置效率降低。目前,也有设计多BANK的DRAM访问控制装置,但其BANK管理方式太笨拙,效率不高。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是克服多BANK访问模式中效率低下的问题,提出一种高效的支持多BANK访问模式的DRAM访问控制装置和控制方法。
(二)技术方案
为解决上述技术问题,本发明的DRAM访问控制装置包括用户模块、控制模块和数据通道模块,还包括BANK管理模块,该BANK管理模块用于对用户指令进行BANK是否冲突的判断,以使控制模块产生正确的命令信号和地址信号;并且,该BANK管理模块接收来自控制模块解析的BANK地址和行地址,向控制模块发送检测的冲突信息。
本发明的DRAM访问控制方法用于DRAM访问控制装置中,该DRAM访问控制装置包括控制模块2和BANK管理模块12,且所述DRAM访问控制方法不断根据新来的地址与地址列表进行比较,得到新的冲突检测记录表和新的地址列表,根据冲突检测结果来直到控制模块的状态转换。
(三)有益效果
本发明通过BANK管理模块实现了多BANK访问模式的DRAM访问控制装置和控制方法,其能够正确地对DRAM进行读写,支持同时打开多个BANK,提高了总线利用率。
附图说明
图1是本发明的DRAM访问控制装置的示意图;
图2是本发明的用户模块的示意图;
图3是本发明的DRAM访问控制装置的状态转换图;
图4是本发明的用户地址的地址解析图;
图5是本发明在多BANK访问模式下的访问控制方法流程图;
图6是本发明的BANK管理模块的示意图;
图7本发明的地址列表更新过程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1示出了本发明的DRAM访问控制装置的模块结构图。从图1中可见,该DRAM访问控制装置包括:用户模块1、控制模块2、数据通道模块3和BANK管理模块12。其中,控制模块2包括状态控制模块21和地址产生模块22。
其中,用户模块1用于从用户接口接收读写命令、地址及数据,从控制模块2接收控制状态位,从数据通道模块3接收读数据,并且,向用户接口发送读数据及FIFO满标志位,向控制模块2发送读写命令、地址以及FIFO空标志位,向数据通道模块3发送写数据。
控制模块2用于从用户模块接收读写命令、地址及FIFO空标志位,从配置端口接收DRAM配置信息,在初始化时配置模式寄存器及扩展模式寄存器;向用户模块1发送控制状态位,向数据通道模块3发送控制信息。
数据通道模块3用于数据的传递,从用户模块1接收写数据,从DRAM接收读数据,向用户模块1发送读数据,向DRAM发送写数据。
BANK管理模块12用于对用户指令进行BANK是否冲突的判断,以使控制模块2产生正确的命令信号和地址信号。BANK管理模块接收来自控制模块2解析的地址信息(包括BANK地址和行地址),向控制模块发送检测的冲突信息。
用户模块
用户模块1是DRAM控制装置用于与用户层交换数据。图2示出了用户模块1的模块结构图。用户模块1由三个FIFO实现,分别是命令FIFO13、写FIFO 14和读FIFO 15。命令FIFO 13是命令和地址传输通道,用来缓冲用户发送的命令和地址,写FIFO 14是写数据传输通道,读FIFO 15是读数据传输通道。由于用户总线上的时钟与DRAM访问控制装置的时钟不同,DRAM访问控制装置会涉及到跨时钟域的问题,因此这3个FIFO均为异步FIFO。
控制模块
控制模块2用于控制全局状态机的转换,以确保DRAM按正确的时序进行工作,并将用户的读写请求转化成DRAM能识别且满足时序要求的命令操作,而且将用户地址转换成对应的BANK、行、列地址,还要负责控制DRAM的初始化以及自动刷新。
如图1所示,控制模块2包括状态控制模块21和地址产生模块22。
状态控制模块21用于控制DRAM访问控制装置的初始化以及状态转换,其中,初始化控制按照JEDEC标准顺序实现,之后DRAM才能进行读写操作;状态控制模块21包括一全局状态机,且用于监视该全局状态机的状态,并在相应状态下将用户的读写、刷新请求转换成满足DRAM时序要求的相关命令操作。所述全局状态机控制DRAM访问控制装置进行各种状态的转换,并满足各操作所需的延时要求。
图3示出了本发明的全局状态机的状态转移图,其中没有条件的箭头表示在下一个周期自动转换,有条件的箭头表示需要满足对应条件后才能转换,虚线是仅在多BANK访问模式下时才有的状态转换。全局状态机控制DRAM访问控制装置进行各种状态的转换,具体的状态包括自动刷新、预充电、激活、读、写以及与之相对应得刷新等待、预充电等待、激活等待和读写等待。全局状态机是DRAM访问控制装置设计的核心,初始化完成以后,DRAM就进入操作状态,全局状态机将刷新、预充电、激活、读以及写等操作合理转换,DRAM才能正常工作。
地址产生模块22用于将用户发送的地址进行解析,分解为片选信号、BANK地址、行地址和列地址,然后根据DRAM访问控制装置的状态,将行地址和列地址映射为DRAM访问控制装置到DRAM的地址,激活操作时提供行地址、读写操作时提供列地址。
数据通道模块
数据通道模块3用于用户接口和DRAM之间的数据传输,其包括读通道和写通道,分别完成数据的发送和接收,并在收发过程中完成数据的整合和拆分。
BANK管理模块
本发明的DRAM访问控制装置是支持多BANK访问模式的DRAM访问控制装置,因此还包括BANK管理模块12。
本发明的DRAM访问控制装置提供了BANK管理技术,支持单BANK访问模式和多BANK访问模式,通过配置端口设置参数MULTI_BANK_EN可选择某一访问模式。通过单BANK访问模式和多BANK访问模式的比较,我们可以发现多BANK访问模式的优越性。
单BANK访问模式:在单BANK访问模式下,DRAM访问控制装置在任何时间只能使一BANK的一行保持打开(激活)状态。用户层的当前读写命令决定打开哪一个BANK的哪一行,如果接下来的读写继续操作这一行,这一行将保持打开状态;如果接下来的读写操作针对其他BANK或者同BANK的其他行,DRAM访问控制装置会检测出冲突,然后发送预充电命令关闭当前打开的行,然后激活需要操作的行。
多BANK访问模式:在多BANK访问模式下,DRAM访问控制装置在任何时间最多可以使4BANK或者4行保持打开(激活)状态。多BANK访问模式中,访问操作会出现以下情况:
(a)行命中(Row hit):目标行地址与目前打开的行地址一致。此时,继续进行读写操作即可。
(b)BANK冲突(BANK conflict):目标BANK地址与任何已打开的BANK地址不一致,这时发生BANK冲突。此时,如果DRAM访问控制装置没有打开最大的4个BANK,则打开新的一个BANK即可;如果DRAM访问控制装置已打开4个BANK,则DRAM访问控制装置将关闭最早打开的BANK,然后打开新的BANK。
(c)BANK命中行冲突(BANK hit and ROW conflict):目标BANK地址与已打开的BANK地址一致,但是目标行地址与那个BANK已打开的行地址不一致。此时DRAM访问控制装置将关闭命中的BANK,然后重新打开此BANK的新的行。
多BANK访问模式下的访问控制方法的流程图如图5所示。
A、判断是否是多BANK访问模式;
B、如果不是多BANK,则判断是否行冲突;
Ba、如果行冲突,则预充电关闭当前行再激活要访问的行;
Bb、如果行不冲突,则直接读写;
C、如果是多BANK访问模式,则判断是否命令冲突;
Ca、如果命令不冲突,则直接读写;
Cb、如果命令冲突,则进行如下步骤:
Cd、判断是否BANK命中行冲突;
Ce、如果BANK命中行冲突,则关闭当前BANK,再激活此BANK需要访问的行;
Cf、如果BANK命中行不冲突,则进行如下步骤:
Cg、判断是否4个BANK都已打开;
Ch、若4个BANK未全部打开,直接打开新的BANK进行读写操作;
Ci、若4个BANK全打开,则关闭最早激活的BANK,打开需要访问的BANK的行,再进行读写。
至此,整个流程完毕。
由此可见,在多BANK访问模式下,不需要不断的打开、关闭BANK,减少了预充电和激活的时间损耗,如此提高了DRAM的访问效率。
图6是本发明的BANK管理模块的示意图。该BANK管理模块12包括BANK检测模块61和ROW检测模块62,其分别用来对到来的地址进行BANK冲突检测和ROW冲突检测,将得到的冲突信息发送给控制模块2,控制模块2根据冲突信息来控制预充电和激活的操作,实现多BANK访问模式。
具体实施方法如下:设定一个冲突检测记录表,存放4个冲突检测信息,冲突检测信息包括BANK命中信息和行冲突信息,如表。设定一个地址列表,存放4个地址信息,用于存放已经打开的BANK的地址bank_cmp_addr_r[i](i=0,1,2,3),包括BANK地址bank_cmp_addr_r[i]_ba和行地址bank_cmp_addr_r[i]_row,如表2。冲突信息的检测是通过将用户层发来的地址与地址列表中的地址进行比较,行地址比较得到行冲突信息,BANK地址比较得到BANK命中信息。
表1
  0   bank_hit[0]   row_miss[0]
  1   bank_hit[1]   row_miss[1
  2   bank_hit[2]   row_miss[2]
  3   bank_hit[3]   row_miss[3]
表2
  0   bank_cmp_addr r[0]_ba   bank_cmp_addr_r[0]_row
  1   bank_cmp_addr_r[1]_ba   bank_cmp_addr_r[1]_row
  2   bank_cmp_addr_r[2]_ba   bank_cmp_addr_r[2]_row
  3   bank_cmp_addr_r[3]_ba   bank_cmp_addr_r[3]_row
对DRAM进行读写访问时,我们就不断地更新记录表和地址列表中的信息。
具体实施方式如下:假设第一个读写操作(地址为a)发送到DRAM访问控制装置时,bank_cmp_addr_r[0]就更新为此读写操作的地址a,下一个读写操作(地址为b)到来时,就将此地址与bank_cmp_addr_r[i](i=0,1,2,3)进行对应的BANK检测和ROW检测,可以得到对应的冲突检测表,来指导控制模块进行对应的状态转换,而地址列表bank_cmp_addr_r[i]中的信息也要发生相应的变化,检测到BANK命中,就将保留bank_cmp_addr_r[i]中的信息,如果未命中,将bank_cmp_addr_r[i]->bank_cmp_addr_r[i+1],这样直到地址列表填满不同的BANK地址,填满后,若有新的BANK地址操作到来,我们继续后移,关闭掉bank_cmp_addr_r[3]ba对应的BANK。
图7给出了地址列表变化的过程图。图中假定操作a、b、c、d、e具有不同的BANK地址,起始状态的地址列表值为0。首先进行a操作,将更新地址列表为71;然后进行b操作,没有BANK命中,将进行移位操作,得到新的地址列表为72;下一步进行a操作,bank_cmp_addr_r[1]命中,这样将替换a地址为新a地址(注意,此处a为相同BANK地址,ROW地址可能不同),得到新的地址列表73;接下来进行c和d操作,将进行相应的移位操作填满地址列表;最后进行第5个BANK地址的e操作,没有BANK命中,继续进行移位,得到77的地址列表,注意到移去了a,也就是关闭了最早打开的BANK。
总的来说,多BANK访问模式中的BANK管理方法,就是不断根据新来的地址与地址列表进行比较,得到新的冲突检测记录表和新的地址列表,根据冲突检测结果来直到控制模块的状态转换。
综上所述,采用本发明的支持多BANK访问模式的DRAM访问方法,能够正确地对DRAM进行读写访问,可以较大的减少预充电和激活消耗的时间,从而提升了DRAM的访问效率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种DRAM访问控制装置,包括用户模块(1)、控制模块(2)和数据通道模块(3),其特征在于:
还包括BANK管理模块(12),
该BANK管理模块(12)用于对用户指令进行BANK是否冲突的判断,以使控制模块(2)产生正确的命令信号和地址信号;并且,
该BANK管理模块接收来自控制模块(2)解析的BANK地址和行地址,向控制模块(2)发送检测的冲突信息。
2.如权利要求1所述的DRAM访问控制装置,其特征在于:
所述BANK管理模块包括BANK检测模块(61)和ROW检测模块(62),其分别用来
对到来的地址进行BANK冲突检测和ROW冲突检测,将得到的冲突信息发送给控制模块(2),以便控制模块(2)根据冲突信息来控制预充电和激活的操作,实现多BANK访问控制。
3.如权利要求1所述的DRAM访问控制装置,其特征在于:
用户模块(1)用于从外部接收读写命令、地址及数据,向控制模块(2)发送读写命令、地址,向数据通道模块(3)发送写数据。
4.如权利要求1所述的DRAM访问控制装置,其特征在于:
控制模块(2)用于从用户模块(1)接收读写命令、地址,向用户模块(1)发送控制状态位,向数据通道模块(1)发送控制信息。
5.如权利要求1所述的DRAM访问控制装置,其特征在于:
数据通道模块(3)用于从用户模块接收写数据,从DRAM接收读数据,向用户模块(1)发送读数据,向DRAM发送写数据。
6.如权利要求1所述的DRAM访问控制装置,其特征在于:
用户模块(1)包括命令FIFO(13)、写FIFO(14)和读FIFO(15),
所述命令FIFO(13)用作命令和地址的传输通道,缓冲用户发送的命令和地址;
写FIFO(14)用作写数据传输通道;
读FIFO(15)用作读数据传输通道。 
7.如权利要求6所述的DRAM访问控制装置,其特征在于:
所述命令FIFO(13)、写FIFO(14)和读FIFO(15)均为异步FIFO。
8.如权利要求1所述的DRAM访问控制装置,其特征在于:
所述控制模块(2)包括状态控制模块(21)和地址产生模块(22),其中
状态控制模块(21)用于控制DRAM控制器的初始化以及状态转换;
地址产生模块(22)用于将地址进行解析,分解为片选信号、BANK地址、行地址和列地址,然后根据DRAM控制器的状态,将行地址和列地址映射为DRAM控制器到DRAM的地址,激活操作时提供行地址、读写操作时提供列地址。
9.一种DRAM访问控制方法,用于DRAM访问控制装置中,
其特征在于:
该DRAM访问控制装置包括控制模块(2)和BANK管理模块(12),
所述DRAM访问控制方法不断根据新来的地址与地址列表进行比较,得到新的冲突检测记录表和新的地址列表,根据冲突检测结果来直到控制模块的状态转换。
10.如权利要求9所述的DRAM访问控制方法,其特征在于:
该方法包括如下步骤:
A、判断是否是多BANK访问模式;
B、如果不是多BANK,则判断是否行冲突;
Ba、如果行冲突,则预充电关闭当前行再激活要访问的行;
Bb、如果行不冲突,则直接读写;
C、如果是多BANK访问模式,则判断是否命令冲突;
Ca、如果命令不冲突,则直接读写;
Cb、如果命令冲突,则进行如下步骤:
Cd、判断是否BANK命中行冲突;
Ce、如果BANK命中行冲突,则关闭当前BANK,再激活此BANK需要访问的行;
Cf、如果BANK命中行不冲突,则进行如下步骤:
Cg、判断是否4个BANK都已打开; 
Ch、若4个BANK未全部打开,直接打开新的BANK进行读写操作;
Ci、若4个BANK全打开,则关闭最早激活的BANK,打开需要访问的BANK的行,再进行读写。 
CN2011104250958A 2011-12-16 2011-12-16 支持多bank访问模式的dram访问控制装置和控制方法 Pending CN102591814A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104250958A CN102591814A (zh) 2011-12-16 2011-12-16 支持多bank访问模式的dram访问控制装置和控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104250958A CN102591814A (zh) 2011-12-16 2011-12-16 支持多bank访问模式的dram访问控制装置和控制方法

Publications (1)

Publication Number Publication Date
CN102591814A true CN102591814A (zh) 2012-07-18

Family

ID=46480498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104250958A Pending CN102591814A (zh) 2011-12-16 2011-12-16 支持多bank访问模式的dram访问控制装置和控制方法

Country Status (1)

Country Link
CN (1) CN102591814A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491926A (zh) * 2018-10-26 2019-03-19 浙江工商大学 基于延长写时间的优化非易失性存储器写寿命的内存管理方法
CN109902041A (zh) * 2019-03-11 2019-06-18 中国核动力研究设计院 一种基于fpga的sdram驱动器设计方法
CN114416612A (zh) * 2021-12-27 2022-04-29 深圳云天励飞技术股份有限公司 存储器的访问方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815626A (zh) * 2005-01-31 2006-08-09 上海奇码数字信息有限公司 存储器存取控制器与存储器存取方法
CN101625892A (zh) * 2009-08-07 2010-01-13 杭州华三通信技术有限公司 动态随机访问存储器的控制器及用户指令处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815626A (zh) * 2005-01-31 2006-08-09 上海奇码数字信息有限公司 存储器存取控制器与存储器存取方法
CN101625892A (zh) * 2009-08-07 2010-01-13 杭州华三通信技术有限公司 动态随机访问存储器的控制器及用户指令处理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491926A (zh) * 2018-10-26 2019-03-19 浙江工商大学 基于延长写时间的优化非易失性存储器写寿命的内存管理方法
CN109491926B (zh) * 2018-10-26 2023-03-28 浙江工商大学 基于延长写时间的优化非易失性存储器写寿命的内存管理方法
CN109902041A (zh) * 2019-03-11 2019-06-18 中国核动力研究设计院 一种基于fpga的sdram驱动器设计方法
CN114416612A (zh) * 2021-12-27 2022-04-29 深圳云天励飞技术股份有限公司 存储器的访问方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN100527107C (zh) 无序的动态随机存取存储器序列器
CN101609438B (zh) 存储器系统、其访问控制方法和计算机程序
CN102084345B (zh) 侦测推测性预充电
US10691344B2 (en) Separate memory controllers to access data in memory
CN1822224B (zh) 能利用缓冲器刷新数据的存储器装置及其刷新方法
US9411757B2 (en) Memory interface
US20110141795A1 (en) Multi-port memory based on dram core
CN102541782A (zh) Dram访问控制装置与控制方法
CN103915110A (zh) 一种易失存储器的刷新方法及相关的易失存储器的控制器
CN103780506A (zh) 一种用于以太网设备的数据缓存系统及方法
CN104850501B (zh) 一种ddr存储器访存地址映射方法及访存地址映射单元
WO2004061858A1 (en) A refresh port for a dynamic memory
US8341344B2 (en) Techniques for accessing a resource in a processor system
CN103927268A (zh) 一种存储器的访问方法及装置
CN111506264B (zh) 支持灵活分块存取的虚拟多通道sdram访问方法
US7047371B2 (en) Integrated memory having a memory cell array containing a plurality of memory banks, and circuit configuration having an integrated memory
CN101702326A (zh) 内存控制器
CN102681946A (zh) 内存访问方法和装置
CN113641603A (zh) 一种基于axi协议的ddr仲裁与调度方法及系统
CN101625892B (zh) 动态随机访问存储器的控制器及用户指令处理方法
CN101719104B (zh) 一种同步动态存储器的控制系统及控制方法
CN206946471U (zh) 一种多通道共享读写sdram的电路装置
JP2014154119A (ja) メモリ制御装置及び半導体記憶装置
CN102591814A (zh) 支持多bank访问模式的dram访问控制装置和控制方法
CN105045722B (zh) 一种ddr2-sdram控制器及其低延迟优化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120718