多处理器系统的探听方法及其装置与流程

文档序号:11582558阅读:202来源:国知局
交叉引用本发明要求如下优先权:编号为62/266,087,申请日为2015年12月11日的美国临时专利申请。上述美国临时专利申请在此一并作为参考。本发明涉及一种存储器一致性(memorycoherence)管理方法。特别地,本发明涉及一种具有多端口处理器的探听(snoop)机制以及探听过滤器(snoopfilter)结构的存储器一致性管理方法。
背景技术
::在计算机技术中,存储器一致性涉及存储在多个本地存储器(例如,高速缓存或静态随机存取存储器)中的共享资源数据的一致性。对于多核系统或多处理器系统的中央处理单元(centralprocessingunit,cpu),当公用存储器资源的本地存储器维持一致时,本地存储器中不一致的数据将带来许多问题。探听技术(snooping)是一种监测存取存储位置的地址行(addressline)的技术。对于具有共享存储器的多处理系统来说,基于硬件存储器一致性的探听技术已经广泛被采用。在一致多处理器系统中,通常存在一个主存储器与多个本地存储器(例如,每个cpu或处理器对应的一个或多个本地存储器),其具有存入两个或多个本地存储器的预定存储位置值。对于一致性,本地存储控制器监测连接主存储器与多个本地存储器的总线,以监听广播。对于本地存储器的漏读,可在总线上广播读请求。例如,如果一个本地存储器已经高速缓存了对应读地址的数据,则将数据副本发送至请求者,并且将具有上述数据的本地存储器的状态设定为“有效”。对于本地漏写,探听总线操作可保证将其他本地存储器中的任意副本设定为“无效”。当写入状态为“有效”的本地存储器中,将本地存储器的状态修改为“脏”,并且将广播发送出去以无效其他本地副本。然而,对于大多数应用来说,由于其他处理器通常不具有已请求的高速缓存行,所以大量探听操作将导致丢失情况。丢失探听操作会影响已探听本地存储器的操作,并且易于导致整个系统的性能退化。丢失探听操作也可导致多余功耗。技术实现要素:有鉴于此,本发明揭露一种多处理器系统的探听方法及其装置。根据本发明实施例,提供一种多处理器系统的探听方法,包含:从第一处理器接收请求,其中,所述第一处理器具有多个第一本地存储器以及多个探听端口;以及响应于所述请求,在不探听所述第一处理器的所述多个探听端口情况下,探听第二处理器的一个或多个探听端口,其中,所述第二处理器具有多个第二本地存储器。根据本发明另一实施例,提供一种多处理器系统的探听方法,包含:从第一处理器接收请求,其中,所述第一处理器具有多个第一本地存储器;以及响应于所述请求,在不探听第三处理器的一个或多个探听端口或者第四处理器的一个或多个探听端口中的任意探听端口情况下,探听第二处理器的一个或多个探听端口,其中,所述第二处理器具有多个第二本地存储器,所述第三处理器具有多个第三本地存储器,所述第四处理器具有多个第四本地存储器,并且所述第一处理器、所述第二处理器、所述第三处理器以及所述第四处理器中的每个处理器至少具有连接至本地存储器一致互连电路的一个探听端口。根据本发明另一实施例,提供一种探听装置,用于多处理器系统,包含:本地存储器一致互连电路;以及多个第一处理器,其中,所述多个第一处理器至少包含第一处理器与第二处理器;其中,所述第一处理器具有多个第一本地存储器以及多个探听端口,所述第二处理器具有多个第二本地存储器,配置所述本地存储器一致互连电路从所述第一处理器接收请求;以及响应于所述请求,在不探听所述第一处理器的所述多个探听端口情况下,探听第二处理器的一个或多个探听端口。本发明提供的多处理器系统的探听方法及其装置可节省功耗及系统资源。附图说明图1是根据本发明实施例描述的多端口多处理器系统的探听过滤操作的示例方案;图2是根据本发明实施例描述的多端口多处理器系统的探听操作示例方案;图3是根据本发明另一实施例描述的多端口多处理器系统的探听操作的示例方案;图4是根据本发明实施例描述的装置的示意图;图5是根据本发明实施例描述的进程的示意流程图;图6是根据本发明实施例描述的进程的示例流程图;图7是根据传统方法描述的多端口多处理器系统的探听过滤操作示意图;图8是根据传统方法描述的多端口多处理器系统的探听操作示意图。具体实施方式在说明书及权利要求书当中使用了某些词汇来指称特定的元件。所属
技术领域
:的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及权利要求书并不以名称的差异作为区分元件的方式,而是以元件在功能上的差异作为区分的准则。在通篇说明书及权利要求项中所提及的“包含”为一开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或通过其它装置或连接手段间接地电气连接至第二装置。接下来的描述是实现本发明的最佳实施例,其是为了描述本发明原理的目的,并非对本发明的限制。可以理解地是,本发明实施例可由软件、硬件、固件或其任意组合来实现。在本发明方案中,所述探听机制的本地存储器一致互连电路(localmemorycoherentinterconnectcircuit)可在处理器层级将探听端口(snoopport)进行组合,并且相应地进行探听。因此,本地存储器一致互连电路可获知哪个探听端口属于哪个处理器的情况。此外,在本发明方案中,探听过滤器可基于探听端口集合而不是基于探听端口,记录本地存储器行信息。另外,在本发明方案中,可利用查找表确定从中接收请求的探听端口与待探听的探听端口之间的相关性。图1是根据本发明实施例描述的多端口多处理器系统105的探听过滤操作的示例方案100。多端口多处理器系统105可包含多个处理器,例如,处理器110与120。处理器110与120中的每一个处理器可为单核/单cpu处理器,或者多核/多cpu处理器。为了简化起见,在图1中显示处理器110具有一个或多个cpu112(在图1中标为“cpu0”),以及处理器120具有一个或多个cpu122(在图1中标为“cpu1”)。处理器110与120中的每一个处理器也包含多个本地存储器。在图1所示的示例中,处理器110具有多个本地存储器114,并且处理器120具有多个本地存储器124。本地存储器114以及本地存储器124可存储数据,用于cpu0与cpu1分别快速存取。此外,为了一致性,也可将一个处理器的特定本地存储器中存储的数据副本存储入另一处理器的特定本地存储器中。处理器110与120中的每一个处理器可通过各自探听端口,通信连接本地存储器一致互连电路130。在图1所示的示例中,处理器110通过探听端口s0以及s1连接至本地存储器一致互连电路130,并且处理器120通过探听端口s2、s3、s4以及s5连接至本地存储器一致互连电路130。因此,可通过探听端口s0及/或s1存取及/或探听处理器110的本地存储器114。相似地,可通过探听端口s2、s3、s4及/或s5存取及/或探听处理器120的本地存储器124。本地存储器一致互连电路130包含探听过滤器140。在方案100中,探听过滤器140可在处理器层级维持向量记录(vectorrecord),其中上述向量记录涉及哪些处理器具有哪些本地存储器行(例如,高速缓存行)的情况。为了说明的目的但并不限于,在图1中,处理器110的本地存储器114具有本地存储器行8000、8001、9002、9003、a008以及a009,并且处理器120的本地存储器124具有本地存储器行8000、8001、8002、8003以及9003。因此,探听过滤器140维持的记录指示处理器110具有本地存储器行8000、8001、9002、9003、a008以及a009,其在“c0”列(代表处理器110的cpu0)中将每个上述本地存储器行标为“1”并且在其他本地存储器行标为“0”。相似地,探听过滤器140维持的记录指示处理器120具有本地存储器行8000、8001、8002、8003以及9003,其在“c1”列(代表处理器120的cpu1)中将每个上述本地存储器行标为“1”并且在其他本地存储器行标为“0”。因此,探听过滤器140可基于处理器或在处理器层级,而不是基于探听端口,记录本地存储器行(例如,高速缓存线)信息。有利地,相比于传统方法中位元向量的位元数量对应探听端口的数量,本发明中可将位元向量的位元数量减少至处理器的数量。在图1所示的示例中,存在2个处理器(处理器110与120),尽管存在6个探听端口(s0、s1、s2、s3、s4以及s5),但位元向量的位元数量是2。相反地,图7是根据传统方法700描述的多端口多处理器系统705的探听过滤操作示意图。多端口多处理器系统705包含多个处理器,例如,处理器710与720。处理器710与720中的每一个处理器可为单核/单cpu处理器,或者多核/多cpu处理器。处理器710具有一个或多个cpu712(在图7中标为“cpu0”),以及处理器720具有一个或多个cpu722(在图7中标为“cpu1”)。处理器710具有多个本地存储器714,并且处理器720具有多个本地存储器724。处理器710与720中的每一个处理器可通过各自探听端口,通信连接本地存储器一致互连电路730。在图7所示的示例中,处理器710通过探听端口s0以及s1连接至本地存储器一致互连电路730,并且处理器720通过探听端口s2、s3、s4以及s5连接至本地存储器一致互连电路730。因此,可通过探听端口s0及/或s1存取及/或探听处理器710的本地存储器714。相似地,可通过探听端口s2、s3、s4及/或s5存取及/或探听处理器720的本地存储器724。本地存储器一致互连电路730包含探听过滤器740。在传统方法700中,探听过滤器740可在端口或接口级别维持向量记录,其中上述向量记录涉及哪些处理器具有哪些本地存储器行(例如,高速缓存行)。为了说明的目的但并不限于,在图7中,处理器710的本地存储器714具有本地存储器行8000、8001、9002、9003、a008以及a009,并且处理器720的本地存储器724具有本地存储器行8000、8001、8002、8003以及9003。因此,探听过滤器740维持的记录指示探听端口s0与本地存储器行8000、9002、a008相关联,并且探听端口s1与本地存储器行8001、9003、a009相关联,其分别在“s0”列与“s1”列中将每个关联的上述本地存储器行标为“1”。探听过滤器740维持的记录指示探听端口s0不与本地存储器行8001、8002、8003、9003、a009相关联,并且探听端口s1不与本地存储器行8000、8002、8003、9002、a008相关联,其分别在“s0”列与“s1”列中将每个未关联的上述本地存储器行标为“0”。相似地,探听过滤器740维持的记录指示探听端口s2与本地存储器行8000相关联,探听端口s3与本地存储器行8001相关联,探听端口s4与本地存储器行8002相关联,并且探听端口s5与本地存储器行8003、9003相关联,其分别在“s2”列、“s3”列、“s4”列与“s5”列中将每个关联的上述本地存储器行标为“1”。探听过滤器740维持的记录指示探听端口s2不与本地存储器行8001、8002、8003、9002、9003、a008以及a009相关联,探听端口s3不与本地存储器行8000、8002、8003、9002、9003、a008以及a009相关联,探听端口s4不与本地存储器行8000、8001、8003、9002、9003、a008以及a009相关联,并且探听端口s5不与本地存储器行8000、8001、8002、9002、a008以及a009相关联,其分别在“s2”列、“s3”列、“s4”列以及“s5”列中将每个不关联的上述本地存储器行标为“0”。如上所述,在传统方法700中,位元向量的位元数量对应探听端口数量,并且将多余信息记录在探听过滤器740中。这样会产生探听过滤器740的无效部分以及对有限资源的无效利用。图2是根据本发明实施例描述的多端口多处理器系统105的探听操作示例方案200。在图2所示的示例中,多端口多处理器系统105的本地存储器一致互连电路130包含一个或多个地址解码器,例如,地址解码器132与134(在图2中分别标为“地址解码器0”与“地址解码器1”)。在方案200中,当进行探听操作时,可探听属于不同处理器或高速缓存主机(cachemaster)的探听端口,但不可探听属于相同处理器或高速缓存主机的探听端口。在图2所示的示例中,通过地址解码器0允许并实现cpu1与cpu0之间的探听路由(例如,通过探听端口s2与s0)。相似地,通过地址解码器1允许并实现cpu0与cpu1之间的探听路由(例如,通过探听端口s1与s3)。另一方面,由于探听端口s0与s1皆属于或关联于处理器110的cpu0,所以禁止通过探听端口s0与s1进行探听路由。同样地,由于探听端口s2、s3、s4与s5皆属于或关联于处理器120的cpu1,所以禁止通过探听端口s2、s3、s4与s5中的任意两个探听端口进行探听路由。在实施例中,可以单循环形式(roundrobinfashion)执行探听路由。在方案200中,当配置cpu接受通过任意探听端口的探听操作时,可将探听操作路由至属于或关联于该cpu的任意端口。例如但不限于,可配置cpu0接受通过端口s0或s1进行探听操作。因此,当cpu0接受探听操作时,可将探听操作路由至端口s0或s1。在方案200中,当配置cpu通过相应端口接收特定地址的探听操作时,通过地址解码器,可将探听操作路由至相应端口。例如但不限于,可配置cpu1接受通过端口s2实施的对本地存储器行8000的探听操作、通过端口s3实施的对本地存储器行8001的探听操作、通过端口s4实施的对本地存储器行8002的探听操作以及通过端口s5实施的对本地存储器行8003与9003的探听操作。因此,根据探听请求中指示的端口s2、s3、s4、s5中的哪个端口的地址,地址解码器1可通过请求中指示地址所对应的端口将探听操作路由至cpu1。在实施例中,可通过使用交错操作的取模(modulo)结果(例如,本领域技术人员熟知的任意交错机制)或通过使用特定哈希表(hashtable)将每个地址与多个探听端口的每个探听端口相关联,实现地址与端口之间的映射。相反地,图8是根据传统方法800描述的多端口多处理器系统805的探听操作示意图。多端口多处理器系统805包含多个处理器,例如,处理器810与820。处理器810与820的每一个处理器可为单核/单cpu处理器,或者多核/多cpu处理器。处理器810具有一个或多个cpu812(在图8中标为“cpu0”),以及处理器820具有一个或多个cpu822(在图8中标为“cpu1”)。处理器810具有多个本地存储器814,并且处理器820具有多个本地存储器824。处理器810与820中的每一个处理器可通过各自探听端口,通信连接本地存储器一致互连电路830。在图8所示的示例中,处理器810通过探听端口s0以及s1连接至本地存储器一致互连电路830,并且处理器820通过探听端口s2、s3、s4以及s5连接至本地存储器一致互连电路830。因此,可通过探听端口s0及/或s1存取及/或探听处理器810的本地存储器814。相似地,可通过探听端口s2、s3、s4及/或s5存取及/或探听处理器820的本地存储器824。在传统方法800中,本地存储器一致互连电路830将每个接口或探听端口作为独立高速缓存主机。即,允许处理器内部进行探听。例如,如图8所示,允许在探听端口s0与s1之间以及探听端口s2、s3、s4、s5中的任意两个端口之间的探听操作。然而,处理器内部的探听操作是多余的,并且这种多余探听操作将导致浪费功耗以及性能衰退。图3是根据本发明另一实施例描述的多端口多处理器系统305的探听操作的示例方案300。多端口多处理器系统305可包含多个处理器,例如,处理器310、320、340与350。处理器310、320、340与350中的每一个处理器可为单核/单cpu处理器,或者多核/多cpu处理器。为了简化起见,在图3中显示处理器310具有一个或多个cpu(在图3中标为“cpu0”),处理器320具有一个或多个cpu(在图3中标为“cpu1”),处理器340具有一个或多个cpu(在图3中标为“cpu2”),以及处理器350具有一个或多个cpu(在图3中标为“cpu3”)。处理器310、320、340与350中的每一个处理器也包含多个本地存储器。上述本地存储器可存储数据,用于cpu0、cpu1、cpu2以及cpu3分别快速存取。为了一致性,也可将一个处理器的特定本地存储器中存储的数据副本存储入另一处理器的特定本地存储器中。处理器310、320、340与350中的每一个处理器可通过各自探听端口,通信连接本地存储器一致互连电路330。在图3所示的示例中,处理器310通过探听端口s0以及s1连接至本地存储器一致互连电路330,处理器320通过探听端口s2、s3、s4以及s5连接至本地存储器一致互连电路330,处理器340通过探听端口s6以及s7连接至本地存储器一致互连电路330,并且处理器350通过探听端口s8、s9、s10以及s11连接至本地存储器一致互连电路330。因此,可分别通过探听端口s0-s11中的一个或多个探听端口存取及/或探听处理器310、320、340与350的任意本地存储器。在方案300中,多个处理器可进行组合并且归属于各自共享空间(shareablespace)。在图3所示的示例中,处理器310与320属于共享空间0,并且处理器340与350属于共享空间1。因此,探听操作不仅位于任意两个处理器或高速缓存主机之间,而且位于属于相同共享空间的任意两个处理器或高速缓存主机之间。在实施例中,一个处理器可探听位于相同共享空间的另一处理器,但不可探听位于不同共享空间的另一处理器。例如但不限于,在实施例中,允许处理器310的cpu0与处理器320的cpu1之间的探听操作,而且也允许处理器340的cpu2与处理器350的cpu3之间的探听操作。然而,不允许处理器310的cpu0与处理器340的cpu2(或者处理器350的cpu3)之间的探听操作。相似地,不允许处理器320的cpu1与处理器340的cpu2(或者处理器350的cpu3)之间的探听操作。在实施例中,可在探听列表中定义处理器或高速缓存主机之间的探听关系。在图3所示的示例中,可生成、建立或维持探听列表360,以定义处理器310的cpu0、处理器320的cpu1、处理器340的cpu2以及处理器350的cpu3之间的探听关系。在探听列表360中,数值“1”指示允许通过关联两个相应cpu/处理器的两个探听端口进行的探听操作,并且数值“0”指示不允许通过关联两个相应cpu/处理器的两个探听端口进行的探听操作。如探听列表360所示,允许cpu0的端口s0、s1与cpu1的端口s2、s3、s4、s5之间的探听操作。相似地,允许cpu2的端口s6、s7与cpu3的端口s8、s9、s20、s22之间的探听操作。图4是根据本发明实施例描述的装置400的示意图。装置400可执行各种功能以实施用于存储器一致性管理的方案、技术、进程以及方法(例如,上述描述的方案100、200、300以及下面将描述的方案500与600),其中,上述存储器一致性管理具有多端口处理器的探听机制以及探听过滤器结构。装置400可为电子装置的一部分,其中电子装置可为计算装置、可携式或移动装置、可穿戴装置等。例如,装置400可为智能手机、智能手表、智能手环、智能项链、个人数字助理或计算装置(例如,平板电脑、膝上电脑、笔记本电脑、台式电脑、服务器等)中的一个装置或者一个装置的一部分。装置400可至少包含图4所示的组件,例如,本地存储器一致互连电路430、至少第一组处理器410(1)-410(m)以及探听端口416(1)-416(m),其中,m是大于1的正整数。第一组处理器410(1)-410(m)通过探听端口416(1)-416(m)通信连接至本地存储器一致互连电路430。相似地,可通过探听端口416(1)-416(m)中的一个或多个探听端口存取及/或探听第一组处理器410(1)-410(m)的特定处理器的一个或多个本地存储器。第一组处理器410(1)-410(m)的每个处理器可为单核/单cpu处理器,或者多核/多cpu处理器。即,第一组处理器410(1)-410(m)的每个处理器可分别具有一个或多个cpu。在图4中,第一组处理器410(1)-410(m)分别具有cpu412(1)-412(m)。此外,第一组处理器410(1)-410(m)的每个处理器可分别具有多个本地存储器。在图4中,第一组处理器410(1)-410(m)分别具有第一组本地存储器414(1)-414(m)。例如但不限于,第一组本地存储器414(1)-414(m)可为高速缓存、sram及/或适合本发明的任意其他存储器。可配置cpu412(1)-412(m)的每一个cpu分别使用本地存储器414(1)-414(m),以存储指令与数据。即,本地存储器414(1)-414(m)可存储数据,分别用于cpu412(1)-412(m)的快速存取。为了一致性,也可将一个处理器的特定本地存储器中存储的数据副本存储入另一处理器的特定本地存储器中。上述装置相比于从主存储器(未示出)存取数据来说,可极大降低时间与功率消耗。本地存储器一致互连电路430可为具有电子组件的硬件(或固件),其中,上述电子组件可包含一个或多个晶体管、一个或多个二极管、一个或多个电容器、一个或多个电阻器、一个或多个电感器、一个或多个忆阻器及/或一个或多个变容二极管。换句话说,在本发明某些实施例中,本地存储器一致互连电路430是配置执行特定算法、软件指令、算法以及逻辑以影响存储器一致性管理的专用硬件,其中,存储器一致性管理具有多端口处理器的探听机制与探听过滤器结构。本地存储器一致互连电路430可包含专用电路,其具有探听电路432、探听过滤器434、一个或多个地址解码器436以及存储单元438。虽然上述组件作为本地存储器一致互连电路430的分立组件进行描述,但探听电路432、探听过滤器434、一个或多个地址解码器436以及存储单元438中的几个组件或全部组件可集成在单一硬件(例如,电路或ic芯片)中。在本发明方案中,本地存储器一致互连电路430可执行多个操作。例如,本地存储器一致互连电路430的探听过滤器434可通过将本地存储器414(1)-414(m)的每一个关联至cpu412(1)-412(m)的每一个,在处理器层级维持本地存储器行信息(例如,通过探听端口416(1)-416(m)发送的信息)的记录。即,探听过滤器434可将本地存储器414(1)关联至处理器410(1),将本地存储器414(2)关联至处理器410(2),以此类推,直到将本地存储器414(m)关联至处理器410(m)。探听过滤器434也可记录连接至探听过滤器434的本地存储器(例如,本地存储器414(1)-414(m))的所有行状态。在本发明方案中,当本地存储器一致互连电路430从第一组处理器410(1)-410(m)中任意一个接收请求时,探听过滤器434基于上述记录过滤请求,以确定上述请求是否与本地存储器414(1)-414(m)中的任意一个相关。根据请求与哪个本地存储器相关,探听电路432执行相应操作。首先,响应于请求与处理器的本地存储器中的一个相关,探听电路432探听处理器410(1)-410(m)中一个处理器的至少一个探听端口。例如但不限于,一旦从处理器410(1)接收请求并且确定上述请求与处理器410(2)的本地存储器414(2)中的一个相关,则作为响应,探听电路432探听处理器410(2)的探听端口416(2)中的至少一个探听端口。其次,响应于上述请求与处理器的所有本地存储器不相关,探听电路432忽略对处理器的探听操作。例如但不限于,一旦从处理器410(1)接收请求并且确定上述请求与处理器410(2)的本地存储器414(2)中的所有本地存储器不相关,则作为响应,探听电路432忽略探听操作并且不探听处理器410(2)。再次并且可选地,为了响应上述请求与其来自处理器的任意一个本地存储器相关,探听电路432探听请求来源的处理器的至少一个探听端口。例如但不限于,一旦从处理器410(1)接收请求并且确定上述请求与处理器410(1)的本地存储器414(1)中一个相关,则作为响应,探听电路432探听处理器410(1)的探听端口416(1)中的至少一个探听端口。在实施例中,装置400也可包含第二组处理器420(1)-420(n),其中,n是大于1的正整数。第二组处理器420(1)-420(n)通过探听端口426(1)-426(n)通信连接至本地存储器一致互连电路430。相似地,可通过探听端口426(1)-426(n)中的一个或多个探听端口存取及/或探听第二组处理器420(1)-420(n)的特定处理器的一个或多个本地存储器。第二组处理器420(1)-420(n)的每个处理器可为单核/单cpu处理器,或者多核/多cpu处理器。即,第二组处理器420(1)-420(n)的每个处理器可分别具有一个或多个cpu。在图4中,处理器420(1)-420(n)分别具有cpu422(1)-422(n)。此外,第二组处理器420(1)-420(n)的每个处理器可分别具有多个本地存储器。在图4中,第二组处理器420(1)-420(n)分别具有第二组本地存储器424(1)-424(n)。例如但不限于,第二组本地存储器424(1)-424(n)可为高速缓存、sram及/或适合本发明的任意其他存储器。可配置cpu422(1)-422(n)的每一个cpu分别使用本地存储器424(1)-424(n),以存储指令与数据。在实施例中,本地存储器一致互连电路430也可维持探听列表(与图3中的探听列表360类似),其中上述探听列表位于存储单元438中。探听列表可按照预定方式定义第一组处理器410(1)-410(m)与第二组处理器420(1)-420(n)之间的探听路由,其中,该预定方式是允许属于相同共享空间的任意两个处理器之间的探听路由,但是不允许属于不同共享空间的任意两个处理器之间的探听路由。因此,本地存储器一致互连电路430基于上述探听列表进行探听操作。例如但不限于,第一组处理器410(1)-410(m)的处理器属于第一共享空间440,并且第二组处理器420(1)-420(n)的处理器属于第二共享空间442,其中第一共享空间440不同于第二共享空间442。在这种情况下,探听电路432允许第一组处理器410(1)-410(m)的任意两个处理器(例如,处理器410(1)与410(2))之间,或者第二组处理器420(1)-420(n)的任意两个处理器(例如,处理器420(1)与420(2))之间的探听路由操作。然而,既然第一组处理器410(1)-410(m)与第二组处理器420(1)-420(n)属于不同共享空间440与442,则探听电路432禁止第一组处理器410(1)-410(m)中的任意处理器与第二组处理器420(1)-420(n)的任意处理器之间的探听路由操作。在实施例中,可按照单循环形式执行探听路由操作。在实施例中,第一组处理器410(1)-410(m)与第二组处理器420(1)-420(n)的至少一个处理器可为具有多个探听端口的多端口处理器,其中,上述多个探听端口连接本地存储器一致互连电路430。上述多端口处理器(例如,处理器410(1)、410(2)、420(1)或420(2))可接受通过任意探听端口的探听操作。在实施例中,在探听本多端口处理器的探听端口中,不管请求中指示的一个本地存储器的地址,本地存储器一致互连电路430可将探听操作路由至本多端口处理器的任意一个探听端口。例如但不限于,处理器410(2)可为具有多个探听端口416(2)的多端口处理器,其中,上述多个探听端口416(2)连接本地存储器一致互连电路430。一旦接收请求,则不考虑请求指示的本地存储器414(2)中的一个本地存储器的地址,探听电路432将探听操作路由至处理器410(2)的多个探听端口416(2)的任意一个探听端口。可选择地,在探听多端口处理器的探听端口中,本地存储器一致互连电路430执行多个操作,以替换对多端口处理器的多个探听端口中任意一个探听端口进行探听操作。具体地,一个或多个地址解码器436可识别请求指示的多端口处理器的多个本地存储器中一个本地存储器的地址。此外,一个或多个地址解码器436可通过将多端口处理器的多个探听端口与多端口处理器的多个本地存储器地址进行映射匹配,或者通过使用交错操作的取模结果(例如,通过本领域技术人员熟知的交错机制),或者通过使用将每个地址与多个探听端口中的各自探听端口相关联的特定哈希表,确定多端口处理器的多个探听端口中的一个探听端口与所识别地址相关联。另外,探听电路432可基于一个或多个地址解码器436确定的结果,将探听操作路由至多端口处理器的多个探听端口中的已确定探听端口。例如但不限于,处理器420(2)可为具有多个探听端口426(2)的多端口处理器,其中,上述多个探听端口426(2)连接本地存储器一致互连电路430。一旦接收请求,则一个或多个地址解码器436可识别请求指示的处理器420(2)的本地存储器424(2)的一个本地存储器的地址。此外,一个或多个地址解码器436可通过将多端口处理器420(2)的探听端口426(2)与多端口处理器420(2)的本地存储器424(2)的地址进行映射匹配,或者通过使用交错操作的取模结果(例如,通过本领域技术人员熟知的交错机制),或者通过使用将每个地址与多个探听端口中的各自探听端口相关联的特定哈希表,确定多端口处理器420(2)的多个探听端口426(2)中的一个探听端口与所识别地址相关联。另外,探听电路432可基于一个或多个地址解码器436确定的结果,将探听操作路由至多端口处理器420(2)的多个探听端口426(2)中的已确定探听端口。图5是根据本发明实施例描述的进程500的示意流程图。进程500可为用于存储器一致性管理的方案、技术、进程与方法,其中,上述存储器一致性管理具有多端口处理器的探听机制与探听过滤器结构,并且上述方案、技术、进程与方法可部分或全部涉及方案100、方案200与方案300。进程500可表示装置400所实施的内容。进程500可包含一个或多个区块510、520与530描述的一个或多个操作、动作或功能。虽然在图5中使用分立区块进行描述,但根据具体需求可将进程500中的各种区块分割为附加区块,结合为更少区块,或者消除区块。此外,可按照图5所示的顺序或者其他不同顺序执行进程500的区块。装置400可执行进程500。接下来以装置400为背景描述进程500,这仅是为了描述的目的,并不是对本发明的限制。进程500开始于区块510。在区块510,进程500利用装置400的本地存储器一致互连电路430从第一处理器接收请求,其中,该第一处理器具有多个本地存储器(称为第一本地存储器)以及多个探听端口。进程500从区块510进入区块520。在区块520,为了响应对请求的接收,进程500利用装置400的本地存储器一致互连电路430在不探听第一处理器的任意一个探听端口情况下探听第二处理器的一个或多个探听端口,其中,第二处理器具有多个本地存储器(称为第二本地存储器)。进程500从区块520进入区块530。在区块530,进程500利用装置400的本地存储器一致互连电路430通过将第一本地存储器与第二本地存储器中的每一个本地存储器与第一处理器或第二处理器相关联,在处理器层级维持本地存储器行信息记录。在实施例中,在不探听第一处理器的任意探听端口情况下探听第二处理器的一个或多个探听端口中,进程500利用装置400的本地存储器一致互连电路430执行一个或多个操作。例如,进程500利用探听过滤器434基于上述记录过滤请求,以确定请求是否与第二本地存储器中的一个本地存储器相关。可替换地或其他地,进程500利用探听电路432探听第二处理器的至少一个探听端口,以响应请求与第二本地存储器中的一个本地存储器相关的确定步骤。可替换地或其他地,进程500利用探听电路432忽略对第二处理器的探听操作,以响应请求与第二本地存储器中的所有本地存储器不相关的确定步骤。在实施例中,第二处理器可包含具有多个探听端口的多端口处理器,其中,上述多个探听端口连接本地存储器一致互连电路。配置第二处理器接受通过上述多个探听端口中的任意探听端口进行的探听操作。在这种情况下,在探听第二处理器的一个或多个探听端口中,不管请求指示的第二本地存储器中的一个本地存储器的地址如何,进程500可利用本地存储器一致互连电路430将探听操作路由至第二处理器的多个探听端口中的一个探听端口(例如,以单循环的形式)。在实施例中,第二处理器可包含具有多个探听端口的多端口处理器,其中,上述多个探听端口连接本地存储器一致互连电路。配置第二处理器接受通过上述多个探听端口中的一个探听端口进行的探听操作,其中,上述一个探听端口与一个或多个第二本地存储器的一个或多个地址相关。在这种情况下,在探听第二处理器的一个或多个探听端口中,进程500可利用一个或多个地址解码器436识别请求指示的第二本地存储器中的一个本地存储器的地址。此外,进程500可利用一个或多个地址解码器436确定第二处理器的一个探听端口作为与已识别地址相关联的探听端口。另外,进程500可利用一个或多个地址解码器436基于上述确定结果将探听操作路由至多个探听端口中的已确定探听端口。在实施例中,在确定第二处理器的一个探听端口作为与已识别地址相关联的探听端口中,进程500可利用一个或多个地址解码器436通过使用交错操作的取模结果(例如,通过本领域技术人员熟知的交错机制),或者通过使用将每个地址与多个探听端口中的各个探听端口相关联的特定哈希表,将第二处理器的多个探听端口与第二本地存储器的地址进行映射匹配。在实施例中,在不探听第一处理器的任意探听端口情况下探听第二处理器的一个或多个探听端口中,进程500可利用探听电路432在不探听第一处理器、第三处理器或第四处理器的任意探听端口情况下,探听第二处理器的一个或多个探听端口。第三处理器具有多个本地存储器(称为第三本地存储器),以及第四处理器具有多个本地存储器(称为第四本地存储器)。第一处理器、第二处理器、第三处理器以及第四处理器的每一个处理器可至少具有连接至本地存储器一致互连电路的一个探听端口。在实施例中,在不探听第一处理器、第三处理器或第四处理器的任意探听端口情况下探听第二处理器的一个或多个探听端口中,进程500可利用探听电路432维持探听列表,其中,探听列表可按照预定方式定义第一处理器、第二处理器、第三处理器以及第四处理器之间的探听路由,并且该预定方式是允许属于相同共享空间的任意两个处理器之间的探听路由,但是不允许属于不同共享空间的任意两个处理器之间的探听路由。在这种情况下,基于上述探听列表进行探听操作。第一处理器与第二处理器属于第一共享空间,并且第三处理器与第四处理器属于第二共享空间,其中,第一共享空间不同于第二共享空间。图6是根据本发明实施例描述的进程600的示例流程图。进程600可为用于存储器一致性管理的方案、技术、进程与方法,其中,上述存储器一致性管理具有多端口处理器的探听机制与探听过滤器结构,并且上述方案、技术、进程与方法可部分或全部涉及方案100、方案200与方案300。进程600可表示装置400所实施的内容。进程600可包含一个或多个区块610、620(包含子区块622)与630描述的一个或多个操作、动作或功能。虽然在图6中使用分立区块进行描述,但根据具体需求可将进程600中的各种区块分割为附加区块,结合为更少区块,或者消除区块。此外,可按照图6所示的顺序或者其他不同顺序执行进程600的区块。装置400可执行进程600。接下来以装置400为背景描述进程600,这仅是为了描述的目的,并不是对本发明的限制。进程600开始于区块610。在区块610,进程600利用装置400的本地存储器一致互连电路430从第一处理器接收请求,其中,该第一处理器具有多个本地存储器(称为第一本地存储器)。进程600从区块610进入区块620。在区块620,为了响应上述请求,进程600利用装置400的本地存储器一致互连电路430在不探听第三处理器或第四处理器的任意一个探听端口情况下,探听第二处理器的一个或多个探听端口,其中,第二处理器具有多个本地存储器(称为第二本地存储器),第三处理器具有多个本地存储器(称为第三本地存储器),以及第四处理器具有多个本地存储器(称为第四本地存储器)。第一处理器、第二处理器、第三处理器以及第四处理器中的每一个处理器至少具有连接本地存储器一致互连电路的一个探听端口。在实施例中,如子区块622所示,在不探听第三处理器或第四处理器的任意一个探听端口情况下探听第二处理器的一个或多个探听端口中,进程600利用探听电路432维持探听列表,其中,探听列表可按照预定方式定义第一处理器、第二处理器、第三处理器以及第四处理器之间的探听路由,并且该预定方式是允许属于相同共享空间的任意两个处理器之间的探听路由,但是不允许属于不同共享空间的任意两个处理器之间的探听路由。基于上述探听列表进行探听操作。第一处理器与第二处理器属于第一共享空间,并且第三处理器与第四处理器属于第二共享空间,其中,第一共享空间不同于第二共享空间。进程600从区块620进入区块630。在区块630,进程600利用装置400的本地存储器一致互连电路430通过将第一本地存储器与第二本地存储器的每一个本地存储器与第一处理器或第二处理器相关联,在处理器层级维持本地存储器行信息的记录。在实施例中,在探听第二处理器的一个或多个探听端口中,进程600可利用探听过滤器434基于上述记录过滤请求,以确定请求是否与第二本地存储器中的一个本地存储器相关。可替换地或其他地,进程600可使用探听电路432探听第二处理器的至少一个探听端口,以响应请求与第二本地存储器中的一个本地存储器相关的确定步骤。可替换地或其他地,进程600可使用探听电路432忽略对第二处理器的探听操作,以响应请求与第二本地存储器中的所有本地存储器不相关的确定步骤。可替换地,在探听第二处理器的一个或多个探听端口中,进程600可利用探听过滤器434基于上述记录过滤请求,以确定请求是否与第一本地存储器中的一个本地存储器或者第二本地存储器中的一个本地存储器相关。可替换地或其他地,进程600可使用探听电路432探听第二处理器的至少一个探听端口,以响应请求与第二本地存储器中的一个本地存储器相关的确定步骤。可替换地或其他地,进程600可使用探听电路432探听第一处理器的至少一个探听端口,以响应请求与第一本地存储器中的一个本地存储器相关的确定步骤。可替换地或其他地,进程600可使用探听电路432忽略对第一处理器或第二处理器的探听操作,以响应请求与第一本地存储器中的所有本地存储器或者第二本地存储器中的所有本地存储器不相关的确定步骤。在实施例中,第二处理器可包含具有多个探听端口的多端口处理器,其中,上述多个探听端口连接本地存储器一致互连电路。配置第二处理器接受通过上述多个探听端口中的任意探听端口进行的探听操作。在这种情况下,在探听第二处理器的一个或多个探听端口中,不管请求指示的第二本地存储器中的一个本地存储器的地址如何,进程600可利用探听电路432将探听操作路由至第二处理器的多个探听端口中的一个探听端口(例如,以单循环的形式)。在实施例中,第二处理器可包含具有多个探听端口的多端口处理器,其中,上述多个探听端口连接本地存储器一致互连电路。配置第二处理器接受通过上述多个探听端口中的一个探听端口进行的探听操作,其中,上述一个探听端口具有一个或多个第二本地存储器的各自一个或多个地址。在这种情况下,在探听第二处理器的一个或多个探听端口中,进程600可利用一个或多个地址解码器436识别请求指示的第二本地存储器中一个本地存储器的地址。此外,进程600可利用一个或多个地址解码器436确定第二处理器的一个探听端口作为与已识别地址相关联的探听端口。另外,进程600可利用一个或多个地址解码器436基于上述确定结果将探听操作路由至多个探听端口中的已确定探听端口。在实施例中,在确定第二处理器的一个探听端口作为与已识别地址相关联的探听端口中,进程600可利用一个或多个地址解码器436通过使用交错操作的取模结果(例如,通过本领域技术人员熟知的交错机制),或者通过使用将每个地址与多个探听端口中的各个探听端口相关联的特定哈希表,将第二处理器的多个探听端口与第二本地存储器的地址进行映射匹配。呈现上述描述以允许本领域技术人员根据特定应用以及其需要的内容实施本发明。所述实施例的各种修改对于本领域技术人员来说是显而易见的,并且可将上述定义的基本原则应用于其他实施例。因此,本发明不局限于所述的特定实施例,而是符合与揭露的原则及新颖特征相一致的最宽范围。在上述细节描述中,为了提供对本发明的彻底理解,描述了各种特定细节。然而,本领域技术人员可以理解本发明是可实施的。像“第一”、“第二”、“第三”等在权利要求书中修饰元件的序词并不意味着自身具有任何优先权、优先级或者一个元件的等级高于另一个元件或者方法执行的时间顺序,而仅仅作为标号用于区分一个具有确切名称的元件与具有相同名称(除了修饰序词)的另一元件。上述的本发明实施例可在各种硬件、软件编码或两者组合中进行实施。可根据本发明配置上述处理器执行特定任务,其通过执行定义了本发明揭示的特定方法的机器可读软件代码或固件代码来完成。可将软件代码或固件代码发展为不同的程序语言与不同的格式或形式。也可为了不同的目标平台编译软件代码。然而,根据本发明执行任务的软件代码与其他类型配置代码的不同代码样式、类型与语言不脱离本发明的精神与范围。在不脱离本发明精神或本质特征的情况下,可以其他特定形式实施本发明。描述示例被认为说明的所有方面并且无限制。因此,本发明的范围由权利要求书指示,而非前面描述。所有在权利要求等同的方法与范围中的变化皆属于本发明的涵盖范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1