CN103455454B - 一种控制存储器启动的方法和装置 - Google Patents
一种控制存储器启动的方法和装置 Download PDFInfo
- Publication number
- CN103455454B CN103455454B CN201310392586.6A CN201310392586A CN103455454B CN 103455454 B CN103455454 B CN 103455454B CN 201310392586 A CN201310392586 A CN 201310392586A CN 103455454 B CN103455454 B CN 103455454B
- Authority
- CN
- China
- Prior art keywords
- section
- data segment
- configuration type
- subdata
- memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
Abstract
本发明实施例公开了一种控制存储器启动的方法和装置,涉及存储器控制技术领域,本发明不受限于控制芯片的管脚数量,降低了成本。本发明实施例提供的方法,应用于控制装置,控制装置中包含预设数据段,预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,该方法包括:读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;第一数据段是对预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,第一操作为与第二操作相反的操作;匹配第二数据段与预设数据段;当第二数据段与预设数据段匹配时,按照第一配置类型启动存储器。
Description
技术领域
本发明涉及存储器控制技术领域,尤其涉及一种控制存储器启动的方法和装置。
背景技术
与非型闪存(NAND Flash)是一种非易失性随机访问存储器,适合存储大容量数据。不同NAND Flash的配置类型(也可以称为“规格”)不同,具体体现为以下一种或几种参数不同:最大纠错(Error Checkingand Correcting,简称ECC)能力、页大小(pagesize)、块大小(blocksize)等。
NAND Flash在控制芯片(controller)的控制下才能实现各种功能,例如,启动功能、写入数据的功能、读取数据的功能等。控制芯片对NAND Flash的控制需要满足NAND Flash的配置类型进行匹配配置,例如,需要满足NAND Flash的最大ECC能力,按照NAND Flash要求的页大小读取数据等。目前,一般在控制NAND Flash启动之前,通过人工配置控制芯片的管脚信息,使得控制芯片获知NAND Flash的配置类型;进而按照NAND Flash的配置类型控制NAND Flash启动并实现各项功能。
在上述实现控制存储器启动的过程中,发明人发明现有技术中至少存在如下问题:通过人工配置控制芯片的管脚信息的方案中,需要配置的控制芯片的管脚较多(例如:3个管脚用于配置pagesize,2个管脚用于配置blocksize,4个管脚用于配置最大ECC能力),也就是说需要使用较多管脚,导致成本高。
发明内容
本发明的实施例提供一种控制存储器启动的方法和装置,不受限于控制芯片的管脚数量,降低了成本。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种控制存储器启动的方法,应用于控制装置,所述控制装置中包含预设数据段,所述预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,所述方法包括:
读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;所述第一数据段是对所述预设数据段中的、与所述存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,所述第一操作为与所述第二操作相反的操作;
匹配所述第二数据段与所述预设数据段;
当所述第二数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
结合第一方面,在第一种可能的实现方式中,
所述读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段,包括:
读取所述第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,得到第二数据段。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述第二数据段与所述预设数据段不匹配时,所述方法还包括:
读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行所述第一操作,得到第三数据段;
匹配所述第三数据段与所述预设数据段;
当所述第三数据段与所述预设数据段匹配时,按照所述第二配置类型启动所述存储器。
结合第一方面或者第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述第二数据段与所述预设数据段不匹配时,所述方法还包括:
切换所述控制装置的随机数产生模块的开关状态;
读取所述第一数据段中的各子数据段,并对与所述第一配置类型对应的子数据段进行所述第一操作,得到第四数据段;
匹配所述第四数据段与所述预设数据段;
当所述第四数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述切换随机数产生模块的开关状态,包括:
在所述第一配置类型支持所述随机数产生模块的开启状态和关闭状态的情况下,切换所述随机数产生模块的开关状态。
第二方面,提供一种控制存储器启动的装置,所述装置中包含预设数据段,所述预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,所述装置包括:
读取单元,用于读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;所述第一数据段是对所述预设数据段中的、与所述存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,所述第一操作为与所述第二操作相反的操作;
匹配单元,用于匹配所述第二数据段与所述预设数据段;
启动单元,用于当所述第二数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
结合第二方面,在第一种可能的实现方式中,
所述读取单元具体用于,读取所述第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,得到第二数据段。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述第二数据段与所述预设数据段不匹配时,
所述读取单元还用于,读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行所述第一操作,得到第三数据段;
所述匹配单元还用于,匹配所述第三数据段与所述预设数据段;
所述启动单元还用于,当所述第三数据段与所述预设数据段匹配时,按照所述第二配置类型启动所述存储器。
结合第二方面或者第二方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述第二数据段与所述预设数据段不匹配时,所述装置还包括:随机数产生模块和切换单元;
所述切换单元,用于切换所述装置的随机数产生模块的开关状态;
所述读取单元还用于,读取所述第一数据段中的各子数据段,并对与所述第一配置类型对应的子数据段进行所述第一操作,得到第四数据段;
所述匹配单元还用于,匹配所述第四数据段与所述预设数据段;
所述启动单元还用于,当所述第四数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述切换单元具体用于,
在所述第一配置类型支持所述随机数产生模块的开启状态和关闭状态的情况下,切换所述随机数产生模块的开关状态。
本发明实施例提供的控制存储器启动的方法和装置,存储器中的第一数据段包含的各子数据段分别对应一种匹配类型,第一数据段是对预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段;通过读取第一数据段,并对第一配置类型对应的子数据段进行与第二操作相反的第一操作,得到第二数据段;将第二数据段与预设数据段进行匹配,在匹配的情况下,认为第一配置类型为该存储器的实际配置类型,按照第一配置类型启动该存储器,实现了自动确定存储器的实际配置类型,不需要配置管脚信息,因此,不受限于管脚的数量即可启动存储器,从而降低了成本,解决了通过人工配置控制芯片的管脚信息,使得控制芯片获知存储器的实际配置类型的方案中,因需要配置的管脚较多,导致成本高的问题。
附图说明
图1为本发明实施例提供的一种控制存储器启动的方法的流程示意图;
图2为本发明实施例提供的一种控制存储器启动的方法的示意图;
图3为本发明实施例提供的另一种控制存储器启动的方法的流程示意图;
图4为本发明实施例提供的另一种控制存储器启动的方法的流程示意图;
图5为本发明实施例提供的另一种控制存储器启动的方法的流程示意图;
图6为本发明实施例提供的一种控制存储器启动的装置的结构示意图;
图7为本发明实施例提供的另一种控制存储器启动的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例一
参见图1,为本发明实施例提供的一种控制存储器启动的方法,应用于控制装置,所述控制装置中包含预设数据段,所述预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,所述方法包括:
101:读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;所述第一数据段是对所述预设数据段中的、与所述存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,所述第一操作为与所述第二操作相反的操作。
其中,本发明实施例中的存储器可以为NAND Flash,本发明实施例提供的方法的执行主体可以为控制存储器实现各种功能(例如,启动功能、写入数据的功能、读取数据的功能等)的控制器,其物理形态可以为控制芯片等。若存储器为NAND Flash,则执行主体可以是NANDC(NAND Flash Controller,NAND闪存控制器)。
不同NAND Flash的配置类型不同,具体体现为以下一种或几种参数的配置不同:最大ECC能力、pagesize(页大小)、blocksize(块大小)等。本发明实施例可以应用于在由上述任意一种参数或者几种参数所构成的若干种配置类型中自动确定存储器的实际配置类型,从而按照该存储器的实际配置类型控制该存储器的启动的场景中。
需要说明的是,由于上述参数的组合所构成的配置类型很多,而最基本和最重要的参数为最大ECC能力和页大小,因此,以下实施例均以在最大ECC能力和pagesize的组合所构成的若干种配置类型中确定存储器的实际配置类型为例进行说明。例如,24bit ECC和8KBpagesize构成一种配置类型,24bit ECC和4KB pagesize构成另一种配置类型。
预设数据段可以由控制存储器启动的启动程序中的一段数据及其生成的ECC码构成,本发明实施例对预设数据段的大小不进行限定,例如可以为1k。
预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型。例如,可以为:第0-31字节对应24bit ECC和8KB pagesize构成的配置类型,第32-63字节对应24bit ECC和4KB pagesize构成的配置类型等。
第一数据段可以为对该预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,第一数据段可以预先存储在存储器中。其中,该第二操作为用于标记该存储器的实际配置类型的操作,本发明实施例对第二操作的具体类型不进行限定,例如,第二操作为按照特定算法对与存储器的实际配置类型进行加扰操作,该情况下,第一操作可以为针对该特定算法的解扰操作等。具体的,在向存储器中烧写启动程序时,即将与该存储器的实际配置类型相对应的子数据段按照特定算法进行加扰操作后再烧写,除与该存储器的实际配置类型相对应的子数据段之外的其他子数据段正常烧写。
由此可知,预设数据段与第一数据段的区别在于,预设数据段中没有对与存储器的实际配置类型对应的子数据段进行标记。
该步骤101可以包括:控制装置在依次读取第一数据段中的各子数据段之后,再对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;或者,在依次读取第一数据段中的各子数据段的过程中,当读取到与第一配置类型对应的子数据段时,即对该与第一配置类型对应的子数据段进行第一操作,读取完第一数据段中的各子数据段之后,得到第二数据段。
可选的,所述读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段,包括:
读取所述第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,得到第二数据段。
102:匹配所述第二数据段与所述预设数据段。
103:当所述第二数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
其中,第二数据段与预设数据段匹配,说明第一配置类型为该存储器的实际配置类型,因此可以按照第一配置类型启动该存储器。
例如,若第一配置类型为24bit ECC和8KB pagesize构成的配置类型,则将该存储器的最大ECC能力配置为24bit,页大小配置为8KB,并按照24bit ECC和8KB pagesize启动存储器。另外,控制装置在控制存储器启动之后,按照24bit ECC和8KB pagesize控制该存储器实现读取数据的功能、写入数据的功能等。
在本发明的一个实施例中,在所述第二数据段与所述预设数据段不匹配时,所述方法还包括:
步骤一、读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行所述第一操作,得到第三数据段;
步骤二、匹配所述第三数据段与所述预设数据段;
步骤三、当所述第三数据段与所述预设数据段匹配时,按照所述第二配置类型启动所述存储器。
示例性的,第二配置类型为第一数据段中的与各子数据段对应的各配置类型中的、除第一配置类型之外的其他配置类型中的一个。在该实施例中,当第二数据段与预设数据段不匹配时,认为第一配置类型不为存储器的实际配置类型,因此可以重新确定该存储器的实际配置类型,即执行上述步骤一和步骤二。若执行步骤三,则说明所选择的第二配置类型为存储器的实际配置类型。
需要说明的是,当所述第三数据段与所述预设数据段不匹配时,可以再次执行上述步骤一和步骤二,获得其他第二匹配类型对应的第三数据段与预设数据段的匹配结果,直到满足步骤三为止。
在本发明的另一个实施例中,在所述第二数据段与所述预设数据段不匹配时,所述方法还包括:
步骤A)、切换所述控制装置的随机数产生模块的开关状态;
步骤B)、读取所述第一数据段中的各子数据段,并对与所述第一配置类型对应的子数据段进行所述第一操作,得到第四数据段;
步骤C)、匹配所述第四数据段与所述预设数据段;
步骤D)、当所述第四数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
示例性的,切换随机数产生模块(randomizer)的开关状态可以为:改变randomizer管脚的使能。具体的:若执行步骤101-102的过程中,randomizer管脚的使能为1,则将其切换为0;若执行步骤101-102的过程中,randomizer管脚的使能为0,则将其切换为1。
可选的,步骤A)具体可以包括:
在所述第一配置类型支持所述随机数产生模块的开启状态和关闭状态的情况下,切换所述随机数产生模块的开关状态。
需要说明的是,本发明实施例中,当按照最大ECC能力和pagesize的组合构成配置类型时,在按照第一配置启动存储器的同时,控制装置可以在读取第一个块(blocksize)内的数据的过程中,完成对blocksize的配置。
本发明实施例提供的控制存储器启动的方法,存储器中的第一数据段包含的各子数据段分别对应一种匹配类型,第一数据段是对预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,通过读取第一数据段,并对第一配置类型对应的子数据段进行与第二操作相反的第一操作,得到第二数据段,将第二数据段与预设数据段进行匹配,在匹配的情况下,认为第一配置类型为该存储器的实际配置类型,按照第一配置类型启动该存储器,实现了自动确定存储器的实际配置类型,不需要配置管脚信息,因此,不受限于管脚的数量即可启动存储器,从而降低了成本,解决了通过人工配置控制芯片的管脚信息,使得控制芯片获知存储器的实际配置类型的方案中,因需要配置的管脚较多,导致成本高的问题。
实施例二
预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型。参见图2,(a)为预设数据段,该预设数据段由存储器的启动程序中的一段数据及其生成的ECC码构成,该预设数据段包含多个子数据段,每个子数据段分别对应一种配置类型,分别标记为:A、B、C、D、…、K。其中,A为24bitECC和8KB pagesize构成的配置类型,B为24bitECC和4KB pagesize构成的配置类型。假设存储器的实际配置类型为A,则向存储器中烧写启动程序时,可以将预设数据段中的,与配置类型A对应的子数据段取反后再烧写,预设数据段中不与配置类型A对应的子数据段正常烧写,从而生成第一数据段(如(b)所示)。
按照图2中的(a)所示的预设数据段和图2中的(b)所示的第一数据段,本发明实施例提供一种控制存储器启动的方法,如图3所示,包括:
301:读取第一数据段中的各子数据段并对第一数据段中的,与第一配置类型对应的子数据段进行取反操作,将进行取反操作后得到的第一数据段作为第二数据段。
其中,第一配置类型具体为A、B、C、D、…、K中的一种,具体实现时,第一配置类型可以为默认的配置类型。若默认的第一配置类型为A,则步骤301得到的第二数据段如图2中的(c)所示;若默认的第一配置类型为B,则步骤301得到的第二数据段如图2中的(d)所示。
302:判断第二数据段与预设数据段是否匹配。
若是,则执行步骤303;若否,则执行步骤304。
其中,第二数据段与预设数据段相同时,可以认为第二数据段与预设数据段匹配,该情况说明第一配置类型为存储器的实际配置类型;相反,则认为不匹配,该情况说明第一配置类型不为存储器的实际配置类型。由此可知,图2中的(c)所表示的第二数据段与预设数据段匹配,图2中的(d)所表示的第二数据段与预设数据段不匹配。
303:按照第一配置类型启动存储器。
该情况下,第二数据段如图2中的(c)所示,执行步骤303具体为:将存储器的最大ECC能力配置为24bit,页大小配置为8KB,并按照该配置启动存储器。需要说明的是,控制装置可以在读取第一个块内的数据的过程中,完成对blocksize的配置。
步骤303之后,则结束。
304:判断是否存在未选择的配置类型。
若否,则结束;若是,则执行步骤305。
示例性的,若默认的第一配置类型为B,则在步骤302之后执行步骤304,则B为已经选择过的配置类型,其余的A、C、D…K为未选择的配置类型。当不存在未选择的配置类型时,可以认为第一数据段中的各子数据段对应的配置类型均已被选择过,且未找到与存储器的实际配置类型相同的配置类型。
305:在未选择的配置类型中确定第二配置类型,将第二配置类型作为第一配置类型。该情况说明,存在未选择的配置类型,则继续按照上述方式寻找与存储器的实际配置类型。
在步骤305之后执行步骤301。
示例性的,如图2所示,在步骤301中,若默认的第一配置类型为B,则执行该步骤305。可选的,可以在未选择的配置类型A、C、D…K中选择一个配置类型作为第二配置类型,其中,选择方式可以是随机选择,或者按照预设顺序进行选择。预设顺序可以根据实际项目进行设定,下面提供一种预设顺序:(1)24bit ECC和8KB pagesize构成的配置类型;(2)24bit ECC和4KB pagesize构成的配置类型;(3)40bit ECC和8KBpagesize构成的配置类型;(4)40bit ECC和16KB pagesize构成的配置类型。
示例性的,假设选择的第二配置类型为40bit ECC和8KB pagesize构成的配置类型,则将第二配置类型作为第一配置类型,具体为:将40bitECC和8KB pagesize构成的配置类型作为第一配置类型。
需要说明的是,在上述实施例一中描述了:读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行第一操作,得到第三数据段。为了使得整个方案的执行步骤清楚明了,本实施例中将实施例一中描述的“第三数据段”也称为第二数据段。区别在于:实施例一中的第二数据段为本实施例中第1次执行步骤301得到的第二数据段,实施例一中的第三数据段为本实施例中第2次至第K次执行步骤301得到的第二数据段。
本发明实施例提供的控制存储器启动的方法,存储器中的第一数据段包含的各子数据段分别对应一种匹配类型,第一数据段是对预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段;通过读取第一数据段,并对第一配置类型对应的子数据段进行与第二操作相反的第一操作,得到第二数据段;将第二数据段与预设数据段进行匹配,在匹配的情况下,认为第一配置类型为该存储器的实际配置类型,按照第一配置类型启动该存储器,(在不匹配的情况下,在未选择的配置类型中重新确定第一配置类型,重新执行上述步骤,至获得与预设数据段匹配的第二数据段)实现了自动确定存储器的实际配置类型,不需要配置管脚信息,因此,不受限于管脚的数量即可启动存储器,从而降低了成本,解决了通过人工配置控制芯片的管脚信息,使得控制芯片获知存储器的实际配置类型的方案中,因需要配置的管脚较多,导致成本高的问题。
实施例三
预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型。按照图2中的(a)所示的预设数据段和图2中的(b)所示的第一数据段,本发明实施例提供另一种控制存储器启动的方法,如图4所示,包括:
401:读取第一数据段中的各子数据段并对第一数据段中的,与第一配置类型对应的子数据段进行取反操作,将进行取反操作后得到的第一数据段作为第二数据段。
402:判断第二数据段与预设数据段是否匹配。
若是,则执行步骤403;若否,则执行步骤404。
403:按照第一配置类型启动存储器。
步骤401-403的具体说明可以参见实施例二中的步骤301-303,此处不再赘述。
步骤403之后,则结束。
404:切换随机数产生模块的开关状态。
示例性的,切换随机数产生模块(randomizer)的开关状态可以为:改变randomizer管脚的使能。具体的:若执行步骤401-402的过程中,randomizer管脚的使能为1,则将其切换为0;若执行步骤401-402的过程中,randomizer管脚的使能为0,则将其切换为1。
405:读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,将进行取反操作后得到的第一数据段作为第四数据段。
需要说明的是,为了与实施例一统一,本实施例中在没有出现第二、第三数据段的时候,使用了第四数据段。
406:判断第四数据段与预设数据段是否匹配。
若是,则执行步骤403;若否,则执行步骤407。
407:判断是否存在未选择的配置类型。
若否,则结束;若是,则执行步骤408。
408:根据预设顺序在未选择的配置类型中确定第二配置类型,将第二配置类型作为第一配置类型。
步骤408的具体说明可以参见实施例二中的步骤305,此处不再赘述。在步骤408之后执行步骤401。
可选的,参见图5,在步骤403之后,步骤404之前还可以包括以下步骤:
404A:确定第一配置类型可支持的随机数产生模块的开关状态。
其中,随机数产生模块的当前的开关状态包括开启状态和关闭状态;第一配置类型可支持的随机数产生模块的开关状态,包括:仅支持开启状态,仅支持关闭状态,同时支持开启状态和关闭状态。
404B:判断第一配置类型可支持的随机数产生模块的开关状态是否为开启状态和关闭状态。
若是,则执行步骤404;若否,则执行步骤408。
示例性的,当第一配置类型只支持随机数产生模块的一种开关状态时,控制装置在执行步骤401的过程中(或者之前)即将随机数产生模块的开关状态设置为该第一配置类型所支持的开关状态。例如,若当前随机数产生模块的开关状态为开启状态,第一配置类型仅支持开启状态,则控制装置不改变随机数产生模块的开关状态;若第一配置仅支持关闭状态,则控制装置将随机数产生模块的由开启状态自动切换为关闭状态。
当第一配置类型同时支持开启状态和关闭状态时,控制装置在执行步骤401的过程中(或者之前)不改变随机数产生模块的开关状态。因此,该情况下,需要切换随机数产生模块的开关状态,再执行步骤405、406,以排除由于随机数产生模块的开关状态设置错误导致步骤402中的判断结果为否的情况。
示例性的,假设8bit ECC和2KB pagesize构成的配置类型仅支持关闭状态,则可以推测出在向实际配置类型为8bit ECC和2KB pagesize构成的配置类型的存储器中烧写第一数据段时,randomizer管脚处于关闭状态。因此,在执行步骤401的过程中(或者之前)randomizer管脚为关闭状态。进一步地,若步骤402的匹配结果为否,则认为该匹配结果不是由随机数产生模块的开关状态设置错误引起的,而是由第一配置类型与存储器的实际配置类型不匹配引起的。因此,该情况下,不需要执行切换随机数产生模块的开关状态的步骤。其他情况的具体实例此处不再一一列举。
需要说明的是,在上述实施例一中描述了:读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行第一操作,得到第三数据段。为了使得整个方案的执行步骤清楚明了,本实施例中将实施例一中描述的“第三数据段”也称为第二数据段。区别在于:实施例一中的第二数据段为本实施例中第1次执行步骤301得到的第二数据段,实施例一中的第三数据段为本实施例中第2次至第K次执行步骤301得到的第二数据段。
本发明实施例提供的控制存储器启动的方法,存储器中的第一数据段包含的各子数据段分别对应一种匹配类型,第一数据段是对预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段;通过读取第一数据段,并对第一配置类型对应的子数据段进行与第二操作相反的第一操作,得到第二数据段;将第二数据段与预设数据段进行匹配,在匹配的情况下,认为第一配置类型为该存储器的实际配置类型,按照第一配置类型启动该存储器,(在不匹配的情况下,切换随机数产生模块的开关状态,并重复执行上述步骤,若匹配结果仍未不匹配,则在未选择的配置类型中重新确定第一配置类型,重新执行上述步骤,至获得与预设数据段匹配的第二数据段)实现了自动确定存储器的实际配置类型,不需要配置管脚信息,因此,不受限于管脚的数量即可启动存储器,从而降低了成本,解决了通过人工配置控制芯片的管脚信息,使得控制芯片获知存储器的实际配置类型的方案中,因需要配置的管脚较多,导致成本高的问题。
实施例四
参见图6,为本发明实施例提供的一种控制存储器启动的装置60,用以执行图1所示的控制存储器启动的方法,所述装置60中包含预设数据段,所述预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,所述装置60包括:
读取单元601,用于读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;所述第一数据段是对所述预设数据段中的、与所述存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,所述第一操作为与所述第二操作相反的操作;
匹配单元602,用于匹配所述第二数据段与所述预设数据段;
启动单元603,用于当所述第二数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
可选的,所述读取单元601具体用于,读取所述第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,得到第二数据段。
可选的,在所述第二数据段与所述预设数据段不匹配时,
所述读取单元601还用于,读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行所述第一操作,得到第三数据段;
所述匹配单元602还用于,匹配所述第三数据段与所述预设数据段;
所述启动单元603还用于,当所述第三数据段与所述预设数据段匹配时,按照所述第二配置类型启动所述存储器。
可选的,参见图在所述第二数据段与所述预设数据段不匹配时,所述装置60还包括:切换单元604和随机数产生模块605;
所述切换单元604,用于切换所述随机数产生模块605的开关状态;
所述读取单元601还用于,读取所述第一数据段中的各子数据段,并对与所述第一配置类型对应的子数据段进行所述第一操作,得到第四数据段;
所述匹配单元602还用于,匹配所述第四数据段与所述预设数据段;
所述启动单元603还用于,当所述第四数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
可选的,所述切换单元604具体用于,在所述第一配置类型支持所述随机数产生模块605的开启状态和关闭状态的情况下,切换所述随机数产生模块605的开关状态。
可选的,该装置60可以为上述实施例中描述的控制装置。
本发明实施例提供的控制存储器启动的装置,存储器中的第一数据段包含的各子数据段分别对应一种匹配类型,第一数据段是对预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段;通过读取第一数据段,并对第一配置类型对应的子数据段进行与第二操作相反的第一操作,得到第二数据段;将第二数据段与预设数据段进行匹配,在匹配的情况下,认为第一配置类型为该存储器的实际配置类型,按照第一配置类型启动该存储器,实现了自动确定存储器的实际配置类型,不需要配置管脚信息,因此,不受限于管脚的数量即可启动存储器,从而降低了成本,解决了通过人工配置控制芯片的管脚信息,使得控制芯片获知存储器的实际配置类型的方案中,因需要配置的管脚较多,导致成本高的问题。
实施例五
参见图7,为本发明实施例提供的一种控制存储器启动的装置60,用以执行图1所示的控制存储器启动的方法,所述装置60中包含预设数据段,所述预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,所述装置60包括:存储器701、处理器702,其中,
存储器701,用于存储一组代码,该代码用于控制处理器702执行如下动作:
读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;所述第一数据段是对所述预设数据段中的、与所述存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,所述第一操作为与所述第二操作相反的操作;
匹配所述第二数据段与所述预设数据段;
当所述第二数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
可选的,处理器702具体用于,读取所述第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,得到第二数据段。
可选的,在所述第二数据段与所述预设数据段不匹配时,处理器702还用于执行以下动作:
读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行所述第一操作,得到第三数据段;
匹配所述第三数据段与所述预设数据段;
当所述第三数据段与所述预设数据段匹配时,按照所述第二配置类型启动所述存储器。
可选的,该装置60还包括随机数产生模块703,在所述第二数据段与所述预设数据段不匹配时,处理器702还用于执行以下动作:
切换所述随机数产生模块703的开关状态;
读取所述第一数据段中的各子数据段,并对与所述第一配置类型对应的子数据段进行所述第一操作,得到第四数据段;
匹配所述第四数据段与所述预设数据段;
当所述第四数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
可选的,处理器702具体用于,在所述第一配置类型支持所述随机数产生模块703的开启状态和关闭状态的情况下,切换所述随机数产生模块703的开关状态。
可选的,该装置60可以为上述实施例中描述的控制装置。
本发明实施例提供的控制存储器启动的装置,存储器中的第一数据段包含的各子数据段分别对应一种匹配类型,第一数据段是对预设数据段中的、与存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段;通过读取第一数据段,并对第一配置类型对应的子数据段进行与第二操作相反的第一操作,得到第二数据段;将第二数据段与预设数据段进行匹配,在匹配的情况下,认为第一配置类型为该存储器的实际配置类型,按照第一配置类型启动该存储器,实现了自动确定存储器的实际配置类型,不需要配置管脚信息,因此,不受限于管脚的数量即可启动存储器,从而降低了成本,解决了通过人工配置控制芯片的管脚信息,使得控制芯片获知存储器的实际配置类型的方案中,因需要配置的管脚较多,导致成本高的问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种控制存储器启动的方法,其特征在于,应用于控制装置,所述控制装置中包含预设数据段,所述预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,所述方法包括:
读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;所述第一数据段是对所述预设数据段中的、与所述存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,所述第一操作为与所述第二操作相反的操作;
匹配所述第二数据段与所述预设数据段;
当所述第二数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
2.根据权利要求1所述的方法,其特征在于,
所述读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段,包括:
读取所述第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,得到第二数据段。
3.根据权利要求1或2所述的方法,其特征在于,在所述第二数据段与所述预设数据段不匹配时,所述方法还包括:
读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行所述第一操作,得到第三数据段;
匹配所述第三数据段与所述预设数据段;
当所述第三数据段与所述预设数据段匹配时,按照所述第二配置类型启动所述存储器。
4.根据权利要求1或2所述的方法,其特征在于,在所述第二数据段与所述预设数据段不匹配时,所述方法还包括:
切换所述控制装置的随机数产生模块的开关状态;
读取所述第一数据段中的各子数据段,并对与所述第一配置类型对应的子数据段进行所述第一操作,得到第四数据段;
匹配所述第四数据段与所述预设数据段;
当所述第四数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
5.根据权利要求4所述的方法,其特征在于,所述切换随机数产生模块的开关状态,包括:
在所述第一配置类型支持所述随机数产生模块的开启状态和关闭状态的情况下,切换所述随机数产生模块的开关状态。
6.一种控制存储器启动的装置,其特征在于,所述装置中包含预设数据段,所述预设数据段包含至少一个子数据段,每个子数据段对应一种配置类型,所述装置包括:
读取单元,用于读取第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行第一操作,得到第二数据段;所述第一数据段是对所述预设数据段中的、与所述存储器的实际配置类型对应的子数据段进行第二操作之后得到的数据段,所述第一操作为与所述第二操作相反的操作;
匹配单元,用于匹配所述第二数据段与所述预设数据段;
启动单元,用于当所述第二数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
7.根据权利要求6所述的装置,其特征在于,
所述读取单元具体用于,读取所述第一数据段中的各子数据段,并对与第一配置类型对应的子数据段进行取反操作,得到第二数据段。
8.根据权利要求6或7所述的装置,其特征在于,在所述第二数据段与所述预设数据段不匹配时,
所述读取单元还用于,读取所述第一数据段中的各子数据段,并对与第二配置类型对应的子数据段进行所述第一操作,得到第三数据段;
所述匹配单元还用于,匹配所述第三数据段与所述预设数据段;
所述启动单元还用于,当所述第三数据段与所述预设数据段匹配时,按照所述第二配置类型启动所述存储器。
9.根据权利要求6或7所述的装置,其特征在于,在所述第二数据段与所述预设数据段不匹配时,所述装置还包括:随机数产生模块和切换单元;
所述切换单元,用于切换所述装置的随机数产生模块的开关状态;
所述读取单元还用于,读取所述第一数据段中的各子数据段,并对与所述第一配置类型对应的子数据段进行所述第一操作,得到第四数据段;
所述匹配单元还用于,匹配所述第四数据段与所述预设数据段;
所述启动单元还用于,当所述第四数据段与所述预设数据段匹配时,按照所述第一配置类型启动所述存储器。
10.根据权利要求9所述的装置,其特征在于,所述切换单元具体用于,
在所述第一配置类型支持所述随机数产生模块的开启状态和关闭状态的情况下,切换所述随机数产生模块的开关状态。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310392586.6A CN103455454B (zh) | 2013-09-02 | 2013-09-02 | 一种控制存储器启动的方法和装置 |
US14/475,118 US9424186B2 (en) | 2013-09-02 | 2014-09-02 | Method and apparatus for controlling memory startup |
EP14183118.0A EP2846259B1 (en) | 2013-09-02 | 2014-09-02 | Method and apparatus for controlling memory startup |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310392586.6A CN103455454B (zh) | 2013-09-02 | 2013-09-02 | 一种控制存储器启动的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103455454A CN103455454A (zh) | 2013-12-18 |
CN103455454B true CN103455454B (zh) | 2016-09-07 |
Family
ID=49737845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310392586.6A Active CN103455454B (zh) | 2013-09-02 | 2013-09-02 | 一种控制存储器启动的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9424186B2 (zh) |
EP (1) | EP2846259B1 (zh) |
CN (1) | CN103455454B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308273B (zh) * | 2017-07-26 | 2020-11-20 | 北京兆易创新科技股份有限公司 | 闪存控制器、闪存控制器功能的调节方法及设备 |
CN111124492B (zh) * | 2019-12-16 | 2022-09-20 | 成都海光微电子技术有限公司 | 指令生成方法、装置、指令执行方法、处理器及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438253A (zh) * | 2006-02-14 | 2009-05-20 | 爱特梅尔公司 | 写入和配置闪速存储器 |
CN101848000A (zh) * | 2009-03-26 | 2010-09-29 | 联发科技股份有限公司 | 解码方法、编码方法及启动控制系统 |
CN102184117A (zh) * | 2011-06-03 | 2011-09-14 | 展讯通信(上海)有限公司 | 系统在不同类型的Nandflash上的启动方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6426893B1 (en) * | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
US7061804B2 (en) * | 2004-11-18 | 2006-06-13 | Qualcomm Incorporated | Robust and high-speed memory access with adaptive interface timing |
US8661184B2 (en) * | 2010-01-27 | 2014-02-25 | Fusion-Io, Inc. | Managing non-volatile media |
-
2013
- 2013-09-02 CN CN201310392586.6A patent/CN103455454B/zh active Active
-
2014
- 2014-09-02 EP EP14183118.0A patent/EP2846259B1/en active Active
- 2014-09-02 US US14/475,118 patent/US9424186B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438253A (zh) * | 2006-02-14 | 2009-05-20 | 爱特梅尔公司 | 写入和配置闪速存储器 |
CN101848000A (zh) * | 2009-03-26 | 2010-09-29 | 联发科技股份有限公司 | 解码方法、编码方法及启动控制系统 |
CN102184117A (zh) * | 2011-06-03 | 2011-09-14 | 展讯通信(上海)有限公司 | 系统在不同类型的Nandflash上的启动方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2846259B1 (en) | 2022-06-22 |
US20150067280A1 (en) | 2015-03-05 |
EP2846259A1 (en) | 2015-03-11 |
CN103455454A (zh) | 2013-12-18 |
US9424186B2 (en) | 2016-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648666B (zh) | 一种用户界面生成方法及系统 | |
CN104657160B (zh) | 车载控制器多芯片应用程序的烧录方法 | |
CN104133667B (zh) | 实现人工智能行为的方法、装置及人工智能编辑器 | |
CN105404538B (zh) | 一种fpga的加载和升级目标代码的装置及方法 | |
US6563734B2 (en) | Non-volatile semiconductor memory device capable of executing erasable, writable and readable functions simultaneously | |
CN103455454B (zh) | 一种控制存储器启动的方法和装置 | |
CN103530164A (zh) | 一种fpga配置文件远程更新的方法及装置 | |
US20120243365A1 (en) | Semiconductor memory device and method of setting operation environment therein | |
US20070079094A1 (en) | System and method for enabling/disabling write-protection of a basic input output system | |
CN106874051A (zh) | 一种基于以太网的多片fpga高速动态加载装置及方法 | |
CN102779060B (zh) | 一种应用程序多次压缩解压方法 | |
CN104808953B (zh) | 控制数据存储的方法、装置及移动终端 | |
US20170194054A1 (en) | Eeprom backup method and device | |
CN106292989A (zh) | 一种信息处理方法及电子设备 | |
CN103778190A (zh) | 一种利用外部储存单元快速配置可编程控制器的系统和方法 | |
CN105242941B (zh) | 烧录方法及装置 | |
CN105653332A (zh) | 一种可修正otp烧录问题的mcu系统及烧录方法 | |
CN103699016A (zh) | 全范围模拟数字化控制系统初始工况的生成方法 | |
CN101375339B (zh) | 用于级联存储器的方法及设备 | |
CN107133066A (zh) | 一种mcu芯片中的存储复用控制系统 | |
CN107341024A (zh) | 系统升级方法和系统升级装置 | |
CN106155793A (zh) | 一种资源调度方法及装置 | |
Penna et al. | Reconfiguring CPLD to perform operations based on sequence detection condition | |
WO2012107189A3 (fr) | Procede de reprogrammation d'un calculateur, support de memorisation de donnees et calculateur de vehicule automobile | |
CN104182367B (zh) | 存储控制装置与其调用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |