TWI437431B - 記憶體系統及控制記憶體系統的方法 - Google Patents

記憶體系統及控制記憶體系統的方法 Download PDF

Info

Publication number
TWI437431B
TWI437431B TW098145326A TW98145326A TWI437431B TW I437431 B TWI437431 B TW I437431B TW 098145326 A TW098145326 A TW 098145326A TW 98145326 A TW98145326 A TW 98145326A TW I437431 B TWI437431 B TW I437431B
Authority
TW
Taiwan
Prior art keywords
log
storage unit
block
data
management
Prior art date
Application number
TW098145326A
Other languages
English (en)
Other versions
TW201102818A (en
Inventor
Hirokuni Yano
Hajime Yamazaki
Hironobu Miyamoto
Shinji Yonezawa
Original Assignee
Toshiba Kk
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Kk filed Critical Toshiba Kk
Publication of TW201102818A publication Critical patent/TW201102818A/zh
Application granted granted Critical
Publication of TWI437431B publication Critical patent/TWI437431B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

記憶體系統及控制記憶體系統的方法
本發明係關於包括非揮發性半導體記憶體之記憶體系統及控制該記憶體系統之方法。
一些個人電腦(PC)使用硬碟器件作為二級儲存器件。在該等PC中,已知用於備份已儲存於硬碟器件中之資料以防止該資料由於某故障而變得無效的技術。舉例而言,當偵測到改變硬碟器件中之資料的動作時,獲取作為資料在改變之前的備份複本之快照且產生對資料進行之改變的日誌。接著,在每一特定時間重複用於獲取新快照、使過去在獲取新快照之前獲取的日誌無效及產生新日誌的處理(例如,參見專利文獻1:美國專利特許公開申請案第2006/0224636號之說明書)。在資料歸因於某一原因而變得無效之情形下,可藉由參考快照及日誌復原該資料。
近些年來,作為非揮發性半導體儲存器件之NAND(反及)型快閃記憶體之容量已急劇增加。因此,作為安裝有NAND型快閃記憶體之記憶體系統的固態硬碟(SSD)引起注意。該快閃記憶體與磁碟器件相比具有諸如高速及重量輕之優點。然而,專利文獻1中所揭示之技術無法如在備份儲存於具有硬碟器件作為二級儲存器件之PC中之資料的情況中般應用於備份儲存於具有NAND型快閃記憶體作為二級儲存器件之該PC中的資料。此係因為使用多值記憶體技術(其中等於或大於2個位元之複數筆資料(多值資料)可儲存於一個記憶胞中)來增加NAND型快閃記憶體之容量(例如,參見專利文獻2:日本專利特許公開申請案第2004-192789號)。
本發明之一態樣提供一種記憶體系統,其包含:一第一儲存單元,其為揮發性的;一第二儲存單元,其為非揮發性的且連接至該第一儲存單元;一讀取/寫入控制單元,其基於一管理表執行自該第二儲存單元之資料讀取及對該第二儲存單元之資料寫入,在該管理表中一邏輯位址係與該第二儲存單元中之一資料儲存位置相關聯;一日誌控制單元,其將該管理表傳送至該第一儲存單元,且在更新該第一儲存單元上之該管理表之一事件發生時,將該管理表之更新前後之差異資訊作為一差異日誌儲存至該第一儲存單元中;一日誌反映單元,其執行提交處理,該提交處理係用於將該差異日誌儲存於該第二儲存單元中且在建立一第一條件時在儲存於該第一儲存單元中之該管理表中反映該差異日誌;一操作狀態管理單元,其在系統啟動之後在該日誌反映單元將該差異日誌儲存至該第二儲存單元中之前將一第一日誌儲存至該第二儲存單元中,且在執行正常系統暫停時將一第二日誌儲存至該第二儲存單元中;及一管理資訊復原單元,其偵測儲存於該第二儲存單元中之該第一日誌、該差異日誌及該第二日誌中的至少一者,且判斷是否已執行正常系統暫停。
組態多值記憶體之記憶胞具有一具有堆疊閘結構之場效電晶體結構,在該堆疊閘結構中將一閘絕緣薄膜、一浮動閘電極、一內部閘絕緣薄膜及一控制閘電極依次堆疊於通道區域上且可根據累積於該浮動閘電極中之電子的數目設定複數個臨限電壓。為了使得有可能基於該複數個臨限電壓執行多值儲存,需要使對應於一筆資料之臨限電壓的分布極其狹窄。
藉由諸如PC之主機裝置記錄之資料具有時間局部性及空間局部性。因此,當記錄資料時,若將資料直接記錄於自外部指定之位址中時,重寫(亦即,抹除處理)在時間上集中於特定區中且抹除之次數之偏差增加。因此,在使用NAND型快閃記憶體之記憶體系統中,執行用於相等地分散資料更新區段之稱為損耗平均(wear leveling)的處理。舉例而言,在損耗平均處理中,將由主機裝置指定之邏輯位址轉譯為非揮發性半導體記憶體之實體位址,使得相等地分散資料更新區段。
在該位址轉譯中,經常藉由使用諸如位址轉譯表之管理表來管理資料之儲存位置,該位址轉譯表表示自外部供應之一邏輯位址(LBA)與指示資料在NAND型快閃記憶體上之儲存位置的一實體位址之間的對應關係。在啟動時將該管理表自非揮發性NAND型快閃記憶體載入至諸如動態隨機存取記憶體(DRAM)之記憶體上,每當寫入資料時便更新該管理表。需要(例如)藉由使用諸如快照及日誌之備份技術來備份位址轉譯表中之對應關係以供在斷電時使用該對應關係。
在SSD中,即使當在資料寫入期間意外地發生斷電時(即使在未授權之斷電時),有必要維持管理資訊之一致性及可靠地保護已記錄於其中之資料。因此,SSD中亦需要容易並可靠地偵測是已執行正常斷電序列或是已執行不正確之斷電序列的方法。
在下文參看隨附圖式詳細地解釋根據本發明之記憶體系統之例示性實施例。本發明並不限於此等實施例。
在下文參看諸圖解釋本發明之實施例。在以下解釋中,以相同參考數字及符號表示具有相同功能及組態之組件。僅在必要時才執行對組件之冗餘解釋。
首先,定義說明書中所使用之術語。
實體頁:NAND型快閃記憶體中可共同地加以寫入及讀出之單位。
邏輯頁:設定於SSD中之寫入及讀出單位。該邏輯頁係與一或多個實體頁相關聯。
實體區塊:NAND型快閃記憶體中可獨立抹除之最小單位。該實體區塊包括複數個實體頁。
邏輯區塊:設定於SSD中之抹除單位。該邏輯區塊係與一或多個實體區塊相關聯。該邏輯區塊包括複數個邏輯頁。
磁區:來自主機之最小存取單位。舉例而言,磁區之大小為512個位元組(B)。
叢集:SSD中用於管理「小資料(細粒度資料)」之管理單位。叢集之大小等於或大於磁區之大小且經設定以等於主機之作業系統(OS)所使用的檔案系統之資料管理單位或邏輯頁大小。舉例而言,可設定叢集之大小,使得為叢集大小兩倍或更大自然數倍大之大小為邏輯頁之大小。
磁軌:SSD中用於管理「大資料(粗粒度資料)」之管理單位。設定磁軌大小,使得為叢集大小兩倍或更大自然數倍大之大小為磁軌之大小。舉例而言,磁軌之大小可經設定而等於邏輯區塊之大小。
自由區塊(FB):其中不包括有效資料且不被分配用途之邏輯區塊。該自由區塊包括以下兩種類型,亦即,完整自由區塊(CFB)及片段自由區塊(FFB)。
完整自由區塊(CFB):需要對其執行抹除操作以供再用之自由區塊。在執行抹除操作之後,可自定位於邏輯區塊頂部處之邏輯頁執行寫入。
片段自由區塊(FFB):剩餘無資料寫入其中之邏輯頁且可在不執行抹除操作之情況下再用的自由區塊。可在無資料寫入其中之所剩餘邏輯頁中執行寫入。
壞區塊(BB):NAND型快閃記憶體上之由於大量錯誤而無法用作儲存區之實體區塊。舉例而言,將無法正常完成抹除操作之實體區塊登記為壞區塊BB。
寫入效率:在特定時段中邏輯區塊相對於自主機寫入之資料量之抹除量的統計值。當寫入效率較小時,NAND型快閃記憶體之損耗程度較小。
有效叢集:儲存對應於一邏輯位址之最新資料(叢集大小之資料)的叢集。
無效叢集:儲存不稱作將具有相同邏輯位址之資料寫入於不同位置中之結果的非最新資料(叢集大小之資料)的叢集。
有效磁軌:儲存對應於一邏輯位址之最新資料(磁軌大小之資料)的磁軌。
無效磁軌:儲存不稱作將具有相同邏輯位址之資料寫入於不同位置中之結果的非最新資料(磁軌大小之資料)的磁軌。
多位準記憶胞(MLC)模式:在能夠進行多值儲存之NAND型快閃記憶體中通常使用上部頁及下部頁執行寫入的模式。藉由使MLC模式之一邏輯區塊與MLC模式中所使用之一或多個實體區塊相關聯來組態MLC模式之邏輯區塊。
偽單位準記憶胞(SLC)模式:在能夠進行多值儲存之NAND型快閃記憶體中僅使用下部頁執行寫入的模式。藉由使偽SLC模式之一邏輯區塊與偽SLC模式中所使用之一或多個實體區塊相關聯來組態偽SLC模式之邏輯區塊。甚至在偽SLC模式中曾經使用過之實體區塊在抹除操作後可用在MLC模式中。
(第一實施例)
圖1為SSD 100之組態實例之方塊圖。SSD 100經由諸如進階附接技術介面(ATA I/F)2之記憶體連接介面連接至諸如PC或中央處理單元(CPU)核心之主機器件1(後文中為主機1)且充當主機1之外部記憶體。SSD 100可經由諸如RS232C介面之通信介面3將資料傳輸至用於除錯及製造檢驗之裝置200及自該裝置200接收資料。SSD 100包括一作為非揮發性半導體記憶體之NAND型快閃記憶體(後文中為NAND記憶體)10、一作為控制器之驅動控制電路4、一作為揮發性半導體記憶體之DRAM 20、一電力供應電路5、一用於狀態顯示之發光二極體(LED)6、一偵測硬碟中之溫度的溫度感測器7及一熔絲8。
電力供應電路5自外部直流(DC)電力(其係自主機1側上之電力供應電路供應)產生複數個不同內部DC電源電壓且將此等內部DC電源電壓供應至SSD 100中之各別電路。電力供應電路5偵測外部電力供應之上升邊緣,產生一電力開啟重設信號且將該電力開啟重設信號供應至驅動控制電路4。將熔絲8提供於主機1側上之電力供應電路與SSD 100中之電力供應電路5之間。當自外部電力供應電路供應一過電流時,熔絲8斷開以防止內部電路之故障。
在此情況下,NAND記憶體10包括執行四個並行操作之四個並行操作元件10a至10d。並行操作元件10a至10d藉由四個通道(ch0至ch3)連接至驅動控制電路4。並行操作元件10a至10d中之每一者包括能夠執行記憶體庫(bank)交錯之複數個記憶體庫(在此情況下,為四個記憶體庫(記憶體庫0至記憶體庫3))。每一記憶體庫包括複數個NAND記憶體晶片(在此情況下,為兩個記憶體晶片(晶片0及晶片1))。舉例而言,將每一記憶體晶片劃分為平面0及平面1兩個區,其每一者包括複數個實體區塊。平面0及平面1包括彼此獨立之周邊電路(例如,列解碼器、行解碼器、頁緩衝器及資料快取記憶體)且可藉由使用雙倍速度模式同時執行抹除、寫入及讀出。以此方式,NAND記憶體10之每一NAND記憶體晶片可藉由複數個通道執行並行操作、藉由複數個記憶體庫執行記憶體庫交錯操作,及藉由使用複數個平面之雙倍速度模式執行並行操作。每一記憶體晶片可劃分為四個平面或在不加以劃分之情況下組態。
DRAM 20充當一用於在主機1與NAND記憶體10之間進行資料傳送之快取記憶體及一用於工作區之記憶體。在DRAM 20之用於工作區之記憶體中,儲存以下各者:在啟動或其類似情況時藉由載入儲存於NAND記憶體10中之各種管理表而獲得的主表(master table)(快照)、為管理表之改變差異的日誌資訊,及其類似者。可使用鐵電隨機存取記憶體(FeRAM)、磁阻式隨機存取記憶體(MRAM)、相變隨機存取記憶體(PRAM)或其類似者來替代DRAM 20。驅動控制電路4經由DRAM 20執行主機1與NAND記憶體10之間的資料傳送控制且控制SSD 100中之各別組件。驅動控制電路4將用於狀態顯示之信號供應至用於狀態顯示之LED 6。驅動控制電路4亦具有自電力供應電路5接收一電力開啟重設信號及將一重設信號及一時脈信號供應至自身電路及SSD 100中之各別單元的功能。
藉由將複數個實體區塊配置為一資料抹除單位來組態每一NAND記憶體晶片。圖2A為說明包括於NAND記憶體晶片中之一實體區塊之組態實例的等效電路圖。每一實體區塊包括沿X方向依次配置之(p+1)個NAND串(p為等於或大於0之整數)。包括於各別(p+1)個NAND串中之選擇電晶體ST1使得汲極分別連接至位元線BL0至BLp,且閘極共同連接至閘極線SGD。此外,選擇電晶體ST2使得源極共同連接至源極線SL且閘極共同連接至閘極線SGS。
記憶胞電晶體MT中之每一者包括一金氧半導體場效電晶體(MOSFET),其包括形成於半導體基板上之堆疊閘結構。該堆疊閘結構包括一經由閘絕緣薄膜形成於半導體基板上的電荷儲存層(浮動閘電極)及一經由內部閘絕緣薄膜形成於該電荷儲存層上的控制閘電極。在記憶胞電晶體MT中,臨限電壓根據累積於浮動閘電極中之電子的數目改變。記憶胞電晶體MT根據該臨限電壓之差來儲存資料。記憶胞電晶體MT可經組態以儲存一個位元或可經組態以儲存多個值(等於或大於兩個位元之資料)。
記憶胞電晶體MT並不限於具有浮動閘電極之結構,且可為諸如金氧氮氧矽(MONOS)類型之結構,其可藉由使作為電荷儲存層之氮化物薄膜介面截獲電子來調整臨限值。類似地,MONOS結構之記憶胞電晶體MT可經組態以儲存一個位元或可經組態以儲存多個值(等於或大於兩個位元之資料)。
在NAND串中之每一者中,將(q+1)個記憶胞電晶體MT配置於選擇電晶體ST1之源極與選擇電晶體ST2之汲極之間,使得其電流路徑串聯連接。換言之,記憶胞電晶體MT在Y方向上串聯連接,使得記憶胞電晶體MT中之鄰近者共用一擴散區域(源極區域或汲極區域)。
記憶胞電晶體MT之控制閘電極分別依次自位於大部分汲極側上之記憶胞電晶體MT連接至字線WL0至WLq。因此,記憶胞電晶體MT之連接至字線WL0之汲極連接至選擇電晶體ST1之源極。記憶胞電晶體MT之連接至字線WLq之源極連接至選擇電晶體ST2之汲極。
在實體區塊中之NAND串之中,字線WL0至WLq共同連接記憶胞電晶體MT之控制閘電極。換言之,存在於該區塊中之同一列中的記憶胞電晶體MT之控制閘電極連接至同一字線WL。將連接至同一字線WL之(p+1)個記憶胞電晶體MT視為一頁(實體頁)。藉由每一實體頁執行資料寫入及資料讀出。
在該等區塊之中,位元線BL0至BLp共同連接選擇電晶體ST1之汲極。換言之,存在於複數個區塊中之同一行中的NAND串連接至同一位元線BL。
圖2B為(例如)用於將兩個位元儲存於一個記憶胞電晶體MT中之四元資料儲存模式中之臨限分布的示意圖。在該四元資料儲存模式中,由上部頁資料「x」及下部頁資料「y」定義之四元資料「xy」中的任一者可儲存於該記憶胞電晶體MT中。
舉例而言,作為四元資料「xy」,資料「11」、「01」、「00」及「10」係按照記憶胞電晶體MT之臨限電壓之次序來分配的。資料「11」為經抹除狀態,其中記憶胞電晶體MT之臨限電壓為負。資料分配之規則並不限於此。該組態可使得三個或三個以上位元儲存於一個記憶胞電晶體MT中。
在下部頁寫入操作中,根據下部位元資料「y」之寫入將資料「10」選擇性地寫入至具有資料「11」(處於經抹除狀態)之記憶胞電晶體MT中。上部頁寫入之前的資料「10」之臨限分布係位於上部頁寫入之後的資料「01」及資料「00」之臨限分布的中間附近且可寬於上部頁寫入之後的臨限分布。在上部頁寫入操作中,將上部位元資料「x」之寫入選擇性地應用於資料「11」之記憶胞及資料「10」之記憶胞。將資料「01」及資料「00」寫入於記憶胞中。在偽SLC模式中,僅使用下部頁來執行寫入。下部頁寫入比上部頁寫入快。
圖3為驅動控制電路4之硬體內部組態實例的方塊圖。驅動控制電路4包括一資料存取匯流排101、一第一電路控制匯流排102及一第二電路控制匯流排103。控制整個驅動控制電路4之處理器104連接至第一電路控制匯流排102。一開機ROM 105經由ROM控制器106連接至第一電路控制匯流排102,在該開機ROM 105中儲存用於啟動儲存於NAND記憶體10中之各別管理程式(FW:韌體)之開機程式。一時脈控制器107連接至第一電路控制匯流排102,該時脈控制器107自圖1中所展示之電力供應電路5接收電力開啟重設信號且將重設信號及時脈信號供應至各別單元。
第二電路控制匯流排103連接至第一電路控制匯流排102。以下各者連接至第二電路控制匯流排103:用於自圖1中所展示之溫度感測器7接收資料的I2 C電路108、將用於狀態顯示之信號供應至用於狀態顯示之LED 6之並聯IO(PIO)電路109,及控制RS232C介面3的串聯IO(SIO)電路110。
ATA介面控制器(ATA控制器)111、第一錯誤檢查及校正(ECC)電路112、NAND控制器113及DRAM控制器114連接至資料存取匯流排101及第一電路控制匯流排102兩者。ATA控制器111經由ATA介面2將資料傳輸至主機1及自主機1接收資料。用作資料工作區及韌體擴充區之靜態隨機存取記憶體(SRAM)115經由SRAM控制器116連接至資料存取匯流排101。當啟動儲存於NAND記憶體10中之韌體時,藉由儲存於開機ROM 105中之開機程式將該韌體傳送至SRAM 115。
NAND控制器113包括:一NAND介面117,其執行關於與NAND記憶體10之介面的介面處理;一第二ECC電路118;及一用於直接記憶體存取(DMA)傳送控制之DMA控制器119,其執行NAND記憶體10與DRAM 20之間的存取控制。第二ECC電路118執行第二校正碼之編碼且執行第一錯誤校正碼之編碼及解碼。第一ECC電路112執行第二錯誤校正碼之解碼。第一錯誤校正碼及第二錯誤校正碼為(例如)漢明(Hamming)碼、博斯-查德胡裏-霍昆格姆(Bose Chaudhuri Hocquenghem)(BCH)碼、理德-所羅門(Reed Solomon)(RS)碼或低密度同位檢查(LDPC)碼。第二錯誤校正碼之校正能力高於第一錯誤校正碼之校正能力。關於該錯誤校正之技術揭示於(例如)國際專利申請案PCT/JP2008/063344或國際專利申請案PCT/JP2008/063345中,且其全部內容併入本申請案中。
如圖1中所展示,在NAND記憶體10中,四個並行操作元件10a至10d經由各自用於複數個位元之四個通道(4ch)並聯連接至驅動控制電路4中之NAND控制器113,使得可並行地致動四個並行操作元件10a至10d。每一通道之NAND記憶體10被劃分為能夠進行記憶體庫交錯之四個記憶體庫,且可同時對每一記憶體晶片之平面0及平面1存取。因此,可幾乎同時對每一通道之多達八個實體區塊(4個記憶體庫×2個平面)執行諸如寫入之處理。關於該記憶體庫交錯之技術揭示於(例如)美國專利公開申請案第12/558965號中,且其全部內容併入本申請案中。
圖4為藉由處理器104實現之韌體之功能組態實例的方塊圖。將藉由處理器104實現之韌體的功能粗略地分類為資料管理單元120、ATA命令處理單元121、安全管理單元122、開機載入程式碼123、初始化管理單元124及除錯支援單元125。
資料管理單元120經由NAND控制器113及第一ECC電路112來控制NAND記憶體10與DRAM 20之間的資料傳送及關於NAND記憶體10之各種功能。ATA命令處理單元121協同資料管理單元120經由ATA控制器111及DRAM控制器114來執行DRAM 20與主機1之間的資料傳送處理。安全管理單元122協同資料管理單元120及ATA命令處理單元121管理各種安全資訊。
當電力供應器開啟時,開機載入程式碼123將管理程式(韌體)自NAND記憶體10載入至SRAM 115上。初始化管理單元124執行驅動控制電路4中之各別控制器及電路之初始化。除錯支援單元125處理自外部經由RS232C介面供應之用於除錯的資料。資料管理單元120、ATA命令處理單元121及安全管理單元122為藉由處理器104執行儲存於SRAM 115中之各種管理程式實現之主要功能單元。
在本實施例中,主要解釋藉由資料管理單元120實現之功能。舉例而言,資料管理單元120執行:ATA命令處理單元121請求NAND記憶體10及DRAM 20作為儲存器件(回應於各種命令,諸如,來自主機之寫入請求、快取記憶體清空(flush)請求及讀取請求)之功能的提供;介於自主機1給出之邏輯位址與NAND記憶體10之實體位址之間的對應關係之管理;藉由快照及日誌進行之管理資訊保護;使用DRAM 20及NAND記憶體10之快速及高效之資料讀出及寫入功能的提供;及NAND記憶體10之可靠性的確保。
圖5為形成於NAND記憶體10及DRAM 20中之功能區塊之圖。組態於DRAM 20上之寫入快取記憶體(WC)21及讀取快取記憶體(RC)22插入於主機1與NAND記憶體10之間。WC 21臨時儲存來自主機1之寫入資料於其中。RC 22臨時儲存將來自NAND記憶體10之讀取資料於其中。藉由資料管理單元120將NAND記憶體10中之區塊分配給前段儲存區(FS:前儲存)12、中間段儲存區(IS:中間儲存)13及主要儲存區(MS:主要儲存)11之各別管理區,以便減少在寫入期間針對NAND記憶體10所進行之抹除的量。FS 12以叢集為單位(亦即,「小單位」)管理來自WC 21之資料且儲存小資料歷經一短的時間段。IS 13以叢集為單位(亦即,「小單位」)管理自FS 12溢位之資料且儲存小資料歷經一長的時間段。MS 11以磁軌為單位(亦即,「大單位」)管理來自WC 21、FS 12及IS 13之資料。藉由以此方式將區塊分配於每一管理區中來管理NAND記憶體10中之區塊的技術揭示於(例如)國際專利申請案PCT/JP08/073950或國際專利申請案PCT/JP08/067600中,且其全部內容併入本申請案中。
詳細解釋圖5中所展示之各別組件之特定功能組態。當主機1對SSD 100執行讀取或寫入時,主機1經由ATA介面2輸入作為邏輯位址之邏輯區塊位址(LBA)。如圖6中所展示,LBA為在其中將自零之序號附加至磁區(大小:512 B)的邏輯位址。在本實施例中,定義由位序等於或高於LBA之第(s+1)個低位序位元之一位元串形成的叢集位址及由位序等於或高於LBA之第(s+t+1)個低位序位元之一位元串形成的磁軌位址,作為用於WC 21、RC 22、FS 12、IS 13及MS 11(其為圖5中所展示之組件)之管理單位。在本實施例中,磁軌之大小與邏輯區塊之大小相同。邏輯區塊為與NAND記憶體10之晶片上之複數個實體區塊相關聯的虛擬區塊。在本實施例中,邏輯區塊與用於若干並聯通道(在此情況下,如圖1中所展示,為四個通道)之實體區塊相關聯。以類似方式,邏輯頁與四個通道之實體頁相關聯。邏輯區塊係選自屬於同一記憶體庫之實體區塊以有效地使用記憶體庫交錯。
<讀取快取記憶體(RC)22>
RC 22為用於回應於一來自主機1之讀取請求而臨時儲存來自NAND記憶體10(FS 12、IS 13及MS 11)之讀取資料的區。基本上係自RC 22將資料傳送至主機1。當執行自WC 21至NAND記憶體10之資料寫入時,使具有同一邏輯位址的在RC 22上之資料無效。
<寫入快取記憶體(WC)21>
WC 21為用於回應於一來自主機1之寫入請求而臨時儲存來自主機1之寫入資料的區。以叢集為單位來管理WC 21上之資料,且以磁區為單位來執行有效資料之寫入及管理。當WC 21中之資源變得不足時,將儲存於WC 21上之資料清空至NAND記憶體10。當在與來自主機1之在RC 22上之資料之邏輯位址相同的邏輯位址中執行寫入時,將最新資料儲存於WC 21中。因此,當在WC 21、RC 22及NAND記憶體10上存在對應於同一邏輯位址之資料時,該資料按照WC 21、RC 22及NAND記憶體10之次序為新的,使得WC 21上之資料被優先化而傳回至主機1。
<主要儲存區(MS)11>
MS 11以磁軌為單位執行資料管理,且大部分使用者資料儲存於MS 11中。將WC 21上之具有許多有效叢集之磁軌(高密度磁軌)直接自WC 21寫入至MS 11。此外,將無法藉由FS 12及IS 13管理之資料輸入至MS 11。使LBA與輸入至MS 11之磁軌之LBA相同的磁軌在一邏輯區塊中無效,且釋放此邏輯區塊。使屬於LBA與輸入至MS 11之磁軌之LBA相同之磁軌的叢集在FS 12、IS 13中無效,且釋放其中所有叢集無效之邏輯區塊。MS 11係由MLC模式之複數個邏輯區塊組成。在本實施例中,磁軌之大小與邏輯區塊之大小相同,使得在FS 12或IS 13中執行之額外記錄處理及在IS 13中執行之緊密(用於僅聚集有效叢集以產生一新邏輯區塊及釋放一無效叢集部分的處理)在MS 11中為不必要的。若磁軌大小小於邏輯區塊大小,則可將在FS 12及IS 13中執行之額外記錄處理及在IS 13中執行之緊密應用於MS 11。
<前段儲存區(FS)12>
FS 12為調適一先進先出(FIFO)結構之緩衝器,其中資料係以叢集為單位來進行管理,且輸入係以聚集複數個叢集之邏輯頁為單位來執行。首先將WC 21上具有較小數目個有效叢集之磁軌(低密度磁軌)寫入至FS 12中。FS 12具有一FIFO結構,其中按資料寫入之次序來配置邏輯區塊。當將LBA與FS 12中存在之叢集之LBA相同的叢集輸入至FS 12時,足以使FS 12中之叢集無效,且不執行重寫。使LBA與輸入至FS 12之叢集之LBA相同的叢集在一邏輯區塊中無效,且釋放邏輯區塊中之所有叢集無效之邏輯區塊。將儲存於達到FS 12之FIFO結構的末端之邏輯區塊中的叢集視為來自主機1之具有低重寫可能性的叢集,且在IS 13之管理下將該邏輯區塊整個重新定位至IS 13。在本實施例中,FS 12係由偽SLC模式之複數個邏輯區塊組成以加速寫入。FS 12可由MLC模式之複數個邏輯區塊組成。具有高更新頻率之資料在通過FS 12時為無效的且僅具有低更新頻率之資料自FS 12溢位,使得FS 12可使具有低更新頻率之資料與具有高更新頻率之資料分離。因此,有可能降低緊密在後續段之IS 13中頻繁發生之可能性。
<中間段儲存區(IS)13>
IS 13為用於儲存具有低重寫可能性之叢集的緩衝器,且以與FS 12相同之方式以叢集為單位來執行資料之管理。當將LBA與IS 13中存在之叢集之LBA相同的叢集輸入至FS 12及IS 13時,足以使IS 13中之叢集無效,且不執行重寫。以與FS 12類似之方式,IS 13具有一清單結構,其中自首先被寫入資料之邏輯區塊(自首先自FS 12重新定位之邏輯區塊)依次配置邏輯區塊;然而,不同於FS 12的是,IS 13執行緊密。當IS 13之容量飽和或用於FS 12及IS 13之管理表飽和時,執行緊密(自IS 13聚集有效叢集且將其重寫至IS 13)或重組(將FS 12及IS 13之叢集整合至一磁軌中且將其清空至MS 11)。在本實施例中,IS 13係由MLC模式及偽SLC模式之邏輯區塊的混合物組成。換言之,自FS 12重新定位至IS 13之區塊為偽SLC模式之邏輯區塊;然而,當在IS 13中執行緊密時將該區塊重寫至MLC模式之邏輯區塊。當FS 12係由MLC模式之邏輯區塊組成時,IS 13亦僅由MLC模式之邏輯區塊組成。
圖7為說明用於使資料管理單元120控制及管理圖5中所展示之各別組件之管理表的圖。用於管理DRAM 20之表包括一RC管理表23、一WC磁軌表24、一WC磁軌資訊表25、一WC高密度磁軌資訊表26,及一WC低密度磁軌資訊表27。用於管理NAND記憶體10之表包括一磁軌表30、一叢集目錄表31、一叢集表32、一叢集區塊資訊表33,及一邏輯至實體轉譯表40。將用於管理NAND記憶體10之表分類為一前向查詢位址轉譯中所涉及之表及一反向查詢位址轉譯中所涉及之表。前向查詢位址轉譯係用以自資料之LBA獲得實際上儲存該資料的(邏輯區塊位址+叢集位置)。反向查詢位址轉譯係用以自(邏輯區塊位址+叢集位置)獲得資料之LBA。
<RC管理表23>
RC管理表23係用於管理自NAND記憶體10傳送至RC 22之資料。
<WC磁軌表24>
WC磁軌表24為用以自一LBA查詢有關儲存於WC 21上之資料之WC磁軌資訊的雜湊表,且包括針對每一索引之複數個項(標籤),該每一索引為LBA之磁軌位址之最低有效位元(LSB)的少許位元。每一標籤儲存一LBA磁軌位址及指向對應於該磁軌位址之WC磁軌資訊的一指標。
<WC磁軌資訊表25>
WC磁軌資訊表25包括:一WC磁軌最近最少使用(LRU)資訊表25a,其用於藉由使用LRU之雙向連結清單來管理已存取WC磁軌資訊之時間定序;及一WC磁軌自由資訊表25b,其管理一自由WC磁軌資訊數目。當將資料自WC 21清空至NAND記憶體10時,藉由使用WC磁軌LRU資訊表25a獲取最陳舊之已存取磁軌。
WC磁軌資訊對應於存在於WC 21中之複數個磁軌中之一者。
該WC磁軌資訊包括如下各者:
(1)一存在於WC 21中之磁軌位址、一磁軌中之WC 21上之有效叢集的數目、指示每一叢集是否有效之資訊,及WC中指示WC 21中之每一叢集之位置的叢集位置資訊,
(2)指示包括於一叢集中之複數個磁區之中的儲存有效資料之一磁區的資訊(磁區位元映射),及
(3)磁軌狀態資訊(例如,有效、無效、在自ATA傳送資料期間,及在NAND記憶體中進行寫入期間)。在WC磁軌資訊中,在存在有效叢集之儲存位置處管理存在於自身磁軌中之一叢集位址的LSB(t)位元;然而,管理叢集位址之方法為任意的。舉例而言,可管理存在於自身磁軌中之叢集位址的LSB(t)位元自身(參見圖6)。
<WC高密度磁軌資訊表26>
WC高密度磁軌資訊表26係用於管理待寫入至MS 11中之高密度(磁軌中有效叢集之數目等於或多於一特定百分比)磁軌資訊且管理有關高密度磁軌及其數目之WC磁軌資訊。
<WC低密度磁軌資訊表27>
WC低密度磁軌資訊表27係用於管理待寫入至FS 12中之低密度(磁軌中有效叢集之數目少於一特定百分比)磁軌資訊且管理低密度磁軌之叢集的總數目。
<磁軌表30(前向查詢)>
磁軌表30為用於自LBA之磁軌位址獲得磁軌資訊之表。該磁軌資訊包括以下各者:
(1)一邏輯區塊位址(指示儲存磁軌之資料之邏輯區塊的資訊),
(2)一叢集目錄數目(當磁軌中之資料的至少一部分儲存於FS 12或IS 13中時變得有效且當磁軌中之資料儲存於FS 12或IS 13中時指示針對每一磁軌而存在之叢集目錄表之表數目的資訊),及
(3)FS/IS叢集之數目(指示磁軌中儲存於FS 12或IS 13中之叢集的數目且用於判定是否執行重組的資訊)。
<叢集目錄表31(前向查詢)>
叢集目錄表31為用於在磁軌中之資料儲存於FS 12或IS 13中時追蹤邏輯區塊的中間表。針對每一磁軌提供叢集目錄表31。登記於每一叢集目錄表31中之叢集目錄資訊係由指示叢集表32之表數目之資訊(叢集表數目資訊)的陣列組成。一筆資訊係選自藉由LBA之叢集位址之LSB(t)位元中的少許較高位元排列於一叢集目錄表31中的複數筆叢集表數目資訊。
叢集目錄表31包括:一叢集目錄LRU表31a,其用於藉由使用LRU之雙向連結清單以一寫入時間作為參考來管理該叢集目錄資訊(叢集表數目資訊之陣列)連同一對應磁軌位址的時間定序;及一叢集目錄自由資訊表31b,其藉由一雙向連結清單來管理一自由叢集目錄連同一對應磁軌位址。
<叢集表32(前向查詢)>
叢集表32為與叢集目錄表31有關且管理邏輯區塊中之一叢集位置的表,當將磁軌中之資料儲存於FS 12或IS 13中時資料係儲存於該叢集位置處。經由叢集目錄表31間接地自磁軌表30參考叢集表32。叢集表32實際上為針對複數個叢集之(邏輯區塊位址+叢集位置)的陣列。一筆資訊係選自藉由LBA之叢集位址之LSB(t)位元中的少許較低位元排列於一叢集表32中的(邏輯區塊位址+叢集位置)之複數筆叢集表數目資訊。叢集表32亦在其中包括一叢集區塊資訊之數目及關於叢集位置的資訊作為一陣列。
<叢集區塊資訊表33(反向查詢)>
叢集區塊為邏輯區塊之中的以叢集為單位儲存資料的區塊。叢集區塊資訊為用於管理FS 12及IS 13之邏輯區塊的資訊且指示存在於邏輯區塊中之叢集的類型。按FS 12及IS 13中之FIFO的次序來耦接複數個叢集區塊資訊作為一雙向連結清單。
該叢集區塊資訊包括以下各者:
(1)邏輯區塊位址,
(2)有效叢集之數目,及
(3)包括於邏輯區塊中之叢集的LBA。
叢集區塊資訊表33包括一用於管理自由資訊之叢集區塊資訊表33a、一針對FS 12之叢集區塊資訊表33b,及一針對IS 13之叢集區塊資訊表33c。叢集區塊資訊表33a管理未使用之叢集區塊資訊,叢集區塊資訊表33b管理包括於FS 12中之叢集區塊資訊,且叢集區塊資訊表33c管理包括於IS 13中之叢集區塊資訊。以雙向連結清單形式來管理叢集區塊資訊表33a至33c中之每一者。反向查詢位址轉譯之主要用途為IS 13之緊密。使用反向查詢位址轉譯來檢查儲存於作為緊密目標之邏輯區塊中之叢集的類型及將資料重寫至一不同位置。因此,在本實施例中,反向查詢位址轉譯僅將以叢集為單位儲存資料的FS 12及IS 13當作目標。
<邏輯至實體轉譯表40(前向查詢)>
邏輯至實體轉譯表40為用於管理關於邏輯區塊位址與實體區塊位址之間的轉譯及其類似者之資訊的表。對於每一邏輯區塊位址而言,邏輯至實體轉譯表40包括指示屬於一邏輯區塊之複數個實體區塊位址的資訊、指示一邏輯區塊位址之抹除之次數的資訊,及關於一叢集區塊資訊數目之資訊。為了將某一LBA之資料重寫至一不同位置,需要使原始叢集區塊中之LBA無效,使得需要自LBA追蹤叢集區塊。因此,將叢集區塊資訊之識別符儲存於邏輯區塊之由邏輯至實體轉譯表40管理之管理資訊中。
(快照及日誌)
藉由每一管理表所管理之管理資訊,可使主機1中所使用之LBA、SSD 100中所使用之邏輯NAND位址(邏輯區塊位址+偏移)及NAND記憶體10中所使用之實體NAND位址(實體區塊位址+偏移)彼此相關聯,從而可執行主機1與NAND記憶體10之間的資料交換。
以上管理表之中用於NAND記憶體管理的表(諸如,圖7中所展示之磁軌表30、叢集目錄表31、叢集表32、叢集區塊資訊表33及邏輯至實體轉譯表40)係儲存於非揮發性NAND記憶體10之特定區中。在啟動時,將儲存於NAND記憶體10中之每一管理表載入至揮發性DRAM 20之工作區(其由資料管理單元120使用)上,使得每一管理表得以更新。載入至DRAM 20上之每一管理表稱為主表。即使關掉電力時,仍需要將主表復原至在關掉電力之前的狀態,因而需要將該主表儲存於非揮發性NAND記憶體10中的系統。快照指示NAND記憶體10上之整個非揮發性管理表。亦將直接將載入至DRAM 20上之主表儲存於NAND記憶體10中之操作表述為「獲取快照」。日誌指示管理表之改變差異。若針對主表之每一更新獲取一快照,則處理速度變慢且NAND記憶體10中之寫入的次數增加,因而通常僅將作為改變差異之日誌記錄於NAND記憶體10中。亦將在主表中反映日誌並將其儲存於NAND記憶體10中之操作表述為「提交」。
圖8為說明在資料更新時快照及日誌之更新狀態的圖。當資料管理單元120更新資料時,將對主表進行之改變累積於DRAM 20上之日誌(後文中為「DRAM日誌」)中。視管理表之類型而定,直接更新主表且將更新內容累積於DRAM日誌中,或在不直接改變主表的情況下將更新內容記錄於一保全於DRAM日誌上之改變區中。當執行資料讀出或資料寫入時,除了主表外亦參考累積之DRAM日誌。
在資料更新變穩定之後,提交日誌。在提交處理中,必要時在主表中反映DRAM日誌之內容且進一步將其儲存於NAND記憶體10中以使其不變動(nonvolatile)。在諸如處於正常斷電序列中及用於日誌之儲存區變得不足時的場合下將快照儲存於NAND記憶體10中。在完成將日誌或快照寫入NAND記憶體10中時,完成使管理表不變動之處理。用於以此方式使管理資訊不變動之技術揭示於(例如)國際專利申請案PCT/JP2009/052597中,且其全部內容併入本申請案中。
<讀取處理>
簡要地解釋讀取處理。當自ATA命令處理單元121輸入一讀取命令及一作為讀出位址之LBA時,資料管理單元120搜遍RC管理表23及WC磁軌表24以檢查對應於該LBA之資料是否存在於WC 21或RC 22中。在快取記憶體命中之情況下,資料管理單元120讀出WC 21或RC 22之對應於該LBA之資料且將該資料發送至ATA命令處理單元121。
若在RC 22或WC 21中不存在命中,則資料管理單元120搜尋作為搜尋目標之資料儲存於NAND記憶體10之哪一部分中。若資料儲存於MS 11上,則資料管理單元120追蹤LBA→磁軌表30→邏輯至實體轉譯表40以獲得MS 11上之資料。另一方面,若資料儲存於FS 12或IS 13上,則資料管理單元120追蹤LBA→磁軌表30→叢集目錄表31→叢集表32→邏輯至實體轉譯表40以獲得FS 12或IS 13上之資料。
<寫入處理>
(WC 21中之處理)
接下來,根據圖9中所展示之流程圖簡要地解釋寫入處理。在寫入處理中,當自ATA命令處理單元121輸入一寫入命令及一作為寫入位址之LBA時(步驟S100),資料管理單元120將由該LBA指定之資料寫入WC 21中。具體言之,資料管理單元120判斷在WC 21中是否存在對應於寫入請求之自由區(步驟S110),且在WC 21中存在自由區時將由該LBA指定之資料寫入WC 21中(步驟S150)。
另一方面,當WC 21不具有對應於寫入請求之自由區時,資料管理單元120藉由參考用於DRAM管理之各種管理表來清空來自WC 21之資料以將其寫入NAND記憶體10中,藉此產生一自由區。具體言之,資料管理單元120檢查磁軌中之有效叢集的數目(步驟S120),判定一磁軌(其中磁軌中之有效叢集的數目少於一特定百分比)作為低密度磁軌,且將其作為叢集大小之資料清空至作為清空目的地之FS 12(步驟S140)。當清空目的地為FS 12時,以邏輯頁為單位寫入磁軌中之有效叢集。
在步驟S120處之判斷中,當判斷一磁軌中之有效叢集的數目等於或多於特定百分比時,此磁軌被判定為高密度磁軌且作為磁軌大小之資料被清空至作為清空目的地之MS11(步驟130)。當清空目的地為MS 11時,將磁軌大小之資料直接寫入於整個邏輯區塊中。當存在複數個作為寫入目標之邏輯區塊時,藉由使用雙倍速度模式或記憶體庫交錯來改良傳送效率。
以此方式,在WC 21中產生自由區之後,將由LBA指定之資料寫入於WC 21中(步驟S150)。根據寫入於WC 21中之資料或清空至NAND記憶體10之資料來更新用於DRAM管理的各種管理表。
(自WC 21至MS 11之寫入)
接下來,根據圖10及圖11解釋高密度磁軌之自WC 21至MS 11的寫入處理。圖10為說明其操作程序之流程圖,且圖11為說明其操作概念之示意圖。
以如下程序來執行對MS 11之寫入。除了為清空目標之高密度磁軌之外,資料管理單元120可選擇可藉由利用記憶體庫交錯來對其並行執行寫入的複數個高密度磁軌。
1.資料管理單元120在DRAM 20上產生磁軌之資料影像(填補處理)(步驟S200)。具體言之,自NAND記憶體10讀出不存在於WC 21中之叢集及不保持WC 21中之所有磁區的叢集以將其與WC 21中之資料進行整合。
2.資料管理單元120保全來自MS 11之CFB的邏輯區塊(磁軌區塊)(步驟S210)。該磁軌區塊為邏輯區塊之中以磁軌為單位將資料儲存於其中的區塊。
3.資料管理單元120將步驟S200中所產生之磁軌之資料影像寫入步驟S210中所保全之邏輯區塊中(步驟S220)。
4.資料管理單元120檢查來自該磁軌之LBA的磁軌資訊、使該磁軌資訊與對應於經寫入之邏輯區塊的邏輯區塊位址相關聯,且將其登記於用於NAND記憶體管理之所需表中(步驟S230)。
5.資料管理單元120使WC 21及NAND記憶體10中之舊資料無效(步驟S240)。具體言之,資料管理單元120使WC 21中被清空至MS 11之快取資料及NAND記憶體10中用於步驟S200處之填補處理中之資料在管理表上自有效狀態變為無效狀態從而使其無效。
(自WC 21至FS 12之寫入)
接下來,根據圖12及圖13解釋低密度磁軌之自WC 21至FS 12的寫入處理。圖12為說明其操作程序之流程圖,且圖13為說明其操作概念之示意圖。
至FS 12之寫入係藉由以下動作來執行:在DRAM 20上產生叢集之資料影像(填補處理)及藉由使用偽SLC模式在新保全之邏輯區塊(叢集區塊)中以邏輯頁為單位來執行寫入。作為待保全之邏輯區塊,將具有能夠進行寫入的等於或多於一待寫入之資料影像的邏輯頁的FFB優先化。若FFB不存在,則使用CFB。以如下程序來執行FS 12中之寫入。
用於將低密度磁軌之資料自WC 21寫入至FS 12之邏輯區塊(叢集區塊)稱為FS輸入緩衝器(FSIB)。除了為清空目標之低密度磁軌之外,資料管理單元120可涉及其他低密度磁軌,使得待寫入之叢集資料量與偽SLC模式之邏輯區塊邊界一致。
1.資料管理單元120判斷低密度磁軌中之自WC 21輸入的總資料量(步驟S300)。當所判斷之總資料量為小時(亦即,當有效叢集之數目小於特定臨限值時),資料管理單元120將其中可寫入資料之FFB保全為FSIB(步驟S310)。
2.當資料管理單元120判斷低密度磁軌中之自WC 21輸入的總資料量為大時(亦即,當有效叢集之數目等於或大於特定臨限值時),資料管理單元120將CFB保全為FSIB(步驟S320)。此時,將能夠並行寫入資料之複數個邏輯區塊保全為FSIB。
3.資料管理單元120產生待寫入於DRAM 20上之叢集的資料影像(步驟S330)。具體言之,對於不保持WC 21中之所有磁區的叢集而言,資料管理單元120自NAND記憶體10讀出不存在於WC 21上之磁區的資料以將其與WC 21上之磁區的資料進行整合。
4.資料管理單元120將WC 21上之叢集及工作區上所產生之叢集影像寫入於FSIB中(步驟S340)。
5.資料管理單元120將此FSIB上之叢集區塊資訊添加至針對FS之叢集區塊資訊表33b(步驟S350)。
6.資料管理單元120將低密度磁軌上之寫入至FSIB中的叢集目錄資訊連同一對應磁軌位址重新插入至叢集目錄LRU表31a之末端中(步驟S360)。
(自FS 12至IS 13之重新定位)
接下來,根據圖14及圖15解釋自FS 12至IS 13之資料重新定位。圖14為說明其操作程序之流程圖,且圖15為說明其操作概念之示意圖。
資料管理單元120判斷在FS 12之管理下邏輯區塊之數目是否超過邏輯區塊之特定最大數目(步驟S400)。如圖15中所展示,當在FS 12之管理下邏輯區塊之數目超過邏輯區塊之特定最大數目時,資料管理單元120將自FS 12溢位之邏輯區塊直接重新定位至IS 13。在本實施例中,FS 12係由偽SLC模式之複數個邏輯區塊組成,且偽SLC模式之邏輯區塊係自FS 12直接重新定位至IS 13。根據溢位邏輯區塊中有效叢集之數目及其類似者藉由如下規則來判定一處理單位中待重新定位之邏輯區塊的數目(步驟S410)。
自FS 12之最陳舊邏輯區塊起添加經重新定位之邏輯區塊,使得溢位邏輯區塊中之叢集的總數目變得接近於MLC模式之一邏輯區塊的邊界(亦即,接近於一邏輯區塊之叢集的數目(2t )或其倍數(m×2t :m為自然數))。舉例而言,當溢位邏輯區塊中之叢集的數目為介於2t 與2t+1 之間的值時,作為重新定位目標之邏輯區塊的數目增加,使得叢集之數目接近於2t+1 (包括2t+1 )。使叢集之數目接近於MLC模式之一邏輯區塊的邊界以在緊密之後在邏輯區塊中容納儘可能多的有效叢集。
當叢集之數目超過可同時在IS 13中經受緊密之叢集的數目z時,設定邏輯區塊之數目使得叢集之數目等於或小於此叢集數目z。
將上限設定為在一處理中待重新定位之邏輯區塊的數目。設定此極限係為防止在IS 13之管理下邏輯區塊之數目的臨時增加。
將以此方式判定之作為重新定位目標的邏輯區塊自FS 12重新定位至IS 13(步驟S420)。
(IS 13中之緊密及重組)
接下來,根據圖16中所展示之流程圖解釋IS 13中之緊密處理及重組處理。
資料管理單元120判斷在IS 13之管理下邏輯區塊之數目是否超過邏輯區塊之特定最大數目(步驟S500)。當在IS 13之管理下邏輯區塊之數目超過邏輯區塊之最大數目時,資料管理單元120執行對MS 11之資料重新定位(重組處理)及緊密處理以抑制在IS 13之管理下邏輯區塊之數目使其等於或小於邏輯區塊之最大數目(步驟S510)。當資料抹除單位(邏輯區塊)與資料管理單位(叢集)不同時,根據NAND記憶體10之重寫的進行,無效資料使邏輯區塊為多孔(porous)的。當處於該多孔狀態之邏輯區塊增加時,實質上可用之邏輯區塊減少且無法有效地使用NAND記憶體10之儲存區。因此,執行用於聚集有效叢集並將其重寫於一不同邏輯區塊中之稱為緊密之處理。重組處理為將FS 12及IS 13之叢集整合至一磁軌中並將其清空至MS 11的處理。
隨後,更詳細地解釋此實施例之基本部分。如圖17中所展示,用於NAND記憶體管理之表包括一完整自由區塊管理表(CFB管理表)300、一片段自由區塊管理表(FFB管理表)310、一現用區塊管理表(AB管理表)320及一壞區塊管理表(BB管理表)330,其不同於圖7中所展示之管理表。
CFB管理表300係用於管理一CFB。該CFB為一FB,其在使用之前立即抹除一邏輯區塊並在經抹除狀態下被寫入,且可將資料自定位於邏輯區塊頂部處之邏輯頁寫入於其中。在本實施例中,在MS 11、FS 12及IS 13中使用CFB。CFB管理表300包括兩種類型之結構,亦即,傳回清單及獲取清單。傳回FIFO清單係用於保持在特定時間段期間未使用之邏輯區塊及釋放該等邏輯區塊,且其係以抹除之次數來排序。在接收到對CFB之獲取請求後提供分配清單,且按照抹除之次數來排序(具有較少抹除次數之邏輯區塊定位於清單之頂部處)。根據抹除之次數將自傳回清單220a推出之區塊插入至分配清單之中間。當請求CFB之分配時,資料管理單元120自分配清單之頂部取出一CFB且分配該CFB。
FFB管理表310係用於管理一FFB。該FFB為一邏輯區塊,其中儘管將無效資料一直寫入至邏輯頁之中間,但剩餘邏輯頁處於經抹除狀態,且可另外將資料寫入至剩餘邏輯頁。在FS 12及IS 13中使用FFB。在FFB管理表310中,以針對每一數目個自由邏輯頁的雙向清單之形式來管理用作FFB之邏輯區塊位址。FFB管理表310管理用於辨別寫入有資料之邏輯頁(無效頁)與未寫入有資料之邏輯頁(未使用之頁)的資訊。
AB管理表320為邏輯區塊(現用區塊AB)之清單,其中將用途自FB分配至MS 11、FS 12及IS 13,且各別項保持該邏輯區塊位址。將最先登記之邏輯區塊定位於頂部處。舉例而言,AB管理表係用於再新處理。
BB管理表330係用於以構成邏輯區塊之個別實體區塊為單位來管理壞區塊BB。舉例而言,在BB管理表330中,將無法正常完成資料抹除之實體區塊登記為壞區塊BB。
圖18為本實施例中之基本部分之功能組態的方塊圖。NAND記憶體10在其中儲存:一使用者資料(儲存單元)201,諸如儲存使用者資料之MS 11、FS 12及IS 13;圖7及圖17中所展示之管理表中用於DRAM管理的表除外的用於NAND記憶體管理之各種管理表(圖7中之磁軌表30、叢集目錄表31、叢集表32、叢集區塊資訊表33、邏輯至實體轉譯表40、CFB管理表300、FFB管理表310、AB管理表320及BB管理表330)202,其儲存於NAND記憶體10上之特定儲存區中作為快照;及一NAND日誌203,其包括一差異日誌(作為NAND管理表202之更新前後之差異資訊)、一現用日誌及一待用日誌,如在NAND管理表202中,該NAND日誌203儲存於NAND記憶體10上之特定儲存區(非揮發性日誌區)中。
DRAM 20包括一充當WC 21及RC 22之區。此外,DRAM 20包括一儲存主表204的區,主表204為載入至DRAM 20上之NAND管理表202。另外,DRAM 20包括一儲存DRAM日誌205之區,該DRAM日誌205包括為更新主表204時更新前後之差異資訊的差異日誌以及現用日誌及待用日誌。
作為資料管理單元之控制器120包括一讀取及寫入控制單元210、一日誌控制單元211、一日誌反映單元212、一操作狀態管理單元213及一管理資訊復原單元214。本發明中之每一實施例中的每一功能區塊可藉由硬體及軟體中之任一者或其組合來實現。因此,以下大體上自每一功能區塊之功能的觀點來解釋每一功能區塊,從而使得清楚看出每一功能區塊係硬體及軟體中之任一者。該等功能是實現為硬體或是軟體係視特定實施例或強加於整個系統上之設計約束而定。對於每一特定實施例而言,熟習此項技術者可藉由各種方法實現此等功能,且判定此實現係包括於本發明之範疇內。
讀取及寫入控制單元210基於主表204及DRAM日誌205控制讀出及寫入。舉例而言,讀取及寫入控制單元210根據自主機1經由主機介面2輸入之命令及邏輯位址來執行對DRAM 20(WC 21)之資料寫入及自DRAM 20(RC 22)之資料讀出。此外,舉例而言,讀取及寫入控制單元210基於邏輯至實體轉譯表40及其類似者執行自DRAM 20(WC 21)至NAND記憶體10之資料寫入及自NAND記憶體10至DRAM 20(RC 22)之資料讀出。
舉例而言,日誌控制單元211執行:用於在系統啟動時將作為主表204的儲存於NAND記憶體10中之各種NAND管理表(快照)202傳送至DRAM 20的處理;用於累積及儲存差異日誌之處理,該差異日誌為當更新主表204之事件發生時(諸如,當讀取及寫入控制單元210執行對NAND記憶體10之資料寫入時)DRAM日誌205中之在主表204之更新前後的差異資訊;及用於在建立一特定條件時(諸如,當正常斷電序列發生或DRAM 20上之日誌儲存區(用於儲存DRAM日誌205之區)變得不足時)將DRAM 20上之主表儲存於NAND記憶體10中以作為快照的快照處理。
當建立一特定條件時(諸如,當DRAM 20中之日誌的量(DRAM日誌205之量)達到某一量或達到在經更新之管理表(主表204)之間達成匹配的點時),日誌反映單元212另外將DRAM日誌205儲存於包括NAND記憶體10中之邏輯區塊的NAND日誌(非揮發性日誌)203中,且執行用於在主表204中反映DRAM日誌205的提交處理。當執行快照處理或提交處理時,使已累積於DRAM 20上之DRAM日誌205無效。用於儲存該日誌之邏輯區塊可為偽SLC模式下之邏輯區塊以達成高速度。
操作狀態管理單元213執行用於偵測不正確斷電之日誌記錄處理,其中在系統啟動之後在日誌反映單元212將第一差異日誌記錄於NAND日誌203之前將指示系統正運作之現用日誌記錄於NAND日誌203中,且當執行正常系統暫停時,指示系統暫停之待用日誌係在差異日誌或現用日誌之後記錄於NAND日誌203中。
管理資訊復原單元214執行:用於在系統啟動時基於現用日誌及待用日誌之經記錄狀態來偵測NAND日誌203中之現用日誌、差異日誌及待用日誌中的至少一者及判斷上次執行了正常系統暫停或是執行了不正確斷電序列的處理;及用於在判斷執行了不正確斷電序列時改變管理表以使得釋放所有FFB並在其後將經釋放的所有FFB用作CFB的處理。
圖19為說明儲存現用日誌、待用日誌及差異日誌之程序之流程圖。操作狀態管理單元213管理作為系統之SSD 100是處於SSD正運作之現用狀態或是SSD暫停之待用狀態以作為電力模式資訊。
假設在電力開啟(將電力供應至電力供應電路5,產生內部電力供應及電力開啟重設信號,且初始化驅動控制電路4,藉以系統啟動)之後,操作狀態管理單元213立即將SSD 100之操作狀態辨識為待用狀態(步驟S1100)。
在電力開啟(待用狀態)之後,在接收到具有資料管理單元120自主機1對NAND記憶體10進行存取之可能性之命令後(例如,在初始化完成時、在請求開機時,及在請求資料存取時),操作狀態管理單元213將現用日誌儲存於NAND日誌203中,且其後,將SSD 100之操作狀態轉為現用狀態(步驟S1101)。
當一事件發生使得需要更新主表204時(諸如,當執行對NAND記憶體10之資料寫入時),日誌控制單元211將差異日誌(其為主表204之更新前後之差異資訊)累積於DRAM日誌205中(步驟S1102)。
當建立一特定條件時,日誌反映單元212另外將DRAM日誌205(差異日誌)儲存於包括NAND記憶體10之邏輯區塊的NAND日誌203中,且執行用於在主表204中反映DRAM日誌205的提交處理(步驟S1103)。
在來自主機1之暫停請求(待用請求)時,操作狀態管理單元213執行用於將WC 21上之資料寫入NAND記憶體10中以使資料不變動的清空處理。與清空處理一起,日誌控制單元211將差異日誌(其為主表204之更新前後的差異資訊)累積於DRAM日誌205中(步驟S1104)。
日誌反映單元212另外將DRAM日誌205(差異日誌)儲存於包括NAND記憶體10之邏輯區塊的NAND日誌203中,且執行用於在主表204中反映DRAM日誌205的提交處理。此外,當建立一特定條件時,日誌控制單元211執行快照處理(步驟S1105)。
操作狀態管理單元213將SSD 100之操作狀態轉為待用狀態,且在差異日誌之後將待用日誌儲存於NAND日誌203中。在正常地寫入待用日誌之後,SSD 100可執行正常斷電序列(步驟S1106)。
圖20A說明當執行正常斷電序列時在下一次系統啟動時之NAND日誌203的狀態,且圖20B說明當已發生不正確斷電時在下一次系統啟動時之NAND日誌203的狀態。
如圖20A中所展示,在正常斷電之情況下,首先記錄現用日誌,接下來記錄差異日誌(差異日誌可能不存在),且最後記錄待用日誌。以此方式,在正常序列之情況下,在待用狀態下不更新資料。因為在接收到來自主機1之暫停請求之後執行該正常斷電序列,所以不執行現用狀態下之斷電。
在電力開啟之後,管理資訊復原單元214在初始化處理中自NAND記憶體10讀取NAND日誌203,且自前部開始掃描其內容。通常,內容係自現用日誌開始,及接著差異日誌,且接著為待用日誌,且其後重複此序列,且最終該內容以待用日誌結束。當首先記錄現用日誌且最後記錄待用日誌時,管理資訊復原單元214判斷執行了正常斷電序列。
另一方面,如圖20B中所展示,在不正確斷電之情況下,僅存在現用日誌且不在最後記錄待用日誌。亦即,藉由儲存現用日誌可偵測不正確斷電,其中「執行至NAND記憶體10中之寫入,然而,日誌之提交尚未完成」。當認識到最末之日誌並非待用日誌(為現用日誌或差異日誌)時,管理資訊復原單元214判斷存在不正確之斷電。
在不存在現用日誌且僅存在待用日誌的情況下,在電力開啟之後,當在將第一差異日誌記錄於NAND日誌203之前發生不正確之斷電時,歸因於先前之正常斷電而最後記錄待用日誌,且因此,無法將不正確斷電與正常斷電辨別開。因此,如在本實施例中,有可能藉由使用現用日誌及待用日誌而以一簡單組態來偵測不正確斷電。
接下來解釋在管理資訊復原單元214判斷不正確之斷電已發生時所執行的處理。在MLC NAND記憶體中,當將上部頁添加至一已記錄有資料之實體區塊時,過去所記錄之下部頁的內容可能丟失,且在不限於SLC/MLC NAND記憶體之NAND記憶體中,在相對於一實體頁執行寫入之後可能無法讀取該實體區塊中之資料。為了處理此等可能性,在本實施例中,採用一FFB,其為邏輯區塊,其中儘管將無效資料一直寫入至邏輯頁之中間,但剩餘邏輯頁處於經抹除狀態(如圖21中所展示)。在該FFB中,相對於剩餘邏輯頁執行額外寫入。在本實施例中,在FS 12及IS 13中採用FFB。當作FS 12及IS 13來管理之FFB中的無效資料係FS 12及IS 13中之最初有效之資料,然而,其係自WC 21重寫至諸如MS 11之另一處且在該邏輯區塊中變得無效。
為了實現對FFB之額外寫入,在圖7中所展示之針對各別邏輯區塊的叢集區塊資訊表33中管理用於辨別在抹除之後已寫入有資料的邏輯頁(有效頁)與尚未寫入有資料之未使用頁的資訊(FFB管理表310中所管理之FFB管理資訊)。需要將FFB管理資訊寫入至NAND記憶體10中以使FFB管理資訊不變動,從而可在SSD 100之斷電期間使用該資訊。
然而,當不正確之斷電發生同時將資料寫入至FFB中且將FFB管理資訊寫入至NAND記憶體10中以使該資訊不變動(提交)時,問題發生了。具體言之,在下次啟動SSD時,在將資料寫入至具有未使用頁之FFB中之某一邏輯頁中之後,當在將資料提交至NAND記憶體10之前發生不正確斷電時(已將資料寫入至FFB管理資訊之邏輯頁中),FFB管理資訊處於未寫入狀態,儘管資料實際上已寫入至FFB中。在此狀態下,出於管理目的,將該邏輯頁視為未經寫入(未使用)的,且因此,試圖重新將資料寫入於邏輯頁中,且寫入錯誤(資料錯亂)可能發生。
因此,在日誌或快照已寫入至NAND記憶體10中之時間點處,管理表變得不變動。當在將日誌或快照寫入至NAND記憶體10中之前執行不正確斷電序列時,在下一次啟動時,管理表之狀態返回至上次提交之時間點。應注意,雖然管理表之狀態返回,但NAND記憶體10中之FFB的額外記錄狀態不返回。
圖22為說明資料管理單元120在系統啟動時所執行之處理的流程圖。
管理資訊復原單元214在系統啟動時偵測NAND日誌203中之現用日誌、差異日誌及待用日誌中的至少一者,且基於現用日誌及待用日誌之經記錄狀態來判斷上次執行正常系統暫停或是執行不正確之斷電(步驟S1200)。
當判斷執行了正常系統暫停(步驟S1200處之「是」)時,管理資訊復原單元214基於最新之快照及差異日誌來復原管理表(主表204及DRAM日誌205)(步驟S1201)。
當判斷執行了不正確斷電(步驟S1200處之「否」)時,管理資訊復原單元214編輯及改變此等筆FFB管理資訊,使得在下次寫入資料時,在抹除邏輯區塊之後執行寫入。具體言之,在不正確之斷電之後,管理資訊復原單元214在啟動時執行用於將所有FFB重新定位至CFB之處理,亦即,用於重新定位FFB管理表310中所管理之所有邏輯區塊(邏輯區塊位址)使其在CFB管理表300之控制下的處理。因此,解決了FFB中之寫入狀態與FFB管理資訊之間的不一致性(步驟S1202)。
在執行用於將所有FFB重新定位至CFB之處理之後,管理資訊復原單元214基於最新之快照及差異日誌來復原管理表(主表204及DRAM日誌205)(步驟S1203)。
日誌反映單元212基於所復原之主表204及DRAM日誌205再次獲取一快照(步驟S1204)。
因為在額外記錄之前僅將無效資料儲存於FFB中,所以即使在將邏輯區塊重新定位至CFB且其後將其抹除時亦將不存在問題。又,在CFB之情況下,當不正確斷電發生時,NAND記憶體10中之CFB的管理表與狀態之間發生不一致,且儘管資料已寫入於CFB中但CFB管理資訊仍處於未寫入狀態之該類狀況發生。然而,因為緊接在寫入之前在CFB中執行抹除,所以上述寫入錯誤不發生。此外,當偵測到不正確之斷電時,再次獲取一快照,以使非揮發性資訊返回至一穩定狀態。
在本實施例中,藉由添加操作狀態管理單元213及管理資訊復原單元214來實現對不正確斷電之偵測及FFB中之寫入狀態與FFB管理資訊之間的不一致之解決。
在根據本實施例之SSD 100中,在系統啟動之後,在將第一差異日誌記錄於NAND日誌203中之前,將指示系統正運作之現用日誌記錄於NAND日誌203中,且在正常系統暫停時在差異日誌之後將指示系統暫停之待用日誌另外記錄於NAND日誌203中。在系統啟動時,基於NAND日誌203中之現用日誌及待用日誌的經記錄狀態來判斷上次已執行正常系統暫停或是已發生不正確斷電,藉此使得能夠容易並可靠地偵測不正確之斷電。
此外,在根據本實施例之SSD 100中,當偵測到不正確之斷電時,因為FFB經重新定位而處於CFB之控制下,所以FFB中之寫入狀態與FFB管理資訊之間的不一致得以解決,且可預先防止寫入錯誤之發生。因此,有可能使用NAND型快閃記憶體來建構具有高可靠性之記憶體系統。
(第二實施例)
圖23為安裝有SSD 100之PC 1200之實例的透視圖。PC 1200包括一主體1201及一顯示單元1202。顯示單元1202包括一顯示外殼1203及一容納於顯示外殼1203中之顯示器件1204。
主體1201包括一底盤1205、一鍵盤1206及一作為點擊器件之觸控板1207。底盤1205在其中包括一主電路板、一光碟器件(ODD)單元、一卡片槽及SSD 100。
卡片槽經提供而鄰近於底盤1205之周邊壁。該周邊壁具有一面向卡片槽之開口1208。使用者可經由開口1208將一額外器件自底盤1205外部插入至卡片槽中或自卡片槽移除一額外器件。
SSD 100在安裝於PC 1200上之狀態下可用來替代習知硬碟驅動器(HDD)或在插入至包括於PC 1200中之卡片槽中的狀態下可用作一額外器件。
圖24為安裝有SSD 100之PC 1200之系統組態實例的圖。PC 1200包括一CPU 1301、一北橋晶片1302、一主記憶體1303、一視訊控制器1304、一音訊控制器1305、一南橋晶片1309、一基本輸入/輸出系統唯讀記憶體(BIOS-ROM)1310、SSD 100、一ODD單元1311、一嵌入式控制器/鍵盤控制器IC(EC/KBC)1312及一網路控制器1313。
CPU 1301為用於控制PC 1200之操作的處理器,且執行自SSD 100載入至主記憶體1303上之作業系統(OS)。另外,當ODD單元1311能夠對一經安裝之光碟執行讀取處理及寫入處理中之至少一者時,CPU 1301執行該處理。
此外,CPU 1301執行儲存於BIOS-ROM 1310中之系統BIOS。該系統BIOS為用於控制PC 1200之硬體的電腦程式。
北橋晶片1302為將CPU 1301之區域匯流排連接至南橋晶片1309之橋接器件。北橋晶片1302具有一用於控制對主記憶體1303之存取的記憶體控制器。
此外,北橋晶片1302具有執行經由加速圖形埠(AGP)匯流排及其類似者與視訊控制器1304通信及與音訊控制器1305通信的功能。
主記憶體1303在其中臨時儲存電腦程式及資料,且充當CPU 1301之工作區。舉例而言,主記憶體1303係由DRAM組成。
視訊控制器1304為用於控制用作PC 1200之顯示監視器之顯示單元1202的視訊重現控制器。
音訊控制器1305為用於控制PC 1200之揚聲器1306之音訊重現控制器。
南橋晶片1309控制低接腳數(LPC)匯流排1314上之每一器件及周邊組件互連(PCI)匯流排1315上之每一器件。此外,南橋晶片1309經由ATA介面控制SSD 100,該SSD 100為儲存各種類型之軟體及資料的記憶體器件。
PC 1200以磁區為單位對SSD 100進行存取。經由ATA介面將寫入命令、讀取命令、清空命令及其類似者輸入至SSD 100。
南橋晶片1309具有控制對BIOS-ROM 1310及ODD單元1311之存取的功能。
EC/KBC 1312為一單晶片微電腦,用於電力管理之嵌入式控制器及用於控制鍵盤(KB)1206及觸控板1207之鍵盤控制器整合於該單晶片微電腦中。
EC/KBC 1312具有基於使用者對電力按鈕之操作來開啟/關掉PC 1200之功能。舉例而言,網路控制器1313為一通信器件,其執行與諸如網際網路之外部網路的通信。
根據第二實施例之PC 1200將電力供應至SSD 100且亦發出一暫停請求(待用請求)至SSD 100。即使當不正確地阻斷自PC 1200至SSD 100之電力供應時,亦可預先防止寫入錯誤之發生。
對於熟習此項技術者而言,將容易出現額外優點及修改。因此,本發明在其較寬泛態樣中並不限於本文中所展示及描述之特定細節及代表性實施例。因此,在不脫離如由隨附申請專利範圍及其等效物界定之一般發明性概念之精神或範疇的情況下可進行各種修改。
1...主機器件
2...進階附接技術介面(ATA I/F)
3...通信介面
4...驅動控制電路
5...電力供應電路
6...發光二極體(LED)
7...溫度感測器
8...熔絲
10...NAND型快閃記憶體
10a...並行操作元件
10b...並行操作元件
10c...並行操作元件
10d...並行操作元件
11...主要儲存區
12...前段儲存區
13...中間段儲存區
20...DRAM
21...寫入快取記憶體
22...讀取快取記憶體
23...RC管理表
24...WC磁軌表
25...WC磁軌資訊表
25a...WC磁軌最近最少使用(LRU)資訊表
25b...WC磁軌自由資訊表
26...WC高密度磁軌資訊表
27...WC低密度磁軌資訊表
30...磁軌表
31...叢集目錄表
31a...叢集目錄LRU表
31b...叢集目錄自由資訊表
32...叢集表
33...叢集區塊資訊表
33a...用於管理自由資訊之叢集區塊資訊表
33b...針對FS之叢集區塊資訊表
33c...針對IS之叢集區塊資訊表
40...邏輯至實體轉譯表
100...固態硬碟(SSD)
101...資料存取匯流排
102...第一電路控制匯流排
103...第二電路控制匯流排
104...處理器
105...開機ROM
106...ROM控制器
107...時脈控制器
108...I2 C電路
109...並聯IO(PIO)電路
110...串聯IO(SIO)電路
111...ATA介面控制器(ATA控制器)
112...第一錯誤檢查及校正(ECC)電路
113...NAND控制器
114...DRAM控制器
115...靜態隨機存取記憶體(SRAM)
116...SRAM控制器
117...NAND介面
118...第二ECC電路
119...用於直接記憶體存取(DMA)傳送控制之DMA控制器
120...資料管理單元
121...ATA命令處理單元
122...安全管理單元
123...開機載入程式碼
124...初始化管理單元
125...除錯支援單元
200...用於除錯及製造檢驗之裝置
201...使用者資料(儲存單元)
202...NAND管理表
203...NAND日誌
204...主表
205...DRAM日誌
210...讀取及寫入控制單元
211...日誌控制單元
212...日誌反映單元
213...操作狀態管理單元
214...管理資訊復原單元
300...完整自由區塊管理表(CFB管理表)
310...片段自由區塊管理表(FFB管理表)
320...現用區塊管理表(AB管理表)
330...壞區塊管理表(BB管理表)
1200...PC
1201...主體
1202...顯示單元
1203...顯示外殼
1204...顯示器件
1205...底盤
1206...鍵盤
1207...觸控板
1208...開口
1301...CPU
1302...北橋晶片
1303...主記憶體
1304...視訊控制器
1305...音訊控制器
1306...揚聲器
1309...南橋晶片
1310...基本輸入/輸出系統唯讀記憶體(BIOS-ROM)
1311...ODD單元
1312...嵌入式控制器/鍵盤控制器IC(EC/KBC)
1313...網路控制器
1314...低接腳數(LPC)匯流排
1315...周邊組件互連(PCI)匯流排
BL0...位元線
BL1...位元線
BL2...位元線
BL3...位元線
BLp...位元線
MT...記憶胞電晶體
SGD...閘極線
SGS...閘極線
SL...源極線
ST1...選擇電晶體
ST2...選擇電晶體
WL0...字線
WL1...字線
WL2...字線
WL3...字線
WLq...字線
圖1為SSD之組態實例之方塊圖。
圖2A及圖2B為說明包括於NAND記憶體晶片中之一區塊之組態實例及四元資料儲存系統中之臨限分布的圖。
圖3為驅動控制電路之硬體內部組態實例的方塊圖。
圖4為處理器之功能組態實例的方塊圖。
圖5為形成於NAND記憶體及動態隨機存取記憶體(DRAM)中之功能組態的方塊圖。
圖6為說明LBA邏輯位址之圖。
圖7為說明資料管理單元中之管理表之組態實例的圖。
圖8為概念性地說明快照及日誌之產生狀態的圖。
圖9為說明寫入快取記憶體(WC)中之寫入處理的流程圖。
圖10為說明自WC至主要儲存區(MS)之寫入處理之操作程序的流程圖。
圖11為說明自WC至MS之寫入處理之操作概念的示意圖。
圖12為說明低密度磁軌自WC至前段儲存區(FS)之寫入處理之操作程序的流程圖。
圖13為說明低密度磁軌自WC至FS之寫入處理之操作概念的示意圖。
圖14為說明自FS至中間段儲存區(IS)之資料重新定位之操作程序的流程圖。
圖15為說明自FS至IS之資料重新定位之操作概念的示意圖。
圖16為說明IS中之重組處理及緊密處理之操作程序的流程圖。
圖17為說明其他管理表之圖。
圖18為說明存在於本發明中之基本部分之組態的功能方塊圖。
圖19為說明儲存現用日誌、待用日誌及差異日誌之程序之流程圖。
圖20A及圖20B分別為說明當執行正常斷電序列及當已發生異常斷電時之現用日誌及待用日誌的圖。
圖21為說明片段自由區塊(FFB)之概念圖。
圖22為說明資料管理單元在系統啟動時所執行之處理的流程圖。
圖23為安裝有SSD之PC之全景圖。
圖24為安裝有SSD之PC之系統組態實例的圖。
(無元件符號說明)

Claims (30)

  1. 一種記憶體系統,其包含:一第一儲存單元,其為揮發性的;一第二儲存單元,其為非揮發性的且連接至該第一儲存單元;一讀取/寫入控制單元,其基於一管理表執行自該第二儲存單元之資料讀取及對該第二儲存單元之資料寫入,在該管理表中一邏輯位址係與該第二儲存單元中之一資料儲存位置相關聯;一日誌控制單元,其將該管理表傳送至該第一儲存單元,且在更新該第一儲存單元上之該管理表之一事件發生時,將該管理表之更新前後之差異資訊作為一差異日誌儲存至該第一儲存單元中;一日誌反映單元,其執行提交處理,該提交處理係用於將該差異日誌儲存於該第二儲存單元中且在建立一第一條件時在儲存於該第一儲存單元中之該管理表中反映該差異日誌;一操作狀態管理單元,其在系統啟動之後在該日誌反映單元將該差異日誌儲存至該第二儲存單元中之前將一第一日誌儲存至該第二儲存單元中,且在執行正常系統暫停時將一第二日誌儲存至該第二儲存單元中;及一管理資訊復原單元,其偵測儲存於該第二儲存單元中之該第一日誌、該差異日誌及該第二日誌中的至少一者,且判斷是否已執行正常系統暫停。
  2. 如請求項1之記憶體系統,其中該日誌反映單元及該操作狀態管理單元另外將該第一日誌、該差異日誌及該第二日誌儲存至該第二儲存單元中之一非揮發性日誌區中,該非揮發性日誌區包括作為一資料抹除單位之區塊。
  3. 如請求項2之記憶體系統,其中該操作狀態管理單元在該系統啟動之後在初始化已完成、請求啟動或請求資料存取之任一時間點處將該第一日誌儲存至該非揮發性日誌區中。
  4. 如請求項2之記憶體系統,其中該操作狀態管理單元在自主機裝置接收到一系統暫停請求時將該第二日誌儲存至該非揮發性日誌區中。
  5. 如請求項4之記憶體系統,其中該操作狀態管理單元在自該主機裝置接收到該系統暫停請求時將該第一儲存單元中之資料清空至該第二儲存單元中。
  6. 如請求項1之記憶體系統,其中該管理資訊復原單元在該第二日誌未儲存於該第二儲存單元中時判斷未執行該正常系統暫停。
  7. 如請求項2之記憶體系統,其中該管理資訊復原單元在該第二日誌未儲存於該非揮發性日誌區之一末端處時判斷未執行該正常系統暫停。
  8. 如請求項1之記憶體系統,其中該第一條件包括以下情況中之至少一者:儲存於該第一儲存單元中之該差異日誌的一量已達到一特定值的一情況;及該管理表之更新已達到一點,而在該點達成一致的一情況。
  9. 如請求項1之記憶體系統,其中該日誌控制單元執行快照處理,該快照處理係用於在建立一第二條件時將儲存於該第一儲存單元中之該管理表儲存至該第二儲存單元中。
  10. 如請求項9之記憶體系統,其中該第二條件包括以下情況中之至少一者:執行該正常系統暫停之一情況;及該第一儲存單元中該差異日誌之一儲存區變得不足的一情況。
  11. 如請求項1之記憶體系統,其中該日誌反映單元在已執行該提交處理之後使儲存於該第一儲存單元中之該差異日誌無效。
  12. 如請求項9之記憶體系統,其中該日誌控制單元在已執行該快照處理之後使儲存於該第一儲存單元中之該差異日誌無效。
  13. 如請求項1之記憶體系統,其中該第二儲存單元包括:一第一區塊,在執行一抹除操作之後自一頂部頁在該第一區塊中執行寫入;及一第二區塊,於該第二區塊中寫入無效資料直至一頁之一中間,且在不執行該抹除操作的情況下另外對無資料寫入於其中之一頁執行寫入;及該管理資訊復原單元在判斷未執行該正常系統暫停時改變該管理表,從而釋放該第二區塊並將其用作該第一區塊。
  14. 如請求項2之記憶體系統,其中該第二儲存單元包括:一第一區塊,在執行一抹除操作之後自一頂部頁在該第一區塊中執行寫入;及一第二區塊,於該第二區塊中寫入無效資料直至一頁之一中間,且在不執行該抹除操作的情況下另外對無資料寫入於其中之一頁執行寫入;及該管理資訊復原單元在判斷未執行該正常系統暫停時改變該管理表,從而釋放該第二區塊並將其用作該第一區塊。
  15. 如請求項6之記憶體系統,其中該第二儲存單元包括:一第一區塊,在執行一抹除操作之後自一頂部頁在該第一區塊中執行寫入;及一第二區塊,於該第二區塊中寫入無效資料直至一頁之一中間,且在不執行該抹除操作的情況下另外對無資料寫入於其中之一頁執行寫入;及該管理資訊復原單元在判斷未執行該正常系統暫停時改變該管理表,從而釋放該第二區塊並將其用作該第一區塊。
  16. 一種控制一記憶體系統之方法,該記憶體系統包括為揮發性之一第一儲存單元及為非揮發性且連接至該第一儲存單元之一第二儲存單元,該方法包含以下步驟:讀取/寫入控制處理,其用於基於一管理表執行自該第二儲存單元之資料讀出及對該第二儲存單元之資料寫入,在該管理表中一邏輯位址係與該第二儲存單元中之一資料儲存位置相關聯;日誌控制處理,其用於將該管理表傳送至該第一儲存單元,且在更新該第一儲存單元上之該管理表之一事件發生時,將該管理表之更新前後之差異資訊作為一差異日誌儲存至該第一儲存單元中;日誌反映處理,其用於執行提交處理,該提交處理係用於將該差異日誌儲存於該第二儲存單元中且在建立一第一條件時在儲存於該第一儲存單元中之該管理表中反映該差異日誌;操作狀態管理處理,其用於在系統啟動之後在將該差異日誌儲存至該第二儲存單元中之前將一第一日誌儲存至該第二儲存單元中,且在執行正常系統暫停時將一第二日誌儲存至該第二儲存單元中;及管理資訊復原處理,其用於偵測儲存於該第二儲存單元中之該第一日誌、該差異日誌及該第二日誌中的至少一者,且判斷是否已執行正常系統暫停。
  17. 如請求項16之方法,其中該日誌反映處理及該操作狀態管理處理包括:另外將該第一日誌、該差異日誌及該第二日誌儲存至該第二儲存單元中之一非揮發性日誌區中,該非揮發性日誌區包括作為一資料抹除單位之區塊。
  18. 如請求項17之方法,其中該操作狀態管理處理包括:在該系統啟動之後在初始化已完成、請求啟動或請求資料存取之任一時間點處將該第一日誌儲存至該非揮發性日誌區中。
  19. 如請求項17之方法,其中該操作狀態管理處理包括:在自主機裝置接收到一系統暫停請求時將該第二日誌儲存至該非揮發性日誌區中。
  20. 如請求項19之方法,其中該操作狀態管理處理包括:在自該主機裝置接收到該系統暫停請求時將該第一儲存單元中之資料清空至該第二儲存單元中。
  21. 如請求項16之方法,其中該管理資訊復原處理包括:在該第二日誌未儲存於該第二儲存單元中時判斷未執行該正常系統暫停。
  22. 如請求項17之方法,其中該管理資訊復原處理包括:在該第二日誌未儲存於該非揮發性日誌區之一末端處時判斷未執行該正常系統暫停。
  23. 如請求項16之方法,其中該第一條件包括以下情況中之至少一者:儲存於該第一儲存單元中之該差異日誌的一量已達到一特定值的一情況;及該管理表之更新已達到一點,而在該點達成一致的一情況。
  24. 如請求項16之方法,其中該日誌控制處理包括:執行快照處理,該快照處理係用於在建立一第二條件時將儲存於該第一儲存單元中之該管理表儲存至該第二儲存單元中。
  25. 如請求項24之方法,其中該第二條件包括以下情況中之至少一者:執行該正常系統暫停之一情況;及該第一儲存單元中該差異日誌之一儲存區變得不足的一情況。
  26. 如請求項16之方法,其中該日誌反映處理包括:在已執行該提交處理之後使儲存於該第一儲存單元中之該差異日誌無效。
  27. 如請求項24之方法,其中該日誌控制處理包括:在已執行該快照處理之後使儲存於該第一儲存單元中之該差異日誌無效。
  28. 如請求項16之方法,其中該讀取/寫入控制處理包括管理該第二儲存單元,該第二儲存單元包括:一第一區塊,在執行一抹除操作之後自一頂部頁在該第一區塊執行寫入;及一第二區塊,於該第二區塊中寫入無效資料直至一頁之一中間,且在不執行該抹除操作的情況下另外對無資料寫入於其中之一頁執行寫入;及該管理資訊復原處理包括在判斷未執行該正常系統暫停時改變該管理表,從而釋放該第二區塊並將其用作該第一區塊。
  29. 如請求項17之方法,其中該讀取/寫入控制處理包括管理該第二儲存單元,該第二儲存單元包括:一第一區塊,在執行一抹除操作之後自一頂部頁在該第一區塊中執行寫入;及一第二區塊,於該第二區塊中寫入無效資料直至一頁之一中間,且在不執行該抹除操作的情況下另外對無資料寫入於其中之一頁執行寫入;及該管理資訊復原處理包括在判斷未執行該正常系統暫停時改變該管理表,從而釋放該第二區塊並將其用作該第一區塊。
  30. 如請求項21之方法,其中該讀取/寫入控制處理包括管理該第二儲存單元,該第二儲存單元包括:一第一區塊,在執行一抹除操作之後自一頂部頁在該第一區塊中執行寫入;及一第二區塊,於該第二區塊中寫入無效資料直至一頁之一中間,且在不執行該抹除操作的情況下另外對無資料寫入於其中之一頁執行寫入;及該管理資訊復原處理包括在判斷未執行該正常系統暫停時改變該管理表,從而釋放該第二區塊並將其用作該第一區塊。
TW098145326A 2008-12-27 2009-12-28 記憶體系統及控制記憶體系統的方法 TWI437431B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008335559A JP5317690B2 (ja) 2008-12-27 2008-12-27 メモリシステム

Publications (2)

Publication Number Publication Date
TW201102818A TW201102818A (en) 2011-01-16
TWI437431B true TWI437431B (zh) 2014-05-11

Family

ID=42287930

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098145326A TWI437431B (zh) 2008-12-27 2009-12-28 記憶體系統及控制記憶體系統的方法

Country Status (7)

Country Link
US (1) US8725932B2 (zh)
EP (1) EP2324428B1 (zh)
JP (1) JP5317690B2 (zh)
KR (1) KR101186788B1 (zh)
CN (1) CN102150142B (zh)
TW (1) TWI437431B (zh)
WO (1) WO2010074353A1 (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186341A (ja) * 2009-02-12 2010-08-26 Toshiba Corp メモリシステム
JP4910035B2 (ja) * 2009-11-13 2012-04-04 株式会社東芝 電子機器および通信制御方法
JP2011128998A (ja) 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
US8576641B1 (en) * 2010-02-26 2013-11-05 Xilinx, Inc. Method of and circuit for providing non-volatile memory in an integrated circuit
IL208641A0 (en) * 2010-10-12 2010-12-30 Eci Telecom Ltd Method for accelerating start up of a computerized system
JP2012108627A (ja) * 2010-11-15 2012-06-07 Toshiba Corp メモリシステム
US8495338B2 (en) * 2010-12-03 2013-07-23 Micron Technology, Inc. Transaction log recovery
JP5570406B2 (ja) * 2010-12-14 2014-08-13 株式会社日立製作所 メモリコントローラ、及びデータ記録装置
JP2012128645A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP5535128B2 (ja) * 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
JP2012128816A (ja) 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
JP5808854B2 (ja) * 2011-10-05 2015-11-10 株式会社日立製作所 ストレージシステム及びストレージ方法
US9251055B2 (en) 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US9471484B2 (en) 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
US9015404B2 (en) * 2012-09-28 2015-04-21 Intel Corporation Persistent log operations for non-volatile memory
TWI510903B (zh) * 2012-11-19 2015-12-01 Wistron Corp 電腦系統及資料回復方法
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102127284B1 (ko) 2013-07-01 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
US20150095551A1 (en) * 2013-09-30 2015-04-02 Micron Technology, Inc. Volatile memory architecutre in non-volatile memory devices and related controllers
KR102065665B1 (ko) 2013-10-17 2020-01-13 삼성전자 주식회사 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9007841B1 (en) * 2013-10-24 2015-04-14 Western Digital Technologies, Inc. Programming scheme for improved voltage distribution in solid-state memory
JP6264012B2 (ja) * 2013-12-16 2018-01-24 富士通株式会社 制御装置、及び制御プログラム
US20150339069A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method
US10223001B2 (en) 2015-03-12 2019-03-05 Toshiba Memory Corporation Memory system
CN106935273B (zh) * 2015-12-30 2020-03-24 北京京存技术有限公司 eMMC测试系统及方法
US10353813B2 (en) 2016-06-29 2019-07-16 Western Digital Technologies, Inc. Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices
US10229048B2 (en) 2016-06-29 2019-03-12 Western Digital Technologies, Inc. Unified paging scheme for dense and sparse translation tables on flash storage systems
US10235287B2 (en) 2016-06-29 2019-03-19 Western Digital Technologies, Inc. Efficient management of paged translation maps in memory and flash
US10175896B2 (en) 2016-06-29 2019-01-08 Western Digital Technologies, Inc. Incremental snapshot based technique on paged translation systems
US11216361B2 (en) 2016-06-29 2022-01-04 Western Digital Technologies, Inc. Translation lookup and garbage collection optimizations on storage system with paged translation table
CN106598768B (zh) * 2016-11-28 2020-02-14 华为技术有限公司 一种处理写请求的方法、装置和数据中心
US10095626B2 (en) * 2017-03-10 2018-10-09 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
JP7109949B2 (ja) 2018-03-23 2022-08-01 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
JP2019185350A (ja) 2018-04-09 2019-10-24 東芝メモリ株式会社 メモリシステム及びメモリシステムの制御方法
US10691358B2 (en) * 2018-06-14 2020-06-23 Silicon Motion, Inc. Memory controller and method capable of using different storing modes to store data units having different data sizes
WO2021019615A1 (ja) * 2019-07-26 2021-02-04 三菱電機株式会社 プログラマブルロジックコントローラ、設定ツール、及びプログラム
US11561717B2 (en) 2020-05-26 2023-01-24 Western Digital Technologies, Inc. Data integrity protection of SSDs utilizing streams
US11520523B2 (en) * 2020-05-26 2022-12-06 Western Digital Technologies, Inc. Data integrity protection of ZNS needs
KR20210155055A (ko) * 2020-06-15 2021-12-22 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
JP2022052089A (ja) 2020-09-23 2022-04-04 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
US12014073B2 (en) * 2022-05-17 2024-06-18 Micron Technology, Inc. Techniques for sequential access operations

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0800829B2 (en) 1994-12-29 2012-07-25 Chugai Seiyaku Kabushiki Kaisha Use of a pm-1 antibody or of a mh 166 antibody for enhancing the anti-tumor effect of cisplatin or carboplatin
CN1249586C (zh) * 1997-12-22 2006-04-05 Tdk株式会社 闪速存储器系统
JP5317381B2 (ja) 1999-08-23 2013-10-16 エントレメッド インコーポレイテッド 高純度2−メトキシエストラジオールの生成方法
JP3692313B2 (ja) * 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7181611B2 (en) 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
JP3935139B2 (ja) 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
JP2005024300A (ja) 2003-06-30 2005-01-27 Tanaka Scientific Ltd 蛍光x線分析装置のフローセル
JP2005115857A (ja) * 2003-10-10 2005-04-28 Sony Corp ファイル記憶装置
US20050204115A1 (en) * 2004-01-30 2005-09-15 Kiminori Matsuno Semiconductor memory device, memory controller and data recording method
JP2005242897A (ja) * 2004-02-27 2005-09-08 Oki Electric Ind Co Ltd フラッシュディスク装置
US7814057B2 (en) * 2005-04-05 2010-10-12 Microsoft Corporation Page recovery using volume snapshots and logs
JP2006350572A (ja) * 2005-06-14 2006-12-28 Ricoh Co Ltd 記憶装置、画像形成装置及びシステムデータ管理方法
US7668846B1 (en) * 2005-08-05 2010-02-23 Google Inc. Data reconstruction from shared update log
US7624129B2 (en) * 2006-06-30 2009-11-24 Microsoft Corporation Dual logging of changes to a user preference in a computer device
JP2009020986A (ja) * 2007-07-15 2009-01-29 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4538034B2 (ja) 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
KR101077339B1 (ko) * 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
JP4461170B2 (ja) * 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
JP4675984B2 (ja) * 2008-02-29 2011-04-27 株式会社東芝 メモリシステム
JP4489127B2 (ja) * 2008-02-29 2010-06-23 株式会社東芝 半導体記憶装置
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
JP4745356B2 (ja) * 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
US8706950B2 (en) * 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
KR101102136B1 (ko) * 2008-03-01 2012-01-02 가부시끼가이샤 도시바 메모리 시스템
JP4691123B2 (ja) * 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP4551940B2 (ja) * 2008-03-01 2010-09-29 株式会社東芝 メモリシステム
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4675985B2 (ja) * 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
JP2009211215A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP5010505B2 (ja) * 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
US8276043B2 (en) * 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
US8484432B2 (en) * 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
JP4762261B2 (ja) * 2008-03-12 2011-08-31 株式会社東芝 メモリシステム
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
TWI385516B (zh) * 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
US8732388B2 (en) * 2008-09-16 2014-05-20 Micron Technology, Inc. Embedded mapping information for memory devices
JP2010176646A (ja) * 2009-02-02 2010-08-12 Toshiba Information Systems (Japan) Corp メモリシステムおよびメモリシステムのインターリーブ制御方法
JP2010186341A (ja) * 2009-02-12 2010-08-26 Toshiba Corp メモリシステム
JP5376983B2 (ja) * 2009-02-12 2013-12-25 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
KR20110050504A (ko) 2011-05-13
CN102150142A (zh) 2011-08-10
EP2324428A4 (en) 2013-01-02
US8725932B2 (en) 2014-05-13
JP2010157139A (ja) 2010-07-15
KR101186788B1 (ko) 2012-09-27
EP2324428B1 (en) 2015-01-21
JP5317690B2 (ja) 2013-10-16
CN102150142B (zh) 2013-12-04
US20110173380A1 (en) 2011-07-14
TW201102818A (en) 2011-01-16
EP2324428A1 (en) 2011-05-25
WO2010074353A1 (en) 2010-07-01

Similar Documents

Publication Publication Date Title
TWI437431B (zh) 記憶體系統及控制記憶體系統的方法
TWI428745B (zh) 記憶體系統、控制記憶體系統的方法及資訊處理裝置
KR101095765B1 (ko) 메모리 시스템 및 그 제어 방법
JP5317689B2 (ja) メモリシステム
KR101066937B1 (ko) 메모리 시스템 및 그 데이터 소거 방법
JP4675984B2 (ja) メモリシステム
TWI388988B (zh) 記憶體系統
JP5376983B2 (ja) メモリシステム
KR101102634B1 (ko) 메모리 시스템
TWI420310B (zh) 記憶體系統
US9015421B2 (en) Memory system

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees