TWI331340B - Repair bits for a low voltage cache - Google Patents

Repair bits for a low voltage cache Download PDF

Info

Publication number
TWI331340B
TWI331340B TW095147518A TW95147518A TWI331340B TW I331340 B TWI331340 B TW I331340B TW 095147518 A TW095147518 A TW 095147518A TW 95147518 A TW95147518 A TW 95147518A TW I331340 B TWI331340 B TW I331340B
Authority
TW
Taiwan
Prior art keywords
cache
bit
repair
location
repaired
Prior art date
Application number
TW095147518A
Other languages
English (en)
Other versions
TW200741728A (en
Inventor
Morgan J Dempsey
Jose A Maiz
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW200741728A publication Critical patent/TW200741728A/zh
Application granted granted Critical
Publication of TWI331340B publication Critical patent/TWI331340B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

1331340 Ο) 九、發明說明 【發明所屬之技術領域】 本發明係有關快取記億體之領域,尤係有關快取陣列 中之修復位置。 【先前技術】 提供快取的設計彈性,容許有各種容量及關聯性選 擇,同時維持快取在尋找/儲存所要求的成分之速度,此 種方式對使用快取的架構可能是相當有利的。然而,當處 理半導體技術時,省電成爲一個更爲優先的考慮因素,因 而經常造成性能受限或可靠性被犧牲。 於處理快取陣列時,省電的典型方法包括在比諸如處 理器、晶片組、或其他積體電路等的其餘裝置低的電壓下 運作快取陣列。較低的電壓仍然使快取陣列內的記憶位置 較容易發生軟錯誤(soft error ),亦即,造成錯誤的位元 翻轉(flipping ofbit)。此外,經常因設計、製造、或製 造後的事件而使快取內之位置永久性地受損,通常將此種 損害稱爲硬錯誤(hard error)。 傳統上,爲了修正硬錯誤,係以一備用的線取代包含 硬錯誤的一快取線。相反地,通常可以快取陣列採用的錯 誤修正碼(ECC )修正軟錯誤。ECC通常意指用來偵測且 可能找出並修正錯誤的邏輯。舉例而言,許多快取陣列使 用1位元的ECC以修正每一字元或快取線的單一位元錯 (2) (2)1331340 ν·請參閱第1圖,圖中示出一先前技術的快取 (1 00 )。快取記憶體通常只是一記憶體陣列;然而,也 可將快取記億體在實體上組織爲或在邏輯上被視爲具有複 數個快取線/字元,例如,快取線(1 〇 6 )至(1 1 3 )。此 外’快取的每一快取線中之每一位元或每一組位元在邏輯 上被視爲構成了一行,諸如行(1 1 5 ) 、 ( 116)、 (117)、及(118)。假設快取(100)包含1位元的 E C C,則可偵測並修正每一快取線的單一錯誤,例如,可 偵測並修正快取線(106)中之位元錯誤(130)、快取線 (109)中之位元錯誤(131)、以及快取線(in)中之 位元錯誤(1 3 2 )。 然而’當供應到快取(1 0 0 )的電壓降低到低於一臨 界電壓時’某些位元開始故障。因此,爲了確保快取 (1 00 )的可靠性,在諸如快取線(1 1 3 )等的快取線開始 有諸如位元錯誤(120)及(125)等的多個位元錯誤之 前’可只可將被供應到快取(1 00 )的電壓降低到臨界電 壓。因此,不能更進一步降低電壓,以便確保可靠性;然 而,此種方式所付出的代價是犧牲了省電。 【發明內容】 本發明中說明了一種用來修復快取記憶體/陣列之方 法及裝置。一快取包含複數條線、以及可在邏輯上於複數 個行中顯現。被耦合到該快取的一修復快取包含被映射到 每~可在邏輯上顯現的行之一修復位元。一修復模組根據 -5- (3) (3)1331340 任何個別因素或因素的組合而決定一行內將要被修復的一 損壞位元’該等因素諸如快取的每一條線之錯誤數目、快 取的每一條線中因錯誤修正碼(ECC)而可被修正的錯誤 數目、位元的故障率、或其他的考慮因素。於存取包含損 壞位元的一快取線時’被映射到包含該損壞位元的行之修 復位元以透通之方式修復該損壞位元。 【實施方式】 在下文中之詳細說明中’述及了諸如特定快取組織的 例子、快取配置、快取容量等的許多特定細節,以便提供 對本發明的徹底了解。然而,熟悉此項技術者當可了解, 無須採用這些特定的細節即可實施本發明。在其他的情形 中’並未詳述諸如錯誤修正、快取設計、及快取介面等習 知的組件或方法,以避免非必要地模糊了本發明。 本發明中述及的方法及裝置係用來修復快取記憶體/ 陣列。在一實施例中’係在諸如微處理器、嵌入式處理 器、單元處理器、或其他整數或浮點執行元件等的處理元 件上實施快取。然而,用來修復快取之方法及裝置並不受 此限制,這是因爲可在任何積體電路元件上或以與任何積 體電路元件相關聯之方式實施該等方法及裝置。 處理器的一實施例 第2圖示出一處理器(200),該處理器(200)包含 處理器邏輯(220)、快取(205)、修復快取(210)、 -6- (4) (4)1331340 以及修復模組(21 5 )。處理器邏輯(220 )可包含用來執 行指令或對資料執行運算的任何邏輯。在一實施例中,處 理器邏輯( 220 )包含用來以亂序及並行方式執行整數及 浮點資料運算之邏輯。舉另一個例子,處理器邏輯 ( 220 )包含用來作爲外部裝置的介面之介面邏輯、用來 對資料或指令進行提取及解碼之前端邏輯、用來協助以亂 序方式執行指令之亂序邏輯、以及用來執行指令及/或對 資料執行運算之至少一執行單元。 快取(205 )包含與處理器(200 )相關聯的任何快取 記憶體陣列’其中包括諸如第一階快取等的低階快取、諸 如追蹤快取或第二階快取等的中階快取、或諸如第三階快 取等的較高階快取。雖然係在處理器( 200 )中示出快取 ( 20 5 )、修復快取(2 1 0 )、以及修復模組(2 1 5 ),但 是可將該等組件中之每一組件整合在另一組件內,且可將 該等組件中之每一組件設置在處理器(200 )之外。舉例 而言,係在修復快取(2 1 0 )中實施修復模組(2 1 5 )。可 以硬體、軟體、韌體、或以上各項的任何組合實施諸如模 組(21 5 )等的任何模組。通常,在不同的實施例中,模 組邊界係有所不同,且係一起實施或分別實施故功能。修 復快取(210)係用來修復快取( 205 )中修復模組 (215)所決定的快取位置。下文中將參照第4a、4b、及 5圖而更詳細地說明修復快取(210)及修復模組 (215) (5) (5)1331340 快取的實體及邏輯組織 \|S參閱第3圖,圖中示出快取陣列(302)的組織。 通常將一快取組織爲一陣列。圖中係將快取陣列(3 02 ) 示爲一維陣列;然而,快取可以是多維的,且以任何方式 在實體上組織快取。快取在邏輯上仍然顯現爲具有複數個 集合(set )、路(way )、快取線/字元、行、及記億單 兀(cell) /位元。此外,快取位置(cache location)意 指分割一快取字元/快取線的任何分割程度 (granularity )。例如,一快取位置包含一單一位元,或 者在替代實施例中,一快取位置意指一組位元。快取 (3 02 )包括被用來作爲資料或指令的中間儲存單元的諸 如隨機存取記憶體(RAM )元件或靜態隨機存取記憶體 (SRAM )等之任何類型的記億體。 傳統上,有三種類型的被使用之快取組織:完全關聯 式(fully associative ) 、k 路集合關聯式(k-way set associative)、以及直接映射式(direct mapped)快取組 織。在完全關聯式快取中,係將主記憶體的任何快取線儲 存在任何快取條目,因而使快取的比較變得複雜。在集合 關聯式快取中,通常將快取在邏輯上分成一些路,其中來 自主記憶體的位置被儲存在每一路內之特定的位置,因而 簡化了快取查詢程序。每一路內可儲存一主記憶體記億位 置的內容之記憶位置通常在邏輯上被聚集在—起,且被稱 爲集合。直接映射式快取實際上是一路集合關聯式快取, 其具有可能儲存了具有共同定址屬性的複數個記憶位置的 -8- (6) (6)1331340 內容之一位置。 爲了簡化對一快取內之各列及行的說明,假設陣列 ( 302 )可在邏輯上顯現爲具有快取線/字元( 3 05 )、 (310)、及(315)之一單一路。快取線(305)、 (310)、及(315)中之每_快取線具有諸如位元 (306) 、(311)、及(316)等的複數個位元。實體圖 (300)示出在實體上被組織成一個一維陣列之該等快取 線。邏輯圖(3 5 0 )示出一列及行組態,其中快取線 ( 3 0 5 ) 、 ( 3 1 0 )、及(3 1 5 )是列,且該等快取線的相 同位置上之每一位元構成一行。舉例而言,行(320 )包 含來自快取線(305) 、 (310)、及(315)的位元 (306) 、 (311)、及(316) ° 舉另一個例子,陣列(3 02 )在邏輯上被組織成Μ列 及Ν行。通常,快取具有任何整數Μ個列,且在每一列 中具有係爲16的倍數之Ν個位元。然而,快取並不受此 限制,這是因爲 Μ及Ν可以是任何正整數。如前文所 述,可以與第3圖所示不同的方式而在實體上及邏輯上組 織一快取。事實上,將參照第5圖而示出並說明集合關聯 式快取。 修復快取之一實施例 然後請參閱第4a圖,圖中示出一快取( 405 )及一修 復快取(430)。快取(405)具有複數個也被稱爲快取 線、列、或元素的字元(406-4 1 3 )。如前文中參照第3 -9- (7) (7)1331340 圖所述的,字元(406-413 )中具有相同位置或在其各別 字元內具有相同偏移量之每一位元可在邏輯上顯現爲或在 上被組織爲一行。例如,行(4 1 5 )包含列(4 0 6 - 4 1 3 )中 之每一列內的第一位元,而行(415)包含快取線(4 06-4 1 3 )的第二位元。 如圖所示,快取(40 5 )包含諸如在位置(421 )、 (423)、及( 42 6-42 9)等的位置上之某些錯誤。這些錯 誤可能是硬錯誤、軟錯誤、或硬及軟錯誤的組合。硬錯誤 是因某些製造、硬體、或設計的缺陷而造成的位元或快取 位置故障之錯誤。軟錯誤亦可包括因製造缺陷而造成的可 預測之錯誤、以及諸如在低電壓供應下因宇宙射線造成的 位元翻轉(cosmic flipping of a bit)等的較不可能影響到 同一記憶位置兩次之隨機錯誤。快取(405 )亦示出被修 復的位置(426) 、 (427) 、 (428)、及(429)。下文 中將參照修復快取( 430 )而更詳細地說明被修復的位置 (426-429 ) ° 雖然圖中示出修復快取(430)係與快取(405)分離 且被耦合到快取(405 ),但是可不受此限制。事實上, 在一實施例中,係在快取(405)中實施修復快取 (43 0 )。修復快取(43 0 )包含複數個“路”》類似於被分 爲一些集合及路的快取組織機制,修復快取(430)中之 —路包含被映射到快取(405 )中之一行之至少一位元或 位置。作爲一簡化的例子,假設每一快取線的寬度是128 位元,則修復快取(430)包含128個路。請注意,修復 -10- (8) (8)1331340 快取(43 0 )並不需要有與快取(405 )中之位元的數目相 同之路的數目。舉例而言,一修復快取包含64個路,但 是與該修復快取相關聯的快取具有128位元的快取線寬 度。在該例子中’該修復快取的每一路係與該快取的兩個 行相關聯,或被映射到該快取的兩個行。在第4a圖所示 之例子中,修復快取(430)中之每一路具有1位元;然 而,如後續第5圖所示,修復快取(430)的每一路可替 代性地包含複數個位元。 使修復路/位元與快取的行相關聯 修復快取(430)內之路係與快取(405)中可在邏輯 上顯現的行/垂直條相關聯。爲了簡化,第4a圖示出修 復快取(430)中之每一路只有一位元,例如,第一路包 含位元(438),且第二路包含位元(436)。位元 (438)係與快取(405)的行(415)相關聯。在一實施 例中,行(41 5 )被直接映射到位元(43 8 )。因此,行 (415)內之錯誤被映射到位元(438),且被位元 (43 8 )修復。 在使用不同數目的路或在每一路中使用複數個位元之 一實施例中,可將其他習知的映射技術及取代演算法用來 使一路與一行相關聯。在一例子中,係將最近被使用的或 時間取代演算法用來選擇一修復位元來修復快取中之一錯 誤。下文中將參照第5圖而說明其他的例子。 可在任何模組中實施將一修復位元或修復路與快取中 -11 - (9) (9)1331340 之可在邏輯上顯現的一行相關聯。在一實施例中,係經由 硬體而使修復位元(438)與行(415)相關聯的,其中修 復位元(43 8 )係在實體上與位置參照到的行(415 )之位 址或一部分相關聯。在另一實施例中,係經由硬體及軟體 的組合而使修復位元(438)與行(415)相關聯。舉例而 言,係將參照到行(4 1 5 )中之該等位置的一實體位址或 —虛擬位址之一些特定位元用來使位元(438)與行 (415)相關聯。因此,當有一參照到這些特定位元的存 取時,將正確的修復位元( 43 8 )用來修復該位置。舉另 —個例子,當將修復位元( 43 8)用來修復行(415)中之 諸如被修復的位置(428)等的一位置時,一査詢表使修 復位元(43 8 )與行(415)及位置(428 )相關聯。 決定要修復的位置 對諸如快取(405 )等的快取內要被修復的一位置或 位元之決定或目標設定可基於任何數目的因素或考慮因 素。於決定要被修復的一位置或位元時,通常先決定一位 元或位置上是否有錯誤。如前文所述,快取(40 5 )示出 具有錯誤的一些記憶單元,例如,位元(421 )、 (422 )、及(423 )、以及位元(426-429 )。如前文所 述,錯誤( 421-423)以及(426-429)包括硬錯誤、軟錯 誤、或硬錯誤及軟錯誤的組合。較易於偵測硬錯誤,這是 因爲某些硬體或製造缺陷經常會持續性地誘發錯誤。然 而’軟錯誤通常較難以偵測,這是因爲某一次一位元或位 -12- (10) (10)1331340 置是有效的,但下一次存取該位元或位置時,卻發生了錯 誤。當被供應到快取的電壓降低到接近快取位置的臨界電 壓時,將使某些快取位置開始故障,因而尤其可能發生上 述的情形。 因此,對一位置或位元於開始時有一錯誤的決定亦可 根據一些因素。在一第一實施例中,將產生被翻轉的位元 或錯誤値的任何記憶單元決定爲一損壞位元或錯誤的位 元。在另一實施例中,係將一較不嚴格的策略用來偵測及 決定故障的位元。舉例而言,係將預測性故障分析用來決 定一位元是否有錯誤。此處,將追蹤一位元或位置的故障 次數(亦即,該位元的故障率)。在發生一預定的故障數 或一足夠高的故障率之後,將該該位元決定爲將要被修復 的一損壞位元或故障的位元。此種方式可避免一位元在發 生太多故障之後將該位元標示爲一故障的位元或錯誤位 元。可將其他習知的錯誤偵測方法(並未特別說明這些方 法’以便不會模糊了本發明)用來偵測及(或)識別損壞 的快取位置。 當將諸如位元( 42 1 -423 )及( 426-429 )等的複數個 位元視爲錯誤的或故障的位元時,則將一位元或複數個位 元當作將要被修復的目標。下文中將參照第5圖而更詳細 地說明對快取中之位元的修復。在一實施例中,係決定將 要被修復的最佳位元組態。如前文所述,係將諸如字元或 行中之位元位置、位元的故障率、位元故障率的預測性分 析、每一字元的錯誤數、每一字元中可被修正的錯誤數 -13- (11) (11)1331340 目、每一字元的最佳化錯誤修正、以及用來修正或修復快 取位置的其他習知考慮因素等的一些因素用來決定將要被 修復的最佳位元組態。於決定將要被修復的位元時,可個 別地考慮或以相互組合之方式考慮上述這些考慮因素中之 每一考慮因素。 舉一特定的例子,假設快取(405)實施單一位元的 錯誤修正碼(ECC)。因此,ECC可修正每一字元或列中 之1位元。如前文所述,單一快取線中有兩個損壞位元的 諸如一快取等的一部分將使該部分無法使用,這是因爲單 一位元的ECC無法修復成正確的資料。然而,使用修復 快取(430)時,可降低電壓,且可修復每一字元中之更 多的錯誤。在該例子中,快取線(409 )及(4 1 3 )分別具 有三位元的錯誤。因此,爲了將每一快取線的錯誤數目減 少到一可被修正的量(在本例子中實施的1位元ECC中 是1位元),修復該快取的快取線(409)及(413)中之 兩個位元。請注意,在行(416)中,修復位元(436)修 復該位元( 426 ),而不修復該位元(421)。係根據每一 字元的錯誤數以及每一字元的可被修正之錯誤數,而決定 將要被修復的目標爲位元( 426 )。更具體而言,如果替 代性地將修復位元(436 )用來修復該位元(421 ),則字 元( 409 )將有三個錯誤,而只能修復這三個錯誤中之一 個錯誤(亦即,位元(427 ))。因此,1位元的ECC將 無法修正兩個錯誤,且存取字元( 409 )時將會有故障。 在替代實施例中,如果快取(405 )實施了諸如X位 -14- (12) (12)1331340 元錯誤修正等的多位元修正ECC,則決定將要被修復的最 佳位元組態爲將快取(405 )的每一字元之錯誤數減少到 X個錯誤。更具體而言,如果實施了 2位元修正ECC,則 每一字元的錯誤修正之最佳化包括將每一字元的錯誤數減 少到2或更少。對將要被修復的位元之決定仍然亦可根據 前文所述之階層方式的考慮因素。在一實施例中,第一層 的考慮因素是將該快取的每一字元之錯誤數減少到兩個錯 誤。在對兩個位元的修復有相等的選擇時之第二層考慮因 素中,選將係根據其他的輔助因素。 爲了解說’請注意:行(417)中之位元(423)或位 元(429 )都是將將要被修復位元(43 9 )修復的候選位 元。在圖中示出的修復位元(439 )修復該位元(429 )的 實施例之替代實施例中,修復位元( 439)替代性地修復 位兀(423)。爲了補償該改變,修復位元(440)修復該 位元(441 )’使快取線(41 3 )中保持只有1位元的錯 誤。因此,爲了在位元(423 )及(429 )之間作出選擇, 將諸如故障率等的其他輔助考慮因素用來決定將要被修復 的位元。爲了進一步說明該例子,假設位元(429)故障 了 20次(75%的時間)且位元(423 )故障了 5次(20% 的時間)’則係根據故障次數或其故障率而選擇將要被修 復的位元。請注意,無須修復每一錯誤或位元,這是因爲 仍然可維持ECC可修正的錯誤數。 前文所述的這些實施例及例子純粹只是例示地展現 了 :快取(405)可實施多位元的ECC,或無須實施任何 -15- (13) (13)1331340 階層的ECC;且以任何習知的方法決定位元爲損壞位元/ 故障的位元,或根據任何數目的因素而決定將要被修復的 目標位元。 雖然係在修復快取( 430)中示出用來決定快取 (405)內將要被修復的位元之模組(450),但是可在快 取(405)、修復快取(430)、包含快取(405)及修復 快取( 430)的處理器、或以上各項的任何組合中實施模 組(450)。模組(450)包含用來決定快取(405)內將 要被修復的位元之任何硬體、軟體、韌體、程式碼、電 路、或以上各項之組合。可以硬體、軟體、韌體、或以上 各項之任何組合實施諸如模組(4 5 0 )等的任何模組。通 常,在不同的實施例中,模組邊界係有所不同,且係一起 實施或分別實施故功能。韌體通常意指用來執行某一功能 的硬體及軟體/微碼常式之組合。 在模組(450 )的一實施例中,係將其中包含ECC的 快取(405)中之邏輯用來決定哪些位元發生故障,同時 修復快取(430)中之韌體追蹤位元的故障次數及(或) 故障率,並根據每一字元的錯誤數及故障率而決定將要被 修復的那些目標位元。在另一實施例中,純粹與修復快取 (430 )相關聯的韌體只決定快取(405 )中將要被修復的 位元。 作爲模組(45 0 )的另一簡化例子,韌體追蹤快取 ( 405 )中之位元的故障。一韌體常式根據諸如每一字元 的錯誤數、每一字元的可被修正之錯誤數、故障率、以及 -16- (14) (14)1331340 其他考慮因素等的前文所述因素之任何個別因素或因素之 組合,而利用一演算法決定將要被修復的位元。此外,該 韌體儲存一查詢表,用以使下列各因素的任何組合相互關 聯:將要被修復的快取位置/位元、包含將要被修復的快 取位置/位元之快取線/字元、修復位置/位元、或包含 將要被修復的快取位置/位元之快取的行。如將於下文中 說明的,於存取快取時,查詢表可能有助於修復快取位 置° 修復快取位置 如前文中參照第4a圖所述的,諸如修復快取(430 ) 及修復模組(4 5 0 )等的修復快取或修復模組以諸如與包 含將要被修復的位元的快取(4 0 5 )中之行相關聯的修復 位元( 43 6-440 )等的修復位元修復諸如快取( 405 )等的 快取中之位元。以修復快取(430)中之一修復位元修復 快取(405)中之一位元的步驟包含下列步驟:以該修復 位元取代該將要被修復的位元;將待被儲存在該將要被修 復的位元之値儲存在該修復位元;提供取代該將要被修復 的位元的該修復位元之內容:或以其他方式協助修復該快 取記憶體中將要被修復的位元。 在一實施例中,使用一修復位元修復一快取中之一位 元的步驟包含下列步驟:決定對一快取的一要求是否參照 到包含將要被修復的一位元的該快取中之一字元;以及以 該修復位元中儲存的邏輯資訊取代將要自該快取中之該位 -17- (15) (15)1331340 元讀取的邏輯資訊。舉例而言,假設決定要被修復的位元 (428 )是將要被修復的目標位元。然後,將位元(428 ) 的內容複製到位元(43 8 ),或者在先前寫到快取線 (413)時,將待被儲存在位元(428)的內容儲存在位元 (43 8 )。因此,如果要求讀取快取線(4 1 3 ),則於執行 該讀取作業時,讀取修復位元(438)中儲存的邏輯値, 而修復該位元( 428 )。自一不同的觀點而論,要求該讀 取作業的元件自快取(405)接收其中包含來自修復位置 (438 )的位元(並非包含位置(428 )中儲存的位元,這 是因爲已決定位置( 428 )是具有可能錯誤的資訊之損壞 位置目標)的快取線(413)之內容。 在另一實施例中,使用一修復位元修復一快取中之一 位元的步驟包含下列步驟:決定對一快取的一要求是否參 照到包含將要被修復的一位元的該快取中之一字元;以及 將待寫到該快取中之該位元的邏輯資訊寫/儲存到該修復 位元。舉例而言,假設決定要被修復的位元(426 )是將 要被修復的目標位元。因此,如果有到字元(409 )的一 寫入作業,則將待寫到位元(426 )的値寫到修復位元 (436) ’而修復該位元(426)。自一不同的觀點而論, 要求寫入的元件寫到快取(405 )中之字元(409 ),且將 待寫到位置( 426 )的位元寫到修復位置( 436 ) » 如前文所述,自快取(405 )的觀點而論,修復快取 (43〇 )可以透通之方式工作,並以非以透通之方式工作 而作爲一中間元件。 -18- (16) (16)1331340 在一實施例中,修復快取( 43 0 )及相關聯的邏輯被 用來作爲存取快取(405 )的一元件與快取(405 )間之一 中間元件。在該實施例中,修復快取(430)將接收諸如 寫入及讀取要求等的所有要求,並於讀取及寫入作業期間 修復快取位置。例如,如果一元件要求自快取(405 )的 快取線(413)讀取,則修復快取(430)將攔截該要求, 並於執行該要求時,將快取線(4 1 3 )中包含取代位元 ( 428 )的修復位元(43 8 )以及取代位元(429 )的位元 (439 )之內容提供給提出要求的該元件。 然而,被用來作爲中間元件時,可能會減緩某些快取 存取時間。例如,於存取並無任何位元被修復快取 (430)修復的快取線(406)時,修復快取將沒有理由攔 截並轉送該要求。 因此,在另一實施例中,修復快取(430)以透通之 方式修復快取(405)中之位元。係以與前文所述例子不 同的方式示出修復快取(430)的透通式作業。於存取快 取線(413 )時,修復快取(430 )檢視該要求所參照的位 置’而非攔截該要求並轉送該要求。如果該要求是一讀取 要求’且參照到快取線(4 1 3 ),則於執行該要求時,自 快取(405)傳送出快取線(413)的內容,且修復快取 (430)以修復位元(438)取代快取位置(428),並以 修復位元(438)取代快取位置(429)。因而可了解,修 復快取(430)的作業對快取(405)實質上是透通的,這 是因爲快取(405)接收該要求並執行不受該修復快取對 -19- (17) 1331340 位元(42 8 )及(429 )的取代作業影響之該要求。此外, 於寫到快取線(413)時,寫入作業係以如同先前之方式 持續對快取(405 )進行,這是因爲所有的値係被寫到快 取(405 )。然而,針對快取位置(428 )及(429 )的値 也被寫到修復位置( 43 8 )及( 439 )。 如前文所述,在一實施例中,模組(4 5 0 )可追蹤快 取(405 )內之哪一位元將要被修復快取(430 )中之一修 φ 復位元修復。例如,在第4b圖所示查詢表(460)等的一 查詢表中,行(46 5 )中列出的修復位元係與其所要修復 . 的快取(405 )中之位元(係在行(470 )中被列爲對應的 . 條目)相關聯的。因此,當一存取參照到包含位置 (428)及(429)的快取線(413)時,藉由檢查查詢表 (460 ),即可決定位元(428 )及(429 )係爲將要被修 復的目標。此外,查詢表(460)包含將要以位元(438) 及(439)修復該等位元的資訊。 # 然而,模組(450 )並不限於第4b圖所示查詢表 (460 )之特定實施例。例如,該査詢表除了行(470 )中 列出的位元之外,或以取代行(470 )中列出的位元之方 ' 式’可包含快取線的位址參照。在另一實施例中,該表包 含修復快取(430)中所有的修復位元,且於將要修復一 位元時’設定一旗標位元,或寫入一對應的位元位置。在 替代實施例中’如第4b圖所示,當一修復位元將要修復 —損壞位置時,只在表(460)中產生條目。 舉另一個例子’假設模組(450 )決定快取(405 )中 -20- (18) (18)1331340 之位兀(426)是需要被修復的一位元。進一步假設:修 復模組(450 )因爲ECC已偵測到且韌體已偵測到位元 (426)具有高故障率,而決定修復位元(426)。此外, 包含位元(426)的快取線(409)有雨個其他的錯誤,且 只實施了 1位元的ECC。因此,模組(450)將快取線 (409)的起始位址及容量、位元(426)的位址 '修復位 元(436)的位址儲存在—表中,這是因爲修復位元 (436 )係與行(416 )相關聯。因此,於存取快取線 (409 )時’檢查該表’且決定參照到快取線(409 )。於 執行該要求時,模組(4 5 0 )以修復位元(4 3 6 )修復該位 元(426 )’這是因爲該等位元在該表中係與該快取線相 關聯。在一種修改方式中,係使多個快取位置及修復位元 與快取線相關聯。 舉例而言’上述例子顯現了修復模組(450 )及查詢 表(460 )的許多可能性。例如,利用硬體、軟體、韌 體 '或以上各項的組合’表(460 )爲了有助於快取位置 的修復可使下列各因素中之每一因素相互關聯:將要被修 復的快取位置/位元、包含將要被修復的快取位置/位元 之快取線/字元、修復位置/位元、或包含將要被修復的 快取位置/位元之快取的行。亦請注意,可儲存位址、位 址的參照、位址的一部分、或將要被相關聯的前述各項之 其他表示法。 系統中之修復快取的一實施例 -21 - (19) (19)1331340 請參閱第5圖,圖中示出具有被耦合到一記憶體 (561)的一微處理器(505)之一系統。雖然圖中並未示 出,但是可在記億體(561)與微處理器(505)之間耦合 —控制中心或其他的積體電路/元件。微處理器(505 ) 包含對資料進行操作並執行指令之任何邏輯或模組。如圖 所示,微處理器(505)包含快取(510)及修復快取 (550 )。微處理器(5 05 )亦可包含用來執行指令、對資 料進行操作、或與外部裝置通訊之其他處理邏輯。 在所示例子中,係將快取(510)示爲二路集合關聯 式快取;然而,亦可將快取(510)組織爲直接映射式快 取、關聯式快取、完全關聯式快取、集合關聯式快取、或 路關聯式快取。主記憶體陣列(561)在邏輯上被分成諸 如分頁(565-580)等的一些分頁。主記憶體(561)包括 諸如隨機存取記憶體(RAM )、靜態隨機存取記憶體 (SRAM)、動態隨機存取記憶體(DRAM )、或其他的主 記憶體元件等的任何記憶體組或陣列。 —主記憶體位址(5 66 )參照到諸如分頁(5 65 )內之 位置(566 )等的記憶體的分頁(5 65 )內之一位置。在位 址(566)內,有在分頁(565)內的每一位置中都是相同 之某些位元,也有指定分頁(565 )內之位置(566 )的偏 移値(亦即,分頁偏移値)之某些位元。通常將位址 (5 66 )中也被稱爲標記値的一部分(567 )用來將位置 (566 )映射到快取(510 )內之諸如集合(540 )等的一 集合。事實上,部分( 5 6 7 )可將分頁(565 )或分頁 -22- (20) 1331340 (5 6S _5 80 )中之每一分頁中具有相同偏移値之位 到一集合。集合(54〇)包含被位址的部分( 567) 的第一路(511)中之一快取線以及第二路(512) 快取線。因此,向主記憶體位置( 566 )要求時, 只需檢查集合(540 ),以便確認是否存在有記憶 (566)的複本。快取(510)中之每一路都包含Μ 線’其中每一快取線包含Ν個位元。在第5圖中, 及Ν分別示爲:每一路有8個快取線,且每一快φ 個位元。 如圖所示,修復快取(5 5 0 )被耦合到快取(5 修復快取(550)包含14個路,而快取(510)的 取線中之每一快取線的Ν個位元被分配到該修復快 路,其中該等路中之每一路係與該等Ν個位元中之 位元相關聯。如前文所述,在另一實施例中,係使 以實施一修復快取,其中每一路有兩個位元,且被 快取(510)的兩行。然而,如圖所示,修復快取 包含14路,每一路有兩個位元,且係與快取(510 行相關聯。例如,路(5 5 5 )包含位元(5 56 ) (5 5 7 ) ’且係與行(5 4 1 )相關聯。 在一實施例中,快取(510)實施ECC。舉例 快取(510)實施2位元的ECC,具有修正快取(5 之每一快取線的兩個位元之能力。快取線(521) 個故障的位元,亦即,位元(5 4 5 - 5 4 7 ),而兩 ECC無法修正該等所有三個故障的位元。因此 置映射 映射到 中之一 該快取 體位置 個快取 係將Μ 【線有7 ;1 0 ) ° Μ個快 取的1 至少一 用7路 映射到 (5 50 ) 丨)的一 及位元 而言, 1 〇 )中 包含三 位元的 ,與行 -23- (21) (21)
1331340 (5 4 1 )相關聯的路(5 5 5 )中之修復位 修復位元(545)。此外,快取線(522) 元。因此,路(555)中之第二個位元( ( 5 5 7 ))被用來修復快取位置( 548 ) ^ 修復快取(5 50 )也包含修復模組( 述,可以修復快取(550)、快取(5 (505 )、或以上各項的任何組合實施或 模組(560 )。修復模組(560 )使每一腾 快取記憶體的一行相關聯。在一實施例| 直接映射到行(541 )。在該例子中, (541)的直接映射包括路(555)中之僱 (541)中之位元。映射的一例子包括: (541)中之位元的位址之一部分與路 性,可經由比較邏輯、映射表、或其他常 技術而執行該關聯性建立。 修復模組(560 )亦決定各行中將要 如前文所述,修復模組(5 60 )根據最佳 (510)中將要被修復的位元。於決定最 修復的位元時,可利用演算法、軟體、硬 而考慮諸如位元的故障率、每一快取線的 取線中可被修正之錯誤數、所實施ECC 的修復位元數、修復某一行中之某一位元 取線或行中之另一位元所造成的影響、以 素等的任何數目之因素。在一實施例 元(5 5 6 )被用來 包含四個損壞位 亦即,修復位元 5 6 0 )。如前文所 1〇 )、微處理器 :在其中實施修復 ^及修復位元與該 ΐ,路(5 5 5 )被 路(555 )到行 纟復位元只修復行 建立用來識別行 (5 5 5 )間之關聯 :見的關聯性建立 被修復的位元。 組態而選擇快取 佳組態及將要被 ί體、或其他機構 |錯誤數、每一快 的類型、可使用 且不修復其他快 及其他的考慮因 J中,修復模組 -24- (22) (22)1331340 ( 560)根據上述的因素而動態地分析並重新決定將要被 修正的位元。 此外’修復模組(560 )修復已決定將要被修復的位 元。如前文所述,於讀取其中包含一損壞位元的一快取線 時’係自與該損壞位元所在的行相關聯之一修復位元讀 取,並於執行該讀取要求時取代該損壞位元。舉例而言, 假設處理器(505 )提出參照到主記憶體位址(566 )之一 讀取要求,而該位址被映射到集合( 540 )。快取(510) 包含在快取線(521 )中之主記憶體位址(566 )的複本。 修復模組( 560)決定位元( 545)將要被修復。舉例而 言’假設修復邏輯(560)先前已決定位元(545)是一故 障的位元,並在一表中產生一條目,以便建立將要被修復 位元(557)修復的該損壞位元(545)之關聯性》然後自 快取(510)讀出快取線(521)的內容,並以修復位元 (557)中儲存的値取代來自損壞位元(545)的値。最 後’微處理器(505)自快取(510)接收主記億體位址 (5 66 )的有效複本’這是因爲損壞位元(545 )的値已被 來自修復位元(557)的有效資訊取代。同樣地,於寫到 快取(5 1 0 )時,將要被寫到損壞位置(545 )的値係被寫 到修復位元(5 5 7 )。 修復快取位置之實施例 然後請參閱第6a圖,圖中示出修復快取位置的流程 圖之一實施例。在步驟( 605 )中,接收存取一快取之一 -25- (23) (23)1331340 要求,其中該要求參照到一第一快取線。如前文所述,一 要求可以一些方式參照到一快取線,該等方式包括:與該 快取線相關聯的一標記値、與該快取線相關聯的—實體位 址、與該快取線相關聯的一虛擬位址、被複製到該快取線 的一實體/虛擬主記憶體位址、或用來參照到快取的—字 元/快取線之任何其他常見的方法。 然後’在步驟(610)中’決定該快取線是否包含將 要被修復的一第一快取位置。在一實施例中,係將一查詢 模組用來決定該快取線是否包含將要被修復的一第一快取 位置。當決定一第一快取位置將要被修復時,產生或修改 該查詢模組中之一條目,以便使一修復位置與一快取位置 及/或包含該快取位置的一快取線相關聯。因此,於存取 時’檢查該查詢模組,以便確認該第一快取線是否包含將 要被修復的一第一位置。 在另一實施例中,係將一多層查詢模組用來先決定快 取線是否包含任何將要被修復的位置。可在該査詢模組中 列出其中包含將要被修復的位置的快取線之參照,而執行 上述決定。如果並無任何相符的快取線,則無須作進一步 的分析。如果有一快取線被列出/相符,則決定該快取位 置是否在該第一快取線內,或決定哪些快取位置將要被修 復。可以一些方式執行上述的決定,例如,查詢該查詢模 組中之資訊,或使用位址比較,以便決定該快取位置是否 在該快取線的位址範圍內。 可將其他的機構或模組用來決定該快取線是否包含將 -26- (24) (24)1331340 要被修復的第一快取位置。例如,韌體可儲存具有將要被 修復的位置的快取線之參照。若要得知與決定快取線是否 包含將要被修復的第一位置之更多的說明,請參閱前文中 之修復快取位置的一節。 在步驟(615)中,如果該第一快取線包含將要被修 復的第一快取位置,則於執行對存取該快取的要求時,利 用與該第一快取位置相關聯的修復快取位置修復該第一快 取位置。如前文所述,可經由其中包括查詢表的一模組建 立該第一快取位置之關聯性。在一實施例中,在一實施例 中,係經由將該修復快取位置映射到其中包含該第一快取 位置的可在邏輯上顯現之一行,而使該第一快取位置與該 修復快取位置相關聯。此處,該修復快取位置被直接映射 到該快取的一行,且於決定將要被修復該第一快取位置 時’使用被直接映射到包含該第一快取位置的該行之該修 復快取位置》 請參閱第6b圖,圖中示出以一修復快取位置修復該 第一快取位置的一流程圖之一特定實施例。在步驟 (616)中’於執行對該快取的寫入要求時,將待寫到該 第一快取位置的一邏輯値以透通之方式寫到與該第一快取 位置相關聯的修復快取位置。一例子包含:寫到一快取 線’其中該快取線具有一第一損壞位元。自該快取的觀點 而論’寫到該等快取線係如同正常般地發生。然而,如同 步驟(610)所示’當決定該寫入作業是寫到包含—損壞 位元的一快取線時,亦將待寫到該第一損壞位元的値寫到 -27- (25) (25)1331340 被映射到該快取中包含該第一損壞位元位置的一邏輯行之 —修復位元。 在步驟(617)中,於執行對該快取的讀取要求時, 自與該第一快取位置相關聯的修復快取位置讀取待自該第 一快取位置讀取的一邏輯値。繼續上述的例子,在步驟 (610)中,決定對該快取線的要求包含該第一損壞位元 位置。自該快取的觀點而論,係以執行一正常要求之方 式,讀取該快取線,且由該快取提供該快取線的內容。然 而,係自該修復位元位置讀取與該第一損壞位元相關聯的 修復位元中儲存的値,並取代來自該第一損壞位元位置的 値。因此,該快取正常地作業,而針對該損壞位元執行的 資料儲存及讀出係在該修復位元中進行。此種自快取的觀 點而論之觀點意指寫入/儲存以及讀取/取代的透通性, 這是因爲該快取正常地作業。 請參閱第7圖,圖中示出根據將要被修復的複數個位 元之最佳組態而修復一快取的一流程圖之一實施例。在步 驟( 705 )中,決定一快取中將要以一修復快取修復的複 數個位元之最佳組態。該修復快取包含被直接映射到該快 取的每一邏輯垂直條/行之修復位元。 如前文所述,該快取可具有被決定爲損壞位元的任何 數目之位元。因此,可根據任何數目的因素而作出對將要 被修復的位元之選擇。在一實施例中,爲了選擇最佳組 態,使用了一演算法,該演算法根據下列因素中之任一因 素或因素的組合而選擇將要被修復的位元之組態:位元的 -28- (26) (26)1331340 故障率、每一快取線的損壞位元數、每一快取線中可被修 正之損壞位元數、所實施ECC的類型、可使用的修復位 元數、以及修復某一垂直條中之某一位元且不修復其他快 取線或行中之另一位元所造成的影響。 在一實施例中,係動態地重新評估或動態地決定位元 之最佳組態。例如,假設根據一第一位元的故障率及其在 具有其他損壞位元的一快取線內之位置而決定該第一位元 將要被修復。然而,如果在不同的時間發生了狀況的改 變,則可能選擇同一垂直條內之另一位元作爲將要被修復 的第一位元,而不是選擇原先的第一位元。此種方式可讓 修復快取有最大的作業彈性,以便確保在改變的狀況下將 決定將要被修復的位元之最佳組態。 然後,在步驟(710)中,於存取該快取而參照到其 中包含一第一位元的該快取之一字元時,修復該快取的複 數個位元中被決定將要以被直接映射到包含該第一位元的 一邏輯垂直條的一修復位元修復之該第一位元。在一實施 例中,修復該複數個位元中之該第一位元之步驟包含下列 步驟:如果參照到包含該第一位元的字元而對該快取的存 取是一寫入作業,則將待被儲存在該第一位元的一値寫到 該修復位元。在另一例子中,修復該複數個位元中之該第 一位元之步驟包含下列步驟:如果參照到包含該第一位元 的字元而對該快取的存取是一讀取作業,則讀取該修復位 元中儲存的一値。 如前文所述,可將一修復快取用來增加在較低電壓下 -29- (27) (27)1331340 工作的快取之效率及正確性。快取先前會有低電壓的界 限,且不可將供應電壓降低到低於該電壓的界限,這是因 爲電壓過低時將會造成每一快取線有ECC無法修正的太 多錯誤。然而,藉由加入修復快取,即可修復快取的每一 邏輯行之錯誤,因而可降低供應電壓,且不會犧牲掉ECC 修正的錯誤數。此外,不需要修復快取內之每一錯誤。可 能只要修復足夠的錯誤,以確保可配合ECC修正的使用 而得到有效的資料。此外,可隨著時間的經過而動態地改 變所選擇將要被修正的/修復的位元,以便選擇修復位元 的最佳組態。因此,係在不犧牲快取記憶體的正確性之情 形下省電。 在前文的說明書中,已參照一些特定實施例而提供了 詳細說明。然而,顯然可在不脫離最後的申請專利範圍中 述及的本發明之廣義精神及範圍下,對本發明作出各種修 改及改變。因此,應將本說明書及圖式視爲舉例性而非限 制性。此外,前文中用到實施例及其他例示性的表達方式 時,並不必然意指相同的實施例或相同的例子,而是可能 意指不同的及有所區別的實施例,且也有可能是相同的實 施例。 【圖式簡單說明】 係以舉例之方式且將不爲附圖所限制之方式示出本發 明。 第1圖示出一先前技術的快取陣列之一實施例。 -30- (28) (28)1331340 第2圖示出其中包含一快取、一修復快取、以及一修 復模組的一處理器之一實施例。 第3圖示出一快取陣列的可在實體上及邏輯上顯現的 組織之實施例。 第4a圖示出用來修復一快取中之複數個錯誤的一修 復快取之一實施例。 第4b圖示出一查詢表之一實施例。 第5圖示出用來修復具有複數個集合及路的一快取陣 列中之錯誤的一修復快取之一實施例。 弟6a圖不出修復快取丨乂置的流程圖之一實施例。 弟6b圖不出用來修復快取位置的第6a圖所示的流程 圖之一特定實施例。 第7圖示出根據快取中將要被修復的複數個位元之最 佳組態而修復快取中之一位元的一流程圖之一實施例。 【主要元件符號說明】 100,205,405,510 :快取 106-113,521,522 :快取線 115-118,320,415,416,465,470,541 :行 1 30- 1 32 :位元錯誤 200 :處理器 220 :處理器邏輯 2 1 0,550 :修復快取 2 1 5,45 0,560 :修復模組 (29)1331340 3 02 :快取陣列 305,310,315,406-413 :快取線 / 字元 306,311,316,421-423,426-429,441 :位元 436-440,556,557:修復位元 460 :查詢表 5 0 5 :微處理器 5 6 1 :記憶體
565-580 :分頁 5 6 6 :位址 567 :部分 540 :集合 5 1 1 :第一路 5 1 2 :第二路 5 5 5 :路 5 4 8 :快取位置
-32-

Claims (1)

1331340 I ·
4 十、申請專利範圍 附件3 A : 第95 1 475 1 8號專利申請案 中文申請專利範圍替換本 民國99年6月28曰修正 1.一種修復記憶體位置之裝置,包含: 一快取,該快取可於複數個行中邏輯上顯現; # 一修復快取,包含複數個修復路,該複數個修復路中 之每一修復路僅與該複數個行中之一行相關聯;以及 . 一修復模組,該修復模組以一修復位元修復一目標位 元而該修復位元來自該複數個修復路中僅與包含該目標位 元之該複數個行的一目標行相關聯之一相對應的修復路。 2 .如申請專利範圍第1項之裝置,其中該修復模組根 據在該複數個行之間的最佳化錯誤修正而動態地決定將要 被修復的該目標位元。 # 3.如申請專利範圍第2項之裝置,其中該修復模組進 一步根據該目標位元的故障率而動態地決定將要被修復的 該目標位元。 # 4·如申請專利範圍第1項之裝置,其中該複數個修復 - 路中之每一修復路將包含一修復位元,且其中該複數個修 復路中之各個的該一修復位元將被直接映射到該複數個行 中之一行。 5.如申請專利範圍第1項之裝置,其中該複數個修復 路中之每一修復路將包含複數個修復位元,且其中係使用 1331340 —取代演算法來選擇該相對應修復路中之該修復位元以修 復該目標位元。 6. 如申請專利範圍第1項之裝置,其中該修復模組以 一修復位元修復該目標位元而該修復位元來自該複數個修 復路中與該目標行相關聯之一相對應的修復路,係包含: 決定一快取寫入是否參照到該複數個字元中包含該目 標位元之一快取字元;以及 將藉由該快取寫入而將寫到該目標位元之邏輯資訊寫 到該修復快取中之該修復位元。 7. 如申請專利範圍第1項之裝置,其中以一修復位元 修復該目標位元而該修復位元來自該複數個修復路中與該 目標行相關聯之一相對應的修復路,係包含: 決定一快取讀取是否參照到該複數個字元中包含該目 標位元之一快取字元;以及 以來自該修復快取中之該修復位元的邏輯資訊取代將 從該目標位元讀取的邏輯資訊。 8 ·如申請專利範圍第7項之裝置,其中以來自該修復 快取中之該修復位元的邏輯資訊取代將從該目標位元讀取 的邏輯資訊對該快取是透通的。 9·—種修復記憶體位置之系統,包含: —微處理器,該微處理器包含: 一快取,具有複數條線,其中該快取可於複數個 行中邏輯上顯現; 一修復模組,用以: -2- 1331340 使一修復位元僅與該複數個行中之第一行相 關聯; 決定該複數個行的一第一行中之將要被修復 的一第一位元:以及 於存取包含該第一位元之線時,以與該第一 行相關聯的該修復位元修復該第一位元;以及 一系統記憶體,包含被耦合到該微處理器的複數個元 # 件,其中該快取係用來儲存該複數個元件的內容之本地複 本。 1 0 ·如申請專利範圍第9項之系統,其中該微處理器 可進行平行亂序整數及浮點執行。 11.如申請專利範圍第9項之系統,其中該快取包含 自直接映射式快取 '集合關聯式快取、以及完全關聯式快 取所組成的一群組中選出之一組織。 1 2 ·如申請專利範圍第9項之系統,其中該修復模組 • 包含韌體’且其中係經由將修復位元直接映射到該複數個 行中之每一行而使修復位元與該複數個行中之每一行相關 聯。 13.如申請專利範圍第9項之系統,其中決定該複數 - 個行的一第一行中之將要被修復的一第一位元之步驟包 含: 追縱該第一位元之故障率; 決定包含該第一位元的線中之錯誤數;以及 根據該第一位元之故障率及包含該第一位元的線中之 -3- 1331340 錯誤數而決定將要被修復的該第一位元。 14.如申請專利範圍第9項之系統,其中於存取包含 該第一位元之線時’以與該第一行相關聯的該修復位元修 復該第一位元之步驟包含: 如果存取包含該第一位元之線是寫到包含該第一位元 之線’則將待儲存在該第一位元之一値儲存到與該第一行 相關聯的該修復位元;以及 如果存取包含該第一位元之線是自包含該第一位元之 線讀取,則以與該第一行相關聯的該修復位元中儲存的一 値取代將自該第一位元讀出的一値。 1 5 .如申請專利範圍第9項之系統,其中該系統記憶 體是自隨機存取記憶體(RAM )、雙倍資料速率(DDR ) 記憶體裝置、及靜態RAM ( S RAM )記憶體裝置所組成的 —群組中選出之一記憶體裝置。 16.—種修復記憶體位置之方法,包含: 接收存取一快取之一要求,該要求參照到一第一快取 線, 決定該第一快取線是否包含將要被修復的一第一快取 位置; 回應於決定該第一快取線包含將要被修復的該第一快 取位置: 決定在僅與包含該第一快取位置的第一路相關聯 之修復路之內的一修復快取位置;以及 於執行存取該快取之該要求時,從該修復快取位 -4- 1331340 置修復該第一快取位置。 I7·如申請專利範圍第16項之方法,其中存取該快取 之該要求是寫到該快取,且其中從該修復快取位置修復該 . 第一快取位置之步驟包含:於執行寫到該快取時,將待寫 到該第一快取位置之一邏輯値以透通之方式寫到該修復快 取位置。 18. 如申請專利範圍第16項之方法,其中存取該快取 • 之該要求是自該快取讀取,且其中從該修復快取位置修復 該第一快取位置之步驟包含:於執行自該快取讀取時,自 . 與該第一快取位置相關聯的該修復快取位置以透通之方式 _ 讀取將自該第一快取位置讀取的一邏輯値。 19. 如申請專利範圍第16項之方法,其中決定該第一 快取線是否包含將要被修復的一第一快取位置之步驟包 含: 回應於一查詢模組並未使該第一快取位置與該第一快 ® 取線相關聯,則決定該第一快取線並未包含將要被修復的 該第一快取位置;以及 回應於該查詢模組使該第一快取位置與該第一快取線 ' 相關聯,則決定該第一快取線包含將要被修復的該第一快 ' 取位置。 20. 如申請專利範圍第16項之方法’其中僅與包含該 第一快取位置的第一路相關聯之該修復路’係包括被電耦 合到該第一路的該修復路而非該快取的其他路。 21. 如申請專利範圍第20項之方法,其中該第一快取 -5- 1331340 位置是一第一位元,且該修復快取位置是一修復位元。 22·如申請專利範圍第20項之方法,其中該修復快取 位置係根據該第一和第二快取位置的動態故障率分析,而 從修復該第一快取位置動態地重新映射到該快取的該第一 路中之第二快取位置,以及最佳地將該第一快取線中的故 障快取位置數減少到可修正的故障快取位置數。 2 3.—種修復記憶體位置之裝置,包含: 一快取,包含複數條線和複數個行; 一修復模組,決定將以一修復快取修復的該快取中之 複數個目標位元之最佳組態,該修復快取包含一修復位 元’其直接映射到該快取的該複數個行之每一行,其中該 修復模組亦以將被直接映射到包含該目標位元的一行之修 復位元來修復該快取中之該複數個目標位元之一目標位 元,以回應於參照到包含該目標位元的該快取之一線對該 快取之存取。 24.如申請專利範圍第23項之裝置,其中該修復模組 決定將被修復的快取中之複數個目標位元之最佳組態,係 根據該快取之每一線的第一錯誤數減少至該快取之每一線 的可修正錯誤數。 2 5.如申請專利範圍第24項之裝置,其中該快取包含 二位元錯誤修正碼(ECC),且其中該快取之每一線的該 可修正錯誤數是二。 26.如申請專利範圍第23項之裝置,其中決定將被修 復的快取中之複數個目標位元之最佳組態,係根據該複數 -6- 1331340 個目標位元之故障率。 2 7 .如申請專利範圍第2 3項之裝置,其中修復該複數 個目標位元的目標位元,係包含: 將待被儲存在該目標位元之一値寫到被直接映射到包 含該目標位元的一行之該修復位元,以回應於參照到包含 該目標位元的該線之對該快取的存取是一寫入作業; 讀取被直接映射到包含該目標位元的該行之該修復位 元中儲存的一値,以回應於參照到包含該目標位元之該快 取的該線之對該快取的存取是一讀取作業。 2 8.如申請專利範圍第23項之裝置,其中該修復模組 係動態地決定在執行期間的該最佳組態。
TW095147518A 2005-12-30 2006-12-18 Repair bits for a low voltage cache TWI331340B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/322,988 US7647536B2 (en) 2005-12-30 2005-12-30 Repair bits for a low voltage cache

Publications (2)

Publication Number Publication Date
TW200741728A TW200741728A (en) 2007-11-01
TWI331340B true TWI331340B (en) 2010-10-01

Family

ID=37969617

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095147518A TWI331340B (en) 2005-12-30 2006-12-18 Repair bits for a low voltage cache

Country Status (5)

Country Link
US (2) US7647536B2 (zh)
CN (1) CN101379566B (zh)
DE (1) DE112006003381T5 (zh)
TW (1) TWI331340B (zh)
WO (1) WO2007078830A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287836B2 (en) * 1997-07-15 2007-10-30 Sil;Verbrook Research Pty Ltd Ink jet printhead with circular cross section chamber
US8145960B2 (en) * 2006-07-20 2012-03-27 Arm Limited Storage of data in data stores having some faulty storage locations
US8640005B2 (en) * 2010-05-21 2014-01-28 Intel Corporation Method and apparatus for using cache memory in a system that supports a low power state
US8533572B2 (en) 2010-09-24 2013-09-10 Intel Corporation Error correcting code logic for processor caches that uses a common set of check bits
US8856616B1 (en) * 2011-07-29 2014-10-07 Proton Digital Systems, Inc. Two dimensional encoding for non-volatile memory blocks
TWI594254B (zh) * 2012-07-17 2017-08-01 慧榮科技股份有限公司 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置
KR102024033B1 (ko) 2013-03-04 2019-09-24 삼성전자주식회사 이동 통신 시스템에서 메모리 제어 방법 및 장치
US9262263B2 (en) * 2013-11-25 2016-02-16 Qualcomm Incorporated Bit recovery system
US9959939B2 (en) * 2014-12-23 2018-05-01 Intel Corporation Granular cache repair
CN107329906B (zh) * 2017-05-10 2018-07-03 北京邮电大学 一种高带宽的多尺度故障位图缓存结构
US11151006B2 (en) 2018-07-02 2021-10-19 Samsung Electronics Co., Ltd. HBM RAS cache architecture
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
US11257543B2 (en) 2019-06-25 2022-02-22 Stmicroelectronics International N.V. Memory management device, system and method
US11360667B2 (en) 2019-09-09 2022-06-14 Stmicroelectronics S.R.L. Tagged memory operated at lower vmin in error tolerant system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006311A (en) * 1997-04-14 1999-12-21 Internatinal Business Machines Corporation Dynamic updating of repair mask used for cache defect avoidance
US5883904A (en) * 1997-04-14 1999-03-16 International Business Machines Corporation Method for recoverability via redundant cache arrays
US6055204A (en) * 1997-04-29 2000-04-25 Texas Instruments Incorporated Circuits, systems, and methods for re-mapping memory column redundancy
US6772383B1 (en) * 1999-05-27 2004-08-03 Intel Corporation Combined tag and data ECC for enhanced soft error recovery from cache tag errors
US6181614B1 (en) * 1999-11-12 2001-01-30 International Business Machines Corporation Dynamic repair of redundant memory array
US6802039B1 (en) * 2000-06-30 2004-10-05 Intel Corporation Using hardware or firmware for cache tag and data ECC soft error correction
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
US6552938B1 (en) * 2001-10-05 2003-04-22 International Business Machines Corporation Column redundancy system and method for embedded DRAM devices with multibanking capability
US7162669B2 (en) * 2003-06-10 2007-01-09 Hewlett-Packard Development Company, L.P. Apparatus and method for compressing redundancy information for embedded memories, including cache memories, of integrated circuits
US20060080572A1 (en) * 2004-09-30 2006-04-13 Fong John Y Set associative repair cache systems and methods
US20060156177A1 (en) * 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7447948B2 (en) * 2005-11-21 2008-11-04 Intel Corporation ECC coding for high speed implementation
US7912092B2 (en) 2006-12-27 2011-03-22 Sharp Laboratories Of America, Inc. Systems and methods for transmitting a transmission time interval signal with staggered reference signals

Also Published As

Publication number Publication date
US20070168836A1 (en) 2007-07-19
WO2007078830A3 (en) 2007-08-30
US7647536B2 (en) 2010-01-12
US8132061B2 (en) 2012-03-06
WO2007078830A2 (en) 2007-07-12
CN101379566B (zh) 2014-06-25
TW200741728A (en) 2007-11-01
CN101379566A (zh) 2009-03-04
US20100070809A1 (en) 2010-03-18
DE112006003381T5 (de) 2008-10-30

Similar Documents

Publication Publication Date Title
US8132061B2 (en) Repair bits for a low voltage cache
US9916116B2 (en) Memory access and detecting memory failures using dynamically replicated memory based on a replication policy
US8255742B2 (en) Dynamically replicated memory
CN102023815B (zh) 在固态存储器中实现raid
KR101374455B1 (ko) 메모리 에러와 리던던시
US7996710B2 (en) Defect management for a semiconductor memory system
US9229803B2 (en) Dirty cacheline duplication
US10198314B2 (en) Memory device with in-system repair capability
US20110026326A1 (en) Memory system including flash memory and method of operating the same
US20080181035A1 (en) Method and system for a dynamically repairable memory
EP3092649B1 (en) Real time correction of bit failure in resistive memory
CN116266472B (zh) 存储器装置交叉矩阵奇偶校验
CN116266473B (zh) 存储器装置交叉矩阵奇偶校验
US10481973B2 (en) Memory module with dedicated repair devices
US11782807B2 (en) Memory module with dedicated repair devices
US20080288813A1 (en) Method for repairing a neighborhood of rows in a memory array using a patch table
CN118412031A (zh) 存储装置
CN105027084A (zh) 在移动通信系统中控制存储器的装置和方法
US7958390B2 (en) Memory device for repairing a neighborhood of rows in a memory array using a patch table
CN117280315A (zh) 存储体保护
CN114783491A (zh) 存储器控制器及其操作方法、存储器系统
WO2025058678A1 (en) Memory repairs

Legal Events

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