TW201610681A - Method, apparatus, and computer readable medium for cache configuration - Google Patents

Method, apparatus, and computer readable medium for cache configuration Download PDF

Info

Publication number
TW201610681A
TW201610681A TW104138095A TW104138095A TW201610681A TW 201610681 A TW201610681 A TW 201610681A TW 104138095 A TW104138095 A TW 104138095A TW 104138095 A TW104138095 A TW 104138095A TW 201610681 A TW201610681 A TW 201610681A
Authority
TW
Taiwan
Prior art keywords
cache memory
cache
address
size
memory
Prior art date
Application number
TW104138095A
Other languages
Chinese (zh)
Other versions
TWI548992B (en
Inventor
克立斯多福 艾德華 克伯
亞傑 安特 伊各
魯西恩 寇德古
沈吉安
Original Assignee
高通公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 高通公司 filed Critical 高通公司
Publication of TW201610681A publication Critical patent/TW201610681A/en
Application granted granted Critical
Publication of TWI548992B publication Critical patent/TWI548992B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • G06F2212/2515Local memory within processor subsystem being configurable for different purposes, e.g. as cache or non-cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

Abstract

In a particular embodiment, a cache is disclosed that includes a tag state array that includes a tag area addressable by a set index. The tag state array also includes a state area addressable by a state address, where the set index and the state address include at least one common bit.

Description

用於快取記憶體組態之方法、裝置及非暫態電腦可讀媒體 Method, device and non-transitory computer readable medium for cache memory configuration

本發明大體而言係針對於可組態快取記憶體及組態其之方法。 The present invention is generally directed to configurable cache memory and methods of configuring the same.

技術之進展已產生較小且較強大之計算器件。舉例而言,當前存在各種攜帶型個人計算器件,包括無線計算器件,諸如,攜帶型無線電話、個人數位助理(PDA)及傳呼器件,其體積小、重量輕且易於由使用者攜帶。更具體言之,攜帶型無線電話(諸如,蜂巢式電話及網際網路協定(IP)電話)可經由無線網路傳達語音及資料封包。另外,許多該等無線電話包括併入於其中之其他類型之器件。舉例而言,無線電話亦可包括靜態數位相機、數位視訊相機、數位記錄器及音訊檔案播放器。又,該等無線電話可處理可執行指令,包括可用以存取網際網路之軟體應用程式(諸如,web瀏覽器應用程式)。因而,此等無線電話可包括顯著的計算能力。 Advances in technology have produced smaller and stronger computing devices. For example, there are currently a variety of portable personal computing devices, including wireless computing devices, such as portable wireless telephones, personal digital assistants (PDAs), and paging devices that are small, lightweight, and easily carried by a user. More specifically, portable wireless telephones, such as cellular telephones and Internet Protocol (IP) telephones, can communicate voice and data packets over a wireless network. In addition, many of these wireless telephones include other types of devices incorporated therein. For example, a wireless telephone can also include a static digital camera, a digital video camera, a digital recorder, and an audio file player. Also, the wireless telephones can process executable instructions, including software applications (such as web browser applications) that can be used to access the Internet. Thus, such wireless telephones can include significant computing power.

數位信號處理器(DSP)、影像處理器及其他處理器件頻繁地用於攜帶型個人計算器件中且結合一或多個快取記憶體來操作。快取記憶體通常為存在於記憶體階層架構中之某處之資料的複本。在一些情況下,快取記憶體可僅具有系統中之資料之「最新」複本。快取記憶體之一典型組件為資料記憶體。將此資料記憶體劃分為快取線,其中每一快取線為系統記憶體之獨特(及相連)部分之複本。快取記憶體之另 一典型組件為用以使系統記憶體位址與特定快取線相關聯之通道。時常將用以使系統記憶體位址與特定快取線相關聯之此通道稱為標籤。快取記憶體之另一典型組件為用以指示一快取線是否有效、經修改、被佔有及其類似者之狀態。 Digital signal processors (DSPs), image processors, and other processing devices are frequently used in portable personal computing devices and operate in conjunction with one or more cache memories. The cache memory is typically a copy of the material that exists somewhere in the memory hierarchy. In some cases, the cache memory may only have a "latest" copy of the data in the system. A typical component of cache memory is data memory. The data memory is divided into cache lines, each of which is a copy of the unique (and connected) portion of the system memory. Cache memory A typical component is a channel used to associate a system memory address with a particular cache line. This channel, which is used to associate the system memory address with a particular cache line, is often referred to as a tag. Another typical component of the cache memory is the state used to indicate whether a cache line is valid, modified, possessed, and the like.

可組態快取記憶體可藉由修改快取線大小而不改變快取記憶體之標籤的數目來加以重新定大小。不同快取記憶體大小之間的映射可藉由對用於快取記憶體查找之記憶體位址內之索引的位置進行移位來執行。作為一實例,一對多工器可在查找操作期間基於快取記憶體之大小來選擇位址位元以對索引之位置進行移位。 The configurable cache memory can be resized by modifying the cache line size without changing the number of tags in the cache memory. The mapping between different cache memory sizes can be performed by shifting the position of the index within the memory address used for the cache memory lookup. As an example, a pair of multiplexers may select address bits based on the size of the cache memory during a seek operation to shift the position of the index.

在一特定實施例中,揭示一種裝置,其包括一具有一標籤狀態陣列之快取記憶體。該標籤狀態陣列包括一可藉由一設定索引定址之標籤區域。該標籤狀態陣列亦包括一可藉由一狀態位址定址之狀態區域,其中該設定索引及該狀態位址包括至少一共同位元。 In a particular embodiment, an apparatus is disclosed that includes a cache memory having an array of tag states. The tag status array includes a tag area addressable by a set index. The tag status array also includes a status area addressable by a status address, wherein the set index and the status address include at least one common bit.

在另一實施例中,揭示一種方法,其包括在一快取記憶體之一標籤狀態陣列處接收一位址,其中該快取記憶體可組態而具有一第一大小及一大於該第一大小之第二大小中的一者。該方法亦包括識別該位址之一第一部分作為一設定索引、使用該設定索引來定位該標籤陣列之至少一標籤欄位,及識別該位址之一第二部分以與一儲存於該至少一標籤欄位中之值進行比較。該方法進一步包括:定位該標籤狀態陣列之至少一狀態欄位,該至少一狀態欄位係與匹配該第二部分之一特定標籤欄位相關聯;及基於該位址之一第三部分與該至少一狀態欄位之至少兩個狀態位元的一比較來識別一快取線。該方法亦包括擷取該快取線,其中基於該快取記憶體經組態而具有該第一大小抑或該第二大小來選擇該位址之該第一部分的一第一位置及該位址之該第二部分的一第二位置,且其中該位址之該第一部分在該快取記憶體具有該第 一大小時與在該快取記憶體具有該第二大小時具有相同數目個位元。 In another embodiment, a method is disclosed that includes receiving an address at a tag state array of a cache memory, wherein the cache memory is configurable to have a first size and a greater than the first One of the second size of a size. The method also includes identifying a first portion of the address as a set index, using the set index to locate at least one tag field of the tag array, and identifying a second portion of the address to be stored in the at least one The values in a label field are compared. The method further includes locating at least one status field of the tag status array, the at least one status field being associated with a particular tag field that matches one of the second portions; and based on the third portion of the address A comparison of at least two status bits of at least one status field identifies a cache line. The method also includes extracting the cache line, wherein the first location and the address of the first portion of the address are selected based on whether the cache memory is configured to have the first size or the second size a second location of the second portion, and wherein the first portion of the address has the first portion in the cache memory One hour has the same number of bits as when the cache has the second size.

在另一實施例中,揭示一種方法,其包括改變一快取記憶體之一大小。該方法亦包括回應於改變該快取記憶體之該大小而對待自該快取記憶體擷取之資料的一位址之一設定索引部分的一位置進行移位,其中當對該位置進行移位時該設定索引部分之一位元長度並不改變。 In another embodiment, a method is disclosed that includes changing a size of a cache memory. The method also includes shifting a position of the index portion of one of the address bits of the data to be retrieved from the cache memory in response to changing the size of the cache memory, wherein the position is shifted When the bit is set, the bit length of one of the index portions is not changed.

在另一實施例中,揭示一種電腦可讀媒體。該電腦可讀媒體以有形方式具體化電腦可執行指令,該等指令可執行以使一電腦藉由以下行為將一快取記憶體自一具有一第一資料區域大小之第一組態改變至一具有一第二資料區域大小之第二組態:增加與該快取記憶體之一資料陣列的每一項相關聯之資料的量且維持該資料陣列的可經由一設定索引定址之項的一第一數目,及維持該資料陣列的與該設定索引之每一值相關聯之項的一第二數目。該等電腦可執行指令進一步可執行以使該電腦對給一標籤狀態陣列編索引的一記憶體位址之位元的一範圍進行移位,該標籤狀態陣列與該資料陣列相關聯,其中基於將該快取記憶體自該第一組態改變至該第二組態來對給該標籤狀態陣列編索引之位元的該範圍進行移位。 In another embodiment, a computer readable medium is disclosed. The computer readable medium tangibly embodyes computer executable instructions executable to cause a computer to change a cache memory from a first configuration having a first data area size to a a second configuration having a second data area size: increasing the amount of data associated with each item of the data array of the cache memory and maintaining an item of the data array addressable via a set index a first number, and maintaining a second number of items of the data array associated with each of the set index. The computer executable instructions are further executable to cause the computer to shift a range of bits of a memory address indexed by a tag state array, the tag state array being associated with the data array, wherein The cache memory is changed from the first configuration to the second configuration to shift the range of bits indexing the tag state array.

由所揭示之實施例提供的一特定優點為:提供標籤與快取線之間的可組態映射以支援標籤對多個資料RAM組態之較大利用,使得當資料RAM經組態而為100%快取記憶體、50%快取記憶體或25%快取記憶體時,快取線之大小以等值量減小。 A particular advantage provided by the disclosed embodiments is that a configurable mapping between the tag and the cache line is provided to support the tag's greater utilization of multiple data RAM configurations such that when the data RAM is configured When 100% cache memory, 50% cache memory or 25% cache memory, the size of the cache line is reduced by the equivalent amount.

由所揭示之實施例提供的另一優點為:當可用於快取之資料RAM減小時,以成本及時間上有效的方式使可用標籤之數目大體上最大化,此在傳統資料局部性假設可能不成立的小功率多執行緒之處理器環境中具有特定重要性。具有較多標籤之快取記憶體為一較高效能(performing)之快取記憶體,因為減少了位址空間衝突。 Another advantage provided by the disclosed embodiments is that the number of available tags is substantially maximized in a cost effective and time efficient manner when the data RAM available for cache is reduced, which may be assumed in conventional data locality assumptions. The low-power multi-threaded processor environment that is not established is of particular importance. The cache memory with more tags is a higher performing cache memory because address space conflicts are reduced.

在檢閱完包括以下部分之整個申請案之後,本發明之其他態樣、 優點及特徵將變得顯而易見:[圖式簡單說明]、[實施方式]及[申請專利範圍]。 After reviewing the entire application including the following sections, other aspects of the invention, Advantages and features will become apparent: [Simple Description of the Drawings], [Embodiment] and [Scope of Application].

100‧‧‧可組態快取記憶體系統 100‧‧‧Configurable Cache Memory System

102‧‧‧位址 102‧‧‧ address

104‧‧‧共同位元 104‧‧‧Common bits

106‧‧‧可組態快取記憶體 106‧‧‧Configurable cache memory

108‧‧‧標籤狀態陣列 108‧‧‧Label Status Array

110‧‧‧快取資料區域 110‧‧‧Cache data area

112‧‧‧快取線 112‧‧‧Cache line

112a‧‧‧區段或磁區 112a‧‧‧section or magnetic zone

112b‧‧‧區段或磁區 112b‧‧‧section or magnetic zone

114‧‧‧集合 114‧‧‧Collection

116‧‧‧標籤區域 116‧‧‧Label area

118‧‧‧狀態區域 118‧‧‧Status area

120‧‧‧通道 120‧‧‧ channel

122‧‧‧設定索引1 122‧‧‧Set index 1

124‧‧‧設定索引2 124‧‧‧Set index 2

126‧‧‧狀態位址 126‧‧‧ State Address

128‧‧‧標籤位址 128‧‧‧ label address

200‧‧‧可組態快取記憶體系統 200‧‧‧Configurable Cache Memory System

202‧‧‧記憶體位址暫存器 202‧‧‧Memory Address Register

206‧‧‧可組態快取記憶體 206‧‧‧Configurable cache memory

208‧‧‧標籤狀態陣列 208‧‧‧Label Status Array

210‧‧‧資料區域 210‧‧‧Information area

212‧‧‧快取線 212‧‧‧Cache line

214‧‧‧集合 214‧‧‧Collection

216‧‧‧標籤區域 216‧‧‧ label area

218‧‧‧狀態區域 218‧‧‧Status area

220‧‧‧通道 220‧‧‧ channel

222‧‧‧驗證位元 222‧‧‧ verification bit

224‧‧‧索引電路 224‧‧‧ index circuit

226‧‧‧比較電路 226‧‧‧Comparative circuit

228‧‧‧驗證電路 228‧‧‧Verification circuit

230‧‧‧選擇電路 230‧‧‧Selection circuit

300‧‧‧暫存器系統 300‧‧‧Storage System

302‧‧‧用於快取記憶體查找之記憶體位址暫存器 302‧‧‧Memory Address Register for Cache Memory Search

304‧‧‧標籤部分 304‧‧‧ Label section

306‧‧‧移位設定索引 306‧‧‧Shift setting index

308‧‧‧共同位元 308‧‧‧ Common bits

310‧‧‧標籤部分 310‧‧‧Label section

312‧‧‧移位設定索引 312‧‧‧Shift setting index

314‧‧‧箭頭 314‧‧‧ arrow

316‧‧‧共同位元 316‧‧‧ Common bits

318‧‧‧標籤部分 318‧‧‧ Label section

320‧‧‧移位設定索引 320‧‧‧Shift setting index

322‧‧‧箭頭 322‧‧‧ arrow

324‧‧‧狀態部分 324‧‧‧Status section

400‧‧‧系統 400‧‧‧ system

402‧‧‧用於快取記憶體查找之記憶體位址暫存器 402‧‧‧Memory Address Register for Cache Memory Search

404‧‧‧多工器 404‧‧‧Multiplexer

406‧‧‧多工器 406‧‧‧Multiplexer

408‧‧‧設定索引 408‧‧‧Set index

410‧‧‧二位元線 410‧‧‧ two-dimensional line

414‧‧‧7位元線 414‧‧‧7 bit line

426‧‧‧選擇電路 426‧‧‧Selection circuit

428‧‧‧索引電路 428‧‧‧ index circuit

430‧‧‧快取記憶體大小 430‧‧‧Cache memory size

500‧‧‧用以組態一可組態快取記憶體的方法 500‧‧‧Method for configuring a configurable cache memory

600‧‧‧用以組態一可組態快取記憶體的方法 600‧‧‧Method for configuring a configurable cache memory

700‧‧‧用以組態一可組態快取記憶體的方法 700‧‧‧Method for configuring a configurable cache memory

800‧‧‧系統 800‧‧‧ system

810‧‧‧信號處理器 810‧‧‧Signal Processor

822‧‧‧封裝級系統或晶載系統器件 822‧‧‧Package level system or crystal system device

826‧‧‧顯示控制器 826‧‧‧ display controller

828‧‧‧顯示器件 828‧‧‧Display device

830‧‧‧輸入器件 830‧‧‧ Input device

832‧‧‧記憶體 832‧‧‧ memory

834‧‧‧編碼器/解碼器 834‧‧‧Encoder/Decoder

836‧‧‧揚聲器 836‧‧‧Speaker

838‧‧‧麥克風 838‧‧‧ microphone

840‧‧‧無線介面 840‧‧‧Wireless interface

842‧‧‧無線天線 842‧‧‧Wireless antenna

844‧‧‧電源供應器 844‧‧‧Power supply

864‧‧‧可組態之快取記憶體模組 864‧‧‧Configurable cache memory module

866‧‧‧電腦可執行指令 866‧‧‧Computer executable instructions

868‧‧‧相機介面 868‧‧‧ camera interface

870‧‧‧視訊相機 870‧‧‧ video camera

900‧‧‧電子器件製造過程 900‧‧‧Electronic device manufacturing process

902‧‧‧實體器件資訊 902‧‧‧ Physical Device Information

904‧‧‧使用者介面 904‧‧‧User interface

906‧‧‧研究電腦 906‧‧‧Research computer

908‧‧‧處理器 908‧‧‧ processor

910‧‧‧記憶體 910‧‧‧ memory

912‧‧‧程式庫檔案 912‧‧‧Program file

914‧‧‧設計電腦 914‧‧‧Design computer

916‧‧‧處理器 916‧‧‧ processor

918‧‧‧記憶體 918‧‧‧ memory

920‧‧‧電子設計自動化(EDA)工具 920‧‧ Electronic Design Automation (EDA) Tools

922‧‧‧電路設計資訊 922‧‧‧Circuit design information

924‧‧‧使用者介面 924‧‧‧User interface

926‧‧‧GDSII檔案 926‧‧‧GDSII file

928‧‧‧製造過程 928‧‧‧Manufacture process

930‧‧‧遮罩製造者 930‧‧‧Mask maker

932‧‧‧代表性遮罩 932‧‧‧ representative mask

934‧‧‧晶圓 934‧‧‧ wafer

936‧‧‧代表性晶粒 936‧‧‧ representative grain

938‧‧‧封裝過程 938‧‧‧Packaging process

940‧‧‧代表性封裝 940‧‧‧ representative package

942‧‧‧PCB設計資訊 942‧‧‧PCB design information

944‧‧‧使用者介面 944‧‧‧User interface

946‧‧‧電腦 946‧‧‧ computer

948‧‧‧處理器 948‧‧‧ processor

950‧‧‧記憶體 950‧‧‧ memory

952‧‧‧GERBER檔案 952‧‧‧GERBER file

954‧‧‧板裝配過程 954‧‧‧ board assembly process

956‧‧‧代表性PCB 956‧‧‧ representative PCB

958‧‧‧代表性印刷電路總成(PCA) 958‧‧‧Representative Printed Circuit Assembly (PCA)

960‧‧‧產品製造過程 960‧‧‧Product manufacturing process

962‧‧‧第一代表性電子器件 962‧‧‧First representative electronic device

964‧‧‧第二代表性電子器件 964‧‧‧Second representative electronic device

圖1為可組態快取記憶體系統之特定說明性實施例的方塊圖,該可組態快取記憶體系統具有一標籤狀態陣列、多個通道及一耦接至該標籤狀態陣列之快取資料區域;圖2為可組態快取記憶體系統之另一特定說明性實施例的方塊圖,該可組態快取記憶體系統具有一標籤狀態陣列、多個通道及一耦接至該標籤狀態陣列之快取資料區域;圖3為用於快取記憶體查找之記憶體位址暫存器及移位設定索引之特定說明性實施例的方塊圖;圖4為用於快取記憶體查找之記憶體位址暫存器及用以產生一設定索引之選擇電路及索引電路之特定說明性實施例的方塊圖;圖5為用以組態一可組態快取記憶體的方法之第一說明性實施例的流程圖;圖6為用以組態一可組態之快取記憶體的方法之第二說明性實施例的流程圖;圖7為用以組態一可組態快取記憶體的方法之第三說明性實施例的流程圖;圖8為包括可組態快取記憶體模組的攜帶型通信器件之特定實施例的方塊圖;及圖9為用以製造包括可組態快取記憶體器件之電子器件的製造過程之特定說明性實施例的資料流程圖。 1 is a block diagram of a particular illustrative embodiment of a configurable cache memory system having a tag state array, a plurality of channels, and a fast coupled to the tag state array Figure 2 is a block diagram of another particular illustrative embodiment of a configurable cache memory system having a tag state array, a plurality of channels, and a coupling to a cached data area of the tag state array; FIG. 3 is a block diagram of a particular illustrative embodiment of a memory address register and a shift setting index for a cache memory lookup; FIG. 4 is for a cache memory FIG. 5 is a block diagram of a specific illustrative embodiment of a memory address register and a selection circuit and an index circuit for generating a set index; FIG. 5 is a method for configuring a configurable cache memory; A flow chart of a first illustrative embodiment; FIG. 6 is a flow chart of a second illustrative embodiment of a method for configuring a configurable cache memory; FIG. 7 is a configuration for configuring a configurable Third Illustrative Embodiment of Method of Cache Memory Figure 8 is a block diagram of a particular embodiment of a portable communication device including a configurable cache memory module; and Figure 9 is an illustration of an electronic device for fabricating a device including a configurable cache memory device A data flow diagram of a particular illustrative embodiment of the manufacturing process.

參看圖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。 Referring to FIG. 1, a particular illustrative embodiment of a configurable cache memory system 100 is illustrated having a tag state array 108, a plurality of channels 120, and a coupled to the tag state. The cache data area 110 of the array 108. The configurable cache memory system 100 includes a configurable cache memory 106 and a bit address 102. The configurable cache memory 106 includes a tag state array 108 coupled to the cache data region 110. The cache data area 110 includes one or more cache lines 112. As shown in FIG. 1, the cache data area 110 can be configured to have a first cache memory size corresponding to the first cache memory configuration or a second corresponding to the second cache memory configuration. The memory size is cached, wherein the second cache memory size is greater than the first cache memory size. The cache data area 110 includes a plurality of channels 120 associated with each of a set index, such as set index 1 122 or set index 2 124. The plurality of channels 120 enable the cache data area 110 to store a plurality of data values for each set index value. As shown in FIG. 1, the cache data area 110 has the same number of channels 120 in the first cache configuration and in the second cache configuration.

標籤狀態陣列108包括一可藉由設定索引定址之標籤區域116,諸如,展示為與位址102相關聯之設定索引1 122或設定索引2 124。標籤狀態陣列108亦包括一可藉由狀態位址126定址之狀態區域118。快取線112中之每一者係與標籤位址128相關聯。如圖1中所展示,設定索引2124及狀態位址126包括至少一共同位元104,諸如,一共同位址位元。設定索引1 122及狀態位址126包括至少兩個共同位元104,諸如,兩個共同位址位元。在一特定實施例中,設定索引122、124與狀態位址126之間的共同位元104(諸如,共同位址位元)之數目視可組態快取記憶體106的大小而變化。在一特定實施例中,狀態位址126及設定索引1 122在第一組態中包括兩個共同位元104,且狀態位址126及設定索引2 124在第二組態中包括一個共同位元104。標籤狀態陣列108亦包括一或多個集合114。在一特定實施例中,標籤狀態陣列108在第一快取記憶體組態中及在第二快取記憶體組態中具有相同大小之集合114。 The tag status array 108 includes a tag area 116 that can be addressed by a set index, such as a set index 1 122 or set index 2 124 that is shown associated with the address 102. Tag status array 108 also includes a status area 118 that can be addressed by status address 126. Each of the cache lines 112 is associated with a tag address 128. As shown in FIG. 1, set index 2124 and status address 126 include at least one common bit 104, such as a common address bit. Set index 1 122 and status address 126 include at least two common bits 104, such as two common address bits. In a particular embodiment, the number of common bits 104 (such as common address bits) between the set index 122, 124 and the status address 126 varies depending on the size of the configurable cache 106. In a particular embodiment, the status address 126 and the set index 1 122 include two common bits 104 in the first configuration, and the status address 126 and the set index 2 124 include a common bit in the second configuration. Element 104. Tag status array 108 also includes one or more sets 114. In a particular embodiment, the tag status array 108 has a set 114 of the same size in the first cache configuration and in the second cache configuration.

如圖1中所展示,快取線112中之每一者包括一或多個區段或磁區112a、112b。當快取資料區域110具有第一快取記憶體大小時,快取線 112中之每一者包括一個區段或磁區112a。當快取資料區域110具有第二快取記憶體大小時,快取線112中之每一者包括兩個區段或磁區112a、112b。在一特定實施例中,快取資料區域110在第一快取記憶體組態中及在第二快取記憶體組態中可具有相同之快取線區段大小。在一替代實施例中,快取資料區域110具有預定數目個可藉由設定索引122、124定址之列。快取資料區域110可經組態以在第一組態中儲存與每一列相關聯的至少第一數目個快取線112及在第二組態中儲存與每一列相關聯的第二數目個快取線112,其中快取線112之該第二數目大於快取線112之該第一數目。 As shown in FIG. 1, each of the cache lines 112 includes one or more segments or magnetic regions 112a, 112b. When the cache data area 110 has the first cache memory size, the cache line Each of 112 includes a segment or magnetic region 112a. When the cache data area 110 has a second cache memory size, each of the cache lines 112 includes two sectors or magnetic regions 112a, 112b. In a particular embodiment, the cache data area 110 may have the same cache line segment size in the first cache configuration and in the second cache configuration. In an alternate embodiment, the cache data area 110 has a predetermined number of columns that can be addressed by the set index 122, 124. The cache data area 110 can be configured to store at least a first number of cache lines 112 associated with each column in a first configuration and a second number associated with each column in a second configuration The cache line 112, wherein the second number of cache lines 112 is greater than the first number of cache lines 112.

快取線大小、資料記憶體大小及標籤之數目之間可存在一關係。此關係可藉由如下公式表達: 。自此公式可看到,在增加快取線之大 小的同時保持資料記憶體之大小恆定可減小標籤之數目。減小標籤之數目可需要較少實體儲存器,然而,減小標籤之數目意味著快取記憶體中可含有較少之獨特記憶體位置(或範圍)。作為一極端實例,考慮僅具有單一標籤之32位元組快取記憶體。所有32個位元組將為系統記憶體之一相連部分的複本。相反,若快取記憶體具有8個標籤,則快取記憶體中可含有8個無關之4位元組區。藉由擴展,亦可將單一32位元組之相連區儲存於該快取記憶體中。 There may be a relationship between the size of the cache line, the size of the data memory, and the number of tags. This relationship can be expressed by the following formula: . As can be seen from this formula, keeping the size of the cache line while keeping the size of the data memory constant can reduce the number of tags. Reducing the number of tags may require less physical storage, however, reducing the number of tags means that the cache memory may contain fewer unique memory locations (or ranges). As an extreme example, consider a 32-bit tuple memory with only a single tag. All 32 bytes will be a copy of the connected portion of one of the system memories. Conversely, if the cache has 8 tags, the cache can contain 8 unrelated 4 byte regions. By expanding, a connected area of a single 32-bit tuple can also be stored in the cache memory.

在一些情況下,快取記憶體之資料記憶體部分可並非恆定的,而是如在圖1之可組態快取記憶體系統100中,可為可組態的,其中可為快取記憶體保留一部分且可為緊密耦合記憶體(TCM)保留另一部分。在一配置中,快取記憶體可具有固定之快取線大小及標籤與快取線之間的固定映射。然而,若減小該快取記憶體之大小,則快取線之數目及標籤之數目以此量減小。舉例而言,在將資料隨機存取記憶體(RAM) 組織為4個記憶體組之L2快取記憶體中(其中每一記憶體組具有其自有的標籤集合),若將資料RAM組態為50%之快取記憶體及50%之TCM,則TCM中之標籤不再可用於快取記憶體。 In some cases, the data memory portion of the cache memory may not be constant, but may be configurable as in the configurable cache memory system 100 of FIG. The body retains a portion and may retain another portion for the tightly coupled memory (TCM). In one configuration, the cache memory can have a fixed cache line size and a fixed mapping between the tag and the cache line. However, if the size of the cache memory is reduced, the number of cache lines and the number of tags are reduced by this amount. For example, in the data random access memory (RAM) Organized into L2 cache memory of 4 memory groups (each memory group has its own set of tags), if the data RAM is configured as 50% cache memory and 50% TCM, The tag in the TCM is no longer available for cache memory.

藉由調整快取線之大小連同資料記憶體之大小,圖1之可組態快取記憶體系統100使標籤之數目能夠保持大體上相同。因此,提供標籤與快取線之間的可組態映射以支援標籤對多個資料RAM組態之較大利用,使得當資料RAM組態為100%之快取記憶體、50%之快取記憶體或25%之快取記憶體時,快取線之大小以等值量減小。另外,當可用於快取之資料RAM減小時,以成本及時間上有效的方式使可用標籤之數目大體上最大化。此在傳統資料局部性假設可能不成立之小功率多執行緒之處理器環境中可具有特定重要性。具有較多標籤之快取記憶體可為一較高效能之快取記憶體,因為減少了位址空間衝突。 By adjusting the size of the cache line along with the size of the data memory, the configurable cache memory system 100 of Figure 1 enables the number of tags to remain substantially the same. Therefore, a configurable mapping between the tag and the cache line is provided to support the tag's greater use of multiple data RAM configurations, such that when the data RAM is configured as 100% cache memory, 50% cache When the memory or 25% of the memory is cached, the size of the cache line is reduced by an equivalent amount. In addition, the number of available tags is substantially maximized in a cost effective and time efficient manner as the data RAM available for cache is reduced. This can be of particular importance in a low-power multi-threaded processor environment where traditional data locality assumptions may not be true. A cache memory with more tags can be a higher performance cache memory because address space conflicts are reduced.

參看圖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。 Referring to FIG. 2, a particular illustrative embodiment of a configurable cache memory system 200 is illustrated having a tag state array 208, a plurality of channels 220, and a data region 210 coupled to the tag state array 208. The configurable cache memory system 200 includes a configurable cache memory 206, a memory address register 202 for storing memory addresses, an index circuit 224, a comparison circuit 226, a verification circuit 228, and a selection. Circuit 230. The configurable cache memory 206 includes a tag state array 208 coupled to the data area 210. The data area 210 includes one or more cache lines 212. As shown in FIG. 2, the data area 210 is configurable to have a first cache memory size corresponding to the first cache memory configuration or a second cache size corresponding to the second cache memory configuration. a memory size, wherein the second cache memory size is greater than the first cache memory size, or has a third cache memory size corresponding to the third cache memory configuration, wherein the third cache The memory size is larger than the second cache memory size. Data area 210 includes a plurality of channels 220 associated with each value of a set index. The plurality of channels 220 enable the data area 210 to store a plurality of data values corresponding to each of the set index values. As shown in FIG. 2, the data area 210 is in the first cache memory configuration and There are the same number of channels 220 in the second cache configuration and in the third cache configuration.

標籤狀態陣列208包括一可藉由設定索引定址之標籤區域216。標籤狀態陣列208亦包括一可藉由狀態位址定址之狀態區域218。快取線212中之每一者可藉由標籤位址來定址。標籤狀態陣列208亦包括一或多個集合214。在一特定實施例中,標籤狀態陣列208在第一快取記憶體組態中及在第二快取記憶體組態中以及在第三快取記憶體組態中可具有相同大小之集合214。 Tag status array 208 includes a tag area 216 that can be addressed by a set index. Tag status array 208 also includes a status area 218 that can be addressed by a status address. Each of the cache lines 212 can be addressed by a tag address. Tag status array 208 also includes one or more sets 214. In a particular embodiment, the tag status array 208 can have a set 214 of the same size in the first cache configuration and in the second cache configuration and in the third cache configuration. .

在一特定實施例中,資料區域210具有預定數目個集合以儲存可經由設定索引及標籤狀態陣列208存取之資料。在第一快取記憶體組態中,資料區域210之預定數目個集合中的每一者可經組態以儲存第一量之資料。在第二快取記憶體組態中,資料區域210之預定數目個集合中的每一者可經組態以儲存第二量之資料。 In a particular embodiment, the data area 210 has a predetermined number of sets to store material accessible via the set index and tag status array 208. In the first cache configuration, each of the predetermined number of sets of data areas 210 can be configured to store a first amount of data. In the second cache configuration, each of the predetermined number of sets of data areas 210 can be configured to store a second amount of data.

在一特定實施例中,索引電路224耦接至記憶體位址暫存器202以使用設定索引來識別標籤狀態陣列208之多個標籤項。舉例而言,索引電路224可存取標籤狀態陣列208且定位並識別對應於該設定索引的自記憶體位址暫存器202接收到之多個標籤項。如圖2中所展示,索引電路亦可藉由二位元連接而耦接至選擇電路。 In a particular embodiment, indexing circuit 224 is coupled to memory address register 202 to identify a plurality of tag entries of tag state array 208 using a set index. For example, indexing circuit 224 can access tag state array 208 and locate and identify a plurality of tag entries received from memory address register 202 corresponding to the set index. As shown in FIG. 2, the indexing circuit can also be coupled to the selection circuit by a two-bit connection.

在一特定實施例中,比較電路226耦接至記憶體位址暫存器202以將經識別之多個標籤項的標籤值與記憶體位址之標籤部分進行比較。舉例而言,比較電路226可存取標籤狀態陣列208且將藉由索引電路224識別之多個標籤項的標籤值與自記憶體位址暫存器202接收到之記憶體位址的各別標籤部分進行比較。 In a particular embodiment, the comparison circuit 226 is coupled to the memory address register 202 to compare the tag values of the identified plurality of tag items with the tag portion of the memory address. For example, the comparison circuit 226 can access the tag status array 208 and the tag values of the plurality of tag items identified by the index circuit 224 and the respective tag portions of the memory address received from the memory address register 202. Compare.

在一特定實施例中,驗證電路228耦接至記憶體位址暫存器202以解碼狀態位址且將經解碼之狀態位址與資料區域210之預定數目個集合之經識別集合的驗證位元222進行比較。驗證電路228可存取標籤狀 態陣列208且將驗證位元222與自記憶體位址暫存器202接收到之記憶體位址的經解碼狀態位址部分進行比較。如圖2中所展示,驗證電路228可藉由二位元連接而耦接至記憶體位址暫存器202。如圖2中所展示,驗證位元222可包括4個狀態位元。 In a particular embodiment, the verification circuit 228 is coupled to the memory address register 202 to decode the status address and to decode the decoded status address with a predetermined number of sets of identification bits of the data area 210. 222 for comparison. Verification circuit 228 can access the tag shape State array 208 compares verify bit 222 with the decoded status address portion of the memory address received from memory address register 202. As shown in FIG. 2, the verification circuit 228 can be coupled to the memory address register 202 by a two bit connection. As shown in FIG. 2, verification bit 222 can include 4 status bits.

如下文將結合圖4更詳細地描述,在一特定實施例中,選擇電路230耦接至記憶體位址暫存器202且耦接至索引電路224以選擇性地在第一快取記憶體組態中包括設定索引中之記憶體位址的特定位元且在第二快取記憶體組態中不包括設定索引中之特定位元。如圖2中所展示,選擇電路230可藉由二位元連接而耦接至索引電路224。在一特定實施例中,選擇電路230包括一多工器(諸如,圖4中所展示之多工器406),其具有一經耦接而接收至少一共同位元之輸入(如圖4中之424處所展示)且具有一耦接至標籤區域216之輸出(如圖4中之416處所展示)。該多工器可經組態以選擇性地將該至少一共同位元作為一可選輸入提供至設定索引,諸如,圖4中所展示之設定索引408。 As will be described in more detail below in conjunction with FIG. 4, in a particular embodiment, the selection circuit 230 is coupled to the memory address register 202 and coupled to the index circuit 224 to selectively be in the first cache memory bank. The state includes a specific bit of the memory address in the set index and does not include a specific bit in the set index in the second cache configuration. As shown in FIG. 2, selection circuit 230 can be coupled to indexing circuit 224 by a two bit connection. In a particular embodiment, the selection circuit 230 includes a multiplexer (such as the multiplexer 406 shown in FIG. 4) having an input coupled to receive at least one common bit (as in FIG. 4). Shown at 424) and have an output coupled to the tag area 216 (as shown at 416 in FIG. 4). The multiplexer can be configured to selectively provide the at least one common bit as an optional input to a set index, such as the set index 408 shown in FIG.

參看圖3,在300處展示用於快取記憶體查找之記憶體位址暫存器302及移位設定索引306、312、320的特定說明性實施例。移位設定索引306、312及320使得能夠針對三個不同快取記憶體大小組態使用相同數目個集合來定址至快取記憶體中。在一特定實施例中,用於快取記憶體查找之記憶體位址暫存器302為圖1之位址102或圖2之記憶體位址暫存器202。 Referring to FIG. 3, a particular illustrative embodiment of a memory address register 302 and shift setting indices 306, 312, 320 for a cache memory lookup is shown at 300. The shift setting indexes 306, 312, and 320 enable addressing to the cache memory using the same number of sets for three different cache memory size configurations. In a particular embodiment, the memory address register 302 for the cache memory lookup is the address 102 of FIG. 1 or the memory address register 202 of FIG.

設定索引306以自位元13至位元5之9個位元為範圍,與位址之狀態部分324共用兩個共同位元308(位元5及位元6),其中狀態部分324以自位元6至位元5之兩個位元為範圍。位址之標籤部分304以自位元31至位元14為範圍。 The set index 306 is in the range of 9 bits from bit 13 to bit 5, and shares two common bits 308 (bit 5 and bit 6) with the status portion 324 of the address, wherein the status portion 324 is The two bits of bit 6 to bit 5 are ranges. The tag portion 304 of the address ranges from bit 31 to bit 14.

如藉由箭頭314所指示,一1位元位移之移位使設定索引312與位址之狀態部分324共用一個共同位元316(位元6),該設定索引312以自 位元14至位元6之9個位元為範圍。在此情況下,位址之狀態部分324之位元5可用以標記兩個快取線區段或磁區,使得具有設定索引312之快取記憶體可為具有設定索引306之快取記憶體兩倍大。位址之標籤部分310以自位元31至位元15為範圍,新增的最低有效位元零可串接至位元31:15。 As indicated by arrow 314, the shift of a 1-bit displacement causes set index 312 to share a common bit 316 (bit 6) with the status portion 324 of the address, the set index 312 being The 9 bits of bit 14 to bit 6 are ranges. In this case, bit 5 of status portion 324 of the address can be used to mark two cache line segments or magnetic regions such that the cache memory having set index 312 can be a cache memory having a set index 306. Twice as big. The tag portion 310 of the address ranges from bit 31 to bit 15, and the newly added least significant bit zero can be concatenated to bit 31:15.

如藉由箭頭322所指示,另一1位元位移之移位使設定索引320與位址之狀態部分324不共用共同位元,該設定索引320以自位元15至位元7之9個位元為範圍。在此情況下,位址之狀態部分324之位元5及位元6兩者可用以標記四個快取線區段或磁區,使得具有設定索引320之快取記憶體可為具有設定索引312之快取記憶體兩倍大。位址之標籤部分318以自位元31至位元16為範圍,兩個最低有效位元零可串接至位元31:16。 As indicated by arrow 322, the shift of the other 1-bit displacement causes the set index 320 and the status portion 324 of the address to not share a common bit, the set index 320 being 9 bits from bit 15 to bit 7. The bit is a range. In this case, both bit 5 and bit 6 of state portion 324 of the address can be used to mark four cache line segments or magnetic regions such that the cache memory with set index 320 can have a set index. The 312 cache is twice as large as the memory. The tag portion 318 of the address ranges from bit 31 to bit 16, and the two least significant bit zeros can be concatenated to bit 31:16.

總的快取記憶體大小可藉由集合之數目乘以通道之數目乘以快取線之大小乘以區段或磁區之數目的乘積給出。藉由一9位元設定索引編索引之集合的數目為29=512。對於具有32個位元之快取線大小的4通道快取記憶體而言,對於具有設定索引306之快取記憶體,總的快取記憶體大小為512乘以4乘以32或約64千位元(kbit),其中快取記憶體針對每一快取線僅具有一個區段或磁區。針對具有設定索引312之快取記憶體(其中快取記憶體針對每一快取線具有兩個區段或磁區),總的快取記憶體大小為約128kbit。針對具有設定索引320之快取記憶體(其中快取記憶體針對每一快取線具有四個區段或磁區),總的快取記憶體大小為約256kbit。 The total cache memory size can be given by multiplying the number of sets by the number of channels multiplied by the size of the cache line multiplied by the number of segments or sectors. The number of sets indexed by a 9-bit index is 2 9 = 512. For a 4-channel cache with a 32-bit cache line size, for a cache with a set index 306, the total cache size is 512 times 4 times 32 or about 64. A kilobit (kbit) in which the cache memory has only one sector or magnetic region for each cache line. For a cache memory having a set index 312 (where the cache memory has two sectors or sectors for each cache line), the total cache memory size is about 128 kbit. For a cache memory having a set index 320 (where the cache memory has four sectors or sectors for each cache line), the total cache memory size is about 256 kbit.

參看圖4,在400處展示用於快取記憶體查找之記憶體位址暫存器402及用以產生設定索引408之選擇電路426及索引電路428的特定說明性實施例。系統400可用以判定圖3之暫存器系統300之移位設定索引306、312、320。系統400可實施於圖1之可組態快取記憶體系統100或 圖2之可組態快取記憶體系統200中。 Referring to FIG. 4, a particular illustrative embodiment of a memory address register 402 for a cache memory lookup and a selection circuit 426 and indexing circuit 428 for generating a set index 408 is shown at 400. System 400 can be used to determine shift setting indices 306, 312, 320 of scratchpad system 300 of FIG. System 400 can be implemented in the configurable cache memory system 100 of FIG. 1 or The configurable cache memory system 200 of FIG.

用於快取記憶體查找之記憶體位址暫存器402經組態以儲存自最低有效位元(LSB)(位元0)標記至最高有效位元(MSB)(位元31)之32個位元值。多工器404自用於快取記憶體查找之記憶體位址暫存器402接收位元15作為一輸入(如418處所指示),且接收位元6作為另一輸入(如422處所指示)。如412處所指示,多工器404將位元15抑或位元6輸出至設定索引408。藉由快取記憶體大小430控制沿二位元線410來控制多工器404之輸出。多工器406接收位元14作為一輸入(如420處所指示)且接收位元5作為另一輸入(如424處所指示)。如416處所指示,多工器406將位元14抑或位元5輸出至設定索引408。藉由快取記憶體大小430控制沿二位元線410來控制多工器406之輸出。設定索引408沿7位元線414自用於快取記憶體查找之記憶體位址暫存器402接收以自位元13至位元7為範圍之位元。 The memory address register 402 for the cache memory lookup is configured to store 32 bits from the least significant bit (LSB) (bit 0) to the most significant bit (MSB) (bit 31). Bit value. The multiplexer 404 receives the bit 15 as an input (as indicated at 418) from the memory address register 402 for the cache memory lookup and receives the bit 6 as another input (as indicated at 422). As indicated at 412, multiplexer 404 outputs bit 15 or bit 6 to set index 408. The output of the multiplexer 404 is controlled along the two bit line 410 by the cache memory size 430. Multiplexer 406 receives bit 14 as an input (as indicated at 420) and receives bit 5 as another input (as indicated at 424). As indicated at 416, multiplexer 406 outputs bit 14 or bit 5 to set index 408. The output of the multiplexer 406 is controlled along the two bit line 410 by the cache memory size 430. The set index 408 receives bits in the range from bit 13 to bit 7 from the memory address register 402 for the cache memory lookup along the 7-bit line 414.

當多工器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之快取記憶體四倍大。 When multiplexer 404 outputs bit 6 and multiplexer 406 outputs bit 5, then set index 408 corresponds to set index 306 of FIG. When the multiplexer 404 outputs the bit 6 and the multiplexer 406 outputs the bit 14, the set index 408 corresponds to the set index 312 of FIG. 3, wherein the cache memory having the set index 312 can have the set index 306. The cache memory is twice as large. When the multiplexer 404 outputs the bit 15 and the multiplexer 406 outputs the bit 14, the set index 408 corresponds to the set index 320 of FIG. 3, wherein the cache memory having the set index 320 can have the set index 312. The cache memory is twice as large and can be four times as large as the cache memory with the set index 306.

參看圖5,在500處展示用以組態一可組態快取記憶體的方法之第一說明性實施例的流程圖。方法500包括在502處在快取記憶體之標籤狀態陣列處接收一位址,其中該快取記憶體可組態以具有一第一大小及一大於該第一大小之第二大小中之一者。舉例而言,如圖1中所展示,可在可組態之快取記憶體106之標籤狀態陣列108處接收位址102, 其中可組態之快取記憶體106的快取資料區域110可組態以具有第一大小及大於該第一大小之第二大小中之一者。方法500亦包括在504處識別位址之第一部分作為一設定索引。舉例而言,如圖1中所展示,位址102之第一部分可被識別而作為設定索引1 122,或位址102之第一部分可被識別而作為設定索引2 124。類似地,如圖3中所展示,用於快取記憶體查找之記憶體位址暫存器302中之位址的第一部分可被識別而作為設定索引306,或作為設定索引312,或作為設定索引320。 Referring to FIG. 5, a flow diagram of a first illustrative embodiment of a method for configuring a configurable cache memory is shown at 500. The method 500 includes receiving, at 502, an address at an array of tag states of the cache memory, wherein the cache memory is configurable to have one of a first size and a second size greater than the first size By. For example, as shown in FIG. 1, address address 102 can be received at tag state array 108 of configurable cache memory 106, The cache data area 110 of the configurable cache memory 106 can be configured to have one of a first size and a second size greater than the first size. The method 500 also includes identifying, at 504, the first portion of the address as a set index. For example, as shown in FIG. 1, a first portion of address 102 can be identified as a set index 1 122, or a first portion of address 102 can be identified as a set index 2 124. Similarly, as shown in FIG. 3, the first portion of the address in the memory address register 302 for the cache memory lookup can be identified as the set index 306, or as the set index 312, or as a setting. Index 320.

方法500進一步包括在506處使用設定索引來定位標籤狀態陣列之至少一標籤欄位。舉例而言,可使用設定索引1 122抑或設定索引2 124來定位圖1中所展示之標籤狀態陣列108的至少一標籤區域116。方法500亦包括在508處識別位址之第二部分以與一儲存於該至少一標籤欄位處之值進行比較。舉例而言,位址102之第二部分可被識別而作為標籤128,可將該標籤128與一儲存於圖1之至少一標籤區域116處之值進行比較。方法500進一步包括在510處定位標籤狀態陣列之至少一狀態欄位,該至少一狀態欄位與匹配該第二部分之特定標籤欄位相關聯。舉例而言,可定位標籤狀態陣列108之至少一狀態區域118,該至少一狀態區域118可與匹配圖1之標籤128之特定標籤區域116相關聯。 The method 500 further includes using the set index to locate at least one tag field of the tag status array at 506. For example, at least one tag area 116 of the tag state array 108 shown in FIG. 1 can be located using set index 1 122 or set index 2 124. The method 500 also includes identifying a second portion of the address at 508 for comparison with a value stored at the at least one tag field. For example, the second portion of the address 102 can be identified as the tag 128, which can be compared to a value stored in at least one of the tag regions 116 of FIG. The method 500 further includes locating at 510 at least one status field of the tag status array, the at least one status field being associated with a particular tag field that matches the second portion. For example, at least one status area 118 of the tag status array 108 can be located, the at least one status area 118 being associated with a particular tag area 116 that matches the tag 128 of FIG.

方法500亦包括在512處基於位址之第三部分與至少一狀態欄位之至少兩個狀態位元的比較來識別一快取線。舉例而言,可基於位址102之狀態位址126部分與圖1之標籤狀態陣列108的至少一狀態區域118之至少兩個狀態位元的比較來識別快取線112中之一者。方法500進一步包括在514處擷取該快取線,其中基於快取記憶體經組態而具有第一大小抑或第二大小來選擇位址之第一部分的第一位置及位址之第二部分的第二位置,且其中位址之第一部分在快取記憶體具有第一大小時與在快取記憶體具有第二大小時具有相同數目個位元。舉例而言,可擷取快取線112中之經識別者,其中可基於快取資料區域110經 組態而具有第一大小抑或第二大小來選擇位址102之設定索引部分(設定索引1 122或設定索引2 124)的第一位置及位址102之標籤128部分的第二位置,且其中位址102之設定索引部分(設定索引1 122或設定索引2 124)在快取資料區域110具有第一大小時與在快取資料區域110具有第二大小時具有相同數目個位元。 The method 500 also includes identifying a cache line at 512 based on a comparison of the third portion of the address with the at least two status bits of the at least one status field. For example, one of the cache lines 112 can be identified based on a comparison of the status address 126 portion of the address 102 with at least two status bits of the at least one status region 118 of the tag state array 108 of FIG. The method 500 further includes fetching the cache line at 514, wherein the first location of the first portion of the address and the second portion of the address are selected based on whether the cache memory is configured to have a first size or a second size The second location, and wherein the first portion of the address has the same number of bits when the cache memory has the first size and when the cache memory has the second size. For example, the identified one of the cache lines 112 may be retrieved, wherein the cached data area 110 may be based on Configuring to have a first size or a second size to select a first location of the set index portion of the address 102 (set index 1 122 or set index 2 124) and a second location of the portion of the label 128 of the address 102, and wherein The set index portion of the address 102 (set index 1 122 or set index 2 124) has the same number of bits when the cache data area 110 has the first size and when the cache data area 110 has the second size.

在一特定實施例中,快取記憶體進一步可組態以具有大於第二大小之第三大小。舉例而言,如圖2中所展示,可組態之快取記憶體206之資料區域210可進一步可組態以具有大於第二大小之第三大小。在一特定實施例中,當快取記憶體經組態而具有第一大小時,位址之第一部分與位址之第三部分的兩個位元重疊,其中當快取記憶體經組態而具有第二大小時,位址之第一部分與位址之第三部分的單一位元重疊,且其中當快取記憶體經組態而具有第三大小時,位址之第一部分不與位址之第三部分的任何位元重疊。舉例而言,如上文所描述,當快取記憶體經組態而具有第一大小(64kbit)時,圖3之設定索引306與狀態位址324之兩個位元308重疊,其中當快取記憶體經組態而具有第二大小(128kbit)時,設定索引312與狀態位址324之單一位元316重疊,且其中當快取記憶體經組態而具有第三大小(256kbit)時,設定索引320不與狀態位址324之任何位元重疊。 In a particular embodiment, the cache memory is further configurable to have a third size greater than the second size. For example, as shown in FIG. 2, the data area 210 of the configurable cache memory 206 can be further configurable to have a third size greater than the second size. In a particular embodiment, when the cache memory is configured to have a first size, the first portion of the address overlaps with the two bits of the third portion of the address, wherein the cache memory is configured And having a second size, the first portion of the address overlaps with a single bit of the third portion of the address, and wherein when the cache memory is configured to have a third size, the first portion of the address is not bit aligned Any bits of the third part of the address overlap. For example, as described above, when the cache memory is configured to have a first size (64 kbit), the set index 306 of FIG. 3 overlaps with the two bits 308 of the status address 324, where the cache is cached. When the memory is configured to have a second size (128 kbit), the set index 312 overlaps with a single bit 316 of the status address 324, and wherein when the cache memory is configured to have a third size (256 kbit), The set index 320 does not overlap with any of the bits of the status address 324.

參看圖6,在600處展示用以組態一可組態快取記憶體的方法之第二說明性實施例的流程圖。方法600包括在602處改變快取記憶體之大小。舉例而言,圖1之可組態之快取記憶體106的快取資料區域110可自第一大小改變至第二大小,或自第二大小改變至第一大小。類似地,圖2之可組態之快取記憶體206的資料區域210可自第一大小改變至第二大小,或自第二大小改變至第三大小,或自第一大小改變至第三大小,或自第二大小改變至第一大小,或自第三大小改變至第二大小,或自第三大小改變至第一大小。 Referring to Figure 6, a flow diagram of a second illustrative embodiment of a method for configuring a configurable cache memory is shown at 600. The method 600 includes changing the size of the cache memory at 602. For example, the cache data area 110 of the configurable cache memory 106 of FIG. 1 can be changed from a first size to a second size, or from a second size to a first size. Similarly, the data area 210 of the configurable cache memory 206 of FIG. 2 can be changed from a first size to a second size, or from a second size to a third size, or from a first size to a third size. The size, either changes from the second size to the first size, or changes from the third size to the second size, or changes from the third size to the first size.

方法600亦包括在604處回應於改變快取記憶體之大小而對待自快取記憶體擷取之資料的位址之設定索引部分的位置進行移位,其中當對該位置進行移位時設定索引部分之位元長度不改變。舉例而言,圖3之設定索引306可回應於快取記憶體之大小自64kbit改變至128kbit而如箭頭314所展示移位至設定索引312之位置,其中設定索引306及設定索引312均具有9個位元之位元長度。類似地,圖3之設定索引312可回應於快取記憶體之大小自128kbit改變至256kbit而如箭頭322所展示移位至設定索引320之位置,其中設定索引312及設定索引320均具有9個位元之位元長度。 The method 600 also includes shifting the position of the set index portion of the address of the data to be retrieved from the cache memory in response to changing the size of the cache memory at 604, wherein the position is shifted when the position is shifted The bit length of the index portion does not change. For example, the setting index 306 of FIG. 3 can be shifted to the position of the set index 312 as indicated by the arrow 314 in response to the size of the cache memory changing from 64 kbit to 128 kbit, wherein the set index 306 and the set index 312 each have 9 The bit length of a bit. Similarly, the set index 312 of FIG. 3 can be shifted to the position of the set index 320 as indicated by the arrow 322 in response to the size of the cache memory changing from 128 kbit to 256 kbit, wherein the set index 312 and the set index 320 each have nine The bit length of the bit.

在一特定實施例中,當快取記憶體經組態而具有第一大小時或當快取記憶體經組態而具有大於第一大小之第二大小時,位址之設定索引部分與位址之狀態位址部分的至少一位元重疊。舉例而言,當快取記憶體經組態而具有約64kbit之第一大小時,圖3之設定索引306與狀態位址324之至少一位元308重疊,且當快取記憶體經組態而具有約128kbit之第二大小時,設定索引312與狀態位址324之至少一位元316重疊。 In a particular embodiment, when the cache memory is configured to have a first size or when the cache memory is configured to have a second size greater than the first size, the address index portion and bit are set. At least one bit of the status address portion of the address overlaps. For example, when the cache memory is configured to have a first size of about 64 kbit, the set index 306 of FIG. 3 overlaps with at least one bit 308 of the status address 324, and when the cache memory is configured With a second size of about 128 kbit, the set index 312 overlaps with at least one bit 316 of the status address 324.

在一特定實施例中,快取記憶體進一步可組態以具有大於第二大小之第三大小。舉例而言,如圖2中所展示,可組態之快取記憶體206之資料區域210可進一步可組態以具有大於第二大小之第三大小。在一特定實施例中,當快取記憶體經組態而具有第一大小時,位址之設定索引部分與位址之狀態位址部分的兩個位元重疊,其中當快取記憶體經組態而具有第二大小時,位址之設定索引部分與位址之狀態位址部分的單一位元重疊,且其中當快取記憶體經組態而具有第三大小時,位址之設定索引部分不與位址之狀態位址部分的任何位元重疊。舉例而言,如上文所描述,當快取記憶體經組態而具有第一大小(64kbit)時,圖3之設定索引306與狀態位址324之兩個位元308重疊,其中當快取記憶體經組態而具有第二大小(128kbit)時,設定索引312與狀態位址 324之單一位元316重疊,且其中當快取記憶體經組態而具有第三大小(256kbit)時,設定索引320不與狀態位址324之任何位元重疊。 In a particular embodiment, the cache memory is further configurable to have a third size greater than the second size. For example, as shown in FIG. 2, the data area 210 of the configurable cache memory 206 can be further configurable to have a third size greater than the second size. In a particular embodiment, when the cache memory is configured to have a first size, the set index portion of the address overlaps with the two bits of the status address portion of the address, wherein when the cache memory is When configured to have the second size, the set index portion of the address overlaps with a single bit of the status address portion of the address, and when the cache memory is configured to have the third size, the address is set. The index portion does not overlap with any bit of the status address portion of the address. For example, as described above, when the cache memory is configured to have a first size (64 kbit), the set index 306 of FIG. 3 overlaps with the two bits 308 of the status address 324, where the cache is cached. When the memory is configured to have a second size (128kbit), the index 312 and the status address are set. A single bit 316 of 324 overlaps, and wherein the cache index is configured to have a third size (256 kbit), the set index 320 does not overlap with any bit of the status address 324.

參看圖7,在700處展示用以組態一可組態快取記憶體的方法之第三說明性實施例的流程圖。方法700包括在702處藉由以下行為來將快取記憶體自具有第一資料區域大小之第一組態改變至具有第二資料區域大小之第二組態:增加與快取記憶體之一資料陣列的每一項相關聯之資料的量且維持該資料陣列的可經由設定索引定址之項的第一數目,及維持該資料陣列的與設定索引之每一值相關聯之項的第二數目。舉例而言,圖1之可組態之快取記憶體106可藉由將快取線磁區或區段112b添加至快取線112中之每一者的快取線磁區或區段112a而使快取資料區域110自第一大小改變至第二大小。 Referring to Figure 7, a flow diagram of a third illustrative embodiment of a method for configuring a configurable cache memory is shown at 700. The method 700 includes changing, at 702, the cache memory from a first configuration having a first data region size to a second configuration having a second data region size: one of increasing and caching memory The amount of data associated with each item of the data array and maintaining a first number of items of the data array that are addressable via a set index, and maintaining a second item of the data array associated with each value of the set index number. For example, the configurable cache memory 106 of FIG. 1 can be added to the cache line magnetic region or section 112a of each of the cache lines 112 by adding a cache line magnetic field or section 112b. The cache data area 110 is changed from the first size to the second size.

方法700亦包括在704處對給一標籤狀態陣列編索引的記憶體位址之位元的範圍進行移位,該標籤狀態陣列與該資料陣列相關聯,其中基於將快取記憶體自第一組態改變至第二組態來對給該標籤狀態陣列編索引之位元範圍進行移位。舉例而言,圖3之設定索引306可回應於將快取記憶體之大小自64kbit改變至128kbit而如箭頭314所展示移位至設定索引312之位置,其中設定索引306及設定索引312均給與資料陣列相關聯之標籤狀態陣列編索引,諸如,圖1之與快取資料區域110相關聯之標籤狀態陣列108。 The method 700 also includes shifting, at 704, a range of bits of a memory address indexed to a tag state array, the tag state array being associated with the data array, wherein the cache memory is based on the first group The state changes to a second configuration to shift the range of bits indexing the tag state array. For example, the setting index 306 of FIG. 3 may be in response to shifting the size of the cache memory from 64 kbit to 128 kbit and shifting to the set index 312 as indicated by arrow 314, wherein the set index 306 and the set index 312 are both given. A tag status array associated with the data array is indexed, such as tag status array 108 associated with cache data area 110 of FIG.

在一特定實施例中,方法700進一步包括設定對一對多工器之控制輸入,該等多工器各自接收來自給標籤狀態陣列編索引之位元範圍的至少一輸入且各自將一可選位元輸出至設定索引。舉例而言,圖4之多工器404及多工器406可使其各別控制輸入藉由快取記憶體大小430控制沿二位元線410來設定。如上文所描述,多工器404及多工器406可各自接收來自給標籤狀態陣列(諸如,圖1之標籤狀態陣列108或圖2之標籤狀態陣列208)編索引的位元範圍的至少一輸入,且可各自將一 可選位元輸出至設定索引408。 In a particular embodiment, method 700 further includes setting control inputs to a pair of multiplexers each receiving at least one input from a range of bits indexed to the tag state array and each of which is selectable The bit is output to the set index. For example, multiplexer 404 and multiplexer 406 of FIG. 4 can have their respective control inputs set along binary bit line 410 by cache memory size 430 control. As described above, multiplexer 404 and multiplexer 406 can each receive at least one of a range of bits indexed from a tag state array (such as tag state array 108 of FIG. 1 or tag state array 208 of FIG. 2). Input, and each can be one The optional bit is output to the set index 408.

在一特定實施例中,方法700進一步包括藉由以下行為將快取記憶體自具有第二資料區域大小之第二組態改變至具有第三資料區域大小之第三組態:增加與快取記憶體之資料陣列的每一項相關聯之資料的量且維持該資料陣列之可經由設定索引定址之項的第一數目,及維持該資料陣列之與設定索引之每一值相關聯之項的第二數目。舉例而言,圖2之可組態快取記憶體206可藉由將額外快取線磁區或區段添加至快取線212中之每一者的現有快取線磁區或區段而使資料區域210自第二大小改變至第三大小。方法700可進一步包括對給標籤狀態陣列編索引之記憶體位址之位元的範圍進行移位,該標籤狀態陣列與資料陣列相關聯,其中回應於將快取記憶體自第二組態改變至第三組態來對給標籤狀態陣列編索引之位元的範圍進行移位。舉例而言,圖3之設定索引312可回應於將快取記憶體之大小自128kbit改變至256kbit而如箭頭322所展示移位至設定索引320之位置,其中設定索引312及設定索引320均給與資料陣列相關聯之標籤狀態陣列編索引,諸如,圖2之與資料區域210相關聯之標籤狀態陣列208。 In a particular embodiment, method 700 further includes changing the cache memory from a second configuration having a second data region size to a third configuration having a third data region size by: adding and caching The amount of each associated data of the data array of the memory and maintaining a first number of items of the data array that are addressable via the set index, and maintaining an item associated with each value of the set index of the data array The second number. For example, the configurable cache 206 of FIG. 2 can be added to an existing cache line region or segment of each of the cache lines 212 by adding additional cache line regions or segments. The data area 210 is changed from the second size to the third size. The method 700 can further include shifting a range of bits of the memory address indexed to the tag state array, the tag state array being associated with the data array, wherein in response to changing the cache memory from the second configuration to The third configuration shifts the range of bits indexing the tag state array. For example, the setting index 312 of FIG. 3 may be in response to shifting the size of the cache memory from 128 kbit to 256 kbit and shifting to the set index 320 as indicated by arrow 322, wherein the set index 312 and the set index 320 are both given. A tag status array associated with the data array is indexed, such as tag status array 208 associated with data area 210 of FIG.

根據圖5至圖7之方法或根據本文中所描述之其他實施例操作的可組態快取記憶體可併入多種電子器件中,諸如,行動電話、機上盒器件、電腦、個人數位助理(PDA)、音樂播放器、視訊播放器、儲存或擷取資料或電腦指令的任何其他器件,或其任何組合。 The configurable cache memory operating according to the methods of Figures 5-7 or other embodiments described herein can be incorporated into a variety of electronic devices, such as mobile phones, set-top devices, computers, personal digital assistants (PDA), music player, video player, any other device that stores or retrieves data or computer instructions, or any combination thereof.

圖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處執行的快取記憶體查找操作來接收的。 FIG. 8 is a block diagram of a particular embodiment of a system 800 that includes a configurable cache memory module 864. System 800 can be implemented in a portable electronic device and includes a signal processor 810 coupled to a memory 832, such as a digital signal processor (DSP). System 800 includes a configurable cache memory module 864. In an illustrative example, the configurable cache memory module 864 includes any of the systems of FIGS. 1-4, operates according to any of the embodiments of FIGS. 5-7, or Any combination of them. Configurable cache memory module 864 for signal processing The 810 may be a separate device or circuit (not shown). In a particular embodiment, the configurable cache memory 106 of FIG. 1 can be accessed by a digital signal processor. For example, as shown in FIG. 8, the configurable cache memory module 864 can be accessed by a digital signal processor (DSP) 810, and the digital signal processor 810 is configured to access and store in a groupable The data cache or the program instruction of the memory module 864. At least one common bit 104 of FIG. 1 may correspond to a predetermined bit, such as a memory address of address 102, which is coupled to digital signal processor 810 at configurable cache memory 106. The cache memory lookup operation is received.

相機介面868耦接至信號處理器810且亦耦接至諸如視訊相機870之相機。顯示控制器826耦接至信號處理器810且耦接至顯示器件828。編碼器/解碼器(CODEC)834亦可耦接至信號處理器810。揚聲器836及麥克風838可耦接至CODEC 834。無線介面840可耦接至信號處理器810且耦接至無線天線842,使得可將經由天線842及無線介面840接收到之無線資料提供至處理器810。 Camera interface 868 is coupled to signal processor 810 and is also coupled to a camera such as video camera 870. The display controller 826 is coupled to the signal processor 810 and coupled to the display device 828. An encoder/decoder (CODEC) 834 can also be coupled to the signal processor 810. Speaker 836 and microphone 838 can be coupled to CODEC 834. The wireless interface 840 can be coupled to the signal processor 810 and coupled to the wireless antenna 842 such that the wireless data received via the antenna 842 and the wireless interface 840 can be provided to the processor 810.

信號處理器810可經組態以執行儲存於電腦可讀媒體(諸如,記憶體832)處之電腦可執行指令866,該等電腦可執行指令866可執行以使得電腦(諸如,處理器810)使可組態之快取記憶體模組864藉由以下行為將快取記憶體自具有第一資料區域大小之第一組態改變至具有第二資料區域大小之第二組態:增加與快取記憶體之資料陣列的每一項相關聯之資料的量且維持該資料陣列之可經由設定索引定址之項的第一數目,及維持該資料陣列之與設定索引之每一值相關聯之項的第二數目。該等電腦可執行指令進一步可執行以使可組態快取記憶體模組864對給一標籤狀態陣列編索引之記憶體位址之位元的範圍進行移位,該標籤狀態陣列與資料陣列相關聯,其中基於將快取記憶體自第一組態改變至第二組態來對給該標籤狀態陣列編索引之位元範圍進行移位。 Signal processor 810 can be configured to execute computer executable instructions 866 stored at a computer readable medium, such as memory 832, executable to cause a computer (such as processor 810) The configurable cache memory module 864 is configured to change the cache memory from a first configuration having a first data area size to a second configuration having a second data area size by: adding and fast Taking the amount of each associated data of the data array of the memory and maintaining a first number of items of the data array that are addressable via the set index, and maintaining the data array associated with each value of the set index The second number of items. The computer executable instructions are further executable to cause the configurable cache memory module 864 to shift a range of bits of a memory address indexed to a tag state array associated with the data array And wherein the range of bits indexing the tag state array is shifted based on changing the cache memory from the first configuration to the second configuration.

在一特定實施例中,信號處理器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之一組件,諸如,介面或控制器。 In a particular embodiment, signal processor 810, display controller 826, memory 832, CODEC 834, wireless interface 840, and camera interface 868 are included in a package level system or in-line system device 822. In a particular embodiment, input device 830 and power supply 844 are coupled to crystal system device 822. Moreover, in a particular embodiment, as illustrated in FIG. 8, display device 828, input device 830, speaker 836, microphone 838, wireless antenna 842, video camera 870, and power supply 844 are external to crystal system device 822. . However, each of display device 828, input device 830, speaker 836, microphone 838, wireless antenna 842, video camera 870, and power supply 844 can be coupled to one of the components of crystal system device 822, such as an interface or Controller.

前文所揭示之器件及功能性可藉由提供設計資訊來實施且組態至儲存於電腦可讀媒體上之電腦檔案(例如,RTL、GDSII、GERBER,等等)中。可將該等檔案中之一些或所有提供給基於該等檔案製造器件之製造處理常式。所得產品包括半導體晶圓,該等半導體晶圓接著被切割成半導體晶粒且被封裝成半導體晶片。接著將該等晶片用於上文所描述之器件中。圖9描繪電子器件製造過程900之特定說明性實施例。 The devices and functionality disclosed above can be implemented by providing design information and configured into computer files (eg, RTL, GDSII, GERBER, etc.) stored on a computer readable medium. Some or all of these files may be provided to manufacturing process routines based on such file manufacturing devices. The resulting product includes semiconductor wafers that are then diced into semiconductor dies and packaged into semiconductor wafers. These wafers are then used in the devices described above. FIG. 9 depicts a particular illustrative embodiment of an electronic device fabrication process 900.

在製造過程900中(諸如,在研究電腦906處)接收實體器件資訊902。實體器件資訊902可包括表示半導體器件(諸如,圖1之可組態快取記憶體的組件、圖2之可組態快取記憶體的組件,或其任何組合)之至少一物理特性的設計資訊。舉例而言,實體器件資訊902可包括物理參數、材料特徵,及經由耦接至研究電腦906之使用者介面904鍵入之結構資訊。研究電腦906包括一耦接至一電腦可讀媒體(諸如,記憶體910)之處理器908(諸如,一或多個處理核心)。記憶體910可儲存電腦可讀指令,其可執行以使處理器908變換實體器件資訊902以便符合一檔案格式且產生程式庫檔案912。 The physical device information 902 is received in the manufacturing process 900 (such as at the research computer 906). The physical device information 902 can include a design that represents at least one physical property of a semiconductor device, such as the components of the configurable cache memory of FIG. 1, the components of the configurable cache memory of FIG. 2, or any combination thereof. News. For example, the physical device information 902 can include physical parameters, material features, and structural information entered via a user interface 904 coupled to the research computer 906. The research computer 906 includes a processor 908 (such as one or more processing cores) coupled to a computer readable medium, such as memory 910. The memory 910 can store computer readable instructions executable to cause the processor 908 to transform the physical device information 902 to conform to a file format and generate a library file 912.

在一特定實施例中,程式庫檔案912包括至少一資料檔案,該至少一資料檔案包括經變換之設計資訊。舉例而言,程式庫檔案912可包括對應於半導體器件(包括圖1之可組態快取記憶體的組件、圖2之可組 態快取記憶體的組件,或其任何組合)之資料檔案的程式庫,提供該程式庫以供與一電子設計自動化(EDA)工具920一起使用。 In a particular embodiment, the library file 912 includes at least one data file, the at least one data file including the transformed design information. For example, the library file 912 can include a component corresponding to the semiconductor device (including the configurable cache memory of FIG. 1 and the group of FIG. 2). A library of data files for the components of the memory cache, or any combination thereof, is provided for use with an electronic design automation (EDA) tool 920.

在設計電腦914處,可結合EDA工具920來使用程式庫檔案912,該設計電腦914包括一耦接至一記憶體918之處理器916(諸如,一或多個處理核心)。可將EDA工具920儲存為記憶體918處之處理器可執行指令,以使設計電腦914之使用者能夠使用圖1之可組態快取記憶體的組件、圖2之可組態快取記憶體的組件或其任何組合來設計程式庫檔案912之電路。舉例而言,設計電腦914之使用者可經由耦接至設計電腦914之使用者介面924鍵入電路設計資訊922。電路設計資訊922可包括表示半導體器件(諸如,圖1之可組態快取記憶體的組件、圖2之可組態快取記憶體的組件,或其任何組合)之至少一物理特性的設計資訊。為了說明,電路設計特性可包括對特定電路及與電路設計中之其他元件之關係的識別、定位資訊、特徵大小資訊、互連資訊,或表示半導體器件之物理特性的其他資訊。 At design computer 914, library archive 912 can be utilized in conjunction with EDA tool 920, which includes a processor 916 (such as one or more processing cores) coupled to a memory 918. The EDA tool 920 can be stored as processor executable instructions at the memory 918 to enable the user of the design computer 914 to use the configurable cache memory component of FIG. 1, the configurable cache memory of FIG. The components of the library file 912 are designed by the components of the body or any combination thereof. For example, a user of the design computer 914 can enter circuit design information 922 via a user interface 924 coupled to the design computer 914. Circuit design information 922 may include designing at least one physical characteristic representative of a semiconductor device, such as the components of the configurable cache memory of FIG. 1, the components of the configurable cache memory of FIG. 2, or any combination thereof. News. To illustrate, circuit design features may include identification of particular circuits and relationships to other components in the circuit design, positioning information, feature size information, interconnect information, or other information indicative of the physical characteristics of the semiconductor device.

設計電腦914可經組態以變換設計資訊(包括電路設計資訊922)以便符合一檔案格式。為了說明,該檔案格式可包括一資料庫二進位檔案格式,其表示平面幾何形狀、文字標記,及關於呈階層式格式(諸如,圖形資料系統(GDSII)檔案格式)之電路布局的其他資訊。設計電腦914可經組態以產生包括經變換之設計資訊的資料檔案(諸如,GDSII檔案926),除了其他電路或資訊之外,該資料檔案包括描述圖1之可組態快取記憶體、圖2之可組態快取記憶體或其任何組合的資訊。為了說明,該資料檔案可包括對應於晶載系統(SOC)之資訊,該晶載系統(SOC)包括圖1之可組態快取記憶體且亦包括SOC內之額外電子電路及組件。 Design computer 914 can be configured to transform design information (including circuit design information 922) to conform to a file format. To illustrate, the file format can include a database binary file format that represents planar geometry, textual indicia, and other information regarding the circuit layout in a hierarchical format, such as a graphical data system (GDSII) file format. Design computer 914 can be configured to generate a data archive (such as GDSII archive 926) including transformed design information, including, in addition to other circuitry or information, a configurable cache memory depicting FIG. Figure 2 shows the information of the configurable cache or any combination thereof. To illustrate, the data file may include information corresponding to a Crystal Carrying System (SOC) including the configurable cache memory of FIG. 1 and also including additional electronic circuitry and components within the SOC.

可在製造過程928處接收GDSII檔案926以根據GDSII檔案926中之經變換的資訊來製造圖1之可組態快取記憶體、圖2之可組態快取記憶體、SOC或其任何組合。舉例而言,一器件製造過程可包括將GDSII 檔案926提供至遮罩製造者930以形成一或多個遮罩,諸如待用於光微影處理之遮罩,如代表性遮罩932所說明。可在製造過程期間使用遮罩932以產生一或多個晶圓934,可對該一或多個晶圓934進行測試且將其分離為晶粒(諸如,代表性晶粒936)。晶粒936包括一電路,該電路包括圖1之可組態快取記憶體、圖2之可組態快取記憶體或其任何組合。 The GDSII file 926 can be received at the manufacturing process 928 to produce the configurable cache memory of FIG. 1, the configurable cache memory of FIG. 2, the SOC, or any combination thereof, based on the transformed information in the GDSII archive 926. . For example, a device fabrication process can include GDSII File 926 is provided to mask maker 930 to form one or more masks, such as a mask to be used for photolithography, as illustrated by representative mask 932. Mask 932 may be used during the manufacturing process to produce one or more wafers 934 that may be tested and separated into dies (such as representative dies 936). The die 936 includes a circuit that includes the configurable cache memory of FIG. 1, the configurable cache memory of FIG. 2, or any combination thereof.

可將晶粒936提供至封裝過程938,其中將晶粒936併入於代表性封裝940中。舉例而言,封裝940可包括單一晶粒936或多個晶粒,諸如,封裝級系統(SiP)配置。封裝940可經組態以符合一或多個標準或規範,諸如,聯合電子器件工程會議(JEDEC)標準。 The die 936 can be provided to a packaging process 938 in which the die 936 is incorporated into a representative package 940. For example, package 940 can include a single die 936 or multiple dies, such as a package level system (SiP) configuration. Package 940 can be configured to conform to one or more standards or specifications, such as the Joint Electron Device Engineering Conference (JEDEC) standard.

可(諸如)經由儲存於電腦946處之組件程式庫將關於封裝940之資訊散布至各個產品設計者。電腦946可包括一耦接至記憶體950之處理器948,諸如,一或多個處理核心。可將印刷電路板(PCB)工具儲存為記憶體950處之處理器可執行指令,以處理經由使用者介面944自電腦946之使用者接收的PCB設計資訊942。PCB設計資訊942可包括電路板上之經封裝半導體器件的實體定位資訊,該經封裝半導體器件對應於包括圖1之可組態快取記憶體、圖2之可組態快取記憶體或其任何組合的封裝940。 Information about the package 940 can be disseminated to individual product designers, such as via a component library stored at the computer 946. Computer 946 can include a processor 948 coupled to memory 950, such as one or more processing cores. A printed circuit board (PCB) tool can be stored as processor executable instructions at memory 950 to process PCB design information 942 received from a user of computer 946 via user interface 944. The PCB design information 942 can include physical location information for the packaged semiconductor device on the circuit board, the packaged semiconductor device corresponding to the configurable cache memory of FIG. 1, the configurable cache memory of FIG. 2, or Any combination of packages 940.

電腦946可經組態以變換PCB設計資訊942以便產生一資料檔案(諸如,GERBER檔案952),其具有包括電路板上之經封裝半導體器件的實體定位資訊以及電連接(諸如,跡線及介層孔(via))之布局的資料,其中該經封裝半導體器件對應於包括圖1之可組態快取記憶體、圖2之可組態快取記憶體或其任何組合的封裝940。在其他實施例中,藉由經變換之PCB設計資訊產生之資料檔案可具有不同於GERBER格式之格式。 The computer 946 can be configured to transform the PCB design information 942 to produce a data file (such as GERBER file 952) having physical positioning information including the packaged semiconductor device on the circuit board and electrical connections (such as traces and Information on the layout of the vias, wherein the packaged semiconductor device corresponds to a package 940 comprising the configurable cache of FIG. 1, the configurable cache of FIG. 2, or any combination thereof. In other embodiments, the data file generated by the transformed PCB design information may have a format other than the GERBER format.

可在板裝配過程954處接收GERBER檔案952且用以形成根據儲存於GERBER檔案952內之設計資訊製造之PCB,諸如,代表性PCB 956。 舉例而言,可將GERBER檔案952上載至用於執行PCB生產過程之各種步驟的一或多個機器。PCB 956可填入有包括封裝940之電子組件以形成代表性印刷電路總成(PCA)958。 The GERBER file 952 can be received at the board assembly process 954 and used to form a PCB fabricated from design information stored in the GERBER file 952, such as a representative PCB 956. For example, the GERBER file 952 can be uploaded to one or more machines for performing various steps of the PCB production process. The PCB 956 can be populated with electronic components including a package 940 to form a representative printed circuit assembly (PCA) 958.

可在產品製造過程960處接收PCA 958且將其整合至一或多個電子器件中,諸如,第一代表性電子器件962及第二代表性電子器件964。作為一說明性且非限制性實例,第一代表性電子器件962、第二代表性電子器件964或其兩者可選自由以下各物組成之群組:機上盒、音樂播放器、視訊播放器、娛樂單元、導航器件、通信器件、個人數位助理(PDA)、固定位置資料單元及電腦。作為另一說明性且非限制性實例,電子器件962及964中之一或多者可為遠端單元(諸如,行動電話)、掌上型個人通信系統(PCS)單元、攜帶型資料單元(諸如,個人資料助理)、具備全球定位系統(GPS)功能之器件、導航器件、固定位置資料單元(諸如,儀錶讀取設備),或儲存或擷取資料或電腦指令之任何其他器件,或其任何組合。儘管圖1至圖8中之一或多者可說明根據本發明之教示的遠端單元,但本發明並不限於此等所說明之例示性單元。本發明之實施例可適當地用於包括主動積體電路(其包括記憶體及晶載電路)之任何器件中。 PCA 958 can be received at product manufacturing process 960 and integrated into one or more electronic devices, such as first representative electronic device 962 and second representative electronic device 964. As an illustrative and non-limiting example, the first representative electronic device 962, the second representative electronic device 964, or both may be selected from the group consisting of: a set-top box, a music player, and a video player. Devices, entertainment units, navigation devices, communication devices, personal digital assistants (PDAs), fixed location data units, and computers. As another illustrative and non-limiting example, one or more of electronic devices 962 and 964 can be a remote unit (such as a mobile phone), a palm-type personal communication system (PCS) unit, a portable data unit (such as , Personal Data Assistant), Global Positioning System (GPS)-enabled devices, navigation devices, fixed-location data units (such as meter reading devices), or any other device that stores or retrieves data or computer instructions, or any combination. Although one or more of Figures 1-8 can illustrate a remote unit in accordance with the teachings of the present invention, the invention is not limited to the exemplary units described herein. Embodiments of the present invention are suitably used in any device including an active integrated circuit including a memory and a crystal carrying circuit.

因此,如說明性過程900中所描述,可製造、處理圖1之可組態快取記憶體、圖2之可組態快取記憶體或其任何組合並將其併入至電子器件中。參看圖1至圖8所揭示之實施例的一或多個態樣可包括於各種處理階段處(諸如,包括於程式庫檔案912、GDSII檔案926及GERBER檔案952內),以及儲存於研究電腦906之記憶體910、設計電腦914之記憶體918、電腦946之記憶體950、在各種階段處(諸如,在板裝配過程954處)所使用之一或多個其他電腦或處理器(未圖示)的記憶體處,且亦併入於一或多個其他實體實施例中,諸如,遮罩932、晶粒936、封裝940、PCA 958、諸如原型電路或器件(未圖示)之其他產品,或其任何組合。 儘管描繪了自實體器件設計至最終產品之生產的各種代表性階段,但在其他實施例中可使用較少階段或可包括額外階段。類似地,過程900可藉由單一實體或藉由執行過程900之各種階段之一或多個實體來執行。 Thus, as described in the illustrative process 900, the configurable cache memory of FIG. 1, the configurable cache memory of FIG. 2, or any combination thereof, can be fabricated, fabricated, and incorporated into an electronic device. One or more aspects of the embodiments disclosed with reference to Figures 1-8 can be included at various processing stages (such as included in library file 912, GDSII file 926, and GERBER file 952), as well as stored in a research computer. Memory 910 of 906, memory 918 of design computer 914, memory 950 of computer 946, one or more other computers or processors used at various stages (such as at board assembly process 954) (not shown) The memory of the display, and is also incorporated in one or more other physical embodiments, such as mask 932, die 936, package 940, PCA 958, other such as prototype circuits or devices (not shown) Product, or any combination thereof. Although various representative stages are depicted from the physical device design to the production of the final product, fewer stages may be used or additional stages may be included in other embodiments. Similarly, process 900 can be performed by a single entity or by performing one or more of the various stages of process 900.

熟習此項技術者將進一步瞭解,結合本文中所揭示之實施例而描述之各種說明性邏輯區塊、組態、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為了清楚地說明硬體與軟體之此可互換性,各種說明性組件、區塊、組態、模組、電路及步驟已在上文大體上按其功能性加以描述。將此功能性實施為硬體或是軟體,端視特定應用及強加於整個系統上之設計約束而定。對於每一特定應用而言,熟習此項技術者可以變化之方式實施所描述之功能性,但不應將該等實施決策解釋為導致脫離本發明之範疇。 It will be further appreciated by those skilled in the art that the various illustrative logical blocks, configurations, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or both. The combination. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, configurations, modules, circuits, and steps have been described above generally in terms of their functionality. Implement this functionality as hardware or software, depending on the specific application and design constraints imposed on the overall system. The described functionality may be implemented by a person skilled in the art for a particular application, and the implementation decisions are not to be construed as a departure from the scope of the invention.

結合本文中所揭示之實施例所描述之方法或演算法的步驟可直接以硬體、由處理器執行之軟體模組或該兩者之組合來具體化。軟體模組可駐存於隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、可抹除可程式化唯讀記憶體(EPROM)、電可抹除可程式化唯讀記憶體(EEPROM)、暫存器、硬碟、可抽換式碟片、緊密磁碟唯讀記憶體(CD-ROM),或此項技術中已知之任一其他形式之儲存媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊及將資訊寫入至儲存媒體。在替代例中,儲存媒體可整合至處理器。處理器及儲存媒體可存在於特殊應用積體電路(ASIC)中。該ASIC可存在於計算器件或使用者終端機中。在替代例中,處理器及儲存媒體可作為離散組件存在於計算器件或使用者終端機中。 The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied in the form of a hardware, a software module executed by a processor, or a combination of the two. The software module can reside in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), and erasable programmable read-only memory. (EPROM), electrically erasable programmable read only memory (EEPROM), scratchpad, hard drive, removable disc, compact disk read-only memory (CD-ROM), or this technology Any other form of storage medium known in the art. The exemplary storage medium is coupled to the processor such that the processor can read information from the storage medium and write the information to the storage medium. In the alternative, the storage medium can be integrated into the processor. The processor and the storage medium may reside in a special application integrated circuit (ASIC). The ASIC can be present in a computing device or user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a computing device or user terminal.

提供所揭示之實施例的前述描述以使任何熟習此項技術者能夠製作或使用所揭示之實施例。此等實施例之各種修改對於熟習此項技 術者而言將顯而易見,且本文所界定之一般原理可在不脫離本發明之精神或範疇的情況下應用於其他實施例。因此,本發明並非意欲限於本文中所展示之實施例,而應符合可能與如以下申請專利範圍所界定之原理及新穎特徵相一致的最廣泛範疇。 The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the disclosed embodiments. Various modifications to these embodiments are familiar to the art. The general principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Therefore, the present invention is not intended to be limited to the embodiments shown herein, but the broadest scope of the invention may be in accordance with the principles and novel features as defined in the following claims.

100‧‧‧可組態快取記憶體系統 100‧‧‧Configurable Cache Memory System

102‧‧‧位址 102‧‧‧ address

104‧‧‧共同位元 104‧‧‧Common bits

106‧‧‧可組態快取記憶體 106‧‧‧Configurable cache memory

108‧‧‧標籤狀態陣列 108‧‧‧Label Status Array

110‧‧‧快取資料區域 110‧‧‧Cache data area

112‧‧‧快取線 112‧‧‧Cache line

112a‧‧‧區段或磁區 112a‧‧‧section or magnetic zone

112b‧‧‧區段或磁區 112b‧‧‧section or magnetic zone

114‧‧‧集合 114‧‧‧Collection

116‧‧‧標籤區域 116‧‧‧Label area

118‧‧‧狀態區域 118‧‧‧Status area

120‧‧‧通道 120‧‧‧ channel

122‧‧‧設定索引1 122‧‧‧Set index 1

124‧‧‧設定索引2 124‧‧‧Set index 2

126‧‧‧狀態位址 126‧‧‧ State Address

128‧‧‧標籤位址 128‧‧‧ label address

Claims (1)

一種用於快取記憶體組態之方法,其包含:在一快取記憶體之一標籤狀態陣列處接收一位址,其中該快取記憶體可組態而具有一第一大小及一大於該第一大小之第二大小中的一者;識別該位址之一第一部分作為一設定索引;使用該設定索引來定位該標籤狀態陣列之至少一標籤欄位;識別該位址之一第二部分以與一儲存於該至少一標籤欄位處之值進行比較;定位該標籤狀態陣列之至少一狀態欄位,其係與匹配該第二部分之一特定標籤欄位相關聯;基於該位址之一第三部分與該至少一狀態欄位之至少兩個狀態位元的一比較來識別一快取線;及擷取該快取線,其中基於該快取記憶體之大小來選擇該位址之該第一部分的一第一位置及該位址之該第二部分的一第二位置,且其中該位址之該第一部分在該快取記憶體具有該第一大小時與在該快取記憶體具有該第二大小時具有一相同數目個位元。 A method for caching a memory configuration, comprising: receiving an address at a tag state array of a cache memory, wherein the cache memory is configurable to have a first size and a greater than One of the second sizes of the first size; identifying a first portion of the address as a set index; using the set index to locate at least one tag field of the tag state array; identifying one of the addresses Comparing the two portions with a value stored in the at least one tag field; locating at least one status field of the tag status array associated with a particular tag field that matches one of the second portions; based on the bit Comparing a third portion of the address with a comparison of at least two status bits of the at least one status field to identify a cache line; and extracting the cache line, wherein the cache line is selected based on the size of the cache memory a first location of the first portion of the address and a second location of the second portion of the address, and wherein the first portion of the address has the first size in the cache memory and Cache memory has the first A size having the same number of bits.
TW104138095A 2009-03-03 2010-03-03 Method, apparatus, and computer readable medium for cache configuration TWI548992B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/397,185 US8266409B2 (en) 2009-03-03 2009-03-03 Configurable cache and method to configure same

Publications (2)

Publication Number Publication Date
TW201610681A true TW201610681A (en) 2016-03-16
TWI548992B TWI548992B (en) 2016-09-11

Family

ID=42112122

Family Applications (3)

Application Number Title Priority Date Filing Date
TW102138554A TWI516932B (en) 2009-03-03 2010-03-03 Method, apparatus, and computer readable medium for cache configuration
TW099106221A TWI418982B (en) 2009-03-03 2010-03-03 Configurable cache and method to configure same
TW104138095A TWI548992B (en) 2009-03-03 2010-03-03 Method, apparatus, and computer readable medium for cache configuration

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW102138554A TWI516932B (en) 2009-03-03 2010-03-03 Method, apparatus, and computer readable medium for cache configuration
TW099106221A TWI418982B (en) 2009-03-03 2010-03-03 Configurable cache and method to configure same

Country Status (8)

Country Link
US (3) US8266409B2 (en)
EP (1) EP2404241A1 (en)
JP (2) JP5357277B2 (en)
KR (2) KR101293623B1 (en)
CN (3) CN102341794B (en)
BR (1) BRPI1009228B1 (en)
TW (3) TWI516932B (en)
WO (1) WO2010102048A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI640915B (en) * 2016-07-18 2018-11-11 華邦電子股份有限公司 Memory device and program method thereof

Families Citing this family (46)

* Cited by examiner, † Cited by third party
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 (en) * 2010-12-27 2012-07-04 北京国睿中数科技股份有限公司 System and method for carrying out configuration on memories
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 (en) * 2012-01-17 2014-10-22 苏州国芯科技有限公司 Read-only cache memory applying on embedded chips
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 (en) * 2012-11-21 2016-05-04 中国科学院声学研究所 A kind of instruction cache
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 (en) * 2013-10-15 2017-07-25 深圳Tcl新技术有限公司 The method and display terminal of dynamic adjustment caching
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 (en) * 2013-12-20 2018-03-09 晨星半导体股份有限公司 The dynamic image system and method for memory cache managing device and application the memory cache managing device
KR102317248B1 (en) * 2014-03-17 2021-10-26 한국전자통신연구원 Cache management apparatus and method of using partial reconfiguration
US9779025B2 (en) * 2014-06-02 2017-10-03 Micron Technology, Inc. Cache architecture for comparing data
KR102354848B1 (en) * 2014-11-28 2022-01-21 삼성전자주식회사 Cache Memory Device and Electronic System including the Same
US9916251B2 (en) 2014-12-01 2018-03-13 Samsung Electronics Co., Ltd. Display driving apparatus and cache managing method thereof
CN105980979B (en) * 2014-12-13 2018-11-20 上海兆芯集成电路有限公司 For detecting the logic analyzer of pause
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 (en) * 2015-11-17 2017-05-24 深圳市中兴微电子技术有限公司 Memory switching method and device
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 (en) * 2016-03-16 2017-09-21 고려대학교 산학협력단 Monolithic 3D integration based cache memory
CN105843360B (en) * 2016-03-23 2018-06-12 中国电子科技集团公司第三十八研究所 A kind of device and method for reducing power consumption of instruction cache memory
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
KR102465213B1 (en) * 2018-03-31 2022-11-10 마이크론 테크놀로지, 인크. Conditional branching control for multi-threaded, self-scheduling, reconfigurable compute fabrics
CN109801655B (en) * 2018-12-19 2020-10-13 成都海光集成电路设计有限公司 Tag memory bit read comparison circuit and tag data read comparison circuit
TWI706250B (en) * 2019-02-26 2020-10-01 慧榮科技股份有限公司 Data storage device and control method for non-volatile memory
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
CN112905240A (en) 2019-03-15 2021-06-04 英特尔公司 Architecture for block sparse operations on systolic arrays
EP3938912B1 (en) 2019-03-15 2023-09-20 INTEL Corporation Memory controller management techniques
CN110147330B (en) * 2019-05-23 2023-09-01 深圳市创维软件有限公司 Word matrix data caching method, device, equipment and storage medium
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
KR20230075914A (en) * 2021-11-23 2023-05-31 삼성전자주식회사 Processing apparatus and operating method thereof and electronic apparatus

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
US7406579B2 (en) 2002-12-17 2008-07-29 International Business Machines Corporation Selectively changeable line width memory
JP4741844B2 (en) * 2002-12-17 2011-08-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Memory that can selectively change the line width
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 (en) * 2005-05-17 2007-05-07 인터내셔널 비지네스 머신즈 코포레이션 Selectively changeable line width memory
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 (en) * 2005-06-30 2009-11-11 株式会社東芝 Cache device
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
US20090006803A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick L2 Cache/Nest Address Translation
US8266409B2 (en) 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI640915B (en) * 2016-07-18 2018-11-11 華邦電子股份有限公司 Memory device and program method thereof

Also Published As

Publication number Publication date
US20140208027A1 (en) 2014-07-24
EP2404241A1 (en) 2012-01-11
WO2010102048A1 (en) 2010-09-10
US8943293B2 (en) 2015-01-27
CN102341794A (en) 2012-02-01
TWI516932B (en) 2016-01-11
US8266409B2 (en) 2012-09-11
US20120265943A1 (en) 2012-10-18
US20100228941A1 (en) 2010-09-09
KR20110127733A (en) 2011-11-25
KR101293613B1 (en) 2013-08-13
KR20130080868A (en) 2013-07-15
CN102341794B (en) 2015-02-11
BRPI1009228B1 (en) 2020-12-01
JP5650821B2 (en) 2015-01-07
CN104572503A (en) 2015-04-29
CN104598395A (en) 2015-05-06
TW201106158A (en) 2011-02-16
TWI418982B (en) 2013-12-11
TW201415228A (en) 2014-04-16
US8719503B2 (en) 2014-05-06
CN104598395B (en) 2017-10-31
KR101293623B1 (en) 2013-08-13
JP2012519334A (en) 2012-08-23
JP2013257902A (en) 2013-12-26
CN104572503B (en) 2018-07-03
TWI548992B (en) 2016-09-11
BRPI1009228A2 (en) 2016-03-15
JP5357277B2 (en) 2013-12-04

Similar Documents

Publication Publication Date Title
TWI516932B (en) Method, apparatus, and computer readable medium for cache configuration
US9378081B2 (en) Bit remapping system
US8724414B2 (en) System and method to select a reference cell
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
EP3074869B1 (en) Bit recovery system
EP3080814B1 (en) System and method to perform low power memory operations
US9250998B2 (en) Cache structure with parity-protected clean data and ECC-protected dirty data