国家知识产权局专利局专利审查协作江苏中心,江苏省苏州市,215000
摘要 为了进一步减小多核处理器中处理器速度和主存储器速度之间的差距,多核处理器中的多级高速缓存(Cache)已成为多核处理器领域的一个研究热点。本文通过从Cache的一致性协议、Cache的共享、以及高速缓存线的缺失替换等三个角度,对多核处理器中的多级高速缓存的历年申请趋势、发展脉络进行了分析,为产品的后续研发提供参考。
关键词 多核处理器;多级Cache;一致性;Cache共享;高速缓存线
单芯片处理器(Chip Multi-Processor,CMP),又称多核处理器[1][2],是指在单个芯片上利用丰富的晶体管资源集成多个处理器核,通过多核并行执行的方式开发指令级、线程级等各个层次并行度来提高处理器性能。而高速缓冲存储器(Cache)技术[3][4],主要是为了解决高速中央处理器单元(CPU)和低速动态随机存储器(DRAM)内存之间速度匹配的问题,是提高系统性能、降低系统成本而采用的一项技术。随着多核处理器的问世,多核处理器上的多级Cache越来越受到研究人员的关注。
1多核处理器多级Cache的技术专利实证分析
专利信息检索是本文研究的基础。首先通过阅读相关专利和非专利文献,结合多核处理器中的多级Cache技术的特点,筛选出本文所需的专利检索的关键词,主要选取的中英文关键词如表1-1。检索后得到的中英文专利申请共113篇文献。
表1-1 选取的中英文关键词
中文关键词多核,多处理器,高速缓存,高缓,快取,高速缓冲
英文关键词CMP,multi-core,cache,level
针对多核处理器多级Cache的技术专利申请的研究,可主要分为三个技术分支:多核处理器多级Cache的共享问题、Cache一致性协议的维护、以及Cache的缺失替换准则。分析得到这三个主要的技术分支后,本文对检索得到的113篇国内外关于多核处理器多级Cache技术的专利申请作了分类。
2多核处理器中多级Cache专利的主要分类与分析
2.1 共享Cache技术
在多核处理器系统中,处理器之间通过对主存储器的数据读写来实现对二级Cache的共享。共享Cache的优势在于数据可以存储在二级Cache中,且每个处理器内核均可以访问该二级Cache,这样使得高速缓存资源得到了更充分的利用。
多核处理器中的多级Cache共享技术从2004年底开始兴起,研究的热点主要包括:共享Cache的动态调整,共享L2级Cache的非一致性存取延迟以及L1级Cache的共享问题。
涉及共享Cache的动态调整技术主要从2005年年底开始发展。专利申请CN1848095A中,将高速缓存设置为一个静态部分和一个动态共享部分,并且为每一个高速缓存分配一个计算资源可操作,如果在一定时间内某一个高速缓存完成存取操作的次数并未超过一定次数,则将分配到该资源的静态部分重新分配给动态共享部分;而在专利申请CN101571843A为每个核分配一个私有高速缓存部分和在多个核间共享的共享高速缓存,其针对高速缓存中的每条高速缓存线设置一计数器,用以计数多个核对每一个高速缓存线的访问,根据该计数结果在私有高速缓存部分和共享高速缓存部分之间动态调整高速缓存线;专利申请US2010/0095300A中基于高速缓存块的空间和时间局部性把高速缓存块划分到不同的子高速缓存中以动态调整共享Cache;而在专利申请CN101894048A则利用应用程序的当前phase搜集各种Cache划分情况下的性能数据,并进而根据该phase分析结果以及系统状态确定下一时间片的Cache划分。
针对共享L2Cache的非一致性存取延迟的相关问题,主要有以下代表性专利:申请日为2006年1月19日的CN1855070A,其在多核心NUCA存储系统的L2、L3级高速缓存中引入了L2/L3通信缓冲器,用于保留从L3级Cache到L2级Cache的进入数据的记录,这样当处理器核心需要来自共享L2的数据时,可以直接的指出哪个L2级Cache分区具有该数据进而快速的获取该数据;申请日为2006年12月30日的专利申请CN1991793A,其主要通过将数据分类为可能被再次使用的数据可存储于共享高速缓存器内,存储在最靠近该数据的核的共享高速缓存器的区域内,如果数据后续地由该核获取并使用,进而达到减小数据存取时间并降低功耗的目的;申请日为2011年11月25日的专利申请CN103136113A,其基于Markov链的随机事件模型,以任务独立执行时的共享Cache静态复用距离为输入,有效地预测应用程序的Cache空间占用率、失效率以及并发任务间发生cache访问冲突的效率,并进而减小访问时间。
从以上对涉及Cache共享技术的分析可以看出,在初步的基于静态共享L2级Cache技术的基础上,研究者以将关注点转移到了共享Cache的动态划分、以及基于统计模型的共享Cache的访问预测,从而提高处理器的访问效率以及访问时间。
2.2 Cache一致性问题
缓存(Cache)一致性协议的基本思想是当一个处理器核对一地址发生写时,会发送无效请求(invalidate)给所有含有相同缓存(Cache)的处理器核,将对应其他处理器核上的对应缓存块(又称缓存行,Cache Line)的状态位置为无效(invalid)。之后,当发生访问该无效的缓存块的访存请求时,需要从上一级缓存或主存取回最新的值,对应指令才能继续执行。
2002年,英特尔公司的申请US2004/0039880A1提出了一种用于多处理器CMP的Cache一致性的方法,该方法在L1级Cache中将多个高速缓存线维持在两个不同的修改状态中,其中,第一修改状态表明修改的高速缓存线的最近备份,而第二修改状态则表明修改的高速缓存线的过时备份,其将内部监听总线耦合到每个核内的专有高速缓存和共享高速缓存,以便实现各个高速缓存间的数据交换。这可以看做是基于监听技术的保持高速缓存一致性的雏形。基于监听技术的代表性专利主要有:申请日为2008年6月20日的PCT申请CN101802798A,其设置一高速缓存相干性管理器单元(500),通过接收与数据访问请求和第一存储器位置相关联的干预消息;确定干预消息是否与第一数据访问请求相对应;若否,则向高速缓存相干性管理器发送包括取消指示符的干预消息响应进而指示其数据无效;申请日为2012年4月1日的专利申请CN102662885A,其设置一与二级缓存监控单元、与监听接口单元间相互连接的共享数据缓存状态机单元,当对共享数据进行读访问时通过该共享数据缓存状态机单元直接从其它处理器的L2级缓存读取数据,进而减小了访问主存开销;申请日为2013年3月11日的美国申请US2013/0254488A1,其在主存和各核间的私有高速缓存间设置一全局高速缓存,用于存储各高速缓存线,当该高速缓存线为私有时,执行写回操作;而当该高速缓存线为共享缓存线时,则执行直写操作,进而指示数据是否有效。
所谓目录式技术,就是将物理存储块的有效状态集中式的存放在一个称之为“目录”的地点。由于目录一致性协议与处理器、共享Cache和片上网络紧密相关,一定程度上增加了硬件设计难度。基于目录式一致性协议的代表性专利有:申请日为2009年11月24日的专利申请CN101706755A,其在多核处理器所有处理器核心共有集中式一致性目录,该集中式一致性目录用于在一级高速缓存、二级高速缓存和存储器中实现一致性策略;若一级Cache、二级Cache均未命中,则查找集中式一致性目录,如果在集中式一致性目录中发现其它核上存在该数据,则将请求经过路由发送到存在该数据的处理器的缺失队列中;申请日为2010年8月20日的专利申请US2012/0047333A1,具有监听广播协议的系统的归属代理中接收来自第一高速缓存代理的读取请求,读取请求针对存储在与归属代理相关联的存储器位置处的信息;确定与存储器位置相关联的目录条目是否指示信息不存在于系统的远程高速缓存代理中。
从以上对涉及Cache一致性技术的分析可以看出,近年来,研究者以将关注点转移到了维持Cache一致性所带了的硬件代价、系统延时以及高带宽要求。
2.3 Cache的缺失替换
高速缓存一般具有用于确定哪一个现有的高速缓存线应被驱逐以为该新的高速缓存线留出空间的置换方法。
关于Cache缺失替换的代表性专利主要有:申请日为2005年2月8日的专利申请CN1677369A,其为至少一个高速缓存行指定一种状态(202),状态可以是修改、专有、共享、或无效;为在多级高速缓冲存储器中共享末级高速缓存的每个核心指定一个核心二进制位;为与要替换高速缓存行相关的高速缓存行的状态指定一个用于高速缓存间通信量的相对成本函数;至少部分根据成本函数而选择要替换的高速缓存行;申请日为2005年9月13日的专利申请CN101023414A,其提出一种提前运行牺牲准则以减小高速缓存不需要的置换行为的方法,其在高速缓存设置一控制逻辑,组控制逻辑,用于响应于第一未命中来标识第一置换候选,发出消息以在第一未命中后在较低级的高速缓存中将第一置换候选的高速缓存线无效。高速缓存未命中可启动末级高速缓存中的当前置换候选的驱逐;申请日为2008年12月15日的专利申请US2008/0335381A1在高速缓存中设置了一系列采样高速缓存线集,基于该高速缓存线集的命中率进而挑选采样高速缓存线集中的牺牲高速缓存线;而申请日为2010年12月14日的专利申请US2011/0145506A1则为每一个高速缓存行分配一包括状态部分和权重部分的标签字段,其权重部分用于存储与数据的相对重要性对应的权重,权重基于数据最近使用的情况,并且根据该权重部分进一步选择牺牲高速缓存行。
可以看出,研究者的重点一直关注于高速缓存线牺牲准则的选择,近年来,该牺牲准则越来越关注于高速缓存线的时间利用特性。
3总结
撰写以上专利技术综述的过程中,通过对涉及多核处理器的多级Cache中涉及Cache共享、Cache一致性以及Cache的缺失替换的国内外专利进行收集、阅读和梳理,了解了该领域专利技术的发展脉络,掌握了国内外主要申请人的技术发展状况,为国内后续的处理器研究提供了指导和依据。
参考文献
[1]何军,王飙. 多核处理器的结构设计研究. 计算机工程, 2007,33(16): 208-210.
[2]郭超, 李坤, 王永炎等. 多核处理器环境下内存数据库索引性能分析. 计算机学报, 2010, 33(8): 1512-1522.
[3]所光, 杨学军. 面向多线程多道程序的加权共享Cache划分. 计算机学报, 2008, 31(11): 1938-1947.
[4]黄安文, 张民选. 多核处理器Cache一致性协议关键技术研究. 计算机工程与科学, 2009, 31(A1): 104-108.
论文作者:梁岩,陈沙沙
论文发表刊物:《科技新时代》2019年5期
论文发表时间:2019/7/23
标签:多核论文; 高速缓存论文; 处理器论文; 专利申请论文; 数据论文; 技术论文; 缓存论文; 《科技新时代》2019年5期论文;