为了清楚地指出本发明的一些新颖的特点,在下面的讨论中将省略或仅
简要地说明信息处理系统中那些对本领域的专家来说是显而易见的普通的
特点。假定本领域的专家都熟悉多用户、多处理器操作系统,特别是这种
操作系统对存储器管理的要求,包括虚拟存储、处理器调度、进程和处理
器的同步装置、消息传递、普通设备驱动程序、终端和网络支持、系统初
始化、中断管理、系统调用设备、以及管理设备等。
现在参见图1说明一个便于实施本发明的数据处理系统。多处理系统
100包括一些局部系统总线108.1、108.2等,每一个局部系统总线,例如
总线108.1上有一些处理单元102.1、104.1、106.1等,还有一个处理器
节点控制器(或“总线适配器”)130.1与其相连。(当提到几个有相似的
编号的单元例如系统总线108.1、108.2等时,这些单元可以整体地或单个
地提及而不带后缀,例如“各系统总线108”或“某一系统总线108”)。
各处理单元102、104、106等可以包括一个处理器和一个高速缓冲存储
设备,但在这里可以简单地称为一个“处理器”。如果有局部存储器的话,
节点控制器130包括一个在该局部总线上的系统存储器110用的目录。系
统总线108通过一个节点控制器130耦合到一个互连装置140,节点控制
器130在NUMA结构中将总线108连到其他各总线108,而在存储器目录
结构中借助它们所包含的目录连到存储单元150。
现在参阅图2,一个局部系统总线108可操作地连到一些处理单元
102,104,106直到处理单元N。系统存储器110也连到该系统总线108。在
这例示的实施例中,系统总线108除其他装置外还包括一个5位的传输类
型(“TT”)总线221、一个64位的地址总线222、一个128位的数据
总线224,一个8位数据标志(“DTag”)总线226、一个6位地址响应
(“AResp”)总线227以及一个1位的高速缓冲存储器数据(“DCache”)
总线228。系统单元102-110在节点控制器130的控制下运行,后者通
过点到点的连线(图中未示出)与连到系统总线108上的各单元102-110
相互通信。节点控制器130在132处耦合到其他各总线及设备(见图1)。这
样,参阅图1,一个耦合到局部的系统总线108.1的处理器102.1可以通过
节点控制器130.1与局部总线108.1以外的设备通信,例如耦合到其局部总
线108.2的处理器102.2,耦合到局部总线108.3的存储器110.3,以及耦
合到互连设备140的存储器150.1等。
访问总线108的各种请求和允许都是由节点控制器130控制的。总线设
备之一,例如处理器102,可以通过一个点对点的连接(图中未示出)请
求节点控制器允许它在总线108上进行一个操作。当得到从控制器130来
的总线允许后,处理器102就将一个地址,包括用来标识处理器102为请
求设备的操作标志发到总线108上。
为尽量增加总线上所挂的设备数和总线频率,并允许以CMOS逻辑器
件直接挂到总线108上,从总线设备发出的各种状态和相关性响应信号都
是从每一个总线设备单向地驱动入一个公共的收集点,例如节点控制器
130,它把所有的响应组合起来,然后将组合响应返回到每一个请求总线的
设备。节点控制器130也收集关于位于请求设备102的总线108以外的远
程存储器150或存储器110的相关性信息。因为各总线设备可能给出不同
响应信号,节点控制器130的组合逻辑也把各个响应按优先级排队。这些
优先级在这里叙述的表中已示出。
参阅图3,处理器102可以把地址A发送到总线108上。经过一个固定
的时间后,状态信息,即流程控制和错误状态将在流程控制状态响应窗A
(标为“状态A”)期间内返回到处理器102。处理器102还可以等待另
一个固定的但可设置的相关性信息时间量。从系统100内的各种其他总线
设备发出的相关性信息也可以由节点控制器130在地址响应窗A(标为“监
听A”)期间内通过AResp总线227返回到处理器102。这种作为其他总
线设备的典型的监听操作的结果而产生的相关性信息向处理器102表明所
请求的数据的最新版本位于何处。例如,如果处理器104确定它具有以改
写的形式存在的所请求的数据,它就将通知处理器102它具有所请求的数
据的最新版本而系统存储器110并不具有最新的版本。把地址响应窗放在
发地址和请求码后一个可设置的时钟周期数内允许有不同的而且较长的访
问时间以便在系统100的各个不同总线设备中查找高速缓冲存储器目录。
表A举例列出了在一个可行实施例中相关性消息的编码。
表A:
监听(相关性)消息编
码
优先级
定义
000
保留
001
保留
010
5
RemStat
011
3
重做
100
1
再试
101
2
改写
110
4
共享
111
5
空或清(非改写或共
享)
注意,表中包含了返回的相关性消息的优先级。系统控制器130首先接
受从各个总线设备来的返回消息,再利用这种优先级确定应该将其中哪一
个返回消息送到处理器102。例如,如果总线设备104返回一个“改写
(Modified)”消息,优先级为2(见表A),而总线设备106返回一个优先
级为3的“重做(ReRun)”消息,这时控制器130就可能将“Modified”相
关性响应消息发送出去。
表A中有三种响应可以解决在不扩展的地址响应窗期间内的相关性问
题。Modified响应用来向发请求的设备,例如处理器单元102表明在某一
本地处理器单元104、106等中的高速缓冲存储器中存有一个改变过的缓
冲数据。Shared响应表明数据存在在一个或多个本地高速缓冲存储器中,
但没有改变过。Null响应表明数据既不在本地高速缓冲存储器中也不在远
程高速缓冲存储器中,而是在一个本地存储器中。
表A的另外三种响应扩展了地址响应窗。Retry响应用于指示相关性碰
撞,请求设备应在其后重新发出该操作。当离开本地总线时,要使用ReRun
响应和RemStat响应。
图4和图5表示在T1、T2等时间间隔内在系统总线108中的各总线上
建立的各种信号。在图4以及图5中,所表示的各时间间隔不必要以持续
时间或其间的间隔时间来标度。
图4表示由一个ReRun响应引起的扩展地址响应窗的执行过程。在T1
时刻,一个处理器,例如处理器102,发出一个要求相关性信息的读操作,
包括它在TT总线221上放置一个读信号以及在地址总线222上给出一个地
址和标志。在读请求之后某一预置的地址响应窗期间(时间间隔T2)内,
节点控制器130在AResp总线227上设置一个ReRun信号。ReRun响应表
明节点控制器130将在以后再发一个ReRun请求,这使发请求的设备102
在此之前可以从作进一步动作以得到相关性信息的任务中解脱出来。一旦
从非本地的数据源得到相关性信息,控制器130在T3时刻在DTag总线226
上设置原来由请求设备102建立的动作标志,并在TT总线221上建立
ReRun请求,以此向请求设备102发ReRun请求。作为对控制器130的响
应,处理器102在T4时再次发出读操作,同时也将地址总线222上的某一
位(“R位”)置位,控制器130在预置的地址响应窗(时间间隔T5)期间
在AResp总线227上放置相关性信息。当得到所请求的数据后,在读数期
间(时间间隔T6)内,在DTag总线上的动作标志置位,数据被放置到数
据总线224上。
图5表示由一个RemStat响应信号引起的扩展地址响应窗的执行过程。
在T1时刻,一个处理器,例如处理器102,发出一个要求相关性信息的读
操作,包括它在TT总线221上放置一个读信号以及在地址总线222上给出
一个地址和标志。在读请求之后某一预置的地址响应窗(时间间隔T2)内,
节点控制器130在AResp总线227上设置一个RemStat信号。RemStat响
应表明系统控制器130将在以后向发请求的处理器102返回所请求的数据
以及数据的相关性信息,使发请求的设备102从作进一步的动作以得到相
关性信息的任务中解脱出来,也大地减小了等待时间。
如相关的美国专利申请“在一个具有交错高速缓冲存储器的系统中确定
数据源的系统和方法”,序号08/317,256(H29-94-034)所述,在本
发明之前,DCache总线用来传送DCache信号以表明数据是从一个交错高
速缓冲存储设备而不是从系统存储器传送来的,而且在这种情况下已由高
速缓冲存储设备驱动。因为当进行非本地总线的读操作时,对这样的高速
缓冲存储器交错,DCache信号并不置位,因而根据本发明能够用来传送相
关性信息。
当处理器102有一个挂起的请求,例如请求读某一数据,处理器102在
每个时钟周期监视DTag总线。一旦节点控制器130得到了所请求的数据及
其相关性信息,节点控制器130将DTag总线226上标识请求设备的各动作
标志信号置位,还把各数据信号放置在数据总线224上,将相关性信息信
号放在DCache总线228。在优选的实施例中,标志,数据和相关性信息都
是在同一时钟周期(时间间隔T3)建立的。在发出动作标记的周期(即时间
间隔T3),处理器102检测到DTag的标记,并作出响应,把数据总线224
上的数据信号以及DCache总线上的相关性信号读入,不必经受等待从节点
控制器130发出的ReRun操作,然后发出一个附加的请求并等待一个地址
响应窗以读出所请求的信息这一过程所引起的等待时间。
现在参阅图6A到6B,它表示信息处理系统100所进行的操作的流程
图。具体地说,图6A和6B的流程图表示由优选实施例中处理器节点控制
器130等总线设备进行的操作。图6A和6B所示的操作不一定要按所示的
顺序进行。对图6A,操作从框400开始并进入框402,在这里控制器130
分析那些指向局部总线108以外的总线操作。例如对处理器102.1,总线
108.1是本地的,这样,处理器102.1要从位于总线108.2上的存储器110.2
或从存储器150读取数据的操作将是一个指向局部总线108.1以外的总线操
作。
然后,这一总线操作将继续进入判断框404,如果不要求相关性响应,
则控制器130逻辑转移到框406,(在这种情况下,对本发明来说分析过
程就已经完成,见框408)。如果要求相关性响应,则转移到框410。
根据框410的判定,控制器130逻辑转移到框412做读操作,或转移到
框414做其他操作。对读操作,控制器130在正常的地址响应窗内向请求
设备返回一个RemStat响应(框412)。对非读操作,控制器130在正常
的地址响应窗内向请求设备返回一个ReRun响应(框414)。然后控制器
130将请求设备产生的关于本操作的标志保存起来(框416),从而完成操
作的本阶段的分析(框418)并把操作转送到一个远程总线存储器。
如图6B所示,当控制器130逻辑接收到一个信号表明远程操作已经结
束(框430),它就接下去判断该操作是否为一个读操作(框432)并相
应地进行转移。如果是读操作(框434)则控制器130把数据和原有的标
志一起返回。如果相关性状态为Shared,则控制器130在发出数据和DTag
信号的同时也在Dcache总线上建立一个信号。为表示一个空的(Null)相关
性状态,则不在DCache总线上建立信号。就本实施例而言,控制器130
为返回一个外部读操作所做的响应就完成了(框436)。为返回一个不是
读的外部操作,控制器130发出一个ReRun请求并建立各DTag信号(框
438)。然后,当原请求设备再次发出该非读操作并在地址总线上建立R
位信号以表明这是重做的返回操作时,控制器130在正常地址响应窗内返
回相关性响应信号(框440)。然后如果该操作是一个“读并准备改写
(RWITM)”(框442),则控制器130在数据总线224上发出数据信号并
把DTag总线226上的标志置位(框444),从而从本实施例的角度看完成
了该操作。
现在参阅图6c,它表示消息处理系统100所进行的附加操作的流程图。
具体地,图6c中的流程图说明由一个总线主设备,例如本可行实施例中的
处理器102所进行的操作。图6c中所示的操作不一定要按照所指出的顺序
执行。
如框460所示,主设备102发出一个读操作并接收一个相关性响应。然
后主设备102判定所接收到的相关性响应的类型。如果响应表明所请求的
数据为一“共享(Shared)”状态(框462),这意味着数据是在本地总线108
上的存储器110中,也在该总线108的其他处理器104、106等的高速缓
冲存储器中,但是在高速缓冲存储器中的数据还没有改动过。因此,主设
备102等待那些为主设备102标志的数据,并在高速缓冲存储器中标记这
些数据为共享的(框464)。在这种情况下,就现在进行的说明而言,主
设备的处理过程就结束了(框466)。
如果响应表明为“改写(Modified)”状态(框468),这意味着数据在
本地总线108上的存储器110中,也在本地总线108上的其他处理器104、
106等的高速缓冲存储器中,而且在高速缓冲存储器中的数据已经改写过。
因此,主设备102等待带有它的标志的数据(框470)。在这种情况下,
对读请求的响应将来自一个高速缓冲存储器以及另一个存储器110,首先
接收到的数据将取决于存储器110和高速缓冲存储器之间的竞争。所以,
为了保证所用的数据的准确性,主设备102等待高速缓冲存储器的带标记
的数据版本,它和置位的Dcache信号一起返回。然后主设备在高速缓冲存
储器中标志该数据为“共享(Shared)”的(框470),就本说明而言,操作
结束。
如果响应表明为“空(Null)”状态(框472),这意味着数据只存在本
地总线108上的存储器110中。因此,主设备102等待带标志的数据,然
后在高速缓冲存储器中把数据标记为“专用(exclusive)”的(框474),就
本说明而言,操作结束(框466)。
如果响应表明为“Remstat”状态(框476),这意味着数据既不在本
地总线的存储器110中也不在本地的高速缓冲存储器中。因为在这种情况
下,请求设备102将只有通过处理器节点控制器130才能接收到响应,在
本地存储器110和本地高速缓冲存储器之间将没有竞争。所以不必要再返
回一个“改写(Modified)”型相关性响应,只剩下“专用(exclusive)”状态
或“共享(Shared)”状态为必要的相关性响应,这样,相关性响应可以作为
一个数字逻辑信号在一根单线上建立。相应地,主设备102等待带标志的
数据,如果标志的数据和置位的DCache信号一起返回,则主设备102在高
速缓冲存储器中把数据标记为“共享(Shared)”的,否则标记为“专用
(exclusive)”的(框478)并结束操作(框466)。
如果主设备102判定响应并不是“RemStat″状态,它就再判定是否为”
ReRun″状态(框480)。如果是“ReRun”状态,主设备把R位和标志置
位并重新发读信号(框482),否则主设备重发读操作但R位不置位(框
484)。
虽然已经对本发明及其优点作了详细的说明,应该理解到此中还能够作
各种改变、替代和交换而不偏离所附的权利要求中规定的本发明的本质和
范围。