TWI605458B - Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods - Google Patents

Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods Download PDF

Info

Publication number
TWI605458B
TWI605458B TW102106590A TW102106590A TWI605458B TW I605458 B TWI605458 B TW I605458B TW 102106590 A TW102106590 A TW 102106590A TW 102106590 A TW102106590 A TW 102106590A TW I605458 B TWI605458 B TW I605458B
Authority
TW
Taiwan
Prior art keywords
write
management
data
block unit
sequential
Prior art date
Application number
TW102106590A
Other languages
English (en)
Other versions
TW201351420A (zh
Inventor
Hiroaki Yamazoe
Daisuke Nakajima
Toshifumi Nishiura
Kan Nagashima
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of TW201351420A publication Critical patent/TW201351420A/zh
Application granted granted Critical
Publication of TWI605458B publication Critical patent/TWI605458B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

非揮發性記憶體裝置、非揮發性記憶體控制裝置及非揮發性記憶體控制方法
本揭示係關於一種可防止因尺寸較小之存取而產生速度降低之非揮發性記憶體裝置、非揮發性記憶體控制裝置及非揮發性記憶體控制方法。
近年來,作為非揮發性記憶體,廣泛使用NAND(Not And,反及)快閃記憶體。於使用NAND快閃記憶體之儲存裝置中,電子資料之寫入速度係依存於寫入尺寸而變動。對上述變動帶來較大影響之要因係稱為垃圾回收(Garbage Collection)之處理(參照專利文獻1及專利文獻2)。該操作係與進行對於NAND快閃記憶體之寫入之主機機器之存取分別進行,因此,伴隨存取速度之瞬間之急遽降低。因此,為了維持性能,必需使垃圾回收之頻率減少。
於普通之快閃記憶體裝置中,將寫入至快閃記憶體之資料分成區塊單位與頁面單位該2種而進行管理。於區塊單位管理中,進行以快閃記憶體之區塊尺寸之整數倍(以下稱為區塊單元)為1個單位之管理,於頁面單位管理中,進行以該記憶體之頁面尺寸之整數倍(以下稱為頁面單元)為1個單位之管理。由於區塊包含複數個頁面,故通常成為(區塊單元>頁面單元)。
垃圾回收係收集由頁面單元管理之區域而升格為區塊單元之管理之操作。因此,若自最初起以成為區塊單元之管理之方式進行寫 入,則可防止垃圾回收之產生。上述情況可藉由以區塊單元之整數倍進行寫入而實現。因此,於需要快速寫入之情形時,先前使用以區塊單元之整數倍為單位進行存取之方法。
先前技術文獻 專利文獻
專利文獻1:日本專利特開2007-193883號公報
專利文獻2:日本專利特開2007-58840號公報
然而,根據近年來之快閃記憶體供應商之動向,區塊尺寸或區塊內之頁面數有逐年增大之傾向。因此,預測到主機機器之緩衝區尺寸(1次中可能之最大存取尺寸)於不久之將來會低於區塊單元之尺寸。關於該緩衝區尺寸,於現有機型中難以對其進行變更,於今後之機型中亦為了使其增大而需要相應之成本,因此,需要抑制由尺寸較小之寫入引起之速度降低之技術。
該課題並非NAND快閃記憶體特有之課題,而為主機機器之緩衝區尺寸有可能低於非揮發性記憶體裝置之管理單位之所有非揮發性記憶體所共通之課題。
因此,本揭示之目的在於提供一種可防止因尺寸較小之存取而產生垃圾回收,結果產生速度降低之非揮發性記憶體裝置、非揮發性記憶體控制裝置及非揮發性記憶體控制方法。
為了解決上述課題,本揭示係一種非揮發性記憶體裝置,其包含非揮發性記憶體部、控制部及介面,控制部:接收寫入要求,於寫入尺寸為較抹除之管理單位小之尺寸之接 收資料之情形時,判定是否為循序管理之寫入對象,於循序管理之寫入對象之情形時,進行循序寫入尺寸較抹除之管理單位更小之接收資料之第1寫入處理,於未成為循序管理之寫入對象之情形時,進行以寫入之管理單位寫入尺寸較抹除之管理單位更小之接收資料之第2寫入處理。
本揭示係一種非揮發性記憶體控制裝置及控制方法,其接收寫入要求,於寫入尺寸為較抹除之管理單位小之尺寸之接收資料之情形時,判定是否為循序管理之寫入對象,於循序管理之寫入對象之情形時,進行循序寫入尺寸較抹除之管理單位更小之接收資料之第1寫入處理,於未成為循序管理之寫入對象之情形時,進行以寫入之管理單位寫入尺寸較抹除之管理單位更小之接收資料之第2寫入處理。
本揭示係一種非揮發性記憶體控制裝置及控制方法,其規定主機側之命令,該命令進行如下指示:利用循序管理對非揮發性記憶體裝置之特定區域寫入尺寸較抹除之管理單位小之資料。
本揭示係循序將判定為循序寫入對象之尺寸較抹除之管理單位小之資料寫入於特定區域中,因此,可使垃圾回收之頻率變小而防止速度降低。
1‧‧‧快閃記憶體裝置
2‧‧‧快閃記憶體部
3‧‧‧記憶體控制部
4‧‧‧外部介面
11‧‧‧主機機器
圖1係可應用本揭示之快閃記憶體裝置之一例之方塊圖。
圖2係用以說明快閃記憶體之記憶區域之縮略圖。
圖3係用以說明經並聯化之快閃記憶體之記憶區域(P區塊單元)之縮略圖。
圖4係用以說明經並聯化之快閃記憶體之記憶區域(P頁面單元)之縮略圖。
圖5係用以說明快閃記憶體之實體位址空間之縮略圖。
圖6係用以說明邏輯位址空間之縮略圖。
圖7係用以說明經P區塊單元管理之資料之資料構造之縮略圖。
圖8係用以說明經循序管理之資料之資料構造之縮略圖。
圖9係用以說明經P頁面單元管理之資料之資料構造之縮略圖。
圖10係用以說明保持管理資料之P區塊單元之資料構造之縮略圖。
圖11係用以說明P區塊單元管理中使用之管理資料之資料構造之縮略圖。
圖12係用以說明循序管理中使用之管理資料之資料構造之縮略圖。
圖13係用以說明P頁面單元管理中使用之第1管理資料之資料構造之縮略圖。
圖14係用以說明P頁面單元管理中使用之第2管理資料之資料構造之縮略圖。
圖15係表示寫入處理之整體之流程之流程圖。
圖16係用以說明P區塊單元內寫入之流程圖。
圖17係用以對藉由快閃記憶體而完成之循序寫入之對象之判定方法進行說明之流程圖。
圖18係循序管理登錄命令用表之一例之縮略圖。
圖19係循序管理登錄命令之處理之流程圖。
圖20係使主機明示寫入之循序性之方法、即主機機器不對循序管理登錄命令用表進行管理之情形時之方法之處理之流程圖。
圖21係判定寫入命令是否與過去之循序管理登錄命令匹配之處理之流程圖。
圖22係於主機機器對循序管理登錄命令用表進行管理之情形時 之方法中循序管理登錄命令之處理之流程圖。
圖23係於主機機器對循序管理登錄命令用表進行管理之情形時之方法中循序管理登錄刪除命令之處理之流程圖。
圖24係P區塊單元管理寫入之處理之流程圖。
圖25係循序管理寫入之處理之流程圖。
圖26係P頁面單元管理寫入之處理之流程圖。
圖27係表示用以將各判定方法進行比較之表之縮略圖。
圖28係表示用以將先前之方法與本揭示之判定方法進行比較之表之縮略圖。
圖29係用以對寫入方法之例1進行說明之縮略圖。
圖30係用以對寫入方法之例2進行說明之縮略圖。
圖31係用以對寫入方法之例3進行說明之縮略圖。
圖32係用以對寫入方法之例4進行說明之縮略圖。
圖33係用以說明讀出時之L區塊單元之處理之縮略圖。
圖34係用以說明讀出時之L區塊單元之處理之縮略圖。
圖35係用以說明讀出時之L區塊單元之處理之縮略圖。
圖36係用以說明讀出時之L區塊單元之處理之縮略圖。
圖37係用以說明讀出時之L區塊單元之處理之縮略圖。
圖38係用以說明中途結束循序寫入之情形時之L區塊單元之處理之縮略圖。
圖39係用以說明中途結束循序寫入之情形時之L區塊單元之處理之縮略圖。
圖40係用以說明中途結束循序寫入之情形時之L區塊單元之處理之縮略圖。
圖41係用以說明中途結束循序寫入之情形時之L區塊單元之處理之縮略圖。
圖42係用以說明循序管理登錄命令用表之構成方法之縮略圖。
以下說明之實施形態係本揭示之較佳之具體例,附加有技術上較佳之各種限定。然而,於以下之說明中,只要不存在特別限定本揭示之主旨之記載,則本揭示之範圍不限定於該等實施形態。
以下之說明係按照下述循序而完成。
<1.本揭示之一實施形態> <2.關於其他應用> <3.變化例> <1.本揭示之一實施形態> 「概略」
以下,參照圖式對本揭示之一實施形態進行說明。如圖1所示,於本揭示之一實施形態中,快閃記憶體裝置1包含快閃記憶體部2、記憶體控制部3及外部介面4。於快閃記憶體部2中準備有循序管理寫入專用之特定區域。記憶體控制部3包含於外部介面4自主機機器11收到較快閃記憶體部2之區塊尺寸小之複數次循序管理寫入要求之情形時循序對特定區域寫入接收資料的機構。
於普通之快閃記憶體裝置中,作為抹除之管理單位,使用基於區塊之管理單位(以下稱為區塊單元),作為寫入管理單位,使用基於頁面之管理單位(以下稱為頁面單元)。未達區塊單元之尺寸之寫入係針對每一頁面單元而進行管理。通常,該等管理係每當寫入存取時獨立地進行。因此,即便自主機機器發出複數次邏輯上連續之未達區塊單元之寫入要求,該等資料亦未必連續地寫入於同一區塊單元中。即,於普通之快閃記憶體裝置中,邏輯上之循序存取未必成為實體上之循序存取。因此,於彙集由頁面單元管理之該等資料而利用區塊單元進行管理之情形時,必需進行複製經片段化之資料而收集於同一區 塊單元之操作。將該操作稱為垃圾回收。垃圾回收之操作係獨立於主機機器之要求而進行,因此,自主機機器觀測到存取速度之瞬間之降低。
然而,若預先知曉遍及複數次命令循序寫入未達區塊單元尺寸之資料,則藉由將其等寫入循序管理寫入至同一區塊單元中,可避免使之後寫入之資料升格為區塊單元管理時之垃圾回收。於本揭示中,著眼於該情況,而於快閃記憶體裝置1之記憶體控制部3中構成判斷來自主機機器11之寫入要求之循序性而選擇實體上之寫入目標之機構。
「資料構造」 ‧實體位址空間與邏輯位址空間
首先,對利用本揭示之快閃記憶體裝置1而構成之快閃記憶體上之位址空間(實體位址空間)、及通過外部介面4之與主機機器11之資料之交換中使用之虛擬之位址空間(邏輯位址空間)進行說明。
如圖2所示,快閃記憶體之記憶區域包含複數個實體區塊,1個實體區塊包含複數個實體頁面。實體區塊係抹除之最小單位,實體頁面係寫入之最小單位。考慮該實體構成,對於快閃記憶體之定址,使用對實體區塊標註序號所得之實體區塊位址、及對各實體區塊內之實體頁面標註序號所得之實體頁面位址。
為了快速化而使複數個快閃記憶體並聯化。設想如上所述之並聯動作,而於本揭示中,如圖3所示,將自各快閃記憶體中分別選擇1個實體區塊進行彙集所得者設為實體區塊單元(適當稱為P區塊單元),並將對其標註編號所得者設為實體區塊單元位址。同樣地,如圖4所示,將自各快閃記憶體中分別收集1個同一P區塊單元內之實體頁面所得者設為實體頁面單元(適當稱為P頁面單元),並將對其標註編號所得者設為實體頁面單元位址。
快閃記憶體中存在個體差異,有特定區塊之讀寫抹除不發揮功 能之情形(不良區塊)。為了避免對如上所述之區塊進行操作,P區塊單元設為僅收集並非不良之實體區塊而構成者。因此,包含於同一P區塊單元中之實體區塊群之實體區塊位址亦可互不相同。再者,於並聯數為1之情形時,P區塊單元與實體區塊之各自之尺寸一致,P頁面單元與實體頁面之各自之尺寸一致。
將使用上述要素構成實體位址空間所得者示於圖5。該空間包含複數個(b個)P區塊單元,某P區塊單元包含複數個(p個)P頁面單元。為了與邏輯位址空間之最小尺寸獲取對應,而將P頁面單元分割成複數個(s個)實體區段(適當稱為P區段)。為了使用該等位址而特定快閃記憶體上之實體性之位置,指定P區塊單元位址、P頁面單元位址、P區段位址即可。
如圖6所示,以容易與上述實體位址空間獲取匹配之方式構成邏輯位址空間。該空間包含複數個(b個)邏輯區塊單元(適當稱為L區塊單元),某L區塊單元包含複數個(p個)邏輯頁面單元(適當稱為L頁面單元)。將以定址之最小尺寸對L頁面單元進行分割所得者設為邏輯區段(適當稱為L區段),對該L區段進行定址。如圖6所示,當指定某邏輯位址時,相對應之L區段、L頁面單元、L區塊單元之組唯一性地規定。
.保持用戶資料之P區塊單元之資料構造
對用以於實體空間上保持邏輯空間上之資料之資料構造進行說明。於本揭示中,作為該資料構造,準備P區塊單元管理、循序管理、P頁面單元管理之3種構造。
(1)經P區塊單元管理之資料之資料構造
圖7表示保持經P區塊單元管理之資料之實體區塊單元。於特定之L區塊單元自偏移0填充資料至最後且上述L區塊單元之資料全部保持於同一P區塊單元中之情形時,可進行該管理。如圖7所示,包含於 該P區塊單元中之各實體頁面具有元資料、對於元資料之ECC(Error Correcting Code,錯誤校正碼)資訊、用戶資料、對於用戶資料之ECC資訊。元資料具有表示為P區塊單元管理之區塊類型、表示本世代之修訂、與自身對應之L區塊單元位址及L頁面單元位址。根據上述P區塊單元管理之性質,L區塊單元位址係遍及P區塊單元內之所有實體頁面而相同,L頁面單元位址與自身所屬之P頁面單元位址相同。
(2)經循序管理之資料之資料構造
圖8表示保持經循序管理之資料之實體區塊單元。於特定之L區塊單元自偏移0填充資料至中途且上述資料全部於同一P區塊單元中自偏移0循序保持、進而除此以外之資料不存在於相同之P區塊單元中之情形時,可進行該管理。如圖8所示,包含於該P區塊單元中之寫入結束之各實體頁面具有元資料、對於元資料之ECC資訊、用戶資料、對於用戶資料之ECC資訊。元資料具有表示為循序管理之區塊類型、表示本世代之修訂、與自身對應之L區塊單元位址及L頁面單元位址。根據上述循序管理之性質,L區塊單元位址係遍及P區塊單元內之所有寫入結束之實體頁面而相同,L頁面單元位址與自身所屬之P頁面單元位址相同。又,未寫入之實體頁面係由1填充。
(3)經P頁面單元管理之資料之資料構造
圖9表示保持經P頁面單元管理之資料之實體區塊單元。於無法進行P區塊單元管理、循序管理中之任一個之情形時,進行該管理。如圖9所示,包含於該P區塊單元中之寫入結束之各實體頁面具有元資料、對於元資料之ECC資訊、用戶資料、對於用戶資料之ECC資訊。元資料具有表示為P頁面單元管理之區塊類型、表示本世代之修訂、與自身對應之L區塊單元位址及L頁面單元位址。又,未寫入之實體頁面係由1填充。
.保持管理資料之P區塊單元之資料構造
對用以於實體空間上保持用於管理上述用戶資料之資料(管理資料)之資料構造進行說明。首先,圖10表示保持管理資料之P區塊單元。如圖10所示,包含於該P區塊單元中之各實體頁面具有元資料、對於元資料之ECC資訊、管理資料、對於管理資料之ECC資訊。元資料包含表示為管理資料之區塊類型、表示本世代之修訂。以下,分別表示用以管理上述3種用戶資料之管理資料部之構成方法。
(1)P區塊單元管理中使用之管理資料之資料構造
圖11表示用於P區塊單元管理之管理資料。管理資料包含0至1b-1之L區塊單元位址及與各個位址對應之P區塊單元位址之組。於某L區塊單元未進行P區塊單元管理之情形時,於與該L區塊單元對應之P區塊單元中存儲0xFFFF(0x表示為16進制記法)。
(2)循序管理中使用之管理資料之資料構造
圖12表示用於循序管理之管理資料。管理資料包含最大e個L區塊單元位址、與各個位址對應之P區塊單元位址、及對於上述位址之循序寫入結束之最終P頁面單元位址之組。於未藉由垃圾回收等進行循序管理之輸入值之各位址中存儲0xFFFF。
(3)P頁面單元管理中使用之管理資料之資料構造
圖13及圖14表示用於P頁面單元管理之管理資料。管理資料分成2種。第1管理資料包含最大d個L區塊單元位址、及與各個位址對應之P區塊單元位址行之組(注意於P頁面單元管理中保持單一之L區塊單元位址之資料之P區塊單元有可能存在複數個)。於未藉由垃圾回收等進行P頁面單元管理之輸入值之各位址中存儲0xFFFF。第2管理資料包含屬於同一L區塊單元之各L頁面單元位址、與各個位址對應之P區塊單元位址、及P頁面單元位址之組(該管理資料係相對於由第1管理資料管理之各個L區塊單元而製作1個)。於不存在資料之輸入值之各位址中存儲0xFFFF。
.各資料構造中之區塊單元數之限制與垃圾回收
對於上述(2)及(3)中將可管理之最大區塊單元位址數分別限制為e、d個之原因進行敘述。於經P區塊單元管理之資料中,L區塊單元與P區塊單元一對一對應且內容由資料填充,因此,邏輯空間上之寫入量與實體空間之消耗量大致一致(由於需要管理資料,故不完全一致)。
然而,於循序管理或P頁面單元管理中,即便邏輯空間上之寫入量未達到P區塊單元尺寸,亦確保1個P區塊單元。即,實體空間上之消耗量大於邏輯空間上之寫入量。其比最大為(L區塊單元尺寸/L區段尺寸)左右。
因此,為了保證無論主機機器採用怎樣之邏輯空間之使用方式而所有資料均可保持於快閃記憶體內,必需根據保證之區域尺寸而限制可進行循序管理或P頁面單元管理之P區塊單元數。此為上述(2)及(3)中受到之限制之由來。
於存在管理資料之輸入值直至該限制之最大限度時,進一步進行未達P區塊單元尺寸之寫入之情形時,必需進行將已存在之輸入值升格為P區塊單元管理之操作。將該操作稱為垃圾回收。本揭示之目的在於對僅由P區塊單元管理與P頁面單元管理構成之普通之快閃記憶體控制器添加循序管理,削減垃圾回收之頻率。關於其具體之內容,於以下之演算法中進行說明。
「演算法」
對使用至此說明之資料構造進行寫入之演算法進行敘述。參照圖15之流程圖對寫入處理之整體之處理之流程進行說明。
步驟ST1:快閃記憶體裝置1自主機機器11接收寫入命令。
步驟ST2:根據寫入目標之邏輯位址,使用管理資料,獲得寫入目標之P區塊單元群。
步驟ST3:判斷使用循序管理登錄命令之控制方法(下述判定方法2及3)之情形時獲得之P區塊單元群是否與過去之循序管理登錄命令匹配。
步驟ST4:於區塊單元群與過去之循序管理登錄命令不匹配之情形時,不受理寫入命令而結束。
步驟ST5:於P區塊單元群與過去之循序管理登錄命令匹配之情形或未使用循序管理登錄命令之控制方法(下述判定方法1)之情形時,自所獲取之P區塊單元群中取出一個未寫入之P區塊單元。
步驟ST6:進行P區塊單元內之寫入處理。
步驟ST7:判定是否寫完所有資料。於判定為未寫完之情形時,處理返回至步驟ST5,完成P區塊單元內寫入處理。
步驟ST8:於在步驟ST7中判定寫完所有資料時,處理結束。
再者,於下文對循序管理登錄命令與匹配性判定進行敘述。
圖16之流程圖表示P區塊單元內寫入之內容。P區塊單元內寫入分成P區塊單元管理寫入、循序寫入、P頁面單元管理寫入之三種。
步驟ST11:判定寫入尺寸是否與P區塊單元尺寸一致。於一致之情形時,進行P區塊單元管理寫入之處理。
步驟ST12:於在步驟ST11中判定為不一致之情形時,判定是否為成為循序管理之對象之寫入。於下文對該判定方法進行敘述。於判定為成為對象之情形時,進行循序管理寫入。於除此以外之情形時,進行P頁面單元管理寫入。
於本揭示之一實施形態中,提出3種循序寫入之對象判定方法。該等具有各自所特有之優點與缺點,理想的是根據控制之目的而區別使用。
.判定方法1
為快閃記憶體裝置1自動地進行判斷之方法。圖17係表示該方法 之流程之流程圖。
步驟ST13:首先,根據管理表判定該寫入之對象P區塊單元是否已進行循序管理。
步驟ST14:於在步驟ST13中判定為已進行管理之情形時,進行是否可緊接著循序新增資料之判定。該判定方法根據安裝而有任意性,例如考慮自最終寫入結束之實體頁面之下一實體頁面起開始寫入之情形時可進行新增之判定。
步驟ST15:於表示步驟ST14中之判定結果可能之情形時,判斷為循序管理寫入對象,而送回肯定。
步驟ST16:於在步驟ST14中判定為無法進行新增之情形時,進行循序管理之結束處理。所謂結束處理,係指將該寫入之對象P區塊單元降格為P頁面單元管理之處理。即,自循序管理表中將該P區塊單元之輸入值抹除,於P頁面單元管理表中重新製成該P區塊單元之輸入值。再者,此處,於P頁面單元管理表中不存在空缺之情形時,使用垃圾回收而將P頁面單元管理區塊升格為P區塊單元管理,製作空缺。於下文對垃圾回收之方法進行敘述。
步驟ST18:於判斷為並非循序管理寫入對象之情形時,送回否定。
步驟ST17:於該寫入之對象P區塊單元尚未進行循序管理之情形時,判定是否進行可循序管理之新寫入。該判定方法亦根據安裝而有任意性,例如考慮可對P區塊單元尺寸之1/4以上之新寫入進行循序管理之判定。
假如可能之情形時,判斷為循序管理寫入對象,處理移行至步驟ST15,送回肯定。於並非上述情況之情形時,判斷為並非循序管理寫入對象,處理移行至步驟ST18,送回否定。
.判定方法2
為使主機明示寫入之循序性之方法。該方法係根據主機機器是否對循序管理表進行管理而分成2種。將主機機器不進行管理者設為方法2,將主機機器進行管理者設為方法3。首先對方法2進行敘述。
於方法2中,在進行循序寫入之前根據循序管理登錄命令將L區塊單元登錄於循序管理登錄命令用表中。圖18表示該管理表。該表係以與資料構造之管理表之段落中敘述者相同之構造(參照圖10)而保持。該管理表針對L區塊單元0至1b-1之各者,表示其是否已根據循序管理登錄命令而登錄。作為各自對應之輸入值,於已根據循序管理登錄命令登錄之情形時存儲1,於未登錄之情形時存儲0。
圖19表示循序管理登錄命令之處理流程圖。
步驟ST21:快閃記憶體裝置1自主機機器11接收登錄命令。
步驟ST22:登錄命令採用L區塊單元作為參數,判定上述L區塊單元是否未登錄。
步驟ST23:若L區塊單元未登錄,則將其登錄於循序管理登錄命令用表中。於步驟ST24結束處理。
步驟ST25:若L區塊單元已經登錄,則不受理命令而結束。
圖20係表示方法2之判定處理之流程圖。
步驟ST26:掃描循序管理登錄命令用表,判定是否已登錄。
步驟ST27:於已登錄之情形時,判斷為循序管理寫入對象,送回為循序管理寫入之對象之判定結果。
步驟ST28:於未登錄之情形時,判斷為並非循序管理寫入對象,送回否定之結果。
於使用循序管理登錄命令之情形時,如對圖15中之步驟ST3所說明般,必需針對每一寫入命令判定上述寫入是否與過去之循序管理登錄命令匹配。圖21表示判定之流程圖。
步驟ST31:自成為寫入對象之P區塊單元群中取出一個登錄於循 序管理登錄命令用表之L區塊單元所對應之P區塊單元。
步驟ST32:判定是否為已進行循序管理之P區塊單元。
步驟ST33:於步驟ST32之判定結果為否定之情形時,判定是否進行可循序管理之新寫入。
步驟ST34:判定是否已調查完所有登錄結束之P區塊單元。
步驟ST35:於判定為調查完之情形時,判定存在匹配性,而送回肯定。
步驟ST36:於在步驟ST32中判定為已進行循序管理之P區塊單元時,判定是否可於循序管理之狀態下進行新增。當判定為可進行新增時,處理移至步驟ST34。
步驟ST37:於在步驟ST33中判定為並非可進行循序管理之新寫入時,判定不存在匹配性,而送回否定。同樣地,於在步驟ST36中判定為無法於循序管理之狀態下進行新增時,判定不存在匹配性,而送回否定。
如此般,自成為寫入對象之P區塊單元群中逐個取出登錄於循序管理登錄命令用表之L區塊單元所對應之P區塊單元,判定其是否可接著進行循序管理。於所有調查對象可接著進行循序管理之情形時判斷存在匹配性,於並非上述情況之情形時判斷不存在匹配性。
.判定方法3
為使主機明示寫入之循序性之方法中主機機器對循序管理表進行管理者。判定方法2與判定方法3之差異在於可登錄於循序管理登錄命令用表之輸入值數限制為圖12之e個之方面。若於輸入值已有e個之時間點進一步發出循序管理登錄命令,則不受理命令。圖22表示判定方法3中之循序管理登錄命令之處理流程圖。
步驟ST41:接收登錄命令。
步驟ST42:判定是否為未登錄之L區塊單元。
步驟ST43:於並非未登錄之L區塊單元之情形時,不受理命令。
步驟ST44:於為未登錄之L區塊單元之情形時,調查循序管理表中是否存在空缺。於判定不存在空缺時,不受理命令(步驟ST43)。
步驟ST45:於在步驟ST44中判定循序管理表中存在空缺時,將L區塊單元登錄於循序管理登錄命令用表中。
步驟ST46:對於登錄命令之處理結束。
於使用該方法之情形時,進一步設置循序管理登錄刪除命令。圖23係表示關於刪除命令之處理之流程之流程圖。
步驟ST51:接收刪除命令。
步驟ST52:判定是否為登錄結束之L區塊單元。
步驟ST53:於並非登錄結束之L區塊單元之情形時,不受理命令。
步驟ST54:調查資料是否填充至最終實體頁面(寫入結束)。
步驟ST55:於判定資料未填充至最終實體頁面時,完成對於P區塊單元管理之升格處理。即,必需進行用於升格之垃圾回收。
步驟ST56:於在步驟ST54中判定資料填充至最終實體頁面時或於步驟ST55之處理之後,自循序管理登錄命令用表中刪除L區塊單元。
步驟ST57:對於登錄刪除命令之處理結束。
.P區塊單元管理寫入
藉由使用上述判定方法1至3之方法,可判定對象之寫入為P區塊單元管理寫入、循序寫入、P頁面單元管理寫入中之哪一個。以下,對該等三種寫入之方法進行敘述。首先對P區塊單元管理寫入之方法進行敘述。圖24係P區塊單元管理寫入之方法之處理之流程圖。
步驟ST60:於P區塊單元管理寫入中,重新獲取未寫入之P區塊單元。
步驟ST61:對已獲取之P區塊單元進行資料之寫入。
步驟ST62:當寫入結束時,將寫入對象P區塊單元登錄於P區塊單元管理表中而結束。
.循序管理寫入
圖25係表示循序管理寫入之處理之流程之流程圖。
步驟ST70:判定是否為已進行循序管理之P區塊單元。即,判斷寫入為新寫入抑或是新增寫入。
步驟ST71:假如為新寫入之情形時,掃描循序管理表而尋找空缺。
步驟ST72:於不存在空缺之情形時,使用垃圾回收而將循序管理區塊升格為P區塊單元管理,製作空缺。再者,於使用方法3之情形時,不存在空缺之寫入係於命令之階段中被排斥,因此,於該階段中必定存在空缺。
步驟ST73:於利用以上操作而獲取之空缺輸入值中重新登錄P區塊單元。
步驟ST74:重新寫入資料。
步驟ST75:當結束寫入時,更新循序管理表而結束。
步驟ST76:於在步驟ST70中判定為新增寫入之情形時,循序新增資料。更新循序管理表。
步驟ST77:判定資料是否填充至最終實體頁面。
步驟ST78:於判定資料填充至最終實體頁面之情形時,進行對於P區塊單元管理之升格處理而結束。即,刪除循序管理表之相應輸入值,將寫入結束之P區塊單元登錄於P區塊單元管理表中。
於在步驟ST77中判定資料未填充至最終實體頁面之情形時,處理移至步驟ST75,更新循序管理表而結束。
.P頁面單元管理寫入
圖26係表示P頁面單元管理寫入之處理之流程之流程圖。
步驟ST80:於該寫入中,首先,判定寫入目標是否已進行P頁面單元管理。
步驟ST81:假如未進行P頁面單元管理之情形時,掃描P頁面單元管理表而尋找空缺。
步驟ST82:於不存在空缺之情形時,使用垃圾回收而將P頁面單元管理區塊升格為P區塊單元管理,製作空缺。
步驟ST83:於空缺輸入值中重新登錄P區塊單元。
步驟ST84:重新寫入資料。
步驟ST85:當寫入結束時,更新P頁面單元管理表而結束。
步驟ST86:於為已進行管理之寫入之情形時,進一步寫入資料,更新P頁面單元管理表而結束。
.垃圾回收
對垃圾回收進行說明。所謂垃圾回收,係指將進行循序管理及P頁面單元管理之資料升格為P區塊單元管理而於其等管理表中製作空缺之操作。必需進行該操作之原因已於資料構造之項中說明。
首先,對將P頁面單元管理升格為P區塊單元管理之垃圾回收進行說明。首先,自P頁面單元管理表中選擇升格之L區塊單元,掃描各管理表而獲取保持對象之L區塊單元之資料之P區塊單元群。自該等P區塊單元群中,對新P區塊單元複製與升格對象之L區塊單元對應之資料,更新各管理表。
接下來,對將循序管理升格為P區塊單元管理之垃圾回收進行說明。首先,自循序管理表中選擇升格之L區塊單元,獲得與其對應之P區塊單元及寫入結束之最終P頁面單元。然後,掃描各管理表而獲取於寫入結束之最終P頁面單元之後之未寫入區域保持資料之P區塊單元群。自藉由以上操作而獲得之P區塊單元群中,對新P區塊單元複製與 升格對象之L區塊單元對應之資料,更新各管理表。
再者,根據該方法之構成可容易推測到如下情況:於升格對象之L區塊單元由資料填充之情形(寫入結束之最終P頁面單元與該P區塊單元之最終P頁面單元一致之情形)時,成為複製對象之P區塊單元僅有一個且規定為已進行循序管理之該P區塊單元。即,不存在保持升格對象之L區塊單元之資料之其他P區塊單元,因此,無需進行垃圾回收。本揭示之目的在於根據該性質削減垃圾回收而抑制性能降低。
.方法1~3之比較
對上述判定方法1~3之差異進行敘述。圖27係比較之表。所謂先前手法,係指不進行本揭示中之循序管理之情形。首先,判斷寫入是否有序之主體係於方法1中為快閃記憶體裝置,相對於此,於方法2及方法3中為主機機器。
於方法2中,主機機器僅進行循序管理表之登錄,其控制係由快閃記憶體裝置進行。相對於此,於方法3中,主機機器亦進行循序管理表之刪除(登錄數之控制)。即,於方法1及方法2中,可控制循序管理表之主體僅為快閃記憶體裝置,相對於此,於方法3中,主機機器亦可控制循序管理表。
藉由使用該等3種方法中之任一種,可防止對於循序寫入之垃圾回收。然而,於循序寫入於中途破滅之情形或循序管理表中不存在空缺之情形時,不限於此。於方法1中,於任一情形時均進行垃圾回收。於方法2中,由於在命令之階段中不受理循序性受到破壞般之寫入,故亦可防止此情形時之垃圾回收。然而,於循序管理表中不存在空缺之情形時進行垃圾回收。於方法3中,因於循序管理表中不存在空缺之情形時於命令之階段中亦不受理,故亦可防止此情形時之垃圾回收。
「一實施形態之效果」
藉由使用本揭示,對於未達P區塊單元之寫入,只要其為有序之存取,則亦可避免因垃圾回收而引起之速度降低。因此,於主機機器一點一點地連續地寫入資料般之情形時,亦可不變更存取模式而提供性能穩定之存取。又,於緩衝區尺寸受到限制之主機機器中,從一開始便無法以P區塊單元為單位進行存取。關於如上所述之主機機器,無法避免先前連續寫入時之垃圾回收。然而,藉由使用本揭示,對於如此之主機機器,亦可提供性能穩定之存取。
進而,根據本揭示,即便為局部有序之存取,藉由對循序部分使用本手法,仍然可抑制該部分之垃圾回收。因此,對於資料與元資料以數次為單位交替地寫入般之檔案系統所固有之存取,本手法亦有效。以FAT(File Allocation Table,檔案配置表)為代表之多數之檔案系統係通常以如上所述之存取模式進行寫入,因此,藉由使用本揭示而可期待性能之改善。
本揭示未將進行循序管理之P區塊單元之個數限定為1個。因此,亦可應用於交替地循序寫入複數之資料般之態樣。若應用該情況,則認為亦可進行除資料以外亦循序寫入元資料般之控制而防止元資料寫入時之性能降低。
若使用本揭示之方法3,則主機機器可局部控制快閃記憶體裝置之垃圾回收。若應用該情況,則藉由對期望確實不產生速度降低之重要之寫入進行循序指定,亦可進行選擇性地避免垃圾回收般之控制。
為了使本揭示與先前手法之差異更明確,以下對出現該差異般之寫入之例進行說明。例如針對4種寫入方法而對先前手法與本揭示之手法如何進行動作進行說明。將以下說明之動作例之一覽表示於圖28。
「各寫入方法之說明」
以下,對寫入方法之例1~例4進行說明。再者,為了簡單,假 設以下之例1~例4之寫入全部為對於過去未進行管理之新P區塊單元之寫入。又,假設循序管理表、P頁面單元管理表為可同時保持4個以上之輸入值者(相當於假設d≧4、e≧4)。
.寫入方法之例1
圖29表示寫入方法之例1。於例1中,於循序管理表(參照圖12)、P頁面單元管理表(參照圖13)均空出之狀態下,對某L區塊單元按照(1)、(2)、(3)、(4)之循序進行4次(L區塊單元/4)之尺寸之寫入。
.寫入方法之例2
圖30表示寫入方法之例2。於例2中,於循序管理表(參照圖12)空出且P頁面單元管理表(參照圖13)填滿(不存在空缺)之狀態下,對某L區塊單元按照(1)、(2)、(3)、(4)之循序進行4次(L區塊單元/4)之尺寸之寫入。
.寫入方法之例3
圖31表示寫入方法之例3。於例3中,於循序管理表(參照圖12)空出且P頁面單元管理表(參照圖13)填滿(不存在空缺)之狀態下,對某L區塊單元按照(1)、(2)之循序進行2次(L區塊單元/4)之尺寸之寫入。與寫入方法之例1及例2不同,(1)、(2)並非有序之寫入。
.寫入方法之例4
圖32表示寫入方法之例4。於例4中,於循序管理表(參照圖12)及P頁面單元管理表(參照圖13)均填滿(不存在空缺)之狀態下,對某L區塊單元按照(1)、(2)、(3)、(4)之循序進行4次(L區塊單元/4)之尺寸之寫入。
.動作之說明
就對上述各寫入方法應用先前手法及本手法之情形時之動作進行說明。
.寫入方法1之情形 〔先前手法〕
1.當發出寫入(1)之命令時,進入圖15所示之流程圖之處理。於先前手法中,由於不進行循序管理,故最初之分支之步驟ST3(與過去之循序命令存在匹配性?)之結果成為肯定。繼而,經過圖15之各動作而處理移至P區塊內寫入處理。
2.圖16為P區塊寫入處理。由於寫入(1)未達P區塊單元尺寸,故最初之分支之步驟ST11(寫入尺寸與P區塊單元尺寸一致)為否定。進而,於先前手法中,由於不進行循序管理,故下一分支之步驟ST12(是否為成為循序管理之對象之寫入)之結果為否定。因此,移至3之P頁面單元管理寫入處理。
3.圖26為P頁面單元管理寫入。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為否定。由於P頁面單元管理表空出,故步驟ST81(P頁面單元管理表是否空出)之結果為肯定,不進行垃圾回收而將寫入(1)之內容登錄於P頁面單元管理表(步驟ST83),經過之後之各動作而結束寫入(1)。
4.當發出寫入(2)之命令時,再次進入圖15之流程圖之處理。之後,經過與上述1及2相同之動作而移至圖26之P頁面單元管理寫入。是否對與寫入(1)相同之P區塊單元進行寫入(2)係依存於先前手法之安裝方法。假如進行之情形時,最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為肯定。於此情形時,對與寫入(1)相同之P區塊單元利用追加而進行寫入,經過之後之各動作而結束寫入(1)。
假如不對與寫入(1)相同之P區塊單元進行寫入(2)之情形時,最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為否定。由於已假設(d≧4),故步驟ST81(P頁面單元管理表是否空出) 之結果為肯定,不進行垃圾回收而將寫入(2)之內容登錄於P頁面單元管理表(步驟ST83),經過之後之各動作而結束寫入(2)。
5.當發出寫入(3)之命令時,再次進入圖15之流程圖之處理。之後,經過與上述4相同之動作而結束寫入(3)。
6.當發出寫入(4)之命令時,再次進入圖15之流程圖之處理。之後,經過與上述4相同之動作而結束寫入(4)。
根據上述情況,於先前手法中,根據控制方法消耗1~4個P頁面單元管理表而結束寫入。
〔手法1〕
1.當發出寫入(1)之命令時,進入圖15之流程圖之處理。於手法1中,由於不進行使用循序命令之循序管理,故最初之分支之步驟ST3(與過去之循序命令存在匹配性?)之結果變為肯定,經過圖15之各動作而處理移至P區塊內寫入處理(步驟ST6)。
2.圖16為P區塊寫入處理。由於寫入(1)未達P區塊單元尺寸,故最初之分支之步驟ST11(寫入尺寸與P區塊單元尺寸一致)之結果為否定。為了獲得下一分支之步驟ST12(是否為成為循序管理之對象之寫入)之判定結果,而進入圖17之流程圖之處理。
3.由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST13(是否為已進行循序管理之P區塊單元)之結果為否定。下一分支之步驟ST17(是否進行可循序管理之寫入)之判定方法根據安裝而有任意性,決定使用例示之判定方法(以P區塊單元尺寸之1/4以上之新寫入為循序管理對象)。因此,該分支之步驟ST17之判定結果為肯定。因此,最終獲得肯定而處理返回至圖16。藉此,圖16之步驟ST12(是否為成為循序管理之對象之寫入)之結果成為肯定,移行至循序管理寫入。
4.圖25之流程圖為循序管理寫入之流程。由於已假設寫入(1)為對 於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST70(是否為已進行循序管理之P區塊單元)之結果為否定。由於循序管理表空出,故步驟ST71(循序管理表是否空出)之結果為肯定,不進行垃圾回收而將寫入(1)之內容登錄於循序管理表(步驟ST73),經過之後之各動作而結束寫入(1)。
5.當發出寫入(2)之命令時,再次進入圖15之流程圖之處理。經過與上述1、2相同之動作而進入圖17之流程圖之處理。寫入(2)係與寫入(1)相同之L區塊單元之寫入,因此,參照循序管理表時,可確認到登錄有包含寫入(2)之L區塊單元。因此,最初之分支之步驟ST13(是否為已進行循序管理之P區塊單元)之結果為肯定。
由於寫入(2)為寫入(1)之有序之接續,故步驟ST14(是否可於循序管理之狀態下進行新增)之結果亦為肯定。因此,最終獲得肯定而處理返回至圖16。藉此,圖16之步驟ST12(是否為成為循序管理之對象之寫入)之結果成為肯定,進入圖25之循序管理寫入之流程圖之處理。
由於寫入(2)係與寫入(1)相同之L區塊單元之寫入,故最初之分支之步驟ST70(是否為已進行循序管理之P區塊單元)之結果為肯定。因此,對與寫入(1)相同之P區塊單元循序新增寫入(2)(步驟ST76)。由於即便寫入(1)、(2)合併亦未達P區塊單元尺寸,故下一分支之步驟ST77(資料是否填充至最終實體頁面)之結果成為否定,經過之後之各動作而結束寫入(2)。
6.當發出寫入(3)之命令時,再次進入圖15之流程圖之處理。之後,經過與5相同之動作而結束寫入(3)。
7.當發出寫入(4)之命令時,再次進入圖15之流程圖之處理。之後,經過與5相同之動作,若將寫入(1)、(2)、(3)、(4)合併則成為P區塊單元尺寸,因此,5之最後之分支之步驟ST77(資料是否填充至最終 實體頁面)之結果成為肯定,進行對於P區塊單元管理之升格處理(步驟ST78)之後結束寫入(4)。
根據上述情況,於該手法中,於寫入(1)~(4)之期間使用1個循序管理表,於最後之對於P區塊單元管理之升格處理中打開循序管理表而結束寫入。
〔手法2〕
預處理.明示於該手法2中在進行寫入之前使用循序管理登錄命令對包含寫入(1)之L區塊單元進行循序管理之情況。圖19之流程圖為循序管理登錄命令之流程。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST22(是否為未登錄之L區塊單元)之結果為肯定。因此,將L區塊單元登錄於循序管理登錄命令用表(參照圖18)(步驟ST23)。
1.當發出寫入(1)之命令時,進入圖15之流程圖之處理。為了判定最初之分支之步驟ST3(與過去之循序命令存在匹配性?)而進入圖21之判定流程之處理。
2.由於已在預處理中將包含寫入(1)之L區塊單元登錄於循序管理登錄命令用表,故可取出與寫入(1)對應之P區塊單元。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST32(是否為已進行循序管理之P區塊單元)之結果為否定。
由於寫入(1)自L區塊單元之前端開始,故下一分支之步驟ST33(是否進行可循序管理之新寫入)之結果為肯定。進而,由於寫入(1)之尺寸未達P區塊單元尺寸,故於寫入(1)之存取目標不存在除此以外之登錄結束之P區塊單元。因此,步驟ST34(調查完所有登錄結束之P區塊單元)之結果成為肯定,最終傳回肯定(步驟ST35)。因此,圖15之步驟ST3(與過去之循序命令存在匹配性?)之結果成為肯定,經過各動作而移行至P區塊內寫入處理(步驟ST6)。
3.圖16為P區塊內寫入處理。由於寫入(1)未達P區塊單元尺寸,故最初之分支之步驟ST11(寫入尺寸與P區塊單元尺寸一致)之結果為否定。由於包含寫入(1)之L區塊單元已登錄於循序管理登錄命令用表中,故下一分支之步驟ST12(是否為成為循序管理之對象之寫入)之結果成為肯定,而移行至循序管理寫入。
4.圖25為循序管理寫入之流程。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST70(是否為已進行循序管理之P區塊單元)之結果為否定。由於循序管理表空出,故步驟ST71(循序管理表是否空出)為肯定,不進行垃圾回收而將寫入(1)之內容登錄於循序管理表,經過之後之各動作而結束寫入(1)。
5.當發出寫入(2)之命令時,再次進入圖15之流程圖之處理,為了判定最初之分支之步驟ST3(與過去之循序命令存在匹配性?)而進入圖21之判定流程圖之處理。由於已在預處理中將包含寫入(1)之L區塊單元登錄於循序管理登錄命令用表中,故可取出與寫入(1)對應之P區塊單元。
由於已於寫入(1)中對循序管理表進行登錄,故最初之分支之步驟ST32(是否為已進行循序管理之P區塊單元)之結果為肯定。由於寫入(2)於寫入(1)剛結束後開始,故步驟ST36(是否可於循序管理之狀態下進行新增)之結果亦為肯定。
由於寫入(2)之尺寸未達P區塊單元尺寸,故於寫入(2)之存取目標不存在除此以外之登錄結束之P區塊單元。因此,步驟ST34(調查完所有登錄結束之P區塊單元)之結果成為肯定,最終傳回肯定。因此,圖15之步驟ST3(與過去之循序命令存在匹配性?)之結果成為肯定,經過各動作而移行至P區塊內寫入處理(步驟ST6)。
6.圖16為P區塊內寫入處理。由於寫入(2)未達P區塊單元尺寸,故最初之分支之步驟ST11(寫入尺寸與P區塊單元尺寸一致)之結果為 否定。由於包含寫入(2)之L區塊單元已登錄於循序管理登錄命令用表中,故下一分支之步驟ST12(是否為成為循序管理之對象之寫入)之結果成為肯定,而移行至循序管理寫入。
7.圖25為循序管理寫入之流程。由於寫入(2)係與寫入(1)同為L區塊單元之寫入,故最初之分支之步驟ST70(是否為已進行循序管理之P區塊單元)之結果為肯定。因此,對與寫入(1)相同之P區塊單元循序新增寫入(2)。由於即便寫入(1)、(2)合併亦未達P區塊單元尺寸,故下一分支之步驟ST77(資料是否填充至最終實體頁面)之結果成為否定,經過其後之各項動作而結束寫入(2)。
8.當發出寫入(3)之命令時,再次進入圖15之流程圖之處理。之後,經過與5、6、7相同之動作而結束寫入(3)。
9.當發出寫入(4)之命令時,再次進入圖15之流程圖之處理。之後,經過與5、6、7相同之動作,若將寫入(1)、(2)、(3)、(4)合併則成為P區塊單元尺寸,因此,7之最後之分支之步驟ST77(資料是否填充至最終實體頁面)之結果成為肯定,進行對於P區塊單元管理之升格處理後結束寫入(4)。所謂該升格處理,係指自循序管理表及循序管理登錄命令用表中刪除包含寫入(1)之L區塊單元之操作。
根據上述情況,於該手法中,於寫入(1)~(4)之期間使用1個循序管理表,於最後之對於P區塊單元管理之升格處理中自循序管理表及循序管理登錄命令用表中刪除包含寫入(1)之L區塊單元而結束寫入。
〔手法3〕
預處理.明示於手法3中在進行寫入之前使用循序管理登錄命令對包含寫入(1)之L區塊單元進行循序管理之情況。圖22為循序管理登錄命令之流程。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST42(是否為未登錄之L區塊單元)之結果為肯定。由於循序管理表空出,故步驟ST44(循序管理表中是否 存在空缺)之結果亦為肯定。因此,將L區塊單元登錄於循序管理登錄命令用表中(步驟ST45)。
之後之寫入處理與手法2完全相同。然而,自循序管理登錄命令用表中刪除輸入值係於後處理中進行。
後處理.於手法3中,進行寫入之後,自循序管理登錄命令用表中將預處理中所登錄之L區塊單元刪除。圖23為循序管理刪除命令之流程。由於包含寫入(1)之L區塊單元已於預處理中登錄,故最初之分支之步驟ST52(為登錄結束之L區塊單元?)之結果為肯定。因於寫入(1)~(4)中已結束相當於P區塊單元尺寸之寫入,故步驟ST54(資料填充至最終實體頁面?)之結果為肯定。因此,不進行升格處理而自循序管理登錄命令用表中將包含寫入(1)之L區塊單元刪除(步驟ST56)。
根據上述情況,於該手法中,於寫入(1)~(4)之期間使用1個循序管理表,於最後之對於P區塊單元管理之升格處理中自循序管理表中將包含寫入(1)之L區塊單元刪除,於後處理中自循序管理登錄命令用表中將包含寫入(1)之L區塊單元刪除而結束寫入。
.寫入方法2之情形 〔先前手法〕
1.當發出寫入(1)之命令時,進入圖15之流程圖之處理。於先前手法中,由於不進行循序管理,故最初之分支之步驟ST3(與過去之循序命令存在匹配性?)之結果變為肯定,經過圖15之各動作而移至P區塊內寫入處理(步驟ST6)。
2.圖16為P區塊內寫入處理。由於寫入(1)未達P區塊單元尺寸,故最初之分支步驟ST11(寫入尺寸與P區塊單元尺寸一致)之結果為否定。進而,於先前手法中,由於不進行循序管理,故下一分支之步驟ST12(是否為成為循序管理之對象之寫入)之結果為否定。因此,移至3之P頁面單元管理寫入處理。
3.圖26為P頁面單元管理寫入。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為否定。於寫入方法2中,由於P頁面單元管理表填滿,故步驟ST81(P頁面單元管理表是否空出)之結果為否定,進行垃圾回收(步驟ST82)而於P頁面單元管理表中製作空缺之後,將寫入(1)之內容登錄於P頁面單元管理表,經過之後之各動作而結束寫入(1)。
4.當發出寫入(2)之命令時,再次進入圖15之流程圖之處理。之後,經過與1、2相同之動作而移至圖26之P頁面單元管理寫入。是否對與寫入(1)相同之P區塊單元進行寫入(2)係依存於安裝方法。假如進行之情形時,最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為肯定。於此情形時,對與寫入(1)相同之P區塊單元利用追加而進行寫入,經過之後之各動作而結束寫入(1)。
假如未對與寫入(1)相同之P區塊單元進行寫入(2)之情形時,分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為否定。於此情形時,由於藉由寫入(1)而P頁面單元管理表再次填滿,故步驟ST81(P頁面單元管理表是否空出)之結果為否定,進行垃圾回收(步驟ST82)而於P頁面單元管理表中製作空缺之後,將寫入(2)之內容登錄於P頁面單元管理表,經過之後之各動作而結束寫入(2)。
5.當發出寫入(3)之命令時,再次進入圖15之流程圖之處理。之後,經過與4相同之動作而結束寫入(3)。
6.當發出寫入(4)之命令時,再次進入圖15之流程圖之處理。之後,經過與4相同之動作而結束寫入(4)。
根據上述情況,於該手法中,根據控制方法產生1~4次垃圾回收。
〔手法1〕
手法1與寫入方法1之情形完全相同。因此,於該手法中,於寫入(1)~(4)之期間使用1個循序管理表,於最後之對於P區塊單元管理之升格處理中打開循序管理表而結束寫入。
〔手法2〕
手法2與寫入方法1之情形完全相同。因此,於該手法中,於寫入(1)~(4)之期間使用1個循序管理表,於最後之對於P區塊單元管理之升格處理中打開循序管理表而結束寫入。
〔手法3〕
手法3與寫入方法1之情形完全相同。因此,於該手法中,於寫入(1)~(4)之期間使用1個循序管理表,於最後之對於P區塊單元管理之升格處理中打開循序管理表而結束寫入。
‧寫入方法3之情形 〔先前手法〕
1.當發出寫入(1)之命令時,進入圖15之流程圖之處理。於先前手法中,由於不進行循序管理,故最初之分支之步驟ST3(與過去之循序命令存在匹配性?)之結果變為肯定,經過圖15之各動作而移至P區塊內寫入處理(步驟ST16)。
2.圖16為P區塊內寫入處理。由於寫入(1)未達P區塊單元尺寸,故最初之分支之步驟ST11(寫入尺寸與P區塊單元尺寸一致)之結果為否定。進而,於先前手法中,由於不進行循序管理,故下一分支之步驟ST12(是否為成為循序管理之對象之寫入)之結果為否定。因此,移至3之P頁面單元管理寫入處理。
3.圖26為P頁面單元管理寫入。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為否定。於寫入方法3中,由於P頁面單元管理表填滿,故步驟ST81(P頁面單元管理表是否空出)之 結果為否定,進行垃圾回收(步驟ST82)而於P頁面單元管理表中製作空缺之後,將寫入(1)之內容登錄於P頁面單元管理表,經過之後之各動作而結束寫入(1)。
4.當發出寫入(2)之命令時,再次進入圖15之流程圖之處理。之後,經過與1、2相同之動作而移至圖26之P頁面單元管理寫入。是否對與寫入(1)相同之P區塊單元進行寫入(2)係依存於安裝方法。假如進行之情形時,最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為肯定。於此情形時,對與寫入(1)相同之P區塊單元利用追加而進行寫入,經過之後之各動作而結束寫入(1)。
假如未對與寫入(1)相同之P區塊單元進行寫入(2)之情形時,分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為否定。於此情形時,由於藉由寫入(1)而P頁面單元管理表再次填滿,故步驟ST81(P頁面單元管理表是否空出)之結果為否定,進行垃圾回收(步驟ST82)而於P頁面單元管理表中製作空缺之後,將寫入(2)之內容登錄於P頁面單元管理表中,經過之後之各動作而結束寫入(2)。
根據上述情況,於該手法中,根據控制方法產生1~2次垃圾回收。
〔手法1〕
1.當發出寫入(1)之命令時,進入圖15之流程圖之處理。於手法1中,由於不進行使用循序命令之循序管理,故最初之分支之步驟ST3(與過去之循序命令存在匹配性?)之結果變為肯定,經過圖15之各動作而移至P區塊內寫入處理(步驟ST6)。
2.圖16為P區塊內寫入處理。由於寫入(1)未達P區塊單元尺寸,故最初之分支之步驟ST11(寫入尺寸與P區塊單元尺寸一致)之結果為否定。為了獲得下一分支之步驟ST12(是否為成為循序管理之對象之寫入)之判定結果,而進入圖17之流程圖之處理。
3.由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST13(是否為已進行循序管理之P區塊單元)之結果為否定。下一分支之步驟ST17(是否進行可循序管理之寫入)之判定方法根據安裝而有任意性,決定使用例示之判定方法(以P區塊單元尺寸之1/4以上之新寫入為循序管理對象)。因此,該分支之結果為肯定。因此,最終獲得肯定而返回至圖16。藉此,圖16之步驟ST12(是否為成為循序管理之對象之寫入)之結果成為肯定,而移行至循序管理寫入。
4.圖25為循序管理寫入之流程。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST70(是否為已進行循序管理之P區塊單元)之結果為否定。由於循序管理表空出,故步驟ST71(循序管理表是否空出)之結果為肯定,不進行垃圾回收而將寫入(1)之內容登錄於循序管理表,經過之後之各動作而結束寫入(1)。
5.當發出寫入(2)之命令時,再次進入圖15之流程圖之處理。之後,經過與1、2相同之動作而進入圖17之流程圖之處理。由於寫入(2)係與寫入(1)相同之L區塊單元之寫入(參照圖31),故參照循序管理表時,可確認到登錄有包含寫入(2)之L區塊單元。因此,最初之分支之步驟ST13(是否為已進行循序管理之P區塊單元)之結果為肯定。
由於寫入(2)並非寫入(1)之有序之接續,故步驟ST14(是否可於循序管理之狀態下進行新增)之結果為否定。因此,進行循序管理結束處理(步驟ST16)。該處理係將進行循序管理之寫入(1)降格為P頁面單元管理之處理。自循序管理表中將包含寫入(1)之L區塊單元刪除,並將包含寫入(1)之L區塊單元登錄於P頁面單元管理表中,於寫入方法3中,由於P頁面單元管理表填滿,故一旦進行垃圾回收而於P頁面單元管理表中製作空缺之後,將寫入(1)之內容登錄於P頁面單元管理表。 然後,最終獲得否定而返回至圖16。藉此,圖16之步驟ST12(是否為成為循序管理之對象之寫入)之結果成為否定,移至圖26之P頁面單元管理寫入。
6.是否對與寫入(1)相同之P區塊單元進行寫入(2)係依存於安裝方法。假如進行之情形時,最初之分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為肯定。於此情形時,對與寫入(1)相同之P區塊單元利用追加而進行寫入,經過之後之各動作而結束寫入(1)。
假如未對與寫入(1)相同之P區塊單元進行寫入(2)之情形時,分支之步驟ST80(是否為已進行P頁面單元管理之P區塊單元)之結果為否定。於此情形時,由於藉由寫入(1)而P頁面單元管理表再次填滿,故步驟ST81(P頁面單元管理表是否空出)之結果為否定,進行垃圾回收(步驟ST82)而於P頁面單元管理表中製作空缺之後,將寫入(2)之內容登錄於P頁面單元管理表,經過之後之各動作而結束寫入(2)。
根據上述情況,於該手法中,根據控制方法產生1~2次垃圾回收。
〔手法2〕
預處理.與寫入方法1之手法2中之預處理完全相同。
1.寫入(1)與寫入方法1之手法2中之寫入(1)完全相同。
2.當發出寫入(2)之命令時,再次進入圖15之流程,為了判定最初之分支之步驟ST3(與過去之循序命令存在匹配性?)而進入圖21之判定流程圖之處理。由於已在預處理中將包含寫入(1)之L區塊單元登錄於循序管理登錄命令用表中,故可取出與寫入(1)對應之P區塊單元。由於已於寫入(1)中對循序管理表進行登錄,故最初之分支之步驟ST32(是否為已進行循序管理之P區塊單元)之結果為肯定。然而,由於寫入(2)未在寫入(1)剛結束後開始,故步驟ST36(是否可於循序管理 之狀態下進行新增)之結果為否定。因此,傳回否定,因此,圖15之步驟ST3(與過去之循序命令存在匹配性?)之結果成為否定,而不受理命令。
根據上述情況,於該手法中,不受理命令。
〔手法3〕
預處理.與寫入方法1之手法3中之預處理完全相同。
1.寫入(1)與寫入方法1之手法3中之寫入(1)完全相同。
2.當發出寫入(2)之命令時,再次進入圖15之流程,為了判定最初之分支之步驟ST3(與過去之循序命令存在匹配性?)而進入圖21之判定流程圖之處理。由於已在預處理中將包含寫入(1)之L區塊單元登錄於循序管理登錄命令用表中,故可取出與寫入(1)相對應之P區塊單元。由於已於寫入(1)中對循序管理表進行登錄,故最初之分支之步驟ST32(是否為已進行循序管理之P區塊單元)之結果為肯定。然而,由於寫入(2)未在寫入(1)剛結束後開始,故步驟ST36(是否可於循序管理之狀態下進行新增)之結果為否定。因此,傳回否定,因此,圖15之步驟ST3(與過去之循序命令存在匹配性?)之結果成為否定,而不受理命令。
根據上述情況,於該手法中,不受理命令。
‧寫入方法4之情形 〔先前手法〕
先前手法與寫入方法2之情形完全相同。因此,於該手法中,根據控制方法產生1~4次垃圾回收。
〔手法1〕
1~3.與寫入方法1之手法1中之1~3完全相同。
4.圖25為循序管理寫入之流程。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST70(是否為已 進行循序管理之P區塊單元)之結果為否定。由於循序管理表填滿,故步驟ST71(循序管理表是否空出)之結果為否定,進行垃圾回收(步驟ST72)而於循序管理表中製作空缺之後,登錄寫入(1)之內容,經過之後之各動作而結束寫入(1)。
5.之後與寫入方法1之手法1完全相同。
根據上述情況,於該手法中,產生1次垃圾回收。
〔手法2〕
預處理.與寫入方法1之手法2中之預處理完全相同。
1~3.與寫入方法1之手法2中之1~3完全相同。
4.圖25為循序管理寫入之流程。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST70(是否為已進行循序管理之P區塊單元)之結果為否定。由於循序管理表填滿,故步驟ST71(循序管理表是否空出)之結果為否定,進行垃圾回收(步驟ST72)而於循序管理表中製作空缺之後,登錄寫入(1)之內容,經過之後之各動作而結束寫入(1)。
5.之後與寫入方法1之手法1完全相同。
根據上述情況,於該手法中,產生1次垃圾回收。
〔手法3〕
預處理.明示於手法3中在進行寫入之前使用循序管理登錄命令對包含寫入(1)之L區塊單元進行循序管理之情況。圖22為循序管理登錄命令之流程。由於已假設寫入(1)為對於過去未進行管理之新P區塊單元之寫入,故最初之分支之步驟ST42(是否為未登錄之L區塊單元)之結果為肯定。然而,由於循序管理表填滿,故步驟ST44(循序管理表中是否存在空缺)之結果為否定。因此,不受理命令(步驟ST43)。根據上述情況,於該手法中,不受理命令。
以上,對圖28之所有情形進行了說明。以下,對該等之效果進 行說明。
於寫入方法1中,使用先前手法時消耗1~4個P頁面單元管理表,相對於此,於手法1~3中,僅暫時使用循序管理表,因而未被消耗。由於當管理表填滿時誘發垃圾回收,故可謂於寫入方法1中,利用本手法,與先前手法相比而可抑制垃圾回收。
再者,循序管理表(參照圖12)係自身完結,但P頁面單元管理表(參照圖13)係表之各輸入值伴隨圖14之表,從而為了保持而需要更大之區域。因此,循序管理表更容易使輸入值數變大(作為一例,已假設d≧4、e≧4,e更容易變大)。鑒於上述情況亦可知:利用本手法,與先前手法相比而可抑制垃圾回收。
於寫入方法2中,使用先前手法時產生垃圾回收,相對於此,於手法1~3中,僅暫時使用順序管理表,因而未被消耗,亦不發生垃圾回收。因此,可謂於寫入方法2中,利用本手法,與先前手法相比,亦可抑制垃圾回收。
於寫入方法3中,使用先前手法時產生垃圾回收。由於寫入方法3並非有序之寫入,故於手法1中亦產生垃圾回收,但使用手法2~3時,可不受理命令。因此,於寫入方法3中,本手法亦可提供抑制垃圾回收之方法。
於寫入方法4中,使用先前手法時產生垃圾回收。於寫入方法4中,由於循序管理表填滿,故於手法1、2中亦產生垃圾回收,但其次數被抑制於先前手法以下。又,使用手法3時,可不受理命令。因此,可謂於寫入方法4中本手法亦提供抑制垃圾回收之方法。
<2.關於其他應用>
於寫入方法3中,可根據圖18之循序管理登錄命令用表而判斷特定之L區塊單元是否為進行循序寫入之中途。其原因在於:已進行循序管理登錄命令之L區塊單元係登錄於圖18之循序管理登錄命令用表 中,當循序寫入完成時上述L區塊單元根據刪除命令而自圖18之循序管理登錄命令用表中刪除。
因此,主機機器即將讀出循序寫入中之資料區域之情形時,可進行「於循序寫入結束之前,不確定寫入內容,於進行循序寫入之前送回原本已寫之資料」之控制。若使用該情況,則可根據狀況而區別使用循序寫入中之L區塊單元之處理。使用圖對該情況進行說明。
首先,對讀出時之L區塊單元之處理進行說明。圖33係表示對已寫入完資料之某L區塊單元發出循序管理登錄命令而進行循序寫入(1)、(2)之狀況。於該狀況下,考慮不發出循序管理刪除命令而對相同之L區塊單元進行圖34之讀出要求之情形。
此時,有讀出要求之L區塊單元所對應之資料中存在寫入結束之資料、及循序寫入中之資料之2種。因此,對於作為應對主機送回之資料而快閃記憶體裝置如何使用上述2種,存在任意性。於圖35、圖36、圖37中表示其例子。
圖35係對存在循序寫入中之資料之部分送回循序寫入中之資料且對除此以外之部分送回寫入結束之資料的方法。圖36係忽視循序寫入中之資料而送回寫入結束之資料之方法。圖37係對存在循序寫入中之資料之部分送回循序寫入中之資料且對除此以外之部分送回空白資料(0xFF)的方法。
以上3種方法因情況而適合、不適合各異。例如,對檔案系統之管理資料進行循序寫入之情形時,由於已寫之資料必需始終為最新,故理想的是不等待循序寫入之完成而即刻進行反映,理想的是圖35或圖37所示之控制。另一方面,於將本來應一次寫入之尺寸較大之資料分割而寫入般之狀況下,理想的是經分割之資料全部寫入之後才反映其等,圖36所示之控制適合。
接下來,對中途結束循序寫入之情形時之L區塊單元之處理進行 說明。如圖38所示,對於循序寫入未完成之狀況下發出循序管理刪除命令之情形進行考慮。於此情形時,圖23之循序管理刪除命令中所示之分支之步驟ST54(資料是否填充至最終實體頁面)之結果成為否定,產生對於P區塊單元管理之升格處理(步驟ST55)。於該升格處理中,確定循序寫入中之L區塊單元之內容而設為P區塊單元管理,但對於此時如何使用寫入結束之資料及循序寫入中之資料之2種,仍然存在任意性。於圖39、圖40、圖41中表示其例子。
圖39係對存在循序寫入中之資料之部分使用循序寫入中之資料且對除此以外之部分使用寫入結束之資料而構成新L區塊單元,並將此設為P區塊單元管理的方法。圖40係對存在循序寫入中之資料之部分使用循序寫入中之資料且對除此以外之部分使用空白資料(0xFF)而構成新L區塊單元,並將此設為P區塊單元管理的方法。圖41係忽視循序寫入中之資料而僅利用寫入結束之資料構成新L區塊單元,並將此設為P區塊單元管理的方法。
以上3種方法仍然因情況而適合、不適合各異。例如,於循序寫入中途結束後,欲使儘可能多之資料保留之情形時,圖39之方法適合。於將尺寸較大之資料分割而寫入般之狀況下,若循序寫入中之L區塊單元中混入較舊之資料,則難以與已寫入之尺寸較大之資料加以區別而產生混亂,因此,圖40之方法適合。於欲使循序寫入未完成之狀況下之不澈底之資料完全不保留之情形時,圖41之方法適合。
如上所述,對於循序寫入中之L區塊單元之處理,關於讀出及中途結束而存在任意性,於本揭示中,設想於安裝時選擇其中之一個且運用時固定地利用其之情況。然而,於方法3中,將循序寫入中之L區塊單元之處理作為參數而賦予給循序管理登錄命令,藉此,可於運用時進行動態控制。於圖42中表示上述情形時之循序管理登錄命令用表之構成方法。
圖42係將圖18擴充所得者。除表示「是否已根據循序管理登錄命令而進行登錄」之行以外,亦追加有表示賦予讀出之方法與中途結束之方法之2個參數之行。執行循序管理登錄命令時,指定該2種參數,並登錄於循序管理登錄命令用表中,藉此,可判定讀出時及中途結束時使用圖35、圖36、圖37及圖39、圖40、圖41中之哪一控制方法。
若使用該判定方法,則可於運用時對循序寫入中之L區塊單元之處理進行動態控制。例如,作為主機機器而考慮攝影機,利用該攝影機拍攝動態影像資料而保存般之情形時,可進行如下應用:拍攝資料之部分係利用圖36之方法而控制,用以管理拍攝資料之檔案系統之管理資料係利用圖35之方法而控制。
再者,本揭示亦可採取如下構成。
(1)
一種非揮發性記憶體裝置,其包含非揮發性記憶體部、控制部及介面,上述控制部係接收寫入要求,於寫入尺寸為較抹除之管理單位小之尺寸之接收資料之情形時,判定是否為循序管理之寫入對象,於上述循序管理之寫入對象之情形時,進行循序寫入尺寸較上述抹除之管理單位小之接收資料之第1寫入處理,於未成為上述循序管理之寫入對象之情形時,進行以寫入之管理單位寫入尺寸較上述抹除之管理單位小之接收資料之第2寫入處理。
(2)
如(1)之非揮發性記憶體裝置,其中預先設定有完成上述第1寫入處理之特定區域。
(3)
如(1)之非揮發性記憶體裝置,其中是否為上述循序管理之寫入對象係根據過去之寫入而判斷寫入要求之循序性。
(4)
如(1)之非揮發性記憶體裝置,其中通過上述介面使主機機器明示是否為上述循序管理之寫入對象。
(5)
如(1)之非揮發性記憶體裝置,其中通過上述介面使主機機器明示是否為上述循序管理之寫入對象,且寫入區域之分配管理亦由主機進行。
(6)
一種非揮發性記憶體控制裝置,其接收寫入要求,於寫入尺寸為較抹除之管理單位小之尺寸之接收資料之情形時,判定是否為循序管理之寫入對象,於上述循序管理之寫入對象之情形時,進行循序寫入尺寸較上述抹除之管理單位小之接收資料之第1寫入處理,於未成為上述循序管理之寫入對象之情形時,進行以寫入之管理單位寫入尺寸較上述抹除之管理單位小之接收資料之第2寫入處理。
(7)
一種非揮發性記憶體控制裝置,其規定有以利用循序管理對非揮發性記憶體裝置之特定區域寫入尺寸較抹除之管理單位小之資料之方式進行指示的主機側之命令。
(8)
如(7)之非揮發性記憶體控制裝置,其中以利用上述循序管理寫入之方式進行指示,並且寫入區域之分配管理亦由上述主機側進行。
(9)
一種非揮發性記憶體控制方法,其接收寫入要求,於寫入尺寸為較抹除之管理單位小之尺寸之接收資料之情形時,判定是否為循序管理之寫入對象,於上述循序管理之寫入對象之情形時,進行循序寫入尺寸較上述抹除之管理單位小之接收資料之第1寫入處理,於未成為上述循序管理之寫入對象之情形時,進行以寫入之管理單位寫入尺寸較上述抹除之管理單位小之接收資料之第2寫入處理。
(10)
一種非揮發性記憶體控制方法,其規定有以利用循序管理對非揮發性記憶體裝置之特定區域寫入尺寸較抹除之管理單位小之資料之方式進行指示的主機側之命令。
(11)
如(10)之非揮發性記憶體控制方法,其中以利用上述循序管理寫入之方式進行指示,並且寫入區域之分配管理亦由上述主機側進行。
<3.變化例>
以上,對本揭示之實施形態進行了具體說明,但並不限定於上述各實施形態,可進行基於本揭示之技術思想之各種變形。例如,上述實施形態中列舉之構成、方法、步驟、形狀、材料及數值等終歸僅為示例,亦可視需要使用與此不同之構成、方法、步驟、形狀、材料及數值等。
以上,針對本揭示之實施形態,對利用快閃記憶體作為非揮發性記憶體之情形時之實施例進行了具體說明。然而,上述非揮發性記憶體並不限定於快閃記憶體,可應用於可以成為抹除單位之尺寸變為成為寫入單位之尺寸以上之方式構成實體位址空間之所有非揮發性記 憶體。於將本揭示應用於快閃記憶體以外之非揮發性記憶體之情形時,以成為應用對象之非揮發性記憶體中之抹除單位替換本揭示中之P區塊單元即可,且以成為應用對象之非揮發性記憶體中之寫入單位替換本揭示中之P頁面單元即可。

Claims (11)

  1. 一種非揮發性記憶體控制硬體裝置(control hardware device),其經構成為:自主機(host)接收寫入要求及資料,自主機接收:上述接收到之資料是否為循序管理之寫入之對象的指示,於上述接收到之資料為上述循序管理之寫入之對象(object)之情形時,對上述非揮發性記憶體進行第1寫入處理,其中上述接收到之資料被循序寫入,且於上述接收到之資料非為上述循序管理之寫入之對象之情形時,對上述非揮發性記憶體進行第2寫入處理,其中上述接收到之資料以與上述第1寫入處理不同之方式而被寫入。
  2. 如請求項1之非揮發性記憶體控制硬體裝置,其中於上述接收到之資料非為上述循序管理之寫入之對象之情形時,進行第2寫入處理,其中上述接收到之資料由上述寫入之管理單位來寫入。
  3. 如請求項1之非揮發性記憶體控制硬體裝置,其中於上述接收之資料非為上述循序管理之寫入之對象之情形時,進行上述第2寫入處理或拒絕上述寫入要求之處理。
  4. 如請求項1之非揮發性記憶體控制硬體裝置,其中自主機接收:如何自記憶區域(storage area)讀取資料之指示。
  5. 如請求項4之非揮發性記憶體控制硬體裝置,其中自主機接收:自數個方法中指示一個方法之指示,該數個方法包含第一讀取方法及第二讀取方法,上述第一讀取方法中:循序寫入之資料(sequentially written data)係自具有循序寫入之資料的記憶區域讀取,寫入之資料 (written data)係自不具循序寫入之資料的記憶區域讀取;上述第二讀取方法中:循序寫入之資料係自具有循序寫入之資料的記憶區域讀取,預定之資料(predetermined data)係自不具循序寫入之資料的記憶區域讀取。
  6. 如請求項4之非揮發性記憶體控制硬體裝置,其中自主機接收:自數個方法中指示(indicate)一個方法之指示,該數個方法包含第一讀取方法及第二讀取方法,上述第一讀取方法中:循序寫入之資料係自具有循序寫入之資料的記憶區域讀取,寫入資料係自不具循序寫入之資料的記憶區域讀取;上述第二讀取方法中:寫入資料係自記憶區域讀取,且忽視上述循序寫入中之資料。
  7. 如請求項1至6中任一項之非揮發性記憶體控制硬體裝置,其中上述主機係構成為管理:寫入區域之分配(allocation)。
  8. 一種非揮發性記憶體裝置,其包含:非揮發性記憶體部,控制部,及介面;其中上述控制部係構成為:自主機接收寫入要求及資料,自主機接收:上述接收到之資料是否為循序管理之寫入之對象的指示,於上述接收到之資料為上述循序管理之寫入之對象之情形時,對上述非揮發性記憶體部進行第1寫入處理,其中上述接收到之資料被循序寫入,且於上述接收到之資料非為上述循序管理之寫入之對象之情形 時,對上述非揮發性記憶體部進行第2寫入處理,其中上述接收到資料以與上述第1寫入處理不同之方式而被寫入。
  9. 如請求項8之非揮發性記憶體裝置,其中上述主機係構成為管理:上述記憶體部之寫入區域之分配。
  10. 一種非揮發性記憶體控制方法,其包含:自主機接收寫入要求及資料,自主機接收:上述接收到之資料是否為循序管理之寫入之對象的指示,於上述接收到之資料為上述循序管理之寫入之對象之情形時,對上述非揮發性記憶體進行第1寫入處理,其中上述接收到之資料被循序寫入,且於上述接收到之資料非為上述循序管理之寫入之對象之情形時,對上述非揮發性記憶體進行第2寫入處理,其中上述接收到資料以與上述第1寫入處理不同之方式而被寫入。
  11. 如請求項10之非揮發性記憶體控制方法,其中寫入區域之分配係由主機管理。
TW102106590A 2012-04-25 2013-02-25 Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods TWI605458B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012100370 2012-04-25

Publications (2)

Publication Number Publication Date
TW201351420A TW201351420A (zh) 2013-12-16
TWI605458B true TWI605458B (zh) 2017-11-11

Family

ID=49482738

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102106590A TWI605458B (zh) 2012-04-25 2013-02-25 Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods

Country Status (7)

Country Link
US (2) US10372367B2 (zh)
EP (1) EP2843562B1 (zh)
JP (2) JP5983739B2 (zh)
KR (1) KR20150015441A (zh)
CN (1) CN104246725B (zh)
TW (1) TWI605458B (zh)
WO (1) WO2013161398A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6326799B2 (ja) * 2013-12-11 2018-05-23 株式会社ニコン 電子機器
JP6139711B2 (ja) * 2014-02-03 2017-05-31 株式会社日立製作所 情報処理装置
CA2896369C (en) 2014-06-27 2017-08-15 Chenyi Zhang Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US9940234B2 (en) * 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
CN108984312B (zh) * 2017-06-02 2022-03-25 伊姆西Ip控股有限责任公司 数据读写的方法和设备
CN109273033B (zh) * 2017-07-17 2021-03-30 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
TWI643065B (zh) 2017-12-20 2018-12-01 慧榮科技股份有限公司 用於動態執行記憶體回收資料儲存裝置與操作方法
JP7444091B2 (ja) 2021-01-29 2024-03-06 株式会社デンソー 転舵制御装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
EP1758027B1 (en) 2003-12-30 2010-07-14 SanDisk Corporation Non-volatile memory and method with control data management
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
DE102004038213A1 (de) * 2004-08-05 2006-03-16 Robert Bosch Gmbh Verfahren und Vorrichtung zum Zugriff auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP2007193883A (ja) 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
US7775213B2 (en) * 2006-07-06 2010-08-17 Qsum Biopsy Disposables, Llc Medical procedure draping systems
JP4299846B2 (ja) * 2006-07-28 2009-07-22 Necインフロンティア株式会社 クライアント・サーバ型分散システム、クライアント装置、サーバ装置及びそれらに用いるメッセージ暗号方法
KR100809319B1 (ko) * 2006-09-13 2008-03-05 삼성전자주식회사 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US20080235489A1 (en) * 2007-03-19 2008-09-25 Sergey Anatolievich Gorobets Systems for forcing an update block to remain sequential
JP5175703B2 (ja) 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
JP4758518B2 (ja) 2009-06-18 2011-08-31 パナソニック株式会社 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
JP2011175615A (ja) 2010-01-27 2011-09-08 Toshiba Corp ホスト装置およびメモリデバイス
KR101662827B1 (ko) * 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US8248883B1 (en) * 2010-08-31 2012-08-21 Xilinx, Inc. Non-volatile I/O device based memory

Also Published As

Publication number Publication date
JPWO2013161398A1 (ja) 2015-12-24
US10372367B2 (en) 2019-08-06
CN104246725B (zh) 2018-02-16
JP6206562B2 (ja) 2017-10-04
JP2016186828A (ja) 2016-10-27
EP2843562A1 (en) 2015-03-04
KR20150015441A (ko) 2015-02-10
CN104246725A (zh) 2014-12-24
TW201351420A (zh) 2013-12-16
JP5983739B2 (ja) 2016-09-06
EP2843562B1 (en) 2021-03-31
WO2013161398A1 (ja) 2013-10-31
US20150120992A1 (en) 2015-04-30
US20190339895A1 (en) 2019-11-07
EP2843562A4 (en) 2015-10-28
US11455112B2 (en) 2022-09-27

Similar Documents

Publication Publication Date Title
TWI605458B (zh) Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods
US10783071B2 (en) Data storage device and operating method thereof, wherein mapping table for valid data of source block that has not been copied to destination block has a higher priority than mapping information collected by reverse scanning from end of the destination block
KR101663667B1 (ko) 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
JP4633802B2 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
US7877569B2 (en) Reduction of fragmentation in nonvolatile memory using alternate address mapping
JP4738038B2 (ja) メモリカード
CN102779095B (zh) 闪存装置、存储器控制装置、存储器控制方法及存储***
EP1435576B1 (en) Method and apparatus for block-oriented memory management provided in smart card controllers
KR19990045218A (ko) 불휘발성 기억 장치, 불휘발성 기억 장치의 제어 방법 및 불휘발성 기억 장치를 제어하는 프로그램을 기록한 정보 기록 매체
EP3752905B1 (en) Append only streams for storing data on a solid state device
US20100318726A1 (en) Memory system and memory system managing method
JP2015191336A (ja) メモリ制御装置、情報処理装置とその制御方法、及びプログラム
JP4242245B2 (ja) フラッシュrom制御装置
JP2010237907A (ja) ストレージ装置および記録方法
CN102880553A (zh) 一种基于mcu的片外flash文件***的读写方法
JP2005115562A (ja) フラッシュrom制御装置
JP2018185842A (ja) メモリ制御装置及び情報処理システム
KR20120125950A (ko) 플래시 메모리 장치, 메모리 제어 장치, 메모리 제어 방법, 스토리지 시스템
JP2007249509A (ja) 不揮発性記憶装置のデータ管理方法