TW202349203A - 計算系統及其操作方法 - Google Patents

計算系統及其操作方法 Download PDF

Info

Publication number
TW202349203A
TW202349203A TW112118475A TW112118475A TW202349203A TW 202349203 A TW202349203 A TW 202349203A TW 112118475 A TW112118475 A TW 112118475A TW 112118475 A TW112118475 A TW 112118475A TW 202349203 A TW202349203 A TW 202349203A
Authority
TW
Taiwan
Prior art keywords
garbage collection
storage device
host
memory
command
Prior art date
Application number
TW112118475A
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
Application filed by 韓商愛思開海力士有限公司 filed Critical 韓商愛思開海力士有限公司
Publication of TW202349203A publication Critical patent/TW202349203A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Memory System (AREA)
  • Selective Calling Equipment (AREA)

Abstract

本揭露的實施例關於計算系統及其操作方法。本技術關於一種電子設備。根據本技術,主機設備可以包括垃圾收集控制器和空閒時間處理器。垃圾收集控制器可以:向儲存設備提供健康訊息請求命令,該健康訊息請求命令用於請求包括主機寫入量和儲存設備寫入量的健康訊息;基於健康訊息,向儲存設備提供第一垃圾收集控制命令,該第一垃圾收集控制命令用於請求垃圾收集成本訊息;基於垃圾收集成本訊息和儲存設備的空閒時間,向儲存設備提供第二垃圾收集控制命令,該第二垃圾收集控制命令用於指使執行垃圾收集。空閒時間處理器可以處理關於空閒時間的訊息。

Description

計算系統及其操作方法
相關申請的交叉引用
本申請要求於2022年6月8日提交的韓國專利申請號10-2022-0069776的優先權,其全部揭露內容透過引用併入本文。
本揭露關於一種電子設備,並且更具體地,關於一種計算系統及其操作方法。
儲存設備是在諸如電腦或智能電話的主機設備的控制下儲存資料的設備。儲存設備可以包括其中儲存有資料的記憶體設備和控制該記憶體設備的記憶體控制器。記憶體設備被劃分為揮發性記憶體設備和非揮發性記憶體設備。
揮發性記憶體設備是僅在被供應電源時儲存資料並且在電源被切斷時丟失所儲存的資料的設備。揮發性記憶體設備包括靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)等。
非揮發性記憶體設備是即使電源被切斷也不會丟失資料的設備。非揮發性記憶體設備包括唯讀記憶體(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可抹除可編程ROM(EEPROM)、快閃記憶體等。
主機可以基於從儲存設備接收到的健康訊息來預測對儲存設備的垃圾收集需求。考慮到儲存設備的垃圾收集成本和空閒時間,主機可以透過控制儲存設備以搶先執行垃圾收集來提高儲存設備的性能。
本揭露的一個實施例提供了一種透過預先對儲存設備執行垃圾收集來提高性能的計算系統及其操作方法。
根據本揭露的一個實施例,一種主機設備可以包括垃圾收集控制器和空閒時間處理器。垃圾收集控制器可以:向儲存設備提供健康訊息請求命令,該健康訊息請求命令用於請求包括主機寫入量和儲存設備寫入量的健康訊息;基於健康訊息,向儲存設備提供第一垃圾收集控制命令,該第一垃圾收集控制命令用於請求垃圾收集成本訊息;基於垃圾收集成本訊息和儲存設備的空閒時間,向儲存設備提供第二垃圾收集控制命令,該第二垃圾收集控制命令用於指使執行垃圾收集。空閒時間處理器可以處理關於空閒時間的訊息。
根據本揭露的一個實施例,一種操作主機設備的方法可以包括:向儲存設備提供健康訊息請求命令,該健康訊息請求命令用於請求包括主機寫入量和儲存設備寫入量的健康訊息;基於從儲存設備接收到的健康訊息,向儲存設備提供第一垃圾收集控制命令,該第一垃圾收集控制命令用於請求垃圾收集成本訊息;以及基於垃圾收集成本訊息和儲存設備的空閒時間,向儲存設備提供第二垃圾收集控制命令,該第二垃圾收集控制命令指使執行垃圾收集。
根據本揭露的一個實施例,一種儲存設備可以包括記憶體設備和記憶體控制器。記憶體設備可以包括多個記憶體塊。記憶體控制器可以:響應於來自外部設備的健康訊息請求命令,向外部設備提供包括外部設備寫入量和儲存設備寫入量的健康訊息;響應於來自外部設備的第一垃圾收集控制命令,向外部設備提供包括將透過垃圾收集而被確保的空閒塊的預期數目的垃圾收集成本訊息;以及響應於來自外部設備的第二垃圾收集控制命令,對記憶體設備執行垃圾收集。
根據一種控制器的操作方法的一個實施例,該操作方法包括響應於第一請求向主機提供第一訊息,該第一訊息表示從主機提供到其的累積資料量和佔用記憶體設備的儲存空間的累積資料量,響應於第二請求向主機提供第二訊息,該第二訊息表示透過垃圾收集操作預期變得空閒的候選記憶體塊的數目和垃圾收集操作所需的預期時間量,從而基於無效頁的數目來預期候選記憶體塊的數目,並且響應於第三請求而控制記憶體設備以對由主機基於第二訊息確定的多個目標記憶體塊執行垃圾收集操作。第一至第三請求中的每一個請求均從主機提供。
根據一種主機設備的操作方法的一個實施例,該操作方法包括向記憶體系統請求第一訊息,該第一訊息表示從其提供到記憶體系統的第一累積資料量和佔用記憶體系統的儲存空間的第二累積資料量,當由此確定第二累積量大於第一累積量時,向記憶體系統請求第二訊息,該第二訊息表示透過垃圾收集操作預期變得空閒的候選記憶體塊的數目和垃圾收集操作所需的預期時間量,並且向記憶體系統請求對由此基於第二訊息確定的多個目標記憶體塊的垃圾收集操作。
根據本技術,提供了一種透過預先對儲存設備執行垃圾收集來提高性能的記憶體控制器及其操作方法,以及計算系統及其操作方法。
根據本說明書中揭露的概念的實施例的具體結構或功能說明僅被例示以用於描述根據本揭露的概念的實施例。根據本揭露的概念的實施例可以以各種形式來執行,並且不應被解釋為限於本說明書中描述的實施例。
圖1是圖示了根據本揭露的一個實施例的計算系統的圖。
參考圖1,計算系統可以包括儲存設備50和主機300。
儲存設備50可以包括記憶體設備100和控制該記憶體設備的操作的記憶體控制器200。儲存設備50是在主機300的控制下儲存資料的設備,主機300諸如是蜂窩電話、智能電話、MP3播放器、筆記型電腦、桌上型電腦、遊戲機、電視、平板電腦或車載訊息娛樂系統。
儲存設備50可以根據作為與主機300的通訊方法的主機介面而被製造為各種類型的儲存設備中的一種。例如,儲存設備50可以被配置為各種類型的儲存設備中的任何一種,諸如SSD、多媒體卡(MMC、eMMC、RS-MMC和micro-MMC形式)、安全數位卡(SD、mini-SD和micro-SD形式)、通用串列匯流排(USB)儲存設備、通用快閃儲存裝置(UFS)設備、個人電腦記憶體卡國際協會(PCMCIA)卡型儲存設備、外圍組件互連(PCI)卡型儲存設備、PCI快速(PCI-E)卡型儲存設備、緊湊式快閃(CF)卡、智能媒體卡和記憶棒。
儲存設備50可以被製造為各種類型的封裝中的任何一種。例如,儲存設備50可以被製造為各種封裝類型中的任何一種,諸如疊層封裝(POP)、系統級封裝(SIP)、片上系統(SOC)、多晶片封裝(MCP)、板上晶片(COB)、晶片級製造封裝(WFP)和晶片級堆疊封裝(WSP)。
記憶體設備100可以儲存資料。記憶體設備100在記憶體控制器200的控制下進行操作。記憶體設備100可以包括記憶體單元陣列,該記憶體單元陣列包括儲存資料的多個記憶體單元。
記憶體單元中的每一個可以被配置為儲存一個資料位元的單層單元(SLC)、儲存兩個資料位元的多層單元(MLC)、儲存三個資料位元的三層單元(TLC)或者儲存四個資料位元的四層單元(QLC)。
記憶體單元陣列可以包括多個記憶體塊。每個記憶體塊可以包括多個記憶體單元。一個記憶體塊可以包括多個頁。在一個實施例中,頁可以是用於在記憶體設備100中儲存資料或者讀取記憶體設備100中儲存的資料的單位。
記憶體塊可以是用於抹除資料的單位。在一個實施例中,記憶體設備100可以是雙倍資料速率同步動態隨機存取記憶體(DDR SDRAM)、低功率雙倍資料速率第四代(LPDDR4)SDRAM、圖形雙倍資料速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus動態隨機存取記憶體(RDRAM)、NAND快閃記憶體、豎直NAND快閃記憶體、NOR快閃記憶體、電阻式隨機存取記憶體(RRAM)、相變隨機存取記憶體(PRAM)、磁阻式隨機存取記憶體(MRAM)、鐵電隨機存取記憶體(FRAM)、自旋轉移力矩隨機存取記憶體(STT-RAM)等。在本說明書中,為了便於說明,記憶體設備100是NAND快閃記憶體。
記憶體設備100被配置為從記憶體控制器200接收命令和位址,並且訪問記憶體單元陣列的由位址選擇的區域。也就是說,記憶體設備100可以對由位址選擇的區域執行由命令指示的操作。例如,記憶體設備100可以執行寫入操作(編程操作)、讀取操作和抹除操作。在編程操作期間,記憶體設備100可以將資料編程到由位址選擇的區域。在讀取操作期間,記憶體設備100可以從由位址選擇的區域讀取資料。在抹除操作期間,記憶體設備100可以抹除儲存在由位址選擇的區域中的資料。
記憶體控制器200控制儲存設備50的整體操作。
當向儲存設備50供應電源時,記憶體控制器200可以執行韌體FW。當記憶體設備100是快閃記憶體設備時,記憶體控制器200可以操作諸如快閃轉換層(FTL)的韌體來控制主機300和記憶體設備100之間的通訊。
在一個實施例中,記憶體控制器200可以從主機300接收資料和邏輯塊位址(LBA),並且將LBA轉換成物理塊位址(PBA),該物理塊位址指示被包括在記憶體設備100中的資料將被儲存在其中的記憶體單元的位址。
記憶體控制器200可以響應於主機300的請求來控制記憶體設備100執行編程操作、讀取操作或抹除操作。在編程操作期間,記憶體控制器200可以向記憶體設備100提供寫入命令、物理塊位址以及資料。在讀取操作期間,記憶體控制器200可以向記憶體設備100提供讀取命令和物理塊位址。在抹除操作期間,記憶體控制器200可以向記憶體設備100提供抹除命令和物理塊位址。
在一個實施例中,記憶體控制器200可以與來自主機300的請求無關地產生命令、位址和資料並且將該命令、位址和資料發送到記憶體設備100。例如,記憶體控制器200可以將命令、位址和資料提供到記憶體設備100執行諸如用於損耗均衡的編程操作和用於垃圾收集的編程操作的後臺操作。
在一個實施例中,記憶體控制器200可以控制至少兩個記憶體設備100。在這種情況下,記憶體控制器200可以根據交錯方法控制記憶體設備100以提高操作性能。交錯方法可以是用於重疊至少兩個記憶體設備100的操作時段的操作方法。
記憶體控制器200可以控制透過至少一個或多個通道連接的多個記憶體設備100。每個記憶體設備100可以包括至少一個或多個平面。每個平面可以包括多個記憶體塊。
記憶體控制器200可以儲存健康訊息和記憶體塊訊息。
健康訊息可以包括主機寫入量和儲存設備寫入量。主機寫入量可以是與從主機300提供到記憶體控制器200的寫入命令相對應的資料量。主機寫入量可以是從儲存設備50的上電時間開始透過從主機300接收到的寫入命令完成的寫入資料量。每當儲存設備50的電源被關斷和開啟時,主機寫入量可以被重置。儲存設備寫入量可以是與在記憶體設備100中執行的寫入操作相對應的資料量。儲存設備寫入量可以是從儲存設備50的上電時間開始透過儲存設備50中的寫入操作完成的寫入資料量。每當儲存設備50的電源被關斷和開啟時,儲存寫入量可以被重置。健康訊息可以包括主機讀取量、儲存設備讀取量和儲存設備50的忙碌時間。儲存設備50的忙碌時間指示儲存設備50執行由主機300請求而不是由儲存設備50本身請求的操作的時間。主機讀取量可以是與從主機300提供到記憶體控制器200的讀取命令相對應的資料量。儲存設備讀取量可以是與在記憶體設備100中執行的讀取操作相對應的資料量。
記憶體塊訊息可以包括關於被包括在記憶體設備100中的多個記憶體塊的訊息。記憶體塊訊息可以包括被包括在記憶體塊中的多個頁之中的儲存無效資料的頁的數目。
記憶體控制器200可以響應於從主機300接收到的健康訊息請求命令而向主機300提供健康訊息。記憶體控制器200可以響應於從主機300接收到的第一垃圾收集控制命令而向主機300提供垃圾收集成本訊息。垃圾收集成本訊息可以包括多個記憶體塊之中將透過垃圾收集確保的空閒塊的預期數目和垃圾收集的預期時間。記憶體控制器200可以基於被包括在記憶體塊訊息中的無效資料頁計數來計算空閒塊的預期數目和預期時間。記憶體控制器200可以響應於從主機300接收到的第二垃圾收集控制命令來對記憶體設備100執行垃圾收集。
健康訊息請求命令可以包括用於請求儲存設備50的暫存器訊息的獲取參數命令。第一和第二垃圾收集控制命令可以包括用於設置儲存設備50的暫存器訊息的設置參數命令。
主機300可以使用諸如以下項的各種通訊標準或介面中的至少一種來與儲存設備50通訊:通用串列匯流排(USB)、串列AT附件(SATA)、串列附接SCSI(SAS)、高速互連晶片(HSIC)、小型計算機系統介面(SCSI)、外圍組件互連(PCI)、PCI快速(PCIe)、非揮發性記憶體快速(NVMe)、通用快閃儲存裝置(UFS)、安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存式DIMM(RDIMM)、低負載DIMM(LRDIMM)以及SM-BUS(一種整合電路間通訊)。
主機300可以向記憶體控制器200提供用於請求包括主機寫入量和儲存設備寫入量的健康訊息的健康訊息請求命令。主機300可以基於健康訊息來預測儲存設備50的垃圾收集需求。當儲存設備寫入量大於主機寫入量時,主機300可以承認垃圾收集需求。在儲存設備寫入量大於主機寫入量的情況下,這種情況可能指示在儲存設備50中內部地執行了大量的寫入操作,這導致無效資料頁的數目增加,並且因此這種情況可能指示非常需要執行垃圾收集。當垃圾收集需求被承認時,主機300可以向記憶體控制器200提供用於請求垃圾收集成本訊息的第一垃圾收集控制命令。
主機300可以向記憶體控制器200提供第二垃圾收集控制命令,其用於基於垃圾收集成本訊息和儲存設備50的空閒時間指使執行垃圾收集。主機300可以基於垃圾收集單位時間和儲存設備50的空閒時間的比較結果來向記憶體控制器200提供第二垃圾收集控制命令。垃圾收集單位時間可以是確保一個空閒塊所需的預期時間。可以基於被包括在垃圾收集成本訊息中的空閒塊的預期數目和預期時間來計算垃圾收集單位時間。當空閒時間大於垃圾收集單位時間時,主機300可以向記憶體控制器200提供第二垃圾收集控制命令。主機300可以基於垃圾收集單位時間和儲存設備50的空閒時間的比較結果來計算將透過垃圾收集確保的目標空閒塊的數目。主機300可以向記憶體控制器200提供包括目標空閒塊的數目的訊息和第二垃圾收集控制命令。
主機300可以基於提供到記憶體控制器200的輸入和輸出命令來計算儲存設備50的空閒時間。儲存設備50的空閒時間可以是其中根據主機300的請求的所有操作被完成並且記憶體控制器200等待接收主機300的請求的時間。具體地,主機300可以透過測量從當主機300從儲存設備50接收最後一個命令的響應時開始到當主機300向儲存設備50發送對新的下一個命令的請求時為止的時間來計算空閒時間。
圖2是圖示了根據本揭露的一個實施例的圖1的記憶體設備的結構的圖。
參考圖2,記憶體設備100可以包括記憶體單元陣列110、外圍電路120和控制邏輯130。
記憶體單元陣列110包括多個記憶體塊BLK1至BLKz。多個記憶體塊BLK1至BLKz透過列線RL而連接到位址解碼器121。多個記憶體塊BLK1至BLKz透過位元線BL1至BLm而連接到讀取和寫入電路123。多個記憶體塊BLK1至BLKz中的每一個包括多個記憶體單元。在一個實施例中,多個記憶體單元是非揮發性記憶體單元。多個記憶體單元之中連接到相同字線的記憶體單元被定義為一個物理頁。也就是說,記憶體單元陣列110由多個物理頁構成。根據本揭露的一個實施例,被包括在記憶體單元陣列110中的多個記憶體塊BLK1至BLKz中的每一個可以包括多個虛設單元。虛設單元中的至少一個可以串聯連接在漏極選擇電晶體和記憶體單元之間,以及源極選擇電晶體和記憶體單元之間。
記憶體設備100的記憶體單元中的每一個可以被配置為儲存一個資料位元的SLC、儲存兩個資料位元的MLC、儲存三個資料位元的TLC或儲存四個資料位元的QLC。
外圍電路120可以包括位址解碼器121、電壓產生器122、讀取和寫入電路123、資料輸入/輸出電路124和感測電路125。
外圍電路120驅動記憶體單元陣列110。例如,外圍電路120可以驅動記憶體單元陣列110執行編程操作、讀取操作和抹除操作。
位址解碼器121透過列線RL連接到記憶體單元陣列110。列線RL可以包括漏極選擇線、字線、源極選擇線和公共源極線。根據本揭露的一個實施例,字線可以包括普通字線和虛設字線。根據本揭露的一個實施例,列線RL還可以包括管道選擇線。
位址解碼器121被配置為響應於控制邏輯130的控制而進行操作。位址解碼器121從控制邏輯130接收位址ADDR。
位址解碼器121被配置為對接收到的位址ADDR的塊位址進行解碼。位址解碼器121根據經解碼的塊位址來選擇記憶體塊BLK1至BLKz之中的至少一個記憶體塊。位址解碼器121被配置為對接收到的位址ADDR的列位址進行解碼。位址解碼器121可以根據經解碼的列位址在被選擇的記憶體塊的字線之中選擇至少一條字線。位址解碼器121可以將從電壓產生器122接收到的操作電壓Vop施加到被選擇的字線。
在編程操作期間,位址解碼器121可以將編程電壓施加到被選擇的字線,並且將具有小於編程電壓的準位的通過電壓施加到未被選擇的字線。在編程驗證操作期間,位址解碼器121可以將驗證電壓施加到被選擇的字線,並且將具有大於驗證電壓的準位的通過電壓施加到未被選擇的字線。
在讀取操作期間,位址解碼器121可以將讀取電壓施加到被選擇的字線,並且將具有大於讀取電壓的準位的通過電壓施加到未被選擇的字線。
根據本揭露的一個實施例,以記憶體塊為單位執行記憶體設備100的抹除操作。在抹除操作期間輸入到記憶體設備100的位址ADDR包括塊位址。位址解碼器121可以對塊位址進行解碼,並且根據經解碼的塊位址來選擇至少一個記憶體塊。在抹除操作期間,位址解碼器121可以將接地電壓施加到輸入到被選擇的記憶體塊的字線。
根據本揭露的一個實施例,位址解碼器121可以被配置為對被傳送的位址ADDR的行位址進行解碼。經解碼的行位址可以被傳送到讀取和寫入電路123。作為示例,位址解碼器121可以包括諸如行解碼器、行解碼器和位址緩衝器的組件。
電壓產生器122被配置為透過使用供應到記憶體設備100的外部電源電壓來產生多個操作電壓Vop。電壓產生器122響應於控制邏輯130的控制而進行操作。
在一個實施例中,電壓產生器122可以透過調節外部電源電壓來產生內部電源電壓。由電壓產生器122產生的內部電源電壓被用作記憶體設備100的操作電壓。
在一個實施例中,電壓產生器122可以使用外部電源電壓或內部電源電壓來產生多個操作電壓Vop。電壓產生器122可以被配置為產生記憶體設備100所需的各種電壓。例如,電壓產生器122可以產生多個抹除電壓、多個編程電壓、多個通過電壓、多個選擇讀取電壓以及多個非選擇讀取電壓。
為了產生具有各種電壓準位的多個操作電壓Vop,電壓產生器122可以包括接收內部電壓的多個泵浦電容器,並且響應於控制邏輯130來選擇性地啟動多個泵浦電容器以產生多個操作電壓Vop。被產生的多個操作電壓Vop可以由位址解碼器121供應到記憶體單元陣列110。
讀取和寫入電路123包括第一至第m頁緩衝器PB1至PBm。第一至第m頁緩衝器PB1至PBm分別透過第一至第m位元線BL1至BLm連接到記憶體單元陣列110。第一至第m頁緩衝器PB1至PBm響應於控制邏輯130的控制而進行操作。
第一至第m頁緩衝器PB1至PBm與資料輸入/輸出電路124傳遞資料DATA。在編程時,第一至第m頁緩衝器PB1至PBm透過資料輸入/輸出電路124和資料線DL接收要被儲存的資料DATA。
在編程操作期間,當編程電壓被施加到被選擇的字線時,第一至第m頁緩衝器PB1至PBm可以透過位元線BL1至BLm將要被儲存的資料DATA(即,透過資料輸入/輸出電路124接收到的資料DATA)傳送給被選擇的記憶體單元。被選擇的頁的記憶體單元根據被傳送的資料DATA而被編程。與施加有編程准許電壓(例如,接地電壓)的位元線連接的記憶體單元可以具有增加的閾值電壓。與施加有編程禁止電壓(例如,電源電壓)的位元線連接的記憶體單元的閾值電壓可以被維持。在編程驗證操作期間,第一至第m頁緩衝器PB1至PBm透過位元線BL1至BLm從被選擇的記憶體單元讀取儲存在記憶體單元中的資料DATA。
在讀取操作期間,讀取和寫入電路123可以透過位元線BL1至BLm從被選擇的頁的記憶體單元讀取資料DATA,並且將所讀取的資料DATA儲存在第一至第m頁緩衝器PB1至PBm中。
在抹除操作期間,讀取和寫入電路123可以使位元線BL1至BLm浮置。在一個實施例中,讀取和寫入電路123可以包括行選擇電路。
資料輸入/輸出電路124透過資料線DL連接到第一至第m頁緩衝器PB1至PBm。資料輸入/輸出電路124響應於控制邏輯130的控制而進行操作。
資料輸入/輸出電路124可以包括接收輸入資料DATA的多個輸入/輸出緩衝器(未示出)。在編程操作期間,資料輸入/輸出電路124從外部控制器(未示出)接收要被儲存的資料DATA。在讀取操作期間,資料輸入/輸出電路124將從被包括在讀取和寫入電路123中的第一至第m頁緩衝器PB1至PBm傳送的資料DATA輸出到外部控制器。
在讀取操作或驗證操作期間,感測電路125可以響應於由控制邏輯130產生的允許位元VRYBIT的訊號來產生參考電流,並且可以將從讀取和寫入電路123接收到的感測電壓VPB與由參考電流產生的參考電壓進行比較來向控制邏輯130輸出通過訊號或失敗訊號。
控制邏輯130可以連接到位址解碼器121、電壓產生器122、讀取和寫入電路123、資料輸入/輸出電路124和感測電路125。控制邏輯130可以被配置為控制記憶體設備100的所有操作。控制邏輯130可以響應於從外部設備傳送的命令CMD而進行操作。
控制邏輯130可以響應於命令CMD和位址ADDR來產生各種訊號以控制外圍電路120。例如,控制邏輯130可以響應於命令CMD和位址ADDR來產生操作訊號OPSIG、位址ADDR、讀取和寫入電路控制訊號PBSIGNALS以及允許位元VRYBIT。控制邏輯130可以向電壓產生器122輸出操作訊號OPSIG、向位址解碼器121輸出位址ADDR、向讀取和寫入電路123輸出讀取和寫入控制訊號PBSIGNALS並且向感測電路125輸出允許位元VRYBIT。此外,控制邏輯130可以響應於由感測電路125輸出的通過或失敗訊號PASS/FAIL來確定驗證操作是通過還是失敗。
圖3是圖示了根據本揭露的一個實施例的圖1的主機和記憶體控制器的配置和操作的圖。
參考圖3,記憶體控制器200可以包括記憶體設備狀態訊息儲存裝置210和垃圾收集處理器220。
記憶體設備狀態訊息儲存裝置210可以儲存健康訊息HINF和記憶體塊訊息BLK_INF。
健康訊息HINF可以包括主機寫入量和儲存設備寫入量。主機寫入量可以是與從主機300提供到記憶體控制器200的寫入命令相對應的資料量。儲存設備寫入量可以是與在記憶體設備100中執行的寫入操作相對應的資料量。健康訊息HINF可以包括主機讀取量、儲存設備讀取量和儲存設備的忙碌時間。主機讀取量可以是與從主機300提供到記憶體控制器200的讀取命令相對應的資料量。儲存設備讀取量可以是與在記憶體設備100中執行的讀取操作相對應的資料量。
記憶體塊訊息BLK_INF可以包括關於被包括在記憶體設備100中的多個記憶體塊的訊息。記憶體塊訊息BLK_INF可以包括被包括在記憶體塊中的多個頁之中的儲存無效資料的頁的數目。
垃圾收集處理器220可以響應於從垃圾收集控制器310接收到的健康訊息請求命令HINF_CMD而將健康訊息HINF提供到垃圾收集控制器310。垃圾收集處理器220可以響應於從垃圾收集控制器310接收到的第一垃圾收集控制命令GCCTL_CMD而將垃圾收集成本訊息GCC_INF提供到垃圾收集控制器310。垃圾收集成本訊息GCC_INF可以包括多個記憶體塊之中將透過垃圾收集確保的空閒塊的預期數目和垃圾收集的預期時間。垃圾收集處理器220可以基於被包括在記憶體塊訊息BLK_INF中的無效資料頁計數來計算空閒塊的預期數目和預期時間。垃圾收集處理器220可以響應於從垃圾收集控制器310接收到的第二垃圾收集控制命令GCCTL_CMD來對記憶體設備100執行垃圾收集。
健康訊息請求命令HINF_CMD可以包括用於請求記憶體設備100的暫存器訊息的獲取參數命令。第一和第二垃圾收集控制命令GCCTL_CMD可以包括用於設置記憶體設備100的暫存器訊息的設置參數命令。
主機300可以包括垃圾收集控制器310和空閒時間處理器320。
垃圾收集控制器310可以向垃圾收集處理器220提供用於請求包括主機寫入量和儲存設備寫入量的健康訊息HINF的健康訊息請求命令HINF_CMD。垃圾收集控制器310可以基於健康訊息HINF來預測儲存設備的垃圾收集需求。當儲存設備寫入量大於主機寫入量時,垃圾收集控制器310可以承認垃圾收集需求。在儲存設備寫入量大於主機寫入量的情況下,這種情況可能指示在儲存設備50中內部地執行了大量的寫入操作,這導致無效資料頁的數目增加,並且因此這種情況可能指示非常需要執行垃圾收集。當垃圾收集需求被承認時,垃圾收集控制器310可以向垃圾收集處理器220提供用於請求垃圾收集成本訊息GCC_INF的第一垃圾收集控制命令GCCTL_CMD。
垃圾收集控制器310可以基於垃圾收集成本訊息GCC_INF和記憶體設備100的空閒時間而向垃圾收集處理器220提供第二垃圾收集控制命令GCCTL_CMD,其用於指使執行垃圾收集。垃圾收集控制器310可以基於垃圾收集單位時間和記憶體設備100的空閒時間的比較結果而向垃圾收集處理器220提供第二垃圾收集控制命令GCCTL_CMD。垃圾收集單位時間可以是確保一個空閒塊所需的預期時間。可以基於被包括在垃圾收集成本訊息GCC_INF中的空閒塊的預期數目和預期時間來計算垃圾收集單位時間。當空閒時間大於垃圾收集單位時間時,垃圾收集控制器310可以向垃圾收集處理器220提供第二垃圾收集控制命令GCCTL_CMD。垃圾收集控制器310可以基於垃圾收集單位時間和記憶體設備100的空閒時間的比較結果來計算將透過垃圾收集確保的目標空閒塊的數目。垃圾收集控制器310可以向垃圾收集處理器220提供包括目標空閒塊的數目的訊息和第二垃圾收集控制命令GCCTL_CMD。
空閒時間處理器320可以處理關於記憶體設備100的空閒時間的訊息。具體地,空閒時間處理器320可以收集並更新關於空閒時間的訊息,並且基於關於該空閒時間的訊息來計算該空閒時間。關於空閒時間的訊息可以包括關於被提供到記憶體控制器200的輸入和輸出命令的訊息。關於空閒時間的訊息可以包括基於被包括在健康訊息中的主機寫入量、儲存設備寫入量、主機讀取量、儲存設備讀取量以及儲存設備的忙碌時間產生的訊息。記憶體設備100的空閒時間可以是其中根據主機300的請求的所有操作被完成並且記憶體控制器200等待接收主機300的請求的時間。具體地,空閒時間可以是其中儲存設備等待接收來自主機的命令而不根據由主機所請求的命令來執行操作的時間。空閒時間處理器320透過主機寫入量、儲存設備寫入量、主機讀取量、儲存設備讀取量以及儲存設備的忙碌時間來確定儲存設備是根據主機的請求執行操作還是根據儲存設備的需要執行內部操作。因此,空閒時間處理器320可以計算儲存設備等待主機請求或執行內部操作而不執行根據主機請求的操作的時間作為空閒時間。
圖4是圖示了根據本揭露的一個實施例的主機和儲存設備的操作的流程圖。
參考圖4,在操作S401中,主機可以向儲存設備提供健康訊息請求命令HINF_CMD。
在操作S403中,儲存設備可以向主機提供包括儲存設備寫入量和主機寫入量的健康訊息HINF。主機寫入量可以是與提供到儲存設備的寫入命令相對應的資料量。儲存設備寫入量可以是與在儲存設備內部執行的寫入操作相對應的資料量。
在操作S405中,主機可以比較儲存設備寫入量和主機寫入量。作為比較結果,當儲存設備寫入量大於主機寫入量時,主機可以承認儲存設備的垃圾收集需求。在儲存設備寫入量大於主機寫入量的情況下,這種情況可能指示在儲存設備50中內部地執行了大量的寫入操作,這導致無效資料頁的數目增加,並且因此這種情況可能指示非常需要執行垃圾收集。
在操作S407中,當垃圾收集需求被承認時,主機可以向儲存設備提供用於請求垃圾收集成本訊息GCC_INF的第一垃圾收集控制命令GCCTL_CMD。
在操作S409中,儲存設備可以響應於第一垃圾收集控制命令GCCTL_CMD來計算垃圾收集成本GCC。儲存設備可以基於被包括在記憶體塊中的無效資料頁計數來計算將透過垃圾收集確保的空閒塊的預期數目和垃圾收集的預期時間。
在操作S411中,儲存設備可以向主機提供垃圾收集成本訊息GCC_INF。垃圾收集成本訊息GCC_INF可以包括在多個記憶體塊之中將透過垃圾收集確保的空閒塊的預期數目和垃圾收集的預期時間。
在操作S413中,主機可以將垃圾收集單位時間GCUT與儲存設備的空閒時間Idle Time進行比較。垃圾收集單位時間可以是確保一個空閒塊所需的預期時間。可以基於被包括在垃圾收集成本訊息GCC_INF中的空閒塊的預期數目和預期時間來計算垃圾收集單位時間。
在操作S415中,當空閒時間Idle Time大於垃圾收集單位時間GCUT時,主機可以向儲存設備提供第二垃圾收集控制命令GCCTL_CMD。主機可以基於垃圾收集單位時間GCUT和空閒時間Idle Time的比較結果來計算將透過垃圾收集確保的目標空閒塊的數目。主機可以向儲存設備提供包括目標空閒塊的數目的訊息和第二垃圾收集控制命令GCCTL_CMD。
在操作S417中,儲存設備可以響應於從主機接收到的第二垃圾收集控制命令GCCTL_CMD來執行垃圾收集。
圖5是圖示了根據本揭露的一個實施例的健康訊息的圖。
參考圖5,健康訊息HINF可以包括主機寫入量Host Write和儲存設備寫入量Device Write。主機寫入量Host Write可以是與從主機向儲存設備提供的寫入命令相對應的資料量。主機寫入量Host Write可以是由主機請求寫入到儲存設備的資料量。
儲存設備寫入量Device Write可以是與在儲存設備中執行的寫入操作相對應的資料量。儲存設備寫入量Device Write可以包括與主機的請求分離的根據儲存設備內部執行的寫入操作的資料量。
圖6是圖示了根據本揭露的一個實施例的智能健康訊息日誌的圖。
參考圖6,智能健康訊息日誌可以是圖5的健康訊息的一個實施例。一個字節可以是指示每個字段的位元值。字段的數目以及與字段相對應的字節值不限於本實施例。在圖6中,智能健康訊息日誌中只示出了所有字段之中的部分字段,並且還可以包括其他字段。
讀取的資料單元可以包括除了元資料之外的由主機從控制器讀取的512字節的資料單元的數目。寫入的資料單元可以包括除了元資料之外的由主機寫入到控制器的512字節的資料單元的數目。主機讀取命令可以包括由控制器完成的讀取命令的數目。主機寫入命令可以包括由控制器完成的寫入命令的數目。控制器忙碌時間可以包括當控制器由於輸入和輸出命令而處於忙碌狀態時的時間量。
圖7是圖示了根據本揭露的一個實施例的垃圾收集控制命令的圖。
參考圖7,垃圾收集控制命令GCCTL_CMD可以根據一個值指使返回垃圾收集成本訊息GCC_INF或者執行垃圾收集。例如,當該值為0時,垃圾收集控制命令GCCTL_CMD可以是用於請求儲存設備返回垃圾收集成本訊息GCC_INF的命令。當該值為1時,垃圾收集控制命令GCCTL_CMD可以是用於指使儲存設備執行垃圾收集的命令。垃圾收集控制命令可以是用於設置儲存設備的暫存器訊息的設置參數命令。
圖8A是圖示了根據本揭露的一個實施例的空閒塊的預期數目的圖。
參考圖8A,記憶體塊池可以包括第一至第六記憶體塊BLK1至BLK6。每個記憶體塊可以包括四個頁。被包括在記憶體塊池中的記憶體塊的數目和被包括在每個記憶體塊中的頁的數目不限於本實施例。
可以透過垃圾收集GC抹除無效頁資料,並且可以將有效頁資料移動並儲存在另一個記憶體塊中。例如,可以將儲存在第一至第四記憶體塊BLK1至BLK4中的有效頁資料複製到作為空閒塊的第五和第六記憶體塊BLK5和BLK6。此後,第一至第四記憶體塊BLK1至BLK4可以被抹除並被用作空閒塊。
無效資料頁計數IPC可以是被包括在記憶體塊中的儲存無效資料的頁的數目。在圖8A中,由於無效資料頁計數IPC為8並且在一個記憶體塊中包括有4個頁,因此可以預期8/4=2個空閒塊透過垃圾收集被確保。
因此,在垃圾收集GC之前,空閒塊的數目可以是兩個,並且空閒塊的預期數目可以是兩個。在垃圾收集GC之後,空閒塊的數目可以是四個,並且空閒塊的預期數目可以是零個。因此,可以透過垃圾收集GC額外確保兩個空閒塊。
圖8B是圖示了根據本揭露的一個實施例的用於確定空閒塊的預期數目的空閒塊計算表的圖。
參考圖8B,可以根據無效資料頁計數IPC值X來確定空閒塊的預期數目EFBLK。例如,當X大於或等於Y1且小於Y2時,可以將空閒塊的預期數目確定為Z1。當X大於或等於Y2且小於Y3時,可以將空閒塊的預期數目確定為Z2。類似地,當X大於或等於Yn且小於Y(n+1)時,可以將空閒塊的預期數目確定為Zn。
在一個實施例中,Y1至Y(n+1)和Z1至Zn的值可以包括製造工藝步驟中的預設值。在另一個實施例中,Y1至Y(n+1)和Z1至Zn的值可以根據儲存設備的環境而週期性或非週期性地更新。
空閒塊計算表的示例不限於本實施例,並且空閒塊的預期數目可以基於透過將X的值代入到預設方程或根據儲存設備的環境而變化的方程中所得到的值來確定。
圖9是圖示了根據本揭露的一個實施例的基於垃圾收集成本訊息GCC_INF的垃圾收集的圖。
參考圖9,將透過垃圾收集確保的空閒塊的預期數目可以是十個。垃圾收集所需的預期時間可以是5。可以根據儲存設備的性能和環境而不同地設置時間單位。垃圾收集單位時間可以是5/10=0.5。也就是說,透過垃圾收集確保一個空閒塊可能需要0.5的時間。
將透過垃圾收集確保的目標空閒塊的數目可以基於垃圾收集單位時間和儲存設備的空閒時間的比較結果來計算。例如,當儲存設備的空閒時間為0.2(其小於垃圾收集單位時間)時,目標空閒塊的數目可以為零。在這種情況下,主機可以不提供用於指使儲存設備執行垃圾收集的命令。
當儲存設備的空閒時間為0.7(其大於垃圾收集單位時間)時,目標空閒塊的數目可以是一個。主機可以向儲存設備提供用於指使執行垃圾收集的命令和包括目標空閒塊的數目的訊息。儲存設備可以執行垃圾收集以確保與目標空閒塊的數目一樣多。當儲存設備的空閒時間為10(其大於垃圾收集單位時間)時,目標空閒塊的數目可以為10。主機可以向儲存設備提供用於指使執行垃圾收集的命令和包括目標空閒塊的數目的訊息。
根據一個實施例,即使在執行整體的垃圾收集時可以確保10個空閒塊,主機也可以指使儲存設備在考慮到儲存設備的空閒時間的情況下確保空閒塊的優化數目。因此,可以在其中不降低儲存設備的性能的範圍內搶先確保空閒塊。
圖10是圖示了根據本揭露的一個實施例的操作主機的方法的流程圖。
參考圖10,在操作S1001中,主機可以向儲存設備提供用於請求包括主機寫入量和儲存設備寫入量的健康訊息的命令。
在操作S1003中,主機可以基於健康訊息來預測垃圾收集需求。
在操作S1005中,當垃圾收集需求被承認時,主機可以向儲存設備提供用於請求垃圾收集成本訊息GCC_INF的命令。
在操作S1007中,主機可以基於垃圾收集成本訊息GCC_INF來確定是否執行垃圾收集。
在操作S1009中,主機可以指使儲存設備執行垃圾收集。此時,主機可以向儲存設備提供包括將透過垃圾收集確保的目標空閒塊的數目的訊息。
圖11是圖示了根據本揭露的一個實施例的操作主機的方法的流程圖。
參考圖11,在操作S1101中,主機可以向儲存設備提供健康訊息請求命令。
在操作S1103中,主機可以接收包括主機寫入量和儲存設備寫入量的健康訊息。
在操作S1105中,主機可以確定儲存設備寫入量是否大於或等於主機寫入量。當儲存設備寫入量大於或等於主機寫入量時,操作進行到操作S1107。當儲存設備寫入量小於主機寫入量時,可以結束操作。在儲存設備寫入量大於主機寫入量的情況下,這種情況可能指示儲存設備中內部地執行了大量寫入操作,這導致無效資料頁的數目增加,並且因此這種情況可能指示非常需要執行垃圾收集。
在操作S1107中,主機可以向儲存設備提供用於請求垃圾收集成本訊息GCC_INF的垃圾收集控制命令。
在操作S1109中,主機可以從儲存設備接收包括空閒塊的預期數目和預期時間的垃圾收集成本訊息GCC_INF。
在操作S1111中,主機可以確定儲存設備的空閒時間是否長於垃圾收集單位時間。當空閒時間長於或等於垃圾收集單位時間時,操作進行到操作S1113。當空閒時間短於垃圾收集單位時間時,結束操作。垃圾收集單位時間可以是確保一個空閒塊所需的預期時間。
在操作S1113中,主機可以向儲存設備提供包括將透過垃圾收集確保的目標空閒塊的數目的訊息和用於指使垃圾收集的垃圾收集控制命令。
圖12是圖示了根據本揭露的一個實施例的操作儲存設備的方法的流程圖。
參考圖12,在操作S1201中,儲存設備可以響應於從主機接收到的健康訊息請求命令向主機提供包括主機寫入量和儲存設備寫入量的健康訊息。
在操作S1203中,儲存設備可以響應於從主機接收到的垃圾收集控制命令,基於被包括在記憶體塊訊息中的無效資料頁計數來檢查包括空閒塊的預期數目和預期時間的垃圾收集成本。具體地,儲存設備可以基於無效資料頁計數和儲存在空閒塊計算表中的值來確定空閒塊的預期數目。當空閒塊的預期數目被確定時,儲存設備可以基於預設時間值或者根據儲存設備的環境而更新的時間值來確定與空閒塊的預期數目相對應的預期時間。
在操作S1205中,儲存設備可以向主機提供垃圾收集成本訊息GCC_INF。
在操作S1207中,儲存設備可以響應於從主機接收到的垃圾收集控制命令來執行與目標空閒塊的數目相對應的垃圾收集。
圖13是圖示了根據本揭露的另一個實施例的圖1的記憶體控制器的圖。
參考圖13,記憶體控制器1000連接到主機和記憶體設備。記憶體控制器1000被配置為響應於來自主機的請求而訪問記憶體設備。例如,記憶體控制器1000被配置為控制記憶體設備的寫入、讀取、抹除和後臺操作。記憶體控制器1000被配置為提供記憶體設備和主機之間的介面。記憶體控制器1000被配置為驅動用於控制記憶體設備的韌體。
記憶體控制器1000可以包括處理器1010、記憶體緩衝器1020、糾錯電路(ECC)1030、主機介面1040、緩衝器控制器1050、記憶體介面1060和匯流排1070。
匯流排1070可以被配置為提供記憶體控制器1000的組件之間的通道。
處理器1010可以控制記憶體控制器1000的整體操作,並且可以執行邏輯操作。處理器1010可以透過主機介面1040來與外部主機通訊,並且透過記憶體介面1060來與記憶體設備通訊。此外,處理器1010可以透過緩衝器控制器1050來與記憶體緩衝器1020通訊。處理器1010可以將記憶體緩衝器1020作為操作記憶體、高速緩存記憶體或緩衝記憶體而控制儲存設備的操作。
處理器1010可以執行FTL的功能。處理器1010可以透過FTL將由主機提供的LBA轉換成PBA。FTL可以使用映射表來接收LBA並將該LBA轉換成PBA。快閃轉換層的位址映射方法可以包括根據映射單元的各種方法。代表性的位址映射方法包括頁映射方法、塊映射方法和混合映射方法。
處理器1010被配置為將從主機接收到的資料隨機化。例如,處理器1010可以使用隨機化種子來隨機化從主機接收到的資料。被隨機化的資料作為要被儲存的資料而被提供到記憶體設備,並且被編程到記憶體單元陣列。
處理器1010被配置為在讀取操作期間將從記憶體設備接收到的資料去隨機化。例如,處理器1010可以使用去隨機化種子來去隨機化從記憶體設備接收到的資料。被去隨機化的資料可以被輸出到主機。
在一個實施例中,處理器1010可以透過驅動軟體或韌體來執行隨機化和去隨機化。
記憶體緩衝器1020可以被用作處理器1010的操作記憶體、高速緩存記憶體或緩衝記憶體。記憶體緩衝器1020可以儲存由處理器1010執行的代碼和命令。記憶體緩衝器1020可以儲存由處理器1010處理的資料。記憶體緩衝器1020可以包括靜態RAM(SRAM)或動態RAM(DRAM)。
ECC 1030可以執行糾錯。ECC 1030可以基於將透過記憶體介面1060寫入到記憶體設備的資料來執行糾錯編碼(ECC編碼)。糾錯編碼資料可以透過記憶體介面1060而被傳送到記憶體設備。ECC 1030可以執行對透過記憶體介面1060而從記憶體設備接收到的資料執行糾錯解碼(ECC解碼)。例如,ECC 1030可以作為記憶體介面1060的組件而被包括在記憶體介面1060中。
主機介面1040被配置為在處理器1010的控制下與外部主機通訊。主機介面1040可以被配置為使用諸如以下項的各種通訊標準或介面中的至少一種來執行通訊:通用串列匯流排(USB)、串列AT附件(SATA)、串列附接SCSI(SAS)、高速互連晶片(HSIC)、小型計算機系統介面(SCSI)、外圍組件互連(PCI)、非揮發性記憶體快速(NVMe)、通用快閃儲存裝置(UFS)、安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、暫存式DIMM(RDIMM)以及低負載DIMM(LRDIMM)。
緩衝器控制器1050被配置為在處理器1010的控制下控制記憶體緩衝器1020。
記憶體介面1060被配置為在處理器1010的控制下與記憶體設備通訊。記憶體介面1060可以透過通道來與記憶體設備傳遞命令、位址和資料。
例如,記憶體控制器1000可以不包括記憶體緩衝器1020和緩衝器控制器1050。
例如,處理器1010可以使用代碼來控制記憶體控制器1000的操作。處理器1010可以從記憶體控制器1000內部提供的非揮發性記憶體設備(例如,唯讀記憶體)加載代碼。作為另一個示例,處理器1010可以透過記憶體介面1060從記憶體設備加載代碼。
例如,記憶體控制器1000的匯流排1070可以被劃分為控制匯流排和資料匯流排。資料匯流排可以被配置為在記憶體控制器1000內發送資料,並且控制匯流排可以被配置為在記憶體控制器1000內發送諸如命令和位址的控制訊息。資料匯流排和控制匯流排可以相互分離,並且可以不相互不干擾或相互影響。資料匯流排可以連接到主機介面1040、緩衝器控制器1050、ECC 1030和記憶體介面1060。控制匯流排可以連接到主機介面1040、處理器1010、緩衝器控制器1050、記憶體緩衝器1020以及記憶體介面1060。
圖14是圖示了應用根據本揭露的一個實施例的儲存設備的記憶體卡系統的方塊圖。
參考圖14,記憶體卡系統2000包括記憶體控制器2100、記憶體設備2200和連接器2300。
記憶體控制器2100連接到記憶體設備2200。記憶體控制器2100被配置為訪問記憶體設備2200。例如,記憶體控制器2100可以被配置為控制記憶體設備2200的讀取、寫入、抹除和後臺操作。記憶體控制器2100被配置為提供記憶體設備2200和主機之間的介面。記憶體控制器2100被配置為驅動用於控制記憶體設備2200的韌體。記憶體控制器2100可以與參考圖1描述的記憶體控制器200相同地實現。
例如,記憶體控制器2100可以包括諸如隨機存取記憶體(RAM)、處理器、主機介面、記憶體介面和ECC的組件。
記憶體控制器2100可以透過連接器2300來與外部設備通訊。記憶體控制器2100可以根據特定的通訊標準來與外部設備(例如,主機)通訊。例如,記憶體控制器2100被配置為透過諸如以下項的各種通訊標準或介面中的至少一種來與外部設備進行通訊:通用串列匯流排(USB)、多媒體卡(MMC)、嵌入式MMC(eMMC)、外圍組件互連(PCI)、PCI快速(PCI-E)、高級技術附件(ATA)、串列ATA、並行ATA、小型計算機系統介面(SCSI)、增強型小型盤介面(ESDI)、集成驅動電子設備(IDE)、火線、通用快閃儲存裝置(UFS)、Wi-Fi、藍牙和NVMe。例如,連接器2300可以由上述各種通訊標準或介面中的至少一種來定義。
例如,記憶體設備2200可以由諸如以下項的各種非揮發性記憶體元件構成:電可抹除可編程ROM(EEPROM)、NAND快閃記憶體、NOR快閃記憶體、相變RAM(PRAM)、電阻式RAM(ReRAM)、鐵電RAM(FRAM)和自旋轉移力矩磁性RAM(STT-MRAM)。
記憶體控制器2100和記憶體設備2200可以被整合到一個半導體設備中以配置記憶體卡。例如,記憶體控制器2100和記憶體設備2200可以被整合到一個半導體設備中以配置諸如PC卡(個人電腦記憶體卡國際協會(PCMCIA))、緊湊式快閃卡(CF)、智能媒體卡(SM或SMC)、記憶棒、多媒體卡(MMC、RS-MMC、MMCmicro或eMMC)、SD卡(SD、miniSD、microSD或SDHC)以及通用快閃儲存裝置(UFS)的記憶體卡。
圖15是圖示了應用根據本揭露的一個實施例的儲存設備的固態驅動器(SSD)系統的方塊圖。
參考圖15,SSD系統3000包括主機3100和SSD 3200。SSD 3200透過訊號連接器3001來與主機3100交換訊號並且透過電源連接器3002接收電源。SSD 3200包括SSD控制器3210、多個快閃記憶體3221至322n、輔助電源設備3230和緩衝記憶體3240。
根據本揭露的一個實施例,SSD控制器3210可以執行參考圖1描述的記憶體控制器200的功能。
SSD控制器3210可以透過多個通道CH1至CHn來與多個快閃記憶體3221至322n通訊並響應於從主機3100接收到的訊號來控制多個快閃記憶體3221至322n。多個快閃記憶體3221至322n可以包括非揮發性記憶體NVM。例如,該訊號可以是基於主機3100和SSD 3200之間的介面的訊號。例如,訊號可以是由諸如以下項的通訊標準或介面中的至少一種定義的訊號:通用串列匯流排(USB)、多媒體卡(MMC)、嵌入式MMC(eMMC)、外圍組件互連(PCI)、PCI快速(PCI-E)、高級技術附件(ATA)、串列ATA、並行ATA、小型計算機系統介面(SCSI)、增強型小型盤介面(ESDI)、集成驅動電子設備(IDE)、火線、通用快閃儲存裝置(UFS)、Wi-Fi、藍牙和NVMe。
輔助電源設備3230透過電源連接器3002連接到主機3100。輔助電源設備3230可以從主機3100接收電源並且可以充電。當從主機3100的電源供應不暢時,輔助電源設備3230可以為SSD 3200提供電源。例如,輔助電源設備3230可以位於SSD 3200中或者可以位於SSD 3200外部。例如,輔助電源設備3230可以位於主板上並且可以向SSD 3200提供輔助電源。
緩衝記憶體3240作為SSD 3200的緩衝記憶體進行操作。例如,緩衝記憶體3240可以臨時儲存從主機3100接收到的資料或從多個快閃記憶體3221至322n接收到的資料,或者可以臨時儲存快閃記憶體3221至322n的元資料(例如,映射表)。緩衝記憶體3240可以包括諸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的揮發性記憶體,或者諸如FRAM、ReRAM、STT-MRAM和PRAM的非揮發性記憶體。
圖16是圖示了應用根據本揭露的一個實施例的儲存設備的用戶系統的方塊圖。
參考圖16,用戶系統4000包括應用處理器4100、記憶體模組4200、網路模組4300、儲存模組4400和用戶介面4500。
應用處理器4100可以驅動被包括在用戶系統4000中的組件、作業系統(OS)、用戶程序等。例如,應用處理器4100可以包括控制被包括在用戶系統4000中的組件的控制器、介面、圖形引擎等。應用處理器4100可以被提供為片上系統(SoC)。
記憶體模組4200可以作為用戶系統4000的主記憶體、操作記憶體、緩衝記憶體或高速緩存記憶體進行操作。記憶體模組4200可以包括諸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM或LPDDR3 SDRAM的揮發性隨機存取記憶體,或者諸如PRAM、ReRAM、MRAM或FRAM的非揮發性隨機存取記憶體。例如,應用處理器4100和記憶體模組4200可以基於疊層封裝(POP)進行封裝並且被提供為單個半導體封裝。
網路模組4300可以與外部設備通訊。例如,網路模組4300可以支持諸如碼分多址(CDMA)、全球移動通訊系統(GSM)、寬帶CDMA(WCDMA)、CDMA-2000、時分多址(TDMA)、長期演進、Wimax、WLAN、UWB、藍牙和Wi-Fi的無線通訊。例如,網路模組4300可以被包括在應用處理器4100中。
儲存模組4400可以儲存資料。例如,儲存模組4400可以儲存從應用處理器4100接收到的資料。替代地,儲存模組4400可以將儲存在儲存模組4400中的資料發送到應用處理器4100。例如,儲存模組4400可以被實現為諸如相變RAM(PRAM)、磁性RAM(MRAM)、電阻式RAM(RRAM)、NAND快閃、NOR快閃以及三維NAND快閃的非揮發性半導體記憶體元件。例如,儲存模組4400可以被提供為諸如記憶體卡的可拆卸儲存設備(可拆卸驅動器)以及用戶系統4000的外部驅動器。
例如,儲存模組4400可以包括多個非揮發性記憶體設備,並且多個非揮發性記憶體設備可以與參考圖1描述的記憶體設備100相同地操作。儲存模組4400可以與參考圖1描述的儲存設備50相同地操作。
用戶介面4500可以包括用於向應用處理器4100輸入資料或指令或者用於向外部設備輸出資料的介面。例如,用戶介面4500可以包括諸如鍵盤、小鍵盤、按鈕、觸碰面板、觸碰螢幕、觸碰板、觸碰球、相機、麥克風、陀螺儀感測器、振動感測器和壓電元件的用戶輸入介面。用戶介面4500可以包括諸如液晶顯示器(LCD)、有機發光二極管(OLED)顯示設備、有源矩陣OLED(AMOLED)顯示設備、LED、揚聲器以及監視器的用戶輸出介面。
雖然根據上述實施例對本揭露的技術精神進行了具體描述,但是應當注意,上述實施例用於進行說明而並非用於限制。此外,本領域的技術人員將理解,可以在本揭露和所附權利要求的技術精神的範圍內做出各種實施例。此外,實施例可以進行組合以形成另外的實施例。
50:儲存設備 100:儲存器設備 110:記憶體單元陣列 120:外圍電路 121:位址解碼器 122:電壓產生器 123:讀取和寫入電路 124:資料輸入/輸出電路 125:感測電路 130:控制邏輯 200:儲存器控制器 210:記憶體設備狀態訊息儲存裝置 220:垃圾收集處理器 300:主機 310:垃圾收集控制器 320:空閒時間處理器 1000:記憶體控制器 1010:處理器 1020:記憶體緩衝器 1030:糾錯電路 1040:主機介面 1050:緩衝器控制器 1060:記憶體介面 1070:匯流排 2000:記憶體卡系統 2100:記憶體控制器 2200:記憶體設備 2300:連接器 3000:SSD系統 3001:訊號連接器 3002:電源連接器 3100:主機 3200:SSD 3210:SSD控制器 3221:快閃記憶體 3222:快閃記憶體 322n:快閃記憶體 3230:輔助電源設備 3240:緩衝記憶體 4000:用戶系統 4100:應用處理器 4200:記憶體模組 4300:網路模組 4400:儲存模組 4500:用戶介面 ADDR:位址 BL1:位元線 BL2:位元線 BL3:位元線 BLm:位元線 BLK1:記憶體塊 BLK2:記憶體塊 BLKz:記憶體塊 BLK_INF:記憶體塊訊息 CMD:命令 DATA:資料 DL:資料線 GCC_INF:垃圾收集成本訊息 GCCTL_CMD:垃圾收集控制命令 CH1:通道 CH2:通道 CHn:通道 HINF:健康訊息 HINF_CMD:健康訊息請求命令 NVM:非揮發性記憶體 OPSIG:操作訊號 PASS/FAIL:通過或失敗訊號 PB1:頁緩衝器 PB2:頁緩衝器 PB3:頁緩衝器 PBm:頁緩衝器 PBSIGNALS:控制訊號 RL:列線 Vop:操作電壓 VPB:感測電壓 VRYBIT:允許位元 S401,S403,S405,S407,S409,S411,S415,S417:操作 S1001,S1003,S1005,S1007,S1009:操作 S1101,S1103,S1105,S1107,S1109,S1111,S1113:操作 S1201,S1203,S1205,S1207:操作
圖1是圖示了根據本揭露的一個實施例的計算系統的圖。 圖2是圖示了根據本揭露的一個實施例的圖1的記憶體設備的結構的圖。 圖3是圖示了根據本揭露的一個實施例的圖1的主機和記憶體控制器的配置和操作的圖。 圖4是圖示了根據本揭露的一個實施例的主機和儲存設備的操作的流程圖。 圖5是圖示了根據本揭露的一個實施例的健康訊息的圖。 圖6是圖示了根據本揭露的一個實施例的智能健康訊息日誌的圖。 圖7是圖示了根據本揭露的一個實施例的垃圾收集控制命令的圖。 圖8A是圖示了根據本揭露的一個實施例的空閒塊的預期數目的圖。 圖8B是圖示了根據本揭露的一個實施例的用於確定空閒塊的預期數目的空閒塊計算表的圖。 圖9是圖示了根據本揭露的一個實施例的基於垃圾收集成本訊息的垃圾收集的圖。 圖10是圖示了根據本揭露的一個實施例的操作主機的方法的流程圖。 圖11是圖示了根據本揭露的一個實施例的操作主機的方法的流程圖。 圖12是圖示了根據本揭露的一個實施例的操作儲存設備的方法的流程圖。 圖13是圖示了根據本揭露的另一個實施例的圖1的記憶體控制器的圖。 圖14是圖示了應用根據本揭露的一個實施例的儲存設備的記憶體卡系統的方塊圖。 圖15是圖示了應用根據本揭露的一個實施例的儲存設備的固態驅動器(SSD)系統的方塊圖。 圖16是圖示了應用根據本揭露的一個實施例的儲存設備的用戶系統的方塊圖。
100:記憶體設備
200:記憶體控制器
210:記憶體設備狀態訊息儲存裝置
220:垃圾收集處理器
300:主機
310:垃圾收集控制器
320:空閒時間處理器
HINF:健康訊息
HINF_CMD:健康訊息請求命令
GCCTL_CMD:垃圾收集控制命令
GCC_INF:垃圾收集成本訊息
BLK_INF:記憶體塊訊息

Claims (20)

  1. 一種主機設備,包括: 垃圾收集控制器,被配置為: 向儲存設備提供健康訊息請求命令,所述健康訊息請求命令用於請求包括主機寫入量和儲存設備寫入量的健康訊息, 基於所述健康訊息,向所述儲存設備提供第一垃圾收集控制命令,所述第一垃圾收集控制命令用於請求垃圾收集成本訊息,以及 基於所述垃圾收集成本訊息和所述儲存設備的空閒時間,向所述儲存設備提供第二垃圾收集控制命令,所述第二垃圾收集控制命令用於指使執行垃圾收集;以及 空閒時間處理器,被配置為處理關於所述空閒時間的訊息。
  2. 如請求項1所述的主機設備, 其中所述主機寫入量是與從所述主機向所述儲存設備提供的寫入命令相對應的資料量,以及 其中所述儲存設備寫入量是與在所述儲存設備中被執行的寫入操作相對應的資料量。
  3. 如請求項2所述的主機設備,其中當所述儲存設備寫入量大於所述主機寫入量時,所述垃圾收集控制器向所述儲存設備提供所述第一垃圾收集控制命令。
  4. 如請求項1所述的主機設備,其中所述垃圾收集成本訊息包括將透過所述垃圾收集而被確保的空閒塊的預期數目和所述垃圾收集所需的預期時間。
  5. 如請求項4所述的主機設備,其中所述垃圾收集控制器基於所述空閒時間與垃圾收集單位時間的比較結果來向所述儲存設備提供所述第二垃圾收集控制命令,所述垃圾收集單位時間是基於空閒塊的所述預期數目和所述預期時間而被計算出的。
  6. 如請求項5所述的主機設備,其中所述垃圾收集控制器還被配置為:當所述空閒時間大於所述垃圾收集單位時間時,向所述儲存設備提供所述第二垃圾收集控制命令。
  7. 如請求項5所述的主機設備,其中所述垃圾收集控制器還被配置為:基於所述比較結果來計算將透過所述垃圾收集而被確保的目標空閒塊的數目,並且將包括目標空閒塊的所述數目的訊息與所述第二垃圾收集控制命令一起提供給所述儲存設備。
  8. 如請求項1所述的主機設備, 其中所述健康訊息請求命令包括用於請求所述儲存設備的暫存器訊息的獲取參數命令,以及 其中所述第一垃圾收集控制命令和所述第二垃圾收集控制命令包括用於設置所述暫存器訊息的設置參數命令。
  9. 如請求項1所述的主機設備, 其中所述健康訊息包括主機讀取量、儲存設備讀取量以及所述儲存設備的忙碌時間,所述主機讀取量是與從所述主機向所述儲存設備提供的讀取命令相對應的資料量,所述儲存設備讀取量是與在所述儲存設備中被執行的讀取操作相對應的資料量,以及 其中所述空閒時間處理器基於所述健康訊息和關於所述空閒時間的訊息中的至少一者來計算所述空閒時間,關於所述空閒時間的所述訊息包括關於被提供到所述儲存設備的輸入和輸出命令的訊息。
  10. 一種操作主機設備的方法,所述方法包括: 向儲存設備提供健康訊息請求命令,所述健康訊息請求命令用於請求包括主機寫入量和儲存設備寫入量的健康訊息; 基於從所述儲存設備接收到的所述健康訊息,向所述儲存設備提供第一垃圾收集控制命令,所述第一垃圾收集控制命令用於請求垃圾收集成本訊息;以及 基於所述垃圾收集成本訊息和所述儲存設備的空閒時間,向所述儲存設備提供第二垃圾收集控制命令,所述第二垃圾收集控制命令指使執行垃圾收集。
  11. 如請求項10所述的方法,還包括基於被提供到所述儲存設備的輸入和輸出命令來計算所述空閒時間, 其中所述空閒時間表示從當所述主機設備從所述儲存設備接收到對上一個命令的響應開始,到當所述主機設備向所述儲存設備發送新的下一個命令的請求為止的時間。
  12. 如請求項10所述的方法, 其中所述主機寫入量是與被提供到所述儲存設備的寫入命令相對應的資料量,以及 其中所述儲存設備寫入量是與在所述儲存設備中被執行的寫入操作相對應的資料量。
  13. 如請求項12所述的方法,其中當所述儲存設備寫入量大於所述主機寫入量時,所述第一垃圾收集控制命令被提供。
  14. 如請求項10所述的方法,其中所述垃圾收集成本訊息表示將透過所述垃圾收集而被確保的空閒塊的預期數目和所述垃圾收集所需的預期時間。
  15. 如請求項14所述的方法,其中所述第二垃圾收集控制命令基於所述空閒時間與垃圾收集單位時間的比較結果而被提供,所述垃圾收集單位時間是基於空閒塊的所述預期數目和所述預期時間而被計算出的。
  16. 如請求項15所述的方法,還包括: 基於所述比較結果來計算將透過所述垃圾收集而被確保的目標空閒塊的數目;以及 將表示目標空閒塊的所述數目的訊息與所述第二垃圾收集控制命令一起提供給所述儲存設備。
  17. 一種儲存設備,包括: 記憶體設備,包括多個記憶體塊;以及 記憶體控制器,被配置為: 響應於來自外部設備的健康訊息請求命令,向所述外部設備提供包括外部設備寫入量和儲存設備寫入量的健康訊息, 響應於來自所述外部設備的第一垃圾收集控制命令,向所述外部設備提供包括將透過垃圾收集而被確保的空閒塊的預期數目的垃圾收集成本訊息,以及 響應於來自所述外部設備的第二垃圾收集控制命令,對所述記憶體設備執行所述垃圾收集。
  18. 如請求項17所述的儲存設備, 其中所述外部設備寫入量是與從所述外部設備向所述記憶體控制器提供的寫入命令相對應的資料量,以及 其中所述儲存設備寫入量是與在所述記憶體設備中被執行的寫入操作相對應的資料量。
  19. 如請求項17所述的儲存設備,其中所述記憶體控制器包括: 記憶體設備狀態訊息儲存裝置,被配置為儲存關於所述多個記憶體塊的記憶體塊訊息和所述健康訊息,並且包括空閒塊計算表;以及 垃圾收集處理器,被配置為基於無效資料頁計數和所述空閒塊計算表來確定空閒塊的所述預期數目。
  20. 如請求項17所述的儲存設備, 其中所述健康訊息請求命令包括用於請求所述儲存設備的暫存器訊息的獲取參數命令,以及 其中所述第一垃圾收集控制命令和所述第二垃圾收集控制命令包括用於設置所述暫存器訊息的設置參數命令。
TW112118475A 2022-06-08 2023-05-18 計算系統及其操作方法 TW202349203A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220069776A KR20230168908A (ko) 2022-06-08 2022-06-08 컴퓨팅 시스템 및 그 동작 방법
KR10-2022-0069776 2022-06-08

Publications (1)

Publication Number Publication Date
TW202349203A true TW202349203A (zh) 2023-12-16

Family

ID=88874126

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112118475A TW202349203A (zh) 2022-06-08 2023-05-18 計算系統及其操作方法

Country Status (5)

Country Link
US (1) US20230401006A1 (zh)
KR (1) KR20230168908A (zh)
CN (1) CN117193627A (zh)
DE (1) DE102023109661A1 (zh)
TW (1) TW202349203A (zh)

Also Published As

Publication number Publication date
DE102023109661A1 (de) 2023-12-14
US20230401006A1 (en) 2023-12-14
KR20230168908A (ko) 2023-12-15
CN117193627A (zh) 2023-12-08

Similar Documents

Publication Publication Date Title
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
US11449417B2 (en) Memory controller performing host-aware performance booster mode and method of operating the same
CN112905502A (zh) 存储装置及其操作方法
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
US11853202B2 (en) Memory system performing garbage collection operation by exchanging information related to garbage collection with host and method of operating the memory system
CN112783433A (zh) 存储装置及其操作方法
KR20210142981A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20210077451A (ko) 저장 장치 및 그 동작 방법
US11687450B2 (en) Storage device for translating address and operating method thereof
KR20200114009A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20210090439A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20220030090A (ko) 저장 장치 및 그 동작 방법
KR20230037240A (ko) 호스트 장치, 메모리 컨트롤러 및 이를 포함하는 컴퓨팅 시스템
KR20230007881A (ko) 저장 장치 및 그 동작 방법
US20200201547A1 (en) Storage device and method of operating the same
US11449277B2 (en) Memory controller and method of operating the same
KR20220170664A (ko) 호스트 장치, 저장 장치 및 그 동작 방법
KR20220053973A (ko) 메모리 컨트롤러 및 그 동작 방법
KR20220052161A (ko) 메모리 장치 및 그 동작 방법
US20230401006A1 (en) Computing system and method of operating the same
US11500768B2 (en) Storage device performing garbage collection and method of operating the same
US11210223B2 (en) Storage device and operating method thereof
US20230176772A1 (en) Memory controller and method of operating the same
US11886314B2 (en) Memory system and operating method thereof
US11928056B2 (en) Memory controller for allocating cache lines and method of operating the same