CN112988616A - 使用枢纽表从存储器读取顺序数据 - Google Patents

使用枢纽表从存储器读取顺序数据 Download PDF

Info

Publication number
CN112988616A
CN112988616A CN202011448539.5A CN202011448539A CN112988616A CN 112988616 A CN112988616 A CN 112988616A CN 202011448539 A CN202011448539 A CN 202011448539A CN 112988616 A CN112988616 A CN 112988616A
Authority
CN
China
Prior art keywords
address
logical
physical address
determining
starting physical
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
Application number
CN202011448539.5A
Other languages
English (en)
Other versions
CN112988616B (zh
Inventor
G·德利塞奥
C·曼加内利
P·帕帕
Y·温博格
G·费拉里
M·拉库罗
L·F·德里西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN112988616A publication Critical patent/CN112988616A/zh
Application granted granted Critical
Publication of CN112988616B publication Critical patent/CN112988616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本申请案涉及使用枢纽表从存储器读取顺序数据。在一方法中,计算机存储装置具有存储于易失性存储器中的一或多个枢纽表及对应位图。所述存储装置具有存储主机装置的数据的非易失性存储媒体。所述枢纽表及位图用于针对接收于来自所述主机装置的命令中的被确定为在顺序地址范围内的逻辑地址(例如LBA,其是由所述主机装置进行的前一顺序写入操作的部分)确定所述非易失性存储媒体的物理地址。当命令由包含所述顺序地址范围内的逻辑地址的所述存储装置接收时,所述枢纽表及其对应位图中的一者用于确定对应于所述逻辑地址的所述非易失性存储媒体的所述物理地址。

Description

使用枢纽表从存储器读取顺序数据
技术领域
本文中揭示的至少一些实施例大体上涉及计算机存储装置,且更特定来说(但不限于),涉及使用枢纽表读取存储于非易失性存储装置中的数据。
背景技术
各种类型的非易失性存储装置可用于存储数据。非易失性存储装置可包含NAND快闪存储器装置。
典型计算机存储装置具有从主机计算机接收数据存取请求且执行编程计算任务以依可专用于经配置于存储装置中的媒体及结构的方式实施所述请求的控制器。在一实例中,快闪存储器控制器管理存储于快闪存储器中的数据且与计算机装置通信。
在一些情况中,快闪存储器控制器在SD卡或类似媒体中用于数字相机、移动电话等中。在其它情况中,USB快闪驱动使用快闪存储器控制器通过USB端口与计算机通信。
固件可用于操作特定存储装置的快闪存储器控制器。在一实例中,当计算机系统或装置从快闪存储器装置读取数据或将数据写入到快闪存储器装置时,其与快闪存储器控制器通信。
通常,快闪存储器控制器包含将从主机装置接收的逻辑块地址(LBA)映射到快闪存储器的物理地址的快闪转译层(FTL)。借此,FTL提供逻辑到物理映射。
在一些情况中,存储装置是包含存储器控制器且支持例如eMMC及SD的接口的管理型NAND装置。而且,通用快闪存储装置(UFS)是数字相机、移动电话等的快闪存储规格。UFS被视为eMMC及SD卡的替换。
发明内容
一方面,本发明涉及一种用于存储装置的方法,所述方法包括:由控制器接收包含存储于非易失性存储媒体中的数据的第一逻辑地址的命令;由所述控制器基于对应于所述第一逻辑地址的第一存储值确定所述第一逻辑地址是否在顺序范围内;及响应于确定所述第一逻辑地址在所述顺序范围内,确定对应于所述第一逻辑地址的第一物理地址,其中确定所述第一物理地址包括:确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及通过将所述位移加到所述起始物理地址来确定所述第一物理地址。
另一方面,本发明涉及一种系统,其包括:非易失性存储媒体;易失性存储器,其经配置以存储位图,所述位图包含对应于第一逻辑地址的第一位;控制器;及固件,其含有指令,所述指令经配置以指示所述控制器:接收包含所述第一逻辑地址的命令;基于所述位图的所述第一位确定所述第一逻辑地址是否在顺序范围内;及响应于确定所述第一逻辑地址在所述顺序范围内,确定对应于所述第一逻辑地址的所述非易失性存储媒体的第一物理地址,其中确定所述第一物理地址包括:确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及通过将所述位移加到所述起始物理地址来确定所述第一物理地址。
又一方面,本发明涉及一种非暂时性机器可读存储媒体,其存储指令,所述指令在执行于至少一个处理装置上时致使所述至少一个处理装置至少:接收包含第一逻辑地址的读取命令;基于对应于所述第一逻辑地址的位确定所述第一逻辑地址是否在顺序范围内;响应于确定所述第一逻辑地址在所述顺序范围内:确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及通过将所述位移加到所述起始物理地址来确定对应于所述第一物理地址的物理地址;及使用所述经确定物理地址读取存储于非易失性存储媒体中的数据。
附图说明
实施例通过实例而非限制来说明于附图中,其中相似元件符号指示类似元件。
图1说明根据一些实施例的包含存储枢纽表及位图的易失性存储器的存储装置。
图2说明根据一些实施例的存储装置的逻辑到物理映射。
图3说明根据一些实施例的枢纽表。
图4说明根据一些实施例的位图。
图5说明根据一些实施例的逻辑块地址、枢纽表及位图之间的逻辑对应性。
图6说明根据一些实施例的包含逻辑块地址及对应物理地址的逻辑到物理分块。
图7说明根据一些实施例的包含对应于图6的逻辑到物理分块中的逻辑块地址的起始物理地址的枢纽表。
图8说明根据一些实施例的包含对应于图6的逻辑到物理分块中的逻辑块地址的位的位图。
图9是说明根据一些实施例的示范性存储装置的性能模拟中的垂直轴上的示范性每秒数千次输入/输出操作(KIOPS)对水平轴上的随机性百分比的图表。
图10展示根据一些实施例的用于通过使用枢纽表及位图基于从主机装置接收的命令中的逻辑地址确定物理地址的方法。
具体实施方式
本文中的至少一些实施例涉及基于由存储装置从主机装置(例如读取存储于存储装置中的数据的移动电话或其它计算装置)接收的命令中的逻辑地址(例如LBA)确定存储装置的存储器单元的物理地址。
存储装置的物理存储器元件可经布置为经由逻辑块地址(LBA)寻址的逻辑存储器块。逻辑存储器块是最小LBA可寻址存储器单元,且每一LBA地址识别可经映射到存储装置中的存储器单元的特定物理地址的单个逻辑存储器块。
控制器通常使用逻辑到物理映射表来基于从主机装置接收的命令中的逻辑地址确定物理地址。映射表通常需要大量存储器存储。在其中存储装置具有有限易失性存储器(例如SRAM)存储容量(例如UFS或eMMC装置)的情况中,映射表的大部分必须存储于存储装置的非易失性存储器(例如NAND快闪)中。
易失性存储器的有限大小产生技术问题。明确来说,当接收命令时,映射表的新部分(例如,有时称为映射表的分块)必须从非易失性存储器加载到易失性存储器以便使控制器执行逻辑到物理转译。此显著减慢存储装置的性能。举例来说,读取存取时间由于需要将分块加载到易失性存储器中而显著增加。
本发明的各个实施例提供上述技术问题的技术解决方案。在一些实施例中,一或多个枢纽表及对应位图经存储于易失性存储器中且用于确定顺序范围内的逻辑地址(例如LBA,其是由主机装置进行的前一顺序写入操作的部分)的物理地址。当命令由包含顺序范围内的逻辑地址的存储装置接收时,枢纽表及其对应位图用于确定对应于逻辑地址的物理地址。在无需将新分块从存储于存储装置的非易失性存储器中的逻辑到物理映射表加载到易失性存储器的情况下执行此确定。在一实例中,顺序范围是一组连续LBA地址。
在一实施例中,一种用于存储装置(例如USB驱动)的方法包括:由控制器接收包含存储于非易失性存储媒体(例如NAND快闪)中的数据的第一逻辑地址(例如LBA 10)的命令;由控制器基于对应于第一逻辑地址的第一存储值(例如易失性存储器中的位图中的位值1)确定第一逻辑地址是否在顺序范围内(例如,写入非易失性存储器中的数据在从LBA7到LBA97的逻辑顺序中);及响应于确定第一逻辑地址在顺序范围内,确定对应于第一逻辑地址的第一物理地址(例如1003)。
确定第一物理地址通过确定从与顺序范围相关联的起始物理地址(例如具有对应于LBA 0且经存储于易失性存储器中的枢纽表中的值993的起始物理地址)的位移来执行。位移由第一逻辑地址与对应于起始物理地址的第二逻辑地址(例如LBA 0)之间的差确定。第一物理地址通过将位移(例如逻辑地址LBA 10减去逻辑地址LBA 0,其是位移10-0=10)加到起始物理地址(例如,993+10=1003,其是对应于LBA 10的物理地址)来确定。
在上述方法的另一实例中,主机装置发送从NAND物理地址2000分配到2050的从LBA 150到LBA 200(51个逻辑地址)的顺序写入命令。起始物理地址(枢纽索引1)被确定为2000-(150-128)=1978。在此计算中,150是顺序范围内的第一LBA地址的逻辑地址的值。2000是对应于第一LBA地址的物理地址的值。128是对应于由枢纽表使用对应枢纽索引项1覆盖的LBA范围(例如LBA 128到LBA 255,如下文在图5中说明)的起始的LBA地址的值。在一实例中,枢纽索引项1是由指向LBA 128的顺序指针给定的起始物理地址,如下文在图7的枢纽表701中说明。
如果来自主机装置的读取命令以LBA=165接收,那么控制器首先确定位图中对应于LBA=165的位具有值1。此指示枢纽表可用于确定物理地址而非从非易失性存储器加载分块。对应于LBA=165的物理地址使用存储于枢纽表中的起始物理地址1978(枢纽索引1)计算。控制器将LBA=165的物理地址确定如下:1978+(165-128)=1978+37=2015。
在一实施例中,针对其中接收LBA的随机读取操作,控制器确定对应于接收到的LBA的逻辑到物理分块先前是否已加载于RAM中。如果未加载分块,那么在发出分块加载命令之前,控制器检查位图中对应于接收到的LBA的位。如果此位被设置到高态(例如,位具有值1),那么控制器可使用枢纽表确定对应于接收到的LBA的物理地址,如上文描述。
在一实施例中,位图是逻辑到逻辑表。主机的逻辑地址空间中的每一LBA对应于位图中的相应位。每一位具有指示对应于LBA的数据是否相对于最近前一枢纽物理位置按顺序写入的值。举例来说,如果位具有值1,那么对应于LBA的数据被确定为按顺序写入。
在一实施例中,在确定地址范围内的连续地址序列之后更新枢纽表。如果地址范围包含一个以上序列,那么基于范围内的最长序列更新枢纽表。明确来说,基于范围内的最长序列的确定来更新起始物理地址及对应于地址范围的枢纽表。
还更新位图。明确来说,将对应于经确定最长序列内的LBA的位图的每一位设置为高态(例如,位值=1)。将位图的其它位设置为低态(例如,位值=0)。
鉴于上述内容,使用枢纽表及位图确定顺序逻辑地址的物理地址可提供各种优势。在一实例中,在具有低RAM资源的快闪转译层中,使用枢纽表及位图避免需要将逻辑到物理分块从NAND加载到SRAM中来进行逻辑到物理转译且因此改进随机读取性能。
在另一实例中,改进其中顺序写入阶段后接随机写入阶段加随机读取阶段或顺序写入阶段后接随机读取阶段的系统基准。在一实例中,枢纽表及位图的使用在由主机装置进行的随机读取存取期间使用存储于SRAM中的相对少量数据来计算一页所需的物理地址。
图1说明根据一些实施例的包含存储枢纽表119及位图117的易失性存储器106的存储装置103。在图1中,主机101经由具有预定协议的通信通道与存储装置103通信。主机101可为具有一或多个中央处理单元(CPU)的计算机(例如移动电话或其它计算装置),例如存储装置103的计算机外围装置可经由例如计算机总线的互连件附接到所述一或多个CPU。
计算机存储装置103可用于存储主机101的数据。计算机存储装置的实例一般包含快闪存储器等。存储装置103具有使用通信通道实施与主机101的通信的主机接口105。举例来说,在一实施例中,主机101与存储装置103之间的通信通道是总线;且主机101及存储装置103使用eMMC或UFS协议来彼此通信。
在一些实施方案中,主机101与存储装置103之间的通信通道包含计算机网络,例如局域网络、无线局域网络、无线个人局域网络、蜂窝通信网络、宽带高速全时连接无线通信连接(例如当代或下一代移动网络链路);且主机101及存储装置103可经配置以使用各种数据存储管理及使用命令来彼此通信。
存储装置103具有运行固件104以响应于来自主机101的通信而执行操作的控制器107。固件一般为提供工程计算装置的控制、监测及数据操纵的一种类型的计算机程序。在图1中,固件104控制控制器107操作存储装置103的操作,例如将逻辑地址转译成物理地址以存储及存取存储装置103中的数据。在一实例中,控制器是将数据存储于TLC NAND快闪存储器中的管理型NAND装置的内部控制器。
存储装置103具有非易失性存储媒体109,例如集成电路中的存储器单元。存储媒体109因为无需电力来维持存储于非易失性存储媒体109中的数据/信息而为非易失性的,可在非易失性存储媒体109断电且接着再次通电之后检索所述数据/信息。存储器单元可使用各种存储器/存储技术(例如基于NAND门的快闪存储器、相变存储器(PCM)、磁性存储器(MRAM)、电阻式随机存取存储器及3D XPoint)实施,使得存储媒体109是非易失性的且可在断电几天、几个月及/或几年的情况下保持存储于其中的数据。
存储装置103包含易失性随机存取存储器(RAM)106。在一实施例中,RAM的一部分用于存储由控制器107使用的运行时间数据及指令来改进控制器107的计算性能及/或为在主机101与非易失性存储媒体109之间传送的数据提供缓冲。RAM 106因为其需要电力来维持存储于其中的数据/信息而为易失性的,当电力中断时,所述数据/信息会立即或迅速丢失。
易失性存储器106通常具有比非易失性存储媒体109少的延时,但在移除电力时快速丢失其数据。因此,在一些情况中,有利地使用易失性存储器106来临时存储控制器107在其当前计算任务中使用的指令及/或数据以改进性能。在一些例子中,易失性存储器106使用在一些应用中使用比DRAM少的电力的易失性静态随机存取存储器(SRAM)实施。
在操作期间,控制器107从主机101接收各种命令。这些命令可包含读取命令或写入命令。在一实例中,读取命令包含逻辑地址,且从主机101接收以存取非易失性存储媒体109中的存储数据113。
除存储数据113之外,非易失性存储媒体109还存储逻辑到物理映射表111。映射表111存储对应于非易失性存储媒体109的数据存储容量的每一逻辑地址的物理地址。
除枢纽表119及位图117之外,易失性存储器106还存储逻辑到物理分块115。分块115是由控制器107加载到易失性存储器106中的映射表111的一部分。分块115由控制器107用于确定接收于来自主机101的读取命令中的逻辑地址的物理地址。
在一些情况中,当接收读取命令时,控制器107确定分块115先前已加载到易失性存储器106中且可用于确定接收到的逻辑地址的物理地址(例如,接收到的逻辑地址落于分块115的LBA范围内)。在其它情况中,控制器107确定分块115无法用于确定接收到的逻辑地址的对应物理地址(例如,接收到的逻辑地址在分块115的LBA范围外)。
在其中先前加载的分块115无法用于确定对应物理地址的情况中,控制器107使用上述位图117确定接收到的逻辑地址是否在顺序范围内(例如,数据先前已写入非易失性存储媒体109中的一序列中)。如果接收到的逻辑地址在顺序范围内,那么控制器107使用枢纽表119确定物理地址,如本文中描述。经确定的物理地址用于读取对应于接收到的逻辑地址的存储数据113的所述部分。接着,控制器107将读取数据发送到主机101。
如果接收到的逻辑地址不在由位图117确定的顺序范围内,那么控制器107将新分块115从映射表111加载到易失性存储器106中。物理地址使用新分块115确定。在一实施例中,当加载新分块115时,更新枢纽表119及/或位图117。
在一些例子中,控制器107具有各自自身具有处理器中高速缓存存储器的多个处理器。任选地,控制器107使用组织于存储装置103中的数据及/或指令执行数据密集型存储器中处理。举例来说,响应于来自主机101的请求,控制器107执行存储于存储装置103中的数据集的实时分析且响应性地将精简数据集传送到主机101。举例来说,在一些应用中,存储装置103连接到实时传感器以存储传感器输入(例如自主车辆或数字相机的传感器);且控制器107的处理器经配置以基于传感器输入执行机器学习及/或模式辨识以支持至少部分经由存储装置103及/或主机101实施的人工智能(AI)系统。
存储装置103可用于例如云计算系统、边缘计算系统、雾计算系统及/或独立计算机的各种计算系统中。在云计算系统中,远程计算机服务器连接于网络中以存储、管理及处理数据。边缘计算系统通过在靠近数据源的计算机网络的边缘处执行数据处理来优化云计算且因此减少与集中服务器及/或数据存储装置的数据通信。雾计算系统使用一或多个终端用户装置或近用户边缘装置存储数据且因此减少或消除将数据存储于集中式数据仓库中的需要。
本发明的至少一些实施例可使用由控制器107执行的例如固件104的计算机指令实施。在一些例子中,硬件电路可用于实施固件104的至少一些功能。固件104最初可存储于非易失性存储媒体109或另一非易失性装置中,且加载到易失性存储器106及/或处理器中高速缓存存储器中以由控制器107执行。
固件104可经配置以使用下文论述的使用枢纽表及位图的技术。然而,下文论述的技术不限于用于图1的计算机系统及/或上文论述的实例中。
非暂时性计算机存储媒体可用于存储固件104的指令。当指令由计算机存储装置103的控制器107执行时,指令致使控制器107或其它处理装置执行本文中论述的方法。
在一实例中,存储装置103的非易失性存储媒体109具有可由LBA地址范围识别的存储器单元,其中所述范围对应于非易失性存储媒体109的存储器容量。
在一实施例中,存储装置103的本地管理器(未展示)接收数据存取命令。来自主机101的数据存取请求(例如读取、写入)识别LBA地址以读取、写入或擦除来自由LBA地址识别的存储器单元的数据。本地管理器将逻辑地址转译成物理地址。
在一实施例中,控制器由一或多个处理装置实施。在一实施例中,计算机系统包含第一存储器装置(例如SRAM)及第二存储器装置(例如NAND快闪)及一或多个处理装置(例如CPU或单芯片系统(SoC))。在一实施例中,计算机系统可包含处理装置及控制器。
处理装置可为(例如)微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些例子中,控制器可称为存储器控制器、存储器管理单元及/或启动器。在一实例中,控制器经过耦合于计算机系统与一或多个存储器子系统之间的总线控制通信。
计算机系统的控制器可与存储器子系统的控制器通信以执行例如在存储器组件处读取数据、写入数据或擦除数据及其它此类操作的操作。在一些例子中,控制器经集成于处理装置的相同封装内。在其它例子中,控制器与处理装置的封装分离。控制器及/或处理装置可包含例如一或多个集成电路及/或离散组件、缓冲器存储器、高速缓存存储器或其组合的硬件。控制器及/或处理装置可为微控制器、专用逻辑电路系统(例如场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。
图2说明根据一些实施例的存储装置的逻辑到物理映射201。在一实例中,存储装置是图1的存储装置103。映射201包含LBA地址的值及存储于非易失性存储器中的对应物理地址的值。在一实例中,物理地址是图1的非易失性存储媒体109中的存储数据113的物理地址。
逻辑到物理映射201的LBA地址包含逻辑地址的顺序范围202。举例来说,逻辑地址LBA 7到LBA 97在顺序范围202内。逻辑地址LBA 7到LBA 97对应于物理地址1000到1090。在一实例中,主机发送从NAND物理地址1000分配到1090的从LBA 7到LBA 97(91个逻辑地址)的顺序写入命令。
图3说明根据一些实施例的枢纽表302。枢纽表302是图1的枢纽表119的实例。枢纽表302包含各种起始物理地址。在一实例中,每一起始物理地址对应于枢纽索引0、1、2、…。在一实例中,控制器107使用在计算接收到的逻辑地址的物理地址时从枢纽表302获得的起始物理地址。在一实例中,每一枢纽索引对应于LBA地址范围。由控制器107选择的起始物理地址对应于接收到的LBA地址在其内的LBA地址的特定范围的枢纽索引。举例来说,枢纽索引1的起始物理地址对应于LBA范围128到255,且在接收逻辑地址LBA 150时使用。
图4说明根据一些实施例的位图402。位图402是图1的位图117的实例。位图402包含对应于位索引0、1、2、…、127的位值。在一实例中,位图402对应于从LBA 0到LBA 127的逻辑地址范围。每一位值指示对应LBA地址是否在顺序范围内。举例来说,将位索引7到97的位值高设置到1,其指示LBA 7到LBA 97在顺序范围202内。将范围LBA 0到LBA 127内的其它LBA地址的位值低设置到0,其指示其它LBA地址在顺序范围202外。
图5说明根据一些实施例的逻辑块地址(LBA)、枢纽表及位图之间的逻辑对应性。在一实例中,从LBA 0到LBA 127的LBA范围对应于图3的枢纽表302的枢纽索引0。从LBA 0到LBA 127的LBA范围还分别对应于图4的位图402的位索引0到127。
在一实例中,从LBA 128到LBA 255的LBA范围对应于图3的枢纽表302的枢纽索引1,且进一步对应于位图402的位索引128到255(未展示)。
在一实例中,从LBA 0到LBA 1023的LBA范围对应于第一分块(指示为PPT#0)及第一枢纽表(枢纽0)。从LBA 1024到LBA 2047的LBA范围对应于第二分块(指示为PPT#1)及第二枢纽表(枢纽1)。第一分块及第二分块各自为图1的逻辑到物理分块115的实例。
图6说明根据一些实施例的包含逻辑块地址(LBA)及对应物理地址的逻辑到物理分块601。逻辑到物理分块601是图1的逻辑到物理分块115的实例。在图6中,分块601为LBA0到LBA 1023的逻辑地址范围提供物理地址。在一实例中,如所说明,指向LBA0的指针是逻辑地址LBA 0的对应物理地址。类似地,为其它LBA提供其它对应物理地址。
在一实例中,分块601具有4KB的大小且可寻址4MB的数据。分块601中的指针的数目是1,024。分块601中的每一项的大小是4个字节(4B)。
图7说明根据一些实施例的包含对应于图6的逻辑到物理分块601中的逻辑块地址的起始物理地址的枢纽表701。枢纽表701是图1的枢纽表119的实例。在图7中,枢纽表701为逻辑地址的各个对应范围中的每一者提供起始物理地址。在一实例中,枢纽索引0的起始物理地址对应于从LBA 0到LBA 127的第一逻辑地址范围。在一实例中,第一逻辑地址范围的起始物理地址是指向LBA 0的顺序指针。
在另一实例中,枢纽索引1的起始物理地址对应于从LBA 128到LBA 255的第二逻辑地址范围。第二逻辑地址范围的起始物理地址是指向LBA 128的顺序指针。
在一实例中,枢纽表701的起始物理地址(枢纽索引0到7)覆盖LBA0到LBA 1023的分块601(第一分块)的整个逻辑地址范围。如上文提及,在一实例中,从LBA 1024到LBA2047的LBA范围对应于第二分块(未展示)及第二枢纽表(未展示)。在其它实施例中,可使用单个枢纽表替代多个枢纽表。
在一实例中,枢纽表701具有32个字节的大小。枢纽表701中的项的数目是8。每一项的大小是4个字节。每一逻辑到物理分块对应于相应枢纽表。
图8说明根据一些实施例的包含对应于图6的逻辑到物理分块601中的逻辑块地址的位的位图801。位图801是图1的位图117的实例。在图8中,位图801存储逻辑地址范围中的每一者的位。在一实例中,位图801的每一项对应于由位图索引0、1、2、…、7加索引的位阵列。举例来说,位图索引0的位阵列对应于逻辑地址范围LBA 0到LBA 127。针对此范围内的每一LBA地址,位阵列包含取决于对应LBA地址是否在顺序范围内而被高或低设置的单个位,如上文描述。
在一实例中,位图801包含多个位阵列(各自由位图索引0、1、2、…、7加索引)。每一位阵列包含存储于位图801中的位的一部分。每一位阵列对应于枢纽表701的相应起始物理地址。在一实例中,位图索引0的位阵列对应于指向LBA 0的顺序指针。在另一实例中,位图索引7的位阵列对应于指向LBA 896的顺序指针。
在一实例中,位图801具有128个字节的大小且覆盖范围LBA 0到LBA 1023。每一位阵列(位图索引0、1、…、7)具有16个字节(16B)的大小。
在其它实施例中,分块601、枢纽表701及/或位图801(及/或位图801中的位阵列)的大小及范围可变得更大及/或更小。上述实施例及实例仅供示范且不具限制性。
在一实施例中,枢纽表701及/或位图801响应于将逻辑到物理分块加载到易失性存储器106中而更新。在一实例中,当加载分块时,更新位图801的一或多个位阵列。
在一实例中,针对对应于位图索引0的位阵列,控制器107确定位阵列对应于两个或两个以上顺序LBA地址范围。控制器107确定顺序范围中的哪一者具有最长或最大长度,且接着基于选择具有最大长度的顺序范围来更新位阵列的位。控制器107确定枢纽索引0的起始物理地址以便对应于被更新的位阵列的选定顺序范围。更新枢纽表701中的经确定起始物理地址。
图9是说明根据一些实施例的针对存储装置的性能模拟的垂直轴上的示范性每秒数千次输入/输出操作(KIOPS)对水平轴上的随机性百分比的图表。在一实例中,存储装置是图1的存储装置103。
图9中说明的性能模拟是基于其中易失性存储器分割是基于1024KB的总可用易失性存储器容量的实例。使传统及枢纽方法中的所有模拟配置的易失性存储器(SRAM)的大小保持恒定。模拟假定1GB、2GB、4GB及8GB的主机范围。举例来说,8GB覆盖意味着主机范围横跨8GB。换句话说,由主机给定的随机读取逻辑地址分布于8GB上。
对传统方法及枢纽方法两者执行模拟。枢纽方法使用枢纽表及位图,如上文论述。传统方法不使用枢纽表或位图,而是每当需要用于处置来自主机的新命令时将新分块加载到易失性存储器中。150KIOPS的边界对应于未加载分块时的情况(所有操作使用加载分块执行)。可用1MB大小的分块覆盖1GB的主机范围。
将易失性存储器(SRAM)分割成640KB用于存储覆盖640MB的主机范围的逻辑到物理分块。保留384KB的易失性存储器用于枢纽表及位图,如上文论述。考虑到4KB枢纽表及16KB位图(总共20KB)覆盖主机的512MB,此暗含384KB的枢纽表及位图覆盖(384/20)*512MB,其约等于10GB。
在640KB+384KB的分区及8GB主机范围(HR)中,此暗含由枢纽表及位图100%覆盖(其覆盖是约10GB,其>8GB),且由分块640/8192覆盖。
就100%顺序写入(即,无随机写入)来说,整个范围由枢纽表及位图覆盖,因此无需加载任何分块且因此无性能下降。
就其中存在10%随机写入及90%顺序写入的主机使用模型来说,由枢纽表及位图覆盖90%(因为枢纽表及位图仅覆盖顺序部分)。在其中因为未由枢纽表及位图覆盖而应加载分块的10%情况中,仍存在在易失性存储器中命中分块(且因此无需加载新分块)的概率(640/8192)。
如图9中说明,针对多数百分比随机性情况,具有8GB主机范围的枢纽方法的KIOPS大于具有8GB主机范围的传统方法的KIOPS。
图10展示根据一些实施例的用于通过使用枢纽表及位图基于从主机装置接收的命令中的逻辑地址确定物理地址的方法。举例来说,图10的方法可经实施于图1的系统中。在一实例中,主机装置是主机101。在一实例中,枢纽表是枢纽表119,且位图是位图117。
图10的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如运行或执行于处理装置上的指令)或其组合。在一些实施例中,图10的方法至少部分由一或多个处理装置(例如图1的控制器107)执行。
尽管依特定序列或顺序展示,但除非另外指定,否则过程的顺序可修改。因此,所说明的实施例应被理解为仅作为实例,且所说明的过程可依不同顺序执行,且一些过程可并行执行。另外,可在各个实施例中省略一或多个过程。因此,并非在每个实施例中需要所有过程。其它过程流程是可能的。
在框1001,接收包含第一逻辑地址的读取命令。在一实例中,读取命令由存储装置103从主机101接收且包含LBA地址。
在框1003,确定第一逻辑地址是否在顺序范围内。此确定是基于对应于第一逻辑地址的位。在一实例中,确定LBA地址在图2的顺序范围202内。
在框1005,确定从与顺序范围相关联的起始物理地址的位移。位移由第一逻辑地址与对应于起始物理地址的第二逻辑地址之间的差确定。在一实例中,起始物理地址使用图7的枢纽表701确定。第二逻辑地址是对应于提供起始物理地址的枢纽表701的顺序指针的LBA地址。举例来说,枢纽索引1的第二逻辑地址是LBA 128。举例来说,枢纽索引0的第二逻辑地址是LBA 0。
在框1007,通过将位移加到起始物理地址来确定对应于第一逻辑地址的物理地址。在一实例中,物理地址由控制器107确定。
在框1009,使用经确定物理地址读取存储于非易失性存储媒体中的数据。在一实例中,存储数据113使用经确定物理地址从非易失性存储媒体109读取。
在一实施例中,一种用于存储装置(例如存储装置103)的方法包括:由控制器(例如控制器107)接收包含存储于非易失性存储媒体(例如非易失性存储媒体109)中的数据的第一逻辑地址的命令;由所述控制器基于对应于所述第一逻辑地址的第一存储值确定所述第一逻辑地址是否在顺序范围(例如顺序范围202)内;及响应于确定所述第一逻辑地址在所述顺序范围内,确定对应于所述第一逻辑地址的第一物理地址。
确定所述第一物理地址包括:确定从与所述顺序范围相关联的起始物理地址(例如指向表701中的枢纽索引项0的LBA 0的顺序指针)的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址(例如LBA 0)之间的差确定;及通过将所述位移加到所述起始物理地址来确定所述第一物理地址。在一实例中,如上文论述,针对接收到的读取命令中的LBA=165,所述起始物理地址是1978。所述第一物理地址等于1978+(165-128)=1978+37(位移)=2015。
在一实施例中,所述命令是读取命令或写入命令。
在一实施例中,所述第一存储值是存储于位图(例如位图117)中的多个位中的一者,且所述多个位中的每一者对应于主机地址范围内的逻辑地址。
在一实施例中,所述位图的每一位具有第一二进制值或第二二进制值,所述第一二进制值(例如设置到高态或1的位)指示所述对应逻辑地址在顺序范围内,且所述第二二进制值指示所述对应逻辑地址不在顺序范围内。
在一实施例中,所述起始物理地址是第一起始物理地址,且所述方法进一步包括:存储包括包含所述第一起始物理地址的多个起始物理地址的枢纽表(例如枢纽表119),其中每一起始物理地址对应于逻辑地址的相应范围。所述位图包含多个位阵列,每一位阵列(例如对应于LBA 0到LBA 127的位阵列,例如针对位图801中的位图索引0说明)包含所述多个位的一部分,且每一阵列对应于所述枢纽表的相应起始物理地址。
在一实施例中,所述方法进一步包括:将分块(例如分块115)存储于易失性存储器(例如易失性存储器106)中,其中所述分块为从主机装置接收的命令中的逻辑地址提供逻辑到物理映射,且其中所述分块包含各自对应于相应逻辑地址的多个物理地址。所述枢纽表的每一起始物理地址对应于所述分块的相应部分。
在一实施例中,所述命令从主机装置(例如主机101)接收,且所述主机地址范围由所述主机装置用于逻辑地寻址存储于所述非易失性存储媒体中的数据。
在一实施例中,所述命令是从主机装置接收的第一命令,且所述方法进一步包括:将表(例如映射表111)存储于所述非易失性存储媒体中,其中所述表为从所述主机装置接收的命令中的逻辑地址提供逻辑到物理映射;从所述主机装置接收包含第三逻辑地址的第二命令;基于对应于所述第三逻辑地址的第二存储值确定所述第三逻辑地址是否在所述顺序范围内;及响应于确定所述第三逻辑地址不在所述顺序范围内,确定对应于所述第三逻辑地址的第二物理地址。确定所述第二物理地址包括:将逻辑到物理分块从所述表加载到易失性存储器中;及使用所述加载分块确定所述第二物理地址。
在一实施例中,所述起始物理地址是第一起始物理地址,且所述方法进一步包括:将多个起始物理地址存储于表(例如枢纽表119)中,每一起始物理地址与存储于所述非易失性存储媒体中的数据的逻辑地址的相应顺序范围相关联,所述起始物理地址包含所述第一起始物理地址。
在一实施例中,一种系统包括:非易失性存储媒体;易失性存储器,其经配置以存储位图,所述位图包含对应于第一逻辑地址的第一位;控制器;及固件(例如固件104),其含有指令,所述指令经配置以指示所述控制器:接收包含所述第一逻辑地址的命令;基于所述位图的所述第一位确定所述第一逻辑地址是否在顺序范围内;及响应于确定所述第一逻辑地址在所述顺序范围内,确定对应于所述第一逻辑地址的所述非易失性存储媒体的第一物理地址。
确定所述第一物理地址包括:确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及通过将所述位移加到所述起始物理地址来确定所述第一物理地址。
在一实施例中,所述指令经配置以进一步指示所述控制器使用所述经确定第一物理地址读取或写入所述非易失性存储媒体中的数据。
在一实施例中,所述起始物理地址是第一起始物理地址,且所述指令经配置以进一步指示所述控制器:将多个起始物理地址存储于表中,每一起始物理地址与存储于所述非易失性存储媒体中的数据的逻辑地址的相应顺序范围相关联,所述起始物理地址包含所述第一起始物理地址。确定所述第一物理地址进一步包括使用所述表确定所述第一起始物理地址。
在一实施例中,所述易失性存储器进一步经配置以存储所述表。
在一实施例中,所述表是第一表,且第二表经存储于所述非易失性存储媒体中,所述第二表为从主机装置接收的命令中的逻辑地址提供逻辑到物理映射。
在一实施例中,所述命令是第一命令,且所述指令经配置以进一步指示所述控制器:接收包含第三逻辑地址的第二命令;响应于接收所述第二命令,将逻辑到物理分块从所述第二表加载到所述易失性存储器中;及使用所述加载分块确定对应于所述第三逻辑地址的第二物理地址。
在一实施例中,一种非暂时性机器可读存储媒体存储指令,所述指令在执行于至少一个处理装置上时致使所述至少一个处理装置至少:接收包含第一逻辑地址的读取命令;基于对应于所述第一逻辑地址的位确定所述第一逻辑地址是否在顺序范围内;响应于确定所述第一逻辑地址在所述顺序范围内:确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及通过将所述位移加到所述起始物理地址来确定对应于所述第一物理地址的物理地址;及使用所述经确定物理地址读取存储于非易失性存储媒体中的数据。
在一实施例中,所述起始物理地址是存储于易失性存储器中的枢纽表中的多个起始物理地址中的一者。
在一实施例中,所述位是存储于所述易失性存储器中的位图中的多个位中的一者。
在一实施例中,所述读取命令是第一命令,所述起始物理地址是第一起始物理地址,且所述指令进一步致使所述至少一个处理装置:将映射表存储于所述非易失性存储媒体中,其中所述映射表为从主机装置接收的命令中的逻辑地址提供逻辑到物理映射;响应于从所述主机装置接收第二命令,将逻辑到物理分块从所述映射表加载到所述易失性存储器中;及响应于加载所述分块,更新所述枢纽表中的第二起始物理地址。
在一实施例中,所述顺序范围是第一顺序范围,且所述指令进一步致使所述至少一个处理装置:确定逻辑地址范围内的多个顺序范围;确定所述第一顺序范围具有所述顺序范围的最大长度;及响应于确定所述第一顺序范围具有所述最大长度:使所述起始物理地址与所述第一顺序范围相关联;及更新对应于所述第一顺序范围的所述位图的位,其中每一更新位指示物理地址可针对对应逻辑地址基于从所述起始物理地址的所述位移确定。
在一实例中,执行性能模拟。针对模拟,主机范围是2GB。在模拟中,主机以512KB的分块大小按顺序写入2GB。此暗含512K LBA地址被写入到非易失性存储器。
在相同范围内执行50K命令的随机写入。考虑200MB除以2048MB(2GB),此暗含1/10LBA地址是随机的。此暗含10%的随机性。
换句话说,主机写入2GB/4KB=512K LBA(每一主机LBA是4KB)。主机在相同2GB上重写50K随机写入(RW)命令。此暗含200MB由主机写入。最后,文件被写入2GB:200MB按顺序,且200MB随机。因此,随机LBA地址是200MB/2GB~=10%。
在相同范围上执行50K命令的随机读取。得到随机地址的概率是1/10=10%。
使用RAM(1GB覆盖)中具有1MB大小的分块的传统方法(未使用枢纽表或位图)暗含分块未命中的概率是1/2=50%。
相比之下,使用本文中所描述的在RAM中具有较小大小的分块的枢纽方法及上文所描述的存储于RAM中的枢纽表及位图暗含接收到的命令少于10%将具有分块未命中。
在2GB上针对随机读取的传统方法及枢纽方法的模拟的性能如下:针对传统方法,性能是104KIOPS;及针对枢纽方法,性能是140KIOPS。
结论
本发明包含执行上述方法及实施上述系统的各种装置,其包含执行这些方法的数据处理系统及含有在执行于数据处理系统上时致使系统执行这些方法的指令的计算机可读媒体。
描述及图式是说明性的且不应被解释限制。描述众多特定细节以提供详尽理解。然而,在特定例子中,未描述众所周知或常规细节以免模糊描述。本发明中参考一实施例不一定是参考相同实施例;且此类参考意味着至少一个。
本说明书中参考“一实施例”意味着结合实施例描述的特定特征、结构或特性包含于本发明的至少一个实施例中。出现于本说明书的各个位置中的短语“在一实施例中”不一定全部指代相同实施例,且不是与其它实施例互斥的单独或替代实施例。此外,描述可由一些实施例展现且未由其它实施例展现的各种特征。类似地,描述可为一些实施例的要求但不是其它实施例的要求的各种要求。
在本描述中,各种功能及操作可被描述为由软件代码执行或致使以简化描述。然而,所属领域的技术人员应认识到,此类表达意味着功能是由例如微处理器、专用集成电路(ASIC)、图形处理器及/或场可编程门阵列(FPGA)的一或多个处理器执行代码引起的。替代地或组合地,功能及操作可使用具有或不具有软件指令的专用电路系统(例如逻辑电路系统)实施。实施例可使用无软件指令或结合软件指令的硬接线电路系统实施。因此,技术既不受限于硬件电路系统与软件的任何特定组合,也不受限于由计算装置执行的指令的任何特定来源。
虽然一些实施例可经实施于全功能计算机及计算机系统中,但各个实施例能够作为呈各种形式的计算产品分布且能够被应用,不论用于实际引起分布的特定类型的机器或计算机可读媒体为何。
所揭示的至少一些方面可至少部分体现于软件中。即,技术可响应于其处理器(例如微处理器)执行存储器(例如ROM、易失性RAM、非易失性存储器、高速缓存或远程存储装置)中所含的指令序列而实施于计算装置或其它系统中。
经执行以实施实施例的例程可经实施为操作系统、中间件、服务提供平台、SDK(软件开发包)组件、网页服务或其它特定应用、组件、程序、对象、模块或指令序列(称为“计算机程序”)的部分。到这些例程的调用接口可经暴露于软件开发社区作为API(应用编程接口)。计算机程序通常在各个时间在计算机中的各种存储器及存储装置中包括一或多个指令集,且当由计算机中的一或多个处理器读取及执行时,致使计算机执行执行涉及各个方面的元件所需的操作。
机器可读媒体可用于存储在由计算装置执行时致使装置执行各种方法的软件及数据。可执行软件及数据可经存储于包含例如ROM、易失性RAM、非易失性存储器及/或高速缓存的各个位置中。此软件及/或数据的部分可经存储于这些存储装置中的任一者中。此外,可从集中式服务器或对等网络获得数据及指令。可在不同时间且在不同通信会话中或在相同通信会话中从不同集中式服务器及/或对等网络获得数据及指令的不同部分。可在执行应用程序之前完全获得数据及指令。替代地,可仅在需要用于执行时动态获得数据及指令的部分。因此,无需数据及指令在特定时刻完全在机器可读媒体上。
计算机可读媒体的实例尤其包含(但不限于)可记录及不可记录型媒体,例如易失性及非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、快闪存储器装置、固态驱动存储媒体、可移动磁盘、磁盘存储媒体、光学存储媒体(例如光盘只读存储器(CDROM)、数字多功能磁盘(DVD)等)。计算机可读媒体可存储指令。
一般来说,有形或非暂时性机器可读媒体包含提供(例如,存储)呈可由机器(例如计算机、移动装置、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)存取的形式的信息的任何机构。
在各个实施例中,硬接线电路系统可结合软件及固件指令用于实施技术。因此,技术既不受限于硬件电路系统与软件的任何特定组合,也不受限于由计算装置执行的指令的任何特定来源。
本文中陈述的各个实施例可使用各种不同类型的计算装置实施。如本文中使用,“计算装置”的实例包含(但不限于)服务器、集中式计算平台、多个计算处理器及/或组件的系统、移动装置、用户终端、车辆、个人通信装置、穿戴式数字装置、电子售货亭、通用计算机、电子档案读取器、平板计算机、膝上型计算机、智能电话、数字相机、住宅家用电器、电视机或数字音乐播放器。计算装置的额外实例包含是所谓的“物联网(IOT)”的部分的装置。此类“事物”可偶尔与可监测事物或修改这些事物上的设置的其所有者或管理员互动。在一些情况中,这些所有者或管理员扮演关于“事物”装置的用户角色。在一些实例中,用户的主要移动装置(例如苹果手机)可为关于由用户穿戴的成对“事物”装置(例如苹果手表)的管理员服务器。
在一些实施例中,计算装置可为计算机或主机系统,其可经实施为例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的其它计算装置。主机系统可包含或耦合到存储器子系统,使得主机系统可从存储器子系统读取数据或将数据写入到存储器子系统。主机系统可经由物理主机接口耦合到存储器子系统。一般来说,主机系统可经由相同通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
尽管一些图式依特定顺序说明数个操作,但可使与顺序无关的操作重新排序,且可组合或分解其它操作。虽然具体提到了一些重新排序或其它分组,但其它重新排序或分组对于所属领域的一般技术人员而言是显而易见的,且因此未呈现详尽替代列表。此外,应认识到,阶段可经实施于硬件、固件、软件或其任何组合中。
在以上说明中,已参考本发明的特定示范性实施例描述本发明。应明白,可在不背离所附权利要求书中所陈述的更宽精神及范围的情况下对其做出各种修改。说明书及图式应相应地被视为意在说明而非限制。

Claims (20)

1.一种用于存储装置的方法,所述方法包括:
由控制器接收包含存储于非易失性存储媒体中的数据的第一逻辑地址的命令;
由所述控制器基于对应于所述第一逻辑地址的第一存储值确定所述第一逻辑地址是否在顺序范围内;及
响应于确定所述第一逻辑地址在所述顺序范围内,确定对应于所述第一逻辑地址的第一物理地址,其中确定所述第一物理地址包括:
确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及
通过将所述位移加到所述起始物理地址来确定所述第一物理地址。
2.根据权利要求1所述的方法,其中所述命令是读取命令或写入命令。
3.根据权利要求1所述的方法,其中所述第一存储值是存储于位图中的多个位中的一者,且所述多个位中的每一者对应于主机地址范围内的逻辑地址。
4.根据权利要求3所述的方法,其中所述位图的每一位具有第一二进制值或第二二进制值,所述第一二进制值指示所述对应逻辑地址在顺序范围内,且所述第二二进制值指示所述对应逻辑地址不在顺序范围内。
5.根据权利要求4所述的方法,其中所述起始物理地址是第一起始物理地址,所述方法进一步包括:
存储包括包含所述第一起始物理地址的多个起始物理地址的枢纽表,其中每一起始物理地址对应于逻辑地址的相应范围;
其中所述位图包含多个位阵列,每一位阵列包含所述多个位的一部分,且每一阵列对应于所述枢纽表的相应起始物理地址。
6.根据权利要求5所述的方法,其进一步包括:
将分块存储于易失性存储器中,其中所述分块为从主机装置接收的命令中的逻辑地址提供逻辑到物理映射,且其中所述分块包含各自对应于相应逻辑地址的多个物理地址;
其中所述枢纽表的每一起始物理地址对应于所述分块的相应部分。
7.根据权利要求3所述的方法,其中所述命令从主机装置接收,且所述主机地址范围由所述主机装置用于逻辑地寻址存储于所述非易失性存储媒体中的数据。
8.根据权利要求1所述的方法,其中所述命令是从主机装置接收的第一命令,所述方法进一步包括:
将表存储于所述非易失性存储媒体中,其中所述表为从所述主机装置接收的命令中的逻辑地址提供逻辑到物理映射;
从所述主机装置接收包含第三逻辑地址的第二命令;
基于对应于所述第三逻辑地址的第二存储值确定所述第三逻辑地址是否在所述顺序范围内;及
响应于确定所述第三逻辑地址不在所述顺序范围内,确定对应于所述第三逻辑地址的第二物理地址,其中确定所述第二物理地址包括:
将逻辑到物理分块从所述表加载到易失性存储器中;及
使用所述加载分块确定所述第二物理地址。
9.根据权利要求1所述的方法,其中所述起始物理地址是第一起始物理地址,所述方法进一步包括:
将多个起始物理地址存储于表中,每一起始物理地址与存储于所述非易失性存储媒体中的数据的逻辑地址的相应顺序范围相关联,所述起始物理地址包含所述第一起始物理地址。
10.一种系统,其包括:
非易失性存储媒体;
易失性存储器,其经配置以存储位图,所述位图包含对应于第一逻辑地址的第一位;
控制器;及
固件,其含有指令,所述指令经配置以指示所述控制器:
接收包含所述第一逻辑地址的命令;
基于所述位图的所述第一位确定所述第一逻辑地址是否在顺序范围内;及
响应于确定所述第一逻辑地址在所述顺序范围内,确定对应于所述第一逻辑地址的所述非易失性存储媒体的第一物理地址,其中确定所述第一物理地址包括:
确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及
通过将所述位移加到所述起始物理地址来确定所述第一物理地址。
11.根据权利要求10所述的系统,其中所述指令经配置以进一步指示所述控制器使用所述经确定第一物理地址读取或写入所述非易失性存储媒体中的数据。
12.根据权利要求10所述的系统,其中所述起始物理地址是第一起始物理地址,且其中所述指令经配置以进一步指示所述控制器:
将多个起始物理地址存储于表中,每一起始物理地址与存储于所述非易失性存储媒体中的数据的逻辑地址的相应顺序范围相关联,所述起始物理地址包含所述第一起始物理地址;
其中确定所述第一物理地址进一步包括使用所述表确定所述第一起始物理地址。
13.根据权利要求12所述的系统,其中所述易失性存储器进一步经配置以存储所述表。
14.根据权利要求13所述的系统,其中所述表是第一表,且其中第二表经存储于所述非易失性存储媒体中,所述第二表为从主机装置接收的命令中的逻辑地址提供逻辑到物理映射。
15.根据权利要求14所述的系统,其中所述命令是第一命令,且其中所述指令经配置以进一步指示所述控制器:
接收包含第三逻辑地址的第二命令;
响应于接收所述第二命令,将逻辑到物理分块从所述第二表加载到所述易失性存储器中;及
使用所述加载分块确定对应于所述第三逻辑地址的第二物理地址。
16.一种非暂时性机器可读存储媒体,其存储指令,所述指令在执行于至少一个处理装置上时致使所述至少一个处理装置至少:
接收包含第一逻辑地址的读取命令;
基于对应于所述第一逻辑地址的位确定所述第一逻辑地址是否在顺序范围内;
响应于确定所述第一逻辑地址在所述顺序范围内:
确定从与所述顺序范围相关联的起始物理地址的位移,其中所述位移由所述第一逻辑地址与对应于所述起始物理地址的第二逻辑地址之间的差确定;及
通过将所述位移加到所述起始物理地址来确定对应于所述第一物理地址的物理地址;及
使用所述经确定物理地址读取存储于非易失性存储媒体中的数据。
17.根据权利要求16所述的非暂时性机器可读存储媒体,其中所述起始物理地址是存储于易失性存储器中的枢纽表中的多个起始物理地址中的一者。
18.根据权利要求17所述的非暂时性机器可读存储媒体,其中所述位是存储于所述易失性存储器中的位图中的多个位中的一者。
19.根据权利要求18所述的非暂时性机器可读存储媒体,其中所述读取命令是第一命令,所述起始物理地址是第一起始物理地址,且所述指令进一步致使所述至少一个处理装置:
将映射表存储于所述非易失性存储媒体中,其中所述映射表为从主机装置接收的命令中的逻辑地址提供逻辑到物理映射;
响应于从所述主机装置接收第二命令,将逻辑到物理分块从所述映射表加载到所述易失性存储器中;及
响应于加载所述分块,更新所述枢纽表中的第二起始物理地址。
20.根据权利要求16所述的非暂时性机器可读存储媒体,其中所述顺序范围是第一顺序范围,且所述指令进一步致使所述至少一个处理装置:
确定逻辑地址范围内的多个顺序范围;
确定所述第一顺序范围具有所述顺序范围的最大长度;及
响应于确定所述第一顺序范围具有所述最大长度:
使所述起始物理地址与所述第一顺序范围相关联;及
更新对应于所述第一顺序范围的所述位图的位,其中每一更新位指示物理地址可针对对应逻辑地址基于从所述起始物理地址的所述位移确定。
CN202011448539.5A 2019-12-13 2020-12-09 使用枢纽表从存储器读取顺序数据 Active CN112988616B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/713,552 US11151052B2 (en) 2019-12-13 2019-12-13 Reading sequential data from memory using a pivot table
US16/713,552 2019-12-13

Publications (2)

Publication Number Publication Date
CN112988616A true CN112988616A (zh) 2021-06-18
CN112988616B CN112988616B (zh) 2024-06-18

Family

ID=76317948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011448539.5A Active CN112988616B (zh) 2019-12-13 2020-12-09 使用枢纽表从存储器读取顺序数据

Country Status (2)

Country Link
US (2) US11151052B2 (zh)
CN (1) CN112988616B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116705136A (zh) * 2023-04-23 2023-09-05 珠海妙存科技有限公司 eMMC内部信息分析方法和系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11151052B2 (en) 2019-12-13 2021-10-19 Micron Technology, Inc. Reading sequential data from memory using a pivot table
US11544186B2 (en) * 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11544185B2 (en) * 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
KR20220042673A (ko) * 2020-09-28 2022-04-05 에스케이하이닉스 주식회사 컨트롤러, 컨트롤러의 동작 방법, 및 이를 포함하는 메모리 시스템
US11520525B2 (en) * 2021-05-07 2022-12-06 Micron Technology, Inc. Integrated pivot table in a logical-to-physical mapping having entries and subsets associated via a flag
US11815938B2 (en) * 2021-07-13 2023-11-14 SK Hynix Inc. Storage device and method of operating the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104885062A (zh) * 2012-12-10 2015-09-02 谷歌公司 使用逻辑到物理映射以与数据存储装置进行直接用户空间通信
CN109791520A (zh) * 2016-09-30 2019-05-21 亚马逊技术股份有限公司 物理介质感知的空间耦合的日志记录和重放
US20190220416A1 (en) * 2018-01-16 2019-07-18 SK Hynix Inc. Data storage apparatus and operating method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4325685B2 (ja) * 2007-02-21 2009-09-02 セイコーエプソン株式会社 メモリを制御するメモリコントローラ、メモリモジュール、メモリの制御方法、および、コンピュータ。
US20110208898A1 (en) 2010-02-23 2011-08-25 Samsung Electronics Co., Ltd. Storage device, computing system, and data management method
US8756382B1 (en) * 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
TWI761440B (zh) * 2018-01-30 2022-04-21 韓商愛思開海力士有限公司 記憶體存取方法
KR102549545B1 (ko) * 2018-03-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11151052B2 (en) 2019-12-13 2021-10-19 Micron Technology, Inc. Reading sequential data from memory using a pivot table

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104885062A (zh) * 2012-12-10 2015-09-02 谷歌公司 使用逻辑到物理映射以与数据存储装置进行直接用户空间通信
CN109791520A (zh) * 2016-09-30 2019-05-21 亚马逊技术股份有限公司 物理介质感知的空间耦合的日志记录和重放
US20190220416A1 (en) * 2018-01-16 2019-07-18 SK Hynix Inc. Data storage apparatus and operating method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张营建;臧珠萍;曾培峰;: "控制软件中设备无关性的设计与实现", 东华大学学报(自然科学版), no. 03 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116705136A (zh) * 2023-04-23 2023-09-05 珠海妙存科技有限公司 eMMC内部信息分析方法和系统

Also Published As

Publication number Publication date
US11675709B2 (en) 2023-06-13
CN112988616B (zh) 2024-06-18
US20210182207A1 (en) 2021-06-17
US20220027284A1 (en) 2022-01-27
US11151052B2 (en) 2021-10-19

Similar Documents

Publication Publication Date Title
CN112988616B (zh) 使用枢纽表从存储器读取顺序数据
CN111344683B (zh) 非易失性存储器装置中的命名空间分配
CN109240938B (zh) 存储系统以及控制非易失性存储器的控制方法
US11640242B2 (en) Namespace management in non-volatile memory devices
US20230409473A1 (en) Namespace change propagation in non-volatile memory devices
US10747666B2 (en) Memory system
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
JP6414852B2 (ja) メモリシステムおよび制御方法
US10789160B2 (en) Utilizing different data storage policies in response to different characteristics of data
US10338839B2 (en) Memory system and method for controlling nonvolatile memory
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
JP2021128582A (ja) メモリシステムおよび制御方法
JP2019057178A (ja) メモリシステムおよび制御方法
CN114402282A (zh) 存取存储的元数据以识别存储数据的存储器装置
US20200293221A1 (en) Storage device and computing device including storage device
US10268592B2 (en) System, method and computer-readable medium for dynamically mapping a non-volatile memory store
CN111897743A (zh) 数据储存装置及逻辑至物理地址映射表的载入方法
CN114077389A (zh) 控制器、存储器系统以及数据处理系统
CN113986773A (zh) 基于固态硬盘的写放大优化方法、装置及计算机设备
US10365857B2 (en) Memory system
CN113805792A (zh) 存储器系统及其操作方法
US10861580B2 (en) Memory system for controlling nonvolatile memory
US11216383B2 (en) Storage device providing a virtual memory region, electronic system including the same, and method of operating the same
JP6721765B2 (ja) メモリシステムおよび制御方法
US8423708B2 (en) Method of active flash management, and associated memory device and controller thereof

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
CB03 Change of inventor or designer information

Inventor after: G. Deliseo

Inventor after: C. Manganelli

Inventor after: P. Papa

Inventor after: Y. Weinberg

Inventor after: G. Ferrari

Inventor after: M. Yakulo

Inventor after: L.F.Delixi

Inventor before: G. Deliseo

Inventor before: C. Manganelli

Inventor before: P. Papa

Inventor before: Y. Weinberg

Inventor before: G. Ferrari

Inventor before: M. Lakuro

Inventor before: L.F.Delixi

CB03 Change of inventor or designer information
GR01 Patent grant