CN115756312A - 数据访问***、数据访问方法和存储介质 - Google Patents

数据访问***、数据访问方法和存储介质 Download PDF

Info

Publication number
CN115756312A
CN115756312A CN202211363339.9A CN202211363339A CN115756312A CN 115756312 A CN115756312 A CN 115756312A CN 202211363339 A CN202211363339 A CN 202211363339A CN 115756312 A CN115756312 A CN 115756312A
Authority
CN
China
Prior art keywords
flash
memory
address
blocks
logical block
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.)
Pending
Application number
CN202211363339.9A
Other languages
English (en)
Inventor
高祥
薛菲
金加靖
吴文涛
恒久
许玉铭
王记锋
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.)
Pingtouge Shanghai Semiconductor Co Ltd
Original Assignee
Pingtouge Shanghai Semiconductor Co Ltd
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 Pingtouge Shanghai Semiconductor Co Ltd filed Critical Pingtouge Shanghai Semiconductor Co Ltd
Priority to CN202211363339.9A priority Critical patent/CN115756312A/zh
Priority to US18/172,761 priority patent/US20240143219A1/en
Publication of CN115756312A publication Critical patent/CN115756312A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开提供一种数据访问***、数据访问方法和存储介质。数据访问***包括主机、存储器控制器和闪存,存储器控制器包括:闪存转换层,被配置为从主机接收对闪存的包括逻辑块地址的读命令,基于逻辑块地址确定区域标识和逻辑块地址偏移量;随机存取存储器,被配置为存储包括被布置在与多个超级块相对应的多个区域中的多个闪存物理地址的映射表;地址管理电路,被配置为通过根据区域标识和逻辑块地址偏移量访问映射表,确定与逻辑块地址相对应的闪存物理地址,确定与闪存物理地址相对应的页码和块标识,页码和块标识用于通过访问存储在与块标识相对应的块中的与页码相对应的页中的数据,执行读命令。本公开提高了执行存储器访问操作的总体效率。

Description

数据访问***、数据访问方法和存储介质
技术领域
本公开通常涉及对闪存(flash memory)的数据访问,更具体地,涉及一种数据访问***、数据访问方法和存储介质。
背景技术
对闪存的存储器访问包括读操作和写操作。虽然写操作通常以串行方式执行,但读操作通常涉及对闪存的随机访问,并且需要使用宝贵的硬件处理资源来计算闪存上的与逻辑地址相对应的物理位置。当坏块在闪存中开始累积时,这样的计算可能变得特别繁琐,这导致计算复杂化。需要减少对诸如固态驱动器(solid-state drive,SSD)的闪存驱动器执行读操作过程中的这一重大瓶颈。
发明内容
有鉴于此,本公开的一个目的是提高对闪存执行读操作的吞吐量和执行存储器访问操作的总体效率。
根据一个方面,一种***包括:主机;存储器控制器,与主机通信耦合;以及闪存,与存储器控制器通信耦合;闪存包括多个块,多个块被分组为多个超级块,并且多个块中的每个块包括多个页。其中,存储器控制器包括:闪存转换层,被配置为:从主机接收对闪存的读命令,其中读命令包括逻辑块地址(logic block address,LBA),并且基于逻辑块地址确定区域标识和逻辑块地址偏移量;随机存取存储器(random access memory,RAM),被配置为存储映射表,其中映射表包括多个闪存物理地址(flash physical address,FPA),多个闪存物理地址被布置在与多个超级块相对应的多个区域中;以及地址管理电路,被配置为:从闪存转换层接收区域标识和逻辑块地址偏移量,通过根据区域标识和逻辑块地址偏移量访问存储在随机存取存储器中的映射表,确定与逻辑块地址相对应的闪存物理地址,并且确定与闪存物理地址相对应的页码和块标识,页码和块标识用于通过访问存储在多个块中的与块标识相对应的块中的多个页中的与页码相对应的页中的数据,执行读命令。
在一些实施例中,地址管理电路在现场可编程门阵列(field programmable gatearray,FPGA)或专用集成电路(application-specific integrated circuit,ASIC)上实现。
在一些实施例中,闪存包括固态驱动器(solid-state drive,SSD)。
在一些实施例中,响应于闪存被上电,生成映射表并将映射表存储在随机存取存储器中。
在一些实施例中,通过跳过多个超级块中的一个或多个坏块来生成映射表。
在一些实施例中,随机存取存储器是一个或多个双倍数据速率(double datarate,DDR)同步动态随机存取存储器(synchronous dynamic random access memory,SDRAM)。
在一些实施例中,地址管理电路还被配置为并行地确定与多个逻辑块地址偏移量相对应的多个闪存物理地址。
在一些实施例中,存储器控制器是用于闪存的开放通道控制器。
根据另一个方面,一种方法包括:通过存储器控制器中的闪存转换层,从主机接收对闪存的读命令,其中读命令包括逻辑块地址(logic block address,LBA),闪存包括多个块,多个块被分组为多个超级块,并且多个块中的每个块包括多个页;通过闪存转换层,基于逻辑块地址确定区域标识和逻辑块地址偏移量;通过地址管理电路,通过根据区域标识和逻辑块地址偏移量访问存储在随机存取存储器中的映射表,确定与逻辑块地址相对应的闪存物理地址(flash physical address,FPA),其中映射表包括多个闪存物理地址,多个闪存物理地址被布置在与多个超级块相对应的多个区域中;以及通过地址管理电路,确定与闪存物理地址相对应的页码和块标识,其中页码和块标识用于通过访问存储在多个块中的与块标识相对应的块中的多个页中的与页码相对应的页中的数据,执行读命令。
根据另一个方面,一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质存储指令,当由一个或多个处理器执行指令时,使得一个或多个处理器执行操作,该操作包括:通过存储器控制器中的闪存转换层,从主机接收对闪存的读命令,其中读命令包括逻辑块地址(logic block address,LBA),闪存包括多个块,多个块被分组为多个超级块,并且多个块中的每个块包括多个页;通过闪存转换层,基于逻辑块地址确定区域标识和逻辑块地址偏移量;通过地址管理电路,通过根据区域标识和逻辑块地址偏移量访问存储在随机存取存储器中的映射表,确定与逻辑块地址相对应的闪存物理地址(flashphysical address,FPA),其中映射表包括多个闪存物理地址,多个闪存物理地址被布置在与多个超级块相对应的多个区域中;以及通过地址管理电路,确定与闪存物理地址相对应的页码和块标识,其中页码和块标识用于通过访问存储在多个块中的与块标识相对应的块中的多个页中的与页码相对应的页中的数据,执行读命令。
本公开实施例中,每个区域被映射到对应的超级块,一个超级块中所有块的相同页形成超级页,将各个区域内部的物理地址通过超级页的概念进行抽象,每个超级页中相同偏移量的位置处对应的块号、通道等信息都是一致的,基于此,在映射表中使用区域标识和LBA偏移量标识FPA,压缩了将LBA转换为FPA的映射的表项。使用映射表,以及通过简单计算确定与逻辑块地址相对应的闪存物理地址所对应的页码和块标识,利用页码和块标识访问存储在对应的块中对应的页中的数据,执行读命令,这样,将超级块中存在坏块考虑在内,不再需要投入宝贵的计算资源(例如CPU)来执行读操作中的每个LBA的地址转换的计算,且CPU免于执行映射表查找,导致对闪存执行读操作的吞吐量更高,提高了执行存储器访问操作的总体效率。此外,由于在每次NAND闪存上电或变得对主机可用时生成映射表,因此硬件***灵活地与不同类型的并且具有不同坏块分布的NAND闪存驱动器一起工作,提高了对各种NAND闪存的兼容性。
附图说明
在参考附图考虑以下描述和所附权利要求书的情况下,本公开的***、方法和硬件设备的这些和其他特征,结构的相关元件的操作方法和功能以及部件的组合和制造的经济性将变得更加明显。附图构成本说明书的一部分,其中相似的附图标记表示附图中相关的部分。然而,应当理解的是,附图仅用于说明和描述的目的,而不旨在定义本发明的限制。
图1示出根据本公开的一些实施例的示例性的具有分区命名空间(zonednamespace)的闪存驱动器存储器***的架构的示意图。
图2示出根据本公开的一些实施例的示例性的具有分区命名空间的闪存驱动器的工作流的示意图。
图3示出根据本公开的一些实施例的示例性的具有分区命名空间的闪存驱动器的物理地址布置的示意图。
图4示出根据本公开的一些实施例的示例性的使用硬件存储器执行地址转换的方法的流程图。
图5示出根据本公开的一些实施例的示例性的存储在硬件存储器中的映射表的示意图。
图6示出根据本公开的一些实施例的示例性的具有分区命名空间和缓存映射表的固态驱动器控制器的架构的示意图。
图7示出根据本公开的一些实施例的示例性的使用物理地址管理器和硬件存储器执行地址转换的方法的流程图。
具体实施例
本公开在特定应用及其要求的背景下提供,旨在使本领域任何技术人员能够制造和使用实施例。对于本领域技术人员来说,对本公开的实施例的各种修改将是显而易见的,并且本文定义的一般原理可以应用于其他实施例和应用,而不脱离本公开的精神和范围。因此,本公开不限于所示的实施例,而是应符合与本公开的原理和特征一致的最宽范围。
NAND闪存是一种使用浮栅晶体管的非易失性存储器。在NAND闪存中,数据以比特存储,其中通常一个单元存储一比特。这些单元被分组为NAND闪存的位线。然后,多个位线被分组为页,多个页被分组以形成块。NAND闪存包括多个块,并且NAND闪存中块的确切数量取决于NAND闪存的规格。对于写操作,NAND闪存使用页作为单元进行写入。对于擦除操作,NAND闪存一次擦除一个块。可以在块上执行的擦除操作的次数是有限的。块上允许的最大擦除次数被称为擦写周期(program erase cycle)。
超级块是由NAND闪存中的多个块形成的逻辑块。在超级块中,可以同时对所有块执行写操作和擦除操作。换句话说,在超级块的所有块中,数据的生命周期基本一致。
超级页是由超级块的所有块中的相同页形成的逻辑页。例如,超级块中每个块的第一页可以被分组以形成一个超级页。
坏块是NAND闪存中经历过太多擦除操作的块,因此该块不再起作用。
逻辑块地址(logical block address,LBA)是用于在应用程序级或主机级指定数据位置的通用方案。LBA对应用程序或主机可见,并且要访问闪存驱动器中由LBA指向的数据,需要将LBA转换为闪存驱动器中的物理地址。当主机在特定LBA(例如LBA 0)存储数据,并随后重写到相同的LBA时,新数据可以被存储在闪存驱动器中的不同物理地址中,但NAND闪存的映射表被修改,这使得LBA现在指向存储新数据的新物理地址。新数据仍然以串行方式被写入NAND存储器。
固态驱动器(solid-state drive,SSD)是一种使用NAND闪存持久存储数据的存储器驱动器。固态驱动器控制器是固态驱动器上的嵌入式处理器,并且固态驱动器控制器被配置为执行固态驱动器的固件级软件并加速固态驱动器上的数据访问和处理。
同步动态随机存取存储器(Synchronous Dynamic Random-Access Memory,SDRAM)是一种提供更快数据访问的动态随机存取存储器(dynamic random accessmemory,DRAM)。
闪存转换层(flash translation layer,FTL)是被配置为管理固态驱动器操作的中间层。闪存转换层包括硬件、软件、或硬件和软件两者,并且闪存转换层被配置为执行逻辑地址到物理地址的转换、垃圾回收、磨损均衡、纠错码(error correction code,ECC)、坏块管理等。
闪存物理地址(flash physical address,FPA)是指NAND闪存上的物理地址。例如,闪存物理地址包括NAND闪存上的特定物理地址的块号、通道号、页码等。
分区命名空间是管理固态驱动器资源的命令集的一部分。分区命名空间可以将主机提供给分区块存储接口,并将接口划分为多个区域。每个区域允许随机读取操作和串行写入操作。因此,可以简化固态驱动器内的数据存储,允许写入的数据与物理存储介质对准,以提高固态驱动器的整体吞吐量、存储容量、生命周期等。支持分区命名空间的固态驱动器也被称为分区命名空间固态驱动器(zoned namespaces SSD,ZNS SSD)。分区命名空间中的每个区域可以涵盖固态驱动器中的大存储容量(例如,16GB的存储容量)。由于(例如,通过垃圾回收)可以将每个区域中的数据一起回收,因此,可以显著扩展数据在被回收或擦除之前的生命周期。例如,如果一个区域涵盖16GB的数据,则可以将16GB的数据一起回收,而不是将一个LBA所涵盖的数据量(例如,几个MB)一起回收。总的来说,在固态驱动器上执行的擦除操作的次数较少,从而延长了固态驱动器的生命周期。
图1示出根据本公开的一些实施例的示例性的具有分区命名空间的闪存驱动器存储器***的架构的示意图。如图1所示,闪存驱动器存储器***100包括主机110、固态驱动器控制器120和NAND 130。图1中的示意图仅用于说明性目的,并且取决于实现方式,图1中所示的闪存驱动器存储器***100可以具有更少、更多和替代的组件和连接。
如图1所示,固态驱动器控制器120与主机110和NAND闪存130通信耦合。在一些实施例中,主机110被配置为通过分区块存储接口与固态驱动器控制器120交互,分区块存储接口被划分为多个区域。每个区域允许随机读取操作和串行写入操作。在一些实施例中,NAND闪存130包括一个或多个裸片(die)131,每个裸片131被配置为存储数据。在一些实施例中,NAND闪存130具有由一个固态驱动器控制器120管理和访问的大存储容量(例如,30TB)。
在一些实施例中,固态驱动器控制器120包括前端(frontend,FE)121、闪存转换层122和后端(backend,BE)123。
在一些实施例中,前端121被配置为从主机110接收存储器访问命令,并根据一个或多个存储器协议对存储器访问命令进行解码。存储器访问命令包括读操作、写操作、擦除操作、垃圾回收操作等。解码包括将存储器访问命令进行转换以供闪存转换层122进行处理,并且将存储器访问命令分解为一组命令以供闪存转换层122进行处理。
在一些实施例中,闪存转换层122被配置为从前端121接收解码的存储器访问命令,执行逻辑地址到物理地址的转换、垃圾回收、磨损均衡、纠错码、坏块管理等,并向后端123发送物理存储器访问信息。
在一些实施例中,后端123被配置为执行闪存驱动器存储器***100的条件管理、发出解码命令、从闪存转换层122接收物理存储器访问信息、根据物理存储器访问信息对NAND 130执行存储器访问等。
在一些实施例中,固态驱动器控制器120还包括高速缓存124或双倍数据速率(double data rate,DDR)同步动态随机存取存储器(synchronous dynamic randomaccess memory,SDRAM)125,其被配置为加速执行对NAND 130的存储器访问命令。在一些实施例中,固态驱动器控制器120是NAND 130的开放通道控制器。
图2示出根据本公开的一些实施例的示例性的具有分区命名空间的闪存驱动器的工作流的示意图。应当理解,图2所示的工作流可以由图1所示的闪存驱动器存储器***100来执行。如图2所示,图2中的工作流仅用于说明性目的,并且根据实现方式,图2所示的工作流可以具有更少、更多和替代的的步骤、组件和连接。
如图2所示,在具有分区命名空间的固态驱动器中,每个区域支持随机读取操作和仅串行写入操作。可以对作为一个单元的一个区域执行擦除操作,并且擦除操作可以被称为对该区域的重置。来自主机的写操作中的LBA的顺序可以与LBA所对应的数据被写入每个区域的顺序相同。此外,一个区域被映射到一个超级块。因此,来自主机(例如,图1的主机110)的LBA被串行映射到一个或多个区域,并且不需要额外的映射表来跟踪LBA和区域内的物理地址之间的映射。因此,不需要(例如,在固态驱动器控制器120内部的)用于存储映射表的专用存储器。例如,如图2所示,LBA0至LBAM-1被串行映射在区域0和区域N之间。每个区域包括已写入部分、未写入部分和未映射部分,并且提供了写指针以指示已写入部分的位置。例如,如图2所示,区域0包括已写入的LBA部分、未写入的LBA部分和未映射的LBA。写指针指向已写入的LBA部分的结束位置和未写入的LBA部分的开始位置。例如,当(例如,来自主机的)***请求比区域的大小更小的存储器块时,创建或指示未映射的LBA部分。例如,当每个区域捕获16GB的物理存储容量,并且***仅请求10GB的存储容量时,仍向***提供一个区域的物理存储容量,但该区域中的6GB的存储容量在未映射的LBA部分中。
如图2所示,LBA0至LBAM-1被映射到区域0至区域N。每个区域,例如区域0,映射X+1个LBA。由于映射是串行的,所以第一X+1个LBA被映射到区域0的LBA0至LBAX,第二X+1个LBA被映射到区域1的LBA0至LBAX,以此类推。
当区域的存储空间被映射到闪存物理地址(flash physical address,FPA)时,一个或多个因素可能起作用。例如,一个或多个因素包括确定超级块是否具有坏块、确定在超级块中使用了哪些块、以及确定在超级块上数据如何被布置。例如,如图2所示,FPA以串行方式布置在超级块0中。每个LBA被映射到四个FPA(例如,以进行读取操作)。例如,LBA0被映射到FPA0、FPA1、FPA2和FPA3,FPA0、FPA1、FPA2和FPA3位于块0(或NAND裸片0)的第一行中。接着,以串行方式,LBA1被映射到FPA4、FPA5、FPA6和FPA7,FPA4、FPA5、FPA6和FPA7位于块1(或NAND裸片1)的第一行中。由于下一个块是坏块,下一个LBA(即LBA2)被映射到FPA 8,FPA8位于块3(或NAND裸片3)中。
由于存在上述的一个或多个因素,当从主机发送LBA(例如,图2所示的LBA X)时,可能不存在从中可以容易地识别与LBA地址相对应的物理位置的便捷可得的映射表(例如,逻辑地址到物理地址的映射表或L2P映射表)。因此,需要使用硬件资源(例如,固态驱动器控制器上的CPU)来计算或确定FPA。该计算或确定过程包括以下步骤:第一,基于在超级块上数据被如何布置的确定结果,从LBA X确定初始物理位置。第二,基于所确定的初始物理位置,确定与LBA X相对应的块号。第三,基于所确定的块号,确定与块号相对应的块是否是坏块。如果该块是坏块,则需要跳过坏块,并且重复上述步骤,直到找到非坏块。
执行上述步骤可能占用大量硬件处理资源,尤其是当每次执行存储器访问操作时重复执行这些步骤的情况下。此外,诸如CPU之类的处理器倾向于以串行方式执行步骤,这进一步降低了从LBA确定FPA的效率。这种低效率成为对闪存驱动器(如固态驱动器)执行读操作的重要瓶颈。
本公开的实施例提供了用于改进的使用硬件存储器的FPA查找的***和方法。图3示出根据本公开的一些实施例的示例性的具有分区命名空间的闪存驱动器的物理地址布置的示意图。如图3所示,图3中的布置仅用于说明性目的,并且根据实施方式,图3中所示的布置可以具有更少、更多和替换的步骤、组件和连接。
如图3所示,超级块0包括多个块,例如,块0、块1、坏块2和块3。FPA被串行布置在超级块0中的不同块中。例如,FPA0、FPA1、FPA2和FPA3在块0中,FPA4、FPA5、FPA6和FPA7在块1中,以此类推。块中的每一行FPA被称为页。例如,FPA0、FPA1、FPA2和FPA3形成块0中的一个页。超级块中沿同一行的多个页形成一个超级页。例如,FPA0至FPA11形成超级块0中的超级页。在坏块(例如坏块2)的情况下,跳过坏块,FPA被转移到下一个好块。坏块也会影响超级页的大小。例如,如图3所示,由于存在坏块2,超级页的大小减小为12个FPA,而不是16个FPA。
图4示出根据本公开的一些实施例的示例性的使用硬件存储器执行地址转换的方法的流程图。应当理解,图4所示的方法400可以由图1所示的闪存驱动器存储器***100来执行。如图4所示,图4中的方法400仅用于说明性目的,并且根据实施方式,图4所示的方法400可以具有更少、更多和替代的步骤、组件和连接。
步骤410包括基于区域号确定对应的超级块。例如,如果一个区域被映射到一个超级块,则(例如,如图2所示)区域0被映射到超级块0,区域1被映射到超级块1,以此类推。
步骤420包括基于超级块中的超级页的大小确定偏移量。例如,如图3所示,超级块0中的超级页的大小是12。因此,对于LBA20,偏移量被确定为21%12,即9。在一些实施例中,不同超级块中的超级页可以具有不同的大小。例如,如图3所示,区域0具有一个坏块。因此,区域0中的超级页的大小为12。区域1可能没有任何坏块。因此,区域1中的超级页的大小为16。区域2可能有两个坏块。因此,区域2中的超级页的大小为8。在一些实施例中,关于坏块的信息可以存储在固态驱动器控制器(例如,图1中的固态驱动器控制器120)的高速缓存(例如,图1中的高速缓存124或DDR 125)中。
步骤430包括基于偏移量确定块索引或块标识。例如,如图3所示,对于LBA 20,偏移量为9。由于每个块中的页包含4个FPA,因此LBA 20的块索引为ceiling(9/4),即3。
步骤440包括确定与块索引相对应的当前块是否为坏块。例如,如图3所示,对于LBA20,块索引为3,其对应于坏块2。在一些实施例中,关于坏块的信息存储在固态驱动器控制器(例如,图1的固态驱动器控制器120)的高速缓存(例如,图1的高速缓存124)中。如果确定该块是坏块,则执行步骤450。如果确定该块不是坏块,则执行步骤460。
步骤450包括响应于确定当前块是坏块,将块索引移动到下一个块,并且重复步骤440,直到找到好块。例如,如图3所示,FPA 20被确定为位于坏块2中,该坏块是坏块。因此,块索引被移动到下一个块,其对应于块3,块3是一个好块。
步骤460包括响应于确定当前块不是坏块,在没有页信息的情况下确定在当前块中的与LBA相对应的物理地址。例如,如图3所示,FPA 20被确定为块3中的页的第一FPA。
步骤470包括确定与LBA相对应的页信息。例如,如图3所示,超级页具有12个FPA。页信息通过计算ceiling(21/12)来确定,即2。因此,与LBA相对应的页信息(页码)为1。因此,LBA 20转换为块3中第二页中的第一FPA。
图5示出根据本公开的一些实施例的示例性的存储在硬件存储器中的映射表的示意图。图5仅用于说明性目的,并且根据实施方式,图5中所示的映射表500可以具有更少、更多和替代的组件、布置和连接。
如图5所示,M个区域按顺序排列。例如,区域0后面是区域1,区域1后面是区域2,以此类推。每个区域具有不同的大小。例如,如图5所示,区域0具有X个FPA,区域1具有Y个FPA,区域M具有Z个FPA。基于对应于每个区域的超级块可以具有不同数量的坏块(例如,图3中所示的超级块0具有一个坏块)的事实,区域的大小存在差异。通过固态驱动器控制器生成映射表500并且映射表500存储在固态驱动器控制器中的存储器(例如DDR)中。例如,当固态驱动器上电时,固态驱动器控制器通过(例如,使用图4所示的步骤440)确定坏块在哪里,(例如,利用图4中所示的方法400)来确定在M个区域中的每个区域中每个FPA位于哪里,并且生成要存储在固态驱动器控制器中的高速存储器(例如,DDR)中的映射表500。当固态驱动器控制器在固态驱动器上执行随机读取操作时,固态驱动器控制器在映射表中快速查找每个FPA的物理位置。例如,映射表中的条目包括诸如通道、裸片号、块号、平面号、页码等的信息。因此,固态驱动器控制器不再需要投入宝贵的计算资源(例如CPU)来执行读操作中的每个LBA的地址转换的计算。因此,显著提高了执行存储器访问操作的总体效率。
图6示出根据本公开的一些实施例的示例性的具有分区命名空间和缓存映射表的固态驱动器控制器的架构的示意图。应当理解,图6中所示的固态驱动器控制器600可以包括与图1所示的固态驱动器控制器120类似的组件。例如,固态驱动器控制器600还可以包括前端(例如,类似于图1的前端121)、闪存转换层610(类似于图1中的闪存转换层122)、后端(例如,相似于图1中的后端123)和高速缓存存储器630(例如,类似于图1的高速缓存124或DDR 125)。此外,固态驱动器控制器600还可以包括物理地址管理器620。图6中的示意图仅用于说明性目的,并且取决于实施方式,图6中所示的固态驱动器控制器600可以具有更少、更多和替代的组件和连接。
如图6所示,物理地址管理器620与闪存转换层610和高速缓存存储器630通信耦合。当闪存转换层610从主机(例如,图1的主机110)接收到包括LBA的存储器访问命令时,命令调度器611确定存储器访问命令是读命令还是写命令。基于确定结果,命令调度器611将读命令发送给读命令处理613,将写命令发送给写命令处理612。由于读命令涉及对NAND闪存(例如,图1的NAND 130)的随机访问,闪存转换层610需要额外的资源(例如,物理地址管理器620和高速缓存存储器630)来对LBA查找物理位置。因此,读命令处理613将包括LBA的处理输入(process input)发送给物理地址管理器620。
物理地址管理器620接收处理输入和LBA,并在存储在高速缓存存储器630中的映射表(例如,图5所示的映射表500)中查找与LBA相对应的FPA。在一些实施例中,该映射是到FPA的线性映射。因此,可以容易地执行查找过程。例如,(例如,通过执行一个或多个除法计算)使用LBA作为阵列索引来查找FPA。在一些实施例中,物理地址管理器620被配置为并行处理多个LBA,以进一步提高固态驱动器控制器600执行数据处理命令的效率。例如,计算器或定位引擎一次处理不止一个请求。在一些实施例中,物理地址管理器620在专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(fieldprogrammable gate array,FPGA)上实现。
高速缓存存储器630存储映射表,并基于来自物理地址管理器620的高速缓存输入,将对应于LBA的FPA信息从映射表返回给物理地址管理器620。物理地址管理器通过高速缓存输出从高速缓存存储器630接收FPA信息,并通过处理输出(process output)将FPA信息发送给闪存转换层610。读命令处理613接收FPA信息,并将读命令与FPA信息一起发送给命令传输614。命令传输614将FPA信息发送给后端(例如,图1的后端123),后端执行对NAND闪存(例如,在图1的NAND130)的数据访问。
图7示出根据本公开的一些实施例的示例性的使用物理地址管理器和硬件存储器执行地址转换的方法的流程图。应当理解,图7所示的方法700可以由图6所示的***600执行。图7仅用于说明性目的,并且取决于实施方式,图7中所示方法700可以具有更少、更多和替代的步骤、组件和连接。
步骤710包括将读命令从命令调度器发送给读命令处理模块。在一些实施例中,命令调度器类似于图6所示的命令调度器611,读命令处理模块类似于图6所示的读命令处理613。在一些实施例中,命令调度器和读命令处理模块是存储器控制器(例如,图1中的固态驱动器控制器120)的一部分。在一些实施例中,读命令包括LBA。在一些实施例中,读命令用于从闪存(例如,图1的NAND 130)读取数据。
步骤720包括通过读命令处理模块确定区域标识和LBA偏移量。例如,如图5所示,FPA按顺序排列在不同区域。每个区域具有不同的大小。因此,读命令处理模块处理LBA,并且找出相应的FPA属于哪个区域以及在那个特定区域中的LBA偏移量。
步骤730包括通过地址管理模块基于LBA偏移量确定超级页偏移量。在一些实施例中,超级页偏移量用于确定阵列索引。例如,LBA-偏移量映射可以仅存储一个超级页,并且一个超级块可以存储多个超级页(例如,1000个超级页)。多个超级页可以遵循相同的映射方案,具有不同的页地址。因此,可以通过将超级页偏移量除以LBA来确定阵列索引。在一些实施例中,地址管理模块类似于图6所示的物理地址管理器。如图3所示,每个区域或对应的超级块具有不同数量的坏块。因此,在不同区域之间超级页的大小也可能不同。基于对应于区域标识的区域中的超级页的大小,通过查找LBA偏移量除以超级页的大小的余数来确定超级页偏移量(例如,类似于图4中所示的步骤420)。
步骤740包括由地址管理模块通过访问高速缓存存储器,基于区域标识和LBA偏移量确定与LBA相对应的FPA。例如,如图5所示,区域标识(例如,区域0、区域1,等等)和LBA偏移量(例如,LBA偏移量0、LBA偏移量1,等等)标识映射表500中的FPA。在一些实施例中,高速缓存存储器类似于图1中所示的高速缓存124或DDR 125。在一些实施例中,地址管理模块并行地确定多个FPA。
步骤750包括通过地址管理模块,确定与FPA相对应的页码和块标识。在一些实施例中,页码和块标识用于通过访问多个块中的与块标识相对应的块中的多个页中的与页码相对应的页中存储的数据来执行读命令。在一些实施例中,地址管理模块并行处理多个FPA。
步骤760包括通过固态驱动器控制器,基于页码和块标识从闪存提取与LBA相对应的数据。在一些实施例中,存储器控制器是用于闪存的开放通道控制器。
本公开的实施例提供了用于建立和利用映射表的方法和***,该映射表使用区域和偏移量将LBA转换为FPA。通过使用映射表,将超级块中存在坏块考虑在内,并且高效地获取物理地址,而无需在CPU上进行繁琐的计算。CPU免于执行映射表查找,导致对闪存执行读操作的吞吐量更高。此外,由于在每次NAND闪存上电或变得对主机可用时生成映射表,因此硬件***灵活地与不同类型的并且具有不同坏块分布的NAND闪存驱动器一起工作。
前面的部分中描述的每个过程、方法和算法都可以体现在由一个或多个计算机***或包括计算机硬件的计算机处理器执行的代码模块中,并可以通过该代码模块完全或部分自动化。这些过程和算法可以部分或全部地在专用电路中实现。
当本文公开的功能以软件功能单元的形式实现并作为独立产品出售或使用时,它们可以存储在处理器可执行的非易失性计算机可读存储介质中。本文公开的特定技术解决方案(全部或部分)或有助于当前技术的各方面可以以软件产品的形式体现。软件产品包括多个指令,可以存储在存储介质中,以使计算设备(可以是个人计算机、服务器、网络设备等)执行本公开实施例的方法的全部或一些步骤。存储介质可以包括闪存驱动器、便携式硬盘驱动器、ROM、RAM、磁盘、光盘、可操作用于存储程序代码的另一介质、或其任何组合。
特定实施例还提供了一种***,该***包括处理器和非暂时性计算机可读存储介质,非暂时性计算机可读存储介质存储处理器可执行的指令,以使***执行与上述实施例的任何方法中的步骤相对应的操作。特定实施例还提供一种非暂时性计算机可读存储介质,其配置有可由一个或多个处理器执行的指令,以使一个或多个处理器执行与上述实施例的任何方法中的步骤相对应的操作。
本文公开的实施例可以通过与客户端交互的云平台、服务器或服务器组(以下统称为“服务***”)来实现。客户机可以是终端设备,或者由用户在平台上注册的客户机,其中终端设备可以是移动终端、个人计算机(PC)以及可以安装有平台应用程序的任何设备。
上面描述的各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合均在本公开的范围内。此外,在一些实施例中,某些方法或进程方框可能被省略。这里描述的方法和进程也不限于任何特定顺序,并且与之相关的方框或状态可以在适当的其他顺序中执行。例如,所描述的方框或状态可以以特定公开的顺序以外的顺序执行,或者多个方框或状态可以组合在单个方框或状态中。示例方框或状态可以串行、并行或以某种其他方式执行。方框或状态可以添加到本公开的示例实施例中或从本公开的示例实施例中移除。这里描述的示例性***和组件可以不同于所描述的方式来配置。例如,与本公开的示例实施例相比,可以在本公开的示例实施例中添加、移除或重置元件。
本文描述的示例方法的各种操作可通过算法至少部分地执行。该算法可包括在存储在存储器(例如,上述非暂时性计算机可读存储介质)中的程序代码或指令中。这种算法可以包括机器学习算法。在一些实施例中,机器学习算法可以不显式地编程计算机以执行功能,但可以从训练数据学习以建立执行该功能的预测模型。
本文所述的示例方法的各种操作可由一个或多个处理器至少部分地执行,这些处理器可被临时配置(例如,通过软件)或永久配置为执行相关操作。无论是临时配置的还是永久配置的,这些处理器都可以构成处理器实现的引擎,其运行以执行本文所述的一个或多个操作或功能。
类似地,本文描述的方法可以至少部分地由处理器实现,其中特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的引擎执行。此外,一个或多个处理器还可以用于支持在“云计算”环境中或作为“软件即服务”(software as a service,SaaS)的相关操作的性能。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以通过网络(例如,互联网)和通过一个或多个适当的接口(例如,应用程序接口(Application Program Interface,API))访问。
某些操作的性能可以分布在处理器之间,不是仅驻留在一台机器内,而是部署在多台机器上。在一些示例实施例中,处理器或处理器实现的引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器农场中)。在其他示例实施例中,处理器或处理器实现的引擎可以分布在多个地理位置上。
在本说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。尽管一个或多个方法的单独操作被示出并描述为单独的操作,但是一个或多个单独操作可以同时执行,并且不要求按照所示顺序执行操作。在示例配置中作为单独组件呈现的结构和功能可以作为组合结构或组件来实现。类似地,作为单个组件呈现的结构和功能可以作为单独的组件来实现。这些以及其他变化、修改、添加和改进落入本文主题的范围。
尽管已经参考特定示例实施例描述了本主题的概述,但是可以对这些实施例进行各种修改和改变,而不偏离本公开实施例的更广泛范围。在此,本公开的这些实施例可以单独地或共同地通过术语“本公开”来指代,仅仅是为了方便,并且不打算自愿地将本公开的范围限制在任何单个公开或概念,如果事实上公开了不止一个公开或概念的话。
本文所示的实施例被足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中衍生出其他实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和更改。因此,具体实施例部分不应被理解为限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所享有的全部等同物来定义。
本文描述和/或附图中描述的流程图中的任何过程描述、元素或方框应被理解为潜在地表示包括用于在过程中实现特定逻辑功能或步骤的一个或多个可执行指令的代码的模块、段或部分。如本领域技术人员所理解的,在本文所描述的实施例的范围内包括替代实现方式,其中根据所涉及的功能,可以删除元素或功能,可以以与所示或所讨论的顺序不同的顺序执行元素或功能(包括基本上同时执行或以相反的顺序执行)。
如本文所用,“或”是包含的,而不是排斥的,除非另有明确指示或上下文另有指示。因此,在这里,“A、B或C”指“A、B、C、A和B、A和C、B和C、或A、B和C”,除非另有明确指示或上下文另有指示。此外,“和”是连带的和个别的,除非另有明确表示或上下文另有表示。因此,在此,“A和B”指“A和B,共同地或分别地”,除非另有明确指示或上下文另有指示。此外,可以为在此描述为单个实例的资源、操作或结构提供多个实例。此外,各种资源、操作、引擎和数据存储之间的边界是任意的,并且在特定说明性配置的上下文中说明特定操作。功能的其他分配可以预期,并且可以落在本公开的各种实施例的范围内。通常,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单一资源呈现的结构和功能可以作为单独的资源实现。这些和其他变化、修改、添加和改进落在通过所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被视为说明性的而不是限制性的意义。
术语“包括”或“包含”用于表示随后声明的特征的存在,但不排除添加其他特征。条件语言,例如,除其他外,“可能”或“可以”,除非另有明确说明,或在所使用的上下文中以其他方式理解,一般旨在传达某些实施例包括某些特征、元素和/或步骤,而其他实施例不包括。因此,这种条件语言通常并不意味着特征、元素和/或步骤是一个或多个实施例以任何方式所需要的,或者一个或多个实施例必须包括用于在有或没有用户输入或提示的情况下决定这些特征、元素和/或步骤是否包括或将在任何特定实施例中执行的逻辑。

Claims (20)

1.一种数据访问***,包括:
主机;
存储器控制器,与所述主机通信耦合;以及
闪存,与所述存储器控制器通信耦合,所述闪存包括多个块,所述多个块被分组为多个超级块,所述多个块中的每个块包括多个页;
其中所述存储器控制器包括:
闪存转换层,被配置为:
从所述主机接收对所述闪存的读命令,其中所述读命令包括逻辑块地址;以及
基于所述逻辑块地址确定区域标识和逻辑块地址偏移量;
随机存取存储器,被配置为存储映射表,其中所述映射表包括多个闪存物理地址,所述多个闪存物理地址被布置在与所述多个超级块相对应的多个区域中;以及
地址管理电路,被配置为:
从所述闪存转换层接收所述区域标识和所述逻辑块地址偏移量;
通过根据所述区域标识和所述逻辑块地址偏移量访问存储在所述随机存取存储器中的所述映射表,确定与所述逻辑块地址相对应的闪存物理地址;以及
确定与所述闪存物理地址相对应的页码和块标识,所述页码和所述块标识用于通过访问存储在所述多个块中的与所述块标识相对应的块中的所述多个页中的与所述页码相对应的页中的数据,执行所述读命令。
2.根据权利要求1所述的数据访问***,其中,所述地址管理电路在现场可编程门阵列或专用集成电路上实现。
3.根据权利要求1所述的数据访问***,其中,所述闪存包括固态驱动器。
4.根据权利要求1所述的数据访问***,其中,响应于所述闪存被上电,生成所述映射表并将所述映射表存储在所述随机存取存储器中。
5.根据权利要求1所述的数据访问***,其中,通过跳过所述多个超级块中的一个或多个坏块来生成所述映射表。
6.根据权利要求1所述的数据访问***,其中,所述随机存取存储器是一个或多个双倍数据速率同步动态随机存取存储器。
7.根据权利要求1所述的数据访问***,其中,所述地址管理电路还被配置为并行地确定与多个逻辑块地址偏移量相对应的多个闪存物理地址。
8.根据权利要求1所述的数据访问***,其中,所述存储器控制器是用于所述闪存的开放通道控制器。
9.一种数据访问方法,包括:
通过存储器控制器中的闪存转换层,从主机接收对闪存的读命令,其中所述读命令包括逻辑块地址,所述闪存包括多个块,所述多个块被分组为多个超级块,所述多个块中的每个块包括多个页;
通过所述闪存转换层,基于所述逻辑块地址确定区域标识和逻辑块地址偏移量;
通过地址管理电路,通过根据所述区域标识和所述逻辑块地址偏移量访问存储在随机存取存储器中的映射表,确定与所述逻辑块地址相对应的闪存物理地址,其中所述映射表包括多个闪存物理地址,所述多个闪存物理地址被布置在与所述多个超级块相对应的多个区域中;以及
通过所述地址管理电路,确定与所述闪存物理地址相对应的页码和块标识,其中所述页码和所述块标识用于通过访问存储在所述多个块中的与所述块标识相对应的块中的所述多个页中的与所述页码相对应的页中的数据,执行所述读命令。
10.根据权利要求9所述的数据访问方法,其中,所述地址管理电路在现场可编程门阵列或专用集成电路上实现。
11.根据权利要求9所述的数据访问方法,其中,所述闪存包括固态驱动器。
12.根据权利要求9所述的数据访问方法,其中,响应于所述闪存被上电,生成所述映射表并将所述映射表存储在所述随机存取存储器中。
13.根据权利要求9所述的数据访问方法,其中,通过跳过所述多个超级块中的一个或多个坏块来生成所述映射表。
14.根据权利要求9所述的数据访问方法,其中,所述随机存取存储器是一个或多个双倍数据速率同步动态随机存取存储器。
15.根据权利要求9所述的数据访问方法,其中,所述方法还包括:
通过所述地址管理电路,并行地确定与多个逻辑块地址偏移量相对应的多个闪存物理地址。
16.根据权利要求9所述的数据访问方法,其中,所述存储器控制器是用于所述闪存的开放通道控制器。
17.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储指令,所述指令由一个或多个处理器执行,使得所述一个或多个处理器执行操作,所述操作包括:
通过存储器控制器中的闪存转换层,从主机接收对闪存的读命令,其中所述读命令包括逻辑块地址,所述闪存包括多个块,所述多个块被分组为多个超级块,所述多个块中的每个块包括多个页;
通过所述闪存转换层,基于所述逻辑块地址确定区域标识和逻辑块地址偏移量;
通过地址管理电路,通过根据所述区域标识和所述逻辑块地址偏移量访问存储在随机存取存储器中的映射表,确定与所述逻辑块地址相对应的闪存物理地址,其中所述映射表包括多个闪存物理地址,所述多个闪存物理地址被布置在与所述多个超级块相对应的多个区域中;以及
通过所述地址管理电路,确定与所述闪存物理地址相对应的页码和块标识,其中所述页码和所述块标识用于通过访问存储在所述多个块中的与所述块标识相对应的块中的所述多个页中的与所述页码相对应的页中的数据,执行所述读命令。
18.根据权利要求17所述的非暂时性计算机可读存储介质,其中,所述地址管理电路在现场可编程门阵列或专用集成电路上实现。
19.根据权利要求17所述的非暂时性计算机可读存储介质,其中,响应于所述闪存被上电,生成所述映射表并将所述映射表存储在所述随机存取存储器中。
20.根据权利要求17所述的非暂时性计算机可读存储介质,其中,所述操作还包括:
通过所述地址管理电路,并行地确定与多个逻辑块地址偏移量相对应的多个闪存物理地址。
CN202211363339.9A 2022-11-02 2022-11-02 数据访问***、数据访问方法和存储介质 Pending CN115756312A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211363339.9A CN115756312A (zh) 2022-11-02 2022-11-02 数据访问***、数据访问方法和存储介质
US18/172,761 US20240143219A1 (en) 2022-11-02 2023-02-22 Software-hardware combination method for internal mapping address query of zoned namespace

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211363339.9A CN115756312A (zh) 2022-11-02 2022-11-02 数据访问***、数据访问方法和存储介质

Publications (1)

Publication Number Publication Date
CN115756312A true CN115756312A (zh) 2023-03-07

Family

ID=85355486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211363339.9A Pending CN115756312A (zh) 2022-11-02 2022-11-02 数据访问***、数据访问方法和存储介质

Country Status (2)

Country Link
US (1) US20240143219A1 (zh)
CN (1) CN115756312A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116400869A (zh) * 2023-06-06 2023-07-07 深圳大普微电子科技有限公司 闪存设备的坏块替换方法、闪存设备控制器及闪存设备
CN116661704A (zh) * 2023-07-07 2023-08-29 深圳宏芯宇电子股份有限公司 存储装置数据读写方法、存储器存储装置及存储器控制器
CN116880746A (zh) * 2023-06-05 2023-10-13 珠海妙存科技有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN117420966A (zh) * 2023-12-19 2024-01-19 深圳大普微电子股份有限公司 物理地址的编址方法及闪存设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116880746A (zh) * 2023-06-05 2023-10-13 珠海妙存科技有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
CN116400869A (zh) * 2023-06-06 2023-07-07 深圳大普微电子科技有限公司 闪存设备的坏块替换方法、闪存设备控制器及闪存设备
CN116400869B (zh) * 2023-06-06 2023-09-29 深圳大普微电子科技有限公司 闪存设备的坏块替换方法、闪存设备控制器及闪存设备
CN116661704A (zh) * 2023-07-07 2023-08-29 深圳宏芯宇电子股份有限公司 存储装置数据读写方法、存储器存储装置及存储器控制器
CN116661704B (zh) * 2023-07-07 2024-03-08 深圳宏芯宇电子股份有限公司 存储装置数据读写方法、存储器存储装置及存储器控制器
CN117420966A (zh) * 2023-12-19 2024-01-19 深圳大普微电子股份有限公司 物理地址的编址方法及闪存设备
CN117420966B (zh) * 2023-12-19 2024-05-28 深圳大普微电子股份有限公司 物理地址的编址方法及闪存设备

Also Published As

Publication number Publication date
US20240143219A1 (en) 2024-05-02

Similar Documents

Publication Publication Date Title
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US10509770B2 (en) Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US20180089074A1 (en) Techniques to Manage Key-Value Storage at a Memory or Storage Device
US11237742B2 (en) Apparatus and method for controlling data stored in memory system
CN106354615B (zh) 固态硬盘日志生成方法及其装置
CN115756312A (zh) 数据访问***、数据访问方法和存储介质
US10877898B2 (en) Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
CN110032333B (zh) 存储器***及其操作方法
EP2665065A2 (en) Electronic device employing flash memory
US10963160B2 (en) Apparatus and method for checking valid data in block capable of storing large volume data in memory system
US20200183831A1 (en) Storage system and system garbage collection method
US20160274819A1 (en) Memory system including host and a plurality of storage devices and data migration method thereof
WO2016048599A1 (en) Caching technologies employing data compression
US11640354B2 (en) Logical-to-physical mapping of data groups with data locality
CN108027764B (zh) 可转换的叶的存储器映射
KR20130030238A (ko) 비휘발성 메모리를 갖는 시스템을 위한 고속 트리 플래트닝
US11526438B2 (en) Memory system capable of increasing storage efficiency and operation method thereof
CN106557428B (zh) 数据存储设备的映射***选择
US10606744B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
US10235284B2 (en) Memory system
KR20190052366A (ko) 컨트롤러 및 컨트롤러의 동작방법
US10942848B2 (en) Apparatus and method for checking valid data in memory system
CN110532195A (zh) 存储器***的工作负荷分簇及执行其的方法
US10977174B2 (en) Using a common pool of blocks for user data and a system data structure

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