基于存储器地址将来自高速缓存行的数据存储到主存储器的制造方法

文档序号:9422718阅读:436来源:国知局
基于存储器地址将来自高速缓存行的数据存储到主存储器的制造方法
【专利说明】
【背景技术】
[0001]在典型的计算系统中,中央处理单元(CPU)可以使用高速缓冲存储器来降低访问存储器(例如,主存储器)的时间。当CPU需要从主存储器中的位置访问数据(例如从主存储器读取数据或写入数据到主存储器)时,CPU可以检查所述数据的副本是否在高速缓存中。如果数据的副本存储在高速缓存中,则CPU可以从高速缓存访问数据的副本,这比CPU为了相同数据访问主存储器要快得多。存储于高速缓存中的数据还可以为了数据一致性而被写回到或冲洗到主存储器。
【附图说明】
[0002]图1图示了基于主存储器的地址写回数据的示例系统。
[0003]图2图示了基于主存储器的地址写回数据的示例方法。
[0004]图3图示了基于主存储器的地址写回数据的另一示例方法。
【具体实施方式】
[0005]本文所描述的例子提供了基于存储器地址使用高速缓存行的标识将数据从高速缓冲存储器转移到主存储器。此外,提供了一种系统来使得能够基于主存储器的一个或多个指定地址范围而将存储在高速缓存中的数据存储于或写回到主存储器。在一个例子中,处理器可以执行指定主存储器的地址范围的高速缓存指令,并且基于所述地址范围,处理器可以针对对应于所述地址范围的高速缓存行执行存储器操作。存储器操作可以包括例如将数据从高速缓存行冲洗或存储到主存储器中的相应位置。
[0006]根据例子,处理器可以确定存储于处理器的高速缓冲存储器中的至少一部分数据将被存储于或写入到主存储器。处理器确定主存储器的一个或多个地址范围。所述一个或多个地址范围可以对应于高速缓冲存储器中的多个高速缓存行。取决于实现方式,处理器可以识别对应于一个或多个地址范围中的地址的高速缓存行的集合,从而存储于识别出的集合中的数据可以存储于主存储器中。对于识别出的集合中具有自高速缓存行首次加载到高速缓冲存储器以来或者自先前的存储操作以来已被修改的数据的每个高速缓存行,使得存储于该高速缓存行中的数据被存储于或写回到主存储器。
[0007]在另一种实现方式中,处理器可以向高速缓冲存储器提供一个或多个地址范围,以使得高速缓冲存储器能够识别对应于所述一个或多个地址范围中的地址的高速缓存行的集合,从而可以将存储于识别出的集合中的数据存储于主存储器中。
[0008]此外,提供了一种在计算系统中执行存储器操作的方法。所述方法包括识别足以一般地描述多个高速缓存行(但是少于整个高速缓存)的集合的高速缓存行的集合。存储于多个高速缓存行的集合中的数据可以写入到主存储器。在一些例子中,可以使用主存储器的一个或多个地址范围来识别高速缓存行的集合,其中地址范围是根据计算系统的处理器所执行的高速缓存指令确定的。计算系统可以实施存储于这样的高速缓存行中的数据到主存储器的写回。以这种方式,可以识别多个高速缓存行(但是少于整个高速缓存),以使得它们存储的数据冲洗到主存储器,而不是例如到单个高速缓存行或整个高速缓存。
[0009]取决于变型,主存储器可以对应于非易失性存储器。在其它例子中,主存储器可以对应于非易失性存储器和易失性存储器。例如,非易失性存储器可以具有第一地址范围,而易失性存储器可以具有第二地址范围,其中这些地址范围不重叠。所确定的一个或多个地址范围可以在第一地址范围内(例如,对应于非易失性存储器部分),从而存储于对应于非易失性存储器中地址的高速缓存行中的数据可以存储于非易失性存储器而不是易失性存储器中。
[0010]本文描述的一个或多个例子假设计算设备执行的方法、技术和动作是以编程方式执行的或者作为计算机实现方法执行的。如本文所使用的“以编程方式”意指通过使用代码或计算机可执行指令。这些指令可以存储于计算设备的一个或多个存储器资源中。以编程方式执行的步骤可以是自动的或可以不是自动的。
[0011]本文所描述的一个或多个例子可以使用程序的模块、引擎或部件来实现。程序的模块、引擎或部件可以包括程序、子例程、部分程序,或者能够执行一个或多个所陈述任务或功能的软件部件或硬件部件。如本文所使用的,模块或部件可以独立于其它模块或部件存在于硬件部件上。可替代地,模块或部件可以是其它模块、程序或机器的共享元件或过程。
[0012]本文所描述的一些例子通常可以要求使用计算设备,包括处理和存储器资源。例如,本文所描述的一个或多个例子可以整体或部分实现于计算设备上,计算设备例如是服务器、台式计算机、蜂窝电话或智能电话、膝上型计算机、打印机、数码相框、网络设备(例如,路由器)以及平板设备。存储器、处理和网络资源都可以与建立、使用或执行本文描述的任意例子结合使用(包括结合执行任意方法或结合实现任意系统)。
[0013]此外,可以通过使用一个或多个处理器可执行的指令而实现本文所描述的一个或多个例子。这些指令可以携带在计算机可读介质上。利用以下附图示出或描述的机器提供了可以在其上携带和/或执行用于实现本文所描述的例子的指令的处理资源和计算机可读介质的例子。特别地,以本文描述的例子所示出的多个机器包括(多个)处理器和用于保持数据和指令的各种形式的存储器。计算机可读介质的例子包括永久存储器存储设备,例如个人计算机或服务器上的硬盘驱动。计算机存储介质的其它例子包括便携式存储单元(例如CD或DVD单元)、闪速存储器(例如,携带在智能电话、多功能设备或平板计算机上)、以及磁性存储器。计算机、终端、网络使能设备(例如,移动设备,诸如手机)都是利用处理器、存储器和存储于计算机可读介质上的指令的机器和设备的例子。另外,例子可以以计算机程序或者能够携带这样的程序的计算机可用载体介质的形式实现。
[0014]系统描述
图1示出了基于主存储器的地址存储数据的示例系统。诸如图1中所示,计算系统可以包括一个或多个处理器以及一个或多个主存储器。出于说明的目的,在图1中仅提供了计算系统的单个处理器100和单个主存储器160。在所提供的例子中,处理器100可以执行指定主存储器160的地址范围的高速缓存指令。基于所述地址范围,处理器100可以针对对应于所述地址范围的高速缓存行执行存储器操作,例如将数据写回到主存储器160。以这种方式,高速缓存指令使得处理器100能够选择性地将数据多个高速缓存行写入到主存储器160中的各自位置。
[0015]在一个例子中,图1图示了处理器100,其包括控制模块110、高速缓存120、高速缓存控制130、寄存器文件140以及执行单元150。控制模块110可以从各自的存储器位置取回指令,转译/分析指令,并确定处理器100将如何处理指令。取决于指令,控制模块110可以与执行单元150通信以引导系统执行不同的操作和功能。在各种实现方式中,处理器100所执行的指令可以存储于高速缓存120、处理器100可访问的其它高速缓冲存储器资源和/或主存储器160中。
[0016]高速缓存120是使得处理器100能够快速从高速缓存120访问数据的存储器资源,与存储于主存储器160中的数据相反。高速缓存120可以存储从主存储器160取得或取回的指令和/或数据。典型地,高速缓存120可以包括多个高速缓存行,其中每个高速缓存行可以具有(i)对应的高速缓存标记以引用对应于高速缓存行的主存储器160中的地址,以及(ii)对应的高速缓存标志以指示在所述高速缓存行中的数据是否已经被处理器100修改或更新。在一些例子中,高速缓存控制130可以维护关于对应高速缓存行的标记和标志的信息。高速缓存控制130可以例如包括具有存储高速缓存120
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1