专利名称:一种多核处理器cas/swap原子操作实现方法
技术领域:
本发明主要涉及到多核处理器体系结构的设计领域,特指一种适用于多核处理器。
背景技术:
多核微处理器为具有较强继承性的同构集成,即集成少数几个成熟的、结构相同的通用处理器核心。例如IBM Power7集成了 8个处理器核心;Intel在2010年推出的Nehalem处理器集成了 8个处理器核心;Intel Tukwila处理器则采用4核结构;AMD Opteron Magny-Cours微处理器集成了 12个处理器核心。这些处理器芯片上均集成了多级Cache和存储控制器,见下表I所示。表I
权利要求
1.一种多核处理器CAS/SWAP原子操作实现方法,其特征在于,步骤为 (1)最外层私有CacheLLPC接收到对称处理核SPC的CAS/SWAP原子操作请求后 若Cache命中,且原子操作满足数据交换条件,向目录控制器D⑶发送LLPC AtomicUpdate Request请求,该请求中携带交换的数据,置Cache块状态为锁定态A ;所述Cache块处于锁定态A时,表示该Cache块被占用或处于中间状态,不能被替换; 若Cache失效,则向目录控制器DCU发送LLPC Atomic Read Shared Request请求,需要分配Cache块,且置Cache块为锁定态A ; (2)目录控制器D⑶处理最外层私有CacheLLPC与原子请求操作相关的请求 如果目录控制器D⑶对应位向量处于忙状态,则根据请求类型LLPC Atomic ReadShared Request和LLPC Atomic Update Request分别返回DCU Atomic Read Shared NRSP和 DCU Atomic Update NRSP 响应给源请求 LLPC ; 若目录控制器D⑶对应位向量处于不忙状态,且请求是LLPC Atomic Read SharedRequest,目录控制器D⑶从LLPC数据副本和memory数据副本中选取最新副本,向请求源返回DCU Atomic Read Shared RSP响应,并置对应位向量; 若目录控制器DQJ对应位向量处于不忙状态,且请求是LLPC Atomic Update Request,目录控制器D⑶向各个LLPC副本发送D⑶Atomic Update Snp监听请求,同时还需要更新Memory 副本; (3)最外层私有CacheLLPC收到目录控制器D⑶的更新监听请求后 最外层私有Cache LLPC收到目录控制器D⑶的D⑶Atomic Update Snp监听请求后,用监听报文中的数据更新Cache块数据,然后向源目录控制器D⑶发送LLPC AtomicUpdate Snp Ack更新完成应答; (4)目录控制器D⑶收到最外层私有CacheLLPC的更新完成应答后 等待所有副本的LLPC的LLPC Atomic Update Snp Ack更新完成应答;所有副本的更新完成时,产生完成D⑶A tomic Update Cmpl Rsp响应给源请求LLPC ; (5)最外层私有CacheLLPC收到目录控制器D⑶的响应后 若最外层私有Cache LLPC接收到目录控制器DCU产生的DCU Atomic Read SharedNRSP 和 DCU Atomic Update NRSP 响应,重发原请求; 若最外层私有Cache LLPC接收到目录控制器DCU产生的DCU Atomic Read Shared RSP响应,重新处理CAS/SWAP原子操作请求; 若最外层私有Cache LLPC接收到目录控制器D⑶产生的D⑶Atomic Update CmplRsp响应,完成数据交换操作,置Cache块状态为共享态S,并向目录控制器D⑶发送LLPCAtomic Update Cmpl Rsp ACK ;所述Cache块处于共享态S时,表不该Cache数据有多个副本; (6)目录控制器DCU 处理 LLPC Atomic Update Cmpl Rsp ACK 目录控制器D⑶接收到LLPC Atomic Update Cmpl Rsp ACK后,清空对应位向量的状态位。
2.根据权利要求I所述的多核处理器CAS/SWAP原子操作实现方法,其特征在于,所述目录控制器D⑶记录加载到最外层私有Cache LLPC中的所有Cache块的情况;每个进入最外层私有Cache LLPC的数据副本对应一个位向量,该位向量中的每一位对应数据块的一个或多个LLPC副本。
3.根据权利要求I或2所述的多核处理器CAS/SWAP原子操作实现方法,其特征在于,所述多核处理器的结构包括多个对称处理核SPC、每个对称处理核SPC上均有的最外层私有Cache LLPC,目录控制器D⑶以及网络NOC,所述对称处理核SPC用于发送CAS/SWAP原子操作请求到最外层私有Cache LLPC,最外层私有Cache LLPC和目录控制器D⑶将会协同完成Cache —致性协议;所述最外层私有Cache LLPC负责加载数据并处理原子操作请求,所述目录控制器DCU负责记录加载到各个最外层私有Cache LLPC的所有Cache块的信息,并控制对LLC/memory的访问;所述网络NOC负责最外层私有Cache LLPC和目录控制器D⑶之间的通信。
全文摘要
一种多核处理器CAS/SWAP原子操作实现方法,其步骤为(1)最外层私有CacheLLPC接收到对称处理核SPC的CAS/SWAP原子操作请求;(2)目录控制器DCU处理最外层私有CacheLLPC与原子请求操作相关的请求;(3)最外层私有CacheLLPC收到目录控制器DCU的更新监听请求后,用监听报文中的数据更新Cache块数据,向源目录控制器DCU发送更新完成应答;(4)目录控制器DCU收到最外层私有CacheLLPC的更新完成应答后,产生完成响应给源请求LLPC;(5)最外层私有CacheLLPC收到目录控制器DCU的响应后进行处理;(6)目录控制器DCU处理LLPCAtomicUpdateCmplRspACK。本发明能够避免产生活锁、减少原子操作的通信量、提高多核处理器原子操作可扩展性。
文档编号G06F15/167GK102880584SQ20121032280
公开日2013年1月16日 申请日期2012年9月4日 优先权日2012年9月4日
发明者邓让钰, 衣晓飞, 李永进, 周宏伟, 晏小波, 张英, 窦强, 曾坤, 谢伦国, 马卓 申请人:中国人民解放军国防科学技术大学