CN116661704A - 存储装置数据读写方法、存储器存储装置及存储器控制器 - Google Patents
存储装置数据读写方法、存储器存储装置及存储器控制器 Download PDFInfo
- Publication number
- CN116661704A CN116661704A CN202310831807.9A CN202310831807A CN116661704A CN 116661704 A CN116661704 A CN 116661704A CN 202310831807 A CN202310831807 A CN 202310831807A CN 116661704 A CN116661704 A CN 116661704A
- Authority
- CN
- China
- Prior art keywords
- physical
- physical page
- data read
- hardware acceleration
- logical page
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000001133 acceleration Effects 0.000 claims abstract description 81
- 238000004364 calculation method Methods 0.000 claims abstract description 41
- 238000013507 mapping Methods 0.000 claims abstract description 35
- 238000004458 analytical method Methods 0.000 claims abstract description 8
- 230000005055 memory storage Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013403 standard screening design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种存储装置数据读写方法、存储器存储装置及存储器控制器,存储装置数据读写方法包括:对主机发送过来的数据读写指令进行指令解析,以获取得到执行数据读写指令的逻辑页地址;将逻辑页地址发送给硬件加速模块,以通过硬件加速模块对逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移;根据逻辑页号在第一映射表中获取对应的物理页号,及根据逻辑页内偏移获取物理页内偏移;将物理页号和物理页内偏移发送给硬件加速模块,以通过硬件加速模块对物理页号和物理页内偏移进行第二计算,得到相应的物理页地址;根据物理页地址,在存储器模块中执行数据读写指令。藉此,其可大幅提升存储装置的数据读写速度。
Description
技术领域
本发明涉及一种存储器管理技术,且尤其涉及一种存储装置数据读写方法、存储器存储装置及存储器控制器。
背景技术
目前,随着主机接口速率和NAND接口速率的提升,SSD的性能从SATA时代的500MB/s带宽提升到现在的7GB/s(PCIe Gen4),IOPS(Input/Output Operations Per Second)也从100K提升到了1M,进而对于SSD的产品设计提出了更高的要求。然而,在传统的SSD处理过程中,主要由固件负责主机的读写命令处理,由于CPU频率/代码效率受限,其能够达到的性能上限会受到很大的局限性,单纯的固件实现已经不能支撑如此的高性能需求,需要对从架构层面进行硬件加速。此外,从前端模块到发起NAND读,中间需要经历多个模块中转,涉及多核CPU的通讯/同步/计算/内存访问…,故会引入较大的延迟,进而对SSD的整体性能影响较大。
发明内容
本发明提供一种存储装置数据读写方法、存储器存储装置及存储器控制器,可通过将数据读写过程中一部分使用固件实现需要主控参与的功能转为硬件加速模块来实现,减少命令交互的过程,提高系统效率,使得存储装置的数据读写速度大幅提升。
本发明的实施例提供一种存储装置数据读写方法,用于存储器存储装置,其中,所述存储器存储装置包括存储器控制器、硬件加速模块和存储器模块,所述存储器模块包括多个物理区块,每个所述物理区块包括多个物理页,所述存储装置数据读写方法包括:
对主机发送过来的数据读写指令进行指令解析,以获取得到执行所述数据读写指令的逻辑页地址;
将所述逻辑页地址发送给所述硬件加速模块,以通过所述硬件加速模块对所述逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移;
根据所述逻辑页号在第一映射表中获取对应的物理页号,及根据所述逻辑页内偏移获取物理页内偏移;
将所述物理页号和所述物理页内偏移发送给所述硬件加速模块,以通过所述硬件加速模块对所述物理页号和所述物理页内偏移进行第二计算,得到相应的物理页地址;
根据所述物理页地址,在所述存储器模块中执行所述数据读写指令。
本发明的实施例另提供一种存储装置数据读写方法,用于存储器存储装置,其中,所述存储器存储装置包括存储器控制器、硬件加速模块和存储器模块,所述存储器模块包括多个物理区块,每个所述物理区块包括多个物理页,所述存储装置数据读写方法包括:
对主机发送过来的多条数据读写指令进行指令解析,以在执行所述多条数据读写指令的逻辑页地址连续时,获取得到执行所述多条数据读写指令中的第一条数据读写指令的逻辑页地址;
将所述逻辑页地址发送给所述硬件加速模块,以通过所述硬件加速模块对所述逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移;
根据所述逻辑页号在第一映射表中获取对应的物理页号,及根据所述逻辑页内偏移获取物理页内偏移;
将所述物理页号和所述物理页内偏移发送给所述硬件加速模块,以通过所述硬件加速模块对所述物理页号和所述物理页内偏移进行第二计算,得到相应的物理页地址;
根据所述物理页地址,在所述存储器模块中执行所述多条数据读写指令中的第一条数据读写指令,并在当前数据读写指令执行完后,对所述物理页地址进行自增运算,以根据经所述自增运算后的所述物理页地址,在所述存储器模块中执行当前数据读写指令的下一条数据读写指令,直至执行完所述多条数据读写指令。
本发明的实施例另提供一种存储器存储装置,包括:
连接接口,用以连接至主机系统;
存储器模块,包括多个物理区块,每一所述物理区块包括多个物理页;
存储器控制器,连接至所述连接接口与所述存储器模块;
硬件加速模块,连接至所述存储器控制器;
其中所述存储器控制器用以执行上述的存储装置数据读写方法,所述硬件加速模块用以进行所述第一计算和所述第二计算。
本发明的实施例另提供一种存储器控制器,用以控制存储器模块和硬件加速模块,其中所述存储器模块包括多个物理区块,每一所述物理区块包括多个物理页,且所述存储器控制器包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述存储器模块;
硬件加速模块接口,用以连接至所述硬件加速模块;
存储器控制电路,连接至所述主机接口、所述存储器接口和所述硬件加速模块接口;
其中所述存储器控制电路用以执行上述的存储装置数据读写方法,所述硬件加速模块用以进行所述第一计算和所述第二计算。
基于上述,其存储装置在数据读写时,会先对主机发送过来的数据读写指令进行指令解析,以获取得到执行数据读写指令的逻辑页地址。接着,将该逻辑页地址发送给硬件加速模块,以通过硬件加速模块对逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移。然后,根据逻辑页号在第一映射表中获取对应的物理页号,及根据逻辑页内偏移获取物理页内偏移后,将物理页号和物理页内偏移发送给硬件加速模块,以通过硬件加速模块对物理页号和物理页内偏移进行第二计算,得到相应的物理页地址。最后,再根据物理页地址,在存储器模块中执行数据读写指令。藉此,其可通过将数据读写过程中一部分使用固件实现需要主控参与的功能转为硬件加速模块来实现,减少命令交互的过程,提高系统效率,使得存储装置的数据读写速度大幅提升。
附图说明
图1是根据本发明的实施例所示出的存储器存储装置的示意图;
图2是根据本发明的实施例所示出的存储器控制器的示意图;
图3是根据本发明的实施例所示出的存储器模块的示意图;
图4是根据本发明的实施例所示出的存储装置数据读写方法的第一种流程图;
图5是根据本发明的实施例所示出的存储装置数据读写方法的第二种流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
图1是根据本发明的实施例所示出的存储器存储装置的示意图。请参照图1,存储器存储系统10包括主机系统11与存储器存储装置12。主机系统11可为任意型态的计算机系统。例如。主机系统11可为笔记本计算机、台式计算机、智能手机、平板计算机、工业计算机、游戏机、数码相机等各式电子系统。存储器存储装置12用以存储来自主机系统11的数据。例如,存储器存储装置12可包括固态硬盘、U盘、存储卡或其他类型的非易失性存储装置。主机系统11可经由串行高级技术附件(Serial Advanced Technology Attachment, SATA)接口、高速周边零件连接接口(Peripheral Component Interconnect Express, PCIExpress)、通用串行总线(Universal Serial Bus, USB)或其他类型的连接接口电性连接至存储器存储装置12。因此,主机系统11可将数据存储至存储器存储装置12和/或从存储器存储装置12读取数据。
存储器存储装置12可包括连接接口121、存储器模块122、存储器控制器123以及硬件加速模块124。连接接口121用以将存储器存储装置12连接至主机系统11。例如,连接接口121可支持SATA、PCI Express或USB等连接接口标准。存储器存储装置12可经由连接接口121与主机系统11通信。
存储器模块122用以存储数据。存储器模块122可包括可复写式非易失性存储器模块。存储器模块122包括存储单元阵列。存储器模块122中的存储单元是以电压的形式来存储数据。例如,存储器模块122可包括单阶存储单元(Single Level Cell, SLC)NAND型快闪存储器模块、多阶存储单元(Multi Level Cell, MLC)NAND型快闪存储器模块、三阶存储单元(Triple Level Cell, TLC)NAND型快闪存储器模块、四阶存储单元(Quad Level Cell,QLC)NAND型快闪存储器模块或其他具有相似特性的存储器模块。
存储器控制器123连接至连接接口121、存储器模块122以及硬件加速模块124。存储器控制器123可用以控制存储器存储装置12。例如,存储器控制器123可控制连接接口121、存储器模块122与硬件加速模块124以进行数据存取与数据管理。例如,存储器控制器123可包括中央处理单元(CPU)、或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor, DSP)、可编程控制器、专用集成电路(Application Specific Integrated Circuits, ASIC)、可编程逻辑器件(ProgrammableLogic Device, PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪存储器控制器。在一实施例中,存储器模块122亦称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储单元。
图2是根据本发明的实施例所示出的存储器控制器的示意图。请参照图1与图2,存储器控制器123包括主机接口21、存储器接口22、存储器控制电路23以及硬件加速模块接口24。主机接口21用以经由连接接口121连接至主机系统11,以与主机系统11通信。存储器接口22用以连接至存储器模块122。硬件加速模块接口24用以连接至硬件加速模块124。存储器控制电路23连接至主机接口21、存储器接口22与硬件加速模块接口24。存储器控制电路23用以负责存储器存储装置12的整体或部分运作。存储器控制电路23可经由主机接口21与主机系统11通信,以及经由硬件加速模块接口24与硬件加速模块124通信并经由存储器接口22存取存储器模块122。在一实施例中,存储器控制电路23也可视为存储器控制器123的控制核心。在以下实施例中,对于存储器控制电路23的说明等同于对于存储器控制器123的说明。
图3是根据本发明的实施例所示出的存储器模块的示意图。请参照图1至图3,存储器模块122包括多个物理区块30,每一物理区块30包括多个物理页31。一个物理区块30中的多个物理页31可被同时程序化以存储数据。此外,一个物理区块30中的所有物理页31的存储数据可被同时擦除。对应于存储器模块122的物理存储空间,每个物理页31均具有相应的物理页地址,以通过该物理页地址实现在相应的物理页31上的数据读写操作。同时,存储器存储装置12面向主机系统11,其还提供了便于主机系统11理解的虚拟逻辑空间,该虚拟逻辑空间与存储器模块122的物理存储空间对应,其会对每个物理页地址分配对应的逻辑页地址,使得主机系统11对存储器模块122进行数据读写时只需要提供目标数据的逻辑页地址即可。
在一实施例中,上述存储器存储装置12执行数据读写指令时,其存储器控制器123(具体可为存储器控制电路23)可先对主机(即主机系统11)发送过来的数据读写指令进行指令解析,以获取得到执行该数据读写指令的逻辑页地址。此时,由于存储器存储装置12内是通过物理页地址实现对存储器模块122的物理存储空间的访问,因而,在得到该逻辑页地址后还需经过一定的计算转换,得到相应的物理页地址后,才可根据该物理页地址,在存储器模块122中执行该数据读写指令。现有技术中,从逻辑页地址得到相应的物理页地址的过程中的所有计算均交由存储器控制器123(具体可为存储器控制电路23)来完成,而存储器控制器123除了处理上述计算外,还会涉及一些其它的计算以及存储器存储装置12的整体控制等工作,因而,这会导致存储器控制器123的运行负担过重,影响存储器存储装置12的数据读写速度,因而,在申请实施例中,上述计算交由其新增的硬件加速模块124来完成,硬件加速模块124主要由单纯的一些运算电路构成,其只处理从逻辑页地址得到相应的物理页地址的过程中的涉及到一些计算,相比于存储器控制器123(具体可为存储器控制电路23)的复杂处理电路,其处理过程更为直接,可快速得到相应的计算结果,同时,也释放了存储器控制器123(具体可为存储器控制电路23)的运算资源,使得存储器存储装置12的数据读写速度得到大幅提升。
因而,在一实施例中,当其存储器控制器123(具体可为存储器控制电路23)获取得到执行该数据读写指令的逻辑页地址后,会先将该逻辑页地址发送给硬件加速模块124,以通过硬件加速模块124对逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移。接着,再根据该逻辑页号在第一映射表中获取对应的该物理页号,及根据该逻辑页内偏移获取物理页内偏移。最后,再将物理页号和物理页内偏移发送给硬件加速模块124,以通过硬件加速模块124对物理页号和物理页内偏移进行第二计算,得到相应的物理页地址。可以理解的是,上述提到第一映射表主要存储有逻辑页号与物理页号的映射关系,即可通过逻辑页号在第一映射表中直接找到其对应的物理页号,而一般而言,逻辑页内偏移等于物理页内偏移,因而,可直接将逻辑页内偏移作为物理页内偏移。这样,便可通过硬件加速模块124先后进行的第一计算和第二计算,完成逻辑页地址到相应的物理页地址的转换。
在一实施例中,上述提到的硬件加速模块124具体可包括除法器,此时,硬件加速模块124对逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移的过程如下:通过该除法器对逻辑页地址进行预设除法运算,以得到相应的逻辑页号和逻辑页内偏移。进一步地,可通过除法器进行逻辑页地址除以页容量的除法运算,以将除法运算所得的商作为逻辑页号,及将除法运算所得的余数作为逻辑页内偏移。以上述每个物理页31的大小为4KB为例。当获取得到的逻辑页地址为0x100678(0x表示数字的16进制)时,其可进行以下除法运算:0x100678/4KB=0x100...0x678;此时,可得到逻辑页号为0x100,而逻辑页内偏移为0x678。
在一实施例中,上述提到的硬件加速模块124具体还可包括乘法器和加法器,此时,该硬件加速模块124对物理页号和物理页内偏移进行第二计算,得到相应的物理页地址的过程如下:通过该乘法器和该加法器对物理页号和物理页内偏移进行预设乘法运算和预设加法运算,以得到相应的物理页地址。进一步地,可先通过乘法器进行物理页号乘以页容量的乘法运算,再通过加法器进行乘法运算所得的乘积与物理页内偏移相加的加法运算,以将加法运算的和作为物理页地址。同样以上述每个物理页31的大小为4KB为例。当通过上述计算得到逻辑页号为0x100,而逻辑页内偏移为0x678后,可根据该逻辑页号在第一映射表中获取对应的该物理页号,例如,在第一映射表中找到逻辑页号0x100对应的物理页号为0xA00,及根据该逻辑页内偏移获取物理页内偏移,即物理页内偏移为0x678。此时,可进行以下乘法和加法运算:0xA00*4KB+0x678=0xA00678;此时,可得到物理页地址为0xA00678。
在一实施例中,数据读写指令具体可包括数据写入指令和数据读取指令,分别实现在存储器模块122的数据写入和数据读取操作。而当上述数据读写指令为数据读取指令时,其可能还会存在数据所在的物理区块30已经存在损坏或者已经被擦除的情形,因而,当其存储器控制器123(具体可为存储器控制电路23)根据逻辑页号在第一映射表中获取对应的物理页号的具体过程如下:若在第一映射表找到逻辑页号对应的物理页号,则进一步查询第二映射表,以找到物理页号对应的物理区块号;若在第一映射表无法找到逻辑页号对应的物理页号,则直接返回一个错误的讯息给主机,并中止执行数据读取指令。这是因为,若在第一映射表无法找到逻辑页号对应的物理页号,则说明数据并没有存储在存储器模块122中,此时,已无必要再在存储器存储装置12中执行该数据读取指令了,因而,需立即进行相应的中止操作,以中止执行该数据读取指令。而若在第一映射表找到逻辑页号对应的物理页号,还需进一步确认该数据所在的物理区块30是否存在损坏或者已经被擦除的情形,此时,需进一步查询第二映射表(可以理解的是,第二映射表主要存储有物理页号与物理区块号的映射关系),以找到物理页号对应的物理区块号。具体过程如下:若在该第二映射表中找到物理页号对应的物理区块号,说明该数据所在的物理区块30未存在损坏或者已经被擦除的情形,即数据可正常读取,此时,可继续执行数据读取指令。而若在第二映射表中无法找到物理页号对应的物理区块号,则说明该数据所在的物理区块30已存在损坏或者已经被擦除的情形,此时,需先通过现有的垃圾回收机制对存储器模块122进行垃圾回收处理,以将该物理页号所在的物理页31的有效数据复制到存储器模块中一个未被使用的物理区块30中后,返回该物理区块30对应的物理区块号,并更新第二映射表(即重新建立该物理页号与新的物理区块之间的映射关系),以继续执行数据读取指令。
在一实施例中,上述存储器存储装置12执行数据读写指令时,也可能会出现在连续的多个逻辑页地址连续执行多条数据读写指令的情形,此时,为进一步降低从逻辑页地址得到相应的物理页地址的过程中的计算量,提升存储器存储装置12的数据读写速度。其存储器控制器123(具体可为存储器控制电路23)可先对主机发送过来的多条数据读写指令进行指令解析,以在执行这些多条数据读写指令的逻辑页地址连续时,获取得到执行这些多条数据读写指令中的第一条数据读写指令的逻辑页地址。接着,通过上述实施例中的计算过程,得到相应的物理页地址。最后,再根据该物理页地址,在存储器模块122中执行这些多条数据读写指令中的第一条数据读写指令,并在当前数据读写指令执行完后,对该物理页地址进行自增运算,以根据经自增运算后的物理页地址,在该存储器模块122中执行当前数据读写指令的下一条数据读写指令,直至执行完这些多条数据读写指令。这是因为,当执行这些多条数据读写指令的逻辑页地址连续的,在该存储器模块122中实际执行这些多条数据读写指令的物理页地址也是连续的,此时,只需获取得到执行这些多条数据读写指令中的第一条数据读写指令的物理页地址后,其硬件加速模块124便可通过对该物理页地址依次进行的自增运算(如物理页地址自动加1的运算),来依次得到紧接着当前执行完的数据读写指令后的下一条数据读写指令对应的物理页地址,进而实现下一条数据读写指令的执行过程,该自增运算直至执行完这些多条数据读写指令中的最后一条数据读写指令为止。
图4是根据本发明的实施例所示出的存储装置数据读写方法的第一种流程图。请参照图4,在步骤S401中,对主机发送过来的数据读写指令进行指令解析,以获取得到执行数据读写指令的逻辑页地址。在步骤S402中,将逻辑页地址发送给硬件加速模块,以通过硬件加速模块对逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移。在步骤S403中,根据逻辑页号在第一映射表中获取对应的物理页号,及根据逻辑页内偏移获取物理页内偏移。在步骤S404中,将物理页号和物理页内偏移发送给硬件加速模块,以通过硬件加速模块对物理页号和物理页内偏移进行第二计算,得到相应的物理页地址。在步骤S405中,根据物理页地址,在存储器模块中执行数据读写指令。
然而,图4中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图4中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图4的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,其在存储器存储装置12进行数据读写时,主要通过硬件加速模块124先后进行的第一计算和第二计算,来完成数据读写指令的逻辑页地址到相应的物理页地址的转换。藉此,其可通过将数据读写过程中一部分使用固件实现需要主控参与的功能转为硬件加速模块124来实现,减少命令交互的过程,提高系统效率,使得存储装置的数据读写速度大幅提升。
图5是根据本发明的实施例所示出的存储装置数据读写方法的第一种流程图。请参照图5,在步骤S501中,对主机发送过来的多条数据读写指令进行指令解析,以在执行多条数据读写指令的逻辑页地址连续时,获取得到执行多条数据读写指令中的第一条数据读写指令的逻辑页地址。在步骤S502中,将逻辑页地址发送给硬件加速模块,以通过硬件加速模块对逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移。在步骤S503中,根据逻辑页号在第一映射表中获取对应的物理页号,及根据逻辑页内偏移获取物理页内偏移。在步骤S504中,将物理页号和物理页内偏移发送给硬件加速模块,以通过硬件加速模块对物理页号和物理页内偏移进行第二计算,得到相应的物理页地址。在步骤S505中,根据物理页地址,在存储器模块中执行多条数据读写指令中的第一条数据读写指令,并在当前数据读写指令执行完后,对物理页地址进行自增运算,以根据经自增运算后的物理页地址,在存储器模块中执行当前数据读写指令的下一条数据读写指令,直至执行完多条数据读写指令。
然而,图5中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图5中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图5的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,其在存储器存储装置12进行数据读写时,主要通过硬件加速模块124先后进行的第一计算和第二计算,来完成数据读写指令的逻辑页地址到相应的物理页地址的转换。同时,面对在连续的多个逻辑页地址连续执行多条数据读写指令的情形时,只需计算得到执行多条数据读写指令中的第一数据读写指令的物理页地址后,便可通过对该物理页地址依次进行的自增运算,依次得到执行其余各数据读写指令的物理页地址,进而可大幅降低获取得到其余各数据读写指令的物理页地址的计算量。藉此,其可使得存储装置的数据读写速度进一步大幅提升。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种存储装置数据读写方法,其特征在于,用于存储器存储装置,其中,所述存储器存储装置包括存储器控制器、硬件加速模块和存储器模块,所述存储器模块包括多个物理区块,每个所述物理区块包括多个物理页,所述存储装置数据读写方法包括:
对主机发送过来的数据读写指令进行指令解析,以获取得到执行所述数据读写指令的逻辑页地址;
将所述逻辑页地址发送给所述硬件加速模块,以通过所述硬件加速模块对所述逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移;
根据所述逻辑页号在第一映射表中获取对应的物理页号,及根据所述逻辑页内偏移获取物理页内偏移;
将所述物理页号和所述物理页内偏移发送给所述硬件加速模块,以通过所述硬件加速模块对所述物理页号和所述物理页内偏移进行第二计算,得到相应的物理页地址;
根据所述物理页地址,在所述存储器模块中执行所述数据读写指令。
2.根据权利要求1所述的存储装置数据读写方法,其特征在于,所述硬件加速模块包括除法器,所述硬件加速模块对所述逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移的步骤包括:
通过所述除法器对所述逻辑页地址进行预设除法运算,以得到相应的逻辑页号和逻辑页内偏移。
3.根据权利要求2所述的存储装置数据读写方法,其特征在于,所述通过所述除法器对所述逻辑页地址进行预设除法运算的步骤包括:
通过所述除法器进行所述逻辑页地址除以页容量的除法运算,以将所述除法运算所得的商作为所述逻辑页号,及将所述除法运算所得的余数作为所述逻辑页内偏移。
4.根据权利要求2所述的存储装置数据读写方法,其特征在于,所述硬件加速模块还包括乘法器和加法器,所述硬件加速模块对所述物理页号和所述物理页内偏移进行第二计算,得到相应的物理页地址的步骤包括:
通过所述乘法器和所述加法器对所述物理页号和所述物理页内偏移进行预设乘法运算和预设加法运算,以得到相应的物理页地址。
5.根据权利要求4所述的存储装置数据读写方法,其特征在于,所述通过所述乘法器和所述加法器对所述物理页号和所述物理页内偏移进行预设乘法运算和预设加法运算的步骤包括:
先通过所述乘法器进行所述物理页号乘以页容量的乘法运算,再通过所述加法器进行所述乘法运算所得的乘积与所述物理页内偏移相加的加法运算,以将所述加法运算的和作为所述物理页地址。
6.根据权利要求1-5任一项所述的存储装置数据读写方法,其特征在于,所述数据读写指令为数据读取指令时,所述根据所述逻辑页号在第一映射表中获取对应的物理页号的步骤包括:
若在所述第一映射表找到所述逻辑页号对应的所述物理页号,则进一步查询第二映射表,以找到所述物理页号对应的物理区块号;
若在所述第一映射表无法找到所述逻辑页号对应的所述物理页号,则直接返回一个错误的讯息给所述主机,并中止执行所述数据读取指令。
7.根据权利要求6所述的存储装置数据读写方法,其特征在于,所述进一步查询第二映射表,以找到所述物理页号对应的物理区块号的步骤包括:
若在所述第二映射表中找到所述物理页号对应的所述物理区块号,则继续执行所述数据读取指令;
若在所述第二映射表中无法找到所述物理页号对应的所述物理区块号,则先对所述存储器模块进行垃圾回收处理,以将所述物理页号所在的物理页的有效数据复制到所述存储器模块中一个未被使用的物理区块中后,返回所述物理区块对应的物理区块号,并更新所述第二映射表,以继续执行所述数据读取指令。
8.一种存储装置数据读写方法,其特征在于,用于存储器存储装置,其中,所述存储器存储装置包括存储器控制器、硬件加速模块和存储器模块,所述存储器模块包括多个物理区块,每个所述物理区块包括多个物理页,所述存储装置数据读写方法包括:
对主机发送过来的多条数据读写指令进行指令解析,以在执行所述多条数据读写指令的逻辑页地址连续时,获取得到执行所述多条数据读写指令中的第一条数据读写指令的逻辑页地址;
将所述逻辑页地址发送给所述硬件加速模块,以通过所述硬件加速模块对所述逻辑页地址进行第一计算,得到相应的逻辑页号和逻辑页内偏移;
根据所述逻辑页号在第一映射表中获取对应的物理页号,及根据所述逻辑页内偏移获取物理页内偏移;
将所述物理页号和所述物理页内偏移发送给所述硬件加速模块,以通过所述硬件加速模块对所述物理页号和所述物理页内偏移进行第二计算,得到相应的物理页地址;
根据所述物理页地址,在所述存储器模块中执行所述多条数据读写指令中的第一条数据读写指令,并在当前数据读写指令执行完后,对所述物理页地址进行自增运算,以根据经所述自增运算后的所述物理页地址,在所述存储器模块中执行当前数据读写指令的下一条数据读写指令,直至执行完所述多条数据读写指令。
9.一种存储器存储装置,其特征在于,包括:
连接接口,用以连接至主机系统;
存储器模块,包括多个物理区块,每一所述物理区块包括多个物理页;
存储器控制器,连接至所述连接接口与所述存储器模块;
硬件加速模块,连接至所述存储器控制器;
其中所述存储器控制器用以执行如权利要求1-8任一项所述的存储装置数据读写方法,所述硬件加速模块用以进行所述第一计算和所述第二计算。
10.一种存储器控制器,其特征在于,用以控制存储器模块和硬件加速模块,其中所述存储器模块包括多个物理区块,每一所述物理区块包括多个物理页,且所述存储器控制器包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述存储器模块;
硬件加速模块接口,用以连接至所述硬件加速模块;
存储器控制电路,连接至所述主机接口、所述存储器接口和所述硬件加速模块接口;
其中所述存储器控制电路用以执行如权利要求1-8任一项所述的存储装置数据读写方法,所述硬件加速模块用以进行所述第一计算和所述第二计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310831807.9A CN116661704B (zh) | 2023-07-07 | 2023-07-07 | 存储装置数据读写方法、存储器存储装置及存储器控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310831807.9A CN116661704B (zh) | 2023-07-07 | 2023-07-07 | 存储装置数据读写方法、存储器存储装置及存储器控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116661704A true CN116661704A (zh) | 2023-08-29 |
CN116661704B CN116661704B (zh) | 2024-03-08 |
Family
ID=87717205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310831807.9A Active CN116661704B (zh) | 2023-07-07 | 2023-07-07 | 存储装置数据读写方法、存储器存储装置及存储器控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116661704B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069314A1 (en) * | 1996-01-08 | 2002-06-06 | Shigenori Miyauchi | Semiconductor storage device |
JP2004326165A (ja) * | 2003-04-21 | 2004-11-18 | Toshiba Corp | メモリ制御装置およびメモリ制御方法 |
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN102722456A (zh) * | 2012-05-30 | 2012-10-10 | 深圳市江波龙电子有限公司 | 闪存存储设备的数据写入方法和闪存存储设备 |
CN103389942A (zh) * | 2012-05-11 | 2013-11-13 | 索尼公司 | 控制装置、存储装置及存储控制方法 |
CN103456360A (zh) * | 2013-09-13 | 2013-12-18 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息系统有限公司 | 一种大容量固态硬盘映射表压缩方法 |
CN113628656A (zh) * | 2020-05-07 | 2021-11-09 | 美光科技公司 | 用于逻辑到物理映射的双重地址编码 |
CN115756312A (zh) * | 2022-11-02 | 2023-03-07 | 平头哥(上海)半导体技术有限公司 | 数据访问系统、数据访问方法和存储介质 |
-
2023
- 2023-07-07 CN CN202310831807.9A patent/CN116661704B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069314A1 (en) * | 1996-01-08 | 2002-06-06 | Shigenori Miyauchi | Semiconductor storage device |
JP2004326165A (ja) * | 2003-04-21 | 2004-11-18 | Toshiba Corp | メモリ制御装置およびメモリ制御方法 |
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN103389942A (zh) * | 2012-05-11 | 2013-11-13 | 索尼公司 | 控制装置、存储装置及存储控制方法 |
CN102722456A (zh) * | 2012-05-30 | 2012-10-10 | 深圳市江波龙电子有限公司 | 闪存存储设备的数据写入方法和闪存存储设备 |
CN103456360A (zh) * | 2013-09-13 | 2013-12-18 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息系统有限公司 | 一种大容量固态硬盘映射表压缩方法 |
CN113628656A (zh) * | 2020-05-07 | 2021-11-09 | 美光科技公司 | 用于逻辑到物理映射的双重地址编码 |
CN115756312A (zh) * | 2022-11-02 | 2023-03-07 | 平头哥(上海)半导体技术有限公司 | 数据访问系统、数据访问方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116661704B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8898375B2 (en) | Memory controlling method, memory controller and memory storage apparatus | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US20130013853A1 (en) | Command executing method, memory controller and memory storage apparatus | |
US10324651B2 (en) | Data transmission method, and storage controller and list management circuit using the same | |
US10048899B2 (en) | Storage device, computing system including the storage device, and method of operating the storage device | |
CN112035381A (zh) | 一种存储系统及存储数据处理方法 | |
US11210226B2 (en) | Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof | |
CN115495389B (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
CN112115067A (zh) | 闪存物理资源集合管理装置及方法及计算机可读取存储介质 | |
US11520520B2 (en) | Memory system and method of controlling nonvolatile memory | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
CN109471819B (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
CN112181293B (zh) | 固态硬盘控制器、固态硬盘、存储系统及数据处理方法 | |
US10776280B1 (en) | Data storage device and method for updating logical-to-physical mapping table | |
CN114296638B (zh) | 存算一体化固态硬盘控制器及相关装置、方法 | |
US11537328B2 (en) | Method and apparatus for executing host commands | |
CN116661704B (zh) | 存储装置数据读写方法、存储器存储装置及存储器控制器 | |
TWI688864B (zh) | 儲存設備及儲存方法 | |
EP4020220A1 (en) | Utilizing nand buffer for dram-less multilevel cell programming | |
US11720276B2 (en) | Memory system and controller for managing write status | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
CN106326142A (zh) | 缓冲存储器存取方法、存储器控制器与存储器存储装置 | |
CN109388593B (zh) | 进行动态资源管理的方法、记忆装置及记忆装置的控制器 | |
US20240176736A1 (en) | Memory system and a method for garbage collection of the memory system | |
CN115658327B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |