TWI437436B - 在使用可組態方式多餘性之快取記憶體中誤差偵測 - Google Patents
在使用可組態方式多餘性之快取記憶體中誤差偵測 Download PDFInfo
- Publication number
- TWI437436B TWI437436B TW097147540A TW97147540A TWI437436B TW I437436 B TWI437436 B TW I437436B TW 097147540 A TW097147540 A TW 097147540A TW 97147540 A TW97147540 A TW 97147540A TW I437436 B TWI437436 B TW I437436B
- Authority
- TW
- Taiwan
- Prior art keywords
- mode
- data
- cache
- processing system
- array
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Description
此揭示案一般係關於記憶體,且更明確而言係關於用於對記憶體誤差偵測及/或修正之一系統。
此申請案已於2007年12月6日在美國中請為專利申請案第11/951,924號。
傳統快取記憶體每位元組一般僅可偵測一信號錯誤,假定該等記憶體具有位元組同位。在此類快取記憶體中,若在一單一位元組中兩個位元改變其值,則可能偵測不到錯誤。在需要較高容錯位準之系統中,用於修正誤差之編碼的漢明距離可能需要增加至四。然而,增加的漢明距離使得此類快取記憶系統複雜化。此外,複雜的誤差修正及偵測亦會降低快取記憶體之性能。
快取記憶體的某些使用者可能想招致與更低性能相關聯之損失,只要其具有一更強固之快取記憶體。然而,快取記憶體的其他使用者不會關心快取記憶體之強固性且不會喜歡與該快取記憶體相關聯之較低性能。因此,需要一可組態之快取記憶體,其可以滿足兩種類型的使用者,同時保持一高位準之性能與強固性。
在一態樣中,一資料處理系統包括具有一多方式快取之一處理器,該多方式快取具有一第一方式及一第二方式,其中該第二方式可組態成對該第一方式多餘或作為獨立於第一方式之該多方式快取之一關聯式方式操作。該資料處理系統進一步包括耦合至該處理器之一記憶體,其中該處理器回應該多方式快取中之一讀取位址遺失,而向記憶體提供該讀取位址。
在另一態樣中,提供包括一處理器之一資料處理系統。該處理器具有一多方式快取,其具有一第一方式及一第二方式且可經組態以在一第一模式或一第二模式下操作,其中在該第一操作模式中,該第一方式與該第二方式各彼此獨立地作為該多方式快取之一關聯式方式操作,且在該第二操作模式中,第二方式對第一方式多餘,使得回應多方式快取中之一讀取位址命中,而自第一方式及第二方式兩者提供藉由該讀取位址之一索引部分定址之資料,且彼此相比較以提供回應其指示是否存在一比較誤差的一比較誤差信號,且該處理器回應該多方式快取中資料位址遺失,而向處理器外部的一記憶體提供讀取位址。
在另一態樣中,提供包括一處理器之一資料處理系統。該處理器具有一n個方式關聯式快取,其可經組態以在一第一模式或一第二模式下操作,其中在該第一操作模式中,該n個方式關聯式快取之每一方式作為該n個方式關聯式快取之一獨立方式操作,且在該第二操作模式下,該n個關聯式快取作為一n/2個方式快取操作,其中對於該等n/2個方式之每一方式而言,該等n個方式之另一方式作為一對應多餘方式操作。
如本文所使用,術語"匯流排"係用於指複數個信號或導體,其可用於傳輸一或多個各種類型的資訊,例如資料、位址、控制或狀態。可參考一單一導體、複數個導體、單向導體或雙向導體來解說或說明本文所說明的導體。然而,不同具體實施例可改變該等導體的實施方案。例如,可使用分離的單向導體而非雙向導體,且反之亦然。同樣,可使用連續地或以一時間多工方式傳輸多個信號之一單一導體來取代複數個導體。同樣,可將載送多個信號的單一導體分離成載送此等信號之子集的各種不同導體。因此,傳輸信號存在許多選項。
在係指一信號、狀態位元或類似裝置分別進入至其邏輯真或邏輯假狀態時在本文中使用術語"判定"或"設定"及"否定"(或"取消判定"或"清除")。若邏輯真狀態係邏輯位準一,則邏輯假狀態係邏輯位準零。而且若該邏輯真狀態係邏輯位準零,則邏輯假狀態係邏輯位準一。
本文中說明的每一信號均可設計為正或負邏輯,其中負邏輯可由信號名稱之上的條或隨名稱後的星號(*)來指示。在負邏輯信號之情況下,該信號在邏輯真狀態對應於邏輯位準零的情況下為主動低。在正邏輯信號之情況下,該信號在邏輯真狀態對應於邏輯位準一的情況下為主動高。應注意本文中說明的信號之任一者均可設計為負或正邏輯信號。因此,在替代性具體實施例中,說明為正邏輯信號的此等信號可加以實施為負邏輯信號,而且說明為負邏輯信號的此等信號可加以實施為正邏輯信號。
圖1顯示與一快取記憶體相關聯之一資料處理系統10。資料處理系統10可包括一處理器12,其具有一位準一(L1)快取記憶體12、一位準二(L2)快取記憶體14、一主記憶體18及周邊模組20。可經由系統匯流排22將處理器12耦合至主記憶體18及周邊模組20。可經由系統匯流排22或一不同匯流排將L2快取記憶體16耦合至處理器12。儘管L1快取記憶體14顯示為處理器12之部分,但可經由系統匯流排22將L1快取記憶體14耦合至處理器12。L1快取記憶體14及L2快取記憶體16可設定為多方式關聯式快取記憶體或任何其他適當的快取記憶體。儘管圖1顯示特定數量之組件及該等組件之一特定配置,但可具有更多或更少之組件且可將其以不同方式配置。
圖2顯示一範例性L1快取記憶體14。L1快取記憶體可包括控制電路24、快取控制及狀態暫存器(CCSR)26、標籤陣列28、資料陣列30及快取命中與誤差偵測邏輯38。L1快取記憶體14可經由可位於處理器12內之匯流排21接收對應於對主記憶體18進行一讀取/寫入操作的位址及/或資料。在一具體實施例中,可經由位址匯流排32將位址(例如標籤位址)與標籤陣列28通信。在一具體實施例中,可經由資料匯流排34將資料與資料陣列30通信。控制電路24亦可經由匯流排36接收標籤位址及資料資訊。快取命中與誤差偵測邏輯38可經由匯流排44與控制電路通信。快取命中與誤差偵測邏輯38可經由匯流排40與標籤陣列28通信,且可經由匯流排42與資料陣列30通信。亦可將控制電路24耦合至CCSR 26,使得控制電路24可自CCSR 26讀取狀態資訊且將控制資訊寫入CCSR 26。儘管圖2顯示特定數量之組件及該等組件之一特定配置,但可具有更多或更少之組件且可將其以不同方式配置。
圖3顯示與圖2之範例性快取記憶體相關聯之一範例性快取控制及狀態暫存器(CCSR)26。CCSR 26可包括用於與L1快取記憶體14相關之各種控制及狀態資訊之若干場。藉由範例來解說,CCSR 26可包括與各種控制及狀態資訊相關之位元,例如WID位元46、MBEE位元48、WDD位元50、WAM位元52、CWM位元54、CPE位元56、CORRE位元57及CE位元58。WID位元46可能與L1快取記憶體14之取代原則有關。WID位元46之一可能與方式0有關,而另一者可能與方式1有關。若WID位元為1,則對應方式不可用於藉由指令遺失線填充取代,但另一方面,若WID位元為0,則該對應方式可用於藉由指令遺失線填充取代。MBEE位元48可與是否致動多位元誤差偵測及/或誤差修正有關。將參照後述圖式進一步說明MBEE位元48之使用。WID位元50可能與L1快取記憶體14之資料取代原則有關。WID位元50之一可能與方式0有關,而另一者可能與方式1有關。若WID位元為0,則該對應方式不可用於藉由資料遺失線填充取代,但另一方面,若WID位元為1,則對應方式可用於藉由資料遺失線填充取代。WAM位元52可能與是否致動方式以對一特定存取類型進行取代有關。藉由範例來解說,若WAM位元52為0,則對於用於存取一特定存取類型(指令對資料)之一快取命中,仍檢查未致動對該類型之取代的方式,但並未由該類型之一存取遺失取代。另一方面,若WAN位元52為1,則不檢查未致動對一特定存取類型之取代的方式。此導致較低的功率消耗。CWM位元54係與快取寫入模式有關,即該快取記憶體是否在寫入模式或複製模式下操作。CPE位元56與是否致動快取記憶體同位檢查有關。CORRE位元57與是否致動誤差修正有關。CE位元58與是否致動快取記憶體有關。儘管圖3顯示一特定數量及類型之位元作為CCSR 26之部分,但CCSR 26可包括額外的或較少的數量及不同類型之位元。
圖4顯示圖2之L1快取記憶體14之一範例性部分60。如先前相對於圖2所述,L1快取記憶體14可包括標籤陣列28及資料陣列30。標籤陣列28可包括標籤位址之陣列,包括A0 64、A1 66、A6 68及A7 70。儘管圖4僅顯示8個標籤位址之陣列,但標籤陣列28可包括額外的或更少之陣列。L1快取記憶體14之資料陣列30部分可包括資料陣列,包括D0 72、D1 74、D6 76及D7 78。儘管圖4僅顯示8個資料陣列,但資料陣列30可包括額外的或更少之陣列。在一具體實施例中,L1快取記憶體14可為一兩方式組之關聯式快取記憶體均A使得第一方式可對應於標籤陣列A0、A2、A4及A6且第二方式可對應於標籤陣列A1、A3、A5及A7。然而,對應於第二方式之標籤陣列可作為該第一方式之多餘標籤陣列或作為對應於第一方式之標籤陣列之一關聯式方式操作。換言之,在一具體實施例中,該第二方式可組態成對該第一方式多餘或作為獨立於第一方式之多方式快取之一關聯式方式操作。例如,為回應一誤差偵測,即使在該處理器之操作期間,亦可將第二方式動態組態成對第一方式多餘。因此,例如,標籤陣列A1 66可為標籤陣列A0 64之一多餘標籤陣列。此外,當將第二方式組態成對第一方式多餘時,為回應於L1快取記憶體14中讀取位址之命中,自該第一及第二方式兩者提供藉由該位址之一索引部分(例如存取位址62之索引部分)定址之資料且彼此相比較以決定是否存在一比較誤差。藉由範例來解說,可使用標籤MBE組件80比較自標籤陣列A0 64及標籤陣列A1 66兩者之資料。同樣地,可使用標籤MBE組件82比較自標籤陣列A6 68及標籤陣列70之資料。
仍參考圖4,對應於第二方式之資料陣列亦可作為第一方式之多餘資料陣列操作或作為對應於第一方式之資料陣列之一關聯式方式操作。例如,為回應一誤差偵測,即使在該處理器之操作期間,亦可將第二方式動態組態成對第一方式多餘。因此,例如,資料陣列D1 74可為資料陣列D0 72之一多餘資料陣列。此外,當將第二方式組態成對第一方式多餘時,為回應L1快取記憶體14中之讀取位址之命中,自該第一及第二兩種方式提供藉由該位址之一索引部分(例如存取位址62之索引部分)定址之資料且彼此相比較以決定是否存在一比較誤差。因此,例如,可使用資料MBE組件84比較自資料陣列D0 72及資料陣列74之資料。以一類似方式,可使用資料MBE組件86比較自資料陣列76及資料陣列78之資料。若在逐個位元之基礎上的一比較指示自該等成對陣列之任一者的值彼此不同,則誤差偵測邏輯100將指示一誤差。在一具體實施例中,僅當判定MBEE信號,即多位元誤差致動信號時,誤差偵測邏輯100會產生該誤差。在操作期間,可藉由處理器12判定該MBBE信號,且因此該處理器可即時改變誤差偵測邏輯100之組態。儘管圖4顯示可在多餘模式期間組態為4方式快取之一8方式快取,但可使用任何數量之方式。此外,儘管圖4顯示以一特定方式配置的一特定數量之組件,但同樣可使用以不同方式配置的較少或額外組件。
繼續參考圖4,方式選擇88、方式選擇90、方式選擇92及方式選擇94可使用自標籤陣列(例如A0、A1、A6及A7)讀取之資料計算一同位。將所計算之同位與對應於該讀取標籤位址之一儲存同位比較以觀察是否存在一同位誤差。將方式選擇區塊之輸出耦合至誤差偵測邏輯,使得該誤差偵測邏輯可進一步處理藉由方式選擇區塊產生之任何同位誤差。資料選擇96亦對自資料陣列(例如D0、D1、D6及D7)讀取之資料實行一同位計算。經由資料同位匯流排將所產生之同位位元傳送至誤差偵測邏輯100。總而言之,當將該第二方式組態成對第一方式多餘時,對於藉由自第一方式與第二方式每一者之讀取位址之索引部分所定址之資料實行一同位計算並將其與儲存在藉由該讀取位址之索引部分定址之資料內的一對應同位位元比較以決定是否存在一同位誤差。
圖5顯示與圖2之快取記憶體相關聯之一範例性誤差偵測邏輯100。藉由範例來解說,誤差偵測邏輯100可偵測標籤同位誤差、多位元誤差及資料同位誤差。在一具體實施例中,誤差偵測邏輯100可包括OR閘極104、106、110及116。誤差偵測邏輯100可進一步包括AND閘極108及114。誤差偵測邏輯100可進一步包括MBE選擇區塊112。藉由選擇模組(例如88、90、92、94)產生之任何標籤同位誤差均可經由標籤同位標籤同位0...7線耦合至OR閘極104之輸入。藉由範例來解說,可藉由在個別標籤同位線上判定之邏輯1指示一標籤同位誤差。在操作中,若在該等標籤同位線之任一者上判定邏輯1,則OR閘極104之輸出將為邏輯1。在操作中,可經由標籤MBE0...3線將藉由標籤MBE組件模組(例如80及82)產生之任何多位元誤差耦合至OR閘極106之輸入。可將OR閘極106之輸出耦合至AND閘極108之一輸入。可將MBEE信號耦合至AND閘極108之其他輸入。藉由範例來解說,可藉由在個別標籤MBE線上判定之邏輯1指示一多位元誤差。在操作中,若在該等標籤MBE線之任一者上判定邏輯1,則OR閘極106之輸出將為邏輯1。因此,當OR閘極106之輸出為邏輯1且MBEE信號亦為邏輯1時,則AND閘極108之輸出亦為邏輯1。可將OR閘極104之輸出耦合至OR閘極110之一輸入且將AND閘極108之輸出耦合至OR閘極110之其他輸入。以此方式,若OR閘極104之輸出或AND閘極108之輸出任一者為邏輯1,則在標籤同位誤差線上判定邏輯1。總而言之,在一具體實施例中,(1)當存在一標籤同位誤差時,(2)當存在一多位元誤差時,或當(3)同時存在一標籤同位誤差與一多位元誤差時,誤差偵測邏輯100可在標籤同位誤差線上判定邏輯1。儘管圖5顯示以一特定方式配置之一特定數量之組件以在標籤同位誤差線上判定邏輯1,但同樣可使用以不同方式配置之較少或額外的組件。
仍參考圖5,誤差偵測邏輯100亦會在資料同位誤差線上產生一資料同位誤差。藉由範例來解說,可經由資料MBE 0...3線將藉由資料MBE組件區塊(例如84及86)產生之多位元誤差耦合至MBE選擇112。基於經由方式選擇線接收之一輸入,MBE選擇112可選擇四個輸入中之一並將該輸入耦合至其輸出。在一具體實施例中,MBE選擇112可實施為一四對一選擇多工器。可將MBE選擇112之輸出耦合至AND閘極112之一輸入。可將MBEE信號耦合至AND閘極114之其他輸入。藉由範例來解說,可藉由在個別資料MBE線上判定之邏輯1指示一多位元誤差。在操作中,若在所選擇之資料MBE線之任一者上判定邏輯1,則MBE選擇112之輸出將為邏輯1。因此,當MBE選擇112之輸出為邏輯1,此指示對應於選定資料之一多位元誤差,且該MBEE信號亦為邏輯1時,AND閘極114之輸出則為1。可將AND閘極114之輸出耦合至OR閘極116之一輸入,且將一資料同位線耦合至OR閘極116之其他輸入。以此方式,當AND閘極114之輸出為邏輯1或若存在一資料同位誤差時,則OR閘極116之輸出將為邏輯1。此會導致在資料同位誤差線上判定邏輯1。儘管圖5顯示以一特定方式配置之一特定數量之組件以在資料同位誤差線上判定邏輯1,但同樣可使用以不同方式配置之較少或額外的組件。可經由誤差線將偵測為誤差偵測邏輯100之部分的任何誤差傳送至外部組件。
圖6顯示用於實施與圖2之範例性快取記憶體相關聯之誤差修正之一範例性真值表120。真值表120包括一組行,其對應於可具有邏輯1值或邏輯0值之一組變數。真值表120中之列包括與真值表120中之該組行相關之範例值。行122具有與未修正方式0有關之變數UCW0之值。行124具有與未修正方式1有關之變數UCW1之值。行126具有與是否致動誤差修正有關之CORR_E變數之值。行128具有與對應於方式0之資料是否存在一同位誤差有關之變數PE0之值。行130具有與對應於方式1之資料是否存在一同位誤差有關之變數PE1之值。行132具有與是否選擇一修正方式有關之變數CW0之值。真值表120僅顯示該等變數中某些變數的範例值,在此表或其他表中亦可儲存其他變數、例如UCW2...7之值。在操作中,可藉由邏輯模組、軟體及/或軟體硬體組合實施真值表120之功能。在操作中,若藉由設定變數CORR_E 126之值為邏輯1致動誤差修正,則基於未修正之標籤方式位元之同位檢查誤差,自一對未修正之方式匹配信號中選擇正確的方式匹配信號。若UCW0為邏輯0,則可能指示未修正方式0之方式並非所選擇之方式。若UCW1為邏輯0,則可能指示未修正方式1之方式並非所選擇之方式。在此情形下,不論變數PE0及PE1之值如何,將不選擇修正方式0。真值表120藉由具有對應於變數PE0及PE1之一X(任何值)及當UCW0及UCW1兩者皆為邏輯0時變數CW0之一邏輯0值來指示此情形。假定選擇方式0及方式1外的一方式,則基於變數PE0及PE1之值而選擇修正方式。藉由範例來解說,真值表120之第二列顯示UCW0為邏輯1之一情形,其指示未修正方式0係選定方式。在此情形下,UCW1為任何值且將CORR_E設定為邏輯1以指示致動該修正。PE0為0,指示方式0無同位誤差、因此,CW0具有邏輯1,指示選定帽式修正方式0。表120之剩餘列顯示變數之不同值及修正方式0之對應值之額外情形。熟悉此項技術者可使用不同於圖6中所示之值實施真值表120。儘管圖6顯示以一特定方式配置之一特定數量之行變數及一特定數量之列,但亦可使用以不同方式配置之較少及/或額外行及/或列。
圖7顯示用於實施與圖2之範例性快取記憶體相關聯之誤差修正之另一範例性真值表。在一具體實施例中,真值表150之功能性可實施為資料選擇96之部分,如圖4所示。資料選擇96可基於兩個方式之位元組同位誤差資訊,自一對兩個資料方式中選擇每一資料方式之一位元組。例如,可基於D0及D1中之位元組0同位誤差資訊自D0及D1選擇位元組0,如圖4所示。圖7為簡化及清楚起見,解說僅顯示D0、D1及位元組0之一具體實施例。自其他方式對及其他位元組數量之資料選擇以一類似方案操作。真值表150包括一組行,其對應於可具有邏輯1值或邏輯0值之一組變數。真值表150中之列包括與真值表150中之該組行有關之範例值。行152具有對應於變數D0位元組0 PE之值,其指示D0位元組0之同位誤差之邏輯狀態:0意味無同位誤差而1意味一同位誤差。行154具有對應於變數D1位元組0 PE之值,其指示D1位元組0之同位誤差之邏輯狀態:0意味無同位誤差,而1意味一同位誤差且"X"意味任何值。若D0位元組0 PE為a0,則不論D1位元組0 PE狀態如何選擇位元組0。此顯示於該表之列1中。第二種情形係,若D0位元組0 PE為1,其指示一同位誤差,但D1位元組0 PE為0,則將自D1選擇位元組0。在此情形下,用D1資料取代D0資料。最後情形係,若D0位元組0 PE與D1位元組0 PE皆為1,則指示在兩種方式成對之資料區塊中之位元組具有誤差。在此情形下,將不使用該資料位元組且將設定一誤差旗標。此情形在該表之最後列中係指示為"X"。熟悉此項技術者可使用不同於圖7中所示之值實施真值表150。儘管圖7顯示以一特定方式配置之一特定數量之行變數及一特定數量之列,但亦可使用以不同方式配置之較少及/或額外行及/或列。
以上具體實施例之一些在應用時可使用各種不同資訊處理系統來實施。例如,雖然圖1及其論述說明一範例性資訊處理架構,但此範例性架構僅係呈現以在論述本發明之各種態樣中提供一有用參考。當然,為了論述目的,已簡化該架構之說明,且其僅係可依據本發明使用的許多不同類型適當架構之一。熟習此項技術者將認識到邏輯區塊之間的邊界僅係解說性並且替代性具體實施例可合併邏輯區塊或電路元件或在各種邏輯區塊或電路組件上施加功能性之一替代性分解。
因此,應瞭解本文中描述的架構僅為範例性,並且事實上可實施達到相同功能性的許多其他架構。在一抽象但仍明確的意義上,達到相同功能性的組件之任何配置均係有效地"相關聯"以便達到所需功能性。因此,本文中經組合用以達到一特定功能性的任何兩個組件均可以係視為彼此"相關聯"以便達到所需功能性,而與架構或中間組件無關。同樣地,亦可將如此相關聯的任何兩個組件視為彼此"可操作地連接"或"可操作地耦合"以達到所需功能性。
同樣例如,在一具體實施例中,資料處理系統10之解說元件係位於一單一積體電路上或一相同器件內的電路。或者,資料處理系統10可包括彼此互連之任何數目的分離積體電路或分離器件。例如,記憶體18可位於與處理器12相同的積體電路上或一分離積體電路上或位於自系統10之其他元件離散分離的另一週邊或受控元件內。周邊模組20亦可位於分離的積體電路或器件上同樣例如,資料處理系統10或其部分可以係實體電路之軟體或編碼表示或可轉換成實體電路的邏輯表示。如此,可以任何適當類型之一硬體描述語言來具體化資料處理系統10。
此外,熟習此項技術者將認識到以上說明的操作之功能性之間的邊界僅係解說性。可將多個操作之功能性組合成一單一操作,及/或可將一單一操作之功能性分佈在額外操作中。此外,替代性具體實施例可包括一特定操作的多個實例,並且在各種其他具體實施例中可改變操作順序。
儘管本文中參考特定具體實施例說明本發明,但可進行各種修改與改變而不脫離如以下申請專利範圍中提出的本發明之範疇。因此,說明書及圖式應視為解說性而非限制性,並且所有此類修改均旨在包括於本發明之範疇內。本文中說明的關於特定具體實施例之任何益處、優點或解決方式均不旨在視為任何或所有申請專利範圍之一關鍵、要求或基本特徵或元件。
本文所用的術語"耦合"並不旨在限於一直接耦合或一機械耦合。
此外,本文中所用的術語"一"或"一個"係定義為一或一個以上。此外,在申請專利範圍中使用的介紹性短語,例如"至少一個"及"一或多個",不應視為暗示,藉由不定冠詞"一"或"一個"介紹另一請求項元件將包含此類介紹的請求項元件之任何特定請求項限於僅包含一此元件之發明,即使在相同請求項包括該等介紹性短語"一或多個"或"至少一個"及不定冠詞(例如"一"或"一個")時,此同樣適用於定冠詞之使用。
除非另外說明,諸如"第一"及"第二"的術語係用於任意區分此類術語說明的元件。因此,此等術語不必旨在指示此類元件的時間或其他優先。
10...資料處理系統
12...L1快取記憶體
14...L2快取記憶體
16...L2快取記憶體
18...主記憶體
20...周邊模組
21...匯流排
22...系統匯流排
24...控制電路
26...快取控制及狀態暫存器
28...標籤陣列
30...資料陣列
32...位址匯流排
34...資料匯流排
36...匯流排
38...快取命中與誤差偵測邏輯
40...匯流排
42...匯流排
44...匯流排
46...WID位元
48...MBEE位元
50...WDD位元
52...WWM位元
54...CAM位元
56...CPE位元
57...CORRE位元
58...CE位元
60...L1快取記憶體14之一範例性部分
62...存取位址
A064、A166、A668、A770...標籤位址之陣列/標籤陣列
D072、D174、D676、D778...資料陣列
80、82...標籤MBE組件
84、86...可使用資料MBE組件
88、90、92、94...方式選擇
96...資料選擇
100...誤差偵測邏輯
102...誤差修正邏輯
104、106、110、116...OR閘極
108、114...AND閘極
120...真值表
122、124、126、128、130、132...行
150...真值表
152、154、156...行
A0、A2、A4、A6...標籤陣列
A1、A3、A5、A7...標籤陣列
本發明係藉由範例來解說並且不受附圖限制,在該等附圖中相似參考指示類似元件。圖式中的元件係為簡單和清晰起見來解說而且不必按比例繪製。
圖1顯示與一快取記憶體相關聯之一資料處理系統環境;
圖2顯示一範例性快取記憶體;
圖3顯示與圖2之範例性快取記憶體相關聯之一範例性快取控制及狀態暫存器;
圖4顯示圖2之範例性快取記憶體之一範例性部分;
圖5顯示與圖2之快取記憶體相關聯之一範例性誤差偵測邏輯;
圖6顯示用於實施與圖2之範例性快取記憶體相關聯之誤差偵測及修正之一範例性真值表;及
圖7顯示用於實施與圖2之範例性快取記憶體相關聯之誤差修正之一範例性真值表。
60...L1快取記憶體14之一範例性部分
62...存取位址
A0 64、A1 66、A6 68、A7 70...標籤位址之陣列/標籤陣列
D072、D174、D676、D778...資料陣列
80、82...標籤MBE組件
84、86...ATA MBE組件
88、90、92、94...方式選擇
96...資料選擇
100...誤差偵測邏輯
102...誤差修正邏輯
A0、A2、A4、A6...標籤陣列
A1、A3、A5、A7...標籤陣列
Claims (20)
- 一種資料處理系統,其包括:一處理器,其具有一多方式快取,該多方式快取具有一第一方式及一第二方式,其中該第二方式係可組態成對該第一方式多餘或作為獨立於該第一方式之該多方式快取之一關聯式方式操作;及一記憶體,其係耦合至該處理器,其中該處理器回應該多方式快取中之一讀取位址遺失,而向該記憶體提供該讀取位址。
- 如請求項1之資料處理系統,其中在該處理器回應一誤差偵測指示器之操作期間,將第二方式動態組態成對該第一方式多餘。
- 如請求項1之資料處理系統,其中當將該第二方式組態成對該第一方式多餘時,回應該多方式快取中之該讀取位址命中,而自該第一及該第二方式兩者提供藉由該讀取位址之一索引部分定址之資料,且彼此相比較以決定是否存在一比較誤差。
- 如請求項3之資料處理系統,其中當將該第二方式組態成對該第一方式多餘時,對來自該第一方式與該第二方式之每一者之藉由該讀取位址之該索引部分定址之該等資料實行一同位計算,並與儲存在藉由該讀取位址之該索引部分定址之該等資料內的一對應同位位元相比較,以決定是否存在一同位誤差。
- 如請求項3之資料處理系統,其中該第一方式包括一第一標籤陣列及一第一資料陣列,且該第二方式包括一第二標籤陣列及一第二資料陣列,其中當將該第二方式組態成對該第一方式多餘時,該第二標籤陣列係對該第一標籤陣列多餘且該第二資料陣列係對該第一資料陣列多餘,其中回應該多方式快取中之該讀取位址命中,藉由該讀取位址之該索引部分定址之該等資料包括來自藉由該第一標籤陣列與第二標籤陣列兩者之該索引部分定址且彼此相比較之標籤資訊,並且包括來自藉由該第一資料陣列與第二資料陣列兩者之該索引部分定址且彼此相比較之資料資訊。
- 一種資料處理系統,其包括:一處理器,其具有一多方式快取,該多方式快取具有一第一方式及一第二方式且可經組態以在一第一模式或一第二模式下操作,其中在該第一操作模式中,該第一方式與該第二方式每一者彼此獨立地作為該多方式快取之一關聯式方式操作,且在該第二操作模式中,該第二方式係對該第一方式多餘,使得回應該多方式快取中之一讀取位址命中,而自該第一方式及該第二方式兩者提供藉由該讀取位址之一索引部分定址之資料且彼此相比較,以提供回應其指示是否存在一比較誤差的一比較誤差信號,且該處理器回應該多方式快取中之該資料位址遺失,而向該處理器外部的一記憶體提供該讀取位址。
- 如請求項6之資料處理系統,其中該多方式快取包括一快取控制暫存器,其中該多方式快取可經組態以基於該快取控制暫存器之一誤差偵測致動欄位,而在該第一模式或該第二模式下操作。
- 如請求項6之資料處理系統,其中來自該第一方式與該第二方式之每一者的藉由該讀取位址之該索引部分定址之該等資料包括一同位位元。
- 如請求項8之資料處理系統,其中在該第二操作模式中,對來自該第一方式與該第二方式每一者之藉由該讀取位址之該索引部分定址之該等資料實行一同位計算並與其對應同位位元相比較,以提供回應其指示是否存在一同位誤差之一同位誤差信號。
- 如請求項9之資料處理系統,其中在該第二操作模式中,該多方式快取基於該比較誤差信號及該同位誤差信號提供一誤差信號。
- 如請求項6之資料處理系統,其中該多方式快取之該第一方式包括一第一標籤陣列,且該多方式快取之該第二方式包括一第二標籤陣列,其中在該第二操作模式中,該第二標籤陣列係對該第一標籤陣列多餘,使得自該第一標籤陣列與該第二標籤陣列兩者提供藉由該索引部分定址之一標籤,且彼此相比較以提供該比較誤差信號。
- 如請求項6之資料處理系統,其中該多方式快取之該第一方式包括一第一資料陣列,且該多方式快取之該第二方式包括一第二資料陣列,其中在該第二操作模式中,該第二資料陣列係對該第一資料陣列多餘,使得自該第一資料陣列與該第二資料陣列兩者提供藉由該索引部分定址該等資料,且彼此相比較以提供該比較誤差信號。
- 如請求項12之資料處理系統,其中在該第二操作模式中,藉由自該第一資料陣列及該第二資料陣列提供之該索引部分定址之該等資料包括複數個位元組,且其中該比較誤差信號係一多位元信號,其指示該複數個位元組之每一位元組中是否存在一比較誤差。
- 如請求項6之資料處理系統,其進一步包括該處理器外部之該記憶體。
- 如請求項6之資料處理系統,其中該多方式快取進一步包括誤差修正邏輯,其至少部分基於該比較誤差信號而選擇性地修正藉由該讀取位址之該索引部分定址之該等資料中的一誤差。
- 一種資料處理系統,其包括:一處理器,該處理器具有一n個方式關聯式快取,其可經組態以在一第一模式或一第二模式下操作,其中在該第一操作模式中,該n個方式關聯式快取之每一方式作為該n個方式關聯式快取之一獨立方式操作,且在該第二操作模式下,該n個方式關聯式快取作為一n/2個方式快取操作,其中對於該等n/2個方式之每一方式,該等n個方式之另一方式作為一對應多餘方式操作。
- 如請求項16之資料處理系統,其中在該第二操作模式中,回應該多方式快取中之一讀取位址命中,而自該等n/2個方式之每一者及其對應多餘方式提供藉由該讀取位址之一索引部分定址之資料,且彼此相比較以決定是否存在任何比較誤差。
- 如請求項17之資料處理系統,其中在該第二操作模式中,對來自該等n/2個方式之每一者及該等對應多餘方式之藉由該讀取位址之該索引部分定址之該等資料實行一同位計算,以決定是否存在任何同位誤差。
- 如請求項16之資料處理系統,其中n係大於或等於2之一整數,且其中在該第二操作模式中,當n等於2時,該n個方式關聯式快取操作一直接映射快取,以及當n大於2時,該n個方式關聯式快取作為一組關聯式快取操作。
- 如請求項16之資料處理系統,其中在該處理器之操作期間,該多方式快取可經動態組態用以回應一可程式化誤差偵測指示器而在該第一模式或該第二模式下操作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/951,924 US7809980B2 (en) | 2007-12-06 | 2007-12-06 | Error detector in a cache memory using configurable way redundancy |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200931261A TW200931261A (en) | 2009-07-16 |
TWI437436B true TWI437436B (zh) | 2014-05-11 |
Family
ID=40722926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097147540A TWI437436B (zh) | 2007-12-06 | 2008-12-05 | 在使用可組態方式多餘性之快取記憶體中誤差偵測 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7809980B2 (zh) |
EP (1) | EP2240856B1 (zh) |
JP (1) | JP2011507073A (zh) |
TW (1) | TWI437436B (zh) |
WO (1) | WO2009076033A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713254B1 (en) * | 2008-03-31 | 2014-04-29 | Emc Corporation | System and method for improving cache efficiency |
US8291305B2 (en) * | 2008-09-05 | 2012-10-16 | Freescale Semiconductor, Inc. | Error detection schemes for a cache in a data processing system |
US8356239B2 (en) * | 2008-09-05 | 2013-01-15 | Freescale Semiconductor, Inc. | Selective cache way mirroring |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
JP5722754B2 (ja) * | 2011-12-06 | 2015-05-27 | 株式会社日立製作所 | ソフトエラー耐性調整機能を備えた電子システム装置及びソフトエラー耐性調整方法 |
US20130346695A1 (en) * | 2012-06-25 | 2013-12-26 | Advanced Micro Devices, Inc. | Integrated circuit with high reliability cache controller and method therefor |
US8984368B2 (en) | 2012-10-11 | 2015-03-17 | Advanced Micro Devices, Inc. | High reliability memory controller |
US9400711B2 (en) | 2014-04-14 | 2016-07-26 | Freescale Semiconductor, Inc. | Content addressable memory with error detection |
US10474526B2 (en) * | 2016-09-30 | 2019-11-12 | Intel Corporation | System and method for granular in-field cache repair |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU616213B2 (en) | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
CA2003338A1 (en) | 1987-11-09 | 1990-06-09 | Richard W. Cutts, Jr. | Synchronization of fault-tolerant computer system having multiple processors |
AU625293B2 (en) | 1988-12-09 | 1992-07-09 | Tandem Computers Incorporated | Synchronization of fault-tolerant computer system having multiple processors |
US4965717A (en) | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
EP0401994A3 (en) | 1989-06-05 | 1991-10-23 | Hewlett-Packard Company | Method of implementing error corrected memory |
JPH03122739A (ja) * | 1989-10-05 | 1991-05-24 | Koufu Nippon Denki Kk | キャッシュメモリ |
US5295258A (en) | 1989-12-22 | 1994-03-15 | Tandem Computers Incorporated | Fault-tolerant computer system with online recovery and reintegration of redundant components |
JPH04243446A (ja) * | 1991-01-17 | 1992-08-31 | Koufu Nippon Denki Kk | キャッシュ登録制御装置 |
US5313585A (en) | 1991-12-17 | 1994-05-17 | Jeffries Kenneth L | Disk drive array with request fragmentation |
US5506977A (en) | 1991-12-17 | 1996-04-09 | Dell Usa, L.P. | Method and controller for minimizing reads during partial stripe write operations to a disk drive |
US5313626A (en) | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
US5530960A (en) | 1991-12-17 | 1996-06-25 | Dell Usa, L.P. | Disk drive controller accepting first commands for accessing composite drives and second commands for individual diagnostic drive control wherein commands are transparent to each other |
US5974544A (en) | 1991-12-17 | 1999-10-26 | Dell Usa, L.P. | Method and controller for defect tracking in a redundant array |
US5473761A (en) | 1991-12-17 | 1995-12-05 | Dell Usa, L.P. | Controller for receiving transfer requests for noncontiguous sectors and reading those sectors as a continuous block by interspersing no operation requests between transfer requests |
US5483641A (en) | 1991-12-17 | 1996-01-09 | Dell Usa, L.P. | System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities |
EP0567707A1 (en) * | 1992-04-30 | 1993-11-03 | International Business Machines Corporation | Implementation of column redundancy in a cache memory architecture |
JP3188071B2 (ja) * | 1993-10-14 | 2001-07-16 | 富士通株式会社 | ディスクキャッシュ装置 |
EP0675436B1 (en) * | 1994-03-31 | 1999-10-27 | STMicroelectronics, Inc. | Recoverable set associative cache |
US6412051B1 (en) * | 1996-11-27 | 2002-06-25 | International Business Machines Corp. | System and method for controlling a memory array in an information handling system |
US5883904A (en) * | 1997-04-14 | 1999-03-16 | International Business Machines Corporation | Method for recoverability via redundant cache arrays |
JPH10334695A (ja) * | 1997-05-27 | 1998-12-18 | Toshiba Corp | キャッシュメモリ及び情報処理システム |
US6625756B1 (en) | 1997-12-19 | 2003-09-23 | Intel Corporation | Replay mechanism for soft error recovery |
US6480975B1 (en) | 1998-02-17 | 2002-11-12 | International Business Machines Corporation | ECC mechanism for set associative cache array |
JP3922844B2 (ja) * | 1999-09-02 | 2007-05-30 | 富士通株式会社 | キャッシュtag制御方法及びこの制御方法を用いた情報処理装置 |
US6708294B1 (en) * | 1999-09-08 | 2004-03-16 | Fujitsu Limited | Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded |
US6625749B1 (en) | 1999-12-21 | 2003-09-23 | Intel Corporation | Firmware mechanism for correcting soft errors |
US6615366B1 (en) | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
US7010575B1 (en) | 2000-03-31 | 2006-03-07 | Emc Corporation | Data storage system having separate data transfer section and message network having bus arbitration |
US6668308B2 (en) | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
US6671822B1 (en) * | 2000-08-31 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache |
US6631433B1 (en) | 2000-09-27 | 2003-10-07 | Emc Corporation | Bus arbiter for a data storage system |
US6684268B1 (en) | 2000-09-27 | 2004-01-27 | Emc Corporation | Data storage system having separate data transfer section and message network having CPU bus selector |
US6901468B1 (en) | 2000-09-27 | 2005-05-31 | Emc Corporation | Data storage system having separate data transfer section and message network having bus arbitration |
US6609164B1 (en) | 2000-10-05 | 2003-08-19 | Emc Corporation | Data storage system having separate data transfer section and message network with data pipe DMA |
US6918071B2 (en) * | 2001-04-20 | 2005-07-12 | Sun Microsystems, Inc. | Yield improvement through probe-based cache size reduction |
US6898738B2 (en) * | 2001-07-17 | 2005-05-24 | Bull Hn Information Systems Inc. | High integrity cache directory |
GB2378277B (en) | 2001-07-31 | 2003-06-25 | Sun Microsystems Inc | Multiple address translations |
KR100481849B1 (ko) * | 2001-12-04 | 2005-04-11 | 삼성전자주식회사 | 용량 변경이 가능한 캐쉬 메모리 및 이를 구비한 프로세서칩 |
JP3953903B2 (ja) | 2002-06-28 | 2007-08-08 | 富士通株式会社 | キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法 |
US7181578B1 (en) | 2002-09-12 | 2007-02-20 | Copan Systems, Inc. | Method and apparatus for efficient scalable storage management |
US20040199786A1 (en) | 2002-12-02 | 2004-10-07 | Walmsley Simon Robert | Randomisation of the location of secret information on each of a series of integrated circuits |
WO2005024843A1 (en) * | 2003-09-04 | 2005-03-17 | Koninklijke Philips Electronics N.V. | Integrated circuit and a method of cache remapping |
JP4044585B2 (ja) | 2003-11-12 | 2008-02-06 | 松下電器産業株式会社 | キャッシュメモリおよびその制御方法 |
JP4201783B2 (ja) * | 2005-08-04 | 2008-12-24 | 富士通マイクロエレクトロニクス株式会社 | キャッシュメモリ装置、半導体集積回路およびキャッシュ制御方法 |
US7949841B2 (en) | 2006-12-08 | 2011-05-24 | Microsoft Corporation | Protection of critical memory using replication |
-
2007
- 2007-12-06 US US11/951,924 patent/US7809980B2/en active Active
-
2008
- 2008-11-21 WO PCT/US2008/084261 patent/WO2009076033A2/en active Application Filing
- 2008-11-21 JP JP2010536974A patent/JP2011507073A/ja active Pending
- 2008-11-21 EP EP08858814.0A patent/EP2240856B1/en active Active
- 2008-12-05 TW TW097147540A patent/TWI437436B/zh active
Also Published As
Publication number | Publication date |
---|---|
US7809980B2 (en) | 2010-10-05 |
TW200931261A (en) | 2009-07-16 |
US20090150720A1 (en) | 2009-06-11 |
WO2009076033A3 (en) | 2009-08-27 |
EP2240856B1 (en) | 2019-04-17 |
JP2011507073A (ja) | 2011-03-03 |
EP2240856A4 (en) | 2012-08-08 |
WO2009076033A2 (en) | 2009-06-18 |
EP2240856A2 (en) | 2010-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI437436B (zh) | 在使用可組態方式多餘性之快取記憶體中誤差偵測 | |
EP0535086B1 (en) | Multiple error correction in a computer memory | |
KR100572800B1 (ko) | 에러 체크 방법, 에러 정정 코드 체커 및 이를 포함하는 컴퓨터 시스템 | |
US8990660B2 (en) | Data processing system having end-to-end error correction and method therefor | |
US3436734A (en) | Error correcting and repairable data processing storage system | |
US7689889B2 (en) | Content addressable memory entry coding for error detection and correction | |
CA1325290C (en) | Write back buffer with error correcting capabilities | |
US8090984B2 (en) | Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep | |
US20100251036A1 (en) | Implementation of multiple error detection schemes for a cache | |
TWI742021B (zh) | 用於多位元錯誤偵測和校正之裝置和方法 | |
US5142540A (en) | Multipart memory apparatus with error detection | |
US7272773B2 (en) | Cache directory array recovery mechanism to support special ECC stuck bit matrix | |
US5500950A (en) | Data processor with speculative data transfer and address-free retry | |
CN102216904B (zh) | 用于数据处理系统中的高速缓存的可编程错误动作 | |
US8291305B2 (en) | Error detection schemes for a cache in a data processing system | |
US5455939A (en) | Method and apparatus for error detection and correction of data transferred between a CPU and system memory | |
WO2010027549A1 (en) | Error detection schemes for a unified cache in a data processing system | |
JPS62501047A (ja) | エラ−検出及び修正システム | |
US5335234A (en) | Error correction code pipeline for interleaved memory system | |
US11714704B2 (en) | Modified checksum using a poison data pattern | |
US20110161783A1 (en) | Method and apparatus on direct matching of cache tags coded with error correcting codes (ecc) | |
US8914712B2 (en) | Hierarchical error correction | |
US4953079A (en) | Cache memory address modifier for dynamic alteration of cache block fetch sequence |