TWI421679B - 錯誤校正裝置及方法 - Google Patents
錯誤校正裝置及方法 Download PDFInfo
- Publication number
- TWI421679B TWI421679B TW096103282A TW96103282A TWI421679B TW I421679 B TWI421679 B TW I421679B TW 096103282 A TW096103282 A TW 096103282A TW 96103282 A TW96103282 A TW 96103282A TW I421679 B TWI421679 B TW I421679B
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- memory
- error
- memory location
- status indicator
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
- G06F11/1052—Bypassing or disabling error detection or correction
-
- 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
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
本揭示內容關於錯誤控制方案,且更加明確地說,關於記憶體的錯誤控制方案。
諸如RAM、快閃記憶體、與硬碟機之記憶體裝置可含有儲存錯誤。此等錯誤可由該記憶體裝置之實體因素或其他因素產生。記憶體錯誤可導致持續從該記憶體裝置讀取錯誤資料,而頻繁或重複錯誤可造成裝置操作低落。
為降低記憶體儲存錯誤的影響,一裝置可運用錯誤校正技術。例如,一記憶體裝置可在該記憶體裝置中儲存記憶體位置的錯誤校正碼(ECC)資料。該ECC資料含有使該裝置能夠偵測錯誤的同位或其他資料。此外,該ECC資料可含有使該裝置能夠校正所偵測的錯誤的錯誤校正資料。
儘管記憶體錯誤校正技術可提升記憶體可靠性,然而該等技術亦會消耗裝置資源,例如電力與該裝置的回應時間。該等資源之消耗對於諸如可攜式或其他低電力裝置之部分應用並不十分理想。
為求能提升記憶體可靠性,部分裝置會運用一種方案,其中該記憶體係於一重設事件(例如,重設、開機、或其他事件)後以一預定資料序列履行,並根據此預定序列計算該記憶體的ECC資料。然而,此方案可在一重設事件後產生不需要的延遲,以及在該重設事件後產生不需要的電力消耗。就可攜式裝置(或頻繁經歷重設事件之裝置)而言尤其不希望此電力消耗。
因此,最好能提供一種可執行錯誤校正而又不會造成非必要裝置資源量之消耗的裝置。
本發明揭示係一種錯誤校正裝置及方法。該裝置包括一記憶體控制模組以取決於一狀態指示器之狀態停用對於一記憶體位置之錯誤處理。該狀態指示器可經設定使得在諸如一重設或開機事件之後,一旦該記憶體位置之有效錯誤校正與偵測資訊不可用時,停用錯誤處理。此外,該記憶體控制模組可在停用錯誤處理時使部分寫入請求提升成全部寫入請求,以確保該記憶體位置之有效錯誤偵測與校正資料係經過計算。藉由在有效錯誤偵測與校正資訊可用之前停用錯誤處理,可減少非必要或無效錯誤處理操作的數量,從而節省裝置資源。
參考圖1,所說明係處理裝置100。該處理裝置100包括一處理器102,其經由一第一介面103連接至一記憶體控制模組105。該裝置100進一步包括一揮發性記憶體108,其經由一第二介面107連接至該記憶體控制模組105。該記憶體108包括一資料區域110與一ECC區域112。該處理裝置100可為一ASIC、一單晶片系統(SOC)、積體電路、或其他裝置。此外,該處理裝置100可用於多種應用中,例如行動或可攜式裝置、汽車用裝置、或其他合適的裝置。該記憶體108可為RAM記憶體(包括DRAM或SRAM或其他RAM記憶體)或任何其他類型之揮發性記憶體。
於操作期間,該處理器102會將記憶體存取請求(例如,讀取與寫入請求)傳送至該記憶體控制模組105。該記憶體控制模組105會判定是否啟用與該記憶體存取請求相關聯之記憶體位置的錯誤處理,然後執行適當的動作。若啟用錯誤處理,則該記憶體控制模組105會執行適當的錯誤處理,例如一讀取請求的錯誤偵測與校正,或產生一寫入請求的同位資料與徵候群資料。若停用錯誤處理,則該記憶體控制模組105便不會執行此等功能。藉由僅在啟用此處理時執行錯誤處理,該裝置100可減少非必要的錯誤處理,從而節省電力、時間、或其他裝置資源。
例如,在該裝置100經重設或開機之後,該記憶體108之資料區域110中的資料係不確定的。據此,與該記憶體108相關聯的任何ECC資料(例如於該ECC區域112中所儲存之同位資料或徵候群資料)通常係隨機資料,並因此很可能為無效的。因此,該記憶體108上之錯誤校正或偵測操作在有效資料寫入至該記憶體108之前將很可能回覆錯誤結果。該記憶體控制模組105可藉由在有效資料寫入至該記憶體108之前,停用錯誤校正或錯誤偵測中的至少一者而減少非必要或無效錯誤處理操作的數量。
於所說明之具體實施例中,該記憶體控制模組105可執行對於各類型之記憶體存取請求(包括讀取請求與寫入請求)的錯誤處理。例如,在一讀取請求之情況下,若啟用對於與該讀取請求相關聯之記憶體108的部分之錯誤處理,則該記憶體控制模組105便會執行錯誤偵測以及(視需要)錯誤校正。
在一寫入請求之情況下,該請求可為一全部寫入請求或一部分寫入請求。一全部寫入請求係一能將資料寫入至一ECC資料單元之全部寬度(與一單一ECC徵候群值相關聯之記憶體的量)的請求,而一部分寫入請求係一能將資料寫入至小於一ECC資料單元之全部寬度的請求。例如,該記憶體控制模組105與該記憶體108可經配置以基於一64位元ECC資料單元執行錯誤偵測與校正。據此,於此範例中,一全部寫入操作係一64位元寫入操作,而32位元(字)、16位元(半字)、與8位元(位元組)寫入操作係部分寫入操作。
於一全部寫入請求之情況下,該記憶體控制模組105會計算與該寫入操作相關聯之資料的錯誤偵測資訊(例如,同位資料)與錯誤校正資訊(例如,徵候群資料)。該寫入控制模組105會將該錯誤偵測資訊與該錯誤校正資訊(以及與該寫入請求相關聯的資料)寫入至該記憶體108。
於一部分寫入請求之情況下,為能在啟用錯誤處理時計算一部分寫入操作的ECC資料,該寫入控制模組108或該處理器102可將一部分寫入請求轉換成一「讀取-修正-寫入操作」。在此操作下,若啟用錯誤處理,則讀取位於與該部分寫入請求相關聯之記憶體位址處的全部資料單元,且該記憶體控制模組105執行對於會在該全部資料單元的錯誤偵測與錯誤校正。例如,在一記憶體經配置以用於一64位元ECC資料單元之情況下,一記憶體位置之64位元係全部用於計算該ECC資料。該全部資料單元之適當部分隨後係由與該部分寫入操作相關聯之資料取代,並將該全部資料單元(含經取代的資料)寫入至該記憶體108。更新的錯誤偵測與校正值係基於含有該新部分寫入資料值之更新全部資料來計算。
或者,若停用錯誤處理,則該記憶體控制模組105可將一部分寫入請求提升成一全部寫入請求。依照本文中所運用的,提升一寫入請求係定義為將一部分寫入請求轉換成一全部寫入請求。於一項具體實施例中,將一8、16、或32位元部分資料寫入請求提升成一64位元全部資料寫入請求。此舉可以各種方式來完成。例如,該記憶體控制模組105可將一資料預定序列附加或插入與該部分寫入請求相關聯的資料,使得所轉換之資料與一全部ECC資料單元相稱。所轉換之資料隨後可寫入至該記憶體108。更新的錯誤偵測與校正值係根據含有所轉換寫入資料值之更新的全部資料單元來計算。
藉由將部分寫入請求提升成全部寫入請求,該資料的有效錯誤校正與偵測值係置放於該記憶體108中以供未來錯誤處理操作。據此,在該部分寫入請求提升成一全部寫入請求且該全部寫入請求之錯誤校正與偵測資訊係經計算並儲存之後,啟用與該寫入請求相關聯之記憶體位置的錯誤校正,同時亦可執行與該記憶體位置相關聯之後續記憶體存取請求的錯誤處理。
此外,藉由將部分寫入請求提升成全部寫入請求,並結合選擇性啟用錯誤處理操作,該記憶體控制模組105便可節省系統資源。例如,依照所解說的,在一裝置重設或開機事件之後,該記憶體108中的資料係不確定的且由於此等操作涉及一讀取功能與一寫入功能,故而該記憶體108上之錯誤處理將很可能會產生讀取與寫入存取的錯誤,尤其是在部分寫入操作的情況下。此外,由於每一記憶體位置係在執行對於該記憶體位置的一全部寫入或一提升的部分寫入操作時履行已知資料,故而該記憶體108便不需要在一重設或開機事件後直接以一已知的資料序列來預履行或初始化,從而節省時間與電力。
參考圖2,所描述係圖1之記憶體控制模組105的一特定具體實施例。依照所說明,該記憶體控制模組105包括一通訊模組202,其連接至該第一介面103與該第二介面107。此外,該通訊模組202係經由一第三介面210連接至一錯誤處理模組204;經由一第四介面212連接至一寫入控制模組206;以及經由一第五介面214連接至一記憶體狀態模組208。該等模組202、204、206、與208可實施成硬體、軟體、韌體、或其之任何組合。為作說明,該等模組202、204、與206之部分或全部可實施成邏輯以執行其之對應功能。
在操作期間,該記憶體控制模組105會執行錯誤處理與記憶體存取請求處理。為執行錯誤處理,該通訊模組202會經由該第一介面103從一處理器接收一記憶體存取請求。該記憶體存取請求通常包括與該請求相關聯之記憶體位置的一記憶體位址,並且在一寫入請求之情況下,能夠將酬載資料寫入至該記憶體。該通訊模組202會將該記憶體位址提供至該記憶體狀態模組208,其會判定是否啟用與該記憶體位址相關聯之特定記憶體位置的錯誤處理。
若停用與該記憶體存取請求相關聯之特定記憶體位置的錯誤處理,則該記憶體狀態模組208便會經由該通訊模組202,指示該錯誤處理模組204,關於該記憶體存取請求不應執行錯誤處理。該通訊模組202隨後會經由該第二介面107將該記憶體存取請求傳遞至該記憶體108(圖1)。
若啟用與該記憶體存取請求相關聯之特定記憶體位置的錯誤處理,則該記憶體狀態模組208便會指示該錯誤處理模組204,應進行錯誤處理。回應時,該錯誤處理模組204會利用來自該資料區域110的資料與來自記憶體108之ECC區域112的ECC資訊,執行適當的錯誤處理。例如,在一讀取請求情況下,該錯誤處理模組204會偵測讀取自該記憶體108之資料中的錯誤,並且視需要,校正該等錯誤以產生經錯誤校正的讀取資料。在一寫入請求之情況下,該錯誤處理模組204會根據與該寫入請求相關聯之酬載資料計算ECC資料,例如同位與徵候群資料。
在完成該錯誤處理之後,該通訊模組202會與該處理器102(圖1)及該記憶體108通訊以完成該記憶體存取請求。例如,在一讀取請求之情況下,該通訊模組202會將經錯誤校正之資料傳遞至該處理器。在一寫入請求之情況下,該通訊模組202會將該酬載資料與由該錯誤處理模組204所計算之ECC資料傳遞至該記憶體108。
藉由選擇性啟用錯誤處理,該記憶體控制模組105可降低非必要或不需要的錯誤處理量。例如,該處理器可停用錯誤處理以便能改善對記憶體存取請求的回應時間。需要快速記憶體回應之關鍵裝置操作便需要如此。於另一具體實施例中,可停用錯誤處理以便能減少電力消耗。例如,包含該記憶體控制模組105之裝置可包括一低電力狀態,其中頻繁的錯誤控制操作由於相關聯的電力消耗而並非所希望的。
此外,於一特定具體實施例中,該記憶體控制模組105可控制錯誤處理,使得對於一記憶體的某些部分啟用錯誤處理,而對於其他部分停用錯誤處理。此舉對各種情形相當有用。例如,可配置該記憶體控制模組105,使得對於一包括關鍵裝置資料之記憶體的部分啟用錯誤處理,而對於儲存較少關鍵資料之記憶體的部分停用錯誤處理。於另一具體實施例中,對於歷經頻繁錯誤或於不利操作條件下進行操作的記憶體部分啟用錯誤校正,而對於歷經較少操作錯誤之記憶體的其他部分停用錯誤處理。於另一具體實施例中,對於自發生一開機事件起所具內容即已初始化的記憶體部分啟用錯誤校正,而對於就尚未初始化之記憶體的其他部分停用錯誤處理。
進一步,該記憶體狀態模組208可隨時間改變一記憶體位置的錯誤處理狀態。例如,一特定記憶體位置在履行該記憶體位置的一寫入請求,並計算該記憶體位置的有效ECC資料之前可能停用錯誤處理。因此,該記憶體控制模組105可根據適當情況動態改變一記憶體的錯誤處理配置。
於另一特定具體實施例中,該記憶體狀態模組208可經由該通訊模組202從該處理器102接收一重設指示。回應該重設指示時,該記憶體狀態模組208可停用該等記憶體位置之全部或一部分之錯誤處理。此舉在一系統重設、開機、或其他重設事件之後可減少無效或非必要錯誤處理量。
除了錯誤處理之外,該記憶體控制模組105會執行寫入請求處理。該通訊模組202會經由該第一介面103從該處理器接收一寫入請求。該通訊模組202會將與該寫入請求相關聯之位址資料或酬載資料提供至該寫入控制模組206,其會判定該寫入請求是否為一全部寫入請求或一部分寫入請求。此舉可以各種方式來完成。例如,該寫入控制模組可根據該記憶體108之酬載資料大小與ECC資料大小的比較來加以判定。於另一具體實施例中,該判定可根據與該記憶體存取請求相關聯的位址。替代性具體實施例可以任何其他有關的方式來判定。
若該寫入請求係一全部寫入請求,則該寫入控制模組206向該通訊模組202指示出可處理該全部寫入請求,並且可將該酬載資料(連同ECC資料,不過此資料必須經過計算)寫入至該記憶體。
若該寫入請求係一部分寫入請求,則該寫入控制模組206查詢該記憶體狀態模組208以判定是否啟用與該請求相關聯之記憶體位置的錯誤處理。若啟用錯誤處理,則該寫入控制模組206可執行一讀取-修正-寫入操作以履行該部分寫入請求,而不需要提升該部分寫入請求。於該「修正」操作期間,使該等部分寫入資料值與由該讀取-修正-寫入操作之讀取操作所獲得之經錯誤校正的讀取資料合併,且接著於該讀取-修正-寫入操作之寫入部分期間以經修正之值來更新該記憶體位置。亦儲存從經修正之資料值計算得出的更新ECC資料。若停用錯誤處理,則該寫入控制模組206將該部分寫入請求提升成一全部寫入請求。該寫入控制模組206隨後可將該產生的全部寫入請求提供至該錯誤處理模組,以進行ECC資料的計算,並將與該產生的全部寫入請求相關聯之資料提供至該通訊模組202以便與該記憶體通訊。
藉由選擇性提升部分寫入請求至全部寫入請求,該寫入控制模組206可確保就所有類型之寫入請求而言有效或已知的資料係寫入至一特定的記憶體位置。該記憶體狀態模組208隨後可啟用對於該記憶體位置的錯誤校正。
參考圖3,所描述係圖2之記憶體狀態模組208的一特定具體實施例。該記憶體狀態模組208包括一記憶體狀態偵測模組302,其連接至該介面214並經由一介面306連接至一狀態指示器儲存組件304。該狀態指示器儲存組件304包括與對應之記憶體位置相關聯的一或多個狀態指示器。該狀態指示器儲存組件304可為一資料檔案、一狀態暫存器、一系列狀態旗標位元、或其他適當的狀態指示器。該等模組302與304可實施成硬體、軟體、韌體、或其之任何組合。為作說明,該等模組302與304中的一者或兩者可實施成邏輯以執行其之對應功能。
在操作期間,該記憶體狀態偵測模組302會經由該介面214接收記憶體狀態查詢。該記憶體狀態詢問包括指示與該詢問相關聯的一記憶體位置,例如記憶體位址或一根據記憶體位址的指示。在回應一詢問時,該記憶體狀態偵測模組302會存取該狀態指示器儲存組件304以判定是否啟用對於該記憶體位置的錯誤處理。該記憶體狀態偵測模組隨後可對指示是否啟用錯誤處理的詢問回覆一回應。
此外,該記憶體狀態偵測模組302可經由該介面214接收記憶體狀態改變請求。與該等記憶體狀態詢問相類似地,該等記憶體狀態改變請求可包括一記憶體位置指示器。在回應該記憶體狀態改變請求時,該記憶體狀態偵測模組302可存取狀態指示器儲存組件304以改變一或多個記憶體位置的錯誤處理狀態。例如,若該狀態指示器儲存組件304包括與一記憶體位置相關聯的一狀態旗標位元,則該記憶體狀態偵測模組可視情況設定或清理該位元,以啟用或停用該記憶體位置之錯誤處理。
此外,一記憶體狀態改變請求亦可與一個以上記憶體位置相關聯。據此,在回應一記憶體狀態改變請求時,該記憶體狀態偵測模組302便可啟用或停用記憶體之一區域的錯誤處理,或啟用或停用一整個記憶體裝置的錯誤處理。
參考圖4,所說明係圖2之寫入控制模組206的一特定具體實施例。該寫入控制模組包括一寫入大小偵測模組402,其經由一介面406連接至一寫入提升模組404。該寫入大小偵測模組402與該寫入提升模組404係各自連接至該介面212。該等模組402與404可實施成硬體、軟體、韌體、或其之任何組合。為作說明,該等模組402與404之部分或全部可實施成邏輯以執行其之對應功能。
在操作期間,該寫入大小偵測模組402會經由該介面212接收寫入請求。該寫入大小偵測模組402會判定一接收之寫入請求為全部或部分寫入請求。若該寫入請求係一部分寫入請求,則該寫入大小偵測模組402會命令該寫入提升模組404將該寫入請求提升至一全部寫入操作。在回應時,該寫入提升模組404會經由該介面212接收與該部分寫入操作相關聯的酬載資料。該寫入提升模組404隨後會將該部分寫入操作提升至一全部寫入操作,並經由該介面212回覆該產生的酬載資料。
參考圖5,所說明係一種處理一記憶體寫入請求之方法之一特定具體實施例的流程圖。於步驟502,一處理器或記憶體控制模組接收一重設指示。可在多種事件之後接收該重設指示,例如一開機事件、一裝置從一低電力狀態轉移至一作用中狀態、一重設事件、或其他適當的事件。
繼續進行至步驟504,該處理器或記憶體控制模組會設定複數個狀態指示器。此等狀態指示器可與複數個記憶體位置相關聯,並指示將停用該等記憶體位置之錯誤處理。藉由在該重設指示之後停用該等記憶體位置之錯誤處理,可減少非必要或不希望的錯誤處理。
移動至步驟506,於該記憶體控制模組或處理器接收一特定記憶體位置的一寫入請求。該寫入請求可包括該記憶體位置的一位址,以及欲寫入至該記憶體位置的資料。
於決定步驟508,該處理器或記憶體控制模組會判定所接收之寫入請求為部分或全部的寫入請求。若該請求為一全部寫入請求,則該方法會移至步驟522且該處理器或記憶體控制模組會計算該寫入請求的錯誤校正徵候群與同位資料。一般而言,該錯誤校正徵候群與同位資料係根據與該寫入請求相關聯的資料。該方法隨後會繼續進行至步驟524,且與該寫入請求相關聯之資料係寫入適當的記憶體位置。此外,於步驟526,計算的錯誤校正徵候群與同位資料係寫入與該記憶體位置相關聯的一錯誤校正區域。該錯誤校正資料可寫入同一記憶體裝置以作為該寫入請求資料或寫入一不同裝置。該方法隨後繼續進行至步驟528,並清理與該記憶體位置相關聯的狀態指示器。此使得對該記憶體位置的接續寫入操作能夠進行寫入校正。
回到決定步驟508,若該寫入請求係一部分寫入請求,則該方法會繼續進行至決定步驟510且該處理器或記憶體控制模組會判定與該寫入請求相關聯之記憶體位置的狀態指示器是否已設定。若該狀態指示器已設定,則表示將停用錯誤處理,該方法便移至步驟512,而該處理器或記憶體控制模組停用該記憶體位置之錯誤偵測與校正。該方法移至步驟514,且該處理器或記憶體控制模組會將該部分寫入請求提升至一全部寫入請求。藉由將該部分寫入請求提升至一全部寫入請求,可計算該相關聯記憶體位置之有效錯誤處理資料,並使有效錯誤處理能夠用於未來的記憶體存取請求。該方法繼續進行至步驟522,並計算由提升該部分寫入請求所產生之全部寫入請求的錯誤校正資料。
回到步驟510,若判定該狀態指示器未設定,則表示啟用錯誤處理,該方法便移至步驟516以開始一讀取-修正-寫入操作。於步驟516讀取與該寫入請求相關聯之記憶體位置處的資料。於步驟518,視需要偵測並校正該讀取資料中的錯誤。於步驟520,該讀取資料之適當部分係由與該部分寫入請求相關聯的資料取代。該方法移至步驟522以計算由該讀取-修正-寫入操作產生之資料的錯誤校正徵候群與同位資料。從步驟522起,該方法繼續進行步驟524,並執行該等先前所說明的操作。
參考圖6,所說明係一種處理一讀取請求之方法之一特定具體實施例的流程圖。於步驟602,在一處理器或記憶體控制模組接收一記憶體位置之讀取請求。該讀取請求可包括與該記憶體位置相關聯之一位址,以及該讀取請求為一部分讀取請求或全部讀取請求的一指示。隨後獲得該記憶體位置資料。
移至決定步驟604,該處理器或記憶體控制模組會判定與該記憶體位置相關聯之一狀態指示器是否已設定。該狀態指示器係用以判定是否將啟用該記憶體位置之錯誤處理。
若判定該狀態指示器係未設定,則該方法會移至步驟606,並執行錯誤偵測與校正。該錯誤偵測可根據與該記憶體位置相關聯的同位資料,而錯誤校正可運用與該記憶體位置相關聯的錯誤徵候群資料來執行,或錯誤偵測與校正可以任何其他替代性方式來執行。該方法會繼續進行至步驟610,且對該裝置回覆該錯誤校正資料以產生該讀取請求。
回到決定步驟606,若判定該記憶體位置的狀態指示器係未設定,則該方法會移至步驟608,且停用該記憶體位置之錯誤偵測與校正。該方法會移至步驟610,並對該請求裝置回覆該讀取資料。
熟悉本技術人士將瞭解,就圖5與6所討論之狀態指示器的設定狀態並不限於任何特定的儲存值。例如,任何值(包括邏輯「1」或「0」)可用以指示一設定狀態而不致脫離本揭示內容的範疇。
參考圖7,所說明係圖1之裝置100的一替代性具體實施例。依照所說明的,圖7中所說明之記憶體108包括一狀態指示器儲存組件702。該狀態指示器儲存組件702包括複數個狀態指示器以指示將啟用或停用該記憶體108之資料區域110中之對應記憶體位置的錯誤處理。該記憶體控制模組可存取該狀態指示器儲存組件702以判定是否啟用或停用從該處理器102所接收之一記憶體存取請求的錯誤處理。
據此,依照圖5中所說明的,用以啟用或停用該記憶體108之錯誤處理的狀態指示器可儲存於該記憶體本身,而非該記憶體控制模組105。
依照所解說的,本文中所揭示係錯誤校正的裝置與方法。其中一種方法包括判定與該第一記憶體位置相關聯之一第一錯誤校正狀態指示器的狀態,並在回應判定該第一錯誤校正狀態指示器係處於一第一條件時停用對該第一記憶體位置之存取請求的錯誤校正、錯誤偵測或其之任何組合。
就一特定方面而言,該方法包括,在回應判定該錯誤校正狀態指示器係處於一第二條件時,啟用對於該第一記憶體位置之存取請求的錯誤偵測或錯誤校正中的至少一者。
就另一特定方面而言,該存取請求係一部分寫入操作,而該方法進一步包含使該部分寫入操作提升成一全部寫入操作。就又另一特定方面而言,該方法包括計算該第一全部寫入操作的錯誤校正資訊。就另一特定方面而言,該方法包括在提升該第一部分寫入操作之後將該第一錯誤校正狀態指示器改變成一第二條件。
就一特定方面而言,該第一存取請求係一部分寫入操作,而該方法包括,在回應判定該錯誤校正狀態指示器係處於一第二條件時,執行該第一記憶體位置的錯誤校正或錯誤偵測並藉由將資料寫入至該第一記憶體位置之一部分來執行該第一部分寫入操作。
就另一特定方面而言,該方法包括接收一重設指示並回應接收該重設指示將該錯誤校正狀態指示器置於該第一條件。就又另一特定方面而言,該第一記憶體位置係併入於一第一裝置中,且其中在回應該裝置從一低電力模式轉換成一作用中模式時接收該重設指示。
就一特定方面而言,該方法包括接收與一第二記憶體位置相關聯的一第二存取請求,並判定與該第二記憶體位置相關聯之一第二錯誤校正狀態指示器的狀態,同時,在回應判定該第二錯誤校正狀態指示器係處於一第一條件時,停用對該第二記憶體位置之存取請求的錯誤校正、錯誤偵測、或其之任何組合。
就另一特定方面而言,該第一全部寫入操作係對於與該第一記憶體位置相關聯之一錯誤校正資料單元的一全部寬度予以執行。
一種揭示之裝置包括一記憶體,其包括一第一記憶體位置。該第一記憶體位置包括一資料區域與一錯誤校正區域。該裝置進一步包括:與該第一記憶體位置相關聯的一第一狀態指示器;耦合至該記憶體的一錯誤校正模組。該錯誤校正模組能夠執行與該第一記憶體位置相關聯的錯誤校正。該裝置亦包括一存取控制模組,該存取控制模組包括耦合至該第一狀態指示器的一第一輸入及耦合至該錯誤校正模組的一輸出。回應該第一狀態指示器係處於一第一狀態,該存取控制模組停用對於該第一記憶體位置之錯誤校正、錯誤偵測、或其之任何組合中的一者。
就一特定方面而言,回應該第一狀態指示器係處於該第一狀態,該存取控制模組使與該第一記憶體位置相關聯的一第一部分寫入操作提升成一全部寫入操作。
就另一特定方面而言,該存取控制模組進一步包含一第二輸入以接收一重設信號,且其中該存取控制模組回應接收該重設信號而使第一狀態指示器置入該第一狀態。
就又另一特定方面而言,該錯誤校正模組計算與該全部寫入操作相關聯的錯誤校正資料。
就一特定方面而言,該第一狀態指示器係與該第一記憶體位置相關聯的一狀態旗標位元。
另一種揭示之方法包括:判定與該第一記憶體位置相關聯之一第一錯誤校正狀態指示器的狀態;以及回應判定該錯誤校正狀態指示器係處於一第一條件,將與該第一記憶體位置相關聯之第一部分寫入操作提升成一第一全部寫入操作。
就一特定方面而言,該方法包括在處理該第一部分寫入操作期間停用錯誤偵測或錯誤校正中的至少一者。
就另一特定方面而言,該方法包括接收一重設指示並回應接收該重設指示將該錯誤校正狀態指示器置於該第一條件。
就又另一特定方面而言,該方法包括計算該第一全部寫入操作的錯誤校正資訊。
就一特定方面而言,該方法包括除了提升該第一部分寫入操作之外將該第一錯誤校正狀態指示器改變成一第二條件。
儘管本發明之原理已於上文中結合特定設備加以說明,然而應清楚瞭解此說明僅為舉例,而非作為對本發明之範疇的限制。
100...處理裝置
102...處理器
103...第一介面
105...記憶體控制模組/寫入控制模組
107...第二介面
108...記憶體
110...資料區域
112...ECC區域
202...通訊模組
204...錯誤處理模組
206...寫入控制模組
208...記憶體狀態模組
210...第三介面
212...第四介面
214...第五介面
302...記憶體狀態偵測模組
304...狀態指示器儲存組件
306...介面
402...寫入大小偵測模組
404...寫入提升模組
406...介面
702...狀態指示器儲存組件
熟悉本技術人士可藉由參考隨附圖式可更加瞭解本揭示內容,並明白其之多種特徵與優勢。
圖1係說明運用一錯誤校正方案之一處理裝置的一特定具體實施例;圖2係說明圖1之記憶體控制模組的一特定具體實施例;圖3係說明圖2之記憶體狀態模組的一特定具體實施例;圖4係說明圖2之寫入控制模組的一特定具體實施例;圖5係一種處理一記憶體寫入存取請求之方法的流程圖;圖6係一種處理一記憶體讀取存取請求之方法的流程圖;以及圖7係說明圖1之處理裝置的一替代性具體實施例。不同圖式中所使用的相同參考符號代表相似或相同的項目。
103...第一介面
105...記憶體控制模組/寫入控制模組
107...第二介面
202...通訊模組
204...錯誤處理模組
206...寫入控制模組
208...記憶體狀態模組
210...第三介面
212...第四介面
214...第五介面
Claims (20)
- 一種用於錯誤校正之方法:判定與一第一記憶體位置相關聯之一第一錯誤校正狀態指示器的一條件;以及在回應判定該第一錯誤校正狀態指示器係處於一第一條件時,停用對於該第一記憶體位置之一第一存取請求的錯誤處理,其中錯誤處理係選自由錯誤偵測與錯誤校正組成的一群組,其中該停用包含無須執行錯誤處理而回應該第一存取請求。
- 如請求項1之方法,其進一步包含:在回應判定該第一錯誤校正狀態指示器係處於一第二條件時,啟用對於該第一記憶體位置之該第一存取請求的錯誤處理。
- 如請求項1之方法,其中該第一存取請求係一部分寫入操作用以請求將被寫入的一第一大小之資料,並且進一步包含:將該部分寫入操作提升成一全部寫入操作以回應判定該第一錯誤校正狀態指示器在該第一條件,該全部寫入操作請求將被寫入的一第二大小之資料。
- 如請求項3之方法,其進一步包含:計算該全部寫入操作的錯誤校正資訊。
- 如請求項3之方法,其中該第二大小係與該第一記憶體位置相關聯之一錯誤校正資料單元的一全部寬度。
- 如請求項3之方法,其進一步包含: 在提升該部分寫入操作之後,將該第一錯誤校正狀態指示器改變成一第二條件。
- 如請求項1之方法,其中該第一存取請求係一部分寫入操作,並且進一步包含:在回應判定該第一錯誤校正狀態指示器係處於一第二條件時:執行該第一記憶體位置的錯誤校正或錯誤偵測;以及藉由將資料寫入至該第一記憶體位置之一部分來執行該部分寫入操作。
- 如請求項1之方法,其進一步包含:接收一重設指示;以及回應接收該重設指示,將該第一錯誤校正狀態指示器置於該第一條件。
- 如請求項8之方法,其中該第一記憶體位置係併入於一裝置中,且其中在回應該裝置從一低電力模式轉換成一作用中模式時接收該重設指示。
- 如請求項1之方法,其進一步包含:接收對一第二記憶體位置的一第二存取請求;判定與該第二記憶體位置相關聯之一第二錯誤校正狀態指示器的狀態;在回應判定該第二錯誤校正狀態指示器係處於該第一條件時,停用對於該第二記憶體位置之該第二存取請求的錯誤處理。
- 一種用於錯誤校正之裝置,其包含: 一記憶體,其包括一記憶體位置,該記憶體位置包含:一資料區域;以及一錯誤校正區域;一狀態指示器,其與該記憶體位置相關聯;一錯誤校正模組,其耦合至該記憶體,該錯誤校正模組能夠執行與該記憶體位置相關聯的錯誤校正;以及一存取控制模組,其包含耦合至該狀態指示器之一第一輸入與耦合至該錯誤校正模組之一輸出,該存取控制模組在回應該狀態指示器係處於一預定條件時,停用該記憶體位置的錯誤處理,其中錯誤處理係選自由錯誤偵測與錯誤校正組成的一群組。
- 如請求項11之裝置,其中,回應該狀態指示器係處於該預定條件,該存取控制模組將與該記憶體位置相關聯之一部分寫入操作提升成一全部寫入操作。
- 如請求項12之裝置,其中該錯誤校正模組計算與該全部寫入操作相關聯的錯誤校正資料。
- 如請求項11之裝置,其中該存取控制模組進一步包含一第二輸入以接收一重設信號,且其中該存取控制模組回應接收該重設信號而促使該狀態指示器置入該預定條件。
- 如請求項11之裝置,其中該狀態指示器係與該記憶體位置相關聯的一狀態旗標位元。
- 一種用於錯誤校正之方法,其包括: 接收對一記憶體位置的一部分寫入操作;判定與該記憶體位置相關聯之一錯誤校正狀態指示器的一狀態;以及在回應判定該錯誤校正狀態指示器係處於一第一條件時,將該部分寫入操作提升成一全部寫入操作。
- 如請求項16之方法,其進一步包含:在處理該部分寫入操作期間停用錯誤偵測或錯誤校正中的至少一者。
- 如請求項16之方法,其進一步包含:接收一重設指示;回應接收該重設指示將該錯誤校正狀態指示器置於該第一條件。
- 如請求項16之方法,其進一步包含:計算該全部寫入操作的錯誤校正資訊。
- 如請求項16之方法,其進一步包含:除了提升該部分寫入操作之外,將該錯誤校正狀態指示器改變成一第二條件。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/359,329 US7617437B2 (en) | 2006-02-21 | 2006-02-21 | Error correction device and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200801932A TW200801932A (en) | 2008-01-01 |
TWI421679B true TWI421679B (zh) | 2014-01-01 |
Family
ID=38475622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096103282A TWI421679B (zh) | 2006-02-21 | 2007-01-30 | 錯誤校正裝置及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7617437B2 (zh) |
JP (1) | JP5232018B2 (zh) |
KR (1) | KR101291525B1 (zh) |
TW (1) | TWI421679B (zh) |
WO (1) | WO2007103590A2 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783955B2 (en) * | 2006-01-18 | 2010-08-24 | Sandisk Il Ltd. | Method for implementing error-correction codes in flash memory |
JP4339914B2 (ja) * | 2006-01-31 | 2009-10-07 | 富士通株式会社 | エラー訂正コード生成方法及びメモリ管理装置 |
US8725975B2 (en) * | 2007-01-03 | 2014-05-13 | Freescale Semiconductor, Inc. | Progressive memory initialization with waitpoints |
EP2169555A4 (en) * | 2007-06-20 | 2011-01-05 | Fujitsu Ltd | CACHE CONTROL, CACHE CONTROL PROCEDURE AND CACHE CONTROL PROGRAM |
US8239732B2 (en) * | 2007-10-30 | 2012-08-07 | Spansion Llc | Error correction coding in flash memory devices |
FR2928769B1 (fr) * | 2008-03-14 | 2012-07-13 | Airbus France | Dispositif permettant l'utilisation d'un composant programmable dans un environnement radiatif naturel |
US8122308B2 (en) * | 2008-06-25 | 2012-02-21 | Intel Corporation | Securely clearing an error indicator |
US8112649B2 (en) * | 2009-03-17 | 2012-02-07 | Empire Technology Development Llc | Energy optimization through intentional errors |
JP4905510B2 (ja) * | 2009-06-29 | 2012-03-28 | 富士通株式会社 | ストレージ制御装置及びストレージ装置のデータ回復方法 |
WO2011031260A1 (en) * | 2009-09-10 | 2011-03-17 | Hewlett-Packard Development Company, L.P. | Memory subsystem having a first portion to store data with error correction code information and a second portion to store data without error correction code information |
JP4837121B1 (ja) * | 2010-06-23 | 2011-12-14 | 株式会社東芝 | データ記憶装置及びデータ書き込み方法 |
US8990660B2 (en) | 2010-09-13 | 2015-03-24 | Freescale Semiconductor, Inc. | Data processing system having end-to-end error correction and method therefor |
US8549379B2 (en) * | 2010-11-19 | 2013-10-01 | Xilinx, Inc. | Classifying a criticality of a soft error and mitigating the soft error based on the criticality |
US8738993B2 (en) | 2010-12-06 | 2014-05-27 | Intel Corporation | Memory device on the fly CRC mode |
US8560892B2 (en) | 2010-12-14 | 2013-10-15 | Medtronic, Inc. | Memory with selectively writable error correction codes and validity bits |
US8566672B2 (en) | 2011-03-22 | 2013-10-22 | Freescale Semiconductor, Inc. | Selective checkbit modification for error correction |
US8607121B2 (en) * | 2011-04-29 | 2013-12-10 | Freescale Semiconductor, Inc. | Selective error detection and error correction for a memory interface |
US8990657B2 (en) | 2011-06-14 | 2015-03-24 | Freescale Semiconductor, Inc. | Selective masking for error correction |
US8522091B1 (en) | 2011-11-18 | 2013-08-27 | Xilinx, Inc. | Prioritized detection of memory corruption |
US9612901B2 (en) * | 2012-03-30 | 2017-04-04 | Intel Corporation | Memories utilizing hybrid error correcting code techniques |
US9411678B1 (en) * | 2012-08-01 | 2016-08-09 | Rambus Inc. | DRAM retention monitoring method for dynamic error correction |
MY180992A (en) | 2013-03-13 | 2020-12-15 | Intel Corp | Memory latency management |
US9733847B2 (en) * | 2014-06-02 | 2017-08-15 | Micron Technology, Inc. | Systems and methods for transmitting packets in a scalable memory system protocol |
US9852811B2 (en) | 2014-11-13 | 2017-12-26 | Macronix International Co., Ltd. | Device and method for detecting controller signal errors in flash memory |
US9423972B2 (en) * | 2014-11-17 | 2016-08-23 | Freescale Semiconductor, Inc. | Error recovery in a data processing system which implements partial writes |
CN105607726B (zh) * | 2015-12-24 | 2018-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种降低高性能计算集群内存功耗的方法及装置 |
US11990199B2 (en) * | 2021-01-21 | 2024-05-21 | Micron Technology, Inc. | Centralized error correction circuit |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200517836A (en) * | 2003-11-18 | 2005-06-01 | Jtek Technology Corp | Buffer control framework and method between different memories |
TW200535605A (en) * | 2004-04-23 | 2005-11-01 | Taiwan Semiconductor Mfg | System and method for real-time fault detection, classification, and correction in a semiconductor manufacturing environment |
TW200601348A (en) * | 2004-06-30 | 2006-01-01 | Hon Hai Prec Ind Co Ltd | System and method for testing memory |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6384647U (zh) * | 1986-11-21 | 1988-06-03 | ||
JPH04364552A (ja) * | 1991-06-12 | 1992-12-16 | Nec Corp | パリティ監視回路付きメモリ回路 |
JPH10289164A (ja) * | 1997-04-16 | 1998-10-27 | Mitsubishi Electric Corp | メモリ制御方法およびメモリ制御装置 |
US6119248A (en) * | 1998-01-26 | 2000-09-12 | Dell Usa L.P. | Operating system notification of correctable error in computer information |
US7334179B2 (en) * | 2004-06-04 | 2008-02-19 | Broadcom Corporation | Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems |
US20060143551A1 (en) * | 2004-12-29 | 2006-06-29 | Intel Corporation | Localizing error detection and recovery |
-
2006
- 2006-02-21 US US11/359,329 patent/US7617437B2/en active Active
-
2007
- 2007-01-18 JP JP2008555429A patent/JP5232018B2/ja not_active Expired - Fee Related
- 2007-01-18 KR KR1020087020334A patent/KR101291525B1/ko not_active IP Right Cessation
- 2007-01-18 WO PCT/US2007/060659 patent/WO2007103590A2/en active Application Filing
- 2007-01-30 TW TW096103282A patent/TWI421679B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200517836A (en) * | 2003-11-18 | 2005-06-01 | Jtek Technology Corp | Buffer control framework and method between different memories |
TW200535605A (en) * | 2004-04-23 | 2005-11-01 | Taiwan Semiconductor Mfg | System and method for real-time fault detection, classification, and correction in a semiconductor manufacturing environment |
TW200601348A (en) * | 2004-06-30 | 2006-01-01 | Hon Hai Prec Ind Co Ltd | System and method for testing memory |
Also Published As
Publication number | Publication date |
---|---|
KR20080098613A (ko) | 2008-11-11 |
WO2007103590A2 (en) | 2007-09-13 |
US7617437B2 (en) | 2009-11-10 |
US20070220354A1 (en) | 2007-09-20 |
WO2007103590A3 (en) | 2008-12-04 |
JP5232018B2 (ja) | 2013-07-10 |
TW200801932A (en) | 2008-01-01 |
JP2009527820A (ja) | 2009-07-30 |
KR101291525B1 (ko) | 2013-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI421679B (zh) | 錯誤校正裝置及方法 | |
US7404137B2 (en) | Method and related apparatus for performing error checking-correcting | |
EP1449082B1 (en) | Error correcting memory and method of operating same | |
JP4071940B2 (ja) | メモリ設計のための共有式誤り訂正 | |
US20080177938A1 (en) | Hybrid hard disk drive, computer system including the same, and flash memory DMA circuit for hybrid HDD | |
US8959417B2 (en) | Providing low-latency error correcting code capability for memory | |
US20070268905A1 (en) | Non-volatile memory error correction system and method | |
US20070234182A1 (en) | Error checking and correction (ECC) system and method | |
US9436398B2 (en) | Memory interface supporting both ECC and per-byte data masking | |
JPH07191915A (ja) | コンピュータ・システム、メモリ・カード、及びその操作方法 | |
US7689895B2 (en) | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory | |
KR101141487B1 (ko) | 집적 메모리 제어기의 결함 메모리 디바이스들과의 투과성 동작 인에이블링 | |
TW201709069A (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20120017071A1 (en) | Apparatus and Method Thereof for Reliable Booting from NAND Flash Memory | |
JP3922844B2 (ja) | キャッシュtag制御方法及びこの制御方法を用いた情報処理装置 | |
US11269715B2 (en) | Systems and methods for adaptive proactive failure analysis for memories | |
WO2003098439A2 (en) | Method and apparatus for providing error correction within a register file of a cpu | |
US6901551B1 (en) | Method and apparatus for protection of data utilizing CRC | |
KR20160008786A (ko) | 메모리 데이터의 에러 보정 장치 및 방법 | |
JP4131928B2 (ja) | データ記憶制御方法および装置 | |
JPH0816483A (ja) | メモリ装置の制御方式 | |
JPH05108496A (ja) | パトロール制御方式 | |
JPH06103469B2 (ja) | メモリ制御回路 | |
JPH06250936A (ja) | コンピュータシステム | |
JPH03204745A (ja) | メモリカード装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |