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

文档序号:6377600阅读:225来源:国知局
专利名称:基于非写分配的高速缓存一致性的多核处理器数据传输系统的制作方法
技术领域
本发明涉及多核处理器领域,尤其是一种多核处理器数据传输系统。
背景技术
基于对称式共享存储器的多核处理器系统支持共享和私有数据的缓存。私有数据被单个处理器使用,而共享数据则被多个处理器所使用,系统基本上是通过读写共享数据完成处理器之间的通信。由于共享数据的存在,可能出现同一个数据的多个版本同时存在于共享存储器和多个处理器的高速缓存中的情况。如果此时有多于一个的处理器对该数据进行写操作,则可能出现不一致的情况,导致程序执行发生错误。高速缓存一致性协议是一种用于保证多核处理器系统各处理器高速缓存中数据一致性的机制,一致性协议可由软件或硬件方法来实现。本发明用硬件方法实现高速缓存一致性协议,以下所述协议均指用硬 件实现的协议。常用的高速缓存一致性协议可分为两大类目录协议和监听协议。监听协议又可分为两类写更新协议和写无效协议。由于在基于总线的片内多核处理器系统中总线总是最紧张的资源,而写无效协议不会给总线带来太大的压力,因此写无效协议几乎成为所有实现机制中选择的协议。写无效协议还和处理器所采用的高速缓存的类型相关,如更新内存的方式是写回法还是写透法;写缺失时的策略是写分配法还是非写分配法。本发明讨论基于写回法和非写分配法的高速缓存的一致性协议。传统的基于写回法和非写分配法的写无效一致性协议有MESI变种协议(MESI协议常用于采用写回法和写分配法的高速缓存的商业多核处理器)。该协议利用四种状态中的一种来标记各高速缓存行无效状态(I):指示该高速缓存行无效。独占状态(E):指示该高速缓存行仅仅存储在该特定的高速缓存中且和共享存储器中的该行中的数据相同,共享存储器中的该行的数据有效。修改状态(M):指示该高速缓存行已被修改并且在共享存储器中的该行中的数据不再有效。共孕状态(S):指不该闻速缓存行可以存储在其它处理器的闻速缓存中且和共孕存储器中的该行中的数据相同,共享存储器中的该行的数据有效。MESI变种协议各个状态之间的转换如图I所示。其中,写缺失时,本地处理器先发出一个写缺失信号,使其它处理器中该缓存行的副本无效,然后再把数据写到共享存储器中。本地处理器若监听到其它处理器正在对本处理器高速缓存中处于独占(E)、共享(S)或修改状态(M)的缓存行进行写操作,都将该缓存行的状态转换为无效状态(I),处于修改状态(M)的缓存行也要抢先写回共享存储器中。可见,由于采用非写分配的高速缓存,当某个处理器对某个高速缓存行产生一次写缺失时,需要发起对共享存储器的写更新操作,且所有处理器均不存在该高速缓存行的有效副本;紧接着,任何处理器下一次对该缓存行的读操作也必定是缺失的,且需要发起对共享存储器中该行的读操作。在某些情况下,处理器会频繁地发起对共享存储器的访问,由于对共享存储器的访问时延很大,因此性能很低。这也是大多数商业多核处理器不采用非写分配高速缓存的原因
发明内容

为了克服已有多核处理器的数据传输方式的在某些情况下会频繁地发起对共享存储器的访问、访问平均时延很大、处理器性能受限的不足,本发明提供一种有效减少对共享存储器的访问操作、缩短访问平均时延、提升处理器性能的基于非写分配的高速缓存一致性的多核处理器数据传输系统。本发明解决其技术问题所采用的技术方案是一种基于非写分配的高速缓存一致性的多核处理器数据传输系统,所述多核处理器数据传输系统包括一个监听管理单元、至少两个的采用写回式高速缓存且其写缺失时采用非写分配策略的处理器、片上互连总线和共享存储器,当其中一个处理器产生一致性操作时,会把一致性操作的相关信息发给监听管理单元,然后等待监听管理单元处理完毕给回响应后,处理器完成该一致性操作,其中,所述监听管理单元包括一致性请求仲裁部,用以接收各个处理器发送的一致性操作的相关信息后,把这些信息进行仲裁、串行化,然后发往监听处理部;监听处理部,用以按照一致性请求仲裁模块给出的一致性请求把相应的监听操作发送给除一致性请求发起者之外的其它各个处理器;当所有接收该监听操作的处理器都给回响应和可能需要的数据后,如果不需要发起对共享存储器的访问,该监听处理部把各处理器对该监听操作的响应和可能需要的数据发送给一致性响应部;如果需要发起对共享存储器的访问,则把相应的操作信息发送给共享存储器访问部,待共享存储器访问部完成对共享存储器的访问操作后,该监听处理部把相应的响应和可能需要的数据发送给一致性响应部;共享存储器访问部,用以根据监听处理部的请求,发起对共享存储器的响应,给回监听处理部以完成的响应和可能需要的数据;一致性响应部,用以根据监听处理部给回的响应和可能需要的数据,给回发起本次一致性操作的处理器以一致性响应和可能需要的数据。进一步,所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,使用写回式高速缓存,利用无效状态、独占修改状态、独占干净状态、共享修改状态和共享干净状态这五种状态中的一种来标记各高速缓存行的状态;当某个处理器对某个高速缓存行中的某个地址产生写缺失操作时若其它所有处理器中均不存在有效的该高速缓存行,则把数据写到共享存储器的该地址中;若其它处理器中存在有效的该高速缓存行,则把数据直接写到其它处理器中处于“所有者”状态的该高速缓存行中,并将其状态转换为独占修改状态;把其它处理器中处于非“所有者”状态的该高速缓存行无效掉,即状态转换为无效状态。再进一步,所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,当某个处理器对某个高速缓存行中的某个地址产生读缺失操作时若其它所有处理器中均不存在有效的该高速缓存行,则将共享存储器中的该地址行分配到发起该读缺失操作的处理器的高速缓存中,该处理器中该高速缓存行的状态设为独占干净状态;若其它处理器中存在有效的该高速缓存行,则其它处理器中该高速缓存行处于“所有者”状态的处理器负责提供该高速缓存行的数据,并把该高速缓存行的状态转换为共享干净状态;发起该读缺失操作的处理器接收到该高速缓存行后,分配到自身的高速缓存中。如果提供该高速缓存行的处理器中该高速缓存行原先处于共享干净状态或独占干净状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享干净状态;如果提供该高·速缓存行的处理器中该高速缓存行原先处于共享修改状态)或独占修改状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享修改状态。更进一步,当某个处理器对某个处于共享修改状态或共享干净状态的高速缓存行中的某个地址产生写命中操作时若其它所有处理器中均不存在有效的该高速缓存行,则发起该写命中操作的处理器可以执行该写操作,该高速缓存行的状态转换为独占修改状态;若其它处理器中存在有效的该高速缓存行,则把其它处理器中的该高速缓存行均无效掉,即状态转换为无效状态,然后发起该写命中操作的处理器才可以执行该写操作,发起该写命中操作的处理器中该高速缓存行的状态转换为独占修改状态。当某个处理器对某个处于独占修改状态的高速缓存行中的某个地址产生写命中操作时该处理器直接执行该写操作,该高速缓存行的状态不变,仍为独占修改状态。当某个处理器对某个处于独占干净状态的高速缓存行中的某个地址产生写命中操作时该处理器直接执行该写操作,该高速缓存行的状态转换为独占修改状态。当某个处理器对某个高速缓存行中的某个地址产生读命中操作时该处理器直接执行该读操作,该高速缓存行的状态不变。所述“所有者”状态的获得是限定由高速缓存中的状态直接得到,规定独占干净状态、独占修改状态以及共享修改状态为“所有者”状态;或者是各个处理器的高速缓存查询的结果经过仲裁、筛选后得到。只有处于独占修改状态和共享修改状态的高速缓存行被替换时,该高速缓存行才需要被写回到共享存储器中。所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,若该处理器在某个高速缓存行产生写缺失,该处理器把该写缺失的地址信号、写缺失指示信号、写数据信号发送给监听管理单元,待监听管理单元给出指示处理好该写缺失的响应信号后,该处理器的写缺失操作即为完成;若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占修改状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态不变;若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占干净状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态转换为独占修改状态;
若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于共享干净状态或共享修改状态,该处理器把该写命中的地址信号和写命中指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号后,该处理器完成写操作,该处理器中该高速缓存行的状态转换为独占修改状态;若该处理器在某个高速缓存行产生读缺失,该处理器把该读缺失的地址信号和读缺失指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号、缓存行状态转换信号和该高速缓存行的数据后,该处理器完成读操作同时把该高速缓存行分配到高速缓存中,该处理器中该高速缓存行的状态转换为监听管理单元所指示的状态。 若该处理器在某个高速缓存行产生读命中,该处理器直接完成该读操作,该理器中该高速缓存行的状态不变。当该处理器接收到监听管理单元发来的对某个高速缓存行的监听操作时,该处理器会查询自身的标识;如果没有命中该高速缓存行,返回监听完成的响应给监听管理单元; 如果命中该高速缓存行,分以下几种情况处理如果该处理器收到的是“写无效”操作,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元;如果该处理器收到的是“读数据”操作,该处理器把该高速缓存行读出来、状态转换为共享干净状态,然后把数据和监听完成响应提供给监听管理单元。如果该处理器收到的是“写入”操作,若该处理器的该高速缓存行的状态是“拥有者”状态,该处理器把监听管理单元提供的数据写入该高速缓存行中,该高速缓存行的状态转换为独占修改状态,然后返回监听完成的响应给监听管理单元;若该处理器的该高速缓存行的状态不是“拥有者”状态,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元。如果该处理器的高速缓存产生替换操作时,只有被替换的高速缓存行的状态为独占修改状态或共享修改状态时,该处理器把该高速缓存行写回到共享处理器中。本发明的有益效果主要表现在为了克服传统的基于非写分配的多核处理器系统会频繁访问共享存储器的缺点,提出一种基于非写分配的高速缓存一致性协议,设计出如图3所示的多核处理器系统装置,以维护该一致性协议;当一个处理器对某个高速缓存行产生写缺失操作时,可以把数据写到其它处理器的有效的该高速缓存行中,减少对共享存储器访问操作。


图I是基于非写分配高速缓存的MESI协议的状态转换图;图2是本发明提出的基于非写分配的高速缓存一致性协议状态转换图;图3是基于非写分配的高速缓存一致性的多核处理器数据传输系统的原理框图;图4是监听管理单元的示意图;图5是对读命中时的处理流程图;图6是对读缺失时各种情况的处理流程图;图7是对写命中时各种情况的处理流程图8是对写缺失时各种情况的处理流程图;图9是基于非写分配的高速缓存一致性的多核处理器数据传输系统的的详细说明图。
具体实施例方式下面结合附图对本发明作进一步描述。参照图f图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)的高速缓存行被替换时,该高速缓存行才需要被写回到共享存储器中。实例I :参照图5 图8,以四个处理器组成的多核处理器系统为例,说明本发明提出的一种基于非写分配的高速缓存一致性协议对各种操作中各种情况的处理。关于读命中操作,如图5所示处理器I读命中,高速缓存行的状态可能是独占修改状态(ED)、独占干净状态(EC)、共享干净状态(SC)或共享修改状态(SD),此时由处理器I的高速缓存提供数据,该缓存行的状态不变。关于读缺失操作,如图6所示处理器I读缺失,需要取得数据、分配该高速缓存行。处理器I发送读缺失请求,处理器2、3、4收到该读缺失请求后,检查各自的高速缓存,若不存在有效的该缓存行或该缓存行处于共享干净状态(SC),给出没有该缓存行的响应。若处理器2、3、4中都不存在有效的该缓存行,则由共享存储器提供该缓存行,处理器I收到该缓存行的响应和数据后,把该缓存行的状态设为独占干净状态(EC);若处理器2、3、4中至少有一个处理器存在有效的该缓存行,以处理器2为例,分以下几种情况第一种,若处理器2中该缓存行的状态为独占干净状态(EC),则处理器2提供所有者响应和该缓存行的数据,处理器2的该缓存行状态转换为共享干净状态(SC);处理器I得到该缓存行的响应和数据,把该缓存行的状态设为共享干净状态(SC)。第二种,若处理器2中该缓存行的状态为独占修改状态(ED)或共享修改状态(SD),则处理器2提供响应和该缓存行的数据,处理器
2的该高速缓存行状态转换为共享干净状态(SC);处理器I得到该缓存行的响应和数据,把该缓存行的状态设为共享修改状态(SD)。关于写命中操作,如图7所示处理器I写命中,若命中的是处于独占修改(ED)或独占干净状态(EC)的缓存行,则直接更新该缓存行,该缓存行的状态转换为独占修改状态
(ED);若命中的是处于共享修改(SD)或共享干净状态(SC)的缓存行,则在更新该缓存行之前,处理器I先发出一个写无效请求,使其它处理器中该缓存行的副本无效,然后再更新该 缓存行,处理器I中该缓存行的状态转换为独占修改状态(ED)。关于写缺失操作,如图8所示处理器I先发出一个写缺失请求,处理器2、3、4收到该读缺失请求后,检查各自的高速缓存,若不存在有效的该缓存行,给出没有该缓存行的响应。若处理器2、3、4中都不存在有效的该缓存行,则把该读缺失的数据写入共享存储器中;若处理器2、3、4中至少有一个处理器存在有效的该缓存行,例如,处理器2中存在有效的该缓存行且处于“所有者”状态,处理器3中也存在有效的该缓存行但非“所有者”状态,则把该写缺失的数据写入处理器2的该缓存行中,处理器2中该缓存行转换为独占修改状态(ED),处理器3中该缓存行转换为无效状态(I)。实例2 :参照图9,以四个处理器组成的多核处理器系统为例,说明用以实现本发明提出的基于非写分配的高速缓存一致性协议的硬件装置的工作流程。如图9所示,处理器I产生读缺失、写缺失或写命中处于共享状态(SD或SC)的缓存行时,会执行以下步骤。第一步,处理器I通过一致性请求接口把一致性消息发送给监听管理单元。其中,一致性请求接口包括一致性请求信号,用以指示一致性请求是否有效;一致性类型信号,用以指示该一致性操作是写命中、写缺失还是读缺失;地址信号,用以指示处理器在哪个地址上产生一致性请求;写数据信号,写缺失时的数据,用以写入之需要;以及位宽信号。第二步,监听管理单元经过串行化仲裁收到该一致性请求,把相应的监听操作通过监听请求接口发送给处理器2、3、4。其中,监听请求接口包括监听请求信号,用以指示监听请求是否有效;监听类型信号,用以指示监听类型是写无效、写入还是读缺失;监听地址信号,用以指示监听请求的地址;写入数据信号,用以指示在写入操作时,所应写入的数据。第三步,处理器2、3、4收到该监听请求后,查询各自的该缓存行,如果命中,按本发明所提出的协议给出相应的响应或数据或执行写入操作,以及对该缓存行进行可能的状态转换。处理器2、3、4通过监听响应接口把监听响应发送给监听管理单元。其中,监听响应接口包括监听响应信号,用以指示是否完成监听操作以及该缓存行的状态转换情况;监听数据信号,读缺失监听操作时可能提供的数据。第四步,监听管理单元收到处理器2、3、4的监听响应后,进行分析、判断。如果需要发起对共享存储器的访问,则访问共享存储器,待访问共享存储器成功后,把一致性响应和可能需要的数据发送给处理器I;如不需要发起对共享存储器的访问,则直接把一致性响应和可能需要的数据发送给处理器I。监听管理单元通过一致性响应接口把一致性响应发送给处理器I。其中,一致性响应接口包括一致性响应信号,用以指示该一致性操作是否完成以及处理器I中该缓存行状态如何转换;读数据信号,一致性操作为读缺失时,所提供的该高速缓存行的数据。最后一步,处理器I接收到一致性响 应后,完成该一致性操作。
权利要求
1.一种基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于所述多核处理器数据传输系统包括一个监听管理单元、至少两个的采用写回式高速缓存且其写缺失时采用非写分配策略的处理器、片上互连总线和共享存储器,当其中一个处理器产生一致性操作时,会把一致性操作的相关信息发给监听管理单元,然后等待监听管理单元处理完毕给回响应后,处理器完成该一致性操作,其中, 所述监听管理单元包括 一致性请求仲裁部,用以接收各个处理器发送的一致性操作的相关信息后,把这些信息进行仲裁、串行化,然后发往监听处理部; 监听处理部,用以按照一致性请求仲裁模块给出的一致性请求把相应的监听操作发送给除一致性请求发起者之外的其它各个处理器;当所有接收该监听操作的处理器都给回响应和可能需要的数据后,如果不需要发起对共享存储器的访问,该监听处理部把各处理器对该监听操作的响应和可能需要的数据发送给一致性响应部;如果需要发起对共享存储器的访问,则把相应的操作信息发送给共享存储器访问部,待共享存储器访问部完成对共享存储器的访问操作后,该监听处理部把相应的响应和可能需要的数据发送给一致性响应部; 共享存储器访问部,用以根据监听处理部的请求,发起对共享存储器的响应,给回监听处理部以完成的响应和可能需要的数据; 一致性响应部,用以根据监听处理部给回的响应和可能需要的数据,给回发起本次一致性操作的处理器以一致性响应和可能需要的数据。
2.如权利要求I所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中,使用写回式高速缓存,利用无效状态、独占修改状态、独占干净状态、共享修改状态和共享干净状态这五种状态中的一种来标记各高速缓存行的状态; 当某个处理器对某个高速缓存行中的某个地址产生写缺失操作时若其它所有处理器中均不存在有效的该高速缓存行,则把数据写到共享存储器的该地址中;若其它处理器中存在有效的该高速缓存行,则把数据直接写到其它处理器中处于“所有者”状态的该高速缓存行中,并将其状态转换为独占修改状态;把其它处理器中处于非“所有者”状态的该高速缓存行无效掉,即状态转换为无效状态。
3.如权利要求2所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中, 当某个处理器对某个高速缓存行中的某个地址产生读缺失操作时 若其它所有处理器中均不存在有效的该高速缓存行,则将共享存储器中的该地址行分配到发起该读缺失操作的处理器的高速缓存中,该处理器中该高速缓存行的状态设为独占干净状态; 若其它处理器中存在有效的该高速缓存行,则其它处理器中该高速缓存行处于“所有者”状态的处理器负责提供该高速缓存行的数据,并把该高速缓存行的状态转换为共享干净状态;发起该读缺失操作的处理器接收到该高速缓存行后,分配到自身的高速缓存中。如果提供该高速缓存行的处理器中该高速缓存行原先处于共享干净状态或独占干净状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享干净状态;如果提供该高速缓存行的处理器中该高速缓存行原先处于共享修改状态)或独占修改状态,发起该读缺失操作的处理器中该高速缓存行的状态设为共享修改状态。
4.如权利要求2所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于当某个处理器对某个处于共享修改状态或共享干净状态的高速缓存行中的某个地址产生写命中操作时 若其它所有处理器中均不存在有效的该高速缓存行,则发起该写命中操作的处理器可以执行该写操作,该高速缓存行的状态转换为独占修改状态; 若其它处理器中存在有效的该高速缓存行,则把其它处理器中的该高速缓存行均无效掉,即状态转换为无效状态,然后发起该写命中操作的处理器才可以执行该写操作,发起该写命中操作的处理器中该高速缓存行的状态转换为独占修改状态。
5.如权利要求2所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于当某个处理器对某个处于独占修改状态的高速缓存行中的某个地址产生写命中操作时该处理器直接执行该写操作,该高速缓存行的状态不变,仍为独占修改状态。
6.如权利要求2所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于当某个处理器对某个处于独占干净状态的高速缓存行中的某个地址产生写命中操作时 该处理器直接执行该写操作,该高速缓存行的状态转换为独占修改状态。
7.如权利要求2所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于当某个处理器对某个高速缓存行中的某个地址产生读命中操作时 该处理器直接执行该读操作,该高速缓存行的状态不变。
8.如权利要求2 7之一所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于所述“所有者”状态的获得是限定由高速缓存中的状态直接得到,规定独占干净状态、独占修改状态以及共享修改状态为“所有者”状态;或者是各个处理器的高速缓存查询的结果经过仲裁、筛选后得到。
9.如权利要求2 7之一所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于只有处于独占修改状态和共享修改状态的高速缓存行被替换时,该高速缓存行才需要被写回到共享存储器中。
10.如权利要求2 7之一所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于所述采用写回式高速缓存且其写缺失时采用非写分配策略的处理器中, 若该处理器在某个高速缓存行产生写缺失,该处理器把该写缺失的地址信号、写缺失指示信号、写数据信号发送给监听管理单元,待监听管理单元给出指示处理好该写缺失的响应信号后,该处理器的写缺失操作即为完成; 若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占修改状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态不变; 若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于独占干净状态,该处理器直接完成该写操作,该处理器中该高速缓存行的状态转换为独占修改状态; 若该处理器在某个高速缓存行产生写命中,且该高速缓存行处于共享干净状态或共享修改状态,该处理器把该写命中的地址信号和写命中指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号后,该处理器完成写操作,该处理器中该高速缓存行的状态转换为独占修改状态; 若该处理器在某个高速缓存行产生读缺失,该处理器把该读缺失的地址信号和读缺失指示信号发送给监听管理单元,待监听管理单元给出指示处理好该写命中的响应信号、缓存行状态转换信号和该高速缓存行的数据后,该处理器完成读操作同时把该高速缓存行分配到高速缓存中,该处理器中该高速缓存行的状态转换为监听管理单元所指示的状态。
若该处理器在某个高速缓存行产生读命中,该处理器直接完成该读操作,该理器中该高速缓存行的状态不变。
11.如权利要求10所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于当该处理器接收到监听管理单元发来的对某个高速缓存行的监听操作时,该处理器会查询自身的标识;如果没有命中该高速缓存行,返回监听完成的响应给监听管理单元;如果命中该高速缓存行,分以下几种情况处理 如果该处理器收到的是“写无效”操作,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元; 如果该处理器收到的是“读数据”操作,该处理器把该高速缓存行读出来、状态转换为共享干净状态,然后把数据和监听完成响应提供给监听管理单元。
如果该处理器收到的是“写入”操作,若该处理器的该高速缓存行的状态是“拥有者”状态,该处理器把监听管理单元提供的数据写入该高速缓存行中,该高速缓存行的状态转换为独占修改状态,然后返回监听完成的响应给监听管理单元;若该处理器的该高速缓存行的状态不是“拥有者”状态,该处理器把该高速缓存行的状态转换为无效状态,然后返回监听完成的响应给监听管理单元。
12.如权利要求10所述的基于非写分配的高速缓存一致性的多核处理器数据传输系统,其特征在于如果该处理器的高速缓存产生替换操作时,只有被替换的高速缓存行的状态为独占修改状态或共享修改状态时,该处理器把该高速缓存行写回到共享处理器中。
全文摘要
一种基于非写分配的高速缓存一致性的多核处理器数据传输系统,所述多核处理器数据传输系统包括一个监听管理单元、至少两个的采用写回式高速缓存且其写缺失时采用非写分配策略的处理器、片上互连总线和共享存储器,当其中一个处理器产生一致性操作时,会把一致性操作的相关信息发给监听管理单元,然后等待监听管理单元处理完毕给回响应后,处理器完成该一致性操作。本发明提供一种有效减少对共享存储器的访问操作、缩短访问平均时延、提升处理器性能的基于非写分配的高速缓存一致性的多核处理器数据传输系统。
文档编号G06F15/167GK102929832SQ201210358089
公开日2013年2月13日 申请日期2012年9月24日 优先权日2012年9月24日
发明者严晓浪, 修思文, 黄凯, 葛海通 申请人:杭州中天微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1