基于集中式目录的嵌入式多核缓存一致性方法

文档序号:6482502阅读:231来源:国知局
专利名称:基于集中式目录的嵌入式多核缓存一致性方法
技术领域
本发明涉及多核处理器体系领域,尤其涉及一种基于集中式目录的嵌入式多核缓 存一致性方法。
背景技术
未来的微处理器芯片结构越来越强调结构的层次化、功能部件的模块化和分布 化,让每个功能部件都相对地简单,部件内部尽可能保持连线的局部性。在此情况下,更高 并行度的片上多核结构应运而生。片上多核处理器CMP (Chip Multi-Processor)是在20 世纪90年代出现的一种体系结构设计,最初是由美国斯坦福大学的研究人员提出,其思想 是在单个芯片上利用丰富的晶体管资源集成多个处理器核,通过多核并行执行的方式开发 指令级、线程级等各个层次并行度来提高性能。CMP结构是利用海量集成度构造新型高性能处理器的重要探索之一,以其良好的 可扩展性、可重用性、低功耗和容忍线延迟等优点被业界广泛看好和接受,已经成为目前高 性能微处理器体系结构的发展趋势。进入21世纪后,主要微处理器制造厂商陆续开发基于 CMP 的多核 CPU,,如 IBM 的 Power6[12]、Sun 的 OpenSparcTl [13]、Intel 的 Montecito [14] 等。针对特定领域的微处理器,如IBM与索尼、东芝合作设计,用于图形工作站和PS3游戏 机的Cell处理器[15],以及主要面向嵌入式领域的MIPS、ARM微处理器也推出了多核处理 器架构。存储层次向来是制约处理器性能的关键因素,运算性能的发挥在极大程度依赖于 访存子系统对运算数据的高效供应。在多核CPU环境中,多个处理器同时运行的多线程竞 争单芯片有限的缓存、带宽等存储资源,造成访存冲突加剧,传统的访存瓶颈将变得更加突 出,存储系统是决定多核处理器性能的关键因素之一。在多核CPU中,每个处理器都有自己私有的缓存,并在二级缓存、三级缓存或者主 存级别进行共享。然而,由于同一数据块在多个处理器私有缓存中的副本不一致,在改善访 存性能的同时会产生缓存一致性问题。对于高速缓存一致性,如果一个存储器系统满足以 下三个条件,则认为该存储器系统是一致的1)对于处理器P对X进行写操作之后的读请求,如果在P的写操作之后没有其它 处理器对x进行写操作,那么返回的是处理器P写的值。2)在处理器Q对x进行写操作后,处理器P对x进行读请求,如果这两个操作之间 有足够的间隔,且两者之间没有其它写操作,那么返回给P的是Q所写的值。3)对同一地址的写操作是串行执行的,也就是说,任何两个处理器对同一个地址 的两个写操作在所有处理器看来都有相同的顺序。从硬件角度来看,多核CPU引入高速缓存一致性协议维护存储器系统的一致性。 在支持高速缓存一致性的多核CPU中,共享数据可以迁入本地高速缓存进行访问,从而有 效减少了访问远程共享数据的延迟,进而减少对共享缓存的带宽要求。同时由于本地缓存 为读取的共享数据作了备份,所以一致性的高速缓存访问这些副本时可以减少访问延迟和读取共享数据时的竞争现象。根据写操作的处理方式不同,缓存一致性协议可分为写无效(Writelnvalidate) 与写更新(Write Update)两类。实现缓存一致性协议的关键在于跟踪所有共享数据块的 状态。目前广泛使用的有两类协议,它们采用不同的技术跟踪共享数据。一是目录式,把物 理存储块的有效状态存放在一个地点,称之为目录。二是监听式,每个含有物理存储器中数 据块副本的高速缓存还要保留该数据块有效状态的副本,但是不集中地保存状态。高速缓 存通常放在共享存储总线上,所有的高速缓存控制器对总线进行监听,来确定它们是否含 有总线上请求的数据块的副本。

发明内容
本发明的目的是在于提出多核处理器环境下基于集中式目录的缓存一致性方法。本发明解决其技术问题采用的技术方案如下各处理器对存储层次的访问过程是首先查找处理器核内部的数据缓存和指令缓 存,查看其中是否存在所要访问的数据,数据缓存根据相应数据缓存块的状态向目录控制 器发出请求,目录控制器根据目录项的内容控制数据缓存和共享缓存的数据通信。如果发 现要访问的数据仍然不在共享缓存中,启动共享缓存对主存的访问。不管在哪一级存储层 次中找到了要寻址的单元,对目标访问以后,都要设置和修改维护数据一致性的标识位以 便在后面的处理过程中根据恰当的标识进行修改或读取数据。1)缓存块的状态划分在目录一致性协议中,每个数据缓存控制器接收两方面输入处理器发出的读写 请求和目录控制器发来的消息。作为这些输入的响应,高速缓存控制器可能根据相应高速 缓存块的当前状态及状态转换图来更新该块的状态,并且也可能要执行一些动作。比如,作 为对处理器发出的读请求的响应,高速缓存控制器可能要产生一个发给目录控制器的消息 来获得数据,并返回给处理器。本发明中数据缓存块的状态分为三种,即无效状态、有效状态和修正状态。若某个 数据缓存块处于无效状态,则本地处理器对该块的读请求或写请求都不命中。若某个数据 缓存块处于有效状态,表明可能还有其他的处理器持有该块的有效副本。若某个缓存块处 于修正状态,表明该块是对应共享缓存块的唯一有效副本,本地处理器对该块的读请求或 写请求均在数据缓存命中。2)目录项的状态划分本发明采用全映射目录,每个共享缓存块有三种目录状态,即无效状态、有效状态 和修正状态。若某个目录处于无效状态,表明共享缓存没有该缓存块的有效副本。若某个 目录处于有效状态,表明一个或多个处理器的数据缓存具有该缓存块的副本,并且共享缓 存的数据也是最新的(与所有数据缓存中的副本一致),只要处理器的数据缓存中含有该 块的副本,共享者集合中的对应位就置1。若某个目录处于专有状态,表明只有一个处理器 的数据缓存拥有该缓存块的副本并且对该块执行过写操作,因此该副本与共享缓存中的缓 存块是不一致的,由共享者集合来指示拥有该块副本的处理器。本发明与背景技术相比,具有的有益效果是本方法适用于嵌入式多核体系处理器,把写回法和写分配两种策略的优点相结
5合,实现了基于集中式目录的缓存一致性。相比于监听协议,目录协议采用定向消息发送降 低了广播机制给带宽的压力,避免了对无关处理器正常运行的干扰,具有较好的可扩展性。


图1是多核CPU的存储层次RTL模型图;它包含四个处理器核,通过总线与共享缓 存互联,各个处理器核含私有的数据缓存和指令缓存,并且通过目录控制器与共享缓存进 行通讯。图2是数据缓存块的状态转换图;图3是目录状态转换图;状态转换图中的字母意义是CBS代表目录控制器通知数据缓存把请求数据传到共享缓存,并把请求数据块的 状态改为有效。RDD代表目录控制器通知数据缓存接收共享缓存的数据,并把缓存块状态改为有 效RDM代表目录控制器通知数据缓存接收共享缓存的数据,并把缓存块状态改为修 正CBI代表目录控制器通知数据缓存把数据写到共享缓存并置该块为无效INV代表目录控制器通知数据缓存把数据所在块置无效,不写回STM代表目录控制器通知数据缓存把数据所在块状态由有效改为修正
ADS代表目录控制器通知数据缓存发出的回应消息RDMS代表数据缓存向目录控制器发读缺失WTHT代表数据缓存向目录控制器发写命中消息WTMS代表数据缓存向目录控制器发写缺失信号,AKD代表数据缓存向目录控制器发出的响应RDS代表目录控制器通知共享缓存接收数据缓存的数据WTS代表目录控制器通知共享缓存向数据缓存发送数据WTM代表目录控制器通知共享缓存向主存写回数据RDM代表目录控制器通知共享缓存读入主存的数据AKS代表共享缓存向目录控制器发回响应RDP代表处理器向数据缓存发出读数请求RDPR代表数据缓存把数据发回处理器并发回应WTP代表处理器向数据缓存发出写操作请求WTPR代表数据缓存向处理器发写操作请求回应RDSM代表共享缓存向主存发读操作请求WTSM代表共享缓存向主存发写操作请求AKM代表主存向共享缓存发回响应图4是总体流程图。
具体实施方式
本发明的具体实施方式
为1)当处理器向数据缓存发出读数请求RDP,若命中则数据缓存把数据发回处理器 并发回应RDH 和修改LRU位,否则向目录控制器发送读缺失请求RDMS,目录控制器收到读 缺失请求后查找数据块对应的目录,根据不同状态采取以下操作I.如果目录控制器中访问块对应的目录状态为有效,目录控制器向共享缓存发出 WTS请求,收到响应后向数据缓存发RDD请求,并把请求读的处理器加入共享者集合。II.如果目录控制器中访问块对应的目录状态为修正,则目录控制器向共享者集 合中的处理器发出CBS请求,目录项转入忙状态,收到共享者集合中的处理器响应后,向共 享缓存发出RDS请求,收到响应后把请求读的处理器加入共享者集合,同时设置访问块的 目录状态为有效。III.如果目录控制器中访问块对应的目录状态是无效,目录控制器将检查访问块 同一组中的待替换块的目录状态。若为修正状态,目录控制器向待替换块所在的数据缓存 发CBI请求,收到响应后向共享缓存发RDS请求并置该块修改位为1,同时把该块的目录状 态改为无效。若为有效状态,目录控制器向待替换块所在的处理器发INV命令,同时把该块 的目录状态改为无效。若为无效状态,目录控制器检查修改位的状态,如为1则向共享缓存 发WTM命令,收到回应后把修改位复位,向共享缓存发RDM命令通知其从主存读入访问块, 把访问块的标识写入替换块,完成替换并把访问块的目录状态改为有效。2)当处理器向数据缓存发出写操作请求WTP时,数据缓存检查数据所在缓存块的 状态。若为修正则向处理器发WIPR回应,接收处理器写过来的数据。若为有效,数据缓存向 目录控制器发WTHT消息,目录控制器检查该块的共享者集合,若只有访问者共享此块则向 其发WTM命令并把该块的目录状态改为修正,若有多个处理器共享该缓存块则向非访问者 发INV命令并把其从共享者集合中清除。若为无效,数据缓存向目录控制器发WTMS信号, 目录控制器查找与数据块的目录状态,作如下不同操作I.如果目录控制器中访问块对应的目录状态是有效,目录控制器向共享者集合中 的非访问者发INV信号并把其从共享者集合中清除,同时向共享缓存发WTS命令。当共享 者集合为全0时,目录控制器向共享缓存发WTS命令,收到回应后向数据缓存发RDM命令, 同时把访问者加入共享者集合中并把该块的目录状态改为修正。II.如果目录控制器中访问块对应的目录状态是修正,如果是当前访问者在访问 该块,则目录控制器不动作,否则目录控制器向该缓存块的所有者发CBI命令,向共享缓存 发RDS命令,收到回应后把共享者集合清0,置该块修改位为1并把该块的目录状态改为有 效。III.如果目录控制器中访问块对应的目录状态是无效,目录控制器将检查访问块 同一组中的待替换块的目录状态。若为修正状态,目录控制器向待替换块所在的数据缓存 发CBI请求,收到响应后向共享缓存发RDS请求并置该块修改位为1,同时把该块的目录状 态改为无效。若为有效状态,目录控制器向待替换块所在的处理器发INV命令,同时把该块 的目录状态改为无效。若为无效状态,目录控制器检查修改位的状态,如为1则向共享缓存 发WTM命令,收到回应后把修改位复位,向共享缓存发RDM命令通知其 主存读入访问块, 把访问块的标识写入替换块,完成替换并把访问块的目录状态改为有效。
权利要求
一种基于集中式目录的嵌入式多核缓存一致性方法,其特征在于1)缓存块的状态划分在目录一致性协议中,每个数据缓存控制器接收两方面输入处理器发出的读写请求和目录控制器发来的消息。作为这些输入的响应,高速缓存控制器可能根据相应高速缓存块的当前状态及状态转换图来更新该块的状态,并且也可能要执行一些动作。比如,作为对处理器发出的读请求的响应,高速缓存控制器可能要产生一个发给目录控制器的消息来获得数据,并返回给处理器。本发明中数据缓存块的状态分为三种,即无效状态、有效状态和修正状态。若某个数据缓存块处于无效状态,则本地处理器对该块的读请求或写请求都不命中。若某个数据缓存块处于有效状态,表明可能还有其他的处理器持有该块的有效副本。若某个缓存块处于修正状态,表明该块是对应共享缓存块的唯一有效副本,本地处理器对该块的读请求或写请求均在数据缓存命中。2)目录项的状态划分本发明采用全映射目录,每个共享缓存块有三种目录状态,即无效状态、有效状态和修正状态。若某个目录处于无效状态,表明共享缓存没有该缓存块的有效副本。若某个目录处于有效状态,表明一个或多个处理器的数据缓存具有该缓存块的副本,并且共享缓存的数据也是最新的(与所有数据缓存中的副本一致),只要处理器的数据缓存中含有该块的副本,共享者集合中的对应位就置1。若某个目录处于专有状态,表明只有一个处理器的数据缓存拥有该缓存块的副本并且对该块执行过写操作,因此该副本与共享缓存中的缓存块是不一致的,由共享者集合来指示拥有该块副本的处理器。处理器核访问数据缓存的缓存块引起缓存块和目录项在三个状态间的变化,触发状态变换的事件分为读操作和写操作1)当处理器向数据缓存发出读数请求RDP,若命中则数据缓存把数据发回处理器并发回应RDPR和修改LRU位,否则向目录控制器发送读缺失请求RDMS,目录控制器收到读缺失请求后查找数据块对应的目录,根据不同状态采取以下操作I.如果目录控制器中访问块对应的目录状态为有效,目录控制器向共享缓存发出WTS请求,收到响应后向数据缓存发RDD请求,并把请求读的处理器加入共享者集合。II.如果目录控制器中访问块对应的目录状态为修正,则目录控制器向共享者集合中的处理器发出CBS请求,目录项转入忙状态,收到共享者集合中的处理器响应后,向共享缓存发出RDS请求,收到响应后把请求读的处理器加入共享者集合,同时设置访问块的目录状态为有效。III.如果目录控制器中访问块对应的目录状态是无效,目录控制器将检查访问块同一组中的待替换块的目录状态。2)当处理器向数据缓存发出写操作请求WTP时,数据缓存检查数据所在缓存块的状态。若为修正则向处理器发WTPR回应,接收处理器写过来的数据。若为有效,数据缓存向目录控制器发WTHT消息,目录控制器检查该块的共享者集合,若只有访问者共享此块则向其发WTM命令并把该块的目录状态改为修正,若有多个处理器共享该缓存块则向非访问者发INV命令并把其从共享者集合中清除。若为无效,数据缓存向目录控制器发WTMS信号,目录控制器查找与数据块的目录状态,作如下不同操作I.如果目录控制器中访问块对应的目录状态是有效,目录控制器向共享者集合中的非访问者发INV信号并把其从共享者集合中清除,同时向共享缓存发WTS命令。当共享者集合为全0时,目录控制器向共享缓存发WTS命令,收到回应后向数据缓存发RDM命令,同时把访问者加入共享者集合中并把该块的目录状态改为修正。II.如果目录控制器中访问块对应的目录状态是修正,如果是当前访问者在访问该块,则目录控制器不动作,否则目录控制器向该缓存块的所有者发CBI命令,向共享缓存发RDS命令,收到回应后把共享者集合清0,置该块修改位为1并把该块的目录状态改为有效。III.如果目录控制器中访问块对应的目录状态是无效,目录控制器将检查访问块同一组中的待替换块的目录状态。若为修正状态,目录控制器向待替换块所在的数据缓存发CBI请求,收到响应后向共享缓存发RDS请求并置该块修改位为1,同时把该块的目录状态改为无效。若为有效状态,目录控制器向待替换块所在的处理器发INV命令,同时把该块的目录状态改为无效。若为无效状态,目录控制器检查修改位的状态,如为1则向共享缓存发WTM命令,收到回应后把修改位复位,向共享缓存发RDM命令通知其从主存读入访问块,把访问块的标识写入替换块,完成替换并把访问块的目录状态改为有效。
全文摘要
本发明公开了一种基于集中式目录的嵌入式多核缓存一致性方法。本发明根据硬件实现的细节内容优化了部分状态转换,用写回法和写分配两种策略实现了基于集中式目录的缓存一致性,其主要功能是实现多个处理器核在二级缓存进行共享并保证同一数据块在多个处理器核私有缓存中的副本一致。本发明采用定向消息发送降低了广播机制给带宽的压力,避免了对无关处理器正常运行的干扰,具有较好的可扩展性,适用于嵌入式多核体系处理器。
文档编号G06F12/08GK101859281SQ20091004919
公开日2010年10月13日 申请日期2009年4月13日 优先权日2009年4月13日
发明者廖鑫 申请人:廖鑫
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1