CN118276786A - 存储器控制方法及存储装置 - Google Patents
存储器控制方法及存储装置 Download PDFInfo
- Publication number
- CN118276786A CN118276786A CN202410692544.2A CN202410692544A CN118276786A CN 118276786 A CN118276786 A CN 118276786A CN 202410692544 A CN202410692544 A CN 202410692544A CN 118276786 A CN118276786 A CN 118276786A
- Authority
- CN
- China
- Prior art keywords
- command sequence
- command
- sequence table
- memory
- host system
- 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 29
- 238000011161 development Methods 0.000 abstract description 5
- 210000004027 cell Anatomy 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 210000000352 storage cell Anatomy 0.000 description 4
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 3
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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]
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)
Abstract
本发明提供一种存储器控制方法和存储装置。存储装置包含存储器控制器与存储器模块,存储装置电性连接至主机系统。存储器控制方法包括:主机系统向存储器控制器发送识别指令,获取存储器控制器传送的存储器模块的识别信息;根据识别信息生成存储器模块对应的命令序列表;传送命令序列表至存储器控制器;根据执行需求发送对应的调用指令到存储器控制器,用于一次或多次调用执行命令序列表中多个命令序列的其中之一以控制存储器模块。因此,可以提高存储器控制器的兼容性,降低固件开发的成本。
Description
技术领域
本发明涉及一种存储器管理技术,尤其涉及一种存储器控制方法与存储装置。
背景技术
非易失性存储器模块(例如快闪存储器模块)具有数据非易失性保存、低耗电及数据存取快速等优点。一般来说,非易失性存储器模块由一存储器控制器所控制,存储器控制器又通过连接接口连接至主机系统。主机系统会下达命令给存储器控制器,藉此存储器控制器对非易失性存储器模块执行读取、写入、抹除等操作。然而,制作非易失性存储器模块的厂商有许多个,每家厂商可能使用不同的操作命令。当存储器控制器要适配于不同厂商生产的非易失性存储器模块时则需要开发不同的固件来适配这些不同的操作命令。或者,即使是同一家厂商所生产的非易失性存储器模块,也可能因为型号、规格等不同而采用不同的操作命令。以上问题都会增加存储器控制器的固件开发成本。
发明内容
本发明提供一种存储器控制方法,可以降低固件开发的成本。
本发明的实施例提供一种存储器控制方法,用于主机系统,主机系统电性连接至存储器控制器,方法包括:主机系统向存储器控制器发送识别指令,获取存储器控制器传送的存储器模块的识别信息;根据识别信息生成存储器模块对应的命令序列表,其中命令序列表包含多个命令序列及其对应的索引值,多个命令序列的每一者包含多个子命令;传送命令序列表至存储器控制器;根据执行需求发送对应的调用指令到存储器控制器,调用指令包含索引值以及数据参数,用于一次或多次调用执行命令序列表中多个命令序列的其中之一以控制存储器模块。
本发明的实施例还提供一种存储器控制方法,用于存储器控制器,存储器控制器电性连接至主机系统与存储器模块,方法包括:存储器控制器响应于主机系统发送的识别指令,获取存储器模块的识别信息传送给主机系统;接收并存储主机系统生成的存储器模块对应的命令序列表,其中命令序列表包含多个命令序列及其对应的索引值,多个命令序列的每一者包含多个子命令;响应于主机系统发送的调用指令,根据调用指令中的索引值选择命令序列表中对应的命令序列;以及解析对应的命令序列获取所包含的子命令,根据调用指令中的数据参数及取得的子命令控制存储器模块。
以另一个角度来说,本发明的实施例提供一种存储装置,包括连接接口单元,用以连接至主机系统;存储器模块;以及存储器控制器,连接至连接接口与存储器模块;其中存储器控制器,用以响应于主机系统发送的识别指令,获取存储器模块的识别信息传送给主机系统;用以接收并存储主机系统生成的存储器模块对应的命令序列表,其中命令序列表包含多个命令序列及其对应的索引值,多个命令序列的每一者包含多个子命令;用以响应于主机系统发送的调用指令,根据调用指令中的索引值选择命令序列表中对应的命令序列;以及用以解析对应的命令序列获取所包含的子命令,根据调用指令中的数据参数及取得的子命令控制存储器模块。
通过本发明提供的存储器控制方法,存储器控制器无需识别存储器的型号与操作命令格式,只需要识别预定义的子命令。因此开发一套固件即可兼容不同型号的存储器,且对于兼容的存储器型号没有限制,大大降低固件开发成本。
附图说明
图1是根据本发明的实施例所示出的存储装置的示意图;
图2是根据本发明的实施例所示出的管理存储器模块的示意图;
图3是根据一实施例示出存储器控制方法的流程图;
图4是根据一实施例示出命令序列表的示意图;
图5是根据一实施例示出预定义子命令表的示意图;
图6是根据一实施例示出一命令序列所包含的子命令的示意图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在附图和描述中用来表示相同或相似部分。
图1是根据本发明的实施例所示出的存储装置的示意图。请参照图1,数据存储系统包括存储装置10与主机系统11。主机系统11可为任意型态的计算机系统,例如智能手机、平板计算机、笔记本计算机、桌上计算机、工业用计算机、游戏机、服务器或车载计算机等,且主机系统11的类型不限于此。
存储装置10连接至主机系统11并用以存储来自主机系统11的数据。例如,存储装置10可包括固态硬盘、U盘、存储卡或其他类型的非易失性存储装置。主机系统11可通过嵌入式多媒体卡(embedded Multi-Media Card, eMMC)、通用快闪存储器(Universal FlashStorage, UFS)、快速外设部件互连(Peripheral Component Interconnect Express, PCIExpress)、快速非易失性存储器(Non-Volatile Memory Express, NVM express)、串行高级技术附件(Serial Advanced Technology Attachment, SATA)、通用串行总线(Universal Serial Bus, USB)或其他类型的连接接口标准来与存储装置10通讯。因此,主机系统11可将数据存储至存储装置10和/或从存储装置10读取数据。
存储装置10包括连接接口单元101、存储器模块102及存储器控制器103。连接接口单元101用以将存储装置10连接至主机系统11。例如,连接接口单元101可支持eMMC、UFS、PCI Express、NVM express、SATA、PCI Express或USB等连接接口标准。存储装置10可经由连接接口单元101与主机系统11通信(例如交换信号、指令和/或数据)。
存储器模块102用以存储数据。存储器模块102可包括一或多个可复写式非易失性存储器模块。每一个可复写式非易失性存储器模块可包括一或多个存储单元阵列。存储单元阵列中的存储单元是以电压(亦称为临界电压)的形式来存储数据。例如,存储器模块102可包括单阶存储单元(Single Level Cell, SLC)NAND型快闪存储器模块、二阶存储单元(Multi Level Cell, MLC)NAND型快闪存储器模块、三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块、四阶存储单元(Quad Level Cell, QLC)NAND型快闪存储器模块和/或其他具有相同或相似特性的存储器模块。
存储器控制器103连接至连接接口单元101与存储器模块102。存储器控制器103可视为存储装置10的控制核心并用以控制存储装置10。例如,存储器控制器103可负责控制和/或管理存储装置10的整体或部分运作。例如,存储器控制器103可包括中央处理单元(Central Processing Unit, CPU)、或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor, DSP)、可编程控制器、专用集成电路(Application Specific Integrated Circuits, ASIC)、可编程逻辑器件(ProgrammableLogic Device, PLD)或其他类似装置或这些装置的组合。在一实施例中,存储器控制器103包括快闪存储器控制器。
在一实施例中,存储器控制器103还可包括缓冲存储器、电源管理电路、编码电路、解码电路和/或其他类型的各式电路模块,本发明不加以限制。缓冲存储器用以缓存数据。电源管理电路用以管理存储装置10的电源。编码电路用以对欲存入存储器模块102的数据进行编码,以产生错误更正码(和/或错误检查码)。解码电路用以对从存储器模块102读取的数据进行解码,以更正所读取的数据中可能的错误。例如,编码电路和/或解码电路可采用低密度奇偶检查码(Low Density Parity Check code, LDPC code)、BCH码、里德-所罗门码(Reed-solomon code, RS code)、互斥或(Exclusive OR, XOR)码等各式编/解码算法来编码与解码数据。
存储器模块102可接收来自存储器控制器103的命令并根据此命令存取存储单元。例如,当欲存储数据时,存储器控制器103可发送写入命令至存储器模块102,以指示存储器模块102将数据存储至特定的存储单元中。当欲读取数据时,存储器控制器103可发送读取命令至存储器模块102,以指示存储器模块102从特定的存储单元读取数据。当欲删除数据时,存储器控制器103可发送抹除命令至存储器模块102,以指示存储器模块102将存储于特定的存储单元中的数据抹除。此外,存储器控制器103还可发送其他类型的命令至存储器模块102,以指示至存储器模块102执行相应的操作,本发明不加以限制。
图2是根据本发明的实施例所示出的管理存储器模块的示意图。请参照图1与图2,存储器模块102包括多个实体单元201(1)~201(B)。每一个实体单元皆包括多个存储单元且用以非易失性的存储数据。
在一实施例中,一个实体单元可包括一或多个实体抹除单元。一个实体抹除单元可包括多个实体程序化单元。例如,一个实体程序化单元可包括多个实体扇(sector)。例如,一个实体扇的数据容量可为512字节(Bytes, B),且一个实体程序化单元可包括8个实体扇。然而,一个实体扇的数据容量和/或一个实体程序化单元所包含的实体扇的总数皆可根据实务需求调整,本发明不加以限制。在一实施例中,一个实体程序化单元可视为一个实体页。例如,一个实体程序化单元的数据容量可为4千字节(4KB),且本发明不限于此。
在一实施例中,一个实体程序化单元为存储器模块102中同步写入数据的最小单位。例如,在对一个实体程序化单元执行程序化操作以写入数据至此实体程序化单元时,此实体程序化单元中的多个存储单元可被同步程序化,以存储对应的数据。例如,在程序化一个实体程序化单元时,写入电压可被施加至此实体程序化单元,以改变此实体程序化单元中的至少部分存储单元的临界电压。每一个存储单元的临界电压可反映此存储单元所存储的比特(bit)数据。在以下实施例中,一个实体程序化单元亦称为一个实体子单元。
在一实施例中,同一个实体抹除单元中的多个存储单元可被同步抹除。例如,在对一个实体抹除单元执行抹除操作时,抹除电压可被施加至此实体抹除单中的多个实体程序化单元,以改变此些实体程序化单元中的至少部分存储单元的临界电压并清除此些实体程序化单元中的各个存储单元所存储的比特数据。
在一实施例中,存储器控制器103可逻辑的将实体单元201(1)~201(A)关联至数据区21并将实体单元201(A+1)~201(B)关联至闲置(spare)区22。数据区21中的实体单元201(1)~201(A)用以存储来自主机系统11的数据(亦称为用户数据)。例如,数据区21中的每一个实体单元可存储有效(valid)数据和/或无效(invalid)数据。此外,闲置区22中的实体单元201(A+1)~201(B)则未存储数据。
在一实施例中,若某一个实体单元未存储有效数据,则此实体单元可被关联至闲置区22。在一实施例中,闲置区22亦称为闲置池(free pool)。此外,关联至闲置区22的实体单元可被抹除,以清除此实体单元中的数据。
在一实施例中,当有来自主机系统11的数据(即用户数据)需要存储时,存储器控制器103可从闲置区22中挑选一或多个实体单元并指示存储器模块102将来自主机系统11的数据存入所挑选的实体单元中。同时,所挑选的实体单元可被关联至数据区21。
在一实施例中,存储器控制器103可配置多个逻辑单元202(1)~202(C)来映射数据区21中的实体单元201(1)~201(A)。例如,一个逻辑单元可对应一个逻辑区块地址(LogicalBlock Address, LBA)或其他的逻辑管理单位。一个逻辑单元可映射至数据区21中的一或多个实体单元。
在一实施例中,若某一个实体单元当前有被任一逻辑单元映射,存储器控制器103可判定此实体单元当前存储的数据包括有效数据。反之,若某一实体单元当前未被任何逻辑单元映射,存储器控制器103可判定此实体单元当前未存储任何有效数据(和/或此实体单元中的数据皆为无效数据)。
在一实施例中,存储器控制器103可将逻辑单元与实体单元之间的映射关系记载于逻辑至实体映射表中。当接收到来自主机系统11的存取指令(例如读取指令、写入指令、删除指令或其他类型的指令)时,存储器控制器103可根据此逻辑至实体映射表中的信息来指示存储器模块102执行相应的操作行为。
在一实施例中,存储器控制器103可为每一个逻辑单元配置一个逻辑区块编号(Logical Block Number, LBN)。一个特定的逻辑区块编号可用来表示特定的逻辑单元。不同的逻辑区块编号可用来表示不同的逻辑单元。在一实施例中,存储器控制器103可使用此逻辑区块编号来管理各个逻辑单元。
在一实施例中,一个逻辑单元可包括多个逻辑子单元。在一实施例中,存储器控制器103可为逻辑单元中的每一个逻辑子单元配置一个逻辑页编号(Logical Page Number,LPN)。在一实施例中,存储器控制器103可使用所述逻辑区块编号搭配逻辑页编号来管理各个逻辑单元中的逻辑子单元。例如,存储器控制器103可使用逻辑区块编号为“1”搭配逻辑页编号为“2”,来表示第1个逻辑单元中的第2个逻辑子单元,依此类推。
本申请实施例的第一方面提供了一种存储器控制方法,用于主机系统11。图3是根据一实施例示出存储器控制方法的流程图。请参照图1与图3,在步骤301,主机系统11向存储器控制器103发送识别指令,获取存储器控制器103传送的存储器模块102的识别信息。此识别信息例如为存储器模块102的闪存标识符(flash ID),在其他实施例中识别信息也可以包含存储器模块102的制造商、产品名称、规格等信息,本揭露并不在此限。
在步骤302,由主机系统11根据上述的识别信息产生当前存储器模块102对应的一命令序列表。
举例来说,图4是根据一实施例示出命令序列表的示意图。请参照图4,命令序列表400包含了多个命令序列,每个命令序列具有对应的索引值。为了简化起见命令序列表400仅示出部份的命令序列。举例来说,索引值“0”对应至命令序列“FCL_READ_UNIQUE_ID”,此命令序列是用以读取闪存的唯一性标识;索引值“1”对应至命令序列“FCL_SLC_ERASE”,此命令序列是用以抹除SLC模式下的实体单元;索引值“2”对应至命令序列“FCL_XLC_ERASE”,此命令序列是用以抹除MLC、TLC、QLC等模式下的实体单元;索引值“3”是对应至命令序列“FCL_SLC_PROGRAM”,此命令序列是用以根据SLC模式执行程序化(或称写入);索引值“4”是对应至命令序列“FCL_XLC_PROGRAM”,此命令序列是用以根据MLC、TLC、QLC等模式执行程序化(或称写入);索引值“5”是对应至命令序列“FCL_SLC_READ”,此命令序列是用以对SLC模式下的实体单元进行读取。在本实施例中,设定索引值为十进制,在其他实施例中可以为二进制、八进制或十六进制等其他进制,本申请不做限制。
每个命令序列包含多个子命令,例如命令序列“FCL_XLC_ERASE”包含了子命令411~418。每个子命令包含了一个命令栏位421与三个参数栏位422~424,命令栏位421用以储存操作码(op code),用以指示预定义子命令的类型。参数栏位422~424用以指示预定义子命令的执行格式,其中储存执行命令所需要的执行参数。在一些实施例中,命令序列表400最多包含了32条命令序列,而每个命令序列包含了最多128个子命令,每个子命令的大小为4Byte,其中命令栏位421的大小为1 Byte,每个参数栏位422~424的大小为1 Byte。然而,本揭露并不限制命令序列的个数与内容,也不限制每个命令序列中子命令的个数,也不限制每个子命令的大小。
上述的子命令从预定义子命令表中选择,预定义子命令表是预先设定的一套主机系统11和存储器控制器103可共同识别的通用命令集。对于不同型号的存储器模块102,主机系统11通过对预定义子命令中执行参数的设置以及不同预定义子命令的组合来适配不同的操作命令格式。如图5的表格500所示,表格500示出了多个预定义子命令,每个预定义子命令包含了1个命令栏位与3个参数栏位,命令栏位中储存的是操作码,参数栏位中储存的是执行参数,而 “NU”则表示对应的执行参数为空。举例来说,操作码为“0x02”的子命令是用以设定延迟,第一个参数栏位是用以设定是否以微秒为时间单位,第二个与第三个参数栏位则用以纪录延迟时间。为了简化起见表格500仅示出了部分的预定义子命令,本揭露并不限制预定义子命令的内容与数量。在此例子中操作码不可以修改,子命令的格式(包含几个栏位、每个栏位的长度与内容)也不能修改,主机系统11可决定子命令的执行参数,但产生命令序列表以后,这些子命令的执行参数也不可修改。在本实施例中,设定命令栏位和参数栏位为十六进制,在其他实施例中可以为二进制、八进制或十进制等其他进制,本申请不做限制。
主机系统11根据识别信息确定当前存储器模块102对应的操作命令格式,挑选所述多个预定义子命令中的一者或多者以形成命令序列表中的每一命令序列,根据操作命令格式确定多个预定义子命令中的执行参数。举例来说,命令序列“FCL_SLC_ERASE”包含了操作码为0x10、0x13、0x30、0x02、0x01、0x31、0x14、0xFF的子命令。类似的,对于其他的命令序列主机系统11会挑选出其他合适的预定义子命令。
同一个命令序列中可包含多个操作码相同的预定义子命令,这些预定义子命令的执行参数可相同也可不相同。不同的命令序列也可包含相同操作码的预定义子命令,这些预定义子命令的执行参数可相同也可不相同。换言之,主机系统11是从预定义子命令中组合出自身需要的命令序列,这些子命令的组合需要遵守构成规则和存储器模块102的执行格式。例如,某个型号的存储器模块102一次可读取的数据量为4k,而另一个型号的存储器模块102一次可读取的数据量为2k,主机系统11可因应的设计子命令的执行参数而产生不同的命令序列表。
对于不同型号的存储器模块102,形成实现相同功能的命令序列的预定义子命令也可不同,举例来说,对于两个不同型号的存储器模块102生成的命令序列“FCL_SLC_ERASE”包含的子命令的数量、顺序或种类都可不同。
请参照回图3,在步骤303,主机系统11将所产生的命令序列表传送至存储器控制器103,此命令序列表会储存在存储器控制器103中。
在一些实施例中,若主机系统对当前命令序列表中的命令序列进行新增、修改或删除,将生成新的命令序列表传送给存储器控制器103以代替当前命令序列表。命令序列表不可被存储器控制器103新增、修改或删除。
在步骤304,主机系统11根据执行需求发送对应的调用指令到存储器控制器103,此调用指令包含索引值以及数据参数。索引值对应至命令序列表中的一个命令序列,用于一次或多次调用执行命令序列表中多个命令序列的其中之一以控制存储器模块102。以图4的命令序列表为例,当主机系统11要执行命令序列“FCL_SLC_ERASE”时,便可以设定调用指令中的索引值为1,而数据参数例如包含逻辑单元的地址。或者,当主机系统11要执行命令序列“FCL_SLC_READ”时,便可以设定调用指令中的索引值为5,而数据参数例如包含目标区块或页面的地址。或者当主机系统11要一次读取大量数据时,便可以设定调用指令中的索引值为5,多次调用执行命令序列“FCL_SLC_READ”,而数据参数例如包含执行次数,目标区块或页面的地址。
本申请实施例的第二方面提供了一种存储器控制方法,用于存储器控制器103。主机系统11执行步骤301向存储器控制器103发送识别指令后,存储器控制器103响应于主机系统11发送的识别指令,获取存储器模块102的识别信息传送给主机系统11。
主机系统11执行步骤303向存储器控制器103发送命令序列表后,存储器控制器103接收并存储主机系统11生成的存储器模块102对应的命令序列表,其中命令序列表包含多个命令序列及其对应的索引值,多个命令序列的每一者包含多个子命令。命令序列表、命令序列和子命令具体参见上文说明,此处不再赘述。
主机系统11执行步骤304根据执行需求发送对应的调用指令到存储器控制器103后,存储器控制器103响应于主机系统发送的调用指令,根据调用指令中的索引值选择命令序列表中对应的命令序列。
以及,存储器控制器103取得上述索引值所对应的命令序列后,解析对应的命令序列获取所包含的子命令,根据调用指令中的数据参数及取得的子命令控制存储器模块102。延续上述的例子,当索引值为1,存储器控制器103会根据此索引值查询命令序列表而取得命令序列“FCL_SLC_ERASE”所包含的子命令。请参照图6,在此例子中命令序列“FCL_SLC_ERASE”包含了子命令601~610,每个子命令601~610包含了四个栏位,第一个栏位记录操作码,后三个栏位记录执行参数(图6中栏位里的数字都是16进位),如果栏位里面没有记录数值,这表此栏位无效。在本实施例中,设定命令栏位和参数栏位为十六进制,在其他实施例中可以为二进制、八进制或十进制等其他进制,本申请不做限制。
首先对于子命令601,操作码为“10”,这表示要对存储器模块102发送指令,所要发送的指令为“DA”,这表示SLC的预指令。对于子命令602,操作码为“10”,这表示要对存储器模块102发送指令,所要发送的指令为“60”,这是要执行抹除的第一个指令。对于子命令603,操作码为“13”,这表示要对存储器模块102发送行地址,从调用指令中获取对应的数据参数作为行地址。对于子命令604,操作码为“10”,这表示要对存储器模块102发送指令,所要发送的指令为“D0”,这表示要执行抹除的第二个指令。对于子命令605,操作码为“30”,这表示开始启动定时器。对于子命令606,操作码为“02”,这是要设定延迟,数值“00”表示以纳秒(ns)为时间单位,数值“50 00”表示要延迟0x0050(十进制为80)个时间单位。对于子命令607,操作码为“01”,这表示等待存储器模块102就绪。对于子命令608,操作码为“31”,这表示定时器停止,并保存计时时间。对于子命令609,操作码为“14”,这表示要增加行地址,这个子命令是用于重复调用此命令序列。如果下一次调用此命令序列所要执行的对象在相同的平面(plane),参数栏位可以填入数值“0040”,如果下一次调用此命令序列所要执行的对象在不同的平面,参数栏位可以填入“0010”。最后对于子命令610,操作码为“FF”,这表示此命令序列结束。
在上述例子中,命令序列“FCL_SLC_ERASE”包含了10个子命令601~610。然而,在其他的存储装置10中,如果存储器模块102的型号改变,则主机系统11会产生另一个命令序列表,其中的命令序列“FCL_SLC_ERASE”可包含不同的子命令。具体来说,当存储器控制器103将存储器模块102的识别信息传送给主机系统11以后,如果主机系统11判断此识别信息为第一识别信息(例如某一个型号),主机系统11会产生第一命令序列表,并把第一命令序列表传送至存储器控制器103。如果主机系统11判断所接收到的识别信息是第二识别信息(例如另一个型号),主机系统11会产生第二命令序列表,并把第二命令序列表传送至存储器控制器103。上述的第一命令序列表不同于第二命令序列表。在一些实施例中,第一命令序列表中命令序列的顺序可不同于第二命令序列表中命令序列的顺序,例如命令序列“FCL_SLC_ERASE”在第一命令序列表中的索引值为1,但相同的命令序列表在第二命令序列表中的索引值为3。在一些实施例中,第一命令序列表中命令序列的数量不同于第二命令序列表中命令序列的数量,例如第一命令序列表中包含了28个命令序列,而第二命令序列表包含了31个命令序列。
在一些实施例中,子命令在第一命令序列表中与第二命令序列表中可以有不同的参数。同样以命令序列“FCL_SLC_ERASE”为例,在第一命令序列表中命令序列“FCL_SLC_ERASE”(亦称第一命令序列)包含了子命令“10 DA 00 00”(亦称第一子命令),可参照图6中的子命令601。然而,在第二命令序列表中命令序列“FCL_SLC_ERASE”(亦称第二命令序列)可包含子命令“10 3B 00 00”(亦称第二子命令),也就是说第一子命令的操作码相同于第二子命令的操作码,但第一子命令的参数不同于第二子命令的参数。
存储器控制器103不可对命令序列表中的命令序列进行新增、修改或删除。在一些实施例中,主机系统11对当前命令序列表中的命令序列进行新增、修改或删除,生成新命令序列表传送给存储器控制器103。存储器控制器103接收到新命令序列表后,会存储最新收到的命令序列表以代替当前命令序列表。例如当前命令序列表中包含了28个命令序列,而新的命令序列表包含了32个命令序列。
以另一个角度来说,本申请实施例的第三方面提供了一种存储装置10,包括连接接口单元101,用以连接至主机系统11;存储器模块102;以及存储器控制器103,连接至连接接口单元101与存储器模块102。
其中存储器控制器103,用以响应于主机系统11发送的识别指令,获取存储器模块102的识别信息传送给主机系统11;用以接收并存储主机系统11生成的存储器模块102对应的命令序列表,其中命令序列表包含多个命令序列及其对应的索引值,多个命令序列的每一者包含多个子命令;用以响应于主机系统11发送的调用指令,根据调用指令中的索引值选择命令序列表中对应的命令序列;以及用以解析对应的命令序列获取所包含的子命令,根据调用指令中的数据参数及取得的子命令控制存储器模块102。具体实施步细节如上文所说明,此处不再赘述。
通过上述的手段,对于存储器模块102的不同型号,主机系统11可以产生对应的命令序列表传送至存储器控制器103,在之后的操作中主机系统11只要传送命令序列的索引值便可以调用对应的命令序列。如此一来存储器控制器103的固件只需要识别预定义子命令表即可根据主机系统11传送的命令序列表来控制不同型号的存储器模块102,不需要因应存储器模块102的不同型号而刻录不同的固件,可降低固件的开发成本与复杂度。上述手段也可以适用不同的连接接口标准,例如USB、SATA、PCIE等。此外,存储器模块102可能有不同的规格,例如单平面以及多平面,上述手段可以适用于各种不同的规格。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种存储器控制方法,其特征在于,用于主机系统,所述主机系统电性连接至存储器控制器,所述方法包括:
所述主机系统向所述存储器控制器发送识别指令,获取所述存储器控制器传送的存储器模块的识别信息;
根据所述识别信息生成所述存储器模块对应的命令序列表,其中所述命令序列表包含多个命令序列及其对应的索引值,所述多个命令序列的每一者包含多个子命令;
传送所述命令序列表至所述存储器控制器;以及
根据执行需求发送对应的调用指令到所述存储器控制器,所述调用指令包含索引值以及数据参数,用于一次或多次调用执行所述命令序列表中所述多个命令序列的其中之一以控制所述存储器模块。
2.根据权利要求1所述的存储器控制方法,其特征在于,所述根据所述识别信息生成所述存储器模块对应的命令序列表包括:
根据所述识别信息确定所述存储器模块对应的操作命令格式;以及
挑选预定义子命令表中的一或多个预定义子命令以形成所述命令序列表中的每一所述命令序列,根据所述操作命令格式确定所述预定义子命令中的执行参数,其中所述预定义子命令表是预先设定的所述主机系统和所述存储器控制器可共同识别的命令集。
3.根据权利要求1所述的存储器控制方法,其特征在于,还包括:
当判断所述识别信息为第一识别信息,产生第一命令序列表以作为所述命令序列表;以及
当判断所述识别信息为第二识别信息,产生第二命令序列表以作为所述命令序列表,其中所述第一命令序列表不同于所述第二命令序列表。
4.根据权利要求3所述的存储器控制方法,其特征在于,其中所述第一命令序列表不同于所述第二命令序列表包括:
所述第一命令序列表中所述命令序列的顺序不同于所述第二命令序列表中所述命令序列的顺序;或者
所述第一命令序列表中所述命令序列的数量不同于所述第二命令序列表中所述命令序列的数量。
5.根据权利要求3所述的存储器控制方法,其特征在于,其中所述第一命令序列表不同于所述第二命令序列表包括:
所述第一命令序列表的第一命令序列包含第一子命令,所述第二命令序列表中的第二命令序列包含第二子命令;
其中所述第一子命令的操作码相同于所述第二子命令的操作码并且所述第一子命令的执行参数不同于所述第二子命令的执行参数。
6.根据权利要求2所述的存储器控制方法,其特征在于,所述预定义子命令包括命令栏位以及参数栏位:
所述命令栏位包含操作码,用以指示所述预定义子命令的类型;
所述参数栏位包含所述执行参数,用以指示所述预定义子命令的执行格式。
7.根据权利要求1所述的存储器控制方法,其特征在于,还包括:
若所述主机系统对所述命令序列表中的命令序列进行新增、修改或删除,生成新命令序列表传送给所述存储器控制器以代替所述命令序列表。
8.一种存储器控制方法,其特征在于,用于存储器控制器,所述存储器控制器电性连接至主机系统与存储器模块,所述方法包括:
所述存储器控制器响应于所述主机系统发送的识别指令,获取所述存储器模块的识别信息传送给所述主机系统;
接收并存储所述主机系统生成的所述存储器模块对应的命令序列表,其中所述命令序列表包含多个命令序列及其对应的索引值,所述多个命令序列的每一者包含多个子命令;
响应于所述主机系统发送的调用指令,根据所述调用指令中的索引值选择所述命令序列表中对应的命令序列;以及
解析所述对应的命令序列获取所包含的子命令,根据所述调用指令中的数据参数及取得的所述子命令控制所述存储器模块。
9.根据权利要求8所述的存储器控制方法,其特征在于,接收并存储所述主机系统生成的所述存储器模块对应的命令序列表后,还包括:
若接收到所述主机系统发送新命令序列表,存储所述新命令序列表以代替所述命令序列表。
10.根据权利要求8所述的存储器控制方法,其特征在于,还包括:
所述存储器控制器不可对所述命令序列表中的所述命令序列进行新增、修改或删除。
11.一种存储装置,其特征在于,包括:
连接接口单元,用以连接至主机系统;
存储器模块;以及
存储器控制器,连接至所述连接接口与所述存储器模块;
其中所述存储器控制器,用以响应于所述主机系统发送的识别指令,获取存储器模块的识别信息传送给所述主机系统;
用以接收并存储所述主机系统生成的所述存储器模块对应的命令序列表,其中所述命令序列表包含多个命令序列及其对应的索引值,所述多个命令序列的每一者包含多个子命令;
用以响应于所述主机系统发送的调用指令,根据所述调用指令中的索引值选择所述命令序列表中对应的命令序列;以及
用以解析所述对应的命令序列获取所包含的子命令,根据所述调用指令中的数据参数及取得的所述子命令控制所述存储器模块。
12.根据权利要求11所述的存储装置,其特征在于,
当判断所述识别信息为第一识别信息,所述主机系统产生第一命令序列表以作为所述命令序列表;以及
当判断所述识别信息为第二识别信息,所述主机系统产生第二命令序列表以作为所述命令序列表,其中所述第一命令序列表不同于所述第二命令序列表。
13.根据权利要求12所述的存储装置,其特征在于,所述第一命令序列表不同于所述第二命令序列表包括:
所述第一命令序列表中所述多个命令序列的顺序不同于所述第二命令序列表中所述多个命令序列的顺序;或者
所述第一命令序列表中所述多个命令序列的数量不同于所述第二命令序列表中所述多个命令序列的数量。
14.根据权利要求12所述的存储装置,其特征在于,其中所述第一命令序列表不同于所述第二命令序列表还包括:
所述第一命令序列表的第一命令序列包含第一子命令,所述第二命令序列表中的第二命令序列包含第二子命令;
其中所述第一子命令的操作码相同于所述第二子命令的操作码并且所述第一子命令的执行参数不同于所述第二子命令的执行参数。
15.根据权利要求11所述的存储装置,其特征在于,还包括:
所述存储器控制器不可对所述命令序列表中的命令序列进行新增、修改或删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410692544.2A CN118276786B (zh) | 2024-05-31 | 2024-05-31 | 存储器控制方法及存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410692544.2A CN118276786B (zh) | 2024-05-31 | 2024-05-31 | 存储器控制方法及存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118276786A true CN118276786A (zh) | 2024-07-02 |
CN118276786B CN118276786B (zh) | 2025-01-17 |
Family
ID=91643682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410692544.2A Active CN118276786B (zh) | 2024-05-31 | 2024-05-31 | 存储器控制方法及存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118276786B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118689406A (zh) * | 2024-08-26 | 2024-09-24 | 珠海妙存科技有限公司 | 存储设备、存储设备识别码及其定义方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140129206A1 (en) * | 2012-11-05 | 2014-05-08 | Phison Electronics Corp. | Simulator and simulating method for flash memory background |
US20170115888A1 (en) * | 2015-10-21 | 2017-04-27 | HGST Netherlands B.V. | Method and system for a common processing framework for memory device controllers |
CN109407991A (zh) * | 2018-10-22 | 2019-03-01 | 湖南国科微电子股份有限公司 | 一种非易失性闪存执行命令的暂停及恢复方法、非易失性闪存及电子设备 |
US20190250847A1 (en) * | 2018-02-09 | 2019-08-15 | Micron Technology, Inc. | Data Stream Identification and Processing in Data Storage Device |
US20220011976A1 (en) * | 2020-07-08 | 2022-01-13 | Silicon Motion, Inc. | Method and apparatus and computer program product for configuring reliable command |
US11543972B1 (en) * | 2021-11-02 | 2023-01-03 | Hitachi, Ltd. | Storage system and control method thereof |
-
2024
- 2024-05-31 CN CN202410692544.2A patent/CN118276786B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140129206A1 (en) * | 2012-11-05 | 2014-05-08 | Phison Electronics Corp. | Simulator and simulating method for flash memory background |
US20170115888A1 (en) * | 2015-10-21 | 2017-04-27 | HGST Netherlands B.V. | Method and system for a common processing framework for memory device controllers |
US20190250847A1 (en) * | 2018-02-09 | 2019-08-15 | Micron Technology, Inc. | Data Stream Identification and Processing in Data Storage Device |
CN109407991A (zh) * | 2018-10-22 | 2019-03-01 | 湖南国科微电子股份有限公司 | 一种非易失性闪存执行命令的暂停及恢复方法、非易失性闪存及电子设备 |
US20220011976A1 (en) * | 2020-07-08 | 2022-01-13 | Silicon Motion, Inc. | Method and apparatus and computer program product for configuring reliable command |
US11543972B1 (en) * | 2021-11-02 | 2023-01-03 | Hitachi, Ltd. | Storage system and control method thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118689406A (zh) * | 2024-08-26 | 2024-09-24 | 珠海妙存科技有限公司 | 存储设备、存储设备识别码及其定义方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118276786B (zh) | 2025-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9146691B2 (en) | Method for managing commands in command queue, memory control circuit unit and memory storage apparatus | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US8255656B2 (en) | Storage device, memory controller, and data protection method | |
US9437312B2 (en) | Management of write-protected data in a semiconductor memory | |
CN105005450A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US20130304964A1 (en) | Data processing method, and memory controller and memory storage device using the same | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20130332653A1 (en) | Memory management method, and memory controller and memory storage device using the same | |
CN104281413A (zh) | 命令队列管理方法、存储器控制器及存储器储存装置 | |
CN118276786B (zh) | 存储器控制方法及存储装置 | |
CN103914391A (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN103544118B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
KR20210124705A (ko) | 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법 | |
US9146861B2 (en) | Memory address management method, memory controller and memory storage device | |
CN102543184B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
TWI712052B (zh) | 記憶體管理方法、儲存控制器與儲存裝置 | |
CN114822664A (zh) | 基于数据优先级的风险评估方法、存储装置及控制电路 | |
TWI584292B (zh) | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN118349186B (zh) | 映射表更新方法与存储装置 | |
CN114115739B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN113010458B (zh) | 存储器管理方法、存储控制器与存储装置 | |
CN111831210A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |