TW201624490A - 記憶體裝置及非暫態電腦可讀取記錄媒體 - Google Patents

記憶體裝置及非暫態電腦可讀取記錄媒體 Download PDF

Info

Publication number
TW201624490A
TW201624490A TW104114943A TW104114943A TW201624490A TW 201624490 A TW201624490 A TW 201624490A TW 104114943 A TW104114943 A TW 104114943A TW 104114943 A TW104114943 A TW 104114943A TW 201624490 A TW201624490 A TW 201624490A
Authority
TW
Taiwan
Prior art keywords
data
unit
block
information
erased
Prior art date
Application number
TW104114943A
Other languages
English (en)
Inventor
菅野伸一
Original Assignee
東芝股份有限公司
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
Priority claimed from US14/656,506 external-priority patent/US10120793B2/en
Application filed by 東芝股份有限公司 filed Critical 東芝股份有限公司
Publication of TW201624490A publication Critical patent/TW201624490A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/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/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
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

根據一項實施例,一種記憶體裝置(5)包含一非揮發性記憶體(24)、位址轉譯單元(25)、產生單元(27)及接收單元(30)。該非揮發性記憶體(24)包含抹除單位區域。該等抹除單位區域中之每一者包含寫入單位區域。該位址轉譯單元(25)產生使寫入至該非揮發性記憶體(24)之寫入資料之一邏輯位址與指示該寫入資料在該非揮發性記憶體(24)中之一寫入位置之一實體位址相關之位址轉譯資訊(32)。該產生單元(27)產生指示寫入至該等抹除單位區域之資料是有效資料還是無效資料之有效/無效資訊(33)。該接收單元(30)接收包含指示該抹除單位區域中之待刪除資料之一邏輯位址之刪除資訊(34)。

Description

記憶體裝置及非暫態電腦可讀取記錄媒體
本文中所闡述之實施例大體而言係關於一種記憶體裝置及非暫態電腦可讀取記錄媒體。
一固態磁碟機(SSD)包含諸如一NAND快閃記憶體之一非揮發性半導體記憶體。該NAND快閃記憶體包含複數個區塊(實體區塊)。該複數個區塊包含配置於字線與位元線之交叉點處之複數個記憶體胞元。
2‧‧‧處理器
3‧‧‧記憶體
4‧‧‧非揮發性快取記憶體
4B‧‧‧後端/記憶體通信單元
4F‧‧‧前端/主機通信單元
5‧‧‧固態磁碟機
7‧‧‧位址轉譯資訊
8‧‧‧位址轉譯單元
9‧‧‧快取控制單元/快取記憶體/快取記憶體控制單元
10‧‧‧產生單元
11‧‧‧控制單元
12‧‧‧控制單元
13‧‧‧控制單元
14‧‧‧控制單元
15‧‧‧變化單元/第一變化單元
16‧‧‧變化單元/第二變化單元
17‧‧‧資訊處理裝置
18‧‧‧傳輸單元
19‧‧‧接收單元
20‧‧‧寫入單元
21‧‧‧傳輸單元
22‧‧‧處理器
23‧‧‧記憶體
24‧‧‧非揮發性記憶體
25‧‧‧位址轉譯單元
26‧‧‧寫入單元
27‧‧‧產生單元/有效/無效產生單元
28‧‧‧選擇單元
29‧‧‧傳輸單元
30‧‧‧接收單元
31‧‧‧廢料收集單元
32‧‧‧位址轉譯資訊
33‧‧‧有效/無效資訊
34‧‧‧刪除資訊
35‧‧‧資訊處理系統
36‧‧‧控制器
37‧‧‧記憶體系統
38‧‧‧連接器
41‧‧‧主機介面/組件
42‧‧‧主機介面控制器/控制單元/組件
43B‧‧‧CPU
43F‧‧‧CPU
44‧‧‧編碼/解碼單元/進階加密標準/組件
45‧‧‧查找表/組件
46‧‧‧DDRC
47‧‧‧動態隨機存取記憶體
48‧‧‧直接記憶體存取控制器
49‧‧‧錯誤校正碼/錯誤校正單元
50‧‧‧NAND控制器/組件
61‧‧‧管理資訊/清單
62‧‧‧管理資訊
63‧‧‧管理資訊
64‧‧‧管理資訊/清單
100‧‧‧儲存系統
111‧‧‧寫入單元/第一寫入單元
112‧‧‧判定單元/第一判定單元
113‧‧‧選擇單元/第一選擇單元
114‧‧‧判定單元/第二判定單元
115‧‧‧抹除單元/第一抹除單元
121‧‧‧寫入單元/第二寫入單元
122‧‧‧判定單元/第五判定單元
123‧‧‧選擇單元/第三選擇單元
124‧‧‧判定單元
125‧‧‧抹除單元/第二抹除單元
131‧‧‧寫入單元/第三寫入單元
132‧‧‧判定單元/第三判定單元
133‧‧‧選擇單元/第二選擇單元
134‧‧‧判定單元/第四判定單元
135‧‧‧寫入單元/第五寫入單元
136‧‧‧抹除單元/第三抹除單元
137‧‧‧寫入單元/第六寫入單元
141‧‧‧寫入單元/第四寫入單元
142‧‧‧判定單元/第六判定單元
143‧‧‧選擇單元/第四選擇單元
144‧‧‧抹除單元/第四抹除單元
B1,1‧‧‧區塊/第一抹除單位區域
B1,K‧‧‧區塊/第一抹除單位區域
B2,1‧‧‧區塊/第二抹除單位區域
B2,L‧‧‧區塊/第二抹除單位區域
B3,1‧‧‧區塊/第三抹除單位區域
B3,M‧‧‧區塊/第三抹除單位區域
B4,1‧‧‧區塊/第四抹除單位區域
B4,N‧‧‧區塊/第四抹除單位區域
BG1‧‧‧區塊群組/第一群組
BG2‧‧‧區塊群組/第二群組
BG3‧‧‧區塊群組/第三群組
BG4‧‧‧區塊群組/第四群組
CH0-CH3‧‧‧通道
IB‧‧‧內部匯流排
RB‧‧‧讀取緩衝器/讀取資料傳送單元
RZ‧‧‧隨機產生器/組件
WB‧‧‧寫入緩衝器/寫入資料傳送單元
圖1係展示根據一第一實施例之一資訊處理系統之一組態實例之一方塊圖;圖2係展示根據第一實施例由資訊處理系統執行之一程序之一實例之一流程圖;圖3係展示根據一第二實施例之一資訊處理系統之一組態實例之一方塊圖;圖4係展示第二實施例之第一快取控制之一實例之一流程圖;圖5係展示第二實施例之第二快取控制之一實例之一流程圖;圖6係展示第二實施例之第三快取控制之一實例之一流程圖;圖7係展示第二實施例之第四快取控制之一實例之一流程圖; 圖8係展示根據一第三實施例之一資訊處理系統之一詳細組態之一實例的一方塊圖;及圖9係展示根據第三實施例之一儲存系統之一實例之一透視圖。
大體而言,根據一項實施例,一種記憶體裝置包含一非揮發性記憶體、位址轉譯單元、產生單元及接收單元。該非揮發性記憶體包含複數個抹除單位區域。該等抹除單位區域中之每一者包含複數個寫入單位區域。該位址轉譯單元產生使寫入至該非揮發性記憶體之寫入資料之一邏輯位址與指示該寫入資料在該非揮發性記憶體中之一寫入位置之一實體位址相關之位址轉譯資訊。該產生單元產生指示寫入至該複數個抹除單位區域之資料是有效資料還是無效資料之有效/無效資訊。該接收單元接收包含指示該抹除單位區域中之待刪除資料之一邏輯位址之刪除資訊。
下文將參考圖式來闡述實施例。在一以下說明中,相同元件符號表示具有幾乎相同功能及配置之組件,且若必要,則將對該等組件給出一重複說明。
在稍後所提及之實施例中之每一者中,在一非揮發性記憶體及一非揮發性快取記憶體中,資料係每抹除單位區域地被共同抹除。該抹除單位區域包含複數個寫入單位區域及複數個讀取單位區域。
在本實施例中,使用一NAND快閃記憶體作為非揮發性記憶體及非揮發性快取記憶體中之每一者。然而,該非揮發性記憶體及該非揮發性快取記憶體中之每一者皆可係除NAND快閃記憶體之外之一記憶體,前提係該記憶體滿足該抹除單位區域、該寫入單位區域及該讀取單位區域當中之上述關係。
當該非揮發性記憶體及該非揮發性快取記憶體係NAND快閃記憶體時,該抹除單位區域對應於一區塊。該寫入單位區域及該讀取單位 區域對應於一頁。
在本實施例中,舉例而言,可以(舉例而言)兩個區塊之另一單位來控制該抹除單位區域,此允許共同地抹除資料。
在本實施例中,存取指示將資料寫入至一記憶體裝置及自記憶體裝置讀取資料兩者。
[第一實施例]
在本實施例中,闡述一資訊處理裝置與一記憶體裝置之間的資料及資訊傳輸及接收。
在本實施例中,使用一邏輯位址(舉例而言,邏輯區塊定址)作為資料之識別資訊。然而,可藉由其他資訊來識別資料。
圖1係展示根據本實施例之一資訊處理系統之一組態實例之一方塊圖。
一資訊處理系統35包含一資訊處理裝置17及一SSD 5。SSD 5係記憶體裝置之一實例。資訊處理裝置17可係對應於SSD 5之一主機裝置。
SSD 5可包含於資訊處理裝置17中,或可連接至資訊處理裝置17以便經由網路等傳輸及接收資料。代替SSD 5,可使用諸如一硬碟機(HDD)之另一非揮發性記憶體裝置。
資訊處理裝置17包含一快取控制單元9、儲存管理資訊61至64之一記憶體3及一非揮發性快取記憶體4。然而,可在資訊處理裝置17之外提供快取控制單元9、管理資訊61至64、記憶體3及非揮發性快取記憶體4之全部或一部分。
記憶體3儲存各種類型之控制資料,諸如管理資訊(清單)61至64及位址轉譯資訊7。記憶體3可係諸如一動態隨機存取記憶體(DRAM)或一靜態隨機存取記憶體(SRAM)之一揮發性記憶體,或者可係一非揮發性記憶體。記憶體3可包含於非揮發性快取記憶體4中。該記憶體 可包含於非揮發性快取記憶體4中。
管理資訊61至64分別係寫入至稍後所提及之區塊群組BG1至BG4之資料之後設資料。舉例而言,管理資訊61至64包含指示處理器對各別資料之使用狀態之資訊。舉例而言,管理資訊61至64包含各別資料之識別資訊、指示資料是否為待刪除資料之刪除資訊、指示資料是否為有效資料之有效/無效資訊及用以判定是否滿足用於抹除區塊之抹除條件之快取判定資訊。
該刪除資訊係指示發佈對資料之一刪除命令之資訊。更具體而言,該刪除資訊係指示自由處理器執行之一應用程式或一作業系統(OS)接收到對資料之一刪除命令之資訊等。在本實施例中,舉例而言,該刪除資訊包含使每一區塊之識別資訊與指示寫入至每一區塊之待刪除資料之一邏輯位址相關之資訊。
該有效/無效資訊係指示(舉例而言)當將相同資料寫入至複數個位置時最新資料係有效資料且除最新資料之外之資料係無效資料之資訊。換言之,舉例而言,在執行對寫入至非揮發性快取記憶體4之資料之更新之情況中,有效資料係經更新資料。舉例而言,在執行更新之情況中,無效資料係未經更新之資料。在本實施例中,舉例而言,該有效/無效資訊包含使每一區塊之識別資訊與指示寫入至每一區塊之有效資料或無效資料之一邏輯位址相關之資訊。
該快取判定資訊係包含(舉例而言)每資料之寫入資訊及讀取資訊中之至少一者或每區塊之寫入資訊及讀取資訊中之至少一者之資訊等。
舉例而言,寫入資訊包含寫入時間、寫入次數、寫入頻率及寫入次序中之至少一者。
舉例而言,讀取資訊包含讀取時間、讀取次數、讀取頻率及讀取次序中之至少一者。
舉例而言,位址轉譯資訊7使資料之一邏輯位址與對應於該邏輯位址(舉例而言,實體區塊定址)的非揮發性快取記憶體4之一實體位址相關。舉例而言,位址轉譯資訊7係以一表形式來管理的。
快取控制單元9針對具有高於SSD 5之存取速度之存取速度之非揮發性快取記憶體4執行快取控制。舉例而言,快取控制單元9藉由一直接寫回(write through)方法或一間接寫回(write back)方法來管理資料以及指示該資料之邏輯位址及實體位址。
在直接寫回方法中,資料儲存於非揮發性快取記憶體4中且亦儲存於SSD 5中。
在間接寫回方法中,儲存於非揮發性快取記憶體4中之資料並非一起儲存於SSD 5中。首先將該資料儲存於非揮發性快取記憶體4中,且然後將自非揮發性快取記憶體4推出之資料儲存於SSD 5中。
在第一實施例中,快取控制單元9包含一傳輸單元18、一接收單元19、一寫入單元20及一傳輸單元21。可藉由軟體來實施或者可藉由硬體來實施快取記憶體9之全部或一部分。
傳輸單元18將用於SSD 5之寫入資料及該寫入資料之一位址傳輸至SSD 5。在本實施例中,舉例而言,自傳輸單元18傳輸至SSD 5之位址係一邏輯位址。
接收單元19自SSD 5接收包含指示寫入至待經受廢料收集之一區塊之有效資料之邏輯位址之區塊資訊。
在本實施例中,該區塊資訊可包含使SSD 5中之每一區塊之識別資訊與寫入至每一區塊之資料之識別資訊相關之資訊。
寫入單元20基於自SSD 5接收之區塊資訊以及管理資訊61至64而將由區塊資訊中所包含之邏輯位址指示之有效資料之全部或一部分寫入(轉錄)至除非揮發性記憶體24之外之一記憶體。舉例而言,另一記憶體可係非揮發性快取記憶體4。
舉例而言,在接收到一刪除命令之情況下,寫入單元20將指示係待刪除資料(刪除候選者)之資料之一邏輯位址自區塊資訊中所包含之指示有效資料之邏輯位址排除。因此,可選擇寫入至待經受廢料收集之區塊且並非待刪除資料之有效資料。寫入單元20將選定資料寫入至另一記憶體。
傳輸單元21產生包含指示待刪除資料之邏輯位址之刪除資訊並將該刪除資訊傳輸至SSD 5。舉例而言,該刪除資訊可包含指示區塊資訊中所包含之有效資料之邏輯位址中指示係未被寫入單元20寫入至另一記憶體之刪除目標之資料之一邏輯位址。代替刪除資訊,可將包含待維護資料之邏輯位址之維護資訊自傳輸單元21傳輸至SSD 5。
SSD 5包含一處理器22、一記憶體23及非揮發性記憶體24。
舉例而言,記憶體23儲存各種類型之控制資料,諸如位址轉譯資訊32、有效/無效資訊33及刪除資訊34。記憶體23可係諸如一DRAM或一SRAM之一揮發性記憶體,或者可係一非揮發性記憶體。記憶體23可包含於非揮發性記憶體24中。
處理器22藉由執行儲存於處理器22中之一記憶體中之一程式、儲存於記憶體23中之一程式或儲存於非揮發性記憶體24中之一程式而充當一位址轉譯單元25、一寫入單元26、一有效/無效產生單元27、一選擇單元28、一傳輸單元29、一接收單元30及一廢料收集單元31。
在本實施例中,舉例而言,用以致使處理器22充當位址轉譯單元25、寫入單元26、有效/無效產生單元27、選擇單元28、傳輸單元29、接收單元30及廢料收集單元31之程式可係OS、中間軟體或韌體。在本實施例中,可藉由硬體來實施位址轉譯單元25、寫入單元26、有效/無效產生單元27、選擇單元28、傳輸單元29、接收單元30及廢料收集單元31之全部或一部分。
當自快取控制單元9接收到寫入資料及該寫入資料之邏輯位址 時,位址轉譯單元25產生使寫入資料之邏輯位址與指示儲存該寫入資料的非揮發性記憶體24中之一位置之一實體位址相關之資訊,且將該資訊暫存至位址轉譯資訊32。
在本實施例中,位址轉譯單元25由處理器22實施。然而,位址轉譯單元25可獨立於處理器22而組態。
位址轉譯單元25基於(舉例而言)表形式位址轉譯資訊32而轉譯位址。代替地,可藉由關鍵字-值檢索來轉譯位址。舉例而言,可藉由使用一邏輯位址作為一關鍵字並使用一實體位址作為一值而藉助於關鍵字-值檢索來實施位址轉譯。
寫入單元26將寫入資料寫入至由位址轉譯單元25獲得之實體位址所指示之位置。
有效/無效產生單元27基於(舉例而言)位址轉譯資訊32而產生指示寫入至非揮發性記憶體24之資料之每一項目是有效資料還是無效資料之有效/無效資訊33。然後,有效/無效產生單元27將有效/無效資訊33儲存於記憶體23中。
選擇單元28選擇待經受廢料收集之一區塊。
舉例而言,選擇單元28可自非揮發性記憶體24中之區塊選擇具有最舊寫入時間之一區塊來作為待經受廢料收集之一區塊。
舉例而言,選擇單元28可隨機地自非揮發性記憶體24中之區塊選擇待經受廢料收集之一區塊。
舉例而言,選擇單元28可基於有效/無效資訊33而選擇具有最大無效資料量或具有大於一預定量之無效資料量之一區塊作為待經受廢料收集之一區塊。
舉例而言,選擇單元28可基於有效/無效資訊33及刪除資訊34而選擇具有最大無效資料及待刪除資料量或具有大於一預定量之無效資料及待刪除資料量之一區塊作為待經受廢料收集之一區塊。
傳輸單元29藉由將指示由有效/無效資訊33判定為無效之無效資料之一邏輯位址自指示寫入至待經受廢料收集之區塊之資料之邏輯位址刪除而產生區塊資訊。換言之,該區塊資訊包含使待經受廢料收集之區塊之識別資訊與指示寫入至該區塊之有效資料之邏輯位址相關之資訊。傳輸單元29將該區塊資訊傳輸至快取記憶體控制單元9。
接收單元30自快取記憶體控制單元9接收刪除資訊並將刪除資訊34儲存於非揮發性記憶體24中。
廢料收集單元31基於有效/無效資訊33及儲存於非揮發性記憶體24中之刪除資訊34而將無效資料及待刪除資料自寫入至待經受廢料收集之區塊之資料排除,且僅針對並非待刪除資料之有效資料執行廢料收集。
圖2係展示根據本實施例由資訊處理系統執行之一程序之一實例之一流程圖。
在步驟S201中,傳輸單元18將寫入資料及一邏輯位址傳輸至SSD 5。
在步驟S202中,位址轉譯單元25接收寫入資料及邏輯位址,並將使寫入資料之邏輯位址與一實體位址相關之資訊暫存至位址轉譯資訊32。
在步驟S203中,寫入單元26將寫入資料寫入至由該實體位址指示的非揮發性記憶體24中之一位置。
在步驟S204中,有效/無效產生單元27產生指示寫入至非揮發性記憶體24之每一資料項目是有效資料還是無效資料之有效/無效資訊33,並將有效/無效資訊33儲存於記憶體23中。
在步驟S205中,選擇單元28選擇待經受廢料收集之一區塊。
在步驟S206中,傳輸單元29藉由將指示由有效/無效資訊33指示為無效之無效資料之一邏輯位址自指示寫入至待經受廢料收集之區塊 之資料之邏輯位址刪除而產生區塊資訊,並將該區塊資訊傳輸至快取控制單元9。
在步驟S207中,接收單元19自SSD 5接收區塊資訊。
在步驟S208中,寫入單元20基於自SSD 5接收之區塊資訊以及管理資訊61至64而將由區塊資訊中所包含之邏輯位址指示之資料之全部或一部分寫入至除SSD 5之非揮發性記憶體24之外之一記憶體。
舉例而言,在接收到一刪除命令之情況下,寫入單元20將指示待刪除資料之一邏輯位址自區塊資訊中所包含之邏輯位址排除,並將由該等邏輯位址指示之待維護資料寫入至另一記憶體。
在步驟S209中,傳輸單元21將包含待刪除資料之邏輯位址之刪除資訊傳輸至SSD 5。
在步驟S210中,接收單元30自快取控制單元9接收刪除資訊並將刪除資訊34儲存於記憶體23中。
在步驟S211中,廢料收集單元31基於有效/無效資訊33及刪除資訊34而將無效資料及待刪除資料資料自寫入至待經受廢料收集之區塊之資料排除,且針對並非待刪除資料之有效資料執行廢料收集。
在上文所闡述之本實施例中,快取控制單元9可自SSD 5獲取關於寫入至非揮發性記憶體24之一區塊之資料之資訊。快取控制單元9可藉此辨識資料在非揮發性記憶體24之區塊中之一寫入狀態。舉例而言,在本實施例中,可辨識寫入至非揮發性記憶體24之區塊之資料是有效資料還是無效資料及是否可刪除該資料。
在本實施例中,SSD 5包含用以判定資料是有效資料還是無效資料之有效/無效資訊33及用以判定是否可刪除該資料之刪除資訊34。藉此,可在於SSD 5中執行廢料收集時判定是否將抹除寫入至待經受廢料收集之一區塊之資料。因此,可避免一非必須資料寫入且可增加非揮發性記憶體24之壽命。
在本實施例中,快取控制單元9可防止由自SSD 5接收之區塊資訊中所包含之邏輯位址指示之有效資料當中之刪除目標資料被自非揮發性記憶體24轉錄至另一記憶體。在本實施例中,SSD 5可將並未自快取控制單元9轉錄至另一記憶體之資料(舉例而言,可刪除之無效資料或有效資料)自SSD 5刪除。
在上文所闡述之本實施例中,將與待抹除區塊相關之區塊資訊自SSD 5傳輸至資訊處理裝置17。然而,舉例而言,該區塊資訊可包含使非揮發性記憶體24中之每一區塊與寫入至每一區塊之資料之識別資訊相關之資訊。資訊處理裝置17可藉由自SSD 5接收關係資訊來辨識SSD 5中之區塊與資料之間的儲存關係。
[第二實施例]
在本實施例中闡述包含非揮發性快取記憶體4之一快取記憶體裝置。
圖3係展示根據本實施例之資訊處理裝置35之一組態實例之一方塊圖。
資訊處理裝置17包含一處理器2、一記憶體3及非揮發性快取記憶體4。
非揮發性快取記憶體4包含區塊群組BG1至BG4。非揮發性快取記憶體4具有比SSD 5之存取速度高之一存取速度。
區塊群組(第一群組)BG1包含區塊(第一抹除單位區域)B1,1至B1,K。區塊群組BG1儲存由處理器2存取之資料(亦即,由處理器2使用之資料)。
在本實施例中,當區塊群組BG1滿足一抹除條件(第一抹除條件)時,基於先進先出(FIFO)而自區塊群組BG1中之區塊B1,1至B1,K選擇一待抹除區塊(待廢除或推出區塊)(第一待抹除區域)。
舉例而言,當區塊群組BG1之區塊B1,1至B1,K中之每一者之資料 量超過一預定值時,滿足抹除條件。舉例而言,當寫入至區塊群組BG1之區塊B1,1至B1,K中之每一者之頁數目超過一預定數目時,可滿足抹除條件。
當寫入至基於FIFO而選自區塊B1,1至B1,K之待抹除區塊之資料處於一第一低使用狀態時(舉例而言,當該資料被存取達少於一所設定第一次數或以小於一所設定第一頻率被存取時),將該資料寫入至一區塊群組BG2。相比而言,當寫入至選自區塊B1,1至B1,K之待抹除區塊之資料處於一第一高使用狀態時(舉例而言,當該資料被存取達第一次數或更多或以第一頻率或更大被存取時),將該資料寫入至一區塊群組BG3。寫入至選自區塊B1,1至B1,K之待抹除區塊之資料係每區塊地被抹除(亦即,廢除或推出)。
區塊群組(第二群組)BG2包含區塊(第二抹除單位區域)B2,1至B2,L。區塊群組BG2儲存寫入至選自區塊群組BG1之待抹除區塊之資料中之處於第一低使用狀態之資料。
在本實施例中,當區塊群組BG2滿足一抹除條件(第三抹除條件)時,基於FIFO而自區塊群組BG2中之區塊B2,1至B2,L選擇一待抹除區塊(第三待抹除區域)。
當寫入至依據FIFO而選自區塊B2,1至B2,L之待抹除區塊之資料處於一第三低使用狀態時(舉例而言,當該資料被存取達少於一所設定第三次數或以小於一所設定第三頻率被存取時),抹除該資料。相比而言,當寫入至選自區塊B2,1至B2,L之待抹除區塊之資料處於一第三高使用狀態時(舉例而言,當該資料被存取達第三次數或更多或以第三頻率或更大被存取時),將該資料寫入至一區塊群組BG3。然後,寫入至選自區塊B2,1至B2,L之待抹除區塊之資料被每區塊地抹除。
區塊群組(第三群組)BG3包含區塊(第三抹除單位區域)B3,1至 B3,M。區塊群組BG3儲存寫入至選自區塊群組BG1之待抹除區塊之資料中之處於第一低使用狀態之資料。區塊群組BG3亦儲存寫入至選自區塊群組BG2之待抹除區塊之資料中之處於第三高使用狀態之資料。
在本實施例中,當區塊群組BG3滿足一抹除條件(第二抹除條件)時,基於FIFO而自區塊群組BG3中之區塊B3,1至B3,M選擇一待抹除區塊(第二待抹除區域)。
當寫入至依據FIFO而選自區塊B3,1至B3,M之待抹除區塊之資料處於一第二低使用狀態時(舉例而言,當該資料被存取達少於一所設定第二次數或以小於一所設定第二頻率被存取時),將該資料寫入至區塊群組BG4。相比而言,當寫入至選自區塊B3,1至B3,M之待抹除區塊之資料處於一第二高使用狀態時(舉例而言,當該資料被存取達第二次數或更多或以第二頻率或更大被存取時),再次將該資料寫入至區塊群組BG3中之另一區塊。然後,寫入至選自區塊B3,1至B3,M之待抹除區塊之資料被每區塊地抹除。
區塊群組(第四群組)BG4包含區塊(第四抹除單位區域)B4,1至B4,N。區塊群組BG4儲存寫入至選自區塊群組BG3之待抹除區塊之資料中之處於第二低使用狀態之資料。
在本實施例中,當區塊群組BG4滿足一抹除條件(第四抹除條件)時,基於FIFO而自區塊群組BG4中之區塊B4,1至B4,N選擇一待抹除區塊(第四待抹除區域)。
抹除寫入至依據FIFO而選自區塊B4,1至B4,N之待抹除區塊之資料。
在本實施例中,FIFO用作用於自區塊群組BG1至BG4中之每一者選擇一待抹除區塊之一方法。藉由依據FIFO選擇待抹除區塊,在區塊群組BG1至BG4中之每一者中自具有與最舊寫入時間及寫入次序之一區塊開始循序地執行抹除。然而,舉例而言,可隨機地或基於最近 最少使用(LRU)或最不經常使用(LFU)來選擇待抹除區塊。舉例而言,管理資訊61至64包含資料之識別資訊、指示資料是否為待刪除資料之資訊及資料之使用狀態資訊。可基於管理資訊61至64而選擇具有最大無效資料量之一區塊或具有大於一預定量之一無效資料量之一區塊作為待抹除區塊。舉例而言,可基於管理資訊61至64而選擇具有最大無效資料及待刪除資料(刪除目標資料)量之一區塊或具有大於一預定量之一無效資料及待刪除資料量之一區塊作為待抹除區塊。
在本實施例中,快取控制單元9可基於管理資訊61至64及位址轉譯資訊7而辨識經快取資料之識別資訊(舉例而言,自主機提供之一邏輯位址(舉例而言,邏輯區塊定址))、該資料被寫入至之一位置及該資料之一使用狀態。舉例而言,快取控制單元9可基於管理資訊61至64及位址轉譯資訊7而選擇快取至區塊群組BG1至BG4中之每一者之資料及依據FIFO抹除之一區塊。
處理器2藉由執行儲存於處理器2之一記憶體、記憶體3、非揮發性快取記憶體4或SSD 5中之一程式而充當一位址轉譯單元8及一快取控制單元9。
在本實施例中,舉例而言,用以致使處理器2充當位址轉譯單元8及快取控制單元9之程式可係OS、中間軟體或韌體。在本實施例中,可藉由硬體來實施位址轉譯單元8之全部或一部分或者快取控制單元9之全部或一部分。
位址轉譯單元8產生使寫入資料之一邏輯位址與指示儲存該寫入資料的非揮發性快取記憶體4中之一位置之一實體位址相關之資訊,且將所產生資訊暫存至位址轉譯資訊7。
當自處理器2接收到讀取資料之一邏輯位址時,位址轉譯單元8基於位址轉譯資訊7而將邏輯位址轉譯為實體位址。
快取控制單元9包含一產生單元10、控制單元11至14以及變化單 元15及16。
產生單元10產生對應於非揮發性快取記憶體4中之區塊群組BG1至BG4之管理資訊61至64並將管理資訊61至64寫入至記憶體3。
控制單元11至14分別針對區塊群組BG1至BG4控制資料寫入及區塊抹除。
控制單元11包含一寫入單元111、一判定單元112、一選擇單元113、一判定單元114及一抹除單元115。
寫入單元(第一寫入單元)111將由處理器2存取之資料寫入至區塊群組BG1
判定單元(第一判定單元)112判定區塊群組BG1是否滿足抹除條件(第一抹除條件)。
當區塊群組BG1滿足抹除條件時,選擇單元(第一選擇單元)113自區塊群組BG1選擇一待抹除區塊(第一待抹除區域)。
判定單元(第二判定單元)114基於管理資訊61而判定寫入至待抹除區塊之每一資料項目是處於第一高使用狀態還是第一低使用狀態及該資料之每一項目是否為待刪除資料。
當寫入至待抹除區塊之每一資料項目可因每一資料項目被寫入至區塊群組BG2至BG3或係待刪除資料而被廢除時,抹除單元(第一抹除單元)115抹除待抹除區塊。
控制單元12包含一寫入單元121、一判定單元122、一選擇單元123、一判定單元124及一抹除單元125。
當判定單元114判定寫入至區塊群組BG1之待抹除區塊之資料處於第一低使用狀態且並非待刪除資料時,寫入單元(第二寫入單元)121將該資料寫入至區塊群組BG2
判定單元(第五判定單元)122判定區塊群組BG2是否滿足抹除條件(第三抹除條件)。
當區塊群組BG2滿足抹除條件時,選擇單元(第三選擇單元)123自區塊群組BG2選擇一待抹除區塊(第三待抹除區域)。
判定單元124基於管理資訊62而判定寫入至待抹除區塊之每一資料項目是處於第三高使用狀態還是第三低使用狀態及該資料之每一項目是否為待刪除資料。
當寫入至待抹除區塊之資料處於第三高使用狀態且並非待刪除資料、被寫入至區塊群組BG3時,抹除單元(第二抹除單元)125抹除寫入至待抹除區塊之資料。
控制單元13包含一寫入單元131、一判定單元132、一選擇單元133、一判定單元134、一寫入單元135、一抹除單元136及一寫入單元137。
當判定單元114判定寫入至區塊群組BG1之待抹除區塊之資料處於第一高使用狀態且並非待刪除資料時,寫入單元(第三寫入單元)131將該資料寫入至區塊群組BG3
當寫入至區塊群組BG2之資料處於第三高使用狀態且並非待刪除資料時,寫入單元(第六寫入單元)137將該資料寫入至區塊群組BG3。舉例而言,當寫入至區塊群組BG2之資料係待由處理器2存取之資料時,寫入單元137可將區塊群組BG2之待存取資料寫入至區塊群組BG3
判定單元(第三判定單元)132判定區塊群組BG3是否滿足抹除條件(第二抹除條件)。
當區塊群組BG3滿足抹除條件時,選擇單元(第二選擇單元)133自區塊群組BG3選擇一待抹除區塊(第二待抹除區域)。
判定單元(第四判定單元)134基於管理資訊63而判定寫入至待抹除區塊之每一資料項目是處於第二高使用狀態還是第二低使用狀態及該資料之每一項目是否為待刪除資料。
當寫入至區塊群組BG3之待抹除區塊之資料被判定為處於第二高使用狀態且並非待刪除資料時,寫入單元(第五寫入單元)135再次將該資料寫入至區塊群組BG3中之另一可寫入區塊。
當寫入至待抹除區塊之資料之每一項目可因每一資料項目被寫入至區塊群組BG4、再次被寫入至區塊群組BG3或係待刪除資料而被廢除時,抹除單元(第三抹除單元)136抹除待抹除區塊。
控制單元14包含一寫入單元141、一判定單元142、一選擇單元143及一抹除單元144。
當判定單元134判定寫入至區塊群組BG3之待抹除區塊之資料處於第二低使用狀態且並非待刪除資料時,寫入單元(第四寫入單元)141將該資料寫入至區塊群組BG4
判定單元(第六判定單元)142判定區塊群組BG4是否滿足抹除條件(第四抹除條件)。
當區塊群組BG4滿足抹除條件(第四抹除條件)時,選擇單元(第四選擇單元)143自區塊群組BG4選擇一待抹除區塊(第四待抹除區域)。
抹除單元(第四抹除單元)144抹除寫入至區塊群組BG4之待抹除區塊之資料。
當寫入至區塊群組BG2之資料達到第三高使用狀態時,變化單元(第一變化單元)15增加區塊群組BG1中所包含之區塊之數目且減少區塊群組BG3中所包含之區塊之數目。舉例而言,當寫入至區塊群組BG2之資料由處理器2存取時,變化單元15增加區塊群組BG1中所包含之區塊之數目且減少區塊群組BG3中所包含之區塊之數目。
當寫入至區塊群組BG4之資料達到第四高使用狀態時,變化單元(第二變化單元)16增加區塊群組BG3中所包含之區塊之數目且減少區塊群組BG1中所包含之區塊之數目。舉例而言,當寫入至區塊群組BG4之資料由處理器2存取時,變化單元16增加區塊群組BG3中所包 含之區塊之數目且減少區塊群組BG1中所包含之區塊之數目。
圖4係展示根據本實施例之第一快取控制之一實例之一流程圖。圖4例示性地展示其中將資料寫入至區塊群組BG1、將資料寫入至區塊群組BG2或BG3並抹除區塊群組BG1中之一待抹除區塊之一程序。
在步驟S401中,寫入單元111將由處理器2存取之資料寫入至區塊群組BG1
在步驟402中,判定單元112判定區塊群組BG1是否滿足抹除條件。
當區塊群組BG1不滿足抹除條件時,該程序繼續進行至步驟S406。
當區塊群組BG1滿足抹除條件時,在步驟S403中,選擇單元113自區塊群組BG1選擇一待抹除區塊。
在步驟S404中,判定單元114基於管理資訊61而判定寫入至待抹除區塊之每一資料項目是處於第一高使用狀態還是第一低使用狀態及該資料之每一項目是否為待抹除資料(刪除目標資料)。
當資料項目處於第一低使用狀態且資料並非待刪除資料(非刪除目標資料)時,在步驟S501中,寫入單元121將該資料項目寫入至區塊群組BG2
當資料項目處於第一高使用狀態且並非待刪除資料時,在步驟S601中,寫入單元131將該資料項目寫入至區塊群組BG3
當寫入至待抹除區塊之資料之每一項目可因資料之每一項目被寫入至區塊群組BG2或區塊群組BG3或係待刪除資料而被廢除時,在步驟S405中,抹除單元115抹除待抹除區塊。
在步驟S406中,快取控制單元9判定是否將結束該程序。
當快取控制單元9不結束該程序時,該程序返回至步驟S401。
當快取控制單元9結束該程序時,該程序便結束。
圖5係展示根據本實施例之第二快取控制之一實例之一流程圖。圖5例示性地展示其中將資料寫入至區塊群組BG2並抹除區塊群組BG2中之一待抹除區塊之一程序。
當在步驟S404中,寫入至區塊群組BG1之待抹除區塊之資料被判定為處於第一低使用狀態且並非待刪除資料時,在步驟S501中,寫入單元121將該資料寫入至區塊群組BG2
在步驟S502中,判定單元122判定區塊群組BG2是否滿足抹除條件。
當區塊群組BG2不滿足抹除條件時,該程序繼續進行至步驟S506。
當區塊群組BG2滿足抹除條件時,在步驟S503中,選擇單元123自區塊群組BG2選擇一待抹除區塊。
在步驟S504中,判定單元124基於管理資訊62而判定寫入至待抹除區塊之每一資料項目是處於第三高使用狀態還是第三低使用狀態及該資料之每一項目是否為待刪除資料。
當資料項目處於第三低使用狀態或係待刪除資料時,該程序繼續進行至步驟S505。
當資料項目處於第三高使用狀態且並非待刪除資料時,在步驟S601中,寫入單元137將該資料項目寫入至區塊群組BG3
在步驟S505中,抹除單元125抹除寫入至區塊群組BG2之待抹除區塊之資料。
在步驟S506中,快取控制單元9判定是否將結束該程序。
當快取控制單元9不結束該程序時,該程序返回至步驟S501。
當快取控制單元9結束該程序時,該程序便結束。
圖6係展示根據本實施例之第三快取控制之一實例之一流程圖。圖6例示性地展示自將資料寫入至區塊群組BG3至抹除區塊群組BG3 中之資料之一程序。
當在步驟S404中,寫入至區塊群組BG1之待抹除區塊之資料被判定為處於第一高使用狀態且並非待刪除資料時,在步驟S601中,寫入單元131將該資料寫入至區塊群組BG3。當在步驟S304中,寫入至區塊群組BG2之資料被判定為處於第三高使用狀態(舉例而言,該資料由處理器2存取)且並非待刪除資料時,寫入單元137將區塊群組BG2之資料寫入至區塊群組BG3
在步驟S602中,判定單元132判定區塊群組BG3是否滿足抹除條件。
當區塊群組BG3不滿足抹除條件時,該程序繼續進行至步驟S607。
當區塊群組BG3滿足抹除條件時,在步驟S603中,選擇單元133自區塊群組BG3選擇一待抹除區塊。
在步驟S604中,判定單元134基於管理資訊63而判定寫入至待抹除區塊之每一資料項目是處於第二高使用狀態還是第二低使用狀態及該資料之每一項目是否為待刪除資料。
當資料項目處於第二低使用狀態且並非待刪除資料時,在步驟S701中,寫入單元141將該資料寫入至區塊群組BG4
當資料處於第二高使用狀態且並非待刪除資料時,在步驟S605中,寫入單元135再次將寫入至區塊群組BG3之待抹除區塊之資料寫入至區塊群組BG3中之另一區塊。
在步驟S606中,當寫入至待抹除區塊之資料之每一項目可因每一資料項目被寫入至區塊群組BG4、再次被寫入至區塊群組BG3或係待刪除資料而被廢除時,抹除單元136抹除待抹除區塊。
在步驟S607中,快取控制單元9判定是否將結束該程序。
當快取控制單元9不結束該程序時,該程序返回至步驟S601。
當快取控制單元9結束該程序時,該程序便結束。
圖7係展示根據本實施例之第四快取控制之一實例之一流程圖。圖7例示性地展示其中將資料寫入至區塊群組BG4並抹除區塊群組BG4中之資料之一程序。
當在步驟S604中,寫入至區塊群組BG3之待抹除區塊之資料被判定為處於第二低狀態且並非待刪除資料時,在步驟S701中,寫入單元141將該資料寫入至區塊群組BG4
在步驟S702中,判定單元142判定區塊群組BG4是否滿足抹除條件。
當區塊群組BG4不滿足抹除條件時,該程序繼續進行至步驟S705。
當區塊群組BG4滿足抹除條件時,在步驟S703中,選擇單元143自區塊群組BG4選擇一待抹除區塊。
在步驟S704中,抹除單元144抹除寫入至區塊群組BG4中之待抹除區塊之資料。
在步驟S705中,快取控制單元9判定是否將結束該程序。
當快取控制單元9不結束該程序時,該程序返回至步驟S701。
當快取控制單元9結束該程序時,該程序便結束。
在本實施例之區塊群組BG1中,舉例而言,資料被首先循序寫入至區塊B1,1、接下來循序寫入至區塊B1,2,且然後類似地寫入至區塊B1,3至B1,K。當區塊群組BG1中所包含之區塊B1,1至B1,K之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B1,1,且再次將資料循序寫入至經抹除區塊B1,1。在完成至區塊B1,1之寫入之後,依據FIFO而抹除區塊B1,2。然後,再次將資料循序寫入至經抹除區塊B1,2。重複相同控制。
在區塊群組BG1中,基於管理資訊61而判定寫入至區塊群組BG1 中之待抹除區塊之資料是否被存取(舉例而言)達少於第一次數或以小於第一頻率被存取。當寫入至區塊群組BG1中之待抹除區塊之資料被存取達少於第一次數或以小於第一頻率被存取時,選擇區塊群組BG2作為資料之一寫入目的地。
相比而言,當寫入至區塊群組BG1中之待抹除區塊之資料被存取達第一次數或更多或者以第一頻率或更大被存取時,選擇區塊群組BG3作為資料之一寫入目的地。
當寫入至區塊群組BG1中之待抹除區塊之資料係待刪除資料時,廢除該資料。
在本實施例之區塊群組BG2中,來自區塊群組BG1之處於第一低使用狀態之資料被首先循序寫入至區塊B2,1、接下來循序寫入至區塊B2,2,且然後類似地寫入至區塊B2,3至B2,L。當區塊群組BG2中所包含之區塊B2,1至B2,L之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B2,1且再次將資料循序寫入至經抹除區塊B2,1。在完成至區塊B2,1之寫入之後,依據FIFO而抹除區塊B2,2。然後,將資料循序寫入至經抹除區塊B2,2。重複相同控制。
在區塊群組BG2中,基於管理資訊62而判定寫入至區塊群組BG2中之待抹除區塊之資料是否被存取(舉例而言)達少於第三次數或以小於第三頻率被存取。當寫入至區塊群組BG2中之待抹除區塊之資料被存取達少於第三次數或以小於第三頻率被存取時,抹除該資料。
相比而言,當寫入至區塊群組BG2中之待抹除區塊之資料被存取達第三次數或更多或者以第三頻率或更大被存取時,選擇區塊群組BG3作為資料之一寫入目的地。
當寫入至區塊群組BG2中之待抹除區塊之資料係待刪除資料時,廢除該資料。
在本實施例之區塊群組BG3中,來自區塊群組BG1之處於第一高 使用狀態之資料、來自區塊群組BG2之處於第三高使用狀態之資料或來自區塊群組BG3之重新寫入資料被首先循序寫入至區塊B3,1、接下來循序寫入至區塊B3,2,且然後類似地寫入至區塊B3,3至B3,M。當區塊群組BG3中所包含之區塊B3,1至B3,M之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B3,1且再次將資料循序寫入至經抹除區塊B3,1。在完成至區塊B3,1之寫入之後,依據FIFO而抹除區塊B3,2。然後,再次將資料循序寫入至經抹除區塊B3,2。重複相同控制。
在區塊群組BG3中,基於管理資訊63而判定寫入至區塊群組BG3中之待抹除區塊之資料是否被存取(舉例而言)達少於第二次數或以小於第二頻率被存取。當寫入至區塊群組BG3中之待抹除區塊之資料被存取達少於第二次數或以小於第二頻率被存取時,選擇區塊群組BG4作為資料之一寫入目的地。
相比而言,當寫入至區塊群組BG3中之待抹除區塊之資料被存取達第二次數或更多或者以第二頻率或更大被存取時,再次將資料寫入至區塊群組BG3
當寫入至區塊群組BG3中之待抹除區塊之資料係待刪除資料時,廢除該資料。
在本實施例之區塊群組BG4中,來自區塊群組BG3之處於第二低使用狀態之資料被首先循序寫入至區塊B4,1、接下來循序寫入至區塊B4,2,且然後類似地寫入至區塊B4,3至B4,N。當區塊群組BG4中所包含之區塊B4,1至B4,N之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B4,1且再次將資料循序寫入至經抹除區塊B4,1。在完成至區塊B4,1之寫入之後,依據FIFO而抹除區塊B4,2。然後,將資料循序寫入至經抹除區塊B4,2。重複相同控制。
在本實施例中,控制單元14可判定寫入至區塊群組BG4之一待抹 除區塊之資料是否處於一第五高使用狀態。當寫入至區塊群組BG4之待抹除區塊之資料被判定為處於第五高使用狀態時,就將該資料維護於非揮發性快取記憶體4中而言,控制單元13可將該資料寫入至區塊群組BG3之一可寫入目的地區塊。在此情況中,處理器2可減小區塊群組BG1之一大小。
在本實施例中,基於四個區塊群組BG1至BG4而管理資料。
舉例而言,在區塊群組BG1中管理由處理器2存取一次之第一資料(經一次存取資料)。
舉例而言,若區塊群組BG1中之第二資料由處理器2存取兩次或更多次且基於FIFO而被自區塊群組BG1推出,則將第二資料自區塊群組BG1移動至區塊群組BG3
應注意,在本實施例中,區塊群組BG1之大小大於區塊群組BG3之大小。
舉例而言,當區塊群組BG1中之第三資料在未由處理器2存取之情況下基於FIFO而被自區塊群組BG1推出時,將第三資料自區塊群組BG1移動至區塊群組BG2
舉例而言,若區塊群組BG3中之第四資料在未由處理器2存取之情況下基於FIFO而被自區塊群組BG3清除,則將第四資料自區塊群組BG3移動至區塊群組BG4
舉例而言,在區塊群組BG2及BG4中,可快取後設資料而非快取資料。後設資料包含與資料相關之資訊。換言之,後設資料係關於資料之高度抽象且額外之資料且被附加至該資料。
在本實施例中,舉例而言,當第五資料儲存於區塊群組BG1中時,可基於FIFO而推出區塊群組BG2中之第六資料。
舉例而言,當區塊群組BG1中之第七資料被存取且基於FIFO而被自區塊群組BG1推出時,可將第七資料自區塊群組BG1移動至區塊群 組BG3,可基於FIFO而將區塊群組BG3中之第八資料自區塊群組BG3移動至區塊群組BG4,且可基於FIFO而自區塊群組BG4推出區塊群組BG4中之第九資料。
舉例而言,當存取區塊群組BG2中之第十資料時,會增加區塊群組BG1之大小。若區塊群組BG1之大小增加,則基於FIFO而將區塊群組BG3中之第十一資料移動至區塊群組BG4
舉例而言,當區塊群組BG4中之第十二資料被存取且基於FIFO而被自區塊群組BG4推出時,將第十二資料移動至區塊群組BG3,且會減小區塊群組BG1之大小。
在上文所闡述之本實施例中,一維護判定對是否將維護一區塊單位之資料進行判定,一傳送寫入將待維護之區塊資料寫入至一目的地區塊,且寫入至非揮發性快取記憶體4之資料係每區塊地被抹除。
在本實施例中,可增加一有效快取容量,可提升非揮發性快取記憶體4之一命中率,且可增加資訊處理裝置17之一速度。
在本實施例中,在不針對非揮發性快取記憶體4執行廢料收集之情況下,可避免效能之一降低。由於廢料收集並非是必須的,因此可減少至非揮發性快取記憶體4之寫入次數且可增加非揮發性快取記憶體4之壽命。此外,由於廢料收集並非是必須的,因此不需要保證有儲備區域(provisioning area)。因此,可增加可用作一快取記憶體之一資料容量,且可改良使用效率。
舉例而言,當使用非揮發性記憶體作為一快取記憶體且無論區塊之邊界如何都廢除資料時,可頻繁地執行廢料收集以將非揮發性記憶體之一區塊中之有效資料移動至另一區塊。在本實施例中,不需要在非揮發性快取記憶體4中執行廢料收集。因此,如上文所闡述,在本實施例中,可增加非揮發性快取記憶體4之壽命。
[第三實施例]
在本實施例中,進一步詳細地解釋包含第一實施例及第二實施例中所解釋之資訊處理系統17及SSD 5之資訊處理系統35。
圖8係展示根據本實施例之資訊處理系統35之一詳細結構之一實例之一方塊圖。
資訊處理系統35包含資訊處理裝置17及一記憶體系統37。
根據第一實施例及第二實施例之SSD 5對應於記憶體系統37。
SSD 5之處理器22對應於一CPU 43B。
位址轉譯資訊32對應於一LUT(查找表)45。
記憶體23對應於一DRAM 47。
資訊處理裝置17充當一主機裝置。
記憶體系統37之一控制器36包含一前端4F及一後端4B。
前端(主機通信單元)4F包含一主機介面41、主機介面控制器42、編碼/解碼單元(進階加密標準(AES))44及CPU 43F。
主機介面41與資訊處理裝置17通信以交換請求(寫入命令、讀取命令、抹除命令)、LBA及資料。
主機介面控制器(控制單元)42基於CPU 43F之控制而控制主機介面41之通信。
編碼/解碼單元44將在一資料寫入操作中自主機介面控制器42傳輸之寫入資料(純文字)編碼。編碼/解碼單元44將在一資料讀取操作中自後端4B之讀取緩衝器RB傳輸之經編碼讀取資料解碼。應注意,可按照臨時命令而在不使用編碼/解碼單元44之情況下執行寫入資料及讀取資料之傳輸。
CPU 43F控制前端4F之以上組件41、42及44,以控制前端4F之整個功能。
後端(記憶體通信單元)4B包含一寫入緩衝器WB、讀取緩衝器RB、LUT 45、DDRC 46、DRAM 47、DMAC 48、ECC 49、隨機產生 器RZ、NANDC 50及CPU 43B。
寫入緩衝器(寫入資料傳送單元)WB暫時地儲存自資訊處理裝置17傳輸之寫入資料。具體而言,寫入緩衝器WB暫時地儲存該資料直至其達到適合於非揮發性記憶體24之一預定資料大小為止。
讀取緩衝器(讀取資料傳送單元)RB暫時地儲存自非揮發性記憶體24讀取之讀取資料。具體而言,讀取緩衝器RB將讀取資料重新配置為適合於資訊處理裝置17之次序(由資訊處理裝置17指定之邏輯位址LBA之次序)。
LUT 45係用以將邏輯位址一LBA轉譯成一實體位址PBA(實體區塊定址)之一資料。
DDRC 46控制DRAM 47中之雙倍資料速率(DDR)。
DRAM 47係儲存(舉例而言)LUT 45之一非揮發性記憶體。
直接記憶體存取控制器(DMAC)48經由一內部匯流排IB傳送寫入資料及讀取資料。在圖8中,展示了僅一單個DMAC 48;然而,控制器36可包含兩個或兩個以上DMAC 48。DMAC 48可設定於控制器36內部之各種位置中。
ECC(錯誤校正單元)49給自寫入緩衝器WB傳輸之寫入資料添加一錯誤校正碼(ECC)。當將讀取資料傳輸至讀取緩衝器RB時,若必要,則ECC 49使用所添加ECC來校正自非揮發性記憶體24讀取之讀取資料。
在資料寫入操作中,隨機產生器RZ(或擾碼器)以一方式散佈寫入資料,使得該寫入資料不被偏向於某一頁中或不被偏向於非揮發性記憶體24之一字線方向上。藉由以此方式散佈寫入資料,可使寫入次數標準化且可延長非揮發性記憶體24之記憶體胞元MC之胞元壽命。因此,可改良非揮發性記憶體24之可靠性。此外,在資料讀取操作中,自非揮發性記憶體24讀取之讀取資料會通過隨機產生器RZ。
NAND控制器(NANDC)50使用複數個通道(圖中展示了四個通道CH0至CH3)來並行地存取非揮發性記憶體24以滿足對某一速度之一需求。
CPU 43B控制後端4B之以上每一組件(45至50及RZ),以控制後端4B之整個功能。
應注意,控制器36之結構係一實例且並不意欲由其進行限制。
圖9係展示根據本實施例之一儲存系統之一實例之一透視圖。
一儲存系統100包含記憶體系統37來作為一SSD。
舉例而言,記憶體系統37係外部大小將係大約20mm×30mm之一相對小模組。應注意,記憶體系統37之大小及尺度並不限於此且可任意地改變成各種大小。
此外,記憶體系統37可適用於資訊處理裝置17,以作為用於在一公司(企業)或類似地方中所採用之一資料中心或一雲端計算系統中之一伺服器。因此,記憶體系統37可係一企業SSD(eSSD)。
舉例而言,記憶體系統37包含向上開口之複數個連接器(舉例而言,插槽)38。每一連接器38皆係一串列附接SCSI(SAS)連接器或類似物。藉助SAS連接器,可經由6Gbps之一雙埠在資訊處理裝置17與每一記憶體系統37之間建立一高速相互通信。應注意,連接器38可係一快速PCI(PCIe)或快速NVM(NVMe)。
複數個記憶體系統37個別地附接至資訊處理裝置17之連接器38且被以一種配置形式支撐使得其沿一大致垂直方向站立。使用此結構,複數個記憶體系統37可被共同地安裝成一緊湊大小,且可使記憶體系統37小型化。此外,本實施例之每一記憶體系統37之形狀係2.5英吋之小外觀尺寸(SFF)。由於此形狀,記憶體系統37可與一企業HDD(eHDD)相容且可達成與eHDD之簡單系統相容性。
應注意,記憶體系統37並不限於在一企業HDD中使用。舉例而 言,記憶體系統37可用作一消費型電子裝置(諸如一筆記型可攜式電腦或一平板電腦終端機)之一記憶體媒體。
如自上文可理解,具有本實施例之結構之資訊處理系統35及儲存系統100可在具有第二實施例之相同優點之情況下達成一大容量儲存優點。
根據本實施例之記憶體系統37之結構可應用於根據第一實施例之資訊處理裝置17。舉例而言,根據第一實施例之處理器2可對應於CPU 43B。位址轉譯資訊7可對應於LUT 45。記憶體3對應於DRAM 47。非揮發性快取記憶體4可對應於非揮發性記憶體24。
儘管已闡述了某些實施例,但此等實施例係僅以實例方式呈現的且並不意欲限制本發明之範疇。實際上,本文中所闡述之新穎實施例可以多種其他形式來體現;此外,可在不背離本發明之精神之情況下對本文中所闡述之實施例之形式做出各種省略、替代及改變。意欲使隨附申請專利範圍及其等效內容涵蓋此類將歸屬於本發明之範疇及精神內之形式或修改。
3‧‧‧記憶體
4‧‧‧非揮發性快取記憶體
5‧‧‧固態磁碟機
7‧‧‧位址轉譯資訊
9‧‧‧快取控制單元/快取記憶體/快取記憶體控制單元
17‧‧‧資訊處理裝置
18‧‧‧傳輸單元
19‧‧‧接收單元
20‧‧‧寫入單元
21‧‧‧傳輸單元
22‧‧‧處理器
23‧‧‧記憶體
24‧‧‧非揮發性記憶體
25‧‧‧位址轉譯單元
26‧‧‧寫入單元
27‧‧‧產生單元/有效/無效產生單元
28‧‧‧選擇單元
29‧‧‧傳輸單元
30‧‧‧接收單元
31‧‧‧廢料收集單元
32‧‧‧位址轉譯資訊
33‧‧‧有效/無效資訊
34‧‧‧刪除資訊
35‧‧‧資訊處理系統
61‧‧‧管理資訊/清單
64‧‧‧管理資訊/清單

Claims (10)

  1. 一種記憶體裝置,其包括:一非揮發性記憶體,其包含複數個抹除單位區域,該等抹除單位區域中之每一者包含複數個寫入單位區域;一位址轉譯單元,其產生使寫入至該非揮發性記憶體之寫入資料之一邏輯位址與指示該寫入資料在該非揮發性記憶體中之一寫入位置之一實體位址相關之位址轉譯資訊;一產生單元,其產生指示寫入至該複數個抹除單位區域之資料是有效資料還是無效資料之有效/無效資訊;及一接收單元,其接收包含指示該抹除單位區域中之待刪除資料之一邏輯位址之刪除資訊。
  2. 如請求項1之記憶體裝置,其中該有效/無效資訊包含使該抹除單位區域之識別資訊與指示寫入至該抹除單位區域之該有效資料或該無效資料之一邏輯位址相關之資訊,且該刪除資訊包含使該抹除單位區域之該識別資訊與指示寫入至該抹除單位區域之該待刪除資料之該邏輯位址相關之資訊。
  3. 如請求項1之記憶體裝置,其進一步包括:一選擇單元,其自該複數個抹除單位區域選擇待經受廢料收集之一抹除單位區域;及一傳輸單元,其基於該有效/無效資訊而產生包含指示寫入至該待經受廢料收集之抹除單位區域之有效資料之一邏輯位址之區域資訊,並將該區域資訊傳輸至一外部。
  4. 如請求項1之記憶體裝置,其中在其中執行對寫入至該非揮發性記憶體之該資料之更新之一 情況中,該有效資料係經更新資料,且在其中執行該更新之該情況中,該無效資料係未經更新之資料,且該待刪除資料係針對其發佈一刪除命令之資料。
  5. 如請求項3之記憶體裝置,其中該選擇單元自該複數個抹除單位區域選擇具有一最舊寫入時間之一抹除單位區域作為該待經受廢料收集之抹除單位區域。
  6. 如請求項3之記憶體裝置,其中該選擇單元隨機地自該複數個抹除單位區域選擇該待經受廢料收集之抹除單位區域。
  7. 如請求項3之記憶體裝置,其中該選擇單元基於該有效/無效資訊而自該複數個抹除單位區域選擇具有最大量之該無效資料之一抹除單位區域或具有大於一預定量之量的該無效資料之一抹除單位區域作為該待經受廢料收集之抹除單位區域。
  8. 如請求項3之記憶體裝置,其中該選擇單元基於該有效/無效資訊及該刪除資訊而自該複數個抹除單位區域選擇具有最大量之該無效資料及該待刪除資料之一抹除單位區域或具有大於一預定量之量的該無效資料及該待刪除資料之一抹除單位區域作為該待經受廢料收集之抹除單位區域。
  9. 如請求項1之記憶體裝置,其進一步包括:一揮發性記憶體,其儲存該刪除資訊。
  10. 一種非暫態電腦可讀取記錄媒體,其儲存致使一電腦充當以下各項之一程式:一位址轉譯單元,其產生使寫入至一非揮發性記憶體之寫入 資料之一邏輯位址與指示該寫入資料在該非揮發性記憶體中之一寫入位置之一實體位址相關之位址轉譯資訊,該非揮發性記憶體包含複數個抹除單位區域,該等抹除單位區域中之每一者包含複數個寫入單位區域;一產生單元,其產生指示寫入至該複數個抹除單位區域之資料是有效資料還是無效資料之有效/無效資訊;及一接收單元,其接收包含指示該複數個抹除單位區域中之待刪除資料之一邏輯位址之刪除資訊。
TW104114943A 2014-12-29 2015-05-11 記憶體裝置及非暫態電腦可讀取記錄媒體 TW201624490A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462097532P 2014-12-29 2014-12-29
JP2015038998A JP6482322B2 (ja) 2014-12-29 2015-02-27 メモリ装置及びプログラム
US14/656,506 US10120793B2 (en) 2014-12-29 2015-03-12 Memory device and non-transitory computer readable recording medium

Publications (1)

Publication Number Publication Date
TW201624490A true TW201624490A (zh) 2016-07-01

Family

ID=56359595

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104114943A TW201624490A (zh) 2014-12-29 2015-05-11 記憶體裝置及非暫態電腦可讀取記錄媒體

Country Status (4)

Country Link
US (1) US20230342294A1 (zh)
JP (3) JP6482322B2 (zh)
CN (1) CN106205707B (zh)
TW (1) TW201624490A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102530583B1 (ko) * 2017-10-31 2023-05-09 삼성전자주식회사 저장 장치 및 메모리 시스템
JP7102166B2 (ja) * 2018-02-23 2022-07-19 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US11836035B2 (en) 2021-08-06 2023-12-05 Western Digital Technologies, Inc. Data storage device with data verification circuitry

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008057557A2 (en) * 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置
US8977805B2 (en) * 2009-03-25 2015-03-10 Apple Inc. Host-assisted compaction of memory blocks
JP2011090496A (ja) * 2009-10-22 2011-05-06 Hitachi Ltd 半導体記憶装置および制御方法
JP2011128998A (ja) * 2009-12-18 2011-06-30 Toshiba Corp 半導体記憶装置
US9026716B2 (en) * 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
JP2012123499A (ja) * 2010-12-07 2012-06-28 Toshiba Corp メモリシステム
JP5687648B2 (ja) * 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
KR101663437B1 (ko) * 2012-08-23 2016-10-14 애플 인크. 메모리 블록들의 호스트-지원형 압축
KR102053865B1 (ko) 2013-03-15 2019-12-09 삼성전자주식회사 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템
JP6008325B2 (ja) 2013-05-17 2016-10-19 学校法人 中央大学 データ記憶システムおよびその制御方法

Also Published As

Publication number Publication date
JP2016126738A (ja) 2016-07-11
JP6806819B2 (ja) 2021-01-06
JP6482322B2 (ja) 2019-03-13
JP2019106197A (ja) 2019-06-27
JP7030942B2 (ja) 2022-03-07
JP2021047889A (ja) 2021-03-25
CN106205707B (zh) 2019-10-22
US20230342294A1 (en) 2023-10-26
CN106205707A (zh) 2016-12-07

Similar Documents

Publication Publication Date Title
US10303599B2 (en) Memory system executing garbage collection
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
US9891825B2 (en) Memory system of increasing and decreasing first user capacity that is smaller than a second physical capacity
US20150169465A1 (en) Method and system for dynamic compression of address tables in a memory
US11726906B2 (en) Memory device and non-transitory computer readable recording medium
US20230342294A1 (en) Memory device and non-transitory computer readable recording medium
US20230281118A1 (en) Memory system and non-transitory computer readable recording medium
JP6689325B2 (ja) メモリ装置の制御方法
JP6595654B2 (ja) 情報処理装置
US10331551B2 (en) Information processing device and non-transitory computer readable recording medium for excluding data from garbage collection
US10474569B2 (en) Information processing device including nonvolatile cache memory and processor
JP6276208B2 (ja) メモリシステム及びプログラム