CN108572786A - 避免读取扰动的数据搬移方法以及使用该方法的装置 - Google Patents

避免读取扰动的数据搬移方法以及使用该方法的装置 Download PDF

Info

Publication number
CN108572786A
CN108572786A CN201710137038.7A CN201710137038A CN108572786A CN 108572786 A CN108572786 A CN 108572786A CN 201710137038 A CN201710137038 A CN 201710137038A CN 108572786 A CN108572786 A CN 108572786A
Authority
CN
China
Prior art keywords
mentioned
data
physical page
block
abnormal entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710137038.7A
Other languages
English (en)
Other versions
CN108572786B (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.)
SHANGHAI FEIEN MICROELECTRONIC CO Ltd
Original Assignee
SHANGHAI FEIEN MICROELECTRONIC 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 SHANGHAI FEIEN MICROELECTRONIC CO Ltd filed Critical SHANGHAI FEIEN MICROELECTRONIC CO Ltd
Priority to CN201710137038.7A priority Critical patent/CN108572786B/zh
Priority to TW106113733A priority patent/TWI648628B/zh
Priority to US15/807,820 priority patent/US10254994B2/en
Publication of CN108572786A publication Critical patent/CN108572786A/zh
Application granted granted Critical
Publication of CN108572786B publication Critical patent/CN108572786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明的实施例提出一种避免读取扰动的数据搬移方法,由处理单元执行,包含以下步骤:从多个实体块中找寻一个异常实体块;对异常实体块中第i个实体页面进行读取测试;判断异常实体块中第i个实体页面的数据是否通过读取测试;以及当异常实体块中第i个实体页面没通过读取测试时,驱动存取接口将异常实体块中第i个实体页面及至少一个相邻实体页面的数据搬迁至有效实体块。

Description

避免读取扰动的数据搬移方法以及使用该方法的装置
技术领域
本发明关连于一种快闪存储器装置,特别是一种避免读取扰动的数据搬移方法以及使用该方法的装置。
背景技术
快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,可于地址脚位上提供任何主装置(host)请求的地址,用以存取NOR快闪装置,并及时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,而是需要一次性写入一系列字节(bytes)的值到NAND快闪装置,或从NAND快闪装置一次性读取一系列字节的值。主装置提供请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,借由使用提取信号(strobe signal)顺序地敲出(clockout)内容,让主装置可逐字节或逐字(words)存取数据。
读取NAND快闪存储器久了,可能导致邻近的实体页面(或字线)改变状态(变成写入)。如果持续从一个实体页面读取数据,此实体页面并不会失效,然而,周遭的实体页面却会受影响,于之后的读取中发生错误。于两次抹除作业之间,允许的读取次数为上千次。这也就是本领域技术人员了解的读取扰动(read disturbance)。
发明内容
本发明提出一种数据搬移方法以及使用该方法的装置,用以避免读取扰动。
本发明的实施例提出一种避免读取扰动的数据搬移方法,由处理单元执行,包含以下步骤:从多个实体块中找寻一个异常实体块;对异常实体块中第i个实体页面进行读取测试,i为大于等于0的整数;判断异常实体块中第i个实体页面的数据是否通过读取测试;以及当异常实体块中第i个实体页面没通过读取测试时,驱动存取接口将异常实体块中第i个实体页面及至少一个相邻实体页面的数据搬迁至有效实体块。
本发明的实施例提出一种避免读取扰动的数据搬移装置,包含存取接口及处理单元。存取接口耦接于储存单元,且储存单元储存多个实体块。处理单元耦接于存取接口,从实体块中找寻异常实体块;对异常实体块中第i个实体页面进行读取测试;判断异常实体块中第i个实体页面的数据是否通过读取测试;以及当异常实体块中第i个实体页面没通过读取测试时,驱动存取接口将异常实体块中第i个实体页面及至少一相邻实体页面的数据搬迁至有效实体块。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是依据本发明实施例的快闪存储器的系统架构示意图。
图2是依据本发明实施例的存取接口与储存单元的方块图。
图3是依据本发明实施例的一个存取子接口与多个储存子单元的连接示意图。
图4及图5是依据本发明实施例的读取计数表及实体块的对应示意图。
图6是依据本发明实施例的避免读取扰动的数据搬移方法。
图中元件标号说明如下:
10 系统;
110 处理单元;
120 易失性存储器;
130 错误检查修正单元;
150 存取接口;
160 主装置;
170 存取接口;
170_0~170_j 存取子接口;
180 储存单元;
180_0_0~180_j_i 储存子单元;
320_0_0~320_0_i 芯片致能控制信号;
BL0 第0个实体块;
WL0、WL1、WL2、…、WL(i-2)、WL(i-1)、WL(i)、WL(i+1)、WL(i+2)、…、WL253、WL254、WL255 字线;
400、510、530 读取计数数据表;
400_0、400_511、510_0、510_511、530_0、530_511 储存格;
t0、t1、t2 时间点;
S611~S653 方法步骤。
具体实施方式
以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
于权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
本发明实施例提出一种避免读取扰动的数据搬移方法及使用此方法的装置。本发明的精神在于处理单元从多个实体块中找寻一个异常实体块;对异常实体块中第i个实体页面进行读取测试;判断异常实体块中第i个实体页面的数据是否通过读取测试;以及当异常实体块中第i个实体页面没通过读取测试时,驱动存取接口将异常实体块中第i个实体页面及至少一个相邻实体页面的数据搬迁至有效实体块。
图1是依据本发明实施例的快闪存储器的系统架构示意图。快闪存储器装置的系统架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110通过存取接口170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。处理单元110可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具平行处理能力的多处理器或其他具运算能力的处理器),并且从先进先出(FIFO,First-In-First-Output)缓存器提取指令及依据指令驱动存取接口170。处理单元110可包含运算逻辑单元(ALU,Arithmetic and Logic Unit)以及位移器(bit shifter)。运算逻辑单元负责执行布林运算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器负责位移运算及位(bit)旋转。系统架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(data line)、时脉信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(write enable,WE)等控制信号。存取接口170可采用双倍数据率(double datarate,DDR)通讯协定与储存单元180沟通,例如,开放NAND快闪(open NAND flashinterface,ONFI)、双倍数据率开关(DDR toggle)或其他接口。处理单元110另可使用存取接口150通过指定通讯协定与主装置160进行沟通,例如,通用串行总线(universal serialbus,USB)、先进技术附件(advanced technology attachment,ATA)、串行先进技术附件(serial advanced technology attachment,SATA)、快速周边元件互联(peripheralcomponent interconnect express,PCI-E)或其他接口。
储存单元180可包含多个储存子单元,每一个储存子单元实施于一个管芯(die)上,各自使用关联的存取子接口与处理单元110进行沟通。图2是依据本发明实施例的存取接口与储存单元的方块图。快闪存储器10可包含j+1个存取子接口170_0至170_j,存取子接口又可称为通道(channel),每一个存取子接口连接i+1个储存子单元。换句话说,i+1个储存子单元共享一个存取子接口。例如,当快闪存储器10包含4个通道(j=3)且每一个通道连接4个储存单元(i=3)时,快闪存储器10一共拥有16个储存单元180_0_0至180_j_i。处理单元110可驱动存取子接口170_0至170_j中的一者,从指定的储存子单元读取数据。每个储存子单元拥有独立的芯片致能(CE)控制信号。换句话说,当欲对指定的储存子单元进行数据读取时,需要驱动关联的存取子接口致能此储存子单元的芯片致能控制信号。图3是依据本发明实施例的一个存取子接口与多个储存子单元的连接示意图。处理单元110可通过存取子接口170_0使用独立的芯片致能控制信号320_0_0至320_0_i来从连接的储存子单元180_0_0至180_0_i中选择出其中一者,接着,通过共享的数据线310_0从选择出的储存子单元的指定位置读取数据。
图4及图5是依据本发明实施例的读取计数表及实体块的对应示意图。储存单元 180的存储单元(memory cells)可划分成m个实体块(physical blocks),每个实体块包含n 个实体页面(physical pages),以及每个实体页面的数据储存于p个字线(wordline)。例 如,储存单元180可包含512个实体块,每个实体块可包含256个实体页面,以及每个实体页 面的数据可储存于1个字线。储存子单元180_0_0包含第0个实体块BL0,第0个实体块BL0包 含256个字线WL0至WL255,而每个字线储存一个实体页面的数据。快闪存储器装置的系统架 构10中包含易失性存储器120,用以储存执行过程中需要的数据,例如,变量、数据表(data tables)、数据结构等。
于一些实施例中,参考图4,易失性存储器120储存读取计数数据表(read-counttable)400,读取计数数据表400包含m个储存格,每个储存格记录一个实体块从上次抹除作业后的读取次数。例如,读取计数数据表400包含512个储存格400_0至400_511,而其中的第0个储存格400_0记录实体块BL0从上次抹除作业后的读取次数。当一个实体块被抹除后,相应储存格的值更新为0。于系统开机成功后,处理单元110通过存取接口170从储存单元180读出读取计数数据表(read-count table)400并储存至易失性存储器120。每次从储存单元180读取数据后,更新易失性存储器120的计数数据表400。于系统关机前,处理单元110将易失性存储器120的读取计数数据表400通过存取接口170写入至储存单元180。
于另一些实施例中,参考图5,易失性存储器120可更储存读取计数数据表510及530。读取计数数据表510包含m个储存格,每个储存格记录一个实体块于一段时间t0至t1的读取次数,另读取计数数据表530包含m个储存格,每个储存格记录一个实体块于一段时间t1至t2的读取次数。读取计数数据表510包含512个储存格510_0至510_511,而其中的第0个储存格510_0记录实体块BL0于一段时间t0至t1的读取次数,而读取计数数据表530包含512个储存格530_0至530_511,而其中的第0个储存格530_0记录实体块BL0于一段时间t1至t2的读取次数。于此须注意的是,由于易失性存储器120为重要资源且空间有限,读取计数数据表400、510及530以实体块为基本单位储存读取次数,而不是以实体页面为基本单元。虽然图4及图5的实施例描述一个实体页面储存于一个储存子单元,但是,本领域技术人员亦可将一个实体页面分散储存于多个储存子单元,本发明并不受限于此。
图6是依据本发明实施例的避免读取扰动的数据搬移方法,由处理单元110载入及执行相关程序码时实施。此方法周期性地执行,例如,每隔10、20或30分钟。于每一回合中,尝试找寻异常实体块(singular blocks)(步骤S611),并且判断是否存在异常实体块(步骤S613)。当存在异常实体块时(步骤S613中“是”的路径),检查异常实体块中的实体页面是否发生读取扰动,以及将发生读取扰动的相关实体页面的数据搬移至有效实体块的空实体页面(步骤S631至S653)。当不存在异常实体块时(步骤S613中“否”的路径),计数一段预设时间(步骤S617)。于到达预设时间时,进行下一回合的处理。于步骤S611的一些实施例,参考图4,处理单元110可判断读取计数数据表400中的每一储存格的值(或称为读取次数)是否超过阀值(threshold),例如76800、51200、25600或其他出厂时的预设数值。当发现至少一个储存格的值超过阀值时,处理单元110判定相应于这些储存格的实体块为异常。例如,储存格400_0的值超过阀值时,处理单元110判定实体块BL0为异常。于步骤S611的另一些实施例,参考图5,处理单元110将读取计数数据表530中第k个储存格的值(或称为第二读取次数)减去读取计数数据表510中第k个储存格的值(或称为第一读取次数),并且将计算后的值(或称为第三读取次数)写入暂存数据表中第k个储存格,其中,k为0至m-1。接着,处理单元110依据暂存数据表中的值判断是否可能存在读取扰动的现象。于一些实施方式,可判断暂存数据表中是否存在一个值超过预设阀值。于另一些实施方式,可判断暂存数据表中是否存在一个值远超过所有值的平均值,例如,某一储存格的值数倍(如,五倍、十倍等)以上于所有储存格的值的平均值。当暂存数据表中第0储存格的值超过预设阀值或数倍以上于所有储存格的值的平均值时,处理单元110判定实体块BL0为异常。
当选择一个异常实体块后(步骤S631),以变量i来控制此异常实体块的实体页面读取测试,i为大于等于0的整数。异常实体块的实体页面读取测试,详细说明如下。变量i初始为0(步骤S633),对此异常实体块中第0个实体页面进行读取测试(步骤S635),接着判断是否通过读取测试(步骤S637)。于步骤S635及S637,详细来说,处理单元110驱动存取接口170读取此异常实体块中第0个实体页面的数据并传送至错误检查修正(ECC,Error Check-and-Correction)单元130,以及从错误检查修正单元130取得结果,用以指出此异常实体块中第0个实体页面的数据是否通过错误检查修正。错误检查修正单元130可输出讯息,指出此异常实体块中第0个实体页面的数据的错误情形。例如,此讯息可指出此异常实体块中第0个实体页面的数据的错误程度或错误位数。当此异常实体块中第0个实体页面的数据的错误程度到达预设程度或更糟时,或者,当此异常实体块中第0个实体页面的数据的错误位数超过预设阀值时,处理单元110判定此异常实体块中第0个实体页面的数据不通过读取测试。当通过读取测试(步骤S637中“是”的路径),将变量i加1(步骤S639),并对此异常实体块中第1个(亦即是下一个)实体页面的数据进行读取测试(步骤S635及S637)。当不通过读取测试(步骤S637中“否”的路径),将此异常实体块中第0至j个实体页面搬迁至有效实体块(available physical-block)(步骤S651),接着将变量i设为i+j+1,其中j可为1或2的常数(步骤S653)。于步骤S653,详细来说,当j设为1时,处理单元110驱动存取接口170将此异常实体块中第0至1个实体页面搬迁至有效实体块。当j设为2时,处理单元110驱动存取接口170将此异常实体块中第0至2个实体页面搬迁至有效实体块。可了解的是,当此异常实体块中第0个实体页面不通过读取测试时,处理单元110判定此异常实体块中第1个实体页面有很高的机会因过多的连续读取而造成第0及2个实体页面发生读取扰动。若第1个实体页面真发生过多的连续读取且j设为2时,可一次性地将发生读取扰动的第0及2个实体页面搬迁至有效实体块。若第1个实体页面并没有发生过多的连续读取且j设为1时,可避免不必要地将第2个实体页面搬迁至有效实体块。
当变量i大于0时,对此异常实体块中第i个实体页面进行读取测试(步骤S635),接着判断是否通过读取测试(步骤S637)。当通过读取测试(步骤S637中“是”的路径),将变量i加1(步骤S639),并对此异常实体块中下一个(i+1)实体页面的数据进行读取测试(步骤S635及S637)。步骤S635及S637的技术细节可参考如上段落的说明,不再赘述以求简洁。当不通过读取测试(步骤S637中“否”的路径),将此异常实体块中第i-j至i+j个实体页面搬迁至有效实体块(步骤S651),接着将变量i设为i+j+1,其中j为1或2的常数(步骤S653)。于步骤S653,详细来说,当j设为1时,处理单元110驱动存取接口170将此异常实体块中第i-1至i+1个实体页面搬迁至有效实体块。当j设为2时,处理单元110驱动存取接口170将将此异常实体块中第i-2至i+2个实体页面搬迁至有效实体块。于此须注意的是,于步骤S651,由于每个实体块都有边界实体页面,当i-j小于0时,将此异常实体块中第0至i+j个实体页面搬迁至有效实体块;当i+j大于或等于n时,将此异常实体块中第i-j至n-1个实体页面搬迁至有效实体块。
于每回合的实体页面读取测试中,于变量i更新后(步骤S639或S653),判断变量i是否大于或等于每个实体块的实体页面总数n(步骤S615)。当变量i小于n时(步骤S615中“否”的路径),对此异常实体块中下一个(i+1个或i+j+1个)实体页面的数据进行读取测试(步骤S635及S637)。当变量i大于或等于n时(步骤S615中“是”的路径),接着判断是否还有其他异常实体块未处理(步骤S617)。如果存在其他异常实体块未处理(步骤S617中“是”的路径),选择下一个异常实体块进行后续处理(步骤S631)。如果没有其他异常实体块未处理(步骤S617中“否”的路径),计数上述预设时间(步骤S619)。
虽然图1至图3中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图6的处理步骤采用特定的顺序来执行,但是在不违反发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

Claims (20)

1.一种避免读取扰动的数据搬移方法,由一处理单元执行,包含:
从多个实体块中找寻一异常实体块;
对上述异常实体块中第i个实体页面进行读取测试,i为大于等于0的整数;
判断上述异常实体块中第i个实体页面的数据是否通过读取测试;以及
当上述异常实体块中第i个实体页面没通过读取测试时,将上述异常实体块中上述第i个实体页面及至少一相邻实体页面的数据搬迁至一有效实体块。
2.如权利要求1所述的避免读取扰动的数据搬移方法,其特征在于,上述第i个实体页面的数据储存于一第一字线及上述相邻实体页面的数据储存于一第二字线,以及上述第一字线相邻于上述第二字线。
3.如权利要求1所述的避免读取扰动的数据搬移方法,其特征在于,上述第i个实体页面及至少一相邻实体页面包含第i-1个实体页面至第i+1个实体页面。
4.如权利要求1所述的避免读取扰动的数据搬移方法,其特征在于,上述第i个实体页面及至少一相邻实体页面包含第i-1个实体页面至第i+1个实体页面。
5.如权利要求1所述的避免读取扰动的数据搬移方法,其特征在于,于对上述异常实体块中第i个实体页面进行读取测试的步骤中,更包含:
驱动一存取接口,用以从上述异常实体块中上述第i个实体页面读取数据并传送到一错误检查修正单元;
于判断上述异常实体块中第i个实体页面的数据是否通过读取测试的步骤中,更包含:
从上述错误检查修正单元取得一结果;以及
依据上述结果判断上述异常实体块中上述第i个实体页面的数据是否通过错误检查修正。
6.如权利要求5所述的避免读取扰动的数据搬移方法,其特征在于,上述结果指出上述异常实体块中上述第i个实体页面的数据的错误情形。
7.如权利要求6所述的避免读取扰动的数据搬移方法,其特征在于,上述结果指出上述异常实体块中第i个实体页面的数据的一错误程度,以及于依据上述结果判断上述异常实体块中上述第i个实体页面的数据是否通过错误检查修正的步骤中,更包含:
判断上述异常实体块中上述第i个实体页面的数据的上述错误程度是否到达预设程度或更糟;以及
当上述异常实体块中上述第i个实体页面的数据的上述错误程度到达预设程度或更糟时,判定上述异常实体块中上述第i个实体页面的数据不通过错误检查修正。
8.如权利要求6所述的避免读取扰动的数据搬移方法,其特征在于,上述结果指出上述异常实体块中第i个实体页面的数据的一错误位数,以及于依据上述结果判断上述异常实体块中上述第i个实体页面的数据是否通过错误检查修正的步骤中,更包含:
判断上述异常实体块中上述第i个实体页面的数据的上述错误位数是否超过一预设阀值;以及
当上述异常实体块中上述第i个实体页面的数据的上述错误位数超过上述预设阀值时,判定上述异常实体块中上述第i个实体页面的数据不通过错误检查修正。
9.如权利要求1所述的避免读取扰动的数据搬移方法,其特征在于,于上述从多个实体块中找寻一异常实体块的步骤中,更包含:
从一读取计数数据表取得相应于上述实体块的多个读取次数,其中,上述读取计数数据表中相应于上述异常实体块的上述读取次数超过一阀值。
10.如权利要求9所述的避免读取扰动的数据搬移方法,其特征在于,上述读取计数数据表储存每一上述实体块从上次抹除作业后的读取次数。
11.一种避免读取扰动的数据搬移装置,包含:
一存取接口,耦接于一储存单元,其中上述储存单元储存多个实体块;以及
一处理单元,耦接于上述存取接口,从上述实体块中找寻一异常实体块;对上述异常实体块中第i个实体页面进行读取测试;判断上述异常实体块中第i个实体页面的数据是否通过读取测试;以及当上述异常实体块中第i个实体页面没通过读取测试时,驱动上述存取接口将上述异常实体块中上述第i个实体页面及至少一相邻实体页面的数据搬迁至一有效实体块。
12.如权利要求11所述的避免读取扰动的数据搬移装置,其特征在于,上述第i个实体页面的数据储存于一第一字线及上述相邻实体页面的数据储存于一第二字线,以及上述第一字线相邻于上述第二字线。
13.如权利要求11所述的避免读取扰动的数据搬移装置,其特征在于,上述第i个实体页面及至少一相邻实体页面包含第i-1个实体页面至第i+1个实体页面。
14.如权利要求11所述的避免读取扰动的数据搬移装置,其特征在于,上述第i个实体页面及至少一相邻实体页面包含第i-1个实体页面至第i+1个实体页面。
15.如权利要求11所述的避免读取扰动的数据搬移装置,更包含:
一错误检查修正单元;
其中,上述处理单元驱动上述存取接口,用以从上述异常实体块中上述第i个实体页面读取数据并传送到上述错误检查修正单元;从上述错误检查修正单元取得一结果;以及依据上述结果判断上述异常实体块中上述第i个实体页面的数据是否通过错误检查修正。
16.如权利要求15所述的避免读取扰动的数据搬移装置,其特征在于,上述结果指出上述异常实体块中上述第i个实体页面的数据的错误情形。
17.如权利要求16所述的避免读取扰动的数据搬移装置,其特征在于,上述结果指出上述异常实体块中第i个实体页面的数据的一错误程度,以及上述处理单元判断上述异常实体块中上述第i个实体页面的数据的上述上述错误程度是否到达预设程度或更糟;以及当上述异常实体块中上述第i个实体页面的数据的上述到达预设程度或更糟时,判定上述异常实体块中上述第i个实体页面的数据不通过错误检查修正。
18.如权利要求16所述的避免读取扰动的数据搬移装置,其特征在于,上述结果指出上述异常实体块中第i个实体页面的数据的一错误位数,以及上述处理单元判断上述异常实体块中上述第i个实体页面的数据的上述错误位数是否超过一预设阀值;以及当上述异常实体块中上述第i个实体页面的数据的上述错误位数超过上述预设阀值时,判定上述异常实体块中上述第i个实体页面的数据不通过错误检查修正。
19.如权利要求11所述的避免读取扰动的数据搬移装置,更包含:
一易失性存储器,储存一读取计数数据表;
其中,上述处理单元从上述读取计数数据表取得相应于上述实体块的多个读取次数,以及上述读取计数数据表中相应于上述异常实体块的上述读取次数超过一阀值。
20.如权利要求19所述的避免读取扰动的数据搬移装置,其特征在于,上述读取计数数据表储存每一上述实体块从上次抹除作业后的读取次数。
CN201710137038.7A 2017-03-09 2017-03-09 避免读取扰动的数据搬移方法以及使用该方法的装置 Active CN108572786B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710137038.7A CN108572786B (zh) 2017-03-09 2017-03-09 避免读取扰动的数据搬移方法以及使用该方法的装置
TW106113733A TWI648628B (zh) 2017-03-09 2017-04-25 避免讀取擾動的資料搬移方法以及使用該方法的裝置
US15/807,820 US10254994B2 (en) 2017-03-09 2017-11-09 Methods for migrating data to avoid read disturbance and apparatuses using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710137038.7A CN108572786B (zh) 2017-03-09 2017-03-09 避免读取扰动的数据搬移方法以及使用该方法的装置

Publications (2)

Publication Number Publication Date
CN108572786A true CN108572786A (zh) 2018-09-25
CN108572786B CN108572786B (zh) 2021-06-29

Family

ID=63444773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710137038.7A Active CN108572786B (zh) 2017-03-09 2017-03-09 避免读取扰动的数据搬移方法以及使用该方法的装置

Country Status (3)

Country Link
US (1) US10254994B2 (zh)
CN (1) CN108572786B (zh)
TW (1) TWI648628B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108572920B (zh) * 2017-03-09 2022-04-12 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置
CN108572786B (zh) 2017-03-09 2021-06-29 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101536109A (zh) * 2005-10-13 2009-09-16 特拉维夫大学拉莫特有限公司 Mbc闪存中的错误校正的方法
CN101739344A (zh) * 2008-11-17 2010-06-16 超捷公司 控制非易失性存储装置中损耗的存储器控制器及操作方法
US20120195117A1 (en) * 2011-01-27 2012-08-02 Hynix Semiconductor Inc. Semiconductor system and data programming method
CN103345518A (zh) * 2013-07-11 2013-10-09 清华大学 基于数据块的自适应数据存储管理方法及系统
CN103699344A (zh) * 2013-11-05 2014-04-02 威盛电子股份有限公司 非易失性存储器装置及其操作方法
US8930778B2 (en) * 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
CN104425020A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN104424127A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US20160132240A1 (en) * 2012-12-21 2016-05-12 Stuart Allen Berke Systems and methods for support of non-volatile memory on a ddr memory channel
US20160283327A1 (en) * 2009-08-11 2016-09-29 International Business Machines Corporation Memory system with robust backup and restart features and removable modules
CN106155914A (zh) * 2015-03-04 2016-11-23 慧荣科技股份有限公司 实体储存对照表维护方法以及使用该方法的装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190810B2 (en) 2008-04-18 2012-05-29 Silicon Motion, Inc. Non-volatile memory apparatus and method for accessing a non-volatile memory apparatus
US20120155167A1 (en) * 2010-12-21 2012-06-21 Kabushiki Kaisha Toshiba Non-volatile storage device, information processing system and write control method of non-volatile storage device
US20130184999A1 (en) 2012-01-05 2013-07-18 Yan Ding Systems and methods for cancer-specific drug targets and biomarkers discovery
JP5522283B1 (ja) 2013-02-27 2014-06-18 日本電気株式会社 リストベクトル処理装置、リストベクトル処理方法、プログラム、コンパイラ、及び、情報処理装置
CN104934066B (zh) 2014-03-19 2018-03-27 安华高科技通用Ip(新加坡)公司 Nand闪存中的读取干扰处理
US9361182B2 (en) 2014-05-20 2016-06-07 Transcend Information, Inc. Method for read disturbance management in non-volatile memory devices
US9612957B2 (en) 2014-07-30 2017-04-04 Qualcomm Innovation Center, Inc. Read disturb and data retention handling for NAND devices
US9678827B2 (en) 2014-10-07 2017-06-13 SK Hynix Inc. Access counts for performing data inspection operations in data storage device
US9710317B2 (en) * 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
TWI551991B (zh) * 2015-11-20 2016-10-01 群聯電子股份有限公司 記憶體管理方法與系統及其記憶體儲存裝置
KR20180059208A (ko) 2016-11-25 2018-06-04 삼성전자주식회사 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법
CN108572786B (zh) 2017-03-09 2021-06-29 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101536109A (zh) * 2005-10-13 2009-09-16 特拉维夫大学拉莫特有限公司 Mbc闪存中的错误校正的方法
CN101739344A (zh) * 2008-11-17 2010-06-16 超捷公司 控制非易失性存储装置中损耗的存储器控制器及操作方法
US20160283327A1 (en) * 2009-08-11 2016-09-29 International Business Machines Corporation Memory system with robust backup and restart features and removable modules
US20120195117A1 (en) * 2011-01-27 2012-08-02 Hynix Semiconductor Inc. Semiconductor system and data programming method
US8930778B2 (en) * 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
US20160132240A1 (en) * 2012-12-21 2016-05-12 Stuart Allen Berke Systems and methods for support of non-volatile memory on a ddr memory channel
CN103345518A (zh) * 2013-07-11 2013-10-09 清华大学 基于数据块的自适应数据存储管理方法及系统
CN104425020A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN104424127A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN103699344A (zh) * 2013-11-05 2014-04-02 威盛电子股份有限公司 非易失性存储器装置及其操作方法
CN106155914A (zh) * 2015-03-04 2016-11-23 慧荣科技股份有限公司 实体储存对照表维护方法以及使用该方法的装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AHMED BELAL等: "Error correction capabilities in block ciphers", 《2012 2ND INTERNATIONAL CONFERENCE ON ADVANCES IN COMPUTATIONAL TOOLS FOR ENGINEERING APPLICATIONS (ACTEA)》 *
蒋海波: "海量数据存储系统的高可靠性关键技术研究与应用", 《中国博士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
TW201833779A (zh) 2018-09-16
US10254994B2 (en) 2019-04-09
CN108572786B (zh) 2021-06-29
US20180260156A1 (en) 2018-09-13
TWI648628B (zh) 2019-01-21

Similar Documents

Publication Publication Date Title
CN108133732B (zh) 闪存芯片的性能测试方法、装置、设备及存储介质
US10291263B2 (en) Auto-learning log likelihood ratio
KR102174293B1 (ko) 확률론적 데이터 구조에 기초한 메모리 내의 사전적인 교정 조치
DE102011086098B4 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
US9846643B2 (en) Methods for maintaining a storage mapping table and apparatuses using the same
CN105893275B (zh) 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置
CN104346292B (zh) 用来管理一记忆装置的方法、记忆装置与控制器
CN105528299B (zh) 读取命令排程方法以及使用该方法的装置
US9881682B1 (en) Fine grained data retention monitoring in solid state drives
CN110335635A (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN104346288B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN108415853A (zh) 一种垃圾回收的方法、装置及存储设备
US20160328183A1 (en) Methods for accessing data in a circular block mode and apparatuses using the same
JP2016509731A (ja) メモリ・デバイスの内容を保護するための方法およびメモリ・デバイス
CN105869677A (zh) 用于内部执行读取-验证操作的存储器装置及其操作方法和存储器系统
US9747206B2 (en) Methods for reprogramming data and apparatuses using the same
CN108572786A (zh) 避免读取扰动的数据搬移方法以及使用该方法的装置
US9852068B2 (en) Method and apparatus for flash memory storage mapping table maintenance via DRAM transfer
CN106683698A (zh) 存储器件及其操作方法
CN109804356B (zh) 自动学习对数似然比
CN108572920A (zh) 避免读取扰动的数据搬移方法以及使用该方法的装置
DE102015102774A1 (de) Verfahren und vorrichtung zur verarbeitung eines löschzählers
US10474582B2 (en) NAND flash storage device and methods using non-NAND storage cache
JP2023033158A (ja) データをリフレッシュするデータ記憶装置およびその動作方法
CN116486882B (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