CN112115068A - 多命名空间的数据存取及计算机可读取存储介质 - Google Patents

多命名空间的数据存取及计算机可读取存储介质 Download PDF

Info

Publication number
CN112115068A
CN112115068A CN201911114737.5A CN201911114737A CN112115068A CN 112115068 A CN112115068 A CN 112115068A CN 201911114737 A CN201911114737 A CN 201911114737A CN 112115068 A CN112115068 A CN 112115068A
Authority
CN
China
Prior art keywords
metadata
user data
data
logical block
block address
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
CN201911114737.5A
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.)
Silicon Motion Inc
Silicon Motion Technology Corp
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to US16/732,542 priority Critical patent/US11288182B2/en
Publication of CN112115068A publication Critical patent/CN112115068A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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
    • 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/0656Data buffering arrangements
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本发明提出一种多命名空间的数据存取方法,由控制器执行,包含:从主机取得主机写入命令,和指示写入的关联于一个或多个逻辑区块地址的用户数据和元数据;以及分别写入用户数据和元数据至逻辑单元号的区段中的用户数据部分和元数据部分,其中,元数据为描述用户数据的数据,以及元数据部分的长度为装置端支持的多个逻辑区块地址格式中的最大元数据长度。通过地址转换电路将闪存转换层存取发出的存储器地址转换到关联物理资源集合的分配空间中的相对地址,能够减少多个闪存转换层的设计架构下消耗的软硬件资源。通过将LUN中所有区段的元数据部分的长度默认为所有LBA格式中最大元数据长度,可兼容所有的LBA格式。

Description

多命名空间的数据存取及计算机可读取存储介质
技术领域
本发明涉及存储装置,特别涉及一种多命名空间的数据存取方法及计算机可读取存储介质。
许哲玮
背景技术
闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,中央处理器(Host)可在地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获得存储在该地址上的数据。相反地,NAND闪存并非随机存取,而是串行存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,中央处理器反而需要写入串行的字节(Bytes)的值到NAND闪存中,用以定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。
新一代的闪存标准(如快速非易失性存储器Non-Volatile Memory Express,NVMe1.4)允许中央处理器建立多个命名空间,这些命名空间可能使用不同的逻辑区块地址格式(Logical Block Address,LBA Format)来存储数据。因应不同的逻辑区块地址格式,元数据(Metadata)的存储格式也会不同,元数据是一种描述用户数据的数据(Data about UserData)。虽然不同逻辑区块地址格式的数据都能够搜集成固定长度,例如4KB,但是不同逻辑区块地址格式的元数据长度却是不同的,增加装置端存取NAND闪存中不同LBA格式的用户数据和元数据的复杂度。因此,本发明提出一种多命名空间的数据存取方法及计算机可读取存储介质,用于解决如上所述的问题。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明提出一种多命名空间的数据存取方法,由控制器执行,包含:从主机取得主机写入命令,和指示写入的关联于一个或多个逻辑区块地址(Logical Block Addresses,LBAs)的用户数据和元数据;以及分别写入用户数据和元数据至逻辑单元号(Logical UnitNumber,LUN)的区段中的用户数据部分和元数据部分。
本发明另提出一种闪存物理资源集合管理的计算机可读取存储介质,用于存储能够被控制器的处理单元加载并执行的计算机程序,所述计算机程序被所述处理单元执行时实现以下步骤:从主机取得主机写入命令,和其指示写入的关联于一个或多个LBAs的用户数据和元数据,其中,主机写入命令包含LBA格式代码;以及依据LBA格式代码分别写入用户数据和元数据至LUN的区段中的用户数据部分和元数据部分。
元数据为描述用户数据的数据,以及元数据部分的长度为装置端支持的多个LBA格式中的最大元数据长度。
上述实施例的优点之一,通过将LUN中所有区段的元数据部分的长度默认为所有LBA格式中最大元数据长度,可兼容所有的LBA格式,而不需要依据不同的LBA格式来配置变动长度的元数据部分,降低写入和读取操作的复杂度,以及节省执行这些操作的时间。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的闪存系统架构的示意图。
图2为闪存接口与逻辑单元号(Logical Unit Number LUN)的连接示意图。
图3为为依据本发明实施例的LUN中每个区段的数据组织示意图。
图4为依据本发明实施例的随机存取存储器中的缓冲区划分示意图。
图5为依据本发明实施例的主机写入命令的执行方法流程图。
图6为依据本发明实施例的主机写入命令的执行方法流程图。
图7为依据本发明实施例的不同逻辑区块地址格式(Logical Block AddressLBAFormat)的用户数据、元数据和循环冗余校验码的数据组织示意图。
图8为依据本发明实施例的主机读取命令的执行方法流程图。
【附图标记列表】
100 电子装置
110 中央处理器
120、131 随机存取存储器
130 SSD控制器
132 主机接口
133 第一处理单元
135 存储器控制器
136 第二处理单元
137 闪存接口
150 逻辑单元号(Logical Unit Numbers LUNs)
150#0~150#15 LUN
CH#0~CH#3 输出输入通道
CE#0~CE#3 使能信号
220 ECC引擎
230 CRC引擎
240 数据缓存
300 区段
310 用户数据部分
330 元数据部分
350 CRC部分
370 ECC部分
410 用户数据缓冲区
410#0~410#3 用户数据缓冲区中的局部
430 元数据缓冲区
430#0~430#3 元数据缓冲区中的局部
450 CRC缓冲区
450#0~450#3 CRC缓冲区中的局部
470 ECC码缓冲区
S510~S570 方法步骤
S610~S690 方法步骤
S810~S870 方法步骤
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用在本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。
参考图1。电子装置100包含主机和装置,例如是个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品。主机可包含中央处理器110和随机存取存储器(Random Access Memory,RAM,从装置的观点亦可视为外部随机存取存储器)120。装置可包含SSD控制器(SSD Controller)130和逻辑单元号(LogicalUnit Numbers,LUNs)150。SSD控制器130可包含第一处理单元133,也可以更包括随机存取存储器131以提高SSD控制器130的效能。第一处理单元133可通过主机接口(HostInterface)132从中央处理器110接收命令,并据此指示闪存接口137执行数据读取、写入、抹除等操作。中央处理器110及第一处理单元133间可通过主机接口132采用快速非易失存储器(Non-Volatile Memory Express,NVMe)等通信协议以进行通信。中央处理器110及第一处理单元133中的任一个可使用多种方式实施,如使用通用硬件(例如,单处理器、具并行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行软件以及/或固件指令时,提供之后描述的功能。随机存取存储器(从装置端的观点,亦可视为本地随机存取存储器)131可存储执行过程中需要的数据,例如,变量、数据表等。随机存取存储器131,并使用静态随机存取存储器(State Random Access Memory,SRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM),或以上两者来实施。
LUNs 150提供大量的存储空间,通常是数百Gigabytes,甚至是Terabytes,可用于存储大量的用户数据,例如高分辨率图片、影片等。LUNs 150中包含控制电路和存储器数组,存储器数组中的存储单元可为三层式单元(Triple Level Cells,TLCs)或四层式单元(Quad-Level Cells,QLCs)。
SSD控制器130包含闪存接口137,如此一来,SSD控制器130可通过闪存接口137与LUNs 150通信。闪存接口137可采用双倍数据率(Double Data Rate,DDR)通信协议,例如,开放NAND闪存(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他接口。
SSD控制器130可包含第二处理单元136,并通过闪存接口137以操作LUNs 150,例如:输出页面写入(Page Program)命令以写入用户数据到LUNs150中的指定地址(目的地址),以及输出页面读取(Page Read)命令以从LUNs150中的指定地址(来源地址)读取用户数据。闪存接口137使用数个电子信号来协调与LUNs 150间的数据与命令传递,包含数据线(Data Line)、时钟信号(Clock Signal)与控制信号(Control Signal)。数据线可用以传递命令、地址、读出和写入的数据;控制信号线可用以传递芯片启动(Chip Enable,CE)、地址提取启动(Address Latch Enable,ALE)、命令提取启动(Command Latch Enable,CLE)、写入启动(Write Enable,WE)等控制信号。
第二处理单元136可控制错误检查修正(Error Check and Correction,ECC)引擎220和循环冗余校验码(Cyclic Redundancy Check,CRC)引擎230的运作。CRC引擎230可对用户数据或元数据产生循环冗余校验码(CRC),第二处理单元136可利用CRC码来检查相应用户数据或元数据是否含有错误比特。ECC引擎220可对用户数据或元数据产生错误检查修正码(ECC),ECC码可为低密度奇偶较验码(Low-Density Parity Check Code,LDPC)、BCH码(Bose–Chaudhuri–Hocquenghem Code)等,第二处理单元136可利用ECC码来更正相应用户数据或元数据的错误比特。
第二处理单元136可将用户数据、元数据、CRC码或ECC码暂存至数据缓存(DataCache)240。数据缓存240可配置空间作为用户数据缓冲区410和元数据缓冲区430,用于分别存储从主机取得并等待写入至LUNs 150的不同LBA格式的用户数据和元数据。数据缓存240另可配置空间作为CRC缓冲区450以及ECC码缓冲区470,如图4所示。另外,为了加速自LUNs 150的页面读取数据以及将数据写入至LUNs 150的页面,第二处理单元136可依据默认的格式来将用户数据310、元数据330、CRC码350或ECC码370暂存至数据缓存240,如图3所示。如此一来,第二处理单元136可将默认格式的数据写入至LUNs 150的页面,并依据默认格式来解读LUNs 150的页面所取得的数据。
参考图2,闪存接口137可包含四个输出输入通道(I/O Channels,以下简称通道)CH#0至CH#3,每一个通道连接四个LUNs,例如,通道CH#0连接LUNs 150#0、150#4、150#8和150#12。每个LUN可以NAND闪存模块实现,并且封装为独立的芯片(Die)。第一处理单元133可驱动闪存接口137发出启动信号CE#0至CE#3中的一个来启动LUNs 150#0至150#3、150#4至150#7、150#8至150#11、或150#12至150#15,接着以并行的方式从启动的LUN读取用户数据,或者写入用户数据至启动的LUN。
主机可命令SSD控制器130建立一个以上的命名空间(Namespace),例如:建立二个命名空间,每一命名空间皆有独立的LBA范围以存储各自的用户数据,并采用不同的LBA格式来管理用户数据。LBA格式定义一个LBA对应到的用户数据和元数据的存储空间长度。举例来说,LBA格式可定义用户数据的长度为512B(Bytes,字节)或4KB(Kilo Bytes,千字节),用户数据所对应的元数据的长度,例如:0B、8B、16B、32B、64B或128B。为了有效地支持不同的LBA格式,在一些实施方式,SSD控制器130将用户数据和元数据存储在不同的LUN,例如,将用户数据和元数据分别存储于LUN 150#0和LUN 150#1。在这种实施方式下,SSD控制器130需建立及维护两种不同的地址(Logical Addresses to Physical Addresses,L2P)映射表:用户数据L2P映射表,记录每个LBA的用户数据记录于LUNs 150中哪个物理地址的信息;和元数据L2P映射表,记录每个LBA的元数据记录于LUNs 150中哪个物理地址的信息。然而,这样的实施方式中SSD控制器130需要花费额外的运算能力来产生元数据L2P映射表,也需要LUNs 150配置额外的空间来存储元数据L2P映射表,用户数据以及元数据的管理及读取/写入都会显著地增加固件的复杂度以及调试的难度。
为了克服上述的技术问题,本发明实施例披露一种全球LBA格式以支持各种不同的LBA格式,其中,全球LBA格式包含二个部分:数据部分以及元数据部分。数据部分的长度与上述LBA格式的长度相同,例如:4KB;元数据部分的长度为128B。由于元数据部分的长度为128B,无论主机要求SSD控制器130采用何种LBA格式,元数据皆可存储在全球LBA格式中的元数据部分,达到本发明的目的。
另外,为了提供错误校验能力,全球LBA格式更包括二个部分:CRC部分以及ECC部分。CRC部分可存储用于检查此区段中的用户数据和元数据是否含有错误比特的CRC码;ECC部分可存储能够用于修正用户数据和元数据中的错误比特的ECC码。参考图3,全球LBA格式300的长度例如是4368B,包含4KB的用户数据部分310、128B的元数据部分330、16B的CRC部分350和128B的长度的ECC部分370。用户数据部分310可存储1个4KB长度的用户数据或者8个512B长度的用户数据。元数据部分330可存储关联于4KB长度的用户数据的元数据或者关联于8个512B长度的用户数据的元数据,或是元数据部分330可存储8笔元数据,每一笔元数据对应至1个512B长度的用户数据。
图5为依据本发明实施例的主机写入命令的执行方法流程图,此方法由SSD控制器130加载并执行特定软件或固件的程序代码时实施。
步骤S510:从主机取得主机写入命令,其中,写入命令包括用户数据和元数据。随机存取存储器120中的特定局部可配置提交队列(Submission queue)用以存储主机写入命令,另一个特定局部可存储主机写入命令所包括的用户数据和元数据。SSD控制器130可自提交队列中取得主机写入命令,再依据主机写入命令自随机存取存储器120取得用户数据和元数据。SSD控制器130中的存储器控制器135可使用第三代双倍数据率(Double DataRate 3,DDR3)、第四代双倍数据率(Double Data Rate 4,DDR4)等通信协议来存取随机存取存储器120。
步骤S530:将用户数据和元数据存储至数据缓存240。参考图7,SSD控制器130将用户数据和元数据存储至数据缓存240。数据缓存240的用户数据缓冲区410包含四个长度为4KB的局部(Regions)410#0至410#3,和元数据缓冲区430包含四个长度为128B的局部430#0至430#3。
假设,一个LBA编号对应到512B的用户数据和8B的元数据。为了符合全球LBA格式,第二处理单元136可概念性地将局部410#0分为8个512B子区(Sub-regions),分别存储8个LBA的用户数据。第二处理单元136另可概念性地将局部430#0分为8个16B子区,分别存储8个LBA的元数据。但由于每个子区存储8B的元数据后还剩下8B的空间,第一处理单元133可在剩余的空间填满虚假值(如局部430#0中填满斜线的方框)。
假设,一个LBA编号对应到4KB的用户数据和128B的元数据。第二处理单元136可使用局部410#1的完整空间存储此LBA的用户数据,并使用局部430#1的完整空间存储此LBA的元数据。
假设,一个LBA编号对应到4KB的用户数据和8B的元数据。第二处理单元136可使用局部410#2的完整空间存储此LBA的用户数据,使用局部430#2的8B空间存储此LBA的元数据,并将其中的剩余空间填满虚假数据(如局部430#2中填满斜线的方框)。
假设,一个LBA编号对应到4KB的用户数据和64B的元数据。第二处理单元136可使用局部410#3的完整空间存储此LBA的用户数据,使用局部430#3的64B空间存储此LBA的元数据,并将其中的剩余空间填满虚假数据(如局部430#3中填满斜线的方框)。
步骤S550:对用户数据和元数据产生CRC码并将CRC码存储至数据缓存240。第二处理单元136驱动CRC引擎230并依据数据缓存240中的用户数据和元数据产生CRC码并存储至数据缓存240中的CRC缓冲区450。参考图7,CRC缓冲区450包含四个长度为16B的局部450#0至450#3。
参考图7,第二处理单元136可概念性地将局部450#0分为8个2B子区,分别存储依据局部410#0中8个子区的数据和局部430#0中8个子区的数据所产生的CRC码。例如,局部450#0的第1个子区存储依据局部410#0中第1个子区的数据和局部430#0中第1个子区的数据所产生的CRC码,依此类推。
步骤S570:依据全球LBA格式而将用户数据、元数据、CRC码和ECC码编程至LUNs150,其中,ECC码乃依据用户数据和元数据所产生。第二处理单元136依序将用户数据和元数据输出至ECC引擎220以产生ECC码,最后,依据全球LBA格式而将用户数据、元数据、CRC码和ECC码编程至LUNs150中主动区块的空白页面。另外,假设一笔用户数据的长度为4KB,空白页面的长度为18KB,因此,第二处理单元136可依据全球LBA格式径行用户数据、元数据以及其对应的CRC码和ECC码编程至空白页面,剩余部分则填入虚假值;亦可等到收集4笔用户数据后,再依据全球LBA格式将4笔用户数据、元数据以及其对应的CRC码和ECC码编程至空白页面。
图6为依据本发明实施例的主机写入命令的执行方法流程图,此方法由SSD控制器130加载并执行特定软件或固件的程序代码时实施。
步骤S610:在数据缓存240规划出多个LBA空间,每一个LBA空间可用以缓冲4KB长度的用户数据、128B长度的元数据以及16B长度的CRC码。
步骤S630:从主机取得主机写入命令,其中,写入命令包括用户数据和元数据。SSD控制器130将写入命令的用户数据和元数据写入LBA空间中。
步骤S650:将用户数据和元数据存储至LBA空间中。
步骤S670:对用户数据和元数据产生CRC码并将CRC码存储至LBA空间中。
步骤S690:依据全球LBA格式而将用户数据、元数据、CRC码和ECC码编程至LUNs150,其中,ECC码乃依据用户数据和元数据所产生。
因应图3所示每个区段的数据组织实施例,图8为依据本发明实施例的主机读取命令的执行方法流程图,此方法由SSD控制器130加载并执行特定软件或固件的程序代码时实施。
步骤S810:从主机取得主机读取命令,其中,主机读取命令包括目标命名空间编号以及目标LBA编号。主机读取命令可包含目标命名空间编号、目标LBA编号、随机存取存储器120的地址,即用以存储读出的用户数据和元数据的地址等信息。目标命名空间编号例如为命名空间#1,目标LBA编号例如为LBA#100。
步骤S820:依据目标命名空间编号、目标LBA编号以及L2P映射表以获得物理地址。物理地址例如为区块#10的页面#20的区段#1。
步骤S830:依据全球LBA格式从物理地址读取目标数据。目标数据此时的格式如图3所示。
步骤S840:依据全球LBA格式以及指定的LBA格式来解析目标数据以取得相应于LBA编号的用户数据、元数据和CRC码,其中,指定的LBA格式为目标命名空间编号建立时所指定。SSD控制器130可在随机存取存储器131或数据缓存240中维护LBA格式对照表,包含多笔纪录,用于存储每个命名空间对应的LBA格式(也就是指定的LBA格式)。在一些实施例,每笔记录可包含两个字段:命令空间编号及指定的LBA格式编号。在另一些实施例,每笔记录可包含三个字段:命令空间编号、指定的LBA格式的用户数据长度及元数据长度。第二处理单元136先将目标数据输入至ECC引擎220中的ECC译码器进行错误纠正。当错误纠正完成后,CRC引擎230可输出相应于LBA编号的用户数据、元数据和CRC码。此时用户数据以及CRC码的长度为已知,但是元数据的长度为未知。第二处理单元136再依据指定的LBA格式来判断元数据的有效长度及位置以取得正确的元数据,例如:128B的元数据中仅前8B的数据为正确的元数据。在另一实施例中,第二处理单元136只将输入部分目标数据至ECC引擎220中的ECC译码器进行错误纠正。当错误纠正完成后,CRC引擎230可输出相应于LBA编号的用户数据和元数据。
步骤S850:依据CRC码来判断相应于LBA编号的用户数据以及元数据的正确性。第二处理单元136将对应于LBA编号的用户数据和元数据输入至CRC引擎230中的CRC译码器,并比对CRC译码器所产生的结果是否与CRC码相同,如果是,流程进入步骤S860;否则,流程进入S870。
步骤S860:输出对应于LBA编号的用户数据和元数据至主机。SSD控制器130将对应于LBA编号的用户数据和元数据存储至主机读取命令指定的随机存取存储器120的地址。
步骤S870:输出错误信息至主机。由于相应于LBA编号的用户数据及元数据所包含的错误比特数已超过ECC引擎220的修正能力,因此,ECC引擎220无法输出正确的相应于LBA编号的用户数据及元数据,因此,SSD控制器130输出错误信息至主机。
参考图7的第一个LBA格式的使用案例,第一处理单元133可读取页面缓冲器中相应于局部410#0中关联于指定一个或多个LBA编号的子区的用户数据,和页面缓冲器中相应于局部430#0中关联于指定一或多个LBA编号的子区的前8B的元数据。
参考图7的第二个LBA格式的使用案例,第一处理单元133可读取页面缓冲器中相应于局部410#1中的用户数据,和页面缓冲器中相应于局部430#1中的元数据。
参考图7的第三个LBA格式的使用案例,第一处理单元133可读取页面缓冲器中相应于局部410#2中的用户数据,和页面缓冲器中相应于局部430#2中前8B的元数据。
参考图7的第四个LBA格式的使用案例,第一处理单元133可读取页面缓冲器中相应于局部410#3中的用户数据,和页面缓冲器中相应于局部430#3中前64B的元数据。
通过将LUNs 150中所有区段的用户数据部分的长度默认为所有LBA格式中最大用户数据长度,和将其中所有区段的元数据部分的长度默认为所有LBA格式中最大元数据长度,可兼容所有的LBA格式,而不需要依据不同的LBA格式来配置变动长度的用户数据部分和元数据部分,降低写入和读取操作的复杂度,和节省执行这些操作的时间。
本发明所述的方法中的全部或部分步骤可以计算机程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现在如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算机程序,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储在适当的计算机可读取数据载具,例如DVD、CD-ROM、USB、硬盘,亦可置于可通过网络(例如,互联网,或其他适当载具)存取的网络服务器。
虽然图1和图2中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图5、图6和图8的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用于限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

Claims (15)

1.一种多命名空间的数据存取方法,由控制器执行,其特征在于,包含:
从主机取得主机写入命令,包含一个或多个逻辑区块地址的用户数据和元数据;以及
分别写入所述用户数据和所述元数据至逻辑单元号的区段中的用户数据部分和元数据部分,其中,所述元数据部分的长度为所述控制器支持的多个逻辑区块地址格式中的最大元数据长度。
2.如权利要求1所述的多命名空间的数据存取方法,其特征在于,所述用户数据部分为所述控制器支持的所述逻辑区块地址格式中的最大用户数据长度。
3.如权利要求1至2中任一项所述的多命名空间的数据存取方法,其特征在于,所述用户数据部分的长度为4KB,以及所述元数据部分的长度为128B。
4.如权利要求1所述的多命名空间的数据存取方法,其特征在于,所述逻辑单元号的所述区段包含循环冗余校验部分,所述方法包含:
依据关联于所述逻辑区块地址的所述用户数据和所述元数据产生循环冗余校验码;以及
写入所述循环冗余校验码至所述区段中的所述循环冗余校验部分。
5.如权利要求1中所述的多命名空间的数据存取方法,其特征在于,包含:
依据逻辑区块地址格式分别安排及存储所述用户数据及所述元数据至页面缓冲器中的用户数据局部和元数据局部;以及
分别将所述页面缓冲器的所述用户数据局部和所述元数据局部中的数据写入所述逻辑单元号的所述区段中的所述用户数据部分和所述元数据部分。
6.如权利要求1所述的多命名空间的数据存取方法,其特征在于,包含:
依据逻辑区块地址格式分别安排及存储所述用户数据及所述元数据至页面缓冲器中的用户数据局部和元数据局部;以及
分别将所述页面缓冲器的所述用户数据局部和所述元数据局部中的数据写入所述逻辑单元号的所述区段中的所述用户数据部分和所述元数据部分。
7.如权利要求1所述的多命名空间的数据存取方法,其特征在于,所述元数据部分存储所述元数据和虚假值。
8.如权利要求1所述的多命名空间的数据存取方法,其特征在于,包含:
从所述主机取得主机读取命令,所述主机读取命令指示读取所述逻辑区块地址的所述用户数据和所述元数据;
依据全球逻辑区块地址格式读取所述逻辑单元号的所述区段中的所述用户数据部分和所述元数据部分的数据;以及
依据逻辑区块地址格式输出所述用户数据部分中关联于所述逻辑区块地址的所述用户数据以和所述元数据部分中关联于所述逻辑区块地址的所述元数据给所述主机。
9.如权利要求8所述的多命名空间的数据存取方法,其特征在于,包含:
分别存储所述用户数据部分和所述元数据部分的数据至页面缓冲器中的所述用户数据局部和所述元数据局部;以及
依据所述逻辑区块地址格式输出所述用户数据局部中关联于所述逻辑区块地址的所述用户数据和所述元数据局部中关联于所述逻辑区块地址的所述元数据给所述主机。
10.如权利要求8至9中任一项所述的多命名空间的数据存取方法,其特征在于,所述元数据部分存储所述元数据和虚假值。
11.一种多命名空间的数据存取的计算机可读取存储介质,用于存储能够被控制器的处理单元执行的计算机程序,其特征在于,所述计算机程序被所述处理单元执行时实现以下步骤:
从主机取得主机写入命令,包含一个或多个逻辑区块地址的用户数据和元数据;以及
依据球逻辑区块地址格式分别写入所述用户数据和所述元数据至逻辑单元号的区段中的用户数据部分和元数据部分,其中,所述元数据部分的长度为所述控制器支持的多个逻辑区块地址格式中的最大元数据长度。
12.如权利要求11所述的多命名空间的数据存取的计算机可读取存储介质,其特征在于,所述用户数据部分为所述装置端支持的所述逻辑区块地址格式中的最大用户数据长度。
13.如权利要求11至12中任一项所述的多命名空间的数据存取的计算机可读取存储介质,其特征在于,所述逻辑单元号的物理空间包含多个区段,每个所述区段包含用户数据部分和元数据部分,所有所述用户数据部分的长度都相同,以及所有所述元数据部分的长度都相同。
14.如权利要求11至12中任一项所述的多命名空间的数据存取的计算机可读取存储介质,其特征在于,所述元数据部分存储所述元数据和虚假值。
15.如权利要求11所述的多命名空间的数据存取的计算机可读取存储介质,其特征在于,该计算机程序被该处理单元执行时实现以下步骤:
从所述主机取得主机读取命令,所述主机读取命令指示读取所述逻辑区块地址的所述用户数据和所述元数据;
依据所述全球逻辑区块地址格式读取所述逻辑单元号的所述区段中的所述用户数据部分和所述元数据部分的数据;以及
输出所述用户数据部分中关联于所述逻辑区块地址的所述用户数据和所述元数据部分中关联于所述逻辑区块地址的所述元数据给所述主机。
CN201911114737.5A 2019-06-21 2019-11-14 多命名空间的数据存取及计算机可读取存储介质 Pending CN112115068A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/732,542 US11288182B2 (en) 2019-06-21 2020-01-02 Method and computer program product and apparatus for multi-namespace data access

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962864569P 2019-06-21 2019-06-21
US62/864,569 2019-06-21

Publications (1)

Publication Number Publication Date
CN112115068A true CN112115068A (zh) 2020-12-22

Family

ID=73796612

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910925890.XA Pending CN112115067A (zh) 2019-06-21 2019-09-27 闪存物理资源集合管理装置及方法及计算机可读取存储介质
CN201911114737.5A Pending CN112115068A (zh) 2019-06-21 2019-11-14 多命名空间的数据存取及计算机可读取存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910925890.XA Pending CN112115067A (zh) 2019-06-21 2019-09-27 闪存物理资源集合管理装置及方法及计算机可读取存储介质

Country Status (3)

Country Link
US (3) US11288182B2 (zh)
CN (2) CN112115067A (zh)
TW (2) TWI719654B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112558884A (zh) * 2020-12-23 2021-03-26 湖南国科微电子股份有限公司 数据保护方法以及基于NVMe的存储设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220076803A (ko) * 2020-12-01 2022-06-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2022118489A (ja) * 2021-02-02 2022-08-15 キオクシア株式会社 メモリシステム
CN113093694B (zh) * 2021-03-18 2022-05-20 东风汽车集团股份有限公司 一种基于uds的车载电控单元数据刷写方法及系统
US11977783B2 (en) 2021-10-28 2024-05-07 Silicon Motion, Inc. Method and apparatus for performing data access control of memory device with aid of predetermined command
US20230137938A1 (en) * 2021-10-28 2023-05-04 Silicon Motion, Inc. Method and apparatus for performing data access control of memory device with aid of predetermined command

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140195725A1 (en) * 2013-01-08 2014-07-10 Violin Memory Inc. Method and system for data storage
CN106708424A (zh) * 2015-11-13 2017-05-24 三星电子株式会社 对用户数据执行选择性底层暴露映射的设备和方法
CN107168640A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储系统、信息处理系统及非易失性存储器的控制方法
CN108021510A (zh) * 2016-10-31 2018-05-11 三星电子株式会社 操作对多重名称空间进行管理的存储装置的方法
CN109656834A (zh) * 2017-10-12 2019-04-19 慧荣科技股份有限公司 涉及命名空间规划的数据管理方法以及数据储存系统

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
TW200832440A (en) * 2007-01-25 2008-08-01 Genesys Logic Inc Flash memory translation layer system
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US7917803B2 (en) * 2008-06-17 2011-03-29 Seagate Technology Llc Data conflict resolution for solid-state memory devices
US8732388B2 (en) * 2008-09-16 2014-05-20 Micron Technology, Inc. Embedded mapping information for memory devices
TWI395100B (zh) 2009-01-13 2013-05-01 Innostor Technology Corp 應用於快閃記憶體的階級化分層處理資料的方法及相關快閃記憶體裝置
US8589655B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8806112B2 (en) 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
US8700709B2 (en) 2011-07-29 2014-04-15 Microsoft Corporation Conditional location-based reminders
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US9495288B2 (en) 2013-01-22 2016-11-15 Seagate Technology Llc Variable-size flash translation layer
TWI609263B (zh) * 2013-08-16 2017-12-21 司固科技公司 可變大小快閃轉變層
CN107341071A (zh) * 2013-08-23 2017-11-10 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US20160342545A1 (en) * 2014-02-12 2016-11-24 Hitachi, Ltd. Data memory device
CN106462510B (zh) * 2014-03-06 2019-12-13 伊姆西公司 具有独立直接接入大量固态存储资源的多处理器系统
US20160070644A1 (en) * 2014-09-10 2016-03-10 Netapp, Inc. Offset range operation striping to improve concurrency of execution and reduce contention among resources
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
US10459644B2 (en) * 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
US10037152B2 (en) * 2016-12-19 2018-07-31 Alibaba Group Holding Limited Method and system of high-throughput high-capacity storage appliance with flash translation layer escalation and global optimization on raw NAND flash
TWI602074B (zh) 2016-12-29 2017-10-11 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
TWI622890B (zh) * 2016-12-29 2018-05-01 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
US10331584B2 (en) * 2017-03-09 2019-06-25 Toshiba Memory Corporation Internal system namespace exposed through use of two local processors and controller memory buffer with two reserved areas
US10545687B1 (en) * 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
TWI659359B (zh) * 2018-04-27 2019-05-11 慧榮科技股份有限公司 控制儲存裝置之方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140195725A1 (en) * 2013-01-08 2014-07-10 Violin Memory Inc. Method and system for data storage
CN106708424A (zh) * 2015-11-13 2017-05-24 三星电子株式会社 对用户数据执行选择性底层暴露映射的设备和方法
CN107168640A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储系统、信息处理系统及非易失性存储器的控制方法
CN108021510A (zh) * 2016-10-31 2018-05-11 三星电子株式会社 操作对多重名称空间进行管理的存储装置的方法
TW201818249A (zh) * 2016-10-31 2018-05-16 三星電子股份有限公司 操作對多重名稱空間進行管理的儲存裝置的方法
CN109656834A (zh) * 2017-10-12 2019-04-19 慧荣科技股份有限公司 涉及命名空间规划的数据管理方法以及数据储存系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112558884A (zh) * 2020-12-23 2021-03-26 湖南国科微电子股份有限公司 数据保护方法以及基于NVMe的存储设备
CN112558884B (zh) * 2020-12-23 2023-03-14 湖南国科微电子股份有限公司 数据保护方法以及基于NVMe的存储设备

Also Published As

Publication number Publication date
TWI719654B (zh) 2021-02-21
US20200401509A1 (en) 2020-12-24
US20220374350A1 (en) 2022-11-24
TWI766207B (zh) 2022-06-01
US11449416B2 (en) 2022-09-20
US11288182B2 (en) 2022-03-29
US11675698B2 (en) 2023-06-13
US20200401508A1 (en) 2020-12-24
TW202101246A (zh) 2021-01-01
TW202101227A (zh) 2021-01-01
CN112115067A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN112115068A (zh) 多命名空间的数据存取及计算机可读取存储介质
US10509602B2 (en) Data storage device and operating method thereof
US8332579B2 (en) Data storage apparatus and method of writing data
US9461904B2 (en) Selective enablement of operating modes or features via host transfer rate detection
US8180953B2 (en) Data accessing method for flash memory, and storage system and controller system thereof
US20190278518A1 (en) Memory system and operating method thereof
US11334415B2 (en) Data storage device and method for sharing memory of controller thereof
KR20100100394A (ko) 반도체 디스크 장치 그리고 그것의 데이터 기록 및 읽기 방법
US20200057725A1 (en) Data storage device and operating method thereof
US20200218653A1 (en) Controller, data storage device, and operating method thereof
US11520694B2 (en) Data storage device and operating method thereof
KR20200025184A (ko) 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법
US20200356491A1 (en) Data storage device and method for loading logical-to-physical mapping table thereof
KR20200121645A (ko) 컨트롤러 및 그것의 동작 방법과 메모리 시스템
CN111258505A (zh) 快闪存储器的数据合并方法、控制电路单元与存储装置
KR101515621B1 (ko) 반도체 디스크 장치 및 그것의 랜덤 데이터 처리 방법
US9530466B1 (en) System and method for memory access dynamic mode switching
US20230315646A1 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
CN115390747A (zh) 存储设备及其操作方法
US11216207B2 (en) Apparatus and method for programming user data on the pages and the parity of the page group into flash modules
KR20210018570A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
US11307766B2 (en) Apparatus and method and computer program product for programming flash administration tables
US20230342046A1 (en) Memory controller and memory system including the same
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법
CN116149540A (zh) 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置

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