远程节点读取本地内存维护方法及其应用装置的制作方法

文档序号:7926595阅读:138来源:国知局
专利名称:远程节点读取本地内存维护方法及其应用装置的制作方法
技术领域
本发明涉及一种分布式共享内存(Distributed Shared Memory,简称DSM)多处理器系统(multiprocessors system),且特别涉及一种在DSM系统架构下远程节点读取本地内存维护方法及其应用装置。
请参考

图1所示,其为一种分布式共享内存(Distributed Shared Memory,以下简称DSM)系统节点架构。一般来说,每一计算机系统架构皆可视为一个DSM系统节点100。如图所示,此计算机系统架构可为多处理器的计算机系统架构(当然,一个处理器的计算机系统架构亦为可行)。其具有多个处理器110、120,经由一系统总线160可连接至一内存控制芯片130,并由内存控制芯片130来控制本地内存(Local Memory)150与多个处理器110、120间的存取动作。而内存控制芯片130更可以连接至其它装置来达成基本的输入/输出(I/O)控制。通常,内存控制芯片130为北桥芯片。
其中,本地内存150被区分为多个本地内存线(Local Memory Line),以供存放数据。而处理器110及120可发出存取本地内存线的数据存取请求至内存控制芯片130并由内存控制芯片130达成本地内存数据线的数据存取。
在DSM系统节点架构下,此节点(以下皆称之为本地节点,Local Node)100与其它节点(以下皆称之为远程节点,Remote Node)经由一DSM控制器(以下简称DSM控制器)140来达成数据传送与接收。而DSM控制器140在此本地节点100内连接至系统总线160并且以一内部总线135连接至内存控制芯片130。
当处理器110、120需要读取远程节点的内存线的数据时,就必须利用本地节点100内的DSM控制器140来与远程节点内的DSM控制器(未绘示)沟通,进而达成存取远程节点内的内存线的数据。
由于每一个本地节点100均可与其它远程节点共享自己的本地内存150,故每一节点中必须具有一个储存区一致性对照表(Memory CoherencyDirectory)。此对照表是DSM控制器140用来记录本地内存中每一本地内存线的状态。当远程节点欲读取本地节点100的本地内存线的数据时,方可依据对照表中记录的本地内存线的状态,来决定读取动作如何进行,以确保读取正确数据。
请参考图2所示,其为根据公知储存区一致性对照表中针对本地内存线的状态图。图中显示,公知对照表将本地内存线区分为4种状态,分别说明如下HOME(本地)代表没有任何远程节点来读取此本地内存线的数据。
SHARED(共享)代表已有其它远程节点已读取本地内存线的数据,且此本地内存线的数据尚未被更改。
GONE(已更改)代表已有一远程节点已读取本地内存线的数据,且此本地内存线的数据已被远程节点所更改。
WASH(过渡)被更改过的本地内存线的数据由远程节点回传到本地节点的过渡状态。
接下来针对一个本地内存线的数据变化并配合这些状态的变动作一说明。在初始状态时,本地节点内的储存区一致性对照表中对应于此本地内存线的状态为HOME状态。在HOME状态之下,此本地节点内的处理器可以任意的存取此本地内存线的数据,并且此本地内存线内的数据仅存在于此本地节点内。
在HOME状态之下,如路径1所示,当远程节点发出远程读取(remote readline),代表远程节点要读取本地内存线的数据。此时,本地内存线的数据会被传送至远程节点,因此,本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME状态改为SHARED状态。亦即,在SHARED状态下,本地内存线的数据同时储存在本地节点以及远程节点。
在SHARED状态下,如路径2所示,当本地节点发出本地读取无效(localread invalidate)或者本地无效(local invalidate)时,代表本地节点要更改本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由SHARED状态改为HOME状态。在HOME状态之下,此本地节点内的处理器可以任意的存取此本地内存线的数据,并且此本地内存线内的数据仅存在于此本地节点内。而原储存于远程节点内的本地内存线的数据是旧的数据因此会变为无效。
在SHARED状态下,如路径4所示,当远程节点发出远程释放出此本地内存线的数据(Remote rollout of shared copy)时,代表远程节点放弃拥有此本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态也必须由SHARED状态改为HOME状态。在HOME状态之下,此本地节点内的处理器可以任意的存取此本地内存线的数据,并且此本地内存线内的数据仅存在于此本地节点内。
在SHARED状态下,如路径7所示,当远程节点发出远程无效(Remoteinvalidate)时,代表远程节点要更改此本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由SHARED状态改为GONE状态。在GONE状态之下,代表本地节点内的本地内存线的数据为旧的不正确的数据,并且正确的更改的本地内存线的数据现在储存在远程节点。
在HOME状态下,如路径6所示,当远程节点发出远程读取无效(Remoteread invalidate)时,代表远程节点要读取并更改此本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME状态改为GONE状态。在GONE状态之下,代表本地节点内的本地内存线的数据为旧的不正确的数据,并且正确的更改的本地内存线的数据现在储存在远程节点。
在GONE状态下,如路径8所示,当远程节点发出释出此本地内存线的数据(Remote rollout of modified copy)时,代表远程节点要将修改过后的本地内存线的数据释回至本地节点。本地节点内的储存区一致性对照表会将此本地内存线的状态由GONE状态改为HOME状态。此时,更改过后的本地内存线的数据又重新回到本地节点。
在GONE状态下,如路径5所示,当本地节点发出本地读取(Local readline)或者本地读取无效(Local read invalidate),代表本地节点要读取此本地内存数据线的数据或者读取之后要修改。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由GONE状态改为WASH状态。此WASH状态系代表本地内存线的数据由远程节点回传到本地节点的过渡状态。
在WASH状态下,如路径9所示,当本地节点发出本地读取并完成本地内存线的数据的接收(Completion of local read line),代表本地节点仅要读取此本地内存数据线的数据并不作修改。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由WASH状态改为SHARE状态。亦即,在SHARE状态下,本地内存线的数据同时储存在本地节点以及远程节点。
在WASH状态下,如路径10所示,当本地节点发出本地读取无效并完成本地内存线的数据的接收(Completion of local read invalidate)时,代表本地内存要读取此本地内存数据线的数据并作修改。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由WASH状态改为HOME状态。亦即,在HOME状态下,本地内存线的数据仅会储存在本地节点。
以上的描述即为公知DSM系统节点之间共享本地内存(local memory)的流程。故每一节点的DSM控制器必须维护一储存区一致性对照表(memorycoherency directory),此对照表用来记录本地内存中每一本地内存线(localmemorv line)的状态,当远程节点欲读取此本地节点的本地内存时,方可依据对照表中记录的本地内存线的状态,来决定读取动作如何进行,以确保读取正确数据。
然而,在公知的分布式共享内存多处理器系统中,在HOME状态下时。请参照图1,当远程节点要读取本地内存线的数据时,首先,本地节点100的DSM控制器140会在系统总线160发出一笔系统总线交易(System BusTransaction),用以询问此本地内存线的数据实际的位置所在。
(I)假设此本地内存线的数据系存在处理器110或120的高速缓存(cachememory)中,则处理器110或120会发出一快取命中(Hit)命令,并送出此本地内存线的数据至系统总线160,并且由内存控制芯片130写回本地内存150,同时,DSM控制器140亦由系统总线160接收此本地内存线的数据并且送至远程节点。而此时本地节点内的储存区一致性对照表会将此本地内存线的状态为SHRAE状态。
(II)假设此本地内存线的数据系储存于本地内存150内,则处理器110或120不会发出快取命中(Hit)命令,此时代表此内存数据线存在于本地内存150内。因此,DSM控制器140会利用内部总线135要求内存控制芯片130将本地内存线的数据送至DSM控制器140,之后送至远程节点。而此时本地节点内的储存区一致性对照表会将此本地内存线的状态为SHRAE状态。
由于本地节点内的储存区一致性对照表内记录的HOME状态,在远程节点要求读取本地内存数据线的数据时,没有办法得知此本地内存数据线的数据的正确储存位置(可能存在本地内存内、高速缓存内,或者二者)。故DSM控制器140必须发出一系统总线交易询问此本地内存线的数据实际的位置所在。而在上述(II)状况时,由于本地内存数据线的数据已经存在本地内存150内,而DSM控制器140仍需要发出一系统总线交易来确认此本地内存数据线的数据的储存位置。因此,这个系统总线交易不仅会增加系统总线160的工作量,并且会延迟读取本地内存线数据的时间。
为达上述及其它目的,本发明提供一种分布式共享内存系统节点,包括至少一处理器;系统总线耦接至至少一处理器;内存控制芯片,耦接至系统总线;本地内存,耦接至内存控制芯片,其中本地内存区分为多个本地内存线,以储存多笔数据;DSM控制器,耦接至系统总线;内部总线耦接于DSM控制器与内存控制芯片。其中,当远程节点要求读取本地内存内的特定本地内存线时,DSM控制器可判断特定本地内存线的最新数据是否位于本地内存内,并在最新数据位于本地内存内时,经由内部总线索取最新数据并送至远程节点。
为达上述及其它目的,本发明还提供一种远程节点读取本地内存维护方法,用于第一远程节点向本地节点要求读取本地内存线,至少包括下列步骤当该本地内存线系在HOME-N或者SHARED状态时,直接向本地内存接收本地内存线的数据并送至第一远程节点;当该本地内存线在GONE状态时,直接向第二远程节点读取本地内存线的数据并送至第一远程节点;以及,当该本地内存线系在HOME-M状态时,则在系统总线上发起一交易用以读取该本地内存线的数据,并由系统总线接收本地内存线的数据并送至该第一远程节点。
为达上述及其它目的,本发明还提供一种远程节点读取本地内存维护装置,用于第一远程节点向本地节点要求读取本地内存线,其特征在于,该维护装置至少包括该本地内存线HOME状态可分为HOME-N、HOME-M两个状态,在HOME-N或SHARED状态时,直接向本地内存接收本地内存线的数据并送至第一远程节点;该本地内存线在GONE状态时,直接向第二远程节点读取本地内存线的数据并送至第一远程节点;当该本地内存线在HOME-M状态时,在系统总线上发起一交易用以读取该本地内存线的数据,并由系统总线接收本地内存线的数据并送至该第一远程节点。
由上述的说明中可知,应用本发明所提供的分布式共享内存系统中远程节点读取本地内存维护方法及其应用装置,当远程节点发出本地内存线的读取请求时,DSM控制器可得知最新数据的储存位置,并在最短的时间之内将最新数据响应至远程节点,而无须再发出系统总线交易,以确认其实际储存位置,故可减少共享内存间的数据读取延迟。
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举一较佳实施例,并配合附图,作详细说明如下。
HOME-M代表没有任何远程节点来读取此本地内存线,且最新的本地内存线的数据不在本地内存内,而是在处理器的高速缓存内。
接下来针对一个本地内存线数据的变化并配合这些状态的转换作一说明。在初始状态时,本地节点(local node)内的储存区一致性对照表中对应于此本地内存线的状态为HOME-N状态。在HOME-N状态之下,此本地节点内的本地内存拥有最新的本地内存线的数据。
在HOME-N状态之下,如路径1所示,当远程节点发出远程读取(Remoteread line),代表远程节点要读取本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME-N状态改为SHARED状态。亦即,而在HOME-N状态下,DSM控制器可直接经由内部总线来向内存控制芯片要求本地内存线的数据并送至远程节点。因此,DSM控制器并不用发出系统总线交易。再者,在SHARED状态下,本地内存线的数据同时储存在本地节点以及远程节点。
在HOME-N状态之下,如路径2所示,当本地节点发出本地读取无效(Localread invalidate)或者本地无效(Local invalidate)时,代表本地节点的处理器要更改本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME-N状态改为HOME-M状态。在HOME-M状态之下,此本地节点内的处理器可以更改此本地内存线的数据,并储存在高速缓存内。
在HOME-N状态之下,如路径6所示,当远程节点发出远程读取无效(Remote read invalidate)时,代表远程节点要读取并更改此本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME-N状态改为GONE状态。在GONE状态之下,代表本地节点内的本地内存线的数据为旧的不正确的数据,并且最新的本地内存线的数据现在储存在远程节点。而在HOME-N状态下,DSM控制器可直接经由内部总线来向内存控制芯片要求本地内存线的数据并送至远程节点供的修改。因此,DSM控制器并不用发出系统总线交易。
在HOME-M状态之下,如路径1所示,当远程节点发出远程读取(Remoteread line),代表远程节点要读取本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME-M状态改为SHARED状态。亦即,在SHARED状态下,本地内存线的数据同时储存在本地节点以及远程节点。而在HOME-M状态下,DSM控制器必须发出系统总线交易使得处理器发出快取命中(Hit)命令并提供最新的本地内存线的数据至系统总线,用以储存至本地内存,同时DSM控制器亦会接收并送至远程节点。
在HOME-M状态之下,如路径6所示,当远程节点发出远程读取无效(Remote read invalidate)时,代表远程节点要读取并更改此本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME-M状态改为GONE状态。在GONE状态之下,代表本地节点内的本地内存线的数据为旧的不正确的数据,并且最新的本地内存线的数据现在储存在远程节点。而在HOME-M状态下,DSM控制器必须发出系统总线交易使得处理器发出快去命中(Hit)命令并提供最新的本地内存线的数据至DSM控制器并送至远程节点供之更改。
在HOME-M状态之下,如路径3所示,当本地节点发出本地读取(Local readline)时,代表本地内存线的数据由高速缓存写回本地内存。本地节点内的储存区一致性对照表会将此本地内存线的状态由HOME-M状态改为HOME-N状态。在HOME-N状态之下,此时,本地节点内的本地内存拥有最新的本地内存线的数据。
在SHARED状态下,如路径2所示,当本地节点发出本地读取无效(Localread invalidate)或者本地无效(Local invalidate)时,代表本地节点要更改本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由SHARED状态改为HOME-M状态。在HOME-M状态下,此本地节点内的处理器可以更改此本地内存线的数据,并储存在高速缓存内。
在SHARED状态下,如路径4所示,当远程节点发出远程释放出此本地内存线的数据(Remote rollout of shared copy)时,代表远程节点放弃拥有此本地内存线的数据。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态也必须由SHARED状态改为HOME-N状态。在此状态之下,本地内存线的数据系储存在本地节点的本地内存内。
在GONE状态下,如路径8所示,当远程节点发出释出此本地内存线的数据(remote rollout of modified copy)时,代表远程节点要将修改过后的本地内存线的数据释回至本地节点。本地节点内的储存区一致性对照表会将此本地内存线的状态由GONE状态改为HOME-N状态。修改过后的本地内存线的数据又重新回到本地节点的本地内存内。
在WASH状态下,如路径10所示当本地节点发出本地读取无效并完成本地内存线的数据的接收(Completion of local read invalidate)时,代表本地内存要读取此本地内存数据线的数据并作修改。此时,本地节点内的储存区一致性对照表会将此本地内存线的状态由WASH状态改为HOME-M状态。亦即,在HOME-M状态下,本地内存线的数据会被处理器更改并储存于高速缓存内。
上述为本发明将公知HOME状态改为HOME-M状态以及HOME-N状态之后,这二个新的状态与SHARED状态、GONE状态、以及WASH状态之间的关系。在HOME-N状态时,不论要跳至SHARED状态或者GONE状态,DSM控制器可直接要求内存控制芯片经由内部总线直接提供本地内存线的数据,并不需要再额外的发出系统总线交易来询问此本地内存线的数据的储存位置,因此可降低系统总线的使用率,提升本地节点的工作效能。至于SHARED状态、GONE状态、以及WASH状态之间的转换关系,则与公知相同不再赘述。
上述为节点中的储存区一致性对照表状态变化维护说明,配合参考此储存区一致性对照表,则DSM控制器可发展出如图4所示远程节点读取本地内存维护方法。首先,接收到来自远程节点发出的本地内存线的读取请求(S300)。然后判断对照表中的本地内存线状态是否为HOME-N状态或者SHARED状态(S305)。
当在HOME-N状态或者SHARED状态时,代表本地内存线的数据正储存于本地内存中,因此,直接经由内部总线向本地内存要求此本地内存线的数据(S310)并响应远程节点此本地内存线的数据(S315)。
当现在并不在HOME-N状态或者SHARED状态时,则判断对照表中的本地内存线状态是否为GONE状态(S315)。当在GONE状态时,代表本地内存线的数据正储存于其它远程节点中,因此,直接向拥有本地内存线的数据的远程节点读取更改后的此本地内存线的数据并存回本地内存(S325),并响应远程节点此本地内存线的数据(S315)。
当现在并不在GONE状态时,则判断对照表中的本地内存线状态是否为HOME-M状态(S330)。当在HOME-M状态时,代表本地内存线的数据正储存于处理器的高速缓存内,因此,直接发出系统总线交易,当处理器响应此本地内存线的数据回本地内存时,撷取此本地内存线的数据(S335),并响应远程节点此本地内存线的数据(S315)。
当现在并不在HOME-M状态时,则判断对照表中的本地内存线状态为WASH状态(S340)。由于WASH状态代表被更改过的本地内存线的数据由远程节点回传到本地节点的过渡状态。因此回到S305步骤,重新判断其变更的状态,再依据其状态决定进行的读取动作程序。
综上所述,本发明至少具有以下的优点1.当远程节点欲读取本地内存时,在MOME-N的状态下无须重复经由系统总线发出确认本地内存线的数据位置的系统总线交易,可节省系统总线的负担,进而增进其效能。
2.可降低远程节点读取本地内存的读取延迟。
虽然本发明已以一较佳实施例公开如上,然其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可作各种等效变动与润饰,因此本发明的保护范围以权利要求为准。
权利要求
1.一种远程节点读取本地内存维护方法,用于一远程节点向一本地节点要求读取一本地内存线,其特征在于,所述方法至少包括下列步骤判断该本地内存线的一最新数据是否位于该本地节点的一本地内存内;以及当该最新数据位于该本地内存内时,经由一内部总线索取该最新数据并送至该远程节点。
2.如权利要求1所述的远程节点读取本地内存维护方法,其特征在于,所述方法还包括下列步骤当该最新数据不位于该本地内存内时,判断该最新数据是否位于该本地节点内;以及当该最新数据位于该本地节点内时,经由一系统总线发出一系统总线交易来索取该最新数据并送至该远程节点。
3.如权利要求1所述的远程节点读取本地内存维护方法,其特征在于,判断该最新数据的位置由维持储存区一致性对照表来决定。
4.一种分布式共享内存系统节点,其特征在于,包括至少一处理器;一系统总线耦接至该至少一处理器;一内存控制芯片,耦接至该系统总线;一本地内存,耦接至该内存控制芯片,其中该本地内存区分为多个本地内存线,以储存数笔数据;一DSM控制器,耦接至该系统总线;一内部总线耦接于该DSM控制器与该内存控制芯片;其中,当一远程节点要求读取该本地内存内的一特定本地内存线时,该DSM控制器可判断该特定本地内存线的一最新数据是否位于该本地内存内,并在该最新数据位于该本地内存内时,经由该内部总线索取该最新数据并送至该远程节点。
5.如权利要求4所述的分布式共享内存系统节点,其特征在于,该DSM控制器判断出该最新数据不位于该本地内存内时,可再判断该最新数据是否位于该至少一处理器内,并在该最新数据位于该至少一处理器内时,经由该系统总线发出一系统总线交易来索取该最新数据并送至该远程节点。
6.如权利要求4所述的分布式共享内存系统节点,其特征在于,该DSM控制器可维护一储存区一致性对照表用以判断该最新数据的位置。
7.一种远程节点读取本地内存维护方法,用于一第一远程节点向一本地节点要求读取一本地内存线,其特征在于,所述方法至少包括下列步骤当该本地内存线在一HOME-N以及一SHARED状态其中之一时,直接由一本地内存接收该本地内存线的数据并送至该第一远程节点;当该本地内存线在一GONE状态时,直接向一第二远程节点读取该本地内存线的数据并送至该第一远程节点;以及当该本地内存线在一HOME-M状态时,在一系统总线上发起一交易用以读取该本地内存线的数据,并由该系统总线接收该本地内存线的数据并送至该第一远程节点。
8.如权利要求7所述的远程节点读取本地内存维护方法,其特征在于,该HAME-N、该HOME-M、该SHARED以及该GONE状态储存在一储存区一致性对照表。
9.一种远程节点读取本地内存维护装置,用于第一远程节点向本地节点要求读取本地内存线,其特征在于,该本地内存线HOME状态可分为HOME-N、HOME-M两个状态,在HOME-N或SHARED状态时,直接向本地内存接收本地内存线的数据并送至第一远程节点;该本地内存线在GONE状态时,直接向第二远程节点读取本地内存线的数据并送至第一远程节点;当该本地内存线在HOME-M状态时,在系统总线上发起一交易用以读取该本地内存线的数据,并由系统总线接收本地内存线的数据并送至该第一远程节点。
全文摘要
本发明涉及一种分布式共享内存系统中远程节点读取本地内存维护方法及其应用装置,本发明将原分布式共享内存系统节点(DSM Node)中维护的储存区一致性对照表(memory coherency directory)变更其区分种类,并由HOME状态,变更HOME-N状态以及HOME-M状态。当远程节点发出本地内存线的读取请求时,DSM控制器可得知由储存区一致性对照表得知此本地内存线的最新数据的储存位置,并在最短的时间内将最新数据响应至远程节点,而无须再发出系统总线交易,以确认其实际储存位置,故可减少共享内存间的数据读取延迟,以增进系统效能。
文档编号H04L12/40GK1391176SQ0214032
公开日2003年1月15日 申请日期2002年7月1日 优先权日2002年4月9日
发明者陈维龙, 赖瑾, 曾纹郁 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1