CN106802867A - 固态储存装置及其数据编程方法 - Google Patents

固态储存装置及其数据编程方法 Download PDF

Info

Publication number
CN106802867A
CN106802867A CN201510833643.9A CN201510833643A CN106802867A CN 106802867 A CN106802867 A CN 106802867A CN 201510833643 A CN201510833643 A CN 201510833643A CN 106802867 A CN106802867 A CN 106802867A
Authority
CN
China
Prior art keywords
block
data
flash memory
garbage collection
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510833643.9A
Other languages
English (en)
Other versions
CN106802867B (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.)
Jianxing Storage Technology Guangzhou Co Ltd
Original Assignee
Lite On Electronics Guangzhou Co Ltd
Lite On Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lite On Electronics Guangzhou Co Ltd, Lite On Technology Corp filed Critical Lite On Electronics Guangzhou Co Ltd
Priority to CN201510833643.9A priority Critical patent/CN106802867B/zh
Priority to US15/098,860 priority patent/US10055143B2/en
Publication of CN106802867A publication Critical patent/CN106802867A/zh
Application granted granted Critical
Publication of CN106802867B publication Critical patent/CN106802867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

本发明涉及一种固态储存装置及其数据编程方法。该固态储存装置包括:一控制器;以及一闪存,连接至该控制器,且包括多个区块;其中,该控制器用以决定是否启动一无用单元收集动作;并于决定启动该无用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用以储存执行该无用单元收集动作时所搬移的一有效数据;以及编程该无用单元收集动作时所搬移的该有效数据至该第一开启区块;其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储存由该主机输出的一写入数据。

Description

固态储存装置及其数据编程方法
技术领域
本发明涉及一种固态储存装置及其数据编程方法,且特别是涉及一种可执行无用单元收集(garbage collection)动作的固态储存装置及其包含无用单元收集动作的数据编程方法。
背景技术
众所周知,固态储存装置(Solid State Device,SSD)使用与非门闪存(NAND flash memory)为主要储存元件,而闪存为一种非易失性(non-volatile)存储器。也就是说,当数据编程(program)至闪存后,即使***电源关闭,数据仍保存在闪存中。
请参照图1,其所示为已知固态储存装置的示意图。固态储存装置10中包括一控制器101、一缓冲元件(buffering element)107与一闪存105。控制器101连接至缓冲元件107与闪存105。再者,控制器101利用一外部总线20与主机(host)12之间进行指令与数据的传递。
当主机12输出写入数据(write data)欲编程至闪存105时,控制器101会先将写入数据进行ECC编码程序,之后再将写入数据暂存于缓冲元件107。而控制器101会适时的进行编程动作,将缓冲元件107中的写入数据编程至闪存105。
其中,缓冲元件107为高速缓存存储器(cache memory),可利用SRAM或者DRAM来实现。另外,外部总线20可为USB总线、IEEE 1394总线、PCIe总线或SATA总线等等。
一般来说,闪存中105包括多个区块(block),而每个区块中又包括多个页(page)。例如,闪存中105中有1024个区块,而每个区块中有64页,每个页的容量为4K bytes。再者,由于闪存105的特性,数据编程是以页为基本单位来进行编程动作(program action),而数据擦除(erase)则是以区块为单位进行区块擦除动作(block erase action)。
再者,主机12是以逻辑区块地址(logical block address,简称LBA)来存取闪存105。而一个LBA可对应至512字节(512bytes)的数据。换言之,当主机12欲将写入数据编程至闪存时,主机12会先产生写入命令(writecommand)及LBA至控制器101。之后,主机12再将对应的写入数据输出至控制器101。而控制器101会将写入数据暂存于缓冲元件107中。
假设闪存105中一个页的数据量为4Kbytes,则8个LBA的数据量等于一个页的数据量。由于闪存105是以页为基本单位来进行编程,所以当缓冲元件107中暂存的数据量达到或超过一页的数据量时,控制器101即可启动编程动作,并且以页为基本单位将数据编程至闪存中105。
另外,控制器101会于闪存105中选定一个空白区块来进行数据编程,称为开启区块(open block)。当控制器101进行编程动作时,会将缓冲元件107中暂存的数据编程至开启区块。当开启区块填满数据后,控制器101会再选定另一空白区块为开启区块,并继续将缓冲元件107中的数据编程至开启区块。
由于闪存105是以区块为擦除单位,每个页内的数据无法单独被擦除并更新(update),因此当闪存105接收到更新数据时,会将更新数据储存在新页(空白页)内,而原来旧页中的原始数据则被视为无效数据。如此,闪存105在经过长时间的存取之后,许多区块中都会包含有效数据以及无效数据,且闪存105的可编程空间会逐渐减少。
请参照图2A至图2C,其所示为已知闪存进行数据更新的示意图。以下是以闪存105中有五个区块(Block_1~Block_5),每个区块中有四页(Page_1~Page_4)为例来进行说明。
如图2A所示,假设区块1(Block_1)与区块2(Block_2)中所有的页内已分别储存有Data1~Data8的数据。
假设主机12输出写入数据Data8′、Data2′、Data9、Data10、Data11、Data7′、Data12、Data13欲编程至闪存105中。其中,Data2′、Data7′、Data8′是Data2、Data7、Data8的更新数据,而Data9~Data13是新数据。
如图2B所示,控制器101先选定区块3(Block_3)为开启区块,并将Data8′、Data2′、Data9、Data10编程至区块3(Block_3)。之后,控制器101再选定区块4(Block_4)为开启区块,并将Data11、Data7′、Data12、Data13编程至区块4(Block_4)中。其中,旧的Data2、Data7、Data8则被视为无效数据(以斜线来表示)。
接着,假设主机12输出写入数据Data14、Data3′、Data7″、Data12′欲编程至闪存105中。其中,Data3′、Data7″、Data12′是Data3、Data7′、Data12的更新数据,而Data14是新数据。
如图2C所示,控制器101选定区块5(Block_5)为开启区块,将Data14、Data3′、Data7"、Data12′编程至区块5(Block_5)。其中,旧的Data3、Data7′、Data12′则被视为无效数据(以斜线来表示)。
由以上的说明可知,经过多次的编程之后,闪存105中会出现许多的无效数据,且闪存105的可编程空间会逐渐减少。由于闪存105的擦除最小单位为区块,而图2C所示的闪存105中虽然有部分区块中具有无效数据,但是这些区块中仍有部份的有效数据,因此控制器101无法直接擦除上述区块。
由于闪存105中已经没有足够的储存空间,所以为了将储存无效数据的空间释放出来,固态储存装置10的控制器101会进行无用单元收集(garbagecollection)动作,以释放储存无效数据的空间,增加可编程空间。
一般来说,主机12可针对闪存105进行随机写入(random write)或者连续写入(sequential write)。于主机12输出的写入命令中,如果逻辑区块地址(LBA)不是连续地址即为随机写入。反之,如果写入指令中的LBA为连续地址,即为连续写入。其中,当主机12进行连续写入时,主机12会输出连续的写入数据储存至闪存105,例如连续数据重写(overwrite)或连续数据更新。以下延续图2C来说明已知闪存包含无用单元收集动作的编程流程。
请参照图3A至图3F,其所绘示为已知固态储存装置中闪存包含无用单元收集动作的编程流程示意图。假设,控制器101欲将区块1(Block_1)及区块2(Block_2)中储存无效数据的空间清出,以便于编程新数据。首先,如图3A所示,控制器101将区块1(Block_1)及区块2(Block_2)中的有效数据Data1、Data4、Data5、Data6搬移(move)至缓冲元件107。搬移完成后,再将区块1(Block_1)及区块2(Block_2)中Data1、Data4、Data5、Data6视为无效数据(以斜线来表示)。
基本上,控制器101在搬移欲清除的区块中的有效数据时,缓冲元件107仍可继续接收主机12输出的写入数据。换句话说,控制器101可同时执行无用单元收集动作以及接收主机12输出的写入数据。因此,如图3A所示,缓冲元件107中包括欲清除的区块(区块1(Block_1)及区块2(Block_2))中的有效数据Data1、Data4、Data5、Data6,以及主机12输出的写入数据Data15、Data16、Data17、Data18。其中,写入数据Data15、Data16、Data17、Data18是连续写入数据。
接着,于确认区块1(Block_1)及区块2(Block_2)中已无任何有效数据后,如图3B所示,控制器101即可对区块1(Block_1)及区块2(Block_2)进行区块擦除动作,使区块1(Block_1)及区块2(Block_2)成为空白区块。
接着,如图3C所示,控制器101即可进行编程动作并将缓冲元件107中的数据编程至闪存105中,并且完成一次包含无用单元收集动作的编程流程。其中,控制器101先选定区块1(Block_1)为开启区块,将Data1、Data15、Data4、Data16编程至区块1(Block_1)。接着,控制器101选定区块2(Block_2)为开启区块,将Data17、Data5、Data6、Data18编程至区块2(Block_2)。
由以上的说明可知,当控制器101进行包含无用单元收集动作的编程流程时,若欲清除的区块中同时储存有有效数据及无效数据时,控制器101需要将欲清除的区块中的有效数据搬移至缓冲元件107,同时也需要接收主机12所输出的写入数据,并将写入数据暂存至缓冲元件107。换言之,已知固态储存装置10在进行包含无用单元收集动作的编程流程时,缓冲元件107内会交错地暂存无用单元收集动作所搬移的有效数据以及主机12所输出的写入数据。因此,当控制器101将缓冲元件107中的数据编程至闪存105中的开启区块(open block)后,该区块中也会交错地储存无用单元收集动作中所搬移的有效数据以及主机12所输出的写入数据,如图3C中的区块1(Block_1)及区块2(Block_2)所示。
再者,如图3C所示,由于闪存105又再次没有足够的储存空间,所以控制器101需要再次执行无用单元收集动作,以便于编程新数据。
假设,主机12输出写入数据Data15′、Data16′、Data17′、Data18′欲编程至闪存105中,其中,写入数据Data15′、Data16′、Data17′、Data18′是连续写入数据,且为Data15、Data16、Data17、Data18的更新数据。如图3C所示,虽然区块1(Block_1)及区块2(Block_2)中旧的Data15、Data16、Data17、Data18将因数据更新而被视为无效数据,但由于区块1(Block_1)及区块2(Block_2)仍储存有先前无用单元收集动作所搬移的有效数据,因此控制器101需要再次进行无用单元收集动作,并再次将这些有效数据搬移至缓冲元件107,以便对区块1(Block_1)及区块2(Block_2)进行区块擦除动作。
请参照图3D至图3F,其所绘示为已知固态储存装置执行另一次包含无用单元收集动作的编程流程示意图。首先,如图3D所示,控制器101将区块1(Block_1)及区块2(Block_2)中的有效数据Data1、Data4、Data5、Data6搬移(move)至缓冲元件107。搬移完成后,再将区块1(Block_1)及区块2(Block_2)中Data1、Data4、Data5、Data6视为无效数据(以斜线来表示)。
同理,控制器101在搬移欲清除的区块中的有效数据时,缓冲元件107仍可接收主机12输出的写入数据。因此,如图3D所示,缓冲元件107中包括欲清除的区块(区块1(Block_1)及区块2(Block_2))中的有效数据Data1、Data4、Data5、Data6、以及主机12输出的写入数据Data15′、Data16′、Data17′、Data18′。其中,区块1(Block_1)及区块2(Block_2)中旧的Data15、Data16、Data17、Data18因数据更新而被视为无效数据。
接着,于确认区块1(Block_1)及区块2(Block_2)中已无任何有效数据后,如图3E所示,控制器101即可对区块1(Block_1)及区块2(Block_2)进行区块擦除动作,使区块1(Block_1)及区块2(Block_2)成为空白区块。
接着,如图3F所示,控制器101即可进行编程动作并将缓冲元件107中的数据编程至闪存105中,并且完成一次包含无用单元收集动作的编程流程。其中,控制器101先选定区块1(Block_1)为开启区块,将Data1、Data15′、Data16′、Data4编程至区块1(Block_1)。接着,控制器101选定区块2(Block_2)为开启区块,将Data17′、Data18′、Data5、Data6编程至区块2(Block_2)。
同理,当控制器101将缓冲元件107中的数据编程至闪存105中的开启区块(open block)后,该区块中也会交错地储存无用单元收集动作中所搬移的有效数据以及主机12所输出的写入数据,如图3F中的区块1(Block_1)及区块2(Block_2)所示。
再者,于图3F的状况,由于闪存105又再次没有足够的储存空间,此时,若主机12欲再次更新或重写连续写入数据Data15′、Data16′、Data17′、Data18′时,控制器101需要再次执行无用单元收集动作,并再次重复搬移在先前无用单元收集动作所搬移的有效数据。其运作情况不再赘述。
请参阅图4,其绘示为已知固态储存装置中闪存的数据储存示意图。根据已知固态储存装置10的数据编程方法,当闪存105没有足够的空间,并进行多次的包含无用单元收集动作的编程流程之后,每个区块(Block_1~Block_n)中会包括无用单元收集动作中所搬移的有效数据(GC)以及主机12所输出的写入数据(H)。
根据已知固态储存装置10的数据编程方法。当固态储存装置10中的闪存105的储存状况如图4所示且主机12进行连续数据写入时,控制器101必须持续的进行无用单元收集动作,并重复地搬移在先前无用单元收集动作中所搬移的有效数据以产生空白区块,而开启区块中还是储存无用单元收集动作中所搬移的有效数据(GC)以及主机12所输出的写入数据(H)。如此,将导致固态储存装置10的写入速度(write speed)下降并且无法有效地提升。
由以上的说明可知,由于根据已知固态储存装置10的数据处理方法,闪存105中的区块会交错地储存有无用单元收集动作中所搬移的有效数据(GC)及主机12的写入数据(H)。所以在主机10以连续写入的方式进行的连续数据重写或连续数据更新的过程,控制器101需持续进行无用单元收集动作,并重复地搬移在先前无用单元收集动作中所搬移的有效数据。再者,控制器101需先进行将欲清除的区块中的有效数据搬移至缓冲元件107后,才能进行区块擦除动作,并将数据编程至闪存105中。再者,由于缓冲元件107中仍包括有效数据(GC)以及写入数据(H),所以有效数据(GC)与写入数据(H)仍会交错地被编程至开启区块中。
由于连续写入的过程,控制器101需要同时不断地进行无用单元收集动作,并重复地搬移在先前无用单元收集动作中所搬移的有效数据,因此固态储存装置10的写入速度会高低变化,并且无法到达较高的写入速度。
发明内容
本发明涉及一种固态储存装置,经由一外部总线连接至一主机,该固态储存装置包括:一控制器;以及一闪存,连接至该控制器,且包括多个区块;其中,该控制器用以决定是否启动一无用单元收集动作;并于决定启动该无用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用以储存执行该无用单元收集动作时所搬移的一有效数据;以及编程该无用单元收集动作时所搬移的该有效数据至该第一开启区块;其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储存由该主机输出的一写入数据。
本发明有关于一种固态储存装置的数据编程方法,该固态储存装置具有一闪存,该闪存包括多个区块,该数据编程方法包括下列步骤:决定是否启动一无用单元收集动作;于决定启动该无用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用以储存执行该无用单元收集动作时所搬移的一有效数据;以及编程该无用单元收集动作时所搬移的该有效数据至该第一开启区块;其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储存由该主机输出的一写入数据。
为了对本发明上述及其他方面有更佳的了解,下文特举较佳实施例,并结合附图详细说明。
附图说明
图1所绘示为已知固态储存装置的示意图。
图2A至图2C所绘示为闪存进行数据更新的示意图。
图3A至图3F所绘示为已知固态储存装置中闪存包含无用单元收集动作的编程流程示意图。
图4所绘示为已知固态储存装置中闪存的储存数据示意图。
图5所绘示为本发明实施例固态储存装置的示意图。
图6A至图6F所绘示为本发明实施例固态储存装置中闪存包含无用单元收集动作的编程流程示意图。
图7所绘示为本发明实施例固态储存装置中闪存的储存数据示意图。
具体实施方式
请参考图5,其所绘示为本发明固态储存装置的示意图。固态储存装置50中包括一控制器501、一缓冲元件(buffering element)510与一闪存505。控制器501连接至缓冲元件510与闪存505。再者,控制器501利用一外部总线55与主机(host)52之间进行指令与数据的传递。
根据本发明的实施例,缓冲元件510中还划分为第一储存区512与第二储存区514。其中,无用单元收集动作中搬移的有效数据(GC)暂存于第一储存区512,而主机52所输出的写入数据(H)暂存于第二储存区514。
再者,本发明的固态储存装置50中,控制器501还可于闪存505中选定二个空白区块,并定义为第一开启区块与第二开启区块。其中,第一开启区块用以储存无用单元收集动作中搬移的有效数据(GC),而第二开启区块用以储存主机52所输出的写入数据(H)。换句话说,控制器501进行编程时,将第一储存区512中的有效数据(GC)与第二储存区514中的写入数据(H),分别储存于第一开启区块与第二开启区块。当第一开启区块被编程且填满之后,控制器501再由闪存505中选定另一第一开启区块,用以储存无用单元收集动作中搬移的有效数据(GC)。同理,当第二开启区块被编程且填满之后,控制器501再由闪存505中选定另一第二开启区块,用以储存主机52所输出的写入数据(H)。
换言之,控制器501可将无用单元收集动作中搬移的有效数据(GC)与主机52所输出的写入数据(H)分别编程于不同的开启区块,以避免发生一个区块中同时包括无用单元收集动作中搬移的有效数据(GC)以及主机52所输出的写入数据(H),并可有效地提升固态储存装置10的写入速度。
请参照图6A至图6F,其所绘示为本发明固态储存装置中闪存包含无用单元收集动作的编程流程示意图。此流程是延续图2C中闪存105来进一步说明本发明所揭示的方法。在图2C中,闪存105已没有足够的可编程空间来储存新数据,因此控制器501需进行无用单元收集动作。
首先,如图6A所示,控制器501先将区块1(Block_1)与区块2(Block_2)中的有效数据Data1、Data4、Data5、Data6搬移至缓冲元件510中的第一储存区512。搬移完成后,再将区块1(Block_1)与区块2(Block_2)中的Data1、Data4、Data5、Data6视为无效数据(以斜线来表示)。
相同地,控制器501在搬移闪存505中的有效数据时,缓冲元件510仍可继续接收主机52输出的写入数据。换句话说,控制器501可同时执行无用单元收集动作以及接收主机52输出的数据。因此,如图6A所示,缓冲元件510中的第一储存区512中储存无用单元收集动作中搬移的有效数据Data1、Data4、Data5、Data6,而主机52输出的写入数据Data15、Data16、Data17、Data18则储存于第二储存区514。其中,Data15、Data16、Data17、Data18为新数据且为连续写入数据。
接着,于确认区块1(Block_1)与区块2(Block_2)中已无任何有效数据后,如图6B所示,控制器501即可对区块1(Block_1)与区块2(Block_2)进行区块擦除动作,使区块1(Block_1)与区块2(Block_2)成为空白区块。
接着,如图6C所示,控制器501即可进行编程动作并将缓冲元件510中的数据编程至闪存505中,并且完成一次包含无用单元收集动作的编程流程。其中,控制器501选定区块1(Block_1)为第一开启区块,将Data1、Data4、Data5、Data6编程至第一开启区块,亦即区块1(Block_1);再者,控制器501选定区块2(Block_2)为第二开启区块,将Data15、Data16、Data17、Data18编程至第二开启区块,亦即区块2(Block_2)。
明显地,区块1(Block_1)中的所有数据皆为无用单元收集动作中搬移的有效数据(GC),并且区块2(Block_2)中的所有数据皆为主机52所输出的写入数据(H)。
再者,由于图6C中,闪存505又再次没有足够的储存空间,所以控制器501需要再次执行无用单元收集动作,以便于编程数据至闪存505。假设,主机52输出写入数据Data15′、Data16′、Data17′、Data18′欲编程至闪存505中,其中,写入数据Data15′、Data16′、Data17′、Data18′是连续写入数据Data15、Data16、Data17、Data18的更新数据。由于在前次的包含无用单元收集动作的编程流程中,无用单元收集动作中搬移的有效数据皆是储存于第一开启区块,亦即区块1(Block_1),因此第二开启区块,亦即区块2(Block_2),仅储存主机52输出的写入数据Data15、Data16、Data17、Data18,而未储存无用单元收集动作中搬移的有效数据。因此,当储存于区块2(Block_2)中旧的Data15、Data16、Data17、Data18因数据更新而被视为无效数据时,控制器501可直接对区块2(Block_2)进行区块擦除动作来取得储存空间以编程数据,而无须进行有效数据的搬移动作。
请参照图6D至图6F,其所绘示为固态储存装置执行另一次包含无用单元收集动作的编程流程示意图。如图6D所示,主机52输出的写入数据Data15′、Data16′、Data17′、Data18′暂储存于第二储存区514,而储存于区块2(Block_2)中旧的Data15、Data16、Data17、Data18因数据更新而被视为无效数据(以斜线来表示)。接着,于确认区块2(Block_2)中已无任何有效数据后,如图6E所示,控制器501即可对区块2(Block_2)进行区块擦除动作,使区块2(Block_2)成为空白区块。
接着,如图6F所示,控制器501即可进行编程动作并将缓冲元件510中的数据编程至闪存505中,并且完成另一次包含无用单元收集动作的编程流程。其中,控制器501选定区块2(Block_2)为第二开启区块,将Data15′、Data16′、Data17′、Data18′编程至第二开启区块,亦即区块2(Block_2)。须注意的是,在此次包含无用单元收集动作的编程流程中,无用单元收集动作并不需要重复进行有效数据的搬移及编程动作,仅需直接进行区块擦除动作。如此,将可有效地避免固态储存装置50的写入速度下降。
由以上的说明可知,根据本发明提出的固态储存装置,控制器501可选择二个空白区块作为第一开启区块及第二开启区块,并用以分别储存无用单元收集动作中搬移的有效数据(GC),以及主机输出的写入数据(H)。在本发明实施例中,缓冲元件510中更划分为第一储存区与第二储存区,并用以分别暂储存无用单元收集动作中搬移的有效数据(GC),以及主机所输出的写入数据(H)。
因此,如图7所示,闪存505中的所有区块(Block~1~Block_n)不是被编程无用单元收集动作中搬移的有效数据(GC),就是被编程主机所输出的写入数据(H)。不会有任何区块同时包括无用单元收集动作中搬移的有效数据(GC)以及主机所输出的写入数据(H)。
再者,当闪存505被编程且填满后,当主机52进行连续数据更新或重写(overwrite)时,由于闪存505中储存写入数据(H)的区块中完全没有任何无用单元收集动作所搬移的有效数据(GC)。因此,于进行连续数据更新或重写时,闪存505中储存写入数据(H)的区块有很高的机率会因数据被更新而使区块内的数据皆为无效数据,因此控制器501不需要重复进行有效数据的搬移及编程动作。控制器501仅需将数据皆为无效数据的区块进行擦除后,便可设定该被擦除的空白区块为第二开启区块,并直接将写入数据编程于第二开启区块。
根据本发明的实施例,由于控制器501不再需要重复进行有效数据的搬移及编程动作,因此控制器501可以维持在较高的写入速度将主机52输出的写入数据编程于闪存505中。
此外,在本发明实施例中,控制器501可根据闪存505的可编成空间的大小来决定是否启动无用单元收集动作。其中,若闪存505具有足够的可编成空间,则控制器501可决定无须启动无用单元收集动作,并选定一第一开启区块用来储存主机输出的写入数据。反之,若闪存505的可编程空间不足时,则控制器501可决定启动无用单元收集动作,并选定一第二开启区块用来储存无用单元收集动作中所搬移的有效数据。其中,若在启动无用单元收集动作的过程中,主机亦输出写入数据欲编程至闪存505时,控制器501会选定一第一开启区块用来储存主机输出的写入数据,以及一第二开启区块用来储存无用单元收集动作中所搬移的有效数据。
由以上的说明可知,本发明提出一种固态储存装置及其数据编程方法。通过将无用单元收集动作中搬移的有效数据(GC),以及主机输出的写入数据(H)分别储存在不同的区块中,使固态储存装置50可以维持用较高的写入速度来编程闪存505,提高固态储存装置50的整体效能(performance)。
综上所述,虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明。本发明本领域技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书界定者为准。

Claims (8)

1.一种固态储存装置的数据编程方法,该固态储存装置具有一闪存,该闪存包括多个区块,该数据编程方法包括下列步骤:
决定是否启动一无用单元收集动作;
于决定启动该无用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用以储存执行该无用单元收集动作时所搬移的一有效数据;以及
编程该无用单元收集动作时所搬移的该有效数据至该第一开启区块;
其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储存由一主机输出的一写入数据。
2.根据权利要求1所述的数据编程方法,其中执行该无用单元收集动作时所搬移的该有效数据以及由该主机输出的该写入数据分别被储存于该闪存中不同的区块内。
3.根据权利要求1所述的数据编程方法,其中于决定启动该无用单元收集动作时,若该固态储存装置接收到由该主机输出的该写入数据,该数据编程方法还包括下列步骤:
编程由该主机输出的该写入数据至该第二开启区块。
4.根据权利要求1所述的数据编程方法,其中该固态储存装置具有一缓冲单元,其中该缓冲单元规划有一第一储存区与一第二储存区,分别用以暂存该无用单元收集动作时所搬移的该有效数据,以及由该主机输出的该写入数据。
5.一种固态储存装置,经由一外部总线连接至一主机,该固态储存装置包括:
一控制器;以及
一闪存,连接至该控制器,且包括多个区块;
其中,该控制器用以决定是否启动一无用单元收集动作;并于决定启动该无用单元收集动作时,于该闪存中的这些区块中选定一第一开启区块,用以储存执行该无用单元收集动作时所搬移的一有效数据;以及编程该无用单元收集动作时所搬移的该有效数据至该第一开启区块;
其中,该闪存中的这些区块具有另一被选定的一第二开启区块,用以储存由该主机输出的一写入数据。
6.根据权利要求5所述的固态储存装置,其中执行该无用单元收集动作时所搬移的该有效数据以及由该主机输出的该写入数据分别被储存于该闪存中不同的区块内。
7.根据权利要求5所述的固态储存装置,其中于决定启动该无用单元收集动作时,若该固态储存装置接收到由该主机输出的该写入数据,该控制器还用以编程由该主机输出的该写入数据至该第二开启区块。
8.根据权利要求5所述的固态储存装置,其中该固态储存装置还包括一缓冲单元,其中该缓冲单元规划有一第一储存区与一第二储存区,分别用以暂存该无用单元收集动作时所搬移的该有效数据,以及由该主机输出的该写入数据。
CN201510833643.9A 2015-11-25 2015-11-25 固态储存装置及其数据编程方法 Active CN106802867B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510833643.9A CN106802867B (zh) 2015-11-25 2015-11-25 固态储存装置及其数据编程方法
US15/098,860 US10055143B2 (en) 2015-11-25 2016-04-14 Solid state drive and data programming method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510833643.9A CN106802867B (zh) 2015-11-25 2015-11-25 固态储存装置及其数据编程方法

Publications (2)

Publication Number Publication Date
CN106802867A true CN106802867A (zh) 2017-06-06
CN106802867B CN106802867B (zh) 2020-12-01

Family

ID=58719608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510833643.9A Active CN106802867B (zh) 2015-11-25 2015-11-25 固态储存装置及其数据编程方法

Country Status (2)

Country Link
US (1) US10055143B2 (zh)
CN (1) CN106802867B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813326A (zh) * 2019-04-12 2020-10-23 建兴储存科技(广州)有限公司 具多数据流写入的固态存储装置及其相关写入方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6524039B2 (ja) * 2016-09-23 2019-06-05 東芝メモリ株式会社 メモリシステム及び制御方法
DE102017119068B4 (de) * 2017-08-21 2020-12-10 Infineon Technologies Ag Aktualisieren eines Speichers
DE102017119065B4 (de) * 2017-08-21 2020-12-10 Infineon Technologies Ag Aktualisieren eines Speichers
KR20190075352A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210044564A (ko) 2019-10-15 2021-04-23 삼성전자주식회사 스토리지 장치 및 그것의 가비지 컬렉션 방법
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
KR20210108107A (ko) * 2020-02-25 2021-09-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11733924B1 (en) * 2021-08-03 2023-08-22 Kioxia Corporation Method for discarding garbage collection data during power loss

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090125671A1 (en) * 2006-12-06 2009-05-14 David Flynn Apparatus, system, and method for storage space recovery after reaching a read count limit
CN102520885A (zh) * 2011-12-15 2012-06-27 清华大学 一种混合硬盘的数据管理***
CN103218306A (zh) * 2013-03-29 2013-07-24 四川长虹电器股份有限公司 一种实现基于ubi的动态磨损均衡的方法
CN104424103A (zh) * 2013-08-21 2015-03-18 光宝科技股份有限公司 固态储存装置中高速缓存的管理方法
CN104915147A (zh) * 2014-03-12 2015-09-16 慧荣科技股份有限公司 数据储存装置及快闪存储器零散数据收集方法
US20150261797A1 (en) * 2014-03-13 2015-09-17 NXGN Data, Inc. System and method for management of garbage collection operation in a solid state drive

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122193B2 (en) * 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US7444462B2 (en) 2006-09-28 2008-10-28 Sandisk Corporation Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
JP2008140046A (ja) * 2006-11-30 2008-06-19 Fuji Xerox Co Ltd 画像処理装置、画像処理プログラム
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8166233B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
KR101143397B1 (ko) * 2009-07-29 2012-05-23 에스케이하이닉스 주식회사 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법
US9092340B2 (en) * 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
US8700949B2 (en) * 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
US20120173795A1 (en) * 2010-05-25 2012-07-05 Ocz Technology Group, Inc. Solid state drive with low write amplification
CN102385902A (zh) * 2010-09-01 2012-03-21 建兴电子科技股份有限公司 固态储存装置及其数据控制方法
US8452911B2 (en) * 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
US20130019057A1 (en) * 2011-07-15 2013-01-17 Violin Memory, Inc. Flash disk array and controller
US20130103889A1 (en) * 2011-10-25 2013-04-25 Ocz Technology Group Inc. Page-buffer management of non-volatile memory-based mass storage devices
US9081663B2 (en) * 2011-11-18 2015-07-14 Stec, Inc. Optimized garbage collection algorithm to improve solid state drive reliability
CN103164345B (zh) * 2011-12-08 2016-04-27 光宝科技股份有限公司 固态存储装置遭遇断电后的数据存储方法
US8762627B2 (en) * 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
JP5687648B2 (ja) * 2012-03-15 2015-03-18 株式会社東芝 半導体記憶装置およびプログラム
TWI479313B (zh) * 2012-07-11 2015-04-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8724389B2 (en) * 2012-07-26 2014-05-13 Ocz Storage Solutions, Inc. Non-volatile solid state memory-based mass storage device and methods thereof
US20140122774A1 (en) * 2012-10-31 2014-05-01 Hong Kong Applied Science and Technology Research Institute Company Limited Method for Managing Data of Solid State Storage with Data Attributes
US9465731B2 (en) * 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
KR102053865B1 (ko) * 2013-03-15 2019-12-09 삼성전자주식회사 호스트-주도 가비지 컬렉션 방법과 상기 방법을 수행할 수 있는 시스템

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090125671A1 (en) * 2006-12-06 2009-05-14 David Flynn Apparatus, system, and method for storage space recovery after reaching a read count limit
CN102520885A (zh) * 2011-12-15 2012-06-27 清华大学 一种混合硬盘的数据管理***
CN103218306A (zh) * 2013-03-29 2013-07-24 四川长虹电器股份有限公司 一种实现基于ubi的动态磨损均衡的方法
CN104424103A (zh) * 2013-08-21 2015-03-18 光宝科技股份有限公司 固态储存装置中高速缓存的管理方法
CN104915147A (zh) * 2014-03-12 2015-09-16 慧荣科技股份有限公司 数据储存装置及快闪存储器零散数据收集方法
US20150261797A1 (en) * 2014-03-13 2015-09-17 NXGN Data, Inc. System and method for management of garbage collection operation in a solid state drive

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813326A (zh) * 2019-04-12 2020-10-23 建兴储存科技(广州)有限公司 具多数据流写入的固态存储装置及其相关写入方法
CN111813326B (zh) * 2019-04-12 2024-04-19 建兴储存科技(广州)有限公司 具多数据流写入的固态存储装置及其相关写入方法

Also Published As

Publication number Publication date
CN106802867B (zh) 2020-12-01
US20170147232A1 (en) 2017-05-25
US10055143B2 (en) 2018-08-21

Similar Documents

Publication Publication Date Title
CN106802867A (zh) 固态储存装置及其数据编程方法
CN104750615B (zh) 数据储存装置以及快闪存储器控制方法
TWI602116B (zh) 資料儲存裝置及其資料維護方法
CN104298465B (zh) 固态储存装置中的区块分组方法
US8566504B2 (en) Dynamic metablocks
US9690695B2 (en) Data storage device and flash memory control method thereof
JP5213965B2 (ja) 1セル当り単一ビットnandフラッシュメモリをエミュレートする1セル当り多ビットnandフラッシュメモリ用コントローラ
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
CN110045913A (zh) 垃圾收集的方法、记忆装置及其控制器和电子装置
US20090070518A1 (en) Adaptive Block List Management
TWI398770B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
US10949355B2 (en) Methods and apparatus for workload based dynamic cache control in SSD
CN105279115B (zh) 闪存控制装置、闪存控制***以及闪存控制方法
CN104484283B (zh) 一种降低固态硬盘写放大的方法
EP1909184A2 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
CN109960464A (zh) 数据储存装置与存储器装置的数据处理方法
KR20140119701A (ko) Slc-mlc 마모 균형유지
TWI668700B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
US20140328127A1 (en) Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
CN106170833A (zh) 在数据存储***中的具有模块化擦除的数据管理
CN104765569B (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
US9141530B2 (en) Data writing method, memory controller and memory storage device
CN110083546A (zh) 记忆装置中进行写入管理的方法、记忆装置和其控制器
TWI544487B (zh) 資料儲存裝置以及快閃記憶體控制方法
CN107544748A (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: 20191230

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: Guangzhou hi tech Industrial Development Zone, Science Town, spectrum West Road, No. twenty-five

Applicant before: Guangbao Electronics (Guangzhou) Co., Ltd.

Applicant before: Lite-On Technology Corporation

GR01 Patent grant
GR01 Patent grant