处理装置的优先总线请求调度机制的制作方法

文档序号:6457288阅读:200来源:国知局
专利名称:处理装置的优先总线请求调度机制的制作方法
背景技术
本发明涉及一种用于处理器装置及其它代理者(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有关的传输门。
在此具体示出并描述了本发明的几个实施例。可是要知道,在不脱离本发明的精神和预期范围下的本发明的修改和变化被上述示教所覆盖并在后附权利要求书的范围内。
权利要求
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所述的事务处理队列,其特征在于每次只能允许一个掩码寄存器,按照对于所述请求类型而定义的预定优先级方案,所述一个掩码寄存器是最高非空寄存器。
20.一种调度方法,用于处理核心读取请求、预取请求以及写入请求的代理者,所述方法包括如果所述代理者包含等候的核心读取请求,则对最早的核心读取请求进行调度,不然的话,如果所述代理者包含等候的预取请求,则对最早的预取请求进行调度,否则,如果所述代理者包含等候的写入请求,则对最早的写入请求进行调度。
21.如权利要求20所述的方法,其特征在于在第一调度步骤之前还包括以下步骤对寄存器执行标志检测,标识所述代理者储存的未发送核心读取请求,以及确定所述核心没有包含等候的核心读取请求,除非按照所述执行步骤标识标志。
22.如权利要求20所述的方法,其特征在于在第一调度步骤之前还包括以下步骤对寄存器执行标志检测,标识所述代理者储存的未发送预取请求,以及确定所述核心没有包含等候的预取请求,除非按照所述执行步骤标识标志。
23.如权利要求20所述的方法,其特征在于在第一调度步骤之前还包括以下步骤对寄存器执行标志检测,标识所述代理者储存的未发送写入请求,以及确定所述核心没有包含等候的写入请求,除非按照所述执行步骤标识标志。
全文摘要
一种调度装置储存要被调度的数据。该调度装置可以包括根据第一优先级方案(诸如按寿命)来标识队列项目中相对优先级的阵列。该调度装置还可以包括优先级寄存器阵列,该优先级寄存器阵列根据第二优先级方案(诸如按数据类型)来标识队列项目中相对优先级。与所述阵列及所述优先级寄存器阵列连接的多个检测器可以确定下一个要调度的数据。
文档编号G06F12/08GK1382276SQ00801311
公开日2002年11月27日 申请日期2000年11月22日 优先权日1999年12月28日
发明者D·L·希尔, D·T·巴钱德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1