CN108536473A - 读取数据的方法和装置 - Google Patents
读取数据的方法和装置 Download PDFInfo
- Publication number
- CN108536473A CN108536473A CN201710124141.8A CN201710124141A CN108536473A CN 108536473 A CN108536473 A CN 108536473A CN 201710124141 A CN201710124141 A CN 201710124141A CN 108536473 A CN108536473 A CN 108536473A
- Authority
- CN
- China
- Prior art keywords
- load
- instructions
- physical address
- management equipment
- store
- 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.)
- Granted
Links
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
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
本申请提供了一种读取数据的方法和装置,该方法包括:处理器设备确定第一读load指令之后存在第一写store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同;该处理器设备向缓存管理设备发送携带附加信息的该第一load指令,该附加信息用于指示在对该物理地址执行该第一load指令之后,还要执行该第一store指令,以便于该缓存管理设备根据携带该附加信息的该第一load指令,向主存管理设备发送用于请求对该物理地址执行读操作和写操作的读写请求消息。本申请提供的读取数据的方法和装置,能够减少缓存一致性过程中的通信开销,降低通信复杂度。
Description
技术领域
本申请涉及计算机领域,并且更具体地,涉及计算机领域中读取数据的方法和装置。
背景技术
在多处理器系统中,每个处理器都带有各自的扩展内存,处理器之间通过互联接口形成多处理器系统,现代处理器大多采用了缓存机制,将主存的共享存储空间中的数据存储在本地的缓存中,以加速多处理器核获取数据,其中,主存通过主存管理设备管理其存储空间的数据访问,处理器通过缓存管理设备管理其缓存的数据访问。当一个多线程的应用程序运行在一个多处理器系统时,多个线程通常运行在不同的处理器核内。当多个处理器共享了主存的存储空间中的某个数据时,它们对该数据的访问(读取操作和写入操作)必须保持一致性,即上述多个处理器之间通过缓存一致性协议,维护数据一致性。
处理器的应用程序中经常存在“读-修改-写”(Read-Modify-Write)这样的操作指令序列。当该处理器的缓存管理设备在执行某个数据的读操作时,发现该数据并未在该处理器的缓存中存储,该缓存管理设备会向主存管理设备发出共享读取(ReadShared)请求,主存管理设备从主存的存储空间内读取该数据,将数据以共享态发送给该缓存管理设备存,该缓存管理设备将该数据存入处理器的缓存。
然后,当处理器对数据进行了修改,再次准备写入到缓存内时,此时尽管缓存内存在该数据的复本,但该数据处于共享态,只能对该数据进行读取操作。为了保证写入操作的顺利进行,该缓存管理设备需要向主存管理设备发出状态升级请求(Upgrade_StoE)请求,即请求主存管理设备将记录的该数据在缓存内的状态从共享态提升为独占态,才能对该数据进行写操作。该主存管理设备在收到升级读写请求后,会将主存储设备中记录的该数据在缓存内的状态由共享态更改为独占态,并将其他处理器的缓存中读取的该数据无效化,以保证所有处理器的缓存一致性,这时该处理器可以对该数据进行写操作。
可以看到,针对一个完整的Read-Modify-Write过程,某个处理器的缓存管理设备需要发出两次缓存一致性请求(ReadShared和Upgrade_StoE)才能完成这个过程,而Read-Modify-Write过程在应用程序进程中非常常见,因此如果主存包括多个处理器,那么对于缓存管理设备和主存管理设备来说通信开销会非常大,从而通信复杂度也很高。
发明内容
本申请提供的读取数据的方法和装置,能够减少通信开销,从而降低通信复杂度。
第一方面,本申请提供了一种读取数据的方法,该方法包括:
处理器设备确定第一读load指令之后存在第一写store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同;
该处理器设备向缓存管理设备发送携带附加信息的该第一load指令,该附加信息用于指示在对该物理地址执行该第一load指令之后,还要执行该第一store指令,以便于该缓存管理设备根据携带该附加信息的该第一load指令,向主存管理设备发送用于请求对该物理地址执行读操作和写操作的读写请求消息。
应理解,当进行运行在处理器设备上时会产生指令序列,指令序列指的是由处理器设备产生的具有时间上的先后顺序的指令,这些指令按照产生的先后顺序依次被执行。
也就是说,第一load指令之后存在第一store指令,可以理解为第一load指令的产生时间/执行时间在第一store指令之后。
还应理解,在本申请实施例中,若在第一load指令之后存在第一store指令,且第一load指令与第一store指令访问的物理地址相同,则称第一load指令与第一store指令相关联。
具体而言,本申请实施例提供的读取数据的方法,处理器设备在发现指令序列中存在相关联的第一load指令和第一store指令时,可以通过在向缓存管理设备发送第一load指令时携带附加信息,以指示缓存管理设备这两个指令具有关联性。
本申请实施例提供的读取数据的方法,缓存管理设备无需在接收到处理器设备发送的第一load指令时向主存管理设备发送读请求,然后接收到处理器设备发送的第一store指令时再向主存管理设备发送写请求,而是当缓存管理设备发现第一load指令携带附加信息时,只需要向主存管理设备发送一个读写请求即可以同时满足两个指令的请求。相应地,主存管理设备也无需分别对读请求和写请求反馈两个响应,只需对读写请求做一次响应即可,减少了处理器设备与主存储设备之间的通信开销。
在一个可能的实现方式中,该处理器设备确定第一读load指令之后存在第一写store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,包括:该处理器设备通过分析缓存设备中缓存的多个指令中每个指令的指令信息,确定该第一load指令之后存在该第一store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,该多个指令包括至少一个load指令和至少一个store指令,该至少一个load指令包括该第一load指令,该至少一个store指令包括该第一store指令。
应理解,缓存设备可以为处理器设备独立于处理器设备的设备,或者集成于该处理器设备,该缓存设备中缓存了多个指令的指令信息。
可选地,缓存设备可以通过指令保留站的表项表示每个指令的指令信息,例如保留站内每个指令的表项包括指令序号(表示指令产生/执行的顺序)、指令类型(load类指令还是store类指令)、数据寄存器的号码、地址寄存器的号码、地址偏移量等。
在一个可能的实现方式中,该每个指令的指令信息包括该每个指令的物理寄存器的号码,该处理器设备通过分析缓存设备中缓存的多个指令中每个指令的指令信息,确定该第一load指令之后存在该第一store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,包括:该处理器设备根据该第一load指令的指令信息中的物理寄存器的号码与该第一store指令中的物理寄存器的号码相同,确定该第一load指令访问的物理地址与该第一store指令访问的物理地址相同。
应理解,保留站中寄存器的号码通常是重命名之后的寄存器号码,即物理寄存器的号码,每个指令中的物理寄存器的号码都是独一无二的,不会和其它指令中的物理寄存器的号码相同。
在一个可能的实现方式中,在该处理器设备向缓存管理设备发送携带附加信息的该第一load指令之前,该方法还包括:该处理器设备将该附加信息添加到该缓存设备中缓存的该第一load指令的指令信息中。
本申请实施例提供了一种新的保留站格式,在指令保留站的表项中添加了附加信息,该附加信息仅在指令为load类型时有效,若存在相关联的store指令,则该load指令附加信息为true,从而能够使缓存管理设备读取携带附加信息的load指令时能够发出更准确的请求,减少通信开销。
在一个可能的实现方式中,该处理器设备确定第一读load指令之后存在第一写store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,包括:该处理器设备获取该第一load指令,该第一load指令包括扩展语义,该处理器设备根据该扩展语义,确定该第一load指令之后存在该第一store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同。
本申请实施例提供了一种新的load指令,理器设备可以根据load指令的扩展语义直接为load指令添加附加信息,无需对保留站中的所有指令进行关联性检测,能够提高处理器设备处理指令的效率。
第二方面,本申请提供了另一种读取数据的方法,该方法包括:
缓存管理设备接收处理器设备发送的携带附加信息的第一读load指令,该第一load指令用于指示对该第一load指令中的物理地址执行读操作,该附加信息用于指示在对该物理地址执行该第一load指令执行之后,还要执行第一写store指令;该缓存管理设备根据该第一load指令,向主存管理设备发送读写请求消息,该读写请求消息用于请求对该物理地址执行读操作和写操作的。
本申请实施例提供的读取数据的方法,缓存管理设备无需在接收到处理器设备发送的第一load指令时向主存管理设备发送读请求,然后接收到处理器设备发送的第一store指令时再向主存管理设备发送写请求,而是当缓存管理设备发现第一load指令携带附加信息时,只需要向主存管理设备发送一个读写请求即可以同时满足两个指令的请求。相应地,主存管理设备也无需分别对读请求和写请求反馈两个响应,只需对读写请求做一次响应即可,减少了处理器设备与主存储设备之间的通信开销。
第三方面,本申请提供了一种读取数据的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
第四方面,本申请提供了另一种读取数据的装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
第五方面,本申请提供了又一种读取数据的装置,该装置包括:处理器、存储器和通信接口。其中,该处理器、该存储器和该通信接口均通过内部连接通路互相通信,该存储器用于存储计算机执行指令,该至少一个处理器用于执行该存储器存储的计算机执行指令,使得该装置可以通过该通信接口与其它装置进行数据交互来执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,本申请提供了又一种读取数据的装置,该装置包括:处理器、存储器和通信接口。其中,该处理器、该存储器和该通信接口均通过内部连接通路互相通信,该存储器用于存储计算机执行指令,该至少一个处理器用于执行该存储器存储的计算机执行指令,使得该装置可以通过该通信接口与其它装置进行数据交互来执行第二方面或第二方面的任意可能的实现方式中的方法。
第七方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第八方面,本申请提供了另一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
第九方面,本申请提供了一种读取数据的系统,该系统包括上述第三方面或第四方面提供的装置。
附图说明
图1是本申请实施例应用的多处理器系统的示意图;
图2是本申请实施例提供的读取数据的方法的示意性流程图;
图3是本申请实施例提供的另一读取数据的方法的示意性流程图;
图4是本申请实施例提供的读取数据的装置的示意性框图;
图5为本申请实施例提供的另一读取数据的装置的示意性框图;
图6是本申请实施例提供的又一读取数据的装置的示意性框图;
图7为本申请实施例提供的又一读取数据的装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于理解,下面先介绍一下本申请涉及到的多处理器系统的相关概念。
在多处理器系统中,每个处理器都带有各自的扩展内存,即缓存,将主存的存储空间中的数据存储在本地的缓存中,并通过缓存管理设备对缓存中的数据进行管理以及与主存储设备进行数据的读写操作,以加速多处理器核获取数据。
当应用程序运行在多处理器系统中的某个处理器上时,该处理器会产生读(load)指令或写(store)指令,请求对指令中目标地址中存储的数据进行读操作或者写操作。
若处理器产生了一个load指令,该指令用于指示对地址X的数据进行读操作,该缓存管理设备会根据该load指令查看本地缓存中是否缓存有地址X的数据,如果该缓存目前没有存储该数据,说明在主存储器中记录的该数据的状态为失效(Invalid)态,这时缓存管理设备会向主存管理设备发送共享读取(ReadShared)请求,表明当前缓存内未存有该数据,并且需要得到数据的共享(Shared)态的复本。主存管理设备在收到该ReadShared请求后,会将主存储器中记录的该数据在该缓存内的状态由I态更改为S态,并将该数据的S态的复本发送给该缓存管理设备,意味着处理器只能对该数据进行读操作,不允许对数据进行写操作。ReadShared请求通常在Load指令发生时,缓存中未存储该load指令访问的数据时发出
若处理器产生了一个store指令,该指令用于指示对地址X的数据进行写操作,该缓存管理设备会根据该store指令查看本地缓存中是否缓存有地址X的数据,如果该缓存目前没有存储该数据,说明在主存储器中记录的该数据的状态为I态,这时缓存管理设备会向主存管理设备发送独占读取(ReadUnique)请求,表明当前缓存内未存有该数据,并且需要得到数据的独占(Exclusive)态的复本。主存管理设备在收到该ReadUnique请求后,会将主存储器中记录的该数据在该缓存内的状态由I态更改为E态,并将该数据的E态的复本发送给该缓存管理设备,意味着该处理器既能对该数据进行读操作,也能对数据进行写操作,同时将其他处理器缓存中的该数据无效化。但主存管理设备处理ReadUnique请求通常要比处理ReadShared请求需要更长的时间,并且需要将该数据的在其它Cache内的复本无效化。ReadUnique请求通常在Store指令发生时,缓存中为存储该store指令访问的数据时发出。
现有的缓存一致性方法中,若处理器在产生了一个load指令后,缓存管理设备需要向主存管理设备先发送一个ReadShared请求,请求主存管理设备将该数据在该缓存内的状态由I态更改为S态,即缓存管理设备能够对该数据进行读操作。这时若处理器又产生了一个store指令,且该store指令与该load指令访问的是相同物理地址,这时缓存管理设备需要再向主存管理设备发送一个状态升级(Upgrade_StoE)请求,请求主存管理设备在收到该Upgrade_StoE请求后,将主存储器中记录的该数据在缓存设备内的状态由S态更改为E态,同时将其他处理器缓存中的该数据无效化,意味着该处理器既能对该数据进行读操作,也能对数据进行写操作。
这样以来,缓存管理设备在连续收到一个load指令和一个store指令时,需要向主存管理设备发送两个请求消息,如果进程同时运行在多个处理器上时,会产生多个读写过程,因此通信开销比较大。
另外,现有的多处理器系统均遵循MESI协议,MESI是修改(Modified)、独占(Exclusive)、共享(Shared)、失效(Invalid)的首字母缩写,代表四种缓存状态,失效状态可以简称为处于I状态,共享状态可以简称为S状态,独占状态可以简称为E状态,修改状态可以简称为M状态,任何多处理器系统中的缓存数据都处于这四种状态之一。
失效缓存数据:要么已经不在缓存中,要么内容已经过时。为了达到缓存的目的,这种状态的数据将会被忽略。一旦缓存数据被标记为失效,那效果就等同于它从来没被加载到缓存中。
共享缓存数据:它是和主内存内容保持一致的一份拷贝,在这种状态下的缓存数据只能被读取,不能被写入。多组缓存可以同时拥有针对同一内存地址的共享缓存数据。
独占缓存数据:和S状态一样,也是和主内存内容保持一致的一份拷贝。区别在于,如果一个处理器持有了某个E状态的缓存数据,那其他处理器就不能同时持有它,所以称之为“独占”。这意味着,如果其他处理器原本也持有同一缓存数据,那么其他处理器中的该缓存数据会马上变成I状态。
已修改缓存数据:属于脏段,因为它们已经被所属的处理器修改了。如果一个数据处于M状态,那么它在其他处理器缓存中的拷贝马上会变成I状态,这个规律和E状态一样。此外,如果已修改缓存数据被丢弃或标记为I状态,那么先要把它的内容回写到内存中。
综上所述,E状态解决了“在开始修改某块内存之前,需要告诉其他处理器”这一问题:只有当缓存数据处于E状态或M状态时,处理器才能去写它,也就是说只有这两种状态下,处理器是独占这个缓存段的。因此,当处理器想写某个缓存数据时,如果该处理器没有独占权,它必须先发送一条独占请求给总线,通知其他处理器,把它们拥有的同一缓存数据的拷贝失效。只有在获得独占权后,该处理器才能开始修改数据——并且此时,该处理器知道,这个缓存段只有一份拷贝,在自己的缓存里,所以不会有任何冲突。反之,如果有其他处理器想读取这个缓存数据,被独占或已修改的缓存数据必须先回到S状态。如果是已修改的缓存数据,那么还要先把内容回写到内存中。
图1示出了本申请实施例的多处理器系统100。该多处理器系统100包括主存储设备101和多个处理器设备(图1中示出了处理器设备111和处理器设备112),主存储设备中存储的数据通过主存管理设备102管理,每个处理器设备分别包括各自的缓存设备,用于将主存储设备中的数据缓存到本地(图1中示出了处理器设备111的缓存设备121和处理器设备112的缓存设备122),每个处理器设备的缓存设备中的数据由该处理器设备的缓存管理设备管理(如图1中缓存管理设备131负责管理处理器设备111的缓存设备121中的数据,缓存管理设备132负责管理处理器设备112的缓存设备122中的数据),每个处理器设备与主存储设备之间的数据可以通过缓存管理设备和主存管理设备互相访问,本申请实施例对此不作限定。
应理解,本申请实施例中的主存储设备可以为主机的存储器,处理器设备可以为具有计算处理能力的设备,例如可以为中央处理器(central processing unit,CPU)或图像处理器(graphic processing unit,GPU),本申请实施例对此不作限定。
还应理解,本申请实施例中的处理器设备的缓存设备可以为该处理器设备的存储器。
还应理解,本申请实施例中的缓存管理设备,可以为独立于处理器设备的设备,或者可以集成于该处理器设备,例如可以为该处理器设备的功能模单元,本申请实施例对此不作限定。
应理解,图1示例性地示出了两个处理器设备、以及每个处理器设备的缓存管理设备和缓存设备,可选地,该多处理器系统100可以包括其它数量的处理器设备以及其他数量的缓存管理设备和缓存设备,本申请实施例对此不做限定。
图2示出了本申请实施例提供的读取数据的方法200的示意性流程图,如图2所示,该方法200应用于如图1所示的多处理器系统。
S210,处理器设备确定第一读load指令之后存在第一写store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同。
S220,该处理器设备向缓存管理设备发送携带附加信息的该第一load指令,该附加信息用于指示在对该物理地址执行该第一load指令之后,还要执行该第一store指令,以便于该缓存管理设备根据携带该附加信息的该第一load指令,向主存管理设备发送用于请求对该物理地址执行读操作和写操作的读写请求消息,相应地,该缓存管理设备接收该处理器设备发送的携带该附加信息的该第一load指令。
S230,该缓存管理设备根据该第一load指令,向主存管理设备发送读写请求消息,该读写请求消息用于请求对该物理地址执行读操作和写操作的,相应地,主存管理设备接收该缓存管理设备发送的所述读写请求消息,并向该缓存管理设备发送用于反馈该读写请求消息的响应消息。
应理解,当进行运行在处理器设备上时会产生指令序列,指令序列指的是由处理器设备产生的具有时间上的先后顺序的指令,这些指令按照产生的先后顺序依次被执行。
也就是说,第一load指令之后存在第一store指令,可以理解为第一load指令的产生时间/执行时间在第一store指令之后。
还应理解,在本申请实施例中,若在第一load指令之后存在第一store指令,且第一load指令与第一store指令访问的物理地址相同,则称第一load指令与第一store指令相关联。
具体而言,本申请实施例提供的读取数据的方法,处理器设备在发现指令序列中存在相关联的第一load指令和第一store指令时,可以通过在向缓存管理设备发送第一load指令时携带附加信息,以指示缓存管理设备这两个指令具有关联性。
本申请实施例提供的读取数据的方法,缓存管理设备无需在接收到处理器设备发送的第一load指令时向主存管理设备发送读请求,然后接收到处理器设备发送的第一store指令时再向主存管理设备发送写请求,而是当缓存管理设备发现第一load指令携带附加信息时,只需要向主存管理设备发送一个读写请求即可以同时满足两个指令的请求。相应地,主存管理设备也无需分别对读请求和写请求反馈两个响应,只需对读写请求做一次响应即可,减少了处理器设备与主存储设备之间的通信开销。
可选地,在S210中,该处理器设备确定第一读load指令之后存在第一写store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,可以理解为该处理器设备通过分析缓存设备中缓存的多个指令中每个指令的指令信息,确定该第一load指令之后存在该第一store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,该多个指令包括至少一个load指令和至少一个store指令,该至少一个load指令包括该第一load指令,该至少一个store指令包括该第一store指令。
作为一个可选实施例,该每个指令的指令信息可以包括该每个指令的物理寄存器的号码,该处理器设备可以根据该第一load指令的指令信息中的物理寄存器的号码与该第一store指令中的物理寄存器的号码相同,确定该第一load指令访问的物理地址与该第一store指令访问的物理地址相同。
可选地,缓存设备可以通过指令保留站的表项表示每个指令的指令信息,例如保留站内每个指令的表项包括指令序号(表示指令产生/执行的顺序)、指令类型(load类指令还是store类指令)、数据寄存器的号码、地址寄存器的号码、地址偏移量等。
例如,如表1中所示,保留站内存放了进程产生多个指令以及每个指令的指令信息,其中,每个指令的指令信息通过保留站内的表项表示,例如保留站内每个指令的表项包括指令序号、指令类型(load类型还是store类型)、数据寄存器的号码、地址寄存器的号码、地址偏移量等。
表1
序号 | 类型 | 数据寄存器 | 地址寄存器 | 偏移量 |
0 | Load | R0 | R1 | 0 |
1 | Store | R2 | R1 | 0 |
... | ... | ... | ... | ... |
应理解,保留站中地址寄存器的号码通常是重命名之后的寄存器号码,即物理寄存器的号码,每个指令中的物理寄存器的号码都是独一无二的,不会和其它指令中的物理寄存器的号码相同。
可选地,指令的执行/产生顺序可以通过表项内的指令序号表示,例如序号为0的load指令,执行/产生时间早于序号为1的store指令,或者该保留站的表项还可以包括执行/产生时间,本申请实施例对此不作限定。
作为一个可选实施例,该处理器设备可以根据该第一load指令的指令信息中的地址寄存器的号码与该第一store指令中的物理寄存器的号码相同,确定该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,并且可以根据第一load指令的序号在第一store指令的序号之前,确定该第一load指令的执行时间早于该第一store指令。因此可以确定该第一load指令与该第一store指令相关联。
可选地,该处理器设备在确定该第一load指令与该第一store指令相关联之后,可以在保留站中将附加信息添加到该第一load指令的表项中。
例如,表2中示出了本申请实施例提供的新的保留站格式,如表2所示,在指令保留站的指令表项中添加了附加信息,该附加信息仅在指令为load类型时有效,当load指令的附加信息为Ture,则说明存在与该load指令相关联的store指令,若load指令的附加信息为False,则说明该load指令为普通的只读指令。
表2
序号 | 类型 | 数据寄存器 | 地址寄存器 | 偏移量 | 附加信息 |
0 | Load | R0 | R1 | 0 | Ture |
1 | Store | R2 | R1 | 0 | N/A |
2 | Load | R3 | R4 | 0 | False |
... | ... | ... | ... | ... | ... |
因此,缓存管理设备在获取每个load指令时,可以通过读取load指令携带的附加信息发出更准确的请求,减少通信开销。
可选地,本申请实施例提供的读取数据的方法,处理器设备可以在每个指令即将从指令保留站发送至缓存管理设备时,检测其与保留针内的其他指令之间的关联性,也可以在每个指令即将进入保留站时,检测其与保留站内的其他指令之间的关联性,本申请实施例对此不作限定。
作为一个可选实施例,该处理器设备可以针对即将被发送到缓存管理设备的load指令进行检测,检测该load指令与其后的load指令之间的关联性。即,一个load指令即将发送到缓存管理设备时,检测该load指令与保留站内所有store指令之间的关联性。
作为另一个可选实施例,该处理器设备可以针对即将进入保留站的store指令进行检测,检测该store指令与保留站内现有的所有load指令之间的关联性。即,一个新来的store指令即将进入保留站时,检测该store指令与保留站内所有load指令之间的关联性。
可选地,在S210中,该处理器设备确定该第一load指令之后存在第一store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同,可以为该处理器设备获取该第一load指令,该第一load指令包括扩展语义,该处理器设备根据该扩展语义,确定该第一load指令之后存在第一store指令,且该第一load指令访问的物理地址与该第一store指令访问的物理地址相同。
作为一个可选实施例,程序员可以对load指令进行分类,将其分为普通的load指令(即Load.To.Read操作)和Load.To.Write类型的指令,Load.To.Write指令的格式与普通的Load指令是一样的。
例如:普通的load指令可以表示为:
Load Rd,[Rs]//表示将Rs地址寄存器中的数据读取到寄存器Rd中。
又例如:本申请实施例提供的Load.To.Write指令可以表示为:
Load.To.Write Rd,[Rs]
这里需要说明的是,即使是普通的Load指令,在一般的处理器中也具有多种具体的表现形式。这里我们只是强调,这种Load.To.Wr类型的Load指令,在形式上和普通的Load指令是相同的,只是具有一个特别的To Write语义。
本申请实施例提供了一种新的load指令,该load指令包括扩展语义,处理器设备可以根据该扩展语义直接为load指令添加附加信息,无需对保留站中的所有指令进行关联性检测,能够提高处理器设备处理指令的效率。
可选地,在S230之前,处理器设备可以查找缓存设备中是否存有该数据,若缓存设备中未存有该数据,则所述缓存管理设备向主存管理单元发送读写请求消息。相应地,主存管理设备在接收到该缓存管理设备发送的读写请求后,将请求的数据的E态返回给缓存管理设备,并将主存储设备中记录的该数据在其他处理器设备的缓存设备内状态由S态更改为E态,能够保证多处理器设备间的缓存一致性。
图3示出了本申请实施例提供的读取数据的方法300,该方法300应用于如图1所示的多处理器系统。
S301,处理器设备将进程运行过程中产生的多个指令放入缓存设备的保留站。
S302,处理器设备确定指令保留站中的第一load指令和第一store指令相关联。
可选地,当处理器设备检测到第一store指令之后存在第一load指令,且第一load指令与第一store指令访问的物理地址相同,则确定该第一load指令与该第一store指令相关联。
S303,处理器设备将附加信息添加到指令保留站内该第一load指令的指令信息中。
S304,处理器设备将携带附加信息的第一load指令发送给缓存管理设备,相应地,缓存管理设备接收携带附加信息的第一load指令。
S305,若缓存管理设备确定处理器设备的缓存设备中未存储该第一load指令中物理地址中的数据,则该缓存管理设备根据该第一load指令携带附加信息,向主存管理设备发送读写请求消息,相应地,该主存管理设备接收该缓存管理设备发送的读写请求消息。
S306,该主存管理设备向缓存管理设备发送用于反馈该读写请求消息的响应消息。
具体而言,该主存管理设备可以将读写请求中物理地址中存储的数据的E状态反馈给缓存管理设备,并将其它处理器设备的缓存中的该数据无效化。
本申请实施例提供的读取数据的方法,缓存管理设备无需在接收到处理器设备发送的第一load指令时向主存管理设备发送读请求,然后接收到处理器设备发送的第一store指令时再向主存管理设备发送写请求,而是当缓存管理设备发现第一load指令携带附加信息时,只需要向主存管理设备发送一个读写请求即可以同时满足两个指令的请求。相应地,主存管理设备也无需分别对读请求和写请求反馈两个响应,只需对读写请求做一次响应即可,减少了处理器设备与主存储设备之间的通信开销。
上面结合图1至图3描述了本申请实施例提供的读取数据的方法,下面将结合图4至图7描述本申请实施例提供的读取数据的装置。
图4提供了本申请实施例提供的读取数据的装置400的示意性框图。该装置400包括:
确定单元410,用于确定第一读load指令之后存在第一写store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同;
发送单元420,用于向缓存管理设备发送携带附加信息的所述第一load指令,所述附加信息用于指示在对所述物理地址执行所述第一load指令之后,还要执行所述第一store指令,以便于所述缓存管理设备根据携带所述附加信息的所述第一load指令,向主存管理设备发送用于请求对所述物理地址执行读操作和写操作的读写请求消息。
可选地,所述确定单元具体用于通过分析缓存设备中缓存的多个指令中每个指令的指令信息,确定所述第一load指令之后存在所述第一store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同,所述多个指令包括至少一个load指令和至少一个store指令,所述至少一个load指令包括所述第一load指令,所述至少一个store指令包括所述第一store指令。
可选地,所述每个指令的指令信息包括所述每个指令的物理寄存器的号码,所述确定单元具体用于根据所述第一load指令的指令信息中的物理寄存器的号码与所述第一store指令中的物理寄存器的号码相同,确定所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同。
可选地,所述装置还包括:添加单元,所述添加单元用于在所述处理器设备向缓存管理设备发送携带附加信息的所述第一load指令之前,将所述附加信息添加到所述缓存设备中缓存的所述第一load指令的指令信息中。
可选地,所述确定单元具体用于获取所述第一load指令,所述第一load指令包括扩展语义,根据所述扩展语义确定所述第一load指令之后存在第一store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同。
在一个可选例子中,本领域技术人员可以理解,装置400可以具体为上述方法实施例中的处理器设备,装置400可以用于执行上述方法实施例中与处理器设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
应理解,这里的装置400可以以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
图5提供了本申请实施例提供的另一读取数据的装置500的示意性框图。该装置500包括:
接收单元510,用于接收处理器设备发送的携带附加信息的第一读load指令,所述第一load指令用于指示对所述第一load指令中的物理地址执行读操作,所述附加信息用于指示在对所述物理地址执行所述第一load指令执行之后,还要执行第一写store指令;
发送单元520,用于根据所述第一load指令,向主存管理设备发送读写请求消息,所述读写请求消息用于请求对所述物理地址执行读操作和写操作的。
在一个可选例子中,本领域技术人员可以理解,装置500可以具体为上述方法实施例中的缓存管理设备,装置500可以用于执行上述方法实施例中与缓存管理设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
应理解,这里的装置500可以以功能单元的形式体现。这里的术语“单元”可以指ASIC、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
图6提供了本申请实施例提供的又一读取数据的装置600的示意性框图。该装置600包括:处理器610、存储器620和通信接口630;该处理器610、存储器620和通信接口630均通过内部连接通路连接;
该存储器620,用于存储计算机执行指令;
该处理器610用于执行该存储器620存储的计算机执行指令,使得该装置600可以通过所述通信接口630与其他装置进行数据交互来执行上述方法实施例提供的读取数据的方法。
该处理器610具体用于确定第一读load指令之后存在第一写store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同。
通信接口630用于向缓存管理设备发送携带附加信息的所述第一load指令,所述附加信息用于指示在对所述物理地址执行所述第一load指令之后,还要执行所述第一store指令,以便于所述缓存管理设备根据携带所述附加信息的所述第一load指令,向主存管理设备发送用于请求对所述物理地址执行读操作和写操作的读写请求消息。
应理解,装置600可以具体为上述实施例200或300中的处理器设备,并且可以用于执行上述方法实施例200或300中与处理器设备对应的各个步骤和/或流程。
应理解,在本申请实施例中,处理器610可以是以下的任一种:CPU、GPU、ARM处理器、现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用处理器等具有计算处理能力的器件。一种可选实施方式,该处理器还可以集成为众核处理器。
存储器620可以是以下的任一种或任一种组合:随机存取存储器(Random AccessMemory,RAM)、只读存储器(read only memory,ROM)、非易失性存储器(non-volatilememory,NVM)、固态硬盘(Solid State Drives,SSD)、机械硬盘、磁盘、磁盘整列等存储介质。
通信接口630用于本装置与其他设备之间的数据交互。通信接口可以是以下的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
可选地,装置600还可以包括总线640,该总线可以包括地址总线、数据总线、控制总线等,为便于表示,在图6中用一条粗线表示该总线。总线可以是以下的任一种或任一种组合:工业标准体系结构(Industry Standard Architecture,ISA)总线、外设组件互连标准(Peripheral Component Interconnect,PCI)总线、扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等有线数据传输的器件。
图7提供了本申请实施例提供的又一读取数据的装置700的示意性框图。该装置700包括:处理器710、存储器720和通信接口730;该处理器710、存储器720和通信接口730均通过内部连接通路连接;
该存储器720,用于存储计算机执行指令;
该处理器710用于执行该存储器720存储的计算机执行指令,使得该装置700可以通过所述通信接口730与其他装置进行数据交互来执行上述方法实施例提供的读取数据的方法。
通过通信接口用于730接收处理器设备发送的携带附加信息的第一读load指令,所述第一load指令用于指示对所述第一load指令中的物理地址执行读操作,所述附加信息用于指示在对所述物理地址执行所述第一load指令执行之后,还要执行第一写store指令;根据所述第一load指令,向主存管理设备发送读写请求消息,所述读写请求消息用于请求对所述物理地址执行读操作和写操作的。
应理解,装置700可以具体为上述实施例200或300中的缓存管理设备,并且可以用于执行上述方法实施例200或300中与缓存管理设备对应的各个步骤和/或流程。
应理解,在本申请实施例中,处理器710可以是以下的任一种:CPU、GPU、ARM处理器、FPGA、专用处理器等具有计算处理能力的器件。一种可选实施方式,该处理器还可以集成为众核处理器。
存储器720可以是以下的任一种或任一种组合:RAM、ROM、NVM、SSD、机械硬盘、磁盘、磁盘整列等存储介质。
通信接口730用于本装置与其他设备之间的数据交互。通信接口可以是以下的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
可选地,装置700还可以包括总线740,该总线可以包括地址总线、数据总线、控制总线等,为便于表示,在图7中用一条粗线表示该总线。总线可以是以下的任一种或任一种组合:ISA总线、PCI总线、EISA总线等有线数据传输的器件。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的分割,仅仅为一种逻辑功能分割,实际实现时可以有另外的分割方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种读取数据的方法,其特征在于,包括:
处理器设备确定第一读load指令之后存在第一写store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同;
所述处理器设备向缓存管理设备发送携带附加信息的所述第一load指令,所述附加信息用于指示在对所述物理地址执行所述第一load指令之后,还要执行所述第一store指令,以便于所述缓存管理设备根据携带所述附加信息的所述第一load指令,向主存管理设备发送用于请求对所述物理地址执行读操作和写操作的读写请求消息。
2.根据权利要求1所述的方法,其特征在于,所述处理器设备确定第一读load指令之后存在第一写store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同,包括:
所述处理器设备通过分析缓存设备中缓存的多个指令中每个指令的指令信息,确定所述第一load指令之后存在所述第一store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同,所述多个指令包括至少一个load指令和至少一个store指令,所述至少一个load指令包括所述第一load指令,所述至少一个store指令包括所述第一store指令。
3.根据权利要求2所述的方法,其特征在于,所述每个指令的指令信息包括所述每个指令的物理寄存器的号码,所述处理器设备通过分析缓存设备中缓存的多个指令中每个指令的指令信息,确定所述第一load指令之后存在所述第一store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同,包括:
所述处理器设备根据所述第一load指令的指令信息中的物理寄存器的号码与所述第一store指令中的物理寄存器的号码相同,确定所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同。
4.根据权利要求2或3所述的方法,其特征在于,在所述处理器设备向缓存管理设备发送携带附加信息的所述第一load指令之前,所述方法还包括:
所述处理器设备将所述附加信息添加到所述缓存设备中缓存的所述第一load指令的指令信息中。
5.根据权利要求1所述的方法,其特征在于,所述处理器设备确定第一读load指令之后存在第一写store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同,包括:
所述处理器设备获取所述第一load指令,所述第一load指令包括扩展语义;
所述处理器设备根据所述扩展语义,确定所述第一load指令之后存在所述第一store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同。
6.一种读取数据的方法,其特征在于,包括:
缓存管理设备接收处理器设备发送的携带附加信息的第一读load指令,所述第一load指令用于指示对所述第一load指令中的物理地址执行读操作,所述附加信息用于指示在对所述物理地址执行所述第一load指令执行之后,还要执行第一写store指令;
所述缓存管理设备根据所述第一load指令,向主存管理设备发送读写请求消息,所述读写请求消息用于请求对所述物理地址执行读操作和写操作的。
7.一种读取数据的装置,其特征在于,包括:
确定单元,用于确定第一读load指令之后存在第一写store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同;
发送单元,用于向缓存管理设备发送携带附加信息的所述第一load指令,所述附加信息用于指示在对所述物理地址执行所述第一load指令之后,还要执行所述第一store指令,以便于所述缓存管理设备根据携带所述附加信息的所述第一load指令,向主存管理设备发送用于请求对所述物理地址执行读操作和写操作的读写请求消息。
8.根据权利要求7所述的装置,其特征在于,
所述确定单元具体用于通过分析缓存设备中缓存的多个指令中每个指令的指令信息,确定所述第一load指令之后存在所述第一store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同,所述多个指令包括至少一个load指令和至少一个store指令,所述至少一个load指令包括所述第一load指令,所述至少一个store指令包括所述第一store指令。
9.根据权利要求8所述的装置,其特征在于,所述每个指令的指令信息包括所述每个指令的物理寄存器的号码,
所述确定单元具体用于根据所述第一load指令的指令信息中的物理寄存器的号码与所述第一store指令中的物理寄存器的号码相同,确定所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:添加单元,
所述添加单元用于在向缓存管理设备发送携带附加信息的所述第一load指令之前,将所述附加信息添加到所述缓存设备中缓存的所述第一load指令的指令信息中。
11.根据权利要求7所述的装置,其特征在于,
所述确定单元具体用于获取所述第一load指令,所述第一load指令包括扩展语义,根据所述扩展语义,确定所述第一load指令之后存在所述第一store指令,且所述第一load指令访问的物理地址与所述第一store指令访问的物理地址相同。
12.一种读取数据的装置,其特征在于,包括:
接收单元,用于接收处理器设备发送的携带附加信息的第一读load指令,所述第一load指令用于指示对所述第一load指令中的物理地址执行读操作,所述附加信息用于指示在对所述物理地址执行所述第一load指令执行之后,还要执行第一写store指令;
发送单元,用于根据所述第一load指令,向主存管理设备发送读写请求消息,所述读写请求消息用于请求对所述物理地址执行读操作和写操作的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710124141.8A CN108536473B (zh) | 2017-03-03 | 2017-03-03 | 读取数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710124141.8A CN108536473B (zh) | 2017-03-03 | 2017-03-03 | 读取数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108536473A true CN108536473A (zh) | 2018-09-14 |
CN108536473B CN108536473B (zh) | 2021-02-23 |
Family
ID=63489184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710124141.8A Active CN108536473B (zh) | 2017-03-03 | 2017-03-03 | 读取数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108536473B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045732A (zh) * | 2019-12-05 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 数据处理方法、芯片、设备及存储介质 |
CN112463658A (zh) * | 2021-02-03 | 2021-03-09 | 鹏城实验室 | 加载存储单元的实现方法、装置和计算机存储介质 |
CN112926032A (zh) * | 2021-03-26 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 用于处理和运行字节码的方法、装置及字节码运行系统 |
CN115857834A (zh) * | 2023-01-05 | 2023-03-28 | 摩尔线程智能科技(北京)有限责任公司 | 一种用于检查针对存储器的读写一致性的方法和装置 |
CN117193858A (zh) * | 2023-11-07 | 2023-12-08 | 芯来智融半导体科技(上海)有限公司 | 一种存/取指令接收和发送方法及装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014737A (en) * | 1997-11-19 | 2000-01-11 | Sony Corporation Of Japan | Method and system for allowing a processor to perform read bypassing while automatically maintaining input/output data integrity |
US6810470B1 (en) * | 2000-08-14 | 2004-10-26 | Ati Technologies, Inc. | Memory request interlock |
CN102652311A (zh) * | 2009-12-10 | 2012-08-29 | 国际商业机器公司 | 高速访问存储器和方法 |
CN103229152A (zh) * | 2010-11-26 | 2013-07-31 | 国际商业机器公司 | 高速缓存一致性控制方法、系统和程序 |
CN103995786A (zh) * | 2014-06-04 | 2014-08-20 | 龙芯中科技术有限公司 | 高速缓存一致性消息的传输方法和装置 |
CN104246726A (zh) * | 2012-04-18 | 2014-12-24 | 高通股份有限公司 | 用于维持高速缓存一致性的只写无数据状态 |
CN106201349A (zh) * | 2015-12-31 | 2016-12-07 | 华为技术有限公司 | 一种在物理主机中处理读/写请求的方法和装置 |
-
2017
- 2017-03-03 CN CN201710124141.8A patent/CN108536473B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014737A (en) * | 1997-11-19 | 2000-01-11 | Sony Corporation Of Japan | Method and system for allowing a processor to perform read bypassing while automatically maintaining input/output data integrity |
US6810470B1 (en) * | 2000-08-14 | 2004-10-26 | Ati Technologies, Inc. | Memory request interlock |
CN102652311A (zh) * | 2009-12-10 | 2012-08-29 | 国际商业机器公司 | 高速访问存储器和方法 |
CN103229152A (zh) * | 2010-11-26 | 2013-07-31 | 国际商业机器公司 | 高速缓存一致性控制方法、系统和程序 |
CN104246726A (zh) * | 2012-04-18 | 2014-12-24 | 高通股份有限公司 | 用于维持高速缓存一致性的只写无数据状态 |
CN103995786A (zh) * | 2014-06-04 | 2014-08-20 | 龙芯中科技术有限公司 | 高速缓存一致性消息的传输方法和装置 |
CN106201349A (zh) * | 2015-12-31 | 2016-12-07 | 华为技术有限公司 | 一种在物理主机中处理读/写请求的方法和装置 |
Non-Patent Citations (1)
Title |
---|
梁茹冰等: "使用MSS维护语义缓存一致性的方法", 《华南理工大学学报(自然科学版)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045732A (zh) * | 2019-12-05 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 数据处理方法、芯片、设备及存储介质 |
CN112463658A (zh) * | 2021-02-03 | 2021-03-09 | 鹏城实验室 | 加载存储单元的实现方法、装置和计算机存储介质 |
CN112463658B (zh) * | 2021-02-03 | 2021-05-28 | 鹏城实验室 | 加载存储单元的实现方法、装置和计算机存储介质 |
CN112926032A (zh) * | 2021-03-26 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 用于处理和运行字节码的方法、装置及字节码运行系统 |
CN115857834A (zh) * | 2023-01-05 | 2023-03-28 | 摩尔线程智能科技(北京)有限责任公司 | 一种用于检查针对存储器的读写一致性的方法和装置 |
CN117193858A (zh) * | 2023-11-07 | 2023-12-08 | 芯来智融半导体科技(上海)有限公司 | 一种存/取指令接收和发送方法及装置、设备及存储介质 |
CN117193858B (zh) * | 2023-11-07 | 2024-03-15 | 芯来智融半导体科技(上海)有限公司 | 一种存/取指令接收和发送方法及装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108536473B (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536473A (zh) | 读取数据的方法和装置 | |
JP6574779B2 (ja) | 複数のトランザクションを扱うためのデータ処理システム及びデータ処理方法 | |
CN101978359B (zh) | 在不同高速缓存一致性域之间共享信息的技术 | |
CN103106122B (zh) | 同时待处理数据访问请求的数据冲突处理的方法和装置 | |
US10402327B2 (en) | Network-aware cache coherence protocol enhancement | |
US10162757B2 (en) | Proactive cache coherence | |
CN108897628A (zh) | 一种分布式锁的实现方法、装置及电子设备 | |
CN101097545A (zh) | 独占所有权探听过滤器 | |
US7958314B2 (en) | Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources | |
JP3661764B2 (ja) | 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム | |
US10331568B2 (en) | Locking a cache line for write operations on a bus | |
CN105339908A (zh) | 用于支持持久存储器的方法和装置 | |
JP2017503233A (ja) | 競合状態を検出する技法 | |
CN106227674B (zh) | 缓存一致性控制器及方法 | |
EP3740872A1 (en) | Decoupling trace data streams using cache coherence protocol data | |
CN108694076A (zh) | 多节点存储操作 | |
CN101178691A (zh) | 实施高速缓存一致性的系统和方法 | |
KR20210041485A (ko) | 데이터 신호 경로 및 태그 신호 경로를 갖는 메모리 인터페이스 | |
CN113485834A (zh) | 共享内存管理方法、装置、计算机设备和存储介质 | |
CN112955876A (zh) | 具有对写入操作的改进处理的用于数据处理网络的i/o相干请求节点 | |
CN107025130A (zh) | 处理节点、计算机系统及事务冲突检测方法 | |
US9632934B2 (en) | Maintaining coherence when removing nodes from a directory-based shared memory system | |
CN114385089B (zh) | 一种基于交叉编址的动态bank存储方法、装置及电子设备 | |
CN113836184A (zh) | 一种业务持久化方法及装置 | |
US8230117B2 (en) | Techniques for write-after-write ordering in a coherency managed processor system that employs a command pipeline |
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 |