CN111768808B - 半导体存储装置 - Google Patents
半导体存储装置 Download PDFInfo
- Publication number
- CN111768808B CN111768808B CN201911357506.7A CN201911357506A CN111768808B CN 111768808 B CN111768808 B CN 111768808B CN 201911357506 A CN201911357506 A CN 201911357506A CN 111768808 B CN111768808 B CN 111768808B
- Authority
- CN
- China
- Prior art keywords
- block
- address information
- information
- state
- physical address
- 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
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/20—Initialising; Data preset; Chip identification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/54—Arrangements for designing test circuits, e.g. design for test [DFT] tools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- 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
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本发明提供一种半导体存储装置,能够实现区块间的编程/消除周期数的平滑化。本发明的快闪存储器包括:与非型的存储单元阵列;地址转换表,定义逻辑地址信息与物理地址信息的关系;无效区块表,管理用以识别应消除区块的物理地址信息;空闲区块表,管理用以识别已消除的可使用区块的物理地址信息;消除部件,用以消除区块;以及控制器。在从外部接收到消除命令及逻辑地址信息时,控制器消除从无效区块表中所选择的物理地址信息区块,并以使从空闲区块表中所选择的物理地址信息与来自外部的逻辑地址信息对应的方式改写地址转换表。
Description
技术领域
本发明涉及一种半导体存储装置,且特别涉及一种用以使与非(NAND)型快闪存储器的区块间的编程/消除次数平滑化的耗损平均技术(wear leveling)。
背景技术
通常,与非型快闪存储器是在封装体内包含存储芯片(memory chip)与用于控制所述存储芯片的存储控制器(memory controller)来构成。使存储控制器负担存储芯片的错误修正或坏块(bad block)的管理等固定的负荷,由此可减轻主机侧的计算机的负荷。
例如,专利文献1的快闪存储器系统如图1所示,包括快闪存储器10与主机设备(host device)40,快闪存储器10包含存储控制器20与存储芯片30。存储控制器20包括:与主机设备40之间进行数据的转送的主机接口22,与存储芯片30之间进行数据的转送的存储器接口24,控制数据转送或存储芯片的动作的微处理器(MPU),存储程序或数据的只读存储器(ROM)、随机存取存储器(RAM)等。存储芯片30例如为与非型快闪存储器的芯片。
[现有技术文献]
[专利文献]
[专利文献1]日本专利特开2009-175877号公报
发明内容
[发明所要解决的问题]
在与非型的快闪存储器中,以页面为单位进行读出及编程,以区块为单位进行消除。主机设备在指示所述动作时,将用以读出、编程、消除的逻辑地址(logical address)输出至存储控制器。存储控制器参照静态随机存取存储器(SRAM)中保持的转换表将所接收到的逻辑地址转换成物理地址,并进行朝存储单元阵列中的编程。当电源开启时,从存储单元阵列(memory cell array)中所准备的区域朝SRAM中载入转换表。
另外,已知在快闪存储器中,当编程/消除的周期数增加,则耐久特性及数据保持特性的劣化变得显著。可认为这是由于伴随着编程/消除的周期数增加,电子被栅极氧化膜捕获、或栅极氧化膜本身因电子的隧穿而劣化。当朝向特定的区块的编程/消除的周期数增加,则最终产生无法使用的区块,从而存储单元阵列的利用效率下降。因此,期望存储单元阵列的各区块间的编程/消除的周期数尽可能均匀化。
进而,在快闪存储器中,将表示当前的区块的状态的信息和所述的逻辑地址/物理地址的转换表等保持于SRAM中,为了应对突然的断电,将所述备份信息保存至存储单元阵列所确定的区域,例如备用区域。接着,当再次投入电源时,基于从备用区域读出的信息而在SRAM中重建转换表等。但是,朝向备用区域的编程使编程数增加,同时同一页面上的普通区域有可能因施加编程电压而被干扰。所述干扰被称为编程栅极干扰(Program gateDisturb,PGD)。编程数的增加和PGD在最差的情况下,导致普通区域的数据劣化。
本发明目的在于提供一种能够实现在区块间编程/消除周期数的平滑化,以及提供一种能够抑制编程数,并有效利用备用区域的半导体存储装置。
[解决问题的技术手段]
本发明的半导体存储装置包括:与非型的存储单元阵列,包含多个区块;第一保持部件,保持用以将逻辑地址信息转换成物理地址信息的转换信息;第二保持部件,保持用以识别应消除的区块的物理地址信息;第三保持部件,保持用以识别基于编程/消除次数而选择的已消除的能使用的区块的物理地址信息;消除部件,消除所述存储单元阵列的区块;以及控制部件,且在从外部接收到消除命令及逻辑地址信息时,所述控制部件基于所述转换信息将所述逻辑地址转换成第一物理地址信息,在由所述第二保持部件所保持的第二物理地址信息与第一物理地址信息不一致的情况下,所述控制部件使所述消除部件消除相当于第二物理地址信息的区块,进而,所述控制部件以由所述第三保持部件所保持的第三物理地址信息与所述逻辑地址信息对应的方式更新所述第一保持部件的转换信息。
在一种实施方式中,所述控制部件将第一物理地址信息追加至所述第二保持部件,将第三物理地址信息从所述第三保持部件删除。在一种实施方式中,半导体存储装置还包括编程部件,所述编程部件用以在所述存储单元阵列的选择页对数据进行编程,所述控制部件使所述编程部件在相当于第三物理地址信息的区块的经选择页面的备用区域中对所述逻辑地址信息与表示所述区块正在使用中的状态进行编程。在一种实施方式中,所述控制部件使所述编程部件在相当于第一物理地址信息的区块的经选择页面的备用区域对表示所述区块成为应消除的区块的状态进行编程。在一种实施方式中,在存储单元阵列所确定的区域中对与区块的状态相关的信息进行编程,所述控制部件基于与所述状态相关的信息来生成由所述第一保持部件、第二保持部件、第三保持部件所保持的信息。在一种实施方式中,所述控制部件在投入电源时,从所述存储单元阵列读出与所述状态相关的信息。在一种实施方式中,半导体存储装置还包括第四保持部件,所述第四保持部件在进行消除动作时,对与各区块的状态相关的信息进行保持,所述控制部件在进行编程动作时,在存储单元阵列的相应的备用区域对与所述第四保持部件所保持的状态相关的信息进行编程。在一种实施方式中,所述第四保持部件将与状态相关的信息保持在非易失性存储器中。
[发明的效果]
根据本发明,可实现存储单元阵列的区块的编程/消除次数的平滑化,改善存储单元阵列的利用效率。进而,根据本发明,能够于在备用区域中对与状态相关的信息进行编程的情况下,实现编程次数的削减。
附图说明
图1是表示现有的半导体存储器的一例的图;
图2是表示本发明的实施例的快闪存储器的整体构成的图;
图3是表示本发明的实施例的存储单元阵列的区块内部构成的图;
图4是表示本实施例的快闪存储器的区块内的构成的图;
图5(A)表示SRAM中所保持的地址转换表的示意图,图5(B)表示SRAM中所保持的当前参照表的示意图;
图6是示意性地表示存储单元阵列的各区块的状态的示意图;
图7是说明将从主机设备输入的逻辑地址转换成物理地址的动作的图;
图8(A)、图8(B)及图8(C)是表示本发明的实施例的空闲区块表、无效区块表、状态区块表的示意图;
图9是表示本发明的实施例的消除动作的流程的图;
图10是表示本发明的实施例的消除动作的流程的图;
图11(A)及图11(B)是表示在进行消除动作时经改写的地址转换表与当前参照表的示意图;
图12是示意性地表示进行消除动作时的存储单元阵列的各区块的状态的示意图;
图13(A)、图13(B)及图13(C)是表示进行消除动作时经改写的空闲区块表、无效区块表、状态区块表的示意图。
附图标号说明:10、100:快闪存储器
20:存储控制器
22:主机接口
24:存储器接口
30:存储芯片
40:主机设备
110:存储单元阵列
120:输入输出缓冲器
130:地址寄存器
140:控制器
142:SRAM
144:RRAM
150:字线选择电路
160:页面缓冲器/传感器电路
170:列选择电路
180:内部电压产生电路
200:普通区域
210:备用区域
212、214、216、218:信息
Ax:行地址信息
Ay:列地址信息
BLK(0)~BLK(m-1):区块
LAD:逻辑地址
LBA:逻辑区块地址
LCA:逻辑列地址
LPA:逻辑页面地址
MC0~MC63:存储单元
PAD:物理地址
PBA:物理区块地址
SL:源极线
SGD、SGS:选择栅极线
S101~S114:步骤
Td:位线侧选择晶体管
Ts:源极线侧选择晶体管
Vpgm:写入电压
Vpass:通过电压
Vread:读出通过电压
Vers:消除电压
具体实施方式
接着,参照附图对本发明的实施方式进行详细说明。本发明的快闪存储器包含具有与非型字符串的存储单元的存储装置、及控制存储装置的控制器来构成。控制器可以形成在与形成存储装置的芯片相同的芯片上,也可以形成在不同的芯片上。另外,当快闪存储器包含多个芯片时,也能够以将多个芯片层叠的方式构成。
[实施例]
图2是表示本发明的实施例的快闪存储器100的内部构成的图。本实施例的快闪存储器100从主机设备接收各种控制信号(命令锁存使能信号(Command Latch Enable,CLE)、地址锁存使能信号(Address Latch Enable,ALE)等)、数据、命令等,并根据这些信号等来进行读出、编程(写入)、消除等。另外,快闪存储器100将表示存储器的动作状态的准备(Ready)信号或忙碌(Busy)信号输出至主机设备中。
快闪存储器100包括如下构件来构成:存储单元阵列110,呈行列状排列有多个存储单元;输入输出缓冲器120,连接于外部输入输出端子I/O;地址寄存器130,从输入输出缓冲器120接收地址数据;控制器140,从输入输出缓冲器120接收命令数据等,来控制各部;字线选择电路150,从地址寄存器130接收行地址信息Ax,并将行地址信息Ax解码,基于解码结果来进行区块的选择及字线的选择等;页面缓冲器/传感器电路160,保持从由字线选择电路150所选择的页面读出的数据、或保持应在经选择的页面进行编程的输入数据;列选择电路170,从地址寄存器130接收列地址信息Ay,并将列地址信息Ay解码,基于此解码结果来选择页面缓冲器/传感器电路160内的列地址的数据;以及内部电压产生电路180,生成数据的读出、编程及消除等所需的各种电压(写入电压Vpgm、通过电压Vpass、读出通过电压Vread、消除电压Vers等)。
存储单元阵列110在列方向上具有m个区块BLK(0)、BLK(1)、…BLK(m-1)。如图3所示,在一个区块上,在行方向上排列有n个将多个存储单元串联连接的与非字符串。一个行方向上的存储单元构成一个页面(例如,2KB)。一个与非字符串NU包括:经串联连接的多个存储单元MCi(i=0、1、2、3···、63),与作为一侧的端部的存储单元MC63的漏极侧连接的位线侧选择晶体管Td、及与存储单元MC0的源极侧连接的源极线侧选择晶体管Ts。位线侧选择晶体管Td的漏极与在位线BL0~BLK-1中对应的一个位线BL连接,源极线侧选择晶体管Ts的源极与共同的源极线SL连接。存储单元可为存储一位的数据者或存储多位的数据者的任一者。进而存储单元阵列可为二维地形成于基板上者或三维地形成于基板上者的任一者。
在存储单元阵列110的各区块,即构成区块的各页面中分割有用户使用的普通区域、与用于存储各种管理信息等的备用区域。例如,存储单元阵列110的一个页面如图4所示,具有包含扇区0~扇区7的八个扇区的普通区域200、及包含备用SP_0、备用SP_1、备用SP_2、备用SP_3的四个扇区的备用区域210。例如,普通区域200的一个扇区为256字节(整体为2K字节)、备用区域210的一个扇区为16字节(整体为64字节)。
在备用区域中存储了识别包含不良存储元件的坏块的信息212、识别对应于所述区块的物理区块地址PBA(Physical Block Address)的逻辑区块地址LBA(Logical BlockAddress)的信息214、与所述区块的状态相关的信息216、及奇偶检验位(parity bit)218等。与状态相关的信息如后所述,例如包含已消除的区块(E)、正在使用中的有效的区块(V)、应消除的无效的区块(I)、编程/消除的次数EW等。
控制器140例如包含微处理器(MPU)、只读存储器(ROM)等,通过执行ROM中保存的软件程序,来控制快闪存储器100的读出、编程及消除等动作。进而,本实施例的控制器140包含SRAM 142及电阻变化型存储器(RRAM,电阻式随机存取存储器)144,进行SRAM 142及RRAM 144的读写控制等。
此处的SRAM 142是包含多个寄存器等的可高速地读出写入的易失性存储器的总称。SRAM 142在投入电源时,由控制器140执行通电序列(power-on sequence)时,保持从存储单元阵列110的特定的区块的特定页面、或预先确定的备用区域等载入的数据。控制器140可根据载入至SRAM 142中的数据来制作各种表,并使所制作的表保持于SRAM 142中,或可视需要改写表。表例如为规定逻辑区块地址LBA与物理区块地址PBA的关系的转换表、表示与存储单元阵列110的各区块的状态相关的信息的表等。
SRAM 142为易失性存储器,因此在断电的情况下,保持于SRAM 142中的表等数据会丧失。为了与此应对,在改写SRAM 142中所保持的数据的情况下,将其备份数据编程到存储单元阵列的备用区域。而且,在再投入电源时,利用从备用区域读出的数据重建SRAM 142的表等。
RRAM 144是可将数据存储在可逆且非易失性的可变电阻元件中的可变电阻型随机存取存储器。RRAM 144是与SRAM 142同样地可快速地读写数据,且即便电源丧失,也可以保持数据的非易失性的存储器。
RRAM 144可在SRAM 142中作为备份发挥功能。RRAM 144存储SRAM 142中所保持的数据的一部分,当在SRAM 142的表等中存在变更时,可存储其变更内容,并使朝向存储单元阵列的备用区域的编程延期。控制器140可在适宜的时机,将存储于RRAM 144中的数据编程至存储单元阵列的备用区域。在一种实施方式中,当在普通区域对数据进行编程时,在备用区域同时对RRAM 144的数据进行编程。由此,可削减编程数,并抑制可在仅于备用区域进行编程时产生的对普通区域进行的编程栅极干扰(PGD)。
在快闪存储器的读出动作中,对位线施加某个正的电压,对已被选择的字线施加某个电压(例如0V),对非选择字线施加通过电压(例如4.5V),对选择栅极线SGD、选择栅极线SGS施加正的电压(例如4.5V),将位线侧选择晶体管Td、源极线侧选择晶体管Ts开启,并将共同源极线SL设为0V。在编程动作中,对已被选择的字线施加高电压的编程电压(例如,15V~20V),对非选择的字线施加中间电位(例如10V),将位线侧选择晶体管Td开启,将源极线侧选择晶体管Ts关闭,将对应于数据“0”或数据“1”的电位供给至位线BL中。在消除动作中,对区块内的已被选择的字线施加0V,对P型井施加高电压(例如20V),将浮栅(floatinggate)的电子抽出至基板上,由此以区块为单位消除数据。
接着,对本实施例的快闪存储器100的动作进行说明。当对快闪存储器100投入电源时,控制器140执行通电序列,如图6所示的存储单元阵列110的起始块的特定页面中所保存的数据、各区块的备用区域中所保存的逻辑区块地址LBA、与状态有关的数据被载入至SRAM 142中。控制器140基于所载入的信息,来制作如图5(A)所示般的地址转换表、如图5(B)所示的当前参照表LUT,并使其保持于SRAM 142中。
此处,图5(B)及图6的状态中使用的符号“S”表示系统使用的区块,“E”表示已消除且可使用的区块,“V”表示正在使用中的有效的区块,“I”表示应消除的无效的区块,“BB”表示无法使用的坏块。
当在一个区块内包含(V)与(I)两个状态的情况下,使(I)状态优先,在包含(V)与(E)的情况下,使(V)优先。在包含(BB)与(E)的情况下,使(BB)优先。例如,在图6所示的存储单元阵列的物理区块地址PBA(03h)中,在页面PPA(00h)对“V”进行编程,在页面PPA(03h)对“I”进行编程,因“I”优先,故所述区块被识别为应消除的无效的区块。因此,备用区域的逻辑区块地址LBA(01h)无法用作有效的地址,即,无法反映于图5(A)的转换表,且在图5(B)的当前参照表LUT中反映出“I”。另外,在图6的物理区块地址PBA(02h)中,状态被编程为“BB”,因此在当前参照表LUT中反映成“BB”。
控制器140参照图5(A)所示的地址转换表,将从主机设备中输入的逻辑地址LAD转换成物理地址PAD。逻辑地址LAD如图7所示,包含逻辑区块地址LBA(Logical BlockAddress)、逻辑页面地址LPA(Logical Page Address)及逻辑列地址LCA(Logical ColumnAddress)来构成。例如,用于访问快闪存储器100的行地址为18位,列地址为12位。行地址的高位12位是指定区块的地址,低位6位是指定页面的地址。逻辑页面地址LPA及逻辑列地址LCA不被转换而直接构成物理地址。如此,逻辑地址LAD被转换成用于访问快闪存储器的物理地址PAD(=PBA+LPA+LCA)。
控制器140可使用图5(B)所示的当前参照表LUT来管理各区块的编程/消除的周期数的平滑化,但在本实施例中,为了缩短区块的搜索时间而提高其处理速度,生成如图8(A)~图8(C)所示般的三个表。
图8(A)所示的空闲区块表(FBT)是管理已消除的区块且接下来可使用的区块的表。FBT基于在图5(B)的当前参照表LUT中,状态为“E”的区块及其编程/消除次数EW来生成。FBT例如保存至按先写入的物理区块地址PBA的顺序读出的先入先出(first-in-first-out,FIFO)型的寄存器,此处,先从编程/消除次数EW少的区块写入。编程/消除次数EW在一个区块内的各页面中无需相同。消除是以区块为单位进行,因此在各页面中均匀地反映,编程是以页面为单位进行,因此在各页面间编程数不同。本实施例的编程/消除次数EW是以区块为单位,即,即便是对区块内的一个页面进行编程的情况,编程/消除次数EW也加上一。
图8(B)所示的无效区块表(IBT)是管理接下来应消除的区块的表。IBT基于在图5(B)的当前参照表LUT中,状态为“I”的区块及其编程/消除次数EW来生成。IBT也保存至FIFO型的寄存器,先从编程/消除次数EW少的页面写入。
图8(C)所示的状态区块表(SBT)存储图5(B)所示的当前参照表LUT的状态。SBT利用在图5(B)的当前参照表LUT中,全部区块的状态来生成。SBT保存至RRAM 144中,假设在运行中产生区块的状态变更时,保存其变更。
接着,参照图9、图10的流程对在快闪存储器100中消除区块时的动作进行说明。存储单元阵列110设为具有图6所示的状态。外部的主机设备输出消除命令及表示应消除的区块的逻辑区块地址LBA(01h),快闪存储器100接收其输出(S101)。
控制器140参照图5(A)所示的转换表,将逻辑区块地址LBA(01h)转换成物理区块地址PBA(07h)。接着,控制器140确定编程/消除次数少的接下来应消除的区块,因此读出图8(B)所示的IBT的起始的物理区块地址PBA(01h)(S103)。
接着,控制器140执行由从IBT读出的物理区块地址PBA(01h)确定的区块的消除(S104)。此处,对应于由主机设备指示的逻辑区块地址LBA(01h)的物理区块地址PBA(07h)与从IBT读出的物理区块地址PBA(01h)不一致,因此物理区块地址PBA(007)的区块无法消除,此区块作为应消除的无效的区块(状态“I”)来管理。响应于控制器140的指示,字线选择电路150对物理区块地址PBA(01h)的选择区块的全部字施加0V,另外对P阱施加消除电压。将此时的物理区块地址PBA(01h)的区块的状态示于图12。物理区块地址PBA(01h)的备用区域成为已消除的可使用的状态E。
接着,为了反映存储单元阵列110的PBA(01h)的状态,控制器140将图5(B)所示的当前参照表LUT的PBA(01h)的状态从“I”改写为“E”,且对编程/消除次数EW加上1而改写为“2”(S105)。将改写后的当前参照LUT表示于图11(B)。用虚线表示经改写的部分。
接着,控制器140将存储单元阵列110的物理区块地址PBA(07h)的页面(03h)的状态编程为“I”(S106)。起始页面的备用区域的状态中已被编程为“V”,无法使用此区域。因此,使用未使用的页面(03h)的备用区域。
接着,控制器140为了将存储单元阵列110的物理区块地址PBA(07h)的状态反映于当前参照表LUT,将当前参照表LUT的物理区块地址PBA(07h)的状态改写为“I”(S107)。将所述状态示于图11(B)(虚线部分)。
接着,控制器140将物理区块地址PBA(07h)写入IBT(S108)。IBT是FIFO型,因此如图13(B)所示,物理区块地址PBA(03h)移动至起始的条目#0,且物理区块地址PBA(07h)被追加至最后的条目#1。
如此,完成与来自主机设备的消除命令对应的消除动作后,接着,控制器140从FBT中搜索应分配给逻辑区块地址LBA(01h)的物理区块地址PBA。即,控制器140读出图8(A)所示的FBT的起始的条目#0的物理区块地址PBA(08h)(S109)。
接着,控制器140按照从FBT中读出的物理区块地址PBA(08h),将存储单元阵列的PBA(08h)的页面(00h)的备用区域的逻辑区块地址LBA改写为(01h),状态编程为“V”(S110)。
接着,控制器140在存储单元阵列的物理区块地址PBA(08h)中,将所述区块分配为使用中的有效的区块,伴随与此,对当前参照表LUT的内容进行改写。即,将当前参照表LUT的物理区块地址PBA(08h)的逻辑区块地址LBA改写为(01h),且将状态从“E”改写为“V”(S111)。将所述状态示于图11(B)(虚线部分)。
接着,控制器140以图5(A)的转换表的逻辑区块地址LBA(01h)对应于物理区块地址(08h)的方式改写转换表(S112)。将所述状态示于图11(A)(虚线部分)。
接着,控制器140对FBT追加物理区块地址,因此从当前参照表LUT中搜索编程/消除次数EW小、状态为“E”,且未登记于FBT的物理区块地址(S113)。在本例中,对物理区块地址PBA(01h)进行搜索。
接着,控制器140为了将所搜索的物理区块地址PBA(01h)追加至FBT而进行写入(S114)。将所述状态示于图13(A)(虚线部分)。如此,对逻辑区块地址LBA(01h)分配编程/消除次数少的新的物理区块地址(08h),且将编程/消除次数少的物理区块地址(01h)追加至FBT。
根据本实施例,在进行消除动作时,利用如上所述的算法来进行区块的消除及区块的使用,由此可使存储单元阵列内的区块的编程/消除次数平滑化,进行区块间的耗损平均。其结果,可实现快闪存储器的利用效率的改善。
接着,对本发明的第二实施例进行说明。在所述消除动作时的流程的步骤S110中,控制器140在存储单元阵列的物理区块地址PBA(08h)的页面(01h)的备用区域,对逻辑区块地址LBA(01h)与状态“V”进行编程,但由于此编程,在同一页面中所允许的最大编程次数会被消耗一次。在本实施例中,为了消除所述浪费,将图8(C)所示的用以管理消除状态的区块的状态的状态区块表SBT保存至非易失性存储器,并对此进行活用。
如图8(C)所示,SBT提取当前参照区块的状态,示出各物理区块地址PBA的状态。控制器140在消除动作中区块的状态变化的情况下,如图13(C)所示,对SBT进行改写(虚线部分)。即,物理区块地址PBA(01h)从应消除的无效的区块“I”改写为已消除的区块“E”,物理区块地址PBA(07h)从使用中的有效的区块“V”改写为应消除的无效的区块“I”,物理区块地址PBA(08h)从已消除的区块“E”改写为使用中的有效的区块“V”。
控制器140对状态从“E”变更为“V”的物理区块地址PBA(08h)在消除动作中不进行编程,在从主机设备接收到对物理区块地址PBA(08h)的页面(00h)的编程命令时,同时在备用区域对逻辑区块地址LBA(01h)与状态“V”进行编程。由此,物理区块地址PBA(08h)的页面(00h)的编程次数消耗一次。在所述编程完成之前的期间,代用非易失性存储器的SBT,其后,消除SBT。再者,在将区块的状态变更为“V”的情况下,逻辑区块地址建立新的对应,由此在SBT中,将逻辑区块地址LBA一并存储,逻辑区块地址LBA也同时被编程到备用区域。
再者,在所述实施例中,使用RRAM作为非易失性存储器,但只要和与非型存储器相比能够更快速地写入数据,则除RRAM以外也可使用MRAM(磁性体存储器)。
对本发明的优选实施方式进行了详述,但本发明并不限定于特定的实施方式,可在权利要求记载的本发明的主旨范围内进行各种变形、变更。
Claims (10)
1.一种半导体存储装置,其特征在于,包括:
存储单元阵列,包含多个区块;
第一保持部件,保持用以将逻辑地址信息转换成物理地址信息的转换信息;
第二保持部件,保持用以识别应消除的区块的物理地址信息;
第三保持部件,保持用以识别基于编程/消除次数来选择的已消除的能使用的区块的物理地址信息;
消除部件,消除所述存储单元阵列的区块;以及
控制部件,
在从外部接收到消除命令及逻辑地址信息时,所述控制部件基于所述转换信息将所述逻辑地址转换为第一物理地址信息,
在由所述第二保持部件所保持的第二物理地址信息与所述第一物理地址信息不一致的情况下,所述控制部件使所述消除部件消除由所述第二物理地址信息所确定的区块,
所述控制部件以所述第三保持部件所保持的第三物理地址信息与所述逻辑地址信息对应的方式更新所述第一保持部件的转换信息。
2.根据权利要求1所述的半导体存储装置,其特征在于,所述控制部件将所述第一物理地址信息追加至所述第二保持部件,将所述第三物理地址信息从所述第三保持部件删除。
3.根据权利要求1所述的半导体存储装置,其特征在于,所述半导体存储装置还包括编程部件,所述编程部件用以在所述存储单元阵列的选择页对数据进行编程,
所述控制部件使所述编程部件在由所述第三物理地址信息所确定的区块的经选择页面的备用区域中对所述逻辑地址信息与表示所述区块正在使用中的状态进行编程。
4.根据权利要求3所述的半导体存储装置,其特征在于,所述控制部件使所述编程部件在由所述第一物理地址信息所确定的区块的经选择页面的备用区域中对表示所述区块成为应消除的区块的状态进行编程。
5.根据权利要求1至4中任一项所述的半导体存储装置,其特征在于,在存储单元阵列所确定的区域中对与区块的状态相关的信息进行编程,
所述控制部件基于与所述状态相关的信息来生成由所述第一保持部件、第二保持部件、第三保持部件所保持的信息。
6.根据权利要求5所述的半导体存储装置,其特征在于,所述控制部件在投入电源时,从所述存储单元阵列读出与所述状态相关的信息。
7.根据权利要求1至4中任一项所述的半导体存储装置,其特征在于,所述半导体存储装置还包括第四保持部件,所述第四保持部件在进行消除动作时,对与各区块的状态相关的信息进行保持,
所述控制部件在进行编程动作时,在存储单元阵列的相应的备用区域中对与所述第四保持部件所保持的状态相关的信息进行编程。
8.根据权利要求7所述的半导体存储装置,其特征在于,所述第四保持部件将与状态相关的信息保持在非易失性存储器中。
9.根据权利要求1所述的半导体存储装置,其特征在于,为了反映所述存储单元阵列的物理区块地址的状态,所述控制部件将所述第二保持部件所保持的对应的物理区块地址的状态从无效的区块改写为已消除的区块,且对所述编程/消除次数加上1。
10.根据权利要求1所述的半导体存储装置,其特征在于,所述控制部件搜索所述编程/消除次数小、状态为已消除的区块,且未登记于所述第三保持部件的物理区块地址,并且所述控制部件为了将所搜索的物理区块地址追加至所述第三保持部件而进行写入。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-060533 | 2019-03-27 | ||
JP2019060533A JP6727365B1 (ja) | 2019-03-27 | 2019-03-27 | 半導体記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111768808A CN111768808A (zh) | 2020-10-13 |
CN111768808B true CN111768808B (zh) | 2022-06-07 |
Family
ID=71663970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911357506.7A Active CN111768808B (zh) | 2019-03-27 | 2019-12-25 | 半导体存储装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11221945B2 (zh) |
JP (1) | JP6727365B1 (zh) |
KR (1) | KR102294042B1 (zh) |
CN (1) | CN111768808B (zh) |
TW (1) | TWI706249B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416405B1 (en) | 2020-02-07 | 2022-08-16 | Marvell Asia Pte Ltd | System and method for mapping memory addresses to locations in set-associative caches |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772274B1 (en) * | 2000-09-13 | 2004-08-03 | Lexar Media, Inc. | Flash memory system and method implementing LBA to PBA correlation within flash memory array |
EP1713085A1 (en) * | 2002-10-28 | 2006-10-18 | SanDisk Corporation | Automated wear leveling in non-volatile storage systems |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230233B1 (en) * | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
JP4058322B2 (ja) * | 2002-10-07 | 2008-03-05 | 株式会社ルネサステクノロジ | メモリカード |
US6944063B2 (en) * | 2003-01-28 | 2005-09-13 | Sandisk Corporation | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
WO2005106673A1 (ja) * | 2004-04-28 | 2005-11-10 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置及びデータ書込み方法 |
KR100671625B1 (ko) * | 2004-12-28 | 2007-01-19 | 주식회사 하이닉스반도체 | 블록 사이즈를 변경할 수 있는 난드 플래시 메모리 장치 |
US7509474B2 (en) * | 2005-06-08 | 2009-03-24 | Micron Technology, Inc. | Robust index storage for non-volatile memory |
KR101297283B1 (ko) * | 2006-07-10 | 2013-08-19 | 삼성전자주식회사 | 낸드형 셀 스트링을 가지는 비휘발성 기억 장치 |
JP2009175877A (ja) | 2008-01-22 | 2009-08-06 | Toshiba Corp | 半導体メモリ |
JP2009266258A (ja) * | 2008-04-22 | 2009-11-12 | Hitachi Ltd | 半導体装置 |
US20110161560A1 (en) * | 2009-12-31 | 2011-06-30 | Hutchison Neil D | Erase command caching to improve erase performance on flash memory |
JP2012234482A (ja) * | 2011-05-09 | 2012-11-29 | Canon Inc | 記憶制御装置及びその制御方法、並びにプログラム |
CN102841852B (zh) * | 2011-06-24 | 2015-06-17 | 华为技术有限公司 | 磨损均衡方法、存储装置及信息系统 |
JP5697796B2 (ja) * | 2011-08-29 | 2015-04-08 | 株式会社日立製作所 | 電気的に書き換え可能な不揮発性半導体メモリを有する半導体記憶装置 |
JP5619812B2 (ja) * | 2012-04-24 | 2014-11-05 | ウィンボンドエレクトロニクス コーポレーション | 半導体記憶装置 |
KR102233808B1 (ko) * | 2014-03-14 | 2021-03-30 | 삼성전자주식회사 | 저장 장치 및 그것의 테이블 관리 방법 |
JP5734492B1 (ja) * | 2014-05-08 | 2015-06-17 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US10365835B2 (en) * | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
KR101633442B1 (ko) * | 2014-10-10 | 2016-06-24 | 윈본드 일렉트로닉스 코포레이션 | 반도체 메모리 장치, 반도체 시스템 및 독출 방법 |
US9431116B2 (en) | 2014-11-19 | 2016-08-30 | Sandisk Technologies Llc | Configuration parameter management using a configuration tool |
KR102403202B1 (ko) * | 2015-03-13 | 2022-05-30 | 삼성전자주식회사 | 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법 |
TWI537964B (zh) | 2015-04-20 | 2016-06-11 | 華邦電子股份有限公司 | 反及閘快閃記憶體和其操作方法 |
CN106297881B (zh) | 2015-05-27 | 2020-09-11 | 旺宏电子股份有限公司 | 非挥发性存储器的健康管理 |
JP6765322B2 (ja) * | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
-
2019
- 2019-03-27 JP JP2019060533A patent/JP6727365B1/ja active Active
- 2019-12-09 TW TW108144904A patent/TWI706249B/zh active
- 2019-12-25 CN CN201911357506.7A patent/CN111768808B/zh active Active
-
2020
- 2020-01-14 US US16/742,872 patent/US11221945B2/en active Active
- 2020-02-05 KR KR1020200013719A patent/KR102294042B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772274B1 (en) * | 2000-09-13 | 2004-08-03 | Lexar Media, Inc. | Flash memory system and method implementing LBA to PBA correlation within flash memory array |
EP1713085A1 (en) * | 2002-10-28 | 2006-10-18 | SanDisk Corporation | Automated wear leveling in non-volatile storage systems |
Also Published As
Publication number | Publication date |
---|---|
US11221945B2 (en) | 2022-01-11 |
CN111768808A (zh) | 2020-10-13 |
JP2020160871A (ja) | 2020-10-01 |
TWI706249B (zh) | 2020-10-01 |
JP6727365B1 (ja) | 2020-07-22 |
KR20200116019A (ko) | 2020-10-08 |
TW202036302A (zh) | 2020-10-01 |
KR102294042B1 (ko) | 2021-08-26 |
US20200310960A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4746598B2 (ja) | 半導体記憶装置 | |
US8046525B2 (en) | Nonvolatile semiconductor memory device with advanced multi-page program operation | |
US7039775B2 (en) | Non-volatile storage device and rewrite control method thereof | |
US11262939B2 (en) | Memory system, memory controller, and operation method | |
US7978512B2 (en) | Semiconductor memory system | |
KR20220013661A (ko) | 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
KR20220055717A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US12072809B2 (en) | Memory system, memory controller, and operation method of memory system for loading and updating mapping information to host memory area | |
CN111768808B (zh) | 半导体存储装置 | |
KR20210157544A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
US8238156B2 (en) | Nonvolatile semiconductor memory device and method of operating the same | |
KR102351933B1 (ko) | 반도체 기억장치 | |
US11237767B2 (en) | Memory system, memory controller and method for operating memory controller | |
KR20210071314A (ko) | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 | |
JP4661748B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
CN111488292B (zh) | 半导体存储装置 | |
US11709610B2 (en) | Memory system, memory controller and operating method | |
KR102708947B1 (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 장치 | |
US20230297502A1 (en) | Memory system, memory controller and operating method of the memory system for controlling garbage collection |
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 |