CN102866923A - 对称多核的高效一致性侦听过滤装置 - Google Patents
对称多核的高效一致性侦听过滤装置 Download PDFInfo
- Publication number
- CN102866923A CN102866923A CN2012103296569A CN201210329656A CN102866923A CN 102866923 A CN102866923 A CN 102866923A CN 2012103296569 A CN2012103296569 A CN 2012103296569A CN 201210329656 A CN201210329656 A CN 201210329656A CN 102866923 A CN102866923 A CN 102866923A
- Authority
- CN
- China
- Prior art keywords
- processor
- request
- read
- sign
- write
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种对称多核的高效一致性侦听过滤装置,包括:集中式的多个处理器核一级高速缓存的标志副本阵列组合,包含所有处理器的标志副本阵列,一个处理器对应一个标志副本阵列;各个处理器的标志副本阵列划分区块,即任一处理器的标志副本阵列分成两个或两个以上的块,不同的块允许同时被访问;读写请求仲裁器,用于接收和仲裁从各个处理器发出的一致性读写操作请求,并且向标志副本阵列发起查询请求;分析单元,用于分析标志副本的查询结果,产生相应的命令,并且将命令发送给命令队列;命令队列,用于暂存未完成的命令,并且按照命令向标志副本发送更新请求,向处理器发送侦听请求。本发明提升多核中各处理器之间的通倩效率、提高整个多核的性能。
Description
技术领域
本发明涉及计算机领域,具体涉及多核处理器系统、多核高速缓存一致性方法和设备。
背景技术
在多核处理器系统中,集成有两个或者两个以上的微处理器。对称多核指的是系统中每个处理器地位平等,并且访问主存储器的时延是一致的,即有相同的访问时延,具有对称性。多核处理器能使得系统同时处理的指令总量增加,从而使整个计算机系统或者其他处理器系统的性能提升。同样性能下,多核处理器比单核处理器有设计简单、功耗低等优点,因此多核处理器成为了处理器市场的趋势。
然而多核处理器系统绝非仅仅将多个处理器并行互连,例如:它需要将任务或程序分配,从而使它们能在多处理器上并行执行;它还要求存储器系统有一致性等。
存储器系统的一致性是指:系统中任何一个读操作读到的都是最新的数据,即读到的数据是系统中最后一个写操作的数据,具体体现为:1);2);3)。为了使得存储器系统满足一致性要求,系统需要对来自所有处理器的写操作进行串行化。
存储器系统的一致性问题由于多处理器带入的多个一级高速缓存而引起,因为每一个处理器的一级高速缓存是私有的,它里面的内容不被其他处理器所知晓,所以各个处理器的私有高速缓存中对同一个存储器地址的缓存数据有潜在的不一致性。高速缓存的私有性导致存储器系统可能出现不一致,因此,通过维护高速缓存的一致性可以维护存储器系统的一致性。
高速缓存的一致性的维护需要让各个处理器的读写操作结果被其他的处理器所知晓,因为处理器的读写操作结果可能是保存在其私有的高速缓存中,所以处理器高速缓存中的状态和标志需要被各个处理器所知晓。在非多核处理器中,高速缓存中保存着数据副本以及数据副本的状态和标志;数据副本是高速缓存中暂存的主存储器(主存)中数据的副本,状态和标志是当前数据副本的信息标记;高速缓存中的数据副本,状态和标志供当前处理器查询和更新。而在多核处理器系统中,因为要维护多个高速缓存之间的一致性,所以当前处理器高速缓存的信息标记需要被其他处理器所知晓;为了避免处理器的私有高速缓存同时被当前处理器和其他处理器同时被查询和/或更新的冲突,通常复制一份标志,称作标志副本,而原有的标志称为标志原本;标志副本仅供其他处理器查询,让其他处理器知道当前处理器的状态,进而可以维护高速缓存的一致性。
高速缓存所有的标志副本组成标志副本阵列(以下没有特别说明是单个标志 副本的“标志副本”都指的是“标志副本阵列”),其中还包含了对应的状态信息。主动处理器发出的读写操作会请求查询标志副本,经过分析查询的结果以及读写操作类型,相应的侦听操作需要被发送给各个被动处理器;主动处理器是发出当前读写操作的处理器,被动处理器是非当前读写操作发起者的处理器。
由于每个标志副本要接收从其他所有处理器读写操作的查询和更新请求,它大都比标志原本被查询和更新的更加频繁,因此标志副本处理查询和更新请求的速度直接影响多核通信的效率。
当前嵌入式多核处理器系统中,大多标志副本都按照标志原本的方式进行组织,采用单端口、单一分块的存储阵列,这使得标志副本在每个时钟周期只能处理一个查询或更新。另外,在当前流行的嵌入式多核系统大都采用基于总线的侦听式架构。一般标志副本分布在各个处理器中,这使得读写操作在查询标志副本之后发出的侦听请求难以过滤,即每个读写操作都要对所有被动处理器发出侦听请求。
发明内容
为了克服现有的多核处理器系统的通信效率较低、性能受限的不足,本发明提供一种提升多核中各处理器之间的通信效率、提高整个多核的性能的对称多核的高效一致性侦听过滤装置。
为了解决上述技术问题采用的技术方案为:
一种对称多核的高效一致性侦听过滤装置,其特征在于:所述高效一致性侦听过滤装置包括:
集中式的多个处理器核一级高速缓存的标志副本阵列组合,所述标志副本阵列组合包含所有处理器的标志副本阵列,一个处理器对应一个标志副本阵列;各个处理器的标志副本阵列划分区块,即任一处理器的标志副本阵列分成两个或两个以上的块,每个块使用独立的控制信号和数据信号,不同的块允许同时被访问;任一处理器的标志副本阵列可供其他处理器的读写操作访问,对不同处理器的标志副本阵列使用独立的控制信号和数据信号,不同的标志副本阵列允许同时被访问;
读写请求仲裁器,用于接收和仲裁从各个处理器发出的一致性读写操作请求,并且向标志副本阵列发起查询请求;
分析单元,用于分析标志副本的查询结果,产生相应的命令,并且将命令发送给命令队列;
命令队列,用于暂存未完成的命令,并且按照命令向标志副本发送更新请求,向处理器发送侦听请求。
进一步,所述标志副本阵列的查询请求和更新请求允许同时被接受;若查询请求和更新请求的对象是不同的处理器标志副本,该查询请求和更新请求同时被执行;若查询请求和更新请求的对象是同一个处理器标志副本的不同区块,该查询请求和更新请求也同时被执行。
再进一步,所述读写请求仲裁器中,对从各个处理器发出的一致性读写操作进行仲裁,同时仲裁的读写操作请求最大个数为处理器的总个数;采用令牌传递方式对各个处理器的读写操作请求进行仲裁,得到令牌的处理器的读写操作请求被接收,没有得到令牌的处理器的读写操作请求不被接收;对于所有处理器,每一时刻有且只有一个处理器得到令牌;经过仲裁器仲裁之后的读写操作向标志副本阵列发起查询请求。
更进一步,所述的一致性读写操作包括各个处理器发出的所有影响高速缓存一致性的读写操作;所述影响高速缓存一致性的读写操作包括:
●共享态写命中:处理器发出的写操作;在其一级高速缓存中含有该写操作的目标地址的有效数据副本,即写命中;并且,其他处理器的一级高速缓存中也包含该读写操作的目标地址的有效数据副本,即处于共享态;
●写缺失:处理器发出的写操作;在其一级高速缓存中不含有该写操作的目标地址的有效数据副本,即写缺失;
●读缺失:处理器发出的读操作;在其一级高速缓存中不含有该写操作的目标地址的有效数据副本,即读缺失。
各个处理器中一致性读写操作的目标地址的数据副本是从主存中读取的数据,保存于处理器的一级高速缓存中,所述数据副本有四种状态:
1)无效态:数据副本在当前处理器的一级高速缓存中无效或者不存在;
2)共享态:数据副本在当前处理器的一级高速缓存中存在且有效,并且数据副本在其他一个或者一个以上处理器的一级高速缓存中也存在且有效;
3)独占干净态:数据副本在当前处理器的一级高速缓存中存在且有效,并且该数据副本和主存中的数据一样,并且该数据副本在其他任何处理器的一级高速缓存不存在或者无效;
4)独占修改态:数据副本在当前处理器的一级高速缓存中存在且有效,并且该数据副本比主存中的数据副本更新,即被修改过,并且该数据副本在其他任何处理器的一级高速缓存不存在或者无效。
当前查询请求只发给被动处理器的标志副本阵列;其中,当前发起读写操作请求处理器是主动处理器,其他的处理器是被动处理器,每次读写操作的主动处理器有且只有一个并且是当前读写操作的发起者。
所述分析单元中,接收读写操作请求对标志副本阵列查询后的结果,按照读写请求类型和查询结果进行分析;分析得到的命令包含所有标志副本的更新请求信息,还包含向各个被动处理器发送的侦听请求信息。
所述侦听请求既适用于写分配的一级高速缓存一致性维护,也适用于写不分配的一级高速缓存一致性维护;有三种侦听请求,它们是:
1)使无效:该侦听请求要求被动处理器将被动处理器自身一级高速缓存中的数据副本去除,即进入无效态;
2)写缺失直传:该侦听请求要求被动处理器接收主动处理器一级高速缓存写缺失的数据,覆盖被动处理器的原数据,并且被动处理器进入独占修改 态;
3)读数据直传:该侦听请求要求被动处理器向主动处理器提供主动处理器一级高速缓存读缺失的数据,被动处理器和主动处理器都将进入共享态。
所述侦听请求只发送给被动处理器;分析单元对于不必要的侦听操作进行过滤,被过滤掉的侦听操作不发起侦听请求,该过滤操作如下:
1)主动处理器发出共享态写命中操作,若查询的被动处理器的标志副本中含有该写命中操作的目标地址有效标志,则向对应的被动处理器发送使无效侦听请求;若查询的标志副本中没有该写命中操作的目标地址有效标志,则不向对应的处理器发送任何侦听请求;
2)主动处理器发出写缺失操作,若查询到一个或一个以上的被动处理器的标志副本阵列含有该写缺失的目标地址有效标志:选中其中一个被动处理器称为幸运处理器,如果是写不分配的一级高速缓存,向该幸运处理器发送写缺失直传侦听请求,如果是写分配的一级高速缓存,向该幸运处理器发送读数据直传和使无效侦听请求;对未选中的标志副本中含有目标地址有效标志的其他被动处理器发送使无效侦听请求;对标志副本中不含目标地址有效标志的被动处理器不发送任何侦听请求;
若没有任何被动处理器的标志副本含有该写缺失目标地址有效标志:不向任何处理器发送侦听请求;
3)主动处理器发出读缺失操作,若查询到一个或一个以上的被动处理器的标志副本阵列含有该读缺失的目标地址有效标志:选中其中一个被动处理器,并向该处理器发送读数据直传侦听请求;对未选中的标志副本中含有目标地址有效标志的其他被动处理器不发送侦听请求;对标志副本中不含目标地址有效标志的被动处理器也不发送侦听请求;
若没有任何被动处理器的标志副本含有该写缺失目标地址有效标志,不向任何处理器发送侦听请求。
所述过滤操作既能维护写不分配的一级高速缓存一致性,也能维护写分配的一级高速缓存的一致性;分析单元要求各个处理器的一级高速缓存同时为写分配方式,或者同时为写不分配方式。
对于每一个读写操作,在查询标志副本之后产生对各个标志副本的更新请求;标志副本更新请求和被动处理器的侦听请求同时产生。
所述命令队列接收分析单元得到的所有侦听请求信息和标志副本更新信息,所述侦听请求信息和标志副本更新信息合起来成为命令;所述命令队列是一个先进先出的队列,每个命令到达队列的头部才能向被动处理器发送有效的侦听请求以及向标志副本阵列发送更新请求;命令的更新请求和侦听请求都被应答之后,该命令从命令队列中丢弃。
该命令队列头部的命令向标志副本发出更新请求,该更新请求独立于读写请求仲裁器的查询请求;若该更新请求和查询请求同时发给不同处理器的标志副本,那么该更新请求和查询请求同时被响应;若该更新请求和查询请求同时发给 同一处理器标志副本的不同块,那么该更新请求和查询请求同时被响应;若该更新请求和查询请求同时发给同一处理器标志副本的相同块,那么该更新请求被响应,该查询请求稍后得到响应。
本发明的技术构思为:在标志副本的组织方式上进行了优化,对每个处理器的标志副本阵列都分为两个或两个以上的块。这使得在对标志副本的查询和更新落于不同块的时候,标志副本能在每个时钟周期同时处理两个或者两个以上的读写操作,从而加快了多核之间的通信、提高了整个系统的性能。
采用集中式的标志副本阵列,每个读写操作对所有标志副本的查询进行统一管理,得到的结果也在集中的单元进行分析,然后过滤掉不必要的侦听操作,即每个读写操作可能对某些被动处理器不发送侦听请求。该改进减少了多核之间不必要的通信,同样提高了整个多核系统的性能。
本发明的有益效果为:提升多核中各处理器之间的通信效率、提高整个多核的性能。
附图说明
图1举例说明本发明实施例多核高效一致性侦听过滤装置的架构示意图,所述装置实现对处理器侦听请求的过滤。
图2详细说明本发明实施例提供的集中式标志副本阵列的组织方式和访问控制。
图3详细说明本发明实施例提供的读写请求仲裁器的结构。
图4a-图4c详细说明本发明实施例提供的分析单元产生命令的流程。
图5详细说明本发明实施例提供的命令队列中命令到处理流程。
具体实施方式
附图通过举例的方式来说明本发明,但是本发明不由附图中的实现方式来限定。接下来的描述将详细说明一种对称多核的高效一致性侦听过滤装置的实施例。后面的描述细节都是为了更好的理解本发明,然而,本领域的技术人员在实施本发明的时候可以没有这些具体细节。
一种对称多核的高效一致性侦听过滤装置,包括集中式的多个处理器核一级高速缓存的标志副本阵列:该集中式的一级高速缓存标志副本阵列包含所有处理器的标志副本阵列,一个处理器对应一个标志副本阵列;
其中,各个处理器的标志副本阵列划分区块,即任一处理器的标志副本阵列分成两个或两个以上的块,每个块使用独立的控制信号和数据信号,不同的块可以同时被访问;任一处理器的标志副本阵列可供其他处理器的读写操作访问,对不同处理器的标志副本阵列使用独立的控制信号和数据信号,不同的标志副本阵列可以同时被访问;
其中,标志副本阵列的查询请求和更新请求可以同时被接受;若查询请求和更新请求的对象是不同的处理器标志副本,该查询请求和更新请求同时被执行;若查询请求和更新请求的对象是一个处理器标志副本的不同区块,该查询请求和更新请求也同时被执行。
读写请求仲裁器:用于仲裁并且接收从各个处理器发出的一致性读写操作请求,并且向标志副本阵列发起查询请求;对于从各个处理器发出的一致性读写操作进行仲裁,同时仲裁的读写操作请求个数最多为处理器的总个数;采用令牌专递对各个处理器的读写操作请求进行仲裁,得到令牌的处理器的读写操作请求被接收,没有得到令牌的处理器的读写操作请求不被接收;对于所有处理器,每一时刻有且只有一个处理器得到令牌;经过仲裁器仲裁之后的读写操作向标志副本阵列发起查询请求;
其中,当前查询请求只发给被动处理器的标志副本阵列,被动处理器是指除了该查询操作所对应的读写操作的发起者之外的所有处理器,发起者是主动处理器,每次读写操作的主动处理器只有一个并且是当前一致性读写操作的发起者;
其中,一致性读写操作包括各个处理器发出的所有影响高速缓存一致性的读写操作,具体为共享态写命中、写缺失和读缺失;各个处理器中一致性读写操作的目标地址的数据副本是从主存中读取的数据,保存于处理器的一级高速缓存中,该数据副本有四种状态,具体为无效态、共享态、独占干净态和独占修改态;但是,所述数据副本的状态包含但不局限于四种状态;所述数据副本状态包含但不局限于标准MESI协议的各种状态。
所述分析单元:用于分析标志副本的查询结果,产生相应的命令,并且将命令发送给命令队列;接收读写操作请求对标志副本阵列查询后的结果,按照读写请求类型和查询结果进行分析;分析得到的命令包含所有标志副本更新的信息,还包含向各个被动处理器发送的侦听请求;
其中,侦听请求既适用于写分配的一级高速缓存一致性维护,也适用于写不分配的一级高速缓存一致性维护;有三种侦听请求,它们具体为使无效、写缺失直传和读数据直传;这些侦听请求只发送给被动处理器;分析单元对于不必要的侦听操作进行过滤。
所述命令队列接收分析单元得到的所有侦听请求信息和标志副本更新信息,这些侦听请求信息和标志副本更新信息合起来成为命令;该队列是一个先进先出的队列,每个命令到达队列的头部才能向被动处理器发送有效的侦听请求以及向标志副本阵列发送更新请求;命令的更新请求和侦听请求都被应答之后,该命令从队列中丢弃。
其中,该命令队列头部的命令向标志副本发出更新请求,该更新请求独立于读写请求仲裁器的查询请求;若该更新请求和查询请求同时发给不同处理器的标志副本,那么该更新请求和查询请求同时被响应;若该更新请求和查询请求同时发给同一处理器标志副本的不同块,那么该更新请求和查询请求同时被响应;若该更新请求和查询请求同时发给同一处理器标志副本的相同块,那么该更新请求被响应,该查询请求稍后得到响应。
举例说明了一个四核处理器系统使用本发明装置对一致性侦听操作的过滤,但是,本发明实施例适用的多核处理器包括而不局限于四核处理器。
图1描绘了整个一致性侦听过滤装置10的架构,如图中虚线所包括的内容。 虚线框外的左边是多核处理器组60,这里以四核为例,其余多核也一样可以按此图所示方式组织架构。
整个过滤装置的工作起始于处理器组60通过读写操作请求线11向该一致性侦听过滤装置10发起读写操作的请求。侦听装置内部的读写请求仲裁器30接收读写操作请求线11上发过来的读写操作,经过该仲裁器的仲裁,被允许的读写操作向集中式的标志副本整列20发起查询请求。
集中式的标志副本阵列20通过查询请求线12接收到查询请求后,查看该读写操作目标地址的标志在各个处理器的标志副本中的状态。查看之后的结果通过查询结果线13传递给分析单元40。
分析单元40接收查询结果线13发过来的信息,然后按照分析单元内部的逻辑,依据读写操作的类型以及目标地址标志在各个处理器标志副本中的状态来得到命令。该命令包括了给集中式标志副本阵列20的更新信息和给被动处理器的侦听信息。这些信息通过命令线14发送给命令队列50。
命令队列50暂存分析单元40通过命令线14发送过来的命令,等到命令到达了该队列的队头,那么该命令被发送出去。命令队列50通过更新请求线15向集中式的标志副本阵列20发送更新操作;通过侦听请求线16向被动处理器发送侦听请求。处理器接收到了侦听请求,并且相应的处理操作完成之后,它会通过应答线向命令队列50发回一个应答信号(ACK)。命令队列接收到ACK并且更新完了标志副本阵列中的相应标志副本之后,该命令完成并被丢弃。
一致性过滤装置处理一个读写操作请求的整个过程如上所述,其中包含了产生并且过滤侦听操作的步骤。该过滤操作能避免冗余的侦听操作,使得多核之间的通信效率更高。
首先看图2,它描绘了集中式的标志副本阵列20的详细的组织结构,还描绘了该标志副本阵列的控制逻辑。其中,标志副本的组织方式中,每一个处理器的标志副本阵列含有两个或者两个以上的区块,本实例以两个区块为例,但是本发明的实现不局限于两个区块。
集中式的标志副本阵列20的组织方式如图2中所示,包含各个处理器(本例中一共四个处理器)的标志副本阵列21a-21d。其中每个标志副本阵列又分为多个块(本例中分为两个块),如标志副本阵列21a(阵列0)分为块0和块1。对于每个标志副本阵列21a-21d,它们使用独立的控制/写数据信号组22a-22d和读数据信号组{28a,28b}、{28c,28d}、{28e,28f}以及{28g,28h},其中{}中的信号是同一个标志副本阵列的读数据信号,例如{28a,28b}是标志副本阵列21a(阵列0)的读数据信号。
进一步的,每个标志副本阵列中的每个块也使用独立的控制/写数据信号23a-23h和读数据信号28a-28h。例如,阵列0的块0使用的控制/写数据信号是23a,读数据信号是28a;阵列0块1使用的控制/写数据信号是23b,读数据信号是28b。
集中式的标志副本阵列20的控制逻辑由一组带优先级的选择器(MUX)和 反选器(DMUX)维护。选择器26和反选器25、反选器组24(24a-24d)用来控制查询请求和更新请求到各标志副本阵列块的分配,其中更新请求还包含将要写入标志副本阵列块的数据。选择器27用来控制从查询请求读出来的数据中选出正确的数据发送给查询结果线13。
如图2中所示,选择器26从查询请求线12和更新请求线15中选择一个或者两个请求,如果该两个请求访问不同的阵列块,那么两个请求同时被相应;如果该两个请求访问同一个阵列块:1)如果查询请求和更新请求有且只有一个有效,那么该有效请求被选中;2)如果查询和更新请求同时有效,那么更新请求的优先级较高,于是更新请求被响应;3)如果查询请求和更新请求同时无效,那么不需要选择任何请求。
经过选择器26得到的请求发送给反选器25:若选择器26出来的是查询请求,那么反选器25将该请求同时发送给所有被动处理器(本例中每个读写操作有三个被动处理器和一个主动处理器),而不发送给主动处理器,因为主动处理器发出读写操作请求之前已经查询好了自身的标志及其状态;若选择器26出来的是更新请求,那么该请求只发送给目的标志副本,每个更新请求只有一个目的标志副本,因为更新请求写入各个标志副本的写数据可能不同,所以这些标志副本不能同时更新。
经过反选器25得到的信号22a-22d发送给反选器组24,反选器组24中每个反选器对应一个标志副本阵列,如反选器24a对应于标志副本阵列21a。反选器24a-24d通过读写请求的最地址低位选择相应阵列块,每个块对应的控制/写数据信号23a-23h也随之产生。
对于查询请求,每个被动处理器还要返回被查询的标志及其状态,每个标志副本阵列返回的结果在读数据信号线28a或28b、28c或28d、28e或28f、28g或28h上。首先,选择器27选出被动处理器的结果,本例中被动处理器有三对结果。然后,如反选器24一样按照低位地址进行选择,从这三对结果的每一对中选出一个结果,最后得到的三个查询结果通过查询结果线13发出去。
如上述具体实现的描述,该形式下的标志副本单元可以同时相应处于不同标志副本区块的查询请求和更新请求,减少了查询请求和更新请求之间的冲突,加速了整个系统中多核之间的通信,从而提高了整个多核处理器系统的性能。
其次看图3,该图描绘了读写请求仲裁器30的具体结构。在具体的实施中,该仲裁器通过读写请求线11a-11d接收从各个处理器发起的一致性读写操作,每个处理器对应一个读写请求线(本例中为四个)。这些一致性读写请求包括:
●共享态写命中:处理器发出的写操作;在其一级高速缓存中含有该写操作的目标地址的有效数据副本,即写命中;并且,其他处理器的一级高速缓存中也包含该读写操作的目标地址的有效数据副本,即处于共享态;
●写缺失:处理器发出的写操作;在其一级高速缓存中不含有该写操作的目标地址的有效数据副本,即写缺失;
●读缺失:处理器发出的读操作;在其一级高速缓存中不含有该写操作的目标地址的有效数据副本,即读缺失。
处理器的一级高速缓存中保存各读写操作的目标地址的数据副本,该数据副本通过其标志和状态位来确定数据副本的状态,这些状态包括:
◆无效态:数据副本在当前处理器的一级高速缓存中无效或者不存在;
◆共享态:数据副本在当前处理器的一级高速缓存中存在且有效,并且数据副本在其他一个或者一个以上处理器的一级高速缓存中也存在且有效;
◆独占干净态:数据副本在当前处理器的一级高速缓存中存在且有效;并且该数据副本和主存中的数据一样;并且该数据副本在其他任何处理器的一级高速缓存不存在或者无效;
◆独占修改态:数据副本在当前处理器的一级高速缓存中存在且有效;并且该数据副本比主存中的数据副本更新,即被修改过;并且该数据副本在其他任何处理器的一级高速缓存不存在或者无效。
其中,独占干净态和独占修改态都是独占态,该状态下的目标地址的数据副本仅存在于一个处理器的一级高速缓存中。
读写请求仲裁器30通过令牌传递的方式对来自各个处理器的读写请求进行仲裁,因此仲裁器包含一个令牌传递装置32。每一时刻,在读写请求线11a-11d上任一读写请求有效且查询请求12被允许的情况下,令牌将传递一次。令牌按循环方式传递,处理器P0-P3轮流得到令牌,按P0->P1->P2->p3->P0…的方式循环。例如,图中所示当前处理器P3得到令牌,那么P3的读写请求被接收,之后令牌传递给P0,即下一时刻P0的读写请求被接收。
令牌传递装置32通过控制信号33来控制选择器(MUX)31,选择器31从所有读写请求中选出一个,这个被选中的读写请求被发送到查询请求线12上,从而去向集中式的标志副本阵列发起查询请求。
集中式的标志副本响应了查询请求之后,读取各被动处理器的标志和状态,这些读取的结果被发送给分析单元。分析单元分析后得到的侦听请求包括:
a)使无效:该侦听请求要求被动处理器将被动处理器自身一级高速缓存中的
数据副本去除,即进入无效态;
b)写缺失直传:该侦听请求要求被动处理器接收主动处理器一级高速缓存写
缺失的数据,覆盖被动处理器的原数据,并且被动处理器进入独占修改态;
c)读数据直传:该侦听请求要求被动处理器向主动处理器提供主动处理器一级高速缓存读缺失的数据,被动处理器和主动处理器都将进入共享态;
接下来看分析单元对查询结果的处理:
图4a描述了分析单元40对共享态写命中操作及其查询结果的具体分析过程,最后为每一个被动处理器得到相应的命令。首先,当前进行查询的是一个共享态写命中41,然后通过对查询结果的判定42,得到相应的命令43a/43b——侦听请求信息和更新请求信息。
具体过程为:若查询的被动处理器Px(x表示0,1,2,3)的标志副本中含有该 写命中操作的目标地址标志且处于有效状态,则向对应的被动处理器发送使无效侦听请求,并且发送标志副本更新请求;若查询的标志副本中没有该写命中操作的目标地址有效标志,则不向对应的处理器发送任何侦听请求,也不发送标志副本更新请求。
图4b描述了分析单元40对写缺失操作及其查询结果的具体分析过程,最后为每一个被动处理器得到相应的命令。首先,当前进行查询的是一个写缺失44,然后通过对查询结果的判定45a-45c,得到相应的命令46a/46b/46c/46d。
具体过程为:
若查询的被动处理器Px的标志副本阵列含有该写缺失的目标地址有效标志,并且Px是被选中的幸运处理器,并且是写分配的一级高速缓存,那么向该处理器发送读数据直传和使无效侦听请求;
若查询的被动处理器Px的标志副本阵列含有该写缺失的目标地址有效标志,并且Px是被选中的幸运处理器,并且不是写分配的一级高速缓存,那么向该处理器发送写缺失直传侦听请求;
若查询的被动处理器Px的标志副本阵列含有该写缺失的目标地址有效标志,但是Px不是被选中的幸运处理器,那么向该处理器发送使无效侦听请求;
若查询的被动处理器Px的标志副本阵列不含有该写缺失的目标地址有效标志,那么不向该处理器发送任何侦听请求。
向每个处理器发送侦听请求的同时还要向其标志副本发送更新请求,如果不发送侦听请求,那么也不需要发送标志副本的更新请求。
其中,选中的幸运处理器是:含有当前读写操作目标地址有效标志的被动处理器当中的某一个,而且,幸运处理器只有一个。
图4c描述了分析单元40对读缺失操作及其查询结果的具体分析过程,最后为每一个被动处理器得到相应的命令。首先,当前进行查询的是一个读缺失47,然后通过对查询结果的判定48a-48b,得到相应的命令49a/49b。
具体过程为:
若查询的被动处理器Px的标志副本阵列含有该读缺失的目标地址有效标志,并且Px是被选中的幸运处理器,那么向该处理器发送读数据直传侦听请求,并向对应的标志副本发送更新请求;
若查询的被动处理器Px的标志副本阵列含有该读缺失的目标地址有效标志,但是Px不是被选中的幸运处理器,那么不向该处理器发送侦听请求,也不发送标志副本更新请求;
若查询的被动处理器Px的标志副本阵列不含有该读缺失的目标地址有效标志,那么不向该处理器发送任何侦听请求和标志副本更新请求。
通过以上描述的过程,分析单元会将不必要的侦听操作过滤掉,即任一读写请求不是向所有的被动处理器发送侦听请求以及向所有的被动处理器的标志副本发送更新请求。例如,处理器P0发起的共享态写命中,查询结果是P1的标志副本中含有该写命中目标地址的有效标志,P2和P3的标志副本中不含该写命中 目标地址的有效标志,那么分析单元分析得到的结果是只向P1发起侦听操作,而过滤掉了P2和P3的侦听操作——使无效。向P2和P3发起使无效侦听操作的结果是一样的,因为当前P2和P3已经是不含目标地址的有效标志了。
最后看图5,读写操作经过仲裁、查询标志副本和分析产生侦听请求及标志副本更新请求,最后这些侦听请求信息和标志副本更新信息作为命令写入到命令队列。如图5所示,命令队列含有若干个位置,本例中以四个位置为例,但是本发明不局限于四个位置的命令队列。
每个队列的位置有三个状态:位置无效状态,即当前位置没有命令或者命令无效;位置等待状态,即当前位置在等待发出侦听请求和更新请求;命令执行状态,即侦听操作和更新操作正在执行。
初始时刻,任何位置都处于无效状态。等到命令线14上的命令写到位置X(X表示0,1,2,3)的时候,位置X跳出无效状态:若位置X是队头,则位置X进入命令执行状态;若位置X不是队头,则位置X进入等待状态。等待状态下,位置X一直判断它是否在队头,如果不是在队头,它仍处于等待状态;如果排到了队头,等待状态下的位置X进入命令执行状态。
命令执行状态下,当前位置X通过侦听请求线16向相应的处理器发送侦听请求,还通过更新请求线15向相应的标志副本阵列发送标志副本更新请求。如果所有的侦听已经处理完,相应的处理器通过应答线17返回了所有应答(ACK),并且,所有的标志副本已经更新完成,那么当前位置X返回无效状态;如果任何一个ACK没有返回或者使任何一个标志副本没有更新,那么当前位置X停留在命令执行状态等待所有执行完成。
位置X从命令执行状态下返回无效状态的时候,队头前进一个位置,即接下来位置X+1是队头。循环状态下,位置3返回无效状态时下一个队头是位置0。因为每一时刻只有一个位置处于队头,所以只有一个位置处于命令执行状态,于是侦听请求线16和更新请求线15都是从队头的位置伸出去。
由此,已经公开了本发明的一种对称多核的高效一致性侦听过滤装置。虽然已经详细描述并且给出了详细附图,但是本实施例是对具有更广泛范围的本发明的例子之一,而非对本发明的限制,并且本领域的技术人员依据本发明的思想在具体实施方式和应用范围上均会有改变,因此,本发明不限于所展示以及所描述的具体结构和装置。
Claims (13)
1.一种对称多核的高效一致性侦听过滤装置,其特征在于:所述高效一致性侦听过滤装置包括:
集中式的多个处理器核一级高速缓存的标志副本阵列组合,所述标志副本阵列组合包含所有处理器的标志副本阵列,一个处理器对应一个标志副本阵列;各个处理器的标志副本阵列划分区块,即任一处理器的标志副本阵列分成两个或两个以上的块,每个块使用独立的控制信号和数据信号,不同的块允许同时被访问;任一处理器的标志副本阵列可供其他处理器的读写操作访问,对不同处理器的标志副本阵列使用独立的控制信号和数据信号,不同的标志副本阵列允许同时被访问;
读写请求仲裁器,用于接收和仲裁从各个处理器发出的一致性读写操作请求,并且向标志副本阵列发起查询请求;
分析单元,用于分析标志副本的查询结果,产生相应的命令,并且将命令发送给命令队列;
命令队列,用于暂存未完成的命令,并且按照命令向标志副本发送更新请求,向处理器发送侦听请求。
2.如权利要求1所述的对称多核的高效一致性侦听过滤装置,其特征在于:所述标志副本阵列的查询请求和更新请求允许同时被接受;若查询请求和更新请求的对象是不同的处理器标志副本,该查询请求和更新请求同时被执行;
若查询请求和更新请求的对象是同一个处理器标志副本的不同区块,该查询请求和更新请求也同时被执行。
3.如权利要求1或2所述的对称多核的高效一致性侦听过滤装置,其特征在于:所述读写请求仲裁器中,对从各个处理器发出的一致性读写操作进行仲裁,同时仲裁的读写操作请求最大个数为处理器的总个数;采用令牌传递方式对各个处理器的读写操作请求进行仲裁,得到令牌的处理器的读写操作请求被接收,没有得到令牌的处理器的读写操作请求不被接收;对于所有处理器,每一时刻有且只有一个处理器得到令牌;经过仲裁器仲裁之后的读写操作向标志副本阵列发起查询请求。
4.如权利要求3所述的对称多核的高效一致性侦听过滤装置,其特征在于:所述的一致性读写操作包括各个处理器发出的所有影响高速缓存一致性的读写操作;所述影响高速缓存一致性的读写操作包括:
1)共享态写命中:处理器发出的写操作;在其一级高速缓存中含有该写操作的目标地址的有效数据副本,即写命中;并且,其他处理器的一级高速缓存中也包含该读写操作的目标地址的有效数据副本,即处于共享态;
2)写缺失:处理器发出的写操作;在其一级高速缓存中不含有该写操作的目标地址的有效数据副本,即写缺失;
3)读缺失:处理器发出的读操作;在其一级高速缓存中不含有该写操作的目标地址的有效数据副本,即读缺失。
5.如权利要求4所述的对称多核的高效一致性侦听过滤装置,其特征在于:各个处理器中一致性读写操作的目标地址的数据副本是从主存中读取的数据,保存于处理器的一级高速缓存中,所述数据副本有四种状态:
1)无效态:数据副本在当前处理器的一级高速缓存中无效或者不存在;
2)共享态:数据副本在当前处理器的一级高速缓存中存在且有效,并且数据副本在其他一个或者一个以上处理器的一级高速缓存中也存在且有效;
3)独占干净态:数据副本在当前处理器的一级高速缓存中存在且有效,并且该数据副本和主存中的数据一样,并且该数据副本在其他任何处理器的一级高速缓存不存在或者无效;
4)独占修改态:数据副本在当前处理器的一级高速缓存中存在且有效,并且该数据副本比主存中的数据副本更新,即被修改过,并且该数据副本在其他任何处理器的一级高速缓存不存在或者无效。
6.如权利要求3所述的对称多核的高效一致性侦听过滤装置,其特征在于:当前查询请求只发给被动处理器的标志副本阵列;其中,当前发起读写操作请求处理器是主动处理器,其他的处理器是被动处理器,每次读写操作的主动处理器有且只有一个并且是当前读写操作的发起者。
7.如权利要求1或2所述的对称多核的高效一致性侦听过滤装置,其特征在于:所述分析单元中,接收读写操作请求对标志副本阵列查询后的结果,按照读写请求类型和查询结果进行分析;分析得到的命令包含所有标志副本的更新请求信息,还包含向各个被动处理器发送的侦听请求信息。
8.如权利要求7所述的对称多核的高效一致性侦听过滤装置,其特征在于所述侦听请求既适用于写分配的一级高速缓存一致性维护,也适用于写不分配的一级高速缓存一致性维护;有三种侦听请求,它们是:
1)使无效:该侦听请求要求被动处理器将被动处理器自身一级高速缓存中的数据副本去除,即进入无效态;
2)写缺失直传:该侦听请求要求被动处理器接收主动处理器一级高速缓存写缺失的数据,覆盖被动处理器的原数据,并且被动处理器进入独占修改态;
3)读数据直传:该侦听请求要求被动处理器向主动处理器提供主动处理器一级高速缓存读缺失的数据,被动处理器和主动处理器都将进入共享态。
9.如权利要求8所述的对称多核的高效一致性侦听过滤装置,其特征在于:所述侦听请求只发送给被动处理器;分析单元对于不必要的侦听操作进行过滤,被过滤掉的侦听操作不发起侦听请求,该过滤操作如下:
1)主动处理器发出共享态写命中操作,若查询的被动处理器的标志副本中含有该写命中操作的目标地址有效标志,则向对应的被动处理器发送使无效侦听请求;若查询的标志副本中没有该写命中操作的目标地址有效标志,则不向对应的处理器发送任何侦听请求;
2)主动处理器发出写缺失操作,若查询到一个或一个以上的被动处理器的标志副本阵列含有该写缺失的目标地址有效标志:选中其中一个被动处理器称为幸运处理器,如果是写不分配的一级高速缓存,向该幸运处理器发送写缺失直传侦听请求,如果是写分配的一级高速缓存,向该幸运处理器发送读数据直传和使无效侦听请求;对未选中的标志副本中含有目标地址有效标志的其他被动处理器发送使无效侦听请求;对标志副本中不含目标地址有效标志的被动处理器不发送任何侦听请求;
若没有任何被动处理器的标志副本含有该写缺失目标地址有效标志:不向任何处理器发送侦听请求;
3)主动处理器发出读缺失操作,若查询到一个或一个以上的被动处理器的标志副本阵列含有该读缺失的目标地址有效标志:选中其中一个被动处理器,并向该处理器发送读数据直传侦听请求;对未选中的标志副本中含有目标地址有效标志的其他被动处理器不发送侦听请求;对标志副本中不含目标地址有效标志的被动处理器也不发送侦听请求;
若没有任何被动处理器的标志副本含有该写缺失目标地址有效标志,不向任何处理器发送侦听请求。
10.如权利要求9所述的对称多核的高效一致性侦听过滤装置,其特征在于:所述过滤操作既能维护写不分配的一级高速缓存一致性,也能维护写分配的一级高速缓存的一致性;分析单元要求各个处理器的一级高速缓存同时为写分配方式,或者同时为写不分配方式。
11.如权利要求7所述的对称多核的高效一致性侦听过滤装置,其特征在于:对于每一个读写操作,在查询标志副本之后产生对各个标志副本的更新请求;标志副本更新请求和被动处理器的侦听请求同时产生。
12.如权利要求1或2所述的对称多核的高效一致性侦听过滤装置,其特征在于:所述命令队列接收分析单元得到的所有侦听请求信息和标志副本更新信息,所述侦听请求信息和标志副本更新信息合起来成为命令;所述命令队列是一个先进先出的队列,每个命令到达队列的头部才能向被动处理器发送有效的侦听请求以及向标志副本阵列发送更新请求;命令的更新请求和侦听请求都被应答之后,该命令从命令队列中丢弃。
13.如权利要求12所述的对称多核的高效一致性侦听过滤装置,其特征在于:该命令队列头部的命令向标志副本发出更新请求,该更新请求独立于读写请求仲裁器的查询请求;若该更新请求和查询请求同时发给不同处理器的标志副本,那么该更新请求和查询请求同时被响应;若该更新请求和查询请求同时发给同一处理器标志副本的不同块,那么该更新请求和查询请求同时被响应;若该更新请求和查询请求同时发给同一处理器标志副本的相同块,那么该更新请求被响应,该查询请求稍后得到响应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210329656.9A CN102866923B (zh) | 2012-09-07 | 2012-09-07 | 对称多核的高效一致性侦听过滤装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210329656.9A CN102866923B (zh) | 2012-09-07 | 2012-09-07 | 对称多核的高效一致性侦听过滤装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102866923A true CN102866923A (zh) | 2013-01-09 |
CN102866923B CN102866923B (zh) | 2015-01-28 |
Family
ID=47445802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210329656.9A Active CN102866923B (zh) | 2012-09-07 | 2012-09-07 | 对称多核的高效一致性侦听过滤装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102866923B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462007A (zh) * | 2013-09-22 | 2015-03-25 | 中兴通讯股份有限公司 | 实现多核间缓存一致性的方法及装置 |
CN105095254A (zh) * | 2014-05-07 | 2015-11-25 | 深圳市中兴微电子技术有限公司 | 一种实现数据一致性的方法及装置 |
CN106126451A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
CN106126450A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
WO2020132987A1 (zh) * | 2018-12-26 | 2020-07-02 | 华为技术有限公司 | 一种数据读取方法、装置及多核处理器 |
CN112559433A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
CN115858420A (zh) * | 2023-02-23 | 2023-03-28 | 芯砺智能科技(上海)有限公司 | 用于支持多处理器架构的系统缓存架构和芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545034A (zh) * | 2003-11-26 | 2004-11-10 | 中国人民解放军国防科学技术大学 | 片内多处理器局部cache一致性的双环监听方法 |
CN101162442A (zh) * | 2006-10-09 | 2008-04-16 | 国际商业机器公司 | 支持共享全局一致性状态的处理器、数据处理系统和方法 |
US20080133844A1 (en) * | 2006-12-01 | 2008-06-05 | Srinivasan Ramani | Method and apparatus for extending local caches in a multiprocessor system |
CN101789959A (zh) * | 2009-12-30 | 2010-07-28 | 北京天融信科技有限公司 | 一种多核系统中的skb重用方法及装置 |
-
2012
- 2012-09-07 CN CN201210329656.9A patent/CN102866923B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545034A (zh) * | 2003-11-26 | 2004-11-10 | 中国人民解放军国防科学技术大学 | 片内多处理器局部cache一致性的双环监听方法 |
CN101162442A (zh) * | 2006-10-09 | 2008-04-16 | 国际商业机器公司 | 支持共享全局一致性状态的处理器、数据处理系统和方法 |
US20080133844A1 (en) * | 2006-12-01 | 2008-06-05 | Srinivasan Ramani | Method and apparatus for extending local caches in a multiprocessor system |
CN101789959A (zh) * | 2009-12-30 | 2010-07-28 | 北京天融信科技有限公司 | 一种多核系统中的skb重用方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462007B (zh) * | 2013-09-22 | 2018-10-02 | 南京中兴新软件有限责任公司 | 实现多核间缓存一致性的方法及装置 |
CN104462007A (zh) * | 2013-09-22 | 2015-03-25 | 中兴通讯股份有限公司 | 实现多核间缓存一致性的方法及装置 |
CN105095254A (zh) * | 2014-05-07 | 2015-11-25 | 深圳市中兴微电子技术有限公司 | 一种实现数据一致性的方法及装置 |
CN105095254B (zh) * | 2014-05-07 | 2023-01-10 | 深圳市中兴微电子技术有限公司 | 一种实现数据一致性的方法及装置 |
CN106126451B (zh) * | 2016-06-20 | 2019-01-25 | 中国航天科技集团公司第九研究院第七七一研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
CN106126450B (zh) * | 2016-06-20 | 2018-10-30 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
CN106126450A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
CN106126451A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
WO2020132987A1 (zh) * | 2018-12-26 | 2020-07-02 | 华为技术有限公司 | 一种数据读取方法、装置及多核处理器 |
CN113168400A (zh) * | 2018-12-26 | 2021-07-23 | 华为技术有限公司 | 一种数据读取方法、装置及多核处理器 |
CN112559433A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
CN112559433B (zh) * | 2019-09-25 | 2024-01-02 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
CN115858420A (zh) * | 2023-02-23 | 2023-03-28 | 芯砺智能科技(上海)有限公司 | 用于支持多处理器架构的系统缓存架构和芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN102866923B (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866923B (zh) | 对称多核的高效一致性侦听过滤装置 | |
US9830294B2 (en) | Data processing system and method for handling multiple transactions using a multi-transaction request | |
CN105243033B (zh) | 数据处理方法及电子设备 | |
CN106575238B (zh) | 支持页面隐式锁的共享存储架构中的并发控制 | |
CN101739298B (zh) | 共享缓存管理方法和系统 | |
CN103246616B (zh) | 一种长短周期访问频度的全局共享缓存替换方法 | |
CN107291424A (zh) | 基于闪存的加速器和包含其的计算设备 | |
CN103959275B (zh) | 优化多处理器计算系统中的存储器存取的方法和系统 | |
DE102010044531B4 (de) | Autonome Speicherarchitektur | |
KR20190011257A (ko) | 상이한 캐시 레벨에서의 캐시라인의 상태를 모니터하기 위한 쉐도우 태그 메모리 | |
US8589638B2 (en) | Terminating barriers in streams of access requests to a data store while maintaining data consistency | |
CN105320608A (zh) | 用于控制存储器设备处理访问请求的存储器控制器和方法 | |
CN102929832A (zh) | 基于非写分配的高速缓存一致性的多核处理器数据传输系统 | |
CN112148665B (zh) | 缓存的分配方法及装置 | |
US6950913B2 (en) | Methods and apparatus for multiple cluster locking | |
CN109154912A (zh) | 根据另一个高速缓存中条目的可用性替换高速缓存条目 | |
CN103999063B (zh) | 处理器的存储器共享 | |
CN106844232A (zh) | 一种面向多核处理器的共享末级高速缓存访存方法和装置 | |
CN104808950B (zh) | 对嵌入式存储器元件的模式依赖性访问 | |
CN107533475A (zh) | 可缩放软件栈 | |
CN105718990B (zh) | 细胞阵列计算系统以及其中细胞之间的通信方法 | |
CN106326143A (zh) | 一种缓存分配、数据访问、数据发送方法、处理器及系统 | |
CN109416665A (zh) | 多处理器系统中本地共享高速缓冲存储器之间的自我感知、对等高速缓冲传送 | |
CN105718991B (zh) | 细胞阵列计算系统 | |
US20170185516A1 (en) | Snoop optimization for multi-ported nodes of a data processing system |
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 |