CN101930343B - 使用基于数据属性的数据传输的数据存储系统和方法 - Google Patents
使用基于数据属性的数据传输的数据存储系统和方法 Download PDFInfo
- Publication number
- CN101930343B CN101930343B CN201010212347.4A CN201010212347A CN101930343B CN 101930343 B CN101930343 B CN 101930343B CN 201010212347 A CN201010212347 A CN 201010212347A CN 101930343 B CN101930343 B CN 101930343B
- Authority
- CN
- China
- Prior art keywords
- data
- cohort
- storer
- data unit
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Signal Processing (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明的一些实施例提供了数据存储系统,其包括多个存储器和通过公共信道与多个存储器相耦合的控制电路。控制电路配置为通过公共信道将各个数据单元顺序传输到所述多个存储器的多个预定的组群的每一个内的各个存储器,并且基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。该属性可以涉及与数据单元相关联的编程时间。例如,该属性可以包括数据单元的位有效性。
Description
对相关申请的交叉引用
本申请要求于2009年06月22日向韩国知识产权局提交的专利申请No.10-2009-0055442的优先权,其全部内容通过引用而被合并于此。
技术领域
本发明涉及数据存储器件及其操作方法,更具体地,涉及使用共享公共数据信道的多个存储器件的数据存储系统及其操作方法。
背景技术
诸如台式计算机和笔记本计算机的计算机系统可以包括主存储器和外部存储器件。通常优选外部存储器件以相对较低的价格提供高存储密度。
通常使用的外部存储器件包括使用磁盘存储介质的硬盘驱动器(HDD)。这样的磁盘存储器件可以以相对较低的价格提供大的容量,但其操作可能包括相对复杂的机械操作,例如磁性传感器头的机械控制。磁盘存储器件同时易受到来自物理冲击的损伤,可以认为磁盘存储器件具有相对较低的可靠性。
传统的半导体存储器,诸如DRAM(动态随机存取存储器)或SRAM(静态随机存取存储器),通常不被用作基于磁盘的外部存储器的替代。虽然半导体型外部存储器件可以提供比磁盘驱动器更快的访问,并且不易于受到机械损伤,但是使用这样的器件作为外部大容量存储器存在几个缺点。例如,SRAM器件的单位容量的价格与磁盘驱动器相比一般较高。在DRAM器件中保持数据所需的附加的功率可能增加了使用这样的器件的成本。与DRAM刷新操作有关的功率消耗可能使得难以在移动应用中使用DRAM。
然而,基于闪存的器件可以提供用于外部存储器的磁盘驱动器的可行性替代。典型的闪存器件可以被多次编程。闪存器件同时可以具有相对简单的结构,这可以使得制造成本较低。闪存器件可以是低功率的、小巧、轻便和抗物理冲击的,因此闪存适合用于移动应用中。
发明内容
本发明的一些实施例提供了数据存储系统,其包括多个存储器和通过公共信道与多个存储器相耦合的控制电路。控制电路配置为通过公共信道,将各个数据单元顺序传输到多个存储器的多个预定的组群的每一个内的各个存储器,并且基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。属性可以涉及与数据单元相关联的编程时间。例如,属性可以包括数据单元的位有效性。
在一些实施例中,控制电路可以配置为根据存储器的编程模式,基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。
在一些实施例中,控制电路可以配置为将第一接收的数据单元传输到第一组存储器中的第一存储器,并且执行第二接收的数据单元到第一组存储器中的第二存储器的直接连续的传输,而不用等待由第一存储器的针对第一单元的写入操作的完成。
在一些实施例中,控制电路可以配置为根据存储器的编程模式,基于单元的位有效性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。
在另外的实施例中,控制电路可以配置为基于存储器的就绪/忙碌状态,将数据单元条件传输到存储器。例如控制电路可以配置为延迟数据单元到存储器的传输,直到存储器的就绪状态的指示为止。
本发明的另外的实施例提供了操作数据存储系统的方法,数据存储系统包括多个配置成通过公共信道接收数据的多个存储器。该方法包括:通过公共信道,将各个数据单元顺序传输到多个存储器的多个预定的组群的每一个内的各个存储器;并且基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。
另外的实施例提供了控制数据存储系统的装置。该装置包括:接口电路,配置成通过公共信道传输数据到多个存储器;和控制电路,与接口电路相耦合并且配置为控制其数据传输,控制电路配置为通过公共信道,将各个接收的数据单元顺序传输到多个存储器的多个预定的组群的每一个内的各个存储器,并且基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。
附图说明
图1为根据本发明的一些实施例的数据存储系统的方框图。
图2为根据本发明的一些实施例的闪存的阵列结构的方框图。
图3为根据本发明的一些实施例的说明数据存储操作的图。
图4为说明根据本发明的一些实施例的编程模式的数据存储操作的图。
图5为说明根据本发明的另一些实施例的另一种编程模式的数据存储操作的图。
图6为说明根据本发明的一些实施例的数据存储操作的流程图。
图7为说明根据本发明的一些实施例的数据存储系统中的数据流的图。
图8为说明根据本发明的一些实施例的数据传输信道的状态的图。
图9为说明根据本发明的一些实施例的数据存储系统中状态检查操作的图。
图10A和图10B为说明应用到根据本发明的一些实施例的数据存储系统的闪存的编程模式的操作
图11为包括根据本发明的一些实施例的数据存储系统的计算系统的方框图。
图12为包括根据本发明的一些实施例的数据存储系统的存储卡的方框图。
具体实施方式
参考示出本发明的实施例的图,下文中描述了本发明的一些实施例。然而本发明可以以很多不同形式实施,不应当解释为仅限于此处所列的实施例。相反的,提供了这些实施例使得该公开是彻底的和完整的,向本领域的技术人员完整转达了本发明的范围。全文相同的图标记指的是相同的项。
可以理解的是,当一个项被称作是“连接”或“耦合”到另一个项时,其可以是直接连接或耦合到另一个项,或者可以存在居间项。相反,当一个项被称作是“直接连接”或“直接耦合”到另一个项时,没有居间项存在。如在此使用的,术语“和/或”包括有关所列的项的一个或多个的任何和全部的组合,可以缩写为“/”。
应该理解到,虽然术语第一、第二等在此用作描述不同的项,但是这些项可以不限于这些术语。这些术语仅用于将一个项与另一个区别开。例如,“第一”项可以称为“第二”项,类似地,“第二”项可以被称为“第一”项而不背离本公开的教导。
此处使用的术语仅用于描述具体的实施例而不是试图限制本发明。如此处所用,单数形式“一个”、“一”和“该”同样试图包括复数形式,除非上下文另外明确指出。还应该理解,当“包含(comprise)”或“包括(include)”使用在本说明书中时,确定了所述的项或操作的存在而没有排除一个或多个其他项或操作的存在和添加。
除非另外定义,所有在此使用的术语(包括技术的和科技的术语)具有与通常能够被该发明所属的技术领域的一个普通技术人员理解的相同的含义。还应该理解到那些定义在通用词典中的术语应该解释为具有在相关技术领域和/或本申请中的上下文中的含义相一致的含义,而不应该以理想化或过度正式的意义解释,除非此处特别定义。
图1为示出根据本发明的一些实施例的数据存储系统的方框图。如图1所示,数据存储系统可以采用包括闪存的存储介质2000,但其他实施例可以使用除了闪存的存储介质。例如,其他半导体存储器,诸如电荷捕获型(CTF)存储器、变阻存储器(使用可变电阻元件)、铁电体存储器等,可以在一些实施例中作为存储介质。在一些实施例中,本发明的实施例可以实现在存储卡、固态驱动器/磁盘(SSD)、便携存储/复制器件等。
数据存储系统包括控制器电路1000和存储介质2000。控制器电路1000通过一个或多个信道与外部设备(例如主机)通信。该信道可以符合接口标准,诸如并行ATA硬盘接口规范(PATA)、串行ATA硬盘接口规范(SATA)、通用串行总线(USB)、小型计算机系统接口电路(SCSI)、串行连接SCSI(SAS)、外设组件互连新标准PCI-Express、增强型小型磁盘接口电路(ESDI)或集成设备电子(IDE)。控制器电路1000包括主机接口电路1100、闪速接口电路1200、处理器电路1300和缓冲器RAM(随机存取存储器)电路1400。应该意识到,控制器电路1000可以包括其他元件。例如,虽然未在图中示出,控制器电路1000可以包括纠错编码(ECC)电路,其能够检查和纠正从存储介质2000读出的数据的错误。
主机接口电路1100配置为与外部设备(例如主机计算机)接口连接,闪速接口电路1200配置为与存储介质2000接口连接。处理器电路1300配置为全面控制控制器电路1000的操作。缓冲器RAM电路1400用于临时存储待写入存储介质2000的数据或从存储介质2000读出的数据。此外,缓冲器RAM电路还可以用作处理器电路1300的工作存储器。
继续参考图1,存储介质2000可以通过一个或多个信道1500连接到控制器电路1000。每个信道1500提供控制器电路1000和多个非易失性存储器2100之间的通信,使得存储器2100共同使用关联的信道1500。在一些实施例中,所有的信道1500可以连接到相同类型的非易失性存储器,而在其他实施例中,不同的信道可以连接到不同类型的非易失性存储器(例如:闪存、PRAM(相变随机存取存储器)、MRAM(磁阻式随机存取存储器)等)。非易失性存储器2100可以包括例如单层(每单元单比特)闪存、多层(每单元多个比特)闪存、One-NAND闪存(包括闪存内核和存储器控制逻辑的单芯片)、PRAM、MRAM等。例如,第一信道可以连接到多个单层闪存,第二信道可以连接到多个多层闪存,而第三信道可以连接到One-NAND闪存、PRAM或MRAM。或者,每个信道可以连接到单层或多层闪存。具有平面阵列结构或三维垂直信道阵列结构的闪存可以应用到存储介质2000中。
在一些实施例中,连接到信道的闪存(例如闪存芯片)可以划分为多个组群。例如,每单元存储2比特的存储器可以划分成至少两个组群(下文中称为第一组群和第二组群)。类似地,每单元存储M比特的存储器可以划分为M个组群。应该意识到,也可以基于其他条件定义组群。
控制器电路1000可以通过信道1500中的至少一个传输数据,使得数据传输可以基于被传输的数据的至少一个属性在组群间转变(transition)。例如,该属性可以包括数据的位有效性。例如,对于传输到每单元存储2比特的存储器,属性可以是传输的数据为LSB数据或MSB数据。如果多个存储器划分为第一组群和第二组群,并且多个存储器的每一个每单元存储2比特,则当发送到当前选中的组群中的存储器的数据从低位变化为高位数据时,可以发生第一和第二组群的变化。如果发送到当前选中的组群中的存储器的数据保持低位,则至少一个信道由控制器电路1000驱动,使得将数据传输到当前选中的组群中的存储器而无需组群变化。该技术能够减少由于存储器的忙碌状态引起的延迟数据传输的需求,还可以减少峰值功率。
图2为示出根据本发明的一些实施例的闪存2100’的阵列结构的方框图。参考图2,闪存2100’可以包括存储单元阵列,该单元阵列存储数据信息并且由多个存储块组成。在图2中,图示了一个存储块。余下的存储块可以基本上如图2所示同样配置。存储块包括多个耦合到各个位线BL0、BL1、...、BLn-1的串STR。每个串STR包括连接到位线的串选(string select)晶体管SST、连接到共源极向CSL的地选(ground select)晶体管GST和顺序连接在串选晶体管SST和地选晶体管GST之间的单元晶体管M0、M1、M2、M3、...、M30、M31。单元晶体管M0、M1、M2、M3、...、M30、M31分别具有连接到字线WL0、WL1、WL2、WL3、...、WL30、WL31的栅极。串选晶体管SST和地选晶体管GST分别连接到对应的串选线SSL和地选线GSL。每个单元晶体管M0、M1、M2、M3、...、M30、M31可以存储单比特数据或多比特数据。在图2中,存储单元的每一个包括浮栅晶体管M0、M1、M2、M3、...、M30、M31,但是,在其他实施例中,可以使用其他类型的单元。例如,一些实施例可以使用电荷捕获型(CTF)存储单元、PRAM单元、FRAM(铁电体存储器)单元、RRAM(冗余随机存取存储器)单元等。
出于下述操作描述的目的,假设八个闪存(例如芯片)连接到一个信道,并且闪存中的每一个包括配置为存储2比特数据的存储单元。利用这个假设,八个闪存可以划分为两组群,即,第一组群和第二组群。第一组群包括四个闪存C1、C3、C5、C7和第二组群包括四个闪存C2、C4、C6、C8。该分组用于说明的目的,本发明不局限于这样的分组。
参考图1,当由主机请求写入操作时,要被存储在存储介质2000中的数据可以从主机传输到控制器电路的缓冲器RAM电路1400。存储在缓冲器RAM电路1400中的数据可以在处理器电路1300的控制下(例如根据由处理器电路1300执行的闪速转变逻辑(FTL)的控制),通过信道1500发送到存储介质2000。
根据一些实施例,当写入请求产生时,组群和存储器(芯片)选择可以完成。例如组群和存储器选择可以根据应用到数据存储系统的映射方法不同地完成。例如,组群和存储器选择可以由控制器电路1000基于有关前面执行的写入操作的信息完成,例如,最后写入的芯片的信息和包括最后写入的芯片的组群的信息。例如可以使用映射表来确定这样的信息。在一些实施例中,当请求写入信息时,可以进行组群选择。在该情况下,可以根据指定的顺序依次选择在选中的组群中的存储器。
如果组群和存储器选择根据写入请求完成,则待编程的数据可以通过信道传输到选中的组群中的选中的存储器中。该信道可以通过闪速接口电路1200利用待编程的数据驱动。载入到信道上的数据可以发送到选中的组群中的选中的存储器。如果数据传输到选中的组群中的选中的存储器,则选中的存储器可以执行编程操作。在选中的组群的选中的存储器中的待编程的数据为高位数据还是低位数据可以根据编程模式来确定,下面更详细地说明。高位数据和低位数据(或,低位数据、中间数据和高位数据)的确定可以通过在驱动信道之前发送到选中的闪存地址或者通过传输到选中的闪存的数据的属性完成。
待编程的数据可以顺序地传输到选中的组群中的闪存。在待编程的数据顺序地发送到选中的组群中的闪存之后,可以确定由当前选中的组群中的闪存执行的编程操作为高阶位编程操作还是低阶位编程操作。该确定可以基于编程模式和/或通过信道发送的地址完成。如果由当前选中的组群中的闪存执行的编程操作为高阶位编程操作,则可以做出组群变化。在新改变的组群中的闪存可以按如上的方法编程。
在一些实施例中,编程操作可以包括高阶位编程操作、低阶位编程操作、中阶位编程操作等。执行低阶位编程操作所需时间可能不同于中阶位或高阶位编程操作。该时间可以被限制,例如,基于允许的编程时间(例如最大编程循环时间)而不考虑存储单元的恶化(老化)。这意味着该编程时间可以用作改变组群所需的基准。
尽管做出了群组变化,但是先前选择的群组和当前选择的群组可以根据编程模式执行相同的编程操作一次或多次。但是,如果一个群组变为另一个群组,则对于大部分情况来说,当前选择的群组中的闪存可以执行与先前选择的群组中的闪存不同的编程操作。下面将更完整地进行描述。使用根据本发明的一些实施例的操作可以减少同时编程的闪存的数目(或,同时具有忙碌状态的存储器的数目)。这可以减小峰值电流,或者减小峰值功率的概率增加了。
在一些实施例中,可以利用硬件和/或硬件和软件(固件)的组合执行操作。例如,软件可以包括闪速转变层(FTL)驱动器。由闪速接口电路1200的信道驱动可以在FTL的控制下发生。
图4为说明根据本发明的一些实施例的一个编程模式的编程操作。假设2比特数据,即LSB数据和MSB数据存储在每一个存储单元中。如图4所示,LSB数据可以在与字线WL0连接的存储单元中编程,LSB数据在与字线WL1连接的存储单元中,而MSB数据在与字线WL0连接的存储单元中。随后,LSB数据可以存储在与字线WL2连接的存储单元中,MSB数据在与字线WL1连接的存储单元中,LSB数据在与字线WL3连接的存储单元中。余下的存储单元可以按如上的相同顺序编码。该编程模式可以称为“阴影”编程模式。
结合图3参考图4,在该编程模式中,在第一组群Group0中的闪存(例如C1、C3、C5、C7)的每个存储块的字线可以被选中,如图4所示。在图4中,没有阴影的部分指示连接到其中LSB数据被编程的存储单元的字线,阴影的部分指示连接到其中MSB数据被编程的存储单元的字线。同样地,在第二组群Group1中的闪存(例如C2、C4、C6、C8)的每个存储单块的字线可以被选中,如图4所示。
图5为说明根据本发明的另一些实施例的用于另一个编程模式的操作。假定2比特数据,即LSB数据和MSB数据存储在每个存储单元中。LSB数据和MSB数据可以在与字线WL0连接的存储单元中顺序编程。然后,LSB数据和MSB数据可以在与字线WL1连接的存储单元中顺序编程。与余下的字线WL2-WL31的每一个连接的存储单元可以按如上的方法编程。
对于上述编程模式,在第一组群Group0中的闪存(例如C1、C3、C5、C7)的每个存储块的字线可以被选中,如图5所示。在图5中,没有阴影的部分指示用于LSB数据编程的字线,阴影的部分指示用于MSB数据编程的字线。同样地,在第二组群Group1中的闪存(例如C2、C4、C6、C8)的每个存储单元的字线可以被选中,如图5所示。
图6为说明根据本发明的一些实施例的操作的流程图,图7为示出根据这样的操作通过信道的每个组群的闪存的数据流,图8为示出这样的操作的信道状态的图。假定2比特数据,即LSB数据和MSB数据存储在每个存储单元中,并且与信道连接的闪存划分为第一组群Group0的存储器C1、C3、C5、C7和第二组群Group1的存储器C2、C4、C6、C8。
写入操作的请求从外部设备(例如主机计算机)(框S100)收到。该请求可以包括待存储在数据存储系统中的数据可以传输到缓冲器RAM电路1400。响应于写入请求,确定指示组群的值g和指示组群中的闪存的值i(框S110)。例如,如上,值g和i可以根据与之前刚刚执行的写操作关联的信息设置。出于说明目的,假定变量g和i分别设为-1和1,以选择第一组群Group0和第一组群Group0的第一闪存C1(当g为-1时,选中第一组群Group0,当g为1时,选中第二组群Group1)。
闪速接口电路1200(见图1)可以利用待传输到第一组Group0的第一闪存C1的数据P1(见图7)驱动信道。根据数值g和i可以完成存储器选择。例如,通过确定数值g+2i可以完成存储器选择(框S120)。如上,由于数值g和i分别为-1和1,因此g+2i等于1。选中的组群(即对应于g的第一组群Group0)的第一闪存C1可以通过g+2i选中。于是确定表示选中的组群的闪存的数值i是否为4(框S130)。换句话说,可以确定当前选中的闪存是否为选中的组群中的最后的闪存。如果当前选中的闪存不是选中的组群中的最后的闪存,数值i可以增加1(框S150),然后确定传输到信道的数据是否为最后的数据(框S150)。即,可以判断从主机发送的数据是否全部存储在存储介质2000中。如果是,则从主机请求的写入操作可以终止。如果否,则进程返回到基于新的数值i载入数据(框S120)。由于数值i增加1,因此数据P2(见图7)可以传输到由g+2i选中的第一组群Group0的第二闪存C3。
如图7所示,利用上述操作,页数据P1、P2、P3和P4可以分别发送到第一组群Group0的闪存C1、C3、C5、C7。如果数值i达到4,则页数据P1、P2、P3、P4到第一组群Group0的各个闪存C1、C3、C5、C7的传输完成,如图7所示。发送到第一组群Group0的各个闪存C1、C3、C5、C7的页数据P1、P2、P3、P4可以是LSB数据。这可以通过编程模式确定,如上所述。
然后可以确定发送到当前选中的组群的闪存的数据是否为MSB数据(框S160)。如上所述,该确定可以基于应用的编程模式或发送到选中的闪存的地址完成。由于发送到第一组群Group0的各个闪存C1、C3、C5、C7的页数据P1、P2、P3、P4可以是LSB数据,因此该进程进行将数值i初始化为1(框S180)。然后,确定传输到信道的数据是否为最后的数据(框S 150),即,确定从主机发送的全部数据是否已经存储,如果是,则从主机请求的写入操作可以终止。如果否,则该进程返回到基于新的数值i载入数据(框S120)。
在组群没有变化的条件下,如图7所示,页数据P5、P6、P7、P8可以传输到第一组群Group0的各个闪存C1、C3、C5、C7。页数据P5、P6、P7、P8可以是LSB数据。这可以基于应用的编程模式或在数据之前发送到选中的闪存的地址完成。由于页数据P5、P6、P7、P8可以是LSB数据,因此没有组群变化。在这种条件下,页数据P9、P10、P11、P12可以传输到第一组群Group0的各个闪存C1、C3、C5、C7。页数据P9、P10、P11、P12可以是MSB数据。这可以基于应用的编程模式或发送到选中的闪存的地址完成。
可以进行组群变化,具体地,g可以从-1变到0(框S170)。这意味着第二组群Group1取代第一组群Group0被选中。在相反的情况下,g可以从0设置为-1,使得第一组群Group0取代第二组群Group1被选中。当选中第二组群Group1时,如图7所示,页数据P13、P14、P15、P16通过上述操作分别传输到第二组群Group1的闪存C2、C4、C6、C8(框S120、S130、S160、S170和S180)。根据编程模式,传输到第二组群Group1的闪存C2、C4、C6、C8的页数据P13、P14、P15、P16可以是LSB数据。
在组群没有变化的条件下,如图7所示,页数据P16、P17、P18、P19可以通过上述操作传输到第二组群Group1的分别的闪存C2、C4、C6、C8(框S120、S130、S160、S170和S180)。根据编程模式,发送到第二组群Group1的各个闪存C2、C4、C6、C8的页数据P16、P17、P18、P19可以是LSB数据。由于分别发送到第二组群Group1的闪存C2、C4、C6、C8的页数据P16、P17、P18、P19可以是LSB数据,因此没有组群变化。在这种条件下,页数据P21、P22、P23、P24可以通过上述操作传输到第二组群Group1的各个闪存C2、C4、C6、C8(框S120、S130、S160、S170和S180)。传输到第二组群Group1的各个闪存C2、C4、C6、C8的页数据P21、P22、P23、P24可以是MSB数据。这可以在位阶顺序确定操作中判断(框S160)。由于传输到第二组群Group1的各个闪存C2、C4、C6、C8的页数据P21、P22、P23、P24为MSB数据,因此该进程进行到步骤S170。即,组群变化可以完成(框S170)。然后,由主机请求的数据写入可以按上述相同的方法通过信道存储在存储介质2000的闪存中。
通过这些操作,如图8所示,利用公共信道的所有闪存不会同时具有忙碌状态。因此,能够减少峰值功率。此外,因为信道保持在就绪/空闲状态的时间能够减少,因此信道存储的有效性能够提高。如图8所示的时序是在数据载入时间为200μs,LSB编程时间为300μs,MSB编程时间为1.6ms的条件下获得的。
一些实施例的上述讨论包括这样的假设,八个闪存(例如八个芯片)连接到一个信道,并且每个存储器每单元存储2比特。利用该假设,如上,连接到信道的闪存可以划分为两组群。然而,连接到公共信道的闪存的组群的数目可以根据例如每个单元中所存储的数据比特的数目而变化。例如,如果每单元存储3比特数据,则连接到公共信道的闪存可以划分为三个组群。连接到公共信道的闪存的分组可以基于除了每单元存储的数据比特的数目之外的其它条件完成。也能够将部分连接到信道的闪存分组。
图9说明了根据本发明的一些实施例的用于数据存储系统的状态检查操作。如图6所示,在到第一闪存C1的数据的传输结束后,数据可以发送到第二闪存C3。在数据发送到第二闪存C3之前,第二闪存C3的状态可以确定如下(例如在图6的框S120所示的操作中)。
假设控制器电路1000利用待发送到选中的组群(例如第一组群Group0)的第一闪存C1的数据驱动。数据可以在控制器电路1000的控制之下,发送到第一组群Group0的第一闪存C1(操作S141)。控制器电路1000可以检查下一个编程的第二闪存C3的状态(操作S142)。这可以例如通过选择信号选择第二闪存C3并且提供状态命令到第二闪存C3来完成。作为响应,第二闪存C3可以输出指示就绪状态或忙碌状态的状态数据(操作S143)。控制器电路1000可以基于从第二闪存C3接收的状态数据判断第二闪存C3是否具有就绪状态或忙碌状态。如果第二闪存C3忙碌,则控制器电路1000可以等待。状态检查和状态回复操作(操作S142和S143)可以重复直到第二闪存C3就绪。如果第二闪存C3就绪,则控制器电路1000可以利用待发送到第一组群Group0的第二闪存C3的数据驱动(操作S144)。在一些实施例中,当第二闪存C3忙碌时,控制器电路1000可以配置为搜索具有就绪状态的闪存,可以发送数据到该闪存。搜索进程可以存储在控制器电路1000中用于读取操作。
从上述描述得知,当待编程的闪存被选中,控制器电路100可以在传输数据之前检查选中的闪存的状态,并且可以根据状态检查的结果来进行用于下一个待编程的闪存的信道驱动。应该意识到,除了上述之外的状态检查的操作可以应用在本发明中。例如,可以利用由连接到信道的存储器产生并且提供到控制器电路1000的各个就绪/忙碌信号来确定下一个待编程的闪存的状态。
图10A和图10B为说明根据本发明的另一些实施例的应用到数据存储系统的闪存的其他编程模式的操作。如图10A所示的编程模式与图4所示的基本相同,除了成对的位线交替地选中之外。例如,当字线WL0和偶数位线BLe选中时,第一页(LSB页数据)可以被编程。当字线WL0选中并且奇数位线BLo选中时,第二页(LSB页数据)可以被编程。当字线WL1和偶数位线BLe选中时,第三页(LSB页数据)可以被编程。当字线WL1选中并且奇数位线BLo选中时,第四页(LSB页数据)可以被编程。如果字线WL0和偶数位线BLe选中,则第五页(MSB页数据)可以被编程。当字线WL0选中并且奇数位线BLo选中的情况下,第六页(MSB页数据)可以被编程。当字线WL2和偶数位线BLe选中时,第七页(MSB页数据)可以被编程。当字线WL2选中并且奇数位线BLo选中时,第八页(MSB页数据)可以被编程。如上所述,除了位线BLe和BLo被交替选中外,图10A的编程模式与图4的编程模式一致。沿着如图6中所示的线的操作可以应用到另外的实施例的图10A中的编程模式中。
在图10B中说明的编程模式可以不同于图4中的编程模式,区别在于1比特数据存储在连接到分别与串和地选择线相邻的字线WL0和WL31的存储单元中。换句话说,1比特数据存储在连接到与串和地选择线相邻的字线WL0和WL31的存储单元中,而2比特数据(LSB和MSB数据)存储在以如图4的相同方式连接到字线WL1和WL30的存储单元中。沿着参考图6上述讨论的线的操作可以应用于图10A中的编程。
闪存器件为非易失性存储器的类型,能够在没有电源的情况下在存储器内保持数据。随着使用诸如便携式电话、个人数字助理(PDA)、数字照相机、便携式游戏台和MP3器件之类的移动装置的快速增长,闪存器件广泛用于代码存储以及数据存储。闪存器件还可以应用在诸如高清电视、数字视频化光盘(DVD)、路由器和全球定位系统(GPS)的家用电器上。根据本发明的一些实施例的数据存储系统可以在这样的应用使用。
图11为示出包括根据本发明的一些实施例的数据存储系统的计算系统的方框图。该计算系统包括处理器电路3100(例如微处理器)、用户接口电路3200、调制解调器电路3300(例如基带芯片组)、存储器控制器电路3400和存储介质3500。控制器电路3400和存储介质3500可以按参考图1上述的线配置,控制器电路3400可以利用参考图1-10上述的线的操作将数据传输到存储介质3500。在闪存器件1000中,要由处理器电路3100处理的N比特数据(N为正整数)经存储器控制器电路3400存储。如果如图11所示的计算系统为移动设备,则该移动设备还包括电池3600。虽然未在图11中示出,但是计算系统还配置有应用芯片组、照相机图像处理器(例如CMOS图像传感器;CIS)、移动DRAM和/或其他元件。
图12为示出包括根据本发明的示范性实施例的数据存储系统的存储卡的方框图。
参考图12,存储卡4000可以包括存储控制器电路4100和存储介质4200.存储介质4200可以包括多个闪存,并且可以通过至少一个信道连接到存储控制器电路4100。存储控制器电路4100可以利用按上述线的操作发送数据到存储介质4200。
上述公开的主题被认为是说明性的,而不是限制性的,所附的权利要求用于覆盖落入真实精神和范围内的所有的修改、改进和其他实施例。因而,在法律所允许的最大程度内,范围由下述权利要求书和其等效物的最宽可允许的解释确定,并且不受限于或限制于前面具体的描述。
Claims (18)
1.一种数据存储系统,包括:
多个存储器;和
控制电路,通过公共信道与所述多个存储器相耦合,所述控制电路配置为通过公共信道将各个数据单元顺序传输到所述多个存储器的多个预定的组群的每一个内的各个存储器,并且根据所述存储器的编程模式,基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个,以使得所述多个存储器不同时具有忙碌状态,
其中该属性涉及与数据单元相关联的编程时间。
2.如权利要求1所述的系统,其中所述控制电路配置为将第一接收的数据单元传输到所述存储器的第一组群中的第一存储器,并且执行第二接收的数据单元到所述存储器的第一组群中的第二存储器的立即随后的传输,而不用等待由第一存储器针对第一单元的写入操作的完成。
3.如权利要求1所述的系统,其中所述属性包括位有效性。
4.如权利要求3所述的系统,其中所述控制电路配置为根据所述存储器的编程模式,基于所述单元的位有效性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。
5.如权利要求1所述的系统,其中所述控制电路配置为基于所述存储器的就绪/忙碌状态将数据单元条件传输到所述存储器。
6.如权利要求5所述的系统,其中所述控制电路配置为延迟数据单元到所述存储器的传输,直到所述存储器的就绪状态的指示为止。
7.一种操作数据存储系统的方法,所述数据存储系统包括多个配置成通过公共信道接收数据的存储器,所述方法包括:
通过公共信道,将各个数据单元顺序传输到所述多个存储器的多个预定的组群的每一个内的各个存储器;并且
根据所述存储器的编程模式,基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个,以使得所述多个存储器不同时具有忙碌状态,
其中该属性涉及与数据单元相关联的编程时间。
8.如权利要求7所述的方法,其中通过公共信道将各个数据单元顺序传输到所述多个存储器的多个预定的组群的每一个内的各个存储器包括:
将第一数据单元传输到所述存储器的第一组群中的第一存储器;以及
执行第二数据单元到所述存储器的第一组群中的第二存储器的立即随后的传输,而不用等待由第一存储器针对第一单元的写入操作的完成。
9.如权利要求7所述的方法,其中所述属性包括位有效性。
10.如权利要求9所述的方法,其中基于预定的准则从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个包括:根据所述存储器的编程模式,基于所述单元的位有效性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。
11.如权利要求7所述的方法,还包括:基于所述存储器的就绪/忙碌状态,控制数据单元到所述存储器的传输。
12.如权利要求11所述的方法,其中基于所述存储器的就绪/忙碌状态控制数据单元到所述存储器的传输包括:延迟数据单元到所述存储器的传输,直到所述存储器的就绪状态的指示为止。
13.一种用于控制数据存储系统的装置,所述装置包括:
接口电路,配置成通过公共信道将数据传输到多个存储器;和
控制电路,与所述接口电路相耦合并且配置为控制其数据传输,所述控制电路配置为通过公共信道将接收的各个数据单元顺序传输到所述多个存储器的多个预定的组群的每一个内的各个存储器,并且根据所述存储器的编程模式,基于数据单元的属性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个,以使得所述多个存储器不同时具有忙碌状态,
其中所述属性涉及与数据单元相关联的编程时间。
14.如权利要求13所述的装置,其中所述控制电路配置为将第一接收的数据单元传输到所述存储器的第一组群中的第一存储器,并且执行第二接收的数据单元到所述存储器的第一组群中的第二存储器的立即随后的传输,而不用等待由第一存储器针对第一单元的写入操作的完成。
15.如权利要求13所述的装置,其中所述属性包括位有效性。
16.如权利要求15所述的装置,其中所述控制电路配置为根据所述存储器的编程模式,基于所述单元的位有效性,从将数据单元传输到组群的第一个转变为将数据单元传输到组群的第二个。
17.如权利要求13所述的装置,其中所述控制电路配置为基于所述存储器的就绪/忙碌状态将数据单元条件传输到所述存储器。
18.如权利要求17所述的装置,其中所述控制电路配置为延迟数据单元到所述存储器的传输,直到所述存储器的就绪状态的指示为止。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090055442A KR101606880B1 (ko) | 2009-06-22 | 2009-06-22 | 데이터 저장 시스템 및 그것의 채널 구동 방법 |
KR55442/09 | 2009-06-22 | ||
US12/796,125 US8441869B2 (en) | 2009-06-22 | 2010-06-08 | Data storage systems and methods using data attribute-based data transfer |
US12/796,125 | 2010-06-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101930343A CN101930343A (zh) | 2010-12-29 |
CN101930343B true CN101930343B (zh) | 2015-07-08 |
Family
ID=43354239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010212347.4A Active CN101930343B (zh) | 2009-06-22 | 2010-06-22 | 使用基于数据属性的数据传输的数据存储系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8441869B2 (zh) |
KR (1) | KR101606880B1 (zh) |
CN (1) | CN101930343B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100753156B1 (ko) * | 2006-09-13 | 2007-08-30 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 메모리 셀 어레이 |
US8904098B2 (en) | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8746367B2 (en) | 2010-04-28 | 2014-06-10 | Baker Hughes Incorporated | Apparatus and methods for detecting performance data in an earth-boring drilling tool |
US8695729B2 (en) | 2010-04-28 | 2014-04-15 | Baker Hughes Incorporated | PDC sensing element fabrication process and tool |
US8800685B2 (en) | 2010-10-29 | 2014-08-12 | Baker Hughes Incorporated | Drill-bit seismic with downhole sensors |
KR101979392B1 (ko) * | 2012-05-17 | 2019-05-16 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US9384810B2 (en) | 2012-08-10 | 2016-07-05 | Qulacomm Incorporated | Monolithic multi-channel adaptable STT-MRAM |
KR101977684B1 (ko) * | 2012-12-12 | 2019-05-13 | 삼성전자 주식회사 | 저항체를 이용한 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러 동작방법, 상기 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 메모리 시스템 및 비휘발성 메모리 장치 |
US9436600B2 (en) | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
US20160253123A1 (en) * | 2014-03-19 | 2016-09-01 | Bruce Ledley Jacob | NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System |
US9658788B2 (en) * | 2014-05-28 | 2017-05-23 | Sandisk Technologies Llc | Systems and methods for immediate physical erasure of data stored in a memory system in response to a user command |
US9952779B2 (en) | 2016-03-01 | 2018-04-24 | Apple Inc. | Parallel scheduling of write commands to multiple memory devices |
TWI641988B (zh) | 2017-07-21 | 2018-11-21 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 |
US11048440B2 (en) * | 2019-03-14 | 2021-06-29 | SK Hynix Inc. | Memory system, memory device and operating method thereof |
US11435944B2 (en) * | 2019-07-24 | 2022-09-06 | Micron Technology, Inc. | Dynamic memory address write policy translation based on performance needs |
US11693798B2 (en) | 2020-07-10 | 2023-07-04 | Samsung Electronics Co., Ltd. | Layered ready status reporting structure |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1455897A (zh) * | 2000-08-17 | 2003-11-12 | 三因迪斯克公司 | 与主机串行通信的多个可拆卸非易失性存储卡 |
EP1748446A1 (en) * | 2005-07-28 | 2007-01-31 | STMicroelectronics S.r.l. | Two pages programming |
CN101142564A (zh) * | 2004-12-30 | 2008-03-12 | 桑迪士克股份有限公司 | 芯片上数据分组和对准 |
CN101308701A (zh) * | 2007-05-18 | 2008-11-19 | 三星电子株式会社 | 管理非易失性存储器的映射表的设备和方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
JP4505343B2 (ja) | 2005-02-09 | 2010-07-21 | 富士フイルム株式会社 | 半導体メモリ装置及び記憶制御方法 |
EP1750278B1 (en) * | 2005-07-28 | 2009-11-11 | STMicroelectronics S.r.l. | Method of programming a four-level flash memory device and a related page buffer |
KR100765786B1 (ko) | 2006-06-12 | 2007-10-12 | 삼성전자주식회사 | 플래시 메모리 시스템, 그 프로그램을 위한 호스트 시스템및 프로그램 방법 |
KR101594030B1 (ko) * | 2009-05-13 | 2016-02-29 | 삼성전자주식회사 | 플래시 메모리 장치의 프로그램 방법 |
-
2009
- 2009-06-22 KR KR1020090055442A patent/KR101606880B1/ko active IP Right Grant
-
2010
- 2010-06-08 US US12/796,125 patent/US8441869B2/en active Active
- 2010-06-22 CN CN201010212347.4A patent/CN101930343B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1455897A (zh) * | 2000-08-17 | 2003-11-12 | 三因迪斯克公司 | 与主机串行通信的多个可拆卸非易失性存储卡 |
CN101142564A (zh) * | 2004-12-30 | 2008-03-12 | 桑迪士克股份有限公司 | 芯片上数据分组和对准 |
EP1748446A1 (en) * | 2005-07-28 | 2007-01-31 | STMicroelectronics S.r.l. | Two pages programming |
CN101308701A (zh) * | 2007-05-18 | 2008-11-19 | 三星电子株式会社 | 管理非易失性存储器的映射表的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20100137156A (ko) | 2010-12-30 |
KR101606880B1 (ko) | 2016-03-28 |
US8441869B2 (en) | 2013-05-14 |
US20100322020A1 (en) | 2010-12-23 |
CN101930343A (zh) | 2010-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101930343B (zh) | 使用基于数据属性的数据传输的数据存储系统和方法 | |
US7827347B2 (en) | Memory system, multi-bit flash memory device, and associated methods | |
KR101405741B1 (ko) | 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 | |
US8559225B2 (en) | Nonvolatile memory device and related method of operation | |
US20150261667A1 (en) | Solid state memory (ssm), computer system including an ssm, and method of operating an ssm | |
US8612836B2 (en) | Non-volatile memory device with uncorrectable information region and operation method using the same | |
US7974139B2 (en) | Non-volatile memory generating different read voltages | |
US11514997B2 (en) | Controller, a storage device including the controller, and a reading method of the storage device | |
US8427898B2 (en) | Method and apparatus for performing multi-block access operation in nonvolatile memory device | |
CN101800071A (zh) | 固态盘设备及其编程失败处理方法 | |
KR20170046123A (ko) | 메모리 다이의 nand 플래시 메모리와 reram 간의 데이터의 온-칩 복사 | |
CN109147854B (zh) | 数据存储装置及其操作方法 | |
US20100268872A1 (en) | Data storage system comprising memory controller and nonvolatile memory | |
CN106920575B (zh) | 数据存储装置及其操作方法 | |
KR102697927B1 (ko) | 스토리지 장치 및 그 동작 방법 | |
CN110928805B (zh) | 存储器系统及其操作方法 | |
US11908535B2 (en) | Memory device and memory controller and storage device including the memory device and memory controller | |
CN110970074A (zh) | 存储器系统及其操作方法 | |
US10346097B2 (en) | Nonvolatile memory device and storage device including nonvolatile memory device | |
CN114995742A (zh) | 重定向写入操作的存储控制器及其操作方法 | |
US9772940B2 (en) | Storage device comprising volatile and nonvolatile memory devices, and related methods of operation | |
CN112053711B (zh) | 存储器装置以及该存储器装置的操作方法 | |
CN117666943A (zh) | 存储控制器、包括其的存储装置及其操作方法 | |
US20160062688A1 (en) | Flash memory device, flash memory system, and operating method | |
EP4336507A1 (en) | Storage controller generating read voltages for soft decision decoding based on read information and decoding information, storage device including the same, and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |