首页>>科技 >>内容

ocpc对接方式,OCP互连一致方案应用

发布时间:2023-10-10 11:45:27编辑:温柔的背包来源:

很多朋友对ocpc对接方式,OCP互连一致方案应用不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

ocpc对接方式,OCP互连一致方案应用

与通过OCP互连段的操作一样,本地化总线执行将整个多核集群上的处理器分开。一致性方案不能直接保证基于总线拦截和依赖总线仲裁的访问顺序,需要不同的通信方式来保证数据访问的一致性。在争夺L1行数据请求排序的过程中,还出现了其他挑战。应对这些挑战的一种方法是为每个处理单元添加一致的消息通信,如图1所示。这些消息提供了一种监听缓冲区一致性的方法。

图1一致处理系统

一致消息包含OCP协议中的新命令。处理器系统中的成员向集中式共识管理器发送共识消息。管理器提供访问排序和消息路由,并为对等成员提供监听访问。这些对等成员将以其单独的L1线路状态进行响应,并发出消息响应。基于这些响应,一致性管理器启动内核间一致性数据的数据移动,并将访问集中在更高级别的存储器层,例如L2和L3高速缓存。

I/O一致性单元还可以提供一种方式来逐渐采用/逐步淘汰一致性地址空间中的数据,这是一致性消息交换的一部分。

除了OCP协议中的新消息命令,还需要特定的处理器来响应一致的状态请求,因此它们不仅仅是总线处理的发起者(主人)。一致性处理系统满足这一要求的方法可以是提供一个OCP从端口来接收和响应一致性管理器发送的消息。处理器的一致请求将利用OCP主端口。在处理集群中,内核和一致性管理器之间的一致性消息交换称为“干预”。

处理器的OCP接收端口的干预,因此称为“干预端口”。

如图1所示,1004K系统的每个独立处理器都基于我们的多线程处理器架构,该架构可以在单个标量和9级流水线中提供两个独立的线程和进程上下文。复制的L1数据高速缓存标签阵列可以用于同时访问CPU操作和介入查找。一致性处理系统可以支持MESI高速缓存的行一致性。

处理系统的一致性管理器接收传入的消息,并通过其请求单元(由每个CPU和I/O一致性单元驱动的OCP从端口)将其序列化。根据其地址空间和上下文,串行化的消息通过使用“存储器接口单元”被发送到更高级别的高速缓存层,或者通过使用“拦截代理”被发送到对等处理器和I/O一致性单元。探听代理启动OCP主处理(干预),以找到每个处理器的一致的L1高速缓存行状态。

干预返回到消息发起者,这被称为自我干预,并帮助发起者提供访问排序。由CPU发起的一致的消息响应和数据响应在“响应单元”中建立,并发送给每个CPU。

一致的OCP命令1004K CPS中使用的OCP命令可以分为三类。第一类是维护MESI缓存线状态的一致消息。它们是CPU加载/存储操作的结果,可以启动CPU和/或内存子系统之间的数据移动。同一级别的CPU(一致处理系统)中的所有CPU将接收到发起者发送的一致消息,并根据其缓存线一致状态做出响应。一致性管理器将根据需要启动数据移动。

统一高速缓存操作指令用于维护统一地址空间中的高速缓存行。I/O流量将新的一致线带入域中,或者从高速缓存线中移除一致上下文。此外,还需要同步存储层。第三种是非统一命令,在统一地址空间外的存储区执行OCP主端口处理。它们代表OCP读写命令。一致的信息

一致处理系统可以执行四个一致消息,这四个一致消息是由CPU加载/存储活动引起的L1高速缓存行状态变化引起的。发起的CPU将此消息作为OCP主端口命令发送。系统的对等CPU接收基于线状态改变的干预,并以其本地高速缓存线状态进行响应。

第一种消息类型是CohReadOwn,它指示当试图修改缓存行时发生的缓存未命中。当同级内核遇到“修改”状态的行时,会强制写回内存子系统,执行本地失效。作为一种优化,本地遇到的行数据将被转发到发出请求的CPU,以减少访问延迟。请求者的CPU将使该行成为“专有”行,并执行行修改指令。然后,高速缓存行状态将变为“已修改”。

在等待该行被重新填充时,请求方CPU将继续执行另一个线程。

CohReadShared消息指示在读行操作期间发生的缓存未命中。不需要修改行。遇到“已修改”状态的行的对等内核将强制写回内存子系统。命中的兄弟线将转换到“共享”状态。命中数据将被转发到请求者内核,并以“共享”状态安装。然后执行行读取操作。在等待该行被重新填充时,发出请求的CPU将继续执行另一个线程。

CohUpgrade消息指示高速缓存行修改指令命中“共享”行。会通知同级内核取消hit线。执行修改指令后,“共享”行将升级为“修改”行。

最后,共写回消息指示一致的高速缓存行已经被驱逐。一致性管理器将通过干预端口启动数据移动,并将数据转发到存储器子系统。然后,被逐出的高速缓存行被新的、可能一致的地址替换。在这种情况下,CohReadOwn或CohReadShared导致了驱逐。一致的缓存操作指令为了响应缓存操作,需要发起一致的消息并发送给同级内核。

CohCopyBack—将一致的缓存行写回存储子系统。CohInvalidate—清除一致的高速缓存行,而不是将其内容写回存储子系统。cowrite invalidate-I/O一致性单元将一致性域注入新的高速缓存行。I/O一致性单元通知系统高速缓存行将离开一致性域。CohCompletionSync--可以对没有数据的命令进行排序。不一致的命令

传统的OCP命令,例如“读”和“写”命令,由整个一致处理系统支持,以处理非一致存储器访问的数据访问。当高速缓存的非统一地址中的命中失败,或者非高速缓存的访问导致存储子系统中的读取操作时,发出读取命令。如果响应数据安装为非统一缓存,则非缓存数据将被直接使用。获取和加载/存储活动会导致读取处理。

当将高速缓存的、非一致逐出的数据或高速缓存地址范围存储写入存储子系统时,发出写命令。内核的OCP主端口执行命令和数据阶段的处理。

实例一致读取共享消息

CPU0在一致缓存线上遇到加载未命中,并启动了cohReadShared消息(无意修改)。一致性管理器向所有核心发送干预消息,其中核心1将响应“修改”命中。一致性管理器现在启动修改的行写回,以将行数据从内核1中的干预端口移动到存储子系统。命中的内核1缓存线转换到“共享”状态(参见图2)。行数据移动也被转发到内核0,在那里它可以以“共享”状态安装。

图2一致阅读共享消息OCP互连的结论有助于支持基于消息的一致性方案。集中式一致性管理器可以序列化从各个内核发送的一致性消息,并询问对等体的一致性状态。内核之间的数据转发可以减少对更高级内存层的访问延迟和流量。单个内核支持OCP主端口启动数据访问,支持OCP从端口接收来自一致性管理器的查询。

以上知识分享希望能够帮助到大家!