CN102819420B - 基于命令取消的高速缓存流水线锁步并发执行方法 - Google Patents
基于命令取消的高速缓存流水线锁步并发执行方法 Download PDFInfo
- Publication number
- CN102819420B CN102819420B CN201210267292.6A CN201210267292A CN102819420B CN 102819420 B CN102819420 B CN 102819420B CN 201210267292 A CN201210267292 A CN 201210267292A CN 102819420 B CN102819420 B CN 102819420B
- Authority
- CN
- China
- Prior art keywords
- message
- speed cache
- end 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.)
- Active
Links
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报文时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据已经不再存在,则判定报文需要访问末端高速缓存;如果数据仍然存在,则向拥有方重发共享读监听ReadSharedSnp报文并判定报文不需要访问末端高速缓存;
当报文类型为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 (1)
1.一种基于命令取消的高速缓存流水线锁步并发执行方法,其特征在于实施步骤如下:
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报文时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据已经不再存在,则判定报文需要访问末端高速缓存;如果数据仍然存在,则向拥有方重发共享读监听ReadSharedSnp报文并判定报文不需要访问末端高速缓存;
当报文类型为ReadInvalidSnpNAck报文时,一致性引擎检查发出报文的一致性高速缓存中的数据,如果数据已经不再存在,则判定报文需要访问末端高速缓存;如果数据仍然存在,则向拥有方重发作废读监听ReadSharedSnp报文并判定报文不需要访问末端高速缓存。
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 CN102819420A (zh) | 2012-12-12 |
CN102819420B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 华为技术有限公司 | 一种访问数据的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549973A (zh) * | 2001-08-27 | 2004-11-24 | 英特尔公司 | 用于使用分布式高速缓存器的方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8055851B2 (en) * | 2006-12-14 | 2011-11-08 | Intel Corporation | Line swapping scheme to reduce back invalidations in a snoop filter |
-
2012
- 2012-07-31 CN CN201210267292.6A patent/CN102819420B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549973A (zh) * | 2001-08-27 | 2004-11-24 | 英特尔公司 | 用于使用分布式高速缓存器的方法和设备 |
Non-Patent Citations (1)
Title |
---|
基于分布式合作cache的私有cache划分方法;李浩 等;《计算机应用研究》;20120131;第29卷(第1期);第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102819420A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5105863B2 (ja) | 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ | |
US7404046B2 (en) | Cache memory, processing unit, data processing system and method for filtering snooped operations | |
TWI651620B (zh) | 用於處理多個交易之資料處理系統及方法 | |
EP1153349B1 (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
US6546429B1 (en) | Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry | |
CN103106122B (zh) | 同时待处理数据访问请求的数据冲突处理的方法和装置 | |
CN101604295B (zh) | 优化基于目录的一致性协议中的并发访问 | |
US9170946B2 (en) | Directory cache supporting non-atomic input/output operations | |
US20140115272A1 (en) | Deadlock-Avoiding Coherent System On Chip Interconnect | |
JP3629511B2 (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
US6266743B1 (en) | Method and system for providing an eviction protocol within a non-uniform memory access system | |
CN101097545A (zh) | 独占所有权探听过滤器 | |
US20060179245A1 (en) | Data processing system and method for efficient communication utilizing an Tn and Ten coherency states | |
US11314644B2 (en) | Cache size change | |
JP2000250881A (ja) | 不均等メモリ・アクセス・システム内で書き戻しの衝突によって生じるライブロックを避けるための方法およびシステム | |
US10949292B1 (en) | Memory interface having data signal path and tag signal path | |
JP5004571B2 (ja) | 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法 | |
KR20140098096A (ko) | 캐시-코히어런시를 갖춘 집적 회로들 | |
EP3644190B1 (en) | I/o coherent request node for data processing network with improved handling of write operations | |
CN102819420B (zh) | 基于命令取消的高速缓存流水线锁步并发执行方法 | |
JP2000250882A (ja) | 不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム | |
US7366844B2 (en) | Data processing system and method for handling castout collisions | |
US7089376B2 (en) | Reducing snoop response time for snoopers without copies of requested data via snoop filtering | |
US6976132B2 (en) | Reducing latency of a snoop tenure |
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 |