CN113467705A - 数据组块的增强读取 - Google Patents
数据组块的增强读取 Download PDFInfo
- Publication number
- CN113467705A CN113467705A CN202010572362.3A CN202010572362A CN113467705A CN 113467705 A CN113467705 A CN 113467705A CN 202010572362 A CN202010572362 A CN 202010572362A CN 113467705 A CN113467705 A CN 113467705A
- Authority
- CN
- China
- Prior art keywords
- hpb
- data storage
- storage device
- read
- entry
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000013500 data storage Methods 0.000 claims abstract description 79
- 238000012546 transfer Methods 0.000 claims abstract description 21
- 239000003623 enhancer Substances 0.000 claims abstract description 12
- 238000013519 translation Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 5
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 5
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- 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
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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
- 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
- G06F2212/1024—Latency reduction
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
可以使用主机性能增强器(HPB)从数据存储装置读取数据。读取命令中的已编码HPB条目提供物理块地址(PBA)以及延行长度。逻辑块地址(LBA)、PBA和延行长度置于HPB读取缓冲器表中。所述HPB读取缓冲器表位于主机装置中。当所述数据存储装置接收到所述读取命令时,所述数据存储装置从所述读取命令读取所述LBA、传送长度和HPB条目。所述HPB条目含有用于所述LBA的所述PBA以及所述将读取的数据的所述延行长度。对于非顺序读取,所述HPB含有所述LBA、传送长度,以及对存储于所述数据存储装置中的写入缓冲器表的参考。
Description
技术领域
本公开的实施例大体上涉及使用主机性能增强器(host performance booster,HPB)读取数据。
背景技术
对数据文件的顺序存取意味着计算机系统循序地对文件读取或写入信息,从文件的开端开始且逐步地前进。另一方面,随机存取意味着计算机系统可以在数据文件中的任何地方读取或写入信息。在典型情境中,约50%的读取是4K大小,但在许多情况下,读取8K-128K的随机数据。
用于将数据的逻辑地址转换为快闪存储器上的物理地址的快闪管理存储于保存在快闪转换层(FTL)中的表中。快闪管理通常以4K数据单元的粒度执行。FTL表存储于快闪存储器的特殊区域中。小高速缓冲存储器经常保持于数据存储装置上的RAM中以改进随机读取性能。存储小高速缓冲存储器必然带来所支持的随机范围上的性能折衷。范围越大,需要的RAM越多。在成本敏感的装置中,随机范围通常受限。
为了不同地考虑此问题,通用快闪存储(UFS)团体已经研究方法以通过将高速缓冲存储器移动到主机存储器来改进随机读取性能。在主机装置中的大DRAM比在数据存储装置SRAM中更有成本效益。为了实施DRAM高速缓冲存储器,已经定义HPB协议。在HPB方法中,每一4K逻辑地址具有相关联8B条目,其以装置专有格式提供介质上的物理块地址(PBA)。
数据存储装置负责提供用于每一4K数据单位的8字节HPB条目。主机则负责提供此8字节条目作为数据读取命令的部分。此方法的限制在于方法仅优化4K的读取。由于良好百分比的随机读取大于4K,因此仍存在改进的空间。
因此,此项技术中需要使用HPB的改进读取。
发明内容
本公开大体上涉及使用读取命令中的经编码HPB条目来提供PBA以及延行长度。逻辑块地址(LBA)、PBA和延行长度置于HPB读取缓冲器表中。HPB读取缓冲器表位于主机装置中。当数据存储装置接收到读取命令时,数据存储装置将从读取命令读取LBA、传送长度和HPB条目。HPB条目将含有用于LBA的PBA以及写入于快闪中的数据的延行长度。对于可能尚未循序地写入的数据的读取,HPB将含有LBA、传送长度,以及对存储于数据存储装置中的写入缓冲器表中的条目的参考。
在一个实施例中,数据存储装置包括存储器装置和耦合到存储器装置的控制器,其中控制器被配置成产生主机性能增强器(HPB)读取缓冲器表。HPB表包含逻辑块地址(LBA)、物理块地址(PBA)和PBA的延行长度,以及将HPB读取缓冲器表递送到主机装置。
在另一实施例中,数据存储装置包括存储器装置和耦合到存储器装置的控制器。控制器被配置成:接收主机性能增强器(HPB)读取命令,其中HPB命令包含未加密的延行长度;从HPB命令回顾已编码的信息;检取所请求的数据;以及将所请求的数据递送到主机装置。
在另一实施例中,数据存储装置包括存储器装置、耦合到存储器装置的控制器,以及用以产生主机性能增强器(HPB)读取缓冲器表的构件,其中HPB读取缓冲器表包含8字节HPB条目的表,每LBA一个条目。
附图说明
为了可以详细地理解本公开的上述特征,可通过参考实施例来作出上文简要地概括的本公开的更加具体的描述,所述实施例中的一些实施例在附图中得以说明。然而,应注意,附图仅说明本公开的典型实施例且因此不应被视为限制本公开的范围,因为本公开可以承认其它同等有效的实施例。
图1是示出根据本公开的一个或多个技术的具有可以充当用于主机装置的存储装置的存储装置的存储系统的示意性框图。
图2是示出根据一个实施例的形成HPB读取缓冲器的方法的流程图。
图3A是根据一个实施例的HPB读取缓冲器表的示意性图示。
图3B是根据另一个实施例的HPB读取缓冲器表的示意性图示。
图4是示出根据一个实施例的形成HPB写入缓冲器的方法的流程图。
图5是根据一个实施例的HPB读取命令的示意性图示。
图6是示出根据一个实施例的处理读取命令的方法的流程图。
为了促进理解,已经使用相同的参考标号在可能的情况下表示图中共有的相同元件。预期一个实施例中公开的元件可有利地在其它实施例上利用而不需特定叙述。
具体实施方式
在下文中,参考本公开的实施例。然而,应理解,本公开不限于所描述的特定实施例。实际上,涵盖以下特征和元件(不管是否与不同实施例有关)的任何组合以实施和实践本公开。此外,尽管本公开的实施例可实现优于其它可能解决方案和/或优于现有技术的优点,但特定优势是否是由给定实施例实现并不限制本公开。因此,以下方面、特征、实施例及优点仅为说明性的且不认为是所附权利要求书的元件或限制,除非明确地叙述于权利要求中。同样,对“本公开”的提及不应解释为本文所公开的任何发明性主题的归纳,且不应认为是所附权利要求书的元件或限制,权利要求中有明确陈述除外。
本公开大体上涉及使用读取命令中的经编码HPB条目来提供PBA以及延行长度。LBA、PBA和延行长度置于HPB读取缓冲器表中。HPB读取缓冲器表在主机装置中是l。当数据存储装置接收到读取命令时,数据存储装置将从读取命令读取LBA、传送长度和HPB条目。HPB条目将含有用于LBA的PBA以及将读取的数据的延行长度。对于非顺序读取,随命令发送的HPB条目将含有根据传送长度对HPB读取缓冲器表中的一个到八个条目的参考。在特定写入缓冲器命令之后,写入缓冲器表存储于数据存储装置中。
图1是示出根据本公开的一个或多个技术的存储系统100的示意性框图,其中数据存储装置106可以充当用于主机装置104的存储装置。举例来说,主机装置104可以利用数据存储装置106中包含的NVM 110来存储和检取数据。主机装置104包括主机DRAM 138,所述主机DRAM包括读取缓冲器140。读取缓冲器140可以用于存储要发送到数据存储装置106的读取命令,且可以与主机性能增强器(HPB)协议一起使用。在一些实例中,存储系统100可以包含可以作为存储阵列操作的多个存储装置,例如数据存储装置106。举例来说,存储系统100可以包含被配置为廉价/独立磁盘冗余阵列(RAID)的多个数据存储装置106,其共同充当用于主机装置104的大容量存储装置。
存储系统100包含主机装置104,所述主机装置可以将数据存储到一个或多个存储装置和/或从一个或多个存储装置检取数据,所述存储装置例如数据存储装置106。如图1中所图示,主机装置104可以经由接口114与数据存储装置106通信。主机装置104可以包括广泛范围的装置中的任一种,包含计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即,膝上型计算机)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、所谓的“智能”平板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置,及类似物。
数据存储装置106包含控制器108、非易失性存储器110(NVM 110)、电力供应器111、易失性存储器112、接口114和写入缓冲器116。控制器108包括主机性能增强器(HPB)元件118。在一个实施例中,HPB元件118是利用HPB协议优化数据存储装置106中的读取的固件。在另一实施例中,HPB元件118是控制器108的硬件组件。在一些实例中,数据存储装置106可以包含图1中为清晰起见而未示出的额外组件。举例来说,数据存储装置106可以包含印刷板(PB),数据存储装置106的组件以机械方式附接到所述印刷板且所述印刷板包含将数据存储装置106的组件电互连的导电迹线,或类似物。在一些实例中,数据存储装置106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些实例标准形状因数包含(但不限于)3.5”数据存储装置(例如,HDD或SSD)、2.5”数据存储装置、1.8”数据存储装置、外围组件互连(PCI)、PCI扩展(PCI-X)、PCI高速(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe微型卡、MiniPCI等)。在一些实例中,数据存储装置106可以直接耦合(例如,直接焊接)到主机装置104的母板。应理解,虽然本文的说明是参考遵从UFS协议的嵌入式快闪装置,但是预期本文所论述的实施例也可以适用于其它标准,例如PCIe。
数据存储装置106的接口114可以包含用于与主机装置104交换数据的数据总线和用于与主机装置104交换命令的控制总线中的一个或两个。接口114可以根据任何合适的协议操作。举例来说,接口114可以根据以下协议中的一个或多个操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤通道协议(FCP)、小型计算机系统接口(SCSI)、串联附接SCSI(SAS)、PCI和PCIe、非易失性存储器高速(NVMe)、OpenCAPI、GenZ、高速缓冲存储器相干接口加速器(CCIX)、开放通道SSD(OCSSD),或类似物。应理解,虽然本文的说明是参考用于既定用于嵌入式快闪存储器的UFS装置的HPB协议,但是预期本文所论述的实施例也可以适用于其它协议,例如SCSI。接口114的电连接(例如,数据总线、控制总线或这两者)电连接到控制器108,从而提供主机装置104与控制器108之间的电连接,允许在主机装置104与控制器108之间交换数据。在一些实例中,接口114的电连接还可以准许数据存储装置106从主机装置104接收电力。举例来说,如图1中所图示,电力供应器111可以经由接口114从主机装置104接收电力。
数据存储装置106包含NVM 110,其可以包含多个存储器装置或存储器单元。NVM110可以被配置成存储和/或检取数据。举例来说,NVM 110的存储器单元可以从控制器108接收数据和指示存储器单元存储数据的消息。类似地,NVM 110的存储器单元可以从控制器108接收指示存储器单元检取数据的消息。在一些实例中,存储器单元中的每一个可以称为裸片。在一些实例中,单个物理芯片可以包含多个裸片(即,多个存储器单元)。在一些实例中,每一存储器单元可以被配置成存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些实例中,NVM 110的每一存储器单元可以包含任何类型的非易失性存储器装置,例如快闪存储器装置、相变存储器(PCM)装置、电阻式随机存取存储器(ReRAM)装置、磁阻式随机存取存储器(MRAM)装置、铁电随机存取存储器(F-RAM)、全息存储器装置,和任何其它类型的非易失性存储器装置。
NVM 110可以包括多个快闪存储器装置或存储器单元。快闪存储器装置可以包含基于NAND或NOR的快闪存储器装置,且可以基于用于每一快闪存储器单元的晶体管的浮动栅极中含有的电荷来存储数据。在NAND快闪存储器装置中,快闪存储器装置可划分成多个块,块可划分成多个页。特定存储器装置内的多个块中的每一块可包含多个NAND单元。NAND单元的行可使用字线来电连接以限定多个页中的一页。多个页中的每一个中的相应单元可电连接到相应位线。此外,NAND快闪存储器装置可以是2D或3D装置,且可以是单电平单元(SLC)、多电平单元(MLC)、三电平单元(TLC)或四电平单元(QLC)。控制器108可将数据写入到页层级处的NAND快闪存储器装置且从页层级处的NAND快闪存储器装置读取数据,以及从块层级处的NAND快闪存储器装置擦除数据。
数据存储装置106包含电力供应器111,其可以对数据存储装置106的一个或多个组件提供电力。当在标准模式中操作时,电力供应器111可以使用由例如主机装置104的外部装置提供的电力对所述一个或多个组件提供电力。举例来说,电力供应器111可以使用经由接口114从主机装置104接收的电力对所述一个或多个组件提供电力。在一些实例中,电力供应器111可以包含被配置成当在关断模式中操作时对所述一个或多个组件提供电力的一个或多个电力存储组件,在所述关断模式中例如停止从外部装置接收电力。以此方式,电力供应器111可以充当机载备用电源。所述一个或多个电力存储组件的一些实例包含(但不限于)电容器、超级电容器、电池,及类似物。在一些实例中,所述一个或多个电力存储组件可以存储的电力量可以随着所述一个或多个电力存储组件的成本和/或大小(例如,面积/体积)而变。换句话说,在所述一个或多个电力存储组件存储的电力量增加时,所述一个或多个电力存储组件的成本和/或大小也增加。
数据存储装置106还包含可供控制器108用于存储信息的易失性存储器112。易失性存储器112可以包括一个或多个易失性存储器装置。在一些实例中,控制器108可以使用易失性存储器112作为高速缓冲存储器。举例来说,控制器108可以将高速缓冲存储的信息存储于易失性存储器112中直到高速缓冲存储的信息被写入到非易失性存储器110为止。如图1中所图示,易失性存储器112可以消耗从电力供应器111接收的电力。易失性存储器112的实例包含(但不限于)随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM),和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4及类似物))。
数据存储装置106包含可以管理数据存储装置106的一个或多个操作的控制器108。举例来说,控制器108可以管理从NVM 110的数据读取和/或对其的数据写入。在一些实施例中,当数据存储装置106从主机装置104接收到写入命令时,控制器108可以发起数据存储命令以将数据存储到NVM110且监视数据存储命令的进展。控制器108可以确定存储系统100的至少一个操作特性,且将所述至少一个操作特性存储到NVM 110。在一些实施例中,当数据存储装置106从主机装置104接收到写入命令时,控制器108在将与写入命令相关联的数据发送到NVM 110之前将所述数据临时存储于内部存储器或写入缓冲器116中。
图2是示出根据一个实施例的形成HPB读取缓冲器的方法的流程图。HPB读取缓冲器可以是图1的主机装置104的读取缓冲器140。HPB读取缓冲器是主机装置104中的存储信息的DRAM的区段,所述信息例如LBA、PBA和将读取的数据的延行长度。HPB读取缓冲器是存储装置(例如图1的数据存储装置106)的NVM(例如图1的NVM 110)的逻辑块地址(LBA)的L2P映射数据的高速缓冲存储器。数据存储装置106的易失性存储器(例如图1的易失性存储器112)是容量有限的。由于存储容量限制,数据存储装置106的L2P映射可能不包含整个L2P信息。然而,主机DRAM(例如图1的主机DRAM 138)具有比数据存储装置106的易失性存储器112大的容量。主机DRAM 138可以将存储于数据存储装置106的NVM 110中的LBA的完整L2P映射存储于读取缓冲器140中。
写入命令由例如图1的控制器108的控制器接收,且在框202处循序地写入到NVM110中的可用位置。对应于写入命令的数据的位置作为LBA存储于数据存储装置106的易失性存储器112的L2P表中。控制器108在框204处利用HPB元件118产生LBA与物理块地址(PBA)之间的对应关系。PBA是NVM 110中的数据的物理位置,而LBA是NVM 110中的数据的逻辑位置。HPB元件118针对每一LBA和PBA对应关系计算用于主机的延行长度(RL)。延行长度由NVM110中的顺序数据位置的数目决定。举例来说,如果6个LBA(即,LBA0-LBA5)是顺序的,那么LBA0与6的RL相关联,LBA1与5的RL相关联,并且以此类推,其中最后的LBA(LBA5)与1的RL相关联。在框208处将数据(即,RL信息)释放到主机HPB读取缓冲器140。在一个实施例中,读取缓冲器命令被限于约32K。
图3A和图3B是根据各种实施例的HPB读取缓冲器表的示意性图示。HPB读取缓冲器表可以存储于图1的主机DRAM 138的读取缓冲器140中。HPB读取缓冲器表包括在方法200中产生的LBA和PBA对应关系以及在方法200中计算的针对每一LBA和PBA对应关系的延行长度。HPB表可以具有约16、约32、约64、约128或约256的最大延行长度。延行长度大小可以是4K大小的倍数。延行长度的先前值并不希望是限制性的,而是提供可能的实施例的实例。此外,例如图3A的LBA1、PBA X和RL 8的针对每一条目的HPB读取缓冲器对应于HPB读取命令的LBA和HPB条目。
图3A是根据一个实施例的HPB读取缓冲器表的示意性图示。HPB读取缓冲器表的延行长度是向前计数来计算的。举例来说,第一LBA1对应于PBA X,而第二LBA2对应于PBA X+1,以此类推。每当图1的控制器108的HPB元件118前进到下一LBA/PBA组合以确定延行长度时,HPB元件118先验地读取每一条目。举例来说,为了读取与X+2相关联的LBA3,读取与X相关联的LBA1和与X+1相关联的LBA2。然而,与X相关联的LBA1和与X+1相关联的LBA2已经在前一通过期间进行读取。当HPB元件118辨识出非连续LBA/PBA组合在列表中时,PBA条目复位,使得非连续LBA9参考PBA Y。
图3B是根据另一个实施例的HPB读取缓冲器表的示意性图示。HPB读取缓冲器表的延行长度是向后计数来计算的。举例来说,最后LBA8对应于PBA X,而第二到最后LBA2对应于PBA X-1,以此类推。不同于如图3A中参考的向前计数的计算,向后计数可能不需要反复读取来确定延行长度。DMA引擎可以启用向后运行。举例来说,由于控制器108的HPB元件118辨识出最后LBA(例如图3B的LBA8)是表中的最后连续LBA,因此HPB元件118利用逻辑以确定表中的前一LBA(例如第二到最后LBA7)是否等于当前LBA减去1。当HPB元件118辨识出非连续LBA/PBA组合在列表中时,PBA条目复位,使得非连续LBA9参考PBA Y。
图4是示出根据一个实施例的形成HPB写入缓冲器的方法的流程图。HPB写入缓冲器可以是图1的写入缓冲器116。在框402处从例如图1的主机装置104的主机接收写入缓冲器命令。写入缓冲器命令与HPB读取缓冲器表的与非连续读取相关的一部分相关联。写入缓冲器命令参考相关HPB条目。写入缓冲器可以是2K字节,其等于各自8字节的约256个条目。写入缓冲器通过ID参考读取缓冲器表的一部分。如果读取缓冲器是8字节且每一字节参考写入缓冲器的256个条目中的1个,那么每一读取缓冲器可含有至多8个写入缓冲器条目。此外,在框404处将写入缓冲器表写入到例如图1的数据存储装置106等数据存储装置的写入缓冲器116。
图5是根据一个实施例的HPB读取命令的示意性图示。HPB读取命令存储于主机读取缓冲器中,例如图1的主机装置104的主机DRAM的读取缓冲器140。HPB读取命令包括以下三个部分:LBA 502,HPB条目504,和传送长度506。HPB读取命令是16字节。
LBA 502是对应于数据的相关PBA的4字节条目。LBA 502表示数据存储于存储器装置中的位置。在一个实施例中,HPB条目包括PBA和LBA/PBA对应关系的RL。在另一实施例中,HPB条目包括指向HPB写入缓冲器表的指针或方向。HPB条目大小是固定的且是约8字节。此外,如果数据在快闪存储器中移动,那么数据将以群组移动,使得数据的次序保持为顺序的。然而,如果数据未循序地移动,那么更新HPB读取缓冲器表且发送到主机。在数据序列在NVM中改变的任何时候,以对应于改变的数据序列的已更新HPB读取缓冲器表更新主机读取缓冲器。HPB读取命令的最终4字节与PBA的传送长度506相关联。传送长度506对应于HPB读取缓冲器的延行长度。如果传送长度506大于延行长度,那么标准快闪读取发生。然而,如果延行长度等于或大于传送长度506,那么使用HPB协议从存储器装置读取数据而无需检查快闪转换层(FTL)表。延行长度的大小至多256K字节。列出的大小并不希望是限制性的,而是提供可能的实施例的实例。
举例来说,HPB读取命令可以用于与如图3A中所示的PBA X+3相关联的LBA4。如果与HPB读取命令相关联的传送长度506是5,那么例如图1的主机装置104的主机装置能够通过利用适当的HPB协议直接从NVM读取LBA4而无需检查FTL表。然而,如果与HPB读取命令相关联的传送长度506是6,那么主机装置不能够利用HPB协议直接从NVM进行读取。将利用标准读取协议读取与LBA4相关联的数据。此外,延行长度对主机是可见的。因为延行长度对主机是可见的,所以主机可以拆分HPB读取命令,使得装置可以避免进行标准读取且不必参考FTL表。
图6是示出根据一个实施例的处理读取命令的方法600的流程图。主机装置可以是图1的主机装置104。HPB读取缓冲器表可以是图1的主机装置104的主机DRAM 138的读取缓冲器140。写入缓冲器表可以是耦合到图1的数据存储装置106的控制器108的HPB元件118的写入缓冲器116。在框602处,控制器108从主机装置104接收读取命令。控制器在框604处确定读取命令是否用于顺序读取。
如果在框604处接收的读取命令是用于顺序读取,那么在框606处读取读取命令的HPB条目。HPB条目参考PBA和相关联LBA的延行长度。此外,如果传送长度不满足HPB读取命令的延行长度要求,那么标准读取协议可以发生。然而,如果传送长度确实满足延行长度要求,那么在框612处从数据位置检取数据而无需访问FTL表。
然而,如果在框604处读取命令不是用于顺序读取(即,随机、非连续读取),那么在框608处读取读取命令的HPB条目。控制器在610处检查写入缓冲器表以请求相关HPB读取缓冲器表。在框612处从数据位置检取数据。
通过以PBA和延行长度对读取命令的HPB条目进行编码,顺序读取可以更高效。通过以对HPB写入缓冲器的参考对读取命令的HPB条目进行编码,非顺序读取可以更高效。
在一个实施例中,数据存储装置包括:存储器装置;以及耦合到存储器装置的控制器,其中控制器被配置成:产生主机性能增强器(HPB)读取缓冲器表,其中HPB表包含逻辑块地址(LBA)、物理块地址(PBA)以及PBA的延行长度;以及将HPB读取缓冲器表递送到主机装置。控制器还被配置成接收HPB读取命令,其中HPB读取命令包含LBA、传送长度和HPB条目。HPB条目包含用于LBA的PBA和PBA的延行长度。HPB条目包含相干性信息。控制器还被配置成使用HPB条目从存储器装置读取数据而无需检查快闪转换层(FTL)表。控制器还被配置成接收写入缓冲器命令表且将写入缓冲器命令表存储于存储器装置中。控制器还被配置成接收HPB读取命令,其中HPB读取命令包含LBA、传送长度和HPB条目,且其中HPB条目参考写入缓冲器命令表中的位置。HPB条目是加密的,且其中延行长度是未加密的。
在另一实施例中,数据存储装置包括:存储器装置;以及耦合到存储器装置的控制器,其中控制器被配置成:接收主机性能增强器(HPB)读取命令,其中HPB命令包含未加密的延行长度;从HPB命令回顾已编码的信息;检取所请求的数据;以及将所请求的数据递送到主机装置。已编码的信息包含物理块地址(PBA)。延行长度大于4K。已编码的信息参考HPB写入缓冲器表。HPB写入缓冲器表安置于数据存储装置中。控制器还被配置成产生HPB读取缓冲器表。
在另一实施例中,数据存储装置包括:存储器装置;耦合到存储器装置的控制器;以及用以产生主机性能增强器(HPB)读取缓冲器表的构件,其中HPB读取缓冲器表包含逻辑块地址(LBA)信息、物理块地址(PBA)信息和延行长度。数据存储装置还包括:用以接收HPB读取命令的构件;以及用以接收HPB写入命令缓冲器表的构件。HPB读取命令含有LBA、传送长度和HPB条目。HPB条目含有PBA和延行长度。HPB条目含有对HPB写入命令缓冲器表的参考。数据存储装置还包括用以计算PBA条目的延行长度的构件。
虽然前述内容是针对本公开的实施例,但在不脱离本公开的基本范围的情况下,可设计出本公开的其它及另外实施例,且由所附权利要求书确定本公开的范围。
Claims (20)
1.一种数据存储装置,其包括:
存储器装置;以及
控制器,其耦合到所述存储器装置,其中所述控制器被配置成:
产生主机性能增强器(HPB)读取缓冲器表,其中所述HPB表包含逻辑块地址(LBA)、物理块地址(PBA)和所述PBA的延行长度;以及
将所述HPB读取缓冲器表递送到主机装置。
2.根据权利要求1所述的数据存储装置,其中所述控制器还被配置成接收HPB读取命令,其中所述HPB读取命令包含LBA、传送长度和HPB条目。
3.根据权利要求2所述的数据存储装置,其中所述HPB条目包含用于所述LBA的所述PBA和所述PBA的所述延行长度。
4.根据权利要求3所述的数据存储装置,其中所述HPB条目包含相干性信息。
5.根据权利要求2所述的数据存储装置,其中所述控制器还被配置成使用所述HPB条目从所述存储器装置读取数据而无需检查快闪转换层(FTL)表。
6.根据权利要求1所述的数据存储装置,其中所述控制器还被配置成接收写入缓冲器命令表且将所述写入缓冲器命令表存储于所述存储器装置中。
7.根据权利要求6所述的数据存储装置,其中所述控制器还被配置成接收HPB读取命令,其中所述HPB读取命令包含LBA、传送长度和HPB条目,且其中所述HPB条目参考所述写入缓冲器命令表中的位置。
8.根据权利要求7所述的数据存储装置,其中所述HPB条目是加密的,且其中所述延行长度是未加密的。
9.一种数据存储装置,其包括:
存储器装置;以及
控制器,其耦合到所述存储器装置,其中所述控制器被配置成:
接收主机性能增强器(HPB)读取命令,其中所述HPB命令包含未加密的延行长度;
从HPB命令回顾已编码的信息;
检取所请求的数据;以及
将所述所请求的数据递送到主机装置。
10.根据权利要求9所述的数据存储装置,其中所述已编码的信息包含物理块地址(PBA)。
11.根据权利要求10所述的数据存储装置,其中所述延行长度大于4K。
12.根据权利要求9所述的数据存储装置,其中所述已编码的信息参考一个或多个HPB写入缓冲器表。
13.根据权利要求12所述的数据存储装置,其中所述HPB写入缓冲器表安置于所述数据存储装置中。
14.根据权利要求9所述的数据存储装置,其中所述控制器还被配置成产生HPB读取缓冲器表。
15.一种数据存储装置,其包括:
存储器装置;
控制器,其耦合到所述存储器装置;以及
用以产生主机性能增强器(HPB)读取缓冲器表的构件,其中所述HPB读取缓冲器表包含逻辑块地址(LBA)信息、物理块地址(PBA)信息和延行长度。
16.根据权利要求15所述的数据存储装置,还包括:
用以接收HPB读取命令的构件;以及
用以接收HPB写入命令缓冲器表的构件。
17.根据权利要求16所述的数据存储装置,其中所述HPB读取命令含有LBA、传送长度和HPB条目。
18.根据权利要求17所述的数据存储装置,其中所述HPB条目含有PBA和延行长度。
19.根据权利要求17所述的数据存储装置,其中所述HPB条目含有对所述HPB写入命令缓冲器表的参考。
20.根据权利要求15所述的数据存储装置,还包括用以计算PBA条目的延行长度的构件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/836,679 | 2020-03-31 | ||
US16/836,679 US11169744B2 (en) | 2020-03-31 | 2020-03-31 | Boosting reads of chunks of data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113467705A true CN113467705A (zh) | 2021-10-01 |
CN113467705B CN113467705B (zh) | 2024-06-18 |
Family
ID=77856074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010572362.3A Active CN113467705B (zh) | 2020-03-31 | 2020-06-22 | 数据组块的增强读取 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11169744B2 (zh) |
CN (1) | CN113467705B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961140B (zh) | 2020-07-02 | 2024-06-11 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113885779B (zh) * | 2020-07-02 | 2024-03-12 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
CN113885778B (zh) | 2020-07-02 | 2024-03-08 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
US11449244B2 (en) * | 2020-08-11 | 2022-09-20 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information |
CN113227995A (zh) * | 2021-03-31 | 2021-08-06 | 长江存储科技有限责任公司 | 用于闪存存储器的文件系统和主机性能增强器 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406753A (zh) * | 2016-08-30 | 2017-02-15 | 深圳芯邦科技股份有限公司 | 一种数据存储方法及数据存储装置 |
US20170070240A1 (en) * | 2015-09-03 | 2017-03-09 | SK Hynix Inc. | Memory system including error corrector and operating method thereof |
CN107908571A (zh) * | 2017-10-31 | 2018-04-13 | 成都华为技术有限公司 | 一种数据写入方法、闪存装置及存储设备 |
US20190108131A1 (en) * | 2017-10-06 | 2019-04-11 | Silicon Motion Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
WO2019078999A1 (en) * | 2017-10-20 | 2019-04-25 | Qualcomm Incorporated | HARDWARE CONTROLLER AUTOMATION FOR HOST-SENSITIVE PERFORMANCE IMPROVEMENT DEVICE |
KR20190050154A (ko) * | 2017-11-02 | 2019-05-10 | 삼성전자주식회사 | 데이터 저장 장치 |
CN110244907A (zh) * | 2018-03-08 | 2019-09-17 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
US20190303292A1 (en) * | 2018-03-28 | 2019-10-03 | SK Hynix Inc. | Memory system and operating method thereof |
WO2019222381A1 (en) * | 2018-05-18 | 2019-11-21 | Micron Technology, Inc. | Host accelerated operations in managed nand devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9753847B2 (en) * | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US11301149B2 (en) * | 2019-03-07 | 2022-04-12 | Intel Corporation | Efficient metadata storage for a non-volatile storage device |
KR20210004322A (ko) * | 2019-07-04 | 2021-01-13 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵정보 및 리드카운트를 전송하는 장치 및 방법 |
US11237953B2 (en) * | 2019-05-21 | 2022-02-01 | Micron Technology, Inc. | Host device physical address encoding |
US11487653B2 (en) * | 2019-09-27 | 2022-11-01 | Micron Technology, Inc. | L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches |
-
2020
- 2020-03-31 US US16/836,679 patent/US11169744B2/en active Active
- 2020-06-22 CN CN202010572362.3A patent/CN113467705B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170070240A1 (en) * | 2015-09-03 | 2017-03-09 | SK Hynix Inc. | Memory system including error corrector and operating method thereof |
CN106406753A (zh) * | 2016-08-30 | 2017-02-15 | 深圳芯邦科技股份有限公司 | 一种数据存储方法及数据存储装置 |
US20190108131A1 (en) * | 2017-10-06 | 2019-04-11 | Silicon Motion Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
CN109634517A (zh) * | 2017-10-06 | 2019-04-16 | 慧荣科技股份有限公司 | 进行存取管理的方法、记忆装置、电子装置和其控制器 |
WO2019078999A1 (en) * | 2017-10-20 | 2019-04-25 | Qualcomm Incorporated | HARDWARE CONTROLLER AUTOMATION FOR HOST-SENSITIVE PERFORMANCE IMPROVEMENT DEVICE |
US20190121540A1 (en) * | 2017-10-20 | 2019-04-25 | Qualcomm Incorporated | Controller hardware automation for host-aware performance booster |
CN107908571A (zh) * | 2017-10-31 | 2018-04-13 | 成都华为技术有限公司 | 一种数据写入方法、闪存装置及存储设备 |
KR20190050154A (ko) * | 2017-11-02 | 2019-05-10 | 삼성전자주식회사 | 데이터 저장 장치 |
CN110244907A (zh) * | 2018-03-08 | 2019-09-17 | 爱思开海力士有限公司 | 存储器系统及该存储器系统的操作方法 |
US20190303292A1 (en) * | 2018-03-28 | 2019-10-03 | SK Hynix Inc. | Memory system and operating method thereof |
CN110321069A (zh) * | 2018-03-28 | 2019-10-11 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
WO2019222381A1 (en) * | 2018-05-18 | 2019-11-21 | Micron Technology, Inc. | Host accelerated operations in managed nand devices |
Also Published As
Publication number | Publication date |
---|---|
CN113467705B (zh) | 2024-06-18 |
US20210303208A1 (en) | 2021-09-30 |
US11169744B2 (en) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113467705B (zh) | 数据组块的增强读取 | |
US20170206170A1 (en) | Reducing a size of a logical to physical data address translation table | |
CN116888585A (zh) | 用于简单复制命令的基于高速缓存的流 | |
WO2024063821A1 (en) | Dynamic and shared cmb and hmb allocation | |
US11853554B2 (en) | Aligned and unaligned data deallocation | |
US20220075560A1 (en) | NVMe Simple Copy Command Support Using Dummy Virtual Function | |
US20210286762A1 (en) | Snapshot Management in Partitioned Storage | |
US11960397B2 (en) | Data mapping comparison for improved synchronization in data storage devices | |
US11989127B2 (en) | Efficient L2P DRAM for high-capacity drives | |
US11429522B2 (en) | Storage delta compression | |
US12001719B2 (en) | Storage media based search function for key value data storage devices | |
US12019878B2 (en) | Pre-validation of blocks for garbage collection | |
US11645009B2 (en) | Data storage with improved read parallelism | |
US20240078032A1 (en) | Metadata Management In Key Value Data Storage Device | |
US11966630B2 (en) | Key-to-physical table optimization for key value data storage devices | |
US12019899B2 (en) | Data relocation with protection for open relocation destination blocks | |
US20240078184A1 (en) | Transparent Host Memory Buffer | |
US20240103723A1 (en) | Unaligned deallocated logical blocks datapath support | |
US20230176775A1 (en) | Enterprise Host Memory Buffer For DRAM-less SSD | |
US20230079698A1 (en) | Data Storage Devices, Systems, and Related Methods to Determine Writing Fragmentation Levels of Memory Devices | |
US20240111443A1 (en) | Finding and releasing trapped memory in ulayer | |
US11640253B2 (en) | Method to use flat relink table in HMB | |
US20230176744A1 (en) | Enterprise Host Memory Buffer | |
WO2023080928A1 (en) | Dynamic controller buffer management and configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |