CN111399758A - 数据储存装置、存取装置及数据处理方法 - Google Patents
数据储存装置、存取装置及数据处理方法 Download PDFInfo
- Publication number
- CN111399758A CN111399758A CN201911016804.XA CN201911016804A CN111399758A CN 111399758 A CN111399758 A CN 111399758A CN 201911016804 A CN201911016804 A CN 201911016804A CN 111399758 A CN111399758 A CN 111399758A
- Authority
- CN
- China
- Prior art keywords
- system data
- memory
- memory device
- data
- predetermined
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 31
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000012360 testing method Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000010076 replication Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002365 multiple layer Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- 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
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种数据储存装置、存取装置以及数据处理方法。该存储装置包括一存储器控制器,耦接一存储器装置,用以存取存储器装置。存储器控制器对存储器装置执行一测试程序,用以取得一测试结果。存储器控制器还于存储器装置写入一开机码索引,其中开机码索引指示用以储存于存储器装置的一既定***数据的一既定地址以及既定***数据的一复制规则。存储器控制器还根据测试结果建立存储器装置的一***数据,于存储器装置的既定地址写入***数据作为既定***数据,并且根据复制规则将***数据储存于存储器装置之一或多个存储器区块作为既定***数据之一或多个副本。
Description
技术领域
本发明有关于适用于一存储器装置的数据处理方法,其可有效解决传统于高温贴合程序后无法成功取得存储器装置的***数据的问题。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embeddedMulti Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。
为了提高数据储存装置的存取效能,本发明提出一种新的数据处理方法,可解决传统于高温贴合程序后无法成功取得存储器装置的***数据的问题,以有效提升存储器装置的存取效能。
发明内容
本发明揭示一种数据储存装置,包括一存储器装置以及一存储器控制器。存储器装置包括多个存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置,其中存储器控制器执行一初始化程序,用以初始化存储器装置。于初始化程序中,存储器控制器读取存储器装置所储存的一开机码索引,并且根据开机码索引所指示的一既定地址尝试读取一既定***数据。于存储器控制器无法成功地自既定地址读取既定***数据时,存储器控制器执行一副本取得程序,用以自既定***数据之一或多个副本取得一份完整且正确的***数据。开机码索引还指示一复制规则,存储器控制器根据复制规则以及/或既定地址决定既定***数据之一或多个副本于存储器装置所储存的地址,并且读取既定***数据之一或多个副本,以取得一份完整且正确的***数据。
本发明揭示一种存取装置,包括一存储器控制器,耦接一存储器装置,用以存取存储器装置。存储器控制器对存储器装置执行一测试程序,用以取得一测试结果。存储器控制器还于存储器装置写入一开机码索引,其中开机码索引指示用以储存于存储器装的一既定***数据的一既定地址以及既定***数据的一复制规则。存储器控制器更根据测试结果建立存储器装置的一***数据,于存储器装置的既定地址写入***数据作为既定***数据,并且根据复制规则将***数据储存于存储器装置之一或多个存储器区块作为既定***数据之一或多个副本。
本发明揭示一种数据处理方法,适用于处理一存储器装置的数据,包括由一第一存储器控制器执行以下步骤:对存储器装置执行一测试程序,以取得一测试结果;于存储器装置写入一开机码索引,其中开机码索引指示用以储存于存储器装置的一既定***数据的一既定地址以及既定***数据的一复制规则;根据测试结果建立存储器装置的一***数据;于存储器装置的既定地址写入***数据作为既定***数据;以及根据复制规则将***数据储存于存储器装置之一或多个存储器区块作为既定***数据之一或多个副本。
附图说明
图1是显示根据本发明的一实施例所述的数据储存装置的示意图。
图2是显示根据本发明的一实施例所述的制作存储器产品的三个阶段。
图3是显示根据本发明的一实施例所述的数据处理方法流程图。
图4是显示根据本发明的一实施例所述的数据处理方法流程图。
符号说明
100-数据储存装置;
110-存储器控制器;
112-微处理器;
112M-只读存储器;
112C-程序码;
114-控制逻辑;
116-缓冲存储器;
118-接口逻辑;120-存储器装置;
130-主机装置;
132-编码器;
134-解码器。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。数据储存装置100包括一存储器装置120,例如,一快闪存储器(Flash Memory)模组,以及一存储器控制器110,且存储器控制器110用来存取(Access)存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112M用来储存一程序码112C,而微处理器112则用来执行程序码112C以控制对存储器装置120的存取。控制逻辑114包含了一编码器132以及一解码器134,其中编码器132用来对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从存储器装置120所读出的数据进行解码。
于典型状况下,存储器装置120包含了多个快闪存储器芯片,而每一个快闪存储器芯片包含多个存储器区块(Block),而该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行抹除数据运作是以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(Page),即,物理数据页,其中该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行写入数据之运作系以数据页为单位来进行写入。
实作上,透过微处理器112执行程序码112C的存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主机装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡、USB随身碟等),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。在另一实施例中,数据储存装置100可以是固态硬碟(Solid State Disk,缩写为SSD)或符合通用快闪存储器储存(UniversalFlash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格之嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。在又另一实施例中,数据储存装置100可为一特制的存取装置,包含一存储器控制器以及一或多个插槽(socket)(图未示),使得存储器装置120以可移除的方式安装于数据储存装置100,且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。于本发明的实施例中,特制的存取装置可用于同时对一或多个存储器装置进行产品测试,透过测试得知各存储器装置的损坏与良好存储器区块的数量,评定存储器装置的品质,并且根据存储器装置的品质进行存储器装置的分类及设定对应的存储器配置。
主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。
根据本发明的一实施例,存储器装置120所包含的多个个存储器区块中可包括单层式储存(Single-Level Cell,SLC)存储器区块、多层式储存(Multiple-Level Cell,MLC)存储器区块以及/或是三层式储存(Triple-Level Cell,TLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个位元数据,MLC存储器区块的每个存储器单元中储存两个位元数据,TLC存储器区块的每个存储器单元中储存三个位元数据。
根据本发明的一实施例,于制作成为一特定的存储器产品的过程中,存储器装置120可经历三个阶段,包含一测试与分类阶段、一贴合(bonding)阶段,以及一初始化阶段。图2是显示根据本发明的一实施例所述的制作存储器产品的三个阶段。根据本发明的一实施例,于测试与分类阶段以及初始化阶段,存储器装置120可被耦接至不同的存储器控制器。举例而言,于测试与分类阶段,存储器装置120可被耦接至第一存储器控制器。第一存储器控制器可为上述的特制的存取装置所包含的存储器控制器,而第一存储器控制器与耦接至第一存储器控制器的存储器装置120的一个整体可被视为一数据储存装置,例如上述的数据储存装置100。于测试与分类阶段结束后,存储器装置120可自上述的存取装置被移除,并于需要时,可再将下一个存储器装置耦接至第一存储器控制器,用以透过第一存储器控制器对下一个存储器装置进行测试与分类。所述的测试与分类程序可反复地对不同的存储器装置进行。
于测试与分类阶段,第一存储器控制器可对耦接的存储器装置120进行多次的读/写测试,用以确认哪些存储器区块为已损坏的、哪些存储器区块为良好可用的、计算存储器装置120实际可用的容量、藉由存储器区块的损坏率评定存储器装置120的品质,根据存储器装置120的品质进行存储器装置120的分类,例如,决定存储器装置120将被制作为USB2.0产品、USB 3.0产品、SSD产品等,并且根据存储器装置120的品质设定对应的存储器配置,例如,存储器装置120将以几个平面操作(one-plane operation,two-planeoperation,four-plane operation等等),将以可信赖模式或不可信赖模式操作、哪些存储器区块被配置为存放***数据的区块、哪些存储器区块被配置为存放使用者数据的区块等。上述存储器配置的设定以及存储器区块的相关资讯等为尔后其他存储器控制器存取该存储器装置120所必要的资讯。因此,于上述测试与分类阶段,第一存储器控制器可藉由测试获得存储器装置120的容量资讯以及用以存取该存储器装置120所必要的资讯,将这些资讯记录下来作为存储器装置120的***数据,并且将***数据写入存储器装置120。
于测试与分类阶段结束后,存储器装置120可自上述的存取装置被移除,并且根据上述分类结果,存储器装置120可被耦接至对应的一第二存储器控制器。举例而言,当存储器装置120于测试与分类阶段结束被决定将被制作为USB 3.0产品时,存储器装置120可被耦接至一USB 3.0存储器控制器。于贴合阶段,存储器装置120与第二存储器控制器将被贴合到印刷电路板上,例如,透过表面粘着技术(SMT)被粘接至印刷电路板。第二存储器控制器与耦接至第二存储器控制器的存储器装置120的一个整体可被视为另一数据储存装置,例如,另一个数据储存装置100。接着,可进入存储器装置120的初始化阶段。于初始化阶段,第二存储器控制器必须读取上述存储器装置120的***数据,以得知存储器装置120的容量资讯以及用以存取该存储器装置120所必要的资讯,并且可根据取得的资讯对存储器装置120执行其他必需的初始化操作,其中必需的初始化操作则是依照存储器产品的类型不同而有不同的安排。例如,当存储器装置120的***数据于测试与分类阶段系依循一第一规范所定义的第一格式被写入,而存储器装置120最终会被制作的产品所需的数据格式为依循一第二规范所定义的第二格式,其中第二格式与第一格式不同时,第二存储器控制器必须对取得的***数据执行格式转换,如此一来,***数据的内容才能被识别。
值得注意的是,由于于本发明的实施例中,第一存储器控制器与第二存储器控制器可大体具有相同的设计,或可具有相似的设计,其差异可以仅在于程序码112C的内容、与存储器装置沟通的接口、对应的ISP(In-System Programming)程序码的内容等等。因此,第一存储器控制器与第二存储器控制器(及其所对应的存取装置或数据储存装置)的示意图均可参考至图1所示的架构。然而,必须注意的是,孰悉本技术领域者在不脱离本发明的精神和范围内,亦可对图1所示的存储器控制器的硬件设计做些许改变,因此,本发明所述的第一存储器控制器与第二存储器控制器实际上并不仅限于图1所示的内容与架构。
如上述,由于存储器装置120于上述的贴合阶段可能会经历高温贴片的程序被粘接至印刷电路板,因而导致存储器装置120内部所储存的***数据流失或损坏,进而发生第二存储器控制器无法顺利取得***数据的问题。为解决上述问题,本发明提出一种数据处理方法及对应的数据储存装置与存取装置,透过第一存储器控制器于测试与分类阶段的特殊处理,以确保第二存储器控制器于初始化阶段可取得完整且正确的***数据。
本发明所提出的数据处理方法可大体区分为两个部分,其分别对应于上述的测试与分类阶段以及初始化阶段。图3是显示根据本发明的一实施例所述的数据处理方法流程图。图3是显示出数据处理方法的第一部分,即,于测试与分类阶段的数据处理方法流程图。存储器装置首先被耦接至第一存储器控制器,并且于测试与分类阶段,由第一存储器控制器对存储器装置执行一测试程序,以取得一测试结果(步骤S302)。接着,由第一存储器控制器于存储器装置写入一开机码索引(boot code index)(步骤S304)。根据本发明的一实施例,开机码索引可被限定为仅能被储存于存储器装置的一特定的存储器区域。此外,根据本发明的一实施例,第一存储器控制器可决定将***数据储存于哪个地址作为既定***数据,以及采用哪种复制规则复制***数据,以作为既定***数据的一或多个副本,并且于开机码索引的内容中指示出用以储存存储器装置的既定***数据的既定地址以及所述的复制规则。
接着,由第一存储器控制器根据测试结果建立存储器装置的***数据(步骤S306),并且于上述既定地址写入***数据作为所述既定***数据(步骤S308)。如上述,***数据包括存储器装置的容量资讯以及用以存取存储器装置所必要的资讯。此外,根据本发明的一实施例,第一存储器控制器可进一步根据上述复制规则将***数据写入(储存于)存储器装置之一或多个存储器区块作为所述既定***数据之一或多个副本(步骤S310)。
图4是显示根据本发明的一实施例所述的数据处理方法流程图。图4是显示出数据处理方法的第二部分,即,接续于测试与分类阶段之后的初始化阶段的数据处理方法流程图。如上述,于测试与分类阶段结束后,存储器装置将与第一存储器控制器去耦接,并且改为耦接至第二存储器控制器。第二存储器控制器为存储器装置最终要制作成的存储器产品所对应的控制器。首先,第二存储器控制器读取存储器装置所储存的开机码索引(步骤S402)。如上述,开机码索引可被限定为仅能被储存于一特定的存储器区域。因此,第二存储器控制器可于特定的存储器区域内找出开机码索引,以得知用以储存存储器装置的既定***数据的既定地址以及用以产生既定***数据的副本的复制规则。接着,第二存储器控制器根据开机码索引所指示的既定地址尝试读取既定***数据(步骤S404),以取得一份完整且正确的该***数据。第二存储器控制器可进一步判断是否能成功地自既定地址读取既定***数据(步骤S406)。举例而言,第二存储器控制器可根据是否能成功读取既定地址所储存的数据的表头(header)的内容,判断是否能成功读取既定***数据的内容。若第二存储器控制器无法成功读取表头的内容,则可推断第二存储器控制器亦无法成功读取既定***数据的内容。
若第二存储器控制器判断无法成功读取既定***数据的内容,则第二存储器控制器决定执行一副本取得程序(步骤S408),用以自既定***数据之一或多个副本取得一份完整且正确的***数据。第二存储器控制器可根据开机码索引所指示的复制规则以及/或既定地址决定既定***数据之一或多个副本于存储器装置所储存的地址(步骤S410),接着,第二存储器控制器读取一或多个副本,以取得一份完整且正确的***数据(步骤S412)。
接着,于透过一或多个副本取得一份完整且正确的***数据后,或者于步骤S414中自既定地址成功读取既定***数据以取得一份完整且正确的***数据后,第二存储器控制器对取得的***数据执行格式转换(步骤S416),将转换过的***数据存回既定地址(步骤S418),并且将存储器装置所储存的既定***数据之一或多个副本抹除(步骤S420)。亦即,存储器装置仅保留既定地址上的***数据,其余的复制的***数据均会被删除。值得注意的是,上述格式转换的步骤(步骤S416)并非为必要的。若存储器装置120最终会被制作的产品所需的数据格式已与测试与分类阶段时所采用的格式相同,则可略过此步骤。
于本发明的实施例中,第一存储器控制器并不限于将既定***数据的副本储存于被配置为存放***数据的存储器区块,亦可将既定***数据的副本储存于被配置为存放使用者数据的存储器区块。由于既定***数据的副本最终将会被删除(例如,于步骤S420),因此,于本发明的实施例中,第一存储器控制器可将既定***数据的副本储存于被配置为存放使用者数据的存储器区块,而不会导致使用者感受到可用的存储器容量不足的问题。
此外,根据本发明的一实施例,第一存储器控制器可自一群组事先被定义好的复制规则中选取适当的复制规则用以产生既定***数据之一或多个副本。根据本发明的一实施例,***数据的复制方式可大体分为两个类型,包括将一整份***数据复制于同一存储器区块的第一类型,以及于一存储器区块仅存放***数据的其中一数据页的数据的第二类型。
更具体的说,根据第一类型的复制方式,一存储器区块内会储存一份完整的***数据。举例而言,假设一份完整的***数据包含了N个数据页的数据,则第一存储器控制器可挑选M个存储器区块,并且于每个存储器区块都储存***数据的N个数据页,其中N与M为一正整数。
根据第二类型的复制方式,一存储器区块内会储存***数据的一既定数据页的数据,并且其中该存储器区块所包含的多个数据页均被写入该既定数据页的数据。举例而言,假设一份完整的***数据包含了N个数据页的数据,其中N为一正整数,则第一存储器控制器可挑选M个存储器区块,其中M为一正整数且M大于等于N,并且每个存储器区块可用以储存***数据的不同数据页的数据。举例而言,第1个存储器区块的多个个或所有数据页都用以储存***数据的第1页的数据、第2个存储器区块的多个个或所有数据页都用以储存***数据的第2页的数据、以此类推。
此外,根据本发明的一实施例,第一存储器控制器也可依循多种不同的方式挑选用以储存副本的存储器区块。举例而言,第一存储器控制器可挑选品质较佳的存储器区块用以储存副本。进一步举例而言,由于通常品质较佳的存储器区块会被配置为存放***数据的存储器区块,因此,第一存储器控制器可挑选存放***数据的存储器区块用以储存副本。
举另一例而言,第一存储器控制器可设定一基数n,其中n为一正整数,并且选择存储器区块编号为n的整数倍的存储器区块用以储存副本。换言之,于此实施例中,***数据的副本可以相同的数据密集度储存于存储器装置内。
举另一例而言,***数据的副本亦可以不同的数据密集度储存于存储器装置内。举例而言,第一存储器控制器可于品质较佳的存储器区域挑选较多的存储器区块用以储存副本,以及于品质较差的存储器区域挑选较少的存储器区块用以储存副本。换言之,品质较佳的存储器区域的副本数据密集度较高,品质较差的存储器区域的副本数据密集度较低。于本发明的实施例中,存储器区域的品质可于测试阶段做判断,或者可以是根据先前的实验结果而事先定义好的区域。
如上述,第一存储器控制器可自一群组事先被定义好的复制规则中选取适当的复制规则用以产生既定***数据之一或多个副本。事先定义好的复制规则可包含上述的复制方式(例如,第一类型的复制方式、第二类型的复制方式,以及混合第一类型与第二类型的复制方式)以及用以储存副本的存储器区块的挑选方式的各种组合。其中,根据本发明的一实施例,复制方式与存储器区块的挑选方式的各种组合皆可被分配一对应的编号(即,所述的复制规则的编号),于决定使用哪种复制方式与挑选哪些存储器区块后,便可使用开机码索引的一或多个位元组(byte)纪录对应的复制规则的编号。
根据本发明的一实施例,如上述,开机码索引包含了用以储存于存储器装置的既定***数据的既定地址以及复制规则的编号的资讯。其中,既定地址可以是存储器装置的实体地址,例如,一ALE(address latch enable)地址,而复制规则的编号可为一流水号。
根据本发明的一实施例,第二存储器控制器根据开机码索引指示的复制规则以及/或既定地址决定出既定***数据之一或多个副本于存储器装置所储存的地址,用以读取既定***数据之一或多个副本,以取得一份完整且正确的该***数据。举例而言,当采用的复制规则中存储器区块的挑选方式与既定地址相关,第二存储器控制器便可根据开机码索引指示的复制规则以及既定地址决定出用以储存副本的存储器区块所在位置。若采用的复制规则中存储器区块的挑选方式与既定地址无关,第二存储器控制器根据开机码索引指示的复制规则便可决定出用以储存副本的存储器区块所在位置。
此外,根据本发明的一实施例,于步骤S412中,第二存储器控制器根据开机码索引指示的复制规则读取一或多个副本,以取得一份完整且正确的***数据。第二存储器控制器可以多种不同的方式取得一份完整且正确的***数据。举例而言,第二存储器控制器可逐页收集正确的***数据的数据页,并将已取得的正确的数据页暂存于缓冲存储器116内,直到收集一整份完整的***数据后便可停止操作,其中逐页收集正确的***数据的数据页来源亦可包含既定***数据的一或多个数据页。举另一例而言,当既定***数据的副本系根据第一类型的复制方式被产生,第二存储器控制器可尝试于同一个存储器区块内找到一份完整且正确的***数据,若其中有任一数据页数据错误,便舍弃该存储器区块,改为寻找下一个储存副本的存储器区块。举又另一例而言,第二存储器控制器可先尝试于同一个存储器区块内找到一份完整且正确的***数据,若无法于同一个存储器区块内找到一份完整且正确的***数据,再改为逐页收集正确的***数据的数据页。
如上述,由于存储器装置120于上述的贴合阶段可能会经历高温贴片的程序被粘接至印刷电路板,因而导致存储器装置120内部所储存的***数据流失或损坏,因此,第一存储器控制器于测试与分类阶段中选取适当的复制规则产生既定***数据之一或多个副本,并且根据复制规则选择一或多个适当的存储器区块储存副本,以确保第二存储器控制器于初始化阶段可取得完整且正确的***数据。而于初始化阶段中,第二存储器控制器会先根据开机码索引指示的既定地址尝试读取原始的***数据,即上述的既定***数据。若无法成功地读取既定***数据,便会启动(执行)副本取得程序。于副本取得程序中,第二存储器控制器会先根据开机码索引指示的复制规则(或进一步根据既定地址)得知***数据的复制方式与用以储存副本的存储器区块的地址,藉由读取一或多个存储器区块所储存的副本,以取得一份完整且正确的***数据,并且于取得完整且正确的***数据后,除了将(格式转换后的)***数据存回既定地址外,还会对储存副本的存储器区块执行抹除操作,以释放出存储器空间。如此一来,不仅可确保第二存储器控制器于初始化阶段可取得完整且正确的***数据,也不会使副本占用到存储器装置其他可用的存储器空间。因此,藉由上述数据处理方法,不仅能成功且快速地完成存储器装置的初始化程序,也不会因为有因副本的需求而导致存储器空间变少的问题。
申请专利中用以修饰元件的"第一"、"第二"、"第三"等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (15)
1.一种数据储存装置,包括:
一存储器装置,包括多个存储器区块;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,其中该存储器控制器执行一初始化程序,用以初始化该存储器装置,于该初始化程序中,该存储器控制器读取该存储器装置所储存的一开机码索引,并且根据该开机码索引所指示的一既定地址尝试读取一既定***数据,
其中于该存储器控制器无法成功地自该既定地址读取该既定***数据时,该存储器控制器执行一副本取得程序,用以自该既定***数据之一或多个副本取得一份完整且正确的***数据,
其中该开机码索引还指示一复制规则,该存储器控制器根据该复制规则以及/或该既定地址决定该既定***数据的该一或多个副本于该存储器装置所储存的地址,并且读取该既定***数据的该一或多个副本,以取得一份完整且正确的该***数据。
2.如权利要求1所述的数据储存装置,其特征在于,于取得一份完整且正确的该***数据后,该存储器控制器将取得的该***数据存回该既定地址。
3.如权利要求1所述的数据储存装置,其特征在于,于取得一份完整且正确的该***数据后,该存储器控制器对取得的该***数据执行格式转换,并且将转换过的该***数据存回该既定地址。
4.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器还抹除该存储器装置所储存的该既定***数据的该一或多个副本。
5.如权利要求1所述的数据储存装置,其特征在于,该***数据包括该存储器装置的容量资讯以及用以存取该存储器装置所必要的资讯。
6.一种存取装置,包括:
一存储器控制器,耦接一存储器装置,用以存取该存储器装置,
其中该存储器控制器对该存储器装置执行一测试程序,用以取得一测试结果,
该存储器控制器还于该存储器装置写入一开机码索引,其中该开机码索引指示用以储存于该存储器装置的一既定***数据的一既定地址以及该既定***数据的一复制规则,
该存储器控制器还根据该测试结果建立该存储器装置的一***数据,于该存储器装置的该既定地址写入该***数据作为该既定***数据,并且根据该复制规则将该***数据储存于该存储器装置之一或多个存储器区块作为该既定***数据之一或多个副本。
7.如权利要求6所述的存取装置,其特征在于,该***数据包括该存储器装置的容量资讯以及用以存取该存储器装置所必要的资讯。
8.如权利要求6所述的存取装置,其特征在于该复制规则为于一存储器区块储存一份完整的该***数据。
9.如权利要求6所述的存取装置,其特征在于,该复制规则为于一存储器区块储存该***数据的一既定数据页的数据,并且其中该存储器区块所包含的多个数据页均被写入该既定数据页的数据。
10.一种数据处理方法,适用于处理一存储器装置的数据,包括由一第一存储器控制器执行以下步骤:
对该存储器装置执行一测试程序,以取得一测试结果;
于该存储器装置写入一开机码索引,其中该开机码索引指示用以储存于该存储器装置的一既定***数据的一既定地址以及该既定***数据的一复制规则;
根据该测试结果建立该存储器装置的一***数据;
于该存储器装置的该既定地址写入该***数据作为该既定***数据;以及
根据该复制规则将该***数据储存于该存储器装置之一或多个存储器区块作为该既定***数据之一或多个副本。
11.如权利要求10所述的数据处理方法,其特征在于,还包括由一第二存储器控制器执行以下步骤:
执行一初始化程序,用以初始化该存储器装置,
其中执行该初始化程序的步骤包括:
读取该存储器装置所储存的该开机码索引,并且根据该开机码索引所指示的该既定地址尝试读取该既定***数据,以取得一份完整且正确的该***数据。
12.如权利要求11所述的数据处理方法,其特征在于,于该第二存储器控制器无法成功地自该既定地址读取该既定***数据时,该方法还包括:
根据该开机码索引所指示的该复制规则以及/或该既定地址决定该既定***数据之一或多个副本于该存储器装置所储存的地址;以及
读取该一或多个副本,以取得一份完整且正确的该***数据。
13.如权利要求12所述的数据处理方法,其特征在于,于取得一份完整且正确的该***数据后,该方法还包括:
将取得的该***数据存回该既定地址。
14.如权利要求12所述的数据处理方法,其特征在于于取得一份完整且正确的该***数据后,该方法还包括:
对取得的该***数据执行格式转换;以及
将转换过的该***数据存回该既定地址。
15.如权利要求10所述的数据处理方法,其特征在于,该***数据包括该存储器装置的容量资讯以及用以存取该存储器装置所必要的资讯。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108100034A TWI698748B (zh) | 2019-01-02 | 2019-01-02 | 資料儲存裝置、存取裝置及資料處理方法 |
TW108100034 | 2019-01-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399758A true CN111399758A (zh) | 2020-07-10 |
CN111399758B CN111399758B (zh) | 2023-08-01 |
Family
ID=71123000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911016804.XA Active CN111399758B (zh) | 2019-01-02 | 2019-10-24 | 数据储存装置、存取装置及数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11327770B2 (zh) |
CN (1) | CN111399758B (zh) |
TW (1) | TWI698748B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079043A1 (en) * | 2003-12-02 | 2007-04-05 | Super Talent Electronics Inc. | Single-Chip Multi-Media Card/Secure Digital (MMC/SD) Controller Reading Power-On Boot Code from Integrated Flash Memory for User Storage |
US20070266202A1 (en) * | 2005-06-13 | 2007-11-15 | Naoki Mukaida | Memory controller, flash memory system, and control method of flash memory |
CN101187879A (zh) * | 2007-12-27 | 2008-05-28 | 威盛电子股份有限公司 | 电子***及其数据处理方法 |
US20100229068A1 (en) * | 2009-03-03 | 2010-09-09 | Wistron Corp. | Embedded electronic device and method for storing data |
US20120246384A1 (en) * | 2011-03-21 | 2012-09-27 | Winbond Electronics Corp. | Flash memory and flash memory accessing method |
CN103578566A (zh) * | 2012-07-23 | 2014-02-12 | 群联电子股份有限公司 | 存储器存储装置及其修复方法 |
US20180173536A1 (en) * | 2016-12-15 | 2018-06-21 | Western Digital Technologies, Inc. | Non-volatile storage device with multiple boot partitions |
CN108733510A (zh) * | 2017-04-25 | 2018-11-02 | 慧荣科技股份有限公司 | 数据储存装置及映射表重建方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529969B1 (en) * | 2006-08-24 | 2009-05-05 | Micron Technology, Inc. | Memory device internal parameter reliability |
TWI319139B (en) * | 2006-11-29 | 2010-01-01 | Inventec Corp | Method for repairing the data of double flash roms and synchronizing data between the two flash roms |
US8478796B2 (en) * | 2010-03-23 | 2013-07-02 | Apple Inc. | Uncorrectable error handling schemes for non-volatile memories |
BR112014009915B1 (pt) * | 2011-10-26 | 2021-06-15 | Hewlett-Packard Development Company, L.P. | Método para alocação de memória, dispositivo e meio de armazenamento não transitório legível por máquina |
US9348705B1 (en) * | 2014-06-26 | 2016-05-24 | Inphi Corporation | Memory controller system with non-volatile backup storage |
KR20180031853A (ko) * | 2016-09-19 | 2018-03-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI659307B (zh) * | 2017-01-06 | 2019-05-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
-
2019
- 2019-01-02 TW TW108100034A patent/TWI698748B/zh active
- 2019-10-24 CN CN201911016804.XA patent/CN111399758B/zh active Active
- 2019-12-19 US US16/721,887 patent/US11327770B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079043A1 (en) * | 2003-12-02 | 2007-04-05 | Super Talent Electronics Inc. | Single-Chip Multi-Media Card/Secure Digital (MMC/SD) Controller Reading Power-On Boot Code from Integrated Flash Memory for User Storage |
US20070266202A1 (en) * | 2005-06-13 | 2007-11-15 | Naoki Mukaida | Memory controller, flash memory system, and control method of flash memory |
CN101187879A (zh) * | 2007-12-27 | 2008-05-28 | 威盛电子股份有限公司 | 电子***及其数据处理方法 |
US20100229068A1 (en) * | 2009-03-03 | 2010-09-09 | Wistron Corp. | Embedded electronic device and method for storing data |
US20120246384A1 (en) * | 2011-03-21 | 2012-09-27 | Winbond Electronics Corp. | Flash memory and flash memory accessing method |
CN103578566A (zh) * | 2012-07-23 | 2014-02-12 | 群联电子股份有限公司 | 存储器存储装置及其修复方法 |
US20180173536A1 (en) * | 2016-12-15 | 2018-06-21 | Western Digital Technologies, Inc. | Non-volatile storage device with multiple boot partitions |
CN108733510A (zh) * | 2017-04-25 | 2018-11-02 | 慧荣科技股份有限公司 | 数据储存装置及映射表重建方法 |
Also Published As
Publication number | Publication date |
---|---|
US11327770B2 (en) | 2022-05-10 |
CN111399758B (zh) | 2023-08-01 |
TW202026888A (zh) | 2020-07-16 |
US20200210202A1 (en) | 2020-07-02 |
TWI698748B (zh) | 2020-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8892814B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US9043536B2 (en) | Method of recording mapping information, and memory controller and memory storage apparatus using the same | |
US8041883B2 (en) | Restoring storage devices based on flash memories and related circuit, system, and method | |
US9122498B2 (en) | Firmware code loading method, memory controller and memory storage apparatus | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
US8510502B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20130246732A1 (en) | Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same | |
US20130013853A1 (en) | Command executing method, memory controller and memory storage apparatus | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US8250292B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
US8812772B2 (en) | Data merging method for non-volatile memory and controller and storage apparatus using the same | |
US9858366B2 (en) | Simulator and simulating method for flash memory background | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
US9235501B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US10871909B2 (en) | Block management method, memory control circuit unit and apparatus using mapping tables and block recognition machine learning with block parameters as training data | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
TWI571881B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
CN111399758B (zh) | 数据储存装置、存取装置及数据处理方法 | |
US9665480B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN110275668B (zh) | 区块管理方法、存储器控制电路单元与存储器存储装置 | |
CN111596859B (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 |