用于访问共享存储器的系统、方法和装置

文档序号:1804175 发布日期:2021-11-05 浏览:6次 >En<

阅读说明:本技术 用于访问共享存储器的系统、方法和装置 (System, method and apparatus for accessing shared memory ) 是由 G·拉玛吉里 T·P·林格 M·帕特尔 J·贾拉勒 A·K·图马拉 M·D·威克海塞尔 于 2020-03-17 设计创作,主要内容包括:本发明公开了一种用于通过基于读取/写入(R/W)访问权限过滤数据访问请求和监听响应来保护相干数据处理网络中的相干存储器内容的系统、装置和方法。请求在存储器保护单元中利用访问权限被增强,并且访问权限用于控制由网络的主节点进行的存储器访问。(A system, apparatus, and method for protecting coherent memory content in a coherent data processing network by filtering data access requests and snoop responses based on read/write (R/W) access permissions. The request is enhanced with access rights in the memory protection unit and the access rights are used to control the memory access by the master node of the network.)

具体实施方式

虽然本公开能够具有许多不同形式的实施方案,但在附图中示出并将在本文详细描述具体实施方案,应当理解,本公开应被视为所述原理的示例,而并非旨在将本公开限制于所示和所述的具体实施方案。在下面的描述中,类似的附图标号用于描述附图的若干视图中的相同、类似或对应的部件。

在本文档中,关系术语,诸如第一和第二、顶部和底部等可仅用于将一个实体或动作与另一个实体或动作区分开,而不一定要求或暗示此类实体或动作之间的任何实际的此类关系或次序。术语“包括”、“包含”、“含有”或它们的任何其它变型旨在涵盖非排他性的包括,使得包括一系列元素的过程、方法、制品或装置不仅包括那些元素,而且可包括未明确列出的、或此类过程、方法、制品或装置固有的其它元素。在没有更多限制的情况下,以“包括”开头的元素并不排除在包括该元素的过程、方法、制品或装置中存在附加的相同元素。

贯穿本文档提及的“一个实施方案”、“某些实施方案”、“实施方案”或类似术语意指结合该实施方案描述的特定特征、结构或特性包括在本公开的至少一个实施方案中。因此,此类短语在本说明书内各个地方的出现不一定都是指相同的实施方案。此外,具体特征、结构或特性可以任何合适的方式无限制地组合在一个或多个实施方案中。

如本文所用,术语“或”将被解释为包含性的或意指任何一种或任何组合。因此,“A、B或C”意指“以下中的任一者:A;B;C;A和B;A和C;B和C;A、B和C”。只有当元件、功能、步骤或动作的组合以某种方式固有地相互排斥时,才会出现该定义的例外。

为了简化和清楚地说明,可在附图中重复附图标号以指示对应的或类似的元件。阐述了许多细节以提供对本文所述的实施方案的理解。可以在没有这些细节的情况下实践实施方案。在其它情况下,未详细描述熟知的方法、程序和部件以避免模糊所述实施方案。本说明书不应被视为限于本文所述的实施方案的范围。

本文所述的实施方案示出了如何使用每存储器区域每主设备的读取/写入权限来保护共享存储器内容免受数据处理网络中的未授权访问者的影响。

根据本公开,提供了一种用于访问共享存储器同时防止未授权访问的改进的措施。

图1是示例性数据处理网络100的示意图。在该简单示例中,网络被配置为1x3网状CMN(相干网状网络)。交叉点(MXP)提供数据处理网络中的交点,并且负责基于目标节点标识符将消息的协议分组路由到正确节点。CMN的一个示例是CoreLinkTM CMN-600相干网状网络,其被设计用于应用范围广泛的智能连接系统,包括网络基础设施、存储装置、服务器、HPC、汽车和工业解决方案。高可扩展性网针对v8-A处理器进行优化,并且可在广泛的性能点范围内进行定制。数据处理网络可包括相干互连器,诸如例如,基于5CHI协议的CMN系列产品(是Arm Limited公司的注册商标)。互连规范识别互连器中的设备,如下所述。

网络可包括作为请求主设备操作并发起数据事务的一个或多个请求节点。示例性请求节点为:

·RN-F:全相干请求节点,诸如中央处理单元(CPU)、相干图形处理单元(GPU)或作为请求主设备操作的其他加速器。

·RN-I:I/O相干请求节点,其例如用于将输入/输出(I/O)流量隧道传输到相干集线器接口(CHI)或其他网络互连器中。

·RN-D:支持DVM流量的分布式虚拟存储器(DVM)请求节点。

网络还可包括从请求节点接收访问请求的一个或多个主节点。每个主节点用作一组给定存储器地址的相干性和序列化点,并且可包括用于监测数据事务并维护关于哪些数据线存储在一个或多个节点处或由一个或多个节点拥有的记录的监听过滤器。当在主节点处接收到存储器访问时,可以向在其本地高速缓存中具有访问数据副本的节点发送监听请求。示例性主节点包括为正常存储器请求提供服务的全相干主节点(HN-F)和负责为I/O请求提供服务的I/O相干主节点(HN-I)。此类节点可包含高速缓存存储器和监听过滤器以实现高效的相干性分辨率,从而在需要时发送监听。高速缓存存储器通常是快速随机存取存储器(RAM),处理器对该RAM的访问可比其对常规RAM的访问更快。

此外,数据处理网络包括一个或多个从节点,当在主节点中无法在本地为请求提供服务时,该一个或多个从节点为来自主节点的该请求提供服务。从节点的示例是存储器控制器或请求节点。否则,请求由接收到请求的主节点来服务。

如图1所示,RNF(全相干请求节点)102可操作地耦接到MXP(网状交叉点)104。MXP104可操作地耦接到MXP 108和MXP 114。MXP 108可操作地耦接到RNI(I/O相干请求节点)106和HNF(全相干主节点)110。MXP 114可操作地耦接到SNF(全相干从节点)112和HND(主节点)118。请求节点102、106通过向主节点(HN-F/HN-I)118、110发送请求来访问数据。从节点112可为例如动态存储器控制器(DMC)。

对于读取访问,主节点118在高速缓存存储器和从节点112中查找传入地址。如果地址在高速缓存存储器中可用,则将通过提供数据来为请求提供服务。如果数据在高速缓存中不可用但在从节点112中被命中,则主节点110向包含高速缓存行并为该请求提供服务的RN-F 102发送监听请求。根据监听请求的类型,被监听的RN-F 102可将数据发送回主节点110(使得主节点可为请求提供服务)或在称为DCT(直接高速缓存传输)的过程中将数据直接发送到请求节点106。

对于来自RN-F 102的写入访问,主节点118检查该请求是针对部分写入还是完全高速缓存行写入。根据请求的大小,主节点118可将请求数据与存储器数据或监听数据合并。合并的数据或是被写入到存储器(从节点),或是可基于请求属性并且当高速缓存存在于主节点中而被填充到高速缓存中。

如果请求在主节点中引起任何错误,例如高速缓存访问错误或监听错误,则主节点将通过以错误状态进行响应来完成请求,并且可任选地提出中断,使得主节点知道访问状态。

相干网络协议诸如CHI协议可指定各种动作请求:

1.具有数据的读取请求-响应将包括数据。

2.不具有数据的读取请求-响应将不包括数据。

3.写入请求-将来自请求者的干净的/经修改的数据写入高速缓存或存储器。

4.高速缓存维护操作(CMO)-将高速缓存行刷新到存储器诸如DRAM、I/O主高速缓存或下游高速缓存以及主节点之外的其他存储器。

5.原子请求-在存储器中执行子高速缓存行原子操作。

6.存储请求-高速缓存行将被存储在RN-F高速缓存内以供将来访问的操作。

在相干网络中,执行各种动作以确保以相干方式维护共享数据。例如,这些动作可确保节点不具有过期的数据副本。然而,由未授权主设备进行的读取/写入访问可能导致损坏存储器内容,并且仅基于权限的过滤无法处理相干系统,其中未授权主设备可能以许多不同的方式暴露损坏数据。因此,在受保护的存储器系统中,特定节点可能不允许一些期望的动作,诸如将修改的数据写入到共享存储器。这对相干性维护具有影响。

本公开涉及保护相干数据处理网络中的存储器。

在一个实施方案中,在数据处理网络的主节点处接收到来自数据处理网络的第一请求节点的请求消息。请求消息包括对与数据处理网络的共享存储器中的第一地址相关联的数据的动作请求,以及第一请求节点对第一存储器地址的一个或多个访问权限。例如,请求动作可以用于读取、写入或改变与第一存储器请求相关联的数据的相干性状态。主节点根据一个或多个访问权限确定第一请求节点是否允许请求动作。当第一请求节点允许请求动作时,根据相干性协议从系统高速缓存、数据处理网络的第二请求节点的本地高速缓存、或共享存储器访问与第一存储器地址相关联的数据。然而,当第一请求节点不允许所请求的动作时,响应消息被发送到第一请求节点,而不访问与第一存储器地址相关联的数据。

访问权限可通过使用位于数据处理网络交叉点处的存储器保护单元(MPU)来提供。MPU在交叉点处将可被配置为限定请求的访问权限的寄存器耦接到网络。

图2示出了具有包含存储器保护单元(MPU)的数据处理网络的示例的系统200。图2示出了主节点RN-F 202、RN-I 216、网状交叉点(MXP)206、212、220、主节点HN-I 210、HN-F208、从节点SN-F218和MPU204、214。图2的系统200可为例如相干网状网络。

系统200中的请求主节点(RN-F202和RN-I216)中的每一者经由存储器保护单元(分别为MPU204和MPU214)耦接到网络互连器。MPU(204,214)包含可配置寄存器,该可配置寄存器被编程为具有地址区和对应的读取/写入权限,如图3所示。

如上所述,存储器保护单元(MPU)204、214可以是计算机硬件单元。MPU可被实现为中央处理单元(CPU)的一部分、互连结构的一部分、或单独的硬件模块或块。在一些实施方案中,MPU是仅提供存储器保护支持的存储器管理单元(MMU)的精简版本,并且可在仅需要存储器保护而非其他存储器管理特征诸如虚拟存储器管理的低功率处理器中实现。

第一请求节点202经由数据处理系统200的第一存储器保护单元204耦接到主节点208。第一存储器保护单元204从第一请求节点202接收动作请求,根据第一存储器地址确定分配给第一请求节点的一个或多个访问权限,并且在将动作请求发送到主节点208之前,利用第一请求节点的一个或多个访问权限来增强动作请求。

在根据本公开的一个实施方案中,访问权限存储在现有架构接口中未使用的请求位中,从而使得存储器保护能够被添加到现有的即时消息协议。在另一个实施方案中,扩展该请求中的现有字段(诸如事务标识符字段)以存储访问权限。在另一个实施方案中,向存储访问权限的请求添加附加字段。

图3示出了存储器保护单元(MPU)地址区和权限的示例300。MPU区0,320(a)至MPU区N,320(n)(其中“n”为任何合适的数字)各自具有读取区域322、写入区域324、起始地址326和结束地址328。MPU区的数量是设计选择,并且可使用任何合适的数量。MPU区0,320(a)具有相关联的读取部分322(a)、写入部分324(a)、起始地址326(a)和结束地址328(a)。类似地,MPU区N 320(n)具有相关联的读取部分322(n)、写入部分324(n)、起始地址326(n)和结束地址328(n)。

当请求节点(例如,图2所示的202)向交叉点(例如,图2所示的204)发送请求时,在MPU中针对由起始地址326和结束地址328表示的区查找来自该请求的地址。当找到匹配时,该区320的对应读取和写入权限属性与该请求一起被发送到主节点。

如果未发现匹配的区,则MPU还可包含默认的读取/写入权限。然后HN使用R/W权限来允许访问存储器内容。

这些权限定义包括:

R:请求具有读取权限

W:请求具有写入权限

~R:请求不具有读取权限

~W:请求不具有写入权限

从请求节点到主节点的读取请求被MPU拦截。在MPU中的表中查找待读取的存储器地址,以确定请求节点对存储器地址的访问权限。MPU然后利用访问权限(AP)增强读取请求并将增强的请求转发至主节点。因此,流程为:

请求节点→RN_Req→MPU区查找→RN_Req+AP→主节点。

对于主节点发送到RN-F的监听请求,在MPU中查找来自监听请求的监听地址。利用访问权限来增强监听响应,并且将增强的监听响应发送回主节点。主节点然后可利用对监听响应的访问权限来做出决定。流程为:

主节点→HNF_Snp_request→MPU查找→SnoopResponse+AP→主节点。

主节点基于R/W访问权限来过滤监听响应。

图4示出了具有访问权限的读取/写入请求类型的示例400。第一请求节点CPU 402与主节点404和从节点406通信。在所示的示例中,从节点406是动态存储器控制器(DMC)。

读取请求408从CPU 402传输到主节点404,该主节点执行权限过滤、高速缓存或存储器访问411。在该示例中,CPU具有对地址的读取和写入(R/W)访问权限,并且利用这些权限增强读取请求408。读取请求410被允许并被传输到DMC406。响应于消息410,数据412从DMC406传输到CPU402。

确认414从CPU 402传输到主节点404。

写入请求416从CPU 402发送到主节点404。作为响应,主节点404将执行权限过滤、高速缓存分配或存储器写入417。在存储器写入之前,从主节点404向CPU 402发送“缓冲区就绪”消息418,以指示主节点准备好接收数据并具有可用于缓冲数据的存储装置。数据420从CPU 402传输到主节点404,并且写入请求422从主节点404传输到DMC 406。“缓冲区就绪”消息426从DMC 406发送到主节点404。最终,如果这是高速缓存行被干扰对象,则由主节点404执行427存储器写入。数据428从主节点404传输到DMC 406。

因此,在一些实施方案中,主节点根据增强的访问权限对动作请求作出响应。换句话讲,主节点根据增强的访问权限“过滤”动作请求。例如,当动作请求包括读取请求并且一个或多个访问权限不包括读取权限时,主节点将虚拟数据发送回第一请求节点而不是为该请求提供服务。

当动作请求包括对经修改数据的写入请求并且一个或多个访问权限不包括写入权限时,主节点丢弃经修改的数据,并且任选地使第一请求节点处的经修改的数据无效。

图5示出了根据本公开的各种实施方案的基于访问权限的请求过滤的示例500。一系列动作由表示CPU、主节点和DMC之间的信息流的箭头示出。图5示出了CPU时间线502、主节点时间线504和DMC时间线506,其中时间从上到下递增。信息流可由数据处理网络的硬件、由在处理器上执行的软件或由它们的组合生成。

如图5所示的请求者保护机制保护良好的数据不被发送到CPU 502。第一事务是来自CPU的读取请求510。读取请求512从CPU传输到主节点。利用访问权限(~R/~W)来增强读取请求512。主节点的权限过滤器根据访问权限确定不允许读取,因此在520处不执行高速缓存或存储器访问。相反,虚拟数据514从主节点传输到CPU,并且确认518从CPU传输回主节点。

第二事务是写入请求530。利用访问权限(~R/~W)增强的写入请求消息532从CPU发送到主节点。作为响应,主节点504根据访问权限确定CPU不具有写入权限并且在540处将请求丢弃。在丢弃请求之前,“缓冲区就绪”消息534从主节点传输到CPU,并且数据536从CPU传输到主节点。然而,由于请求者不具有写入权限,数据536被丢弃。数据536未写入存储器。另选地,主节点可在“缓冲区就绪”消息534中将错误消息发送到CPU。

图5的装置和系统操作示出了请求者保护机制基于访问权限来提供请求过滤。这些权限包括读取权限、写入权限和监听权限。

读取权限:如果RN对读取请求不具有读取权限,则主节点(HN)将不会查找内部高速缓存或监听可能具有高速缓存行的任何RN-F的高速缓存。HN将以零数据和指示读取请求遇到MPU违规的错误状态对请求作出响应。

写入权限:如果RN不具有写入权限,则HN将处理该请求,但是来自RN的任何脏数据不被更新到存储器。当需要时,HN可指示对任何完成响应的权限错误。

监听权限:如果必须监听RN-F的相干性,则检查对监听响应的权限。如果被监听的RN-F返回数据,则该数据将被过滤。仅当RN-F具有写入权限时,才接受具有脏数据的监听响应,如图6所示。

当动作请求包括对数据的读取请求并且所请求数据的副本存储在第二请求节点的本地高速缓存中时,主节点可通过向第二请求节点发送监听消息并接收数据响应来从第二请求节点检索数据。数据响应通过第二请求节点的访问权限来增强。当检索到的数据处于修改状态时,主节点根据访问权限继续进行,如下文所述的图6和图7所示。

当第二请求节点具有对经修改数据的写入权限并且第一请求节点不具有对经修改数据的写入权限时,主节点在第一存储器地址处将经修改的数据写入共享存储器以将经修改的数据变为干净数据,并将干净数据发送到第一请求节点。

当第二请求节点具有对经修改数据的写入权限并且当第一请求节点不具有对经修改数据的写入权限时,主节点将经修改的数据发送到第一请求节点。

当第二请求节点不具有对经修改数据的写入权限时,主节点在第一存储器地址处从共享存储器检索干净数据,将干净数据发送到第一请求节点,并且使第二请求节点处的与第一存储器地址相关联的数据无效。

图6是基于访问权限进行的被监听的中央处理单元(CPU)滤波的信号流程图600。仅当RN-F具有写入权限时,才准许具有脏数据的监听响应。类似地,仅当RN-F具有读取权限时,才接受干净数据。如果存在MPU违规,则丢弃数据。主节点将从DMC获取数据并为请求提供服务。如图6所示,读取请求事务610的信号流程图600由第一请求节点CPU0发起。图6还示出了CPU0时间线602(a)、主节点时间线604、第二请求节点(CPU1)时间线602(b)和DMC时间线606。具有读取和写入权限(R/W)612的读取请求从第一请求节点(CPU0)传输到主节点。主节点的权限过滤器允许高速缓存和/或存储器访问613,因为CPU0具有读取权限。从主节点向已确定具有所请求数据的副本的第二请求节点(CPU1)传输监听请求614。CPU1通过将经修改的或“脏的”监听数据6l6返回至主节点来作出响应。通过CPU1的(R/~W)访问权限来增强监听数据。由于CPU1不具有写入权限,所以在618处由主节点丢弃监听数据,并且从主节点向DMC发送读取请求620以检索干净数据。然后干净数据622从DMC传输到CPU0,并且确认624从CPU0发送到主节点。

图7示出了另一个实施方案700,其中第一请求节点(CPU0)具有读取权限但不具有写入权限(R/~W)。该措施是基于访问权限控制“干净”数据与“脏”(经修改)数据的示例,并且示出了CPU0时间线702(a)、主节点时间线704、第二请求节点(CPU1)时间线702(b)和DMC时间线706。在这种情况下,主节点将经修改的数据写入DMC并向第一请求节点提供干净数据。如果经修改的数据是在没有DMC写入的情况下提供的,则从CPU的任何后续逐出将被丢弃(由于写入权限过滤),从而丢失经修改的数据。

图7还示出了由第一请求节点CPU0发起的读取请求事务710。具有读取权限但不具有写入权限(R/~W)的读取请求712被传输到主节点。由于CPU0具有读取权限,因此主节点的权限过滤器允许高速缓存和/或存储器访问713。从主节点向第二请求节点(CPU1)传输监听请求714。CPU1将使用(R/W)权限增强的经修改的脏数据716传输到主节点704。由于允许写入,主节点向DMC发送写入请求734(具有R/W权限)以发起将经修改的数据写入存储器735。“缓冲区就绪”736信号从DMC传输到主节点,然后数据738从主节点传输到DMC以完成回写入存储器并将数据的相干性状态从经修改的(脏的)变为干净的。干净数据730从主节点传输到CPU0,并且确认732从CPU0传输到主节点。

当动作请求包括使第一请求节点不具有写入权限的第一地址处的数据无效的请求时,并且当数据的副本存储在第二请求节点处时,主节点从第二请求节点检索与第一存储器地址相关联的数据。当检索到的数据处于经修改的相干性状态时,主节点将检索到的数据在第一存储器地址处写入共享存储器,以将与第一存储器地址相关联的数据的相干性状态从“经修改的”变为“干净的”,并使第二请求节点处的与第一存储器地址相关联的数据无效。

图8是用于失效请求权限过滤的方法的信号流程图800。图8示出了CPU0时间线802(a)、主节点时间线804、第二请求节点(CPU1)时间线802(b)和DMC时间线806。失效事务810由CPU0发起。使存储在其他节点处的数据无效的请求可被指定为确保数据唯一性的请求。利用(R/~W)访问权限增强的“确保唯一性”请求812被传输到主节点。主节点处的权限过滤器在814处将请求转换为“clean-unique”请求。从主节点向CPU1传输“snoop-clean-invalid”请求816。CPU1将利用(R/W)权限增强的经修改的数据818传输到主节点以提供监听数据818。在消息820中将失效完成从主节点发送到CPU0,并且将确认822从CPU0发送到主节点。

为了防止经修改的数据丢失,主节点向DMC发送具有(R/W)权限的写入请求824。“缓冲区就绪”826信号从DMC传输到主节点,然后数据830从主节点传输到DMC。因此,在832处将数据写入存储器。

在失效请求权限、请求为失效类型并具有只读权限(例如,ReadOnceMakeInvalid、MakeUnique等)的情况下(其中RN(请求节点)可接收数据或接收无数据的完成,同时使来自所有下游或对等高速缓存的存储器内容无效),主节点将此类请求转换为非侵入式请求,如图8所示。例如,将MakeUnique请求812转换为CleanUnique请求814,并且将ReadOnceMakeInvalid(未标记)转换为ReadOnceCleanInvalid(未标记)。此类转换确保系统中现有的脏的或经修改的数据被写入存储器,并且完成不会损坏任何存储器内容。

对于CMO,如果请求节点具有只读权限,则主节点将进行类似的转换到非侵入式请求。例如,将MakeInvalid转换成CleanInvalid。如果请求节点不具有读取或写入权限,则在不更新存储器的情况下完成事务。

另一个序列是无数据请求权限,其中某些请求类型诸如MakeUnique和CleanUnique具有无数据完成。如果CPU不需要权限错误通知(总线错误),则其可错误地转变为“干净”状态。因此,干净数据是适于存储在相干存储器中的数据。该数据不同于脏数据,因为其是有效的、或清晰的、或可接受的。对该高速缓存行的后续监听可将不良数据暴露于其他CPU和存储器位置。为了避免这种情况,主节点遵循无数据请求完成,其中使监听请求(SnpMakeInvalid)无效以使RN高速缓存中的高速缓存行无效。这确保CPU不具有处于唯一状态的高速缓存行。

图9是根据各种实施方案的用于对写入请求进行权限过滤的方法的信号流程图900。就这一点而言,示出了第一请求节点(CPU0)的时间线902、主节点(HN-F)的时间线904、第二请求节点(CPU1)的时间线906。访问请求908是用于将经修改的(脏的)数据写入存储器以将数据的状态从脏数据变为干净数据的“WriteClean”请求。然而,对该请求所增强的访问权限指示CPU0不具有对数据地址的写入权限。在接收到请求时,主节点HN-F确定CPU0不具有写入权限。主节点不监听CPU1并且不将数据回写到存储器。主节点将完成消息910发送回CPU0,该完成消息指示主节点准备好接收数据。CPU0在消息912中将数据发送到主节点。因此,对于时间段914,CPU0具有经修改的(脏的)但不能被回写到存储器的“不良”数据。一旦数据在消息912中被回写到主节点,CPU0就将数据的状态变为“干净的”。然而,数据仍然是“不良的”。然后,主节点向CPU0发送失效消息916以使CPU0处存储的数据无效。CPU0在消息918中确认这一点。因此,对于时间段920,CPU0将数据的状态显示为“干净的”,但在时间段922中,数据被显示为无效的。

图10是根据本公开的各种实施方案的用于对读取请求进行权限过滤的方法的信号流程图。流程图包括第一请求节点(CPU0)的时间线1002、主节点(HN-F)的时间线1004、第二请求节点(CPU1)的时间线1006和存储器控制器(DMC)的时间线1008。来自第一请求节点(CPU0)的访问请求1010是用于获得存储在第二请求节点(CPU1)处的数据副本的“ReadShared”请求。由于CPU0具有对存储器地址的读取权限,因此主节点向CPU1发送针对数据的监听消息1012。在时间段1014中,CPU1处的数据是“不良”数据,因为该数据被修改但是由于CPU1不具有对数据的写入权限而无法通过回写到存储器来进行清洁。然而,CPU1在监听响应1016中将经修改的(脏的)数据返回到主节点。监听响应1016中的访问权限向主节点指示CPU1不具有写入权限并且数据是“不良的”。主节点向存储器控制器(DMC)发送对干净数据的读取请求1018。干净数据在消息1020中被发送回到第一请求节点(CPU0),并且在消息1022中向主节点确认该数据。CPU0现在具有良好数据,但CPU1仍具有不良数据。因此,主节点向CPU1发送失效消息1024,CPU1在响应1026中确认该消息。以这种方式,CPU1处的“不良”数据不被传递到CPU0,从而防止在CPU0处被回写到存储器,并且存储器受到保护。

图11A和图11B是根据本公开的实施方案的用于过滤访问权限的方法的流程图1100。该方法可在数据处理网络的硬件中实现。

参见图11A,在框1102处访问来自第一请求节点(RN-F或RN-I)的新请求,并且在框1104处执行MXP内的MPU中的地址查找。在框1106处,请求附有R/W(读取/写入)权限。

在框1108处,主节点(HN-F)接收该请求并检查权限。在决策框1110处确定权限是否为可接受的。如果权限为不可接受的,如决策框1110的否定分支1112所示,则在框1114处发送错误响应并完成协议流。

当权限被认为可接受时,如由决策框1110的肯定分支1116所示,在框1118处执行高速缓存/监听过滤器查找。然后在决策框1120处确定是否需要监听。如果不需要,如来自决策框1120的否定分支1122所示,流程继续到点“A”并从那里继续到图11B中的决策框1124。

现在参见图11B,如果监听不需要去往从节点SN-F,如由策框1124的否定分支1126所示,则协议流在框1130处无错误地完成。

如果确定去往SN-F,如决策框1124的肯定分支所示,则在框1158处将请求发送到DMC,并且在框1160处从DMC接收响应。如上所述,在框1030处协议流无错误地完成。

再次参见图11A,当由决策框1120的肯定分支1132所示需要监听时,在框1134处将监听从主节点发送到在监听过滤器中被指示为具有数据副本的节点(称为“被监听者”)。在框1136处,MXP拦截该监听请求并针对被监听者权限执行MPU中的监听地址查找。在框1138处,MXP利用MPU权限对监听事务标识符着色并将监听请求转发至被监听者。在框1140处,被监听者随后处理该监听请求并发送具有被着色事务标识符的监听响应。

在框1142处,MXP拦截监听响应并填充来自被着色事务标识符的MPU权限字段,并且流程继续到点“B”。

再次参考图11B,主节点(HN-F)在框1144处接收监听响应并检查被监听者权限。在决策框1146处,确定是否可使用被监听者数据。如果是,如由决策框1146的肯定分支1148所示,则在框1130处,协议流无错误地完成。

如果不能使用被监听者数据,如由决策框1146的否定分支1150所示,则在决策框1152处确定该请求是否去往SN-F。如果是,如由决策框1152的肯定分支所示,则在框1158处将请求发送到DMC,在框1160处接收DMC响应,并且在框1130处无错误地完成协议流。

如果确定请求不去往SN-F,如由决策框1152的否定分支1154所示,则在框1156处发送错误响应并完成协议流。

在被监听者或第二请求节点处接收到的监听请求包含被监听数据的存储器地址。该存储器地址可用于MPU中以确定访问权限。该监听响应通常不包括可包括事务标识符的存储器地址。在一个实施方案中,当接收到监听请求时访问权限与MPU中的事务标识符相关联,以便利用访问权限增强监听响应。这可例如通过将表存储在MPU中来完成。当从被监听者接收到监听响应时,随后使用监听响应中的相同事务标识符来识别访问权限。在另一个实施方案中,将访问权限添加到被发送到被监听者的事务标识符消息。因此,访问权限被存储在去往被监听者的请求中并且在来自被监听者的响应中被返回。例如,事务标识符的数量可减少四倍,并且访问权限被存储在事务标识符的两个最高有效位中。然后,事务标识符被称为通过访问权限“着色”。在该实施方案中,存储器保护单元拦截去往第二请求节点的监听消息,利用第二请求节点的一个或多个访问权限来为监听消息中的事务标识符着色以提供被着色的监听消息,并将被着色的监听消息转发至第二请求节点。存储器保护单元随后拦截来自第二请求节点的监听响应,对监听响应中的事务标识符进行脱色,并且将利用一个或多个访问权限增强的经脱色的监听响应转发至主节点。

在任一实施方案中,主节点经由MPU向第二请求节点或被监听者发送监听消息,并且第二请求节点发送包括被监听数据的监听响应。第二存储器保护单元利用针对第二请求节点的一个或多个访问权限来增强监听响应。例如,这通过使用事务标识符查找访问权限或通过从被着色的事务标识符读取访问权限来完成。当针对第二请求节点的一个或多个访问权限指示第二请求节点不具有对被监听数据的读取权限时,主节点接收增强的监听响应并丢弃被监听数据。当被监听数据被修改并且针对第二请求节点的一个或多个访问权限指示第二请求节点不具有对经修改数据的写入权限时,主节点同样丢弃被监听数据。此外,当在相干性协议允许第二请求节点保留第一数据的副本的情况下主节点丢弃被监听数据时,可使第二请求节点处的被监听数据无效。

当主节点丢弃经被监听数据时,主节点在第一存储器地址处从共享存储器检索干净数据并将其发送到第一请求节点。

图12示出了根据本公开的实施方案的用于过滤请求的装置1200。该装置用于基于权限访问请求来确定是否授予对共享存储器的访问权限或是否拒绝权限访问请求。装置1200包括CPU01202(a)、CPU01202(n)、模块1204(a)、模块1204(n)、高速缓存1206(a)、高速缓存1206(n)、节点模块1246和DMC 1236。CPU0 1202(a)可被视为第一处理器或第一CPU主设备,或CPU/IO。CPU11202(n)可被视为第二处理器或第二CPU主设备。

相干互连器1246包括交叉点(MXP)1212和1220以及主节点HN-F 1216。MXP 1212和1220各自包含存储器保护单元(MPU)(分别为1213和1221)。

CPU01202(a)和CPU1 1202(n)分别经由链路1210、1242和1224、1226与相干互连器1246双向通信。相干互连器1246经由链路1234、1238与DMC(存储器控制器)1236双向通信。双向通信可以是数据通信总线、导线、导线组、无线信道或允许在装置1200的组成部件之间传输数据(发送和/或接收)的其他合适的传输介质。

在操作中,CPU01202(a)的高速缓存1206(a)向互连器1246的MXP 1212发送数据访问请求,如线1242所示。交叉点1212处的MPU利用访问权限增强请求。

交叉点1212处的MPU经由线1214将请求发送到主节点(HN-F)1216。在链路1218上,HN-F 1216经由MXP 1220向CPU1(1202(n))发送监听请求。在1220处的MPU利用访问权限为监听请求中的事务标识符着色,并且经由线1224将监听请求转发至CPU1 1202(n)的高速缓存1206(n)。

在高速缓存1206(n)处接收之后,数据响应经由线1226从高速缓存1206(n)发送到交叉点1220处的MPU。数据响应中的事务标识符由MPU脱色并经由线1228转发至HN-F1216。HN-F模块1216经由线1234将数据传输到DMC 1236。

HN-F模块1216经由线1240将数据发送到MXP 1212。MXP1212经由线1210将数据转发至CPU01202(a)的高速缓存1206(a)。

因此,在各种实施方案中,提供了包括多个交叉点开关、主节点和互连器的装置。交叉点开关包括第一存储器保护单元并向第一请求节点提供接口,而互连器耦接在多个交叉点开关、主节点与共享存储器之间。主节点提供用于访问共享存储器的相干性点。存储器保护单元拦截从第一请求节点去往主节点的消息,利用第一请求节点的一个或多个访问权限来增强所拦截的消息,并且将增强的消息转发至主节点。主节点根据一个或多个访问权限来响应增强的消息。

在存储器保护单元处接收到的消息与共享存储器中的第一存储器地址相关联,并且存储器保护单元被配置为根据第一存储器地址在第一存储器保护单元的地址表中查找一个或多个访问权限。

第二请求节点处的存储器保护单元从主节点接收监听消息,因为主节点被配置为响应于来自第一请求节点的访问请求而发送监听消息。第二请求节点响应于监听消息而将包含被监听数据的监听响应发送回主节点。第二请求节点处的存储器保护单元拦截监听响应,利用第二请求节点的一个或多个访问权限来增强监听响应,并且将增强的监听响应转发至主节点。主节点被进一步配置为当针对第二请求节点的一个或多个访问权限指示第二请求节点不具有对被监听数据的读取权限时丢弃被监听数据,以及当被监听数据被修改并且针对第二请求节点的一个或多个访问权限指示第二请求节点不具有对经修改数据的写入权限时丢弃被监听数据。

此外,主节点在被监听数据被丢弃时从共享存储器检索干净数据并将干净数据转发至第一请求节点。

当来自第一请求节点的消息包括对与共享存储器中的第一存储器地址相关联的数据的读取请求并且一个或多个访问权限指示第一请求节点不具有对第一存储器地址的读取权限时,主节点向第一请求节点发送虚拟数据。当来自第一请求节点的消息包括对第一数据的写入请求并且一个或多个访问权限指示第一请求节点不具有对第一存储器地址的写入权限并且该写入请求属于允许第一请求节点保留第一数据的副本的类型时,主节点可使第一请求节点处的第一数据无效。当一个或多个访问权限指示第一请求节点不具有对第一存储器地址的写入权限时,主节点可丢弃写入请求。

可以通过对在监听请求中接收到的事务标识符着色来获得监听响应中的访问权限。

图13A至图13D示出了事务标识符的MPU着色。公共事务标识符被包括在作为同一事务的一部分的所有消息中,诸如沿图12所示的请求链路1242、1214、1218和1236以及响应链路1234、1238、1240和1210传递的消息,并且使得响应能够与请求相关联。根据一个实施方案,事务标识符可为受限的,使得标识符位可用于访问权限。

图13A示出了用于保持事务标识符的寄存器1320,其具有位1322(a)...(n)(其中“n”为任何合适的数字)。在该示例中,寄存器1320具有不用于受限事务标识符的两个位1322(a)和1322(b)。例如,这些位可用零填充。与在图12中被描述为监听请求1218的监听请求对应的寄存器状态1320从HN-F 1216被传输到MXP 1230。

图13B示出了具有位1322(a)...(n)的寄存器1320(其中“n”是任何合适的数字)。寄存器1320具有分别用R和W填充的两个位1322(a)和1322(b)。与在图12中被描述为监听请求1234的监听请求对应的寄存器状态1320从MXP 1230被传输到CPU1 1202(n)的高速缓存1206(n)。MXP中的MPU使用监听请求中的地址来检索访问权限,并且在事务标识符字段中用访问权限来填充两个未使用的位1322(a)和1322(b)。事务标识符被称为通过访问权限“着色”。

图13C示出了具有位1322(a)...(n)的寄存器1320(其中“n”为任何合适的数字)。寄存器1320具有分别用R和W填充的两个位1322(a)和1322(b)。该寄存器状态1320对应于在图12中经由链路1236从CPU11202(n)传输到MXP 1230的事务标识符。不需要改变CPU1的操作,因为CPU返回与其所接收到的事务标识符相同的(用访问权限着色的)事务标识符。

图13D示出了具有位1322(a)...(n)的寄存器1320(其中“n”为任何合适的数字)。寄存器1320具有用零填充的两个位1322(a)和1322(b)。位1324(a)和1324(b)分别用R和W填充。该寄存器1320对应于去往主节点的监听响应。其示出R位和W位不在事务标识符1320中。示出为位1324(a)和(b)的访问权限从事务标识符中移除,并且在图12中经由链路1238从MXP 1230传输到HN-F 1216的监听响应中替换为零。利用访问权限来增强去往主节点的监听响应。

如本文所用,术语“处理器”可涵盖或利用可编程硬件,诸如:计算机、微控制器、嵌入式微控制器、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。这些硬件示例还可组合使用以获得期望的功能控制器模块。计算机、微控制器和微处理器可使用语言诸如汇编、C、C++、C#等来编程。FPGA、ASIC和CPLD通常使用硬件描述语言(HDL)诸如VHSIC硬件描述语言(VHDL)或Verilog来编程,该硬件描述语言配置可编程设备上具有较少功能的内部硬件模块之间的连接。

已参考根据本文所述实施方案的方法、装置、系统和计算机程序产品的流程图和/或框图来描述本公开。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可在硬件中实现,或通过所执行的计算机程序指令来实现,或通过这两者的组合来实现。

如本领域的技术人员将理解的,实施方案可被描述为系统、方法或计算机程序产品。因此,本公开可采取完全硬件实施方案、完全软件实施方案(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施方案的形式,所述软件和硬件方面在本文中可统称为“电路”、“模块”或“系统”。

此外,本公开可采取存储硬件描述语言(HDL)(诸如VHSIC硬件描述语言(VHDL)或Verilog)的指令的非暂态计算机可读介质的形式,该硬件描述语言描述所述装置或存储根据权利要求所述的装置的网表描述。此类描述可用于例如配置现场可编程门阵列(FPGA)或类似的可配置硬件,或者用作定制集成电路的设计工具的输入。

已在本文中详细描述的各种代表性实施方案以举例的方式而非限制的方式给出。本领域的技术人员应当理解,可对所述实施方案的形式和细节进行各种改变,从而得到保持在所附权利要求的范围内的等同实施方案。

29页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于检测到的读取命令活跃流的自适应预读高速缓存管理器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类