CN115113799A - 主机命令的执行方法及装置 - Google Patents
主机命令的执行方法及装置 Download PDFInfo
- Publication number
- CN115113799A CN115113799A CN202110289034.7A CN202110289034A CN115113799A CN 115113799 A CN115113799 A CN 115113799A CN 202110289034 A CN202110289034 A CN 202110289034A CN 115113799 A CN115113799 A CN 115113799A
- Authority
- CN
- China
- Prior art keywords
- logical block
- host
- block address
- address number
- command
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种主机命令的执行方法及装置,该方法由闪存控制器中的主机接口实施,包含:侦测是否存在默认数目的连续的主机长写入命令,每个主机长写入命令所指示的第一起始逻辑区块地址编号不对齐于闪存模块中的一个超页面的首个物理页面;如果是,计算偏移量,使得主机写入命令所指示的第二起始逻辑区块地址编号加上偏移量后能够对齐一个超页面的首个物理页面;并且在逻辑区块地址位移表中存储记录,包含第二起始逻辑区块地址编号和偏移量的信息。由此,本发明通过如上所述的记录,可避免后续的主机命令所请求的起始逻辑区块地址编号不对齐。
Description
技术领域
本发明涉及存储装置,特别是,本发明涉及一种主机命令的执行方法及装置。
背景技术
闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,中央处理器(Host)可于地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获得存储于该地址上的数据。相反地,NAND闪存并非随机存取,而是串行存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,中央处理器反而需要写入串行的字节(Bytes)的值到NAND闪存中,用于定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。
一般来说,闪存控制器会以先进先出的顺序来执行主机端发出的命令,例如主机读命令、主机写命令、主机抹写命令等,用于从闪存单元的指定地址读取用户数据,写入用户数据到闪存单元的指定地址,或者抹写闪存单元中的指定物理块。有效率地执行主机端发出的主机命令,一直是个重要的课题。因此,本发明提出一种主机命令的执行方法及装置,用于提升主机命令的执行效能。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明涉及一种主机命令的执行方法,由闪存控制器中的主机接口执行,包含:侦测是否存在默认数目的连续的主机长写入命令,每个主机长写入命令所指示的第一起始逻辑区块地址编号不对齐于闪存模块中的一个超页面的首个物理页面;如果是,计算偏移量,使得主机写入命令所指示的第二起始逻辑区块地址编号加上偏移量后能够对齐一个超页面的首个物理页面;将第二起始逻辑区块地址编号加上偏移量以产生第三起始逻辑区块地址编号;在逻辑区块地址位移表中存储记录,包含第二起始逻辑区块地址编号和偏移量的信息;以及输出关联于主机写入命令的第三起始逻辑区块地址编号至命令队列的指定位置,使得固件转换层依据关联于主机写入命令的第三起始逻辑区块地址编号驱动闪存接口以写入数据到闪存模块。
本发明还涉及一种主机命令的执行装置,包含:闪存接口;随机存取存储器;处理单元;和主机接口。随机存取存储器配置空间给命令队列。主机接口包含逻辑区块地址转换电路,用于侦测是否存在默认数目的连续的主机长写入命令,其中,每个主机长写入命令所指示的第一起始逻辑区块地址编号不对齐于闪存模块中的一个超页面的首个物理页面;如果是,计算偏移量,使得主机写入命令所指示的第二起始逻辑区块地址编号加上偏移量后能够对齐闪存模块中的一个超页面的首个物理页面;将第二起始逻辑区块地址编号加上偏移量以产生第三起始逻辑区块地址编号;在逻辑区块地址位移表中存储记录,包含第二起始逻辑区块地址编号和所述偏移量的信息;以及输出关联于主机写入命令的第三起始逻辑区块地址编号至命令队列的指定位置,使得处理单元在执行固件转换层的程序代码时依据关联于主机写入命令的第三起始逻辑区块地址编号驱动闪存接口以写入数据到闪存模块。
上述实施例的优点之一,通过如上所述的逻辑区块地址转换电路的设置,可减少固件转换层在驱动闪存接口写入数据时花费时间和计算资源来填充并写入不必要的虚假数据至闪存模块。
上述实施例的另一优点,减少固件转换层在驱动闪存接口读取数据时花费时间和计算资源来从闪存模块读取这些不必要的虚假数据。
本发明的其他优点将配合以下的说明和说明书附图进行更详细的解说。
附图说明
此处所说明的说明书附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的电子装置的系统架构图。
图2为依据本发明实施例的闪存模块的示意图。
图3为依据本发明实施例的命令队列的示意图。
图4为依据本发明实施例的超页面的示意图。
图5为当起始逻辑区块地址(Logical Block Address,LBA)编号不对齐一个超页面的首个物理页面时的填充虚假数据的示意图。
图6为依据本发明实施例的为主机写入命令的LBA转换电路的框图。
图7为依据本发明实施例的主机写入命令的处理方法流程图。
图8为依据本发明实施例的为主机读取命令或者主机抹除命令的LBA转换电路的框图。
图9为依据本发明实施例的主机读取命令或者主机抹除命令的处理方法流程图。
附图标记说明
10 电子装置
110 主机端
130 闪存控制器
131 主机接口
132 总线架构
134 处理单元
136 随机存取存储器
138 直接存储器存取控制器
139 闪存接口
150 闪存模块
151 接口
153#0~153#15 NAND闪存单元
CH#0~CH#3 通道
CE#0~CE#3 启动信号
300 命令队列
400#0~1、410#0~1、420#0~1、430#0~1 数据平面
P#0、P#1、P#2、P#n、P#n+1、P#n+2、P#n+3 超页面
60 为主机写入命令的LBA转换电路
610 LBA位移表
632 除法器
634、652、662、664、682、810 比较器
636、656、663、684、698、820、840 输出电路
640 与门
654、696、830 加法器
670 计数器
692 计算器
694 写入电路
S710~S780 方法步骤
S910~S940 方法步骤
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用在本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。
参考图1。电子装置10包含:主机端(Host Side)110、闪存控制器130及闪存模块150,并且闪存控制器130及闪存模块150可合称为装置端(Device Side)。电子装置10可实施于个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品之中。主机端110与闪存控制器130的主机接口(Host Interface)131可以通用串行总线(Universal Serial Bus,USB)、先进技术附件(Advanced TechnologyAttachment,ATA)、串行先进技术附件(Serial Advanced Technology Attachment,SATA)、快速外设组件互联(Peripheral Component Interconnect Express,PCI-E)、通用闪存存储(Universal Flash Storage,UFS)、嵌入式多媒体卡(Embedded Multi-Media Card,eMMC)等通信协议彼此通信。闪存控制器130的闪存接口(Flash Interface)139与闪存模块150可以双倍数据率(Double Data Rate,DDR)通信协议彼此通信,例如,开放NAND闪存接口(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他通信协议。闪存控制器130包含处理单元134,可使用多种方式实施,如使用通用硬件(例如,单处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行软件以和/或固件指令时,提供之后描述的功能。处理单元134通过主机接口131接收主机命令,例如读取命令(Read Command)、写入命令(Write Command)、抹除命令(Erase Command)等,调度并执行这些命令。闪存控制器130还包含随机存取存储器(Random Access Memory,RAM)136,可实施为动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)或上述两者的结合,用于配置空间作为数据缓冲区,存储从主机端110读取并即将写入闪存模块150的用户数据(也可称为主机数据),以及从闪存模块150读取并即将输出给主机端110的用户数据。随机存取存储器136还可存储执行过程中需要的数据,例如,变量、数据表、主机-闪存对照表(Host-to-Flash,H2F Table)、闪存-主机对照表(Flash-to-Host,F2H Table)等。闪存接口139包含NAND闪存控制器(NAND Flash Controller,NFC),提供存取闪存模块150时需要的功能,例如命令串行器(Command Sequencer)、低密度奇偶校验(Low Density Parity Check,LDPC)等。
闪存控制器130中可配置总线架构(Bus Architecture)132,用于让组件之间彼此耦接以传递数据、地址、控制信号等,这些组件包含:主机接口131、处理单元134、RAM 136、直接存储器存取(Direct Memory Access,DMA)控制器138、闪存接口139等。DMA控制器138可依据处理单元134的指令,通过总线架构132在组件间迁移数据,例如,将主机接口131或闪存接口139中特定数据缓存器(Data Buffer)的数据转移到RAM 136中的特定地址,将RAM136中特定地址的数据转移到主机接口131或闪存接口139中的特定数据缓存器等。
闪存模块150提供大量的存储空间,通常是数百个千兆字节(Gigabytes,GB),甚至是多个万亿字节(Terabytes,TB),用于存储大量的用户数据,例如高分辨率图片、影片等。闪存模块150中包含控制电路以及存储器数组,存储器数组中的存储单元可在抹除后配置为单层式单元(Single Level Cells,SLCs)、多层式单元(Multiple Level Cells,MLCs)、三层式单元(Triple Level Cells,TLCs)、四层式单元(Quad-Level Cells,QLCs)或上述的任意组合。处理单元134通过闪存接口139写入用户数据到闪存模块150中的指定地址(目的地址),以及从闪存模块150中的指定地址(来源地址)读取用户数据。闪存接口139使用多个电子信号来协调闪存控制器130与闪存模块150间的数据与命令传递,包含数据线(DataLine)、时钟信号(Clock Signal)与控制信号(Control Signal)。数据线可用于传递命令、地址、读出及写入的数据;控制信号线可用于传递芯片启动(Chip Enable,CE)、地址提取启动(Address Latch Enable,ALE)、命令提取启动(Command Latch Enable,CLE)、写入启动(Write Enable,WE)等控制信号。
参考图2,闪存模块150中的接口151可包含四个输入输出通道(I/Ochannels,以下简称通道)CH#0至CH#3,每一个通道连接四个NAND闪存单元,例如,信道CH#0连接NAND闪存单元153#0、153#4、153#8及153#12,依此类推。每个NAND闪存单元可封装为独立的芯片(die)。闪存接口139可通过接口151发出启动信号CE#0至CE#3中的一个来启动NAND闪存单元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接着以并行的方式从启动的NAND闪存单元读取用户数据,或者写入用户数据至启动的NAND闪存单元。
在一些实施例中,一个逻辑区块地址(Logical Block Address,LBA,由主机端110管理)可对应到512字节(Bytes)的数据。主机端110可通过主机接口131发出一个主机写入命令给处理单元134,请求装置端写入多个LBA(例如,64个、128个、256个等)的数据到闪存模块150。此外,主机端110可通过主机接口131发出一个主机读取命令给处理单元134,请求从装置端读取多个LBA的数据。为了让数据存取有效率,处理单元134可驱动闪存接口139并行地将这些LBA的数据写入到一个输出输入通道中的多个NAND闪存单元,或者并行地从一个输出输入通道中的多个NAND闪存单元读取这些LBA的数据。
在一些实施例中,RAM 136配置空间给命令队列(Command Queue),用于依照命令到达闪存控制器130的时间顺序存储主机端110发送的命令,例如主机读命令、主机写命令、主机抹写命令等。参考图3,命令队列300包含多笔项目(Entry)形成的集合(Collection)。命令队列300中的每一笔项目可存储一个主机命令,例如主机读命令(以“R”代表)、主机写命令(以“W”代表)等。命令队列300的操作基本原则是由结束位置(如指针T所指的位置)新增项目(可称为入列),并且由开始位置(如指针H所指的位置)移除项目(可称为出列)。也就是说,第一个新增至命令队列300的命令,也将会是第一个被移出的,符合先进先出(First-In First-Out,FIFO)的原则。
一个NAND闪存单元可包含多个数据平面(Data Plane),每个数据平面包含多个物理块(Physical Block),每个物理块可包含多个物理页面(Physical Page)。每个物理页面可存储多个(例如16个、32个、64个等)LBA的数据。举例来说,参考图4,每个NAND闪存单元包含2个数据平面。NAND闪存单元153#0包含数据平面400#0和400#1,NAND闪存单元153#1包含数据平面410#0和410#1,依此类推。每个物理页面可存储16个LBA的数据,也就是8KB的数据。NAND闪存单元153#0至153#3中的特定页面可形成一个超页面(Super Page),用于存储128个LBA的数据,也就是64KB的数据。例如,NAND闪存单元153#0至153#3的所有数据平面中的第0个物理块的第0个物理页面形成一个超页面P#0,NAND闪存单元153#0至153#3的所有数据平面中的第0个物理块的第1个物理页面形成一个超页面P#1,依此类推。为了优化闪存模块150的存取效能,处理单元134可驱动闪存接口139将LBA#0到LBA#127的数据写入超页面P#0,将LBA#128到LBA#255的数据写入超页面P#1,依此类推。之后,处理单元134可驱动闪存接口139从超页面P#0读取LBA#0到LBA#127的数据,从超页面P#1读取LBA#128到LBA#255的数据,依此类推。
主机端110可通过主机接口131发出主机写入命令给处理单元134,请求写入特定的数据,例如,文件系统(File System)、根目录(Root Directory)、用户文件(User Files)等。例如,表1显示LBA范围和主机数据之间的示例对照表:
表1
LBA范围 | 主机数据 |
0x0~0x4EFF | 文件系统和根目录 |
0x4F00~0x204EFF | 第一使用者文件(1GB) |
0x204F00~0x404EFF | 第二使用者文件(1GB) |
0x404F00~0x404F07 | 第三使用者文件(4KB) |
0x404F08~0x604F07 | 第四使用者文件(1GB) |
0x604F08~0x804F07 | 第五使用者文件(1GB) |
0x804F08~0xA04F07 | 第六使用者文件(1GB) |
0xA04F08~0xC04F07 | 第七使用者文件(1GB) |
: | : |
文件系统和根目录的LBA范围为“0x0”至“0x4EFF”,第一使用者文件的LBA范围为“0x4F00”至“0x204EFF”,依此类推。
为了优化存储的效能,主机端110发出的每个主机写入命令所请求写入的数据的长度不超过超页面长度。然而,如果一个主机写入命令所指示写入的起始LBA编号不能够对齐于闪存模块150中的一个超页面的首个物理页面时,数据写入的效能会大幅降低。例如,为了写入第四用户文件,主机端110依序发出多个主机写入命令给装置端,分别请求写入LBA范围为“0x404F08”至“0x404F87”、“0x404F88”至“0x405007”、“0x405008”至“0x405087”、“0x405088”至“0x405107”等的数据。在一些实施例中,固件转换层(FirmwareTranslation Layer,FTL)被处理单元134执行时,通过命令队列300接收到这些主机写入命令,接着,为每个主机写入命令将64KB的数据写入2个超页面,并且在适当的位置补上虚假数据(Dummy Data)。参考图5的(a)部分,FTL为LBA范围为“0x404F08”至“0x404F87”的64KB数据产生两个超页面的64KB数据。第一个64KB数据依序包含4KB的虚假数据和LBA范围为“0x404F08”至“0x404F7F”的60KB数据。第二个64KB数据依序包含LBA范围为“0x404F80”至“0x404F87”的4KB数据和60KB的虚假数据。接着,FTL驱动闪存接口139将第一个64KB数据写入闪存模块150中的超页面P#n,并且将第二个64KB数据写入闪存模块150中的超页面P#n+1,其中“n”代表正整数。参考图5的(b)部分,FTL为LBA范围为“0x404F88”至“0x405007”的64KB数据产生两个超页面的64KB数据。第一个64KB数据依序包含4KB的虚假数据和LBA范围为“0x404F88”至“0x404FFF”的60KB数据。第二个64KB数据依序包含LBA范围为“0x405000”至“0x405007”的4KB数据和60KB的虚假数据。接着,FTL驱动闪存接口139将第一个64KB数据写入闪存模块150中的超页面P#n+2,并且将第二个64KB数据写入闪存模块150中的超页面P#n+3,其中“n”代表正整数。从图5的示例可知,FTL需要耗费时间和计算资源来填写虚假数据,并且,闪存模块150还需要耗费时间和存储空间来写入这些无用的虚假数据,造成数据写入的效能大幅下降。此外,当执行关于这些数据的主机读取命令时,闪存模块150需要耗费时间来读取这些无用的虚假数据,并且,FTL需要耗费时间和计算资源来移除虚假数据,造成数据读取的效能大幅下降。
为了解决如上所述的问题,本发明实施例在主机接口131中设置专属的LBA转换电路(LBA Shifting Circuit),用于侦测是否存在默认数目的连续的多个主机长写入命令(Successive Host Long-Write Commands),并且每个主机长写入命令所指示写入的起始LBA编号不对齐于闪存模块150中的一个超页面的首个物理页面。如果是,则计算偏移量(Offset),让此主机写入命令所指示写入的起始LBA编号加上偏移量后能够对齐闪存模块150中的一个超页面的首个物理页面。接着,在LBA位移表中存储一笔记录,包含此主机写入命令所指示写入的起始LBA编号(作为分隔LBA编号),以及偏移量的信息,用于让位于分隔LBA编号之后的起始LBA编号在加上偏移量后能够对齐闪存模块150中的一个超页面的首个物理页面。接着,输出此主机写入命令至命令队列300,其中携带更改后的起始LBA编号和写入长度等参数,用于让FTL依据此主机写入命令驱动闪存接口139以执行相应的写入操作。
此外,专属的LBA转换电路还用于当一个主机写入命令、主机读取命令或者主机抹除命令中携带的起始LBA编号等于分隔LBA编号或者落在分隔LBA编号之后时,将此主机写入命令或者主机读取命令的起始LBA编号加上偏移量。接着,输出此主机写入命令或者主机读取命令至命令队列300,其中携带更改后的起始LBA编号和写入或者读取长度等参数,用于让FTL据以驱动闪存接口139以执行相应的写入或者读取操作。
搭配参考图6所显示的为主机写入命令的LBA转换电路60的实施例,本发明实施例提出一种在主机接口131中执行的主机写入命令的处理方法。详细说明如下:
步骤S710:从主机端110接收主机写入命令。主机写入命令至少携带命令码、起始LBA号码“LBA_start”、长度“LEN”等参数,而这些参数会存储在主机接口131中的寄存器。主机接口131中的寄存器还记录一个LBA位移表610,用于存储分隔LBA编号及偏移量的信息。为了简化说明,本发明实施例描述LBA位移表610存储一笔成对的分隔LBA编号“LBA_sft”及偏移量“Offset”的记录。初始时,LBA位移表610可包含分隔LBA编号为“0xFFFFFF”及偏移量为“0x0”的记录。主机接口131还包含一个寄存器,用于存储前一个主机写入命令的结束LBA编号加1“LBA_pre_end+1”。
步骤S720:判断起始LBA编号“LBA_start”是否大于或等于LBA位移表中记录的分隔LBA编号“LBA_sft”。如果是,流程继续步骤S730的处理;否则,流程继续步骤S740的处理。例如,LBA转换电路60开始运行时,首先以信号“EN”启动比较器652。比较器650比较起始LBA编号与LBA位移表610中的分隔LBA编号。如果起始LBA编号大于或等于分隔LBA编号,则输出信号以启动加法器654;否则,输出信号给与门640。
步骤S730:将起始LBA编号加上LBA位移表610中记录的偏移量“Offset”,并且输出加总的结果到命令队列300中的指定位置。例如,加法器654将LBA位移表610中记录的偏移量“Offset”加上起始LBA编号“LBA_start”,并且驱动输出电路656以输出加总的结果到命令队列300中的指定位置。
步骤S740:判断是否侦测到n个未对齐的连续主机长写入命令,“n”为大于1的正整数。如果是,则流程进行步骤S750的处理;否则,流程进行步骤S780的处理。例如,“n”设为4。
例如,LBA转换电路60开始运行时,以信号“EN”启动除法器632,用于将起始LBA编号除以一个超页面所能包含的LBA的最大数目(如128个,以“0x80”表示)。除法器632还驱动比较器634以及输出计算后的余数“r”给比较器634。比较器634用于判断余数是否等于0,如果是,代表此主机写入命令的起始LBA编号对齐一个超页面的首个物理页面,比较器634输出信号以启动输出电路636。如果余数不等于0,代表此主机写入命令的起始LBA编号没有对齐一个超页面的首个物理页面,比较器634输出信号给与门640。
LBA转换电路60开始运行时,以信号“EN”启动比较器662,用于判断此主机写入命令所请求的长度是否等于或大于一个超页面所能包含的LBA的最大数目,如果等于,代表此主机写入命令是长写入命令,比较器662输出信号给与门640。如果小于,代表此主机写入命令不是长写入命令,比较器662输出信号以启动输出电路663。
当与门640接收到三个输入信号时,代表比较器634侦测到此主机写入命令的起始LBA编号没有对齐一个超页面的首个物理页面,比较器652侦测到此主机写入命令的起始LBA编号小于LBA位移表610中记录的分隔LBA编号,比较器662侦测到此主机写入命令是长写入命令,与门640输出信号以启动比较器664。
比较器664比较起始LBA编号是否等于前一个主机写入命令的结束LBA编号加1“LBA_pre_end+1”,如果是,代表此主机写入命令与前一个主机写入命令形成连续写入操作,比较器664输出信号以将计数器670累加1。如果起始LBA编号不等于前一个主机写入命令的结束LBA编号加1,代表此主机写入命令与前一个主机写入命令不形成连续写入操作,比较器664输出信号以将计数器670重设为0。计数器670输出的数值代表连续主机写入命令的数目。
计数器670被改变后输出计数值“CNT”并且驱动比较器682。比较器682比较计数值是否大于或等于默认数值(如“0x4”),如果是,代表侦测到默认数目的连续主机长写入命令,比较器682输出信号以驱动计算器692、写入电路694和加法器696。如果计数值小于默认数值,比较器682输出信号以驱动输出电路684。
步骤S750:计算能够让起始LBA编号对齐超页面的首个物理页面的偏移量。例如,当起始LBA标号的8个最低有效位(Least Significant Bits)大于“0x80”时,计算器692将“0x100”减去起始LBA标号以获取偏移量“Offset”。当起始LBA标号的8个最低有效位小于“0x80”时,计算器692将“0x80”减去起始LBA标号以获取偏移量“Offset”。
步骤S760:更新LBA位移表610中的内容,用于存储此起始LBA编号(作为分隔LBA编号)和偏移量的信息。例如,写入电路694将此起始LBA编号“LBA_start”覆写LBA位移表610中原来的分隔LBA编号“LBA_sft”,并且将计算出的偏移量覆写LBA位移表610中原来的偏移量。在这里需要注意的是,更新后的LBA位移表610会在适当时间点写入到闪存模块150当做备份,以防止瞬间断电(Sudden Power Off,SPO)。
步骤S770:将起始LBA编号加上计算出的偏移量“Offset”,并且输出加总的结果到命令队列300中的指定位置。例如,加法器696将计算器692输出的偏移量“Offset”加上起始LBA编号“LBA_start”,并且驱动输出电路698以输出加总的结果到命令队列300中的指定位置。需要注意的是,加总的结果能够被一个超页面的长度整除。
步骤S780:将起始LBA编号输出到命令队列300中的指定位置。例如,输出电路636、663或684被驱动时输出起始LBA编号“LBA_start”到命令队列300中的指定位置。
虽然图6的实施例显示的输出电路636、663、684为不同的组件,但是所属技术领域人员可将输出电路636、663、684中的任意两个或全部实施为相同的组件,本发明并不因此受限。虽然图6的实施例显示的成对的加法器654和输出电路656,以及加法器696和输出电路698为不同的成对组件,但是所属技术领域人员可将成对的加法器654和输出电路656,以及加法器696和输出电路698实施为同一对组件,本发明并不因此受限。
接着表1所示的主机数据,假设主机端110发出如表2所示的一系列主机写入命令,用于请求装置端写入第四用户文件的数据:
表2
由于LBA转换电路60在处理主机写入命令“W#3”时侦测到4个未对齐的连续主机长写入命令(步骤S740中“是”的路径),计算出偏移量为“0x78”(步骤S750);更新LBA位移表610中的内容,用于存储分隔LBA编号“0x405088”和偏移量“0x78”的信息(步骤S760);并且输出更新后的起始LBA编号“0x405100”到命令队列300中的指定位置。
接着,由于从主机写入命令“W#4”以后的主机写入命令的起始LBA编号都大于LBA位移表610中记录的分隔LBA编号“0x405088”(步骤S720中“是”的路径),LBA转换电路60将每个起始LBA编号加上LBA位移表610中记录的偏移量“0x78”,并且输出加总的结果到命令队列300中的指定位置(步骤S730)。表3显示经过LBA转换电路60处理后的起始LBA编号的变化:
表3
搭配参考图8所显示的为主机读取命令或者主机抹除命令的LBA转换电路80的实施例,本发明实施例提出一种在主机接口131中执行的主机读取命令或者主机抹除命令的处理方法。详细说明如下:
步骤S910:从主机端110接收主机读取或者抹除命令。主机读取或者抹除命令至少携带命令码、起始LBA号码“LBA_start”、长度等参数,而这些参数会存储在主机接口131中的寄存器。
步骤S920:判断起始LBA编号“LBA_start”是否大于或等于LBA位移表610中记录的分隔LBA编号“LBA_sft”。如果是,流程继续步骤S930的处理;否则,流程继续步骤S940的处理。例如,LBA转换电路80开始运行时,首先以信号“EN”启动比较器810。比较器810比较起始LBA编号与LBA位移表610中的分隔LBA编号。如果起始LBA编号大于或等于分隔LBA编号,则输出信号给加法器830;否则,输出信号以启动输出电路820。
步骤S930:将起始LBA编号加上LBA位移表610中记录的偏移量“Offset”,并且输出加总的结果到命令队列300中的指定位置。例如,加法器830将LBA位移表610中记录的偏移量“Offset”加上起始LBA编号“LBA_start”,并且驱动输出电路840以输出加总的结果到命令队列300中的指定位置。
步骤S940:将起始LBA编号输出到命令队列300中的指定位置。例如,输出电路820被驱动时输出起始LBA编号“LBA_start”到命令队列300中的指定位置。
接着表1所示的主机数据,假设主机端110发出如表4所示的一系列主机读取命令,用于请求装置端读取第三及第四用户文件的数据:
表4
由于LBA转换电路80在处理主机读取命令“R#0”到“R#3”时侦测到其起始LBA编号小于LBA位移表610中记录的分隔LBA编号“0x405088”(步骤S920中“否”的路径),直接将起始LBA编号输出到命令队列300中的指定位置(步骤S940)。
接着,由于从主机读取命令“R#4”以后的主机读取命令的起始LBA编号都大于LBA位移表610中记录的分隔LBA编号“0x405088”(步骤S920中“是”的路径),LBA转换电路80将每个起始LBA编号加上LBA位移表610中记录的偏移量“0x78”,并且输出加总的结果到命令队列300中的指定位置(步骤S930)。表5显示经过LBA转换电路80处理后的起始LBA编号的变化:
表5
虽然图8的实施例显示LBA转换电路80为独立于LBA转换电路60的装置,但是所属技术领域人员可将图8的组件810到840整合到图6的电路中,本发明并不因此局限。例如,将图6中的每个组件都受到模式信号(Mode Signal)的控制,模式信号指示图6中的每个组件工作在数据写入模式和非数据写入模式(包含数据读取、数据抹除模式等)。当模式信号指示工作在数据写入模式时,图6中的每个组件都能够被启动来完成如上所述的关联于主机写入命令的操作。当模式信号指示工作在非数据写入模式时,只有图6中部分的相应组件(例如组件610、652、654、656、636等)来完成如上所述的关联于主机读取命令或者主机抹除命令的操作。
虽然实施例描述图6和图8所示中的输出电路用于输出原始的或者修改后的起始LBA编号至命令队列300中的指定位置,但是所属技术领域人员也可让每个输出电路一并输出命令编号、命令类型、操作码、长度等信息至命令队列300中的指定位置,本发明并不因此受限。
通过如上所述的LBA转换电路60和80的设置,避免了如图5中所示的缺点,也就是减少固件转换层在驱动闪存接口139写入数据时花费时间和计算资源来填充并写入不必要的虚假数据至闪存模块150。此外,也减少固件转换层在驱动闪存接口139读取数据时花费时间和计算资源来从闪存模块150读取这些不必要的虚假数据。
虽然图1、图2、图6、图8中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图7、图9的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
以上所述仅为本发明较佳实施例,然而其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (12)
1.一种主机命令的执行方法,由闪存控制器中的主机接口实施,其中,所述主机接口耦接主机端,其特征在于,所述主机命令的执行方法包括:
侦测是否存在默认数目的连续的主机长写入命令,其中每个所述主机长写入命令所指示的第一起始逻辑区块地址编号不对齐于闪存模块中的一个超页面的首个物理页面;
当侦测到存在所述默认数目的所述连续的主机长写入命令时,计算偏移量,使得主机写入命令所指示的第二起始逻辑区块地址编号加上所述偏移量后能够对齐所述闪存模块中的一个超页面的首个物理页面;
将所述第二起始逻辑区块地址编号加上所述偏移量以产生第三起始逻辑区块地址编号;
在逻辑区块地址位移表中存储记录,包含所述第二起始逻辑区块地址编号和所述偏移量的信息,其中所述第二起始逻辑区块地址编号代表分隔起始逻辑区块地址编号;以及
输出关联于所述主机写入命令的所述第三起始逻辑区块地址编号至命令队列的指定位置,使得固件转换层依据关联于所述主机写入命令的所述第三起始逻辑区块地址编号驱动闪存接口以写入数据到所述闪存模块。
2.如权利要求1所述的主机命令的执行方法,其特征在于,所述第三起始逻辑区块地址编号能够被一个超页面的长度整除。
3.如权利要求1所述的主机命令的执行方法,其特征在于,包括:
当主机命令中携带的第四起始逻辑区块地址编号等于所述分隔起始逻辑区块地址编号或者落在所述分隔起始逻辑区块地址编号之后时,将所述第四起始逻辑区块地址编号加上所述偏移量以产生第五起始逻辑区块地址编号;以及
输出关联于所述主机命令的所述第五起始逻辑区块地址编号至所述命令队列的指定位置,使得所述固件转换层依据关联于所述主机命令的所述第五起始逻辑区块地址编号驱动所述闪存接口以完成相应操作。
4.如权利要求3所述的主机命令的执行方法,其特征在于,所述第五起始逻辑区块地址编号能够被一个超页面的长度整除。
5.一种主机命令的执行装置,其特征在于,包括:
闪存接口,耦接闪存模块;
处理单元,耦接所述随机存取存储器及所述闪存接口;以及
主机接口,耦接主机端和所述随机存取存储器,包括:
第一逻辑区块地址转换电路,用于侦测是否存在默认数目的连续的主机长写入命令,其中,每个所述主机长写入命令所指示的第一起始逻辑区块地址编号不对齐于所述闪存模块中的一个超页面的首个物理页面;当侦测到存在所述默认数目的所述连续的主机长写入命令时,计算偏移量,使得主机写入命令所指示的第二起始逻辑区块地址编号加上所述偏移量后能够对齐所述闪存模块中的一个超页面的首个物理页面;将所述第二起始逻辑区块地址编号加上所述偏移量以产生第三起始逻辑区块地址编号;在逻辑区块地址位移表中存储记录,包含所述第二起始逻辑区块地址编号和所述偏移量的信息,其中所述第二起始逻辑区块地址编号代表分隔起始逻辑区块地址编号;以及输出关联于所述主机写入命令的所述第三起始逻辑区块地址编号至所述命令队列的指定位置,使得所述处理单元在执行固件转换层的程序代码时依据关联于所述主机写入命令的所述第三起始逻辑区块地址编号驱动所述闪存接口以写入数据到所述闪存模块。
6.如权利要求5所述的主机命令的执行装置,其特征在于,所述第一逻辑区块地址转换电路包括:
计数器;
与门;
除法器,用于将所述第二起始逻辑区块地址编号除以一个超页面所能包含的逻辑区块地址的最大数目,并且输出计算后的余数;
第一比较器,耦接所述除法器,用于接收所述余数;并且当所述余数等于0时,输出第一信号给所述与门;
第二比较器,用于当所述主机写入命令所请求的长度等于或大于一个超页面所能包含的逻辑区块地址的最大数目时,输出第二信号给所述与门;
第三比较器,用于从所述与门接收到相应于所述第一信号和所述第二信号的第三信号时,判断所述第二起始逻辑区块地址编号是否等于前一个主机写入命令所请求的结束逻辑区块地址编号加1,如果是,将所述计数器累加1;
第四比较器,耦接所述计数器,用于当所述计数器的计数值大于或等于默认数值时,启动计算器、加法器和写入电路;
所述计算器,耦接所述第四比较器,用于计算所述偏移量;
所述加法器,耦接所述第四比较器,用于将所述第二起始逻辑区块地址编号加上所述偏移量以产生所述第三起始逻辑区块地址编号;
所述写入电路,用于在所述逻辑区块地址位移表中存储所述记录;以及
输出电路,耦接所述加法器,用于将所述第三起始逻辑区块地址编号至所述命令队列的指定位置。
7.如权利要求5所述的主机命令的执行装置,其特征在于,所述逻辑区块地址位移表被存储到所述闪存模块当做备份。
8.如权利要求5所述的主机命令的执行装置,其特征在于,所述第三起始逻辑区块地址编号能够被一个超页面的长度整除。
9.如权利要求5所述的主机命令的执行装置,其特征在于,所述主机接口包括:
第二逻辑区块地址转换电路,用于当主机命令中携带的第四起始逻辑区块地址编号等于所述分隔起始逻辑区块地址编号或者落在所述分隔起始逻辑区块地址编号之后时,将所述第四起始逻辑区块地址编号加上所述偏移量以产生第五起始逻辑区块地址编号;以及输出关联于所述主机命令的所述第五起始逻辑区块地址编号至所述命令队列的指定位置,使得所述处理单元在执行所述固件转换层的程序代码时依据关联于所述主机命令的所述第五起始逻辑区块地址编号驱动所述闪存接口以完成相应操作。
10.如权利要求9所述的主机命令的执行装置,其特征在于,所述第二逻辑区块地址转换电路包括:
比较器,用于当所述第四起始逻辑区块地址编号等于所述分隔起始逻辑区块地址编号或者落在所述分隔起始逻辑区块地址编号之后时,驱动加法器;
所述加法器,耦接所述比较器,用于将所述第四起始逻辑区块地址编号加上所述偏移量以产生所述第五起始逻辑区块地址编号;以及
输出电路,耦接所述加法器,用于输出关联于所述主机命令的所述第五起始逻辑区块地址编号至所述命令队列的指定位置。
11.如权利要求9所述的主机命令的执行装置,其特征在于,所述第五起始逻辑区块地址编号能够被一个超页面的长度整除。
12.如权利要求9所述的主机命令的执行装置,其特征在于,所述主机端发出所述主机命令请求写入或读取从所述第四起始逻辑地址编号开始的数据,以及所述数据的长度等于一个超页面的长度。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110289034.7A CN115113799A (zh) | 2021-03-18 | 2021-03-18 | 主机命令的执行方法及装置 |
US17/380,402 US11537328B2 (en) | 2021-03-18 | 2021-07-20 | Method and apparatus for executing host commands |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110289034.7A CN115113799A (zh) | 2021-03-18 | 2021-03-18 | 主机命令的执行方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115113799A true CN115113799A (zh) | 2022-09-27 |
Family
ID=83284734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110289034.7A Pending CN115113799A (zh) | 2021-03-18 | 2021-03-18 | 主机命令的执行方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11537328B2 (zh) |
CN (1) | CN115113799A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483280A (zh) * | 2023-04-26 | 2023-07-25 | 珠海妙存科技有限公司 | 固件存储方法、固件查找方法、设备及介质 |
CN116628670A (zh) * | 2023-05-18 | 2023-08-22 | 荣耀终端有限公司 | 权限设置方法和电子设备 |
CN117420966A (zh) * | 2023-12-19 | 2024-01-19 | 深圳大普微电子股份有限公司 | 物理地址的编址方法及闪存设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11049349B2 (en) | 2004-06-01 | 2021-06-29 | Daniel William Onischuk | Computerized voting system |
US9703491B2 (en) * | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US9971685B2 (en) | 2016-04-01 | 2018-05-15 | Intel Corporation | Wear leveling based on a swapping operation between sets of physical block addresses of a non-volatile memory |
US10430330B2 (en) * | 2017-10-18 | 2019-10-01 | Western Digital Technologies, Inc. | Handling of unaligned sequential writes |
CN110399235B (zh) | 2019-07-16 | 2020-07-28 | 阿里巴巴集团控股有限公司 | Tee系统中的多线程数据传输方法和装置 |
CN110442463B (zh) | 2019-07-16 | 2020-07-07 | 阿里巴巴集团控股有限公司 | Tee系统中的数据传输方法和装置 |
-
2021
- 2021-03-18 CN CN202110289034.7A patent/CN115113799A/zh active Pending
- 2021-07-20 US US17/380,402 patent/US11537328B2/en active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483280A (zh) * | 2023-04-26 | 2023-07-25 | 珠海妙存科技有限公司 | 固件存储方法、固件查找方法、设备及介质 |
CN116483280B (zh) * | 2023-04-26 | 2023-11-28 | 珠海妙存科技有限公司 | 固件存储方法、固件查找方法、设备及介质 |
CN116628670A (zh) * | 2023-05-18 | 2023-08-22 | 荣耀终端有限公司 | 权限设置方法和电子设备 |
CN116628670B (zh) * | 2023-05-18 | 2024-03-22 | 荣耀终端有限公司 | 权限设置方法和电子设备 |
CN117420966A (zh) * | 2023-12-19 | 2024-01-19 | 深圳大普微电子股份有限公司 | 物理地址的编址方法及闪存设备 |
CN117420966B (zh) * | 2023-12-19 | 2024-05-28 | 深圳大普微电子股份有限公司 | 物理地址的编址方法及闪存设备 |
Also Published As
Publication number | Publication date |
---|---|
US11537328B2 (en) | 2022-12-27 |
US20220300203A1 (en) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
KR102691851B1 (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 | |
CN115113799A (zh) | 主机命令的执行方法及装置 | |
KR20100100394A (ko) | 반도체 디스크 장치 그리고 그것의 데이터 기록 및 읽기 방법 | |
KR102474035B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN112115067A (zh) | 闪存物理资源集合管理装置及方法及计算机可读取存储介质 | |
CN111796759A (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN113448487B (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
KR20210018570A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
TWI749490B (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
TWI774277B (zh) | 主機命令的執行方法及裝置 | |
CN114328297A (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
CN113778317A (zh) | 计算机可读取存储介质、调度主机命令的方法及装置 | |
CN114625307A (zh) | 计算机可读存储介质、闪存芯片的数据读取方法及装置 | |
TWI835027B (zh) | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 | |
CN113495850A (zh) | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 | |
TWI758745B (zh) | 排程主機命令執行的電腦程式產品及方法及裝置 | |
TWI822516B (zh) | 執行主機寫入命令的方法及電腦程式產品及裝置 | |
TWI822517B (zh) | 執行主機寫入命令的方法及電腦程式產品及裝置 | |
TWI810876B (zh) | 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置 | |
TWI805505B (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 | |
US11294587B2 (en) | Data storage device capable of maintaining continuity of logical addresses mapped to consecutive physical addresses, electronic device including the same, and method of operating the data storage device | |
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 |