[发明专利]经由存储器高速缓存操纵的无阻碍数据传送有效
申请号: | 201080051868.4 | 申请日: | 2010-10-18 |
公开(公告)号: | CN102612685A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | J.C.富勒;T.J.奥特耶斯;B.L.沃尔兴顿 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F12/06 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 李舒;刘鹏 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 经由 存储器 高速缓存 操纵 阻碍 数据 传送 | ||
背景技术
如今的高速处理器可以执行程序代码并且可以按照比数据可从主存储器获取或存储于其中快得多的速率来处理数据。为了减少处理器等待访问存储器而花费的时间,高速存储器“高速缓存”充当在处理器与主存储器之间的媒介。高速缓存可以具有控制器和存储器部件。高速缓存存储器包含主存储器中的数据子集的副本。高速缓存控制器响应于来自处理器的存储器访问操作,并且根据何种数据在高速缓存存储器中,可以快速访问高速缓存存储器以便完成存储器操作。如果高速缓存正在维持响应存储器访问操作所必需的数据,那么相比需要直接访问主存储器的情况,高速缓存能够更快地响应于操作。
高速缓存控制器除了响应于存储器访问操作之外还维持高速缓存中的数据(有时将数据从主存储器复制到高速缓存中或者将数据从高速缓存写回到主存储器中)。高速缓存控制器使用映射来跟踪主存储器的哪些地址被“高速缓存”。例如高速缓存块(高速缓存的存储器单元)可以与主存储器中的地址关联。高速缓存控制器可以维持如下映射,该映射标识在高速缓存的块与主存储器中的地址之间的关联。当处理器发出用来识别主存储器中的地址的存储器访问操作时,高速缓存控制器可以基于映射确定是否存在与包含该地址的主存储器的一部分相关联的高速缓存存储器的块。
由于高速缓存几乎总是小于主存储器,所以高速缓存算法用来选择在高速缓存中维持主存储器的什么子集。已知各种高速缓存算法,但是每个算法通常都以增加可以使用高速缓存中的数据来完成存储器访问操作的可能性为目标。然而在实践中,高速缓存算法并不完美,并且针对非高速缓存地址的操作被接收。当接收到对非高速缓存地址的操作时,高速缓存控制器可以将数据从主存储器地址复制到高速缓存中。如果所有高速缓存存储器块已满,则高速缓存控制器可以视为通过将与那些地址关联的块中的数据改写为来自其它地址的数据来将一些地址从高速缓存去除。然后控制器可以改变映射以示出与该块中的数据对应的新地址。高速缓存算法可以设置优先级,该优先级在与高速缓存中用于容纳数据的空闲块(free blocks)相比更多数据要被高速缓存的情况下,用于确定哪些地址要保持或从高速缓存中去除。当高速缓存中的数据以这一方式替换为在主存储器中的另一地址的数据时,高速缓存视为驱除更低优先级的高速缓存地址。
存储器传送操作常规地涉及高速缓存、处理器和主存储器。存储器访问操作通常涉及到通过一个或者多个通信总线在处理器、高速缓存和主存储器之间传输数据。传送操作可以在执行软件的过程中由处理器发起。常见存储器传送操作包括复制、移动、交换和归零。
用于提高存储器传送操作的效率的其它技术同样是已知用来减少处理器的负荷的。编程输入/输出(PIO)是一种处理器可以用来控制为了完成存储器传送所需要的读取和写入操作的技术。另一技术是直接存储器访问(DMA)。DMA允许除了处理器之外的硬件控制存储器传送操作。在PIO和DMA操作中,可以通过处理器连接其上的总线传递数据,这可减缓处理器的操作,因为它的一些操作也可能需要访问处理器总线并且将争用总线带宽。
发明内容
高速缓存控制器可以提高计算机系统性能,该高速缓存控制器可以实施由来自处理器的命令发起的一个或者多个存储器操作。在一些实施例中,可以通过更改在高速缓存块与主存储器块之间的映射和/或在高速缓存之间交换数据来实施这些存储器操作。可以以使用很少或者未使用总线带宽和处理器周期的方式实施这样的存储器操作。高速缓存控制器可以执行的存储器操作可以包括移动、复制、归零、去优先级化和/或无效化。
在一些实施例中并且对于一些存储器操作,高速缓存控制器独立于高速缓存数据的操纵而操纵高速缓存映射。例如高速缓存控制器可以接收将数据从源地址移向目的地地址的命令。如果在高速缓存块中维持源地址处的数据,则可以改变映射使得高速缓存块与目的地地址而不是源地址关联。在高速缓存中维持的数据的副本可以传播到主存储器作为移动操作的部分或者可以在以后时间(比如在驱除目的地地址时或者作为惰性写入)传播到主存储器。
在一些实施例中并且对于一些存储器操作,高速缓存控制器执行命令而未将高速缓存中的块重新映射到主存储器中的地址,而是更改维持高速缓存中数据的方式以求提高效率。例如“无效化”命令可以向高速缓存控制器指示随后将不访问在特定主存储器地址存储的数据,从而无需执行用于维持在该数据的高速缓存版本与数据在主存储器中的副本之间的一致性(coherency)的操作。“无效化”命令也可以指示为了维持该数据的副本而分配的任何高速缓存存储器块可以用于其它数据。
前文是所附权利要求限定的本发明的非限制概述。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080051868.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:玻璃原料有效粒径的检测方法
- 下一篇:减摩增韧金属/陶瓷仿生多层膜人工关节