CN112802512B - 存储控制器以及存储装置初始化方法 - Google Patents

存储控制器以及存储装置初始化方法 Download PDF

Info

Publication number
CN112802512B
CN112802512B CN201911106496.XA CN201911106496A CN112802512B CN 112802512 B CN112802512 B CN 112802512B CN 201911106496 A CN201911106496 A CN 201911106496A CN 112802512 B CN112802512 B CN 112802512B
Authority
CN
China
Prior art keywords
physical
physical blocks
blocks
block
pages
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
Application number
CN201911106496.XA
Other languages
English (en)
Other versions
CN112802512A (zh
Inventor
陈俊明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hosin Global Electronics Co Ltd
Original Assignee
Hosin Global Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hosin Global Electronics Co Ltd filed Critical Hosin Global Electronics Co Ltd
Priority to CN201911106496.XA priority Critical patent/CN112802512B/zh
Publication of CN112802512A publication Critical patent/CN112802512A/zh
Application granted granted Critical
Publication of CN112802512B publication Critical patent/CN112802512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种存储控制器以及存储装置初始化方法。所述方法包括抹除可复写式非易失性存储器模块的多个实体区块;写满预定数据至所述多个实体区块;对所述多个实体页面执行读取操作以获得多个页面错误比特数;根据所述多个页面错误比特数来识别所述多个实体区块各自的物理状况,并且根据多个物理状况来排序所述多个实体区块以获得区块序列;反应于判定所述区块序列中的所有实体区块的所述总空间不等于所述第一预定空间,从所述区块序列中移除排序于最前方的实体区块;以及反应于判定所述总空间等于所述第一预定空间,完成所述初始化操作,选择所述区块序列中的多个第一实体区块中的多个第二实体区块的总空间来作为具有预定大小的第二预定空间。

Description

存储控制器以及存储装置初始化方法
技术领域
本发明涉及一种存储控制器以及所述存储控制器所使用的存储装置初始化方法。
背景技术
一般来说,存储装置在使用前或是第一次连接至主机系统时,存储装置会先执行初始化操作(也称为,开卡操作),以确定存储装置可以配给主机系统的符合预定大小的存储空间。然而,一般传统的初始化操作,仅单纯地选择总空间等于预定大小的多个实体区块以配给主机系统来做使用。
发明内容
本发明是针对用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器以及所述存储控制器所使用的存储装置初始化方法。
本发明的实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路及处理器。所述连接接口电路用以耦接至主机系统。所述存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。所述处理器耦接至所述连接接口电路及所述存储器接口控制电路。所述处理器用以开始执行初始化操作,其中所述处理器还用以抹除所述可复写式非易失性存储器模块的多个实体区块,其中所述多个实体区块皆未被映射至所述主机系统的多个逻辑区块,其中所述多个实体区块是所述可复写式非易失性存储器模块的多个实体页面所分组的,其中所述处理器还用以写入预定数据至所述多个实体区块,以使所述多个实体区块存储满所述预定数据,其中所述处理器还用以对所述多个实体页面执行读取操作,以获得所述多个实体页面各自的页面错误比特数,其中所述处理器还用以根据所述多个实体页面各自的所述页面错误比特数来获得所述多个实体区块各自的区块错误比特数,其中所述处理器还用以根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的物理状况,并且根据多个物理状况来排序所述多个实体区块,以获得区块序列,其中排序于所述区块序列中最前方的实体区块具有最差的物理状况,并且排序于所述区块序列中最后方的实体区块具有最差的物理状况。此外,所述处理器还用以判断所述区块序列中的所有实体区块的总空间是否等于第一预定空间,其中反应于判定所述区块序列中的所有实体区块的所述总空间不等于所述第一预定空间,所述处理器还用以从所述区块序列中移除排序于最前方的实体区块,并且更新所述区块序列,其中所述区块序列中的所有实体区块各自为第一实体区块,其中反应于判定所述区块序列中的所有实体区块的所述总空间等于所述第一预定空间,所述处理器还用以完成所述初始化操作,选择所述区块序列中的多个第一实体区块中的多个第二实体区块的总空间来作为第二预定空间,其中所述多个第二预定空间的大小为预定大小。
在本发明的一实施例中,在所述根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的所述物理状况,并且根据所述多个物理状况来排序所述多个实体区块,以获得所述区块序列的操作中,所述处理器将所述多个实体页面中具有大于页面错误比特数门槛值的所述页面错误比特数的一或多个目标实体页面标记为坏实体页面,其中所述处理器加总所述多个实体区块各自具有的所述坏实体页面的数目为坏实体页面总数目,其中所述处理器根据所述多个实体区块各自的所述坏实体页面总数目,由大至小,来对所述多个实体区块执行第一排序,以获得第一区块序列,其中反应于多个目标实体区块各自的所述坏实体页面总数目相等,所述处理器根据所述多个目标实体区块各自的所述区块错误比特数,由大至小,来对所述多个目标实体区块执行第二排序,以更新所述第一区块序列为所述区块序列。
在本发明的一实施例中,所述多个第二实体区块用以被映射至所述主机系统的所述多个逻辑区块。
在本发明的一实施例中,所述预定大小为可被所述主机系统所使用的预定容量。
在本发明的一实施例中,所述处理器更记录被移除的一或多个实体区块于坏实体区块表中
本发明的实施例提供一种存储装置初始化方法,适用于配置有一可复写式非易失性存储器模块的一存储装置。所述方法包括:开始执行初始化操作,抹除所述可复写式非易失性存储器模块的多个实体区块,其中所述多个实体区块皆未被映射至主机系统的多个逻辑区块,其中所述多个实体区块是所述可复写式非易失性存储器模块的多个实体页面所分组的;写入预定数据至所述多个实体区块,以使所述多个实体区块存储满所述预定数据;对所述多个实体页面执行读取操作,以获得所述多个实体页面各自的页面错误比特数;根据所述多个实体页面各自的所述页面错误比特数来获得所述多个实体区块各自的区块错误比特数;根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的物理状况,并且根据多个物理状况来排序所述多个实体区块,以获得区块序列,其中排序于所述区块序列中最前方的实体区块具有最差的物理状况,并且排序于所述区块序列中最后方的实体区块具有最差的物理状况;判断所述区块序列中的所有实体区块的总空间是否等于第一预定空间;反应于判定所述区块序列中的所有实体区块的所述总空间不等于所述第一预定空间,从所述区块序列中移除排序于最前方的实体区块,并且更新所述区块序列,其中所述区块序列中的所有实体区块各自为第一实体区块;以及反应于判定所述区块序列中的所有实体区块的所述总空间等于所述第一预定空间,完成所述初始化操作,选择所述区块序列中的多个第一实体区块中的多个第二实体区块的总空间来作为第二预定空间,其中所述多个第二预定空间的大小为预定大小。
基于上述,本发明实施例所提供的存储控制器以及存储装置初始化方法,可在对存储装置所执行的初始化操作中,利用对所有的实体区块及实体页面执行抹除操作、写入操作与读取操作,以获得相应于每个实体页面的错误比特数,从而可根据相应于每个实体页面的错误比特数来在符合存储装置的预定大小的情况下,去除物理状况较差的一或多个实体区块,以使主机系统仅可使用到物理状况较佳的实体区块。如此一来,在完成初始化操作后,可避免主机系统使用到物理状况较差的已去除的实体区块,从而增进存储装置的存储数据的可靠度。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1为根据本发明的实施例所示出的主机系统与存储装置的方块示意图。
图2为根据本发明的实施例所示出的存储装置初始化方法的流程图。
图3为根据本发明的实施例所示出的图2中的步骤S25的流程图。
图4为根据本发明的实施例所示出的标记坏实体页面的示意图。
图5为根据本发明的实施例所示出的获得区块序列与从区块序列中移除实体区块的示意图。
附图标号说明
10:主机系统
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器
212:数据管理电路
213:存储器接口控制电路
214:错误检查与校正电路
216:缓冲存储器
217:电源管理电路
220:可复写式非易失性存储器模块
230:连接接口电路
S21、S22、S23、S24、S25、S26、S27、S28:测试数据产生方法的流程步骤
S251、S252、S253、S254:步骤S25的流程步骤
400(1)~400(8):实体页面
400~407:实体区块
A41、A51~A53:箭头
501(1)~501(2):框线
500~502:序列
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
图1为根据本发明的实施例所示出的主机系统与存储装置的方块示意图。请参照图1,主机系统10例如是个人电脑、笔记本电脑、伺服器。主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120、数据传输接口电路(Data TransferInterface Circuit)130、存储装置140。在本实施例中,处理器110耦接(也称,电性连接)至主机存储器120、数据传输接口电路130及存储装置。在另一实施例中,处理器(Processor)110、主机存储器120、数据传输接口电路130及存储装置140之间利用系统总线(SystemBus)彼此耦接。在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据管理电路(DataManagement Circuit)212与存储器接口控制电路(Memory Interface Control Circuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是U盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线耦接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230亦可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、串行高级技术附件(Serial Advanced Technology Attachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(UniversalFlash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211被多个控制指令/程序码所程序化,并且在存储装置20运作时,此些控制指令/程序码会被执行以进行数据的写入、读取与抹除等运作。此外,在本实施例中,所述控制指令/程序码还可被执行以进行测试数据产生操作,以实现本发明所提供的测试数据产生方法。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令亦可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的实体存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器210各部件所执行的操作亦可视为存储控制器210所执行的操作。
其中,数据管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个实体单元中读取数据(数据可读取自一或多个实体单元中的一或多个存储单元),并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212亦可整合至处理器211中。
存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(亦称,程序化,Programming)操作、读取操作或抹除操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体单元中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示写入测试数据的测试数据写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
此外,存储控制器210会建立逻辑转实体地址映射表(Logical To Physicaladdress mapping table)与实体转逻辑地址映射表(Physical To Logical addressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与实体单元(如,实体抹除单元/实体区块、实体页面、实体扇区)之间的地址映射关系。换言之,存储控制器210可通过逻辑转实体地址映射表来查找一逻辑单元所映射的实体单元(如,查找逻辑页面所映射的实体页面;查找逻辑地址所映射的实体地址),并且存储控制器210可通过实体转逻辑地址映射表来查找一实体单元所映射的逻辑单元(如,查找实体页面所映射的逻辑页面;查找实体地址所映射的逻辑地址)。然而,上述有关逻辑单元与实体单元映射的技术概念为本领域技术人员的惯用技术手段且非本发明所欲阐述的技术方案,不再赘述于此
在本实施例中,错误检查与校正电路214是耦接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(errorcorrecting code,ECC)和/或错误检查码(error detecting code,EDC),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。此外,在错误检查与校正程序后,若成功解码所读取的数据,错误检查与校正电路214可回传错误比特数(也可称,错误位数,Error bits value)给处理器211。若对应一笔数据的错误比特数越高,处理器211可判定用以存储所述数据的实体单元(如,实体扇区/实体页面/实体区块)的物理状态较糟。
在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是耦接至处理器211并且用以控制存储装置20的电源。
可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特(位,Bit)的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quadruple Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、三维NAND型快闪存储器模块(3DNAND flash memory module)或垂直NAND型快闪存储器模块(Vertical NAND flashmemory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元(也称为记忆胞,Memory Cell)是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220具有多个字线,其中所述多个字线的每一个字线耦接至多个存储单元。同一条字线上的多个存储单元会组成一个实体程序化单元(也称,实体页面)。此外,多个实体页面可组成一个实体区块(也称,实体抹除单元)。
在本实施例中,每次被写入至可复写式非易失性存储器模块220中的写入数据的数据大小的最小单位是簇(Cluster)。主机系统10所执行的作业系统会利用簇为最小单位来存取/管理写入至逻辑页面中的数据,并且作业系统可掌握/管理每个数据的逻辑地址与大小。一个簇的大小可小于或等于一个实体页面的大小。一个簇可具有多个扇区(Sector)。一个簇的大小可小于或等于一个逻辑页面。
为了方便说明,在以下的实施例中,一个簇的大小等于一个实体页面的大小,并且一个实体页面的大小也等于一个逻辑页面的大小。此外,假设可复写式非易失性存储器模块220的每一个实体页面的大小为1024个字节(Bytes)。但,应注意的是,本发明并不限定于每一个实体页面、逻辑页面、簇的大小。
在本实施例中,处理器211还可通过存取且执行开卡程序(所述开卡程序以软件或固件的形式被存储在可复写式非易失性存储器模块220或只读存储器中),来执行初始化操作(也可称,开卡操作)。一般来说,当存储装置首次与主机系统10建立连接时,处理器211会根据本发明所提供的存储装置初始化方法来执行所述初始化操作。以下会利用图2来描述本发明所提供的存储装置初始化方法。
图2为根据本发明的实施例所示出的测试数据产生方法的流程图。请参照图2,在步骤S21中,处理器211开始执行初始化操作,抹除可复写式非易失性存储器模块220的多个实体区块,其中所述多个实体区块皆未被映射至主机系统的多个逻辑区块,其中所述多个实体区块是所述可复写式非易失性存储器模块的多个实体页面所分组的。具体来说,在开始执行初始化操作时,首先,处理器211会下达针对可复写式非易失性存储器模块的所有实体区块的抹除指令,以施加抹除电压至所有的实体区块,从而确保所有的实体区块皆可被写入数据。
接着,在步骤S22中,处理器211写入预定数据至所述多个实体区块,以使所述多个实体区块存储满所述预定数据。具体来说,处理器211可持续写入预定数据至所有的实体区块中,直到所有的实体区块皆被所述预定数据所写满(即,不具有任何剩余的可用空间)。
接着,在步骤S23中,处理器211对所述多个实体页面执行读取操作,以获得所述多个实体页面各自的页面错误比特数。具体来说,当处理器211从一个实体页面读取存储在所述实体页面的原始数据后,处理器211可指示错误检查与校正电路214根据相应的错误检查与校正码来对所述原始数据进行解码操作,以获得已解码数据及相应的错误比特数(即,页面错误比特数)。
在另一实施例中,处理器211可不对所读取的原始数据进行解码操作,而直接比较预定数据的多个比特值与原始数据的多个比特值的差异,以获得错误比特数。例如,存储在一个实体页面的一笔原始数据的多个比特值皆相等于预定数据的多个比特值,处理器211可识别从所述实体页面所读取的所述原始数据的错误比特数(页面错误比特数)为零。
接着,在步骤S24中,处理器211根据所述多个实体页面各自的所述页面错误比特数来获得所述多个实体区块各自的区块错误比特数。具体来说,在获得每一个实体页面的错误比特数后,处理器211可将每一个实体区块中的所有的实体页面的错误比特数相加总,以将所获得的总和作为每一个实体区块的区块错误比特数(Block Error Bits value,BEB)。
接着,在步骤S25中,处理器211根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的物理状况,并且根据多个物理状况来排序所述多个实体区块,以获得区块序列,其中排序于所述区块序列中最前方的实体区块具有最差的物理状况,并且排序于所述区块序列中最后方的实体区块具有最差的物理状况。以下利用图3来说明步骤S25的细节。
图3为根据本发明的实施例所示出的图2中的步骤S25的流程图。请参照图3,在步骤S251中,处理器211将所述多个实体页面中具有大于页面错误比特数门槛值的所述页面错误比特数的一或多个目标实体页面标记为坏实体页面。具体来说,处理器211可比较每个实体页面的页面错误比特数与预设的页面错误比特数门槛值,并且将大于所述页面错误比特数门槛值的所述页面错误比特数所属的实体页面识别为坏实体页面。
接着,在步骤S252中,处理器211加总所述多个实体区块各自具有的所述坏实体页面的数目为坏实体页面总数目(Bad Physical Page Amount,BPA)。以下利用图4来详细说明步骤S251~S252的过程。
图4为根据本发明的实施例所示出的标记坏实体页面的示意图。请参照图4,举例来说,为了方便说明,假设一个实体区块400具有8个实体页面400(1)~400(8),并且处理器211已经获得对应于8个实体页面400(1)~400(8)的错误比特数,分别为“342”、“718”、“54”、“1039”、“72”、“3”、“457”、“361”。此外,假设页面错误比特数门槛值被预先设定为500。
在图4例子中,处理器211会一一比较页面错误比特数门槛值“500”与实体页面400(1)~400(8)各自的错误比特数“342”、“718”、“54”、“1039”、“72”、“3”、“457”、“361”,以识别出坏实体页面为实体页面400(2)与实体页面400(4)(如,箭头A41所示)。接着,处理器211加总实体区块400中的坏实体页面的数目,并且获得坏实体页面总数目“2”(实体区块400共具有2个坏实体页面)。
另一方面,可以注意到,根据实体页面400(1)~400(8)各自的错误比特数“342”、“718”、“54”、“1039”、“72”、“3”、“457”、“361”,处理器211可计算出实体区块400的区块错误比特数为3046(即,342+718+54+1039+72+3+457+361=3046)。
请再回到图3,接着,在步骤S253中,处理器211根据所述多个实体区块各自的所述坏实体页面总数目,由大至小,来对所述多个实体区块执行第一排序,以获得第一区块序列。具体来说,在获得多个实体区块各自的坏实体页面总数目后,处理器211可将所述坏实体页面总数目作为基准来执行第一排序,以初步地排序所述多个实体区块成为第一区块序列。简单来说,在所执行的第一排序中,处理器211先使用所述坏实体页面总数目作为基准来判断每个实体区块的物理状况(具有越大的坏实体页面总数目的实体区块的物理状况越差)。
应注意的是,在此步骤中,对于具有相同坏实体页面总数目的多个实体区块(也称,目标实体区块),处理器211并不在意这些目标实体区块彼此间的排序(处理器211会在步骤S254中,来处理所述多个目标实体区块之间的排列顺序)。
在步骤S254中,反应于多个目标实体区块各自的所述坏实体页面总数目相等,处理器211根据所述多个目标实体区块各自的所述区块错误比特数,由大至小,来对所述多个目标实体区块执行第二排序,以更新所述第一区块序列为所述区块序列。具体来说,为了进一步分辨具有相同的坏实体页面总数目的多个目标实体区块之间的物理状况,处理器211会使用所述多个目标实体区块各自的区块错误比特数来作为基准来进一步比较所述多个实体区块各自的物理状况。以下利用图5来详细说明步骤S253~S254的过程。
图5为根据本发明的实施例所示出的获得区块序列与从区块序列中移除实体区块的示意图。请参照图5,举例来说,为了方便说明,假设可复写式非易失性存储器模块具有8个实体区块400~407,并且实体区块400~407按照各自的实体位址排序为原始序列500。应注意的是,以下所描述的原始序列500、第一区块序列501、第二区块序列/区块序列502仅是概念性/抽象性地对多个实体区块进行排序所形成的序列,并非物理上/实体上对实体区块进行排序。
处理器211经由上述所说明的方式获得了8个实体区块400~407各自的坏实体页面总数目及区块错误比特数(所述坏实体页面总数目及区块错误比特数可被识别为代表所述实体区块400~407的物理状况的资讯)。如图5所示,对应实体区块400的坏实体页面总数目为“2”,区块错误比特数为“3046”;对应实体区块401的坏实体页面总数目为“5”,区块错误比特数为“2645”;对应实体区块402的坏实体页面总数目为“2”,区块错误比特数为“3752”;对应实体区块403的坏实体页面总数目为“1”,区块错误比特数为“942”;对应实体区块404的坏实体页面总数目为“3”,区块错误比特数为“3339”;对应实体区块405的坏实体页面总数目为“3”,区块错误比特数为“1834”;对应实体区块406的坏实体页面总数目为“7”,区块错误比特数为“6123”;对应实体区块407的坏实体页面总数目为“3”,区块错误比特数为“2346”。
接着,如箭头A51所示,处理器211先执行第一排序,根据每个实体区块的坏实体页面总数目的大小,由小至大,来排序实体区块400~407,并且获得了第一区块序列501。例如,经由图5中的原始序列500与第一区块序列501,可看到对应原始序列的实体区块400、401、402、403、404、405、406、407已经被排序为第一区块序列501中的实体区块400、401、402、403、404、405、406、407,其中实体区块400、401、402、403、404、405、406、407各自的坏实体页面总数目为“7”、“5”、“3”、“3”、“3”、“2”、“2”、“1”。
如同框线501(1)与框线501(2)所示,实体区块404、405、407各自的坏实体页面总数目皆相等(皆为3);实体区块400、402各自的坏实体页面总数目皆相等(皆为2)。处理器211可识别实体区块404、405、407为目标实体区块404、405、407,识别实体区块400、402为目标实体区块400、402,并且分别对所述不同群的目标实体区块来执行进一步的排序(即,第二排序)。
例如,如箭头A52所示,对于框线501(1)中的这群目标实体区块404、405、407,处理器211会利用目标实体区块404、405、407各自的区块错误比特数“3339”、“1834”、“2345”、由大至小,来对目标实体区块404、405、407执行进一步的第二排序;对于框线501(2)中的这群目标实体区块400、402,处理器211会利用目标实体区块400、402各自的区块错误比特数“3046”、“3752”、由大至小,来对目标实体区块404、405、407执行进一步的第二排序。
也就是说,基于目标实体区块404、405、407各自的区块错误比特数“3339”、“1834”、“2345”,目标实体区块404、405、407会被重新排序为目标实体区块404、407、405;基于目标实体区块400、402各自的区块错误比特数“3046”、“3752”,目标实体区块400、402会被重新排序为目标实体区块402、400。
在所述多个群的目标实体区块皆被重新排序后,所述第一区块序列501被更新为第二区块序列502,并且处理器211可将第二区块序列502作为欲获得的区块序列(即,步骤S254所描述的区块序列)。
请再回到图2,在经由第一排序与第二排序而区块序列后,接着,在步骤S26中,处理器211判断所述区块序列中的所有实体区块的总空间是否等于第一预定空间。具体来说,在刚开始执行初始化操作时,可复写式非易失性存储器模块220的所有实体区块的大小(也称,原始空间(对应原始序列))会大于存储装置20的期望空间(例如,存储装置于装置上的标签上所注记的空间大小/预定大小)。处理器211可预先设定第一预定空间的大小大于所述期望空间的大小且小于所述原始空间的大小。
反应于判定所述区块序列中的所有实体区块的总空间不等于第一预定空间,执行步骤S27(S27→否);反应于判定所述区块序列中的所有实体区块的总空间等于第一预定空间(S27→是),执行步骤S28。
在步骤S27中,处理器211从所述区块序列中移除排序于最前方的实体区块,并且更新所述区块序列,其中所述区块序列中的所有实体区块各自为第一实体区块。具体来说,若执行步骤S27,表示处理器211认为目前区块序列中的所有实体区块的总大小仍然尚未下降至第一预定空间的大小,并且可从区块序列中的所有的第一实体区块中去剔除/移除物理状况最差的实体区块。如图5的箭头A53所示,处理器211会选择排序在区块序列502最前方的实体区块来进行移除(即,从区块序列502中删除实体区块406)。
在步骤S28中,处理器211完成所述初始化操作,选择所述区块序列中的多个第一实体区块中的多个第二实体区块的总空间来作为第二预定空间,其中所述多个第二预定空间的大小为预定大小。具体来说,若执行步骤S27,表示处理器211认为目前区块序列中的所有实体区块的总大小已经下降至第一预定空间的大小,并且不需继续剔除在区块序列中的物理状况最差的实体区块。也就是说,淘汰物理状况较差的一或多个实体区块的程序已经完成了,并且,处理器211可从当前的区块序列中的多个第一实体区块(总空间等于第一预定空间)中选择总空间的大小等于第二预定空间的大小的多个第二实体区块,以使所述多个第二实体区块可被映射至主机系统10的多个逻辑区块。
应注意的是,所述第二预定空间也可被称为期望空间。所述预定大小为可被所述主机系统10所使用的预定容量。
值得一提的是,处理器211会记录在步骤S27中被移除的实体区块的实体位址于坏实体区块表中。坏实体区块表也称坏区块表(Bad Block Table)。处理器2111可识别在坏区块表中的一或多个坏实体区块将不会被使用。如此一来,也可避免在后续于坏区块表中的已经被判定为物理状况较差的一或多个坏实体区块被主机系统10或存储装置20所使用。换句话说,经由本实施例所提供的存储装置初始化方法,可确保没有被记录于坏实体区块表中的其他实体区块(最后所获得的区块序列中的多个第一实体区块)的物理状况是较佳的,以保证了之后数据可存储在物理状况较佳的所述其他实体区块而实现了较高的数据存储可靠度(所存储的数据较不容易出错)。
基于上述,本发明实施例所提供的存储控制器以及存储装置初始化方法,可在对存储装置所执行的初始化操作中,利用对所有的实体区块及实体页面执行抹除操作、写入操作与读取操作,以获得相应于每个实体页面的错误比特数,从而可根据相应于每个实体页面的错误比特数来在符合存储装置的预定大小的情况下,去除物理状况较差的一或多个实体区块,以使主机系统仅可使用到物理状况较佳的实体区块。如此一来,在完成初始化操作后,可避免主机系统使用到物理状况较差的已去除的实体区块,从而增进存储装置的存储数据的可靠度。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种存储控制器,用于控制配置有可复写式非易失性存储器模块的存储装置,其特征在于,所述存储控制器包括:
连接接口电路,用以耦接至主机系统;
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;以及
处理器,耦接至所述连接接口电路及所述存储器接口控制电路,
其中所述处理器用以开始执行初始化操作,
其中所述处理器还用以抹除所述可复写式非易失性存储器模块的多个实体区块,其中所述多个实体区块皆未被映射至所述主机系统的多个逻辑区块,其中所述多个实体区块是所述可复写式非易失性存储器模块的多个实体页面所分组的,
其中所述处理器还用以写入预定数据至所述多个实体区块,以使所述多个实体区块存储满所述预定数据,
其中所述处理器还用以对所述多个实体页面执行读取操作,以获得所述多个实体页面各自的页面错误比特数,
其中所述处理器还用以根据所述多个实体页面各自的所述页面错误比特数来获得所述多个实体区块各自的区块错误比特数,
其中所述处理器还用以根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的物理状况,并且根据多个物理状况来排序所述多个实体区块,以获得区块序列,其中排序于所述区块序列中最前方的实体区块具有最差的物理状况,并且排序于所述区块序列中最后方的实体区块具有最差的物理状况,
其中所述处理器还用以判断所述区块序列中的所有实体区块的总空间是否等于第一预定空间,
其中反应于判定所述区块序列中的所有实体区块的所述总空间不等于所述第一预定空间,所述处理器还用以从所述区块序列中移除排序于最前方的实体区块,并且更新所述区块序列,其中所述区块序列中的所有实体区块各自为第一实体区块,
其中反应于判定所述区块序列中的所有实体区块的所述总空间等于所述第一预定空间,所述处理器还用以完成所述初始化操作,选择所述区块序列中的多个第一实体区块中的多个第二实体区块的总空间来作为第二预定空间,其中所述多个第二预定空间的大小为预定大小。
2.根据权利要求1所述的存储控制器,其特征在于,在所述根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的所述物理状况,并且根据所述多个物理状况来排序所述多个实体区块,以获得所述区块序列的操作中,
所述处理器将所述多个实体页面中具有大于页面错误比特数门槛值的所述页面错误比特数的一或多个目标实体页面标记为坏实体页面,
其中所述处理器加总所述多个实体区块各自具有的所述坏实体页面的数目为坏实体页面总数目,
其中所述处理器根据所述多个实体区块各自的所述坏实体页面总数目,由大至小,来对所述多个实体区块执行第一排序,以获得第一区块序列,
其中反应于多个目标实体区块各自的所述坏实体页面总数目相等,所述处理器根据所述多个目标实体区块各自的所述区块错误比特数,由大至小,来对所述多个目标实体区块执行第二排序,以更新所述第一区块序列为所述区块序列。
3.根据权利要求1所述的存储控制器,其特征在于,其中所述多个第二实体区块用以被映射至所述主机系统的所述多个逻辑区块。
4.根据权利要求3所述的存储控制器,其特征在于,其中所述预定大小为可被所述主机系统所使用的预定容量。
5.根据权利要求1所述的存储控制器,其特征在于,其中所述处理器更记录被移除的一或多个实体区块于坏实体区块表中。
6.一种存储装置初始化方法,适用于配置有可复写式非易失性存储器模块的存储装置,其特征在于,所述方法包括:
开始执行初始化操作,抹除所述可复写式非易失性存储器模块的多个实体区块,其中所述多个实体区块皆未被映射至主机系统的多个逻辑区块,其中所述多个实体区块是所述可复写式非易失性存储器模块的多个实体页面所分组的;
写入预定数据至所述多个实体区块,以使所述多个实体区块存储满所述预定数据;
对所述多个实体页面执行读取操作,以获得所述多个实体页面各自的页面错误比特数;
根据所述多个实体页面各自的所述页面错误比特数来获得所述多个实体区块各自的区块错误比特数;
根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的物理状况,并且根据多个物理状况来排序所述多个实体区块,以获得区块序列,其中排序于所述区块序列中最前方的实体区块具有最差的物理状况,并且排序于所述区块序列中最后方的实体区块具有最差的物理状况;
判断所述区块序列中的所有实体区块的总空间是否等于第一预定空间;
反应于判定所述区块序列中的所有实体区块的所述总空间不等于所述第一预定空间,从所述区块序列中移除排序于最前方的实体区块,并且更新所述区块序列,其中所述区块序列中的所有实体区块各自为第一实体区块;以及
反应于判定所述区块序列中的所有实体区块的所述总空间等于所述第一预定空间,完成所述初始化操作,选择所述区块序列中的多个第一实体区块中的多个第二实体区块的总空间来作为第二预定空间,其中所述多个第二预定空间的大小为预定大小。
7.根据权利要求6所述的存储装置初始化方法,其特征在于,所述根据所述多个实体页面各自的所述页面错误比特数以及所述多个实体区块各自的所述区块错误比特数来识别所述多个实体区块各自的所述物理状况,并且根据所述多个物理状况来排序所述多个实体区块,以获得所述区块序列的步骤包括:
将所述多个实体页面中具有大于页面错误比特数门槛值的所述页面错误比特数的一或多个目标实体页面标记为坏实体页面;
加总所述多个实体区块各自具有的所述坏实体页面的数目为坏实体页面总数目;
根据所述多个实体区块各自的所述坏实体页面总数目,由大至小,来对所述多个实体区块执行第一排序,以获得第一区块序列;以及
反应于多个目标实体区块各自的所述坏实体页面总数目相等,根据所述多个目标实体区块各自的所述区块错误比特数,由大至小,来对所述多个目标实体区块执行第二排序,以更新所述第一区块序列为所述区块序列。
8.根据权利要求6所述的存储装置初始化方法,其特征在于,其中所述多个第二实体区块用以被映射至所述主机系统的所述多个逻辑区块。
9.根据权利要求8所述的存储装置初始化方法,其特征在于,其中所述预定大小为可被所述主机系统所使用的预定容量。
10.根据权利要求6所述的存储装置初始化方法,其特征在于,所述方法还包括:
记录被移除的一或多个实体区块于坏实体区块表中。
CN201911106496.XA 2019-11-13 2019-11-13 存储控制器以及存储装置初始化方法 Active CN112802512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911106496.XA CN112802512B (zh) 2019-11-13 2019-11-13 存储控制器以及存储装置初始化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911106496.XA CN112802512B (zh) 2019-11-13 2019-11-13 存储控制器以及存储装置初始化方法

Publications (2)

Publication Number Publication Date
CN112802512A CN112802512A (zh) 2021-05-14
CN112802512B true CN112802512B (zh) 2024-04-16

Family

ID=75803167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911106496.XA Active CN112802512B (zh) 2019-11-13 2019-11-13 存储控制器以及存储装置初始化方法

Country Status (1)

Country Link
CN (1) CN112802512B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385921A (zh) * 2010-09-06 2012-03-21 复格企业股份有限公司 用于一非易失性存储器阵列的标记方法及初始化方法
CN103489481A (zh) * 2012-06-07 2014-01-01 擎泰科技股份有限公司 非易失性内存系统的初始化方法
CN107045890A (zh) * 2016-02-05 2017-08-15 群联电子股份有限公司 数据保护方法、存储器控制电路单元及存储器存储装置
CN107665091A (zh) * 2016-07-28 2018-02-06 大心电子股份有限公司 数据读取方法、数据写入方法及其存储控制器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037788B2 (en) * 2016-08-02 2018-07-31 SK Hynix Inc. Semiconductor devices and semiconductor systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102385921A (zh) * 2010-09-06 2012-03-21 复格企业股份有限公司 用于一非易失性存储器阵列的标记方法及初始化方法
CN103489481A (zh) * 2012-06-07 2014-01-01 擎泰科技股份有限公司 非易失性内存系统的初始化方法
CN107045890A (zh) * 2016-02-05 2017-08-15 群联电子股份有限公司 数据保护方法、存储器控制电路单元及存储器存储装置
CN107665091A (zh) * 2016-07-28 2018-02-06 大心电子股份有限公司 数据读取方法、数据写入方法及其存储控制器

Also Published As

Publication number Publication date
CN112802512A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
US20190012228A1 (en) Data reading method and storage controller
US10635358B2 (en) Memory management method and storage controller
US10579518B2 (en) Memory management method and storage controller
US20140019670A1 (en) Data writing method, memory controller, and memory storage device
TWI650757B (zh) 解碼方法以及儲存控制器
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
US10424383B1 (en) Decoding method and storage controller
US10748599B1 (en) Data reading method, storage controller and storage device background of the disclosure
US20170242597A1 (en) Wear leveling method, memory control circuit unit and memory storage device
CN106951186B (zh) 数据程序化方法、存储器存储装置及存储器控制电路单元
TW201947402A (zh) 記憶體管理方法以及儲存控制器
CN111258505B (zh) 快闪存储器的数据合并方法、控制电路单元与存储装置
CN111078146B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
US10509583B1 (en) Memory management method and storage controller
CN110515858B (zh) 存储器管理方法以及存储控制器
CN110471612B (zh) 存储器管理方法以及存储控制器
CN109273033B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN110825653B (zh) 存储器管理方法以及存储控制器
CN109032957B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN108108118B (zh) 数据写入方法以及存储控制器
CN106469019B (zh) 存储器管理方法、存储器控制电路单元及存储器储存装置
CN107132989B (zh) 数据程序化方法、存储器控制电路单元及存储器存储装置
CN112802512B (zh) 存储控制器以及存储装置初始化方法
CN111831210B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN110364207B (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