计算机系统中的高速缓存控制器被配置成管理高速缓存以便减少总线带宽的使用。高速缓存控制器从处理器接收命令。作为响应,维持高速缓存中每个块的信息的高速缓存映射被修改。高速缓存映射可以包括用于每个高速缓存块的地址、脏位、零位和优先级。地址表明主存储器中的如下地址:高速缓存块针对该地址对数据进行高速缓存。脏位表明高速缓存块中的数据是否与主存储器中在该地址的数据一致。零位表明在该地址的数据是否应当读取为默认值,而优先级指定用于驱除高速缓存块的优先级。通过操控这一映射信息,可以实施诸如移动、复制、交换、归零、去优先级化和去激活等命令。
【技术实现步骤摘要】
【国外来华专利技术】经由存储器高速缓存操纵的无阻碍数据传送
技术介绍
如今的高速处理器可以执行程序代码并且可以按照比数据可从主存储器获取或存储于其中快得多的速率来处理数据。为了减少处理器等待访问存储器而花费的时间,高速存储器“高速缓存”充当在处理器与主存储器之间的媒介。高速缓存可以具有控制器和存储器部件。高速缓存存储器包含主存储器中的数据子集的副本。高速缓存控制器响应于来自处理器的存储器访问操作,并且根据何种数据在高速缓存存储器中,可以快速访问高速缓存存储器以便完成存储器操作。如果高速缓存正在维持响应存储器访问操作所必需的数据,那么相比需要直接访问主存储器的情况,高速缓存能够更快地响应于操作。高速缓存控制器除了响应于存储器访问操作之外还维持高速缓存中的数据(有时将数据从主存储器复制到高速缓存中或者将数据从高速缓存写回到主存储器中)。高速缓存控制器使用映射来跟踪主存储器的哪些地址被“高速缓存”。例如高速缓存块(高速缓存的存储器单元)可以与主存储器中的地址关联。高速缓存控制器可以维持如下映射,该映射标识在高速缓存的块与主存储器中的地址之间的关联。当处理器发出用来识别主存储器中的地址的存储器访问操作时,高速缓存控制器可以基于映射确定是否存在与包含该地址的主存储器的一部分相关联的高速缓存存储器的块。由于高速缓存几乎总是小于主存储器,所以高速缓存算法用来选择在高速缓存中维持主存储器的什么子集。已知各种高速缓存算法,但是每个算法通常都以增加可以使用高速缓存中的数据来完成存储器访问操作的可能性为目标。然而在实践中,高速缓存算法并不完美,并且针对非高速缓存地址的操作被接收。当接收到对非高速缓存地址的操作时, 高速缓存控制器可以将数据从主存储器地址复制到高速缓存中。如果所有高速缓存存储器块已满,则高速缓存控制器可以视为通过将与那些地址关联的块中的数据改写为来自其它地址的数据来将一些地址从高速缓存去除。然后控制器可以改变映射以示出与该块中的数据对应的新地址。高速缓存算法可以设置优先级,该优先级在与高速缓存中用于容纳数据的空闲块(free blocks)相比更多数据要被高速缓存的情况下,用于确定哪些地址要保持或从高速缓存中去除。当高速缓存中的数据以这一方式替换为在主存储器中的另一地址的数据时,高速缓存视为驱除更低优先级的高速缓存地址。存储器传送操作常规地涉及高速缓存、处理器和主存储器。存储器访问操作通常涉及到通过一个或者多个通信总线在处理器、高速缓存和主存储器之间传输数据。传送操作可以在执行软件的过程中由处理器发起。常见存储器传送操作包括复制、移动、交换和归零。用于提高存储器传送操作的效率的其它技术同样是已知用来减少处理器的负荷的。编程输入/输出(PIO)是一种处理器可以用来控制为了完成存储器传送所需要的读取和写入操作的技术。另一技术是直接存储器访问(DMA)。DMA允许除了处理器之外的硬件控制存储器传送操作。在PIO和DMA操作中,可以通过处理器连接其上的总线传递数据,这可减缓处理器的操作,因为它的一些操作也可能需要访问处理器总线并且将争用总线带宽。
技术实现思路
高速缓存控制器可以提高计算机系统性能,该高速缓存控制器可以实施由来自处理器的命令发起的一个或者多个存储器操作。在一些实施例中,可以通过更改在高速缓存块与主存储器块之间的映射和/或在高速缓存之间交换数据来实施这些存储器操作。可以以使用很少或者未使用总线带宽和处理器周期的方式实施这样的存储器操作。高速缓存控制器可以执行的存储器操作可以包括移动、复制、归零、去优先级化和/或无效化。在一些实施例中并且对于一些存储器操作,高速缓存控制器独立于高速缓存数据的操纵而操纵高速缓存映射。例如高速缓存控制器可以接收将数据从源地址移向目的地地址的命令。如果在高速缓存块中维持源地址处的数据,则可以改变映射使得高速缓存块与目的地地址而不是源地址关联。在高速缓存中维持的数据的副本可以传播到主存储器作为移动操作的部分或者可以在以后时间(比如在驱除目的地地址时或者作为惰性写入)传播到主存储器。在一些实施例中并且对于一些存储器操作,高速缓存控制器执行命令而未将高速缓存中的块重新映射到主存储器中的地址,而是更改维持高速缓存中数据的方式以求提高效率。例如“无效化”命令可以向高速缓存控制器指示随后将不访问在特定主存储器地址存储的数据,从而无需执行用于维持在该数据的高速缓存版本与数据在主存储器中的副本之间的一致性(coherency)的操作。“无效化”命令也可以指示为了维持该数据的副本而分配的任何高速缓存存储器块可以用于其它数据。前文是所附权利要求限定的本专利技术的非限制概述。附图说明附图并非意于按比例绘制。在附图中,在各种图中图示的每个相同或者接近相同的部件由相似标号表示。为求简洁,可以不在每幅图中标注每个部件。在附图中图IA是根据本专利技术一些实施例的计算机系统的框图IB是根据本专利技术一些实施例的计算机系统的框图IC是根据本专利技术一些实施例的计算机系统的框图2A是用于管理计算机系统中的存储器的方法的流程图2B是用于处理计算机系统中的复制命令的方法的流程图2C是用于处理计算机系统中的交换命令的方法的流程图3A-3D图示高速缓存、总线和主存储器在处理示例复制命令期间的状态序列;图4A-4D图示高速缓存、总线和主存储器在处理示例交换命令期间的状态序列;图5A是用于处理计算机系统中的去优先级化命令的方法的流程图5B和5C图不闻速缓存在处理不例去优先级化命令期间的状态序列;图6A是用于处理计算机系统中的无效化命令的方法的流程图6B-6D图不闻速缓存在处理不例无效化命令期间的状态序列;图7A是用于处理计算机系统中的归零命令的方法的流程图7B是用于处理计算机系统中的归零命令的替代方法的流程图7C是用于处理计算机系统中的归零命令的替代方法的流程图;并且图8A-8C图示高速缓存、总线和主存储器在根据图7C中所示方法处理示例归零命令期间的状态序列。具体实施例方式专利技术人已经认识和理解可以用改进的高速缓存控制器和高速缓存操作方法来避免用于执行存储器传送操作的可用机制的弊端。除了向处理器施加负荷之外,使用编程输入/输出(PIO)的常规架构还通常消耗可以连接处理器的总线上的总线带宽。消耗处理器总线带宽限制了处理器总线可用于传送针对处理器将执行的其它操作的数据,从而以根据这里描述的部件和技术可以避免的方式导致延迟并且降低性能。直接存储器访问(DMA)也具有可以避免的若干限制和缺点。DMA传送也可以消耗总线带宽。此外,当传送跨越某地址范围的数据时,在那些地址的数据可以处于不一致状态直至整个传送完成,从而需要针对整个传送的等待时间。因而,可以通过减少对DMA操作的需要来提高性能。专利技术人已经认识和理解对高速缓存映射的适当操纵可以减少在计算机系统中执行的常规存储器操作(比如DMA传送)的次数。可以实现时间、处理器负荷和/或处理器总线带宽利用率的相应减少。在一些方面中,对高速缓存映射的操纵可以涉及到重新映射与主存储器中的第一地址范围关联的高速缓存块以与主存储器中的第二地址范围关联。重新映射可以减少、消除或者延迟总线带宽的使用。高速缓存控制器可以用对于处理器而言透明的方式来管理这样的操纵,使得处理器周期的使用也被减少或者消除。因而高速缓存控制器可以设置有接口,通过该本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:JC富勒,TJ奥特耶斯,BL沃尔兴顿,
申请(专利权)人:微软公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。