CN101539888A - 信息处理装置、存储器控制方法以及存储器控制装置 - Google Patents
信息处理装置、存储器控制方法以及存储器控制装置 Download PDFInfo
- Publication number
- CN101539888A CN101539888A CN200910005537A CN200910005537A CN101539888A CN 101539888 A CN101539888 A CN 101539888A CN 200910005537 A CN200910005537 A CN 200910005537A CN 200910005537 A CN200910005537 A CN 200910005537A CN 101539888 A CN101539888 A CN 101539888A
- Authority
- CN
- China
- Prior art keywords
- node
- request
- overall situation
- subordinate
- memory
- 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
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/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种信息处理装置、存储器控制方法以及存储器控制装置。信息处理装置包括多个节点(SB0、SB1),其中每一个节点具有主存储器(30到33)和包括高速缓存存储器(10a到17a、10b到17b)的处理器(10到17)。所述节点(SB0、SB1)中至少一个节点的系统控制器(50-1、50-2)被设计为包括保持单元(57-1、57-2),其保持关于存在于其隶属节点(SB0、SB1)的主存储器(30到33)中的原始数据的特定信息,其中与原始数据相对应的缓存数据不存在于其隶属节点(SB0、SB1)之外的各节点(SB0、SB1)的高速缓存存储器(10a到17a、10b到17b)中。采用这种结构,缩短了每个存储器访问的等待时间,并提高了每个侦听操作的吞吐量。
Description
技术领域
本发明涉及一种用于执行从信息处理装置的中央处理单元(CPU)发出的存储器访问请求的技术,该信息处理装置包括两个或更多个CPU,每个CPU都具有高速缓存存储器。
背景技术
一般来说,包括多个CPU和输入/输出(I/O)装置的大规模信息处理装置(例如,大规模SMP(对称多处理器,symmetric multiple processor)信息处理装置)具有系统板,每个系统板包括具有高速缓存存储器的多个CPU、系统控制器和多个I/O装置,以便改善处理能力。
在这种大规模信息处理装置中,进行控制操作以保证各系统板之间的高速缓存一致性(一致控制操作)。因此,在各个系统板的系统控制器之间进行请求广播和侦听结果交换(参见,例如,JP-A 2006-72509和JP-A2006-202215)。
然而,在大规模信息处理装置中,当装置尺寸较大时,系统控制器之间的物理距离较长。当装置结构被扩展时,每个存储器访问的等待时间变得更长,并且提高整个信息处理装置的性能变得困难。此外,随着在信息处理装置中安装很多的I/O装置,侦听请求的数量相应地变得更多。于是,保证广播总线和每个侦听控制单元的合理吞吐量也变得困难。
根据一种开发来处理上述问题的已知技术,当安装在本地系统板中的各CPU中的一个CPU的高速缓存存储器中存在目标地址处的数据时,通过跳过在系统板间进行的侦听操作并在同一本地系统板上的各CPU之间进行数据通信来缩短访问等待时间。
图12是示出传统大规模信息处理装置100的结构的框图。如图12所示,传统大规模信息处理装置100包括系统板(节点)A和B(在本例中有两个系统板)。系统板A包括CPU 10和11、I/O装置20和21、以及主存储器30和31。系统板B包括CPU 12和13、I/O装置22和23以及主存储器32和33。
CPU 10到13中的每一个CPU都包括多级高速缓存存储器(在本例中是两级)。具体来说,CPU 10包括第一级高速缓存存储器10a和第二级高速缓存存储器10b,而CPU 11包括第一级高速缓存存储器11a和第二级高速缓存存储器11b。类似地,CPU 12包括第一级高速缓存存储器12a和第二级高速缓存存储器12b,且CPU 13包括第一级高速缓存存储器13a和第二级高速缓存存储器13b。
系统板A还包括系统控制器40-1,系统控制器40-1对设置在系统板A中的存储器(在本例中为第一级高速缓存存储器10a和11a、第二级高速缓存存储器10b和11b以及主存储器30和31)进行通信控制。类似地,系统板B还包括系统控制器40-2,系统控制器40-2对设置在系统板B中的存储器(在本例中为第一级高速缓存存储器12a和13a、第二级高速缓存存储器12b和13b以及主存储器32和33)进行通信控制。
采用这种配置,系统控制器40-1和40-2共享对设置在信息处理装置100中的存储器(在本例中为第一级高速缓存存储器10a到13a、第二级高速缓存存储器10b到13b以及主存储器30到33)的通信控制。此外,除了系统控制器40-1和40-2对不同存储器进行通信控制之外,系统控制器40-1和系统控制器40-2具有相同的结构。系统控制器40-1和系统控制器40-2的连接方式使得系统控制器40-1和40-2可以彼此通信。
系统控制器40-1包括高速缓存TAG 46-1、请求发送/接收单元41-1、本地侦听控制单元42-1、广播控制单元43-1、全局侦听控制单元44-1以及存储器访问发布单元45-1。
高速缓存TAG 46-1注册并保持用于识别其隶属节点(subject node)(在本例中为系统板A;下同)下的高速缓存存储器(在本例中为第一级高速缓存存储器10a到11a和第二级高速缓存存储器10b到11b;下同)中存在的高速缓存数据的特定地址信息。
请求发送/接收单元41-1接收存储器访问请求以访问主存储器(或本地存储器)。
具体来说,在从CPU 10生成了存储器访问请求、并且在第一级高速缓存存储器10a和第二级高速缓存存储器10b中未命中响应于该存储器访问请求要检测的数据的情况下,请求发送/接收单元41-1从CPU 10接收该存储器访问请求(读请求)。然后,请求发送/接收单元41-1将所接收到的存储器访问请求发送到下面说明的本地侦听控制单元42-1。然后,请求发送/接收单元41-1从稍后说明的本地侦听控制单元42-1接收全局侦听请求,并将该全局侦听请求发送到稍后说明的广播控制单元43-1。全局侦听请求被发出以在设置在信息处理装置100的所有高速缓存存储器(在本例中为第一级高速缓存存储器10a到13a和第二级高速缓存存储器10b到13b;下同)中搜索要响应于存储器访问请求来访问的数据(下文中简称为目标数据)。
本地侦听控制单元42-1在其隶属节点下的高速缓存存储器中搜索存储器访问请求的目标数据,并且基于搜索结果确定要响应于存储器访问请求进行的操作。
具体来说,当从请求发送/接收单元41-1接收到存储器访问请求时,本地侦听控制单元42-1通过在其隶属节点下的高速缓存TAG 46-1中搜索(侦听)用于识别该存储器访问请求的目标数据的访问目标地址信息(下文中简称为目标地址信息),来响应于发出了该存储器访问请求的CPU 10到13进行操作。
作为搜索的结果,例如,在本地侦听控制单元42-1隶属节点下的高速缓存TAG 46-1中存在存储器访问请求所需的内容的情况下,本地侦听控制单元42-1基于该搜索结果确定响应于存储器访问请求的操作。要响应于存储器访问请求进行的操作是:发出读请求以读取主存储器中的数据、向CPU发出清除请求以清除高速缓存存储器中的数据、等等。作为搜索的结果,例如,在其隶属节点下的高速缓存TAG 46-1中未命中存储器访问请求所需的内容的情况下,本地侦听控制单元42-1取消本地侦听控制操作,并向请求发送/接收单元41-1发送全局侦听请求。
广播控制单元43-1向其隶属节点下的请求发送/接收单元41-1发送全局侦听请求,并从其隶属节点下的请求发送/接收单元41-1接收全局侦听请求,并且也向其它节点(在本例中为系统板B,下同)下的系统控制器40-2发送全局侦听请求,并从所述其它节点下的系统控制器40-2接收全局侦听请求。
具体来说,当从请求发送/接收单元41-1接收到全局侦听请求时,广播控制单元43-1将该全局侦听请求发送到稍后说明的全局侦听控制单元44-1,并将所述全局侦听请求输出(广播)到其它节点的系统控制器40-2。当从其它节点的系统控制器40-2接收到全局侦听请求时,广播控制单元43-1将所述全局侦听请求发送到全局侦听控制单元44-1。
全局侦听控制单元44-1在其隶属节点下的高速缓存存储器中搜索目标数据,并与其它节点下的系统控制器40-2交换搜索结果。基于其它节点下的系统控制器40-2中的搜索结果以及其自身的搜索结果,全局侦听控制单元44-1确定要响应于存储器访问请求进行的操作。
具体来说,当从广播控制单元43-1接收到全局侦听请求时,全局侦听控制单元44-1在其隶属节点下的高速缓存TAG 46-1中搜索与全局侦听请求的目标数据相对应的目标地址信息,作为响应于发出了存储器访问请求的CPU而进行的操作。
同时,当其它节点的全局侦听控制单元44-2经由该其它节点的广播控制单元43-2从其隶属节点的广播控制单元43-1接收到全局侦听请求时,全局侦听控制单元44-2在该其它节点下的高速缓存TAG 46-2中搜索与全局侦听请求的目标数据相对应的目标地址信息。之后,全局侦听控制单元44-1和44-2交换并结合高速缓存TAG搜索结果(由全局侦听控制单元44-1进行的高速缓存TAG 46-1的搜索结果,以及由全局侦听控制单元44-2进行的高速缓存TAG 46-2的搜索结果),以便合并(merge)高速缓存状态。基于高速缓存状态合并的结果,其隶属节点的全局侦听控制单元44-1确定要响应于存储器访问请求进行的操作。
例如,如果高速缓存状态的合并结果表明,从CPU 10a发出的存储器访问请求的目标数据存在于其隶属节点下的主存储器30中,则全局侦听控制单元44-1向其隶属节点下的存储器访问发布单元45-1发出存储器访问请求。如果高速缓存状态的合并结果表明,从CPU 10a发出的存储器访问请求的目标数据存在于其它节点下的CPU 12中的高速缓存存储器12a中,则全局侦听控制单元44-1向该其它节点下的CPU 12a发出存储器访问请求。
存储器访问发布单元45-1基于响应于由本地侦听控制单元42-1或全局侦听控制单元44-1所确定的存储器访问请求而进行的操作来执行存储器访问请求。
除了通信控制操作是相对于第一级高速缓存存储器12a和13a、第二级高速缓存存储器12b和13b以及主存储器32和33进行的之外,设置在系统控制器40-2中的高速缓存TAG 46-2、请求发送/接收单元41-2、本地侦听控制单元42-2、广播控制单元43-2、全局侦听控制单元44-2以及存储器访问发布单元45-2分别与系统控制器40-1的高速缓存TAG 46-1、请求发送/接收单元41-1、本地侦听控制单元42-1、广播控制单元43-1、全局侦听控制单元44-1以及存储器访问发布单元45-1相同。
图13和图14是用于说明传统大规模信息处理装置100的操作的时间图。
下面说明了对只存在于本地存储器中而不存在于设置于传统大规模信息处理装置100中的任何高速缓存存储器中的数据进行访问而要进行的操作流程。
如图13所示,首先,从CPU 10发出存储器访问请求(本例中的数据找取请求(如图13中的“FCH-REQ”所示);下文中称作找取请求)(参见t1),且请求发送/接收单元41-1从CPU 10接收找取请求(参见t2)。然后,本地侦听控制单元42-1在其隶属节点下的高速缓存TAG 46-1中搜索找取请求的目标地址信息(参见t3)。
如果响应于存储器访问请求所进行的搜索的结果表明,在其隶属节点下的高速缓存TAG 46-1中未命中该目标地址信息(如图13中的“结果=未命中”所示),则本地侦听控制单元42-1取消本地侦听控制,并向请求发送/接收单元41-1发送全局侦听请求。当广播控制单元43-1经由请求发送/接收单元41-1从本地侦听控制单元42-1接收到全局侦听请求时,广播控制单元43-1将该全局侦听请求发送到全局侦听控制单元44-1(参见t4),并向其它节点的系统控制器40-2广播全局侦听请求(参见t5)。
当从广播控制单元43-1接收到全局侦听请求时,其隶属节点的全局侦听控制单元44-1在其隶属节点下的高速缓存TAG 46-1中搜索与全局侦听请求的目标数据相对应的目标地址信息(参见t6)。同时,当其它节点的全局侦听控制单元44-2从广播控制单元43-1接收到全局侦听请求时,全局侦听控制单元44-2在该其它节点下的高速缓存TAG 46-2中搜索与全局侦听请求的目标数据相对应的目标地址信息(参见t7)。各个节点下的全局侦听控制单元44-1和44-2相互交换对高速缓存TAG 46-1和46-2进行搜索的结果,并将各结果结合起来以便合并高速缓存状态。基于高速缓存状态合并的结果,全局侦听控制单元44-1确定响应于找取请求的最终操作(参见t8)。
如果从各高速缓存存储器的任何一个中都没有检测到找取请求的目标数据,并且全局侦听控制单元44-1确定要从其隶属节点下的主存储器30中读取与找取请求的目标数据相对应的原始数据,则存储器访问发布单元45-1针对该找取请求向其隶属节点下的主存储器30发出读请求(如图13中的“MS-RD-REQ”所示)(参见t9)。然后,从隶属节点下的主存储器30中将与找取请求相对应的原始数据读入系统控制器40-1中(如“RD”和“MIDQ”所示;参见图13中的t10)。之后,存储器访问发布单元45-1将从其隶属节点下的主存储器30作为找取数据响应(如图13中的“FCH-DATA”所示)读取的原始数据发送到CPU 10(参见t11),且找取请求的执行完成(参见t12)。
接下来,说明对存在于传统大规模信息处理装置100中的其隶属节点的高速缓存存储器中的高速缓存数据进行访问所要进行的操作流程。
如图14中所示,首先,从CPU 10发出找取请求(参见t1),且请求发送/接收单元41-1从CPU 10接收找取请求(参见t2)。然后,本地侦听控制单元42-1在其隶属节点下的缓存TAG 46-1中搜索找取请求的目标地址信息(参见t3)。
如果响应于存储器访问请求所进行的搜索的结果表明,在其隶属节点下的缓存TAG 46-1中命中了该目标地址信息(如图14中的“结果=命中”所示),则本地侦听控制单元42-1基于搜索结果确定响应于找取请求的最终操作(参见t4)。因此,全局侦听控制单元42-1省略全局侦听控制操作。
如果清楚找取请求的目标数据存在于隶属节点下的CPU 11中的第一级高速缓存存储器11a中,并且本地侦听控制单元42-1确定要从第一级高速缓存存储器11a读取与所述找取请求的目标数据相对应的高速缓存数据,则本地侦听控制单元42-1针对所述找取请求向包括第一级高速缓存存储器11a的CPU 11发出读请求(如图14中的“CPBK-REQ”所示)(参见t5)。然后,将与找取请求相对应的高速缓存数据从第一级高速缓存存储器11a(CPU 11)读入系统控制器40-1(如“RD”和“MIDQ”所示;参见图14中的t6)。之后,本地侦听控制单元42-1将从第一级高速缓存存储器11a中作为找取数据响应(如图14中的“FCH-DATA”所示)读取的高速缓存数据发送到CPU 10(参见t7),且找取请求的执行完成(参见t8)。
如上所述,在传统大规模信息处理装置100中,只在下列(1)到(6)的情形中,才省略全局侦听控制操作并且对隶属节点下的主存储器进行访问。
(1)所发出的存储器访问请求为命令找取请求,并且在隶属节点下的高速缓存TAG 46-1中命中了命令找取请求的目标数据,该目标数据为共享类型(简单地从设置在信息处理装置100中的高速缓存存储器的一个中找取目标数据的共享找取请求)。
(2)所发出的存储器访问请求为命令找取请求,并且在隶属节点下的高速缓存TAG 46-1中命中了命令找取请求的目标数据,该目标数据为排斥类型(只使设置在信息处理装置100的所有高速缓存存储器中的一个高速缓存存储器存储目标数据的排斥型找取命令)。
(3)所发出的存储器访问请求为共享型(加载)找取请求,并且在隶属节点下的高速缓存TAG 46-1中命中了所述共享型找取请求的目标数据,该目标数据为共享类型。
(4)所发出的存储器访问请求为共享型找取请求,并且在隶属节点下的高速缓存TAG 46-1中命中了所述共享型找取请求的目标数据,该目标数据为排斥类型。
(5)所发出的存储器访问请求为排斥型(存储)找取请求,并且在隶属节点下的高速缓存TAG 46-1中命中了所述排斥型找取请求的目标数据,该目标数据为排斥类型。
(6)所发出的存储器访问请求为块存储请求,并且在隶属节点下的缓存TAG 46-1中命中了所述块存储请求的目标数据,该目标数据为排斥类型。
如上所述,通过传统技术,只当在本地高速缓存存储器中命中了存储器访问请求的目标数据时,才可以跳过在信息处理装置100中的所有系统板上进行的全局侦听控制操作,并且可以激活隶属节点下的各CPU之间的数据传输。
然而,上面的传统技术只能覆盖安装在隶属节点中的高速缓存存储器的总容量。
此外,如果在隶属节点下的所有高速缓存存储器中都未命中,则不能检测到与目标数据相对应的最新数据的位置。所以,在这种情况下,需要在所有系统板上进行全局侦听控制操作。
于是,当跳过全局侦听操作时访问启动成功率就不够高,并且装置的性能或许也不能如愿得以提高。
发明内容
考虑了这些情形做出本发明,本发明的目的是:在这样的信息处理装置中,缩短存储器访问等待时间,并提高侦听操作吞吐量,该信息处理装置包括节点,每个节点具有主存储器和包括高速缓存存储器的处理器。
为了实现上面的目的,所公开的信息处理装置包括两个或更多个节点,每个节点都具有主存储器、包括高速缓存存储器的处理器以及进行控制操作以保证节点间的高速缓存一致性的系统控制器。各节点中至少一个节点的系统控制器包括:
保持单元,其保持关于存在于隶属节点下的主存储器中的原始数据的特定信息,其中与原始数据相对应的高速缓存数据不在隶属节点之外的各节点的高速缓存存储器中。
所公开的用于信息处理装置的存储器控制方法(该信息处理装置包括两个或更多个其每一个都具有主存储器的节点、包括高速缓存存储器的处理器以及进行控制操作以保证各节点间的高速缓存一致性的系统控制器)包括:存储器访问请求接收步骤,接收作为所述节点之一的隶属节点处产生的存储器访问请求;访问步骤,当在存储器访问请求接收步骤中接收到存储器访问请求时访问保持单元,其中,保持单元保持关于存在于隶属节点的主存储器中的原始数据的特定信息,其中与原始数据相对应的高速缓存数据不在其它节点的高速缓存存储器中;以及本地侦听控制步骤,当在接收步骤中接收到的存储器访问请求的目标数据与由保持单元中所保持的特定信息相对应时,进行本地侦听控制操作以保证隶属节点处的高速缓存一致性。
所公开的存储器控制装置包括:主存储器、具有高速缓存存储器的处理器以及进行控制操作以保证所述存储器控制装置和其它存储器控制装置之间的高速缓存一致性的系统控制器。系统控制器包括保持单元,该保持单元保持关于存在于存储器控制装置的主存储器中的原始数据的特定信息,其中与原始数据相对应的高速缓存数据不在其它存储器控制装置的高速缓存存储器中。
所公开的技术至少具有下列效果和优点之一
(1)可以跳过全局侦听控制操作,并且可以保证节点之间的高速缓存一致性;
(2)能够使可以跳过全局侦听控制操作的条件比传统情形中的那些条件更宽;
(3)在所述信息处理装置中,可以缩短存储器访问等待时间,并且可以提高侦听操作的吞吐量;
(4)在所述信息处理装置中,可以提高广播总线和全局侦听操作的繁忙率(busy rate);
(5)可以使所述信息处理装置的性能更高;以及
(6)可以将保持单元容易地安装在任何现有信息处理装置中。
附图说明
图1是示出作为本发明实施例的信息处理装置的整体结构的框图;
图2是示出作为本发明实施例的信息处理装置中的系统板的结构的框图;
图3是示出作为本发明实施例的信息处理装置中的各系统板的结构的框图;
图4是示出作为本发明实施例的信息处理装置中的系统控制器的结构的框图;
图5是示出作为本发明实施例的信息处理装置中要进行的第一示例操作的时间图;
图6是示出作为本发明实施例的信息处理装置中要进行第二示例操作的时间图;
图7是示出作为本发明实施例的信息处理装置中要进行的第三示例操作的时间图;
图8是示出作为本发明实施例的信息处理装置中要进行的第四示例操作的时间图;
图9是示出作为本发明实施例的信息处理装置中要进行的第五示例操作的时间图;
图10是示出作为本发明实施例的信息处理装置中要进行的第六示例操作的时间图;
图11是用于说明在作为本发明实施例的信息处理装置中取消全局侦听控制操作的条件的关系表;
图12是示出传统大规模信息处理装置的结构的框图;
图13是示出传统大规模信息处理装置中要进行的操作的时间图;以及
图14是示出传统大规模信息处理装置中要进行的操作的时间图。
具体实施方式
下面将参考附图说明本发明的实施例。
本发明的一个实施例
图1是示出作为本发明实施例的信息处理装置的整个结构的框图。
作为本发明实施例的信息处理装置1是一种大规模SMP信息处理装置。如图1中所示,该信息处理装置1包括交叉开关(crossbar switch)XB0到XB3(图1中所示的例子中有四个交叉开关)和系统板(节点或存储器控制装置)SB0到SB15(在图1所示的例子中有16个系统板)。交叉开关XB0到XB3被连接到系统板SB0到SB15,使得整个系统中的连接受到控制。
系统板SB0到SB15通过由诸如外壳、板和芯片的物理边界(物理空间)形成的隔离物(节点)彼此隔开。因此,每一个系统板都用作作为信息处理装置1中具有处理能力的扩展单元的一个节点。
现在将通过系统板SB0和SB1的例子来详细说明作为本发明实施例的信息处理装置以及本地侦听控制方法。
图2是示出作为本发明实施例的信息处理装置中的系统板的结构的框图。图3是更详细地示出系统板的结构的框图。图4是示出系统控制器的结构的框图。
如图2和图3所示,系统板SB0包括:例如,CPU(处理器)10到13(在本例中有4个CPU)、I/O装置(输入/输出装置)20和21(在本例中有两个I/O装置)、主存储器30和31(在本例中有2个主存储器)以及系统控制器50-1。如图3中所示,系统板SB1包括CPU 14到17(在本例中有4个CPU)、I/O装置22和23(在本例中有两个I/O装置)、主存储器32和33(在本例中有2个主存储器)以及系统控制器50-2。
CPU 10到17中的每一个CPU都包括多级高速缓存存储器(在本例中有两级)。具体来说,CPU 10包括第一级高速缓存存储器(高速缓存存储器)10a和第二级高速缓存存储器(高速缓存存储器)10b,CPU 11包括第一级高速缓存存储器11a和第二级高速缓存存储器11b,CPU 12包括第一级高速缓存存储器12a和第二级高速缓存存储器12b,以及CPU 13包括第一级高速缓存存储器13a和第二级高速缓存存储器13b。类似地,CPU 14包括第一级高速缓存存储器14a和第二级高速缓存存储器14b,CPU 15包括第一级高速缓存存储器15a和第二级高速缓存存储器15b,CPU 16包括第一级高速缓存存储器16a和第二级高速缓存存储器16b,以及CPU 17包括第一级高速缓存存储器17a和第二级高速缓存存储器17b。
在下面的说明中,高速缓存存储器中所存储(或存在)的数据将被称作高速缓存数据。高速缓存数据是主存储器中存储(或存在)的原始数据的复本(存储器复本)。
系统控制器50-1和50-2进行控制操作,以保证设置在信息处理装置1中的所有系统板SB0到SB15之间的高速缓存一致性。
尽管设置在信息处理装置1中的系统板包括系统板SB0到SB15(参见图1),但为了方便起见,下面只说明图3中所示的系统板SB0和SB1。
系统控制器50-1和50-2经由总线彼此连接,使得系统控制器50-1和50-2能够彼此通信。系统控制器50-1和50-2共享对设置在信息处理装置1中的存储器(在本例中,第一级高速缓存存储器10a到17a、第二级高速缓存存储器10b到17b以及主存储器30到33)所进行的通信控制操作。除了彼此对不同的存储器进行通信控制操作之外,系统控制器50-1和系统控制器50-2具有相同的结构。具体来说,系统控制器50-1对CPU10到13、I/O装置20和21以及主存储器30和31进行通信控制操作。系统控制器50-2对CPU 14到17、I/O装置22和23以及主存储器32和33进行通信控制操作。
系统控制器50-1和50-2每个都具有这样的机制,来进行控制操作,以保证超过设置在信息处理装置1中的系统板SB0到SB15之间的边界的高速缓存一致性(一致性控制操作)。高速缓存一致性是要维持的数据的一致性,使得即使当对存在于高速缓存存储器中与同一原始数据相对应的每组高速缓存数据进行了数据更新时,也能够访问最新的正确的高速缓存数据。
系统控制器50-1包括高速缓存TAG(第一保持单元)52-1、虚拟TAG扩展(VTAGX;保持单元或第二保持单元)57-1、请求发送/接收单元51-1、广播控制单元53-1、全局侦听控制单元54-1、本地侦听控制单元55-1以及存储器访问发布单元56-1。
高速缓存TAG 52-1注册并保持(存储)用于识别其隶属节点(本地系统板,或本例中的系统板SB0;下同)下的高速缓存存储器(在本例中为第一级高速缓存存储器10a到13a和第二级高速缓存存储器10b到13b;下同)中存在的高速缓存数据的地址信息(特定信息)。高速缓存TAG 52-1由已知技术形成,因此,这里省略了它的说明。
VTAGX 57-1注册并保持用于识别存在于其隶属节点下的主存储器(本地存储器)30和31中的原始数据的地址信息(特定信息),其中,与所述原始数据相对应的高速缓存数据不存在于信息处理装置1中其隶属节点之外的所有节点(图1中的系统板SB1到SB15;图3所示的本例中的其它系统板SB1;下同)的高速缓存存储器(图1中未示出;图3所示的本例中的第一级高速缓存存储器14a到17a和第二级高速缓存存储器14b到17b;下同)中。因此,VTAGX 57-1虚拟地扩展了本地高速缓存存储器空间。
VTAGX 57-1注册这样的地址信息,该地址信息的数据大小使得CPU可以在一次操作中对其进行读取,并针对高速缓存存储器的每行大小对VTAGX 57-1进行管理。VTAGX 57-1还存储有效位(状态信息),该有效位指示所述地址信息是处于与该地址信息相关的有效状态中还是无效状态中。如果该有效位指示出有效状态,则可以通过稍后说明的本地侦听控制单元55-1和全局侦听控制单元54-1的侦听对注册在VTAGX 57-1中的地址信息进行检测。如果该有效位指出了无效状态,则不能通过稍后说明的本地侦听控制单元55-1和全局侦听控制单元54-1的侦听来对VTAGX 57-1中所注册的地址信息进行检测。
VTAGX 57-1也可以存储一系列地址信息,这些地址信息形成连续的若干组关于地址边界的地址信息。通过对VTAGX 57-1中的连续行的地址同时进行管理,能够增加随机存取存储器(RAM)的空间效率。在这种情况下,将与所述地址信息系列中的地址信息组相关的有效位彼此独立地注册在VTAGX 57-1中。
请求发送/接收单元51-1接收从CPU 10到17或I/O装置20到23发出的存储器访问请求以及进行全局侦听控制操作的全局侦听请求。经由全局侦听控制操作,通过在节点上进行控制操作以保证信息处理装置1中的所有节点(图1中的系统板SB0到SB15;图3中的系统板SB0和SB1;下同)之间的高速缓存一致性来确定要响应于存储器访问请求进行的操作。全局侦听请求是在设置在信息处理装置1中的所有节点的高速缓存存储器(图1中未示出;图3所示的本例中的第一级高速缓存存储器10a到17a和第二级高速缓存存储器10b到17b,下同)中搜索要响应于存储器访问请求访问的数据(下文中简称为目标数据)的指令。
当接收到存储器访问请求时,请求发送/接收单元51-1将存储器访问请求发送到稍后说明的本地侦听控制单元55-1。当从本地侦听控制单元55-1接收到请求全局侦听控制的全局侦听请求时,请求发送/接收单元51-1将全局侦听请求发送到稍后说明的全局侦听控制单元54-1。
具体来说,如果从CPU 10发出了存储器访问请求,并且在第一级高速缓存存储器10a和第二级高速缓存存储器10b中发生了关于要响应于该存储器访问请求进行访问的数据的高速缓存未命中(cache miss),则请求发送/接收单元51-1接收从CPU 10发出的存储器访问请求(读请求)。然后,请求发送/接收单元51-1将存储器访问请求发送到稍后说明的本地侦听控制单元55-1。之后,当从本地侦听控制单元55-1接收到全局侦听请求时,请求发送/接收单元51-1将该全局侦听请求发送到稍后说明的广播控制单元53-1。
如果存储器访问请求是在本地侦听控制单元55-1隶属节点下发出的,并且该存储器访问请求的目标数据与本地侦听控制单元55-1隶属节点下的高速缓存TAG 52-1或VTAGX 57-1中所存储的地址信息相对应,则本地侦听控制单元55-1进行本地侦听控制操作(本地侦听)。经由本地侦听控制操作,通过在本地侦听控制单元55-1隶属节点下进行确保高速缓存一致性的控制操作来确定要响应于该存储器访问请求进行的操作。因此,在上述情形中,本地侦听控制单元55-1只在作为其隶属节点的本地系统板上的封闭范围内进行确保高速缓存一致性的控制操作。这样,本地侦听控制单元55-1确保信息处理装置1中设置的所有节点之间的高速缓存一致性。
如果存储器访问请求的目标数据不与本地侦听控制单元55-1隶属节点下的高速缓存TAG 52-1或VTAGX 57-1中所存储的任何地址信息相对应,则本地侦听控制单元55-1向请求发送/接收单元51-1发送全局侦听请求。
如图4所示,本地侦听控制单元55-1包括:例如,请求端口单元66-1、请求选择单元67-1和流水线单元68-1。
请求端口单元66-1按顺序存储(保持)从请求发送/接收单元51-1所接收到的请求。
请求选择单元67-1从请求端口单元66-1中存储的请求中选择某个请求。
流水线单元(本地侦听控制单元)68-1对由请求选择单元67-1所选择的请求的目标数据进行本地侦听控制操作。
具体来说,当从请求发送/接收单元51-1接收到存储器访问请求时,作为响应于发布了存储器访问请求的CPU而进行的操作,流水线单元68-1在其隶属节点下的高速缓存TAG 52-1和VTAGX 57-1中搜索(侦听)要访问的地址信息(下文中简称作目标地址信息),其中该地址信息用于识别该存储器访问请求的目标数据。
如果作为响应于存储器访问请求进行的搜索的结果,在流水线单元68-1隶属节点下的高速缓存TAG 52-1或VTAGX 57-1中命中了要访问的地址信息,则流水线单元68-1基于该搜索结果来确定要响应于该存储器访问请求进行的操作。在这种情况下,流水线单元68-1通报:与目标数据相对应的最新高速缓存数据存在于其隶属节点下的高速缓存存储器或主存储器中。这样,流水线单元68-1保证其隶属节点下的高速缓存存储器中的高速缓存数据没有被更新。要响应于该存储器访问请求进行的操作为:发出在主存储器中读取数据的请求或让CPU清除高速缓存存储器中的数据的请求。
如果作为搜索的结果,在流水线单元68-1隶属节点下的高速缓存TAG 52-1和VTAGX 57-1中未命中要访问的地址信息,则流水线单元68-1取消本地侦听控制操作,并向请求发送/接收单元51-1发送全局侦听请求。
广播控制单元53-1向其隶属节点的请求发送/接收单元51-1发送以及从该单元接收全局侦听请求,并且也向信息处理单元1中其隶属节点之外的所有其它节点(在本例中系统控制器50-2作为所述其它节点;下同)的系统控制器发送以及从所述系统控制器接收全局侦听请求。
具体来说,当从请求发送/接收单元51-1接收全局侦听请求时,广播控制单元53-1向稍后说明的全局侦听控制单元54-1发送全局侦听请求,并向作为其它节点的系统控制器50-2广播全局侦听请求。这样,广播控制单元53-1只广播那些被确定为不能由本地侦听控制单元55-1进行处理的存储器访问请求。
当从作为其它节点的系统控制器50-2接收到全局侦听请求时,广播控制单元53-1将该全局侦听请求发送到全局侦听控制单元54-1。
全局侦听控制单元54-1进行全局侦听控制操作。如图4所示,全局侦听控制单元54-1包括:例如,请求端口单元61-1、请求选择单元62-1、流水线单元63-1、通信单元64-1以及提前注册请求单元65-1。
请求端口单元61-1按顺序存储(保持)从广播控制单元53-1接收到的全局侦听请求。
请求选择单元62-1从请求端口单元61-1中所存储的全局侦听请求中选择某个全局侦听请求。
流水线单元(全局侦听控制单元)63-1对由请求选择单元62-1选择的全局侦听请求的目标数据进行全局侦听控制操作。
流水线单元63-1从其隶属节点下的高速缓存存储器中检测全局侦听请求的目标数据,并与作为其它节点的系统控制器50-2交换搜索结果。这样,流水线单元63-1基于作为其它节点的系统控制器50-2的搜索结果和它自己的搜索结果这二者的结合,确定要响应于存储器访问请求进行的操作。
具体来说,响应于发出了存储器访问请求的CPU,流水线单元63-1在其隶属节点下的高速缓存TAG 52-1中搜索与由请求选择单元62-1选择的全局侦听请求的目标数据相对应的目标地址信息。
当其它节点的全局侦听控制单元54-2(或流水线单元:未示出)经由该其它节点的广播控制单元53-2从隶属节点的广播控制单元53-1接收全局侦听请求时,全局侦听控制单元54-2在该其它节点下的高速缓存TAG52-2中搜索与全局侦听请求的目标数据相对应的目标地址信息。之后,各个节点的流水线单元63-1和全局侦听控制单元54-2经由稍后说明的通信单元64-1进行发送、接收,并将高速缓存TAG搜索结果(在本例中为来自流水线单元63-1的高速缓存TAG 52-1搜索结果和来自全局侦听控制单元54-2的高速缓存TAG 52-2搜索结果)结合起来,以便合并高速缓存状态。基于高速缓存状态的合并结果,流水线单元63-1确定要响应于存储器访问请求进行的操作。
如果高速缓存状态的合并结果表明,从CPU 10a发出的存储器访问请求的目标数据不存在于信息处理装置1中设置的任何高速缓存存储器中,并且将要访问其隶属节点下的主存储器30,则流水线单元63-1向其隶属节点下的存储器访问发布单元56-1发出存储器访问请求。如果高速缓存状态的合并结果表明,从CPU 10a发出的存储器访问请求的目标数据存在于其它节点下的CPU 14中的高速缓存存储器14a中,则流水线单元63-1向该其它节点下的CPU 14a发出存储器访问请求。
因此,当从广播控制单元53-1接收到全局侦听请求时,流水线单元63-1在其隶属节点下的高速缓存TAG 52-1和其它节点下的高速缓存TAG52-2中搜索与该全局侦听请求的目标数据相对应的目标地址信息。然后,流水线单元63-1通知整个信息处理装置1该CPU将访问其隶属节点下的主存储器30和31,并接收响应。这样,流水线单元63-1进行控制操作,以保证整个信息处理装置1中的高速缓存一致性。
流水线单元63-1除了用作上述单元外,还用作注册单元和无效化单元(invalidation unit)。
如果全局侦听控制操作的结果表明,与其隶属节点的主存储器30和31中的原始数据相对应的高速缓存数据不存在于信息处理装置1中的任何节点的任何高速缓存存储器中,则流水线单元(下文中称作注册单元)63-1将识别原始数据的地址信息注册在VTAGX 57-1中,并使VTAGX57-1保持该地址信息。注册单元63-1通知整个信息处理装置1该CPU将访问某个存储器,并接收响应。如果从该响应中清楚看到与目标数据相对应的高速缓存数据没有被注册在信息处理装置1中设置的任何高速缓存存储器中,则注册单元63-1将识别与该目标数据相对应的原始数据的地址信息注册在其隶属节点下的VTAGX 57-1中。因此,当作为全局侦听操作的结果(未命中)从注册单元63-1隶属节点下的CPU(本地CPU)10到13发出的存储器访问请求被指向注册单元63-1隶属节点下的主存储器30和31,并且要对注册单元63-1隶属节点下的主存储器30和31进行访问时,注册单元63-1将相应的地址信息注册在其隶属节点下的VTAGX57-1中。
在本实施例中,使用组相联方法(set associative method),注册单元63-1选择新的注册条目(registration entry),并且如果在进行新的条目注册时没有条目空间,则根据各路(WAY)之间的最近最少使用(LeastRecently Used,LRU)政策来注册地址信息。即使有与要注册的地址信息相同的有效条目,注册单元63-1也不对该有效条目中的地址信息进行任何处理,而用要注册的地址信息替换该有效条目。
当流水线单元63-1用作无效化单元时,在信息处理装置1中其隶属节点之外的一个节点(在本例中为系统板SB1)发出了存储器访问请求,并且该存储器访问请求的目标数据为其隶属节点的主存储器30和31中的、与其隶属节点下的VTAGX 57-1中所存储的地址信息相对应的原始数据的情况下,当确定了作为该存储器访问请求的响应的操作时,流水线单元(下文中称作无效化单元)63-1使与其隶属节点的主存储器30和31中的原始数据相对应并被存储在其隶属节点下的VTAGX 57-1中的地址信息无效。
具体来说,当将用于所述其它节点下的CPU 14到17访问无效化单元63-1隶属节点下的主存储器30和31的请求通知给整个信息处理装置1时,无效化单元63-1针对其隶属节点下的VTAGX 57-1中所存储的地址信息来检查该访问请求的目标地址信息。如果与所述目标地址信息匹配的地址信息被存储在其隶属节点下的VTAGX 57-1中,则无效化单元63-1将与该地址信息相对应的有效位的状态从有效状态改变为无效状态,以便保证整个信息处理装置1中的高速缓存一致性。因此,当在来自其它节点下的CPU 14到17(异地CPU)的存储器访问请求的访问目标为地址被注册在无效化单元63-1隶属节点下的VTAGX 57-1中的数据的情况下确定了要进行访问时,无效化单元63-1使其隶属节点下的VTAGX 57-1中的相应条目无效。
通信单元64-1与流水线单元63-1以及信息处理装置1中其隶属节点之外的所有其它节点的全局侦听控制单元(在本例中为其它节点的全局侦听控制单元54-2)进行通信。
提前注册请求单元(扩展特定信息产生单元)65-1产生提前地址信息(扩展特定信息),该信息是与存储在VTAGX 57-1中的地址信息不同的地址信息。
出于下面的原因提供提前注册请求单元65-1。
在只有当来自注册单元63-1隶属节点下的CPU(本地CPU)的找取请求被执行时注册单元63-1才将相应地址信息注册在VTAGX 57-1中的情况下,在该注册之后,从高速缓存存储器中清除与该地址信息相对应的目标数据。当隶属节点下的CPU再次访问与该地址信息相对应的目标数据时,第一次能在VTAGX 57-1中命中。因此,只有当第二次或第二次之后进行访问时,才能在于VTAGX 57-1中命中的情况下跳过全局侦听操作,且能够缩短等待时间。因此,当第二次或第二次之后对可重新使用数据进行访问时,提前注册请求单元65-1是有效的,但当第一次进行访问时,该单元不是有效的。
有鉴于此,本实施例的信息处理装置1包括提前注册请求单元65-1,当要注册的地址信息被注册在VTAGX 57-1中时,提前注册请求单元65-1根据程序利用存储器访问的连续性,将注册的地址信息之前几千字节处的地址信息提前注册在VTAGX 57-1中。
接下来,将详细说明利用提前注册请求单元65-1所进行的提前注册操作。
作为全局侦听控制操作的结果,如果响应于来自CPU的访问请求,在设置在信息处理装置1中的任何高速缓存存储器中都未命中,并且确定要访问其隶属节点下的本地存储器作为响应于该CPU而进行的操作,则提前注册请求单元65-1在信息处理装置1中设置的所有系统控制器中通过在与访问请求相对应的目标地址信息上加上预定量(例如,几千字节)首先产生提前地址信息。这里,所有的系统控制器为各系统板SB0到SB15上设置的系统控制器(未示出)。为方便起见,这里说明为系统板SB0设置的系统控制器50-1,作为设置在信息处理装置1中的所有系统控制器的代表。如果与访问请求相对应的目标地址信息被成功地注册在VTAGX57-1中,则提前注册请求单元65-1产生提前地址信息,该提前地址信息为预计要在目标地址信息之后访问的地址信息。提前注册请求单元65-1包括请求端口(提前注册请求端口;未示出),该请求端口按顺序地累积(存储)所产生的提前地址信息。
当请求端口可用时,提前注册请求单元65-1将所产生的提前地址信息设置在请求端口中。如果在请求端口中累积的提前地址信息中存在有效的提前地址信息(提前注册请求),则提前注册请求单元65-1按顺序将有效的提前地址信息输入到请求端口单元61-1。这里,有效的提前地址信息表明,与该提前地址信息相对应的原始数据存在于其隶属节点下的主存储器30和31中。因此,如果与提前地址信息相对应的原始数据存在于其隶属节点下的主存储器30和31中,则提前注册请求单元65-1使该提前地址信息与来自其它节点的存储器访问请求广播一起参与为全局侦听控制所进行的请求选择操作。
之后,流水线单元63-1对由请求选择单元62-1选出的提前地址信息进行全局侦听控制操作。具体来说,流水线单元63-1确定与提前地址信息相对应的高速缓存数据是否存在于信息处理装置1中其隶属节点之外的各节点的高速缓存存储器的一个中。如果对提前地址信息进行的全局侦听控制的结果表明,在设置在信息处理装置1中的所有节点的高速缓存TAG中都未命中(存在高速缓存未命中),则流水线单元63-1将该提前地址信息注册在其隶属节点下的VTAGX 57-1中。如果对提前地址信息进行的全局侦听控制的结果表明,在信息处理装置1中设置的各节点的高速缓存TAG中的一个处命中了,则流水线单元63-1不将该提前地址信息注册在VTAGX 57-1中,并结束操作。
因此,如果对由提前注册请求单元65-1产生的提前地址信息所进行的全局侦听控制的结果表明,与该提前地址信息相对应的原始数据存在于其隶属节点的主存储器30和31中,并且与该提前地址信息相对应的高速缓存数据不存在于信息处理装置1中其隶属节点之外的各节点的任何高速缓存存储器中,则流水线单元63-1将该提前地址信息注册在其隶属节点下的VTAGX 57-1中,并使VTAGX 57-1保持该提前地址信息。
存储器访问发布单元56-1基于响应于由本地侦听控制单元55-1或全局侦听控制单元54-1所确定的存储器访问请求而进行的操作,执行针对其隶属节点下的主存储器30和31的存储器访问请求。
除了通信控制操作是相对于第一级高速缓存存储器14a到17a、第二级高速缓存存储器14b到17b和主存储器32和33进行的之外,设置在系统控制器50-2中的高速缓存TAG 52-2、VTAGX 57-2、请求发送/接收单元51-2、本地侦听控制单元55-2、广播控制单元53-2、全局侦听控制单元54-2和存储器访问发布单元56-2分别与系统控制器50-1中的高速缓存TAG 52-1、VTAGX 57-1、请求发送/接收单元51-1、本地侦听控制单元55-1、广播控制单元53-1、全局侦听控制单元54-1和存储器访问发布单元56-1相同。
图5是示出作为本发明实施例的信息处理装置1中要进行的第一示例操作的时间图。
下面将说明在要访问其隶属节点下的主存储器中的原始数据、与该原始数据相对应的高速缓存数据不在信息处理装置1中设置的任何高速缓存存储器中、并且与原始数据相对应的地址信息没有注册在VTAGX 57-1中的情况下,在作为本发明实施例的信息处理装置1中要进行的操作流程(第一示例操作)。
如图5中所示,首先从CPU 10发出了存储器访问请求(本例中为数据找取请求(如图5中的“FCH-REQ”所示);下文中称作找取请求)(参见t1),并且请求发送/接收单元51-1从CPU 10接收该找取请求(参见t2;存储器访问请求接收步骤)。然后,本地侦听控制单元55-1在其隶属节点下的高速缓存TAG 52-1和其隶属节点下的VTAGX 57-1中搜索该找取请求的目标地址信息(参见t3:访问步骤)。
如果响应于存储器访问请求所进行的搜索的结果表明,在其隶属节点下的高速缓存TAG 52-1和VTAGX 57-1中都未命中(图5中的“结果=未命中”所示),则本地侦听控制单元55-1取消本地侦听控制,并向请求发送/接收单元51-1发送全局侦听请求。当经由请求发送/接收单元51-1从本地侦听控制单元55-1接收全局侦听请求时(全局侦听请求接收步骤),广播控制单元53-1将该全局侦听请求发送到全局侦听控制单元55-1(参见t4),并向信息处理装置1中其隶属节点之外的所有节点中的系统控制器广播该全局侦听请求(参见t5)。
当从广播控制单元53-1接收到全局侦听请求时,其隶属节点的全局侦听控制单元54-1在其隶属节点下的高速缓存TAG 52-1中搜索与所述全局侦听请求的目标数据相对应的目标地址信息(参见t6)。同时,当其它节点的全局侦听控制单元54-2从广播控制单元53-1接收到全局侦听请求时,全局侦听控制单元54-2在其它节点下的高速缓存TAG 52-2中搜索与全局侦听请求的目标数据相对应的目标地址信息(参见t7)。各个节点的全局侦听控制单元54-1和54-2相互交换高速缓存TAG搜索的结果,并将这些结果结合起来以便合并高速缓存状态。基于高速缓存状态的合并结果,全局侦听控制单元54-1确定要响应于该找取请求进行的最终操作(参见t8;全局侦听控制步骤)。
如果从各高速缓存存储器的任何一个中都没有检测到找取请求的目标数据,并且全局侦听控制单元54-1确定要从主存储器30中读取与找取请求的目标数据相对应的原始数据,则全局侦听控制单元54-1也确定在VTAGX 57-1中进行注册,并将与原始数据相对应的地址信息注册在VTAGX 57-1中(参见t9;特定信息注册步骤)。此外,存储器访问发布单元56-1针对该找取请求向主存储器30发出读请求(如图5中的“MS-RD-REQ”所示)(参见t10)。然后,从主存储器30中将与所述找取请求相对应的原始数据读入系统控制器50-1中(如“RD→MIDQ”所示;参见图5中的t11)。之后,存储器访问发布单元56-1将作为找取数据响应(如图5中的“FCH-DATA”所示)从主存储器30读取的原始数据发送到CPU 10(参见t12),并完成了该找取请求的执行(参见t13)。
图6是示出作为本发明实施例的信息处理装置1中要进行的第二示例操作的时间图。
下面将说明在要访问其隶属节点下的主存储器中的原始数据,并且与该原始数据相对应的地址信息被注册在VTAGX 57-1中的情况下,在作为本发明实施例的信息处理装置1中要进行的操作流程(第二示例操作)。
如图6所示,首先从CPU 10发出找取请求(参见t1),并且请求发送/接收单元51-1从CPU 10接收该找取请求(参见t2;存储器访问请求接收步骤)。然后,本地侦听控制单元55-1在其所述节点下的高速缓存TAG 52-1和其隶属节点下的VTAGX 57-1中搜索该找取请求的目标地址信息(参见t3:访问步骤)。
如果响应于存储器访问请求所进行的搜索的结果表明,在其隶属节点下的高速缓存TAG 52-1中未命中,但在其隶属节点下的VTAGX 57-1中命中了(如图6中的“VTAGX=命中”以及“结果=命中”所示),则本地侦听控制单元55-1基于搜索结果确定响应于找取请求进行的最终操作(参见t4;本地侦听控制步骤)。因此,省略了全局侦听控制操作。
如果清楚该找取请求的目标数据不在其隶属节点下的任何高速缓存存储器中,并且本地侦听控制单元55-1确定要从主存储器30读取与该找取请求的目标数据相对应的原始数据,则存储器访问发布单元56-1针对该找取请求向主存储器30发出读请求(参见t5)。然后,从主存储器30中将与该找取请求相对应的原始数据读入系统控制器50-1中(如“RD→DATA”所示;参见图6中的t6)。之后,存储器访问发布单元56-1向CPU10发送从主存储器30作为找取数据响应(如图6中的“FCH-DATA”所示)读取的原始数据(参见t7),且完成了该找取请求的执行(参见t8)。
图7是示出作为本发明实施例的信息处理装置1中要进行的第三示例操作的时间图。
下面将说明在要访问其隶属节点下的主存储器中的原始数据,并且尽管与该原始数据相对应的地址信息没有注册在VTAGX 57-1中,但与该原始数据相对应的高速缓存数据存在于信息处理装置1中的其隶属节点之外的一个节点中的高速缓存存储器中的情况下,在作为本发明实施例的信息处理装置1中要进行的操作流程(第三示例操作)。
如图7中所示,首先从CPU 10发出找取请求(参见t1),并且请求发送/接收单元51-1从CPU 10接收该找取请求(参见t2;存储器访问请求接收步骤)。然后,本地侦听控制单元55-1在其隶属节点下的高速缓存TAG 52-1和其隶属节点下的VTAGX 57-1中搜索找取请求的目标地址信息(参见t3:访问步骤)。
如果响应于存储器访问请求所进行的搜索的结果表明,在其隶属节点下的高速缓存TAG 52-1和VTAGX 57-1中都未命中(如图7中的“VTAGX=未命中”以及“结果=未命中”所示),则本地侦听控制单元55-1取消本地侦听控制,并向请求发送/接收单元51-1发送全局侦听请求。当经由请求发送/接收单元51-1从本地侦听控制单元55-1接收全局侦听请求时(全局侦听请求接收步骤),广播控制单元53-1将该全局侦听请求发送到全局侦听控制单元55-1(参见t4),并向其它节点的系统控制器广播该全局侦听请求(参见t5)。
当从广播控制单元53-1接收到全局侦听请求时,其隶属节点的全局侦听控制单元54-1在其隶属节点下的高速缓存TAG 52-1中搜索与该全局侦听请求的目标数据相对应的目标地址信息(参见t6)。同时,当其它节点的全局侦听控制单元54-2从广播控制单元53-1接收到全局侦听请求时,全局侦听控制单元54-2在该其它节点下的高速缓存TAG 52-2中搜索与该全局侦听请求的目标数据相对应的目标地址信息(参见t7)。该各个节点的全局侦听控制单元54-1和54-2相互交换高速缓存TAG搜索的结果,并将这些结果结合起来以便合并高速缓存状态。基于高速缓存状态合并的结果,全局侦听控制单元54-1确定响应于该找取请求进行的最终操作(参见t8;全局侦听控制步骤)。
如果清楚找取请求的目标数据在其它节点(本例中的系统板SB1)下的CPU 14中的第一级高速缓存存储器14a中,并且全局侦听控制单元54-1确定要从第一级高速缓存存储器14a中读取与该找取请求的目标数据相对应的高速缓存数据,则全局侦听控制单元54-2针对该找取请求向包括第一级高速缓存存储器14a的CPU 14发出读请求(参见t9)。然后,从第一级高速缓存存储器14a(CPU 14)中将与该找取请求相对应的高速缓存数据读入系统控制器50-2中(如“MODQ”所示,参见图7中的t10)。进一步,从系统控制器50-2中将与该找取请求相对应的高速缓存数据读入系统控制器50-1中(如“MIDQ”所示,参见图7中的t11)。之后,全局侦听控制单元54-1将从第一级高速缓存存储器14a中作为找取数据响应(如图7中的“FCH-DATA”所示)读取的高速缓存数据发送到CPU10(参见t12),并且完成了该找取请求的执行(参见t13)。
图8是示出作为本发明实施例的信息处理装置1中要进行的第四示例操作的时间图。
下面将说明在VTAGX 57-1中成功地进行了提前注册的情况下,在作为本发明实施例的信息处理装置1中要进行的操作流程(第四示例操作)。
t1到t13的过程与参考图5所说明的第一示例操作中的那些步骤相同,因此,这里省略了这些步骤的说明。
如图8所示,当全局侦听控制单元54-1确定VTAGX 57-1中的注册时(特定信息注册步骤),提前注册请求单元65-1启动提前注册请求(参见t9)。通过在与访问请求相对应的目标地址信息上加上几千字节,提前注册请求单元65-1产生提前地址信息(参见t14;扩展特定信息产生步骤)。与提前注册请求单元65-1类似,设置在信息处理装置1中的所有其它提前注册请求单元(在本例中为系统板SB1中设置的系统控制器50-1的提前注册请求单元;未示出)通过在与访问请求相对应的目标地址信息上加上几千字节来产生提前地址信息(参见t15;扩展特定信息产生步骤)。
然后,每个全局侦听控制单元对由提前注册请求单元65-1产生的提前地址信息进行全局侦听控制操作(参见t16和t17)。具体来说,提前注册请求单元65-1隶属节点的全局侦听控制单元54-1在其隶属节点下的高速缓存TAG 52-1中搜索由提前注册请求单元65-1产生的提前地址信息(参见t16)。同时,其它节点的全局侦听控制单元54-2在其它节点下的高速缓存TAG 52-2中搜索与提前注册请求单元65-1隶属节点下搜索的提前地址信息相同的提前地址信息(参见t17)。各个节点的全局侦听控制单元54-1和54-2相互交换高速缓存TAG搜索的结果,并将这些结果结合起来以便合并高速缓存状态。基于高速缓存状态合并的结果,全局侦听控制单元54-1确定是否在其隶属节点下的VTAGX 57-1中注册该提前地址信息(参见t18;扩展特定信息注册步骤)。
如果针对该提前地址信息进行的全局侦听控制的结果表明,在所有的高速缓存TAG中都未命中,则全局侦听控制单元54-1将该提前地址信息注册在其隶属节点下的VTAGX 57-1中,且提前注册请求的执行完成。
图9是示出作为本发明实施例的信息处理装置1中要进行的第五示例操作的时间图。
下面将说明在VTAGX 57-1中进行提前注册失败的情况下,在作为本发明实施例的信息处理装置1中要进行的操作流程(第五示例操作)。
t1到t17的过程与参考图5说明的第一示例操作中的过程相同,因此,在这里省略了对它们的说明。
如图9中所示,基于高速缓存状态合并的结果,全局侦听控制单元54-1确定是否在其隶属节点下的VTAGX 57-1中注册该提前地址信息(参见t18)。
如果针对该提前地址信息所进行的全局侦听控制的结果表明在高速缓存TAG中的一个高速缓存TAG中命中了,则全局侦听控制单元54-1不将该提前地址信息注册在其隶属节点下的VTAGX 57-1中,且提前注册请求的执行完成。
图10是示出作为本发明实施例的信息处理装置1中要进行的第六示例操作的时间图。
下面将说明在要将VTAGX 57-1中所注册的地址信息置于无效状态的情况下,在作为本发明实施例的信息处理装置1中要进行的操作流程(第六示例操作)。
如图10中所示,首先,从其它节点(在本例中为系统板SB1)下的CPU 14发出找取请求(参见t1),并且该其它节点下的请求发送/接收单元51-2从该其它节点下的CPU 14接收该找取请求(参见t2)。然后,该其它节点下的本地侦听控制单元55-2在该其它节点下的高速缓存TAG52-2和该其它节点下的VTAGX 57-2中搜索该找取请求的目标地址信息(参见t3)。
如果响应于存储器访问请求所进行的搜索的结果表明,在其它节点下的高速缓存TAG 52-2和VTAGX 57-2中都未命中(如图10中的“结果=未命中”所示),则该其它节点下的本地侦听控制单元55-2取消本地侦听控制,并向该其它节点下的请求发送/接收单元51-2发送全局侦听请求。当经由其它节点下的请求发送/接收单元51-2从该其它节点下的本地侦听控制单元55-2接收到全局侦听请求时,该其它节点下的广播控制单元53-2将该全局侦听请求发送到该其它节点下的全局侦听控制单元55-2(参见t4)。同时,该其它节点下的广播控制单元53-2向信息处理装置1中系统控制器50-2之外的所有系统控制器广播该全局侦听请求(参见t5)。在本例中,信息处理装置1中系统控制器50-2之外的所有系统控制器由其隶属节点下的系统控制器50-1来代表。
当从广播控制单元53-2接收到全局侦听请求时,其它节点下的全局侦听控制单元54-2在其它节点下的高速缓存TAG 52-2中搜索与全局侦听请求的目标数据相对应的目标地址信息(参见t6)。同时,当其隶属节点下的全局侦听控制单元54-1从其它节点下的广播控制单元53-2接收到全局侦听请求时,全局侦听控制单元54-1在其隶属节点下的高速缓存TAG52-1中搜索与全局侦听请求的目标数据相对应的目标地址信息(参见t7)。各个节点的全局侦听控制单元54-1和54-2相互交换高速缓存TAG搜索的结果,并将这些结果结合起来以便合并高速缓存状态。基于高速缓存状态合并的结果,全局侦听控制单元54-1确定响应于该找取请求的最终操作(参见t8)。
如果没有从任何高速缓存存储器中检测到该找取请求的目标数据,且全局侦听控制单元54-2确定要从其隶属节点下的主存储器30读取与该找取请求的目标数据相对应的原始数据,则其隶属节点下的全局侦听控制单元54-1将与VTAGX 57-1中所存储的地址信息相对应的有效位从有效状态变成无效状态。这样,其隶属节点下的全局侦听控制单元54-1使VTAGX 57-1中的地址信息无效(参见t9;无效化步骤)。此外,其隶属节点下的存储器访问发布单元56-1针对该找取请求向主存储器30发出读请求(如图10中的“MS-RD-REQ”所示)(参见t10)。然后,从主存储器30中将与该找取请求相对应的原始数据读入其隶属节点下的系统控制器50-1中(参见t11)。此外,从其隶属节点下的系统控制器50-1中将与找取请求相对应的原始数据读入该其它节点下的系统控制器50-2中(如“MIDQ”所示;参见图10中的t12)。之后,该其它节点下的存储器访问发布单元56-2将从其隶属节点下的主存储器30作为找取数据响应(如图10中的“FCH-DATA”所示)读取的原始数据发送到CPU 14(参见t13),且该找取请求的执行完成(参见t14)。
图11是用于说明在作为本发明实施例的信息处理装置1中取消全局侦听控制操作的条件的表。
如上所述,在作为本发明实施例的信息处理装置1中,在下面(1)到(6)的情形中,本地侦听控制单元55-1跳过全局侦听控制操作,并激活对其隶属节点下的主存储器的访问(参见由图11中用“圆圈”所表示的标记)。
(1)所发出的存储器访问请求为命令找取请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该命令找取请求的目标数据,该数据为共享类型(简单地从设置在信息处理装置1中的高速缓存存储器中的一个中找取该目标数据的共享找取请求)(参见图11中的“1.3”部分)。
(2)所发出的存储器访问请求为命令找取请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该命令找取请求的目标数据,该数据为排斥类型(只使设置在信息处理装置1中的所有高速缓存存储器中的一个高速缓存存储器存储目标数据的排斥型找取命令)(参见图11中的“1.4”部分)。
(3)所发出的存储器访问请求为共享型(加载)找取请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该共享型找取请求的目标数据,该数据为共享类型(参见图11中的“2.3”部分)。
(4)所发出的存储器访问请求为共享型找取请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该共享型找取请求的目标数据,该数据为排斥类型(参见图11中的“2.4”部分)。
(5)所发出的存储器访问请求为排斥型(存储)找取请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该排斥型找取请求的目标数据,该数据为排斥类型(参见图11中的“3.5”部分)。
(6)所发出的存储器访问请求为块存储请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该块存储请求的目标数据,该数据为排斥类型(参见图11中的“4.5”部分)。
在作为本发明实施例的信息处理装置1中,除了该(1)到(6)的情形外,在下面的(7)到(12)情形中,本地侦听控制单元55-1也能跳过全局侦听控制操作,并激活对其隶属节点下的主存储器的访问(参见图11中用“双圆圈”所表示的标记)。
(7)所发出的存储器访问请求为命令找取请求,并且在其隶属节点下的高速缓存TAG 52-1中没有命中该命令找取请求的目标数据,但在其隶属节点下的VTAGX 57-1中命中了该目标数据(参见图11中的“1.2”部分)。
(8)所发出的存储器访问请求为共享型(加载)找取请求,并且在其隶属节点下的高速缓存TAG 52-1中没有命中该共享型找取请求的目标数据,但在其隶属节点下的VTAGX 57-1中命中了该目标数据(参见图11中的“2.2”部分)。
(9)所发出的存储器访问请求为排斥型(存储)找取请求,并且在其隶属节点下的高速缓存TAG 52-1中没有命中该排斥型找取请求的目标数据,但在其隶属节点下的VTAGX 57-1中命中了(参见图11中的“3.2”部分)。
(10)所发出的存储器访问请求为排斥型找取请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该排斥型找取请求的目标数据,该目标数据为共享类型,并且在其隶属节点下的VTAGX 57-1中也命中了该目标数据(参见图11中的“3.4”部分)。在这种情况下,将与该目标数据相对应并被注册在VTAGX 57-1中的地址信息置于无效状态。
(11)所发出的存储器访问请求是块存储请求,并且在其隶属节点下的高速缓存TAG 52-1中没有命中该块存储请求的目标数据,但在其隶属节点下的VTAGX 57-1中命中了该目标数据(参见图11中的“4.2”部分)。
(12)所发出的存储器访问请求为块存储请求,并且在其隶属节点下的高速缓存TAG 52-1中命中了该块存储请求的目标数据,该数据为共享类型,并且在其隶属节点下的VTAGX 57-1中也命中了该目标数据(参见图11中的“4.4”部分)。在这种情况下,将与该目标数据相对应并被注册在VTAGX 57-1中的地址信息置于无效状态。
在情形(1)到(12)之外的情形中,全局侦听控制单元54-1进行全局侦听控制操作(参见图11)。
尽管前面已经说明了根据作为本发明实施例的本地侦听控制方法要由系统控制器50-1进行的操作(要在信息处理装置1中进行的操作),但在从系统板SB0之外的系统板SB1到SB15下的CPU或I/O装置发出存储器访问请求的情况下,各个系统板SB1到SB15下的系统控制器所进行的操作与系统控制器50-1所进行的上面的操作相同。
如上所述,根据作为本发明实施例的信息处理装置1中的作为本发明实施例的本地侦听控制方法,容量比隶属节点下的高速缓存存储器的容量大的VTAGX 57-1添加到设置在信息处理装置1中的每一个节点,并且将VTAGX 57-1的搜索添加到本地侦听控制单元55-1的操作,以便虚拟扩展其隶属节点下的高速缓存存储器空间。因此,即使在隶属节点下的高速缓存TAG 52-1中未命中,只要在VTAGX 57-1中命中,也能通过执行作为低延迟数据通信的本地侦听控制操作来激活对隶属节点下的主存储器30和31中的目标数据的访问。这样,可以跳过在信息处理装置1中的各节点上进行的全局侦听控制,并且仍然可以保证信息处理装置1中的所有节点间的高速缓存一致性。因此,可以使跳过全局侦听控制操作的条件变得更宽。因此,可以缩短大规模信息处理装置1中每个存储器访问的等待时间,并且可以提高每个侦听操作的吞吐量。此外,在大规模信息处理装置1中,可以提高广播总线和全局侦听操作之间的繁忙率。于是,信息处理装置1可以实现更高的性能。
在从隶属节点下的CPU 10到13发出了涉及高速缓存数据的无效性的排斥型存储器访问请求、并且在高速缓存TAG 52-1中命中或没有命中该存储器访问请求的共享型目标数据的情况下,如果在VTAGX 57-1中命中了该存储器访问请求的目标数据,则使其它节点下的高速缓存存储器中的高速缓存数据无效的操作变得不必要。因此,在这种情况下就跳过在信息处理装置1中的节点上进行的全局侦听控制操作,并且对隶属节点下的主存储器进行访问。此外,可以激活使隶属节点下的高速缓存存储器中的高速缓存数据无效的操作。
此外,当将VTAGX 57-1安装在系统控制器50-1中时,不需要对现有大规模SMP信息处理装置的系统控制器50-1做出显著的控制变化。因此,能够容易地将VTAGX 57-1安装在现有大规模SMP信息处理装置中。
在与存储器访问请求的目标数据相对应的目标地址信息被注册在VTAGX 57-1中的情况下,在某种条件下,将该目标地址信息之前几千字节处的提前地址信息提前注册在VTAGX 57-1中,其中使用了根据程序的存储器访问的连续性。因此,即使来自隶属节点下的CPU 10到13的访问是第一次访问,也能搜索VTAGX 57-1。这样,即使来自隶属节点下的CPU 10到13的访问是第一次访问,只要在VTAGX 57-1中命中,也能跳过全局侦听控制操作,并且能保证信息处理装置1中的所有节点间的高速缓存一致性。因此,可以缩短大规模信息处理装置1中的每一个存储器访问的等待时间,并且可以提高每一个侦听操作的吞吐量。
其它实施例
本发明不限于上面的实施例,在不离开本发明的范围的情况下,可以对这些实施例进行各种改变和变型。
例如,在上面的实施例中,在信息处理装置1的每个节点中安装了VTAGX。然而,本发明不限于该结构,可以将VTAGX安装在信息处理装置1中的一个或部分节点中。
此外,在上面的实施例中,地址信息被用作特定信息。然而,也可以使用任何信息作为指定原始数据或高速缓存数据的特定信息。
此外,在上面的实施例中,使用有效位作为状态信息。然而,也可以使用任何信息来指示所属特定信息是处于无效状态还是有效状态。
Claims (20)
1.一种信息处理装置,包括:
多个节点(SB0、SB1),
所述多个节点中的每一个包括主存储器(30到33)、具有高速缓存存储器(10a到17a、10b到17b)的处理器(10到17)、以及进行控制操作以保证所述节点(SB0、SB1)间的高速缓存一致性的系统控制器(50-1、50-2),
所述节点(SB0、SB1)中至少一个节点的系统控制器(50-1、50-2)包括:
保持单元(57-1、57-2),其保持关于存在于隶属节点(SB0、SB1)下的所述主存储器(30到33)中的原始数据的特定信息,其中与所述原始数据相对应的高速缓存数据不存在于所述隶属节点之外的各节点(SB0、SB1)的高速缓存存储器(10a到17a、10b到17b)中。
2.根据权利要求1所述的信息处理装置,其中,包括所述保持单元(57-1、57-2)的所述系统控制器(50-1、50-2)还包括本地侦听控制单元(55-1、55-2),当在隶属节点(SB0、SB1)处产生了存储器访问请求,且所述存储器访问请求的目标数据与由所述保持单元(57-1、57-2)保持的所述特定信息相对应时,所述本地侦听控制单元进行本地侦听控制操作以保证隶属节点(SB0、SB1)处的高速缓存一致性。
3.根据权利要求2所述的信息处理装置,其中,包括所述保持单元(57-1、57-2)的所述系统控制器(50-1、50-2)还包括:
全局侦听控制单元(54-1、54-2),其进行全局侦听控制操作以保证所述节点(SB0、SB1)之间的高速缓存一致性;以及
请求发送/接收单元(51-1、51-2),当接收到隶属节点(SB0、SB1)处产生的存储器访问请求时,所述请求发送/接收单元向所述本地侦听控制单元(55-1、55-2)发送所述存储器访问请求,且当从所述本地侦听控制单元(55-1、55-2)接收到请求进行全局侦听控制操作的全局侦听请求时,所述请求发送/接收单元向所述全局侦听控制单元(54-1、54-2)发送所述全局侦听请求。
4.根据权利要求3所述的信息处理装置,其中,当所述存储器访问请求的目标数据与由所述保持单元(57-1、57-2)所保持的所述特定信息不对应时,所述本地侦听控制单元(55-1、55-2)向所述请求发送/接收单元(51-1、51-2)发送所述全局侦听请求。
5.根据权利要求3或4所述的信息处理装置,其中,当所述全局侦听控制操作的结果表明,与所述原始数据相对应的所述高速缓存数据不存在于隶属节点之外的各节点(SB0、SB1)的高速缓存存储器(10a到17a、10b到17b)中时,所述全局侦听控制单元(54-1、54-2)使所述保持单元(57-1、57-2)保持关于存在于隶属节点(SB0、SB1)的所述主存储器(30到33)中的原始数据的所述特定信息。
6.根据权利要求3或4所述的信息处理装置,其中,当在隶属节点之外的各节点(SB0、SB1)中的一个节点处发出存储器访问请求、所述存储器访问请求的目标数据为与由所述保持单元(57-1、57-2)保持的所述特定信息相对应的原始数据、并且确定了作为所述存储器访问请求的响应进行的操作时,所述全局侦听控制单元(54-1、54-2)使得与存在于隶属节点(SB0、SB1)的主存储器(30到33)中的原始数据相对应并且由所述保持单元(57-1、57-2)保持的所述特定信息无效。
7.根据权利要求1到4中任一个所述的信息处理装置,其中,所述保持单元(57-1、57-2)保持地址信息作为所述特定信息,所述地址信息具有可以由所述处理器在一个操作中读取的数据大小。
8.根据权利要求7所述的信息处理装置,其中,所述保持单元(57-1、57-2)保持地址信息组作为所述特定信息,所述地址信息组为多个连续的地址信息。
9.根据权利要求8所述的信息处理装置,其中,所述保持单元(57-1、57-2)保持所述地址信息组中每一个地址信息的状态信息,所述状态信息表明所述地址信息是处于有效状态还是处于无效状态。
10.根据权利要求5所述的信息处理装置,其中,
包括所述保持单元(57-1、57-2)的所述系统控制器(50-1、50-2)还包括扩展特定信息产生单元(65-1),所述扩展特定信息产生单元产生与由所述保持单元(57-1、57-2)保持的所述特定信息不同的扩展特定信息;以及
当对由所述扩展特定信息产生单元(65-1)产生的所述扩展特定信息进行的全局侦听控制操作的结果表明,与所述扩展特定信息相对应的原始数据存在于隶属节点(SB0、SB1)的主存储器(30到33)中,并且所述结果表明,与所述扩展特定信息相对应的高速缓存数据不存在于隶属节点之外的各节点(SB0、SB1)的高速缓存存储器中时,所述全局侦听控制单元(54-1、54-2)使所述保持单元(57-1、57-2)保持所述扩展特定信息。
11.一种用于信息处理装置的存储器控制方法,所述信息处理装置包括多个节点(SB0、SB1),每一个节点具有主存储器(30到33)、具有高速缓存存储器(10a到17a、10b到17b)的处理器(10到17)、以及进行控制操作以保证所述节点(SB0、SB1)间的高速缓存一致性的系统控制器(50-1、50-2),
所述存储器控制方法包括:
存储器访问请求接收步骤,接收在作为所述节点(SB0、SB1)之一的隶属节点处所产生的存储器访问请求;
访问步骤,当在所述存储器访问请求接收步骤中接收到所述存储器访问请求时访问保持单元(57-1、57-2),其中,所述保持单元(57-1、57-2)保持关于存在于隶属节点(SB0、SB1)的所述主存储器(30到33)中的原始数据的特定信息,其中与所述原始数据相对应的高速缓存数据不存在于所述隶属节点之外的各节点(SB0、SB1)的所述高速缓存存储器(10a到17a、10b到17b)中;以及
本地侦听控制步骤,当在所述接收步骤中接收到的所述存储器访问请求的目标数据与由所述保持单元(57-1、57-2)保持的所述特定信息相对应时,进行本地侦听控制操作以保证隶属节点(SB0、SB1)处的高速缓存一致性。
12.根据权利要求11所述的存储器控制方法,还包括:
全局侦听请求接收步骤,当在所述本地侦听控制步骤中所述存储器访问请求的目标数据与由所述保持单元(57-1、57-2)保持的所述特定信息不对应时,接收请求全局侦听控制操作的全局侦听请求以保证所述节点之间的高速缓存一致性;以及
全局侦听控制步骤,当在所述全局侦听请求接收步骤中接收到所述全局侦听请求时,进行所述全局侦听控制操作。
13.根据权利要求12所述的存储器控制方法,还包括:
特定信息注册步骤,当所述全局侦听控制操作的结果表明,与所述原始数据相对应的所述高速缓存数据不存在于隶属节点之外的各节点(SB0、SB1)的高速缓存存储器(10a到17a、10b到17b)中时,使所述保持单元(57-1、57-2)保持关于存在于隶属节点(SB0、SB1)的主存储器(30到33)中的原始数据的所述特定信息。
14.根据权利要求12或13所述的存储器控制方法,还包括:
无效化步骤,当隶属节点之外的各节点中的一个节点处发出存储器访问请求、所述存储器访问请求的目标数据为与由所述保持单元(57-1、57-2)保持的所述特定信息相对应的原始数据、并且确定了作为所述存储器访问请求的响应于进行的操作时,使与存在于隶属节点的主存储器(30到33)中的原始数据相对应并且由所述保持单元(57-1、57-2)保持的所述特定信息无效。
15.根据权利要求13所述的存储器控制方法,还包括:
扩展特定信息产生步骤,产生与由所述保持单元(57-1、57-2)保持的所述特定信息不同的扩展特定信息;以及
扩展特定信息注册步骤,当对所述扩展特定信息产生步骤中产生的所述扩展特定信息进行的全局侦听控制操作的结果表明,与所述扩展特定信息相对应的原始数据存在于隶属节点(SB0、SB1)的主存储器(30到33)中,并且所述结果表明,与所述扩展特定信息相对应的高速缓存数据不存在于隶属节点之外的各节点(SB0、SB1)的高速缓存存储器(10a到17a、10b到17b)中时,使所述保持单元(57-1、57-2)保持所述扩展特定信息。
16.一种存储器控制装置,包括主存储器(30到33)和具有高速缓存存储器(10a到17a、10b到17b)的处理器(10到17),
所述存储器控制装置包括进行控制操作以保证所述存储器控制装置和其它存储器控制装置之间的高速缓存一致性的系统控制器(50-1、50-2),
所述系统控制器(50-1、50-2)包括保持单元(57-1、57-2),所述保持单元保持关于存在于所述存储器控制装置的所述主存储器(30到33)中的原始数据的特定信息,其中与所述原始数据相对应的高速缓存数据不存在于所述其它存储器控制装置的高速缓存存储器(10a到17a、10b到17b)中。
17.根据权利要求16所述的存储器控制装置,其中,所述系统控制器(50-1、50-2)还包括本地侦听控制单元(55-1、55-2),当在所述存储器控制装置中产生了存储器访问请求、并且所述存储器访问请求的目标数据与由所述保持单元(57-1、57-2)保持的所述特定信息相对应时,所述本地侦听控制单元进行本地侦听控制操作以保证所述存储器控制装置中的高速缓存一致性。
18.根据权利要求17所述的存储器控制装置,其中,所述系统控制器(50-1、50-2)还包括:
全局侦听控制单元(54-1、54-2),其进行全局侦听控制操作以保证所述存储器控制装置和所述其它存储器控制装置之间的高速缓存一致性;以及
请求发送/接收单元(51-1、51-2),当接收到所述存储器控制装置中产生的存储器访问请求时,所述请求发送/接收单元向所述本地侦听控制单元(55-1、55-2)发送所述存储器访问请求,且当从所述本地侦听控制单元(55-1、55-2)接收到请求全局侦听控制操作的全局侦听请求时,所述请求发送/接收单元向所述全局侦听控制单元(54-1、54-2)发送全局侦听请求。
19.根据权利要求18所述的存储器控制装置,其中,当所述全局侦听控制操作的结果表明,与所述原始数据相对应的所述高速缓存数据不存在于所述其它存储器控制装置的高速缓存存储器中时,所述全局侦听控制单元(54-1、54-2)使所述保持单元(57-1、57-2)保持关于存在于所述存储器控制装置的主存储器(30到33)中的原始数据的所述特定信息。
20.根据权利要求19所述的存储器控制装置,其中,
所述系统控制器(50-1、50-2)还包括扩展特定信息产生单元(65-1),所述扩展特定信息产生单元产生与由所述保持单元(57-1、57-2)保持的所述特定信息不同的扩展特定信息;以及
当对由所述扩展特定信息产生单元(65-1)产生的所述扩展特定信息进行的全局侦听控制操作的结果表明,与所述扩展特定信息相对应的原始数据存在于所述存储器控制装置的主存储器(30到33)中,并且所述结果表明,与所述扩展特定信息相对应的高速缓存数据不存在于所述其它存储器控制装置的高速缓存存储器(10a到17a、10b到17b)中时,所述全局侦听控制单元(54-1、54-2)使所述保持单元(57-1、57-2)保持所述扩展特定信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008069377 | 2008-03-18 | ||
JP2008069377A JP2009223759A (ja) | 2008-03-18 | 2008-03-18 | 情報処理装置,メモリ制御方法およびメモリ制御装置 |
JP2008-069377 | 2008-03-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101539888A true CN101539888A (zh) | 2009-09-23 |
CN101539888B CN101539888B (zh) | 2011-12-21 |
Family
ID=40745135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100055376A Expired - Fee Related CN101539888B (zh) | 2008-03-18 | 2009-01-19 | 信息处理装置、存储器控制方法以及存储器控制装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8464004B2 (zh) |
EP (1) | EP2104042A1 (zh) |
JP (1) | JP2009223759A (zh) |
KR (1) | KR101284969B1 (zh) |
CN (1) | CN101539888B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077249A (zh) * | 2013-03-25 | 2014-10-01 | 富士通株式会社 | 运算处理设备、信息处理设备及控制信息处理设备的方法 |
CN105068786A (zh) * | 2015-07-30 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
TWI753093B (zh) * | 2017-02-08 | 2022-01-21 | 英商Arm股份有限公司 | 針對監聽請求的轉發回應 |
CN114385067A (zh) * | 2020-10-19 | 2022-04-22 | 澜起科技股份有限公司 | 用于存储器系统的数据更新方法和存储器控制器 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5471841B2 (ja) * | 2010-05-28 | 2014-04-16 | 富士通株式会社 | 検証支援プログラム、論理検証装置、および検証支援方法 |
WO2012124034A1 (ja) | 2011-03-11 | 2012-09-20 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
GB2571538B (en) | 2018-02-28 | 2020-08-19 | Imagination Tech Ltd | Memory interface |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522058A (en) * | 1992-08-11 | 1996-05-28 | Kabushiki Kaisha Toshiba | Distributed shared-memory multiprocessor system with reduced traffic on shared bus |
AU8011994A (en) * | 1993-09-30 | 1995-04-18 | Apple Computer, Inc. | System for decentralized backing store control of virtual memory in a computer |
US6029237A (en) * | 1997-10-08 | 2000-02-22 | Dell Usa, L.P. | Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive |
US6330643B1 (en) * | 1998-02-17 | 2001-12-11 | International Business Machines Corporation | Cache coherency protocols with global and local posted operations |
JP2000330965A (ja) * | 1999-03-17 | 2000-11-30 | Hitachi Ltd | マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法 |
US7096323B1 (en) | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
JP4119380B2 (ja) * | 2004-02-19 | 2008-07-16 | 株式会社日立製作所 | マルチプロセッサシステム |
US7434008B2 (en) * | 2004-04-23 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | System and method for coherency filtering |
JP4695367B2 (ja) | 2004-08-31 | 2011-06-08 | 富士通株式会社 | 情報処理装置,制御装置及び情報処理装置の制御方法 |
JP4522817B2 (ja) | 2004-10-25 | 2010-08-11 | 富士通株式会社 | システム制御装置、情報処理装置及び情報処理装置の制御方法。 |
JP4882233B2 (ja) | 2005-01-24 | 2012-02-22 | 富士通株式会社 | メモリ制御装置及び制御方法 |
JP4848771B2 (ja) | 2006-01-04 | 2011-12-28 | 株式会社日立製作所 | キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム |
JP4409619B2 (ja) * | 2006-02-24 | 2010-02-03 | 富士通株式会社 | 情報処理装置、制御装置および制御方法 |
EP1988464B1 (en) * | 2006-02-24 | 2018-11-21 | Fujitsu Ltd. | Snoop control method and information processing device |
-
2008
- 2008-03-18 JP JP2008069377A patent/JP2009223759A/ja active Pending
- 2008-12-09 US US12/330,822 patent/US8464004B2/en not_active Expired - Fee Related
- 2008-12-15 EP EP08171592A patent/EP2104042A1/en not_active Withdrawn
- 2008-12-31 KR KR1020080138289A patent/KR101284969B1/ko not_active IP Right Cessation
-
2009
- 2009-01-19 CN CN2009100055376A patent/CN101539888B/zh not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077249A (zh) * | 2013-03-25 | 2014-10-01 | 富士通株式会社 | 运算处理设备、信息处理设备及控制信息处理设备的方法 |
CN105068786A (zh) * | 2015-07-30 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
CN105068786B (zh) * | 2015-07-30 | 2018-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种处理访存请求的方法和节点控制器 |
TWI753093B (zh) * | 2017-02-08 | 2022-01-21 | 英商Arm股份有限公司 | 針對監聽請求的轉發回應 |
CN114385067A (zh) * | 2020-10-19 | 2022-04-22 | 澜起科技股份有限公司 | 用于存储器系统的数据更新方法和存储器控制器 |
CN114385067B (zh) * | 2020-10-19 | 2023-07-18 | 澜起科技股份有限公司 | 用于存储器系统的数据更新方法和存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
JP2009223759A (ja) | 2009-10-01 |
US20090240893A1 (en) | 2009-09-24 |
CN101539888B (zh) | 2011-12-21 |
EP2104042A1 (en) | 2009-09-23 |
US8464004B2 (en) | 2013-06-11 |
KR20090100222A (ko) | 2009-09-23 |
KR101284969B1 (ko) | 2013-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101539888B (zh) | 信息处理装置、存储器控制方法以及存储器控制装置 | |
US9081687B2 (en) | Method and apparatus for MONITOR and MWAIT in a distributed cache architecture | |
US5535365A (en) | Method and apparatus for locking shared memory locations in multiprocessing systems | |
Karlin et al. | Competitive snoopy caching | |
CN100416515C (zh) | 高速缓冲存储器线清洗指令和执行该指令的方法,装置以及系统 | |
US5228136A (en) | Method and apparatus to maintain cache coherency in a multiprocessor system with each processor's private cache updating or invalidating its contents based upon set activity | |
CN100394407C (zh) | 低等待时间存储器系统访问 | |
CN102591800B (zh) | 一种弱一致性存储模型的数据访存系统和方法 | |
US8131935B2 (en) | Virtual barrier synchronization cache | |
JP3425158B2 (ja) | マルチバッファデータキャッシュを具えているコンピュータシステム | |
US8095733B2 (en) | Virtual barrier synchronization cache castout election | |
US10002076B2 (en) | Shared cache protocol for parallel search and replacement | |
US20050154836A1 (en) | Multi-processor system receiving input from a pre-fetch buffer | |
US20110208894A1 (en) | Physical aliasing for thread level speculation with a speculation blind cache | |
US20090094418A1 (en) | System and method for achieving cache coherency within multiprocessor computer system | |
JPH08328958A (ja) | 命令キャッシュ、キャッシュメモリ装置及びその方法 | |
CN102449611A (zh) | 用于在弱排序存储系统中发布存储器障碍命令的方法与设备 | |
US20030154351A1 (en) | Coherence message prediction mechanism and multiprocessing computer system employing the same | |
CN101390047A (zh) | 数据处理系统和用于预取数据和/或指令的方法 | |
KR20070040340A (ko) | 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템 | |
CN112559433B (zh) | 一种多核互联总线、核间通信方法及多核处理器 | |
JPH0950400A (ja) | マルチプロセッサシステム | |
US6904465B2 (en) | Low latency inter-reference ordering in a multiple processor system employing a multiple-level inter-node switch | |
JP5265827B2 (ja) | ハイブリッドコヒーレンスプロトコル | |
CN104679684A (zh) | 半导体器件及其操作方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111221 Termination date: 20140119 |