CN117407194A - 一种基于缓存一致性的异构通信架构 - Google Patents
一种基于缓存一致性的异构通信架构 Download PDFInfo
- Publication number
- CN117407194A CN117407194A CN202311408429.XA CN202311408429A CN117407194A CN 117407194 A CN117407194 A CN 117407194A CN 202311408429 A CN202311408429 A CN 202311408429A CN 117407194 A CN117407194 A CN 117407194A
- Authority
- CN
- China
- Prior art keywords
- data
- request
- cache
- unit
- response
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 62
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 238000005516 engineering process Methods 0.000 claims abstract description 3
- 230000004044 response Effects 0.000 claims description 65
- 238000000034 method Methods 0.000 claims description 31
- 238000012544 monitoring process Methods 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 17
- 238000012790 confirmation Methods 0.000 claims description 14
- 238000013461 design Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 9
- 239000003795 chemical substances by application Substances 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 3
- 238000012858 packaging process Methods 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 11
- 239000007771 core particle Substances 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及芯片架构技术领域,具体涉及一种基于缓存一致性的异构通信架构。包括:处理器单元,包括多个处理器核心,用于执行程序指令,其中所述处理器核心具有不同的架构和性能特点,以满足不同类型的计算需求;缓存单元,与处理器单元相连,包括多级缓存结构,用于存储处理器单元所需的数据,所述缓存单元能够根据数据访问模式和局部性自动调整缓存策略,以提高缓存命中率;通信单元,用于在处理器单元之间传输数据,所述通信单元采用高速互连技术,并且数据传输格式采用数据包的形式,并且包含独立的协议层、网络层和链路层;缓存一致性控制单元,用于维护缓存单元中数据的一致性。本发明能够实现异构处理器之间的高效数据共享和同步。
Description
技术领域
本发明涉及芯片架构技术领域,具体涉及一种基于缓存一致性的异构通信架构。
背景技术
伴随着先进工艺制程的演进、摩尔定律的放缓,以及业界对于算力需求的不断提升,将CPU、GPU、FPGA等多种不同计算芯粒组成异构集成计算系统来进行加速运算是目前解决市场对于大算力芯片需求的主流方向。但目前国内外的大算力芯粒集成系统大多是面向特定应用需求,进行定制化的系统设计,缺乏灵活性和可扩展性,不利于整个芯粒行业的产业化发展。因此针对芯粒集成的特点,建立一种全新的通用存储架构与访存机制,来提高存储的灵活性、优化资源的利用效率、降低访存延迟、节约系统设计成本,对于大算力异构集成芯粒系统的发展具有重要意义。在现代计算系统中,异构处理器(如CPU、GPU、FPGA等)被广泛应用于提高性能和能效。这些处理器需要高效地共享和同步数据,以确保正确的计算结果和最佳性能。缓存一致性是实现这种高效数据共享的关键机制,它确保了各处理器缓存中的数据与主存储器中的数据保持一致。
现有的通信架构,如传统的总线和点对点互连,可能无法满足异构处理器之间高带宽、低延迟和高可扩展性的通信需求。此外,现有的缓存一致性协议(如MESI、MOESI和MSI等)主要针对同构处理器设计,可能不适用于异构处理器之间的通信。
因此,需要一种新的通信架构,能够在异构处理器之间实现高效的缓存一致性,以提高系统性能和能效。本发明旨在解决这一问题,提出了一种基于缓存一致性的异构通信架构。
发明内容
针对现有技术,本发明的目的在于提供一种基于缓存一致性的异构通信架构,旨在实现异构处理器之间的高效数据共享和同步,同时所述异构通信架构具有可扩展性,可以根据实际需求灵活地添加或移除处理器单元和缓存单元,从而满足不同应用场景的性能要求。
为解决上述技术问题,本发明提供了一种基于缓存一致性的异构通信架构,包括:
处理器单元,包括多个处理器核心,用于执行程序指令,其中所述处理器核心具有不同的架构和性能特点,以满足不同类型的计算需求;
缓存单元,与处理器单元相连,包括多级缓存结构,用于存储处理器单元所需的数据,所述缓存单元能够根据数据访问模式和局部性自动调整缓存策略,以提高缓存命中率;
通信单元,用于在处理器单元之间传输数据,所述通信单元采用高速互连技术,并且数据传输格式采用数据包的形式,并且包含独立的协议层、网络层和链路层;
缓存一致性控制单元,用于维护缓存单元中数据的一致性,所述缓存一致性控制单元采用高效的缓存一致性协议,以确保多个处理器单元访问相同数据时能够获取最新的数据副本。
优选的,还包括缓存管理单元,用于实现对系统资源的统一管理和调度,在系统中充当倒数第二级缓存的控制单元,以实现与处理器单元内部缓存和最后一级缓存的数据交换。
优选的,还包括输入输出控制单元,用于管理和调度外部设备与处理器单元之间的数据传输,包括数据接收、发送和缓冲区管理。
优选的,还包括支持容错和故障恢复功能,具体为:处理器核心的错误检测和纠正、缓存单元的数据校验和通信单元的故障检测与恢复。
优选的,还包括:在互连总线中,节点间的访问主要包括两个过程:请求和响应;
首先,主机节点的主机设备以本地标准协议发起请求,该请求通过节点控制器完成包括事务映射、地址映射、数据包封装过程的协议转换,以请求包的形式从主机节点发往该节点的路由器;然后,主机节点的路由器完成请求端的数据包输入握手确认,请求包通过路由网络路由转发至设备端的路由节点,在该节点的请求端完成数据包输出的握手确认,从而将数据包传输到设备端;
之后,设备端控制器对请求包进行解析,并将该请求事务转换为特定于该设备的操作,从机设备完成该事务后产生响应,再由节点控制器封装为响应包发往该节点通信单元的路由代理;接着,设备端的路由代理完成请求端的数据包输入握手确认,响应包通过路由网络路由转发至主机节点的路由节点,在该节点的请求端完成数据包输出的握手确认从而将数据包传输到请求端;最后,请求端的缓存单元控制器完成对响应包的解析,并以本地标准协议向主机设备返回本次事务的响应结果,并通过响应通道对于设备端的代理节点提交完成响应。
优选的,数据包通信协议的网络端主要包括:输入输出握手控制的发送/接收控制模块、数据包发送缓冲区、数据包接收缓冲区三个部分,以及用于实现低功耗设计的链路状态机。
优选的,还包括如下六条通道:
请求发送通道REQ,请求端发出处理器单元的请求事务,设备端接收请求事务;
数据发送通道WDA,请求端发出写数据/监听响应数据,设备端接收写数据/监听响应数据;
响应发送通道REP,请求端发送监听响应和完成响应,设备端接收来自处理器单元的响应;
响应接收通道ACK,请求端接收来自设备端的响应,设备端发出请求响应;
数据接收通道RDA,请求端接收读事务的数据,设备端发出读事务的数据;
监听接收通道SNP,请求端接收监听请求事务,设备端发出监听请求事务。
优选的,为了保证消息的流控,所有通道应当遵循以下的传输优先级:REQ<SNP<ACK<RDA<REP<WDA。
本发明与现有技术相比,具有如下有益效果:
本发明公开了一种基于缓存一致性的异构通信架构,该架构针对多处理器系统中不同处理器之间的通信性能和系统整体性能进行优化。所述异构通信架构包括:处理器单元:包含多个处理器核心,用于执行程序指令。缓存单元:与处理器单元相连,包括多级缓存结构,用于存储处理器单元所需的数据,作为请求端的私有缓存和设备端的公共缓存。通信单元:用于在处理器单元之间传输数据。缓存一致性控制单元:用于维护缓存单元中数据的一致性。本发明的异构通信架构还可以包括其他辅助模块,如内存管理单元、输入输出控制单元,定序控制单元等,以实现对系统资源的统一管理和调度。通过实施本发明,可以在保证缓存一致性的同时,有效降低处理器间通信延迟,提高系统整体性能。此外,本发明的异构通信架构具有良好的可扩展性,可以根据实际需求灵活地添加或移除处理器单元和缓存单元,从而满足不同应用场景的性能要求。
附图说明
图1为本发明系统架构通道结构图。
图2为本发明系统总体架构结构图。
图3为本发明基于设备端和请求端系统的详细架构结构图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
本发明实施例提供了一种新型互连结构,异构处理器互连,支持异构处理器之间的高带宽、低延迟和高可扩展性通信。该互连结构采用分层和模块化的设计,可轻松扩展到多核处理器、多节点系统和异构系统。设计统一的内存原语进行访存操作,研究多节点互连网络和专用访存接口芯粒内部信息表示方法,实现不同规格存储介质访存过程信息传输统一标准格式承载,实现统一访存层次与灵活扩展,并支持多个访存接口芯粒灵活交互。由于不同规格存储介质在底层微架构以及所使用的标准接口协议上存在很大的差异,对这些存储介质的访问过程也不尽相同。通过对不同存储介质在高层次的抽象,设计一套统一的内存访问方式,使主控节点对存储的访存过程标准化,任何主机节点或者对等节点均可通过类似内存访问的通用包通信方式对设备端进行访问。主机对不同的存储访问都被统一成了访存请求与访存响应,其中访存请求主要是主机节点对存储介质的读写请求,访存响应主要是设备端在接收到请求之后对主机节点的反馈。
在互连总线中,节点间的信息传递与数据交互均基于数据包进行,这是一种打包的控制字段和标识符集合,用于传递协议消息。在数据包中发送的一些控制字段包括操作码、内存属性、地址、数据和错误响应。每个通道需要不同的数据包控制字段。例如,请求通道上用于读或写的数据包需要一个地址字段,而数据通道上的数据包需要数据和字节使能字段。在本项目要设计的芯粒集成存储架构体系中,节点间的访问主要包括两个过程:请求和响应。首先,主机节点的主机设备以本地标准协议发起请求,该请求通过节点控制器完成包括事务映射、地址映射、数据包封装等过程的协议转换,以请求包的形式从主机节点发往该节点的路由器。然后,主机节点的路由器完成请求端的数据包输入握手确认,请求包通过路由网络路由转发至设备端的路由节点,在该节点的请求端完成数据包输出的握手确认,从而将数据包传输到设备端。
之后,设备端控制器对请求包进行解析,并将该请求事务转换为特定于该设备的操作,从机设备完成该事务后产生响应,再由节点控制器封装为响应包发往该节点通信单元的路由代理。接着,设备端的路由代理完成请求端的数据包输入握手确认,响应包通过路由网络路由转发至主机节点的路由节点,在该节点的请求端完成数据包输出的握手确认从而将数据包传输到请求端。最后,请求端的缓存单元控制器完成对响应包的解析,并以本地标准协议向主机设备返回本次事务的响应结果,并通过响应通道对于设备端的代理节点提交完成响应。
上述的基于数据包的请求与响应过程可以分为节点内的包通信协议与标准协议转换的过程、节点间基于请求包和响应包的互操作过程、互连结构上的数据包路由转发的过程。其中,节点内的协议转换属于专用访存接口芯粒设计研究课题的内容。而剩余的两个传输过程则分别对应数据包通信协议的两个层次,节点间基于请求包和响应包的互操作过程对应逻辑事务层,互连结构上的数据包路由转发的过程对应网络链路层。
数据包通信协议的网络端主要对数据包在互连网络中的路由转发过程做出规定,包括数据包从节点控制器到路由代理、路由代理之间的传输过程,数据包通信协议的逻辑事务层是协议的最上层,负责对事务类型、数据包格式、端对端的互操作机制等进行定义,各节点均依据逻辑事务层规定的必要信息来发起和完成事务。在本协议中,并不对物理层做规定,物理层接口属于节点内部的自身特性。
如图2图3所示,网络端主要功能包括数据包的输入输出握手控制、数据缓存以及时钟域转换。网络端的设计对于主机端和存储端的转换接口是通用的,即针对不同的存储设备、主机设备,均可使用相同的网络端设计。网络端主要包括输入输出握手控制的发送/接收控制模块、数据包发送缓冲区、数据包接收缓冲区三个部分,以及用于实现低功耗设计的链路状态机。系统有两个方向,分别是从请求端发往设备端和设备端发往请求端,每个方向对应着3个通道,并且为了保证消息的流控,所有通道应当遵循以下的传输优先级REQ<SNP<ACK<RDA<REP<WDA。
如图2和图3所示,设备侧负责内存数据包通信协议与本地标准接口协议的转换,因此根据不同的设备本地标准接口的不同,以及主从设备之间的访存的差异性,需要做定制化设计。存储设备转接口设备侧的基本结构,即其中的数据包接收/发送控制和交互模块主要实现包含接收缓冲区读控制、发送缓冲区写控制、请求包解析、响应包封装、协议转换、事务管理等功能。其中,事务管理和协议转换两个模块需要根据不同存储设备的接口不同进行定制化设计,其他部分可进行复用。
主机端设备侧的设计相较于存储设备,除了请求包封装和响应包解析两个不同外,还额外有负责地址映射的数据包生成/控制模块、存储器阵列模块。其中地址映射模块负责将主机设备通过本地协议提供的访问地址映射为路由网络中的目的节点与目的操作地址,存储器阵列模块则是包含了针对特定主机进行特殊事务的配置信息和相关消息等等。在将数据包转换成本地标准接口协议后,在通过访存模块,本地标准接口协议数据包通过访存队列发送到存储介质控制器,对相应的存储芯粒进行访存操作。
除了以上的主要的基于异构缓存一致性的基本功能,设计架构还囊括了以下内容:
本架构使用完成响应来维护事务的顺序,对于事务保序的责任节点是设备端的目录路由节点,设备端可以通过暂停事务来维护事务顺序。例如,请求节点可能已经有一个正在处理的针对特定缓存行的未完成事务。如果系统中的另一个请求者发起一个导致对同一行进行监听的事务,设备端可以暂停这个后来的事务。当原始的请求端完成一致事务时,请求端使用其响应通道向设备端发送完成确认消息。然后,设备端解除等待完成确认的监听阻塞。
本架构中的事务遵循按端点顺序和请求顺序排序,端点顺序保持从单个请求者到单个从属地址范围的事务顺序。例如,在端点顺序中,向从属的可编程寄存器组发出多个设备访问。请求顺序保持来自单个请求者到同一地址的事务顺序。当发出多个请求时,需要排序。
容错和恢复机制,本架构提出了一种容错和恢复机制,以确保通信的可靠性和稳定性。该机制包括错误检测、错误定位、错误恢复等功能,可以有效地处理通信故障和异常情况。
请求重试,在某些情况下,目标节点可能没有足够资源接收请求。为避免资源不足时阻塞请求通道,本架构引入了请求重试机制。此机制利用协议信用表示资源可用性。确定和记录处理请求所需的协议信用类型是从节点的职责。该机制可用不同类型的协议信用追踪不同资源。例如,读请求和写请求可使用独立的数据缓冲区,因此每个缓冲区可用不同类型的协议信用表示可用性。不同类型的协议信用值由实现定义。
数据损坏和数据检查,使用奇偶校验和循环冗余校验(CRC)等技术检测数据传输中的错误。这些方法有助于识别数据损坏并触发重传或纠错机制。数据完整性检查:使用哈希函数验证数据的完整性。在发送和接收端计算数据的哈希值,然后进行比较,以确保数据在传输过程中未被篡改。重传机制,在检测到数据损坏时,通信协议可以触发重传机制,要求发送端重新发送损坏的数据包。这有助于确保数据的完整性和正确性。
如图1所示,架构支持四种通道,请求,响应,监听和数据,一共六条通道:
请求发送通道REQ,请求端发出处理器单元的请求事务,设备端接收请求事务;
数据发送通道WDA,请求端发出写数据/监听响应数据,设备端接收写数据/监听响应数据;
响应发送通道REP,请求端发送监听响应和完成响应,设备端接收来自处理器单元的响应;
响应接收通道ACK,请求端接收来自设备端的响应,设备端发出请求响应;
数据接收通道RDA,请求端接收读事务的数据,设备端发出读事务的数据;
监听接收通道SNP,请求端接收监听请求事务,设备端发出监听请求事务;
通道独立可以实现多个处理器和外设之间的并行通信,从而提高整体系统性能。这有助于减少通信瓶颈,提高数据传输速率。降低拥塞,独立通道可以降低网络拥塞,因为每个通道只需处理特定处理器和外设之间的通信。这有助于提高通信效率,减少延迟。增强可扩展性,通道独立使得系统更易于扩展,因为可以在不影响其他通道性能的情况下添加新的处理器和外设。这有助于满足不断增长的计算和通信需求。容错能力,通道独立有助于提高系统的容错能力。灵活性,通道独立提供了更高的灵活性,允许根据系统需求和性能要求调整通信拓扑和路由策略。这有助于实现更优化的通信架构,满足不同应用场景的需求。
针对请求端子系统,即处理器单元所对应访问的物理地址的读/写/刷新/驱逐四种操作以及对于I/O端口的读写访问,为了实现MESI的数据缓存一致性,定义了如下的事务类型:
不可缓存IO读(ReadNoSnp)表示请求端对IO的读请求适用于Core发起的对于IO的读请求,并且不需要进行一致性流程。
不可缓存Memory读(ReadOnce)表示对于可监听区域的不可Cache的读操作,读数据不进行缓存。适用于IO/Core发起的对于主存的不可Cache读请求,尽管请求者不会缓存数据,但是需要执行一致性流程,要求其余缓存行中脏数据写回。
共享读(ReadS)表示请求端为了实现内存的可监听区域的可Cache的缓存行的未命中读(load)操作。适用于Core发起的对于主存的读请求,目录控制单元将只会对于状态处于M/E的CoreCache发送监听请求,其余的私有Cache将保持不变。
写数据/独占读(ReadM)表示请求端为了实现内存的可监听区域的可Cache的缓存行的写(store)操作。适用于Core发起的对于主存的写请求,DCU将不会向状态为I的Core发送监听请求。
不可缓存IO写(WriteNoSnp)表示请求端对于IO的写。适用于Core发起的对于IO的写请求,不需要进行一致性流程。
脏写回(WriteBack)表示请求端写回并清除本地脏数据。适用于Core发起的对于本地Cache脏数据的清除,只会发生在当ReqCore是M态时,用于脏数据写回。
不可缓存Memory写(WriteUnique)表示请求端对于可监听区域的不可Cache的写操作。适用于IO/Core发起的对于主存的不可Cache的写请求;
数据驱逐(Evict)表示请求端清除本地数据。适用于Core发起的对于本地Cache的清除,系统中只有有且仅有2个S态的Core时需要进行一致性事务,是否需要发送监听由目录控制单元确定。
写数据/无数据独占读(MakeUnique)表示请求端清除其他Cache副本,保留本地Cache副本,使得本地独占,请求者不需要数据;
全局刷新(MakeInvalid)表示请求端全局刷新,清除系统的所有数据副本,并写回脏数据。
一种基于缓存一致性的异构通信架构,当处理器单元发起读请求时,方法步骤如下:
发起读请求:处理器或主设备发起一个请求,该请求包含目标地址、数据长度以及其他相关信息。路由请求:请求通过互连网络被路由到目标节点。互连网络根据请求的目标地址和负载均衡策略确定最佳路径。检查协议信用:目标节点检查当前可用的协议信用,以确定是否有足够的资源处理读请求。如果资源不足,请求可能会被暂时阻塞,直到有足够的协议信用可用。检查保序:确定处理器和外设之间进行通信时,确保数据传输和访问的顺序性,需要考虑内存访问顺序,协议确保处理器和外设按照特定的顺序访问共享内存。这有助于避免数据竞争和不一致,从而确保系统的正确运行。指令执行顺序,保证处理器按照程序的顺序执行指令。这有助于确保程序的正确性和预测性能。数据依赖性,协议处理数据依赖性问题,确保处理器和外设在访问相互依赖的数据时遵循正确的顺序。这有助于避免潜在的数据不一致和错误。访问数据:目标节点根据请求的地址和长度访问存储器或其他外设,以读取所需的数据,取数的方式可以是直接的访存操作,也可以是对于持有脏数据的缓存的监听访问。返回响应:目标节点将读取到的数据封装成一个响应消息,并通过互连网络将其发送回请求发起者。响应消息通常包含请求的状态(成功或失败)以及读取到的数据。更新协议信用:在完成读操作后,目标节点更新其协议信用信息,以反映资源的使用情况。同时,请求发起者也会更新其协议信用信息,以便于后续的通信操作。请求释放事务:目录控制单元只有在收到事务的完成响应之后,才允许释放阻塞,这样有利于最大程度地确保处理器和外设在访问相互依赖的数据时遵循正确的顺序。
处理器单元的写回是指处理器或外设向共享内存写入数据。写操作的方法步骤如下:
发起写请求:处理器或外设发起写请求,包括目标地址、数据和其他相关信息。请求通过协议的通信通道发送给目标节点(如内存控制器)。地址解析:目标节点(如内存控制器)接收到写请求后,解析目标地址,确定数据应存储在哪个内存位置。缓存一致性检查:在具有缓存一致性的系统中,目标节点需要检查其他处理器和外设的缓存,以确保写操作不会导致数据不一致。这可能涉及使其他缓存失效或更新它们的数据,并且要求及时清楚其余的旧数据,确保其余设备能够访问到最近的数据。检查协议信用:目标节点检查当前可用的协议信用,以确定是否有足够的资源处理写请求。如果资源不足,请求可能会被暂时阻塞,直到有足够的协议信用可用。检查保序:确定处理器和外设之间进行通信时,确保数据传输和访问的顺序性,需要考虑内存访问顺序,协议确保处理器和外设按照特定的顺序访问共享内存。这有助于避免数据竞争和不一致,从而确保系统的正确运行。指令执行顺序,保证处理器按照程序的顺序执行指令。这有助于确保程序的正确性和预测性能。数据依赖性,协议处理数据依赖性问题,确保处理器和外设在访问相互依赖的数据时遵循正确的顺序。这有助于避免潜在的数据不一致和错误。执行写操作:目标节点执行写操作,将数据写入内存。这可能涉及更新内存控制器的状态信息,如脏位(表示数据已更改)。异常处理:如果在写操作过程中出现异常(如地址错误或权限问题),目标节点将向发起节点发送错误响应。发起节点需要根据错误类型采取相应的处理措施。更新协议信用:在完成读操作后,目标节点更新其协议信用信息,以反映资源的使用情况。同时,请求发起者也会更新其协议信用信息,以便于后续的通信操作。请求释放事务:目录控制单元只有在收到事务的完成响应之后,才允许释放阻塞,这样有利于最大程度地确保处理器和外设在访问相互依赖的数据时遵循正确的顺序。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (8)
1.一种基于缓存一致性的异构通信架构,其特征在于,包括:
处理器单元,包括多个处理器核心,用于执行程序指令,其中所述处理器核心具有不同的架构和性能特点,以满足不同类型的计算需求;
缓存单元,与处理器单元相连,包括多级缓存结构,用于存储处理器单元所需的数据,所述缓存单元能够根据数据访问模式和局部性自动调整缓存策略,以提高缓存命中率;
通信单元,用于在处理器单元之间传输数据,所述通信单元采用高速互连技术,并且数据传输格式采用数据包的形式,并且包含独立的协议层、网络层和链路层;
缓存一致性控制单元,用于维护缓存单元中数据的一致性,所述缓存一致性控制单元采用高效的缓存一致性协议,以确保多个处理器单元访问相同数据时能够获取最新的数据副本。
2.如权利要求1所述的一种基于缓存一致性的异构通信架构,其特征在于,还包括缓存管理单元,用于实现对系统资源的统一管理和调度,在系统中充当倒数第二级缓存的控制单元,以实现与处理器单元内部缓存和最后一级缓存的数据交换。
3.如权利要求1所述的一种基于缓存一致性的异构通信架构,其特征在于,还包括输入输出控制单元,用于管理和调度外部设备与处理器单元之间的数据传输,包括数据接收、发送和缓冲区管理。
4.如权利要求1所述的一种基于缓存一致性的异构通信架构,其特征在于,还包括支持容错和故障恢复功能,具体为:处理器核心的错误检测和纠正、缓存单元的数据校验和通信单元的故障检测与恢复。
5.如权利要求1所述的一种基于缓存一致性的异构通信架构,其特征在于,还包括:在互连总线中,节点间的访问主要包括两个过程:请求和响应;
首先,主机节点的主机设备以本地标准协议发起请求,该请求通过节点控制器完成包括事务映射、地址映射、数据包封装过程的协议转换,以请求包的形式从主机节点发往该节点的路由器;然后,主机节点的路由器完成请求端的数据包输入握手确认,请求包通过路由网络路由转发至设备端的路由节点,在该节点的请求端完成数据包输出的握手确认,从而将数据包传输到设备端;
之后,设备端控制器对请求包进行解析,并将该请求事务转换为特定于该设备的操作,从机设备完成该事务后产生响应,再由节点控制器封装为响应包发往该节点通信单元的路由代理;接着,设备端的路由代理完成请求端的数据包输入握手确认,响应包通过路由网络路由转发至主机节点的路由节点,在该节点的请求端完成数据包输出的握手确认从而将数据包传输到请求端;最后,请求端的缓存单元控制器完成对响应包的解析,并以本地标准协议向主机设备返回本次事务的响应结果,并通过响应通道对于设备端的代理节点提交完成响应。
6.如权利要求1所述的一种基于缓存一致性的异构通信架构,其特征在于,数据包通信协议的网络端主要包括:输入输出握手控制的发送/接收控制模块、数据包发送缓冲区、数据包接收缓冲区三个部分,以及用于实现低功耗设计的链路状态机。
7.如权利要求1所述的一种基于缓存一致性的异构通信架构,其特征在于,还包括如下六条通道:
请求发送通道REQ,请求端发出处理器单元的请求事务,设备端接收请求事务;
数据发送通道WDA,请求端发出写数据/监听响应数据,设备端接收写数据/监听响应数据;
响应发送通道REP,请求端发送监听响应和完成响应,设备端接收来自处理器单元的响应;
响应接收通道ACK,请求端接收来自设备端的响应,设备端发出请求响应;
数据接收通道RDA,请求端接收读事务的数据,设备端发出读事务的数据;
监听接收通道SNP,请求端接收监听请求事务,设备端发出监听请求事务。
8.如权利要求7所述的一种基于缓存一致性的异构通信架构,其特征在于,为了保证消息的流控,所有通道应当遵循以下的传输优先级:REQ<SNP<ACK<RDA<REP<WDA。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311408429.XA CN117407194A (zh) | 2023-10-27 | 2023-10-27 | 一种基于缓存一致性的异构通信架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311408429.XA CN117407194A (zh) | 2023-10-27 | 2023-10-27 | 一种基于缓存一致性的异构通信架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117407194A true CN117407194A (zh) | 2024-01-16 |
Family
ID=89497696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311408429.XA Pending CN117407194A (zh) | 2023-10-27 | 2023-10-27 | 一种基于缓存一致性的异构通信架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407194A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117997852A (zh) * | 2024-04-03 | 2024-05-07 | 北京数渡信息科技有限公司 | 一种交换芯片上的缓存控制装置、方法、芯片及存储介质 |
CN118113631A (zh) * | 2024-04-30 | 2024-05-31 | 山东海量信息技术研究院 | 一种数据处理系统、方法、设备、介质及计算机程序产品 |
-
2023
- 2023-10-27 CN CN202311408429.XA patent/CN117407194A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117997852A (zh) * | 2024-04-03 | 2024-05-07 | 北京数渡信息科技有限公司 | 一种交换芯片上的缓存控制装置、方法、芯片及存储介质 |
CN117997852B (zh) * | 2024-04-03 | 2024-06-11 | 北京数渡信息科技有限公司 | 一种交换芯片上的缓存控制装置、方法、芯片及存储介质 |
CN118113631A (zh) * | 2024-04-30 | 2024-05-31 | 山东海量信息技术研究院 | 一种数据处理系统、方法、设备、介质及计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019366B2 (en) | Satisfying memory ordering requirements between partial reads and non-snoop accesses | |
US7613882B1 (en) | Fast invalidation for cache coherency in distributed shared memory system | |
US10169080B2 (en) | Method for work scheduling in a multi-chip system | |
US9529532B2 (en) | Method and apparatus for memory allocation in a multi-node system | |
KR100308323B1 (ko) | 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템 | |
US8631210B2 (en) | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines | |
US20110004729A1 (en) | Block Caching for Cache-Coherent Distributed Shared Memory | |
CN101354682B (zh) | 一种用于解决多处理器访问目录冲突的装置和方法 | |
CN101430664B (zh) | 一种多处理器系统及Cache一致性消息传输方法 | |
US7568073B2 (en) | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection | |
CN117407194A (zh) | 一种基于缓存一致性的异构通信架构 | |
US20150254182A1 (en) | Multi-core network processor interconnect with multi-node connection | |
US9372800B2 (en) | Inter-chip interconnect protocol for a multi-chip system | |
US10592459B2 (en) | Method and system for ordering I/O access in a multi-node environment | |
EP2771796B1 (en) | A three channel cache-coherency socket protocol | |
CN117997852B (zh) | 一种交换芯片上的缓存控制装置、方法、芯片及存储介质 | |
US20070073977A1 (en) | Early global observation point for a uniprocessor system | |
US8909862B2 (en) | Processing out of order transactions for mirrored subsystems using a cache to track write operations | |
US7779211B2 (en) | Reducing latency in responding to a snoop request | |
CN112136118A (zh) | 数据处理网络中的传输协议 | |
US20090006712A1 (en) | Data ordering in a multi-node system | |
US8732351B1 (en) | System and method for packet splitting | |
Mak et al. | Processor subsystem interconnect architecture for a large symmetric multiprocessing system | |
CN118519924A (zh) | 一种缓存控制方法、装置、电子设备及可读存储介质 | |
JPH09305489A (ja) | 情報処理システム及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |