修思文,黄 凯,余 慜,谢天艺,葛海通,严晓浪
(1.浙江大学 超大规模集成电路研究所,浙江 杭州310027;2.杭州中天微系统有限公司,浙江 杭州310027)
随着性能和功耗需求的不断增长,多核处理器系统已被业界广泛使用.其中,基于对称式共享存储器的多核处理器架构具有较低的通信延迟、易懂的编程模型、高效的代码和数据共享等特点因而备受欢迎,也最为常用[1].由于共享数据的存在,可能出现一个数据的多个版本同时存在于共享存储器和多个处理器的高速缓存(cache)中的情况.如果此时有多于一个的处理器对该数据进行写操作,则可能出现数据不一致的问题,导致程序执行发生错误.缓存一致性协议是一种用于保证多核处理器系统各处理器缓存中数据一致的机制,可由软件或硬件方式来实现[2].采用硬件方式维护一致性非常方便高效而且对软件透明,因此被广泛采用[3].其中,基于监听式的写无效协议具有对互连带宽占用小、硬件实现简单、资源占用较少等优点,被大多数多核处理器所采用[4].
写无效协议和处理器所采用的缓存的类型相关,如更新内存的方式是写回(write back)还是写透(write through);写缺失时的策略是写分配(write allocate)还是非写分配(no-write allocate).一些面向特殊应用的多核处理器会经常处理一些有大量数据重用的、输入和输出的数据流地址不相关的并行化应用(如图像处理等),适合采用基于写回、非写分配的缓存[5],避免不必要的缓存分配,减小对存储器带宽的……