内存读写的动态控制方法及装置制造方法

文档序号:6491479阅读:125来源:国知局
内存读写的动态控制方法及装置制造方法
【专利摘要】本发明提供了一种内存读写的动态控制方法及装置,该方法包括:对从缓存管理队列输出的当前待处理读请求进行合法性和超时判断;将所述当前待处理读请求分别与抵消后数据缓存队列中的请求内容、写请求和数据缓存队列中的请求内容以及待处理请求和数据缓存队列中的请求内容实时地进行比较,获得三个条件标志;当确定所述当前待处理读请求合法、未超时且所述三个条件标志均表示不存在相同的请求,则将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理,否则,将该当前待处理读请求保持等待状态。本发明既可以保证读写数据的正确性,又能很大程度提高读写Memory总线的效率。
【专利说明】内存读写的动态控制方法及装置
【技术领域】
[0001]本发明涉及数据存储技术,具体涉及到读写请求条件输出的读写Memory的动态控制,尤其涉及一种内存读写的动态控制方法及装置。
【背景技术】
[0002]在数据存储内存(Memory)读写的动态控制中,根据控制条件动态地输出数据读写请求,保证存储数据的正确性,通过条件来判断总线是否采用流水控制管理,对于总线效率的提高,系统带宽的最大化,系统数据存储的性能的提升有很大的作用。
[0003]数据存储Memory读写的动态控制,一般来说,可分为读写Memory请求的动态控制方式,动态控制条件的控制输出方式,以及配合动态控制的仲裁输出读写请求队列缓存管理和读写Memory总线的流水控制。
[0004]对Memory读写请求条件性动态控制,就是说读写请求的发出是由条件动态地控制发出的,系统本身的任务的下发过程中,如果前后2次任务之间的数据是存在交叠的,数据的正确性和Memory的读写效率是相互矛盾的,这就要求上一次的任务没有写到Memory中,下一次的任务是不能去读数据请求的,这样就需要在处理的过程中采用完全的顺序处理方式,但是如果采用完全的顺序处理方式,这样流水处理不起来,读写总线的带宽和延时都达不到系统的需求,不能单一地采用完全顺序的处理方式,也不能采用请求连续输出的处理方式;前者虽然可以保证数据的正确性,但是从效率上讲是要损失很多带宽的,带宽满足不了系统的需求;后者虽然可以保证带宽流量,保证不了数据的正确性,交叠的任务越多,数据错误的概率就越大,需要减少控制条件产生的时间,控制条件中有相等的请求时,用顺序的处理方式,这时候要牺牲带宽来保证数据的正确性,但是当没有相等请求时,请求的输出就要连续输出处理,保证读写的带宽最大化,由于系统任务的下发是随机的,不同请求之间请求数据的交叠也是动态变化的,这就导致读写请求的输出和读写Memory总线的控制动态的变化。
[0005]动态控制条件的正确判断成为了动态输出控制的关键,很多时候对于还没有写入Memory的数据的请求,都是用先进先出队列(FIFO)或者随机存储器(RAM)存起来进行控制,这样就导致每个周期(cycle)都要读出请求条件判断是否有相等的请求在途中没有写到Memory,如果有,当前请求是不会发出,直到相等请求的数据写到Memory,再请求发出再去请求处理,这样就可以保证系统运行中数据的正确性,但是FIFO写入读出是比较花费时间的。
[0006]仲裁和流水控制是动态读写Memory效率最大化的一种保证,是一种辅助控制的手段,可以进一步的提高效率,很多时候仲裁的输出是上次读写请求处理结束释放总线,仲裁才输出下一次读写请求,按照这种方式2次仲裁之间肯定会浪费一定的cycle,造成总线的利用率不高,这样虽然可以满足存储数据的正确性,对于总线带宽和效率要求很高的系统这种仲裁方式很难满足系统要求,对于Memory的动态控制这种仲裁方式很难保证效率的最大化。[0007]对于读写Memory总线的流水处理,是一种读写总线管理控制的方式,就是说相邻2次读写地址和读写数据占用地址总线和数据总线的连续性,诠释为总线的利用率,以往的处理方式都是上一次完全写入到Memory,再去处理新的读写请求,导致2次请求的地址总线和数据总线存在气泡,导致总线的效率不高,在一定程度上会影响到系统的性能,这样大大降低了读写的速度,影响读写的速率。

【发明内容】

[0008]本发明实施例提供了一种内存读写的动态控制方法和装置,以解决现有的数据的正确性和总线带宽流量存在冲突的问题。
[0009]本发明实施例提供了一种内存读写的动态控制方法,该方法包括:
[0010]对从缓存管理队列输出的当前待处理读请求进行合法性和超时判断;
[0011]将所述当前待处理读请求分别与抵消后数据缓存队列中的请求内容、写请求和数据缓存队列中的请求内容以及待处理请求和数据缓存队列中的请求内容实时地进行比较,获得三个条件标志;
[0012]当确定所述当前待处理读请求合法、未超时且所述三个条件标志均表示不存在相同的请求,则将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理,否则,将该当前待处理读请求保持等待状态。
[0013]优选地,所述方法还包括:
[0014]对从写请求和数据缓存队列输出的当前待处理写请求进行合法性和超时判断;
[0015]当确定所述当前待处理写请求合法且未超时,则将所述当前待处理写请求写入内存,否则,丢弃所述当前待处理写请求。
[0016]优选地,所述对当前待处理读请求进行合法性和超时判断之前,所述方法还包括:
[0017]仲裁输出的待处理读请求写入所述缓存管理队列,当所述缓存管理队列满时,停止仲裁输出,当所述缓存管理队列非空且上一请求非法或者超时丢弃或处理结束时,从所述缓存管理队列中输出所述当前待处理读请求;或者
[0018]所述对从当前待处理写请求进行合法性和超时判断之前,所述方法还包括:
[0019]仲裁输出的待处理写请求写入所述写请求和数据缓存队列,当所述写请求和数据缓存队列满时,停止仲裁输出,当所述写请求和数据缓存队列非空且上一请求非法或者超时丢弃或处理结束时,从所述写请求和数据缓存队列中输出所述当前待处理写请求。
[0020]优选地,所述将所述当前待处理请求输出至待处理请求和数据缓存队列等待处理之后,该方法还包括:
[0021]在对所述当前待处理读请求的处理过程中,预先判断所述待处理请求和数据缓存队列中是否还有新的请求,如果有,则在当前待处理读请求传输完成前来完成对下一请求的预处理,待所述当前待处理读请求处理结束,直接处理所述下一请求;其中,对所述下一请求的预处理时间小于对所述当前待处理读请求的处理时间。
[0022]优选地,所述对所述当前待处理读请求的处理和对所述下一请求的预处理均包括合法性判断、地址换算和读写冲突检测。
[0023]优选地,所述待处理请求和数据缓存队列、所述写请求和数据缓存队列和所述抵消后数据缓存队列为采用寄存器组模拟的先进先出队列。
[0024]优选地,当所述当前待处理读请求为读抵消请求时,将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理之后,该方法还包括:
[0025]根据该读抵消请求从内存中读出数据进行抵消处理,将抵消处理后的数据写入写请求和数据缓存队列中。
[0026]本发明实施例还提供了一种内存读写的动态控制装置,该装置包括:
[0027]判断模块,用于对从缓存管理队列输出的当前待处理读请求进行合法性和超时判断;
[0028]标志获得模块,用于将所述当前待处理读请求分别与抵消后数据缓存队列中的请求内容、写请求和数据缓存队列中的请求内容以及待处理请求和数据的缓存队列中的请求内容实时地进行比较,获得三个条件标志;
[0029]请求动态控制模块,用于当确定所述当前待处理读请求合法、未超时且所述三个条件标志均表示不存在相同的请求,则将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理,否则,将该当前待处理读请求保持等待状态。
[0030]优选地,所述判断模块,还用于对从写请求和数据缓存队列输出的当前待处理写请求进行合法性和超时判断;
[0031]所述请求动态控制模块,还用于当确定所述当前待处理写请求合法且未超时,则将所述当前待处理写请求写入内存,否则,丢弃所述当前待处理写请求。
[0032]优选地,所述装置还包括:仲裁模块,用于将仲裁输出的待处理读请求写入所述缓存管理队列,确定当所述缓存管理队列满时,停止仲裁输出,当所述缓存管理队列非空且上一请求非法或者超时丢弃或处理结束时,从所述缓存管理队列中输出所述当前待处理读请求;或者,仲裁输出的待处理写请求写入所述写请求和数据缓存队列,当所述写请求和数据缓存队列满时,停止仲裁输出,当所述写请求和数据缓存队列非空且上一请求非法或者超时丢弃或处理结束时,从所述写请求和数据缓存队列中输出所述当前待处理写请求。
[0033]优选地,该装置还包括:流水控制管理模块,用于在对所述当前待处理读请求的处理过程中,预先判断所述待处理请求和数据缓存队列中是否还有新的请求,如果有,则在当前待处理读请求传输完成前来完成对下一请求的预处理,待所述当前待处理读请求处理结束,直接处理所述下一请求;其中,对所述下一请求的预处理时间小于对所述当前待处理读请求的处理时间。
[0034]优选地,所述待处理请求和数据缓存队列、所述写请求和数据缓存队列和所述抵消后数据缓存队列为采用寄存器组模拟的先进先出队列。
[0035]优选地,当所述当前待处理读请求为读抵消请求时,该装置还包括:
[0036]数据抵消处理模块,用于根据该读抵消请求从内存中读出数据进行抵消处理,将抵消处理后的数据写入写请求和数据缓存队列中。
[0037]采用上述方法和装置,与现有技术相比,主要是增加了条件标志输出的控制,根据条件动态的输出请求处理,根据条件时而完全顺序的处理,保证数据正确性,不满足条件时,连续的无气泡的输出处理,保证读写的带宽流量;而仲裁的队列管理和流水控制保证动态控制过程中,当前的读写请求被响应后或者被丢弃后可以立刻读出新的读写请求,去请求处理,可进一步提高读写带宽;采用控制条件来控制Memory读写的动态输出,既可以保证读写数据的正确性,又可以保证读写总线的读写带宽最大化。
【专利附图】

【附图说明】
[0038]图1是本发明内存读写的动态控制装置的架构图;
[0039]图2是本发明内存读写的动态控制装置的结构图;
[0040]图3是本发明内存读写的动态控制方法实施例的流程图;
[0041]图4是本发明内存读写的动态控制装置实施例的结构示意图。
【具体实施方式】
[0042]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0043]如图1所示,是本发明内存读写的动态控制装置的架构图,其中,仲裁输出缓存管理和读写流水控制管理是Memory动态控制实现的前提条件,是一种辅助手段,正是由于对仲裁输出请求缓存队列的管理,在当前请求非法丢弃或者当前请求处理结束的时候,立刻可以从队列中读出新的请求去处理,可以减少再次仲裁花费的时间,这是提高总线效率的条件之一;读写请求的流水控制管理,这种控制方式在当前请求处理的过程中,预判是否有新的请求,如果有提前完成合法性判断和地址的换算,流水的控制管理的前提是合法性判断和地址的换算预处理时间要小于当前请求的处理时间,否则2次读写请求的数据总线和地址总线问还是会有气泡的,这是提高总线效率的条件之二;请求输出动态控制和动态条件输出标志的控制在二者的基础保证了效率的最大化和业务数据的正确性,时而根据控制条件的输出,保证了数据的正确性,时而连续的输出请求处理,保证带宽满足系统的要求。所谓的动态控制就是,当有控制条件的时候,按照条件输出请求,保证了请求数据的正确性,没有控制条件的时候可以最大带宽的读写处理,从而满足系统性能的需求。
[0044]上述架构主要适用于对Memory的读写总线的效率要求很高和对于读写数据的正确性要求也是很高的Memory读写控制系统。
[0045]基于上述架构的内存读写的动态控制方法包括:
[0046]步骤一、对从缓存管理队列输出的当前待处理读请求进行合法性和超时判断;
[0047]步骤二、将所述当前待处理读请求分别与抵消后数据缓存队列中的请求内容、写请求和数据缓存队列中的请求内容以及待处理请求和数据缓存队列中的请求内容实时地进行比较,获得三个条件标志;
[0048]步骤三、当确定所述当前待处理读请求合法、未超时且所述三个条件标志均表示不存在相同的请求,则将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理,否则,将该当前待处理读请求保持等待状态。
[0049]另外,所述方法还包括:对从写请求和数据缓存队列输出的当前待处理写请求进行合法性和超时判断;当确定所述当前待处理写请求合法且未超时,则将所述当前待处理写请求写入内存,否则,丢弃当前待处理写请求。
[0050]具体的实现步骤,主要包括以下几步:
[0051]1、动态读写条件的控制:[0052]具体的实现方式如下步骤:
[0053]S101、仲裁输出请求后,满足动态输出条件、合法的、没有超时的待处理请求是以REG组队列的方式来管理,分别有待处理请求和数据缓存队列、写请求和数据缓存队列及缓存管理队列,最多备份16个,可以根据实际情况自己选择适当的值,如果这个3个16个REG组队列都是满的,没有处理释放空间,会控制仲裁的输出和缓存的读取的,是不会再输出新的请求的;
[0054]S102、每输出新的请求,备份的请求就依次移位寄存,给新的请求分配REG组队列空间;
[0055]S103、对处理请求计数,输出一个处理请求计数+1,请求处理完成计数-1,这样我们就知道缓存队列中还有多少个请求没有被处理完成,需要和当前发出请求比较,来动态的控制当前待处理请求的发出;
[0056]S104、对每个寄存组队列每一个空间设置一个标志,忙闲状态;
[0057]S105、根据计数的个数和寄存器标志就知道当前要发出的处理的请求要和哪几个REG组队列空间内容比较;
[0058]S106、根据比较结果输出一个当前请求能否立即发送的标志。
[0059]2、控制条件动态输出读写请求:
[0060]具体的实现方式如下步骤:
[0061]S201、判断当前待处理请求的合法性和超时否,如果合法且不超时,设置当前合法性判断条件标志为高;
[0062]S202、当前待处理请求与运算后数据缓存REG组队列的内容比较,如果没有相等的,设置动态输出控制条件标志(即条件标志)为高,表示当前请求允许输出标志;
[0063]其中,运算后数据缓存REG组队列为抵消后数据缓存队列的一种表现形式;
[0064]S203、当前待处理请求与写Memory的请求队列缓存REG组队列内容比较,如果没有相等的,设置动态输出控制条件标志为高,表示当前请求允许输出标志;
[0065]其中,写Memory的请求队列缓存REG组队列为写请求和数据缓存队列的一种表现形式,需要说明的是,写请求和数据缓存队列是一个队列名称;
[0066]S204、当前待处理请求与待处理请求和数据的缓存队列比较,如果没有相等的,设置动态输出控制条件标志为高,表示当前请求允许输出标志;
[0067]同样地,待处理请求和数据的缓存队列也是一个队列名称;
[0068]即上述步骤202-204是将当前待处理请求分别与三个队列中的请求内容进行比较,根据比较结果设置条件标志;
[0069]S205、如果满足条件201-204,当前的待处理请求才能输出去做数据的抵消,用于数据的抵消运算;如果不满足条件201,该请求立刻丢弃,从仲裁输出缓存队列立刻读出新的请求继续判断;如果不满足202-204其中的任何一个条件,该请求就等待,直到满足所有条件再输出请求。
[0070]具体的实现结构如图2所示。
[0071]3、请求源仲裁输出缓存队列的管理方式:
[0072]S301、仲裁输出用逻辑FIFO (输出无延时)来缓存管理,如果FIFO队列满,则仲裁为忙状态,停止仲裁输出;如果逻辑FIFO为非空,则请求发送读写请求;[0073]S302、读写数据相互关联,写Memory的数据需要读Memory数据运算得到,运算之后的请求要备份到队列缓存;
[0074]S303、写Memory的请求也要队列缓存;
[0075]S304、寄存器队列记录302和303之间的请求。
[0076]4、Memory读写的流水控制:
[0077]为了保证读写Memory的数据总线和地址总线的连续占用,提高读写总线的利用率,对于Memory的读写控制采用流水控制管理,就是说在当前请求传输数据和地址的过程中,预先来判断队列里面是否还有新的请求,如果有则在当前请求传输完成前来完成下一次请求的非法性判断、地址换算、读写冲突检测等,当前数据处理结束,下一个cycle将读写地址和读写请求挂到总线上去读写下一个处理粒度的数据,避免总线上有气泡,保证读写总线100%的利用率,
[0078]具体的实现方式如下步骤:
[0079]S401、当前请求处理过程中,预判断请求队列是否还有新的读写请求等待处理,如果有则读出预处理,没有则等待,直到队列非空则读出新的请求进行处理保证在第一时间响应队列的请求处理。
[0080]S402、对预读或者新读写请求进行合法性检查,如果合法则设置合法性标志,否则丢弃请求,重复S401继续处理。
[0081]S403、对预读或者新读写请求进行地址的换算处理,对于Memory的读写,一般来说请求和读写Memory的地址是不一致的,它们之间有一定的换算公式的,在读写之前需要换算。
[0082]S404、如果换算和检测过程中提前完成,则将预处理的请求用REG寄存,直到当前的请求处理结束释放总线,下cycle预处理的请求立刻占用总线,保证读写总线效率的最大化。
[0083]上述内存读写动态控制方法,就是通过对控制条件的灵活控制,根据控制条件动态的输出读写请求,读写请求输出之前需要比较是否合法和是否有与当前请求交叠的请求在处理中没有写到Memory,有相同请求则采用完全顺序处理方式,牺牲带宽来保证数据的正确性,没有相同请求就可以连续处理,保证带宽的最大化;而请求源仲裁输出队列的管理和对Memory读写采用流水控制的管理方式,是一种辅助手段,从而既可以保证读写数据的正确性,又能很大程度提高读写Memory总线的效率。
[0084]如图3所示,是本发明内存读写的动态控制方法实施例的流程图,具体的原理可参见图2,在该实施例中,请求仲裁输出,仲裁的目的就是响应系统应该处理哪个请求,仲裁输出的请求先写入队列,由队列的非空状态来管理发出请求处理,当队列满时就会将仲裁的rdreqbusy置为忙状态,控制仲裁的输出,防止请求溢出丢弃,发现有请求要处理,根据队列的非空或者当前时间戳非法丢弃或者当前请求申请完成条件自动读出下一个请求处理,读出的请求并不是马上被处理的,而是要经过一种动态的实时的判断,首先判断的是合法性,请求是由一些内容组成的,这些内容是否合法,而且系统任务的调度也是有一定的时间性的,如果内容和时间范围任何一个非法,那么当前请求被认为是非法的,要丢弃的。采用动态的读写控制,就是为了保证数据的正确性和总线的读写效率,数据正确性的保证就是读出需要的业务数据,在基带芯片的干扰对消系统中,系统下发调度的任务,有时候2个任务之间读写的内容是有交叠,就是所谓的部分受益,必须保证前一任务写到Memory中,后一次任务才能去处理,整个控制过程是流水控制的实现,控制过程对很多请求进行缓存,当前请求要输出处理,缓存的请求里面是不能有和当前请求相等的时间戳,因为后一任务请求要利用和他相等的前一个任务请求的结果,前一个任务请求任务必须先写到Memory,才能处理这次请求。有3种缓存的请求需要判断比较:抵消后数据缓存队列,写请求和数据缓存队列的缓存,以及待处理请求和数据的缓存队列,上述缓存队列不是真实意义上的队列,是采用REG组模拟的FIFO控制方式,这样可以减少输出控制标志的时间,输出的处理请求也可以及时发出,这样做必须损失部分带宽来完成这个过程,但是系统不能一直这样损失带宽的,当不涉及到任务时间戳交叠的任务时,请求是不需要等待的,读写总线带宽的效率必须最大化。
[0085]上述实施例就是根据合理动态控制读写Memory的方式,有效的去读写Memory ;减少读写总线上的气泡,提高读写总线的带宽,保证读写数据的正确性,从而满足系统性能需求。
[0086]本发明实施例还提供了一种内存读写的动态控制装置,如图4所示,该装置包括:
[0087]判断模块41,用于对从缓存管理队列输出的当前待处理读请求进行合法性和超时判断;
[0088]标志获得模块42,用于将所述当前待处理读请求分别与抵消后数据缓存队列中的请求内容、写请求和数据缓存队列中的请求内容以及待处理请求和数据的缓存队列中的请求内容实时地进行比较,获得三个条件标志;
[0089]请求动态控制模块43,用于当确定所述当前待处理读请求合法、未超时且所述三个条件标志均表示不存在相同的请求,则将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理,否则,将该当前待处理读请求保持等待状态。
[0090]类似地,对于待处理写请求,所述判断模块,还用于对从写请求和数据缓存队列输出的当前待处理写请求进行合法性和超时判断;该请求动态控制模块,还用于当确定所述当前待处理写请求合法且未超时,则将所述当前待处理写请求写入内存,否则,丢弃当前待处理写请求。
[0091]另外,所述装置还包括:仲裁模块44,用于将仲裁输出的待处理读请求写入所述缓存管理队列,确定当所述缓存管理队列满时,停止仲裁输出,当所述缓存管理队列非空且上一请求非法或者超时丢弃或处理结束时,从所述缓存管理队列中输出所述当前待处理读请求;或者,仲裁输出的待处理写请求写入所述写请求和数据缓存队列,当所述写请求和数据缓存队列满时,停止仲裁输出,当所述写请求和数据缓存队列非空且上一请求非法或者超时丢弃或处理结束时,从所述写请求和数据缓存队列中输出所述当前待处理写请求。
[0092]进一步地,该装置还包括:流水控制管理模块45,用于在对所述当前待处理读请求的处理过程中,预先判断所述待处理请求和数据缓存队列中是否还有新的请求,如果有,则在当前待处理读请求传输完成前来完成对下一请求的预处理,待所述当前待处理读请求处理结束,直接处理所述下一请求;其中,对所述下一请求的预处理时间小于对所述当前待处理读请求的处理时间。
[0093]其中,所述待处理请求和数据缓存队列、所述写请求和数据缓存队列和所述抵消后数据缓存队列为采用寄存器组模拟的先进先出队列。[0094]另外,当所述当前待处理读请求为读抵消请求时,该装置还包括:数据抵消处理模块46,用于根据该读抵消请求从内存中读出数据进行抵消处理,将抵消处理后的数据写入写请求和数据缓存队列中。
[0095]图4为内存读写的动态控制装置的虚拟结构图,图1更为细化,但二者基于的原理和表达的内容相同。
[0096]上述内存读写的动态控制装置,根据合理动态控制读写Memory的方式,有效的去读写Memory ;减少读写总线上的气泡,提高读写总线的带宽,保证读写数据的正确性,从而满足系统性能需求。
[0097]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,上述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0098]以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种内存读写的动态控制方法,其特征在于,该方法包括: 对从缓存管理队列输出的当前待处理读请求进行合法性和超时判断; 将所述当前待处理读请求分别与抵消后数据缓存队列中的请求内容、写请求和数据缓存队列中的请求内容以及待处理请求和数据缓存队列中的请求内容实时地进行比较,获得三个条件标志; 当确定所述当前待处理读请求合法、未超时且所述三个条件标志均表示不存在相同的请求,则将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理,否则,将该当前待处理读请求保持等待状态。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 对从写请求和数据缓存队列输出的当前待处理写请求进行合法性和超时判断; 当确定所述当前待处理写请求合法且未超时,则将所述当前待处理写请求写入内存,否则,丢弃所述当前待处理写请求。
3.根据权利要求1或2所述的方法,其特征在于: 所述对当前待处理读请求进行合法性和超时判断之前,所述方法还包括: 仲裁输出的待处理读请求写入所述缓存管理队列,当所述缓存管理队列满时,停止仲裁输出,当所述缓存管理队列非空且上一请求非法或者超时丢弃或处理结束时,从所述缓存管理队列中输出所述当前待处理读请求;或者 所述对从当前待处理写请求进行合法性和超时判断之前,所述方法还包括: 仲裁输出的待处理写请求写入所述写请求和数据缓存队列,当所述写请求和数据缓存队列满时,停止仲裁输出,当所述写请求和数据缓存队列非空且上一请求非法或者超时丢弃或处理结束时,从所述写请求和数据缓存队列中输出所述当前待处理写请求。
4.根据权利要求1或2所述的方法,其特征在于: 所述将所述当前待处理请求输出至待处理请求和数据缓存队列等待处理之后,该方法还包括: 在对所述当前待处理读请求的处理过程中,预先判断所述待处理请求和数据缓存队列中是否还有新的请求,如果有,则在当前待处理读请求传输完成前来完成对下一请求的预处理,待所述当前待处理读请求处理结束,直接处理所述下一请求;其中,对所述下一请求的预处理时间小于对所述当前待处理读请求的处理时间。
5.根据权利要求4所述的方法,其特征在于: 所述对所述当前待处理读请求的处理和对所述下一请求的预处理均包括合法性判断、地址换算和读写冲突检测。
6.根据权利要求1或2所述的方法,其特征在于: 所述待处理请求和数据缓存队列、所述写请求和数据缓存队列和所述抵消后数据缓存队列为采用寄存器组模拟的先进先出队列。
7.根据权利要求1或2所述的方法,其特征在于: 当所述当前待处理读请求为读抵消请求时,将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理之后,该方法还包括: 根据该读抵消请求从内存中读出数据进行抵消处理,将抵消处理后的数据写入写请求和数据缓存队列中。
8.—种内存读写的动态控制装置,其特征在于,该装置包括: 判断模块,用于对从缓存管理队列输出的当前待处理读请求进行合法性和超时判断; 标志获得模块,用于将所述当前待处理读请求分别与抵消后数据缓存队列中的请求内容、写请求和数据缓存队列中的请求内容以及待处理请求和数据的缓存队列中的请求内容实时地进行比较,获得三个条件标志; 请求动态控制模块,用于当确定所述当前待处理读请求合法、未超时且所述三个条件标志均表示不存在相同的请求,则将所述当前待处理读请求输出至待处理请求和数据缓存队列等待处理,否则,将该当前待处理读请求保持等待状态。
9.根据权利要求8所述的装置,其特征在于: 所述判断模块,还用于对从写请求和数据缓存队列输出的当前待处理写请求进行合法性和超时判断; 所述请求动态控制模块,还用于当确定所述当前待处理写请求合法且未超时,则将所述当前待处理写请求写入内存,否则,丢弃所述当前待处理写请求。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括: 仲裁模块,用于将仲裁输出的待处理读请求写入所述缓存管理队列,确定当所述缓存管理队列满时,停止仲裁输出,当所述缓存管理队列非空且上一请求非法或者超时丢弃或处理结束时,从所述缓存管理队列中输出所述当前待处理读请求;或者,仲裁输出的待处理写请求写入所述写请求和数据缓存队列,当所述写请求和数据缓存队列满时,停止仲裁输出,当所述写请求和数据缓存队列非空且上一请求非法或者超时丢弃或处理结束时,从所述写请求和数据缓存队列中输出所述当前待处理写请求。
11.根据权利要求8或9所述的装置,其特征在于,该装置还包括: 流水控制管理模块,用于在对所述当前待处理读请求的处理过程中,预先判断所述待处理请求和数据缓存队列中是否还有新的请求,如果有,则在当前待处理读请求传输完成前来完成对下一请求的预处理,待所述当前待处理读请求处理结束,直接处理所述下一请求;其中,对所述下一请求的预处理时间小于对所述当前待处理读请求的处理时间。
12.根据权利要求8或9所述的装置,其特征在于: 所述待处理请求和数据缓存队列、所述写请求和数据缓存队列和所述抵消后数据缓存队列为采用寄存器组模拟的先进先出队列。
13.根据权利要求8或9所述的装置,其特征在于,当所述当前待处理读请求为读抵消请求时,该装置还包括: 数据抵消处理模块,用于根据该读抵消请求从内存中读出数据进行抵消处理,将抵消处理后的数据写入写请求和数据缓存队列中。
【文档编号】G06F3/06GK103838513SQ201210478958
【公开日】2014年6月4日 申请日期:2012年11月22日 优先权日:2012年11月22日
【发明者】刘辉 申请人:深圳市中兴微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1