CN107544748A - 固态储存装置及其数据写入方法 - Google Patents
固态储存装置及其数据写入方法 Download PDFInfo
- Publication number
- CN107544748A CN107544748A CN201610502949.0A CN201610502949A CN107544748A CN 107544748 A CN107544748 A CN 107544748A CN 201610502949 A CN201610502949 A CN 201610502949A CN 107544748 A CN107544748 A CN 107544748A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- flash memory
- main frame
- fast flash
- 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
Links
Classifications
-
- 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/0656—Data buffering arrangements
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0608—Saving storage space on storage systems
-
- 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
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种固态储存装置及其数据写入方法。固态储存装置具有一快闪记忆体,内含多个区块。本发明的数据写入方法包括下列步骤:接收一清除指令;将一缓冲器中的一主机写入数据根据一编程次序储存至快闪记忆体的一开启区块;执行一垃圾搜集动作,由快闪记忆体的一关闭区块中取得一搜集的写入数据并暂存于该缓冲器中;以及将该缓冲器中的主机写入数据及搜集的写入数据根据该编程次序储存至快闪记忆体的该开启区块。
Description
技术领域
本发明是有关于一种固态储存装置及其控制方法,特别是有关于一种固态储存装置及其收到清除指令(flush command)时的数据写入方法。
背景技术
固态储存装置(Solid State Device,SSD)使用与非门快闪记忆体(NANDflashmemory)为主要储存元件,而快闪记忆体为一种非挥发性(non-volatile)记忆体。也就是说,当数据写入快闪记忆体后,即使系统电源关闭,数据仍保存在快闪记忆体中。
请参照图1A,其所绘示为固态储存装置中快闪记忆体的晶胞排列示意图。快闪记忆体105由多个晶胞排列成一记忆体阵列(memory array),而每个晶胞内包括一个浮栅晶体管(floating gate transistor)。在进行编程(program)时,将热载子(hot carrier)注入(inject)浮栅晶体管的浮动栅极,而根据注入热载子的数量即可改变浮栅晶体管的临限电压(threshold voltage),并进而决定该晶胞的储存状态。并且,于抹除(erase)时,是将热载子退出(eject)浮栅晶体管的浮动栅极。再者,利用字元线(word line)WL(n-1)、WL(n)、WL(n+1)可控制一列(row)的晶胞。意即,动作一条字元线即可编程该条字元线所对应的一列晶胞。
快闪记忆体依据不同的设计,可分为单层晶胞(single-level cell,SLC)与多层晶胞(multi-level cell)的快闪记忆体。而多层晶胞更可包括二层晶胞(double-levelcell)、三层晶胞(triple-level cell),或者更多层晶胞的快闪记忆体。
请参照图1B,其所绘示为各种快闪记忆体中的储存状态与临限电压的关系示意图。在单层晶胞快闪记忆体中,每个晶胞可储存一位元的数据(1bit/cell)。因此,根据热载子的注入量,晶胞中的浮栅晶体管可产生二种临限电压分布,用以代表二种相异的储存状态。举例来说,具备低临限电压的晶胞可视为储存状态“0”的晶胞;具备高临限电压的晶胞可视为储存状态“1”的晶胞。当然,此处的储存状态“0”与储存状态“1”仅是表示相异的二个储存状态,当然也可以用第一储存状态与第二储存状态来表示。举例来说,临限电压在0V附近的晶胞可视为具有第一储存状态的晶胞;临限电压在10V附近的晶胞可视为具有第二储存状态的晶胞。
同理,在二层晶胞快闪记忆体中,每个晶胞可储存二位元的数据(2bits/cell)。因此,根据热载子的注入量,晶胞中的浮栅晶体管可产生四种临限电压分布,用以代表四种相异的储存状态。例如,临限电压由低至高可用以依序代表储存状态“00”、储存状态“01”、储存状态“10”与储存状态“11”。
在三层晶胞快闪记忆体中,每个晶胞可储存三位元的数据(3bits/cell)。因此,根据热载子的注入量,晶胞中的浮栅晶体管可产生八种临限电压分布,用以代表八种相异的储存状态。例如,临限电压由低至高可用以依序代表储存状态“000”、储存状态“001”、储存状态“010”、储存状态“011”、储存状态“100”、储存状态“101”、储存状态“110”与储存状态“111”。
由以上说明可知,在编程快闪记忆体时,控制晶胞的热载子注入量,即可改变晶胞的临限电压并更改其储存状态。然而,除了单层晶胞快闪记忆体在编程动作时,可仅需对晶胞进行一次编程程序(program procedure)即可以达到想要的临限电压,亦即达到想要的储存状态之外,其他多层晶胞快闪记忆于编程动作时,大多会对晶胞进行多次编程程序以到达想要的临限电压,亦即达到想要的储存状态。
请参照图2,其所绘示为三层晶胞快闪记忆体(以下简称为TLC快闪记忆体)的编程示意图。举例来说,如图2中的实线所示,当欲将TLC快闪记忆体的晶胞编程为储存状态“100”时,会对晶胞进行三次编程程序。于第一次编程程序时,先将TLC快闪记忆体的晶胞的临限电压改变为接近储存状态“111”的临限电压。接着,于第二次编程程序时,再改变为接近储存状态“101”的临限电压。最后,于第三次编程程序时,再改变为储存状态“100”的临限电压,使晶胞编程为储存状态“100”。
由以上的说明可知,于编程TLC快闪记忆体时,会根据欲编程的储存状态,来决定对应的编程程序。举例来说,如图2中的虚线所示,假设欲将TLC快闪记忆体的晶胞编程为储存状态“011”时,会先将晶胞的临限电压改变为接近储存状态“000”的临限电压,接着改变为接近储存状态“010”的临限电压,最后改变为储存状态“011”的临限电压,使晶胞编程为储存状态“011”。同理,其他储存状态的三次编程程序也可以依此类推,不再赘述。一般而言,于编程多层快闪记忆体时,会通过多次的编程程序,逐步改变晶胞的临限电压,使晶胞的临限电压最后落在对应储存状态的对应临限电压范围内。
根据上述,由于多层晶胞快闪记忆于编程动作时,须对晶胞进行多次编程程序才可使晶胞达到想要的临限电压,并使晶胞编程成想要的储存状态,因此,若晶胞的编程程序未达到所需的编程次数,则表示欲储存至晶胞的数据尚未被储存至晶胞,如此,欲储存至晶胞的数据将无法从晶胞读取出来。
一般而言,快闪记忆体写入数据时是以页(page)为单位来写入快闪记忆体。页的大小可由快闪记忆体制造商来定义,举例来说,每一页可为2K bytes、4K bytes或者8Kbytes。以4K bytes大小的页为例,写入数据包括:使用者数据、编码数据与其他相关数据,总共为4224bytes(亦即,4224×8bits)。
换言之,如果利用单层晶胞快闪记忆体来储存一个4K bytes页的数据时,则需要利用(4224×8)数目的单层晶胞来储存。再者,由于二层晶胞快闪记忆体的数据密度较高,其每个晶胞可储存二位元的数据(2bits/cell),所以(4224×8)数目的二层晶胞可以储存二个页的数据(2×4224bytes)。同理,在三层晶胞快闪记忆体中,(4224×8)数目的三层晶胞可以储存三个页的数据(3×4224bytes)。
再者,快闪记忆体的每一字元线可设定为包含上述(4224×8)数目的晶胞,以便对上述(4224×8)数目的晶胞同时进行编程动作。换句话说,在三层晶胞快闪记忆体中,每一字元线的晶胞可储存三个页的数据,且每一字元线的晶胞需经过三次编程程序,才完成该字元线的晶胞的编程动作。此外,在部分多层晶胞快闪记忆体的设计架构中,其于编程多层晶胞快闪记忆体时并非针对同一字元线的晶胞连续进行多次编程程序,以完成该字元线的晶胞的编程动作。以下将以TLC快闪记忆体的编程动作来进行说明。
请参照图3,其所绘示为固态储存装置示意图。固态储存装置300中包括一控制器301、一缓冲器307与一TLC快闪记忆体305。控制器301连接至缓冲器307与TLC快闪记忆体305。再者,控制器301利用一外部总线310与主机(host)320之间进行指令与数据的传递。
基本上,当主机320提供主机数据(host data)欲写入TLC快闪记忆体305时,控制器301会先将主机数据进行ECC编码程序,并且将主机数据编码(encode)为主机写入数据(host write data)暂存于缓冲器307。之后,控制器301会适时的执行编程动作,将缓冲器307中的主机写入数据储存于TLC快闪记忆体305。其中,缓冲器307为SRAM或者DRAM,其暂存的数据会随着供应电源消失而不见;外部总线310可为USB总线、IEEE 1394总线、PCIe总线或SATA总线等等。
另外,由于多层晶胞快闪记忆体的特性,其编程次序(program order)具有一定的规范。请参照图4A与图4B,其所绘示为TLC快闪记忆体的编程次序示意图。以下的说明以4Kbytes的页为例来进行说明,其中一页的主机写入数据包括:使用者数据、编码数据与其他相关数据,总共为4224bytes(亦即,4224×8bits)。
基本上,TLC快闪记忆体305中有多个区块(block),每一个区块中有多个页,且每三个页的主机写入数据可对应的储存至同一字元线。图4A与图4B仅以TLC快闪记忆体305中的开启区块(open block)为例,并以对应的字元线来说明编程次序。当此开启区块写满之后,会被控制器301设为关闭区块(closed block)。之后,控制器301会寻找TLC快闪记忆体305中的另一个空白区块(blank block),并设定为开启区块(opened block)。接着,以相同的编程次序来将主机写入数据储存于开启区块。
如图4A所示,固态储存装置300收到12页的主机数据,经过ECC编码程序后,依序产生A~L共12页的主机写入数据暂存于缓冲器307中。
如前所述,TLC快闪记忆体305中的每一字元线可储存三页的数据。举例来说,如图4A所示,第A~C页的主机写入数据将会储存于第一字元线的TLC晶胞中。同理,第D~F页的主机写入数据将会储存于第二字元线的TLC晶胞中;第G~I页的主机写入数据将会储存于第三字元线的TLC晶胞中;第J~L页的主机写入数据将会储存于第四字元线的TLC晶胞中。
再者,根据规格书的规范,于TLC快闪记忆体305进行编程动作时,其编程次序如图4B所示。首先,控制器301动作(activate)第一字元线,进行第一次编程程序(1st);接着,动作第二字元线,进行第二次编程程序(2nd);接着,动作第一字元线,进行第三次编程程序(3rd);接着,动作第三字元线,进行第四次编程程序(4th);接着,动作第二字元线,进行第五次编程程序(5th);接着,动作第一字元线,进行第六次编程程序(6th);接着,动作第四字元线,进行第七次编程程序(7th);接着,动作第三字元线,进行第八次编程程序(8th);接着,动作第二字元线,进行第九次编程程序(9th)。
由图4B所示的编程次序可知,于TLC快闪记忆体305中,须经过三次的编程程序才会使一特定字元线的TLC晶胞成为完成编程状态。如图4B所示,控制器301经过六次编成程序才完成第一字元线的TLC晶胞的三次编程程序,并使第一字元线的TLC晶胞成为完成编程状态。进一步而言,控制器301分别于第一次编程程序(1st)、第三次编程程序(3rd)与第六次编程程序(6th)中进行第一字元线的三次编程程序,使第一字元线的TLC晶胞达到对应于第A~C页的主机写入数据的临限电压,以将第A~C页的主机写入数据储存于第一字元线的TLC晶胞中。
因此,当控制器301完成第一次编程程序(1st)、第三次编程程序(3rd)与第六次编程程序(6th)之后,才可确认第一字元线的TLC晶胞为完成编程状态,意即第A~C页的主机写入数据已储存于第一字元线的TLC晶胞中。同理,当控制器301完成第二次编程程序(2nd)、第五次编程程序(5th)与第九次编程程序(9th)之后,才可确认第二字元线的TLC晶胞为完成编程状态,意即第D~F页的主机写入数据已储存于第二字元线的TLC晶胞中。
另外,在控制器301完成第九次编程程序(9th)之后,若主机320仍未提供其他新的主机数据,此时,由于缓冲器307中并没有主机写入数据可储存于TLC快闪记忆体305中的第五字元线的TLC晶胞。因此,受限于TLC快闪记忆体305的编程次序限制,当控制器301无法对第五字元线的TLC晶胞进行编程程序时,控制器301也无法对第四字元线的TLC晶胞以及第三字元线的TLC晶胞进行后续的编程程序。换句话说,TLC快闪记忆体305中,第三字元线的TLC晶胞仅进行二次编程程序,而第四字元线的TLC晶胞仅进行一次编程程序,所以第三字元线与第四字元线的TLC晶胞为尚未完成编程状态。
因此,必须等待主机320提供新的主机数据并转换为主机写入数据储存至缓冲器307之后,控制器301才可再次根据编程次序来运作,并依序使第三字元线的TLC晶胞与第四字元线的TLC晶胞成为完成编程状态。换句话说,第三字元线的TLC晶胞尚需经过一次编程程序才可成为完成编程状态,而第四字元线的TLC晶胞尚需经过二次编程程序才可成为完成编程状态。
基本上,当一字元线的TLC晶胞为完成编程状态(经过三次编程程序)时,其储存的数据可经由控制器301的ECC解码程序(ECC decoding procedure)而被读取。反之,当一字元线的TLC晶胞为尚未完成编程状态(未经过三次编程程序)时,由于TLC晶胞尚未达到对应的临限电压,因此其所对应储存的数据将无法经由控制器301的ECC解码程序而被正确的读取。举例来说,第三字元线的TLC晶胞为尚未完成编程状态,在此状态下,其所对应储存的第G~I页的主机写入数据将无法经由控制器301的ECC解码程序而被正确的读取。
由以上的说明可知,图4B中的第三字元线的TLC晶胞以及第四字元线的TLC晶胞皆为尚未完成编程状态,而控制器301必须等到主机320提供其他新的主机数据之后,才可以根据TLC快闪记忆体305的编程次序来继续进行编程程序,如此才可使得第三字元线的TLC晶胞以及第四字元线的TLC晶胞成为完成编程状态,且其所对应储存的数据才可被正确的读取。
当主机320传递清除指令(flush command)时,控制器301必须确认缓冲器307中暂存的主机写入数据已全部储存于TLC快闪记忆体305内,亦即储存缓冲器307中暂存的主机写入数据的晶胞皆为完成编程状态。接着,控制器301才可清除缓冲器307中的暂存数据。
以图4B为例来进行说明,由于主机并未传递新的主机数据,因此,当主机320传递清除指令(flush command)时,为了让缓冲器307中第G~L页的主机写入数据储存至第三字元线的TLC晶胞与第四字元线的TLC晶胞内,控制器301会先自行产生冗余写入数据(redundant write data)暂存于缓冲器307后,再执行编程动作将缓冲器307中的写入数据储存至TLC快闪记忆体305。
请参照图5A,其所绘示为现有固态储存装置的数据写入方法流程图。此流程图主要在说明固态储存装置300收到清除指令时的动作流程。在正常运作的情况下,于接收到主机的写入指令时,控制器301可接收主机数据,并转换为主机写入数据暂存于缓冲器307。
当控制器301收到主机320发出的清除指令后(步骤S502),为了将缓冲器307中暂存的主机写入数据储存至TLC快闪记忆体305。控制器301产生冗余写入数据暂存于缓冲器307中(步骤S504)。之后,控制器301进行编程动作,将缓冲器307中的写入数据根据编程次序储存至TLC快闪记忆体305的开启区块(步骤S506)。
请参照图5B与图5C,其所绘示为现有固态储存装置收到清除指令时的写入数据的编程状态示意图。假设于图4B的情况下,主机320产生清除指令至固态储存装置300。
根据图5A的流程步骤可知。为了将缓冲器307中暂存的主机写入数据储存至TLC快闪记忆体305,控制器301产生6页的冗余写入数据(Ra~Rf)暂存于缓冲器307中,如图5B所示。
接着,如图5C所示,控制器301进行编程动作,将缓冲器307中的写入数据根据编程次序储存至TLC快闪记忆体305的开启区块。
意即,控制器301动作第五字元线,进行第十次编程程序(10th);接着,动作第四字元线,进行第十一次编程程序(11th);接着,动作第三字元线,进行第十二次编程程序(12th);接着,动作第六字元线,进行第十三次编程程序(13th);接着,动作第五字元线,进行第十四次编程程序(14th);接着,动作第四字元线,进行第十五次编程程序(15th)。
明显地,由图5C可知,进行完第十五次编程程序(15th)之后,第三字元线的TLC晶胞以及第四字元线的TLC晶胞已经成为完成编程状态。换句话说,当现有固态储存装置收到清除指令时,控制器301会先产生冗余写入数据暂存于缓冲器307。之后,控制器301进行编程动作,将缓冲器307中的写入数据根据编程次序储存至TLC快闪记忆体305,即可将缓冲器307中暂存的主机写入数据全部储存于TLC快闪记忆体305的开启区块内。
由于现有固态储存装置300的收到清除指令时,控制器301必须先产生冗余写入数据暂存于缓冲器307。假设主机320在传送主机数据的过程中,不断地发送清除指令。则控制器301也必须对应地产生冗余写入数据暂存于缓冲器307,并将冗余写入数据储存至TLC快闪记忆体305。如图6所示,由于主机320在传送主机数据的过程中,持续的发送清除指令。因此,TLC快闪记忆体305的一个开启区块中会交互穿插着主机写入数据(Ho)以及冗余写入数据(R)。
众所周知,冗余写入数据(R)是无效的数据(invalid data)。当主机320在传送主机数据的过程中,持续的发送清除指令,将会造成TLC快闪记忆体305浪费空间来储存无效的数据,并且降低固态储存装置300的使用效率。
发明内容
本发明有关于一种固态储存装置的数据写入方法,该固态储存装置具有一快闪记忆体,包含多个区块,该数据写入方法包括下列步骤:接收一清除指令;将一缓冲器中的一主机写入数据根据一编程次序储存至该快闪记忆体的一开启区块;执行一垃圾搜集动作,由该快闪记忆体的一关闭区块中取得一搜集的写入数据并暂存于该缓冲器中;以及将该缓冲器中的该主机写入数据及该搜集的写入数据根据该编程次序储存至该快闪记忆体的该开启区块。
本发明有关于一种固态储存装置,连接至一主机,该固态储存装置包括:一缓冲器;一控制器,连接至该主机与该缓冲器,其中该控制器接收一主机数据并转换为一主机写入数据暂存于该缓冲器中;以及一快闪记忆体,连接至该控制器;其中,当接收该主机发出一清除指令时,该控制器将该主机写入数据根据一编程次序储存至该快闪记忆体的一开启区块;该控制器执行一垃圾搜集动作,由该快闪记忆体的一关闭区块中取得一搜集的写入数据并暂存于该缓冲器中;以及该控制器根据该编程次序,将该缓冲器中的一写入数据储存至该快闪记忆体的该开启区块,其中该写入数据为该主机写入数据或该搜集的写入数据。
为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合附图,作详细说明如下:
附图说明
图1A所绘示为固态储存装置中快闪记忆体的晶胞排列示意图。
图1B所绘示为各种快闪记忆体中的储存状态与临限电压的关系示意图。
图2所绘示为三层晶胞快闪记忆体的编程示意图。
图3所绘示为固态储存装置示意图。
图4A与图4B所绘示为TLC快闪记忆体的编程次序示意图。
图5A所绘示为现有固态储存装置的数据写入方法流程图。
图5B与图5C所绘示为现有固态储存装置收到清除指令时的写入数据的编程状态示意图。
图6为现有固态储存装置接收多次清除指令后,TLC快闪记忆体中数据的储存示意图。
图7所绘示为本发明固态储存装置示意图。
图8A所绘示为本发明固态储存装置的数据写入方法流程图。
图8B与图8C所绘示为本发明固态储存装置收到清除指令时的写入数据的编程状态示意图。
图9为本发明固态储存装置接收多次清除指令后,TLC快闪记忆体中数据的储存示意图。
其中,附图标记:
300、700:固态储存装置 301、701:控制器
305、705:TLC快闪记忆体 307、707:缓冲器
310、710:外部总线
320、720:主机
S502~S506:步骤流程
S802~S808:步骤流程
具体实施方式
本发明提出一种固态储存装置及其数据写入方法,其可运用于固态储存装置收到清除指令时的数据写入方法。
请参照图7,其所绘示为固态储存装置示意图。固态储存装置700中包括一控制器701、一缓冲器707与一快闪记忆体705。控制器701连接至缓冲器707与快闪记忆体705。再者,控制器701利用一外部总线710与主机720之间进行指令与数据的传递。其中,控制器701无法对快闪记忆体705中的晶胞连续进行多次编程程序。在本发明实施例中,快闪记忆体705可为一多层晶胞快闪记忆体,并具有特定的编程次序。
当主机720提供主机数据欲写入快闪记忆体705时,控制器701会先将主机数据进行ECC编码程序,并且将主机数据编码为主机写入数据暂存于缓冲器707。之后,控制器701会适时的进行编程动作,并根据快闪记忆体705的编程次序(program order)将缓冲器307中的主机写入数据储存于快闪记忆体305。其中,缓冲器307为SRAM或者DRAM,其暂存的数据会随着供应电源消失而不见;外部总线310可为USB总线、IEEE 1394总线、PCIe总线或SATA总线等等。
再者,本发明的固态储存装置示意图700更可以执行垃圾搜集动作(garbagecollection)。以下简单介绍垃圾搜集动作。
快闪记忆体705中包括许多区块(block),而每个区块中又包括多个页(page)。例如,一个区块中有64页,而每个页的容量为4K bytes。再者,由于快闪记忆体的特性,数据写入时是以页为写入单位,而抹除(erase)时则是以区块为单位进行数据抹除。
由于快闪记忆体的特性,当区块中某一个页的数据需要更改(update)时,控制器701无法直接修改该页中的数据,因此控制器701会将更改的数据写在开启区块(openedblock)的空白页(blank page)中,而储存原来旧数据的页将被视为无效页(invalidpage),里面的数据将被视为无效数据(invalid data)。
当主机720经过多次的存取之后,在快闪记忆体705中储存数据的关闭区块(closed block)将会出现许多的无效页以及无效数据,并且占据了快闪记忆体705的空间。此外,关闭区块中会同时具有无效页及有效页(valid page),有效页中储存着有效数据(valid data)。
所谓的垃圾搜集动作即是控制器701搜集关闭区块中有效页的有效数据,并另外储存在开启区块中。再者,在关闭区块中的有效页中的有效数据被搜集完后即成为无效页。而当关闭区块中的页全部变成无效页时,即关闭区块中的有效页中的有效数据被复制至其他区块后,控制器301即可以对该关闭区块进行区块抹除(block erase)动作,并且产生空白区块,使快闪记忆体705释放出可写入的空间。
在执行垃圾搜集动作的过程中,控制器701会先搜集关闭区块中有效页中的有效数据,并成为搜集的写入数据(collected write data),暂存于缓冲器707中。接着,控制器701于适当的时机进行编程动作,将缓冲器707内的搜集的写入数据储存于快闪记忆体705中的开启区块,并完成一次垃圾搜集动作。
由以上的说明可知,控制器701执行垃圾搜集动作时,暂存于缓冲器707内的搜集的写入数据皆为有效数据。
本发明公开的固态储存装置及其数据写入方法,其运用于固态储存装置收到清除指令时,搭配垃圾搜集动作的数据写入方法。
请参照图8A,其所绘示为本发明固态储存装置的数据写入方法流程图。此流程图主要在说明固态储存装置700收到清除指令时的动作流程。在正常运作的情况下,于接收到主机的写入指令时,控制器701可接收主机数据,并转换为主机写入数据暂存于缓冲器707。
当控制器701收到主机720发出的清除指令后(步骤S802),为了将缓冲器707中暂存的主机写入数据储存至快闪记忆体705。控制器701进行编程动作,将缓冲器707中暂存的主机写入数据根据编程次序储存至快闪记忆体705的开启区块(步骤S804)。其中,缓冲器707中暂存的主机写入数据储存于开启区块中对应的字元线的晶胞中。值得注意地,当执行完步骤S804后,还会有部分字元线的晶胞为尚未完成编程状态。接着,控制器701执行垃圾搜集动作,由快闪记忆体705的关闭区块中取得搜集的写入数据,并暂存于缓冲器707中(步骤S806)。之后,控制器701进行编程动作,将缓冲器707中的写入数据根据编程次序储存至快闪记忆体705的开启区块(步骤S808)。
由以上的说明可知,于执行S808步骤时,由缓冲器707内储存至快闪记忆体705的写入数据可为主机写入数据或搜集的写入数据。而主机写入数据与搜集的写入数据皆为有效数据。
请参照图8B与图8C,其所绘示为本发明固态储存装置收到清除指令时的写入数据的编程状态示意图。图中的快闪记忆体705是以TLC快闪记忆体为例,以接续图4A的情况。假设于图4A的情况下,主机720产生清除指令至固态储存装置700。
根据本发明图8A的流程步骤可知。为了将缓冲器707中暂存的主机写入数据储存至快闪记忆体705,控制器701进行编程动作,将缓冲器707中暂存的主机写入数据根据编程次序储存至快闪记忆体705的开启区块。此时,控制器701先将缓冲器707中暂存的主机写入数据储存于开启区块中对应的字元线的TLC晶胞中。当控制器701完成此编程动作后,第三字元线的TLC晶胞以及第四字元线的TLC晶胞为尚未完成编程状态。接着,控制器701执行垃圾搜集动作,由快闪记忆体705的关闭区块中取得搜集的写入数据,并暂存于缓冲器707中。因此,完成垃圾搜集动作之后,即如图8B所示。举例来说,控制器701至少取得6页搜集的写入数据(Ga~Gf)并暂存于缓冲器707。其中,第Ga~Gc页的搜集的写入数据用以储存于第五字元线的TLC晶胞中;第Gd~Gf页的搜集的写入数据用以储存于第六字元线的TLC晶胞中。
接着,如图8C所示,控制器701进行编程动作,将缓冲器707中的写入数据根据编程次序储存至快闪记忆体705的开启区块。
意即,控制器701动作第五字元线的TLC晶胞,进行第十次编程程序(10th);接着,动作第四字元线的TLC晶胞,进行第十一次编程程序(11th);接着,动作第三字元线的TLC晶胞,进行第十二次编程程序(12th);接着,动作第六字元线的TLC晶胞,进行第十三次编程程序(13th);接着,动作第五字元线的TLC晶胞,进行第十四次编程程序(14th);接着,动作第四字元线的TLC晶胞,进行第十五次编程程序(15th)。
明显地,由图8C可知,于第十五次编程程序(15th)完成后,第三字元线的TLC晶胞以及第四字元线的TLC晶胞已经为完成编程状态,并且储存至快闪记忆体705的开启区块的写入数据皆为有效数据。
由以上的说明可知,本发明固态储存装置700收到清除指令时,控制器701将缓冲器707中暂存的主机写入数据根据编程次序储存至快闪记忆体705的开启区块之后,控制器701可通过执行垃圾搜集动作,以获得搜集的写入数据,并进一步将其连同暂存于缓冲器707中的主机写入数据根据编程次序储存至快闪记忆体705的开启区块,使用以储存缓冲器707中的主机写入数据的对应字元线的晶胞皆为完成编程状态。由于控制器701取得的搜集的写入数据全部都是有效数据,因此可以确保储存至快闪记忆体705的开启区块的写入数据皆为有效数据。
再者,假设主机720在传送主机数据的过程中,持续的发送清除指令。根据本发明的实施例,控制器701可以执行多次的垃圾搜集动作,以取得搜集的写入数据,并将其连同主机写入数据编程至快闪记忆体705。因此,如图9所示,快闪记忆体705的开启区块中会交互穿插着主机写入数据(Ho)以及搜集的写入数据(Gx),而主机写入数据(Ho)以及搜集的写入数据(Gx)皆为有效数据。
在本发明实施例中,当固态储存装置700收到清除指令时,控制器701可根据一预设数据量来执行垃圾搜集动作,以获得搜集的写入数据。换句话说,控制器701会执行垃圾搜集动作,直到搜集的写入数据的数据量达到上述预设数据量,并暂存于缓冲器707。
基本上,预设数据量为可让暂存于缓冲器707中的主机写入数据完全储存至快闪记忆体705所需的额外数据量。换句话说,预设数据量是可使用以储存缓冲器707中的主机写入数据的晶胞皆成为完成编程状态所需的额外数据量。
以TLC快闪记忆体为例,控制器701至少需要提供6页的额外数据量才可确实地将缓冲器707中的主机写入数据储存至快闪记忆体705。如图8B的例子,预设数据量为6页的数据量,而控制器701于取得6页搜集的写入数据(Ga~Gf)并暂存于缓冲器707后,便可连同暂存于缓冲器707中的主机写入数据一并编程至快闪记忆体705,以确实将主机写入数据储存至快闪记忆体705中第三字元线与第四字元线的TLC晶胞。
此外,为了增加数据储存于字元线晶胞的稳定性,若一特定字元线的下一条字元线的晶胞为完成编程状态,则其可增加此特定字元线晶胞的数据稳定性。举例来说,如图8C所示,用以储存主机写入数据(J~L)的第四字元线的TLC晶胞已为完成编程状态。然,为了使第四字元线的TLC晶胞中所储存的主机写入数据(J~L)更加稳定,控制器701可进一步将第五字元线的TLC晶胞变更为完成编程状态,意即额外增加具有完成编程状态的晶胞的字元线。在图8B的例子中,为了额外增加一个具有完成编程状态的晶胞的字元线,意即使第五字元线的TLC晶胞成为完成编程状态,控制器701至少需要提供9页的数据量,意即预设数据量为9页的数据量,才可使第五字元线的TLC晶胞成为完成编程状态,以提升第四字元线的TLC晶胞的数据稳定性。
在本发明实施例中,预设数据量以及额外增加具有完成编程状态的晶胞的字元线的数量并不以此为限,本领域技术人员可根据所需的数据稳定性程度来决定需额外增加具有完成编程状态的晶胞的字元线的数量,并对应决定所需的预设数据量。
再者,根据本发明的实施例,当控制器701接收到清除指令而进行垃圾搜集动作后,暂存于缓冲器707中的主机写入数据以及搜集的写入数据皆会根据编程次序逐次的写入快闪记忆体的开启区块中。一般来说,当控制器701接收到清除指令,并将缓冲器707中暂存的主机写入数据根据编程次序储存至快闪记忆体705的开启区块之后,如果开启区块的剩余空间大于搜集的写入数据的数据量时,则依照图8A所示的方式,将缓冲器707中暂存的写入数据写入快闪记忆体705的开启区块。而确认主机写入数据已经写入快闪记忆体705之后,意即储存主机写入数据的晶胞皆为完成编程状态之后,即可清除缓冲器707中的数据,并回复主机720清除指令已执行完成。
再者,当控制器701接收到清除指令,并将缓冲器707中暂存的主机写入数据根据编程次序储存至快闪记忆体705的开启区块之后,如果开启区块已经快写满的时候,若开启区块的剩余空间小于搜集的写入数据的数据量时,控制器701只需要将开启区块写满并进行区块关闭动作(block close action)。于确认开启区块已经成为关闭区块后,即可清除缓冲器707中的数据,并回复主机720清除指令已执行完成。
此外,由于搜集的写入数据的数据量可由预设数据量决定,因此,在本发明实施例中,亦可根据预设数据量以及开启区块的剩余空间来判断清除缓冲器707的数据以及回复主机720清除指令已执行完成的时机。
在本发明一实施例中,当固态储存装置700收到清除指令,并将缓冲器707中暂存的主机写入数据根据编程次序储存至快闪记忆体705的开启区块之后,控制器701可分次进行执行垃圾搜集动作,以获得部分的搜集的写入数据,接着根据编程次序将写入数据储存至快闪记忆体705的开启区块。之后,控制器701再次进行执行垃圾搜集动作,以获得下一部分的搜集的写入数据,接着再次根据编程次序将写入数据储存至快闪记忆体705的开启区块。如此,直到确认主机写入数据已经确实写入快闪记忆体705后,即可清除缓冲器707中的数据,并回复主机720清除指令已执行完成。换句话说,在此实施例中,控制器701并非一次通过垃圾搜集动作获得所需的搜集的写入数据,而是分次进行垃圾搜集动作以及根据编程次序将写入数据储存至快闪记忆体705。同样地,在本实施例中,亦可根据预设数据量以及开启区块的剩余空间来判断清除缓冲器707的数据以及回复主机720清除指令已执行完成的时机。
根据以上的说明可知,由于搜集的写入数据(Gx)是有效数据,因此运用本发明所提出的数据写入方法,当收到清除指令时,控制器705通过垃圾搜集动作来取得搜集的写入数据,用以取代现有的冗余写入数据,来连同主机写入数据一起编程至快闪记忆体705,将使得快闪记忆体705的空间被有效地运用来储存有效数据,并且提高固态储存装置700的使用效率。
综上所述,虽然本发明已以较佳实施例公开如上,但其并非用以限定本发明。本发明所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与修改。因此,本发明的保护范围当视后附的权利要求保护范围所界定者为准。
Claims (12)
1.一种固态储存装置的数据写入方法,该固态储存装置具有一快闪记忆体,包含多个区块,其特征在于,该数据写入方法包括下列步骤:
接收一清除指令;
将一缓冲器中的一主机写入数据根据一编程次序储存至该快闪记忆体的一开启区块;
执行一垃圾搜集动作,由该快闪记忆体的一关闭区块中取得一搜集的写入数据并暂存于该缓冲器中;以及
将该缓冲器中的该主机写入数据及该搜集的写入数据根据该编程次序储存至该快闪记忆体的该开启区块。
2.如权利要求1所述的数据写入方法,其特征在于,于接收到一写入指令时,接收一主机的一主机数据并转换为该主机写入数据暂存于该缓冲器。
3.如权利要求1所述的数据写入方法,其特征在于,该主机写入数据及该搜集的写入数据皆为有效数据。
4.如权利要求1所述的数据写入方法,其特征在于,该数据写入方法还包括下列步骤:
确认该主机写入数据已储存至该快闪记忆体;以及
清除暂存于该缓冲器中的数据。
5.如权利要求1所述的数据写入方法,其特征在于,该数据写入方法还包括下列步骤:
于将该缓冲器中的该主机写入数据根据该编程次序储存至该快闪记忆体的该开启区块之后,当该开启区块的一剩余储存空间小于一预设数据量时,将该主机写入数据及该搜集的写入数据储存至该快闪记忆体的该开启区块,直到将该开启区块写满并进行一区块关闭动作后,停止将该搜集的写入数据储存至该快闪记忆体;以及
清除暂存于该缓冲器中的数据。
6.如权利要求5所述的数据写入方法,其特征在于,于接收到该清除指令时,根据该预设数据量执行该垃圾搜集动作,其中该预设数据量可确保该主机写入数据能够根据该编程次序完全储存至该快闪记忆体。
7.如权利要求5所述的数据写入方法,其特征在于,该快闪记忆体包括多条字元线,每一该字元线对应至多个晶胞,且将该主机写入数据储存至一特定字元线所对应的该些晶胞时,进行一特定次数的编程程序之后,该特定字元线所对应的该些晶胞成为一完全编程状态,其中于接收到该清除指令时,根据该预设数据量执行该垃圾搜集动作,其中该预设数据量可确保储存该主机写入数据的该些晶胞能够根据该编程次序成为该完全编程状态。
8.一种固态储存装置,连接至一主机,其特征在于,该固态储存装置包括:
一缓冲器;
一控制器,连接至该主机与该缓冲器,其中该控制器接收一主机数据并转换为一主机写入数据暂存于该缓冲器中;以及
一快闪记忆体,连接至该控制器;
其中,当接收该主机发出一清除指令时,该控制器将该主机写入数据根据一编程次序储存至该快闪记忆体的一开启区块;该控制器执行一垃圾搜集动作,由该快闪记忆体的一关闭区块中取得一搜集的写入数据并暂存于该缓冲器中;以及该控制器根据该编程次序将该缓冲器中的一写入数据储存至该快闪记忆体的该开启区块,其中该写入数据为该主机写入数据或该搜集的写入数据。
9.如权利要求8所述的固态储存装置,其特征在于,当该主机发出该清除指令时,该控制器确认该主机写入数据已储存至该快闪记忆体后,清除暂存于该缓冲器中的数据。
10.如权利要求8所述的固态储存装置,其特征在于,当该主机发出该清除指令时,于该控制器将该缓冲器中的该主机写入数据根据该编程次序储存至该快闪记忆体的该开启区块之后,当该开启区块的一剩余储存空间小于一预设数据量时,该控制器将该写入数据储存至该快闪记忆体的该开启区块,直到将该开启区块写满并进行一区块关闭动作后,停止将该搜集的写入数据储存至该快闪记忆体,并清除暂存于该缓冲器中的数据。
11.如权利要求10所述的固态储存装置,其特征在于,当接收到该清除指令时,根据该预设数据量执行该垃圾搜集动作,其中该预设数据量可确保该主机写入数据能够根据该编程次序完全储存至该快闪记忆体。
12.如权利要求10所述的固态储存装置,其特征在于,该快闪记忆体包括多条字元线,每一该字元线对应至多个晶胞,且将该主机写入数据储存至一特定字元线所对应的该些晶胞时,进行一特定次数的编程程序之后,该特定字元线所所对应的该些晶胞成为一完全编程状态,其中当接收到该清除指令时,根据该预设数据量执行该垃圾搜集动作,其中该预设数据量可确保储存该主机写入数据的该些晶胞能够根据该编程次序成为该完全编程状态。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610502949.0A CN107544748B (zh) | 2016-06-28 | 2016-06-28 | 固态储存装置及其数据写入方法 |
US15/262,599 US10101944B2 (en) | 2016-06-28 | 2016-09-12 | Solid state storage device and data writing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610502949.0A CN107544748B (zh) | 2016-06-28 | 2016-06-28 | 固态储存装置及其数据写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107544748A true CN107544748A (zh) | 2018-01-05 |
CN107544748B CN107544748B (zh) | 2020-06-16 |
Family
ID=60677564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610502949.0A Active CN107544748B (zh) | 2016-06-28 | 2016-06-28 | 固态储存装置及其数据写入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10101944B2 (zh) |
CN (1) | CN107544748B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347332A (zh) * | 2018-04-04 | 2019-10-18 | 爱思开海力士有限公司 | 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180064588A (ko) * | 2016-12-05 | 2018-06-15 | 에스케이하이닉스 주식회사 | 메모리 제어 장치 및 방법 |
US10114586B1 (en) * | 2017-06-22 | 2018-10-30 | Western Digital Technologies, Inc. | System and method for using host command data buffers as extended memory device volatile memory |
KR20190088790A (ko) * | 2018-01-19 | 2019-07-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP2019133391A (ja) | 2018-01-31 | 2019-08-08 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
KR20200132566A (ko) * | 2019-05-17 | 2020-11-25 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
KR20210044564A (ko) | 2019-10-15 | 2021-04-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 가비지 컬렉션 방법 |
US11526299B2 (en) * | 2019-12-19 | 2022-12-13 | Micron Technology, Inc. | Elastic buffer for media management of a memory sub-system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656104A (zh) * | 2008-08-22 | 2010-02-24 | 群联电子股份有限公司 | 快闪存储器储存系统及其数据写入方法 |
US20120151124A1 (en) * | 2010-12-08 | 2012-06-14 | Sung Hoon Baek | Non-Volatile Memory Device, Devices Having the Same, and Method of Operating the Same |
CN103455435A (zh) * | 2013-08-29 | 2013-12-18 | 华为技术有限公司 | 数据写入方法及装置 |
CN104424103A (zh) * | 2013-08-21 | 2015-03-18 | 光宝科技股份有限公司 | 固态储存装置中高速缓存的管理方法 |
CN104484283A (zh) * | 2014-11-27 | 2015-04-01 | 记忆科技(深圳)有限公司 | 一种降低固态硬盘写放大的方法 |
US20150261444A1 (en) * | 2014-03-12 | 2015-09-17 | Kabushiki Kaisha Toshiba | Memory system and information processing device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091871A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Non-volatile memory with worst-case control data management |
US8848977B2 (en) * | 2010-01-04 | 2014-09-30 | The Board Of Trustees Of The Leland Stanford Junior University | Method for optical pose detection |
US8635399B2 (en) * | 2011-10-18 | 2014-01-21 | Stec, Inc. | Reducing a number of close operations on open blocks in a flash memory |
US9696935B2 (en) * | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
-
2016
- 2016-06-28 CN CN201610502949.0A patent/CN107544748B/zh active Active
- 2016-09-12 US US15/262,599 patent/US10101944B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656104A (zh) * | 2008-08-22 | 2010-02-24 | 群联电子股份有限公司 | 快闪存储器储存系统及其数据写入方法 |
US20120151124A1 (en) * | 2010-12-08 | 2012-06-14 | Sung Hoon Baek | Non-Volatile Memory Device, Devices Having the Same, and Method of Operating the Same |
CN104424103A (zh) * | 2013-08-21 | 2015-03-18 | 光宝科技股份有限公司 | 固态储存装置中高速缓存的管理方法 |
CN103455435A (zh) * | 2013-08-29 | 2013-12-18 | 华为技术有限公司 | 数据写入方法及装置 |
US20150261444A1 (en) * | 2014-03-12 | 2015-09-17 | Kabushiki Kaisha Toshiba | Memory system and information processing device |
CN104484283A (zh) * | 2014-11-27 | 2015-04-01 | 记忆科技(深圳)有限公司 | 一种降低固态硬盘写放大的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347332A (zh) * | 2018-04-04 | 2019-10-18 | 爱思开海力士有限公司 | 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107544748B (zh) | 2020-06-16 |
US20170371584A1 (en) | 2017-12-28 |
US10101944B2 (en) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107544748A (zh) | 固态储存装置及其数据写入方法 | |
TWI520139B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
US8566504B2 (en) | Dynamic metablocks | |
US8645613B2 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
TWI385527B (zh) | Mlc nand型快閃記憶體儲存系統及其控制器與存取方法 | |
KR101619569B1 (ko) | 온-칩 폴딩을 위한 데이터 전송 | |
KR101959567B1 (ko) | 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법 | |
CN104217759B (zh) | 非易失性存储装置、其操作方法及包括其的系统 | |
CN109542675A (zh) | 存储器系统及其操作方法 | |
US9965208B1 (en) | Memory device having a controller to enable and disable mode control circuitry of the controller | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
US20090070518A1 (en) | Adaptive Block List Management | |
KR20140072118A (ko) | 플래시 메모리 시스템 | |
CN109947662A (zh) | 存储器系统及其操作方法 | |
US20190121727A1 (en) | Memory system and method for operating the same | |
CN106448733A (zh) | 非易失性存储器设备、编程方法和其编程验证方法 | |
CN106802867A (zh) | 固态储存装置及其数据编程方法 | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
CN109697024A (zh) | 存储器系统及其操作方法 | |
CN106155582B (zh) | 非挥发性储存装置与控制器 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN107943710A (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN106033323A (zh) | 读取快闪存储器中储存单元的方法以及使用该方法的装置 | |
US8572350B2 (en) | Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system | |
CN110489050A (zh) | 数据储存装置及系统信息的编程方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191227 Address after: Room 302, factory a, No.8 Guangbao Road, Science City, Huangpu District, Guangzhou City, Guangdong Province Applicant after: Jianxing storage technology (Guangzhou) Co., Ltd Address before: 510663 No. 25 West spectral Road, Guangzhou hi tech Industrial Development Zone, Guangdong Applicant before: Guangbao Electronics (Guangzhou) Co., Ltd. Applicant before: Lite-On Technology Corporation |
|
GR01 | Patent grant | ||
GR01 | Patent grant |