用于改善跨越相干总线的信号量管理序列的性能的方法和设备的制造方法_3

文档序号:9383075阅读:来源:国知局
与系统存储器116相关联)中的软件指令,并且所述软件指令可执行以使例如第一处理代理(PX1)104和第二处理代理(PX2) 108等计算机执行程序,以按照图3A-3C和4A-4C中说明的操作。PXl104和PX2 108经配置以执行软件指令,所述软件指令是从高速缓冲存储器105、120、109和126的不同级以及系统存储器116存取的。
[0039]图3A说明具有对高效活锁避免的支持的信号量管理过程300。为了避免活锁和相关联的性能损失,修改相干总线协议以包含例如在框308处发出的新命令,以便使得发出读取偏好型排他命令,并且在框312处使得发出升级偏好型排他命令。框308和312处的命令响应于与框306相关联的高速缓冲存储器存取、与框310相关联的高速缓冲存储线状态以及建构到高速缓冲存储器控制器中的保留颗粒(RG)的状态而操作,所述高速缓冲存储器控制器例如是L2高速缓冲存储器和控制器-1 106和L2高速缓冲存储器和控制器-2HO。
[0040]过程300开始于框304处,其中例如PXl 104的请求核心处理代理发出LDEX A指令。在框306处,与请求PXl相关联的高速缓冲存储器,例如图1的L2高速缓冲存储器I120,确定具有地址A处的数据的线是否在所述高速缓冲存储器中。如果所述线不存在于所述高速缓冲存储器中,则过程300前进到框308。在框308处,相干总线控制器,例如与PXl相关联的L2高速缓冲存储器控制器-1 121,对相干总线114发出读取偏好型排他命令。返回到框306,如果所述线存在于所述高速缓冲存储器中,例如通过高速缓冲存储器中的命中所指示,则过程300前进到框310。在框310处,确定PXl的高速缓冲存储线状态是指示共享、自有、排他还是修改。如果所述状态是共享或自有,则过程300前进到框312。在框312处,相干总线控制器,例如与PXl相关联的L2高速缓冲存储器控制器-1 121,对相干总线114发出升级偏好型排他命令。返回到框310,如果所述状态是排他或修改,则过程300前进到框314,其中与PXl发出LDEX A指令相关联的过程完成。
[0041]图3B说明读取偏好排他信号量管理过程330。响应于LDEX指令给RG标记上目标高速缓冲存储线地址。只有在发出STEX指令以便执行的时候,执行STEX的处理代理的RG被标记的情况下,STEX指令才会更新存储器。读取偏好型排他操作用作对MP中的其它高速缓冲存储器的一个暗示,暗示发出请求的主设备很可能存储到所述高速缓冲存储线,并且,如果可能的话,其它高速缓冲存储器中的每一者应当使所述线失效以允许发出请求的主设备转变成排他状态。在大多数情况下,这将导致其它主设备使线失效,这也可被称作放弃所述线,并且发出请求的主设备使线变成排他的。应注意,即使一个高速缓冲存储线中的数据在第二高速缓冲存储器中未中,也可以将所述高速缓冲存储线标记成共享的。因为第二高速缓冲存储器的RG仍然标记上目标地址,所以将第一高速缓冲存储器中的所述高速缓冲存储线标记为共享。虽然第二高速缓冲存储器在其高速缓冲存储器中不具有有效的线,但是第二高速缓冲存储器的RG仍然是有效的,并且第一高速缓冲存储器使所述线成为共享的,以记住在第二高速缓冲存储器中存在经过标记的RG。STEX指令必须仍然广播要消除第二高速缓冲存储器中的RG的标记,即使第二高速缓冲存储器在其高速缓冲存储器中不具有有效的线也是如此。
[0042]另一高速缓冲存储器不能够放弃所述线的仅有的时候是在其它高速缓冲存储器本身在执行信号量管理序列并且其它高速缓冲存储器的RG被标记上相同地址时,因为这样可能导致活锁。在大多数情况下,多个处理器不会同时执行用于相同地址的信号量管理序列。因此,这个实施例可以明显增加发出请求的主设备的LDEX能够使线处于排他状态的次数,这样会提高MP的每一处理器中的性能。
[0043]过程330在框332处从监视器开始,监视器确定是否在相干总线上检测到读取偏好型排他命令。在针对PX2操作的监听器检测到(也称为监听到)来自相干总线114的命令后,过程330即刻前进到框334。在框334处,确定与在框304处发出的LDEX指令相关联的线是否在PX2的高速缓冲存储器中。如果确定所述线不在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的未中所指示,则过程330前进到框336。在框336处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程330前进到框338。在框338处,请求方(在这种情况下是PXl)使线成为排他的,并且从存储器层级中的下一级(例如从L3高速缓冲存储器)取得数据。过程330接着返回到框332。返回到框336,如果所述线被标记上相同地址,则过程330前进到框340。在框340处,请求方(在这种情况下是PXl)使所述线成为共享的,并且从存储器层级中的下一级取得数据。过程330接着返回到框332。
[0044]返回到框334,如果确定所述线在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的命中所指示,则过程330前进到框344。在框344处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程330前进到框346。在框346处,确定PX2高速缓冲存储线状态是否为共享或排他,或者PX2高速缓冲存储线状态是否为自有或修改。如果PX2高速缓冲存储线状态是共享或排他,则过程330前进到框348。在框348处,请求方PXl使所述线成为排他的,使PX2的高速缓冲存储器中的所述线失效,并且提供所存取的数据到PXl的高速缓冲存储器。过程330接着返回到框332。返回到框346,如果PX2高速缓冲存储线状态是自有或修改,则过程330前进到框350。在框350处,请求方PXl使所述线成为修改的,使PX2的高速缓冲存储器中的所述线失效,并且提供所存取的数据到PXl的高速缓冲存储器。过程330接着返回到框332。
[0045]返回到框344,如果所述线被标记上相同地址,则过程330前进到框354。在框354处,确定PX2高速缓冲存储线状态是否为共享或排他,或者PX2高速缓冲存储线状态是否为自有或修改。如果PX2高速缓冲存储线状态是共享或排他,则过程330前进到框356。在框356处,请求方PXl使所述线成为共享的,PX2的高速缓冲存储器如果处于排他状态,则转变成共享状态,如果处于共享状态,则保持在共享状态,并且提供所存取的数据到PXl的高速缓冲存储器。过程330接着返回到框332。返回到框354,如果PX2高速缓冲存储线状态是自有或修改,则过程330前进到框358。在框358处,请求方PXl使所述线成为共享的,PX2的高速缓冲存储器如果处于修改状态,则转变成自有状态,如果处于自有状态,则保持在自有状态,并且提供所存取的数据到PXl的高速缓冲存储器。过程330接着返回到框332。
[0046]图3C说明升级偏好型排他信号量管理过程360。过程360在框362处从监视器开始,监视器确定是否在相干总线上检测到升级偏好型排他命令。在针对PX2操作的监听单元或监听器检测到(也称为监听到)来自相干总线114的命令后,过程360即刻前进到框364。在框364处,确定与在框304处发出的LDEX指令相关联的线是否在PX2的高速缓冲存储器中。如果确定所述线不在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的未中所指示,则过程360前进到框366。在框366处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程360前进到框368。在框368处,请求方(在这种情况下是PXl)将线的状态升级成排他的。过程330接着返回到框332。返回到框366,如果所述线被标记上相同地址,则过程360前进到框370。在框370处,不采取动作,并且PXl和PX2都不改变高速缓冲存储器状态。过程330接着返回到框332。
[0047]返回到框364,如果确定所述线在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的命中所指示,则过程360前进到框372。在框372处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程360前进到框374。在框374处,确定PX2高速缓冲存储线状态是否为共享,或者PX2高速缓冲存储线状态是否为自有。如果PX2高速缓冲存储线状态是共享,则过程360前进到框376。在框376处,请求方PXl将所述线升级成排他状态,并且使PX2的高速缓冲存储器中的所述线失效。过程360接着返回到框362。返回到框374,如果PX2高速缓冲存储线状态是自有,则过程360前进到框378。在框378处,请求方PXl将所述线升级成修改状态,并且使PX2的高速缓冲存储器中的所述线失效。过程360接着返回到框362。
[0048]返回到框372,如果所述线被标记上相同地址,则过程360前进到框380。在框380处,不采取动作,并且PXl和PX2都不改变高速缓冲存储器状态。过程360接着返回到框362。
[0049]在替代实施例中,可以通过在现有总线命令中包
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1