CN101520759A - 动态优先级外部事务处理系统 - Google Patents
动态优先级外部事务处理系统 Download PDFInfo
- Publication number
- CN101520759A CN101520759A CNA2009101348374A CN200910134837A CN101520759A CN 101520759 A CN101520759 A CN 101520759A CN A2009101348374 A CNA2009101348374 A CN A2009101348374A CN 200910134837 A CN200910134837 A CN 200910134837A CN 101520759 A CN101520759 A CN 101520759A
- Authority
- CN
- China
- Prior art keywords
- issued transaction
- formation
- transaction
- request
- bus
- 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
- 230000015572 biosynthetic process Effects 0.000 claims description 142
- 238000000034 method Methods 0.000 claims description 36
- 238000012163 sequencing technique Methods 0.000 claims description 11
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 23
- 238000003860 storage Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 238000005259 measurement Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- CYJRNFFLTBEQSQ-UHFFFAOYSA-N 8-(3-methyl-1-benzothiophen-5-yl)-N-(4-methylsulfonylpyridin-3-yl)quinoxalin-6-amine Chemical compound CS(=O)(=O)C1=C(C=NC=C1)NC=1C=C2N=CC=NC2=C(C=1)C=1C=CC2=C(C(=CS2)C)C=1 CYJRNFFLTBEQSQ-UHFFFAOYSA-N 0.000 description 1
- 230000000454 anti-cipatory effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling 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)
- Developing Agents For Electrophotography (AREA)
- Cash Registers Or Receiving Machines (AREA)
- Measuring Volume Flow (AREA)
- Memory System (AREA)
- Transmitters (AREA)
- Computer And Data Communications (AREA)
- Exchange Systems With Centralized Control (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
本发明公开了一种动态优先级外部事务处理系统。一种多模式事务处理队列可以按照缺省优先级方案操作。当检测到拥挤事件时,事务处理队列可以采用第二优先级方案。
Description
本案是申请号为00817791.0、题为动态优先级外部事务处理系统的中国专利申请的分案申请。
技术领域
本发明涉及动态优先级外部事务处理系统和相应的管理方法。
背景技术
人们知道,许多现代计算系统采用多代理者体系结构(multi-agentarchitecture)。图1示出一种典型的系统。其中多个代理者110-160按照预定的总线协议在外部总线170上进行通信。“代理者”可以包括通用处理器110-140、存储器控制器150、接口芯片集160、输入输出装置和/或其它对数据请求进行处理的集成电路(未示出)。总线170可允许同时进行几个外部总线事务处理。
代理者(例如110)通常包括事务处理管理系统,该事务处理管理系统接收来自所述代理者的其它部件的请求并处理外部总线事务处理以实现所述请求。图2所示的总线排序单元200(“BSU”),是这样一种事务处理管理系统的示例。BSU 200可以包括仲裁器210、内部高速缓存220、内部事务处理队列230、外部事务处理队列240、外部总线控制器250和预取队列260。BSU 200响应由例如代理者核心(图2中未示出)发出的数据请求而管理外部总线170上的事务处理。
仲裁器210不仅可以接收来自所述核心的数据请求,而且还可以接收来自诸如预取队列260的各种其它源的数据请求。仲裁器210可以在仲裁器210同时收到的可能几个数据请求中进行选择,并将其中的一个输出到BSU 200的其余部分。
内部高速缓存220可以将数据存储在几个高速缓存项目中。它可能具有对数据请求作出反应以确定高速缓存220是否存储被请求数据的有效拷贝的逻辑。这里用到的“数据”可以指可以由代理者使用的变量数据和指令数据。内部高速缓存220可以响应数据请求而供给被请求数据。
内部事务处理队列230也可以接收并存储仲裁器210发出的数据请求。对于读取请求,内部事务处理队列230与内部高速缓存220配合以确定被请求数据是否“命中”内部高速缓存220(可由内部高速缓存220供给)。如果不,如果数据请求“错过”内部高速缓存220,则内部事务处理队列230将数据请求转发到外部事务处理队列240。
外部事务处理队列240可以解释数据请求并生成外部总线事务处理来完成它们。外部事务处理队列240可以包括几个队列寄存器。它在代理者的事务处理在外部总线170上进行时对它们进行管理。例如,当数据可用于响应事务处理时,外部事务处理队列240检索该数据并将其转发到代理者中的请求者(例如核心)。
预取队列260可以识别由核心(未示出)发出的读取请求中的预定模式。例如,如果核心发出指向顺序增加的存储单元(地址A、A+1、A+2、A+3、...)的读取请求,则预取队列260可以发出预取请求,以便在核心实际请求数据本身之前从顺序中的下一个地址(A+4)读取数据。通过预期数据需要,预取队列260可以使数据在核心发出对该数据的请求时可在内部高速缓存220中得到。将从内部高速缓存220而不是外部存储器向核心供给数据—快得多的操作。这里,这种类型的预取请求被称为“模式预取(patternedprefetch)”。
BSU 200可以实现第二类型的预取,这里称为“盲预取(blindprefetch)”。当核心发出将由外部总线事务处理完成的对某个地址(假定地址B)的数据的读取请求时,盲预取机制可使第二外部总线事务处理检索第二存储地址(B+1)的数据。盲预取可以使不能内部完成的来自核心的每个读取请求产生一对外部总线事务处理。盲预取可以通过检索满足核心读取请求所需的两倍之多的高速缓存线(或高速缓存扇区)来改进处理器性能。再且,如果核心最终需要从其它地址(B+1)预取的数据的数据,则在核心发出对该数据的读取请求时可以在内部高速缓存220中得到数据。也可以从模式预取请求生成盲预取请求。利用上述示例,可以由对地址A+5的盲预取增加对地址A+4的模式预取请求。
回到图1,众所周知,特别是在多处理器计算机系统中,外部总线170会限制系统性能。外部总线170通常操作在远低于代理者的内部时钟速度的时钟速度下。核心通常会在外部总线170能完成单个外部总线事务处理的时间发出几个数据请求。这样,单个代理者会消耗外部总线170的大量带宽。当多个代理者必须共享外部总线170时,每个代理者只分配有总线170上可用带宽的一部分。在多代理者系统中,在外部总线检索代理者进程(to make forward progress)所需的数据时,代理者常常必须空闲地等待。
外部事务处理队列240(图2)可以包括对挂起的(pending)请求按优先级排序以发送到外部总线的控制逻辑。通常,核心读取应该优先于预取读取,而预取读取应该优先于写入。核心读取请求识别核心立即需要的数据。预取读取请求识别核心可能在将来某个时间点需要的数据。写入请求识别代理者正返回给系统存储器的数据。因此,外部事务处理队列240可以包括根据所述优先级把请求发送到外部总线上的控制逻辑。
预定优先级方案具有其不足。请求通常被存储在事务处理队列240中,直到它在总线上被完成。在高拥挤阶段期间,当事务处理队列240完全或几乎满了的时候,预取和写入请求会阻止新的核心请求被存储在队列240中。这些较低优先级的请求将继续存储在队列中,直到请求的外部总线事务处理完成。这样,较低优先级的请求会阻止较高优先级的请求被执行。这会限制系统的性能。
因此,技术上在代理者中需要用于外部事务处理队列的拥挤管理系统。技术上需要这样一种系统:它提供动态优先级系统—在没有系统拥挤时保持第一优先级方案,但在拥挤事件出现时执行第二优先级。
发明内容
根据本发明的一种包含事务处理队列的集成电路,所述包含事务处理队列的集成电路包括:多个项目,用以存储数据请求;和,控制器,它连接到所述多个项目,如果所述事务处理队列拥挤,则该控制器使选定的数据请求无效。
根据本发明的一种在代理者中用于外部事务处理的管理方法,它包括:对所述代理者所需数据的多个外部总线事务处理请求进行排队;对于所述代理者所需数据的至少一个排队的外部总线事务处理请求,对数据盲预取总线事务处理请求进行排队,以增加所述代理者所需数据;如果对所述多个外部总线事务处理请求和所述盲预取事务处理请求进行排队的队列拥挤,则禁止所述盲预取事务处理请求。
根据本发明的一种在代理者中用于外部事务处理的管理方法,它包括:对多个读取请求进行排队,所述多个读取请求包括:与由代理者核心进行的执行操作所需数据有关的某些读取请求,以及,与预取数据有关的某些读取请求,所述预取数据是将来可能由所述代理者核心执行的数据,与所述代理者核心进行的执行操作所需数据相关联,如果对所述多个读取请求进行排队的队列拥挤,则禁止所述预取读取请求。
根据本发明的一种在代理者中用于外部事务处理的多模式管理方法,它包括:对所述核心所需数据的多个核心读取请求进行排队;对于每一个核心读取请求,对与所述各核心读取请求关联的盲预取请求进行排队,以增添所述相应的核心读取请求;对与核心读取请求模式有关的预取请求进行排队;如果对所述请求进行排队的队列拥挤,则执行禁止所述盲预取请求的第一模式,或者,如果对所述请求进行排队的队列拥挤,则执行禁止所述预取请求的第二模式。
根据本发明的一种代理者总线排序单元,它包括:仲裁器;连接到所述仲裁器的内部高速缓存;包含事务处理队列的集成电路,它连接到所述仲裁器,并存储以下数据:要由所述代理者执行的外部事务处理的数据;以及从核心读取请求、盲预取请求和模式预取请求的组中选择的事务处理的数据;以及,外部总线控制器,它连接到所述包含事务处理队列的集成电路,其中,所述包含事务处理队列的集成电路对所述总线排序单元中的拥挤事件作出响应而使选定的事务处理无效。
根据本发明的一种用于外部事务处理的拥挤管理方法,所述外部事务处理成对地存储在包含事务处理队列的集成电路中并从核心读取请求-盲预取请求对和模式预取请求对的集合中获取,所述方法包括:在处理队列接收新请求;确定所述事务处理队列是否具有空间存储所述新请求;如果没有,则从所述事务处理队列中删除一对尚未发送的模式预取请求,以及,把所述新请求存储在所述事务处理队列中。
根据本发明的一种代理者总线排序单元,它包括:仲裁器;连接到所述仲裁器的内部高速缓存;包含事务处理队列的集成电路,它连接到所述仲裁器,以便存储要由所述代理者执行的外部事务处理的数据以及从核心读取请求、盲预取请求和模式预取请求的组中选择的事务处理的数据,所述事务处理队列对所述总线排序单元中的拥挤事件作出响应而使选定的事务处理无效;以及,连接到所述包含事务处理队列的集成电路的外部总线控制器。
根据本发明的一种管理用于代理者的事务处理的方法,所述方法包括:接收第一事务处理;如果包含事务处理队列的集成电路拥挤,则识别具有低于所述第一事务处理的优先级的第二事务处理;从所述事务处理队列删除所述第二事务处理;以及,在所述事务处理队列存储所述第一事务处理。
根据本发明的一种管理外部总线事务处理的系统,它包括:代理者;仲裁器,它与所述代理者相关联,所述仲裁器可操作地发出要由所述外部总线事务处理完成的数据请求;内部高速缓存,它连接到所述仲裁器;包含事务处理队列的集成电路,它连接到所述仲裁器,所述事务处理队列按照缺省优先级方案和第二优先级方案存储外部总线事务处理并管理所述外部总线事务处理,所述第二优先级方案响应于事务处理队列拥挤而工作;外部总线控制器,它连接到所述包含事务处理队列的集成电路;以及,存储器子系统,它通过外部总线连接到所述外部总线控制器。
根据本发明的一种系统,它包括:存储器系统;外部总线;以及,代理者,它通过所述外部总线连接到所述存储器系统,所述代理者在所述存储器系统内的总线寻址位置上产生读取或写入事务处理,所述代理者包括事务处理管理系统,所述事务处理管理系统包括用于存储核心读取请求和预取请求的队列,所述事务处理管理系统通过使未发送的预取请求无效来对所述队列的拥挤作出响应。
根据本发明的一种管理事务处理的方法,它包括:在代理者内存储代表要在所述代理者外部进行的多个事务处理的数据,所述事务处理包括核心读取请求、模式预取请求和盲预取请求,在代理者内存储代表所述事务处理状态的数据,包括表示所述相应的事务处理是不是挂起的以及所述相应的事务处理是不是正在所述代理者外部进行的数据,以及,对拥挤事件作出响应,使尚未发送到外部的挂起的盲预取请求无效。
本发明的实施例提供一种用于代理者的多模式事务处理队列。所述事务处理队列可以按照缺省优先级方案操作。当检测到拥挤事件时,事务处理队列可以使用第二优先级方案。
附图说明
图1是多代理者计算机系统的方框图。
图2是代理者的示例性总线排序(s equenc ing)单元的方框图。
图3是按照本发明一个实施例的代理者的外部事务处理队列的方框图。
图4是按照本发明一个实施例的拥挤管理方法的流程图。
具体实施方式
本发明的实施例提供一种事务处理队列,它提供对拥挤事件的测量响应。事务处理队列选择性地使队列中正在挂起的存储的事务处理无效—它们目前未被发送到外部总线。在一个实施例中,事务处理队列首先使盲预取请求无效。事务处理队列还可以使未发送的预取请求无效,其中所述未发送的预取请求与有关发送的预取请求被存储。最后,在极端拥挤的情况下,如没有可用于新请求的空间时,事务处理队列可以使未发送的模式预取请求对无效。
这些实施例有利地提供具有动态优先级方案的事务处理队列。在没有拥挤时,事务处理队列可以按照第一优先级方案操作。例如如上所述,事务处理队列可以使核心读取请求优先于预取请求,并使预取请求优先于写入请求。可是,当拥挤事件出现时,事务处理队列可以采用第二优先级方案。例如,事务处理队列可以将核心读取请求保持为最高优先级请求,而将写入请求的优先级重新安排为次最高优先级请求。事务处理队列可使存储在该事务处理队列中的预取请求无效。
图3是按照本发明的一个实施例的代理者的外部事务处理队列300的方框图。外部事务处理队列300可以包括控制器310和多个队列寄存器320-1到320-N(共同标记为320)。各个队列寄存器可以包括几个字段,包括地址字段330、第一状态字段340和第二状态字段350。
外部事务处理队列300可适合用于执行盲预取的代理者。状态字段340、350每个都可以存储有关按照盲预取对来执行的外部总线事务处理中相应一个的信息。地址字段330可以存储事务处理将被定向到的基地址。通常,在地址字段330和状态字段340、345之间将存在预定关系。例如,如果地址D被存储在寄存器320-1的地址字段330中,则状态字段340可以保持有关定向到地址D的事务处理的状态信息,并且状态字段350可以保持有关定向到地址D+1的第二事务处理的状态信息。
状态字段340、350可以存储关于相应的事务处理的管理信息。这样的信息可以包括请求类型、关于外部总线上相应的事务处理的状态的信息(即它是否被发送、请求可能在哪一个事务处理阶段、事务处理是否完成等)和关于按照事务处理可能收到的数据的目的地的信息。通常,当状态字段340、350两者都表明其相应的事务处理已经完成时,从寄存器320清除某事务处理。
按照本发明的一个实施例,状态字段340、350每一个都可以包括子字段,该子字段识别是否按照核心请求(“C”)或按照预取请求(“P”)生成对应的事务处理。图3说明了7个请求为核心请求和剩下的为预取请求的示例。在该示例中,存储在寄存器320-1、320-4、320-5、320-6、320-8、320-11和320-N中的事务处理存储由核心请求启动的事务处理。那些寄存器的状态字段340或350中的一个识别源于核心请求的事务处理;其它状态字段表明盲预取请求。
其它寄存器320-2、320-3、320-7、320-9和320-10识别由盲预取增加的模式预取请求。状态字段340、350两者都表明请求是预取请求。
控制器310把外部事务处理队列300连接到(interface)代理者中的其它元素(例如参见图2)。控制器310可以使事务处理从队列寄存器320中删除或者输入,并可以把数据写入到地址字段330以及写入到状态字段340、350。控制器310还可以为要通过外部总线170发送(图1)的事务处理安排次序。在一个实施例中,控制器310可以是状态机。
按照本发明的一个实施例,控制器310可以在BSU 200中的拥挤事件期间选择性地禁止预取请求。在第一实施例中,当事务处理队列300经历拥挤时,事务处理队列可以禁止还未通过外部总线发送的任何盲预取事务处理。这可以例如通过即使事务处理从未被发送也把盲预取事务处理的状态字段标记为完成来实现。在此实施例中,当在外部总线上完成核心读取请求时,可以从事务处理队列300中逐出事务处理。
在另一个实施例中,当事务处理队列经历拥挤时,事务处理队列300可以逐出存储在队列中还未通过外部总线发送的任何模式预取请求。事务处理队列300可以简单地通过解除对有关队列寄存器的分配来逐出未开始的预取请求。
在又一个实施例中,当事务处理队列经历拥挤,并且事务处理队列300存储已经开始的模式预取事务处理时,事务处理队列300可以禁止预取对中的任何未发送的预取事务处理。考虑图3的寄存器320-2中示出的模式预取请求。如所示的那样,状态字段350表明第一预取事务处理正在挂起但还没有通过外部总线发送。相反,状态字段340表明第二预取事务处理已经通过外部总线发送。在该实施例中,事务处理队列300可以响应于拥挤事件而把第一事务处理标记为完成。在这种情况下,第二预取请求将被允许继续完成。当它完成时,事务处理队列300可以解除对寄存器320-2的分配,因为状态340、350两者都识别完成的事务处理。
图4是按照本发明的一个实施例可以由事务处理队列300(图3)执行的方法1000的流程图。在拥挤事件时,事务处理队列可以确定新请求是否被输入到事务处理队列(步骤1010)。在收到新请求时,事务处理队列可以确定寄存器是否可用于新请求(步骤1020)。如果是,则它把请求存储在可用的寄存器中(步骤1030)。可以按照在本领中的传统方法执行请求的存储。事务处理队列300可以确定请求的基地址并在分配的寄存器的各个字段330-350中输入适当的信息。
如果在步骤1020中没有可用的寄存器,则事务处理队列300可以解除对与一对未发送的模式预取请求有关联的寄存器的分配(步骤1040)。在执行该步骤中,事务处理队列300可以解除状态字段340、350都表明相应的事务处理还未被发送到外部总线的模式预取请求的分配。如果寄存器320中没有一个识别一对未开始的预取请求,则新接收的请求可以被阻止(步骤未示出)。该请求被禁止输入事务处理队列。
在步骤1030结束时,或者在步骤1010没有接收的请求,事务处理队列确定它是否正在拥挤模式下操作(步骤1050)。如果不是,事务处理队列300可以停止方法1000的这种重复。
如果事务处理队列300正在拥挤模式下操作,则事务处理队列确定它是否存储任何挂起的盲预取事务处理(步骤1060)。如果是,事务处理队列300可以禁止盲预取事务处理的其中之一(步骤1070)。步骤1070可以应用于与核心请求或模式预取请求有关的盲预取。如果不是,或者在步骤1070结束时,该方法可以结束。
方法1000有利地提供对拥挤的测量响应。作为第一响应,事务处理队列使来自事务处理队列的盲预取请求无效。如上面讨论的那样,作为类的预取请求次于核心请求。经验也教导使盲预取次于模式预取是适当的。模式预取可能比盲预取更有效。对来自存储器的核心读取的建立模式进行响应而发出模式预取。盲预取不依赖任何种类的可测量标记。这样,模式预取更可能检索核心最终将请求的数据,并应该有利于盲预取而被保持。
当盲预取被无效时,它增加了使得寄存器320可用于新接收的请求的速率(rate)。如说明的那样,盲预取与核心读取请求有关。核心读取请求是由事务处理队列处理的最高优先级的请求—它们以最高优先级通过外部总线发送。
在优先级的第二级,如果拥挤即使在所有预取都被无效后仍然继续,则事务处理队列可以使与进行中的预取请求有关的挂起的模式预取请求无效(步骤1080)。因为预取请求中的一个已经被发送到外部总线上,因此它可能在预定时间量内结束。可是,即使它结束,第二挂起的预取请求的状态(在步骤1080中被无效的那个)会阻止有关寄存器被解除分配。通过把挂起的预取请求标记为完成,步骤1080确保在发送的预取请求结束时解除对寄存器的分配。
在优先级的第三级,事务处理队列有利于新收到的请求而解除对存储一对挂起的预取请求的寄存器的分配。这仅在没有可用于新接收的请求的寄存器时出现。
本发明的原理允许几个不同的触发事件以使事务处理队列300决定它是否在拥挤模式下操作。在第一实施例中,事务处理队列300可以根据队列中被分配了的或未被分配的寄存器320的数量来确定它是拥挤的(thetransaction queue 300 may determine that it is congested based ona number of allocated or unallocated registers 320 in the queue)。例如,如果事务处理队列确定寄存器满到90%或100%,则可判决它是在拥挤模式下操作。
在第二示例中,事务处理队列可以根据外部总线的测量的等待时间来确定拥挤事件已经出现。人们知道,代理者通常按照预定的总线协议操作。总线协议可以建立规则管理新请求何时可通过外部总线发送以及多个可能的代理者中的哪一个可能在各请求“时隙”中通过总线发送新请求,每个时机通过总线发送新请求。在这样一个实施例中,事务处理队列300可以测量若干在事务处理队列300获得总线所有权之前传送的请求时隙。如果测量数量的时隙数超过某预定阈值,则事务处理队列300可以确定拥挤事件已经出现。
按照另一个实施例,事务处理队列300根据检测的一种类型的拥挤不同地响应拥挤事件。考虑一个例子,其中事务处理队列可以检测两种类型的触发事件的示例(如上所述):1)可用寄存器的数量低于某阈值数(假设事务处理队列全满),以及2)外部总线上测量的等待时间超过阈值量。按照一个实施例,事务处理队列300可以在事务处理队列300全满时使所有预取请求无效,而外部总线上测量的等待时间超过阈值时仅使盲预取请求无效。该实施例会是有利的,因为它提供简单的实现并区分低严重性和高严重性的拥挤事件。
前面的讨论区分了挂起和发送的请求。这里,发送的请求是已经在外部总线上开始的请求。通常,外部总线由预定总线协议定义,它指定事务处理经历完成的增加的阶段。前面实施例中描述的拥挤管理方法不干扰已经发送的事务处理。相反,挂起的请求是存储在BSU中的但还未在外部总线上开始的请求。本发明的拥挤管理方法可以按照前面实施例中描述的那些技术来使挂起的请求无效。
如上所述,本发明的实施例提供事务处理队列300,它可以按照动态优先级方案操作。第一优先级方案可被定义用于没有拥挤时的事务处理队列。但是在检测到拥挤时,事务处理队列可以执行第二优先级方案。在上述实施例中,事务处理队列可以使预取请求无效。
前面实施例中描述的拥挤管理技术针对于由事务处理管理系统处理的请求读取。人们知道,BSU可以处理其它类型的请求,如写入请求,它们不是用来使数据被读入代理者。前面实施例中描述的拥挤管理技术不是用来干扰事务处理管理系统处理这些其它类型的请求的方法。
在此具体示出并描述了本发明的几个实施例。可是要知道,在不脱离本发明的精神和预期范围下,本发明的修改和变化被上述示教所覆盖并在后附权利要求书的范围内。
Claims (39)
1.一种用于代理者根据动态优先级方案进行操作的事务处理队列,所述事务处理队列包括:
控制器;以及
耦合到所述控制器的多个队列寄存器,所述多个队列寄存器存储所述代理者的多个总线事务处理的地址和状态信息;
其中,所述事务处理队列最初在所述事务处理队列中没有出现拥挤时根据第一优先级方案进行操作,而当拥挤事件发生时以第二优先级方案进行操作。
2.如权利要求1所述的事务处理队列,其中,如果所述事务处理队列中排队的总线事务处理的数量超过预定阈值,则所述事务处理队列拥挤。
3.如权利要求1所述的事务处理队列,其中,如果所述事务处理队列充满总线事务处理,则所述事务处理队列拥挤。
4.如权利要求1所述的事务处理队列,其中,如果发送的总线事务处理的测定等待时间超过预定阈值,则所述事务处理队列拥挤。
5.如权利要求1所述的事务处理队列,其中,如果所述事务处理队列中排队的总线事务处理的数量超过所述预定阈值,则所述控制器使所述事务处理队列中的预取请求事务处理无效。
6.如权利要求1所述的事务处理队列,其中,如果所述事务处理队列充满总线事务处理,则所述控制器使所述事务处理队列中的预取请求事务处理无效。
7.如权利要求1所述的事务处理队列,其中,如果发送的总线事务处理的所述测定等待时间超过所述预定阈值,则所述控制器使所述事务处理队列中的盲预取请求事务处理无效。
8.如权利要求1所述的事务处理队列,其中,在所述第一优先级方案中,核心读取请求优先于预取请求。
9.如权利要求8所述的事务处理队列,其中,在所述第一优先级方案中,预取请求优先于写入请求。
10.如权利要求1所述的事务处理队列,其中,在所述第二优先级方案中,核心读取请求保持为最高优先级请求,写入请求为次最高请求,以及预取请求为最低优先级请求。
11.如权利要求10所述的事务处理队列,其中,在所述第二优先级方案中,预取请求要被无效。
12.如权利要求11所述的事务处理队列,其中,在所述第二优先级方案中,盲预取请求要被无效。
13.如权利要求11所述的事务处理队列,其中,在所述第二优先级方案中,所述控制器将逐出所述事务处理队列中存储的尚未在所述总线上发送的模式预取请求。
14.如权利要求11所述的事务处理队列,其中,在所述第二优先级方案中,所述控制器将禁止事务处理预取对中的未发送预取事务处理。
15.一种控制代理者的事务处理队列的方法,所述事务处理队列包括控制器和多个队列寄存器,所述队列寄存器存储所述代理者的多个总线事务处理的地址和状态信息,所述方法包括:
根据第一优先级方案操作所述事务处理队列;
确定拥挤事件是否发生;以及
如果拥挤事件发生,则根据第二优先级方案操作所述事务处理队列。
16.如权利要求15所述的方法,其中,如果所述事务处理队列中排队的总线事务处理的数量超过预定阈值,则所述事务处理队列拥挤。
17.如权利要求15所述的方法,其中,如果所述事务处理队列充满总线事务处理,则所述事务处理队列拥挤。
18.如权利要求15所述的方法,其中,如果发送的总线事务处理的测定等待时间超过预定阈值,则所述事务处理队列拥挤。
19.如权利要求15所述的方法,还包括:
如果所述事务处理队列中排队的总线事务处理的数量超过所述预定阈值,则使所述事务处理队列中的预取请求事务处理无效。
20.如权利要求15所述的方法,还包括:
如果所述事务处理队列充满总线事务处理,则使所述事务处理队列中的预取请求事务处理无效。
21.如权利要求15所述的方法,还包括:
如果发送的总线事务处理的所述测定等待时间超过所述预定阈值,则使所述事务处理队列中的盲预取请求事务处理无效。
22.如权利要求15所述的方法,其中,在所述第一优先级方案中,核心读取请求优先于预取请求。
23.如权利要求22所述的方法,其中,在所述第一优先级方案中,预取请求优先于写入请求。
24.如权利要求15所述的方法,其中,在所述第二优先级方案中,核心读取请求保持为最高优先级请求,写入请求为次最高请求,以及预取请求为最低优先级请求。
25.如权利要求24所述的方法,其中,在所述第二优先级方案中,预取请求要被无效。
26.如权利要求25所述的方法,其中,在所述第二优先级方案中,盲预取请求要被无效。
27.如权利要求25所述的方法,还包括:
在所述第二优先级方案中逐出所述事务处理队列中存储的尚未在所述总线上发送的模式预取请求。
28.如权利要求25所述的方法,还包括:在所述第二优先级方案中,禁止事务处理预取对中的未发送预取事务处理。
29.一种代理者总线排序单元,包括:
仲裁器;
耦合到所述仲裁器的内部高速缓存;
事务处理队列,包括
控制器;以及
耦合到所述控制器的多个队列寄存器,所述多个队列寄存器存储所述代理者的多个总线事务处理的地址和状态信息;
其中,所述事务处理队列最初在事务处理队列中没有出现拥挤时根据第一优先级方案进行操作,而当拥挤事件发生时以第二优先级方案进行操作;
耦合到所述事务处理队列的外部总线控制器;以及
通过外部总线耦合到所述外部总线控制器的存储器子系统。
30.如权利要求29所述的总线排序单元,其中,各队列寄存器包括地址字段以及第一和第二状态字段,其中所述第一和第二状态字段将存储关于相应事务处理的信息,使得所述第一和第二状态字段将存储所述相应事务处理是核心请求还是预取请求的信息。
31.如权利要求30所述的总线排序单元,其中,所述第一和第二状态字段将存储关于所述相应事务处理是挂起还是完成的信息。
32.如权利要求31所述的总线排序单元,其中,在所述第二优先级方案中,所述事务处理队列通过以下方式来禁止盲预取事务处理:把相应盲预取事务处理的第一和第二状态字段之一中的状态标记为完成。
33.如权利要求31所述的总线排序单元,其中,在所述第二优先级方案中,所述事务处理队列通过以下方式来逐出模式预取请求事务处理:取消分配相应模式预取请求事务处理的队列寄存器。
34.如权利要求31所述的总线排序单元,其中,在所述第二优先级方案中,所述事务处理队列通过以下方式来禁止一对模式预取请求事务处理的模式预取请求事务处理:把相应预取事务处理对的第一和第二状态字段之一中的状态标记为完成。
35.一种控制代理者的事务处理队列的方法,包括:
根据第一优先级方案操作所述事务处理队列,所述事务处理队列包括控制器和多个队列寄存器,所述队列寄存器存储所述代理者的多个总线事务处理的地址和状态信息,其中,各队列寄存器包括地址字段以及第一和第二状态字段,其中所述第一和第二状态字段将存储关于相应事务处理的信息,使得所述第一和第二状态字段将存储所述相应事务处理是核心请求还是预取请求的信息;
确定拥挤事件是否发生;以及
如果拥挤事件发生,则根据第二优先级方案操作所述事务处理队列。
36.如权利要求35所述的方法,其中,所述第一定第二状态字段将存储关于所述相应事务处理是挂起还是完成的信息。
37.如权利要求35所述的方法,其中,在所述第二优先级方案中,所述方法还包括
通过以下方式来禁止盲预取事务处理:把相应盲预取事务处理的第一和第二状态字段之一中的状态标记为完成。
38.如权利要求35所述的方法,其中,在所述第二优先级方案中,所述方法还包括
通过以下方式来逐出模式预取请求事务处理:取消分配相应模式预取请求事务处理的队列寄存器。
39.如权利要求35所述的方法,其中,在所述第二优先级方案中,所述方法还包括
通过以下方式来禁止一对模式预取请求事务处理的模式预取请求事务处理:把相应预取事务处理对的第一和第二状态字段之一中的状态标记为完成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/474,011 US6654837B1 (en) | 1999-12-28 | 1999-12-28 | Dynamic priority external transaction system |
US09/474011 | 1999-12-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008177910A Division CN100492332C (zh) | 1999-12-28 | 2000-11-28 | 动态优先级外部事务处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101520759A true CN101520759A (zh) | 2009-09-02 |
CN101520759B CN101520759B (zh) | 2011-12-28 |
Family
ID=23881859
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200910130408XA Pending CN101539896A (zh) | 1999-12-28 | 2000-11-28 | 动态优先级外部事务处理系统 |
CN2009101348374A Expired - Fee Related CN101520759B (zh) | 1999-12-28 | 2000-11-28 | 动态优先级外部事务处理系统 |
CNB008177910A Expired - Fee Related CN100492332C (zh) | 1999-12-28 | 2000-11-28 | 动态优先级外部事务处理系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200910130408XA Pending CN101539896A (zh) | 1999-12-28 | 2000-11-28 | 动态优先级外部事务处理系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008177910A Expired - Fee Related CN100492332C (zh) | 1999-12-28 | 2000-11-28 | 动态优先级外部事务处理系统 |
Country Status (11)
Country | Link |
---|---|
US (2) | US6654837B1 (zh) |
EP (2) | EP1624379B1 (zh) |
JP (1) | JP4219106B2 (zh) |
CN (3) | CN101539896A (zh) |
AT (1) | ATE317991T1 (zh) |
AU (1) | AU1793701A (zh) |
DE (2) | DE60039375D1 (zh) |
HK (1) | HK1066610A1 (zh) |
MX (1) | MXPA02005822A (zh) |
TW (1) | TW484065B (zh) |
WO (1) | WO2001048618A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908000A (zh) * | 2010-07-08 | 2010-12-08 | 北京航空航天大学 | 一种硬件型事务存储系统中事务线程的阻塞唤醒方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3908482B2 (ja) * | 2001-06-22 | 2007-04-25 | 富士通株式会社 | 入出力制御装置及び入出力制御方法並びに情報記憶システム |
US6732242B2 (en) | 2002-03-28 | 2004-05-04 | Intel Corporation | External bus transaction scheduling system |
US7315912B2 (en) * | 2004-04-01 | 2008-01-01 | Nvidia Corporation | Deadlock avoidance in a bus fabric |
US20060123003A1 (en) * | 2004-12-08 | 2006-06-08 | International Business Machines Corporation | Method, system and program for enabling non-self actuated database transactions to lock onto a database component |
US8032711B2 (en) * | 2006-12-22 | 2011-10-04 | Intel Corporation | Prefetching from dynamic random access memory to a static random access memory |
US8984198B2 (en) * | 2009-07-21 | 2015-03-17 | Microchip Technology Incorporated | Data space arbiter |
CN101930371A (zh) * | 2010-09-16 | 2010-12-29 | 复旦大学 | 一种基于控制论和目标推理的软件质量运行时优化方法 |
US8977819B2 (en) * | 2010-09-21 | 2015-03-10 | Texas Instruments Incorporated | Prefetch stream filter with FIFO allocation and stream direction prediction |
US8769175B2 (en) * | 2011-03-09 | 2014-07-01 | International Business Machines Corporation | Adjustment of post and non-post packet transmissions in a communication interconnect |
CN102183923B (zh) * | 2011-04-26 | 2013-06-05 | 中国工商银行股份有限公司 | 一种计算机关联事件执行控制方法及系统 |
US9251108B2 (en) * | 2012-11-05 | 2016-02-02 | International Business Machines Corporation | Managing access to shared buffer resources |
RU2619067C2 (ru) * | 2012-12-04 | 2017-05-11 | Тойота Дзидося Кабусики Кайся | Устройство управления зарядкой, способ управления зарядкой, компьютерная программа и носитель записи |
US20180081749A1 (en) * | 2013-12-04 | 2018-03-22 | International Business Machines Corporation | Performance ranking of read requests in a distributed storage network |
JP6295700B2 (ja) | 2014-02-12 | 2018-03-20 | 株式会社ソシオネクスト | 調停回路及び調停回路の処理方法 |
CN103984652B (zh) * | 2014-05-28 | 2017-12-19 | 山东超越数控电子有限公司 | 一种基于龙芯平台的北斗通信方法 |
KR20160018204A (ko) * | 2014-08-08 | 2016-02-17 | 삼성전자주식회사 | 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법 |
US10496577B2 (en) * | 2017-02-09 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Distribution of master device tasks among bus queues |
US10387320B2 (en) | 2017-05-12 | 2019-08-20 | Samsung Electronics Co., Ltd. | Integrated confirmation queues |
US10983836B2 (en) | 2018-08-13 | 2021-04-20 | International Business Machines Corporation | Transaction optimization during periods of peak activity |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE414087B (sv) | 1977-02-28 | 1980-07-07 | Ellemtel Utvecklings Ab | Anordning i ett datorsystem vid utsendning av signaler fran en processor till en eller flera andra processorer varvid prioriterade signaler sends direkt utan tidsfordrojning och oprioriterade signalers ordningsfoljd ... |
US5056041A (en) * | 1986-12-31 | 1991-10-08 | Texas Instruments Incorporated | Data processing apparatus with improved bit masking capability |
JPH0664567B2 (ja) * | 1989-12-25 | 1994-08-22 | 株式会社日立製作所 | 多重プロセッサシステム |
US5230078A (en) * | 1991-08-05 | 1993-07-20 | Motorola Inc. | Method for a console to quickly monitor a group |
US5666494A (en) * | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
US5937205A (en) | 1995-12-06 | 1999-08-10 | International Business Machines Corporation | Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue |
US5673413A (en) * | 1995-12-15 | 1997-09-30 | International Business Machines Corporation | Method and apparatus for coherency reporting in a multiprocessing system |
US5761452A (en) | 1996-03-18 | 1998-06-02 | Advanced Micro Devices, Inc. | Bus arbiter method and system |
US5724613A (en) | 1996-05-06 | 1998-03-03 | Vlsi Technology, Inc. | System and method for automatically enabling and disabling a prefetching capability |
US6401212B1 (en) * | 1997-08-21 | 2002-06-04 | Texas Instruments Incorporated | Microprocessor circuits, systems, and methods for conditioning information prefetching based on resource burden |
US6341335B1 (en) * | 1997-10-29 | 2002-01-22 | Hitachi, Ltd. | Information processing system for read ahead buffer memory equipped with register and memory controller |
US6484239B1 (en) * | 1997-12-29 | 2002-11-19 | Intel Corporation | Prefetch queue |
US6148372A (en) * | 1998-01-21 | 2000-11-14 | Sun Microsystems, Inc. | Apparatus and method for detection and recovery from structural stalls in a multi-level non-blocking cache system |
US6076130A (en) * | 1998-03-19 | 2000-06-13 | Hewlett-Packard Company | System and method for efficient communication between buses |
US6446143B1 (en) * | 1998-11-25 | 2002-09-03 | Compaq Information Technologies Group, L.P. | Methods and apparatus for minimizing the impact of excessive instruction retrieval |
US6286074B1 (en) * | 1999-03-24 | 2001-09-04 | International Business Machines Corporation | Method and system for reading prefetched data across a bridge system |
US6330647B1 (en) * | 1999-08-31 | 2001-12-11 | Micron Technology, Inc. | Memory bandwidth allocation based on access count priority scheme |
US6553446B1 (en) * | 1999-09-29 | 2003-04-22 | Silicon Graphics Inc. | Modular input/output controller capable of routing packets over busses operating at different speeds |
US6470427B1 (en) * | 1999-11-09 | 2002-10-22 | International Business Machines Corporation | Programmable agent and method for managing prefetch queues |
US6704817B1 (en) * | 2000-08-31 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Computer architecture and system for efficient management of bi-directional bus |
-
1999
- 1999-12-28 US US09/474,011 patent/US6654837B1/en not_active Expired - Lifetime
-
2000
- 2000-11-28 CN CNA200910130408XA patent/CN101539896A/zh active Pending
- 2000-11-28 JP JP2001549203A patent/JP4219106B2/ja not_active Expired - Fee Related
- 2000-11-28 MX MXPA02005822A patent/MXPA02005822A/es active IP Right Grant
- 2000-11-28 EP EP05023715A patent/EP1624379B1/en not_active Expired - Lifetime
- 2000-11-28 EP EP00980710A patent/EP1323045B1/en not_active Expired - Lifetime
- 2000-11-28 AT AT00980710T patent/ATE317991T1/de not_active IP Right Cessation
- 2000-11-28 CN CN2009101348374A patent/CN101520759B/zh not_active Expired - Fee Related
- 2000-11-28 DE DE60039375T patent/DE60039375D1/de not_active Expired - Lifetime
- 2000-11-28 DE DE60026068T patent/DE60026068T2/de not_active Expired - Lifetime
- 2000-11-28 CN CNB008177910A patent/CN100492332C/zh not_active Expired - Fee Related
- 2000-11-28 WO PCT/US2000/032154 patent/WO2001048618A2/en active IP Right Grant
- 2000-11-28 AU AU17937/01A patent/AU1793701A/en not_active Abandoned
- 2000-12-19 TW TW089127214A patent/TW484065B/zh not_active IP Right Cessation
-
2003
- 2003-09-23 US US10/667,457 patent/US7143242B2/en not_active Expired - Fee Related
-
2004
- 2004-11-29 HK HK04109397.6A patent/HK1066610A1/xx not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908000A (zh) * | 2010-07-08 | 2010-12-08 | 北京航空航天大学 | 一种硬件型事务存储系统中事务线程的阻塞唤醒方法 |
CN101908000B (zh) * | 2010-07-08 | 2012-10-10 | 北京航空航天大学 | 一种硬件型事务存储系统中事务线程的阻塞唤醒方法 |
Also Published As
Publication number | Publication date |
---|---|
DE60026068T2 (de) | 2006-11-02 |
CN101539896A (zh) | 2009-09-23 |
TW484065B (en) | 2002-04-21 |
EP1323045B1 (en) | 2006-02-15 |
JP2003521029A (ja) | 2003-07-08 |
EP1323045A2 (en) | 2003-07-02 |
MXPA02005822A (es) | 2003-12-11 |
WO2001048618A3 (en) | 2002-03-07 |
CN1503947A (zh) | 2004-06-09 |
ATE317991T1 (de) | 2006-03-15 |
DE60039375D1 (de) | 2008-08-14 |
US20040059854A1 (en) | 2004-03-25 |
CN101520759B (zh) | 2011-12-28 |
AU1793701A (en) | 2001-07-09 |
EP1624379A2 (en) | 2006-02-08 |
HK1066610A1 (en) | 2005-03-24 |
EP1624379A3 (en) | 2006-04-26 |
US7143242B2 (en) | 2006-11-28 |
WO2001048618A2 (en) | 2001-07-05 |
US6654837B1 (en) | 2003-11-25 |
JP4219106B2 (ja) | 2009-02-04 |
CN100492332C (zh) | 2009-05-27 |
EP1624379B1 (en) | 2008-07-02 |
DE60026068D1 (de) | 2006-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101520759B (zh) | 动态优先级外部事务处理系统 | |
TWI396091B (zh) | 具有每個代理者佇列的淺層之非封鎖位址交換器 | |
US6557084B2 (en) | Apparatus and method to improve performance of reads from and writes to shared memory locations | |
EP2157515B1 (en) | Prioritized bus request scheduling mechanism for processing devices | |
KR100524575B1 (ko) | 데이타 처리시스템에서 복수개의 메모리 억세스 리퀘스트신호를리오더링하는 방법 | |
US5901295A (en) | Address and data bus arbiter for pipelined transactions on a split bus | |
KR100371844B1 (ko) | 데이타처리시스템 | |
EP0675444B1 (en) | Multiple arbitration scheme | |
US6820152B2 (en) | Memory control device and LSI | |
EP0981093A2 (en) | Method and apparatus for performing transactions in a data processing system | |
US5519838A (en) | Fast pipelined distributed arbitration scheme | |
US7080174B1 (en) | System and method for managing input/output requests using a fairness throttle | |
JP3317873B2 (ja) | データ転送制御装置 | |
US20040006662A1 (en) | Preemptive round robin arbiter | |
US5708783A (en) | Data bus arbiter for pipelined transactions on a split bus | |
JPH0656602B2 (ja) | キヤツシユを有するプロセツサのための優先制御システム | |
US5815676A (en) | Address bus arbiter for pipelined transactions on a split bus | |
JP2002063130A (ja) | バス調停システム | |
CN117971717A (zh) | 多主机的访问控制方法、装置、电子设备及存储介质 | |
US6546470B1 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers with banked directory implementation |
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 |
Granted publication date: 20111228 Termination date: 20161128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |