CN113946278A - 主机效能加速模式的数据读取方法及装置 - Google Patents
主机效能加速模式的数据读取方法及装置 Download PDFInfo
- Publication number
- CN113946278A CN113946278A CN202011086727.8A CN202011086727A CN113946278A CN 113946278 A CN113946278 A CN 113946278A CN 202011086727 A CN202011086727 A CN 202011086727A CN 113946278 A CN113946278 A CN 113946278A
- Authority
- CN
- China
- Prior art keywords
- host
- logical
- command
- flash memory
- 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
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/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
Abstract
本发明涉及一种主机效能加速模式的数据读取方法及装置,其中该方法由主机端执行,包含:发出切换命令给闪存控制器,用于请求闪存控制器启动主机效能加速功能和逻辑物理对照表的获取功能;发出写入多块命令给闪存控制器,用于写入数据块到闪存控制器,数据块中包含局部编号和子区编号;发出读取多块命令给闪存控制器,用于从闪存控制器获取相应于局部编号和子区编号的多个逻辑物理对照记录;以及存储逻辑物理对照记录至系统存储器中的主机效能加速缓冲区。本发明通过主机效能加速缓冲区的设置能够让主机端发送带有逻辑物理对照记录的读取命令给闪存控制器,用于减少闪存控制器花费时间和运算资源进行逻辑物理对照转换。
Description
技术领域
本发明涉及存储装置,尤指一种主机效能加速模式的数据读取方法及装置。
背景技术
闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,中央处理器(Host)可于地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获得存储于该地址上的数据。相反地,NAND闪存并非随机存取,而是串行存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,中央处理器反而需要写入串行的字节(Bytes)的值到NAND闪存中,用于定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。
为了提升闪存模块的数据写入及读取效能,装置端会以多个信道并行地执行数据写入及读取。为了达成并行处理的目的,一段连续性的数据会分散地存储到多个通道所连接的闪存单元,并使用逻辑物理对照表(Logical-to-physical,L2P Mapping Table)记录用户数据的逻辑地址(由主机端管理)与物理地址(由闪存控制器管理)间的对应关系。然而,在嵌入式多媒体卡(embedded Multi-Media Controller,e·MMC)的存储装置中,随着装置容量的快速增加,使得逻辑物理对照表的长度也倍数成长,造成装置端执行的传统管理方法难以负担。就算使用阶层式子区来管理逻辑物理对照表能够提升逻辑物理对照转换的效能,但是花费在逻辑物理对照转换的时间还是大幅高于从闪存模块的闪存数组传输数据到闪存控制器的数据寄存器的时间(tR)。因此,本发明提出一种主机效能加速模式的数据读取方法及装置,用于提升嵌入式多媒体卡的存储装置的数据读取效能。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺陷,实为有待解决的问题。
本发明涉及一种主机效能加速模式的数据读取方法,由主机端执行,包含:发出切换命令给闪存控制器,用于请求闪存控制器启动主机效能加速功能和逻辑物理对照表的获取功能;发出写入多块命令给闪存控制器,用于写入数据块到闪存控制器,数据块中包含局部编号和子区编号;发出读取多块命令给闪存控制器,用于从闪存控制器获取相应于局部编号和子区编号的多个逻辑物理对照记录;以及存储逻辑物理对照记录至系统存储器中的主机效能加速缓冲区。
本发明还涉及一种主机效能加速模式的数据读取方法,由闪存控制器执行,包含:从主机端接收切换命令,用于请求闪存控制器启动主机效能加速功能和逻辑物理对照表的获取功能;根据切换命令而进入默认状态;在进入默认状态期间从主机端收到写入多块命令;根据写入多块命令从主机端收到的数据块中获取局部编号和子区编号,以及从闪存装置读取相应于局部编号和子区编号的多个逻辑物理对照记录;在进入默认状态期间从主机端收到读取多块命令;以及根据读取多块命令传送逻辑物理对照记录给主机端。
本发明另还涉及一种主机效能加速模式的数据读取的装置,包含:主机接口;闪存接口;和处理单元。处理单元通过主机接口从主机端接收切换命令,用于请求装置启动主机效能加速功能和逻辑物理对照表的获取功能;根据切换命令而进入默认状态;在进入默认状态期间通过主机接口从主机端收到写入多块命令;根据写入多块命令从主机端通过主机接口收到的数据块中获取局部编号和子区编号,以及通过闪存接口从闪存装置读取相应于局部编号和子区编号的多个逻辑物理对照记录;在进入默认状态期间通过主机接口从主机端收到读取多块命令;以及根据读取多块命令通过主机接口传送逻辑物理对照记录给主机端。
主机端和闪存控制器间使用嵌入式多媒体卡通信协议彼此通信,并且每个逻辑物理对照记录用于存储逻辑地址的数据实际存储于的物理地址的信息。
上述实施例的优点之一,通过如上所述主机效能加速缓冲区的设置能够让主机端发送带有逻辑物理对照记录的读取命令给闪存控制器,用于减少闪存控制器花费时间和运算资源进行逻辑物理对照转换。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的电子装置的系统架构图。
图2为依据本发明实施例的闪存装置的示意图。
图3为依据本发明实施例的高阶对照表和逻辑物理对照子表之间的关联示意图。
图4为依据本发明实施例的逻辑物理对照子表和物理页面之间的关联示意图。
图5为依据本发明实施例的主机效能加速(Host Performance Acceleration,HPA)缓存的建立与运用示意图。
图6为依据本发明实施例的HPA缓冲区初始化的操作顺序图。
图7和图8为依据本发明实施例的HPA读取的操作顺序图。
图9为依据本发明实施例的HPA缓冲区更新的操作顺序图。
图10为依据本发明实施例的切换命令的执行方法流程图。
图11为依据本发明实施例的写入多块命令的执行方法流程图。
其中,附图中符号的简单说明如下:
10:电子装置;110:主机端;130:闪存控制器;131:主机接口;132:总线;134:处理单元;135:只读存储器;136:随机存取存储器;137:寄存器;139:闪存接口;150:闪存装置;151:接口;153#0~153#15:NAND闪存单元;CH#0~CH#3:通道;CE#0~CE#3:启动信号;310:高阶对照表;330#0~330#15:L2P对照子表;400:L2P对照记录;410:逻辑区块地址的信息;430:物理区块地址的信息;430-0:逻辑单元号和物理块编号;430-1:物理页面编号;440:物理块;450:物理页面;450#2:物理区段;500:HPA缓存;610~655、711~755、835~839、915、931、955:操作;S1010~S1060、S1110~S1147:方法步骤。
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
参考图1。电子装置10包含主机装置(又可称主机端)110、闪存控制器130及闪存装置150,并且闪存控制器130及闪存装置150可合称为装置端(Device Side)。电子装置10可实施于个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品之中。主机装置110与闪存控制器130的主机接口(Host Interface)131可以嵌入式多媒体卡(embedded Multi-Media Controller,e·MMC/eMMC)通信协议彼此通信。闪存控制器130的闪存接口139与闪存装置150可以双倍数据率(Double Data Rate,DDR)通信协议彼此通信,例如,开放NAND闪存接口(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他通信协议。闪存控制器130包含处理单元134,可使用多种方式实施,如使用通用硬件(例如,微控制单元、中央处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行软件以及/或固件指令时,提供之后描述的功能。处理单元134通过主机接口131接收eMMC命令,并执行这些命令。闪存控制器130包含随机存取存储器(Random Access Memory,RAM)136,可实施为动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random AccessMemory,SRAM)或上述两者的结合,用于配置空间作为数据缓冲区。随机存取存储器136另可存储执行过程中需要的数据,例如,变量、数据表等。闪存控制器130包含只读存储器(ReadOnly Memory,ROM)135,用于存储开机时需要执行的程序代码。闪存接口139包含NAND闪存控制器(NAND Flash Controller,NFC),提供存取闪存装置150时需要的功能,例如命令串行器(Command Sequencer)、低密度奇偶校验(Low Density Parity Check,LDPC)等。
闪存控制器130包含寄存器137,用于存储各式各样的参数值。在eMMC规范(例如发表在2014年七月的eMMC电器标准5.1)中,寄存器137包含32比特的操作状态寄存器(Operation Condition Register,OCR)、128比特的装置标识寄存器(DeviceIDentification,CID Register)、128比特的装置专用数据寄存器(Device-SpecificData,CSD Register)、512字节的扩充装置专用数据寄存器(Extended CSD Register,可简称Ext_CSD寄存器)等。Ext_CSD寄存器定义装置属性(Device Properties)和选定模式(Selected Modes),其中的最高有效320字节是属性段(Properties Segment),用于定义装置的能力,并且不能够被主机端110修改,另外的较低有效192字节是模式段(ModesSegment),定义装置目前正运行的设置。主机端110可通过切换命令(SWITCH command,CMD6)改变这些模式。eMMC规范在Ext_CSD寄存器中保留了若干局部可以让装置端的制造商自由运用,用于完成主机效能加速模式(Host Performance Acceleration,HPA Mode)的功能。
闪存控制器130中可配置总线架构(Bus Architecture)132,用于让组件之间彼此耦接以传递数据、地址、控制信号等,这些组件包含主机接口131、处理单元134、ROM 135、RAM 136、寄存器137、闪存接口139等。在一些实施例中,主机接口131、处理单元134、ROM135、RAM 136、寄存器137与闪存接口139可通过单一总线彼此耦接。在另一些实施例中,闪存控制器130中可配置高速总线,用于让处理单元134、ROM 135、RAM136与寄存器137彼此耦接,并且配置低速总线,用于让处理单元134、主机接口131与闪存接口139彼此耦接。总线包含并行的物理线,连接闪存控制器130中两个以上的组件。
闪存装置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中的指定地址(来源地址)读取用户数据和L2P对照表中的指定部分。闪存接口139使用多个电子信号来协调闪存控制器130与闪存装置150间的数据与命令传递,包含数据线(Data Line)、时钟信号(Clock Signal)与控制信号(Control Signal)。数据线可用于传递命令、地址、读出及写入的数据;控制信号线可用于传递芯片启动(ChipEnable,CE)、地址提取启动(Address Latch Enable,ALE)、命令提取启动(Command LatchEnable,CLE)、写入启动(Write Enable,WE)等控制信号。
参考图2,闪存装置150中的接口151可包含四个输入输出通道(I/O channels,以下简称通道)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 Addresses,LBAs)的数据被分散地存储到多个通道所连接的NAND闪存单元,闪存控制器130使用逻辑物理对照表(Logical-block-address to Physical-block-address,L2P Mapping Table)记录用户数据的逻辑地址(由主机装置110管理)与物理地址(由闪存控制器130管理)间的对应关系。L2P对照表包含多笔记录,依逻辑地址的顺序存储每个逻辑地址的用户数据实际存储在哪个物理地址的信息。一段连续LBA的数据可切分为多个局部(Regions),以局部编号标识,而每个局部可切分出多个子区(Sub-regions),以子区编号标识。例如,使用LBA寻址的128GB的数据可分为16个8GB的局部,而每个8GB的局部可还分出256个32MB的子区。在eMMC规范中,每个LBA关联于(或指向)512字节(Bytes)的数据。然而,由于RAM 136无法提供足够空间存储整个L2P对照表以供处理单元134将来于数据读取操作时快速查找,整个L2P对照表可依据局部和子区的划分来切出多个子表,并分别存储在非易失性的闪存装置150的不同物理地址,使得将来于数据读取操作时只要从闪存装置150读取相应的子表至RAM136即可。参考图3,整个L2P对照表可切成子表330#0~330#15。处理单元134还维护高阶对照表(High-level Mapping Table)310,包含多个记录,依逻辑地址的顺序存储每个LBA区段关联的子表的物理地址信息。例如,第0个至第4095个LBA的关联子表330#0存储在特定逻辑单元号(Logical Unit Number,LUN)的特定物理块中(字母“Z”可代表LUN和物理块的编号)的第0个物理页面,第4096个至第8191个LBA的关联子表330#1存储在特定LUN的特定物理块中的第1个物理页面,依此类推。虽然图3中只包含16个子表,但是所属技术领域的技术人员可根据闪存装置150的容量,设置更多的子表,本发明并不因此局限。
为了配合闪存装置150的物理配置,闪存控制器130可让一个物理区块地址(Physical Block Address,PBA)关联于(或指向)4KB、8KB或16KB的数据,此长度大于eMMC规范的一个LBA所关联的数据的长度(512B)。因为LBA与PBA所关联的数据长度不一致,每个子表中的每个记录包含逻辑地址和物理地址的信息,用于精确指出闪存装置150中的地址。参考图4,子表330#0依序存储从LBA#0至LBA#4095的寻址信息(Addressing Information)。寻址信息可以八个字节表示:四个字节代表LBA;其他四个字节代表PBA。举例来说,子表330#0中关联于LBA#2的记录400存储LBA410和PBA430的信息。PBA430中的两个字节430-0记录逻辑单元号和物理块编号(Physical Block Number);其他两个字节430-1记录物理页面编号(Physical Page Number)。所以,相应于LBA#2的物理地址信息400可指向物理块440的物理页面450中的特定区段(Sector)450#2。
为了解决闪存控制器130花费过多时间在逻辑物理对照转换上的问题,本发明实施例在现行eMMC规范的主机装置通信架构(Host-Device Communications Architecture)的基础上加上HPA的新功能。HPA让原先由闪存控制器130实施的需要耗费大量时间的逻辑物理对照转换的工作负荷,转换到主机端110,可提升短长度数据的随机读取效能,短长度数据可指长度从512B到32KB的数据。参考图5,主机端110在其系统存储器(System Memory)中配置空间作为HPA缓存500,用于暂存由装置端维护与管理的L2P对照表的信息。HPA缓存500存储多个从装置端接收的L2P对照记录(L2P Mapping Records),每个L2P对照记录记录相应于一个LBA的寻址信息。接着,主机端110可发出携带L2P对照记录的命令给装置端,用于取得指定LBA的用户数据。闪存控制器130可直接根据L2P对照记录中的信息来驱动闪存接口139从闪存装置150读取指定LBA的用户数据,而不需要像以前一样得花费时间和运算资源从闪存装置150读取相应子表并进行逻辑物理地址转换后才能从闪存装置150读取指定LBA的用户数据。针对HPA缓存500的建立和运用,可分为三个阶段:
阶段I(HPA初始化):主机端110读取闪存控制器130中寄存器137的值,检查eMMC存储装置(或称装置端,至少包含闪存控制器130和闪存装置150)是否支持HPA功能。如果是,主机端110在系统存储器中配置空间,作为HPA L2P对照表区。
阶段II(HPA对照表管理):如果eMMC存储装置支持HPA功能,主机端110发出一系列命令,用于向闪存控制器130请求读取L2P对照表。为响应这一系列命令,闪存控制器130传送全部或一部分的L2P对照表给主机端110,让主机端110把获得的对照表存储在HPA L2P对照表区(这可称为镜像L2P对照表,Mirrored L2P Mapping Table)。当对应于镜像L2P对照表的实际L2P对照表因数据写入、数据修剪(Data Trimming)、垃圾回收(GarbageCollection,GC)、磨耗平均(Wear Leveling)等程序而改变后,闪存控制器130通知主机端110,主机端110的系统存储器中的全部或者相应部分的L2P对照表需要更新。
阶段III(HPA读取):主机端110发出带有L2P对照记录的一系列命令给eMMC存储装置以请求获取特定LBA的数据(特别是小块长度的不连续数据,如512B到32KB的不连续数据),其中的L2P对照记录是从镜像L2P对照表中搜索而得。接着,闪存控制器130依据L2P对照记录的内容从闪存装置150的PBA读取指定LBA的数据,并且回复读取的数据给主机端110,使得eMMC存储装置能够节省为进行逻辑物理对照转换而读取并搜索L2P对照表的时间。
在eMMC规范中,Ext_CSD[160](也称为PARTITIONING_SUPPORT[160])定义支持区段特性(Supported Partition Features),其中的Bits[7:3]保留给eMMC存储装置的制造商自由使用。Ext_CSD寄存器的第160个字节的第3个比特(Ext_CSD[160],Bit[3])可用于定义eMMC存储装置是否支持HPA功能,若支持则设为“1”,若关闭则设为“0”。在eMMC存储装置初始化的过程中,处理单元134可将寄存器137中的Ext_CSD[160],Bit[3]设为“1”。虽然本发明实施例描述了以Ext_CSD[160],Bit[3]定义eMMC存储装置是否支持HPA功能的技术方案,所属技术领域人员可改变设计来使用Ext_CSD寄存器中的其他保留比特,例如Ext_CSD[511:506]、Ext_CSD[485:309]、Ext_CSD[306]、Ext_CSD[233]、Ext_CSD[227]、Ext_CSD[204]、Ext_CSD[195]、Ext_CSD[193]、Ext_CSD[190]、Ext_CSD[188]、Ext_CSD[186]、Ext_CSD[184]、Ext_CSD[182]、Ext_CSD[180]、Ext_CSD[176]、Ext_CSD[172]、Ext_CSD[170]、Ext_CSD[135]、Ext_CSD[129:128]、Ext_CSD[127:64]、Ext_CSD[28:27]、Ext_CSD[14:0]等,本发明并不因此局限。
此外,闪存控制器130可使用成对的Ext_CSD寄存器来记录主机端110缓存的L2P对照表中需要更新的指定局部和子区的信息。例如,Ext_CSD寄存器的第64个字节(Ext_CSD[64])和第66个字节(Ext_CSD[66])为一对,用于分别指出第0个局部(Region#0)和第160个子区(SubRegion#160)。Ext_CSD寄存器的第65个字节(Ext_CSD[65])和第67个字节(Ext_CSD[67])为另一对,用于分别指出第0个局部(Region#0)和第18个子区(SubRegion#18)。
在eMMC规范中,切换命令(CMD6)是由主机端110发出,用于切换选定装置的操作模式或者修改Ext_CSD寄存器的值,而参数的第26到31比特(Bits[31:26])是保留比特。主机端110可设定CMD6的第26个比特(CMD6,Bit[26])来表示是否启动HPA功能,若启动则设为“1”,若关闭则设为“0”。虽然本发明实施例描述了以CMD6,Bit[26]定义是否启动HPA功能的技术方案,所属技术领域人员可改变设计来使用CMD6的参数中的其他保留比特,本发明并不因此受限。主机端110可设定CMD6的第27个比特(CMD6,Bit[27])来表示是否启动L2P对照表的获取功能,若启动则设为“1”,若关闭则设为“0”。虽然本发明实施例描述了以CMD6,Bit[27]定义是否启动L2P对照表的获取功能的技术方案,所属技术领域人员可改变设计来使用CMD6的参数中的其他保留比特,本发明并不因此受限。
在eMMC规范中,设定块数命令(CMD23)是由主机端110发出,用于表示之后的打包写入命令的块数目,或之后的打包读取命令的标题(Header)的块数目。当CMD23关联于之后的打包写入命令时,参数中的第30个比特(Bit[30])设为“0b1”,并且CMD23的参数中的第0到第15个比特(Bits[15:0])用于表示块数目。当CMD23关联于之后的打包写入命令或打包读取命令时,参数中的第30个比特(Bit[30])设为“0b1”。CMD23的参数中的第0到第15个比特(Bits[15:0])用于表示块数目。
在eMMC规范中,写入多块命令(CMD25)是由主机端110发出,用于不断写入数据块到eMMC存储装置,直到发出停止传输命令(STOP_TRANSMISSION Command,CMD12),或者请求数目的数据块已经写入完毕。主机端110可通过CMD23及CMD25传送L2P对照表中的指定局部和子区的信息,请求闪存控制器130准备指定局部和子区的L2P对照记录。此外,主机端110可通过CMD23及CMD25传送L2P对照记录,请求闪存控制器130据以准备数据以供将来的读取。CMD25的参数中的第0到第31个比特(Bits[31:0])表示数据地址。
在eMMC规范中,读取多块命令(CMD18)是由主机端110发出,用于不断从eMMC存储装置读取数据块,直到请求数目的数据块已经读取完毕,或者被停止命令(Stop Command)打断。也就是说,CMD18请求eMMC存储装置传送先前指出数目的数据块给主机端110。CMD18的参数中的第0到第31个比特(Bits[31:0])表示数据地址。主机端110可通过CMD23及CMD18请求闪存控制器130传送指定局部和子区(在先前的CMD25中定义)的L2P对照记录。参考如图4所示的示例,每个L2P对照记录的长度是8B,使得每个数据块可携带最多32个L2P对照记录。此外,主机端110可通过CMD23及CMD18请求闪存控制器130传送相应于L2P对照记录(在先前的CMD25中定义)的数据。
在eMMC规范中,正常回复命令(Normal Response Command,R1)是由闪存控制器130发出,用于告诉主机端110特定信息。R1的长度是48比特,其中的第40到第45比特(Bits[45:40])记录要回复命令的索引,并且第8到第39比特(Bits[39:8])记录装置状态(DeviceStatus)。当R1的第31个比特(Bit[31])设为“0b1”时,代表地址超过范围(ADDRESS_OUT_OF_RANGE)。当R1的第30个比特(Bit[30])设为“0b1”时,代表地址不适配(ADDRESS_MISALIGN)。当HPA功能启动但L2P对照表的获取功能未启动时,如果CMD25中携带的L2P对照记录中有部分的PBA失效了,闪存控制器130可把用于回复之后CMD18的R1的第31个比特(Bit[31])和第30个比特(Bit[30])都设为“0b1”,用于指出主机端110中缓存的L2P对照记录需要更新。
针对阶段I和阶段II中关于HPA L2P对照表区(又可称为HPA缓冲区)的建立,在eMMC存储装置初始化后,主机端110首次从装置端读取L2P对照表,并且存储到HPA缓冲区。表1描述示例的命令顺序细节,用于初始化HPA缓冲区:
表1
参考如图6所示的HPA缓冲区初始化的操作顺序图,详细说明如下:
操作611:主机端110发出命令给闪存控制器130,用于向闪存控制器130请求获取Ext_CSD寄存器的值。
操作613:为响应通过主机接口131所接收的寄存器读取命令,处理单元134获取寄存器137中Ext_CSD寄存器的值,并通过主机接口131回复给主机端110。
操作615:主机端110可检查Ext_CSD寄存器的值(例如,Ext_CSD[160],Bit[3])来判断此eMMC存储装置是否支持HPA功能。如果是,则继续进行操作617的处理。如果不是,则不启动HPA功能。
操作617:主机端110发出切换命令(CMD6)给闪存控制器130来启动HPA功能和L2P对照表的获取功能。例如,参考表1的第二行,主机端110可将CMD6的参数设为“0x0C000000”,也就是包含Bit[26]=“0b1”及Bit[27]=“0b1”,用于指示闪存控制器130启动这两个功能。
操作619:当闪存控制器130收到如上所示的切换命令后,进入HPA对照表读取状态(HPA_Mapping_READ state),用于准备传送一部分的L2P对照表给主机端110。
操作631:主机端110在系统存储器中配置空间给HPA缓冲区,并依据操作系统、驱动程序、应用程序等的需要决定欲向eMMC存储装置获取的局部和子区的L2P对照记录。
操作633:主机端110发出设定块数命令(CMD23)给闪存控制器130,用于通知闪存控制器130将传送多少个数据块。例如,参考表1的第三行,主机端110可将CMD23的参数设为“0x40000001”,也就是包含Bit[30]=“0b1”及Bits[15:0]=“0x0001”,表示之后将写入一个数据块到闪存控制器130。接着,主机端110发出写入多块命令(CMD25)给闪存控制器130,用于不断写入数据块到闪存控制器130,直到请求数目的数据块已经写入完毕。例如,参考表1的第四行,主机端110可将CMD25的参数设为“0x01E2A3E0”,代表特定数据地址。每个数据块可分为32包(Packets),而每一包的长度为16B。每包中的2个字节可指出特定局部的编号,而其余的14个字节可指出多个特定子区的编号。例如,当一包中包含{Region#0,SubRegion#0,SubRegion#1,SubRegion#2,SubRegion#3}的信息时,代表L2P对照表的指定部分关联到第0个局部中的第0到第3个子区。接着,主机端110发出设定块数命令(CMD23)给闪存控制器130,用于通知闪存控制器130将接收多少个数据块。例如,参考表1的第四行,主机端110可将CMD23的参数设为“0x40000020”,也就是包含Bit[30]=“0b1”及Bits[15:0]=“0x0020”,表示之后将从闪存控制器130读取32个数据块,也就是最多1024个L2P对照记录。接着,主机端110发出读取多块命令(CMD18)给闪存控制器130,用于不断从闪存控制器130读取数据块,直到请求数目的数据块已经读取完毕。例如,参考表1的第五行,主机端110可将CMD18的参数设为“0x01E2A3E0”,代表特定数据地址。
操作635:由于已经进入HPA对照表读取状态,当闪存控制器130从主机端110接收到相应于CMD25的数据块时,知道其中的每一包携带了L2P对照表的指定部分的信息,并且可据此从闪存装置150读取请求的L2P对照记录。此外,当闪存控制器130从主机端110接收到CMD18时,知道可以开始传送指定部分的L2P对照记录给主机端110。由于CMD18的参数被设定为与CMD25的参数相同,使得闪存控制器130传送的数据是依据先前CMD25写入的数据块中的内容从闪存装置150读取的指定部分的L2P对照记录。
操作651:闪存控制器130将请求的L2P对照记录组织成指定数目的数据块中的多个包。
操作653:闪存控制器130持续传送组织好的数据块给主机端110,直到指定数目的数据块传送完毕。接着,当从主机端110接收到打包读取完成的信息时,离开HPA对照表读取状态并进入eMMC规范的传送状态(Transfer State)。
操作655:主机端110接收每包中携带的L2P对照记录,并且存储在HPA缓冲区。当存储完最后一包中携带的L2P对照记录后,主机端110发出传送状态命令(SEND_STATUScommand,CMD13)给闪存控制器130,其中包含打包读取完成的信息。
针对阶段III的数据读取,表2描述示例的命令顺序细节,用于使用HPA功能读取数据:
表2
参考如图7所示的HPA读取的操作顺序图,详细说明如下:
操作711:主机端110发现即将进行短长度数据的随机读取。
操作713:主机端110发出切换命令(CMD6)给闪存控制器130来启动HPA功能。例如,参考表2的第二行,主机端110可将CMD6的参数设为“0x04000000”,也就是包含Bit[26]=“0b1”及Bit[27]=“0b0”,用于指示闪存控制器130只启动HPA功能。
操作715:当闪存控制器130收到如上所示的切换命令后,进入HPA读取状态(HPA_READ state)。
操作731:主机端110搜索HPA缓冲区中的镜像L2P对照表以获取相应于多个LBA的L2P对照记录。
操作733:主机端110发出设定块数命令(CMD23)给闪存控制器130,用于通知闪存控制器130将传送多少个数据块。例如,参考表2的第三行,主机端110可将CMD23的参数设为“0x40000001”,也就是包含Bit[30]=“0b1”及Bits[15:0]=“0x0001”,表示之后将写入一个数据块到闪存控制器130。接着,主机端110发出写入多块命令(CMD25)给闪存控制器130,用于不断写入数据块到闪存控制器130,直到请求数目的数据块已经写入完毕。例如,参考表2的第四行,主机端110可将CMD25的参数设为“0x01521182”,代表特定数据地址。每个数据块可分为32包(Packets),而每一包的长度为16B。每包关联于一对LBA和PBA信息,其中的8个字节可指出特定LBA,而其余的8个字节可指出特定PBA。接着,主机端110发出设定块数命令(CMD23)给闪存控制器130,用于通知闪存控制器130将接收多少个数据块。例如,参考表2的第五行,主机端110可将CMD23的参数设为“0x40000020”,也就是包含Bit[30]=“0b1”及Bits[15:0]=“0x0020”,表示之后将从闪存控制器130读取32个数据块,也就是最多1024个LBA的数据。接着,主机端110发出读取多块命令(CMD18)给闪存控制器130,用于不断从闪存控制器130读取数据块,直到请求数目的数据块已经读取完毕。例如,参考表2的第六行,主机端110可将CMD18的参数设为“0x01521182”,代表特定数据地址。
操作735:由于已经进入HPA读取状态,当闪存控制器130从主机端110接收到相应于CMD25的数据块时,知道其中的每一包携带了为一个数据读取的成对LBA和PBA的信息,并且可据此从闪存装置150读取请求的数据。此外,当闪存控制器130从主机端110接收到CMD18时,知道可以开始传送指定的数据给主机端110。由于CMD18的参数被设定为与CMD25的参数相同,使得闪存控制器130传送的数据是依据先前CMD25写入的数据块中的内容从闪存装置150读取的指定LBA的数据。
操作751:闪存控制器130将请求的数据组织成指定数目的数据块中的多个包。
操作753:闪存控制器130持续传送组织好的数据块给主机端110,直到指定数目的数据块传送完毕。接着,当从主机端110接收到打包读取完成的信息时,离开HPA读取状态并进入eMMC规范的传送状态。
操作755:主机端110接收每包中携带的数据,并且存储在系统存储器的数据缓冲区。当存储完最后一包中携带的数据后,主机端110发出传送状态命令(CMD13)给闪存控制器130,其中包含打包读取完成的信息。
针对阶段II中关于HPA缓冲区的更新,在装置端运行的过程中,主机端110可请求闪存控制器130执行数据写入、数据剪除(Data Trims)、块抹除(Block Erases)等操作,而闪存控制器130可主动执行垃圾回收(Garbage Collection,GC)、磨耗平均(WearLeveling,WL)等程序,造成L2P对照表的部分内容被改变。所以,HPA缓冲区中的内容(也就是镜像L2P对照表)需要根据L2P对照表的变更内容而更新。参考如图8所示的HPA读取的操作顺序图,其中的操作711到733和操作751到753的技术方案相同于图7,其余的操作详细说明如下:
操作835:由于已经进入HPA读取状态,当闪存控制器130从主机端110接收到相应于CMD25的数据块时,知道其中的每一包携带了为一个数据读取的成对LBA和PBA的信息,并且检查欲读取LBA数据的LBA对照记录是否被改变(也就是是否无效)。如果是,则闪存控制器130忽略数据块中携带的信息,改为依据变更后的相应LBA对照记录从闪存装置150读取数据。当闪存控制器130从主机端110接收到CMD18时,知道可以开始传送指定的数据给主机端110。由于CMD18的参数被设定为与CMD25的参数相同,使得闪存控制器130传送的数据是依据先前CMD25写入的数据块中的内容或者依据变更后的相应LBA对照记录中的内容从闪存装置150读取的指定LBA的数据。此外,当欲读取LBA数据的LBA对照记录无效时,闪存控制器130设定相关的Ext_CSD寄存器来存储主机端110的HPA缓冲区中需要更新的局部和子区的信息。
操作837:闪存控制器130发出用于回复CMD18的R1,其中的第31个比特(Bit[31])和第30个比特(Bit[30])都设为“0b1”,用于指出主机端110中的镜像L2P对照表需要更新。
在主机端110从装置端接收到镜像L2P对照表需要更新的信息后,主机端110从装置端获取需要更新的局部和子区的信息,并据此从装置端读取L2P对照表中指定部分的L2P对照记录,并且更新HPA缓冲区中的相应内容。表3描述示例的命令顺序细节,用于更新HPA缓冲区:
表3
参考如图9所示的HPA缓冲区更新的操作顺序图,其中的操作611、613、617、619、633、635、651和653的技术方案相同于图6,其余的操作详细说明如下:
操作915:主机端110从Ext_CSD寄存器(例如,Ext_CSD[67:64])的值获取需要更新的局部和子区的信息。
操作931:主机端110依据从闪存控制器130获取的信息决定欲向eMMC存储装置获取的局部和子区的L2P对照记录。
操作955:主机端110接收每包中携带的L2P对照记录,并且更新HPA缓冲区中的相应部分内容。当更新完最后一包中携带的L2P对照记录后,主机端110发出CMD13给闪存控制器130,其中包含打包读取完成的信息。
命令处理操作619、715中关于CMD6的执行细节可参考如图10所示的方法流程图,此方法由处理单元134在加载并执行相关软件或固件程序代码时实施,进一步说明如下:
步骤S1010:通过主机接口131从主机端110接收到切换命令(CMD6)。
步骤S1020:判断CMD6的保留比特中是否包含启动HPA功能和L2P对照表的获取功能的信息。如果是,流程继续步骤S1030的处理。否则,流程继续步骤S1040的处理。
步骤S1030:在RAM 136存储进入HPA对照表读取状态的信息,用于让之后接收到CMD25时可以作为判断目前装置状态的依据。
步骤S1040:判断CMD6的保留比特中是否包含启动HPA功能的信息。如果是,流程继续步骤S1050的处理。否则,流程继续步骤S1060的处理。
步骤S1050:在RAM 136存储进入HPA读取状态的信息,用于让之后接收到CMD25时可以作为判断目前装置状态的依据。
步骤S1060:执行传统的切换程序。例如,切换装置端的操作模式、修改Ext_CSD寄存器的值等等。
命令处理操作635、735和835中关于CMD25的执行细节可参考如图11所示的方法流程图,此方法由处理单元134在加载并执行相关软件或固件程序代码时实施,进一步说明如下:
步骤S1110:通过主机接口131从主机端110接收到写入多块命令(CMD25)及跟随的数据块。
步骤S1121:依据RAM 136中存储的信息判断是否进入HPA对照表读取状态或HPA读取状态。如果是,流程继续进行步骤S1131的进一步判断。否则,流程继续进行步骤S1123的处理。
步骤S1123:执行传统的打包写入程序(Packed Write Procedure),用于驱动闪存接口139写入多包的数据至闪存装置150。
步骤S1131:依据RAM 136中存储的信息判断是否进入HPA对照表读取状态。如果是,流程继续进行步骤S1133的处理。否则(也就是进入HPA读取状态),流程继续进行步骤S1141的判断。
步骤S1133:驱动闪存接口139依据数据块中携带的信息(也就是特定局部和特定子区的信息)从闪存装置150读取L2P对照表中指定部分的L2P对照记录。
步骤S1135:以如上所述多包的格式存储L2P对照记录到RAM 136,使得将来在收到CMD18后能够以多包的格式传送L2P对照记录给主机端110。
步骤S1141:判断欲读取LBA数据所关联的LBA对照记录是否已经被改变。如果是,则流程继续进行步骤S1145的处理。否则,流程继续进行步骤S1143的处理。
步骤S1143:驱动闪存接口139依据数据块中携带的信息(也就是L2P对照记录的信息)从闪存装置150读取指定LBA的数据。
步骤S1145:驱动闪存接口139依据变更后的相应LBA对照记录从闪存装置150读取指定LBA的数据。
步骤S1147:以如上所述多包的格式存储指定LBA的数据到RAM 136,使得将来在收到CMD18后能够以多包的格式传送指定LBA的数据给主机端110。
本发明所述的方法中的全部或部分步骤可以由计算机程序实现,例如存储装置中的固件转换层(Firmware Translation Layer,FTL)、特定硬件的驱动程序、或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成程序代码,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取存储介质,例如DVD、CD-ROM、U盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。
虽然图1至图2中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图10、图11的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (18)
1.一种主机效能加速模式的数据读取方法,由主机端执行,其特征在于,包含:
发出第一切换命令给闪存控制器,用于请求所述闪存控制器启动主机效能加速功能和逻辑物理对照表的获取功能,其中,所述主机端和所述闪存控制器通过嵌入式多媒体卡通信协议彼此通信;
发出第一写入多块命令给所述闪存控制器,用于写入第一数据块到闪存控制器,所述第一数据块包含局部编号和子区编号;
发出第一读取多块命令给所述闪存控制器,用于从所述闪存控制器获取相应于所述局部编号和所述子区编号的多个第一逻辑物理对照记录,其中,每个所述第一逻辑物理对照记录存储逻辑地址的数据实际存储于的物理地址的信息;以及
存储所述第一逻辑物理对照记录至系统存储器中的主机效能加速缓冲区。
2.如权利要求1所述的主机效能加速模式的数据读取方法,其特征在于,每个所述第一逻辑物理对照记录包含逻辑区块地址和物理区块地址,所述逻辑区块地址关联于第一长度的数据,所述物理区块地址关联于第二长度的数据,所述第二长度大于所述第一长度。
3.如权利要求2所述的主机效能加速模式的数据读取方法,其特征在于,所述第一长度为512字节。
4.如权利要求1所述的主机效能加速模式的数据读取方法,其特征在于,还包含:
搜索所述主机效能加速缓冲区以获取关联于逻辑区块地址的第二逻辑物理对照记录;
发出第二切换命令给所述闪存控制器,用于请求所述闪存控制器启动所述主机效能加速功能,但不启动所述逻辑物理对照表的获取功能;
发出第二写入多块命令给所述闪存控制器,用于写入第二数据块到闪存控制器,所述第二数据块包含所述第二逻辑物理对照记录;以及
发出第二读取多块命令给所述闪存控制器,用于从所述闪存控制器获取相应于所述第二逻辑物理对照记录的数据。
5.一种主机效能加速模式的数据读取方法,由閃存控制器执行,其特征在于,包含:
从主机端接收第一切换命令,用于请求所述闪存控制器启动主机效能加速功能和逻辑物理对照表的获取功能,其中,所述主机端和所述闪存控制器通过嵌入式多媒体卡通信协议彼此通信;
根据所述第一切换命令而进入第一状态;
在进入所述第一状态期间从所述主机端收到第一写入多块命令;
根据所述第一写入多块命令从所述主机端收到的第一数据块中获取局部编号和子区编号,以及从闪存装置读取相应于所述局部编号和所述子区编号的多个第一逻辑物理对照记录;
在进入所述第一状态期间从所述主机端收到第一读取多块命令;以及
根据所述第一读取多块命令传送所述第一逻辑物理对照记录给主机端,其中,每个所述第一逻辑物理对照记录存储逻辑地址的数据实际存储在的物理地址的信息。
6.如权利要求5所述的主机效能加速模式的数据读取方法,其特征在于,所述第一切换命令中的第一保留比特包含启动所述主机效能加速功能的信息,以及所述第一切换命令中的第二保留比特包含启动所述逻辑物理对照表的获取功能的信息。
7.如权利要求5所述的主机效能加速模式的数据读取方法,其特征在于,还包含:
从所述主机端接收第二切换命令,用于请求所述闪存控制器启动所述主机效能加速功能,但不启动所述逻辑物理对照表的获取功能;
根据所述第二切换命令而进入第二状态;
在进入所述第二状态期间从所述主机端收到第二写入多块命令;
根据所述第二写入多块命令从所述主机端收到的第二数据块中获取第二逻辑物理对照记录,以及从所述闪存装置读取相应于所述第二逻辑物理对照记录的数据;
在进入所述第二状态期间从所述主机端收到第二读取多块命令;以及
根据所述第二读取多块命令传送相应于所述第二逻辑物理对照记录的数据给主机端。
8.如权利要求7所述的主机效能加速模式的数据读取方法,其特征在于,所述第二切换命令中的第一保留比特包含启动所述主机效能加速功能的信息,以及所述第二切换命令中的第二保留比特包含不启动所述逻辑物理对照表的获取功能的信息。
9.如权利要求7所述的主机效能加速模式的数据读取方法,其特征在于,所述第一写入多块命令和所述第二写入多块命令中的任一者用于让所述主机端不断写入数据块到所述闪存控制器,直到默认数目的数据块已经写入完毕。
10.如权利要求7所述的主机效能加速模式的数据读取方法,其特征在于,所述第一读取多块命令和所述第二读取多块命令中的任一者用于让所述主机端不断从所述闪存控制器读取数据块,直到默认数目的数据块已经读取完毕。
11.一种主机效能加速模式的数据读取装置,其特征在于,包含:
主机接口,耦接主机端;
闪存接口,耦接闪存装置;以及
处理单元,耦接所述主机接口和所述闪存接口,通过所述主机接口从所述主机端接收第一切换命令,用于请求所述装置启动主机效能加速功能和逻辑物理对照表的获取功能;根据所述第一切换命令而进入第一状态;在进入所述第一状态期间通过所述主机接口从所述主机端收到第一写入多块命令;根据所述第一写入多块命令从所述主机端通过所述主机接口收到的第一数据块中获取局部编号和子区编号,以及通过所述闪存接口从所述闪存装置读取相应于所述局部编号和所述子区编号的多个第一逻辑物理对照记录;在进入所述第一状态期间通过所述主机接口从所述主机端收到第一读取多块命令;以及根据所述第一读取多块命令通过所述主机接口传送所述第一逻辑物理对照记录给主机端,
其中,每个所述第一逻辑物理对照记录用于存储逻辑地址的数据实际存储于的物理地址的信息,所述主机端和所述装置间通过所述主机接口使用嵌入式多媒体卡通信协议彼此通信。
12.如权利要求11所述的主机效能加速模式的数据读取装置,其特征在于,所述第一逻辑物理对照记录包含逻辑区块地址和物理区块地址,所述逻辑区块地址关联于第一长度的数据,所述物理区块地址关联于第二长度的数据,所述第二长度大于所述第一长度。
13.如权利要求12所述的主机效能加速模式的数据读取装置,其特征在于,所述第一长度为512字节。
14.如权利要求11所述的主机效能加速模式的数据读取装置,其特征在于,所述第一切换命令中的第一保留比特包含启动所述主机效能加速功能的信息,以及所述第一切换命令中的第二保留比特包含启动所述逻辑物理对照表的获取功能的信息。
15.如权利要求11所述的主机效能加速模式的数据读取装置,其特征在于,所述处理单元通过所述主机接口从所述主机端接收第二切换命令,用于请求所述装置启动所述主机效能加速功能,但不启动所述逻辑物理对照表的获取功能;根据所述第二切换命令而进入第二状态;在进入所述第二状态期间通过所述主机接口从所述主机端收到第二写入多块命令;根据所述第二写入多块命令通过所述主机接口从所述主机端收到的第二数据块中获取第二逻辑物理对照记录,以及通过所述闪存接口从所述闪存装置读取相应于所述第二逻辑物理对照记录的数据;在进入所述第二状态期间通过所述主机接口从所述主机端收到第二读取多块命令;以及根据所述第二读取多块命令通过所述主机接口传送相应于所述第二逻辑物理对照记录的数据给主机端。
16.如权利要求15所述的主机效能加速模式的数据读取装置,其特征在于,所述第二切换命令中的第一保留比特包含启动所述主机效能加速功能的信息,以及所述第二切换命令中的第二保留比特包含不启动所述逻辑物理对照表的获取功能的信息。
17.如权利要求15所述的主机效能加速模式的数据读取装置,其特征在于,所述第一写入多块命令和所述第二写入多块命令中的任一者用于不断写入数据块到所述装置,直到默认数目的数据块已经写入完毕。
18.如权利要求15所述的主机效能加速模式的数据读取装置,其特征在于,所述第一读取多块命令和所述第二读取多块命令中的任一者用于让所述主机端不断从所述装置读取数据块,直到默认数目的数据块已经读取完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/324,302 US11544185B2 (en) | 2020-07-16 | 2021-05-19 | Method and apparatus for data reads in host performance acceleration mode |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063052717P | 2020-07-16 | 2020-07-16 | |
US63/052,717 | 2020-07-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113946278A true CN113946278A (zh) | 2022-01-18 |
Family
ID=79327242
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011086727.8A Pending CN113946278A (zh) | 2020-07-16 | 2020-10-12 | 主机效能加速模式的数据读取方法及装置 |
CN202011084288.7A Pending CN113946277A (zh) | 2020-07-16 | 2020-10-12 | 主机效能加速模式的数据读取方法及装置 |
CN202011086743.7A Pending CN113946279A (zh) | 2020-07-16 | 2020-10-12 | 主机效能加速模式的数据读取方法及装置 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011084288.7A Pending CN113946277A (zh) | 2020-07-16 | 2020-10-12 | 主机效能加速模式的数据读取方法及装置 |
CN202011086743.7A Pending CN113946279A (zh) | 2020-07-16 | 2020-10-12 | 主机效能加速模式的数据读取方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (3) | CN113946278A (zh) |
TW (4) | TW202225979A (zh) |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061597A1 (en) * | 2005-09-14 | 2007-03-15 | Micky Holtzman | Secure yet flexible system architecture for secure devices with flash mass storage memory |
KR101736337B1 (ko) * | 2011-02-28 | 2017-05-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법 |
TWI521343B (zh) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US9348783B2 (en) * | 2012-04-19 | 2016-05-24 | Lockheed Martin Corporation | Apparatus and method emulating a parallel interface to effect parallel data transfer from serial flash memory |
TWI448891B (zh) * | 2012-09-06 | 2014-08-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
US9547447B2 (en) * | 2014-01-03 | 2017-01-17 | Advanced Micro Devices, Inc. | Dedicated interface for coupling flash memory and dynamic random access memory |
US10126950B2 (en) * | 2014-12-22 | 2018-11-13 | Intel Corporation | Allocating and configuring persistent memory |
CN104809075B (zh) * | 2015-04-20 | 2017-09-12 | 电子科技大学 | 一种存取实时并行处理的固态记录装置及方法 |
US9940028B2 (en) * | 2015-11-13 | 2018-04-10 | Samsung Electronics Co., Ltd | Multimode storage device |
JP6967986B2 (ja) * | 2018-01-29 | 2021-11-17 | キオクシア株式会社 | メモリシステム |
CN112166420B (zh) * | 2018-04-23 | 2024-04-05 | 美光科技公司 | 用于刷新逻辑到物理信息的系统和方法 |
TWI703566B (zh) * | 2018-08-30 | 2020-09-01 | 大陸商合肥沛睿微電子股份有限公司 | 快閃記憶體控制器及相關的存取方法及電子裝置 |
TWI698874B (zh) * | 2018-08-31 | 2020-07-11 | 大陸商合肥沛睿微電子股份有限公司 | 快閃記憶體控制器及相關的存取方法及電子裝置 |
-
2020
- 2020-10-12 CN CN202011086727.8A patent/CN113946278A/zh active Pending
- 2020-10-12 TW TW111109302A patent/TW202225979A/zh unknown
- 2020-10-12 TW TW109135109A patent/TWI795680B/zh active
- 2020-10-12 TW TW109135089A patent/TWI761983B/zh active
- 2020-10-12 CN CN202011084288.7A patent/CN113946277A/zh active Pending
- 2020-10-12 CN CN202011086743.7A patent/CN113946279A/zh active Pending
- 2020-10-12 TW TW109135126A patent/TWI760884B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI795680B (zh) | 2023-03-11 |
CN113946277A (zh) | 2022-01-18 |
CN113946279A (zh) | 2022-01-18 |
TW202205097A (zh) | 2022-02-01 |
TW202205098A (zh) | 2022-02-01 |
TW202205099A (zh) | 2022-02-01 |
TW202225979A (zh) | 2022-07-01 |
TWI761983B (zh) | 2022-04-21 |
TWI760884B (zh) | 2022-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11829601B2 (en) | Extended utilization area for a memory device | |
US8166233B2 (en) | Garbage collection for solid state disks | |
US20140372685A1 (en) | Memory system, data storage device, user device and data management method thereof | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US11429545B2 (en) | Method and apparatus for data reads in host performance acceleration mode | |
TWI592865B (zh) | 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器 | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
KR102649131B1 (ko) | 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치 | |
CN107665091B (zh) | 数据读取方法、数据写入方法及其存储控制器 | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
US11544185B2 (en) | Method and apparatus for data reads in host performance acceleration mode | |
US11544186B2 (en) | Method and apparatus for data reads in host performance acceleration mode | |
WO2021035555A1 (zh) | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd | |
CN113641597A (zh) | 管理数据存储的方法及装置以及计算机可读取存储介质 | |
US20230273878A1 (en) | Storage device for classifying data based on stream class number, storage system, and operating method thereof | |
TWI795680B (zh) | 主機效能加速模式的資料讀取方法及裝置 | |
CN117632809B (zh) | 存储器控制器、数据读取方法及存储装置 | |
US20240103733A1 (en) | Data processing method for efficiently processing data stored in the memory device by splitting data flow and the associated data storage device | |
CN114328297A (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
CN113448487A (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
CN110633224A (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 |