CN112567327A - 非易失性存储装置、主机装置和数据存储系统 - Google Patents

非易失性存储装置、主机装置和数据存储系统 Download PDF

Info

Publication number
CN112567327A
CN112567327A CN201980053898.XA CN201980053898A CN112567327A CN 112567327 A CN112567327 A CN 112567327A CN 201980053898 A CN201980053898 A CN 201980053898A CN 112567327 A CN112567327 A CN 112567327A
Authority
CN
China
Prior art keywords
data
address
candidate
written
addresses
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.)
Pending
Application number
CN201980053898.XA
Other languages
English (en)
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN112567327A publication Critical patent/CN112567327A/zh
Pending legal-status Critical Current

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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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
    • 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/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

根据一个实施例的非易失性存储装置包括存储部分和计算部分。存储部分包括:多个页,每个可以单独写入数据;以及多个块,能够一并删除写入在多个页中的数据。计算部分基于关于存储部分中包括的页的写入状况的信息,计算候选地址,该候选地址是要写入页的数据的逻辑地址的候选。

Description

非易失性存储装置、主机装置和数据存储系统
技术领域
本技术涉及适用于数据记录过程的非易失性存储装置、主机装置和数据存储系统。
背景技术
专利文献1公开了一种用于存储数据的数字系统。在该数字系统中,数据存储在非易失性存储装置中。例如,数据及其逻辑块地址(LBA)从主机提供给控制器。LBA转换为指定存储装置中可用存储区域的物理块地址(PBA)。数据被写入由PBA指定的存储区域。LBA和PBA被存储在存储装置中设置的预定缓冲器中。主机可以例如通过指定LBA(例如,参考专利文献1的第5页的第33段至第6页的第37段、以及图1)来访问写入数据。
引用列表
专利文献
专利文献1:美国专利号6,327,639
发明内容
技术问题
近年来,非易失性存储装置的使用增加,并且需要能够提高数据写速度的技术。
鉴于这样的情况,本技术已经完成以实现提供能够提高数据写速度的非易失性存储装置、主机装置和数据存储系统的目的。
问题的解决方案
为了实现上述目的,根据本技术的实施例,提供了包括存储部分和计算部分的非易失性存储装置。
存储部分包括多个块部分,每个块部分包括可以彼此独立地写入数据的多个页部分,多个块部分都能够一并删除写入在多个页部分中的数据。
计算部分基于关于存储部分中包括的多个页部分的写入状况的信息,计算候选地址,该候选地址是要写入多个页部分的数据的逻辑地址的候选。
在该非易失性存储装置中,多个块部分中的每个包括多个页部分。每个页部分都能够彼此独立地写入数据,并且每个块部分都能够一并删除写入在多个页部分中的数据。根据关于这些页部分的写入状况的信息,计算出将要写入的数据的逻辑地址的候选的候选地址。通过使用这些候选地址,可以提高数据的写入速度。
计算部分可以计算候选地址的范围。
例如,利用这种配置,可以使用连续的候选地址来写入数据。结果,可以提高写入数据的过程的效率。
由计算部分计算的候选地址的范围,可以包括候选地址的多个范围。
利用这种配置,可以根据待写入数据的大小,准备候选地址的范围。例如,可以稳定地写入足够大小的数据。
计算部分可以计算候选地址的范围的首地址。
利用这种配置,可以容易地指定候选地址的范围。结果,可以提高写入数据的过程的效率。
计算部分可以计算可以写入候选地址的范围内的数据大小。
利用该配置,可以指定在使用候选地址的范围时的数据大小。结果,可以稳定地执行写入数据的过程。
关于写入状况的信息可以包括转换表中的信息,该转换表将在多个页部分中写入的数据的逻辑地址转换为多个页部分的物理地址。
利用这种配置,可以容易地计算候选地址。结果,可以充分提高写入数据的过程的效率。
转换表可以包括未指定物理地址的第一地址,作为逻辑地址。
在这种情况下,计算部分可以将第一地址计算为候选地址。
例如,利用该配置,可以将未使用的逻辑地址用作候选地址。结果,可以充分提高数据的写入速度。
计算部分可以计算连续的第一地址作为候选地址。
利用这种配置,可以准备能够执行高速写入的连续的候选地址。结果,可以提高写入速度,并且同时可以提高写入过程的效率。
物理地址可以是指定块部分和页部分的地址。
在这种情况下,计算部分可以计算逻辑地址的第二地址作为候选地址,将逻辑地址转换为指定多个块部分中的同一个的物理地址。
例如,通过根据第二地址写入数据,使写入在多个块部分中的相同部分中的数据无效。利用这种配置,可以提高例如生成空闲空间的处理的效率。
计算部分可以计算连续的第二地址作为候选地址。
利用该配置,写入在多个块部分中的相同部分中的数据共同失效。结果,可以显着提高例如产生空闲空间的过程的效率。
计算部分可以在写入已经添加有候选地址的数据时,计算与写入速度相关的指标。
利用这种配置,可以提高写入数据的过程的效率。结果,可以执行高速写入过程。
计算部分可以根据与候选地址相对应的物理地址的存在/不存在,来计算与写入速度相关的指标。
利用这种配置,可以提高写入数据的过程的效率。结果,可以执行高速写入过程。
非易失性存储装置可以进一步包括
通信部分,与访问该存储部分的主机装置进行数据通信。
在这种情况下,计算部分可以经由通信部分将候选地址通知给主机装置。
利用该配置,主机装置可以使用候选地址来生成例如写入数据。结果,可以充分提高将数据写入存储部分的速度。
通信部分可以从主机装置接收写入数据的数据大小。
在这种情况下,计算部分可以基于接收到的数据大小来计算候选地址的范围。
利用该配置,可以准备与要写入的数据大小相对应的候选地址的范围。结果,可以高速有效地写入数据。
计算部分可以
生成有关候选地址的范围的通知信息,以及
将生成的通知信息通知给主机装置。
利用该配置,例如,主机装置可以基于通知信息适当地生成已经添加有候选地址的写入数据。
通知信息可以包括以下中的至少一项:
候选地址的范围的首地址,
可以在候选地址的范围内写入的数据大小,以及
添加有候选地址的数据被写入时的与写入速度相关的指标。
利用该配置,例如,主机装置可以基于通知信息来预先生成已经添加了候选地址的写入数据。
根据本技术的另一实施例,提供了一种能够访问非易失性存储装置的主机装置,该主机装置包括通信部分和生成部分。
非易失性存储装置包括
存储部分,包括多个块部分,每个块部分包括可以彼此独立地写入数据的多个页部分,多个块部分能够共同地删除写入在多个页部分中的数据,以及
计算部分,基于关于存储部分中包括的多个页部分的写入状况的信息,计算候选地址,该候选地址是要写入多个页部分的数据的逻辑地址的候选。
通信部分执行用于访问非易失性存储装置的存储部分的数据通信。
生成部分
经由通信部分从非易失性存储装置获取候选地址,以及
生成添加有获取的候选地址的写入数据。
根据本技术的又一个实施例,提供了数据存储系统,包括:
非易失性存储装置;以及
能够访问非易失性存储装置的主机装置。
非易失性存储装置包括
存储部分,包括多个块部分,每个块部分包括可以彼此独立地写入数据的多个页部分,多个块部分能够一并删除写入在多个页部分中的数据,以及
计算部分,基于关于存储部分中包括的多个页部分的写入状况的信息,计算候选地址,该地址是要写入多个页部分的数据的逻辑地址的候选。
主机装置包括
通信部分,执行数据通信以访问非易失性存储装置的存储部分,以及
生成部分,其
经由通信部分从非易失性存储装置获取候选地址,以及
生成添加有获取的候选地址的写入数据。
发明的有益效果
如上所述,根据本技术,可以提高数据写入速度。注意,本文公开的优点不必限于上文描述的那些,并且不仅可以获得这些优点,而且可以获得下文描述的优点。
附图说明
图1是示出根据本技术的实施例的数据存储系统的配置示例的示意图。
图2是示出图1所示的数据存储系统的配置示例的框图。
图3是示出非易失性半导体存储器的写入单元和删除单元的示意图。
图4是示出逻辑/物理转换表的示例的示意图。
图5是示出数据读取过程的示例的示意图。
图6是示出数据写入过程的示例的示意图。
图7是示出使用相同的一个块的重写过程的示例的示意图。
图8是示出使用不同的块的重写过程的示例的示意图。
图9是示出垃圾收集过程的示例的示意图。
图10是示出计算候选地址的过程的示例的流程图。
图11是示出第一候选地址的示例的说明性示意图。
图12是示出第二候选地址的示例的说明性示意图。
图13是示出候选列表的示例的表。
图14是示出主机装置的操作的示例的流程图。
具体实施方式
在下文中,参考附图描述根据本技术的实施例。
[数据存储系统的配置]
图1是示出根据本技术的实施例之一的数据存储系统的配置示例的示意图。图2是示出图1所示的数据存储系统100的配置示例的框图。数据存储系统100包括半导体存储装置10和主机装置30。本实施例的半导体存储装置10对应于非易失性存储装置。
在数据存储系统100中,主机装置30访问半导体存储装置10。利用这种配置,执行将数据写入半导体存储装置10和将数据从半导体存储装置10读取。注意,在此,该访问包括半导体存储装置10中的数据(信息)的R/W(读/写)。
因此,对于主机装置30,半导体存储装置10用作用于存储各种类型的数据的外部存储装置(辅助存储装置)。另外,对于半导体存储装置10,主机装置30是对存储的数据进行访问的外部装置。例如,访问半导体存储装置10中存储的数据的任意装置,可以是主机装置30。作为主机装置30的示例,可以涉及PC(个人计算机)、服务器、成像装置(例如数字照相机)、媒体再现装置(例如音乐播放器)、移动终端(例如智能手机和平板电脑)、各种传感器装置等。主机装置30的类型不受限制。
要存储在半导体存储装置10中的数据是要由安装在主机装置30中的算术装置中使用的数字数据(电子数据)。例如,对数据的类型没有限制。例如,诸如语音、图像、视频、数值、文本、文档和应用程序的任意数据,可以存储在半导体存储装置10中。注意,在此,该数据还包括通过划分数据集而生成的分段数据。
如图1所示,半导体存储装置10包括非易失性半导体存储器11、连接部分12和控制器13。非易失性半导体存储器11、连接部分12和控制器13通过布线(未示出)适当地彼此连接。
非易失性半导体存储器11通常是NAND闪存(NAND Flash),其被配置为能够执行数据的写入和读取。可以存储在非易失性半导体存储器11中的数据量(存储容量)等不受特别限制,并且可以适当地设置。
图3是示出非易失性半导体存储器11的写入单元和删除单元的示意图。例如,在非易失性半导体存储器11的基板上,设置有多个单元20(存储器单元)。每个单元20通过保持彼此不同的电压电平,来保持预定量的信息。例如,在保持两个电压电平的SLC(单层单元)格式中,单元20每个都保持1位(0或1)的信息(状态)。在这种情况下,通过将0或1的信息写入每个单元20来记录数字数据。同时,可以通过读出保持在每个单元20中的状态来读取数字数据。例如,对于将信息记录到单元20中的格式没有限制。具体地,可以适当地采用其他格式,例如每个单元20都保持2位的信息的MLC(多层单元)格式、和每个单元20都保持3位的信息的TLC(三层单元)格式。无论采用SLC、MLC、TLC等哪种格式,本技术均适用。
在诸如NAND闪存的非易失性半导体存储器11中,设置数据写入单元中的页21和数据删除单元中的块22。注意,如图3所示,数据写入单元中的每个页21的大小(数据大小)和数据删除单元中的每个块22的大小(数据大小)彼此不同。
每个页21包括多个单元20。在非易失性半导体存储器11中,将数据集中地写入每个页21所包括的多个单元20中。注意,数据没有独立地写入每个单元20。以这种方式,每个页21是可以独立地写入数据的最小的单元(写入单元)。本实施例的页21对应于页部分。注意,在正常配置中,数据以相同的格式记录到包括在一个页21中的每个单元20中。因此,例如,当单元20包括每个单元保持1位的信息,每个单元保持2位的信息,且每个单元保持3位的信息时,这些单元未分配给页21中的相同页,而是分配给了页21中的不同页。
可以适当地设置每个页21中包括的单元20的数量,即,要记录到每个页21中的数据的大小。例如,页21分别被设置为包括512字节(4096位)的数据部分和16字节(128位)的冗余部分。在这种情况下,在数据部分中记录512字节的写入数据等。注意,管理信息等被记录到冗余部分中。当然,每个页21的大小、配置等不限于此,并且可以任意设置。
每个块22包括多个页21。在图3的左侧,示意性地示出包括在一个块22中的多个页21。在非易失性半导体存储器11中,一并删除在一个块22中包括的多个页21(单元20)中写入的数据。注意,写入在每个页21中或每个单元20中的数据没有被独立地删除。以这种方式,每个块22都是可以共同地删除写入在页21中的数据的最小的单元(删除单元)。该实施例的块22对应于块部分。
可以适当地设置每个块22中包括的页21的数量,即,每个块22的数据大小。例如,每个块22包括32个页21。例如,当每个页21的数据部分具有512字节时,每个块的数据大小为大约16KB。当然,每个块22的大小、配置等不限于此,并且可以任意设置。
如图3的右侧所示,非易失性半导体存储器11包括多个块22。更具体地,非易失性半导体存储器11的多个块22中的每个包括多个页21,在每个页中可以独立地写入数据,并且每个块能够一并删除写入在多个页21中的数据。通过适当地删除这些块22,例如,可以重写数据,并可以保证空闲空间。本实施例的非易失性半导体存储器11对应于存储部分。
注意,由于块22是删除单元,所以仅每个块22中的页21中的数据不能被直接重写。具体地,为了执行这样的处理,需要执行例如在块22中临时撤出数据的处理。例如,下面参照图7和图8描述该处理。
再次参考图1,连接部分12是用于建立与主机装置30的连接的连接端子,该连接部分例如根据半导体存储装置10的连接标准而配置。连接部分12例如被配置在半导体存储装置10的封装的外部,并与后面描述的主机装置30的连接部分31进行连接。
连接部分12的具体配置不受限制。例如,可以适当地使用根据各种标准的连接端子,例如记忆棒、SD卡、紧凑型闪存(商标)、USB(通用串行总线)、PCI(外围组件互连)和SATA(串行高级技术附件),作为连接部分12的连接端子。可替代地,例如,可以提供根据其他任意标准的连接端子。
控制器13控制半导体存储装置10(非易失性半导体存储器11)的操作。控制器13具有计算机所需的硬件,例如CPU(中央处理单元)、RAM(随机存取存储器)、ROM(只读存储器)等。为了实现例如根据本技术的信息处理方法,例如,CPU将预先记录在ROM中的预定程序加载到RAM中并执行该程序。
控制器13的具体配置不受限制。例如,可以使用诸如FPGA(现场可编程门阵列)的PLD(可编程逻辑装置),或者诸如ASIC(专用集成电路)的其他装置。
如图2所示,控制器13包括通信处理部分24、表存储部分15、访问处理部分16和地址计算部分17。
通信处理部分14执行用于与主机装置30进行数据通信的通信处理。例如,通信处理部分14被适当地配置为能够根据例如上述连接部分12的标准进行通信处理。具体地,执行通信处理的专用电路等可以用作通信处理部分14。
通信处理部分14经由连接部分12,接收诸如读取命令和写入命令的各种处理命令,例如,以及从主机装置30输出的命令和数据。接收到的命令和接收到的数据被输出到下面描述的访问处理部分16和地址计算部分17。另外,通信处理部分14经由连接部分12将从非易失性半导体存储器11中读取的数据、从地址计算部分17计算的结果等,发送至主机装置30。
以这种方式,在半导体存储装置10中,连接部分12和通信处理部分14用作主机接口18(主机I/F),该主机接口与对非易失性半导体存储器11进行访问的主机装置30进行数据通信。本实施例的主机接口18(连接部分12和通信处理部分14)对应于非易失性存储装置的通信部分。以下,可以将经由连接部分12由通信处理部分14进行的数据通信,称为经由主机接口18进行的数据通信。
表存储部分15存储记录数据写入位置的表(逻辑/物理转换表)。例如,设置在控制器13中的诸如RAM的存储装置用作表存储部分15。注意,表存储部分15的具体配置不受限制。例如,非易失性半导体存储器11等可以用作表存储部分15。
图4是示出逻辑/物理转换表的示例的示意图。该逻辑/物理转换表40是将写入在页21中的数据的逻辑地址41转换成页21的物理地址42的表。例如,通过指定数据的逻辑地址41,参考到实际写入此数据的写入位置(页21的物理地址42)。这样,可以参考到指定的数据。该实施例的逻辑/物理转换表40对应于转换表。
例如,当主机装置30将数据写入非易失性半导体存储器11中时,指示该写入目标数据的写入位置的虚拟地址,被添加到该数据。该虚拟地址是逻辑地址41。通过使用逻辑地址41,主机装置30可以在不参考写入位置(物理地址42)等的情况下处理期望数据。
逻辑地址41例如由主机装置30根据诸如LBA(逻辑块寻址)等的预定方案,适当地添加至写入目标数据(写入数据)。例如,对添加逻辑地址41的方法没有限制,并且可以采用任意方案,只要可以指定虚拟地址即可。
例如,作为逻辑地址41,使用作为序列号的地址值。在图4中,指示逻辑地址41的地址值由十进制数(0、1、2、3,...)表示。在下文中,逻辑地址41的地址值被称为LBA,并且它们的值由十进制数表示。注意,在实际处理中,逻辑地址41可以例如由十六进制数等表示。下文所述的内容适用于任何这些情况。
物理地址42是指示页21的位置的地址。更具体地说,物理地址是指定块22和页21的地址。在图4所示的示例中,一个页21的物理地址42包括块22的编号(块位置)和该块22中一个页21的编号(页位置)。
物理地址42的方案、表示物理地址42的方法等不受限制。例如,可以采用能够在非易失性半导体存储器11中唯一地指定页21的任意方案、任意表示方法等。在下文中,为了与参考符号区分开,块22和页21的位置由带有“#”的编号表示。
如图4所示,逻辑/物理转换表40记录逻辑地址41的列表。逻辑地址41的列表例如是从逻辑地址41的最小值到最大值的列表(序列号)。换句话说,逻辑/物理转换表40准备要由主机装置30等使用的逻辑地址41的列表。
具体地,在图4所示的示例中,对应于具有地址值0(LBA=0)的逻辑地址41,记录了物理地址42“块#10,页#0”。换句话说,逻辑地址41为0的数据被写入第十块22的第零页21中。类似地,分别对应于具有地址值1至5(LBA=1至5)的逻辑地址41,记录有表示页21的位置的物理地址42,在页21中已经写入了具有相应地址值的数据。
注意,在半导体存储装置10中,可以改变数据的各个写入位置(页21)。在这种情况下,在逻辑/物理转换表40中,当页21改变时,数据的相应物理地址42被适当地重写。利用该配置,即使当写入位置改变时,主机装置30等也可以适当地对期望数据进行访问。
另外,逻辑/物理转换表40包括未指定物理地址42的空地址43,作为逻辑地址41。该实施例的空地址43对应于第一地址。例如,在图4中,n至n+2的LBA没有相应记录的物理地址42。空地址43指的是这样的逻辑地址41。在这种情况下,具有n、n+1和n+2的LBA的逻辑地址41的数据,尚未作为参考数据写入非易失性半导体存储器11中。
作为逻辑地址41为空地址43的情况的示例,可以想到最初未写入具有n、n+1和n+2的LBA的数据的情况。具体地,当半导体存储装置10处于初始状态(例如,紧接在格式化之后)时,在这种情况下,写入数据量少,并且逻辑地址41列表中的空地址43的百分比很高。另外,例如,当在写入数据之后删除物理地址42时,该数据可能无效(例如,通过Trim命令)。在这种情况下,添加到无效数据中的逻辑地址41是空地址43。
逻辑/物理转换表40的具体配置不受限制。例如,逻辑/物理转换表40可以被适当地配置,使得可以适当地访问被写入在非易失性半导体存储器11中的数据。
再次参考图2,响应于来自主机装置30的命令,访问处理部分16执行用于访问非易失性半导体存储器11的各种处理。例如,来自主机装置30的命令是数据读取命令、数据写入命令、数据删除命令等。响应于这些命令,访问处理部分16执行诸如从非易失性半导体存储器11中读取数据、将数据写入非易失性半导体存储器11以及删除的处理。
另外,访问处理部分16确保写入数据的空闲空间。例如,访问处理部分16搜索可以在其中新写入数据的区域(例如页21和块22)。或者,重写数据以生成可写区域,从而确保空闲空间(free space)。以这种方式,可以稳定地写入数据。对确保空闲空间的方法没有限制。
注意,在执行这些处理时,访问处理部分16适当地将物理地址42重写在逻辑/物理转换表40中(参照图6)。具体地,例如,当数据被移动到另一页21时,对应于目标数据的逻辑地址41的物理地址42,被重写为目的地页21的另一物理地址42。
地址计算部分17基于关于非易失性半导体存储器11中包括的页21的写入状况的信息,计算将成为要写入页21的数据的逻辑地址41的候选的候选地址。本实施例的地址计算部分17对应于计算部分。
关于写入状况的信息例如是诸如关于在非易失性半导体存储器11中的哪个页21中已经写入哪个数据的信息。换句话说,例如,这也是诸如关于哪个逻辑地址41对应于哪个物理地址42的信息。通过使用参考图4描述的逻辑/物理转换表40,可以容易地获取这样的信息。
在本实施例中,地址计算部分17将逻辑/物理转换表40中的信息,用作关于包括在非易失性半导体存储器11中的页21的写入状况的信息。换句话说,地址计算部分17基于逻辑/物理转换表40中的信息,来计算候选地址。
候选地址例如是要添加到将要写入非易失性半导体存储器11的数据中的逻辑地址41的候选。例如,在主机装置30中,根据预定方案,逻辑地址41被添加到目标写入数据(写入数据)。根据非易失性半导体存储器11中的写入状况,来计算要添加到该写入数据的该逻辑地址41的候选。
具体地,地址计算部分17计算候选地址的范围。如上所述,在本实施例中使用的逻辑地址41是序列号。因此,候选地址的范围是连续的逻辑地址41的范围。候选地址的范围可以例如由首地址(具有最小地址值的逻辑地址41)和该范围的大小来限定。可替代地,例如,最小(头部)地址和最大(尾部)地址可以被计算为候选地址的范围。
在本实施例中,由地址计算部分17计算的候选地址的范围包括候选地址的多个范围。因此,例如,计算逻辑地址41的多个部分列表,每个部分列表包括图4所示的逻辑地址41的列表中的连续的逻辑地址41。注意,以逻辑地址41彼此不重叠的方式,计算候选地址的范围(逻辑地址41的部分列表)。利用该配置,防止了诸如候选地址(即要写入的数据的逻辑地址41)彼此重叠的风险。
另外,地址计算部分17经由主机接口18向主机装置30通知候选地址。例如,在写入数据之前的时刻,计算候选地址,并且将这些地址通知给主机装置30。通过这种配置,在写入数据之前,主机装置30可以根据非易失性半导体存储器11中的写入状况,来选择适当的逻辑地址41(候选地址)。下面详细描述计算候选地址、将信息通知主机装置30等的方法。
主机装置30被配置为能够访问半导体存储装置10。如图2所示,主机装置30包括连接部分31和处理器32。连接部分31是用于建立到半导体存储装置10的连接的连接端子。例如,连接部分31被适当地配置,使得半导体存储装置10的连接部分12可以连接到其上。注意,连接部分31不一定必须设置在主机装置30的主体上,并且例如,可以采用根据各种连接标准的连接适配器,例如读卡器等。
处理器32包括通信处理部分33和数据生成部分34。通信处理部分33执行用于与半导体存储装置10进行数据通信的通信处理。例如,通信处理部分33被适当地配置为能够进行例如根据上述连接部分31的标准的通信处理。
通信处理部分33经由连接部分31,向半导体存储装置10发送诸如读取命令和写入命令、写入数据等的各种处理命令。此外,通信处理部分33经由连接部分31,接收从非易失性半导体存储器11读出的数据、由地址计算部分17计算出的候选地址等。接收结果适当地输出到例如主机装置30的处理单元(未示出)和数据生成部分34。
以这种方式,在半导体存储装置10中,连接部分31和通信处理部分33用作进行访问非易失性半导体存储器11的数据通信的外部接口35(外部I/F)。本实施例的外部接口35(连接部分31和通信处理部分33)对应于主机装置的通信部分。在下文中,由通信处理部分33经由连接部分31进行的数据通信,被称为经由外部接口35进行的数据通信。
数据生成部分34生成要写入半导体存储装置10中的写入数据。具体而言,根据预定方案(例如,LBA方案等),用于将目标写入数据文件写入非易失性半导体存储器11的逻辑地址41,被添加到该数据文件中。添加有逻辑地址41的该数据文件是写入数据。
在本实施例中,数据生成部分34经由外部接口35,从半导体存储装置10获取候选地址,并生成已添加有获取的候选地址的写入数据。本实施例的数据生成部分34相当于生成部分。
例如,数据生成部分34将请求候选地址的请求命令(诸如写入通知命令)发送到半导体存储装置10。例如,在半导体存储装置10中,地址计算部分17响应于请求命令,计算候选地址的多个范围,并将这些范围通知给主机装置30。
数据生成部分34从候选地址的所有范围中,选择包括实际执行写入的逻辑地址41的范围,并使用所选择的逻辑地址41(候选地址)来生成写入数据。所生成的写入数据经由外部接口35被发送至半导体存储装置10,然后被写入非易失性半导体存储器11中。
以这种方式,在主机装置30中,使用由半导体存储装置10指定的逻辑地址41(候选地址)来生成写入数据。此外,将已经添加有候选地址的数据写入半导体存储装置10(非易失性半导体存储器11)。这样,可以根据写入状况执行数据写入。
[数据读取过程和数据写入过程]
现在,详细描述半导体存储装置10的访问处理部分16的数据读取过程、数据写入过程等。
图5是示出数据读取过程的示例的示意图。在图5中,从主机装置30输出用于读取数据的命令36(读取命令)。访问处理部分16经由主机接口18接收该读取命令,并执行读出已经写入非易失性半导体存储器11中的数据的过程(页21)。
在图5所示的示例中,通过读取命令(读取(LBA=2))发出读出LBA为2的数据请求。访问处理部分16对于页21的物理地址42,搜索逻辑/物理转换表40,在页21中已写入LBA为2的数据(块#20,页#10)。换句话说,响应于来自主机装置30的数据读取命令,访问处理部分16使用逻辑/物理转换表,将LBA为2转换为非易失性半导体存储器11中的已记录有效数据的位置。
另外,访问处理部分16访问第二十块22中的第十页21,并读出写入在该页21中的数据。所读出的数据经由主机接口18发送到主机装置30。以这种方式,主机装置30可以获取LBA为2的数据。
图6是示出数据写入过程的示例的示意图。在图6中,从主机装置30输出用于写入数据的另一命令36(写入命令)。访问处理部分16经由主机接口18接收写入命令和写入数据,并执行将接收到的写入数据写入非易失性半导体存储器11的过程(页21)。
在图6所示的示例中,通过写入命令(写入(LBA=2))发出写入LBA为2的数据的请求。注意,在非易失性半导体存储器11中,具有地址值2的逻辑地址41处的另一数据(LBA为2的数据)已经被写入第二十块22中的第十页21中(见图5)。
访问处理部分16将例如与写入命令一起接收的写入数据写入到预先确保的空闲空间中。在图6中,所接收的写入数据对应于一个页21,并且被写入在第二十一块22中的第二十页21。
另外,访问处理部分16访问逻辑/物理转换表40,并且将已经添加到写入数据中的逻辑地址(LBA=2)的物理地址42更新为已经新写入了写入数据(块#21,页#20)的页21的物理地址42。换句话说,响应于来自主机装置30的数据写入命令,访问处理部分16将数据写入空闲空间,并更新包括命令所指定的逻辑地址41的逻辑/物理转换表40,从而逻辑/物理转换表40包括新的写入位置。
通过这种配置,示出写入数据的旧逻辑地址41(LBA=2)的写入位置的表消失了。因此,例如,当下次加载LBA为2的数据时,加载在更新的物理地址42(块#21,页#20)处写入的新数据。
另外,由于关于该数据的逻辑地址41的信息已经丢失,因此未加载写入在更新之前的物理地址的旧数据(块#20,页#10)。换句话说,在旧的写入位置(更新前的物理地址42)处写入的数据是无效数据。在图6中,无效页21(块#20,页#10)被示意性地示出为灰色区域。
以这种方式,逻辑/物理转换表40也是示出将由非易失性半导体存储器11中的逻辑地址41(可访问数据)指定的有效数据的位置的表。从另一个角度看,当数据的物理地址42没有记录在逻辑/物理转换表40中时,该数据是不可访问的无效数据。
注意,主机装置30不一定需要逻辑/物理转换表40中的所有有效数据。例如,逻辑/物理转换表40中的有效数据包括对于主机装置30不必要的数据。在半导体存储装置10中,即使对于主机装置30不必要的数据也仍然被存储为有效数据,直到主机装置30发出指令为止。因此,有效数据还是在主机装置30可访问该数据的状态下由半导体存储装置10保持的数据。
图7是示出使用相同的块22的重写过程的示例的示意图。在图7所示的重写过程中,更新已写入在某一块22(页21)中的数据,并将数据新写入到同一块22(页21)中。
如上所述,在诸如NAND闪存的非易失性半导体存储器11中,以块22为单元删除数据。因此,不执行诸如仅在块22中的页21中重写数据的处理。
如图7的左侧所示,在包括重写目标页21(图7中的阴影页21)的重写目标块22a中,不重写的页21的数据例如被临时存放到控制器13的RAM中或其他块22中。例如,通过读出并写入另一个存储区域(图7中的RAM)来备份不被重写的页21的数据。
在将要重写的页21的数据排空之后,如图7的中央所示,删除了重写目标块22a中的所有数据。利用该配置,重写目标块22a进入数据可写入状态。如图7的右侧所示,被存放到另一个存储区域(例如RAM)的数据被读出并写入到重写目标块22a中的原始写入位置(页21)中。此时,新数据被写入重写目标页21。
以这种方式,在图7所示的重写过程中,将不被重写的数据排空,并且将排空的数据和重写目标数据一起写。通过这种技术,排空和重写数据所需的时间周期被延长。因此,可以使主机装置30难以以稳定的速度执行R/W。
图8是示出使用不同的块22的重写过程的示例的示意图。在图8所示的重写过程中,更新已写入某个块22(页21)中的数据,并且数据被新写入到另一个块22中(页21)。
在图8的右侧,示意性地示出了重写目标块22a(块#15)、包括空闲空间的可写入块22b(块#24)以及重写之前的逻辑/物理转换表40。在图8中,写入在块#15的页#1中LBA为5的数据和写入在块#15的页#5中写的LBA为4的数据被重写。
例如,主机装置30输出重写LBA为4和5的数据的命令。在这种情况下,访问处理部分16搜索包括可写入页21的块22b(块#24),并且确保两个页21的空闲空间。注意,取决于要重写的数据的大小,或者取决于已经搜索的块22的写入状况,可以在多个块22中分别确保空闲空间。
如图8的右侧所示,通过访问处理部分16,将从主机装置30接收的新数据(LBA为4和5的数据)写入可写入块22b(块#24)。另外,在与重写目标数据的逻辑地址41相对应的在逻辑/物理转换表40中存储的物理地址42,被重写。
例如,在图8中,将LBA为4的物理地址42,即(块#15,页#5)重写为(块#24,页#0)。另外,将LBA为4的物理地址42即(#15块,第1页)重写为(块#24,页#1)。结果,写入旧物理地址42的旧数据变为无效数据。
这样,在使用非易失性半导体存储器11的半导体存储装置10中,在很多情况下,在重写时,将数据写入适当的空闲空间,并且保持逻辑地址41的各个写入位置的逻辑/物理转换表40被重写,并且原始数据无效。通过这种方法,如果存在空闲空间,则可以在基本上不降低性能的情况下重写数据。
同时,当重复图8所示的过程时,可以想到已写入无效数据(无效区域)的页21增多,而空闲空间减小。例如,如果保持这种状态不变,则难以确保适当的空闲空间,并且可能难以执行数据写入。
这样,如果无效数据在整个系统中增多,则存在不能写入新数据的风险。作为对策,在半导体存储装置10中,访问处理部分16执行称为垃圾收集(garbage collection)的过程,该过程包括在空闲空间被占用之前仅将块22中的有效数据复制到空闲空间,从而产生新的空闲空间。
图9是示出垃圾收集过程的示例的示意图。垃圾收集是例如包括以下内容的过程:在占据空闲空间之前,仅将包括无效数据的一个块22中的有效数据复制到另一块22,并且删除原始的一个块22。
在图9的右侧,示意性地示出进行垃圾收集之前的复制源块22c和复制目的地块22d。复制源块22c包括已写入有效数据的页21和已写入无效数据的其他页21(灰色页21)。另外,复制目的地块22c是能够将所有这些页21写入其中的空闲块22。
例如,在垃圾收集中,访问处理部分16仅读出包括在复制源块22c中的有效数据,并将该数据临时存储到RAM等中。如图9的左侧所示,将读出的有效数据适当地写入复制目的地块22d。注意,例如以页21的编号的升序来写入该数据。因此,在复制目的地块22中,留下具有连续编号的可写入页21。
在已经复制了有效数据之后,与复制数据的逻辑地址41相对应的物理地址42被重写,并且更新逻辑/物理转换表40。利用这种配置,写入在复制源块22c中的有效数据丢失关于其逻辑地址的信息,并且变为无效数据。结果,复制源块22c成为仅写入了无效数据的块22。
访问处理部分16删除已写入在复制源块22c中的数据(无效数据)。利用这种配置,复制源块22c成为可写入块22。结果,在整个系统中,与最初写入复制源块22c中的无效数据的数据量相等的空闲空间产生。
以这种方式,通过垃圾收集,由于仅复制有效数据,所以空闲空间增加。另外,期望在包括大量无效数据和少量有效数据的块22(复制源块22)上执行垃圾收集。例如,包含在块22中的无效数据越多,则通过垃圾收集增加的空闲空间越多。另外,包含在块22中的有效数据越少,则进行垃圾收集的复制的频率越低。以这种方式,例如,可以减少对其他处理的性能的影响。
同时,要复制的有效数据量越大,执行复制处理等的时间段越长。结果,计算量增加。在这种情况下,通过执行垃圾收集,可以诸如对其他处理的性能产生影响。
通常,在数据写入中,用作主机的装置确定逻辑地址41,而与装置(半导体存储装置10)的内部情况无关。在这种情况下,取决于执行写入的逻辑地址41,可能需要垃圾收集,并且例如,垃圾收集的频率可能增加。结果,可能难以以稳定的速度执行写入。
[计算候选地址的过程]
图10是示出计算候选地址的过程的示例的流程图。在本实施例中,地址计算部分17计算作为要写入页21的逻辑地址41的候选的候选地址。
图10所示的过程是在主机装置30写入数据时由地址计算部分17执行的过程。例如,主机装置30输出通知数据写入的写入通知命令。地址计算部分17通过主机接口18接收写入通知命令,并开始计算候选地址的过程。
具体地,主机装置30计算将要被写入的写入数据的数据大小(数据量)。经由外部接口35,将计算出的数据大小与写入通知命令一起输出至半导体存储装置10。
在半导体存储装置10中,主机接口18从主机装置30接收写入数据的数据大小。然后,基于所接收的数据大小,地址计算部分计算候选地址的范围。以这种方式,在该实施例中,根据要写入的数据大小,准备候选地址的范围。现在,参考图9,详细描述计算候选地址范围的过程。
确定由主机装置30指定的写入数据的数据大小(指定大小)是否等于或小于非易失性半导体存储器11中的空闲空间的大小(空闲大小)(步骤101)。非易失性半导体存储器11中的空闲空间的大小例如是页21中当前可写入的页的总数据容量。由访问处理部分16适当地计算空闲空间的大小。计算空闲空间的大小的方法不受限制。
注意,在步骤101中,生成记录候选地址的列表。换句话说,适当地设置用于记录要被计算为候选地址的逻辑地址41的数据区域、参数等。在下文中,候选地址的列表可以缩写为候选列表。本实施例的候选列表对应于通知信息。
如果写入数据的数据大小小于空闲空间的大小(步骤101中为是),则进行计算用于允许将数据写入空闲空间的候选地址的第一循环处理(步骤102至步骤104)。在下文中,通过第一循环处理计算的这些候选地址可以被称为第一候选地址。
在步骤102中,确定在候选列表中登记的大小是否小于指定大小。候选列表中登记的大小是可以利用被登记在候选列表中的候选地址的范围来写入的数据的大小。该大小如下所述。如果在候选列表中登记的大小小于指定大小,则执行步骤103以计算第一候选地址。
图11是示出第一候选地址的示例的说明性示意图。如参考图2所述,地址计算部分17基于逻辑/物理转换表40中的信息(非易失性半导体存储器11中的写入状况)来计算候选地址44。图11示意性地示出逻辑/物理转换表40的另一示例。
在步骤103中,地址计算部分17计算空地址43作为候选地址44。这些空地址43对应于第一候选地址44a。例如,不与半导体存储装置10中的有效数据相对应的逻辑地址41,被选择(未登记为与逻辑/物理转换表40相对应的写入位置)作为空地址43。利用该配置,例如,可以将未使用的逻辑地址41(空地址43)用作候选地址44。
另外,在本实施例中,地址计算部分17计算连续的空地址43作为候选地址44。具体地,在逻辑/物理转换表40中,适当地选择未登记物理地址42的空范围(空地址43的范围)。
更具体地,在图11所示的示例中,200到202的LBA是没有登记物理地址42的空地址43。另外,500至509的LBA也是空地址43。当然,不仅可以想到这些空地址43,还可以包括其他空地址。例如,地址计算部分17适当地从空地址43的这些范围(200至202的LBA,500至509的LBA等)中选择第一候选地址44a的范围。
例如,当使用空地址43写入新数据时,该数据被写入作为空闲空间的可写入页21中。此时,已为空地址43登记了已写入新数据的页21的写入位置(新的物理地址42)。注意,由于空地址43都没有例如登记旧的写入位置(旧的物理地址42),因此即使写入新数据也不产生无效数据。
以这种方式,即使当在与非易失性半导体存储器11(装置)中的有效数据不对应的逻辑地址41(空地址43)处执行写入时,无效数据也不会增加。因此,例如,不生成包括无效数据的块22,因此不引起垃圾收集。因此,通过使用第一候选地址44a,可以防止由垃圾收集引起的写入速度的降低,并且可以以足够高的速度执行写入过程。换句话说,第一候选地址44a的范围也是可以以最稳定的速度执行写入的逻辑地址41的范围。
在选择了第一候选地址44a的范围之后,计算出第一候选地址44a的范围的首地址。例如,当选择200至202的LBA时,首地址(首LBA)为200。同时,例如,当选择500至509的LBA时,首地址为500。通过这些首地址,例如,可以指示逻辑/物理转换表40中的第一候选地址44a的范围的位置。
另外,计算可以在第一候选地址44a的范围内写入的数据的大小。在此,可以在候选地址44的范围内写入的数据的大小,例如是当使用候选地址44的范围内包括的所有逻辑地址41时可以写入的数据的数据量。如参考图3所描述的,一个逻辑地址41被添加到要被写入一个页21的数据中。此外,预设了可以被写入一个页21中的数据大小。
在下文中,为了描述的简单起见,将可以写入一个页21的数据大小限定为10(大小=10)。该数据大小指示例如由任意单位表示的相对数据量。注意,实际上,可写入数据的大小根据例如页21中包括的单元20的数量或要用于数据的单元范围(数据部分)的设置而适当地设置。
例如,200到202的LBA的范围包括三个逻辑地址41。因此,在200到202的LBA的范围内的可写入数据的大小是30。同时,例如,500到509的LBA的范围包括十个逻辑地址41,并且其中可写入数据的大小是100。以这种方式,将第一候选地址44a的范围内可写入的数据大小,计算为第一候选地址44a的范围内包括的地址数量与可写入页21的数据大小的乘积。
注意,选择第一候选地址44a的范围(空地址43的范围)的顺序、计算数据大小的方法等不受限制。例如,可以以可写入数据的大小的降序,选择第一候选地址44a的范围。可替代地,例如,可以以逻辑地址41的升序,选择第一候选地址44a的范围。
关于第一候选地址44a的计算范围的信息(诸如首地址和数据大小)被登记到候选列表。在图10的步骤104中,计算登记在候选列表中的数据大小的总和。例如,将要新选择的第一候选地址44a中的其他地址的另一范围的数据大小,添加到先前已登记的数据大小的总和中。在步骤102的确定中,使用在候选列表50登记的数据大小。
例如,如果在候选列表中登记的大小等于或大于指定大小,则循环处理结束。换句话说,如果所有写入数据都可以被写入第一候选地址44a的计算范围内,则第一循环处理结束。以这种方式,作为第一循环处理,重复处理以计算第一候选地址44a的多个范围,直到满足指定大小为止。
返回到步骤101,如果主机装置30指定的指定大小大于非易失性半导体存储器11中的空闲大小(步骤101中的“否”),则选择空地址43的所有范围(步骤105)。
如上所述,在逻辑/物理转换表40中,没有为空地址43登记物理地址42。因此,例如,可以想到的是,空地址43的数量与作为空闲空间的可写入页21的数量相对应。换句话说,不存在空地址43的状态也是在所有页21中已经写入某些有效数据的状态。
例如,如果指定大小大于空闲大小,则即使使用所有空地址43,也无法完全写入指定大小的数据。因此,在本实施例中,可以执行高速写入的范围,即,将空地址43的范围(第一候选地址44a的范围)登记到候选列表,并且然后重新计算候选地址44的其他范围。
例如,在步骤105中,参考逻辑/物理转换表40,并且将所有空范围的首地址(首LBA)以及所有这些范围的数据大小登记到候选列表中。因此,将第一候选地址44a的当前可用范围的位置以及将使用这些位置来确保的数据大小,登记到候选列表。
在选择了第一候选地址44a的所有范围之后,执行计算执行数据重写的候选地址的第二循环处理(步骤106至步骤108)。在下文中,可以将通过第二循环处理计算的这些候选地址被称为第二候选地址。
在步骤106中,确定在候选列表中登记的大小是否小于指定大小。如果在候选列表中登记的大小小于指定大小,则执行步骤107以计算第二候选地址。
图12是示出第二候选地址的示例的说明性示意图。图12示意性地示出逻辑/物理转换表40的又一示例。
在步骤107中,地址计算部分17计算写入在相同块22中的数据的逻辑地址41(在下文中称为相同块指定地址45)。换句话说,地址计算部分17计算相同块指定地址45作为候选地址44,该相同块指定地址45是要转换为指定相同块22的物理地址42的逻辑地址41。这些相同块指定地址45对应于第二候选地址44b。本实施例的相同块指定地址45对应于第二地址。
另外,在本实施例中,地址计算部分17计算相同块指定地址45中的连续块作为候选地址44。具体地,在逻辑/物理转换表40中,适当地选择与写入在相同块22的数据相对应的连续的逻辑地址41的范围(相同块指定地址45的范围)。
更具体地,在图12所示的示例中,800到819的LBA是写入在块#30中的数据的逻辑地址41,它们是连续的相同块指定地址45。另外,1500到1504的LBA是写入相同块指定地址45的块#75中的其他连续地址。当然,可以想到不仅包括这些连续的相同块指定地址45,而且还包括其他连续地址。例如,地址计算部分17适当地从相同块指定地址45的这些范围(800至819的LBA,1500至1504的LBA等)中选择第一候选地址44a的范围。
在步骤107中,选择包括被写入相同块22中的连续LBA的最大数量的区域。换句话说,以范围的大小的降序,选择相同块指定地址45的范围。利用这种配置,可以用少量的循环,来准备适合于写入的数据大小的候选地址44的范围。
注意,期望块22中的每个逻辑地址41中的页21的顺序是连续的。利用该配置,可以顺利地执行重写过程。可替代地,相同块指定地址45可以是包括在相同块22中并且具有连续地址值的任意逻辑地址41。
例如,当使用相同块指定地址45写入新数据时,该数据例如被写入到作为空闲空间的可写入页21中。此时,已为相同块指定地址45登记了已写入新数据的页21的写入位置(新物理地址42)。
在这种情况下,在由相同块指定地址45指定的块22中,生成大量无效数据项。例如,根据要写入的数据大小,可以通过覆盖连续的逻辑地址41来使块22中的所有数据无效。在这种情况下,即使不执行垃圾收集,也可以删除所有数据都无效的块22。这样,可以执行防止垃圾收集本身。
此外,即使由于覆盖范围较小等原因,并非所有数据都无效,也会生成包括大量无效数据项和少量有效数据项的块22。具体地,如主要参考图9所述,当存在大量无效数据项时,由垃圾收集产生的空闲空间量增加。同时,当有效数据项少时,可以减少垃圾收集本身的处理量。
换句话说,通过生成包括大量无效数据项的块22,即使通过单个垃圾收集也可以有效地增加空闲空间,并且可以充分抑制垃圾收集对性能产生的影响。结果,可以显着提高例如产生空闲空间的过程的效率。另外,即使当执行垃圾收集时,也可以执行高速数据写入而不会降低性能。
在第二候选地址44b的范围已经被选择之后,计算第二候选地址44b的每个范围的首地址,以及可以写入第二候选地址44b的范围的数据大小。例如,当选择800至819的LBA时,首地址(首LBA)为800,且其数据大小为200(10×20)。同时,例如,当选择1500至1502的LBA时,首地址(首LBA)是1500,且其数据大小是50(=10×5)。
注意,选择第二候选地址44b的范围(相同块指定地址45的范围)等的顺序不限于上述示例中的顺序。例如,可以以块22中的页21的顺序来选择第二候选地址44b的范围。或者,可以按照逻辑地址41的升序选择第二候选地址44b的范围。
关于第二候选地址44b的计算范围的信息(诸如首地址和数据大小)被登记到候选列表。在图10的步骤108中,计算在候选列表中登记的数据大小的总和,以用于步骤106中的确定。
例如,如果在候选列表中登记的大小等于或大于指定大小,则循环处理结束。换句话说,如果所有写入数据都可以被写入第一候选地址44a的计算范围和第二候选地址44b的计算范围,则第二循环处理结束。以此方式,作为第二循环处理,重复这些过程以计算第二候选地址44b的多个范围,直到满足仅在第一候选地址44a的范围内不能完全写入的数据大小为止。
在第一循环处理或第二循环处理结束之后,将生成的候选列表发送到主机装置30(步骤109)。以这种方式,在本实施例中,地址计算部分17生成关于候选地址44的范围的候选列表,并将生成的候选列表通知给主机装置30。
图13是示出候选列表的示例的表。图13所示的示例中的候选列表50是在主机装置30将大小=380指定为写入数据时的列表。注意,图13所示的候选列表50是通过第二循环处理生成的候选列表50。
如图13所示,候选列表50包括候选地址44的范围的首地址(首LBA)以及可以写入候选地址44的范围内的数据大小(大小)。
在图13中,作为第一候选地址44a的范围,登记如图11所示的与500到509的LBA(首LBA=500且大小=100)相对应的空地址43的范围,以及与200到202的LBA(首LBA=200且大小=30)相对应的空地址43的范围。另外,作为第二候选地址44b的范围,登记与800至819的LBA(首LBA=800并且大小=200)相对应的相同块指定地址45的范围,以及与1500到1504的LBA(首LBA=1500并且大小=50)相对应的相同块指定地址45的范围。
候选地址44的这四个范围的总数据大小等于由主机装置30指定的大小=380的指定的数据大小。注意,取决于连续的空地址43或连续的相同块指定地址45的范围的大小,要计算的候选地址44的范围可以包括与大于指定大小的数据大小相对应的范围。
另外,候选列表50包括关于候选地址44的范围的各个标志(标志)。例如,在步骤103,步骤105和步骤107中,将候选地址44的范围登记在候选列表50中的各个时刻,适当地计算标志。
标志是在写入已经添加有候选地址44的数据时的与写入速度相关的指标。如上所述,在使用第一候选地址44a写入数据时,不引起垃圾收集,并且可以执行高速写入。同时,在使用第二候选地址44b写入数据时,可能引起或可能不引起垃圾收集。
以这种方式,第一候选地址44a和第二候选地址44b在写入速度的稳定性上彼此不同。因此,通过将标志添加到候选列表50,当向主机装置30通知候选地址44的范围时,主机装置可以区分哪个范围对应于哪个候选地址44。以这种方式,可以提高数据写入过程的效率,并因此可以执行高速写入过程。
例如,地址计算部分17根据与候选地址44相对应的物理地址42的存在/不存在,来计算关于写入速度的标志。具体地,如在空地址43处,当对应的物理地址42在逻辑/物理转换表40中不存在的情况下,针对对应的候选地址44的范围计算标志=0。换句话说,标志=0是写入未使用的逻辑地址41的指标。同时,例如,如在相同块指定地址45处,当在逻辑/物理转换表40中存在对应的物理地址42时,针对对应的候选地址44的范围计算标志=1。换句话说,标志=1是写入已使用的逻辑地址41的指标。
具体地,在图13中,对于500和200的首LBA的第一候选地址44a的范围,登记标志=0。同时,对于800和1500的首LBA的第二候选地址44b的范围,登记标志=1。例如,利用该配置,主机装置30可以执行诸如从可以执行高速写入的地址中依次选择候选地址44的范围的处理。注意,标志的类型、计算方法等不受限制。例如,可以计算允许通知例如使用候选地址44时的写入速度的差异的任意标志,并将其登记到候选列表50。
以这种方式,在该实施例中,地址计算部分17经由主机接口18将包括关于候选地址44的范围的首LBA、大小和标志的候选列表发送到主机装置30。
图14是示出主机装置的操作的示例的流程图。图14示出当主机装置30将数据写入半导体存储装置10时的写入过程的示例。
在写入过程中,将写入通知命令发送到半导体存储装置10(步骤201)。例如,数据生成部分34计算主机装置30将要写入的数据的数据大小,并生成写入通知命令,以通知以该数据大小的写入数据。所生成的写入通知命令经由外部接口35被发送到半导体存储装置10。
如参考图10所述,当半导体存储装置10接收到写入通知命令时,半导体存储装置10执行计算候选地址44的过程。然后,经由主机接口18将关于计算出的候选地址44的范围的候选列表50,发送到主机装置30。
主机装置30接收由半导体存储装置10(地址计算部分17)计算出的候选列表50(步骤202)。在主机装置30中,数据生成部分34根据候选列表50生成写入数据(步骤203)。
例如,数据生成部分34从候选列表50中包括的候选地址44的范围中,选择要添加到写入数据的逻辑地址41。具体地,第一候选地址44a的范围中包括的逻辑地址41,是不与有效数据相对应的逻辑地址41。换句话说,对于主机装置30,第一候选地址44a是未写入数据的未使用的逻辑地址41。因此,数据生成部分34优先选择例如第一候选地址44a的范围内包含的逻辑地址41。
同时,例如,第二候选地址44b的范围中包括的逻辑地址41,是物理地址42已经与之对应的可访问数据的逻辑地址41。数据生成部分34例如确定第二候选地址44b的范围中包括的逻辑地址41是否是主机装置30所需的数据的逻辑地址41。
例如,当主机装置30中的各种处理所需的数据的逻辑地址41未包括在第二候选地址44b的范围内时,选择第二候选地址44b的所有范围。同时,当将所需数据的逻辑地址41包括在第二候选地址44b的范围内时,选择除了所需数据的逻辑地址41之外的第二候选地址44b。因此,例如当从第二候选地址44b的范围中选择逻辑地址41时,可以选择第二候选地址44b的范围的一部分。
注意,当所有第二候选地址44b都与所需数据的逻辑地址41相对应时,不选择第二候选地址44b。在这种情况下,适当地选择对于主机装置30非必需的数据的逻辑地址。
数据生成部分34生成已经添加有基于候选列表50选择的逻辑地址41的写入数据。在已经生成写入数据之后,该写入数据与写入命令一起被发送到半导体存储装置10(步骤204)。然后,在半导体存储装置10中,访问处理部分16将分别添加有候选地址44的写入数据,分别适当地写到页21中。
以这种方式,在本实施例中,通过从半导体存储装置向主机通知可以执行高速写入的逻辑地址41的范围(候选地址44的范围),生成已经向其添加了可以执行高速写入的逻辑地址41的写入数据。利用这种配置,例如,防止执行垃圾收集,并且防止了诸如在写入时性能降低的风险。结果,可以充分提高向非易失性半导体存储器11的写入速度和写入稳定性。以此方式,可以提供能够稳定且高速写入的半导体存储装置。
如上所述,在根据本实施例的半导体存储装置10中,多个块22中的每一个包括多个页21。每个页21都能够彼此独立地进行数据写入,并且每个块22都能够一并删除在多个页21中写入的数据。根据关于这些页21的写入状况的信息,计算将要写入的数据的逻辑地址41的候选的候选地址44。通过使用这些候选地址44,可以提高数据的写入速度。
当数据被存储到NAND闪存中时,取决于从主机写入数据的方式,在存在分别包含少量无效数据的大量块22的状态下,可能需要进行垃圾收集。例如,频繁执行诸如随机重写已添加有连续逻辑地址的一组数据的一部分的处理,每个包括少量无效数据的块22的数量增加。在这种情况下,即使在这些块22的一个上执行垃圾收集时,空闲空间也不会显着增加。结果,需要对多个块22进行垃圾收集,并且对性能的影响可能增加。
在该实施例中,根据非易失性半导体存储器11中的每个页21的写入状况,计算可以执行高速写入的逻辑地址41(候选地址44)的范围。此外,主机装置30使用候选地址44的这些范围来生成写入数据。利用该配置,要被新写入的数据使用可以执行高速写入的逻辑地址41。结果,可以充分确保写入速度及写入稳定性。
此外,逻辑/物理转换表40中的信息被用作关于写入状况的信息。利用这种配置,例如,在不感测例如非易失性半导体存储器11中的写入状况的情况下,可以容易地计算出适当的逻辑地址41。
此外,作为候选地址44,例如,没有指定物理地址42的空地址43,以及作为在同一块22中写入的数据的逻辑地址41的相同块指定地址45,被计算。利用该配置,可以抑制由于垃圾收集引起的性能下降,并且可以执行高速且稳定的R/W。
此外,通过使用候选地址44,可以充分防止执行垃圾收集本身。具体地,由于可以减少执行垃圾收集的频率,所以可以减少重写NAND闪存等的频率。结果,可以延长半导体存储装置10的使用寿命。利用该配置,能够充分提高半导体存储装置10的可靠性。
<其他实施例>
本技术不限于以上描述的实施例,并且可以实现各种其他实施例。
在图10所示的过程中,计算诸如空地址和相同块指定地址的逻辑地址,作为候选地址。可替代地,作为候选地址,可以计算可以执行高速写入的任意逻辑地址。
在上文中,在计算候选地址时,将逻辑/物理转换表中的信息,用作关于包括在非易失性半导体存储器中的页的写入状况的信息。可替代地,在计算候选地址时,可以使用允许参考非易失性半导体存储器中的写入状况的任意信息。
具体地,在计算候选地址时,例如,可以使用基于逻辑/物理转换表生成的其他表。更具体地,可以生成专用于候选地址的计算的表。更具体地说,通过更新该专用表,可以容易地计算候选地址。可替代地,例如,可适当地使用仅包括物理地址尚未对应的逻辑地址(空地址)的提取的表、被生成以允许在每个写入位置处彼此区分有效数据和无效数据的表等。另外,可以执行非易失性半导体存储器中的感测,以便适当地计算关于其中的写入状况的信息。
在上述实施例中,响应于来自主机装置的请求命令(写入通知命令)来计算候选地址。可替代地,例如,即使当没有请求命令时,也可以适当地执行计算候选地址的过程。
例如,在不执行写入过程或加载过程的时刻,例如,自动计算可以执行高速写入的候选地址的范围的首地址和大小。然后,关于所计算的候选地址的范围的信息,被主机装置等可访问地公开。例如,适当地参考所公开的关于计算出的候选地址的范围的信息,主机装置可以获取关于可以执行高速写入的候选地址的信息。可以采用这种配置等。
在上述配置中,主机装置和半导体存储装置经由它们各自的连接部分彼此直接连接。可替代地,主机装置和半导体存储装置可以例如经由无线通信彼此连接。具体地,在这种情况下,适当地提供根据诸如无线LAN、蓝牙(商标)、NFC(近场通信)或WUSB(无线USB)的标准的接口。以这种方式,不管主机装置和半导体存储装置如何彼此连接,本技术都是适用的。
以上根据本技术描述的至少两个特征可以彼此组合。换句话说,在实施例中分别说明的各种特征,可以与所有这些实施例无关地任意地组合。此外,上文描述的各种优点仅是示例,因此不限于此。因此,可以另外获得其他优点。
注意,本技术还可以采用以下配置。
(1)一种非易失性存储装置,包括:
存储部分,包括多个块部分,每个块部分包括可以彼此独立地写入数据的多个页部分,多个块部分能够一并删除写入在多个页部分中的数据;以及
计算部分,基于关于存储部分中包括的多个页部分的写入状况的信息,计算候选地址,该候选地址是要写入多个页部分的数据的逻辑地址的候选。
(2)根据(1)的非易失性存储装置,其中
计算部分计算候选地址的范围。
(3)根据(2)的非易失性存储装置,其中
计算部分计算候选地址的多个范围。
(4)根据(2)或(3)的非易失性存储装置,其中
计算部分计算候选地址的范围的首地址。
(5)根据(2)至(4)中的任一项的非易失性存储装置,其中
计算部分计算可在候选地址的范围内写入的数据大小。
(6)根据(1)至(5)中任一项的非易失性存储装置,其中
关于写入状况的信息包括转换表中的信息,该转换表将在多个页部分中写入的数据的逻辑地址转换为多个页部分的物理地址。
(7)根据(6)的非易失性存储装置,其中
转换表包括未指定物理地址的第一地址,作为逻辑地址,以及
计算部分将第一地址计算为候选地址。
(8)根据(7)的非易失性存储装置,其中
计算部分计算连续的第一地址作为候选地址。
(9)根据(6)至(8)中任一项的非易失性存储装置,其中
物理地址是指定块部分和页部分的地址,以及
计算部分计算作为逻辑地址的第二地址,作为候选地址,将逻辑地址转换为指定多个块部分中的同一个的物理地址。
(10)根据(9)的非易失性存储装置,其中
计算部分计算连续的第二地址作为候选地址。
(11)根据(1)至(10)中任一项的非易失性存储装置,其中
计算部分计算在写入已经添加有候选地址的数据时的与写入速度相关的指标。
(12)根据(11)的非易失性存储装置,其中
计算部分根据与候选地址对应的物理地址存在/不存在,来计算与写入速度相关的指标。
(13)根据(1)至(12)中任一项的非易失性存储装置,还包括
通信部分,与访问存储部分的主机装置进行数据通信,其中
计算部分经由通信部分将候选地址通知给主机装置。
(14)根据(13)的非易失性存储装置,其中
通信部分从主机装置接收写入数据的数据大小,以及
计算部分基于接收的数据大小来计算候选地址的范围。
(15)根据(14)的非易失性存储装置,其中
计算部分
生成关于候选地址的范围的通知信息,以及
将生成的通知信息通知给主机装置。
(16)根据(15)的非易失性存储装置,其中
通知信息包括以下至少一项:
候选地址的范围的首地址,
可以在候选地址的范围内写入的数据大小,和
写入添加有候选地址的数据时的与写入速度相关的指标。
(17)一种能够访问非易失性存储装置的主机装置,
非易失性存储装置包括
存储部分,包括多个块部分,每个块部分包括可以彼此独立地写入数据的多个页部分,多个块部分能够一并删除写入在多个页部分中的数据,以及
计算部分,基于关于存储部分中包括的多个页部分的写入状况的信息,计算候选地址,该地址是要写入多个页部分的数据的逻辑地址的候选,
主机装置包括:
通信部分,执行数据通信以访问非易失性存储装置的存储部分,以及
生成部分,
经由通信部分从非易失性存储装置获取候选地址,以及
生成已添加有获取的候选地址的写入数据。
(18)一种数据存储系统,包括:
非易失性存储装置;以及
能够访问非易失性存储装置的主机装置,
非易失性存储装置包括
存储部分,包括多个块部分,每个块部分包括可以彼此独立地写入数据的多个页部分,多个块部分能够一并删除写入在多个页部分中的数据,以及
计算部分,基于关于存储部分中包括的多个页部分的写入状况的信息,计算候选地址,该地址是要写入多个页部分的数据的逻辑地址的候选,
主机装置包括
通信部分,执行数据通信以访问非易失性存储装置的存储部分,以及
生成部分,
经由通信部分从非易失性存储装置获取候选地址,以及
生成已添加有获取的候选地址的写入数据。
参考标志列表
10 半导体存储装置
11 非易失性半导体存储器
15 表存储部分
17 地址计算部分
18 主机接口
21 页
22、22a至22d 块
30 主机装置
34 数据生成部分
35 外部接口
40 逻辑/物理转换表
41 逻辑地址
42 物理地址
43 空地址
44 候选地址
45 相同块指定地址
50 候选列表
100 数据存储系统。

Claims (18)

1.一种非易失性存储装置,包括:
存储部分,包括多个块部分,每个块部分包括能够彼此独立地写入数据的多个页部分,所述多个块部分能够一并删除已写入在所述多个页部分中的所述数据;以及
计算部分,基于关于所述存储部分中包括的所述多个页部分的写入状况的信息,计算候选地址,所述候选地址是要写入所述多个页部分的所述数据的逻辑地址的候选。
2.根据权利要求1所述的非易失性存储装置,其中
所述计算部分计算所述候选地址的范围。
3.根据权利要求2所述的非易失性存储装置,其中
所述计算部分计算所述候选地址的多个范围。
4.根据权利要求2所述的非易失性存储装置,其中
所述计算部分计算所述候选地址的所述范围的首地址。
5.根据权利要求2所述的非易失性存储装置,其中
所述计算部分计算能在所述候选地址的所述范围内写入的数据大小。
6.根据权利要求1所述的非易失性存储装置,其中
关于所述写入状况的所述信息包括转换表的信息,所述转换表将在所述页部分中写入的所述数据的所述逻辑地址转换为所述页部分的物理地址。
7.根据权利要求6所述的非易失性存储装置,其中
所述转换表包括未指定所述物理地址的第一地址,作为所述逻辑地址,以及
所述计算部分将所述第一地址计算为所述候选地址。
8.根据权利要求7所述的非易失性存储装置,其中
所述计算部分计算连续的所述第一地址作为所述候选地址。
9.根据权利要求6所述的非易失性存储装置,其中
所述物理地址是指定所述块部分和所述页部分的地址,以及
所述计算部分计算是所述逻辑地址的第二地址,作为所述候选地址,将所述逻辑地址转换为指定所述多个块部分中的同一块部分的所述物理地址。
10.根据权利要求9所述的非易失性存储装置,其中
所述计算部分计算连续的所述第二地址作为所述候选地址。
11.根据权利要求1所述的非易失性存储装置,其中
所述计算部分计算与写入已经添加有所述候选地址的所述数据时的写入速度相关的指标。
12.根据权利要求11所述的非易失性存储装置,其中
所述计算部分根据与所述候选地址对应的物理地址存在/不存在,来计算与所述写入速度相关的所述指标。
13.根据权利要求1所述的非易失性存储装置,还包括:
通信部分,与访问所述存储部分的主机装置进行数据通信,其中
所述计算部分经由所述通信部分将所述候选地址通知给所述主机装置。
14.根据权利要求1所述的非易失性存储装置,其中
通信部分从主机装置接收写入数据的数据大小,以及
所述计算部分基于接收的所述数据大小,来计算所述候选地址的范围。
15.根据权利要求14所述的非易失性存储装置,其中
所述计算部分
生成关于所述候选地址的所述范围的通知信息,以及
将生成的所述通知信息通知给所述主机装置。
16.根据权利要求15所述的非易失性存储装置,其中
所述通知信息包括以下至少一项:
所述候选地址的所述范围的首地址,
能够在所述候选地址的所述范围内写入的所述数据大小,以及
与写入添加有所述候选地址的所述数据时的写入速度相关的指标。
17.一种能够访问非易失性存储装置的主机装置,
所述非易失性存储装置包括:
存储部分,包括多个块部分,每个块部分包括能够彼此独立地写入数据的多个页部分,所述多个块部分能够一并删除写入在所述多个页部分中的所述数据,以及
计算部分,基于关于所述存储部分中包括的所述页部分的写入状况的信息,计算候选地址,所述候选地址是要写入所述页部分的所述数据的逻辑地址的候选,
所述主机装置包括:
通信部分,执行数据通信以访问所述非易失性存储装置的所述存储部分;以及
生成部分,
经由所述通信部分从所述非易失性存储装置获取所述候选地址,以及
生成已添加有获取的所述候选地址的写入数据。
18.一种数据存储系统,包括:
非易失性存储装置;以及
能够访问所述非易失性存储装置的主机装置,
所述非易失性存储装置包括:
存储部分,包括多个块部分,每个块部分包括能够彼此独立地写入数据的多个页部分,所述多个块部分能够一并删除写入在所述多个页部分中的所述数据,以及
计算部分,基于关于所述存储部分中包括的所述页部分的写入状况的信息,计算候选地址,所述候选地址是要写入所述页部分的所述数据的逻辑地址的候选,
所述主机装置包括:
通信部分,执行数据通信以访问所述非易失性存储装置的所述存储部分,以及
生成部分,
经由所述通信部分从所述非易失性存储装置获取所述候选地址,以及
生成已添加有获取的所述候选地址的写入数据。
CN201980053898.XA 2018-08-21 2019-08-07 非易失性存储装置、主机装置和数据存储系统 Pending CN112567327A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018154547 2018-08-21
JP2018-154547 2018-08-21
PCT/JP2019/031077 WO2020039927A1 (ja) 2018-08-21 2019-08-07 不揮発性記憶装置、ホスト装置、及びデータ記憶システム

Publications (1)

Publication Number Publication Date
CN112567327A true CN112567327A (zh) 2021-03-26

Family

ID=69592893

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980053898.XA Pending CN112567327A (zh) 2018-08-21 2019-08-07 非易失性存储装置、主机装置和数据存储系统

Country Status (3)

Country Link
US (1) US11615019B2 (zh)
CN (1) CN112567327A (zh)
WO (1) WO2020039927A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7417455B2 (ja) * 2020-03-27 2024-01-18 キヤノン株式会社 電子機器及びその制御方法、プログラム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193786A1 (en) * 2002-08-29 2004-09-30 Yoshihisa Inagaki Semiconductor memory device and method for writing data into flash memory
JP2008251063A (ja) * 2007-03-29 2008-10-16 Fujifilm Corp 記憶装置
US20090049229A1 (en) * 2005-12-09 2009-02-19 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory device, method of writing data,and method of reading out data
US20110055297A1 (en) * 2009-03-13 2011-03-03 Takuji Maeda Access module, information recording module, controller, and information recording system
KR20120097801A (ko) * 2011-02-25 2012-09-05 서울대학교산학협력단 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
US20120260025A1 (en) * 2011-04-08 2012-10-11 Kabushiki Kaisha Toshiba Method for controlling memory system, information processing apparatus, and storage medium
US20130159785A1 (en) * 2011-12-16 2013-06-20 Daisuke Hashimoto Semiconductor storage device, method for controlling the same and control program
US20130179646A1 (en) * 2012-01-10 2013-07-11 Sony Corporation Storage control device, storage device, and control method for controlling storage control device
CN107908571A (zh) * 2017-10-31 2018-04-13 成都华为技术有限公司 一种数据写入方法、闪存装置及存储设备
CN108073363A (zh) * 2017-12-28 2018-05-25 深圳市得微电子有限责任公司 数据存储方法、存储设备及计算机可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076137A (en) 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
JP4127307B2 (ja) * 2006-10-30 2008-07-30 ソニー株式会社 データ記憶装置、データ処理システム、データ処理方法及びデータ処理装置
JP2010026933A (ja) 2008-07-23 2010-02-04 Toshiba Corp メモリシステム、ホスト装置
JP2010237907A (ja) * 2009-03-31 2010-10-21 Nec Corp ストレージ装置および記録方法
JPWO2015076354A1 (ja) * 2013-11-22 2017-03-16 日本電気株式会社 ストレージ装置と方法並びにプログラム
US9696935B2 (en) * 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US10649661B2 (en) * 2017-06-26 2020-05-12 Western Digital Technologies, Inc. Dynamically resizing logical storage blocks

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193786A1 (en) * 2002-08-29 2004-09-30 Yoshihisa Inagaki Semiconductor memory device and method for writing data into flash memory
US20090049229A1 (en) * 2005-12-09 2009-02-19 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory device, method of writing data,and method of reading out data
JP2008251063A (ja) * 2007-03-29 2008-10-16 Fujifilm Corp 記憶装置
US20110055297A1 (en) * 2009-03-13 2011-03-03 Takuji Maeda Access module, information recording module, controller, and information recording system
KR20120097801A (ko) * 2011-02-25 2012-09-05 서울대학교산학협력단 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
US20120260025A1 (en) * 2011-04-08 2012-10-11 Kabushiki Kaisha Toshiba Method for controlling memory system, information processing apparatus, and storage medium
US20130159785A1 (en) * 2011-12-16 2013-06-20 Daisuke Hashimoto Semiconductor storage device, method for controlling the same and control program
US20130179646A1 (en) * 2012-01-10 2013-07-11 Sony Corporation Storage control device, storage device, and control method for controlling storage control device
CN107908571A (zh) * 2017-10-31 2018-04-13 成都华为技术有限公司 一种数据写入方法、闪存装置及存储设备
CN108073363A (zh) * 2017-12-28 2018-05-25 深圳市得微电子有限责任公司 数据存储方法、存储设备及计算机可读存储介质

Also Published As

Publication number Publication date
US11615019B2 (en) 2023-03-28
WO2020039927A1 (ja) 2020-02-27
US20210326251A1 (en) 2021-10-21

Similar Documents

Publication Publication Date Title
US11640353B2 (en) Memory system, data storage device, user device and data management method thereof
US10339046B1 (en) Data moving method and storage controller
US10007468B2 (en) Method and apparatus for erasing data in data section in flash memory
US8892814B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
US6711663B2 (en) Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
US9772797B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US9785384B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
US20150161039A1 (en) Data erasing method, memory control circuit unit and memory storage apparatus
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US10635358B2 (en) Memory management method and storage controller
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
CN107665091B (zh) 数据读取方法、数据写入方法及其存储控制器
US20140372668A1 (en) Data writing method, memory controller and memory storage apparatus
US11263147B2 (en) Memory system including logical-to-physical address translation table in a first cache and a compressed logical-to-physical address translation table in a second cache
US10496549B2 (en) Memory manage method and storage controller using the same
US9312011B1 (en) Data writing method, memory storage device and memory control circuit unit
JP2005115561A (ja) フラッシュrom制御装置
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
CN112567327A (zh) 非易失性存储装置、主机装置和数据存储系统
US10635583B2 (en) Memory management method and storage controller
TW201624490A (zh) 記憶體裝置及非暫態電腦可讀取記錄媒體
JP2005115562A (ja) フラッシュrom制御装置
US11461225B2 (en) Storage device, control method of storage device, and storage medium
CN110162493B (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