CN109542333A - 存储器***及控制非易失性存储器的控制方法 - Google Patents

存储器***及控制非易失性存储器的控制方法 Download PDF

Info

Publication number
CN109542333A
CN109542333A CN201810021937.5A CN201810021937A CN109542333A CN 109542333 A CN109542333 A CN 109542333A CN 201810021937 A CN201810021937 A CN 201810021937A CN 109542333 A CN109542333 A CN 109542333A
Authority
CN
China
Prior art keywords
block
host
address
logical address
data
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
CN201810021937.5A
Other languages
English (en)
Other versions
CN109542333B (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.)
Kioxia Corp
Original Assignee
Toshiba Memory 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 Memory Corp filed Critical Toshiba Memory Corp
Publication of CN109542333A publication Critical patent/CN109542333A/zh
Application granted granted Critical
Publication of CN109542333B publication Critical patent/CN109542333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种存储器***及控制非易失性存储器的控制方法。本发明实现一种能够谋求I/O性能改善的存储器***。实施方式的存储器***当从主机接收到指定第1区块编号与第1逻辑地址的写入要求时,决定应写入来自所述主机的数据且具有所述第1区块编号的第1区块内的第1位置,并将来自所述主机的数据写入到所述第1区块的所述第1位置。所述存储器***更新管理各逻辑地址与所述第1区块的各区块内实体地址之间的映射的第1地址转换表,并将表示所述第1位置的第1区块内实体地址映射到所述第1逻辑地址。

Description

存储器***及控制非易失性存储器的控制方法
[相关申请]
本申请享有以日本专利申请2017-181447号(申请日:2017年9月21日)作为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。
技术领域
本发明的实施方式涉及一种存储器***及控制非易失性存储器的控制方法。
背景技术
近年来,具备非易失性存储器的存储器***广泛普及。
作为这种存储器***之一,已知基于NAND(Not AND,与非)闪存技术的固态驱动器(SSD)。
在数据中心的服务器中,也使用SSD作为存储器。对于在像服务器那样的主机计算机中利用的存储器,要求高I/O(Input/Output,输入/输出)性能。因此,最近,开始提出主机与存储器之间的新颖的接口。
可是,通常NAND型闪速存储器的控制复杂,因此在实现用来改善I/O性能的新颖的接口时,必须考虑主机与存储器(存储器***)之间适当的作用分担。
发明内容
本发明提供一种能够改善I/O性能的存储器***及控制非易失性存储器的控制方法。
根据实施方式,能够连接于主机的存储器***具备:非易失性存储器,分别包含包括多个页的多个区块;及控制器,电连接于所述非易失性存储器,并控制所述非易失性存储器。所述控制器当从所述主机接收到指定第1区块编号与第1逻辑地址的写入要求时,执行如下动作:决定应写入来自所述主机的数据并具有所述第1区块编号的第1区块内的第1位置,并将来自所述主机的数据写入到所述第1区块的所述第1位置,更新管理逻辑地址各者与所述第1区块的区块内实体地址各者之间的映射的第1地址转换表,并将表示所述第1位置的第1区块内实体地址映射到所述第1逻辑地址。所述控制器当从所述主机接收到指定所述第1区块编号与所述第1逻辑地址的读取要求时,执行如下动作:使用所述第1逻辑地址并参照所述第1地址转换表,获取所述第1区块内实体地址,并基于所述第1区块编号与所述所获取的第1区块内实体地址,从所述第1区块中读取数据。
附图说明
图1是表示主机与实施方式的存储器***(闪速存储装置)的关系的框图。
图2是用来说明现有型SSD与主机之间的作用分担、本实施方式的闪速存储装置与主机之间的作用分担的图。
图3是表示多个主机与多个闪速存储装置之间的数据传输经由网络机器执行的计算机***的构成例的框图。
图4是表示本实施方式的存储器***的构成例的框图。
图5是表示设置在本实施方式的存储器***的NAND接口与多个NAND型闪速存储器芯片的关系的框图。
图6是表示由多个区块的集合构建的超级区块的构成例的图。
图7是用来说明由主机管理的区块级地址转换表与由本实施方式的存储器***管理的区块内地址转换表的图。
图8是用来说明本实施方式的存储器***所应用的写入指令的图。
图9是用来说明本实施方式的存储器***所应用的Trim(调整)指令的图。
图10是用来说明表示实体地址的区块编号及偏移的图。
图11是用来说明根据写入指令而执行的写入动作的图。
图12是用来说明跳过不良页的写入动作的图。
图13是用来说明跳过不良页的写入动作的另一例的图。
图14是用来说明将逻辑地址与数据的配对写入到区块内的页的动作的图。
图15是用来说明将数据写入到区块内的页的用户数据区域、将该数据的逻辑地址写入到该页的冗长区域的动作的图。
图16是用来说明使用超级区块的情况下的区块编号与偏移的关系的图。
图17是用来说明本实施方式的存储器***所应用的最大区块编号获取指令的图。
图18是用来说明对最大区块编号获取指令的响应的图。
图19是用来说明本实施方式的存储器***所应用的区块尺寸获取指令的图。
图20是用来说明对区块尺寸获取指令的响应的图。
图21是用来说明本实施方式的存储器***所应用的区块分配指令的图。
图22是用来说明对区块分配指令的响应的图。
图23是表示通过主机与本实施方式的存储器***而执行的区块信息获取处理的序列图。
图24是表示通过主机与本实施方式的存储器***而执行的写入处理的序列的序列图。
图25是表示写入相对于已经写入的数据的更新数据的数据更新动作的图。
图26是用来说明由本实施方式的存储器***管理的区块编号BLK#1用的区块内LUT(Look-Up-Table,查找表)的图。
图27是用来说明更新由本实施方式的存储器***管理的区块管理表的动作的图。
图28是用来说明更新由主机管理的区块级LUT的动作的图。
图29是用来说明根据表示与应无效化的数据对应的区块编号及实体地址的来自主机的通知更新区块内LUT及区块管理表的动作的图。
图30是用来说明本实施方式的存储器***所应用的读取指令的图。
图31是用来说明由本实施方式的存储器***执行的读取动作的序列图。
图32是用来说明本实施方式的存储器***所应用的无用信息收集(GC)控制指令的图。
图33是用来说明本实施方式的存储器***所应用的GC用回调指令的图。
图34是表示由主机与本实施方式的存储器***执行的无用信息收集(GC)动作的顺序的序列图。
图35是用来说明将多个GC源区块内的所有有效数据复制到多个GC目的地区块的动作的图。
图36是用来说明用于无用信息收集(GC)而执行的数据复制动作的例的图。
图37是用来说明基于图36的数据复制动作的结果而更新的GC目的地区块的区块内LUT的内容的图。
图38是用来说明基于图36的数据复制动作的结果而更新的GC源区块的区块内LUT的内容的图。
图39是用来说明基于图36的数据复制动作的结果而更新的主机的区块级LUT的内容的图。
具体实施方式
以下,参照附图对实施方式进行说明。
首先,参照图1,对包含一实施方式的存储器***的计算机***的构成进行说明。
该存储器***是以将数据写入到非易失性存储器中并从非易失性存储器中读出数据的方式构成的半导体存储装置。该存储器***是作为NAND闪存技术基础的闪速存储装置3而实现。
该计算机***可以包含主机(主机装置)2与多个闪速存储装置3。主机2可以是以将由多个闪速存储装置3构成的闪存阵列用作存储器的方式构成的服务器。主机(服务器)2与多个闪速存储装置3经由接口50相互连接(内部相互连接)。作为用于该内部相互连接的接口50,并不限定于此,可以使用PCI Express(PCIe)(注册商标)、NVM Express(NVMe)(注册商标)、Ethernet(注册商标)、NVMe over Fabrics(NVMeOF)等。
作为主机2发挥功能的服务器的典型例可列举数据中心内的服务器。
在主机2是通过数据中心内的服务器而实现的案例中,该主机(服务器)2可经由网络51连接于多个终端用户终端(客户端)61。主机2能够对所述终端用户终端61提供各种服务。
能够由主机(服务器)2提供的服务的例中有:(1)将***运作平台提供给各客户端(各终端用户终端61)的平台即服务(PaaS,Platform-as-a-Service),(2)将如虚拟服务器那样的基础设施提供给各客户端(各终端用户终端61)的基础设施即服务(IaaS,Infrastructure as a Service)等。
多个虚拟机器可以在作为该主机(服务器)2发挥功能的实体服务器上执行。在主机(服务器)2上运行的所述虚拟机器能够分别作为以对对应的若干个客户端(终端用户终端61)提供各种服务的方式构成的虚拟服务器发挥功能。
主机(服务器)2包含:存储管理功能,管理构成闪存阵列的多个闪速存储装置3;及前端功能,对各个终端用户终端61提供包含存储器存取的各种服务。
在现有型SSD中,NAND型闪速存储器的区块/页的阶层构造是利用SSD内的闪存转换层(FTL)来隐藏。也就是说,现有型SSD的FTL具有如下等功能:(1)使用作为逻辑实体地址转换表发挥功能的查找表,管理各逻辑地址与NAND型闪速存储器的各实体地址之间的映射,(2)用来隐藏以页为单位的读取/写入与以区块为单位的删除动作,(3)执行NAND型闪速存储器的无用信息收集(GC)。各逻辑地址与NAND型闪速存储器的实体地址之间的映射无法从主机看到。NAND型闪速存储器的区块/页构造也无法从主机看到。
另一方面,有时在主机中也执行一种地址转换(应用程序级地址转换)。该地址转换是使用应用程序级地址转换表来管理应用程序级的各逻辑地址与用于SSD的各逻辑地址之间的映射。另外,为了消除SSD用逻辑地址空间上产生的分片,在主机中也执行变更该逻辑地址空间上的数据配置的一种GC(应用程序级GC)。
然而,在主机及SSD分别具有地址转换表这样冗长的构成(SSD具有作为逻辑实体地址转换表发挥功能的查找表,主机具有应用程序级地址转换表)中,为了保存这些地址转换表而要消耗庞大的存储器资源。进而,包含主机侧的地址转换与SSD侧的地址转换的双重地址转换也成为使I/O性能降低的主要原因。
进而,主机侧的应用程序级GC成为使向SSD的数据写入量增加到实际的用户数据量的数倍(例如2倍)程度的主要原因。这种数据写入量的增加与SSD的写入放大相互作用而导致***整体的存储性能降低,另外,也使SSD的寿命缩短。
为了消除这种问题点,也考虑将现有型SSD的FTL的功能全部转移到主机的对策。
然而,为了实行该对策,必须使主机直接处理NAND型闪速存储器的区块及页。在NAND型闪速存储器中,因为存在页写入顺序限制,所以主机难以直接对页进行处理。另外,在NAND型闪速存储器中,存在区块包含不良页(bad page)的情况。处理不良页对主机来说更加困难。
因此,在本实施方式中,在主机2与闪速存储装置3之间分担FTL的作用。概括来说,主机2执行用来分配区块的区块级FTL,闪速存储装置3执行用来分配区块内的页的区块内FTL。
主机2管理用来管理逻辑地址各者与区块编号各者之间的映射的区块级地址转换表即区块级查找表(区块级LUT),闪速存储装置3管理用来管理逻辑地址各者与各区块的区块内实体地址之间的映射的页级地址转换表即区块内查找表(区块内LUT)。
在必须将数据写入到闪速存储装置3时,主机2选择区块编号(或以在闪速存储装置3分配闲置区块的方式要求),并将指定逻辑地址与经选择的区块的区块编号(或由闪速存储装置3通知的经分配的区块的区块编号)的写入要求(写入指令)发送给闪速存储装置3。闪速存储装置3将来自主机2的数据写入到与写入要求(写入指令)内的经指定的区块编号对应的区块。在此情况下,决定闪速存储装置3、该区块内的写入目的地位置,并将来自主机2的数据写入到该写入目的地位置。
主机2的区块级FTL具有执行存储服务的功能、损耗控制功能、用来实现高可用性的功能、防止具有相同内容的多个重复数据部被存储在存储器的重复排除(De-duplication)功能、无用信息收集(GC)区块选择功能、QoS控制功能等。QoS控制功能包含针对每个QoS域(或每个区块)决定存取单位的功能。存取单位表示主机2能够进行写入/读取的最小数据尺寸(Grain)。闪速存储装置3支持单一或者多个存取单位(Grain),主机2当闪速存储装置3支持多个存取单位时,能够针对每个QoS域(或每个区块)将应使用的存取单位指示给闪速存储装置3。
另外,QoS控制功能包含用来尽可能地防止QoS域间的性能干扰的功能。该功能基本上是用来保存稳定的时延的功能。
另一方面,闪速存储装置3的区块内FTL除具有分配区块内的页的功能以外,还具有GC执行功能。GC执行功能将由主机2选择的复制源区块(GC源区块)内的有效数据复制到由主机2选择的复制目标区块(GC目的地区块)。闪速存储装置3的区块内FTL决定应写入有效数据的GC目的地区块内的位置(复制目标位置),并将GC源区块内的有效数据复制到GC目的地区块内的复制目标位置。
图2表示现有型SSD与主机之间的作用分担及本实施方式的闪速存储装置3与主机2之间的作用分担。
图2的左部表示包含现有型SSD与执行虚拟磁盘服务的主机的计算机***整体的阶层构造。
在主机(服务器)中,执行用来对多个终端用户提供多个虚拟机器的虚拟机器服务101。在虚拟机器服务101上的各虚拟机器中,执行由对应的终端用户使用的操作***及用户应用程序102。
另外,在主机(服务器)中,执行与多个用户应用程序102对应的多个虚拟磁盘服务103。各虚拟磁盘服务103分配现有型SSD内的存储资源的容量的一部分作为对应的用户应用程序102用的存储资源(虚拟磁盘)。在各虚拟磁盘服务103中,也执行使用应用程序级地址转换表,将应用程序级的逻辑地址转换成SSD用的逻辑地址的应用程序级地址转换。进而,在主机中,也执行应用程序级GC104。
从主机(服务器)向现有型SSD的指令的发送及从现有型SSD向主机(服务器)的指令完成的响应的回传是经由主机(服务器)及现有型SSD各自存在的I/O队列200而执行。
现有型SSD包含写入缓冲器(WB)301、查找表(LUT)302、无用信息收集功能303、NAND型闪速存储器(NAND闪存阵列)304。现有型SSD仅管理一个查找表(LUT)302,NAND型闪速存储器(NAND闪存阵列)304的资源由多个虚拟磁盘服务103共有。
在该构成中,通过包含虚拟磁盘服务103下的应用程序级GC104与现有型SSD内的无用信息收集功能303(LUT级GC)的重复GC,而写入放大增大。另外,在现有型SSD中,因来自某一终端用户或某一虚拟磁盘服务103的数据写入量的增加而GC的频率增加,由此产生对其它终端用户或其它虚拟磁盘服务103的I/O性能变差的相邻干扰(Nosiy neighbour)的问题。
另外,因包含各虚拟磁盘服务内的应用程序级地址转换表与现有型SSD内的LUT302的重复资源的存在而大部分存储器资源被消耗。
图2的右部表示包含本实施方式的闪速存储装置3与主机2的计算机***整体的阶层构造。
在主机(服务器)2中,执行用来对多个终端用户提供多个虚拟机器的虚拟机器服务401。在虚拟机器服务401上的各虚拟机器中,执行由对应的终端用户使用的操作***及用户应用程序402。
另外,在主机(服务器)2中,执行与多个用户应用程序402对应的多个I/O服务403。所述I/O服务403可以包含LBA基础的区块I/O服务、键值存储(Kye-Value Store)服务等。各I/O服务403包含管理逻辑地址各者与闪速存储装置3的区块编号各者之间的映射的区块级LUT。此处,所谓逻辑地址,意指能够识别存取对象的数据的识别码。该逻辑地址可以为指定逻辑地址空间上的位置的逻辑区块地址(LBA),或者也可以为键值存储的键(标签),还可以为键的杂凑值。
在LBA基础的区块I/O服务中,可以使用管理逻辑地址(LBA)各者与闪速存储装置3的区块编号各者之间的映射的区块级LUT。
在键值存储服务中,可以使用管理逻辑地址(即键那样的标签)各者与存储着与所述逻辑地址(即键那样的标签)对应的数据的闪速存储装置3的区块编号各者之间的映射的区块级LUT。在该区块级LUT中,可以管理标签、存储着通过该标签而识别的数据的区块编号与该数据的数据长的对应关系。
各终端用户能够选择应使用的定址方法(LBA、键值存储的键等)。
所述各区块级LUT并非将来自用户应用程序402的逻辑地址各者转换成闪速存储装置3用的逻辑地址各者,而是将来自用户应用程序402的逻辑地址各者转换成闪速存储装置3的区块编号各者。也就是说,所述各区块级LUT是将闪速存储装置3用的逻辑地址转换成区块编号的表与应用程序级地址转换表经统合(合并)而成的表。
另外,各I/O服务403包含GC区块选择功能。GC区块选择功能能够使用对应的区块级LUT管理各区块的有效数据量,由此能够选择GC源区块。
在主机(服务器)2中,可以在所述每个QoS域存在I/O服务403。属于某一QoS域的I/O服务403管理通过对应的QoS域内的用户应用程序402而使用的逻辑地址各者与属于分配于对应的QoS域的资源组的区块群的区块编号各者之间的映射。
从主机(服务器)2向闪速存储装置3的指令的发送及从闪速存储装置3向主机(服务器)2的指令完成的响应等的回传是经由主机(服务器)2及闪速存储装置3各自存在的I/O队列500而执行。所述I/O队列500也可以被分类成与多个QoS域对应的多个队列组。
闪速存储装置3包含与多个QoS域对应的多个写入缓冲器(WB)601、与多个QoS域对应的多个区块内LUT602、与多个QoS域对应的多个无用信息收集(GC)功能603、NAND型闪速存储器(NAND闪存阵列)604。
在该图2的右部所示的构成中,上位阶层(主机2)能够识别区块交界,因此能够考虑到区块交界/区块尺寸而将用户数据写入到各区块。也就是说,主机2能够识别NAND型闪速存储器(NAND闪存阵列)604的各个区块,由此,例如能够进行将数据一起写入到一个区块整体、通过删除或更新而使一个区块内的数据整体无效化等控制。结果能够使一个区块中混合存在有效数据与无效数据的状况不易产生。因此,能够降低必须执行GC的频率。通过降低GC的频率,能够降低写入放大,从而实现闪速存储装置3的性能的提高、闪速存储装置3的寿命的最大化。如此,上位阶层(主机2)能够识别区块编号的构成有用。
另一方面,因页写入顺序限制而当前能够写入的页为每一个区块仅1页。因此,将页编号呈现给上位阶层与将区块编号呈现给上位阶层相比并不有用。
图3表示图1的***构成的变化例。
在图3中,多个主机2A与多个闪速存储装置3之间的数据传输是经由网络机器(此处为网络开关1)而执行。
也就是说,在图3的计算机***中,图1的服务器2的存储管理功能被转移至管理器2B,且服务器2的前端功能被转移至多个主机(终端用户服务用主机)2A。
管理器2B管理多个闪速存储装置3,并对应于来自各主机(终端用户服务用主机)2A的要求,将所述闪速存储装置3的存储资源分配至各主机(终端用户服务用主机)2A。
各主机(终端用户服务用主机)2A经由网络连接于一个以上的终端用户终端61。各主机(终端用户服务用主机)2A管理这些区块级LUT。各主机(终端用户服务用主机)2A使用自身的区块级LUT,仅管理由对应的终端用户使用的逻辑地址各者与自身所分配的资源的区块编号各者之间的映射。因此,该构成能够容易地使***横向扩展。
各主机2A的区块级FTL具有管理区块级LUT的功能、用来实现高可用性的功能、QoS控制功能、GC区块选择功能等。
管理器2B是用来管理多个闪速存储装置3的专用装置(计算机)。管理器2B具有预约各主机2A所要求的容量量的存储资源的全局资源预约功能。进而,管理器2B具有用来监视各闪速存储装置3的消耗率的损耗监视功能、将所预约的存储资源(NAND资源)分配至各主机2A的NAND资源分配功能、QoS控制功能、全局时钟管理功能等。
各闪速存储装置3的区块内FTL具有管理写入缓冲器的功能、GC执行功能等。
根据图3的***构成,因为各闪速存储装置3的管理是由管理器2B执行,所以各主机2A只要仅执行对自身所分配到的一个以上的闪速存储装置3发送I/O要求的动作与接收来自闪速存储装置3的响应的动作即可。也就是说,多个主机2A与多个闪速存储装置3之间的数据传输仅经由开关1而执行,管理器2B与该数据传输无关。另外,如上所述,由主机2A各自管理的区块级LUT的内容相互独立。因此,能够容易地增加主机2A的数量,所以能够实现横向扩展型的***构成。
图4表示闪速存储装置3的构成例。
闪速存储装置3具备控制器4及非易失性存储器(NAND型闪速存储器)5。闪速存储装置3也可以具备随机存取存储器、例如DRAM(Dynamic Random Access Memory,动态随机存取存储器)6。
NAND型闪速存储器5包含包括以矩阵状配置的多个存储单元的存储单元阵列。NAND型闪速存储器5可以为二维构造的NAND型闪速存储器,也可以为三维构造的NAND型闪速存储器。
NAND型闪速存储器5的存储单元阵列包含多个区块BLK0~BLKm-1。区块BLK0~BLKm-1各自是由大量页(此处为页P0~Pn-1)组成。区块BLK0~BLKm-1作为删除单位发挥功能。区块有时也被称为“删除区块”、“实体区块”、或“实体删除区块”。页P0~Pn-1的各自包含连接于同一字线的多个存储单元。页P0~Pn-1是数据写入动作及数据读入动作的单位。
控制器4经由Toggle、开放式NAND闪存接口(ONFI)那样的NAND接口13电连接于作为非易失性存储器的NAND型闪速存储器5。控制器4是以控制NAND型闪速存储器5的方式构成的存储器控制器(控制电路)。
NAND型闪速存储器5如图5所示那样包含多个NAND型闪速存储器芯片。各NAND型闪速存储器芯片是包含包括多个区块BLK的存储单元阵列与控制该存储单元阵列的周边电路的非易失性存储器芯片。各个NAND型闪速存储器芯片能够独立地动作。因此,NAND型闪速存储器芯片能够作为并列动作单位发挥功能。NAND型闪速存储器芯片(die)也被称为“NAND型闪速存储器芯片(chip)”或“非易失性存储器芯片”。在图5中,例示在NAND接口13连接着16个通道Ch1、Ch2、…Ch16,并在这些通道Ch1、Ch2、…Ch16分别连接着相同数量(例如每个通道为2个芯片)的NAND型闪速存储器芯片的情况。各通道包含用来与对应的NAND型闪速存储器芯片通信的通信线(存储器总线)。
控制器4经由通道Ch1、Ch2、…Ch16控制NAND型闪速存储器芯片#1~#32。控制器4能够同时驱动通道Ch1、Ch2、…Ch16。
连接于通道Ch1~Ch16的16个NAND型闪速存储器芯片#1~#16可作为第1存储体而组成,另外,连接于通道Ch1~Ch16的剩下的16个NAND型闪速存储器芯片#17~#32可作为第2存储体而组成。存储体是作为用来通过存储体交错使多个存储器模块并列动作的单位发挥功能。在图5的构成例中,能够通过16通道与使用了2个存储体的存储体交错使最大32个NAND型闪速存储器芯片并列动作。
在本实施方式中,控制器4可管理分别由多个区块BLK构成的多个区块(以下称为超级区块),也可以以超级区块的单位执行删除动作。
超级区块并不限定于此,也可以包含从NAND型闪速存储器芯片#1~#32中各选择1个、共计32个区块BLK。此外,NAND型闪速存储器芯片#1~#32可分别具有多平面构成。例如,当NAND型闪速存储器芯片#1~#32分别具有包含2个平面的多平面构成时,一个超级区块可以包含从与NAND型闪速存储器芯片#1~#32对应的64个平面中各选择1个、共计64个区块BLK。在图6中例示一个超级区块SB由从NAND型闪速存储器芯片#1~#32中各选择1个、共计32个区块BLK(在图5中是由粗框包围的区块BLK)构成的情况。
如图4所示,控制器4包含主机接口11、CPU12、NAND接口13、及DRAM接口14等。这些CPU12、NAND接口13、DRAM接口14是经由总线10而相互连接。
该主机接口11是以执行与主机2的通信的方式构成的主机接口电路。该主机接口11例如可以为PCIe控制器(NVMe控制器)。主机接口11从主机2接收各种要求(指令)。这些要求(指令)包含写入要求(写入指令)、读取要求(读取指令)、其它各种要求(指令)。
CPU12是以控制主机接口11、NAND接口13、DRAM接口14的方式构成的处理器。CPU12响应闪速存储装置3的电源接通从NAND型闪速存储器5或未图示的ROM(Read Only Memory,只读存储器)将控制编程(固件)载入DRAM6,接着执行该固件,由此进行各种处理。此外,固件也可以被载入控制器4内的未图示的SRAM(Static Random Access Memory,静态随机存取存储器)上。该CPU12能够执行用来处理来自主机2的各种指令的指令处理等。CPU12的动作是由通过CPU12而执行的所述固件控制。此外,指令处理的一部分或全部也可以通过控制器4内的专用硬件执行。
CPU12能够作为写入动作控制部21、读取动作控制部22、及GC动作控制部23发挥功能。在这些写入动作控制部21、读取动作控制部22、及GC动作控制部23中安装着用来实现图2的右部所示的***构成的应用程序编程接口(API)。
写入动作控制部21从主机2接收指定区块编号与逻辑地址的写入要求(写入指令)。逻辑地址是能够识别应写入的数据(用户数据)的识别码,例如可以为LBA,或者也可以为键值存储的键那样的标签,还可以为键的杂凑值。区块编号是指定应写入该数据的区块的识别码。作为区块编号,可使用能够唯一识别多个区块内的任意一个的各种值。通过区块编号而指定的区块可以为实体区块,也可以为所述超级区块。当接收到写入指令时,写入动作控制部21首先决定应写入来自主机2的数据并具有该经指定的区块编号的区块(写入目标区块)内的位置(写入目的地位置)。接着,写入动作控制部21将来自主机2的数据(写入数据)写入到该写入目标区块的写入目的地位置。在此情况下,写入动作控制部21不仅能够将来自主机2的数据写入到写入目标区块,还能够将该数据与该数据的逻辑地址双方写入到写入目标区块。
接下来,写入动作控制部21更新管理逻辑地址各者与该区块的区块内实体地址各者之间的映射的区块内LUT32,并将表示该写入目标区块的所述写入目的地位置的区块内实体地址映射到写入数据的逻辑地址。
在此情况下,该区块内实体地址是由表示该写入目标区块内的写入目的地位置的区块内偏移表示。
在此情况下,该区块内偏移表示写入目标区块的开头至写入目的地位置为止的偏移、即写入目的地位置相对于写入目标区块的开头的偏移。写入目标区块的开头至写入目的地位置为止的偏移的尺寸是以具有与页尺寸不同的尺寸的粒度(Grain)的倍数表示。粒度(Grain)是所述存取单位。粒度(Grain)的尺寸的最大值被限制为区块尺寸。换句话说,区块内偏移是以具有与页尺寸不同的尺寸的粒度的倍数表示写入目标区块的开头至写入目的地位置为止的偏移。
粒度(Grain)可以具有小于页尺寸的尺寸。例如,当页尺寸为16K字节时,粒度(Grain)的尺寸可以为4K字节。在此情况下,在某一个区块中,规定尺寸分别为4K字节的多个偏移位置。与区块内的最初的偏移位置对应的区块内偏移例如为0,与区块内的下一个偏移位置对应的区块内偏移例如为1,与区块内的第三个偏移位置对应的区块内偏移例如为2。
或者粒度(Grain)还可以具有大于页尺寸的尺寸。例如,粒度(Grain)可以为页尺寸的数倍的尺寸。当页尺寸为16K字节时,粒度可以为32K字节的尺寸。
如此一来,写入动作控制部21本身决定具有来自主机2的区块编号的区块内的写入目的地位置,接下来,将来自主机2的写入数据写入到该区块内的该写入目的地位置。接下来,写入动作控制部21更新与该区块对应的区块内LUT32,并将表示写入目的地位置的区块内实体地址(区块内偏移)映射到写入数据的逻辑地址。由此,闪速存储装置3能够一边使主机2处理区块编号,一边隐藏页写入顺序限制、不良页、页尺寸等。
结果主机2能够在能够识别区块交界,但并未意识到页写入顺序限制、不良页、页尺寸的情况下管理哪个用户数据存在于哪个区块编号。
读取动作控制部22在从主机2接收到指定逻辑地址与区块编号的读取要求(读取指令)时,使用该逻辑地址,并参照与具有通过该读取要求而指定的区块编号的区块对应的区块内LUT32。由此,读取动作控制部22能够获取存储着与该逻辑地址对应的数据的该区块的区块内实体地址(区块内偏移)。接下来,读取动作控制部22基于通过读取要求而指定的区块编号与所获取的区块内实体地址,从NAND型闪速存储器5中读取与该逻辑地址对应的数据。
在此情况下,读取对象的区块是通过区块编号而特定。该区块内的读取对象的实体存储位置是通过区块内偏移而特定。为了获得读取对象的实体存储位置,读取动作控制部22首先可以将该区块内偏移除以表示页尺寸的粒度的数(此处为4),并且分别决定通过该除算而获得的商及余数作为读取对象的页编号及读取对象的页内偏移。
GC动作控制部23当从主机2接收到指定用于NAND型闪速存储器5的无用信息收集的复制源区块编号(GC源区块编号)及复制目标区块编号(GC目的地区块编号)的GC控制指令时,从NAND型闪速存储器5的多个区块中选择具有所指定的复制源区块编号的区块与具有所指定的复制目标区块编号的区块作为复制源区块(GC源区块)及复制目标区块编号(GC目的地区块)。GC动作控制部23决定应写入存储在所选择的GC源区块的有效数据的GC目的地区块内的复制目标位置,并将有效数据复制到GC目的地区块内的复制目标位置。
接下来,GC动作控制部23以映射到有效数据的逻辑地址的区块内实体地址(区块内偏移)从表示存储着该有效数据的GC源区块内的复制源位置的区块内实体地址变更成表示GC目的地区块内的复制目标位置的区块内实体地址的方式,更新与GC源区块对应的区块内LUT及与GC目的地区块对应的区块内LUT。
有效数据/无效数据的管理可以使用区块管理表33来执行。该区块管理表33例如可存在于每个区块。在与某一区块对应的区块管理表33中,存储着表示该区块内的各个数据的有效/无效的点阵图旗标。此处,所谓有效数据,意指作为最新数据与逻辑地址建立关联且之后能够从主机2读取的数据。所谓无效数据,意指已经不可能从主机2读取的数据。例如,与某一逻辑地址建立关联的数据为有效数据,与任一逻辑地址均未建立关联的数据为无效数据。
如上所述,GC动作控制部23决定应写入存储在复制源区块(GC源区块)内的有效数据的复制目标区块(GC目的地区块)内的位置(复制目标位置),并将有效数据复制到复制目标区块(GC目的地区块)的该经决定的位置(复制目标位置)。在此情况下,GC动作控制部23也可以将有效数据与该有效数据的逻辑地址双方复制到复制目标区块(GC目的地区块)。
在本实施方式中,如上所述,写入动作控制部21能够将来自主机2的数据(写入数据)与来自主机2的逻辑地址双方写入到写入目标区块。因此,GC动作控制部23能够从该复制源区块(GC源区块)中容易地获取复制源区块(GC源区块)内的各数据的逻辑地址,所以能够容易地更新与复制源区块对应的区块内LUT及与复制目标区块对应的区块内LUT。
NAND接口13是以在CPU12的控制下控制NAND型闪速存储器5的方式构成的存储器控制电路。DRAM接口14是以在CPU12的控制下控制DRAM6的方式构成的DRAM控制电路。DRAM6的存储区域的一部分用于写入缓冲器(WB)31的存储。另外,DRAM6的存储区域的其它一部分用于区块内LUT32、区块管理表32的存储。此外,所述写入缓冲器(WB)31、区块内LUT32、及区块管理表32可以存储在控制器4内的未图示的SRAM。
图8表示由主机2管理的区块级LUT(区块级地址转换表)与由闪速存储装置3管理的区块内LUT(区块内地址转换表)。
区块级LUT管理逻辑地址各者和与闪速存储装置3的多个区块各自对应的区块编号各者之间的映射。该区块级LUT是将某一逻辑地址转换成某一区块编号BLK#的表。
在闪速存储装置3中,管理与多个区块各自对应的多个区块内LUT。各区块内LUT管理逻辑地址各者与对应的区块内的区块内实体地址(区块内偏移)各者之间的映射。各区块内LUT是将某一逻辑地址转换成某一区块内实体地址(区块内PBA)的表。区块内实体地址(区块内PBA)如上所述那样是由区块内偏移表示。
地址转换以如下方式执行。
例如,在读取动作中,主机2使用某一逻辑地址(例如,某一LBA)并参照区块级LUT,将该逻辑地址(LBA)转换成区块编号BLK#。该逻辑地址及区块编号BLK#从主机2被发送至闪速存储装置3。在本实施方式中,为了并非将特定的逻辑地址范围分配至各区块,而是能够将与任意的逻辑地址对应的数据均存储在任何区块,该逻辑地址本身与区块编号BLK#一起从主机2被发送至闪速存储装置3。
在闪速存储装置3中,控制器4选择与区块编号BLK#对应的区块内LUT。例如,如果来自主机2的区块编号BLK#显示区块编号BLK#0,那么选择与区块编号BLK#0对应的区块内LUT,如果来自主机2的区块编号BLK#显示区块编号BLK#1,那么选择与区块编号BLK#1对应的区块内LUT,如果来自主机2的区块编号BLK#显示区块编号BLK#2,那么选择与区块编号BLK#2对应的区块内LUT。
所选择的区块内LUT是通过来自主机2的逻辑地址而被参照。接下来,从与该逻辑地址对应的区块内PBA中获取所选择的区块内LUT。
图8表示闪速存储装置3所应用的写入指令。
写入指令是要求闪速存储装置3写入数据的指令。该写入指令可以包含指令ID、区块编号BLK#、逻辑地址、长度等。
指令ID是表示该指令为写入指令的ID(指令代码),写入指令中包含写入指令用的指令ID。
区块编号BLK#是能够唯一识别应写入数据的区块的识别码(区块地址)。
逻辑地址是用来识别应写入的写入数据的识别码。如上所述,该逻辑地址可以为LBA,也可以为键值存储的键,还可以为键的杂凑值。当逻辑地址为LBA时,该写入指令中所包含的逻辑地址(起始LBA)表示应写入写入数据的逻辑位置(最初的逻辑位置)。
长度表示应写入的写入数据的长度。该长度(数据长)可以通过粒度(Grain)数指定,也可以通过LBA数指定,或者其尺寸还可以通过字节指定。
当从主机2接收到写入指令时,控制器4决定具有通过写入指令而指定的区块编号的区块内的写入目的地位置。该写入目的地位置是考虑到页写顺序的限制及不良页等而决定。接下来,控制器4将来自主机2的数据写入到具有通过写入指令而指定的区块编号的该区块内的该写入目的地位置。
图8表示闪速存储装置3所应用的Trim指令。
该Trim指令是包含存储着应设为无效的数据的区块的区块编号及该数据的逻辑地址的指令。该Trim指令包含指令ID、区块编号BLK#、逻辑地址、长度。
指令ID是表示该指令为Trim指令的ID(指令代码),Trim指令中包含Trim指令用的指令ID。
区块编号表示存储着应无效化的数据的区块。
逻辑地址表示应无效化的数据的最初的逻辑位置。
长度表示应无效化的数据的长度。该长度(数据长)可以通过逻辑地址数指定,也可以通过粒度(Grain)数指定,还可以通过字节指定。
控制器4使用区块管理表33管理表示多个区块各自包含的各个数据的有效/无效的旗标(点阵图旗标)。当从主机2接收到包含表示存储着应设为无效的数据的区块的区块编号及逻辑地址的Trim指令时,控制器4更新区块管理表33,并将与通过Trim指令中所包含的区块编号及逻辑地址而特定的区块内实体地址对应的旗标(点阵图旗标)变更为表示无效的值。
图10表示规定区块内实体地址的区块内偏移。
区块编号指定某一个区块BLK。如图10所示,各区块BLK包含多个页(此处为页0~页n)。
在页尺寸(各页的用户数据存储区域)为16K字节且粒度(Grain)为4KB的尺寸的案例中,该区块BLK被逻辑地分割成4×(n+1)个区域。
偏移+0表示页0的最初的4KB区域,偏移+1表示页0的第二个4KB区域,偏移+2表示页0的第三个4KB区域,偏移+3表示页0的第4个4KB区域。
偏移+4表示页1的最初的4KB区域,偏移+5表示页1的第二个4KB区域,偏移+6表示页1的第三个4KB区域,偏移+7表示页1的第4个4KB区域。
图11表示根据写入指令而执行的写入动作。
现在假定区块BLK#1作为写入目标区块而被分配的情况。控制器4按照页0、页1、页2、…页n的顺序将数据以页单位写入到区块BLK#1。
在图11中,假定在已经将16K字节量的数据写入到区块BLK#1的页0的状态下,从主机2接收到指定区块编号(=BLK#1)、逻辑地址(LBAx)及长度(=4)的写入指令的情况。控制器4决定区块BLK#1的页1作为写入目的地位置,并将从主机2接收的16K字节量的写入数据写入到区块BLK#1的页1。接下来,控制器4更新与区块BLK#1对应的区块内LUT32,并将偏移+5、偏移+6、偏移+7、偏移+8分别映射到LBAx、LBAx+1、LBAx+2、LBAx+3。
图12表示跳过不良页(bad page)的写入动作。
在图12中,假定在已经将数据写入到区块BLK#1的页0、页1的状态下,从主机2接收到指定区块编号(=BLK#1)、逻辑地址(LBAx+1)及长度(=4)的写入指令的情况。假如区块BLK#1的页2为不良页,那么控制器4决定区块BLK#1的页3作为写入目的地位置,并将从主机2接收的16K字节量的写入数据写入到区块BLK#1的页3。接下来,控制器4更新与区块BLK#1对应的区块内LUT32,并将偏移+12、偏移+13、偏移+14、偏移+15分别映射到LBAx+1、LBAx+2、LBAx+3、LBAx+4。
图13表示跳过不良页的写入动作的另一例。
在图13中,假定横跨隔着不良页的2页写入数据的情况。现在假定已经将数据写入到区块BLK#2的页0、页1且写入缓冲器31中剩下未写入的8K字节量的写入数据的情况。如果在该状态下接收到指定区块编号(=BLK#2)、逻辑地址(LBAy)及长度(=6)的写入指令,那么控制器4使用未写入的8K字节写入数据与从主机2新接收到的24K字节写入数据内的最初的8K字节写入数据,准备与页尺寸对应的16K字节写入数据。接下来,控制器4将该所准备的16K字节写入数据写入到区块BLK#2的页2。
假如区块BLK#2的下一个页3为不良页,那么控制器4决定区块BLK#2的页4作为下一个写入目的地位置,并将从主机2接收到的24K字节写入数据内的剩下的16K字节写入数据写入到区块BLK#2的页4。
接下来,控制器4更新与区块BLK#2对应的区块内LUT32,分别将偏移+10、偏移+11映射到LBAy、LBAy+1,且将偏移+16、偏移+17、偏移+18、偏移+19映射到LBAy+2、LBAy+3、LBAy+4、LBAy+5。
图14、图15表示将逻辑地址与数据的配对写入到区块内的页的动作。
在各区块中,各页可以包含用来存储用户数据的用户数据区域与用来存储管理数据的冗长区域。页尺寸为16KB+α。
控制器4将4KB用户数据及与该4KB用户数据对应的逻辑地址(例如LBA)双方写入到写入目标区块BLK。在此情况下,如图14所示,分别包含LBA与4KB用户数据的4个数据集可以被写入到相同页。区块内偏移可以表示数据集交界。
或者也可以如图15所示,将4个4KB用户数据写入到页内的用户数据区域,并将与这4个4KB用户数据对应的4个LBA写入到该页内的冗长区域。
图16表示使用超级区块的案例中的区块编号与偏移(区块内偏移)的关系。以下,区块内偏移也会仅以偏移的方式参照。
此处,为了使图示简单化,假定某一个超级区块SB#1是由4个区块BLK#11、BLK#21、BLK#31、BLK#41构成的情况。控制器4按照区块BLK#11的页0、区块BLK#21的页0、区块BLK#31的页0、区块BLK#41的页0、区块BLK#11的页1、区块BLK#21的页1、区块BLK#31的页1、区块BLK#41的页1、…的顺序写入数据。
偏移+0表示区块BLK#11的页0的最初的4KB区域,偏移+1表示区块BLK#11的页0的第二个4KB区域,偏移+2表示区块BLK#11的页0的第三个4KB区域,偏移+3表示区块BLK#11的页0的第4个4KB区域。
偏移+4表示区块BLK#21的页0的最初的4KB区域,偏移+5表示区块BLK#21的页0的第二个4KB区域,偏移+6表示区块BLK#21的页0的第三个4KB区域,偏移+7表示区块BLK#21的页0的第4个4KB区域。
同样地,偏移+12表示区块BLK#41的页0的最初的4KB区域,偏移+13表示区块BLK#41的页0的第二个4KB区域,偏移+14表示区块BLK#41的页0的第三个4KB区域,偏移+15表示区块BLK#41的页0的第4个4KB区域。
偏移+16表示区块BLK#11的页1的最初的4KB区域,偏移+17表示区块BLK#11的页1的第二个4KB区域,偏移+18表示区块BLK#11的页1的第三个4KB区域,偏移+19表示区块BLK#11的页1的第4个4KB区域。
偏移+20表示区块BLK#21的页1的最初的4KB区域,偏移+21表示区块BLK#21的页1的第二个4KB区域,偏移+22表示区块BLK#21的页1的第三个4KB区域,偏移+23表示区块BLK#21的页1的第4个4KB区域。
同样地,偏移+28表示区块BLK#41的页1的最初的4KB区域,偏移+29表示区块BLK#41的页1的第二个4KB区域,偏移+30表示区块BLK#41的页1的第三个4KB区域,偏移+31表示区块BLK#41的页1的第4个4KB区域。
图17表示闪速存储装置3所应用的最大区块编号获取指令。
最大区块编号获取指令是用来从闪速存储装置3获取最大区块编号的指令。主机2向闪速存储装置3发送最大区块编号获取指令,由此能够识别表示闪速存储装置3中所包含的区块数量的最大区块编号。最大区块编号获取指令包含最大区块编号获取指令用的指令ID,而不包含参数。
图18表示对最大区块编号获取指令的响应。
当从主机2接收到最大区块编号获取指令时,闪速存储装置3将图18所示的响应回传至主机2。该响应包含表示最大区块编号(也就是闪速存储装置3中所包含的能够利用的区块的总数)的参数。
图19表示闪速存储装置3所应用的区块尺寸获取指令。
区块尺寸获取指令是用来从闪速存储装置3获取区块尺寸的指令。主机2向闪速存储装置3发送区块尺寸获取指令,由此能够识别闪速存储装置3中所包含的NAND型闪速存储器5的区块尺寸。
此外,在另一实施方式中,区块尺寸获取指令也可以包含指定区块编号的参数。当从主机2接收到指定某一区块编号的区块尺寸获取指令时,闪速存储装置3将具有该区块编号的区块的区块尺寸回传至主机2。由此,假如即便当NAND型闪速存储器5中所包含的各个区块的区块尺寸不均匀时,主机2也能够识别各个区块各自的区块尺寸。
图20表示对区块尺寸获取指令的响应。
当从主机2接收到区块尺寸获取指令时,闪速存储装置3将区块尺寸(NAND型闪速存储器5中所包含的各个区块的共用的区块尺寸)回传至主机2。在此情况下,假如区块编号是通过区块尺寸获取指令而指定,那么闪速存储装置3如上所述那样将具有该区块编号的区块的区块尺寸回传至主机2。
图21表示闪速存储装置3所应用的区块分配指令。
区块分配指令是要求闪速存储装置3进行区块(闲置区块)的分配的指令。主机2通过将区块分配指令发送至闪速存储装置3而要求闪速存储装置3分配闲置区块,由此能够获取区块编号(经分配的闲置区块的区块编号)。
在闪速存储装置3通过闲置区块列表管理闲置区块群而主机2不管理闲置区块群的案例中,主机2要求闪速存储装置3分配闲置区块,由此获取区块编号。另一方面,在主机2管理闲置区块群的案例中,主机2自己能够选择闲置区块群的一个,因此无需将区块分配指令发送至闪速存储装置3。
图22表示对区块分配指令的响应。
当从主机2接收到区块分配指令时,闪速存储装置3根据闲置区块列表选择必须分配给主机2的闲置区块,并将包含所选择的闲置区块的区块编号的响应回传至主机2。
图23表示由主机2与闪速存储装置3执行的区块信息获取处理。
在主机2开始使用闪速存储装置3时,主机2首先将最大区块编号获取指令发送至闪速存储装置3。闪速存储装置3的控制器将最大区块编号回传至主机2。最大区块编号表示能够利用的区块的总数。此外,在使用所述超级区块的案例中,最大区块编号也可以表示能够利用的超级区块的总数。
接着,主机2将区块尺寸获取指令发送至闪速存储装置3而获取区块尺寸。在此情况下,主机2也可以将指定区块编号1的区块尺寸获取指令、指定区块编号2的区块尺寸获取指令、指定区块编号3的区块尺寸获取指令、…分别发送至闪速存储装置3,而个别地获取所有区块各自的区块尺寸。
通过该区块信息获取处理,主机2能够识别能够利用的区块数、各个区块的区块尺寸。
图24表示由主机2与闪速存储装置3执行的写入处理的序列。
主机2首先自己选择应该用于写入的区块(闲置区块)或通过将区块分配指令发送至闪速存储装置3而要求闪速存储装置3分配闲置区块。接下来,主机2将包含自己选择的区块的区块编号BLK#(或通过闪速存储装置3而分配的闲置区块的区块编号BLK#)、逻辑地址(LBA)及长度的写入指令发送至闪速存储装置3(步骤S20)。
当闪速存储装置3的控制器4接收到该写入指令时,控制器4决定应写入来自主机2的写入数据并具有该区块编号BLK#的区块(写入目标区块BLK#)内的写入目的地位置,并将写入数据写入到该写入目标区块BLK#的写入目的地位置(步骤S11)。在步骤S11中,控制器4也可以将逻辑地址(此处为LBA)与写入数据双方写入到写入目标区块。
控制器4更新与写入目标区块BLK#对应的区块内LUT,并将表示写入目的地位置的偏移(区块内偏移)映射到该逻辑地址(步骤S12)。
接着,控制器4更新与写入目标区块BLK#对应的区块管理表32,并将与所写入的数据对应的点阵图旗标(也就是与写入了该数据的偏移(区块内偏移)对应的点阵图旗标)从0变更为1(步骤S13)。
例如,如图25所示,假定将起始LBA为LBAx的16K字节更新数据写入到与区块BLK#1的偏移+4~+7对应的实体存储位置的情况。在此情况下,如图26所示,在区块BLK#1用的区块内LUT中,偏移+4~+7映射到LBAx~LBAx+3。另外,如图27所示,在区块BLK#1用的区块管理表中,与偏移+4~+7对应的点阵图旗标分别从0变更为1。
控制器4将对该写入指令的响应(成功/失败)回传至主机2(步骤S14)。
当主机2接收到该响应时,主机2更新由主机2管理的区块级LUT,并将写入目标区块BLK#的区块编号BLK#映射到与经写入的写入数据对应的逻辑地址(步骤S21)。如图28所示,区块级LUT包含与多个逻辑地址(例如LBA)各自对应的多个登记项目。将存储着与该LBA对应的数据的NAND型闪速存储器5的区块编号存储在与某一逻辑地址(例如某一LBA)对应的登记项目中。如图25所示,如果将起始LBA为LBAx的16K字节更新数据写入到区块BLK#1,那么如图28所示,区块内LUT被更新,而与LBAx~LBAx+3对应的区块编号从BLK#0变更为BLK#1。
此后,如图24所示,主机2将所述用来使因更新数据的写入而变成无用的以前的数据无效化的Trim指令发送至闪速存储装置3。闪速存储装置3的控制器4根据该Trim指令更新区块内LUT、区块管理表(步骤S15、S16)。
假如当如图25所示那样将以前的数据存储在区块BLK#0时,如图29所示,指定区块编号(=BLK#0)、LBAx、长度(=4)的Trim指令从主机2被发送至闪速存储装置3。闪速存储装置3的控制器4根据该Trim指令,更新与BLK#0对应的区块内LUT,并将表示LBAx~LBAx+3各者与偏移+1~+3各者之间的映射的信息删除。在此情况下,控制器4也可以将所述LBAx~LBAx+3与偏移+1~+3变更为显示无效的值(null)。进而,控制器4更新与BLK#0对应的区块管理表32,并将与偏移+0~+3对应的点阵图旗标分别从1变更为0。
图30表示闪速存储装置3所应用的读取指令。
读取指令是要求闪速存储装置3读出数据的指令。该读取指令包含指令ID、区块编号BLK#、逻辑地址、长度、传输目的地指示器。
指令ID是表示该指令为读取指令的ID(指令代码),读取指令中包含读取指令用的指令ID。
区块编号BLK#表示存储着应读取的数据的区块的区块编号。逻辑地址是应读取的数据的逻辑地址。
长度表示应读取的数据的长度。该数据长可由LBA数表示,也可由Grain数表示。
传输目的地指示器表示所读出的数据应传输到的主机2内的存储器上的位置。
图31表示由主机2与闪速存储装置3执行的读取处理的序列。
主机2参照由主机2管理的区块内LUT,将来自用户应用程序的读取要求中所包含的逻辑地址(LBA)转换成区块编号。接下来,主机2将指定该区块编号、LBA、长度的读取指令发送至闪速存储装置3。
当闪速存储装置3的控制器4从主机2接收到读取指令时,控制器4选择与通过该读取指令而指定的区块编号对应的区块内LUT,使用并参照该所选择的区块内LUT、读取指令内的LBA,获取与该LBA对应的偏移(区块内偏移)(步骤S31)。控制器4基于通过读取指令而指定的区块编号与所获取的偏移(区块内偏移),从NAND型闪速存储器5中读取与该LBA对应的数据(步骤S32),并将该读取数据发送至主机2。
图32表示闪速存储装置3所应用的GC控制指令。
GC控制指令用来将GC源区块编号及GC目的地区块编号通知给闪速存储装置3。主机2能够管理各区块的有效数据量/无效数据量,并选择有效数据量相对较少的若干个区块作为GC源区块。另外,主机2能够管理闲置区块列表,并选择若干个闲置区块作为GC目的地区块。该GC控制指令可以包含指令ID、GC源区块编号、GC目的地区块编号等。
指令ID是表示该指令为GC控制指令的ID(指令代码),GC控制指令中包含GC控制指令用的指令ID。
GC源区块编号是表示GC源区块的区块编号。主机2能够指定应将哪个区块设为GC源区块。主机2也可以将多个GC源区块编号设定在一个GC控制指令中。
GC目的地区块编号是表示GC目的地区块的区块编号。主机2能够指定应将哪个区块设为GC目的地区块。主机2也可以将多个GC目的地区块编号设定在一个GC控制指令中。
图33表示GC用回调指令。
GC用回调指令用于将包含多组逻辑地址(LBA)与目标区块编号的列表通知给主机2。某一组中所包含的逻辑地址(LBA)是经复制的有效数据的逻辑地址。该组中所包含的目标区块编号是复制了该有效数据的GC目的地区块的区块编号。该GC用回调指令仅当通过GC控制指令指定多个GC源区块编号及多个目的地区块编号时,可以从闪速存储装置3发送至主机2。
图28表示无用信息收集(GC)动作的顺序。
例如,主机2当由主机2所管理的闲置区块列表中所包含的剩余闲置区块数降低至阈值以下时,选择GC源区块及GC目的地区块,并将GC控制指令发送至闪速存储装置3(步骤S41)。
当接收到该GC控制指令时,闪速存储装置3的控制器4执行数据复制动作,所述数据复制动作包含决定应写入GC源区块内的有效数据的GC目的地区块内的位置(复制目标位置)的动作及将GC源区块内的有效数据复制到GC目的地区块内的复制目标位置的动作(步骤S51)。在步骤S51中,在GC源区块内的所有有效数据的复制完成之前重复执行数据复制动作。当通过GC控制指令指定多个GC源区块时,在所有GC源区块内的所有有效数据的复制完成之前重复进行数据复制动作。
接下来,控制器4使用GC用回调指令将包含多组逻辑地址(LBA)与目标区块编号的列表通知给主机2(步骤S52),并且以映射到所复制的有效数据的逻辑地址的偏移(区块内偏移)从表示GC源区块内的复制源位置的偏移(区块内偏移)变更为表示GC目的地区块内的复制目标位置的偏移(区块内偏移)的方式,更新与GC源区块对应的区块内LUT及与GC目的地区块对应的区块内LUT(步骤S53)。
主机2基于由闪速存储装置3通知的列表,更新区块内LUT(步骤S42)。
图35表示将多个GC源区块内的所有有效数据复制到多个GC目的地区块的动作。
此处,假定由主机2指定区块BLK#1、区块BLK#2、区块BLK#3作为GC源区块并由主机2指定区块BLK#50、区块BLK#51作为GC目的地区块的情况。区块BLK#1、区块BLK#2、区块BLK#3各自混合存在有效数据与无效数据。
首先,将区块BLK#1内的所有有效数据复制到区块BLK#50。接着,将区块BLK#2的所有有效数据的一部分复制到区块BLK#50的剩余空白区域,将区块BLK#2的剩余有效数据复制到区块BLK#51。接下来,将区块BLK#3的所有有效数据复制到区块BLK#51。
此外,控制器4也可以将不仅是各GC源区块内的有效数据而是该有效数据及与该有效数据对应的逻辑地址双方从GC源区块(复制源区块)复制到GC目的地区块(复制目标区块)。由此,能够将数据与逻辑地址的配对保存在GC目的地区块(复制目标区块)内。
图36表示用于GC而执行的数据复制动作的例子。
在图36中,假定将存储在GC源区块(此处为区块BLK#1)的与偏移+0对应的位置的有效数据(LBA=10)复制到GC目的地区块(此处为区块BLK#50)的与偏移+0对应的位置,将存储在GC源区块(此处为区块BLK#1)的与偏移+1对应的位置的有效数据(LBA=11)复制到GC目的地区块(此处为区块BLK#50)的与偏移+1对应的位置的情况。
在此情况下,控制器4如图37所示那样,更新与区块BLK#50对应的区块内LUT,并将一对LBA10与偏移+0及一对LBA11与偏移+1存储至与区块BLK#50对应的区块内LUT。由此,将偏移+0映射到LBA10,将偏移+1映射到LBA10。另外,控制器4如图38所示那样,更新与区块BLK#10对应的区块内LUT,并将一对LBA10与偏移+0及一对LBA11与偏移+1从与区块BLK#1对应的区块内LUT中删除。进而,控制器4将LBA10与目标区块编号(BLK#50)的配对及LBA11与目标区块编号(BLK#50)的配对通知给主机2。
主机2基于该通知,如图39所示那样更新区块级LUT,将映射到LBA10的区块编号从BLK#1变更为BLK#50,还将映射到LBA11的区块编号从BLK#1变更为BLK#50。
如以上说明所述,根据本实施方式,当从主机2接收到指定第1区块编号与第1逻辑地址的写入要求时,闪速存储装置3的控制器4决定应写入来自主机2的数据并具有第1区块编号的区块(写入目标区块)内的位置(写入目的地位置),并将来自主机2的数据写入到写入目标区块的写入目的地位置,更新管理逻辑地址各者与该写入目标区块的区块内实体地址(区块内偏移)各者之间的映射的区块内LUT,并将表示写入目的地位置的区块内偏移映射到第1逻辑地址。另外,当从主机2接收到指定所述第1区块编号与所述第1逻辑地址的读取要求时,控制器4使用第1逻辑地址并参照区块内LUT,获取写入了与第1逻辑地址对应的数据的区块内实体地址(区块内偏移),并基于第1区块编号与所获取的区块内实体地址(区块内偏移),从NAND型闪速存储器5中读取与第1逻辑地址对应的数据。
因此,能够实现主机2处理区块编号,且闪速存储装置3考虑到页写入顺序限制/不良页等决定具有由主机2指定的区块编号的区块内的写入目的地位置的构成。通过使主机2处理区块编号,而能够实现上位阶层(主机2)的应用程序级地址转换表与现有型SSD的LUT级地址转换表的合并。另外,闪速存储装置3能够考虑到NAND型闪速存储器5的特征/限制来控制NAND型闪速存储器5。进而,主机2能够识别区块交界,因此能够考虑到区块交界/区块尺寸而将用户数据写入到各区块。由此,主机2能够进行通过数据更新等而使同一区块内的数据一起无效化等的控制,因此能够降低执行GC的频率。结果能够降低写入放大,而实现闪速存储装置3的性能的提高、闪速存储装置3的寿命的最大化。
因此,能够实现主机2与闪速存储装置3之间的适当的作用分担,由此能够实现包含主机2与闪速存储装置3的***整体的I/O性能的提高。
另外,根据本实施方式,控制器4决定应写入有效数据的复制目标区块内的复制目标位置,并将有效数据复制到复制目标区块内的该复制目标位置。因此,主机2只要进行选择复制源区块与复制目标区块的动作即可。另外,因为能够将应用程序级GC与闪速存储装置3的GC合并,所以能够大幅降低写入放大。
此外,闪速存储装置3也可以作为设置在存储阵列内的多个闪速存储装置3中的一个而被利用。存储阵列可以经由缆线或网络连接于如服务器计算机那样的信息处理装置。存储阵列包含控制该存储阵列内的多个闪速存储装置3的控制器。当将闪速存储装置3应用在存储阵列时,该存储阵列的控制器也可以作为闪速存储装置3的主机2发挥功能。
另外,在本实施方式中,例示了NAND型闪速存储器作为非易失性存储器。可是,本实施方式的功能例如也能够应用在如MRAM(Magnetoresistive Random Access Memory,磁性随机存取存储器)、PRAM(Phase change Random Access Memory,相变随机存取存储器)、ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)、或FeRAM(Ferroelectric Random Access Memory,铁电随机存取存储器那样的其它各种非易失性存储器。
已对本发明的若干实施方式进行了说明,但这些实施方式是作为例子而提出的,并无意图限定发明的范围。这些新颖的实施方式能够以其它各种方式加以实施,且能够在不脱离发明主旨的范围内进行各种省略、替换、变更。这些实施方式或其变化包含在发明的范围或主旨中,并且包含在权利要求书所记载的发明与其均等的范围内。
[符号的说明]
2 主机
3 闪速存储装置
4 控制器
5 NAND型闪速存储器
21 写入动作控制部
22 读取动作控制部
23 GC动作控制部

Claims (12)

1.一种存储器***,其特征在于:能够连接于主机,且具备:
非易失性存储器,包含分别包含多个页的多个区块;以及
控制器,电连接于所述非易失性存储器,且控制所述非易失性存储器;
所述控制器构成为:
当从所述主机接收到指定第1区块编号与第1逻辑地址的写入要求时,执行如下动作:决定应写入来自所述主机的数据且具有所述第1区块编号的第1区块内的第1位置,将来自所述主机的数据写入到所述第1区块的所述第1位置,更新管理各逻辑地址与所述第1区块的各区块内实体地址之间的映射的第1地址转换表,并将表示所述第1位置的第1区块内实体地址映射到所述第1逻辑地址;
当从所述主机接收到指定所述第1区块编号与所述第1逻辑地址的读取要求时,执行如下动作:使用所述第1逻辑地址并参照所述第1地址转换表,获取所述第1区块内实体地址,并基于所述第1区块编号与所述获取的第1区块内实体地址,从所述非易失性存储器中读取与所述第1逻辑地址对应的数据。
2.根据权利要求1所述的存储器***,其特征在于:所述第1区块内实体地址由第1区块内偏移表示,所述第1区块内偏移是以具有与页尺寸不同尺寸的粒度的倍数表示所述第1区块的开头至所述第1位置的偏移。
3.根据权利要求1所述的存储器***,其特征在于所述控制器构成为:当从所述主机接收到指定用于所述非易失性存储器的无用信息收集的复制源区块编号及复制目标区块编号的控制指令时,执行如下动作:从所述多个区块中选择具有所述复制源区块编号的第2区块与具有所述复制目标区块编号的第3区块,决定应写入存储在所述第2区块中的有效数据的所述第3区块内的复制目标位置,并将所述有效数据复制到所述第3区块的所述复制目标位置。
4.根据权利要求3所述的存储器***,其特征在于所述控制器构成为:以映射到所述有效数据的逻辑地址的区块内实体地址由表示存储着所述有效数据的所述第2区块内的复制源位置的第2区块内实体地址变更为表示所述第3区块的所述复制目标位置的第3区块内实体地址的方式,更新管理各逻辑地址与所述第2区块的各区块内实体地址之间的映射的第2地址转换表、及管理各逻辑地址与所述第3区块的各区块内实体地址之间的映射的第3地址转换表。
5.根据权利要求4所述的存储器***,其特征在于:所述第2区块内实体地址由第2区块内偏移表示,所述第2区块内偏移是以具有与页尺寸不同尺寸的粒度的倍数表示所述第2区块的开头至所述复制源位置的偏移,
所述第3区块内实体地址由第3区块内偏移表示,所述第3区块内偏移是以所述粒度的倍数表示所述第3区块的开头至所述复制目标位置的偏移。
6.根据权利要求3所述的存储器***,其特征在于所述控制器构成为:将所述有效数据的逻辑地址、及被复制了所述有效数据的所述复制目标区块编号通知给所述主机。
7.根据权利要求1所述的存储器***,其特征在于所述控制器构成为:
当从所述主机接收到要求最大区块编号的第1指令时,将表示所述多个区块的数量的最大区块编号通知给所述主机,
当从所述主机接收到要求区块尺寸的第2指令时,将所述多个区块各自的区块尺寸通知给所述主机。
8.根据权利要求7所述的存储器***,其特征在于所述控制器构成为:在所述第2指令包含区块编号的情况下,将具有所述第2指令中所包含的所述区块编号的区块的区块尺寸通知给所述主机。
9.一种存储器***,其特征在于:能够连接于主机,且具备:
非易失性存储器,包含分别包含多个页的多个区块;以及
控制器,电连接于所述非易失性存储器,且控制所述非易失性存储器;
所述控制器构成为:
当从所述主机接收到要求最大区块编号的第1指令时,将表示所述多个区块的数量的最大区块编号通知给所述主机,
当从所述主机接收到要求区块尺寸的第2指令时,将所述多个区块各自的区块尺寸通知给所述主机,
当从所述主机接收到指定第1区块编号与第1逻辑地址的写入要求时,执行如下动作:决定应写入来自所述主机的数据且具有所述第1区块编号的第1区块内的第1位置,并将来自所述主机的数据写入到所述第1区块的所述第1位置,更新管理各逻辑地址与所述第1区块的各区块内实体地址之间的映射的第1地址转换表,并将表示所述第1位置的第1区块内实体地址映射到所述第1逻辑地址;
当从所述主机接收到指定所述第1区块编号与所述第1逻辑地址的读取要求时,执行如下动作:使用所述第1逻辑地址并参照所述第1地址转换表,获取所述第1区块内实体地址,并基于所述第1区块编号与所述获取的第1区块内实体地址,从所述非易失性存储器中读取与所述第1逻辑地址对应的数据。
10.根据权利要求9所述的存储器***,其特征在于:所述第1区块内实体地址由第1区块内偏移表示,所述第1区块内偏移是以具有与页尺寸不同尺寸的粒度的倍数表示所述第1区块的开头至所述第1位置的偏移。
11.根据权利要求9所述的存储器***,其特征在于所述控制器构成为:当从所述主机接收到指定用于所述非易失性存储器的无用信息收集的多个复制源区块编号及多个复制目标区块编号的控制指令时,执行如下动作:从所述多个区块中选择具有所述多个复制源区块编号的多个第2区块与具有所述多个复制目标区块编号的多个第3区块,决定应写入存储在所述多个第2区块中的一个第2区块中的有效数据的所述多个第3区块中的一个第3区块内的复制目标位置,将所述有效数据复制到所述一个第3区块的所述复制目标位置,并将所述被复制的有效数据的逻辑地址与所述一个第3区块的区块编号通知给所述主机。
12.一种控制非易失性存储器的控制方法,其特征在于:控制包含分别包含多个页的多个区块的非易失性存储器,且具备:
当从主机接收到指定第1区块编号与第1逻辑地址的写入要求时,执行如下动作:决定应写入来自所述主机的数据且具有所述第1区块编号的第1区块内的第1位置;将来自所述主机的数据写入到所述第1区块的所述第1位置;及更新管理各逻辑地址与所述第1区块的各区块内实体地址之间的映射的第1地址转换表,并将表示所述第1位置的第1区块内实体地址映射到所述第1逻辑地址;以及
当从所述主机接收到指定所述第1区块编号与所述第1逻辑地址的读取要求时,执行如下动作:使用所述第1逻辑地址并参照所述第1地址转换表,获取所述第1区块内实体地址;及基于所述第1区块编号与所述获取的第1区块内实体地址,从所述非易失性存储器中读取与所述第1逻辑地址对应的数据。
CN201810021937.5A 2017-09-21 2018-01-10 存储器***及控制非易失性存储器的控制方法 Active CN109542333B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-181447 2017-09-21
JP2017181447A JP6785205B2 (ja) 2017-09-21 2017-09-21 メモリシステムおよび制御方法

Publications (2)

Publication Number Publication Date
CN109542333A true CN109542333A (zh) 2019-03-29
CN109542333B CN109542333B (zh) 2022-04-29

Family

ID=65719309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810021937.5A Active CN109542333B (zh) 2017-09-21 2018-01-10 存储器***及控制非易失性存储器的控制方法

Country Status (4)

Country Link
US (4) US10503407B2 (zh)
JP (1) JP6785205B2 (zh)
CN (1) CN109542333B (zh)
TW (1) TWI661301B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765051A (zh) * 2021-01-22 2021-05-07 珠海妙存科技有限公司 降低闪存设备trim消耗的方法、装置及介质

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10564895B2 (en) * 2017-06-07 2020-02-18 ScaleFlux, Inc. I/O performance enhancement of solid-state data storage devices
JP6785205B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP6982468B2 (ja) 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
JP2019079464A (ja) 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US11144473B2 (en) * 2018-06-13 2021-10-12 Advanced Micro Devices, Inc. Quality of service for input/output memory management unit
CN110633048B (zh) * 2018-06-22 2022-11-08 慧荣科技股份有限公司 闪存存储装置的命名空间操作方法
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11126561B2 (en) * 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11617282B2 (en) 2019-10-01 2023-03-28 Alibaba Group Holding Limited System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US11379447B2 (en) 2020-02-06 2022-07-05 Alibaba Group Holding Limited Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
CN113312274B (zh) * 2020-02-27 2024-03-22 群联电子股份有限公司 存储器的数据整理方法、存储器存储装置及控制电路单元
US11449386B2 (en) 2020-03-20 2022-09-20 Alibaba Group Holding Limited Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory
US11301173B2 (en) 2020-04-20 2022-04-12 Alibaba Group Holding Limited Method and system for facilitating evaluation of data access frequency and allocation of storage device resources
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11409661B2 (en) * 2020-08-18 2022-08-09 Micron Technology, Inc. Logical-to-physical mapping
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
JP2022050016A (ja) * 2020-09-17 2022-03-30 キオクシア株式会社 メモリシステム
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
KR20220140367A (ko) * 2021-04-09 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
JP2023001494A (ja) * 2021-06-21 2023-01-06 キオクシア株式会社 メモリシステムおよび制御方法
EP4180970A1 (en) * 2021-11-15 2023-05-17 Samsung Electronics Co., Ltd. Storage device operating in zone unit and data processing system including the same
CN116540950B (zh) * 2023-07-05 2023-09-29 合肥康芯威存储技术有限公司 一种存储器件及其写入数据的控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789427A (zh) * 2012-07-17 2012-11-21 威盛电子股份有限公司 数据储存装置与其操作方法
CN105740157A (zh) * 2014-11-03 2016-07-06 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN107168640A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储***、信息处理***及非易失性存储器的控制方法
CN107168885A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储***、信息处理***及非易失性存储器的控制方法

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6883063B2 (en) 1998-06-30 2005-04-19 Emc Corporation Method and apparatus for initializing logical objects in a data storage system
US6804674B2 (en) 2001-07-20 2004-10-12 International Business Machines Corporation Scalable Content management system and method of using the same
US7512957B2 (en) 2004-12-03 2009-03-31 Microsoft Corporation Interface infrastructure for creating and interacting with web services
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP5617873B2 (ja) * 2005-06-06 2014-11-05 ソニー株式会社 記憶装置
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20080172519A1 (en) 2007-01-11 2008-07-17 Sandisk Il Ltd. Methods For Supporting Readydrive And Readyboost Accelerators In A Single Flash-Memory Storage Device
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
WO2009153982A1 (ja) 2008-06-20 2009-12-23 パナソニック株式会社 複数区分型不揮発性記憶装置およびシステム
US9323658B2 (en) 2009-06-02 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Multi-mapped flash RAID
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8255661B2 (en) * 2009-11-13 2012-08-28 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
US20110137966A1 (en) 2009-12-08 2011-06-09 Netapp, Inc. Methods and systems for providing a unified namespace for multiple network protocols
JP5589205B2 (ja) 2011-02-23 2014-09-17 株式会社日立製作所 計算機システム及びデータ管理方法
US20120246385A1 (en) 2011-03-22 2012-09-27 American Megatrends, Inc. Emulating spi or 12c prom/eprom/eeprom using flash memory of microcontroller
US20130191580A1 (en) 2012-01-23 2013-07-25 Menahem Lasser Controller, System, and Method for Mapping Logical Sector Addresses to Physical Addresses
JP5687639B2 (ja) 2012-02-08 2015-03-18 株式会社東芝 コントローラ、データ記憶装置及びプログラム
JP5597666B2 (ja) 2012-03-26 2014-10-01 株式会社東芝 半導体記憶装置、情報処理システムおよび制御方法
US9075710B2 (en) 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
CN103176752A (zh) 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
JP6443794B2 (ja) * 2013-08-16 2018-12-26 エルエスアイ コーポレーション ホストとコントローラとの間でパーティション化された変換レイヤ
US20150186259A1 (en) * 2013-12-30 2015-07-02 Sandisk Technologies Inc. Method and apparatus for storing data in non-volatile memory
US10812313B2 (en) 2014-02-24 2020-10-20 Netapp, Inc. Federated namespace of heterogeneous storage system namespaces
KR20150106778A (ko) 2014-03-12 2015-09-22 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 제어 방법
US9959203B2 (en) 2014-06-23 2018-05-01 Google Llc Managing storage devices
NO2988221T3 (zh) * 2014-06-27 2018-01-06
US20160041760A1 (en) 2014-08-08 2016-02-11 International Business Machines Corporation Multi-Level Cell Flash Memory Control Mechanisms
KR20160027805A (ko) 2014-09-02 2016-03-10 삼성전자주식회사 비휘발성 메모리 장치를 위한 가비지 컬렉션 방법
US9977734B2 (en) 2014-12-11 2018-05-22 Toshiba Memory Corporation Information processing device, non-transitory computer readable recording medium, and information processing system
JP6406707B2 (ja) * 2015-03-23 2018-10-17 東芝メモリ株式会社 半導体記憶装置
US10102138B2 (en) 2015-10-22 2018-10-16 Western Digital Technologies, Inc. Division of data storage in single-storage device architecture
US10705952B2 (en) 2015-11-04 2020-07-07 Sandisk Technologies Llc User space data storage management
US9996473B2 (en) 2015-11-13 2018-06-12 Samsung Electronics., Ltd Selective underlying exposure storage mapping
US9990304B2 (en) 2015-11-13 2018-06-05 Samsung Electronics Co., Ltd Multimode storage management system
US9946642B2 (en) 2015-11-13 2018-04-17 Samsung Electronics Co., Ltd Distributed multimode storage management
TWI595492B (zh) 2016-03-02 2017-08-11 群聯電子股份有限公司 資料傳輸方法、記憶體控制電路單元與記憶體儲存裝置
JP6444917B2 (ja) 2016-03-08 2018-12-26 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US20180173619A1 (en) 2016-12-21 2018-06-21 Sandisk Technologies Llc System and Method for Distributed Logical to Physical Address Mapping
US10592408B2 (en) * 2017-09-13 2020-03-17 Intel Corporation Apparatus, computer program product, system, and method for managing multiple regions of a memory device
JP6785205B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP6982468B2 (ja) 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789427A (zh) * 2012-07-17 2012-11-21 威盛电子股份有限公司 数据储存装置与其操作方法
CN105740157A (zh) * 2014-11-03 2016-07-06 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN107168640A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储***、信息处理***及非易失性存储器的控制方法
CN107168885A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储***、信息处理***及非易失性存储器的控制方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765051A (zh) * 2021-01-22 2021-05-07 珠海妙存科技有限公司 降低闪存设备trim消耗的方法、装置及介质
CN112765051B (zh) * 2021-01-22 2022-12-20 珠海妙存科技有限公司 降低闪存设备trim消耗的方法、装置及介质

Also Published As

Publication number Publication date
TWI661301B (zh) 2019-06-01
TW201915741A (zh) 2019-04-16
US10503407B2 (en) 2019-12-10
JP2019057155A (ja) 2019-04-11
US11709597B2 (en) 2023-07-25
US20200057559A1 (en) 2020-02-20
US20230315294A1 (en) 2023-10-05
US20190087089A1 (en) 2019-03-21
CN109542333B (zh) 2022-04-29
US20210349632A1 (en) 2021-11-11
JP6785205B2 (ja) 2020-11-18
US11093137B2 (en) 2021-08-17

Similar Documents

Publication Publication Date Title
CN109542333A (zh) 存储器***及控制非易失性存储器的控制方法
CN109725846B (zh) 存储器***及控制方法
US11954043B2 (en) Memory system and method for controlling nonvolatile memory
JP2020046963A (ja) メモリシステムおよび制御方法
CN109725847A (zh) 存储器***及控制方法
JP6785204B2 (ja) メモリシステムおよび制御方法
US11726707B2 (en) System and method of writing to nonvolatile memory using write buffers
US20220244854A1 (en) Memory system and method for controlling nonvolatile memory
JP7013546B2 (ja) メモリシステム
JP7167295B2 (ja) メモリシステムおよび制御方法
JP7366222B2 (ja) メモリシステムおよび制御方法
JP7204020B2 (ja) 制御方法
JP7490714B2 (ja) メモリシステムおよび制御方法
JP7524443B2 (ja) メモリシステムおよび制御方法
JP2023021450A (ja) メモリシステム

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Tokyo

Applicant after: TOSHIBA MEMORY Corp.

Address before: Tokyo

Applicant before: Pangea Co.,Ltd.

Address after: Tokyo

Applicant after: Kaixia Co.,Ltd.

Address before: Tokyo

Applicant before: TOSHIBA MEMORY Corp.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220124

Address after: Tokyo

Applicant after: Pangea Co.,Ltd.

Address before: Tokyo

Applicant before: TOSHIBA MEMORY Corp.

GR01 Patent grant
GR01 Patent grant