用于消除具有多个存储器存取的dsp/处理器中的存储缓冲器的架构和方法

文档序号:6362176阅读:176来源:国知局
专利名称:用于消除具有多个存储器存取的dsp/处理器中的存储缓冲器的架构和方法
技术领域
本发明大体上涉及处理器,且更明确地说,涉及用于消除具有多个存储器存取的处理器中的存储缓冲器的架构和方法。
背景技术
对数据和数据操作的较快处理的需要已成为在数据处理系统领域中所见的改进背后的推动力。改进已导致开发更快、更小和更复杂的处理器和数字信号处理器(DSP),包含实施并行处理、流水线化和/或超长指令字(VLIW)处理的处理器以及多处理器配置和分散式存储系统。并行处理可通过使处理器能够同时执行多个指令来增加处理器的整体速度。在一些情况下,为了增加被处理的指令的数目且因此增加速度,可使处理器流水线化。流水线指在处理器中提供分离级,其中每一级执行为执行指令所必要的小步骤中的一者或一者以上。在多个指令试图同时执行和存取存储器或其它电路时,并行处理和流水线化可导致架构依赖性和时序问题。处理器通常提供加载指令和存储指令以存取位于高速缓冲存储器和/或主存储器中的信息。加载指令可包含存储器地址(在指令或地址寄存器中)和目标寄存器。当执行加载指令时,可(例如,从高速缓冲存储器、主存储器或其它存储装置)检索存储在存储器地址中的数据且将所述数据置于加载指令中识别的目标寄存器中。类似地,存储指令可包含存储器地址和源寄存器。当执行存储指令时,可将来自源寄存器的数据写入到存储指令中识别的存储器地址。超长指令字(VLIW)处理器和DSP执行属于同一包的指令的群组。每一包包含多个槽。当当前包的槽中的所有指令完成执行时,处理器开始处理下一包。如果包中的任一指令的执行延迟,那么所述包中的其它指令中无一者可完成。如果执行花费多个循环或归因于事故而停止,那么直到包中的所有指令都完成时才更新架构状态。处理器的架构状态包含其寄存器、高速缓冲存储器、存储器管理单元(MMU)、主存储器等的状态。VLIW包可含有多个存储器存取指令,例如多个加载指令、多个存储指令或加载指令与存储指令的组合。可对资料高速缓存以改进性能。然而,即使包中的指令中的一者可能完成,直到包中的所有其它指令也可完成之前一定不能这么做。这会对VLIW包内的架构更新产生交叉指令或交叉槽依赖性。举例来说,如果包含有加载指令和存储指令,那么在加载指令的高速缓存命中事件与存储指令的写入启用事件之间可存在架构和时序路径依赖性。如果加载指令不具有高速缓存命中(存储在高速缓冲存储器中的加载指令的数据),那么写入启用事件将延迟。注意,如果VLIW包含有两个存储操作,那么交叉槽架构依赖性影响两个槽中的存储指令的写入启用。可通过不同方法来解决多个存储器存取的这些架构依赖性和时序问题。一种方法为在存储器存取冲突或交叉槽依赖性期间将更新数据暂时存储在存储缓冲器中,以及在解决了存储器冲突之后或知道其它槽可完成之后用来自存储缓冲器的数据更新高速缓冲存储器。如果存储缓冲器大小适当,那么可较易于处置存储体冲突和后期流水线取消,以及提供某一速度/频率改进。然而,单独存储缓冲器需要额外面积且引入管理数据依赖性(内容可寻址存储器(CAM)结构)、数据缓冲(深度)需要、存储缓冲器中的数据的寿命和地址排序的复杂性。注意,存储缓冲器的面积随着VLIW包中所支持的存储的数目上升,因此在电力、面积和复杂性方面,存储缓冲器解决方案可能不具有成本效益。另一方法为归约流水线的时钟频率/速度以在存储器级之前实现依赖性解决方案且减轻时序问题。然而,这会导致性能损失,其直接影响整个处理器的时钟频率,增加加载/读取等待时间且可使得更难以处置存储体冲突。又一方法为使用单独读取和写入字线时钟,其中字线获得加载存取的早时钟和存储存取的晚时钟。然而,单独读取和写入字线时钟增加对读取和写入的存储器阵列时序验证的复杂性,且使得更难以处置存储体冲突。将需要具有用于处置无存储缓冲器的处理器(包含数字信号处理器(DSP))中的多个存储器存取的架构和方法,所述架构和方法保留流水线的频率益处,在存在多个存储器操作时对处理器速度具有极少影响且避免先前方法的其它缺点中的一些缺点。

发明内容
揭示一种用于控制对存储器的系统存取的方法,其包括:接收第一处理器指令和第二处理器指令;以及评估所述第一和第二处理器指令是否可在架构上完成。如果所述第一和第二处理器指令中的至少一者不能在架构上完成,那么延迟所述第一和第二处理器指令两者。如果所述第一和第二处理器指令两者都可在架构上完成且所述第一和第二处理器指令中的至少一者为写入指令,那么调整所述存储器的写入控制以考虑评估延迟。所述评估延迟可为足以评估所述第一和第二处理器指令是否可在架构上完成的时间。可在用于所述存储器的写入列选择中考虑所述评估延迟。当所述第一或第二处理器指令中的任一者为读取指令时,所述存储器的读取控制不考虑所述评估延迟。当所述第一和第二处理器指令两者都可在架构上完成且所述第一和第二处理器指令中的至少一者为写入指令时,可调整所述存储器的预充电时钟以考虑所述评估延迟。当所述第一和第二处理器指令两者都可在架构上完成且所述第一和第二处理器指令中的至少一者为存储器存取指令时,所述方法还可包含:将不考虑所述评估延迟的非延迟时钟信号发送到所述存储器的读取控制;将考虑所述评估延迟的经延迟时钟信号发送到所述存储器的写入控制;将所述非延迟时钟信号和所述经延迟时钟信号两者发送到所述存储器的预充电时钟多路复用器;以及选择性地控制所述预充电时钟多路复用器以将所述非延迟时钟信号和所述经延迟时钟信号中的一者作为预充电时钟信号而发送。所述预充电时钟的所述控制可包含:将所述非延迟时钟和所述经延迟时钟两者输入到多路复用器;以及将读取启用信号输入到所述多路复用器的选择输入,以使得当所述读取启用指示读取指令时,所述多路复用器将所述非延迟时钟作为所述预充电时钟而输出,且当所述读取启用不指示读取指令时,所述多路复用器将所述经延迟时钟作为所述预充电时钟而输出。所述评估步骤可包含确定所述第一和第二处理器指令的数据是否位于高速缓冲存储器中。所述评估步骤还可包含确定所述第一处理器指令是否为存储器存取指令以及确定所述第二处理器指令是否为存储器存取指令。所述方法还可包含当所述第一处理器指令为写入指令且所述第二处理器指令的数据位于高速缓冲存储器中或所述第二处理器指令不是存储器存取指令时,产生写入启用信号。揭示一种存储器存取控制器,其包含:第一槽,其用于处理第一指令;第二槽,其用于处理第二指令;系统组合逻辑,其产生指示所述第一和第二指令两者是否可在架构上完成的信号;以及延迟电路,其用于调整存储器的写入控制以考虑到由所述系统组合逻辑产生的所述信号的延迟。所述存储器存取控制器可并入到选自由以下各物组成的群组的装置中:音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元以及计算机。所述存储器存取控制器还可包含第一和第二高速缓冲存储器以及第一和第二高速缓存命中信号。所述第一高速缓存命中信号指示用于所述第一指令的数据是否存储在所述第一高速缓冲存储器中,且所述第二高速缓存命中信号指示用于所述第二指令的数据是否存储在所述第二高速缓冲存储器中。所述系统组合逻辑使用所述第一和第二高速缓存命中信号两者。所述系统组合逻辑可包含第一和第二槽组合逻辑。所述第一槽组合逻辑接收所述第二高速缓存命中信号且产生用于所述第一指令的存储启用信号。所述第二槽组合逻辑接收所述第一高速缓存命中信号且产生用于所述第二指令的存储启用信号。所述第一槽组合逻辑还可接收指示所述第一指令是否为存储指令的第一指令存储信号以及指示所述第二指令是否为存储器存取指令的第二指令无依赖性信号。所述第一槽组合逻辑可在所述第一指令存储信号指示所述第一指令为存储指令且所述第二高速缓存命中信号指示用于所述第二指令的所述数据在所述第二高速缓冲存储器中或所述第二指令无依赖性信号指示所述第二指令不是存储器存取指令时,产生用于所述第一指令的所述存储启用信号。所述第二槽组合逻辑还可接收指示所述第二指令是否为存储指令的第二指令存储信号以及指示所述第一指令是否为存储器存取指令的第一指令无依赖性信号。所述第二槽组合逻辑可在所述第二指令存储信号指示所述第二指令为存储指令且所述第一高速缓存命中信号指示用于所述第一指令的所述数据在所述第一高速缓冲存储器中或所述第一指令无依赖性信号指示所述第一指令不是存储器存取指令时,产生用于所述第二指令的所述存储启用信号。所述存储器存取控制器还可包含具有加载逻辑和存储逻辑的数据阵列。所述加载逻辑可接收所述第一高速缓存命中信号和所述第二高速缓存命中信号,且当所述第一和第二高速缓存命中信号中的一者指示所述数据阵列中的位置时,所述加载逻辑可产生指示所述数据阵列中的所述位置的字线信号。所述存储逻辑可接收用于所述第一指令的所述存储启用信号和用于所述第二指令的所述存储启用信号,且当用于所述第一和第二指令的所述存储启用信号中的一者指示所述数据阵列中的位置时,所述存储逻辑可产生指示所述数据阵列中的所述位置的写入芯片选择信号。当所述第一和第二指令中的任一者为写入指令时,所述系统组合逻辑可在所述第一和第二指令两者都可在架构上完成时产生写入启用信号。当产生了写入启用信号时,所述延迟电路可将所述存储器的所述写入控制延迟达与所述系统组合逻辑产生所述写入启用信号所花费的时间量大致相同的时间量。
所述存储器存取控制器还可包含用于所述存储器的写入列选择和读取列选择。所述延迟电路可调整所述存储器的所述写入列选择以考虑由所述系统组合逻辑产生的所述信号的所述延迟且不必调整所述存储器的所述读取列选择以考虑由所述系统组合逻辑产生的所述信号的所述延迟。所述存储器存取控制器还可包含具有第一输入、第二输入、输出和选择线的多路复用器。所述第一输入可耦合到未由所述延迟电路延迟的非延迟时钟,所述第二输入可耦合到由所述延迟电路延迟的经延迟时钟,所述输出可产生预充电时钟,且所述选择线可耦合到读取启用信号,使得所述多路复用器在所述读取启用指示读取指令时将所述非延迟时钟传递到所述输出,且在所述读取启用不指示读取指令时将所述经延迟时钟传递到所述输出。揭示一种存储器存取控制器,其包含:第一装置,其用于处理第一指令;第二装置,其用于处理第二指令;计算装置,其用于产生指示所述第一和第二指令两者是否可在架构上完成的信号;以及延迟装置,其用于调整存储器的写入控制以考虑到由所述计算装置产生的所述信号的延迟。 为了更全面地理解本发明,现在参考以下详细描述和附图。


图1为展示具有交叉槽依赖性电路的示范性多存储器存取系统的电路图;图2为展示具有写入控制和预充电时钟的延迟的数据库内的示范性控制逻辑的电路图;图3为展示用于控制多存储器存取系统的示范性方法的流程图;以及图4为展示示范性无线通信系统的框图,在所述无线通信系统中可有利地使用用以消除具有多个存储器存取的处理器中的存储缓冲器的架构和方法的实施例。
具体实施例方式本发明描述用于保留流水线的频率益处而无需存储缓冲器且在存在多个存储器操作时不影响处理器操作速度的架构和方法。图1展示用于系统100的示范性架构的电路图,系统100可处置多个存储器存取的架构依赖性而无需使用存储缓冲器。系统100为超长指令字(VLIW)系统,其例示多个存储器存取问题。系统100包含标签阵列区段102、交叉槽依赖性电路104和数据阵列区段106。为了清晰起见,图1展示在标签阵列区段102中的用于两个槽的两个标签阵列以及在数据阵列区段106中的两个数据阵列;然而,系统可包含在标签阵列区段102中的用于任意数目M个槽的M个标签阵列以及在数据阵列区段106中的N个数据阵列。标签阵列区段102包含用于槽sO和槽Si的标签。如果槽sO保持存储器存取指令,那么系统检查数据是否存储在四路sO高速缓冲存储器112中。四路sO高速缓冲存储器112仅为可使用的高速缓冲存储器的类型的实例。举例来说,高速缓冲存储器112可为直接映射高速缓冲存储器或具有若干路X,其中X为2或更大。如果数据在sO高速缓冲存储器112中,那么高速缓存命中发生且sO命中向量114的元素中的一者将指示数据在sO高速缓冲存储器112中的位置。如果sO命中向量114的元素中无一者指示数据的位置,那么数据不在sO高速缓冲存储器112中且高速缓存未命中发生。sO命中向量114的元素为至Ij “或”归约门116的输入,“或”归约门116输出SO命中信号118。如果sO命中向量114的元素中的任一者指示高速缓存命中,那么sO命中信号118将指示槽sO的高速缓存命中。如果sO命中向量114的元素中无一者指示高速缓存命中,那么sO命中信号118将指示槽sO的高速缓存未命中。如果槽sO为存储器存取指令且在sO高速缓冲存储器112中不存在命中,那么系统从存储器检索必要的数据且将所述数据置于sO高速缓冲存储器112中,此时sO命中向量114和sO命中信号118将指示槽sO的高速缓存命中。标签阵列区段102还包含用于槽Si的标签。如果槽Si保持存储器存取指令,那么系统检查数据是否存储在四路Si高速缓冲存储器142中。Si高速缓冲存储器142可为任何所要类型和大小。如果数据在Si高速缓冲存储器142中,那么高速缓存命中发生且Si命中向量144的元素中的一者将指示数据在Si高速缓冲存储器142中的位置。如果si命中向量144的元素中无一者指示数据的位置,那么数据不在Si高速缓冲存储器142中且高速缓存未命中发生。Si命中向量144的元素为到“或”归约门146的输入,“或”归约门146输出Si命中信号148。如果Si命中向量144的元素中的任一者指示高速缓存命中,那么Si命中信号148将指示槽Si的高速缓存命中。如果Si命中向量144的元素中无一者指示高速缓存命中,那么si命中信号148将指示槽Si的高速缓存未命中。如果槽Si为存储器存取指令且在Si高速缓冲存储器142中不存在命中,那么系统从存储器检索必要的数据且将所述数据置于Si高速缓冲存储器142中,此时Si命中向量144和si命中信号148将指示槽Si的高速缓存命中。SI组合逻辑120确定交叉槽依赖性以及是否应将Si存储启用信号126发送到数据阵列130和160。Si存储启用信号126指示槽si为存储指令且交叉槽依赖性已得到解决,使得槽Si中的存储指令可执行并存储数据。组合逻辑120接收若干输入,其包含:s0命中信号118 ;sl存储指令信号122,和sO无依赖性信号124。sO命中信号118指示槽sO中的指令是否具有可在sO高速缓冲存储器112中得到的数据。当存在两个以上槽时,除了确定存储启用信号所针对的槽的命中信号,将用于槽中的每一者的命中信号输入到组合逻辑。Si存储指令信号122指示槽Si是否保持存储指令。sO无依赖性信号124指示当槽sO中的指令不是存储器存取时,存储或加载指令,且因此对于槽sO不存在存储器存取依赖性。当存在两个以上槽时,除了确定存储启用信号所针对的槽的无依赖性信号,将用于槽中的每一者的无依赖性信号输入到组合逻辑。当Si存储指令信号122指示槽Si保持有存储指令时,si组合逻辑120发送si存储启用信号126,且对于其它槽中的每一者,(a)无依赖性信号(例如,sO无依赖性信号124)指示槽Si无需等待那个槽,或(b)命中信号(例如,sO命中信号118)指示对于那个槽存在高速缓存命中。SO组合逻辑150确定交叉槽依赖性以及是否应将sO存储启用信号156发送到数据阵列130和160。sO存储启用信号156指示槽sO为存储指令且交叉槽依赖性已解决使得槽sO中的存储指令可执行并存储数据。组合逻辑150接收若干输入,其包含:sl命中信号148 ;s0存储指令信号152,和Si无依赖性信号154。si命中信号148指示槽si中的指令是否具有可在Si高速缓冲存储器142中得到的数据。sO存储指令信号152指示槽sO是否保持存储指令。Si无依赖性信号154指示当槽Si中的指令不是存储器存取时,存储或加载指令,且因此对于槽Si不存在存储器存取依赖性。
当sO存储指令信号152指示槽sO保持了存储指令时,s0组合逻辑150发送sO存储启用信号156,且对于其它槽中的每一者,(a)无依赖性信号(例如,Si无依赖性信号154)指示槽sO无需等待那个槽,或(b)命中信号(例如,Si命中信号148)指示对于那个槽存在高速缓存命中。将sO命中向量114、sO存储启用信号156、si命中向量144和si存储启用信号126发送到数据阵列130、160中的每一者。处理具有M个槽的包且使用N个数据阵列的系统将会将用于M个槽中的每一者的命中向量和存储启用信号发送到N个数据阵列中的每一者。数据阵列130包含加载多路复用器132和存储多路复用器136。加载多路复用器132接收用于槽中的每一者的命中向量;在此情况下为sO命中向量114和Si命中向量144。如果命中向量中的任一者指示加载指令的位置在数据阵列130中,那么加载多路复用器132激活用于数据阵列130的字线134。存储多路复用器136接收用于槽中的每一者的存储启用信号;在此情况下为sO存储启用156和Si存储启用126。如果存储启用信号中的任一者指示存储指令的位置在数据阵列130中,那么存储多路复用器136激活用于数据阵列130的写入芯片选择信号138。数据阵列160包含加载多路复用器162和存储多路复用器166。加载多路复用器162接收用于槽中的每一者的命中向量;在此情况下为sO命中向量114和Si命中向量144。如果命中向量中的任一者指示加载指令的位置在数据阵列160中,那么加载多路复用器162激活用于数据阵列160的字线164。存储多路复用器166接收用于槽中的每一者的存储启用信号;在此情况下为sO存储启用156和Si存储启用126。如果存储启用信号中的任一者指示存储指令的位置在数据阵列160中,那么存储多路复用器166激活用于数据阵列160的写入芯片选择信号168。在图1所示的实施例中,数据库130、160中的每一者为单一端口的;因此一次仅一个槽可进行到特定数据库的加载或存储。用于数据库中的每一者的加载和存储多路复用器的选择信号可用以确定对数据库的槽存取的次序。可经由来自槽地址的位和对数据库的槽读取或写入存取启用来确定用于数据阵列130的加载和存储多路复用器132、136的选择信号,以及用于数据阵列160的加载和存储多路复用器162、166的选择信号。如果两个槽都想要对同一数据阵列进行加载或存储,那么所述槽中的一者可在重放时存取所述数据阵列。如果所述槽想要对不同数据阵列进行加载或存储,那么对不同数据阵列的存取可并行地发生。数据库可经组织以使得其使用设置位来寻址,所述设置位为存储器存取地址的切片。所述库可通过称作库选择器位的设置位来选择。库的字线可通过命中路向量和一些额外设置位来寻址,且列可通过一些剩余设置位来寻址。此组织允许库的低电力操作且还允许存储启用为独立于字线控制的受控信号。此组织给予加载或存储指令通过其命中路向量(例如,命中向量114或144)来取消其本身的能力,同时允许存储启用(例如,存储启用信号126或156)由另一参数(例如,来自另一槽的命中信号)来控制。然而,对于单一端口存储体,如果多个存储器存取指令的目标为同一数据库,那么将选择存储器存取指令以一次进行一个。也可将与存储器管理单元(MMU)属性或高速缓冲存储器分配方案的某一形式有关的其它因素添加到存储启用。由于存储启用在架构上独立于字线控制而被控制,因此存储启用可晚到达以允许将较完整的资格添加到存取启用;例如命中信号的交叉槽依赖性以实现处理器架构状态的原子更新。命中信号(例如,命中信号118或148)为晚到达的信号,因为其将命中向量“或”运算成为一位命中信号。此命中信号由包中的其它槽的操作码解码位进一步限定且接着用当前槽中的存储操作的操作码解码位对此命中信号进行“与”运算以产生用于当前槽的存储启用信号(例如,存储启用信号126或156)。然而,存在一平衡,因为存储启用信号不能太晚以使得写入不能够在循环期间完成。延迟电路可以非常低的电力、面积和复杂性成本来维持所述平衡。此可通过使用于写入启用信号的交叉槽逻辑计算与用于字线信号的库存取时间的一部分重叠来进行。用以使用“或”归约门116、146和组合逻辑120、150来产生存储启用信号126、156的上述处理引起处理延迟。图2展示允许数据库承担此处理延迟的示范性电路。到图2所示的电路的输入包含时钟信号220、字线启用信号、列地址线、读取启用信号和写入启用信号。字线启用信号为行解码器电路的输出,行解码器电路的输入可为命中向量和设置位的某一部分。列地址可由行解码器中未使用的设置位的一部分形成。写入启用信号可为基于允许在数据库内处理的存储器存取的次序而选择的两个存储启用信号126、156中的一者。指示将读取数据或写入数据的位置的字线启用信号与时钟信号220 —起输入到“与”门。时钟信号220激活η个“与”门且将所述位置传递到N个字线。图2中展示用于η个字线的η个“与”门中的两个“与”门202、204。字线134、164为N个字线的实例。字线134、164还可与设置位一起使用以寻址较大行解码器。将时钟信号220、读取启用和列地址信号输入到“与非”门206以产生读取列选择信号。接着将时钟220输入到延迟电路210以产生用于写入列选择信号的经延迟时钟222。延迟电路210在产生存储启用信号时考虑电路延迟且放宽写入启用设置约束。将经延迟时钟222、写入启用和列地址信号输入到“与”门208以产生写入列选择信号。写入芯片选择信号138、168为写入列选择信号的实例。对于图1所示的实施例,延迟电路210在产生存储启用信号126、156时考虑“或”归约门116、146,组合逻辑120、150和其它电路的延迟。延迟电路可引入额外延迟以便提供操作裕度。可使延迟适合于用于产生写入启用信号的实施方案。如果延迟太长,那么可能使用不必要的电力;且如果延迟太短,那么写入可能失败。在此实施例中,字线和读取列选择信号未延迟,但写入列选择信号被延迟。这是因为写入列选择必须等待产生存储/写入启用信号126、156且输入到“与”门208。读取列选择信号不依赖于存储启用信号且,因此无需延迟以等待存储启用信号的产生。延迟读取列选择信号会增加系统的读取等待时间。多路复用器212用以控制预充电时钟以确保系统等待位线在先前存储器存取操作之后进行再充电。将非延迟时钟信号220和经延迟时钟信号222输入到多路复用器212且将读取启用信号输入到多路复用器212的选择线。当读取启用信号在作用中时,将非延迟时钟信号220输出作为预充电时钟,且当读取启用信号不在作用中时,将经延迟时钟信号222输出作为预充电时钟。经延迟写入和预充电时钟避免归因于字线上升与写入列选择之间的失配而产生的写入失败。图3展示用于控制对存储器的系统存取的示范性方法的流程图。在方框302处,系统接收第一和第二处理器指令。可存在同时接收的两个以上处理器指令,且所属领域的技术人员将理解可如何将方法扩展为处置两个以上处理器指令。在方框304处,系统评估第一处理器指令是否可在架构上完成且,在方框306处,系统评估第二处理器指令是否可在架构上完成。流程图展示方框304和306按顺序发生,但这些评估可通过电路(例如图1所示的电路)并行地发生,以减少所需评估时间。如果方框304和306中的评估确定所述指令中的一者不能在架构上完成,那么在方框308处延迟两个指令且直到两个指令都可在架构上完成时,执行才继续。当第一指令和第二指令两者都可在架构上完成时,将控制传送到方框310。在方框310处,系统确定第一和第二处理器指令中的任一者是否为写入/存储指令。如果第一和第二处理器指令中的任一者为写入/存储指令,那么将控制传送到方框312。否则,将控制传送到方框314,在方框314处执行第一和第二处理器指令。在方框312处,考虑在产生写入启用信号时的评估延迟。在图1的示范性实施例中,此包含在产生存储启用信号126和156时的电路延迟。图2的示范性实施例将此评估延迟展示为延迟电路210。在方框312中考虑延迟,将控制传送到方框314,在方框314处执行第一和第二处理器指令。图4展示示范性无线通信系统400,在所述无线通信系统400中可有利地使用用以消除具有多个存储器存取的处理器中的存储缓冲器的架构和方法的实施例。为了说明的目的,图4展示三个远程单元420、430和450,以及两个基站440。应认识到,典型无线通信系统可具有更多的远程单元和基站。远程单元420、430和450中的任一者可包含如本文中揭示的用以消除具有多个存储器存取的处理器中的存储缓冲器的架构和方法。图4展示从基站440到远程单元420、430和450的前向链路信号480,和从远程单元420、430和450到基站440的反向链路信号490。在图4中,将远程单元420展示为移动电话,将远程单元430展示为便携式计算机,且将远程单元450展示为无线本地环路系统中的固定位置远程单元。举例来说,远程单元可为手机、手持式个人通信系统(PCS)单元、例如个人数据助理的便携式数据单元,或例如仪表读取装备的固定位置数据单元。尽管图4说明可包含如本文中揭示的用以消除具有多个存储器存取的处理器中的存储缓冲器的架构和方法的某些示范性远程单元,但如本文中揭示的架构和方法不限于这些示范性说明单元。实施例可适用于需要具有多个存储器存取的处理器的任何电子装置。尽管上文已揭示并有本发明的原理的示范性实施例,但本发明不限于所揭示实施例。而是,希望本申请案涵盖使用本发明的一般原理的本发明的任何变化、使用或适应。另夕卜,希望本申请案涵盖例如在本发明所属且在所附权利要求书的限制内的技术中已知的或惯例的实践内的与本发明的偏离。
权利要求
1.一种用于控制对存储器的系统存取的方法,其包括: 接收第一处理器指令和第二处理器指令; 评估所述第一和第二处理器指令是否可在架构上完成; 当所述第一和第二处理器指令中的至少一者不能在架构上完成时,延迟所述第一和第二处理器指令两者; 当所述第一和第二处理器指令两者都可在架构上完成且所述第一和第二处理器指令中的至少一者为写入指令时,调整所述存储器的写入控制以考虑评估延迟。
2.根据权利要求1所述的方法,其中所述评估延迟为足以评估所述第一和第二处理器指令是否可在架构上完成的时间。
3.根据权利要求2所述的方法,其中在用于所述存储器的写入列选择中考虑所述评估延迟。
4.根据权利要求1所述的方法,其中当所述第一或第二处理器指令中的任一者为读取指令时,所述存储器的读取控制不考虑所述评估延迟。
5.根据权利要求1所述的方法,其进一步包括当所述第一和第二处理器指令两者都可在架构上完成且所述第一和第二处理器指令中的至少一者为写入指令时,调整所述存储器的预充电时钟以考虑所述评估延迟。
6.根据权利要求1所述的方法,其进一步包括当所述第一和第二处理器指令两者都可在架构上完成且所述第一和第二处理器指令中的至少一者为存储器存取指令时, 将不考虑所述评估延迟的非延迟时钟信号发送到所述存储器的读取控制, 将考虑所述评估延迟的经延迟时钟信号发送到所述存储器的所述写入控制, 将所述非延迟时钟信号和所述经延迟时钟信号两者发送到所述存储器的预充电时钟多路复用器;以及 选择性地控制所述预充电时钟多路复用器以将所述非延迟时钟信号和所述经延迟时钟信号中的一者作为预充电时钟信号而发送。
7.根据权利要求6所述的方法,其中所述控制预充电时钟包括: 将所述非延迟时钟和所述经延迟时钟两者输入到多路复用器;以及 将所述读取启用信号输入到所述多路复用器的选择输入; 其中当所述读取启用指示读取指令时,所述非延迟时钟由所述多路复用器输出以作为所述预充电时钟,且当所述读取启用不指示读取指令时,所述经延迟时钟由所述多路复用器输出以作为所述预充电时钟。
8.根据权利要求1所述的方法,其中所述评估步骤包括确定所述第一和第二处理器指令的数据是否位于高速缓冲存储器中。
9.根据权利要求8所述的方法,其中所述评估步骤进一步包括确定所述第一处理器指令是否为存储器存取指令以及确定所述第二处理器指令是否为存储器存取指令。
10.根据权利要求1所述的方法,其进一步包括当所述第一处理器指令为写入指令且所述第二处理器指令的数据位于高速缓冲存储器中或所述第二处理器指令不是存储器存取指令时,产生写入启用信号。
11.一种存储器存取控制器,其包括: 第一槽,其用于处理第一指令;第二槽,其用于处理第二指令; 系统组合逻辑,其产生指示所述第一和第二指令两者是否可在架构上完成的信号;以及 延迟电路,其用于调整存储器的写入控制以考虑由所述系统组合逻辑产生的所述信号的延迟。
12.根据权利要求11所述的存储器存取控制器,其进一步包括: 第一高速缓冲存储器; 第一高速缓存命中信号,其指示用于所述第一指令的数据是否存储在所述第一高速缓冲存储器中; 第二高速缓冲存储器; 第二高速缓存命中信号,其指 示用于所述第二指令的数据是否存储在所述第二高速缓冲存储器中; 所述系统组合逻辑使用所述第一和第二高速缓存命中信号两者。
13.根据权利要求11所述的存储器存取控制器,其中所述系统组合逻辑进一步包括: 第一槽组合逻辑,其接收所述第二高速缓存命中信号且产生用于所述第一指令的存储启用信号;以及 第二槽组合逻辑,其接收所述第一高速缓存命中信号且产生用于所述第二指令的存储启用信号。
14.根据权利要求13所述的存储器存取控制器,其中 所述第一槽组合逻辑进一步接收指示所述第一指令是否为存储指令的第一指令存储信号以及指示所述第二指令是否为存储器存取指令的第二指令无依赖性信号,且所述第一槽组合逻辑在所述第一指令存储信号指示所述第一指令为存储指令且所述第二高速缓存命中信号指示用于所述第二指令的所述数据在所述第二高速缓冲存储器中或所述第二指令无依赖性信号指示所述第二指令不是存储器存取指令时,产生用于所述第一指令的所述存储启用信号;且 所述第二槽组合逻辑进一步接收指示所述第二指令是否为存储指令的第二指令存储信号以及指示所述第一指令是否为存储器存取指令的第一指令无依赖性信号,且所述第二槽组合逻辑在所述第二指令存储信号指示所述第二指令为存储指令且所述第一高速缓存命中信号指示用于所述第一指令的所述数据在所述第一高速缓冲存储器中或所述第一指令无依赖性信号指示所述第一指令不是存储器存取指令时,产生用于所述第二指令的所述存储启用信号。
15.根据权利要求13所述的存储器存取控制器,其进一步包括: 数据阵列,其具有加载逻辑和存储逻辑; 所述加载逻辑接收所述第一高速缓存命中信号和所述第二高速缓存命中信号,其中当所述第一和第二高速缓存命中信号中的一者指示所述数据阵列中的位置时,所述加载逻辑产生指示所述数据阵列中的所述位置的字线信号; 所述存储逻辑接收用于所述第一指令的所述存储启用信号和用于所述第二指令的所述存储启用信号,其中当用于所述第一和第二指令的所述存储启用信号中的一者指示所述数据阵列中的位置时,所述存储逻辑产生指示所述数据阵列中的所述位置的写入芯片选择信号。
16.根据权利要求11所述的存储器存取控制器,其中,当所述第一和第二指令中的任一者为写入指令时,所述系统组合逻辑在所述第一和第二指令两者都可在架构上完成时产生写入启用信号。
17.根据权利要求16所述的存储器存取控制器,其中,当产生了写入启用信号时,所述延迟电路将所述存储器的所述写入控制延迟与所述系统组合逻辑产生所述写入启用信号所花费的时间量大致相同的时间量。
18.根据权利要求11所述的存储器存取控制器,其进一步包括用于所述存储器的写入列选择和读取列选择,所述延迟电路调整所述存储器的所述写入列选择以考虑由所述系统组合逻辑产生的所述信号的所述延迟且不调整所述存储器的所述读取列选择以考虑由所述系统组合逻辑产生的所述信号的所述延迟。
19.根据权利要求11所述的存储器存取控制器,其进一步包括 多路复用器,其具有第一输入、第二输入、输出和选择线,所述第一输入I禹合到未由所述延迟电路延迟的非延迟时钟,所述第二输入耦合到由所述延迟电路延迟的经延迟时钟,所述输出产生预充电时钟,且所述选择线耦合到读取启用信号; 其中所述多路复用器在所述读取启用指示读取指令时将所述非延迟时钟传递到所述输出,且在所述读取启用不指示读取指令时将所述经延迟时钟传递到所述输出。
20.根据权利要求11所述的存储器存取控制器,其并入到选自由以下各物组成的群组的装置中:音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理PDA、固定位置数据单元以及计算机。
21.一种存储器存 取控制器,其包括: 第一装置,其用于处理第一指令; 第二装置,其用于处理第二指令; 计算装置,其用于产生指示所述第一和第二指令两者是否可在架构上完成的信号;以及 延迟装置,其用于调整存储器的写入控制以考虑由所述计算装置产生的所述信号的延迟。
全文摘要
一种用于控制对存储器的系统存取的方法和设备,其包含接收第一和第二指令,以及评估两个指令是否可在架构上完成。当至少一个指令不能在架构上完成时,延迟两个指令。当两个指令可在架构上完成且至少一者为写入指令时,调整所述存储器的写入控制以考虑评估延迟。所述评估延迟可足以评估两个指令是否可在架构上完成。可将所述评估延迟输入到所述存储器的所述写入控制而不是读取控制。可调整所述存储器的预充电时钟以考虑所述评估延迟。评估两个指令是否可在架构上完成可包含确定用于每一指令的数据是否位于高速缓冲存储器中,以及所述指令是否为存储器存取指令。
文档编号G06F9/38GK103189838SQ201180052455
公开日2013年7月3日 申请日期2011年11月1日 优先权日2010年11月1日
发明者詹特星·肯·林, 阿贾伊·阿南特·英格尔, 伊新·A·郭, 保罗·道格拉斯·巴塞特 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1