用于对存储器进行碎片整理的系统和方法

文档序号:10517836阅读:246来源:国知局
用于对存储器进行碎片整理的系统和方法
【专利摘要】公开了用于对存储器进行碎片整理的系统和方法。在一特定实施例中,一种方法包括将存储在存储器的第一物理存储器地址处的数据从该存储器加载到数据高速缓存的高速缓存行。第一物理存储器地址被映射到第一虚拟存储器地址。该方法进一步包括在数据高速缓存处发起与第一虚拟存储器地址相关联的查找信息的修改,以使得第一虚拟存储器地址对应于存储器的第二物理存储器地址。该方法还包括在数据高速缓存处修改与高速缓存行相关联的信息以指示该高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。
【专利说明】用于对存储器进行碎片整理的系统和方法
[0001]相关申请的交叉引用
[0002]本申请要求共同拥有的于2014年I月2日提交的美国非临时专利申请N0.14/146,576的优先权,该非临时专利申请的内容通过援引全部明确纳入于此。
[0003]领域
[0004]本公开一般涉及对存储器进行碎片整理。
[0005]相关技术描述
[0006]技术进步已产生越来越小且越来越强大的计算设备。例如,当前存在各种各样的便携式个人计算设备,包括较小、轻量且易于由用户携带的无线计算设备,诸如便携式无线电话、个人数字助理(PDA)以及寻呼设备。更具体地,便携式无线电话(诸如蜂窝电话和网际协议(IP)电话)可通过无线网络传达语音和数据分组。此外,许多此类无线电话包括被纳入于其中的其他类型的设备。例如,无线电话还可包括数码相机、数码摄像机、数字记录器以及音频文件播放器。同样,此类无线电话可处理可执行指令,包括可被用于访问因特网的软件应用,诸如web浏览器应用。如此,这些无线电话可包括显著的计算能力。
[0007]计算设备可包括处理器,诸如中央处理单元(CPU)。现代CPU可以使用虚拟存储器空间XPU可包括用于管理虚拟到物理存储器地址转换的存储器管理单元(MMU)。丽1]可以使用算法来分配物理存储器。随时间进展,分配算法可能导致存储器碎片。存储器碎片的存在可使得难以在计算设备中应用某些功率节省特征。例如,动态随机存取存储器(DRAM)可采用诸如部分式阵列自刷新(PASR)等功率节省特征。在PASR期间,DRAM的一部分可被降电。存储器碎片化可致使PASR低效,因为DRAM所具有的空的且可用于被降电而没有丢失数据的风险的部分较少。
[0008]在发生碎片化时启用PASR的一种方式是对存储在DRAM处的数据进行碎片整理。对DRAM进行碎片整理可以启用高级功率节省特征(诸如PASR)来节省附加功率。然而,存储器碎片整理过程通常涉及处理器在存储器内执行大量数据移动。数据移动可在存储器正被进行碎片整理时造成降低的处理器性能。此外,处理器执行数据移动所需的功率可能超出通过使用PASR节省的功率。
[0009]概述
[0010]用于对存储器进行碎片整理的系统和方法在高速缓存管理期间执行与碎片整理相关联的数据移动。例如,操作系统可以检测数据碎片。操作系统可以确定数据碎片(例如,存储在区域A中的数据)应当被重定位到“空洞”(例如,区域B中的位置)响应于检测到数据碎片,操作系统可以向处理器发出加载和重新映射指令。在加载和重新映射指令的执行期间,碎片整理过程可在高速缓存处执行。高速缓存可以将数据从区域A加载到高速缓存。高速缓存可包括用来将高速缓存内的数据映射到该数据在存储器中的物理地址的标签信息。高速缓存可以改变该标签信息,以使得与区域A相关联的数据被重新映射到区域B中的位置的物理地址。在经重新映射的高速缓存行随后从高速缓存被逐出时(例如,根据高速缓存管理策略,诸如最近最少使用(LRU)、最不频繁使用(LFU)、或先进先出(FIFO)策略),经重新映射的高速缓存行被存储在区域B而非区域A中的位置的物理地址处,从而在高速缓存管理期间对存储器进行碎片整理。
[0011 ]在一特定实施例中,一种方法包括将存储在存储器的第一物理存储器地址处的数据加载到数据高速缓存的高速缓存行。第一物理存储器地址被映射到第一虚拟存储器地址。该方法进一步包括在数据高速缓存处发起与第一虚拟存储器地址相关联的查找信息的修改,以使得第一虚拟存储器地址对应于该存储器的第二物理存储器地址。该方法还包括在数据高速缓存处修改与该高速缓存行相关联的信息以指示该高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。
[0012]在另一特定实施例中,一种系统包括包含多个物理存储器地址的存储器。该系统进一步包括包含配置成执行存储器碎片整理操作的碎片整理电路的数据高速缓存。碎片整理操作包括将存储在存储器的第一物理存储器地址处的数据从该存储器加载到数据高速缓存的高速缓存行。第一物理存储器地址被映射到第一虚拟存储器地址。碎片整理操作还包括发起与第一虚拟存储器地址相关联的查找信息的修改,以使得第一虚拟存储器地址对应于存储器的第二物理存储器地址。碎片整理操作包括修改与高速缓存行相关联的信息以指示该高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。
[0013]在另一特定实施例中,一种计算机可读介质包括指令,这些指令在由处理器执行时使处理器执行各操作。各操作包括将存储在存储器的第一物理存储器地址处的数据加载到数据高速缓存的高速缓存行。第一物理存储器地址被映射到第一虚拟存储器地址。各操作进一步包括发起与第一虚拟存储器地址相关联的查找信息的修改,以使得第一虚拟存储器地址对应于存储器的第二物理存储器地址。各操作还包括修改与该高速缓存行相关联的信息以指示该高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。
[0014]在另一特定实施例中,一种系统包括用于使用多个物理存储器地址来存储数据的装置,并且该系统进一步包括用于对数据进行高速缓存的装置。用于对数据进行高速缓存的装置包括配置成将存储在存储器的第一物理存储器地址处的数据从该存储器加载到数据高速缓存的高速缓存行的碎片整理电路。第一物理存储器地址被映射到第一虚拟存储器地址。碎片整理电路进一步被配置成发起与第一虚拟存储器地址相关联的查找信息的修改,以使得第一虚拟存储器地址对应于该存储器的第二物理存储器地址。碎片整理电路还被配置成修改与高速缓存行相关联的信息以指示该高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。
[0015]所公开的实施例中的至少一者所提供的一个特定优点是将与存储器碎片整理相关联的数据移动整合到高速缓存管理以代替执行排他地用于存储器碎片整理的数据移动操作的能力。将与存储器碎片整理相关联的数据移动整合到高速缓存管理可以使处理器能够在高速缓存执行碎片整理的同时执行其他操作或进入功率节省模式。
[0016]本公开的其他方面、优点和特征将在阅读了整个申请后变得明了,整个申请包括下述章节:附图简述、详细描述以及权利要求书。
[0017]附图简述
[0018]图1是能操作用于执行基于高速缓存的碎片整理过程的系统的特定解说性实施例的框图;
[0019]图2是描绘图1的存储器在基于高速缓存的碎片整理过程之前和之后的特定解说性实施例的示图;
[0020]图3A是能操作用于执行基于高速缓存的碎片整理过程的系统的另一特定解说性实施例的框图;
[0021 ]图3B是与图3A的系统相对应的碎片整理寻址方案的特定解说性实施例的示图;
[0022]图4是解说由图3A的碎片整理电路执行的基于高速缓存的碎片整理操作的第一实施例的框图;
[0023]图5是解说由图3A的碎片整理电路执行的基于高速缓存的碎片整理操作的第二实施例的框图;
[0024]图6是解说由图3A的碎片整理电路执行的基于高速缓存的碎片整理操作的第三实施例的框图;
[0025]图7是解说由图3A的碎片整理电路执行的基于高速缓存的碎片整理操作的第四实施例的框图;
[0026]图8A是能操作用于执行基于高速缓存的碎片整理过程的系统的另一特定解说性实施例的框图;
[0027]图8B是与图8A的系统相对应的碎片整理寻址方案的特定解说性实施例的示图;
[0028]图9是执行基于高速缓存的碎片整理的方法的特定解说性实施例的流程图;
[0029]图10是执行基于高速缓存的碎片整理的方法的另一特定解说性实施例的流程图;
[0030]图11是包括具有碎片整理电路的数据高速缓存的便携式设备的框图;以及
[0031]图12是制造包括带有碎片整理电路的数据高速缓存的电子设备的制造过程的特定解说性实施例的数据流图。
[0032]详细描述
[0033]参考图1,描绘了可操作用于执行基于高速缓存的碎片整理过程的系统的特定解说性实施例且将其概括地指定为100。系统100包括数据高速缓存102、物理存储器130、存储器管理单元(MMU) 160、以及处理器(例如,中央处理单元(CPU) 180)。系统100可以允许对物理存储器130进行碎片整理而无需持续地使用CPU180的处理资源(例如,无需CPU 180发出读和写指令来将数据从物理存储器130中的一个位置移至物理存储器130中的另一位置)。
[0034]数据高速缓存102可包括数据阵列104、标签阵列106、以及状态阵列108。数据高速缓存102还可包括用于在物理存储器130上执行碎片整理操作的碎片整理电路112。数据阵列104、标签阵列106、以及状态阵列108可被组织在多个高速缓存行(例如,高速缓存行121-124)中。每一高速缓存行可包括来自数据阵列104的特定行的数据,且可在标签阵列106中具有对应标签数据以及在状态阵列108中具有对应状态信息。状态信息可包括有效性信息和/或脏信息。例如,每一高速缓存行可包括有效性位和/或脏位。在替换实施例中,状态阵列108可包括附加、更少、和/或不同的状态位。虽然在图1中未示出,但数据高速缓存102可以是多路(例如,N路)组关联高速缓存,如参考图4-7描述的。
[0035]物理存储器130可以将数据存储在多个地址处。例如,物理存储器130可以将第一数据存储在第一地址151处,将第二数据存储在第二地址152处,将第三数据存储在第三地址153处,以及将第四数据存储在第四地址154处。在基于高速缓存的碎片整理过程之后,如本文进一步描述的,第一数据可被存储在第五地址141处,第二数据可被存储在第六地址142处,第三数据可被存储在第七地址143处,以及第四数据可被存储在第八地址144处。物理存储器130可被组织成各个页。例如,地址151-154被示为对应于第一页132,且地址141-144被示为第一页第二页138。对物理存储器130进行碎片整理可包括将数据从第一页136移至第二页138。例如,第一页136可对应于被未分配存储器页包围的存储器碎片,且第二页138可对应于存储器空洞(例如,未分配的存储器页)。
[0036]存储器管理单元(MMU) 160可以管理并组织物理存储器130以及虚拟存储器。例如,MMU 160可以将虚拟存储器地址(VA)映射到物理存储器130的物理存储器地址(PA)。为了解说,存储器管理单元160可包括页表162。页表162可包括VA 164阵列和将VA 164映射到物理存储器130的PA的指针166阵列。在图1的示例中,第一虚拟存储器地址171被映射到第一物理地址151,第二虚拟存储器地址172被映射到第二物理地址152,第三虚拟存储器地址173被映射到第三物理地址153,以及第四虚拟存储器地址174被映射到第四物理地址154。虽然并未示出,但页表162可包括到物理存储器130的其他地址和/或到其他存储器设备的更多虚拟地址映射。
[0037]存储器管理单元160可由数据高速缓存102的碎片整理电路112访问以将特定虚拟存储器地址从特定物理存储器地址重新映射到另一物理存储器地址。例如,碎片整理电路112可以在由碎片整理电路112执行的基于高速缓存的碎片整理操作期间将第一虚拟存储器地址171重新映射到第五物理地址141,将第二虚拟存储器地址172重新映射到第六物理地址142,将第三虚拟存储器地址173重新映射到第七物理地址143,以及将第四虚拟存储器地址174重新映射到第八物理地址144,如本文进一步描述的。虚拟存储器地址171-174可以在诸个体操作期间或作为单个重新映射操作的一部分被重新映射。
[0038]CPU 180可被配置成执行指令集182的指令来执行各操作。指令集182包括加载和重新映射指令184。加载和重新映射指令184可由在CPU 180处运行的软件(例如,操作系统软件、应用软件,等等)发出。加载和重新映射指令184可以使CPU 180发起数据高速缓存102处的基于高速缓存的碎片整理操作。
[0039]在操作中,CPU180可以接收加载和重新映射指令184。响应于加载和重新映射指令184,CPU 180可以向数据高速缓存102发出请求186。请求186可以使数据高速缓存102执行一个或多个碎片整理操作。碎片整理操作可包括重新定位来自物理存储器130中的页的单个数据项、来自该页的多个数据项、整页、或多页。例如,加载和重新映射指令184可以指定存储在第一 PA 151处的第一数据要被重定位到第五PA 141。碎片整理电路112可以发起第一数据从第一物理存储器地址151到数据阵列104的与高速缓存行121相对应的行的复制。在一替换实施例中,第一数据可能先前作为与碎片整理不相关的高速缓存操作(例如,响应于来自CPU 180的在请求186之前的读请求或写请求)的一部分而已被加载到数据阵列104 中。
[0040]碎片整理电路112可以发起与对应于已被复制到数据高速缓存102的第一数据的虚拟存储器地址相关联的查找信息的修改。例如,虚拟存储器地址171可初始地被映射到物理存储器地址151,如图1中由从虚拟存储器地址171到物理存储器地址151的实线所示。在与物理存储器地址151相关联的数据已被加载到高速缓存行121之后,碎片整理电路112可以发起页表162的修改,以使得与虚拟存储器地址171相关联的指针指向第五物理存储器地址141,如虚拟存储器地址171和第五物理存储器地址141之间的虚线箭头所示。在一特定实施例中,碎片整理电路112通过向MMU 160发出命令来发起页表162的修改。替换地,CPU 180可以使MMU160修改页表162(例如,在发出请求186之前或之后)。
[0041]碎片整理电路112可修改标签阵列106中的与数据高速缓存行121相对应的标签信息。标签信息可由数据高速缓存102用来确定在存储在高速缓存行121中的数据被从数据高速缓存102逐出时该数据所要被写到的物理存储器130的物理地址。为了解说,与高速缓存行121相对应的标签信息可包括第一物理地址151的至少一部分。碎片整理电路112可以用第五物理地址141的至少一部分盖写与高速缓存行121相对应的标签信息。在数据被从数据高速缓存102逐出时,该数据将被写入第五物理地址141而非第一物理地址151。数据可根据高速缓存管理策略而被逐出,诸如最近最少使用(LRU)、最不频繁使用(LFU)、先进先出(FIFO),等等。数据也可被点播式逐出(例如,响应于来自CPU 180的请求,诸如请求186)。在一替换实施例中,标签信息可在修改查找信息之前被修改。在一特定实施例中,碎片整理电路112还可设置高速缓存行121的脏位来触发数据向物理地址151的写入,如本文进一步描述的。
[0042]碎片整理电路112可以对物理存储器130的多个存储器碎片执行碎片整理操作。该多个碎片整理操作可以并发地执行或一次一个地执行。在图1的示例中,碎片整理电路112还将来自第二物理地址152的第二数据复制到第二高速缓存行122,将来自第三物理地址153的第三数据复制到第三高速缓存行123,以及将来自第四物理地址154的第四数据复制到第四高速缓存行124。碎片整理电路112可以修改与附加高速缓存行122-124中的每一者相关联的标签信息,以使得标签信息对应于PA 142-144而非PA 152-154。在标签信息已被修改之后,高速缓存102可以将第二数据、第三数据、以及第四数据分别写入到PA 142-144。
[0043]因此,数据高速缓存102可被用来执行对物理存储器130的碎片整理操作。在完成由请求186指示的基于高速缓存的碎片整理操作之后,数据高速缓存102可以向CPU 180发送指示基于高速缓存的碎片整理操作已完成的响应188。在一特定实施例中,碎片整理操作可包括基于中断的操作。例如,响应188可包括使CPU180执行与中断处理程序相对应的操作的中断。在一特定实施例中,中断处理程序可以与在CPU 180处运行的操作系统相关联。
[0044]在一特定实施例中,碎片整理操作还可包括将高速缓存行标记为脏,以触发存储在该高速缓存行中的数据向一不同的物理存储器地址的写入。例如,与高速缓存行121相对应的脏位可被断言(例如,置位),以指示存储在高速缓存行121处的第一数据已被修改(但只有标签信息被修改,而第一数据没有被修改)。在数据高速缓存操作的过程中,数据高速缓存102可以将被标记为脏的每一高速缓存行写到物理存储器130的物理地址。例如,存储在高速缓存行121处的第一数据可被写到物理存储器130。因为与高速缓存行121相对应的标签信息已被修改成指向第五物理地址141,所以存储在高速缓存行121处的数据将被写到物理存储器130的第五物理地址141而非第一物理地址151。因此,将高速缓存行121标记为脏可以触发数据高速缓存将高速缓存行121中的第一数据写到第二物理存储器地址141。
[0045]在一特定实施例中,标签信息可包括源物理地址或目的地物理地址的仅一部分。为将来自源物理地址(例如,与数据碎片相关联的地址)的数据重定位到目的地物理地址(例如,碎片整理目的地),作为修改标签信息的补充,碎片整理电路112可以重定位数据高速缓存102内的数据。在重定位数据高速缓存102内的数据之后,源高速缓存行(数据在重定位之前的位置)可被标记为无效(例如,通过修改状态阵列108的有效性信息),并且目的地高速缓存行(数据在重定位之后的位置)可被标记为有效。重定位高速缓存内的数据的特定实施例参考图4-7描述。
[0046]在一特定实施例中,所描述的基于高速缓存的碎片整理过程可被用来对存储在物理存储器130中的各个体的文件或结构进行碎片整理。例如,物理存储器130的被与一应用相关联的特定文件占据的各部分可能被碎片化(例如,非紙连)。所描述的基于高速缓存的碎片整理过程可以重定位该文件的各碎片,使得该文件占据物理存储器130的单个毗连区域。
[0047]在数据高速缓存102而非CPU 180处执行碎片整理操作使得CPU 180能够在碎片整理发生之时执行其他操作,或保持在空闲/功率节省模式,从而节省系统100处的处理器资源和功率。
[0048]图2描绘了(在执行基于高速缓存的碎片整理过程之前和之后)存储数据的存储器的实施例并被概括指定为200。存储器220 (例如,对应于图1的130)可初始包括存储在任何数量的存储器位置处的应用数据。例如,存储器220被示为包括多个应用(例如,应用1、应用
2、应用4、以及应用6)的应用数据。存储器220可包括与应用4相对应的存储在第一存储器地址205处的应用数据以及与应用6相对应的存储在第二存储器地址206处的应用数据。
[0049]存储器220还可包括不与应用数据相关联的存储器地址。例如,存储器220可包括与不关联于应用的空闲(例如,未分配)存储器地址相对应的第三存储器地址202和第四存储器地址203。空闲存储器地址可以与存储器空洞相关联。如本文所使用的,“空洞”是被已分配的存储器物理地址或区域包围的未分配(例如,自由)的存储器物理地址或区域。例如,第三存储器地址202和第四存储器地址203位于存储与应用2和应用4相关联的数据的存储器地址之间。存储器空洞可以随存储器使用过程由于存储器的分配和解除分配而发展。例如,与另一应用(例如,应用3、应用5)相关联的数据可初始地被存储在这些存储器空洞处。在存储器被解除分配时(例如,由于应用终止),可发展出空洞。第一存储器地址205和第二存储器地址206被认为是存储器“碎片”,这是因为第一存储器地址205和第二存储器地址206各自是被未分配存储器区域(例如,空洞)包围的已分配存储器区域。
[0050]基于高速缓存的碎片整理操作222可以在存储器220上执行。例如,存储器220可耦合到数据高速缓存,诸如图1的数据高速缓存102。在基于高速缓存的碎片整理操作222被执行之后,存储器220可包括与未分配存储器相关联的存储器块。在存储器220是动态随机存取存储器(DRAM)时,部分式阵列自刷新(PASR)可被应用于未分配的存储器。例如,在整个DRAM芯片未被分配时,PASR可将该DARM芯片降电。在DRAM芯片被降电时,该DRAM芯片不被使用刷新电流周期性地刷新,这可节省电子设备处的功率。
[0051]此外,通过在存储器220上使用基于高速缓存的碎片整理,处理器资源可被节省。例如,处理器可以在高速缓存执行碎片整理的同时执行与碎片整理无关的操作。此外,基于高速缓存的碎片整理操作可被集成到高速缓存操作中,从而与使用处理器功能来将数据从存储器碎片复制到存储器空洞的碎片整理操作相比而言降低功耗。
[0052]参考图3A,描绘了用于执行基于高速缓存的碎片整理操作的系统的特定实施例且将其概括地指定为300。系统300包括处理器302(例如,CPU)、第一级(例如,LI)高速缓存304、第二级(例如,L2)高速缓存306、第三级(例如,L3)高速缓存308以及主存储器310。第三级高速缓存308可被称为最末级高速缓存(在一连串高速缓存级中最接近主存储器310的高速缓存)。虽然在图3A的系统300中描绘了三级高速缓存,但系统300可包括以任何次序安排的任何数量的高速缓存。如在图3A中所示,碎片整理电路312可被集成到最末级高速缓存以允许存储器碎片整理发生在高速缓存存储器管理的过程期间,从而降低对用于执行存储器碎片整理的附加硬件资源的依赖性。
[0053]第三级高速缓存308可对应于图1的数据高速缓存102XPU 302可对应于图1的CPU180,且主存储器310可对应于图1的主存储器160或图2的存储器220。因此,系统300可执行参考图1描述的基于高速缓存的存储器碎片整理操作。例如,CPU 302可以向第三级高速缓存308发送在主存储器310上执行碎片整理操作的请求320。响应于请求320,碎片整理电路312可以将存储在存储器310的第一物理存储器地址处的数据加载到第三级高速缓存308的高速缓存行。碎片整理电路312可以修改与高速缓存行相关联的信息(例如,标签信息和/或状态信息)以指示高速缓存行对应于主存储器310的第二物理存储器地址。第三级高速缓存308随后可作为高速缓存操作的一部分将该数据写到主存储器310的第二物理存储器地址。
[0054]图3B解说了可以在本文描述的特定实施例中使用的寻址方案。在所解说的寻址方案中,物理地址350可以表示物理存储器(例如,图3A的主存储器310)内的位置。源地址352可对应于物理存储器的第一页(例如,存储器碎片),且目的地地址354可对应于物理存储器的第二页(例如,碎片整理目的地或存储器空洞)。将数据从源地址352移至目的地地址354可包括将数据移至物理存储器的不同页(例如,改变页号)而不改变数据位置的页偏移。
[0055]物理地址350可被划分成标签、索引、以及行偏移,如图所示。标签的值可被存储在第三级高速缓存308内一高速缓存行处(例如,图1的高速缓存行121-124之一)且可被第三级高速缓存308用来将对应数据关联到物理存储器地址350。第三级高速缓存308可以是组关联高速缓存,且索引可以指示第三级高速缓存308内存储该数据的组。行偏移可以指示该组内存储该数据的行。物理地址350还可被表示为页号和页偏移,如图所示。在图3B中,物理地址350是32位物理地址。主存储器310的页可包括4千字节(KB)物理页(由12-位页偏移表示)。页号可由物理地址的其余20位来表示。
[0056]在一特定实施例中,第三级高速缓存308是8路512KB最末级高速缓存。第三级高速缓存308的每一高速缓存行可包括64字节(由6-位行偏移表示)。第三级高速缓存308可包括1024个组(由10-位索引表示)。物理地址350的其余16个位可包括标签。在图3B的实施例中,标签包括比页号(20位)少的位(16位)。因而,页号可以与第三级高速缓存308的索引交叠(例如,交叠达4位)。页号的交叠部分可以影响数据被存储在第三级高速缓存302内的哪组处。取决于索引的交叠部分(例如,索引的最高有效位),每一页可被划分成各片段。在图3B中,每一页被划分成16个页片段。
[0057]为将存储器碎片从主存储器310的第一页移至主存储器310的第二页,碎片整理电路312可以改变物理地址350的标签,如参考图1描述的。然而,改变物理地址350的标签可能只改变物理地址350的页号的一部分,因为页号可包括比标签更多的位。为改变整个页号,碎片整理电路还可改变索引的一部分。为改变索引的该部分,碎片整理电路可以将数据从对应于第一页片段的第一高速缓存行移至对应于第二页片段的第二高速缓存行。
[0058]参考图4-7进一步描述确定是否要将数据从第一页片段移至第二页片段。
[0059]源地址352可被划分成标签信息Al和片段信息A2。类似地,目的地地址354可被划分成标签信息BI和片段信息B2。在源地址352和目的地地址354处于不同片段中时,数据可以从一个高速缓存组(对应于该页的第一片段)被移至另一高速缓存组(对应于该页的第二片段)。
[0060]图4-7解说了图3A和图3B的系统300的上下文内的基于高速缓存的碎片整理操作的特定实施例。各实施例包括其中源地址和目的地地址对应于同一页片段且数据已经位于高速缓存内(例如,高速缓存命中)的第一实施例(图4),其中源地址和目的地地址对应于同一页片段但数据未位于高速缓存内(例如,高速缓存未命中)的第二实施例(图5),其中源地址和目的地地址对应于不同页片段且数据已经位于高速缓存内的第三实施例(图6),以及其中源地址和目的地地址对应于不同页片段且数据未位于高速缓存内的第四实施例(图7)。
[0061 ]参考图4,由碎片整理电路(例如,图3A的碎片整理电路312)执行的基于高速缓存的碎片整理操作的第一实施例被描绘并被概括地指定为400。图4解说了包括标签阵列402(例如,8路组关联高速缓存的标签阵列)和数据阵列410(例如,8路组关联高速缓存的数据阵列)的数据高速缓存(例如,对应于图1的数据高速缓存102和/或图3A的第三级数据高速缓存308)。图4还解说了与多个地址相关联的主存储器420(例如,对应于图1的物理存储器130和/或图3A的物理存储器310)。例如,主存储器420可被配置成将数据存储在源地址424处(例如,对应于图3B的源地址352)和目的地地址422(例如,对应于图3B的目的地地址354)处。
[0062]标签阵列402可对应于图1的标签阵列106且数据阵列410可对应于图1的数据阵列104。例如,标签阵列402可包括与高速缓存内(例如,数据位置412处)存储的数据相对应的标签信息(例如,标签信息404)。标签阵列402和数据阵列410可被划分成16个页片段。页片段可被进一步划分成各个组(例如,与10位索引相对应的1024个组)。
[0063]在图4的实施例中,源地址424和目的地地址422对应于同一页片段414(例如,图3B的源地址352的A2等于图3B的目的地地址354的B2)。此外,对应于源地址424的数据已被加载到(例如,在高速缓存操作期间)数据阵列410的数据位置412(如数据位置412处的实心框所示)。在接收到要执行碎片整理操作的请求时,可结果得到高速缓存命中,因为存储在源地址424处的数据已被加载到高速缓存中。
[0064]碎片整理电路(例如,图3A的碎片整理电路312)可修改与该数据相关联的标签信息404。例如,碎片整理电路可以用与目的地地址相对应的标签(例如,图3B的目的地地址354的BI)来替换与源地址相对应的标签(例如,图3B的源地址352的Al)。碎片整理电路还可将数据标记为脏的(例如,通过修改状态阵列108中的脏位,如参考图1描述的),以触发将数据写回主存储器420。在数据被从高速缓存逐出时,该数据被写到目的地地址422而非源地址424。
[0065]参考图5,由碎片整理电路执行的基于高速缓存的碎片整理操作的第二实施例被描绘并被概括地指定为500。图5对应于在页片段相同(A2 = B2)但发生高速缓存未命中时的操作。因而,在发起基于高速缓存的碎片整理操作时,对应于源地址424的数据尚未被加载到数据阵列410的高速缓存位置412(如高速缓存位置412处的中空框所示)。在接收到要执行碎片整理操作的请求时,可结果得到高速缓存未命中。
[0066]碎片整理电路(如参考图4描述的)可以将存储在源地址424处的数据加载到高速缓存位置412。然而,代替将与源地址424相关联的标签Al插入标签阵列402的是,碎片整理电路可改为将与目的地地址422相关联的标签BI插入标签404中。碎片整理电路还可将该数据标记为脏的。在该数据被从高速缓存逐出时,该数据被写到目的地地址422而非源地址424。
[0067]参考图6,由碎片整理电路执行的基于高速缓存的碎片整理操作的第三实施例被描绘并被概括地指定为600。图6对应于在页片段不同(Α2不等于Β2)且发生高速缓存命中时的操作。源地址424可对应于第一页片段418且目的地地址422可对应于第二页片段618。对应于源地址424的数据已被加载到数据阵列410的高速缓存位置412(如高速缓存位置412处的实心框所示)。在接收到要执行碎片整理操作的请求时,结果得到高速缓存命中。
[0068]碎片整理电路(如参考图4和5描述的)可以将存储在高速缓存位置412处的数据移至与第二页片段618相关联的第二高速缓存位置616。碎片整理电路还可将对应于目的地地址422的标签BI插入标签阵列402,作为对应于高速缓存位置616的标签信息606。碎片整理电路可以使存储在高速缓存位置412中的数据无效(例如,通过改变有效性位)。
[0069]碎片整理电路还可将数据标记为脏的,以触发该数据写回到主存储器420。在数据被从高速缓存逐出时(例如,在高速缓存操作的过程期间),该数据被写到目的地地址422而非源地址424。
[0070]参考图7,由碎片整理电路执行的基于高速缓存的碎片整理操作的第四实施例被描绘并被概括地指定为700。图7对应于在页片段不同(Α2不等于Β2)且发生高速缓存未命中时的操作。
[0071]碎片整理电路(如参考图4、5以及6描述的)可以将存储在源地址424处的数据加载到第二片段718而非第一片段414。代替将关联于源地址424的标签Al插入标签阵列402(例如,作为标签信息404)的是,碎片整理电路可以将关联于目的地地址422的标签BI插入标签阵列402(例如,作为标签信息706)。碎片整理电路还可将该数据标记为脏的。在该数据被从高速缓存逐出时(例如,在高速缓存操作的过程期间),该数据被写到目的地地址422而非源地址424。图4-7因而解说了基于发生了高速缓存命中还是高速缓存未命中并基于源地址和目的地地址对应于同一页片段还是不同页片段来执行基于高速缓存的碎片整理操作的各实施例。
[0072]参考图8Α,描绘了能操作用于执行基于高速缓存的碎片整理过程的系统的另一特定实施例且将其概括地指定为800。系统800包括处理器802(例如,CPU)、第一级(例如,LI)高速缓存804、第二级(例如,L2)高速缓存806、第三级(例如,L3)高速缓存808、以及主存储器810。虽然在图8A的系统800中描绘了三级高速缓存,但系统800可包括以任何次序安排的任何数量的高速缓存。与图3A的系统300形成对比的是,系统800包括异于任何其他高速缓存804-808的专用碎片整理高速缓存812。碎片整理高速缓存812也可异于主存储器810同CPU 802之间的高速缓存路径(例如,在其外部)。异于系统800内的其他高速缓存可使得碎片整理高速缓存812能够小于第三级高速缓存808。此外,在碎片整理高速缓存812没有在执行碎片整理操作时,碎片整理高速缓存812可被用作对CPU 802的“辅助”高速缓存。碎片整理高速缓存812可包括碎片整理电路814。
[0073]在操作中,CPU 802可以向碎片整理高速缓存812发送要在主存储器810上执行碎片整理操作的请求。响应于该请求,碎片整理电路814可以将存储在存储器810的第一物理存储器地址处的数据加载到碎片整理高速缓存808的高速缓存行。碎片整理电路814可以修改与高速缓存行相关联的信息以指示高速缓存行对应于主存储器810的第二物理存储器地址。碎片整理高速缓存814可以将数据写到主存储器的第二物理存储器地址(例如,在该数据被逐出时)。
[0074]图SB是可以结合图8A的系统800来使用的寻址方案的示图。在所解说的寻址方案中,物理地址850表示要被重定位的数据的地址。源地址852对应于物理存储器的第一页(例如,存储器碎片),且目的地地址854对应于物理存储器的第二页(例如,碎片整理目的地或存储器空洞)。物理地址850可被划分成标签、索引、以及行偏移,如图所示。物理地址850还可被表示为页号和页偏移。在图SB中,物理地址850是32位物理地址。主存储器810的页可包括4千字节(KB)物理页(由12-位页偏移表示)。碎片整理高速缓存812可包括8路32KB高速缓存。碎片整理高速缓存812的每一高速缓存行可以是64字节(由6位行偏移表示)。
[0075]在图8A的实施例中,标签包括与页号相同数量的位。因而,图8A的碎片整理高速缓存812可以通过改变物理地址850的标签来改变物理地址850的整个页号。碎片整理电路814可以基于页片段失配来执行碎片整理操作而无需将数据从碎片整理高速缓存812内的第一高速缓存行移至第二高速缓存行。结果,图8A的实施例可快于图3A的实施例。然而,由于引入了专用碎片整理高速缓存812,图8A的实施例可占用比图3A的实施例更多的芯片面积。
[0076]参考图9,执行基于高速缓存的碎片整理的方法900的特定解说性实施例包括在902将存储在存储器的第一物理存储器地址处的数据从该存储器加载到数据高速缓存的高速缓存行,其中第一物理存储器地址被映射到第一虚拟存储器地址。例如,图1的碎片整理电路112可以将对应于第一物理地址151的第一数据加载到高速缓存行121。第一物理地址151可被映射到第一虚拟地址171。数据高速缓存可以是最末级高速缓存或专用碎片整理高速缓存。
[0077]方法900进一步包括在904,发起与第一虚拟存储器地址相关联的查找信息的修改,以使得第一虚拟存储器地址对应于存储器的第二物理存储器地址。例如,图1的页表162可被修改,使得虚拟地址171被映射到第五物理地址141而非第一物理地址151。
[0078]方法900还包括在906,在数据高速缓存处修改与该高速缓存行相关联的信息以指示该高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。例如,标签阵列106的与图1的高速缓存行121相对应的第一标签可被修改以对应于第五物理地址141而非第一物理地址151。
[0079]方法900包括在908,基于经修改的信息将数据写到第二物理存储器地址。例如,图1的数据高速缓存102可以在数据被从数据高速缓存102逐出时基于第一标签信息将该数据写到第五物理存储器地址141。
[0080]方法900可针对存储在附加物理存储器地址处的数据被重复和/或并发地执行。例如,存储在第一多个附加物理存储器地址中的每一者处的附加数据可被加载到附加高速缓存行。附加高速缓存行中的每一者的标签信息可被修改以指示每一附加高速缓存行对应于第二多个附加物理地址的相应物理存储器地址。在被从高速缓存逐出时,该附加数据可基于经修改的标签信息被写到第二多个附加物理地址。
[0081 ]图9的方法可由专用集成电路(ASIC)、处理单元(诸如中央处理单元(CPU))、数字信号处理器(DSP)、控制器、现场可编程门阵列(FPGA)设备、另一硬件设备、固件设备、或其任何组合来实现。作为示例,图9的方法可由执行指令的处理器来执行,如参照图11所描述的。
[0082]参考图10,示出了执行基于高速缓存的碎片整理的方法1000的特定解说性实施例。在一解说性实施例中,方法1000可对应于参考图4-7描述的操作。方法1000包括在1002处,在数据高速缓存处接收来自处理器的要执行碎片整理操作的请求。碎片整理操作包括将数据从源地址重定位到目的地地址。
[0083]方法1000可进一步包括在1004,确定数据是否要从第一页的页片段被重定位到第二页的同一页片段。在数据要从第一页的页片段被重定位到第二页的同一页片段时,方法1000可包括在1006处确定源地址是否结果得到高速缓存命中。例如,在图4中,对应于源地址424的数据已被加载到数据阵列410,结果得到高速缓存命中。作为另一示例,在图5中,对应于源地址424的数据尚未被加载到数据阵列410,结果得到高速缓存未命中。在发生高速缓存命中时,方法1000可包括在1008处,修改数据的标签信息以指示目的地地址而非源地址。例如,参考图4,标签信息404可被修改以指示目的地地址422而非源地址424。
[0084]在发生高速缓存未命中时,方法1000可包括在1010处将数据从源地址加载到数据高速缓存中并插入目的地地址而非源地址的标签信息。例如,参考图5,数据可以从源地址424被加载到高速缓存位置412,且所插入的标签信息404可以指示目的地地址422而非源地址424。
[0085]在数据要从第一页的页片段被重定位到第二页的不同页片段时,方法1000还可包括在1012处确定在数据要被重定位到不同页片段时,源地址是否结果得到高速缓存命中。例如,在图6中,对应于源地址424的数据先前已被加载到数据阵列410,结果得到高速缓存命中。作为另一示例,在图7中,对应于源地址424的数据先前尚未被加载到数据阵列410中,结果得到高速缓存未命中。
[0086]在发生高速缓存命中时,方法1000可包括在1014,将数据从对应于源页片段的第一高速缓存位置移至对应于目的地页片段的第二高速缓存位置。另外,目的地地址的标签信息可被插入第二高速缓存位置且第一高速缓存位置可被无效。例如,参考图6,数据可以从高速缓存位置412被移至高速缓存位置616,目的地地址422的标签信息606可被插入,且高速缓存位置412可被标记为无效。在发生高速缓存未命中时,方法1000可包括在1016处将数据加载到数据高速缓存中针对目的地页片段的高速缓存位置处并插入目的地地址的标签信息。例如,参考图7,该数据可以从源地址424被加载到高速缓存位置716,且所插入的标签信息706可以指示目的地地址422。
[0087]方法1000还可包括在1018触发将数据写到目的地地址。例如,数据可通过断言脏位而被标记为脏的,如参考图4-7所描述的。方法1000还可包括在1020处向处理器发送指示碎片整理操作已完成的响应。
[0088]应当注意,在替换实施例中,图10的方法可被修改。例如,在图8B的寻址方案被使用来代替图3B的寻址方案时,标签和页号信息两者都可包括相同数量的位且数据可不必由于页片段失配而在数据高速缓存内被重定位。在这样的实施例中,执行碎片整理操作可包括检查高速缓存未命中但可不包括检查页片段失配。
[0089]图10的方法可由专用集成电路(ASIC)、处理单元(诸如中央处理单元(CPU))、数字信号处理器(DSP)、控制器、现场可编程门阵列(FPGA)设备、另一硬件设备、固件设备、或其任何组合来实现。作为示例,图10的方法可由执行指令的处理器来执行,如参照图11所描述的。
[0090]参照图11,描绘了无线通信设备的特定解说性实施例的框图并将其一般地标示为1100。设备1100包括耦合到存储器1132的处理器,诸如数字信号处理器(DSP) 1110 (或CPU或另一类型的处理器)。设备1100还可包括能用于执行碎片整理操作的碎片整理高速缓存1164。在一解说性实施例中,碎片整理高速缓存1164可对应于图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812,可根据图9、图10、图11的方法来操作,或它们的任何组合。
[0091]碎片整理高速缓存1164可被耦合到存储器1132以在存储器1132上执行碎片整理操作。存储器1132可以是存储数据和可由处理器1110执行以执行各操作的计算机可执行指令1156(包括图1的加载和重新映射阵列184)的非瞬态计算机可读介质。各操作可包括将存储在存储器1132的第一物理存储器地址处的数据从存储器1132加载到碎片整理高速缓存1164的高速缓存行中。第一物理存储器地址可被映射到第一虚拟存储器地址。各操作可进一步包括发起与第一虚拟存储器地址相关联的查找信息(例如,图1的页表162)的修改,以使得第一虚拟存储器地址对应于存储器1132的第二物理存储器地址。各操作还可包括修改与高速缓存行相关联的信息(例如,图1的标签阵列106)以指示高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。各操作可包括基于经修改的信息将数据写到第二物理存储器地址(例如,在该数据被从数据高速缓存逐出时)。
[0092]图11还示出了耦合至数字信号处理器1110和显示器1128的显示器控制器1126。编码器/解码器(C0DECH134也可耦合至数字信号处理器1110。扬声器1136和话筒1138可耦合至CODEC 1134。
[0093]图11还指示无线控制器1140可被耦合至数字信号处理器1110和耦合至天线1142。在特定实施例中,可将DSP 1110、显示器控制器1126、存储器1132、C0DEC1134、以及无线控制器1140包括在系统级封装或片上系统设备1122中。在一特定实施例中,输入设备1130和电源1144被耦合至片上系统设备1122。此外,在一特定实施例中,如图11中所解说的,显示器1128、输入设备1130、扬声器1136、话筒1138、天线1142和电源1144在片上系统设备1122外部。然而,显示器1128、输入设备1130、扬声器1136、话筒1138、天线1142和电源1144中的每一者可被耦合到片上系统设备1122的组件,诸如接口或控制器。
[0094]结合所描述的实施例,公开了一种系统,它可包括用于使用多个物理存储器地址来存储数据的装置,诸如图1的物理存储器130、图3A的主存储器310、图8A的主存储器810、配置成使用多个物理存储器地址来存储数据的一个或多个其他设备或电路、或它们的任何组合。该系统还可包括用于对数据进行高速缓存的装置,其中用于对数据进行高速缓存的装置包括配置成将存储在存储器的第一物理存储器地址处的数据从存储器加载到数据高速缓存的高速缓存行的碎片整理电路,其中第一物理存储器地址被映射到第一虚拟存储器地址。碎片整理电路还可被配置成发起与第一虚拟存储器地址相关联的查找信息的修改,以使得第一虚拟存储器地址对应于存储器的第二物理存储器地址。碎片整理电路可被进一步配置成修改与高速缓存行相关联的信息以指示高速缓存行对应于第二物理存储器地址而非第一物理存储器地址。例如,碎片整理电路可包括图1的碎片整理电路112、图3的碎片整理电路312、图8的碎片整理电路814、图11的碎片整理高速缓存1164、或它们的任何组合。
[0095]上文公开的设备和功能性可被设计和配置在存储于计算机可读介质上的计算机文件(例如,RTL、GDSI1、GERBER等)中。一些或全部此类文件可被提供给基于此类文件来制造设备的制造处理人员。结果得到的产品包括半导体晶片,其随后被切割为半导体管芯并被封装成半导体芯片。这些芯片随后被用在以上描述的设备中。图12描绘了电子设备制造过程1200的特定说明性实施例。
[0096]物理器件信息1202在制造过程1200处(诸如在研究计算机1206处)被接收。物理器件信息1202可包括表示半导体器件的至少一个物理性质的设计信息,该半导体器件诸如是图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合。例如,物理器件信息1202可包括经由耦合至研究计算机1204的用户接口 1206输入的物理参数、材料特性、以及结构信息。研究计算机1206包括耦合至计算机可读介质(诸如存储器1210)的处理器1208,诸如一个或多个处理核。存储器1210可存储计算机可读指令,其可被执行以使处理器1208将物理器件信息1202转换成遵循某一文件格式并生成库文件1212。
[0097]在一特定实施例中,库文件1212包括至少一个包括经转换的设计信息的数据文件。例如,库文件1212可包括包含器件的被提供以与电子设计自动化(EDA)工具1220—起使用的半导体器件库,所述器件包括图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合。
[0098]库文件1212可在设计计算机1214处与EDA工具1220协同使用,设计计算机1214包括耦合至存储器1218的处理器1216,诸如一个或多个处理核。EDA工具1220可被存储为存储器1218处的处理器可执行指令,以使得设计计算机1214的用户能设计库文件1212的包括图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合的电路。例如,设计计算机1214的用户可经由耦合至设计计算机1214的用户接口 1224来输入电路设计信息1222。电路设计信息1222可包括表示半导体器件的至少一个物理性质的设计信息,该半导体器件诸如是图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合。为了解说,电路设计性质可包括特定电路的标识以及与电路设计中其他元件的关系、定位信息、特征尺寸信息、互连信息、或表示半导体器件的物理性质的其他信息。
[0099]设计计算机1214可被配置成转换设计信息(包括电路设计信息1222)以遵循某一文件格式。作为解说,该文件格式化可包括以分层格式表示关于电路布局的平面几何形状、文本标记、及其他信息的数据库二进制文件格式,诸如图形数据系统(GDSII)文件格式。设计计算机1214可被配置成生成包括经转换的设计信息的数据文件,诸如包括描述图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合的信息以及其他电路或信息的GDSII文件1226。为了解说,数据文件可包括与片上系统(S0C)相对应的信息,该SOC包括图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合,并且在该SOC内还包括附加电子电路和组件。
[0100]GDSII文件1226可在制造过程1228处被接收以根据⑶SII文件1226中的经转换信息来制造图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合。例如,设备制造过程可包括将GDSII文件1226提供给掩模制造商1230以创建一个或多个掩模,诸如用于与光刻处理联用的掩模,其被解说为代表性掩模1232。掩模1232可在制造过程期间被用于生成一个或多个晶片1234,晶片1234可被测试并被分成管芯,诸如代表性管芯1236。管芯1236包括包含设备的电路,该设备包括图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合。
[0101]管芯1236可被提供给封装过程1238,其中管芯1236被纳入到代表性封装1240中。例如,封装1240可包括单个管芯1236或多个管芯,诸如系统级封装(SiP)安排。封装1240可被配置成遵循一个或多个标准或规范,诸如电子器件工程联合委员会(JH)EC)标准。
[0102]关于封装1240的信息可诸如经由存储在计算机1246处的组件库被分发给各产品设计者。计算机1246可包括耦合至存储器1250的处理器1248,诸如一个或多个处理核。印刷电路板(PCB)工具可作为处理器可执行指令被存储在存储器1250处以处理经由用户接口1244从计算机1246的用户接收的PCB设计信息12421CB设计信息1242可包括经封装半导体器件在电路板上的物理定位信息,其中与封装1240相对应的此经封装半导体器件包括图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合。
[0103]计算机1246可被配置成转换PCB设计信息1242以生成数据文件,诸如具有包括经封装半导体器件在电路板上的物理定位信息、以及电连接(诸如迹线和通孔)的布局的数据的GERBER文件1252,其中经封装半导体器件对应于包括图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合的封装1240。在其他实施例中,由经转换的PCB设计信息生成的数据文件可具有GERBER格式以外的其他格式。
[0104]GERBER文件1252可在板组装过程1254处被接收并且被用于创建根据GERBER文件1252内存储的设计信息来制造的PCB,诸如代表性PCB 1256。例如,GERBER文件1252可被上传到一个或多个机器以执行PCB生产过程的各个步骤。PCB 1256可填充有电子组件(包括封装1240)以形成代表性印刷电路组装件(PCA) 1258。
[0105]PCA 1258可在产品制造过程1260处被接收,并被集成到一个或多个电子设备中,诸如第一代表性电子设备1262和第二代表性电子设备1264。作为解说而非限定性的不例,第一代表性电子设备1262、第二代表性电子设备1264、或这两者可选自包括以下各项的组:其中集成了图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合的机顶盒、音乐播放器、视频播放器、娱乐单元、导航设备、通信设备、个人数字助理(PDA)、固定位置数据单元、以及计算机。作为另一解说性而非限定性示例,电子设备1262和1264中的一者或多者可以是远程单元(诸如移动电话)、手持式个人通信系统(PCS)单元、便携式数据单元(诸如个人数据助理)、启用全球定位系统(GPS)的设备、导航设备、位置固定的数据单元(诸如仪表读数装备)、或者存储或检索数据或计算机指令的任何其他设备、或其任何组合。尽管图12解说了根据本公开的教导的远程单元,但本公开并不限于这些所解说的单元。本公开的实施例可合适地用在包括具有存储器和片上电路系统的有源集成电路系统的任何设备中。
[0106]如解说性过程1200中所描述的,包括图1的数据高速缓存102、图3A的第三级高速缓存308、图8A的碎片整理高速缓存812、图11的碎片整理高速缓存1164、或其任何组合的器件可以被制造、处理且纳入到电子设备中。关于图1-11公开的各实施例的一个或多个方面可被包括在各个处理阶段,诸如被包括在库文件1212、GDSII文件1226、以及GERBER文件1252内,以及被存储在研究计算机1206的存储器1210、设计计算机1214的存储器1218、计算机1246的存储器1250、在各个阶段(诸如在板组装过程1254)使用的一个或多个其他计算机或处理器(未示出)的存储器处,并且还被纳入到一个或多个其他物理实施例中,诸如掩模1232、管芯1236、封装1240、PCA 1258、其他产品(诸如原型电路或设备(未示出))、图11的碎片整理高速缓存1164中、或者其任何组合。
[0107]尽管描绘了从物理器件设计到最终产品的各个代表性生产阶段,然而在其他实施例中可使用较少的阶段或可包括附加阶段。类似地,过程1200可由单个实体或由执行过程1200的各个阶段的一个或多个实体来执行。
[0108]技术人员将进一步领会,结合本文所公开的实施例来描述的各种解说性逻辑框、配置、模块、电路、和算法步骤可实现为电子硬件、由处理器执行的计算机软件、或这两者的组合。各种解说性组件、框、配置、模块、电路、和步骤已经在上文以其功能性的形式作了一般化描述。此类功能性是被实现为硬件还是处理器可执行指令取决于具体应用和加诸于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本发明的范围。
[0109]结合本文所公开的实施例描述的方法或算法的各个步骤可直接用硬件、由处理器执行的软件模块或这两者的组合来实现。软件模块可驻留在随机存取存储器(RAM)、闪存、只读存储器(R0M)、可编程只读存储器(PR0M)、可擦式可编程只读存储器(EPR0M)、电可擦式可编程只读存储器(EEPROM)、寄存器、硬盘、可移动盘、压缩盘只读存储器(CD-ROM)、或本领域中所知的任何其他形式的非瞬态存储介质中。示例性的存储介质耦合至处理器以使该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算设备或用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在计算设备或用户终端中。
[0110]提供前面对所公开的实施例的描述是为了使本领域技术人员皆能制作或使用所公开的实施例。对这些实施例的各种修改对于本领域技术人员而言将是显而易见的,并且本文中定义的原理可被应用于其他实施例而不会脱离本公开的范围。因此,本公开并非旨在被限定于本文中示出的实施例,而是应被授予与如由所附权利要求定义的原理和新颖性特征一致的最广的可能范围。
【主权项】
1.一种方法,包括: 将存储在存储器的第一物理存储器地址处的数据从所述存储器加载到数据高速缓存的高速缓存行中,其中所述第一物理存储器地址被映射到第一虚拟存储器地址; 在所述数据高速缓存处发起与所述第一虚拟存储器地址相关联的查找信息的修改,以使得所述第一虚拟存储器地址对应于所述存储器的第二物理存储器地址;以及 在所述数据高速缓存处修改与所述高速缓存行相关联的信息以指示所述高速缓存行对应于所述第二物理存储器地址而非所述第一物理存储器地址。2.如权利要求1所述的方法,其特征在于,进一步包括: 在所述数据高速缓存处接收来自处理器的要执行碎片整理操作的请求; 在所述数据从所述数据高速缓存被逐出时,基于经修改的信息将所述数据写到所述第二物理存储器地址;以及 在将所述数据写到所述第二物理存储器地址之后向所述处理器发送响应,所述响应指示所述碎片整理操作已完成。3.如权利要求2所述的方法,其特征在于,所述请求是响应于加载和重新映射指令来接收的,其中所述处理器的指令集包括所述加载和重新映射指令。4.如权利要求1所述的方法,其特征在于,所述存储器被组织成各页,其中所述存储器的页横跨所述高速缓存的多个组,其中所述高速缓存对于每一页包括多个片段,所述方法进一步包括: 在所述第一物理存储器地址结果得到高速缓存命中时,将所述数据从所述高速缓存的对应于所述第一物理地址的第一片段加载到所述高速缓存的对应于所述第二物理地址的第二片段;以及 在所述第一物理存储器地址结果得到高速缓存未命中时,将所述数据从所述存储器加载到对应于所述第二物理地址的所述第二片段。5.如权利要求1所述的方法,其特征在于,修改与所述高速缓存行相关联的信息包括修改标签阵列中的关联于所述高速缓存行的标签信息。6.如权利要求1所述的方法,其特征在于,修改关联于所述高速缓存行的信息包括用对应于第二物理存储器地址的第二标签信息来盖写标签阵列中的对应于所述第一物理存储器地址的第一标签信息。7.如权利要求1所述的方法,其特征在于,进一步包括触发所述数据写到所述第二物理存储器地址。8.如权利要求7所述的方法,其特征在于,触发所述数据写到所述第二物理存储器地址包括将所述高速缓存行标记为脏的。9.如权利要求1所述的方法,其特征在于,所述第一物理存储器地址对应于存储器碎片,并且其中所述第二物理存储器地址对应于碎片整理目的地。10.如权利要求9所述的方法,其特征在于,所述碎片整理目的地对应于所述存储器中的位于存储数据的诸物理地址之间的自由物理地址。11.如权利要求1所述的方法,其特征在于,进一步包括: 将所述数据从所述高速缓存行复制到第二高速缓存行;以及 使所述高速缓存行无效,其中所述高速缓存行与所述存储器的第一片段相关联,并且其中所述第二高速缓存行与所述存储器的第二片段相关联。12.如权利要求1所述的方法,其特征在于,进一步包括进入部分式阵列自刷新模式,所述部分式阵列自刷新模式包括降低包含所述第一物理存储器地址的动态随机存取存储器(DRAM)的一部分的功率。13.如权利要求1所述的方法,其特征在于,进一步包括修改关联于所述虚拟存储器的页表以将所述第一虚拟存储器地址映射到所述第二物理存储器地址。14.如权利要求1所述的方法,其特征在于,进一步包括: 将存储在所述存储器的第三物理存储器地址处的第二数据从所述存储器加载到所述数据高速缓存的第二高速缓存行,其中所述第三物理存储器地址被映射到第三虚拟存储器地址; 在所述数据高速缓存处修改与所述第二高速缓存行相关联的信息以指示所述第二高速缓存行对应于所述第四物理存储器地址而非所述第三物理存储器地址;以及 基于经修改的信息将所述第二数据写到所述第四物理存储器地址。15.如权利要求1所述的方法,其特征在于,进一步包括: 将存储在与所述存储器的页相对应的第一多个附加物理存储器地址中的每一者处的附加数据加载到所述数据高速缓存的附加高速缓存行中; 在所述数据高速缓存处修改与所述附加高速缓存行中的每一者相关联的附加信息以指示每一附加高速缓存行对应于第二多个附加物理存储器地址中的相应物理存储器地址而非所述第一多个附加物理存储器地址;以及 基于经修改的附加信息将所述附加数据写到所述第二多个附加物理存储器地址。16.如权利要求1所述的方法,其特征在于,修改关联于所述高速缓存的信息是由集成到电子设备中的处理器发起的。17.—种系统,包括: 包括多个物理存储器地址的存储器;以及 包括被配置成执行存储器碎片整理操作的碎片整理电路的数据高速缓存,所述存储器碎片整理操作包括: 将存储在所述存储器的第一物理存储器地址处的数据从所述存储器加载到所述数据高速缓存的高速缓存行中,其中所述第一物理存储器地址被映射到第一虚拟存储器地址; 发起与所述第一虚拟存储器地址相关联的查找信息的修改,以使得所述第一虚拟存储器地址对应于所述存储器的第二物理存储器地址;以及 修改与所述高速缓存行相关联的信息以指示所述高速缓存行对应于所述第二物理存储器地址而非所述第一物理存储器地址。18.如权利要求17所述的系统,其特征在于,进一步包括处理器,其中所述数据高速缓存被进一步配置成接收来自所述处理器的要执行所述存储器碎片整理操作的请求以及要向所述处理器发送指示所述存储器碎片整理操作已完成的响应。19.如权利要求18所述的系统,其特征在于,所述响应包括中断信号,并且其中所述高速缓存执行所述碎片整理操作,而同时所述处理器执行与所述碎片整理操作无关的操作。20.如权利要求18所述的系统,其特征在于,将所述数据从所述存储器加载到所述高速缓存是响应于所述请求的。21.如权利要求18所述的系统,其特征在于,将所述数据从所述存储器加载到所述高速缓存是响应于在所述加载和重新映射指令之前从所述处理器接收到的数据请求的。22.如权利要求17所述的系统,其特征在于,进一步包括至少一个附加高速缓存,其中所述数据高速缓存是耦合在主存储器和第二级高速缓存之间的最末级高速缓存。23.如权利要求17所述的系统,其特征在于,所述数据高速缓存包括耦合在主存储器和处理器之间的专用碎片整理高速缓存。24.如权利要求17所述的系统,其特征在于,所述系统被集成到至少一个管芯中。25.如权利要求17所述的系统,其特征在于,进一步包括选自其中集成有所述存储器和所述数据高速缓存的以下各项的电子设备:移动电话、平板设备、计算机、通信设备、机顶盒、音乐播放器、视频播放器、娱乐单元、导航设备、个人数字助理(PDA)、以及位置固定的数据单元。26.—种包括指令的非瞬态计算机可读介质,所述指令在由处理器执行时使所述处理器执行包括以下的操作:将存储在存储器的第一物理存储器地址处的数据从所述存储器加载到数据高速缓存的高速缓存行中,其中所述第一物理存储器地址被映射到第一虚拟存储器地址; 发起与所述第一虚拟存储器地址相关联的查找信息的修改,以使得所述第一虚拟存储器地址对应于所述存储器的第二物理存储器地址;以及 修改与所述高速缓存行相关联的信息以指示所述高速缓存行对应于所述第二物理存储器地址而非所述第一物理存储器地址。27.如权利要求26所述的非瞬态计算机可读介质,其特征在于,进一步包括选自其中集成有所述非瞬态计算机可读介质的以下各项的设备:移动电话、平板设备、计算机、通信设备、机顶盒、音乐播放器、视频播放器、娱乐单元、导航设备、个人数字助理(PDA)、以及位置固定的数据单元。28.—种系统,包括: 用于使用多个物理存储器地址来存储数据的装置; 用于对数据进行高速缓存的装置,其中所述用于对所述数据进行高速缓存的装置包括配置成执行以下操作的碎片整理电路: 将存储在存储器的第一物理存储器地址处的数据从所述存储器加载到数据高速缓存的高速缓存行,其中所述第一物理存储器地址被映射到第一虚拟存储器地址; 发起与所述第一虚拟存储器地址相关联的查找信息的修改,以使得所述第一虚拟存储器地址对应于所述存储器的第二物理存储器地址;以及 修改与所述高速缓存行相关联的信息以指示所述高速缓存行对应于所述第二物理存储器地址而非所述第一物理存储器地址。29.如权利要求28所述的系统,其特征在于,所述系统被集成到至少一个管芯中。30.如权利要求29所述的系统,其特征在于,进一步包括选自其中集成有所述用于存储数据的装置和所述用于对数据进行高速缓存的装置的以下各项的设备:移动电话、平板设备、计算机、通信设备、机顶盒、音乐播放器、视频播放器、娱乐单元、导航设备、个人数字助理(PDA)、以及位置固定的数据单元。
【文档编号】G06F12/0873GK105874440SQ201480072129
【公开日】2016年8月17日
【申请日】2014年12月11日
【发明人】X·董, J·徐
【申请人】高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1