TWI442227B - 微處理器之可組態快取 - Google Patents

微處理器之可組態快取 Download PDF

Info

Publication number
TWI442227B
TWI442227B TW96147758A TW96147758A TWI442227B TW I442227 B TWI442227 B TW I442227B TW 96147758 A TW96147758 A TW 96147758A TW 96147758 A TW96147758 A TW 96147758A TW I442227 B TWI442227 B TW I442227B
Authority
TW
Taiwan
Prior art keywords
cache
address
column
memory
central processing
Prior art date
Application number
TW96147758A
Other languages
English (en)
Other versions
TW200834307A (en
Inventor
Rodney J Pesavento
Gregg D Lahti
Joseph W Triece
Original Assignee
Microchip Tech Inc
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 Microchip Tech Inc filed Critical Microchip Tech Inc
Publication of TW200834307A publication Critical patent/TW200834307A/zh
Application granted granted Critical
Publication of TWI442227B publication Critical patent/TWI442227B/zh

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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/6028Prefetching based on hints or prefetch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

微處理器之可組態快取
本發明係關於一種用於微處理器或微控制器之可組態快取。
管線式微處理器架構之瓶頸為記憶體系統之高存取時間。用以解決此問題之典型方法使用較大快取且在初始高記憶體存取時間之後每時脈傳輸多個資料字。小型微控制器設計受限於可為晶載之快取的量且其不能支援大尺寸之高潛時但高輸送量的窄記憶體。因此,需要一種用於微控制器或微處理器之可組態快取。
根據一實施例,一用於中央處理單元之快取模組可包含一包含一用於一記憶體之介面的快取控制單元、一與控制單元耦合之快取記憶體,其中快取記憶體包含複數個快取列,複數個快取列中之至少一個快取列包含一位址標記位元欄及一用於儲存指令或資料之關聯儲存區域,其中位址標記位元欄為可讀且可寫的,且其中快取控制單元可操作以在偵測到一位址已被寫入至位址標記位元欄後即起始一預載功能,其中將來自記憶體之指令或資料自位址載入至至少一個快取列中。
根據另一實施例,快取模組可亦包含一用於經由至少一個關聯暫存器而存取快取列之索引暫存器。根據另一實施例,快取模組可亦包含一為讀取及寫入存取而映射位址標 記欄之暫存器。根據另一實施例,至少一個快取列進一步可包含一用於鎖定至少一個快取列以防被覆寫之鎖定位元。根據另一實施例,至少一個快取列進一步可包含至少一個控制位元欄,其中控制位元欄與位址標記位元欄耦合以遮罩位址標記位元欄中預定數目之位元。根據另一實施例,至少一個另一快取列可包含用於自動鎖定至少一個另一快取列之至少一個分支追蹤位元,其中在分支追蹤位元經設定之狀況下,鎖定位元在關聯儲存區域中之一預定指令已被發布之狀況下經自動設定。根據另一實施例,每一快取列進一步可包含一用於指示關聯快取列之有效性的有效性控制位元。根據另一實施例,每一快取列進一步可包含一用於指示快取列是用作一指令快取列還是用作一資料快取列之類型控制位元。根據另一實施例,快取模組可進一步包含一與記憶體及快取記憶體耦合之預取單元,其中預取單元經設計以當一來自一先前已載入有指令之快取列的指令被發布時將來自記憶體之指令自動載入至另一快取列中。根據另一實施例,預取單元可經控制成被啟用或停用。根據另一實施例,一最近最少使用之演算法可用以判定哪一快取將被覆寫。
根據另一實施例,一操作一具有用於儲存指令或資料之複數個快取列且每一快取列具有一位址標記位元欄之快取的方法可包含以下步驟:提供一用於一儲存於一記憶體中之指令序列的位址;及將位址寫入至一快取列之一位址標記位元欄中,隨之執行在位址下對記憶體之一存取以將儲 存於記憶體中之位址下的指令或資料載入至快取列中。
根據另一實施例,該方法可進一步包含在執行寫入步驟之前選擇快取列之步驟。根據另一實施例,選擇步驟可藉由將一用於快取列之索引載入至一索引暫存器中來執行。根據另一實施例,寫入位址之步驟可藉由將位址寫入至一被映射至快取列之暫存器中來執行。根據另一實施例,該方法可進一步包含當一來自一先前已載入有指令之快取列的指令被發布時將來自記憶體之指令自動載入至另一快取列中之步驟。
根據又一實施例,一操作一具有一中央處理單元(CPU)(其與一具有用於儲存指令或資料之複數個快取列且每一快取列具有一位址標記位元欄之快取耦合)之系統的方法可包含以下步驟:在CPU中執行一指令,其將一位址寫入至一快取列之一位址標記位元欄中;偵測位址標記位元欄已被覆寫;及隨之在位址下存取一記憶體且將儲存於記憶體中之位址下的指令或資料載入至快取列中。
根據另一實施例,該方法可進一步包含在執行寫入步驟之前選擇快取列之步驟。根據另一實施例,選擇步驟可藉由將一用於快取列之索引載入至一索引暫存器中來執行。根據另一實施例,寫入位址之步驟可藉由將位址寫入至一被映射至快取列之暫存器中來執行。根據另一實施例,該方法可進一步包含當一來自一先前已載入有指令之快取列的指令被發布時將來自記憶體之指令自動載入至另一快取列中之步驟。
根據又一實施例,一用於一中央處理單元之快取模組可包含一包含一用於一記憶體之介面的快取控制單元,及一與控制單元耦合之快取記憶體,其中快取記憶體包含複數個快取列,其中快取記憶體可經程式化以指派一用以快取指令之第一快取列集合及一用以快取資料之第二快取列集合,且其中快取控制單元包含一可程式化功能,可程式化功能在指令自第一快取列集合被執行時強制一資料快取進入第二快取列集合。
根據又一實施例,一用於一中央處理單元之快取模組可包含一包含一用於一記憶體之介面及一可程式化控制暫存器的快取控制單元,及一與控制單元耦合之快取記憶體,其中快取記憶體包含複數個快取列,其中快取記憶體包含一用以快取指令之第一快取列集合及一用以快取資料之第二快取列集合,且其中快取控制單元可操作以在控制暫存器中之至少一個位元經設定時強制一資料快取進入第二快取列集合。
標準微控制器單元(MCU)通常包含8位元或16位元微處理器核心。32位元核心僅最近才進入MCU界。所有此等核心通常不具有快取。僅複雜高端32位元微控制器可具有快取。此係因為對於MCU而言快取為較大且昂貴的。所揭示實施例提供中間立場之小型可組態快取,其可在運作中(on the fly)組態且可作為預取及分支追蹤緩衝器,同時提供用於MCU應用之最佳快取深度。
根據一實施例,快取可經設計為可組態以非常靈活地操作。舉例而言,其可經程式化以嚴格地操作為快取,此可用於小迴路最佳化。為此,可手動鎖定包含迴路之各別快取列。其亦可專用特定數目之快取列(例如,多達用於鏈接分支歷史儲存之列的一半),此可加速函數呼叫傳回。最後,其可經組態以在第一指令自快取列經發布時將順序程式資訊預取至最近最少使用之快取列中。藉由以兩倍於微處理器可使用程式指令之速率來預取程式指令,記憶體系統在不使程式指令流停止之情況下提供可用頻寬以提取程式資料。實務上,並非所有程式資料提取均為透明的。根據不同實施例之快取設計方法提供一用以藉由給出與高潛時但高輸送量之寬記憶體組合之低潛時快取之特徵平衡來改良效能的機制。
根據一實施例,快取可經設計為執行時間及可在運作中組態之全關聯快取。圖1展示可組態快取100之一實施例的方塊圖。耦合匯流排110a及110b將快取耦合至微控制器或微處理器之中央處理單元(CPU)。快取100包含快取控制器120,快取控制器120耦合至指令快取區段130及資料快取區段140。每一指令快取區段包含指令記憶體適當且關聯之控制位元及標記(例如,以列形式),其中一列可包括一用於儲存複數個字之儲存區域。舉例而言,一字可為16個位元長且指令快取130內之一列可具有4個雙字,從而產生4×32個位元。根據一實施例,一小指令快取130可包括4個該等列。根據其他實施例,視各別處理器之設計而定的其 他組態可能為更有利的。根據一實施例,資料快取區段140可經設計成類似於指令快取設計130。視設計模型而定,獨立之指令快取區段130及資料快取區段140可為所需的,此(例如)可用於具有哈佛(Harvard)架構之處理器中。然而,在習知範紐曼(von Neumann)型微處理器中,可使用能夠自同一記憶體快取指令及資料之混合快取。圖1僅展示根據一具有哈佛架構之處理器之連接至指令快取130及資料快取140的程式快閃記憶體(PFM)160。資料記憶體可獨立地耦合於哈佛架構中,或記憶體160在用於範紐曼架構中時可為統一指令/資料記憶體。多工器150由(例如)快取控制器120控制且將儲存於快取記憶體130、140中之資料/指令經由匯流排110b而提供至CPU。
圖2更詳細地展示根據一實施例之指令快取130及資料快取的結構。該排列再次展示用於指令及資料之獨立快取。快取之每一列包含一資料/指令儲存區域及複數個關聯控制及標記位元,例如,IFM、TAG及BT。IFM表示特定遮罩,該特定遮罩可用以(例如)遮罩位址標記欄TAG之特定位元,該位址標記欄TAG含有資料/指令快取DATA之起始位址,如以下將更詳細所解釋。如圖2中所示,每一列可(例如)包含指令/資料快取之4×32個位元。標記欄可包含實際位址以及指示各別快取列之有效性、鎖定、類型等等的額外位元。此外,如圖2中所示,針對每一快取列而提供一分支追蹤位元BT。當此位元經設定時,只要子常式呼叫指令在各別快取列內經執行且該指令並非列中之最後指 令,CPU便可自動鎖定關聯快取列。在該狀況下,各別快取列被自動鎖定,且當程式自各別子常式傳回時,在各別呼叫指令之後的指令將存在於快取中,如以下將更詳細所解釋。
圖3展示可組態快取的另一實施例。快取控制器120提供用於快取之所有功能的控制信號及資訊。舉例而言,快取控制器120控制TAG邏輯310,TAG邏輯310與命中邏輯320耦合,命中邏輯320亦處理來自快取控制器120及來自由快取控制器所提供之預取標記330的資料。命中邏輯產生控制快取列位址編碼器340之信號,快取列位址編碼器340定址快取記憶體350,在此實施例中,快取記憶體350包含(例如)資料/指令記憶體之16個列,每一列包含(例如)用於指令/資料儲存之4×32位元雙字。程式快閃記憶體160與快取控制器120耦合且經由預取單元360而與快取耦合,預取單元360亦連接至快取列位址編碼器340。預取單元360在由快取列位址編碼器340直接定址或經由緩衝器而定址時將指令轉移至快取記憶體350之每一快取列中。為此,預取單元360可包含能夠儲存待轉移至各別快取列之儲存區域中之指令的一或多個緩衝器。多工器150經控制以在快取記憶體350內或自單元360之預取緩衝器中選擇各別位元組/字/雙字且將其提供至CPU匯流排110b。
圖4更詳細地展示快取記憶體350。在此實施例中,提供16個快取列。每一列包含複數個控制位元及一4×32位元指令/資料儲存區域(Word0至Word3)。控制位元包含遮罩 MASK、位址標記TAG、有效性位元V、鎖定位元L、類型位元T及分支追蹤位元BT。遮罩MASK允許在由命中邏輯320進行之比較期間遮罩位址標記TAG之選定位元,以下將更詳細所解釋。位址標記TAG藉此指示記憶體160中之快取列之開始。如以下將更詳細解釋,位址標記TAG為可讀且可寫的,且在由使用者寫入時將強制預取功能。有效性位元V指示關聯快取列中之條目為有效的。此位元不能由使用者更改且其經自動設定或重設。鎖定位元L指示快取列是否經鎖定,且因此不能被覆寫。此位元可由使用者更改或可關於分支追蹤功能而經自動設定,如以下所解釋。位元T指示快取列之類型,亦即,快取列係用作指令快取列還是用作資料快取列。此位元可經設計為由使用者更改,其允許快取之非常靈活的指派及組態。不使用單一可指派位元T以將特定快取列指定為資料快取列,而係可使用一通用組態暫存器來界定特定數目個將用於快取資料的列,而剩餘快取列將用於指令快取。在該實施例中,仍可提供位元T以指示哪些快取列經設定為所指定資料快取列,且因此在該實施例中不能被更改。如稍後將解釋,根據一實施例之快取可(例如)經組態以使無快取列、1個、2個或4個快取列專用於資料快取之目的。該指派可因此將快取分為兩個部分,例如,視所指派列之數目而定,可自快取之底部向上而指派資料快取列。當然,具有更多資料快取列之其他組態為可能的且視快取之各別設計而定。因此,當經設定時,位元T指示此列係用於資料快取。
圖7展示可用以實施分支追蹤功能之某一邏輯電路的實施例。如以上所解釋,在將分支至子常式且將傳回之子常式指令、截獲指令、中斷指令或其他指令係在快取列內經執行且並非列中之最後指令的狀況下,分支追蹤位元750係用以自動鎖定關聯快取列。當經設定時,當呼叫子常式類型指令已被執行且程式分支離開其線性執行序列時,CPU可藉由經由邏輯閘760來設定位元740而自動鎖定關聯列。可在執行單元中偵測該子常式類型指令之執行且藉由信號770而向邏輯閘760發信號。當至少一個指令在快取列中剩餘,其尚未經執行,但在程式自各別子常式傳回時將經執行時,啟用此功能性。在該指令置放於快取列之最後記憶體空間中的狀況下,將沒有必要保持快取列自動鎖定,因為隨後的指令將在不同快取列中或甚至可能不在快取中。當位元750視各別子常式或中斷呼叫之執行(其係藉由偵測信號770而經發信號至邏輯閘760)而經設定時,CPU自動設定及重設鎖定位元740。
圖5及圖6展示經實施於微處理器或微控制器內以控制可組態快取之行為及功能性之通用快取控制暫存器510及其他控制暫存器610-660的實例。所有暫存器可經設計為用於32位元環境中之32位元暫存器。然而,此等暫存器可容易適應於在16位元或8位元環境中工作。舉例而言,暫存器CHECON包含位元31以啟用或停用整個快取,且位元16CHECOH可用以提供PFM程式循環位元上之快取一致性設定。舉例而言,此位元CHECOH可在經設定時使所有資料 列及指令列無效,或可使所有資料列無效且僅使未經鎖定之指令列無效。位元24可用以啟用強制資料快取功能,如以下將更詳細所解釋。當經設定時,若快取頻寬未用於提取指令,則此功能強制資料快取。位元11-12 BTSZ可用以啟用/停用分支追蹤標記。舉例而言,在一實施例中,若經啟用,則分支追蹤標記可經設定為1列、2列或4列之大小。因此,1、2或4個快取列將具有此功能性。根據其他實施例,所有快取列可經啟用以用於該功能性。位元8-9 DCSZ用以界定如以上所解釋之資料快取列的數目。在一實施例中,數目可經設定以啟用0、1、2或4個資料快取列。
位元4-5 PREFEN可用以啟用選擇性地用於記憶體之可快取及非可快取區域的預測性預取。記憶體之可快取區域可為記憶體內之諸如可經實際快取之記憶體或程式區域的區域,意謂與快取實際耦合之記憶體區域。非可快取區域通常指代(例如)通常不能被快取之記憶體映射周邊空間。可快取區域與非可快取區域之間的差別視系統設計而定。某些實施例可能需要該差別且各別微處理器/微控制器將支援快取/非快取方法,而處理器之其他實施例可能能夠快取任何類型之記憶體,無論其是實際記憶體區域還是記憶體映射區域。
若經設定,則預取單元將一直提取在快取列(當前自該快取列中發布指令)之後的指令。使用兩個位元會允許(例如)四個不同設定,諸如,啟用用於可快取區域及非可快 取區域兩者之預測性預取、僅啟用用於非可快取區域之預測性預取、僅啟用用於可快取區域之預測性預取,及停用預測性預取。根據一實施例,假定一快取列包含16個位元組或四個雙字。舉例而言,若中央處理單元請求來自位址0x001000之指令x1,則快取控制邏輯比較所有位址標記與0x00100X(其中位元X經忽略)。若控制器產生命中,則選擇各別列。選定列包含以位址0x001000起始之所有指令。因此,在每一指令為32位元長之狀況下,第一指令將經發布至中央處理單元,且預取單元將經觸發以預取下一列指令。為此,預取單元將隨後的位址標記計算為0x001010且開始在下一可用快取列中載入各別指令。當中央處理單元進一步執行來自位址0x001004、0x001008及0x00100C之指令時,預取單元以來自位址0x001010、0x001014、0x001018及0x00101C之指令來填滿下一可用快取列。在中央處理單元完成執行當前選定之快取列的指令之前,預取單元將完成裝載後續指令。因此,中央處理單元將不被停止。
返回參看圖5,位元0-2用以界定程式快閃記憶體之等待狀態的數目。因此,多種不同快閃記憶體可與微控制器一起使用。
如圖4中所示之快取內之每一列可在控制下映射至如圖6中所示之暫存器。因此,快取列可經設計以完全可經由讀取及寫入操作而存取且可完全由使用者更改。然而,如上文所述,快取列之某些位元可經設計成不能由使用者更改 或在使用者可更改各別列之前可需要對各別列開鎖。為此,可提供索引暫存器600以用於選擇16個快取列中之一者。一旦快取列已經由索引暫存器600而經選擇,快取列就可經由隨後的暫存器610-660而存取。遮罩暫存器可(例如)在位元5-15中包含選定快取列之遮罩MASK。用於標記之第二暫存器可在位元4-23中具有位址標記且亦可包含指示選定暫存器之有效性、鎖定狀態、類型及分支追蹤功能的位元V、L、T及BT。最後四個32位元暫存器可經提供用於在暫存器Word 0、Word 1、Word 2及Word 3中包含快取資料或指令的選定列。可實施其他控制暫存器以控制快取之通用功能。因此,每一快取列可由使用者或軟體存取及調處,如以下將更詳細所解釋。
根據所揭示之實施例,快取100、300經設計以藉由自PFM 160提取(例如)指令字之一128位元對齊集合(被稱為一列)而回應於一初始CPU指令提取。所請求之實際指令可存在於列中之任一處。列儲存於快取130、350(填充)中且指令傳回至CPU。此存取可佔用多個時脈週期且使CPU停止。舉例而言,對於40奈秒存取快閃,一存取在80 MHz下可引起3個等待狀態。然而,一旦列經快取,對存在於該列中之指令位址的後續存取就在零等待狀態下發生。
若快取如此經啟用,則此過程繼續用於未命中快取列之每一指令位址。以此方式,若小迴路為128位元對齊的且與快取130、350之位元組數目相同或小於快取130、350之位元組數目,則迴路在零等待狀態下自快取經執行。對於 完全填充之迴路,如圖1中所示之具有32位元指令的4列快取130每時脈執行一個指令。換言之,CPU在16個時脈中執行儲存於快取130中之所有指令。若僅支援128位元寬之提取,則該同一迴路可每列佔用特定數目之等待狀態(例如,3個等待狀態)以用於提取,且佔用特定數目之時脈(例如,4個時脈)以用於執行(其將導致(例如)每4個指令佔用7個時脈)。此實例將產生28個時脈之總迴路時間。
圖1中之實施例包含兩列資料快取以利用可儲存於PFM 160中之常數及表資料的空間接近性。然而,在其他實施例中,此快取可為更大的且連接至資料記憶體。
此外,如上文所解釋,如圖1及圖3中所示之快取可亦用於預取,以允許避免為預取128位元寬之指令流所需的特定數目之等待狀態。若啟用預取,則快取100、300使用最近最少使用之列進行預測位址填充。預測位址正好為下一順序128位元對齊位址,如上文在使用實際位址之實例的情況下詳細所解釋。因此,在快取列內之指令的執行期間,若預測位址尚未在快取中,則快取產生快閃記憶體存取。當CPU在需要(例如)對快閃記憶體系統之3等待狀態存取的頻率下執行時,預測位址提取在CPU需要預測指令時之週期內完成。以此方式,對於線性碼,CPU指令提取可在零等待狀態下執行。
當鏈接分支與鏈接跳躍指令在CPU中執行以儲存用於將來使用之快取列時,分支追蹤特徵著眼於該等指令。此特徵藉由在追蹤分支或跳躍指令之列中儲存任何指令而增強 功能呼叫傳回之效能。
程式快閃記憶體快取160及預取模組120、360為在可快取程式快閃記憶體區域外執行之應用提供增強之效能。效能增強以三種不同方式來實現。
第一者為模組快取能力。如圖1及圖3中所示之4或16列指令快取130、350具有每時脈供應指令一次用於迴路、多達16/64個指令用於32位元作業碼且多達32/128個指令用於16位元作業碼的能力。快取大小及組織之其他組態可適用。圖1中所示之實施例亦提供快取兩列資料之能力,從而提供對列內之資料項的改良存取。圖3中所示之實施例藉由設定分裂點或個別地指派各別快取類型(如上文所解釋)而提供更可靈活指派之資料列大小。
第二,當允許預取時,模組每時脈提供指令一次用於線性碼,從而隱藏快閃記憶體之存取時間。第三,模組可將一個或兩個指令快取列配置給鏈接分支歷史指令。當具有鏈接指令之跳躍或分支在CPU中出現時,最後列經標記為分支歷史列且經儲存用於自呼叫傳回。
模組啟用
根據一實施例,在重設之後,模組可藉由設定位元(例如,CHECON暫存器中之位元31 ON/OFF(參見圖5))而經啟用。清除此位元將完成以下各項:停用所有快取、預取及分支歷史功能性且重設快取之狀態。
將模組設定為旁路模式。
允許特殊功能暫存器(SFR)讀取及寫入。
在電力節省模式下之操作
睡眠模式 根據一實施例,當裝置進入睡眠模式時,時脈控制塊停止至快取模組100、300之時脈。
閒置模式 根據一實施例,當裝置進入閒置模式時,快取及預取時脈源仍起作用且CPU停止執行程式碼。任何未處理預取在模組100、300經由自動時脈閘控而停止其時脈之前完成。
旁路行為 根據一實施例,預設操作模式為旁路。在旁路模式下,模組針對每一指令而存取PFM,從而招致快閃存取時間,如由暫存器CHECON中之PFMWS位元所界定(參見圖5)。
快取行為 根據圖1,快取與預取模組可實施全關聯4列指令快取。視設定而定,可提供更多或更少之快取列。快取列內之指令/資料儲存區域可經設計為不可寫的且在快閃程式設計序列期間或當通用控制暫存器CHECON中之各別位元經設定為邏輯0時與關聯控制位元一起被清除。其在每一列使用含有快閃位址標記之暫存器或位元欄。每一列可由指令之128個位元(16個位元組)組成,而與指令大小無關。為了簡化存取,根據圖1及圖3之快取與預取模組可僅自快閃160請求16位元組對齊指令資料。根據一實施例,若CPU所請求位址未與16位元組邊界對齊,則模組將藉由刪去位 址位元[3.0]而對準位址。
當僅經組態為快取時,模組藉由在未命中時將多個指令載入至一列中而像任何快取一樣起作用。根據一實施例,模組可使用簡單的最近最少使用之(LRU)演算法來選擇哪一列接收新指令集合。快取控制器使用暫存器CHECON之等待狀態值來判定當其偵測到未命中時其必須等待快閃存取多久。在命中時,快取在零等待狀態下傳回資料。
指令快取視預取及分支追蹤選擇而以不同方式來起作用。若程式碼為100%線性,則快取唯一模式將隨各別PFMWS週期時序而將指令提供回至CPU,其中PFMWS為等待狀態之數目。
遮罩 使用遮罩位元欄會提供快取之更靈活的使用。圖7展示用以實施遮罩功能之可能的邏輯電路。快取列之位元欄710含有(例如)11個位元,該等位元可用以遮罩位址標記720之特定位元。遮罩位元欄710之11個位元用以遮罩位址標記720之較低位元0-10。當比較器780比較位址標記720與所請求位址790時,遮罩位元欄710中經設定為"1"的任何位元將使得位址標記中之各別位元被忽略。若一指令/資料儲存區域包含16個位元組,則位址標記不包含實際位址之較低4個位元。因此,若遮罩710之所有位元經設定為"1",則由比較器比較實際位址之位元4-23與使用24個位址位元之系統中之位址標記的位元0-19。然而,經由遮罩730,可強制比較器780僅比較位址標記720之一小部分與 實際位址790之各別小部分。因此,複數個位址可導致一命中。此功能性可尤其有利地與特定中斷或截獲指令之產生一起使用,該等指令引起至指令記憶體中之預定位址的分支。舉例而言,中斷可引起至含有一中斷服務常式之記憶體位址之分支,該中斷服務常式係由中斷基本位址加上由中斷之優先級所界定之偏移位址加以界定。舉例而言,優先級0中斷將分支至位址0x000100,優先級1中斷將分支至位址0x000110,優先級2中斷將分支至位址0x000120,等等。截獲指令可經類似地組織且可引起類似分支型樣。假定特定數目之中斷服務常式至少對於預定數目之指令為相同的,則藉由使用遮罩功能,此等位址可引起至含有服務常式之起始之同一快取列的分支。舉例而言,若對於優先等級0-3之中斷服務常式的最初四個32位元指令為相同的,則包含在位址0x000010處起始之指令之快取列的遮罩位元欄可經設定為"11111111100",其對於自0x000100起始至0x0001300之所有位址將導致命中。因此,不僅具有優先級0之中斷將導致命中,而且具有優先級1、2及3之中斷亦將導致命中。其均將跳躍至已經載入至快取中之同一指令序列。因此,將不會發生用於存取快閃記憶體之損失。
預取行為 控制暫存器CHECON之位元欄PREFEN或各別單一位元(參見圖5)可用以啟用預取功能。當經組態用於預取時,模組100、300預測下一列位址且將其傳回至快取130、350之LRU列中。預取功能基於第一CPU指令提取來開始預測。 當第一列置放於快取130、350中時,模組僅使位址遞增至下一16位元組對齊位址且開始快閃存取。快閃記憶體160在所有指令可自先前列經執行時或之前傳回下一指令集合。
若在預測快閃存取期間的任何時間,新CPU位址不匹配預測位址,則快閃存取將被改變至正確位址。此行為不會使CPU存取佔用比無預測情況下所佔用之時間更長的時間。
若預測快閃存取完成,則指令與其位址標記一起置放於LRU列中。在CPU位址命中列之前不更新LRU指示。若列正好為所預取之列,則將該列標記為最近最多使用之列且相應地更新其他列。若其為快取中之另一列,則演算法相應地調整,但正好預取列仍為LRU列。若其未命中快取130、350,則存取轉至快閃且傳回指令置放於LRU列(其為最近最多更新、但從未使用之預取列)中。
根據一實施例,如上文所述,可選擇性地開啟或斷開資料預取。根據另一實施例,若控制暫存器(諸如,CHECON)中之專用位元經設定為邏輯1,則在指令預取中途的資料存取可導致指令預取異常中止。若該位元經設定為邏輯0,則資料存取在指令預取完成之後完成。
分支追蹤行為 快取可經分裂以(例如)藉由程式化暫存器CHECON中之位元欄BTSZ(參見圖5)而使指令快取之一或多個列專用於分支追蹤指令。當CPU請求如自分支與鏈接指令或跳躍與 鏈接指令所計算之新位址時,分支追蹤列為最近最多使用之快取列。根據一實施例,當模組100、300將MRU快取列標記為分支追蹤列時,其亦可解除配置LRU分支追蹤列,從而使其恢復為通用快取使用。
如上文所解釋,若最後存取係來自MRU列中之最後指令(最高位址),則列不被標記為分支追蹤列。又,模組不自快取之分支追蹤部分解除配置現有列中之任一者。
預載行為 應用程式碼可引導模組100、300以來自快閃記憶體160之指令來預載及鎖定一快取列。預載功能使用來自經標記為快取(亦即,非分支追蹤)之列的LRU。
根據一實施例,可直接存取快取列中之位址標記位元欄,且使用者可將任何值寫入至該位元欄中。該寫入導致快閃記憶體中所定址之各別列的強制預載快取。因此,預載藉由將位址寫入至快取列之位址標記位元欄中以自記憶體預載至各別列而工作。根據一實施例,此作用在存取快閃以擷取指令之前使列無效。在預載之後,列可由中央處理單元存取以用於執行各別指令。
根據一實施例,此功能性可用以實施非常靈活之除錯功能性,而無需更改程式記憶體中之程式碼。一旦識別包括在除錯序列期間需要斷點之指令的各別列,列就可經標記為預載有特定位址。則該快取列之內容可經修改以包括除錯指令。舉例而言,系統軟體可自動替換該快取列內之指令以產生斷點或執行任何其他類型之子常式。一旦各別程 式碼已被執行,就可以原始指令來替換指令且可更改堆疊以傳回至同一位址(除錯常式已自該位址被執行)。因此,預載功能性允許系統內之程式碼之非常靈活的更改。
根據又一實施例,若快取列由鎖定位元鎖定或潛在地由分支追蹤位元鎖定,則可禁止對該快取列之寫入存取。因此,僅經開鎖之快取列可為可寫的。若實施該功能性,則使用者必須首先在其可將新位址標記寫入至快取列中之前開鎖快取列,以強制快取控制器載入來自記憶體之各別指令或資料。對於對指令/資料儲存區域之寫入存取亦一樣。
以指定指令來活動地載入快取之特徵尤其對於上文所解釋之遮罩功能可為非常有用的。舉例而言,若許多中斷服務常式以同一指令序列而起始,則可藉由將各別服務常式位址寫入至位址標記中以使得各別快取列預載有各別中斷服務常式指令而強制此指令序列進入快取。藉由設定如上文所解釋之各別遮罩且鎖定各別快取列,快取可經預組態用於程式以對特定中斷做出反應,而無快閃存取損失。因此,特定常式可一直可經由快取而存取。
重設與初始化 在重設後,所有快取列均即被標記為無效的且快取特徵經停用。舉例而言,經由暫存器CHECON,等待狀態經重設為其最大等待狀態值(允許在重設之後的旁路存取)。
在任何快閃程式開始時,模組100、300強制快取為其重設值。在程式循環結束之前,由CPU所進行之任何存取均 被停止。一旦程式循環完成,申請中之CPU存取就經由至快閃之旁路而繼續。傳回指令按組態暫存器中所界定之值而完成。
快閃預取緩衝器(FPB)
根據一實施例,快閃預取緩衝器設計(參見圖3)可為簡單的緩衝器,諸如,鎖存器或暫存器365。在一實施例中,其可經設計以允許當操作於16位元指令模式下時利用x32位元快閃記憶體之四個面板來預取多達8個總指令之CPU核心指令,或當操作於32位元指令模式下時預取4個指令之CPU核心指令。經實施於快取控制器120中之FPB以線性方式來預取以確保經饋入至核心中之指令將不使核心指令停止。根據一實施例,FPB可含有2個各具有16個位元組之緩衝器。每一緩衝器追蹤指令位址提取。若超出緩衝器指令邊界而出現分支,則利用替代緩衝器(招致初始停止,但接著快取線性碼提取)。每一指令提取強制FPB抓取後續線性可能的16個位元組以填充緩衝器。
根據另一實施例,視情況,可程式化強制資料快取操作可經由預取緩衝器而經實施。一旦以一或多個指令列來填充一快取,就可順序地執行指令,而無需在特定時間週期內提取其他指令列。此尤為真實,因為單一快取列內之指令的執行時間可為將快取列載入至快取中之時間的兩倍長或甚至更長。此外,若一個或複數個連續快取列包括經執行之迴路,則可能存在相對較長的時間,在該時間期間,無其他指令需要經快取。根據一實施例,此時間可用以快 取資料,例如,待用於表中之相對大量之資料,等等。快取可由暫存器(例如,暫存器CHECON中之位元23DATAPREFEN(參見圖5))程式化以執行額外資料快取功能,而快取頻寬不用於提取指令。此在資料表由需要經載入至快取中之程式使用的情況下可為有用的。資料提取可在第一次初始填充之後發生且仍允許核心繼續使用來自快取列之預取指令。根據一實施例,當功能位元DATAPREFEN經設定時,可在每一指令提取之後自動提取一資料列。或者,根據另一實施例,只要各別位元DATAPREFEN經設定,就可強制資料快取。因此,舉例而言,可藉由設定各別位元而開始及停止強制資料快取。在又一實施例中,只要快取隨載入指令在一時間週期內不活動,強制資料快取就可經自動執行。若提供多個控制位元,則可實施不同資料快取模式之可程式化組合。
圖8展示根據一實施例之使用快取及預取功能的簡化快閃記憶體請求。快閃記憶體請求在步驟800處開始。首先,在步驟805中判定請求是否為可快取的。若請求為可快取的,則在步驟810中判定所提供位址是否產生快取命中。若是,則根據一實施例,過程可分支為兩個並行過程。然而,其他實施例可順序地執行此等過程。第一分支始於步驟812,其中判定是否已請求對子常式之呼叫。若否,則第一並行過程結束。若是,則在步驟815中判定是否已在各別快取列中設定分支追蹤位元。若是,則在步驟820中判定呼叫是否為快取列中之最後指令。若是,則第 一並行過程結束。若是,則在步驟830中鎖定各別快取列。第二並行過程始於步驟835,其中自快取傳回指令,且在步驟835中,執行最近最少使用之演算法以更新快取列之狀態。若在步驟810中尚未產生快取命中或若請求為不可快取的,則在步驟840中判定預取緩衝器是否產生命中。若預取緩衝器含有所請求指令,則在步驟845中傳回所請求指令。否則,在步驟850中執行快閃存取,其將使CPU停止。在步驟850之後的步驟855中,在快取列可用於執行快取功能之狀況下,快閃請求可填充快取列。常式以步驟860而結束。
儘管已參考本揭示案之實例實施例而描繪、描述及界定本揭示案之實施例,但該等參考案並不意味著對本揭示案之限制,且不應推斷該限制。所揭示之標的物能夠具有在形式及功能上之顯著修改、更改及等效物,此將由熟習相關技術且受益於本揭示案之一般技術者想到。本揭示案之所描繪及描述之實施例僅為實例,且並非窮舉本揭示案之範疇。
100‧‧‧快取
110a‧‧‧耦合匯流排
110b‧‧‧耦合匯流排
120‧‧‧快取控制器
130‧‧‧指令快取區段
140‧‧‧資料快取區段
150‧‧‧多工器
160‧‧‧程式快閃記憶體(PFM)
300‧‧‧快取
310‧‧‧TAG邏輯
320‧‧‧命中邏輯
330‧‧‧預取標記
340‧‧‧快取列位址編碼器
350‧‧‧快取記憶體
360‧‧‧預取單元
365‧‧‧暫存器
510‧‧‧通用快取控制暫存器
600‧‧‧索引暫存器
610、620、630、640、650、660‧‧‧ 控制暫存器
710‧‧‧位元欄
720‧‧‧位址標記
730‧‧‧遮罩
740‧‧‧位元
750‧‧‧分支追蹤位元
760‧‧‧邏輯閘
770‧‧‧信號
780‧‧‧比較器
790‧‧‧實際位址
圖1說明可組態快取的第一實施例。
圖2說明根據圖1之實施例之快取記憶體區段的細節。
圖3說明可組態快取的第二實施例。
圖4說明根據圖3之實施例之快取記憶體之快取列的細節。
圖5說明用於控制快取之一實施例之功能的示範性暫存 器。
圖6說明根據該等實施例中之一者之映射快取列之內容的其他暫存器。
圖7說明用於產生特定信號的某一邏輯電路。
圖8說明展示簡化快取存取過程的流程圖。
儘管本揭示案允許各種修改及替代形式,但其特定實例實施例已展示於圖式中且在本文中得以詳細地描述。然而,應瞭解,本文中對特定實例實施例之描述並非意欲將本揭示案限於本文所揭示之特定形式,而相反地,本揭示案將涵蓋如由隨附申請專利範圍所界定之所有修改及等效物。
100‧‧‧快取
110a‧‧‧耦合匯流排
110b‧‧‧耦合匯流排
120‧‧‧快取控制器
130‧‧‧指令快取區段
140‧‧‧資料快取區段
150‧‧‧多工器
160‧‧‧程式快閃記憶體(PFM)

Claims (23)

  1. 一種用於一中央處理單元之快取模組,其包含:一快取控制單元,其控制該快取模組之一操作且包含一用於一記憶體之介面及一用於一中央處理單元之介面,其中根據該中央處理單元之請求,該快取模組提供資料及/或指令至該中央處理單元;一與該控制單元耦合之快取記憶體,其中該快取記憶體包含複數個快取列,該複數個快取列中之至少一個快取列包含一位址標記位元欄及一用於儲存指令或資料之關聯儲存區域,其中該位址標記位元欄為可被該中央處理單元讀取及寫入,且其中該快取控制單元可操作以在偵測到一位址已被該中央處理單元寫入至該位址標記位元欄後即起始一預載功能,其中將來自該記憶體之指令或資料自該位址載入至該至少一個快取列中。
  2. 如請求項1之快取模組,其進一步包含一用於經由至少一個關聯暫存器而存取該快取列之索引暫存器。
  3. 如請求項1之快取模組,其進一步包含一映射該位址標記欄以用於讀取及寫入存取之暫存器。
  4. 如請求項1之快取模組,其中該至少一個快取列進一步包含一用於鎖定該至少一個快取列以防被覆寫之鎖定位元。
  5. 如請求項1之快取模組,其中該至少一個快取列進一步包含至少一個控制位元欄,其中該控制位元欄與該位址標記位元欄耦合,以遮罩該位址標記位元欄中預定數目 之位元。
  6. 如請求項1之快取模組,其中至少一個另一快取列包含用於自動鎖定該至少一個另一快取列之至少一個分支追蹤位元,其中在該分支追蹤位元經設定之狀況下,該鎖定位元在該關聯儲存區域中之一預定指令已被發布之狀況下經自動設定。
  7. 如請求項1之快取模組,其中每一快取列進一步包含一用於指示該關聯快取列之有效性的有效性控制位元。
  8. 如請求項1之快取模組,其中每一快取列進一步包含一用於指示該快取列係用作一指令快取列或用作一資料快取列之類型控制位元。
  9. 如請求項1之快取模組,其進一步包含一與該記憶體及該快取記憶體耦合之預取單元,其中該預取單元經設計以當一來自一個先前已載入有指令之快取列的指令被發布時,將來自該記憶體之指令自動載入至另一快取列中。
  10. 如請求項9之快取模組,其中該預取單元可經控制成被啟用或停用。
  11. 如請求項9之快取模組,其中使用一最近最少使用之演算法以判定哪一快取列將被覆寫。
  12. 一種操作一具有用於儲存指令或資料之複數個快取列且每一快取列具有一位址標記位元欄之快取的方法,其中該快取係與一中央處理單元耦合,該方法包含以下步驟: 根據該中央處理單元之請求,以一快取控制器進行控制的該快取提供資料及/或指令至該中央處理單元;提供一在該中央處理單元內之位址,該位址指向一儲存於一記憶體中之指令序列;以該中央處理單元將該位址寫入至該快取之一快取列之一位址標記位元欄中,隨之在該快取控制器之控制下控制該快取之操作且獨立於該中央處理單元,並執行在該位址下對該記憶體之一存取,以將儲存於該記憶體中之該位址下的該等指令或資料載入至該快取列中。
  13. 如請求項12之方法,其進一步包含在執行該寫入步驟之前選擇該快取列之步驟。
  14. 如請求項13之方法,其中該選擇步驟係藉由將一用於該快取列之索引寫入至一索引暫存器中來執行。
  15. 如請求項12之方法,其中寫入該位址之該步驟係藉由將該位址寫入至一被映射至該快取列之暫存器中來執行。
  16. 如請求項12之方法,其進一步包含當一來自一個先前已載入有指令之快取列的指令被發布時,將來自該記憶體之指令自動載入至另一快取列中之步驟。
  17. 一種操作一具有一中央處理單元(CPU)之系統的方法,該中央處理單元(CPU)與一快取模組耦合,該快取模組具有一快取控制器以及一快取記憶體,該快取記憶體包含用於儲存指令或資料之複數個快取列且每一快取列具有一位址標記位元欄,其中該快取控制器控制該快取記憶體之操作,該方法包含以下步驟: 根據該中央處理單元之請求,以該快取控制器進行控制的該快取模組提供資料及/或指令至該中央處理單元;在該CPU中執行一指令,其將一位址寫入至一快取列之一位址標記位元欄中;以該快取控制器偵測該位址標記位元欄已被覆寫;及隨之以該快取控制器存取在該位址下之一記憶體且將儲存於該記憶體中之該位址下的指令或資料載入至該快取列中。
  18. 如請求項17之方法,其進一步包含在執行該寫入步驟之前選擇該快取列之步驟。
  19. 如請求項18之方法,其中該選擇步驟係藉由將一用於該快取列之索引寫入至一索引暫存器中來執行。
  20. 如請求項17之方法,其中寫入該位址之該步驟係藉由將該位址寫入至一被映射至該快取列之暫存器中來執行。
  21. 如請求項17之方法,其進一步包含當一來自一個先前已載入有指令之快取列的指令被發布時,將來自該記憶體之指令自動載入至另一快取列中之步驟。
  22. 一種用於一中央處理單元之快取模組,其包含:一快取控制單元,其控制該快取模組之一操作且包含一用於一記憶體之介面及一用於一中央處理單元之介面,其中根據該中央處理單元之請求,該快取模組提供資料及/或指令至該中央處理單元;一與該控制單元耦合之快取記憶體,其中該快取記憶 體包含複數個快取列,其中該快取記憶體可經程式化以指派一用以快取指令之第一快取列集合及一用以快取資料之第二快取列集合,且其中該快取控制單元包含一可被該中央處理單元程式化之功能,其在指令自該第一快取列集合被執行時強制一資料快取進入該第二快取列集合。
  23. 一種用於一中央處理單元之快取模組,其包含:一快取控制單元,其控制該快取模組之一操作且包含一用於一記憶體之介面、一用於一中央處理單元之介面及一可程式化控制暫存器,其中根據該中央處理單元之請求,該快取模組提供資料及/或指令至該中央處理單元;一與該控制單元耦合之快取記憶體,其中該快取記憶體包含複數個快取列,其中該快取記憶體包含一用以快取指令之第一快取列集合及一用以快取資料之第二快取列集合,且其中該快取控制單元可操作以在該控制暫存器中之至少一個位元被該中央處理單元設定時強制一資料快取進入該第二快取列集合。
TW96147758A 2006-12-15 2007-12-13 微處理器之可組態快取 TWI442227B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US87018806P 2006-12-15 2006-12-15
US87062206P 2006-12-19 2006-12-19
US11/928,242 US9208095B2 (en) 2006-12-15 2007-10-30 Configurable cache for a microprocessor

Publications (2)

Publication Number Publication Date
TW200834307A TW200834307A (en) 2008-08-16
TWI442227B true TWI442227B (zh) 2014-06-21

Family

ID=39430765

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96147758A TWI442227B (zh) 2006-12-15 2007-12-13 微處理器之可組態快取

Country Status (5)

Country Link
US (1) US9208095B2 (zh)
EP (2) EP2095242B1 (zh)
KR (1) KR101462220B1 (zh)
TW (1) TWI442227B (zh)
WO (1) WO2008085647A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208095B2 (en) 2006-12-15 2015-12-08 Microchip Technology Incorporated Configurable cache for a microprocessor
GB2454811B8 (en) * 2007-11-19 2012-11-21 St Microelectronics Res & Dev Cache memory system
GB0722707D0 (en) 2007-11-19 2007-12-27 St Microelectronics Res & Dev Cache memory
US8799552B2 (en) * 2009-02-11 2014-08-05 Microchip Technology Incorporated Microcontroller with special banking instructions
CN103019959B (zh) * 2012-11-21 2016-05-04 中国科学院声学研究所 一种指令高速缓冲存储器
KR101967857B1 (ko) * 2017-09-12 2019-08-19 전자부품연구원 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법
CN108399146B (zh) * 2018-02-26 2021-11-23 上海东软载波微电子有限公司 Flash控制器、取指令方法及计算机可读存储介质
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
CN116862756B (zh) * 2023-09-05 2023-12-19 广东匠芯创科技有限公司 行数据处理方法、行缓存器、电子设备及存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197139A (en) 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US5655096A (en) 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
US5353425A (en) 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
EP0612013A1 (en) 1993-01-21 1994-08-24 Advanced Micro Devices, Inc. Combination prefetch buffer and instruction cache cross references to related applications
US5887152A (en) 1995-04-12 1999-03-23 Advanced Micro Devices, Inc. Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions
US5848433A (en) 1995-04-12 1998-12-08 Advanced Micro Devices Way prediction unit and a method for operating the same
US5761712A (en) 1995-06-07 1998-06-02 Advanced Micro Devices Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
US5913228A (en) 1997-03-12 1999-06-15 Vlsi Technology, Inc. Method and apparatus for caching discontiguous address spaces with short cache tags
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6532520B1 (en) * 1999-09-10 2003-03-11 International Business Machines Corporation Method and apparatus for allocating data and instructions within a shared cache
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
WO2001057675A1 (en) 2000-02-02 2001-08-09 Sony Electronics Inc. System and method for effectively utilizing a cache memory in an electronic device
US6480938B2 (en) * 2000-12-15 2002-11-12 Hewlett-Packard Company Efficient I-cache structure to support instructions crossing line boundaries
US8261022B2 (en) * 2001-10-09 2012-09-04 Agere Systems Inc. Method and apparatus for adaptive cache frame locking and unlocking
US6957306B2 (en) 2002-09-09 2005-10-18 Broadcom Corporation System and method for controlling prefetching
US6957317B2 (en) 2002-10-10 2005-10-18 Intel Corporation Apparatus and method for facilitating memory data access with generic read/write patterns
WO2005010760A1 (ja) 2003-07-29 2005-02-03 Fujitsu Limited Cam装置およびcam制御方法
US20050182903A1 (en) 2004-02-12 2005-08-18 Mips Technologies, Inc. Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer
JP4045296B2 (ja) 2004-03-24 2008-02-13 松下電器産業株式会社 キャッシュメモリ及びその制御方法
US7386679B2 (en) * 2004-04-15 2008-06-10 International Business Machines Corporation System, method and storage medium for memory management
US20060179174A1 (en) 2005-02-02 2006-08-10 Bockhaus John W Method and system for preventing cache lines from being flushed until data stored therein is used
US7549026B2 (en) 2005-03-30 2009-06-16 Intel Corporation Method and apparatus to provide dynamic hardware signal allocation in a processor
GB2433613B (en) 2005-12-22 2010-10-20 Advanced Risc Mach Ltd Variable size cache memory support within an integrated circuit
US8090934B2 (en) * 2006-07-11 2012-01-03 Cetin Kaya Koc Systems and methods for providing security for computer systems
US7877537B2 (en) 2006-12-15 2011-01-25 Microchip Technology Incorporated Configurable cache for a microprocessor
US7966457B2 (en) 2006-12-15 2011-06-21 Microchip Technology Incorporated Configurable cache for a microprocessor
US9208095B2 (en) 2006-12-15 2015-12-08 Microchip Technology Incorporated Configurable cache for a microprocessor

Also Published As

Publication number Publication date
EP2495662A1 (en) 2012-09-05
WO2008085647A1 (en) 2008-07-17
US20080147979A1 (en) 2008-06-19
EP2495662B1 (en) 2015-07-22
EP2095242A1 (en) 2009-09-02
KR101462220B1 (ko) 2014-11-17
EP2095242B1 (en) 2012-11-21
US9208095B2 (en) 2015-12-08
KR20090096721A (ko) 2009-09-14
TW200834307A (en) 2008-08-16

Similar Documents

Publication Publication Date Title
TWI431472B (zh) 微處理器之可組態快取
KR101363585B1 (ko) 마이크로프로세서용 구성가능한 캐시
TWI442227B (zh) 微處理器之可組態快取
US6591340B2 (en) Microprocessor having improved memory management unit and cache memory
US9268708B2 (en) Level one data cache line lock and enhanced snoop protocol during cache victims and writebacks to maintain level one data cache and level two cache coherence
US6128703A (en) Method and apparatus for memory prefetch operation of volatile non-coherent data
US6598128B1 (en) Microprocessor having improved memory management unit and cache memory
CN101558390B (zh) 用于微处理器的可配置高速缓冲存储器
US6629207B1 (en) Method for loading instructions or data into a locked way of a cache memory
US20050216610A1 (en) Method to provide cache management commands for a DMA controller
US6553460B1 (en) Microprocessor having improved memory management unit and cache memory
US7251710B1 (en) Cache memory subsystem including a fixed latency R/W pipeline
EP0711437A1 (en) Low power, high performance, on-chip cache with no stall after a write hit
Jacobs Cache Architecture Chapter 5