提高动态存储器带宽利用率的动态存储器控制器及方法

文档序号:6601921阅读:237来源:国知局
专利名称:提高动态存储器带宽利用率的动态存储器控制器及方法
技术领域
本发明涉及动态存储器DRAM(Dynamic Random Access Memory)控制器,具体涉及一种提高动态存储器带宽利用率的动态存储器控制器及方法。
背景技术
DRAM控制器示意图如图1所示,控制器包括两部分接口 对访问端口的接口 ;对 DRAM芯片接口。控制器在对DRAM进行读写操作时,受其条件限制,在发出读写地址后需要经过一个固定的延时要求后才能把数据从DRAM中读出或者写入。以DDR3-800为例,对于DDR3-800 器件来说,在400M时钟下,发出读写地址后至少需要5个时钟周期延时后才能把数据从 DDR3 SDRAM中读出或者写入。而且由于DDR3 SDRAM每次在同一个Bank(单元)内,换行读写操作时,需要先关闭当前Bank中已经打开的行(Precharge),然后激活需要访问的行 (Active),然后才能对需要访问的行进行数据读写操作。每一个Bank内,Precharge到 Active操作之间有一个固定的延时要求(TRP)。TRP至少为12. 5ns。这样发出读写地址后, 把数据从DDR3 SDRAM中读出或者写入的延时时间将更长。对于访问端口通过DRAM控制器向DRAM请求数据时,如果访问端口把数据从DRAM 中读出或者写入后,访问端口通过DRAM控制器再发起下一次对DRAM进行读写操作,这样访问端口在第一次发完读写地址后,到数据全部从DRAM中读出或者写入这段时间内,没有对 DRAM读写操作,造成DRAM带宽利用率较低。为了提高DRAM的带宽利用率,现有解决方法主要包括两种1,Bank轮换。该方法需在每次Burst (突发)操作之后切换Bank,尽量在保证数据总线高利用率的前提下,将每个Bank相邻两次访问的间隔加大。这种方法存在明显缺陷 一,访问端口对DRAM的读写操作的地址是随机的,所以无法保证每次Burst操作都是不同的Bank ;二,需要做地址管理使得每次Burst操作之后切换Bank,硬件电路复杂高,可移植性差。2,提前Precharge操作。该方法是如果下一次操作将需要Precharge然后Active, 并且和本次操作不冲突,那么,就将这个Precharge操作提前到本次操作之前执行。当本次操作完成后,要进行下次操作的Active操作时,TRP时间已经满足了。这样做的结果依然存在不足该方法使用的前提条件为下一次操作将需要Precharge然后Active,并且和本次操作不冲突,但是在实际中由于访问地址的随机性,使得达到这个前提条件的几率比较低。

发明内容
本发明要解决的技术问题是提供一种提高动态存储器带宽利用率的动态存储器控制器及方法,可有效解决现有技术中动态存储器带宽利用率低的技术问题。本发明提供一种提高动态存储器带宽利用率的方法,包括动态存储器控制器在向动态存储器发送操作指令的同时接收并存储各访问端口的访问请求,当正在发送的操作指令发送完毕后向所述动态存储器发送存储的下一操作指令。进一步地,所述动态存储器控制器向动态存储器发送下一操作指令时不需要等待已发送的操作指令需写入的数据完全写入所述动态存储器或已发送的操作指令需请求的数据从动态存储器中完全读出。进一步地,所述动态存储器控制器接收所述动态存储器返回的请求数据;所述动态存储器控制器在向动态存储器发送操作指令以及接收访问端口的访问请求的同时,还将接收的所述请求数据发送至对应的访问端口。进一步地,所述动态存储器控制器接收并存储访问端口的访问请求是指,动态存储器控制器按照收到访问请求的先后顺序存储各访问请求形成操作指令队列,当访问请求为写操作时还按照写操作的先后顺序存储要写入动态存储器的数据,以及当访问请求为读操作时还生成指示信息并按照读操作的先后顺序存储所述指示信息;所述存储的各操作指令包括访问的动态存储器的起始地址、访问长度及操作类型;所述存储的各指示信息包括访问长度及访问编号。进一步地,所述动态存储器控制器设置操作指令计数器,其初始值为0,当操作指令队列有新的操作指令加入时计数器值加1,当该队列中的一操作指令发送完毕后计数器减1;所述动态存储器控制器检测到操作指令计数器的值由0变为1时向动态存储器发送操作指令,以及检测到当前发送的操作指令发送完毕且操作指令计数器值不为0时向动态存储器发送操作指令。进一步地,所述动态存储器控制器还设置地址计数器,用于记录向动态存储器发送的地址信息个数,其初始值为0,动态存储器控制器每发送一个地址信息则地址计数器加 1,当地址计数器的值与当前操作指令指示的长度一致时清0,当动态存储器控制器检测到地址计数器的值清0时将操作指令队列计数器减1。进一步地,所述动态存储器控制器还设置指示信息计数器,其初始值为0,当指示信息队列有新的指示信息加入时指示信息计数器值加1,当该队列中的一指示信息操作完成后指示信息计数器减1,当动态存储器控制器检测到指示信息计数器的值由0变为1时读取指示信息队列中的首个指示信息,以及当根据当前指示信息发送的数据发送完毕且指示信息计数器值不为0时读取指示信息队列中的首个指示信息,当收到动态存储器返回的请求数据后根据所述读取的指示信息向对应的访问端口发送请求数据。进一步地,所述动态存储器控制器还设置数据计数器,用于记录动态存储器向动态存储器控制器发送的数据个数,其初始值为0,动态存储器向动态存储器控制器每发送一个数据则数据计数器加1,当数据计数器的值与当前指示信息指示的访问长度一致时清0, 当动态存储器控制器检测到数据计数器的值清0时将指示信息队列计数器减1。进一步地,所述动态存储器控制器向动态存储器发送操作指令包括操作类型及请求访问的地址信息,当所述操作类型为写操作时还包括要写入的数据。进一步地,若所述动态存储器控制器同时收到多个访问端口的访问请求,则按照访问端口的优先级存储访问请求,优先级高的访问端口的访问请求位于优先级低的访问端口的访问请求之前。本发明提供一种提高动态存储器带宽利用率的动态存储器控制器,包括仲裁模块、存储模块及发送模块;所述仲裁模块,用于在发送模块发送操作指令的同时接收各访问端口的访问请求并将访问请求存储至所述存储模块;所述发送模块,用于向动态存储器发送操作指令,以及当正在发送的操作指令发送完毕后向所述动态存储器发送存储的下一操作指令。进一步地,所述发送模块向动态存储器发送下一操作指令时不需要等待已发送的操作指令需写入的数据完全写入所述动态存储器或已发送的操作指令需请求的数据从动态存储器中完全读出。进一步地,所述发送模块还用于接收动态存储器返回的请求数据,以及在向动态存储器发送操作指令的同时,将接收的所述请求数据发送至对应的访问端口。进一步地,所述存储模块包括存储单元1、存储单元2及存储单元3 ;所述仲裁模块接收并存储访问端口的访问请求是指仲裁模块按照收到访问请求后生成操作指令,并将各操作指令按照请求的先后顺序存储至所述存储单元1形成操作指令队列;当访问请求为写操作时仲裁模块按照写操作的先后顺序将要写入动态存储器的数据存储至所述存储单元2;当访问请求为读操作时仲裁模块生成指示信息,并将各指示信息按照读操作的先后顺序存储至所述存储单元3形成指示信息队列;所述存储的各操作指令包括访问的动态存储器的起始地址、访问长度及操作类型;所述存储的各指示信息包括访问长度及访问编号。进一步地,所述动态存储器控制器还包括读使能模块;所述发送模块包括发送单元1 ;所述读使能模块包括读使能单元1,用于设置操作指令计数器,其初始值为0,当操作指令队列有新的操作指令加入时计数器值加1,当该队列中的一操作指令发送完毕后计数器减1 ;还用于检测到操作指令计数器的值由0变为1时向发送单元1发送读使能信号,以及当发送单元1当前发送的操作指令发送完毕且操作指令计数器值不为0时向发送单元1发送读使能信号。进一步地,所述读使能单元1还用于设置地址计数器,用于记录发送单元1向动态存储器发送的地址信息个数,其初始值为0,发送单元1每发送一个地址信息则所述地址计数器加1,当地址计数器的值与当前操作指令指示的长度一致时清0,当读使能单元1检测到地址计数器的值清0时将操作指令队列计数器减1。进一步地,所述动态存储器控制器还包括读使能模块;所述发送模块包括发送单元2 ;所述读使能模块包括读使能单元2,用于设置指示信息计数器,其初始值为0,当指示信息队列有新的指示信息加入时指示信息计数器值加1,当该队列中的一指示信息操作完成后指示信息计数器减1,还用于检测到指示信息计数器的值由0变为1时向发送单元2发送读使能信号,以及当发送单元2根据当前指示信息发送的数据发送完毕且指示信息计数器值不为0时向发送单元2发送读使能信号;
所述发送单元2收到读使能信号后从指示信息队列中获取首个指示信息,并将动态存储器返回的请求数据根据获取的指示信息的指示发送至对应的访问端口。进一步地,所述读使能单元2还用于设置数据计数器,记录动态存储器向动态存储器控制器发送的数据个数,其初始值为0,动态存储器向动态存储器控制器每发送一个数据则数据计数器加1,当数据计数器的值与当前指示信息指示的访问长度一致时清0,当读使能单元2检测到数据计数器的值清0时将指示信息队列计数器减1。进一步地,若所述仲裁模块同时收到多个访问端口的访问请求,则按照访问端口的优先级存储访问请求,优先级高的访问端口的访问请求位于优先级低的访问端口的访问请求之前。进一步地,所述发送单元1是在收到读使能信号后发送操作指令的,发送单元1向动态存储器发送的操作指令包括操作类型及请求访问的地址信息,当所述操作类型为写操作时还包括要写入的数据。综上所述,本发明提供一种提高动态存储器带宽利用率的动态存储器控制器及方法,DRAM控制器在接收访问请求的同时将已接收的操作指令发往DRAM,这样可最大程度地降低接收访问请求到发送操作指令间的延迟,再者,当DRAM控制器向DRAM发送操作指令时不需要等待已发送的操作指令需写入的数据完全写入DRAM或已发送的操作指令需请求的数据从DRAM中完全读出,因此可最大程度地减少DRAM从接收操作指令到数据被写入或读出的延迟。通过上述手段,可使数据连续从DRAM中读出或者被写入DRAM,从而可提高动态存储器的带宽利用率。


图1为动态存储器控制器的应用场景示意图;图2为本发明动态存储器控制器的结构示意图;图3为本发明实施例中动态存储器控制器接收访问请求的处理流程图;图如至图4b至为本发明实施例中动态存储器控制器发送操作指令的流程图;图fe至图恥为本发明实施例中动态存储器控制器发送数据时的流程图。
具体实施例方式本发明的目的是提供一种动态存储器控制器设计方法,有效提高访问端口对动态存储器读写效率,可扩展性、移植性强。本发明提供一种提高动态存储器带宽利用率的方法,DRAM控制器在向DRAM发送操作指令的同时接收并存储各访问端口的访问请求,当正在发送的操作指令发送完毕后向 DRAM发送存储的下一操作指令。进一步地,DRAM控制器向DRAM发送操作指令时不需要等待已发送的操作指令需写入的数据完全写入DRAM或已发送的操作指令需请求的数据从DRAM中完全读出。进一步地,DRAM控制器在向DRAM器发送操作指令以及接收访问端口的访问请求的同时,还将接收的DRAM返回的请求数据发送至对应的访问端口。本实施例提供一种提高动态存储器带宽利用率的动态存储器控制器,如图2所示,包括仲裁模块、存储模块、读使能模块及发送模块;
仲裁模块,用于在发送模块发送操作指令的同时接收各访问端口的访问请求并将访问请求存储至所述存储模块;发送模块,用于向动态存储器发送操作指令,以及当正在发送的操作指令发送完毕后向动态存储器发送存储的下一操作指令。存储模块包括存储单元1、存储单元2及存储单元3 ;仲裁模块接收并存储访问端口的访问请求是指仲裁模块按照收到访问请求后生成操作指令,并将各操作指令按照请求的先后顺序存储至存储单元1形成操作指令队列; 当访问请求为写操作时仲裁模块按照写操作的先后顺序将要写入动态存储器的数据存储至存储单元2形成数据队列;当访问请求为读操作时仲裁模块生成指示信息,并将各指示信息按照读操作的先后顺序存储至存储单元3形成指示信息队列;仲裁模块还用于当一访问请求存储完成后向对应的访问端口返回请求完成的响应。存储的各操作指令包括访问的动态存储器的起始地址、访问长度及操作类型;存储的各指示信息包括访问长度及访问编号,还可以进一步包括读操作编号(即指明是对应端口哪一次的读请求)。上述访问长度可以是访问的地址长度,也可以是访问的数据长度,操作类型为读操作或写操作。若仲裁模块同时收到多个访问端口的访问请求,则按照访问端口的优先级存储访问请求,优先级高的访问端口的访问请求位于优先级低的访问端口的访问请求之前。读使能模块包括读使能单元1及读使能单元2 ;读使能单元1,用于发送读使能信号给发送单元1,以及更新存储单元1的操作指令队列,具体地,设置操作指令计数器,其初始值为0,当操作指令队列有新的操作指令加入时计数器值加1,当该队列中的一操作指令发送完毕后计数器减1,当读使能单元1检测到操作指令计数器的值由0变为1时向发送单元1发送读使能信号,以及当发送单元1当前发送的操作指令发送完毕且操作指令计数器值不为0时向发送单元1发送读使能信号。此处操作指令发送完毕是指发送单元1将该操作指令对应的地址信息全部发送至 DRAM。读使能单元1还设置地址计数器,用于记录发送单元1向DRAM发送的地址信息个数,其初始值为0,发送单元1每发送一个地址信息则地址计数器加1,当地址计数器的值与当前操作指令指示的长度一致时清0,当读使能单元1检测到地址计数器的值清0时将操作指令队列计数器减1,并更新操作指令队列,即将操作指令队列中的操作指令前推。读使能单元2,用于发送读使能信号给发送单元2,以及更新存储单元2的指示信息队列,具体地,设置指示信息计数器,其初始值为0,当指示信息队列有新的指示信息加入时指示信息计数器值加1,当该队列中的一指示信息操作完成后指示信息计数器减1,当读使能单元2检测到指示信息计数器的值由0变为1时向发送单元2发送读使能信号,以及当发送单元2根据当前指示信息发送的数据发送完毕且指示信息计数器值不为0时向发送单元2发送读使能信号。读使能单元2还设置数据计数器,记录动态存储器向动态存储器控制器发送的数据个数,其初始值为0,动态存储器向动态存储器控制器每发送一个数据则数据计数器加 1,当数据计数器的值与当前指示信息指示的访问长度一致时清0,当读使能单元2检测到数据计数器的值清0时将指示信息队列计数器减1。发送模块包括发送单元1及发送单元2 ;发送单元1向动态存储器发送的操作指令包括操作类型及请求访问的地址信息, 当操作类型为写操作时还包括要写入的数据。发送单元1是在收到读使能单元1发来的读使能信号后向动态存储器发送操作指令的。发送单元2,用于接收动态存储器返回的请求数据,还用于收到读使能单元2发来的读使能信号后从存储单元2中获取首个指示信息,以及根据指示信息的指示将接收的请求数据发送至对应的访问端口 ;此处首个指示信息是指指示信息队列中当前排在首位的指 /J^fn 息。发送单元2可以是实时地将请求数据发送至访问端口,也可以是先缓存接收的请求数据,然后将请求数据发送至访问端口,若是先缓存,可以是根据访问端口生成一标识, 该访问端口对应的请求数据均排在该标识之后,也可以是将不同访问端口的请求数据使用不同的存储单元进行存储。本实施例提供一种提高动态存储器带宽利用率的方法,包括动态存储器控制器在向动态存储器发送操作指令的同时接收并存储各访问端口的访问请求,当正在发送的操作指令发送完毕后向动态存储器发送存储的下一操作指令。进一步地,DRAM控制器向DRAM发送操作指令时不需要等待已发送的操作指令需写入的数据完全写入DRAM或已发送的操作指令需请求的数据从DRAM中完全读出。进一步地,DRAM控制器在向DRAM器发送操作指令以及接收访问端口的访问请求的同时,还将接收的DRAM返回的请求数据发送至对应的访问端口。具体地,(A)DRAM控制器接收各访问端口的访问请求时的操作如图3所示动态存储器控制器按照收到访问请求的先后顺序存储各访问请求形成操作指令队列,当访问请求为写操作时还按照写操作的先后顺序存储要写入动态存储器的数据形成数据队列,以及当访问请求为读操作时还生成指示信息并按照读操作的先后顺序存储指示信息形成指示信息队列;当该访问请求存储完成后向对应的访问端口返回请求完成的响应。存储的各操作指令包括访问的动态存储器的起始地址、访问长度及操作类型;存储的各指示信息包括访问长度及访问编号;该访问编号可以是访问端口编号和 /或访问顺序编号。(B)DRAM控制器在接收访问请求的同时将存储的操作指令发送至DRAM的操作为DRAM控制器读取操作指令队列中的首个操作指令,首个操作指令指操作指令队列中当前排在首位的操作指令;(Bi)当操作指令为读操作时,将该读操作涉及的DRAM地址信息发送至DRAM ;(B2)当操作指令为写操作时,将该写操作涉及的DRAM地址信息及要写入的数据发送至DRAM。如图如所示,DRAM控制器设置操作指令计数器,其初始值为0,当操作指令队列有新的操作指令加入时计数器值加1,当该队列中的一操作指令发送完毕后至动态存储器后计数器减1 ;此处操作指令发送完毕是指DRAM控制器将该操作指令对应的地址信息全部发送至DRAM。DRAM控制器检测到操作指令计数器的值由0变为1时向DRAM发送操作指令,以及检测到当前发送的操作指令发送完毕且操作指令计数器值不为0时向DRAM发送操作指令。如图4b所示,DRAM控制器还设置地址计数器,用于记录向DRAM发送的地址信息个数,其初始值为0,DRAM控制器每发送一个地址信息则地址计数器加1,当地址计数器的值与当前操作指令指示的长度一致时清0,当DRAM控制器检测到地址计数器的值清0时将操作指令队列计数器减1。当该首个操作指令发送完毕后更新操作指令队列,即删除该已发送的操作指令, 并将剩余的操作指令前推,当执行完毕的首个操作指令为写操作时,还更新数据队列,即删除已发送至DRAM的数据,并将剩余的数据前推。 (C) DRAM控制器将DRAM返回的请求数据发送至对应访问端口的操作为DRAM控制器接收DRAM返回的请求数据;如图fe所示,DRAM控制器还设置指示信息计数器,其初始值为0,当指示信息队列有新的指示信息加入时指示信息计数器值加1,当该队列中的一指示信息操作完成后指示信息计数器减1,当DRAM控制器检测到指示信息计数器的值由0变为1时读取指示信息队列中的首个指示信息,以及当根据当前指示信息发送的数据发送完毕且指示信息计数器值不为0时读取指示信息队列中的首个指示信息,并根据该首个指示信息的指示将DRAM返回的请求数据发送至对应的访问端口 ;首个指示信息指指示信息队列中当前排在首位的指示 fn息;如图恥所示,DRAM控制器还设置数据计数器,当数据计数器的值与当前指示信息指示的访问长度一致时清0,当DRAM控制器检测到数据计数器的值清0时将指示信息队列计数器减1。DRAM控制器向对应的访问端口发送请求数据时,可以是实时地将请求数据发送至访问端口,也可以是先缓存接收的请求数据,然后将请求数据发送至访问端口,若是先缓存,可以是根据访问端口生成一标识,该访问端口对应的请求数据均排在该标识之后,也可以是将不同访问端口的请求数据使用不同的存储单元进行存储。由上述本发明提供的技术方案可以看出,本发明把访问端口每次发送给动态存储器的地址、写入数据、读取数据分开,有效规避了访问端口的每次操作的切换,都需要等待上一次操作的数据从动态存储器读出或者写入动态存储器的结束,大幅提高了动态存储器的带宽利用率,同时硬件逻辑电路复杂度低,对访问端口的数目没有限制,可移植性和扩展性高。
权利要求
1.一种提高动态存储器带宽利用率的方法,包括动态存储器控制器在向动态存储器发送操作指令的同时接收并存储各访问端口的访问请求,当正在发送的操作指令发送完毕后向所述动态存储器发送存储的下一操作指令。
2.如权利要求1所述的方法,其特征在于,所述方法还包括所述动态存储器控制器向动态存储器发送下一操作指令时不需要等待已发送的操作指令需写入的数据完全写入所述动态存储器或已发送的操作指令需请求的数据从动态存储器中完全读出。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括所述动态存储器控制器接收所述动态存储器返回的请求数据;所述动态存储器控制器在向动态存储器发送操作指令以及接收访问端口的访问请求的同时,还将接收的所述请求数据发送至对应的访问端口。
4.如权利要求3所述的方法,其特征在于所述动态存储器控制器接收并存储访问端口的访问请求是指,动态存储器控制器按照收到访问请求的先后顺序存储各访问请求形成操作指令队列, 当访问请求为写操作时还按照写操作的先后顺序存储要写入动态存储器的数据,以及当访问请求为读操作时还生成指示信息并按照读操作的先后顺序存储所述指示信息;所述存储的各操作指令包括访问的动态存储器的起始地址、访问长度及操作类型;所述存储的各指示信息包括访问长度及访问编号。
5.如权利要求1或2所述的方法,其特征在于所述动态存储器控制器设置操作指令计数器,其初始值为0,当操作指令队列有新的操作指令加入时计数器值加1,当该队列中的一操作指令发送完毕后计数器减1 ;所述动态存储器控制器检测到操作指令计数器的值由0变为1时向动态存储器发送操作指令,以及检测到当前发送的操作指令发送完毕且操作指令计数器值不为0时向动态存储器发送操作指令。
6.如权利要求5所述的方法,其特征在于所述动态存储器控制器还设置地址计数器,用于记录向动态存储器发送的地址信息个数,其初始值为0,动态存储器控制器每发送一个地址信息则地址计数器加1,当地址计数器的值与当前操作指令指示的长度一致时清0,当动态存储器控制器检测到地址计数器的值清0时将操作指令队列计数器减1。
7.如权利要求1或2所述的方法,其特征在于所述动态存储器控制器还设置指示信息计数器,其初始值为0,当指示信息队列有新的指示信息加入时指示信息计数器值加1,当该队列中的一指示信息操作完成后指示信息计数器减1,当动态存储器控制器检测到指示信息计数器的值由0变为1时读取指示信息队列中的首个指示信息,以及当根据当前指示信息发送的数据发送完毕且指示信息计数器值不为0时读取指示信息队列中的首个指示信息,当收到动态存储器返回的请求数据后根据所述读取的指示信息向对应的访问端口发送请求数据。
8.如权利要求7所述的方法,其特征在于所述动态存储器控制器还设置数据计数器,用于记录动态存储器向动态存储器控制器发送的数据个数,其初始值为0,动态存储器向动态存储器控制器每发送一个数据则数据计数器加1,当数据计数器的值与当前指示信息指示的访问长度一致时清0,当动态存储器控制器检测到数据计数器的值清0时将指示信息队列计数器减1。
9.如权利要求1或2所述的方法,其特征在于所述动态存储器控制器向动态存储器发送操作指令包括操作类型及请求访问的地址信息,当所述操作类型为写操作时还包括要写入的数据。
10.如权利要求4所述的方法,其特征在于若所述动态存储器控制器同时收到多个访问端口的访问请求,则按照访问端口的优先级存储访问请求,优先级高的访问端口的访问请求位于优先级低的访问端口的访问请求之前。
11.一种提高动态存储器带宽利用率的动态存储器控制器,包括仲裁模块、存储模块及发送模块;其特征在于所述仲裁模块,用于在发送模块发送操作指令的同时接收各访问端口的访问请求并将访问请求存储至所述存储模块;所述发送模块,用于向动态存储器发送操作指令,以及当正在发送的操作指令发送完毕后向所述动态存储器发送存储的下一操作指令。
12.如权利要求11所述的动态存储器控制器,其特征在于所述发送模块向动态存储器发送下一操作指令时不需要等待已发送的操作指令需写入的数据完全写入所述动态存储器或已发送的操作指令需请求的数据从动态存储器中完全读出。
13.如权利要求11或12所述的动态存储器控制器,其特征在于所述发送模块还用于接收动态存储器返回的请求数据,以及在向动态存储器发送操作指令的同时,将接收的所述请求数据发送至对应的访问端口。
14.如权利要求13所述的动态存储器控制器,其特征在于所述存储模块包括存储单元1、存储单元2及存储单元3 ;所述仲裁模块接收并存储访问端口的访问请求是指仲裁模块按照收到访问请求后生成操作指令,并将各操作指令按照请求的先后顺序存储至所述存储单元1形成操作指令队列;当访问请求为写操作时仲裁模块按照写操作的先后顺序将要写入动态存储器的数据存储至所述存储单元2 ;当访问请求为读操作时仲裁模块生成指示信息,并将各指示信息按照读操作的先后顺序存储至所述存储单元3形成指示信息队列;所述存储的各操作指令包括访问的动态存储器的起始地址、访问长度及操作类型;所述存储的各指示信息包括访问长度及访问编号。
15.如权利要求13所述的动态存储器控制器,其特征在于所述动态存储器控制器还包括读使能模块;所述发送模块包括发送单元1 ;所述读使能模块包括读使能单元1,用于设置操作指令计数器,其初始值为0,当操作指令队列有新的操作指令加入时计数器值加1,当该队列中的一操作指令发送完毕后计数器减1 ;还用于检测到操作指令计数器的值由0变为1时向发送单元1发送读使能信号,以及当发送单元1当前发送的操作指令发送完毕且操作指令计数器值不为0时向发送单元1 发送读使能信号。
16.如权利要求15所述的动态存储器控制器,其特征在于所述读使能单元1还用于设置地址计数器,用于记录发送单元1向动态存储器发送的地址信息个数,其初始值为0,发送单元1每发送一个地址信息则所述地址计数器加1,当地址计数器的值与当前操作指令指示的长度一致时清0,当读使能单元1检测到地址计数器的值清0时将操作指令队列计数器减1。
17.如权利要求13所述的动态存储器控制器,其特征在于所述动态存储器控制器还包括读使能模块;所述发送模块包括发送单元2 ;所述读使能模块包括读使能单元2,用于设置指示信息计数器,其初始值为0,当指示信息队列有新的指示信息加入时指示信息计数器值加1,当该队列中的一指示信息操作完成后指示信息计数器减1,还用于检测到指示信息计数器的值由0变为1时向发送单元2发送读使能信号,以及当发送单元2根据当前指示信息发送的数据发送完毕且指示信息计数器值不为0时向发送单元2发送读使能信号;所述发送单元2收到读使能信号后从指示信息队列中获取首个指示信息,并将动态存储器返回的请求数据根据获取的指示信息的指示发送至对应的访问端口。
18.如权利要求17所述的动态存储器控制器,其特征在于所述读使能单元2还用于设置数据计数器,记录动态存储器向动态存储器控制器发送的数据个数,其初始值为0,动态存储器向动态存储器控制器每发送一个数据则数据计数器加1,当数据计数器的值与当前指示信息指示的访问长度一致时清0,当读使能单元2检测到数据计数器的值清0时将指示信息队列计数器减1。
19.如权利要求14所述的动态存储器控制器,其特征在于若所述仲裁模块同时收到多个访问端口的访问请求,则按照访问端口的优先级存储访问请求,优先级高的访问端口的访问请求位于优先级低的访问端口的访问请求之前。
20.如权利要求15所述的动态存储器控制器,其特征在于所述发送单元1是在收到读使能信号后发送操作指令的,发送单元1向动态存储器发送的操作指令包括操作类型及请求访问的地址信息,当所述操作类型为写操作时还包括要写入的数据。
全文摘要
本发明提供一种提高动态存储器带宽利用率的动态存储器控制器及方法,该方法包括动态存储器控制器在向动态存储器发送操作指令的同时接收并存储各访问端口的访问请求,当正在发送的操作指令发送完毕后向所述动态存储器发送存储的下一操作指令。采用本发明的技术方案,可有效解决现有技术中动态存储器带宽利用率低的技术问题。
文档编号G06F13/16GK102236622SQ20101016538
公开日2011年11月9日 申请日期2010年4月30日 优先权日2010年4月30日
发明者彭贵福, 王红展, 章恒 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1