具有停顿装置的伪多端口数据存储器的制作方法

文档序号:6409696阅读:140来源:国知局
专利名称:具有停顿装置的伪多端口数据存储器的制作方法
技术领域
本发明涉及一种计算机存储器配置,如同在权利要求1前序部分所描述的,该存储器配置包含多个第一输入端口,其通过第一路由器装置共同耦合,从而选择性地馈送多个第二存储器模块。目前诸如数字信号处理器(DSP)那样的计算装置需要巨大的处理能力,而且还需要在存储器和处理器之间相当大的通信量。此外,理想地,应该可以升级与存储器模块和处理器的数量分别相关的性能特征,而且更具体地,应该允许并行数据移动的数目超过值2。
背景技术
只要2的尺度是足够的,那么可能的解决方案是拥有两个完全独立并完全功能性的存储器,但是接下来对两个存储器之间的存储位置进行选择是一项复杂的任务。显然,高于2的比例因数将会加重该问题。而且,处理这种独立存储装置的程序将会经常在可移植性上不足,比如在计算机C语言中实现它们的时候。所以,通常会优选具有“统一存储器映射”的解决方案。实际上,每个存储器访问允许涉及任意的地址。
实现具有双端口存储器的上述方案本身是非常可行的,但是通常认为端口数量在2以上的扩展过于昂贵。所以,在存储器水平上提供特殊硬件配置是不合适的。

发明内容
因此,其中,本发明的一个目的在于提供一种解决方案,该方案通常基于共同使用统一存储器映射的单端口存储器,且其中接受各个访问之间的冲突,但其中通过允许增加各个访问的等待时间来使其负面影响最小化。所以,根据本发明的解决方案是基于把特定装置作为外围提供给存储体本身。
所以现在,根据权利要求1的特征部分来表征本发明其中一个方面。
本发明还涉及计算机装置,其包含与权利要求1中所述的存储器配置接口的多个第四加载/存储单元。从属权利要求进一步描述了本发明更具优越性的特征。


以下将参照优选实施例的公开内容,并特别参照附图对本发明这些特征和优点以及更多的特征和优势进行更详细地描述,附图显示图1,伪多端口数据存储器样板或可参数化的实施例;图2,请求队列实施例;图3,请求队列级;图4,请求队列旁路实施例;图5,请求队列控制器实施例;图6,从请求队列到存储体判优器的请求路由装置;图7,从存储体判优器到请求队列的应答路由装置;图8,存储体判优器实施例;图9,中间队列实施例;图10,中间队列控制器实施例;图11,中间队列级;图12,结果队列实施例;图13,结果队列级;图14,结果队列控制器实施例;图15,结果路由器实施例。
具体实施例方式
图1举例说明伪多端口数据存储器样板或可参数化的实施例。该样板包括示例性数目L个构件块(仅显示了数目0,1,L-1),其围绕B个存储体20-24的阵列(仅显示了数目0,b,B-1),每个具有中间队列26-30,该中间队列并行地置于当前存储器模块的输入与输出之间。该存储体表示统一地址映射。通常,这些值的关系符合B≥L,但是这非是限制,原则上,B的值可以低至1。
如附图顶端所示,可以从各个加载/存储单元装置17-19发出外部存取信号。每个存取信号包含片选cs,写使能web,而且每个存取信号此外还提供地址和写数据。这些信号被发送到请求/应答路由器32。通常,每个外部存取装置还将能接收外部读数据,如来自结果路由器34的箭头35所示。围绕该存储体的块的目的是三方面的。首先,由路由器装置32将对于各个存储体的存取请求从合适的写端口路由到正确的存储体,然后由路由器装置34将来自各个存储体的存取结果从合适的写端口朝正确的读端口进行路由。
第二,在相同周期内涉及对于相同存储体的多个存取请求的情况下,必须解决显而易见的冲突。为了达到该效果,每个存储体20-24都包含位于其前面的专用存储体判优器36-40。
第三,通过在与存储体本身相关的不可避免的存取等待时间之上的附加松弛间隔(additional slack interval)来延长存储体存取的等待时间,从而减少存储体冲突的数量。通过延迟在L个并行请求队列42-46中的存取,其中L是读/写端口的数量,以及通过延迟在B个并行结果队列48-52中的结果来获得该附加松弛,其中B是存储体的数量。
请求队列42-46可以根据周围环境一次延迟输入请求。在结果队列48-52中的辅助延迟可以产生在实际请求和结果在输出端口变为可获得的时刻之间的总延迟,其中该总延迟具有一致的值。该后一个特征暗示了编译器可以在调度程序时考虑该一致的延迟值。各个构件块可以如下所述地更广泛地进行操作。如实施例所示,请求队列和结果队列运行在串行输入并行输出的基础上,但是这不是明确的限制。最后如图所示,每个存储体20-24分别具有相关的中间队列26-30,在下文中将进一步讨论。
图2举例说明请求队列的实施例,其中为了在多个相应项中清楚说明,仅仅对单个项用参考数字标记进行了标注。如图所示的配置具有单一控制器60以及多个与以时钟周期测量得到的松弛S长度相等的延迟级64。控制器60接收主时钟信号59,因此该控制器是持续激活的,以及此外的信号片选和停顿(stall)。它产生控制各个时钟门62的S级有效标志0...S-1。诸如级64的级仅仅在其中具有效数据时是激活的,因而避免了在无效数据上消耗功率。在图1中已经显示了信号cs、web、地址和数据。在请求队列中对无法立即处理的请求进行排队。从每一个请求队列级64中,可以并行输出存储体请求信号61。请求优先级通常遵循上级(FIFO)。允许的请求获得相应的应答信号63,并随即从该队列中移除。由于这种应答可以并行发源于各个不同的存储体,所以这种应答信号可以单独地抵达每一级。
如果请求已经穿过了所有队列并抵达队列底部(级S-1),则发出标志信号满(full)65,其暗示在由加载/存储等待时间所识别的标准间隔中无法处理该请求。这种full状态将导致对请求装置的停顿周期来允许解决这一拥塞,同时保持现有的处理器周期而不做进一步前进。以下将描述旁路装置66。在OR门65A中对来自各个请求控制器60的信号full进行或运算,其输出表示了用于加载/存储装置17-19的整个配置的停顿信号。尽管在附图中没有特别显示,但接下来将把这个停顿信号发送到图1中所有相关的加载/存储单元17-19。
图3举例说明了通常与移位寄存器级相对应的请求队列级,允许存储大量web 43,地址45以及数据47。在该附图中没有特别显示加载/存储操作。一般地,它们可以以两种模式中的任一种来起作用。在短等待时间模式中,加载/存储操作将只经历存储器的固有存储器等待时间L1,例如该存储器是SRAM。然后,每个存储体冲突将导致停顿周期。然而在长等待时间模式中,把松弛间隔S加到存储器等待时间L1,所以加载/存储操作将经历总的等待时间(S+L1)。该请求队列的实施例通过使用特定的旁路块66来有选择地支持两种等待时间模式。在短等待时间模式中,将会用该块来旁路所有的级64,由此将最高优先级分配给实际输入的请求,而使其他所有的请求无效。用67来标记相关的等待时间模式信号。
图4举例说明请求队列旁路的实施例。通过一组多路复用器66A,66B,66C来构建该旁路,其将共同地选择最新输入的请求、或离开最后队列级S-1的请求。实际被选择的请求将具有最高优先级。
图5举例说明用于实现图2中的块60的请求队列控制器的实施例。为了简便起见,仅对与最高级有关的各个逻辑元件进行了标记。应答信号ack 0抵达顶部左端,并馈送至与门78,而且在元件73中反相之后馈送至与门72。片选cs信号馈送至与门72,78和80,后者还接收应答信号ack S。后两个与门馈送至选择器86,其由长/短等待时间模式信号来控制,从而选择如上所示的输入信号。该发送的信号输入或门88,并通过选择器90有选择地传送,如图所示其由停顿信号来控制。传送的信号锁存在锁存器92中以作为屏蔽信号来运行。此外,将该屏蔽信号向后耦合到或门88。接下来,在反相器96中反相该屏蔽信号,然后将其馈入时钟控制的与门98。将与门98的输出馈送到由等待时间模式信号所控制的选择器100,因此选择器100的输出将或者为0,或者与时钟控制的与门98的输出信号相等。
在该配置的左手边,将会把反相的应答ack 0信号钟控到受停顿信号控制的选择器84。将所选择的信号馈送至选择器94,在该选择器的另一输入接收0信号,并由停顿信号对选择器本身进行控制,一般在其输出产生级有效信号76,比照图2。此外,把选择器84的输出馈送到锁存器70。该锁存内容表示请求信号req 1,此外还将其向后耦合到选择器82,在选择器82的另一输入端接收零(0),并由来自下一较低级的信号ack 1来控制该选择器。
对于其他各级,通常会存在与项70,72,73,82,84和94相对应的项。现在,片选值cs穿过带有类似于级70那样的级的专用一位移位寄存器,该寄存器因此包含所有未处理的请求。此外,所接收的如同信号63A那样的应答信号将通过对输入到像72那样的与门的输入进行反相,来清除在当前级上的片选cs信号。此外,从每个片选流水线级派生出类似于标志72的有效标志,该有效标志驱动图2中的相关时钟门62。只要在存储器中不发生存储体冲突,即只要没有请求队列获得full(65)标志,寄存器都会保持移位。然而冲突将会自动导致停顿周期,其停止了该队列的移位。当队列保持停顿状态时,存储体冲突可能会得到解决,这意味着将仍然应答实际请求。因此,在停顿间隔期间将会持续清除应答了的请求。
注意,最后级S具有以相对于其他级的相反方式进行控制的请求。此外,最后级S包含与前面级的与门72相对应的与门102,还包括接收应答信号ack S的反相值的第二与门104,此外还接收来自锁存器92的反相的屏蔽信号。这两个与门馈送由等待时间模式控制信号所控制并发送full信号的选择器106。当以这种方式应答了导致队列产生其full标志的请求时(没有出现进一步的full信号),则自动终止来自或门65A的停顿信号。
此外,在请求队列装置中,由等待时间模式信号67所控制的旁路元件66也是可见的。如图2中所示,在短等待时间模式中,整个队列将被旁路,从而分配最高优先级给最晚进入的请求,而与此巧合的是,阻挡所有其他的请求。在长等待时间模式中,在请求之中的上级(seniority)一般会占优势。通过运算器和/或系统也许会提供该等待时间模式信号67,例如以静态和/或动态数据为基础。即使是仅由单个级导致的较长的等待时间,也将显著地降低冲突的数量,并因而降低延迟停顿的数量。然而,较长的等待时间还将带来较长的延迟。应该由与当前的应用或应用间隔相关的最佳折衷来控制该系统。
图6举例说明从请求队列到存储体判优器的请求路由装置。该组合网络对从所有请求队列到合适的存储体判优器(图1中的36-40)的所有请求进行路由,而且将与这些请求有关的应答路由返回至相关的请求队列,后者在图6中没有显示。由于在各个存储体上对存储器映射进行一致地交叉存取,那么以检验与相关存取请求信号相关联的最低有效位为基础,来确定当前的特定存储体。后者通过像69那样的位选择项起作用。该位选择操作的结果控制类似于项70的去复用器,其将因此把一位请求标志路由到预期的诸如项36-40那样的存储体判选器。在图中以粗线表示的互连上,将请求的部分web,地址和数据并行地直接向所有存储体判优器转发。抵达每个存储体判优器的请求线的总数于是等于请求队列的数量乘以由每个请求队列产生的最大请求数量。对于松弛S,此数为(S+1)*L。
此外,由于请求总是指向一个单一存储体,那么可以仅仅由一个单一存储体判优器来应答每个请求。因此,对于每个特殊请求来说,在元件37,39,40中对来自各个判优器36-40的所有相应的应答标志进行的或运算将会产生相关的应答值。图7举例说明这种从不同存储体判优器到相关请求队列的应答路由装置。
图8举例说明存储体判优器的实施例。该存储体判优器用于选择存在于其输入的最高优先级请求,用于应答该请求,并将与该请求相关的信息转发至当前的存储体。为了该目的,将输入的请求标志认为是分类的位向量,该位向量具有作为最高有效位的相对较高的优先级请求标志,和作为最低有效位的相对较低的优先级请求标志。该判优器将搜索具有在该向量中最高有效级为“1”的位。该位对应具有最高优先级的有效请求。用当前位的索引来选择必须应答的请求。还指出了请求来自于其中的加载/存储单元。后一信息会将用于读存取的加载数据发送回适当的加载/存储单元。为了使该信息在加载的数据可有效用于读取的时刻是可用的,将该索引发送到中间队列,其穿过中间队列与将要从编址的存储体中读出的数据保持同步。
为此,判优器装置包含类似于120和122的选择器装置。由从(LSUL-1,row S)到(LSU 0,row 0)范围中的各个请求在左边来控制选择器装置120。此外,选择器装置120在上侧接收web,地址,数据,abd lsu id信号,此外还接收信号def或0。如图所示,优先级具有0,...0的引导字符串,然后是在互相排斥的位置上的第一个“1”,并跟随有可能具有任何合适值的字符串。该选择器将会输出选择的请求,web,地址,数据,lsu id和剩余的松弛信号。
第二选择器装置122如前面所述在左手边由相同的控制信号进行控制,并在各个顶部接收在互相排斥的位置上具有单个“1”的位字符串,此外还有排他的零。该选择器将输出范围从(LSU L-1,rowS)到(LSU 0,row 0)的应答信号。
可以把从位向量中选择最高有效位的操作视为一个大的多路复用器,该多路复用器把该位向量作为控制输入,而且该多路复用器基于最高有效位MSB的值来选择端口。在这里,图9举例说明一种中间队列的实施例。该中间队列因此充当延迟线,用于同步在时间间隔过程中与加载存取有关的信息,其中对数据存储器中的实际SRAM进行存取。它包括单一控制器130以及多个诸如级134那样的级,其数量等于SRAM的等待时间L1。由主时钟134对该控制器进行时钟控制,而且该控制器因此总是激活的它将为每个级产生L1个级有效标志,其控制诸如门132的时钟门。结果,特定级将仅仅在该级中出现有效数据时才是激活的。在无效数据的存储上没有浪费功率消耗。所有的信号片选(cs),写使能(web),地址和数据将在其顶端进入中间队列。在该队列中仅仅存储与加载请求有关的信息。如图所示,该最后级输出结果包括信号加载有效,信号剩余延迟和信号加载来源。
图10举例说明中间队列控制器的实施例。它包括具有类似于锁存器136的级的单一位宽延迟线,其通过信号cs和web串行馈送,而且为各个级保持有效标志。每个这样的标志表示加载操作,并且通过对片选信号和低激活写使能输入信号进行与操作来创建。该串行输出信号是加载有效。
图11举例说明中间队列级。每个级包括两个寄存器,用于保持标识符以便识别发布加载请求的加载/存储单元的第一寄存器(140),以及另一个寄存器(138),用来保存剩余延迟值,从而指出该请求仍将必须在数据存储器中经历多少个松弛以便满足预定的加载/存储等待时间间隔。如果在存储器中发生导致处理器停顿的冲突,则处理器周期时间将被暂停。为了保持剩余的延迟值与处理器周期时间相一致,在这种情况下将在递增元件142中递增该值;通过由该停顿信号所控制的选择器144来执行相关的选择。
图12举例说明结果队列的实施例,在这里包括单一控制器146和多个类似于级150的级,这些级的数量是松弛(slack)、存储器等待时间乘以和加载/存储单元数量减1的函数。级的数量大约等于MAX(S,L*(LSU-1)。该控制器受主时钟的控制,并因此总是激活的。其产生控制诸如时钟门148的S时钟门的S级有效标志,每一个级产生一个。因此,该级仅仅在其存储有效数据时是激活的,再次用于降低功率消耗的水平。
结果队列将会收集并缓冲该数据和由其相应SRAM产生的其他信息和由中间队列产生的其他信息,来执行与处理器内核的最终同步。信号加载有效,加载数据,加载/存储单元标识符,以及剩余延迟将成功输入如图所示的级150中队列的顶端。一旦在队列中,该加载的结果就经历其最终的延迟。一旦结果的剩余延迟达到零值,就在相关队列的其中一个级输出处发布该结果作为有效结果。为各个不同的加载/存储单元预期的多个结果可以使得该队列并行。
图13举例说明结果队列级的实施例,其包括三个寄存器,它们分别保存剩余延迟值(寄存器156),数据(寄存器160)和加载操作的加载/存储单元标识符(寄存器158)。所有级合起来构成移位寄存器。在正常运行的情况下,在每个级(元件152)中递减该剩余延迟值,以便该剩余延迟经过连续的级并最终达到零,从而指示已获得全部的加载/存储等待时间。在该时刻,可以将该结果发送回加载/存储单元。如果在存储器中发生导致处理器停顿的冲突,则处理器周期时间将保持静止。为了保持该剩余延迟值与处理器周期时间计数的同步,在这种情况下通过绕过递减器级152和选择器154的适当控制,来将剩余延迟值保持为常数。
图14举例说明结果队列控制器的实施例,从而实现延迟线,用于为控制各个级的时钟门产生级有效标志。在延迟线中的每级上,检查剩余延迟值。一旦该值获得零,就清除该级中的级有效标志。还要注意,如果该处理器由于存储器冲突而停顿,则没有结果可以被发送回去,这是由于没有加载/存储单元将有能力接收该结果。因此,在这种情况下清除结果有效标志。该控制器中的每个级都包含以下项,其仅仅在第一级用数字表示。首先,将剩余延迟值输入到递减元件162。将其输出连同跨越所有级的串行装置中的加载有效信号一起,馈送至与门164,其中该输出等于对延迟值的所有位进行或运算的值。把该与门的输出馈送到由停顿信号所控制的选择器172。在元件174中锁存该选择器的输出,并因此馈送到下一串行级。此外,减少元件输出在项166中反相,而且在与门168中类似地与加载有效信号进行与运算。将该门的输出值馈送到选择器170,此外该选择器还接收“0”信号并受到停顿信号的控制。选择器170的输出信号可以产生结果有效0信号。最终级中的差别在于省略项164,172和相关的布线。
图15举例说明结果路由器的实施例。该路由器执行把离开结果队列的有效结果发送回加载/存储单元162-164,相关的请求源自这些加载/存储单元。该记载/存储单元id用来确定目标加载/存储单元。多路复用器180-184选择应往其中发送有效标志的适当加载/存储单元。由于很肯定在每个周期中,至多有一个有效请求被发送回特定加载/存储单元,那么通过在类似于174-178的两输入与门中,对所有结果数据和它们相应的结果标志进行第一按位与运算,来确定将要发送回的结果数据,而且接下来在或门168-172中为每一个特定的路由器对它们进行或运算。
权利要求
1.一种计算机存储器装置,包括多个第一输入端口装置,其通过第一路由器装置共同耦合以便选择地馈送至多个第二存储器模块,还包括由所述多个第二存储器模块共同馈送的输出端口装置,所述计算机存储器装置包括存取检测装置,用于检测对于特定存储器模块,经过多于所述多个第一输入端口装置其中一个而发生的同时且冲突的存取,因此用于允许所述同时且冲突的存取之中的仅仅单一一个,同时产生停顿信号用于将强制性停顿信号发信令给与另一请求有关的任何请求源。
2.根据权利要求1所述的计算机存储器装置,进一步包括请求队列,每个请求队列将相关的相应输入端口装置耦合到所述第一路由器,从而提供附加松弛间隔,每个存储器模块包含有各自的存储体,以及各自的判优器,用于在之上查找多个并发的存取请求用于对相关存储体进行存取,产生判优信号,该判优信号在所述并发存取请求之中挑出特定的一个,用于优先于进一步的存取请求而对其进行排他性地处理,在当前请求队列中对这种进一步的存取请求进行排队,同时在任何这种请求队列的ORED的完全发信号的控制下,将所述停顿信号排他性的发信令。
3.根据权利要求1所述的计算机存储器装置,其中这种停顿信号对所有的输入端口装置并行发出。
4.根据权利要求1所述的计算机存储器装置,其中所述输出端口装置包括多个第三输出端口,其由所述多个第二存储器模块经过第二路由器装置被馈送。
5.根据权利要求4所述的计算机存储器装置,其中所述第一和第三的多个中的至少之一大于二。
6.根据权利要求4所述的计算机存储器装置,其中所述第一的多个等于所述第三的多个,而且每个所述输入端口装置与各自的相应输出端口装置相关联,从而与各自的相应数据源和宿相关联。
7.根据权利要求2所述的计算机存储器装置,其中每个这种存储器模块进一步包括各自的结果队列装置,用于暂时存储从相关的存储体读出的结果数量。
8.根据权利要求7所述的计算机存储器装置,其中通过结合请求队列和相关的结果队列来提供统一延迟值。
9.根据权利要求2所述的计算机存储器装置,其中这种存储器模块进一步包括跨越当前存储体的输入/输出通道耦合的中间队列装置,用于一旦在通过以慢于系统时钟的时钟频率运行来使用流水线存储器时,存储应答指示符。
10.根据权利要求9所述的计算机存储器装置,其中这种应答指示符识别正在被服务的相关请求的来源。
11.根据权利要求1所述的计算机存储器装置,其位于统一存储器映射上。
12.根据权利要求2所述的计算机存储器装置,其中这种请求队列运行在串行输入并行输出装置的基础上,并运行在上级优先的基础上。
13.一种计算机装置,包含与如权利要求1所述的计算机存储器装置接口的多个第四加载/存储单元,其中所述第一和第四的多个是相等的。
全文摘要
一种计算机存储器装置,包括多个第一输入端口装置(17-19),其通过第一路由器装置(32)共同耦合以便选择地馈送至多个第二存储器模块(20-24)。其还包括由所述多个第二存储器模块(20-24)共同馈送的输出端口装置。特别地,所述计算机存储器装置包括存取检测装置(36-40),用于检测对于特定存储器模块,经过多于所述多个第一输入端口装置(17-19)其中一个而发生的同时且冲突的存取,因此用于允许所述同时且冲突的存取之中的仅仅单一一个,同时产生停顿信号(65A)用于将强制性停顿信号(65A)发信令给与另一请求有关的任何请求源。
文档编号G06F12/06GK1656460SQ03811761
公开日2005年8月17日 申请日期2003年5月22日 优先权日2002年5月24日
发明者J·A·J·莱坦 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1