[发明专利]一种内存数据缓冲方法及装置有效
申请号: | 201210578615.3 | 申请日: | 2012-12-27 |
公开(公告)号: | CN103076992A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 徐建荣;姚策;陈昊 | 申请(专利权)人: | 杭州华为数字技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 310053 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 数据 缓冲 方法 装置 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种内存数据缓冲方法及装置。
背景技术
现代的高级计算机系统都有多个CPU组成,为了提高CPU的访问数据的速率,降低访存延迟,都会在CPU上实现Cache功能,它的访问速度一般都比直接访问内存快一个数量级以上的。由于每个CPU都会实现一块Cache,因此同一地址的内存会被缓存到不同的CPU Cache上,如果某个CPU对该地址进行写操作,必须使其他CPU中的缓存失效,如果缓存中有脏数据必须回写到内存。为了完成上述功能,现代多处理器计算机在内存总线上实现了缓存一致性协议(Cache Coherence Protocol),比如Intel CPU平台上的QPI总线、AMT CPU平台上的HT总线都实现了缓存一致性协议。常见的典型缓存一致性协议包括Source Snoop和Home Snoop两种类型。为了实现缓存一致性协议,一般在CPU侧实现缓存代理(Cache Agent)功能,在内存侧实现内存代理(Home Agent)功能,两者配合实现缓存一致性协议。Cache Agent主要实现CPU Cache的管理,并且发起对内存的访问功能,并且响应其他请求的侦听请求。Home Agent主要实现多个CA对同一地址的串行化访问和对不同地址的并行化访问。
Home Snoop缓存一致性协议,所有的侦听请求都是由内存代理发送。为了减少侦听发送的数量,一般会在内存中存储一个目录,用于表示该地址内存在各个缓存代理中的状态。当内存代理接收一个缓存代理的请求时,就会从内存中读取该内存数据和对应的目录,如果内存目录表示没有缓存代理拥有该内存数据,内存代理直接把数据发送给请求者缓存代理;如果表示有一个或者多个缓存代理拥有该内存数据,内存会发送侦听到目录表示的缓存代理去,等待所有的侦听响应完毕后发送请求响应给请求者缓存代理。
在CPU中的缓存一般有4种状态,Modefied(脏),Exclusive(独占),Shared(共享),Invalid(无效)。为了满足缓存一致性协议,对于同一地址的M/E状态的缓存数据只能在一个缓存代理存在,这两个状态的数据CPU可以进行直接的读写操作;对于同一地址的S状态,可以处于多个CPU的缓存代理中,但是该数据只能被CPU进行读操作;对于无效状态,表示缓存代理中没有该地址的数据。区别于缓存代理中的缓存状态,在内存目录中记录的状态不会区分M/E,都把这两类状态统一为独占状态,有的设计甚至不会区分M/E/S三个状态,只记录是否在缓存代理中是否包含数据。
现有的Home Snoop协议,为了加速对内存目录的读取,会在内存代理处添加一块缓存(注意:此缓存不是CPU缓存代理的缓存),这样做的好处可以对经常访问的内存目录,快速读取,并且尽早发送侦听到缓存代理,降低侦听响应的延迟。但是,如果目录缓存命中,表示的缓存行的状态为无效状态时,虽然可以不发送侦听请求到其他缓存代理,但是还必须往内存进行数据读取,然后把数据发送给请求者缓存代理,这次内存的读取速度往往很慢,影响整个请求缓存的响应时间。
发明内容
本发明实施例所要解决的技术问题在于,提供一种内存数据缓冲方法装置。可解决现有技术中只对目录信息作优化,当目录缓存命中时,所表示的数据行为无效时,需要从内存中取数据,响应请求的响应时间。
为了解决上述技术问题,本发明第一方面提供了一种内存数据缓冲方法,包括:
在内存代理Home Agent的存储器中开辟至少包括目录缓存和数据缓存的组合缓存区,所述目录缓存中的缓存行和所述数据缓存中的缓存行一一对应;
接收缓存代理Cache Agent发出的操作地址,根据所述操作地址判断所述组合缓存区是否命中且有效,若为是,则直接对所述组合缓存区执行相应的操作。
在第一种可能的实现方式中,所述组合缓存区包括描述信息,所述描述信息包括:对比字段、目录状态信息、数据状态信息和有效标志位;
所述根据所述操作地址判断所述组合缓存区是否命中且有效包括:
根据所述操作地址查询所述组合缓存区中是否存在匹配的对比字段,若存在,则所述组合缓存区命中;和
根据所述组合缓存区中命中的缓存行的有效标志位判断所述命中的缓存行是否有效。
结合第一方面和第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述操作地址为读操作地址,所述直接对所述组合缓存区执行相应的操作包括:
直接向所述缓存代理返回所述命中的缓存行中的目录信息和数据信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华为数字技术有限公司,未经杭州华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210578615.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:抗神经毡蛋白抗体及使用方法
- 下一篇:控制屏幕显示方向的方法及其终端
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置