CN114721996B - 一种分布式原子操作的实现方法与实现装置 - Google Patents

一种分布式原子操作的实现方法与实现装置 Download PDF

Info

Publication number
CN114721996B
CN114721996B CN202210643265.8A CN202210643265A CN114721996B CN 114721996 B CN114721996 B CN 114721996B CN 202210643265 A CN202210643265 A CN 202210643265A CN 114721996 B CN114721996 B CN 114721996B
Authority
CN
China
Prior art keywords
request
processor core
clearing
queue
atomic operation
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.)
Active
Application number
CN202210643265.8A
Other languages
English (en)
Other versions
CN114721996A (zh
Inventor
夏军
晏小波
蔡学武
霍泊帆
徐可
陈锞
陈杨阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanhu Laboratory
Original Assignee
Nanhu Laboratory
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanhu Laboratory filed Critical Nanhu Laboratory
Priority to CN202210643265.8A priority Critical patent/CN114721996B/zh
Publication of CN114721996A publication Critical patent/CN114721996A/zh
Application granted granted Critical
Publication of CN114721996B publication Critical patent/CN114721996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本方案公开了一种分布式原子操作的实现装置,包括N个处理器核、M个存储器,且N个处理器核与M个存储器通过互连网络互连,N个处理器核分别通过X个原子操作处理接口连接至互连网络。本方案通过在处理器核与互连网络之间增加原子操作处理接口,借助互连网络已有的请求通道传输清除请求,维护各原子操作处理部件中预留数据空间标记信息的数据一致性,从而确保LR与SC访问请求的正确执行,与使用专用网络通道传输清除请求的方法相比,本方案能在任意互连网络规模下确保清除请求到达的实时性,能以更小的硬件开销支持LR与SC访问请求在分布式原子操作处理部件中的高效实现。

Description

一种分布式原子操作的实现方法与实现装置
技术领域
本发明属于分布式原子操作领域,尤其是涉及一种分布式原子操作的实现方法与实现装置。
背景技术
现代指令集架构一般都实现了load-reserved和store-conditional指令,以支持在多核或多处理器系统上实现无锁原子算法和基于读-修改-写的原子操作。例如,Alpha架构对应的指令为ldl_l/stl_c、ldq_l/stq_c;Power架构对应的指令为lwarx/stwcx、ldarx/stdcx;MIPS架构对应的指令为ll/sc;ARM架构对应的指令为:ldrex/strex (ARMv6 、ARMv7), ldxr/stxr (ARM v8);RISC-V架构对应的指令为lr/sc。
load-reserved指令用于从指定的内存位置读取当前数据,并对该数据所在数据空间进行标记。依据不同的硬件实现,被标记的数据空间尺寸可以大于所读取的数据尺寸,但不能小于所读取的数据尺寸。store-conditional指令用于向指定内存位置存入新数据。如果该数据所在数据空间被本线程所发出的load-reserved所标记,且在该数据空间被标记后,未被其它线程修改,且在该load-reserved和该store-conditional之间,本线程未发出别的store-conditional指令,则该store-conditional指令执行成功,其所携带的数据将被写入指定内存位置;否则,store-conditional指令执行失败,其所携带的数据将被丢弃(即不写入指定内存位置)。为了叙述方便,后续将用LR代表load-reserved,SC代表store-conditional。
从LR/SC的语义可以看出,当处理器核线程通过LR所预留的数据空间在发出SC之前,如果该数据空间的原子性未被破坏(例如,被其它线程修改),且在该线程的程序执行序列上,LR与SC之间未执行其它SC指令,则SC会将新值更新到该数据空间,从而实现了读-修改-写原子语义。LR/SC指令可被用于实现多种原子操作,像原子交换、原子加一、原子与、原子或、原子求最大值/最小值等等。
LR/SC的硬件实现一般不允许嵌套执行,即同一个线程不能通过LR指令同时预留标记多个数据空间,后面的LR指令会清除前面LR指令所预留标记的数据空间,并重新标记当前LR指令所预留的数据空间。当某个线程执行SC指令时,无论该SC指令是否执行成功,该线程因执行LR指令而预留标记的数据空间也会被清除。
处理器核线程执行LR指令时,会向下一级存储器发起LR访问请求,并等待读数据响应的返回;同时原子操作处理部件也会监测到该LR访问请求,并记录下处理器核号、线程号、所携带数据空间等相关信息,以便对该LR请求所预留的数据空间进行标记(如果该处理器核线程存在已经预留的数据空间,则原子操作处理部件会首先清除该预留的数据空间标记信息,然后再对新的预留数据空间进行标记)。处理器核线程执行SC指令时,会向下一级存储器发起SC访问请求,并等待SC执行结果响应(执行成功或执行失败)的返回;同时原子操作处理部件也会监测到该SC访问请求,通过将该请求的处理器核号、线程号、所携带数据空间等信息与原子操作处理部件所记录的预留数据空间相关信息进行比较,判断SC访问请求是否执行成功,并相应更新所记录的预留数据空间相关信息(例如,如果执行成功,则清除所有处理器核中所有线程所预留的与该SC访问请求所携带的数据空间相匹配的数据空间的预留标记;如果执行失败,则清除发出SC访问请求的处理器核线程所预留数据空间的标记信息)。另外,LR或SC指令一般是阻塞执行的,即在某个线程的LR或SC响应返回之前,该线程的后续指令将被停止执行。
原子操作处理部件负责记录和更新预留数据空间的标记信息,并对SC执行结果进行判别。如果处理器核可以监测到其它处理器核对预留数据空间的写操作,那么原子操作处理部件可以在处理器核中实现,否则原子操作处理部件只能在处理器核之外的能监测到对预留数据空间进行写操作的存储器中实现(例如L2 Cache、L3 Cache、DDR控制器等)。由于在处理器核中实现对预留数据空间的写操作监测比较困难,原子操作处理部件一般是在处理器核之外的可以接收来自所有处理器核读写访问请求的存储器中实现的。
在多核或多处理器系统中,为了提升访存效率,处理器核之外一般都会实现多个存储器(例如L2 Cache或L3 Cache会进行分体设计,DDR控制器也可能会实现多个),这将使得地址空间会分布在多个存储器中,从处理器核发出的读写访问请求可能会去往不同的存储器。如果处理器核与存储器通过总线进行连接,由于总线具有广播特性,那么只要在该总线上实现一个原子操作处理部件就能监测到所有的读写访问请求。由于总线的可扩展性不好,当处理器核和存储器较多时,必须用具有点到点传输特性的互连网络替代总线,连接所有的处理器核与存储器。
由于在基于点到点互连网络的分布式存储系统中,单个存储器无法监测到去往其它存储器的读写访问请求,为支持LR/SC原子操作,一般有集中式原子操作处理部件和分布式原子操作处理部件两种实现方法。
在集中式原子操作处理部件实现方法中,系统仅实现一个原子操作处理部件,该部件挂接在互连网络的某个端口上或在某个挂接在互连网络上的部件(例如某个存储器或IO控制器)中实现。为了使得原子操作处理部件能监测到任何处理器核线程发出的LR、SC和写访问请求,处理器核线程除了需要将LR、SC和写访问请求发往对应的目标存储器之外,还需要将LR、SC和写访问请求所携带的与原子操作处理相关的信息发送到原子操作处理部件。由于每个写访问请求都会触发一次发往原子操作处理部件的请求,当处理器核数量较多时,这会极大增加互连网络的带宽消耗,影响系统的访存效率,同时原子操作处理部件也会成为性能瓶颈,导致原子操作处理效率不高。因此,当处理器核数量较多时,一般采用分布式原子操作处理部件实现方法。
在分布式原子操作处理部件实现方法中,系统实现了多个原子操作处理部件,每个部件对应一个存储器。例如,每个存储器都可以实现一个原子操作处理部件,该部件只负责处理与该存储器相关的原子操作。由于每个原子操作处理部件能监测到所有发往本存储器的写访问请求,因此各个原子操作处理部件可以并行工作,完成LR/SC原子操作处理。
由于每个处理器核线程可以在每个原子操作处理部件上进行数据空间预留,但每个处理器核线程只能预留一个数据空间,因此多个原子操作处理部件中的预留空间标记信息需要进行数据一致性维护。即当某个存储器中的原子操作处理部件接收到来自某个处理器核线程发出的LR访问请求时,该处理器核线程在其它所有存储器中的原子操作处理部件预留的数据空间标记信息需要被清除。另外,无论SC访问请求是否执行成功,除了发出该SC访问请求的处理器核线程在其所访问的目标存储器中的原子操作处理部件所预留的数据空间标记信息需要被清除之外,该处理器核线程在其它所有存储器中的原子操作处理部件所预留的数据空间标记信息也需要被清除。
由于原子操作处理部件无法监测到相同处理器核线程发往其它原子操作处理部件的LR和SC访问请求。因此,当某个原子操作处理部件接收到来自某个处理器核线程的LR或SC访问请求时,为了维护该处理器核线程预留数据空间信息的数据一致性,该原子操作处理部件需要向其它所有原子操作处理部件发送预留数据空间标记信息清除请求(需携带处理器核号和线程号等信息),并且发往某个原子操作处理部件的清除请求必须在该处理器核线程新发出的LR或SC访问请求到达该原子操作处理部件之前达到,否则迟到的清除请求会将新的LR预留的数据空间错误地清除掉,或新的SC会与旧的预留数据空间标记信息错误地匹配上而导致其执行成功。为了保证清除请求到达的实时性,一般需要设计专用网络通道传输清除请求,而这会大幅增加互连网络的实现开销,并且当互连网络规模较大时(例如,当单处理器片上集成的处理器核和存储器数目较多,并且这些处理器还通过片外互连构成多处理器系统时),实时性也将越来越难于得到保证。
发明内容
本发明的目的是针对上述问题,提供一种分布式原子操作的实现方法与实现装置。
为达到上述目的,本发明采用了下列技术方案:
一种分布式原子操作的实现装置,包括N个处理器核、M个存储器,且N个处理器核与M个存储器通过互连网络互连,N个处理器核分别通过X个原子操作处理接口连接至所述的互连网络,所述的原子操作处理接口包括处理器核请求模块、LR清除请求模块和SC清除请求模块,所述的处理器核请求模块用于在接收到相应处理器核发送的LR访问请求时,通过互连网络向目标存储器发送LR访问请求,并通知LR清除请求模块通过互连网络向其它所有存储器发送清除请求,所述的SC清除请求模块用于在接收到互连网络返回的SC执行失败响应时,通过互连网络向除目标存储器之外的其余所有存储器发送清除请求,且所述的清除请求针对于为相应处理器核发出LR访问请求的线程所预留的数据空间标记。
在上述的分布式原子操作的实现装置中,所述的互连网络为维序网络;
所述的X≥N,每个处理器核至少对应一个原子操作处理接口;
或者,所述的X<N,每个原子操作处理接口对应一个或多个处理器核。
在上述的分布式原子操作的实现装置中,所述的原子操作处理接口还包括优先级仲裁器,所述的处理器核请求模块包括处理器核请求队列,所述的LR清除请求模块包括LR清除请求队列,所述的SC清除请求模块包括SC清除请求队列和响应过滤器,其中;
LR清除请求队列用于缓存因LR访问请求而产生的清除请求;
SC清除请求队列用于缓存因SC执行失败响应而产生的清除请求;
优先级仲裁器用于从三个请求队列中仲裁出一个请求发送到互连网络上;
处理器核请求队列用于缓存来自处理器核的各类请求,且当各类请求中的LR请求被仲裁到执行时,通过互连网络向目标存储器发送LR访问请求,同时产生相应的LR清除请求并写入LR清除请求队列;
响应过滤器用于接收并向处理器核转发响应,同时识别SC响应类型,并在识别到来自互连网络的SC执行失败响应时产生相应的SC清除请求写入SC清除请求队列。
在上述的分布式原子操作的实现装置中,在优先级仲裁器中,LR清除请求队列和SC清除请求队列的仲裁优先级高于处理器核请求队列的仲裁优先级;
LR清除请求队列和SC清除请求队列的深度均等于或大于相应处理器核的线程数;
所述的处理器核请求模块具有请求旁路机制,用于在三个队列均为空时,跳过仲裁阶段直接将请求发送至互连网络,并判断该请求是否为LR访问请求,若是,则产生相应的LR清除请求并写入LR清除请求队列。
在上述的分布式原子操作的实现装置中,N个处理器核和M个存储器集成在同一个芯片上以实现多核处理系统,且所述的互连网络为片上互连网络。
在上述的分布式原子操作的实现装置中,N个处理器核和M个存储器集成在多个芯片上以实现多处理系统,且所述的互连网络由片间互连网络构成,或由片间互连网络和片上互连网络构成。
一种分布式原子操作实现方法,包括以下步骤:
S1.接收来自相应处理器核的LR访问请求;
S2.向目标存储器发送LR访问请求,向其他存储器发送清除请求;
S3.接收LR访问响应并向所述处理器核返回;
S4.接收来自处理器核的SC访问请求并发送给目标存储器;
S5.接收SC响应并向所述处理器核返回,且若SC响应为SC执行失败响应时,向除目标存储器外的其他存储器发送清除请求;
所述的清除请求针对于为发出LR访问请求的相应处理器核线程所预留的数据空间标记。
在上述的分布式原子操作实现方法中,步骤S1具体包括:
S11.接收来自相应处理器核的请求;
S12.将所述请求列写入处理器核请求队列等待被仲裁;
S13.当请求被发送至目标存储器时,判断该请求是否为LR访问请求,若是,则产生相应的清除请求并将之写入LR清除请求队列等待被仲裁;
当步骤S13产生的清除请求被仲裁到时,执行步骤S2;且步骤S2中,目标存储器的原子操作处理部件接收到LR访问请求后,对相应处理器核线程预留的数据空间进行标记并返回LR访问响应;
步骤S4中,目标存储器的原子操作处理部件接收到SC访问请求后,将SC访问请求所携带的信息与原子操作处理部件所记录的预留数据空间标记信息进行匹配,若匹配成功,则SC访问请求携带的数据被更新到目标存储器中,并清除目标存储器中预留的与该SC访问请求所携带的信息相匹配的所有数据空间标记信息,返回SC执行成功响应,否则返回SC执行失败响应,并清除发出该SC访问请求的处理器核线程在目标存储器中预留的数据空间标记信息:
步骤S5具体包括:
S51.接收SC响应并向所述处理器核返回;
S52.判断所述SC响应的响应类型;
S53.若SC响应为SC执行失败响应,则产生相应的SC清除请求并写入SC清除请求队列等待被仲裁;
S54.当步骤S53产生的清除请求被仲裁到时,向除目标存储器外的其他所有存储器发送清除请求;
步骤S2和S5中,其他存储器接收到清除请求后,清除相应处理器核线程预留的数据空间标记信息。
在上述的分布式原子操作实现方法中,步骤S11中,当接收到来自处理器核的请求时,检查LR清除请求队列、SC清除请求队列、处理器核请求队列是否都为空,若是,则将请求发送至目标存储器,并执行步骤S13;若并非都为空,则判断处理器核请求队列是否已满,若否,则执行步骤S12,若是则等待空位。
在上述的分布式原子操作实现方法中,与存储器之间的信息交互均经由互连网络;
优先级仲裁方式包括:
当只有处理器核请求队列非空时,从该队列读出位于队列头的请求并将之发送到互连网络上,若该请求为LR访问请求,则同时产生相应的清除请求并将之写入LR清除请求队列;
当LR清除请求队列非空且SC清除请求队列为空时,从LR清除请求队列读出位于队列头的请求,并将之以组播或单播的方式发送到互连网络上;
当SC清除请求队列非空且LR清除请求队列为空时,从SC清除请求队列读出位于队列头的请求,并将之以组播或单播的方式发送到互连网络上;
当LR清除请求队列和SC清除队列都非空时,基于公平轮转调度算法从两个队列中选择其中一个清除请求队列,并从选中的队列读出位于队列头的请求,将之以组播或单播的方式发送到互连网络上。
本发明的优点在于:本方案在分布式原子操作处理部件实现方法中,通过在处理器核与互连网络之间增加原子操作处理接口,借助互连网络已有的请求通道传输清除请求,维护各原子操作处理部件中预留数据空间标记信息的数据一致性,从而确保LR与SC访问请求的正确执行。与使用专用网络通道传输清除请求的方法相比,本方案能在任意互连网络规模下确保清除请求到达的实时性,能以更小的硬件开销支持LR与SC访问请求在分布式原子操作处理部件中的高效实现。
附图说明
图1为本发明所能适用的多核或多处理器系统架构示意图;
图2为本发明的带原子操作处理接口的多核或多处理器系统架构示意图;
图3为原子操作处理接口实现示意图;
图4为原子操作处理接口的处理器核请求处理流程图;
图5为原子操作处理接口的互连网络响应处理流程图;
图6为原子操作处理接口的优先级仲裁器工作流程图;
图7为SC执行成功示例;
图8为SC执行失败示例;
图9为两对LR/SC交叠执行示例。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步详细的说明。
如图1-图9所示,本实施例针对多核或多处理器系统中的LR/SC实现问题,提供了一种分布式原子操作实现方法与实现装置。
图1所示为本发明所能适用的多核或多处理器系统架构示意图。该系统架构由N个处理器核和M个存储器组成,N个处理器核与和M个存储器通过互连网络进行连接。N个处理器核和M个存储器可以集成在同一个芯片上,实现多核处理系统,此时互连网络为片上互连网络;N个处理器核和M个存储器也可以集成在不同的芯片上,实现多处理器系统,此时互连网络由片间互连网络构成,或由片间互连网络和片上互连网络构成。
处理器核用于实现一个或多个硬件线程,一般包含L1指令Cache和L1数据Cache,能完成各种指令的运算执行和访存需求。
存储器用于缓存数据,可以是L2 Cache、L3 Cache或DDR控制器,能完成处理器核对存储器所对应地址空间的各种数据访问操作。每个存储器内部实现了一个原子操作处理部件,用于记录预留数据空间相关信息,完成存储器对应地址空间的LR/SC访问请求的原子操作处理。
互连网络用于完成处理器核与存储器之间的报文交换,且至少需实现两个网络通道,即请求通道和响应通道(在支持Cache一致性协议的系统中,还需实现监听通道或其它与协议相关的通道)。请求通道用于传输处理器核发往存储器的请求报文,响应通道用于传输存储器向处理器核发送的响应报文。例如,处理器核发出的LR/SC访问请求通过互连网络的请求通道传输至目标存储器,经过目标存储器及其原子操作处理部件处理之后,目标存储器产生的LR/SC响应再通过互连网络的响应通道传输至处理器核。互连网络为维序网络,从相同处理器核发往同一个存储器的请求报文会顺序达到该存储器,且从相同存储器发往同一个处理器核的响应报文会顺序到达该处理器核。
特别地,如图2所示为本发明提供的带原子操作处理接口的多核或多处理器系统架构示意图。为了在分布式原子操作处理部件实现方法中,以较小的硬件实现开销维护处理器核线程在各个原子操作处理部件中预留数据空间信息的数据一致性,同时保证预留数据空间标记信息清除请求到达的实时性,本实施例在每个处理器核与互连网络之间增加了一个原子操作处理接口,用于清除请求的产生与发送。
处理器核线程发出的每个LR访问请求都会将除目标存储以外的其它存储器中该线程所预留的数据空间标记信息清除掉,因此,当原子操作处理接口接收到来自本地处理器核线程发送的LR访问请求时,除了通过互连网络的请求通道向目标存储器发送LR访问请求之外,原子操作处理接口还需通过互连网络的请求通道向其它所有存储器发送清除请求。该处理器核线程后续发送的LR/SC访问请求将晚于清除请求发送到互连网络上,由于互连网络为维序网络,因此清除请求必先于该处理器核线程新发出的LR或SC访问请求到达各个原子操作处理部件,从而保证了清除请求到达的实时性。
处理器核线程发出的每个SC访问请求都会将所有存储器中该线程所预留的数据空间标记信息清除掉,但是,当SC访问请求执行成功时,此时目标存储器一定存在与SC访问请求相匹配的预留数据空间标记信息,这表示其它存储器中不存在该线程所预留的数据空间。因此,只有在SC访问请求执行失败时,才需要向其它存储器发送清除请求。为了减少清除请求的发送开销,原子操作处理接口不在从本地处理器核线程接收到SC访问请求时发送清除请求,而是当从互连网络的响应通道接收到SC响应时,根据SC的执行结果决定是否发送清除请求。如果SC执行失败,则通过互连网络的请求通道向除目标存储器之外的所有存储器发送清除请求(目标存储器的预留数据空间标记信息已由SC访问请求清除)。由于LR/SC是阻塞执行的,只有当SC响应返回之后,发出该SC访问请求的处理器核线程才能发送新的LR/SC访问请求。因此,SC执行失败响应产生的清除请求将先于该处理器核线程后续发送的LR/SC访问请求到达互连网络,由于互连网络为维序网络,因此清除请求必先于该处理器核线程新发出的LR或SC访问请求到达各个原子操作处理部件,从而保证了清除请求到达的实时性。
通过借助互连网络已有的请求通道,在原子操作处理接口产生并发送清除请求,不仅能消除实现开销较大的专用网络通道,而且也能在任意互连网络规模下,保证消除请求达到的实时性,维护分布式原子操作处理部件中预留数据空间标记信息的数据一致性。
具体地,如图3所示,原子操作处理接口由处理器核请求队列、LR清除请求队列、SC清除请求队列、优先级仲裁器和响应过滤器组成。
处理器核请求队列用于缓存来自处理器核的各类请求,LR清除请求队列用于缓存因LR访问请求而产生的清除请求,SC清除请求队列用于缓存因SC执行失败响应而产生的清除请求,优先级仲裁器用于从三个请求队列中仲裁出一个请求发送到互连网络上。响应过滤器用于识别来自互连网络的SC执行失败响应,并产生相应的SC清除请求写入SC清除请求队列中。
当处理器核请求队列仲裁成功时,如果队列头的请求为LR访问请求,则该请求除了会被发送至互连网络上之外,相应的LR清除请求也会被同时产生并写入LR清除请求队列之中。
为了保证清除请求先于后续LR/SC访问请求发送至互连网络,在仲裁时,同一线程的LR清除请求队列和SC清除请求队列的仲裁优先级较高,而处理器核请求队列的仲裁优先级较低。只要LR/SC清除请求队列非空,则清除请求就会被优先发送到互连网络上,从而保证了清除请求到达原子操作处理部件的实时性。由于LR/SC清除请求是由处理器核请求队列中的LR/SC访问请求产生的,LR/SC清除请求队列的优先级高于处理器核请求队列不会导致处理器核请求队列在仲裁时被饿死(即指处理器核请求队列不可能一直无法被仲裁)。
由于一般每个处理器核线程只能发送一个LR或SC访问请求,且LR/SC指令为阻塞执行的,因此将LR/SC清除请求队列的深度设置为处理器核的线程数即能缓存所有可能出现的清除请求。由于请求会产生响应,因此互连网络的请求通道是依赖于响应通道的,即响应通道的阻塞会导致请求通道的阻塞。由于SC执行失败响应会产生SC清除请求,这会使得互连网络的响应通道依赖于请求通道,即请求通道的阻塞会导致响应通道的阻塞。请求通道和响应通道之间的协议依赖环会引起互连网络出现协议死锁。由于SC清除请求队列能缓存因SC执行失败响应而产生的所有清除请求,这消除了响应通道对请求通道的依赖,解除了协议依赖环,从而避免了互连网络出现协议死锁。
为了减少原子操作处理接口对处理器核请求的发送延迟影响,原子操作处理接口实现了请求旁路机制,即当三个请求队列都为空时,处理器核发出的请求可以直接发送到互连网络上,而不必进入处理器核请求队列等待被仲裁,从而缩短了处理器核请求的发送延迟(或不影响处理器核请求的原有发送延迟)。由于LR/SC访问请求出现的概率不高,这使得LR/SC清除请求队列为空的概率较高,因此请求旁路机制使得原子操作处理接口对处理器核请求发送延迟的影响较小。
如图4所示,原子操作处理接口的处理器核请求处理流程如下:
当原子操作处理接口接收到来自处理器核的请求时,检查LR清除请求队列、SC清除请求队列、处理器核请求队列是否都为空。
如果都为空则将请求直接发送到互连网络上,然后判断该请求是否为LR访问请求,如果是LR访问请求,则还需产生相应的清除请求并将之写入LR清除请求队列中。
如果不全为空且处理器核请求队列非满,则将请求写入处理器核请求队列中等待被仲裁,否则等到处理器核请求队列变为非满后再写入。
如图5所示,原子操作处理接口的互连网络响应处理流程如下:
当原子操作处理接口接收到来自互连网络的响应时,该响应会被直接发送给处理器核,如果响应为SC执行失败响应,则相应的清除请求将被产生并被写入SC清除请求队列中。
如图6所示,原子操作处理接口的优先级仲裁器的工作流程如下:
当只有处理器核请求队列非空时,从该队列读出位于队列头的请求并将之发送到互连网络上,如果该请求为LR访问请求,则还需同时产生相应的清除请求并将之写入LR清除请求队列中。
当LR清除请求队列非空且SC清除请求队列为空时(此时处理器核请求队列可能非空,也可能为空),从LR清除请求队列读出位于队列头的请求,并将之以组播(如果互连网络支持组播)或单播(如果互连网络不支持组播)的方式发送到互连网络上。
当SC清除请求队列非空且LR清除请求队列为空时(此时处理器核请求队列可能非空,也可能为空),从SC清除请求队列读出位于队列头的请求,并将之以组播(如果互连网络支持组播)或单播(如果互连网络不支持组播)的方式发送到互连网络上。
当LR清除请求队列和SC清除队列都非空时(此时处理器核请求队列可能非空,也可能为空),基于公平轮转调度算法从两个队列中选择其中一个清除请求队列,并从选中的队列读出位于队列头的请求,并将之以组播(如果互连网络支持组播)或单播(如果互连网络不支持组播)的方式发送到互连网络上。
LR访问请求的协议处理流程如下:
1) 处理器核线程向本地原子操作处理接口发送LR访问请求LR_REQ;
2) 原子操作处理接口接收到LR_REQ并经过处理之后向目标存储器发送LR_REQ,并向所有其它存储器发送相应的清除请求INVAL_REQ;
3) 目标存储器中的原子操作处理部件接收到LR_REQ后,对该处理器核线程预留的数据空间进行标记,如果该处理器核线程存在已经预留的数据空间,则先清除该预留的数据空间标记信息,然后再对新的预留数据空间进行标记;
4) 目标存储器向原子操作处理接口发送LR访问响应LR_RSP;
5) 原子操作处理接口在接收到LR_RSP之后向处理器核发送LR_RSP;
6) 其它存储器中的原子操作处理部件在接收到INVAL_REQ后,清除该处理器核线程预留的数据空间标记信息。
SC访问请求的协议处理流程如下:
1) 处理器核线程向本地原子操作处理接口发送SC访问请求SC_REQ;
2) 原子操作处理接口接收到SC_REQ并经过处理之后向目标存储器发送SC_REQ;
3) 目标存储器中的原子操作处理部件接收到SC_REQ后,将SC访问请求所携带的相关信息(例如处理器核号、线程号、数据空间等)与原子操作处理部件所记录的预留数据空间相关信息进行匹配,以判断SC访问请求是否执行成功:
a) 如果该处理器核线程在目标存储器上没有预留数据空间或虽然预留了数据空间但匹配失败,则SC访问请求执行失败;
b) 如果该处理器核线程在目标存储器上预留了数据空间且SC访问请求所携带的数据空间与该预留数据空间能匹配上,则SC访问请求执行成功;
4) 如果SC访问请求执行失败,目标存储器向原子操作处理接口发送SC执行失败响应SC_RSP(F),SC访问请求携带的数据将不会被更新到目标存储器中,并且如果该处理器核线程在目标存储器中预留了数据空间,则该预留数据空间的标记信息将被清除;
5) 如果SC访问请求执行成功,目标存储器向原子操作处理接口发送SC执行成功响应SC_RSP(S),SC访问请求携带的数据将被更新到目标存储器中,并且该处理器核线程在目标存储器中的预留数据空间标记信息将被清除,同时其它处理器核线程在目标存储器中预留的与该SC访问请求所携带的数据空间相匹配的数据空间预留标记信息也将被一并清除;
6) 当原子操作处理接口接收到SC_RSP(S)时,直接向处理器核返回SC_RSP(S);
7) 当原子操作处理接口接收到SC_RSP(F)时,除了向处理器核返回SC_RSP(F)之外,还需向除目标存储器之外的所有其它存储器发送相应的清除请求INVAL_REQ;
8) 其它存储器中的原子操作处理部件接收到INVAL_REQ后,清除该处理器核线程预留的数据空间标记信息。
为了使读者更清楚的理解本方案,下面给出了LR/SC访问请求处理的三个示例。在这些示例中,假设系统共有三个存储器,分别为存储0、存储1和存储2。Resv表示对应处理器核线程在原子操作处理部件中的预留数据空间标记信息的当前状态。Resv[0->1]表示Resv当前状态为处理器核线程没有预留数据空间,下一状态为处理器核线程预留了数据空间。Resv[1->0]表示Resv当前状态为处理器核线程预留了数据空间,下一状态为处理器核线程没有预留数据空间。Resv[->0]表示无论Resv的当前状态如何,下一状态都为处理器核线程没有预留数据空间。Resv[->1]表示无论Resv的当前状态如何,下一状态都为处理器核线程预留了数据空间。Resv[0->0]表示Resv当前状态为处理器核线程没有预留数据空间,下一状态仍旧为处理器核线程没有预留数据空间。
图7给出了SC执行成功的示例。在该示例中,存储器0为目标存储器,SC所携带的数据空间与LR所预留的数据空间相匹配,且在LR预留数据空间之后没有来自其它处理器核线程对该数据空间的写操作,同时在LR与SC指令之间该处理器核线程未执行其它SC指令,因此SC执行成功。具体流程如下:
处理器核中的某个线程发出了一个LR_REQ访问请求;
本地原子操作处理接口在收到LR_REQ之后向存储器0发送LR_REQ,并向存储器1和存储2发送相应的清除请求INVAL_REQ;
存储器0接收到LR_REQ之后,对该处理器核线程想要预留的数据空间进行标记,由于该处理器核线程之前未在存储器0上预留数据空间,因此该处理器核线程的Resv从状态0变为状态1。
存储1和存储2在接收到INVAL_REQ之后,将清除该处理器核线程预留的数据空间标记信息,无论该处理器核线程之前是否有预留数据空间,其Resv的状态都将转变为0。
存储器0向原子操作处理接口发送LR_RSP。
原子操作处理接口在接收到LR_RSP之后向处理器核发送LR_RSP。
处理器核在接收到LR_RSP之后发出SC_REQ(由于LR/SC是阻塞执行的,所以处理器核必须在接收到LR_REQ的响应LR_RSP之后才能执行SC指令发出SC_REQ)。
本地原子操作处理接口在收到SC_REQ之后向存储器0发送SC_REQ。
存储器0接收到SC_REQ,该SC_REQ携带的数据空间与该处理器核线程所预留的数据空间匹配成功,SC_REQ携带的数据被更新到存储器0中,且所有处理器核中所有线程在存储器0中预留的与该SC_REQ携带的数据空间相匹配的预留数据空间标记信息会被清除。该处理器核线程的Resv从状态1变为状态0。
存储器0向原子操作处理接口发送SC执行成功响应SC_RSP(S)。
原子操作处理接口接收到SC_RSP(S)之后向处理器核发送SC_RSP(S),由于SC执行成功,因此原子操作处理接口不用向存储器1和存储器2发送清除请求INVAL_REQ。
图8给出了SC执行失败的示例。在该示例中,存储器0为目标存储器,处理器核线程没有在存储器0中预留数据空间,因此SC访问请求到达存储器0之后执行失败。具体流程如下:
处理器核中的某个线程发出了一个SC_REQ访问请求。
本地原子操作处理接口在收到SC_REQ之后向存储器0发送SC_REQ。
存储器0接收到SC_REQ,该处理器核线程没有在存储器0上预留数据空间(即该处理器核线程的Resv当前状态为0),SC_REQ匹配失败,其携带的数据将不会被更新到存储器0中,该处理器核线程的Resv维持状态0不变。
存储器0向原子操作处理接口发送SC执行失败响应SC_RSP(F)。
原子操作处理接口在接收到SC_RSP(F)之后向处理器核返回SC_RSP(F),并向存储器1和存储2发送相应的清除请求INVAL_REQ。
存储1和存储2在接收到INVAL_REQ之后,将清除该处理器核线程预留的数据空间标记信息,无论该处理器核线程之前是否有预留数据空间,其Resv的状态都将转变为0。
图9给出了两对LR/SC交叠执行的示例。在该示例中,LR_REQ0所预留的数据空间与SC_REQ2所携带的数据空间相匹配,它们的目标存储器是存储器0;LR_REQ1所预留的数据空间与SC_REQ3所携带的数据空间相匹配,它们的目标存储器是存储器1。由于LR/SC需要阻塞执行,因此处理器核依次发出LR_REQ0、LR_REQ1、SC_REQ2、SC_REQ3。由于LR_REQ1的执行会清除LR_REQ0的预留数据空间标记信息,因此SC_REQ2执行失败;由于SC_REQ2的执行会清除LR_REQ1的预留数据空间标记信息,因此SC_REQ3执行失败。从该示例可看出清除请求INVAL_REQ是如何保证多个存储器的原子操作处理部件中预留空间标记信息的数据一致性的。具体流程如下:
处理器核中的某个线程先发出LR_REQ0访问请求,本地原子操作处理接口在收到该请求后向存储器0发送LR_REQ0,并向存储器1和存储2发送INVAL_REQ0。
存储器0在接收到LR_REQ0后,对LR_REQ0想预留的数据空间进行标记(即该处理器核线程在存储器0上的Resv状态变为1)。
存储1和存储2在接收到INVAL_REQ0之后,将清除该处理器核线程预留的数据空间标记信息,无论该处理器核线程之前是否有预留数据空间,其Resv的状态都将转变为0。
存储器0向原子操作处理接口发送LR_RSP0,原子操作处理接口在接收到LR_RSP0之后向处理器核发送LR_RSP0。
处理器核在接收到LR_RSP0之后发出LR_REQ1,本地原子操作处理接口在收到该请求后向存储器1发送LR_REQ1,并向存储器0和存储2发送INVAL_REQ1。
存储器1在接收到LR_REQ1后,对LR_REQ1想预留的数据空间进行标记(即该处理器核线程在存储器1上的Resv状态从0变为1)。
存储0和存储2在接收到INVAL_REQ1之后,将清除该处理器核线程预留的数据空间标记信息,无论该处理器核线程之前是否有预留数据空间,其Resv的状态都将转变为0。因此,LR_REQ0在存储器0上预留的数据空间被INVAL_REQ1清除了。
存储器1向原子操作处理接口发送LR_RSP1,原子操作处理接口在接收到LR_RSP1之后向处理器核发送LR_RSP1。
处理器核在接收到LR_RSP1之后发出SC_REQ2,本地原子操作处理接口在收到该请求后向存储器0发送SC_REQ2。
由于原子操作处理接口保证先发出INVAL_REQ1,再发送SC_REQ2,且互连网络是维序网络,因此INVAL_REQ1将先于SC_REQ2到达存储器0。SC_REQ2到达存储器0时,LR_REQ0预留的数据空间已被清除,所以SC_REQ2执行失败。SC_REQ2携带的数据被丢弃,且Resv的状态维持0不变。
存储器0向原子操作处理部件发送SC_RSP2(F),原子操作处理部件在收到SC_RSP2(F)后向处理器核返回SC_RSP2(F),并向存储器1和存储2发送INVAL_REQ2。
存储1和存储2在接收到INVAL_REQ2之后,将清除该处理器核线程预留的数据空间标记信息,无论该处理器核线程之前是否有预留数据空间,其Resv的状态都将转变为0。因此,LR_REQ1在存储器1上预留的数据空间被INVAL_REQ2清除了。
处理器核在接收到SC_RSP2(F)之后发出SC_REQ3,本地原子操作处理接口在收到该请求后向存储器1发送SC_REQ3。
由于原子操作处理接口保证先发出INVAL_REQ2,再发送SC_REQ3,且互连网络是维序网络,因此INVAL_REQ2将先于SC_REQ3到达存储器1。SC_REQ3到达存储器1时,LR_REQ1预留的数据空间已被清除,所以SC_REQ3执行失败。SC_REQ3携带的数据被丢弃,且Resv的状态维持0不变。
存储器1向原子操作处理部件发送SC_RSP3(F),原子操作处理部件在收到SC_RSP3(F)后向处理器核返回SC_RSP3(F),并向存储器0和存储2发送INVAL_REQ3。
存储0和存储2在接收到INVAL_REQ3之后,将清除该处理器核线程预留的数据空间标记信息,无论该处理器核线程之前是否有预留数据空间,其Resv的状态都将转变为0。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了处理器核、存储器、互连网络、原子操作处理部件、原子操作处理接口等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。

Claims (9)

1.一种分布式原子操作的实现装置,包括N个处理器核、M个存储器,且N个处理器核与M个存储器通过互连网络互连,其特征在于,N个处理器核分别通过X个原子操作处理接口连接至所述的互连网络,所述的原子操作处理接口包括处理器核请求模块、LR清除请求模块和SC清除请求模块,所述的处理器核请求模块用于在接收到相应处理器核发送的LR访问请求时,通过互连网络向目标存储器发送LR访问请求,并通知LR清除请求模块通过互连网络向其它所有存储器发送清除请求,所述的SC清除请求模块用于在接收到互连网络返回的SC执行失败响应时,通过互连网络向除目标存储器之外的其余所有存储器发送清除请求,且所述的清除请求针对于为相应处理器核发出LR访问请求的线程所预留的数据空间标记;
所述的处理器核请求模块包括处理器核请求队列,处理器核请求队列用于缓存来自处理器核的各类请求,且当各类请求中的LR请求被仲裁到执行时,通过互连网络向目标存储器发送LR访问请求,同时产生相应的LR清除请求并写入LR清除请求队列;
所述的LR清除请求模块包括LR清除请求队列,LR清除请求队列用于缓存因LR访问请求而产生的清除请求;
所述的SC清除请求模块包括SC清除请求队列和响应过滤器,SC清除请求队列用于缓存因SC执行失败响应而产生的清除请求;响应过滤器用于接收并向处理器核转发响应,同时识别SC响应类型,并在识别到来自互连网络的SC执行失败响应时产生相应的SC清除请求写入SC清除请求队列。
2.根据权利要求1所述的分布式原子操作的实现装置,其特征在于,所述的互连网络为维序网络;
所述的X≥N,每个处理器核至少对应一个原子操作处理接口;
或者,所述的X<N,每个原子操作处理接口对应一个或多个处理器核。
3.根据权利要求1所述的分布式原子操作的实现装置,其特征在于,所述的原子操作处理接口还包括优先级仲裁器,优先级仲裁器用于从三个请求队列中仲裁出一个请求发送到互连网络上。
4.根据权利要求3所述的分布式原子操作的实现装置,其特征在于,在优先级仲裁器中,LR清除请求队列和SC清除请求队列的仲裁优先级高于处理器核请求队列的仲裁优先级;
LR清除请求队列和SC清除请求队列的深度均等于或大于相应处理器核的线程数;
所述的处理器核请求模块具有请求旁路机制,用于在三个队列均为空时,跳过仲裁阶段直接将请求发送至互连网络,并判断该请求是否为LR访问请求,若是,则产生相应的LR清除请求并写入LR清除请求队列。
5.根据权利要求1-4任意一项所述的分布式原子操作的实现装置,其特征在于,N个处理器核和M个存储器集成在同一个芯片上以实现多核处理系统,且所述的互连网络为片上互连网络。
6.根据权利要求1-4任意一项所述的分布式原子操作的实现装置,其特征在于,N个处理器核和M个存储器集成在多个芯片上以实现多处理系统,且所述的互连网络由片间互连网络构成,或由片间互连网络和片上互连网络构成。
7.一种分布式原子操作实现方法,其特征在于,包括:
S11.接收来自相应处理器核的请求;
S12.将所述请求写入处理器核请求队列等待被仲裁;
S13.当请求被发送至目标存储器时,判断该请求是否为LR访问请求,若是,则产生相应的清除请求并将之写入LR清除请求队列等待被仲裁;
当步骤S13产生的清除请求被仲裁到时,执行步骤S2;
S2.向目标存储器发送LR访问请求,向其他存储器发送清除请求;且目标存储器的原子操作处理部件接收到LR访问请求后,对相应处理器核线程预留的数据空间进行标记并返回LR访问响应;
S3.接收LR访问响应并向所述处理器核返回;
S4.接收来自处理器核的SC访问请求并发送给目标存储器;且目标存储器的原子操作处理部件接收到SC访问请求后,将SC访问请求所携带的信息与原子操作处理部件所记录的预留数据空间标记信息进行匹配,若匹配成功,则SC访问请求携带的数据被更新到目标存储器中,并清除目标存储器中预留的与该SC访问请求所携带的信息相匹配的所有数据空间标记信息,返回SC执行成功响应,否则返回SC执行失败响应,并清除发出该SC访问请求的处理器核线程在目标存储器中预留的数据空间标记信息;
S51.接收SC响应并向所述处理器核返回;
S52.判断所述SC响应的响应类型;
S53.若SC响应为SC执行失败响应,则产生相应的SC清除请求并写入SC清除请求队列等待被仲裁;
S54.当步骤S53产生的清除请求被仲裁到时,向除目标存储器外的其他所有存储器发送清除请求;
步骤S2和S54中,其他存储器接收到清除请求后,清除相应处理器核线程预留的数据空间标记信息;
所述的清除请求针对于为发出LR访问请求的相应处理器核线程所预留的数据空间标记。
8.根据权利要求7所述的分布式原子操作实现方法,其特征在于,步骤S11中,当接收到来自处理器核的请求时,检查LR清除请求队列、SC清除请求队列、处理器核请求队列是否都为空,若是,则将请求发送至目标存储器,并执行步骤S13;若并非都为空,则判断处理器核请求队列是否已满,若否,则执行步骤S12,若是则等待空位。
9.根据权利要求7-8任意一项所述的分布式原子操作实现方法,其特征在于,与存储器之间的信息交互均经由互连网络;
优先级仲裁方式包括:
当只有处理器核请求队列非空时,从该队列读出位于队列头的请求并将之发送到互连网络上,若该请求为LR访问请求,则同时产生相应的清除请求并将之写入LR清除请求队列;
当LR清除请求队列非空且SC清除请求队列为空时,从LR清除请求队列读出位于队列头的请求,并将之以组播或单播的方式发送到互连网络上;
当SC清除请求队列非空且LR清除请求队列为空时,从SC清除请求队列读出位于队列头的请求,并将之以组播或单播的方式发送到互连网络上;
当LR清除请求队列和SC清除队列都非空时,基于公平轮转调度算法从两个队列中选择其中一个清除请求队列,并从选中的队列读出位于队列头的请求,将之以组播或单播的方式发送到互连网络上。
CN202210643265.8A 2022-06-09 2022-06-09 一种分布式原子操作的实现方法与实现装置 Active CN114721996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210643265.8A CN114721996B (zh) 2022-06-09 2022-06-09 一种分布式原子操作的实现方法与实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210643265.8A CN114721996B (zh) 2022-06-09 2022-06-09 一种分布式原子操作的实现方法与实现装置

Publications (2)

Publication Number Publication Date
CN114721996A CN114721996A (zh) 2022-07-08
CN114721996B true CN114721996B (zh) 2022-09-16

Family

ID=82232538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210643265.8A Active CN114721996B (zh) 2022-06-09 2022-06-09 一种分布式原子操作的实现方法与实现装置

Country Status (1)

Country Link
CN (1) CN114721996B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112956254A (zh) * 2018-10-31 2021-06-11 高通股份有限公司 用于支持无线网络中的上行链路和下行链路位置确定过程的系统及方法
CN114020656A (zh) * 2021-11-05 2022-02-08 中国电子科技集团公司第五十八研究所 多核SOC中非阻塞L1 Cache

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137807A (ja) * 1994-11-10 1996-05-31 Canon Inc 情報処理システム及びその方法
US7254678B2 (en) * 2005-03-17 2007-08-07 International Business Machines Corporation Enhanced STCX design to improve subsequent load efficiency
US7350034B2 (en) * 2005-06-20 2008-03-25 International Business Machines Corporation Architecture support of best-effort atomic transactions for multiprocessor systems
US8713294B2 (en) * 2009-11-13 2014-04-29 International Business Machines Corporation Heap/stack guard pages using a wakeup unit
US9280348B2 (en) * 2012-03-28 2016-03-08 International Business Machines Corporation Decode time instruction optimization for load reserve and store conditional sequences
US9430166B2 (en) * 2012-08-10 2016-08-30 International Business Machines Corporation Interaction of transactional storage accesses with other atomic semantics
JP6115455B2 (ja) * 2013-11-29 2017-04-19 富士通株式会社 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置
US9396127B2 (en) * 2014-02-27 2016-07-19 International Business Machines Corporation Synchronizing access to data in shared memory
US10956086B2 (en) * 2018-01-29 2021-03-23 Micron Technology, Inc. Memory controller
US10725937B2 (en) * 2018-07-30 2020-07-28 International Business Machines Corporation Synchronized access to shared memory by extending protection for a store target address of a store-conditional request
CN111080510B (zh) * 2019-12-11 2021-02-12 海光信息技术股份有限公司 数据处理装置、方法、芯片、处理器、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112956254A (zh) * 2018-10-31 2021-06-11 高通股份有限公司 用于支持无线网络中的上行链路和下行链路位置确定过程的系统及方法
CN114020656A (zh) * 2021-11-05 2022-02-08 中国电子科技集团公司第五十八研究所 多核SOC中非阻塞L1 Cache

Also Published As

Publication number Publication date
CN114721996A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
KR100524575B1 (ko) 데이타 처리시스템에서 복수개의 메모리 억세스 리퀘스트신호를리오더링하는 방법
US8589656B2 (en) Queuing of conflicted remotely received transactions
US7076597B2 (en) Broadcast invalidate scheme
JP3884990B2 (ja) マルチプロセッサ装置
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
US20020174229A1 (en) System and method of maintaining coherency in a distributed communication system
US20080109573A1 (en) RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node
US20060282645A1 (en) Memory attribute speculation
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US8589638B2 (en) Terminating barriers in streams of access requests to a data store while maintaining data consistency
US7383336B2 (en) Distributed shared resource management
JP3010400B2 (ja) 共有メモリ制御方法及び共有メモリ制御装置
US6754775B2 (en) Method and apparatus for facilitating flow control during accesses to cache memory
CN112955876B (zh) 用于在数据处理网络中传输数据的方法和装置
US20150234759A1 (en) Method and apparatus using high-efficiency atomic operations
US9632955B2 (en) Reorder buffer permitting parallel processing operations with repair on ordering hazard detection within interconnect circuitry
US9442878B2 (en) Parallel snoop and hazard checking with interconnect circuitry
US8230117B2 (en) Techniques for write-after-write ordering in a coherency managed processor system that employs a command pipeline
JPH05242022A (ja) データ・バスを確保する方法及び装置
US6832268B2 (en) Mechanism to guarantee forward progress for incoming coherent input/output (I/O) transactions for caching I/O agent on address conflict with processor transactions
US11449489B2 (en) Split transaction coherency protocol in a data processing system
CN114721996B (zh) 一种分布式原子操作的实现方法与实现装置
US8010682B2 (en) Early coherency indication for return data in shared memory architecture
US10067889B2 (en) Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system
JP2002108836A (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
GR01 Patent grant
GR01 Patent grant