CN116048390A - 程序码读取方法、存储器控制器及存储器存储装置 - Google Patents
程序码读取方法、存储器控制器及存储器存储装置 Download PDFInfo
- Publication number
- CN116048390A CN116048390A CN202211638641.0A CN202211638641A CN116048390A CN 116048390 A CN116048390 A CN 116048390A CN 202211638641 A CN202211638641 A CN 202211638641A CN 116048390 A CN116048390 A CN 116048390A
- Authority
- CN
- China
- Prior art keywords
- memory
- program code
- physical
- data
- entity
- 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/0638—Organizing or formatting or addressing of data
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0658—Controller construction 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/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)
- Stored Programmes (AREA)
Abstract
本发明属于存储技术领域,其提供一种程序码读取方法、存储器控制器与存储器存储装置,其将执行控制指令所需的程序码存储于存储器模块中的系统区中,在存储器存储装置工作时,解析控制指令,获取用于执行所述控制指令的程序码的逻辑地址;将所述逻辑地址的程序码读取到随机存储器中,并在所述随机存储器中执行所述程序码对应的程序码功能。以实现小容量的SRAM的存储器存储装置亦可具有良好的数据读写速度。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种程序码读取方法、存储器控制器及存储器存储装置。
背景技术
由于可复写式非易失性存储器模块(rewritable non-volatile memorymodule),例如快闪存储器,具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合应用于存储卡、固态硬盘和手机等设备中的存储装置中。在上述使用可复写式非易失性存储器模块的存储卡、固态硬盘和手机等设备的存储装置中,固件(Firmware)是用于实现存储控制的最基础、最底层工作的软件,通过固件,才能响应外部设备或控制装置的指令,实现数据读取、数据写入等操作。
现有技术中,固件是烧录进存储器的主控制器内EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序,因此一般是无法被修改的。在对存储器的存储芯片进行数据读写工作时,固件会被载入高速缓冲存储器内的静态随机存取存储器(Static Random Access Memory,SRAM)中来执行。为了加快数据读写速度,可以增大高速缓冲存储器控制器内的SRAM的容量,比如48K,但是对于成本相对较低的存储装置,SRAM太大会使得主控制器的成本显著增加。
发明内容
本发明提供一种程序码读取方法、存储器控制器与存储器存储装置,可实现小容量的SRAM的存储器存储装置亦可具有良好的数据读写速度的技术问题。
本发明的一实施例提出一种程序码读取方法,应用于存储器存储装置,所述存储器存储装置包括存储器模块、所述存储器模块包括多个实体单元,所述每个实体单元包括多个实体程序化单元,所述程序码读取方法包括:解析控制指令,获取用于执行所述控制指令的程序码的逻辑地址;将所述逻辑地址的程序码读取到随机存储器中,并在所述随机存储器中执行所述程序码对应的程序码功能。
进一步,在另一实施例中,用于执行所述控制指令的程序码的逻辑地址为多个,从所述多个逻辑地址中选取至少两个逻辑地址,其中所述至少两个逻辑地址包括第一逻辑地址与第二逻辑地址,所述第一逻辑地址映射至第一物理地址,所述第二逻辑地址映射至第二物理地址,其中所述第一物理地址属于第一存储器模块,所述第二物理地址属于第二存储器模块;同时将所述第一物理地址中的程序码和所述第二物理地址中的程序码读取出来。
进一步,在另一实施例中所述控制指令为至少一读取指令,以及所述至少一读取指令指示读取属于至少一个逻辑地址的数据,其中所述至少一个逻辑地址为第三逻辑地址,所述第三逻辑地址映射至第三物理地址,且所述第三物理地址属于第三存储器模块;其中,在执行对所述第三物理地址中的数据进行读取操作的同时还对所述第一物理地址和/或所述第二物理地址中的程序码执行读取操作。
进一步,在另一实施例中,所述第一物理地址属于第一存储器模块中的第一实体程序化单元,所述第二物理地址属于第二存储器模块中的第二实体程序化单元,所述第三物理地址属于第三存储器模块中的第三实体程序化单元;
其中,第一实体程序化单元中的数据为执行所述读取指令所对应的程序码的第一部分,第二实体程序化单元中的数据为执行所述读取指令所对应的程序码的第二部分,所述程序码的第一部分和所述程序码的第二部分同时被执行读取操作。
进一步,在另一实施例中,将多个实体单元逻辑地分组为一数据区与一系统区,所述数据区的实体单元用于存储用户数据,所述系统区的实体单元用于存储程序码数据;其中,执行所述控制指令的程序码存储于一个或多个实体程序化单元中。
进一步,在另一实施例中,将多个实体单元逻辑地分组为一缓存区,所述缓存区用于暂存来自于主机系统的数据与指令或来自于存储器模块的数据;
所述缓存区包括第一缓存区、第二缓存区以及第三缓存区;
其中,第一缓存区可专用以存放待被传送的控制指令,第二缓存区可专用以存放已经被传送给的控制指令和已经被执行过的控制指令,第三缓存区可专用以存放执行上述控制指令所对应的程序码。
进一步,在另一实施例中,将包括第一实体程序化单元、第二实体程序化单元和第三实体程序化单元映射关系的逻辑至实体映射表读取到第三缓存区中,通过所述逻辑至实体映射表而将所述程序码的第一部分和所述程序码的第二部分读取到随机存储器中,以及完成对第三实体程序化单元中的数据进行读取操作。
进一步,在另一实施例中,所述缓存区和系统区中的实体程序化单元的程序化模式为单阶存储单元程序化模式;
所述数据区中的实体程序化单元的程序化模式为多阶存储单元程序化模式。
本发明的一实施例还提供一种存储器控制器,用于控制存储器模块,其中所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器包括:主机接口,用以连接至主机系统;存储器接口,用以连接至所述存储器模块;存储器控制电路,其连接至所述主机接口与所述存储器接口;其特征在于,所述存储器控制电路用于执行上述的程序码读取方法中的各个步骤。
本发明的一实施例还提供一种存储器存储装置,所述存储器存储装置包括连接接口、存储器模块及存储器控制器;所述连接接口用于将存储器存储装置连接至主机系统;所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器连接至所述连接接口与所述存储器模块;其特征在于,所述存储器控制器用于执行上述的程序码读取方法中的各个步骤。
基于上述,本发明提供一种程序码读取方法、存储器控制器与存储器存储装置,其将执行控制指令所需的程序码存储于存储器模块中的系统区中,而且是多份存储的方式。在存储器存储装置工作时,解析控制指令,获取用于执行所述控制指令的程序码的逻辑地址;将所述逻辑地址的程序码读取到随机存储器中,并在所述随机存储器中执行所述程序码对应的程序码功能。以实现小容量的SRAM的存储器存储装置亦可具有良好的数据读写速度。
更进一步,本申请还提出一种程序码读取方法,其目的是通过一次读取操作,而同时读取到两个物理地址中数据。此举使得程序码的读取速度更快,进而实现提高存储器存储装置12的效能。
为让本发明的上述技术特征和有益效果能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1为本发明实施例所示出的一种存储器存储装置的示意图;
图2为本发明一实施例所示出的一种存储器控制器的结构框图;
图3为本发明一实施例所示出的一种存储器控制电路的结构框图的示意图;
图4为本发明一实施例所示出的一种管理存储器模块的示意图;
图5为本发明一实施例所示出的一种管理存储器模块的示意图;
图6为本发明一实施例所示出的一种管理存储器模块的示意图;
图7为本发明一实施例所示出的一种控制指令存储于各个缓存区中的示意图;
图8本发明一实施例所示出的一种程序码读取方法的流程图
具体实施方式
下面结合附图及案例详细说明本申请实施例所述存储器存储装置的具体结构及实现方案。
图1是根据本发明的实施例所示出的存储器存储装置的示意图。请参照图1,存储系统10包括主机系统11与存储器存储装置12。主机系统11可为任意型态的计算机系统。然而,必须了解的是本发明不限于此,主机系统11可为笔记本计算机、台式计算机、智能手机、平板计算机、工业计算机、游戏机、数码相机等各式电子系统。存储器存储装置12用于存储来自主机系统11的数据。然而,必须了解的是本发明不限于此,存储器存储装置12可包括固态硬盘、U盘、存储卡或其他类型的非易失性存储装置。主机系统11可经由串行高级技术附件(Serial Advanced Technology Attachment,SATA)接口、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)、通用串行总线(Universal Serial Bus,USB)或其他类型的连接接口电性连接至存储器存储装置12。因此,主机系统11可将数据存储至存储器存储装置12和/或从存储器存储装置12读取数据。
存储器存储装置12可包括连接接口121、存储器模块122及存储器控制器123。连接接口121用于将存储器存储装置12连接至主机系统11。存储器存储装置12可经由连接接口121与主机系统11通信。在一范例实施例中,连接接口121相容于外设部件互连局部总线(Peripheral Component Interconnect Express,PCI Express)标准。在一范例实施例中,连接接口121也可以是符合串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)标准、并行高级技术附件(Parallel Advanced TechnologyAttachment,PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(UltraHigh Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口121可与存储器控制器123封装在一个芯片中,或者连接接口121是布设于一包含存储器控制器123的芯片外。
存储器模块122用于存储数据。存储器模块122可包括可复写式非易失性存储器模块。存储器模块122包括存储单元阵列。存储器模块122中的存储单元是以电压的形式来存储数据。然而,必须了解的是本发明不限于此,存储器模块122可包括单层存储单元(SingleLevel Cell,SLC)NAND型快闪存储器模块、多层存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块、三层存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块、四层存储单元(Quad Level Cell,QLC)NAND型快闪存储器模块或其他具有相似特性的存储器模块。
进一步,SLC(单层存储单元)全称是Single-Level Cell,单层电子结构,每个cell可以存放1bit数据,SLC达到1bit/cell,写入数据的时候电压变化区间小,P/E寿命较长,理论抹除次数在10万次以上;MLC(双层存储单元)全称是Multi-Level Cell,使用高低电压的而不同构建的双层电子结构,MLC达到2bit/cell,P/E寿命较长,理论抹除次数在3000-5000次左右;TLC(三层存储单元)全称是Trinary-Level Cell,三层式存储单元,是MLC闪存延伸,TLC达到3bit/cell,由于存储密度较高,所以容量理论上是MLC的1.5倍,成本较低,但是P/E寿命相对要低一些,理论抹除次数在1000-3000次不等;QLC(四层存储单元)全称是Quad-Level Cell,四层式存储单元,QLC闪存颗粒拥有比TLC更高的存储密度,同时成本上相比TLC更低,优势就是可以将容量做的更大,成本上更低,劣势就是P/E寿命更短,理论抹除次数仅150次。
存储器控制器123连接至连接接口121与存储器模块122。存储器控制器123可用于控制存储器存储装置12。然而,必须了解的是本发明不限于此,存储器控制器123可控制连接接口121与存储器模块122以进行数据存取与数据管理。然而,必须了解的是本发明不限于此,存储器控制器123可包括中央处理单元(Central Processing Unit,CPU)、或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、专用集成电路(Application Specific Integrated Circuits,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪存储器控制器。在一实施例中,存储器模块122也称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储单元。
图2是根据本发明的一实施例所示出的存储器控制器的结构框图。请参照图2,存储器控制器123包括主机接口202、存储器接口206及存储器控制电路204。
主机接口202是电性连接至存储器控制电路204并且用于接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口202来传送至存储器控制电路204。在本实施例中,主机接口202是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口202也可以是相容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器控制电路204,以及存储器控制电路204通过存储器接口206来实现对存储器模块122的存取运作。也就是说,欲写入至存储器模块122的数据会经由存储器接口206转换为存储器模块122所能接受的格式。
存储器控制电路204用于控制存储器控制器123的整体运作。具体地,在本发明实施例中,这些控制指令是以程序码型式存储于存储器模块122的特定区域中。上述多个控制指令用以对存储器模块122执行数据的写入、读取与擦除等运作。
进一步,上述多个控制指令还包括用以对存储器存储装置12执行改变读取电压电平、垃圾回收、坏块管理或磨损均衡等操作的程序码。
在一实施例中,存储器控制器123还包括电源管理电路208与错误检查与校正电路210。
其中,电源管理电路208是电性连接至存储器控制电路204并且用于控制存储器存储装置12的电源。
其中,错误检查与校正电路210是电性连接至存储器控制电路204并且用于执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器控制电路204从主机系统11中接收到写入指令时,错误检查与校正电路210会为对应写入指令的数据产生对应的错误校正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器控制电路204会将对应写入指令的数据与对应的错误校正码和/或错误检查码写入至存储器模块122中。之后,当存储器控制电路204从存储器模块122中读取数据时会同时读取数据对应的错误校正码和/或错误检查码,并且错误检查与校正电路210会依据错误校正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
进一步,如图3所示,图3为存储器控制电路的结构框图。存储器控制电路204包括微处理器单元302(Micro Processor Unit)、只读存储器304(Read Only Memory,ROM)及随机存储器306(Random Access Memory,RAM)。具体地,于存储器存储装置12开卡时,将引导程序代码(BootLoader Code)和函数库代码烧录至只读存储器304中,而将实现上述多个控制指令的程序码烧录至存储器模块122的特定区域中。当存储器控制器123被致能时,微处理器单元302会先在只读存储器304执行引导程序代码,以及根据实际的控制指令而结合只读存储器304中的函数库来将存储器模块122中存储的相对应的程序码读取方法至存储器控制电路204的随机存储器306中。之后,微处理器单元302会在随机存储器306中运转这些程序码以实现这些程序码的功能。例如,进行数据的写入、读取与擦除等操作。
图4是根据本发明的一实施例所示出的管理存储器模块的示意图。请参照图4,存储器模块122包括多个实体单元401(0)--401(A)。每一个实体单元皆包括多个存储单元且用于非易失性地存储数据。然而,必须了解的是本发明不限于此,一个实体单元可包括一个或多个实体区块。每一个实体区块可包括多个实体程序化单元。一个实体程序化单元可包括一个或多个存储单元。一个实体程序化单元中的多个存储单元可被同时程序化以存储数据。此外,一个实体单元中的所有实体程序化单元可被同时擦除。
进一步,如图4所示,存储器控制电路204可配置多个逻辑单元402(0)--402(B)来映射实体单元401(1)--401(A)。然而,必须了解的是本发明不限于此,一个逻辑单元可由一个或多个逻辑地址组成。逻辑单元与实体单元之间的映射关系则可记载于逻辑至实体映射表(L2P)中。示例性地,逻辑实体单元映射至物理实体单元被称之为区块(块)映射;逻辑实体程序化单元映射至物理实体程序化单元被称之为实体程序化单元(页)映射。下文中,逻辑至实体映射表可被理解成逻辑至物理映射表。当接收到来自主机系统11的存取指令时,存储器控制电路204可根据相应的逻辑至实体映射表来将数据存取到实体单元上。
图5是根据本发明的一实施例所示出的管理存储器模块的示意图。进一步,如图5所示,在一实施例中,存储器控制电路204会将实体单元401(0)--401(A)逻辑地分组为系统区502、缓存区504、闲置区506、数据区508与取代区510。
优选地,缓存区504和系统区502中的实体程序化单元的程序化模式为单阶存储单元程序化模式。以及数据区508中的实体程序化单元的程序化模式为多阶存储单元程序化模式。
必须了解的是,本实施例中在描述存储器模块122的实体单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体单元是逻辑上的概念。也就是说,存储器模块122的实体单元的实际位置并未改变,而是逻辑上对存储器模块122的实体单元进行操作。
逻辑上属于系统区502的实体单元是用于记录系统数据。然而,必须了解的是本发明不限于此,系统数据包括关于存储器模块122的制造商与型号、存储器模块122的实体单元数、每一实体单元的实体程序化单元数等。具体地,系统区502用于存储逻辑至实体映射表、读取次数表、实体单元的擦除次数表和实体单元的坏块表。进一步,上文中的程序码也存储于系统区502中实体单元中。
逻辑上属于缓存区504的实体单元是用于暂存来自于主机系统11的数据与指令或来自于存储器模块122的数据。进一步,当来自于主机系统11的指令为多个指令即指令序列时,缓存区504可先接收并暂存此些指令序列,存储器控制电路204从缓存区504获取此些指令序列,然后存储器控制电路204解析此些指令序列,以及从存储器模块122的系统区502中将此些指令序列所对应的程序码读取方法到缓存区504中,最后由存储器控制电路204执行。
进一步,结合图3来阐述存储器控制电路204如何执行此些指令序列所对应的程序码。具体地,微处理器单元302先解析此些指令序列,然后结合只读存储器304中的函数库来获取将相对应的程序码的存储地址,微处理器单元302根据存储地址所对应的逻辑至实体映射表将程序码读取到缓存区504中,然后微处理器单元302读取该程序码到随机存储器306中,执行该程序码的功能。
逻辑上属于数据区508与闲置区506的实体单元是用于存储来自于主机系统11的数据。具体来说,数据区508的实体单元是被视为已存储数据的实体单元,而闲置区506的实体单元是用于替换数据区508的实体单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器控制电路204会从闲置区506中提取实体单元来写入数据,写入了数据的实体单元在此之后就从闲置区506中划分到数据区508中,不再被划分到闲置区506中。当从主机系统11接收到读取指令与欲读取的数据时,存储器控制电路204会根据相应的逻辑至实体映射表从数据区508中的实体单元中读取数据。
具体地,系统区502、缓存区504、闲置区506、数据区508与取代区510分别包括一个或多个实体单元。数据区508中的实体单元是被视为已存储有效数据的实体单元,闲置区506中的实体单元也存储了数据,只是这些数据是无效数据,实体单元内有存储有数据(即使是无效数据),可以避免实体单元的漏电,有效地提高实体单元或存储器模块122的寿命。在后续需要使用闲置区506中的实体单元时,先擦除它们中的数据(无效数据),再写入到新数据到这些实体单元中。
逻辑上属于取代区510中的实体单元是用于坏实体单元取代程序,以取代损坏的实体单元。具体来说,倘若取代区510中仍存有正常的实体单元并且数据区508、闲置区506、系统区502中的实体单元损坏时,存储器控制电路204会从取代区510中提取正常的实体单元来更换数据区508、闲置区506、系统区502中损坏的实体单元。
进一步,数据区508、闲置区506、系统区502与取代区510的实体单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置12的运作中,实体单元关联至系统区502、缓存区504、闲置区506、数据区508与取代区510的分组关系会动态地变动。然而,必须了解的是本发明不限于此,当闲置区506中的实体单元损坏而被取代区510的实体单元取代时,则原本取代区510的实体单元会被关联至闲置区506。
进一步,数据区508的实体单元是被视为已存储数据的实体单元,而闲置区506的实体单元是用于待存储新数据的实体单元,当写入了新数据的实体单元就划分到数据区508中,变成数据区508中的实体单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器控制电路204会根据相应的逻辑至实体映射表从闲置区506中提取实体单元来写入数据,并更新所述实体单元的所属区域关系,即将该存储新数据的原本属于闲置区506的实体单元变成数据区508中的实体单元。当从主机系统11接收到读取指令与欲读取的数据时,存储器控制电路204会根据相应的逻辑至实体映射表从数据区508中的实体单元中读取数据。
进一步,系统区502和缓存区504中的实体程序化单元的程序化模式为单阶存储单元程序化模式。此举可提高数据和/或指令在两个区域之间存取速度。以及闲置区506、数据区508与取代区510中的实体程序化单元的程序化模式为多阶存储单元程序化模式。
进一步,在另一实施例中,如图6所示,缓存区504中可包括多个缓存区,具体地为第一缓存区602、第二缓存区604以及第三缓存区606。该多个缓存区可用以存储多个控制指令以及执行该多个控制指令所对应的程序码。特别是,第一缓存区602可专用以存放待被传送给存储器控制电路204的控制指令。第二缓存区604可专用以存放已经被传送给存储器控制电路204的控制指令和已经被存储器控制电路204执行过的控制指令。第三缓存区606可专用以存放执行上述控制指令所对应的程序码。此外,缓存区504的深度(depth)可影响存储于缓存区504的控制指令的总数。优选地,第三缓存区606的深度大于第一缓存区602和第二缓存区604深度。换句话说,逻辑上属于第三缓存区606的实体单元数量要比第一缓存区602和第二缓存区604的实体单元数量多。
具体地,主机系统11发送多个控制指令71(C)--71(D)给存储器存储装置12,优选地,存储器控制器123会依照先进先出(FirstInFirstOut,FIFO)的模式将控制指令71(C)--71(D)按照序列的方式加入到缓存区504中。具体地,第一缓存区602和第二缓存区604中暂存的控制指令依照先进先出(FirstIn FirstOut,FIFO)的模式进行管理。基于第一缓存区602和第二缓存区604的设置,此举可提高上述控制指令的管理效率。尤其是已经被传送给存储器控制电路204的控制指令和已经被存储器控制电路204执行过的控制指令亦被用第二缓存区604存储之,此举使得当有些控制指令是高频指令时,无须对这些高频指令进行再次指令解析,由于降低了指令解析的次数,那么也降低了读取执行这些高频指令所对应的程序码到第三缓存区606中的次数,藉此可提高执行控制指令的速度。
示例性地,如图7所示,主机系统11发送给存储器存储装置12的多个控制指令为71(C)--71(D)。其中,待被传送给存储器控制电路204的控制指令为71(1)、71(2)...71(E),这些控制指令存储于第一缓存区602中。已经被传送给存储器控制电路204和已经被存储器控制电路204执行过的控制指令为71(F+1)、71(F+2)...71(G),这些控制指令存储于第二缓存区604中。
进一步,执行控制指令71(1)--71(G)所对应的程序码为701(1)、701(2)...701(E)、701(F+1)、701(F+2)...701(G),这些程序码被存储器控制电路204将其从系统区502中的实体单元中读取出来而存储于第三缓存区606中。具体地,当存储器控制电路204接收到多个控制指令71(C)--71(D)时,存储器控制电路204可对控制指令71(C)--71(D)进行解析,以获取程序码701(1)、701(2)...701(E)、701(F+1)、701(F+2)...701(G)的逻辑地址。然后存储器控制电路204将包括有该些逻辑地址的逻辑至物理(实体)映射表读取到第三缓存区606中,进一步存储器控制电路204根据该逻辑至物理(实体)映射表将程序码701(1)、701(2)...701(E)、701(F+1)、701(F+2)...701(G)读取到第三缓存区606中。
在一实施例中,程序码701(1)...701(G)存储于系统区的实体单元中的方式为2份以上,每一份程序码701(1)...701(G)都可用于执行控制指令71(C)--71(D)。
示例性地,若是存储器存储装置12中只包括一个晶粒(Die),那么系统区的实体单元挑选方式为从这一个Die中的多个平面(Plane)中来挑选,也就是说将程序码在每一个平面(Plane)中都存储一份。比如:一个Die中包括4个平面(Plane),每一个平面(Plane)中包括多个实体单元(Block),每一个实体单元包括多个实体程序化单元(Page)。那么于此Die中,程序码701(1)...701(G)存储方式为4份。
在另一实施例中,若存储器存储装置12中包括2个晶粒(Die),那么程序码701(1)...701(G)存储方式为2份。每一个Die中,都存储有一份程序码701(1)...701(G)。具体地,程序码701(1)...701(G)存储每个晶粒(Die)中的方式为第一份程序码701(1)...701(G)存储于第一晶粒(Die0)中的Plane0中,第二份程序码701(1)...701(G)存储于第二晶粒(Die1)中的Plane1中。
以此类推,若存储器存储装置12中包括4个晶粒(Die),那么程序码701(1)...701(G)存储方式为4份。程序码701(1)...701(G)存储每个晶粒(Die)中的方式为第一份程序码701(1)...701(G)存储于第一晶粒(Die0)中的Plane0中,第二份程序码701(1)...701(G)存储于第二晶粒(Die1)中的Plane1中,第三份程序码701(1)...701(G)存储于第三晶粒(Die2)中的Plane2中,第四份程序码701(1)...701(G)存储于第四晶粒(Die3)中的Plane3中。
可知的是,若存储器存储装置12中包括多个晶粒(Die)时,程序码701(1)...701(G)存储方式做相对应的调整,在此不再赘述。将程序码701(1)...701(G)存储于多个存储器模块122中的目的一是提高程序码的安全性,防止执行控制指令时不能读取到程序码,进而使得存储器存储装置12不能运作;另外的目的是提高读取程序码的速度。比如,执行控制指令71(D)所对应的程序码为701(G),以存储方式为2份为例。读取该程序码701(G)的方式为从第一存储器模块(或者第一实体单元)中读取到程序码701(G)的第一部分,从第二存储器模块(或者第二实体单元)中读取到程序码701(G)的第二部分。存储器控制电路204读取到程序码701(G)的第一部分和程序码701(G)的第二部分的操作可同时进行。此举可提高存储器控制电路204读取程序码的速度,进而实现提高存储器存储装置12的效能。
图8是根据本发明的一实施例所示出的程序码读取方法的流程图。
请参照图8,在步骤S100中,微处理单元302解析控制指令71(D),获取用于执行控制指令71(D)的程序码的逻辑地址L(W)。
在步骤S200中,微处理单元302将逻辑地址L(W)的程序码读取到随机存储器306中,并在随机存储器306中执行程序码数据对应的程序码功能。
其中,当控制指令71(D)为第一类控制指令时,用于执行第一类控制指令的程序码的逻辑地址为一个。第一类控制指令可为读取指令或写入指令。
进一步,在一实施例中,当控制指令71(D)为第二类控制指令时,用于执行第二类控制指令的程序码的逻辑地址为两个和/或两个以上。第二类控制指令可为垃圾回收、坏块管理或磨损均衡等指令。
示例性地,多个逻辑地址为:L(H)、L(J)、L(K)、L(M)。示例性地,对于该控制指令的程序码读取方法为:微处理单元302从多个逻辑地址L(H)、L(J)、L(K)、L(M)中选取至少两个逻辑地址L(H)和L(J),其中该至少两个逻辑地址L(H)和L(J)包括第一逻辑地址L(H)与第二逻辑地址L(J),第一逻辑地址L(H)映射至第一物理地址P(H),第二逻辑地址L(J)映射至第二物理地址P(J),其中第一物理地址P(H)属于第一存储器模块Die(H)、Plane(H)、Block(H)或Page(H),第二物理地址P(J)属于第二存储器模块Die(J)、Plane(J)、Block(J)或Page(J)。也就是说第一物理地址P(H)和第二物理地址P(J)的物理地址不同。然后微处理单元302同时将第一物理地址P(H)中的程序码701(G-1)和第二物理地址P(J)中的程序码701(G)读取到随机存储器306中,并在随机存储器306中执行该程序码701(G-1)和701(G)对应的程序码功能。需要说明的是,于本实施例中,执行该控制指令所需的程序码包括两部分,只有读取到两个部分的程序码,才能成功地执行该控制指令。相比较于程序码701(G-1)和701(G)都从一个存储器模块中读取,此种程序码读取方法的目的是通过一次读取操作,而同时读取到两个物理地址中数据。此举使得程序码的读取速度更快。
优选地,当控制指令71(D)为第二类控制指令时,且该第二类控制指令还包括指示读取属于至少一个逻辑地址的数据,其中该至少一个逻辑地址为第三逻辑地址L(Q),第三逻辑地址L(Q)映射至第三物理地址P(Q),且所述第三物理地址属于第三存储器模块Die(Q)、Plane(Q)、Block(Q)或Page(Q)。那么存储器控制电路204在执行对第三物理地址P(Q)中的数据进行读取操作的同时还对第一物理地址P(H)和/或所述第二物理地址P(J)中的程序码执行读取操作。第三物理地址P(Q)、第一物理地址P(H)和第二物理地址P(J)物理地址所属的存储器模块各不相同,此举使得实现读取控制指令71(D)指示读取逻辑地址的数据的操作和读取第一物理地址P(H)和第二物理地址P(J)中程序码的操作互不影响,也可一次读取操作就可以执行控制指令71(D)。使得存储器存储装置12的效能得到提升。
优选地,上述步骤S200中,还包括:微处理器单元302根据实际的控制指令而结合只读存储器304中的函数库来将系统区502中存储的相对应的程序码读取至存储器控制电路204的随机存储器306中。
以及,进一步,步骤S200中,步骤将所述逻辑地址的程序码读取到随机存储器中,包括,微处理器单元302将存储有该逻辑地址的逻辑至实体映射表读取到第三缓存区606,然后微处理器单元302结合该逻辑至实体映射表将该逻辑地址的程序码读取到随机存储器中,进而在随机存储器306中执行程序码数据对应的程序码功能。
然而,图8中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图8中各步骤可以实作为多个代码或是电路,本发明不加以限制。此外,图8的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本发明提供一种程序码读取方法、存储器控制器与存储器存储装置,其将执行控制指令所需的程序码存储于存储器模块122中的系统区502中,而且是多份存储的方式。在存储器存储装置工作时,解析控制指令,获取用于执行所述控制指令的程序码的逻辑地址;将所述逻辑地址的程序码读取到随机存储器中,并在所述随机存储器中执行所述程序码对应的程序码功能。以实现小容量的SRAM的存储器存储装置亦可具有良好的数据读写速度。
更进一步,本申请还提出一种程序码读取方法,其目的是通过一次读取操作,而同时读取到两个物理地址中数据。此举使得程序码的读取速度更快,进而实现提高存储器存储装置12的效能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种程序码读取方法,应用于存储器存储装置,其特征在于,所述存储器存储装置包括存储器模块,所述存储器模块包括多个实体单元,所述每个实体单元包括多个实体程序化单元,所述程序码读取方法包括:
解析控制指令,获取用于执行所述控制指令的程序码的逻辑地址;
将所述逻辑地址的程序码读取到随机存储器中,并在所述随机存储器中执行所述程序码对应的程序码功能。
2.根据权利要求1所述的程序码读取方法,其特征在于,还包括:
用于执行所述控制指令的程序码的逻辑地址为多个,从所述多个逻辑地址中选取至少两个逻辑地址,其中所述至少两个逻辑地址包括第一逻辑地址与第二逻辑地址,所述第一逻辑地址映射至第一物理地址,所述第二逻辑地址映射至第二物理地址,其中所述第一物理地址属于第一存储器模块,所述第二物理地址属于第二存储器模块;
同时将所述第一物理地址中的程序码和所述第二物理地址中的程序码读取出来。
3.根据权利要求2所述的程序码读取方法,其特征在于,还包括:
所述控制指令包括至少一读取指令,所述至少一读取指令指示读取属于至少一个逻辑地址的数据,其中所述至少一个逻辑地址为第三逻辑地址,所述第三逻辑地址映射至第三物理地址,且所述第三物理地址属于第三存储器模块;
其中,在执行对所述第三物理地址中的数据进行读取操作的同时还对所述第一物理地址和/或所述第二物理地址中的程序码执行读取操作。
4.根据权利要求3所述的程序码读取方法,其特征在于,还包括:
所述第一物理地址属于第一存储器模块中的第一实体程序化单元,所述第二物理地址属于第二存储器模块中的第二实体程序化单元,所述第三物理地址属于第三存储器模块中的第三实体程序化单元;
其中,所述第一实体程序化单元中的数据为执行所述读取指令所对应的程序码的第一部分,所述第二实体程序化单元中的数据为执行所述读取指令所对应的程序码的第二部分,所述程序码的第一部分和所述程序码的第二部分同时被执行读取操作。
5.根据权利要求4所述的程序码读取方法,其特征在于,还包括:
将所述多个实体单元逻辑地址分组为一数据区与一系统区,所述数据区的实体单元用于存储用户数据,所述系统区的实体单元用于存储程序码数据;
其中,执行所述控制指令的程序码存储于一个或多个所述实体程序化单元中。
6.根据权利要求5所述的程序码读取方法,其特征在于,还包括:
将所述多个实体单元逻辑地址分组为一缓存区,所述缓存区用于暂存来自于主机系统的数据与指令或来自于所述存储器模块的数据;
所述缓存区包括第一缓存区、第二缓存区以及第三缓存区;
其中,所述第一缓存区可专用以存放待被传送的控制指令,所述第二缓存区可专用以存放已经被传送给的所述控制指令和已经被执行过的所述控制指令,第三缓存区可专用以存放执行所述控制指令所对应的所述程序码。
7.根据权利要求6所述的程序码读取方法,其特征在于,还包括:
将包括所述第一实体程序化单元、第二实体程序化单元和第三实体程序化单元映射关系的逻辑至实体映射表读取到所述第三缓存区中,通过所述逻辑至实体映射表而将所述程序码的第一部分和所述程序码的第二部分读取到所述随机存储器中,以及完成对所述第三实体程序化单元中的数据进行读取操作。
8.根据权利要求5所述的程序码读取方法,其特征在于,还包括:
所述缓存区和系统区中的实体程序化单元的程序化模式为单阶存储单元程序化模式;
所述数据区中的实体程序化单元的程序化模式为多阶存储单元程序化模式。
9.一种存储器控制器,用于控制存储器模块,其中所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器包括:主机接口,用以连接至主机系统;存储器接口,用以连接至所述存储器模块;存储器控制电路,其连接至所述主机接口与所述存储器接口;其特征在于,所述存储器控制电路用于执行权利要求1至8中任意一项所述的程序码读取方法中的各个步骤。
10.一种存储器存储装置,所述存储器存储装置包括连接接口、存储器模块及存储器控制器;所述连接接口用于将所述存储器存储装置连接至主机系统;所述存储器模块包括多个实体单元,所述实体单元包括多个实体程序化单元;所述存储器控制器连接至所述连接接口与所述存储器模块;其特征在于,所述存储器控制器用于执行权利要求1至8中任意一项所述的程序码读取方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638641.0A CN116048390A (zh) | 2022-12-19 | 2022-12-19 | 程序码读取方法、存储器控制器及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638641.0A CN116048390A (zh) | 2022-12-19 | 2022-12-19 | 程序码读取方法、存储器控制器及存储器存储装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048390A true CN116048390A (zh) | 2023-05-02 |
Family
ID=86123188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211638641.0A Pending CN116048390A (zh) | 2022-12-19 | 2022-12-19 | 程序码读取方法、存储器控制器及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048390A (zh) |
-
2022
- 2022-12-19 CN CN202211638641.0A patent/CN116048390A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713178B2 (en) | Mapping table updating method, memory controlling circuit unit and memory storage device | |
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US9772797B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US9639475B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
US8667210B2 (en) | Memory management method, memory controller and memory storage apparatus | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN107544922B (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
CN107357520B (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
US9001585B1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN112051971B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN110308876B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US10824340B2 (en) | Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus | |
CN111208932B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN112486417B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN113138720A (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN110442300B (zh) | 整理指令记录方法、存储器控制电路单元与存储装置 | |
CN111610937A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN116048390A (zh) | 程序码读取方法、存储器控制器及存储器存储装置 | |
CN111583976A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN113312274B (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 |