TWI409821B - 解碼方法、編碼方法及啟動控制系統 - Google Patents
解碼方法、編碼方法及啟動控制系統 Download PDFInfo
- Publication number
- TWI409821B TWI409821B TW098133138A TW98133138A TWI409821B TW I409821 B TWI409821 B TW I409821B TW 098133138 A TW098133138 A TW 098133138A TW 98133138 A TW98133138 A TW 98133138A TW I409821 B TWI409821 B TW I409821B
- Authority
- TW
- Taiwan
- Prior art keywords
- error correction
- correction code
- data
- gate
- decoding
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000012937 correction Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 23
- 230000004913 activation Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 16
- 239000000463 material Substances 0.000 claims description 14
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/44—Indication or identification of errors, e.g. for repair
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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)
- Read Only Memory (AREA)
Description
本發明係有關於一種從反及閘快閃記憶體(NAND Flash)啟動之解碼/編碼方法及相關系統,且特別有關於用於讀取先前作為反及閘啟動資訊(NAND booting information)複本(duplicate)寫入反及閘快閃記憶體之資料並對所述讀取資料執行投票策略(voting scheme)以獲取反及閘啟動資訊的解碼方法、編碼方法及啟動控制系統。
反及閘快閃記憶體有諸多優點,例如高吞吐量(high throughout)、擦除時間短(fast erasing time)及每位元組之成本較基於反或閘架構之快閃記憶體(NOR architecture-based Flash memory)低很多,因此,其逐漸成為需要大儲存容量以儲存操作系統(Operation System,OS)圖像與多媒體對象(如MP3檔案)之個人數位助理(Personal Digital Assistant,PDA)及移動手機平台的理想解決方案。反及閘快閃記憶體係為非就地執行(non-Execution in Place,non-XIP)型記憶體,因此於從反及閘快閃記憶體啟動之前,必須將代碼映射(shadow)至就地執行(Execution in Place,XIP)型記憶體,例如隨機存取記憶體(Random Access Memory,RAM)。
反及閘快閃記憶體陣列(array)係分為一連串之區塊(block),而所述區塊係為反及閘快閃記憶體裝置中之最小可擦除單元。例如,一個2G位元組之反及閘快閃記憶體裝置,分為2048個區塊,每個區塊有64個頁面,每個頁面為2112位元組,其中包含2048位元組資料區域與64位元組備份(spare)區域。備份區域通常用於錯誤更正碼(error correction code,ECC)以確保資料完整性、耗損平均(wear-leveling)及其他軟體開銷(overhead)功能。請參考第1A及1B圖,其分別係依據先前技術於同一頁面中儲存資料與備份資訊的兩個傳統實施例(implementation)之示意圖,第1A圖係第一實施例之示意圖,2112位元組之頁面包含四個528位元組之單元,且每一單元包含512位元組之資料區域及與之直接相鄰的16位元組之備份區域。第1B圖係第二實施例之示意圖,所示之資料與備份資訊係分開儲存。四個512位元組之資料區域(資料區域1-4)首先被儲存,其各自對應之16位元組之備份區域(備份區域1-4)則依序儲存於其後的頁面末端。
另外,當前之反及閘快閃記憶體製造包含一種每個細胞(cell)只可儲存一位元資料之傳統單階細胞(single-level cell,SLC)製程,以及一種每個細胞最少可儲存兩位元資料之多階細胞(multi-level cell,MLC)製程。相對於單階細胞製程而言,多階細胞製程具有明顯之密度(density)優勢,但於速度及可靠性上存在不足。單階細胞反及閘快閃記憶體係利用簡單漢明碼(Hamming code)以更正單一位元錯誤。然而,從單階細胞反及閘快閃記憶體至多階細胞反及閘快閃記憶體,ECC位元數(bit number)逐步增大,其使得從反及閘快閃記憶體啟動之複雜性也增大。
當系統不能確定反及閘快閃記憶體係為何種類型時,系統將依據反及閘啟動資訊之設置,例如頁面大小、地址週期、匯流排介面、ECC位元數等,從反及閘快閃記憶體之區塊0的啟動頁面開始讀取所述反及閘快閃記憶體。若所述使用的設置不正確且ECC檢查失敗,系統將繼續嘗試反及閘啟動資訊之另一設置,直至成功從反及閘快閃記憶體啟動。對於頁面大小為4K位元組之反及閘快閃記憶體而言,其ECC位元數之迭代(iteration)包含4、6、8、10及12位元。亦即,不包含嘗試其他諸如頁面大小、地址週期之設置,系統最多需嘗試五次以成功從反及閘快閃記憶體啟動。
另一方面,於啟動頁面中,反及閘啟動資訊需佔用大約50位元組。請再次參考第1A及1B圖,若反及閘快閃記憶體使用第1A圖所示之第一實施,系統只能於讀取一個512位元組之資料區域之後才可檢查備份區域中之對應奇偶校驗(parity);或者,若反及閘快閃記憶體使用第1B圖所示之第二實施,系統只能於讀取完四個512位元組之資料區域之後才可檢查備份區域中之對應奇偶校驗,其將耗費很長時間。
綜上所述,於傳統之啟動方法中,系統需嘗試反及閘啟動資訊之大量設置以尋求合適之設置。此外,即便反及閘啟動資訊僅佔用資料區域之一小部份,系統仍需讀取全部之資料區域與備份區域後才可以執行ECC檢查。
為增強相關裝置之錯誤更正能力與啟動效能,特提供以下技術方案:本發明實施例提供一種解碼方法,用於從包含啟動頁面之反及閘快閃記憶體啟動,所述啟動頁面用於儲存多個反及閘啟動資訊及多個藉由錯誤更正碼位元數產生之對應之奇偶校驗,所述解碼方法包含:讀取啟動頁面以獲取多個配置資料及多個錯誤更正碼資料;以及對所述多個配置資料及所述多個錯誤更正碼資料執行投票策略及錯誤更正碼解碼程序,以獲取所述反及閘啟動資訊。
本發明實施例另提供一種編碼方法,用於反及閘快閃記憶體,所述編碼方法包含:依據預定錯誤更正碼能力編碼反及閘啟動資訊,以產生預定錯誤更正碼位元數對應之奇偶校驗;複製所述反及閘啟動資訊及所述奇偶校驗,以產生多個反及閘啟動資訊及多個奇偶校驗;以及將所述多個反及閘啟動資訊及所述多個奇偶校驗寫入所述反及閘快閃記憶體之啟動頁面。
本發明實施例提供一種啟動控制系統,用於從包含啟動頁面之反及閘快閃記憶體啟動,所述啟動頁面儲存多個反及閘啟動資訊及多個奇偶校驗,每一奇偶校驗對應於所述反及閘啟動資訊及預定錯誤更正碼位元數,所述啟動控制系統包含:反及閘快閃記憶體控制器,耦接至所述反及閘快閃記憶體,用於讀取所述啟動頁面以獲取多個配置資料及多個錯誤更正碼資料;以及處理單元,耦接至所述反及閘快閃記憶體控制器,用於對所述多個配置資料及所述多個錯誤更正碼資料執行投票策略,並控制錯誤更正碼引擎以對所述多個配置資料及所述多個錯誤更正碼資料執行錯誤更正碼解碼程序,以獲取所述反及閘啟動資訊。
以上所述的解碼方法、編碼方法及其啟動控制系統,能夠藉由利用投票策略、處理單元及啟動控制設備增強相關裝置之錯誤更正能力與啟動效能。
於說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件於功能上的差異來作為區分的準則。於通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」一詞於此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
本發明欲為利用反及閘快閃記憶體並希望從其啟動之系統提供一種解碼方法20。舉例而言,所述系統可係為利用反及閘快閃記憶體以獲取大儲存容量之移動手機平台、可攜式電子裝置、電腦、多媒體平台或電子裝置。
請注意,反及閘快閃記憶體之反及閘啟動資訊,例如頁面大小、地址週期、匯流排介面及ECC位元數,係依本發明另一實施例中編碼方法60(稍後將作說明)進行編碼並寫入反及閘快閃記憶體。於執行編碼方法60之後,反及閘快閃記憶體之啟動頁面將儲存多個反及閘啟動資訊及多個奇偶校驗,每一奇偶校驗皆對應於所述反及閘啟動資訊及ECC位元數,所述ECC位元數包含4、6、8、10及12位元等。於一實施例中,需使用最大ECC位元數以確保所有類型之ECC可被解碼。換言之,啟動頁面儲存反及閘啟動資訊與對應奇偶校驗之複本。
請參考第2圖,第2圖係依本發明實施例之解碼方法20的流程圖。所述解碼方法20包含以下步驟:
步驟200:開始。
步驟202:讀取反及閘快閃記憶體之啟動頁面,以獲取N個配置資料(configuration data)及N個ECC資料,N>1。
步驟204:將所述N個配置資料及所述N個ECC資料寫入記憶體單元。
步驟206:對所述N個配置資料及所述N個ECC資料執行投票策略及ECC解碼程序,以獲取反及閘啟動資訊。
步驟208:結束。
啟動頁面通常位於區塊0。於解碼方法20中,系統首先讀取啟動頁面以獲取配置資料及ECC資料。配置資料係為帶有於執行資料傳送中產生之位元錯誤之反及閘啟動資訊,而ECC資料則係為帶有於執行資料傳送中產生之位元錯誤之奇偶校驗。然後,系統將N個配置資料及N個ECC資料寫入系統中之記憶體單元。由於反及閘快閃記憶體係為非就地執行型記憶體,因此,所述記憶體單元可係為RAM。應注意,於本發明另一實施例中,由於系統亦可藉由給定地址來讀取啟動頁面,並可執行後續步驟而無需儲存N個配置資料及N個ECC資料至記憶體單元,因此,步驟204亦可省略。
最後,系統對N個配置資料及N個ECC資料執行投票策略及ECC解碼程序,以獲取反及閘啟動資訊。投票策略較佳地係為最大得票數的策略(majority voting scheme)。依據解碼方法20,當從反及閘快閃記憶體啟動時,系統無需花費太多時間以嘗試ECC位元數之迭代。並且,系統可以不同方式執行步驟206。簡言之,系統可先執行最大得票數的策略,後執行ECC解碼程序,或先執行ECC解碼程序。
請參考第3、4、5圖,所述圖示分別係為依本發明實施例之不同解碼方法30、40、50的流程圖。所述解碼方法30包含以下步驟:
步驟300:開始。
步驟302:讀取反及閘快閃記憶體之啟動頁面,以獲取N個配置資料及N個ECC資料,N>1。
步驟304:將所述N個配置資料及所述N個ECC資料寫入記憶體單元。
步驟306:對所述N個配置資料執行投票策略,以決定得勝配置資料(winning configuration data)。
步驟308:依據所述N個ECC資料之每一者,對得勝配置資料執行ECC解碼程序,以產生解碼結果。
步驟310:決定解碼結果是否成功。若是,則反及閘啟動資訊已獲取;若否,返回至執行步驟308。
步驟312:結束。
解碼方法30中之步驟306至310可類似於解碼方法20中之步驟206而執行。於解碼方法30中,系統藉由最大得票數的策略,從N個配置資料中決定一個得勝配置資料,所述得勝配置資料係最可能成為反及閘啟動資訊之資料。然後,系統嘗試使用每一ECC資料來解碼得勝配置資料,並相應地產生所述的解碼結果。若解碼結果成功,則表明所使用的ECC資料恰好為所述得勝配置資料之奇偶校驗,且可更正所述得勝配置資料以獲取反及閘啟動資訊;若所述解碼結果不成功,則表明所使用的ECC資料不是所述得勝配置資料之奇偶校驗。系統必須根據另一個未使用之ECC資料,再次執行ECC解碼程序,直至獲取反及閘啟動資訊。
另外,解碼方法40包含以下步驟:
步驟400:開始。
步驟402:讀取反及閘快閃記憶體之啟動頁面,以獲取N個配置資料及N個ECC資料,N>1。
步驟404:將所述N個配置資料及所述N個ECC資料寫入記憶體單元。
步驟406:對所述N個配置資料執行投票策略,以決定得勝配置資料。
步驟408:對所述N個ECC資料執行投票策略,以決定得勝ECC資料。
步驟410:依據得勝ECC資料對得勝配置資料執行ECC解碼程序,以獲取反及閘啟動資訊。
步驟412:結束。
解碼方法40中之步驟406至410可類似於解碼方法20中之步驟206而執行。於解碼方法40中,系統分別對N個配置資料及N個ECC資料執行最大得票數的策略,然後依據得勝ECC資料對得勝配置資料執行ECC解碼程序。由於所述得勝配置資料最可能成為反及閘啟動資訊,且所述得勝ECC資料最可能成為對應之奇偶校驗,因此,系統可相應地獲取反及閘啟動資訊。
另外,解碼方法50包含以下步驟:
步驟500:開始。
步驟502:讀取反及閘快閃記憶體之啟動頁面,以獲取N個配置資料及N個ECC資料,N>1。
步驟504:將所述N個配置資料及所述N個ECC資料寫入記憶體單元。
步驟506:依據所述N個ECC資料中之一對應的ECC資料,對所述N個配置資料中之每一者執行ECC解碼程序,以產生N個解碼結果。
步驟508:對所述N個解碼結果執行投票策略,以決定得勝解碼結果作為反及閘啟動資訊。
步驟510:結束。
解碼方法50中之步驟506至508可類似於解碼方法20中之步驟206而執行。所述解碼方法50與解碼方法30及40之最大區別在於:於解碼方法50中,系統首先執行ECC解碼程序,然後執行最大得票數的策略。於對每一配置資料執行ECC解碼程序並產生N個解碼結果之後,系統對所述N個解碼結果執行最大得票數的策略並決定得勝解碼結果作為反及閘啟動資訊。
利用編碼方法60,系統最佳化多階細胞反及閘快閃記憶體之ECC位元數,而多階細胞反及閘快閃記憶體所需之ECC位元數低於ECC之最大能力(capability)。利用解碼方法20及其他實施例以獲取由編碼方法60編碼之反及閘啟動資訊,系統可因最大得票數的策略而節省嘗試ECC位元數之迭代的時間,並得到高的錯誤更正能力。另一方面,當系統藉由解碼方法20、30、40及50獲取有效之反及閘啟動資訊失敗時,則表明除ECC位元數外,系統可能使用了錯誤之啟動資訊,例如頁面大小與地址週期之設置。此時,系統改變頁面大小或者地址週期之設置,並嘗試獲取有效之反及閘啟動資訊。
於執行解碼方法20、30、40及50中讀取啟動頁面之步驟之前,系統必須禁能用於啟動頁面之ECC策略,以確保最大得票數的策略及ECC編碼程序可被成功執行。並且,對於多階細胞反及閘快閃記憶體而言,奇偶校驗通常係藉由BCH(Bose-Chaudhuri-Hocquenghem)演算法來實作。
所述編碼方法60將描述如下。請參考第6圖,第6圖係依本發明實施例之編碼方法60的流程圖。編碼方法60係用於產生與反及閘啟動資訊對應之奇偶校驗並將反及閘啟動資訊寫入反及閘快閃記憶體。所述編碼方法60包含以下步驟:
步驟600:開始。
步驟602:依據預定(predetermined)ECC能力編碼反及閘啟動資訊,以產生與預定ECC位元數對應之奇偶校驗。
步驟604:複製反及閘啟動資訊及奇偶校驗,以產生N個反及閘啟動資訊及N個奇偶校驗,N>1。
步驟606:將所述N個反及閘啟動資訊及所述N個奇偶校驗寫入反及閘快閃記憶體之啟動頁面。
步驟608:結束。
首先,依據預定ECC能力,例如ECC之最大能力,系統編碼反及閘啟動資訊以產生與預定ECC位元數對應之奇偶校驗,所述預定ECC位元數具有依ECC之最大能力的最大數值。因此,反及閘啟動資訊可藉由ECC之最大能力而得到保護。接著,系統複製反及閘啟動資訊及奇偶校驗,以產生N個反及閘啟動資訊及N個奇偶校驗,然後將所述N個反及閘啟動資訊及所述N個奇偶校驗寫入反及閘快閃記憶體之啟動頁面。於本實施例之步驟606中,每一反及閘啟動資訊之後依序緊跟有其對應之奇偶校驗。但於另一實施例中,奇偶校驗可保存於反及閘啟動資訊之前的所需位置。所述複本之數量取決於所述頁面之大小。
請進一步參考第7A及7B圖。第7A圖係傳統ECC奇偶校驗之分配方式的示意圖,而第7B圖係依編碼方法60之ECC奇偶校驗之分配方式的示意圖。如第7A圖所示,系統讀取完一個512位元組之資料區域後,才可檢查儲存於備份區域中之對應的奇偶校驗(圖中斜線區)。與之相較,於第7B圖中,系統將N個反及閘啟動資訊及N個奇偶校驗(圖中斜線區)寫入反及閘快閃記憶體,並依據解碼方法20執行最大得票數的策略,從而可增強錯誤更正能力。
藉由所述驗證,本發明之所述實施例即使於超過30個百分比之反及閘啟動資訊損壞時仍可防止錯誤。因此,本發明之所述實施例可提供高的錯誤更正能力。另外,本發明之所述實施例可最佳化多階細胞反及閘快閃記憶體之ECC位元數,而多階細胞反及閘快閃記憶體所需之ECC位元數低於ECC之最大能力。
所述解碼方法20、30、40及50係用於獲取反及閘啟動資訊,且每一者皆可用於完整之啟動程序。請參考第8圖,第8圖係依本發明實施例之啟動方法80的流程圖。所述啟動方法80包含以下步驟:
步驟800:開始。
步驟802:設置頁面大小及地址週期以存取反及閘快閃記憶體。
步驟804:執行解碼方法20以獲取反及閘啟動資訊。
步驟806:檢查反及閘啟動資訊之有效性。若反及閘啟動資訊係有效,執行步驟808;否則,返回至執行步驟802以改變頁面大小及地址週期之設置。
步驟808:設置反及閘啟動資訊至反及閘快閃記憶體控制器。
步驟810:將載入程序(loader)從反及閘快閃記憶體讀取至記憶體單元。
步驟812:於記憶體單元上執行載入程序,以從反及閘快閃記憶體啟動。
步驟814:結束。
於啟動方法80中,反及閘快閃記憶體儲存藉由編碼方法60產生之資料。首先,系統設置頁面大小及地址週期以存取反及閘快閃記憶體,且執行解碼方法20以獲取反及閘啟動資訊。應注意,解碼方法20亦可由解碼方法30、40或50替代。所述解碼方法之詳細操作已於上文描述,此處不另贅述。當反及閘啟動資訊被獲取之後,系統檢查反及閘啟動資訊是否有效。系統將執行步驟802、804及806之循環直至反及閘啟動資訊有效。然後,系統設置有效之反及閘啟動資訊至反及閘快閃記憶體控制器,並將載入程序從反及閘快閃記憶體中讀取至記憶體單元(例如RAM),從而系統可於記憶體單元上執行載入程序,並最終從反及閘快閃記憶體啟動。
此外,解碼方法20、30、40及50以及啟動方法80之任一者皆可於啟動控制系統90中實施。請參考第9圖,第9圖係依本發明實施例之啟動控制系統90的示意圖。啟動控制系統90用於從反及閘快閃記憶體910中啟動,所述反及閘快閃記憶體910中包含儲存有編碼方法60產生之反及閘啟動資訊的啟動頁面。所述啟動控制系統90包含處理單元900、記憶體單元902、反及閘快閃記憶體控制器904及ECC引擎(engine)906,且啟動控制系統90之所述單元係經由匯流排908通訊。
所述啟動控制系統90實施了解碼方法20與啟動方法80。處理單元900被用於執行以下步驟:設置頁面大小及地址週期,以存取反及閘快閃記憶體(步驟802);對N個配置資料及N個ECC資料執行投票策略(步驟206);檢查反及閘啟動資訊之有效性(步驟806);當所述反及閘啟動資訊結果無效時,改變頁面大小及地址週期之設置(亦即,當所述結果無效時返回至步驟802);設置有效之反及閘啟動資訊至反及閘快閃記憶體控制器904(步驟808),以及於記憶體單元902上執行載入程序,用於從反及閘快閃記憶體910啟動(步驟812)。所述記憶體單元902係為就地執行型記憶體,例如RAM,其耦接至處理單元900及反及閘快閃記憶體控制器904,並用於儲存所述N個配置資料及所述N個ECC資料。於本發明另一實施例中,記憶體單元902可獨立於ECC引擎906,而當ECC引擎906具有足夠之內部緩衝器來儲存反及閘啟動資訊時,記憶體單元902亦可實作於ECC引擎906中。
反及閘快閃記憶體控制器904耦接至處理單元900、記憶體單元902及反及閘快閃記憶體910,用於獲取N個配置資料及N個ECC資料(步驟202),將N個配置資料及N個ECC資料寫入記憶體單元902(步驟204),以及將載入程序從反及閘快閃記憶體910讀取至記憶體單元902(步驟810)。ECC引擎906耦接至處理單元900、記憶體單元902及反及閘快閃記憶體控制器904,用於執行ECC解碼程序以獲取反及閘啟動資訊(步驟206)。
簡言之,反及閘快閃記憶體控制器904控制對反及閘快閃記憶體910之讀/寫動作。處理單元900及ECC引擎906聯合運作以執行投票策略及ECC解碼程序,直至獲取有效之反及閘啟動資訊。最後,啟動控制系統90之全部單元聯合運作以從反及閘快閃記憶體910啟動。關於啟動控制系統90之不同實施例,請參考解碼方法20、30、40及50,所述解碼方法描述了處理單元900及ECC引擎906之不同操作。
總之,依本發明實施例,所述解碼方法可藉由投票策略而提升錯誤更正能力,而所述編碼方法可最佳化ECC位元數,因此所述啟動方法及啟動控制裝置可藉由利用所述解碼方法及編碼方法來提升從反及閘快閃記憶體啟動之效能。
以上所述僅為本發明之較佳實施例,舉凡熟悉本案之人士援依本發明之精神所做之等效變化與修飾,皆應涵蓋於後附之申請專利範圍內。
20、30、40、50‧‧‧解碼方法
60‧‧‧編碼方法
200~208、300~312、400~412、500~510、600~608‧‧‧步驟
80‧‧‧啟動方法
800~814‧‧‧步驟
90‧‧‧啟動控制系統
900‧‧‧處理單元
902‧‧‧記憶體單元
904‧‧‧反及閘快閃記憶體控制器
906‧‧‧ECC引擎
908‧‧‧匯流排
910‧‧‧反及閘快閃記憶體
第1A及1B圖分別係依先前技術於同一頁面儲存資料與備份資訊之兩種傳統實施例的示意圖。
第2~5圖係依本發明實施例之不同解碼方法的流程圖。
第6圖係依本發明實施例之編碼程序的流程圖。
第7A圖係傳統ECC奇偶校驗之分配方式的示意圖。
第7B圖係依第6圖所示編碼程序之ECC奇偶校驗之分配方式的示意圖。
第8圖係依本發明實施例之啟動程序的流程圖。
第9圖係依本發明實施例之啟動控制系統的示意圖。
20...解碼方法
200~208...步驟
Claims (18)
- 一種解碼方法,用於從包含一啟動頁面之一反及閘快閃記憶體啟動,該啟動頁面用於儲存多個反及閘啟動資訊及多個對應奇偶校驗,每一奇偶校驗係藉由一預定錯誤更正碼位元數而產生,該解碼方法包含:讀取該啟動頁面,以獲取多個配置資料及多個錯誤更正碼資料;以及對該多個配置資料及該多個錯誤更正碼資料執行一投票策略及一錯誤更正碼解碼程序,以獲取該反及閘啟動資訊。
- 如申請專利範圍第1項所述之解碼方法,更包含:於該讀取該啟動頁面之步驟之前,禁能用於該啟動頁面之一錯誤更正碼策略。
- 如申請專利範圍第1項所述之解碼方法,更包含:於該讀取該啟動頁面之步驟之後,將該多個配置資料及該多個錯誤更正碼資料寫入一記憶體單元。
- 如申請專利範圍第1項所述之解碼方法,其中該投票策略係為一最大得票數的策略。
- 如申請專利範圍第1項所述之解碼方法,其中該對該多個配置資料及該多個錯誤更正碼資料執行該投票策略及該錯誤更正碼解碼程 序,以獲取該反及閘啟動資訊之步驟包含:對該多個配置資料執行該投票策略,以決定一得勝配置資料;以及依據該多個錯誤更正碼資料之每一者對該得勝配置資料執行該錯誤更正碼解碼程序,直至取得該反及閘啟動資訊。
- 如申請專利範圍第1項所述之解碼方法,其中該對該多個配置資料及該多個錯誤更正碼資料執行該投票策略及該錯誤更正碼解碼程序,以獲取該反及閘啟動資訊之步驟包含:對該多個配置資料執行該投票策略,以決定一得勝配置資料;對該多個錯誤更正碼資料執行該投票策略,以決定一得勝錯誤更正碼資料;以及依據該得勝錯誤更正碼資料對該得勝配置資料執行該錯誤更正碼解碼程序,以獲取該反及閘啟動資訊。
- 如申請專利範圍第1項所述之解碼方法,其中該對該多個反及閘啟動資訊及該多個錯誤更正碼資料執行該投票策略及該錯誤更正解碼程序,以獲取該反及閘啟動資訊之步驟包含:依據該多個錯誤更正碼資料中一對應的錯誤更正碼資料,對該多個配置資料之每一者執行該錯誤更正碼解碼程序,以產生多個解碼結果;以及對該多個解碼結果執行該投票策略,以決定一得勝解碼結果作為該反及閘啟動資訊。
- 一種編碼方法,用於一反及閘快閃記憶體,該編碼方法包含: 依據一預定錯誤更正碼能力編碼一反及閘啟動資訊,以產生一預定錯誤更正碼位元數對應之一奇偶校驗;複製該反及閘啟動資訊及該奇偶校驗,以產生多個反及閘啟動資訊及多個奇偶校驗;以及將該多個反及閘啟動資訊及該多個奇偶校驗寫入該反及閘快閃記憶體之一啟動頁面。
- 一種啟動控制系統,用於從包含一啟動頁面之一反及閘快閃記憶體啟動,該啟動頁面儲存多個反及閘啟動資訊及多個奇偶校驗,每一奇偶校驗皆對應於該反及閘啟動資訊及一預定錯誤更正碼位元數,該啟動控制系統包含:一反及閘快閃記憶體控制器,耦接至該反及閘快閃記憶體,用於讀取該啟動頁面以獲取多個配置資料及多個錯誤更正碼資料;以及一處理單元,耦接至該反及閘快閃記憶體控制器,用於對該多個配置資料及該多個錯誤更正碼資料執行一投票策略,並控制一錯誤更正碼引擎以對該多個配置資料及該多個錯誤更正碼資料執行一錯誤更正碼解碼程序,以獲取該反及閘啟動資訊。
- 如申請專利範圍第9項所述之啟動控制系統,其中於該反及閘快閃記憶體控制器讀取該啟動頁面之前,該處理單元更禁能用於該啟動頁面之該錯誤更正碼引擎。
- 如申請專利範圍第9項所述之啟動控制系統,更包含:一記憶體單元,耦接至該處理單元與該反及閘快閃記憶體控制器, 用於儲存該多個配置資料及該多個錯誤更正碼資料。
- 如申請專利範圍第11項所述之啟動控制系統,其中該記憶體單元獨立於該錯誤更正碼引擎。
- 如申請專利範圍第11項所述之啟動控制系統,其中該記憶體單元實作於該錯誤更正碼引擎中。
- 如申請專利範圍第11項所述之啟動控制系統,其中於讀取該啟動頁面之後,該反及閘快閃記憶體控制器更將該多個配置資料及該多個錯誤更正碼資料寫入該記憶體單元。
- 如申請專利範圍第9項所述之啟動控制系統,其中該投票策略係為一最大得票數的策略。
- 如申請專利範圍第9項所述之啟動控制系統,其中於該處理單元對該多個配置資料執行該投票策略以決定一得勝配置資料之後,依據該多個錯誤更正碼資料之每一者,該錯誤更正碼引擎對該得勝配置資料執行該錯誤更正碼解碼處理,直至取得該反及閘啟動資訊。
- 如申請專利範圍第9項所述之啟動控制系統,其中於該處理單元對該多個配置資料執行該投票策略以決定一得勝配置資料,且對該多個錯誤更正碼資料執行該投票策略以決定一得勝錯誤更正碼資料之後,依據該得勝錯誤更正碼資料,該錯誤更正碼引擎對該得勝配置資料 執行該錯誤更正碼解碼程序,直至取得該反及閘啟動資訊。
- 如申請專利範圍第9項所述之啟動控制系統,其中於該錯誤更正碼引擎單元依據該多個錯誤更正碼資料之一對應錯誤更正碼資料,對該多個配置資料之每一者執行該錯誤更正碼解碼程序以產生多個解碼結果之後,該處理單元對該多個解碼結果執行該投票策略,以決定一得勝解碼結果作為該反及閘啟動資訊。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/411,403 US8175012B2 (en) | 2009-03-26 | 2009-03-26 | Decoding/encoding method for booting from a NAND flash and system thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201035983A TW201035983A (en) | 2010-10-01 |
TWI409821B true TWI409821B (zh) | 2013-09-21 |
Family
ID=42772480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098133138A TWI409821B (zh) | 2009-03-26 | 2009-09-30 | 解碼方法、編碼方法及啟動控制系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8175012B2 (zh) |
CN (1) | CN101848000B (zh) |
TW (1) | TWI409821B (zh) |
Families Citing this family (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009187199A (ja) * | 2008-02-05 | 2009-08-20 | Panasonic Corp | 情報処理システム及び情報処理方法 |
US8555050B2 (en) * | 2010-07-15 | 2013-10-08 | Broadcom Corporation | Apparatus and method thereof for reliable booting from NAND flash memory |
US8589730B2 (en) * | 2010-08-31 | 2013-11-19 | Apple Inc. | Handling errors during device bootup from a non-volatile memory |
TW201246075A (en) * | 2011-05-06 | 2012-11-16 | Asmedia Technology Inc | Flash device and associated booting method |
US8880977B2 (en) * | 2011-07-22 | 2014-11-04 | Sandisk Technologies Inc. | Systems and methods of storing data |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US9459955B2 (en) * | 2012-05-24 | 2016-10-04 | Sandisk Technologies Llc | System and method to scramble data based on a scramble key |
TWI520148B (zh) * | 2012-07-05 | 2016-02-01 | 慧榮科技股份有限公司 | 記憶體裝置和記憶體控制方法 |
CN103455454B (zh) * | 2013-09-02 | 2016-09-07 | 华为技术有限公司 | 一种控制存储器启动的方法和装置 |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
CN104932952A (zh) * | 2015-03-05 | 2015-09-23 | 华南理工大学 | 一种nand闪存的差错控制码结构及其差错码控制方法 |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
KR20180009558A (ko) * | 2016-07-19 | 2018-01-29 | 삼성전자주식회사 | 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러 |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
WO2018132219A1 (en) * | 2017-01-13 | 2018-07-19 | Everspin Technologies, Inc. | Preprogrammed data recovery |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10388392B2 (en) * | 2017-04-08 | 2019-08-20 | Texas Instruments Incorporated | Safe execution in place (XIP) from flash memory |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US11288374B2 (en) * | 2017-10-31 | 2022-03-29 | Mitsubishi Heavy Industries Machinery Systems. Ltd. | Information processing device, method for controlling information processing device, and program |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
TWI665678B (zh) * | 2017-11-27 | 2019-07-11 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
TWI643201B (zh) * | 2017-11-27 | 2018-12-01 | 慧榮科技股份有限公司 | 編碼器及相關的編碼方法與快閃記憶體控制器 |
US11494260B2 (en) | 2017-12-18 | 2022-11-08 | Etron Technology, Inc. | Memory with an error correction function and related memory system |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11960608B2 (en) * | 2021-04-29 | 2024-04-16 | Infineon Technologies Ag | Fast secure booting method and system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268077A1 (en) * | 2004-05-11 | 2005-12-01 | Peter Kuan | Memory system for an electronic device and the method for controlling the same |
US7061804B2 (en) * | 2004-11-18 | 2006-06-13 | Qualcomm Incorporated | Robust and high-speed memory access with adaptive interface timing |
US20060279984A1 (en) * | 2005-06-02 | 2006-12-14 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit device |
US7234052B2 (en) * | 2002-03-08 | 2007-06-19 | Samsung Electronics Co., Ltd | System boot using NAND flash memory and method thereof |
US20070174602A1 (en) * | 2006-01-23 | 2007-07-26 | Rom-Shen Kao | Method of system booting with a direct memory access in a new memory architecture |
US20070226548A1 (en) * | 2006-03-23 | 2007-09-27 | Ming-Shiang Lai | System for booting from a non-xip memory utilizing a boot engine that does not have ecc capabilities during booting |
US20090049364A1 (en) * | 2007-08-16 | 2009-02-19 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, system, and method providing fast program and read operations |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4534498B2 (ja) * | 2004-01-28 | 2010-09-01 | ソニー株式会社 | 半導体装置およびその起動処理方法 |
US7610433B2 (en) * | 2004-02-05 | 2009-10-27 | Research In Motion Limited | Memory controller interface |
KR100909902B1 (ko) * | 2007-04-27 | 2009-07-30 | 삼성전자주식회사 | 플래쉬 메모리 장치 및 플래쉬 메모리 시스템 |
JP2010027163A (ja) * | 2008-07-22 | 2010-02-04 | Toshiba Corp | 半導体メモリコントローラ、および半導体メモリシステム、および半導体メモリシステムの記録再生方法 |
-
2009
- 2009-03-26 US US12/411,403 patent/US8175012B2/en not_active Expired - Fee Related
- 2009-09-30 TW TW098133138A patent/TWI409821B/zh not_active IP Right Cessation
- 2009-10-12 CN CN200910180272.3A patent/CN101848000B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7234052B2 (en) * | 2002-03-08 | 2007-06-19 | Samsung Electronics Co., Ltd | System boot using NAND flash memory and method thereof |
US20050268077A1 (en) * | 2004-05-11 | 2005-12-01 | Peter Kuan | Memory system for an electronic device and the method for controlling the same |
US7061804B2 (en) * | 2004-11-18 | 2006-06-13 | Qualcomm Incorporated | Robust and high-speed memory access with adaptive interface timing |
US20060279984A1 (en) * | 2005-06-02 | 2006-12-14 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit device |
US20070174602A1 (en) * | 2006-01-23 | 2007-07-26 | Rom-Shen Kao | Method of system booting with a direct memory access in a new memory architecture |
US20070226548A1 (en) * | 2006-03-23 | 2007-09-27 | Ming-Shiang Lai | System for booting from a non-xip memory utilizing a boot engine that does not have ecc capabilities during booting |
US20090049364A1 (en) * | 2007-08-16 | 2009-02-19 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, system, and method providing fast program and read operations |
Also Published As
Publication number | Publication date |
---|---|
US8175012B2 (en) | 2012-05-08 |
CN101848000A (zh) | 2010-09-29 |
TW201035983A (en) | 2010-10-01 |
US20100251074A1 (en) | 2010-09-30 |
CN101848000B (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI409821B (zh) | 解碼方法、編碼方法及啟動控制系統 | |
US9110832B2 (en) | Object oriented memory in solid state devices | |
US9124300B2 (en) | Error correction coding in non-volatile memory | |
US9817749B2 (en) | Apparatus and method of offloading processing from a data storage device to a host device | |
US20150046771A1 (en) | Operating method of error correction code decoder and memory controller including the error correction code decoder | |
US8341491B2 (en) | System and method for providing data integrity in a non-volatile memory system | |
WO2014164134A2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
WO2013096158A1 (en) | Using ecc encoding to verify an ecc decode operation | |
US20150046772A1 (en) | Method and device for error correcting code (ecc) error handling | |
TW202009942A (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201926023A (zh) | 資料存取方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US11868202B2 (en) | Granular error reporting on multi-pass programming of non-volatile memory | |
CN112214347A (zh) | 产生用于存储器子系统中的数据修改期间的错误检测的错误校验数据 | |
TWI529530B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112214346A (zh) | 用于存储器子系统中的数据修改期间的错误检测的方法及装置 | |
US20200186171A1 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN113724774A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
TW202125259A (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
US11853613B2 (en) | Encoding control method, memory storage device and memory control circuit unit | |
TWI681393B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI834149B (zh) | 表格管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202324433A (zh) | 記憶體控制器與資料處理方法 | |
CN117785545A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN113360429A (zh) | 数据重建方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |