TW202314471A - 儲存裝置及其操作方法 - Google Patents
儲存裝置及其操作方法 Download PDFInfo
- Publication number
- TW202314471A TW202314471A TW111119338A TW111119338A TW202314471A TW 202314471 A TW202314471 A TW 202314471A TW 111119338 A TW111119338 A TW 111119338A TW 111119338 A TW111119338 A TW 111119338A TW 202314471 A TW202314471 A TW 202314471A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- physical
- memory
- area
- physical area
- Prior art date
Links
Images
Classifications
-
- 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
- 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
- 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/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
根據本發明的一個實施例的儲存裝置可以包括:記憶體裝置,包括多個晶元;以及記憶體控制器,從外部主機接收資料和關於所述資料屬性的記錄,基於所述資料的記錄分配將要儲存所述資料的所述記憶體裝置中的超級區塊和所述超級區塊中包括的實體區域,並儲存每個所述實體區域儲存的資料的記錄和關於不存在空區域的處於滿狀態的實體區域轉換為滿狀態的時間點的資訊,其中所述記憶體控制器可以被配置為控制所述記憶體裝置以基於內部區域全部為空的處於空狀態的實體區域的數量執行垃圾回收,並且在執行所述垃圾回收時,基於所述資料的記錄和關於滿狀態轉換時間點的資訊選擇犧牲實體區域。
Description
本發明關於一種電子裝置,更具體地,本發明關於一種儲存裝置及其操作方法。
儲存裝置將從主機接收的邏輯位址轉換為實體位址並使用,因此,主機中的邏輯區域和儲存裝置的實體區域是相互關聯的。因此,為了提高電子裝置的性能,需要一種能夠互補地控制主機和儲存裝置的新裝置或方法。
本發明的實施例提供了一種能夠根據每個資料的特性進行有效管理的儲存裝置及其操作方法。
根據本發明的實施例的儲存裝置可以包括:記憶體裝置,包括多個晶元;以及記憶體控制器,從外部主機接收資料和關於所述資料屬性的記錄,基於所述資料的記錄分配將要儲存所述資料的所述記憶體裝置中的超級區塊和所述超級區塊中包括的實體區域,並儲存每個所述實體區域儲存的資料的記錄和關於不存在空區域的處於滿狀態的實體區域轉換為滿狀態的時間點的資訊,其中所述記憶體控制器可以被配置為控制所述記憶體裝置以基於內部區域全部為空的處於空狀態的實體區域的數量執行垃圾回收,並且在執行所述垃圾回收時,基於所述資料的記錄和關於滿狀態轉換時間點的資訊選擇犧牲實體區域,其中,滿狀態的實體區域中儲存有資料,而空狀態的實體區域中沒有儲存資料。
根據本發明的實施例的操作方法是一種儲存裝置的操作方法,所述儲存裝置包括:記憶體裝置,包括多個晶元;以及記憶體控制器,從外部主機接收資料和關於所述資料屬性的記錄,基於所述資料的記錄分配將要儲存所述資料的所述記憶體裝置中的超級區塊和所述超級區塊中包括的實體區域,所述儲存裝置的操作方法可以包括以下步驟:基於內部區域全部為空的處於空狀態的實體區域的數量來確定是否執行垃圾回收;從不存在空區域的處於滿狀態的實體區域中選擇候選實體區域;以及基於儲存在所述候選實體區域中的資料的記錄和候選實體區域轉換為滿狀態的時間點確定犧牲實體區域,其中,滿狀態的實體區域中儲存有資料,而空狀態的實體區域中沒有儲存資料。
根據本發明的實施例的儲存裝置可以包括:記憶體裝置,包括多個記憶體晶元;以及記憶體控制器,將所述記憶體裝置劃分為多個超級區塊並進行控制,其中所述多個超級區塊中的一個以上的超級區塊可以分別包括多個實體區域,所述實體區域包括不同的記憶體晶元中包括的每個記憶體區塊的一部分,所述記憶體控制器可以控制所述記憶體裝置以基於關於所述實體區域的資訊執行垃圾回收。
根據本發明的實施例的控制器的操作方法可以包括以下步驟:當處於空(empty)狀態的儲存單元的數量小於或等於閾值時,基於記錄和每個超級區塊中的處於滿(full)狀態的每個儲存單元的時間點定義的超級區塊的成本,選擇僅具有處於滿(full)狀態的儲存單元和處於準備重置(ready to reset)狀態的儲存單元的超級區塊;以及控制記憶體裝置以對選擇的超級區塊中的處於滿(full)狀態的儲存單元執行垃圾回收,其中處於空(empty)狀態的儲存單元的內部充滿了能夠儲存資料的空的空間,處於滿(full)狀態的儲存單元的內部充滿了儲存的資料,所述記錄至少與儲存在相應的處於滿(full)狀態的儲存單元中的資料的存取頻率相關並且從外部提供,所述時間點表示相應的處於滿(full)狀態的儲存單元的內部充滿儲存的資料的時間。
根據本發明的實施例的控制器的操作方法可以包括以下步驟:當處於空(empty)狀態的儲存單元的數量介於第一閾值和第二閾值之間時,基於記錄和處於滿(full)狀態的每個儲存單元的時間點定義的成本,從處於滿(full)狀態的儲存單元選擇犧牲儲存單元;以及控制記憶體裝置以將有效資料從所述犧牲儲存單元移動到另一儲存單元,其中處於空(empty)狀態的儲存單元的內部充滿了能夠儲存資料的空的空間,處於滿(full)狀態的儲存單元的內部充滿了儲存的資料,所述記錄至少與儲存在相應的處於滿(full)狀態的儲存單元中的資料的存取頻率相關並且從外部提供,所述時間點表示相應的處於滿(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中的實體區域(physical 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可以執行對應於連續的實體位址的連續操作。此時,可以根據被分配的實體區域的類型確定連續的實體位址。將參照圖5和圖6等更詳細地說明實體區域的類型。
在實施例中,儲存裝置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)。超級區塊可以是控制邏輯150管理記憶體單元陣列110中包括的多個記憶體區塊(BLK)的單位。超級區塊可以包括多個記憶體區塊(BLK)。一個超級區塊可以是同時或在同一時間段內執行讀取操作和/或寫入操作等或結合執行或相關聯地執行讀取操作和/或寫入操作等的記憶體區塊(BLK)的集合,或者一個超級區塊可以是針對一個命令執行讀取操作和/或寫入操作等的記憶體區塊(BLK)集合,或者一個超級區塊可以是在記憶體單元陣列110中結合執行或同時執行讀取操作和/或寫入操作等的一組記憶體區塊(BLK)的集合。此外,多個記憶體區塊(BLK)中的在管理或操作方面彼此不同的記憶體區塊(BLK)組可以被稱為超級區塊。在實施例中,一個超級區塊可以儲存被分類為相同的資料類型的資料。兩個以上的超級區塊中的每一個的大小可以相同。即,兩個以上的超級區塊中的每一個中包括的記憶體區塊(BLK)的數量可以相同。或者,兩個以上的超級區塊中的至少一個可以具有與其餘的超級區塊不同的大小。即,多個超級區塊中的至少一個超級區塊中包括的記憶體區塊(BLK)的數量可以與其餘的超級區塊中包括的記憶體區塊(BLK)的數量不同。另外,兩個以上的超級區塊中的每一個中包括的兩個以上的記憶體區塊(BLK)可以都位於相同的一個記憶體晶元上。與此不同,兩個以上的超級區塊中的每一個中包括的兩個以上的記憶體區塊(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是用於說明根據本發明的一個實施例的儲存裝置的圖。
參照圖4,主機裝置的文件系統420可以回應於來自應用410的請求寫入資料的請求來產生關於資料屬性的記錄,並且基於該記錄分配與資料對應的分區。分區可以是多個邏輯位址的組,分配與資料對應的分區可以表示將該分區中包括的多個邏輯位址中的一部分或全部分配給該資料。在一個實施例中,對應於一個分區的多個邏輯位址可以是連續的邏輯位址。或者,對應於一個分區的多個邏輯位址可以不連續,但是關於每個分區中包括的邏輯位址的資訊可以儲存在主機中的記憶體或儲存裝置中的記憶體等中,並且可以管理每個分區的邏輯位址。另外,文件系統420可以基於分配給資料的記錄確定包括分區的分區組。分區組可以包括多個分區,並且一個分區組中的分區中包括的邏輯位址可以是連續的。或者,一個分區組中的分區中包括的邏輯位址可以不連續,但是關於每個分區組中包括的邏輯位址的資訊儲存在主機中的記憶體或儲存裝置中的記憶體等中,並且可以管理每個分區的邏輯位址。在一個實施例中,分區組可以包括第一分區組和第二分區組,在所述第一分區組中文件系統將分區組中的任何一個空分區分配為新的分區,而不管分區組中的分區順序如何,在所述第二分區組中文件系統根據分區組中的分區順序分配新的分區。
另外,主機400可以將由文件系統420分配記錄和分區的資料提供給儲存裝置50。在一個示例中,可以通過主機400中的裝置介面(未示出)將資料提供給儲存裝置50。文件系統420可以將儲存裝置50中的記憶體裝置100劃分為多個區域並進行管理。在一個實施例中,文件系統420可以將記憶體裝置100中的儲存空間劃分為檢查點區域(Check Point Area)、段資訊表(Segment Info. Table, SIT)、節點位址表(Node Address Table, NAT)、段摘要區域(Segment Summary Area, SSA)和主區域(Main Area)。檢查點區域可以儲存檢查點。檢查點是在計算系統運行期間發生諸如突然斷電(Sudden Power Off)的系統中斷事件時保存直到系統的邏輯中斷點的狀態的資料,並且可以利用該檢查點恢復資料。段資訊表(SIT)可以包括每個段中的有效頁面資訊。節點位址表(NAT)可以包括構成儲存在記憶體裝置100中的文件的索引樹的每個節點的標識符和對應於每個節點標識符的實體位址。段摘要區域(SSA)可以包括後面描述的主區域的每個段的摘要資訊。主區域可以是儲存實際用戶使用的各種目錄資訊、資料、文件資訊等的空間。在本說明書中,儲存在主區域中的所有資料和資訊都被定義為資料。此時,儲存在主區域中的資料可以根據其類型分類為節點或資料。節點可以表示索引節點(inode)或索引(index),而資料可以表示目錄(directory)或用戶文件資料(user file data)。另外,儲存的資料可以根據溫度進行分類,資料的溫度可以分別分類為熱、溫和冷。在此,資料的溫度可以表示資料的存取頻率。因此,文件系統420可以將資料分類為熱節點、溫節點、冷節點、熱資料、溫資料、冷資料等,並且資料可以在被分配記錄之後儲存在主區域中。因此,主區域可以被劃分為對應於由文件系統420分配的段的虛擬區域,並且每個虛擬區域可以分配有特定的記錄。另外,這樣的虛擬區域可以被分組成並區分為對應於由文件系統420確定的分區組的虛擬區域組。另外,每個虛擬區域可以包括多個段,並且資料可以依序地儲存在每個段中。此時,一個段可以對應於一個或多個邏輯位址。這樣的虛擬區域可以在主機中的主機記憶體(未示出)或儲存裝置的緩衝記憶體裝置(未示出)等中物理地實現,或者可以通過在主機記憶體或緩衝記憶體裝置中管理關於每個分區和每個分區組中包括的邏輯位址的資訊來邏輯地實現。
儲存裝置50可以包括記憶體控制器200和記憶體裝置100,並且記憶體控制器200可以包括區域管理部210和區域資訊儲存部220。
記憶體控制器200可以從主機400接收資料。資料可以是由文件系統420分配記錄和分區的資料。區域管理部210可以基於接收的資料的記錄來分配將要儲存資料的超級區塊。超級區塊可以包括多個實體區域,由於包括在其中的實體區域的形態根據超級區塊的類型而不同,因此分配超級區塊可以是確定儲存資料的實體區域的形態。即,可以確定應被包括在包括一個記憶體晶元中的一個以上的記憶體區塊的第一實體區域和包括不同的記憶體晶元中包括的每個記憶體區塊的一部分的第二實體區域中的哪個實體區域。此時,包括多個第一實體區域的超級區塊可以被稱為第一超級區塊,並且包括多個第二實體區域的超級區塊可以被稱為第二超級區塊。此時,儲存在第一超級區塊中的資料可以是由文件系統420分配了第一分區組中的分區的資料,並且儲存在第二超級區塊中的資料可以是被分配第二分區組中的分區的資料。
區域管理部210可以將關於將要儲存資料的實體區域的類型的資訊提供給快閃轉換層(未示出),並且快閃轉換層(未示出)可以基於此將被分配分區的資料的邏輯位址轉換為實體位址。在一個實施例中,被分配分區的資料可以被賦予分區中包括的邏輯位址,快閃轉換層(未示出)可以將將要儲存的資料的邏輯位址轉換為由區域管理部210確定的實體區域中的連續實體位址。
快閃轉換層(未示出)可以將轉換後的實體位址傳送到區域管理部210,並且區域管理部210可以控制記憶體裝置100以將資料儲存在接收的實體位址中。
另外,區域資訊儲存部220可以儲存由區域管理部210分配的每個實體區域的狀態資訊。每個實體區域可以被劃分為滿(full)狀態、空(empty)狀態和啟動(active)狀態。滿狀態可以表示資料儲存在實體區域中的所有區域中而區域中不存在空區域的狀態。空狀態可以表示沒有資料儲存在實體區域中的區域中而實體區域為空的狀態。啟動狀態可以表示資料僅儲存在實體區域中的一部分區域中的狀態,並且可以是打開(open)狀態或關閉(close)狀態。打開狀態可以表示在資料僅儲存在實體區域中的一部分區域的實體區域中當前資料正在被編程的實體區域,關閉狀態可以表示在資料僅儲存在實體區域中的一部分區域的實體區域中當前資料沒有正在被編程的實體區域。另外,根據實體區域的類型,可以更具有準備重置(ready to reset)狀態。準備重置狀態可以表示雖然執行了用於通過抹除實體區域來使其變成空狀態的重置操作,但是根據包括實體區域的超級區塊中的其他實體區域的狀態重置操作尚未完成的狀態。對此將在後面描述的圖5、圖6和圖12中更詳細地說明。區域資訊儲存部220可以儲存關於這樣的每個實體區域的狀態和每個實體區域的狀態轉換的時間點的資訊。在實施例中,區域資訊儲存部220可以儲存關於實體區域轉換為滿狀態的時間點的資訊。
另外,區域資訊儲存部220可以儲存儲存在每個實體區域的資料的記錄。如上所述,這樣的資料的記錄基於資料的類型和溫度等屬性,並且可以由主機400的文件系統420產生。在相同的實體區域中可以儲存具有相同的記錄的資料。
區域資訊儲存部220可以控制以將每個區域的狀態資訊和儲存的資料的記錄儲存在存在於記憶體控制器200內部或外部的緩衝記憶體(未示出)或記憶體裝置100的一部分中。區域資訊儲存部220可以提供關於儲存的實體區域的資訊以在執行垃圾回收時選擇犧牲實體區域。
圖5是用於說明根據本發明的一個實施例的儲存裝置的超級區塊分配過程的圖。
參照圖1和圖5,主機400的文件系統420基於資料的屬性為應用410請求寫入的資料產生記錄,並且基於此,對資料進行分類並確定包括要分配給資料的分區的分區組。根據各種標準,資料可以分為被分配第一分區組421a中的第一分區422a的第一類資料和被分配第二分區組421b中的第二分區422b的第二類資料。由文件系統分配第一分區組421a中的第一分區422a的資料可以在記憶體控制器200的控制下儲存在記憶體裝置100的第一超級區塊111a中的第一實體區域112a中,並且由文件系統分配第二分區組421b中的第二分區422b的資料可以儲存在記憶體裝置100的第二超級區塊111b中的第二實體區域112b中。第一分區組421a對應於第一超級區塊111a,因此,第一分區422a對應於第一實體區域112a。可以與分區組中的分區順序無關地被分配為新的分區的第一分區422a的特性符合以每個記憶體晶元管理的第一實體區域112a的特性,並且第一分區422a和第一實體區域112a具有相同的特性,即第一分區422a和第一實體區域112a都能夠以一個分區或區域為單位執行重置或抹除操作。另外,根據分區組中的分區順序被分配為新的分區的第二分區422b的特性符合跨多個記憶體晶元形成的第二實體區域112b的特性,並且第二分區422b和第二實體區域112b具有相同的特性,即第二分區422b和第二實體區域112b都不能以一個分區或區域為單位執行重置或抹除操作,在其各自所屬的第二分區組421b和第二超級區塊111b都處於能夠重置或抹除的狀態之後以分區組和超級區塊為單位執行重置或抹除操作。將參照圖6更詳細地說明第一實體區域112a和第二實體區域112b的形態,將參照圖7至圖11更詳細地說明第一分區422a和第二分區422b的分配和重置。
可以與分區順序無關地分配第一分區組421a中的第一分區422a,並且可以回應於來自主機400的將要儲存被分配分區的資料的實體區域分配請求,記憶體控制器200可以分配形成為一個記憶體晶元中的區域的第一實體區域112a。可以根據分區順序分配第二分區組422b中的第二分區422b,並且可以回應於來自主機400的將要儲存被分配分區的資料的實體區域分配請求,記憶體控制器200可以分配形成為包括多個記憶體晶元中的記憶體區塊的一部分的區域的第二實體區域112b。針對主機400的實體區域分配請求,當記憶體控制器200回復當前使用的超級區塊中不存在額外的可被分配的實體區域的資訊時,文件系統420可以在分配新的分區組之後分配新的分區組中的分區,作為回應,記憶體控制器200可以在分配新的超級區塊和包括在其中的新的實體區域之後儲存被分配新的分區的資料。或者,文件系統420不從記憶體控制器200接收關於超級區塊和實體區域的資訊,可以自行分配新的分區組和包括在其中的分區。
圖6是用於說明根據本發明的一個實施例的儲存裝置的超級區塊管理的圖。
參照圖1、圖4和圖6,記憶體單元陣列110可以包括多個記憶體晶元,例如,可以包括四個記憶體晶元(DIE#0~DIE#3)。另外,每個記憶體晶元可以包括多個平面,每個平面包括多個記憶體區塊,例如,可以包括四個平面(PLANE#0~PLANE#3)。記憶體控制器200可以通過將記憶體裝置100的記憶體單元陣列110劃分為多個超級區塊來控制記憶體單元陣列110。超級區塊可以包括記憶體單元陣列110中包括的兩個以上的記憶體區塊。超級區塊可以包括多個實體區域(physical zone)。可以跨多個記憶體晶元形成超級區塊,並且如圖6所示,可以跨所有記憶體晶元形成超級區塊。超級區塊可以根據包括在其中的實體區域的形態分為第一超級區塊111a和第二超級區塊111b。在根據本發明的一個實施例的儲存裝置中,作為記憶體控制器200控制記憶體裝置100的單位的超級區塊可以僅由包括第一實體區域112a的第一超級區塊111a組成,或者可以僅由包括第二實體區域112b的第二超級區塊111b組成,或者可以包括第一超級區塊和第二超級區塊。
第一超級區塊111a中包括的第一實體區域112a可以包括一個記憶體晶元中的一個以上的區塊。例如,如圖6所示,對於每個記憶體晶元,包括平面0至平面3中包括的一個記憶體區塊的區域可以被指定為一個區域(zone),因此,第一超級區塊111a可以包括四個第一實體區域112a,每個記憶體晶元形成一個第一實體區域112a。
第二超級區塊111b中包括的第二實體區域112b可以包括不同的記憶體晶元中包括的每個區塊的一部分。例如,如圖6所示,第二實體區域112b可以跨所有四個記憶體晶元(DIE#0~DIE#3)形成,並且可以僅包括每個平面中包括的每個記憶體區塊的一部分。例如,如圖6所示,可以僅包括每個平面中包括的每個記憶體區塊的頁面中的1/4頁面。因此,第二超級區塊111b可以跨所有記憶體晶元形成,並且可以包括形成為僅包括每個記憶體區塊的一部分頁面的四個第二實體區域112b。
在一個實施例中,第一超級區塊111a和第二超級區塊111b的大小可以相同。即,第一超級區塊111a和第二超級區塊111b可以包括相同數量的記憶體區塊。另外,第一實體區域112a和第二實體區域112b的大小可以相同。即,第一實體區域112a和第二實體區域112b中包括的頁面數量可以相同。第一實體區域112a可以形成在一個記憶體晶元中,而第二實體區域112b可以跨多個記憶體晶元形成。因此,在第二實體區域112b的情況下,可以以晶元交錯方式操作,特別地,如圖6所示,當第二實體區域112b跨所有記憶體晶元形成時,可以以全晶元(full-die)交錯方式操作。然而,不能同時分配和編程不同的第二實體區域112b。另外,由於第二實體區域僅包括每個記憶體區塊的一部分,因此當要抹除特定的實體區域時無法立即抹除,當可以抹除部分包括在該實體區域中的每個記憶體區塊的所有頁面時,即,當可以抹除包括該實體區域的超級區塊的所有實體區域時,可以抹除該實體區域。因此,在第二實體區域的情況下,雖然具有可以以記憶體晶元為單位以交錯方式操作的優點,但考慮到編程和抹除時的限制,可能不適合儲存輸入/輸出頻率高的資料。因此,通過同時使用第一超級區塊和第二超級區塊,可以在第一超級區塊的第一實體區域中儲存容量較小或輸入/輸出頻率高的資料,並且可以在第二超級區塊的第二實體區域中儲存容量較大或輸入/輸出頻率低的資料,從而可以提高儲存裝置的性能。
如上所述,諸如第一實體區域和第二實體區域的超級區塊中包括的實體區域可以被劃分為滿(full)狀態、空(empty)狀態和啟動(active)狀態,在第二實體區域的情況下,可以更具有準備重置(ready to reset)狀態。實體區域的重置操作可以表示通過抹除實體區域來使該實體區域變成空狀態的操作。抹除可以以記憶體區塊為單位執行,如圖6所示,在第二實體區域112b的情況下,僅包括多個記憶體區塊中的每一個的一部分。另一方面,在第一實體區域112a的情況下,可以包括一個以上的整個記憶體區塊。因此,當要重置特定的第一實體區域112a時,可以立即抹除該實體區域。另一方面,當要重置特定的第二實體區域112b時,當可以抹除部分包括在該實體區域中的每個記憶體區塊的所有頁面時,即,當可以抹除包括該實體區域的超級區塊的所有實體區域時,可以抹除該實體區域。因此,當對第二實體區域112b執行重置操作時,該實體區域不會被立即抹除,而是轉換為準備重置狀態,當包括第二實體區域112b的第二超級區塊111b中的所有第二實體區域112b轉換為準備重置狀態時,該超級區塊中的所有第二實體區域112b可以被一次性抹除以轉換為空狀態。
圖7是用於說明由文件系統分配的分區的結構的圖。
參照圖7,分區可以包括多個邏輯位址。一個分區中包括的邏輯位址可以是連續位址或非連續位址。為資料分配分區可以表示分配了分區中的邏輯位址。關於每個分區中包括的位址的資訊可以包括在主機中的記憶體或儲存裝置中的記憶體中。可以根據請求寫入的資料的大小依序地分配邏輯位址。例如,當有特定大小的資料D1和D2的寫入請求並且圖5的分區被分配給資料D1和D2時,LA1至LA3的邏輯位址可以被分配給D1,LA4和LA5的邏輯位址可以被分配給D2。
圖8是用於說明由文件系統分配第一分區組的新的分區的過程的圖。
參照圖8,可以與分區組中的分區順序無關地分配新的分區的分區組可以被定義為第一分區組421a。此時,包括在分區組中的分區中的邏輯位址可以彼此連續,並且隨著分區組中的分區號增加,邏輯位址可以增加。因此,分區順序可以表示分區組中的分區號順序,這可以表示邏輯位址增加的方向上的順序。或者,包括在分區組中的分區中的邏輯位址可以彼此不連續。在這種情況下,可以基於儲存在單獨的記憶體中的分區和關於包括在每個分區組中的邏輯位址的資訊來確定分區順序。在第一分區組421a的情況下,由於可以與分區順序無關地分配分區並分配邏輯位址,因此第三分區(分區#3)可以被首先分配並且第三分區中的所有邏輯位址被分配,從而可以在變成滿分區(Full Section)之後分配第一分區(分區#1)並且可以分配新的資料的邏輯位址。當作為打開分區(Open Section)的第一分區的所有邏輯位址被分配給資料並且第一分區變成滿分區時,文件系統420可以分配作為空分區(Empty Section)的第零分區(分區#0)和第二分區中的任何一個作為新的分區,並且可以將包括在其中的邏輯位址分配給資料。
圖9和圖10是用於說明由文件系統分配第二分區組的新的分區的過程的圖。
參照圖9和圖10,可以根據分區組中的分區順序分配新的分區的分區組可以被定義為第二分區組421b。如圖9所示,在第二分區組中,第零分區(分區#0)可以最先被打開並將包括在其中的邏輯位址分配給資料,當第零分區變成滿分區時,可以分配作為下一個順序的分區的第一分區(分區#1)作為新的分區以儲存資料。如圖10所示,當第二分區組421b中的所有分區都是滿分區時,文件系統420可以在分配新的第二分區組421b之後,分配作為新的第二分區組中的第一個分區的第零分區(分區#0)作為新的分區,並且可以將包括在其中的邏輯位址分配給資料。此時,在第二分區組421b的情況下,可以根據分區組中的分區順序分配分區,當作為最後一個分區的第三分區(分區#3)是滿分區時,在其之前的分區中不可能存在空分區。因此,在第二分區組421b的情況下,無需在分區組中尋找空分區,如果第二分區組421b中不存在下一個順序的分區,則文件系統420分配新的第二分區組421b。
圖11是用於說明通過文件系統的第一分區組的重置過程的圖。
參照圖11,在第一分區組421a中,1)當第零分區(分區#0)被重置時,2)通過丟棄(discard)與第零分區中的邏輯位址對應的所有資料,第零分區變成空(empty)分區,完成重置操作。另外,3)當第一分區(分區#1)被重置時,4)通過丟棄與第一分區中的邏輯位址對應的所有資料,第一分區變成空分區,完成重置操作。另外,5)當第二分區(分區#2)被重置時,6)通過丟棄與第二分區中的邏輯位址對應的所有資料,第二分區變成空分區,完成重置操作。即,當對第一分區組421a中包括的一個分區執行重置操作時,作為回應,與該分區中的邏輯位址對應的資料被丟棄,從而該分區可以立即變成空分區,因此,可以完成重置操作。此時,在對分區執行重置操作時丟棄與邏輯位址對應的資料可以表示解除邏輯位址和資料之間的映射關係。當與特定的分區中的邏輯位址對應的資料全部無效時執行重置操作,如果存在有效資料,則將其映射到另一分區的邏輯位址,並且可以在將與相應邏輯位址對應的資料處理為無效後執行重置操作。完成重置的分區中包括的邏輯位址可以重新被分配給新資料。這樣的重置操作可以由文件系統執行。
圖12是用於說明通過文件系統的第二分區組的重置過程的圖。
參照圖5和圖12,在第二分區組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被抹除並變成空狀態。
圖13是用於說明根據本發明的一個實施例的資料分類的圖。
在一個實施例中,由應用請求寫入的資料可以根據其類型分類為節點或資料,並且可以根據溫度分類為熱、溫和冷。因此,文件系統420可以根據資料的屬性為資料產生熱節點、溫節點、冷節點、熱資料、溫資料、冷資料等的記錄。例如,熱節點可以是目錄(directory)的索引節點(inode)或直接節點區塊(direct node block),因此,熱節點可以是覆蓋或更新頻率非常高並且成為垃圾回收對象的機率也高的資料。溫節點可以是普通文件(regular file)的索引節點或直接節點區塊,因此,溫節點可以是覆蓋或更新頻率高並且成為垃圾回收對象的機率也相當高的資料。冷節點可以是間接節點區塊(indirect node block),因此,冷節點可以是雖然覆蓋和更新頻率低但成為垃圾回收對象的機率非常高的資料。熱資料可以是目錄條目區塊(directory entry block)、分配量(quota)或64KB以下的容量較小的文件資料,因此,熱資料可以是與其他資料相比覆蓋或更新頻率高並且成為垃圾回收對象的機率高的資料。溫資料可以是用戶創建的資料區塊,例如,可以是64KB以上的容量較大的文件資料,因此,溫資料可以是雖然更新頻率較高但成為垃圾回收對象的機率較低的資料。冷資料可以是通過清理(cleaning)或垃圾回收移動的資料、由用戶分類為冷資料的資料區塊或具有特定格式(ex、.db、.jpg等)的文件資料,例如,多媒體文件資料,因此,冷資料可以是覆蓋頻率低並且成為垃圾回收對象的機率也較低的資料。然而,這種資料的分類不限於該方法,並且可以修改為具有包括以下圖14中的方式的各種標準的方法。在本說明書中,文件系統的清理可以表示為了從主機的角度確保空分區,在將另一分區分配給與犧牲分區中的邏輯位址對應的有效資料之後,解除犧牲分區中的邏輯位址和與其對應的資料之間的關係,垃圾回收可以表示為了從儲存裝置的角度確保空實體區域或確保空記憶體區塊,在將儲存在儲存裝置的犧牲實體區域中的資料中的有效資料移動到另一實體區域之後抹除該實體區域。即,從結果來看,清理和垃圾回收可以表示相同的操作。
參照圖13,第一分區組中包括的第一分區422a可以被分配給熱節點、溫節點、冷節點和熱資料,並且第二分區組中包括的第二分區422b可以被分配給溫資料和冷資料。此時,被分配第一分區組中包括的第一分區的熱節點、溫節點、冷節點和熱資料可以被定義為第一類資料,被分配第二分區組中包括的第二分區的溫資料和冷資料可以被定義為第二類資料。然而,包括在第一分區組和第二分區組中的每個資料的分類不限於圖13所示的,並且可以根據設置對資料進行各種分類。較佳地,第一類資料可以是容量較小的資料,或者可以是被更新或覆蓋的可能性高的資料。另外,第二類資料可以是容量較大的資料,或者可以是被更新或覆蓋的可能性低的資料。因此,第二類資料可以是比第一類資料相對更受輸入/輸出性能影響的資料。此時,對於被分類為第一類資料的資料,可以與該資料的具體屬性無關地分配一個第一分區組中的分區。或者,即使是相同的第一類資料,當資料類型(節點或資料)或溫度(熱、溫、冷)等屬性不同時,可以相應地分配多個不同的第一分區組中的分區。類似地,對於被分類為第二類資料的資料,可以與該資料的具體屬性無關地分配一個第二分區組中的分區。或者,即使是相同的第二類資料,當資料類型(節點或資料)或溫度(熱、溫、冷)等屬性不同時,可以相應地分配多個不同的第二分區組中的分區。被分配第一分區422a的第一類資料可以儲存在第一超級區塊111a中的第一實體區域112a中。另外,被分配第二分區422b的第二類資料可以儲存在第二超級區塊111b中的第二實體區域112b中。
圖14是用於說明根據本發明的另一實施例的資料分類的圖。
參照圖14,可以根據不同於圖13的分類標準對資料進行分類。在圖14的情況下,將資料分類為熱節點、溫節點、熱資料、溫資料和冷資料。熱節點可以包括目錄的索引節點、文件的索引節點和直接節點,溫節點可以包括間接節點、目錄條目區塊和分配量。另外,熱資料可以包括小文件資料,溫資料可以包括中文件資料,冷資料可以是大文件資料或具有特定格式的任意大小的文件資料。即,圖14所示的資料的分類可以是基於資料類型、資料大小、資料出現頻率、覆蓋頻率等對各種屬性的資料進行重新分類,以更適合對分區組和超級區塊進行劃分和管理。因此,被分類的熱節點、溫節點和熱資料可以被分類為第一類資料,並且可以為其分配第一分區組中的分區,並且被分類的溫資料和冷資料可以被分類為第二類資料,並且可以為其分配第二分區組中的分區。被分配第一分區422a的第一類資料可以儲存在第一超級區塊111a中的第一實體區域112a中。另外,被分配第二分區422b的第二類資料可以儲存在第二超級區塊111b中的第二實體區域112b中。然而,資料分類標準不限於參照圖13說明的內容和圖14所示的內容。
圖15是用於說明根據本發明的一個實施例的儲存裝置的垃圾回收的流程圖。
參照圖15,在步驟S1501中,儲存裝置可以確認多個實體區域中具有空狀態(empty state)的實體區域的數量。可以基於所確認的處於空狀態的實體區域的數量來確定是否執行垃圾回收和執行方法。
例如,在步驟S1503中,可以確認所確認的處於空狀態的實體區域的數量是否小於第一閾值。當處於空狀態的實體區域的數量大於等於第一閾值時,可以不執行垃圾回收,並且可以重複確認處於空狀態的實體區域的數量。當處於空狀態的實體區域的數量小於第一閾值時,可以執行垃圾回收。在步驟S1505中,可以確認在步驟S1501中確認的處於空狀態的實體區域的數量是否小於第二閾值。此時,第二閾值可以小於第一閾值。當處於空狀態的實體區域的數量小於第二閾值時,可以判斷為急需確保處於空狀態的實體區域,並且在步驟S1507中,可以以超級區塊為單位執行垃圾回收。當處於空狀態的實體區域的數量大於等於第二閾值時,即介於第一閾值和第二閾值之間,可以判斷為確保處於空狀態的實體區域相對不那麼緊迫,並且在步驟S1509中,可以以實體區域為單位執行垃圾回收。將參照圖16至圖19更詳細地說明根據步驟S1507和步驟S1509執行垃圾回收的過程。
圖16是用於說明根據本發明的一個實施例的選擇儲存裝置的犧牲實體區域的過程的流程圖。
圖16的過程可以是以超級區塊為單位執行垃圾回收的圖15的步驟S1507的示例。參照圖4和圖16,在步驟S1601中,可以選擇候選超級區塊。可以從僅包括處於滿狀態的實體區域和處於準備重置狀態的實體區域的超級區塊中選擇候選超級區塊。此時,可以基於由區域資訊儲存部220儲存的關於每個實體區域的資訊來選擇候選超級區塊。
在步驟S1603中,可以選擇候選實體區域。可以從候選超級區塊中包括的實體區域中選擇候選實體區域。可以從候選超級區塊中包括的實體區域中的具有滿狀態的實體區域中選擇候選實體區域。此時,可以基於由區域資訊儲存部220儲存的關於實體區域的資訊來選擇候選實體區域。
在步驟S1605中,可以計算候選實體區域的成本。此時,可以基於由區域資訊儲存部220儲存的關於候選實體區域的資訊來計算成本。可以根據預先確定的方法計算每個候選實體區域的成本,在一個實施例中,可以計算為執行垃圾回收的需求高的區域具有低成本。在實施例中,可以基於儲存在候選實體區域中的資料的記錄和候選實體區域轉換為滿狀態的時間點來計算候選實體區域的成本。例如,在考慮儲存在候選實體區域中的資料的記錄時,當資料的溫度越低並且資料類型越是資料而不是節點時,可以判斷為該候選實體區域中的資料無效的可能性低,可以計算成本以增加這些實體區域被選為犧牲實體區域的可能性。另外,在考慮候選實體區域的滿狀態轉換時間點時,當轉換為滿狀態的時間越長時,可以判斷為該候選實體區域中的資料無效的可能性低,可以計算成本以增加這些實體區域被選為犧牲實體區域的可能性。
在步驟S1607中,可以基於每個候選超級區塊中包括的候選實體區域的成本來計算候選超級區塊的成本。例如,在基於候選超級區塊中處於準備重置狀態的實體區域的數量計算成本後,可以通過將在步驟S1605中針對每個候選超級區塊中包括的候選實體區域計算的成本相加來計算候選超級區塊的成本。可以計算成本使得候選超級區塊中處於準備重置狀態的實體區域的數量越多被選為犧牲實體區域的可能性越高。
在步驟S1609中,可以通過比較候選超級區塊的成本來確定犧牲超級區塊。計算為具有最低成本的候選超級區塊可以被確定為犧牲超級區塊。
在步驟S1611中,可以將犧牲超級區塊中包括的所有候選實體區域確定為犧牲實體區域。
圖17是用於說明根據本發明的一個實施例的在儲存裝置中對實體區域執行垃圾回收的過程的流程圖。
圖17可以是對圖16中確定的犧牲實體區域執行垃圾回收的過程的示例。參照圖17,在步驟S1701中,可以複製儲存在犧牲實體區域中的資料並將其儲存在不同於犧牲超級區塊的另一超級區塊中。此時,當犧牲超級區塊是第一超級區塊時,複製的資料可以儲存在另一第一超級區塊中,當犧牲超級區塊是第二超級區塊時,複製的資料可以儲存在另一第二超級區塊中。
在步驟S1703中,可以對資料移動完成的犧牲超級區塊執行抹除。因此,犧牲超級區塊中包括的所有實體區域都可以轉換為空狀態。
圖18是用於說明根據本發明的另一實施例的選擇儲存裝置的犧牲實體區域的過程的流程圖。
圖18的過程可以是以實體區域為單位執行垃圾回收的圖15的步驟S1509的示例。參照圖4和圖18,在步驟S1801中,可以選擇候選實體區域。可以從具有滿狀態的實體區域中選擇候選實體區域。
在步驟S1803中,可以計算候選實體區域的成本。此時,可以基於由區域資訊儲存部220儲存的關於候選實體區域的資訊來計算成本。在實施例中,候選實體區域的成本可以基於儲存在候選實體區域中的資料的記錄和候選實體區域轉換為滿狀態的時間點來計算。例如,在考慮儲存在候選實體區域中的資料的記錄時,當資料的溫度越低並且資料類型越是資料而不是節點時,可以判斷為該候選實體區域中的資料無效的可能性低,可以計算成本以增加這些實體區域被選為犧牲實體區域的可能性。另外,在考慮候選實體區域的滿狀態轉換時間點時,當轉換為滿狀態的時間越長時,可以判斷為該候選實體區域中的資料無效的可能性低,可以計算成本以增加這些實體區域被選為犧牲實體區域的可能性。
在步驟S1805中,可以通過比較候選實體區域的成本來確定犧牲實體區域。計算為具有最低成本的候選實體區域可以被確定為犧牲實體區域。
圖19是用於說明書根據本發明的另一實施例的在儲存裝置中對犧牲實體區域執行垃圾回收的過程的流程圖。
圖19可以是對圖18中確定的犧牲實體區域執行垃圾回收的過程的示例。參照圖19,在步驟S1901中,可以複製儲存在犧牲實體區域中的資料並將其儲存在不同於犧牲超級區塊的另一超級區塊中。此時,當犧牲超級區塊是第一超級區塊時,複製的資料可以儲存在另一第一超級區塊中,當犧牲超級區塊是第二超級區塊時,複製的資料可以儲存在另一第二超級區塊中。
在步驟S1903中,可以確認犧牲實體區域的實體區域類型。當在步驟S1905確認為犧牲實體區域是第一實體區域時,在步驟S1907中可以抹除犧牲實體區域,因此,在步驟S1909中,可以將犧牲實體區域的狀態改變為空狀態。
當在步驟S1905中確認為犧牲實體區域不是第一實體區域時,即當確認為犧牲實體區域是第二實體區域時,可以不立即抹除犧牲實體區域,在步驟S1911中可以僅將狀態改變為準備重置狀態。之後,當包括犧牲實體區域的超級區塊中的所有實體區域都處於準備重置狀態時,可以抹除整個超級區塊,因此,該超級區塊中的所有實體區域的狀態可以改變為空狀態。
即,由於用於通過抹除實體區域來使其變成空狀態的重置操作的過程根據實體區域的形態而不同,因此對於每種類型的實體區域可以以不同的形式執行垃圾回收。
圖20是用於說明書根據本發明的一個實施例的在執行垃圾回收時複製犧牲實體區域中的資料的過程的圖。
參照圖20,如圖17的步驟S1701和步驟S1901,當複製儲存在犧牲實體區域中的資料並將其儲存在新的超級區塊中時,新的超級區塊可以考慮包括犧牲實體區域的超級區塊的類型。即,可以考慮儲存在犧牲實體區域中的資料的記錄。例如,如圖20的熱節點、溫節點、冷節點和熱資料,被分類為第一類資料並儲存在第一超級區塊中的第一實體區域中的資料在該實體區域被確定為犧牲實體區域的情況下移動到另一第一超級區塊中的第一實體區域。當第一超級區塊中不存在要分配的第一實體區域時,可以在分配新的第一超級區塊之後分配包括在其中的任何一個第一實體區域作為儲存在犧牲實體區域中的資料將被儲存的新的實體區域。另外,如圖20的溫資料和冷資料,被分類為第二類資料並儲存在第二超級區塊中的第二實體區域中的資料在該實體區域被確定為犧牲實體區域的情況下移動到另一第二超級區塊中的第二實體區域。當第二超級區塊中不存在要分配的第二實體區域時,可以在分配新的第二超級區塊之後分配包括在其中的任何一個第二實體區域作為儲存在犧牲實體區域中的資料將被儲存的新的實體區域。
圖21是示出圖1的記憶體控制器的另一實施例的圖。
參照圖21,記憶體控制器1000可以包括處理器1010、內部記憶體1020、糾錯碼電路1030、主機介面1040、緩衝記憶體介面1050和記憶體介面1060。
處理器1010可以執行用於控制記憶體裝置100的各種運算或者可以產生各種命令。當處理器1010從主機400接收到請求時,處理器1010可以根據接收的請求產生命令並將產生的命令傳送到佇列控制器(未示出)。另外,處理器1010可以回應於來自主機400的實體區域分配請求,分配將要儲存從主機接收的資料的記憶體裝置中的超級區塊和包括在其中的實體區域,並且可以管理分配的超級區塊和實體區域。另外,處理器1010可以基於關於每個實體區域的資訊執行垃圾回收。
內部記憶體1020可以儲存記憶體控制器1000的操作所需的各種資訊。例如,內部記憶體1020可以包括邏輯和實體位址映射表。內部記憶體1020可以被配置為RAM(隨機存取記憶體)、動態RAM(DRAM)、靜態RAM(SRAM)、快速緩存(cache)和緊耦合記憶體(tightly coupled memory, TCM)中的至少一種。內部記憶體1020可以儲存關於由處理器分配的每個實體區域的資訊。例如,可以儲存儲存在每個實體區域中的資料的記錄和每個實體區域的狀態資訊等。
糾錯碼電路1030被配置為利用糾錯碼(ECC)檢測並糾正從記憶體裝置100接收的資料中的錯誤。處理器1010可以控制記憶體裝置100以根據糾錯碼電路1030的錯誤檢測結果調整讀取電壓並執行重新讀取。在示例性實施例中,可以提供糾錯區塊作為記憶體控制器1000的元件。
主機介面1040可以在記憶體控制器1000和主機400之間交換命令、位址和資料等。例如,主機介面1040可以從主機400接收請求、位址、資料等,並且可以將從記憶體裝置100讀取的資料輸出到主機400。主機介面1040可以使用不同的協定來與主機400進行通訊。
緩衝記憶體介面1050可以在處理器1010和緩衝記憶體之間傳送資料。通過處理器1010,緩衝記憶體介面1050可以將緩衝記憶體作為讀取緩衝器、寫入緩衝器、映射緩衝器等。當緩衝記憶體包括在記憶體控制器1000內部時,可以省略緩衝記憶體介面1050。
記憶體介面1060可以在記憶體控制器1000和記憶體裝置100之間交換命令、位址和資料。例如,記憶體介面1060可以通過通道(channel)將命令、位址、資料等傳送到記憶體裝置100,並且可以從記憶體裝置100接收資料等。記憶體介面1060可以基於由處理器1010分配和管理的超級區塊和區域向記憶體裝置100傳送命令、位址和資料或從記憶體裝置100接收命令、位址和資料等。另外,當執行垃圾回收時,被選為犧牲實體區域的實體區域中的資料可以被移動到不同於包括犧牲實體區域的超級區塊的另一超級區塊,並且可以對犧牲實體區域執行抹除操作,或者可以通過改變犧牲實體區域的狀態並將改變的狀態資訊提供給內部記憶體1020。
圖22是示出應用了根據本發明的實施例的儲存裝置的記憶卡系統的方塊圖。
參照圖22,記憶卡系統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 可以被配置為通過各種通訊標準中的至少一種與外部裝置進行通訊。例如,連接器2300可以由上述各種通訊標準中的至少一種來定義。
例如,記憶體裝置2200可以被配置為各種非揮發性儲存裝置。
記憶體控制器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)的記憶卡。
圖23是示出應用了根據本發明的實施例的儲存裝置的固態硬碟(Solid State Drive, SSD)系統的方塊圖。
參照圖23,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的介面的訊號。例如,訊號可以是由不同的介面或通訊標準中的至少一種定義的訊號。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的非揮發性記憶體。
圖24是示出應用了根據本發明的實施例的儲存裝置的用戶系統的方塊圖。
參照圖24,用戶系統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:文件系統
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:行線
S1501、S1503、S1505、S1507、S1509:步驟
S1601、S1603、S1605、S1607、S1609、S1611:步驟
S1701、S1703:步驟
S1801、S1803、S1805:步驟
S1901、S1903、S1905、S1907、S1909、S1911:步驟
圖1是用於說明根據本發明的一個實施例的包括儲存裝置的電子裝置的圖。
圖2是用於說明圖1的記憶體裝置的圖。
圖3是用於說明圖2的記憶體單元陣列的圖。
圖4是用於說明根據本發明的一個實施例的儲存裝置的圖。
圖5是用於說明根據本發明的一個實施例的儲存裝置的超級區塊分配過程的圖。
圖6是用於說明根據本發明的一個實施例的儲存裝置的超級區塊管理的圖。
圖7是用於說明由文件系統分配的分區的結構的圖。
圖8是用於說明由文件系統分配第一分區組的新的分區的過程的圖。
圖9和圖10是用於說明由文件系統分配第二分區組的新的分區的過程的圖。
圖11是用於說明通過文件系統的第一分區組的重置過程的圖。
圖12是用於說明通過文件系統的第二分區組的重置過程的圖。
圖13是用於說明根據本發明的一個實施例的資料分類的圖。
圖14是用於說明根據本發明的另一實施例的資料分類的圖。
圖15是用於說明根據本發明的一個實施例的儲存裝置的垃圾回收的流程圖。
圖16是用於說明根據本發明的一個實施例的選擇儲存裝置的犧牲實體區域的過程的流程圖。
圖17是用於說明根據本發明的一個實施例的在儲存裝置中對犧牲實體區域執行垃圾回收的過程的流程圖。
圖18是用於說明根據本發明的另一實施例的選擇儲存裝置的犧牲實體區域的過程的流程圖。
圖19是用於說明根據本發明的另一實施例的在儲存裝置中對犧牲實體區域執行垃圾回收的過程的流程圖。
圖20是用於說明根據本發明的一個實施例的在執行垃圾回收時複製犧牲實體區域中的資料的過程的圖。
圖21是示出圖1的記憶體控制器的另一實施例的圖。
圖22是示出應用了根據本發明的實施例的儲存裝置的記憶卡系統的方塊圖。
圖23是示出應用了根據本發明的實施例的儲存裝置的固態硬碟(SSD)系統的方塊圖。
圖24是示出應用了根據本發明的實施例的儲存裝置的用戶系統的方塊圖。
50:儲存裝置
100:記憶體裝置
200:記憶體控制器
400:主機
410:應用
420:文件系統
Claims (20)
- 一種儲存裝置,包括: 記憶體裝置,包括多個晶元;以及 記憶體控制器,從外部主機接收資料和關於所述資料屬性的記錄,基於所述資料的記錄分配將要儲存所述資料的所述記憶體裝置中的超級區塊和所述超級區塊中包括的實體區域,並儲存每個所述實體區域儲存的資料的記錄和實體區域轉換為滿狀態的時間點的資訊, 其中,所述記憶體控制器進一步被配置為: 控制所述記憶體裝置以基於處於空狀態的實體區域的數量執行垃圾回收, 在執行所述垃圾回收時,基於所述資料的記錄和時間點的資訊選擇犧牲實體區域, 其中,滿狀態的實體區域中儲存有資料,而空狀態的實體區域中沒有儲存資料。
- 如請求項1所述的儲存裝置,其中, 所述記錄基於所述資料的類型和溫度分配。
- 如請求項2所述的儲存裝置,其中, 所述記憶體控制器進一步包括被配置為:所述超級區塊基於所述資料的記錄被確定為包括多個第一實體區域的第一超級區塊和包括多個第二實體區域的第二超級區塊,所述第一實體區域包括一個記憶體晶元中的一個以上的記憶體區塊,所述第二實體區域包括不同的記憶體晶元中包括的每個記憶體區塊的一部分。
- 如請求項3所述的儲存裝置,其中, 儲存在所述第一實體區域中的資料比儲存在所述第二實體區域中的資料容量小或輸入/輸出頻率高。
- 如請求項4所述的儲存裝置,其中, 儲存在所述第一實體區域中的資料的記錄是熱節點、溫節點、冷節點和熱資料中的一種。
- 如請求項4所述的儲存裝置,其中, 儲存在所述第二實體區域中的資料的記錄是溫資料和冷資料中的一種。
- 如請求項3所述的儲存裝置,其中, 每一所述第一及第二實體區域具有滿狀態、空狀態、啟動狀態和準備重置狀態中的任何一種狀態,所述滿狀態是對應實體區域中不存在空區域的狀態,所述空狀態是對應實體區域為空的狀態,所述啟動狀態是資料僅儲存在對應實體區域中的一部分區域中的狀態,並且所述準備重置狀態是在超級區塊中包括對應實體區域執行重置操作使超級區塊中的所有第二實體區域包括對應實體區域變成空狀態,並通過抹除超級區塊中的所有第二實體區域包括對應實體區域,但是根據包括所述對應實體區域的超級區塊中的其他第二實體區域的狀態,重置操作在超級區塊中包括對應實體區域為尚未完成的狀態。
- 如請求項7所述的儲存裝置,其中, 所述記憶體控制器從處於滿狀態的實體區域中選擇所述犧牲實體區域。
- 如請求項8所述的儲存裝置,其中, 所述記憶體控制器以複製儲存在所述犧牲實體區域中的資料進行控制所述記憶體裝置執行垃圾回收並將複製的資料儲存在另一超級區塊中的實體區域中。
- 如請求項9所述的儲存裝置,其中, 當所述犧牲實體區域是第一實體區域時,將複製的資料儲存在另一超級區塊中的是超級區塊,其包括第一實體區域,及 當所述犧牲實體區域是第二實體區域時,超級區塊包括第二實體區域。
- 一種儲存裝置的操作方法,所述儲存裝置包括:記憶體裝置,包括多個晶元;以及記憶體控制器,從外部主機接收資料和關於所述資料屬性的記錄,基於所述資料的記錄分配將要儲存所述資料的所述記憶體裝置中的超級區塊和所述超級區塊中包括的實體區域,所述儲存裝置的操作方法包括以下步驟: 基於處於空狀態的實體區域的數量來確定是否執行垃圾回收; 從處於滿狀態的實體區域中選擇候選實體區域;以及 基於儲存在所述候選實體區域中的資料的記錄和候選實體區域轉換為滿狀態的時間點確定犧牲實體區域, 其中,滿狀態的實體區域中儲存有資料,而空狀態的實體區域中沒有儲存資料。
- 如請求項11所述的儲存裝置的操作方法,其中, 所述超級區塊被確定為包括多個第一實體區域的第一超級區塊和包括多個第二實體區域的第二超級區塊中的一種,所述第一實體區域包括一個記憶體晶元中的一個以上的記憶體區塊,所述第二實體區域包括不同的記憶體晶元中包括的每個記憶體區塊的一部分。
- 如請求項12所述的儲存裝置的操作方法,其中, 在確定是否執行垃圾回收的步驟中,當所述處於空狀態的實體區域的數量小於第一閾值時,執行所述垃圾回收。
- 如請求項13所述的儲存裝置的操作方法,其中, 當所述處於空狀態的實體區域的數量小於比第一閾值小的第二閾值時,從僅包括處於滿狀態的實體區域和處於準備重置狀態的實體區域的超級區塊中的實體區域中選擇所述候選實體區域, 其中,當在第二超級區塊中包括實體區域執行重置操作使第二超級區塊中的所有第二實體區域包括實體區域變成空狀態時,實體區域處於準備重置狀態,並通過抹除第二超級區塊中的所有第二實體區域包括實體區域,但是根據包括所述實體區域的第二超級區塊中的其他第二實體區域的狀態,重置操作在第二超級區塊中包括實體區域為尚未完成的狀態。
- 如請求項14所述的儲存裝置的操作方法,其中, 確定犧牲實體區域的步驟包括以下步驟: 基於儲存在候選實體區域中的資料的記錄和候選實體區域轉換為滿狀態的時間點計算候選實體區域的成本; 基於包括每個候選實體區域的候選超級區塊中的所有候選實體區域的成本計算所述候選超級區塊的成本; 通過比較所述候選超級區塊的成本來確定犧牲超級區塊;以及 將所述犧牲超級區塊中包括的所有候選實體區域確定為犧牲實體區域。
- 如請求項15所述的儲存裝置的操作方法,更包括以下步驟: 將在所述犧牲實體區域中的資料移動到另一超級區塊中包括的實體區域中;以及 抹除所述犧牲超級區塊。
- 如請求項13所述的儲存裝置的操作方法,其中, 確定犧牲實體區域的步驟包括以下步驟: 當所述處於空狀態的實體區域的數量小於所述第一閾值並且大於比所述第一閾值小的第二閾值時,基於儲存在候選實體區域中的資料的記錄和候選實體區域轉換為滿狀態的時間點來計算候選實體區域的成本;以及 通過比較所述候選實體區域的成本來確定犧牲實體區域。
- 如請求項17所述的儲存裝置的操作方法,更包括以下步驟: 將在所述犧牲實體區域中的資料移動到另一超級區塊中包括的實體區域中;以及 抹除所述犧牲實體區域或轉換犧牲實體區域為準備重置狀態。
- 如請求項18所述的儲存裝置的操作方法,其中, 當所述犧牲實體區域是第一實體區域時,抹除所述犧牲實體區域, 當所述犧牲實體區域是第二實體區域時,將所述犧牲實體區域轉換為準備重置狀態。
- 一種儲存裝置,包括: 記憶體裝置,包括多個記憶體晶元;以及 記憶體控制器,將所述記憶體裝置劃分為多個超級區塊並進行控制, 其中,所述多個超級區塊中的一個以上的超級區塊分別包括多個實體區域,所述實體區域包括不同的記憶體晶元中包括的每個記憶體區塊的一部分, 所述記憶體控制器進一步被配置為控制所述記憶體裝置以基於關於所述實體區域的資訊執行垃圾回收。
Applications Claiming Priority (6)
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 | ||
KR1020220060487A KR20220159270A (ko) | 2021-05-25 | 2022-05-17 | 스토리지 장치 및 그 동작 방법 |
KR10-2022-0060487 | 2022-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202314471A true TW202314471A (zh) | 2023-04-01 |
Family
ID=84117036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111119338A TW202314471A (zh) | 2021-05-25 | 2022-05-24 | 儲存裝置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11954350B2 (zh) |
CN (1) | CN115390747A (zh) |
TW (1) | TW202314471A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240061587A1 (en) * | 2022-08-22 | 2024-02-22 | Micron Technology, Inc. | Zone write operation techniques |
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,147 patent/US11954350B2/en active Active
- 2022-05-24 TW TW111119338A patent/TW202314471A/zh unknown
- 2022-05-25 CN CN202210580061.4A patent/CN115390747A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN115390747A (zh) | 2022-11-25 |
US11954350B2 (en) | 2024-04-09 |
US20220382454A1 (en) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI418980B (zh) | 記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統 | |
US8429358B2 (en) | Method and data storage device for processing commands | |
US20140337566A1 (en) | Solid state memory (ssm), computer system including an ssm, and method of operating an ssm | |
US9213495B2 (en) | Controller management of memory array of storage device using magnetic random access memory (MRAM) in a mobile device | |
US8724392B1 (en) | Controller management of memory array of storage device using magnetic random access memory (MRAM) | |
KR102378295B1 (ko) | 저장 캐시 관리 | |
TW201732597A (zh) | 資料儲存裝置和其操作方法 | |
JP2011522350A (ja) | ハイブリッドメモリ管理 | |
KR20220031490A (ko) | 서브 블록 모드를 사용한 구역 네임스페이스 제한 완화 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US20230418485A1 (en) | Host device, storage device, and electronic device | |
US11403011B1 (en) | Host memory buffer allocation management | |
TWI650639B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US11347420B2 (en) | Attribute mapping in multiprotocol devices | |
US11640259B2 (en) | Use of surplus erase block pairs in super block formation | |
TW202314471A (zh) | 儲存裝置及其操作方法 | |
KR20220103340A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20240231663A1 (en) | Storage device and method of operating the same | |
US12007887B2 (en) | Method and system for garbage collection | |
KR20220159270A (ko) | 스토리지 장치 및 그 동작 방법 | |
US20240078027A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
US20240070033A1 (en) | Storage device including nonvolatile memory device and operating method of storage device | |
KR20220159269A (ko) | 스토리지 장치 및 그 동작 방법 |