CN102929832B - 基于非写分配的高速缓存一致性的多核处理器数据传输系统 - Google Patents

基于非写分配的高速缓存一致性的多核处理器数据传输系统 Download PDF

Info

Publication number
CN102929832B
CN102929832B CN201210358089.XA CN201210358089A CN102929832B CN 102929832 B CN102929832 B CN 102929832B CN 201210358089 A CN201210358089 A CN 201210358089A CN 102929832 B CN102929832 B CN 102929832B
Authority
CN
China
Prior art keywords
processor
state
cache line
write
cache
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
CN201210358089.XA
Other languages
English (en)
Other versions
CN102929832A (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.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems Co Ltd
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 Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN201210358089.XA priority Critical patent/CN102929832B/zh
Publication of CN102929832A publication Critical patent/CN102929832A/zh
Application granted granted Critical
Publication of CN102929832B publication Critical patent/CN102929832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种基于非写分配的高速缓存一致性的多核处理器数据传输系统,所述多核处理器数据传输系统包括一个监听管理单元、至少两个的采用写回式高速缓存且其写缺失时采用非写分配策略的处理器、片上互连总线和共享存储器,当其中一个处理器产生一致性操作时,会把一致性操作的相关信息发给监听管理单元,然后等待监听管理单元处理完毕给回响应后,处理器完成该一致性操作。本发明提供一种有效减少对共享存储器的访问操作、缩短访问平均时延、提升处理器性能的基于非写分配的高速缓存一致性的多核处理器数据传输系统。

Description

基于非写分配的高速缓存一致性的多核处理器数据传输系统
技术领域
本发明涉及多核处理器领域,尤其是一种多核处理器数据传输系统。
背景技术
基于对称式共享存储器的多核处理器系统支持共享和私有数据的缓存。私有数据被单个处理器使用,而共享数据则被多个处理器所使用,系统基本上是通过读写共享数据完成处理器之间的通信。由于共享数据的存在,可能出现同一个数据的多个版本同时存在于共享存储器和多个处理器的高速缓存中的情况。如果此时有多于一个的处理器对该数据进行写操作,则可能出现不一致的情况,导致程序执行发生错误。高速缓存一致性协议是一种用于保证多核处理器系统各处理器高速缓存中数据一致性的机制,一致性协议可由软件或硬件方法来实现。本发明用硬件方法实现高速缓存一致性协议,以下所述协议均指用硬件实现的协议。
常用的高速缓存一致性协议可分为两大类:目录协议和监听协议。监听协议又可分为两类:写更新协议和写无效协议。由于在基于总线的片内多核处理器系统中总线总是最紧张的资源,而写无效协议不会给总线带来太大的压力,因此写无效协议几乎成为所有实现机制中选择的协议。
写无效协议还和处理器所采用的高速缓存的类型相关,如更新内存的方式是写回法还是写透法;写缺失时的策略是写分配法还是非写分配法。本发明讨论基于写回法和非写分配法的高速缓存的一致性协议。
传统的基于写回法和非写分配法的写无效一致性协议有MESI变种协议(MESI协议常用于采用写回法和写分配法的高速缓存的商业多核处理器)。该协议利用四种状态中的一种来标记各高速缓存行:
无效状态(I):指示该高速缓存行无效。
独占状态(E):指示该高速缓存行仅仅存储在该特定的高速缓存中且和共享存储器中的该行中的数据相同,共享存储器中的该行的数据有效。
修改状态(M):指示该高速缓存行已被修改并且在共享存储器中的该行中的数据不再有效。
共享状态(S):指示该高速缓存行可以存储在其它处理器的高速缓存中且和共享存储器中的该行中的数据相同,共享存储器中的该行的数据有效。
MESI变种协议各个状态之间的转换如图1所示。其中,写缺失时,本地处理器先发出一个写缺失信号,使其它处理器中该缓存行的副本无效,然后再把数据写到共享存储器中。本地处理器若监听到其它处理器正在对本处理器高速缓存中处于独占(E)、共享(S)或修改状态(M)的缓存行进行写操作,都将该缓存行的状态转换为无效状态(I),处于修改状态(M)的缓存行也要抢先写回共享存储器中。可见,由于采用非写分配的高速缓存,当某个处理器对某个高速缓存行产生一次写缺失时,需要发起对共享存储器的写更新操作,且所有处理器均不存在该高速缓存行的有效副本;紧接着,任何处理器下一次对该缓存行的读操作也必定是缺失的,且需要发起对共享存储器中该行的读操作。在某些情况下,处理器会频繁地发起对共享存储器的访问,由于对共享存储器的访问时延很大,因此性能很低。这也是大多数商业多核处理器不采用非写分配高速缓存的原因。
发明内容
为了克服已有多核处理器的数据传输方式的在某些情况下会频繁地发起对共享存储器的访问、访问平均时延很大、处理器性能受限的不足,本发明提供一种有效减少对共享存储器的访问操作、缩短访问平均时延、提升处理器性能的基于非写分配的高速缓存一致性的多核处理器数据传输系统。
本发明解决其技术问题所采用的技术方案是:
一种基于非写分配的高速缓存一致性的多核处理器数据传输系统,所述多核处理器数据传输系统包括一个监听管理单元、至少两个的采用写回式高速缓存且其写缺失时采用非写分配策略的处理器、片上互连总线和共享存储器,当其中一个处理器产生一致性操作时,会把一致性操作的相关信息发给监听管理单元,然后等待监听管理单元处理完毕给回响应后,处理器完成该一致性操作,其中,
所述监听管理单元包括:
一致性请求仲裁部,用以接收各个处理器发送的一致性操作的相关信息后,把这些信息进行仲裁、串行化,然后发往监听处理部;
监听处理部,用以按照一致性请求仲裁模块给出的一致性请求把相应的监听操作发送给除一致性请求发起者之外的其它各个处理器;当所有接收该监听操作的处理器都给回响应和可能需要的数据后,如果不需要发起对共享存储器的访问,该监听处理部把各处理器对该监听操作的响应和可能需要的数据发送给一致性响应部;如果需要发起对共享存储器的访问,则把相应的操作信息发送给共享存储器访问部,待共享存储器访问部完成对共享存储器的访问操作后,该监听处理部把相应的响应和可能需要的数据发送给一致性响应部;
共享存储器访问部,用以根据监听处理部的请求,发起对共享存储器的响应,给回监听处理部以完成的响应和可能需要的数据;
一致性响应部,用以根据监听处理部给回的响应和可能需要的数据,给回发起本次一致性操作的处理器以一致性响应和可能需要的数据。
进一步,所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,使用写回式高速缓存,利用无效状态、独占修改状态、独占干净状态、共享修改状态和共享干净状态这五种状态中的一种来标记各高速缓存行的状态;
当某个处理器对某个高速缓存行中的某个地址产生写缺失操作时:若其它所有处理器中均不存在有效的该高速缓存行,则把数据写到共享存储器的该地址中;若其它处理器中存在有效的该高速缓存行,则把数据直接写到其它处理器中处于“所有者”状态的该高速缓存行中,并将其状态转换为独占修改状态;把其它处理器中处于非“所有者”状态的该高速缓存行无效掉,即状态转换为无效状态。
再进一步,所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,
当某个处理器对某个高速缓存行中的某个地址产生读缺失操作时:
若其它所有处理器中均不存在有效的该高速缓存行,则将共享存储器中的该地址行分配到发起该读缺失操作的处理器的高速缓存中,该处理器中该高速缓存行的状态设为独占干净状态;
若其它处理器中存在有效的该高速缓存行,则其它处理器中该高速缓存行处于“所有者”状态的处理器负责提供该高速缓存行的数据,并把该高速缓存行的状态转换为共享干净状态;发起该读缺失操作的处理器接收到该高速缓存行后,分配到自身的高速缓存中。如果提供该高速缓存行的处理器中该高速缓存行原先处于共享干净状态或独占干净状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享干净状态;如果提供该高速缓存行的处理器中该高速缓存行原先处于共享修改状态)或独占修改状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享修改状态。
更进一步,当某个处理器对某个处于共享修改状态或共享干净状态的高速缓存行中的某个地址产生写命中操作时:
若其它所有处理器中均不存在有效的该高速缓存行,则发起该写命中操作的处理器可以执行该写操作,该高速缓存行的状态转换为独占修改状态;
若其它处理器中存在有效的该高速缓存行,则把其它处理器中的该高速缓存行均无效掉,即状态转换为无效状态,然后发起该写命中操作的处理器才可以执行该写操作,发起该写命中操作的处理器中该高速缓存行的状态转换为独占修改状态。
当某个处理器对某个处于独占修改状态的高速缓存行中的某个地址产生写命中操作时:该处理器直接执行该写操作,该高速缓存行的状态不变,仍为独占修改状态。
当某个处理器对某个处于独占干净状态的高速缓存行中的某个地址产生写命中操作时:
该处理器直接执行该写操作,该高速缓存行的状态转换为独占修改状态。
当某个处理器对某个高速缓存行中的某个地址产生读命中操作时:
该处理器直接执行该读操作,该高速缓存行的状态不变。
所述“所有者”状态的获得是限定由高速缓存中的状态直接得到,规定独占干净状态、独占修改状态以及共享修改状态为“所有者”状态;或者是各个处理器的高速缓存查询的结果经过仲裁、筛选后得到。
只有处于独占修改状态和共享修改状态的高速缓存行被替换时,该高速缓存行才需要被写回到共享存储器中。
所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,
若该处理器在某个高速缓存行产生写缺失,该处理器把该写缺失的地址信号、写缺失指示信号、写数据信号发送给监听管理单元,待监听管理单元给出指示处理好该写缺失的响应信号后,该处理器的写缺失操作即为完成;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占修改状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态不变;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占干净状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态转换为独占修改状态;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于共享干净状态或共享修改状态,该处理器把该写命中的地址信号和写命中指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号后,该处理器完成写操作,该处理器中该高速缓存行的状态转换为独占修改状态;
若该处理器在某个高速缓存行产生读缺失,该处理器把该读缺失的地址信号和读缺失指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号、缓存行状态转换信号和该高速缓存行的数据后,该处理器完成读操作同时把该高速缓存行分配到高速缓存中,该处理器中该高速缓存行的状态转换为监听管理单元所指示的状态。
若该处理器在某个高速缓存行产生读命中,该处理器直接完成该读操作,该理器中该高速缓存行的状态不变。
当该处理器接收到监听管理单元发来的对某个高速缓存行的监听操作时,该处理器会查询自身的标识;如果没有命中该高速缓存行,返回监听完成的响应给监听管理单元;如果命中该高速缓存行,分以下几种情况处理:
如果该处理器收到的是“写无效”操作,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元;
如果该处理器收到的是“读数据”操作,该处理器把该高速缓存行读出来、状态转换为共享干净状态,然后把数据和监听完成响应提供给监听管理单元。
如果该处理器收到的是“写入”操作,若该处理器的该高速缓存行的状态是“拥有者”状态,该处理器把监听管理单元提供的数据写入该高速缓存行中,该高速缓存行的状态转换为独占修改状态,然后返回监听完成的响应给监听管理单元;若该处理器的该高速缓存行的状态不是“拥有者”状态,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元。
如果该处理器的高速缓存产生替换操作时,只有被替换的高速缓存行的状态为独占修改状态或共享修改状态时,该处理器把该高速缓存行写回到共享处理器中。
本发明的有益效果主要表现在:为了克服传统的基于非写分配的多核处理器系统会频繁访问共享存储器的缺点,提出一种基于非写分配的高速缓存一致性协议,设计出如图3所示的多核处理器系统装置,以维护该一致性协议;当一个处理器对某个高速缓存行产生写缺失操作时,可以把数据写到其它处理器的有效的该高速缓存行中,减少对共享存储器访问操作。
附图说明
图1是基于非写分配高速缓存的MESI协议的状态转换图;
图2是本发明提出的基于非写分配的高速缓存一致性协议状态转换图;
图3是基于非写分配的高速缓存一致性的多核处理器数据传输系统的原理框图;
图4是监听管理单元的示意图;
图5是对读命中时的处理流程图;
图6是对读缺失时各种情况的处理流程图;
图7是对写命中时各种情况的处理流程图;
图8是对写缺失时各种情况的处理流程图;
图9是基于非写分配的高速缓存一致性的多核处理器数据传输系统的的详细说明图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图4,一种基于非写分配的高速缓存一致性的多核处理器数据传输系统,由一个监听管理单元、多于一个的高速缓存写缺失时采用非写分配策略的处理器、片上互连总线和共享存储器组成。当处理器产生一致性操作时,会把一致性操作的相关信息发给监听管理单元,然后等待监听管理单元处理完毕给回响应后,处理器完成该一致性操作。
如图4所示,所述监听管理单元包括:
一致性请求仲裁部,其接收各个处理器发送的一致性操作的相关信息后,把这些信息进行仲裁、串行化,然后发往监听处理部。
监听处理部,其按照一致性请求仲裁模块给出的一致性请求把相应的监听操作发送给除一致性请求发起者之外的其它各个处理器。当所有接收该监听操作的处理器都给回响应和可能需要的数据后,如果不需要发起对共享存储器的访问,该监听处理部把各处理器对该监听操作的响应和可能需要的数据发送给一致性响应部;如果需要发起对共享存储器的访问,则把相应的操作信息发送给共享存储器访问部,待共享存储器访问部完成对共享存储器的访问操作后,该监听处理部把相应的响应和可能需要的数据发送给一致性响应部。
共享存储器访问部,其根据监听处理部的请求,发起对共享存储器的响应,给回监听处理部以完成的响应和可能需要的数据。
一致性响应部,其根据监听处理部给回的响应和可能的数据,给回发起本次一致性操作的处理器以一致性响应和可能需要的数据。
所述高速缓存写缺失时采用非写分配策略的处理器,包括以下特点:
若该处理器在某个高速缓存行产生写缺失,该处理器把该写缺失的地址信号、写缺失指示信号、写数据信号发送给监听管理单元,待监听管理单元给出指示处理好该写缺失的响应信号后,该处理器的写缺失操作即为完成。
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占修改状态(ED),该处理器直接完成该写操作,该处理器中该高速缓存行的状态不变;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占干净状态(EC),该处理器直接完成该写操作,该处理器中该高速缓存行的状态转换为独占修改状态(ED);
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于共享干净状态(SC)或共享修改状态(SD),该处理器把该写命中的地址信号和写命中指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号后,该处理器完成写操作,该处理器中该高速缓存行的状态转换为独占修改状态(ED);
若该处理器在某个高速缓存行产生读缺失,该处理器把该读缺失的地址信号和读缺失指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号、缓存行状态转换信号和该高速缓存行的数据后,该处理器完成读操作同时把该高速缓存行分配到高速缓存中。该处理器中该高速缓存行的状态转换为监听管理单元所指示的状态。
若该处理器在某个高速缓存行产生读命中,该处理器直接完成该读操作,该理器中该高速缓存行的状态不变。
当该处理器接收到监听管理单元发来的对某个高速缓存行的监听操作时,该处理器会查询自身的标识(tag)。如果没有命中该高速缓存行,返回监听完成的响应给监听管理单元;如果命中该高速缓存行,分以下几种情况处理:
如果该处理器收到的是“写无效”操作,该处理器把该高速缓存行的状态转换为无效状态(I),然后返回监听完成的响应给监听管理单元。
如果该处理器收到的是“读数据”操作,该处理器把该高速缓存行读出来、状态转换为共享干净状态(SC),然后把数据和监听完成响应提供给监听管理单元。
如果该处理器收到的是“写入”操作,若该处理器的该高速缓存行的状态是“拥有者”状态,该处理器把监听管理单元提供的数据写入该高速缓存行中,该高速缓存行的状态转换为独占修改状态(ED),然后返回监听完成的响应给监听管理单元;若该处理器的该高速缓存行的状态不是“拥有者”状态,该处理器把该高速缓存行的状态转换为无效状态(I),然后返回监听完成的响应给监听管理单元。
如果该处理器的高速缓存产生替换操作时,只有被替换的高速缓存行的状态为独占修改状态(ED)或共享修改状态(SD)时,该处理器把该高速缓存行写回到共享处理器中。
本实施例中,写无效监听一致性协议,用于采用写回式高速缓存且其写缺失时采用非写分配策略的对称共享多核处理器系统中。当处理器产生写缺失操作时,在某些情况下可以把数据直接写到其它处理器的高速缓存中,以减少对共享存储器的访问。
该协议利用五种状态中的一种来标记各高速缓存行:
无效状态(I):指示该高速缓存行无效。
独占修改状态(ED):指示该高速缓存行已被修改并且在共享存储器中的该行中的数据不再有效。
独占干净状态(EC):指示该高速缓存行仅存储在该特定的高速缓存中且和共享存储器中的该行中的数据相同,共享存储器中的该行的数据有效。
共享修改状态(SD):指示该高速缓存行可以存储在其它处理器的高速缓存中且在共享存储器中的该行中的数据不再有效。
共享干净状态(SC):指示该高速缓存行可以存储在其它处理器的高速缓存中且和共享存储器中的该行中的数据相同,共享存储器中的该行的数据有效。
本协议各个状态之间的转换如图2所示,本协议对各种操作的处理和相应的高速缓存行状态转换将在下面描述。
操作一,当某个处理器对某个高速缓存行中的某个地址产生写缺失操作时:若其它所有处理器中均不存在有效的该高速缓存行,则把数据写到共享存储器的该地址中。若其它处理器中存在有效的该高速缓存行,则把数据直接写到其它处理器中处于“所有者”状态的该高速缓存行中,并将其状态转换为独占修改状态(ED);把其它处理器中处于非“所有者”状态的该高速缓存行无效掉,即状态转换为无效状态(I)。
操作二,当某个处理器对某个高速缓存行中的某个地址产生读缺失操作时:若其它所有处理器中均不存在有效的该高速缓存行,则将共享存储器中的该地址行分配到发起该读缺失操作的处理器的高速缓存中,该处理器中该高速缓存行的状态设为独占干净状态(EC)。若其它处理器中存在有效的该高速缓存行,则其它处理器中该高速缓存行处于“所有者”状态的处理器负责提供该高速缓存行的数据,并把该高速缓存行的状态转换为共享干净状态(SC)。发起该读缺失操作的处理器接收到该高速缓存行后,分配到自身的高速缓存中。如果提供该高速缓存行的处理器中该高速缓存行原先处于共享干净状态(SC)或独占干净状态(EC),发起该读缺失操作的处理器中该高速缓存行的状态设为共享干净状态(SC);如果提供该高速缓存行的处理器中该高速缓存行原先处于共享修改状态(SD)或独占修改状态(ED),发起该读缺失操作的处理器中该高速缓存行的状态设为共享修改状态(SD);
操作三,当某个处理器对某个处于共享修改状态(ED)或共享干净状态(EC)的高速缓存行中的某个地址产生写命中操作时:若其它所有处理器中均不存在有效的该高速缓存行,则发起该写命中操作的处理器可以执行该写操作,该高速缓存行的状态转换为独占修改状态(ED),若其它处理器中存在有效的该高速缓存行,则把其它处理器中的该高速缓存行均无效掉,即状态转换为无效状态(I)。然后发起该写命中操作的处理器才可以执行该写操作,发起该写命中操作的处理器中该高速缓存行的状态转换为独占修改状态(ED)。
操作四,当某个处理器对某个处于独占修改状态(ED)的高速缓存行中的某个地址产生写命中操作时,该处理器可以直接执行该写操作,该高速缓存行的状态不变,仍为独占修改状态(ED)。
操作五,当某个处理器对某个处于独占干净状态(EC)的高速缓存行中的某个地址产生写命中操作时,该处理器可以直接执行该写操作,该高速缓存行的状态转换为独占修改状态(ED)。
操作六,当某个处理器对某个高速缓存行中的某个地址产生读命中操作时,该处理器可以直接执行该读操作,该高速缓存行的状态不变。
其中,关于操作一和操作二中“所有者”状态的获得,一种实现方法是限定由高速缓存中的状态直接得到,规定独占干净状态(EC)、独占修改状态(ED)以及共享修改状态(SD)为“所有者”状态;另一种实现方法是各个处理器的高速缓存查询的结果经过仲裁、筛选后得到。
本协议规定,只有处于独占修改状态(ED)和共享修改状态(SD)的高速缓存行被替换时,该高速缓存行才需要被写回到共享存储器中。
实例1:参照图5~图8,以四个处理器组成的多核处理器系统为例,说明本发明提出的一种基于非写分配的高速缓存一致性协议对各种操作中各种情况的处理。
关于读命中操作,如图5所示:处理器1读命中,高速缓存行的状态可能是独占修改状态(ED)、独占干净状态(EC)、共享干净状态(SC)或共享修改状态(SD),此时由处理器1的高速缓存提供数据,该缓存行的状态不变。
关于读缺失操作,如图6所示:处理器1读缺失,需要取得数据、分配该高速缓存行。处理器1发送读缺失请求,处理器2、3、4收到该读缺失请求后,检查各自的高速缓存,若不存在有效的该缓存行或该缓存行处于共享干净状态(SC),给出没有该缓存行的响应。若处理器2、3、4中都不存在有效的该缓存行,则由共享存储器提供该缓存行,处理器1收到该缓存行的响应和数据后,把该缓存行的状态设为独占干净状态(EC);若处理器2、3、4中至少有一个处理器存在有效的该缓存行,以处理器2为例,分以下几种情况:第一种,若处理器2中该缓存行的状态为独占干净状态(EC),则处理器2提供所有者响应和该缓存行的数据,处理器2的该缓存行状态转换为共享干净状态(SC);处理器1得到该缓存行的响应和数据,把该缓存行的状态设为共享干净状态(SC)。第二种,若处理器2中该缓存行的状态为独占修改状态(ED)或共享修改状态(SD),则处理器2提供响应和该缓存行的数据,处理器2的该高速缓存行状态转换为共享干净状态(SC);处理器1得到该缓存行的响应和数据,把该缓存行的状态设为共享修改状态(SD)。
关于写命中操作,如图7所示:处理器1写命中,若命中的是处于独占修改(ED)或独占干净状态(EC)的缓存行,则直接更新该缓存行,该缓存行的状态转换为独占修改状态(ED);若命中的是处于共享修改(SD)或共享干净状态(SC)的缓存行,则在更新该缓存行之前,处理器1先发出一个写无效请求,使其它处理器中该缓存行的副本无效,然后再更新该缓存行,处理器1中该缓存行的状态转换为独占修改状态(ED)。
关于写缺失操作,如图8所示:处理器1先发出一个写缺失请求,处理器2、3、4收到该读缺失请求后,检查各自的高速缓存,若不存在有效的该缓存行,给出没有该缓存行的响应。若处理器2、3、4中都不存在有效的该缓存行,则把该读缺失的数据写入共享存储器中;若处理器2、3、4中至少有一个处理器存在有效的该缓存行,例如,处理器2中存在有效的该缓存行且处于“所有者”状态,处理器3中也存在有效的该缓存行但非“所有者”状态,则把该写缺失的数据写入处理器2的该缓存行中,处理器2中该缓存行转换为独占修改状态(ED),处理器3中该缓存行转换为无效状态(I)。
实例2:参照图9,以四个处理器组成的多核处理器系统为例,说明用以实现本发明提出的基于非写分配的高速缓存一致性协议的硬件装置的工作流程。
如图9所示,处理器1产生读缺失、写缺失或写命中处于共享状态(SD或SC)的缓存行时,会执行以下步骤。
第一步,处理器1通过一致性请求接口把一致性消息发送给监听管理单元。其中,一致性请求接口包括:一致性请求信号,用以指示一致性请求是否有效;一致性类型信号,用以指示该一致性操作是写命中、写缺失还是读缺失;地址信号,用以指示处理器在哪个地址上产生一致性请求;写数据信号,写缺失时的数据,用以写入之需要;以及位宽信号。
第二步,监听管理单元经过串行化仲裁收到该一致性请求,把相应的监听操作通过监听请求接口发送给处理器2、3、4。其中,监听请求接口包括:监听请求信号,用以指示监听请求是否有效;监听类型信号,用以指示监听类型是写无效、写入还是读缺失;监听地址信号,用以指示监听请求的地址;写入数据信号,用以指示在写入操作时,所应写入的数据。
第三步,处理器2、3、4收到该监听请求后,查询各自的该缓存行,如果命中,按本发明所提出的协议给出相应的响应或数据或执行写入操作,以及对该缓存行进行可能的状态转换。处理器2、3、4通过监听响应接口把监听响应发送给监听管理单元。其中,监听响应接口包括:监听响应信号,用以指示是否完成监听操作以及该缓存行的状态转换情况;监听数据信号,读缺失监听操作时可能提供的数据。
第四步,监听管理单元收到处理器2、3、4的监听响应后,进行分析、判断。如果需要发起对共享存储器的访问,则访问共享存储器,待访问共享存储器成功后,把一致性响应和可能需要的数据发送给处理器1;如不需要发起对共享存储器的访问,则直接把一致性响应和可能需要的数据发送给处理器1。监听管理单元通过一致性响应接口把一致性响应发送给处理器1。其中,一致性响应接口包括:一致性响应信号,用以指示该一致性操作是否完成以及处理器1中该缓存行状态如何转换;读数据信号,一致性操作为读缺失时,所提供的该高速缓存行的数据。
最后一步,处理器1接收到一致性响应后,完成该一致性操作。

Claims (11)

1.一种基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:所述多核处理器数据传输系统包括一个监听管理单元、至少两个的采用写回式高速缓存且其写缺失时采用非写分配策略的处理器、片上互连总线和共享存储器,当其中一个处理器产生一致性操作时,会把一致性操作的相关信息发给监听管理单元,然后等待监听管理单元处理完毕给回响应后,处理器完成该一致性操作,其中,
所述监听管理单元包括:
一致性请求仲裁部,用以接收各个处理器发送的一致性操作的相关信息后,把这些信息进行仲裁、串行化,然后发往监听处理部;
监听处理部,用以按照一致性请求仲裁模块给出的一致性请求把相应的监听操作发送给除一致性请求发起者之外的其它各个处理器;当所有接收该监听操作的处理器都给回响应和可能需要的数据后,如果不需要发起对共享存储器的访问,该监听处理部把各处理器对该监听操作的响应和可能需要的数据发送给一致性响应部;如果需要发起对共享存储器的访问,则把相应的操作信息发送给共享存储器访问部,待共享存储器访问部完成对共享存储器的访问操作后,该监听处理部把相应的响应和可能需要的数据发送给一致性响应部;
共享存储器访问部,用以根据监听处理部的请求,发起对共享存储器的响应,给回监听处理部以完成的响应和可能需要的数据;
一致性响应部,用以根据监听处理部给回的响应和可能需要的数据,给回发起本次一致性操作的处理器以一致性响应和可能需要的数据;所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,使用写回式高速缓存,利用无效状态、独占修改状态、独占干净状态、共享修改状态和共享干净状态这五种状态中的一种来标记各高速缓存行的状态;
当某个处理器对某个高速缓存行中的某个地址产生写缺失操作时:若其它所有处理器中均不存在有效的该高速缓存行,则把数据写到共享存储器的该地址中;若其它处理器中存在有效的该高速缓存行,则把数据直接写到其它处理器中处于“所有者”状态的该高速缓存行中,并将其状态转换为独占修改状态;把其它处理器中处于非“所有者”状态的该高速缓存行无效掉,即状态转换为无效状态。
2.如权利要求1所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,
当某个处理器对某个高速缓存行中的某个地址产生读缺失操作时:
若其它所有处理器中均不存在有效的该高速缓存行,则将共享存储器中的该地址行分配到发起该读缺失操作的处理器的高速缓存中,该处理器中该高速缓存行的状态设为独占干净状态;
若其它处理器中存在有效的该高速缓存行,则其它处理器中该高速缓存行处于“所有者”状态的处理器负责提供该高速缓存行的数据,并把该高速缓存行的状态转换为共享干净状态;发起该读缺失操作的处理器接收到该高速缓存行后,分配到自身的高速缓存中;如果提供该高速缓存行的处理器中该高速缓存行原先处于共享干净状态或独占干净状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享干净状态;如果提供该高速缓存行的处理器中该高速缓存行原先处于共享修改状态)或独占修改状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享修改状态。
3.如权利要求1所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:当某个处理器对某个处于共享修改状态或共享干净状态的高速缓存行中的某个地址产生写命中操作时:
若其它所有处理器中均不存在有效的该高速缓存行,则发起该写命中操作的处理器可以执行该写操作,该高速缓存行的状态转换为独占修改状态;
若其它处理器中存在有效的该高速缓存行,则把其它处理器中的该高速缓存行均无效掉,即状态转换为无效状态,然后发起该写命中操作的处理器才可以执行该写操作,发起该写命中操作的处理器中该高速缓存行的状态转换为独占修改状态。
4.如权利要求1所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:当某个处理器对某个处于独占修改状态的高速缓存行中的某个地址产生写命中操作时:该处理器直接执行该写操作,该高速缓存行的状态不变,仍为独占修改状态。
5.如权利要求1所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:当某个处理器对某个处于独占干净状态的高速缓存行中的某个地址产生写命中操作时:
该处理器直接执行该写操作,该高速缓存行的状态转换为独占修改状态。
6.如权利要求1所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:当某个处理器对某个高速缓存行中的某个地址产生读命中操作时:
该处理器直接执行该读操作,该高速缓存行的状态不变。
7.如权利要求1~6之一所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:所述“所有者”状态的获得是限定由高速缓存中的状态直接得到,规定独占干净状态、独占修改状态以及共享修改状态为“所有者”状态;或者是各个处理器的高速缓存查询的结果经过仲裁、筛选后得到。
8.如权利要求1~6之一所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:只有处于独占修改状态和共享修改状态的高速缓存行被替换时,该高速缓存行才需要被写回到共享存储器中。
9.如权利要求1~6之一所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,
若该处理器在某个高速缓存行产生写缺失,该处理器把该写缺失的地址信号、写缺失指示信号、写数据信号发送给监听管理单元,待监听管理单元给出指示处理好该写缺失的响应信号后,该处理器的写缺失操作即为完成;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占修改状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态不变;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占干净状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态转换为独占修改状态;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于共享干净状态或共享修改状态,该处理器把该写命中的地址信号和写命中指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号后,该处理器完成写操作,该处理器中该高速缓存行的状态转换为独占修改状态;
若该处理器在某个高速缓存行产生读缺失,该处理器把该读缺失的地址信号和读缺失指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号、缓存行状态转换信号和该高速缓存行的数据后,该处理器完成读操作同时把该高速缓存行分配到高速缓存中,该处理器中该高速缓存行的状态转换为监听管理单元所指示的状态;
若该处理器在某个高速缓存行产生读命中,该处理器直接完成该读操作,该理器中该高速缓存行的状态不变。
10.如权利要求9所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:当该处理器接收到监听管理单元发来的对某个高速缓存行的监听操作时,该处理器会查询自身的标识;如果没有命中该高速缓存行,返回监听完成的响应给监听管理单元;如果命中该高速缓存行,分以下几种情况处理:
如果该处理器收到的是“写无效”操作,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元;
如果该处理器收到的是“读数据”操作,该处理器把该高速缓存行读出来、状态转换为共享干净状态,然后把数据和监听完成响应提供给监听管理单元;
如果该处理器收到的是“写入”操作,若该处理器的该高速缓存行的状态是“所有者”状态,该处理器把监听管理单元提供的数据写入该高速缓存行中,该高速缓存行的状态转换为独占修改状态,然后返回监听完成的响应给监听管理单元;若该处理器的该高速缓存行的状态不是“所有者”状态,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元。
11.如权利要求9所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于:如果该处理器的高速缓存产生替换操作时,只有被替换的高速缓存行的状态为独占修改状态或共享修改状态时,该处理器把该高速缓存行写回到共享处理器中。
CN201210358089.XA 2012-09-24 2012-09-24 基于非写分配的高速缓存一致性的多核处理器数据传输系统 Active CN102929832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210358089.XA CN102929832B (zh) 2012-09-24 2012-09-24 基于非写分配的高速缓存一致性的多核处理器数据传输系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210358089.XA CN102929832B (zh) 2012-09-24 2012-09-24 基于非写分配的高速缓存一致性的多核处理器数据传输系统

Publications (2)

Publication Number Publication Date
CN102929832A CN102929832A (zh) 2013-02-13
CN102929832B true CN102929832B (zh) 2015-05-13

Family

ID=47644633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210358089.XA Active CN102929832B (zh) 2012-09-24 2012-09-24 基于非写分配的高速缓存一致性的多核处理器数据传输系统

Country Status (1)

Country Link
CN (1) CN102929832B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462007B (zh) * 2013-09-22 2018-10-02 南京中兴新软件有限责任公司 实现多核间缓存一致性的方法及装置
CN104008068B (zh) * 2014-05-30 2017-01-25 复旦大学 一种基于MSI协议的双核Cache一致性系统电路结构
CN104461957A (zh) * 2014-08-28 2015-03-25 浪潮(北京)电子信息产业有限公司 一种异构多核cpu共享片上高速缓存的方法及装置
CN105793832B (zh) 2014-09-18 2018-12-18 上海兆芯集成电路有限公司 处理器及其操作方法、以及计算机可读存储介质
CN105068877B (zh) * 2015-07-14 2018-07-17 许继电气股份有限公司 一种多优先级任务间数据一致性传递方法
CN106484521A (zh) * 2016-10-21 2017-03-08 郑州云海信息技术有限公司 一种数据请求处理方法及装置
CN107688545B (zh) * 2016-12-23 2021-01-19 北京国睿中数科技股份有限公司 高速缓存的一致性状态预置方法及系统
CN110049104A (zh) * 2019-03-15 2019-07-23 佛山市顺德区中山大学研究院 基于分层片上互连网络的混合缓存方法、系统及存储介质
US20200356485A1 (en) * 2019-05-09 2020-11-12 International Business Machines Corporation Executing multiple data requests of multiple-core processors
DE102019118757B4 (de) 2019-07-11 2023-06-22 Iav Gmbh Ingenieurgesellschaft Auto Und Verkehr Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren
CN112416615A (zh) * 2020-11-05 2021-02-26 珠海格力电器股份有限公司 多核处理器及其缓存一致性的实现方法、装置和存储介质
CN112463650A (zh) * 2020-11-27 2021-03-09 苏州浪潮智能科技有限公司 一种多核cpu下的l2p表的管理方法、设备以及介质
CN112597087B (zh) * 2020-12-22 2023-10-03 北京时代民芯科技有限公司 一种高可靠低功耗数据一致星载处理器互连结构
CN115858420B (zh) * 2023-02-23 2023-05-12 芯砺智能科技(上海)有限公司 用于支持多处理器架构的系统缓存架构和芯片
CN117608864B (zh) * 2024-01-23 2024-04-09 中诚华隆计算机技术有限公司 一种多核缓存一致性方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120221794A1 (en) * 2008-02-14 2012-08-30 Gaither Blaine D Computer Cache System With Stratified Replacement

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5499987B2 (ja) * 2010-08-13 2014-05-21 富士通株式会社 共有キャッシュメモリ装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120221794A1 (en) * 2008-02-14 2012-08-30 Gaither Blaine D Computer Cache System With Stratified Replacement

Also Published As

Publication number Publication date
CN102929832A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102929832B (zh) 基于非写分配的高速缓存一致性的多核处理器数据传输系统
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
Archibald et al. Cache coherence protocols: Evaluation using a multiprocessor simulation model
JP4960989B2 (ja) インバリデーショントランザクションのスヌープフィルタからの削除
US9170946B2 (en) Directory cache supporting non-atomic input/output operations
US20060236039A1 (en) Method and apparatus for synchronizing shared data between components in a group
WO2023103767A1 (zh) 基于同构多核的多操作系统及通信方法、芯片
WO2013095640A1 (en) Methods and apparatus for efficient communication between caches in hierarchical caching design
US9183150B2 (en) Memory sharing by processors
KR20160099722A (ko) 캐시-코히어런시를 갖춘 집적 회로들
US6601145B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
CN106201939A (zh) 面向gpdsp架构的多核目录一致性装置
Scales et al. Design and performance of the Shasta distributed shared memory protocol
CN116795767A (zh) 一种基于CHI协议的多核Cache共享一致性协议构建方法
KR20090053837A (ko) 자기 조화형 데이터를 이용하여 멀티프로세서 시스템의 캐시 코히어런스 오버헤드를 저감시키는 메카니즘 및 방법
CN102902631B (zh) 一种避免读缺失时数据回写的多处理器核间传输方法
US6944721B2 (en) Asynchronous non-blocking snoop invalidation
US20040186963A1 (en) Targeted snooping
Mallya et al. Simulation based performance study of cache coherence protocols
Sahuquillo et al. The split data cache in multiprocessor systems: an initial hit ratio analysis
KR19990026501A (ko) 분산 공유 메모리의 캐시 일관성 제어방법 및 장치
US6546469B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers
US7035981B1 (en) Asynchronous input/output cache having reduced latency
CN111414318B (zh) 一种基于提前更新的数据一致性实现方法
US20230100746A1 (en) Multi-level partitioned snoop filter

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant