簡易檢索 / 詳目顯示

研究生: 施絜心
Chieh-Hsin Shih
論文名稱: 低延遲及錯誤曉知漸進式錯誤更正碼技術以提升快閃記憶體之可靠度
Low-Latency Error-Aware Progressive ECC Techniques for Enhancing Reliability of Flash Memory
指導教授: 呂學坤
Shyue-Kung Lu
口試委員: 呂學坤
王乃堅
李進福
洪進華
學位類別: 碩士
Master
系所名稱: 電資學院 - 電機工程系
Department of Electrical Engineering
論文出版年: 2023
畢業學年度: 111
語文別: 中文
論文頁數: 88
中文關鍵詞: 快閃記憶體錯誤更正碼
外文關鍵詞: Flash Memory, Error Correction Code
相關次數: 點閱:219下載:3
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 快閃記憶體為重要且常見的儲存裝置之一,因科技快速進步和資訊量增長,快閃記憶體的需求也隨之上升。快閃記憶體為非揮發性記憶體,具有低功耗、低成本、高儲存容量和可擴展性等特性,使它成為各種電子產品中必要的裝置。然而快閃記憶體具有耐久度的問題,其可靠度會隨著寫入及抹除次數、讀取次數和資料保留時間等因素而下降。隨著製程的微縮,這些問題變得更加嚴重且需要被重視。
    BCH 碼為常被使用於快閃記憶體的錯誤更正碼之一,他可以一次保護多個位元的資料,然而需要較長的解碼延遲,解碼延遲也會隨著保護能力增強而提高。因此我們使用漸進式錯誤更正碼技術,在快閃記憶體上配置多個保護階層。再藉由分析解碼時編碼字的修正餘度來決定是否要將配置於記憶體頁的保護階層升級。因為升級過後的編碼字會產生額外的檢查位元,我們將額外檢查位元存在靜態隨機存取記憶體內再使用內容可定址記憶體紀錄。另外,本篇論文藉由模擬快閃記憶體在不同位元錯誤率下的保護能力使用情況來找出一組保護能力組合,此組合可以用來最佳化快閃記憶體生命週期下的平均解碼時間。
    另外,本篇研究將解碼流程分為錯誤偵測以及錯誤更正兩階段。若偵測出編碼字有發生錯誤時再進行後續的錯誤更正流程,可以減少沒有發生錯誤的編碼字之解碼時間。在編解碼的硬體架構方面,我們使用可重組式 BCH 碼之編解碼器,藉由使用一組 BCH 碼編解碼電路即可以做多種保護能力的編解碼。
    我們進行可靠度、良率、效能等分析,並實現了低延遲及錯誤曉知之漸進式錯誤更正碼技術之電路。相較於使用單一保護能力的錯誤更正碼,我們使用的低延遲及錯誤曉知之漸進式錯誤更正碼技術最多可以減少 87.5% 的平均解碼延遲,並且在記憶體操作 9×10^5 小時後仍可以維持達 0.998 的可靠度。


    Flash memory is one of the important storage devices which is widely used in our daily lives. The demand of flash memories grows with the rapid advance of technology and the information explosion. Flash memory is a type of nonvolatile memory and features low power, low cost, large storage capacity, and scalability. However, flash memory suffers from the reliability and limited endurance issues. The reliability of a flash cell is affected by program and erase cycles, read disturbance, and data retention time. As the process scaling down, the endurance and reliability issues become more serious.
    BCH code is a kind of error correction codes which is widely adopted for flash memory for data repair. BCH code can correct multiple errors though the decoding process requires long latency. Moreover, the required latency rises as the ECC protection capacity increases. Therefore, we propose a progressive ECC technique, which includes multiple ECC protection levels to be applied to flash memory. We decide whether the protection levels of flash memory pages should be upgraded through analyzing the correction slack of codewords during decoding. Since the codewords encoded with a higher protection level include more check bits as compared to codewords protected by the default level, we store the extra check bits in SRAM and record the physical page numbers on content addressable memory. Furthermore, we simulate the utilization of ECC protection capacities under different RBER to find a ECC protection capacity combination which can lower the average decoding latency throughout the lifetime of flash memory.
    Furthermore, our thesis separates the decoding process into error detection and error correction phases. Error correction is required only if the codeword is erroneous. This method reduces the decoding latency of error-free codewords. Besides, we use a reconfigurable BCH codec in our design, which can perform encoding and decoding for multiple BCH protection levels.
    We analyze the reliability, yield, performance and implement the architecture of the proposed method. Compared with using a uniform ECC protection capacity, the proposed progressive ECC technique reduces the decoding latency up to 87.5% and maintains the reliability at 0.998 after 9×10^5 operation hours.

    致謝 I 摘要 II Abstract III 圖目錄 VIII 表目錄 X 第一章 簡介 1 1.1 背景及動機 1 1.2 組織架構 4 第二章 快閃記憶體基本介紹 5 2.1 快閃記憶體介紹及工作原理 5 2.2 快閃記憶體之基本操作 6 2.2.1 寫入操作 6 2.2.2 抹除操作 7 2.2.3 讀取操作 8 2.3 快閃記憶體之陣列架構 9 2.3.1 非及型快閃記憶體 9 2.3.2 非或型快閃記憶體 10 2.4 固態硬碟 11 2.4.1 固態硬碟架構 11 2.4.2 快閃記憶體轉換層 12 2.4.3 邏輯/實體位址映射 13 2.4.4 垃圾回收 15 2.4.5 耗損平均 15 第三章 快閃記憶體之故障模型及修復技術 17 3.1 常見之記憶體故障模型 17 3.2 快閃記憶體故障模型 19 3.3 快閃記憶體之錯誤發生機制 21 3.3.1 寫入及抹除次數 21 3.3.2 讀取干擾 22 3.3.3 保留時間 23 3.4 錯誤更正碼 23 3.4.1 位元錯誤率 24 3.4.2 BCH 碼 25 3.4.3 低密度奇偶檢查碼 30 第四章 低延遲及錯誤曉知之漸進式錯誤更正碼技術 32 4.1 漸進式錯誤更正碼技術 32 4.2 額外檢查位元 (Extra Check Bits) 儲存機制 33 4.3 基於錯誤分布之低延遲漸進式錯誤更正碼分配演算法 35 4.3.1 演算法流程 35 4.3.2 演算法範例 39 4.4 低延遲及錯誤曉知之漸進式錯誤更正碼硬體架構 42 4.4.1 額外檢查位元內容可定址記憶體 (ECC CAM) 43 4.4.1 額外檢查位元靜態隨機存取記憶體 (ECC SRAM) 44 4.4.2 可重組式 BCH 碼編解碼模組 45 4.5 低延遲及錯誤曉知之漸進式錯誤更正碼讀取流程及範例 50 4.5.1 寫入流程 50 4.5.2 讀取流程 51 4.5.3 操作範例 53 第五章 實驗結果 56 5.1 實驗設定 56 5.2 修復率分析 58 5.3 良率分析 59 5.4 可靠度分析 60 5.5 效能分析 63 5.6 硬體成本分析 66 5.7 超大型積體電路實現 69 第六章 結論與未來展望 72 6.1 結論 72 6.2 未來展望 72 參考文獻 73

    [1] N. R. Mielke, R. E. Frickey, I. Kalastirsky, M. Quan, D. Ustinov, and V. J. Vasudevan, “Reliability of solid-state drives based on NAND flash memory,” Proc. IEEE, vol. 105, no. 9, pp. 1725-1750, Sept. 2017.
    [2] R. C. Bose and D. K. Ray-Chaudhuri, “On a class of error correcting binary group codes,” Inf. Control, vol. 3, no. 1, pp. 68-79, Mar. 1960.
    [3] R. Gallager, “Low-density parity-check codes,” IRE Trans. Inf. Theory, vol. 8, no. 1, pp. 21-28, Jan. 1962.
    [4] D. Strukov, “The area and latency tradeoffs of binary bit-parallel BCH decoders for prospective nanoelectronic memories,” in Proc. Fortieth Asilomar Conference on Signals, Systems and Computers, pp. 1183-1187, Oct. 2006.
    [5] S. Choi, H. K. Ahn, B. K. Song, J. P. Kim, S. H. Kang, and S. O. Jung, “A decoder for short BCH codes with high decoding efficiency and low power for emerging memories,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 27, no. 2, pp. 387-397, Feb. 2019.
    [6] N. Sayed, M. Ebrahimi, R. Bishnoi, and M. B. Tahoori, “Opportunistic write for fast and reliable STT-MRAM,” in Proc. Design, Automation & Test in Europe Conference & Exhibition (DATE), pp. 554-559, Mar. 2017.
    [7] T. H. Chen, Y. Y. Hsiao, Y. T. Hsing, and C. W. Wu, “An adaptive-rate error correction scheme for NAND flash memory,” in Proc. IEEE VLSI Test Symposium, pp. 53-58, May. 2009.
    [8] L. Yuan, H. Liu, P. Jia, and Y. Yang, “Reliability-based ECC system for adaptive protection of NAND flash memories,” in Proc. International Conference on Communication Systems and Network Technologies, pp. 897-902, Apr. 2015.
    [9] S. K. Lu, Z. L. Tsai, C. L. Hsu, and C. T. Sun, “ECC caching techniques for protecting NAND flash memories,” in Proc. IEEE International Test Conference in Asia (ITC-Asia), pp. 47-52, Sept. 2020.
    [10] Y. Cai, S. Ghose, E. F. Haratsch, Y. Luo, and O. Mutlu, “Error characterization, mitigation, and recovery in flash-memory-based solid-state drives,” Proc. IEEE, vol. 105, no. 9, pp. 1666-1704, Sept. 2017.
    [11] Y. Cai, Y. Luo, E. F. Haratsch, K. Mai, and O. Mutlu, “Data retention in MLC NAND flash memory: Characterization, optimization, and recovery,” in Proc. IEEE International Symposium on High Performance Computer Architecture (HPCA), pp. 551-563, Feb. 2015.
    [12] P. Pavan, R. Bez, P. Olivo, and E. Zanoni, “Flash memory cells-an overview,” Proc. IEEE, vol. 85, no. 8, pp. 1248-1271, Aug. 1997.
    [13] R. H. Fowler and L. Nordheim, “Electron emission in intense electric fields.” Proceedings of the Royal Society of London, vol. 119, no. 781, pp. 173-181, May. 1928.
    [14] R. Bez, E. Camerlenghi, A. Modelli, and A. Visconti, “Introduction to flash memory,” Proc. IEEE, vol. 91, no. 4, pp. 489-502, Apr. 2003.
    [15] F. Douglis, R. Cáceres, F. Kaashoek, K. Li, B. Marsh, and J. A. Tauber, “Storage alternatives for mobile computers,” in Proc. USENIX Conference on Operating Systems Design and Implementation, pp. 25-37, Nov, 1994.
    [16] H. Kim and S. Ahn, “BPLRU: a buffer management scheme for improving random writes in flash storage,” in Proc. USENIX Conference on File and Storage Technologies (FAST'08), pp. 1-14, Feb. 2008.
    [17] H. Cao et al., “A page buffer design based on stable and area-saving embedded SRAM for flash applications,” in Proc. IEEE International Conference on Solid-State and Integrated Circuit Technology (ICSICT), pp. 1-3, Oct. 2014.
    [18] S. K. Lu, S. X. Zhong, and M. Hashizume, “Adaptive ECC techniques for yield and reliability enhancement of flash memories,” in Proc. IEEE Asian Test Symposium (ATS), pp. 287-292, Nov. 2016.
    [19] N. Agrawal, V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, and R. Panigrahy, “Design tradeoffs for SSD performance,” in Proc. USENIX Annual Technical Conference, pp. 57-70, June 2008.
    [20] R. Chen, Z. Qin, Y. Wang, D. Liu, Z. Shao, and Y. Guan, “On-demand block-level address mapping in large-scale NAND flash storage systems,” IEEE Transactions on Computers, vol. 64, no. 6, pp. 1729-1741, June 2015.
    [21] Y. Hu et al., “Achieving page-mapping FTL performance at block-mapping FTL cost by hiding address translation,” in Proc. IEEE Symposium on Mass Storage Systems and Technologies (MSST), pp. 1-12, May 2010.
    [22] M. C. Yang, Y. M. Chang, C. W. Tsao, P. C. Huang, Y. H. Chang, and T. W. Kuo, “Garbage collection and wear leveling for flash memory: Past and future,” in Proc. International Conference on Smart Computing, pp. 66-73, Nov. 2014.
    [23] M. Murugan and D. H. C. Du, “Rejuvenator: A static wear leveling algorithm for NAND flash memory with minimized overhead,” in Proc. IEEE Symposium on Mass Storage Systems and Technologies (MSST), pp. 1-12, May 2011.
    [24] S. K. Lu, S. C. Tseng, and K. Miyase, “Fine-grained built-in self-repair techniques for NAND flash memories,” in Proc. IEEE Int’l Test Conf., pp. 391-399, Sept. 2022.
    [25] R. Dekker, F. Beenker, and L. Thijssen, “Fault modeling and test algorithm development for static random access memories,” in Proc. IEEE Int’l Test Conf., pp. 343-352, Sept. 1988.
    [26] K. J. Lin and C. W. Wu, “Testing content-addressable memories using functional fault models and march-like algorithms,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 19, no. 5, pp. 577-588, May 2000.
    [27] “IEEE Standard definitions and characterization of floating gate semiconductor arrays,” IEEE Std 1005-1998, 1998
    [28] J. C. Yeh, K. L. Cheng, Y. F. Chou, and C. W. Wu, “Flash memory testing and built-in self-diagnosis with march-like test algorithms,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 26, no. 6, pp. 1101-1113, June 2007.
    [29] N. Mielke et al., “Bit error rate in NAND Flash memories,” in Proc. IEEE International Reliability Physics Symposium, pp. 9-19, Apr. 2008.
    [30] R. Sayyad and S. Redkar, “Failure analysis and reliability study of NAND flash-based solid state drives,” Indonesian Journal of Electrical Engineering and Computer Science, pp. 315-327, May 2016.
    [31] Y. Cai, Y. Luo, S. Ghose, and O. Mutlu, “Read disturb errors in MLC NAND flash memory: characterization, mitigation, and recovery,” in Proc. Annual IEEE/IFIP International Conference on Dependable Systems and Networks, pp. 438-449, June 2015.
    [32] Solid-State Drive (SSD) Requirements and Endurance Test Method, JEDEC Standard JESD218B-01, June 2016.
    [33] H. Yoo, J. Jung, J. Jo, and I. C. Park, “Area-efficient multimode encoding architecture for long BCH codes,” IEEE Transactions on Circuits and Systems II: Express Briefs, vol. 60, no. 12, pp. 872-876, Dec. 2013.
    [34] Y. Wu and C. N. Hadjicostis, “Decoding algorithm and architecture for BCH codes under the Lee Metric,” IEEE Transactions on Communications, vol. 56, no. 12, pp. 2050-2059, Dec. 2008
    [35] D. V. Sarwate and N. R. Shanbhag, “High-speed architectures for Reed-Solomon decoders,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 9, no. 5, pp. 641-655, Oct. 2001.
    [36] S. Tanakamaru, Y. Yanagihara, and K. Takeuchi, “Error-prediction LDPC and error-recovery schemes for highly reliable solid-state drives (SSDs),” IEEE Journal of Solid-State Circuits, vol. 48, no. 11, pp. 2920-2933, Nov. 2013.
    [37] A. Shokrollahi, “LDPC codes: An introduction.” Coding, cryptography and combinatorics, 2004.
    [38] K. Pagiamtzis and A. Sheikholeslami, “Content-addressable memory (CAM) circuits and architectures: a tutorial and survey,” IEEE Journal of Solid-State Circuits, vol. 41, no. 3, pp. 712-727, Mar. 2006.
    [39] Y. Y. Hsiao, C. H. Chen and C. W. Wu, “Built-in self-repair schemes for flash memories,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 29, no. 8, pp. 1243-1256, Aug. 2010.
    [40] I. Koren and Z. Koren, “Defect tolerance in VLSI circuits: techniques and yield analysis,” Proc. IEEE, vol. 86, no. 9, pp. 1819-1838, Sept. 1998.

    QR CODE