经由存储器高速缓存操纵的无阻碍数据传送的制作方法

上传人:ting****789 文档编号:310042486 上传时间:2022-06-14 格式:DOCX 页数:10 大小:34.18KB
返回 下载 相关 举报
经由存储器高速缓存操纵的无阻碍数据传送的制作方法_第1页
第1页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《经由存储器高速缓存操纵的无阻碍数据传送的制作方法》由会员分享,可在线阅读,更多相关《经由存储器高速缓存操纵的无阻碍数据传送的制作方法(10页珍藏版)》请在金锄头文库上搜索。

1、经由存储器高速缓存操纵的无阻碍数据传送的制作方法专利名称:经由存储器高速缓存操纵的无阻碍数据传送的制作方法经由存储器高速缓存操纵的无阻碍数据传送背景技术:如今的高速处理器可以执行程序代码并且可以按照比数据可从主存储器获取或存储于其中快得多的速率来处理数据。为了减少处理器等待访问存储器而花费的时间,高速存储器“高速缓存”充当在处理器与主存储器之间的媒介。高速缓存可以具有控制器和存储器部件。高速缓存存储器包含主存储器中的数据子集的副本。高速缓存控制器响应于来自处理器的存储器访问操作,并且根据何种数据在高速缓存存储器中,可以快速访问高速缓存存储器以便完成存储器操作。如果高速缓存正在维持响应存储器访问

2、操作所必需的数据,那么相比需要直接访问主存储器的情况,高速缓存能够更快地响应于操作。高速缓存控制器除了响应于存储器访问操作之外还维持高速缓存中的数据(有时将数据从主存储器复制到高速缓存中或者将数据从高速缓存写回到主存储器中)。高速缓存控制器使用映射来跟踪主存储器的哪些地址被“高速缓存”。例如高速缓存块(高速缓存的存储器单元)可以与主存储器中的地址关联。高速缓存控制器可以维持如下映射,该映射标识在高速缓存的块与主存储器中的地址之间的关联。当处理器发出用来识别主存储器中的地址的存储器访问操作时,高速缓存控制器可以基于映射确定是否存在与包含该地址的主存储器的一部分相关联的高速缓存存储器的块。由于高速

3、缓存几乎总是小于主存储器,所以高速缓存算法用来选择在高速缓存中维持主存储器的什么子集。已知各种高速缓存算法,但是每个算法通常都以增加可以使用高速缓存中的数据来完成存储器访问操作的可能性为目标。然而在实践中,高速缓存算法并不完美,并且针对非高速缓存地址的操作被接收。当接收到对非高速缓存地址的操作时, 高速缓存控制器可以将数据从主存储器地址复制到高速缓存中。如果所有高速缓存存储器块已满,则高速缓存控制器可以视为通过将与那些地址关联的块中的数据改写为来自其它地址的数据来将一些地址从高速缓存去除。然后控制器可以改变映射以示出与该块中的数据对应的新地址。高速缓存算法可以设置优先级,该优先级在与高速缓存中

4、用于容纳数据的空闲块(free blocks)相比更多数据要被高速缓存的情况下,用于确定哪些地址要保持或从高速缓存中去除。当高速缓存中的数据以这一方式替换为在主存储器中的另一地址的数据时,高速缓存视为驱除更低优先级的高速缓存地址。存储器传送操作常规地涉及高速缓存、处理器和主存储器。存储器访问操作通常涉及到通过一个或者多个通信总线在处理器、高速缓存和主存储器之间传输数据。传送操作可以在执行软件的过程中由处理器发起。常见存储器传送操作包括复制、移动、交换和归零。用于提高存储器传送操作的效率的其它技术同样是已知用来减少处理器的负荷的。编程输入/输出(PIO)是一种处理器可以用来控制为了完成存储器传送

5、所需要的读取和写入操作的技术。另一技术是直接存储器访问(DMA)。DMA允许除了处理器之外的硬件控制存储器传送操作。在PIO和DMA操作中,可以通过处理器连接其上的总线传递数据,这可减缓处理器的操作,因为它的一些操作也可能需要访问处理器总线并且将争用总线带宽。发明内容高速缓存控制器可以提高计算机系统性能,该高速缓存控制器可以实施由来自处理器的命令发起的一个或者多个存储器操作。在一些实施例中,可以通过更改在高速缓存块与主存储器块之间的映射和/或在高速缓存之间交换数据来实施这些存储器操作。可以以使用很少或者未使用总线带宽和处理器周期的方式实施这样的存储器操作。高速缓存控制器可以执行的存储器操作可以

6、包括移动、复制、归零、去优先级化和/或无效化。在一些实施例中并且对于一些存储器操作,高速缓存控制器独立于高速缓存数据的操纵而操纵高速缓存映射。例如高速缓存控制器可以接收将数据从源地址移向目的地地址的命令。如果在高速缓存块中维持源地址处的数据,则可以改变映射使得高速缓存块与目的地地址而不是源地址关联。在高速缓存中维持的数据的副本可以传播到主存储器作为移动操作的部分或者可以在以后时间(比如在驱除目的地地址时或者作为惰性写入)传播到主存储器。在一些实施例中并且对于一些存储器操作,高速缓存控制器执行命令而未将高速缓存中的块重新映射到主存储器中的地址,而是更改维持高速缓存中数据的方式以求提高效率。例如“

7、无效化”命令可以向高速缓存控制器指示随后将不访问在特定主存储器地址存储的数据,从而无需执行用于维持在该数据的高速缓存版本与数据在主存储器中的副本之间的一致性(coherency)的操作。“无效化”命令也可以指示为了维持该数据的副本而分配的任何高速缓存存储器块可以用于其它数据。前文是所附权利要求限定的本发明的非限制概述。附图并非意于按比例绘制。在附图中,在各种图中图示的每个相同或者接近相同的部件由相似标号表示。为求简洁,可以不在每幅图中标注每个部件。在附图中图IA是根据本发明一些实施例的计算机系统的框图IB是根据本发明一些实施例的计算机系统的框图IC是根据本发明一些实施例的计算机系统的框图2A是

8、用于管理计算机系统中的存储器的方法的流程图2B是用于处理计算机系统中的复制命令的方法的流程图2C是用于处理计算机系统中的交换命令的方法的流程图3A-3D图示高速缓存、总线和主存储器在处理示例复制命令期间的状态序列;图4A-4D图示高速缓存、总线和主存储器在处理示例交换命令期间的状态序列;图5A是用于处理计算机系统中的去优先级化命令的方法的流程图5B和5C图不闻速缓存在处理不例去优先级化命令期间的状态序列;图6A是用于处理计算机系统中的无效化命令的方法的流程图6B-6D图不闻速缓存在处理不例无效化命令期间的状态序列;图7A是用于处理计算机系统中的归零命令的方法的流程图7B是用于处理计算机系统中的

9、归零命令的替代方法的流程图7C是用于处理计算机系统中的归零命令的替代方法的流程图;并且图8A-8C图示高速缓存、总线和主存储器在根据图7C中所示方法处理示例归零命令期间的状态序列。具体实施例方式发明人已经认识和理解可以用改进的高速缓存控制器和高速缓存操作方法来避免用于执行存储器传送操作的可用机制的弊端。除了向处理器施加负荷之外,使用编程输入/输出(PIO)的常规架构还通常消耗可以连接处理器的总线上的总线带宽。消耗处理器总线带宽限制了处理器总线可用于传送针对处理器将执行的其它操作的数据,从而以根据这里描述的部件和技术可以避免的方式导致延迟并且降低性能。直接存储器访问(DMA)也具有可以避免的若干

10、限制和缺点。DMA传送也可以消耗总线带宽。此外,当传送跨越某地址范围的数据时,在那些地址的数据可以处于不一致状态直至整个传送完成,从而需要针对整个传送的等待时间。因而,可以通过减少对DMA操作的需要来提高性能。发明人已经认识和理解对高速缓存映射的适当操纵可以减少在计算机系统中执行的常规存储器操作(比如DMA传送)的次数。可以实现时间、处理器负荷和/或处理器总线带宽利用率的相应减少。在一些方面中,对高速缓存映射的操纵可以涉及到重新映射与主存储器中的第一地址范围关联的高速缓存块以与主存储器中的第二地址范围关联。重新映射可以减少、消除或者延迟总线带宽的使用。高速缓存控制器可以用对于处理器而言透明的方

11、式来管理这样的操纵,使得处理器周期的使用也被减少或者消除。因而高速缓存控制器可以设置有接口,通过该接口其可以从处理器接收命令。这些命令可以由在处理器上执行的程序生成并且可以用信号通知将执行的更高级存储器操作(包括可能另外已经作为DMA操作而执行的类型的存储器操作)。高速缓存控制器可适于通过操纵高速缓存映射来执行这些命令。这样的命令可以在命令的执行未直接阻碍在其上执行操作的处理器执行进一步指令这一意义上“无阻碍”。这些操作也无需间接阻碍处理器的进一步操作,因为它们在被执行时无需消耗处理器总线上的带宽。可以用这一方式实施的命令的实例包括将数据块从主存储器中的一个块移动或者复制到另一主存储器块。这样

12、的命令的另一实例是“归零”命令。发明人已经进一步认识和理解被提供用于接收执行重新映射操作的命令的高速缓存控制器附加地或者可选地还可以接收如下命令,这些命令以也实现计算机系统的更高效操作的方式更改高速缓存控制器的操作。在处理器上执行的软件部件有能力表明不再处理或者不可能访问主存储器中的某些地址范围可以增强用于优先级化高速缓存数据的高速缓存算法。高速缓存控制器可以配置有用于从处理器接收命令(比如用于无效化或者去优先级化(deprioritize) 个或者多个地址的命令)的接口。图IA示出计算机系统100的示例框图,其中可以使用改进的存储器管理技术。计算机系统100包括一组处理器110、主存储器12

13、0和高速缓存130。处理器110和高速缓存 130可以由处理器总线160连通耦合。存储器总线165可以连通耦合高速缓存130和主存储器120。存储器总线165被图示为与处理器总线160分离,从而表明可以在存储器总线 165上传送数据而并不消耗处理器总线160上的带宽。然而可以用任何适当方式连通耦合处理器110、主存储器120和高速缓存130。处理器110可以包括任何适当数目的处理器。例如处理器110可以包括一个或者两个或者更多处理器。这里示出#个处理器;即处理器111、112、和113。处理器110可以包括本领域已知的任何处理器或者任何适当处理设备。例如而非限制,处理器110可以包括中央处理单

14、元(CPU)、数字信号处理器(DSP)、控制器、可寻址控制器、通用或者专用微处理器、微控制器、可寻址微处理器、可编程处理器、可编程控制器、专用处理器、专用控制器或者任何其它适当的处理设备中的任一个。主存储器120可以存储数据,且将基于在处理器110上执行的程序对该数据进行一个或多个存储操作。主存储器120可以是如本领域已知的计算机可读存储介质或者任何适当类型的计算机可读存储介质。例如而非限制,主存储器120可以是任何适当类型的随机存取存储器(RAM)。存储器120中的数据的用途或者意义对于本发明而言并不关键,并且无论主存储器120中的数据的用途或者意义如何都可以对它进行本文所描述的存储器操作。

15、例如主存储器120中的数据可以构成如下软件模块,这些软件模块包含由处理器执行时执行所需功能的计算机可执行指令。然而主存储器120中的数据可以可选地或者附加地代表在执行计算机可执行指令时访问的参数或者其它信息。在这一情况下,计算机系统100可以包含附加存储器(包括用于存储计算机可执行指令的其它存储器)。主存储器120具有用于存储由存储器地址121索引的数据的存储器块122。每个存储器块可以存储多个信息位。存储器块存储的信息位的数量对于本发明而言并不关键。 块可以是称为字或者页面的位组。不过,块可以是任何适当大小并且可以用任何适当方式来标识。例如块可以由起始地址和块大小或者由起始地址和结束地址标识

16、。在一些实施例中,计算机系统可以对预定大小的存储器块操作。在这一情况下,当将对存储器块执行操作时,单个地址可足以标识块。另外应当理解主存储器块无需以任何方式对应于用来实施主存储器120的部件的结构。在所示实例中,主存储器具有P个地址121,这些地址标识可以对其进行如本文所描述的操作的P个块122。P可以是任何适当值。在一些实施例中,可以在主存储器120上存储的数据总量可以是可以维持于高速缓存130中的数量的十倍到一百倍。然而可以使用任何适当大小的高速缓存和主存储器。高速缓存130充当在处理器110与主存储器120之间的媒介。处理器110发出的访问存储器位置的指令可以使用维持在高速缓存130中的数据来实施或者可以更改维持在高速缓存130中的数据。因而高速缓存130可以执行如本领域已知的一个或者多个数据高速缓存功能。附加地,高速缓存130还可以包括如下文更具体描述的响应于附加命令的控制器。这里高速缓存130被图示为通过处理器总线160可由处理器110访问的共享高速缓存。然而高速缓存130可以是用于具体处理器的高速缓存。尽管将计算机系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号