CN102819420A - 基于命令取消的高速缓存流水线锁步并发执行方法 - Google Patents

基于命令取消的高速缓存流水线锁步并发执行方法 Download PDF

Info

Publication number
CN102819420A
CN102819420A CN2012102672926A CN201210267292A CN102819420A CN 102819420 A CN102819420 A CN 102819420A CN 2012102672926 A CN2012102672926 A CN 2012102672926A CN 201210267292 A CN201210267292 A CN 201210267292A CN 102819420 A CN102819420 A CN 102819420A
Authority
CN
China
Prior art keywords
message
speed cache
terminal high
coherent caching
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012102672926A
Other languages
English (en)
Other versions
CN102819420B (zh
Inventor
晏小波
李永进
邓让钰
衣晓飞
周宏伟
张英
窦强
曾坤
谢伦国
马卓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210267292.6A priority Critical patent/CN102819420B/zh
Publication of CN102819420A publication Critical patent/CN102819420A/zh
Application granted granted Critical
Publication of CN102819420B publication Critical patent/CN102819420B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种基于命令取消的高速缓存流水线锁步并发执行方法,其实施步骤如下:1)一致性引擎和末端高速缓存按照流水线约定节拍数目锁步并发执行,并分别接收来自一致性高速缓存的报文;2)一致性引擎判断报文是否命中一致性高速缓存,末端高速缓存判断报文是否命中末端高速缓存;3)一致性引擎判断是否需要访问末端高速缓存,如果需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令确认”信号,允许末端高速缓存访问片外存储器;如果不需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令取消”信号,阻止末端高速缓存访问片外存储器。本发明具有访存延时低、访存性能高的优点。

Description

基于命令取消的高速缓存流水线锁步并发执行方法
技术领域
本发明涉及面向微处理器中访存性能提升优化方法,具体涉及一种隐藏末端高速缓存(Last-Level Cache,缩写为LLC)的部分流水线的执行,降低对于确实需要访问末端高速缓存的访问延时、提高存储部件的性能的基于命令取消的高速缓存流水线锁步并发执行方法。
背景技术
处理器中的末端高速缓存可以进入一致性管理,如Intel的Nehalem处理器;此外也可以不用进入一致性管理。对于不进入一致性管理的末段高速缓存,如果它有多级高速缓存层次,而上一级的高速缓存如果进入一致性管理的话,则会需要一个一致性引擎用来维护上级高速缓存的一致性。
当前对于一致性引擎和末端高速缓存的执行机制有两种典型的做法:第一种做法可以称为顺序流水方案,其结构如图1所示,一致性引擎处理完上级高速缓存的请求报文后,根据流水线的处理结果决定是否需要访问末端高速缓存,如果需要则将报文发送读或写报文到末端高速缓存,如果不需要则请求不会发送到末端高速缓存;第二种做法可以称为并行流水方案,其结构如图2所示,上级一致性高速缓存的请求报文同时发给一致性处理引擎和末端高速缓存,一致性引擎根据流水线执行结果决定是否需要使用来自于末端高速缓存的数据,如果需要,则通知结果选择逻辑记录下地址,与此同时,末端高速缓存根据上级一致性高速缓存的请求报文决定是否写入内存或从内存读取数据返回给结果选择逻辑,结果选择逻辑根据记录下的地址信息决定采纳或者扔掉从末端高速缓存读回的数据。
顺序流水方案的缺点是末端高速缓存的流水线必须等到一致性引擎的流水线处理完后,才能启动,增加了访存通路上的延时;而并行流水方案中,末端高速缓存译码出来的访存请求可能是无效请求,其执行结果会被一致性引擎取消掉,从而白白浪费内存的访问带宽。
发明内容
本发明要解决的技术问题是提供一种访存延时低、访存性能高的基于命令取消的高速缓存流水线锁步并发执行方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于命令取消的高速缓存流水线锁步并发执行方法,实施步骤如下:
1)一致性引擎和末端高速缓存按照流水线约定节拍数目锁步并发执行,并分别通过互连网络接收来自一致性高速缓存的报文;
2)一致性引擎判断报文是否命中一致性高速缓存,末端高速缓存判断报文是否命中末端高速缓存;
3)一致性引擎根据所述报文的报文类型、一致性高速缓存的存储状态、末端高速缓存的命中状态来判断是否需要访问末端高速缓存,如果需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令确认”信号,允许末端高速缓存访问片外存储器;如果不需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令取消”信号,阻止末端高速缓存访问片外存储器。
作为本发明上述技术方案的进一步改进:
所述步骤3)中一致性引擎根据所述报文的报文类型、一致性高速缓存的存储状态来判断是否需要访问末端高速缓存的详细步骤包括:
A)首先判断报文的报文类型,所述报文类型包括WriteBackD报文、WriteBackC报文、EvictInd报文、ReadShared报文、ReadExclusive报文、Invalid报文、DmaRead报文、DmaWrite报文、ReadSharedSnpAck报文、ReadSharedSnpNAck报文、ReadInvalidSnpAck报文、ReadInvalidSnpNAck报文、InvalidSnpAck报文、InvalidSnpNAck报文,其中WriteBackD报文代表一致性高速缓存发起的脏数据写回操作,WriteBackC报文代表一致性高速缓存发起的干净数据写回操作、EvictInd报文代表一致性高速缓存发起的自作废指示命令、ReadShared报文代表一致性高速缓存发起的共享读命令、ReadExclusive报文代表一致性高速缓存发起的独占读命令、Invalid报文代表一致性高速缓存发起的作废其它一致性高速缓存中副本的命令、DmaRead报文代表Dma控制部件发起的读操作、DmaWrite报文代表Dma控制部件发起的写操作、ReadSharedSnpAck报文代表一致性高速缓存返回的共享读监听响应、ReadSharedSnpNAck报文代表一致性高速缓存返回的共享读监听失败响应、ReadInvalidSnpAck报文代表一致性高速缓存返回的作废读监听响应、ReadInvalidSnpNAck报文代表一致性高速缓存返回的作废读监听失败响应、InvalidSnpAck报文代表一致性高速缓存返回的作废监听响应、InvalidSnpNAck报文代表一致性高速缓存返回的作废监听失败响应;
B)针对不同报文类型判断报文是否需要访问末端高速缓存,
当报文类型为WriteBackD报文、WriteBackC报文、DmaWrite报文之一时,直接判定报文需要访问末端高速缓存;
当报文类型为EvictInd报文、Invalid报文、InvalidSnpAck报文、InvalidSnpNAck报文之一时,直接判定报文不需要访问末端高速缓存;
当报文类型为ReadShared报文、DmaRead报文之一时,一致性引擎在发出报文的一致性高速缓存以外的一致性高速缓存中查找匹配报文地址的数据,如果找到匹配的脏数据则取出所述脏数据返回给请求的一致性高速缓存,判定报文不需要访问末端高速缓存;如果找到匹配的干净数据且末端高速缓存不命中则取出所述干净数据返回给请求的一致性高速缓存,判定报文不需要访问末端高速缓存;否则判定报文需要访问末端高速缓存;
当报文类型为ReadExclusive报文时,一致性引擎在发出报文的一致性高速缓存以外的一致性高速缓存中查找匹配报文地址的数据,如果找到匹配的脏数据则取出所述脏数据返回给请求的一致性高速缓存,将找到的匹配数据作废并判定报文不需要访问末端高速缓存;如果找到匹配的干净数据且末端高速缓存不命中则取出所述干净数据返回给请求的一致性高速缓存,将找到的匹配数据作废并判定报文不需要访问末端高速缓存;否则判定报文需要访问末端高速缓存;
当报文类型为ReadSharedSnpAck报文、ReadInvalidSnpAck报文之一时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据为干净数据,则判定报文不需要访问末端高速缓存;如果数据为脏数据,则判定报文需要访问末端高速缓存;
当报文类型为ReadSharedSnpNAck报文、ReadInvalidSnpNAck报文之一时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据已经不再存在,则判定报文需要访问末端高速缓存;如果数据仍然存在,则向拥有方重发ReadSharedSnp报文并判定报文不需要访问末端高速缓存。
本发明具有下述优点:本发明的一致性引擎按照流水线约定节拍数目锁步判断报文是否在一致性高速缓存中发生命中,末端高速缓存按照流水线约定节拍数目锁步判断报文是否命中末端高速缓存,从而实现将一致性引擎部分流水线与非一致性末端高速缓存的部分流水线锁步并发执行,如果一致性引擎根据自己的状态计算出确实需要访问非一致性末端高速缓存,则非一致性末端高速缓存前面锁步执行的流水线延时得到了隐藏,否则一致性引擎将该命令取消掉以保证不会产生额外的内存访问,具有访存延时低、访存性能高的优点。
附图说明
图1为现有技术体系结构中顺序流水式高速缓存控制器的结构示意图。
图2为现有技术体系结构中并行流水式高速缓存控制器的结构示意图。
图3为应用本发明实施例的高速缓存控制器的结构示意图。
图4为本发明实施例基于命令取消的高速缓存流水线锁步并发执行方法的流程示意图。
图5为本实施例中一致性引擎和末端高速缓存接受报文类型的说明表格示意图。
具体实施方式
如图3所示,本实施例的高速缓存控制器中,一致性引擎和非一致性的末端高速缓存分别通过互连网络与一致性高速缓存0~一致性高速缓存n-1相连,末端高速缓存分别与一致性引擎、存储控制器及内存相连,从互连网络来的各种报文被一致性引擎和末端高速缓存同时接受后各自按照约定的节拍数目锁步执行译码、仲裁、计算命中等操作。
如图4所示,本实施例基于命令取消的高速缓存流水线锁步并发执行方法的实施步骤如下:
1)一致性引擎和末端高速缓存按照流水线约定节拍数目锁步并发执行,并分别通过互连网络接收来自一致性高速缓存的报文;
2)一致性引擎判断报文是否命中一致性高速缓存,末端高速缓存判断报文是否命中末端高速缓存;
3)一致性引擎根据报文的报文类型、一致性高速缓存的存储状态、末端高速缓存的命中状态来判断是否需要访问末端高速缓存,如果需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令确认”信号,允许末端高速缓存访问片外存储器;如果不需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令取消”信号,阻止末端高速缓存访问片外存储器。
本实施例中,末端高速缓存的流水线被分成两段:前端流水线和后端流水线。末端高速缓存的前端流水线与一致性引擎相连,前端流水线主要用于计算请求地址是否命中等,后端流水线主要负责访问片外存储器或访问末端高速缓存数据体部分。末端高速缓存的前端流水线根据执行结果向一致性引擎发送命中状态信号(如果命中则发送推断命中信号),一致性引擎则根据报文的报文类型、一致性高速缓存的存储状态、末端高速缓存的命中状态判断是否需要访问末端高速缓存,并向末端高速缓存发出“命令确认”信号或者 “命令取消”信号。
锁步并发执行是指假设一致性引擎需要n拍能够计算出报文地址在一致性高速缓存中的状态,而末端高速缓存也必须在n拍内计算出报文地址在末端高速缓存中的命中状态,这样一致性引擎流水线的状态计算过程可以和末端高速缓存流水线的命中计算过程锁拍并发执行,当末端高速缓存将命中信息传给一致性引擎后,一致性引擎根据报文类型、当前一致性高速缓存的状态以及末端高速缓存的命中情况决定是否取消末端高速缓存中相应命令,使得确实需要访问末端高速缓存的命令得到加速,达到减少访存延时的目的。本实施例中,一致性引擎和非一致性末端高速缓存的部分流水线锁步并发执行,一致性引擎接收从互连网络来的各种报文,一方面按照自己流水线的约定节拍数目锁步执行译码、仲裁以及计算是否在一致性高速缓存中命中等操作。与此同时,该报文也同时传输到了非一致性的末端高速缓存计算是否在末端高速缓存中命中,末端高速缓存前端流水线计算出命中信息之后,将命中信号传输给一致性引擎。一致性引擎根据报文类型、一致性高速缓存的存储状态、末端高速缓存的命中状态计算出是否确实需要访问非一致性末端高速缓存,如果需要,则向非一致性末端高速缓存发送“命令确认”信号,此时末端高速缓存前面锁步执行的流水线延时得到了隐藏;如果不需要,则向非一致性末端高速缓存发送“命令取消”信号以阻止末端高速缓存去访问片外存储器,减小了片外访存压力。
本实施例中,步骤3)中一致性引擎根据报文的报文类型、一致性高速缓存的存储状态来判断是否需要访问末端高速缓存的详细步骤包括:
A)首先判断报文的报文类型,报文类型包括WriteBackD报文、WriteBackC报文、EvictInd报文、ReadShared报文、ReadExclusive报文、Invalid报文、DmaRead报文、DmaWrite报文、ReadSharedSnpAck报文、ReadSharedSnpNAck报文、ReadInvalidSnpAck报文、ReadInvalidSnpNAck报文、InvalidSnpAck报文、InvalidSnpNAck报文,其中WriteBackD报文代表一致性高速缓存发起的脏数据写回操作,WriteBackC报文代表一致性高速缓存发起的干净数据写回操作、EvictInd报文代表一致性高速缓存发起的自作废指示命令、ReadShared报文代表一致性高速缓存发起的共享读命令、ReadExclusive报文代表一致性高速缓存发起的独占读命令、Invalid报文代表一致性高速缓存发起的作废其它一致性高速缓存中副本的命令、DmaRead报文代表Dma控制部件发起的读操作、DmaWrite报文代表Dma控制部件发起的写操作、ReadSharedSnpAck报文代表一致性高速缓存返回的共享读监听响应、ReadSharedSnpNAck报文代表一致性高速缓存返回的共享读监听失败响应、ReadInvalidSnpAck报文代表一致性高速缓存返回的作废读监听响应、ReadInvalidSnpNAck报文代表一致性高速缓存返回的作废读监听失败响应、InvalidSnpAck报文代表一致性高速缓存返回的作废监听响应、InvalidSnpNAck报文代表一致性高速缓存返回的作废监听失败响应;
B)针对不同报文类型判断报文是否需要访问末端高速缓存。
当报文类型为WriteBackD报文、WriteBackC报文、DmaWrite报文之一时,直接判定报文需要访问末端高速缓存;
当报文类型为EvictInd报文、Invalid报文、InvalidSnpAck报文、InvalidSnpNAck报文之一时,直接判定报文不需要访问末端高速缓存;
当报文类型为ReadShared报文、DmaRead报文之一时,一致性引擎在发出报文的一致性高速缓存以外的一致性高速缓存中查找匹配报文地址的数据,如果找到匹配的脏数据则取出脏数据返回给请求的一致性高速缓存,判定报文不需要访问末端高速缓存;如果找到匹配的干净数据且末端高速缓存不命中则取出干净数据返回给请求的一致性高速缓存,判定报文不需要访问末端高速缓存;否则判定报文需要访问末端高速缓存;
当报文类型为ReadExclusive报文时,一致性引擎在发出报文的一致性高速缓存以外的一致性高速缓存中查找匹配报文地址的数据,如果找到匹配的脏数据则取出脏数据返回给请求的一致性高速缓存,将找到的匹配数据作废并判定报文不需要访问末端高速缓存;如果找到匹配的干净数据且末端高速缓存不命中则取出干净数据返回给请求的一致性高速缓存,将找到的匹配数据作废并判定报文不需要访问末端高速缓存;否则判定报文需要访问末端高速缓存;
当报文类型为ReadSharedSnpAck报文、ReadInvalidSnpAck报文之一时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据为干净数据,则判定报文不需要访问末端高速缓存;如果数据为脏数据,则判定报文需要访问末端高速缓存;
当报文类型为ReadSharedSnpNAck报文、ReadInvalidSnpNAck报文之一时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据已经不再存在,则判定报文需要访问末端高速缓存;如果数据仍然存在,则向拥有方重发ReadSharedSnp报文并判定报文不需要访问末端高速缓存。
图5为本实施例中一致性引擎和末端高速缓存可能接收到报文的主要类型以及对这些报文类型一一给出的“命令确认”或“命令取消”的条件说明表格示意图。是否取消一列中值为“是”代表一致性引擎给末端高速缓存发送“命令取消”,是否取消一列中值为“否”代表一致性引擎给末端高速缓存发送“命令确认”,是否取消一列中值为“可能”代表一致性引擎需要进行进一步判断才能决定给末端高速缓存发送“命令取消”或者“命令确认”,本实施例中一致性引擎针对各个报文类型的具体判断方法说明如下:
WriteBackD报文是一致性高速缓存发起的脏数据写回操作,末端高速缓存将该报文译码为写操作。WriteBackD报文的数据必须写回末端高速缓存,因此一致性引擎不能取消末端高速缓存中的写操作,一致性引擎向末端高速缓存发出“命令确认”信号,允许末端高速缓存访问片外存储器。
WriteBackC报文是一致性高速缓存发起的干净数据写回操作,末端高速缓存将该报文译码为写操作。WriteBackC报文的数据必须写回末端高速缓存,因此一致性引擎不能取消末端高速缓存中的写操作。一致性引擎向末端高速缓存发出“命令确认”信号,允许末端高速缓存访问片外存储器。
EvictInd报文是一致性高速缓存发起的自作废指示命令,末端高速缓存将该报文译码为空操作。EvictInd报文的数据是干净数据,且不需要写回到末端高速缓存中,因此一致性引擎取消末端高速缓存中的空操作,一致性引擎向末端高速缓存发出“命令取消”信号,阻止末端高速缓存访问片外存储器。
ReadShared报文是一致性高速缓存发起的共享读命令,末端高速缓存将该报文译码为读操作。如果一致性引擎发现其他一致性高速缓存中存在该地址脏数据,则从拥有这个数据副本的一致性高速缓存中读取最新数据返回给请求方的一致性高速缓存,同时取消末端高速缓存的读操作,一致性引擎向末端高速缓存发出“命令取消”信号,阻止末端高速缓存访问片外存储器;如果一致性引擎发现其他一致性高速缓存中存在该地址的干净数据且末端高速缓存不命中,则从拥有这个数据副本的一致性高速缓存中读取最新数据返回给请求方的一致性高速缓存,同时取消末端高速缓存的读操作,一致性引擎向末端高速缓存发出“命令取消”信号,阻止末端高速缓存访问片外存储器;否则向末端高速缓存发送“命令确认”信号,然后从末端高速缓存或内存中读取该数据返回给请求方的一致性高速缓存。
ReadExclusive报文是一致性高速缓存发起的独占读命令,末端高速缓存将该报文译码为读操作。一致性引擎由于ReadExclusive报文对末端高速缓存读操作的执行方法与处理ReadShared报文的执行方法一致,只是一致性引擎需要作废其它一致性高速缓存上的该数据副本。
Invalid报文是一致性高速缓存发起的作废其它一致性高速缓存中副本的命令,与末端高速缓存无关,末端高速缓存将该报文译码为空操作。因此一致性引擎取消末端高速缓存的空操作,一致性引擎向末端高速缓存发出“命令取消”信号,阻止末端高速缓存访问片外存储器。
DmaRead报文是Dma控制部件发起的读操作,末端高速缓存将该报文译码为读操作。一致性引擎由于DmaRead报文对末端高速缓存读操作的执行方法与处理ReadShared报文的执行方法一致,在此不再赘述。
DmaWrite报文是Dma控制部件发起的写操作,末端高速缓存将该报文译码为写操作。该数据必须写回末端高速缓存,因此一致性引擎不能取消末端高速缓存中的写操作,一致性引擎向末端高速缓存发出“命令确认”信号,允许末端高速缓存访问片外存储器。
ReadSharedSnpAck报文是一致性高速缓存返回的共享读监听响应,末端高速缓存将该报文译码为写操作。如果一致性引擎发现该数据是干净数据,说明末端高速缓存或内存中数据与一致性高速缓存中已经保持一致,则一致性引擎取消末端高速缓存中的写操作,一致性引擎向末端高速缓存发出“命令取消”信号,阻止末端高速缓存访问片外存储器;否则如果一致性引擎发现该数据是脏数据,则一致性引擎不取消末端高速缓存中的写操作,一致性引擎向末端高速缓存发出“命令确认”信号,允许末端高速缓存访问片外存储器。
ReadSharedSnpNAck报文是一致性高速缓存返回的共享读监听失败响应,末端高速缓存将该报文译码为读操作。如果一致性引擎发现一致性高速缓存中已经不拥有该数据的副本了,则一致性引擎不取消末端高速缓存中的读操作,一致性引擎向末端高速缓存发出“命令确认”信号,允许末端高速缓存访问片外存储器;否则如果一致性引擎发现一致性高速缓存中还拥有该数据的副本,则向拥有方重发ReadSharedSnp报文,同时取消末端高速缓存中的读操作,一致性引擎向末端高速缓存发出“命令取消”信号,阻止末端高速缓存访问片外存储器。
ReadInvalidSnpAck报文是一致性高速缓存返回的作废读监听响应,末端高速缓存将该报文译码为写操作。一致性引擎由于ReadInvalidSnpAck报文对末端高速缓存写操作的执行方法与处理ReadSharedSnpAck报文的执行方法一致,在此不再赘述。
ReadInvalidSnpNAck报文是一致性高速缓存返回的作废读监听失败响应,末端高速缓存将该报文译码为读操作。一致性引擎由于ReadInvalidSnpNAck报文对末端高速缓存读操作的执行方法与处理ReadSharedSnpNAck报文的执行方法一致,在此不再赘述。
InvalidSnpAck报文是一致性高速缓存返回的作废监听响应,与末端高速缓存无关,末端高速缓存将该报文译码为空操作,一致性引擎取消末端高速缓存的空操作,向末端高速缓存发出 “命令取消”信号,阻止末端高速缓存访问片外存储器。
InvalidSnpNAck报文是一致性高速缓存返回的作废监听失败响应,与末端高速缓存无关,末端高速缓存将该报文译码为空操作,一致性引擎取消末端高速缓存的空操作,向末端高速缓存发出“命令取消”信号,阻止末端高速缓存访问片外存储器。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (2)

1.一种基于命令取消的高速缓存流水线锁步并发执行方法,其特征在于实施步骤如下:
1)一致性引擎和末端高速缓存按照流水线约定节拍数目锁步并发执行,并分别通过互连网络接收来自一致性高速缓存的报文;
2)一致性引擎判断报文是否命中一致性高速缓存,末端高速缓存判断报文是否命中末端高速缓存;
3)一致性引擎根据所述报文的报文类型、一致性高速缓存的存储状态、末端高速缓存的命中状态来判断是否需要访问末端高速缓存,如果需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令确认”信号,允许末端高速缓存访问片外存储器;如果不需要访问末端高速缓存,则一致性引擎向末端高速缓存发送“命令取消”信号,阻止末端高速缓存访问片外存储器。
2.根据权利要求1所述的基于命令取消的高速缓存流水线锁步并发执行方法,其特征在于,所述步骤3)中一致性引擎根据所述报文的报文类型、一致性高速缓存的存储状态来判断是否需要访问末端高速缓存的详细步骤包括:
A)首先判断报文的报文类型,所述报文类型包括WriteBackD报文、WriteBackC报文、EvictInd报文、ReadShared报文、ReadExclusive报文、Invalid报文、DmaRead报文、DmaWrite报文、ReadSharedSnpAck报文、ReadSharedSnpNAck报文、ReadInvalidSnpAck报文、ReadInvalidSnpNAck报文、InvalidSnpAck报文、InvalidSnpNAck报文,其中WriteBackD报文代表一致性高速缓存发起的脏数据写回操作,WriteBackC报文代表一致性高速缓存发起的干净数据写回操作、EvictInd报文代表一致性高速缓存发起的自作废指示命令、ReadShared报文代表一致性高速缓存发起的共享读命令、ReadExclusive报文代表一致性高速缓存发起的独占读命令、Invalid报文代表一致性高速缓存发起的作废其它一致性高速缓存中副本的命令、DmaRead报文代表Dma控制部件发起的读操作、DmaWrite报文代表Dma控制部件发起的写操作、ReadSharedSnpAck报文代表一致性高速缓存返回的共享读监听响应、ReadSharedSnpNAck报文代表一致性高速缓存返回的共享读监听失败响应、ReadInvalidSnpAck报文代表一致性高速缓存返回的作废读监听响应、ReadInvalidSnpNAck报文代表一致性高速缓存返回的作废读监听失败响应、InvalidSnpAck报文代表一致性高速缓存返回的作废监听响应、InvalidSnpNAck报文代表一致性高速缓存返回的作废监听失败响应;
B)针对不同报文类型判断报文是否需要访问末端高速缓存,
当报文类型为WriteBackD报文、WriteBackC报文、DmaWrite报文之一时,直接判定报文需要访问末端高速缓存;
当报文类型为EvictInd报文、Invalid报文、InvalidSnpAck报文、InvalidSnpNAck报文之一时,直接判定报文不需要访问末端高速缓存;
当报文类型为ReadShared报文、DmaRead报文之一时,一致性引擎在发出报文的一致性高速缓存以外的一致性高速缓存中查找匹配报文地址的数据,如果找到匹配的脏数据则取出所述脏数据返回给请求的一致性高速缓存,判定报文不需要访问末端高速缓存;如果找到匹配的干净数据且末端高速缓存不命中则取出所述干净数据返回给请求的一致性高速缓存,判定报文不需要访问末端高速缓存;否则判定报文需要访问末端高速缓存;
当报文类型为ReadExclusive报文时,一致性引擎在发出报文的一致性高速缓存以外的一致性高速缓存中查找匹配报文地址的数据,如果找到匹配的脏数据则取出所述脏数据返回给请求的一致性高速缓存,将找到的匹配数据作废并判定报文不需要访问末端高速缓存;如果找到匹配的干净数据且末端高速缓存不命中则取出所述干净数据返回给请求的一致性高速缓存,将找到的匹配数据作废并判定报文不需要访问末端高速缓存;否则判定报文需要访问末端高速缓存;
当报文类型为ReadSharedSnpAck报文、ReadInvalidSnpAck报文之一时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据为干净数据,则判定报文不需要访问末端高速缓存;如果数据为脏数据,则判定报文需要访问末端高速缓存;
当报文类型为ReadSharedSnpNAck报文、ReadInvalidSnpNAck报文之一时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据已经不再存在,则判定报文需要访问末端高速缓存;如果数据仍然存在,则向拥有方重发ReadSharedSnp报文并判定报文不需要访问末端高速缓存。
CN201210267292.6A 2012-07-31 2012-07-31 基于命令取消的高速缓存流水线锁步并发执行方法 Active CN102819420B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210267292.6A CN102819420B (zh) 2012-07-31 2012-07-31 基于命令取消的高速缓存流水线锁步并发执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210267292.6A CN102819420B (zh) 2012-07-31 2012-07-31 基于命令取消的高速缓存流水线锁步并发执行方法

Publications (2)

Publication Number Publication Date
CN102819420A true CN102819420A (zh) 2012-12-12
CN102819420B CN102819420B (zh) 2015-05-27

Family

ID=47303548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210267292.6A Active CN102819420B (zh) 2012-07-31 2012-07-31 基于命令取消的高速缓存流水线锁步并发执行方法

Country Status (1)

Country Link
CN (1) CN102819420B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488012A (zh) * 2015-12-09 2016-04-13 浪潮电子信息产业股份有限公司 一种基于独占数据的一致性协议设计方法
US10574777B2 (en) 2017-06-06 2020-02-25 International Business Machines Corporation Edge caching for cognitive applications
WO2022246769A1 (zh) * 2021-05-27 2022-12-01 华为技术有限公司 一种访问数据的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041215A1 (en) * 2001-08-27 2003-02-27 George Robert T. Method and apparatus for the utilization of distributed caches
US20080147986A1 (en) * 2006-12-14 2008-06-19 Sundaram Chinthamani Line swapping scheme to reduce back invalidations in a snoop filter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041215A1 (en) * 2001-08-27 2003-02-27 George Robert T. Method and apparatus for the utilization of distributed caches
CN1549973A (zh) * 2001-08-27 2004-11-24 英特尔公司 用于使用分布式高速缓存器的方法和设备
US20080147986A1 (en) * 2006-12-14 2008-06-19 Sundaram Chinthamani Line swapping scheme to reduce back invalidations in a snoop filter

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李浩 等: "基于分布式合作cache的私有cache划分方法", 《计算机应用研究》, vol. 29, no. 1, 31 January 2012 (2012-01-31), pages 1 - 6 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488012A (zh) * 2015-12-09 2016-04-13 浪潮电子信息产业股份有限公司 一种基于独占数据的一致性协议设计方法
CN105488012B (zh) * 2015-12-09 2021-05-18 浪潮电子信息产业股份有限公司 一种基于独占数据的一致性协议设计方法
US10574777B2 (en) 2017-06-06 2020-02-25 International Business Machines Corporation Edge caching for cognitive applications
WO2022246769A1 (zh) * 2021-05-27 2022-12-01 华为技术有限公司 一种访问数据的方法和装置

Also Published As

Publication number Publication date
CN102819420B (zh) 2015-05-27

Similar Documents

Publication Publication Date Title
JP5105863B2 (ja) 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ
CN101604295B (zh) 优化基于目录的一致性协议中的并发访问
KR100465583B1 (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법
US7404046B2 (en) Cache memory, processing unit, data processing system and method for filtering snooped operations
TWI410796B (zh) 來自窺探過濾器之過期無效異動的減少
JP5078396B2 (ja) 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法
CN102591813B (zh) 微处理器、存储器子系统以及快取数据的方法
US20050251626A1 (en) Managing sparse directory evictions in multiprocessor systems via memory locking
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
TW200815992A (en) An exclusive ownership snoop filter
WO2011041095A2 (en) Memory mirroring and migration at home agent
EP1561162B1 (en) Methods and apparatus for multiple cluster locking
KR20140098096A (ko) 캐시-코히어런시를 갖춘 집적 회로들
EP3644190B1 (en) I/o coherent request node for data processing network with improved handling of write operations
US7519780B2 (en) System and method for reducing store latency in symmetrical multiprocessor systems
US20080005486A1 (en) Coordination of snoop responses in a multi-processor system
JP2007193784A (ja) 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
US8909862B2 (en) Processing out of order transactions for mirrored subsystems using a cache to track write operations
CN102819420A (zh) 基于命令取消的高速缓存流水线锁步并发执行方法
KR20140098097A (ko) 3 채널 캐시-일관성 소켓 프로토콜
EP1652091B1 (en) Methods and apparatus for providing early responses from a remote data cache
US6976132B2 (en) Reducing latency of a snoop tenure
US20040186964A1 (en) Snoop filtering
US6578114B2 (en) Method and apparatus for altering data length to zero to maintain cache coherency
US7395380B2 (en) Selective snooping by snoop masters to locate updated data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant