TWI398772B - 快取控制器、控制快取控制器的方法以及計算機系統 - Google Patents

快取控制器、控制快取控制器的方法以及計算機系統 Download PDF

Info

Publication number
TWI398772B
TWI398772B TW098144426A TW98144426A TWI398772B TW I398772 B TWI398772 B TW I398772B TW 098144426 A TW098144426 A TW 098144426A TW 98144426 A TW98144426 A TW 98144426A TW I398772 B TWI398772 B TW I398772B
Authority
TW
Taiwan
Prior art keywords
content
cache
column
type
data
Prior art date
Application number
TW098144426A
Other languages
English (en)
Other versions
TW201101028A (en
Inventor
Po Hung Chen
Chang Hsien Tai
Original Assignee
Mediatek 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 Mediatek Inc filed Critical Mediatek Inc
Publication of TW201101028A publication Critical patent/TW201101028A/zh
Application granted granted Critical
Publication of TWI398772B publication Critical patent/TWI398772B/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Landscapes

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

Description

快取控制器、控制快取控制器的方法以及計算機系統
本發明有關於快取(cache)控制器,更具體地,本發明有關於快取控制器、控制快取控制器的方法以及計算機系統。
快取在現代CPU設計中具有重要地位。快取用於儲存CPU所頻繁存取以及重複使用的一小部分內容(content)。如果已儲存的內容具有時間與空間的區域性(1oca1ity)的話,那麽就可高效的存取快取。待儲存到快取中的內容包含指令以及資料。大多數指令彼此之間具有區域性,大多數資料彼此之間也具有區域性;儘管如此,在指令與資料之間卻沒有區域性。
快取一般可以分為混合式快取(unified cache)和非混合式快取(non-unified cache)。在非混合式快取中,指令和資料分開處理,特別地,非混合式快取在不同的硬體中儲存指令和資料,而且,具有分別傳輸指令以及資料的兩個不同埠(port)。既然指令與資料分開處理,所以很容易維持儲存在快取中的指令之間的區域性,以及儲存在快取中的資料的區域性。
與此相反的是,混合式快取將指令以及資料儲存在同樣的硬體中,而且傳輸指令以及資料使用單一的埠。第1圖為使用混合式快取的先前計算機系統1的示意圖。計算機系統1包含處理器11、混合式快取控制器13以及記憶體模組15。更具體地,混合式快取控制器13包含快取131。
混合式快取控制器13透過第一埠130、第二埠132以及第三埠134連接到處理器11,第一埠130用於自處理器接收內容的位址,其中,該內容可以是指令或者資料。第二埠132為先前技術中的混合式快取控制器13中的虛擬埠(dummy port)。第三埠134用於將快取控制器13的內容傳輸給處理器11。很明顯,在快取131中的指令和資料是混合的,而快取控制器13沒有辦法管理儲存在快取131中的內容。具體地,當快取列(cache line)已滿時,快取控制器13不考慮在預清除快取列中儲存的內容,而清除一個或者多個快取列。因此,快取控制器清除即將用於下一個週期(cycle)的指令或者資料將是可能的,這將增加快取誤失(miss)的概率。
混合式快取在現在CPU設計中是很常用的,因為混合式快取容易設計以及擴展。因此,迫切需要找到一種方法,以解決指令以及資料的競爭(competition)而引起的混合式快取中高快取誤失的問題。
鑑於先前技術中存在混合式快取中高快取誤失的問題,所以本發明提供一種快取控制器、控制快取控制器的方法以及計算機系統以解決上述問題。
本發明提供一種快取控制器,包含一第一埠、一第二埠及一單一快取(cache)。該第一埠用以自一處理器接收一內容的一位址,該內容的類型為指令與資料其中之一。該第二埠用以自該處理器接收對應該內容的一資訊位元,該資訊位元指示出該內容之類型。該單一快取包含複數個快取列(cache lines),該等快取列之每一者包含一內容欄,該等快取列之每一者對應一資訊欄,根據該資訊位元以及該位址,該內容以及該資訊位元分別儲存在該多個快取列其中之一的該內容欄與對應的該資訊欄中。
本發明再提供一種控制快取控制器的方法,該快取控制器包含一單一快取,該單一快取包含多個快取列,該等快取列之每一者包含一內容欄,該等 快取列之每一者對應一資訊欄,該方法包含:自一處理器接收一內容之一位址,該內容之類型為指令以及資料其中之一;自該處理器接收對應該內容之一資訊位元,該資訊位元指示出該內容之類型;以及根據該資訊位元以及該位址,將該內容以及該資訊位元分別儲存在該等快取列其中之一之該內容欄與對應的該資訊欄中。
本發明另提供一種計算機系統,包含一處理器以及一快取控制器,其中該快取控制器電性連接到該處理器。該快取控制器包含一第一埠、一第二埠及單一快取。該第一埠用以自該處理器接收一內容之一位址,該內容之類型為指令以及資料其中之一。該第二埠用以自該處理器接收對應該內容之一資訊位元,該資訊位元指示該內容之該類型。該單一快取包含複數個快取列,該等快取列之每一者包含一內容欄,該等快取列之每一者對應一資訊欄,根據該資訊位元以及該位址,該內容以及該資訊位元分別儲存在該等快取列其中之一的該內容欄與對應的該資訊欄中。
本發明提供的一種快取控制器、控制快取控制器的方法以及計算機系統可以解決先前技術中存在的高快取誤失的問題。
1‧‧‧計算機系統
11‧‧‧處理器
13‧‧‧混合式快取控制器
15‧‧‧記憶體模組
130‧‧‧第一埠
131‧‧‧快取
132‧‧‧第二埠
134‧‧‧第三埠
2‧‧‧計算機系統
21‧‧‧處理器
23‧‧‧快取控制器
25‧‧‧記憶體模組
230‧‧‧第一埠
231‧‧‧快取
232‧‧‧第二埠
233‧‧‧資料計數器
234‧‧‧第三埠
235‧‧‧指令計數器
236‧‧‧第四埠
202‧‧‧位址
204‧‧‧資訊位元
202a‧‧‧標籤欄
202b‧‧‧內容欄
202c‧‧‧偏移
31a至31h‧‧‧快取列
32a至32h‧‧‧資訊欄
33a至33h‧‧‧標籤欄
S701至S739‧‧‧步驟
第1圖為使用混合式快取的先前計算機系統的示意圖;第2圖為本發明第一實施例計算機系統的示意圖;第3A圖為本發明第一實施例中的快取的示意圖;第3B圖為本發明第一實施例中的位址的示意圖;第4圖為根據本發明的實施例的用於控制快取控制器的方法的流程圖。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定元件。所 屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的“包括”和“包含”係為一開放式的用語,故應解釋成“包含但不限定於”。以外,“耦接”一詞在此係包含任何直接及間接的電氣連接手段。間接的電氣連接手段包括通過其他裝置進行連接。
第2圖為本發明第一實施例計算機系統2的示意圖。計算機系統2包含處理器21、快取控制器23以及記憶體模組25。
處理器21為具有單一埠的處理器,例如,處理器21為ARM7EJS處理器,其中,單一埠用於自快取控制器23接收內容。記憶體模組25可以為DRAM、SRAM或者任何儲存媒體。在此實施例中,內容的類型可以為指令或者資料。快取控制器23包含快取231、資料計數器233以及指令計數器235。請注意,在其他實施例中,快取控制器可具有多個快取。快取控制器的快取的數量不以本發明實施例為限。快取控制器23進一步包含第一埠230、第二埠232、第三埠234以及第四埠236,其中,第一埠230、第二埠232以及第四埠236電性連接到處理器21,而第三埠234電性連接到記憶體模組25。
請參考第3A圖,第3A圖為本發明第一實施例中的快取231的示意圖。快取231包含多個快取列31a、31b、31c、31d、31e、31f、31g以及31h,多個資訊欄(information field)32b、32c、32d、32e、32f、32g以及32h,多個標籤欄(tag field)33b、33c、33d、33e、33f、33g以及33h。多個資訊欄32b、32c、32d、32e、32f、32g以及32h中的每一者都可以由一位元暫存器實現,多個標籤欄33b、33c、33d、33e、33f、33g以及33h中的每一者都可以由多位元暫存器實現。可以注意到,快取列、資訊欄以 及標籤欄的數量不以本發明實施例為限。多個快取列31a、31b、31c、31d、31e、31f、31g以及31h分別對應多個資訊欄32a、32b、32c、32d、32e、32f、32g以及32h與多個標籤欄33a、33b、33c、33d、33e、33f、33g以及33h。
處理器21必須自快取231獲取內容以進行運作。特別地,處理器21將內容的位址202以及對應該內容的資訊位元204傳輸給快取控制器23。然後,快取控制器23的第一埠230以及第二埠232分別接收內容的位址202以及對應該內容的資訊位元204。資訊位元204指示出該內容的類型,例如,“0”表示指令,而“1”表示資料。請注意,使用“0”或者“1”代表指令(或者資料)不以本發明實施例為限。當該內容為指令,則該位址為指令的位址,而且資訊位元為0。相似地,當該內容為資料,則該位址為資料的位址,而且資訊位元為1。
接收位址202以及資訊位元204後,快取控制器23根據位址202查找快取231,以找到正確的內容,而此操作會導致快取命中(hit)或者快取誤失。第3B圖為本發明第一實施例中的位址202的示意圖,其中,位址202包含標籤欄202a、內容欄202b以及偏移202c。快取控制器23將位址202的標籤欄202a與快取231的標籤欄33a、33b、33c、33d、33e、33f、33g以及33h進行比較。如果快取231的標籤欄33a、33b、33c、33d、33e、33f、33g以及33h中的一者可以與位址202的標籤欄202a匹配的話,那麽就快取命中,否則就會發生快取誤失。
下面描述“快取誤失”的情況。快取控制器23請求後自記憶體模組25接收儲存在位址202的內容。然後,根據資訊位元204以及位址202,快取控制器23將該內容儲存在多個快取列31a、31b、31c、31d、31e、31f、31g以及31h中的一者,然後將資訊位元204儲存在快取列的對應資訊欄中,其中 ,該快取列中儲存該內容。接下來,快取控制器23透過第四埠236,將該內容傳輸給處理器21。下面將描述儲存該內容以及資訊位元204的細節。
根據指示出指令與資料的比例的已調整比例,快取控制器23設定資料計數器233與指令計數器235中儲存的數值。已調整比例可以是內建的數值,或者由使用者使用計算機系統2來設定的數值。假設指令與資料的已調整比例為1:3。基於上述假設,8個快取列31a、31b、31c、31d、31e、31f、31g以及31h中的兩者可以用來儲存類型為指令的內容,而另外6個快取列可以用來儲存類型為資料的內容。請注意,1:3的比例僅用於說明本發明,然本發明不以此為限。
已調整比例可以用來設定用於指令計數器235儲存的數值的範圍,以及用於資料計數器233儲存的數值的範圍。指令計數器235用於儲存與類型為指令的快取列有關的一數值,該類型為指令的快取列由對應資訊欄中儲存的的一位元指示,例如,該數值可以為快取列的個數,而該快取列之每一者對應的資訊欄儲存了指示出指令類型的一個位元,而資料計數器233用於儲存與類型為資料的快取列有關的一數值,該類型為資料的快取列由對應資訊欄中儲存的一位元指示,例如,該數值可以為快取列的個數,而該快取列每一者對應的資訊欄儲存了指示出資料類型的一個位元。既然8個快取列31a、31b、31c、31d、31e、31f、31g以及31h中的兩者可以用來儲存類型為指令的內容,那麽指令計數器235儲存的數值的範圍就可以為從0到2。相似地,8個快取列31a、31b、31c、31d、31e、31f、31g以及31h中的六者可以用來儲存類型為資料的內容,那麽資料計數器233儲存的數值的範圍就可以為從0到6。舉例說明,開始,所有8個快取列31a、31b、31c、31d、31e、31f、31g以及31h都為空,所以指令計數器235以及資料計數器233儲存的數值就設定為0。
如果資訊位元204指示出內容的類型為指令(例如,資訊位元204為0),那麽快取控制器23就可以確定指令計數器235儲存的數值是否為最大(即,2)。如果指令計數器235儲存的數值沒有達到最大值,那麽快取控制器23就可以自8個快取列31a、31b、31c、31d、31e、31f、31g以及31h中選擇一個空的快取列,以儲存該內容。假設選定快取列31a。然後,快取控制器23將該內容儲存在快取列31a,將資訊位元204儲存在對應資訊欄32a,以及將位址202的標籤欄202a儲存在對應標籤欄33a。在儲存該內容之後,根據該內容之儲存而更新儲存在指令計數器235中的數值,特別地,指令計數器235的數值可以從0增長到1。
指令計數器235儲存的數值已經到達最大值也是可能的,然後快取控制器23必須選擇對應的資訊欄為0的多個快取列中的至少一者(即,指示快取列儲存類型為指令的內容),以實施清除。指令計數器235儲存的數值在清除之後可以更新。特別地,如果快取控制器23清除對應的資訊欄為0的兩個快取列,那麽指令計數器235儲存的數值就可以減少2。如果快取控制器23清除對應資訊欄為0的一個快取列,那麽指令計數器235的數值就可以減少1。需要強調的是,當資訊位元204為0時,快取控制器23不選擇對應資訊欄為1的快取列來實施清除。
相似地,如果資訊位元204指示出內容的類型為資料(即,資訊位元204為1),那麽快取控制器23就可以確定資料計數器233儲存的數值是否為最大值(即6)。如果資料計數器233儲存的數值沒有到達最大值,那麽快取控制器23以相似的處理方式,儲存位址202的內容、資訊位元以及標籤欄202a,然後資料計數器233相應地更新儲存的數值。相似地,如果資料計數器233已經達到最大值,那麽快取控制器23必須選擇對應資訊欄為1的多個快取列中的至少一個(即,指示出快取列儲存類型為資料的內容),以 實施清除。在清除之後,資料計數器233相應地更新。請注意,對於資料以及指令使用計數器,僅用於說明本發明,然本發明不以此為限。舉例說明,資料計數器或者指令計數器可以由軟體方法,透過使用如資料計數器233以及指令計數器235所實施的類似的步驟而實現。
在其他實施例中,快取控制器23可以減法的方式,使用指令計數器235以及資料計數器233。也就是說,資料計數器233可以用於儲存一個數值,該數值為指示出仍然可用於儲存類型為資料的內容的快取列的個數。在此情況下,指令計數器235以及資料計數器233開始分別設定為最大值。當快取控制器23將類型為指令的內容儲存在多個快取列31a、31b、31c、31d、31e、31f、31g以及31h中的一者中時,快取控制器23將指令計數器235儲存的數值減一。相似地,當快取控制器23將類型為資料的內容儲存在多個快取列31a、31b、31c、31d、31e、31f、31g以及31h中的一者中時,快取控制器23將資料計數器233儲存的數值減一。
根據前面描述,任何所屬領域習知技藝者可以將本發明的思想實現在包含多個快取列的快取控制器中。
在來自處理器21的資訊位元、資料計數器233以及指令計數器235的幫助下,本發明可以將指令與資料分開儲存在快取231中。需要強調的是,快取231為混合式快取。當用於儲存指令的快取列已滿時,快取控制器23僅僅清除用於指令的快取列,而不清除用於資料的快取列。相似地,當用於儲存資料的快取列已滿時,快取控制器23僅僅清除用於資料的快取列,而不清除用於指令的快取列。如此實現的原因是,資料本身具有區域性,指令本身具有區域性;儘管如此,在指令和資料之間卻沒有區域性。經過前面的描述,混合式快取的命中的比率就會增大。
第4圖為根據本發明的實施例的用於控制快取控制器的方法的流程圖。該方 法可以由混合式快取(例如,本發明第一實施例的快取控制器23)而使用。該方法的解釋可以參考快取控制器23而進行。此外,資料計數器233以及指令計數器235開始時可以分別設定為最大值。例如,資料計數器233儲存的數值設定為6,而指令計數器儲存的數值設定為2。那就意味著,仍然有6個快取列可用於儲存類型為資料的內容,而且仍然有2個快取列可以用於儲存類型為指令的內容。
首先,該方法執行步驟S701,這樣快取控制器23就可以自處理器接收內容的位址,其中,該內容的類型可以為指令或者資料。在步驟S703,快取控制器23自處理器接收對應內容的資訊位元,其中,該資訊位元指示出該內容的類型。需要注意的是,快取控制器23可以同時執行步驟S701以及步驟S703,或者在執行步驟S701之前執行步驟S703。
然後執行步驟S705,以致能快取控制器23,用於確定由該位址指示出的內容是否在快取中。如果該內容在快取中,那麽快取控制器23執行步驟S707以將該內容傳輸給處理器。如果該內容不在快取中,那麽快取控制器23執行步驟S709,以根據該位址,自記憶體接收內容。例如,由第三埠自記憶體接收內容。
在步驟S709後,快取控制器23執行步驟S711,以確定該資訊位元指示出該內容的類型是否為資料。如果該內容的類型為資料,那麽執行步驟S721、S723、S725、S727、S729以及步驟S707。如果該內容的類型不是資料(即,類型為指令),那麽執行步驟S731、S733、S735、S737、S739以及步驟S707。
如果該內容的類型為資料,那麽快取控制器23執行步驟S721以確定快取是否具有儲存內容的類型為資料的可用空快取列。特別地,步驟S721可以透過確定儲存在資料計數器中的數值是否為0來實現。如果快取仍然有可以用 於儲存類型為資料(即,資料計數器不為0)的內容的空快取列,那麽快取控制器23執行步驟S727以將該內容儲存在多個空快取列中的一者。然後,快取控制器23執行步驟S729以更新資料計數器。特別地,快取控制器23透過將資料計數器中儲存的數值減一而更新資料計數器。然後,快取控制器23執行步驟S707以將該內容傳輸給處理器。另一方面,如果步驟S721確定該快取沒有用於儲存類型為資料的內容的空的快取列,那麽快取控制器必須在執行步驟S727之前執行步驟S723到步驟S725。在步驟S723,快取控制器23清除至少一個儲存了類型為資料的內容的快取列。也就是說,快取控制器23清除了多個快取列其中之一的內容欄,其中,該已清除的內容欄的快取列對應的資訊欄儲存了指示類型為資料的一位元,然後也清除對應資訊欄。在清除之後,快取控制器23執行步驟S725以更新資料計數器。特別地,快取控制器23透過將資料計數器儲存的數值加一而更新資料計數器。
如果步驟S711確定,內容的類型為指令(即,不是資料),那麽快取控制器23就執行步驟S731以確定快取是否還具有儲存內容的類型為指令的可用空快取列。特別地,步驟S731中,快取控制器23可以確定儲存在指令計數器中的數值是否為零。如果快取仍然具有可以用於儲存內容的類型為指令的空快取列(即,指令計數器不為0),那麽快取控制器23執行步驟S737以將內容儲存在多個空快取列中的一者。然後快取控制器23執行步驟S739,以更新指令計數器。特別地,在步驟S739中,快取控制器透過將指令計數器儲存的數值減一而更新指令計數器。之後,快取控制器23執行步驟S707以將內容傳輸給處理器。如果步驟S731確定了快取沒有可用於儲存內容的類型為指令的空快取列,那麽快取控制器23必須在執行步驟S737之前執行步驟S733以及步驟S735。在步驟S733中,快取控制器23清除至少一個儲存了類型為指令的內容的快取列。也就是說,快取控制器23清除多個快取列中的一者的內容欄,其中,該已清除的內容欄的快取列對應的資訊欄 儲存者指示出類型為指令的一位元,然後也清除對應資訊欄。在清除之後,快取控制器23執行步驟S735以更新資料計數器。特別地,在步驟S735,快取控制器23透過將儲存在指令計數器中儲存的數值加一而更新資料計數器。
請注意,步驟S723以及步驟S733中,快取控制器23可以清除多於一個快取列。例如,步驟S725以及步驟S735可以根據已清除的快取列的數量而更新。
更具體地,在其他實施例中,上述方法可以選擇其他方式以實現步驟S721、S725、S729、S731、S735以及S739。例如,資料計數器以及指令計數器開始時可以設定為零。在此情況下,步驟S721中,快取控制器23確定資料計數器儲存的數值是否已經到達最大值,然後在步驟S731確定指令計數器儲存的數值是否已經到達最大值,在步驟S725中,將資料計數器儲存的數值減一,在步驟S735中將指令計數器儲存的數值減一,然後在步驟S729中,將資料計數器儲存的數值加一,在步驟S739中,將指令計數器儲存的數值加一。
除了上述步驟,基於對上述實施例的描述,所屬領域習知技藝者可以理解上述方法的流程圖的執行的運作以及功能,因此此處不再贅述。
根據上述步驟,本發明的方法中,指令和資料分開儲存在混合式快取中。當用於儲存指令的快取列已滿時,快取控制器23僅僅清除用於儲存指令的快取列,而不清除用於儲存資料的快取列。相似地,當用於儲存資料的快取列已滿時,快取控制器23僅僅清除用於儲存資料的快取列,而不清除用於儲存指令的快取列。經由此操作,混合式快取的命中比率就可以增大,而處理時間也可以減少。
任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視所附之申請專利範圍所界定者為準。
2‧‧‧計算機系統
21‧‧‧處理器
23‧‧‧快取控制器
25‧‧‧記憶體模組
230‧‧‧第一埠
231‧‧‧快取
232‧‧‧第二埠
233‧‧‧資料計數器
234‧‧‧第三埠
235‧‧‧指令計數器
236‧‧‧第四埠
202‧‧‧位址
204‧‧‧資訊位元

Claims (28)

  1. 一種快取控制器,包含:一第一埠,用以自一處理器接收一內容的一位址,該內容的類型為指令與資料其中之一;一第二埠,用以自該處理器接收對應該內容的一資訊位元,該資訊位元指示出該內容之類型;以及一單一快取(cache),包含複數個快取列(cache lines),該等快取列之每一者包含一內容欄,該等快取列之每一者對應一資訊欄,根據該資訊位元以及該位址,該內容以及該資訊位元分別儲存在該等快取列其中之一的該內容欄與對應的該資訊欄中。
  2. 如請求項1所述之快取控制器,更包含:一第三埠,在將該內容儲存到該等快取列其中之一之前,根據該位址,該第三埠自一記憶體接收該內容。
  3. 如請求項1所述之快取控制器,更包含:一第四埠,用以將該內容傳輸至該處理器。
  4. 如請求項1所述之快取控制器,更包含:一資料計數器,用以儲存與類型為資料的快取列有關的一數值,該類型為資料的快取列由對應的資訊欄中儲存的一位元指示。
  5. 如請求項4所述之快取控制器,其中,該資訊位元指示出該內容之類型為資料,而儲存在該資料計數器中之該數值根據該內容之儲存而更新。
  6. 如請求項1所述之快取控制器,更包含:一資料計數器,用以儲存一數值,該數值指示儲存內容的類型為資料之可用快取之個數。
  7. 如請求項6所述之快取控制器,其中,該資訊位元指示出該內容之類型為資料,且儲存在該資料計數器中的該數值根據該內容之儲存而減一。
  8. 如請求項1所述之快取控制器,更包含:一指令計數器用以儲存與類型為指令的快取列有關的一數值,該類型為指令的快取列由對應資訊欄中的儲存的一位元指示。
  9. 如請求項8所述之快取控制器,其中,該資訊位元指示出該內容類型為指令,且儲存在該指令計數器中的該數值根據該內容之儲存而更新。
  10. 如請求項1所述之快取控制器,更包含:一指令計數器,該指令計數器用以儲存一數值,該數值指示出儲存內容之類型為指令之可用快取列之個數。
  11. 如請求項10所述之快取控制器,其中,該資訊位元指示出該內容類型為指令,且儲存在該指令計數器中的該數值根據該內容之儲存而減一。
  12. 一種控制快取控制器的方法,該快取控制器包含一單一快取,該單一快取包含複數個快取列,該等快取列之每一者包含一內容欄,該等快取列之每一者對應一資訊欄,該方法包含:自一處理器接收一內容之一位址,該內容之類型為指令以及資料其中之一;自該處理器接收對應該內容之一資訊位元,該資訊位元指示出該內容之類型;以及根據該資訊位元以及該位址,將該內容以及該資訊位元分別儲存在該等快取列之一的該內容欄與對應的該資訊欄中。
  13. 如請求項12所述之控制快取控制器之方法,更包含在將該內容以及該資訊位元分別儲存在該等快取列其中之一之該內容欄與對應的該資訊欄中之前,根據該位址,自一記憶體接收該內容。
  14. 如請求項12所述之控制快取控制器之方法,更包含將該內容傳輸給該處 理器。
  15. 如請求項12所述之控制快取控制器之方法,其中,該快取控制器更包含一資料計數器,該資料計數器用以儲存與類型為資料的快取列有關的一數值,該類型為資料的快取列由對應的資訊欄中儲存的一位元指示,而該方法更包含,根據該內容之儲存更新該快取控制器之該資料控制器儲存之該數值。
  16. 如請求項12所述之控制快取控制器之方法,其中,該快取控制器更包含一資料計數器,該資料計數器用以儲存一數值,其中,該數值指示出儲存內容的類型為資料之可用快取列之個數,而該方法更包含:根據該內容之儲存,將在該快取控制器之該資料計數器儲存之該數值減一。
  17. 如請求項16所述之控制快取控制器之方法,在將該內容以及該資訊位元分別儲存在該等快取列其中之一之該內容欄與對應的該資訊欄中前,更包含:確定由該資訊位元指示出之該類型為資料;確定儲存在該資料計數器中的該數值為零;清除該多個快取列其中之一的內容欄,其中,該已清除的內容欄的快取列對應的資訊欄儲存了指示該類型為資料的一位元;清除該已清除的內容欄的快取列對應的該資訊欄;以及將該資料計數器儲存之該數值加一。
  18. 如請求項12所述之控制快取控制器之方法,其中,該快取控制器更包含一指令計數器,該指令計數器用以儲存與類型為指令的快取列有關的一數值,該類型為指令的快取列由對應的該資訊欄中儲存的一位元指示,而該方法更包含:根據該內容之儲存,更新該快取控制器之該指令計數器儲存之該數值。
  19. 如請求項12所述之控制快取控制器之方法,其中,該快取控制器更包含一指令計數器,該指令計數器用以儲存一數值,其中,該數值指示儲存內容的類型為指令可用快取列之個數,而該方法更包含:根據該內容之儲存,將該快取控制器之該指令計數器儲存之該數值減一。
  20. 如請求項19所述之控制快取控制器之方法,在將該內容以及該資訊位元分別儲存在該等快取列其中之一之該內容欄與對應的該資訊欄中前,更包含:確定由該資訊位元指示出之該類型為指令;確定儲存在該指令計數器中的該數值為零;清除該等快取列其中之一的內容欄,其中,該已清除的內容欄的快取列對應的資訊欄儲存指示該類型為指令的一位元;清除該已清除的內容欄的快取列對應的該資訊欄;以及將該指令計數器儲存之該數值加一。
  21. 一種計算機系統,包含:一處理器;以及一快取控制器,電性連接到該處理器,包含:一第一埠,該第一埠用以自該處理器接收一內容之一位址,該內容之類型為指令以及資料其中之一;一第二埠,該第二埠用以自該處理器接收對應該內容之一資訊位元,該資訊位元指示該內容之該類型;以及一單一快取,包含複數個快取列,該等快取列之每一者包含一內容欄,該等快取列之每一者對應一資訊欄,根據該資訊位元以及該位址,該內容以及該資訊位元分別儲存在該等快取列其中之一的該內容欄與對應的該資訊欄中。
  22. 如請求項21所述之計算機系統,其中,該資訊位元指示該內容之類型為資料,而該快取控制器更包含:一資料計數器,用以儲存與類型為資料的快取列有關的一數值,該類型為資料的快取列由對應資訊欄中儲存的一位元指示;其中,根據該內容之儲存,更新該數值。
  23. 如請求項21所述之計算機系統,其中,該資訊位元指示出該內容之類型為資料,而該快取控制器更包含:一資料計數器,用以儲存一數值,該數值指示儲存內容的類型為資料可用快取列之個數;其中,根據該內容之儲存,將該數值減一。
  24. 如請求項21所述之計算機系統,其中,該資訊位元指示出該內容之類型為指令,而該快取控制器更包含:一指令計數器,用以儲存與類型為指令的快取列有關的一數值,該類型為指令的快取列由對應資訊欄中儲存的一位元指示;其中,根據該內容之儲存,更新該數值。
  25. 如請求項21所述之計算機系統,其中,該資訊位元指示出該內容之類型為指令,而該快取控制器更包含:一指令計數器,用以儲存一數值,該數值指示儲存內容的類型為指令可用快取列之個數;其中,根據該內容之儲存,將該數值減一。
  26. 如請求項21所述之計算機系統,其中,該處理器為一ARM7EJS處理器。
  27. 如請求項21所述之計算機系統,更包含:一記憶體;其中,該快取控制器更包含一第三埠,在將該內容儲存到該多個快取列之前,根據該位址,該第三埠用以自該記憶體接收該內容。
  28. 如請求項21所述之計算機系統,其中,該快取控制器更包含:一第三埠,該第三埠用以將該內容傳輸至該控制器。
TW098144426A 2009-06-23 2009-12-23 快取控制器、控制快取控制器的方法以及計算機系統 TWI398772B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/489,795 US8489814B2 (en) 2009-06-23 2009-06-23 Cache controller, method for controlling the cache controller, and computing system comprising the same

Publications (2)

Publication Number Publication Date
TW201101028A TW201101028A (en) 2011-01-01
TWI398772B true TWI398772B (zh) 2013-06-11

Family

ID=43355291

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098144426A TWI398772B (zh) 2009-06-23 2009-12-23 快取控制器、控制快取控制器的方法以及計算機系統

Country Status (3)

Country Link
US (1) US8489814B2 (zh)
CN (1) CN101930408B (zh)
TW (1) TWI398772B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI732128B (zh) * 2017-08-03 2021-07-01 美商美光科技公司 快取篩選器

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101915073B1 (ko) 2011-12-20 2018-11-06 인텔 코포레이션 2-레벨 메모리 계층구조에서 메모리측 캐쉬의 동적인 부분적 전원 차단
US10270883B2 (en) * 2014-03-27 2019-04-23 Hewlett Packard Enterprise Development Lp Scheduling downloads
FR3020712B1 (fr) * 2014-04-30 2017-09-01 Proton World Int Nv Compteur bidirectionnel en memoire flash
CN106227676B (zh) * 2016-09-22 2019-04-19 大唐微电子技术有限公司 一种高速缓存以及从高速缓存中读取数据的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748558B1 (en) * 2000-05-10 2004-06-08 Motorola, Inc. Performance monitor system and method suitable for use in an integrated circuit
US20070083711A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Reconfiguring caches to support metadata for polymorphism
US20080016282A1 (en) * 2006-06-28 2008-01-17 Kazuhiko Sakamoto Cache memory system
TW200834309A (en) * 2006-12-15 2008-08-16 Microchip Tech Inc Configurable cache for a microprocessor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748558B1 (en) * 2000-05-10 2004-06-08 Motorola, Inc. Performance monitor system and method suitable for use in an integrated circuit
US20070083711A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Reconfiguring caches to support metadata for polymorphism
US20080016282A1 (en) * 2006-06-28 2008-01-17 Kazuhiko Sakamoto Cache memory system
TW200834309A (en) * 2006-12-15 2008-08-16 Microchip Tech Inc Configurable cache for a microprocessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI732128B (zh) * 2017-08-03 2021-07-01 美商美光科技公司 快取篩選器

Also Published As

Publication number Publication date
US8489814B2 (en) 2013-07-16
CN101930408A (zh) 2010-12-29
TW201101028A (en) 2011-01-01
CN101930408B (zh) 2012-10-03
US20100325364A1 (en) 2010-12-23

Similar Documents

Publication Publication Date Title
US11789872B2 (en) Slot/sub-slot prefetch architecture for multiple memory requestors
JP3821644B2 (ja) 旧キャッシュラインを無効化および除去する装置
US20160246725A1 (en) Prefetching data
US7334088B2 (en) Page descriptors for prefetching and memory management
US20070288697A1 (en) Apparatus and method of prefetching data
US8583874B2 (en) Method and apparatus for caching prefetched data
WO2007068122A1 (en) System and method for cache management
TWI398772B (zh) 快取控制器、控制快取控制器的方法以及計算機系統
WO2007059215A2 (en) Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US8060701B2 (en) Apparatus and methods for low-complexity instruction prefetch system
CN112230992B (zh) 一种包含分支预测循环的指令处理装置、处理器及其处理方法
US11301250B2 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
US8195889B2 (en) Hybrid region CAM for region prefetcher and methods thereof
JP2006516168A (ja) ストライド予測テーブルにアドレスするためにキャッシュミスパターンを使用する方法
CN112559389A (zh) 存储控制装置、处理装置、计算机系统和存储控制方法
JP2006018841A (ja) さまざまなメモリラインサイズに適応的に対応可能なキャッシュメモリシステムおよび方法
JP3935871B2 (ja) パイプラインを有する計算回路のためのメモリ・システムおよびパイプラインの機能ユニットにデータを提供する方法
JP2005196303A (ja) キャッシュリプレース装置及びキャッシュリプレース方法
US20180349284A1 (en) Serial tag lookup with way-prediction
JPWO2006038258A1 (ja) データプロセッサ
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
JP2008257508A (ja) キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ
US6922767B2 (en) System for allowing only a partial value prediction field/cache size
US20080243757A1 (en) Direct memory access controller with dynamic data transfer width adjustment, method thereof, and computer accessible storage media
TW201527977A (zh) 資料處理裝置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees