CN103597461B - 闪存组件 - Google Patents

闪存组件 Download PDF

Info

Publication number
CN103597461B
CN103597461B CN201180071483.9A CN201180071483A CN103597461B CN 103597461 B CN103597461 B CN 103597461B CN 201180071483 A CN201180071483 A CN 201180071483A CN 103597461 B CN103597461 B CN 103597461B
Authority
CN
China
Prior art keywords
chip
flash
data
volatile
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180071483.9A
Other languages
English (en)
Other versions
CN103597461A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to CN201610165063.1A priority Critical patent/CN105867840B/zh
Publication of CN103597461A publication Critical patent/CN103597461A/zh
Application granted granted Critical
Publication of CN103597461B publication Critical patent/CN103597461B/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/0608Saving storage space on storage systems
    • 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/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

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)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

非易失性半导体存储***具有:多个非易失性半导体存储介质;具有与多个非易失性半导体存储介质连接的介质接口组(1个以上的接口设备)的控制电路;多个开关。介质接口组和多个开关通过数据总线而连接,各开关和各2个以上的非易失性芯片通过数据总线而连接。开关构成为,切换与介质接口组连接的数据总线和与连接在该开关上的多个非易失性芯片中的任意一个连接的数据总线之间的连接。控制电路将写入对象的数据分割成多个数据要素,通过控制多个开关来切换连接,将多个数据要素分散地发送到多个非易失性芯片。

Description

闪存组件
技术领域
本发明涉及具有多个非易失性半导体存储介质的存储***。
背景技术
存储***一般来说将基于由多个存储设备构成的RAID(RedundantArrayofIndependentDisks:独立冗余磁盘阵列)组生成的逻辑卷提供给上位装置(例如主机计算机)。近年来,作为存储设备,在HDD(HardDiskDrive)的基础上或者取代HDD,采用具有多个非易失性芯片的非易失性半导体存储装置。作为非易失性半导体存储设备例如采用具有多个闪存芯片(以下称为FM芯片)的闪存(例如专利文献1)。
现有技术文献
专利文献
专利文献1:日本特开2010-3161号公报
在非易失性半导体存储设备中,也有增加存储容量的要求。为了使存储容量增加,需要使搭载的非易失性芯片增加,但若要搭载更多的非易失性芯片,则需要在包含与非易失性芯片连接的接口设备在内的电路(以下称为控制电路,例如ASIC(ApplicationSpecificIntegratedCircuit))中准备用于与向多个非易失性芯片发送各种信号的总线连接的管脚。
由此,若要使非易失性半导体存储设备的存储容量增加,则控制电路的大小变大。另一方面,若减小控制电路的大小,则能够连接的非易失性芯片的数量变少,难以增加存储容量。另外,在连接大量的非易失性芯片时,难以高效地进行数据传送。
发明内容
本发明的目的在于提供一种技术,能够抑制控制电路的大小的同时,使能搭载的非易失性芯片的数量增加,并能够高效地进行数据传送。
非易失性半导体存储***具有:(a)多个非易失性半导体存储介质;(b)具有与多个非易失性半导体存储介质连接的介质接口组(1个以上的接口设备)的控制电路;(c)多个开关。介质接口组和多个开关通过数据总线而连接,各开关和各2个以上的非易失性芯片通过数据总线而连接。开关构成为,切换与介质接口组连接的数据总线和与连接在该开关上的多个非易失性芯片中的任意一个连接的数据总线之间的连接。控制电路将写入对象的数据分割成多个数据要素,通过控制多个开关来切换连接,将多个数据要素分散地发送到多个非易失性芯片。
非易失性半导体存储***也可以是具有上述(a)、(b)及(c)要素的存储介质组(例如,后述的闪存PKG10),也可以是具有多个这样的存储介质组的存储装置(例如后述的闪存设备400),还可以是具有多个这样的存储装置和与这些存储装置连接的控制器的***(例如,后述的存储***1)。
也可以是,介质接口组具有多个介质接口,介质接口按N个非易失性半导体存储介质(N是1以上的整数)的每一个而存在。构成1个非易失性半导体存储介质的多个非易失性芯片可以存在于例如1个DIMM中。DIMM可以具有与这些多个非易失性芯片连接的1个以上的开关。
附图说明
图1表示实施方式的计算机***的结构例。
图2表示实施方式的闪存设备的结构例。
图3表示实施方式的闪存组件的结构例。
图4表示实施方式的闪存组件的一部分的详细结构例。
图5是用于说明实施方式的写入处理的第一例的图。
图6是用于说明实施方式的写入处理的第二例的图。
图7是从实施方式的闪存设备的正面上方观察的立体图的一例。
图8是从实施方式的闪存PKG的上表面侧观察的立体图的一例。
图9是从实施方式的闪存PKG的下表面侧观察的立体图的一例。
图10表示实施方式的DIMM的概要结构的一例。
图11表示实施方式的芯片读取处理的流程图的一例。
图12表示实施方式的芯片写入处理的流程图的一例。
图13表示实施方式的芯片多重写入处理的流程图的一例。
图14表示实施方式的一变形例的闪存组件的一部分的详细结构例。
图15表示实施方式的逻辑地址层和物理层的关系的一例。
图16表示实施方式的用户地址空间和闪存存储逻辑空间的关系的一例。
图17表示实施方式的逻辑物理转换信息的结构例。
图18表示实施方式的再生处理的流程图的一例。
图19表示实施方式的擦除管理信息的结构例。
具体实施方式
以下,参照附图说明一实施方式。
此外,在以下的说明中,为了对要素(例如,页、闪存芯片(FM芯片)、开关(SW))进行特定,使用了包含序号的识别信息,但作为识别信息也可以使用不包含序号的信息。
另外,在以下的说明中,在要区别地说明同种要素的情况下,代替要素名和附图标记的组合,使用要素名和识别信息的组合。例如,有时将识别信息(识别序号)“0”的开关表现为“开关#0”。
另外,在以下的说明中,有时将接口设备简记为“I/F”。
另外,在以下的说明中,非易失性半导体存储介质采用闪存(FM)。该闪存是以区块单位进行擦除并以页单位进行访问的种类的闪存,典型的是NAND型的闪存。但是,闪存也可以代替NAND型而为其他种类的闪存(例如NOR型)。另外,也可以代替闪存而采用其他种类的非易失性半导体存储介质,例如相变存储器。
另外,在以下的说明中,非易失性半导体存储介质是如上所述的NAND型闪存。由此,使用页和区块这样的术语。另外,在某逻辑区域(在该段中称为“对象逻辑区域”)是写入目标、且已将页(在该段中称为“第一页”)分配到对象逻辑区域并在第一页中存储有数据的情况下,向对象逻辑区域分配空置的页(在该段中称为“第二页”)来取代第一页,将数据写入到第二页。写入到第二页的数据对于对象逻辑区域来说是最新的数据,存储在第一页中的数据对于对象逻辑区域来说是旧数据。以下,关于各逻辑区域,有时将最新的数据称为“有效数据”,将旧数据称为“无效数据”。另外,有时将存储有有效数据的页称为“有效页”,将存储有无效数据的页称为“无效页”。
首先,说明本实施方式的概况。
如图2所示,闪存设备400例如具有1个以上的闪存组件(闪存PKG)10。如图3所示,闪存PKG10具有多个闪存芯片(FM芯片)32。
作为闪存PKG10的介质接口的一例的FMI/F控制部24对FM芯片32输出芯片使能信号(CE信号)、写入该FM芯片32的数据、和成为该数据的写入目标的地址。在本实施方式中,如图4所示,从FMI/F控制部24输出的CE信号用的信号线27被配置成与多个FM芯片32连接。在FMI/F控制部24中,对1条CE信号线27设置1个输出端子(管脚)即可,从而具有比FM芯片32的个数少的数量的管脚即可。由此,能够减少包含FMI/F控制部24在内的ASIC等的电路中的管脚配置所需的区域。
另外,在本实施方式中,如图4所示,供从FMI/F控制部24输出的数据、地址等的信号(CE信号以外的信号)传输的总线(总线:不包含控制线,但称为总线)25分别与开关31连接。另外,在开关31上通过总线28连接有M个(M为2以上的整数,例如,M=4)FM芯片32。开关31能够切换总线25和任意一条总线28的连接。在对多个FM芯片32的读取和写入中,通过总线25交换数据、地址等,从而在FMI/F控制部24中,只要确保与总线25连接的管脚即可。因此,能够减少包含FMI/F控制部24在内的ASIC等的电路中的管脚配置所需的区域。另外,由于通过开关31连接总线25和多条总线28的任意一条,所以不会成为多条总线28电连接的状态。由此,能够抑制通过总线25与FM芯片32连接的整体布线中的负荷容量,能够使与FM芯片32之间的数据交换的品质较高。
以下,详细说明本实施方式。
图1表示本实施方式的计算机***的结构例。
计算机***具有存储***1和主机计算机(也称为主机)200。存储***1、主机200的数量分别能够为1个以上。存储***1和主机200通过通信网络(例如,SAN(StorageAreaNetwork))而相互连接。存储***1存储主机200所利用的数据。主机200执行各种处理,从存储***1读取数据,或向存储***1写入数据。
存储***1具有多个存储设备和与这些多个存储设备连接的RAID(RedundantArrayofIndependent(orInexpensive)Disks的简写))控制器设备300。
多个存储设备包括多种存储设备。至少1种的存储设备可以存在1个以上。作为存储设备例如存在闪存设备400、SSD(SolidStateDrive)设备500、HDD(HardDiskDrive)设备(SAS:SerialAttachedSCSI)600及HDD设备(SATA:SerialATA)700。
RAID控制器设备300具有多个RAID控制器301。各RAID控制器301通过内部总线与闪存设备400、SSD设备500、HDD设备(SAS)600及HDD设备(SATA)700连接。
此外,RAID控制器301是对于闪存设备400、SSD设备500、HDD设备(SAS)600及HDD设备(SATA)700来说的上位装置的一例。RAID控制器301从对于RAID控制器301来说的上位装置(例如,主机200)接受I/O指令,根据该I/O指令,进行向闪存设备400、SSD设备500、HDD设备(SAS)600或HDD设备(SATA)700的访问控制。RAID控制器301也可以将闪存设备400、SSD设备500、HDD设备(SAS)600、HDD设备(SATA)700的各自的存储区域分别作为不同的存储层次来管理,对数据的写入目标的逻辑区域,进行分配任意的存储层次的存储区域的处理。
这里,具有以下特征,SSD设备500的闪存的能写入次数比闪存设备400多,而在读取速度及成本方面,闪存设备400更好。由此,RAID控制器301可以将读取较频繁地进行的数据存储在闪存设备400中,将写入较频繁地进行的数据存储在SSD设备500中。
图2表示本实施方式的闪存设备的结构例。
闪存设备400具有1个以上的上位I/F开关(上位I/FSwitch)401和1个以上的闪存组件(PKG)10。上位I/F开关401进行RAID控制器301和多个闪存PKG10之间的数据的中继。
图3表示本实施方式的闪存组件的结构例。
闪存PKG10作为主存储器的一例而具有DRAM(DynamicRandomAccessMemory)11,还具有FM控制器20和多个(或1个)DIMM(DualInlineMemoryModule)30。DRAM11存储FM控制器20所使用的数据等。DRAM11可以搭载在FM控制器20上,也可以搭载在与FM控制器20不同的部件上。
FM控制器20例如由1个ASIC(ApplicationSpecificIntegratedCircuit)构成,具有CPU21、内部总线22、上位I/F(接口)23和多个(或1个)FMI/F控制部24。内部总线22能够通信地连接CPU21、上位I/F23、DRAM11、FMI/F控制部24。
上位I/F23连接在上位I/F开关401上,对与上位装置之间的通信进行中继。上位I/F23是例如SAS的I/F。FMI/F控制部24对与多个FM芯片32的数据交换进行中继。在本实施方式中,FMI/F控制部24具有多组执行与FM芯片32的交换的总线(数据总线等),并使用多条总线来对与多个FM芯片32的数据交换进行中继。在本实施方式中,按每个DIMM30设置FMI/F控制部24,FMI/F控制部24对和与该控制部24连接的DIMM30所具有的多个FM芯片32之间的通信进行中继。此外,FMI/F控制部24管理的DIMM30的片数也可以是2个以上。CPU21通过执行存储在DRAM11(或未图示的其他存储区域)中的程序,能够执行各种处理。CPU21也可以设置多个,多个CPU21可以分担各种处理。关于CPU21进行的具体处理,将在后说明。
DIMM30具有1个以上的SW31和多个FM芯片32。FM芯片32是例如MLC(MultiLevelCell)型的NAND闪存芯片。MLC型的FM芯片具有如下特征,虽然能改写的次数比SLC型的FM芯片少,但每个单元的存储容量多。
SW31通过包含数据总线在内的总线25与FMI/F控制部24连接。在本实施方式中,SW31相对于包含与FMI/F控制部24连接的数据总线在内的一组总线25,一一对应地设置。另外,SW31通过包含数据总线在内的总线28与多个FM芯片32连接。SW31能够有选择地切换并连接来自FMI/F控制部24的总线25和任意一个FM芯片32的总线28。这里,由于在DIMM30中设有SW31和多个FM芯片32,并被布线,所以不需要另行准备用于连接它们的连接器,能够期待减少必要的连接器数量。
此外,根据图3,FM芯片32不通过其他的FM芯片32地连接在SW31上,但FM芯片32也可以通过其他的FM芯片32地连接在SW31上。即,也可以在SW31上连接串联的2个以上的FM芯片32。
图4表示本实施方式的闪存组件的一部分的详细结构例。
FMI/F控制部24具有ECC(ErrorCorrectingCode)电路241、控制寄存器242、FM/SW控制部243、缓存器244、FM总线协议控制部(在图中记作“协议1、协议2”)246、DMA(DirectMemoryAccess)部247。在本实施方式中,缓存器244、FM总线协议控制部246及DMA部247的组具有FMI/F控制部24管理的数据总线的数量(例如,2组)。
在DRAM11中,如下所述,写入对象的数据被分割成多个数据要素。ECC电路241从DRAM11读取写入对象的数据要素,执行生成写入对象的数据要素所对应(例如所附加)的纠错码的纠错处理,并将写入对象的数据要素和与该数据要素对应的纠错码写入到缓存器244中。
另外,ECC电路241从缓存器244读取包含读取对象的数据要素和与该数据要素对应的纠错码在内的数据,使用与该数据要素对应的纠错码来判断读取对象数据要素是否发生了错误。在该判断结果是肯定的情况下,ECC电路241执行对读取对象数据要素的错误进行校正的纠错处理。ECC电路241将读取对象的数据存储在DRAM11中。
在本实施方式中,ECC电路241负责对与多条数据总线连接的多个FM芯片32的纠错码生成处理、纠错处理。此外,执行纠错码生成处理的代码生成电路部和执行纠错处理的纠错电路部可以是1个,也可以是多个。若抑制代码生成电路部和/或纠错电路部的数量,则能够抑制FMI/F控制部24的大小。此外,关于代码生成电路部,由于电路规模较小,所以代码生成电路部可以存在多个。在任意的情形下,至少纠错电路部关于多条数据总线是共用的,从而能够期待电路规模的减小。
控制寄存器242存储用于控制对FM芯片32的访问所需的信息。控制访问所需的信息例如通过CPU21的控制、FM总线协议控制部246而设定。
FM/SW控制部243与控制寄存器242的设定相应地输出用于切换DIMM30的多个SW26的信号(切换信号)和用于选择访问对象的FM芯片32的芯片使能信号(CE信号)。在本实施方式中,在FM/SW控制部243上连接有多条CE信号线27(27-1、27-2、27-3)、和对这些多条CE信号线27共同的切换信号用的信号线26(切换信号线)。各CE信号线27连接在位于不同的SW31的下位的不同的FM芯片32上。
与FM/SW控制部243连接的切换信号线26连接在DIMM30的多个SW31(SW1、SW2)上。由此,向多个SW31供给相同的切换信号。例如,关于同一DIMM30中的多个SW31的全部,在同一序号的管脚上连接有与同一CE信号线27连接的FM芯片32。在该情形下,只要使这些多个SW31接收相同的切换信号,就能够使各SW31的连接目标为与同一CE信号线27连接的FM芯片32。由此,能够使多个数据要素的写入目标为与同一CE信号线27连接的多个FM芯片32,因此,能够期待并行地写入这些多个数据要素。
与FM/SW控制部243连接的CE信号线27与多个SW31管理的多个FM芯片32连接。在本实施方式中,CE信号线27-1连接在FM#1-1和FM#2-1上,CE信号线27-2连接在FM#1-2和FM#2-2上,同样地,CE信号线27-N连接在FM#1-N和FM#2-N上。通过这样的结构,CE信号大致同时地供给到与同一CE信号线27连接的多个FM芯片32。由此,这些FM芯片32能够大致同时且并行地工作。在本实施方式中,当被供给切换信号时,在SW#1及#2中,以包含分别与同一CE信号线27连接的FM芯片32的数据总线在内的总线连接到FMI/F控制部24上的方式进行切换。
缓存器244临时存储向FM芯片32的写入对象数据要素及其纠错码。另外,缓存器244临时存储从FM芯片32读取的读取对象数据要素及其纠错码。
DMA247读取存储在缓存器244中的写入对象数据要素及其纠错码,并将它们写入到FM芯片32中。另外,DMA247从FM芯片32读取读取对象数据要素及其纠错码,并将它们写入到缓存器244中。
FM总线协议控制部246根据控制寄存器242的设定向FM芯片32发出(输出)指令(读取指令、程序指令)。另外,FM总线协议控制部246确认FM芯片32针对指令的工作结果(状态),并将工作结果设定于控制寄存器242。
在DMA247上连接有数据总线,在FM总线协议控制部246上连接有指令用的信号线,包含数据总线、指令用的信号线等在内的总线25连接在SW31上。
在SW31上连接有切换信号线26,并且连接有包含数据总线在内的总线25。在本实施方式中,在SW#1及#2上连接有同一切换信号线26。另外,在SW31上连接有包含与多个FM芯片32相连的数据总线在内的总线28。SW31基于通过切换信号线26而供给的切换信号,有选择地将多条总线28中的任意1条连接到总线25上。根据该SW31,能够通过1条总线25执行对多个FM芯片32的访问。另外,由于SW31有选择地将多条总线28的任意1条连接到总线25上,所以能够抑制发送信号时的总线的负荷容量,能够高品质地维持信号的品质。在本实施方式中,当被供给切换信号时,在SW#1及#2中,以包含分别与同一CE信号线27连接的FM芯片32的数据总线在内的总线28连接到与FMI/F控制部24相连的总线25上的方式进行切换。
图5是用于说明本实施方式的写入处理的第一例的图。
FM控制器20将写入对象的数据(写入数据)存储到DRAM11,并将写入数据分割成多个数据要素(#0~#6等),将这些多个数据要素传送到多个FM芯片32。这里所说的“写入数据”典型的是RAID控制器301从主机200接收到的数据的一部分或全部。另外,数据要素的大小是基于FM芯片32的页大小和ECC的大小而得到的大小。数据要素被压缩并存储在页中的情况下,数据要素的大小也可以是页大小以上。在页中存储数据要素和ECC。
以下,详细说明写入处理的具体例。
首先,FM控制器20(例如CPU21)切换SW#1,将FM芯片#1-1和总线25-1连接起来,通过总线25-1向FM芯片#1-1传送数据要素#0。数据要素#0被写入到FM芯片#1-1的页#000。另外,FM控制器20(例如CPU21)切换SW#2,将FM芯片#2-1和总线25-2连接起来,通过总线25-2向FM芯片#2-1传送数据要素#1。数据要素#1被写入到FM芯片#2-1的页#100。此外,FM控制器20可以通过与FM芯片#1-1及#2-1连接的CE信号线27-1发送CE信号。由此,能够向FM芯片#1-1及#2-1并行地写入数据要素#0及#1。
同样地,FM控制器20切换SW#3,向FM芯片#3-1传送数据要素#2,并切换SW#4,向FM芯片#4-1传送数据要素#3。此外,FM控制器20可以通过与FM芯片#3-1及#4-1连接的CE信号线27发送CE信号。由此,能够向FM芯片#3-1及#4-1并行地写入数据要素#2及#3。
接着,FM控制器20通过总线25-1向FM芯片#1-1传送数据要素#4。数据要素#4被写入到FM芯片#1-1的页001。同样地,FM控制器20向FM芯片#2-1传送数据要素#5,并向FM#3-1传送数据要素#6。
这里,当FM控制器20向FM芯片#1-1传送数据要素#0时,总线25-1成为占用(busy)状态,占用状态期间不能通过总线25-1传送数据。另外,向FM芯片#1-1传送的数据要素#0被存储在FM#1-1内的缓存器(未图示)之后,被写入到页#000。FM#1-1直到被存储在缓存器中的数据要素#0的写入完成为止成为占用状态。一般来说,写入处理的情况下,FM芯片32的占用状态的时间比总线25的占用状态的时间长。由此,FM控制器20将数据要素#4向FM芯片#1-1传送时,也存在FM芯片#1-1为占用状态的情况,但在该情况下,FM控制器20在FM芯片#1-1的占用状态被解除之后传送数据要素#4。
此外,在上述流程中,DRAM11上的数据要素(例如#0)被存储在与该数据要素的传送目标的FM芯片32(例如#1-1)所连接的SW31(例如#1)连接的缓存器244(例如#1)中。通过来自CPU21的指令,协议控制部246(例如#1)使DMA247(例如#1)起动。起动的DMA247将缓存器244(例如#1)内的数据要素(例如#0)传送到该数据要素的存储目标的FM芯片32(例如#1-1)。若数据要素(例如#0)被写入到了FM芯片32(例如#1-1),则从该FM芯片32(例如#1-1)将完成状态发送到协议控制部246(例如#1)。协议控制部246(例如#1)可以将表示接收了该完成状态的信息写入到控制寄存器242中。CPU21通过参考控制寄存器242,能够得知数据要素(例如#0)已被写入到FM芯片32(例如#1-1)中。
以上,FM控制器20将写入数据分割成多个数据要素,将连续的2个以上的数据要素依次传送到不同的FM芯片32。由此,能够利用总线25及FM芯片32成为占用状态的时间,对其他的总线及其他的FM芯片32传送数据,从而能够高效地传送数据。
此外,还有其他的写入数据被存储在DRAM11中的情况下,FM控制器20预先从包含存储有前一次的写入数据的末端的数据要素的页在内的FM芯片32(例如#1-1)的下一个FM芯片32(例如#2-1),存储该其他的写入数据。其他的写入数据也被分割成多个数据要素,这些多个数据要素被并行地写入。而且,数据要素被写入直到FM芯片#1-1、#2-1、#3-1及#4-1(也就是说第一级的FM芯片组)的末端页的情况下,FM控制器20将各SW31的连接目标从属于第一级FM芯片组的FM芯片32切换到属于其他级的FM芯片组的FM芯片(例如,属于第二级FM芯片组的FM芯片#1-2、#2-2、#3-2、4-2),并向该FM芯片32传送数据要素。然后,在发生了对被存储的写入数据的覆盖写入(将闪存设备400提供的逻辑地址空间的同一逻辑区域作为写入目标的写入)的情况下,FM控制器20切换SW31,将数据分散地传送到第n级的FM芯片组、第(n+1)级的FM芯片组、……(n是1以上的整数)。在该处理中,在第n级的FM芯片组的FM芯片32是占用状态时,FM控制器20可以将数据要素传送到第(n+1)级的FM芯片组的FM芯片32。
在本实施方式中,如上所述,CE信号线27在多个FM芯片32(正确地来说,与不同的SW31连接的多个FM芯片32)中是共有的。FM控制器20切换SW#1,将FM芯片#1-1和总线25-1连接起来,并切换SW#2,将FM芯片#2-1和总线25-2连接起来,由此,能够向FM#1-1和FM#2-1并行地传送连续的2个数据要素#0及#1。而且,FM控制器20在将数据要素#0向FM芯片#1-1传送、将数据要素#1向FM芯片#2-1传送之后,通过CE信号线27-1发送CE信号,由此,同时地(并行)起动FM芯片#1-1和FM芯片#2-1。由此,FM芯片#1-1(#2-2)写入所接收的数据要素#0(#1)。
也就是说,FM控制器20将写入数据分割成多个数据要素,并依次选择SW,使SW的连接目标为与同一CE信号线连接的FM芯片32,将连续的2个以上的数据要素分别并行地传送到与同一CE信号连接的2个以上的FM芯片32,并通过该同一CE信号线发送CE信号。由此,能够更高效地写入写入数据。FM控制器20传送多个数据要素时,也可以以分别独立地切换各SW的方式进行控制,还可以以同步地切换各SW的方式进行控制。
图15表示本实施方式的逻辑地址层和物理层的关系的一例。
逻辑地址层1401是闪存设备400向上位装置(例如,RAID控制器301或主机200)提供的逻辑地址空间。这里,逻辑地址可以是例如LBA(LogicalBlockAddress)。逻辑地址空间1401被分割成多个逻辑区域1411而进行管理。
物理层1405是多个FM芯片32所具有的存储空间,由多个区块1452构成。各区块1452由多个页1453构成。
逻辑区域1411与物理页1453相关联。表示哪个页1453与哪个逻辑区域1411对应的逻辑物理转换信息例如被存储在FM控制器20所具有的存储区域(例如DRAM11)。该信息也可以备份到1个以上的FM芯片32中。
例如,在图15中,从LBA0x00到0x07的逻辑区域1411被分配给FM芯片#1-1的区块#00的页#000,从LBA0x08到0x0F的逻辑区域1411被分配给FM芯片#2-1的区块#10的页#100。像这样,从对于闪存设备20来说的上位装置之一的RAID控制器301发出了对LBA0x00到0x07的任意的LBA进行了指定的读取请求的情况下,FM控制器20接受该读取请求,根据该读取请求,基于逻辑物理转换信息,从页#000读取数据要素,并将该读取到的数据要素返回给上位装置。
图17表示逻辑物理转换信息的结构例。
逻辑物理转换信息T601按每页而包含具有页的区块的序号、页的序号、页的属性(有效页、无效页或空置页)及页的分配目标的逻辑区域的逻辑地址(例如起始地址)。CPU21通过参考该信息T601,能够确定如下信息:在哪个FM芯片中存在空置区块、哪个FM芯片组中的区块是有效页最少的区块、及哪个页被分配给哪个逻辑区域等。此外,该段所说的“FM芯片组”是1个以上的FM芯片32,例如,与同一FMI/F控制部24连接的多个FM芯片32、与同一SW31连接的多个FM芯片32或特定的FM芯片32。
然而,RAID控制器301被主机200指定的逻辑地址、和RAID控制器301对闪存设备400指定的逻辑地址可以相同,但在本实施方式中,它们不同。
以下,参照图16说明基于FM控制器20的写入数据的分散写入、和基于RAID控制器301的RAID的条带化(striping)之间的不同的一例。
图16表示本实施方式的用户地址空间和逻辑地址空间的关系的一例。
用户地址空间3001由LU(LogicalUnit)序号及其逻辑地址(LBA)决定。在该图中,LU3011存在多个,各LU3011由多个逻辑区块3021构成。逻辑区块3021被分配给不同的多个闪存存储逻辑空间3002的同一逻辑地址的多个逻辑区块3022。由1个以上的逻辑区块3022构成了上述的逻辑区域1411(参照图15)。闪存存储逻辑空间3002典型的是闪存设备400提供的逻辑地址空间1401。
根据该图,与用户地址空间3001相关的条带化是指1个逻辑区块3021跨着不同的多个闪存存储逻辑空间3002。另一方面,与闪存存储逻辑空间3002(逻辑地址空间1401)相关的条带化根据图15是指地址连续的2个以上的逻辑区域1411跨着共用CE信号线27的不同的2个以上的FM芯片32。
此外,LU3011也可以是包含向基于精简配置(ThinProvioning)的虚拟的LU(TP-LU)的区域分配的段在内的池LU。池LU是构成容量池的LU,被分割成多个段而进行管理。段被分配给TP-LU的区域。该情况下,段也可以由1个以上的逻辑区块3021构成。
图6是用于说明本实施方式的写入处理的第二例的图。
在发生了写入主机#A的数据要素#A(例如,页大小以下的写入数据、或写入数据中的末尾的数据要素)的处理、和写入主机#B的数据要素#B(例如,页大小以下的写入数据、或写入数据中的起始数据要素)的处理的情况下,FM控制器20决定如下:将数据要素#A存储到FM芯片32中,将数据要素#B存储到连接在与该FM芯片32相同的CE信号线27上的其他FM芯片32中,将数据要素#A及#B大致同时(并行)地写入到这些FM芯片32中。由此,能够迅速地写入来自多个主机的数据。
图7是从闪存设备400的正面上方观察的立体图的一例。
关于闪存设备400,呈能够安装在标准化的宽19英寸的机架上的形状的闪存设备400的高度为例如2U。闪存设备400例如能够装填12个(3列×4级)闪存PKG10。
图8是从闪存PKG10的上表面侧观察的立体图的一例,图9是从闪存PKG10的下表面侧观察的立体图的一例。
在闪存PKG10的上表面侧,作为ASIC的FM控制器20被配置在该PKG10的平面方向上的大致中央,在其近前侧及里侧各配置有2个DIMM30。另外,在闪存PKG10的下表面侧,在相对于FM控制器20的下表面的区域的近前侧及里侧分别配置有2个DIMM30。因此,在闪存PKG10中配置有8个DIMM。像这样,由于将FM控制器20配置在大致中央,所以能够使从FM控制器20向各DIMM30的布线长度大致均等。
图10表示DIMM30的概要结构的一例。
DIMM30例如具有8个FM芯片32和2个SW31。1个SW31进行总线向4个FM芯片32的切换。
此外,DIMM30所具有的FM芯片32的数量及SW31的数量不限于图10所示的数量。
另外,DIMM30也可以具有ECC电路34。另外,也可以按每个FM32而具有ECC电路35。在DIMM30或FM32具有ECC电路的情况下,FMIF控制部24也可以不具有ECC电路241。
以下,说明闪存PKG10中的工作。以下,说明FMIF控制部24具有ECC电路241的情况下的处理,但在DIMM30或FM32具有ECC电路的情况下,DIMM30或FM32的ECC电路进行纠错处理。
图11表示芯片读取处理的流程图的一例。
芯片读取处理是指从FM芯片32读取数据要素的处理。这里,在芯片读取处理之前,FM控制器20的CPU21对读取对象的FM芯片32进行特定,对FMI/F控制部24的控制寄存器242进行用于从该特定的FM芯片32读取数据要素的控制用的设定。
首先,FM/SW控制部243以总线25连接到读取源的FM芯片32上的方式,通过切换信号线26发送SW31的切换信号。由此,SW31切换连接,读取源的FM芯片32被连接到总线25上(步骤1201)。
FM/SW控制部243通过与读取源的FM芯片32相连的CE信号线27驱动CE信号,使读取对象的FM芯片32成为有效(步骤1202)。然后,FM总线协议控制部246通过总线25发出读取指令(步骤1203)。由此,读取指令通过总线25、SW31、总线28被发送到读取源的FM芯片32。然后,DMA247从读取源的FM芯片32读取读取对象的数据要素,并将该数据要素存储到缓存器244中(步骤1204)。
然后,FM总线协议控制部246从FM芯片32获取针对指令的状态,将状态存储在控制寄存器242中。CPU21参考控制寄存器242,对读取正常结束的情况进行检查(步骤1205),在正常结束的情况下,通过ECC电路241对读取到缓存器244的数据要素进行纠错处理,并向DRAM11传送(步骤1206)。由此,在DRAM11中存储有读取对象的数据要素。此外,这以后,CPU21从DRAM11读取读取对象的数据,并向上位的装置发送。
图12是芯片写入处理的流程图的一例。
芯片写入处理是指向FM芯片32写入数据要素的处理。这里,在芯片写入处理之前,FM控制器20的CPU21对写入对象的FM芯片32进行特定,对FMI/F控制部24的控制寄存器242进行用于将数据要素写入该特定的FM芯片32的控制用的设定。另外,写入对象的数据要素通过CPU21被存储在DRAM11中。
CPU21从DRAM11读取写入对象的数据要素,将该数据要素向ECC电路241传送。ECC电路241生成与写入对象的数据要素对应的ECC,将包含写入对象的数据要素和ECC在内的数据(这里,在该处理流程中,称为写入数据)向缓存器244存储(步骤1301)。
然后,FM/SW控制部243以总线25连接到写入目标的FM芯片32上的方式,通过切换信号线26发送SW31的切换信号。由此,SW31切换连接,写入目标的FM芯片32被连接到总线25上(步骤1302)。
FM/SW控制部243通过与写入目标的FM芯片32相连的CE信号线驱动CE信号,使写入目标的FM芯片32成为有效(步骤1303)。然后,FMI/F子控制部246通过总线25发出程序指令(写入指令)(步骤1304)。由此,程序指令通过总线25、SW31、总线28而发送到写入目标的FM芯片32。然后,DMA247从缓存器244读取写入数据,并将该数据向FM芯片32传送(步骤1305)。
然后,FM总线协议控制部246从FM芯片32获取针对指令的状态,并将状态存储到控制寄存器242中。CPU21参考控制寄存器242,对写入正常结束的情况进行检查(步骤1306),在正常结束的情况下,结束处理。
图13是芯片多重写入处理的流程图的一例。
芯片多重写入处理是指将多个数据要素并行地写入到多个FM芯片中的处理。这里,在芯片多重写入处理之前,FM控制器20的CPU21对写入目标的多个FM芯片32进行特定,对FMI/F控制部24的控制寄存器242进行用于向这些FM芯片32写入的控制用的设定。在本实施方式中,与同一CE信号线27连接的多个FM芯片32被特定为写入目标。另外,写入对象的数据要素通过CPU21被存储在DRAM11中。
CPU21从DRAM11读取向FM芯片32(这里,例如,为与SW#1连接的FM芯片#1-1)写入的写入对象的数据要素,将该数据要素向ECC电路241传送。ECC电路241生成与该写入对象的数据要素对应的ECC,将包含写入对象的数据要素和ECC在内的数据(在该处理流程中,称为写入数据)向缓存器#1存储(步骤1401)。然后,从DRAM11读取向连接在与FM芯片#1-1相同的CE信号线27-1上的FM芯片32(例如,与SW#2连接的FM芯片#2-1)写入的写入对象的数据要素,将该数据要素向ECC电路241传送。ECC电路241生成与该写入对象的数据要素对应的ECC,将包含该写入对象的数据要素和ECC在内的数据(写入数据)向缓存器#2存储(步骤1402)。
然后,FM/SW控制部243以总线25-1及25-2连接到写入目标的多个FM芯片#1-1及#2-1上的方式,通过切换信号线26发送SW#1及#2的切换信号。由此,SW#1及#2切换连接,写入目标的多个FM芯片#1-1及#2-1连接到总线25-1及25-2上(步骤1403)。
FM/SW控制部243通过与写入目标的FM芯片#1-1及#2-1相连的CE信号线27-1驱动CE信号,使与该CE信号线27-1连接的多个FM芯片32成为有效(步骤1404)。
然后,FMI/F子控制部#1通过总线25-1发出程序指令(写入指令)(步骤1405)。由此,程序指令通过总线25-1、SW#1、总线28而被发送到写入目标的FM芯片#1-1。另外,与其并行地,FMI/F子控制部#2通过总线25-2发出程序指令(写入指令)(步骤1406)。由此,程序指令通过总线25-2、SW#2、总线28而被发送到写入目标的FM芯片#2-1。
然后,DMA#1从缓存器#1读取写入数据,将该数据向FM芯片#1-1传送,并且大致同时(并行)地,DMA#2从缓存器#2读取写入数据,将该数据向FM芯片#2-1传送(步骤1307)。
然后,FM总线协议控制部246从FM芯片#1-1及#2-1获取针对指令的状态,并将状态存储到控制寄存器242中。CPU21参考控制寄存器242,对写入正常结束的情况进行检查(步骤1308),在正常结束的情况下,结束处理。
根据该多重写入处理,能够大致同时(并行)地对多个FM芯片32写入多个数据要素,从而能够缩短写入处理所需的时间。
此外,在芯片写入处理及芯片多重写入处理的任意一个中,都能够进行为了使擦除次数均等的损耗均衡(wear-leveling)处理。损耗均衡处理也可以与这些写入处理非同步地进行。
根据与写入处理非同步地进行的损耗均衡处理,例如,以任意的定时,FM控制器20(例如CPU21)选择擦除次数最多的区块,使有效数据从该选择的区块内的有效页移动到擦除次数最少的区块。移动源的区块和移动目标的区块可以在同一FM芯片32中,也可以在不同的FM芯片32中。后者的情况下,优选不同的FM芯片32共用CE信号线27。
根据写入处理中进行的损耗均衡处理,FM控制器20从写入目标的FM芯片32选择擦除次数最少的区块来作为写入目标,向该区块写入数据要素。此外,在该处理中,例如,在图13或图14中,也可以是,FM控制器20在选择CE信号线27的阶段,选择擦除次数合计最少的CE信号线27,从与该CE信号线27连接的FM芯片32,选择该FM芯片32中擦除次数最少的区块。FM控制器20的存储区域(例如DRAM11)也可以存储图19例示的擦除管理信息1901。该信息1901按每条CE信号线27及每个区块,表示区块的擦除次数。CE信号线27的擦除次数合计是指共用该CE信号线27的全部FM芯片32的全部区块的擦除次数的合计。对区块进行了擦除处理的情况下,FM控制器20可以更新与该区块对应的擦除次数、和与具有该区块的FM芯片32所连接的CE信号线27对应的擦除次数合计。能够根据该信息1901来特定各区块的擦除次数、和与各CE信号线27相关的擦除次数合计。
以下,说明生成能够进行再生处理即擦除处理的区块的处理。
图18是再生处理的流程图的一例。
再生处理例如以FM控制器20检测到FM芯片32中的能利用的容量耗尽的情况为契机,通过FM控制器20执行。容量耗尽是指空置区块的数量小于规定比例(规定数量)。容量耗尽的检测可以以任意单位进行,也可以按某DIMM上的多个FM而进行。再生处理可以在写入处理中检测到空置区块耗尽时开始进行,也可以与写入处理非同步地进行。
FM控制器20从空置区块耗尽的FM芯片(以下,在图18中称为“空置耗尽芯片”)32选择移动源的区块(步骤1701)。这里,移动源的区块优选为空置耗尽芯片32(或者,在空置耗尽芯片32中直到末端页写入了数据的区块(擦除候补区块))中的有效页最少的区块。这是因为,要移动的有效数据的总量最少,因此,能够期待抑制再生处理花费的时间及负荷。此外,移动源区块也可以从空置耗尽芯片32以外的FM芯片32中选择。
CPU21进行如下判断:在与能够和具有步骤1701中选择的移动源区块的FM芯片32进行数据通信的FMIF控制部24(或者,总线25或SW31)相同的控制部24(或者,总线25或SW31)连接的多个FM芯片32中,空置区块是否为规定数量以上(步骤1702)。这里所说的“规定数量”可以在全部的FM芯片32中相同也可以不同。
若步骤1702的判断结果是肯定的,则CPU21将与同一控制部24(或者,总线25或SW31)连接的多个FM芯片32的空置区块选择为移动目标区块(步骤1703)。可以将与同一总线25或SW31连接的多个FM芯片32的空置区块优先选择为移动目标区块。假设与同一总线25或SW31连接的多个FM芯片32中没有规定数量的空置区块,则还可以将同一控制部24中的与不同的总线25或SW31连接的多个FM芯片32的空置区块选择为移动目标区块。该情况被认为更容易维持条带(地址的连续的2个以上的数据要素被配置在同一CE信号线27的不同的FM芯片32(总线25不同的FM芯片32)中的情况)。例如,若在图5中通过再生处理而使存储在FM#1-1中的数据要素#0存储到FM#3-1中,则数据要素#0和数据要素#2存在于相同的FM。在该状态下,当发生数据要素的读取/写入时,由于总线25-3及FM#3-1的占用时间重合,所以读取/写入花费时间。通过限制再生的范围,能够维持数据要素的条带状态,在以后的读取/写入处理中,也能够进行高效的数据传送。
若步骤1703的判断结果为否定的,则CPU21将与不同的控制部24(或者,总线25或SW31)连接的多个FM芯片32的空置区块选择为移动目标区块(步骤1704)。
步骤1703或1704之后,即,移动源区块和移动目标区块决定了之后,CPU21使移动源区块内的有效数据移动到移动目标区块(步骤1705)。即,CPU21从移动源区块读取有效数据并写入到DRAM11中,将该有效数据从DRAM11写入到移动目标区块中。此时,ECC电路241进行纠错处理。此外,CPU21也可以在决定移动目标区块之前,从移动源区块读取有效数据并写入到DRAM11中。另外,在DIMM30具有ECC电路的情况下,能够在DIMM30中进行纠错处理,从而能够不将移动源区块的数据存储到DRAM11中地将数据向移动目标区块传送。同样地,在FM32具有ECC电路的情况下,能够在FM32中进行纠错处理,从而能够不将移动源区块的数据存储到DRAM11中地将数据向移动目标区块传送。像这样,在DIMM30或FM32中具有ECC电路的情况下,FMI/F控制部24执行数据传送,从而能够减少CPU21的处理负荷。
从移动源区块读取的有效数据被写入到移动目标区块后,移动源区块内的数据全部成为无效数据。CPU21对移动源区块进行擦除处理(步骤1706)。由此,移动源区块作为空置区块而被管理,再次成为能够作为写入目标而被选择的状态。此外,可以在该擦除处理时更新图19例示的信息1900。即,与移动源区块对应的擦除次数、和与具有移动源区块的FM芯片32所连接的CE信号线27对应的擦除次数合计可以被更新。
以上是本实施方式的再生处理。
此外,在步骤1703或1704中,优选将所选择的FM芯片32中的擦除次数最少的空置区块选择为移动目标区块。由此,能够进行高精度的擦除次数的平均化。另外,也可以根据擦除次数将多个区块分成多个组,从擦除次数少的组中选择区块。该情况下,检索区块的时间缩短。
另外,在步骤1701中,也可以将多个区块选择为移动源区块,在步骤1703及1704中,也可以将多个空置区块选择为移动目标区块。该情况下,多个移动源区块优选从共用CE信号线27的多个FM芯片32中选择,但也可以从与不同的CE信号线27连接的多个FM芯片32中选择。这是因为,与芯片写入处理相比,芯片读取处理的成为芯片占用的时间短,也就是说,对性能的影响小。另一方面,多个移动目标区块优选从共用CE信号线27的多个FM芯片32中选择。而且,在有效数据移动(步骤1705)时,优选多个有效数据并行地被写入到共用CE信号线27的多个FM芯片32中。另外,在步骤1706中执行擦除处理时,在同一CE27上存在能够擦除的区块的情况下,它们也能够同时(并行)地擦除。一般来说,由于擦除处理花费时间,所以对多个区块集中地执行擦除处理是有效率的。
以下,说明本实施方式的刷新处理。
刷新处理可以对具有有效页的区块定期(例如,从该区块的前一次刷新处理起经过了30日的情况下)进行,也可以在存在读取时的ECC错误为规定位数以上的区块的情况下以该区块为对象而进行。刷新处理由FM控制器20执行。
在刷新处理中,FM控制器20将刷新处理的对象的区块作为移动源的区块。然后,实施如下处理:(1)决定移动目标的区块、(2)将有效数据从移动源区块移动到目标区块、及(3)对移动源区块进行擦除处理。关于这些(1)~(3),与上述再生处理相同。
以上,对一个实施方式进行了说明,但本发明不限于该实施方式,当然在不脱离其主旨的范围内能够进行各种变更。
例如,在上述实施方式中,作为非易失性半导体存储介质的一例采用了NAND型的闪存,但非易失性半导体存储介质不限于此。例如,存储介质也可以是相变存储器。
另外,在上述实施方式中,搭载多个FM芯片32的存储器模块是DIMM30,但也可以采用DIMM以外的存储器模块。
另外,在上述实施方式中,同一DIMM30中的多个FM芯片32通过同一CE信号线27而连接,但不同的DIMM30的多个FM芯片32也可以通过同一CE信号线27而连接。
另外,在上述实施方式中,在闪存设备400中,能够将多个数据要素并行地写入到多个FM芯片32中。即,单位时间能够写入的数据的量大。由此,RAID控制器301也可以以如下方式进行控制,即:使闪存设备400内的数据量(或者,闪存设备400间的数据传送中的传送单位的数据量)大于闪存设备400以外的种类的存储设备(例如,SSD设备500、HDD设备(SAS)600或HDD设备(SATA)700)的相关的数据传送中的传送单位的数据量。
另外,例如,闪存PKG10的结构可以采用图14所示的结构。图14所示的闪存PKG还能够通过SW33对CE信号线27进行切换。在FM/SW248上连接有CE信号线27。CE信号线27与总线25一起连接在SW#1上。CE信号线27还连接在SW#2上。SW33(#1、#2)通过包含CE信号线及数据总线在内的总线29而与多个FM芯片32连接。SW33基于通过切换信号线26供给的切换信号,有选择地将多条总线29的任意1条连接到总线25及CE信号线27上。根据该结构,在FMI/F控制部24中能够减少要输出的CE信号线27的条数,并能够使FMI/F控制部24的芯片尺寸小型化。
附图标记说明
1…存储***,10…闪存PKG,400…闪存设备。

Claims (14)

1.一种闪存组件,其特征在于,具有:
第一开关,其有选择地连接在多个第一闪存芯片的任意一个上;
第二开关,其有选择地连接在多个第二闪存芯片的任意一个上;
闪存控制器,其通过第一数据总线而连接在所述第一开关上,通过第二数据总线而连接在所述第二开关上,并且,通过切换信号线而连接在所述第一开关和所述第二开关双方上,
所述闪存控制器实施如下处理:
将写入数据分成多个数据要素,
控制所述第一开关以将所述第一数据总线连接到所述多个第一闪存芯片中的一个第一闪存芯片上,控制所述第二开关以将所述第二数据总线连接到所述多个第二闪存芯片中的一个第二闪存芯片上,该控制是通过所述切换信号线向所述第一开关和所述第二开关双方供给一个切换信号而进行的,
将所述多个数据要素中的2个数据要素并行地分别发送到所述多个第一闪存芯片中的所述一个第一闪存芯片和所述多个第二闪存芯片中的所述一个第二闪存芯片。
2.如权利要求1所述的闪存组件,其特征在于,
还具有连接在所述闪存控制器上的多条芯片使能信号线,所述多条芯片使能信号线的每一条连接在所述多个第一闪存芯片中的一个第一闪存芯片及所述多个第二闪存芯片中的一个第二闪存芯片上。
3.如权利要求2所述的闪存组件,其特征在于,
所述多条芯片使能信号线包括第一芯片使能信号线及第二芯片使能信号线,
(A)所述闪存控制器通过所述第一芯片使能信号线发送芯片使能信号,并且,以通过所述第一芯片使能信号线接收芯片使能信号的非易失性芯片成为连接目标的方式分别控制所述第一开关和所述第二开关,
(B)所述闪存控制器将所述多个数据要素中的连续的2个以上的数据要素并行地发送到共用所述第一芯片使能信号线的2个以上的非易失性芯片,
(C)所述闪存控制器将与所述(B)中接收了数据要素的非易失性芯片连接的开关的连接目标切换到通过所述第二芯片使能信号线接收芯片使能信号的非易失性芯片,
(D)所述闪存控制器通过所述第二芯片使能信号线发送芯片使能信号,
(E)所述闪存控制器将所述多个数据要素的剩余数据要素中的连续的2个以上的数据要素并行地发送到共用所述第二芯片使能信号线的2个以上的非易失性芯片。
4.如权利要求3所述的闪存组件,其特征在于,
所述闪存控制器按每条芯片使能信号线来管理对区块进行的擦除处理次数的合计,
作为多个数据要素的传送目标而被选择的非易失性芯片是共用擦除处理最少的芯片使能信号线的多个非易失性芯片,
在非易失性芯片中,成为数据要素的写入目标的区块是擦除次数最少的区块。
5.如权利要求4所述的闪存组件,其特征在于,
各非易失性芯片具有多个区块,
所述闪存控制器构成为能进行再生处理,
在所述再生处理中,所述闪存控制器实施如下处理:
(r1)从多个区块中选择移动源区块,
(r2)从所述多个区块决定移动目标区块,
(r3)将所述移动源区块的页内的有效数据移动到所述移动目标区块,
(r4)进行从所述移动源区块擦除数据的擦除处理,
在所述(r2)中,所述移动目标区块是由能够与如下介质接口进行数据通信的非易失性芯片决定的,该介质接口能够与具有所述移动源区块的非易失性芯片进行数据通信。
6.如权利要求5所述的闪存组件,其特征在于,
在所述闪存控制器中通过2条以上的数据总线而将2个以上的所述开关连接到所述介质接口上,
所述移动源区块和所述移动目标区块存在于能够通过同一数据总线进行数据通信的1个以上的非易失性芯片中。
7.如权利要求5所述的闪存组件,其特征在于,
在所述(r2)中,所述闪存控制器判断在能够通过用于与具有所述移动源芯片区域的非易失性芯片进行数据通信的数据总线相同的数据总线进行数据通信的1个以上的非易失性芯片中,空置的芯片区域是否为规定数量以上,若该判断结果是肯定的,则从该1个以上的非易失性芯片中将任意的空置的芯片区域决定为移动目标芯片区域,若该判断结果是否定的,则从能够与如下介质接口进行数据通信的2个以上的非易失性芯片中将空置的芯片区域决定为移动目标芯片区域,该介质接口是和能够与具有所述移动源芯片区域的非易失性芯片进行数据通信的介质接口不同的介质接口。
8.一种闪存组件,其特征在于,具有:
第一开关,其有选择地连接在多个第一闪存芯片的任意一个上;
第二开关,其有选择地连接在多个第二闪存芯片的任意一个上;
闪存控制器,其通过第一数据总线而连接在所述第一开关上,通过第二数据总线而连接在所述第二开关上,并且,通过切换信号线而连接在所述第一开关和所述第二开关双方上,
所述闪存控制器实施如下处理:
将写入数据分成多个数据要素,
基于通过所述切换信号线向所述第一开关和所述第二开关双方供给一个切换信号,使得所述第一开关将所述第一数据总线连接到所述多个第一闪存芯片中的一个第一闪存芯片上、并使得所述第二开关将所述第二数据总线连接到所述多个第二闪存芯片中的一个第二闪存芯片上,
将所述多个数据要素中的2个数据要素并行地分别发送到所述多个第一闪存芯片中的所述一个第一闪存芯片和所述多个第二闪存芯片中的所述一个第二闪存芯片。
9.如权利要求8所述的闪存组件,其特征在于,
还具有连接在所述闪存控制器上的多条芯片使能信号线,所述多条芯片使能信号线的每一条连接在所述多个第一闪存芯片中的一个第一闪存芯片及所述多个第二闪存芯片中的一个第二闪存芯片上。
10.如权利要求9所述的闪存组件,其特征在于,
所述多条芯片使能信号线包括第一芯片使能信号线及第二芯片使能信号线,
(A)所述闪存控制器通过所述第一芯片使能信号线发送芯片使能信号,并且,以通过所述第一芯片使能信号线接收芯片使能信号的非易失性芯片成为连接目标的方式分别控制所述第一开关和所述第二开关,
(B)所述闪存控制器将所述多个数据要素中的连续的2个以上的数据要素并行地发送到共用所述第一芯片使能信号线的2个以上的非易失性芯片,
(C)所述闪存控制器将与所述(B)中接收了数据要素的非易失性芯片连接的开关的连接目标切换到通过所述第二芯片使能信号线接收芯片使能信号的非易失性芯片,
(D)所述闪存控制器通过所述第二芯片使能信号线发送芯片使能信号,
(E)所述闪存控制器将所述多个数据要素的剩余数据要素中的连续的2个以上的数据要素并行地发送到共用所述第二芯片使能信号线的2个以上的非易失性芯片。
11.如权利要求10所述的闪存组件,其特征在于,
所述闪存控制器按每条芯片使能信号线来管理对区块进行的擦除处理次数的合计,
作为多个数据要素的传送目标而被选择的非易失性芯片是共用擦除处理最少的芯片使能信号线的多个非易失性芯片,
在非易失性芯片中,成为数据要素的写入目标的区块是擦除次数最少的区块。
12.如权利要求11所述的闪存组件,其特征在于,
各非易失性芯片具有多个区块,
所述闪存控制器构成为能进行再生处理,
在所述再生处理中,所述闪存控制器实施如下处理:
(r1)从多个区块中选择移动源区块,
(r2)从所述多个区块决定移动目标区块,
(r3)将所述移动源区块的页内的有效数据移动到所述移动目标区块,
(r4)进行从所述移动源区块擦除数据的擦除处理,
在所述(r2)中,所述移动目标区块是由能够与如下介质接口进行数据通信的非易失性芯片决定的,该介质接口能够与具有所述移动源区块的非易失性芯片进行数据通信。
13.如权利要求12所述的闪存组件,其特征在于,
在所述闪存控制器中通过2条以上的数据总线而将2个以上的所述开关连接到所述介质接口上,
所述移动源区块和所述移动目标区块存在于能够通过同一数据总线进行数据通信的1个以上的非易失性芯片中。
14.如权利要求12所述的闪存组件,其特征在于,
在所述(r2)中,所述闪存控制器判断在能够通过用于与具有所述移动源芯片区域的非易失性芯片进行数据通信的数据总线相同的数据总线进行数据通信的1个以上的非易失性芯片中,空置的芯片区域是否为规定数量以上,若该判断结果是肯定的,则从该1个以上的非易失性芯片中将任意的空置的芯片区域决定为移动目标芯片区域,若该判断结果是否定的,则从能够与如下介质接口进行数据通信的2个以上的非易失性芯片中将空置的芯片区域决定为移动目标芯片区域,该介质接口是和能够与具有所述移动源芯片区域的非易失性芯片进行数据通信的介质接口不同的介质接口。
CN201180071483.9A 2011-09-30 2011-09-30 闪存组件 Active CN103597461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610165063.1A CN105867840B (zh) 2011-09-30 2011-09-30 闪存组件及非易失性半导体存储器组件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/072653 WO2013046463A1 (ja) 2011-09-30 2011-09-30 不揮発半導体記憶システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610165063.1A Division CN105867840B (zh) 2011-09-30 2011-09-30 闪存组件及非易失性半导体存储器组件

Publications (2)

Publication Number Publication Date
CN103597461A CN103597461A (zh) 2014-02-19
CN103597461B true CN103597461B (zh) 2016-04-27

Family

ID=47993759

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610165063.1A Active CN105867840B (zh) 2011-09-30 2011-09-30 闪存组件及非易失性半导体存储器组件
CN201180071483.9A Active CN103597461B (zh) 2011-09-30 2011-09-30 闪存组件

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610165063.1A Active CN105867840B (zh) 2011-09-30 2011-09-30 闪存组件及非易失性半导体存储器组件

Country Status (5)

Country Link
US (2) US8949511B2 (zh)
EP (1) EP2704015A4 (zh)
JP (1) JP5635200B2 (zh)
CN (2) CN105867840B (zh)
WO (1) WO2013046463A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201441813A (zh) * 2013-04-19 2014-11-01 Genesys Logic Inc 資料存取系統、資料存取裝置及資料存取控制器
US10013322B2 (en) * 2013-06-03 2018-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US10540099B2 (en) * 2013-12-12 2020-01-21 Commissariat à l'énergie atomique et aux énergies alternatives System for managing the wear of an electronic memory
US10521387B2 (en) 2014-02-07 2019-12-31 Toshiba Memory Corporation NAND switch
US10204003B2 (en) 2014-08-27 2019-02-12 Hitachi, Ltd. Memory device and storage apparatus
WO2016072007A1 (ja) * 2014-11-07 2016-05-12 株式会社日立製作所 半導体メモリデバイス、ストレージシステム及び計算機
CN104679682B (zh) * 2015-03-18 2017-12-01 四川特伦特科技股份有限公司 基于高速dsp的通信板
CN109348730B (zh) * 2015-09-18 2022-05-24 株式会社日立制作所 存储器控制器、存储器控制方法以及半导体存储装置
JP6517685B2 (ja) * 2015-12-22 2019-05-22 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
JP6765321B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
JP6847797B2 (ja) * 2017-09-21 2021-03-24 キオクシア株式会社 半導体記憶装置
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
CN108610384B (zh) * 2018-05-31 2022-02-22 沈阳药科大学 基于肠道mct1载体蛋白设计的前药及其制备方法
JP6716757B2 (ja) * 2019-06-19 2020-07-01 キオクシア株式会社 メモリシステムおよび制御方法
US11119658B2 (en) * 2019-11-01 2021-09-14 Micron Technology, Inc. Capacity expansion channels for memory sub-systems
US11513976B2 (en) * 2020-03-31 2022-11-29 Western Digital Technologies, Inc. Advanced CE encoding for bus multiplexer grid for SSD
US11392325B2 (en) * 2020-09-28 2022-07-19 Quanta Computer Inc. Method and system for parallel flash memory programming

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1607509A (zh) * 2003-08-16 2005-04-20 三星电子株式会社 用于构成具有协处理器的无线终端的高速缓存存储器的装置和方法
CN101122887A (zh) * 2007-01-17 2008-02-13 晶天电子(深圳)有限公司 一种采用数据区域切换指针缓冲硬盘驱动器的闪存卡

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127564B2 (en) * 2003-02-28 2006-10-24 Standard Microsystems Corporation Double buffered flash programming
US8176238B2 (en) * 2003-12-02 2012-05-08 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
JP4288421B2 (ja) 2004-03-12 2009-07-01 日本電気株式会社 Cpuとの対応を制御する主記憶システム及び主記憶装置
DE102004058528B3 (de) 2004-12-04 2006-05-04 Hyperstone Ag Speichersystem mit Sektorbuffern
DE102006035612B4 (de) * 2006-07-31 2011-05-05 Qimonda Ag Speicherpuffer, FB-DIMM und Verfahren zum Betrieb eines Speicherpuffers
US7676625B2 (en) * 2006-08-23 2010-03-09 Sun Microsystems, Inc. Cross-coupled peripheral component interconnect express switch
US8135890B2 (en) * 2008-05-28 2012-03-13 Rambus Inc. Selective switching of a memory bus
JP5253901B2 (ja) 2008-06-20 2013-07-31 株式会社東芝 メモリシステム
JP5489434B2 (ja) 2008-08-25 2014-05-14 株式会社日立製作所 フラッシュメモリ搭載ストレージ装置
JP5404804B2 (ja) * 2009-05-25 2014-02-05 株式会社日立製作所 ストレージサブシステム
US20100318719A1 (en) * 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
CN101930798B (zh) * 2009-06-25 2014-04-16 联发科技股份有限公司 闪存装置、存储器装置以及控制闪存装置的方法
US8447917B2 (en) * 2009-06-25 2013-05-21 Mediatek Inc. Flash memory devices and methods for controlling a flash memory device
US8463979B2 (en) * 2009-09-08 2013-06-11 Ocz Technology Group Inc. Non-volatile storage devices, methods of addressing, and control logic therefor
US8285946B2 (en) * 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1607509A (zh) * 2003-08-16 2005-04-20 三星电子株式会社 用于构成具有协处理器的无线终端的高速缓存存储器的装置和方法
CN101122887A (zh) * 2007-01-17 2008-02-13 晶天电子(深圳)有限公司 一种采用数据区域切换指针缓冲硬盘驱动器的闪存卡

Also Published As

Publication number Publication date
JPWO2013046463A1 (ja) 2015-03-26
US9335929B2 (en) 2016-05-10
EP2704015A4 (en) 2014-11-05
WO2013046463A1 (ja) 2013-04-04
CN103597461A (zh) 2014-02-19
JP5635200B2 (ja) 2014-12-03
US20130086305A1 (en) 2013-04-04
CN105867840B (zh) 2018-10-16
EP2704015A1 (en) 2014-03-05
US20150106555A1 (en) 2015-04-16
CN105867840A (zh) 2016-08-17
US8949511B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
CN103597461B (zh) 闪存组件
CN103650054B (zh) 包含存储器***控制器的设备和相关方法
CN103635968B (zh) 包含存储器***控制器的设备和相关方法
US8819338B2 (en) Storage system and storage apparatus
CN103635969B (zh) 包含存储器***控制器的设备和相关方法
US8606988B2 (en) Flash memory control circuit for interleavingly transmitting data into flash memories, flash memory storage system thereof, and data transfer method thereof
US9298534B2 (en) Memory system and constructing method of logical block
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
WO2014061055A1 (en) Storage sysyem which includes non-volatile semiconductor storage medium, and storage control method of storage system
US8738866B2 (en) Storage system and control method therefor
US20090292862A1 (en) Flash memory module and storage system
US9442834B2 (en) Data management method, memory controller and memory storage device
CN102099866A (zh) 专用闪存参考单元
CN106557432B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN110347613B (zh) 多租户固态盘中实现raid的方法、控制器及多租户固态盘
US10365834B2 (en) Memory system controlling interleaving write to memory chips
CN109101186A (zh) 数据储存装置与数据储存方法
JP5782556B2 (ja) 不揮発半導体記憶システム
JP5968508B2 (ja) 不揮発半導体記憶システム
CN101751982B (zh) 闪存存储装置中闪存控制器与闪存芯片之间的连接方法

Legal Events

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