TWI486779B - 用於資料處理系統中之快取之可程式化錯誤動作 - Google Patents

用於資料處理系統中之快取之可程式化錯誤動作 Download PDF

Info

Publication number
TWI486779B
TWI486779B TW098138874A TW98138874A TWI486779B TW I486779 B TWI486779 B TW I486779B TW 098138874 A TW098138874 A TW 098138874A TW 98138874 A TW98138874 A TW 98138874A TW I486779 B TWI486779 B TW I486779B
Authority
TW
Taiwan
Prior art keywords
cache
error
control
value
cache line
Prior art date
Application number
TW098138874A
Other languages
English (en)
Other versions
TW201025019A (en
Inventor
William C Moyer
Gary L Whisenhunt
Original Assignee
Freescale Semiconductor 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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of TW201025019A publication Critical patent/TW201025019A/zh
Application granted granted Critical
Publication of TWI486779B publication Critical patent/TWI486779B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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

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)
  • Debugging And Monitoring (AREA)

Description

用於資料處理系統中之快取之可程式化錯誤動作
本發明大體而言係關於資料處理系統,且更特定而言係關於用於一快取之可程式化錯誤動作。
本申請案已於2008年11月18日在美國作為專利申請案第12/273155號提出申請。
隨著尺寸縮小且隨著記憶體容量增加,快取中之軟錯誤變得日益成問題。此等軟錯誤涉及(諸如)由於電離輻射之影響引起之儲存於快取中之資料改變。此等改變導致可在安全關鍵性系統(諸如,防鎖定製動系統、驅動器輔助系統等)中尤其成問題之較不可靠之快取。亦即,在此等系統內,可要求高度安全性或可靠性。
本發明之一目標係提供一資料處理系統,其包含:一處理器;耦合至該處理器之一快取;及耦合至該快取之快取控制電路,該快取控制電路執行錯誤偵測,該快取控制電路進一步包含用於儲存用於在偵測到一快取錯誤時選擇複數個錯誤動作中欲採取之一者之一控制值之一使用者可程式化錯誤動作控制暫存器,其中由一使用者選擇之該控制值之一第一值在不採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,且由該使用者選擇之該控制值之一第二值在採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,其中該使用者動態地程式化確定欲採取之錯誤動作係一透明操作或是一不透明操作之控制值。
在一資料處理系統內,當偵測到一快取中之一軟錯誤時可採取不同錯誤動作。在一個實施例中,快取控制電路包括一使用者可程式化控制暫存器,該使用者可程式化控制暫存器包括用於儲存允許回應於偵測到一快取軟錯誤而動態地選擇欲採取之一錯誤動作之一控制值之一快取錯誤動作(CEA)欄位。舉例而言,在一個實施例中,一使用者可程式化該CEA欄位之控制值以允許回應於一所偵測之錯誤而執行一透明操作或一不透明操作。使用該使用者可程式化控制暫存器來回應於所偵測之錯誤選擇欲採取之不同錯誤動作提供一撓性機制來評估並克服此等軟錯誤。舉例而言,在關鍵執行區域(諸如在執行安全關鍵性應用程式期間)中可期望透明地修復軟錯誤,而在執行其他類型之應用程式期間或在其他模式中,為了經改良之監控可期望截取並報告軟錯誤。因此,在資料處理系統之操作期間,該使用者可程式化控制暫存器允許快取錯誤對於該處理器之透明度動態變化。
如本文所使用,術語「匯流排」用於指代複數個信號或導體,其可用於傳送一種或多種各種類型之資訊,諸如資料、位址、控制或狀況。如本文所論述之導體可被作為一單個導體、複數個導體、單向導體或雙向導體來圖解說明或闡述。然而,不同實施例可變化該等導體之實施方案。舉例而言,可使用若干個單獨單向導體而不係雙向導體,且反之亦然。而且,亦可用以串列方式或以一時間多工方式傳送多個信號之一單個導體來替代複數個導體。同樣地,亦可將載送多個信號之單個導體分離成載送此等信號之子集之各種不同導體。因此,存在用於傳送信號之諸多選項。
當提及將一信號、狀況位元或類似裝置譯成其邏輯真或邏輯假狀態時,本文分別使用術語「確證」或「設定」及「否定」(或「取消確證」或「清除」)。若邏輯真狀態係一邏輯位階1,則邏輯假狀態係一邏輯位階0。且若該邏輯真狀態係一邏輯位階0,則該邏輯假狀態係一邏輯位階1。
圖1以方塊圖形式圖解說明根據本發明一個實施例之資料處理系統10。資料處理系統10包括一處理模組12、系統匯流排14、記憶體16及複數個周邊裝置(諸如一周邊裝置18、周邊裝置20,且在一些實施例中,如由將周邊裝置18與周邊裝置20分離之圖1中之圓點所指示之額外周邊裝置)。記憶體16係一系統記憶體,其藉由在一種形式中具有多個導體之一雙向導體耦合至系統匯流排14。在所圖解說明之形式中,如處理模組12,周邊裝置18及20中之每一者藉由雙向多個導體耦合至系統匯流排14。處理模組12包括經由具有多個導體之一雙向匯流排耦合至系統匯流排14之一匯流排介面單元22。匯流排介面單元22經由雙向導體耦合至一內部匯流排24。內部匯流排24係一多導體通信匯流排。一快取26、一記憶體28及一處理器30經由各別雙向導體耦合至內部匯流排24。處理器30實施資料處理操作。快取26、記憶體28及處理器30中之每一者經由各別雙向導體耦合至該內部匯流排。在一個實施例中,處理器30可直接耦合至快取26,而不係經由內部匯流排24。在又一實施例中,除了經由內部匯流排24耦合以外,處理器30可經由一專用介面直接耦合。其他實施例可使用耦合處理器30、快取26及記憶體28之不同方法。另一選擇為,處理模組12中可不存在記憶體28。注意,記憶體28及記憶體16可係任一類型之記憶體,且周邊裝置18及20可各自係任一類型之周邊裝置或器件。在一個實施例中,整個資料處理系統10位於一單個積體電路上。另一選擇為,可使用多於一個積體電路來實施資料處理系統10。在一個實施例中,至少整個處理模組12位於一單個積體電路上。
在操作中,處理模組12發揮作用以藉由執行複數個資料處理指令來實施各種資料處理功能。快取26係用於處理器30所需之頻繁使用資訊之一臨時資料儲存器。在一個實施例中,快取26係一組相聯快取。在一個實施例中,快取26可係儲存指令資訊之一指令快取。在另一實施例中,快取26可係儲存資料資訊(例如,運算元資訊)之一資料快取。在又一實施例中,快取26可係能夠儲存多個類型之資訊(諸如,指令資訊及資料資訊(例如,運算元資訊)兩者)之一混合式快取。處理器30所需之不在快取26內之資訊儲存於記憶體28或記憶體16中。在一個實施例中,當記憶體28在處理模組12內部時其可稱作一內部記憶體,而當記憶體16在處理模組12外部時其可稱作一外部記憶體。匯流排介面單元22僅係處理模組12與系統匯流排14之間的數個介面單元中之一者。匯流排介面單元22發揮作用以協調與處理器30執行指令相關之資訊流動。由執行指令引起之控制資訊及資料經由匯流排介面單元22在處理器30與系統匯流排14之間交換。
注意,處理模組12及資料處理系統10可包括任一數目之快取,該等任一數目之快取可包括任一類型之快取,諸如資料快取、指令快取、位階1快取、位階2快取等。本文相對於錯誤動作控制暫存器所提供之闡述及其使用可應用於資料處理系統10內之任一快取。在一個實施例中,每一快取或一快取子集中之每一者具有其自己的錯誤動作控制暫存器或其自己的CEA欄位以用於在偵測到一軟錯誤時選擇欲採取之錯誤動作。在另一實施例中,一個或多個快取可分享一錯誤動作控制暫存器或一錯誤動作控制暫存器內之一CEA欄位。
圖2圖解說明根據一個實施例,圖1之快取26之一部分。快取26之替代性實施例可使用不同於圖2中所圖解說明之一結構。圖2中所圖解說明之快取26之所述部分具有「N」個組及8個路,且可稱作一多路快取或稱作一多路組相聯快取。因此,可將快取26闡述為具有N個組,每一組具有8個路。在替代性實施例中,快取26可具有任一數目之組及任一數目之路。注意,如本文中所使用,一快取線指代一快取路與一組之一交集。舉例而言,路0包括N個快取線,每一快取線對應於組0至組N-1中之一者。因此,當選擇一路用於替代時,實際上替代了一個或多個快取線(其由索引部分29選擇,如下文將闡述)中之資訊。亦即,可不替代整個路,而係僅替代一個或多個特定線。
在所圖解說明之實施例中,快取電路21係儲存電路,其將資訊儲存於複數個快取線或條目中之每一者中。舉例而言,快取電路21包括針對該等快取線或條目之標籤、狀況、快取資料及保護欄位。位址25自處理器30提供。位址25包括一標籤部分27、一索引部分29及一偏移部分32。指示一特定快取線(亦即,組0至組N-1中之一者)之索引部分29被提供至快取電路21。比較電路23經耦合以接收標籤部分27且耦合至快取電路21以接收標籤及狀況資訊。基於所接收之此資訊,比較電路23確定係否已存在一快取命中或一快取未命中。在所圖解說明之實施例中,被標記為命中_路[0:7]34之複數個命中/未命中信號提供至快取控制電路38。每一命中_路[0:7]34信號指示對於其在快取電路21中之對應路係否已存在一快取命中。除一快取命中信號以外或替代一快取命中信號,替代性實施例可使用一快取未命中信號。
快取控制電路38藉助導體或信號36及39耦合至快取電路21。包括索引部分29之來自處理器30之位址25亦提供至快取控制電路38以用於指示一特定快取線(亦即,組0至組N-1中之一者)以及用於為其它控制操作提供標籤27及偏移32部分。快取控制電路38包括一錯誤動作控制暫存器48、輸出選擇邏輯37及錯誤控制電路66。錯誤動作控制暫存器48耦合至錯誤控制電路66,且錯誤控制電路耦合至輸出選擇邏輯37。錯誤控制電路66亦將一個或多個錯誤指示符提供至匯流排24。輸出選擇邏輯將資訊提供至匯流排24。快取控制電路38亦經耦合以自匯流排24接收資訊。
錯誤控制電路66包括針對快取電路21之每一路之錯誤控制電路:路0錯誤控制電路-路7錯誤控制電路。如下文將更詳細闡述,錯誤控制電路66針對快取26執行錯誤偵測及選擇性錯誤校正。如在此項技術中應眾所周知,快取控制電路38亦可包括其他電路以執行其他快取功能,且因此本文將不更詳細地闡述此其他電路。
仍參照圖2,索引部分29用於在快取電路21中選擇一組。來自快取電路21之標籤資訊與標籤27作比較且由來自快取電路21之狀況資訊(亦即,有效位元)資格鑑定。該比較及資格鑒定之結果(例如,匹配及有效)確定係否發生一快取命中。如上文所闡述,每一命中_路[0:7]34信號指示對於其在快取電路21中之對應路係否已存在一快取命中。
在對快取26進行一讀取存取之情形下,當發生一快取命中時,經由導體39將導致該快取命中之快取線之快取資料及保護欄位提供至快取控制電路38。錯誤控制電路66內針對導致該快取命中之路之對應錯誤控制電路使用所接收之保護資訊對所接收之快取資料執行錯誤偵測及/或校正。如下文將相對於圖6更詳細闡述,使用錯誤動作控制暫存器48內之設定來選擇所使用之錯誤偵測及/或校正方案。而且,如下文將更詳細闡述,若偵測到一錯誤,則錯誤控制電路66內針對導致該快取命中之路之對應錯誤控制電路使用錯誤動作控制暫存器48內之設定來回應於該所偵測之錯誤確定欲採取之一錯誤動作。然後可經由輸出選擇邏輯將該快取資料提供至匯流排24,該輸出選擇邏輯使用命中_路[0:7]34選擇錯誤控制電路66內針對導致該快取命中之路之對應錯誤控制電路之輸出。注意,若亦正執行錯誤校正,則將經由輸出選擇邏輯37輸出經校正之快取資料而不係自快取電路21提供之資料。而且,注意,亦可經由輸出選擇邏輯37將一個或多個錯誤指示符提供至匯流排24以指示係否已發生一錯誤。此外,若正提供經校正之快取資料,則可否定該一個或多個錯誤指示符以指示所提供之快取資料不存在任何錯誤(此乃因其已經校正)。在此情形下,所偵測之錯誤對於處理器30係透明的。
在對快取26進行一寫入存取之情形下,當發生一快取命中時,可由快取控制電路38自匯流排24接收資訊(例如,用於儲存於快取電路21中之快取資料)。可由快取控制電路38提供快取資料以用於藉由經由導體39將該新資料合併於快取電路21之適當快取線中來儲存。而且,快取控制電路38可適當地更新該快取線之狀況欄位。狀況資訊可包括狀況,諸如指示該快取線有效之一有效(V)旗標,及指示該快取線相對於駐存於記憶體16或記憶體28中之拷貝經修改之一髒(D)旗標。如此項技術中已知,亦可實施其他狀況旗標。(注意,未圖解說明用於接收快取資料且將其路由至快取電路21內導致命中之線且用於更新狀況資訊之具體電路,此乃因其在此項技術中眾所周知。)亦將所接收之快取資料提供至錯誤控制電路66以使得錯誤控制電路66內之對應錯誤控制電路(如由命中_路[0:7]34選擇)可產生適當之經更新保護資訊,如下文將相對於圖6更詳細闡述。可由快取控制電路38提供此對應保護資訊連同所接收之快取資料以用於儲存於快取電路21之導致快取線命中之適當快取線中。注意,若亦正執行錯誤校正,則將提供用於儲存回快取電路21中之經校正所接收快取資料(若偵測到一錯誤)連同經合併之儲存資料以用於寫入存取。
在一快取未命中之情形下,快取控制電路38內之分配邏輯(未顯示)識別用於替代之一快取線且更新該快取線。任一已知的快取分配方法(諸如,例如一循環方法、一偽最近最少使用(PLRU)方法等)可用於選擇用於替代之一快取線。當發生一快取未命中時,用於儲存於新分配之快取線中之新快取資料由匯流排24提供至快取控制電路38。然後可經由導體39提供該新快取資料以用於儲存於快取電路21之新分配之快取線中。而且,快取控制電路38可適當地產生狀況資訊以用於儲存於新分配之快取線之狀況欄位中。(注意,未圖解說明用於接收快取資料且將其路由至電路21內之新分配快取線且用於產生用於該新分配之快取線之狀況資訊之具體電路,此乃因其在此項技術中眾所周知。)亦將新快取資料提供至錯誤控制電路66以使得錯誤控制電路66內之對應錯誤控制電路(對應於替代邏輯49所選擇之包括新分配之快取線之路)可產生適當保護資訊,如下文將相對於圖6更詳細闡述。,亦可由快取控制電路38提供此對應保護資訊連同所接收之快取資料以用於儲存於快取電路21之新分配之快取線中。
在所圖解說明之實施例中,快取控制電路38亦將控制信號36提供至快取電路21(例如,用於讀取/寫入控制)。舉例而言,在處理器30之控制下,快取控制電路38可更新快取電路21。舉例而言,處理器30可執行特殊快取指令以更新狀況資訊。而且,在一個實施例中,在處理器30之控制下,快取控制電路38(諸如)經由特殊快取指令或經由移動至特殊目的暫存器指令可更新錯誤動作控制暫存器48以(例如)動態地改變偵測到一錯誤時欲執行之錯誤動作。儘管圖2圖解說明可用於實施圖1之快取26之一部分之具體電路,但替代性實施例可使用任一期望電路。可使用各種各樣的電路實施方案。圖2中所圖解說明之電路僅意欲圖解說明一個可能實施例。
圖3以圖表形式圖解說明錯誤動作控制暫存器48之一個實施例,該錯誤動作控制暫存器包括一3-位元快取錯誤動作(CEA)欄位、一1-位元快取錯誤核對啟用(CECE)欄位、一2-位元快取錯誤偵測類型(CEDT)欄位、一1-位元快取無效化(CINV)欄位及一1-位元快取啟用(CE)欄位。圖4及圖5以表格形式圖解說明對圖3中所圖解說明之錯誤動作控制暫存器48之欄位之闡述。
舉例而言,CEA係一3-位元欄位,其指示當錯誤控制電路66偵測到一快取錯誤時欲採取何種錯誤動作。圖4圖解說明用於該CEA欄位之各種編碼之一個實例。在一個實施例中,當該CEA欄位具有一000值時,一錯誤偵測導致一機器核對例外狀況,其然後可由一軟體中斷處置器處置。舉例而言,快取26之內容可由軟體使用可用快取陣列存取機制檢查。舉例而言,在一個實施例中,可藉助對引發一錯誤之一快取線之快取標籤、狀況、保護及資料部分之內容之一記憶體映射存取進行對快取陣列之存取。另一選擇為,可藉由一個或多個測試存取暫存器或直接快取存取控制與資料暫存器進行對快取陣列之存取以獲得一快取線之狀態。以此方式,將對一錯誤之偵測報告至處理器30,從而導致用於軟體處置之一處理器機器核對例外狀況或中斷,且對該錯誤之偵測因此對於處理器30不透明的。在一個實施例中,在不修改該快取之內容之情形下產生該機器核對例外狀況,其中該例外狀況准許記錄所偵測之錯誤且檢查該快取內之所儲存資訊以收集關於所偵測之錯誤之資訊。然後軟體可記錄任一期望統計資料或關於錯誤類型之其他資訊或所偵測之錯誤與資料處理系統10之其他狀態之關係。在一個實施例中,在此之後,該軟體可執行一個或多個校正操作以允許藉由該處理器繼續執行已中斷之程式。
在一個實施例中,當該CEA欄位具有一001值時,一錯誤偵測導致一自動無效化操作,其中(例如)使導致快取錯誤之一快取線無效。在一個實施例中,即使導致快取錯誤之一快取線未導致快取命中,亦使導致快取錯誤之該快取線無效。此可藉由否定導致快取錯誤之該快取線之狀況欄位之有效位元來完成。而且,不產生任何機器核對例外狀況,從而提供其中此錯誤動作對於處理器30係透明之透明操作。在此情形下,在一個實施例中,替代發信一軟體例外狀況,該快取線之無效化導致一快取未命中發生,且該快取線可自記憶體16或記憶體28再填充,從而消除軟錯誤,且允許處理在沒有一例外狀況之情形下正常繼續進行,從而導致透明操作。
在一個實施例中,當該CEA欄位具有一010值時,一錯誤偵測導致一機器核對例外狀況及一自動無效化兩者。此錯誤動作允許藉由機器核對例外狀況記錄一錯誤之發生,且藉由使導致該快取錯誤之快取線無效來消除同一錯誤之再次發生。消除該錯誤之再次發生可防止其中機器核對例外狀況處置器引發同一錯誤且變得黏滯於一迴路中之一情形。在一個實施例中,該CEA欄位之此設定(其導致一機器核對例外狀況及一自動無效化兩者)用作用以在使出錯線(亦即,包括錯誤之快取線)無效之後「重新執行」具有所偵測之錯誤之指令之一機制。亦即,在一個實施例中,採取機器核對例外狀況之效應導致正被執行之指令被抑制,且來自機器核對例外狀況之正常軟體返回機制導致在已使該指令無效之後其被重新執行。此可(諸如)針對對導致錯誤偵測之一資料快取之存取簡化流水線之一些實施方案以使得硬體不必想出用以在已偵測到錯誤之後重新執行該指令之一特殊方法。
在一個實施例中,當該CEA欄位具有一011值時,若快取線係一淨快取線(其中一淨快取線係與記憶體(諸如記憶體28或16)相干之一快取線且因此含有與記憶體中之對應位置相同之資料),則錯誤偵測導致一自動無效化。然而,若該快取線係一髒快取線(亦即,一經修改快取線,其中該快取線與記憶體不相干,且因此含有相對於儲存於記憶體28或16中之對應位置處之資料經修改之資料),則一錯誤偵測導致一機器核對例外狀況且該快取線保持未更改。注意,在此情形下,若使一髒快取線無效,則記憶體相干性丟失,此乃因記憶體28或16中之對應記憶體位置不含有儲存於該髒快取線中之最新近資料。在一個實施例中,避免髒線之無效化允許軟體錯誤處置器試圖針對其中一髒線遇到一軟錯誤之情形到達一可恢復狀態,但針對軟錯誤發生於清潔線上之正常情形,操作以一透明方式繼續進行。
在一個實施例中,當該CEA欄位具有一100值時,一錯誤偵測導致自動校正(諸如藉由一錯誤校正方案)。在此實例中,錯誤動作不包括任何快取線無效化,且不產生任何機器核對例外狀況。此錯誤動作提供錯誤發生之最大透明度。亦即,此錯誤動作提供快取錯誤對於處理器30之最大透明度。
在一個實施例中,當該CEA欄位具有一101值時,一錯誤偵測導致自動校正(諸如藉由一錯誤校正方案),且導致一機器核對例外狀況。以此方式,即使可透明地校正該錯誤,亦經由機器核對例外狀況將該錯誤之可視度提供至處理器30。
在所圖解說明之實施例中,保留該CEA欄位之110及111值以用於可能未來使用。因此,可見該CEA欄位如何能夠提供一快取錯誤對於處理器30之不同透明度位準。舉例而言,在圖4之實施例中,提供最大透明度之錯誤動作係與一CEA值001或110相關聯之彼等錯誤動作,在該等錯誤動作中執行自動無效化或執行自動校正。在此等情形下之任一者中,錯誤偵測對於處理器30係透明的,其中由於快取錯誤不中斷或干擾處理器30之操作。然而,包括產生一機器核對例外狀況之錯誤動作係不透明的。此等不透明動作可允許執行記錄或關於錯誤發生之其他軟體處理。
仍參照圖4,CECE係啟用或停用快取錯誤核對之一1-位元欄位。舉例而言,當該CECE欄位具有一0值時,錯誤核對被停用。舉例而言,在此情形下,整個錯誤控制電路66可被停用而無法執行任一錯誤偵測及/或校正。舉例而言,當該CECE欄位具有一1值時,錯誤核對被啟用。在此情形下,錯誤控制電路66被啟用且根據錯誤動作控制暫存器48中之其他設定(諸如,CEA及CEDT欄位)操作。CEDT係指示欲執行之快取錯誤偵測類型之一2-位元欄位。舉例而言,當該CEDT欄位具有一00值時,選擇同位錯誤偵測(例如,單個位元錯誤偵測)且當該CEDT欄位具有一01值時,選擇錯誤偵測碼(EDC)錯誤偵測(例如,多位元錯誤偵測)。在EDC之情形下,注意,可執行或可不執行錯誤校正碼(ECC)操作。舉例而言,該CEA欄位之設定將幫助確定係否將執行錯誤校正。
在圖5中,CINV欄位係指示係否欲執行一快取無效化操作之一1-位元欄位。舉例而言,當該CINV欄位具有一0值時,不執行任何快取無效化,但當該CINV欄位具有一1值時,執行一快取無效化操作。舉例而言,當設定至一「1」時,一快取無效化操作由硬體起始。一旦完成,此位元被重設至一「0」。在一個實施例中,在一無效化操作正進行時寫入一「1」將導致一未定義操作,且在一無效化操作正進行時寫入一「0」將被忽略。而且,在一個實施例中,無論該CE欄位之值如何,發生快取無效化操作。
仍參照圖5,該CE欄位係指示快取係否被啟用之一1-位元欄位。舉例而言,當該CE欄位具有一0值時,該快取被停用且不針對處理器存取執行快取查找。然而,其他快取控制操作可仍係可用的。當該CE欄位具有一1值時,該快取被啟用。
在替代性實施例中,錯誤動作控制暫存器48可包括更多或更少欄位,且每一欄位根據需要可包括更多或更少位元。儘管圖2中已圖解說明快取26之一個架構類型,但快取26之替代性實施例可使用任一期望或適當架構。圖2中所圖解說明之架構僅意欲作為一個可能代表性架構。可使用允許所期望快取錯誤動作之任一快取架構。
圖6圖解說明電路31,該電路表示根據本發明之一個實施例之快取26之一部分。電路31包括記憶體儲存電路40,該記憶體儲存電路表示快取電路21之路0之一部分。記憶體儲存電路40包括若干個記憶體庫及保護儲存裝置45。在所圖解說明之實施例中,記憶體儲存電路40包括8個庫:庫042、庫1 43...庫7 44。替代性實施例可包括任一數目之庫。在所圖解說明之實施例中,庫0-7表示路0之快取資料部分,其中每一庫係1個位元組寬,且保護儲存裝置45表示路0之保護部分。庫0-7中之每一者儲存N個位元組,一個位元組對應於組0至N-1中之每一者。因此,在具有8個庫之所圖解說明之實施例中,路0之每一快取資料欄位儲存一雙字。若路0之每一快取資料欄位欲儲存多於一雙字,則電路40根據需要將包括更多庫或更寬之庫且根據需要包括一較大保護儲存裝置。亦注意,本文對圖3之闡述類似地應用於路0-7中之每一者。
電路31包括路0錯誤控制電路,該路0錯誤控制電路係錯誤控制電路66之一部分。路0錯誤控制電路雙向耦合至記憶體儲存電路40(至快取電路21之路0之部分)且包括路0選擇邏輯60、模式邏輯50(其經耦合以自錯誤動作控制暫存器48接收資訊)、一分享互斥或(XOR)樹52及錯誤偵測與校正邏輯54(其亦經耦合以自錯誤動作控制暫存器48接收資訊)。基於錯誤動作控制暫存器48之CEDT欄位之值,模式邏輯50將一模式指示符62輸出至路0選擇邏輯60之一控制輸入。在一個實施例中,模式62指示電路31正以何種錯誤偵測模式操作。舉例而言,在所圖解說明之實施例中,基於控制暫存器48中之CEDT控制欄位之值,模式62指示電路31正以EDC模式(多位元錯誤偵測)或是同位模式(單個位元錯誤偵測)操作。注意,在一個實施例中,當快取錯誤核對被啟用時(當CECE欄位具有一1值時),基於CEDT控制欄位之值輸出模式指示符62。然而,在一個實施例中,當CECE控制欄位指示快取錯誤核對未被啟用時(當CECE欄位具有一0值時),則設定模式62以使得路0選擇邏輯60選擇來自電路40而不係錯誤偵測與校正邏輯54之輸出,且可停用錯誤偵測與校正邏輯54。
在EDC模式下,保護儲存裝置45之每一條目儲存庫0-7內之對應條目之對應核對位元。舉例而言,保護儲存裝置45之第一條目儲存對應於儲存於庫0-7中之每一者之第一條目中之資料之核對位元。但在同位模式下,保護儲存裝置45之每一條目儲存對應於庫0-7中之每一者中之一條目之一同位位元。舉例而言,在同位模式下,保護儲存裝置45之第一條目儲存庫0-7中之每一者中之第一條目之一同位位元。因此,在其中存在8個庫之所圖解說明實施例中,保護儲存裝置45之每一條目儲存8個同位位元,庫0-7中之每一者一個同位位元。在一個實施例中,此等相同8個位元用於在EDC模式下儲存庫0-7中之集體64-位元資料之核對位元56。
在EDC模式下,分享XOR樹52經耦合以自庫0至庫7中之每一者且自保護儲存裝置45接收資訊。在EDC模式下,分享XOR樹52基於自快取控制電路38之其他部分(其可來自匯流排24)或自庫0-7中之每一者中之一特定條目或兩者之一組合所接收之資訊來產生提供至保護儲存裝置45以用於儲存於一對應條目中之核對位元56。而且,在EDC模式下,分享XOR樹52基於自庫0-7中之每一者中之一特定條目所接收之資訊及自保護儲存裝置45所接收之對應核對位元來產生提供至校正邏輯54之症兆位元58。在EDC模式下,錯誤偵測與校正邏輯54亦自庫0-7中之每一者中之該特定條目接收資訊,且使用對應症兆位元58來執行多位元錯誤偵測。若偵測到一錯誤,則控制電路66根據錯誤動作控制暫存器48之CEA欄位所指示執行一錯誤動作。若該CEA欄位指示欲發生自動校正(諸如當該CEA欄位具有一100或101值時),則錯誤偵測與校正邏輯54亦校正所接收之資訊且將來自庫0-7之該特定條目之經校正資訊提供至路0選擇邏輯60。因此,路0選擇邏輯60基於模式62之值或將校正邏輯54之輸出提供至輸出選擇邏輯37(若在其中欲執行自動校正之EDC模式下)或將庫0-7中之一者或多者之輸出直接提供至輸出選擇邏輯37(若在其中不欲執行自動校正之EDC模式下,或在同位模式下)。
當一快取命中發生於路0中時,輸出選擇邏輯37選擇路0選擇邏輯60之輸出以提供至匯流排24。注意,在同位模式下,亦可自保護儲存裝置45將對應同位位元提供至輸出選擇邏輯37。而且,錯誤偵測與校正邏輯54可將一錯誤指示符提供至匯流排24以指示係否發生了一錯誤。在一個實施例中,由該CEA欄位之值指示之錯誤動作之其他部分可由錯誤控制電路66之其他部分、快取控制電路38或處理器30或其組合執行。舉例而言,基於該錯誤指示符或回應於該錯誤指示符,當該CEA欄位指示一機器核對例外狀況或一自動無效化中之每一者時可產生該機器核對例外狀況或可執行該自動無效化。
因此,對於同位模式下之一快取命中讀取操作,或當藉助EDC操作時,選擇邏輯60將庫0-7中之一者或多者中之經存取條目之輸出以及對應同位位元提供至輸出選擇邏輯37。對於ECC模式下之一快取命中讀取操作,選擇邏輯60將錯誤偵測與校正邏輯54之輸出提供至輸出選擇邏輯37。對於同位模式下之一快取命中寫入操作或同位模式下發生一快取未命中時所執行之一快取分配操作,將寫入資料直接提供至庫0-7中之一者或多者中之一條目,該條目由寫入操作存取位址定址。亦即,可對庫0-7中任一數目之庫執行一寫入,且保護儲存裝置45之對應條目中之對應同位位元亦在分享XOR樹52中產生之後在一每位元基礎上得到更新。以此方式,若由於該寫入操作僅向一個庫寫入,則僅更新保護儲存裝置45之對應條目中之一個位元。同位模式下對同位位元之更新可由控制邏輯66內之邏輯(未顯示)以一已知方式執行。
對於EDC模式下一全寫入操作,在該全寫入操作中對所有庫0-7寫入(亦即,其中對全快取資料欄位寫入),不需要執行一讀取-修改-寫入(RMW)操作。以此方式,可藉助一個或一單個存取(例如,在一單個處理器循環或一單個時鐘循環中)執行一全寫入操作(對記憶體儲存電路40之所有庫之一寫入)。在此情形下,將寫入資料提供至庫0-7之由全寫入操作存取位址定址之每一條目。亦將寫入資料提供至分享XOR樹52,該分享XOR樹產生對應核對位元且經由核對位元56將其提供至保護儲存裝置45以用於儲存於對應條目中。在一個實施例中,分享XOR樹52係組合邏輯,其中核對位元之產生及寫回可在與寫入資料至庫0-7之寫入相同之處理器或時鐘循環中完成。
對於EDC模式下之一部分寫入操作(其中對少於所有庫0-7寫入),需要一讀取-修改-寫入(RMW)。因此,執行對少於所有庫0-7(亦即,對少於全快取資料欄位寫入)之一寫入操作要求多個存取(例如,多個處理器循環或時鐘循環),且不能夠像一全寫入操作之情形藉助一單個存取來執行。由於實施該讀取-修改-寫入操作之複雜性,在一些實施例中可能不支持對少於所有庫0-7之寫入操作。
圖7以流程圖形式圖解說明根據本發明之一個實施例,用於操作圖1之資料處理系統10之一方法。該方法以區塊70開始,其中設定錯誤動作以執行自動校正且不執行任何報告(相對於上文相對於圖4所提供之CEA欄位之實例,在區塊70中可將該CEA欄位設定至一100控制值)。然後流程繼續進行至區塊72,其中執行一關鍵應用程式部分。在以最大透明度之情形下執行此關鍵應用程式部分,此乃因不報告任何錯誤(例如,不產生任何機器核對例外狀況)且不要求記錄錯誤。以此方式,錯誤偵測及校正功能對於處理器30係透明的。然後流程繼續進行至區塊74,其中設定錯誤動作以與報告一同執行自動校正(相對於上文相對於圖4所提供之CEA欄位之實例,在區塊74中可將該CEA欄位設定至一101控制值)。然後流程繼續進行至區塊76,其中執行具有最大可視度(亦即,最小透明度)之一診斷應用程式。在此情形下,由於該最小透明度,錯誤被校正,但當此等錯誤發生時處理器30藉由(例如)一機器核對例外狀況之產生而被告知。舉例而言,在一個實施例中,診斷應用程式可藉由變化供應電壓(VDD)、頻率、存取型樣等來強調操作限度參數。因此,藉由動態地改變該CEA欄位之值,可針對不同類型之應用程式達成各種透明度位準(亦即,對於處理器30之各種可視度位準)。舉例而言,在一個實施例中,可定義具有一第一部分(自時間0至一中間時間)及一第二部分(自該中間時間至時間X)之一時間間隔,如沿圖7之流程圖之左側所圖解說明。在一個實施例中,可重複此時間間隔以使得每一次重複該時間間隔時,在該時間間隔之一第一部分期間在最小可視度及最大透明度之情形下執行一關鍵應用程式部分,且在該時間間隔之一第二部分期間在最大可視度及最小透明度之情形下執行一診斷應用程式。因此,該CEA欄位之設定可用於一特定時間間隔內允許不同類型之應用程式之間透明度及錯誤動作之改變,然後可重複該特定時間間隔。
迄今為止應瞭解,已提供藉由回應於偵測到一快取中之一軟錯誤而動態地改變欲執行之錯誤動作來變化對於處理器30之透明度位準之一方法。舉例而言,此可藉由使用一暫存器內之一使用者可程式化控制欄位(諸如CEA欄位)來實現,可根據需要修改該欄位以更改所採取之錯誤動作。舉例而言,在執行不同類型之應用程式之前可更改錯誤動作以使得在偵測到快取中之軟錯誤時不同類型之應用程式涉及不同之透明度位準。因此,使用一控制欄位(諸如CEA欄位)可允許用以評估並克服軟錯誤之一撓性機制。
因實施本發明之裝置大部分係由熟習此項技術者所熟知之電子組件及電路構成,因此為了理解並瞭解本發明之基本概念且為不混淆或分散對本發明之教示內容,將不在任一較如上文所圖解說明被視為必要之更大程度上解釋電路細節。
如可適用,可使用各種不同資訊處理系統來實施上述實施例中之一些實施例。舉例而言,儘管圖1及其論述闡述一例示性資訊處理架構,但呈現此例示性架構僅用於在論述本發明之各種態樣時提供一有用參考。當然,出於論述之目的已簡化對該架構之闡述,且其僅係可根據本發明使用之諸多不同類型之適當架構中之一者。熟習此項技術者將認識到,邏輯區塊之間之界限僅係說明性的且替代性實施例可合併邏輯區塊或電路元件或將一功能性之替代性分解強加給各種邏輯區塊或電路元件。
因此,應理解,本文中所繪示之架構僅係例示性的,且實際上可實施達成相同功能性之諸多其他架構。在一抽象但仍明確意義上,用以達成相同功能性之任一組件配置有效地「關聯」以便達成所期望之功能性。因此,可將本文中經組合以達成一特定功能性之任何兩個組件視為彼此「相關聯」以便達成所期望之功能性,而不管架構或中間組件如何。同樣地,亦可將如此關聯之任何兩個組件視為「可操作地連接」或「可操作地耦合」至彼此以達成所期望之功能性。
亦舉例而言,在一實施例中,資料處理系統10之所圖解說明之元件係位於一單個積體電路上或同一器件內之電路。另一選擇為,資料處理系統10可包括任一數目之彼此互連之單獨積體電路或單獨器件。舉例而言,記憶體16可位於與處理模組12相同之一積體電路上或位於一單獨積體電路上或位於與資料處理系統10之其他元件離散地分離之另一周邊裝置或從裝置內。周邊裝置18及20亦可位於單獨積體電路或器件上。亦舉例而言,資料處理系統10或其部分可係實體電路或可轉換成實體電路之邏輯表示形式之軟表示形式或碼表示形式。因此,可以任一適當類型之硬體描述語言實現資料處理系統10。
此外,熟習此項技術者將認識到上文所闡述之操作之功能性之間的界限僅係說明性的。可將多個操作之功能性組合成一單個操作,及/或可將一單個操作之功能性分佈於額外操作中。此外,替代性實施例可包括一特定操作之多個例子,且在各種其他實施例中可更改操作次序。
本文中所闡述之所有或一些軟體可係(例如)自電腦可讀媒體(諸如記憶體16或其他電腦系統上之其他媒體)所接收之資料處理系統10之元件。此等電腦可讀媒體可以永久、可移除或遠端方式耦合至一資訊處理系統(諸如資料處理系統10)。該等電腦可讀媒體可包括(例如但不限於)任一數目之下列媒體:磁性儲存媒體,包括磁碟及磁帶儲存媒體;光學儲存媒體,諸如壓縮磁碟媒體(例如,CD-ROM、CD-R等)及數位視訊磁碟儲存媒體;非揮發性記憶體儲存媒體,包括基於半導體之記憶體單元(諸如快閃記憶體、EEPROM、EPROM、ROM);鐵磁數位記憶體;MRAM;揮發性儲存媒體,包括暫存器、緩衝器或快取、主記憶體、RAM等;及資料傳輸媒體,包括電腦網路、點對點電信設備及載波傳輸媒體,僅舉幾個例子。
在一個實施例中,資料處理系統10係一電腦系統(諸如一個人電腦系統)。其他實施例可包括不同類型之電腦系統。電腦系統係可經設計以供給一個或多個使用者獨立計算能力之資訊處置系統。電腦系統可以(包含但不限於)大型電腦、小型電腦、伺服器、工作站、個人電腦、筆記型電腦、個人數位助理、電子遊戲機、汽車用及其他嵌入式系統、蜂巢式電話及各種其他無線器件之諸多形式存在。一典型電腦系統包括至少一個處理單元、相關聯記憶體及若干個輸入/輸出(I/O)器件。
一電腦系統根據一程式來處理資訊且經由I/O器件產生所得輸出資訊。一程式係一指令列表,諸如一特定應用程式及/或一操作系統。一電腦程式通常內部儲存於電腦可讀儲存媒體上或經由一電腦可讀傳輸媒體被傳輸至電腦系統。一電腦處理程式通常包括一執行(運行)程式或一程式之一部分、當前程式值及狀態資訊以及由該操作系統用來管理該處理程式之執行之資源。一父代處理程式可卵生其他子代處理程式以幫助執行該父代處理程式之總功能性。具體而言,因該父代處理程式卵生該等子代處理程式以執行該父代處理程式之總功能性之一部分,因此有時可將由子代處理程式(及孫代處理程式等)執行之功能闡述為由該父代處理程式執行。
儘管本文參照具體實施例闡述了本發明,但可在不背離如下文申請專利範圍中所陳述之本發明之範疇之情形下做出各種修改及改變。舉例而言,可基於系統要求來修改用於位址欄位中之位元數目。相應地,應從一說明性而非一限定性意義上來看待本說明書及圖,且所有此等修改意欲包括於本發明之範疇內。本文相對於具體實施例所闡述之任何益處、優點或問題之解決方案非意欲被理解為任何或所有請求項之一關鍵、所要求或必須特徵或元件。
本文中所使用之術語「耦合」不意欲限於一直接耦合或一機械耦合。
此外,將本文所使用之術語「一」(「a」或「an」)定義為一個或多於一個。而且,在請求項中對諸如「至少一個」及「一或多個」之介紹性片語之使用不應理解為暗指在藉由不定冠詞「一」(「a」或「an」)來介紹另一請求項元件時係將含有此所介紹之請求項元件之任一特定請求項限制為僅含有一個此元件之發明,即使當同一請求項包括介紹性片語「一個或多個」或「至少一個」及諸如「一」(「a」或「an」)等不定冠詞時亦係如此。此同樣適用於定冠詞之使用。
除非另有說明,否則,諸如「第一」及「第二」等術語用於任意地區分此等術語所闡述之元件。因此,此等術語未必意欲指示此等元件之時間優先等級或其他優先等級。
以下係本發明之各種實施例。
項1包括一資料處理系統,該資料處理系統包括一處理器、耦合至該處理器之一快取及耦合至該快取之快取控制電路。該快取控制電路進一步包括一使用者可程式化錯誤動作控制暫存器,該使用者可程式化錯誤動作控制暫存器用於儲存用於在偵測到一快取錯誤時選擇複數個錯誤動作中欲採取之一者之一控制值,其中由一使用者選擇之該控制值之一第一值在不採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,且由該使用者選擇之該控制值之一第二值在採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,且其中該使用者動態地程式化確定欲採取之錯誤動作係一透明操作或是一不透明操作之控制值。項2包括項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值在不修改該快取之內容之情形下產生一例外狀況,該例外狀況准許記錄所偵測之錯誤且檢查該快取內之所儲存資訊以收集關於所偵測之錯誤之資訊。項3包括項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值在不使與所偵測之錯誤相關聯之資訊無效且不產生一例外狀況之情形下對所偵測之錯誤實施自動校正。項4包括項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值對所偵測之錯誤實施自動校正且產生一例外狀況。項5包括項1之資料處理系統,其中當在一時間間隔之一第一部分期間將該控制值設定至該第一值時,在快取錯誤對於該處理器透明之情形下執行一應用程式之一第一部分,且當在該時間間隔之一第二部分期間將該控制值設定至該第二值時,其中在快取錯誤對於該處理器可視之情形下執行該應用程式之一第二部分。項6包括項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值在含有快取錯誤之快取線係一淨快取線之情形下對該快取線實施一自動無效化,且在該快取線係一髒快取線之情形下產生一例外狀況且該快取線保持未更改。項7包括項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器進一步包括一第二控制值,該第二控制值控制該快取控制電路之錯誤偵測之啟用。
項8包括一方法,該方法包括將一處理器耦合至一快取,將快取控制電路耦合至該快取以用於對該快取內之資訊執行錯誤偵測,且將一使用者可程式化錯誤動作控制暫存器耦合至該快取控制電路。該使用者可程式化錯誤動作控制暫存器儲存用於在偵測到一快取錯誤時選擇複數個錯誤動作中欲採取之一者之一控制值,其中由一使用者選擇之該控制值之一第一值在不採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,且由該使用者選擇之該控制值之一第二值在採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,且其中該使用者動態地程式化確定欲採取之錯誤動作係一透明操作或是一不透明操作之控制值。項9包括項8之方法且進一步包括指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以在不修改該快取之內容之情形下產生一例外狀況,該例外狀況准許記錄所偵測之錯誤且檢查該快取內之所儲存資訊以收集關於所偵測之錯誤之資訊。項10包括項8之方法且進一步包括指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以在不使與所偵測之錯誤相關聯之資訊無效且不產生一例外狀況之情形下對所偵測之錯誤實施自動校正。項11包括項8之方法且進一步包括指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以對所偵測之錯誤實施自動校正且產生一例外狀況。項12包括項8之方法且進一步包括在一時間間隔之一第一部分期間將該控制值設定至該第一值,其中在快取錯誤對於該處理器透明之情形下執行一應用程式之一第一部分,且在該時間間隔之一第二部分期間將該控制值設定至該第二值,其中在快取錯誤對於該處理器可視之情形下執行該應用程式之一第二部分。項13包括項8之方法且進一步包括在該使用者可程式化錯誤動作控制暫存器中提供一第二控制值,該第二控制值控制該快取控制電路之錯誤偵測之啟用。項14包括項8之方法且進一步包括指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以在含有快取錯誤之快取線係一淨快取線之情形下對該快取線實施一自動無效化,且在該快取線係一髒快取線之情形下產生一例外狀況且該快取線保持未更改。
項15包括一資料處理系統,該資料處理系統包括一處理器、耦合至該處理器之一快取及耦合至該快取之快取控制電路。該快取控制電路執行錯誤偵測且進一步包括用於儲存用於在偵測到一快取錯誤時選擇欲採取之一錯誤動作類型之一控制值。項16包括項15之資料處理系統,其中該可程式化錯誤動作控制暫存器之控制值進一步包括准許處置對於該處理器透明之一快取錯誤之一第一值及准許藉由採取對於該處理器可視之一例外狀況來處置該快取錯誤之一第二值。項17包括項16之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值在不修改該快取之內容之情形下產生一例外狀況,該例外狀況准許記錄所偵測之錯誤且檢查該快取內之所儲存資訊以收集關於所偵測之錯誤之資訊。項18包括項16之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值在不使與所偵測之錯誤相關聯之資訊無效且不產生一例外狀況之情形下對所偵測之錯誤實施自動校正。項19包括項16之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值對所偵測之錯誤實施自動校正且產生一例外狀況。項20包括項16之資料處理系統,其中在一時間間隔之一第一部分期間將該控制值設定至該第一值,其中在快取錯誤對於該處理器透明之情形下執行一應用程式之一第一部分,且在該時間間隔之一第二部分期間將該控制值設定至該第二值,其中在快取錯誤對於該處理器可視之情形下執行該應用程式之一第二部分。
10...資料處理系統
12‧‧‧處理模組
14‧‧‧系統匯流排
16‧‧‧記憶體
18‧‧‧周邊裝置
20‧‧‧周邊裝置
21‧‧‧快取電路
22‧‧‧匯流排介面單元
23‧‧‧比較電路
24‧‧‧匯流排
25‧‧‧位址
26‧‧‧快取
27‧‧‧標籤
28‧‧‧記憶體
29‧‧‧索引部分
30‧‧‧處理器
31‧‧‧電路
32‧‧‧偏移部分
34‧‧‧命中_路[0:7]
36‧‧‧導體或信號
37‧‧‧輸出選擇邏輯
38‧‧‧快取控制電路
39‧‧‧導體或信號
40‧‧‧記憶體儲存電路
42‧‧‧庫0
43‧‧‧庫1
44‧‧‧庫7
45‧‧‧保護儲存裝置
48‧‧‧錯誤動作控制暫存器
50‧‧‧模式邏輯
52‧‧‧分享互斥或(XOR)樹
54‧‧‧錯誤偵測與校正邏輯
56‧‧‧核對位元
58‧‧‧症兆位元
60‧‧‧路0選擇邏輯
62‧‧‧模式指示符
66‧‧‧錯誤控制電路
本發明係以實例方式圖解說明且不受附圖限制,在附圖中相同參考符號指示類似元件。圖中之元件係出於簡單及明晰起見而圖解說明,而未必已按照比例繪製。
圖1以方塊圖形式圖解說明根據本發明一個實施例之一資料處理系統;
圖2以方塊圖形式圖解說明根據本發明之一個實施例,圖1之資料處理系統內之一快取之一部分;
圖3以圖表形式圖解說明根據本發明之一個實施例,用於與圖2之快取一同使用之一錯誤動作控制暫存器;
圖4及圖5以表格形式圖解說明根據本發明之一個實施例,對圖3之錯誤動作控制暫存器之各種欄位之闡述;
圖6以方塊圖形式圖解說明根據本發明之一個實施例,圖2之快取之一部分;及
圖7以流程圖形式圖解說明根據本發明之一個實施例,用於操作圖1之資料處理系統之一方法。
21...快取電路
23...比較電路
24...匯流排
25...位址
26...快取
27...標籤
29...索引部分
30...處理器
32...偏移部分
34...命中_路[0:7]
36...導體或信號
37...輸出選擇邏輯
38...快取控制電路
39...導體或信號
48...錯誤動作控制暫存器
66...錯誤控制電路

Claims (17)

  1. 一種資料處理系統,其包含:一處理器;一快取,其耦合至該處理器;及快取控制電路,其耦合至該快取,該快取控制電路執行錯誤偵測,該快取控制電路進一步包含一使用者可程式化錯誤動作控制暫存器,該使用者可程式化錯誤動作控制暫存器用於儲存用於在偵測到一快取錯誤時選擇複數個錯誤動作中欲採取之一者之一控制值,其中不論該快取線係髒或淨,由一使用者選擇之該控制值之一第一值在不採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,且不論該快取線係髒或淨,由該使用者選擇之該控制值之一第二值在採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,其中該使用者動態地程式化確定欲採取之錯誤動作係一透明操作或是一不透明操作之該控制值。
  2. 如請求項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值在不修改該快取之內容之情形下產生一例外狀況,該例外狀況准許記錄該所偵測之錯誤且檢查該快取內之所儲存資訊以收集關於該所偵測之錯誤之資訊。
  3. 如請求項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值在不使與該所偵測之錯誤相關聯之資訊無效且不產生一例外狀況之情 形下對該所偵測之錯誤實施自動校正。
  4. 如請求項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值對該所偵測之錯誤實施自動校正且產生一例外狀況,其中該快取控制電路藉由在含有該快取錯誤之該快取線上執行一錯誤校正碼(ECC)操作以校正該快取錯誤且自該快取輸出經校正之該快取線而實施自動校正。
  5. 如請求項1之資料處理系統,其中當該控制值在一時間間隔之一第一部分期間被設定至該第一值時,一應用程式之一第一部分係在快取錯誤對於該處理器透明之情形下執行,且當該控制值在該時間間隔之一第二部分期間被設定至該第二值時,其中該應用程式之一第二部分係在快取錯誤對於該處理器可視之情形下執行。
  6. 如請求項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內之該控制值之一第三值在含有該快取錯誤之該快取線係一淨快取線之情形下對該快取線實施一自動無效化,且在該快取線係一髒快取線之情形下一例外狀況被產生且該快取線保持未更改,以使得該快取線並未被無效化。
  7. 如請求項1之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器進一步包含一第二控制值,該第二控制值控制該快取控制電路之該錯誤偵測之啟用。
  8. 如請求項4之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內之該控制值之一第四值在含有該快 取錯誤之該快取線係一淨快取線之情形下對該快取線實施一自動無效化,且在該快取線係一髒快取線之情形下一例外狀況被產生且該快取線保持未更改,以使得該快取線並未被無效化。
  9. 如請求項8之資料處理系統,其中該使用者可程式化錯誤動作控制暫存器內之該控制值之一第五值在不使與該所偵測之錯誤相關聯之資訊無效且不產生一例外狀況之情形下對該所偵測之錯誤實施自動校正,其中該快取控制電路藉由在含有該快取錯誤之該快取線上執行一錯誤校正碼(ECC)操作以校正該快取錯誤且自該快取輸出經校正之該快取線而實施自動校正。
  10. 如請求項1之資料處理系統,其中當該控制值具有該第二值時,抑制經執行之一當前指令,且在該快取線之自動無效化之後及在處理經採取之該例外狀況之後,重新執行經抑制之該當前指令。
  11. 一種用於資料處理之方法,其包含:將一處理器耦合至一快取;將快取控制電路耦合至該快取以用於對該快取內之資訊執行錯誤偵測;及將一使用者可程式化錯誤動作控制暫存器耦合至該快取控制電路,該使用者可程式化錯誤動作控制暫存器儲存用於在偵測到一快取錯誤時選擇複數個錯誤動作中欲採取之一者之一控制值,其中不論該快取線係髒或淨,由一使用者選擇之該控制值之一第一值在不採取一例外 狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,且不論該快取線係髒或淨,由該使用者選擇之該控制值之一第二值在採取一例外狀況之情形下對含有該快取錯誤之一快取線實施一自動無效化,其中該使用者動態地程式化確定欲採取之錯誤動作係一透明操作或是一不透明操作之該控制值。
  12. 如請求項11之方法,其進一步包含:指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以在不修改該快取之內容之情形下產生一例外狀況,該例外狀況准許記錄該所偵測之錯誤且檢查該快取內之所儲存資訊以收集關於該所偵測之錯誤之資訊。
  13. 如請求項11之方法,其進一步包含:指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以在不使與該所偵測之錯誤相關聯之資訊無效且不產生一例外狀況之情形下對該所偵測之錯誤實施自動校正,其中實施該自動校正包含在含有該快取錯誤之該快取線上執行一錯誤校正碼(ECC)操作以校正該快取錯誤且自該快取輸出經校正之該快取線。
  14. 如請求項11之方法,其進一步包含:指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以對該所偵測之錯誤實施自動校正且產生一例外狀況。
  15. 如請求項11之方法,其進一步包含: 在一時間間隔之一第一部分期間將該控制值設定至該第一值,其中在快取錯誤對於該處理器透明之情形下執行一應用程式之一第一部分;及在該時間間隔之一第二部分期間將該控制值設定至該第二值,其中在快取錯誤對於該處理器可視之情形下執行該應用程式之一第二部分。
  16. 如請求項11之方法,其進一步包含:在該使用者可程式化錯誤動作控制暫存器中提供一第二控制值,該第二控制值控制該快取控制電路之該錯誤偵測之啟用。
  17. 如請求項11之方法,其進一步包含:若含有該快取錯誤之該快取線係一淨快取線則指派該使用者可程式化錯誤動作控制暫存器內該控制值之一第三值以對該快取線實施一自動無效化,且若該快取線係一髒快取線則產生一例外狀況且保持該快取線未更改,以使得該快取線並未被無效化。
TW098138874A 2008-11-18 2009-11-16 用於資料處理系統中之快取之可程式化錯誤動作 TWI486779B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/273,155 US8095831B2 (en) 2008-11-18 2008-11-18 Programmable error actions for a cache in a data processing system

Publications (2)

Publication Number Publication Date
TW201025019A TW201025019A (en) 2010-07-01
TWI486779B true TWI486779B (zh) 2015-06-01

Family

ID=42172909

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098138874A TWI486779B (zh) 2008-11-18 2009-11-16 用於資料處理系統中之快取之可程式化錯誤動作

Country Status (5)

Country Link
US (1) US8095831B2 (zh)
JP (1) JP5476391B2 (zh)
CN (1) CN102216904B (zh)
TW (1) TWI486779B (zh)
WO (1) WO2010059354A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522076B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Error detection and recovery in a shared pipeline
US20110320863A1 (en) * 2010-06-24 2011-12-29 International Business Machines Corporation Dynamic re-allocation of cache buffer slots
US9104583B2 (en) 2010-06-24 2015-08-11 International Business Machines Corporation On demand allocation of cache buffer slots
US8850260B1 (en) * 2010-09-22 2014-09-30 Western Digital Technologies, Inc. Programmable error handling
US8924817B2 (en) * 2010-09-29 2014-12-30 Advanced Micro Devices, Inc. Method and apparatus for calculating error correction codes for selective data updates
TWI463313B (zh) * 2012-04-17 2014-12-01 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
CN102662868B (zh) * 2012-05-02 2015-08-19 中国科学院计算技术研究所 用于处理器的动态组相联高速缓存装置及其访问方法
US20150248316A1 (en) * 2012-09-28 2015-09-03 Hewlett-Packard Development Company, L.P. System and method for dynamically selecting between memory error detection and error correction
US9021426B2 (en) 2012-12-04 2015-04-28 International Business Machines Corporation Streamlining hardware initialization code
US9230037B2 (en) 2013-01-16 2016-01-05 Sap Se Identifying and resolving cache poisoning
US9250998B2 (en) * 2013-11-26 2016-02-02 Qualcomm Incorporated Cache structure with parity-protected clean data and ECC-protected dirty data
US10379944B2 (en) * 2017-04-17 2019-08-13 Advanced Micro Devices, Inc. Bit error protection in cache memories
CN111221775B (zh) * 2018-11-23 2023-06-20 阿里巴巴集团控股有限公司 处理器、缓存处理方法及电子设备
US11816339B2 (en) * 2020-09-07 2023-11-14 Micron Technology, Inc. Selectable error control for memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060156130A1 (en) * 2004-12-09 2006-07-13 International Business Machines Corporation Self test method and apparatus for identifying partially defective memory
US20060248314A1 (en) * 2005-02-18 2006-11-02 Jeff Barlow Systems and methods for CPU repair
TWI293145B (en) * 2004-09-30 2008-02-01 Intel Corp Memory caching apparatus and method, computing system, and machine-accessible medium including data
US7328391B2 (en) * 2003-12-18 2008-02-05 Arm Limited Error correction within a cache memory

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
US5410668A (en) * 1992-09-23 1995-04-25 Amdahl Corporation Reconfigurable cache memory which can selectively inhibit access to damaged segments in the cache memory
EP0787323A1 (en) * 1995-04-18 1997-08-06 International Business Machines Corporation High available error self-recovering shared cache for multiprocessor systems
US6332181B1 (en) 1998-05-04 2001-12-18 International Business Machines Corporation Recovery mechanism for L1 data cache parity errors
US6901540B1 (en) * 1999-11-08 2005-05-31 International Business Machines Corporation TLB parity error recovery
US6622260B1 (en) * 1999-12-30 2003-09-16 Suresh Marisetty System abstraction layer, processor abstraction layer, and operating system error handling
US6950978B2 (en) 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US6725337B1 (en) 2001-05-16 2004-04-20 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
US6901532B2 (en) 2002-03-28 2005-05-31 Honeywell International Inc. System and method for recovering from radiation induced memory errors
US7634638B1 (en) * 2002-10-22 2009-12-15 Mips Technologies, Inc. Instruction encoding for system register bit set and clear
US7240277B2 (en) 2003-09-26 2007-07-03 Texas Instruments Incorporated Memory error detection reporting
US7290179B2 (en) * 2003-12-01 2007-10-30 Intel Corporation System and method for soft error handling
US7761774B2 (en) 2005-10-28 2010-07-20 Qualcomm Incorporated High speed CAM lookup using stored encoded key

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7328391B2 (en) * 2003-12-18 2008-02-05 Arm Limited Error correction within a cache memory
TWI293145B (en) * 2004-09-30 2008-02-01 Intel Corp Memory caching apparatus and method, computing system, and machine-accessible medium including data
US20060156130A1 (en) * 2004-12-09 2006-07-13 International Business Machines Corporation Self test method and apparatus for identifying partially defective memory
US20060248314A1 (en) * 2005-02-18 2006-11-02 Jeff Barlow Systems and methods for CPU repair

Also Published As

Publication number Publication date
JP5476391B2 (ja) 2014-04-23
US8095831B2 (en) 2012-01-10
CN102216904B (zh) 2014-08-27
JP2012509525A (ja) 2012-04-19
US20100125750A1 (en) 2010-05-20
TW201025019A (en) 2010-07-01
WO2010059354A3 (en) 2010-08-19
CN102216904A (zh) 2011-10-12
WO2010059354A2 (en) 2010-05-27

Similar Documents

Publication Publication Date Title
TWI486779B (zh) 用於資料處理系統中之快取之可程式化錯誤動作
US8145985B2 (en) Error detection schemes for a unified cache in a data processing system
US8266498B2 (en) Implementation of multiple error detection schemes for a cache
JP4395425B2 (ja) 破損データ値を処理するためのデータ処理装置と方法
US8131951B2 (en) Utilization of a store buffer for error recovery on a store allocation cache miss
KR102645481B1 (ko) 상위 계층 캐시의 항목을 기반으로 하위 계층 캐시로의 유입을 로깅함으로써 트레이스 기록
US8572441B2 (en) Maximizing encodings of version control bits for memory corruption detection
US20150100848A1 (en) Detecting and correcting hard errors in a memory array
US8291259B2 (en) Delete of cache line with correctable error
JP2005182749A (ja) キャッシュ・メモリおよびそのエラー訂正方法
JP2012103826A (ja) キャッシュメモリシステム
US8650437B2 (en) Computer system and method of protection for the system's marking store
US10387272B2 (en) Restore current version of a track from a non-volatile storage into a new location in cache
US9009411B2 (en) Flexible control mechanism for store gathering in a write buffer
US8775863B2 (en) Cache locking control
JP2005302027A (ja) 自律的エラー回復方法、システム、キャッシュ、およびプログラム・ストレージ装置(メモリ装置のための自律的エラー回復のための方法、システム、およびプログラム)
US8856587B2 (en) Control of interrupt generation for cache
US7395489B2 (en) Control system and memory control method executing a detection of an error in a formation in parallel with reading operation
US7689891B2 (en) Method and system for handling stuck bits in cache directories
US8924817B2 (en) Method and apparatus for calculating error correction codes for selective data updates
JP2021515308A (ja) デバイスをデバッグするときにメタデータにアクセスするための装置及び方法
US7747896B1 (en) Dual ported replicated data cache
JP2004062377A (ja) 共有キャッシュメモリ障害処理方式
CN103645964A (zh) 嵌入式处理器的高速缓存容错机制