CN102436353A - 半导体存储器控制装置 - Google Patents

半导体存储器控制装置 Download PDF

Info

Publication number
CN102436353A
CN102436353A CN2011102544478A CN201110254447A CN102436353A CN 102436353 A CN102436353 A CN 102436353A CN 2011102544478 A CN2011102544478 A CN 2011102544478A CN 201110254447 A CN201110254447 A CN 201110254447A CN 102436353 A CN102436353 A CN 102436353A
Authority
CN
China
Prior art keywords
data
memory
physical address
page
semiconductor memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011102544478A
Other languages
English (en)
Other versions
CN102436353B (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.)
Japanese Businessman Panjaya Co ltd
Kioxia Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN102436353A publication Critical patent/CN102436353A/zh
Application granted granted Critical
Publication of CN102436353B publication Critical patent/CN102436353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及半导体存储器控制装置。根据一个实施例,在信息处理器请求时,半导体存储控制器将预定单位的数据段写入在半导体芯片的存储区内的擦除区域中的没有数据被写入的存储位置中。第三表以及作为其子集的第二表包括各自指示所述半导体芯片内的每个数据段的存储位置的物理地址。第一表包括指定第二表表目的信息或指定第三表表目的信息。所述半导体存储控制器将所述第一和第二表记录到易失性存储器中,或者将所述第一表记录到易失性存储器中且将所述第三表记录到非易失性存储器中。

Description

半导体存储器控制装置
相关申请的交叉引用
本申请基于2010年9月22日提交的日本专利申请2010-212646并要求其优先权;通过引用将其全部内容并入在本文中。
技术领域
本文中记载的实施例一般而言涉及半导体存储器控制装置。
背景技术
最广泛使用的一种非易失性半导体存储器芯片是NAND型的闪速存储器(称为NAND闪速存储器)。在NAND闪速存储器中,记录的最小单位是页,并以页为单位进行写入。仅仅可以在已经擦除了先前在页中存储的数据之后将数据写入该页中。不能以页为单位擦除数据。以每个由预定数目(2个或更多个)的页组成的单位(称为“块”)擦除数据。在当作为半导体存储器芯片的上位设备的主机请求数据写入时指定的地址(下文中称为“逻辑地址”)与在NAND闪速存储器内数据被写入的页(下文中称为“物理地址”)之间的关系为固定的关系的情况下,每次主机请求数据写入时,都需要擦除块中的数据,以便可将新数据写入擦除的块中。在该情况下,同时也擦除未对其进行写入的(同一块中的)其他页。为了避免该情况,可以使用这样的方法,通过该方法,将要被擦除的页中存储的数据暂时移动到诸如动态随机存取存储器(DRAM)的另一存储器,以便在擦除了该块之后,将请求写入的数据和已被移动到另一存储器的数据一起写入该块中。
如上所述,在逻辑地址与物理地址之间的关系固定的情况下,如果已进行写入处理的次数在不同的逻辑地址之间没有很好地均衡,则已进行写入处理的次数在不同的物理地址之间也不会很好地均衡。由此,存在在具有特定物理地址的区域中集中地进行写入处理的可能性。NAND闪速存储器具有当对其进行了大量次数的写入处理时元件损耗的特性。由此,存在这样的要求,即,应使写入处理进行的次数在整个存储区中尽可能均匀,以便可以保持长的系统寿命。为了将写入处理进行的次数设置为在整个存储区中尽可能均匀,需要管理在每个分段区域中已进行的写入处理的次数并管理逻辑地址与物理地址之间的关系,以便对一些已进行了较少次数的写入处理的处理进行写入处理。
为了响应于来自主机的请求而读出通过使用上述方法写入的数据,需要确定与由主机指定的逻辑地址对应的数据被实际存储在NAND闪速存储器内的存储位置(即,物理地址)。出于该目的,需要准备表明逻辑地址与物理地址之间的关联的转译表。为了有效率,用于指示逻辑地址与物理地址之间的关联的单位应优选与NAND闪速存储器的页尺寸匹配;然而,页尺寸可以为例如4千字节,其是相对小的。例如,在将256吉字节的逻辑地址空间分割成每个4千字节的区段的情况下,转译表需要具有64兆个表目(entry)。假设转译表中的每个表目的尺寸为4字节,则转译表将需要256兆字节的容量。这意味着转译表的尺寸极大(参见例如“A BufferManagement Scheme for Improving Random Writes in Flash Storage”,http://www.usenix.org/events/fast08/tech/full papers/kim/kim/html/)。
一般而言,各自具有高随机可存取度的动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)可被用于转译表。在转译表的尺寸大的情况下,需要这样的易失性存储器的大部分容量。存在这样的可能性,即,使存储器的容量增大会导致与成本有关的问题。另外,在转译表的整体被保持在NAND闪速存储器自身中的情况下,每次更新转译表时,都对NAND闪速存储器进行写入处理。结果,对NAND闪速存储器进行的写入处理的次数增加,从而存在半导体存储器系统的可靠性变低的可能性。
发明内容
实施例的一个目的是提供一种能够在抑制成本的同时抑制对半导体存储器芯片进行的写入处理的次数的半导体存储器控制装置。
概括而言,根据一个实施例,一种半导体存储器控制装置在半导体存储器芯片中写入被请求写入的具有由信息处理设备使用的指定的逻辑地址的主机写数据。所述主机写数据包括预定单位的一个或多个第一数据的段。物理地址是指示所述第一数据在所述半导体存储器芯片内的存储位置的信息。第一表被存储在第一存储器中。第二表被存储在第二存储器中。第三表被存储在第三存储器中,所述第三存储器是非易失性存储器并包括各自指示出每段所述第一数据在所述半导体存储器芯片内的存储位置的物理地址。所述第二表是所述第三表的子集并包括各自指示出每段所述第一数据在所述半导体存储器芯片内的存储位置的物理地址。所述第一表包括指定第二表表目的信息或指定第三表表目的信息。所述半导体存储器控制装置包括:接收单元,其被配置为接收所述主机写数据;控制单元,其被配置为将每段所述第一数据写入在所述半导体存储器芯片的存储区内的已从其中擦除了数据的存储区中的没有数据被写入的存储位置中;以及记录单元,其被配置为将所述第一表记录到所述易失性存储器中且将所述第二表记录到所述易失性存储器中,或者将所述第一表记录到所述易失性存储器中且将所述第三表记录到所述非易失性存储器中。
根据该半导体存储器控制装置,可以在抑制成本的同时抑制对半导体存储器芯片进行的写入处理的次数。
附图说明
图1是根据实施例的半导体存储器系统的示例性硬件配置的图;
图2是用于解释压缩的概念图;
图3是通过半导体存储器控制装置50实现的功能的实例的图;
图4是正向查找表的示例性数据结构的图;
图5是根据实施例的正向查找表的结构的示意图;
图6是用于解释逻辑地址与第一表的数据结构之间的关系的图;
图7是第三表的结构的实例的图;
图8是位向量表的示例性数据结构的图;
图9是写目标数据的实例的图;
图10是用于解释通过循环处理(round-robin)进行的写入的图;
图11是写入写目标数据的过程的流程图;
图12是示例随时间的流逝写入写目标数据段的状态的图;
图13是读出数据的过程的流程图;以及
图14是压缩中的过程的流程图。
具体实施方式
下文中将参照附图描述各种实施例。
首先,将参照图1解释包括根据实施例的半导体存储器控制装置的半导体存储器系统的硬件配置。通过将半导体存储器控制装置50与半导体存储器元件(NAND)58A到58D连接在一起而配置半导体存储器系统。半导体存储器控制装置50包括处理器51、引导只读存储器(ROM)52、串行高级技术附件/串行附接小计算机系统接口[=SCSI](SATA/SAS接口)55、存储器控制器53、静态随机存取存储器(SRAM)54、NAND控制器57A到57D、以及将这些元件连接在一起的总线56。NAND 58A到58D被分别连接到NAND控制器57A到57D。在NAND控制器57A到57D不需要彼此区分的情况下,NAND控制器57A到57D被简称为NAND控制器57。类似地,在NAND 58A到58D不需要彼此区分的情况下,NAND 58A到58D被简称为NAND 58。
在处理器51的控制下,SATA/SAS接口55控制与主机的通信,其中主机是半导体存储器控制装置50的上位设备。引导ROM 52在其中存储在装置开启时要执行的程序。在NAND 58中存储各种类型的系统程序。处理器51控制半导体存储器控制装置50的整体,并在开启装置时通过从引导ROM 52读出程序、执行所读出的程序、根据所执行的程序将存储在NAND 58中的各种类型的系统程序转移到SRAM 54、并执行SRAM 54中的系统程序来实现各种类型的功能。更具体地,处理器51解释通过SATA/SAS接口55从主机传送的命令。处理器51根据该命令而控制数据向任何NAND 58中的写入或数据从任何NAND 58的读出。
存储器控制器53控制向或从SRAM 54的写入或读出。SRAM 54在其中存储各种类型的数据和各种类型的程序。根据本实施例,SRAM 54在其中存储正向查找表(稍后解释)的一部分以及位向量表。每一个NAND控制器57被配置为控制对应的一个NAND 58,并包括错误校正电路。
每个NAND 58对应于半导体存储器芯片,并为例如在NAND闪速存储器中使用的存储器元件。不可以随机地从每个NAND 58读出数据和向每个NAND 58写入数据,但可能以被称为“页”的单位读出和写入数据。多个页一起形成被称为“块”的存储区单位。在本实例中,一个页由4千字节构成,一个块由64个页形成。每个NAND 58被配置为具有被设置在一起的多个块。在本实施例中,如图1所示,NAND 58的数目为四个。将通道(CH0到CH3)分别分配给NAND 58A到58D。如稍后将解释的,在由主机请求写入的数据大于页的尺寸(下文中可称为“页尺寸”)的情况下,半导体存储器控制装置50将数据分割成多个段,并将这些被分割成页的数据段(下文中称为“分割的数据段”)分配和写入到各自的通道CH0到CH3。
这里,将解释用于将数据写入NAND 58的写入方法。NAND半导体存储区元件通常采用日志结构方法。根据日志结构方法,需要在写入之前擦除块。块的擦除是擦除存储在块中的数据,并且为例如将构成该块的存储区中的所有的位都设定为“1”。半导体存储器控制装置50以块为单位进行这样的擦除并以页为单位进行向擦除的块的写入。因此,在NAND型的NAND 58中,数据可被依次写入到擦除的块中的未写入的页,并且写入的页不能被覆写。此外,由主机中使用的逻辑地址(即,逻辑块地址(LBA))指定响应于来自主机的请求的数据写入。相比而言,以块中的页的升序而与逻辑地址无关地,根据NAND 58的物理存储位置(即,物理块地址(PBA))而进行数据向NAND 58中的写入。换言之,无论在数据写入请求中指定的逻辑地址如何,都以块内的预定顺序进行数据向页的写入。在写目标数据的尺寸小于页尺寸的情况下,包含写目标区段的页中的数据被读出并与写目标区段合并以匹配页尺寸,以便以页为单位进行写入。在数据大于页尺寸的情况下,该数据被分解为多个页并分布到所分配的块,以便以页为单位进行写入。逻辑地址与物理地址之间的关联被存储在正向查找表(稍后解释)中。当由主机请求写入具有再次指定的在先前数据请求中指定的逻辑地址的数据时,半导体存储器控制装置50将该新数据写入擦除的块中的未写入的页。在该情况下,先前进行了与该逻辑地址对应的写入的页将其状态改变为“无效”,并且写入新数据的页将其状态改变为“有效”。
在该情况下,“无效”是其中逻辑地址不指示物理地址的位置的状态,而“有效”是其中逻辑地址指示物理地址的位置的状态。由此,当数据无效时,逻辑地址不指示数据被存储的存储区的物理地址的位置。当数据有效时,逻辑地址指示数据被存储的存储区的物理地址的位置。当页的物理位置无效时,逻辑地址不指示与该页对应的存储区的物理地址的位置。当页有效时,逻辑地址指示与该页对应的存储区的物理地址的位置。
根据日志结构方法,当通过继续写入而使无效的页的数目增加时,NAND 58中可实现写入的容量(下文中称为可写入的容量)变小。在数据可被写入的新擦除的块的数目,即,在擦除之后数据尚未被写入的块的数目(下文中称为“空闲块”)减小且每个通道中的空闲块不能被保留的时间点,出现写入不能状态。为了防止该状态,在半导体存储器控制装置50中,在适当的实际进行垃圾收集。在NAND 58中进行的垃圾收集将特别地称为压缩。图2是用于解释压缩的概念图。半导体存储器控制装置50收集在包含被无效的页的块中的未被无效的物理地址中写入的数据(称为有效数据)并将所收集的有效数据重新重写在空闲块中以将有效数据移动到该空闲块中。之后,半导体存储器控制装置50擦除这些块以产生新的空闲块。在半导体存储器控制装置50中,通过进行这样的压缩,不可写入的块再次变为可写入的,允许保留空闲块。另外,如果由于移动数据而存在有效数据被写入的块中的未写入的页,则可将数据重新写入该页。
需要至少一个空闲块来进行这样的压缩,这意味着在NAND 58中实现的容量(称为实现的容量)大于写入可实际实现的容量。在本实施例中,实现的容量与可写容量之间的差异称为“备用容量”。当备用容量小时,半导体存储器控制装置50必须频繁地执行压缩,这对其性能与很大的影响。
接下来,将参照图3解释在半导体存储器控制装置50中实现的功能。半导体存储器控制装置50包括主机接口单元60、缓冲器控制单元61、地址转译单元62、通道(CH)分配单元63、压缩候选检测单元64、管理表更新单元65、NAND控制单元66A到66D、数据缓冲器67、压缩读队列68、以及管理表69。通过处理器51的程序执行和SATA/SAS接口55的功能而实现主机接口单元60的功能。当处理器51执行程序时实现地址转译单元62、CH分配单元63、管理表更新单元65、压缩候选检测单元64和缓冲器控制单元61的功能。NAND控制单元66A到66D的功能分别对应于NAND控制器57A到57D,并通过处理器51的程序执行和分别对应于NAND控制单元66A到66D的NAND控制器57A到57D的功能而实现。NAND控制单元66A到66D以一对一的对应方式对应于上述通道CH0到CH3分别被分配给的NAND 58A到58D。在NAND控制单元66A到66D不需要彼此区分的情况下,NAND控制单元66A到66D简称为NAND控制单元66。数据缓冲器67和压缩读队列68为例如在SRAM 54中保留的存储区。管理表69将在稍后详细解释,并且是存储在SRAM 54和NAND58中的信息。
主机接口单元60是控制主机与半导体存储器控制装置50之间的通信的接口。主机接口单元60接收从主机传送的命令,并且当该命令请求以指定的逻辑地址写入数据时,主机接口单元60将该命令(下文中称为“写命令”)传送到地址转译单元62(稍后解释)。在该情况下,当请求写入的数据的尺寸等于或小于页尺寸时,主机接口单元60将该数据传送到缓冲器控制单元61(稍后解释)。当数据的尺寸大于页尺寸时,主机接口单元60将该数据分割成页单位的段,并将由此分割的这些数据段(下文中称为“分割的数据段)传送到缓冲器控制单元61。原因在于,以页单位基础进行逻辑地址与物理地址之间的转译。例如,主机接口单元60将128千字节的数据分割成32个4千字节数据的段。为了便于解释,将响应于写命令的被传送到缓冲器控制单元61的数据或分割的数据段称为写目标数据。
在从主机传送的命令请求以指定的逻辑地址读出数据时,如果请求读出的数据的尺寸等于或小于页尺寸,则主机接口单元60将该命令(下文中称为“读命令”)传送到地址转译单元62。在请求读出的数据的尺寸大于页尺寸的情况下,主机接口单元60将以页单位为基础的请求读出数据的命令(即,读命令)传送到地址转译单元62。在该情况下,主机接口单元60通过使用由从主机传送的命令指定的逻辑地址而计算每个将读出的数据段的逻辑地址,并将请求读出具有计算出的逻辑地址的数据的读命令传送到地址转译单元62。此外,主机接口单元60通过使用稍后描述的缓冲器控制单元61而读出要被读出的存储在数据缓冲器67中的指派区中的数据,并将该数据传送到主机。
管理表69包括正向查找表和位向量表。正向查找表指示数据的逻辑地址与物理地址之间的关联,而物理地址指示在NAND 58中数据被写入的物理存储位置。在指定指示与由主机指定的逻辑地址相对应的数据被存储于其中的NAND 58上的存储位置时使用这样的正向查找表。
图4是正向查找表的数据结构的概念图。如图4所示,正向查找表使用逻辑地址作为索引,并包括包含赋予通道的号码(通道号)、赋予物理块的号码(物理块号)和赋予页的页号的表目。基于在来自主机的数据写入请求中指定的逻辑地址而计算每个数据段的逻辑地址。在该实施例中,通道号为CH0到CH3。通道号指示包括与该逻辑地址对应的数据被存储于其中的物理块的NAND 58被连接到哪个通道。页号指示与该逻辑地址对应的数据被存储于由通道号和物理块号识别的物理块中的哪个页中。可以按物理地址的顺序赋予页号,或者例如物理地址本身被赋予作为页号。
响应于来自主机的请求或响应于压缩,每次读出数据时参照正向查找表且每次在NAND 58中写入数据时更新正向查找表。稍后将解释如何参照和更新正向查找表。由于参照和更新正向查找表的频率高,因此一般而言通过使用诸如DRAM或SRAM的易失性存储器来安装正向查找表。然而,例如,在以4千字节的区段为单位管理具有256吉字节的容量的NAND58的情况下,需要具有这样的正向查找表,该正向查找表具有的表目数位64兆个(=256吉/4K)。如果正向查找表中的每个表目的尺寸为4字节,则需要安装具有“256兆字节(=64兆*4字节)”的总容量的易失性存储器。此外,为了将每个NAND 58实现为具有较大容量,存在需要安装具有与该较大容量成比例的容量的易失性存储器这一限制。根据本实施例,可以通过降低易失性存储器的容量并通过组合使用具有比易失性存储器低的每容量价格的NAND 58和易失性存储器而构造正向查找表来抑制成本。即,根据实施例,作为正向查找表,指示逻辑地址与物理地址之间的关联的信息被部分存储在SRAM 54中且部分存储在NAND 58中。结果,可以降低构造正向查找表所需的易失性存储器的容量。
更具体地,正向查找表由存储在易失性存储器中的第一表和第二表以及存储在NAND 58中的第三表构成。第一表和第二表可被存储在诸如DRAM或SRAM的易失性存储器中或者诸如MRAM或FeRAM的非易失性存储器中。第二表是包括各自指示数据在NAND 58内的存储位置的物理地址的信息。第三表是包括各自指示数据在NAND 58内的存储位置的物理地址的信息。第一表包括(i)指定第二表表目的信息或(ii)指定第三表表目的信息。如图6所示的逻辑地址的位的一部分(从第11位到第28位)被用作第一表的索引,并且剩余的位的一部分(从第3位到第10位)被用作指示由第一表的值指定的第二表或第三表的表目中的位置的索引。图5是根据实施例的正向查找表的结构的示意图。在第一表中,以组块(chunk)为单位将存储区分割成区段。与一个组块对应的存储区被分配作为一个表目。作为实例,在一个组块为1兆字节且一个表目为4字节的尺寸的情况下,相对于256吉字节的NAND 58的第一表的容量可被计算为“256吉字节/1兆字节*4字节=1兆字节”。更具体地,如图6所示,第一表中的每个表目示出逻辑地址的上位的18个位,该上位的18个位与指定在其中存储第二表的存储区内的其中存储了与逻辑地址对应的物理地址的存储区的指定信息关联,或者与指定在其中存储第三表的存储区内的其中存储了与逻辑地址对应的物理地址的存储区的指定信息关联。表目的数目为256K个。对于其对应数据未被存取的逻辑地址,将值“FFFFFFFFF”赋予作为该指定信息。这意味着在第二表或第三表中不存在对应的表目。应注意,由于将仅仅29个位用作逻辑地址,因此不存在先前被存取的表目呈现该值的可能性。
在其中存储第三表的存储区中,通过第二表以页为单位存储表目的信息,这将在下面进行解释。图7是第三表的结构的实例的图。利用作为第一表中的索引的逻辑地址的上位的18个位唯一地选择第三表中的每个表目。从第三位到第十位的中位的8个位指定在1兆字节的组块中包括的256个簇(cluster)位置中的一个,以便将与该逻辑地址对应的物理地址存储在指定的位置中。对于第一表的每个表目,第三表的子表目的数目为256个,这是因为,存在256个4千字节的簇且一个组块的尺寸为1兆字节(1兆字节/4千字节=256)。在第一表的每个表目中,与逻辑地址的上位的18个位对应地示出了指定一个存储区的指定信息。在第三表中,在该一个存储区中按照逻辑地址的顺序设置256个物理地址。从第三位到第十位的中位的8个位被用作指定子表目之一的偏移,以便在与该偏移对应的存储位置(地址)中的4个字节中存储物理地址。第三表中的表目的信息段被以循环方式写入多个NAND 58中。通过配置第三表,可以降低通过将数据写入第三表而引起的且影响处理速度的开销(overhead)。第三表不包括尚未被存取的这样的数据的任何物理地址。由此,并非第三表表明能够在NAND 58的容量内被写入的所有数据的逻辑地址与物理地址之间的关联。
第二表是第三表的子集并用作第三表的高速缓冲存储器。通过使用诸如SRAM 54或DRAM(未示出)的易失性存储器而构成第二表。第二表的容量等于或小于第三表的容量。利用作为第一表的索引的逻辑地址的上位的18个位来唯一地选择第一表的表目。选择利用第一表的所选择的表目指定的第二表的表目。从第三位到第十位的中位的8个位指定第二表的所选择的表目中的位置。例如,中位的8个位指定在1兆字节的组块中包括的256个簇的位置。与该逻辑地址对应的物理地址被存储在该指定的位置中。在第二表中,如图7所示,以与第三表相同的方式,在由与第一表的一个表目中的逻辑地址的上位的18个位对应的指定信息指定的存储区中按照逻辑地址的顺序设置物理地址。从第三位到第十位的中位的8个位被用作偏移,以便在与该偏移对应的存储位置(地址)中的4个字节中存储物理地址。每次满足预定条件时,将第二表中的表目的信息段写入到其中存储第三表的存储区中。该预定条件可以为例如已被写入到其中存储第二表的存储区中的多个表目的尺寸变为等于作为页尺寸的4千字节或其多倍(例如,64千字节)。由于向其中存储第三表的存储区中的数据写入是向NAND 58中的数据写入,因此,即使关断半导体存储器控制装置50的电力源,也仍保持逻辑地址与物理地址之间的关联。此外,由于第二表的一个表目的尺寸为1千字节且NAND 58的页尺寸为4千字节,因此即使在最差情况下,四个写入处理对应于向NAND 58中写入一个页的数据。由此,与为每个写入处理更新第三表的情况相比,可以减少对其中存储被存储于NAND 58中的第三表的存储区进行的写入处理的次数。
接下来将参考图8解释位向量表。位向量表是这样的表,该表按页的顺序以二值表明在每个通道CH0到CH3上的每个物理块中那些页是有效页。有效页是指有效数据已被写入其中的页。每个页的二值指示称为位向量。当位向量的值为“1”时,其意味着该页是有效页,而当位向量的值为“0”时,其意味着该页不是有效页(无效)。在初始状态下,将位向量的值全部设定为“0”。
在本实施例中,写目标数据被写入的通道为四个通道CH0到CH3,并且,如果假设一个物理块包括64个页,则对应的位向量的数目为64个。如图8所示,在位向量表中,用于通道CH0到CH3的物理块号被用作索引。对于每个物理块,位向量表包括物理块号、与包括在每个物理块中的每个页对应的位向量以及计数器。在图8所示的实例中,以如下方式按照通道CH0到CH3的每个物理块的页的顺序设置位向量:从左面开始通道CH0的第一页、第二页......和最后页且在下一行中通道CH1的第一页、第二页......和最后页,依次类推。计数器代表其值为“1”的位向量的总数目。由于其对应位向量为值“1”的页是有效页,计数器代表逻辑块中的有效页的数目(下文中称为“有效页计数器”)。在这样的配置中,每次主机请求写入数据时都更新位向量表。稍后将解释如何更新位向量表。
返回到图3的描述,地址转译单元62接收来自主机接口单元60的命令。在该命令为读命令的情况下,地址转译单元62通过使用由所接收的读命令指定的逻辑地址而参照管理表69中的正向查找表,并确定将由读命令请求读出的数据被写入的页的通道和物理地址。更具体地,地址转译单元62通过使用逻辑地址的上位的18个位而参照第一表中的表目,并在使用于逻辑地址的上位的18个位关联的指定信息的同时确定是将逻辑地址与物理地址之间的关联存储在其中存储第二表的存储区中还是存储在其中存储第三表的存储区中。依赖于判断的结果,地址转译单元62从其中存储第二表的存储区或从其中存储第三表的存储区读出与该逻辑地址对应的物理地址,并确定通道和物理地址。
随后,地址转译单元62指定已被确定的通道和物理地址,并通过CH分配单元63而将请求读出数据的命令传送到对应的NAND控制单元66。相比而言,在从主机接口单元60接收的命令是写命令的情况下,地址转译单元62将该写命令传送到CH分配单元63,这将在稍后解释。
响应于从稍后解释的压缩候选检测单元64传送的且然后存储在稍后解释的压缩读队列68中的压缩读命令,地址转译单元62通过参照正向查找表而将请求读出在具有由压缩读命令指定的物理地址的有效页中的数据(有效数据)的命令传送到与这样的通道对应的NAND控制单元66,包括包含该有效数据的物理块的NAND 58被连接到该通道。通过NAND控制单元66从NAND 58读出该有效数据,并通过缓冲器控制单元61而将该有效数据存储到数据缓冲器67中。地址转译单元62将请求写入有效数据的命令(称为压缩写命令)传送到CH分配单元63。
CH分配单元63接收来自地址转译单元62的命令,并且在该命令为写命令的情况下,确定写目标数据将被写入的通道。例如,CH分配单元63在通道中以每4千字节循环的方式进行写入操作,并确定根据循环的顺序将数据写入的通道。之后,CH分配单元63将请求写入写目标数据的命令传送到与所确定的通道对应的NAND控制单元66。相比而言,在通过来自地址转译单元62的命令请求读出具有指定的通道和指定的物理地址的数据的情况下,请求读出具有指定的物理地址的数据的命令被传送到与所指派的通道对应的NAND控制单元66。作为另一实例,在从地址转译单元62接收到的命令为压缩写命令的情况下,CH分配单元63确定根据循环的顺序数据将被写入的通道并将请求写入有效数据的命令传送到与所确定的通道对应的NAND控制单元66。
NAND控制单元66接收来自CH分配单元63的命令并根据所接收到的命令对对应的NAND 58进行存取。更具体地,在该命令请求写入数据的情况下,NAND控制单元66通过缓冲器控制单元61而获得写目标数据并将该写目标数据写入NAND 58中。在写入时,NAND控制单元66将写入指针设定为逐页地依次指向对应的NAND 58中的擦除的块中的未写入的页中的写存储位置,将写目标数据写入由写入指针指向的存储位置处的页中,然后将写入指针更新为指向作为经历了写入的页之后的下一页的未写入的页的存储位置。因此,写入指针的值改变以依次指向下一写存储位置。例如,在每个通道中由15位的物理地址识别出块且该块包括64个页(6位)的情况下,写入指针具有总共15+6=21位。
这里,下面将解释写目标数据的数据结构。NAND控制单元66向写目标数据添加用于检测和校正写目标数据自身的错误的错误校正码(称为页ECC)和由写命令指定的逻辑地址。假设该页ECC包括用于检测数据中的错误的诸如循环冗余校验(CRC)码和用于校正数据错误的错误校正码(ECC)的代码。图9是页ECC被添加到的写目标数据的实例的图。在如上所述确定的通道的NAND 58中,NAND控制单元66将这样的页ECC和逻辑地址被添加到的写目标数据写入由如上所述确定的每个通道中的NAND 58中的写入指针指向的页。写目标数据具有以页为单位的尺寸。假设NAND 58的页尺寸等于包括写目标数据以及添加的页ECC和逻辑地址的整个数据的尺寸。基于由写命令指定的逻辑地址,通过每个NAND控制单元66而计算每个分割的数据段的逻辑地址。
接下来,将解释通过循环处理将作为写目标数据的多个分割的数据段向通道CH0到CH3的写入。图10是用于解释通过循环处理进行的写入的图。为了图的简化,没有示出添加到分割的数据段的逻辑地址。如图10所示,以从通道CH0到通道CH3的循环方式依次写入分割的数据段,以便在时刻T1将第一分割的数据段D1写入通道CH0且在时刻T2将第二分割的数据段D2写入通道CH1。在进一步写入分割的数据段时,以从通道CH0开始循环的方式依次写入数据。通过以循环的方式写入分割的数据段,均匀地进行对通道的写入操作。在图10示出的实例中,示出了随着时间的流逝以通道的顺序写入数据的情况。然后,本发明不限于该实例。数据可被同事写入两个或更多个通道。
返回到对图3的描述,在从地址转译单元62接收到的命令请求读出具有指定的物理地址的有效页中的数据(有效数据)的情况下,NAND控制单元66通过使用该物理地址而读出在与NAND 58中的该物理地址对应的页中写入的数据,并将读出的数据传送到缓冲器控制单元61,以便将数据存储到数据缓冲器67中。如果在从NAND 58读出的数据中存在错误,NAND控制单元66检测错误并校正该错误。稍后将解释检测和校正数据中的错误的方法。在从CH分配单元63接收到的命令请求写入数据的情况下,NAND控制单元66通过缓冲器控制单元61检索写目标数据并将有效数据写入NAND 58。
压缩候选检测单元64参照包括在管理表69中的位向量表,确定将作为压缩候选的逻辑块,并将指定该块中的有效页的物理地址和请求读出该有效页的命令(称为压缩读命令)传送到压缩读队列68。
数据缓冲器67是用于在其中存储写目标数据或读出的数据的缓冲器。压缩读队列68是在其中存储用于压缩的请求读出有效页的命令的先进先出缓冲器。
缓冲器控制单元61将数据缓冲器67作为多个区域进行管理并管理在其中存储与命令对应的数据的区域。更具体地,缓冲器控制单元61在数据缓冲器67中存储响应于写命令而从主机接口单元60传送的写目标数据,并将该写目标数据传送到与由CH分配单元63确定要写入的通道对应的NAND控制单元66。然后通过NAND控制单元66将写目标数据写入NAND58中。缓冲器控制单元61响应于读出命令而将从NAND控制单元66传送的数据存储到在数据缓冲器67中的指定区域中,然后将该数据传送到主机接口单元60。通过主机接口单元60而将该数据传送到主机。响应于压缩读命令,缓冲器控制单元61通过对应的NAND控制单元66而将从NAND 58读出的数据存储到数据缓冲器67中。
在从主机接收到请求写入具有指定的逻辑地址的数据的命令(写命令)的情况下,管理表更新单元65参照正向查找表,还更新位向量表,并且进一步更新正向查找表。更具体地,管理表更新单元65首先参照正向查找表以查找与对应于该逻辑地址的物理地址相关联的数据(即,与该逻辑地址相关联的数据)被写入哪个块中的哪个页中。在该情况下,管理表更新单元65通过使用该逻辑地址的上位的18个位而参照正向查找表中的第一表中的表目,并在使用与该逻辑地址的上位的18个位相关联的指定信息的同时确定逻辑地址与物理地址之间的关联被存储在其中存储第二表的存储区中还是被存储在其中存储第三表的存储区中。在与该逻辑地址的上位的18个位对应的指定信息指示值“FFFFFFFFF”的情况下,换言之,在逻辑地址与物理地址之间的关联未被存储在其中存储第二表的存储区和其中存储第三表的存储区中的任一个中的情况下,其意味着直到此时为止该逻辑地址的数据尚未被写入。注意,如果该指定信息在读取时指示值“FFFFFFFFF”,则其为错误。在该情况下,管理表更新单元65将第一表更新为使第一表包括指示与指定在其中存储第二表的存储区的指定信息相关联的逻辑地址的上位的18个位的信息,该第二表存储与该逻辑地址对应的物理地址。此外,管理表更新单元65将与该逻辑地址对应的表目记录到在其中存储第二表的存储区中。换言之,管理表更新单元65使用该逻辑地址的从第三位到第十位的中位的8个位作为偏移,并且在其中存储第二表的存储区中写入在与该偏移对应的存储位置(地址)中的4字节中的与该逻辑地址对应的物理地址,以将该表目记录到其中存储第二表的存储区中。此外,管理表更新单元65将与在位向量表中写目标数据将被写入的页对应的位向量的值设定为“1”。通过写入指针指向写目标数据将被写入的页,即,物理地址。之后,管理表更新单元65使包括该页的物理块中的有效页的数目的计数器的值增加1。
相比而言,对于逻辑地址的上位的18个位,在第一表中的表目中的指定信息指示逻辑地址与物理地址之间的关联被示于第二和第三表之一中时,这意味着数据先前已被写入到与该数据的逻辑地址对应的存储区(1兆字节)中。在逻辑地址与物理地址之间的关联被示于第二表中的情况下,管理表更新单元65不更新第一表,而是将写目标数据将被写入的物理地址记录在第二表中的与该逻辑地址对应的表目中。在逻辑地址与物理地址之间的关联被示于第三表中的情况下,管理表更新单元65将在其中存储第三表的存储区内的示出了与该逻辑地址对应的物理地址的表目记录到其中存储第二表的存储区中,以将存储在存储区中的每个表目从第三表移动到第二表。此外,管理表更新单元65更新具有写目标的物理地址的第二表中的对应表目。之后,管理表更新单元65通过在第一表内使与在表目中示出的每个物理地址对应的逻辑地址的上位的18个位与这样的指定信息相关联而更新第一表,该指示信息指示了作为移动目的在其中存储该物理地址的第二表内的存储位置。通过写入指针指示写目标数据被写入的页,即,物理地址。
在逻辑地址与物理地址之间的关联被示于第二和第三表之一中的情况下,由于用于本次写入的写命令,需要使以前写入的数据无效。在该情况下,管理表更新单元65将与在所参照的正向查找表的表目中存储的用于由写指令指定的逻辑地址的物理地址处的页相对应的位向量的值设定为“0”。此外,管理表更新单元65将包括该页的物理块中的有效页的数目的计数器的值减1。此外,管理表更新单元65将与写目标数据要被写入的页对应的位向量的值设定为“1”,并将与包括该页的物理页对应的有效页的数目的计数器的值加1。通过每次进行数据写入时都进行更新,位向量表和有效页的数目的计数器总是指示有效页的存储位置及有效页的数目。
由于如上所述第二表用作高速缓冲存储器,高速缓冲存储区被限制为如同通常使用的高速缓冲存储器,因此需要将高速缓冲存储区的容量保持在预定量内。当高速缓冲存储区超过了预定水平时,需要挤出去部分表目并保留新区域。通过管理表更新单元65进行将表目从第二表挤出到第三表中。用于选择将被挤出的表目的方法可以是公知用于常规高速缓冲存储器的最少最近使用(LRU)算法或选择并挤出最早的表目的先进先出(FIFO)算法。根据每个NAND 58的写入尺寸进行将表目从第二表向第三表中的挤出(写入)。例如,在将由64千字节(其比4千字节页尺寸大16倍)构成的数据用作进行挤出的单位时,由于第二表中的每个表目由1千字节构成,因此一次挤出64个表目。通过使用日志结构方法以页为单位将挤出的数据记录到其中存储第三表的存储区中。在该实例中,一次写入16个页。当已选择了要从第二表中挤出的候选表目时,管理表更新单元65使作为挤出候选的表目与将被写入第三表中的已存储在64个表目中的记录内容合并,并将合并的结果写入第三表的新存储区中。基于1千字节单位进行合并处理。在该情况下,管理表更新单元65将第一表中的对应表目更新为使第一表中的这样的表目与这样的指定信息相关联,该表目示出已与由从第二表中挤出的表目指示的物理地址相关联的逻辑地址的上位的18个位,该指定信息指定在其中存储第三表的存储区内的其中存储与逻辑地址对应的物理地址的存储区。希望第三表中的表目被存储在两个或更多个NAND 58中,而不是被存储在一个NAND 58中。换言之,虽然在一次挤出时管理表更新单元65将数据写入NAND 58中的一个中的64千字节存储区中,但以循环的方式对已被确定为写目标NAND 58的NAND 58以4千字节为单位进行写入。利用该设置,对于数据向第三表中的写入,可以确保对多个NAND 58均匀地进行写入操作。
接下来,将解释通过根据本实施例的半导体存储器控制装置50进行的处理的过程。首先,将参考图11解释响应于来自主机的写命令而通过半导体存储器控制装置50将写目标数据写入NAND 58中的过程。在开始写入之前,半导体存储器控制装置50预先为每个通道保留作为空闲块的物理块。此外,半导体存储器控制装置50将每个通道的写入指针设定为指向通道首部处的物理块的第一页。当从主机接收到请求写入具有指定逻辑地址的数据的写命令时(步骤S1),半导体存储器控制装置50确定由写命令请求写入的数据的尺寸是否等于或小于页尺寸(步骤S2)。在数据的尺寸等于或小于页尺寸的情况下(步骤S2中的是),半导体存储器控制装置50将该数据(写目标数据)存储在数据缓冲器67中(步骤S4)。相反地,在由写命令请求写入的数据的尺寸大于页尺寸的情况下(步骤S2中的否),半导体存储器控制装置50以页为单位将数据分割成段(步骤S3),并将分割的数据段(写目标数据)记录到数据缓冲器67中(步骤S4)。
随后,半导体存储器控制装置50基于由该写命令指定的逻辑地址而参照正向查找表,并且在与写目标数据的逻辑地址对应的物理地址已被记录于其中时,将该物理地址作为旧物理地址而存储在例如SRAM 54中(步骤S5)以更新位向量表。此外,半导体存储器控制装置50确定写目标数据将以循环方式写入的通道(步骤S6),并将具有向其添加的页ECC和逻辑地址的写目标数据写入所确定的通道的NAND 58中的由写入指针指向的页(步骤S7)。之后,半导体存储器控制装置50将每个通道的写入指针更新为指向写目标数据被写入的页之后的下一未写入的页(步骤S8)。
图12为示例随时间的流逝作为通道CH0中的写目标数据段而写入分割的数据段的状态的图。首先,在时刻t0,保留空闲块。在时刻t1,将第一分割的数据D1写入在时刻t0保留的空闲块中的第一页中(在首部或末端处)。在时刻t2,以循环的方式将新确定的分割的数据D6写入通道CH0中的第二页中。类似地,在时刻t3,将分割的数据D11写入第三页中。在时刻t4,将分割的数据D16写入第四页中。以这样的方式,与逻辑地址无关地,按照物理块中的升序来确定分割的数据段将被写入的页。此外,每次进行写入时都将写入指针设定为指向按升序数据被写入的页。在本实施例中,以循环的方式均匀地进行对通道的写入操作,从而每个通道中的由写入指针指向的页号码之间的差异最大为1,如图7所示。此外,当逻辑块中的最后一页完成了写入时,在各通道中由写入指针指向的页号码相同。
如上所述,无论由来自主机的写命令指定的逻辑地址的值如何,以预定顺序分配写入写目标数据的页的物理地址,并且数据被写入该页中。
返回到对图11的描述,当写入写目标数据时,半导体存储器控制装置50将写目标数据的逻辑地址与写目标数据被写入的页的物理地址之间的关联写入和记录到正向查找表中(步骤S9)。上面已经解释了用于记录逻辑地址和物理地址的具体方法。在写目标数据是分割的数据段的情况下,由于分割的数据段是以页为单位的,半导体存储器控制装置50计算通过顺序地将页尺寸添加到指定的逻辑地址而获得的值作为分割的数据段的逻辑地址。然后,半导体存储器控制装置50将逻辑地址、通道的通道号、物理块的物理块号、以及在本次写入中写目标数据被写入的页的页号写入和记录到正向查找表中。在上述实例中,页号由更新前的写入指针的下位的六个位指示,从而可将该值用作页号。每次进行写目标数据的写入时,半导体存储器控制装置50更新正向查找表。
此外,半导体存储器控制装置50参照位向量表,将与在步骤S5中存储在SRAM 54中的旧物理地址的页对应的位向量的值设定为“0”,并将包括该页的物理块的有效页的数目的计数器的值减“1”(步骤S10)。旧物理地址指示与在步骤S1中接收到的写命令指定的逻辑地址相关联的先前被写入数据的页。由于该原因,将位向量的值设定为“0”,并将包括该页的物理块中的有效页的数目的计数器的值减“1”。此外,半导体存储器控制装置50将与在步骤S7中写目标数据被写入的页对应的位向量的值设定为“1”,并将包括该页的物理块的有效页的数目的计数器的值加“1”(步骤S11)。以该方式,半导体存储器控制装置50在写目标数据被写入时更新位向量表。
此外,当在所有通道(CH0到CH3)中写入指针达到块的末端且数据变为不能被重新写入时,半导体存储器控制装置50为每个新通道保留空闲块。将分割的数据段写入新空闲块同样如上所述。
接下来,将参考图13解释根据来自主机的读命令由半导体存储器控制装置50从NAND 58读出数据的过程。当从主机接收到请求读出具有指定的逻辑地址的数据的读命令时(步骤S20),半导体存储器控制装置50确定该读命令请求读出的数据的尺寸是否等于或小于页尺寸(步骤S21)。在数据的尺寸等于或小于页尺寸情况下(步骤S21中的是),半导体存储器控制装置50通过使用由读命令指定的逻辑地址而参照正向查找表并确定将从其读出的数据的通道、物理块和页(步骤S23)。上面已经解释了确定通道、物理块和页的具体方法。之后,半导体存储器控制装置50从与所确定的通道对应的NAND 58读出数据(步骤S24)。
相反地,在由读命令请求读出的数据的尺寸大于页尺寸的情况下(步骤S21中的否),半导体存储器控制装置50分割读出,以便将被读出的数据变为以页为单位的数据段。即,半导体存储器控制装置50通过使用由读命令指定的逻辑地址而计算将被读出的数据段的每个逻辑地址(步骤S22)。此外,半导体存储器控制装置50通过使用所计算的逻辑地址的每一个而参照正向查找表,并确定将从其读出的数据的通道、物理块和页中的每一者(步骤S23)。随后,半导体存储器控制装置50从与所确定的通道对应的NAND 58读出数据段(步骤S24)。
通过添加到数据的页ECC来确保在步骤S24读出的数据的有效性。换言之,半导体存储器控制装置50通过使用添加到数据的页ECC来检测数据中的错误并可对其进行校正。然而,在其中存在不能用页ECC校正的错误的情况下,存在在NAND 58中出现故障且在数据中出现异常的可能性。在这种情况下(步骤S25中的否),半导体存储器控制装置50将指示出在NAND 58中出现故障的通知信息传送到主机(步骤S28)。
在步骤S24中读出的数据中不存在错误的情况下(步骤S25中的是),半导体存储器控制装置50将数据存储在数据缓冲器67中的指定区域中,并前进到步骤S27。即使在步骤S24中读出的数据中存在错误的情况下,半导体存储器控制装置50利用页ECC校正数据(步骤S26),将校正后的数据存储在数据缓冲器67中的指定区域中,并前进到步骤S27。在步骤S27中,半导体存储器控制装置50将存储在数据缓冲器67中的指定区域中的数据传送到主机。
当由在步骤S20中接收到的读命令请求读出多个数据段时,半导体存储器控制装置50可根据由该命令指定的逻辑地址而从彼此不同的通道的物理块读出数据。由于如上所述可以在读取数据时独立地对各通道进行存取,因此可以响应于来自主机的请求而读出数据,并以高响应度将该数据传送到主机。
接下来,将参考图14解释将在要进行压缩的物理块中写入的有效数据移动到空闲块的过程。半导体存储器控制装置50将“M=4096”设定为有效页数目的最大值,并将“K=0”设定为在位向量表中每个物理块的表目的索引(步骤S40)。半导体存储器控制装置50通过参照位向量表逐一地对每个物理块依次读出有效页的数目的计数器的值(步骤S41),并确定计数器的值是否小于M(步骤S42)。在有效页的数目的计数器的值等于或大于M的情况下(步骤S42中的否),装置前进到步骤S44。在有效页的数目的计数器的值小于M的情况下(步骤S42中的是),半导体存储器控制装置50用计数器的值替代M的值并将读出有效页的数目的计数器的值所利用的表目的索引的值设定为K(步骤S43),并前进到步骤S44。
在步骤S44中,半导体存储器控制装置50确定是否已对位向量表中的所有物理块读出了有效页的数目的计数器的值。在尚未对所有物理块读出有效页的数目的计数器的值的情况下(步骤S44中的否),半导体存储器控制装置50将K的值加1(步骤S48),并返回到步骤S41。在步骤S41中,半导体存储器控制装置50在位向量表中按照K的顺序读出尚未被读出的物理块中的有效页的数目的计数器的值。相反地,在已经对所有物理块读出了有效页的数目的计数器的值的情况下(步骤S44中的是),半导体存储器控制装置50将K的值设定为作为将进行压缩的候选的物理块的索引。之后,半导体存储器控制装置50对由索引K指示的每个物理块确定在位向量表中其位向量指示“1”的页(有效页)中存储的数据(有效数据),并将所有的有效数据读出到数据缓冲器67。此外,半导体存储器控制装置50提取添加到有效数据的逻辑地址(步骤S45)。
随后,半导体存储器控制装置50以与响应于如上所述的写命令进行的数据写入类似的方式写入在步骤S45中读出的每个有效数据段(步骤S46)。换言之,半导体存储器控制装置50确定以循环方式从通道CH0到CH3中将有效数据写入的通道,并将该有效数据写入由该通道中的NAND 58中的擦除的块中的写入指针指示的页。之后,半导体存储器控制装置50将写入指针更新为指向在该有效数据被写入的页之后的下一未被写入的页。半导体存储器控制装置50将添加到写入的有效数据的逻辑地址与该有效数据被写入的页的物理地址之间的关联写入正向查找表中以更新该表。更新正向查找表的方法如上所述。在压缩中,通过以该方式更新正向查找表,可以总是适当地保持数据的逻辑地址与物理地址之间的关联。此外,由于逻辑地址被添加到数据,因此可以在进行压缩时容易地更新逻辑地址与数据被写入的物理地址之间的关联。
当被加载到数据缓冲器67中的所有有效页中的数据从数据缓冲器67的读出完成(步骤S47中的是)并且向NAND 58的写入完成时,半导体存储器控制装置50对已被选择为进行压缩的候选的通道CH0到CH3中的物理块进行擦除操作,并结束压缩处理。
如果不存在有效页,即,如果有效页的数目的计数器的值为0(在步骤S42),半导体存储器控制装置50进行擦除操作而不进行读操作。
进行压缩处理的时机可以是在接收到数据写请求时通过校验获得的空闲块的数目变为等于或小于预定数目时的时机。
如上所述,通过组合地使用诸如半导体存储器元件的非易失性存储器和具有小容量且相当便宜的诸如SRAM的易失性存储器,来配置示出由主机指定的逻辑地址与在半导体存储器元件中用于存储数据段的物理地址之间的关联的正向查找表。结果,可以将半导体存储器控制装置50配置为除了SRAM之外不包括作为易失性存储器的DRAM。因此可以以低成本配置半导体存储器控制装置50。此外,由于作为正向查找表的一部分而存储在SRAM 54中的第二表被用作作为正向查找表的一部分而存储在NAND58中的第三表的高速缓冲存储器,因此可以抑制对NAND 58进行的写入操作的次数,同时可以将所写入的数据的逻辑地址与物理地址之间的关联完全存储到NAND 58中。因此,可以抑制对半导体存储器系统的寿命引起的负面影响。
在实施例中,通过提供位向量表,可以高速地有效进行压缩。为了进行压缩,半导体存储器控制装置50必须识别在块中有效数据被写入的有效页,获得与该有效页对应的逻辑地址,移动有效数据,并进行对使逻辑地址与数据被移动到的页的物理地址关联的更新处理。可以通过正向查找表进行有效页的识别和物理地址的更新。然而,正向查找表是通过被优化为使用逻辑地址作为索引的搜索而构成的。由于该原因,在进行压缩时通过正向查找表进行有效页的识别和物理地址的更新会使得搜索时间的惩罚增加。
将经历压缩的逻辑块希望地具有小的有效页数目。其原因在于,通过利用压缩移动有效页,获得很多空闲块。为了选择具有小数目的有效页的逻辑块,可以选择包含具有小数目的“1”的值的位向量的表目。为了对具有“1”的值的位向量的数目进行计数,例如,可以提供群体计算(populationcomputation)(换言之,计数具有“1”的值的位的数目)。然而,当表目的位宽大(在实例中为320位)时,难以在一个循环中计算位的数目。由于该原因,在实施例中,半导体存储器控制装置50根据位向量的值的变化而更新图5所示的有效页的数目的计数器的值。在检索将经历压缩的逻辑块时,通过在位向量表中检索具有有效页的计数器的最小数目的表目,获得逻辑块。可以通过一次读出与所有逻辑块有关的表目的有效页的数目的计数器的每个值而检索其中有效页的数目的计数器的值最小的表目。因此,在实施例的半导体存储器控制装置50中,通过参照位向量表,可以容易地检索出具有小数目的有效页的逻辑块,从而可以高速有效地进行压缩。
本发明不限于上述实施例,而是可被实施为在不脱离本发明的精神的情况下在实现时具有各种修改的要素。此外,可以通过适当地组合在实施例中公开的多种要素来以各种形式实施本发明。例如,可以省略在实施例中描述的部分要素。此外,可以适当地组合不同实施例中的部分要素。
在上述实施例中,半导体存储器控制装置50中执行的各种程序可存储在连接到诸如互联网的网络的计算机上,并可通过网络下载而提供。各种程序可以以可被安装或执行的文件的形式而被记录在诸如高密度盘只读存储器(CD-ROM)、软盘(FD)、高密度可记录盘(CD-R)、数字多功能盘(DVD)等等的计算机可读的计算机介质中且被提供作为计算机程序产品。
在上述实施例中,可以通过硬件实现处理器51的功能的一部分。半导体存储器控制装置50可以具有多个处理器51,并且可以通过多个处理器51实现上述功能。利用这样的配置,可以实现较高的处理速度。
在上述实施例中,将ECC码添加到以页为单位的每个数据来作为页ECC。然而,ECC可被添加到小于页的单位(例如,512字节的扇区的单位)。
在上述实施例中,连接到半导体存储器控制装置50的NAND 58的数目为四个。然而,连接到半导体存储器控制装置50的NAND 58的数目不限于该实例。
在上述实施例中,连接到在半导体存储器控制装置50中包括的存储器控制器53的存储器为SRAM 54。然而,本发明不限于该实例。可以将DRAM或者SRAM和DRAM二者用作存储器。在这种情况下,正向查找表的一部分(第一、第二和第三表中的至少一个)可被存储在DRAM中。
在上述实施例中,通道一对一地与NAND 58对应,本发明不限于此。通道可以一对多地与NAND 58对应,即,多个NAND 58可被分配到一个通道。在该情况下,用于识别各NAND 58得识别号被分配到NAND 58。对于每个通道的每个块,识别号和物理地址被记录在逻辑到物理转译表中。例如,在八个半导体存储器被分配到一个通道的情况下,将总共15个位记录到逻辑到地址转译表中作为每个通道的每个块的识别号和物理地址,这15个位包括用于识别半导体存储器元件的3个位和用于识别在每个半导体存储器元件中包括的4096个块的12个位。
在上述实施例中,解释了其中将位向量用作用于表示数据和页的有效性/无效性的方法的实例;然而,本发明不限于该实例。例如,可接受这样的另一设置,其中,选择特定的块,并且依次选择各页,以便在存在指示所选择的页的逻辑地址的情况下使该页有效,而在不存在指示所选择的页的逻辑地址的情况下将该页确定为无效。为了确定是否存在逻辑地址,使用这样的方法是可接受的,通过该方法,依次对正向查找表进行存取以检查是否指示所选择的页。或者,构造反向查找表是可接受的,该反向查找表用于将物理地址转译为逻辑地址并检查是否存在与物理地址对应的逻辑地址。
在上述实施例中,希望在适当的时间对第三表进行压缩处理。对于第三表的表目,关于指示存储了有效数据的物理地址的表目,在第一表的表目中示出指定了其中存储包括这些物理地址的第三表的存储区的指定信息。相反地,对于第三表的表目,如果在第一表的表目中未示出指定其中存储包括这些物理地址的第三表的存储区的指定信息,则意味着在这些物理地址处存储的数据是无效的,同样地,在第三表中的表目是无效的。在通过使用附加写入方法进行向第三表中的写入处理的情况下,如果无效表目的量增加,则能够实现写入处理的每个NAND 58的容量(即,可写入的容量)变小。由于该原因,通过在适当的时间对第三表进行压缩,可以将第三表所使用的区域保持在特定水平内。当半导体存储器控制装置50对第三表进行压缩并移动有效表目时,半导体存储器控制装置50将第一表更新为使示出指定在移动表目之前的存储区的指定信息的第一表中的表目现在示出指定在移动表目之后的存储区的指定信息。
为了提高压缩效率并使其降低半导体存储器控制装置50的处理速度的影响较小,希望允许第三表所使用的区域大以提高压缩处理的效率。
在上述实施例中,第三表被存储在NAND 58中;然而,本发明不限于该实例。只要第三表被存储在非易失性存储器中即可。
根据上述至少一个实施例的半导体存储器控制装置,半导体存储器控制装置在半导体存储器芯片中写入被请求写入的具有由信息处理设备使用的指定的逻辑地址的主机写数据。所述主机写数据包括预定单位的一个或多个第一数据段。物理地址是指示所述第一数据在所述半导体存储器芯片内的存储位置的信息。第一表被存储在第一存储器中。第二表被存储在第二存储器中。第三表被存储在第三存储器中,所述第三存储器是非易失性存储器并包括各自指示出每段所述第一数据在所述半导体存储器芯片内的存储位置的物理地址。所述第二表是所述第三表的子集并包括各自指示出每段所述第一数据在所述半导体存储器芯片内的存储位置的物理地址。所述第一表包括指定第二表表目的信息或指定第三表表目的信息。所述半导体存储器控制装置包括:接收单元,其被配置为接收所述主机写数据;控制单元,其被配置为将每段所述第一数据写入在所述半导体存储器芯片的存储区内的已从其中擦除了数据的存储区中的没有数据被写入的存储位置中;以及记录单元,其被配置为将所述第一表记录到所述易失性存储器中且将所述第二表记录到所述易失性存储器中,或者将所述第一表记录到所述易失性存储器中且将所述第三表记录到所述非易失性存储器中。因此,可以在抑制成本的同时抑制对半导体存储器芯片进行的写入处理的次数。
虽然已经描述了特定的实施例,但这些实施例仅仅是通过实例给出的,并不旨在限制本发明的范围。实际上,可以以各种其他形式实施本文中描述的新颖实施例;此外,在不脱离本发明的精神的情况下,可以进行在本文中描述的实施例的形式上的各种省略、替代和改变。所附权利要求及其等价物旨在涵盖落入本发明的范围和精神内的这些形式或修改。

Claims (7)

1.一种半导体存储器控制装置,其在半导体存储器芯片中写入被请求写入的具有由信息处理设备使用的指定的逻辑地址的主机写数据,其中
所述主机写数据包括预定单位的一个或多个第一数据的段,
物理地址是指示所述第一数据在所述半导体存储器芯片内的存储位置的信息,
第一表被存储在第一存储器中,
第二表被存储在第二存储器中,
第三表被存储在第三存储器中,所述第三存储器是非易失性存储器并包括各自指示出每段所述第一数据在所述半导体存储器芯片内的存储位置的物理地址,
所述第二表是所述第三表的子集并包括各自指示出每段所述第一数据在所述半导体存储器芯片内的存储位置的物理地址,
所述第一表包括指定第二表表目的信息或指定第三表表目的信息,并且
所述半导体存储器控制装置包括:
接收单元,其被配置为接收所述主机写数据;
控制单元,其被配置为将每段所述第一数据写入在所述半导体存储器芯片的存储区内的已从其中擦除了数据的存储区中的没有数据被写入的存储位置中;以及
记录单元,其被配置为将所述第一表记录到所述第一存储器中且将所述第二表记录到所述第二存储器中,或者将所述第一表记录到所述第一存储器中且将所述第三表记录到所述第三存储器中。
2.根据权利要求1的半导体存储器控制装置,其中当所述控制单元将所述第一数据写入到所述半导体存储器芯片中时,所述记录单元将其物理地址记录到其中存储所述第二表的存储区中,并且,如果满足预定条件,所述记录单元将包括在所述第二表中的物理地址记录到其中存储所述第三表的存储区中。
3.根据权利要求2的半导体存储器控制装置,其中如果满足所述预定条件,则当所述记录单元将包括在所述第二表中的物理地址记录到其中存储所述第三表的存储区中时,所述记录单元使所述物理地址与已被存储在其中存储所述第三表的存储区内的其中记录所述物理地址的第一存储区中的另一物理地址合并,以便将已被合并的物理地址记录到所述第一存储区中。
4.根据权利要求1的半导体存储器控制装置,其中
所述第一表包括第一指定信息或第二指定信息,所述第一指定信息指定在其中存储所述第二表的存储区内的其中存储所述物理地址的每个存储区,所述第二指定信息指定在其中存储所述第三表的存储区内的其中存储所述物理地址的每个存储区,并且
当接收到具有由所述信息处理设备指定的第一逻辑地址的所述主机写数据且所述第一表已包括所述第二指定信息时,所述记录单元将存储在由所述第二指定信息指定的存储区中的物理地址记录到其中存储所述第二表的存储区中,并将指定其中存储所述物理地址的存储区的所述第一指定信息记录到其中存储所述第一表的存储区中。
5.根据权利要求1的半导体存储器控制装置,其中所述记录单元通过将所述物理地址写入到在其中存储所述第三表的存储区内的已从其中擦除了数据的存储区中的没有数据被写入的存储位置中而将所述物理地址记录到其中存储所述第三表的存储区中。
6.根据权利要求5的半导体存储器控制装置,其中所述记录单元通过将第二物理地址写入到在其中存储所述第三表的存储区内的已从其中擦除了数据的新存储区中而进一步进行垃圾收集,所述第二物理地址已被存储在这样的存储区中,该这样的存储区未被与包括在所述第一表中的信息相关联的所述第二指定信息指定。
7.根据权利要求1的半导体存储器控制装置,其中所述第三表被存储在所述半导体存储器芯片中。
CN201110254447.8A 2010-09-22 2011-08-31 半导体存储器控制装置 Active CN102436353B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP212646/2010 2010-09-22
JP2010212646A JP5010723B2 (ja) 2010-09-22 2010-09-22 半導体記憶制御装置

Publications (2)

Publication Number Publication Date
CN102436353A true CN102436353A (zh) 2012-05-02
CN102436353B CN102436353B (zh) 2014-08-13

Family

ID=44719252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110254447.8A Active CN102436353B (zh) 2010-09-22 2011-08-31 半导体存储器控制装置

Country Status (6)

Country Link
US (1) US8612721B2 (zh)
EP (1) EP2434405A1 (zh)
JP (1) JP5010723B2 (zh)
KR (1) KR101336382B1 (zh)
CN (1) CN102436353B (zh)
TW (1) TWI459199B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204775A (zh) * 2014-06-26 2015-12-30 宏碁股份有限公司 电子装置以及数据写入方法
CN111241003A (zh) * 2018-11-29 2020-06-05 美光科技公司 使用数据写入计数器使非易失性存储器的耗损均衡

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5722685B2 (ja) 2011-04-12 2015-05-27 株式会社日立製作所 半導体装置、不揮発性メモリ装置の制御方法
US8806108B2 (en) * 2011-06-07 2014-08-12 Hitachi, Ltd. Semiconductor storage apparatus and method of controlling semiconductor storage apparatus
JP5687648B2 (ja) 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
JP5813589B2 (ja) 2012-07-13 2015-11-17 株式会社東芝 メモリシステムおよびその制御方法
CN103886902B (zh) * 2012-12-19 2017-08-04 比亚迪股份有限公司 一种eeprom存储装置及其数据存储方法
US9189389B2 (en) * 2013-03-11 2015-11-17 Kabushiki Kaisha Toshiba Memory controller and memory system
US10642795B2 (en) * 2013-04-30 2020-05-05 Oracle International Corporation System and method for efficiently duplicating data in a storage system, eliminating the need to read the source data or write the target data
WO2014203316A1 (ja) * 2013-06-17 2014-12-24 富士通株式会社 情報処理装置、制御回路、制御プログラム、及び制御方法
JP2015001908A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
JP5967307B2 (ja) * 2013-06-17 2016-08-10 富士通株式会社 情報処理装置、制御回路、制御プログラム、及び制御方法
US20150261444A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Memory system and information processing device
TWI530787B (zh) 2014-06-05 2016-04-21 宏碁股份有限公司 電子裝置以及資料寫入方法
KR20160075174A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
CN109471812B (zh) * 2015-01-19 2023-09-05 铠侠股份有限公司 存储装置及非易失性存储器的控制方法
US10223001B2 (en) 2015-03-12 2019-03-05 Toshiba Memory Corporation Memory system
JP5889462B2 (ja) * 2015-03-26 2016-03-22 株式会社日立製作所 半導体装置、不揮発性メモリ装置の制御方法
US10459846B2 (en) * 2015-09-10 2019-10-29 Toshiba Memory Corporation Memory system which uses a host memory
US9880778B2 (en) * 2015-11-09 2018-01-30 Google Inc. Memory devices and methods
US10437785B2 (en) * 2016-03-29 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus for maximized dedupable memory
US10684795B2 (en) * 2016-07-25 2020-06-16 Toshiba Memory Corporation Storage device and storage control method
JP2018049672A (ja) * 2016-09-20 2018-03-29 東芝メモリ株式会社 メモリシステムおよびプロセッサシステム
TWI622881B (zh) * 2017-04-25 2018-05-01 Chunghwa Telecom Co Ltd Cache replacement system and method thereof for memory computing cluster
US11733873B2 (en) 2017-12-01 2023-08-22 Micron Technology, Inc. Wear leveling in solid state drives
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
TWI678129B (zh) * 2018-05-25 2019-11-21 香港商艾思科有限公司 發光儲存裝置及發光控制方法
JP2019211861A (ja) * 2018-05-31 2019-12-12 東芝メモリ株式会社 メモリシステム
US11094148B2 (en) 2018-06-18 2021-08-17 Micron Technology, Inc. Downloading system memory data in response to event detection
US10963413B2 (en) * 2018-11-02 2021-03-30 Wipro Limited Method and system for transmitting data using small computer system interface (SCSI)
CN111324307B (zh) * 2020-02-13 2023-02-21 西安微电子技术研究所 一种星载nand flash型固态存储器及分配存储空间的方法
US11507518B2 (en) * 2020-05-08 2022-11-22 Micron Technology, Inc. Logical-to-physical mapping using a flag to indicate whether a mapping entry points to [[for]] sequentially stored data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040186946A1 (en) * 2003-03-19 2004-09-23 Jinaeon Lee Flash file system
CN1596401A (zh) * 2002-10-02 2005-03-16 松下电器产业株式会社 非易失性存储器装置的控制方法
US20090193193A1 (en) * 2008-01-28 2009-07-30 Spansion Llc Translation table coherency mecahanism using cache way and set index write buffers
US20090198902A1 (en) * 2008-02-04 2009-08-06 Apple Inc. Memory mapping techniques

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972338A (en) 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
GB2291990A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
JP4328495B2 (ja) * 2002-05-23 2009-09-09 エルピーダメモリ株式会社 半導体メモリ装置
KR100532456B1 (ko) * 2003-07-30 2005-11-30 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 구비하는반도체 장치
JP2005209058A (ja) * 2004-01-26 2005-08-04 Megawin Technology Co Ltd フラッシュメモリの読み書きの制御方法
JP4615896B2 (ja) * 2004-05-25 2011-01-19 富士通セミコンダクター株式会社 半導体記憶装置および該半導体記憶装置の制御方法
JP4253272B2 (ja) * 2004-05-27 2009-04-08 株式会社東芝 メモリカード、半導体装置、及び半導体メモリの制御方法
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
JP2007095222A (ja) * 2005-09-30 2007-04-12 Eastman Kodak Co 半導体メモリ及びそのメモリコントローラ
JP2009211233A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4909963B2 (ja) * 2008-09-09 2012-04-04 株式会社東芝 統合メモリ管理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1596401A (zh) * 2002-10-02 2005-03-16 松下电器产业株式会社 非易失性存储器装置的控制方法
CN101231618A (zh) * 2002-10-02 2008-07-30 松下电器产业株式会社 非易失性存储器装置的控制方法
US20040186946A1 (en) * 2003-03-19 2004-09-23 Jinaeon Lee Flash file system
US20090193193A1 (en) * 2008-01-28 2009-07-30 Spansion Llc Translation table coherency mecahanism using cache way and set index write buffers
US20090198902A1 (en) * 2008-02-04 2009-08-06 Apple Inc. Memory mapping techniques

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204775A (zh) * 2014-06-26 2015-12-30 宏碁股份有限公司 电子装置以及数据写入方法
CN105204775B (zh) * 2014-06-26 2018-08-07 宏碁股份有限公司 电子装置以及数据写入方法
CN111241003A (zh) * 2018-11-29 2020-06-05 美光科技公司 使用数据写入计数器使非易失性存储器的耗损均衡

Also Published As

Publication number Publication date
JP2012068863A (ja) 2012-04-05
EP2434405A1 (en) 2012-03-28
JP5010723B2 (ja) 2012-08-29
US20120072644A1 (en) 2012-03-22
KR20120031124A (ko) 2012-03-30
US8612721B2 (en) 2013-12-17
TW201214117A (en) 2012-04-01
CN102436353B (zh) 2014-08-13
KR101336382B1 (ko) 2013-12-04
TWI459199B (zh) 2014-11-01

Similar Documents

Publication Publication Date Title
CN102436353B (zh) 半导体存储器控制装置
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
CN111356992B (zh) 用于预测涉及非顺序数据的多个读取命令的系统和方法
KR101014599B1 (ko) 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭
CN102576293B (zh) 固态存储设备和分层存储系统中的数据管理
US8924636B2 (en) Management information generating method, logical block constructing method, and semiconductor memory device
US8793429B1 (en) Solid-state drive with reduced power up time
US9552288B2 (en) Multi-tiered memory with different metadata levels
US8402205B2 (en) Multi-tiered metadata scheme for a data storage array
JP5571691B2 (ja) 記憶装置におけるマッピングアドレステーブルの維持
US8312204B2 (en) System and method for wear leveling in a data storage device
US7761655B2 (en) Storage system and method of preventing deterioration of write performance in storage system
CN102012867B (zh) 资料储存系统
KR102603070B1 (ko) 메모리 시스템, 메모리 시스템에 데이터를 기록하는 방법 및 메모리 시스템으로부터 데이터를 판독하는 방법
CN101124555A (zh) 具有多流更新的非易失性存储器和方法
CN102163179A (zh) 半导体存储器装置
CN103688246A (zh) 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法
US20150310053A1 (en) Method of generating secondary index and apparatus for storing secondary index
CN109710541B (zh) 针对NAND Flash主控芯片Greedy垃圾回收的优化方法
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
CN113419675B (zh) 用于存储器的写操作方法及读操作方法
KR102343246B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20170060234A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US8898423B1 (en) High performance caching architecture for data storage systems
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170728

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: Kaixia Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Japanese businessman Panjaya Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220127

Address after: Tokyo, Japan

Patentee after: Japanese businessman Panjaya Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.