CN102203752A - 具有多个队列之间的仲裁的数据处理电路 - Google Patents
具有多个队列之间的仲裁的数据处理电路 Download PDFInfo
- Publication number
- CN102203752A CN102203752A CN2009801379900A CN200980137990A CN102203752A CN 102203752 A CN102203752 A CN 102203752A CN 2009801379900 A CN2009801379900 A CN 2009801379900A CN 200980137990 A CN200980137990 A CN 200980137990A CN 102203752 A CN102203752 A CN 102203752A
- Authority
- CN
- China
- Prior art keywords
- request
- formation
- priority
- agency
- moderator
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
Abstract
经由请求集中器将来自多个不同代理(10)的请求送到请求处理器。在该请求集中器之前,这些请求被排列成多个队列(12)。所述代理中的第一个被配置成发出优先级变更命令到队列(12)中的第一个队列。相对于所述代理(10)中的第一个发出的等待中的请求,该优先级变更命令具有定义的位置。根据指派给队列(12)的相对优先级,仲裁器(16)作出接连的选择,这些选择选定请求集中器(14)将从其将请求送到请求处理器(18)的那些队列(12)。该仲裁器(16)通过在直至所述定义位置的等待中的请求处于队列(12)中的第一个队列之中时的持续时间内有选择地变更队列(12)中的第一个队列的优先级来对该优先级变更命令进行响应。可以为来自代理中的第一个的读和写请求提供不同的队列。在这种情况下,可以用来自该代理的优先级升高请求来将写队列的优先级水平临时地升高到读队列的水平,直到该优先级升高命令之前从该代理发出的所有写请求均已被送到该请求处理器为止。
Description
技术领域
本发明涉及具有仲裁器的数据处理系统,该仲裁器用于对诸如请求存取存储设备的请求进行仲裁。
背景技术
美国专利6629220描述了对存储器存取请求的动态仲裁。描述了具有由与例如各种处理器、I/O接口硬件加速器等关联的存储器存取请求组成的多个队列的电路。仲裁器将来自这些队列的请求传送到总队列。在这样做时,该仲裁器不得不选择其传送来自不同队列的请求的次序。这是通过将相对的优先级指派给该不同队列和通过每次传送具有最高优先级的队列中的第一个等待中的请求来完成的。
遗憾的是,这意味着,取决于具有更高优先级的其他队列中的等待中的请求的数目,来自具有低优先级的队列的请求可能不得不等待更长时间。而且,一旦仲裁器将其自身投入对较低优先级的请求的处理,这些延时甚至可能受到这些较低优先级的请求的影响。对处理来自其他队列的请求进行等待可能在已发出请求到低优先级的队列的处理器中导致长的和不可预测的连锁(knock-on)延时。可通过在处理器不得不等待回应时给予队列更高优先级来减少这样的连锁延时。从而,例如,与存储器写请求相比,存储器读请求可以被给予更高的优先级,当然,前提是它们与不同的存储器地址有关。
美国专利6629220描述了可以使用指令来给予一个队列相对于其他队列的优先权,且具有某些类型的请求(诸如在同步通信中使用的请求)的队列可被给予比具有其他类型的请求(诸如在异步通信中使用的请求)的队列更高的优先级。
通过动态地改变不同队列的相对优先级,可以避免极长的延时。一般的,优先级变更可以基于请求被排队的持续时间,来自不同队列的已得到服务的请求的数目,总线活跃程度,等等。
尽管这种类型的措施有助于减少延时,但是在其得到对请求的回应之前,处理器可能仍然不得不等待长的和不可预测的时间。
发明内容
特别地,目标是对具有多个队列的系统中的延时提供更好的控制。
提供了根据权利要求1的数据处理电路。本文中诸如存储器存取请求的请求被从诸如指令处理器的代理经由多个队列送到请求处理器。该代理具有发出命令以控制队列的优先级的临时提升的能力。在直至定义位置的等待中的请求处于这些队列中的第一个队列之中的持续时间内,升高这些队列中的第一个队列的优先级。这给予了该代理对优先级的一些控制,使得取决于正在被执行的任务(例如当已知直到来自这些队列中的第一个队列的请求被执行为止可能出现停顿的情形时),能够升高该优先级。这可以实现在不需要更复杂的独立于任务的优先级调整方案的情况下提供更少的停顿。
在一个实施例中,同一代理可以具有多个队列,诸如存储器读请求的队列和存储器写请求的队列,这些队列通常具有不同的优先级。在该实施例中,较低优先级的队列的优先级水平可以被临时地提升到较高优先级的队列的优先级水平。从而,被升高的优先级不必扰乱不同代理之间的优先级区分。
在一个实施例中,被升高的优先级的持续时间可以持续到直到在优先级变更命令之前的由代理中的第一个代理发出的最后请求已被送到请求处理器为止。从而,被升高的优先级的持续时间可以由相对时间来定义,而无需进一步信息。该优先级变更命令可以被实施为提供给这些队列中的第一个队列的请求流中的请求。以这种方式,不需要独立的命令输出端。
在一个实施例中,优先级变更命令中的指定地址被用于确定升高的优先级的持续时间。在检测到具有该指定地址的请求已从相关队列被送到请求处理器后,该队列的优先级被返回到其原来的水平。以这种方式,可以在不给予需要更高优先级的请求低的优先级的情况下更容易地减少升高的优先级的持续时间(以及造成的对于其他队列的增加的延时)。在另一个实施例中,可以重新排列队列中的请求的次序,将更紧急的请求排在前面。这进一步减少了升高的优先级的持续时间。
根据另一个方面,提供了根据权利要求12的数据处理电路。基于对于从最高优先级的队列传送的下一个请求的第一动作的预测时刻,而不是基于请求处理器中存在该请求的空间的较早时刻,存储器控制器对本文中选择队列(以用于从这些队列传送存储器存取请求)的时间点进行控制。以这种方式,可以首先传送更高优先级的队列中的晚到的请求。在一个实施例中,该预测的时刻取决于在先的存储器存取请求的内容(例如取决于由这些请求选择的突发(burst)的大小)。
附图说明
从使用以下图对示范性实施例的描述中可以明显地看出这些和其他目标以及具有优势的方面。
图1示出了具有用于多个代理的队列的系统。
图2示出了多个请求流。
图3示出了队列的实施例。
图4示出了对排队的请求的重新安排。
图5示出了请求处理器。
图6示出了存储器控制电路。
图7示出了请求的执行的状态图。
图8示出了选择队列的时间。
具体实施方式
图1示出了包括多个代理10、多个队列12、请求集中器14、仲裁器16以及请求处理器18的系统。每个代理10(也称为发起者或主机)经由一个或多个队列12耦合到请求集中器14。举例来说,示出一个代理10具有两个队列,但是每个代理10可以使用更多的队列12,且更多的代理10可具有超过一个队列12。举例来说,每个代理10可以是处理器电路,耦合到通信终端(未示出)的输入和/或输出电路,等等。仲裁器16被耦合到队列12和请求集中器14。请求集中器14(其可以是复用器)具有耦合到请求处理器18(也称为从机或目标)的输出端。请求处理器18具有到代理10中的至少一部分的返回连接。举例来说,请求处理器18可以是具有存取控制器的存储器,该存取控制器处理存取所述存储器的请求。在这种情况下,所述返回连接可用于响应于读请求而返回从所述存储器读取的数据。
尽管示出队列12为不同的电路元件,但应当理解,可通过单个存储器来实施多个不同的队列。从而例如,可以使用单个存储器来实施同一代理的不同队列。该存储器的不同区域可用于不同队列,或与不同队列相关的请求(结合对它们所属的队列的指示)可以被一起存储在一个共同的队列中。
在操作中,每个代理10将各自的请求流(也称为命令)发送给它的一个或多个队列12。该一个或多个队列12缓存这些请求。可以使用从同一代理10到不同队列12的不同流。例如,一个流中的来自代理10的存储器读请求可以被放置在一个队列12中,且来自那个代理10的存储器写请求可以被放置在另一个队列12中的另一个流内。类似地,支持同步通信和异步通信的请求可以被放置在不同的队列12(同步通信指必须满足预定时限的通信,而异步通信无需满足这样的时限)中。尽管示出了从代理10到队列12的直接连接,应当理解,代理10可包括分配器(未示出),该分配器用于接收具有不同类型的请求的混合的流,且被配置成根据请求的类型将接收的请求分配给不同的队列12。
仲裁器16重复地读取所有代理10的队列的状态,且每次选择将从其中送出第一个缓存的请求的一个队列12。仲裁器16可以具有用于从请求处理器18接收使能信号的使能输入端(未示出),以指明每次何时必须作出选择。仲裁器16发信号将该选择通知给请求集中器14,该请求集中器将来自选定的队列12的第一请求送到请求处理器18。本来已经知晓,该选择可以基于指派给队列12的相对优先级。在一个实施例中,仲裁器可以将比给予存储器写请求的队列的优先级相对更高的优先级指派给存储器读请求的队列12。类似地,可以将比给予支持异步通信的队列的优先级更高的优先级给予支持同步通信的请求的队列,或者可以将比给予其他代理的队列的优先级更高的优先级给予某些代理的队列。
在一个实施例中,可以为预取的读请求提供不同于其他读请求的队列12的队列12。用作代理的指令处理器或高速缓存电路可被配置成预测将来将会需要的数据或指令的地址以及为这些地址发出预取指令。在该实施例中,至少一个代理被设计成以信号通知哪些读请求基于预取以及将这些预取请求存储在不同的队列中。仲裁器16可被配置成为该队列指派比给予具有读请求的队列的优先级低的优先级。
当使用相对优先级时,仲裁器16首先确定在最高优先级的队列12中是否存在被缓存的请求,如果是这样,其选择那个队列12,以将来自那个队列的前方的请求(即除非队列被重新排序,队列中最长的请求)送到请求处理器18。如果最高优先权的队列12未缓存任何请求,仲裁器确定下一个较低优先级的队列12是否包含请求以及依此类推。如果存在具有相同优先级的多个队列12,则仲裁器16可以以例如循环(round robin)方式为这些队列定义动态改变的相对的亚优先级(sub-priority)。
图2示出了可以被缓存在各自的队列12中的多个请求流20、20a、20b、20c。至少一个代理10被配置成例如通过在其发送到其队列12中之一的请求流20a、20b中包括优先级变更请求24来提供优先级变更命令。在流中进行包括用于在应用该优先级变更请求的流中定义位置,但是不同于包括的技术可以用于定义由该优先级变更命令指定的位置的目的。
仲裁器16被配置成检测优先级变更请求24,且响应于检测,升高缓存请求20a、20b(来自应用优先级变更请求24的流)的队列的优先级,直到处于由该优先级变更请求定义的位置之前的流中位置的、来自那个流的最后一个请求已被送到请求处理器18为止。在一个实施例中,发出该优先级变更请求24的代理10可具有多个队列12(分别具有请求20a、20b、24和具有请求20c),且仲裁器16可被配置成使代理10的这些队列12的优先级相等,直到达到由该优先级变更请求24定义的位置为止。
在一个实施例中,这可以被分别应用于来自同一代理10的读请求20c和写请求20a、20b的队列12。在这种情况下,读请求20c的队列12可通常具有比写请求20a、20b的队列12更高的优先级,但是响应于该优先级变更请求24,仲裁器16也将该代理的读请求20c的队列12的优先级指派给该代理的写请求20a、20b的队列12。结果,来自具有升高的优先级的队列12的请求20a将被更早地处理。例如,在par上可以将这些写请求和读请求20c一起处理,而不是被迫等待直到来自同一代理10和其他代理10的所有读请求20c均已被送到请求处理器为止。
该一个或多个具有发出优先级变更请求的能力的代理10可以是用于执行具有指令的程序的指令处理器,所述指令包括发出正常请求的指令和发出优先级变更请求的指令。当程序员或(编译器)得知直到已处理某个请求为止程序的执行将停顿时,该程序员可以为该请求的队列在程序中加入优先级变更请求,以减少因停顿造成的时间损失。
以下的表I示出了指令和对应的请求的例子。
表I
存R1,A1 | 在A1写的请求 |
装载R1,A2 | 从A2读的请求 |
装载R2,A3 | 从A3读的请求 |
发出升高请求 | 优先级升高请求 |
装载R3,A1 | 从A1读的请求 |
在本文中,执行存储指令导致向写队列发出写请求。一般该写请求具有低的优先级。然而,因为已经具有以下信息:将发出对同一地址的读的请求,可以在程序中包括用以发出优先级升高请求的指令。可以将该指令定位在存储指令后的任何地方,例如将其定位在具有装载指令的程序的基本块(一个基本块是以分支目标为开始的但是其中没有另外的分支目标的一系列指令)中。该程序员或编译器可以自由控制是否将升高优先级。当得知无需紧迫地完成该程序时,可以不在该程序中包括用以发出优先级升高请求的指令。
在另一个实施例中,代理10包括高速缓存电路,该电路被配置成发出作为对装载和存储指令的间接回应的请求。表II示出了这种情况下的指令、高速缓存回应和请求的例子。
表II
左边的列示出了由代理中的处理器执行的指令,中间的列示出了高速缓存的行为,且右边的列示出了由高速缓存电路发出的请求。可以从高速缓存电路提供一些装载指令,因此不需要请求。其他指令则使得高速缓存电路发出读请求以获取数据。该存储指令使得高速缓存将数据拷贝到背景内存(background memory)。在本实例中,假设该高速缓存行为,或某个另外的高速缓存行为,将使得有必要从背景内存重新填装高速缓存行。响应于该装载指令,高速缓存电路向队列发出写请求。该请求被存储在具有低的优先级的写队列中。
来自具有存储请求的高速缓存行的装载指令使得高速缓存电路发出读请求。该请求将不得不等待存储指令的完成。为加速处理,该高速缓存电路也向队列发出优先级升高请求。可以注意到,高速缓存电路而非队列控制了优先级的上升。从而,队列无需决定这一事项。
图3示出了队列12的实施例,该队列包括输入接口30、FIFO缓存器32、输出接口34,以及优先级变更请求检测器36。FIFO缓存器32被耦合在输入接口30和输出接口34之间。优先级变更请求检测器36具有耦合到输入接口30的输入端和耦合到FIFO缓存器32的使能输出端。在该实施例中,优先级变更请求未被缓存在队列中。
输入接口30可包括用于接收请求信息的连接,该请求信息诸如地址、请求类型指示和可选的数据以及指明来自其对应的代理(未示出)的请求的存在性的控制信号。如果FIFO缓存器32是满的,该输入接口也可以提供握手连接以停顿该代理。输出接口34可包括用于提供诸如地址和可选的数据的信息的连接以及用于从集中器(未示出)接收接受信号的连接。
优先级变更请求检测器36被配置成接收关于请求类型的指示,并被配置成如果请求不是优先级变更请求则使得FIFO缓存器32缓存该请求。优先级变更请求检测器36被配置成记录对优先级变更请求的检测,并被配置成存储关于最后接收的优先级变更请求相对于FIFO缓存器32中的请求的位置的指示。
FIFO缓存器32可通过存储器来实施,在该存储器中,请求被存储在一系列存储器位置中,且指针被存储以指明最后输入的请求以及尚未被送出的第一个输入的请求。在这种情况下,优先权变更请求检测器36可包括另一存储器位置,在该存储器位置中,存储了在接收最后的优先权变更请求时最后接收的请求的位置指针。如果该指针指向第一和最后一个请求的位置之间,则要求变更优先级。或者,该指示可以指明距最后加入的请求的距离,在这种情况下,每次当加入请求时,优先级变更请求检测器36可以增加该距离,或者该指示可以是对从第一个缓存的但尚未被送出的请求算起的请求的计数,在这种情况下每次当送出来自该队列的请求时该指示便被减少。
当使用图3的类型的队列时,仲裁器16无需检查队列中的所有请求来确定是否已接收到优先级变更请求。与之不同,仲裁器16可以在仍处于该队列之中的请求的位置内读取关于最后接收的优先级变更请求的位置的指示(如果有的话),以确定在选择下一个队列(将送出其中的请求)时是否需要变更优先级。
如已经指出的,该优先级变更请求隐式地指明了队列中的位置,因为它是请求流的一部分。然而,应当注意,或者,可以通过与该流并行的优先级变更命令来以信号通知该优先级变更,在这种情况下,其相对于该流中的请求的发送的相对时刻可以被用来定义该位置。
在一个实施例中,该优先级变更请求可包括对该位置的明确指示(例如以从必须应用优先级变更的最后一个请求起由该代理提供的在先请求的数目来计算)。在这种情况下,优先级变更请求检测器36可以使用该数目来计算该位置的指示。
在另一个实施例中,该优先级变更请求可包括由该代理10指定的、且对应于在最后一个必须应用优先级变更的在先请求中使用的地址的地址。在这种情况下,优先级变更请求检测器36可以被配置成每次当其接收优先级变更请求时更新该地址和被配置成设置指明变更优先级的需要的标志。优先级变更请求检测器36可以被配置成提供该标志和该地址给仲裁器16。该仲裁器可以被配置成读该标志和在回应中升高参与的队列的优先级,以及将从该队列中送出的请求的地址与指明的地址进行比较。一旦仲裁器检测到送出了具有该地址的请求,其重新设置指明需要变更优先级的该标志。
在另一个实施例中,如图4所示,响应于该优先级变更请求,该队列中的请求的顺序可以被重新安排。在本文中,示出该优先级变更请求24在该流之外,且其具有的一个箭头指明了由该优先级变更请求24指明的具体请求40。如图所示,通过将该具体的被指明请求40移到队列(该请求将从该队列中送出)中的居于来自该队列的任何其他请求之前的前方位置,该队列修改了该请求的顺序。此外,直到该具体的被指明请求40已被送出为止,该队列的优先级被升高。以这种方式,在其中升高优先级的时间段长度可以被保持在最小,且效果是其他队列中的额外延时被最小化。
例如,这可以通过使用优先级变更请求检测器36中的处理器电路来实施。该处理器电路被配置成响应于该优先级变更请求而从FIFO缓存器32拷贝该具体的被指明请求40,以在FIFO缓存器32中将居于该具体的被指明请求40之前的请求20a向后移和将该提取的具体被指明请求40插入在FIFO缓存器32的头部。
尽管示出了具有FIFO缓存器(该缓存器可以使用移位寄存器或循环使用的存储器区域结合指向该存储器区域中的排队数据的起始和末尾的读和写指针来实施)的队列,应当懂得,可以以许多其他方式来实施FIFO功能。例如,可以随机地存储请求以及指明这些请求在队列中的逻辑位置的信息,且可以搜索与特定队列关联的一种类型的最陈旧请求,以识别该最陈旧请求,或者可以使用指向队列的不同的随机存储的请求的指针。
图5示出了请求处理器的一个实施例,该请求处理器包括存储器50、存储器控制器52、请求寄存器54(举例地示出了两个)以及时钟电路56。存储器控制器52包括多个状态寄存器520(举例地示出了两个)。在该实施例中,该请求处理器被设计成对选择时间点进行控制,在该时间点,仲裁器16选择请求集中器将从其中将下一个请求送到请求处理器的队列。具体地,该请求处理器被设计成基于来自存储器控制器52的状态信息而延时该选择时间点。通过延时该选择时间点,可以比选择时间点未被延时的情况下更早地送出和处理高优先级队列中的晚到达的请求,使得在该晚到达的请求到达之前作出该选择。可以在专用的存储器集成电路中实施存储器50,且该存储器集成电路可被耦合到包括请求集中器14和仲裁器16的另一集成电路。
时钟电路56被耦合到存储器50、存储器控制器52和请求寄存器54,以便以信号通知接连的若干个存储器操作周期。请求集中器14的输出端被耦合到请求寄存器54。请求寄存器54可以被耦合以形成移位寄存器,在这种情况下,请求集中器的输出端被耦合到移位寄存器的前方。请求寄存器54的输出端被耦合到存储器控制器52,后者又具有耦合到存储器50的控制输出端。存储器50可包括多个存储器组(memory bank)和周期性地将这些存储器组耦合到存储器50的输入端和输出端的多路复用器。而且,存储器控制器52具有耦合到仲裁器16的时间点选择输出端58。
在操作中,由已经从队列中送出的请求中得出的请求信息被存储在请求寄存器54中。该请求信息可包括地址信息,例如,其也可以包括用以指明该请求是读请求还是写请求的信息以及用以指明突发大小(burst size)的信息。存储器控制器52并行地使用来自不同请求寄存器54的请求信息,以控制存储器50的流水线操作。
除控制存取操作外,存储器控制器52生成到仲裁器16的时间点选择信号,以指明何时应当进行对队列的选择。取决于在处理之前的存储器存取请求的过程中达到的状态,存储器控制器52生成到仲裁器16的时间点选择信号。对队列的选择被延时到请求寄存器变为空的时刻之后,以给予晚到的高优先级请求首先被送出的机会。
在一个实施例中,存储器50是DRAM存储器。在DRAM存储器中,可以使用页面模式存取。在典型的DRAM存储器中,处理请求包括以下操作:预装填(precharging)存储器50(即将存储器数据从页面寄存器传送到存储器组中的存储器单元的页面),根据来自请求的地址信息激活存储器阵列的行(即将来自处于存储器组中的指定页面地址的存储器单元的存储器数据传送给寄存器),并根据请求的需要从寄存器读取数据或将数据写入寄存器。
图6示出了存储器控制器的一个实施例的例子。在该实施例中,存储器控制器包括请求转换器60、分发器61、基础请求寄存器63、请求执行状态机65、一组状态寄存器/计数器66和时间选择器67。状态机65被耦合到基础请求寄存器63和状态寄存器/计数器组66。状态机65和请求寄存器63被耦合到存储器组(未示出)。时间选择器67具有耦合到状态寄存器/计数器66a、66b和状态机65的输入端。
在操作中,时间选择器67使用来自状态寄存器/计数器66a、66b和状态机65的状态信息以控制选择的时刻并生成到仲裁器(未示出)的时间点选择信号。在讨论生成时间点选择信号之前,将简要讨论存储器控制的例子。
请求转换器60具有耦合到请求寄存器54的输入端。分发器61被耦合在请求转换器60和基础请求寄存器63之间。状态寄存器/计数器组66包括全局状态寄存器/计数器66a和对于组特定的寄存器/计数器66b。举例来说,对于每个组,示出了三个全局状态寄存器/计数器66a和一个对于组特定的计数器66b。但是,取决于实施方式,可以使用不同数目的寄存器/计数器。
在一个实施例中,这些寄存器/计数器包括指明存储器的数据端子将被保持占据的周期数目的全局计数器,且对于每个存储器组而言的指明该存储器组是否正在被使用的寄存器、具有存储器寄存器中的页面的页面地址的寄存器、指明在当前的预装填操作完成前的周期数目的计数器、以及指明在当前的激活操作完成前的周期数目的计数器。此外,可以提供全局计数器,以指明在下一个激活操作被允许前的周期数目,且指明存储器的数据端子将被保持占据的周期数目的全局计数器可被细分为分别指明在前一个读之后的读将被允许、前一个写之后的读将被允许、前一个读之后的写将被允许和前一个写之后的写将被允许之前的周期数目的多个计数器。在一个实施例中,这些计数器可包括刷新(refresh)计数器,或多个用于各自的存储器组的刷新计数器,用于对指明刷新操作将被完成之前的周期数目的数字进行计数(众所周知,当DRAM存储器在一定时间后未被更新时,其要求其单元内容被刷新)。
状态机65被耦合到基础请求寄存器63和状态寄存器/计数器组66。术语“状态机”以描述性的方式使用,以指明在实施状态机65的电路的操作过程中能够识别一系列状态。这些电路可以是通用的状态机电路,被编程为提供存储器存取需要的状态机操作。但是,应当理解,这些状态机可以是任何据称能够通过接连的多个状态的专用存储器控制电路。
在操作中,请求转换器60将来自请求寄存器54的存储器存取请求转换为与单个的数据字相关的请求。请求寄存器54可以被用作至请求转换器60的FIFO队列。在一个实施例中,可以使用单请求寄存器,且该队列为一个寄存器长。在另一个实施例中,可以使用请求寄存器54的队列:一个寄存器用于当前被转换的请求且一个寄存器用于将来的请求。请求寄存器54中的请求可以与不同数目的数据字有关:一些与单个字有关,且另外的可以与连续地址处的多个数据字的突发有关。请求转换器60将后一种请求拆分成单字请求,并将与单字相关的请求和基础请求馈送到基础请求寄存器63,当请求寄存器63可用时,它们自由接收新的请求。状态机65为存储器组(未示出)生成控制信号,以执行预装填、激活和读或写操作。
图7示意性地示出了解释状态机65的操作的状态图。该状态图示出了初始状态O、预装填状态P、激活状态A以及读或写状态R/W。当将请求装载到状态机65的基础请求寄存器63之中时,状态机65最初处于初始状态O。基础请求寄存器63中的该请求包括地址(其指明处理该请求所需的选定的存储器组)、该存储器组中的页面以及所述页面内的位置。
只要寄存器/计数器组66中的信息指明该选定的存储器组正由另一个状态机使用,状态机65就保持在初始状态。当从初始状态O退出时,状态机65设置该寄存器/计数器组66中的信息,该信息指明该选定的存储器组正在被使用。如果该存储器组是未被使用的,且该寄存器/计数器组66中的信息指明所选定的存储器组中最后使用的页面地址与基础请求寄存器63中的请求的页面地址匹配,以及计数器/寄存器组66中的全局计数器指明存储器的数据端子将可供自由使用,状态机65切换到读/写状态。如果该页面地址不匹配,则状态机65切换到预装填状态P。在进入该预装填状态后,状态机65生成到选定的存储器组的信号,以进行预装填操作。
在完成预装填必需的预定周期数目(例如七)之后,且可选地,如果计数器/寄存器组中的全局计数器66a指明从前一个激活操作起已经经历另一个预定数目的周期(可以这样做以防止因彼此接近的激活而导致的过大电流),则状态机65从预装填状态P切换到激活状态A。在状态机65进入预装填状态P和被状态机65设置以后,寄存器/计数器组66中的计数器可被用于对完成预装填必需的周期进行计数。在进入激活状态后,状态机65生成到所选存储器组的信号,以便为来自基础请求寄存器63的该页面地址执行激活操作。
在完成激活必需的预定周期数(例如七)之后,且如果计数器/寄存器组66中的全局计数器66a指明存储器的数据端子将可供自由使用,则状态机65从激活状态A切换到读/写状态W/R。在状态机65进入激活状态P和被状态机65设置以后,寄存器/计数器组66中的计数器可被用于对完成激活填必需的周期进行计数。该计数器可被用于触发指明从前一个激活操作起经过的周期的计数器。
在进入读/写状态后,状态机65设置计数器/寄存器组66中的全局计数器66a,以指明存储器的数据端子在若干周期内(例如四个周期)不能被自由使用。在读操作的情况下,为了由基础请求寄存器63中的地址指明的页内地址,状态机65控制存储器组,以将来自所选存储器组的存取寄存器的数据传送到该存储器的数据端子。在写操作的情况下,为了由基础请求寄存器63中的地址指明的页内地址,状态机65控制该存储器组,以将来自该存储器的数据端子的数据传送到该存储器组的存取寄存器。取决于前一个存取类型,可以用多个不同的计数器来指明其中数据端子不可用于不同类型的存取的周期数目。对读和写而言,进入读/写状态R/W和数据在存储器的数据端子上的周期之间的时间段可能不同。因此,取决于基础请求寄存器65指明读还是写请求,状态机65可以不同地设置计数器/寄存器组66中的计数器。
在完成该传送后,状态机65返回到初始状态,这清除了关于所选存储器组正在被使用的该信号且以信号通知:该状态机的基础请求寄存器63未被使用。
时间选择器67使用来自状态寄存器/计数器66a、66b和状态机65的状态信息来控制到达仲裁器(未示出)的时间点选择信号的时间。当预期能够在预定的周期数目M内处理新的请求,使得需要从存储器控制器中的队列(未示出)输入请求时,在此时的时间点处生成该时间点选择信号。
在第一个实施例中,当从状态机55的状态预期该时间点时,时间选择器67确定该时间点。在每个状态让存储器的数据端子可被自由使用之前,其可以与最少的周期数目关联。在这种情况下,时间选择器67可以选择与状态机55的观察的状态关联的各个周期数目中的最大值,并将该最大值与该预定数目M进行比较,当该最大值不大于M时,生成该时间点选择信号。此处,M代表在从队列得出的第一请求能够到达R/W状态之前需要的周期数。
在另一个实施例中,时间选择器67可以计算取决于来自状态寄存器/计数器66a、66b的计数器值的不同状态的相关周期数。例如,,通过将对预装填操作完成之前的周期的计数加入预装填状态的基准数,可以计算与预装填状态关联的周期数。在另一个实施例中,可以将该基准数加入以下之中的最大值:一方面,对该预装填操作完成之前的周期的计数;另一方面,仍必须来自前一个激活操作的周期数。此处,可以进行与数目M的比较,其代表在从队列得出的第一请求能够到达预装填状态之前所需的周期数。当该计算的周期数等于周期数M或小于M时,时间选择器67从该比较的结果中确定该选择时间点。
在计数器包括一个或多个刷新计数器的实施例中,可以在刷新操作执行开始时设置刷新计数器,并在相继的周期中更新该计数器。在一个实例中,该计数器可以对存储器阵列的连续的行进行寻址,以进行刷新。在该实施例中,时间选择器67可以将由刷新计数器的计数值指明的周期数与预定的周期数M进行比较。当指明的剩余刷新周期数等于M或小于M时,时间选择器67从该比较的结果中确定选择时间点。
在另一个实施例中,时间选择器67可以从来自状态机的状态信息中计算总计的周期数。从而,例如,时间选择器67可以计算基础请求寄存器63中的请求所需的读和写周期数之和,将该和与预定数目M比较,且当该和不超过该数目M时生成该时间点选择信号。在另一个实施例中,可以将来自寄存器/计数器组15的、用于指明由于请求的原因存储器的数据端子将不能自由使用的周期数的当前计数值加入其他请求所需的读和写周期数之和,并将其与该预定数进行比较。
时间选择器67可以执行多个不同种类的这样的计算,并且在用于生成时间点选择信号的与数目N的比较中使用最大的周期数。而且,时间选择器67可以被配置成从请求转换器60读信息,以确定请求转换器60尚未基于来自请求寄存器54的当前请求而提供的那些个体请求将需要数据端子的周期数。在与预定数目M比较的过程中,时间选择器67可以将该周期数加入为基础请求寄存器63中的个体请求确定的所计算周期数。类似地,时间选择器67可以被配置成从请求寄存器54读关于等待中的请求的信息,并加入该信息。
可以注意到,时间点选择信号的时间无需在以下意义上完全准确:如果仲裁器16在指明的时间点处选择了队列,必须确保下一个请求可以立即得到处理。保证存在用于来自所选队列的请求的缓存空间就足够了。另外,只要该时间点选择信号对应于近似等于这样的完全准确的时间点的预测,操作就能得到改善。
图8示出了该实施例中时间点选择信号的时间的简化例子。虚线条指明了时钟周期的开始。首四条迹线(trace)指明了在这些时间周期中在各自的存储器组中启动的操作(P表示预装填的开始,A表示激活的开始,且R表示读数据的开始,以及这些字母后面的数字区分了这些操作为之而执行的那些不同请求)。另一条迹线示出了具有脉冲的信号,这些脉冲指明何时存储器控制器52使能(enable)仲裁器的选择。最后的迹线指明了请求寄存器54中的请求。
在第一个箭头80标记的时间点处,用于第一次交易(1)的请求寄存器54变为空的,因为完成了第一次交易1的最后一个操作。然而,直到第二个箭头82指示的时间点为止,没有生成用以使得仲裁器能够选择队列的使能信号。该时间点对应于对第一时间点的预测(由箭头84指示),在该第一时间点处,存储器50需要将从所选的队列送来的请求,向后计数预定的时钟周期数M(由箭头86指示)。存储器控制器52有效率地使用关于操作的进度的状态信息来预测何时时间点84将会出现,确定当前周期是否在时间点84之前M个周期,并且如果存在空的请求寄存器54则在该周期中生成使能信号。
应当注意,在时间点80和82之间经过了一定数目的时钟周期,在此期间,该请求寄存器保持为空。通过将队列的选择推迟,尽管容许送出请求,晚到的高优先级请求得到了被首先送出的机会。
在一个实例中,仲裁器能够选择队列,从所选的队列送来的请求和存储器控制器能够基于该请求在六个时钟周期内建立下一个操作。在这种情况下,一旦检测到请求寄存器54是空的,且检测到对其他检测器54中的请求的处理已经进行到新请求的第一操作能够执行之前六个周期的阶段,存储器控制器52就生成时间点选择信号。数字六仅仅是一个例子:如果在完成之前从队列选择到建立的时间为M个时钟周期(其中M可以具有任何值),则在新请求的第一操作能够执行的M个周期前可以产生该时间点选择信号。
应当注意,在时间点80和82之间经过了一定数目的时钟周期,在此期间,该请求寄存器保持为空。通过将队列的选择推迟,尽管容许送出请求,晚到的高优先级请求得到了被首先送出的机会。
尽管已经描述了这样的实施例(其中代理的队列的临时优先级基于该代理的另一个队列的优先级来进行选择),应当懂得,可以使用其他选择优先级的方法。例如,优先级变更命令可以指定将使用的优先级水平,或者可以指派预定的临时优先级水平。
尽管已经描述了这样的实施例(其中集中器一次送出一个请求),应当懂得,可以一次送出超过一个请求(例如取决于请求的大小)。在这种情况下,可以修改该实施例的措施,使得如所述的那样选择至少一个请求。
尽管没有提及请求之间可能的冲突,应当懂得,可以使用对冲突请求(诸如对同一地址的读和写)的检测以传统的方式提供对队列的额外协调。尽管已经示出了这样的实施例(其中该请求处理器处理存储器存取请求),应当懂得,可以使用其他类型的请求处理器,诸如用于经由I/O设备处理对I/O的请求的I/O请求处理器。尽管已经示出这样的实施例(其中代理是可编程处理器电路),应当懂得,部分或所有的代理可以是其他电路,诸如对于任务特定的协处理器(co-processor)电路。
通过研究附图、本公开和所附权利要求,本领域技术人员在实施请求保护的发明时,能够理解和实现对公开的实施例的其他变化。在权利要求中,词语“包括”不排除其他要素或步骤,且不定冠词“一个/一种”不排除多个/多种。单个处理器或其他单元可以完成权利要求中记载的几项功能。某些措施被记载在互相不同的从属权利要求之中的事实并不表明不能使用这些措施的组合来获得裨益。可以将计算机程序存储/分布在合适的介质(诸如光存储介质或与其他硬件一起提供或作为其他硬件的一部分而提供的固态介质),但是也可以以其他形式分布该程序(如经由因特网或其他有线或无线通信系统分布)。不应将权利要求中的任何附图标记解读为对保护范围的限制。
Claims (16)
1.一种数据处理电路,包括:
多个代理(10),每个代理被配置成发出请求;
多个队列(12),用于将所述请求排队,所述代理(12)中的第一个被耦合到所述队列(12)中的第一个,所述代理(10)中的所述第一个被配置成发出优先级变更命令到所述队列(12)中的所述第一个,所述优先级变更命令具有相对于由所述代理(10)中的所述第一个发出的等待中的请求的定义位置;
请求处理器(18);
请求集中器(14),耦合在所述队列(12)和所述请求处理器(18)之间;
仲裁器(16),被耦合到所述请求集中器(14)的控制输入端,并被配置成基于分配给所述队列(12)的相对优先级而作出接连的选择,用于选出所述请求集中器(14)将从其中把请求送到所述请求处理器(18)的队列,所述仲裁器(16)被配置成,通过有选择地在直到所述定义位置的所述等待中的请求处于所述队列(12)中的所述第一个之中的持续时间内,变更所述队列(12)中的所述第一个的优先级而对所述优先级变更命令作出响应。
2.如权利要求1所述的数据处理电路,其中所述代理(10)中的所述第一个还被耦合到所述队列(12)中的第二个,所述仲裁器(16)被配置成,通过在所述持续时间内将分配给所述队列(12)中的所述第二个的优先级用于所述队列(12)中的所述第一个,来对所述优先级变更命令作出响应。
3.如权利要求2所述的数据处理电路,其中所述请求处理器(18)包括存储器控制器(52),用于处理对于存储器(50)的读和写请求,所述代理(10)中的所述第一个被配置成将存储器写请求和存储器读请求分别发送到所述队列(12)中的所述第一个和所述第二个。
4.如权利要求1所述的数据处理电路,其中所述仲裁器(16)被配置成,在所述优先级变更命令已被送到所述请求处理器(18)之前,从接收所述优先级变更命令的时刻起,直到所述队列(12)中的所述第一个中的最后一个请求由所述代理(10)中的所述第一个发出为止,升高所述队列(12)中的所述第一个的优先级。
5.如权利要求1所述的数据处理电路,其中所述代理(10)中的所述第一个被配置成将请求的流发送到所述队列中的所述第一个,并被配置成将所述优先级变更命令作为所述请求之一包括在所述流中,由此定义了所述优先级变更命令的所述定义位置。
6.如权利要求1所述的数据处理电路,其中至少一部分所述请求包括请求地址,且其中所述代理(10)中的所述第一个被配置成在所述优先级变更命令中包括指定的地址,所述仲裁器被配置成,在检测到已被送到所述请求处理器(18)的从所述队列(12)的所述第一个送出的请求的请求地址与所述优先级变更命令的所述指定地址匹配后,将所述队列中的所述第一个的优先级恢复为其原来的水平。
7.如权利要求1所述的数据处理电路,其中所述队列(12)中的所述第一个被配置成,响应于所述优先级变更请求,通过将由所述优先级变更请求指定的请求移动到所述队列(12)中的所述第一个的前方而重新安排所述请求在所述队列(12)中的所述第一个中的次序,所述仲裁器(16)被配置成有选择地升高所述队列(12)中的所述第一个的优先级,直到由所述优先级变更命令指定的所述请求已被送到所述请求处理器(18)为止。
8.如权利要求1所述的数据处理电路,其中所述代理(10)中的所述第一个包括指令处理电路,其被配置成在来自指令组成的程序的指令的控制下发送所述请求,所述指令组成的程序包括用于将所述请求发送到所述队列(12)中的所述第一个和用于发送所述优先级变更命令的所述指令处理电路的指令。
9.如权利要求1所述的数据处理电路,其中所述请求是存储器存取请求,且其中所述请求处理器(18)具有耦合到所述仲裁器(16)的时间选择输入端的输出端,所述仲裁器(16)被配置成在由所述请求处理器(18)生成的时间点选择信号定义的所选时间点处在所述队列之间进行选择,所述请求处理器(18)包括:
存储空间(54),用于从所述请求集中器(14)送来的存取请求以及
存储器控制电路(63,65,66),被配置成在相应的多个周期中经过一系列状态的同时执行每个存储器存取请求,
时间选择器(67),其被耦合到所述存储器控制电路(63,65,66)且被配置成,在所述存储空间(54)中的位置对于新请求变为空之后,选择具有依赖于状态的可变延时的所述时间点选择信号的时间,所述延时基于来自所述存储器控制电路(63,65,66)的状态信息,所述状态信息指明了在所述存储器控制电路(63,65,66)能够处理所述新请求之前必须出现的周期数。
10.一种处理数据的方法,所述方法包括:
从多个代理(10)发出请求;
将所述请求在多个队列(12)中排队,至少一部分来自所述代理(10)中的第一个的请求在所述队列(12)中的第一个中排队,
作出用于选出队列(12)中的一个的接连的选择,每个选择基于在选择时间处分配给所述队列(12)的相对优先级;
对于每个接连的选择,将来自所选队列(12)的请求送到请求处理器(18);
将优先级变更命令发送到所述队列(12)中的所述第一个,所述优先级变更命令定义了相对于由所述代理(10)中的所述第一个发出的等待中的请求的位置;
通过有选择地在直到达到所述定义的位置的所述等待中的请求已被送到所述请求处理器(18)为止的持续时间内,变更所述队列(10)中的所述第一个的优先级,对所述优先级变更命令进行响应。
11.如权利要求10所述的方法,所述方法包括:
用作为所述代理(10)中的所述第一个的指令处理器执行指令组成的程序;
在来自所述程序的指令中的第一个的控制下,将所述请求发送到所述队列(12)中的所述第一个;
在来自所述程序的指令中的第二个的控制下,发送所述优先级变更命令。
12.一种计算机程序产品,包括由指令组成的程序,当所述程序由可编程处理器执行时,使得所述可编程处理器将请求发送到多个队列(12)中的第一个,并发送优先级变更命令,所述优先级变更命令定义了相对于所述队列(12)中的所述第一个中的等待中的请求的位置,以在直到达到所述定义的位置的所述等待中的请求已被送到请求处理器(18)为止的持续时间内,有选择地相对于所述多个队列(12)中的其他队列而升高所述多个队列(12)中的所述第一个的优先级。
13.一种数据处理电路,包括:
多个代理(10),每个代理被配置成发送存储器存取请求;
多个队列(12),用于将所述存储器存取请求排队;
请求集中器(14),其耦合到所述队列(12);
仲裁器(16),其耦合到所述请求集中器(14)并被配置为作出接连的选择,用于在选择时间处基于分配给所述队列(12)的相对优先级而选出所述请求集中器(14)将从其中送出前方的存储器存取请求的队列(12),所述仲裁器(16)具有时间选择输入端,用于接收对所选时间点的指示,所述仲裁器(16)要对于所选时间点确定所述接连的选择;
请求处理器(18),其耦合到所述请求集中器(14)以及所述仲裁器(16)的时间选择输入端,用于接收由所述请求集中器(14)送来的所述存储器存取请求,所述请求处理器(18)包括:
存储空间(54),用于从所述请求集中器(14)送来的存取请求以及
存储器控制电路(63,65,66),被配置成在相应的多个周期内经过一系列状态的同时执行每个存储器存取请求,
时间选择器(67),被配置成在所述存储空间(54)中用于新请求的空间已变为空之后,基于来自所述存储器控制电路(63,65,66)的状态信息,确定具有依赖于状态的可变延时的所选时间点,所述状态信息对于其中取决于新请求的动作将变为可能的周期是预测性的。
14.如权利要求13所述的数据处理电路,其中所述存储器控制电路(63,65,66)包括计数器,用于对所述存储器控制电路(63,65,66)自由进行状态转换之前的周期数进行计数,所述时间选择器(67)被配置成取决于所述计数器的内容而确定是否已经达到所述所选时间点。
15.如权利要求13所述的数据处理电路,其中所述存储器控制电路(63,65,66)包括刷新计数器,用于对存储器刷新操作期间的周期进行计数,所述时间选择器(67)被配置成取决于所述刷新计数器的内容而确定是否已经达到所述所选时间点。
16.一种数据处理方法,包括:
发出存储器存取请求;
将所述存储器存取请求在多个队列(12)中排队;
作出接连的选择,每个选择用于在选择时间处基于分配给所述队列(12)的相对优先级而选出所述队列(12)中之一;
对于每个接连的选择,将来自所选队列(12)的前方的存储器存取请求送到请求处理器(18);
通过在相应的多个周期中步进经过一系列存储器控制状态而执行每个送来的存储器存取请求;
取决于用于执行所述存储器存取请求中的之前那些请求的状态信息,确定预测的周期数,在所述预测的周期数后,取决于新请求的动作将变得可能;
在已存在用于新请求的存储空间之后,以所述预测的周期数和预定数目的比较为条件,以信号通知具有延时的、用于所述接连的选择中的至少一个的选择时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08161300.2 | 2008-07-29 | ||
EP08161300 | 2008-07-29 | ||
PCT/IB2009/053260 WO2010013189A2 (en) | 2008-07-29 | 2009-07-27 | Data processing circuit with arbitration between a plurality of queues |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102203752A true CN102203752A (zh) | 2011-09-28 |
CN102203752B CN102203752B (zh) | 2014-04-30 |
Family
ID=41217764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980137990.0A Active CN102203752B (zh) | 2008-07-29 | 2009-07-27 | 具有多个队列之间的仲裁的数据处理电路 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8478950B2 (zh) |
EP (1) | EP2350843B1 (zh) |
CN (1) | CN102203752B (zh) |
WO (1) | WO2010013189A2 (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104581172A (zh) * | 2014-12-08 | 2015-04-29 | 北京中星微电子有限公司 | 一种实现svc宏块级算法的硬件结构 |
CN106874081A (zh) * | 2015-12-11 | 2017-06-20 | 马维尔国际贸易有限公司 | 在nand闪速控制器中根据优先级对解码任务进行排队 |
CN107229581A (zh) * | 2016-03-25 | 2017-10-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN107276872A (zh) * | 2017-06-05 | 2017-10-20 | 杭州电子科技大学 | 嵌入式plc的多路信号处理方法与嵌入式plc系统 |
CN107870866A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | Io命令调度方法与nvm接口控制器 |
CN108268386A (zh) * | 2016-12-30 | 2018-07-10 | 英特尔公司 | 加速硬件中的存储器排序 |
CN108415860A (zh) * | 2017-02-09 | 2018-08-17 | 慧与发展有限责任合伙企业 | 在总线队列之间分配主设备任务 |
CN108984108A (zh) * | 2017-06-05 | 2018-12-11 | 北京忆恒创源科技有限公司 | 用于调度io命令的方法与固态存储设备 |
CN109690508A (zh) * | 2016-07-15 | 2019-04-26 | 超威半导体公司 | 带虚拟控制器模式的存储器控制器 |
CN110088723A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并且做出仲裁的系统和方法 |
CN110162485A (zh) * | 2018-02-13 | 2019-08-23 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN111625376A (zh) * | 2017-04-01 | 2020-09-04 | 北京忆芯科技有限公司 | 通过代理进行队列通信的方法与消息系统 |
CN112585593A (zh) * | 2018-08-20 | 2021-03-30 | 超威半导体公司 | 链路层数据打包和封包流控制方案 |
CN112767978A (zh) * | 2021-01-11 | 2021-05-07 | 湖南国科微电子股份有限公司 | 一种ddr命令调度方法、装置、设备及介质 |
CN114090077A (zh) * | 2021-11-24 | 2022-02-25 | 海光信息技术股份有限公司 | 调取指令的方法及装置、处理装置及存储介质 |
US11487434B2 (en) | 2017-03-24 | 2022-11-01 | Western Digital Technologies, Inc. | Data storage device and method for adaptive command completion posting |
US11593295B2 (en) | 2018-06-30 | 2023-02-28 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US11635898B2 (en) | 2017-03-24 | 2023-04-25 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2296091A1 (en) * | 2009-09-14 | 2011-03-16 | Nxp B.V. | Servicing low-latency requests ahead of best-effort requests |
GB2478795B (en) * | 2010-03-19 | 2013-03-13 | Imagination Tech Ltd | Requests and data handling in a bus architecture |
US8688880B2 (en) * | 2010-06-23 | 2014-04-01 | International Business Machines Corporation | Centralized serialization of requests in a multiprocessor system |
US9293187B2 (en) * | 2011-09-26 | 2016-03-22 | Cisco Technology, Inc. | Methods and apparatus for refreshing digital memory circuits |
US8793421B2 (en) * | 2011-10-31 | 2014-07-29 | Apple Inc. | Queue arbitration using non-stalling request indication |
JP2013206247A (ja) * | 2012-03-29 | 2013-10-07 | Fujitsu Ltd | システム制御装置、情報処理装置及びシステム制御装置の制御方法 |
KR101962874B1 (ko) | 2012-04-24 | 2019-03-27 | 삼성전자주식회사 | 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 이의 동작 방법 |
US9626294B2 (en) * | 2012-10-03 | 2017-04-18 | International Business Machines Corporation | Performance-driven cache line memory access |
US10083035B2 (en) * | 2013-07-15 | 2018-09-25 | Texas Instruments Incorporated | Dual data streams sharing dual level two cache access ports to maximize bandwidth utilization |
US9330432B2 (en) * | 2013-08-19 | 2016-05-03 | Apple Inc. | Queuing system for register file access |
US10270705B1 (en) * | 2013-12-18 | 2019-04-23 | Violin Systems Llc | Transmission of stateful data over a stateless communications channel |
US9455933B2 (en) | 2014-01-25 | 2016-09-27 | Cisco Technology, Inc. | Flexible deterministic binary scheduler |
KR102106541B1 (ko) * | 2015-03-18 | 2020-05-04 | 삼성전자주식회사 | 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템 |
US10606510B2 (en) * | 2015-10-29 | 2020-03-31 | Netflix, Inc. | Memory input/output management |
KR102449333B1 (ko) * | 2015-10-30 | 2022-10-04 | 삼성전자주식회사 | 메모리 시스템 및 그것의 읽기 요청 관리 방법 |
KR102373544B1 (ko) | 2015-11-06 | 2022-03-11 | 삼성전자주식회사 | 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법 |
US10009291B1 (en) * | 2015-12-21 | 2018-06-26 | Amazon Technologies, Inc. | Programmable switching fabric for dynamic path selection |
US10341259B1 (en) | 2016-05-31 | 2019-07-02 | Amazon Technologies, Inc. | Packet forwarding using programmable feature prioritization |
US10223298B2 (en) * | 2016-12-12 | 2019-03-05 | Intel Corporation | Urgency based reordering for priority order servicing of memory requests |
US10496578B2 (en) | 2017-01-06 | 2019-12-03 | Samsung Electronics Co., Ltd. | Central arbitration scheme for a highly efficient interconnection topology in a GPU |
US10628344B2 (en) * | 2017-09-22 | 2020-04-21 | Macronix International Co., Ltd. | Controlling method, channel operating circuit and memory system for executing memory dies with single channel |
US10713196B1 (en) * | 2018-12-20 | 2020-07-14 | Intel Corporation | Flexible and scalable accelerator architecture |
US11080199B2 (en) * | 2019-03-07 | 2021-08-03 | International Business Machines Corporation | Determining logical address of an oldest memory access request |
US20200348845A1 (en) * | 2019-05-01 | 2020-11-05 | EMC IP Holding Company LLC | Asynchronous and synchronous transmit priority mechanism |
US11481342B2 (en) | 2019-06-25 | 2022-10-25 | Seagate Technology Llc | Data storage system data access arbitration |
US10991413B2 (en) * | 2019-07-03 | 2021-04-27 | Micron Technology, Inc. | Memory with programmable die refresh stagger |
CN113377277A (zh) * | 2020-03-09 | 2021-09-10 | 伊姆西Ip控股有限责任公司 | 管理存储器的方法、设备和计算机程序产品 |
CN114185513B (zh) * | 2022-02-17 | 2022-05-20 | 沐曦集成电路(上海)有限公司 | 数据缓存装置和芯片 |
CN116521097B (zh) * | 2023-07-03 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629220B1 (en) * | 1999-08-20 | 2003-09-30 | Intel Corporation | Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type |
CN1932782A (zh) * | 2005-09-13 | 2007-03-21 | 威盛电子股份有限公司 | 设置高速缓存线填充总线存取优先级的微处理器和方法 |
WO2007032866A1 (en) * | 2005-09-09 | 2007-03-22 | Advanced Micro Devices, Inc. | Delayed memory access request arbitration |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200386A (ja) * | 1993-12-28 | 1995-08-04 | Toshiba Corp | 共有メモリのアクセス制御装置および画像形成装置 |
US6944717B2 (en) * | 2001-07-27 | 2005-09-13 | Fujitsu Limited | Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom |
US7039770B1 (en) * | 2002-03-05 | 2006-05-02 | Juniper Networks, Inc. | Low latency request dispatcher |
US6880028B2 (en) * | 2002-03-18 | 2005-04-12 | Sun Microsystems, Inc | Dynamic request priority arbitration |
US20080077720A1 (en) * | 2006-09-27 | 2008-03-27 | Blaise Fanning | Isochronous memory access with variable channel priorities and timers |
WO2008065477A1 (en) * | 2006-11-28 | 2008-06-05 | Nokia Corporation | Memory arbitration |
-
2009
- 2009-07-27 WO PCT/IB2009/053260 patent/WO2010013189A2/en active Application Filing
- 2009-07-27 US US13/056,104 patent/US8478950B2/en active Active
- 2009-07-27 CN CN200980137990.0A patent/CN102203752B/zh active Active
- 2009-07-27 EP EP09786719.6A patent/EP2350843B1/en active Active
-
2013
- 2013-05-30 US US13/906,224 patent/US8713264B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629220B1 (en) * | 1999-08-20 | 2003-09-30 | Intel Corporation | Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type |
WO2007032866A1 (en) * | 2005-09-09 | 2007-03-22 | Advanced Micro Devices, Inc. | Delayed memory access request arbitration |
CN1932782A (zh) * | 2005-09-13 | 2007-03-21 | 威盛电子股份有限公司 | 设置高速缓存线填充总线存取优先级的微处理器和方法 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104581172A (zh) * | 2014-12-08 | 2015-04-29 | 北京中星微电子有限公司 | 一种实现svc宏块级算法的硬件结构 |
CN106874081A (zh) * | 2015-12-11 | 2017-06-20 | 马维尔国际贸易有限公司 | 在nand闪速控制器中根据优先级对解码任务进行排队 |
CN106874081B (zh) * | 2015-12-11 | 2022-07-22 | 马维尔亚洲私人有限公司 | 在nand闪速控制器中根据优先级对解码任务进行排队 |
CN107229581A (zh) * | 2016-03-25 | 2017-10-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109690508A (zh) * | 2016-07-15 | 2019-04-26 | 超威半导体公司 | 带虚拟控制器模式的存储器控制器 |
CN107870866B (zh) * | 2016-09-28 | 2023-09-26 | 厦门鑫忆讯科技有限公司 | Io命令调度方法与nvm接口控制器 |
CN107870866A (zh) * | 2016-09-28 | 2018-04-03 | 北京忆芯科技有限公司 | Io命令调度方法与nvm接口控制器 |
CN108268386A (zh) * | 2016-12-30 | 2018-07-10 | 英特尔公司 | 加速硬件中的存储器排序 |
CN108415860A (zh) * | 2017-02-09 | 2018-08-17 | 慧与发展有限责任合伙企业 | 在总线队列之间分配主设备任务 |
US11635898B2 (en) | 2017-03-24 | 2023-04-25 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
US11487434B2 (en) | 2017-03-24 | 2022-11-01 | Western Digital Technologies, Inc. | Data storage device and method for adaptive command completion posting |
CN110088723A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并且做出仲裁的系统和方法 |
CN110088723B (zh) * | 2017-03-24 | 2022-09-23 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并且做出仲裁的系统和方法 |
CN111625376A (zh) * | 2017-04-01 | 2020-09-04 | 北京忆芯科技有限公司 | 通过代理进行队列通信的方法与消息系统 |
CN107276872A (zh) * | 2017-06-05 | 2017-10-20 | 杭州电子科技大学 | 嵌入式plc的多路信号处理方法与嵌入式plc系统 |
CN108984108A (zh) * | 2017-06-05 | 2018-12-11 | 北京忆恒创源科技有限公司 | 用于调度io命令的方法与固态存储设备 |
CN110162485B (zh) * | 2018-02-13 | 2023-09-26 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN110162485A (zh) * | 2018-02-13 | 2019-08-23 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
US11593295B2 (en) | 2018-06-30 | 2023-02-28 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
CN112585593A (zh) * | 2018-08-20 | 2021-03-30 | 超威半导体公司 | 链路层数据打包和封包流控制方案 |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
CN112767978A (zh) * | 2021-01-11 | 2021-05-07 | 湖南国科微电子股份有限公司 | 一种ddr命令调度方法、装置、设备及介质 |
CN114090077B (zh) * | 2021-11-24 | 2023-01-31 | 海光信息技术股份有限公司 | 调取指令的方法及装置、处理装置及存储介质 |
CN114090077A (zh) * | 2021-11-24 | 2022-02-25 | 海光信息技术股份有限公司 | 调取指令的方法及装置、处理装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2350843A2 (en) | 2011-08-03 |
EP2350843B1 (en) | 2014-06-11 |
WO2010013189A3 (en) | 2010-03-25 |
WO2010013189A2 (en) | 2010-02-04 |
US20130275662A1 (en) | 2013-10-17 |
US20110131385A1 (en) | 2011-06-02 |
US8713264B2 (en) | 2014-04-29 |
US8478950B2 (en) | 2013-07-02 |
CN102203752B (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102203752B (zh) | 具有多个队列之间的仲裁的数据处理电路 | |
US6732242B2 (en) | External bus transaction scheduling system | |
KR100907119B1 (ko) | 티어-기반 메모리의 판독/기입 마이크로-커맨드 스케줄러 | |
US7765350B2 (en) | Method and system for bus arbitration | |
TWI396091B (zh) | 具有每個代理者佇列的淺層之非封鎖位址交換器 | |
CN102084345B (zh) | 侦测推测性预充电 | |
US8099567B2 (en) | Reactive placement controller for interfacing with banked memory storage | |
JP2005182825A5 (zh) | ||
EP3729280B1 (en) | Dynamic per-bank and all-bank refresh | |
KR101527308B1 (ko) | 메모리 인터페이스 | |
CN102129412A (zh) | 存取调度器 | |
CN103620570A (zh) | 存储器控制器和这种存储器控制器的操作方法 | |
EP3732578B1 (en) | Supporting responses for memory types with non-uniform latencies on same channel | |
US20100325327A1 (en) | Programmable arbitration device and method therefor | |
TW484065B (en) | Dynamic priority external transaction system | |
US20160048469A1 (en) | Arbitration and hazard detection for a data processing apparatus | |
TW200416535A (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
US8271746B1 (en) | Tiering of linear clients | |
US8103833B2 (en) | Cache memory and a method for servicing access requests | |
US8918786B2 (en) | Generating simulated stall signals based on access speed model or history of requests independent of actual processing or handling of conflicting requests | |
GB2539410A (en) | Data processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |