CN104572503B - 可配置高速缓冲存储器及其配置方法 - Google Patents
可配置高速缓冲存储器及其配置方法 Download PDFInfo
- Publication number
- CN104572503B CN104572503B CN201510017108.6A CN201510017108A CN104572503B CN 104572503 B CN104572503 B CN 104572503B CN 201510017108 A CN201510017108 A CN 201510017108A CN 104572503 B CN104572503 B CN 104572503B
- Authority
- CN
- China
- Prior art keywords
- size
- address
- described address
- cache memory
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/251—Local memory within processor subsystem
- G06F2212/2515—Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及可配置高速缓冲存储器及其配置方法。在特定实施例中,揭示一种高速缓冲存储器,其包括标签状态阵列,所述标签状态阵列包括可通过设定索引寻址的标签区域。所述标签状态阵列还包括可通过状态地址寻址的状态区域,其中所述设定索引及所述状态地址包括至少一个共用位。
Description
分案申请的相关信息
本申请是申请号为PCT/US2010/026106,申请日为2010年3月3日,优先权日为2009年3月3日,发明名称为“可配置高速缓冲存储器及其配置方法”的PCT申请进入国家阶段后申请号为201080010235.9的中国发明专利申请的分案申请。
技术领域
本发明大体上是针对于可配置高速缓冲存储器及其配置方法。
背景技术
技术的进步已产生较小且较强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包括无线计算装置,例如便携式无线电话、个人数字助理(PDA)及寻呼装置,其体积小、重量轻且便于用户携带。更具体地说,便携式无线电话(例如,蜂窝式电话及因特网协议(IP)电话)可经由无线网络传送话音及数据包。另外,许多此些无线电话包括并入于其中的其它类型的装置。举例来说,无线电话还可包括数字静态相机、数字视频相机、数字记录器及音频文件播放器。并且,此些无线电话可处理可执行指令,包括可用以接入因特网的软件应用程序(例如,网络浏览器应用程序)。因而,这些无线电话可包括显著的计算能力。
数字信号处理器(DSP)、图像处理器及其它处理装置常常用于便携式个人计算装置中,且结合一个或一个以上高速缓冲存储器来操作。高速缓冲存储器通常为存在于存储器层级中的某处的数据的复本。在一些情况下,高速缓冲存储器可仅具有***中的数据的“最新”复本。高速缓冲存储器的一个典型组件为数据存储器。将此数据存储器划分为若干个高速缓存线,其中每一高速缓存线为***存储器的唯一(及连续)部分的复本。高速缓冲存储器的另一典型组件为用以使***存储器地址与特定高速缓存线相关联的分路。常将这种用以使***存储器地址与特定高速缓存线相关联的分路称为标签。高速缓冲存储器的另一典型组件为用以指示高速缓存线是否有效、经修改、被占有等的状态。
发明内容
可通过修改高速缓存线大小而不改变高速缓冲存储器的标签的数目来重新设计可配置高速缓冲存储器的大小。不同高速缓冲存储器大小之间的映射可通过使用于高速缓冲存储器查找的存储器地址内的索引的位置移位来执行。举例来说,一对多路复用器可在查找操作期间基于高速缓冲存储器的大小来选择地址位以使索引的位置移位。
在特定实施例中,揭示一种设备,其包括具有标签状态阵列的高速缓冲存储器。所述标签状态阵列包括可通过设定索引寻址的标签区域。所述标签状态阵列还包括可通过状态地址寻址的状态区域,其中所述设定索引及所述状态地址包括至少一个共用位。
在另一实施例中,揭示一种方法,其包括在高速缓冲存储器的标签状态阵列处接收地址,其中所述高速缓冲存储器可配置而具有第一大小及大于所述第一大小的第二大小中的一者。所述方法还包括:识别所述地址的第一部分作为设定索引、使用所述设定索引来定位所述标签阵列的至少一个标签字段;以及识别所述地址的第二部分以与存储在所述至少一个标签字段中的值进行比较。所述方法进一步包括:定位所述标签状态阵列的至少一个状态字段,所述至少一个状态字段与和所述第二部分匹配的特定标签字段相关联;以及基于所述地址的第三部分与所述至少一个状态字段的至少两个状态位的比较来识别高速缓存线。所述方法还包括检索所述高速缓存线,其中基于所述高速缓冲存储器经配置而具有所述第一大小还是所述第二大小来选择所述地址的所述第一部分的第一位置及所述地址的所述第二部分的第二位置,且其中所述地址的所述第一部分在所述高速缓冲存储器具有所述第一大小时与在所述高速缓冲存储器具有所述第二大小时具有相同数目个位。
在另一实施例中,揭示一种方法,其包括改变高速缓冲存储器的大小。所述方法还包括响应于改变所述高速缓冲存储器的所述大小而使待从所述高速缓冲存储器检索的数据的地址的设定索引部分的位置移位,其中当使所述位置移位时,所述设定索引部分的位长度并不改变。
在另一实施例中,揭示一种计算机可读媒体。所述计算机可读媒体以有形方式包含计算机可执行指令,所述指令可执行以致使计算机通过以下行为将高速缓冲存储器从具有第一数据区域大小的第一配置改变为具有第二数据区域大小的第二配置:增加与所述高速缓冲存储器的数据阵列的每一条目相关联的数据的量且维持所述数据阵列的可经由设定索引寻址的第一数目个条目;以及维持所述数据阵列的与所述设定索引的每一值相关联的第二数目个条目。所述计算机可执行指令进一步可执行以致使所述计算机使给标签状态阵列编索引的存储器地址的位的范围移位,所述标签状态阵列与所述数据阵列相关联,其中基于将所述高速缓冲存储器从所述第一配置改变为所述第二配置来使给所述标签状态阵列编索引的位的所述范围移位。
所揭示的实施例所提供的一个特定优点是:提供标签与高速缓存线之间的可配置映射,以支持标签对多个数据RAM配置的较大利用,使得当数据RAM配置为100%高速缓冲存储器、50%高速缓冲存储器或25%高速缓冲存储器时,高速缓存线的大小减小等值的量。
所揭示的实施例所提供的另一优点是:当可用于高速缓存的数据RAM减小时,以成本及时序有效的方式使可用标签的数目大体上最大化,这在传统数据局部性假设可能不成立的低功率多线程处理器环境中具有特定重要性。具有较多标签的高速缓冲存储器为较高性能的高速缓冲存储器,因为减少了地址空间冲突。
在审阅包括以下部分的整个申请案之后,本发明的其它方面、优点及特征将变得明显:附图说明、具体实施方式及权利要求书。
附图说明
图1为可配置高速缓冲存储器***的特定说明性实施例的框图,所述可配置高速缓冲存储器***具有标签状态阵列、多个分路及耦合到所述标签状态阵列的高速缓存数据区域;
图2为可配置高速缓冲存储器***的另一特定说明性实施例的框图,所述可配置高速缓冲存储器***具有标签状态阵列、多个分路及耦合到所述标签状态阵列的高速缓存数据区域;
图3为用于高速缓冲存储器查找的存储器地址寄存器以及移位设定索引的特定说明性实施例的框图;
图4为用于高速缓冲存储器查找的存储器地址寄存器及用以产生设定索引的选择电路及索引电路的特定说明性实施例的框图;
图5为用以配置可配置高速缓冲存储器的方法的第一说明性实施例的流程图;
图6为用以配置可配置高速缓冲存储器的方法的第二说明性实施例的流程图;
图7为用以配置可配置高速缓冲存储器的方法的第三说明性实施例的流程图;
图8为包括可配置高速缓冲存储器模块的便携式通信装置的特定实施例的框图;以及
图9为用以制造包括可配置高速缓冲存储器装置的电子装置的制造过程的特定说明性实施例的数据流程图。
具体实施方式
参看图1,说明可配置高速缓冲存储器***100的特定说明性实施例,其具有标签状态阵列108、多个分路120及耦合到所述标签状态阵列108的高速缓存数据区域110。可配置高速缓冲存储器***100包括可配置高速缓冲存储器106及地址102。所述可配置高速缓冲存储器106包括耦合到高速缓存数据区域110的标签状态阵列108。高速缓存数据区域110包括一个或一个以上高速缓存线112。如图1中所示,高速缓存数据区域110可配置以具有对应于第一高速缓冲存储器配置的第一高速缓冲存储器大小或具有对应于第二高速缓冲存储器配置的第二高速缓冲存储器大小,其中所述第二高速缓冲存储器大小大于所述第一高速缓冲存储器大小。高速缓存数据区域110包括与设定索引(例如,设定索引1 122或设定索引2 124)的每一值相关联的多个分路120。所述多个分路120使高速缓存数据区域110能够存储用于每一设定索引值的多个数据值。如图1中所示,高速缓存数据区域110在第一高速缓冲存储器配置中及在第二高速缓冲存储器配置中具有相同数目个分路120。
标签状态阵列108包括可通过设定索引寻址的标签区域116,例如展示为与地址102相关联的设定索引1 122或设定索引2 124。标签状态阵列108还包括可通过状态地址126寻址的状态区域118。高速缓存线112中的每一者与标签地址128相关联。如图1中所示,设定索引2 124及状态地址126包括至少一个共用位104,例如共用地址位。设定索引1 122及状态地址126包括至少两个共用位104,例如两个共用地址位。在特定实施例中,设定索引122、124与状态地址126之间的共用位104(例如,共用地址位)的数目视可配置高速缓冲存储器106的大小而变化。在特定实施例中,状态地址126及设定索引1 122在第一配置中包括两个共用位104,且状态地址126及设定索引2 124在第二配置中包括一个共用位104。标签状态阵列108还包括一个或一个以上集合114。在特定实施例中,标签状态阵列108在第一高速缓冲存储器配置中及在第二高速缓冲存储器配置中具有相同大小的集合114。
如图1中所示,高速缓存线112中的每一者包括一个或一个以上区段或扇区112a、112b。当高速缓存数据区域110具有第一高速缓冲存储器大小时,高速缓存线112中的每一者包括一个区段或扇区112a。当高速缓存数据区域110具有第二高速缓冲存储器大小时,高速缓存线112中的每一者包括两个区段或扇区112a、112b。在特定实施例中,高速缓存数据区域110在第一高速缓冲存储器配置中及在第二高速缓冲存储器配置中可具有相同的高速缓存线区段大小。在替代实施例中,高速缓存数据区域110具有预定数目个可通过设定索引122、124寻址的行。高速缓存数据区域110可经配置以在第一配置中存储与每一行相关联的至少第一数目个高速缓存线112,且在第二配置中存储与每一行相关联的第二数目个高速缓存线112,其中高速缓存线112的所述第二数目大于高速缓存线112的所述第一数目。
高速缓存线大小、数据存储器大小及标签数目之间可存在一关系。此关系可通过如下公式表达:
从此公式可看到,在增加高速缓存线大小的同时保持数据存储器大小恒定可减少标签数目。减少标签数目可需要较少物理存储装置,然而,减少标签数目意味着高速缓冲存储器中可含有较少的唯一存储器位置(或范围)。作为极端实例,考虑仅具有单个标签的32字节高速缓冲存储器。所有32个字节将为***存储器的连续部分的复本。相反,如果高速缓冲存储器具有8个标签,那么高速缓冲存储器中可含有8个无关的4字节区。通过扩展,还可将单个32字节连续区存储在此高速缓冲存储器中。
在一些情况下,高速缓冲存储器的数据存储器部分可并非恒定的,而是如在图1的可配置高速缓冲存储器***100中,可为可配置的,其中可为高速缓冲存储器保留一部分,且可为紧密耦合存储器(TCM)保留另一部分。在一种布置中,高速缓冲存储器可具有固定的高速缓存线大小及标签与高速缓存线之间的固定映射。然而,如果减小此高速缓冲存储器的大小,那么高速缓存线的数目及标签的数目减少此量。举例来说,在将数据随机存取存储器(RAM)组织为4个组的L2高速缓冲存储器中(其中每一组具有其自有的标签集合),如果将数据RAM配置为50%高速缓冲存储器及50%TCM,那么TCM中的标签不再可用于高速缓冲存储器。
通过调整高速缓存线的大小连同数据存储器的大小,图1的可配置高速缓冲存储器***100使标签的数目能够保持大体上相同。因此,提供标签与高速缓存线之间的可配置映射以支持标签对多个数据RAM配置的较大利用,使得当数据RAM配置为100%高速缓冲存储器、50%高速缓冲存储器或25%高速缓冲存储器时,高速缓存线的大小减小等值的量。另外,当可用于高速缓存的数据RAM减小时,以成本及时序有效的方式使可用标签的数目大体上最大化。这在传统数据局部性假设可能不成立的低功率多线程处理器环境中可具有特定重要性。具有较多标签的高速缓冲存储器可为较高性能的高速缓冲存储器,因为减少了地址空间冲突。
参看图2,说明可配置高速缓冲存储器***200的特定说明性实施例,其具有标签状态阵列208、多个分路220及耦合到所述标签状态阵列208的数据区域210。可配置高速缓冲存储器***200包括可配置高速缓冲存储器206、用以存储存储器地址的存储器地址寄存器202、索引电路224、比较电路226、验证电路228及选择电路230。可配置高速缓冲存储器206包括耦合到数据区域210的标签状态阵列208。数据区域210包括一个或一个以上高速缓存线212。如图2中所示,数据区域210可配置以具有对应于第一高速缓冲存储器配置的第一高速缓冲存储器大小,或具有对应于第二高速缓冲存储器配置的第二高速缓冲存储器大小,其中所述第二高速缓冲存储器大小大于所述第一高速缓冲存储器大小,或具有对应于第三高速缓冲存储器配置的第三高速缓冲存储器大小,其中所述第三高速缓冲存储器大小大于所述第二高速缓冲存储器大小。数据区域210包括与设定索引的每一值相关联的多个分路220。所述多个分路220使数据区域210能够存储对应于每一设定索引值的多个数据值。如图2中所示,数据区域210在第一高速缓冲存储器配置及在第二高速缓冲存储器配置中以及在第三高速缓冲存储器配置中具有相同数目个分路220。
标签状态阵列208包括可通过设定索引寻址的标签区域216。标签状态阵列208还包括可通过状态地址寻址的状态区域218。高速缓存线212中的每一者可通过标签地址来寻址。标签状态阵列208还包括一个或一个以上集合214。在特定实施例中,标签状态阵列208在第一高速缓冲存储器配置中及在第二高速缓冲存储器配置中以及在第三高速缓冲存储器配置中可具有相同大小的集合214。
在特定实施例中,数据区域210具有预定数目个集合以存储可经由设定索引及标签状态阵列208存取的数据。在第一高速缓冲存储器配置中,数据区域210的预定数目个集合中的每一者可经配置以存储第一量的数据。在第二高速缓冲存储器配置中,数据区域210的预定数目个集合中的每一者可经配置以存储第二量的数据。
在特定实施例中,索引电路224耦合到存储器地址寄存器202以使用设定索引来识别标签状态阵列208的多个标签条目。举例来说,索引电路224可存取标签状态阵列208,且定位并识别从存储器地址寄存器202接收到的对应于所述设定索引的多个标签条目。如图2中所示,索引电路还可通过二位连接而耦合到选择电路。
在特定实施例中,比较电路226耦合到存储器地址寄存器202以将经识别的多个标签条目的标签值与存储器地址的标签部分进行比较。举例来说,比较电路226可存取标签状态阵列208,且将通过索引电路224识别的多个标签条目的标签值与从存储器地址寄存器202接收到的存储器地址的相应标签部分进行比较。
在特定实施例中,验证电路228耦合到存储器地址寄存器202以解码状态地址,且将经解码的状态地址与数据区域210的预定数目个集合的经识别集合的验证位222进行比较。验证电路228可存取标签状态阵列208,且将验证位222与从存储器地址寄存器202接收到的存储器地址的经解码状态地址部分进行比较。如图2中所示,验证电路228可通过二位连接而耦合到存储器地址寄存器202。如图2中所示,验证位222可包括4个状态位。
如下文将结合图4更详细地描述,在特定实施例中,选择电路230耦合到存储器地址寄存器202,且耦合到索引电路224以选择性地在第一高速缓冲存储器配置中包括设定索引中的存储器地址的特定位,且在第二高速缓冲存储器配置中不包括设定索引中的特定位。如图2中所示,选择电路230可通过二位连接而耦合到索引电路224。在特定实施例中,选择电路230包括多路复用器(例如,图4中所展示的多路复用器406),其具有经耦合而接收至少一个共用位的输入(如图4中的424处所示),且具有耦合到标签区域216的输出(如图4中的416处所示)。所述多路复用器可经配置以选择性地将所述至少一个共用位作为可选输入提供到设定索引,例如图4中所示的设定索引408。
参看图3,在300处展示用于高速缓冲存储器查找的存储器地址寄存器302及移位设定索引306、312、320的特定说明性实施例。移位设定索引306、312及320使得能够针对三个不同高速缓冲存储器大小配置使用相同数目个集合来寻址到高速缓冲存储器中。在特定实施例中,用于高速缓冲存储器查找的存储器地址寄存器302为图1的地址102或图2的存储器地址寄存器202。
设定索引306以从位13到位5的9个位为范围,与地址的状态部分324共享两个共用位308(位5及位6),其中状态部分324以从位6到位5的两个位为范围。地址的标签部分304以从位31到位14为范围。
如由箭头314指示,1位位移的移位使设定索引312与地址的状态部分324共享一个共用位316(位6),所述设定索引312以从位14到位6的9个位为范围。在此情况下,地址的状态部分324的位5可用以标记两个高速缓存线区段或扇区,使得具有设定索引312的高速缓冲存储器可为具有设定索引306的高速缓冲存储器两倍大。地址的标签部分310以从位31到位15为范围,添加的最低有效位零可级联到位31∶15。
如由箭头322指示,另一1位位移的移位使设定索引320与地址的状态部分324不共享共用位,所述设定索引320以从位15到位7的9个位为范围。在此情况下,地址的状态部分324的位5及位6两者可用以标记四个高速缓存线区段或扇区,使得具有设定索引320的高速缓冲存储器可为具有设定索引312的高速缓冲存储器两倍大。地址的标签部分318以从位31到位16为范围,其中两个最低有效位零可级联到位31∶16。
总的高速缓冲存储器大小可由集合的数目乘以分路的数目乘以高速缓存线的大小乘以区段或扇区的数目的乘积给出。由9位设定索引来索引的集合的数目为29=512。对于具有32个位的高速缓存线大小的4分路高速缓冲存储器来说,对于具有设定索引306的高速缓冲存储器,总的高速缓冲存储器大小为512乘以4乘以32或约64千位(kbit),其中高速缓冲存储器针对每一高速缓存线仅具有一个区段或扇区。针对具有设定索引312的高速缓冲存储器(其中高速缓冲存储器针对每一高速缓存线具有两个区段或扇区),总的高速缓冲存储器大小为约128kbit。针对具有设定索引320的高速缓冲存储器(其中高速缓冲存储器针对每一高速缓存线具有四个区段或扇区),总的高速缓冲存储器大小为约256kbit。
参看图4,在400处展示用于高速缓冲存储器查找的存储器地址寄存器402及用以产生设定索引408的选择电路426及索引电路428的特定说明性实施例。***400可用以确定图3的寄存器***300的移位设定索引306、312、320。***400可实施于图1的可配置高速缓冲存储器***100或图2的可配置高速缓冲存储器***200中。
用于高速缓冲存储器查找的存储器地址寄存器402经配置以存储从最低有效位(LSB)(位0)标记到最高有效位(MSB)(位31)的32位值。多路复用器404从用于高速缓冲存储器查找的存储器地址寄存器402接收位15作为一个输入(如418处所指示),且接收位6作为另一输入(如422处所指示)。如412处所指示,多路复用器404将位15或位6输出到设定索引408。通过沿二位线410的高速缓冲存储器大小430控制来控制多路复用器404的输出。多路复用器406接收位14作为一个输入(如420处所指示),且接收位5作为另一输入(如424处所指示)。如416处所指示,多路复用器406将位14或位5输出到设定索引408。通过沿二位线410的高速缓冲存储器大小430控制来控制多路复用器406的输出。设定索引408沿7位线414从用于高速缓冲存储器查找的存储器地址寄存器402接收以从位13到位7为范围的位。
当多路复用器404输出位6且多路复用器406输出位5时,那么设定索引408对应于图3的设定索引306。当多路复用器404输出位6且多路复用器406输出位14时,那么设定索引408对应于图3的设定索引312,其中具有设定索引312的高速缓冲存储器可为具有设定索引306的高速缓冲存储器的大小的两倍。当多路复用器404输出位15且多路复用器406输出位14时,那么设定索引408对应于图3的设定索引320,其中具有设定索引320的高速缓冲存储器可为具有设定索引312的高速缓冲存储器的大小的两倍,且可为具有设定索引306的高速缓冲存储器的大小的四倍。
参看图5,在500处展示用以配置可配置高速缓冲存储器的方法的第一说明性实施例的流程图。方法500包括在502处在高速缓冲存储器的标签状态阵列处接收地址,其中所述高速缓冲存储器可配置以具有第一大小及大于所述第一大小的第二大小中的一者。举例来说,如图1中所示,可在可配置高速缓冲存储器106的标签状态阵列108处接收地址102,其中可配置高速缓冲存储器106的高速缓存数据区域110可配置以具有第一大小及大于所述第一大小的第二大小中的一者。方法500还包括在504处识别地址的第一部分作为设定索引。举例来说,如图1中所示,可将地址102的第一部分识别为设定索引1122,或可将地址102的第一部分识别为设定索引2124。类似地,如图3中所示,可将用于高速缓冲存储器查找的存储器地址寄存器302中的地址的第一部分识别为设定索引306,或识别为设定索引312,或识别为设定索引320。
方法500进一步包括在506处使用设定索引来定位标签状态阵列的至少一个标签字段。举例来说,可使用设定索引1122或设定索引2124来定位图1中所展示的标签状态阵列108的至少一个标签区域116。方法500还包括在508处识别地址的第二部分以与存储在所述至少一个标签字段处的值进行比较。举例来说,可将地址102的第二部分识别为标签128,可将所述标签128与存储在图1的至少一个标签区域116处的值进行比较。方法500进一步包括在510处定位标签状态阵列的至少一个状态字段,所述至少一个状态字段与和所述第二部分匹配的特定标签字段相关联。举例来说,可定位标签状态阵列108的至少一个状态区域118,所述至少一个状态区域118可与和图1的标签128匹配的特定标签区域116相关联。
方法500还包括在512处基于地址的第三部分与至少一个状态字段的至少两个状态位的比较来识别高速缓存线。举例来说,可基于地址102的状态地址126部分与图1的标签状态阵列108的至少一个状态区域118的至少两个状态位的比较来识别高速缓存线112中的一者。方法500进一步包括在514处检索所述高速缓存线,其中基于高速缓冲存储器经配置而具有第一大小还是第二大小来选择地址的第一部分的第一位置及地址的第二部分的第二位置,且其中地址的第一部分在高速缓冲存储器具有第一大小时与在高速缓冲存储器具有第二大小时具有相同数目个位。举例来说,可检索高速缓存线112中的经识别者,其中可基于高速缓存数据区域110经配置而具有第一大小还是第二大小来选择地址102的设定索引部分(设定索引1 122或设定索引2124)的第一位置及地址102的标签128部分的第二位置,且其中地址102的设定索引部分(设定索引1 122或设定索引2124)在高速缓存数据区域110具有第一大小时与在高速缓存数据区域110具有第二大小时具有相同数目个位。
在特定实施例中,高速缓冲存储器进一步可配置以具有大于第二大小的第三大小。举例来说,如图2中所示,可配置的高速缓冲存储器206的数据区域210可进一步可配置以具有大于第二大小的第三大小。在特定实施例中,当高速缓冲存储器经配置而具有第一大小时,地址的第一部分与地址的第三部分的两个位重叠,其中当高速缓冲存储器经配置而具有第二大小时,地址的第一部分与地址的第三部分的单个位重叠,且其中当高速缓冲存储器经配置而具有第三大小时,地址的第一部分不与地址的第三部分的任何位重叠。举例来说,如上文所描述,当高速缓冲存储器经配置而具有第一大小(64kbit)时,图3的设定索引306与状态地址324的两个位308重叠,其中当高速缓冲存储器经配置而具有第二大小(128kbit)时,设定索引312与状态地址324的单个位316重叠,且其中当高速缓冲存储器经配置而具有第三大小(256kbit)时,设定索引320不与状态地址324的任何位重叠。
参看图6,在600处展示用以配置可配置高速缓冲存储器的方法的第二说明性实施例的流程图。方法600包括在602处改变高速缓冲存储器的大小。举例来说,图1的可配置高速缓冲存储器106的高速缓存数据区域110可从第一大小改变为第二大小,或从第二大小改变为第一大小。类似地,图2的可配置高速缓冲存储器206的数据区域210可从第一大小改变为第二大小,或从第二大小改变为第三大小,或从第一大小改变为第三大小,或从第二大小改变为第一大小,或从第三大小改变为第二大小,或从第三大小改变为第一大小。
方法600还包括在604处响应于改变高速缓冲存储器的大小而使待从高速缓冲存储器检索的数据的地址的设定索引部分的位置移位,其中当使所述位置移位时设定索引部分的位长度不改变。举例来说,图3的设定索引306可响应于高速缓冲存储器的大小从64kbit改变为128kbit而如箭头314所示移位到设定索引312的位置,其中设定索引306及设定索引312均具有9个位的位长度。类似地,图3的设定索引312可响应于高速缓冲存储器的大小从128kbit改变为256kbit而如箭头322所示移位到设定索引320的位置,其中设定索引312及设定索引320均具有9个位的位长度。
在特定实施例中,当高速缓冲存储器经配置而具有第一大小时或当高速缓冲存储器经配置而具有大于第一大小的第二大小时,地址的设定索引部分与地址的状态地址部分的至少一个位重叠。举例来说,当高速缓冲存储器经配置而具有约64kbit的第一大小时,图3的设定索引306与状态地址324的至少一个位308重叠,且当高速缓冲存储器经配置而具有约128kbit的第二大小时,设定索引312与状态地址324的至少一个位316重叠。
在特定实施例中,高速缓冲存储器进一步可配置以具有大于第二大小的第三大小。举例来说,如图2中所示,可配置高速缓冲存储器206的数据区域210可进一步可配置以具有大于第二大小的第三大小。在特定实施例中,当高速缓冲存储器经配置而具有第一大小时,地址的设定索引部分与地址的状态地址部分的两个位重叠,其中当高速缓冲存储器经配置而具有第二大小时,地址的设定索引部分与地址的状态地址部分的单个位重叠,且其中当高速缓冲存储器经配置而具有第三大小时,地址的设定索引部分不与地址的状态地址部分的任何位重叠。举例来说,如上文所描述,当高速缓冲存储器经配置而具有第一大小(64kbit)时,图3的设定索引306与状态地址324的两个位308重叠,其中当高速缓冲存储器经配置而具有第二大小(128kbit)时,设定索引312与状态地址324的单个位316重叠,且其中当高速缓冲存储器经配置而具有第三大小(256kbit)时,设定索引320不与状态地址324的任何位重叠。
参看图7,在700处展示用以配置可配置高速缓冲存储器的方法的第三说明性实施例的流程图。方法700包括在702处通过以下行为来将高速缓冲存储器从具有第一数据区域大小的第一配置改变为具有第二数据区域大小的第二配置:增加与高速缓冲存储器的数据阵列的每一条目相关联的数据的量且维持所述数据阵列的可经由设定索引寻址的条目的第一数目;以及维持所述数据阵列的与设定索引的每一值相关联的条目的第二数目。举例来说,图1的可配置高速缓冲存储器106可通过将高速缓存线扇区或区段112b添加到高速缓存线112中的每一者的高速缓存线扇区或区段112a来使高速缓存数据区域110从第一大小改变为第二大小。
方法700还包括在704处使给标签状态阵列编索引的存储器地址的位的范围移位,所述标签状态阵列与所述数据阵列相关联,其中基于将高速缓冲存储器从第一配置改变为第二配置来使给所述标签状态阵列编索引的位范围移位。举例来说,图3的设定索引306可响应于将高速缓冲存储器的大小从64kbit改变为128kbit而如箭头314所示移位到设定索引312的位置,其中设定索引306及设定索引312均给与数据阵列相关联的标签状态阵列编索引,例如图1的与高速缓存数据区域110相关联的标签状态阵列108。
在特定实施例中,方法700进一步包括设定对一对多路复用器的控制输入,所述多路复用器各自接收来自给标签状态阵列编索引的位范围的至少一个输入,且各自将一可选位输出到设定索引。举例来说,图4的多路复用器404及多路复用器406可使其相应的控制输入通过沿二位线410的高速缓冲存储器大小430控制来设定。如上文所描述,多路复用器404及多路复用器406可各自接收来自给标签状态阵列(例如,图1的标签状态阵列108或图2的标签状态阵列208)编索引的位范围的至少一个输入,且可各自将一可选位输出到设定索引408。
在特定实施例中,方法700进一步包括通过以下行为将高速缓冲存储器从具有第二数据区域大小的第二配置改变为具有第三数据区域大小的第三配置:增加与高速缓冲存储器的数据阵列的每一条目相关联的数据的量且维持所述数据阵列的可经由设定索引寻址的条目的第一数目;以及维持所述数据阵列的与设定索引的每一值相关联的条目的第二数目。举例来说,图2的可配置高速缓冲存储器206可通过将额外高速缓存线扇区或区段添加到高速缓存线212中的每一者的现有高速缓存线扇区或区段来使数据区域210从第二大小改变为第三大小。方法700可进一步包括使给标签状态阵列编索引的存储器地址的位的范围移位,所述标签状态阵列与数据阵列相关联,其中响应于将高速缓冲存储器从第二配置改变为第三配置来使给标签状态阵列编索引的位的范围移位。举例来说,图3的设定索引312可响应于将高速缓冲存储器的大小从128kbit改变为256kbit而如箭头322所示移位到设定索引320的位置,其中设定索引312及设定索引320均给与数据阵列相关联的标签状态阵列编索引,例如图2的与数据区域210相关联的标签状态阵列208。
根据图5到图7的方法或根据本文中所描述的其它实施例而操作的可配置高速缓冲存储器可并入多种电子装置中,例如移动电话、机顶盒装置、计算机、个人数字助理(PDA)、音乐播放器、视频播放器、存储或检索数据或计算机指令的任何其它装置,或其任何组合。
图8为包括可配置高速缓冲存储器模块864的***800的特定实施例的框图。***800可实施于便携式电子装置中且包括耦合到存储器832的信号处理器810,例如数字信号处理器(DSP)。***800包括可配置高速缓冲存储器模块864。在说明性实例中,可配置高速缓冲存储器模块864包括图1到图4的***中的任一者、根据图5到图7的实施例中的任一者而操作,或其任何组合。可配置高速缓冲存储器模块864可在信号处理器810中或可为单独的装置或电路(未图示)。在特定实施例中,图1的可配置高速缓冲存储器106可由数字信号处理器存取。举例来说,如图8中所示,可配置高速缓冲存储器模块864可由数字信号处理器(DSP)810存取,且数字信号处理器810经配置以存取存储在可配置高速缓冲存储器模块864处的数据或程序指令。图1的至少一个共用位104可对应于例如地址102等存储器地址的预定位,所述存储器地址是在可配置的高速缓冲存储器106处结合在数字信号处理器810处执行的高速缓冲存储器查找操作而接收的。
相机接口868耦合到信号处理器810且还耦合到例如视频相机870等相机。显示控制器826耦合到信号处理器810且耦合到显示装置828。编码器/解码器(CODEC)834也可耦合到信号处理器810。扬声器836及麦克风838可耦合到CODEC 834。无线接口840可耦合到信号处理器810且耦合到无线天线842,使得可将经由天线842及无线接口840接收到的无线数据提供到处理器810。
信号处理器810可经配置以执行存储在计算机可读媒体(例如,存储器832)处的计算机可执行指令866,所述计算机可执行指令866可执行以使得计算机(例如,处理器810)致使可配置高速缓冲存储器模块864通过以下行为将高速缓冲存储器从具有第一数据区域大小的第一配置改变为具有第二数据区域大小的第二配置:增加与高速缓冲存储器的数据阵列的每一条目相关联的数据的量且维持所述数据阵列的可经由设定索引寻址的条目的第一数目;以及维持所述数据阵列的与设定索引的每一值相关联的条目的第二数目。所述计算机可执行指令进一步可执行以致使可配置高速缓冲存储器模块864使给标签状态阵列编索引的存储器地址的位的范围移位,所述标签状态阵列与数据阵列相关联,其中基于将高速缓冲存储器从第一配置改变为第二配置来使给所述标签状态阵列编索引的位范围移位。
在特定实施例中,信号处理器810、显示控制器826、存储器832、CODEC 834、无线接口840及相机接口868包括于封装中***或芯片上***装置822中。在特定实施例中,输入装置830及电源供应器844耦合到芯片上***装置822。此外,在特定实施例中,如图8中所说明,显示装置828、输入装置830、扬声器836、麦克风838、无线天线842、视频相机870及电源供应器844在芯片上***装置822之外。然而,显示装置828、输入装置830、扬声器836、麦克风838、无线天线842、视频相机870及电源供应器844中的每一者可耦合到芯片上***装置822的组件,例如接口或控制器。
前文所揭示的装置及功能性可通过提供设计信息来实施且配置到存储在计算机可读媒体上的计算机文件(例如,RTL、GDS II、GERBER,等)中。可将此些文件中的一些或所有提供给基于此些文件制造装置的制造处置程序。所得产品包括半导体晶片,所述半导体晶片接着被切割成半导体裸片且被封装成半导体芯片。接着将所述芯片用于上文所描述的装置中。图9描绘电子装置制造过程900的特定说明性实施例。
在制造过程900中(例如,在研究计算机906处)接收物理装置信息902。物理装置信息902可包括表示半导体装置(例如,图1的可配置高速缓冲存储器的组件、图2的可配置高速缓冲存储器的组件,或其任何组合)的至少一个物理性质的设计信息。举例来说,物理装置信息902可包括物理参数、材料特征,及经由耦合到研究计算机906的用户接口904输入的结构信息。研究计算机906包括耦合到计算机可读媒体(例如,存储器910)的处理器908(例如,一个或一个以上处理核心)。存储器910可存储计算机可读指令,其可执行以致使处理器908变换物理装置信息902以便符合文件格式且产生库文件912。
在特定实施例中,库文件912包括至少一个数据文件,所述至少一个数据文件包括经变换的设计信息。举例来说,库文件912可包括对应于半导体装置(包括图1的可配置高速缓冲存储器的组件、图2的可配置高速缓冲存储器的组件,或其任何组合)的数据文件的库,提供所述库以供与电子设计自动化(EDA)工具920一起使用。
在设计计算机914处,可结合EDA工具920来使用库文件912,所述设计计算机914包括耦合到存储器918的处理器916(例如,一个或一个以上处理核心)。可将EDA工具920存储为存储器918处的处理器可执行指令,以使设计计算机914的用户能够使用图1的可配置高速缓冲存储器的组件、图2的可配置高速缓冲存储器的组件或其任何组合来设计库文件912的电路。举例来说,设计计算机914的用户可经由耦合到设计计算机914的用户接口924输入电路设计信息922。电路设计信息922可包括表示半导体装置(例如,图1的可配置高速缓冲存储器的组件、图2的可配置高速缓冲存储器的组件,或其任何组合)的至少一个物理性质的设计信息。为了说明,电路设计性质可包括对特定电路及与电路设计中的其它元件的关系的识别、定位信息、特征大小信息、互连信息,或表示半导体装置的物理性质的其它信息。
设计计算机914可经配置以变换设计信息(包括电路设计信息922)以便符合文件格式。为了说明,所述文件格式可包括数据库二进制文件格式,其表示平面几何形状、文本标记,及关于呈例如图形数据***(GDS II)文件格式等层级格式的电路布局的其它信息的数据库二进制文件格式。设计计算机914可经配置以产生包括经变换的设计信息的数据文件(例如,GDS II文件926),除了其它电路或信息之外,所述数据文件包括描述图1的可配置高速缓冲存储器、图2的可配置高速缓冲存储器或其任何组合的信息。为了说明,所述数据文件可包括对应于芯片上***(SOC)的信息,所述芯片上***(SOC)包括图1的可配置高速缓冲存储器且还包括SOC内的额外电子电路及组件。
可在制造过程928处接收GDS II文件926以根据GDS II文件926中的经变换的信息来制造图1的可配置高速缓冲存储器、图2的可配置高速缓冲存储器、SOC或其任何组合。举例来说,装置制造过程可包括将GDS II文件926提供给掩模制造者930以形成一个或一个以上掩模,例如待用于光刻处理的掩模,说明为代表性掩模932。可在制造过程期间使用掩模932以产生一个或一个以上晶片934,可对所述一个或一个以上晶片934进行测试且将其分离为若干个裸片(例如,代表性裸片936)。裸片936包括电路,所述电路包括图1的可配置高速缓冲存储器、图2的可配置高速缓冲存储器或其任何组合。
可将裸片936提供到封装过程938,其中将裸片936并入到代表性封装940中。举例来说,封装940可包括单个裸片936或多个裸片,例如封装中***(SiP)配置。封装940可经配置以符合一个或一个以上标准或规范,例如美国电子工程设计发展联合协会(JointElectron Device Engineering Council,JEDEC)标准。
关于封装940的信息可(例如)经由存储在计算机946处的组件库分配给各种产品设计者。计算机946可包括耦合到存储器950的处理器948,例如一个或一个以上处理核心。印刷电路板(PCB)工具可作为处理器可执行指令存储在存储器950处,以处理经由用户接口944从计算机946的用户接收的PCB设计信息942。PCB设计信息942可包括电路板上的已封装半导体装置的物理定位信息,所述已封装半导体装置对应于包括图1的可配置高速缓冲存储器、图2的可配置高速缓冲存储器或其任何组合的封装940。
计算机946可经配置以变换PCB设计信息942以便产生数据文件(例如,GERBER文件952),其具有包括电路板上的已封装半导体装置的物理定位信息以及电连接(例如,迹线及通路(via))的布局的数据,其中所述已封装半导体装置对应于包括图1的可配置高速缓冲存储器、图2的可配置高速缓冲存储器或其任何组合的封装940。在其它实施例中,由经变换的PCB设计信息产生的数据文件可具有不同于GERBER格式的格式。
可在板组装过程954处接收GERBER文件952,且将其用以产生根据存储在GERBER文件952内的设计信息而制造的PCB,例如代表性PCB 956。举例来说,可将GERBER文件952上载到用于执行PCB生产过程的各种步骤的一个或一个以上机器。PCB 956可填有包括封装940的电子组件以形成代表性印刷电路组合件(PCA)958。
可在产品制造过程960处接收PCA 958,且将其集成到一个或一个以上电子装置中,例如第一代表性电子装置962及第二代表性电子装置964。作为说明性的非限制性实例,第一代表性电子装置962、第二代表性电子装置964或其两者可选自以下各项的群组:机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元及计算机。作为另一说明性的非限制性实例,电子装置962及964中的一者或一者以上可为远程单元(例如,移动电话)、手持式个人通信***(PCS)单元、便携式数据单元(例如,个人数据助理)、具备全球定位***(GPS)能力的装置、导航装置、固定位置数据单元(例如,仪表读取设备),或存储或检索数据或计算机指令的任何其它装置,或其任何组合。尽管图1到图8中的一者或一者以上可说明根据本发明的教示的远程单元,但本发明并不限于这些所说明的示范性单元。本发明的实施例可适当地用于包括有源集成电路(其包括存储器及芯片上电路)的任何装置中。
因此,如说明性过程900中所描述,可制造、处理图1的可配置高速缓冲存储器、图2的可配置高速缓冲存储器或其任何组合,并将其并入到电子装置中。关于图1到图8而揭示的实施例的一个或一个以上方面可包括于各种处理阶段(例如,包括于库文件912、GDS II文件926及GERBER文件952内),以及存储在研究计算机906的存储器910、设计计算机914的存储器918、计算机946的存储器950、在各种阶段处(例如,在板组装过程954处)使用的一个或一个以上其它计算机或处理器(未图示)的存储器处,且还并入到一个或一个以上其它物理实施例中,例如掩模932、裸片936、封装940、PCA 958、例如原型电路或装置(未图示)等其它产品,或其任何组合。尽管描绘了从物理装置设计到最终产品的生产的各种代表性阶段,但在其它实施例中,可使用较少阶段或可包括额外阶段。类似地,过程900可由单个实体或由执行过程900的各种阶段的一个或一个以上实体来执行。
所属领域的技术人员将进一步了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文已大体上按其功能性描述了各种说明性组件、块、配置、模块、电路及步骤。将此功能性实施为硬件或是软件取决于特定应用及强加于整个***的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但不应将此些实施决策解释为导致脱离本发明的范围。
结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中或上述两者的组合中。软件模块可驻存在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸盘、压缩磁盘只读存储器(CD-ROM),或此项技术中已知的任一其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻存在专用集成电路(ASIC)中。ASIC可驻存在计算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻存在计算装置或用户终端中。
提供所揭示实施例的先前描述是为了使所属领域的技术人员能够制作或使用所揭示实施例。对这些实施例的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中所定义的一般原理可在不脱离本发明的范围的情况下应用于其它实施例。因此,本发明无意限于本文中所展示的实施例,而是将被赋予与如由所附权利要求书界定的原理及新颖特征一致的最宽可能范围。
Claims (16)
1.一种用于配置高速缓冲存储器的方法,其包含:
在高速缓冲存储器的标签状态阵列处接收地址,其中所述高速缓冲存储器经配置以具有第一大小、第二大小或第三大小,所述第二大小大于所述第一大小,所述第三大小大于所述第二大小;
将所述地址的第一部分识别为设定索引;
定位所述标签状态阵列的至少一个状态字段;
基于所述地址的第三部分与所述至少一个状态字段的至少两个状态位的比较来识别所述高速缓冲存储器的高速缓存线,其中所述地址的所述第三部分与所述地址的所述第一部分重叠的位的数目是基于所述高速缓冲存储器的大小;以及
检索所述高速缓存线,
其中当所述高速缓冲存储器经配置以具有所述第一大小时,所述地址的所述第一部分与所述地址的所述第三部分的两个位重叠。
2.根据权利要求1所述的方法,其进一步包含使用所述设定索引定位所述标签状态阵列的至少一个标签字段。
3.根据权利要求1所述的方法,其中所述地址的所述第三部分为所述地址的状态地址部分。
4.根据权利要求1所述的方法,其中当所述高速缓冲存储器经配置以具有大于所述第一大小的第二大小时,所述地址的所述第一部分与所述地址的所述第三部分的单个位重叠。
5.根据权利要求4所述的方法,其中当所述高速缓冲存储器经配置以具有大于所述第二大小的第三大小时,所述地址的所述第一部分不与所述地址的所述第三部分的任何位重叠。
6.根据权利要求1所述的方法,其中所述地址的所述第一部分存储在存储器地址寄存器中。
7.一种用于配置高速缓冲存储器的设备,其包含:
高速缓冲存储器;以及
耦合到所述高速缓冲存储器的处理器,所述处理器经配置以:
在高速缓冲存储器的标签状态阵列处接收地址,其中所述高速缓冲存储器经配置以具有第一大小、第二大小或第三大小,所述第二大小大于所述第一大小,所述第三大小大于所述第二大小;
将所述地址的第一部分识别为设定索引;
定位所述标签状态阵列的至少一个状态字段;
基于所述地址的第三部分与所述至少一个状态字段的至少两个状态位的比较来识别所述高速缓冲存储器的高速缓存线,其中所述地址的所述第三部分与所述地址的所述第一部分重叠的位的数目是基于所述高速缓冲存储器的大小;以及
检索所述高速缓存线,
其中当所述高速缓冲存储器经配置而具有所述第一大小时,所述地址的所述第一部分与所述地址的所述第三部分的两个位重叠。
8.根据权利要求7所述的设备,其中所述地址的所述第三部分为所述地址的状态地址部分。
9.根据权利要求7所述的设备,其中当所述高速缓冲存储器经配置而具有大于所述第一大小的第二大小时,所述地址的所述第一部分与所述地址的所述第三部分的单个位重叠。
10.根据权利要求9所述的设备,其中当所述高速缓冲存储器经配置而具有大于所述第二大小的第三大小时,所述地址的所述第一部分不与所述地址的所述第三部分的任何位重叠。
11.根据权利要求7所述的设备,其中所述标签状态阵列的至少一个标签字段是基于所述设定索引来定位的。
12.一种包括指令的非暂时性计算机可读媒体,所述指令由处理器执行时使所述处理器:
在高速缓冲存储器的标签状态阵列处接收地址,其中所述高速缓冲存储器经配置以具有第一大小、第二大小或第三大小,所述第二大小大于所述第一大小,所述第三大小大于所述第二大小;
将所述地址的第一部分识别为设定索引;
定位所述标签状态阵列的至少一个状态字段;
基于所述地址的第三部分与所述至少一个状态字段的至少两个状态位的比较来识别所述高速缓冲存储器的高速缓存线,其中所述地址的所述第三部分与所述地址的所述第一部分重叠的位的数目是基于所述高速缓冲存储器的大小;以及
检索所述高速缓存线,
其中当所述高速缓冲存储器经配置而具有所述第一大小时,所述地址的所述第一部分与所述地址的所述第三部分的两个位重叠。
13.根据权利要求12所述的非暂时性计算机可读媒体,其中所述地址的所述第三部分为所述地址的状态地址部分。
14.根据权利要求12所述的非暂时性计算机可读媒体,其中当所述高速缓冲存储器经配置而具有大于所述第一大小的第二大小时,所述地址的所述第一部分与所述地址的所述第三部分的单个位重叠。
15.一种用于配置高速缓冲存储器的设备,其包含:
存储装置,其中所述存储装置经配置以具有第一大小、第二大小和第三大小,所述第二大小大于所述第一大小,所述第三大小大于所述第二大小;以及
用于处理指令以执行操作的装置,所述操作包含:
在所述存储装置的标签状态阵列处接收地址;
将所述地址的第一部分识别为设定索引;
定位所述标签状态阵列的至少一个状态字段;
基于所述地址的第三部分与所述至少一个状态字段的至少两个状态位的比较来识别所述存储装置的高速缓存线,其中所述地址的所述第三部分与所述地址的所述第一部分重叠的位的数目是基于所述存储装置的大小;以及
检索所述高速缓存线,
其中当所述高速缓冲存储器经配置而具有所述第一大小时,所述地址的所述第一部分与所述地址的所述第三部分的两个位重叠。
16.根据权利要求15所述的设备,其中所述地址的所述第三部分为所述地址的状态地址部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/397,185 | 2009-03-03 | ||
US12/397,185 US8266409B2 (en) | 2009-03-03 | 2009-03-03 | Configurable cache and method to configure same |
CN201080010235.9A CN102341794B (zh) | 2009-03-03 | 2010-03-03 | 可配置高速缓冲存储器及其配置方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080010235.9A Division CN102341794B (zh) | 2009-03-03 | 2010-03-03 | 可配置高速缓冲存储器及其配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572503A CN104572503A (zh) | 2015-04-29 |
CN104572503B true CN104572503B (zh) | 2018-07-03 |
Family
ID=42112122
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510017108.6A Active CN104572503B (zh) | 2009-03-03 | 2010-03-03 | 可配置高速缓冲存储器及其配置方法 |
CN201080010235.9A Active CN102341794B (zh) | 2009-03-03 | 2010-03-03 | 可配置高速缓冲存储器及其配置方法 |
CN201510017107.1A Active CN104598395B (zh) | 2009-03-03 | 2010-03-03 | 可配置高速缓冲存储器及其配置方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080010235.9A Active CN102341794B (zh) | 2009-03-03 | 2010-03-03 | 可配置高速缓冲存储器及其配置方法 |
CN201510017107.1A Active CN104598395B (zh) | 2009-03-03 | 2010-03-03 | 可配置高速缓冲存储器及其配置方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US8266409B2 (zh) |
EP (1) | EP2404241A1 (zh) |
JP (2) | JP5357277B2 (zh) |
KR (2) | KR101293623B1 (zh) |
CN (3) | CN104572503B (zh) |
BR (1) | BRPI1009228B1 (zh) |
TW (3) | TWI418982B (zh) |
WO (1) | WO2010102048A1 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266409B2 (en) | 2009-03-03 | 2012-09-11 | Qualcomm Incorporated | Configurable cache and method to configure same |
EP2261805B1 (en) * | 2009-06-12 | 2013-07-31 | Siemens Aktiengesellschaft | Method for storing real time values |
US8595441B1 (en) * | 2010-01-04 | 2013-11-26 | Marvell Israel (M.I.S.L) Ltd. | Cache operations using transformed indexes |
CN102541754A (zh) * | 2010-12-27 | 2012-07-04 | 北京国睿中数科技股份有限公司 | 用于对存储器进行配置的***和方法 |
US8890601B2 (en) * | 2011-11-11 | 2014-11-18 | Qualcomm Incorporated | Method, system, and circuit with a driver output interface having a common mode connection coupled to a transistor bulk connection |
US20130173881A1 (en) * | 2011-12-29 | 2013-07-04 | You-Chang Hsiao | Circuit for setting a plurality of blocks as an in-system programming area and a data buffer area and method therefore |
CN102541761B (zh) * | 2012-01-17 | 2014-10-22 | 苏州国芯科技有限公司 | 应用于嵌入式芯片的只读高速缓冲存储器 |
US9058268B1 (en) * | 2012-09-20 | 2015-06-16 | Matrox Graphics Inc. | Apparatus, system and method for memory management |
US8886886B2 (en) * | 2012-09-28 | 2014-11-11 | Apple Inc. | System cache with sticky removal engine |
CN103019959B (zh) * | 2012-11-21 | 2016-05-04 | 中国科学院声学研究所 | 一种指令高速缓冲存储器 |
US9087561B2 (en) * | 2012-12-21 | 2015-07-21 | Advanced Micro Devices, Inc. | Hybrid cache |
US9165650B2 (en) * | 2013-02-07 | 2015-10-20 | Qualcomm Incorporated | Hybrid dynamic-static encoder with optional hit and/or multi-hit detection |
CN103546802B (zh) * | 2013-10-15 | 2017-07-25 | 深圳Tcl新技术有限公司 | 动态调整缓存的方法及显示终端 |
US9239788B2 (en) * | 2013-10-24 | 2016-01-19 | Qualcomm Incorporated | Split write operation for resistive memory cache |
US9304929B2 (en) | 2013-10-24 | 2016-04-05 | Mediatek Singapore Pte. Ltd. | Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device |
US9398297B2 (en) | 2013-11-04 | 2016-07-19 | Intel Corporation | Integral image coding |
US9430394B2 (en) * | 2013-12-12 | 2016-08-30 | Mediatek Singapore Pte. Ltd. | Storage system having data storage lines with different data storage line sizes |
CN104731519B (zh) * | 2013-12-20 | 2018-03-09 | 晨星半导体股份有限公司 | 快取存储器管理装置及应用该快取存储器管理装置的动态影像***及方法 |
KR102317248B1 (ko) * | 2014-03-17 | 2021-10-26 | 한국전자통신연구원 | 캐시의 부분연관 재구성을 이용한 캐시 제어 장치 및 캐시 관리 방법 |
US9779025B2 (en) * | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
KR102354848B1 (ko) * | 2014-11-28 | 2022-01-21 | 삼성전자주식회사 | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 |
US9916251B2 (en) | 2014-12-01 | 2018-03-13 | Samsung Electronics Co., Ltd. | Display driving apparatus and cache managing method thereof |
CN105980979B (zh) * | 2014-12-13 | 2018-11-20 | 上海兆芯集成电路有限公司 | 用于检测暂停的逻辑分析器 |
US10528345B2 (en) * | 2015-03-27 | 2020-01-07 | Intel Corporation | Instructions and logic to provide atomic range modification operations |
US9916252B2 (en) * | 2015-05-19 | 2018-03-13 | Linear Algebra Technologies Limited | Systems and methods for addressing a cache with split-indexes |
US20170046167A1 (en) * | 2015-08-14 | 2017-02-16 | Qualcomm Incorporated | Predicting memory instruction punts in a computer processor using a punt avoidance table (pat) |
CN106708747A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种存储器切换方法及装置 |
US9747041B2 (en) * | 2015-12-23 | 2017-08-29 | Intel Corporation | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
KR101780586B1 (ko) * | 2016-03-16 | 2017-09-21 | 고려대학교 산학협력단 | 모놀리식 3d 집적 구조 기반 캐시메모리 |
CN105843360B (zh) * | 2016-03-23 | 2018-06-12 | 中国电子科技集团公司第三十八研究所 | 一种降低指令高速缓冲存储器功耗的装置及方法 |
US10152276B2 (en) * | 2016-07-18 | 2018-12-11 | Winbond Electronics Corporation | Memory device including data processor and program method of same |
US20180088829A1 (en) * | 2016-09-29 | 2018-03-29 | Qualcomm Incorporated | Area efficient architecture for multi way read on highly associative content addressable memory (cam) arrays |
US10599566B2 (en) * | 2016-11-29 | 2020-03-24 | Qualcomm Incorporated | Multi-mode cache invalidation |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
CN111971652B (zh) * | 2018-03-31 | 2024-06-04 | 美光科技公司 | 多线程自调度可重新配置计算架构的条件分支控制 |
CN109801655B (zh) * | 2018-12-19 | 2020-10-13 | 成都海光集成电路设计有限公司 | 标签存储位读出比较电路以及标签数据读出比较电路 |
TWI706250B (zh) * | 2019-02-26 | 2020-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
JP7423644B2 (ja) | 2019-03-15 | 2024-01-29 | インテル コーポレイション | 行列アクセラレータアーキテクチャのためのスパース最適化 |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
CN113424148A (zh) | 2019-03-15 | 2021-09-21 | 英特尔公司 | 用于检测跨分片访问、提供多分片推理缩放和提供最佳页迁移的多分片存储器管理 |
CN110147330B (zh) * | 2019-05-23 | 2023-09-01 | 深圳市创维软件有限公司 | 一种字模数据的缓存方法、装置、设备和存储介质 |
US11507174B2 (en) * | 2020-02-25 | 2022-11-22 | Qualcomm Incorporated | System physical address size aware cache memory |
US11294808B2 (en) * | 2020-05-21 | 2022-04-05 | Micron Technology, Inc. | Adaptive cache |
US11409657B2 (en) | 2020-07-14 | 2022-08-09 | Micron Technology, Inc. | Adaptive address tracking |
US11422934B2 (en) | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
US11507516B2 (en) | 2020-08-19 | 2022-11-22 | Micron Technology, Inc. | Adaptive cache partitioning |
US20230124538A1 (en) * | 2021-10-19 | 2023-04-20 | Electronics And Telecommunications Research Institute | Apparatus and method for managing cache memory |
KR20230075914A (ko) * | 2021-11-23 | 2023-05-31 | 삼성전자주식회사 | 프로세싱 장치 및 이의 동작 방법과 전자 장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334759A (zh) * | 2007-06-28 | 2008-12-31 | 国际商业机器公司 | 访问处理器缓存的方法和*** |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4315312A (en) * | 1979-12-19 | 1982-02-09 | Ncr Corporation | Cache memory having a variable data block size |
US5257360A (en) * | 1990-03-23 | 1993-10-26 | Advanced Micro Devices,Inc. | Re-configurable block length cache |
US5586303A (en) * | 1992-02-12 | 1996-12-17 | Integrated Device Technology, Inc. | Structure and method for providing a cache memory of selectable sizes |
US5721874A (en) | 1995-06-16 | 1998-02-24 | International Business Machines Corporation | Configurable cache with variable, dynamically addressable line sizes |
US5857214A (en) | 1995-12-18 | 1999-01-05 | Advanced Micro Devices, Inc. | Microprocessor with a fixed cache size selected from a predesigned set of sizes |
US6725334B2 (en) * | 2000-06-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for exclusive two-level caching in a chip-multiprocessor |
US6865646B2 (en) | 2001-12-31 | 2005-03-08 | Intel Corporation | Segmented distributed memory module cache |
CN1714347A (zh) | 2002-12-17 | 2005-12-28 | 国际商业机器公司 | 选择性可变行宽存储器 |
US7406579B2 (en) | 2002-12-17 | 2008-07-29 | International Business Machines Corporation | Selectively changeable line width memory |
US7191320B2 (en) * | 2003-02-11 | 2007-03-13 | Via Technologies, Inc. | Apparatus and method for performing a detached load operation in a pipeline microprocessor |
US7127560B2 (en) * | 2003-10-14 | 2006-10-24 | International Business Machines Corporation | Method of dynamically controlling cache size |
US7133997B2 (en) | 2003-12-22 | 2006-11-07 | Intel Corporation | Configurable cache |
KR100714933B1 (ko) * | 2005-05-17 | 2007-05-07 | 인터내셔널 비지네스 머신즈 코포레이션 | 선택성이 있는 가변 라인 폭 메모리 |
US7861055B2 (en) | 2005-06-07 | 2010-12-28 | Broadcom Corporation | Method and system for on-chip configurable data ram for fast memory and pseudo associative caches |
JP4364166B2 (ja) * | 2005-06-30 | 2009-11-11 | 株式会社東芝 | キャッシュ装置 |
US7913003B2 (en) * | 2006-02-24 | 2011-03-22 | Intel Corporation | Reclaim algorithm for fast edits in a nonvolatile file system |
US20090006754A1 (en) | 2007-06-28 | 2009-01-01 | Luick David A | Design structure for l2 cache/nest address translation |
US8266409B2 (en) | 2009-03-03 | 2012-09-11 | Qualcomm Incorporated | Configurable cache and method to configure same |
-
2009
- 2009-03-03 US US12/397,185 patent/US8266409B2/en active Active
-
2010
- 2010-03-03 CN CN201510017108.6A patent/CN104572503B/zh active Active
- 2010-03-03 EP EP10707768A patent/EP2404241A1/en not_active Ceased
- 2010-03-03 KR KR1020117023295A patent/KR101293623B1/ko active IP Right Grant
- 2010-03-03 WO PCT/US2010/026106 patent/WO2010102048A1/en active Application Filing
- 2010-03-03 CN CN201080010235.9A patent/CN102341794B/zh active Active
- 2010-03-03 TW TW099106221A patent/TWI418982B/zh active
- 2010-03-03 JP JP2011552230A patent/JP5357277B2/ja active Active
- 2010-03-03 TW TW104138095A patent/TWI548992B/zh active
- 2010-03-03 CN CN201510017107.1A patent/CN104598395B/zh active Active
- 2010-03-03 KR KR1020137016407A patent/KR101293613B1/ko active IP Right Grant
- 2010-03-03 TW TW102138554A patent/TWI516932B/zh active
- 2010-03-03 BR BRPI1009228-5A patent/BRPI1009228B1/pt active IP Right Grant
-
2012
- 2012-06-25 US US13/531,803 patent/US8719503B2/en active Active
-
2013
- 2013-08-28 JP JP2013176397A patent/JP5650821B2/ja active Active
-
2014
- 2014-03-19 US US14/219,034 patent/US8943293B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101334759A (zh) * | 2007-06-28 | 2008-12-31 | 国际商业机器公司 | 访问处理器缓存的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
EP2404241A1 (en) | 2012-01-11 |
US20120265943A1 (en) | 2012-10-18 |
CN102341794A (zh) | 2012-02-01 |
US8266409B2 (en) | 2012-09-11 |
US20100228941A1 (en) | 2010-09-09 |
WO2010102048A1 (en) | 2010-09-10 |
US8943293B2 (en) | 2015-01-27 |
CN104572503A (zh) | 2015-04-29 |
KR101293623B1 (ko) | 2013-08-13 |
TWI516932B (zh) | 2016-01-11 |
CN104598395B (zh) | 2017-10-31 |
TW201610681A (zh) | 2016-03-16 |
KR101293613B1 (ko) | 2013-08-13 |
US20140208027A1 (en) | 2014-07-24 |
BRPI1009228A2 (pt) | 2016-03-15 |
US8719503B2 (en) | 2014-05-06 |
JP5650821B2 (ja) | 2015-01-07 |
TWI548992B (zh) | 2016-09-11 |
JP5357277B2 (ja) | 2013-12-04 |
CN102341794B (zh) | 2015-02-11 |
JP2012519334A (ja) | 2012-08-23 |
KR20130080868A (ko) | 2013-07-15 |
TWI418982B (zh) | 2013-12-11 |
BRPI1009228B1 (pt) | 2020-12-01 |
JP2013257902A (ja) | 2013-12-26 |
KR20110127733A (ko) | 2011-11-25 |
TW201415228A (zh) | 2014-04-16 |
TW201106158A (en) | 2011-02-16 |
CN104598395A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572503B (zh) | 可配置高速缓冲存储器及其配置方法 | |
CN102667743B (zh) | 存取具有非均匀页大小的多通道存储器*** | |
CN105874440B (zh) | 用于对存储器进行碎片整理的***和方法 | |
US8195916B2 (en) | Apparatus and method to translate virtual addresses to physical addresses in a base plus offset addressing mode | |
US9224442B2 (en) | System and method to dynamically determine a timing parameter of a memory device | |
CN109564545A (zh) | 用于压缩地址的方法和设备 | |
CN104685465B (zh) | 向量寄存器堆的地址线到元素组的选择性耦合 | |
CN105373534A (zh) | 列表展示方法、装置及列表展示端 | |
US9250998B2 (en) | Cache structure with parity-protected clean data and ECC-protected dirty data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |