TW202405660A - 儲存裝置、包括儲存裝置的電子裝置及其操作方法 - Google Patents
儲存裝置、包括儲存裝置的電子裝置及其操作方法 Download PDFInfo
- Publication number
- TW202405660A TW202405660A TW112114714A TW112114714A TW202405660A TW 202405660 A TW202405660 A TW 202405660A TW 112114714 A TW112114714 A TW 112114714A TW 112114714 A TW112114714 A TW 112114714A TW 202405660 A TW202405660 A TW 202405660A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- storage device
- read
- host device
- storage
- Prior art date
Links
- 238000003860 storage Methods 0.000 title claims abstract description 189
- 238000011017 operating method Methods 0.000 title description 7
- 230000015654 memory Effects 0.000 claims abstract description 163
- 238000013500 data storage Methods 0.000 claims abstract description 45
- 239000000872 buffer Substances 0.000 claims description 87
- 238000013507 mapping Methods 0.000 claims description 87
- 230000004044 response Effects 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 10
- 238000004064 recycling Methods 0.000 claims description 2
- 239000000463 material Substances 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 6
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 102100037460 E3 ubiquitin-protein ligase Topors Human genes 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 101001062093 Homo sapiens RNA-binding protein 15 Proteins 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100029244 RNA-binding protein 15 Human genes 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/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
- 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/10—Address translation
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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
-
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
- G06F2212/284—Plural cache memories being distributed
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Read Only Memory (AREA)
Abstract
本發明係關於一種儲存裝置,包括:非揮發性記憶體裝置;揮發性記憶體裝置,包括:映射資料儲存器,用於暫時儲存映射資料的一部分,該映射資料表示從主機裝置提供的資料的邏輯位址和資料在非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係;以及預獲取資料儲存器,用於將關於從主機裝置預獲取的至少兩個邏輯位址的映射資料作為預獲取資料儲存;以及記憶體控制器,用於控制非揮發性記憶體裝置和揮發性記憶體裝置透過使用預獲取資料處理作為對從主機裝置接收的至少兩個邏輯位址的讀取請求的多組塊讀取命令,並且將預獲取資料保存在預獲取資料儲存器中。
Description
相關申請的交叉引用
本發明要求於2022年7月29日提交的申請號為10-2022-0094883的韓國專利申請的優先權,該韓國專利申請的全部公開內容透過引用併入本文。
本發明的多種實施例整體上係關於一種電子裝置,並且更具體地,係關於一種儲存裝置、包括儲存裝置的電子裝置及其操作方法。
儲存裝置是在諸如計算機或智慧型電話的主機裝置的控制下儲存資料的裝置。儲存裝置可以包括儲存資料的記憶體裝置和控制該記憶體裝置的記憶體控制器。記憶體裝置被分類為揮發性記憶體裝置和非揮發性記憶體裝置。
揮發性記憶體裝置是僅在供電時才儲存資料,而在供電中斷時所儲存的資料就消失的記憶體裝置。揮發性記憶體裝置可以包括靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)等。
非揮發性記憶體裝置是即使在供電中斷時資料也不消失的記憶體裝置。非揮發性記憶體裝置可以包括唯讀記憶體(ROM)、可程式ROM(PROM)、電可程式ROM(EPROM)、電可抹除ROM(EEPROM)、快閃記憶體等。
作為一種提高儲存裝置的性能的技術,存在主機性能提升器(HPB)模式。當包括儲存裝置和主機的計算系統在HPB模式下操作時,可以同時使用主機中包括的主機緩衝器和儲存裝置的緩衝記憶體。
本發明的多種實施例提供一種用於有效地使用預獲取資料記憶體中儲存的預獲取資料的儲存裝置、包括該儲存裝置的電子裝置以及該電子裝置的操作方法。
根據本發明的一方面,提供一種儲存裝置,包括:非揮發性記憶體裝置;揮發性記憶體裝置,包括映射資料儲存器,該映射資料儲存器被配置為暫時儲存映射資料的一部分,該映射資料表示由主機裝置提供的資料的邏輯位址和從主機裝置提供的資料在非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係;以及預獲取資料儲存器,被配置為將關於從主機裝置預獲取的至少兩個邏輯位址的映射資料作為預獲取資料儲存;以及記憶體控制器,被配置為控制非揮發性記憶體裝置和揮發性記憶體裝置,透過使用預獲取資料處理作為對從主機裝置接收的至少兩個邏輯位址的讀取請求的多組塊讀取命令,並且將預獲取資料保存在預獲取資料儲存器中。
根據本發明的另一方面,提供一種用於控制儲存裝置的主機裝置,該主機裝置包括:主機緩衝器,被配置為儲存映射資料,該映射資料表示儲存裝置中儲存的資料的邏輯位址和資料在儲存裝置的非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係,映射資料由儲存裝置提供;以及儲存裝置控制器,被配置為向儲存裝置傳輸主機緩衝器中儲存的映射資料之中的、關於至少兩個邏輯位址的映射資料作為預獲取資料,向儲存裝置傳輸作為對至少兩個邏輯位址的讀取請求的多組塊讀取命令,並且從儲存裝置接收回應消息,該回應消息包括表示儲存裝置是已經透過使用傳輸到儲存裝置並且儲存在儲存裝置的揮發性記憶體裝置中的預獲取資料處理了多組塊讀取命令的資訊,或是在沒有使用傳輸的預獲取資料的情況下處理了多組塊讀取命令的資訊。
根據本發明的另一方面,提供一種計算系統,包括:主機裝置;以及儲存裝置,被配置為從主機裝置接收待讀取的資料的映射資訊,暫時儲存映射資訊,從主機裝置接收對資料的讀取請求,透過使用映射資訊來處理讀取請求,並且在處理讀取請求之後將映射資訊保存在其中。
根據本發明的另一方面,提供一種儲存裝置,包括:非揮發性記憶體裝置;映射資料儲存器,被配置為暫時儲存映射資料的一部分,該映射資料表示從主機裝置提供的資料的邏輯位址和從主機裝置提供的資料在非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係;預獲取資料儲存器,被配置為將關於從主機裝置預獲取的至少兩個邏輯位址的映射資料作為預獲取資料儲存;以及記憶體控制器,被配置為控制非揮發性記憶體裝置和預獲取資料儲存器,透過使用預獲取資料處理作為對從主機裝置接收的至少兩個邏輯位址的讀取請求的多組塊讀取命令,並且將預獲取資料保存在預獲取資料儲存器中。
根據本發明的又一方面,提供一種控制器的操作方法,該操作方法包括:將映射資料從主機預獲取到操作記憶體中;將預獲取的映射資料保存在操作記憶體中;並且在確定預獲取的映射資料不表示邏輯位址與實際物理位址之間的關係時,從操作記憶體中移除該映射資料。
在實施例中,該操作方法進一步包括:回應於來自主機的讀取請求,控制記憶體裝置以對其執行讀取操作,並且向主機提供表示是否根據在操作記憶體中預獲取的映射資料執行讀取請求的資訊,並作為對讀取請求的回應。
為了描述根據本發明的構思的實施例,本文中所發明的特定結構或功能描述僅是說明性的。根據本發明的構思的實施例可以以各種形式來實現,並且不應被理解為限於本文中闡述的實施例。
圖1是示出根據本發明的實施例的計算系統10的示圖。
參照圖1,計算系統10可以包括儲存裝置100和主機裝置101。儲存裝置100和主機裝置101可以透過各種介面執行有線/無線通訊。
主機裝置101可以使用諸如以下的各種通訊標準或介面中的至少一種與儲存裝置100通訊:通用串列匯流排(USB)、串列AT附件(SATA)、高速晶片間(HSIC)、小型計算機系統介面(SCSI)、火線、外圍組件互連(PCI)、高速PCI(PCIe)、高速非揮發性記憶體(NVMe)、通用快閃儲存(UFS)、安全數位(SD)、多媒體卡(MMC)、嵌入式MMC(eMMC)、雙列直插式記憶體模組(DIMM)、寄存式DIMM(RDIMM)以及低負載DIMM(LRDIMM)。
在本說明書中,為了描述方便,描述儲存裝置100和主機裝置101根據USF通訊介面執行資料通訊。然而,本發明的實施例不限於根據USF通訊介面執行資料通訊。具體地,儲存裝置100和主機裝置101可以透過使用定義為協議資訊單元(Protocol Information Unit,以下簡稱PIU)的命令執行資料通訊。PIU可以是根據預定協議產生的一種資料封包。
PIU可以是主機裝置101或儲存裝置100請求、指示或回應操作的執行的命令。在實施例中,可以根據用途和目的來定義各種PIU。例如,PIU可以是查詢請求PIU、命令PIU、回應PIU、資料輸出PIU、資料輸入PIU和準備傳送PIU中的任意一個。
在實施例中,查詢請求PIU可以包括用於提供若干參數的裝置描述符。裝置描述符可以包括表示儲存裝置100是否是支援高級重放保護記憶區塊(RPMB)模式的儲存裝置的資訊。
PIU的最小大小可以為32字節,而PIU的最大大小可以為65,600字節。PIU的格式可以根據其類型而具有不同的大小。主機裝置101的硬體配置將在圖2中進行描述。
儲存裝置100可以是在諸如以下的主機裝置101的控制下儲存資料的裝置:行動電話、智慧型電話、MP3播放器、筆記型電腦、桌上型電腦、遊戲機、電視、平板電腦或車用資訊娛樂系統。而且,儲存裝置100可以是在主機裝置101的控制下將大容量資料儲存在一個地方的裝置,諸如伺服器或資料中心。
儲存裝置100可以根據主機介面被製造為各種類型的儲存裝置中的任意一種,該主機介面為與主機裝置101的通訊方案。例如,儲存裝置100可以利用諸如以下的各種類型的記憶體模組中的任意一種來配置:固態驅動器(SSD),MMC、eMMC、RS-MMC和微型MMC形式的多媒體卡,SD、迷你SD和微型SD形式的安全數位卡,通用串列匯流排(USB)記憶體模組,通用快閃儲存(UFS)裝置,個人電腦記憶卡國際協會(PCMCIA)卡型記憶體模組,外圍組件互連(PCI)卡型記憶體模組,高速PCI(PCI-E)卡型記憶體模組,緊湊型快閃儲存(CF)卡,智慧媒體卡(SMC)和記憶棒。
儲存裝置100可以被製造為各種封裝類型中的任意一種。例如,儲存裝置100可以被製造為諸如以下的各種封裝類型中的任意一種:堆疊封裝(POP)、系統級封裝(SIP)、片上系統(SOC)、多晶片封裝(MCP)、板上晶片(COB)、晶圓級製造封裝(WFP)與晶圓級堆疊封裝(WSP)。儲存裝置100的硬體配置將在圖2中進行描述。
圖2是示出根據本發明的實施例的圖1所示的儲存裝置100的示圖。
參照圖2,主機裝置101和儲存裝置100可以包括各種硬體配置。
儲存裝置100可以包括記憶體控制器110、揮發性記憶體裝置120和非揮發性記憶體裝置130。記憶體控制器110可以包括讀取操作處理器111和緩衝記憶體控制器112。在示例中,讀取操作處理器111和緩衝記憶體控制器112可以對應於在一個晶片中執行不同功能的控制邏輯。
記憶體控制器110可以控制儲存裝置100的全部操作。
當向儲存裝置100供電時,記憶體控制器110可以運行韌體(FW)。當非揮發性記憶體裝置130為快閃記憶體裝置時,記憶體控制器110可以運行諸如快閃儲存轉換層(FTL)的FW,用於控制主機裝置101與非揮發性記憶體裝置130之間的通訊。
在實施例中,記憶體控制器110可以從主機裝置101接收資料和邏輯區塊位址(LBA),並且將LBA轉換為物理區塊位址(PBA),物理區塊位址(PBA)表示非揮發性記憶體裝置130中包括的待儲存資料的記憶體單元的位址。
記憶體控制器110可以回應於來自主機裝置101的請求控制非揮發性記憶體裝置130執行程式操作、讀取操作、抹除操作等。在程式操作中,記憶體控制器110可以向非揮發性記憶體裝置130提供程式命令、PBA和資料。在讀取操作中,記憶體控制器110可以向非揮發性記憶體裝置130提供讀取命令和PBA。在抹除操作中,記憶體控制器110可以向非揮發性記憶體裝置130提供抹除命令和PBA。
在實施例中,記憶體控制器110可以不管來自主機裝置101的任意請求而自主地產生命令、位址和資料,並且將命令、位址和資料傳輸到非揮發性記憶體裝置130。例如,記憶體控制器110可以向非揮發性記憶體裝置130提供命令、位址和資料,這些命令、位址和資料用於執行在執行損耗均衡、讀取回收、垃圾收集等時所伴隨的讀取操作和程式操作。
在實施例中,記憶體控制器110可以控制至少兩個非揮發性記憶體裝置130。記憶體控制器110可以根據交錯方案控制非揮發性記憶體裝置130以提高操作性能。交錯方案可以是控制對至少兩個非揮發性記憶體裝置130的操作彼此重疊的方案。
讀取操作處理器111可以回應於從主機裝置101接收的讀取命令讀取非揮發性記憶體裝置130中儲存的資料。
緩衝記憶體控制器112可以控制揮發性記憶體裝置120。在示例中,緩衝記憶體控制器112可以控制揮發性記憶體裝置120儲存映射資料,該映射資料表示非揮發性記憶體裝置130中儲存的資料的邏輯位址和儲存裝置100從主機裝置101接收的資料在非揮發性記憶體裝置130中儲存的位置相對應的物理位址之間的關係。
揮發性記憶體裝置120可以將映射資料作為關於非揮發性記憶體裝置130中包括的多個記憶體單元的物理位址與多個記憶體單元中儲存的資料的邏輯位址之間的映射資訊進行儲存。揮發性記憶體裝置120可以是靜態隨機存取記憶體(SRAM)。
映射資料儲存器121可以暫時儲存映射資料之中的一些資料,該映射資料表示儲存裝置100從主機裝置101接收的資料的邏輯位址和相應資料在非揮發性記憶體裝置130中儲存的位置相對應的物理位址之間的關係。
預獲取資料儲存器122可以將關於至少兩個邏輯位址的映射資料作為預獲取資料進行儲存,儲存裝置100從主機裝置101預獲取該映射資料。在示例中,儲存裝置100從主機裝置101接收的關於至少兩個邏輯位址的映射資料可以包括關於非揮發性記憶體裝置130的物理位址的資訊,具有儲存裝置100從主機裝置101接收的至少兩個邏輯位址的資料儲存在該物理位址中。
主機緩衝器101-1可以將映射資料作為關於非揮發性記憶體裝置130中包括的多個記憶體單元的物理位址與非揮發性記憶體裝置130中包括的多個記憶體單元中儲存的資料的邏輯位址之間的映射資訊進行儲存。
儲存裝置控制器101-2可以控制儲存裝置100。在示例中,儲存裝置控制器101-2可以產生用於控制儲存裝置100將關於至少兩個邏輯位址的映射資料儲存在預獲取資料儲存器122中的訊號,該映射資料是從主機裝置101預獲取的。
非揮發性記憶體裝置130可以包括記憶體單元陣列(未示出),該記憶體單元陣列包括用於儲存資料的多個記憶體單元。
記憶體單元中的每一個可以被配置為能夠儲存一個資料位的單層單元(SLC)、能夠儲存兩個資料位元的多層單元(MLC)、能夠儲存三個資料位元的三層單元(TLC)和能夠儲存四個資料位元的四層單元(QLC)中的任意一個。
記憶體單元陣列(未示出)可以包括多個記憶區塊。每個記憶區塊可以包括多個記憶體單元。每個記憶區塊可以包括多個頁面。在實施例中,頁面可以是用於將資料儲存在非揮發性記憶體裝置130中或者讀取儲存在非揮發性記憶體裝置130中的資料的單位。記憶區塊可以是用於抹除資料的單位。
在實施例中,非揮發性記憶體裝置130可以是雙倍資料速率同步動態隨機存取記憶體(DDR SDRAM)、第四代低功率雙倍資料速率(LPDDR4)SDRAM、圖形雙倍資料速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus動態隨機存取記憶體(RDRAM)、NAND快閃記憶體、垂直NAND快閃記憶體、NOR快閃記憶體、電阻式隨機存取記憶體(RRAM)、相變隨機存取記憶體(PRAM)、磁阻隨機存取記憶體(MRAM)、鐵電隨機存取記憶體(FRAM)、自旋轉移力矩隨機存取記憶體(STT-RAM)等。在本說明書中,為了便於描述,描述了非揮發性記憶體裝置130是NAND快閃記憶體的情況。
非揮發性記憶體裝置130可以從記憶體控制器110接收命令和位址,並且訪問記憶體單元陣列中由位址選擇的區域。非揮發性記憶體裝置130可以對由位址選擇的區域執行由命令指示的操作。例如,非揮發性記憶體裝置130可以執行寫入操作(程式操作)、讀取操作和抹除操作。在程式操作中,非揮發性記憶體裝置130可以將資料編程到由位址選擇的區域中。在讀取操作中,非揮發性記憶體裝置130可以從由位址選擇的區域讀取資料。在抹除操作中,非揮發性記憶體裝置130可以抹除由位址選擇的區域中儲存的資料。
圖3是示出根據多組塊寫入緩衝命令320將預獲取資料321儲存在預獲取資料儲存器122中的操作的示圖。預獲取資料321可以是關於參照圖2所示的儲存裝置100從主機裝置101接收的至少兩個邏輯位址的映射資料。
參照圖3,儲存裝置100可以透過從主機裝置101接收多組塊寫入緩衝命令320來將預獲取資料321儲存在預獲取資料儲存器122中。
主機裝置101可以從記憶體控制器110接收揮發性記憶體裝置120的映射資料儲存器121中儲存的映射資料310,並且將接收到的映射資料310儲存在主機緩衝器101-1中。映射資料310可以是表示參照圖2所示的非揮發性記憶體裝置130中儲存的資料的邏輯位址與作為非揮發性記憶體裝置130的儲存相應資料的位置的物理位址之間的關係的資料。
參照圖2所示的儲存裝置100的記憶體控制器110可以接收主機裝置101的儲存裝置控制器101-2產生的多組塊寫入緩衝命令320。多組塊寫入緩衝命令320可以包括預獲取資料321。
記憶體控制器110中包括的緩衝記憶體控制器112可以回應於儲存裝置100接收到的多組塊寫入緩衝命令320,將多組塊寫入緩衝命令320中包括的預獲取資料321儲存在預獲取資料儲存器122中。
在示例中,多組塊寫入緩衝命令320可以包括至少兩個邏輯位址。多組塊寫入緩衝命令320中包括的至少兩個邏輯位址可以是關於多個組塊的資料的邏輯位址。回應於儲存裝置100接收到包括從主機裝置101接收的資料的至少兩個邏輯位址的多組塊寫入緩衝命令320,儲存裝置100可以將預獲取資料作為關於接收到的資料的至少兩個邏輯位址與表示接收到的資料在非揮發性記憶體裝置130中儲存的位置的物理位址之間的關係的資訊儲存在預獲取資料儲存器122中。
預獲取資料321可以是主機緩衝器101從儲存裝置100接收的映射資料310的一部分。
圖4是示出根據本發明的實施例的多組塊寫入緩衝命令320的示圖。
參照圖4,多組塊寫入緩衝命令320可以包括預獲取資料321和讀取ID 322。
預獲取資料321可以包括在參照圖3所示的主機裝置101傳輸到儲存裝置100的多組塊寫入緩衝命令320中。讀取ID 322可以是用於確定主機裝置101傳輸到儲存裝置100的多組塊讀取命令(未示出)是否是用於主機性能提升器(HPB)操作的讀取命令的標識符。
圖5是示出根據本發明的實施例的根據多組塊寫入緩衝命令410讀取非揮發性記憶體裝置130中儲存的資料的操作的示圖。
參照圖5,儲存裝置100可以透過從主機裝置101接收多組塊讀取命令410來對非揮發性記憶體裝置130中儲存的資料執行多組塊讀取430操作。
儲存裝置100可以接收包括儲存裝置控制器101-2產生的讀取ID的多組塊讀取命令410和關於至少兩個邏輯位址的資訊。在示例中,多組塊讀取命令410中包括的讀取ID可以與參照圖4所示的多組塊寫入緩衝命令320中包括的讀取ID 322相同。回應於儲存裝置100接收到的多組塊讀取命令410的讀取ID和儲存裝置100接收到的多組塊寫入緩衝命令320的讀取ID 322相同,儲存裝置100可以執行多組塊讀取430操作。多組塊讀取430操作可以是HPB讀取操作。
回應於儲存裝置100從儲存裝置控制器101-2接收到多組塊讀取命令140,緩衝記憶體控制器112可以執行緩衝記憶體控制420操作。在實施例中,回應於儲存裝置100從儲存裝置控制器101-2接收到多組塊讀取命令410,緩衝記憶體控制器112可以獲取預獲取資料儲存器122中儲存的預獲取資料321,並將所獲取的預獲取資料321輸出到讀取操作處理器111。
緩衝記憶體控制器112可以透過使用預獲取資料321將多組塊讀取命令410作為對從主機裝置101接收的至少兩個邏輯位址的讀取請求處理。在實施例中,回應於儲存裝置100從儲存裝置控制器101-2接收到多組塊讀取命令410,從緩衝記憶體控制器112接收預獲取資料321的讀取操作處理器111可以透過使用預獲取資料321對非揮發性記憶體裝置130執行多組塊讀取430操作。
主機裝置101可以從記憶體控制器110接收非揮發性記憶體裝置130的讀取資料440。
圖6是示出根據本發明的實施例的主機裝置101和儲存裝置100之間的資料發送/接收的示圖。
在操作S601中,主機裝置101可以請求參照圖2所示的儲存裝置100將儲存裝置100中包括的緩衝記憶體(例如,參照圖2所示的揮發性記憶體裝置120)分配為映射資料儲存空間。在示例中,主機裝置101可以傳輸指示儲存裝置100將作為參照圖2所示的揮發性記憶體裝置120中的部分區域的預獲取資料儲存器122分配為映射資料(或預獲取資料)儲存空間的消息。從主機裝置101接收指示儲存裝置100將部分區域分配為映射資料儲存空間的消息的儲存裝置100可以將參照圖2所示的揮發性記憶體裝置120中包括的預獲取資料儲存器122分配為用於映射資料儲存的空間。具體地,回應於儲存裝置100從主機裝置101接收到指示儲存裝置100將部分區域分配為映射資料儲存空間的消息,參照圖2所示的緩衝記憶體控制器112可以將參照圖2所示的預獲取資料儲存器122分配為用於儲存映射資料的空間。在示例中,操作S601的映射資料可以表示非揮發性記憶體裝置130中儲存的資料的邏輯位址和從主機裝置101提供的資料在參照圖2所示的非揮發性記憶體裝置130中儲存的位置相對應的物理位址之間的關係。
在操作S603中,儲存裝置100可以向主機裝置101傳輸推薦消息。儲存裝置100傳輸到主機裝置101的推薦消息可以包括關於是否待更新操作S601的映射資料的資訊。儲存裝置100可以不向主機裝置101傳輸推薦消息。因此,可以省略操作S603。
在操作S605中,主機裝置101可以向儲存裝置100傳輸多組塊讀取緩衝命令。在示例中,多組塊讀取緩衝命令可以是允許儲存裝置傳輸映射資料的請求,該映射資料表示非揮發性記憶體裝置130中儲存的資料的邏輯位址和從主機裝置101提供的資料在非揮發性記憶體裝置130中儲存的位置相對應的物理位址之間的關係。
在操作S607中,儲存裝置100可以向主機裝置101傳輸映射資料和回應。儲存裝置100傳輸到主機裝置101的映射資料可以是操作S605的映射資料。儲存裝置100可以在向主機裝置101傳輸映射資料的同時傳輸對主機裝置101的請求的回應。在另一示例中,儲存裝置100可以向主機裝置101傳輸映射資料,然後傳輸對主機裝置101的請求的回應。操作S607的回應可以是與主機裝置101在操作S605中傳輸的多組塊讀取緩衝命令相對應的、包括表示儲存裝置100是否已經將映射資料傳輸到主機裝置101的資訊的回應。
在操作S609中,主機裝置101可以將多組塊寫入緩衝命令320傳輸到儲存裝置100。操作S609的多組塊寫入緩衝命令320可以是JESD220-3A標準中定義的HPB WRITE BUFFER命令。在下文中,將參照表1描述HPB WRITE BUFFER命令。
表1
位元 字節 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 操作代碼(Fah) | |||||||
1 | 緩衝區ID=02h | |||||||
2 | (MSB) | 邏輯區塊位址 | ||||||
…… | ||||||||
5 | (LSB) | |||||||
6 | HPB讀取ID | |||||||
7 | (MSB) | 參數列表長度 | ||||||
8 | (LSB) | |||||||
9 | 控制=00H |
表1表示JESD220-3A中定義的HPB WRITE BUFFER命令。
HPB WRITE BUFFER命令可以包括邏輯區塊位址(或邏輯位址)和HPB READ ID(或讀取標識符)。邏輯區塊位址可以是與待傳輸到儲存裝置100的第一映射資料相對應的第一邏輯區塊位址。HPB WRITE BUFFER命令和稍後將描述的讀取命令之間的關係可以表示為HPB READ ID的值。例如,當HPB READ ID的值為1時,HPB WRITE BUFFER命令和讀取命令可以是相互關聯的命令。在示例中,HPB WRITE BUFFER命令可以包括第一邏輯位址。
在實施例中,在記憶體控制器110從主機裝置101接收到參照圖3所示的多組塊寫入緩衝命令320之後,記憶體控制器110從主機裝置101接收資料。記憶體控制器110從主機裝置101接收的資料可以透過JESD220-3A中定義的HPB WRITE BUFFER命令的DATA UPIU傳輸。在下文中,將參照表2描述DATA UPIU。
表2
位元 字節 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | (MSB) | HPB條目1(對於第一個LBA) | ||||||
1 | ||||||||
…… | ||||||||
7 | (LSB) | |||||||
…… | …… | |||||||
8*(N-1) | (MSB) | HPB條目N(對於第N個LBA) | ||||||
8*(N-1)+1 | ||||||||
…… | ||||||||
8*(N-1)+7 | (LSB) |
表2表示JESD220-3A中定義的HPB WRITE BUFFER命令的DATA UPIU。HPB WRITE BUFFER命令的DATA UPIU可以包括每8個字節對應於不同LBA(或邏輯位址)的HPB條目(或映射資料)。也就是說,HPB WRITE BUFFER命令的DATA UPIU可以包括對應於不同邏輯位址的多個映射資料。
在操作S611中,主機裝置101可以將多組塊讀取命令410傳輸到儲存裝置100。接收多組塊讀取命令410的儲存裝置100可以控制非揮發性記憶體裝置130,使得非揮發性記憶體裝置130上儲存的資料被讀取。在示例中,參照圖2所示的讀取操作處理器111可以接收多組塊讀取命令,然後控制非揮發性記憶體裝置130,使得具有關於與多組塊讀取命令410相對應的邏輯位址的物理位址的儲存區塊中儲存的資料被讀取。
圖7是用於描述根據本發明的實施例的儲存裝置100的操作的流程圖。
參照圖7,儲存裝置100可以透過使用預獲取資料321讀取與至少兩個邏輯位址相對應的資料,然後將預獲取資料321保存在預獲取資料儲存器122中,該預獲取資料321是關於非揮發性記憶體裝置130中儲存的資料的至少兩個邏輯位址的映射資料。圖7所示的操作S701至S705可以由記憶體控制器110中包括的讀取操作處理器111或緩衝記憶體控制器112來執行。
在操作S701中,緩衝記憶體控制器112可以將關於至少兩個邏輯位址的映射資料作為預獲取資料321儲存在揮發性記憶體裝置120的預獲取資料儲存器122中,該映射資料是從主機裝置101預獲取的。
在操作S703中,讀取操作處理器111可以透過使用預獲取資料,處理作為對從主機裝置101接收的至少兩個邏輯位址的讀取請求的多組塊讀取命令410。在示例中,讀取操作控制器111可以回應於作為對從主機裝置101接收的至少兩個邏輯位址的讀取請求的多組塊讀取命令410,透過使用預獲取資料儲存器122中儲存的預獲取資料321來讀取與從主機裝置101接收的至少兩個邏輯位址相對應的資料。
在操作S705中,緩衝記憶體控制器112可以控制非揮發性記憶體裝置130和揮發性記憶體裝置120將預獲取資料保存在預獲取資料儲存器122中。在示例中,即使在透過使用預獲取資料儲存器122中儲存的預獲取資料321讀取與從主機裝置101接收的至少兩個邏輯位址相對應的資料之後,緩衝記憶體控制器112也不從預獲取資料儲存器122中移除預獲取資料321,而是可以將預獲取資料321保存在預獲取資料儲存器122中。因此,當揮發性記憶體裝置120再次從主機裝置101接收到包括關於與預獲取資料321相對應的邏輯位址的資訊的多組塊讀取命令時,記憶體控制器110可以透過再次使用預獲取資料儲存器122中儲存的預獲取資料來處理多組塊讀取命令。
在實施例中,緩衝記憶體控制器112可以控制非揮發性記憶體裝置130和揮發性記憶體裝置120移除預獲取資料。在實施例中,讀取操作處理器111可以確定預獲取資料是否已經改變。例如,當物理位址和邏輯位址之間的關係因重寫、垃圾收集、讀取回收或靜態損耗均衡而改變時,讀取操作處理器111可以確定預獲取資料改變。當預獲取資料改變時,讀取操作處理器111可以從預獲取資料儲存器122移除預獲取資料。
參照圖2所示的讀取操作處理器111可以向主機裝置101傳輸回應消息,該回應消息包括表示儲存裝置100是否已經透過使用預獲取資料儲存器122中儲存的預獲取資料處理了從主機裝置101接收的多組塊讀取命令的資訊。在實施例中,讀取操作處理器111可以向主機裝置101傳輸回應消息,該回應消息包括表示儲存裝置100是否已經在將透過使用預獲取資料儲存器122中儲存的預獲取資料處理多組塊讀取命令而獲取的資料提供到主機裝置101之後處理了該資料的資訊。在另一個實施例中,讀取操作處理器111可以向主機裝置101傳輸回應消息,該回應消息包括表示透過使用預獲取資料儲存器122中儲存的預獲取資料處理多組塊讀取命令而獲取的資料在被提供到主機裝置101時是否已經被處理的資訊。
回應於從儲存裝置100接收到的回應消息包括表示儲存裝置100已經透過使用預獲取資料處理了多組塊讀取命令的資訊,主機裝置101可以再次向儲存裝置傳輸多組塊讀取命令。因此,回應於儲存裝置100再次接收到多組塊讀取命令,儲存裝置可以透過使用預獲取資料儲存器122中保存的預獲取資料來處理多組塊讀取命令。
回應於從儲存裝置100接收到的回應消息包括表示儲存裝置100尚未透過使用預獲取資料來處理多組塊讀取命令的資訊,主機裝置101可以向儲存裝置100傳輸作為對關於參照圖2所示的非揮發性記憶體裝置130的映射資料的讀取請求的多組塊讀取緩衝命令。
儲存裝置100向主機裝置101傳輸的回應消息可以是JESD220-3A標準中定義的回應UFS協議資訊單元(回應UPIU)。在下文中,參照表3對回應UFS協議資訊單元(回應UPIU)進行說明。
表3
0 | 1 | 2 | 3 |
<Xx10>0001b | 標誌 | LUN | 任務標簽 |
4 | 5 | 6 | 7 |
IID命令集類型 | 保留 | 回應 | 狀態=良好(00h) |
8 | 9 | 10 | 11 |
EHS總長度(00h) | 裝置資訊位1: HPB更新警報=1 | 資料段長度(14h) | |
12(MSB) | 13 | 14 | 15(LSB) |
剩餘傳送計數 | |||
16 | 17 | 18 | 19 |
保留 | |||
20 | 21 | 22 | 23 |
保留 | |||
24 | 25 | 26 | 27 |
保留 | |||
28 | 29 | 30 | 31 |
保留 | |||
報頭E2ECRC(如果HD=0,則省略) | |||
k(MSB) | K+1(LSB) | K+2 | K+3 |
感測資料長度(12h) | 描述符類型(80h) | 額外長度(10h) | |
K+4 | K+5 | K+6 | K+7 |
HPB操作 | LUN | 有效的HPB計數 | 無效的HPB計數 |
K+8(MSB) | K+9(LSB) | K+10(MSB) | K+11(LSB) |
有效的HPB區域0 | HPB子區域[K+8:K+9] | ||
K+12(MSB) | K+13(LSB) | K+14(MSB) | K+15(LSB) |
有效的HPB區域1 | HPB子區域[K+12:K+13] | ||
K+16(MSB) | K+17(LSB) | K+18(MSB) | K+19(LSB) |
無效的HPB區域0 | 無效的HPB區域1 | ||
資料E2ECRC(如果DD=0,則省略) |
表3表示JESD220-3A標準中定義的回應UPIU。JESD220-3A標準中定義的回應UPIU可以包括多個資料幀。JESD220-3A標準中定義的回應UPIU中包括的資料幀之中的K+4字節資料幀可以包括與HPB操作相對應的資料。在下文中,表4表示JESD220-3A標準中定義的回應UPIU中包括的資料幀之中從K字節到K+19字節的資料幀的定義。
表4
字節 | HPB資訊 |
[K:K+1] | 感測資料長度(12h) |
[K+2] | 描述符類型(80h–SPC中供應商特定感測資料描述符格式)此感測資料在UFS規範中定義為HPB感測資料。 |
[K+3] | 額外長度(10h) |
[K+4] | HPB操作00h:沒有, 01h:請求HPB區域更新 02h:裝置重置HPB區域資訊 其他:為將來的擴展保留 |
[K+5] | 有效的區域/子區域和無效的區域的目標LUN |
[K+6] | 有效的HPB計數00h:[K+8: K+15]無效。 01h:[K+8: K+11]有效。 02h:[K+8: K+11]和[K+12:K+15]有效。 其他:保留 |
[K+7] | 無效的HPB計數00h:[K+16: K+19]無效。 01h:[K+16: K+17]有效。 02h:[K+16: K+17]和[K+18:K+19]有效。 其他:保留 |
[K+8: K+11] | 推薦主機讀取L2P映射資料的第一HPB區域和HPB子區域 |
[K+12: K+15] | 推薦主機讀取L2P映射資料的第二HPB區域和HPB子區域 |
[K+16: K+17] | 待停用的第一HPB區域。 |
[K+18: K+19] | 待停用的第二HPB區域。 |
表4表示JESD22-3A標準中定義的HPB感測資料。當JESD220-3A標準中定義的回應UPIU中包括的資料幀之中的K+4字節資料幀的值為01h時,可以執行更新HPB區域的請求。當JESD220-3A標準中定義的回應UPIU中包括的資料幀之中的K+4字節資料幀的值為02h時,可以執行重置HPB區域的請求。在示例中,當JESD220-3A標準中定義的回應UPIU中包括的資料幀之中的K+4字節資料幀具有除00h、0lh或02h之外的值時,可以執行定義的操作。在實施例中,當JESD220-3A標準中定義的回應UPIU中包括的資料幀之中的K+4字節資料幀具有新定義的值03h時,記憶體控制器110可以被設置為傳輸表示記憶體控制器110是否已經透過使用預獲取資料儲存器122中儲存的預獲取資料來讀取非揮發性記憶體裝置130中儲存的資料的資訊。
圖8是示出根據本發明的實施例的記憶體裝置800的示圖。圖8所示的記憶體裝置800為了便於描述僅由另一個附圖標記指定,並且可以被理解為與圖2所示的非揮發性記憶體裝置130相同的組件。
參照圖8,記憶體裝置800可以包括記憶體單元陣列810、電壓產生器820、位址解碼器830、輸入/輸出(I/O)電路840和控制邏輯850。
記憶體單元陣列810可以包括多個記憶體區塊BLK1至BLKi。多個記憶體區塊BLK1至BLKi可以透過列線RL來連接到位址解碼器830。多個記憶體區塊BLK1至BLKi可以透過行線CL連接到輸入/輸出電路840。在實施例中,列線RL可以包括字線、源極選擇線和漏極選擇線。在實施例中,行線CL可以包括位元線。
多個記憶體區塊BLK1至BLKi中的每一個包括多個記憶體單元。在實施例中,多個記憶體單元可以是非揮發性記憶體單元。多個記憶體單元之中連接到同一字線的記憶體單元可以被定義為一個物理頁面。也就是說,記憶體單元陣列810可以包括多個物理頁面。記憶體裝置800的記憶體單元中的每一個可以被配置為儲存一個資料位元的單層單元(SLC)、儲存兩個資料位元的多層單元(MLC)、儲存三個資料位元的三層單元(TLC)或儲存四個資料位元的四層單元(QLC)。
在實施例中,電壓產生器820、位址解碼器830和輸入/輸出電路840可以被通常指定為外圍電路。外圍電路可以在控制邏輯850的控制下驅動記憶體單元陣列810。外圍電路可以驅動記憶體單元陣列810執行程式操作、讀取操作和抹除操作。
電壓產生器820可以透過使用向記憶體裝置800供應的外部電源電壓來產生多個操作電壓。電壓產生器820可以在控制邏輯850的控制下操作。
在實施例中,電壓產生器820可以透過調節外部電源電壓來產生內部電源電壓。電壓產生器820產生的內部電源電壓可以用作記憶體裝置800的操作電壓。
在實施例中,電壓產生器820可以透過使用外部電源電壓或內部電源電壓來產生多個操作電壓。電壓產生器820可以產生記憶體裝置800中所需的各種電壓。例如,電壓產生器820可以產生多個抹除電壓、多個編程電壓、多個通過電壓、多個選擇讀取電壓和多個未選擇讀取電壓。
為了產生具有各種電壓準位的多個操作電壓,電壓產生器820可以包括接收內部電源電壓的多個泵浦電容器。電壓產生器820可以透過在控制邏輯850的控制下選擇性地啟動多個泵浦電容器來產生多個操作電壓。
透過位址解碼器830可以將由電壓產生器820產生的多個操作電壓供應給記憶體單元陣列810。
位址解碼器830可以透過列線RL連接到記憶體單元陣列810。位址解碼器830可以在控制邏輯850的控制下操作。位址解碼器830可以從控制邏輯850接收位址ADDR。位址解碼器830可以對接收到的位址ADDR中的區塊位址進行解碼。位址解碼器830根據經解碼的區塊位址在記憶體區塊BLK1至BLKi之中選擇至少一個記憶體區塊。位址解碼器830可以對接收到的位址ADDR中的列位址進行解碼。位址解碼器830可以根據經解碼的列位址在所選擇的記憶體區塊的字線之中選擇至少一條字線。在實施例中,位址解碼器830可以對接收到的位址ADDR中的行位址進行解碼。位址解碼器830可以根據經解碼的行位址將輸入/輸出電路840和記憶體單元陣列810相互連接。
位址解碼器830可以包括諸如列解碼器、行解碼器和位址解碼器的組件。
輸入/輸出電路840可以包括多個頁面緩衝器。多個頁面緩衝器可以透過位元線連接到記憶體單元陣列810。在程式操作中,資料可以根據儲存在多個頁面緩衝器中的資料而儲存在所選擇的記憶體單元中。
在讀取操作中,可以透過位元線來感測所選擇的記憶體單元中儲存的資料,並且感測到的資料可以儲存在頁面緩衝器中。
控制邏輯850可以控制位址解碼器830、電壓產生器820以及輸入/輸出電路840。控制邏輯850可以回應於從外部裝置傳送的命令CMD而操作。控制邏輯850可以透過回應於命令CMD和位址ADDR產生控制訊號來控制外圍電路。
圖9是示出根據本發明的實施例的應用了儲存裝置的記憶卡系統900的方區塊圖。
參照圖9,記憶卡系統900包括記憶體控制器910、記憶體裝置920和連接器930。
記憶體控制器910連接到記憶體裝置920。記憶體控制器910可以訪問記憶體裝置920。例如,記憶體控制器910可以控制記憶體裝置920的讀取操作、程式操作、抹除操作和後臺操作。記憶體控制器910提供記憶體裝置920與主機之間的介面。記憶體控制器910可以驅動用於控制記憶體裝置920的韌體。記憶體控制器910可以與參照圖2描述的記憶體控制器110相同地實施。
記憶體控制器910可以包括諸如隨機存取記憶體(RAM)、處理單元、主機介面、記憶體介面和ECC電路的組件。
記憶體控制器910可以透過連接器930與外部裝置通訊。記憶體控制器910可以根據特定通訊協議與外部裝置(例如,主機)通訊。記憶體控制器910可以透過諸如以下的各種通訊標準或介面中的至少一種與外部裝置通訊:通用串列匯流排(USB)、多媒體卡(MMC)、嵌入式MMC(eMMC)、外圍組件互連(PCI)、高速PCI(PCIe)、高級技術附件(ATA)、串列ATA(SATA)、並行ATA(PATA)、小型計算機系統介面(SCSI)、增強型小型磁盤介面(ESDI)、電子集成驅動器(IDE)、火線、通用快閃儲存(UFS)、Wi-Fi、藍牙和NVMe。連接器930可以由上述各種通訊協議中的至少一個來限定。
記憶體裝置920可以利用諸如以下的各種非揮發性記憶體裝置來實施:電可抹除可程式ROM(EEPROM)、NAND快閃記憶體、NOR快閃記憶體、相變RAM(PRAM)、電阻式RAM(ReRAM)、鐵電RAM(FRAM)以及自旋轉移力矩磁性RAM(STT-MRAM)。
記憶體控制器910和記憶體裝置920可以整合到單個半導體裝置中以構成記憶卡。例如,記憶體控制器910和記憶體裝置920可以構成諸如以下的記憶卡:PC卡(個人電腦記憶卡國際協會(PCMCIA))、緊湊型快閃儲存(CF)卡、智慧媒體卡(SM或SMC)、記憶棒、多媒體卡(MMC、RS-MMC、微型MMC與eMMC)、SD卡(SD、迷你SD、微型SD與SDHC)與通用快閃儲存(UFS)。
圖10是示出根據本發明的實施例的應用了儲存裝置的固態驅動器(SSD)系統1000的方區塊圖。
參照圖10,SSD系統1000包括主機1010和SSD 1020。SSD 1020透過訊號連接器1001與主機1010交換訊號並且透過電源連接器1002接收電力。SSD 1020包括SSD控制器1021、多個快閃記憶體1022-1至1022-n、輔助電源1023和緩衝記憶體1024。
在實施例中,SSD控制器1021可以用作參照圖2描述的記憶體控制器110。
SSD控制器1021可以回應於從主機1010接收的訊號而控制多個快閃記憶體1022-1至1022-n。訊號可以是基於主機1010和SSD 1020之間的介面的訊號。例如,訊號可以是由諸如以下的通訊標準或介面中的至少一種定義的訊號:通用串列匯流排(USB)、多媒體卡(MMC)、嵌入式MMC(eMMC)、外圍組件互連(PCI)、高速PCI(PCIe)、高級技術附件(ATA)、串列ATA(SATA)、並行ATA(PATA)、小型計算機系統介面(SCSI)、增強型小型磁盤介面(ESDI)、電子集成驅動器(IDE)、火線、通用快閃儲存(UFS)、WI-FI、藍牙和NVMe。
輔助電源1023透過電源連接器1002連接到主機1010。輔助電源1023可以接收從主機1010輸入的電力PWR並且用該電力PWR充電。當來自主機1010的電力供應不平穩時,輔助電源1023可以向SSD 1020提供電力。輔助電源1023可以位於SSD 1020中,或位於SSD 1020外部。例如,輔助電源1023可以位於主板上並且向SSD 1020提供輔助電力。
緩衝記憶體1024作為SSD 1020的緩衝記憶體進行操作。例如,緩衝記憶體1024可以暫時儲存從主機1010接收的資料或從多個快閃記憶體1022-1至1022-n接收的資料,或者暫時儲存快閃記憶體1022-1至1022-n的元資料(例如,映射表)。緩衝記憶體1024可以包括諸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的揮發性記憶體,或者諸如FRAM、ReRAM、STT-MRAM和PRAM的非揮發性記憶體。
圖11是示出根據本發明的實施例的應用了儲存裝置的用戶系統1100的方塊圖。
參照圖11,用戶系統1100包括應用處理器1110、記憶體模組1120、網路模組1130、儲存模組1140和用戶介面1150。
應用處理器1110可以驅動用戶系統1100中包括的組件、作業系統(OS)、用戶程序等。應用處理器1110可以包括用於控制用戶系統1100中包括的組件、介面、圖形引擎等的控制器。應用處理器1110可以被設置為片上系統(SoC)。
記憶體模組1120可以作為用戶系統1100的主記憶體、工作記憶體、緩衝記憶體或快取記憶體操作。記憶體模組1120可以包括諸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的揮發性隨機存取記憶體,或諸如PRAM、ReRAM、MRAM和FRAM的非揮發性隨機存取記憶體。應用處理器4100和記憶體模組4200可以透過基於堆疊封裝(PoP)的封裝而被設置為一個半導體封裝。
網路模組1130可以與外部裝置通訊。網路模組1130可以支援諸如碼分多址(CDMA)、全球移動通訊系統(GSM)、寬帶CDMA(WCDMA)、CDMA-2000、時分多址(TDMA)、長期演進(LTE)、Wimax、WLAN、UWB、藍牙和Wi-Fi的無線通訊。網路模組1130可以包括在應用處理器1110中。
儲存模組1140可以儲存資料。例如,儲存模組1140可以儲存從應用處理器1110接收的資料。可選地,儲存模組1140可以將儲存在其中的資料傳輸到應用處理器4100。儲存模組1140可以利用諸如以下的非揮發性半導體記憶體裝置來實施:相變RAM(PRAM)、磁性RAM(MRAM)、電阻式RAM(RRAM)、NAND快閃儲存、NOR快閃儲存或具有三維結構的NAND快閃儲存。儲存模組1140可以被設置為諸如用戶系統1100的記憶卡或外部驅動器的可拆卸驅動器。
儲存模組1140可以包括多個非揮發性記憶體裝置,並且多個非揮發性記憶體裝置可以與參照圖2描述的非揮發性記憶體裝置130以相同的方式進行操作。儲存模組1140可以與參照圖2描述的儲存裝置100以相同的方式進行操作。
用戶介面1150可以包括將資料或命令輸入到應用處理器1110或者將資料輸出到外部裝置的介面。用戶介面1150可以包括諸如以下的用戶輸入介面:鍵盤、小鍵盤、按鈕、觸控面板、觸控螢幕、觸控板、觸控球、攝影機、麥克風、陀螺儀感測器、振動感測器和壓電元件。用戶介面1150可以包括諸如以下的用戶輸出介面:液晶顯示器(LCD)、有機發光二極體(OLED)顯示裝置、主動矩陣OLED(AMOLED)顯示裝置、LED、揚聲器和監控器。
根據本發明的實施例,可以提供一種用於有效地使用預獲取資料儲存器中儲存的預獲取資料的儲存裝置、包括該儲存裝置的電子裝置以及該電子裝置的操作方法。
儘管已經參照本發明的某些實施例示出和描述了本發明,但是本領域技術人員將理解的是,在不脫離由所附申請專利範圍及其均等內容限定的本發明的構思和範圍的情況下,可以在本發明中進行形式和細節上的各種改變。因此,本發明的範圍不應限於上述實施例,而應不僅由所附申請專利範圍而且還應由其均等內容確定。
在上述實施例中,可以選擇性地執行所有步驟或者可以省略部分步驟。在每個實施例中,不一定按照所描述的順序執行步驟並且可以重新排列步驟。在本說明書和附圖中公開的實施例僅是為了促進對本發明的理解的示例,並且本發明不限於此。也就是說,對於本領域技術人員應該顯而易見的是,可以基於本發明的技術範圍進行各種修改。
在附圖和說明書中已經描述本發明的實施例。儘管這裡使用了特定術語,但是這些僅是為了描述本發明的實施例。因此,本發明不限於上述實施例並且在本發明的構思和範圍內可能有許多變型。對於本領域技術人員應該顯而易見的是,除了本文中本發明的實施例和下列申請專利範圍之外,還可以基於本發明的技術範圍進行各種修改。此外,可以組合實施例以形成額外的實施例。
10:計算系統
100:儲存裝置
101:主機裝置
101-1:主機緩衝器
101-2:儲存裝置控制器
110:記憶體控制器
111:讀取操作處理器
112:緩衝記憶體控制器
120:揮發性記憶體裝置
121:映射資料儲存器
122:預獲取資料儲存器
130:非揮發性記憶體裝置
310:映射資料
320:多組塊寫入緩衝命令
321:預獲取資料
322:讀取ID
410:多組塊讀取命令
420:緩衝記憶體控制
430:多組塊讀取
440:讀取資料
800:記憶體裝置
810:記憶體單元陣列
820:電壓產生器
830:位址解碼器
840:輸入/輸出電路
850:控制邏輯
900:記憶卡系統
910:記憶體控制器
920:記憶體裝置
930:連接器
1000:固態驅動器(SSD)系統
1001:訊號連接器
1002:電源連接器
1010:主機
1020:SSD
1021:SSD控制器
1022-1:快閃記憶體
1022-2:快閃記憶體
1022-n:快閃記憶體
1023:輔助電源
1024:緩衝記憶體
1100:用戶系統
1110:應用處理器
1120:記憶體模組
1130:網路模組
1140:儲存模組
1150:用戶介面
S601, S603, S605, S607, S609, S611:操作
S701, S703, S705:操作
現在將在下文中參照附圖更充分地描述本發明的多種實施例;然而,它們可以以不同的形式體現並且不應被解釋為限於本文中闡述的實施例。相反,提供這些實施例以便本發明將是徹底和完整的,並且將把實施例的範圍充分傳達給本領域技術人員。
在附圖中,為了清楚地說明,尺寸可能會被放大。將理解的是,當元件被稱為在兩個元件“之間”時,它可以是兩個元件之間的唯一元件,或者也可以存在一個或多個中間元件。貫穿本發明,相同的附圖標記指代相同的元件。
圖1是示出根據本發明的實施例的計算系統的示圖。
圖2是示出根據本發明的實施例的圖1所示的儲存裝置的示圖。
圖3是示出根據本發明的實施例的根據多組塊寫入緩衝命令將預獲取資料儲存在預獲取資料儲存器中的操作的示圖。
圖4是示出根據本發明的實施例的多組塊寫入緩衝命令的示圖。
圖5是示出根據本發明的實施例的根據多組塊寫入緩衝命令讀取非揮發性記憶體裝置中儲存的資料的操作的示圖。
圖6是示出根據本發明的實施例的主機裝置和儲存裝置之間的資料發送/接收的示圖。
圖7是用於描述根據本發明的實施例的儲存裝置的操作的流程圖。
圖8是示出根據本發明的實施例的記憶體裝置的示圖。
圖9是示出根據本發明的實施例的應用了儲存裝置的記憶卡系統的方區塊圖。
圖10是示出根據本發明的實施例的應用了儲存裝置的固態驅動器(SSD)系統的方區塊圖。
圖11是示出根據本發明的實施例的應用了儲存裝置的用戶系統的方區塊圖。
320:多組塊寫入緩衝命令
321:預獲取資料
322:讀取ID
Claims (20)
- 一種儲存裝置,包括: 非揮發性記憶體裝置; 揮發性記憶體裝置,包括: 映射資料儲存器,暫時儲存映射資料的一部分,所述映射資料表示由主機裝置提供的資料的邏輯位址和由所述主機裝置提供的資料在所述非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係;以及 預獲取資料儲存器,將關於從所述主機裝置預獲取的至少兩個邏輯位址的映射資料作為預獲取資料儲存;以及 記憶體控制器,控制所述非揮發性記憶體裝置和所述揮發性記憶體裝置透過使用所述預獲取資料處理作為對從所述主機裝置接收的所述至少兩個邏輯位址的讀取請求的多組塊讀取命令,並且將所述預獲取資料保存在所述預獲取資料儲存器中。
- 如請求項1所述的儲存裝置,其中,所述記憶體控制器包括: 讀取操作處理器: 接收所述多組塊讀取命令, 從所述預獲取資料獲取與所述至少兩個邏輯位址相對應的物理位址, 從所述非揮發性記憶體裝置讀取與所述至少兩個邏輯位址相對應的資料,並且 將讀取的資料提供到所述主機裝置;以及 緩衝記憶體控制器,在所述讀取操作處理器將所述讀取的資料提供到所述主機裝置之後,控制所述揮發性記憶體裝置將所述預獲取資料保存在所述預獲取資料儲存器中。
- 如請求項2所述的儲存裝置,其中,在由所述主機裝置提供所述多組塊讀取命令之前,從所述主機裝置預獲取所述預獲取資料。
- 如請求項3所述的儲存裝置,其中,所述緩衝記憶體控制器進一步從所述主機裝置接收包括所述預獲取資料和讀取ID的多組塊寫入緩衝命令。
- 如請求項4所述的儲存裝置,其中,所述多組塊讀取命令包括關於所述讀取ID和所述至少兩個邏輯位址的資訊。
- 如請求項2所述的儲存裝置,其中,所述讀取操作處理器進一步向所述主機裝置傳輸回應消息,所述回應消息包括表示所述儲存裝置是否已經透過使用所述預獲取資料處理所述多組塊讀取命令的資訊。
- 如請求項6所述的儲存裝置,其中,所述讀取操作處理器將所述讀取的資料提供到所述主機裝置,然後將所述回應消息傳輸到所述主機裝置。
- 如請求項2所述的儲存裝置,其中,所述緩衝記憶體控制器進一步: 確定所述預獲取資料是否已經因重寫、垃圾收集、讀取回收或損耗均衡而改變;並且 當所述預獲取資料改變時,移除所述預獲取資料。
- 如請求項2所述的儲存裝置,其中,所述讀取操作處理器控制所述非揮發性記憶體裝置從與所述至少兩個邏輯位址相對應的物理位址所指示的記憶體單元讀取所述資料。
- 如請求項2所述的儲存裝置,其中,所述緩衝記憶體控制器在所述讀取操作處理器透過使用所述預獲取資料讀取所述資料之後,控制所述預獲取資料儲存器將所述預獲取資料保存在其中。
- 一種主機裝置,所述主機裝置控制儲存裝置,所述主機裝置包括: 主機緩衝器,儲存映射資料,所述映射資料表示所述儲存裝置中儲存的資料的邏輯位址和所述資料在所述儲存裝置的非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係,所述映射資料由所述儲存裝置提供;以及 儲存裝置控制器: 向所述儲存裝置傳輸所述主機緩衝器中儲存的所述映射資料之中的關於至少兩個邏輯位址的映射資料作為預獲取資料, 向所述儲存裝置傳輸作為對所述至少兩個邏輯位址的讀取請求的多組塊讀取命令,並且 從所述儲存裝置接收回應消息,所述回應消息包括如下資訊:表示所述儲存裝置是已經透過使用傳輸到所述儲存裝置並且儲存在所述儲存裝置的揮發性記憶體裝置中的所述預獲取資料處理了所述多組塊讀取命令,或是在不使用傳輸的預獲取資料的情況下處理了所述多組塊讀取命令。
- 如請求項11所述的主機裝置,其中,所述儲存裝置控制器進一步從所述儲存裝置接收所述儲存裝置透過處理所述多組塊讀取命令從所述非揮發性記憶體裝置讀取的資料。
- 如請求項11所述的主機裝置,其中,所述儲存裝置控制器進一步向所述儲存裝置傳輸作為指示所述儲存裝置將傳輸的預獲取資料儲存在所述揮發性記憶體裝置中的寫入請求的多組塊寫入緩衝命令。
- 如請求項13所述的主機裝置,其中,所述多組塊寫入緩衝命令包括所述預獲取資料和讀取ID。
- 如請求項11所述的主機裝置,其中,所述儲存裝置控制器進一步在所述回應消息包括表示所述儲存裝置已經透過使用傳輸的預獲取資料處理了所述多組塊讀取命令的資訊時,向所述儲存裝置重新傳輸所述多組塊讀取命令。
- 如請求項11所述的主機裝置,其中,所述儲存裝置控制器進一步在所述回應消息包括表示所述儲存裝置在沒有使用傳輸的預獲取資料的情況下已經處理了所述多組塊讀取命令的資訊時,向所述儲存裝置傳輸作為對所述映射資料的讀取請求的多組塊讀取緩衝命令。
- 一種計算系統,包括: 主機裝置;以及 儲存裝置: 從所述主機裝置接收待讀取的資料的映射資訊, 暫時儲存所述映射資訊, 從所述主機裝置接收對所述資料的讀取請求, 透過使用所述映射資訊來處理所述讀取請求,並且 在處理所述讀取請求之後將所述映射資訊保存在其中。
- 如請求項17所述的計算系統,其中,所述主機裝置從所述儲存裝置接收映射資料,所述映射資料表示所述儲存裝置中儲存的資料的邏輯位址和所述資料在所述儲存裝置的非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係。
- 如請求項17所述的計算系統,其中,所述儲存裝置進一步向所述主機裝置提供表示所述儲存裝置是否已經透過使用從所述主機裝置提供的所述映射資訊處理了所述讀取請求的資訊。
- 一種儲存裝置,包括: 非揮發性記憶體裝置; 映射資料儲存器,暫時儲存映射資料的一部分,所述映射資料表示從主機裝置提供的資料的邏輯位址和所述主機裝置提供的資料在所述非揮發性記憶體裝置中儲存的位置相對應的物理位址之間的關係; 預獲取資料儲存器,將關於從所述主機裝置預獲取的至少兩個邏輯位址的映射資料作為預獲取資料儲存;以及 記憶體控制器,控制所述非揮發性記憶體裝置和所述預獲取資料儲存器: 透過使用所述預獲取資料處理作為對從所述主機裝置接收的所述至少兩個邏輯位址的讀取請求的多組塊讀取命令,並且 將所述預獲取資料保存在所述預獲取資料儲存器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220094883A KR20240016750A (ko) | 2022-07-29 | 2022-07-29 | 스토리지 장치 및 이를 포함하는 전자 장치와 그 동작 방법 |
KR10-2022-0094883 | 2022-07-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202405660A true TW202405660A (zh) | 2024-02-01 |
Family
ID=89508293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112114714A TW202405660A (zh) | 2022-07-29 | 2023-04-20 | 儲存裝置、包括儲存裝置的電子裝置及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240045806A1 (zh) |
KR (1) | KR20240016750A (zh) |
DE (1) | DE102023104826A1 (zh) |
TW (1) | TW202405660A (zh) |
-
2022
- 2022-07-29 KR KR1020220094883A patent/KR20240016750A/ko unknown
- 2022-12-06 US US18/075,630 patent/US20240045806A1/en active Pending
-
2023
- 2023-02-28 DE DE102023104826.0A patent/DE102023104826A1/de active Pending
- 2023-04-20 TW TW112114714A patent/TW202405660A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
DE102023104826A1 (de) | 2024-02-01 |
KR20240016750A (ko) | 2024-02-06 |
US20240045806A1 (en) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210173785A1 (en) | Storage device and method of operating the same | |
US11599464B2 (en) | Memory controller and method of operating the same | |
US11561785B2 (en) | Storage device and method of operating the same | |
US20230418485A1 (en) | Host device, storage device, and electronic device | |
US11726683B2 (en) | Storage system and operating method for moving data between storage devices thereof | |
US11768625B2 (en) | Storage device managing a multi-tier cache memory and operating method thereof | |
US11625178B2 (en) | Storage device and method of operating the same | |
US11775211B2 (en) | Memory controller and method of operating the same | |
US11922048B2 (en) | Memory controller managing map data and operating method thereof | |
KR102435253B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
TW202405660A (zh) | 儲存裝置、包括儲存裝置的電子裝置及其操作方法 | |
US11815938B2 (en) | Storage device and method of operating the same | |
US20240045590A1 (en) | Storage device, electronic device including the same, and operating method thereof | |
US11914891B2 (en) | Storage device and operating method thereof | |
US12007887B2 (en) | Method and system for garbage collection | |
US20230384936A1 (en) | Storage device, electronic device including storage device, and operating method thereof | |
US20240126682A1 (en) | Storage device, electronic device including the same, and operating method thereof | |
US20230096111A1 (en) | Memory controller, storage device, and host device | |
US20230103797A1 (en) | Memory controller and method of operating the same | |
KR20230011214A (ko) | 스토리지 장치 및 이의 동작 방법 | |
KR20220165106A (ko) | 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템 |