TWI517174B - 錯誤檢測方法及包含一或更多個記憶體裝置之系統 - Google Patents
錯誤檢測方法及包含一或更多個記憶體裝置之系統 Download PDFInfo
- Publication number
- TWI517174B TWI517174B TW098142289A TW98142289A TWI517174B TW I517174 B TWI517174 B TW I517174B TW 098142289 A TW098142289 A TW 098142289A TW 98142289 A TW98142289 A TW 98142289A TW I517174 B TWI517174 B TW I517174B
- Authority
- TW
- Taiwan
- Prior art keywords
- error
- packet
- command
- memory devices
- semiconductor memory
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
-
- 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
-
- 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/1068—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 sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Description
本申請案根據以下申請案主張優先權:2008年12月18日申請之美國臨時專利申請案第61/138,575號、2008年12月23日申請之美國臨時專利申請案第61/140,147號、2009年4月6日申請之美國臨時專利申請案第12/418,892號,在此將所有這些申請案以引用方式併入參考。
本發明係關於錯誤檢測方法及包含一或更多記憶體裝置之系統。
電腦及其他資訊技術系統通常包含諸如記憶體等的半導體裝置。一控制器控制該等半導體裝置,而該控制器可構成電腦的中央處理單元(Central Processing Unit;簡稱CPU)的一部分,或者可與該CPU分開。該控制器具有將資訊傳送進出該等半導體裝置之一介面。已知被傳送的資訊有時可能由於各種原因而發生錯誤,且許多已知的系統缺乏更正錯誤的能力,或至少缺乏更正許多錯誤之令人滿意的能力。
本發明之一目的在於提供一種包含一或多個記憶體裝置之改良式系統。
根據本發明之一觀點,提供了一種記憶體裝置,該記憶體裝置包含用來接收封包之一輸入,該封包之第一部分包含至少一命令位元組,且該封包之第二部分包含用來協助命令錯誤檢測之同位檢查位元。一錯誤管理器之組態被設定成根據該等同位檢查位元而檢測錯誤是否存在於該至少一命令位元組。該記憶體裝置亦包含組態被設定成將該封包提供給該錯誤管理器之電路。
根據本發明之另一觀點,提供了一種包含複數個半導體記憶體裝置及與該等裝置通訊的一控制裝置之系統。該控制器包含一命令引擎,用以產生以記憶體裝置為目標之封包。該封包之第一部分包含至少一命令位元組,且該封包之第二部分包含用來協助命令錯誤檢測之同位檢查位元。該控制裝置之一輸出能夠將該封包輸出到該複數個半導體記憶體裝置中之第一裝置。一串聯結構存在於該系統的該控制裝置與該等半導體記憶體裝置之間,因而該系統有一點對點環狀拓撲。
根據本發明之又一觀點,提供了一種在具有用來接收封包的輸入之記憶體裝置內執行的一方法。該方法包含下列步驟:接收該封包,該封包之第一部分包含至少一命令位元組,且該封包之第二部分包含用來協助命令錯誤檢測之同位檢查位元。該方法亦包含下列步驟:根據該等同位檢查位元而檢測錯誤是否存在於該至少一命令位元組。
根據本發明之又一觀點,提供了一種包含用來接收封包的機構之設備,該封包之第一部分包含至少一命令位元組,且該封包之第二部分包含用來協助命令錯誤檢測之同位檢查位元。該設備亦包含根據該等同位檢查位元而檢測錯誤是否存在於該至少一命令位元組之機構。該設備亦包含用來將該封包提供給錯誤管理器之機構。
根據本發明之又一觀點,提供了一種包含複數個半導體記憶體裝置及與該等裝置通訊的控制機構之系統。該控制機構包含用來產生以記憶體裝置為目標的封包之機構。該封包之第一部分包含至少一命令位元組,且該封包之第二部分包含用來協助命令錯誤檢測之同位檢查位元。該控制機構亦包含用來將該封包輸出到該複數個半導體記憶體裝置中之第一裝置的機構。一串聯結構存在於該系統的該等半導體記憶體裝置之間,因而該系統有一點對點環狀拓撲。
根據本發明之又一觀點,提供了一種具有用來接收封包的輸入機構之記憶體裝置。該記憶體裝置亦包含用來接收該封包之機構。該封包之第一部分包含至少一命令位元組,且該封包之第二部分包含用來協助命令錯誤檢測之同位檢查位元。該記憶體裝置亦包含用來根據該等同位檢查位元而檢測錯誤是否存在於該至少一命令位元組之機構。
因此,已提供了一種包含一或多個記憶體裝置之改良式系統。
公開於2008年8月21日之美國專利申請案公告2008/0201548 A1 “SYSTEM HAVING ONE OR MORE MEMORY DEVICES”、公開於2008年2月28日之美國專利申請案公告2008/0049505 A1 “SCALABLE MEMORY SYSTEM”、以及公開於2008年2月28日之美國專利申請案公告2008/0052449 A1 “MODULAR COMMAND STRUCTURE FOR MEMORY AND MEMORY SYSTEM”中說明了具有環狀拓撲的系統之例子。在本說明下文之各點中,將參照某些例示的命令、位址、及資料格式、協定、內部裝置結構、以及匯流排交易(transaction)等的要素,且熟悉此項技術者應可了解:可參照上述之專利參考文件而得到進一步的例示細節。
現在請參閱第1A及1B圖。根據某些實施例,控制器發出命令封包,且該等命令封包以一種點對點之方式通過每一記憶體裝置構成的環,直到該等命令封包返回該控制器為止。請參閱第1A圖,第1A圖是接收平行時脈信號的一例示系統之一方塊圖,而第1B圖是接收來源同步時脈信號的第1A圖所示相同系統之一方塊圖。該時脈信號可以是一單端時脈信號或一差動時脈對。
在第1A圖中,系統20包含一具有至少一輸出埠Sout及一輸入埠Sin之記憶體控制器22以及被串聯之記憶體裝置24、26、28、及30,因而一串聯結構存在於該系統的該控制裝置與該等記憶體裝置之間。雖然第1A圖中並未明確地標示,但是每一記憶體裝置具有一Sin輸入埠及一Sout輸出埠。輸入及輸出埠包含用來將記憶體裝置介接到該記憶體裝置係為其中一部分的該系統之一或多個實體接腳或連接結構。在某些例子中,該等記憶體裝置是快閃記憶體裝置。第1A圖所示之該現行例子包含四個記憶體裝置,但是替代例子可包含單一之記憶體裝置、或任何適當數目之記憶體裝置。因此,如果記憶體裝置24因為其被連接到記憶體控制器22之Sout而是系統20之第一裝置,則記憶體裝置30因為其被連接到記憶體控制器22之Sin而是第N個或最後的裝置,其中N是大於零的整數。記憶體裝置26至28此時是介於該第一與最後的記憶體裝置之間的中間被串聯記憶體裝置。每一記憶體裝置於該系統開機時可取得不同的識別(ID)號碼或裝置位址(Device Address;簡稱DA),因而可個別地定址到該等記憶體裝置。數個共同擁有的美國專利申請案說明了產生裝置位址並將該等裝置位址指定給一系統的一些被串聯的記憶體裝置之方法。請參閱諸如美國專利申請案公告2007/0233917 A1“APPARATUS AND METHOD FOR ESTABLISHING DEVICE IDENTIFIERS FOR SERIALLY INTERCONNECTED DEVICES”以及美國專利申請案公告2008/0080492 A1“PACKET BASED ID GENERATION FOR SERIALLY INTERCONNECTED DEVICES”。
記憶體裝置24至30(第1A圖)被視為被串聯的,這是因為除了鍊中之第一及最後的記憶體裝置之外,一記憶體裝置之資料輸入被連接到前一記憶體裝置之資料輸出,因而形成一串聯系統組織。記憶體控制器22之通道包含由被連接到導電線的不同的接腳或相同的接腳提供之資料、位址、及控制資訊。第1A圖所示之例子包含一個通道,其中該通道包含Sout及對應的Sin埠。然而,記憶體控制器22可包含任何適當數目之通道,以便適應不同的記憶體裝置鍊。在第1A圖所示之例子中,記憶體控制器22提供被並聯到所有的記憶體裝置之一時脈信號CK。
於一般操作時,記憶體控制器22經由其Sout埠發出一命令,該命令包含一運算碼(op code)、一裝置位址、用於讀取或程式化之或有的位址資訊、以及用於暫存器程式化之或有的資料。可以一序列位元流命令封包之方式發出該命令,其中可將該封包在邏輯上再分為一些具有一預定大小之區段。例如,每一區段的大小可以是一個位元組。位元流是隨著時間的經過而提供之一序列或系列的位元。第一記憶體裝置24經由其輸入埠Sin接收該命令,且第一記憶體裝置將裝置位址與其被指定的位址比較。如果該等位址相匹配,則記憶體裝置24執行該命令。該命令經由其本身的輸出埠Sout而被傳送到次一記憶體裝置26,且在記憶體裝置26中重複相同的程序。最後,具有匹配的裝置位址而被稱為被選擇的記憶體裝置之記憶體裝置將執行該命令指定的操作。如果該命令是一讀取資料命令,則該被選擇的記憶體裝置將經由其輸出埠Sout(未被標示)而輸出該讀取資料,且該讀取資料序列地通過中間的記憶體裝置,直到到達記憶體控制器22的Sin埠為止。因為係以序列位元流之方式提供該等命令及資料,所以每一記憶體裝置將時脈用來觸發序列位元輸入及輸出,且將時脈用來同步內部記憶體裝置操作。系統20中之所有的記憶體裝置都使用該時脈。
因為根據第1A圖的系統中使用之時脈頻率較低,所以可將無終結全擺幅(full swing)互補金屬氧化物半導體(CMOS)信令(signaling)位準用來提供強健的資料通訊。如熟悉此項技術者習知的,此種方式也被稱為低電壓電晶體-電晶體邏輯(Low Voltage Transistor Transistor Logic;簡稱LVTTL)。
第1B圖所示之系統可得到比第1A圖所示之系統20進一步之效能提昇。第1B圖所示之系統40類似於第1A圖所示之系統20(例如,如同第1A圖所示之串聯結構存在於該系統的控制裝置與各半導體記憶體裝置之間),但是不同之處在於:將時脈信號CK自不必然是記憶體控制器42的前一裝置序列地提供給每一記憶體裝置。每一記憶體裝置44、46、48、及50可在其時脈輸入埠接收來源同步時脈,且將該來源同步時脈經由其時脈輸出埠而轉送到該系統中之次一裝置。在系統40之某些例子中,時脈信號CK係經由短信號線而自一記憶體裝置傳送到另一記憶體裝置。在此種情況中,沒有與平行時脈配送體系有關的時脈效能問題(例如,多個裝置造成的負載),且CK可在高頻率下操作。因此,系統40可在比第1A圖所示系統20的速度高之速度下操作。例如,可將高速收發器邏輯(High Speed Transceiver Logic;簡稱HSTL)信令用來提供高效能的資料通訊。在HSTL信令格式中,每一記憶體裝置可接收一參考電壓,該參考電壓被用來決定進入的資料信號之邏輯狀態。另一類似的信令格式是殘餘連續終結邏輯(Stub Series Terminated Logic;簡稱SSTL)信令格式。因此,系統20及40的記憶體裝置中之資料及時脈輸入電路是在結構上相互不同的。HSTL及SSTL信令格式應是熟悉此項技術者所習知的。
為了提供第1B圖所示類型的系統之一更特定的例子,現在將參照第2A圖。在第2A圖中,一系統100包含一記憶體控制器102以及四個記憶體裝置104、106、108、及110。記憶體控制器102以平行於該等記憶體裝置之方式提供控制信號。這些控制信號包括晶片啟用信號CE#以及重定信號RST#。在一例子中,使用CE#時,該等裝置在CE#處於低邏輯位準時被啟用。在一些前文所述之裝置中,一旦一快閃記憶體裝置開始一程式化或抹除操作之後,可停止觸發CE#,或將CE#驅動到一高邏輯位準。然而,在一實施例中,CE#的停止觸發有停用自被停用的序列記憶體裝置的Sin至Sout的通訊之效果。因為該等序列記憶體裝置被連接成環狀,所以停用任何裝置時,將打斷該環中之通訊,且記憶體控制器無法與該記憶體系統中之所有的記憶體裝置通訊。因此,CE#是所有序列記憶體裝置之一共同信號,且被用來使整個記憶體進入一低功率狀態。在一例子中,使用RST#時,記憶體裝置在RST#處於低邏輯位準時被設定在一重定模式。在該重定模式中,可讓電源穩定,且該裝置設定有所的有限狀態機之初始值,並將任何組態及狀態暫存器重定至其系統預設值,而使該裝置本身準備好至可操作狀態。記憶體控制器102包含用來提供互補時脈信號CK及CK#之時脈輸出埠CKO#及CKO、以及用來自該系統的最後的記憶體裝置接收該等互補時脈信號之時脈輸入埠CKI#及CKI。每一記憶體裝置可包含諸如用來產生被接收時脈的相位之一延遲鎖定迴路(DLL)或鎖相迴路(PLL)等的一時脈合成器。可將某些相位用來在內部使時脈波緣對準輸入資料有效窗口內的中心,以便保證可靠的操作。第2A圖中之每一記憶體裝置具有用來將該等互補時脈信號傳送到次一記憶體裝置的時脈輸入埠之時脈輸出埠CKO#及CKO、以及用來自記憶體控制器102或前一記憶體裝置接收該等互補時脈信號之時脈輸入埠CKI及CKI#。最後的記憶體裝置110將該等時脈信號傳送回到記憶體控制器102。
記憶體控制器102之通道包含資料輸出埠Sout、資料輸入埠Sin、一命令選通脈衝輸入CSI、一命令選通脈衝輸出CSO、一資料選通脈衝輸入DSI、以及一資料選通脈衝輸出DSO。輸出埠Sout及輸入埠Sin之寬度可以是一位元或n位元,其中n是根據該記憶體控制器的特性之一正整數。例如,如果n是1,則在八個資料鎖存時脈波緣之後,接收到一位元組的資料。資料鎖存時脈波緣可以是諸如在單倍資料速率(Single Data Rate;簡稱SDR)操作中之上升時脈波緣,或是諸如在雙倍資料速率(Double Data Rate;簡稱DDR)操作中之上升及下降時脈波緣。如果n是2,則在四個鎖存時脈波緣之後,接收到一位元組的資料。如果n是4,則在兩個鎖存時脈波緣之後,接收到一位元組的資料。可針對Sout及Sin之任何寬度而靜態地或動態地設定該記憶體裝置之組態。因此,在n大於1之組態中,該記憶體控制器以平行位元流之方式提供資料。CSI被用來控制或啟用輸入埠Sin上出現的鎖存命令資料,且具有用來限定一命令出現在資料輸入埠Sin上的時間之脈波持續時間。更具體而言,命令資料將有以時脈週期數目衡量之持續時間,且CSI信號的脈波持續時間將有一對應的持續時間。DSI被用來使被選擇的記憶體裝置之輸出埠Sout緩衝器能夠輸出讀取資料,且具有用來限定自記憶體裝置資料輸出埠Sout提供的讀取資料之脈波持續時間,因而該記憶體控制器可控制一讀取交易中之資料量。
因為參照第2A圖所述之該實施例將針對高速操作,所以將使用諸如HSTL信令格式等的一高速信令格式。因此,將一參考電壓VREF提供給每一記憶體裝置,而每一記憶體裝置將該參考電壓VREF用來決定在Sin、CSI、及DSI輸入埠上接收的信號之邏輯位準。例如,印刷電路板上的另一電路可產生該參考電壓VREF,且根據HSTL信號的電壓擺幅中點而將該參考電壓VREF設定為一預定電壓位準。
於使用第2A圖所示之實施例時,將每一記憶體裝置定位在一印刷電路板上,使該環中之一裝置的Sout輸出埠接腳與次一裝置的Sin輸入埠接腳間之距離及信號軌長度最小化。或者,可將該等四個記憶體裝置集合在一系統級封裝(System In Package;簡稱SIP)模組中,因而進一步將信號軌長度最小化。記憶體控制器102及記憶體裝置104至110被串聯而形成一環狀拓撲,此即意指最後的記憶體裝置110將其輸出提供回到記憶體控制器102。因此,熟悉此項技術者應可了解:易於使記憶體裝置110與記憶體控制器102間之距離最小化。
在第2B圖中,一系統150包含一記憶體控制器152以及記憶體裝置154、156、158、及160。可將記憶體控制器152設計成提供與第2A圖所示記憶體控制器102的功能類似之功能,但是不同之處在於:係以平行方式提供時脈信號,因而並未設有或並未連接每一記憶體裝置之時脈輸出埠CKO#及CKO。此外,與第2A圖所示之系統相比時,第2B圖所示系統之資料及選通脈衝信號的信令格式是不同的。例如,第2B圖所示系統之信令格式可以是全擺幅無終結之LVTTL信令格式。配合較低時脈頻率使用之該LVTTL信令不使用參考電壓VREF。只用於第2B圖所示系統之記憶體裝置無須VREF輸入。如果設有VREF輸入,則是該VREF輸入也能夠根據需要VREF的高速信令約定而進行通訊。在此種情形中,為了方便,或為了指示正被使用的LVTTL信令,將VREF設定為擺幅中點之外的一電壓位準。例如,針對該裝置,可將VREF設定為VDD或VSS,以便指示不同於HSTL信令及根據第2A圖的網路組態之LVTTL信令及根據第2B圖的網路組織。
根據一實施例,第2A圖所示之記憶體裝置104、106、108、及110以及第2B圖所示之記憶體裝置154、156、158、及160可以是具有針對與其他記憶體裝置的串聯而設計的一輸入/輸出介面之任何類型的記憶體裝置。根據所述之實施例,第2A及2B圖所示之記憶體裝置可以是相同的,且因而可在兩種系統中操作,這是因為該等記憶體裝置將具有可配合LVTTL輸入信號或HSTL輸入信號而操作之輸入及輸出緩衝器電路。熟悉此項技術者應可了解:該等記憶體裝置可包含用來配合LVTTL或HSTL信號的信號格式以外的其他類型之信號格式而操作之輸入及輸出緩衝器電路。
如前文所述,先前圖式中示出的每一系統都包含一或多個記憶體裝置,且根據一實施例,第3圖示出可在任一前文所述之系統內提供的一例示記憶體裝置200。該新穎的記憶體裝置200具有一記憶體區202,該記憶體區202在至少某些例子中是具有複數(n)個可抹除區塊之一"反及"(NAND)快閃記憶單元陣列結構。每一可抹除區塊再被分成複數(m)個可程式分頁。每一分頁包含(j+k)個位元組。分頁被進一步分成用來儲存資料之一j位元組資料儲存區、以及通常被用於錯誤管理功能之一獨立的k位元組區域。每一分頁包含諸如2,112位元組,其中之2,048位元組將被用於資料儲存,且64位元組將被用於錯誤管理功能。係按照該等分頁而存取前文所述之記憶體區202。雖然第3圖示出單一之記憶體區202,但是記憶體裝置200可具有一個以上的記憶體區202。
一命令暫存器214經由輸入/輸出(I/O)電路213自該控制器接收存取記憶體區202之命令。該等被接收之命令進入命令暫存器214,且在執行之前被保留在命令暫存器214。控制邏輯216將該等命令轉換為可對記憶體區202執行之一形式。通常經由晶片的外部構裝上的不同接腳之觸發而使該等命令進入記憶體裝置200,其中不同的接腳可被用來代表不同的命令。例如,該等命令可包括讀取、程式化、抹除、暫存器讀取、及暫存器寫入。關於暫存器寫入,在一例子中,記憶體裝置200能夠處理其中包含用於識別碼之一位元組、用於命令之一位元組、以及作為酬載之其餘的位元組之一個5位元組暫存器寫入命令封包。
係以基於一分頁之方式執行讀取及程式化命令,而係以基於一區塊之方式執行抹除命令。此外,在記憶體裝置200之一些例子中,該裝置之各接腳係分別與該一或多個選通脈衝埠中之一選通脈衝埠、該一或多個資料埠中之一資料埠、或前文中參照第2A及2B圖所述之其他埠相關聯。圖中示出I/O電路213係介於該等資料接腳與記憶體裝置200的內部組件之間,而圖中示出晶片介面電路215係介於其他接腳與記憶體裝置200的內部組件之間。
當命令暫存器214經由I/O電路213接收到一讀取或程式化命令時,I/O電路213將記憶體區202中與該命令有關的分頁之位址提供給位址緩衝器及鎖存器218。然後將位址資訊自位址緩衝器及鎖存器218提供給控制及預先解碼器206、感測放大器(Sense Amplifier;簡稱S/A)及資料暫存器204、以及列解碼器208,以便存取該位址指示之分頁。關於讀取操作,資料暫存器204接收完整的分頁,然後將該分頁提供給I/O電路213(更具體而言,係將該分頁提供給I/O電路213中並未被明確地示出之下列子組件:I/O緩衝器及鎖存器、以及接續的輸出驅動器),以便自記憶體裝置200輸出。
位址緩衝器及鎖存器218決定該位址所在的分頁,並將對應於該分頁之一或多個列位址提供給列解碼器208。該對應的列被啟動。資料暫存器204及感測放大器感測該分頁,並將資料自該分頁傳送到資料暫存器204。一旦將整個分頁之資料傳送到該資料暫存器之後,經由I/O電路213而自該裝置循序地讀取該資料。
也基於一分頁而處理程式化命令。命令暫存器214經由I/O電路213而接收程式化命令,且位址緩衝器218經由I/O電路213而接收一伴隨的位址。I/O電路213接收輸入資料,以便傳送到資料暫存器204。一旦所有的輸入資料被置於資料暫存器204之後,以該輸入資料將要儲存該輸入資料之分頁程式化。
係基於一區塊而處理抹除命令。命令暫存器214經由I/O電路213而接收抹除命令,且位址緩衝器218經由I/O電路213而接收一區塊位址。
所示之記憶體裝置200或可亦包含一ECC管理器217。ECC管理器217能夠根據將於下文中更詳細地說明的實施例而執行錯誤檢測及更正。所示之該ECC管理器係與控制邏輯216通訊;然而,在一替代例子中,該ECC管理器可包含可讓其直接與諸如位址緩衝器及鎖存器218以及命令暫存器214中之一或多個組件等的其他所示組件互動之電路及邏輯。熟悉此項技術者應可了解還有可被用來將封包自記憶體裝置200的輸入提供給ECC管理器217之各種其他習知電路。
所示之記憶體裝置200亦包含一或多個狀態暫存器249(許多類型的傳統狀態暫存器是熟悉此項技術者所習知的)。在控制邏輯216的控制下,狀態暫存器可提供目標為該系統的控制器之狀態型資訊,且通常以一種不干擾經由I/O電路213傳送的其他資訊及資料之方式提供該資訊。在一例子中,特別可經由該記憶體裝置上的一或多個專用接腳而傳送出狀態暫存器249中儲存的資訊。就這一點而言,可在狀態暫存器249與I/O電路213之間提供一或有的ECC產生器251,以便協助該程序。
如前文所述,第1A、1B、2A、及2B圖所示之每一系統都包含一記憶體控制器,且第4圖中示出一例示的適用記憶體控制器310之一方塊圖。
請參閱第4圖,所示之新穎快閃記憶體控制器310包含一中央處理單元(CPU)312以及一記憶體314,該記憶體314具有諸如一隨機存取記憶體(Random Access Memory;簡稱RAM)316及一唯讀記憶體(Read Only Memory;簡稱ROM)318。如熟悉此項技術者所了解的,可將快閃記憶體控制器310配置為一系統單晶片(system on chip)、系統級封裝、或多個晶片。此外,所示之快閃記憶體控制器310包含一快閃記憶體命令引擎322、一錯誤更正碼(Error Correcting Code;簡稱ECC)管理器324、以及一快閃記憶體裝置介面326。在一些例子中,該快閃記憶體裝置介面可包含第2A圖所示之該等記憶體控制器埠或第2B圖所示之該等記憶體控制器埠,且(如前文中參照該記憶體裝置而同樣地說明的)這些記憶體控制器埠中之每一埠可與記憶體控制器310的一各別接腳相關聯。為了便於圖示,第4圖中並未明確地示出快閃記憶體控制器310之所有接腳,而是以被標示的快閃記憶體裝置介面326代表該等接腳。
仍然請參閱第4圖,所示之快閃記憶體控制器310包含一主機介面控制器332及一主機介面334。係經由一共同匯流排330而連接CPU312、記憶體314、快閃記憶體命令引擎322、及主機介面控制器332。主機介面334係用來經由一匯流排、連接鏈路、或介面等的結構(例如,先進技術連接(Advanced Technology Attachment;簡稱ATA)、平行ATA(Parallel ATA;簡稱PATA)、序列ATA(Serial ATA;簡稱SATA)、通用序列匯流排(Universal Serial Bus;簡稱USB)、PCIe(PCI Express))而連接到一外部裝置。主機介面控制器332控制主機介面334。所示例子之CPU 312配合ROM 318中儲存的指令而操作,且將被處理的資料儲存在RAM 316。快閃記憶體命令引擎322解譯該等命令,且快閃記憶體控制器310經由快閃記憶體裝置介面326而控制快閃記憶體裝置。此外,在某些例子中,快閃記憶體命令引擎322產生以記憶體裝置為目標之封包。ECC管理器324除了具有諸如程式化資料錯誤碼產生、以及讀取資料錯誤碼檢查及讀取資料更正等的其他可能功能之外,又產生錯誤更正碼(ECC),以便保證成功地且完全地執行了某些命令。該ECC管理器能夠根據將於下文中更詳細地說明之實施例而執行錯誤檢測及更正。
現在,如果命令封包中發生了傳輸錯誤,則處理該錯誤的一種方式是控制器310將該被接收的封包與原始傳輸的封包比較,而檢測錯誤。與匯流排拓撲相比時,上述方式是環狀拓撲的一種有用特徵,而在匯流排拓撲中,並無由一控制器檢測記憶體裝置是否正確地接收到命令之固有機制。然而,縱然環狀拓撲中有此種錯誤檢測方法,在檢測到錯誤時可能已經太晚,而無法更正錯誤。例如,如果命令封包是程式化或抹除命令,且其中一個位址位元(裝置位址、區塊位址、及分頁位址中之任一位址)發生了錯誤,則控制器檢測到該錯誤時,可能已經開始了該程式化或抹除操作,且當覆寫或抹除錯誤位址中之資料時,資料已經無法恢復地丟失了。當將非程式化或非抹除命令錯誤地接收成程式化或抹除命令,將發生另一種可能無法恢復的錯誤。一般而言,錯誤的讀取命令不是問題,這是因為控制器只須要求另一讀取操作且捨棄不想要的資料即可。
一般而言,對命令中之錯誤的顧慮要高於對被寫到記憶體陣列或自記憶體陣列讀取的資料中之錯誤的顧慮。有將錯誤檢測及更正碼嵌入資料內之許多體系。某些資料可能更具有關鍵性,且可能有通常有較多的添加信號(overhead)及較大的效能影響之更強健的錯誤體系。系統設計者可決定所需的強健程度。至少某些實施例所對付的問題係有關命令、位址、及暫存器寫入欄位中之錯誤。無法以讀取及寫入資料內之錯誤檢測及更正碼消除這些錯誤。有可能發生的許多形式之命令、位址、及暫存器寫入錯誤。一般而言,非意圖的讀取不是問題,這是因為可以不理會該資料,且控制器310可重新發出命令。只須不理會對忙碌中之記憶體區的分頁讀取。錯誤可能發生在環中目標裝置之前或之後的某一位置。下表1詳細示出與位置有關的錯誤之影響。
表1:可能致命的單一位元錯誤狀況
請參閱第3及4圖,可檢查目標裝置200以決定是否有錯誤,且如果檢測到錯誤,則可中斷該命令。根據至少一實施例,將一額外的錯誤碼位元組添加到可被快閃記憶體命令引擎322產生的每一以記憶體裝置為目標之命令封包。在某些實施例中,封包可被目標裝置截斷(truncated),以便節省環中之電力。截斷讀取封包、或結合式命令及程式化資料封包之資料部分是沒有問題的。然而,環中之該等裝置不應截斷封包加該額外的錯誤碼位元組之命令部分,使控制器310可檢查完整的封包中是否有錯誤。如果檢測到一錯誤,則控制器310可隨即讀取該記憶體裝置的裝置狀態暫存器249,以便決定該環中之裝置是否也檢測到該錯誤、以及是否實際地執行了該命令。根據某些例子,係為對應於封包的第一位元組中之裝置識別碼欄位的裝置200之目標裝置將根據所接收的該等命令位元組而計算錯誤碼,並將該結果與所接收的該錯誤碼位元組比較。如果有任何差異,則將不執行該命令,且將在狀態暫存器249中設定一傳輸錯誤旗標。或者,如果該錯誤碼支援錯誤更正,則裝置200可更正錯誤,並執行該命令。有諸如循環冗餘碼(Cyclic Redundancy Code;簡稱CRC)、博斯-喬赫裏-霍克文黑姆(Bose Chaudhuri Hocquenghem;簡稱BCH)碼、及列德一索羅門(Reed-Solomon;簡稱RS)碼等的錯誤檢測碼之許多設想過的可能性;然而,根據至少一實施例,使用了可識別單一位元錯誤的位置且能夠檢測到所有雙位元錯誤之漢明碼(Hamming code)。下表2詳細地示出具有一額外的錯誤碼位元組的一例示7位元組命令封包之位元。
D0-D62-資料酬載位元
P0-P64-同位檢查位元
表2:具有額外的錯誤碼位元組之例示7位元組命令封包
可更正單一位元錯誤,這是因為知道單一位元錯誤之位置。此外,可檢測到但無法更正雙位元錯誤。此種類型的碼被稱為單錯更正雙錯檢測(Single Error Correction,Double Error Detection;簡稱SECDED)碼。
因此,漢明碼提供了單一位元錯誤更正及雙位元錯誤檢測。表2所示之該7位元組酬載涵蓋了前文中提及的美國專利申請案公告2008/0049505 A1以及2008/0052449 A1中述及的所有指令。然而,8位元漢明碼足以保護15位元組的酬載,因而容許未來延伸到可能的較大命令組。對於小於7位元組的命令封包而言,可假定不存在的資料位元為零。係以第5圖所示之方式計算同位檢查位元。
如果針對被接收的資料酬載位元計算出之同位檢查位元不同於被接收的同位檢查位元,則該等差異指向有錯誤的資料位元。例如,如果錯誤地接收了D3,則所計算出的同位檢查位元P0、P1、及P2將不同於被接收的同位檢查位元。當各別之同位檢查位元P64、P32、P16、P8、P4、P2、P1是不同的,則7位元的二進制字組有一“1”,且該等同位檢查位元是相同的,則7位元的二進制字組有一“0”,亦即,當發生單一位元錯誤時,0,0,0,0,0,1,1指向D3。如果酬載中有單一錯誤,則P0將必然是不同的。如果該字組中有單一的“1”(亦即,只有一個計算出的同位檢查位元不同於被接收的同位檢查位元),則指示一同位檢查位元的錯誤。如果計算出的同位檢查位元P0與被接收的P0相同,且其他同位檢查位元中之至少一同位檢查位元是不同的,則封包中有無法更正的雙錯。
根據某些實施例,狀態暫存器249(第3圖)包含用來指示發生了命令封包失敗之一額外的位元。
現在,在一例子中,具有點對點環狀拓撲的系統的一或多個記憶體裝置中之每一記憶體裝置是包含四個記憶體區之一記憶體裝置。在該例子中,狀態暫存器中可以有一被完全佔用的位元組,該位元組包含每一記憶體區之一準備好/忙碌中旗標以及一通過/失敗旗標。因此,應以下表3所示之方式增添一額外的位元組:
R/Bn-記憶體區n之準備好/忙碌中旗標(“0”-準備好,“1”-忙碌中)
P/Fn-記憶體區n之通過/失敗旗標(“0”-通過,“1”-失敗)
ERR-命令封包錯誤旗標(“0”-無錯誤,“1”-檢測到錯誤且並未執行命令)
表3:根據一實施例之狀態暫存器定義,且該狀態暫存器定義支援命令封包失敗旗標
上述實施例之ERR旗標是持續性的。在接收到一讀取狀態暫存器命令然後清除該ERR旗標之前,該ERR旗標都將保持“1”。
如果該裝置支援單一位元錯誤更正,則可使用下表4所示之狀態暫存器格式:
R/Bn-記憶體區n之準備好/忙碌中旗標(“0”-準備好,“1”-忙碌中)
P/Fn-記憶體區n之通過/失敗旗標(“0”-通過,“1”-失敗)
ERR1-命令封包單一位元錯誤旗標(“0”-無錯誤,“1”-檢測到且更正單一位元錯誤)
ERR2-命令封包雙位元錯誤旗標(“0”-無錯誤或單一位元錯誤,“1”-檢測到雙位元錯誤且並未執行命令)
表4:根據另一實施例之狀態暫存器定義,且該狀態暫存器定義支援命令封包失敗旗標及單一位元錯誤更正
我們應可了解:前文所述之狀態暫存器實施細節在不同的例示記憶體中將有所不同。例如,對於具有少於四個記憶體區的那些記憶體而言,使用單一位元組的狀態暫存器是一種設想過的可能性。此外,尤其對於具有多於四個記憶體區的記憶體而言,使用大於兩位元組的狀態暫存器是一種設想過的可能性。此外,在接收到一狀態讀取命令之前,或在接收到任何後續的有效指令時而可被清除之前,狀態位元可以是持續性的。
根據至少一實施例,控制器310(第4圖)可如同在記憶體裝置中重新計算同位檢查位元,或只須將被傳輸的命令封包之每一字組與被接收的封包比較,而決定已發生了命令封包錯誤。後一種方式與前一種方式間之差異在於:後一種方式可識別多位元錯誤。如果檢測到錯誤,則控制器310應隨即決定該錯誤發生在目標裝置之前或之後。控制器310應將一狀態暫存器讀取命令發出到目標裝置200(第3圖),以便讀取狀態暫存器249。或者,在有裝置位址欄位錯誤之情形中,控制器310應將一狀態暫存器讀取命令發出到錯誤地認為其是命令封包的預期接收者之裝置(後文中被稱為被錯誤定址之裝置),以便決定錯誤旗標之狀態。
第6圖以流程圖的形式示出根據一實施例之一方法500。開始時,在行動501中,控制器接收傳播通過該環後的命令封包,且該控制器在行動503中檢查該命令封包以決定是否有錯誤。如果沒有錯誤,則在所示之方法中無須採取進一步的行動;然而,如果存在至少一錯誤,則繼續進入行動504。
在行動504中,決定錯誤是否發生在識別碼欄位。如果錯誤並未發生在識別碼欄位,則繼續進入行動509(將於本專利說明書之後文中說明行動509)。如果錯誤發生在識別碼欄位,則繼續進入行動506。在行動506中,控制器310(第4圖)將一狀態讀取命令發出到該被錯誤定址之裝置,因而在適當的時候導致該被錯誤定址之裝置的狀態暫存器被讀取,且將清除該狀態暫存器的持續性之錯誤位元指示。然後在行動507中,該控制器接收該被錯誤定址之裝置的位元組。
在行動507之後繼續進入行動509。在行動509中,讀取該目標裝置之暫存器,然後如次一行動510所示,控制器310(第4圖)在環中之最後的裝置接收該目標裝置之一錯誤位元組(例如,上表3所示之“位元組1”)。該行動將清除該目標裝置中之持續性的錯誤位元指示。在某些例子中,係經由快閃記憶體裝置介面326將該錯誤位元組提供給ECC管理器324。然後,在行動520中,ECC管理器324可決定該錯誤位元組之ERR位元是“0”或“1”。如果該ERR位元是“0”,則意指在該目標裝置上正確地接收到了該命令,且該錯誤發生於該目標裝置之後的該環中之某一位置。在此種情形中,無須重新發出該命令。如果該ERR位元是“1”,則意指該錯誤發生於該目標裝置之前的某一位置。在此種情形中,於行動530中重新發出該命令。如熟悉此項技術者所了解的,快閃記憶體命令引擎322可在CPU312的指示下導致該命令的重新發出。
在某些實施例中,該環中之每一裝置都檢查命令封包以決定是否有錯誤,且適當地設定錯誤旗標。控制器310(第4圖)然後可檢查該環中之每一裝置的狀態暫存器249(第3圖),以便決定錯誤發生在哪一點,並決定目標裝置是否已接收到且執行了該命令。並不將個別的狀態暫存器命令傳送到該環中之每一裝置,而是將以另一種方式使用一廣播狀態讀取命令。與前文中述及的美國專利申請案公告2008/0049505 A1一致,可存在諸如被認知為廣播裝置位址(Broadcast Device Address)的“11111111”之一特殊裝置位址。在廣播裝置位址之情形中,凌駕了與本地裝置識別碼之正常比較。
第7圖是根據一實施例的一廣播狀態讀取命令的操作之一時序圖。在該時序圖中,以諸如D0、Q0/D1、Q1/D2之信號圖代表複數個裝置,以便提供有關經由環中之一個以上的裝置傳送的該廣播狀態讀取命令的本質之清楚的例示細節。
根據第7圖所示之實施例,裝置0接收由CSI0信號描述的D0上之一個2位元組廣播讀取狀態命令。幾個時脈週期之後,裝置0接收用來指示應在Q0上輸出狀態暫存器的內容之一資料選通脈衝信號DSI0。裝置0將輸出資料選通脈衝DSO0延伸一個時脈週期,且在該DSO0選通脈衝的被延伸部分所指示之時槽內在Q0上輸出該2位元組狀態暫存器資料。在此種方式下,隨著該環中之每一裝置而增加資料選通脈衝之長度,以便提供來自該環中之每一裝置的一叢發之狀態資訊。當所有的裝置檢查命令封包以決定是否有錯誤時,該命令被用來決定該環中之何處發生了命令封包錯誤。正常操作中也將該命令用來檢查同時發生在不同的記憶體裝置中之多個讀取、程式化、及抹除操作的狀態。
已說明了每一裝置有一相同長度的2位元組狀態暫存器時的廣播狀態讀取操作。該技術亦可被應用於具有不同的狀態暫存器長度之裝置。於環初始化時,該控制器讀取每一裝置之裝置資訊暫存器,且決定每一裝置的狀態暫存器之長度。在廣播暫存器讀取操作期間,每一裝置將其不限長度的狀態暫存器資訊添加到叢訊中,並延伸輸出資料選通脈衝,以便包含該被添加的資訊。該控制器於接收到完整叢發的狀態資訊時,將知道預期來自每一裝置的位元組之數目,且可分隔該資訊。
可將支援前文所述之錯誤檢測及(或)更正的記憶體裝置程式化為可停用該錯誤檢測及(或)更正。例如,於重定時,該記憶體裝置可使錯誤檢測及更正被停用。如果控制器想要採用錯誤檢測及(或)更正,則該控制器可諸如將一或多個位元寫入每一記憶體裝置的一控制暫存器中,以便啟用這些功能。如果該控制器停用了這些功能,則取消每一命令封包末尾的額外之同位檢查位元,以便節省一個匯流排時槽,或者可以記憶體裝置將不理會的空資料(null data)載入同位檢查位元。在此種方式下,低成本的系統無須支援錯誤更正及(或)檢測,但是除了將共同的記憶體裝置供應給需要錯誤檢測及(或)更正的那些系統之外,亦可將該共同的記憶體裝置供應給低成本的系統。
在某些例子中,提供了一種類似於前文所述之體系且被應用於讀取及寫入資料之錯誤檢測及更正體系。在該額外的體系之一特定實施例中,可使用與用於命令封包之同位檢查邏輯電路相同的同位檢查邏輯電路,以便減少晶片面積及複雜性。下表5詳細地示出具有一命令同位檢查位元組及一資料同位檢查位元組之一例示寫入資料封包。
表5:具有命令同位檢查位元組及資料同位檢查位元組之例示寫入資料封包
在表5所示之例子中,位元組0至4包含命令部分,且以前文所述之方式起作用。在該命令部分之後,可接續最多可達全分頁大小的任何數目之寫入資料位元組。封包中之最後的位元組是為該等寫入資料位元組計算的寫入資料同位檢查位元組。如果將使用前文所述之相同的SECDED漢明碼,則將只提供最多可達15位元組的單錯更正保護。在15位元組之後,同位檢查方程式將只是繞回(wrap around),而不再執行單一位元錯誤更正。或者,可選擇一種具有用於大資料封包的較佳錯誤保護之更強健的CRC碼。可在狀態暫存器中提供用於命令及資料之各別的錯誤檢測位元。
關於讀取資料同位檢查,可以類似之方式完成該同位檢查。在自內部記憶體陣列讀取資料時,記憶體裝置將計算要被添加到讀取資料封包的末尾之一同位檢查位元組。控制器控制資料選通脈衝信號的長度,而決定將要被讀取的位元組之數目。當該記憶體裝置檢測到終止該讀取資料叢訊的資料選通脈衝信號之下降緣時,該記憶體裝置輸出累積的同位檢查位元組。於接收讀取資料時,該控制器執行相同的同位檢查位元組計算,並將結果與先前被添加到讀取資料叢訊的末尾之被接收的同位檢查位元組比較,以便決定是否有位元錯誤。此種方式尤其適用於諸如狀態暫存器讀取命令等的暫存器讀取命令,這是因為使用者不可能將錯誤更正碼疊加到暫存器資料上。在正常地自記憶體陣列讀取資料及將資料寫到記憶體陣列時,使用者可選擇連同資料而儲存之一適當的錯誤檢測碼。
雖然本發明所示出及說明的某些實施例係有關一種具有點對點環狀拓撲之系統,但是因為在系統的一控制裝置與該系統的複數個半導體記憶體裝置之間存在了一串聯結構,所以我們應可了解某些替代實施例係有關諸如特徵為多點傳輸(multi-drop)系統等的其他類型之系統。
也考慮到其他的變形。例如,在類似於前文中參照表3及4所述的4記憶體區之記憶體裝置之另一例子中,具有點對點環狀拓撲的一系統的一或多個記憶體裝置中之每一記憶體裝置是其中包含一橋接裝置及四個分立式記憶體裝置之一複合記憶體。(若要得知與所考慮的複合記憶體有關之進一步細節,請參閱美國專利申請案12/401,963“A Composite Memory Having a Bridging Device for Connecting Discrete Memory Device to a System”,本發明特此引用該專利申請案之全部內容以供參照。)在該例子中,狀態暫存器可被設於該橋接裝置中。
可將一些實施例應用於諸如其中包括"反及"(NAND)快閃電氣可抹除可程式唯讀記憶體(EEPROM)裝置、"反或"(NOR)快閃電氣可抹除可程式唯讀記憶體(EEPROM)裝置、"及"(AND)快閃電氣可抹除可程式唯讀記憶體(EEPROM)裝置、位元線分割"反或"(DiNOR)快閃電氣可抹除可程式唯讀記憶體(EEPROM)裝置、序列快閃電氣可抹除可程式唯讀記憶體(EEPROM)裝置、動態隨機存取記憶體(DRAM)裝置、靜態機存取記憶體(SRAM)裝置、鐵電隨機存取記憶體裝置、磁性隨機存取記憶體裝置、相變隨機存取記憶體裝置、或上述這些裝置之任何適當組合的記憶體裝置等的任何適當之固態記憶體系統。這些技術也適用於經由一環狀拓撲或其他互連拓撲而通訊且被組織為單一匯流排主控裝置及多個從屬裝置或多個匯流排主控裝置組態之記憶體及非記憶體裝置。
我們應可了解:當在本說明書中提及一元件“被連接到”或“被耦合到”另一元件時,該元件可被直接連接到或耦合到該其他元件,或者可能存在有介於中間之元件。相比之下,當在本說明書中提及一元件“被直接連接到”或“被直接耦合到”另一元件時,不存在介於中間之元件。應以相同之方式詮釋用來描述各元件間之關係的其他詞語(亦即,“在...之間”相對於“直接在...之間”、以及“鄰接”相對於“直接鄰接”等的詞語)。
可對所述之實施例作出某些改作及修改。因此,應將前文所述之實施例視為例示性而非限制性。
20,40,100,150...系統
22,42,102,152,310...記憶體控制器
24,26,28,30,44,46,48,50,104,106,108,110,154,156,158,160,200...記憶體裝置
202...記憶體區
213...輸入/輸出電路
214...命令暫存器
216...控制邏輯
215...晶片介面電路
218...位址緩衝器及鎖存器
206...控制及預先解碼器
204...感測放大器及資料暫存器
208...列解碼器
217,324...錯誤更正碼管理器
249...狀態暫存器
251...錯誤更正碼產生器
312...中央處理單元
314...記憶體
316...隨機存取記憶體
318...唯讀記憶體
322...快閃記憶體命令引擎
326...快閃記憶體裝置介面
332...主機介面控制器
334...主機介面
330...匯流排
已參照各附圖而以舉例方式說明了本發明,在該等附圖中:
第1A圖是接收平行時脈信號的一例示系統之一方塊圖;
第1B圖是接收來源同步時脈信號的一例示系統之一方塊圖;
第2A圖是類似於第1B圖所示系統的一例示系統之一方塊圖,但是該例示系統是一更特定之例示系統;
第2B圖是類似於第1A圖所示系統的一例示系統之一方塊圖,但是該例示系統是一更特定之例示系統;
第3圖示出一例示記憶體裝置;
第4圖示出一例示記憶體控制器;
第5圖示出根據一實施例之同位檢查位元計算;
第6圖以流程圖的形式示出根據一實施例而處理一錯誤之一方法;以及
第7圖是根據一實施例的一廣播狀態讀取命令的操作之一時序圖。
在不同的圖式中,可將類似的或相同的代號用來表示該等圖式中示出之類似的特徵。
200...記憶體裝置
202...記憶體區
213...輸入/輸出電路
214...命令暫存器
216...控制邏輯
215...晶片介面電路
218...位址緩衝器及鎖存器
206...控制及預先解碼器
204...感測放大器及資料暫存器
208...列解碼器
217...錯誤更正碼管理器
249...狀態暫存器
251...錯誤更正碼產生器
Claims (28)
- 一種記憶體系統,包含:串聯互連的複數個半導體記憶體裝置,其配置成點對點環狀拓撲;以及用於與該等半導體記憶體裝置通訊的一控制裝置,該控制裝置包含:一命令引擎,用以產生以記憶體裝置為目標之封包,該封包之一部分包含至少一命令位元組;一輸出,用以將該封包輸出到該複數個半導體記憶體裝置之第一裝置;一輸入,用以在已經透過配置成該點對點環狀拓撲的該複數個半導體記憶體裝置之每一半導體記憶體裝置而通訊之後,從該複數個半導體記憶體裝置之最後裝置接收該封包;以及一錯誤管理器,用以根據所接收之該封包來決定在該系統內傳送該封包時是否有錯誤發生,並且該命令引擎係被配置成,如果該錯誤管理器決定該錯誤發生,則選擇性地重新發出該封包。
- 如申請專利範圍第1項之系統,其中該複數個半導體記憶體裝置之每一半導體記憶體裝置包含一錯誤管理器。
- 如申請專利範圍第1項之系統,其中該控制裝置之組態被設定成接收一被錯誤定址之裝置的錯誤位元組,且該錯誤管理器之組態被設定成處理該被錯誤定址之裝置的 錯誤位元組,以便決定在一預期的目標裝置之前的一裝置是否被錯誤地定址。
- 如申請專利範圍第1項之系統,其中該命令引擎之組態被設定成如果該預期的目標裝置之前的該裝置被錯誤地定址,則導致一命令之重新發出。
- 如申請專利範圍第1項之系統,其中該命令引擎能夠產生可被該複數個半導體記憶體裝置之每一半導體記憶體裝置接收之一廣播命令,以便可以一種循序方式將該複數個半導體記憶體裝置之每一半導體記憶體裝置中的各別狀態暫存器之資訊提供給該控制裝置。
- 如申請專利範圍第5項之系統,其中該錯誤管理器之組態被設定成處理每一狀態暫存器之每一資訊,以便決定該錯誤發生在該環狀拓撲中之哪一點。
- 如申請專利範圍第1項之系統,其中該複數個半導體記憶體裝置是非揮發性記憶體裝置。
- 如申請專利範圍第7項之系統,其中該等非揮發性記憶體裝置是"反及"(NAND)快閃記憶體裝置。
- 如申請專利範圍第6項之系統,其中該命令引擎之組態進一步被設定成,如果在目標裝置之前該錯誤發生,則重新發出該封包。
- 如申請專利範圍第1項之系統,其中該錯誤管理器之組態被設定成,根據所接收之該封包之該部分計算同位檢查位元,並將所計算之該同位檢查位元與所接收之該封包之另一部分做比較,以決定是否該錯誤發生。
- 如申請專利範圍第1項之系統,其中該錯誤管理器之組態被設定成將所接收之該封包與所輸出之該封包做比較,以決定是否該錯誤發生。
- 如申請專利範圍第2項之系統,其中該複數個半導體記憶體裝置之至少一個錯誤管理器之組態被設定成於偵測到錯誤時防止執行該封包所定義之命令。
- 如申請專利範圍第1項之系統,其中該封包之該部分包含程式命令或抹除命令。
- 如申請專利範圍第1項之系統,其中該封包之另一部分包含同位檢查位元。
- 如申請專利範圍第14項之系統,其中該等同位檢查位元協助根據一漢明碼錯誤檢測體系之命令錯誤檢測。
- 如申請專利範圍第15項之系統,其中該等同位檢查位元協助命令錯誤更正。
- 如申請專利範圍第16項之系統,其中該複數個半導體記憶體裝置之每一半導體記憶體裝置包含各別錯誤管理器,用以如果偵測到該錯誤時,嘗試更正該封包。
- 如申請專利範圍第17項之系統,其中,如果決定已經發生該錯誤,則該控制裝置之該錯誤管理器之組態被設定成,決定所接收之該封包中之錯誤是否可更正,且如果該錯誤是不可更正,則重新發出該封包。
- 如申請專利範圍第18項之系統,其中該控制裝置之組態進一步被設定成,認定所接收之該封包中之單一位元錯誤為可更正且多重位元錯誤為不可更正。
- 一種在與串聯互連的複數個半導體記憶體裝置通訊之控制裝置中執行之方法,該複數個半導體記憶體裝置係配置成點對點環狀拓撲系統,該方法包含:產生以記憶體裝置為目標之封包,該封包之一部分包含至少一命令位元組;將該封包輸出到該複數個半導體記憶體裝置之第一裝置;在已經透過配置成該點對點環狀拓撲的該複數個半導體記憶體裝置之每一半導體記憶體裝置而通訊之後,從該複數個半導體記憶體裝置之最後裝置接收該封包;以及根據所接收之該封包來決定透過該半導體記憶體裝置從該控制裝置傳送該封包並將該封包傳送回到該控制裝置時是否有錯誤發生,並且如果該錯誤發生,則選擇性地重新發出該封包。
- 如申請專利範圍第20項之方法,進一步包含:產生用於該複數個半導體記憶體裝置之每一半導體記憶體裝置之一廣播命令,以便可以一種循序方式將該複數個半導體記憶體裝置之每一半導體記憶體裝置中的各別狀態暫存器之資訊提供給該控制裝置。
- 如申請專利範圍第21項之方法,進一步包含:處理每一狀態暫存器之每一資訊,以便決定該錯誤發生在該環狀拓撲中之哪一點。
- 如申請專利範圍第22項之方法,進一步包含:如果在目標裝置之前有錯誤發生,則重新發出該封包。
- 如申請專利範圍第20項之方法,進一步包含:根據所接收之該封包之該部分計算同位檢查位元;以及將所計算之該同位檢查位元與所接收之該封包之另一部分做比較,以決定是否該錯誤發生。
- 如申請專利範圍第20項之方法,進一步包含:將所接收之該封包與所輸出之該封包做比較,以決定是否該錯誤發生。
- 如申請專利範圍第20項之方法,其中該封包之該部分包含程式命令或抹除命令。
- 如申請專利範圍第20項之方法,其中該封包之另一部分包含同位檢查位元。
- 如申請專利範圍第27項之方法,其中該等同位檢查位元協助命令錯誤更正。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13857508P | 2008-12-18 | 2008-12-18 | |
US14014708P | 2008-12-23 | 2008-12-23 | |
US12/418,892 US8880970B2 (en) | 2008-12-23 | 2009-04-06 | Error detection method and a system including one or more memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201106369A TW201106369A (en) | 2011-02-16 |
TWI517174B true TWI517174B (zh) | 2016-01-11 |
Family
ID=42268218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098142289A TWI517174B (zh) | 2008-12-18 | 2009-12-10 | 錯誤檢測方法及包含一或更多個記憶體裝置之系統 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2359372B1 (zh) |
JP (2) | JP5753988B2 (zh) |
KR (1) | KR101687038B1 (zh) |
CN (1) | CN102257573B (zh) |
TW (1) | TWI517174B (zh) |
WO (1) | WO2010069045A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014051625A1 (en) * | 2012-09-28 | 2014-04-03 | Hewlett-Packard Development Company, L.P. | Dynamically selecting between memory error detection and memory error correction |
KR20170086345A (ko) * | 2016-01-18 | 2017-07-26 | 에스케이하이닉스 주식회사 | 메모리 칩 및 메모리 컨트롤러를 포함하는 메모리 시스템 |
CN107134294B (zh) * | 2017-05-27 | 2020-04-24 | 北京东土军悦科技有限公司 | 一种ecc信息获取方法及系统 |
CN107239363B (zh) * | 2017-05-27 | 2020-04-24 | 北京东土军悦科技有限公司 | 一种ecc信息上报方法及系统 |
KR102433098B1 (ko) | 2018-02-26 | 2022-08-18 | 에스케이하이닉스 주식회사 | 어드레스 생성회로, 어드레스 및 커맨드 생성회로 및 반도체 시스템 |
US11042436B2 (en) | 2019-08-29 | 2021-06-22 | Micron Technology, Inc. | Semiconductor device with modified access and associated methods and systems |
US11200118B2 (en) | 2019-08-29 | 2021-12-14 | Micron Technology, Inc. | Semiconductor device with modified command and associated methods and systems |
US10963336B2 (en) | 2019-08-29 | 2021-03-30 | Micron Technology, Inc. | Semiconductor device with user defined operations and associated methods and systems |
KR20210093610A (ko) | 2020-01-20 | 2021-07-28 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 |
KR20220139199A (ko) * | 2021-04-07 | 2022-10-14 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11822793B2 (en) | 2022-04-04 | 2023-11-21 | Western Digital Technologies, Inc. | Complete and fast protection against CID conflict |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826068A (en) * | 1994-11-09 | 1998-10-20 | Adaptec, Inc. | Integrated circuit with a serial port having only one pin |
US5938742A (en) * | 1995-08-18 | 1999-08-17 | General Magic, Inc. | Method for configuring an intelligent low power serial bus |
US6691257B1 (en) * | 2000-04-13 | 2004-02-10 | Stratus Technologies Bermuda Ltd. | Fault-tolerant maintenance bus protocol and method for using the same |
US7308524B2 (en) * | 2003-01-13 | 2007-12-11 | Silicon Pipe, Inc | Memory chain |
US7234099B2 (en) * | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
US20040237001A1 (en) * | 2003-05-21 | 2004-11-25 | Sun Microsystems, Inc. | Memory integrated circuit including an error detection mechanism for detecting errors in address and control signals |
DE10335978B4 (de) * | 2003-08-06 | 2006-02-16 | Infineon Technologies Ag | Hub-Baustein zum Anschließen von einem oder mehreren Speicherbausteinen |
US7143207B2 (en) * | 2003-11-14 | 2006-11-28 | Intel Corporation | Data accumulation between data path having redrive circuit and memory device |
DE102004004796B4 (de) * | 2004-01-30 | 2007-11-29 | Infineon Technologies Ag | Vorrichtung zur Datenübertragung zwischen Speichern |
US7389465B2 (en) * | 2004-01-30 | 2008-06-17 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
US8375146B2 (en) * | 2004-08-09 | 2013-02-12 | SanDisk Technologies, Inc. | Ring bus structure and its use in flash memory systems |
JP2006065697A (ja) * | 2004-08-27 | 2006-03-09 | Hitachi Ltd | 記憶デバイス制御装置 |
US20070165457A1 (en) * | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
US8335868B2 (en) | 2006-03-28 | 2012-12-18 | Mosaid Technologies Incorporated | Apparatus and method for establishing device identifiers for serially interconnected devices |
US20070271495A1 (en) * | 2006-05-18 | 2007-11-22 | Ian Shaeffer | System to detect and identify errors in control information, read data and/or write data |
US7904639B2 (en) * | 2006-08-22 | 2011-03-08 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
EP2487794A3 (en) | 2006-08-22 | 2013-02-13 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
WO2008022454A1 (en) * | 2006-08-22 | 2008-02-28 | Mosaid Technologies Incorporated | Scalable memory system |
US8407395B2 (en) * | 2006-08-22 | 2013-03-26 | Mosaid Technologies Incorporated | Scalable memory system |
US8700818B2 (en) | 2006-09-29 | 2014-04-15 | Mosaid Technologies Incorporated | Packet based ID generation for serially interconnected devices |
US7937641B2 (en) * | 2006-12-21 | 2011-05-03 | Smart Modular Technologies, Inc. | Memory modules with error detection and correction |
KR101308047B1 (ko) * | 2007-02-08 | 2013-09-12 | 삼성전자주식회사 | 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법 |
-
2009
- 2009-12-10 KR KR1020117009393A patent/KR101687038B1/ko active IP Right Grant
- 2009-12-10 CN CN200980151271.4A patent/CN102257573B/zh not_active Expired - Fee Related
- 2009-12-10 EP EP09832759.6A patent/EP2359372B1/en active Active
- 2009-12-10 TW TW098142289A patent/TWI517174B/zh not_active IP Right Cessation
- 2009-12-10 WO PCT/CA2009/001777 patent/WO2010069045A1/en active Application Filing
- 2009-12-10 JP JP2011541038A patent/JP5753988B2/ja not_active Expired - Fee Related
-
2014
- 2014-12-19 JP JP2014257755A patent/JP2015099598A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20110103388A (ko) | 2011-09-20 |
CN102257573A (zh) | 2011-11-23 |
WO2010069045A1 (en) | 2010-06-24 |
JP5753988B2 (ja) | 2015-07-22 |
EP2359372B1 (en) | 2020-04-08 |
TW201106369A (en) | 2011-02-16 |
JP2012512467A (ja) | 2012-05-31 |
EP2359372A1 (en) | 2011-08-24 |
JP2015099598A (ja) | 2015-05-28 |
CN102257573B (zh) | 2014-11-05 |
KR101687038B1 (ko) | 2016-12-15 |
EP2359372A4 (en) | 2017-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI517174B (zh) | 錯誤檢測方法及包含一或更多個記憶體裝置之系統 | |
US11928020B2 (en) | Memory error detection | |
US8880970B2 (en) | Error detection method and a system including one or more memory devices | |
US11037619B2 (en) | Using dual channel memory as single channel memory with spares | |
US8327105B2 (en) | Providing frame start indication in a memory system having indeterminate read data latency | |
US8255783B2 (en) | Apparatus, system and method for providing error protection for data-masking bits | |
TWI684102B (zh) | 記憶體系統中的鏈路糾錯 | |
US8359521B2 (en) | Providing a memory device having a shared error feedback pin | |
JP4936746B2 (ja) | 半導体装置 | |
US8392796B2 (en) | Reliability, availability, and serviceability solution for memory technology | |
US8055976B2 (en) | System and method for providing error correction and detection in a memory system | |
US7480847B2 (en) | Error correction code transformation technique | |
JP2006107710A (ja) | 停電によるプログラムエラーの有無を検出することができる集積回路メモリ装置及び方法 | |
US8023358B2 (en) | System and method for providing a non-power-of-two burst length in a memory system | |
JP2006048690A (ja) | バス速度を増倍するためのシステム、方法、およびプログラム | |
TWI774749B (zh) | 電子設備 | |
US10740179B2 (en) | Memory and method for operating the memory | |
US11048602B2 (en) | Electronic devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |