TW202314510A - 儲存裝置及其操作方法 - Google Patents
儲存裝置及其操作方法 Download PDFInfo
- Publication number
- TW202314510A TW202314510A TW111119340A TW111119340A TW202314510A TW 202314510 A TW202314510 A TW 202314510A TW 111119340 A TW111119340 A TW 111119340A TW 111119340 A TW111119340 A TW 111119340A TW 202314510 A TW202314510 A TW 202314510A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- superblock
- state
- small
- die
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
根據本發明的一個實施例的儲存裝置可以包括:記憶體裝置,包括多個記憶體晶元;以及記憶體控制器,以超級區塊為單位控制所述記憶體裝置,所述超級區塊包括所述記憶體裝置中包括的兩個以上的記憶體區塊,其中超級區塊中的一個以上的超級區塊可以是包括多個小的多晶元區的超級區塊,所述小的多晶元區包括不同的記憶體晶元中包括的每個記憶體區塊的一部分,所述記憶體控制器可以回應於在有效頁面接收的垃圾回收執行請求在所述記憶體裝置內的所述超級區塊中選擇犧牲超級區塊,並且所述垃圾回收執行請求可以包括關於所述小的多晶元區中包括的有效頁面的資訊。
Description
本發明關於一種電子裝置,更具體地,本發明關於一種儲存裝置及其操作方法。
儲存裝置將從主機接收的邏輯位址轉換為實體位址並使用,因此,主機中的邏輯區域和儲存裝置的實體區域是相互關聯的。因此,為了提高電子裝置的性能,需要一種能夠互補地控制主機和儲存裝置的新裝置或方法。
本發明的實施例提供了一種能夠根據每個資料的特性進行有效管理的儲存裝置及其操作方法。
根據本發明的實施例的儲存裝置可以包括:記憶體裝置,包括多個記憶體晶元;以及記憶體控制器,以超級區塊為單位控制所述記憶體裝置,所述超級區塊包括所述記憶體裝置中包括的兩個以上的記憶體區塊,其中超級區塊中的一個以上的超級區塊可以是包括多個小的多晶元區的超級區塊,所述小的多晶元區包括不同的記憶體晶元中包括的每個記憶體區塊的一部分,所述記憶體控制器可以回應於在有效頁面接收的垃圾回收執行請求在所述記憶體裝置內的所述超級區塊中選擇犧牲超級區塊,並且所述垃圾回收執行請求可以包括關於所述小的多晶元區中包括的有效頁面的資訊。
根據本發明的操作方法是一種儲存裝置的操作方法,所述儲存裝置包括:記憶體裝置,包括多個記憶體晶元;以及記憶體控制器,以超級區塊為單位控制所述記憶體裝置,所述超級區塊包括所述記憶體裝置中包括的兩個以上的記憶體區塊,所述儲存裝置的操作方法可以包括以下步驟:在有效頁面接收垃圾回收執行請求;以及基於關於所述垃圾回收執行請求中包括的有效頁面的資訊從所述記憶體裝置內的所述超級區塊中選擇犧牲超級區塊,其中所述超級區塊中的一個以上的超級區塊可以是包括多個小的多晶元區的超級區塊,所述小的多晶元區包括不同的記憶體晶元中包括的每個記憶體區塊的一部分。
根據本發明的實施例的控制器的操作方法可以包括以下步驟:回應於與資訊一起提供的請求,選擇犧牲組,所述犧牲組由區域組成,每個區域由部分包括在記憶體裝置中的每個晶元的每個平面中的每個儲存區塊中的一個以上的頁面構成;以及控制記憶體裝置以對所述犧牲組執行垃圾回收操作,所述犧牲組中的每個區域是處於準備重置(ready to reset)狀態的第一區域或處於滿(full)狀態的第二區域,選擇所述犧牲組的步驟可以包括以下步驟:根據每個組中包括的第一區域的數量計算記憶體裝置中包括第一區域和第二區域的每個組的成本;在包括在相應的一個組中的第二區域中,隨著包括在所述資訊中的有效頁面的數量增加,降低成本;以及根據所述組的成本選擇一個犧牲組。
本技術提供了一種能夠根據每個資料的特性進行有效管理的儲存裝置及其操作方法。
在本說明書或申請中公開的根據本發明構思的實施例的特定結構或功能說明僅是為了舉例說明根據本發明構思的實施例,根據本發明構思的實施例可以以各種形式實施,並且不應被解釋為限於在本說明書或申請中說明的實施例。
圖1是用於說明根據本發明的一個實施例的電子裝置的圖。
參照圖1,儲存裝置(storage device)50可以包括記憶體裝置(memory device)100和記憶體控制器(memory controller)200。儲存裝置50可以是在主機(host)400的控制下儲存資料的裝置,例如手機、智慧型手機、MP3播放器、可攜式電腦、桌上型電腦、遊戲機、電視、平板電腦或車載資訊娛樂系統(in-vehicle infotainment)。或者,儲存裝置50可以是在一個地方儲存大容量資料的在主機400的控制下儲存資料的裝置,例如伺服器或資料中心。
根據作為與主機400的通訊方式的主機介面,儲存裝置50可以被製造為各種類型的儲存裝置中的任何一種。例如,儲存裝置50可以被配置為各種類型的儲存裝置中的任何一種,例如SSD、MMC、eMMC、RS-MMC、micro-MMC形式的多媒體卡(multimedia card);SD、mini-SD、micro-SD形式的安全數位卡(secure digital card);USB(通用序列匯流排(Universal Serial Bus))儲存裝置、UFS(通用快閃儲存(Universal Flash Storage))裝置、PCMCIA(個人電腦記憶卡國際協會(personal computer memory card international association))卡形式的儲存裝置;PCI(周邊組件互連(peripheral component interconnection))卡形式的儲存裝置;PCI-E(快速的周邊組件互連(PCI-express))卡形式的儲存裝置;CF(緊湊型快閃記憶體(compact flash))卡;智能媒體卡;記憶棒(memory stick)。
儲存裝置50可以以各種類型的封裝(package)形式中的任何一種來製造。例如,儲存裝置50可以以諸如POP(疊層封裝(package on package))、SIP(系統級封裝(system in package))、SOC(單晶片系統(system on chip))、MCP(多晶片封裝(multi-chip package))、COB(板上晶片(chip on board))、WFP(晶圓級製造封裝(wafer-level fabricated package))、WSP(晶圓級堆疊封裝(wafer-level stack package))的各種類型的封裝形式中的任何一種來製造。
記憶體裝置100可以儲存資料。記憶體裝置100回應於記憶體控制器200的控制而操作。記憶體裝置100可以包括記憶體單元陣列(未示出),該記憶體單元陣列包括用於儲存資料的多個記憶體單元。
每個記憶體單元可以被配置為儲存一個資料位的單級單元(Single Level Cell, SLC)、儲存兩個資料位的多級單元(Multi Level Cell, MLC)、儲存三個資料位的三級單元(Triple Level Cell, TLC)或能夠儲存四個資料位的四級單元(Quad Level Cell, QLC)。
記憶體單元陣列(未示出)可以包括多個記憶體區塊。每個記憶體區塊可以包括多個記憶體單元。每個記憶體區塊可以包括多個頁面。在實施例中,頁面可以是用於在記憶體裝置100中儲存資料或讀取儲存在記憶體裝置100中的資料的單位。記憶體區塊可以是用於抹除資料的單位。
在實施例中,記憶體裝置100可以是DDR SDRAM(雙倍資料速率同步動態隨機存取記憶體(Double Data Rate Synchronous Dynamic Random Access Memory))、LPDDR4(低功耗雙倍資料速率4(Low Power Double Data Rate4))SDRAM、GDDR(圖形雙倍資料速率(Graphics Double Data Rate))SDRAM、LPDDR(低功耗DDR(Low Power DDR))、RDRAM(記憶體匯流排式動態隨機存取記憶體(Rambus Dynamic Random Access Memory))、NAND快閃記憶體(NAND flash memory)、豎直NAND快閃記憶體(Vertical NAND)、NOR快閃記憶體(NOR flash memory)、RRAM(阻變式隨機存取記憶體(resistive random access memory))、PRAM(相變RAM(Phase-change RAM))、MRAM(磁阻式隨機存取記憶體(magnetoresistive random access memory))、FRAM(鐵電隨機存取記憶體(ferroelectric random access memory))、STT-RAM(自旋轉移矩隨機存取記憶體(spin transfer torque random access memory))等。在本說明書中,為了便於說明,假設記憶體裝置100是NAND快閃記憶體。
記憶體裝置100被配置為從記憶體控制器200接收命令和位址,並存取記憶體單元陣列中的根據位址選擇的區域。記憶體裝置100可以針對根據位址選擇的區域執行命令指示的操作。例如,記憶體裝置100可以執行寫入操作(編程操作)、讀取操作和抹除操作。在編程操作時,記憶體裝置100將資料編程到根據位址選擇的區域中。在讀取操作時,記憶體裝置100從根據位址選擇的區域讀取資料。在抹除操作時,記憶體裝置100抹除儲存在根據位址選擇的區域中的資料。
記憶體控制器200可以控制儲存裝置50的整體操作。
在實施例中,記憶體控制器200可以從主機400接收資料和邏輯位址(logical address, LA),記憶體控制器200可以包括能夠將邏輯位址(LA)轉換為實體位址(PA)的韌體(firmware; 未示出),該實體位址(PA)指示包括在記憶體裝置100中的將要儲存資料的記憶體單元的位址。另外,記憶體控制器200可以將構成邏輯位址(LA)和實體位址(PA)之間的映射(mapping)關係的邏輯-實體位址映射表儲存在緩衝記憶體中。
記憶體控制器200可以根據主機400的請求控制記憶體裝置100執行編程操作、讀取操作或抹除操作等。在編程操作時,記憶體控制器200可以向記憶體裝置100提供編程命令、實體位址和資料。在讀取操作時,記憶體控制器200可以向記憶體裝置100提供讀取命令和實體位址。在抹除操作時,記憶體控制器200可以向記憶體裝置100提供抹除命令和實體位址。或者,記憶體控制器200可以根據主機400的請求打開或關閉記憶體裝置100中的區(zone)。打開區可以表示為對應於該區的邏輯位址組,例如為對應於由主機分配給資料的分區的邏輯位址創建映射表。關閉區可以表示在再次接收到該區的打開請求之前,不會有將資料儲存在該區中的寫入請求。主機400可以將這樣的打開或關閉區的請求作為單獨的請求提供,或者可以與諸如寫入請求的其他請求一起提供。
在實施例中,記憶體控制器200可以與來自主機400的請求無關地自己產生命令、位址和資料,並將產生的命令、位址和資料傳送到記憶體裝置100。例如,記憶體控制器200可以向記憶體裝置100提供用於執行在執行損耗平衡(wear leveling)、讀取回收(read reclaim)、垃圾回收(garbage collection)等時所伴隨的編程操作、讀取操作和抹除操作的命令、位址和資料。
在實施例中,記憶體控制器200可以包括快閃轉換層(Flash Translation Layer)。快閃轉換層可以將對應於從主機400接收的請求的邏輯位址(LA)轉換為實體位址(PA),並將轉換後的實體位址(PA)輸出到記憶體裝置100。
例如,如上所述,快閃轉換層可以將對應於編程請求的邏輯位址(LA)轉換為實體位址(PA),或者可以將對應於讀取請求的邏輯位址(LA)轉換為實體位址(PA),或者可以將對應於抹除請求的邏輯位址(LA)轉換為實體位址(PA)。快閃轉換層可以將轉換後的實體位址(PA)輸出到記憶體裝置100,並且記憶體裝置100可以對對應於實體位址(PA)的頁面或記憶體區塊執行操作。
在實施例中,記憶體控制器200可以從文件系統(file system)420接收邏輯位址並且將接收的邏輯位址轉換為連續的實體位址。當連續的實體位址被輸出到記憶體裝置100時,記憶體裝置100可以執行對應於連續的實體位址的連續操作。此時,可以根據被分配的區的類型確定連續的實體位址。將參照圖4和圖5更詳細地說明區的類型。
在實施例中,儲存裝置50可以更包括緩衝記憶體(未示出)。記憶體控制器200可以控制主機400和緩衝記憶體(未示出)之間的資料交換。或者,記憶體控制器200可以將用於控制記憶體裝置100的系統資料臨時儲存在緩衝記憶體中。例如,記憶體控制器200可以將從主機400輸入的資料臨時儲存在緩衝記憶體中,然後將臨時儲存在緩衝記憶體中的資料傳送到記憶體裝置100。
在各種實施例中,緩衝記憶體可以作為記憶體控制器200的操作記憶體和快速緩衝記憶體。緩衝記憶體可以儲存由記憶體控制器200執行的代碼或命令。或者,緩衝記憶體可以儲存由記憶體控制器200處理的資料。
在實施例中,緩衝記憶體可以被實現為諸如DDR SDRAM(雙倍資料速率同步動態隨機存取記憶體)、DDR4 SDRAM、LPDDR4(低功耗雙倍資料速率4)SDRAM、GDDR(圖形雙倍資料速率)SDRAM、LPDDR(低功耗DDR)、RDRAM(記憶體匯流排式動態隨機存取記憶體)的DRAM(動態隨機存取記憶體)或SRAM(靜態隨機存取記憶體)。
在各種實施例中,緩衝記憶體可以在儲存裝置50的外部連接到儲存裝置50。在這種情況下,在儲存裝置50的外部連接到儲存裝置50的揮發性記憶體裝置可以作為緩衝記憶體。
在實施例中,記憶體控制器200可以控制至少兩個記憶體裝置100。在這種情況下,記憶體控制器200可以根據交錯方式控制記憶體裝置100以提高操作性能。交錯方式可以是控制至少兩個記憶體裝置100的操作重疊的方式。或者,交錯方式可以是控制在一個記憶體裝置100中劃分的多個組的操作重疊的方式。此時,組可以是一個以上的記憶體晶元(memory die)單位或一個以上的記憶體平面(memory plane)單位。
主機400可以利用諸如USB(通用序列匯流排(Universal Serial Bus))、SATA(序列先進技術附件(Serial AT Attachment))、SAS(序列連接SCSI(Serial Attached SCSI))、HSIC(快速晶片互連(High Speed Interchip))、SCSI(小型電腦系統介面(Small Computer System Interface))、PCI(周邊組件互連(Peripheral Component Interconnection))、PCIe(快速的周邊組件互連(PCI express))、NVMe(非揮發性記憶體主機控制器介面規範(NonVolatile Memory express))、UFS(通用快閃儲存(Universal Flash Storage))、SD(安全數位(Secure Digital))、MMC(多媒體卡(MultiMedia Card))、eMMC(嵌入式多媒體卡(embedded MMC))、DIMM(雙列直插式記憶體模組(Dual In-line Memory Module))、RDIMM(帶寄存器的雙列直插式記憶體模組(Registered DIMM))、LRDIMM (低負載雙列直插式記憶體模組(Load Reduced DIMM))的各種通訊方式中的至少一種與儲存裝置50進行通訊。
在實施例中,主機400可以包括應用(application)410。應用410也被稱為應用程式(application program),並且可以是在操作系統(OS)中執行的軟體。應用410可以回應於用戶輸入來處理資料。例如,應用410可以回應於用戶輸入來處理資料並且將用於將處理後的資料儲存在儲存裝置50的記憶體裝置100中的請求傳送到文件系統420。
文件系統420可以回應於從應用傳送的請求分配將要儲存資料的邏輯位址(LA)。在實施例中,文件系統420可以是記錄結構文件系統(Log structure File System, LFS)。記錄結構文件系統(LFS)可以考慮輸入資料的屬性來產生記錄,並且可以基於記錄分配與資料對應的分區。此時,分區可以是邏輯位址集合。因此,分配分區可以表示分配與相應資料對應的邏輯位址。被分配分區的資料可以被依序地儲存在對應於分區的記憶體裝置100的儲存區域中。例如,記錄結構文件系統(LFS)可以是快閃友好文件系統(flash friendly file system, F2FS)。快閃友好文件系統(F2FS)是考慮到固態硬碟(Solid State Drive, SSD)的特性而設計的基於記錄的文件系統,可以通過使用多頭(Multi-Head)記錄來增加SSD內部的平行度。可以為產生不同記錄的資料分配不同的分區。記錄結構文件系統(LFS)無法覆蓋(overwrite)資料。當修改資料時,記錄結構文件系統(LFS)可以重新分配與要修改的資料對應的邏輯位址,並將資料寫入對應的實體區域。
由應用410請求寫入的資料可以儲存在主機中的主機記憶體(未示出)中,並且可以根據來自應用的請求通過裝置介面(未示出)刷新(flush)到儲存裝置50。主機記憶體可以包括諸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM、GRAM的揮發性記憶體或諸如FRAM、ReRAM、STT-MRAM、PRAM的非揮發性記憶體。
圖2是用於說明圖1的記憶體裝置的圖。
參照圖2,記憶體裝置100可以包括記憶體單元陣列110、電壓產生部120、位址解碼器130、輸入/輸出電路140和控制邏輯150。
記憶體單元陣列110包括多個記憶體區塊(BLK1~BLKi)。多個記憶體區塊(BLK1~BLKi)通過行線(RL)連接到位址解碼器130。多個記憶體區塊(BLK1~BLKi)可以通過列線(CL)連接到輸入/輸出電路140。在實施例中,行線(RL)可以包括字元線、源極選擇線和汲極選擇線。在實施例中,列線(CL)可以包括位元線。
在實施例中,記憶體單元陣列110可以包括一個以上的記憶體晶元(Memory Die),並且每個記憶體晶元可以包括一個以上的平面(Plane),該平面包括一個以上的記憶體區塊。
另外,記憶體單元陣列110中包括的多個記憶體區塊(BLK)可以被分組成兩個以上的超級區塊(Super Block, SB)。超級區塊(SB)可以是控制邏輯150管理記憶體單元陣列110中包括的多個記憶體區塊(BLK)的單位。一個超級區塊(SB)可以是同時或在同一時間段內執行讀取操作和/或寫入操作等或結合執行或相關聯地執行讀取操作和/或寫入操作等的記憶體區塊(BLK)的集合,或者一個超級區塊(SB)可以是針對一個命令執行讀取操作和/或寫入操作等的記憶體區塊(BLK)集合,或者一個超級區塊(SB)可以是在記憶體單元陣列110中結合執行或同時執行讀取操作和/或寫入操作等的記憶體區塊(BLK)的集合。此外,多個記憶體區塊(BLK)中的在管理或操作方面彼此不同的記憶體區塊(BLK)組可以被稱為超級區塊(SB)。兩個以上的超級區塊(SB)中的每一個的大小可以相同。即,兩個以上的超級區塊(SB)中的每一個中包括的記憶體區塊(BLK)的數量可以相同。或者,兩個以上的超級區塊(SB)中的至少一個可以具有與其餘的超級區塊(SB)不同的大小。即,多個超級區塊(SB)中的至少一個超級區塊(SB)中包括的記憶體區塊(BLK)的數量可以與其餘的超級區塊(SB)中包括的記憶體區塊(BLK)的數量不同。另外,兩個以上的超級區塊(SB)中的每一個中包括的兩個以上的記憶體區塊(BLK)可以都位於相同的一個記憶體晶元上。與此不同,兩個以上的超級區塊(SB)中的每一個中包括的兩個以上的記憶體區塊(BLK)可以位於兩個以上的不同的記憶體晶元上。
多個記憶體區塊(BLK1~BLKi)中的每一個包括多個記憶體單元。在實施例中,多個記憶體單元可以是非揮發性記憶體單元。在多個記憶體單元中,連接到相同字元線的記憶體單元可以被定義為一個實體頁面。即,記憶體單元陣列110可以包括多個實體頁面。記憶體裝置100的每個記憶體單元可以被配置為儲存一個資料位的單級單元(SLC)、儲存兩個資料位的多級單元(MLC)、儲存三個資料位的三級單元(TLC)或能夠儲存四個資料位的四級單元(QLC)。
在實施例中,電壓產生部120、位址解碼器130和輸入/輸出電路140可以統稱為周邊電路(peripheral circuit)。周邊電路可以在控制邏輯150的控制下驅動記憶體單元陣列110。周邊電路可以驅動記憶體單元陣列110以執行編程操作、讀取操作和抹除操作。
電壓產生部120被配置為利用供應到記憶體裝置100的外部電源電壓產生多個操作電壓。電壓產生部120回應於控制邏輯150的控制而操作。
在實施例中,電壓產生部120可以通過調節外部電源電壓來產生內部電源電壓。由電壓產生部120產生的內部電源電壓被作為記憶體裝置100的操作電壓。
在實施例中,電壓產生部120可以利用外部電源電壓或內部電源電壓產生多個操作電壓。電壓產生部120可以被配置為產生記憶體裝置100所需的各種電壓。例如,電壓產生部120可以產生多個抹除電壓、多個編程電壓、多個通過電壓、多個選擇讀取電壓和多個非選擇讀取電壓。
電壓產生部120包括接收內部電源電壓的多個泵送電容器以產生具有不同電壓位準的多個操作電壓,並且電壓產生部120可以回應於控制邏輯150的控制來選擇性地啟動多個泵送電容器以產生多個操作電壓。
產生的多個操作電壓可以通過位址解碼器130被供應到記憶體單元陣列110。
位址解碼器130通過行線(RL)連接到記憶體單元陣列110。位址解碼器130被配置為回應於控制邏輯150的控制而操作。位址解碼器130可以從控制邏輯150接收位址(ADDR)。位址解碼器130可以對接收的位址(ADDR)中的區塊位址進行解碼。位址解碼器130根據解碼的區塊位址從記憶體區塊(BLK1~BLKi)中選擇至少一個記憶體區塊。位址解碼器130可以對接收的位址(ADDR)中的行位址進行解碼。位址解碼器130可以根據解碼的行位址從選擇的記憶體區塊的字元線中選擇至少一條字元線。在實施例中,位址解碼器130可以對接收的位址(ADDR)中的列位址進行解碼。位址解碼器130可以根據解碼的列位址連接輸入/輸出電路140和記憶體單元陣列110。
例如,位址解碼器130可以包括諸如行解碼器、列解碼器、位址緩衝器的元件。
輸入/輸出電路140可以包括多個頁面緩衝器。多個頁面緩衝器可以通過位元線連接到記憶體單元陣列110。在編程操作時,可以根據儲存在多個頁面緩衝器中的資料將資料儲存在選擇的記憶體單元中。
在讀取操作時,可以通過位元線感測儲存在選擇的記憶體單元中的資料,並且可以將感測的資料儲存在頁面緩衝器中。
控制邏輯150可以控制位址解碼器130、電壓產生部120和輸入/輸出電路140。控制邏輯150可以回應於從外部裝置傳送的命令(CMD)而操作。控制邏輯150可以回應於命令(CMD)和位址(ADDR)產生控制訊號以控制周邊電路。
圖3是用於說明圖2的記憶體單元陣列的圖。
參照圖3,記憶體單元陣列110可以包括一個以上的記憶體晶元,並且每個記憶體晶元可以包括一個以上的平面,該平面包括一個以上的記憶體區塊。雖然在圖3中示出記憶體單元陣列110包括四個記憶體晶元(DIE#0、DIE#1、DIE#2、DIE#3),但是記憶體晶元的數量不限於此。多個記憶體晶元可以通過多個通道向記憶體控制器傳送或從記憶體控制器接收,並且每個通道可以連接到一個以上的記憶體晶元。例如,如果一個通道連接到一個記憶體晶元,則一個記憶體晶元一次可以接收一個命令,一個記憶體晶元中包括的平面可以平行處理由記憶體晶元接收的命令。
圖4是用於說明根據本發明的一個實施例的儲存裝置的超級區塊分配過程的圖。
參照圖1和圖4,主機400的文件系統420基於資料的屬性為應用410請求寫入的資料產生記錄,並且基於此,對資料進行分類並確定包括要分配給資料的分區的分區組。根據各種標準,資料可以分為被分配第一分區組421a中的第一分區422a的第一類資料和被分配第二分區組421b中的第二分區422b的第二類資料。由文件系統分配第一分區組421a中的第一分區422a的資料可以在記憶體控制器200的控制下儲存在記憶體裝置100的第一超級區塊111a中的小的單晶元區(small single-die zone)112a中,並且由文件系統分配第二分區組421b中的第二分區422b的資料可以儲存在記憶體裝置100的第二超級區塊111b中的小的多晶元區(small multi-die zone)112b中。第一分區組421a對應於第一超級區塊111a,因此,第一分區422a對應於小的單晶元區112a。可以與分區組中的分區順序無關地被分配為新的分區的第一分區422a的特性符合以每個記憶體晶元管理的小的單晶元區112a的特性,並且第一分區422a和小的單晶元區112a具有相同的特性,即第一分區422a和小的單晶元區112a都能夠以一個分區或區為單位執行重置或抹除操作。另外,根據分區組中的分區順序被分配為新的分區的第二分區422b的特性符合跨多個記憶體晶元形成的小的多晶元區112b的特性,並且第二分區422b和小的多晶元區112b具有相同的特性,即第二分區422b和小的多晶元區112b都不能以一個分區或區為單位執行重置或抹除操作,在其各自所屬的第二分區組421b和第二超級區塊111b都處於能夠重置或抹除的狀態之後以分區組和超級區塊為單位執行重置或抹除操作。將參照圖6至圖11更詳細地說明第一分區422a和第二分區422b的分配和重置,並且將參照圖5更詳細地說明小的單晶元區112a和小的多晶元區112b的形態。
可以與分區順序無關地分配第一分區組421a中的第一分區422a,並且可以回應於來自主機400的將要儲存被分配分區的資料的區分配請求,記憶體控制器200可以分配形成為一個記憶體晶元中的區域的小的單晶元區112a。可以根據分區順序分配第二分區組422b中的第二分區422b,並且可以回應於來自主機400的將要儲存被分配分區的資料的區分配請求,記憶體控制器200可以分配形成為包括多個記憶體晶元中的記憶體區塊的一部分的區域的小的多晶元區112b。針對主機400的區分配請求,當記憶體控制器200回復當前使用的超級區塊中不存在額外的可被分配的區的資訊時,文件系統420可以在分配新的分區組之後分配新的分區組中的分區,作為回應,記憶體控制器200可以在分配新的超級區塊和包括在其中的新的區之後儲存被分配新的分區的資料。或者,文件系統420不從記憶體控制器200接收關於超級區塊和區的資訊,可以自行分配新的分區組和包括在其中的分區。
圖5是用於說明根據本發明的一個實施例的儲存裝置的超級區塊管理的圖。
參照圖1、圖4和圖5,記憶體單元陣列110可以包括多個記憶體晶元,例如,可以包括四個記憶體晶元(DIE#0~DIE#3)。另外,每個記憶體晶元可以包括多個平面,每個平面包括多個記憶體區塊,例如,可以包括四個平面PLANE#0~PLANE#3。記憶體控制器200可以通過將記憶體裝置100的記憶體單元陣列110劃分為多個超級區塊來控制記憶體單元陣列110。超級區塊可以包括記憶體單元陣列110中包括的兩個以上的記憶體區塊。超級區塊可以包括多個區(zone)。可以跨多個記憶體晶元形成超級區塊,並且如圖5所示,可以跨所有記憶體晶元形成超級區塊。超級區塊可以根據包括在其中的區的形態分為第一超級區塊111a和第二超級區塊111b。在根據本發明的一個實施例的儲存裝置中,作為記憶體控制器200控制記憶體裝置100的單位的超級區塊可以僅由包括小的多晶元區112b的第二超級區塊111b組成,或者可以包括包括小的多晶元區112b的第二超級區塊111b和包括小的單晶元區112a的第一超級區塊111a。
第一超級區塊111a中包括的小的單晶元區112a可以包括一個記憶體晶元中的一個以上的區塊。例如,如圖5所示,對於每個記憶體晶元,包括平面0至平面3中包括的一個記憶體區塊的區域可以被指定為一個區(zone),因此,第一超級區塊111a可以包括四個小的單晶元區112a,每個記憶體晶元形成一個小的單晶元區112a。
第二超級區塊111b中包括的小的多晶元區112b可以包括不同的記憶體晶元中包括的每個區塊的一部分。例如,如圖5所示,小的多晶元區112b可以跨所有四個記憶體晶元(DIE#0~DIE#3)形成,並且可以僅包括每個平面中包括的每個記憶體區塊的一部分。例如,如圖5所示,可以僅包括每個平面中包括的每個記憶體區塊的頁面中的1/4頁面。因此,第二超級區塊111b可以跨所有記憶體晶元形成,並且可以包括形成為僅包括每個記憶體區塊的一部分頁面的四個小的多晶元區112b。
在一個實施例中,第一超級區塊111a和第二超級區塊111b的大小可以相同。即,第一超級區塊111a和第二超級區塊111b可以包括相同數量的記憶體區塊。另外,小的單晶元區112a和小的多晶元區112b的大小可以相同。即,小的單晶元區112a和小的多晶元區112b中包括的頁面數量可以相同。小的單晶元區112a可以形成在一個記憶體晶元中,而小的多晶元區112b可以跨多個記憶體晶元形成。因此,在小的多晶元區112b的情況下,可以以晶元交錯方式操作,特別地,如圖5所示,當小的多晶元區112b跨所有記憶體晶元形成時,可以以全晶元(full-die)交錯方式操作。然而,不能同時分配和編程不同的小的多晶元區112b。另外,由於小的多晶元區僅包括每個記憶體區塊的一部分,因此當要抹除特定的區時無法立即抹除,當可以抹除部分包括在該區中的每個記憶體區塊的所有頁面時,即,當可以抹除包括該區的超級區塊的所有區時,可以抹除該區。因此,在小的多晶元區的情況下,雖然具有可以以記憶體晶元為單位以交錯方式操作的優點,但考慮到編程和抹除時的限制,可能不適合儲存輸入/輸出頻率高的資料。因此,通過同時使用第一超級區塊和第二超級區塊,可以在第一超級區塊的小的單晶元區中儲存容量相對較小或輸入/輸出頻率高的資料,並且可以在第二超級區塊的小的多晶元區中儲存容量相對較大或輸入/輸出頻率低的資料,從而可以提高儲存裝置的性能。
表示超級區塊中包括的實體區域的區(zone),例如小的單晶元區或小的多晶元區可以被劃分為滿(full)狀態、空(empty)狀態和啟動(active)狀態。滿狀態可以表示資料儲存在區(zone)中的所有區域中而區中不存在空區域的狀態。空狀態可以表示沒有資料儲存在區中的區域中而區為空的狀態。啟動狀態可以表示資料僅儲存在區中的一部分區域中的狀態,並且可以是打開(open)狀態或關閉(close)狀態。打開狀態可以表示在資料僅儲存在區中的一部分區域的區中當前資料正在被編程的區,關閉狀態可以表示在資料僅儲存在區中的一部分區域的區中當前資料沒有正在被編程的區域。
另外,在小的多晶元區的情況下,可以進一步具有準備重置(ready to reset)狀態。區的重置操作可以表示通過抹除區來使該區變成空狀態的操作。抹除可以以記憶體區塊為單位執行,如圖5所示,在小的多晶元區112b的情況下,僅包括多個記憶體區塊中的每一個的一部分。另一方面,在小的單晶元區112a的情況下,可以包括一個以上的整個記憶體區塊。因此,當要重置特定的小的單晶元區112a時,可以立即抹除該區。另一方面,當要重置特定的小的多晶元區112b時,當可以抹除部分包括在該區中的每個記憶體區塊的所有頁面時,即,當可以抹除包括該區的超級區塊的所有區時,可以抹除該區。因此,當對小的多晶元區112b執行重置操作時,該區不會被立即抹除,而是轉換為準備重置狀態,當包括小的多晶元區112b的第二超級區塊111b中的所有小的多晶元區112b轉換為準備重置狀態時,該超級區塊中的所有小的多晶元區112b可以被一次性抹除以轉換為空狀態。
圖6是用於說明由文件系統分配的分區的結構的圖。
參照圖6,分區可以包括多個邏輯位址。一個分區中包括的邏輯位址可以是連續位址或非連續位址。為資料分配分區可以表示分配了分區中的邏輯位址。關於每個分區中包括的位址的資訊可以包括在主機中的記憶體或儲存裝置中的記憶體中。可以根據請求寫入的資料的大小依序地分配邏輯位址。例如,當有特定大小的資料D1和D2的寫入請求並且圖5的分區被分配給資料D1和D2時,LA1至LA3的邏輯位址可以被分配給D1,LA4和LA5的邏輯位址可以被分配給D2。
圖7是用於說明由文件系統分配第一分區組的新的分區的過程的圖。
參照圖7,可以與分區組中的分區順序無關地分配新的分區的分區組可以被定義為第一分區組421a。此時,包括在分區組中的分區中的邏輯位址可以彼此連續,並且隨著分區組中的分區號增加,邏輯位址可以增加。因此,分區順序可以表示分區組中的分區號順序,這可以表示邏輯位址增加的方向上的順序。或者,包括在分區組中的分區中的邏輯位址可以彼此不連續。在這種情況下,可以基於儲存在單獨的記憶體中的分區和關於包括在每個分區組中的邏輯位址的資訊來確定分區順序。在第一分區組421a的情況下,由於可以與分區順序無關地分配分區並分配邏輯位址,因此第三分區(分區#3)可以先被分配並且第三分區中的所有邏輯位址被分配,從而可以在變成滿分區(Full Section)之後分配第一分區(分區#1)並且可以分配新的資料的邏輯位址。當作為打開分區(Open Section)的第一分區的所有邏輯位址被分配給資料並且第一分區變成滿分區時,文件系統420可以分配作為空分區(Empty Section)的第零分區(分區#0)和第二分區中的任何一個作為新的分區,並且可以將包括在其中的邏輯位址分配給資料。
圖8和圖9是用於說明由文件系統分配第二分區組的新的分區的過程的圖。
參照圖8和圖9,可以根據分區組中的分區順序分配新的分區的分區組可以被定義為第二分區組421b。如圖8所示,在第二分區組中,第零分區(分區#0)可以最先被打開並將包括在其中的邏輯位址分配給資料,當第零分區變成滿分區時,可以分配作為下一個順序的分區的第一分區(分區#1)作為新的分區以儲存資料。如圖9所示,當第二分區組421b中的所有分區都是滿分區時,文件系統420可以在分配新的第二分區組421b之後,分配作為新的第二分區組中的第一個分區的第零分區(分區#0)作為新的分區,並且可以將包括在其中的邏輯位址分配給資料。此時,在第二分區組421b的情況下,可以根據分區組中的分區順序分配分區,當作為最後一個分區的第三分區(分區#3)是滿分區時,在其之前的分區中不可能存在空分區。因此,在第二分區組421b的情況下,無需在分區組中尋找空分區,如果第二分區組421b中不存在下一個順序的分區,則文件系統420分配新的第二分區組421b。
圖10是用於說明通過文件系統的第一分區組的重置過程的圖。
參照圖10,在第一分區組421a中,1)當第零分區(分區#0)被重置時,2)通過丟棄(discard)與第零分區中的邏輯位址對應的所有資料,第零分區變成空(empty)分區,從而完成重置操作。另外,3)重置當第一分區(分區#1)時,4)通過丟棄與第一分區中的邏輯位址對應的所有資料,第一分區變成空分區,從而完成重置操作。另外,5)當第二分區(分區#2)被重置時,6)通過丟棄與第二分區中的邏輯位址對應的所有資料,第二分區變成空分區,從而完成重置操作。即,當對第一分區組421a中包括的一個分區執行重置操作時,作為回應,與該分區中的邏輯位址對應的資料被丟棄,從而該分區可以立即變成空分區,因此,可以完成重置操作。此時,在對分區執行重置操作時丟棄與邏輯位址對應的資料可以表示解除邏輯位址和資料之間的映射關係。當與特定的分區中的邏輯位址對應的資料全部無效時執行重置操作,如果存在有效資料,則將其映射到另一分區的邏輯位址,並且可以在將與相應邏輯位址對應的資料處理為無效後執行重置操作。完成重置的分區中包括的邏輯位址可以重新被分配給新資料。這樣的重置操作可以由文件系統執行。
圖11是用於說明通過文件系統的第二分區組的重置過程的圖。
參照圖5和圖11,在第二分區組421b中,1)當第零分區(分區#0)被重置時,2)與第零分區中的邏輯位址對應的資料不會被立即丟棄,並且指示第零分區準備重置的資訊儲存在位圖中。另外,3)當第一分區(分區#1)被重置時,4)與第一分區中的邏輯位址對應的資料不會被立即丟棄,並且指示第一分區準備重置的資訊儲存在位圖中。另外,5)當第二分區(分區#2)被重置時,6)與第二分區中的邏輯位址對應的資料不會被立即丟棄,並且指示第二分區準備重置的資訊儲存在位圖中。另外,7)當第三分區(分區#3)被重置時,8)與第三分區中的邏輯位址對應的資料不會被立即丟棄,並且指示第三分區準備重置的資訊儲存在位圖中。9)因此,當指示第二分區組421b的所有分區準備重置的資訊儲存在位圖中時,與所有所述分區中的所有邏輯位址對應的所有資料都被丟棄,並且第二分區組421b中的所有分區一次性地變成空分區,從而可以完成重置操作。即,在第二分區組421b的情況下,當僅一部分分區被重置時,資料不會被立即丟棄,因此分區不會變成空分區,在對第二分區組421b中的所有分區執行重置操作之後,即在儲存了指示所有分區準備重置的資訊之後,與包括在第二分區組421b中的所有分區的邏輯位址對應的資料被丟棄,從而第二分區組421b中的所有分區可以同時變成空分區。當重置操作完成時,指示第二分區組421b中的所有分區準備重置的資訊可以被刪除。此時,儲存指示準備重置的資訊的位圖可以包括在儲存裝置中的任意位置中。此時,在分區的重置操作中丟棄與邏輯位址對應的資料可以表示解除邏輯位址和資料之間的映射關係。當與特定的分區中的邏輯位址對應的資料全部無效(invalid)時,執行重置操作,如果存在有效資料,則將其映射到另一分區的邏輯位址,並且在與該邏輯位址對應的資料被處理為無效後,可以執行重置操作。完成重置的分區中包括的邏輯位址可以重新分配給新的資料。這樣的重置操作可以由文件系統執行。即,這樣的第二分區的重置操作對應於圖5的第二超級區塊111b中的小的多晶元區112b的重置操作。即,當對第二分區422b執行重置操作時,第二分區處於準備重置狀態,因此,對應於第二分區422b的小的多晶元區112b不會被立即抹除,而是被轉換為準備重置狀態。隨後,當包括第二分區422b的第二分區組421b中的所有第二分區422b都被轉換為準備重置狀態時,即,當包括小的多晶元區112b的第二超級區塊111b中的所有小的多晶元區112b被轉換為準備重置狀態時,與第二分區組421b中的所有第二分區422b的邏輯位址對應的資料被丟棄,從而第二分區組421b中的所有分區同時變成空分區,對應的第二超級區塊111b中的所有小的多晶元區112b被抹除並變成空狀態。
圖12是用於說明根據本發明的一個實施例的儲存裝置的垃圾回收的圖。
參照圖1、圖4和圖12,主機400包括主機垃圾回收控制部430。主機垃圾回收控制部430可以包括在文件系統420中,或者可以作為與文件系統420分開的配置包括在主機400中。主機垃圾回收控制部430可以包括關於由文件系統420分配的分區和分區組的資訊以及關於對應的超級區塊和區(zone)的資訊。另外,主機垃圾回收控制部430可以包括關於區中包括的每個頁面的資訊。例如,可以包括關於儲存在每個頁面中的資料的有效(valid)或無效(invalid)的資訊。
主機垃圾回收控制部430可以向儲存裝置50提供垃圾回收執行請求。垃圾回收執行請求可以包括關於區中包括的每個頁面的資訊,在實施例中,垃圾回收執行請求可以包括關於小的多晶元區中包括的有效頁面的資訊。更詳細地,垃圾回收執行請求可以包括關於處於滿狀態的小的多晶元區中包括的有效頁面的資訊,例如,垃圾回收執行請求可以包括處於滿狀態的小的多晶元區中包括的有效頁面的數量、包括預定數量以上的有效頁面的小的多晶元區的列表等。
儲存裝置50中的記憶體控制器200可以包括區管理部210和裝置垃圾回收控制部220。區管理部210可以分配和管理對應於由主機分配的分區和分區組的區和超級區塊。對應於第一分區組421a中的第一分區422a,可以分配和映射第一超級區塊111a中的小的單晶元區112a,對應於第二分區組421b中的第二分區422b,可以分配和映射第二超級區塊111b中的小的多晶元區112b。裝置垃圾回收控制部220可以回應於儲存裝置50從主機400接收的垃圾回收執行請求來執行垃圾回收。裝置垃圾回收控制部220可以從區管理部210接收關於分配的超級區塊和區的資訊,並且基於接收的資訊選擇犧牲超級區塊。犧牲超級區塊可以從包括小的多晶元區112b的第二超級區塊111b中選擇。裝置垃圾回收控制部220可以從僅由處於滿狀態和準備重置狀態的區組成的超級區塊中選擇犧牲超級區塊。裝置垃圾回收控制部220可以考慮處於準備重置狀態的區的數量來選擇犧牲超級區塊。可以從區管理部210或主機垃圾回收控制部430接收關於處於準備重置狀態的區的數量的資訊。例如,越是準備重置狀態的區的數量多的超級區塊,被選為犧牲超級區塊的可能性會越高。另外,裝置垃圾回收控制部220可以考慮關於處於滿狀態的區中包括的有效頁面的資訊來選擇犧牲超級區塊。可以從主機垃圾回收控制部430接收關於處於滿狀態的區中包括的有效頁面的資訊,這樣的資訊可以與垃圾回收執行請求一起被接收。例如,處於滿狀態的區中包括的有效頁面的數量越多,被選為犧牲超級區塊的可能性會越高。區管理部210可以不管理關於區中包括的頁面是有效還是無效的資訊,因此,可以從主機垃圾回收控制部430接收與其相關的資訊。當裝置垃圾回收控制部220選擇犧牲超級區塊時,區管理部210可以複製儲存在犧牲超級區塊中的處於滿狀態的區中的資料並將其儲存在另一個超級區塊中。當犧牲超級區塊是包括小的多晶元區112b的第二超級區塊111b時,複製並儲存犧牲超級區塊中的處於滿狀態的區的資料的另一超級區塊也可以是第二超級區塊111b。另外,此時,區管理部210可以不管理關於區中包括的頁面是有效還是無效的資訊,因此可以以區為單位複製和儲存資料。或者,可以基於從主機垃圾回收控制部430接收的關於有效頁面的資訊以頁面為單位複製和儲存資料。即,可以僅複製儲存在犧牲超級區塊中的處於滿狀態的區中的有效頁面中的資料並將其儲存在另一個超級區塊中。
圖13是用於說明根據本發明的一個實施例的選擇儲存裝置的犧牲超級區塊的過程的流程圖。
參照圖12和圖13,在步驟S1301中,儲存裝置50可以從主機400接收垃圾回收執行請求。作為回應,在步驟S1303中,記憶體控制器200可以選擇候選超級區塊。候選超級區塊可以是包括多個小的多晶元區的超級區塊。在實施例中,可以選擇僅由處於滿狀態和準備重置狀態的小的多晶元區組成的超級區塊作為候選超級區塊。
在步驟S1305中,可以計算每個候選超級區塊的垃圾回收成本。此時,可以考慮超級區塊中的處於準備重置狀態的小的多晶元區的數量來計算垃圾回收成本。
在步驟S1307中,可以基於每個候選超級區塊中包括的處於滿狀態的小的多晶元區中包括的有效頁面的數量來修改每個候選超級區塊的成本。例如,處於滿狀態的小的多晶元區中包括的有效頁面的數量越多,賦予權重以降低成本,從而可以增加被選為犧牲超級區塊的可能性。此時,關於有效頁面的數量的資訊可以包括在垃圾回收執行請求中。例如,關於有效頁面的資訊可以包括處於滿狀態的小的多晶元區中包括的有效頁面的數量和包括預定數量以上的有效頁面的小的多晶元區的列表。首先,確認候選超級區塊中包括的區是否在包括預定數量以上的有效頁面的小的多晶元區的列表中,如果在該列表中,則可以通過基於有效頁面的數量賦予權重來降低候選超級區塊的成本。
在步驟S1309中,可以比較在步驟S1307中修改並確定的每個候選超級區塊的成本。因此,在步驟S1311中可以選擇具有最低成本的候選超級區塊作為犧牲超級區塊。
圖14是用於說明根據本發明的一個實施例的對犧牲超級區塊執行垃圾回收的過程的流程圖。
參照圖13和圖14,在步驟S1401中可以複製儲存在通過根據圖13的過程選擇的犧牲超級區塊中的處於滿狀態的區中的資料並將其儲存在另一超級區塊中。當犧牲超級區塊是包括小的多晶元區的第二超級區塊時,資料移動的另一超級區塊也可以是第二超級區塊。此時,可以以區為單位或以頁面為單位複製資料。
在步驟S1403中,可以對資料移動完成的超級區塊執行抹除。因此,犧牲者超級區塊中包括的所有區都可以轉換為空狀態。
圖15是示出圖1的記憶體控制器的另一實施例的圖。
參照圖15,記憶體控制器1000可以包括處理器1010、內部記憶體1020、糾錯碼電路1030、主機介面1040、緩衝記憶體介面1050和記憶體介面1060。
處理器1010可以執行用於控制記憶體裝置100的各種運算或者可以產生各種命令。當處理器1010從主機400接收到請求時,處理器1010可以根據接收的請求產生命令並將產生的命令傳送到佇列控制器(未示出)。另外,處理器1010可以回應於來自主機400的區分配請求,分配將要儲存從主機接收的資料的記憶體裝置中的超級區塊和包括在其中的區,並且可以管理分配的超級區塊和區。另外,處理器1010可以回應於來自主機400的垃圾回收執行請求來執行垃圾回收。
內部記憶體1020可以儲存記憶體控制器1000的操作所需的各種資訊。例如,內部記憶體1020可以包括邏輯和實體位址映射表。內部記憶體1020可以被配置為RAM(隨機存取記憶體)、動態RAM(DRAM)、靜態RAM(SRAM)、快速緩存(cache)和緊耦合記憶體(tightly coupled memory, TCM)中的至少一種。
糾錯碼電路1030被配置為利用糾錯碼(ECC)檢測並糾正從記憶體裝置100接收的資料中的錯誤。處理器1010可以控制記憶體裝置100以根據糾錯碼電路1030的錯誤檢測結果調整讀取電壓並執行重新讀取。在示例性實施例中,可以提供糾錯區塊作為記憶體控制器1000的元件。
主機介面1040可以在記憶體控制器1000和主機400之間交換命令、位址和資料等。例如,主機介面1040可以從主機400接收請求、位址、資料等,並且可以將從記憶體裝置100讀取的資料輸出到主機400。主機介面1040可以使用諸如USB(通用序列匯流排(Universal Serial Bus))、SATA(序列先進技術附件(Serial AT Attachment))、SAS(序列連接SCSI(Serial Attached SCSI))、HSIC(快速晶片互連(High Speed Interchip))、SCSI(小型電腦系統介面(Small Computer System Interface))、PCI(周邊組件互連(Peripheral Component Interconnection))、PCIe(快速的周邊組件互連(PCI express))、NVMe(非揮發性記憶體主機控制器介面規範(NonVolatile Memory express))、UFS(通用快閃儲存(Universal Flash Storage))、SD(安全數位(Secure Digital))、MMC(多媒體卡(MultiMedia Card))、eMMC(嵌入式多媒體卡(embedded MMC))、DIMM(雙列直插式記憶體模組(Dual In-line Memory Module))、RDIMM(帶寄存器的雙列直插式記憶體模組(Registered DIMM))、LRDIMM (低負載雙列直插式記憶體模組(Load Reduced DIMM))、ESDI(增強型小型磁盤機介面(enhanced small disk interface))或IDE(電子整合驅動器(Integrated Drive Electronics))的協定來與主機400進行通訊。主機介面1040可以接收分配對應於由主機400分配給資料的分區的區的請求。主機介面1040可以從主機400接收執行垃圾回收的請求,此時,可以一起接收關於記憶體裝置100的小的多晶元區中包括的有效頁面的資訊。
緩衝記憶體介面1050可以在處理器1010和緩衝記憶體之間傳送資料。緩衝記憶體可以作為記憶體控制器1000的操作記憶體或快速緩衝記憶體,並且可以儲存在儲存裝置50中使用的資料。通過處理器1010,緩衝記憶體介面1050可以將緩衝記憶體作為讀取緩衝器、寫入緩衝器、映射緩衝器等。根據實施例,緩衝記憶體可以包括DDR SDRAM(雙倍資料速率同步動態隨機存取記憶體)、DDR4 SDRAM、LPDDR4(低功耗雙倍資料速率4)SDRAM、GDDR(圖形雙倍資料速率)SDRAM、LPDDR(低功耗DDR)或RDRAM(記憶體匯流排式動態隨機存取記憶體)。當緩衝記憶體包括在記憶體控制器1000內部時,可以省略緩衝記憶體介面1050。
記憶體介面1060可以在記憶體控制器1000和記憶體裝置100之間交換命令、位址和資料。例如,記憶體介面1060可以通過通道(channel)將命令、位址、資料等傳送到記憶體裝置100,並且可以從記憶體裝置100接收資料等。記憶體介面1060可以基於由處理器1010分配和管理的超級區塊和區向記憶體裝置100傳送命令、位址和資料或從記憶體裝置100接收命令、位址和資料等。另外,當執行垃圾回收時,被選為犧牲超級區塊的超級區塊中的一部分資料可以被移動到另一超級區塊,並且可以對犧牲超級區塊執行抹除操作。
圖16是示出應用了根據本發明的實施例的儲存裝置的記憶卡系統的方塊圖。
參照圖16,記憶卡系統2000包括記憶體控制器2100、記憶體裝置2200和連接器2300。
記憶體控制器2100連接到記憶體裝置2200。記憶體控制器2100被配置為存取記憶體裝置2200。例如,記憶體控制器2100可以被配置為控制記憶體裝置2200的讀取、編程、抹除和背景(background)操作。記憶體控制器2100被配置為提供記憶體裝置2200和主機之間的介面。記憶體控制器2100被配置為驅動用於控制記憶體裝置2200的韌體(firmware)。記憶體控制器2100可以以與參照圖1描述的記憶體控制器200相同的方式實現。例如,記憶體控制器2100可以在記憶體裝置2200中分配區和包括該區的超級區塊,並可以以區域和超級區塊為單位控制記憶體裝置2200。
例如,記憶體控制器2100可以包括諸如RAM(隨機存取記憶體)、處理單元、主機介面、記憶體介面、糾錯部的元件。
記憶體控制器2100可以通過連接器2300與外部裝置進行通訊。記憶體控制器2100可以根據特定的通訊標準與外部裝置(例如,主機)進行通訊。例如,記憶體控制器2100可以被配置為通過諸如USB(通用序列匯流排(Universal Serial Bus))、MMC(多媒體卡(MultiMedia Card))、eMMC(嵌入式多媒體卡(embedded MMC))、PCI(周邊組件互連(Peripheral Component Interconnection))、PCI-E(快速的周邊組件互連(PCI express))、ATA(先進技術附件(Advanced Technology Attachment))、Serial-ATA(序列ATA)、Parallel-ATA(平行ATA)、SCSI(小型電腦系統介面(Small Computer System Interface))、ESDI(增強型小型磁盤機介面(enhanced small disk interface))、IDE(電子整合驅動器(Integrated Drive Electronics))、Firewire(火線)、UFS(通用快閃儲存(Universal Flash Storage))、WIFI、藍牙(Bluetooth)、NVMe的各種通訊標準中的至少一種與外部裝置進行通訊。例如,連接器2300可以由上述各種通訊標準中的至少一種來定義。
例如,記憶體裝置2200可以被配置為諸如EEPROM(電可抹除可編程ROM(Electrically Erasable and Programmable ROM))、NAND快閃記憶體、NOR快閃記憶體、PRAM(相變RAM(Phase-change RAM))、ReRAM(電阻RAM(Resistive RAM))、FRAM(鐵電RAM(Ferroelectric RAM))、STT-MRAM(自旋轉移矩RAM(Spin Transfer Torque Magnetic RAM))的各種非揮發性儲存裝置。
記憶體控制器2100和記憶體裝置2200可以整合到一個半導體器件中以構成記憶卡。例如,記憶體控制器2100和記憶體裝置2200可以整合到一個半導體器件中以構成諸如PC卡(個人電腦記憶卡卡國際協會(personal computer memory card international association, PCMCIA))、CF卡、智慧型媒體卡(SM、SMC)、記憶棒、多媒體卡(MMC、RS-MMC、MMCmicro、eMMC)、SD卡(SD、miniSD、microSD、SDHC)、通用快閃儲存(UFS)的記憶卡。
圖17是示出應用了根據本發明的實施例的儲存裝置的固態硬碟(Solid State Drive, SSD)系統的方塊圖。
參照圖17,SSD系統3000包括主機3100和SSD 3200。SSD 3200通過訊號連接器3001向主機3100傳送訊號和從主機3100接收訊號,並且通過電源連接器3002接收電力。SSD 3200包括SSD控制器3210、多個快閃記憶體3221~322n、輔助電源裝置3230和緩衝記憶體3240。
根據本發明的實施例,SSD控制器3210可以執行參照圖1說明的記憶體控制器200的功能。
SSD控制器3210可以回應於從主機3100接收的訊號來控制多個快閃記憶體3221~322n。SSD控制器3210可以通過多個通道CH1~CHn控制多個快閃記憶體。一個以上的記憶體晶元可以連接到每個通道。例如,訊號可以是基於主機3100和SSD 3200的介面的訊號。例如,訊號可以是由諸如USB(通用序列匯流排(Universal Serial Bus))、MMC(多媒體卡(MultiMedia Card))、eMMC(嵌入式多媒體卡(embedded MMC))、PCI(周邊組件互連(Peripheral Component Interconnection))、PCI-E(快速的周邊組件互連(PCI express))、ATA(先進技術附件(Advanced Technology Attachment))、Serial-ATA(序列ATA)、Parallel-ATA(平行ATA)、SCSI(小型電腦系統介面(Small Computer System Interface))、ESDI(增強型小型磁盤機介面(enhanced small disk interface))、IDE(電子整合驅動器(Integrated Drive Electronics))、Firewire(火線)、UFS(通用快閃儲存(Universal Flash Storage))、WIFI、藍牙(Bluetooth)、NVMe的介面中的至少一種定義的訊號。SSD控制器3210可以根據從主機3100接收的垃圾回收執行請求來執行垃圾回收。
輔助電源裝置3230通過電源連接器3002連接到主機3100。輔助電源裝置3230可以從主機3100接收電力並進行充電。當來自主機3100的電力供應不順暢時,輔助電源裝置3230可以向SSD 3200供應電力。例如,輔助電源裝置3230可以位於SSD 3200內或可以位於SSD 3200外部。例如,輔助電源裝置3230可以位於主板上以向SSD 3200供應輔助電力。
緩衝記憶體3240作為SSD 3200的緩衝記憶體操作。例如,緩衝記憶體3240可以臨時儲存從主機3100接收的資料或從多個快閃記憶體3221~322n接收的資料,或者緩衝記憶體3240可以臨時儲存快閃記憶體3221~322n的元資料(例如,映射表)。緩衝記憶體3240可以包括諸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的揮發性記憶體或諸如FRAM、ReRAM、STT-MRAM、PRAM的非揮發性記憶體。
圖18是示出應用了根據本發明的實施例的儲存裝置的用戶系統的方塊圖。
參照圖18,用戶系統4000包括應用處理器(Application Processor)4100、記憶體模組(Memory Module)4200、網路模組(Network Module)4300、儲存模組(Storage Module)4400和用戶介面(User Interface)4500。
應用處理器4100可以驅動包括在用戶系統4000中的元件、操作系統(OS)、用戶程式或文件系統等。例如,應用處理器4100可以包括控制包括在用戶系統4000中的元件的控制器、介面和圖形引擎等。應用處理器4100可以被提供為單晶片系統(SoC)。應用處理器4100可以為用戶請求寫入的資料產生記錄,基於該記錄分配分區組和分區,並且將分區被分配到的資料提供給儲存模組4400。
記憶體模組4200可以作為用戶系統4000的主記憶體、操作記憶體、緩衝記憶體或快速緩衝記憶體來操作。記憶體模組4200可以包括諸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR2 SDRAM、LPDDR3 SDRAM的揮發性隨機存取記憶體或諸如PRAM、ReRAM、MRAM、FRAM的非揮發性隨機存取記憶體。例如,應用處理器4100和記憶體模組4200可以基於POP(疊層封裝(Package on Package))封裝並且可以被提供為單個半導體封裝。
網路模組4300可以與外部裝置進行通訊。例如,網路模組4300可以支持諸如CDMA(碼分多址(Code Division Multiple Access))、GSM(全球移動通訊系統(Global System for Mobile communication))、WCDMA(寬帶CDMA(wideband CDMA))、CDMA-2000、TDMA(時分多址(Time Division Multiple Access))、LTE(長期演進(Long Term Evolution))、Wimax、WLAN、UWB、藍牙、Wi-Fi的無線通訊。例如,網路模組4300可以包括在應用處理器4100中。
儲存模組4400可以儲存資料。例如,儲存模組4400可以儲存從應用處理器4100接收的資料。或者,儲存模組4400可以將儲存在儲存模組4400中的資料傳送到應用處理器4100。例如,儲存模組4400可以實現為諸如PRAM(相變RAM(Phase-change RAM))、MRAM(磁性RAM(Magnetic RAM))、RRAM(電阻RAM(Resistive RAM))、NAND快閃記憶體、NOR快閃記憶體、三維結構的NAND快閃記憶體的非揮發性半導體記憶體器件。例如,儲存模組4400可以被提供為諸如用戶系統4000的記憶卡或外部驅動器的可移動驅動器(removable drive)。
例如,儲存模組4400可以包括多個非揮發性記憶體裝置,並且多個非揮發性記憶體裝置可以以與參照圖1說明的記憶體裝置100相同的方式操作。儲存模組4400可以以與參照圖1說明的儲存裝置50相同的方式操作。
用戶介面4500可以包括用於將資料或命令輸入到應用處理器4100或者將資料輸出到外部裝置的介面。例如,用戶介面4500可以包括諸如鍵盤、小鍵盤、按鈕、觸摸面板、觸摸螢幕、觸摸板、觸摸球、攝像頭、麥克風、陀螺儀傳感器、振動傳感器、壓電元件的用戶輸入介面。用戶介面4500可以包括諸如LCD(液晶顯示器(Liquid Crystal Display))、OLED(有機發光二極體(Organic Light Emitting Diode))顯示器、AMOLED(有源矩陣OLED(Active Matrix OLED))顯示器、LED、揚聲器和監視器的用戶輸出介面。
儘管為了說明的目的已經描述了各種實施例,但是對於本發明所屬技術領域中具有通常知識者顯而易見的是,在不背離如所附申請專利範圍所限定的本發明的精神和範圍的情況下可以進行各種改變和修改。 此外,實施例可以組合並形成附加實施例。
50:儲存裝置
100:記憶體裝置
110:記憶體單元陣列
111a:第一超級區塊
111b:第二超級區塊
112a:小的單晶元區
112b:小的多晶元區
120:電壓產生部
130:位址解碼器
140:輸入/輸出電路
150:控制邏輯
200:記憶體控制器
210:區管理部
220:裝置垃圾回收控制部
400:主機
410:應用
420:文件系統
430:主機垃圾回收控制部
421a:第一分區組
421b:第二分區組
422a:第一分區
422b:第二分區
1000:記憶體控制器
1010:處理器
1020:內部記憶體
1030:糾錯碼電路
1040:主機介面
1050:緩衝記憶體介面
1060:記憶體介面
2000:記憶卡系統
2100:記憶體控制器
2200:記憶體裝置
2300:連接器
3000:SSD系統
3001:訊號連接器
3002:電源連接器
3100:主機
3200:SSD
3210:SSD控制器
3221~322n:快閃記憶體
3230:輔助電源裝置
3240:緩衝記憶體
4000:用戶系統
4100:應用處理器
4200:記憶體模組
4300:網路模組
4400:儲存模組
4500:用戶介面
BLK1~BLKi:記憶體區塊
BLK#1~BLK#N:記憶體區塊
CL:列線
D1、D2:資料
LA1~LAn:邏輯位址
RL:行線
S1301、S1303、S1305、S1307、S1309、S1311:步驟
S1401、S1403:步驟
圖1是用於說明根據本發明的一個實施例的儲存裝置的圖。
圖2是用於說明圖1的記憶體裝置的圖。
圖3是用於說明圖2的記憶體單元陣列的圖。
圖4是用於說明根據本發明的一個實施例的儲存裝置的超級區塊分配過程的圖。
圖5是用於說明根據本發明的一個實施例的儲存裝置的超級區塊管理的圖。
圖6是用於說明由文件系統分配的分區的結構的圖。
圖7是用於說明由文件系統分配第一分區組的新的分區的過程的圖。
圖8和圖9是用於說明由文件系統分配第二分區組的新的分區的過程的圖。
圖10是用於說明通過文件系統的第一分區組的重置過程的圖。
圖11是用於說明通過文件系統的第二分區組的重置過程的圖。
圖12是用於說明根據本發明的一個實施例的儲存裝置中的垃圾回收的圖。
圖13是用於說明根據本發明的一個實施例的選擇儲存裝置的犧牲超級區塊的過程的流程圖。
圖14是用於說明根據本發明的一個實施例的在儲存裝置中對犧牲超級區塊執行垃圾回收的過程的流程圖。
圖15是示出圖1的記憶體控制器的另一實施例的圖。
圖16是示出應用了根據本發明的實施例的儲存裝置的記憶卡系統的方塊圖。
圖17是示出應用了根據本發明的實施例的儲存裝置的固態硬碟(SSD)系統的方塊圖;以及
圖18是示出應用了根據本發明的實施例的儲存裝置的用戶系統的方塊圖。
50:儲存裝置
100:記憶體裝置
200:記憶體控制器
400:主機
410:應用
420:文件系統
Claims (20)
- 一種儲存裝置,包括: 記憶體裝置,包括多個記憶體晶元;以及 記憶體控制器,以超級區塊為單位控制所述記憶體裝置,所述超級區塊包括所述記憶體裝置中包括的兩個以上的記憶體區塊, 其中,記憶體裝置中的一個以上的超級區塊是包括多個小的多晶元區的超級區塊,所述小的多晶元區包括不同的記憶體晶元中包括的每個記憶體區塊的一部分, 其中,所述記憶體控制器進一步包括被配置為:回應於在有效頁面接收的垃圾回收執行請求在所述記憶體裝置內的所述超級區塊中選擇犧牲超級區塊, 所述垃圾回收執行請求進一步包括所述小的多晶元區中包括的有效頁面的資訊。
- 如請求項1所述的儲存裝置,其中, 所述記憶體控制器在所述記憶體裝置內的所述超級區塊中選擇所述犧牲超級區塊,所述超級區塊中每一所述犧牲超級區塊包括多個所述小的多晶元區。
- 如請求項2所述的儲存裝置,其中, 每一所述小的多晶元區具有滿狀態、空狀態、啟動狀態和準備重置狀態中的任何一種狀態,所述滿狀態是對應區中不存在空區域的狀態,所述空狀態是所述對應區為空的狀態,所述啟動狀態是資料僅儲存在所述對應區中的一部分區域中的狀態,並且所述準備重置狀態是在超級區塊中包含所述對應區執行了用於通過抹除在超級區塊中的所有小的多晶元區包括所述對應區來使所有小的多晶元在超級區塊中包括所述對應區變成空狀態的重置操作,其中,根據包括所述對應區的超級區塊中的其他小的多晶元區的狀態在超級區塊中包含所述對應區的重置操作為尚未完成的狀態。
- 如請求項3所述的儲存裝置,其中, 所述記憶體控制器在所述記憶體裝置內的所述超級區塊中,從僅由處於滿狀態和準備重置狀態的小的多晶元區組成的超級區塊中選擇所述犧牲超級區塊。
- 如請求項3所述的儲存裝置,其中, 所述記憶體控制器進一步包括被配置為: 當對在選擇的超級區塊包括任一小的多晶元區執行重置操作時,在選擇的超級區塊中所述任一小的多晶元區轉換為準備重置狀態;及 所有轉換的小的多晶元區中的所有小的多晶元區被抹除以變成空狀態。
- 如請求項4所述的儲存裝置,其中, 在所述記憶體裝置內的每一超級區塊中,關於所述小的多晶元區中包括的有效頁面的資訊包括關於處於滿狀態的所述小的多晶元區中包括的有效頁面的資訊。
- 如請求項6所述的儲存裝置,其中, 所述記憶體控制器基於所述小的多晶元區中包括的有效頁面的資訊選擇所述犧牲超級區塊。
- 如請求項6所述的儲存裝置,其中, 關於處於滿狀態的所述小的多晶元區中包括的有效頁面的資訊包括處於滿狀態的小的多晶元區中包括的有效頁面的數量和包括預定數量以上的有效頁面的小的多晶元區的列表。
- 如請求項6所述的儲存裝置,其中, 所述記憶體控制器基於處於準備重置狀態的所述小的多晶元區的數量選擇所述犧牲超級區塊。
- 如請求項4所述之儲存裝置,其中, 所述記憶體控制器進一步包括被配置為: 複製儲存在所述犧牲超級區塊中處於滿狀態的小的多晶元區中的資料並將其儲存在包括多個小的多晶元區的另一超級區塊中。
- 如請求項1所述之儲存裝置,其中, 在記憶體裝置內所述超級區塊中的一個以上的超級區塊包括多個小的單晶元區,所述小的單晶元區包括一個記憶體晶元中的一個以上的記憶體區塊。
- 一種儲存裝置的操作方法,所述儲存裝置包括:記憶體裝置,包括多個記憶體晶元;以及記憶體控制器,以超級區塊為單位控制所述記憶體裝置,所述超級區塊包括所述記憶體裝置中包括的兩個以上的記憶體區塊,所述儲存裝置的操作方法包括以下步驟: 在有效頁面接收垃圾回收執行請求和資訊;以及 基於有效頁面的資訊從所述記憶體裝置內的所述超級區塊中選擇犧牲超級區塊; 其中,所述記憶體裝置中的一個以上的超級區塊是包括多個小的多晶元區的超級區塊,所述小的多晶元區包括不同的記憶體晶元中包括的每個記憶體區塊的一部分,其中,所述有效頁面包含在所述小的多晶元區中。
- 如請求項12所述的儲存裝置的操作方法,其中, 在所述記憶體裝置內的所述超級區塊中,從包括多個所述小的多晶元區的超級區塊中選擇所述犧牲超級區塊。
- 如請求項13所述的儲存裝置的操作方法,其中, 所述小的多晶元區具有滿狀態、空狀態、啟動狀態和準備重置狀態中的任何一種狀態,所述滿狀態是對應區中不存在空區域的狀態,所述空狀態是所述對應區為空的狀態,所述啟動狀態是資料僅儲存在所述對應區中的一部分區域中的狀態,並且所述準備重置狀態是在超級區塊中包括所述對應區執行了用於通過抹除在超級區塊中的所有小的多晶元區包括所述對應區來使在超級區塊中的所有小的多晶元區包括所述對應區變成空狀態的重置操作,其中,根據包括所述對應區的超級區塊中的其他小的多晶元區的狀態,重置操作在超級區塊中包括所述對應區為尚未完成的狀態, 其中,在所述記憶體裝置內的所述超級區塊中,從僅由處於滿狀態和準備重置狀態的小的多晶元區組成的超級區塊中選擇所述犧牲超級區塊。
- 如請求項14所述的儲存裝置的操作方法,其中, 選擇所述犧牲超級區塊的步驟包括以下步驟: 在所述記憶體裝置內選擇僅由處於所述滿狀態和所述準備重置狀態的小的多晶元區組成的超級區塊作為候選超級區塊;以及 在每一所述候選超級區塊中基於所述候選超級區塊中的處於滿狀態的小的多晶元區中包括的有效頁面的數量選擇所述犧牲超級區塊。
- 如請求項15所述的儲存裝置的操作方法,其中, 在所述記憶體裝置內每一所述超級區塊中,關於所述有效頁面的資訊包括小的多晶元區包括關於處於滿狀態的所述小的多晶元區中包括的有效頁面數量的資訊。
- 如請求項15所述的儲存裝置的操作方法,其中, 所述候選超級區塊中選擇犧牲超級區塊的步驟包括以下步驟: 基於所述候選超級區塊中的每一個中處於準備重置狀態的小的多晶元區的數量計算成本; 基於所述候選超級區塊中的每一個中處於滿狀態的小的多晶元區中包括的有效頁面的數量修改所述成本;以及 比較修改的所述候選超級區塊的成本。
- 如請求項15所述的儲存裝置的操作方法,更包括以下步驟: 複製儲存在所述犧牲超級區塊中處於滿狀態的小的多晶元區中的資料; 將複製的所述資料儲存在另一超級區塊中;以及 抹除所述犧牲超級區塊。
- 如請求項18所述的儲存裝置的操作方法,其中, 所述另一超級區塊是包括多個所述小的多晶元區的超級區塊。
- 如請求項12所述的儲存裝置的操作方法,其中, 在所述記憶體裝置內所述超級區塊中的一個以上的超級區塊包括多個小的單晶元區,所述小的單晶元區包括一個記憶體晶元中的一個以上的記憶體區塊。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163192877P | 2021-05-25 | 2021-05-25 | |
US63/192,877 | 2021-05-25 | ||
KR10-2021-0086013 | 2021-06-30 | ||
KR20210086013 | 2021-06-30 | ||
KR10-2021-0094981 | 2021-07-20 | ||
KR20210094981 | 2021-07-20 | ||
KR1020220060475A KR20220159269A (ko) | 2021-05-25 | 2022-05-17 | 스토리지 장치 및 그 동작 방법 |
KR10-2022-0060475 | 2022-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202314510A true TW202314510A (zh) | 2023-04-01 |
Family
ID=84116272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111119340A TW202314510A (zh) | 2021-05-25 | 2022-05-24 | 儲存裝置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12007887B2 (zh) |
CN (1) | CN115390745A (zh) |
TW (1) | TW202314510A (zh) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315894B2 (en) | 2001-07-17 | 2008-01-01 | Mcafee, Inc. | Network data retrieval and filter systems and methods |
US8799572B2 (en) | 2009-04-20 | 2014-08-05 | Microsoft Corporation | Sliding-window multi-class striping |
US9489296B1 (en) * | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
US9773014B2 (en) | 2014-06-03 | 2017-09-26 | Samsung Electronics Co., Ltd. | Heterogeneous distributed file system using different types of storage mediums |
JP6450598B2 (ja) | 2015-01-19 | 2019-01-09 | 東芝メモリ株式会社 | 情報処理装置、情報処理方法およびプログラム |
US10515071B2 (en) | 2015-04-08 | 2019-12-24 | Hitachi, Ltd. | Database management system and database management method using logical addresses and timestamps |
KR102653401B1 (ko) * | 2016-07-18 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102457564B1 (ko) | 2017-09-20 | 2022-10-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP2019079464A (ja) * | 2017-10-27 | 2019-05-23 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP7074453B2 (ja) | 2017-10-30 | 2022-05-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR102524432B1 (ko) | 2018-04-09 | 2023-04-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102624911B1 (ko) | 2018-06-13 | 2024-01-12 | 삼성전자주식회사 | 개선된 메타 데이터 관리를 통한 플래시 메모리의 내구성 향상 방법 |
KR20200044460A (ko) * | 2018-10-19 | 2020-04-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11341010B2 (en) | 2020-01-15 | 2022-05-24 | EMC IP Holding Company LLC | Dynamic reclamation of storage stripes |
US11989445B2 (en) | 2021-05-13 | 2024-05-21 | Micron Technology, Inc. | Automatic operating mode management for memory using workload profile data |
-
2022
- 2022-05-24 US US17/752,449 patent/US12007887B2/en active Active
- 2022-05-24 TW TW111119340A patent/TW202314510A/zh unknown
- 2022-05-25 CN CN202210578204.8A patent/CN115390745A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US12007887B2 (en) | 2024-06-11 |
US20220382673A1 (en) | 2022-12-01 |
CN115390745A (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201732597A (zh) | 資料儲存裝置和其操作方法 | |
US11307803B2 (en) | Storage device for suspending program operation and performing read operation and operating method thereof | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
US11861359B2 (en) | Storage device and method of operating the same | |
WO2019203915A1 (en) | Storage cache management | |
US20230418485A1 (en) | Host device, storage device, and electronic device | |
TWI650639B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20220066696A1 (en) | Memory controller and method of operating the same | |
US11520519B2 (en) | Storage device and method of operating the same | |
US11954350B2 (en) | Storage device and method of operating the same | |
US11593023B2 (en) | Memory controller and method of operating the same | |
US11625178B2 (en) | Storage device and method of operating the same | |
TW202314510A (zh) | 儲存裝置及其操作方法 | |
US20240231663A1 (en) | Storage device and method of operating the same | |
KR20220159269A (ko) | 스토리지 장치 및 그 동작 방법 | |
US11815938B2 (en) | Storage device and method of operating the same | |
KR20220159268A (ko) | 호스트 장치, 스토리지 장치 및 전자 장치 | |
US11210223B2 (en) | Storage device and operating method thereof | |
US20220391133A1 (en) | Memory controller and memory system including the same | |
US20240020252A1 (en) | Computing system and operating method thereof | |
US20230384936A1 (en) | Storage device, electronic device including storage device, and operating method thereof | |
US20230136664A1 (en) | Storage device and electronic device | |
KR20230116341A (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
KR20230063857A (ko) | 스토리지 장치 및 전자 장치 | |
TW202331533A (zh) | 儲存裝置及其操作方法 |