[发明专利]保证数据缓存与主存储器之间的一致性有效
申请号: | 201080016118.3 | 申请日: | 2010-04-07 |
公开(公告)号: | CN102388372A | 公开(公告)日: | 2012-03-21 |
发明(设计)人: | R·G·伊舍伍德;Y·N·科 | 申请(专利权)人: | 想象技术有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京润平知识产权代理有限公司 11283 | 代理人: | 江娟;南毅宁 |
地址: | 英国赫*** | 国省代码: | 英国;GB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 保证 数据 缓存 主存储器 之间 一致性 | ||
技术领域
本发明涉及多线程处理器,并特别地涉及在由多线程访问的缓存存储器与多线程处理器中的主存储器之间的数据非相干(incoherent)的问题。
背景技术
多线程处理器能够同时处理多个不同的指令序列(或线程)。在线程执行期间需要从存储器访问数据和指令。因此,不同的线程可能需要同时访问存储器,并且有时访问存储器的相同部分。为此,在线程之间需要存在某种仲裁以用于存储器访问。
如图1所示,多线程处理器典型地具有包含最常访问的数据和指令的数据缓存和指令缓存。如果在这两个缓存中没有找到所需数据或指令,则必须请求在存储器总线上访问存储器。必须控制访问存储器以保证线程不会相互冲突。出于这个原因,根据不同线程从指令和数据缓存到存储器仲裁模块的存储器访问,每个具有他们自己专用的数据路径。
图1示出了根据现有技术的多线程处理器中的存储器访问系统的示意图。运行在处理器核心10上的线程能够从数据和指令缓存11、12请求数据和指令。该指令和数据缓存每个具有与其相关联的存储器管理单元。如果请求的数据或指令不在一个缓存中,则该请求传递到存储器总线。为了在从来自不同线程的请求之间做出仲裁,先将请求路由通过线程仲裁器13、14,其中线程仲裁器对线程的请求排序,然后路由到存储器仲裁器15,其中,存储器仲裁器15控制到存储器总线的访问。
其中在主存储器中,典型地,数据被以具有固定数量比特的单元(称为缓存行(cache line))的形式储存并访问。所以,为了从存储器读取存储器地址,必须取出包含该地址的整个缓存行。存在两种缓存行。一种是本地缓存行,该缓存行仅储存用于特定线程的数据。另一个是全局缓存行,该缓存行储存可由不同的线程访问的数据。一条数据是被储存在全局缓存行还是本地缓存行取决于其线性地址。本发明是关于在线程间共享的存储器资源(即,全局缓存行)。
全局缓存行可以储存由不同的线程在该缓存行中不同字位置输入的软件本地变量的值。可知,当线程Tx从该缓存行读取其本地变量时,其将取回其上次的写入值。然而,当使用通过由其他线程访问的数据缓存写入到相同缓存行中他们的本地变量时,会出现促使线程Tx去读取旧的错误的值的情况。当这样的情况发生时,Tx被叫做已经变得“数据非相干(incoherent)”。
图2a和2b每个示出了由不同线程造成在线程T0上数据非相干的访问序列的一个例子。
参考图2a,T0先用写入请求访问其本地变量A。然后T1用读取请求访问其本地变量B。A和B的物理地址使得他们缓存在相同的全局数据缓存行。最初A和B都不在该缓存中。
典型地,读取请求到达存储器总线的时间比写入请求短。在这种情况下,T1读取在T0写入之前到达存储器。结果,该缓存行的旧值被储存在该数据缓存中。T0写入请求没有写入到该数据缓存,仅写入到存储器总线。所以,从该数据缓存的缓存行的随后的读取将取得被储存在该数据缓存的旧值作为T1读取的结果。
参考图2b,A和B再一次都在相同的缓存行,并且最初不在该数据缓存中。T1先用读取请求从存储器总线访问B。在B被取得之前,即在读取请求离开该数据缓存的时刻与包含B的缓存行被储存在该数据缓存的时刻之间,对A的写入请求从T0被发布到存储器总线。再一次,来自T0的写入没有被写入到该数据缓存,使得该数据缓存保持缓存行的旧版本,该旧版本将被随后的读取请求访问。
能够看出,当多线程从存储器总线访问全局缓存存储器时,会出现数据非相干,特别是直写式(Write-through)缓存。本发明目的在于通过检测非相干危险并且使用一种机制来保证在安全的时候将读取或写入指令只发布到存储器总线外来处理该问题,。
发明内容
在所附的独立权利要求中限定本发明。在从属权利要求中限定优选的特征。
附图说明
现在将参考附图说明本发明的示例,在附图中:
图1示出了在常规多线程处理器核心中的存储器访问系统;
图2a和图2b每个示出了引起缓存非相干的存储器访问序列;
图3示出了根据本发明的系统;
图4示出了根据本发明的示例性全局写入地址存储器的操作;
图5示出了在图3的系统中使用的非相干检测模块;
图6示出了在图3系统中使用的存储器仲裁器;
图7示出了在仲裁器的命令执行。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于想象技术有限公司,未经想象技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080016118.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种乌药环戊烯二酮及其类似物的合成方法
- 下一篇:燃烧器装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置