TWI735143B - 記憶體系統 - Google Patents
記憶體系統 Download PDFInfo
- Publication number
- TWI735143B TWI735143B TW109101935A TW109101935A TWI735143B TW I735143 B TWI735143 B TW I735143B TW 109101935 A TW109101935 A TW 109101935A TW 109101935 A TW109101935 A TW 109101935A TW I735143 B TWI735143 B TW I735143B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- frame
- row
- error correction
- ecc
- Prior art date
Links
Images
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/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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Mram Or Spin Memory Techniques (AREA)
- Detection And Correction Of Errors (AREA)
- Shift Register Type Memory (AREA)
Abstract
實施形態,係實現一種能夠提昇資料的信賴性之記憶體系統。
實施形態之記憶體系統,係對於移位暫存型記憶體作控制,並將包含有複數之錯誤訂正碼框架的編碼資料寫入至移位暫存型記憶體之區塊中。記憶體系統,係將被包含於第1錯誤訂正碼框架中的第1資料,儲存於第1資料保持移位列內之對應於第1層之位置處,並將被包含於第2錯誤訂正碼框架中的第2資料,儲存於第1資料保持移位列內之對應於第2層之位置處,並且將被包含於第1錯誤訂正碼框架中的第3資料,儲存於第2資料保持移位列內之對應於第2層之位置處。
Description
本發明之實施形態,係有關於控制移位暫存型記憶體之記憶體系統。
近年來,具備有非揮發性記憶體之記憶體系統係廣泛普及。作為此種記憶體系統之其中一者,具備有NAND型快閃記憶體之固態硬碟(SSD)係為周知。
最近,作為下一世代之非揮發性記憶體,係開始進行移位暫存型記憶體之開發。在移位暫存型記憶體中,係對於被記憶的資料之信賴性的提升有所要求。
本發明之實施形態,係實現一種能夠提昇資料的信賴性之記憶體系統。
若依據實施形態,則記憶體系統,係具備有移位暫存型記憶體、和控制器。前述移位暫存型記憶體,係具備有包含複數之資料保持移位列之區塊,該資料保持移位列,係各別包含有複數之記憶部。前述移位暫存型記憶體,係構成為藉由將分別被儲存在藉由被包含於前述複數之資料保持移位列中的記憶部之集合所編成之複數之層中的資料,從開頭之層起朝向最終層來在第1方向上以層單位而作移位,並且將1層之量的寫入資料寫入至前述開頭之層中,來實行寫入動作,並藉由將分別被儲存在前述複數之層中的資料,以與前述第1方向相同或者是相反之第2方向來以層單位而作移位,來實行讀取動作。前述控制器,係對於前述移位暫存型記憶體作控制,而構成為將應被寫入至前述區塊中之資料作編碼,並將包含有複數之錯誤訂正碼框架之編碼資料寫入至前述區塊中,前述複數之錯誤訂正碼框架,係各別包含有碼字。前述控制器,係構成為在前述複數之資料保持移位列之中的第1資料保持移位列內之對應於第1層之位置處,儲存在前述複數之錯誤訂正碼框架中之第1錯誤訂正碼框架處所包含的第1資料,並在前述第1資料保持移位列內之對應於第2層之位置處,儲存在前述複數之錯誤訂正碼框架中之第2錯誤訂正碼框架處所包含的第2資料,並且在前述複數之資料保持移位列之中的第2資料保持移位列內之對應於前述第2層之位置處,儲存在前述第1錯誤訂正碼框架處所包含的第3資料。
以下,參考圖面,針對實施形態作說明。
(第1實施形態)
圖1,係對於第1實施形態的記憶體系統1之構成例作展示。記憶體系統1,係包含控制器(記憶體控制器)2和磁疇壁移動記憶體3。記憶體系統1係能夠與主機4作連接,在圖1中係對於記憶體系統1有被與主體4作連接的狀態作展示。主機4,係為個人電腦、伺服器、攜帶終端等之電子機器。
磁疇壁移動記憶體3,係為移位暫存型記憶體之其中一例。移位暫存型記憶體,係具備有具備複數之資料保持移位列之區塊。各資料保持移位列,係包含有複數之記憶部。被包含於區塊內之資料保持移位列中的記憶部之集合,係編成作為移位暫存器之複數之層級(stage)而起作用的複數之層。
移位暫存型記憶體,係藉由將分別被儲存在此些之複數之層中的資料從區塊內之開頭之層起朝向最終層來在第1方向上以層單位而作移位,並且將1層之量的資料寫入至區塊內之開頭之層中,來實行寫入動作。又,移位暫存型記憶體,係藉由將分別被儲存在此些之複數之層中的資料,以與第1方向相同或者是相反之第2方向來以層單位而作移位,來實行讀取動作。
以下,係對於身為移位暫存型記憶體之其中一例的磁疇壁移動記憶體3作例示,而對於本實施形態之構成以及動作作說明。
磁疇壁移動記憶體3,係為利用有磁疇壁之移動的移位暫存型記憶體。磁疇壁移動記憶體3,係包含有複數之區塊。各區塊,係包含有複數之磁性記憶線。各磁性記憶線,係作為上述之資料保持移位列而起作用,並包含有複數之磁性記憶部。各磁性記憶部,係為能夠儲存磁性之單位。以下,係將被包含於磁性記憶線中之各磁性記憶部稱作胞。
在磁疇壁移動記憶體3之各區塊中,被包含於此區塊內之複數之磁性記憶線中的胞之集合,係作為複數之層而被編成。此些之層,係作為移位暫存器(磁性移位暫存器)之複數之層級(stage)而起作用。各層,係身為針對區塊之資料的寫入以及讀取之單位。
磁疇壁移動記憶體3,係構成為藉由將分別被儲存在區塊內之複數之層中的資料,從區塊內之開頭之層起朝向最終層來在第1方向上以層單位而作移位,並且將1層之量的寫入資料寫入至區塊內之開頭之層中,來實行寫入動作,並藉由將分別被儲存在區塊內之複數之層中的資料,以與第1方向相同或者是相反之第2方向來以層單位而作移位,來實行讀取動作。
若是資料被從磁疇壁移動記憶體3內之區塊而讀出,則該資料係被從磁疇壁移動記憶體3而消除。
磁疇壁移動記憶體3,係可作為後進先出(LIFO)型磁疇壁移動記憶體而被實現,亦可作為先進先出(FIFO)型磁疇壁移動記憶體而被實現。
當磁疇壁移動記憶體3係作為LIFO型磁疇壁移動記憶體而被實現的情況時,為了將資料讀出而使各層之資料作移位的方向,係成為與為了將資料寫入而使各層之資料作移位的方向相反。
亦即是,當磁疇壁移動記憶體3係作為LIFO型磁疇壁移動記憶體而被實現的情況時,磁疇壁移動記憶體3,係藉由將分別被儲存在區塊內之複數之層中的資料在從開頭之層起朝向最終層之方向上以層單位而作移位,並且將1層之量的寫入資料寫入至區塊內之開頭之層中,來實行寫入動作。在寫入動作中,在每被實行1次的移位時,1層之量的資料係被寫入至區塊內之開頭之層中,同時,分別被儲存於區塊內的各個層中之資料係被朝向最終層側而作1層之量的移位。又,磁疇壁移動記憶體3,係藉由將分別被儲存在區塊內之複數之層中的資料在從最終層起朝向開頭之層之方向上以層單位而作移位,來實行讀取動作。在讀取動作中,在每被實行1次的移位時,存在於開頭之層中的1層之量的寫入資料係被從區塊而讀出,同時,分別被儲存於區塊內的各個層中之資料係被朝向開頭之層側而作1層之量的移位。
故而,在區塊大小之量的資料被寫入至了區塊中的狀態下,最初被寫入至此區塊中的1層之量的資料,係存在於最終層中,最後被寫入至此區塊中的1層之量的資料,係存在於開頭之層中。區塊大小,係相當於1個的區塊之容量。
在將區塊大小之量的資料從區塊而讀出的讀取動作中,最後被寫入至此區塊中的1層之量的資料,由於係存在於開頭之層中,因此係藉由1次的移位而被從區塊讀出。最初被寫入至此區塊中的1層之量的資料,由於係存在於最終層中,因此係藉由被實行「總層數-1」次的移位而被從最終層來一直移動至開頭之層處,並藉由接續於此之1次的移位來被從區塊讀出。
另一方面,當磁疇壁移動記憶體3係作為FIFO型磁疇壁移動記憶體而被實現的情況時,為了進行讀取動作而使各層之資料作移位的方向,係成為與為了進行寫入動作而使各層之資料作移位的方向相同。
亦即是,當磁疇壁移動記憶體3係作為FIFO型磁疇壁移動記憶體而被實現的情況時,磁疇壁移動記憶體3,係藉由將分別被儲存在區塊內之複數之層中的資料在從開頭之層起朝向最終層之方向上以層單位而作移位,並且將1層之量的寫入資料寫入至區塊內之開頭之層中,來實行寫入動作。又,磁疇壁移動記憶體3,係藉由將分別被儲存在區塊內之複數之層中的資料在從開頭之層起朝向最終層之方向上以層單位而作移位,來實行讀取動作。
在將區塊大小之量的資料從區塊而讀出的讀取動作中,最初被寫入至此區塊中的1層之量的資料,由於係存在於最終層中,因此係藉由1次的移位而被從區塊讀出。最後被寫入至此區塊中的1層之量的資料,由於係存在於開頭之層中,因此係藉由被實行「總層數-1」次的移位而被從開頭之層來一直移動至最終層處,並藉由接續於此之1次的移位來被從區塊讀出。
記憶體系統1,係可作為SSD(Solid State Drive)而被實現,亦可作為將記憶體控制器2和磁疇壁移動記憶體3作為1個的封裝來構成的記憶卡而被實現。
記憶體控制器2,係依循於從主機4所受訊的寫入要求(寫入指令)而對於對磁疇壁移動記憶體3之資料的寫入作控制。又,係依循於從主機4所受訊的讀取要求(讀取指令)而對於從磁疇壁移動記憶體3之資料的讀出作控制。
記憶體控制器2,係亦可藉由如同System-on-a-chip (SoC)一般之電路來實現之。記憶體控制器2,係具備有主機介面21、和記憶體介面22、和控制部23、和編碼/解碼部(Encoder/Decoder)24、和資料緩衝器25。主機介面21、記憶體介面22、控制部23、編碼/解碼部(Encoder/ Decoder)24以及資料緩衝器25,係被與內部匯流排20作連接。
主機介面21,係實施主機與裝置之間之依循於介面規格的處理,並將從主機4所受訊了的要求、使用者資料等輸出至內部匯流排20處。又,主機介面21,係將從磁疇壁移動記憶體3所讀出了的使用者資料、從控制部23所受訊了的回應等,對於主機4作送訊。另外,在本實施形態中,係將藉由從主機4而來之寫入要求而寫入至磁疇壁移動記憶體3中的資料,稱作使用者資料。
記憶體介面22,係基於從控制部23而來之指示,而進行對於磁疇壁移動記憶體3而將資料作寫入的寫入動作。又,記憶體介面22,係基於從控制部23而來之指示,而進行從磁疇壁移動記憶體3而將資料讀出之讀取動作。
控制部23,係對於記憶體系統1之各構成要素作統籌性的控制。控制部23,係亦可藉由CPU(處理器)來實現之。
控制部23,當從主機4經由主機介面21而接收了要求的情況時,係進行依循於該要求之控制。例如,控制部23,係依循於從主機4所受訊了的寫入要求,而對於記憶體介面22下達對於磁疇壁移動記憶體3之使用者資料以及同位檢查碼的寫入之指示。又,控制部23,係依循於從主機4所受訊了的讀取要求,而對於記憶體介面22下達從磁疇壁移動記憶體3之使用者資料以及同位檢查碼的讀出之指示。於此,所謂同位檢查碼,係指身為藉由將使用者資料作編碼一事所得到的碼字的一部分之錯誤訂正碼(ECC)。寫入要求,係對於邏輯位址和應寫入之寫入資料的大小等作指定。藉由寫入要求而被指定的邏輯位址,係代表寫入資料所應被寫入之邏輯位址。讀取要求,係對於邏輯位址和應被讀出之資料的大小等作指定。藉由讀取要求而被指定的邏輯位址,係代表與應被讀出之資料相對應的邏輯位址。
又,控制部23,在從主機4而受訊了寫入要求的情況時,係決定被積蓄在資料緩衝器25中之使用者資料所應被寫入的磁疇壁移動記憶體3上之記憶區域(記憶體區域)。亦即是,控制部23,係對於使用者資料之寫入目標作管理。控制部23,係使用作為位址轉換表而起作用的查找表(LUT),來對於「藉由從主機4所受訊了的寫入要求而被指定之邏輯位址」和「代表對應於此邏輯位址之使用者資料所被作儲存的磁疇壁移動記憶體3上之記憶區域之物理位址」之間的映射作管理。查找表(LUT),係可被儲存於記憶體系統1內之RAM(動態RAM(DRAM))或者是靜態RAM (SRAM)中,亦可被非揮發性地而儲存於磁疇壁移動記憶體3中。於後者的情況時,記憶體系統1係亦可在被啟動(power on)時,將LUT從磁疇壁移動記憶體3而載入至記憶體1內的RAM中。
又,控制部23,當從主機4而受訊了讀取要求的情況時,係將藉由讀取要求所被指定的邏輯位址使用上述之LUT(位址轉換表)來轉換為物理位址,並對於記憶體介面22而下達從該物理位址之資料的讀出之指示。
資料緩衝器25,係將從主機4所受訊了的使用者資料暫時性地作儲存。又,資料緩衝器25,係將從磁疇壁移動記憶體3所讀出了的使用者資料暫時性地作儲存。又,資料緩衝器25,係將藉由將使用者資料作編碼一事所產生的碼字(使用者資料+ECC)暫時性地作儲存。資料緩衝器25,例如,係藉由上述之RAM(SRAM或DRAM)而被構成。
從主機4所被送訊的使用者資料,係被傳輸至內部匯流排20處,並被儲存於資料緩衝器25中。編碼/解碼部24,係將應被寫入至磁疇壁移動記憶體3中的資料編碼,並產生碼字。作為編碼,係不論使用何種編碼均可,但是,例如係可使用RS(Reed Solomon)編碼、BCH(Bose-
Chaudhuri-Hocquenghem)編碼、LDPC(Low Density Parity Check)編碼。編碼/解碼部24,係具備有編碼部(Encoding Unit)26和解碼部(Decoding Unit)27。關於本實施形態之編碼以及解碼的詳細內容,係於後再述。
為了使說明簡單化,在本實施形態中,係想定為磁疇壁移動記憶體3為包含1個的磁疇壁移動記憶體片的情況,但是,本實施形態,係亦可對於磁疇壁移動記憶體3為包含複數之磁疇壁移動記憶體片的構成作適用。
圖2,係對於被包含於磁疇壁移動記憶體3內的記憶體胞陣列之構成例作展示。以下,係為了易於理解,而使用特定之數值來對於記憶體胞陣列之構成例作說明,但是,此些之數值係僅為例示,本實施形態係並不被限定於此些之特定之數值,而可對於本實施形態之記憶體胞陣列的構成適用任意之數值。
記憶體胞陣列,係包含有複數之區塊。於此,係想定為各區塊為包含有層L1~層Ln之總計n層的情況。於此,n係為2以上之自然數。此些之n層,係作為上述之移位暫存器之複數之層級而分別起作用。層Ln,係對應於移位暫存器之最初的層級,層L1,係對應於移位暫存器之最後的層級。
1個的區塊之層L1~Ln,係能夠藉由被包含於此區塊中之複數之磁性記憶線MML而被實現。在1個的區塊中所被包含之磁性記憶線MML之數量,係並未被限定,但是,於此,係想定為各區塊為包含有m根的磁性記憶線MML的情況。於此,m係為2以上之自然數。
磁性記憶線MML,係身為磁性移位暫存器,例如,係藉由在一方向上而延伸的細長之磁性體而被實現。磁性記憶線MML,係亦會有被稱作磁性線、磁性細線或者是磁性記憶細線的情況。
在區塊中,磁性記憶線MML係在Y(列)方向上延伸,並包含有能夠分別儲存磁性之複數之胞。在構成磁性記憶線MML之細長的磁性體之長邊方向上而作了並排的複數之微小區域之各者,係作為胞而起作用。
各磁性記憶線MML之此些之胞,係身為區塊之層L1~層Ln的要素。在m根之磁性記憶線MML中所包含的複數之胞,係作為在X(行)方向上而延伸的複數之層(層L1~層Ln)而被作編成。例如,區塊之層Ln,係包含有位置在m根的磁性記憶線MML之各者的其中一端側處之m個的胞之集合,區塊之層L1,係包含有位置在m根的磁性記憶線MML之各者的另外一端側處之m個的胞之集合。
在圖2中,於Y(列)方向上而相連的複數之六角形之集合,係代表1個的磁性記憶線MML。1個的六角形m係代表磁性記憶線MML內之1個的胞,以橫跨m根的磁性記憶線MML的方式而於X方向上延伸之圓角四角形,係代表區塊之層L1~Ln。
在區塊中所包含的層之集合、更詳細而言,在區塊中所包含的胞之集合,係作為此區塊之物理記憶區域而起作用。被儲存於各胞中的各個的磁性之磁化方向,係亦可作為代表“1”或“0”之資訊而被作利用。於此情況,當1個的磁性記憶線MML為包含有n層的情況時,1個的磁性記憶線MML最大係可儲存n位元之資料。
或者是,亦可並非為使單一之磁性的磁化方向與“1”或“0”相對應,而是使2個的相鄰接之磁性的磁化方向之組合作為代表“1”或“0”之資訊而被作利用。於此情況,係亦可構成為:具備有相同的磁化方向之相鄰接之2個的磁性之組合,係對應於“0”,具備有互為相異之磁化方向的相鄰接之2個的磁性之組合,係對應於“1”。當1個的磁性記憶線MML為包含有n層的情況時,1個的磁性記憶線MML最大係可儲存n-1位元之資料。
圖3,係對於LIFO型磁疇壁移動記憶體之構成例作展示。
在LIFO型磁疇壁移動記憶體中,各磁性記憶線MML,係以「先被作了寫入的資料,係若是資料接著被作寫入,則使自身之記憶位置移動至深處側,深處之資料,係若是並不先將之後所被作了寫入的資料讀出,則並無法讀出」的後進先出方式而被作存取。
在各區塊中所包含的m根的磁性記憶線MML之各者之其中一端,係分別被與m個的輸入輸出部作連接。在圖3中,此些之m個的輸入輸出部之集合,係作為輸入輸出部群31而被作表現。對於此區塊之資料的寫入以及讀出,係經由輸入輸出部群31而被進行。
輸入輸出部群31,係分別被與移位控制電路32以及寫入讀出控制電路33作連接。在寫入動作中,移位控制電路32,係使區塊內之各層的資料在從層Ln起而朝向層L1之方向上作移位。在讀出動作中,移位控制電路32,係使區塊內之各層的資料在從層L1起而朝向層Ln之方向上作移位。
在磁疇壁移動記憶體3中,移位控制電路32,係藉由對於區塊內之各磁性記憶線MML供給電流脈衝,來使各磁性記憶線MML內之磁疇壁分別作移位(移動)。磁疇壁,係為具備有相異的極性之磁性間之邊界。在各磁性記憶線MML中,藉由磁疇壁之移動,各磁區(磁性)係以層單位(亦即是位元單位)而被作移位(移動)。寫入讀出控制電路33,係經由輸入輸出部群31而對於針對此區塊之資料的寫入以及讀出作控制。
圖4,係對於FIFO型磁疇壁移動記憶體之構成例作展示。
在FIFO型磁疇壁移動記憶體中,各磁性記憶線MML,係以「先被作了寫入的資料,係若是資料接著被作寫入,則使自身之記憶位置移動至深處側,並以與資料被作了寫入的順序相同之順序來使資料被讀出」的先進先出方式而被作存取。
在各區塊中所包含的m根的磁性記憶線MML之各者之其中一端,係分別被與m個的輸入部作連接。在圖4中,此些之m個的輸入部之集合,係作為輸入部群31a而被作表現。對於此區塊之資料的寫入,係經由輸入部群31a而被進行。
在各區塊中所包含的m根的磁性記憶線MML之各者之其中一端,係分別被與m個的輸出部作連接。在圖4中,此些之m個的輸出部之集合,係作為輸出部群31b而被作表現。對於此區塊之資料的讀出,係經由輸出部群31b而被進行。
輸入部群31a,係分別被與移位控制電路41以及寫入控制電路42作連接。在寫入動作中,移位控制電路41,係使區塊內之各層的資料在從層Ln起而朝向層L1之方向上作移位。在讀出動作中,亦同樣的,移位控制電路41,係使區塊內之各層的資料在從層Ln起而朝向層L1之方向上作移位。寫入控制電路42,係經由輸入部群31a而對於針對此區塊之資料的寫入作控制。
輸出部群31b,係被與讀出控制電路43作連接。讀出控制電路43,係經由輸出部群31b而對於從此區塊之資料的讀出作控制。
圖5,係為針對當注目於LIFO型磁疇壁移動記憶體內之1根的磁性記憶線MML的情況時之移位動作作展示之圖。
在圖5中,被儲存於磁性記憶線MML中之各磁性的極性(磁化方向),係藉由「S」或「N」來作標示。如同上述一般,係可使單一之磁性的極性表現“1”或“0”,亦可使相鄰接之2個的磁性之組合代表“1”或“0”。在圖5中,係針對後者的情況作例示。例如,被儲存在磁性記憶線MML之層L2之胞中的磁性(於此係為磁性N),係具備有與被儲存於層L1之胞中的磁性(於此係為磁性S)相同之磁化方向(平行),此些之2個的磁性之組,例如係對應於“0”。又,被儲存在磁性記憶線MML之層Ln之胞中的磁性(於此係為磁性N),係具備有與被儲存於層Ln-1之胞中的磁性(於此係為磁性S)相反之磁化方向(反平行),此些之2個的磁性之組,例如係對應於“1”。
例如,在用以將“1”之資料寫入至磁性記憶線MML處的動作中,與層Ln之胞的磁性之極性相反極性之磁性,係作為寫入資料而被寫入至層Ln處。於此情況,係被實行有將各層之磁性朝向下方向而作1層之量的移位之移位動作。藉由此,各個的層之磁性係在從層Ln起朝向層L1之方向(亦稱作下方向)上而被作1層之量的移位,並且,與寫入資料相對應之磁性係被寫入至層Ln處。
在讀出動作中,例如,在從磁性記憶線MML而連續地讀出2個的磁性時,係能夠基於磁阻效果元件之阻抗狀態是否有變化一事,來判定所讀出的資料是身為“1”或是“0”。在讀出動作中,首先,係被實行有使各層之磁性朝向上方向而作1層之量的移位之移位動作。藉由此,層Ln之磁性係被從磁性記憶線MML而讀出,並且層L1~Ln-1之各者的磁性係被移位至層L2~Ln處。
之後,係再度被實行有使各層之磁性朝向上方向而作1層之量的移位之移位動作。原本存在於層Ln-1處之磁性,由於係存在於層Ln中,因此,此磁性係被從磁性記憶線MML而讀出,並且層L2~Ln-1之各者的磁性係被移位至層L3~Ln處。
在將區塊大小之量的資料寫入至區塊處的寫入動作中,最終所被儲存於層L1處的資料,其被作移位的次數係為n次。在將區塊大小之量的資料從區塊而讀出的讀出動作中,被儲存於層L1處的資料,其被作移位的次數係為n次。故而,從將此資料寫入起直到被讀出為止的總移位次數,係成為2n次。例如,當區塊之層數係為512的情況時,從將此資料寫入起直到被讀出為止的總移位次數,係成為1024次。
另一方面,關於最終為被儲存於層Ln處的資料,從將此資料寫入起直到被讀出為止的總移位次數,係成為2次。
如此這般,在LIFO型磁疇壁移動記憶體中,資料被作移位的次數,係在接近於層Ln之層側(以下,亦稱作上層側)的資料與接近於層L1之層側(以下,亦稱作下層側)之資料之間而出現相當大的差異,並產生有在越接近於層L1之層處則移位次數會越增加的偏差。
圖6,係為針對當注目於FIFO型磁疇壁移動記憶體內之1根的磁性記憶線MML的情況時之移位動作作展示之圖。
在圖6中,係與圖5相同的,被儲存於磁性記憶線MML中之各磁性的極性(磁化方向),係藉由「S」或「N」來作標示。在FIFO型磁疇壁移動記憶體中,亦同樣的,係可使單一之磁性的極性表現“1”或“0”,亦可使相鄰接之2個的磁性之組合代表“1”或“0”。在圖6中,係針對後者的情況作例示。
在寫入動作中,與LIFO型磁疇壁移動記憶體相同的,係被實行有將各層之磁性朝向下方向而作1層之量的移位之移位動作。藉由此,各個的層之磁性係朝向下方向而被作1層之量的移位,並且,與寫入資料相對應之磁性係被寫入至層Ln處。故而,在將區塊大小之量的資料寫入至區塊處的寫入動作中,最終所被儲存於層L1處的資料,其被作移位的次數係為n次。最終為被儲存於層Ln處的資料,其被作移位的次數係為1次。
在讀出動作中,亦係與寫入動作相同的,係被實行有將各層之磁性朝向下方向而以層單位來作移位之移位動作。藉由此,被儲存在層L1處的資料係被從磁性記憶線MML而讀出,並且被儲存在層L2~Ln之各者處的資料係被朝向下方向而作1層之量的移位。
如此這般,在磁疇壁移動記憶體3中,係藉由將分別被儲存在層L1~層Ln中的資料以層單位來作移位,而被實行有資料之寫入以及讀出。因此,當在磁疇壁移動記憶體3處而將資料作非揮發化時,係會有發生所謂的移位錯誤之不良的情況。
圖7,係為對於磁疇壁移動記憶體3之移位錯誤作展示之圖。
圖7之(A),係展示有正常的移位動作。於此,在開始下一個的資料寫入之前之初期狀態下,想定為「於層Ln處係被儲存有磁性N,於層Ln-1~層Ln-4處係分別被儲存有磁性S」的情況。磁疇壁,係存在於層Ln與層Ln-1之間之邊界處。
為了將下一個的寫入資料(於此係為磁性N)寫入至磁性記憶線MML中,在磁性記憶線MML處係被施加有用以將各層之資料朝向下方向作移位的脈衝電流。在正常的移位動作被作了實行的情況時,磁疇壁係被作1層之量的移位(移動),並藉由此而一直到達至層Ln-1與層Ln-2之間之邊界處。此移位之結果,分別被儲存於層Ln~層Ln-3中的資料,係分別被移位至層Ln-1~層Ln-4處,並且下一個的寫入資料(於此係為磁性N)係被寫入至層Ln處。
圖7之(B),係對於「資料消失」之稱作deletion的不良(移位錯誤)作展示。
在開始下一個的資料寫入之前之初期狀態下,於層Ln處係被儲存有磁性N,於層Ln-1~層Ln-4處係分別被儲存有磁性S。磁疇壁,係存在於層Ln與層Ln-1之間之邊界處。
為了將下一個的寫入資料(於此係為磁性N)寫入至磁性記憶線MML中,在磁性記憶線MML處係被施加有用以將各層之資料朝向下方向作移位的脈衝電流。此時,係會有磁疇壁並未一直到達至層Ln-1與層Ln-2之間之邊界處的情形。於此情況,磁疇壁之位置係會有回到在被施加脈衝電流之前的原本之位置處的情況。此移位錯誤的結果,係發生身為1層之量的資料消失之不良的移位錯誤(deletion)。
圖7之(C),係對於「被插入不必要之資料」之稱作insertion的不良(移位錯誤)作展示。
在開始下一個的資料寫入之前之初期狀態下,於層Ln處係被儲存有磁性N,於層Ln-1~層Ln-4處係分別被儲存有磁性S。磁疇壁,係存在於層Ln與層Ln-1之間之邊界處。
為了將下一個的寫入資料(於此係為磁性N)寫入至磁性記憶線MML中,在磁性記憶線MML處係被施加有用以將各層之資料朝向下方向作移位的脈衝電流。此時,係會有磁疇壁超過層Ln-1與層Ln-2之間之邊界處的情形。於此情況,係會有磁疇壁一直到達至層Ln-2與層Ln-3之間之邊界處的情形。此移位錯誤的結果,係發生被插入1層之量之多餘的資料之不良的移位錯誤(insertion)。
此些之移位錯誤,係導致在該移位錯誤之前而被作了非揮發化的資料或者是在該移位錯誤之後而被作非揮發化的資料之位置偏移。故而,由於在上層側處所產生了的移位錯誤之影響係會傳播至下層側處,因此此種移位錯誤係會引發在特定場所處而產生多數之錯誤(位元錯誤)的叢發錯誤。
圖8,係為針對關連於磁疇壁移動記憶體3的錯誤位置之2種類的特徵(特徵1、特徵2)作展示之圖。另外,在圖8之後,磁性記憶線MML之各胞係以四角形來作標示。
在圖8中,於垂直方向而延伸之各列,係代表在區塊中所包含之1根的磁性記憶線MML,在水平方向而延伸之各行,係代表在此區塊中所包含之1個的層。被配置為行列狀之多數的四角形,係代表構成區塊之物理記憶區域之胞(磁性記憶部)的集合。
空白之四角形,係代表並未發生錯誤(位元錯誤)之胞,以斜線部所標示之四角形,係代表發生有錯誤之胞。
在磁疇壁移動記憶體3中,由於係產生有在越接近於層L1之層處則移位次數會越增加的移位次數之偏差,因此,如同在圖8之左部所示一般,在越接近層L1之下層側之層(較深之層)處,資料之錯誤率係變得越高。特別是,在LIFO型磁疇壁移動記憶體中,由於移位次數之偏差係為大,因此,「在越下層側之層處而資料之錯誤率會變得越高」的所謂錯誤位置之偏差係變得顯著。另外,以下,係亦將層L1稱作最下層,並亦將層Ln稱作最上層。
又,在磁疇壁移動記憶體3中,如同在圖8之右部所示一般,係沿著列而產生有叢發錯誤(特徵2)。磁疇壁之移動特性,係會有在各磁性記憶線MML之每一者處而互為相異的情況。因此,叢發錯誤係以磁性記憶線MML之單位而發生。
關連於錯誤位置之此些之2種類的特徵(特徵1、特徵2),係並不僅是侷限於磁疇壁移動記憶體3,而為在其他之各種的移位暫存型記憶體中所共通之特徵。
圖9,係為對於在磁疇壁移動記憶體3之區塊處而被配置於列方向上的ECC框架(列ECC框架)之構成例和在磁疇壁移動記憶體之區塊處而被配置於行方向上的ECC框架(行ECC框架)之構成例作展示之圖。
若是對特徵1作考慮,則如同圖9(A)中所示一般,較理想,係藉由在磁疇壁移動記憶體3之區塊的物理記憶區域處將複數之ECC框架(例如框架#1~#8)的各者配置在列方向上,來將各ECC框架以列的單位來構成(列ECC框架)。圖9(A),係身為以1根的磁性記憶線MML之單位來構成ECC框架之例。又,在圖9(A)中,係對於1個的區塊為包含有8根的磁性記憶線MML和8個的層之情況作例示。構成各ECC框架之磁性記憶線MML之數量,係亦可為2以上。例如,係亦可藉由相鄰接之數個的磁性記憶線MML之集合,來構成各ECC框架。如此這般,藉由將各ECC框架以列(磁性記憶線MML)之單位來構成,由於1個的ECC框架係均等地包含上層側之資料和下層側之資料,因此係能夠將在此些之ECC框架中所包含的錯誤之數量均一化。
另外,在圖9(A)中,以相同之字母表文字所標示的資料要素之集合,係構成1個的ECC框架。例如,以「a」所標示的複數之資料要素,係身為構成框架#1之資料要素的集合。
若是對特徵2作考慮,則如同圖9(B)中所示一般,較理想,係藉由在磁疇壁移動記憶體3之區塊的物理記憶區域處將複數之ECC框架(例如框架#1~#8)的各者配置在行方向上,來將各ECC框架以行的單位來構成(行ECC框架)。圖9(B),係身為以1個的層之單位來構成ECC框架之例。又,在圖9(B)中,亦同樣的,係對於1個的區塊為包含有8根的磁性記憶線MML和8個的層之情況作例示。構成各ECC框架之層之數量,係亦可為2以上。例如,係亦可藉由相鄰接之數個的層之集合,來構成各ECC框架。如此這般,藉由將各ECC框架以行(層)之單位來構成,係成為能夠將以列(磁性記憶線MML)之單位所產生的叢發錯誤分散至複數之ECC框架中,而能夠將在此些之ECC框架中所包含的錯誤之數量均一化。
圖10,係為對於在本實施形態的記憶體系統1中所被使用之ECC框架(傾斜ECC框架)之構成例作展示之圖。
在圖10中,係對於1個的區塊為包含有8根的磁性記憶線MML和8個的層之情況作例示。為了成為能夠同時對應特徵1之錯誤位置形態與特徵2之錯誤位置形態的雙方,係如同圖10中所示一般,在磁疇壁移動記憶體3之區塊的物理記憶區域處,複數之ECC框架(例如框架#1~#8)的各者係被配置在傾斜方向上。
在圖10中,以相同之字母表文字(於此係為相同之希臘字母)所標示的資料要素之集合,係構成1個的ECC框架。例如,以「θ」所標示的複數之資料要素,係身為構成框架#1之資料要素的集合。
另外,基本上,係只要將在錯誤率中係存在有差異的包含有多數之上層側之資料的框架要素和包含有多數之下層側之資料的框架要素作組合,而作成ECC框架即可。又,在1個的框架要素中所包含的資料之數量,係只要為1個以上即可。因此,在1個的區塊為包含有N根的磁性記憶線MML與N個的層,並且構成ECC框架之資料的數量係為N的情況時,只要使構成1個的ECC框架之資料在各層中各被包含有1個,並且在各磁性記憶線MML中各被包含有1個,則不論是以何種配置形態之框架要素來作成ECC框架均可。例如,係亦可藉由各別包含有1個的資料並且分布在N根的磁性記憶線MML與N個的層中之N個的框架要素,來作成1個的ECC框架。
以下,為了易於理解,主要係對於藉由在區塊之物理記憶區域內的相異之區域處而分別被配置於傾斜方向上之1個以上的框架要素來構成各ECC框架之情形作例示,但是,構成各ECC框架之框架要素的配置形態,係並不被限定於此,而可利用各種之形態。以下,係亦包含此些之各種之配置形態地,而稱作傾斜ECC框架。
在圖10之例中,係以使在錯誤率中存在有差異的上層側之資料與下層側之資料均等地被包含於複數之ECC框架(例如框架#1~#8)之各者中,並且使以磁性記憶線MML之單位所產生的叢發錯誤被均等地分散於此些之ECC框架(例如框架#1~#8)中的方式,來在磁疇壁移動記憶體3之區塊的物理記憶區域處,將此些之ECC框架(例如框架#1~#8)的各者配置在傾斜方向上。於此,所謂傾斜方向,係指相對於區塊之物理記憶區域而並非為行方向(水平方向)或者是垂直方向(列方向),而是全體性而言為相對於水平方向(或者是垂直方向)而作某種程度之傾斜的角度。另外,各ECC框架,係只要均等地包含各種的MML並且包含有相異深度之各種之層即可,相對於水平方向(或者是垂直方向)之各ECC框架的角度係並不被限定於特定之角度。以下,係將被配置於傾斜方向上的此些之ECC框架之各者,稱作傾斜ECC框架。
傾斜ECC框架#1~#8,係具備有相同的框架大小。亦即是,傾斜ECC框架#1~#8之各者,係包含有具備與此框架大小相等的大小之碼字。
在圖10中,1個的傾斜ECC框架,係均等地包含上層側之資料與下層側之資料。故而,就算是產生有例如越下層側則錯誤率會越增加一般之偏差,亦能夠將在此些之ECC框架中所包含的錯誤之數量均一化。
進而,1個的傾斜ECC框架,係均等地包含複數之列(複數之磁性記憶線MML)。故而,係成為能夠將以列(磁性記憶線MML)之單位所產生的叢發錯誤分散至複數之傾斜ECC框架中,藉由此,係能夠將在此些之傾斜ECC框架中所包含的錯誤之數量均一化。
在圖10中,傾斜ECC框架#8係藉由沿著區塊之物理記憶區域的對角線而被配置於傾斜方向上之1個的框架要素而被構成。其他之傾斜ECC框架#1~#7之各者,係藉由在區塊之物理記憶區域處而分別被配置於傾斜方向上之2個的框架要素(係亦作為傾斜框架要素而被作參照)之組合而被構成。
傾斜ECC框架#1,係包含傾斜框架要素#1-1和傾斜框架要素#1-2。於此,在各傾斜框架要素處,係接續於代表此傾斜框架要素之元件符號「#n-1」之後,而更進一步附加元件符號「#n」。此元件符號「#n」,係代表此傾斜框架要素所隸屬之傾斜ECC框架。例如,「框架#1-1(#1)」,係代表隸屬於傾斜ECC框架#1之第1個的傾斜框架要素。
傾斜框架要素#1-1,係為包含有多數之上層側之資料的框架要素,傾斜框架要素#1-2,係為包含有多數之下層側之資料的框架要素。
同樣的,傾斜ECC框架#2,係包含有「包含有多數之上層側之資料的框架要素#2-1」和「包含有多數之下層側之資料的框架要素#2-2」,傾斜ECC框架#3,係包含有「包含有多數之上層側之資料的框架要素#3-1」和「包含有多數之下層側之資料的框架要素#3-2」,傾斜ECC框架#4,係包含有「包含有多數之上層側之資料的框架要素#4-1」和「包含有多數之下層側之資料的框架要素#4-2」,傾斜ECC框架#5,係包含有「包含有多數之上層側之資料的框架要素#5-1」和「包含有多數之下層側之資料的框架要素#5-2」,傾斜ECC框架#6,係包含有「包含有多數之上層側之資料的框架要素#6-1」和「包含有多數之下層側之資料的框架要素#6-2」,傾斜ECC框架#7,係包含有「包含有多數之上層側之資料的框架要素#7-1」和「包含有多數之下層側之資料的框架要素#7-2」。
如此這般,係將在錯誤率中係存在有差異的包含有多數之上層側之資料的框架要素和包含有多數之下層側之資料的框架要素作組合,而構成1個的ECC框架。藉由此,各傾斜ECC框架係能夠均等地包含在錯誤率中係存在有差異的各種之層(胞),而能夠將在傾斜ECC框架#1~#8中所包含的錯誤之數量均一化。
圖11,係為針對分別構成複數之傾斜ECC框架的複數之碼字之邏輯影像與磁疇壁移動記憶體3之區塊上的此些之碼字之物理性配置之間的關係作展示之圖。
在圖11中,為了使說明簡單化,係對於區塊之物理記憶區域為具備有4行(=4層)×4列(=4MML)之構成的情況作例示。
圖11(A),係針對分別構成在區塊之物理記憶區域處而被配置於傾斜方向上的複數之傾斜ECC框架的複數之碼字之邏輯影像作展示。資料部(W1,X1,Y1,Z1)、資料部(W2,X2,Y2,Z2)、資料部(W3,X3,Y3,Z3),係為應被寫入至區塊中之資料。記憶體控制器2之編碼部26,係將資料部(W1,X1,Y1,Z1)、資料部(W2,X2,Y2,Z2)、資料部(W3,X3,Y3,Z3)在縱方向(列方向)上作排列,並藉由此而產生圖11(A)中所展示之2維配列之資料。W1,X1,Y1,Z1,係身為被配置在第1行(Row1)處的資料部之資料要素。W2,X2,Y2,Z2,係身為被配置在第2行(Row2)處的資料部之資料要素。W3,X3,Y3,Z3,係身為被配置在第3行(Row3)處的資料部之資料要素。
而,編碼部26,係將2維配列之資料以列的單位來作編碼,並產生各別包含有碼字之4個的ECC框架(列ECC框架)C-1、C-2、C-3、C-4。
在ECC框架C-1中所包含的碼字,係包含資料(W1,W2,W3)與同位檢查碼(WP),在ECC框架C-2中所包含的碼字,係包含資料(X1,X2,X3)與同位檢查碼(XP),在ECC框架C-3中所包含的碼字,係包含資料(Y1,Y2,Y3)與同位檢查碼(YP),在ECC框架C-4中所包含的碼字,係包含資料(Z1,Z2,Z3)與同位檢查碼(ZP)。
圖11(B),係針對在磁疇壁移動記憶體3之區塊上的此些之ECC框架C-1、C-2、C-3、C-4之物理性配置之例作展示。
對應於第1行(Row1)之資料部(W1,X1,Y1,Z1),係使在此資料部中所包含的資料要素W1,X1,Y1,Z1之排列順序被作維持。
關於對應於第2行(Row2)之資料部(W2,X2,Y2,Z2),係以使在此資料部中所包含的資料要素W2,X2,Y2,Z2朝向右方作1個資料要素之量之移位的方式,而使資料要素W2,X2,Y2,Z2之排列順序被作變更,藉由此,此些之資料要素係被重新排列為Z2,W2,X2,Y2之順序。
關於對應於第3行(Row3)之資料部(W3,X3,Y3,Z3),係以使在此資料部中所包含的資料要素W3,X3,Y3,Z3朝向右方作2個資料要素之量之移位的方式,而使資料要素W3,X3,Y3,Z3之排列順序被作變更,藉由此,此些之資料要素係被重新排列為Y3,Z3,W3,X3之順序。
對應於第4行(Row4)之資料部,係身為對應於ECC框架C-1~C-4之4個的同位檢查碼之集合。關於此資料部(WP,XP,YP,ZP),係以使在此資料部中所包含的資料要素WP,XP,YP,ZP朝向右方作3個資料要素之量之移位的方式,而使資料要素WP,XP,YP,ZP之排列順序被作變更,藉由此,此些之資料要素係被重新排列為XP,YP,ZP,WP之順序。
對應於第1行(Row1)之資料部、被作了重新排列的對應於第2行(Row2)之資料部、被作了重新排列的對應於第3行(Row3)之資料部、被作了重新排列的對應於第4行(Row4)之資料部,係如同圖11(B)中所示一般,分別被配置在區塊之物理記憶區域上的相連續之複數之行處。其結果,係能夠在區塊之物理記憶區域處,將ECC框架C-1 (W1,W2,W3、WP)、ECC框架C-2(X1,X2,X3,XP)、ECC框架C-3(Y1,Y2,Y3,YP)、ECC框架C-4(Z1,Z2,Z3,ZP)之各者配置在傾斜方向上。亦即是,記憶體控制器2,係在對應於第1列(Col.1)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存W1、Z2、Y3、XP,並在對應於第2列(Col.2)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存X1、W2、Z3、YP,並在對應於第3列(Col.3)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存Y1、X2、W3、ZPm,並且在對應於第4列(Col.4)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存Z1、Y2、X3、WP。
如此這般,編碼部26,係以使隸屬於相同ECC框架(亦即是相同碼字)的資料要素之各者所被作配置之列(第1列(Col.1)、第2列(Col.2)、第3列(Col.3)或是第4列(Col.4))在對應於4個的行之4個的資料部間而作偏移的方式,來藉由將在此些之資料部之各者中所包含之4個的資料要素之排列順序規則性地作變更,而在區塊之物理記憶區域處將ECC框架C-1~C-4之各者配置於傾斜方向上。
圖11(C),係針對在磁疇壁移動記憶體3之區塊上的此些之ECC框架C-1、C-2、C-3、C-4之物理性配置之另一例作展示。
在圖11(C)中,同位檢查碼(XP,YP,ZP,WP)係被配置於區塊之最上層Ln(Row1)處。於此情況,由於同位檢查碼(XP,YP,ZP,WP)係只要於最後再寫入至區塊中即可,因此,係能夠並不等待求取出同位檢查碼(XP,YP,ZP,WP)之計算結束地便開始對於區塊之資料的寫入。亦即是,記憶體控制器2,係與對應於各ECC框架之編碼處理並行地而將資料寫入至區塊中。對於區塊之資料的寫入,係以資料部(W1,X1,Y1,Z1)、資料部(Z2,W2,X2,Y2)、資料部(Y3,Z3,W3,X3)之順序來進行。之後,若是求取出同位檢查碼(XP,YP,ZP,WP)之計算結束,則同位檢查碼(XP,YP,ZP,WP)係被寫入至區塊中。
於此情況,亦同樣的,係能夠在區塊之物理記憶區域處,將ECC框架C-1(W1,W2,W3、WP)、ECC框架C-2 (X1,X2,X3,XP)、ECC框架C-3(Y1,Y2,Y3,YP)、ECC框架C-4(Z1,Z2,Z3,ZP)之各者配置在傾斜方向上。
另外,在圖11中,雖係對於把藉由將2維配列之資料以列的單位來作編碼所得到的ECC框架C-1、C-2、C-3、C-4之各者在區塊的物理記憶區域處而配置於傾斜方向上之處理來作了說明,但是,係亦可把藉由將2維配列之資料以行的單位來作編碼所得到的ECC框架之各者在區塊的物理記憶區域處而配置於傾斜方向上。
圖12,係對於當磁疇壁移動記憶體3之區塊為具備有8MML×8層之構成的情況時之傾斜ECC框架之構成例作展示。於此,係針對各傾斜ECC框架之大小(框架長度)為8的情況來作例示。
圖12(A),係對於與8個的傾斜ECC框架(框架#1~#8)相對應之8個的碼字之邏輯影像作展示。圖12(B),係對於在區塊之物理記憶區域處之8個的傾斜ECC框架(框架#1~#8)之物理性配置作展示。在圖12(B)中,1個的列係對應於區塊內之1個的磁性記憶線MML,1個的行係對應於區塊內之1個的層。
在圖12中,以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。又,以粗框所標示的資料要素,係代表儲存同位檢查碼之資料要素。
係構成為:8個的傾斜ECC框架(框架#1~#8),係在各傾斜ECC框架中使各種的列(各種的磁性記憶線MML)被均等地作包含,並且在各傾斜ECC框架中係均等地包含有各種深度之行(胞)。於此,所謂某一特定之行之深度,係代表從與層Ln相對應之行起直到此特定之行為止的行(層)之數量。例如,層Ln係為深度為1之行,層Ln-1係為深度為2之行,層L1係為深度為n之行。
如同圖12(A)中所示一般,首先,2維配列之資料係以列的單位而被編碼,並產生8個的ECC框架(框架#1~#8)。此些之ECC框架(框架#1~#8),係為藉由將資料以列的單位來作編碼所得到之ECC框架(列ECC框架),但是,由於係作為在區塊中而被配置於傾斜方向上的ECC框架而被作使用,因此以下係稱作傾斜ECC框架。
傾斜ECC框架(框架#1)係儲存1個的碼字,此碼字係包含資料(h1,h2,h3,h4,h5,h6,h7)和同位檢查碼(h)。傾斜ECC框架(框架#2)係儲存1個的碼字,此碼字係包含資料(g1,g2,g3,g4,g5,g6,g7)和同位檢查碼(g)。傾斜ECC框架(框架#3)係儲存1個的碼字,此碼字係包含資料(f1,f2,f3,f4,f5,f6,f7)和同位檢查碼(f)。傾斜ECC框架(框架#4)係儲存1個的碼字,此碼字係包含資料(e1,e2,e3,e4,e5,e6,e7)和同位檢查碼(e)。傾斜ECC框架(框架#5)係儲存1個的碼字,此碼字係包含資料(d1,d2,d3,d4,d5,d6,d7)和同位檢查碼(d)。傾斜ECC框架(框架#6)係儲存1個的碼字,此碼字係包含資料(c1,c2,c3,c4,c5,c6,c7)和同位檢查碼(c)。傾斜ECC框架(框架#7)係儲存1個的碼字,此碼字係包含資料(b1,b2,b3,b4,b5,b6,b7)和同位檢查碼(b)。傾斜ECC框架(框架#8)係儲存1個的碼字,此碼字係包含資料(a1,a2,a3,a4,a5,a6,a7)和同位檢查碼(a)。
如同在圖12(B)中所示一般,8個的傾斜ECC框架(框架#1~#8)之各者係在區塊之物理記憶區域處而被配置於傾斜方向上。根據圖12(B),可以理解到,以相同之字母表文字所標示的資料要素之集合,係被配置在傾斜方向上。
例如,傾斜ECC框架(框架#8)之碼字(a1,a2,a3,a4,a5,a6,a7,a),係沿著區塊之物理記憶區域的對角線而被作配置。又,例如,傾斜ECC框架(框架#1),係包含傾斜框架要素#1-1和傾斜框架要素#1-2。傾斜框架要素#1-1,係為包含有多數之上層側之資料的框架要素,在圖12(B)所示之例中,傾斜框架要素#1-1,係僅包含有存在於第1行(Row1)之第8列(Col.8)中之資料要素h1。傾斜框架要素#1-2,係為包含有多數之下層側之資料的框架要素,在圖12(B)所示之例中,傾斜框架要素#1-2,係僅包含有7個的資料要素h2,h3,h4,h5,h6,h7。
在圖12(B)中,8個的傾斜ECC框架(框架#1~#8),係在各傾斜ECC框架中使全部之列各被包含有1個的胞,並且在各傾斜ECC框架中包含有全部的深度之行。
另外,在圖12中,雖係針對1個的碼字之同位檢查碼之大小乃是身為1位元的情況來作例示,但是,一般而言,1個的碼字之同位檢查碼之大小多係為數位元或者是1位元組以上。在圖12中,雖係想定為8×8之16個的四角形之各者係身為1個胞的情況,但是,各四角形係亦可代表1個位元組之量的胞之集合(8個胞)。
將8個的傾斜ECC框架(框架#1~#8)之各者在區塊之物理記憶區域處而配置於傾斜方向上的處理,例如,係如同下述一般,能夠藉由在各行之每一者處將資料重新排列而容易地實行。
在圖12(A)中,對應於第1行(Row1)的資料部(a1,b1,c1,d1,e1,f1,g1,h1)之重新排列,係並不被進行。對應於第2行(Row2)的資料部(a2,b2,c2,d2,e2,f2,g2,h2),係被重新排列為h2,a2,b2,c2,d2,e2,f2,g2之順序。對應於第3行(Row3)的資料部(a3,b3,c3,d3,e3,f3,g3,h3),係被重新排列為g3,h3,a3,b3,c3,d3,e3,f3之順序。對應於第4行(Row4)的資料部(a4,b4,c4,d4,e4,f4,g4,h4),係被重新排列為f4,g4,h4,a4,b4,c4,d4,e4之順序。同樣的,對應於第8行(Row8)的資料部(a,b,c,d,e,f,g,h),係被重新排列為b,c,d,e,f,g,h,a之順序。
如此這般,係以使隸屬於相同之傾斜ECC框架的資料要素(以相同之字母表文字所被作標示之資料要素)之各者之列位置在複數之行間而作偏移的方式,來藉由將在各行之資料部中所包含之資料要素的排列順序規則性地作變更,而能夠如同圖12(B)中所示一般地,在區塊之物理記憶區域處將8個的傾斜ECC框架(#1~#8)之各者配置於傾斜方向上。
此些之傾斜ECC框架(框架#1~#8)之特徵,係能夠藉由如同下述一般之資料配置來作表現。
於此係注目於在區塊中所包含的複數之磁性記憶線MML之中之任意之第1以及第2MML(例如,Col.1之MML、Col.3之MML)與複數之層之中之任意之第1以及第2層(例如,Row1之層、Row3之層)。如同圖12(B)中所示一般,第1資料(於此係為a1),係被儲存在對應於第1MML (於此係為Col.1之MML)內之第1層(於此係為Row1之層)的位置(胞)處,第2資料(於此係為g3),係被儲存在對應於第1MML(於此係為Col.1之MML)內之第2層(於此係為Row3之層)的位置處,第3資料(於此係為a3),係被儲存在對應於第2MML(於此係為Col.3之MML)內之第2層(於此係為Row3之層)的位置處。
於此情況,第1ECC框架(於此係為ECC框架#8),係包含有第1資料(於此係為a1)和第3資料(於此係為a3),並且,第2資料(於此係為g3)係被包含在與第1ECC框架相異之第2ECC框架(於此係為ECC框架#2)中(資料配置特徵1)。
傾斜ECC框架(框架#1~#8)之配置,係具備有下述之特徵。亦即是,在被包含於第1ECC框架中的資料中之被包含於第1層(於此係為Row1之層)處的資料之數量(於此係為1),係與被包含於第2ECC框架(於此係為ECC框架#8)中的資料中之被包含於第1層(於此係為Row1之層)處的資料之數量(於此係為1)相互一致。在被包含於第1ECC框架中的資料中之被包含於第2層(於此係為Row3之層)處的資料之數量(於此係為1),係與被包含於第2ECC框架(於此係為ECC框架#8)中的資料中之被包含於第2層(於此係為Row3之層)處的資料之數量(於此係為1)相互一致(資料配置特徵2)。
進而,傾斜ECC框架(框架#1~#8)之配置,係具備有下述之特徵。亦即是,在被包含於第1ECC框架中的資料中之被包含於第1MML(於此係為Col.1之MML)處的資料之數量(於此係為1),係與被包含於第2ECC框架(於此係為ECC框架#8)中的資料中之被包含於第1MML(於此係為Col.1之MML)處的資料之數量(於此係為1)相互一致。在被包含於第1ECC框架中的資料中之被包含於第2MML(於此係為Col.3之MML)處的資料之數量(於此係為1),係與被包含於第2ECC框架(於此係為ECC框架#8)中的資料中之被包含於第2MML(於此係為Col.3之MML)處的資料之數量(於此係為1)相互一致(資料配置特徵3)。
圖13,係為對於當磁疇壁移動記憶體3之區塊為具備有4MML×16層之構成的情況時之傾斜ECC框架之構成例作展示之圖。於此,係針對各傾斜ECC框架之大小(框架長度)為8的情況來作例示。
圖13(A),係對於在圖12(B)中所說明了的8個的傾斜ECC框架之物理性配置作展示。以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。
在圖13(A)中所展示的8×8之資料要素,係如同在圖13(B)中所示一般,於每一行處,被分割成隸屬於最初之4個的列之4個的資料要素、和隸屬於剩餘之4個的列之4個的資料要素。又,如同圖13(C)中所示一般,在8×8之資料要素中所包含的第1行(Row1)之最初之4個的資料要素(a1,b1,c1,d1),係被配置在區塊之物理記憶區域(4列×16行)之第1行(Row1)處,在8×8之資料要素中所包含的第1行(Row1)之剩餘之4個的資料要素(e1,f1,g1,h1),係被配置在物理記憶區域(4列×16行)之第2行(Row2)處,在8×8之資料要素中所包含的第2行(Row2)之最初之4個的資料要素(h2,a2,b2,c2),係被配置在物理記憶區域(4列×16行)之第3行(Row3)處,在8×8之資料要素中所包含的第2行(Row2)之剩餘之4個的資料要素(d2,e2,f2,g2),係被配置在物理記憶區域(4列×16行)之第4行(Row4)處,…,而,在8×8之資料要素中所包含的第8行(Row8)之最初之4個的資料要素(b,c,d,e),係被配置在物理記憶區域(4列×16行)之第1行(Row1)5處,在8×8之資料要素中所包含的第8行(Row8)之剩餘之4個的資料要素(f,g,h,a),係被配置在物理記憶區域(4列×16行)之第1行(Row1)6處。
其結果,8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中使全部之列各被包含有2個的胞,並且在各傾斜ECC框架中均等地包含有全部的深度之行之中之約一半之行的方式,而被構成。故而,此些之傾斜ECC框架(框架#1~#8),亦係具備有在圖12中所說明了的資料配置特徵1、2、3。
在物理記憶區域(4列×16行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有包含多數的上層側之資料之傾斜框架要素#8-1、和包含多數的下層側之資料之傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第3行(Row3)之第2列(Col.2)處的資料要素a2、被儲存在第5行(Row5)之第3列(Col.3)處的資料要素a3、以及被儲存在第7行(Row7)之第4列(Col.4)處的資料要素a4。
傾斜框架要素#8-2,係包含有被儲存在第10行(Row10)之第1列(Col.1)處的資料要素a5、被儲存在第12行(Row12)之第2列(Col.2)處的資料要素a6、被儲存在第14行(Row14)之第3列(Col.3)處的資料要素a7、以及被儲存在第16行(Row16)之第4列(Col.4)處的資料要素a。
又,例如,以藉由字母表文字「b」所標示的資料要素之集合所構成的傾斜ECC框架(框架#7),係包含有傾斜框架要素#7-1、和傾斜框架要素#7-2、和傾斜框架要素
#7-3。
傾斜框架要素#7-1,係包含有被儲存在第1行(Row1)之第2列(Col.2)處的資料要素b1、被儲存在第3行(Row3)之第3列(Col.3)處的資料要素b2、以及被儲存在第5行(Row5)之第4列(Col.4)處的資料要素b3。
傾斜框架要素#7-2,係包含有被儲存在第8行(Row8)之第1列(Col.1)處的資料要素b4、被儲存在第10行(Row10)之第2列(Col.2)處的資料要素b5、被儲存在第12行(Row12)之第3列(Col.3)處的資料要素b6、以及被儲存在第14行(Row14)之第4列(Col.4)處的資料要素b7。
傾斜框架要素#7-3,係包含有被儲存在第15行(Row15)之第1列(Col.1)處的資料要素b。
圖14,係為對於當磁疇壁移動記憶體3之區塊為具備有4MML×16層之構成的情況時之傾斜ECC框架之另一構成例作展示之圖。
圖14(A),係對於在圖12(B)中所說明了的8個的傾斜ECC框架之物理性配置作展示。以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。
在圖14(A)中所展示的8×8之資料要素,係如同在圖14(B)中所示一般,被分割成對應於8個的列之8個的資料部。又,如同圖14(C)中所示一般,在8×8之資料要素中所包含之第1列(Col.1)的資料部(a1,h2,g3,f4,e5,d6,c7,b),係作為區塊之物理記憶區域(4列×16行)之第1列(Col.1)之上側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第2列(Col.2)的資料部(b1,a2,h3,g4,f5,e6,d7,c),係作為區塊之物理記憶區域(4列×16行)之第1列(Col.1)之下側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第3列(Col.3)的資料部(c1,b2,a3,h4,g5,f6,e7,d),係作為區塊之物理記憶區域(4列×16行)之第2列(Col.2)之上側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第4列(Col.4)的資料部(d1,c2,b3,a4,h5,g6,f7,e),係作為區塊之物理記憶區域(4列×16行)之第2列(Col.2)之下側之8個的資料要素而被作配置,…,而,在8×8之資料要素中所包含之第7列(Col.7)的資料部(g1,f2,e3,d4,c5,b6,a7,h),係作為區塊之物理記憶區域(4列×16行)之第4列(Col.4)之上側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第8列(Col.8)的資料部(h1,g2,f3,e4,d5,c6,b7,a),係作為區塊之物理記憶區域(4列×16行)之第4列(Col.4)之下側之8個的資料要素而被作配置。
其結果,8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中使全部之列各被包含有2個的胞,並且在各傾斜ECC框架中均等地包含有全部的深度之行之中之約一半之行的方式,而被構成。故而,此些之傾斜ECC框架(框架#1~#8),亦係具備有在圖12中所說明了的資料配置特徵1、2、3。
在物理記憶區域(4列×16行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有包含多數的上層側之資料之傾斜框架要素#8-1、和包含多數的下層側之資料之傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第3行(Row3)之第2列(Col.2)處的資料要素a3、被儲存在第5行(Row5)之第3列(Col.3)處的資料要素a5、以及被儲存在第7行(Row7)之第4列(Col.4)處的資料要素a7。
傾斜框架要素#8-2,係包含有被儲存在第10行(Row10)之第1列(Col.1)處的資料要素a2、被儲存在第12行(Row12)之第2列(Col.2)處的資料要素a4、被儲存在第14行(Row14)之第3列(Col.3)處的資料要素a6、以及被儲存在第16行(Row16)之第4列(Col.4)處的資料要素a。
又,例如,以藉由字母表文字「c」所標示的資料要素之集合所構成的傾斜ECC框架(框架#6),係包含有傾斜框架要素#6-1、和傾斜框架要素#6-2、和傾斜框架要素
#6-3、和傾斜框架要素#6-4。
傾斜框架要素#6-1,係包含有被儲存在第1行(Row1)之第2列(Col.2)處的資料要素c1、被儲存在第3行(Row3)之第3列(Col.3)處的資料要素c3、以及被儲存在第5行(Row5)之第4列(Col.4)處的資料要素c5。
傾斜框架要素#6-2,係包含有被儲存在第7行(Row7)之第1列(Col.1)處的資料要素c7。
傾斜框架要素#6-3,係包含有被儲存在第10行(Row10)之第2列(Col.2)處的資料要素c2、被儲存在第12行(Row12)之第3列(Col.3)處的資料要素c4、以及被儲存在第14行(Row14)之第4列(Col.4)處的資料要素c6。
傾斜框架要素#6-4,係包含有被儲存在第16行(Row16)之第1列(Col.1)處的資料要素c。
圖15,係為對於當磁疇壁移動記憶體3之區塊為具備有16MML×4層之構成的情況時之傾斜ECC框架之2種類的構成例作展示之圖。
圖15(A),係對於在圖12(B)中所說明了的8個的傾斜ECC框架之物理性配置作展示。以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。
在圖15(A)中所展示的8×8之資料要素,係被分割成對應於8個的行之8個的資料部。又,如同圖15(B)中所示一般,在8×8之資料要素中所包含的第1行(Row1)之資料部(a1,b1,c1,d1,e1,f1,g1,h1),係作為區塊之物理記憶區域(16列×4行)之第1行(Row1)之最初之8個的列之資料要素而被作配置,在8×8之資料要素中所包含的第2行(Row2)之資料部(h2,a2,b2,c2,d2,e2,f2,g2),係作為區塊之物理記憶區域(16列×4行)之第1行(Row1)之剩餘之8個的列之資料要素而被作配置,…,而,在8×8之資料要素中所包含的第7行(Row7)之資料部(c7,d7,e7,f7,g7,h7,a7,b7),係作為區塊之物理記憶區域(16列×4行)之第4行(Row4)之最初之8個的列之資料要素而被作配置,在8×8之資料要素中所包含的第8行(Row8)之資料部(b,c,d,e,f,g,h,a),係作為區塊之物理記憶區域(16列×4行)之第4行(Row4)之剩餘之8個的列之資料要素而被作配置。
其結果,8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中均等地包含有全部之列之中之約一半的列,並且在各傾斜ECC框架中使全部之深度之行各被包含有2個的胞的方式,而被構成。故而,此些之傾斜ECC框架(框架#1~#8),亦係具備有在圖12中所說明了的資料配置特徵1、2。
在圖15(B)所示之區塊之物理記憶區域(16列×4行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有傾斜框架要素#8-1、和傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第10列(Col.10)處的資料要素a2、被儲存在第2行(Row3)之第12列(Col.12)處的資料要素a4、被儲存在第3行(Row3)之第14列(Col.14)處的資料要素a6、以及被儲存在第4行(Row4)之第16列(Col.16)處的資料要素a。
傾斜框架要素#8-2,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第2行(Row2)之第3列(Col.3)處的資料要素a3、被儲存在第3行(Row3)之第5列(Col.5)處的資料要素a5、以及被儲存在第4行(Row4)之第7列(Col.7)處的資料要素a7。
又,例如,以藉由字母表文字「c」所標示的資料要素之集合所構成的傾斜ECC框架(框架#6),係包含有傾斜框架要素#6-1、和傾斜框架要素#6-2、和傾斜框架要素
#6-3、和傾斜框架要素#6-4。
傾斜框架要素#6-1,係包含有被儲存在第1行(Row1)之第12列(Col.12)處的資料要素c2、被儲存在第2行(Row2)之第14列(Col.14)處的資料要素c4、以及被儲存在第3行(Row3)之第16列(Col.16)處的資料要素c6。
傾斜框架要素#6-2,係包含有被儲存在第4行(Row4)之第10列(Col.10)處的資料要素c。
傾斜框架要素#6-3,係包含有被儲存在第1行(Row1)之第3列(Col.3)處的資料要素c1、被儲存在第2行(Row2)之第5列(Col.5)處的資料要素c3、以及被儲存在第3行(Row3)之第7列(Col.7)處的資料要素c5。
傾斜框架要素#6-4,係包含有被儲存在第4行(Row4)之第1列(Col.1)處的資料要素c7。
圖15(C),係對於各傾斜ECC框架之另一構成例作展示。
在圖15(C)中所示之各傾斜ECC框架,係藉由以下之處理而被構成。
在圖15(A)中所展示的8×8之資料要素,係於每一列處,被分割成隸屬於上側之4個的行之4個的資料要素、和隸屬於下側之4個的行之4個的資料要素。又,如同圖15(C)中所示一般,在8×8之資料要素中所包含之第1列(Col.1)之上側之4個的資料要素(a1,h2,g3,f4),係被配置在區塊之物理記憶區域(16列×4行)之第1列(Col.1)處,在8×8之資料要素中所包含之第1列(Col.1)之下側之4個的資料要素(e5,d6,c7,b),係被配置在區塊之物理記憶區域(16列×4行)之第2列(Col.2)處,在8×8之資料要素中所包含之第2列(Col.2)之上側之4個的資料要素(b1,a2,h3,g4),係被配置在區塊之物理記憶區域(16列×4行)之第3列(Col.3)處,在8×8之資料要素中所包含之第2列(Col.2)之下側之4個的資料要素(f5,e6,d7,c),係被配置在區塊之物理記憶區域(16列×4行)之第4列(Col.4)處,…,而,在8×8之資料要素所包含之第8列(Col.8)之上側之4個的資料要素(h1,g2,f3,e4),係被配置在區塊之物理記憶區域(16列×4行)之第15列(Col.15)處,在8×8之資料要素中所包含之第8列(Col.8)之下側之4個的資料要素(d5,c6,b7,a),係被配置在區塊之物理記憶區域(16列×4行)之第16列(Col.16)處。
其結果,8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中均等地包含有全部之列之中之約一半的列,並且在各傾斜ECC框架中使全部之深度之行各被包含有2個的胞的方式,而被構成。故而,此些之傾斜ECC框架(框架#1~#8),亦係具備有在圖12中所說明了的資料配置特徵1、2。
在圖15(C)所示之區塊之物理記憶區域(16列×4行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有傾斜框架要素#8-1、和傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第10列(Col.10)處的資料要素a5、被儲存在第2行(Row3)之第12列(Col.12)處的資料要素a6、被儲存在第3行(Row3)之第14列(Col.14)處的資料要素a7、以及被儲存在第4行(Row4)之第16列(Col.16)處的資料要素a。
傾斜框架要素#8-2,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第2行(Row2)之第3列(Col.3)處的資料要素a2、被儲存在第3行(Row3)之第5列(Col.5)處的資料要素a3、以及被儲存在第4行(Row4)之第7列(Col.7)處的資料要素a4。
又,例如,以藉由字母表文字「c」所標示的資料要素之集合所構成的傾斜ECC框架(框架#6),係包含有傾斜框架要素#6-1、和傾斜框架要素#6-2、和傾斜框架要素
#6-3。
傾斜框架要素#6-1,係包含有被儲存在第1行(Row1)之第14列(Col.14)處的資料要素c5、以及被儲存在第2行(Row2)之第16列(Col.16)處的資料要素c6。
傾斜框架要素#6-2,係包含有被儲存在第1行(Row1)之第5列(Col.5)處的資料要素c1、被儲存在第2行(Row2)之第7列(Col.7)處的資料要素c2、被儲存在第3行(Row3)之第9列(Col.9)處的資料要素c3、以及被儲存在第4行(Row4)之第11列(Col.11)處的資料要素c4。
傾斜框架要素#6-3,係包含有被儲存在第3行(Row3)之第2列(Col.2)處的資料要素c7、以及被儲存在第4行(Row4)之第4列(Col.4)處的資料要素c。
圖16,係為對於將應被儲存在磁疇壁移動記憶體3之區塊處的2維配列之資料重新排列為1維之資料序列並且將1維之資料序列內的資料要素規則性地分配至複數之傾斜ECC框架處,而將1維之資料序列重新排列為2維配列之資料的處理作展示之圖。
於此,係想定為區塊為具備有4MML×4層(=4列×4行)之構成的情況。
應被儲存於區塊中之4×4之資料要素,首先係被重新排列為1維之資料序列。之後,1維之資料序列內之資料要素,係被規則性地分配至複數之傾斜ECC框架(於此,係為4個的傾斜ECC框架a,b,c,d)處。
在圖16中,關於最初之4個的資料要素“1”,“2”,“3”,“4”,資料要素“1”係被分配至傾斜ECC框架a處,資料要素“2”係被分配至傾斜ECC框架b處,資料要素“3”係被分配至傾斜ECC框架c處,資料要素“4”係被分配至傾斜ECC框架d處。
關於接下來之4個的資料要素“5”,“6”,“7”,“8”,資料要素“5”係被分配至傾斜ECC框架d處,資料要素“6”係被分配至傾斜ECC框架a處,資料要素“7”係被分配至傾斜ECC框架b處,資料要素“8”係被分配至傾斜ECC框架c處。
關於接下來之4個的資料要素“9”,“10”,“11”,“12”,資料要素“9”係被分配至傾斜ECC框架c處,資料要素“10”係被分配至傾斜ECC框架d處,資料要素“11”係被分配至傾斜ECC框架a處,資料要素“12”係被分配至傾斜ECC框架b處。
被分配至相同之傾斜ECC框架處的資料要素,係構成1個的碼字之後,1維之資料序列(“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”)係被重新排列為2維配列之資料,並被儲存在磁疇壁移動記憶體3之區塊中。藉由此,係能夠將傾斜ECC框架a,b,c,d之各者在區塊之物理記憶區域中而配置在傾斜方向上。
圖17,係為對於將2維配列之資料重新排列為1維之資料序列的處理之例作展示之圖。
圖17(B),係對於藉由將在圖17(A)中所示之2維配列之資料(於此係為4×4之資料要素)在橫方向上作掃描,來重新排列為1維之資料序列(“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”)的方法作展示。
圖17(C),係對於藉由將圖17(A)中所示之2維配列之資料(於此係為4×4之資料要素)在縱方向上作掃描,來重新排列為1維之資料序列(“1”,“5”,“9”,“13”,“2”,“6”,“10”,“14”,“3”,“7”,“11”,“15”,“4”,“8”,“12”,“16”)的方法作展示。
圖17(D),係對於藉由將圖17(A)中所示之2維配列之資料(於此係為4×4之資料要素)作鋸齒狀掃描,來重新排列為1維之資料序列(“1”,“2”,“5”,“9”,“6”,“3”,“4”,“7”,“10”,“13”,“14”,“11”,“8”,“12”,“15”,“16”)的方法作展示。
圖18,係為對於將在1維之資料序列中所包含的資料要素規則性地分配至複數之傾斜ECC框架處的處理之例作展示之圖。
於此,係想定為將資料要素(“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”)規則性地分配至4個的傾斜ECC框架a,b,c,d處的情況。
此處理,係能夠使用3個的參數(α、β、γ)來實行之。於此,α係代表將相同之ECC框架作幾個要素的連續。β係代表在將相同之形態作幾次的反覆之後再作移位。γ係代表要進行幾個要素的移位。
(1)α=1、β=1、γ=1之情況
於此情況,形態「a,b,c,d」、形態「d,a,b,c」、形態「c,d,a,b」、形態「b,c,d,a」係被適用於資料要素(“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”)處。
其結果,關於最初之4個的資料要素“1”,“2”,“3”,“4”,資料要素“1”係被分配至傾斜ECC框架a處,資料要素“2”係被分配至傾斜ECC框架b處,資料要素“3”係被分配至傾斜ECC框架c處,資料要素“4”係被分配至傾斜ECC框架d處。
關於接下來之4個的資料要素“5”,“6”,“7”,“8”,資料要素“5”係被分配至傾斜ECC框架d處,資料要素“6”係被分配至傾斜ECC框架a處,資料要素“7”係被分配至傾斜ECC框架b處,資料要素“8”係被分配至傾斜ECC框架c處。
關於接下來之4個的資料要素“9”,“10”,“11”,“12”,資料要素“9”係被分配至傾斜ECC框架c處,資料要素“10”係被分配至傾斜ECC框架d處,資料要素“11”係被分配至傾斜ECC框架a處,資料要素“12”係被分配至傾斜ECC框架b處。
(2)α=2、β=1、γ=2之情況
於此情況,形態「a,a,b,b,c,c,d,d」、形態「d,d,a,a,b,b,c,c」係被適用於資料要素(“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”)處。
其結果,關於最初之8個的資料要素“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,資料要素“1”,“2”係被分配至傾斜ECC框架a處,資料要素“3”,“4”係被分配至傾斜ECC框架b處,資料要素“5”,“6”係被分配至傾斜ECC框架c處,資料要素“7”,“8”係被分配至傾斜ECC框架d處。
關於接下來之8個的資料要素“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”,資料要素“9”,“10”係被分配至傾斜ECC框架d處,資料要素“11”,“12”係被分配至傾斜ECC框架a處,資料要素“13”,“14”係被分配至傾斜ECC框架b處,資料要素“15”,“16”係被分配至傾斜ECC框架c處。
(3)α=1、β=2、γ=2之情況
於此情況,形態「a,b,c,d,a,b,c,d」、形態「c,d,a,b,c,d,a,b」係被適用於資料要素(“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”)處。
其結果,關於最初之8個的資料要素“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,資料要素“1”,“5”係被分配至傾斜ECC框架a處,資料要素“2”,“6”係被分配至傾斜ECC框架b處,資料要素“3”,“7”係被分配至傾斜ECC框架c處,資料要素“4”,“8”係被分配至傾斜ECC框架d處。
關於接下來之8個的資料要素“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”,資料要素“9”,“13”係被分配至傾斜ECC框架c處,資料要素“10”,“14”係被分配至傾斜ECC框架d處,資料要素“11”,“15”係被分配至傾斜ECC框架a處,資料要素“12”,“16”係被分配至傾斜ECC框架b處。
(4)α=1、β=1、γ=0之情況
於此情況,形態「a,b,c,d」、形態「a,b,c,d」、形態「a,b,c,d」、形態「a,b,c,d」係被適用於資料要素(“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”,“12”,“13”,“14”,“15”,“16”)處。
圖19,係為對於在記憶體系統1處所被實行的寫入處理之程序作展示之流程圖。
在記憶體控制器2從主機4而受訊了寫入要求時,記憶體控制器2,係開始在圖19之流程圖中所示的寫入處理。
對於磁疇壁移動記憶體3之區塊的資料之寫入,係亦可在從主機4受訊了1個區塊之大小之量的資料之後再開始,但是,如同上述一般,在使用能夠將同位檢查碼配置於區塊之上層側(例如最上層Ln)處之資料配置的情況中,係能夠與從主機4而來之資料之受訊以及各ECC框架之每一者之編碼處理並行地,而進行對於區塊之資料的寫入。以下,係對於後者的情況作例示,而對於寫入處理之程序作說明。
記憶體控制器2,係從主機4而受訊被與從主機4所受訊了的寫入要求相互附加有關連之資料,並將此資料儲存在資料緩衝器25中(步驟S11)。
記憶體控制器2,係使用被儲存在資料緩衝器25中之資料,來產生在複數之ECC框架之各者中所包含的碼字之一部分(步驟S12)。在步驟S12中,編碼部26,係實行將被儲存在資料緩衝器25中之資料作編碼的處理,在此編碼處理中,係於各ECC框架之每一者處而被實行有計算出同位檢查碼之處理。碼字,由於係包含有資料(資訊符號(symbol)序列)與同位檢查碼(ECC),因此,碼字之一部分係身為資訊符號或者是同位檢查碼。
對應於各ECC框架的碼字之同位檢查碼,由於係只要於最後再寫入至區塊中即可,因此,係能夠並不等待同位檢查碼之計算之結束地便開始對於區塊之資料的寫入。因此,記憶體控制器2,係與編碼處理並行地,而將各ECC框架之碼字之一部分(於此,係為資料,亦即是資訊符號序列)寫入至區塊中(步驟S13)。在步驟S13中,記憶體控制器2,係以將複數之ECC框架之各者在區塊之物理記憶區域處而配置於傾斜方向上的方式,來將所被產生的各ECC框架之碼字的一部分寫入至區塊中。
記憶體控制器2,係判定是否將在複數之ECC框架中所包含的碼字之全部均寫入至了區塊中(步驟S14)。步驟S11~S13之處理係被反覆實行,直到在複數之ECC框架中所包含的碼字之全部均被寫入至了區塊中為止。
若是對應於各ECC框架之碼字的同位檢查碼係藉由編碼部26而被作了計算,則在步驟S12中,係作為在複數之ECC框架之各者中所包含的碼字之一部分,而被產生有碼字之同位檢查碼。之後,在步驟S13中,記憶體控制器2,係將此些之同位檢查碼寫入至區塊中。
若是在複數之ECC框架中所包含的碼字之全部均被寫入至了區塊中(步驟S14,YES),則寫入處理係結束。
此寫入處理之結果,係以使在錯誤率中存在有差異的上層側之資料與下層側之資料被均等地被包含於複數之ECC框架之各者中,並且使以磁性記憶線MML之單位所產生的叢發錯誤被均等地分散於複數之ECC框架中的方式,來在區塊的物理記憶區域處將複數之ECC框架的各者配置在傾斜方向上。
另外,係亦可構成為在使1個區塊的大小之量之資料被積蓄於資料緩衝器25中之後,再將資料寫入至區塊中。於此情況,各碼字之同位檢查碼之位置係並不被作限制,而能夠在區塊之物理記憶區域之任意的位置處而寫入同位檢查碼。
圖20,係為對於將複數之傾斜ECC框架的各者在磁疇壁移動記憶體3之區塊的物理記憶區域處而配置於傾斜方向上的處理之程序作展示之流程圖。
圖20之步驟S21以及步驟S22之處理,係在圖19之步驟S12處而被實行,圖20之步驟S23以及步驟S24之處理,係在圖19之步驟S13處而被實行。
記憶體控制器2,係作成藉由將應寫入至區塊中的複數之資料部在縱方向(列方向)上作排列一事所得到的2維配列之資料(步驟S21)。複數之資料部之各者,例如係具備有1層的量之資料大小。
記憶體控制器2,係藉由使用編碼部26來將2維配列之資料以列的單位來作編碼,而產生各別包含有碼字之複數之ECC框架(步驟S22)。
記憶體控制器2,係以使隸屬於相同ECC框架的資料要素之各者所被作配置之列的位置會於在列方向(縱方向)而被作了排列的複數之資料部間而作偏移的方式,來將在複數之資料部之各者中所包含之複數的資料要素之排列順序規則性地作變更(步驟S23)。
之後,記憶體控制器2,係將此些之複數之資料部的各者寫入至區塊中,藉由此,而將複數之ECC框架之各者在區塊之物理記憶區域處而配置於傾斜方向上(步驟S24)。在被配置於傾斜方向上的各ECC框架(傾斜ECC框架)中,由於各式各樣之列(各式各樣之磁性記憶線MML)係被均等地作包含,因此,以磁性記憶線MML之單位所產生的叢發錯誤係被均等地分散於複數之ECC框架中。又,在各ECC框架(傾斜ECC框架)中,由於各式各樣之深度之行(胞)係被均等地作包含,因此,在錯誤率中存在有差異的上層側之資料與下層側之資料係被均等地被包含於複數之ECC框架之各者中。
圖21,係為對於使用有複數之傾斜ECC框架的解碼處理之程序作展示之流程圖。
記憶體控制器2,係從磁疇壁移動記憶體3,而將被儲存在區塊之層L1~Ln中的複數層之量之資料(區塊大小之量的資料),以具備有特定資料大小之資料部的單位來依序讀出(步驟S31)。
記憶體控制器2,係藉由將隸屬於相同的傾斜ECC框架之資料部彼此作組合,來將複數之傾斜ECC框架作再建構(步驟S32)。
記憶體控制器2,係將再建構了的複數之傾斜ECC框架之各者解碼,並對於從磁疇壁移動記憶體3所讀出了的區塊大小之量的資料之錯誤作訂正(步驟S33)。
如同以上所作了說明一般,若依據第1實施形態,則當第1資料係被儲存於第1磁性記憶線MML(資料保持移位列)內之對應於第1層之位置處,第2資料係被儲存於第1磁性記憶線MML內之對應於第2層之位置處,第3資料係被儲存於第2磁性記憶線MML內之對應於第2層之位置處的情況時,第1ECC框架係包含有第1資料和第3資料,並且與第1ECC框架相異之第2ECC框架係包含有第2資料。
藉由如此這般地來構成各ECC框架,第1ECC框架係橫跨相異之磁性記憶線MML,並且被包含在相同之層中的第2資料和第3資料係被包含在互為相異的ECC框架中。
例如,如同在圖10中所作了說明一般,係以使在錯誤率中存在有差異的上層側之資料與下層側之資料均等地被包含於複數之ECC框架(例如框架#1~#8)之各者中,並且使以磁性記憶線MML之單位所產生的叢發錯誤被均等地分散於此些之ECC框架(例如框架#1~#8)中的方式,來在磁疇壁移動記憶體3之區塊的物理記憶區域處,將此些之ECC框架(例如框架#1~#8)的各者配置在傾斜方向上。
各ECC框架(傾斜ECC框架),係均等地包含上層側之資料與下層側之資料。故而,就算是產生有例如越下層側則錯誤率會越增加一般之偏差,亦能夠將在此些之ECC框架中所包含的錯誤之數量均一化。又,各ECC框架(傾斜ECC框架),係均等地包含複數之列(複數之磁性記憶線MML)。故而,係成為能夠將以列(磁性記憶線MML)之單位所產生的叢發錯誤分散至複數之傾斜ECC框架中,藉由此,係能夠將在此些之傾斜ECC框架中所包含的錯誤之數量均一化。
如此這般,第1實施形態之傾斜ECC框架之構成,係能夠一併具備有圖9之列ECC框架之優點和圖10之行ECC框架之優點的雙方。藉由此,在若是越下層側之層則錯誤率會變得越高或者是叢發錯誤係具備有以磁性記憶線MML之單位來產生之傾向的磁疇壁移動記憶體3中,係能夠謀求被儲存在磁疇壁移動記憶體3中的資料之信賴性之提升。
(第2實施形態)
接著,作為第2實施形態,針對使用將行ECC框架(第1形態錯誤訂正碼框架)和傾斜ECC框架(第2形態ECC)作了組合的乘積碼之構成作說明。
第2實施形態之記憶體系統1的硬體構成,係與圖1相同,又,在第2實施形態之記憶體系統1中所被使用的磁疇壁移動記憶體3之構成,亦係與第1實施形態相同。以下,主要針對與第1實施形態相異之部分作說明。
圖22,係為對於在第2實施形態的記憶體系統中所被使用之使行ECC框架和傾斜ECC框架被作了組合的乘積碼之構成例作展示之圖。
在圖22中,係與第1實施形態相同的,複數之傾斜ECC框架(框架#1~#8)之各者係在磁疇壁移動記憶體3之區塊之物理記憶區域處而被配置於傾斜方向上。在圖22中,係對於1個的區塊為包含有8根的磁性記憶線MML和8個的層之情況作例示。
亦即是,係以使在錯誤率中存在有差異的上層側之資料與下層側之資料均等地被包含於複數之傾斜ECC框架(例如框架#1~#8)之各者中,並且使以磁性記憶線MML之單位所產生的叢發錯誤被均等地分散於此些之傾斜ECC框架(例如框架#1~#8)中的方式,來在磁疇壁移動記憶體3之區塊的物理記憶區域處,將此些之傾斜ECC框架(例如框架#1~#8)的各者配置在傾斜方向上。此些之傾斜ECC框架(例如框架#1~#8)的各者之構成,係與第1實施形態相同。
在圖22中,為了降低資料之讀出處理的延遲,在磁疇壁移動記憶體3之區塊之物理記憶區域處,複數之行ECC框架(例如框架#1’~#8’)之各者係更進而被配置於行方向上。行ECC框架#1’~#8’,係具備有相同的框架大小。例如,1個的行ECC框架,係具備有對應於磁疇壁移動記憶體3之區塊的1以上之層的大小。圖22,係對於以1個的層之單位來構成行ECC框架之例作展示。以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架,以相同之數字所標示的資料要素之集合,係構成1個的行ECC框架。
另外,在圖22中,使用相同之數字所標示的資料要素之集合,係構成1個的行ECC框架。例如,使用「1」所標示的複數之資料要素(亦即是以α1~θ1所標示之複數之資料要素),係身為被包含於框架#1’中之資料要素之集合。又,使用相同之希臘文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。例如,使用「θ」所標示的複數之資料要素(亦即是以θ1~θ7所標示之複數之資料要素),係身為被包含於框架#1中之資料要素之集合。
記憶體控制器2,係將應被寫入至區塊中之資料使用將第1碼和第2碼作了組合的乘積碼來作編碼,並將使各別包含有第1碼之碼字的ECC框架群和各別包含有第2碼之碼字的ECC框架群被作了組合的編碼資料寫入至區塊中。於此情況,各別包含有第1碼之碼字的ECC框架群之各個的ECC框架,係在區塊之物理記憶區域處而被配置在行方向上,並作為行ECC框架#1’~#8’而被作使用。各別包含有第2碼之碼字的ECC框架群之各個的ECC框架,係在區塊之物理記憶區域處而被配置在傾斜方向上,並作為傾斜ECC框架#1~#8而被作使用。
第1碼,例如,係為用以將應被寫入至區塊中之資料在行方向上而作編碼之(C1碼)。第2碼,例如,係為用以將應被寫入至區塊中之資料在列方向上而作編碼之(C2碼)。
圖23,係為針對乘積碼之邏輯影像與在磁疇壁移動記憶體之區塊上的乘積碼之物理性配置之間的關係作展示之圖。
在圖23中,為了使說明簡單化,係對於區塊之物理記憶區域為具備有4行×4列之構成的情況作例示。
圖23(A),係對於為了構成複數之行ECC框架和複數之傾斜ECC框架而被作使用的乘積碼之邏輯影像作展示。資料部(X1,Y1,Z1)、資料部(X2,Y2,Z2)、資料部(X3,Y3,Z3),係為因應於從主機4而來之寫入要求而應被寫入至區塊中之資料(使用者資料)。記憶體控制器2之編碼部26,係將資料部(X1,Y1,Z1)、資料部(X2,Y2,Z2)、資料部(X3,Y3,Z3)在縱方向(列方向)上作排列,並藉由此而產生圖23(A)中所展示之2維配列之資料。X1,Y1,Z1,係身為被配置在第1行(Row1)處的資料部之資料要素。X2,Y2,Z2,係身為被配置在第2行(Row2)處的資料部之資料要素。X3,Y3,Z3,係身為被配置在第3行(Row3)處的資料部之資料要素。
之後,編碼部26,係使用將「用以將2維配列之資料以行之單位來作編碼的第1碼(C1碼)」和「用以將2維配列之資料以列之單位來作編碼的第2碼(C2碼)」作了組合的乘積碼,來將2維配列之資料作編碼,並產生使各別包含有C1碼之碼字的ECC框架C1-1、C1-2、C1-3和各別包含有C2碼之碼字的ECC框架C2-1、C2-2、C2-3、C2-4被作了組合的編碼資料。
實行C1碼和C2碼之順序,係並未被作限定,而可首先進行由C1碼所致之編碼並接著進行由C2碼所致之編碼,亦可首先進行由C2碼所致之編碼並接著進行由C1碼所致之編碼。例如,在首先進行由C1碼所致之編碼並接著進行由C2碼所致之編碼的情況時,藉由以C1碼所致之編碼,係先獲得層單位之資料。故而,係能夠更早地開始對於區塊之資料的寫入。以下,主要係針對首先進行由C1碼所致之編碼並接著進行由C2碼所致之編碼的情況作例示,而進行說明。
在ECC框架C1-1中所包含的碼字,係包含資料(X1,Y1,Z1)和同位檢查碼(α1),在ECC框架C1-2中所包含的碼字,係包含資料(X2,Y2,Z2)和同位檢查碼(α2),在ECC框架C1-3中所包含的碼字,係包含資料(X3,Y3,Z3)和同位檢查碼(α3)。
在ECC框架C2-1中所包含的碼字,係包含資料(X1,X2,X3)與同位檢查碼(XP),在ECC框架C2-2中所包含的碼字,係包含資料(Y1,Y2,Y3)與同位檢查碼(YP),在ECC框架C2-3中所包含的碼字,係包含資料(Z1,Z2,Z3)與同位檢查碼(ZP)。在ECC框架C2-4中所包含的碼字,係身為藉由將同位檢查碼(α1,α2,α3)作編碼所得到的碼字,並包含同位檢查碼(α1,α2,α3)和對應於此同位檢查碼(α1,α2,α3)之同位檢查碼(αP)。
圖23(B),係針對在磁疇壁移動記憶體3之區塊上的ECC框架C1-1~C1-3、ECC框架C2-1~C2-4之物理性配置作展示。
ECC框架C1-1~C1-3或ECC框架C2-1~C2-4之其中一方,係在磁疇壁移動記憶體3之區塊的物理記憶區域處而被配置於行方向上,並作為行ECC框架而被使用。
ECC框架C1-1~C1-3或ECC框架C2-1~C2-4之另外一方,係在磁疇壁移動記憶體3之區塊的物理記憶區域處而被配置於傾斜方向上,並作為傾斜ECC框架而被使用。
雖並不被限定於此,但是,以下,係針對使ECC框架C1-1~C1-3作為行ECC框架而被使用,並使ECC框架C2-1~C2-4作為傾斜ECC框架而被使用的情況作例示,來針對在磁疇壁移動記憶體3之區塊上的ECC框架C1-1~C1-3、ECC框架C2-1~C2-4之物理性配置作說明。
對應於第1行(Row1)之資料部(X1,Y1,Z1,α1),係使在此資料部中所包含的資料要素X1,Y1,Z1,α1之排列順序被作維持。
關於對應於第2行(Row2)之資料部(X2,Y2,Z2,α2),係以使在此資料部中所包含的資料要素X2,Y2,Z2,α2朝向右方作1個資料要素之量之移位的方式,而使資料要素X2,Y2,Z2,α2之排列順序被作變更,藉由此,此些之資料要素係被重新排列為α2,X2,Y2,Z2之順序。
關於對應於第3行(Row3)之資料部(X3,Y3,Z3,α3),係以使在此資料部中所包含的資料要素X3,Y3,Z3,α3朝向右方作2個資料要素之量之移位的方式,而使資料要素X3,Y3,Z3,α3之排列順序被作變更,藉由此,此些之資料要素係被重新排列為Z3,α3,X3,Y3之順序。
關於對應於第4行(Row4)之資料部(XP,YP,ZP,αP),係以使在此資料部中所包含的資料要素XP,YP,ZP,αP朝向右方作3個資料要素之量之移位的方式,而使資料要素XP,YP,ZP,αP之排列順序被作變更,藉由此,此些之資料要素係被重新排列為YP,ZP,αP,XP之順序。
對應於第1行(Row1)之資料部、被作了重新排列的對應於第2行(Row2)之資料部、被作了重新排列的對應於第3行(Row3)之資料部、被作了重新排列的對應於第4行(Row4)之資料部,係如同圖23(B)中所示一般,分別被配置在區塊之物理記憶區域上的相連續之複數之行處。其結果,係能夠在區塊之物理記憶區域處,將ECC框架C1-1~C1-3之各者配置在行方向上,並且在區塊之物理記憶區域處,將ECC框架C2-1(X1,X2,X3、XP)、ECC框架C2-2 (Y1,Y2,Y3,YP)、ECC框架C2-3(Z1,Z2,Z3,ZP)、ECC框架C2-4(α1,α2,α3,αP)之各者配置在傾斜方向上。亦即是,記憶體控制器2,係在對應於第1列(Col.1)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存X1、α2、Z3、YP,並在對應於第2列(Col.2)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存Y1、X2、α3、ZP,並在對應於第3列(Col.3)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存Z1、Y2、X3、αP,並且在對應於第4列(Col.4)的磁性記憶線MML內之4個的層(對應於Row1~Row4)處,分別儲存α1、Z2、Y3、XP。
在圖23中,亦係如同在圖11(C)中所作了說明一般,亦可將傾斜ECC框架之各者之同位檢查碼(YP,ZP,αP,XP)儲存在區塊之最上層處。於此情況,對於區塊之寫入,係以資料部(X1,Y1,Z1,α1)、資料部(α2,X2,Y2,Z2)、資料部(Z3,α3,X3,Y3)、同位檢查碼(YP,ZP,αP,XP)之順序而被實行。藉由此,最初所被寫入了的資料部(X1,Y1,Z1,α1)係被儲存於區塊之最下層處,最後所被寫入了的同位檢查碼(YP,ZP,αP,XP)係被儲存於區塊之最上層處。
圖24,係為對於當磁疇壁移動記憶體3之區塊為具備有8MML×8層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之構成例作展示之圖。於此,係針對各行ECC框架之大小(框架長度)係為8,並且各傾斜ECC框架之大小(框架長度)亦為8的情況來作例示。
在圖24中,使用相同之數字所標示的資料要素之集合,係構成1個的行ECC框架。例如,使用「1」所標示的複數之資料要素(亦即是以a1~h1所標示之複數之資料要素),係身為構成框架#1’之資料要素之集合。又,使用相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。例如,使用「h」所標示的複數之資料要素(亦即是以h以及h1~h7所標示之複數之資料要素),係身為構成框架#1之資料要素之集合。
圖24(A),係對於與7個的行ECC框架(框架#1’~#7’)相對應之7個的碼字之邏輯影像和與8個的傾斜ECC框架(框架#1~#8)相對應之8個的碼字之邏輯影像作展示。
圖24(B),係對於在區塊之物理記憶區域處之7個的行ECC框架(框架#1’~#7’)和8個的傾斜ECC框架(框架#1~#8)之物理性配置作展示。在圖24(B)中,1個的列係對應於區塊內之1個的磁性記憶線MML,1個的行係對應於區塊內之1個的層。
在圖24中,以相同之數字所標示的資料要素之集合,係構成1個的行ECC框架,以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。又,以粗框所標示的資料要素,係代表儲存同位檢查碼之資料要素。另外,在各ECC框架中,同位檢查碼係只要被儲存在此ECC框架內之資料要素之任一個資料要素中即可,同位檢查碼所應被儲存的資料要素之物理性位置係並不被作限定。
7個的行ECC框架(框架#1’~#7’),係分別被配置在區塊之第1行(Row1)~第7行(Row7)處。
係構成為:8個的傾斜ECC框架(框架#1~#8),係在各傾斜ECC框架中使各種的列(各種的磁性記憶線MML)被均等地作包含,並且在各傾斜ECC框架中係均等地包含有各種深度之行(胞)。8個的傾斜ECC框架(框架#1~#8),係與第1實施形態相同的,具備有資料配置特徵1、2、3。
如同圖24(A)中所示一般,首先,2維配列之資料係以行的單位而被編碼,並產生7個的行ECC框架(框架#1’~#7’)。
行ECC框架(框架#1’)係儲存1個的碼字,此碼字係包含資料(a1,b1,c1,d1,e1,f1,g1)和同位檢查碼(h1)。行ECC框架(框架#2’)係儲存1個的碼字,此碼字係包含資料(a2,b2,c2,d2,e2,f2,g2)和同位檢查碼(h2)。行ECC框架(框架#3’)係儲存1個的碼字,此碼字係包含資料(a3,b3,c3,d3,e3,f3,g3)和同位檢查碼(h3)。行ECC框架(框架#4’)係儲存1個的碼字,此碼字係包含資料(a4,b4,c4,d4,e4,f4,g4)和同位檢查碼(h4)。行ECC框架(框架#5’)係儲存1個的碼字,此碼字係包含資料(a5,b5,c5,d5,e5,f5,g5)和同位檢查碼(h5)。行ECC框架(框架#6’)係儲存1個的碼字,此碼字係包含資料(a6,b6,c6,d6,e6,f6,g6)和同位檢查碼(h6)。行ECC框架(框架#7’)係儲存1個的碼字,此碼字係包含資料(a7,b7,c7,d7,e7,f7,g7)和同位檢查碼(h7)。
接著,2維配列之資料係以列的單位而被編碼,並產生8個的ECC框架(框架#1~#8)。此些之ECC框架(框架#1~#8),係為藉由將資料以列的單位來作編碼所得到之ECC框架(列ECC框架),但是,由於係作為在區塊中而被配置於傾斜方向上的ECC框架而被作使用,因此以下係稱作傾斜ECC框架。
傾斜ECC框架(框架#1)係儲存1個的碼字,此碼字係包含資料(h1,h2,h3,h4,h5,h6,h7)和同位檢查碼(h)。傾斜ECC框架(框架#2)係儲存1個的碼字,此碼字係包含資料(g1,g2,g3,g4,g5,g6,g7)和同位檢查碼(g)。傾斜ECC框架(框架#3)係儲存1個的碼字,此碼字係包含資料(f1,f2,f3,f4,f5,f6,f7)和同位檢查碼(f)。傾斜ECC框架(框架#4)係儲存1個的碼字,此碼字係包含資料(e1,e2,e3,e4,e5,e6,e7)和同位檢查碼(e)。傾斜ECC框架(框架#5)係儲存1個的碼字,此碼字係包含資料(d1,d2,d3,d4,d5,d6,d7)和同位檢查碼(d)。傾斜ECC框架(框架#6)係儲存1個的碼字,此碼字係包含資料(c1,c2,c3,c4,c5,c6,c7)和同位檢查碼(c)。傾斜ECC框架(框架#7)係儲存1個的碼字,此碼字係包含資料(b1,b2,b3,b4,b5,b6,b7)和同位檢查碼(b)。傾斜ECC框架(框架#8)係儲存1個的碼字,此碼字係包含資料(a1,a2,a3,a4,a5,a6,a7)和同位檢查碼(a)。
如同在圖24(B)中所示一般,7個的行ECC框架(框架#1’~#7’)之各者係在區塊之物理記憶區域處而被配置於行方向上,並且8個的傾斜ECC框架(框架#1~#8)之各者係在區塊之物理記憶區域處而被配置於傾斜方向上。根據圖24(B),可以理解到,以相同之數字所標示的資料要素之集合,係被配置在行方向上,以相同之字母表文字所標示的資料要素之集合,係被配置在傾斜方向上。
例如,傾斜ECC框架(框架#8)之碼字(a1,a2,a3,a4,a5,a6,a7,a),係沿著區塊之物理記憶區域的對角線而被作配置。又,例如,傾斜ECC框架(框架#1),係包含傾斜框架要素#1-1和傾斜框架要素#1-2。傾斜框架要素#1-1,係為包含有多數之上層側之資料的框架要素,在圖24(B)所示之例中,傾斜框架要素#1-1,係僅包含有存在於第1行(Row1)之第8列(Col.8)中之資料要素h1。傾斜框架要素#1-2,係為包含有多數之下層側之資料的框架要素,在圖12(B)所示之例中,傾斜框架要素#1-2,係僅包含有7個的資料要素h2,h3,h4,h5,h6,h7。
將8個的傾斜ECC框架(框架#1~#8)之各者在區塊之物理記憶區域處而配置於傾斜方向上的處理,例如,係如同下述一般,能夠藉由在各行之每一者處將資料重新排列而容易地實行。
在圖24(A)中,對應於第1行(Row1)的資料部(a1,b1,c1,d1,e1,f1,g1,h1)之重新排列,係並不被進行。對應於第2行(Row2)的資料部(a2,b2,c2,d2,e2,f2,g2,h2),係被重新排列為h2,a2,b2,c2,d2,e2,f2,g2之順序。對應於第3行(Row3)的資料部(a3,b3,c3,d3,e3,f3,g3,h3),係被重新排列為g3,h3,a3,b3,c3,d3,e3,f3之順序。對應於第4行(Row4)的資料部(a4,b4,c4,d4,e4,f4,g4,h4),係被重新排列為f4,g4,h4,a4,b4,c4,d4,e4之順序。同樣的,對應於第8行(Row8)的資料部(a,b,c,d,e,f,g,h),係被重新排列為b,c,d,e,f,g,h,a之順序。
如此這般,係以使隸屬於相同之傾斜ECC框架的資料要素(以相同之字母表文字所被作標示之資料要素)之各者之列位置在複數之行間而作偏移的方式,來藉由將在各行之資料部中所包含之資料要素的排列順序規則性地作變更,而能夠如同圖24(B)中所示一般地,在區塊之物理記憶區域處將7個的行ECC框架(#1’~#7’)之各者配置於行方向上,並在區塊之物理記憶區域處將8個的傾斜ECC框架(#1~#8)之各者配置於傾斜方向上。
於此係注目於在區塊中所包含的複數之磁性記憶線MML之中之任意之第1以及第2MML(例如,Col.1之MML、Col.3之MML)與複數之層之中之任意之第1以及第2層(例如,Row1之層、Row3之層)。如同圖24(B)中所示一般,第1資料(於此係為a1),係被儲存在對應於第1MML (於此係為Col.1之MML)內之第1層(於此係為Row1之層)的位置(胞)處,第2資料(於此係為g3),係被儲存在對應於第1MML(於此係為Col.1之MML)內之第2層(於此係為Row3之層)的位置處,第3資料(於此係為a3),係被儲存在對應於第2MML(於此係為Col.3之MML)內之第2層(於此係為Row3之層)的位置處,第4資料(於此係為c1),係被儲存在對應於第2MML(於此係為Col.3之MML)內之第1層(於此係為Row1之層)的位置處。
於此情況,第1傾斜ECC框架(於此係為ECC框架#8),係包含有第1資料(於此係為a1)和第3資料(於此係為a3),並且,第2資料(於此係為g3)係被包含在與第1傾斜ECC框架相異之第2傾斜ECC框架(於此係為ECC框架#2)中(資料配置特徵1)。
又,第1行ECC框架(於此係為ECC框架#1’),係包含有第1資料(於此係為a1)和第4資料(於此係為c1),第2行ECC框架(於此係為ECC框架#3’),係包含有第2資料(於此係為g3)和第4資料(於此係為c1)。另外,當第1行ECC框架(於此係為ECC框架#1’)例如係藉由3個以上之層而被構成的情況時,第2資料(於此係為g3)和第4資料(於此係為c1)亦係被包含於第1行ECC框架(於此係為ECC框架#1’)中。
圖25,係為對於當磁疇壁移動記憶體3之區塊為具備有4MML×16層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之構成例作展示之圖。於此,係針對各行ECC框架與各傾斜ECC框架之大小(框架長度)為8的情況來作例示。
圖25(A),係對於在圖24(B)中所說明了的乘積碼之ECC框架(行ECC框架和傾斜ECC框架)之物理性配置作展示。以相同之數字所標示的資料要素之集合,係構成1個的行ECC框架,以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。
在圖25(A)中所展示的8×8之資料要素,係如同在圖25(B)中所示一般,於每一行處,被分割成隸屬於最初之4個的列之4個的資料要素、和隸屬於剩餘之4個的列之4個的資料要素。又,如同圖25(C)中所示一般,在8×8之資料要素中所包含的第1行(Row1)之最初之4個的資料要素(a1,b1,c1,d1),係被配置在區塊之物理記憶區域(4列×16行)之第1行(Row1)處,在8×8之資料要素中所包含的第1行(Row1)之剩餘之4個的資料要素(e1,f1,g1,h1),係被配置在物理記憶區域(4列×16行)之第2行(Row2)處,在8×8之資料要素中所包含的第2行(Row2)之最初之4個的資料要素(h2,a2,b2,c2),係被配置在物理記憶區域(4列×16行)之第3行(Row3)處,在8×8之資料要素中所包含的第2行(Row2)之剩餘之4個的資料要素(d2,e2,f2,g2),係被配置在物理記憶區域(4列×16行)之第4行(Row4)處,以下亦為同樣,而,在8×8之資料要素中所包含的第8行(Row8)之最初之4個的資料要素(b,c,d,e),係被配置在物理記憶區域(4列×16行)之第15行(Row15)處,在8×8之資料要素中所包含的第8行(Row8)之剩餘之4個的資料要素(f,g,h,a),係被配置在物理記憶區域(4列×16行)之第16行(Row16)處。
其結果,各行ECC框架係涵蓋物理記憶區域(4列×16行)之相鄰接之2個的行地而被作儲存。8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中使全部之列各被包含有2個的胞,並且在各傾斜ECC框架中均等地包含有全部的深度之行之中之約一半之行的方式,而被構成。
在物理記憶區域(4列×16行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有包含多數的上層側之資料之傾斜框架要素#8-1、和包含多數的下層側之資料之傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第3行(Row3)之第2列(Col.2)處的資料要素a2、被儲存在第5行(Row5)之第3列(Col.3)處的資料要素a3、以及被儲存在第7行(Row7)之第4列(Col.4)處的資料要素a4。
傾斜框架要素#8-2,係包含有被儲存在第10行(Row10)之第1列(Col.1)處的資料要素a5、被儲存在第12行(Row12)之第2列(Col.2)處的資料要素a6、被儲存在第14行(Row14)之第3列(Col.3)處的資料要素a7、以及被儲存在第16行(Row16)之第4列(Col.4)處的資料要素a。
又,例如,以藉由字母表文字「b」所標示的資料要素之集合所構成的傾斜ECC框架(框架#7),係包含有傾斜框架要素#7-1、和傾斜框架要素#7-2、和傾斜框架要素
#7-3。
傾斜框架要素#7-1,係包含有被儲存在第1行(Row1)之第2列(Col.2)處的資料要素b1、被儲存在第3行(Row3)之第3列(Col.3)處的資料要素b2、以及被儲存在第5行(Row5)之第4列(Col.4)處的資料要素b3。
傾斜框架要素#7-2,係包含有被儲存在第8行(Row8)之第1列(Col.1)處的資料要素b4、被儲存在第10行(Row10)之第2列(Col.2)處的資料要素b5、被儲存在第12行(Row12)之第3列(Col.3)處的資料要素b6、以及被儲存在第14行(Row14)之第4列(Col.4)處的資料要素b7。
傾斜框架要素#7-3,係包含有被儲存在第15行(Row15)之第1列(Col.1)處的資料要素b。
圖26,係為對於當磁疇壁移動記憶體3之區塊為具備有4MML×16層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之構成例作展示之圖。
圖26(A),係對於在圖24(B)中所說明了的乘積碼之ECC框架(行ECC框架和傾斜ECC框架)之物理性配置作展示。以相同之數字所標示的資料要素之集合,係構成1個的行ECC框架,以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。
在圖26(A)中所展示的8×8之資料要素,係如同在圖26(B)中所示一般,被分割成對應於8個的列之8個的資料部。又,如同圖26(C)中所示一般,在8×8之資料要素中所包含之第1列(Col.1)的資料部(a1,h2,g3,f4,e5,d6,c7,b),係作為區塊之物理記憶區域(4列×16行)之第1列(Col.1)之上側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第2列(Col.2)的資料部(b1,a2,h3,g4,f5,e6,d7,c),係作為區塊之物理記憶區域(4列×16行)之第1列(Col.1)之下側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第3列(Col.3)的資料部(c1,b2,a3,h4,g5,f6,e7,d),係作為區塊之物理記憶區域(4列×16行)之第2列(Col.2)之上側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第4列(Col.4)的資料部(d1,c2,b3,a4,h5,g6,f7,e),係作為區塊之物理記憶區域(4列×16行)之第2列(Col.2)之下側之8個的資料要素而被作配置,以下亦為同樣,而,在8×8之資料要素中所包含之第7列(Col.7)的資料部(g1,f2,e3,d4,c5,b6,a7,h),係作為區塊之物理記憶區域(4列×16行)之第4列(Col.4)之上側之8個的資料要素而被作配置,在8×8之資料要素中所包含之第8列(Col.8)的資料部(h1,g2,f3,e4,d5,c6,b7,a),係作為區塊之物理記憶區域(4列×16行)之第4列(Col.4)之下側之8個的資料要素而被作配置。
其結果,各行ECC框架係被分散於物理記憶區域(4列×16行)之2個的行處。8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中使全部之列各被包含有2個的胞,並且在各傾斜ECC框架中均等地包含有全部的深度之行之中之約一半之行的方式,而被構成。
在物理記憶區域(4列×16行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有包含多數的上層側之資料之傾斜框架要素#8-1、和包含多數的下層側之資料之傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第3行(Row3)之第2列(Col.2)處的資料要素a3、被儲存在第5行(Row5)之第3列(Col.3)處的資料要素a5、以及被儲存在第7行(Row7)之第4列(Col.4)處的資料要素a7。
傾斜框架要素#8-2,係包含有被儲存在第10行(Row10)之第1列(Col.1)處的資料要素a2、被儲存在第12行(Row12)之第2列(Col.2)處的資料要素a4、被儲存在第14行(Row14)之第3列(Col.3)處的資料要素a6、以及被儲存在第16行(Row16)之第4列(Col.4)處的資料要素a。
又,例如,以藉由字母表文字「c」所標示的資料要素之集合所構成的傾斜ECC框架(框架#6),係包含有傾斜框架要素#6-1、和傾斜框架要素#6-2、和傾斜框架要素
#6-3、和傾斜框架要素#6-4。
傾斜框架要素#6-1,係包含有被儲存在第1行(Row1)之第2列(Col.2)處的資料要素c1、被儲存在第3行(Row3)之第3列(Col.3)處的資料要素c3、以及被儲存在第5行(Row5)之第4列(Col.4)處的資料要素c5。
傾斜框架要素#6-2,係包含有被儲存在第7行(Row7)之第1列(Col.1)處的資料要素c7。
傾斜框架要素#6-3,係包含有被儲存在第10行(Row10)之第2列(Col.2)處的資料要素c2、被儲存在第12行(Row12)之第3列(Col.3)處的資料要素c4、以及被儲存在第14行(Row14)之第4列(Col.4)處的資料要素c6。
傾斜框架要素#6-4,係包含有被儲存在第16行(Row16)之第1列(Col.1)處的資料要素c。
圖27,係為對於當磁疇壁移動記憶體3之區塊為具備有16MML×4層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之2種類的構成例作展示之圖。
圖27(A),係對於在圖24(B)中所說明了的乘積碼之ECC框架(行ECC框架和傾斜ECC框架)之物理性配置作展示。以相同之數字所標示的資料要素之集合,係構成1個的行ECC框架,以相同之字母表文字所標示的資料要素之集合,係構成1個的傾斜ECC框架。
在圖27(A)中所展示的8×8之資料要素,係被分割成對應於8個的行之8個的資料部。又,如同圖27(B)中所示一般,在8×8之資料要素中所包含的第1行(Row1)之資料部(a1,b1,c1,d1,e1,f1,g1,h1),係作為區塊之物理記憶區域(16列×4行)之第1行(Row1)之最初之8個的列之資料要素而被作配置,在8×8之資料要素中所包含的第2行(Row2)之資料部(h2,a2,b2,c2,d2,e2,f2,g2),係作為區塊之物理記憶區域(16列×4行)之第1行(Row1)之剩餘之8個的列之資料要素而被作配置,…,而,在8×8之資料要素中所包含的第7行(Row7)之資料部(c7,d7,e7,f7,g7,h7,a7,b7),係作為區塊之物理記憶區域(16列×4行)之第4行(Row4)之最初之8個的列之資料要素而被作配置,在8×8之資料要素中所包含的第8行(Row8)之資料部(b,c,d,e,f,g,h,a),係作為區塊之物理記憶區域(16列×4行)之第4行(Row4)之剩餘之8個的列之資料要素而被作配置。
其結果,8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中均等地包含有全部之列之中之約一半的列,並且在各傾斜ECC框架中使全部之深度之行各被包含有2個的胞的方式,而被構成。
在圖27(B)所示之區塊之物理記憶區域(16列×4行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有傾斜框架要素#8-1、和傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第10列(Col.10)處的資料要素a2、被儲存在第2行(Row3)之第12列(Col.12)處的資料要素a4、被儲存在第3行(Row3)之第14列(Col.14)處的資料要素a6、以及被儲存在第4行(Row4)之第16列(Col.16)處的資料要素a。
傾斜框架要素#8-2,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第2行(Row2)之第3列(Col.3)處的資料要素a3、被儲存在第3行(Row3)之第5列(Col.5)處的資料要素a5、以及被儲存在第4行(Row4)之第7列(Col.7)處的資料要素a7。
又,例如,以藉由字母表文字「c」所標示的資料要素之集合所構成的傾斜ECC框架(框架#6),係包含有傾斜框架要素#6-1、和傾斜框架要素#6-2、和傾斜框架要素
#6-3、和傾斜框架要素#6-4。
傾斜框架要素#6-1,係包含有被儲存在第1行(Row1)之第12列(Col.12)處的資料要素c2、被儲存在第2行(Row2)之第14列(Col.14)處的資料要素c4、以及被儲存在第3行(Row3)之第16列(Col.16)處的資料要素c6。
傾斜框架要素#6-2,係包含有被儲存在第4行(Row4)之第10列(Col.10)處的資料要素c。
傾斜框架要素#6-3,係包含有被儲存在第1行(Row1)之第3列(Col.3)處的資料要素c1、被儲存在第2行(Row2)之第5列(Col.5)處的資料要素c3、以及被儲存在第3行(Row3)之第7列(Col.7)處的資料要素c5。
傾斜框架要素#6-4,係包含有被儲存在第4行(Row4)之第1列(Col.1)處的資料要素c7。
圖27(C),係對於乘積碼之ECC框架(行ECC框架和傾斜ECC框架)之另一構成例作展示。
在圖27(C)中所示之乘積碼之ECC框架(行ECC框架和傾斜ECC框架),係藉由以下之處理而被構成。
在圖27(A)中所展示的8×8之資料要素,係於每一列處,被分割成隸屬於上側之4個的行之4個的資料要素、和隸屬於下側之4個的行之4個的資料要素。又,如同圖27(C)中所示一般,在8×8之資料要素中所包含之第1列(Col.1)之上側之4個的資料要素(a1,h2,g3,f4),係被配置在區塊之物理記憶區域(16列×4行)之第1列(Col.1)處,在8×8之資料要素中所包含之第1列(Col.1)之下側之4個的資料要素(e5,d6,c7,b),係被配置在區塊之物理記憶區域(16列×4行)之第2列(Col.2)處,在8×8之資料要素中所包含之第2列(Col.2)之上側之4個的資料要素(b1,a2,h3,g4),係被配置在區塊之物理記憶區域(16列×4行)之第3列(Col.3)處,在8×8之資料要素中所包含之第2列(Col.2)之下側之4個的資料要素(f5,e6,d7,c),係被配置在區塊之物理記憶區域(16列×4行)之第4列(Col.4)處,…,而,在8×8之資料要素所包含之第8列(Col.8)之上側之4個的資料要素(h1,g2,f3,e4),係被配置在區塊之物理記憶區域(16列×4行)之第15列(Col.15)處,在8×8之資料要素中所包含之第8列(Col.8)之下側之4個的資料要素(d5,c6,b7,a),係被配置在區塊之物理記憶區域(16列×4行)之第16列(Col.16)處。
其結果,8個的傾斜ECC框架(框架#1~#8),係以在各傾斜ECC框架中均等地包含有全部之列之中之約一半的列,並且在各傾斜ECC框架中使全部之深度之行各被包含有2個的胞的方式,而被構成。
在圖27(C)所示之區塊之物理記憶區域(16列×4行)中,例如,以藉由字母表文字「a」所標示的資料要素之集合所構成的傾斜ECC框架(框架#8),係包含有傾斜框架要素#8-1、和傾斜框架要素#8-2。
傾斜框架要素#8-1,係包含有被儲存在第1行(Row1)之第10列(Col.10)處的資料要素a5、被儲存在第2行(Row3)之第12列(Col.12)處的資料要素a6、被儲存在第3行(Row3)之第14列(Col.14)處的資料要素a7、以及被儲存在第4行(Row4)之第16列(Col.16)處的資料要素a。
傾斜框架要素#8-2,係包含有被儲存在第1行(Row1)之第1列(Col.1)處的資料要素a1、被儲存在第2行(Row2)之第3列(Col.3)處的資料要素a2、被儲存在第3行(Row3)之第5列(Col.5)處的資料要素a3、以及被儲存在第4行(Row4)之第7列(Col.7)處的資料要素a4。
又,例如,以藉由字母表文字「c」所標示的資料要素之集合所構成的傾斜ECC框架(框架#6),係包含有傾斜框架要素#6-1、和傾斜框架要素#6-2、和傾斜框架要素
#6-3。
傾斜框架要素#6-1,係包含有被儲存在第1行(Row1)之第14列(Col.14)處的資料要素c5、以及被儲存在第2行(Row2)之第16列(Col.16)處的資料要素c6。
傾斜框架要素#6-2,係包含有被儲存在第1行(Row1)之第5列(Col.5)處的資料要素c1、被儲存在第2行(Row2)之第7列(Col.7)處的資料要素c2、被儲存在第3行(Row3)之第9列(Col.9)處的資料要素c3、以及被儲存在第4行(Row4)之第11列(Col.11)處的資料要素c4。
傾斜框架要素#6-3,係包含有被儲存在第3行(Row3)之第2列(Col.2)處的資料要素c7、以及被儲存在第4行(Row4)之第4列(Col.4)處的資料要素c。
圖28,係為對於在記憶體系統1處所被實行的寫入處理之程序作展示之流程圖。
在記憶體控制器2從主機4而受訊了寫入要求時,記憶體控制器2,係開始在圖28之流程圖中所示的寫入處理。
對於磁疇壁移動記憶體3之區塊的資料之寫入,係亦可在從主機4受訊了1個區塊之大小之量的資料之後再開始,但是,如同上述一般,在使用能夠將同位檢查碼配置於區塊之上層側(例如最上層Ln)處之資料配置的情況中,係能夠與從主機4而來之資料之受訊以及各ECC框架之每一者之編碼處理並行地,而進行對於區塊之資料的寫入。以下,係對於後者的情況作例示,而對於寫入處理之程序作說明。
記憶體控制器2,係從主機4而受訊被與從主機4所受訊了的寫入要求相互附加有關連之資料,並將此資料儲存在資料緩衝器25中(步驟S41)。
記憶體控制器2,係使用被儲存在資料緩衝器25中之資料,來藉由使用有使C1碼和C2碼被作了組合的乘積碼之編碼,而產生包含「各別包含有C1碼之碼字的ECC框架(行ECC框架)群」和「各別包含有C2碼之碼字的ECC框架(列ECC框架)群」之編碼資料(乘積碼之編碼資料)的一部分(步驟S42)。在步驟S42中,係亦可首先進行由C1碼所致之編碼並接著進行由C2碼所致之編碼。藉由此,層單位之編碼資料(C1碼之碼字)係作為乘積碼之編碼資料的一部分而首先被產生。對應於各行ECC框架(傾斜ECC框架)的碼字之同位檢查碼,由於係只要於最後再寫入至區塊中即可,因此,係能夠並不等待由C2碼所致之同位檢查碼之計算之結束地便開始對於區塊之資料的寫入。
因此,記憶體控制器2,係與編碼處理並行地,而將乘積碼之編碼資料之一部分(於此,係為C1碼之碼字)寫入至區塊中(步驟S43)。在步驟S43中,記憶體控制器2,係以將各行ECC框架在區塊之物理記憶區域處而配置於行方向上並將各列ECC框架在區塊之物理記憶區域處而配置於傾斜方向上的方式,來將所被產生的編碼資料之一部分寫入至區塊中。
記憶體控制器2,係判定是否將使行ECC框架群和列ECC框架群被作了組合後的乘積碼之編碼資料之全部均寫入至了區塊中(步驟S44)。步驟S41~S43之處理係被反覆實行,直到乘積碼之編碼資料之全部均被寫入至了區塊中為止。
若是對應於各列ECC框架之C2碼字的同位檢查碼係藉由編碼部26而被作了計算,則在步驟S42中,係作為乘積碼之編碼資料之一部分,而被產生有對應於各列ECC框架之C2碼字的同位檢查碼。之後,在步驟S43中,記憶體控制器2,係將此些之同位檢查碼寫入至區塊中。
若是乘積碼之編碼資料之全部均被寫入至了區塊中(步驟S44,YES),則寫入處理係結束。
此寫入處理之結果,係以使在錯誤率中存在有差異的上層側之資料與下層側之資料被均等地被包含於複數之ECC框架之各者中,並且使以磁性記憶線MML之單位所產生的叢發錯誤被均等地分散於複數之ECC框架中的方式,來在區塊的物理記憶區域處將複數之列ECC框架的各者配置在傾斜方向上。被配置於傾斜方向上的各列ECC框架,係作為上述之傾斜ECC框架而被作使用。
另外,於此雖係針對將複數之列ECC框架的各者在區塊的物理記憶區域處而配置於傾斜方向上之例子來作了說明,但是,係亦可將複數之列ECC框架的各者配置於行方向上,並將複數之行ECC框架之各者配置在傾斜方向上。
圖29,係為對於將複數之行ECC框架的各者在磁疇壁移動記憶體3之區塊的物理記憶區域處而配置於行方向上並且將複數之傾斜ECC框架的各者在物理記憶區域處而配置於傾斜方向上的處理之程序作展示之流程圖。
圖29之步驟S51以及步驟S52之處理,係在圖28之步驟S44處而被實行。
記憶體控制器2,係以使隸屬於相同之列ECC框架(亦即是應作為傾斜ECC框架而被作配置之ECC框架)的資料要素之各者所被作配置之列的位置會於在列方向(縱方向)而被作了排列的複數之行ECC框架間而作偏移的方式,來將在複數之行ECC框架之各者中所包含之複數的資料要素之排列順序規則性地作變更(步驟S51)。
之後,記憶體控制器2,係將此些之行ECC框架之各者寫入至區塊中,藉由此,而將複數之行ECC框架的各者在磁疇壁移動記憶體3之區塊的物理記憶區域處而配置於行方向上並且將複數之傾斜ECC框架的各者在物理記憶區域處而配置於傾斜方向上(步驟S52)。
圖30,係為對於使用有行ECC框架與傾斜ECC框架的解碼處理之程序作展示之流程圖。
記憶體控制器2,係從磁疇壁移動記憶體3,而將被儲存在區塊中的資料之一部分讀出(步驟S61)。例如,當從區塊而將藉由主機4所作了指定的讀出對象資料讀出的情況時,記憶體控制器2,係將包含有此讀出對象資料之行ECC框架之全體,作為被儲存在區塊中的資料之一部分而讀出。記憶體控制器2,係實行將與此所讀出了的資料相對應之行ECC框架解碼並對於此讀出了的資料之錯誤作訂正之第1解碼處理(C1解碼)(步驟S62)。
在此行ECC框架之第1解碼處理(C1解碼)成功了的情況時(步驟S63,YES),處理係結束。另外,在被實行將區塊大小之量的資料從區塊而讀出的讀出處理之情況中,步驟S61之處理和步驟S62之處理係被反覆進行,藉由此,針對各行ECC框架之每一者,第1解碼處理(C1解碼)係被實行。
當行ECC框架之第1解碼處理(C1解碼)失敗了的情況時(步驟S63,NO),記憶體控制器2,係以使被儲存於區塊中之所有的資料均被讀出的方式,來從區塊而將剩餘之資料讀出(步驟S64)。於此,所謂解碼之失敗,係指錯誤訂正為失敗,所謂解碼成功,係指錯誤訂正為成功。
記憶體控制器2,係藉由將隸屬於相同的傾斜ECC框架之資料部彼此作組合,來將複數之傾斜ECC框架作再建構(步驟S65)。
記憶體控制器2,係藉由將被作了再建構的複數之傾斜ECC框架解碼,來實行對於在第1解碼處理(C1解碼)為失敗了的行ECC框架中所包含之錯誤作訂正之第2解碼處理(C2解碼)(步驟S66)。在步驟S66中,記憶體控制器2,係使用各傾斜ECC框架之解碼結果,來對於在C1解碼為失敗了的行ECC框架中所包含之錯誤作訂正。
當第2解碼處理(C2解碼)為成功了的情況時(步驟S67,YES),亦即是當所有的傾斜ECC框架之解碼均成功了的情況時,係能夠將在第1解碼處理(C1解碼)為失敗了的行ECC框架中所包含之所有的錯誤作訂正。因此,處理係結束。另一方面,當第2解碼處理(C2解碼)為失敗了的情況時(步驟S67,NO),於使用C2解碼為成功了的傾斜ECC框架之解碼結果來使此行ECC框架之錯誤之一部分被作了訂正的狀態下,此行ECC框架之解碼處理(C1解碼)係再度被實行。
如同上述一般,若依據第2實施形態,則由於係使用有使行ECC框架和傾斜ECC框架被作了組合的乘積碼,因此,在能夠藉由行ECC框架之解碼來成功將所讀出了的對象資料之錯誤作訂正的情況時,記憶體控制器2,係能夠並不進行列ECC框架(傾斜ECC框架)之解碼地而將此讀出對象資料回送至主機2處。故而,係能夠將資料之讀出處理的延遲降低。又,在行ECC框架之解碼為失敗的情況時,記憶體控制器2,係將區塊內之所有的資料讀出,並進行各列ECC框架(傾斜ECC框架)之解碼,而能夠藉由此來對於讀出對象資料之錯誤作訂正。故而,係與第1實施形態相同的,能夠謀求被儲存在磁疇壁移動記憶體3中的資料之信賴性之提升。
(變形例)
接著,作為乘積碼之變形例,針對使2種類之傾斜ECC框架被作了組合的乘積碼作說明。
圖31,係為對於使2種類的傾斜ECC框架被作了組合的乘積碼之構成例作展示之圖。
在圖31中,係對於1個的區塊為包含有8根的磁性記憶線MML和8個的層之情況作例示。與第1實施形態相同的,複數之傾斜ECC框架(框架#1~#8)之各者係在磁疇壁移動記憶體3之區塊之物理記憶區域處而被配置於傾斜方向上。
亦即是,係以使在錯誤率中存在有差異的上層側之資料與下層側之資料均等地被包含於複數之傾斜ECC框架(例如框架#1~#8)之各者中,並且使以磁性記憶線MML之單位所產生的叢發錯誤被均等地分散於此些之傾斜ECC框架(例如框架#1~#8)中的方式,來在磁疇壁移動記憶體3之區塊的物理記憶區域處,將此些之傾斜ECC框架(例如框架#1~#8)的各者配置在傾斜方向上。此些之傾斜ECC框架(例如框架#1~#8)的各者之構成,係與第1實施形態相同。
在圖31中,以相同之字母表文字(於此係為相同之希臘字母)所標示的資料要素之集合,係構成1個的傾斜ECC框架。例如,以「θ」所標示的複數之資料要素,係身為在框架#1中所包含之資料要素的集合。
在圖31中,為了提高對於資料作保護之性能,係更進而被配置有與此些之傾斜ECC框架(框架#1~#8)相逆向的傾斜ECC框架(框架#1’~#8’)之各者。例如,傾斜ECC框架(框架#1~#8)係被配置在朝向右下之傾斜方向上,傾斜ECC框架(框架#1’~#8’)係被配置在朝向左下之傾斜方向上。此些之傾斜ECC框架(框架#1’~#8’),係與傾斜ECC框架(框架#1~#8)相同的,以使在錯誤率中存在有差異的上層側之資料與下層側之資料均等地被包含於此些之傾斜ECC框架(框架#1’~#8’)之各者中,並且使以磁性記憶線MML之單位所產生的叢發錯誤被均等地分散於此些之傾斜ECC框架(框架#1’~#8’)中的方式,來在磁疇壁移動記憶體3之區塊的物理記憶區域處而配置於傾斜方向(與傾斜ECC框架#1~#8相逆向之傾斜方向)上。傾斜ECC框架#1’~#8’之各者的框架大小,係亦可為與傾斜ECC框架(框架#1~#8)之各者的框架大小相同。
在圖31中,傾斜ECC框架#8’係藉由沿著與傾斜ECC框架#8相正交之對角線而被配置於傾斜方向上之1個的框架要素而被構成。其他之傾斜ECC框架#1’~#7’之各者,係藉由在區塊之物理記憶區域處而分別被配置於傾斜方向上之2個的框架要素(係亦作為傾斜框架要素而被作參照)之組合而被構成。
傾斜ECC框架#1’,係包含傾斜框架要素#1’-1和傾斜框架要素#1’-2。傾斜框架要素#1’-1,係為包含有多數之上層側之資料的框架要素,傾斜框架要素#1’-2,係為包含有多數之下層側之資料的框架要素。
同樣的,傾斜ECC框架#2’,係包含有「包含有多數之上層側之資料的框架要素#2’-1」和「包含有多數之下層側之資料的框架要素#2’-2」,傾斜ECC框架#3’,係包含有「包含有多數之上層側之資料的框架要素#3’-1」和「包含有多數之下層側之資料的框架要素#3’-2」,傾斜ECC框架#4’,係包含有「包含有多數之上層側之資料的框架要素#4’-1」和「包含有多數之下層側之資料的框架要素#4’-2」,傾斜ECC框架#5’,係包含有「包含有多數之上層側之資料的框架要素#5’-1」和「包含有多數之下層側之資料的框架要素#5’-2」,傾斜ECC框架#6’,係包含有「包含有多數之上層側之資料的框架要素#6’-1」和「包含有多數之下層側之資料的框架要素#6’-2」,傾斜ECC框架#7’,係包含有「包含有多數之上層側之資料的框架要素#7’-1」和「包含有多數之下層側之資料的框架要素#7’-2」。
在圖31中,各傾斜ECC框架#1’~#7’,係以各包含有1個的以希臘字母α~θ之各者所標示之資料要素的方式而被構成。
圖32,係為對於當磁疇壁移動記憶體3之區塊為具備有7MML×7層之構成的情況時之乘積碼之ECC框架(傾斜ECC框架與傾斜ECC框架)之構成例作展示之圖。於此,係針對所有的傾斜ECC框架之大小(框架長度)為7的情況來作例示。以下,係將被配置於朝向左下之傾斜方向上的傾斜ECC框架,稱作逆傾斜ECC框架。
圖32(A),係對於與6個的ECC框架(框架#1~#6)相對應之6個的碼字之邏輯影像和與7個的逆傾斜ECC框架(框架#1’~#7’)相對應之7個的碼字之邏輯影像作展示。
圖32(B),係對於在區塊之物理記憶區域處之6個的傾斜ECC框架(框架#1~#6)和7個的逆傾斜ECC框架(框架#1’~#7’)之物理性配置作展示。不論是在圖32(A)、(B)之何者中,均同樣的,以相同之數字所標示的資料要素之集合,係代表1個的傾斜ECC框架,以相同之字母表文字所標示的資料要素之集合,係代表1個的逆傾斜ECC框架。又,以粗框所標示的資料要素,係代表儲存同位檢查碼之資料要素。在圖32(B)中,係為了使此圖成為易於觀看,而僅對於數個的傾斜ECC框架和逆傾斜ECC框架附加有元件符號。
在圖32(B)中,1個的列係對應於區塊內之1個的磁性記憶線MML,1個的行係對應於區塊內之1個的層。例如,若是注目於傾斜ECC框架#1、#2,則傾斜ECC框架#1係由以數字「1」所標示的資料要素之集合所構成,傾斜ECC框架#2係由各包含有2個的以數字「2」所標示的資料要素之集合之2個的框架要素所構成。又,例如,若是注目於逆傾斜ECC框架#2’,則逆傾斜ECC框架#2’,係由各包含有以字母表文字「f」所標示的資料要素之集合之3個的框架要素所構成。
係構成為:6個的傾斜ECC框架(框架#1~#6),係在各傾斜ECC框架中使各種的列(各種的磁性記憶線MML)被均等地作包含,並且在各傾斜ECC框架中係均等地包含有各種深度之行(胞)。例如,在圖32(B)中,包含有以數字「1」所標示的資料要素之集合之傾斜ECC框架#1,係在區塊之物理記憶區域處而被配置於朝向右下之傾斜方向上。
同樣的,係構成為:7個的逆傾斜ECC框架(框架#1’~#7’),係在各傾斜ECC框架中使各種的列(各種的磁性記憶線MML)被均等地作包含,並且在各逆傾斜ECC框架中係均等地包含有各種深度之行(胞)。又,例如,在圖32(B)中,包含有以字母表文字「f」所標示的資料要素之集合之逆傾斜ECC框架#2’,係在區塊之物理記憶區域處而被配置於朝向左下之傾斜方向上。
如同圖32(A)中所示一般,首先,2維配列之資料係以行的單位而被編碼,並產生6個的ECC框架(框架#1~#6)。此些之ECC框架(框架#1~#6),係為藉由將資料以行的單位來作編碼所得到之ECC框架(行ECC框架),但是,由於係作為在區塊中而被配置於傾斜方向(朝向左下)上的ECC框架而被作使用,因此係稱作傾斜ECC框架。
如同圖32(A)中所示一般,傾斜ECC框架(框架#1)係儲存1個的碼字,此碼字係包含資料(a1,b1,c1,d1,e1,f1)和同位檢查碼(g1)。傾斜ECC框架(框架#2)係儲存1個的碼字,此碼字係包含資料(a2,b2,c2,d2,e2,f2)和同位檢查碼(g2)。傾斜ECC框架(框架#3)係儲存1個的碼字,此碼字係包含資料(a3,b3,c3,d3,e3,f3)和同位檢查碼(g3)。傾斜ECC框架(框架#4)係儲存1個的碼字,此碼字係包含資料(a4,b4,c4,d4,e4,f4)和同位檢查碼(g4)。傾斜ECC框架(框架#5)係儲存1個的碼字,此碼字係包含資料(a5,b5,c5,d5,e5,f5)和同位檢查碼(g5)。傾斜ECC框架(框架#6)係儲存1個的碼字,此碼字係包含資料(a6,b6,c6,d6,e6,f6)和同位檢查碼(g6)。
接著,2維配列之資料係以列的單位而被編碼,並如同圖32(A)中所示一般,產生7個的ECC框架(框架#1’~#7’)。此些之ECC框架(框架#1’~#7’),係為藉由將資料以列的單位來作編碼所得到之ECC框架(列ECC框架),但是,由於係作為在區塊中而被配置於傾斜方向(朝向左下)上的ECC框架而被作使用,因此係稱作逆傾斜ECC框架。
逆傾斜ECC框架(框架#1’)係儲存1個的碼字,此碼字係包含資料(g1,g2,g3,g4,g5,g6)和同位檢查碼(g)。逆傾斜ECC框架(框架#2’)係儲存1個的碼字,此碼字係包含資料(f1,f2,f3,f4,f5,f6)和同位檢查碼(f)。逆傾斜ECC框架(框架#3’)係儲存1個的碼字,此碼字係包含資料(e1,e2,e3,e4,e5,e6)和同位檢查碼(e)。逆傾斜ECC框架(框架#4’)係儲存1個的碼字,此碼字係包含資料(d1,d2,d3,d4,d5,d6)和同位檢查碼(d)。逆傾斜ECC框架(框架#5’)係儲存1個的碼字,此碼字係包含資料(c1,c2,c3,c4,c5,c6)和同位檢查碼(c)。逆傾斜ECC框架(框架#6’)係儲存1個的碼字,此碼字係包含資料(b1,b2,b3,b4,b5,b6)和同位檢查碼(b)。逆傾斜ECC框架(框架#7’)係儲存1個的碼字,此碼字係包含資料(a1,a2,a3,a4,a5,a6)和同位檢查碼(a)。
如同在圖32(B)中所示一般,可以理解到,以相同之數字所標示的資料要素之集合(各傾斜ECC框架),係在區塊之物理記憶區域處而被配置於朝向右下之傾斜方向上,又,以相同之字母表文字所標示的資料要素之集合(各逆傾斜ECC框架),係被配置在朝向左下之傾斜方向上。
圖33,係為對於實現相正交之2種類的傾斜ECC框架之乘積碼之邏輯影像作展示之圖。於此,係對於磁疇壁移動記憶體3之區塊為具備有9MML×9層之構成的情況作例示。
圖33(A),係對於將行ECC框架(框架#1~#8)和列ECC框架(框架#1’~#9’)作了組合的乘積碼之邏輯影像作展示。在行ECC框架(框架#1~#8)中,以粗框所標示之1個的資料要素,係代表1個的行ECC框架之同位檢查碼。在列ECC框架(框架#1’~#9’)中,以文字P所標示之1個的資料要素,係代表1個的列ECC框架之同位檢查碼。以相同之字母表文字所標示的資料要素之集合,係構成1個的行ECC框架。
圖33(B),係為在圖33(A)之各列ECC框架中而寫入了數字之圖。藉由相同之數字所標示的資料要素之集合,係構成1個的列ECC框架。例如,以相同之字母表文字所標示的各行ECC框架,係作為朝向右下之傾斜ECC框架而被使用,藉由相同之數字所標示的各列ECC框架,係作為朝向左下之逆傾斜ECC框架而被使用。
圖34,係為對於相正交之2種類的傾斜ECC框架之物理性配置作展示之圖。
在圖34(A)中,係對於使以相同之字母表文字所標示的資料要素之集合在區塊之物理區域處而被配置於朝向右下之傾斜方向上的狀態作展示。例如,包含有以字母表文字「a」所標示的資料要素之集合之行ECC框架#1,係作為傾斜ECC框架而在區塊之物理區域處被配置於朝向右下之傾斜方向上。又,包含有以字母表文字「b」所標示的資料要素之集合之行ECC框架#2,係作為2個的傾斜框架要素#2-1、#2-2而在區塊之物理區域處被配置於朝向右下之傾斜方向上。
在圖34(B)中,係對於使藉由相同之數字所標示的各列ECC框架在區塊之物理區域處而被配置於朝向左下之傾斜方向上的狀態作展示。例如,包含有以數字「1」所標示的資料要素之集合之列ECC框架#9’,係作為逆傾斜ECC框架而在區塊之物理區域處被配置於朝向左下之傾斜方向上。又,包含有以數字「2」所標示的資料要素之集合之列ECC框架#8’,係作為2個的逆傾斜框架要素#8’-1、#8’-2而在區塊之物理區域處被配置於朝向左下之傾斜方向上。
與相正交之2種類的傾斜ECC框架之各者相對應之同位檢查碼之位置,係並未被作限定,但是,圖35A,係對於相正交之2種類的傾斜ECC框架之同位檢查碼之位置的其中一例作展示。
在圖35A(A)中,以數字「9」所標示的資料要素之集合,係對於複數之行ECC框架(傾斜ECC框架)之同位檢查碼的位置之例作展示。此些之同位檢查碼,係身為列ECC框架(逆傾斜ECC框架)#1’之資料要素。圖35A(B),係更進而對於各列ECC框架(傾斜ECC框架)之同位檢查碼(P1,P2,P3,P4,P5,P6,P7,P8,P9)的位置之例作展示。
在圖35A中,傾斜ECC框架之各者的同位檢查碼(以數字「9」所標示的資料要素),係涵蓋全部的MML以及全部的層。同樣的,逆傾斜ECC框架之各者的同位檢查碼(P1,P2,P3,P4,P5,P6,P7,P8,P9),亦係涵蓋全部的MML以及全部的層。
圖35B,係為對於相正交之2種類的傾斜ECC框架之同位檢查碼位置之另一例作展示之圖。
圖35B(A),係為對於在區塊處的最後被作寫入之2個的層處而配置同位檢查碼之例作展示。在圖35B(A)中,Row1係代表最初被作寫入之層(最下層L1),並隨著Row之數字變得越大而代表更為上層之層。Row9,係代表在區塊中而資料最後被作寫入之層(最上層L9)。
包含相同之數字的資料要素之集合,係代表逆傾斜ECC框架,包含相同之字母表文字的資料要素之集合,係代表傾斜ECC框架。首先,資料部(資訊符號序列)係依序被寫入至區塊中。之後,若是逆傾斜ECC框架之各者之同位檢查碼(9P,1P,2P,3P,4P,5P,6P,7P,8P)被計算出來,則此些之同位檢查碼(9P,1P,2P,3P,4P,5P,6P,7P,8P)係被寫入至區塊中。之後,若是傾斜ECC框架之各者之同位檢查碼(bP,cP,dP,eP,fP,gP,hP,iP,aP)被計算出來,則此些之同位檢查碼(bP,cP,dP,eP,fP,gP,hP,iP,aP)係被寫入至區塊中。
圖35B(B),係對於將從主機4所受訊了的資料以其之受訊順序來規則性地分配至複數之ECC框架(複數之傾斜ECC框架、複數之逆傾斜ECC框架)處並寫入至區塊中的處理作展示。
從主機4所受訊了的最初之8個的資料,係如同在圖35B(B)中以箭頭所示一般,作為資料要素「a2」、資料要素「b3」、資料要素「c4」、資料要素「d5」、資料要素「e6」、資料要素「f7」、資料要素「g8」、資料要素「h9」、資料要素「i1」而被作分配。例如,資料要素「a2」,係代表其係身為對應於字母表文字「a」之傾斜ECC框架之要素並且係身為對應於數字「2」之逆傾斜ECC框架之要素。此些之8個的資料,係最初被寫入至區塊中。
接著,從主機4所受訊了的後續之8個的資料,係作為資料要素「i3」、資料要素「a4」、資料要素「b5」、資料要素「c6」、資料要素「d7」、資料要素「e8」、資料要素「f9」、資料要素「g1」、資料要素「h2」而被作分配,之後被寫入至區塊中。
之後,若是7層之量的資料被寫入至區塊中,則由於各逆傾斜ECC框架之同位檢查碼(9P,1P,2P,3P,4P,5P,6P,7P,8P)之計算係結束,因此,此些之同位檢查碼(9P,1P,2P,3P,4P,5P,6P,7P,8P)係被分配至複數之傾斜ECC框架處並且被寫入至區塊中。之後,若是傾斜ECC框架之各者之同位檢查碼(bP,cP,dP,eP,fP,gP,hP,iP,aP)被計算出來,則此些之同位檢查碼(bP,cP,dP,eP,fP,gP,hP,iP,aP)係被寫入至區塊中。
如此這般,藉由採用用以將同位檢查碼配置於區塊之最上層處之構成,係能夠得到以下之效果。
(1)係能夠並不等待同位檢查碼之計算之結束地便開始將資料寫入至區塊中之處理,藉由此,係能夠使寫入性能提升。
(2)係能夠削減必須要確保的寫入緩衝之容量大小。
圖36,係為對於當磁疇壁移動記憶體之區塊為具備有7MML×7層之構成的情況時之相正交之2種類的傾斜ECC框架之構成例作展示之圖。
在圖36(A)中,係對於使以相同之字母表文字所標示的各行ECC框架在區塊之物理區域處而於朝向右下之傾斜方向上作為傾斜ECC框架而被作了配置的狀態作展示。在圖34(B)中,係更進而對於使藉由相同之數字所標示的各列ECC框架在區塊之物理區域處而於朝向左下之傾斜方向上作違逆傾斜ECC框架而被作了配置的狀態作展示。
另外,係亦能夠使各行ECC框架作為逆傾斜ECC框架而被作配置,並使各列ECC框架作為傾斜ECC框架而被作配置。
(第3實施形態)
接著,作為第3實施形態,針對使用將行ECC框架和列ECC框架作了組合的乘積碼之構成作說明。
第3實施形態之記憶體系統1的硬體構成,係與圖1相同,又,在第3實施形態之記憶體系統1中所被使用的磁疇壁移動記憶體3之構成,亦係與第1實施形態相同。以下,主要針對與第1實施形態相異之部分作說明。
圖37,係為對於在第3實施形態的記憶體系統中所被使用之使行ECC框架和列ECC框架被作了組合的乘積碼之構成例作展示之圖。
在圖37中,係對於1個的區塊為包含有8根的磁性記憶線MML和8個的層之情況作例示。
行ECC框架與列ECC框架之間之組合,係與第1實施形態之傾斜ECC框架相同的,成為能夠將以各磁性記憶線MML之單位所產生的叢發錯誤均等地分散至複數之行ECC框架中,並且能夠將在越下層則越會增加的錯誤均等地分散至複數之列ECC框架中。
記憶體控制器2,係將應被寫入至區塊中之資料使用將第1碼和第2碼作了組合的乘積碼來作編碼,而產生編碼資料,並以使各別包含有第1碼之碼字的複數之行ECC框架在區塊之物理記憶區域處而被配置於行方向上並且使各別包含有第2碼之碼字的複數之第2之列ECC框架之各者在區塊之物理記憶區域處而被配置於列方向上的方式,而將編碼資料寫入至區塊中。
第1碼,例如,係為用以將資料以行之單位來作編碼之碼#1(C1碼),第2碼,例如,係為用以將資料以列之單位來作編碼之碼#2(C2碼)。
於此情況,記憶體控制器2之編碼部26,係使用將「用以將應被寫入至區塊中之資料以行之單位來作編碼的碼#1(C1碼)」和「用以將此資料以列之單位來作編碼的碼#2(C2碼)」作了組合的乘積碼,來將此資料作編碼,並產生使各別包含有碼#1(C1碼)之碼字的行ECC框架(框架#1~#7)和各別包含有碼#2(C2碼)之碼字的列ECC框架(框架#1’~#13’)被作了組合的編碼資料。記憶體控制器2,係將此編碼資料寫入至區塊中。於此情況,例如,係亦可首先進行由C1碼所致之編碼並接著進行由C2碼所致之編碼。藉由以C1碼所致之編碼,係先獲得層單位之資料。故而,係能夠更早地開始對於區塊之資料的寫入。
圖37,係對於以2層之單位來構成行ECC框架並以1根的MML之單位來構成列ECC框架的情況之例作展示。在圖37中,複數之行ECC框架(框架#1~#4)之各者係在區塊之物理區域處而被配置於行方向上。
行ECC框架#1~#4,係具備有相同的框架大小。行ECC框架#1~#4之各者,係藉由將應被寫入至磁疇壁移動記憶體3之區塊中的資料以行之單位(在圖37中係為2行之單位)來作編碼,而得到之。
在圖37中,複數之列ECC框架(框架#1’~#8’)之各者係在區塊之物理區域處而被配置於列方向上。
列ECC框架#1’~#8’,係具備有相同的框架大小。列ECC框架#1’~#8’之各者,係藉由將應被寫入至磁疇壁移動記憶體3之區塊中的資料以列之單位(在圖37中係為1列之單位)來作編碼,而得到之。
在使用有行ECC框架與列ECC框架的解碼處理中,首先,使用有各行ECC框架之解碼(C1解碼)係被實行。錯誤之數量係為C1碼之錯誤訂正能力以下的行ECC框架之C1解碼係成功,此行ECC框架之錯誤係被訂正。錯誤之數量為超出C1碼之錯誤訂正能力的行ECC框架之C1解碼係失敗。
當某一行ECC框架之C1解碼失敗了的情況時,使用有各列ECC框架之解碼(C2解碼)係被實行。
錯誤之數量係為C2碼之錯誤訂正能力以下的列ECC框架之C2解碼由於係成功,因此係能夠將在C1解碼為失敗了的行ECC框架中所包含之錯誤之數量減少。另一方面,錯誤之數量為超出C2碼之錯誤訂正能力的行ECC框架之C2解碼係失敗。故而,若是C2解碼為失敗之列ECC框架的數量增加,則係會有成為無法將在C1解碼為失敗了的行ECC框架中所包含之錯誤之數量充分地減少的情況。
如同上述一般,在磁疇壁移動記憶體3中,係以磁性記憶線MML之單位而發生叢發錯誤。因此,在C2解碼為失敗了的列中,可以推測到,係並非為發生僅些許超過C2碼之錯誤訂正能力的數量之錯誤,而是密集地發生有遠超過C2碼之錯誤訂正能力的數量之錯誤。
故而,在第3實施形態中,記憶體控制器2,係將C2解碼為失敗了的列、亦即是將包含有殘留錯誤之列,推測為係身為與產生有叢發錯誤之磁性記憶線MML相對應之列,並將代表在此列中所含的資料之信賴度為低一事的似然度資訊,作為C2解碼之解碼結果來產生之。
之後,記憶體控制器2,係基於包含有似然度資訊之此一C2解碼之解碼結果,來將C1解碼為失敗了的行ECC框架藉由軟式判定解碼來進行解碼。在此軟式判定解碼中,由於係知道在藉由似然度資訊所標示出的信賴度為低之列中,係以高的機率而存在有錯誤,因此,相較於信賴度為低之場所為不明的情況,係成為能夠將C1解碼之精確度提高。
圖38,係為針對基於被包含在C2解碼之解碼結果中的似然度資訊來將C1解碼為失敗了的ECC框架藉由軟式判定解碼來進行解碼之處理作展示之圖。
首先,記憶體控制器2,係從磁疇壁移動記憶體3,而將被儲存在區塊中的資料讀出。之後,記憶體控制器2,係實行將複數之行ECC框架解碼並對於所讀出了的資料之錯誤作訂正之解碼處理(C1解碼)。於此情況,記憶體控制器2,係能夠在每次從區塊而將1個行ECC框架之大小之量的資料讀出時,開始與此被讀出了的資料相對應之行ECC框架之解碼。
圖38(A),係對於使用有碼#1(C1碼)之解碼處理(C1硬式判定解碼)作展示。C1硬式判定解碼,係亦稱作C1 Hard Bit解碼。在圖38(A)中,係對於「在與第2行以及第4列(Row2以及col.4)相對應之位置(作為“24”來圖示之)處係存在有錯誤,在與第3行以及第4列(Row3以及col.4)相對應之位置(作為“34”來圖示之)處係存在有錯誤,在與第5行以及第1列(Row5以及col.1)相對應之位置(作為“51”來圖示之)處係存在有錯誤,在與第6行以及第1列(Row6以及col.1)相對應之位置(作為“61”來圖示之)處係存在有錯誤,在與第6行以及第4列(Row6以及col.4)相對應之位置(作為“64”來圖示之)處係存在有錯誤,在與第7行以及第4列(Row7以及col.4)相對應之位置(作為“74”來圖示之)處係存在有錯誤」的情況作例示。
例如,當C1碼係身為能夠將2位元以下之錯誤作訂正之碼的情況時,行ECC框架#1、行ECC框架#2以及行ECC框架#4之解碼係成功,此些之各行ECC框架之錯誤係被作訂正。行ECC框架#3之解碼係失敗,在行ECC框架#3中係殘留有錯誤。
於此情況,記憶體控制器2,係藉由將複數之列ECC框架解碼,來實行對於在C1硬式判定解碼為失敗了的行ECC框架#3中所包含之錯誤作訂正之解碼處理(C2硬式判定解碼)。C2硬式判定解碼,係亦稱作C2 Hard Bit解碼。
圖38(B),係對於使用有碼#2(C2碼)之解碼處理(C2硬式判定解碼)作展示。在圖38(B)中,係對於各列ECC框架為具備有1個的列(1根的磁性記憶線MML)之量之框架大小的情況作例示。於此情況,列ECC框架之數量係與在區塊中所包含的磁性記憶線MML之數量相等。故而,當在區塊中所包含的磁性記憶線MML之數量係為8的情況時,將8個的列ECC框架作解碼的處理係被實行。此些之列ECC框架之解碼處理(C2硬式判定解碼),係能夠使用C1硬式判定解碼之解碼結果(亦即是,行ECC框架#1~#4之解碼結果)來實行之。
當C2硬式判定解碼為成功了的情況時,亦即是當所有的列ECC框架之解碼均成功了的情況時,係能夠將在行ECC框架#3中所包含之所有的錯誤作訂正。故而,處理係結束。
如同圖38(B)中所示一般,在C1硬式判定解碼之解碼結果中,於位置“51”、位置“61”、位置“64”處係分別存在有錯誤。例如,當C2碼係身為能夠將1位元以下之錯誤作訂正之碼的情況時,對應於第1列(col.1)之列ECC框架之解碼係失敗,在第1列(col.1)處係殘留有2位元之錯誤(在位置“51”處之錯誤、在位置“61”處之錯誤)。
對應於其他之列(col.2~col.8)之各者的列ECC框架之解碼係成功,藉由對應於第4列(col.4)之列ECC框架之解碼,在位置“64”處之錯誤係被訂正。
於此情況,記憶體控制器2,係根據C2硬式判定解碼之解碼結果,來將與殘留有錯誤的第1列(col.1)相對應之信賴度降低、並將代表第1列(col.1)之信賴度為低一事的似然度資訊,作為C2硬式判定解碼之解碼結果(軟式輸出)來產生之。一般而言,信賴度,係藉由對數似然度比(LLR)來作表現。
具體而言,如同圖38(C)中所示一般,記憶體控制器2。係將分別與隸屬於C1硬式判定解碼為失敗了的行ECC框架#3之位置“51”~“58”、“61”~“68”相對應的資料(位元)之推測值、和分別與此些之位置“51”~“58”、“61”~“68”相對應之信賴度(LLR),作為C2硬式判定解碼之解碼結果來產生之。此解碼結果,係為了使用C1碼來將行ECC框架#3作軟式判定解碼,而被使用。使用有C1碼之軟式判定解碼,係亦稱作C1 Soft Bit解碼。
如同圖38(C)中所示一般,基於C1硬式判定解碼之結果,記憶體控制器2,係將代表隸屬於殘留有錯誤的第1列(col.1)之位置“51”之信賴度的LLR(LLR振幅)以及位置 “61”之信賴度的LLR(LLR振幅)降低。於此,所謂某一位置之LLR,係指代表與此位置相對應的推測值之信賴度之似然度值。
在第2列(col.2)~第8列(col.8)處,係並未殘留有錯誤。故而,記憶體控制器2,係將被包含於位置“52”~“58”、位置“62”~“68”處的各位置之信賴度(LLR)設定為大的值。
之後,記憶體控制器2,係再度實行使用有碼#1(C1碼)之解碼處理,並對殘留於行ECC框架#3中之錯誤作訂正。於此情況,記憶體控制器2,係使用解碼部27,來藉由軟式判定解碼而將行ECC框架#3解碼。根據作為C2硬式判定解碼之解碼結果所得到的似然度資訊,由於係能夠特定出在第1列(Col.1)與行ECC框架#3為相互重疊的區域(位置“51”以及位置“61”)處係以高機率而存在有錯誤一事,因此,在軟式判定解碼中,例如,係亦可一面實行將存在於此區域中之數個的位元之推測值作反轉之位元翻轉(bit flipping)解碼,一面進行C1解碼處理。
又,係亦能夠實行將「在C1解碼與C2解碼之間而將解碼結果作為外部值來作交換」一事作反覆實行的反覆解碼。於此情況,解碼部27,係亦可包含有對應於C1碼之解碼器(成分解碼器)和對應於C2碼之解碼器(成分解碼器)。藉由反覆進行「將對應於C1碼之解碼器的解碼結果與對應於C2碼之解碼器的解碼結果在此些之解碼器之間作為外部值來作交換」一事,係能夠實行反覆解碼。
圖39,係為對於代表信賴度的對數似然度比之例作展示之圖。
現在,對於將能夠取2值{0,1}之值x寫入(送訊)至了磁疇壁移動記憶體3之區塊處並將某一值r從記憶體3之區塊而作了讀出(受訊)的情況作考慮。
於此,在對於對數似然度比(Log Likelihood Ratio)作說明時,先對於數個的用語作定義。
所謂似然度(Likelihood),係代表下述之2個的附有條件之機率。
P(x=0|r):在受訊了r的條件下,x為0之機率
P(x=1|r):在受訊了r的條件下,x為1之機率
似然度比(Likelihood Ratio),係代表似然度之比,並藉由
來作表現。
對數似然度比(LLR),係為取似然度比之對數者,並藉由
來作表現。
圖39(A),係對於對數似然度比(LLR)之例作展示。於此,係例示有:當被寫入之值x係為0的情況時,y=0被從磁疇壁移動記憶體3而讀出的次數係為9900次,而y=1被從磁疇壁移動記憶體3而讀出的次數係為100次的情形。又,係例示有:當被寫入之值x係為1的情況時,y=0被從磁疇壁移動記憶體3而讀出的次數係為100次,而y=1被從磁疇壁移動記憶體3而讀出的次數係為9900次的情形。y被正確地讀出之機率,係為99%。於此情況,對數似然度比(LLR(y))係被賦予為4.6。
圖39(B),係對於對數似然度比(LLR)之另一例作展示。於此,係例示有:當被寫入之值x係為0的情況時,y=0被從磁疇壁移動記憶體3而讀出的次數係為9999次,而y=1被從磁疇壁移動記憶體3而讀出的次數係為1次的情形。又,係例示有:當被寫入之值x係為1的情況時,y=0被從磁疇壁移動記憶體3而讀出的次數係為1次,而y=1被從磁疇壁移動記憶體3而讀出的次數係為9999次的情形。y被正確地讀出之機率,係為99.99%。於此情況,對數似然度比(LLR(y))係被賦予為9.2。
在第3實施形態中,代表與在C2碼處而失敗了的列相對應之資料的信賴度之LLR,例如,係被設定為4.6以下之小的值。另一方面,代表與在C2碼處而成功了的列相對應之資料的信賴度之LLR,係被設定為大的值,例如被設定為+9.2。
圖40,係為對於反覆解碼之構成例作展示之圖。
於此,如同圖40(A)中所示一般,想定為使用「被賦予有將應被寫入至磁疇壁移動記憶體3之區塊處的2維之資訊符號部以行之單位來作編碼的C1碼和將2維之資訊符號部以列之單位來作編碼的C2碼之乘積碼」的構成。
成分解碼器27a,係構成為將包含有對應於C1碼之碼字的行ECC框架作解碼,成分解碼器27b,係構成為將包含有對應於C2碼之碼字的列ECC框架作解碼。
成分解碼器27a,係將從磁疇壁移動記憶體3所讀出的資料,作為通道LLR(硬式判定值)而受訊,並且將C1解碼之解碼結果作為外部值E1而作輸出。成分解碼器27b,係將從磁疇壁移動記憶體3所讀出的資料,作為通道LLR(硬式判定輸入值)而受訊,並且從成分解碼器27a而受訊外部值E1。之後,成分解碼器27b,係將C2解碼之解碼結果作為外部值E2而作輸出。成分解碼器27a,係從成分解碼器27b而受訊外部值E2。此外部值E2,係包含有代表「在C2解碼之解碼結果中所包含的各資訊符號(位元)值之信賴度(LLR)」的似然度資訊。基於此似然度資訊,成分解碼器27a,係將C1解碼為失敗了的行ECC框架藉由軟式判定解碼來進行解碼。
作為用以進行軟式判定解碼之解碼法,作為LDPC碼之軟式判定解碼法,係周知有Sum-Product解碼法、Min-Sum解碼法。又,作為BCH碼等之(通常為進行硬式判定解碼之碼)軟式判定解碼,係周知有Chase解碼法、Ordered Statistics Decoding等之解碼法。在成分解碼器27a處之軟式判定解碼中,係能夠適用此些之軟式判定解碼法。
圖41,係為對於在記憶體系統1處所被實行的寫入處理之程序作展示之流程圖。
在記憶體控制器2從主機4而受訊了寫入要求時,記憶體控制器2,係開始在圖41之流程圖中所示的寫入處理。
記憶體控制器2,係從主機4而受訊被與從主機4所受訊了的寫入要求相互附加有關連之資料,並將此資料儲存在資料緩衝器25中(步驟S71)。
記憶體控制器2,係使用被儲存在資料緩衝器25中之資料,來藉由使用有使C1碼和C2碼被作了組合的乘積碼之編碼,而產生包含「各別包含有C1碼之碼字的ECC框架(行ECC框架)群」和「各別包含有C2碼之碼字的ECC框架(列ECC框架)群」之編碼資料(乘積碼之編碼資料)的一部分(步驟S72)。在步驟S72中,係亦可首先進行由C1碼所致之編碼並接著進行由C2碼所致之編碼。藉由此,層單位之編碼資料(C1碼之碼字)係作為乘積碼之編碼資料的一部分而首先被產生。對應於各行ECC框架的碼字之同位檢查碼,由於係只要於最後再寫入至區塊中即可,因此,係能夠並不等待由C2碼所致之同位檢查碼之計算之結束地便開始對於區塊之資料的寫入。
因此,記憶體控制器2,係與編碼處理並行地,而將乘積碼之編碼資料之一部分(於此,係為C1碼之碼字)寫入至區塊中(步驟S73)。在步驟S73中,記憶體控制器2,係以將各行ECC框架在區塊之物理記憶區域處而配置於行方向上並將各列ECC框架在區塊之物理記憶區域處而配置於列方向上的方式,來將所被產生的編碼資料之一部分寫入至區塊中。
記憶體控制器2,係判定是否將使行ECC框架群和列ECC框架群被作了組合後的乘積碼之編碼資料之全部均寫入至了區塊中(步驟S74)。步驟S71~S73之處理係被反覆實行,直到乘積碼之編碼資料之全部均被寫入至了區塊中為止。
若是對應於各列ECC框架之C2碼字的同位檢查碼係藉由編碼部26而被作了計算,則在步驟S72中,係作為乘積碼之編碼資料之一部分,而被產生有對應於各列ECC框架之C2碼字的同位檢查碼。之後,在步驟S73中,記憶體控制器2,係將此些之同位檢查碼寫入至區塊中。
若是乘積碼之編碼資料之全部均被寫入至了區塊中(步驟S74,YES),則寫入處理係結束。
圖42,係為對於在記憶體系統1處所被實行的解碼處理之程序作展示之流程圖。
記憶體控制器2,係從磁疇壁移動記憶體3,而將被儲存在區塊中的資料讀出(步驟S81)。記憶體控制器2,係開始將所讀出了的資料藉由C1解碼來進行解碼之處理。於此情況,記憶體控制器2,係判定是否得到有從C2解碼而來之似然度資訊(步驟S82)。在此階段處,係尚未得到有從C2解碼而來之似然度資訊(步驟S82,NO)。
因此,記憶體控制器2,係將複數之行ECC框架藉由硬式判定解碼來做解碼並對於所讀出了的資料之錯誤作訂正(C1解碼處理)(步驟S83)。在步驟S83中,在每次將1個行ECC框架之大小之量的資料讀出時,此行ECC框架之解碼係被實行。
在C1解碼處理中,錯誤之數量係為C1碼之錯誤訂正能力以下的各行ECC框架之C1解碼係成功。故而,在此些之各行ECC框架中所包含的錯誤係被訂正。錯誤之數量為超出C1碼之錯誤訂正能力的行ECC框架之C1解碼係失敗。故而,在此行ECC框架中所包含的錯誤係並未被訂正。
在C1解碼處理為成功了的情況時、亦即是當從區塊所被讀出之所有的行ECC框架之解碼均為成功的情況時(步驟S84,YES),記憶體控制器2係使處理結束。
另一方面,若是從區塊所被讀出了的至少1個的行ECC框架之C1解碼係為失敗(步驟S84,NO),則記憶體控制器2,係藉由將複數之列ECC框架解碼,來實行對於在C1解碼為失敗了的行ECC框架中所包含之錯誤作訂正之解碼處理(C2解碼處理)(步驟S85)。在C2解碼處理中,錯誤之數量係為C2碼之錯誤訂正能力以下的各列ECC框架之解碼(C2解碼)係成功。故而,在此些之各列ECC框架中所包含的錯誤係被訂正,因此,係能夠對於被包含在C1解碼為失敗了的行ECC框架與此些之各列ECC框架為相互重疊的區域處之各錯誤進行訂正。錯誤之數量為超出C2碼之錯誤訂正能力的列ECC框架之C2解碼係失敗。故而,在此列ECC框架中所包含的錯誤係並未被訂正,其結果,係並無法對於被包含在C1解碼為失敗了的行ECC框架與此列ECC框架為相互重疊的區域處之各錯誤進行訂正。
在C2解碼處理為成功了的情況時、亦即是當所有的列ECC框架之解碼均為成功的情況時(步驟S86,YES),記憶體控制器2係使處理結束。
另一方面,若是至少1個的列ECC框架之C2解碼係為失敗(步驟S86,NO),則記憶體控制器2,係將在C2解碼為失敗了的各列ECC框架中所包含之列,推測為與產生有叢發錯誤之磁性記憶線MML相對應之列,並將把與此些之各列相對應的信賴度(LLR)設定為低的似然度資訊,作為C2解碼之解碼結果來產生之(步驟S87)。之後,記憶體控制器2,係基於包含有似然度資訊之C2解碼結果,來再度實行C1解碼處理。
由於係得到有從C2解碼而來之似然度資訊(步驟S82,YES),因此,記憶體控制器2,係基於包含有此似然度資訊之C2解碼結果,來將C1解碼為失敗了的行ECC框架藉由軟式判定解碼來進行解碼(步驟S88)。在似然度資訊中,考慮到「會以磁性記憶線MML之單位而發生叢發錯誤」之磁疇壁移動記憶體3的特性,C2解碼為失敗了的各列之信賴度(LLR)係被設定為低。
故而,錯誤集中於C1解碼為失敗了的行ECC框架與信賴度(LLR)為低之列為相互重疊的區域處的可能性係為高。故而,藉由使用對於信賴度為低之列作展示的似然度資訊,係成為能夠將C1解碼之精確度提高,而能夠對於在信賴度被設定為低的場所處而以高機率存在的錯誤作訂正。
另外,於此,雖係將與列ECC框架之解碼為成功了的列相對應之信賴度(LLR)設定為大的值,並將與列ECC框架之解碼為失敗了的列相對應之信賴度(LLR)設定為小的值,但是,係亦可使用像是循環冗餘碼(CRC)一般之錯誤檢測碼,來檢測出在被儲存於各列處的資料中是否存在有錯誤,並將與並未被檢測出錯誤的列相對應之信賴度(LLR)設定為大的值,並將與被檢測出有錯誤的列相對應之信賴度(LLR)設定為小的值。
如同以上所作了說明一般,若依據第3實施形態,則由於係使用有使C1碼和C2碼被作了組合的乘積碼,因此,與第1實施形態之傾斜ECC框架相同的,係成為能夠將以磁性記憶線MML之單位所產生的叢發錯誤均等地分散至複數之ECC框架(行ECC框架)中,並且能夠將在越下層則越會增加的錯誤分散至複數之ECC框架(列ECC框架)中。
進而,在C2解碼中,係考慮到「會以磁性記憶線MML之單位而發生叢發錯誤」之磁疇壁移動記憶體3的特性,而產生使代表C2解碼為失敗了的列(或者是藉由錯誤檢測碼而被檢測出了錯誤的列)之信賴度的似然度值(LLR)被作了降低的似然度資訊。藉由基於此似然度資訊而將C1解碼為失敗了的行ECC框架之C1解碼藉由軟式判定解碼來實行,係能夠將C1解碼之精確度提高。
另外,於此,雖係針對使用將行ECC框架和列ECC框架作了組合的乘積碼之構成來作了說明,但是,被與列ECC框架(或者是以列之單位來檢測出錯誤之錯誤檢測框架)作組合的ECC框架,係並不被限定於行ECC框架,例如,係亦可為傾斜ECC框架。
亦即是,記憶體控制器2,係將應被寫入至區塊中之資料使用將第1碼和第2碼作了組合的乘積碼來作編碼,並將使各別包含有第1碼之碼字的複數之第1ECC框架和各別包含有第2碼之碼字的複數之第2錯誤檢測或錯誤訂正碼框架被作了組合的編碼資料寫入至區塊中。
於此,第2碼,係為像是循環冗餘碼(CRC)一般之錯誤檢測碼或者是ECC之其中一者。此些之複數之第2錯誤檢測或錯誤訂正碼框架之各者,係以由1個的磁性記憶線MML所構成的方式,來在區塊之物理記憶區域處而被配置於列方向上。
記憶體控制器2,係將代表與「藉由此些之複數之第2錯誤檢測或錯誤訂正碼框架之解碼而被判定為錯誤訂正係為成功或者是被判定為無錯誤的磁性記憶線MML」相對應之列之信賴度的似然度值(LLR)增大。又,記憶體控制器2,係將代表與「藉由此些之複數之第2錯誤檢測或錯誤訂正碼框架之解碼而被判定為錯誤訂正係為失敗或者是被判定為有錯誤的磁性記憶線MML」相對應之列之信賴度的似然度值(LLR)縮小。
之後,記憶體控制器2,係基於藉由複數之第2錯誤檢測或錯誤訂正碼框架之解碼所得到的各列之似然度值,來將複數之第1ECC框架藉由軟式判定解碼而作解碼。於此情況,亦同樣的,係能夠利用「會以磁性記憶線MML之單位而發生叢發錯誤」之磁疇壁移動記憶體3的特性,來將第1ECC框架之解碼的精確度提高。
(其他構成例)
圖43,係為針對分別構成複數之傾斜ECC框架的複數之碼字之邏輯影像與複數之磁疇壁移動記憶體片(chip)上的此些之碼字之物理性配置之間的關係作展示之圖。
在至今為止的說明中,雖係針對將複數之傾斜ECC框架之各者儲存於相同區塊內之複數之磁性記憶線MML處的構成來作了說明,但是,在磁疇壁移動記憶體3為由複數之磁疇壁移動記憶體片所構成的情況時,係亦可將各傾斜ECC框架儲存在包含有分別被包含於相異的磁疇壁移動記憶體片中之複數之磁性記憶線MML的記憶區域處。
圖43(A),係針對分別構成「在由分別被包含於相異的磁疇壁移動記憶體片處之複數之磁性記憶線MML之集合所構成的物理記憶區域處」而被配置於傾斜方向上的複數之傾斜ECC框架的複數之碼字之邏輯影像作展示。
藉由將2維配列之資料以列的單位來作編碼,係產生包含有列ECC框架C-1、C-2、C-3、C-4之編碼資料。WP,XP,YP,ZP,係為此些之列ECC框架C-1、C-2、
C-3、C-4之同位檢查碼。亦即是,在ECC框架C-1中所包含的碼字,係包含資料(W1,W2,W3)與同位檢查碼(WP),在ECC框架C-2中所包含的碼字,係包含資料(X1,X2,X3)與同位檢查碼(XP),在ECC框架C-3中所包含的碼字,係包含資料(Y1,Y2,Y3)與同位檢查碼(YP),在ECC框架C-4中所包含的碼字,係包含資料(Z1,Z2,Z3)與同位檢查碼(ZP)。編碼資料,係在每一行處而使資料要素之排列順序被作變更,之後,如同圖43(B)中所示一般,列ECC框架C-1、C-2、C-3、C-4之各者,係以在「由第1磁疇壁移動記憶體片(chip1)內之磁性記憶線MML和第2磁疇壁移動記憶體片(chip2)內之磁性記憶線MML和第3磁疇壁移動記憶體片(chip3)內之磁性記憶線MML以及第4磁疇壁移動記憶體片(chip4)內之磁性記憶線MML所構成的記憶區域」處而被配置在傾斜方向上的方式,而被寫入至此些之複數之磁疇壁移動記憶體片中。
又,如同圖43(C)中所示一般,係亦可將列ECC框架C-1、C-2、C-3、C-4之各者之同位檢查碼(WP,XP,YP,ZP),儲存在此些之磁性記憶線MML之最上層處。
圖44,係為針對乘積碼之邏輯影像與在複數之磁疇壁移動記憶體片上的乘積碼之物理性配置之間的關係作展示之圖。
如同圖44(A)中所示一般,使用使用以將2維配列之資料以行之單位來作編碼的第1碼(C1碼)和用以將2維配列之資料以列之單位來作編碼的第2碼(C2碼)作了組合的乘積碼,2維配列之資料係被編碼,藉由此,使各別包含有C1碼之碼字的ECC框架C1-1、C1-2、C1-3和各別包含有C2碼之碼字的ECC框架C2-1、C2-2、C2-3、C2-4被作了組合的編碼資料係被產生。α1、α2、α3,係為ECC框架C1-1、C1-2、C1-3各者之同位檢查碼。XP,YP,ZP,αP,係為ECC框架C2-1、C2-2、C2-3、C2-4之同位檢查碼。
亦即是,在ECC框架C1-1中所包含的碼字,係包含資料(X1,Y1,Z1)和同位檢查碼(α1),在ECC框架C1-2中所包含的碼字,係包含資料(X2,Y2,Z2)和同位檢查碼(α2),在ECC框架C1-3中所包含的碼字,係包含資料(X3,Y3,Z3)和同位檢查碼(α3)。在ECC框架C2-1中所包含的碼字,係包含資料(X1,X2,X3)與同位檢查碼(XP),在ECC框架C2-2中所包含的碼字,係包含資料(Y1,Y2,Y3)與同位檢查碼(YP),在ECC框架C2-3中所包含的碼字,係包含資料(Z1,Z2,Z3)與同位檢查碼(ZP)。在ECC框架C2-4中所包含的碼字,係身為藉由將同位檢查碼(α,β,γ)作編碼所得到的碼字,並包含有同位檢查碼(α1,α2,α3)、和對應於此同位檢查碼(α1,α2,α3)之同位檢查碼(αP)。
編碼資料,係在每一行處而使資料要素之排列順序被作變更,之後,如同圖44(B)中所示一般,以使ECC框架C1-1、C1-2、C1-3之各者在「由第1磁疇壁移動記憶體片(chip1)內之磁性記憶線MML和第2磁疇壁移動記憶體片(chip2)內之磁性記憶線MML和第3磁疇壁移動記憶體片(chip3)內之磁性記憶線MML以及第4磁疇壁移動記憶體片(chip4)內之磁性記憶線MML所構成的記憶區域」處而被配置在行方向上,並且使ECC框架C2-1、C2-2、C2-3、C2-4之各者在記憶區域處而被配置於傾斜方向上的方式,而被寫入至此些之複數之磁疇壁移動記憶體片中。
雖係針對本發明之數種實施形態作了說明,但是,該些實施形態,係僅為作為例子所提示者,而並非為對於本發明之範圍作限定者。此些之新穎的實施形態,係可藉由其他之各種形態來實施,在不脫離發明之要旨的範圍內,係可進行各種之省略、置換、變更。此些之實施形態或其變形,係亦被包含於發明之範圍或要旨中,並且亦被包含在申請專利範圍中所記載的發明及其均等範圍內。
[關連申請案]
本申請案,係享受以日本專利申請2019-170436號(申請日:2019年9月19日)作為基礎申請之優先權之利益。本申請案,係藉由參照此基礎申請案,而包含基礎申請案之所有的內容。
1:記憶體系統
2:記憶體控制器
3:磁疇壁移動記憶體
21:主機介面
22:記憶體介面
23:控制部
24:編碼/解碼部(Encoder/Decoder)
25:資料緩衝器
MML:磁性記憶線
[圖1] 係為對於第1實施形態的記憶體系統之構成例作展示之區塊圖。
[圖2] 係為對於被包含於第1實施形態的記憶體系統中之磁疇壁移動記憶體內的胞陣列之構成例作展示之圖。
[圖3] 係為對於後進先出(LIFO)型磁疇壁移動記憶體之構成例作展示之圖。
[圖4] 係為對於先進先出(FIFO)型磁疇壁移動記憶體之構成例作展示之圖。
[圖5] 係為針對當注目於LIFO型磁疇壁移動記憶體內之1根的磁性記憶線(MML)的情況時之移位動作作展示之圖。
[圖6] 係為針對當注目於FIFO型磁疇壁移動記憶體之1根的MML的情況時之移位動作作展示之圖。
[圖7] 係為對於磁疇壁移動記憶體之移位錯誤作展示之圖。
[圖8] 係為針對關連於在磁疇壁移動記憶體中的錯誤位置之2種類的特徵(特徵1、特徵2)作展示之圖。
[圖9] 係為對於在磁疇壁移動記憶體之區塊處而被配置於列方向上的ECC框架(列ECC框架)之構成例和在磁疇壁移動記憶體之區塊處而被配置於行方向上的ECC框架(行ECC框架)之構成例作展示之圖。
[圖10] 係為對於在第1實施形態的記憶體系統中所被使用之在磁疇壁移動記憶體之區塊處而被配置於傾斜方向上之ECC框架(傾斜ECC框架)之構成例作展示之圖。
[圖11] 係為針對分別構成複數之傾斜ECC框架的複數之碼字之邏輯影像與磁疇壁移動記憶體之區塊上的此些之碼字之物理性配置之間的關係作展示之圖。
[圖12] 係為對於當磁疇壁移動記憶體之區塊為具備有8MML×8層之構成的情況時之傾斜ECC框架之構成例作展示之圖。
[圖13] 係為對於當磁疇壁移動記憶體之區塊為具備有4MML×16層之構成的情況時之傾斜ECC框架之構成例作展示之圖。
[圖14] 係為對於當磁疇壁移動記憶體之區塊為具備有4MML×16層之構成的情況時之傾斜ECC框架之另一構成例作展示之圖。
[圖15] 係為對於當磁疇壁移動記憶體之區塊為具備有16MML×4層之構成的情況時之傾斜ECC框架之2種類的構成例作展示之圖。
[圖16] 係為對於將應被儲存在磁疇壁移動記憶體之區塊處的2維配列之資料重新排列為1維之資料序列並且將1維之資料序列內的資料要素規則性地分配至複數之傾斜ECC框架處,而將1維之資料序列重新排列為2維配列之資料的處理作展示之圖。
[圖17] 係為對於將2維配列之資料重新排列為1維之資料序列的處理之例作展示之圖。
[圖18] 係為對於將在1維之資料序列中所包含的資料要素規則性地分配至複數之傾斜ECC框架處的處理之例作展示之圖。
[圖19] 係為對於在第1實施形態之記憶體系統處所被實行的寫入處理之程序作展示之流程圖。
[圖20] 係為對於將複數之傾斜ECC框架的各者在磁疇壁移動記憶體之區塊的物理記憶區域處而配置於傾斜方向上的處理之程序作展示之流程圖。
[圖21] 係為對於使用有複數之傾斜ECC框架的解碼處理之程序作展示之流程圖。
[圖22] 係為對於在第2實施形態的記憶體系統中所被使用之使行ECC框架和傾斜ECC框架被作了組合的乘積碼之構成例作展示之圖。
[圖23] 係為針對乘積碼之邏輯影像與在磁疇壁移動記憶體之區塊上的乘積碼之物理性配置之間的關係作展示之圖。
[圖24] 係為對於當磁疇壁移動記憶體之區塊為具備有8MML×8層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之構成例作展示之圖。
[圖25] 係為對於當磁疇壁移動記憶體之區塊為具備有4MML×16層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之構成例作展示之圖。
[圖26] 係為對於當磁疇壁移動記憶體之區塊為具備有4MML×16層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之另一構成例作展示之圖。
[圖27] 係為對於當磁疇壁移動記憶體之區塊為具備有16MML×4層之構成的情況時之乘積碼之ECC框架(行ECC框架與傾斜ECC框架)之2種類的構成例作展示之圖。
[圖28] 係為對於在第2實施形態之記憶體系統處所被實行的寫入處理之程序作展示之流程圖。
[圖29] 係為對於將複數之行ECC框架的各者在磁疇壁移動記憶體之區塊的物理記憶區域處而配置於行方向上並且將複數之傾斜ECC框架的各者在磁疇壁移動記憶體之區塊的物理記憶區域處而配置於傾斜方向上的處理之程序作展示之流程圖。
[圖30] 係為對於使用有行ECC框架與傾斜ECC框架的解碼處理之程序作展示之流程圖。
[圖31] 係為對於使2種類的傾斜ECC框架被作了組合的乘積碼之構成例作展示之圖。
[圖32] 係為針對使2種類的傾斜ECC框架被作了組合的乘積碼之邏輯影像與在磁疇壁移動記憶體之區塊上的乘積碼之物理性配置之間的關係作展示之圖。
[圖33] 係為對於實現相正交之2種類的傾斜ECC框架之乘積碼之邏輯影像作展示之圖。
[圖34] 係為對於相正交之2種類的傾斜ECC框架之物理性配置作展示之圖。
[圖35A] 係為對於相正交之2種類的傾斜ECC框架之同位檢查碼位置之例作展示之圖。
[圖35B] 係為對於相正交之2種類的傾斜ECC框架之同位檢查碼位置之另一例作展示之圖。
[圖36] 係為對於當磁疇壁移動記憶體之區塊為具備有7MML×7層之構成的情況時之相正交之2種類的傾斜ECC框架之構成例作展示之圖。
[圖37] 係為對於在第3實施形態的記憶體系統中所被使用之使行ECC框架和列ECC框架被作了組合的乘積碼之構成例作展示之圖。
[圖38] 係為針對基於被包含在C2解碼之解碼結果中的似然度資訊來將C1解碼為失敗了的ECC框架藉由軟式判定解碼來進行解碼之處理作展示之圖。
[圖39] 係為對於代表信賴度的對數似然度比之例作展示之圖。
[圖40] 係為對於反覆解碼之構成例作展示之圖。
[圖41] 係為對於在第3實施形態之記憶體系統處所被實行的寫入處理之程序作展示之流程圖。
[圖42] 係為對於在第3實施形態之記憶體系統處所被實行的解碼處理之程序作展示之流程圖。
[圖43] 係為針對分別構成複數之傾斜ECC框架的複數之碼字之邏輯影像與複數之磁疇壁移動記憶體片(chip)上的此些之碼字之物理性配置之間的關係作展示之圖。
[圖44] 係為針對乘積碼之邏輯影像與在複數之磁疇壁移動記憶體片上的乘積碼之物理性配置之間的關係作展示之圖。
L1~Ln:層
MML:磁性記憶線
Claims (14)
- 一種記憶體系統,其特徵為,係具備有: 移位暫存型記憶體,係身為具備有包含複數之資料保持移位列的區塊之移位暫存型記憶體,前述複數之資料保持移位列,係各別包含有複數之記憶部,該移位暫存型記憶體,係構成為藉由將分別被儲存在藉由被包含於前述複數之資料保持移位列中的記憶部之集合所編成之複數之層中的資料,從開頭之層起朝向最終層來在第1方向上以層單位而作移位,並且將1層之量的寫入資料寫入至前述開頭之層中,來實行寫入動作,並藉由將分別被儲存在前述複數之層中的資料,以與前述第1方向相同或者是相反之第2方向來以層單位而作移位,來實行讀出動作;和 控制器,係對於前述移位暫存型記憶體作控制,而構成為將應被寫入至前述區塊中之資料作編碼,並將包含有複數之錯誤訂正碼框架之編碼資料寫入至前述區塊中,前述複數之錯誤訂正碼框架,係各別包含有碼字(codeword), 前述控制器,係構成為在前述複數之資料保持移位列之中的第1資料保持移位列內之對應於第1層之位置處,儲存在前述複數之錯誤訂正碼框架中之第1錯誤訂正碼框架處所包含的第1資料,並在前述第1資料保持移位列內之對應於第2層之位置處,儲存在前述複數之錯誤訂正碼框架中之第2錯誤訂正碼框架處所包含的第2資料,並且在前述複數之資料保持移位列之中的第2資料保持移位列內之對應於前述第2層之位置處,儲存在前述第1錯誤訂正碼框架處所包含的第3資料。
- 如請求項1所記載之記憶體系統,其中, 在前述第1錯誤訂正碼框架中所包含的複數之資料中的被儲存於前述第1層處之資料之數量,係與在前述第2錯誤訂正碼框架中所包含的複數之資料中的被儲存於前述第1層處之資料之數量相互一致, 在前述第1錯誤訂正碼框架中所包含的前述複數之資料中的被儲存於前述第2層處之資料之數量,係與在前述第2錯誤訂正碼框架中所包含的前述複數之資料中的被儲存於前述第2層處之資料之數量相互一致。
- 如請求項1或2所記載之記憶體系統,其中, 被儲存於前述第1錯誤訂正碼框架中的複數之資料中之被儲存於前述第1資料保持移位列處之資料之數量,係與被儲存於前述第2錯誤訂正碼框架中的複數之資料中之被包含於前述第1資料保持移位列中之資料之數量相互一致, 被包含於前述第1錯誤訂正碼框架中的前述複數之資料中之被儲存於前述第2資料保持移位列處之資料之數量,係與被儲存於前述第2錯誤訂正碼框架中的前述複數之資料中之被包含於前述第2資料保持移位列中之資料之數量相互一致。
- 如請求項1所記載之記憶體系統,其中, 被包含於前述複數之錯誤訂正碼框架中之至少1個的錯誤訂正碼框架,係至少包含有將前述開頭之層側之資料作較多之包含的第1框架要素、和將前述最終層側之資料作較多之包含的第2框架要素。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係將藉由把構成應被寫入至前述區塊中之前述資料的複數之資料部在列方向上作並排一事所得到的2維配列之資料,以列的單位來作編碼,藉由此,而產生前述複數之錯誤訂正碼框架, 構成為以使隸屬於相同的錯誤訂正碼框架之資料要素的各者所被作配置之列的位置會於前述複數之資料部之間而有所偏移的方式,來將被包含於前述複數之資料部的各者中之複數之資料要素之並排順序作規則性的變更,藉由此來對於前述區塊而將前述複數之錯誤訂正碼框架之各者作寫入。
- 如請求項1所記載之記憶體系統,其中, 前述控制器,係 從前述移位暫存型記憶體來讀出被儲存於前述區塊中的前述複數之層之量之資料, 藉由將隸屬於相同之錯誤訂正碼框架的資料彼此作組合,來將前述複數之錯誤訂正碼框架作再建構, 將前述被作了再建構的複數之錯誤訂正碼框架解碼,而對於前述所讀出了的資料之錯誤作訂正。
- 一種記憶體系統,其特徵為,係具備有: 移位暫存型記憶體,係身為具備有包含複數之資料保持移位列的區塊之移位暫存型記憶體,前述複數之資料保持移位列,係各別包含有複數之記憶部,該移位暫存型記憶體,係構成為藉由將分別被儲存在藉由被包含於前述複數之資料保持移位列中的記憶部之集合所編成之複數之層中的資料,從開頭之層起朝向最終層來在第1方向上以層單位而作移位,並且將1層之量的寫入資料寫入至前述開頭之層中,來實行寫入動作,並藉由將分別被儲存在前述複數之層中的資料,以與前述第1方向相同或者是相反之第2方向來以層單位而作移位,來實行讀出動作;和 控制器,係對於前述移位暫存型記憶體作控制,而構成為將應被寫入至前述區塊中之資料,使用將第1碼和第2碼作了組合的乘積碼來作編碼,並將使各別包含有前述第1碼之碼字的複數之第1形態錯誤訂正碼框架和各別包含有前述第2碼之碼字的複數之第2形態錯誤訂正碼框架被作了組合的編碼資料,寫入至前述區塊中, 前述控制器,係構成為將被包含在前述複數之第1形態錯誤訂正碼框架中之第1錯誤訂正碼框架以及前述複數之第2形態錯誤訂正碼框架中之第2錯誤訂正碼框架處的第1資料,儲存在前述複數之資料保持移位列之中的第1資料保持移位列內之對應於第1層之位置處,並將被包含在前述複數之第1形態錯誤訂正碼框架中之第3錯誤訂正碼框架以及前述複數之第2形態錯誤訂正碼框架中之第4錯誤訂正碼框架處的第2資料,儲存在前述第1資料保持移位列內之對應於第2層之位置處,並將被包含在前述第2錯誤訂正碼框架以及前述第3錯誤訂正碼框架處的第3資料,儲存在前述複數之資料保持移位列之中的第2資料保持移位列內之對應於前述第2層之位置處,並且將被包含在前述第1錯誤訂正碼框架處的第4資料,儲存在前述第2資料保持移位列內之對應於前述第1層之位置處, 或者是,係構成為將被包含在前述第1錯誤訂正碼框架以及前述第2錯誤訂正碼框架處的第5資料,儲存在前述第1資料保持移位列內之對應於前述第1層之位置處,並將被包含在前述第1錯誤訂正碼框架以及前述第4錯誤訂正碼框架處的第6資料,儲存在前述第1資料保持移位列內之對應於前述第2層之位置處,並將被包含在前述第1錯誤訂正碼框架以及前述第2錯誤訂正碼框架處的第7資料,儲存在前述第2資料保持移位列內之對應於前述第2層之位置處,並且將被包含在前述第1錯誤訂正碼框架處的第8資料,儲存在前述第2資料保持移位列內之對應於前述第1層之位置處。
- 如請求項7所記載之記憶體系統,其中, 在前述第3錯誤訂正碼框架中所包含的複數之資料中的被儲存於前述第1層處之資料之數量,係與在前述第4錯誤訂正碼框架中所包含的複數之資料中的被儲存於前述第1層處之資料之數量相互一致, 在前述第3錯誤訂正碼框架中所包含的前述複數之資料中的被儲存於前述第2層處之資料之數量,係與在前述第4錯誤訂正碼框架中所包含的前述複數之資料中的被儲存於前述第2層處之資料之數量相互一致。
- 如請求項7或8所記載之記憶體系統,其中, 被儲存於前述第3錯誤訂正碼框架中的複數之資料中之被儲存於前述第1資料保持移位列處之資料之數量,係與被儲存於前述第4錯誤訂正碼框架中的複數之資料中之被包含於前述第1資料保持移位列中之資料之數量相互一致, 被包含於前述第3錯誤訂正碼框架中的前述複數之資料中之被儲存於前述第2資料保持移位列處之資料之數量,係與被儲存於前述第4錯誤訂正碼框架中的複數之資料中之被包含於前述第2資料保持移位列中之資料之數量相互一致。
- 如請求項7所記載之記憶體系統,其中, 前述控制器,係 從前述移位暫存型記憶體來讀出被儲存於前述區塊中的資料, 實行將對應於前述所讀出了的資料之前述複數之第1形態錯誤訂正碼框架之中之1個的錯誤訂正碼框架解碼並且對於前述所讀出了的資料之錯誤作訂正之第1解碼處理, 當前述1個的錯誤訂正碼框架之前述第1解碼處理失敗了的情況時,係從前述移位暫存型記憶體而將被儲存於前述區塊中之剩餘的資料讀出, 實行藉由將前述複數之第2形態錯誤訂正碼框架解碼並對於在前述第1解碼處理為失敗了的前述1個的錯誤訂正碼框架中所包含之錯誤作訂正之第2解碼處理。
- 一種記憶體系統,其特徵為,係具備有: 移位暫存型記憶體,係身為具備有包含於列方向上而延伸的複數之資料保持移位列之區塊的移位暫存型記憶體,各資料保持移位列係包含複數之記憶部,在前述複數之資料保持移位列中所包含的記憶部之集合,係作為在行方向上延伸之複數之層而被編成;和 控制器,係對於前述移位暫存型記憶體作控制,而構成為將應被寫入至前述區塊中之資料使用使第1碼和第2碼被作了組合的乘積碼來作編碼,並將使各別包含有前述第1碼之碼字的複數之第1錯誤訂正碼框架和各別包含有前述第2碼之碼字的複數之第2錯誤檢測或錯誤訂正碼框架作了組合的編碼資料寫入至前述區塊中, 前述移位暫存型記憶體,係藉由將分別被儲存在前述複數之層處的資料從開頭之層起朝向最終層來在第1方向上以層單位而作移位並且將1層之量的寫入資料寫入至前述開頭之層一事,來實行寫入動作,並藉由將分別被儲存於前述複數之層處的資料在與前述第1方向相同或者是相反之第2方向上以層單位來作移位,來實行讀出動作, 前述第2碼,係為錯誤檢測碼或者是錯誤訂正碼之其中一者, 前述複數之第2錯誤檢測或錯誤訂正碼框架之各者,係以由1個的資料保持移位列來構成的方式,而在由前述記憶部之集合所構成的前述區塊之物理記憶區域處被配置於列方向上, 前述控制器,係 將代表與藉由前述複數之第2錯誤檢測或錯誤訂正碼框架之解碼而使錯誤訂正成功或者是被判定為無錯誤的資料保持移位列相對應之列的信賴度之似然度值設為大, 將代表與藉由前述複數之第2錯誤檢測或錯誤訂正碼框架之解碼而使錯誤訂正失敗或者是被判定為有錯誤的資料保持移位列相對應之列的信賴度之似然度值設為小, 基於藉由前述複數之第2錯誤檢測或錯誤訂正碼框架之解碼所得到的各列之似然度值,來將前述複數之第1錯誤訂正碼框架藉由軟式判定解碼而作解碼。
- 如請求項11所記載之記憶體系統,其中, 前述複數之第1錯誤訂正碼框架之各者,係在前述區塊之物理記憶區域處而被配置於行方向上。
- 如請求項11所記載之記憶體系統,其中, 前述第2碼係為錯誤訂正碼, 前述複數之第2錯誤檢測或錯誤訂正碼框架,係為複數之第2錯誤訂正碼框架, 前述複數之第1錯誤訂正碼框架之各者,係在前述區塊之物理記憶區域處而被配置於行方向上, 前述控制器,係 從前述移位暫存型記憶體來讀出被儲存於前述區塊中的資料, 實行將前述複數之第1錯誤訂正碼框架解碼並且對於前述所讀出了的資料之錯誤作訂正之第1解碼處理, 實行藉由將前述複數之第2錯誤訂正碼框架解碼,來對於在前述第1解碼處理為失敗了的第1錯誤訂正碼框架中所包含之錯誤作訂正之第2解碼處理, 將代表與被判定為藉由前述第2解碼處理而使錯誤訂正成功的資料保持移位列相對應之列的信賴度之似然度值設為大,並將代表與被判定為藉由前述第2解碼處理而使錯誤訂正失敗的資料保持移位列相對應之列的信賴度之似然度值設為小, 基於包含有藉由前述複數之第2錯誤訂正碼框架之解碼所得到的各列之似然度值之前述第2解碼處理之解碼結果,來將前述第1解碼處理為失敗了的第1錯誤訂正碼框架藉由軟式判定解碼而作解碼。
- 如請求項13所記載之記憶體系統,其中, 前述控制器,係構成為實行反覆解碼,該反覆解碼,係反覆進行把藉由以對應於前述第1碼之第1解碼器所實行的解碼而得到之解碼結果和藉由以對應於前述第2碼之第2解碼器所實行的解碼而得到之解碼結果在前述第1解碼器與前述第2解碼器之間作為外部值而作交換之處理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-170436 | 2019-09-19 | ||
JP2019170436A JP2021047690A (ja) | 2019-09-19 | 2019-09-19 | メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202113861A TW202113861A (zh) | 2021-04-01 |
TWI735143B true TWI735143B (zh) | 2021-08-01 |
Family
ID=74876369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109101935A TWI735143B (zh) | 2019-09-19 | 2020-01-20 | 記憶體系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11347584B2 (zh) |
JP (1) | JP2021047690A (zh) |
CN (1) | CN112527391B (zh) |
TW (1) | TWI735143B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device resources |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) * | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11599417B2 (en) * | 2021-01-14 | 2023-03-07 | Changxin Memory Technologies, Inc. | Error correction system |
JP2023512892A (ja) | 2021-01-14 | 2023-03-30 | チャンシン メモリー テクノロジーズ インコーポレイテッド | 比較システム |
US11410742B1 (en) * | 2021-02-26 | 2022-08-09 | Micron Technology, Inc. | Microelectronic device testing, and related devices, systems, and methods |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11520491B2 (en) * | 2021-04-12 | 2022-12-06 | Micron Technology, Inc. | Parity protection in non-volatile memory |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689727A (en) * | 1994-09-08 | 1997-11-18 | Western Digital Corporation | Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution |
TW580709B (en) * | 2001-11-14 | 2004-03-21 | Monolithic System Tech Inc | Error correcting memory and method of operating same |
US10095474B2 (en) * | 2014-05-05 | 2018-10-09 | Texas Instruments Incorporated | Filler bank control circuit for synchronous FIFO queues and other memory devices |
US20190180824A1 (en) * | 2017-12-12 | 2019-06-13 | Sandisk Technologies Llc | Hybrid microcontroller architecture for non-volatile memory |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000278143A (ja) * | 1999-03-29 | 2000-10-06 | Hitachi Ltd | 積符号誤り訂正装置および方法 |
TW569188B (en) * | 2001-02-07 | 2004-01-01 | Media Tek Inc | Method and apparatus for error processing in optical disk memories |
JP2007128594A (ja) * | 2005-11-02 | 2007-05-24 | Toshiba Corp | 情報記憶媒体、情報記録方法、および情報再生方法 |
US7808831B2 (en) * | 2008-06-30 | 2010-10-05 | Sandisk Corporation | Read disturb mitigation in non-volatile memory |
JP2010033181A (ja) * | 2008-07-25 | 2010-02-12 | Toshiba Microelectronics Corp | エラー訂正回路、および半導体メモリシステム |
US8947941B2 (en) * | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US8839073B2 (en) * | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
CN103916138B (zh) * | 2012-12-28 | 2018-03-16 | 深圳开阳电子股份有限公司 | 一种钱搜索电路及基于该钱搜索电路的ecc解码装置及方法 |
JP6397773B2 (ja) | 2015-01-30 | 2018-09-26 | 東芝メモリ株式会社 | 磁気記憶装置及び磁気記憶方法 |
US10439648B1 (en) * | 2018-04-10 | 2019-10-08 | Micron Technology, Inc. | Area efficient implementation of a product code error correcting code decoder |
JP2020046916A (ja) | 2018-09-19 | 2020-03-26 | キオクシア株式会社 | メモリシステム |
US11016844B2 (en) * | 2019-03-15 | 2021-05-25 | Toshiba Memory Corporation | Error correction code structure |
JP2021149769A (ja) * | 2020-03-23 | 2021-09-27 | キオクシア株式会社 | メモリシステムおよびシフトレジスタ型メモリ |
-
2019
- 2019-09-19 JP JP2019170436A patent/JP2021047690A/ja active Pending
-
2020
- 2020-01-20 TW TW109101935A patent/TWI735143B/zh active
- 2020-02-27 CN CN202010122745.0A patent/CN112527391B/zh active Active
- 2020-03-03 US US16/807,220 patent/US11347584B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689727A (en) * | 1994-09-08 | 1997-11-18 | Western Digital Corporation | Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution |
TW580709B (en) * | 2001-11-14 | 2004-03-21 | Monolithic System Tech Inc | Error correcting memory and method of operating same |
US7051264B2 (en) * | 2001-11-14 | 2006-05-23 | Monolithic System Technology, Inc. | Error correcting memory and method of operating same |
US10095474B2 (en) * | 2014-05-05 | 2018-10-09 | Texas Instruments Incorporated | Filler bank control circuit for synchronous FIFO queues and other memory devices |
US20190180824A1 (en) * | 2017-12-12 | 2019-06-13 | Sandisk Technologies Llc | Hybrid microcontroller architecture for non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
JP2021047690A (ja) | 2021-03-25 |
CN112527391B (zh) | 2023-08-29 |
TW202113861A (zh) | 2021-04-01 |
US20210089392A1 (en) | 2021-03-25 |
US11347584B2 (en) | 2022-05-31 |
CN112527391A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI735143B (zh) | 記憶體系統 | |
US10218789B2 (en) | Erasure correcting coding using temporary erasure data | |
US10218384B2 (en) | ECC decoder with multiple decoding modes | |
US9298546B2 (en) | Semiconductor memory device | |
US10110249B2 (en) | Column-layered message-passing LDPC decoder | |
US9432055B2 (en) | Encoder for quasi-cyclic low-density parity-check codes over subfields using fourier transform | |
US20180091172A1 (en) | Ecc and raid-type decoding | |
US9141467B2 (en) | Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof | |
US20140298142A1 (en) | Memory controller, semiconductor memory apparatus and decoding method | |
US20170201273A1 (en) | Multi-level raid-type encoding with random correction capability | |
US7480845B2 (en) | Method and apparatus for generating block-based low-density parity check matrix and recording medium having recorded thereon code for implementing the method | |
US20180167088A1 (en) | Error-Correcting Code Method and System with Hybrid Block Product Codes | |
US9444493B2 (en) | Encoder with transform architecture for LDPC codes over subfields using message mapping | |
EP1282040A2 (en) | Data storage method for use in a magnetoresistive solid-state storage device | |
CN112068778B (zh) | 用于保持从存储阵列中读取的数据的完整性的方法和设备 | |
TWI659423B (zh) | 快閃記憶體裝置及快閃記憶體儲存管理方法 | |
US20170255518A1 (en) | Ecc decoding using raid-type parity | |
US10142419B2 (en) | Erasure correcting coding using data subsets and partial parity symbols | |
KR102254100B1 (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 | |
US20170214415A1 (en) | Memory system using integrated parallel interleaved concatenation | |
US8856616B1 (en) | Two dimensional encoding for non-volatile memory blocks | |
US9639421B2 (en) | Operating method of flash memory system | |
US10256843B2 (en) | Systems, methods, and devices for encoding and decoding data using multi-layer integrated interleaved codes | |
KR20210001927A (ko) | 국부성을 사용한 일반화된 연접 에러 정정 코딩 방법 | |
JP2023137091A (ja) | メモリシステムおよびメモリ制御方法 |