片内多处理器局部cache一致性的双环监听方法技术

技术编号:2868259 阅读:413 留言:0更新日期:2012-04-11 18:40
一种片内多处理器局部cache一致性的双环监听方法,其总体逻辑结构包括多个处理器核CPU、cache、存储器接口单元MIU,它们通过总线相连,CPU是处理的核心部件,CPU通过总线从cache获取数据和指令,cache内包含cache控制器、CPU对cache进行指令和数据访问中的失效、写回和替换的处理功能通过cache控制器控制完成,由存储器接口单元MIU实现与片外主存储系统的数据交换,其特征在于其cache分为一级指令cache、一级数据cache、二级cache,在各一级数据cache之间设计了一个转发总线和一个双环结构,同时增加专门的逻辑控制电路扩展了一级cache控制器的功能,并对一级数据cache标志位进行了扩展,从而实现局部cache一致性操作,具体方法为:    1.1CPU分别通过单独的总线与一级指令cache和一级数据cache相连接,通过一级指令cache和数据cache获取指令和数据、执行程序;一级cache采用指令与数据相分离的哈佛结构,一级cache仅被它对应的CPU访问,CPU和它的一级cache构成一个处理节点;各个处理节点的一级cache通过共同的总线与二级cache连接,该总线是处理节点向二级cache读取指令,与二级cache进行数据交换的通路;二级cache是混合结构,同时存储指令和数据,被所有处理节点共享使用,二级cache通过总线和存储接口单元MIU相连;    1.2在各一级数据cache之间设计一个转发总线,包括:源id-发送数据的线程逻辑id,其位数由节点的个数以2为底取对数决定,目的id-接受数据的线程逻辑id,位数与源id相同,地址域-要传送的数据的地址,根据系统的寻址空间确定,数据域-传送的数据,宽度由系统的字长决定,使能、确认和忙闲信号各1位-用于传递时的控制;转发总线连接在各个局部一级数据cache上,用于完成不同处理节点的一级数据cache之间共享数据的传送,同时设计一个转发仲裁逻辑依据源id解决访问冲突;    1.3在片内各处理器节点间设计一个双环结构,它由连接在一级数据cache之间的两个相向传播的单向环形消息通路L-ring和S-ring构成,用于传递各个节点的数据访问信息,访问的信息包括数据的地址和访问者的逻辑标识id,以消息形式在该结构上传播,每个时钟周期前进一个节点,直至被接收或回收,根据这些信息对本节点拥有的新数据进行转发、并通过CPU执行补偿代码或重新运行该线程解决本地节点的超前访问,解决处理器间的cache一致性,辅助多处理器系统高效并发运行;L-ring传递Load消息,S-ring传递Store消息;处理节点通过环形结构串联起来,每个处理节点运行一个线程,各个线程之间也存在逻辑关系,按照先后依次运行在环上的每个处理节点,处理节点的排列和线程的分布形成一个顺序的对应关系;    1.4增加专门的逻辑控制电路来扩展处理节点一级cache控制器的功能,使得该控制器除了完成CPU对cache进行指令和数据访问中的失效、写回和替换的处理功能外,还通过双环结构发布自身所属处理节点对于数据的访问信息,获取和传播其它节点对于数据的访问情况,并借助转发总线完成对局部cache一致性的维护;    1.5对一级数据cache标志位进行扩展:保留一般cache中设计的V和D位,添加RS位,表明在执行新的线程时该数据块是否需要设置为无效;添加U、L、S位,以字为单位进行标识,U位表明本处理节点有没有修改过该字,修改过则置1;L用于标识本处理节点是否读取过该字,在第一次读取之前会发送Load消息,获得最新数据后将L位设置为1,以后的读取则不必发送Load消息;S位表明针对本节点的修改是否发送过Store消息,发送store消息是将其设置为1,当该数据被其它节点读取时,就将它清除为0。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及微处理器设计中片内多处理器之间局部cache一致性的解决方法,尤其是支持线程级前瞻执行(Thread LevelSpeculation)的片内多处理器结构中局部cache之间数据一致性的解决方法。
技术介绍
微电子技术和加工工艺的不断发展,使得在单个芯片内放置多个处理器成为提高芯片整体性能的一个重要途径。局部cache的数据一致性(cache coherence)是传统片外多处理器系统并行执行必须解决的问题,但片内多处理器在组成、结构和通信能力等方面又具有很多新的特点,因此局部cache一致性需要采用新的解决方法。传统片外多处理器系统解决局部cache一致性的协议有以下两类,如2000年高等教育出版社出版的《计算机体系结构》一书中阐述的总线监听(snooping)协议和目录(directory)协议,总线监听协议中每个cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。Cache通常连在共享存储器的总线上,各个cache控制器通过监听总线来判断它们是否有总线上请求的数据块,从而维护cache的数据一致性。总线监听协议只能适用于处理器节点较少的通过总线相连的多处理器系统。基于目录的一致性解决方法通过目录结构记录进入cache的每个数据块的访问状态、该块在各个处理器的共享状态以及是否修改过的信息。通过处理器之间的内部互联网络(Intra-Connection Network)发布信息,维护局部cache一致性。目录可以分布在整个系统中,这种方法具有扩展能力,能够应用于处理节点较多的系统。处理器间的维护局部cache一致性的信息传递和数据交换分别通过总线或内部互联网络实现,因此处理节点间总线或者网络的带宽是影响整个系统性能的关键因素。在单个芯片上实现多处理器系统,各个处理器之间的通信能力得到了很大的增强,片外的cache一致性维护操作需要数十个甚至数百个时钟周期(这里指CPU的时钟周期)才能完成,集中在同一个芯片上实现可以将其缩短到几个时钟周期。当前已经存在的单芯片多处理器系统中,Stanford大学在http//www-hydra.stanford.edu/hydra.shtml网址公布的Hydra处理器模型中,采用类似总线监听协议的方法解决局部cache一致性的问题,但是总线监听的访问量与处理节点个数的平方成正比;Illinois大学在http//www.cs.uiuc.edu公布的片内多处理器模型中,采用类目录的方法来解决cache之间的数据一致性问题,集中式的目录存储导致对该目录的访问成为瓶颈。
技术实现思路
本专利技术的目的在于对现有技术中片内多处理器间局部cache一致性方案进行改进,解决访问结点个数受限和局部cache一致性造成的访问冲突等问题,利用片内多处理器间通信高带宽、延迟易于确定的特点,采用一种双环结构解决片内多处理器的局部cache一致性问题。本专利技术的技术方案是其总体逻辑结构包括多个处理器核CPU、cache、存储器接口单元MIU,其cache分为一级指令cache、一级数据cache、二级cache,在各一级数据cache之间设计了一个转发总线和一个双环结构,同时增加专门的逻辑控制电路扩展了一级cache控制器的功能。CPU分别通过单独的总线与一级指令cache和一级数据cache相连接,它是处理的核心部件,通过一级指令和数据cache获取指令和数据,执行程序;一级cache采用指令与数据相分离的哈佛结构,一级cache仅被它对应的CPU访问,CPU和它的一级cache构成一个处理节点;一级指令cache和数据cache的查找、替换、写回操作通过cache控制器控制完成。各个处理节点的一级cache通过共同的总线与二级cache连接,该总线是处理节点向二级cache读取指令,与二级cache进行数据交换的通路。二级cache是混合结构,同时存储指令和数据,被所有处理节点共享使用,二级cache通过总线和存储接口单元相连;存储器接口单元MIU实现与片外主存储系统的数据交换。在各一级数据cache之间设计一个转发总线,连接在各个局部一级数据cache上,用来实现局部cache一致性操作中的数据传送;转发总线包括以下几个部分源id——发送数据的线程逻辑id,其位数由节点的个数以2为底取对数决定,目的id——接受数据的线程逻辑id,位数与源id相同,地址域——要传送的数据的地址,根据系统的寻址空间确定,数据域——传送的数据,宽度由系统的字长决定,使能、确认和忙闲信号各1位——用于传递时的控制,同时设计了一个转发仲裁逻辑解决访问冲突。在片内各一级数据cache之间设计一个双环结构,它由连接在一级数据cache之间的两个相向传播的单向环形消息通路构成,用于传递各个节点的数据访问信息。访问的信息包括数据的地址和访问者的逻辑标识id,以消息形式在该结构上传播,每个时钟周期前进一个节点,直至被接收或回收,根据这些信息对本节点拥有的新数据进行转发、并通过CPU执行补偿代码或重新运行该线程解决本地节点的超前访问,解决处理器间的cache一致性,辅助多处理器系统高效并发运行;处理节点通过环形结构串联起来,每个处理节点运行一个线程,各个线程之间也存在逻辑关系,按照先后依次运行在环上的每个处理节点,处理节点的排列和线程的分布形成一个顺序的对应关系;同时在处理节点一级cache控制器中增加专门的逻辑控制电路,使得该控制器除了完成CPU对cache进行指令和数据访问中的失效、写回和替换的处理功能外,还通过双环结构发布自身所属处理节点对于数据的访问信息,并获取和传播其它节点对于数据的访问情况,并借助转发总线完成对局部cache一致性的维护。信息发布和新数据转发及处理节点的运行并行完成或者被访问公共存储器——二级cache的延迟所掩盖,从而达到提高整个芯片性能的目的。目前国内外尚无采用这种方法解决片内多处理器局部cache一致性的报道。本专利技术定义了六个名词逻辑标识id、双环结构、Load消息和Store消息、转发总线、cache标志位、主处理节点,它们的定义是(1)逻辑标识id本专利技术中逻辑标识id用于指明线程的逻辑顺序,每个处理节点执行一个线程,在系统的运行过程中,线程按照逻辑顺序依次运行在由双环结构串联起来的各个节点。(2)双环结构本专利技术中用于交换对共享数据访问信息的两个相向传播的单向环形结构,即L-ring和S-ring,分别用来传递Load和Store消息,访问信息以消息形式在该结构上传播,每个时钟周期前进一个节点。(3)Load消息和Store消息分别含有对于cache中数据的读取和存储情况的消息,通过双环结构进行传送,Load消息通过L-ring,Store消息通过S-ring。(4)转发总线位于各个处理节点一级数据cache之间,用于完成不同处理节点的一级数据cache之间共享数据的传送。(5)cache标志位一级数据cache中的数据结构,标识其中以数据块或者以块中的字为单位的数据状态信息。(6)主处理节点运行逻辑顺序最前的线程的处理节点,其逻辑标识id也最小。本专利技术设计的load和Store两种消息,其消息结构中都拥有的部分是Th.id用于传递消息发起者的线本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:张春元鲁建壮王志英戴葵沈立伍楠李礼赵学秘岳虹
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1