TWI396083B - 半導體儲存裝置 - Google Patents

半導體儲存裝置 Download PDF

Info

Publication number
TWI396083B
TWI396083B TW97151099A TW97151099A TWI396083B TW I396083 B TWI396083 B TW I396083B TW 97151099 A TW97151099 A TW 97151099A TW 97151099 A TW97151099 A TW 97151099A TW I396083 B TWI396083 B TW I396083B
Authority
TW
Taiwan
Prior art keywords
data
unit
memory
controller
area
Prior art date
Application number
TW97151099A
Other languages
English (en)
Other versions
TW200949537A (en
Inventor
Hirokuni Yano
Shinichi Kanno
Toshikatsu Hida
Hidenori Matsuzaki
Kazuya Kitsunai
Shigehiro Asano
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 TW200949537A publication Critical patent/TW200949537A/zh
Application granted granted Critical
Publication of TWI396083B publication Critical patent/TWI396083B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers

Description

半導體儲存裝置
本發明係關於一種具有一非揮發性半導體記憶體的半導體儲存裝置。
像一NAND型快閃記憶體一樣,一非揮發性半導體記憶體具有當將資料儲存於其中時一次性地抹除稱為區塊之單元中的資料並然後實行寫入之一類型,實行稱為頁之單元中的讀取及寫入之一類型,以及其中指定一抹除、讀取及寫入單元之一類型。
另一方面,當一主機設備(例如一個人電腦)實行自一次要儲存裝置(例如一硬碟機)讀取資料並寫入資料至該次要儲存裝置時使用的一單元係稱為一區段。獨立於該非揮發性半導體記憶體中的一抹除、讀取及寫入單元來決定該區段。
例如,雖然該非揮發性半導體記憶體中的一區塊單元之大小(區塊大小)係512kB而且一頁單元之大小(頁大小)係4kB,但是該主機設備中的一區段單元之大小(區段大小)係512B。
以此方式,在一些情況下,該非揮發性半導體記憶體中的該抹除、讀取及寫入單元可以係大於該主機設備中的該讀取及寫入單元。
因此,當使用該非揮發性半導體記憶體組成個人電腦中的次要儲存裝置(例如硬碟機),需要自作為該主機設備之個人電腦的區段大小之資料符合該非揮發性半導體記憶體之區塊大小及頁大小,並且因此寫入其中。
另一方面,一快閃記憶體(例如一NAND型快閃記憶體)具有特性,其中記憶體單元之劣化係依據在資料之寫入之前實行的增加區塊之抹除計數而進步。而且因此,實行稱為平均磨損的程序以均勻地分佈資料更新位置於該非揮發性半導體記憶體中以便該非揮發性半導體記憶中的所有記憶體單元之抹除計數變得實質上相同。
例如,將由該主機設備指明的次要儲存裝置之一邏輯位址變換成代表資料更新位置的一非揮發性半導體記憶體之一實體位址,因而均勻地分佈資料更新位置。
另一方面,當在一大容量次要儲存裝置中實行以上位址變換時,若資料管理之單元係一小大小(例如,頁大小),則放大該邏輯位址與該實體位址之間的對應清單(位址變換表或管理表)。因此,該對應清單並不適合於該次要儲存裝置中的一控制器之一主要記憶體,因而出現不能以高速度實行位址變換的問題。因此,需要該次要儲存裝置中的資料管理之單元具有大於頁大小之大小,例如區塊大小。
為了解決以上問題,已知一技術,其中稱為一日誌區塊的另一區塊加以提供以便對應於其中儲存有資料的一區塊(資料區塊)(參見(例如)日本專利申請KOKAI公開案第2002-366423號)。
在以上技術中,資料係寫入於該日誌區塊中的空頁中,而且當在該日誌區塊中不存在空頁時,或當不存在足夠的日誌區塊區域時,儲存於該日誌區塊中的資料係反映至該資料區塊以改良寫入效率。
然而,以上技術具有一問題:因為該資料區塊及該日誌區塊具有一對一對應,故能夠加以同時更新的區塊之數目係限於日誌區塊之數目。
即,當小大小之資料係寫入於大量區塊中時,在於該日誌區塊中存在大量空頁的狀態中實行資料反映處理,因而未改良寫入效率。
此外,為了抑制區塊之抹除計數,資料有時係在小於區塊大小的頁大小之單元中管理,而且頁大小之取代資料可附加(額外寫入)至另一抹除區塊。
在此情況下,因為頁大小之取代資料係寫入於另一區塊中,故最初儲存的舊資料會變為無效資料。然而,當有效資料存在於包括無效資料的一區塊中時,該區塊中的資料不能加以抹除以作重新使用。
此係因為,需要在該區塊單元中實行該抹除,而且因此,當將有效資料儲存於同一區塊中時,基於預防有效資料之抹除之目的,直至將有效資料重新寫入於另一區塊中才能抹除該區塊中的資料。
無效資料的存在需要該非揮發性半導體記憶體中大於有效資料之數量的儲存區域。
然而,若資料之更新在該次要儲存裝置中進步,則無效資料之數目會增加。而且因此,包括無效資料及有效資料的資料容量會變大。因此,此等資料可能不能加以儲存於該非揮發性半導體記憶體中的儲存區域中。
基於刪除無效資料之目的,執行其中將自區塊收集的有效資料重新寫入至一未用區塊的程序(壓縮)(參見(例如)日本專利申請KOKAI公開案第2005-222550號)。
I.依據本發明之一態樣的一半導體儲存裝置包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二及第三記憶體區域,其係組態於藉由一第二單元實行資料之寫入並藉由一第三單元實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第二記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;以及一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第三記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大。
II.依據本發明之一態樣的一半導體儲存裝置包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二、第三及第四記憶體區域,其係組態於藉由一第二單元實行資料之寫入並藉由一第三單元實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第四記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第三記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大而且並非小於該第三單元;一第四處理,其用於移動具有該第四記憶體區域中的最舊分配順序的該第三單元之一區域至該第二記憶體區域;以及一第五處理,其用於選擇該第二記憶體區域中的資料並重新寫入選定資料於該第二記憶體區域中的該第三單元之一空區域中。
依據本發明之一態樣的一半導體儲存裝置包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二、第三、第四及第五記憶體區域,其係組態於藉由一第二單元實行資料之寫入並藉由一第三單元實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第四記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第五記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大而且係小於該第三單元;一第四處理,其用於移動具有該第四記憶體區域中的最舊分配順序的該第三單元之一區域至該第二記憶體區域;一第五處理,其用於選擇該第二記憶體區域中的資料並重新寫入選定資料於該第二記憶體區域中的該第三單元之一空區域中;一第六處理,其用於移動具有該第五記憶體區域中的最舊分配順序的該第三單元之一區域至該第三記憶體區域;以及一第七處理,其用於選擇該第三記憶體區域中的資料並重新寫入選定資料於該第三記憶體區域中的該第三單元之一空區域中。
III.依據本發明之一態樣的一半導體儲存裝置包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二、第三及第四記憶體區域,其係組態於藉由一第二單元實行資料之寫入並在一第三單元中實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第四記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第三記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大而且並非小於該第三單元;一第四處理,其用於選擇該第四記憶體區域中的該第三單元之一區域並用於移動選定區域至該第二記憶體區域;以及一第五處理,其用於按順序自具有最舊寫入順序的區塊循序選擇該第三單元之區域中的資料並用於重新寫入選定資料於該第二記憶體區域中的該第三單元之一空區域中;以及一第六處理,其用於選擇該第二記憶體區域中的資料並重新寫入選定資料於該第二記憶體區域中的該第三單元之一空區域中。
以下參考圖式說明用於實行本發明的最佳模式。
[I. 用於實現寫入效率之改良的半導體儲存裝置]
1. 概要
依據此具體實施例之一半導體儲存裝置的特徵為儲存自一主機設備的區段單元資料於一第一記憶體區域中,區別是否應該採用「小單元(第一管理單元)」或「大單元(第二管理單元)」管理儲存於該第一記憶體區域中的資料;以及分別儲存「小單元」資料及「大單元」資料於一第二記憶體區域及一第三記憶體區域中。
此外,依據此具體實施例的半導體儲存裝置的特徵為合併儲存於該第二記憶體區域中的「小單元」資料成一個「大單元」資料,並且儲存「大單元」資料於該第三記憶體區域中。
「大單元」之大小係「小單元」之大小的自然數倍大。在每一「小單元」資料中,以邏輯位址的順序循序配置複數個區段單元資料。同樣地,在每一「大單元」資料中,以邏輯位址的順序循序配置複數個區段單元資料。
換言之,依據此具體實施例的半導體儲存裝置藉由「小單元」儲存一範圍的窄邏輯位址內的複數個區段單元資料(細粒度資料)於該第二記憶體區域中,並且藉由「大單元」儲存一範圍的寬邏輯位址內的複數個區段單元資料(粗粒度資料)於該第三記憶體區域中。
此外,當將某一數量的「小單元」資料累積於該第二記憶體區域中時,依據此具體實施例的半導體儲存裝置合併該等資料成「大單元」資料並儲存「大單元」資料於該第三記憶體區域中(重組)。
例如,能考量其中在一NAND型快閃記憶體中「小單元」之大小係等於頁單元之大小而且「大單元」之大小係等於區塊單元之大小的情況。換言之,區段單元(第一單元)資料係儲存於該第一記憶體區域中,頁單元(第二單元)資料係儲存於該第二記憶體區域中,而且區塊單元(第三 單元)資料係儲存於該第三記憶體區域中。
在此情況下,自該主機設備傳輸至該半導體儲存裝置的區段單元資料係首先儲存於該第一記憶體區域中。以資料之數目或資料數量為基礎決定是否將儲存於該第一記憶體區域中的資料傳輸至該第二記憶體區域或該第三記憶體區域。
即,當儲存於該第一記憶體區域中的資料滿足一第一條件時,採用「大單元」管理該資料並將其儲存於該第三記憶體區域之每一區塊中作為區塊單元資料。在此情況下,即使作為對寫入的補充而抹除區塊單元資料,寫入效率仍不會降低。
另一方面,當儲存於該第一記憶體區域中的資料未能滿足該第一條件時,採用「小單元」管理該資料並將其儲存於該第二記憶體區域之每一頁中作為頁單元資料。在此情況下,能藉由以附加方式儲存頁單元資料來減少區塊單元資料的抹除數量。
基於一第二條件進一步選擇等效於儲存於第二記,憶體區域中的頁單元之「小單元」的資料。包括選定資料的複數個資料係合併成「大單元」資料。「大單元」資料係儲存於該第三記憶體區域之每一區塊中作為區塊單元資料。
藉由(例如)資料之數目來定義該第一條件。
即,當儲存於該第一記憶體區域中的資料之數目達到一預定臨限值時,將該等資料傳輸至該第三記憶體區域,而且當儲存於該第一記憶體區域中的資料之數目並未達到該預定臨限值時,將該等資料傳輸至該第二記憶體區域。
或者,可以決定儲存於該等第一及第二記憶體區域中的資料之總數是否達一預定臨限值。即,當該總數達到該預定臨限值時,將該等資料傳輸至該第三記憶體區域,而且當該總數並未達到該預定臨限值時,將該等資料傳輸至該第二記憶體區域。
藉由(例如)寫入順序或有效資料之數目來定義該第二條件。
當藉由寫入順序來定義該第二條件時,循序選擇具有自該第二記憶體區域中的區塊當中偵測的最早寫入順序之一區塊中的資料,並且將選定資料傳輸至該第三記憶體區域。
當相對於該第二記憶體區域中的每一區塊藉由有效資料之數目來定義該第二條件時,在藉由區塊單元之大小對準一區塊中的有效資料之邏輯位址時在一邏輯位址範圍中加總儲存於該第二記憶體區域中的頁單元之有效資料的數目,而且將具有最大加總數值之一區塊中的有效資料傳輸至該第三記憶體區域。
順便提及,「藉由一預定大小(例如頁單元或區塊單元之大小)對準邏輯位址」意指將邏輯位址四捨五入至當將邏輯位址除以該預定大小時餘數係0的此一位址。例如,藉由大小S對準邏輯位址A所計算的一位址係(A-(當將A除以S時的一餘數))。同樣地,「藉由一預定大小對準邏輯位址範圍」意指自藉由該預定大小對準邏輯位址所計算的位址之預定大小的範圍。
依據此具體實施例的半導體儲存裝置能實現寫入效率之改良、與效能劣化及使用期限縮短之預防,不管自一主機設備的資料大小或資料數量。
特定言之,此具體實施例之效應在下列情況下係最明顯的:其中該半導體儲存裝置係由具有一指定抹除、讀取及寫入單元的一非揮發性半導體記憶體(例如,一NAND型快閃記憶體)組成,而且係用作用於個人電腦的一次要儲存裝置(SSD:固態驅動器)。
以上半導體儲存裝置之容量傾向於變得較大,而且當藉由其中將複數個位元儲存於一個記憶體單元中的MLC(多位準單元)技術來實現容量的增加時,該抹除、讀取及寫入單元傾向於變得較大,以便保持一實質寫入效能。
此外,在個人電腦及類似物中,通常藉由「小單元」來更新該次要儲存裝置上的資料。當僅採用諸如區塊單元之「大單元」來管理此資料時,針對資料更新數量的資料抹除資料會變得較大,因而會降低寫入效率,而且記憶體單元之劣化會加速。
如在此具體實施例中所示,自該主機設備的資料係分成「小單元」及「大單元」,而且「小單元」資料及「大單元」資料係分別寫入於不同記憶體區域中,因而能減小以上問題的出現之可能性。
換言之,針對自該主機設備的資料寫入數量來最佳化該非揮發性半導體記憶體的資料抹除數量而且藉由使用該半導體儲存裝置中的兩個管理單元(即,「小單元」及「大單元」)來改良寫入效率。
2. 具體實施例
將說明本發明之一具體實施例。
說明作為與此具體實施例有關的一概念之寫入效率。
關於一快閃記憶體(例如一NAND型快閃記憶體)中的記憶體單元之劣化,自該主機設備的寫入資料數量所需要的該快閃記憶體中的區塊單元資料之抹除數量係一重要因數。
在此具體實施例中,資料抹除數量係稱為「寫入效率之數值」。
若針對寫入資料數量的區塊單元資料之抹除數量係小,則寫入效率之數值變得小,而且記憶體單元之劣化的進步會相對減緩。此現象意指改良寫入效率。另一方面,若區塊單元資料之抹除數量係大,則寫入效率之數值會變大。此現象意指寫入效率加以劣化。
即,為了預防該快閃記憶體中的記憶體單元之劣化,重要的係減小區塊單元資料之抹除數量,因而改良寫入效率。
將顯示其中使用該快閃記憶體之一半導體儲存裝置中的寫入效率加以劣化的範例。
在此範例中,該快閃記憶體中的區塊單元之大小以及頁單元之大小係分別假定為512kB及4kB,一主機設備之區段單元的大小係假定為512B,而且資料管理單元之大小係假定為512kB,其係與區塊單元之大小相同。
在將具有與區塊單元之大小相同的大小之資料X儲存於該快閃記憶體中的此一狀態中考量更新資料Y之後的一程序,該資料具有1個區段之大小並具有包括在資料X之邏輯位址範圍中的邏輯位址。
資料X係假定為儲存於該快閃記憶體之一區塊B1的全部中。
首先,讀出自區塊B1的資料X於一暫時儲存區域上,而且採用自該主機設備的更新資料Y取代資料X之一部分,因而建立最近資料。因此,抹除不同於區塊B1之一區塊B2中的資料,而且將最近資料寫入於區塊B2中。
在此程序中,如上所述,有必要自區塊B1讀取512kB之資料X以便寫入512B之資料Y於其中,而且進一步抹除區塊B2中的512kB之資料以便寫入最近資料於區塊B2中。
因此,該快閃記憶體中的抹除數量相對於自該主機設備的寫入資料數量係較大,因而寫入效率係極差。
在此範例中的寫入效率之數值係512kB/512B=1024。
通常地,在NAND型快閃記憶體中,區塊抹除程序及寫入程序花費相當多的時間,並且因此,寫入效率之劣化意指區塊單元資料之數量以及抹除區塊中的寫入資料數量相對於自該主機設備的寫入資料係大的,而且同時,意指該半導體儲存裝置的比率效能加以劣化。
(1)基本組態
圖1顯示依據此具體實施例的半導體儲存裝置之一第一基本組態。
一第一記憶體區域11暫時儲存自一主機設備的資料。該資料係藉由一區段單元(一第一單元)寫入於第一記憶體區域11中。第一記憶體區域11係組態於諸如DRAM(動態隨機存取記憶體)之一揮發性半導體記憶體中。
包含第一記憶體區域11之一揮發性半導體記憶體中的讀取/寫入之實體單元係區段單元或較小。該主機設備使用具有區段單元(LBA:邏輯區塊定址)的一邏輯位址執行對該半導體儲存裝置的存取。因此,第一記憶體區域11採用區段單元管理一輸入資料。
一第二記憶體區域係由一非揮發性半導體記憶體(例如一NAND型快閃記憶體)中的區塊構成。一第三記憶體區域係由一非揮發性半導體記憶體(例如一NAND型快閃記憶體)中的區塊構成。
第二及第三記憶體區域12及13係分別組態於分離非揮發性半導體記憶體(記憶體晶片)中。每一記憶體晶片可具有不同效能(例如寫入效能),或可具有不同儲存容量。例如,第二記憶體區域12可採用SLC(單一位準單元)技術組態於一NAND型快閃記憶體中,第三記憶體區域13可採用MLC(多位準單元)技術組態於一NAND型快閃記憶體中。
在該非揮發性半導體記憶體中,其中一次執行讀取/寫入的單元係一頁(一第二單元)而且其中一次執行抹除的單元係一區塊(一第三單元)。
一個區塊單元係由複數個頁單元構成。此外,依據此具體實施例的非揮發性半導體記憶體並不准許在同一頁中重新寫入,除非一次性地抹除包括該頁之區塊中的資料。
因此,若自該主機設備輸入取代資料(新資料),則將最初儲存於該區塊中的具有與該新資料相同之邏輯位址的舊資料視為無效資料。將該新資料視為具有優於該舊資料的優先權之有效資料,而且將該舊資料視為藉由參考該新資料而加以忽視的無效資料。
為了簡化解釋,如下假定該等單元之每一者:在該半導體儲存裝置中的一資料管理單元的「小單元」(第一管理單元)之大小係等於頁單元之大小(一頁中的可儲存資料數量)。「大單元」(第二管理單元)之大小係等於區塊單元之大小(一區塊中的可儲存資料數量)。「小單元」之大小係區段單元之大小的自然數倍大。
代表一資料大小的第一、第二及第三單元並不包括一冗餘資料(ECC:誤差檢查/校正碼、內部控制旗標等),其係在該半導體儲存裝置中添加至自該主機設備的主要資料。
一般地,包括該非揮發性半導體記憶體(例如一NAND型快閃記憶體)的系統在添加冗餘資料至主要資料的狀態中執行讀取/寫入。但是,為了簡化解釋,以上假定該等單元之每一者。
第二記憶體區域12藉由等於頁單元的「小單元」儲存自第一記憶體區域11傳輸的資料。第三記憶體區域13藉由等於區塊單元的「大單元」儲存自第一記憶體區域11或第二記憶體區域12傳輸的資料。
第二記憶體區域12因控制藉由「小單元」所更新的資料之僅部分而可具有小於第三記憶體區域13之容量的容量。
在下列說明中,一個區塊單元資料係完全儲存於一個區塊中,而且一個頁單元資料係完全儲存於一頁中。每一區塊係由複數個頁組成,而且複數個頁單元資料係儲存於一個區塊中。
一控制器10具有一CPU及一主要記憶體,而且能操作用於執行資料管理的一程式。在此具體實施例中,能將藉由控制器10實現的功能實施為硬體及軟體之任一者或兩者的組合。是否將此等功能實施為硬體或軟體取決於實際具體實施例或施加於整個系統的設計約束。熟習此項技術者能藉由用於每一實際具體實施例的各種方法來實施此等功能,而且本發明之範疇包括實施方案的決定。
控制器10在該主要記憶體中具有一快取管理表、一頁管理表、一區塊管理表以及一實體區塊管理表,以便管理其中藉由邏輯位址存取的資料係儲存於第一、第二及第三記憶體區域11、12及13中的情況。
當控制器10之該主要記憶體係由一揮發性半導體記憶體(例如DRAM)組成時,第一記憶體區域11可組態於控制器10之該主要記憶體中。
圖2顯示依據此具體實施例的半導體儲存裝置之一第二基本組態。
該第二基本組態係在下列點上不同於圖1之第一基本組態。
第二及第三記憶體區域12及13係組態於一非揮發性半導體記憶體22中。例如包括第一記憶體區域11的揮發性半導體記憶體係假定為一DRAM,而且包含第二及第三記憶體區域12及13的非揮發性半導體記憶體22係假定為一NAND型快閃記憶體。
第二及第三記憶體區域12及13經組態以便共用非揮發性半導體記憶體22中的一儲存區域,而且控制器10分配非揮發性半導體記憶體22中的區塊至第二記憶體區域12或第三記憶體區域13。至第二及第三記憶體區域12、13的分配不僅係靜態的,而且係動態的。由控制器10控制至第二及第三記憶體區域12、13的分配。第二及第三記憶體區域12及13可組態於複數個非揮發性半導體記憶體(記憶體晶片)之上。控制器10可將非揮發性半導體記憶體中的全部複數個區塊視為一個提取儲存區域。
控制器10在該主要記憶體中具有一快取管理表、一頁管理表、一區塊管理表及一實體區塊管理表。
在圖1及圖2中,此等管理表係在沒有至該半導體儲存裝置的電源供應之狀態中儲存於一非揮發性半導體記憶體中。控制器10在電源供應時讀出此等管理表於該主要記憶體上。控制器10執行位址變換以便使自該主機設備指明的邏輯位址空間與該非揮發性半導體記憶體中的資料之實體位置相關。
--快取管理表--
圖3顯示一快取管理表之一範例。
該快取管理表藉由等於頁單元的「小單元」來控制儲存於圖1及2之第一記憶體區域11中的資料。藉由區段單元執行有效資料的控制。
假定將一個項目指派至第一記憶體區域11中的一個頁單元之一個區域。
項目之數目係假定為能包含於第一記憶體區域11內的頁單元資料之數目,即,不大於(第一記憶體區域11之總容量)/(頁單元之大小)。
頁單元資料之一邏輯位址、第一記憶體區域11之一實體位址以及指示頁單元之相關區域中的有效資料之位置的區段旗標係與每一項目相關聯。
用於暫時儲存對應於每一項目的資料之頁單元的區域係提供於第一記憶體區域11中,而且該區域之實體位址係儲存於每一項目中。若指定對應於項目的區域之實體位址,例如若連續地佈置頁單元之區域,則不需要將實體位址儲存於該項目中。
將第一記憶體區域11中的頁單元之每一區域進一步劃分成快取管理表中的區段單元之區域。藉由將區段旗標之數值設定為「1」或「0」來代表區段單元之每一區域中的資料狀況。
在具有「1」之區段旗標的一區域中儲存自該主機設備的有效資料。在具有「0」之區段旗標的一區域中不儲自該主機設備寫入的最近資料,因而將該區域視為一無效區域。其中所有區段旗標係「0」的項目係當作一未用項目。
以上快取管理表之組態係基於一控制方法,其係稱為其中將邏輯位址指派至每一項目的完全相關聯方法。然而,可藉由n向設定相關聯方法或類似方法來控制第一記憶體區域11中的邏輯位址與實體位址之間的對應。
--頁管理表--
圖4顯示一頁管理表之一範例。
該頁管理表藉由等於頁單元的「小單元」來控制儲存於圖1及2之第二記憶體區域12中的資料。
假定將一個項目指派至第二記憶體區域12中的一個頁單元之一個區域。
項目之數目係假定為能包含於第二記憶體區域12內的頁單元資料之數目,即,不大於(第二記憶體區域12之總容量)/(頁單元之大小)。
頁單元資料之一邏輯位址與第二記憶體區域12之一實體位址係與每一項目相關聯。
例如,具有實體位址A的一個頁單元資料係儲存於由實體位址A指明之第二記憶體區域12中的區塊0之第一頁中,而且具有實體位址C的一個頁單元資料係儲存於由實體位址C指明之第二記憶體區域12中的區塊1之第二頁中。例如藉由提供指示一無效項目之有效性或無效性的一旗標,或儲存一無效邏輯位址或一無效實體位址於該項目中來代表該項目。
圖5顯示一頁管理表之另一範例。稍後解釋圖5中的頁管理表。
--區塊管理表--
圖6顯示一區塊管理表之一範例。
該區塊管理表藉由等於區塊單元的「大單元」來控制儲存於圖1及2之第三記憶體區域13中的資料。
假定將一個項目指派至第三記憶體區域13中的一個區塊單元之一個區域。
項目之數目係假定為能包含於第三記憶體區域13內的區塊單元資料之數目,即,不大於(第三記憶體區域13之總容量)/(區塊單元之大小)。
以一邏輯位址的順序來配置每一項目。對應於區塊單元資料之一邏輯位址並指明第三記憶體區域13中的一區塊之一實體位址係與每一項目相關聯。例如藉由提供指示該無效項目之有效性或無效性的一旗標,或儲存一無效實體位址於該項目中來代表該項目。
--實體區塊管理表--
圖7及8顯示一實體區塊管理表之範例。
圖7之實體區塊管理表係用於該第一基本組態中並控制圖1之第二及第三記憶體區域12及13中的區塊之使用(作用/自由)。如圖7(a)中所示,至可用性的一指標係儲存於用於第二記憶體區域12的實體區塊管理表中,而且該實體區塊管理表控制一區塊中的頁之可用性。
如圖7(b)中所示,為了節省儲存區域,一頁之可用性並非藉由用於第三記憶體區域13的實體區塊管理表控制。
圖8之實體區塊管理表係用於第二基本組態中而且控制圖2之非揮發性半導體記憶體22中的儲存區域(區塊)是否係用作第二記憶體區域12(作用)、係用作第三記憶體區域13(作用)、或係未使用(自由:其中不存在有效資料)。當儲存區域係用作第二記憶體區域12時,該實體區塊管理表控制與其相關聯的一頁之可用性。
假定將一個項目指派至第二及第三記憶體區域12、13中的一個區塊(實體區塊)。
項目之數目係假定為不大於能用作一資料區域的區塊之數目。
一實體位址及由該實體位址指明的一區塊之使用係與每一項目相關聯,而且針對第二記憶體區域12中使用的區塊,管理頁之可用性。
頁可用性經組態以能夠針對每一頁區別「寫入啟用」狀態(此儲存區域係空的)與「寫入禁止」狀態(此儲存區域係無效的,因為舊資料已一次性地寫入其中而且新資料係重新寫入於另一儲存區域中)。
在每一頁的資料寫入序列中,若一非揮發性半導體記憶體僅能以實體位址之遞增順序實行資料之寫入,則藉由儲存其中能將資料附加於一區塊中的一空頁之位置來管理頁可用性。
例如採用圖4中所示的管理一區塊中的空頁之資料結構,作為用於第二記憶體區域12之一區塊中的頁之可用性。
在此具體實施例中,頁可用性係儲存於實體區塊管理表中,然而,如圖5中所示,其可儲存於頁管理表中。在此情況下,頁管理表係分割成用於第二記憶體區域12的一實體區塊之單元,而且與頁可用性一起儲存邏輯位址。
在以上說明中,為簡化解釋,用於第二記憶體區域12中的「小單元(第一管理單元)」係假定為頁單元,而且用於第三記憶體區域13中的「大單元(第二管理單元)」係假定為區塊單元;然而,該等管理單元並不於限此設定。
重要的係,在包含作為對硬碟機(磁碟設備)的替代物之一次要儲存裝置的一非揮發性半導體記憶體(例如NAND型快閃記憶體)中,指定該抹除、讀取及寫入單元。
例如,藉由劃分一頁來控制該頁,明確而言,用於第二記憶體區域12中的「小單元」之大小可以係區段單元之大小的自然數倍大而且頁單元之大小可以係「小單元」之大小的兩倍或更大自然數倍大。
或者,共同地控制複數個頁,明確而言,用於第二記憶體區域12中的「小單元」之大小可以係頁單元之大小的兩倍或更大自然數倍大而且區塊單元之大小可以係「小單元」之大小的兩倍或更大自然數倍大。
同樣,藉由劃分一區塊來控制該區塊,明確而言,用於第三記憶體區域13中的「大單元」之大小可以係「小單元」大小的兩倍或更大自然數倍大而且區塊單元之大小可以係「大單元」之大小的兩倍或更大自然數倍大。
或者,共同地控制複數個區塊,明確而言,用於第三記憶體區域13中的「大單元」之大小可以係區塊單元之大小的兩倍或更大自然數倍大。
第二及第三記憶體區域12及13中的抹除之單元可以係相同的(例如,區塊大小),或可以藉由同時抹除複數個區塊而係不同的等等。
(2)程序方法
說明由圖1及2之控制器10執行的程序。
A.第一記憶體區域中的資料儲存程序
參考圖9說明第一記憶體區域11中的資料儲存程序。
自該主機設備的輸入資料係首先寫入於第一記憶體區域11中而且該資料係在某一週期內儲存於第一記憶體區域11中。此時,更新圖3之快取管理表。
1.控制器10藉由等於頁單元的「小單元」之大小來對準輸入資料之邏輯位址(步驟ST1)。
2.控制器10自快取管理表搜尋對應於藉由頁單元之大小對準的邏輯位址範圍之項目(步驟ST2)。
3.控制器10判斷第一記憶體區域11中是否存在對應項目。若在第一記憶體區域11中偵測到對應項目,則控制器10選擇此項目並且此程序進行至步驟ST8。若在第一記憶體區域11中未偵測到對應項目,則此程序進行至步驟ST4。
4.控制器10搜尋快取管理表並判斷是否存在未用項目(步驟ST4)。若偵測到未用項目,則此程序進行至步驟ST6。若未偵測到未用項目,則此程序進行至步驟ST5。
5.控制器10執行接著說明的「自第一記憶體區域的資料輸出程序」。因而,將資料自第一記憶體區域11輸出至第二記憶體區域12及第三記憶體區域13(步驟ST5)。因此,將對應於輸出資料之快取管理表中的項目設定為未用項目。此時,將此項目中的所有區段旗標設定為「0」。在完成設定之後,此程序返回至步驟ST4。
6.控制器10選擇用於自該主機設備的輸入資料之未用項目(步驟ST6)。
7.控制器10設定藉由頁單元之大小對準輸入資料之邏輯位址所獲得的邏輯位址設定至選定項目(步驟ST7)。即,控制器10決定選定項目為對應於輸入資料的項目。
8.控制器10基於輸入資料之邏輯位址以及選定項目之邏輯位址及實體位址來決定用於資料寫入的實體位址。控制器10指導包括第一記憶體區域11的揮發性半導體記憶體寫入輸入資料於由實體位址所指明的區域中(步驟ST8)。
此外,控制器10設定對應於頁單元之區域中的資料寫入位置之區段旗標為「1」。
在其中自該主機設備的輸入資料係大於頁大小的情況下,可能需要快取管理表中的複數個項目。在此一情況下,控制器10藉由重複以上程序來更新複數個項目。
B.自該第一記憶體區域的資料輸出程序。
參考圖10及11說明自第一記憶體區域11的資料輸出程序。
控制器10選擇將自第一記憶體區域11輸出的頁單元資料並依據一第一條件將該資料傳輸至第二記憶體區域12或第三記憶體區域13。例如藉由資料之數目來定義該第一條件。明確而言,控制器10執行下列程序(a)或程序(b)。
(a).控制器10計數第一記憶體區域11中的資料之數目並決定採用等於區塊單元的「大單元」或等於頁單元的「小單元」來管理該資料。
1.控制器10藉由區塊單元(「大單元」)之大小來對準將加以輸出的頁單元(「小單元」)資料之一邏輯位址LA(步驟ST1)。
2.控制器10藉由搜尋圖3之快取管理表來合計包括在區塊單元之大小之邏輯位址範圍中的項目之數目(步驟ST2)。
例如,依據圖12之範例,包括在藉由區塊單元之大小所對準的邏輯位址範圍X中的項目之數目係3,即LA1、LA4及LA6。
3.控制器10判斷項目之數目是否係一預定臨限值或較大。例如,該預定臨限值可加以設定為可儲存於區塊單元(「大單元」)之一個區域中的頁單元(「小單元」)資料之總數的50%(步驟ST3)。
若項目之數目係小於該預定臨限值,則控制器10傳輸包括在邏輯位址範圍中的每一資料至第二記憶體區域12作為等於頁單元的「小單元」之資料。
若項目之數目並非小於該預定臨限值,則控制器10傳輸包括在邏輯位址範圍中的複數個資料至第三記憶體區域13作為等於區塊單元的「大單元」之資料。
「小單元」情況(參見,圖10及圖12之流程圖)
控制器10選擇自第一記憶體區域11輸出的資料並傳輸選定資料至第二記憶體區域12作為頁單元之資料。參考圖10中步驟ST4以後的步驟。
以下說明一程序,在此情況下自第一記憶體區域11傳輸一個頁單元資料。當傳輸複數個頁單元資料時,重複下列程序。
4.控制器10搜尋圖4之頁管理表並判斷是否存在具有與待自第一記憶體區域11傳輸之寫入資料相同的邏輯位址LA之一項目(步驟ST4)。
若偵測到此一項目,則控制器10選擇此項目並且此程序進行至步驟ST9。若未偵測到此一項目,則此程序進行至步驟ST5。
5.控制器10判斷在頁管理表中是否存在一未用項目(步驟ST5)。
若偵測到該未用項目,則此程序進行至步驟ST7。若未偵測到該未用項目,則此程序進行至步驟ST6。
6.控制器10執行「自該第二記憶體區域至該第三記憶體區域的資料傳輸程序」(步驟ST6)。因此,將對應於輸出資料的項目設定為未用項目。控制器10獲得一可用未用項目並且此程序返回至步驟ST5。
7.控制器10選擇一未用項目作為寫入資料之目的地(步驟ST7)。
8.控制器10設定頁單元之寫入資料的邏輯位址至選定項目(步驟ST8)。將選定項目視為對應於寫入資料的項目。
9.控制器10決定選定項目中的一寫入位置(步驟ST9)。以下說明用於決定寫入位置的程序。
9-1.控制器10搜尋圖7或圖8之實體區塊管理表並選擇第二記憶體區域12中使用的具有帶「寫入啟用」狀態之一空頁的一區塊。若偵測到此一區塊,則控制器10選擇該區塊中的一空頁作為寫入資料之目的地(步驟ST9-1)。
在藉由頁單元的資料之寫入中,若包含第二記憶體區域12的非揮發性半導體記憶體僅能以實體位址之遞增順序實行資料之寫入,則控制器10選擇其中能附加資料的一空頁。
若在用於第二記憶體區域12之區塊中偵測到該空頁,則此程序進行至步驟ST10。若在用於第二記憶體區域12之區塊中未偵測到該空頁,則此程序進行至步驟ST9-2。
9-2.控制器10搜尋圖7或圖8之實體區塊管理表並判斷是否存在一自由區塊(步驟ST9-2)。若偵測到該自由區塊,則此程序進行至步驟ST9-4。若未偵測到該自由區塊,則此程序進行至步驟ST9-3。
9-3.控制器10執行「自該第二記憶體區域至該第三記憶體區域的資料傳輸程序」以便建立一自由區塊(步驟ST9-3)。在建立該自由區塊之後,此程序返回至步驟ST9-2。
9-4.控制器10得到用於第二記憶體區域12的該自由區塊(步驟ST9-4)。
9-5.控制器10更新對應於獲得自由區塊的圖7或圖8之實體區塊管理表的項目至「第二記憶體區域12(作用)」。在該第二基礎組態中(圖8),控制器10獲取用於儲存頁可用性的一區域,並且該區域係與該項目相關聯(步驟ST9-5)。
9-6.控制器10指導該非揮發性半導體記憶體抹除獲得自由區塊中的資料,並且更新所有頁可用性至「寫入啟用」狀態。控制器10選擇該區塊中的空頁之一作為寫入資料之目的地(步驟ST9-6)。
採用以上說明完成用於決定寫入位置的程序。
10.控制器10判斷構成頁單元資料的區段單元資料之全部是否存在於第一記憶體區域11中(步驟ST10)。
控制器10掃描對應於圖3之快取管理表中的寫入資料之項目的區段旗標。若所有區段旗標係「1」,則此程序進行至步驟ST12。若該等區段旗標之任一者係「0」,則此程序進行至步驟ST11。
11.若該等區段旗標之任一者係「0」,則並非所有區段單元資料係在第一記憶體區域11中完成。因此,控制器10自第二記憶體區域12及/或第三記憶體區域13收集對應於具有區段旗標「0」之區段位置的遺失資料(步驟ST11)。
控制器10嘗試自第二記憶體區域12讀出遺失資料。
控制器10藉由頁單元之大小對準區段單元資料之一邏輯位址並搜尋對準邏輯位址處的頁管理表。
若偵測到該項目,則控制器10讀出包括對應於記錄於該項目中的實體位址之頁單元資料中的遺失資料。若未偵測到該項目,則控制器10嘗試自第三記憶體區域13讀出遺失資料。
控制器10藉由區塊單元之大小對準區段單元資料之一邏輯位址並搜尋對準邏輯位址處的區塊管理表。
若偵測到該項目,則控制器10讀出包括在對應於記錄於該項目中的實體位址之區塊單元資料中的遺失資料。
自第二記憶體區域12或第三記憶體區域13讀出的遺失資料係暫時儲存於第一記憶體區域11之一工作區域中或控制器10之主要記憶體中;然而,本發明並不限於此。
12.在完成構成頁單元資料的所有區段單元資料之後,控制器10指導該非揮發性半導體記憶體寫入選擇為寫入資料之目的地之空頁中的頁單元資料於第二記憶體區域12中。控制器10更新實體區塊管理表中的對應頁可用性至「寫入」狀態(滿:此儲存區域係充滿有效資料)(步驟ST12)。
在寫入頁單元資料之後,控制器10暫存寫入資料之邏輯位址及作為寫入資料之目的地的頁之實體位址於頁管理表之選定項目中。
若一實體位址係在暫存一新實體位址之前已經儲存於選定項目中,則控制器10覆寫該實體位址。儲存於由舊實體位址指示之頁中的舊資料變為無效資料。
13.控制器10更新圖3之快取管理表。對應於寫入資料的項目係呈現為無效狀態並且為自該主機設備的輸入資料而釋放(步驟ST13)。
其後,控制器10掃描圖7或圖8之實體區塊管理表以及圖4之頁管理表,並執行一釋放程序以設定其中所有頁單元資料係無效資料的一「作用」區塊為「自由」區塊。
明確而言,對應於係在實體區塊管理表中設定為「作用」並且其中由頁管理表中的一實體位址指示的一頁並不存在的一區塊之一項目係設定為「自由」。在圖8之組態中,釋放用於儲存頁可用性的區域。
‧「大單元」情況(參見,圖11、圖13及圖14之流程圖)
控制器10選擇自第一記憶體區域11輸出的資料並傳輸選定資料至第三記憶體區域13作為區塊單元之資料。參考圖11中步驟ST4'以後的步驟。
4'.控制器10搜尋圖7或圖8之實體區塊管理表並得到一自由區塊。控制器10分配獲得自由區塊至第三記憶體區域13(步驟ST4')。
控制器10更新對應於獲得自由區塊的實體區塊管理表之項目至「第三記憶體區域13(作用)」並指導該非揮發性半導體記憶體抹除獲得自由區塊中的資料。
若「大單元」之大小係小於區塊單元之大小,則控制器10可選擇第三記憶體區域13中使用的具有帶「寫入啟用」狀態之一空區域的一區塊,作為「小單元」情況。
5'.控制器10判斷構成區塊單元資料的區段單元資料之全部是否存在於第一記憶體區域11中(步驟ST5')。
明確而言,控制器10判斷圖3之快取管理表是否包括對應於包括在區塊單元之大小之邏輯位址範圍中的頁單元資料之所有項目,並且同時,判斷此等項目之所有區段旗標是否係「1」。
若構成區塊單元資料的區段單元資料之全部係在第一記憶體區域11中完成,則此程序進行至步驟ST7'。若並非對應於包括在邏輯位址範圍中的頁單元資料之所有項目係加以偵測,及/或該等區段旗標之任一者係「0」,則此程序進行至步驟ST6'。
6'.控制器10自第二記憶體區域12及/或第三記憶體區域13收集對應於並非包括在快取管理表中的頁位置以及具有區段旗標「0」的區段位置之遺失資料(步驟ST6')。
控制器10嘗試自第二記憶體區域12讀出遺失資料,如圖13中所示。
控制器10藉由頁單元之大小對準區段單元資料之一邏輯位址並搜尋對準邏輯位址處的頁管理表。
若偵測到該項目,則控制器10讀出對應於記錄於該項目中的實體位址之頁單元資料中的遺失資料。
若未偵測到該項目,則控制器10嘗試自第三記憶體區域13讀出遺失資料,如圖14中所示。
控制器10藉由區塊單元之大小對準區段單元資料之一邏輯位址並搜尋對準邏輯位址處的區塊管理表。控制器10讀出包括在對應於記錄於該項目中的實體位址之區塊單元資料中的遺失資料。
自第二記憶體區域12或第三記憶體區域13讀出的遺失資料係暫時儲存於第一記憶體區域11之一工作區域中或控制器10之主要記憶體中;然而,本發明並不限於此。
7'.在完成構成區塊單元資料的所有區段單元資料之後,控制器10指導該非揮發性半導體記憶體寫入選擇為寫入資料之目的地之空區塊中的區塊單元資料於第三記憶體區域13中(步驟ST7')。
在寫入區塊單元資料之後,控制器10暫存作為寫入資料之目的地的區塊之實體位址於對應於區塊單元之大小之邏輯位址範圍的區塊管理表之項目中。
若一實體位址係在暫存一新實體位址之前已經儲存於選定項目中,則控制器10覆寫該實體位址。儲存於由舊實體位址指示之區塊中的舊資料變為無效資料。
8'.控制器10更新圖3之快取管理表。對應於寫入資料的項目係呈現為無效狀態並且為自該主機設備的輸入資料而釋放(步驟ST8')。
其後,控制器10掃描圖7或圖8之實體區塊管理表以及圖6之區塊管理表,並執行一釋放程序以設定其中區塊單元資料係無效的一「作用」區塊為「自由」區塊。
明確而言,對應於在實體區塊管理表中設定為「作用」而且並非藉由區塊管理表中的一實體位址指示的一區塊之一項目係設定為「自由」。
同樣,若對應於包括在區塊單元之大小的寫入資料之邏輯位址範圍中的一邏輯位址之一項目存在於圖4或圖5之頁管理表中,則該項目係呈現為無效狀態。以傳輸儲存於第二記憶體區域12中的資料至第三記憶體區域13為基礎,為了使儲存於第二記憶體區域12中的資料無效以預防參考,實行此程序。
此外,在第二記憶體區域12中,控制器10設定其中所有頁單元資料係無效資料的一「作用」區塊為「自由」區塊。在圖8之組態中,釋放用於儲存頁可用性的區域。
(b).控制器10計數第一及第二記憶體區域11、12中的資料之數目並決定採用等於區塊單元的「大單元」或等於頁單元的「小單元」來管理該資料。
在此情況下,控制器10搜尋圖3之快取管理表以及圖4或圖5之頁管理表,並合計包括在藉由區塊單元之大小對準待輸出的資料之一邏輯位址所計算之邏輯位址範圍中的項目之總數於第一及第二記憶體區域11、12中。
若項目之總數係一預定臨限值或較大,例如不小於可儲存於區塊單元(「大單元」)之一個區域中的頁單元(「小單元」)資料之總數的50%,則採用「大單元」管理待輸出的資料,而且若項目之總數係小於該預定臨限值,則採用「小單元」管理待輸出的資料(步驟ST1→步驟ST2→步驟ST3)。
‧「小單元」情況(參見,圖10之流程圖)
控制器10儲存自第一記憶體區域11輸出的資料於第二記憶體區域12中作為頁單元之資料,如在上述情況「(a)」中一樣。在寫入自第一記憶體區域11輸出的資料於第二記憶體區域12中之後,更新圖3之快取管理表以使對應於寫入資料的項目呈現無效狀態,如在上述情況「(a)」中一樣。此外,更新圖4或圖5之頁管理表以及圖7或圖8之實體區塊管理表(步驟ST4至步驟ST13)。
‧「大單元」情況(參見,圖11之流程圖)
控制器10儲存自第一記憶體區域11輸出的資料於第三記憶體區域13中作為區塊單元之資料,如在上述情況「(a)」中一樣。在寫入自第一記憶體區域11輸出的資料於第三記憶體區域13中之後,更新圖3之快取管理表以使對應於寫入資料的項目呈現無效狀態,如在上述情況「(a)」中一樣。此外,更新圖4或圖5之頁管理表、圖6之區塊管理表以及圖7或圖8之實體區塊管理表(步驟ST4'至步驟ST8')。
在圖11之流程圖中,步驟ST4'可就配置於步驟ST7'之前。在此情況下,在決定待寫入於第三記憶體區域13中的資料之後,控制器10可分配一「自由」區塊至第三記憶體區域13。
C.自第二記憶體區域至第三記憶體區域的資料傳輸程序
參考圖15說明自第二記憶體區域12至第三記憶體區域13的資料傳輸程序。
第二記憶體區域12之容量係通常設定為小於第三記憶體區域13之容量,並且因此,若將某一數量的資料累積於第二記憶體區域12中(由等於頁單元的「小單元」之大小的資料所佔據的區塊之數目超過定義為第二記憶體區域12之容量的一容許範圍),則控制器10在該第二條件下自第二記憶體區域12選擇一彈射區塊。
控制器10傳輸等於儲存於彈射區塊中的頁單元之「小單元」之大小的每一資料至第三記憶體區域13,作為等於區塊單元的「大單元」之大小的資料。
換言之,控制器10將資料管理單元自等於頁單元的「小單元」改變為等於區塊單元的「大單元」。在此程序中,包括在「大單元」之大小之邏輯位址範圍中的複數個片段「小單元」資料係自第一、第二及第三記憶體區域11、12及13收集而且係合併成區塊單元資料(重組)。
藉由有效資料之寫入順序或數目來定義該第二條件。明確而言,控制器10執行下列程序(a)或程序(b)。
(a).控制器10自分配至第二記憶體區域12之區塊當中選擇具有最舊寫入順序的一區塊。包括在選定區塊中的每一頁單元資料係合併成區塊單元資料,並接著加以寫入於第三記憶體區域13中。在此情況下,控制器10管理第二記憶體區域12中的區塊之寫入順序。寫入順序資訊係儲存於(例如)控制器10、該非揮發性半導體記憶體或另一記憶體單元中。
(b).控制器10相對於第二記憶體區域12中的每一區塊,在藉由區塊單元(「大單元」)之大小對準該區塊中的頁單元(「小單元」)之大小的有效資料之一邏輯位址所計算的一邏輯位址範圍中加總儲存於第二記憶體區域12中的頁單元資料之數目。控制器10選擇具有最大加總值的區塊,並且該區塊中的每一有效資料係合併成區塊單元資料而且寫入於第三記憶體區域13中(步驟ST1至步驟ST8)。
以下說明情況「(b).」。
1.例如,如圖16中所示,控制器10藉由區塊單元之大小對準與分配至第二記憶體區域12之每一區塊中的頁單元之大小的有效資料相關聯的邏輯位址LA(步驟ST1)。
2.控制器10針對藉由區塊單元之大小對準的每一邏輯位址範圍來合計儲存於第二記憶體區域12中的有效資料之數目(步驟ST2)。區塊單元之大小之邏輯位址範圍X1、X2及X3中的有效資料之數目分別係3、2及1。
3.控制器10針對第二記憶體區域12中的每一區塊加總在步驟ST2中計數的有效資料之數目(步驟ST3)。控制器10並不實行與一邏輯位址重疊的有效資料之雙重計數。
關於第二記憶體區域12中的區塊Y1,區塊Y1中的有效資料係a1及a4。有效資料a1係包括在區塊單元之大小的邏輯位址範圍X1中。在邏輯位址範圍X1中,在第二記憶體區域12中存在三個有效資料a1、a2及a3。
有效資料a4係包括在區塊單元之大小的邏輯位址範圍X2中。在邏輯位址範圍X2中,在第二記憶體區域12中存在兩個有效資料a4及a6。
因此,關於第二記憶體區域12中的區塊Y1,邏輯位址範圍X1及X2中包括實體位址範圍Y1中的有效資料a1及a4之有效資料的總數係5。
關於區塊Y2,邏輯位址範圍X1中包括實體位址範圍Y2中的有效資料a2及a3之有效資料的總數係3。
關於區塊Y3,邏輯位址範圍X2中包括實體位址範圍Y3中的有效資料a6及a9之有效資料的總數係3。
4.控制器10選擇包括儲存於其中在步驟ST3中加總的總數係最大之區塊中的有效資料之區塊單元的大小之邏輯位址範圍中的有效資料(步驟ST4)。
在圖16之情況下,在第三記憶體區域13中寫入區塊單元之大小之邏輯位址範圍X1及X2中的有效資料a1、a2、a3、a4及a6,包括具有最大總數之實體位址範圍Y1中的有效資料。
下列說明顯示用於合併選定區塊中的頁單元資料成一個區塊單元資料並寫入區塊單元資料於第三記憶體區域13中的一程序。重複下列程序,直至將選定區塊中的所有頁單元資料寫入於第三記憶體區域13中。
5.控制器10搜尋圖7或圖8之實體區塊管理表,並得到一「自由」區塊作為寫入資料之目的地。將此自由區塊分配至第三記憶體區域13。控制器10更新對應於獲得自由區塊的圖7或圖8之實體區塊管理表之項目至「第三記憶體區域13(作用)」並指導該非揮發性半導體記憶體抹除獲得自由區塊中的資料(步驟ST5)。
6.控制器10合併頁單元資料成區塊單元資料。明確而言,控制器10自第一、第二及第三記憶體區域11、12及13收集包括在藉由區塊單元之大小對準頁單元資料之邏輯位址所計算的邏輯位址範圍中的有效資料(步驟ST6)。
控制器10搜尋圖3之快取管理表。若偵測到對應於包括在藉由區塊單元之大小對準之邏輯位址範圍中的頁單元資料之一邏輯位址的一項目,則控制器10自第一記憶體區域11讀出該項目中具有區段旗標「1」的所有區段單元資料。
關於包括並非自第一記憶體區域11讀出的有效資料之一邏輯位址範圍,控制器10搜尋圖4或圖5之頁管理表。若偵測到對應於與該邏輯位址範圍相關聯的頁單元資料之一邏輯位址的一項目,則控制器10自第二記憶體區域12讀出並非自第一記憶體區域11讀出的、包括在對應於記錄於該項目中的實體位址之頁單元資料中的有效資料。
關於包括並非自第一及第二記憶體區域11及12讀出的有效資料之一邏輯位址範圍,控制器10搜尋圖6之區塊管理表。在偵測對應於藉由區塊單元之大小對準的邏輯位址之一項目之後,控制器10自第三記憶體區域13讀出並非自第一及第二記憶體區域11及12讀出的、包括在對應於記錄於該項目中的實體位址之區塊單元資料中的有效資料。
暫時儲存自第一記憶體區域11、第二記憶體區域12及/或第三記憶體區域13讀出的有效資料之目的地係第一記憶體區域11或控制器10之主要記憶體的一工作區域;然而,本發明並不限於此。
7.在完成構成區塊單元資料的所有區段單元資料之後,控制器10指導該非揮發性半導體記憶體寫入選擇為寫入資料之目的地之空區塊中的區塊單元資料(步驟ST7)。
在圖15之流程圖中,步驟ST5可就配置於步驟ST7之前。在此情況下,在決定待寫入於第三記憶體區域13中的資料之後,控制器10可分配一「自由」區塊至第三記憶體區域13。
在寫入區塊單元資料之後,控制器10暫存作為寫入資料之目的地的區塊之實體位址於對應於區塊單元之大小之邏輯位址範圍的區塊管理表之項目中。
若一實體位址係在暫存一新實體位址之前已經儲存於選定項目中,則控制器10覆寫該實體位址。儲存於由舊實體位址指示之區塊中的舊資料變為無效資料。
8.控制器10使對應於自第一、第二及第三記憶體區域11、12及13收集的寫入資料之項目無效(步驟ST8)。
控制器10更新圖3之快取管理表。對應於寫入資料的項目係呈現為無效狀態並且為自該主機設備的輸入資料而釋放。
其後,控制器10掃描圖7或圖8之實體區塊管理表以及圖6之區塊管理表,並執行一釋放程序以設定其中區塊單元資料係無效的一「作用」區塊為「自由」區塊。
明確而言,對應於在實體區塊管理表中設定為「作用」而且並非藉由區塊管理表中的一實體位址指示的一區塊之一項目係設定為「自由」。
同樣,若對應於包括在區塊單元之大小的寫入資料之邏輯位址範圍中的一邏輯位址之一項目存在於圖4或圖5之頁管理表中,則該項目係呈現為無效狀態。以傳輸儲存於第二記憶體區域12中的資料至第三記憶體區域13為基礎,為了使儲存於第二記憶體區域12中的資料無效以預防參考,實行此程序。
此外,在第二記憶體區域12中,控制器10設定其中所有頁單元資料係無效資料的一「作用」區塊為「自由」區塊。在圖8之組態中,釋放用於儲存頁可用性的區域。
D.其他
除以上說明以外,可在藉由該主機設備指明的一預定時間實行自第一記憶體區域11至第二記憶體區域12及/或第三記憶體區域13的資料傳輸程序以及自第二記憶體區域12至第三記憶體區域13的資料傳輸程序。
例如,若該半導體儲存裝置接收一快取清除命令,則控制器10依據該第一條件執行自第一記憶體區域11至第二記憶體區域12及/或第三記憶體區域13的資料傳輸。
(3)系統範例
圖17顯示對應於該第二基本組態的一系統範例。
一主機設備31採用依據此具體實施例的一半導體儲存裝置32來執行資料傳輸。主機設備31係(例如)諸如筆記型電腦之個人電腦。半導體儲存裝置32係(例如)作為安裝於主機設備31中次要儲存裝置之一SSD。
半導體儲存裝置32包含第一、第二及第三記憶體區域11、12及13與控制此等記憶體區域的控制器10。第一記憶體區域11係包括在諸如DRAM之一揮發性半導體記憶體21中,而且第二及第三記憶體區域12及13係包括在諸如NAND型快閃記憶體之一非揮發性半導體記憶體22中。
控制器10具有一CPU及一主要記憶體(用於儲存一程式、管理資訊及一工作區域)。控制器10藉由以快取管理表、頁管理表、區塊管理表及實體區塊管理表為基礎變換一邏輯位址至一實體位址來管理第一、第二及第三記憶體區域11、12及13中的資料位置。
自主機設備31的資料係透過一主機I/F(介面)23輸入至半導體儲存裝置32。主機設備31藉由區段單元執行對半導體儲存裝置32的存取。
圖18顯示自主機設備31的資料流。
如以上程序方法中所說明,自主機設備31的資料係儲存於第一記憶體區域11中,並因此依據該第一條件變換至第二記憶體區域12或第三記憶體區域13。此外,儲存於第二記憶體區域12中的資料係依據該第二條件變換至第三記憶體區域13。
第二記憶體區域12中的一區塊以及第三記憶體區域13中的一區塊並沒有一對一對應。以實體區塊管理表為基礎,非揮發性半導體記憶體22中的複數個區塊之一部分係用作第二記憶體區域12,並且另一部分係用作第三記憶體區域13。
(4)操作範例
藉由將寫入效率與對圖18的參考比較來說明此具體實施例之操作範例。同時,說明管理表之大小的分析。
A.寫入效率之比較
在下列說明中,揮發性半導體記憶體21係假定為一DRAM,而且非揮發性半導體記憶體22係假定為一NAND型快閃記憶體。該NAND型快閃記憶體之區塊單元及頁單元之大小係分別假定為512kB及4kB,而且自該主機設備的區段單元之大小係假定為512B。在該第一條件中定義的預定臨限值(「資料之數目」或「資料數量」)係假定為該NAND型快閃記憶體之區塊單元之大小的50%(256kB)。
考量下列程序:在將區塊單元資料X儲存於第三記憶體區域13中的此一狀態中更新包括在區塊單元資料X之邏輯位址範圍中的1個區段單元資料Y,並且然後,將資料Y寫入於第二記憶體區域12或第三記憶體區域13中以使其成為非揮發性資料。
如自主機設備31觀察,包括在區塊單元資料X之邏輯位址範圍中的區段單元資料Y係在已將資料Y儲存於第二記憶體區域12或第三記憶體區域13中時呈現為更新狀態。
(a).操作範例1
當資料Y係在於第一記憶體區域11中不存在資料的初始狀態中寫入於第一記憶體區域11中時,因此,僅區段單元資料Y(512B)存在於包括資料Y的區塊單元之大小之邏輯位址範圍內的第一記憶體區域11中(該邏輯位址範圍係等於資料X之邏輯位址範圍)。控制器10能藉由搜尋快取管理表來偵測資料數量。
以上大小512B係小於在該第一條件中定義為預定臨限值的256kB。
控制器10傳輸儲存於第一記憶體區域11中的資料Y至第二記憶體區域12作為藉由頁單元之大小對準資料Y之邏輯位址所計算之邏輯位址範圍內的頁單元資料(以下稱為資料P)。
因為區段單元資料Y之大小係小於頁單元之大小,故需要自(例如)第三記憶體區域13讀出遺失資料以便完成頁單元資料P。
控制器10藉由區塊單元之大小對準資料P之邏輯位址以搜尋對準邏輯位址(其係等於資料X之邏輯位址)處的區塊管理表。
若偵測到對應於邏輯位址的一項目,則控制器10檢驗儲存資料X的實體位址。
控制器10自第三記憶體區域13中的資料X讀出對應於資料P之邏輯位址範圍的頁單元資料於揮發性半導體記憶體21上,並藉由寫入資料Y於其之上來建立資料P之影像。
控制器10寫入包括區段單元資料Y的頁單元資料P於第二記憶體區域12中的空頁中並更新快取管理表、頁管理表及區塊管理表。寫入於第二記憶體區域12中的資料Y變為非揮發性資料。
當連續地寫入具有與資料Y相同大小的資料時,因為1個區塊單元係由128個頁單元構成,故半導體儲存裝置32抹除一個區塊單元資料用於更新128個區段單元之資料(用於寫入128個頁)。
在此情況下,寫入效率係512kB/(512B×128)=8,而且與未使用此具體實施例的情況比較,改良寫入效率(512kB/512B=1024)。在此範例中,更新1個區段單元資料;然而,若更新一個頁單元資料,則進一步改良寫入效率。
在以上提出的專利文件之技術中,資料區塊及日誌區塊具有一對一對應,並且因此,例如若更新分別屬於一不同區塊的128個區段之資料,則需要抹除128個區塊。
或者,在此具體實施例中,第二記憶體區域12中的區塊以及第三記憶體區域13中的區塊並沒有一對一對應。因此,即使更新儲存於一不同區塊中的複數個區段單元資料,仍可將取代資料儲存於第二記憶體區域12之同一區塊中而且在此情況下的資料抹除數量僅係一個區塊單元之大小。
(b).操作範例2
假定初始狀態:包括在藉由區塊單元之大小對準資料Y之邏輯位址所計算之邏輯位址範圍(該邏輯位址範圍係等於資料X之邏輯位址範圍)中的384kB之取代資料已寫入於第一記憶體區域11中。
在此初始狀態中,當包括在資料X之邏輯位址範圍中而且並非儲存於第一記憶體區域11中的區段單元資料Y係寫入於第一記憶體區域11中時,包括資料Y的(384kB+512B)之資料存在於資料X之邏輯位址範圍中。控制器10能藉由搜尋快取管理表來偵測資料數量。
以上大小(384kB+512B)並非小於在該第一條件中定義為預定臨限值的256kB。
控制器10傳輸儲存於第一記憶體區域11中的包括資料Y的(384kB+512B)之資料至第三記憶體區域13作為藉由區塊單元之大小對準資料Y之邏輯位址所計算之邏輯位址範圍內的區塊單元資料(以下稱為資料B)。
因為區段單元資料Y之大小係小於區塊單元之大小,故需要自(例如)第三記憶體區域13讀出遺失資料以便完成區塊單元資料B。
控制器10搜尋資料B之邏輯位址(其係等於資料X之邏輯位址)處的區塊管理表以偵測儲存資料X的實體位址。控制器10讀出自第三記憶體區域13的資料X於揮發性半導體記憶體21上並藉由寫入資料Y於其之上來建立資料B之影像。
控制器10抹除「自由」區塊中的資料並分配抹除自由區塊至第三記憶體區域13。包括區段單元資料Y的區塊單元資料B係寫入於此區塊中。更新快取管理表及區塊管理表。依據此點,寫入於第三記憶體區域13中的區段單元資料Y變為非揮發性資料。
在此情況下,半導體儲存裝置32抹除一個區塊單元資料以更新約384kB(384kB+512B)之資料。
因此,寫入效率係512kB/384kB=1.33,而且與其中藉由區段單元(512kB/512B=1024)更新約384kB之資料的情況比較,改良該寫入效率。
在此範例中,更新約384kB之資料;然而,若資料之大小變為更接近於如區塊單元之大小的512kB,則進一步加以改良寫入效率。
B.管理表之大小
若採用「小單元」管理該非揮發性半導體記憶體,則控制器10可執行資料寫入位置的精細控制而與自主機設備31的資料大小或資料數量無關並且可改良寫入效率。然而,用於執行位址變換的管理資料變為較大之大小,因而可能使控制器10中的處理效率劣化。
或者在此具體實施例中,採用兩個管理單元,即「小單元」及「大單元」。藉由使用依據資料管理解析度的管理表,控制器10抑制採用「小單元」管理的資料之數目的增加。因此,依據此具體實施例的半導體儲存裝置32預防管理表之大小的增加並實現高寫入效率。
(5)其他
相對於第二及第三記憶體區域12及13,除此具體實施例之程序以外還實行下列程序。
A.第二記憶體區域之壓縮
當增加第二記憶體區域12中的無效資料之數目時,以及當增加沒有帶「寫入啟用」狀態之頁的區塊之數目時,如圖19中所示,控制器10可以僅收集有效資料並且複製此等有效資料至一自由區塊。
因此,能釋放其中最初儲存有效資料的區塊,因而減小第二記憶體區域12中的無效資料之數目,而且增加自由區塊之數目。以收集並複製有效資料至一自由區塊(一壓縮區塊)為基礎,此程序係稱為第二記憶體區域12之壓縮。
寫入效率可能能夠藉由壓縮來進一步改良。然而,在此具體實施例中,在類似情況下,能採用壓縮來替換自第二記憶體區域12至第三記憶體區域13的資料傳輸程序,並且因此,壓縮係輔助程序。
例如,控制器10計算用於第二記憶體區域12中的每一區塊之「小單元」的無效資料之數目。控制器10以無效資料之數目的遞降順序來循序選擇一區塊,並且因此,將選定區塊中的有效資料複製至一抹除自由區塊。充滿有效資料的區塊係分配至第二記憶體區域12。
例如在其中包括在第二記憶體區域12中的無效資料之總數變為大於一預定臨限值的情況下實行壓縮。
B.第三記憶體區域之壓縮
在其中第三記憶體區域13中的資料管理單元(「大單元」)之大小係小於區塊單元之大小的情況下,能應用第三記憶體區域13之壓縮。
當增加第三記憶體區域13中的無效資料之數目時,以及當增加沒有帶「寫入啟用」狀態之頁的區塊之數目時,如圖19中所示,控制器10可以僅收集有效資料並且複製此等有效資料至一自由區塊。
因此,能釋放其中最初儲存有效資料的區塊,因而減小第三記憶體區域13中的無效資料之數目,並且增加自由區塊之數目。以收集並複製有效資料至一自由區塊(一壓縮區塊)為基礎,此程序係稱為第三記憶體區域13之壓縮。
例如,控制器10計算用於第三記憶體區域13中的每一區塊之「大單元」的無效資料之數目。控制器10以無效資料之數目的遞降順序來循序選擇一區塊,並且因此,將選定區塊中的有效資料複製至一抹除自由區塊。充滿有效資料的區塊係分配至第三記憶體區域13。
例如在其中包括在第三記憶體區域13中的無效資料之總數變為大於一預定臨限值的情況下實行壓縮。
3.概述
依據此具體實施例,下列組態能實現寫入效率之改良與效能劣化及使用期限縮短之預防,不管自該主機設備的資料大小或資料數量。
‧儲存位置之分配
一半導體儲存裝置包括:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入之一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二及第三記憶體區域,其係組態於藉由一第二單元實行資料之寫入並藉由一第三單元實行資料之抹除之一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行下列程序。
該控制器執行一第一處理,其用於藉由該第一單元儲存複數個資料於該第一記憶體區域中;以及一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第二記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;以及一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第三記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大。
‧自第二記憶體區域至第三記憶體區域的資料傳輸(重組)
該控制器進一步執行一第四處理,其用於選擇待自該第二記憶體區域輸出的第一管理單元之資料,以及一第五處理,其用於藉由該第二管理單元儲存包括選定資料的資料於該第三記憶體區域中。
‧共用記憶體
該等第二及第三記憶體區域共用同一非揮發性半導體記憶體,並且該控制器分別分配該第三單元之區域至該等第二及第三記憶體區域。
‧分配條件1(第一記憶體區域中的資料之數目)
該控制器藉由對準待自該第一記憶體區域輸出的資料之邏輯位址至該第二管理單元來計算邏輯位址範圍,計數包括在該邏輯位址範圍中並儲存於該第一記憶體區域中的資料之一數目,若資料之該數目係小於一預定臨限值,則執行該第二處理,以及若資料之該數目係該預定臨限值或較大,則執行該第三處理。
‧分配條件2(第一及第二記憶體區域中的資料之數目)
該控制器藉由對準待自該第一記憶體區域輸出的資料之邏輯位址至該第二管理單元來計算邏輯位址範圍,計數包括在該邏輯位址範圍中並儲存於該等第一及第二記憶體區域中的資料之一數目,若資料之該數目係小於一預定臨限值,則執行該第二處理,以及若資料之該數目係該預定臨限值或較大,則執行該第三處理。
‧重組之觸發
若由儲存於該第二記憶體區域中的複數個有效及無效資料佔據的第三單元之區域的一數目超過一容許範圍,則該控制器執行該第四及第五處理。
‧重組條件1(舊資料)
在該第四處理中,該控制器偵測該第二記憶體區域中具有最舊寫入順序的該第三單元之一區域,並且選擇儲存於該第三單元之該區域中的該第一管理單元之每一有效資料。
‧重組條件2(有效資料)
在該第四處理中,該控制器藉由對準有效資料之邏輯位址至用於該第二記憶體區域中的該第三單元之每一區域的該第二管理單元來計算邏輯位址範圍,計數包括在該邏輯位址範圍中並且儲存於該第二記憶體區域中的有效資料之一數目,總計用於該第二記憶體區域中的該第三單元之每一區域的有效資料之數目,偵測具有最大總數的該第三單元之一區域,並且選擇儲存於該第三單元之該區域中的該第一管理單元之每一有效資料。
‧重組條件3(無效資料)
在該第四處理中,該控制器計數用於該第二記憶體區域中的該第三單元之每一區域的無效資料之一數目,偵測具有無效資料之最小數目的該第三單元之一區域,並且選擇儲存於該第三單元之該區域中的該第一管理單元之每一有效資料。
‧該第二記憶體區域中的資料管理單元:小
該第二單元係該第一管理單元的兩倍或更大自然數倍大。
‧該第二記憶體區域中的資料管理單元:大
該第一管理單元係該第二單元的兩倍或更大自然數倍大,而且該第三單元係該第一管理單元的兩倍或更大自然數倍大。
‧該第三記憶體區域中的資料管理單元:小
該第三單元係該第二管理單元的兩倍或更大自然數倍大。
‧該第三記憶體區域中的資料管理單元:大
該第二管理單元係該第三單元的兩倍或更大自然數倍大。
‧該第二記憶體區域之無效
在該第二處理中,該控制器寫入該第二單元之空區域中的該第一管理單元之新資料於該第二記憶體區域中,若新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第二記憶體區域中的舊資料為無效,將新資料視為具有優於舊資料之優先權的有效資料,並且將舊資料視為藉由參考新資料而加以忽視的無效資料。
‧該第二記憶體區域之壓縮
該控制器判斷該第二記憶體區域中的無效資料之一數目是否超過一預定臨限值,計數用於該第二記憶體區域中的該第三單元之每一區域的無效資料之一數目;按順序自具有最大數目之無效資料的該區塊選擇該第三單元之區域中的有效資料,重新寫入選定有效資料於該第三單元之一第一區域中,該第一區域係空的,在重新寫入選定有效資料於其中之後分配該第一區域至該第二記憶體區域,並且釋放該第二記憶體區域中的該第三單元之一第二區域,該第二區域藉由重新寫入選定有效資料於該第一區域中而沒有有效資料。
‧該第三記憶體區域之無效
在該第三處理中,該控制器寫入該第三單元之空區域中的該第二管理單元之新資料於該第三記憶體區域中,若新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第三記憶體區域中的舊資料為無效,將新資料視為具有優於舊資料之優先權的有效資料,並且將舊資料視為藉由參考新資料而加以忽視的無效資料。
‧該第三記憶體區域之壓縮
該控制器判斷該第三記憶體區域中的無效資料之一數目是否超過一預定臨限值,計數用於該第三記憶體區域中的該第三單元之每一區域的該第二管理單元之無效資料的一數目,按順序自具有最大數目之無效資料的該區塊選擇該第三單元之區域中的有效資料,重新寫入該第二管理單元之選定有效資料於該第三記憶體區域中的該第三單元之空區域中,並且釋放該第三單元之一區域。該第二管理單元係小於該第三單元。
4. 應用範例
依據此第三具體實施例的半導體儲存裝置可應用於(例如)用作諸如筆記型電腦之個人電腦中的次要儲存裝置之SSD。稍後說明此情況下的一特定範例。
5.結論
依據此具體實施例,使用其中指定該抹除、讀取及寫入單元之非揮發性半導體記憶體的半導體儲存裝置能實現寫入效率之改良與效能劣化及使用期限縮短之預防,不管自該主機設備的資料大小或資料數量。
本發明並不限於以上說明的具體實施例,而且能修改並體現組件而不脫離本發明之精神及範疇。能藉由以上說明之具體實施例中揭示的複數個組件的適當組合來形成各種發明。例如,可從該等具體實施例中揭示的所有組件省略若干組件,或者可將不同具體實施例內的組件彼此適當組合。
[II.用於預防抹除計數之增加的半導體儲存裝置]
1.概要
基於無效資料之抹除,段落I.中說明的壓縮在一儲存區域之有效利用上係優良的。然而,壓縮需要將相同資料寫入至另一區塊的複製操作,並且因此產生副效應:當立即更新經歷壓縮的有效資料時,區塊之抹除計數會增加。
藉由壓縮新近使用的區塊係充滿有效資料;然而,當更新經歷壓縮的資料時,資料變為無效資料。此外,當該區塊中的無效資料之數目增加時,該區塊中的有效資料會再次變為經歷壓縮。因此,該區塊之抹除計數可能會增加。
依據以上組態,待經歷壓縮的資料較佳具有低更新頻率,而且需要用於判別資料的構件。
以以上知識為基礎,在本具體實施例中,提供用於判別具有高更新頻率的資料與具有低更新頻率的資料之構件,而且具有低更新頻率的資料變為待經歷壓縮的目標,因而預防待經歷壓縮的資料加以立即更新。依據此組態,減小該等區塊之抹除計數以便預防記憶體單元之劣化。
提供下列記憶體區域作為一特定組態。
‧一第一記憶體區域,其係在藉由該第一單元或較小實行資料之讀取及寫入的一揮發性半導體記憶體中;
‧一第二記憶體區域,其係由藉由該第二單元實行資料之讀取及寫入並藉由該第三單元實行資料之抹除的一非揮發性半導體記憶體中的該第三單元之區域構成,並採用「小單元(第一管理單元)」加以管理,該「小單元」之大小係該第一單元之大小的自然數倍大;
‧一第三記憶體區域,其係由藉由該第二單元實行資料之讀取及寫入並藉由該第三單元實行資料之抹除的一非揮發性半導體記憶體中的該第三單元之區域構成,而且採用「大單元(第二管理單元)」加以管理,該「大單元」之大小係該「小單元」之大小的兩倍或更大自然數倍大而且係該第三單元之大小的自然數倍大;以及
‧一第四記憶體區域,其係由藉由該第二單元實行資料之讀取及寫入並藉由該第三單元實行資料之抹除的一非揮發性半導體記憶體中的該第三單元之區域構成,並採用「小單元」加以管理,該「小單元」之大小係該第一單元之大小的自然數倍大。
該第四記憶體區域係用作用於判別具有高更新頻率的資料與具有低更新頻率的資料之構件。粗略而言,除段落I.中說明的基本組態以外,還提供該第四記憶體區域以判別具有高更新頻率的資料與具有低更新頻率的資料。
該第一單元之複數個資料係寫入於該第一記憶體區域中,並接著寫入於該第三記憶體區域或該第四記憶體區域中。該第四記憶體區域具有一FIFO(先進先出)結構。當用於該第四記憶體區域的該第三單元之「作用」區域的數目變為大於一容許範圍時,滿足一第三條件而且係儲存於具有該第二記憶體區域中的最舊分配順序的該第三單元之一區域中的有效資料係傳輸至該第四記憶體區域作為「大單元」資料。
具有包括不滿足該第三條件的有效資料之該第二記憶體區域中的最舊分配順序的該第三單元之區域係移動至該第二記憶體區域。當用於該第二記憶體區域的該第三單元之「作用」區域的數目變為大於一容許範圍並且滿足一第四條件時,選擇並複製該第二記憶體區域中的有效資料至該第三單元之一空區域。充滿有效資料的該第三單元之區域係分配至該第二記憶體區域(壓縮)。
待在該第二記憶體區域中經歷壓縮的一目標變為具有低更新頻率的資料之原理係如下。
因為該第四記憶體區域具有該第三單元之FIFO結構,故輸入至該第四記憶體區域的資料會在某一週期內停留在該第四記憶體區域中。因此,在該第四記憶體區域中更新具有高更新頻率的資料。當更新資料時,舊資料變為無效資料,而且因為將取代資料新近輸入至該第四記憶體區域,故具有高更新頻率的資料會停留在該第四記憶體區域中而不加以輸出。
使該第二記憶體區域中的有效資料成為待經歷壓縮的目標,而且不使該第四記憶體區域中的有效資料成為待經歷壓縮的目標,因而能使具有低更新頻率的資料成為待經歷壓縮的目標。因此,可以預防作為壓縮之副效應而增加區塊之抹除計數。
2.具體實施例
(1)第一具體實施例
圖20顯示依據一第一具體實施例的一半導體儲存裝置。
一第一記憶體區域11暫時儲存自一主機設備的資料。該資料係藉由區段單元(該第一單元)或較小寫入於第一記憶體區域11中。第一記憶體區域11係組態於諸如一DRAM之一揮發性半導體記憶體中。
一第二記憶體區域12係由一非揮發性半導體記憶體22中的區塊構成。在非揮發性半導體記憶體22中,其中一次執行讀取/寫入的單元係一頁(該第二單元)而且其中一次執行抹除的單元係一區塊(該第三單元)。區塊單元之大小係頁單元之大小的自然數倍大。第二記憶體區域12藉由等於頁單元的「小單元」來儲存資料。
一第三記憶體區域13係由非揮發性半導體記憶體22中的區塊構成並且藉由等於區塊單元的「大單元」來儲存資料。
一第四記憶體區域14係由非揮發性半導體記憶體22中的區塊構成並且藉由等於頁單元的「小單元」來儲存資料。
第一記憶體區域11之儲存容量係假定為大於非揮發性半導體記憶體22中的一個區塊單元之大小,而且非揮發性半導體記憶體22之儲存容量係假定為大於提供為該半導體儲存裝置(例如,SSD)之產品規格的儲存容量。
非揮發性半導體記憶體22之儲存容量係如下分配至第二、第三及第四記憶體區域12、13及14。
與提供為該半導體儲存裝置之產品規格的儲存容量相同或大於該儲存容量的儲存容量係分配至第三記憶體區域13。
藉由自非揮發性半導體記憶體22之儲存容量減去第三記憶體區域13之儲存容量所剩餘的儲存容量係分配至第二及第四記憶體區域12及14。第二及第四記憶體區域12及14之每一儲存容量及其之間的比率不受限制。
第二、第三及第四記憶體區域12、13及14係由(例如)非揮發性半導體記憶體22(例如NAND型快閃記憶體)中的一或多個區塊構成。
代表資料之大小的該等第一、第二及第三單元並不包括添加至自該半導體儲存裝置中的該主機設備之主要資料的冗餘資料(ECC、內部控制旗標等)。
一般地,包括該非揮發性半導體記憶體(例如一NAND型快閃記憶體)的系統在添加冗餘資料至主要資料的狀態中執行讀取/寫入。然而,為了簡化解釋,以上假定該等單元之每一者。
一控制器10具有一CPU及一主要記憶體,而且能操作用於執行資料管理的一程式。在此具體實施例中,能將藉由控制器10實現的功能實施為硬體及軟體之任一者或兩者的組合。是否將此等功能實施為硬體或軟體取決於實際具體實施例或施加於整個系統的設計約束。
當控制器10之該主要記憶體係由一揮發性半導體記憶體(例如DRAM)組成時,第一記憶體區域11可組態於控制器10之該主要記憶體中。
控制器10包括一快取管理表、一頁管理表、一區塊管理表、一頁FIFO管理表以及一實體區塊管理表以便管理其中藉由邏輯位址自該主機設備存取的資料係儲存於第一、第二、第三及第四記憶體區域11、12、13及14中的情況。此等管理表係在該半導體儲存裝置之操作期間展開於控制器10之該主要記憶體上。
--快取管理表--
圖21顯示一快取管理表之一範例。
該快取管理表藉由等於頁單元的「小單元」來控制儲存於圖20之第一記憶體區域11中的資料。藉由區段單元執行有效資料的控制。
假定將一個項目指派至第一記憶體區域11中的一個頁單元之一個區域。
項目之數目係假定為能包含於第一記憶體區域11內的頁單元資料之數目,即,不大於(第一記憶體區域11之總容量)/(頁單元之大小)。
頁單元資料之一邏輯位址、第一記憶體區域11之一實體位址以及指示頁單元之相關區域中的有效資料之位置的一區段旗標係與每一項目相關聯。
用於暫時儲存對應於每一項目的資料之頁單元的區域係提供在第一記憶體區域11中,而且該區域之實體位址係儲存於每一項目中。若指定對應於該項目的區域之實體位址,例如若連續地佈置頁單元之區域,則不需要將實體位址儲存於該項目中。
第一記憶體區域11中的頁單元之每一區域係進一步劃分成快取管理表中的區段單元之區域。藉由將區段之數值設定為「1」或「0」來代表區段單元之每一區域中的資料狀況。
在具有「1」之區段旗標的一區域中,儲存自該主機設備的有效資料。在具有「0」之區段旗標的一區域中,不儲存自該主機設備寫入的最近資料,因而將該區域視為一無效區域。其中所有區段旗標係「0」的項目係當作一未用項目。
以上快取管理表之組態係基於稱為其中將邏輯位址分配至每一項目之完全相關聯方法的控制方法。然而,可藉由n向設定相關聯方法或類似方法來控制第一記憶體區域11中的邏輯位址與實體位址之間的對應。
--頁管理表--
圖22顯示一頁管理表之一範例。
該頁管理表藉由等於頁單元的「小單元」來控制儲存於圖20之第二及第四記憶體區域12及14中的資料。
假定將一個項目指派至第二及第四記憶體區域12及14中的一個區塊。
為了暫存處理中的區塊,項目之數目係假定具備能包含於第二及第四記憶體區域12及14內的區塊之數目的裕度,即,該數目提供[(第二及第四記憶體區域12及14之總容量)/(區塊單元之大小)]的裕度。
分配至第二記憶體區域12或第四記憶體區域14的區塊之實體位址係與每一項目相關聯,而且該區塊中的頁單元資料之邏輯位址係記錄於每一項目中。
一頁可用性經組態以能夠針對每一頁區別「寫入啟用」狀態(此儲存區域係空的)與「寫入禁止」狀態(此儲存區域係無效的,因為舊資料已一次性地寫入於其中並且新資料係寫入於另一儲存區域中)。
--區塊管理表--
圖23顯示一區塊管理表之一範例。
該區塊管理表藉由等於區塊單元的「大單元」來控制儲存於圖20之第三記憶體區域13中的資料。
假定將一個項目指派至第三記憶體區域13中的一個區塊單元之一個區域。
項目之數目係假定為能包含於第三記憶體區域13內的區塊單元資料之數目,即,不大於(第三記憶體區域13之總容量)/(區塊單元之大小)。
以邏輯位址的順序配置每一項目。對應於區塊單元資料之邏輯位址並指明第三記憶體區域13中的一區塊之一實體位址係與每一項目相關聯。
--頁FIFO管理表--
圖24顯示一頁FIFO管理表之一範例。
該頁FIFO管理表控制分配至圖20之第四記憶體區域14之區塊中的資料。
假定將一個項目指派至第四記憶體區域14中的一個區塊。
項目之數目係假定為能加以分配至第四記憶體區域14的區塊之數目,即,(第四記憶體區域14之總容量)/(區塊單元之大小)。
採用區塊單元之FIFO(先進先出)結構藉由使用頁FIFO管理表來管理第四記憶體區域14。
對應於新近分配(輸入)至第四記憶體區域14的一區塊之一項目係添加至頁FIFO管理表之頂部(入口側),而且最初暫存於頁FIFO管理表中的項目係逐一向後偏移。
當項目之數目超過一容許範圍時,自第四記憶體區域14輸出具有與頁FIFO管理表之底部(出口側)處的項目相關聯之最舊分配順序的區塊。
--實體區塊管理表--
圖25顯示一實體區塊管理表之一範例。
該實體區塊管理表控制非揮發性半導體記憶體22中的區塊之使用。
假定將一個項目指派至第二、第三及第四記憶體區域12、13及14中的一個區塊(實體區塊)。項目之數目係假定為能用作一資料區域的區塊之數目。
每一項目係與一區塊之一實體位址相關聯並儲存該區塊之使用(儲存區域(區塊)是否係用作第二、第三及第四記憶體區域(作用)或未使用(自由))。
說明由圖20之控制器10所執行的一程序流程。
控制器10首先寫入自該主機設備的區段單元(第一單元)資料於第一記憶體區域11中並在某一週期內儲存資料於其中。關於此資料儲存程序,段落I.中說明的「A.該第一記憶體區域中的資料儲存程序」能應用。
控制器10基於一預定條件(其可以係與段落I.中說明的「B.自該第一記憶體區域的資料輸出程序」之該第一條件實質上相同),區別是否應該採用「小單元(第一管理單元)」或「大單元(第二管理單元)」來管理儲存於第一記憶體區域11中的資料。
「小單元」之大小係頁單元之大小的自然數倍大或者頁單元之大小係「小單元」之大小的自然數倍大。
「大單元」之大小係「小單元」之大小的兩倍或更大自然數倍大,而且同時,係區塊單元之大小的自然數倍大。
在此具體實施例中,為簡化解釋,以下假定管理表中使用的單元之每一者:在第二及第四記憶體區域12及14中的一資料管理單元的「小單元」之大小係等於頁單元(第二單元)之大小。在第三記憶體區域13中的一資料管理單元的「大單元」之大小係等於區塊單元(第三單元)之大小。
然而,藉由劃分一頁來控制該頁,明確而言,「小單元」之大小可以係區段單元之大小的自然數倍大而且頁單元之大小可以係「小單元」之大小的兩倍或更大自然數倍大。
或者,共同地控制複數個頁,明確而言,「小單元」之大小可以係頁單元之大小的兩倍或更大自然數倍大而且區塊單元之大小可以係「小單元」之大小的兩倍或更大自然數倍大。
同樣,藉由劃分一區塊來控制該區塊,明確而言,「大單元」之大小可以係「小單元」之大小的兩倍或更大自然數倍大而且區塊單元之大小可以係「大單元」之大小的兩倍或更大自然數倍大。
或者,共同地控制複數個區塊,明確而言,「大單元」之大小可以係區塊單元之大小的兩倍或更大自然數倍大。
該等單元之間的以上關係可加以設定為下列範例:區段單元(第一單元)<「小單元」<頁單元(第二單元)<區塊單元(第三單元)「大單元」。
若採用「小單元」管理儲存於第一記憶體區域11中的資料,則將資料傳輸至第四記憶體區域14。若採用「大單元」管理儲存於第一記憶體區域11中的資料,則將資料傳輸至第三記憶體區域13。
此資料輸出程序係與段落I.中說明的「B.自該第一記憶體區域的資料輸出程序」實質上相同。然而,不同於段落I.,「小單元」資料之目的地係第四記憶體區域14。
A.該第四記憶體區域中的FIFO程序
如已經說明,第四記憶體區域14具有區塊單元之FIFO結構。圖26顯示第四記憶體區域14中的FIFO程序。
1.控制器10參考對應於為以附加方式寫入資料所製備之一區塊(以下稱為用於頁附加之實體區塊)的頁管理表之項目。控制器10儲存自第一記憶體區域11輸出的資料作為等於頁單元的「小單元」之資料於用於頁附加之實體區塊的寫入啟用狀態之一頁中(步驟ST1)。
控制器10搜尋快取管理表並判斷經決定加以輸出的構成頁單元資料的區段單元資料之全部是否存在於第一記憶體區域11中。
若並非所有區段單元資料係在第一記憶體區域11中完成,則控制器10自第二、第三及第四記憶體區域12、13及14收集遺失資料。
在完成構成頁單元資料的所有區段單元資料之後,控制器10指導非揮發性半導體記憶體22寫入頁單元資料。
2.控制器10在頁管理表更新記錄於對應於其中已寫入頁單元資料的頁之項目中的邏輯位址(步驟ST2)。已寫入於第二及第四記憶體區域12及14中的包括在同一邏輯位址範圍中的舊資料變為無效資料。
3.控制器10判斷在用於頁附加之實體區塊中是否存在一空頁(步驟ST3)。若未偵測到該空頁,則此程序進行至步驟ST4。若偵測到該空頁,則此程序返回至步驟ST1。
4.控制器10逐一向後偏移頁FIFO管理表之項目,並添加用於頁附加之實體區塊的實體位址至頁FIFO管理表之頂部處的項目(步驟ST4)。因此,將用於頁附加的實體區塊分配至第四記憶體區域14。
5.控制器10針對具有與自頁FIFO管理表溢位的頁FIFO管理表之底部處的項目相關聯的最舊分配順序之區塊來執行下列程序P1(步驟ST5)。
B.程序P1
圖27顯示程序P1之流程圖。
1.控制器10搜尋圖22之頁管理表並偵測其中記錄自第四記憶體區域14溢位的區塊之實體位址的項目(步驟ST1)。
2.控制器10指定記錄於該項目中的頁單元資料之邏輯位址(步驟ST2)。將下列程序應用於每一邏輯位址。
3.控制器10藉由等於區塊單元的「大單元」之大小來對準頁單元資料之邏輯位址,並且在頁管理表中合計包括在藉由區塊單元之大小對準之邏輯位址範圍中的邏輯位址之數目(步驟ST3)。
順便提及,「藉由一預定大小(例如頁單元或區塊單元之大小)對準邏輯位址」意指將邏輯位址四捨五入至當將邏輯位址除以該預定大小時餘數係0的此一位址。例如,藉由大小S對準邏輯位址A所計算的一位址係(A-(當將A除以S時的一餘數))。同樣地,「藉由一預定大小對準邏輯位址範圍」意指自藉由該預定大小對準邏輯位址所計算的位址之預定大小的範圍。
若控制器10合計僅在具有包括在頁FIFO管理表中的實體位址之項目中的邏輯位址之數目,則獲取儲存於第四記憶體區域14中的頁單元資料之數目。另一方面,若控制器10並不限制該項目,則獲取儲存於第二及第四記憶體區域12及14中的頁單元資料之數目。控制器10能選擇任一條件。
4.控制器10判斷在步驟ST3中計數的邏輯位址之數目是否係一預定臨限值或較大(第三條件)。例如,該預定臨限值可加以設定為可儲存於區塊單元(「大單元」)之一個區域中的頁單元(「小單元」)資料之總數的50%(步驟ST4)。
若在步驟ST3中計數的邏輯位址之數目係小於該預定臨限值,則此程序進行至步驟ST5。若在步驟ST3中計數的邏輯位址之數目並非小於該預定臨限值,則此程序進行至步驟ST6。
5.控制器10不對頁單元資料進行任何操作。即,頁單元資料停留在自第四記憶體區域14溢位的區塊中(步驟ST5)。
6.控制器10傳輸頁單元資料至第三記憶體區域13,作為等於區塊單元的「大單元」之大小的資料(步驟ST6)。
控制器10藉由自第一、第二、第三及第四記憶體區域11、12、13及14收集包括在藉由區塊單元之大小對準之邏輯位址範圍中的有效資料來合併頁單元資料成區塊單元資料(重組)。
在完成構成區塊單元資料的有效資料之後,控制器10指導非揮發性半導體記憶體22寫入區塊單元資料於第三記憶體區域13之空區塊中。
7.控制器10使第一、第二、第三及第四記憶體區域11、12、13及14中的包括在寫入資料之邏輯位址範圍中的資料無效(步驟ST7)。
若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態。
8.控制器10判斷是否已處理該項目中的所有邏輯位址(步驟ST8)。若已處理該項目中的所有邏輯位址,則此程序完成。若並非已處理該項目中的所有邏輯位址,則此程序返回至步驟ST3。
在完成程序P1之後,若有效資料保持在自第四記憶體區域14溢位之區塊中,則控制器10設定對應於該區塊的項目為實體區塊管理表中的「第二記憶體區域12(作用)」。
在自第四記憶體區域14至第二記憶體區域12的資料傳輸中,該控制器僅更新頁FIFO管理表以及實體區塊管理表而不指導非揮發性半導體記憶體22讀取/寫入資料(移動程序)。
若在用於頁附加之實體區塊中不存在空頁,則控制器10藉由搜尋實體區塊管理表而得到一自由區塊。在抹除該自由區塊中的資料之後,將此區塊新近分配至用於頁附加的一實體區塊。控制器10搜尋頁管理表中的一未用項目。對應於用於頁附加之實體區塊的實體位址係記錄於該未用項目中。
依據自第四記憶體區域14的區塊之移動,採用頁單元所管理的區塊之數目係在第二記憶體區域12中增加。若第二記憶體區域12中的區塊之數目超過一容許範圍,即,定義為第二記憶體區域12之容量的區塊之預定數目,則控制器10藉由下列程序執行壓縮或自第二記憶體區域12至第三記憶體區域13的資料傳輸程序。
C.程序範例1
圖28顯示程序範例1之流程圖。
1.控制器10掃描頁管理表並合計等於儲存於第二記憶體區域12中的頁單元之「小單元」的資料之數目(邏輯位址之數目)(步驟ST1)。
在步驟ST1中,具有包括在頁FIFO管理表中的實體位址之項目以及對應於用於頁附加之實體區塊的項目並非待加以掃描的目標。即,控制器10僅掃描第二記憶體區域12。
2.控制器10判斷儲存於第二記憶體區域12中的頁單元之有效資料的總數是否並非大於一預定臨限值(第四條件)。例如,該預定臨限值可以係可儲存於第二記憶體區域12中的頁單元資料之數目(步驟ST2)。
若有效資料之總數係大於該預定臨限值,因為第二記憶體區域12中的區塊之數目不能藉由壓縮加以減少至容許範圍,故此程序進行至步驟ST3。若有效資料之總數並非大於該預定臨限值,則此程序進行至步驟ST6。
3.控制器10基於一預定條件選擇第二記憶體區域12中的有效資料並傳輸選定資料至第三記憶體區域13作為等於區塊單元的「大單元」之資料(步驟ST3)。例如,該預定條件可以係與「C.自該第二記憶體區域至該第三記憶體區域的資料傳輸程序」(在段落I.中說明)之該第二條件實質上相同。
控制器10藉由自第一、第二、第三及第四記憶體區域11、12、13及14收集包括在藉由區塊單元之大小對準之邏輯位址範圍中的有效資料來合併頁單元之有效資料成區塊單元資料(重組)。
在完成構成區塊單元資料的有效資料之後,控制器10指導非揮發性半導體記憶體22寫入區塊單元資料於第三記憶體區域13之空區塊中。
4.控制器10使第一、第二、第三及第四記憶體區域11、12、13及14中的包括在寫入資料之邏輯位址範圍中的資料無效(步驟ST4)。
若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態。
5.控制器10判斷第二記憶體區域12中的區塊之數目是否係定義為第二記憶體區域12之容量的區塊之預定數目或較小(步驟ST5)。
若第二記憶體區域12中的區塊之數目係定義為第二記憶體區域12之容量的區塊之預定數目或較小,則此程序完成。若第二記憶體區域12中的區塊之數目係大於定義為第二記憶體區域12之容量的區塊之預定數目,則此程序返回至步驟ST1。
6.控制器10藉由搜尋實體區塊管理表來得到一自由區塊。在抹除該自由區塊中的資料之後,將此區塊分配至一壓縮區塊。控制器10搜尋頁管理表中的一未用項目。該壓縮區塊之實體位址係與該未用項目相關聯(步驟ST6)。
7.控制器10按順序自第二記憶體區域12中具有有效資料之最小數目的區塊循序選擇頁單元之有效資料(步驟ST7)。選定有效資料係複製至該壓縮區塊而且對應於該壓縮區塊的頁管理表之項目中的邏輯位址係更新至複製資料之邏輯位址。
控制器10藉由更新實體區塊管理表之項目至「第二記憶體區域12(作用)」來分配充滿有效資料的壓縮區塊至第二記憶體區域12。
在步驟ST7(壓縮)中,可自第一記憶體區域11讀出包括在複製資料之邏輯位址範圍中的最近有效資料並且可採用最近有效資料來覆寫複製資料。帶入複製資料之第一記憶體區域11中的區段單元資料係呈現為無效狀態。
8.控制器10使第二記憶體區域12中的具有與複製資料相同之邏輯位址的資料無效(步驟ST8)。若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態。
9.控制器10判斷第二記憶體區域12中的區塊之數目是否係定義為第二記憶體區域12之容量的區塊之預定數目或較小(步驟ST9)。
若第二記憶體區域12中的區塊之數目係定義為第二記憶體區域12之容量的區塊之預定數目或較小,則此程序完成。若第二記憶體區域12中的區塊之數目係大於定義為第二記憶體區域12之容量的區塊之預定數目,則此程序返回至步驟ST6。
D.程序範例2
圖29顯示程序範例2之流程圖。
1.控制器10掃描頁管理表並選擇具有等於頁單元之「小單元」的有效資料之最小數目(邏輯位址之數目)的兩個區塊(步驟ST1)。
在步驟ST1中,具有包括在頁FIFO管理表中的實體位址之項目以及對應於用於頁附加之實體區塊的項目並非待加以掃描的目標。即,控制器10僅掃描第二記憶體區域12。
2.控制器10判斷頁單元之有效資料的總數是否係大於一預定臨限值(例如,包含在第三單元中的第二單元之數目)(第四條件)(步驟ST2)。
若有效資料之總數係大於該預定臨限值,因為第二記憶體區域12中的區塊之數目不能藉由壓縮加以減少至容許範圍,故此程序進行至步驟ST3。若有效資料之總數並非大於該預定臨限值,則此程序進行至步驟ST6。
3.控制器10基於一預定條件選擇第二記憶體區域12中的有效資料並傳輸選定資料至第三記憶體區域13作為等於區塊單元的「大單元」之資料(步驟ST3)。例如,該預定條件可以係與「C.自該第二記憶體區域至該第三記憶體區域的資料傳輸程序」(在段落I.中說明)之該第二條件實質上相同。
控制器10藉由自第一、第二、第三及第四記憶體區域11、12、13及14收集包括在藉由區塊單元之大小對準之邏輯位址範圍中的有效資料來合併頁單元之有效資料成區塊單元資料(重組)。
在完成構成區塊單元資料的有效資料之後,控制器10指導非揮發性半導體記憶體22寫入區塊單元資料於第三記憶體區域13之空區塊中。
4.控制器10使第一、第二、第三及第四記憶體區域11、12、13及14中的包括在寫入資料之邏輯位址範圍中的資料無效(步驟ST4)。
若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態。
5.控制器10判斷第二記憶體區域12中的區塊之數目是否係定義為第二記憶體區域12之容量的區塊之預定數目或較小(步驟ST5)。
若第二記憶體區域12中的區塊之數目係定義為第二記憶體區域12之容量的區塊之預定數目或較小,則此程序完成。若第二記憶體區域12中的區塊之數目係大於定義為第二記憶體區域12之容量的區塊之預定數目,則此程序返回至步驟ST1。
6.控制器10藉由搜尋實體區塊管理表來得到一自由區塊。在抹除該自由區塊中的資料之後,將此區塊分配至一壓縮區塊。控制器10搜尋頁管理表中的一未用項目。該壓縮區塊之實體位址係與該未用項目相關聯(步驟ST6)。
7.控制器10按順序自第二記憶體區域12中具有有效資料之最小數目的區塊循序選擇頁單元之有效資料(步驟ST7)。選定有效資料係複製至該壓縮區塊而且對應於該壓縮區塊的頁管理表之項目中的邏輯位址係更新至複製資料之邏輯位址。
控制器10藉由更新實體區塊管理表之項目至「第二記憶體區域12(作用)」來分配充滿有效資料的壓縮區塊至第二記憶體區域12。
在步驟ST7中,可自第一記憶體區域11讀出包括在複製資料之邏輯位址範圍中的最近有效資料並且可採用最近有效資料來覆寫複製資料。帶入複製資料之第一記憶體區域11中的區段單元資料係呈現為無效狀態。
8.控制器10使第二記憶體區域12中的具有與複製資料相同之邏輯位址的資料無效(步驟ST8)。若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態。
9.控制器10判斷第二記憶體區域12中的區塊之數目是否係定義為第二記憶體區域12之容量的區塊之預定數目或較小(步驟ST9)。
若第二記憶體區域12中的區塊之數目係定義為第二記憶體區域12之容量的區塊之預定數目或較小,則此程序完成。若第二記憶體區域12中的區塊之數目係大於定義為第二記憶體區域12之容量的區塊之預定數目,則此程序返回至步驟ST6。
在程序範例2之步驟ST1中,儘管選擇具有有效資料之最小數目的兩個區塊,但是該數目並不限於二,而且可選擇兩個或兩個以上區塊。
此外,程序範例2之步驟ST2中的「預定臨限值」可加以設定為比選定區塊之數目小一的可儲存於該等區塊中的頁單元資料之數目。
(2)第二具體實施例
圖30顯示依據一第二具體實施例的一半導體儲存裝置。
「小單元」之大小係頁單元之大小的自然數倍大或者頁單元之大小係「小單元」之大小的自然數倍大。
「大單元」之大小係「小單元」之大小的兩倍或更大自然數倍大,而且同時,區塊單元之大小係「大單元」之大小的兩倍或更大自然數倍大。
然而,藉由劃分一頁來控制該頁,明確而言,「小單元」之大小可以係區段單元之大小的自然數倍大而且頁單元之大小可以係「小單元」之大小的兩倍或更大自然數倍大。
該等單元之間的以上關係可加以設定為下列範例:區段單元(第一單元)<「小單元」<頁單元(第二單元)<「大單元」<區塊單元(第三單元)。
在該第二具體實施例中,將一循跡單元用作「大單元」。循跡單元之大小係頁單元之大小的兩倍或更大自然數倍大而且區塊單元之大小係循跡單元之大小的兩倍或更大自然數倍大。
依據使用循跡單元,實行資料管理,其使用循跡管理表及循跡FIFO管理表代替區塊管理表。
至於該第一具體實施例,為了簡化解釋,將頁單元用作「小單元」。然而,可將一叢集單元用作「小單元」。叢集單元之大小係區段單元之大小的兩倍或更大自然數倍大而且頁單元之大小係叢集單元之大小的兩倍或更大自然數倍大。稍後說明使用叢集單元的資料管理。
一第一記憶體區域11暫時儲存自一主機設備的資料。該資料係藉由區段單元(該第一單元)或較小寫入於第一記憶體區域11中。第一記憶體區域11係包括在諸如一DRAM之一揮發性半導體記憶體中。
一第二記憶體區域12係由一非揮發性半導體記憶體22中的區塊構成。在非揮發性半導體記憶體22中,其中一次執行讀取/寫入的單元係一頁(該第二單元)而且其中一次執行抹除的單元係一區塊(該第三單元)。區塊單元之大小係頁單元之大小的自然數倍大。第二記憶體區域12藉由等於頁單元的「小單元」來儲存資料。
一第三記憶體區域13係由非揮發性半導體記憶體22中的區塊構成並且藉由等於循跡單元的「大單元」來儲存資料。
一第四記憶體區域14係由非揮發性半導體記憶體22中的區塊構成並且藉由等於頁單元的「小單元」來儲存資料。
一第五記憶體區域15係由非揮發性半導體記憶體22中的區塊構成並且藉由等於循跡單元的「大單元」來儲存資料。
第一記憶體區域11之儲存容量係假定為大於非揮發性半導體記憶體22中的一個區塊單元之大小,而且非揮發性半導體記憶體22之儲存容量係假定為大於提供為該半導體儲存裝置(例如,SSD)之產品規格的儲存容量。
非揮發性半導體記憶體22之儲存容量係如下分配至第二、第三、第四及第五記憶體區域12、13、14及15。
該儲存容量係分配至第三及第五記憶體區域13及15以便第三及第五記憶體區域13及15之儲存容量的總數係大於提供為該半導體儲存裝置之產品規格的儲存容量(例如,分配比提供為該半導體儲存裝置之產品規格的儲存容量大約1至5%的儲存容量)。
儘管第三與第五記憶體區域13與15之間的容量之比率不受限制,例如第三記憶體區域13之儲存容量係設定為與提供為該半導體儲存裝置之產品規格的儲存容量相同,而且第五記憶體區域15之儲存容量係設定為第三記憶體區域13之儲存容量的約1至5%。
藉由自非揮發性半導體記憶體22之儲存容量減去第三及第五記憶體區域13及15之儲存容量所剩餘的儲存容量係分配至第二及第四記憶體區域12及14。第二及第四記憶體區域12及14之每一儲存容量及其之間的比率不受限制。
第二、第三、第四及第五記憶體區域12、13、14及15係由(例如)非揮發性半導體記憶體22(例如NAND型快閃記憶體)中的一或多個區塊構成。
在該第二具體實施例中,除在該第一具體實施例中說明的第一、第二、第三及第四記憶體區域11、12、13及14以外,還藉由分配一或多個區塊至該第二具體實施例而提供該第五記憶體區域。
如在該第一具體實施例中一樣,代表一資料大小的該等第一、第二及第三單元並不包括添加至自該半導體儲存裝置中的該主機設備之主要資料的冗餘資料(ECC、內部控制旗標等)。
控制器10操作用於執行資料管理的一程式。能將藉由控制器10實現的功能實施為硬體及軟體之任一者或兩者的組合。是否將此等功能實施為硬體或軟體取決於實際具體實施例或施加於整個系統的設計約束。
當控制器10之該主要記憶體係由一揮發性半導體記憶體(例如DRAM)組成時,第一記憶體區域11可組態於控制器10之該主要記憶體中。
控制器10包括一快取管理表、一頁管理表、一循跡管理表、一頁FIFO管理表、一循跡FIFO管理表以及一實體區塊管理表以便管理其中藉由邏輯位址自該主機設備存取的資料係儲存於第一、第二、第三、第四及第五記憶體區域11、12、13、14及15中的情況。
--快取管理表--
圖30之快取管理表藉由等於頁單元的「小單元」來控制儲存於第一記憶體區域11中的資料。藉由區段單元執行有效資料的控制。
在圖21中顯示快取管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明快取管理表,故在此處省略說明。
--頁管理表--
圖30之頁管理表藉由等於頁單元的「小單元」來控制儲存於第二及第四記憶體區域12及14中的資料。
在圖22中顯示頁管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明頁管理表,故在此處省略說明。
--循跡管理表--
圖31顯示一循跡管理表之一範例。
循跡管理表藉由等於循跡單元的「大單元」來控制儲存於第三及第五記憶體區域13及15中的資料。
假定將一個項目指派至第二及第五記憶體區域13及15中的一個區塊。
為了暫存處理中的區塊,項目之數目係假定具備能包含於第三及第五記憶體區域13及15內的區塊之數目的裕度,即,該數目提供[(第三及第五記憶體區域13及15之總容量)/(區塊單元之大小)]的裕度。
分配至第三記憶體區域13或第五記憶體區域15的區塊之實體位址係與每一項目相關聯,而且該區塊中的循跡單元資料之邏輯位址係記錄於每一項目中。
一頁可用性經組態以能夠針對循跡單元之區域中的頁區別「寫入啟用」狀態(此儲存區域係空的)與「寫入禁止」狀態(此儲存區域係無效的,因為舊資料已一次性地寫入於其中並且新資料係寫入於另一儲存區域中)。
在此範例中,藉由區塊單元來組態該項目;然而,為了以高速度自資料之邏輯位址搜尋區塊之實體位址,可藉由以邏輯位址之順序配置的循跡單元來組態循跡管理表之項目。
--頁FIFO管理表--
圖30之頁FIFO管理表控制分配至第四記憶體區域14之區塊中的資料。
在圖24中顯示頁FIFO管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明頁FIFO管理表,故在此處省略說明。
--循跡FIFO管理表--
圖32顯示一循跡FIFO管理表之一範例。
循跡FIFO管理表控制分配至第五記憶體區域15之區塊中的資料。
假定將一個項目指派至第五記憶體區域15中的一個區塊。項目之數目係假定為能加以分配至第五記憶體區域15的區塊之數目,即,(第五記憶體區域15之總容量)/(區塊單元之大小)。
採用區塊單元之FIFO(先進先出)結構藉由使用循跡FIFO管理表來管理第五記憶體區域15。
對應於新近分配(輸入)至第五記憶體區域15的一區塊之一項目係添加至循跡FIFO管理表之頂部(入口側),而且最初暫存於循跡FIFO管理表中的項目係逐一向後偏移。
當項目之數目超過一容許範圍時,自第五記憶體區域15輸出具有與循跡FIFO管理表之底部(出口側)處的項目相關聯之最舊分配順序之區塊。
--實體區塊管理表--
圖33顯示該實體區塊管理表之一範例。
該實體區塊管理表控制非揮發性半導體記憶體22中的區塊之使用。
假定將一個項目指派至一個區塊(實體區塊)。項目之數目係假定為能用作一資料區域的區塊之數目。每一項目係與該區塊之實體位址相關聯並儲存該區塊之使用(儲存區域(區塊)是否係用作第二、第三、第四及第五記憶體區域(作用)或未使用(自由))。
說明由圖30之控制器10所執行的一處理流程。
儲存於第一記憶體區域11中的資料係分類成「小單元」或「大單元」而且「小單元」資料係輸出至第四記憶體區域14。第四記憶體區域14中的FIFO程序之操作係與該第一具體實施例相同。
即,第四記憶體區域14中的FIFO程序係與圖26之流程相同。應用於自第四記憶體區域14溢位的區塊之程序係與圖27之流程實質上相同(然而,「大單元」之目的地係第五記憶體區域15)。
依據此組態,如圖28或29之流程中所示,待在第二記憶體區域12中經歷壓縮的一目標係自第四記憶體區域14輸出的具有低更新頻率之資料,而且減小抹除計數以預防記憶體單元之劣化。
然而,在該第二具體實施例中,經決定係自第一記憶體區域11輸出為「大單元」資料的資料以及經決定係自第二及第四記憶體區域12及14輸出為「大單元」資料的決定係劃分成具有高更新頻率的資料以及具有低更新頻率的資料。僅用於具有低更新頻率的資料之技術係待在原理中說明的壓縮之一目標。
在此具體實施例中,將具有小於區塊單元之大小的循跡單元用作「大單元」,而且在循跡單元中實行第三及第五記憶體區域13及15中的資料管理。即,管理單元之大小係小於第三及第五記憶體區域13及15中的區塊單元(最小抹除單元)之大小,並且因此在該等區塊中產生無效資料,因而需要實行壓縮程序。
此處,將具有高更新頻率的資料與具有低更新頻率的資料彼此判別,並且為了改良壓縮之效率,將具有區塊單元之FIFO結構的第五記憶體區域15佈置在第三記憶體區域13之前。
說明下列操作。經決定係自第一記憶體區域11輸出為「大單元」資料的資料以及經決定係自第二及第四記憶體區域12及14輸出為「大單元」資料的資料係在第五記憶體區域15中經歷FIFO程序。
A.該第五記憶體區域中的FIFO程序
圖34顯示第五記憶體區域15中的FIFO程序。為了簡化解釋,特定考量經決定係自第一記憶體區域11輸出為「大單元」資料的資料。
1.控制器10參考對應於為以附加方式寫入資料所製備之一區塊(以下稱為用於循跡附加之實體區塊)的循跡管理表之項目。控制器10儲存自第一記憶體區域11輸出的資料作為等於循跡單元的「大單元」之資料於具有用於循跡附加之實體區塊中的寫入啟用狀態之循跡單元的一區域中(步驟ST1)。
控制器10搜尋快取管理表並判斷經決定加以輸出的構成循跡單元資料的區段單元資料之全部是否存在於第一記憶體區域11中。
若並非所有區段單元資料係在第一記憶體區域11中完成,則控制器10自第二、第三、第四及第五記憶體區域12、13、14及15收集遺失資料。
在完成構成循跡單元資料的所有區段單元資料之後,控制器10指導非揮發性半導體記憶體22寫入循跡單元資料於用於循跡附加之實體區塊中。
2.控制器10在循跡管理表中更新記錄於對應於其中已寫入循跡單元資料之循跡單元(頁)的區域之項目中的邏輯位址(步驟ST2)。已寫入於第二、第三、第四及第五記憶體區域12、13、14及15中的包括在同一邏輯位址範圍中的舊資料變為無效資料。
3.控制器10判斷在用於循跡附加之實體區塊中是否存在循跡單元之一空區域(空頁)(步驟ST3)。若未偵測到該等空頁,則此程序進行至步驟ST4。若偵測到該等空頁,則此程序返回至步驟ST1。
4.控制器10逐一向後偏移循跡FIFO管理表之項目,並添加用於循跡附加之實體區塊的實體位址至循跡FIFO管理表之頂部處的項目(步驟ST4)。因此,將用於循跡附加的實體區塊分配至第四記憶體區域14。
5.控制器10更新對應於該區塊的項目為實體區塊管理表中的「第三記憶體區域13(作用)」(步驟ST5)。
在自第五記憶體區域15至第三記憶體區域13的資料傳輸中,該控制器僅更新循跡FIFO管理表以及實體區塊管理表而不指導非揮發性半導體記憶體22讀取/寫入資料(移動程序)。
B.程序範例1
圖35顯示程序範例1之流程圖。
1.控制器10藉由搜尋實體區塊管理表來得到一自由區塊。在抹除該自由區塊中的資料之後,將此區塊分配至一壓縮區塊。控制器10搜尋循跡管理表中的一未用項目。該壓縮區塊之實體位址係與該未用項目相關聯(步驟ST1)。
2.控制器10藉由掃描循跡管理表按順序自具有有效資料之最小數目的區塊循序選擇循跡單元之有效資料。選定有效資料係複製至該壓縮區塊而且與該壓縮區塊相關聯的循跡管理表之項目中的邏輯位址係更新至複製資料之邏輯位址(步驟ST2)。
在循跡管理表之掃描中,未掃描與包括在循跡FIFO管理表中的實體位址相關聯的項目及對應於用於循跡附加之實體區塊的項目。即,掃描第三記憶體區域13,但是未掃描第五記憶體區域15。
在步驟ST2(壓縮)中,可自第一、第二及第四記憶體區域11、12及14讀出包括在複製資料之邏輯位址範圍中的有效資料並且可採用有效資料來覆寫複製資料。壓縮中涉及的第一、第二及第四記憶體區域11、12及14中的有效資料係呈現為無效狀態。
3.若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態(步驟ST3)。
4.控制器10判斷第三記憶體區域13中的區塊之數目是否係定義為第三記憶體區域13之容量的區塊之預定數目或較小(步驟ST4)。
若第三記憶體區域13中的區塊之數目係定義為第三記憶體區域13之容量的區塊之預定數目或較小,則此程序完成。若第三記憶體區域13中的區塊之數目係大於定義為第三記憶體區域13之容量的區塊之預定數目,則此程序返回至步驟ST1。
C.程序範例2
可能不能夠藉由使用第三記憶體區域13中的區塊來簡單地實行壓縮。明確而言,當作為該半導體儲存裝置之產品規格的儲存容量係大於第三記憶體區域13之儲存容量並且小於第三及第五記憶體區域13及15之總儲存容量時,可能不能夠實行壓縮。
此一情形可能由於使作為產品規格的容量儘可能接近於該半導體儲存裝置中的NAND型快閃記憶體之總容量的要求而出現。
在此情況下,當存在於第三記憶體區域13中的無效資料之總大小(儲存容量)並未達到區塊單元之大小時,無論在第三記憶體區域13中實行多少次壓縮均不能新近產生一自由區塊。
因此,在以上情形下,僅以例外為基礎(第五條件)將壓縮應用於第三記憶體區域13及第五記憶體區域15兩者。
圖36顯示程序範例2之流程圖。
1.控制器10藉由搜尋實體區塊管理表來得到一自由區塊。在抹除該自由區塊中的資料之後,將此區塊分配至一壓縮區塊。控制器10搜尋循跡管理表中的一未用項目。該壓縮區塊之實體位址係與該未用項目相關聯(步驟ST1)。
2.控制器10藉由掃描循跡管理表按順序自具有有效資料之最小數目的區塊循序選擇循跡單元之有效資料。選定有效資料係複製至該壓縮區塊而且與該壓縮區塊相關聯的循跡管理表之項目中的邏輯位址係更新至複製資料之邏輯位址(步驟ST2)。
在循跡管理表之掃描中,亦掃描與包括在循跡FIFO管理表中的實體位址相關聯之項目。即,掃描第三記憶體區域13及第五記憶體區域15。
在步驟ST2(壓縮)中,可自第一、第二及第四記憶體區域11、12及14讀出包括在複製資料之邏輯位址範圍中的有效資料並且可採用有效資料來覆寫複製資料。壓縮中涉及的第一、第二及第四記憶體區域11、12及14中的有效資料係呈現為無效狀態。
3.若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態(步驟ST3)。
4.控制器10添加壓縮區塊至循跡FIFO管理表之頂部(步驟ST4)。此係因為需要減少第五記憶體區域15中的無效資料。
若減小第五記憶體區域15中的無效資料之數目,則增加第三記憶體區域13中的無效資料之數目。因此,將壓縮僅應用於第三記憶體區域13,如以上程序範例1中所示,因而收集第三記憶體區域13中的有效資料,並且能在第三記憶體區域13中產生一自由區塊。
5.控制器10判斷第三及第五記憶體區域13及15中的區塊之數目是否係定義為第三及第五記憶體區域13及15之容量的區塊之預定數目或較小(步驟ST5)。
若第三及第五記憶體區域13及15中的區塊之數目係定義為第三及第五記憶體區域13及15之容量的區塊之預定數目或較小,則此程序完成。若第三及第五記憶體區域13及15中的區塊之數目係大於定義為第三及第五記憶體區域13及15之容量的區塊之預定數目,則此程序返回至步驟ST1。
在程序範例1及2(如該第一具體實施例中的程序範例2(圖29))中的每一步驟ST1中,可選擇具有循跡單元的有效資料之最小數目的兩個或兩個以上區塊並且可將有效資料複製至該壓縮區塊。
在該第二具體實施例中,控制器10分配儲存區域(區塊)至第二記憶體區域12、第三記憶體區域13、第四記憶體區域14及第五記憶體區域15,因而實行該非揮發性半導體記憶體中的資料管理。然而,本發明並不限於此。
例如,可藉由組態第二記憶體區域12、第三記憶體區域13及第五記憶體區域15而不組態第四記憶體區域14來實行資料管理。另外,可藉由組態第三記憶體區域13及第五記憶體區域15而不組態第二記憶體區域12及第四記憶體區域14來實行資料管理。
(3)第三具體實施例
一第三具體實施例係關於第二及第四記憶體區域12及14中的資料管理組態,其用於減小實施成本及驗證成本。
圖37顯示依據該第三具體實施例的一半導體儲存裝置。
一第一記憶體區域11暫時儲存自一主機設備的資料。該資料係藉由區段單元(該第一單元)或較小寫入於第一記憶體區域11中。第一記憶體區域11係包括在諸如一DRAM之一揮發性半導體記憶體中。
一第二記憶體區域12係由一非揮發性半導體記憶體22中的區塊構成。在非揮發性半導體記憶體22中,其中一次執行讀取/寫入的單元係一頁(該第二單元)而且其中一次執行抹除的單元係一區塊(該第三單元)。區塊單元之大小係頁單元之大小的自然數倍大。第二記憶體區域12藉由等於頁單元的「小單元」來儲存資料。
一第三記憶體區域13係由非揮發性半導體記憶體22中的區塊構成,並且藉由等於區塊單元的「大單元」來儲存資料。
一第四記憶體區域14係由非揮發性半導體記憶體22中的區塊構成並且藉由等於頁單元的「小單元」來儲存資料。
第一記憶體區域11之儲存容量係假定為大於非揮發性半導體記憶體22中的一個區塊單元之大小,而且非揮發性半導體記憶體22之儲存容量係假定為大於提供為該半導體儲存裝置(例如,SSD)之產品規格的儲存容量。
非揮發性半導體記憶體22之儲存容量係如下分配至第二、第三及第四記憶體區域12、13及14。
與提供為該半導體儲存裝置之產品規格的儲存容量相同或大於該儲存容量的儲存容量係分配至第三記憶體區域13。
藉由自非揮發性半導體記憶體22之儲存容量減去第三記憶體區域13之儲存容量所剩餘的儲存容量係分配至第二及第四記憶體區域12及14。第二及第四記憶體區域12及14之每一儲存容量及比率不受限制。
第二、第三及第四記憶體區域12、13及14係由(例如)非揮發性半導體記憶體22(例如NAND型快閃記憶體)中的一或多個區塊構成。
代表資料之大小的第一、第二及第三單元並不包括添加至自該半導體儲存裝置中的該主機設備之主要資料的冗餘資料(ECC、內部控制旗標等)。
一控制器10具有一CPU及一主要記憶體,而且能操作用於執行資料管理的一程式。在此具體實施例中,能將藉由控制器10實現的功能實施為硬體及軟體之任一者或兩者的組合。是否將此等功能實施為硬體或軟體取決於實際具體實施例或施加於整個系統的設計約束。
當控制器10之該主要記憶體係由一揮發性半導體記憶體(例如DRAM)組成時,第一記憶體區域11可組態於控制器10之該主要記憶體中。
控制器10包括一快取管理表、一頁管理表、一區塊管理表、一頁FIFO管理表以及一實體區塊管理表以便管理其中藉由邏輯位址自該主機設備存取的資料係儲存於第一、第二、第三及第四記憶體區域11、12、13及14中的情況。此等管理表係在該半導體儲存裝置之操作期間展開於控制器10之該主要記憶體上。
--快取管理表--
圖37之快取管理表藉由等於頁單元的「小單元」來控制儲存於第一記憶體區域11中的資料。藉由區段單元執行有效資料的控制。
在圖21中顯示快取管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明快取管理表,故在此處省略詳細說明。
--頁管理表--
圖37之頁管理表藉由等於頁單元的「小單元」來控制儲存於第二及第四記憶體區域12及14中的資料。
在圖22中顯示頁管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明頁管理表,故在此處省略詳細說明。
--區塊管理表--
圖37之區塊管理表藉由等於區塊單元的「大單元」來控制儲存於第三記憶體區域13中的資料。
在圖23中顯示區塊管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明區塊管理表,故在此處省略詳細說明。
--頁FIFO管理表--
圖37之頁FIFO管理表控制分配至第四記憶體區域14之區塊中的資料。
在圖24中顯示頁FIFO管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明頁FIFO管理表,故在此處省略詳細說明。
--實體區塊管理表--
圖37之實體區塊管理表控制非揮發性半導體記憶體22中的區塊之使用。
在圖25中顯示實體區塊管理表之組態,如在該第一具體實施例中一樣。因為已經在該第一具體實施例中說明實體區塊管理表,故在此處省略詳細說明。
說明由圖37之控制器10所執行的一程序流程。
說明由圖37之控制器10所執行的一處理流程。
控制器10首先寫入自該主機設備的區段單元(第一單元)資料於第一記憶體區域11中並在某一週期內儲存資料於其中。關於此資料儲存程序,段落I.中說明的「A.該第一記憶體區域中的資料儲存程序」能應用。
控制器10基於一預定條件(其可以係與段落I.中說明的「B.自該第一記憶體區域的資料輸出程序」之該第一條件實質上相同),區別是否應該採用「小單元(第一管理單元)」或「大單元(第二管理單元)」來管理儲存於第一記憶體區域11中的資料。
「小單元」之大小係頁單元之大小的自然數倍大或者頁單元之大小係「小單元」之大小的自然數倍大。
「大單元」之大小係「小單元」之大小的兩倍或更大自然數倍大,而且同時,係區塊單元之大小的自然數倍大。
在此具體實施例中,為簡化解釋,以下假定管理表中使用的單元之每一者:在第二及第四記憶體區域12及14中的一資料管理單元的「小單元」之大小係等於頁單元(第二單元)之大小。在第三記憶體區域13中的一資料管理單元的「大單元」之大小係等於區塊單元(第三單元)之大小。
然而,藉由劃分一頁來控制該頁,明確而言,「小單元」之大小可以係區段單元之大小的自然數倍大而且頁單元之大小可以係「小單元」之大小的兩倍或更大自然數倍大。
或者,共同地控制複數個頁,明確而言,「小單元」之大小可以係頁單元之大小的兩倍或更大自然數倍大而且區塊單元之大小可以係「小單元」之大小的兩倍或更大自然數倍大。
同樣,藉由劃分一區塊來控制該區塊,明確而言,「大單元」之大小可以係「小單元」之大小的兩倍或更大自然數倍大而且區塊單元之大小可以係「大單元」之大小的兩倍或更大自然數倍大。
或者,共同地控制複數個區塊,明確而言,「大單元」之大小可以係區塊單元之大小的兩倍或更大自然數倍大。
該等單元之間的以上關係可加以設定為下列範例:區段單元(第一單元)<「小單元」<頁單元(第二單元)<區塊單元(第三單元)「大單元」。
若採用「小單元」管理儲存於第一記憶體區域11中的資料,則將資料傳輸至第四記憶體區域14。若採用「大單元」管理儲存於第一記憶體區域11中的資料,則將資料傳輸至第三記憶體區域13。
此資料輸出程序係與段落I.中說明的「B.自該第一記憶體區域的資料輸出程序」實質上相同。然而,不同於段落I.,「小單元」資料之目的地係第四記憶體區域14。
A. 該第四記憶體區域中的FIFO程序
如已經說明,第四記憶體區域14具有區塊單元之FIFO結構。圖38顯示第四記憶體區域14中的FIFO程序。
1.控制器10參考對應於為以附加方式寫入資料所製備之一區塊(以下稱為用於頁附加之實體區塊)的頁管理表之項目。控制器10儲存自第一記憶體區域11輸出的資料作為等於頁單元的「小單元」之資料於用於頁附加之實體區塊的寫入啟用狀態之一頁中(步驟ST1)。
2.控制器10在頁管理表中更新記錄於對應於其中已寫入頁單元資料的頁之項目中的邏輯位址(步驟ST2)。已寫入於第二及第四記憶體區域12及14中的包括在同一邏輯位址範圍中的舊資料變為無效資料。
3.控制器10判斷在用於頁附加之實體區塊中是否存在一空頁(步驟ST3)。若未偵測到該空頁,則此程序進行至步驟ST4。若偵測到該空頁,則此程序返回至步驟ST1。
4.控制器10逐一向後偏移頁FIFO管理表之項目,並添加用於頁附加之實體區塊的實體位址至頁FIFO管理表之頂部處的項目(步驟ST4)。因此,將用於頁附加的實體區塊分配至第四記憶體區域14。
5.控制器10針對其實體位址係記錄於頁FIFO管理表中的第四記憶體區域14中的所有區塊執行下列程序P1(步驟ST5)。
在採用壓縮之點上,程序P1係不同於該第一具體實施例及該第二具體實施例。此點在於第四記憶體區域14中的區塊之利用效率係較差的情況下係有效。為了抑制寫入操作之增加,自壓縮之目的排除具有甚差有效資料的區塊。
B.程序P1
圖39顯示程序P1之流程圖。圖40顯示在執行程序P1期間第四記憶體區域14中的區塊之狀態。該等區塊之每一者係由複數個頁構成。該等頁之每一者係藉由參考頁管理表中的頁可用性而呈現為包括「有效」、「無效」及「空」的三個狀態之任一者。
1.控制器10相對於第四記憶體區域14中的所有區塊,藉由搜尋記錄於頁FIFO管理表中之實體位址處的頁管理表來合計儲存於每一區塊中的有效資料之數目(步驟ST1)。
2.控制器10判斷是否存在其中在步驟ST1中計數的有效資料之數目係一預定臨限值或較大的一區塊。例如,該預定臨限值可加以設定為可儲存於區塊單元(「大單元」)之一個區域中的頁單元(「小單元」)資料之總數的50%(步驟ST2)。
若偵測到其中有效資料之數目係該預定臨限值或較大的該區塊,則此程序進行至步驟ST3。若未偵測到該區塊,則此程序進行至步驟ST4。
3.控制器10移動其中有效資料之數目係該預定臨限值或較大的該等區塊至第二記憶體區域12(步驟ST3)。即,相對於該區塊之實體位址,控制器10使頁FIFO管理表之項目無效並更新實體區塊管理表之項目為「第二記憶體區域(作用)」。
在自第四記憶體區域14至第二記憶體區域12的資料傳輸中,該控制器僅更新頁FIFO管理表以及實體區塊管理表而不指導非揮發性半導體記憶體22讀取/寫入資料(移動程序)。
4.控制器10按順序自第四記憶體區域14中具有最舊分配順序之區塊循序選擇有效資料。將選定有效資料複製至一抹除自由區塊(壓縮區塊)。控制器10分配充滿有效資料的壓縮區塊至第二記憶體區域12(步驟ST4)。
5.控制器10使第二記憶體區域14中的具有與複製資料相同之邏輯位址的資料無效。若一區塊中的所有資料變為無效資料,則控制器10釋放該區塊並在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態(步驟ST5)。
若在用於頁附加之實體區塊中不存在空頁,則控制器10藉由搜尋實體區塊管理表而得到一自由區塊。在抹除該自由區塊中的資料之後,將此區塊新近分配至用於頁附加的一實體區塊。控制器10搜尋頁管理表中的一未用項目。對應於用於頁附加之實體區塊的實體位址係記錄於該未用項目中。
依據自第四記憶體區域14的區塊之移動,採用頁單元所管理的區塊之數目係在第二記憶體區域12中增加。若第二記憶體區域12中的區塊之數目超過一容許範圍,即,定義為第二記憶體區域12之容量的區塊之預定數目,則控制器10藉由下列程序執行壓縮或自第二記憶體區域12至第三記憶體區域13的資料傳輸程序。
此外,不同於該第一具體實施例,程序P1並不包括至第三記憶體區域13的資料傳輸程序(重組)。此簡化自第四記憶體區域14至第二記憶體區域12的資料傳輸程序。
C.程序範例
圖41顯示程序範例之流程圖。圖42至46顯示執行圖41之程序期間第二記憶體區域12中的區塊之狀態。如圖42至46中所解說,藉由控制器10管理第二記憶體區域12中的區塊之分配順序。
該等區塊之每一者係由複數個頁構成。該等頁之每一者係藉由參考頁管理表中的頁可用性而呈現為包括「有效」、「無效」及「空」的三個狀態之任一者。
1.依據以上程序P1,控制器10將資料自第四記憶體區域14傳輸至第二記憶體區域12(步驟ST1)。
2.控制器10判斷第二記憶體區域12中的區塊之數目是否超過一容許範圍(步驟ST2)。該容許範圍可以係定義為第二記憶體區域12之容量的區塊之預定數目。
若區塊之數目並未超過該容許範圍,則此程序完成。若區塊之數目超過該容許範圍,則此程序進行至步驟ST3。
3.控制器10藉由參考頁管理表而合計儲存於區塊之指定範圍中的有效資料之數目(項目之數目)並判斷儲存於一指定範圍中的有效資料之總數是否係大於一預定臨限值(步驟ST3)。
該指定範圍包括(例如)第二記憶體區域12中的兩個鄰近區塊。「鄰近區塊」意指其分配順序係連續的區塊。圖42之一「窗口」顯示該等區塊之指定範圍。該「窗口」之一開始位置加以設定以便包括具有最舊分配順序的區塊。
步驟ST3中的預定臨限值可以係可儲存於包括在該指定範圍中的區塊之半數中的頁單元資料之數目。圖42顯示包括在該指定範圍中的兩個區塊,而且該預定數目係設定為可儲存於該兩個區塊的一半之一個區塊中的頁單元資料之數目。
若有效資料之數目係大於該預定臨限值,則此程序進行至步驟ST4。若有效資料之數目係該預定臨限值或較小,則此程序進行至步驟ST7並且控制器10針對目前「窗口」執行重組及壓縮(圖43及44)。
4.控制器10將該「窗口」自較舊側偏移至較新側(步驟ST4)。明確而言,控制器10逐一將該「窗口」自第二記憶體區域12中具有最舊分配順序的區塊之側偏移至具有最新分配順序的區塊。
5.控制器10判斷該「窗口」是否已超過具有第二記憶體12中的最新分配順序的區塊(步驟ST5)。若該「窗口」已超過具有最新分配順序的區塊,則此程序進行至步驟ST6。若該「窗口」尚未超過具有最新分配順序的區塊,則此程序返回至步驟ST3。
6.控制器10選擇具有最舊分配順序之區塊中的所有有效資料並傳輸選定有效資料至第三記憶體區域13作為等於區塊單元的「大單元」之資料(重組)(步驟ST6)。在其中控制器10不能偵測第二記憶體區域12中的壓縮之目標的情況下執行步驟ST6。
如圖45中所示,自第一、第二、第三及第四記憶體區域11、12、13及14收集包括在藉由區塊單元(「大單元」)之大小對準儲存於具有最舊分配順序之區塊中的有效資料之邏輯位址所計算之邏輯位址範圍中的有效資料。
控制器10指導非揮發性半導體記憶體22寫入區塊單元資料於第三記憶體區域13中。在寫入區塊單元資料之後,控制器10釋放具有最舊分配順序的區塊,並且此程序返回至步驟ST2。將該「窗口」之一位置重設至該開始位置。
7.控制器10搜尋實體區塊管理表並得到自由區塊(壓縮區塊)(步驟ST7)。為壓縮提供自由區塊並且步驟ST7中所需要的自由區塊之數目係包括在該指定範圍中的區塊之一半。在圖44中,為壓縮提供一個自由區塊。控制器10指導非揮發性半導體記憶體22抹除該等自由區塊中的資料。
8.控制器10循序選擇儲存於該「窗口」中的有效資料(步驟ST8)。若已處理儲存於該「窗口」中的所有有效資料,則按順序自分配順序進一步選擇儲存於定位在比該「窗口」之側新之側處的區塊中的有效資料。
9.控制器10判斷包括在藉由區塊單元(「大單元」)之大小對準選定有效資料之邏輯位址所計算之邏輯位址範圍中的有效資料之總數是否係第二及第四記憶體區域12及14中的一預定臨限值或較大(步驟ST9)。步驟ST9中的預定臨限值可加以設定為可儲存於區塊單元(「大單元」)之一個區域中的頁單元(「小單元」)資料之總數的50%。
若有效資料之總數係小於該預定臨限值,則此程序進行至步驟ST10。若有效資料之總數係該預定臨限值或較大,則此程序進行至步驟ST11。
10.控制器10複製(重新寫入)選定有效資料至壓縮區塊,如圖44中所示(步驟ST10)。複製有效資料之邏輯位址係新近記錄於與頁管理表中的壓縮區塊相關聯之項目上。最初記錄於與分配至第二記憶體區域12的區塊相關聯之項目上的複製有效資料之邏輯位址係設定為頁管理表中的無效狀態。
11.控制器10自第一、第二、第三及第四記憶體區域11、12、13及14收集包括在藉由區塊單元(「大單元」)之大小對準之邏輯位址範圍中的有效資料,如圖43中所示,並且傳輸選定有效資料至第三記憶體區域13作為等於區塊單元的「大單元」之資料(重組)(步驟ST11)。
12.控制器10依據步驟ST10中的壓縮或步驟ST11中的重組來釋放其中資料之全部係呈現為無效的區塊(步驟ST12)。控制器10在實體區塊管理表中將該區塊之狀況自「作用」狀態設定為「自由」狀態,如圖46中所示。
13.控制器10判斷壓縮區塊是否充滿頁單元之有效資料(步驟ST13)。若該壓縮區塊並未充滿有效資料,則此程序返回至步驟ST8。若該壓縮區塊並未充滿有效資料,則此程序進行至步驟ST14。
然而,在其中即使在步驟ST8中選擇所有有效資料,該壓縮區塊仍不能充滿有效資料的情況下,此程序進行至步驟ST14。在此情況下,可將其中具有空頁的壓縮區塊分配至第二記憶體區域12。
14.控制器10將該壓縮區塊就插入在第二記憶體區域12中的「窗口」之前,如圖44中所示。即,將該壓縮區塊插入在比該「窗口」舊的側上,因而預防新近分配至第二記憶體區域12的區塊再次遭受壓縮之目標。
在更新頁管理表及實體區塊管理表之後,此程序返回至步驟ST2。當此程序返回至步驟ST2並且觸發新壓縮程序時,將該「窗口」之一位置保持在目前位置,如圖46中所示。
在本程序範例中,控制器10僅針對該指定範圍(「窗口」)來判斷壓縮是否係可應用,因而能簡化用以偵測壓縮之目標的搜尋程序而且能減小實施成本及驗證成本。
包括在該指定範圍中的區塊之數目並不限於二。控制器10可定義三個或三個以上區塊作為該指定範圍。控制器10可判斷儲存於該指定範圍中的有效資料是否係大於可儲存於該等區塊中的頁單元資料之數目,其係自包括在該指定範圍中的區塊之數目減少一。
3.應用範例
依據以上具體實施例的半導體儲存裝置可應用於一SSD(固態驅動器),其係用作用於諸如筆記型電腦之個人電腦的次要儲存裝置。以下說明此情況下的一特定範例。
4.結論
依據第一、第二及第三具體實施例的半導體儲存裝置使具有低更新頻率的資料遭受壓縮程序,因而減小該非揮發性半導體記憶體中的區塊之抹除計數。此外,該半導體儲存裝置使用兩個資料管理單元,即如段落I.中說明的「大單元」及「小單元」,因而實現寫入效率之改良。
本發明並不限於以上說明的具體實施例,而且能修改並體現組件而不脫離本發明之精神及範疇。此外,以上說明的具體實施例中揭示的複數個組件之組合能形成各種發明。例如,可自以上具體實施例中揭示的所有組件省略數個組件。此外,可將不同具體實施例內的組件適當地彼此組合。
[III.資料管理單元與讀取/寫入/抹除單元之間的關係]
1.概要
在以上說明中,分別說明依據段落I.及段落II.的半導體儲存裝置。在此段落中,將明確說明以上說明中所使用的第一、第二及第三單元與「小單元」及「大單元」。
該第一單元係指定為相對於包括第一記憶體區域11之一揮發性或非揮發性半導體記憶體的資料輸入及/或輸出單元。第一記憶體區域11藉由該第一單元或較小實行資料之讀取/寫入。該第一單元可以係(例如)一區段單元。該主機設備(例如個人電腦)藉由該區段單元執行對該半導體儲存裝置的存取。
該第二單元係指定為包括第二、第三、第四及第五記憶體區域12、13、14及15之一非揮發性半導體記憶體中的最小資料讀取及/或寫入單元。
該第三單元係指定為包括第二、第三、第四及第五記憶體區域12、13、14及15之一非揮發性半導體記憶體中的最小資料抹除單元。
若第二、第三、第四及第五記憶體區域12、13、14及15係組態於一NAND型快閃記憶體中,則該第二單元可以係一頁單元,而且該第三單元可以係一區塊單元。
該等第二及第三單元係實體上指定為相對於組態於該非揮發性半導體記憶體中的第二、第三、第四及第五記憶體區域12、13、14及15的資料讀取/寫入/抹除單元。
另一方面,該半導體儲存裝置中的資料管理單元(「小單元」及「大單元」)可對應於該非揮發性半導體記憶體中的實體讀取/寫入/抹除單元,或可以係不同於該單元。
在下列具體實施例中,相對於第二及第四記憶體區域12及14之資料管理單元的「小單元」係叢集單元。叢集單元之大小係區段單元之大小的自然數倍大,而且頁單元之大小係叢集單元之大小的兩倍或更大自然數倍大。叢集單元之大小可以係等於該主機設備之檔案系統中使用的檔案管理單元之大小。
2.具體實施例
將說明本發明之一具體實施例。
圖47顯示依據本發明之該具體實施例的一半導體儲存裝置。
一第一記憶體區域11暫時儲存自一主機設備的資料。該資料係藉由區段單元(該第一單元)或較小寫入於第一記憶體區域11中。第一記憶體區域11係組態於諸如一DRAM之一非揮發性半導體記憶體中。
一第二記憶體區域12係由一非揮發性半導體記憶體22中的區塊構成。在非揮發性半導體記憶體22中,其中一次執行讀取/寫入的單元係一頁(該第二單元)而且其中一次執行抹除的單元係一區塊(該第三單元)。區塊單元之大小係頁單元之大小的自然數倍大。第二記憶體區域12藉由等於叢集單元的「小單元」來儲存資料。
一第三記憶體區域13係由非揮發性半導體記憶體22中的區塊構成,並且藉由等於區塊單元的「大單元」來儲存資料。
一第四記憶體區域14係由非揮發性半導體記憶體22中的區塊構成並且藉由等於叢集單元的「小單元」來儲存資料。
第一記憶體區域11之儲存容量係假定為大於非揮發性半導體記憶體22中的一個區塊單元之大小,而且非揮發性半導體記憶體22之儲存容量係假定為大於提供為該半導體儲存裝置(例如,SSD)之產品規格的儲存容量。
非揮發性半導體記憶體22之儲存容量係如下分配至第二、第三及第四記憶體區域12、13及14。
與提供為該半導體儲存裝置之產品規格的儲存容量相同或大於該儲存容量的儲存容量係分配至第三記憶體區域13。
藉由自非揮發性半導體記憶體22之儲存容量減去第三記憶體區域13之儲存容量所剩餘的儲存容量係分配至第二及第四記憶體區域12及14。第二及第四記憶體區域12及14之每一儲存容量及其之間的比率不受限制。
一控制器10具有一CPU及一主要記憶體,而且能操作用於執行資料管理的一程式。在此具體實施例中,能將藉由控制器10實現的功能實施為硬體及軟體之任一者或兩者的組合。是否將此等功能實施為硬體或軟體取決於實際具體實施例或施加於整個系統的設計約束。
當控制器10之該主要記憶體係由一揮發性半導體記憶體(例如DRAM)組成時,第一記憶體區域11可組態於控制器10之該主要記憶體中。
控制器10包括一快取管理表、一叢集管理表、一區塊管理表、一叢集FIFO管理表以及一實體區塊管理表以便管理其中藉由邏輯位址自該主機設備存取的資料係儲存於第一、第二、第三及第四記憶體區域11、12、13及14中的情況。此等管理表係在該半導體儲存裝置之操作期間展開於控制器10之該主要記憶體上。
--快取管理表--
圖47之快取管理表藉由等於叢集單元的「小單元」來控制儲存於第一記憶體區域11中的資料。藉由區段單元執行有效資料的控制。
在圖21中顯示快取管理表之組態,如在段落II之該第一具體實施例中一樣。然而,在此具體實施例中,假定將一個項目指派至第一記憶體區域11中的叢集單元之一個區域。
項目之數目係假定為能包含於第一記憶體區域11中的叢集單元資料之數目,即,不大於(第一記憶體區域11之容量)/(叢集單元之大小)。
叢集單元資料之一邏輯位址、第一記憶體區域11之一實體位址以及指示叢集單元之相關區域中的有效資料之位置的一區段旗標係與每一項目相關聯。
--叢集管理表--
圖47之叢集管理表藉由等於叢集單元的「小單元」來控制儲存於第二及第四記憶體區域12及14中的資料。叢集單元之大小係區段單元之大小的自然數倍大,而且頁單元之大小係叢集單元之大小的兩倍或更大自然數倍大。
圖48顯示叢集管理表之一範例。
假定一個項目係指派至第二及第四記憶體區域12及14中的一個區塊。
為了暫存處理中的區塊,項目之數目係假定具備能包含於第二及第四記憶體區域12及14內的區塊之數目的裕度,即,該數目提供[(第二及第四記憶體區域12及14之總容量)/(區塊單元之大小)]的裕度。
分配至第二記憶體區域12或第四記憶體區域14的區塊之實體位址係與每一項目相關聯,而且該區塊中的叢集單元資料之邏輯位址係記錄於每一項目中。
在圖48中,假定頁單元之大小係叢集單元之大小的兩倍大。一叢集可用性經組態以能夠針對每一叢集區別「寫入啟用」狀態(此儲存區域係空的)與「寫入禁止」狀態(此儲存區域係無效的,因為舊資料已一次性地寫入於其中並且新資料係寫入於另一儲存區域中)。
此外,在其中未實現頁邊界的叢集單元資料係寫入於第四記憶體區域14中的情況下,將對應於相同頁中的叢集單元之剩餘區域的叢集可用性設定為「寫入禁止」狀態。儘管叢集單元之剩餘區域並未儲存有效資料,但是因為資料寫入單元係頁單元而且非揮發性半導體記憶體22不能使用剩餘區域,故控制器10將剩餘區域視為無效資料。
--區塊管理表--
圖47之區塊管理表藉由等於區塊單元的「大單元」來控制儲存於第三記憶體區域13中的資料。在圖23中顯示區塊管理表之組態,如在段落II之該第一具體實施例中一樣。
--叢集FIFO管理表--
圖47之頁叢集FIFO管理表控制分配至第四記憶體區域14之區塊中的資料。在圖24中顯示叢集FIFO管理表之組態,如在段落II之該第一具體實施例中一樣。
--實體區塊管理表--
圖47之實體區塊管理表控制非揮發性半導體記憶體22中的區塊之使用。在圖25中顯示實體區塊管理表之組態,如在段落II之該第一具體實施例中一樣。
說明由圖47之控制器10所執行的一程序流程。
控制器10首先寫入自該主機設備的區段單元(第一單元)資料於第一記憶體區域11中並在某一週期內儲存資料於其中。關於此資料儲存程序,段落I.中說明的「A.該第一記憶體區域中的資料儲存程序」能應用。
控制器10基於一預定條件(其可以係與段落I.中說明的「B.自該第一記憶體區域的資料輸出程序」之該第一條件實質上相同),區別是否應該採用「小單元(第一管理單元)」或「大單元(第二管理單元)」來管理儲存於第一記憶體區域11中的資料。
「小單元」之大小係頁單元之大小的自然數倍大或者頁單元之大小係「小單元」之大小的自然數倍大。
「大單元」之大小係「小單元」之大小的兩倍或更大自然數倍大,而且同時,係區塊單元之大小的自然數倍大。
在此具體實施例中,在第二及第四記憶體區域12及14中的一資料管理單元的「小單元」之大小係區段單元之大小的兩倍或更大自然數倍大,而且頁單元之大小係「小單元」之大小的兩倍或更大自然數部大。滿足此關係的「小單元」係稱為叢集單元。為了簡化解釋,在第三記憶體區域13中的一資料管理單元的「大單元」之大小係等於區塊單元之大小。
該等單元之間的以上關係可加以設定為下列範例:區段單元(第一單元)<叢集單元(「小單元」)<頁單元(第二單元)<區塊單元(第三單元)「大單元」。
若採用「小單元」管理儲存於第一記憶體區域11中的資料,則將資料傳輸至第四記憶體區域14。若採用「大單元」管理儲存於第一記憶體區域11中的資料,則將資料傳輸至第三記憶體區域13。
此資料輸出程序係與段落I.中說明的「B.自該第一記憶體區域的資料輸出程序」實質上相同。然而,不同於段落I.,「小單元」資料之目的地係第四記憶體區域14。因為叢集單元之大小係小於頁單元之大小,故複數個叢集單元資料可加以涉及並傳輸至第四記憶體區域14。
A.該第四記憶體區域中的FIFO程序
如已經說明,第四記憶體區域14具有區塊單元之FIFO結構。圖49顯示第四記憶體區域14中的FIFO程序。
1.控制器10參考對應於為以附加方式寫入資料所製備之一區塊(以下稱為用於叢集附加之實體區塊)的叢集管理表之項目。控制器10儲存自第一記憶體區域11輸出的資料作為等於叢集單元的「小單元」之資料於具有用於叢集附加之實體區塊中的寫入啟用狀態之叢集單元的一區域中(步驟ST1)。
控制器10搜尋快取管理表並判斷經決定加以輸出的構成叢集單元資料的區段單元資料之全部是否存在於第一記憶體區域11中。
若並非所有區段單元資料係在第一記憶體區域11中完成,則控制器10自第二、第三及第四記憶體區域12、13及14收集遺失資料。
在完成構成頁單元資料的所有區段單元資料之後,控制器10指導非揮發性半導體記憶體22寫入叢集單元資料。在步驟ST1中的寫入程序中,較佳的係一起寫入可儲存於相同頁中的複數個叢集單元資料。
2.控制器10在叢集管理表中更新記錄於對應於其中已寫入叢集單元資料的頁之項目中的邏輯位址(步驟ST2)。已寫入於第二及第四記憶體區域12及14中的包括在同一邏輯位址範圍中的舊資料變為無效資料。
3.控制器10判斷在用於叢集附加之實體區塊中是否存在叢集單元之一空區域(步驟ST3)。若未偵測到叢集單元之該空區域,則此程序進行至步驟ST4。若偵測到叢集單元之該空區域,則此程序返回至步驟ST1。
4.控制器10逐一向後偏移叢集FIFO管理表之項目,並添加用於叢集附加之實體區塊的實體位址至叢集FIFO管理表之頂部處的項目(步驟ST4)。因此,將用於叢集附加的實體區塊分配至第四記憶體區域14。
5.控制器10針對其實體位址係記錄於叢集FIFO管理表中的第四記憶體區域14中的所有區塊執行程序P1(步驟ST5)。
程序P1可以係與段落II.中說明的圖39之「B.程序P1」實質上相同。然而,採用叢集單元管理有效資料。
3. 結論
該半導體儲存裝置中的資料管理單元(「小單元」及「大單元」)可對應於該非揮發性半導體記憶體中的實體讀取/寫入/抹除單元,或可以係不同於該單元。
該半導體儲存裝置可採用下列資料管理單元。該兩個資料管理單元滿足「大單元」之大小係「小單元」之大小的兩倍或更大自然數倍大之關係。
(1)「小單元」之大小係等於頁單元之大小,而且「大單元」之大小係等於區塊單元之大小。
(2)「小單元」之大小係等於頁單元之大小,而且「大單元」之大小係等於係小於區塊單元的循跡單元之大小。
(3)「小單元」之大小係等於係小於頁單元的叢集單元之大小,而且「大單元」之大小係等於區塊單元之大小。
(4)「小單元」之大小係等於係小於頁單元的叢集單元之大小,而且「大單元」之大小係等於係小於區塊單元的循跡單元之大小。
自然地,例如該半導體儲存裝置可基於該非揮發性半導體記憶體之規格(頁單元之大小、或區塊單元之大小)來採用滿足以上具體實施例中說明的某一關係之其他資料管理單元,或者該主機設備中的檔案管理單元。
[IV. 應用範例]
說明依據以上具體實施例中所示的半導體儲存裝置之應用範例。
該等半導體儲存裝置係應用於(例如)用作用於諸如筆記型電腦之個人電腦的次要儲存裝置之SSD。
圖50顯示SSD之一組態範例。
SSD 100包括用於資料儲存的複數個NAND型快閃記憶體(NAND記憶體)10、用於資料快取或用於工作區域的一DRAM 101、用於控制快閃記憶體10及DRAM 101的一驅動控制電路102與一電源電路103。
以上具體實施例之第一記憶體區域11可組態於DRAM 101中。組態於DRAM 101中的第一記憶體區域11用作用於NADN記憶體10的寫入快取記憶體。驅動控制電路102可包含以上具體實施例中的控制器10。
驅動控制電路102輸出用於控制提供於SSD 100外面的狀態顯示器LED之一控制信號。可使用一FeRAM(鐵電隨機存取記憶體)、一MRAM(磁性隨機存取記憶體)、或一NOR型快閃記憶體代替DRAM 101。即,第一記憶體區域11可組態於具有高於NAND記憶體10的寫入速度之一非揮發性隨機存取記憶體中。
SSD 100採用諸如個人電腦之主機設備透過諸如串聯ATA I/F之ATA介面(ATA I/F)來傳送及接收資料。SSD 100採用用於除錯的裝備透過RS232C介面(RS232C I/F)來傳送及接收資料。
電源電路103接收外部電源,並使用外部電源產生複數個內部電源。將此複數個內部電源供應至SSD 100中的每一部分。電源電路103偵測外部電源之上升並產生一電源開啟重設信號。將電源開啟重設信號傳送至驅動控制電路102。
NAND記憶體10係由複數個區塊構成。該等區塊之每一者係資料抹除的最小單元。圖51顯示NAND記憶體10中的一個區塊之一組態範例。
每一區塊包括沿X方向循序對準的(m+1)個NAND串(m:整數)。在包括在(m+1)個NAND串中的每一選擇電晶體ST1中,汲極係連接至位元線BL0至BLm,而且閘極係共同連接至選擇閘極線SGD。在選擇電晶體ST2中,源極係共同連接至源極線SL,而且閘極線係共同連接至選擇閘極線SGS。
每一記憶體單元電晶體MT係由具有形成於一半導體基板上的一堆疊式閘極結構之一MOSFET(金氧半導體場效電晶體)組成。該堆疊式閘極結構包括透過一閘極絕緣膜形成於一半導體基板上的一電荷儲存層(浮動閘極電極)以及透過一閘極間絕緣膜形成於該電荷儲存層上的一控制閘極電極。記憶體單元電晶體MT係在其臨限電壓中依據注入至一浮動閘極電極的電子之數目來改變並依據該臨限電壓中的差異來儲存資料。
記憶體單元電晶體MT可加以包含以便儲存1位元(SLC:單一位準單元)或者2或更高位元(MLC:多位準單元)。
在每一NAND串中,(n+1)個記憶體單元電晶體MT係配置在選擇電晶體ST1之源極與選擇電晶體ST2之汲極之間以便串聯連接個別電流路徑。即,在Y方向上串聯連接複數個記憶體單元電晶體MT以便鄰近記憶體單元電晶體共用一擴散區域(源極區域或汲極區域)。
該等控制閘極電極係按順序自最接近於汲極側的記憶體單元電晶體MT而分別連接至字線WL0至WLn。因此,連接至字線WL0的記憶體單元電晶體MT之汲極係連接至選擇電晶體ST1之源極,而且連接至字線WLn的記憶體單元電晶體MT之源極係連接至選擇電晶體ST2之汲極。
字線WL0至WLn係連接在該第三單元中的NAND串之間,從而共用記憶體單元電晶體MT中的控制閘極電極。即,在該第三單元中的同一線上的記憶體單元電晶體MT中的控制閘極電極係連接至同一字線WL。連接至同一字線WL的(m+1)個記憶體單元電晶體MT係視為頁,而且資料寫入及資料讀取係藉由頁單元來實行。
位元線BL0至BLm係連接在該等第三單元之間,從而共用選擇電晶體ST1之汲極。即,在該複數個第三單元中的同一線上的NAND串係連接至同一位元線BL。
以上具體實施例之第二、第三、第四及第五記憶體區域12、13、14及15可組態於NAND記憶體(多個記憶體)10中。該等記憶體區域之每一者可組態於複數個NAND記憶體10之上。另外,該等記憶體區域之每一者可組態於分離NAND記憶體10中。此外,每一NAND記憶體10可具有一不同效能。例如,第四記憶體區域14可組態於SLC型NAND記憶體中,而且其他記憶體區域可組態於MLC類型NAND記憶體中等等。
該複數個NAND記憶體10係並聯連接至驅動控制電路102。並聯連接之NAND記憶體10中的複數個區塊可同時加以抹除並可形成SSD 100中的最小抹除單元之展開區塊單元。並聯連接之該等NAND記憶體10中的複數個頁可同時加以寫入及讀取並可形成在SSD 100中的最小寫入及讀取單元之展開頁單元。
具有帶一浮動閘極電極之一結構的記憶體單元電晶體MT可具有能藉由截獲作為電荷儲存層之氮化物膜介面上的電子來實現一臨限值的調整之一結構,如MONOS(金氧氮氧化矽)類型。同樣,具有MONOS結構的記憶體單元電晶體MT可加以包含以便儲存1位元或者2或更高位元。
圖52顯示其中一個記憶體單元儲存2位元資料之一四位準系統中的一臨限分佈之一範例。
該記憶體單元儲存由該四位準系統中的上頁資料「x」及下頁資料「y」所定義的四位準資料「xy」之一。該四位準資料係「11」、「01」、「00」及「10」。資料「11」(抹除狀態)具有其中記憶體單元電晶體MT之臨限電壓係負值的一狀態。
在下頁資料之寫入操作中,資料「11」係藉由下頁資料「y」之寫入而選擇性地程式化至資料「10」。在上頁資料之寫入之前,資料「10」之臨限分佈係定位在資料「01」與資料「00」的臨限分佈之間,並且可以係寬於在上頁資料之寫入之後所獲得的臨限分佈。在上頁資料之寫入操作中,藉由上頁資料「x」之寫入,資料「11」係選擇性地程式化至資料「01」,而且資料「10」係選擇性地程式化至資料「00」。
當應用多位準資料儲存系統時,需要精細地控制記憶體單元電晶體MT之臨限分佈。臨限分佈受記憶體單元電晶體MT之劣化影響。因此,當該半導體儲存裝置中的非揮發性半導體記憶體採用多位準資料儲存系統時,寫入效率之改良以及抹除計數之減小係本質上有效的。
此外,如圖52中所示,若僅寫入下頁資料之狀態中的臨限分佈係不同於寫入上頁資料之狀態中的臨限分佈,則先前寫入的下頁資料可能會丟失,此係由當執行上頁程式化時的電源供應中斷所引起。
針對以上問題,其中以附加方式寫入「小單元」資料的第四記憶體區域14可由偽SLC區塊構成。偽SLC區塊係其中將僅下頁用於資料寫入的區塊。此組態預防下頁資料之丟失。此外,下頁程式化並不需要精細控制,並改良寫入速度。
若第四記憶體區域14係由偽SLC區塊構成,則偽SLC區塊及規則區塊(MLC區塊)可在第二記憶體區域12中彼此混合。偽SLC區塊之儲存容量係MLC區塊之儲存容量的一半。因此,在第二記憶體區域中的壓縮程序中,將偽SLC區塊中的有效資料複製至MLC區塊。
圖53顯示該驅動控制電路之一組態範例。
驅動控制電路102包括用於資料存取的一匯流排104、一第一電路控制匯流排105及一第二電路控制匯流排106。
用於控制整個驅動控制電路102的一處理器107係連接至第一電路控制匯流排105。或者,其中儲存一啟動程式於每一控制程式(FW:韌體)中的一啟動ROM 108係透過ROM控制器109連接至第一電路控制匯流排105。此外,用於自電源電路103接收電源開啟重設信號並供應一重設信號及一時脈信號至每一區段的一時脈控制器110係連接至第一電路控制匯流排105。
第二電路控制匯流排106係連接至第一電路控制匯流排105。用於供應一狀況顯示信號至狀態顯示LED的一並聯IO(PIO)電路111以及用於控制RS232C介面的一串聯IO(SIO)電路112係連接至第二電路控制匯流排106。
一ATA介面控制器(ATA控制器)113、一第一ECC(誤差檢查及校正)電路114、一NAND控制器115以及一DRAM控制器119係連接至資料存取匯流排104及第一電路控制匯流排105兩者。ATA控制器113採用一主機設備透過一ATA介面來傳送及接收資料。用作一資料工作區域的一SRAM 120係透過一SRAM控制器121連接至資料存取匯流排104。
NAND控制器115包括用於採用四個NAND記憶體10實行介面程序的一NAND I/F 118、一第二ECC電路117以及用於DMA傳輸控制以控制該NAND記憶體與該DRAM之間的存取之DMA控制器116。
圖54顯一處理器之一組態範例。
處理器107包括一資料控制單元122、以及一ATA命令處理單元123、一安全性控制單元124、一啟動載入器125、一初始化控制單元126及一除錯支援單元127。
資料控制單元122關於一NAND晶片透過NAND控制器115及第一ECC電路114來控制該NAND記憶體與該DRAM之間的資料傳輸以及各種功能。
ATA命令處理單元123與資料控制單元122合作透過ATA控制器113及DRAM控制器119來實行資料傳輸程序。安全性控制單元124與資料控制單元122及ATA命令處理單元123合作控制各種安全性資訊。啟動載入器125當加以通電時將每一控制程式(FW)自NAND記憶體10載入至SRAM 120。
初始化控制單元126初始化驅動控制電路102中的每一控制器及電路。除錯支援單元127處理自外部透過RS232C介面所供應之用於除錯的資料。
圖55顯示其中安裝一SSD的一可攜式電腦之一範例。
一可攜式電腦200包括一主體201及一顯示單元202。顯示單元202包括一顯示外殼203以及容納在顯示外殼203中的一顯示裝置204。
主體201包括一底盤205、一鍵盤206以及作為一指向裝置的一觸控墊207。底盤205包括一主要電路板、一ODD單元(光碟裝置)、一卡槽以及SSD 100。
該卡槽係加以提供以便係鄰近於底盤205之周邊壁。該周邊壁具有面對該卡槽的一開口208。一使用者可透過開口208自底盤205外面將一額外裝置插入至該卡槽中以及自該卡槽移除。
SSD 100可在加以安裝於可攜式電腦200中的狀態中加以使用而代替先前技術HDD或者或在加以插入至可攜式電腦200之卡槽中的狀態中加以使用為一額外裝置。
圖56顯示其中安裝一SSD的一可攜式電腦之系統的一範例。
可攜式電腦200係由CPU 301、一北橋302、一主要記憶體303、一視訊控制器304、一音訊控制器305、一南橋309、BIOS-ROM 310、SSD 100、ODD單元310、一嵌入式控制器/鍵盤控制器(EC/KBC)IC 311以及一網路控制器312組成。
CPU 301係用於控制可攜式電腦200之操作的處理器,並執行自SSD 100載入至主要記憶體303的操作系統(OS)。當ODD單元310執行對一光碟的讀取程序及寫入程序之一時,CPU 301執行此等程序。
CPU 301執行儲存於BIOS-ROM 310中的系統BIOS(基本輸入輸出系統)。系統BIOS係用於控制可攜式電腦200之硬體的一程式。
北橋302係連接CPU 301之本地匯流排至南橋309的橋裝置。北橋302具有用於控制對主要記憶體303的存取之一記憶體控制器。
北橋302具有透過AGP(加速圖形埠)匯流排執行視訊控制器304與音訊控制器305之間的通信之功能。
主要記憶體303暫時地儲存程式或資料,並用作CPU 301之一工作區域。主要記憶體303係由(例如)DRAM組成。
視訊控制器304係一視訊重製控制器,其用於控制用於可攜式電腦200之顯示監視器(LCD)317的一顯示單元。
音訊控制器305係一音訊重製控制器,其用於控制可攜式電腦200之一揚聲器319。
南橋309控制連接至LPC(低接針計數)匯流排的裝置,並控制連接至PCI(周邊組件互連)匯流排的裝置。南橋309控制SSD 100,其係透過ATA介面來儲存軟體及資料的記憶體裝置。
可攜式電腦200執行對區段單元中的SSD 100之存取。透過ATA介面輸入寫入命令、讀取命令及快閃命令。
南橋309具有控制BIOS-ROM 310及ODD單元310之功能。
EC/KBC 311係單晶片微電腦,其係整合於用於控制電源供應的嵌入式控制器,以及用於控制鍵盤(KB)314及觸控墊207的鍵盤控制器中。
EC/KBC 311具有基於電源按鈕之操作藉由使用者設定可攜式電腦200的電源供應之開啟/關閉的功能。網路控制器312係(例如)執行與網路(例如網際網路)之通信的通信裝置。
儘管以上具體實施例中的半導體儲存裝置係包含為一SSD,但是其能加以包含為(例如)由一SDTM 卡所典型化的一記憶卡。當該半導體儲存裝置係包含為該記憶卡時,其不僅能應用於可攜式電腦而且能應用於各種電子裝置,例如一行動電話、一PDA(個人數位助理)、一數位靜止相機以及一數位攝錄影機。
工業應用性
本發明之半導體儲存裝置對於用於諸如SSD之個人電腦及諸如SDTM 卡之記憶卡的次要儲存裝置係有效的。
10...控制器/NAND型快閃記憶體(NAND記憶體)
11...第一記憶體區域
12...第二記憶體區域
13...第三記憶體區域
14...第四記憶體區域
15...第五記憶體區域
21...揮發性半導體記憶體
22...非揮發性半導體記憶體
23...主機I/F介面
31...主機設備
32...半導體儲存裝置
100...SDD
101...DRAM
102...驅動控制電路
103...電源電路
104...資料存取匯流排
105...第一電路控制匯流排
106...第二電路控制匯流排
107...處理器
108...啟動ROM
109...ROM控制器
110...時脈控制器
111...並聯IO(PIO)電路
112...串聯IO(SIO)電路
113...ATA介面控制器(ATA控制器)
114...第一ECC(誤差檢查及校正)電路
115...NAND控制器
116...DMA控制器
117...第二ECC電路
118...NAND I/F
119...DRAM控制器
120...SRAM
121...SRAM控制器
122...資料控制單元
123...ATA命令處理單元
124...安全性控制單元
125...啟動載入器
126...初始化控制單元
127...除錯支援單元
200...可攜式電腦
201...主體
202...顯示單元
203...顯示外殼
204...顯示裝置
205...底盤
206...鍵盤
207...觸控墊
208...開口
301...CPU
302...北橋
303...主要記憶體
304...視訊控制器
305...音訊控制器
309...南橋
310...BIOS-ROM/ODD單元
311...嵌入式控制器/鍵盤控制器(EC/KBC)
312...網路控制器
314...鍵盤(KB)
317...顯示監視器(LCD)
319...揚聲器
BL0至BLm...位元線
MT...記憶體單元電晶體
SGD...選擇閘極線
SGS...選擇閘極線
SL...源極線
ST1...選擇電晶體
ST2...選擇電晶體
WL0至WLn...字線
圖1係顯示一第一基本組態的圖式;
圖2係顯示一第二基本組態的圖式;
圖3係顯示一快取管理表的圖式;
圖4係顯示一頁管理表的圖式;
圖5係顯示一頁管理表的圖式;
圖6係顯示一區塊管理表的圖式;
圖7係顯示一實體區塊管理表的圖式;
圖8係顯示一實體區塊管理表的圖式;
圖9係顯示一第一記憶體區域中的一資料儲存程序之流程圖;
圖10係顯示自一第一記憶體區域的一資料輸出程序之流程圖;
圖11係顯示自一第一記憶體區域的一資料輸出程序之流程圖;
圖12係顯示自該第一記憶體區域至一第二記憶體區域的資料傳輸之圖式;
圖13係顯示自該第一記憶體區域至一第三記憶體區域的資料傳輸之圖式;
圖14係顯示自該第一記憶體區域至該第三記憶體區域的資料傳輸之圖式;
圖15係顯示自該第二記憶體區域至該第三記憶體區域的資料傳輸之流程圖;
圖16係顯示自該第二記憶體區域至該第三記憶體區域的資料傳輸之一條件的圖式;
圖17係顯示一系統範例之圖式;
圖18係顯示一系統範例之圖式;
圖19係顯示壓縮之一範例的圖式;
圖20係顯示一第一具體實施例之一組態的圖式;
圖21係顯示一快取管理表的圖式;
圖22係顯示一頁管理表的圖式;
圖23係顯示一區塊管理表的圖式;
圖24係顯示一頁FIFO管理表的圖式;
圖25係顯示一實體區塊管理表的圖式;
圖26係顯示該第四記憶體區域中的一FIFO程序之流程圖;
圖27係顯示程序P1的流程圖;
圖28係顯示壓縮之一程序範例1的流程圖;
圖29係顯示壓縮之一程序範例2的流程圖;
圖30係顯示一第二具體實施例之一組態的圖式;
圖31係顯示一循跡管理表的圖式;
圖32係顯示一循跡FIFO管理表的圖式;
圖33係顯示一實體區塊管理表的圖式;
圖34係顯示一第五記憶體區域中的一FIFO程序之流程圖;
圖35係顯示壓縮之一程序範例1的流程圖;
圖36係顯示壓縮之一程序範例2的流程圖;
圖37係顯示一第三具體實施例之一組態的圖式;
圖38係顯示該第四記憶體區域中的一FIFO程序之流程圖;
圖39係顯示程序P1的流程圖;
圖40係顯示該第四記憶體區域之一狀態的圖式;
圖41係顯示自該第二記憶體區域至該第三記憶體區域的資料傳輸程序之一程序範例,以及一壓縮程序的流程圖;
圖42係顯示該第二記憶體區域之一狀態的圖式;
圖43係顯示該第二記憶體區域之一狀態的圖式;
圖44係顯示該第二記憶體區域之一狀態的圖式;
圖45係顯示該第二記憶體區域之一狀態的圖式;
圖46係顯示該第二記憶體區域之一狀態的圖式;
圖47係用於解釋資料管理單元之一範例的圖式;
圖48係顯示一叢集管理表的圖式;
圖49係顯示該第四記憶體區域中的一FIFO程序之流程圖;
圖50係顯示一SSD之一範例的圖式;
圖51係顯示一個區塊之一組態範例的圖式;
圖52係顯示一記憶體單元電晶體中的臨限電壓分佈之圖式;
圖53係顯示一驅動控制電路之一組態範例的圖式;
圖54係顯示一處理器之一組態範例的圖式;
圖55係顯示一可攜式電腦之一範例的圖式;以及
圖56係顯示一可攜式電腦之一系統的一範例之圖式。
10...控制器/NAND型快閃記憶體(NAND記憶體)
11...第一記憶體區域
12...第二記憶體區域
13...第三記憶體區域

Claims (60)

  1. 一種半導體儲存裝置,其包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二及第三記憶體區域,其係組態於藉由一第二單元實行資料之寫入並藉由一第三單元實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由該第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第二記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;以及一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第三記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大。
  2. 如請求項1之半導體儲存裝置,其中在該第二處理中,該控制器:自該等第二及第三記憶體區域之至少一個讀取構成該第一管理單元之資料而且並非儲存於該第一記憶體區域 中的資料;以及合併儲存於該第一記憶體區域中的資料以及自該等第二及第三記憶體區域之至少一個讀取的資料成該第一管理單元之資料。
  3. 如請求項1之半導體儲存裝置,其中在該第三處理中,該控制器:自該等第二及第三記憶體區域之至少一個讀取構成該第二管理單元之資料而且並非儲存於該第一記憶體區域中的資料;以及合併儲存於該第一記憶體區域中的資料以及自該等第二及第三記憶體區域之至少一個讀取的資料成該第二管理單元之資料。
  4. 如請求項1之半導體儲存裝置,其中該控制器執行:一第四處理,其用於選擇待自該第二記憶體區域輸出的該第一管理單元之資料;以及一第五處理,其用於藉由該第二管理單元儲存包括該選定資料的資料於該第三記憶體區域中。
  5. 如請求項4之半導體儲存裝置,其中在該第五處理中,該控制器:藉由對準在該第四處理中選擇的資料之邏輯位址至該第二管理單元來計算邏輯位址範圍;自該等第一、第二及第三記憶體區域之至少一個讀取包括在該邏輯位址範圍中的資料;以及合併該第二記憶體區域中的資料以及自該等第一、第 二及第三記憶體區域之至少一個讀取的資料成該第二管理單元之資料。
  6. 如請求項1之半導體儲存裝置,其中:該等第二及第三記憶體區域共用該相同非揮發性半導體記憶體;以及該控制器分別分配該第三單元之區域至該等第二及第三記憶體區域。
  7. 如請求項1之半導體儲存裝置,其中在該第一處理中,該控制器:藉由對準輸入至該半導體儲存裝置的資料之邏輯位址至該第一管理單元來計算邏輯位址範圍;以及儲存該第一單元之資料於對應於該第一記憶體區域中的該邏輯位址範圍的該第一管理單元之一區域中。
  8. 如請求項7之半導體儲存裝置,其中在該第一處理中,該控制器:判斷該邏輯位址範圍是否可用於儲存該第一單元之資料於該第一記憶體區域中;以及若該邏輯位址範圍並非可用,則執行該第二及第三處理之至少一個。
  9. 如請求項1之半導體儲存裝置,其中該控制器:藉由對準待自該第一記憶體區域輸出的資料之邏輯位址至該第二管理單元來計算邏輯位址範圍;計數包括在該邏輯位址範圍中而且係儲存於該第一記憶體區域中的資料之一數目; 若資料之該數目係小於一預定臨限值,則執行該第二處理;以及若資料之該數目係該預定臨限值或較大,則執行該第三處理。
  10. 如請求項1之半導體儲存裝置,其中該控制器:藉由對準待自該第一記憶體區域輸出的資料之邏輯位址至該第二管理單元來計算邏輯位址範圍;計數包括在該邏輯位址範圍中而且係儲存於該等第一及第二記憶體區域中的資料之一數目;若資料之該數目係小於一預定臨限值,則執行該第二處理;以及若資料之該數目係該預定臨限值或較大,則執行該第三處理。
  11. 如請求項4之半導體儲存裝置,其中該非揮發性半導體記憶體需要在資料之重新寫入之前實行資料之抹除。
  12. 如請求項11之半導體儲存裝置,其中在該第二處理中,該控制器:寫入該第一管理單元之新資料於該第二記憶體區域中的該第二單元之空區域中;若該新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第二記憶體區域中的該舊資料為無效;將該新資料視為具有優於該舊資料的優先權之有效資料;以及將該舊資料視為藉由參考該新資料而加以忽視的無效 資料。
  13. 如請求項12之半導體儲存裝置,其中若由儲存於該第二記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第四及第五處理。
  14. 如請求項13之半導體儲存裝置,其中在該第四處理中,該控制器:偵測該第二記憶體區域中具有最舊寫入順序的該第三單元之一區域;以及選擇儲存於該第三單元之該區域中的該第一管理單元之每一有效資料。
  15. 如請求項13之半導體儲存裝置,其中在該第四處理中,該控制器:藉由對準有效資料之邏輯位址至用於該第二記憶體區域中的該第三單元之每一區域的該第二管理單元來計算邏輯位址範圍;計數包括在該邏輯位址範圍中而且係儲存於該第二記憶體區域中的有效資料之一數目;總計用於該第二記憶體區域中的該第三單元之每一區域的有效資料之該數目;偵測具有最大總數的該第三單元之一區域;以及選擇儲存於該第三單元之該區域中的該第一管理單元之每一有效資料。
  16. 如請求項13之半導體儲存裝置,其中在該第四處理中, 該控制器:計數用於該第二記憶體區域中的該第三單元之每一區域的無效資料之一數目;偵測具有無效資料之最小數目的該第三單元之一區域;以及選擇儲存於該第三單元之該區域中的該第一管理單元之每一有效資料。
  17. 如請求項12之半導體儲存裝置,其中該控制器:判斷該第二記憶體區域中的無效資料之一數目是否超過一預定臨限值;計數用於該第二記憶體區域中的該第三單元之每一區域的無效資料之一數目;按順序自具有最大數目之無效資料者,選擇該第三單元之區域中的有效資料;重新寫入該選定有效資料於該第三單元之一第一區域中,該第一區域係空的;在重新寫入該選定有效資料於其中之後分配該第一區域至該第二記憶體區域;以及釋放該第二記憶體區域中的該第三單元之一第二區域,該第二區域藉由重新寫入該選定有效資料於該第一區域中而沒有有效資料。
  18. 如請求項11之半導體儲存裝置,其中在該第三處理中,該控制器:寫入該第二管理單元之新資料於該第三記憶體區域中 的該第三單元之一空區域中;若新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第三記憶體區域中的該舊資料為無效;將該新資料視為具有優於該舊資料的優先權之有效資料;以及將該舊資料視為藉由參考該新資料而加以忽視的無效資料。
  19. 如請求項18之半導體儲存裝置,其中該控制器:判斷該第三記憶體區域中的無效資料之一數目是否超過一預定臨限值;計數用於該第三記憶體區域中的該第三單元之每一區域的該第二管理單元之無效資料的一數目;按順序自具有無效資料之最大數目的區塊選擇該第三單元之區域中的有效資料;重新寫入該第二管理單元之該選定有效資料於該第三記憶體區域中的該第三單元之空區域中;以及釋放該第三單元之一區域,其中該第二管理單元係小於該第三單元。
  20. 如請求項1之半導體儲存裝置,其中該第二單元係該第一管理單元的兩倍或更大自然數倍大。
  21. 如請求項1之半導體儲存裝置,其中該第一管理單元係該第二單元的兩倍或更大自然數倍大,以及其中該第三單元係該第一管理單元的兩倍或更大自然 數倍大。
  22. 如請求項1之半導體儲存裝置,其中該第三單元係該第二管理單元的兩倍或更大自然數倍大。
  23. 如請求項1之半導體儲存裝置,其中該第二管理單元係該第三單元的兩倍或更大自然數倍大。
  24. 一種半導體儲存裝置,其包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二、第三及第四記憶體區域,其係組態於藉由一第二單元實行資料之寫入並藉由一第三單元實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由該第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第四記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第三記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大而且並非小於該第三單元; 一第四處理,其用於移動具有該第四記憶體區域中的最舊分配順序的該第三單元之一區域至該第二記憶體區域;以及一第五處理,其用於選擇該第二記憶體區域中的資料並重新寫入該選定資料於該第二記憶體區域中的該第三單元之一空區域中。
  25. 如請求項24之半導體儲存裝置,其中在該第二處理中,該控制器:儲存該第一管理單元之新資料於該第二單元之一空區域中,該空區域係包括在該第三單元之一附加區域中;若該新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第二及第四記憶體區域中的該舊資料為無效;將該新資料視為具有優於該舊資料的優先權之有效資料;將該舊資料視為藉由參考該新資料而加以忽視的無效資料;以及若該第二單元之該空區域並不存在,則分配該第三單元之該附加區域至該第四記憶體區域。
  26. 如請求項25之半導體儲存裝置,其中該控制器執行一第六處理,其用於:選擇儲存於具有該第四記憶體區域中的該最舊分配順序的該第三單元之該區域中的該第一管理單元之有效資料;以及 藉由該第二管理單元儲存包括該選定有效資料的資料於該第三記憶體區域中。
  27. 如請求項26之半導體儲存裝置,其中在該第六處理中,該控制器:藉由對準具有該最舊分配順序的該第三單元之該區域中的每一有效資料之邏輯位址至該第二管理單元來計算邏輯位址範圍;計數包括在該邏輯位址範圍中而且係儲存於該第四記憶體區域中的有效資料之一數目;以及若有效資料之該數目係一預定臨限值或較大,則選擇包括在該邏輯位址範圍中的有效資料。
  28. 如請求項26之半導體儲存裝置,其中在該第六處理中,該控制器:藉由對準具有該最舊分配順序的該第三單元之該區域中的每一有效資料之邏輯位址至該第二管理單元來計算邏輯位址範圍;計數包括在該邏輯位址範圍中而且係儲存於該第二及第四記憶體區域中的有效資料之一數目;以及若有效資料之該數目係一預定臨限值或較大,則選擇包括在該邏輯位址範圍中的有效資料。
  29. 如請求項26之半導體儲存裝置,其中若由該第四記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第四及第六處理之至少一個。
  30. 如請求項26之半導體儲存裝置,其中該控制器執行一第七處理,其用於:選擇待自該第二記憶體區域輸出的該第一管理單元之有效資料;以及藉由該第二管理單元儲存包括該選定有效資料的資料於該第三記憶體區域中。
  31. 如請求項30之半導體儲存裝置,其中若由儲存於該第二記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第五及第七處理之至少一個。
  32. 如請求項31之半導體儲存裝置,其中該控制器:若該第二記憶體區域中的有效資料之一數目係可儲存於該第二記憶體區域中的資料之一數目或較小,則執行該第五處理;以及若有效資料之該數目係大於可儲存於該第二記憶體區域中的資料之該數目,則執行該第七處理。
  33. 如請求項31之半導體儲存裝置,其中該控制器:按順序自該第二記憶體區域中具有最小數目有效資料者,選擇該第三單元之一第一預定數目的區域;若該第一預定數目之區域中的有效資料之一總數係可儲存於該第三單元之一第二預定數目之區域中的資料之一數目,則執行該第五處理;以及若有效資料之該總數係大於可儲存於該第二預定數目之區域中的資料之該數目,則執行該第七處理, 其中該第二預定數目係小於該第一預定數目。
  34. 如請求項24之半導體儲存裝置,其中在該第五處理中,該控制器按順序自該第二記憶體區域中具有最小數目有效資料者,選擇儲存於該第三單元之區域中的有效資料。
  35. 如請求項30之半導體儲存裝置,其中在該第七處理中,該控制器選擇具有該第二記憶體區域中的有效資料之最大數目的該第三單元之一區域中的有效資料。
  36. 一種半導體儲存裝置,其包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二、第三、第四及第五記憶體區域,其係組態於藉由一第二單元實行資料之寫入並藉由一第三單元實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由該第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第四記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;一第三處理,其用於藉由一第二管理單元儲存自該第 一記憶體區域輸出的資料於該第五記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大而且係小於該第三單元;一第四處理,其用於移動具有該第四記憶體區域中的最舊分配順序的該第三單元之一區域至該第二記憶體區域;一第五處理,其用於選擇該第二記憶體區域中的資料並重新寫入該選定資料於該第二記憶體區域中的該第三單元之一空區域中;一第六處理,其用於移動具有該第五記憶體區域中的最舊分配順序的該第三單元之一區域至該第三記憶體區域;以及一第七處理,其用於選擇該第三記憶體區域中的資料並重新寫入該選定資料於該第三記憶體區域中的該第三單元之一空區域中。
  37. 如請求項36之半導體儲存裝置,其中在該第二處理中,該控制器:儲存該第一管理單元之新資料於該第二單元之一空區域中,該空區域係包括在該第三單元之一附加區域中;若該新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第二及第四記憶體區域中的該舊資料為無效;將該新資料視為具有優於該舊資料的優先權之有效資料; 將該舊資料視為藉由參考該新資料而加以忽視的無效資料;以及若該第二單元之該空區域並不存在,則分配該第三單元之該附加區域至該第四記憶體區域。
  38. 如請求項37之半導體儲存裝置,其中該控制器執行一第八處理,其用於:選擇儲存於具有該第四記憶體區域中的該最舊分配順序的該第三單元之該區域中的該第一管理單元之有效資料;以及藉由該第二管理單元儲存包括該選定有效資料的資料於該第三記憶體區域中。
  39. 如請求項38之半導體儲存裝置,其中在該第八處理中,該控制器:藉由對準具有該最舊分配順序的該第三單元之該區域中的每一有效資料之邏輯位址至該第二管理單元來計算邏輯位址範圍;計數包括在該邏輯位址範圍中而且係儲存於該第四記憶體區域中的有效資料之一數目;以及若有效資料之該數目係一預定臨限值或較大,則選擇包括在該邏輯位址範圍中的有效資料。
  40. 如請求項38之半導體儲存裝置,其中在該第八處理中,該控制器:藉由對準具有該最舊分配順序的該第三單元之該區域中的每一有效資料之邏輯位址至該第二管理單元來計算 邏輯位址範圍;計數包括在該邏輯位址範圍中而且係儲存於該第二及第四記憶體區域中的有效資料之一數目;以及若有效資料之該數目係一預定臨限值或較大,則選擇包括在該邏輯位址範圍中的有效資料。
  41. 如請求項38之半導體儲存裝置,其中若由該第四記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第四及第八處理之至少一個。
  42. 如請求項38之半導體儲存裝置,其中該控制器執行:一第九處理,其用於:選擇待自該第二記憶體區域輸出的該第一管理單元之有效資料;以及藉由該第二管理單元儲存包括該選定有效資料的資料於該第五記憶體區域中。
  43. 如請求項42之半導體儲存裝置,其中若由該第二記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第五及第九處理之至少一個。
  44. 如請求項43之半導體儲存裝置,其中該控制器:若該第二記憶體區域中的有效資料之一數目係可儲存於該第二記憶體區域中的資料之一數目或較小,則執行該第五處理;以及若有效資料之該數目係大於可儲存於該第二記憶體區 域中的資料之該數目,則執行該第九處理。
  45. 如請求項43之半導體儲存裝置,其中該控制器:按順序自該第二記憶體區域中具有最小數目有效資料者,選擇該第三單元之區域的一第一預定數目;若該第一預定數目之區域中的有效資料之一總數係可儲存於該第三單元之一第二預定數目之區域中的資料之一數目,則執行該第五處理;以及若有效資料之該總數係大於可儲存於該第二預定數目之區域中的資料之該數目,則執行該第九處理,其中該第二預定數目係小於該第一預定數目。
  46. 如請求項36之半導體儲存裝置,其中在該第五處理中,該控制器按順序自該第二記憶體區域中具有最小數目有效資料者,選擇儲存於該第三單元之區域中的有效資料。
  47. 如請求項42之半導體儲存裝置,其中在該第九處理中,該控制器選擇該第二記憶體區域中具有最大數目有效資料的該第三單元之一區域中的有效資料。
  48. 如請求項36之半導體儲存裝置,其中在該第三處理中,該控制器:寫入該第二管理單元之新資料於該第二單元之一空區域中,該等空區域係包括在該第三單元之一附加區域中;若該新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第二及第四記憶體區域中的該舊資料為無 效;將該新資料視為具有優於該舊資料的優先權之有效資料;將該舊資料視為藉由參考該新資料而加以忽視的無效資料;以及若該第二單元之該空區域並不存在,則分配該第三單元之該附加區域至該第五記憶體區域。
  49. 如請求項48之半導體儲存裝置,其中若由該第五記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第六處理。
  50. 如請求項36之半導體儲存裝置,其中若由該第三記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第九處理。
  51. 如請求項36之半導體儲存裝置,其中在該第九處理中,該控制器選擇包括在該第三記憶體區域中具有最小數目有效資料的該第三單元之一區域中的有效資料。
  52. 如請求項36之半導體儲存裝置,其中在該第七處理中,該控制器進一步選擇儲存於該第五記憶體區域中的有效資料。
  53. 如請求項52之半導體儲存裝置,其中在該第七處理中,若儲存於該第三記憶體區域中的無效資料之一數目係小於可儲存於該第三單元之一個區域中的資料之一數目, 則該控制器選擇儲存於該第五記憶體區域中的有效資料。
  54. 一種半導體儲存裝置,其包含:一第一記憶體區域,其係組態於藉由一第一單元或較小實行資料之寫入的一揮發性半導體記憶體中,該第一單元係該半導體儲存裝置之一存取單元;第二、第三及第四記憶體區域,其係組態於藉由一第二單元實行資料之寫入並在一第三單元中實行資料之抹除的一非揮發性半導體記憶體中,該第三單元係該第二單元的兩倍或更大自然數倍大;以及一控制器,其執行:一第一處理,其用於藉由該第一單元儲存複數個資料於該第一記憶體區域中;一第二處理,其用於藉由一第一管理單元儲存自該第一記憶體區域輸出的資料於該第四記憶體區域中,該第一管理單元係該第一單元的兩倍或更大自然數倍大而且係小於該第三單元;一第三處理,其用於藉由一第二管理單元儲存自該第一記憶體區域輸出的資料於該第三記憶體區域中,該第二管理單元係該第一管理單元的兩倍或更大自然數倍大而且並非小於該第三單元;一第四處理,其用於選擇該第四記憶體區域中的該第三單元之一區域並用於移動該選定區域至該第二記憶體區域;以及 一第五處理,其用於按順序自具有最舊寫入順序者,循序選擇該第三單元之區域中的資料並用於重新寫入該選定資料於該第二記憶體區域中的該第三單元之一空區域中;以及一第六處理,其用於選擇該第二記憶體區域中的資料並用於重新寫入該選定資料於該第二記憶體區域中的該第三單元之一空區域中。
  55. 如請求項54之半導體儲存裝置,其中在該第二處理中,該控制器:儲存該第一管理單元之新資料於該第二單元之一空區域中,該空區域係包括在該第三單元之一附加區域中;若該新資料之邏輯位址對應於舊資料之邏輯位址,則設定儲存於該第二及第四記憶體區域中的該舊資料為無效;將該新資料視為具有優於該舊資料的優先權之有效資料;將該舊資料視為藉由參考該新資料而加以忽視的無效資料;以及若該第二單元之該空區域並不存在,則分配該第三單元之該附加區域至該第四記憶體區域。
  56. 如請求項55之半導體儲存裝置,其中若由儲存於該第四記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第四處理。
  57. 如請求項56之半導體儲存裝置,其中若在執行該第四處理之後由儲存於該第四記憶體區域中的複數個有效及無效資料佔據的該第三單元之區域的一數目超過一容許範圍,則該控制器執行該第五處理。
  58. 如請求項55之半導體儲存裝置,其中在該第六處理中,該控制器:按順序自該第二記憶體區域中具有最舊分配順序者,計數包括該第三單元之複數個區域之一窗口內的有效資料之一數目;自其中該寫入之順序在該第二記憶體區域中係最舊的該第三單元之一區域選擇有效資料;以及重新寫入該選定資料於該第三單元之一空區域中;分配該第三單元之該區域至該第二記憶體區域。
  59. 17、19或33之半導體儲存裝置,其中該第一管理單元之一大小係等於該第二單元之一大小。
  60. 17或33之半導體儲存裝置,其中該第二管理單元之一大小係等於該第三單元之一大小。
TW97151099A 2007-12-28 2008-12-26 半導體儲存裝置 TWI396083B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007339943 2007-12-28
JP2008046227 2008-02-27

Publications (2)

Publication Number Publication Date
TW200949537A TW200949537A (en) 2009-12-01
TWI396083B true TWI396083B (zh) 2013-05-11

Family

ID=40824430

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97151099A TWI396083B (zh) 2007-12-28 2008-12-26 半導體儲存裝置

Country Status (7)

Country Link
US (12) US7962688B2 (zh)
EP (1) EP2225643B1 (zh)
JP (5) JP4533968B2 (zh)
KR (1) KR101077339B1 (zh)
CN (1) CN101632068B (zh)
TW (1) TWI396083B (zh)
WO (1) WO2009084724A1 (zh)

Families Citing this family (257)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
KR101077339B1 (ko) 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
JP4691123B2 (ja) * 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
JP4691122B2 (ja) * 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP4592774B2 (ja) * 2008-03-01 2010-12-08 株式会社東芝 メモリシステム
JP4745356B2 (ja) * 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
KR101067457B1 (ko) 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
JP5317690B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
JP5221332B2 (ja) 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
JP2010157130A (ja) 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
TWI432961B (zh) 2009-02-12 2014-04-01 Toshiba Kk 記憶體系統及控制記憶體系統之方法
JP5268710B2 (ja) * 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
JP5341584B2 (ja) * 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
JP2011022657A (ja) * 2009-07-13 2011-02-03 Fujitsu Ltd メモリシステムおよび情報処理装置
JP5209793B2 (ja) * 2009-08-21 2013-06-12 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP2011128998A (ja) 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
JP2011145838A (ja) * 2010-01-13 2011-07-28 Toshiba Corp 記憶装置管理装置および記憶装置の管理方法
JP4738536B1 (ja) * 2010-01-29 2011-08-03 株式会社東芝 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
JP2011192240A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
JP5404483B2 (ja) * 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
JP2011192239A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) * 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US8688660B1 (en) 2010-09-28 2014-04-01 Amazon Technologies, Inc. System and method for providing enhancements of block-level storage
US9304867B2 (en) 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
KR101713051B1 (ko) * 2010-11-29 2017-03-07 삼성전자주식회사 하이브리드 메모리 시스템, 및 그 관리 방법
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP2012128645A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
JP2012141946A (ja) * 2010-12-16 2012-07-26 Toshiba Corp 半導体記憶装置
TWI479505B (zh) * 2010-12-16 2015-04-01 Phison Electronics Corp 資料管理方法、記憶體控制器與記憶體儲存裝置
JP5535128B2 (ja) 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
JP2012128816A (ja) 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
JP2012133416A (ja) 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
JP5178857B2 (ja) * 2011-02-16 2013-04-10 株式会社東芝 メモリシステム
US9342446B2 (en) * 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8537613B2 (en) * 2011-03-31 2013-09-17 Sandisk Technologies Inc. Multi-layer memory system
JP2012221251A (ja) 2011-04-08 2012-11-12 Toshiba Corp メモリシステムの制御方法、情報処理装置、及びプログラム
CN103620563B (zh) 2011-04-26 2015-04-29 Lsi公司 用于非易失性存储器的可变超量配置
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US9898402B2 (en) * 2011-07-01 2018-02-20 Micron Technology, Inc. Unaligned data coalescing
US8930614B2 (en) * 2011-07-29 2015-01-06 Kabushiki Kaisha Toshiba Data storage apparatus and method for compaction processing
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
KR20130032155A (ko) * 2011-09-22 2013-04-01 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
JP5674634B2 (ja) 2011-12-28 2015-02-25 株式会社東芝 コントローラ、記憶装置およびプログラム
US20130173842A1 (en) * 2011-12-28 2013-07-04 King Ying Ng Adaptive Logical Group Sorting to Prevent Drive Fragmentation
US10613982B1 (en) 2012-01-06 2020-04-07 Seagate Technology Llc File-aware caching driver
US20150015913A1 (en) * 2012-01-10 2015-01-15 Kyocera Document Solutions Inc. Image processing apparatus and image forming apparatus
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US20130219105A1 (en) * 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for caching for non-volatile memory device
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US9251055B2 (en) 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
JP5687648B2 (ja) * 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
JP2013196115A (ja) 2012-03-16 2013-09-30 Toshiba Corp メモリシステム
US9110600B1 (en) 2012-03-19 2015-08-18 Amazon Technologies, Inc. Triggered data shelving to a different storage system and storage deallocation
JP5835040B2 (ja) * 2012-03-19 2015-12-24 富士通株式会社 情報処理システムおよびデータ記録制御方法
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US9542324B1 (en) 2012-04-05 2017-01-10 Seagate Technology Llc File associated pinning
US9268692B1 (en) 2012-04-05 2016-02-23 Seagate Technology Llc User selectable caching
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
JP5619812B2 (ja) * 2012-04-24 2014-11-05 ウィンボンドエレクトロニクス コーポレーション 半導体記憶装置
US9823840B1 (en) 2012-05-07 2017-11-21 Amazon Technologies, Inc. Data volume placement techniques
US9503517B1 (en) 2012-05-07 2016-11-22 Amazon Technologies, Inc. Data volume placement techniques
US9804993B1 (en) 2012-05-07 2017-10-31 Amazon Technologies, Inc. Data volume placement techniques
US9246996B1 (en) 2012-05-07 2016-01-26 Amazon Technologies, Inc. Data volume placement techniques
US11379354B1 (en) 2012-05-07 2022-07-05 Amazon Technologies, Inc. Data volume placement techniques
KR101979392B1 (ko) * 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20130128685A (ko) * 2012-05-17 2013-11-27 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
CN103514110B (zh) * 2012-06-20 2016-08-24 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
TWI479315B (zh) * 2012-07-03 2015-04-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
JP5813589B2 (ja) * 2012-07-13 2015-11-17 株式会社東芝 メモリシステムおよびその制御方法
CN108595345B (zh) * 2012-07-25 2021-11-23 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US20140219021A1 (en) * 2013-02-07 2014-08-07 Seagate Technology Llc Data protection for unexpected power loss
US10282286B2 (en) * 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
JP5550741B1 (ja) * 2012-09-25 2014-07-16 株式会社東芝 ソリッドステートドライブにデータを再配置するストレージ装置、ストレージコントローラ及び方法
KR20140044121A (ko) 2012-10-04 2014-04-14 삼성전자주식회사 멀티 인터페이스를 갖는 멀티포트 반도체 메모리 장치
US9501398B2 (en) * 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US20140189211A1 (en) * 2012-12-31 2014-07-03 Sandisk Enterprise Ip Llc Remapping Blocks in a Storage Device
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US10073851B2 (en) * 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US8990458B2 (en) 2013-02-28 2015-03-24 Kabushiki Kaisha Toshiba Controller, semiconductor storage device and method of controlling data writing
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9612956B2 (en) 2013-03-15 2017-04-04 Seagate Technology Llc Multi-tiered caching for data storage management in a device
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
JP6089844B2 (ja) * 2013-03-22 2017-03-08 富士通株式会社 制御装置,ストレージ装置,及び制御プログラム
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
JP6028670B2 (ja) * 2013-04-22 2016-11-16 株式会社デンソー データ記憶装置
JP2014225196A (ja) * 2013-05-17 2014-12-04 学校法人 中央大学 半導体記憶装置およびその制御方法
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
CN107423231B (zh) 2013-08-05 2020-11-20 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器
CN107741913B (zh) * 2013-08-05 2021-09-07 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9563385B1 (en) 2013-09-16 2017-02-07 Amazon Technologies, Inc. Profile-guided data preloading for virtualized resources
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9852066B2 (en) * 2013-12-20 2017-12-26 Sandisk Technologies Llc Systems and methods of address-aware garbage collection
US9542278B2 (en) 2013-12-26 2017-01-10 Silicon Motion, Inc. Data storage device and flash memory control method
CA2881206A1 (en) 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US20160062691A1 (en) * 2014-03-13 2016-03-03 Mediatek Inc. Method for controlling memory device to achieve more power saving and related apparatus thereof
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US10250673B1 (en) 2014-03-14 2019-04-02 Amazon Technologies, Inc. Storage workload management using redirected messages
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9710173B2 (en) * 2014-05-20 2017-07-18 Micron Technology, Inc. Read cache memory with DRAM class promotion
TWI521541B (zh) 2014-05-22 2016-02-11 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN105224238B (zh) * 2014-05-29 2019-01-15 群联电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
CN105393228B (zh) * 2014-06-25 2019-09-03 华为技术有限公司 读写闪存中数据的方法、装置及用户设备
WO2016002325A1 (ja) * 2014-07-04 2016-01-07 日本電気株式会社 情報処理システム、情報処理方法、記憶制御装置およびその制御方法と制御プログラム
TWI529530B (zh) * 2014-08-25 2016-04-11 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US10049042B2 (en) 2014-09-22 2018-08-14 Hitachi, Ltd. Storage device, semiconductor memory device, and method for controlling same
US9530490B2 (en) * 2014-10-27 2016-12-27 Sandisk Technologies Llc Compaction process for a data storage device
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
CN105701021B (zh) * 2014-12-10 2021-03-02 慧荣科技股份有限公司 数据储存装置及其数据写入方法
KR20160070920A (ko) * 2014-12-10 2016-06-21 에스케이하이닉스 주식회사 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US9690491B2 (en) * 2014-12-17 2017-06-27 Sandisk Technologies Llc System and method for managing data in a memory device
US9632705B2 (en) 2014-12-17 2017-04-25 Sandisk Technologies Llc System and method for adaptive memory layers in a memory device
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
JP5987203B1 (ja) * 2015-01-30 2016-09-07 三菱電機株式会社 A/d変換装置、d/a変換装置、及びplc
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US10715460B2 (en) 2015-03-09 2020-07-14 Amazon Technologies, Inc. Opportunistic resource migration to optimize resource placement
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
JP6860965B2 (ja) * 2015-06-12 2021-04-21 任天堂株式会社 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
KR20170015760A (ko) * 2015-07-31 2017-02-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI585770B (zh) * 2015-08-11 2017-06-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN106469019B (zh) * 2015-08-18 2020-01-07 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器储存装置
KR102406722B1 (ko) 2015-09-25 2022-06-09 삼성전자주식회사 자기 메모리 장치 및 그 제조 방법
US10268411B1 (en) * 2015-11-18 2019-04-23 Veritas Technologies Llc Policy and heuristic based conversion of write-optimized virtual disk format into read-optimized virtual disk format
JP6512091B2 (ja) * 2015-12-22 2019-05-15 株式会社デンソー 情報管理装置、情報管理方法及び情報管理プログラム
US10254967B2 (en) * 2016-01-13 2019-04-09 Sandisk Technologies Llc Data path control for non-volatile memory
US11423053B2 (en) * 2016-01-30 2022-08-23 Micro Focus Llc Log event cluster analytics management
US10216536B2 (en) * 2016-03-11 2019-02-26 Vmware, Inc. Swap file defragmentation in a hypervisor
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
JP2018018271A (ja) * 2016-07-27 2018-02-01 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP2018041204A (ja) * 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
CN106448735B (zh) * 2016-09-13 2019-09-13 天津大学 用于大容量非易失性存储器的数据快速擦除方法
US10528267B2 (en) 2016-11-11 2020-01-07 Sandisk Technologies Llc Command queue for storage operations
US10528255B2 (en) 2016-11-11 2020-01-07 Sandisk Technologies Llc Interface for non-volatile memory
US10528286B2 (en) 2016-11-11 2020-01-07 Sandisk Technologies Llc Interface for non-volatile memory
KR20180058456A (ko) 2016-11-24 2018-06-01 삼성전자주식회사 메모리를 관리하는 방법 및 장치.
US10296224B2 (en) * 2016-12-21 2019-05-21 Intel Corporation Apparatus, system and method for increasing the capacity of a storage device available to store user data
IT201700057287A1 (it) * 2017-05-26 2018-11-26 St Microelectronics Srl Procedimento per gestire schede a circuito integrato, scheda ed apparecchiatura corrispondenti
JP7030463B2 (ja) 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
TWI653538B (zh) * 2017-11-13 2019-03-11 慧榮科技股份有限公司 資料儲存裝置與記憶體裝置之資料處理方法
CN112074816A (zh) 2018-03-16 2020-12-11 美光科技公司 Nand数据放置模式的集群奇偶校验
KR20200122407A (ko) * 2018-03-16 2020-10-27 마이크론 테크놀로지, 인크. Nand 데이터 배치 스키마
US10452296B1 (en) 2018-03-23 2019-10-22 Amazon Technologies, Inc. Accelerated volumes
JP2019185350A (ja) * 2018-04-09 2019-10-24 東芝メモリ株式会社 メモリシステム及びメモリシステムの制御方法
US11023157B2 (en) 2018-04-30 2021-06-01 Amazon Technologies, Inc. Intermediary duplication to facilitate copy requests in distributed storage systems
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US10459655B1 (en) 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
KR102538222B1 (ko) * 2018-06-26 2023-06-01 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법
US10768835B1 (en) 2018-06-27 2020-09-08 Amazon Technologies, Inc. Opportunistic storage service
US11121981B1 (en) 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
JP7089423B2 (ja) * 2018-07-12 2022-06-22 ルネサスエレクトロニクス株式会社 情報処理装置及び制御方法
US10931750B1 (en) 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
US10956442B1 (en) 2018-07-30 2021-03-23 Amazon Technologies, Inc. Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
US11068192B1 (en) 2019-03-26 2021-07-20 Amazon Technologies, Inc. Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
US10983719B1 (en) 2019-03-28 2021-04-20 Amazon Technologies, Inc. Replica pools to support volume replication in distributed storage systems
TWI786288B (zh) * 2019-04-09 2022-12-11 韓商愛思開海力士有限公司 儲存裝置、儲存裝置的控制方法及記錄媒體
US11237732B2 (en) * 2019-08-06 2022-02-01 Intel Corporation Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory
FR3103620B1 (fr) * 2019-11-21 2021-11-26 St Microelectronics Rousset Procédé d’écriture dans une mémoire volatile et circuit intégré correspondant
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
DE102021113450A1 (de) 2020-08-13 2022-02-17 Samsung Electronics Co., Ltd. Seitenpufferschaltungen und diese enthaltende nichtflüchtige Speichervorrichtungen
US11262918B1 (en) * 2020-09-30 2022-03-01 Amazon Technologies, Inc. Data storage system with uneven drive wear reduction
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
TWI775268B (zh) * 2021-01-07 2022-08-21 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US11861222B2 (en) * 2021-05-17 2024-01-02 Micron Technology, Inc. Object management in tiered memory systems
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes
US11853201B2 (en) 2022-05-25 2023-12-26 Micron Technology, Inc. Selective single-level memory cell operation
US20240020037A1 (en) * 2022-07-14 2024-01-18 Micron Technology, Inc. Apparatus with memory block management and methods for operating the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200413916A (en) * 2002-10-28 2004-08-01 Sandisk Corp Method and apparatus for grouping pages within a block
US20070028034A1 (en) * 2005-07-29 2007-02-01 Sony Corporation Computer system

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US377920A (en) * 1888-02-14 Welch
US347575A (en) * 1886-08-17 Car brake
JP3868585B2 (ja) 1996-07-30 2007-01-17 シャープ株式会社 メモリ管理装置及びコンピュータ読み取り可能な記録媒体
CN100557716C (zh) * 1999-04-27 2009-11-04 松下电器产业株式会社 半导体存储卡及其控制方法
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US20080209114A1 (en) * 1999-08-04 2008-08-28 Super Talent Electronics, Inc. Reliability High Endurance Non-Volatile Memory Device with Zone-Based Non-Volatile Memory File System
US8019943B2 (en) * 2000-01-06 2011-09-13 Super Talent Electronics, Inc. High endurance non-volatile memory devices
JP2002278828A (ja) 2001-03-21 2002-09-27 Sony Corp ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
KR100526190B1 (ko) 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법
JP4713867B2 (ja) * 2004-09-22 2011-06-29 株式会社東芝 メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR101257848B1 (ko) * 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
JP4413840B2 (ja) * 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP4660353B2 (ja) * 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
JP4575288B2 (ja) * 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US7711890B2 (en) * 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
JP2008033788A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
JP4575346B2 (ja) 2006-11-30 2010-11-04 株式会社東芝 メモリシステム
US20080235441A1 (en) * 2007-03-20 2008-09-25 Itay Sherman Reducing power dissipation for solid state disks
JP2008197981A (ja) 2007-02-14 2008-08-28 Toshiba Corp 半導体記憶装置
US8370562B2 (en) * 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
JP2008217857A (ja) 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
US7630252B2 (en) * 2007-06-25 2009-12-08 Sandisk Corporation Systems for programming multilevel cell nonvolatile memory
US7719889B2 (en) * 2007-06-25 2010-05-18 Sandisk Corporation Methods of programming multilevel cell nonvolatile memory
US20090043831A1 (en) * 2007-08-11 2009-02-12 Mcm Portfolio Llc Smart Solid State Drive And Method For Handling Critical Files
JP4564520B2 (ja) * 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
KR101077339B1 (ko) 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
JP4745356B2 (ja) * 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
JP4691122B2 (ja) 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
JP2009211233A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
JP5010505B2 (ja) 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP2009211234A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
JP2010015195A (ja) 2008-06-30 2010-01-21 Toshiba Corp 記憶制御装置及び記憶制御方法
JP2010009548A (ja) 2008-06-30 2010-01-14 Toshiba Corp 記憶装置、制御装置、記憶システム、および記憶方法
JP4551958B2 (ja) 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
JP5198245B2 (ja) 2008-12-27 2013-05-15 株式会社東芝 メモリシステム
JP5317689B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
JP2010157130A (ja) 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP5268710B2 (ja) 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
JP5341584B2 (ja) 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
JP5404483B2 (ja) 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
US20150120988A1 (en) * 2013-10-28 2015-04-30 Skymedi Corporation Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200413916A (en) * 2002-10-28 2004-08-01 Sandisk Corp Method and apparatus for grouping pages within a block
US20070028034A1 (en) * 2005-07-29 2007-02-01 Sony Corporation Computer system

Also Published As

Publication number Publication date
WO2009084724A1 (en) 2009-07-09
JP2010250846A (ja) 2010-11-04
US9134924B2 (en) 2015-09-15
US8065471B2 (en) 2011-11-22
US20140258602A1 (en) 2014-09-11
US20120033496A1 (en) 2012-02-09
JP2010250845A (ja) 2010-11-04
US8065470B2 (en) 2011-11-22
US20170269843A1 (en) 2017-09-21
JP2010521718A (ja) 2010-06-24
KR101077339B1 (ko) 2011-10-26
CN101632068B (zh) 2015-01-14
JP5039174B2 (ja) 2012-10-03
JP2010250847A (ja) 2010-11-04
EP2225643A4 (en) 2013-07-03
JP2010267273A (ja) 2010-11-25
US20190220197A1 (en) 2019-07-18
JP4533968B2 (ja) 2010-09-01
EP2225643B1 (en) 2020-05-06
US20120311245A1 (en) 2012-12-06
US20100037011A1 (en) 2010-02-11
JP5039176B2 (ja) 2012-10-03
US8782331B2 (en) 2014-07-15
US20210042034A1 (en) 2021-02-11
EP2225643A1 (en) 2010-09-08
JP5039177B2 (ja) 2012-10-03
KR20090106651A (ko) 2009-10-09
CN101632068A (zh) 2010-01-20
TW200949537A (en) 2009-12-01
US10845992B2 (en) 2020-11-24
US11513682B2 (en) 2022-11-29
US7953920B2 (en) 2011-05-31
US20150347020A1 (en) 2015-12-03
US20100037012A1 (en) 2010-02-11
JP5039175B2 (ja) 2012-10-03
US11960719B2 (en) 2024-04-16
US20100037009A1 (en) 2010-02-11
US7962688B2 (en) 2011-06-14
US10248317B2 (en) 2019-04-02
US20230042619A1 (en) 2023-02-09
US20100037010A1 (en) 2010-02-11
US9703486B2 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
TWI396083B (zh) 半導體儲存裝置
US8677059B2 (en) Memory system
US9015421B2 (en) Memory system
WO2009110302A1 (en) Memory system
EP2271988A1 (en) Memory system

Legal Events

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