CN1316392C - 处理装置的优先总线请求调度机制 - Google Patents

处理装置的优先总线请求调度机制 Download PDF

Info

Publication number
CN1316392C
CN1316392C CNB00801311XA CN00801311A CN1316392C CN 1316392 C CN1316392 C CN 1316392C CN B00801311X A CNB00801311X A CN B00801311XA CN 00801311 A CN00801311 A CN 00801311A CN 1316392 C CN1316392 C CN 1316392C
Authority
CN
China
Prior art keywords
array
request
register
priority
mask
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.)
Expired - Fee Related
Application number
CNB00801311XA
Other languages
English (en)
Other versions
CN1382276A (zh
Inventor
D·L·希尔
D·T·巴钱德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1382276A publication Critical patent/CN1382276A/zh
Application granted granted Critical
Publication of CN1316392C publication Critical patent/CN1316392C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Selective Calling Equipment (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)
  • Train Traffic Observation, Control, And Security (AREA)
  • Digital Computer Display Output (AREA)

Abstract

一种调度装置储存要被调度的数据。该调度装置可以包括根据第一优先级方案(诸如按寿命)来标识队列项目中相对优先级的阵列。该调度装置还可以包括优先级寄存器阵列,该优先级寄存器阵列根据第二优先级方案(诸如按数据类型)来标识队列项目中相对优先级。与所述阵列及所述优先级寄存器阵列连接的多个检测器可以确定下一个要调度的数据。

Description

处理装置的优先总线请求调度机制
技术领域
本发明涉及一种用于处理器装置及其它代理者(agent)的调度装置(scheduler)。
背景技术
众所周知,许多现代计算系统采用多代理者的体系结构。图1说明了一种典型的系统。其中,多个代理者110-160通过外部总线170按照预定的总线协议进行通信。“代理者”可以包括通用处理器110-140、存储控制器150、接口芯片组160、输入输出装置和/或其它处理数据请求的集成电路(未示出)。总线170可以允许若干外部总线事务处理同时进行。
在多代理者系统中,外部总线170的带宽会限定系统性能。代理者中的时钟速度通常远高于外部总线的时钟速度。例如,处理器核心(未示出)可以在外部总线170能执行单个请求时能发出多个数据请求(读请求和写请求)。此外,代理者必须与其它代理者共享外部总线170。这些因素会对代理者中数据请求的处理带来不必要的等待时间。
并非所有数据请求都是同等创建的。目前,本发明的受让人Intel公司正在设计一种代理者,它将处理核心读请求、预取请求以及写请求。核心读请求是对要被读取到代理者处理核心(“核心”)的寻址数据的请求。通常,核心读请求标识代理者立即需要的数据。相反,预取请求则涉及到核心在不久可能要用到的数据。通过在核心实际发出对数据的读取请求之前便将其预取到代理者中,核心应该在内部高速缓存中可以得到该数据。内部高速缓存能够以高于外部总线的时钟速率进行工作,因此,能够以降低了的等待时间来满足期望的核心请求。写入请求通常标识正在由代理者返回给系统存储器的数据。可以逐出该数据,因为代理者不再使用它,并且新的数据正被读取到已逐出数据曾占用的存储单元中。其它数据请求可以与其它优先级关联。
假定外部总线带宽限制及相对代理者中所处理的不同数据请求所遵循的相关优先级,本发明人确定:技术上需要一种总线控制算法,它按照预定优先级方案对记入到外部总线上的请求进行调度。
发明内容
本发明提供一种储存要被调度的数据的调度装置。该调度装置可以包括:阵列,用于根据第一优先级方案在队列项目中标识相对优先级;以及优先级寄存器阵列,用于根据第二优先级方案在队列项目中标识相对优先级。多个检测器可被连接到所述阵列以及所述优先级寄存器阵列,以便确定要被调度的数据。
本发明提供一种代理者,包括:
外部事务处理队列,它包括:
多个队列项目,它们储存与等候请求有关的数据,
优先级矩阵,它包括:
寿命阵列,它标识所述队列项目中所述数据的相对寿命,以及
优先级寄存器阵列,它包含掩码寄存器,用于多个请求类型中的每一个,各个掩码寄存器包含与各个所述队列项目相对应的标志位置,各标志位置被设置与所述寿命阵列中对应的项目进行通信。
本发明提供一种外部事务处理队列,它包括:
多个队列项目,它们储存与等候请求有关的数据,
优先级矩阵,包括:
寿命阵列,它标识所述队列项目中所述数据的相对寿命,以及
优先级寄存器阵列,它包含用于所述事务处理队列处理的数据填充请求及逐出请求的掩码寄存器,各个掩码寄存器包含对应于各个所述队列项目的标志位置,所述标志位置被设置与所述寿命阵列中对应项目进行通信。
附图说明
图1是多代理者计算机系统的方框图,适合供本发明的实施例使用。
图2说明根据本发明一个实施例的处理器的实施例。
图3是根据本发明一个实施例的外部事务处理队列的方框图。
图4是根据本发明一个实施例的优先级矩阵的方框图。
图5是根据本发明一个实施例的事务处理队列的方法的流程图。
图6是根据本发明另一个实施例的优先级矩阵的方框图。
图7是一个方框图,说明根据本发明一个实施例的优先级矩阵阵列中的一行及有关标志检测器之间的通信。
具体实施方式
本发明的实施例为代理者的事务处理管理系统提供优先级调度装置。该调度装置可以包括优先级矩阵,优先级矩阵确定应当将多个储存的请求其中的哪个发送到外部总线。优先级矩阵可以根据第一优先级方案,诸如寿命(age),来保持所储存的请求的帐户(account)。优先级矩阵还可以包括与每个请求类型有关的掩码。调度请求时,优先级矩阵可以将最高优先级非空掩码用于阵列。与请求类型有关的最早的请求可以被标识为调度。
图2说明根据本发明一个实施例的事务处理管理系统200。事务处理管理器是已知的。它们可以包括仲裁器210、高速缓冲存储器220、内部事务处理队列230、外部事务处理队列240以及外部总线控制器250。仲裁器210接收来自多个源的请求,例如来自核心以及可能来自外部事务处理队列240。请求通常包括请求代码,表示所作请求的类型,在适当的情况下,还包括地址,标识要执行该请求的数据。仲裁器210对这些请求区分优先级次序,并按照优先级的顺序来执行。
高速缓存220可以是内部存储器。高速缓存220通常可以是统一高速缓存,它储存指令数据及变量数据(总称为“数据”)。来自仲裁器210的请求可以输入到高速缓存220以及输入到内部事务处理队列230中。对于读取请求,高速缓存220可以包括控制逻辑(未示出),该控制逻辑能够确定所请求数据是否储存在高速缓存220中。如果是的话,可以说,该请求“命中”高速缓冲220。高速缓冲220将通过通信路径(同样未示出)把该请求数据提供给核心。否则,可以说,该请求“错过”高速缓存。高速缓存220可以通过线路222把命中或错过通知给内部事务处理队列230。
内部事务处理队列230可以包括控制电路和缓冲存储器,以便处理来自仲裁器210的请求。仲裁器210所发出的每个请求均放在内部事务处理队列230中。内部事务处理队列230还接收来自高速缓存220的命中/错过指示符。如果请求命中高速缓存220,内部事务处理队列230则允许排队的请求在出队列230时终止。但是,如果请求错过高速缓存220,则应当通过从外部存储器(未示出)检索请求的数据来完成请求。在这种情况下,当请求出内部事务处理队列230时,内部事务处理队列230使该请求进入外部事务处理队列240中。
外部事务处理队列240还可以包括控制电路和缓冲存储器。它可以使外部总线事务处理按照处理器中所发出的排队的请求而被发送到外部总线170。外部事务处理队列240可以经外部总线控制器250来控制总线170的操作。通常已经为总线170定义了总线协议,外部事务处理队列240和外部总线控制器250可以根据这种协议来产生和接收信号。
在另一实施例中,内部事务处理队列230和外部事务处理队列240可以由单一的队列来代替。因此,图2把内部事务处理队列230和外部事务处理队列240包含在单一“事务处理队列”中进行说明。本发明的原理可以运用于其中任何一个实施方案中。
通常,读取数据的外部总线事务处理使预定单元大小的数据被读取到处理器。例如,单一的总线事务处理可以使64字节数据被读取到处理器。所述预定单元大小通常指“高速缓存线”。不同的系统具有不同的高速缓存线大小。这样,尽管处理器可能需要仅仅一部分高速缓冲存线的数据,但是,该处理器可能读取整个高速缓存线。从高速缓存线,处理器将使用其程序流所要求数量的数据。
本发明的一个实施例可以在事务处理管理系统200中提供预取队列260。预取队列260可以监视仲裁器210所发出的请求,并确定读请求是否显示了一个或多个预定模式。当核心向连续的存储单元(例如A、A+1、A+2、或B、B-1、B-2)发出一系列读取请求时,它可以指示该核心正在进行指令或数据的规则有序的处理。如果标识了这样一种模式,则预取队列260可以发出要发出的读取请求。可以在对同样数据进行的核心请求之前进行读取请求。通过在核心200请求数据之前便将该数据储存在内部高速缓存220中,预取可以有助于改进处理器性能。当核心200需要数据时,如果该数据出现在高速缓存220中,那么在核心200能使用该数据之前,核心200将不会被迫等待外部总线事务处理的完成。
图3是根据本发明一个实施例的代理者的外部事务处理队列300的方框图。外部事务处理队列300可以包括控制器310、多个队列寄存器320-0至320-7(共同标记为320)以及优先级矩阵330。虽然在图3中给出了八个寄存器320,根据需要,本发明的原理允许或多或少的寄存器。
控制器310将外部事务处理队列300与代理者中的其它元素连接。控制器310可以使事务处理进入队列寄存器320或从其中删除,并且可以将数据写入其中的字段。控制器310还可以对要发送到外部总线170(图1)的事务处理的顺序进行调度。在一个实施例中,控制310可以是状态机。
寄存器320可以储存与事务处理队列300中的请求有关的数据。每个队列寄存器320可以有若干个字段,其中包括地址字段340、第一状态字段350以及第二状态字段360。状态字段340和350可以储存与各个事务处理有关的管理信息。这样,每个队列寄存器320就能保持与一对外部总线事务处理有关的信息。地址字段340可以标识请求要被发送到的外部存储器地址的范围。
状态字段350和360可以标识与各个事务处理有关的管理信息。例如,状态字段340和350可以标识事务处理的状态—例如,该事务处理是否等待被发送到外部总线上,该事务处理是否已经被发送,是否已经为该事务处理接收了高速缓存相干性结果,以及该事务处理已经被完成。通常,在状态字段350和360均指示其相应的事务处理已经被完成时,该事务处理将从寄存器320中清除。
寄存器320还可以在状态字段或其它地方携带信息,它区分储存读取请求的寄存器和储存写入请求的寄存器,并区分储存有效数据的寄存器和可用于分配的寄存器。
如上所述,事务处理队列300的一个实施例可以在各寄存器320中储存一对事务处理的数据。本双事务处理方案可以适用于执行数据“盲预取”的代理者。当核心读取请求引起从外部存储器进行读取时,盲预取可以使来自相邻存储单元的数据也被读取到代理者。核心常常使用来自多个协同定位存储单元的数据。通过从相邻存储单元预取数据,如果核心要从预取的存储单元请求数据,则在较快的内部高速缓存中可得到数据。因此,盲预取可以改进代理者性能。
在盲预取系统中,控制器310可以接收核心读取请求的数据,并将适当的数据输入地址字段340以及状态字段350、360的其中之一。控制器310则可以将盲预取的数据输入两个状态字段350、360的其中另一个字段。如图3所示,状态字段350和360的特征在于反映哪个事务处理与核心请求有关以及哪个事务处理与预取请求有关。这样,当核心请求储存在事务处理队列300时,盲预取请求可以与其一起储存在事务处理队列300中。在图3的示例中,寄存器320-0、320-1、320-3、320-6以及320-7说明了核心读取请求与盲预取之间可能的联系。
事务处理队列300还可以储存由预取队列发出的“模式(patterned)预取请求”的数据。在模式预取系统中,控制器310可以接收模式预取请求信号,并将适当的数据输入地址字段340以及状态字段350、360的其中之一。控制器310还可以用其自己的盲预取来扩充模式预取请求,并将与盲预取有关的数据输入另一个状态字段350或360。在这种情况下,寄存器的状态字段350、360将会把这两个请求标识为预取请求。在图3的示例中的寄存器320-4和320-5说明了储存在事务处理队列300中的模式预取请求和盲预取请求。
根据本发明的一个实施例,优先级矩阵330可以确定要发送到外部总线上的指令的调度。在第一实施例中,优先级矩阵330将核心读取请求的优先级设置为高于预取请求(任何一种),并将预取请求的优先级设置为高于写入请求。根据本发明的另一个实施例,优先级矩阵330可以确定要在核心中进行分配的寄存器的调度。
图4说明根据本发明一个实施例的优先级矩阵400。优先级矩阵400可以包含阵列410、核心读取掩码420、预取读取掩码430、写入掩码440以及标志检测器450。阵列410可以标识储存在事务处理队列300(图3)的各个请求中的相对寿命。核心读取掩码420可以标识储存在事务处理队列中还未发送到外部总线上的核心读取请求。预取掩码430可以标识储存在事务处理队列中还未发送到外部总线的预取请求。写入掩码440可以标识储存在事务处理队列中还未发送到外部总线的写入请求。在一个实施例中,核心读取掩码420、预取掩码430以及写入掩码400均可以是寄存器。
对于N个寄存器事务处理队列,优先级矩阵400可以包括N×N阵列410。该阵列中的每个位置可以储存表示两个寄存器间相对优先级的标志。标志的行可以与相应寄存器320(图3)关联。当在某一行设置标志时,它可以指明其它寄存器储存的请求早于被储存的与相应行相关联的请求。这样,在图4的实施例中,在行0设置标志;这表示储存在寄存器320-0中的请求晚于储存在事务处理队列300(图3)中其它地方的请求。在图4中,行的寿命顺序在各行旁边的括号中给出。在本示例中,行4的标志标识最早储存的请求,而行3的标志则标识最后储存的请求。
阵列410中的列可以与其它寄存器关联。例如,列0可以与寄存器320-0(图3)相关联。可以在阵列410中其它行的列0中设置标志,来指明那些寄存器与寄存器320-0之间的相对优先级。例如,在图4中,在行1、3及5-6的列0中设置标志。在对应寄存器(寄存器320-1、320-3、320-5及320-6)中的请求均晚于储存在寄存器320-0中的请求。
核心读取掩码420可以包含多个标志,每个标志用于事务处理队列中的一个寄存器320。核心读取掩码420中的每个位置可以与阵列410中相应的列相关联。核心读取掩码420中的标志可以标识寄存器320中的哪些寄存器储存还未发送到外部总线上的核心读取请求。在图4所示的示例中,核心读取掩码把核心读取请求标识为储存在寄存器320-0、320-1、320-3、320-6以及320-7中。本示例与图3中所提供的示例一致。
预取掩码430可以包含多个标志,每个标志用于事务处理队列中的一个寄存器320。核心读取掩码中的每个位置可以与阵列410中相应的列相关联。预取掩码430中的标志可以标识寄存器320中的哪些寄存器储存还未发送到外部总线上的预取请求。图4的示例说明了储存在寄存器320-0、320-1、320-3、320-4、320-5、320-6以及320-7中的预取请求。根据本发明的一个实施例,预取掩码430不需要区分盲预取请求和模式预取请求。
写入掩码440还可以包含多个标志,每个标志用于事务处理队列中的一个寄存器。写入掩码440中的每个位置可以与阵列410中相应的列相关联。写入掩码440中的标志可以标识寄存器320中的哪些寄存器储存还未发送到外部总线上的写入请求。图4的示例标识了储存在寄存器320-2中的写入请求。
根据一个实施例,核心读取掩码420、预取掩码430及写入掩码440的标志位置可以与阵列410的相应列中的标志位置进行通信。例如,每个掩码420-440的列0与阵列410的列0中的所有标志位置进行通信。根据一个实施例,核心读取掩码420、预取掩码430或写入掩码440其中任何一个的标志状态均可以禁用相应标志位置中的标志。掩码420-440中,通常一次只启用一个掩码。该原理将在下面详细说明。
优先级矩阵400可以包括标志检测器450,每个用于阵列410中的一行。每个标志检测器450可以接收来自阵列410中其相关行的标志位置的第一输入。每个标志检测器450还可以接收来自掩码420-440其中每一个的预定标志位置的输入。如果标志检测器450没有检测到阵列410中其相关行中的标志,但检测到来自掩码420-440其中之一的有效标志,那么它可以生成有效输出。同样,在一个实施例中,通常一次只允许掩码420-440的其中之一。只有一个标志检测器450应产生有效输出。有效输出信号标识下一次应当由事务处理队列进行调度的所储存的请求。
根据一个实施例,可以根据相对优先级方案来允许掩码420-440。例如,核心读取请求的优先级可以高于预取请求的优选级,而预取请求的优先级可以高于写入请求的优先级。要实现此优先级方案,控制逻辑(未示出)可以确定核心读取掩码420是否储存了任何标志。如果是的话,则允许核心读取掩码420并禁止其它掩码430、440。核心读取掩码420的内容确定禁止阵列410中的哪些标志(如果有的话)。还将核心读取掩码420的内容输入检测器450。不允许预取掩码430和写入掩码440的内容影响阵列410或者影响检测器450的操作。
如果核心读取掩码420没有储存任何标志,则控制逻辑可以确定预取掩码430是否储存了任何标志。如果是的话,则允许预取掩码430,并禁用核心读取掩码420及写入掩码440。预取掩码430的内容可以用于阵列410来禁用某些标志。还可以将预取掩码430的内容输入检测器450。
如果核心读取掩码420和预取掩码430均没有储存标志,则可以允许写入掩码440。写入掩码440的内容可以用于阵列410来禁用其中的标志。还可以将写入掩码440的内容输入标志检测器450。
通过向检测器提供掩码(例如核心读取掩码420)的内容,掩码可以防止标志检测450对掩码420未识别的类型的请求产生有效输入。在图4的示例中,虽然储存在行4中的请求是事务处理队列(图3)中最早的,但是,该请求并不是核心读取请求(在核心读取掩码的列4中没有设置标志)。因此,其它某个寄存器储存了最早的核心读取请求,并且其优先级应当高于与行4相关的请求。通过将核心读取请求的行4的内容输入与行4有关的标志检测器450,标志检测器450将被禁止产生有效输出信号。
根据一个实施例,当掩码420-440用于阵列410时,掩码标志可以使阵列中的标志被禁止。禁用阵列标志防止其有关标志检测器450在设置了标志时还接收该标志。考虑图3所示的示例。如上所述,核心读取掩码420防止标志检测器450因行4没有与核心读取请求相关联而将行4标识为最早的请求。由行2所标识的第二最早请求还与写入请求相关联。因此,核心读取掩码420将防止与行2有关的标志检测器450产生有效输出信号。由优先级矩阵400所标识的最早核心读取请求总的说来是第三最早请求。它由行7来标识。这样,标志检测器450应当标识寄存器320-7为储存要调度的下一条指令。
当核心读取掩码420用于阵列410时,核心读取掩码420的标志确定允许哪些列的标志。禁止所有其它标志。在图4的示例中,允许列0、1、3、6以及7中的标志。禁止列2、4以及5中的标志。这样,当核心读取掩码420被用于阵列410时,由于在核心读取掩码420中的对应位置没有设置标志,所以禁用了行7中的两个标志。行7的标志检测器450将产生有效输出信号。
将预取掩码430或写入掩码440用于阵列410时,可以按照上述对核心读取掩码420的同样方式来禁用标志。
因此,优先级矩阵400的一个实施例提供了阵列410,它对储存在整个事务处理队列300(图3)中的请求的寿命保持绝对帐户。不同的掩码允许优先级矩阵400根据请求类型,即这些请求属于核心读取请求、预取请求还是写入请求,来区分这些请求之间的优先级。
当请求储存在事务处理队列300中或从其中清除时,二维阵列410提供了简单的管理。当事务处理队列410接收新的请求时,可以为这个新的请求分配可用的寄存器(如寄存器320-3)。对于该阵列,因为新的请求是事务处理队列中所储存的最晚的请求,所以,它完全能够在对应于该寄存器的行(行3)中设置所有标志。
当事务处理队列确定储存在寄存器中的请求已完成时,通常清除该寄存器。当清除某个寄存器(如寄存器320-7)时,该事务处理队列还可以使阵列410的对应列(列7)中所有标志被复位。通过清除对应列的标志,晚于阵列410所呈现的被清除的指令的所有事务处理的寿命将会递增。
上述说明将阵列410作为储存标志的常规N×N阵列。根据一个实施例,阵列410实际上可以包含比真正方阵列少N个的标志位置。图4说明了沿阵列410的主对角线各位置中的X-在位置(0,0)、(1,1)、(2,2)、...、(N,N)。不需要对阵列410的主对角线提供标志位置,因为不需要记录寄存器对其本身的寿命优先级。因此,“常规阵列”之类术语的使用是要不但包括真正常规阵列,而且还包括N×N阵列,所述N×N阵列在除主对角线以外的所有单元均有标志位置。
图5说明根据本发明一个实施例的事务处理队列300的操作1000的一种方法。当事务处理队列300确定调度要发送到外部总线上的新请求时,它可以确定事务处理队列是否储存任何未发送的核心读取请求(步骤1010)。如果是的话,事务处理队列可以将核心读取掩码用于阵列中(步骤1020),并对储存在已标识的寄存器中的核心读取请求进行调度(步骤1030)。
如果事务处理队列没有储存任何未发送的核心读取请求,那么它可以确定是否事务处理队列储存了任何未发送的预取请求(步骤1040)。如果是的话,事务处理队列可以将预取掩码用于阵列中,并对储存在已标识的寄存器中的预取请求进行调度(步骤1050-1060)。
如果事务处理队列没有储存任何未发送的预取请求,那么它可以确定事务处理队列是否储存了任何未发送的写入请求(步骤1070)。如果是的话,事务处理队列可以将写入掩码用于阵列中,并对储存在已标识的寄存器中的写入请求进行调度(步骤1080-1090)。在步骤1030、1060、1090结束时,或者在没有储存在事务处理队列中的未发送的写入请求时(步骤1070),方法1000可以结束。
本发明的原理可以运用于其它调度环境中。例如,除了对要发送到外部总线上的请求进行调度之外,事务处理队列还可以与代理者中的其它组件(诸如核心)进行通信,以便协助这些组件来管理数据的资源。例如,许多读取请求会要求某个组件将新接收的数据分配给某个寄存器。这里,将新接收数据储存在寄存器中的过程称作“数据填充”,只要求数据填充的读取或预取请求可以称作“填充请求”。但是,某些请求会要求在数据填充之前逐出已经储存在被分配的寄存器中的数据。这些请求可以称作“逐出请求”。因为数据逐出以及随后的数据填充所花费的时间比单纯的数据填充时间要长,所以事务处理队列可以将逐出请求的优先级设置为高于填充请求,以达到调度这些通信的目的。本发明的原理可以运用于这样的实施例中。
图6说明根据本发明另一个实施例的优先级矩阵500。优先级矩阵500可以包含阵列510、核心读取掩码520、预取掩码530、写入掩码540以及第一组标志检测器550。核心读取掩码520、预取掩码530以及写入掩码540可以构成第一优先级寄存器阵列560。在第一优先级寄存器阵列中,每次只有掩码520-540其中的一个是有效的。这些元素可以按照上述实施例进行工作。
图6的实施例可以包括第二优先级寄存器阵列570,其中包含逐出掩码580和填充掩码590。如关于前面的实施例所述的那样,在第二优先级寄存器阵列570中,每次只有掩码580-590其中的一个是有效的。这些掩码580和590可以包括标志位置,用于事务处理队列的各寄存器。每个掩码中的标志位置可以与阵列410的对应列进行通信。
逐出掩码580中的标志可以标识储存逐出请求的事务处理队列寄存器320(图3)。根据一个实施例,在对应的逐出请求已经被发送到外部总线之后,可以在逐出掩码580中设置标志。不需要对正在等候的逐出请求设置标志。
填充掩码590中的标志可以标识储存填充请求的事务处理队列寄存器320(图3)。根据一个实施例,在对应的填充请求已经被发送到外部总线之后,可以在填充掩码590中设置标志。另一方面,在事务处理已经调度了与逐出请求有关的通信之后,可以在对应于逐出请求的填充掩码590中设置标志。
优先级矩阵500可以包括与第二优先级寄存器阵列570有关的第二组标志检测器600。每个标志检测器600均可以接收来自阵列510中有关行的第一输入,以及接收来自第二优先级寄存器阵列570中有效掩码580或590的有关标志位置的第二输入。接收来自第二优先级寄存器阵列570的有效标志但无法检测来自阵列510的有效标志的标志检测器可以生成有效输出信号。事务处理队列300(图3)可以根据与有效标志检测器600有关的寄存器320来产生通信。
第一组标志检测器550或第二组标志检测器600中的每个标志检测器均可以通过独立的通信路径(图6中未示出)与阵列510中的有关行的标志位置进行通信。
本发明的原理还可以进一步扩展。只要符合本发明的应用,优先级矩阵可以包含所需的任意数量的优先级寄存器阵列。根据一个实施例,每组标志检测器均可以与其它组的标志检测器同时产生有效输出信号。这样,如果在多个优先级寄存器阵列中提供了多个优先级方案,则它们可以并行工作。
图7是一个框图,说明根据本发明一个实施例的在阵列中的行710(图6的行2)及其有关标志检测器720、730之间的通信。考虑标志检测器720。根据一个实施例,阵列可以包括源于某一行各标志位置及其有关标志检测器720的独立并行数据路径。可以沿着这些数据路径提供传输门电路740和750。传输门740和750可以由来自相应优先级寄存器阵列的有关标志进行控制。在一种状态下,来自相应优先级寄存器阵列的标志可以使传输门740和750处于非导通状态,从而防止行710中标志的状态输入到标志检测器720和730中。在另一种状态下,来自优先级寄存器的标志可以使传输门740处于导通状态,并允许行710中标志的状态输入到标志检测器720和730中。
根据一个实施例,对于阵列中的某一行k(k为1至N),来自优先级寄存器阵列的标志k将直接输入到有关标志检测器720中。在图7的示例中,来自第一优先级寄存器阵列的标志2是作为对第一标志检测器720的输入,来自第二优先级寄存器阵列的标志2是作为对第二标志检测器730的输入。所有其它标志j1k可以控制传输门。这样,如图7的示例所示,来自第一优先级寄存器阵列的标志0-1和3-7控制与来自行710的标志位置0-1和3-7有关的传输门。同样地,来自第二优先级寄存器阵列的标志0-1和3-7可以控制与来自行710的标志位置0-1和3-7有关的传输门。
在此具体示出并描述了本发明的几个实施例。可是要知道,在不脱离本发明的精神和预期范围下的本发明的修改和变化被上述示教所覆盖并在后附权利要求书的范围内。

Claims (19)

1.一种调度装置,它包括:
存储器,用以存储要被调度的多个队列项目;
阵列电路,它根据第一优先级方案来标识所述队列项目中的相对优先级,以及
优先级寄存器阵列,它根据第二优先级方案来标识所述队列项目中的相对优先级,以及
多个检测器,它们被连接到所述阵列电路和所述优先级寄存器阵列。
2.如权利要求1所述的调度装置,其特征在于所述阵列电路是二维阵列。
3.如权利要求1所述的调度装置,其特征在于所述优先级寄存器阵列包括多个掩码寄存器,各个所述掩码寄存器与所述第二优先级方案中的各个优先级状态相关联。
4.如权利要求3所述的调度装置,其特征在于所述掩码寄存器中的项目被设置与相应检测器进行通信,并被设置与所述阵列电路中相应列的项目进行通信。
5.如权利要求3所述的调度装置,其特征在于还包括控制逻辑电路,以便根据所述多个掩码寄存器的内容而有选择地激活所述掩码寄存器的其中一个掩码寄存器。
6.如权利要求1所述的调度装置,其特征在于:如果各检测器从其输入中检测到来自所述优先级寄存器阵列的标志但没有检测到来自所述阵列电路的标志,则所述检测器可以生成有效输出。
7.如权利要求1所述的调度装置,其特征在于还包括:
第二优先级寄存器阵列,它根据第三优先级方案来标识所述队列项目中的相对优先级,以及
第二多个检测器,它们被连接到所述阵列电路和所述第二优先级寄存器阵列。
8.一种集成电路,包括:
外部事务处理队列电路,它包括:
多个队列项目,它们储存与等候请求有关的数据,
优先级矩阵,它包括:
寿命阵列,它标识所述队列项目中所述数据的相对寿命,以及
优先级寄存器阵列,它包含掩码寄存器,用于多个请求类型中的每一个,各个掩码寄存器包含与各个所述队列项目相对应的标志位置,各标志位置被设置与所述寿命阵列中对应的项目进行通信。
9.如权利要求8所述的集成电路,其特征在于所述优先级矩阵还包括标志检测器,所述标志检测被设置与对应的队列项目相关联,各个标志检测器被设置与所述寿命阵列中一行项目进行通信。
10.如权利要求9所述的集成电路,其特征在于所述优先级寄存器阵列的标志位置被用于所述寿命阵列,以防止所述寿命阵列中的标志被标志检测器检测,除非在所述优先级寄存器阵列的对应标志位置中设置标志。
11.如权利要求9所述的集成电路,其特征在于各个标志检测器被设置与所述优先级寄存器阵列中相应的标志位置进行通信。
12.如权利要求8所述的集成电路,其特征在于一次只能允许一个掩码寄存器,按照对于所述请求类型而定义的预定优先级方案,所述一个掩码寄存器是最高非空寄存器。
13.如权利要求8所述的集成电路,其特征在于还包括第二优先级寄存器阵列,所述第二优先级寄存器阵列包含与所述集成电路处理的逐出请求和数据填充请求有关的多个寄存器,各个寄存器包含与各个所述队列项目对应的标志位置,所述标志位置被连接到所述阵列中对应的项目。
14.一种集成电路,它包括:
多个队列项目,它们储存与等候请求有关的数据,
优先级矩阵,包括:
寿命阵列,它标识所述队列项目中所述数据的相对寿命,以及
优先级寄存器阵列,它包含用于所述事务处理队列处理的数据填充请求及逐出请求的掩码寄存器,各个掩码寄存器包含对应于各个所述队列项目的标志位置,所述标志位置被设置与所述寿命阵列中对应项目进行通信。
15.如权利要求14所述的集成电路,其特征在于所述优先级矩阵还包括标志检测器,所述检测被设置与对应的队列项目相关联,各个标志检测器被设置与所述寿命阵列中一行项目进行通信。
16.如权利要求15所述的集成电路,其特征在于还包括连接到所述标志检测器的控制器,当逐出请求的掩码寄存器用于所述阵列时,所述控制器对所述标志检测器的输出进行响应,将数据逐出请求传送给所述核心。
17.如权利要求15所述的集成电路,其特征在于所述优先级寄存器阵列的标志位置被用于所述寿命阵列,以防止所述寿命阵列被标志检测器检测,除非在所述优先级寄存器阵列的对应标志位置中设置标志。
18.如权利要求15所述的集成电路,其特征在于各个标志检测器被设置与所述优先级寄存器阵列中相应的标志位置进行通信。
19.如权利要求14所述的集成电路,其特征在于一次只能允许一个掩码寄存器,按照对于所述请求类型而定义的预定优先级方案,所述一个掩码寄存器是最高非空寄存器。
CNB00801311XA 1999-12-28 2000-11-22 处理装置的优先总线请求调度机制 Expired - Fee Related CN1316392C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/474,010 1999-12-28
US09/474,010 US6499090B1 (en) 1999-12-28 1999-12-28 Prioritized bus request scheduling mechanism for processing devices

Publications (2)

Publication Number Publication Date
CN1382276A CN1382276A (zh) 2002-11-27
CN1316392C true CN1316392C (zh) 2007-05-16

Family

ID=23881855

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB00801311XA Expired - Fee Related CN1316392C (zh) 1999-12-28 2000-11-22 处理装置的优先总线请求调度机制

Country Status (10)

Country Link
US (5) US6499090B1 (zh)
EP (2) EP2157515B1 (zh)
KR (1) KR100604220B1 (zh)
CN (1) CN1316392C (zh)
AT (2) ATE478379T1 (zh)
AU (1) AU1627101A (zh)
DE (2) DE60044851D1 (zh)
HK (2) HK1051726A1 (zh)
TW (1) TW527540B (zh)
WO (1) WO2001048617A2 (zh)

Families Citing this family (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
US6826644B1 (en) * 2000-08-10 2004-11-30 Serverworks Corporation Peripheral component interconnect arbiter implementation with dynamic priority scheme
US6604160B1 (en) * 2000-09-28 2003-08-05 International Business Machines Corporation Computing system arbitrating and selectively providing resource-seeking tasks with takeaway of non-shareable resources
US7752400B1 (en) * 2000-12-14 2010-07-06 F5 Networks, Inc. Arbitration and crossbar device and method
US6996120B2 (en) * 2001-03-14 2006-02-07 Siemens Communications, Inc. Methods for improving bus performance and bandwidth utilization of a parallel bus LAN
US7305008B2 (en) * 2001-03-14 2007-12-04 Siemens Communications, Inc. Parallel bus LAN
US7107386B1 (en) 2001-08-08 2006-09-12 Pasternak Solutions, Llc Memory bus arbitration using memory bank readiness
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US7143157B2 (en) * 2002-03-25 2006-11-28 Hewlett-Packard Development Company, L.P. Managing the network impact of a digital transmitter
US6732242B2 (en) 2002-03-28 2004-05-04 Intel Corporation External bus transaction scheduling system
US7058937B2 (en) * 2002-04-12 2006-06-06 Intel Corporation Methods and systems for integrated scheduling and resource management for a compiler
DE10218646A1 (de) * 2002-04-25 2003-11-13 Infineon Technologies Ag An einen Bus angeschlossene Einrichtung
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system
US6941428B2 (en) * 2002-09-25 2005-09-06 International Business Machines Corporation Memory controller optimization
US6931493B2 (en) * 2003-01-16 2005-08-16 International Business Machines Corporation Implementation of an LRU and MRU algorithm in a partitioned cache
US7062582B1 (en) * 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US7600058B1 (en) * 2003-06-26 2009-10-06 Nvidia Corporation Bypass method for efficient DMA disk I/O
WO2005015805A2 (en) * 2003-08-08 2005-02-17 Visionflow, Inc. Software and hardware partitioning for multi-standard video compression and decompression
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US8504992B2 (en) 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8356142B1 (en) * 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US7543142B2 (en) 2003-12-19 2009-06-02 Intel Corporation Method and apparatus for performing an authentication after cipher operation in a network processor
US20050149744A1 (en) * 2003-12-29 2005-07-07 Intel Corporation Network processor having cryptographic processing including an authentication buffer
US7512945B2 (en) * 2003-12-29 2009-03-31 Intel Corporation Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US7529924B2 (en) * 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
US8243744B2 (en) * 2004-03-01 2012-08-14 Futurewei Technologies, Inc. Priority sorting
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7441087B2 (en) * 2004-08-17 2008-10-21 Nvidia Corporation System, apparatus and method for issuing predictions from an inventory to access a memory
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US8493396B2 (en) 2004-11-15 2013-07-23 Nvidia Corporation Multidimensional datapath processing in a video processor
JP4305378B2 (ja) * 2004-12-13 2009-07-29 ソニー株式会社 データ処理システム、アクセス制御方法、その装置およびそのプログラム
US8065457B2 (en) * 2005-09-09 2011-11-22 Advanced Micro Devices, Inc. Delayed memory access request arbitration
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
US8593474B2 (en) * 2005-12-30 2013-11-26 Intel Corporation Method and system for symmetric allocation for a shared L2 mapping cache
US7461216B2 (en) * 2006-02-23 2008-12-02 Hewlett-Packard Development Company, L.P. Memory controller
US20070255613A1 (en) * 2006-05-01 2007-11-01 International Business Machines Corporation Method and apparatus for execution of a process
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US7870459B2 (en) * 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US8700883B1 (en) 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8533425B1 (en) * 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8607008B1 (en) 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8700865B1 (en) 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US20080162735A1 (en) * 2006-12-29 2008-07-03 Doug Voigt Methods and systems for prioritizing input/outputs to storage devices
JP4410270B2 (ja) * 2007-04-17 2010-02-03 株式会社東芝 バス制御装置
WO2008155833A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US7923341B2 (en) * 2007-08-13 2011-04-12 United Solar Ovonic Llc Higher selectivity, method for passivating short circuit current paths in semiconductor devices
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8308545B2 (en) * 2007-11-09 2012-11-13 Wms Gaming Inc. Wagering game with enhanced player-selection bonus feature
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US7734854B2 (en) * 2008-01-04 2010-06-08 International Business Machines Corporation Device, system, and method of handling transactions
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
CN101510164B (zh) * 2009-03-25 2013-05-22 北京中星微电子有限公司 一种多业务调度方法、装置与系统
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
US8775754B2 (en) * 2011-06-24 2014-07-08 Arm Limited Memory controller and method of selecting a transaction using a plurality of ordered lists
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US8650365B2 (en) * 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8856459B1 (en) * 2011-12-07 2014-10-07 Apple Inc. Matrix for numerical comparison
US9148384B2 (en) * 2012-02-10 2015-09-29 Hewlett-Packard Development Company, L.P. Posted and unencumbered queues
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
CN102799487A (zh) * 2012-06-29 2012-11-28 记忆科技(深圳)有限公司 基于阵列/lun的io调度方法及装置
US9612972B2 (en) 2012-12-03 2017-04-04 Micron Technology, Inc. Apparatuses and methods for pre-fetching and write-back for a segmented cache memory
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US20140250272A1 (en) * 2013-03-04 2014-09-04 Kabushiki Kaisha Toshiba System and method for fetching data during reads in a data storage device
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
KR101993028B1 (ko) 2015-02-05 2019-06-26 에스케이하이닉스 주식회사 메모리 컨트롤러
JP2017027479A (ja) * 2015-07-24 2017-02-02 富士通株式会社 データ読出し方法及び情報処理システム
CN107193761B (zh) * 2016-03-15 2021-07-27 厦门旌存半导体技术有限公司 队列优先级仲裁的方法与装置
US11874782B1 (en) * 2018-07-20 2024-01-16 Robert Gezelter Fast mass storage access for digital computers
US11106609B2 (en) * 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US11507522B2 (en) * 2019-12-06 2022-11-22 Advanced Micro Devices, Inc. Memory request priority assignment techniques for parallel processors
US10963402B1 (en) * 2019-12-28 2021-03-30 Advanced Micro Devices, Inc. Using age matrices for managing entries in sub-queues of a queue

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4956820A (en) * 1987-03-11 1990-09-11 Texas Instruments Incorporated Arbiter circuit for establishing priority control of read, write and refresh operations with respect to memory array
WO1991020041A1 (en) * 1990-06-11 1991-12-26 Supercomputer Systems Limited Partnership Multiple request toggling priority arbitration system
WO1994008301A1 (en) * 1992-10-02 1994-04-14 Compaq Computer Corporation Prioritization of microprocessors in multiprocessor computer systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4958820A (en) * 1987-08-20 1990-09-25 Minolta Camera Kabushiki Kaisha Sheet storing apparatus for copying machine
US5222223A (en) 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5586294A (en) 1993-03-26 1996-12-17 Digital Equipment Corporation Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US5537573A (en) 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
US5524220A (en) * 1994-08-31 1996-06-04 Vlsi Technology, Inc. Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems
US5761706A (en) 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
US5701426A (en) 1995-03-31 1997-12-23 Bull Information Systems Inc. Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
JPH08328941A (ja) * 1995-05-31 1996-12-13 Nec Corp メモリアクセス制御回路
WO1996041271A1 (en) 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Programmable bus arbiter including real time priority indicator fields for arbitration priority selection
US5740399A (en) 1995-08-23 1998-04-14 International Business Machines Corporation Modified L1/L2 cache inclusion for aggressive prefetch
US5790813A (en) * 1996-01-05 1998-08-04 Unisys Corporation Pre-arbitration system allowing look-around and bypass for significant operations
US5761452A (en) 1996-03-18 1998-06-02 Advanced Micro Devices, Inc. Bus arbiter method and system
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
US6178466B1 (en) * 1998-06-12 2001-01-23 Unisys Corporation System for maximizing bandpass on an interface directly coupling two units where the interface has independently operative data and address interconnections, and computer sysem employing same.
US6286083B1 (en) * 1998-07-08 2001-09-04 Compaq Computer Corporation Computer system with adaptive memory arbitration scheme
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
JP3839288B2 (ja) * 2001-09-12 2006-11-01 株式会社ルネサステクノロジ メモリカード

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4956820A (en) * 1987-03-11 1990-09-11 Texas Instruments Incorporated Arbiter circuit for establishing priority control of read, write and refresh operations with respect to memory array
WO1991020041A1 (en) * 1990-06-11 1991-12-26 Supercomputer Systems Limited Partnership Multiple request toggling priority arbitration system
WO1994008301A1 (en) * 1992-10-02 1994-04-14 Compaq Computer Corporation Prioritization of microprocessors in multiprocessor computer systems

Also Published As

Publication number Publication date
AU1627101A (en) 2001-07-09
CN1382276A (zh) 2002-11-27
EP1242894B1 (en) 2010-08-18
US20050268051A1 (en) 2005-12-01
TW527540B (en) 2003-04-11
US7133981B2 (en) 2006-11-07
HK1051726A1 (en) 2003-08-15
EP1242894A2 (en) 2002-09-25
US20030196050A1 (en) 2003-10-16
EP2157515B1 (en) 2011-03-30
DE60045804D1 (de) 2011-05-12
KR20020069186A (ko) 2002-08-29
HK1141603A1 (en) 2010-11-12
DE60044851D1 (de) 2010-09-30
US7487305B2 (en) 2009-02-03
WO2001048617A3 (en) 2002-01-31
US6499090B1 (en) 2002-12-24
WO2001048617A2 (en) 2001-07-05
EP2157515A1 (en) 2010-02-24
ATE504041T1 (de) 2011-04-15
US20030018863A1 (en) 2003-01-23
US6606692B2 (en) 2003-08-12
US6782457B2 (en) 2004-08-24
US20070094462A1 (en) 2007-04-26
ATE478379T1 (de) 2010-09-15
KR100604220B1 (ko) 2006-07-24

Similar Documents

Publication Publication Date Title
CN1316392C (zh) 处理装置的优先总线请求调度机制
US8407432B2 (en) Cache coherency sequencing implementation and adaptive LLC access priority control for CMP
US7590805B2 (en) Monitor implementation in a multicore processor with inclusive LLC
KR100524575B1 (ko) 데이타 처리시스템에서 복수개의 메모리 억세스 리퀘스트신호를리오더링하는 방법
US9081687B2 (en) Method and apparatus for MONITOR and MWAIT in a distributed cache architecture
US8352712B2 (en) Method and system for specualtively sending processor-issued store operations to a store queue with full signal asserted
EP1323045B1 (en) Dynamic priority external transaction system
US20060179226A1 (en) System and method of re-ordering store operations within a processor
US20140095796A1 (en) Performance-driven cache line memory access
US20060064518A1 (en) Method and system for managing cache injection in a multiprocessor system
US7383336B2 (en) Distributed shared resource management
US5659707A (en) Transfer labeling mechanism for multiple outstanding read requests on a split transaction bus
US6754775B2 (en) Method and apparatus for facilitating flow control during accesses to cache memory
US20050289301A1 (en) Memory controller with prefetching capability
JPH08249231A (ja) マルチプロセッサ・システムにおける古いデータの処理システム及び方法
US7360021B2 (en) System and method for completing updates to entire cache lines with address-only bus operations
JP2002024007A (ja) プロセッサシステム

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070516

Termination date: 20161122