CN107665091B - 数据读取方法、数据写入方法及其存储控制器 - Google Patents
数据读取方法、数据写入方法及其存储控制器 Download PDFInfo
- Publication number
- CN107665091B CN107665091B CN201610602805.2A CN201610602805A CN107665091B CN 107665091 B CN107665091 B CN 107665091B CN 201610602805 A CN201610602805 A CN 201610602805A CN 107665091 B CN107665091 B CN 107665091B
- Authority
- CN
- China
- Prior art keywords
- target
- memory
- page
- address
- logical block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本发明提供一种数据读取方法、数据写入方法及其存储控制器,其包括从主机系统接收读取指令,其中所述读取指令包括起始逻辑区块地址、逻辑区块数目、第一实体区域页面指标与第二实体区域页面指标,并且所述读取指令用以指示从可复写式非易失性存储器模块的至少一目标逻辑区块读取目标数据且将所读取的目标数据写入至主机存储器的至少一目标存储器页面;根据所述读取指令来获得每一个目标逻辑区块所分别对应的目标存储器页面的地址。本发明可避免存储控制器花费过多的时间于等待上并且减少为了循序存取而耗费的暂存空间与资源。
Description
技术领域
本发明是有关于一种数据传输方法,且特别是有关于一种数据读取方法、数据写入方法及其存储控制器。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储介质的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于此些电子产品。因此,近年快速存储器产业成为电子产业中相当热门的一环。例如,广泛用于移动电子装置上的嵌入式多媒体卡(embeded Multi Media Card,eMMC)就是一种以快速存储器作为存储媒体的存储装置。
为了配合可复写式非易失性存储器的存储装置(如,固态硬盘)的较高的写入/读取速度,许多数据传输接口(例如,快捷外设互联标准接口,PCIe接口)也开始支持更高阶的数据传输协定,例如,快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe),以发挥高速的可复写式非易失性存储器存储装置的工作效率。
快速非易失性存储器接口标准定义了用于使用者数据传输的多个存取指令。此些存取指令具有许多指令参数。一般来说,当前的可复写式非易失性存储器存储装置的存储控制器会根据所接收存取指令的所述指令参数来循序地存取数据。
由于在可复写式非易失性存储器存储装置中的每笔数据所对应的存储单元并不是随时准备被存取。因此,为了根据存取指令循序地存取对应存取指令的数据,存储控制器会等待对应所述数据的所有的存储单元都准备好进行存取,再根据存取指令的指示来循序地对所有数据进行存取操作。如此一来,存储控制器会浪费时间在等待的过程。另一方面,为了加快处理速度,存储控制器也可能需要先暂存预先存取对应已准备好的存储单元的数据。如此一来,还会耗费资源于暂存数据上,造成成本的提高。
因此,要如何善用对应快速非易失性存储器接口标准的存取指令所具有的指令参数,以减少上述的存储控制器的等待的过程且减少对于暂存欲存取的数据的需求,进而增进数据存取的效率且降低资源的耗费,是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据读取方法与数据写入方法,以及使用此些方法的存储控制器,可减少上述的存储控制器的等待的过程且减少对于暂存欲读取/写入的数据的需求。
本发明的一实施例提供一种数据读取方法,其适用于从可复写式非易失性存储器模块中读取数据至主机系统的主机存储器中,其中所述可复写式非易失性存储器模块被配置多个逻辑区块,并且所述主机存储器具有多个存储器页面。所述方法包括:从所述主机系统接收读取指令,其中所述读取指令包括起始逻辑区块地址(SLBA)、逻辑区块数目(NLB)、第一实体区域页面指标(PRP1)与第二实体区域页面指标(PRP2)。所述读取指令用以指示从所述可复写式非易失性存储器模块的至少一目标逻辑区块读取目标数据且将所读取的所述目标数据写入至所述主机存储器的至少一目标存储器页面,其中所述目标数据是从所述至少一目标逻辑区块中的起始逻辑区块开始被存储。所述起始逻辑区块地址用以指示所述起始逻辑区块的地址。所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目。所述第一实体区域页面指标用以指示所述主机存储器的第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的第二存储器页面地址。根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址;以及从所述至少一目标逻辑区块中选择第一目标逻辑区块,读取所述第一目标逻辑区块所存储的第一目标数据,并且根据所获得的对应所述第一目标逻辑区块的第一目标存储器页面的地址将所读取的所述第一目标数据写入至所述第一目标存储器页面中。
本发明的另一实施例提供一种数据写入方法,其适用于从主机系统的主机存储器将数据写入至可复写式非易失性存储器模块中,其中所述可复写式非易失性存储器模块被配置多个逻辑区块,并且所述主机存储器具有多个存储器页面。所述方法包括:从所述主机系统接收写入指令,其中所述写入指令包括起始逻辑区块地址(SLBA)、逻辑区块数目(NLB)、第一实体区域页面指标(PRP1)与第二实体区域页面指标(PRP2),其中所述写入指令用以指示将目标数据写入至所述可复写式非易失性存储器模块的至少一目标逻辑区块中,其中所述至少一目标逻辑区块中排序在最前面的逻辑区块为起始逻辑区块。所述起始逻辑区块地址用以指示所述起始逻辑区块的地址。所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目。所述第一实体区域页面指标用以指示所述主机存储器的第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的第二存储器页面地址,其中对应所述写入指令的所述目标数据被存储于所述主机存储器的所述存储器页面中的至少一目标存储器页面中。根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址,其中每一个目标逻辑区块所分别对应的目标存储器页面为所述至少一目标存储器页面的其中的一;以及从所述至少一目标逻辑区块中选择第一目标逻辑区块,根据所获得的对应所述第一目标逻辑区块的第一目标存储器页面的地址来读取第一目标数据,并且将所读取的所述第一目标数据写入至所述第一目标逻辑区块中。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括连接接口电路、存储器接口控制电路、处理器与数据传输管理电路。连接接口电路用以电性连接至主机系统,其中所述主机系统配置有主机存储器,其中所述主机存储器具有多个存储器页面。存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块被配置多个逻辑区块。处理器电性连接至所述连接接口电路单元及所述存储器接口控制电路。数据传输管理电路电性连接至所述处理器、所述连接接口电路单元及所述存储器接口控制电路。所述处理器用以从所述主机系统接收读取指令,其中所述读取指令包括起始逻辑区块地址(SLBA)、逻辑区块数目(NLB)、第一实体区域页面指标(PRP1)与第二实体区域页面指标(PRP2),其中所述读取指令用以指示从所述可复写式非易失性存储器模块的至少一目标逻辑区块读取目标数据且将所读取的所述目标数据写入至所述主机存储器的至少一目标存储器页面,其中所述目标数据是从所述至少一目标逻辑区块中的一起始逻辑区块开始被存储。所述起始逻辑区块地址用以指示所述起始逻辑区块的地址。所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目。所述第一实体区域页面指标用以指示所述主机存储器的第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的第二存储器页面地址。所述处理器用以指示所述数据传输管理电路根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址,其中所述存储器接口控制电路用以从所述至少一目标逻辑区块中选择第一目标逻辑区块,并且读取所述第一目标逻辑区块所存储的第一目标数据。数据传输管理电路用以根据所获得的对应所述第一目标逻辑区块的第一目标存储器页面的地址将所读取的所述第一目标数据写入至所述第一目标存储器页面中。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括连接接口电路、存储器接口控制电路、处理器与数据传输管理电路。连接接口电路用以电性连接至主机系统,其中所述主机系统配置有主机存储器,其中所述主机存储器具有多个存储器页面。存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块被配置多个逻辑区块。处理器电性连接至所述连接接口电路单元及所述存储器接口控制电路。数据传输管理电路电性连接至所述处理器、所述连接接口电路单元及所述存储器接口控制电路。所述处理器用以从所述主机系统接收写入指令,其中所述写入指令包括起始逻辑区块地址(SLBA)、逻辑区块数目(NLB)、第一实体区域页面指标(PRP1)与第二实体区域页面指标(PRP2)。所述写入指令用以指示将目标数据写入至所述可复写式非易失性存储器模块的至少一目标逻辑区块中,其中所述至少一目标逻辑区块中排序在最前面的逻辑区块为起始逻辑区块。所述起始逻辑区块地址用以指示所述起始逻辑区块的地址。所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目。所述第一实体区域页面指标用以指示所述主机存储器的第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的第二存储器页面地址。对应所述写入指令的所述目标数据被存储于所述主机存储器的所述存储器页面中的至少一目标存储器页面中。所述处理器用以指示所述数据传输管理电路根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址,其中每一个目标逻辑区块所分别对应的目标存储器页面为所述至少一目标存储器页面的其中的一。所述存储器接口控制电路用以从所述至少一目标逻辑区块中选择第一目标逻辑区块,其中数据传输管理电路用以根据所获得的对应所述第一目标逻辑区块的第一目标存储器页面的地址来读取第一目标数据,并且所述存储器接口控制电路还用以将所读取的所述第一目标数据写入至所述第一目标逻辑区块中。
基于上述,本发明的多个实施例所提供的数据传输(读取/写入)方法,可使存储控制器不需等待所有存储单元都准备好被存取,并且可不循序地直接存取已经准备好被存取的部分存储单元,进而避免存储控制器花费过多的时间于等待上并且减少为了循序存取而耗费的暂存空间与资源。同时,可利用硬件来快速地进行对于目标逻辑区块所对应的目标存储器页面的地址的计算,增加了处理数据传输的速度,也减少了存储控制器的处理器的负担,进而增进了存储装置与其所进行的数据传输操作的工作效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图;
图2是根据本发明一实施例所示出的数据读取方法的流程图;
图3是根据本发明一实施例所示出的数据写入方法的流程图;
图4是根据本发明的第一实施例所示出的存储器页面的示意图;
图5是根据本发明的第一、第四实施例所示出的数据传输的示意图;
图6是根据本发明的第二、第五实施例所示出的数据传输的示意图;
图7是根据本发明的第三、第六实施例所示出的数据传输的示意图。
附图标记说明:
10:主机系统;
20:存储装置;
110、211:处理器;
120:主机存储器;
130:数据传输接口电路;
210:存储控制器;
212:数据传输管理电路;
213:存储器接口控制电路;
220:可复写式非易失性存储器模块;
230:连接接口电路;
S210、S220、S230:数据读取方法的流程步骤;
S310、S320、S330:数据写入方法的流程步骤;
400(0)、400(1)、400(N):存储器页面;
SA400(0)、SA400(1)、SA400(2)、SA400(3)、SA400(N):起始地址;
EA400(0)、EA400(1)、EA400(N):结束地址;
500(0)、500(1)、500(2)、500(M):逻辑区块;
701:实体区域页面指标清单;
701(0)、701(1)、701(P):条目;
SLBA:起始逻辑区块地址;
NLB:逻辑区块数目;
PRP1:第一实体区域页面指标;
PRP2:第二实体区域页面指标。
具体实施方式
一般而言,存储装置包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与存储装置控制器(也称,存储控制器或存储控制电路)。通常存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。
请参照图1,主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130电性连接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130的间利用系统总线(System Bus)彼此电性连接。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据传输管理电路(DataTransfer Management Circuit)212与存储器接口控制电路(Memory InterfaceControlCircuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230电性连接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一个或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式电性连接至存储装置20。存储装置20可例如是U盘、内存卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线保真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线电性连接至全球定位系统(Global Positioning System,GPS)模块、网路接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、序列先进附件(Serial Advanced Technology Attachment,SATA)标准、通用序列总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(MultiMedia Card,MMC)接口标准、eMMC接口标准、通用快速存储器(Universal FlashStorage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(IntegratedDeviceElectronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic RandomAccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。更详细来说,在本实施例中,主机存储器120被划分为多个存储器页面(Memory Page),以供指令与数据的存储管理。每个存储器页面具有起始地址(Starting Address of Memory Page,SAMP)与结束地址(Ending Address of Memory Page,EAMP)。在本实施例中,每个存储器页面是利用16比特大小的地址来进行定位,例如,排序为第一个的存储器页面的起始地址(SAMP)可设定为“0000”,并且结束地址(EAMP)可设定为“0FFF”。每个存储器页面的大小为4096比特组(Bytes)(即,4KB)。主机存储器用来进行数据传输的存储器页面的总空间为64KB,即,共16个存储器页面。然而,本发明并不限于主机存储器的地址定位方式。例如,在另一实施例中,主机存储器可具有更多或是更少的空间,并且可对应地使用适合的定位方式来进行地址定位。
存储控制器210用以执行以硬件或软件实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可编程的处理单元(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、特殊应用积体电路(Application Specific Integrated Circuits,ASIC)、可编程逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。的后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的实体存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据传输管理电路212与存储器接口控制电路213。
其中,数据传输管理电路212电性连接至处理器211、存储器接口控制电路213与连接接口电路230。数据传输管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220读取数据,并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中。以下会再配合多个附图与实施例来详细说明本发明中数据传输管理电路212的功能。
存储器接口控制电路213用以接受处理器211的指示,配合数据传输管理电路212来进行对于可复写式非易失性存储器模块220的数据的写入(也称,程序化,Programming)、读取操作。存储器接口控制电路213也可对可复写式非易失性存储器模块220进行抹除操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一个或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压准位或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一个或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
在本实施例中,存储器接口控制电路213还会辨识配置给可复写式非易失性存储器模块220的逻辑区块的状态。存储器接口控制电路213也可辨识可复写式非易失性存储器模块220的实体区块的状态。更详细来说,当存储器接口控制电路213根据读取/写入指令发出读取/写入请求给可复写式非易失性存储器模块220后,存储器接口控制电路213会辨识对应的可复写式非易失性存储器模块220的存储单元(如,实体区块、实体页面,或是对应的逻辑区块、逻辑页面)的状态是否为就绪状态(readiness)。举例来说,当存储器接口控制电路213辨识到对应读取/写入指令的实体区块以准备好进行数据传输时,存储器接口控制电路213会回报映射至所述实体区块的逻辑区块为就绪状态。换句话说,存储器接口控制电路213会根据判断逻辑区块所映射的实体区块是否准备好进行数据传输来判断所述逻辑区块的状态是否为就绪状态。存储器接口控制电路213可主动判断对应的实体区块的状态是否准备好进行数据传输,也可被动地接收来自可复写式非易失性存储器模块220的对应的实体区块的状态回报,本发明不限于存储器接口控制电路213如何辨识欲进行数据存取的实体区块/逻辑区块是否为就绪状态的方法。
可复写式非易失性存储器模块220是电性连接至存储器接口控制电路213并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快速存储器模块(即,一个存储单元中可存储1个比特的快速存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快速存储器模块(即,一个存储单元中可存储2个比特的快速存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型快速存储器模块(即,一个存储单元中可存储3个比特的快速存储器模块)、其他快速存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体区块(也称,实体抹除单元)。具体来说,同一条字节线(或同一个字节线层)上的存储单元会组成一个或多个实体程序化单元。若每一个存储单元被用以存储2个以上的比特,则同一条字节线(或同一个字节线层)上的实体程序化单元至少可被分类为一个下(lower)实体程序化单元与一个上(upper)实体程序化单元。
在一实施例中,若每一个存储单元被用以存储2个比特,则同一条字节线(或同一个字节线层)上的实体程序化单元可被分类为一个下实体程序化单元与一个上实体程序化单元。例如,一存储单元的最低有效比特(Least Significant Bit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效比特(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,及/或下实体程序化单元的可靠度会高于上实体程序化单元的可靠度。在另一实施例中,若每一个存储单元被用以存储3个比特,则同一条字节线(或同一个字节线层)上的实体程序化单元可被分类为一个下实体程序化单元、一个上实体程序化单元及一个额外(extra)实体程序化单元。例如,一存储单元的最低有效比特是属于下实体程序化单元,一存储单元的中间有效比特(Central Significant Bit,CSB)是属于上实体程序化单元,并且一存储单元的的最高有效比特是属于额外实体程序化单元。
在本实施例中,数据是以实体区块为单位作为写入数据(程序化)的存储单元。实体区块也可称为实体抹除单元或实体单元。实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。每一实体区块会具有多个实体程序化单元。实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码)。
然而,本发明不限于此。例如,在另一实施例中,也可变化本实施例所述的数据传输方法,应用至以实体程序化单元为单位作为写入数据的存储单元的可复写式非易失性存储器模块220。
在一实施例中,存储控制器210是基于实体单元来管理可复写式非易失性存储器模块220中的存储单元。例如,在以下实施例中,是以一个实体区块作为一个实体单元的范例。然而,在另一实施例中,一个实体单元也可以是指任意数目的存储单元组成,视实务上的需求而定。此外,必须了解的是,当存储控制器210对可复写式非易失性存储器模块220中的存储单元(或实体单元)进行分组以执行对应的管理操作时,此些存储单元(或实体单元)是被逻辑地分组,而其实际位置并未更动。
存储控制器210会配置多个逻辑单元来映射可复写式非易失性存储器模块220的用以存储使用者数据的多个实体单元,并且主机系统10是通过逻辑单元来存取用以存储使用者数据的多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一个或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(logical block)、逻辑页面(logical page)或是逻辑扇区(logical sector)。一个逻辑单元可以是映射至一个或多个实体单元,其中实体单元可以是一个或多个实体地址、一个或多个实体扇、一个或多个实体程序化单元或者一个或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块。
此外,存储控制器210会建立逻辑转实体地址映射表(logical tophysicaladdress mapping table)与实体转逻辑地址映射表(physical to logicaladdressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与实体单元(如,实体抹除单元、实体程序化单元、实体扇区)的间的映射关系。换言之,存储控制器210可通过逻辑转实体地址映射表来查找一逻辑单元所映射的实体单元,并且存储控制器210可通过实体转逻辑地址映射表来查找一实体单元所映射的逻辑单元。然而,上述有关逻辑单元与实体单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在一实施例中,存储控制器210还包括缓冲存储器与电源管理电路。缓冲存储器是电性连接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据。电源管理电路是电性连接至处理器211并且用以控制存储装置20的电源。
在本实施例中,对应快速非易失性存储器接口标准的数据传输指令也称为快速非易失性存储器输入输出指令(NVMe I/O Command)。其中,快速非易失性存储器输入输出指令又可分为快速非易失性存储器输入输出读取指令(NVMe I/O Read Command)与快速非易失性存储器输入输出写入指令(NVMe I/O Write Command)。快速非易失性存储器输入输出指令的指令叙述的主要栏位(field)为起始逻辑区块地址(Starting LogicalBlockAddress,SLBA)、逻辑区块数目(Number of Logical Blocks)、第一实体区域页面指标(Physical Region Page Pointer 1,PRP1)与第二实体区域页面指标(PhysicalRegionPage Pointer 2,PRP2)。
起始逻辑区块地址用以指示地址(最大为64比特),此地址为所欲进行数据传输的多个逻辑区块地址范围中的排序最前面(第一个)的逻辑区块的地址。逻辑区块数目用以指示所欲进行数据传输的多个逻辑区块地址范围中逻辑区块的总数量。
应注意的是,在本实施例中,当逻辑区块数目的数值为“0”时,其表示逻辑区块数目为“1”个。换句话说,欲进行数据传输的多个逻辑区块地址范围中逻辑区块的总数量会为逻辑区块数目的数值加1。
配合起始逻辑区块地址及逻辑区块数目便可得知欲进行数据存取的逻辑区块(地址)的范围。举例来说,假设目前可复写式非易失性存储器模块220配置有6个逻辑区块LBA(0)~LBA(5)。当接受到快速非易失性存储器输入输出指令(如,其指令叙述为,SLBA=
“LBA(0)”,NLB=“2”),则可知道起始逻辑区块地址对应逻辑区块LBA(0)且逻辑区块LBA(0)为所欲存取的逻辑区块中排序最前面的逻辑区块,并且逻辑区块数目指示目前要存取的逻辑区块的总数量为3个。换句话说,在此例子中的快速非易失性存储器输入输出指令可表示为以逻辑区块LBA(0)~LBA(2)为目标来进行数据的存取(或传输)。
第一实体区域页面指标与第二实体区域页面指标用以指示主机存储器中的存储器页面地址,所述存储器页面地址会被用来指示数据存取的来源(对应写入指令)/目的地(对应读取指令)。由于对应快速非易失性存储器(NVMe)接口标准的指令叙述的每一个栏位的详细规范为习知技术,在此不再赘述。
以下开始会配合图1与后续的附图来详细说明本发明实施例所提供的对应快速非易失性存储器接口标准的数据传输指令的数据传输方法。
图2是根据本发明一实施例所示出的数据读取方法的流程图。在本实施例中,请同时参见图1与图2,在步骤S210中,处理器211从主机系统10接收读取指令,其中所述读取指令包括起始逻辑区块地址、逻辑区块数目、第一实体区域页面指标与第二实体区域页面指标,其中所述读取指令用以指示从可复写式非易失性存储器模块的至少一目标逻辑区块读取目标数据且将所读取的所述目标数据写入至主机存储器的至少一目标存储器页面。
具体来说,主机系统10会对存储装置20的存储控制器210下达多个读取指令或写入指令,以存取存储装置20中的数据。存储控制器210在接收(或读取)到主机系统10所下达的读取/写入指令后,会对存储装置20中的可复写式非易失性存储器模块220进行数据的读取/写入操作。
举例来说,在一实施例中,假设主机系统10的处理器110会在主机存储器120中划分暂存数据区及指令伫列区(Command Queue Area),并且存储控制器210还包括指令管理单元(Command management unit)。指令管理单元例如是具有指令缓冲器(CommandBuffer)、指令状态登录器(Command Status Register)与指令获取电路(CommandFetching Circuit)的电路元件。主机系统10会将所述读取指令或写入指令存储至主机存储器120中的命令伫列区,指令获取电路会从命令伫列区读取多个读取/写入指令,将所读取的指令存储至指令缓冲器。处理器211可根据固件或是软件的预定规则来选择要处理的指令。接着,处理器211会执行被选择的指令,并且根据所选择的指令(如,快速非易失性存储器输入输出指令)指示存储器接口控制电路213对可复写式非易失性存储器模块220来进行对应的数据传输操作。然而,本发明并不限于上述存储控制器210从主机系统10接收读取/写入指令的方式。
应注意的是,在一实施例中,存储控制器210也可预先读取(Prefetch)在主机存储器120的暂存数据区中的对应所述读取/写入指令的数据/信息。
如上所述,所述读取指令例如是快速非易失性存储器输入输出读取指令,其包括起始逻辑区块地址、逻辑区块数目、第一实体区域页面指标与第二实体区域页面指标。其中,经由起始逻辑区块地址与逻辑区块数目可获得在可复写式非易失性存储器模块220中欲读取的(至少一个)逻辑区块(也称,目标逻辑区块)地址的范围;以及经由第一实体区域页面指标与第二实体区域页面指标,可获得至少一存储器页面地址(如,第一实体区域页面指标所指示的第一存储器页面地址与第二实体区域页面指标所指示的第二存储器页面地址)。此外,存储控制器210可经由第一存储器页面地址与第二存储器页面地址来存储从所述目标逻辑区块中读取的数据(也称,目标数据)。换句话说,存储控制器210可根据所述读取指令的指示,从可复写式非易失性存储器模块的至少一目标逻辑区块读取目标数据且将所读取的所述目标数据写入至主机存储器的至少一目标存储器页面。
在步骤S220中,处理器211会指示数据传输管理电路212根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址。
具体来说,数据传输管理电路212会根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来计算用以传输数据的信息,并且根据所计算出的信息来辨识出所述目标逻辑区块(范围)中的每一个目标逻辑区块所对应的主机存储器中的存储器页面(也称,目标存储器页面)的地址,以在后续步骤中,读取目标逻辑区块所存储的目标数据,且将目标数据写入至对应的目标存储器页面地址。在下方的实施例中,会再详述计算的方式。
在步骤S230中,存储器接口控制电路213会从所述至少一目标逻辑区块中选择第一目标逻辑区块,读取所述第一目标逻辑区块所存储的第一目标数据,并且数据传输管理电路212会根据所获得的对应所述第一目标逻辑区块的第一目标存储器页面的地址将所读取的所述第一目标数据写入至所述第一目标存储器页面中。
具体来说,存储器接口控制电路213会判断所述目标逻辑区块中的每一个目标逻辑区块的状态是否为就绪状态(readiness),从所述目标逻辑区块中选择处于就绪状态的目标逻辑区块做为第一目标逻辑区块。其中,如上所述,所述就绪状态用来表示处于所述就绪状态的逻辑区块已准备传输(is ready to be transferred)。举例来说,在一实施例中,每一个逻辑区块会具有一个标记(Mark or Flag),其用来表示所属的逻辑区块目前是否处于忙碌(Busy)状态。例如,当一逻辑区块所对应的实体区块正在被程序化、被读取、被抹除或是被进行其他管理操作时,所述逻辑区块的标记会被记录为“第一状态”(如,比特值为“1”),以表示目前逻辑区块是忙碌的,不能进行其他操作。接着,若存储器接口控制电路213辨识到一逻辑区块的标记被记录为“第二状态”(如,比特值为“0”)时,存储器接口控制电路213会判定所述逻辑区块目前不是忙碌状态,即,存储器接口控制电路213会判定所述逻辑区块目前是就绪状态。
在本实施例中,被选择的第一目标逻辑区块可以不按照目标逻辑区块中全部逻辑区块的先后顺序来被选择。存储器接口控制电路213会直接根据逻辑区块是否为就绪状态来选择作为第一目标逻辑区块的目标逻辑区块。借此,可即时地对于已准备好进行数据传输的逻辑区块进行数据的读取。
举例来说,第一目标逻辑区块已经被选择(决定)后,存储器接口控制电路213会回报所述第一目标逻辑区块给数据传输管理电路212。同时,存储器接口控制电路213会读取在第一目标逻辑区块所存储的数据(如,存储器接口控制电路213会到第一目标逻辑区块所映射的实体区块中读取数据)。从第一目标逻辑区块读取的数据也称第一目标数据。应注意的是,每次回报的第一目标逻辑区块数量为1个。
对于每个所回报的第一目标逻辑区块,数据传输管理电路212可辨识出对应第一目标逻辑区块的目标存储器页面(也称,第一目标存储器页面)的地址。数据传输管理电路212会根据第一目标存储器页面的地址,将经由存储器接口控制电路213所读取的第一目标数据写入至第一目标存储器页面中。
以下会再配合第一~第三实施例来详细说明图2的流程步骤。
[第一实施例]
图4是根据本发明的第一实施例所示出的存储器页面的示意图。请参照图4,假设主机存储器120划分多个存储器页面400(0)~400(N)。“N”例如是15的正整数。其中,如图所示,存储器页面400(0)、400(1)、…、400(N)分别具有起始地址SA400(0)、SA400(1)、…、SA400(N)以及结束地址EA400(0)、EA400(1)、…、EA400(N)。假设所述存储器页面是由16进位来进行定址,则起始地址SA400(0)为“0000”;起始地址SA400(1)为“1000”;以及起始地址SA400(N)为“F000”。结束地址EA400(0)为“0FFF”;结束地址EA400(1)为“1FFF”;以及结束地址SA400(N)为“FFFF”。在此例子中,存储器页面400(0)~400(N)的大小为4096比特组(Bytes)。
图5是根据本发明的第一、第四实施例所示出的数据传输的示意图。请参照图5,存储器页面400(0)~400(N)如上方所述,不再赘述于此。此外,可复写式非易失性存储器模块220被配置有逻辑区块500(0)~500(M),其中“M”为正整数,其大小是根据厂商自身的需求而设定。为了方便说明,在本实施例中,逻辑区块的大小为4096比特组。
如图5左方表格所示,假设从主机系统10所接收的读取指令中的起始逻辑区块地址(SLBA)的值为“500(0)”、所述逻辑区块数目的值为“0”、第一实体区域页面指标的值为“0000”。
在本实施例中,数据传输管理电路212会根据逻辑区块500(0)~500(M)的每一个逻辑区块的大小(Logical Block Size,LBS)、存储器页面400(0)~400(N)的每一个存储器页面的大小(Memory Page Size,MPS)、起始逻辑区块地址、逻辑区块数目与第一实体区域页面指标(PRP1)判断是否需使用第二实体区域页面指标(PRP2)。
具体来说,数据传输管理电路212会根据逻辑区块的每一个逻辑区块的大小与逻辑区块数目计算目标数据的大小。例如,在此例子中,每一个逻辑区块的大小为4096比特组,并且逻辑区块数目为1个(NLB=“0”)。基此,目标数据的大小为4096比特组(如,4096(Bytes)*1=4096(Bytes))。
接着,数据传输管理电路212会根据每一个存储器页面的大小与第一实体区域页面指标判断第一存储器页面地址(如,“0000”)所属的存储器页面(如,存储器页面400(0))的结束地址(如,“0FFF”),并且将经由结束地址与第一存储器页面地址的间的空间作为初始存储器页面空间(以灰阶表示)。数据传输管理电路212会辨识初始存储器页面空间的大小(如,“0FFF”-“0000”+1=“1000”(16进位)=4096(10进位))。
在本实施例中,数据传输管理电路212会判断目标数据的大小是否大于所述初始存储器页面空间的大小。若目标数据的大小不大于初始存储器页面空间的大小,数据传输管理电路212会判定不需要使用第二实体区域页面指标(PRP2)。在此例子中,由于目标数据与初始存储器页面空间的大小相等(皆为4096比特组)。因此,对应第一实体区域页面指标(PRP1)所指示的第一存储器页面地址的初始存储器页面空间有足够的空间来存储目标数据。如此一来,便不需要利用第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息来判断其他可用来存储目标数据的存储器页面。
相对地,若目标数据的大小大于初始存储器页面空间的大小,数据传输管理电路212会判定需要使用第二实体区域页面指标。也就是说,若需使用第二实体区域页面指标,数据传输管理电路212会根据每一个逻辑区块的大小、每一个存储器页面的大小、起始逻辑区块地址、逻辑区块数目、第一实体区域页面指标与第二实体区域页面指标来获得至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址。以下会利用第二、第三实施例来说明上述操作的细节。
再回到图5,若不需使用第二实体区域页面指标,数据传输管理电路212会根据每一个逻辑区块的大小、每一个存储器页面的大小、起始逻辑区块地址、逻辑区块数目与第一实体区域页面指标来获得至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址。在此例子中,读取指令指示要读取的目标逻辑区块为逻辑区块500(0)。并且根据第一实体区域页面指标所指示的第一存储器页面地址,可得知逻辑区块500(0)所存储的目标数据将会从主机存储器120的存储器页面400(0)中的为“0000”的起始地址SAMP400(0)开始写入。换句话说,在此例子中,数据传输管理电路212所获得逻辑区块500(0)所对应的目标存储器页面的地址为“0000”(如,步骤S220)。
接着(如步骤S230),反应于存储器接口控制电路213辨识到逻辑区块500(0)为就绪状态,存储器接口控制电路213会选择逻辑区块500(0)作为第一目标逻辑区块,读取逻辑区块500(0)所存储的目标数据(即,第一目标数据),并且数据传输管理电路212会将所读取的目标数据从存储器页面地址“0000”(即,第一目标存储器页面的地址)开始写入至主机存储器120的存储器页面400(0)(即,第一目标存储器页面)。
[第二实施例]
第二实施例所使用的硬件与第一实施例的相同,第二实施例中所配置至可复写式非易失性存储器模块220的逻辑区块500(0)~500(M)的设定,以及存储器页面400(0)~400(N)的设定也相同于第一实施例(如,LBS与MPS的数值),不再赘述于此。第二实施例与第一实施例的不同的处在于第一实体区域页面指标(PRP1)的数值。此外,在第二实施例中,数据传输管理电路212会判定需要使用第二实体区域页面指标(PRP2)。
图6是根据本发明的第二、第五实施例所示出的数据传输的示意图。
请参照图6,如图6左方表格所示,假设从主机系统10所接收的读取指令中的起始逻辑区块地址(SLBA)的值为“500(0)”、所述逻辑区块数目(NLB)的值为“0”、第一实体区域页面指标(PRP1)的值为“0500”以及第二实体区域页面指标(PRP2)的值为“1000”。
在本实施例中,根据上述的读取指令,可知道目标逻辑区块为逻辑区块500(0),并且目标数据的大小为4096比特组(如,4096(Bytes)*1=4096(Bytes))。数据传输管理电路212会判定第一存储器页面地址(如,“0500”)所属的存储器页面(如,存储器页面400(0))的结束地址(如,“0FFF”),并且将经由结束地址与第一存储器页面地址的间的空间作为初始存储器页面空间(以灰阶表示)。数据传输管理电路212会辨识初始存储器页面空间的大小为2816比特组(如,“0FFF”-“0500”+1=“B00”(16进位)=2816(10进位))。
接着,数据传输管理电路212会判断目标数据的大小是否大于所述初始存储器页面空间的大小。在此例子中,由于目标数据的大小大于初始存储器页面空间的大小(4096>2816)。因此,数据传输管理电路212会判定需使用第二实体区域页面指标(PRP2)。换句话说,由于当前的初始存储器页面空间不足以存储所有的目标数据。数据传输管理电路212需要利用第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息来判断其他可用来存储(剩余的)目标数据的存储器页面。
在此例子中,读取指令指示要读取的目标逻辑区块为逻辑区块500(0)。并且根据第一实体区域页面指标所指示的第一存储器页面地址(如,“0500”),可得知逻辑区块500(0)所存储的目标数据将会从主机存储器120的存储器页面400(0)中的为“0500”的存储器页面地址开始写入。此外,在写满初始存储器页面空间后,剩余的目标数据会根据第二实体区域页面指标所指示的第二存储器页面地址(如,“1000”),开始从为“1000”的所述第二存储器页面地址(如图6所示的起始地址SA400(1))来继续写入至主机存储器120的存储器页面400(1)。换句话说,在此例子中,数据传输管理电路212所获得逻辑区块500(0)所对应的目标存储器页面的地址依序为“0500”与“1000”(如,步骤S220)。
接着(如步骤S230),反应于存储器接口控制电路213辨识到逻辑区块500(0)为就绪状态,存储器接口控制电路213会选择逻辑区块500(0)作为第一目标逻辑区块,读取逻辑区块500(0)所存储的目标数据(即,第一目标数据),并且数据传输管理电路212会将所读取的目标数据从存储器页面地址“0500”(即,第一目标存储器页面的地址)开始写入至主机存储器120的存储器页面400(0)(即,第一目标存储器页面),并且在将目标数据写入至存储器页面400(0)后,将剩余的未被写入至主机存储器120的目标数据(其大小为4096-2816=1280比特组)从存储器页面400(1)的起始地址SA400(1)开始写入。应注意的是,在图6中的存储器页面的灰阶区域即为目标数据的存储区域,其中所述目标数据的存储区域(目的地)的起始存储器页面地址为“0500”,并且所述目标数据的存储区域的结束存储器页面地址为“14FF”。所述目标数据的存储区域的所述结束存储器页面地址可根据剩余的目标数据的大小以及第二实体区域页面指标(PRP2)所指示的第二存储器页面地址来获得。例如,剩余的目标数据大小为1280比特组,其中,1280换算成16进位会成为“500”。接着,使用16进位,将第二存储器页面地址(如“1000”)加上剩余的目标数据大小(如,“500”)再减去1所获得的值即为所述结束存储器页面地址(如,“14FF”)。
[第三实施例]
第三实施例所使用的硬件与第一实施例的相同,第三实施例中所配置至可复写式非易失性存储器模块220的逻辑区块500(0)~500(M)的设定,以及存储器页面400(0)~400(N)的设定也相同于第一实施例(如,LBS与MPS的数值),不再赘述于此。第三实施例和第一、第二实施例不同的处在于,在第三实施例中,数据传输管理电路212会判定需要使用第二实体区域页面指标(PRP2),其中第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息是表示实体区域页面指标清单(PRP List)的清单起始地址。
图7是根据本发明的第三、第六实施例所示出的数据传输的示意图。
请参照图7,如图7左方表格所示,假设从主机系统10所接收的读取指令中的起始逻辑区块地址(SLBA)的值为“500(0)”、所述逻辑区块数目(NLB)的值为“2”、第一实体区域页面指标(PRP1)的值为“0000”以及第二实体区域页面指标(PRP2)的值为“1000”。
在本实施例中,根据上述的读取指令,可知道目标逻辑区块(的范围)为逻辑区块500(0)~500(2),并且目标数据的大小为12288比特组(如,4096(Bytes)*3=12288(Bytes))。数据传输管理电路212会判定第一存储器页面地址(如,“0000”)所属的存储器页面(如,存储器页面400(0))的结束地址(如,“0FFF”),并且将经由结束地址与第一存储器页面地址的间的空间作为初始存储器页面空间。数据传输管理电路212会辨识初始存储器页面空间的大小为4096比特组(如,“0FFF”-“0000”+1=“1000”(16进位)=4096(10进位))。
接着,数据传输管理电路212会判断目标数据的大小是否大于所述初始存储器页面空间的大小。在此例子中,由于目标数据的大小大于初始存储器页面空间的大小(12288>4096)。因此,数据传输管理电路212会判定需使用第二实体区域页面指标(PRP2)。
接着,在判定需使用第二实体区域页面指标(PRP2)后,数据传输管理电路212会判断第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息是否表示实体区域页面指标清单(PRP List)的清单起始地址。具体来说,若目标数据在写入初始存储器页面空间后的剩余的目标数据的大小大于一个存储器页面的大小,则需要使用多个存储器页面来存储剩余的目标数据。此时,第二实体区域页面指标(PRP2)的第二存储器页面地址会用来表示一个实体区域页面指标清单(PRP List)的清单起始地址。所述实体区域页面指标清单会具有许多条目。其中,所述条目中的每一个条目记录存储器页面的起始地址。应注意的是,若所述差值不大于一个存储器页面的大小,数据传输管理电路212会辨识第二实体区域页面指标的第二存储器页面地址不为实体区域页面指标清单(PRP List)的清单起始地址,而为一存储器页面的起始地址。例如,在上述的第二实施例,其他不是存储至初始存储器页面空间的目标数据,其仅需要一个存储器页面来存储。因此,第二实施例的第二实体区域页面指标的第二存储器页面地址不是实体区域页面指标清单(PRP List)的清单起始地址,而是一存储器页面的起始地址。
更详细来说,数据传输管理电路212会计算目标数据的大小减去初始存储器页面空间的大小的差值,并且判断此差值是否大于一个存储器页面的大小。所述差值也可表示目标数据在写满初始存储器空间后所剩余的(还未被存储至主机存储器的)目标数据。若所述差值大于一个存储器页面的大小,数据传输管理电路212会辨识第二实体区域页面指标的第二存储器页面地址为实体区域页面指标清单(PRP List)的清单起始地址(因为,需要实体区域页面指标清单来记录用以存储剩余的目标数据的两个以上的存储器页面的起始地址)。应注意的是,所述清单起始地址是表示所述实体区域页面指标清单的第一个条目(如,条目701(0))的起始地址,并且所述清单起始地址可不为存储器页面的起始地址。
在本实施例中,数据传输管理电路212会将所述差值除以每个存储器页面的大小(MPS)的商,再对的无条件进位所获得的值作为实体区域页面指标清单所记录的条目的数目。也就是说,数据传输管理电路212会判断(除了初始存储器页面空间外)还需要多少存储器页面来存储目标数据,并且对应地顺序记录(除了初始存储器页面空间外)所述要存储目标数据的所述存储器页面的起始地址至实体区域页面指标清单的条目中。每个条目的大小为适合的可记录地址信息的空间,本发明不限于此。
应注意的是,每个实体区域页面指标清单的最大容量为一个存储器页面的大小。也就是说,实体区域页面指标清单最多可记录的条目数量最大为一个存储器页面的大小除以每个条目的大小所获得的商。每个实体区域页面指标清单的大小为对应的清单起始地址至实体区域页面指标清单所属的存储器页面的结束地址的间的空间的大小。例如,实体区域页面指标清单701可具有条目701(0)~701(P),其中P为正整数。
在一实施例中,若(除了初始存储器页面空间外)所述要存储目标数据的所述存储器页面的数目超过了一个实体区域页面指标清单最多可记录的条目数量,则数据传输管理电路212会辨识到所述实体区域页面指标清单的最后一个条目会用来记录(接续的)另一个实体区域页面指标清单的起始地址。借此,数据传输管理电路212可通过读取所述另一个实体区域页面指标清单,以继续获得其他的存储器页面的起始地址。
在此例子中,读取指令指示要读取的目标逻辑区块为逻辑区块500(0)~500(2)。并且,根据第一实体区域页面指标所指示的第一存储器页面地址(如,“0000”),可得知逻辑区块500(0)所存储的目标数据将会从主机存储器120的存储器页面400(0)中的为“0000”的存储器页面地址开始写入。此外,除了欲写入至初始存储器页面空间的目标数据,对于其他部份的目标数据,数据传输管理电路212会根据第二实体区域页面指标所指示的第二存储器页面地址(如,“1000”),开始从为“1000”的所述第二存储器页面地址(如图7所示的起始地址SA400(1))来读取实体区域页面指标清单701中的条目,以获得其他部份的目标数据所欲存储的存储器页面的地址。
在本实施例中,目标数据的大小为3个逻辑区块的大小,即12288比特组。除了写入至初始存储器页面的部份目标数据(大小为4096比特组,存储于逻辑区块500(0))的外,其他的目标数据(大小为8192比特组,存储于逻辑区块500(1)、500(2))会需要两个存储器页面来存储。基此,数据传输管理电路212会读取实体区域页面指标清单701的条目701(0)、701(1)中所记录的地址,以获得欲对应逻辑区块500(1)、500(2)的存储器页面的起始地址(如图7所示,条目701(0)、701(1)分别记录起始地址SA400(2)“2000”、起始地址SA400(3)“3000”),进而将存储于逻辑区块500(1)、500(2)的目标数据写入至主机存储器120的存储器页面400(2)、400(3)。值得一提的是,在本实施例中,数据传输管理电路212会读取存储在主机存储器120中的实体区域页面指标清单701来获得每个条目所记录的地址。应注意的是,在此例子中,实体区域页面指标清单701会具有条目701(0)与条目701(1),即,
“P”的数值为1。
根据上述的说明,在本实施例中,数据传输管理电路212所获得逻辑区块500(0)~500(2)所分别对应的目标存储器页面的地址依序为“0000”、“2000”与“3000”(如,步骤S220)。此外,本发明所提供的数据传输(读取/写入)方法,可以单独且分别辨识存储目标数据的逻辑区块以及其所对应的存储器页面,进而可不需要依序按照对应数据读取/写入指令的目标逻辑区块的排列顺序来进行目标数据的存取。以下会通过第四、第五、第六实施例来叙述本发明所提供的数据写入方法。
接着(如步骤S230),反应于存储器接口控制电路213辨识到逻辑区块500(0)~500(2)中的其中一个逻辑区块为就绪状态,存储器接口控制电路213会选择为就绪状态的逻辑区块作为第一目标逻辑区块,以开始进行读取目标数据的操作。应注意的是,先回报为就绪状态的逻辑区块,会先进行数据传输的操作。
举例来说,如图7所示,逻辑区块500(0)对应存储器页面400(0);逻辑区块500(1)对应存储器页面400(2);逻辑区块500(0)对应存储器页面400(3)。假设存储器接口控制电路213先回报逻辑区块500(1)为就绪状态(即,逻辑区块500(1)为第一目标逻辑区块)。接着,存储器接口控制电路213会读取存储在逻辑区块500(1)中的目标数据(即,第一目标数据),并且数据传输管理电路212会将所读取的目标数据从存储器页面400(2)(即,第一目标存储器页面)的地址“2000”(即,第一目标存储器页面的地址)开始写入至主机存储器120。在写入逻辑区块500(1)的目标数据至存储器页面400(2)后,数据传输管理电路212会再辨识后续为就绪状态的逻辑区块500(0)或逻辑区块500(2),并且进行相似于上述说明的相应的数据传输操作,不再赘述于此。
图3是根据本发明一实施例所示出的数据写入方法的流程图。
在本实施例中,请同时参见图1与图3,在步骤S310中,处理器211从主机系统10接收写入指令,其中所述写入指令包括起始逻辑区块地址、逻辑区块数目、第一实体区域页面指标与第二实体区域页面指标,其中所述写入指令用以指示将目标数据写入至可复写式非易失性存储器模块的至少一目标逻辑区块中,其中对应所述写入指令的所述目标数据被存储于主机存储器的多个存储器页面中的至少一目标存储器页面中。
如上所述,所述写入指令例如是快速非易失性存储器输入输出写入指令,其包括起始逻辑区块地址、逻辑区块数目、第一实体区域页面指标与第二实体区域页面指标。其中,经由起始逻辑区块地址与逻辑区块数目可获得在可复写式非易失性存储器模块220中欲写入的(至少一个)逻辑区块(也称,目标逻辑区块)地址的范围;以及经由第一实体区域页面指标与第二实体区域页面指标,可获得至少一存储器页面地址(如,第一实体区域页面指标所指示的第一存储器页面地址与第二实体区域页面指标所指示的第二存储器页面地址)。此外,存储控制器210可经由第一存储器页面地址与第二存储器页面地址来读取对应写入指令的(欲被写入至目标逻辑区块的)数据(也称,目标数据),并且写入至对应的目标逻辑区块中。换句话说,存储控制器210可根据所述写入指令的指示,从主机存储器120的至少一目标存储器页面读取目标数据且将所读取的所述目标数据写入至可复写式非易失性存储器模块220的至少一目标逻辑区块。
在步骤S320中,处理器211会指示数据传输管理电路212根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址。此步骤相似于步骤S220,不再赘述于此。
在步骤S330中,存储器接口控制电路213会从所述至少一目标逻辑区块中选择第一目标逻辑区块,数据传输管理电路212会根据所获得的对应所述第一目标逻辑区块的第一目标存储器页面的地址来读取第一目标数据,并且将所读取的所述第一目标数据写入至所述第一目标逻辑区块中。
具体来说,如上所述,存储器接口控制电路213会判断所述目标逻辑区块中的每一个目标逻辑区块的状态是否为就绪状态(readiness),从所述目标逻辑区块中选择处于就绪状态的目标逻辑区块做为第一目标逻辑区块。有关就绪状态的说明已详述于上,不再赘述于此。在本实施例中,被选择的第一目标逻辑区块可以不按照目标逻辑区块中全部逻辑区块的先后顺序来被选择。存储器接口控制电路213会直接根据逻辑区块是否为就绪状态来选择作为第一目标逻辑区块的目标逻辑区块。借此,可即时地对于已准备好进行数据传输的逻辑区块进行数据的写入。
举例来说,第一目标逻辑区块已经被选择(决定)后,存储器接口控制电路213会回报所述第一目标逻辑区块给数据传输管理电路212所述第一目标逻辑区块已准备好进行传输。对于每个所回报的第一目标逻辑区块,数据传输管理电路212可辨识出对应第一目标逻辑区块的目标存储器页面(也称,第一目标存储器页面)的地址,并且据此从第一目标存储器页面中读取第一目标数据。接着,数据传输管理电路212会经由存储器接口控制电路213将所读取的第一目标数据写入至第一目标逻辑区块中(如,存储器接口控制电路213会写入第一目标数据至第一目标逻辑区块所映射的实体区块中)。应注意的是,每次回报的第一目标逻辑区块数量为1个。
以下会再配合第四、第五与第六实施例来详细说明图3的流程步骤。第四、第五与第六实施例分别相似于第一、第二与第三实施例,并且会相同地分别通过图5、图6与图7来做说明。有关相同于第一、第二与第三实施例的硬件与附图元件的说明,不再赘述于此。以下的实施例仅说明本发明所提供的数据传输方法,其处理写入指令(如,第四、第五与第六实施例)与读取指令(如,第一、第二与第三实施例)的不同的处。
[第四实施例]
第四实施例所使用的硬件与第一实施例的相同,第四实施例中所配置至可复写式非易失性存储器模块220的逻辑区块500(0)~500(M)的设定,以及存储器页面400(0)~400(N)的设定也相同于第一实施例(如,LBS与MPS的数值),不再赘述于此。第四实施例与第一实施例的不同的处在于,第四实施例主要说明关于写入指令的数据传输方法(如,对应图3),但第一实施例主要说明关于读取指令的数据传输方法(如,对应图2)。
请参照图5,如图5左方表格所示,假设从主机系统10所接收的写入指令中的起始逻辑区块地址(SLBA)的值为“500(0)”、所述逻辑区块数目的值为“0”、第一实体区域页面指标的值为“0000”。
在本实施例中,数据传输管理电路212会根据逻辑区块500(0)~500(M)的每一个逻辑区块的大小(Logical Block Size,LBS)、存储器页面400(0)~400(N)的每一个存储器页面的大小(Memory Page Size,MPS)、起始逻辑区块地址、逻辑区块数目与第一实体区域页面指标(PRP1)判断是否需使用第二实体区域页面指标(PRP2)。
具体来说,在本实施例中,数据传输管理电路212会判断目标数据的大小是否大于所述初始存储器页面空间的大小。若目标数据的大小不大于初始存储器页面空间的大小,数据传输管理电路212会判定不需要使用第二实体区域页面指标(PRP2)。详细的计算方式与方法已说明于上,不再赘述于此。在此例子中,由于目标数据与初始存储器页面空间的大小相等(皆为4096比特组)。因此,对应第一实体区域页面指标(PRP1)所指示的第一存储器页面地址的初始存储器页面空间已存储全部的目标数据。如此一来,数据传输管理电路212会判定不需要利用第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息来判断(辨识)其他用来存储目标数据的存储器页面。
再回到图5,若不需使用第二实体区域页面指标,数据传输管理电路212会根据每一个逻辑区块的大小、每一个存储器页面的大小、起始逻辑区块地址、逻辑区块数目与第一实体区域页面指标来获得至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址。在此例子中,写入指令指示要写入的目标逻辑区块为逻辑区块500(0)。并且根据第一实体区域页面指标所指示的第一存储器页面地址,可得知欲存储于逻辑区块500(0)的目标数据已经从主机存储器120的存储器页面400(0)中的为“0000”的起始地址SAMP400(0)被存储。换句话说,在此例子中,数据传输管理电路212所获得逻辑区块500(0)所对应的目标存储器页面的地址为“0000”(如,步骤S320)。
接着(如,步骤S330),反应于存储器接口控制电路213辨识到逻辑区块500(0)为就绪状态,存储器接口控制电路213会选择逻辑区块500(0)作为第一目标逻辑区块,并且回报给数据传输电路212。接着,数据传输电路212辨识对应逻辑区块500(0)的存储器页面(即,第一目标存储器页面)的地址,并且从存储器页面地址“0000”(即,第一目标存储器页面的地址)开始读取目标数据(即,第一目标数据)。接着,数据传输电路212将所读取的第一目标数据写入至逻辑区块500(0)。
[第五实施例]
第五实施例所使用的硬件与第四实施例的相同,第五实施例中所配置至可复写式非易失性存储器模块220的逻辑区块500(0)~500(M)的设定,以及存储器页面400(0)~400(N)的设定也相同于第四实施例(如,LBS与MPS的数值),不再赘述于此。第五实施例与第四实施例的不同的处在于第一实体区域页面指标(PRP1)的数值。此外,在第五实施例中,数据传输管理电路212会判定需要使用第二实体区域页面指标(PRP2)。
请参照图6,如图6左方表格所示,假设从主机系统10所接收的写入指令中的起始逻辑区块地址(SLBA)的值为“500(0)”、所述逻辑区块数目(NLB)的值为“0”、第一实体区域页面指标(PRP1)的值为“0500”以及第二实体区域页面指标(PRP2)的值为“1000”。
在此例子中,由于目标数据的大小大于初始存储器页面空间的大小(4096>2816)。因此,数据传输管理电路212会判定需使用第二实体区域页面指标(PRP2)。换句话说,由于当前的初始存储器页面空间不足以存储所有的目标数据。数据传输管理电路212需要利用第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息来判断其他被用来存储目标数据的存储器页面。
在此例子中,写入指令指示要读取的目标逻辑区块为逻辑区块500(0)。并且根据第一实体区域页面指标所指示的第一存储器页面地址(如,“0500”),可得知逻辑区块500(0)所欲存储的目标数据已从主机存储器120的存储器页面400(0)中的为“0500”的存储器页面地址被存储。此外,除了存储在初始存储器页面空间的目标数据,其他部份的目标数据是从第二实体区域页面指标所指示的第二存储器页面地址(如,“1000”)被存储。换句话说,在此例子中,数据传输管理电路212所获得逻辑区块500(0)所对应的目标存储器页面的地址依序为“0500”与“1000”(如,步骤S320)。
接着(如步骤S330),反应于存储器接口控制电路213辨识到逻辑区块500(0)为就绪状态,存储器接口控制电路213会选择逻辑区块500(0)作为第一目标逻辑区块,并且回报给数据传输电路212。接着,数据传输电路212辨识对应逻辑区块500(0)的存储器页面(即,第一目标存储器页面)的地址,并且依序从存储器页面地址“0500”与“0000”读取目标数据(即,第一目标数据)。接着,数据传输电路212将所读取的第一目标数据写入至逻辑区块500(0)。
应注意的是,在图6中的存储器页面的灰阶区域即为目标数据的读取区域,其中所述目标数据的读取区域(来源地)的起始存储器页面地址为“0500”,并且所述目标数据的读取区域的结束存储器页面地址为“14FF”。所述目标数据的读取区域的所述结束存储器页面地址可根据所述其他部份的目标数据的大小以及第二实体区域页面指标(PRP2)所指示的第二存储器页面地址来获得。
[第六实施例]
第六实施例所使用的硬件与第四实施例的相同,第六实施例中所配置至可复写式非易失性存储器模块220的逻辑区块500(0)~500(M)的设定,以及存储器页面400(0)~400(N)的设定也相同于第四实施例(如,LBS与MPS的数值),不再赘述于此。第六实施例和第四、第五实施例不同的处在于,在第六实施例中,数据传输管理电路212会判定需要使用第二实体区域页面指标(PRP2),其中第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息是表示实体区域页面指标清单(PRP List)的清单起始地址。
请参照图7,如图7左方表格所示,假设从主机系统10所接收的写入指令中的起始逻辑区块地址(SLBA)的值为“500(0)”、所述逻辑区块数目(NLB)的值为“2”、第一实体区域页面指标(PRP1)的值为“0000”以及第二实体区域页面指标(PRP2)的值为“1000”。
在本实施例中,根据上述的写入指令,可知道目标逻辑区块(的范围)为逻辑区块500(0)~500(2),并且目标数据的大小为12288比特组(如,4096(Bytes)*3=12288(Bytes))。数据传输管理电路212会辨识初始存储器页面空间的大小为4096比特组(如,“0FFF”-
“0000”+1=“1000”(16进位)=4096(10进位))。
接着,数据传输管理电路212会判断目标数据的大小是否大于所述初始存储器页面空间的大小。在此例子中,由于目标数据的大小大于初始存储器页面空间的大小(12288>4096)。因此,数据传输管理电路212会判定需使用第二实体区域页面指标(PRP2)。
接着,在判定需使用第二实体区域页面指标(PRP2)后,数据传输管理电路212会判断第二实体区域页面指标(PRP2)所指示的第二存储器页面地址的信息是否表示实体区域页面指标清单(PRP List)的清单起始地址。具体来说,若初始存储器页面空间不足以存储所有的目标数据,并且其他部份的目标数据(非存储在初始存储器空间的目标数据)的大小大于一个存储器页面的大小,则会判定需要使用多个存储器页面来存储剩余的目标数据。此时,第二实体区域页面指标(PRP2)的第二存储器页面地址会用来表示一个实体区域页面指标清单(PRP List)的清单起始地址。所述实体区域页面指标清单会具有许多条目。其中,所述条目中的每一个条目记录存储器页面的起始地址。应注意的是,若所述差值不大于一个存储器页面的大小,数据传输管理电路212会辨识第二实体区域页面指标的第二存储器页面地址不为实体区域页面指标清单(PRP List)的清单起始地址,而为一存储器页面的起始地址。
更详细来说,数据传输管理电路212会计算目标数据的大小减去初始存储器页面空间的大小的差值,并且判断此差值是否大于一个存储器页面的大小。所述差值也表示不是被存储在初始存储器的其他部份的目标数据的大小。若所述差值大于一个存储器页面的大小,数据传输管理电路212会辨识第二实体区域页面指标的第二存储器页面地址为实体区域页面指标清单(PRP List)的清单起始地址(因为,需要实体区域页面指标清单来记录用以存储其他部份的目标数据的两个以上的存储器页面的起始地址)。有关实体区域页面指标清单的架构已说明于上,不再赘述于此。
值得一提的是,主机系统10在发出写入指令时,会先将对应写入指令的所有目标数据,对应目标数据的实体区域页面指标清单写入至主机存储器120。
在此例子中,写入指令指示要写入的目标逻辑区块为逻辑区块500(0)~500(2)。并且,根据第一实体区域页面指标所指示的第一存储器页面地址(如,“0000”),可得知欲存储至逻辑区块500(0)的目标数据是从主机存储器120的存储器页面400(0)中的为“0000”的存储器页面地址被存储。此外,除了存储在初始存储器页面空间(即,整个存储器页面400(0))的目标数据,其他部份的目标数据的位置可根据读取实体区域页面指标清单701中的条目来获得。
在本实施例中,目标数据的大小为3个逻辑区块的大小,即12288比特组。除了已存储至初始存储器页面的部份目标数据(大小为4096比特组,已存储于存储器页面400(0))的外,其他部份的目标数据(大小为8192比特组,欲存储于2个逻辑区块500(1)、500(2))会需要2个存储器页面来存储。基此,数据传输管理电路212会读取实体区域页面指标清单701的(2个)条目701(0)、701(1)中所记录的地址,以获得对应逻辑区块500(1)、500(2)的存储器页面的起始地址(如图7所示,条目701(0)、701(1)分别记录起始地址SA400(2)“2000”、起始地址SA400(3)“3000”),进而将存储于主机存储器120的存储器页面400(2)、400(3)的目标数据写入至逻辑区块500(1)、500(2)。值得一提的是,在本实施例中,数据传输管理电路212会读取存储在主机存储器120中的实体区域页面指标清单701来获得每个条目所记录的地址。
根据上述的说明,在本实施例中,数据传输管理电路212所获得逻辑区块500(0)~500(2)所分别对应的目标存储器页面的地址依序为“0000”、“2000”与“3000”(如,步骤S320)。
接着(如步骤S330),反应于存储器接口控制电路213辨识到逻辑区块500(0)~500(2)中的其中一个逻辑区块为就绪状态,存储器接口控制电路213会选择为就绪状态的逻辑区块作为第一目标逻辑区块,以开始进行写入对应第一目标数据逻辑区块的目标数据(其读取自对应第一目标逻辑区块的第一目标存储器页面)至第一目标逻辑区块的操作。应注意的是,对于先回报为就绪状态的逻辑区块,会先对其进行数据传输的操作。
举例来说,如图7所示,逻辑区块500(0)对应存储器页面400(0);逻辑区块500(1)对应存储器页面400(2);逻辑区块500(0)对应存储器页面400(3)。假设存储器接口控制电路213先回报逻辑区块500(1)为就绪状态(即,逻辑区块500(1)为第一目标逻辑区块)。接着,数据传输管理电路212会辨识逻辑区块500(1)所对应的存储器页面400(2),并且从存储器页面400(2)(即,第一目标存储器页面)的地址“2000”(即,第一目标存储器页面的地址)读取第一目标数据。
接着,存储传输管理电路212会将所读取的目第一标数据写入至逻辑区块500(1)。在写入对应逻辑区块500(1)的目标数据后,数据传输管理电路212会再辨识后续为就绪状态的逻辑区块500(0)或逻辑区块500(2),并且进行相似于上述说明的相应的数据传输操作,不再赘述于此。
上述实施例所提供的数据写入方法,可以单独且分别辨识存储目标数据的逻辑区块以及其所对应的存储器页面,进而可不需要依序按照对应数据写入指令的目标逻辑区块的排列顺序来进行目标数据的写入。
应注意的是,上述的实施例中所描述的逻辑区块也可在不脱离本发明的精神下,根据厂商需求修改为其他形式的存储单位(如,逻辑页面或逻辑单元)。目标数据可存储在一个或多个逻辑区块中。存储在多个逻辑区块的目标数据可依据所存储的逻辑区块而单独地与主机存储器的对应的存储器页面进行数据传输。
值得一提的是,上述的实施例中,逻辑区块的大小与存储器页面相等。然而,在其他实施例中,逻辑区块的大小可以小于或是大于存储器页面。但,都可以参照上方实施例的方式,根据读取/写入指令来找出用来存储一笔目标数据的多个逻辑区块中的每一个逻辑区块所对应的存储器页面的地址。
综上所述,本发明的多个实施例所提供的数据传输(读取/写入)方法,可使存储控制器不需等待所有存储单元都准备好被存取,并且可不循序地直接存取已经准备好被存取的部分存储单元(如,直接存取为就绪状态的逻辑区块所存储的数据,以独立地存取该笔目标数据的部分目标数据,而不需要从用以存储该笔目标数据的第一个逻辑区块开始进行存取),进而避免存储控制器花费过多的时间于等待上并且减少为了循序存取而耗费的暂存空间与资源。同时,可利用硬件来快速地进行对于目标逻辑区块所对应的目标存储器页面的地址的计算,增加了处理数据传输的速度,也减少了存储控制器的处理器的负担,进而增进了存储装置与其所进行的数据传输操作的工作效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视随附的权利要求书所界定的范围为准。
Claims (20)
1.一种数据读取方法,适用于从一可复写式非易失性存储器模块中读取一数据至一主机系统的一主机存储器中,其中所述可复写式非易失性存储器模块被配置多个逻辑区块,并且所述主机存储器具有多个存储器页面,所述方法包括:
从所述主机系统接收一读取指令,其中所述读取指令包括一起始逻辑区块地址、一逻辑区块数目、一第一实体区域页面指标与一第二实体区域页面指标,其中所述读取指令用以指示从所述可复写式非易失性存储器模块的至少一目标逻辑区块读取一目标数据且将所读取的所述目标数据写入至所述主机存储器的至少一目标存储器页面,其中所述目标数据是从所述至少一目标逻辑区块中的一起始逻辑区块开始被存储,其中所述起始逻辑区块地址用以指示所述起始逻辑区块的地址,所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目,所述第一实体区域页面指标用以指示所述主机存储器的一第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的一第二存储器页面地址;
根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址;以及
从所述至少一目标逻辑区块中选择一第一目标逻辑区块,读取所述第一目标逻辑区块所存储的一第一目标数据,并且根据所获得的对应所述第一目标逻辑区块的一第一目标存储器页面的地址将所读取的所述第一目标数据写入至所述第一目标存储器页面中,
其中上述从所述至少一目标逻辑区块中选择所述第一目标逻辑区块的步骤包括:
判断所述至少一目标逻辑区块中的每一个目标逻辑区块的状态是否为一就绪状态,从所述至少一目标逻辑区块中选择处于所述就绪状态的一目标逻辑区块做为一第一目标逻辑区块,其中所述就绪状态用以表示处于所述就绪状态的逻辑区块已准备传输。
2.根据权利要求1所述的数据读取方法,其中上述根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的步骤包括:
根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标;
若需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址;以及
若不需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标来获得所述目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
3.根据权利要求2所述的数据读取方法,其中上述根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标的步骤包括:
根据所述多个逻辑区块的每一个逻辑区块的所述大小与所述逻辑区块数目计算所述目标数据的大小;
根据所述多个存储器页面的每一个存储器页面的所述大小与所述第一实体区域页面指标判断所述第一存储器页面地址所属的存储器页面的一结束地址,并且将经由所述结束地址与所述第一存储器页面地址之间的空间作为一初始存储器页面空间;以及
若所述目标数据的所述大小大于所述初始存储器页面空间的大小,判定需使用所述第二实体区域页面指标。
4.根据权利要求3所述的数据读取方法,其中上述若需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的步骤包括:
计算所述目标数据的所述大小减去所述初始存储器页面空间的所述大小的一差值;
若所述差值大于所述多个存储器页面的每一个存储器页面的所述大小,所述第二实体区域页面指标的所述第二存储器页面地址为一实体区域页面指标清单的一清单起始地址,其中所述实体区域页面指标清单存储多个条目,其中所述多个条目中的每一个条目记录一存储器页面地址;以及
根据所述初始存储器页面空间与所述实体区域页面指标清单来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
5.根据权利要求4所述的数据读取方法,其中上述若需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的步骤还包括:
若所述差值不大于所述多个存储器页面的每一个存储器页面的所述大小,所述第二实体区域页面指标的所述第二存储器页面地址为一剩余存储器页面的一起始地址;以及
根据所述初始存储器页面空间与所述剩余存储器页面的所述起始地址来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
6.一种数据写入方法,适用于从一主机系统的一主机存储器将一数据写入至一可复写式非易失性存储器模块中,其中所述可复写式非易失性存储器模块被配置多个逻辑区块,并且所述主机存储器具有多个存储器页面,所述方法包括:
从所述主机系统接收一写入指令,其中所述写入指令包括一起始逻辑区块地址、一逻辑区块数目、一第一实体区域页面指标与一第二实体区域页面指标,其中所述写入指令用以指示将一目标数据写入至所述可复写式非易失性存储器模块的至少一目标逻辑区块中,其中所述至少一目标逻辑区块中排序在最前面的逻辑区块为一起始逻辑区块,其中所述起始逻辑区块地址用以指示所述起始逻辑区块的地址,所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目,所述第一实体区域页面指标用以指示所述主机存储器的一第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的一第二存储器页面地址,其中对应所述写入指令的所述目标数据被存储于所述主机存储器的所述多个存储器页面中的至少一目标存储器页面中;
根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址,其中每一个目标逻辑区块所分别对应的目标存储器页面为所述至少一目标存储器页面的其中的一;以及
从所述至少一目标逻辑区块中选择一第一目标逻辑区块,根据所获得的对应所述第一目标逻辑区块的一第一目标存储器页面的地址来读取一第一目标数据,并且将所读取的所述第一目标数据写入至所述第一目标逻辑区块中,
其中上述从所述至少一目标逻辑区块中选择所述第一目标逻辑区块的步骤包括:
判断所述至少一目标逻辑区块中的每一个目标逻辑区块的状态是否为一就绪状态,从所述至少一目标逻辑区块中选择处于所述就绪状态的一目标逻辑区块做为一第一目标逻辑区块,其中所述就绪状态用以表示处于所述就绪状态的逻辑区块已准备传输。
7.根据权利要求6所述的数据写入方法,其中上述根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的步骤包括:
根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标;
若需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址;以及
若不需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标来获得所述目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
8.根据权利要求7所述的数据写入方法,其中上述根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标的步骤包括:
根据所述多个逻辑区块的每一个逻辑区块的所述大小与所述逻辑区块数目计算所述目标数据的大小;
根据所述多个存储器页面的每一个存储器页面的所述大小与所述第一实体区域页面指标判断所述第一存储器页面地址所属的存储器页面的一结束地址,并且将经由所述结束地址与所述第一存储器页面地址之间的空间作为一初始存储器页面空间;以及
若所述目标数据的所述大小大于所述初始存储器页面空间的大小,判定需使用所述第二实体区域页面指标。
9.根据权利要求8所述的数据写入方法,其中上述若需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的步骤包括:
计算所述目标数据的所述大小减去所述初始存储器页面空间的所述大小的一差值;
若所述差值大于所述多个存储器页面的每一个存储器页面的所述大小,所述第二实体区域页面指标的所述第二存储器页面地址为一实体区域页面指标清单的一清单起始地址,其中所述实体区域页面指标清单存储多个条目,其中所述多个条目中的每一个条目记录一存储器页面地址;以及
根据所述初始存储器页面空间与所述实体区域页面指标清单来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
10.根据权利要求9所述的数据写入方法,其中上述若需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的步骤还包括:
若所述差值不大于所述多个存储器页面的每一个存储器页面的所述大小,所述第二实体区域页面指标的所述第二存储器页面地址为一剩余存储器页面的一起始地址;以及
根据所述初始存储器页面空间与所述剩余存储器页面的所述起始地址来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
11.一种存储控制器,用于控制配置有一可复写式非易失性存储器模块的一存储装置,所述存储控制器包括:
一连接接口电路,用以电性连接至一主机系统,其中所述主机系统配置有一主机存储器,其中所述主机存储器具有多个存储器页面;
一存储器接口控制电路,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块被配置多个逻辑区块;
一处理器,电性连接至所述连接接口电路及所述存储器接口控制电路;以及
一数据传输管理电路,电性连接至所述处理器、所述连接接口电路及所述存储器接口控制电路,
其中所述处理器用以从所述主机系统接收一读取指令,其中所述读取指令包括一起始逻辑区块地址(SLBA)、一逻辑区块数目、一第一实体区域页面指标与一第二实体区域页面指标,其中所述读取指令用以指示从所述可复写式非易失性存储器模块的至少一目标逻辑区块读取一目标数据且将所读取的所述目标数据写入至所述主机存储器的至少一目标存储器页面,其中所述目标数据是从所述至少一目标逻辑区块中的一起始逻辑区块开始被存储,其中所述起始逻辑区块地址用以指示所述起始逻辑区块的地址,所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目,所述第一实体区域页面指标用以指示所述主机存储器的一第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的一第二存储器页面地址,
其中所述处理器用以指示所述数据传输管理电路根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址,
其中所述存储器接口控制电路用以从所述至少一目标逻辑区块中选择一第一目标逻辑区块,并且读取所述第一目标逻辑区块所存储的一第一目标数据,
其中数据传输管理电路用以根据所获得的对应所述第一目标逻辑区块的一第一目标存储器页面的地址将所读取的所述第一目标数据写入至所述第一目标存储器页面中,
其中在上述所述存储器接口控制电路用以从所述至少一目标逻辑区块中选择所述第一目标逻辑区块的运作中,
所述存储器接口控制电路判断所述至少一目标逻辑区块中的每一个目标逻辑区块的状态是否为一就绪状态,从所述至少一目标逻辑区块中选择处于所述就绪状态的一目标逻辑区块做为一第一目标逻辑区块,其中所述就绪状态用以表示处于所述就绪状态的逻辑区块已准备传输。
12.根据权利要求11所述的存储控制器,其中在上述所述数据传输管理电路根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的运作中,
所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标,
其中若需使用所述第二实体区域页面指标,所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址,
其中若不需使用所述第二实体区域页面指标,所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标来获得所述目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
13.根据权利要求12所述的存储控制器,其中在上述所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标的运作中,
所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的所述大小与所述逻辑区块数目计算所述目标数据的大小,
其中所述数据传输管理电路根据所述多个存储器页面的每一个存储器页面的所述大小与所述第一实体区域页面指标判断所述第一存储器页面地址所属的存储器页面的一结束地址,并且将经由所述结束地址与所述第一存储器页面地址之间的空间作为一初始存储器页面空间,
其中若所述目标数据的所述大小大于所述初始存储器页面空间的大小,所述数据传输管理电路判定需使用所述第二实体区域页面指标。
14.根据权利要求13所述的存储控制器,其中在上述若需使用所述第二实体区域页面指标,所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的运作中,
所述数据传输管理电路计算所述目标数据的所述大小减去所述初始存储器页面空间的所述大小的一差值,
其中若所述差值大于所述多个存储器页面的每一个存储器页面的所述大小,所述数据传输管理电路辨识所述第二实体区域页面指标的所述第二存储器页面地址为一实体区域页面指标清单的一清单起始地址,其中所述实体区域页面指标清单存储多个条目,其中所述多个条目中的每一个条目记录一存储器页面地址,
其中所述数据传输管理电路根据所述初始存储器页面空间与所述实体区域页面指标清单来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
15.根据权利要求14所述的存储控制器,其中在上述若需使用所述第二实体区域页面指标,根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的运作中,
若所述差值不大于所述多个存储器页面的每一个存储器页面的所述大小,所述数据传输管理电路辨识所述第二实体区域页面指标的所述第二存储器页面地址为一剩余存储器页面的一起始地址,
其中所述数据传输管理电路根据所述初始存储器页面空间与所述剩余存储器页面的所述起始地址来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
16.一种存储控制器,用于控制配置有一可复写式非易失性存储器模块的一存储装置,所述存储控制器包括:
一连接接口电路,用以电性连接至一主机系统,其中所述主机系统配置有一主机存储器,其中所述主机存储器具有多个存储器页面;
一存储器接口控制电路,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块被配置多个逻辑区块;
一处理器,电性连接至所述连接接口电路及所述存储器接口控制电路;以及
一数据传输管理电路,电性连接至所述处理器、所述连接接口电路及所述存储器接口控制电路,
其中所述处理器用以从所述主机系统接收一写入指令,其中所述写入指令包括一起始逻辑区块地址、一逻辑区块数目、一第一实体区域页面指标与一第二实体区域页面指标,其中所述写入指令用以指示将一目标数据写入至所述可复写式非易失性存储器模块的至少一目标逻辑区块中,其中所述至少一目标逻辑区块中排序在最前面的逻辑区块为一起始逻辑区块,其中所述起始逻辑区块地址用以指示所述起始逻辑区块的地址,所述逻辑区块数目用以指示所述至少一目标逻辑区块中存储所述目标数据的逻辑区块的数目,所述第一实体区域页面指标用以指示所述主机存储器的一第一存储器页面地址,并且所述第二实体区域页面指标用以指示所述主机存储器的一第二存储器页面地址,其中对应所述写入指令的所述目标数据被存储于所述主机存储器的所述多个存储器页面中的至少一目标存储器页面中,
其中所述处理器用以指示所述数据传输管理电路根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的目标存储器页面的地址,其中每一个目标逻辑区块所分别对应的目标存储器页面为所述至少一目标存储器页面的其中的一,
其中所述存储器接口控制电路用以从所述至少一目标逻辑区块中选择一第一目标逻辑区块,
其中数据传输管理电路用以根据所获得的对应所述第一目标逻辑区块的一第一目标存储器页面的地址来读取一第一目标数据,并且所述存储器接口控制电路还用以将所读取的所述第一目标数据写入至所述第一目标逻辑区块中,
其中在上述所述存储器接口控制电路用以从所述至少一目标逻辑区块中选择所述第一目标逻辑区块的运作中,
所述存储器接口控制电路判断所述至少一目标逻辑区块中的每一个目标逻辑区块的状态是否为一就绪状态,从所述至少一目标逻辑区块中选择处于所述就绪状态的一目标逻辑区块做为一第一目标逻辑区块,其中所述就绪状态用以表示处于所述就绪状态的逻辑区块已准备传输。
17.根据权利要求16所述的存储控制器,其中在上述所述数据传输管理电路根据所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的运作中,
所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标,
其中若需使用所述第二实体区域页面指标,所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址,
其中若不需使用所述第二实体区域页面指标,所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的大小、所述多个存储器页面的每一个存储器页面的大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标来获得所述目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
18.根据权利要求17所述的存储控制器,其中在上述所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目与所述第一实体区域页面指标判断是否需使用所述第二实体区域页面指标的运作中,
所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的所述大小与所述逻辑区块数目计算所述目标数据的大小,
其中所述数据传输管理电路根据所述多个存储器页面的每一个存储器页面的所述大小与所述第一实体区域页面指标判断所述第一存储器页面地址所属的存储器页面的一结束地址,并且将经由所述结束地址与所述第一存储器页面地址之间的空间作为一初始存储器页面空间,
其中若所述目标数据的所述大小大于所述初始存储器页面空间的大小,所述数据传输管理电路判定需使用所述第二实体区域页面指标。
19.根据权利要求18所述的存储控制器,其中在上述若需使用所述第二实体区域页面指标,所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的运作中,
所述数据传输管理电路计算所述目标数据的所述大小减去所述初始存储器页面空间的所述大小的一差值,
其中若所述差值大于所述多个存储器页面的每一个存储器页面的所述大小,所述数据传输管理电路辨识所述第二实体区域页面指标的所述第二存储器页面地址为一实体区域页面指标清单的一清单起始地址,其中所述实体区域页面指标清单存储多个条目,其中所述多个条目中的每一个条目记录一存储器页面地址,
其中所述数据传输管理电路根据所述初始存储器页面空间与所述实体区域页面指标清单来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
20.根据权利要求19所述的存储控制器,其中在上述若需使用所述第二实体区域页面指标,所述数据传输管理电路根据所述多个逻辑区块的每一个逻辑区块的所述大小、所述多个存储器页面的每一个存储器页面的所述大小、所述起始逻辑区块地址、所述逻辑区块数目、所述第一实体区域页面指标与所述第二实体区域页面指标来获得所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址的运作中,
若所述差值不大于所述多个存储器页面的每一个存储器页面的所述大小,所述数据传输管理电路辨识所述第二实体区域页面指标的所述第二存储器页面地址为一剩余存储器页面的一起始地址,
其中所述数据传输管理电路根据所述初始存储器页面空间与所述剩余存储器页面的所述起始地址来判断所述至少一目标逻辑区块中的每一个目标逻辑区块所分别对应的所述目标存储器页面的所述地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610602805.2A CN107665091B (zh) | 2016-07-28 | 2016-07-28 | 数据读取方法、数据写入方法及其存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610602805.2A CN107665091B (zh) | 2016-07-28 | 2016-07-28 | 数据读取方法、数据写入方法及其存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107665091A CN107665091A (zh) | 2018-02-06 |
CN107665091B true CN107665091B (zh) | 2021-03-02 |
Family
ID=61115476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610602805.2A Active CN107665091B (zh) | 2016-07-28 | 2016-07-28 | 数据读取方法、数据写入方法及其存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107665091B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023239508A1 (en) * | 2022-06-07 | 2023-12-14 | Western Digital Technologies, Inc. | Data storage device and method for host buffer management |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767008A (zh) | 2018-07-17 | 2020-10-13 | 华为技术有限公司 | 处理i/o请求的方法及设备 |
CN110879794B (zh) * | 2018-09-05 | 2023-01-17 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
CN110134333B (zh) * | 2019-05-07 | 2022-06-07 | 深圳忆联信息系统有限公司 | 一种重排写入数据流提升ssd读拼接率的方法及其系统 |
CN112540932B (zh) * | 2019-09-20 | 2023-11-14 | 深圳宏芯宇电子股份有限公司 | 存储控制器以及写入辅助方法 |
CN112802512B (zh) * | 2019-11-13 | 2024-04-16 | 深圳宏芯宇电子股份有限公司 | 存储控制器以及存储装置初始化方法 |
CN113010458B (zh) * | 2019-12-19 | 2023-01-17 | 深圳大心电子科技有限公司 | 存储器管理方法、存储控制器与存储装置 |
CN112803938B (zh) * | 2020-12-31 | 2023-04-07 | 美智光电科技股份有限公司 | 存储方法和装置、开关装置、存储器装置和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131911B2 (en) * | 2008-04-18 | 2012-03-06 | Phison Electronics Corp. | Data writing method, and flash storage system and controller using the same |
CN104423888A (zh) * | 2013-08-23 | 2015-03-18 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
TW201543843A (zh) * | 2014-05-02 | 2015-11-16 | Cavium Inc | 用於支援經由nvme將網路上的可擴展存放裝置作為本機存放區進行訪問的系統和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004110367A (ja) * | 2002-09-18 | 2004-04-08 | Hitachi Ltd | 記憶装置システムの制御方法、記憶制御装置、および記憶装置システム |
US9626106B2 (en) * | 2015-01-13 | 2017-04-18 | Sandisk Technologies Llc | System and method for memory command queue management and configurable memory status checking |
-
2016
- 2016-07-28 CN CN201610602805.2A patent/CN107665091B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131911B2 (en) * | 2008-04-18 | 2012-03-06 | Phison Electronics Corp. | Data writing method, and flash storage system and controller using the same |
CN104423888A (zh) * | 2013-08-23 | 2015-03-18 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
TW201543843A (zh) * | 2014-05-02 | 2015-11-16 | Cavium Inc | 用於支援經由nvme將網路上的可擴展存放裝置作為本機存放區進行訪問的系統和方法 |
Non-Patent Citations (1)
Title |
---|
NVM Express Revision 1.2;NVMe;《http://nvmexpress.org/wp-content/uploads/NVM_Express_1_2》;20141103;第1-10、39-44、52-55、69、109-113、148-149、157、168、182-183页 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023239508A1 (en) * | 2022-06-07 | 2023-12-14 | Western Digital Technologies, Inc. | Data storage device and method for host buffer management |
US11847323B1 (en) | 2022-06-07 | 2023-12-19 | Westem Digital Technologies, Inc. | Data storage device and method for host buffer management |
Also Published As
Publication number | Publication date |
---|---|
CN107665091A (zh) | 2018-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665091B (zh) | 数据读取方法、数据写入方法及其存储控制器 | |
TWI592865B (zh) | 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器 | |
US10120615B2 (en) | Memory management method and storage controller using the same | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US10101914B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US10324651B2 (en) | Data transmission method, and storage controller and list management circuit using the same | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US10635358B2 (en) | Memory management method and storage controller | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN107783916B (zh) | 数据传输方法、存储控制器与清单管理电路 | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN108733577B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN106951186B (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN107346211B (zh) | 映射表加载方法、存储器控制电路单元与存储器储存装置 | |
CN111078146A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN110471612B (zh) | 存储器管理方法以及存储控制器 | |
CN112230849B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US20160099062A1 (en) | Data writing method, memory storage device and memory control circuit unit | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN106469019B (zh) | 存储器管理方法、存储器控制电路单元及存储器储存装置 | |
CN110162493B (zh) | 存储器管理方法及使用所述方法的储存控制器 | |
US10579306B1 (en) | Memory management method and storage controller | |
CN109669620B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190408 Address after: Room 609, 6th Floor, Taibang Science and Technology Building, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Da Xin Electronic Technology Co., Ltd. Address before: 2nd Floor, No. 5, 91 Lane, Dongmei Road, Xinzhu, Taiwan, China Applicant before: Big heart electronic Limited by Share Ltd |
|
GR01 | Patent grant | ||
GR01 | Patent grant |