CN200910134837.4
2000.11.28
CN101520759A
2009.09.02
终止
无权
未缴年费专利权终止IPC(主分类):G06F 13/18申请日:20001128授权公告日:20111228终止日期:20161128|||授权|||实质审查的生效|||公开
G06F13/18; G06F13/362
G06F13/18
英特尔公司
D·L·希尔; D·T·巴钱德; C·B·普鲁德维; D·T·马尔
美国加利福尼亚州
1999.12.28 US 09/474011
中国专利代理(香港)有限公司
柯广华;蒋 骏
本发明公开了一种动态优先级外部事务处理系统。一种多模式事务处理队列可以按照缺省优先级方案操作。当检测到拥挤事件时,事务处理队列可以采用第二优先级方案。
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所述的方法,其中,在所述第二优先级方案中,所述方法还包括通过以下方式来禁止一对模式预取请求事务处理的模式预取请求事务处理:把相应预取事务处理对的第一和第二状态字段之一中的状态标记为完成。
动态优先级外部事务处理系统 本案是申请号为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可以处理其它类型的请求,如写入请求,它们不是用来使数据被读入代理者。前面实施例中描述的拥挤管理技术不是用来干扰事务处理管理系统处理这些其它类型的请求的方法。 在此具体示出并描述了本发明的几个实施例。可是要知道,在不脱离本发明的精神和预期范围下,本发明的修改和变化被上述示教所覆盖并在后附权利要求书的范围内。
《动态优先级外部事务处理系统.pdf》由会员分享,可在线阅读,更多相关《动态优先级外部事务处理系统.pdf(20页珍藏版)》请在专利查询网上搜索。
本发明公开了一种动态优先级外部事务处理系统。一种多模式事务处理队列可以按照缺省优先级方案操作。当检测到拥挤事件时,事务处理队列可以采用第二优先级方案。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1