CN106855789B - 快闪存储器的废料收集方法以及使用该方法的装置 - Google Patents
快闪存储器的废料收集方法以及使用该方法的装置 Download PDFInfo
- Publication number
- CN106855789B CN106855789B CN201610221754.9A CN201610221754A CN106855789B CN 106855789 B CN106855789 B CN 106855789B CN 201610221754 A CN201610221754 A CN 201610221754A CN 106855789 B CN106855789 B CN 106855789B
- Authority
- CN
- China
- Prior art keywords
- data
- pages
- storage
- valid data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 70
- 239000002699 waste material Substances 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/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)
- Memory System (AREA)
Abstract
本发明涉及一种快闪存储器的废料收集方法以及使用该方法的装置,该方法由处理单元执行,包含下列步骤。从多个储存子单元读取n*m个页面的有效数据,其中,n代表共享一个通道的储存子单元的数量,m代表每一储存子单元的最小写入页面的数量。反复执行一个循环,用以逐一驱动储存子单元以写入m个页面的有效数据,直到储存子单元皆处于忙碌状态为止。
Description
技术领域
本发明有关于一种快闪存储器装置,特别是一种快闪存储器的废料收集方法以及使用该方法的装置。
背景技术
快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,而可于地址脚位上提供任何的地址,用以存取NOR快闪装置的主装置(host),并及时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入序列的位元组(bytes)的值到NAND快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,藉由使用提取信号(strobe signal)顺序地敲出(clock out)内容,让主单元可逐位元组或字元组(words)存取数据。
若区块中的部分页面的数据已经不需要(亦称为过期页面),则读取这些区块中储存有效数据的页面并重新写入至另一个先前经过抹除的空区块。接着,这些释放的区块在经过抹除作业后就可被用以写入新数据。以上处理称为废料收集(GC,GarbageCollection)。废料收集处理牵涉到读取及重新写入数据至快闪存储器,也就是一次新的写入前需要读取完整个区块的数据。然而,废料收集耗费大量的时间。因此,需要一种快闪存储器的废料收集方法以及使用该方法的装置,用以减少存取时间。
发明内容
本发明的实施例提出一种快闪存储器的废料收集方法,由处理单元执行,包含下列步骤。从多个储存子单元读取n*m个页面的有效数据。反复执行一个循环,用以逐一驱动储存子单元以写入m个页面的有效数据,直到储存子单元皆处于忙碌状态为止。
本发明的实施例另提出一种快闪存储器的废料收集方法,由处理单元执行,包含下列步骤。将n*m个页面的有效数据的多个读取命令进行排程。除了接收相应于最后的读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,传送下一数据读取命令及实体地址给储存子单元中的指定下一者。驱动储存子单元以写入n*m个页面的有效数据。
本发明的实施例提出一种快闪存储器的废料收集装置,至少包含通道以及处理单元。通道耦接于多个储存子单元,而处理单元耦接于通道。处理单元从储存子单元读取n*m个页面的有效数据;以及反复执行一个循环,用以逐一驱动上述储存子单元以写入m个页面的有效数据,直到储存子单元皆处于忙碌状态为止。
本发明的实施例另提出一种快闪存储器的废料收集装置,至少包含通道以及处理单元。通道耦接于多个储存子单元,而处理单元耦接于通道。处理单元将n*m个页面的有效数据的多个读取命令进行排程;除了接收相应于最后一读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,传送下一数据读取命令及实体地址给储存子单元中的指定下一者;以及驱动储存子单元以写入n*m个页面的有效数据。
其中,n代表共享一个通道的储存子单元的数量,m代表每一储存子单元的最小写入页面的数量。
附图说明
图1是依据本发明实施例的快闪存储器的***架构示意图。
图2是依据本发明实施例的快闪存储器中的储存单元示意图。
图3是依据本发明实施例的存取介面与储存单元的方块图。
图4是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。
图5是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。
图6是依据本发明实施例的废料收集处理示意图。
图7是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。
图8是依据本发明实施例的废料收集处理示意图。
图9A及9B是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。
符号说明
10 ***;
110 处理单元;
130 动态随机存取存储器;
150 存取介面;
160 主装置;
170 存取介面;
170_0~170_j 存取子介面;
180 储存单元;
180_0_0~180_j_i 储存子单元;
210 存储器单元阵列;
220 行解码单元;
230 列编码单元;
240 地址单元;
250 数据缓存器;
410_0 数据线;
420_0_0~420_0_i 芯片致能控制信号;
CE0~CE4 储存子单元;
R0 从CE0接收数据的时间;
R1 从CE1接收数据的时间;
R2 从CE2接收数据的时间;
R3 从CE3接收数据的时间;
S511~S557 方法步骤;
S711~S791 方法步骤;
S911~S977 方法步骤;
T61 读取数据的时间区间;
T63 写入数据的时间区间;
T81 读取数据的时间区间;
T83 写入数据的时间区间;
tR 储存子单元准备数据的时间;
tProg 储存子单元实际写入数据的时间;
W0 传送数据至CE0的时间;
W1 传送数据至CE1的时间;
W2 传送数据至CE2的时间;
W3 传送数据至CE3的时间。
具体实施方式
以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
于权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
图1是依据本发明实施例的快闪存储器的***架构示意图。快闪存储器的***架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110透过存取介面170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。***架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(data line)、时脉信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(addresslatch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(writeenable,WE)等控制信号。存取介面170可采用双倍数据率(double data rate,DDR)通讯协定与储存单元180沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其他介面。处理单元110另可使用存取介面150透过指定通讯协定与主装置160进行沟通,例如,通用串行总线(universal serial bus,USB)、先进技术附着(advanced technology attachment,ATA)、串行先进技术附着(serial advancedtechnology attachment,SATA)、快速周边元件互联(peripheral componentinterconnect express,PCI-E)或其他介面。
图2是依据本发明实施例的快闪存储器中的储存单元示意图。储存单元180可包含由MxN个存储器单元(memory cells)组成的阵列(array)210,而每一个存储器单元储存至少一个位元(bit)的资讯。快闪存储器可以是NAND型快闪存储器,或其他种类的快闪存储器。为了正确存取资讯,行解码单元220用以选择存储器单元阵列210中指定的行,而列编码单元230用以选择指定行中一定数量的位元组的数据作为输出。地址单元240提供行资讯给行解码器220,其中定义了选择存储器单元阵列210中的那些行。相似地,列解码器230则根据地址单元240提供的列资讯,选择存储器单元阵列210的指定行中一定数量的列进行读取或写入操作。行可称为为字元线(wordline),列可称为位元线(bitline)。数据缓存器(databuffer)250可储存从存储器单元阵列210读取出的数据,或欲写入存储器单元阵列210中的数据。存储器单元可为单层式单元(single-level cells,SLCs)、多层式单元(multi-levelcells,MLCs)或三层式单元(triple-level cells,TLCs)。
储存单元180可包含多个储存子单元,每一个储存子单元实施于一个晶粒(die)上,各自使用关联的存取子介面与处理单元110进行沟通。图3是依据本发明实施例的存取介面与储存单元的方块图。快闪存储器10可包含j+1个存取子介面170_0至170_j,存取子介面又可称为通道(channel),每一个存取子介面连接i+1个储存子单元。换句话说,i+1个储存子单元共享一个存取子介面。例如,当快闪存储器10包含4个通道(j=3)且每一个通道连接4个储存单元(i=3)时,快闪存储器10一共拥有16个储存单元180_0_0至180_j_i。处理单元110可驱动存取子介面170_0至170_j中之一者,从指定的储存子单元读取数据。每个储存子单元拥有独立的芯片致能(CE,Chip Enable)控制信号。换句话说,当欲对指定的储存子单元进行数据读取或写入时,需要驱动关联的存取子介面致能此储存子单元的芯片致能控制信号。图4是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。处理单元110可透过存取子介面170_0使用独立的芯片致能控制信号420_0_0至420_0_i来从连接的储存子单元180_0_0至180_0_i中选择出其中一者,接着,透过共享的数据线410_0传送命令或数据给选择出的储存子单元,或者从选择出的储存子单元接收指定位置上的数据。
主装置160可透过存取介面150提供逻辑区块地址(LBA,Logical Block Address)给处理单元110,用以指示写入或读取特定区域的数据。存取介面170为最佳化数据写入的效率,可将一段具有连续逻辑区块地址的数据分散地摆放在不同储存子单元中的不同区域。因此,需要一个对照表(又称为H2F表),用以指出每个逻辑区块地址的数据实际上存放在哪个储存子单元中的哪个位置。于一种实施方式中,可于动态随机存取存储器130中配置足够大的空间来储存此对照表。
假设n个储存子单元共享一个通道,一个储存子单元的最小写入单位为m个页面。为了让废料收集处理的数据写入更有效率,本发明实施例从数个区块中读取n*m个页面的有效数据,接着,逐一驱动储存子单元写入m个页面的有效数据,直到所有储存子单元皆处于忙碌状态(busy state)为止。于此须注意的是,当m个页面的有效数据传送至一个储存子单元完毕后,不需要等待储存子单元执行完实体写入作业即可传送另外m个页面的有效数据给下一个储存子单元。透过以上的设计,可让处理单元110于一个储存子单元执行实体写入作业的期间传送数据给下一个储存子单元,并且在所有储存子单元执行实体写入作业的期间,转而执行其他的运算作业。图5是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。处理单元110经由存取介面170读取n*m个页面的有效数据并储存于动态随机存取存储器130后(步骤S511),初始化变数k(k=k0)(步骤S513)。其中,除了有效数据外,读取区块另包含过期数据。k0为一个常数,介于0至n-1之间,用以指示第一个写入数据的储存子单元的编号。于此须注意的是,动态随机存取存储器130拥有足够大的空间来储存n*m个页面的有效数据。于步骤S511,处理单元可依据动态随机存取存储器130中的H2F表取得n*m个页面的有效数据的实体地址并且驱动储存单元180从这些实体地址读取数据。接着,处理单元110反复执行一个循环(步骤S531至S557),直到n*m个页面的有效数据都写入储存单元180为止。
于每一回合中,处理单元110从动态随机存取存储器130读取m个页面的有效数据,以及经由存取介面170传送数据写入命令及实体地址给第k个储存子单元(步骤S531)。参考图4。举例来说,于步骤S531,处理单元110可透过存取子介面170_0致能独立的芯片致能控制信号420_0_0至420_0_i中的指定一者,用以从储存子单元180_0_0至180_0_i中选择出第k个储存子单元,接着,透过共享的数据线410_0传送数据写入命令及实体地址给选择出的第k个储存子单元。于此须注意的是,实体地址指示同一个区块的m个页面。接着,处理单元110传送m个页面的有效数据给第k个储存子单元(步骤S533),以及传送开始写入信号给第k个储存子单元,用以指示开始执行实体写入作业(步骤S535)。参考第4图。举例来说,于步骤S533,处理单元110可透过共享的数据线410_0传送m个页面的有效数据给选择出的第k个储存子单元。举例来说,于步骤S535,处理单元110可转态(toggle)相应于第k个储存子单元的写入致能(WE,Write Enable)信号,用以指示开始执行实体写入作业。当第k个储存子单元接收到处理单元110的指示后,进入忙碌状态并执行实体写入作业,用以将m个页面的有效数据写入指定的实体地址。接着,当尚未完成整个写入作业时(步骤S551中”否”的路径),处理单元110将变数k加1(步骤S553),以及判断变数k是否大于或等于n(步骤S555)。若是,处理单元110将变数k设为0(步骤S557),并接着驱动第0个储存子单元写入m个页面的有效数据(步骤S531至S553)。否则,处理单元110接着驱动第k个储存子单元写入m个页面的有效数据(步骤S531至S553)。当完成整个写入作业时(步骤S551中”是”的路径),处理单元110结束n*m个页面的废料收集处理。
图6是依据本发明实施例的废料收集处理示意图。假设4个储存子单元共享一个通道,一个储存子单元的最小写入单位为2个页面,每个页面可包含4K、8K或16K或其他长度的位元组数据。参考图4及图5。于步骤S511,处理单元110可于时间区间T61透过存取介面170从4个储存子单元(表示为CE0至CE3)读取8(4x2)个页面的有效数据,以及储存于动态随机存取存储器130。详细来说,处理单元110透过共享的数据线410_0发送数据读取命令以及实体地址给指定的储存子单元后,等待一段时间tR(例如,30、40或70微秒(μs)),用以让储存子单元准备实体地址上的数据。接着,处理单元110于一段时间Rx(例如,45或50微秒(μs))透过共享的数据线410_0接收指定页面的数据,x可为0至3中之任一者。为了缩短废料收集处理中的数据写入时间T63,于步骤S531至S535,处理单元110可于一段时间Wx(例如,90或100微秒(μs))透过存取介面170传送数据写入命令、实体地址及开始写入信号给指定的储存子单元后,不需等待此储存子单元执行完实体写入作业,随即透过存取介面170传送数据写入命令、实体地址及开始写入信号给下一个的储存子单元,x可为0至3中的任一者。储存子单元于时间区间tProg(例如,1200、1250或1300微秒(μs))执行实体写入作业,并且可于结束时通知处理单元110实体写入作业是否成功。当实体写入作业成功时,处理单元110可更新动态随机存取存储器130中的H2F表,用以反应实体写入作业的结果。
为了让废料收集处理的数据读取更有效率,本发明实施例先将n*m个页面的有效数据的多个读取命令及实体地址进行排程,并在除了接收相应于最后一个读取命令及实体地址的有效数据外,于接收相应于一个已传送的数据读取命令及实体地址的有效数据前,传送下一个数据读取命令及实体地址给下一个指定的储存子单元。透过以上的设计,使得从储存子单元读取有效数据的时间可紧密地安排在一起,缩短如图6所示读取二个页面间的空闲时间(idle time)。图7是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。首先,处理单元110排程读取n*m个页面的有效数据的命令,以及初始化变数l(l=0),其中变数l用以指示读取命令的编号(步骤S711)。于步骤S711,处理单元可依据动态随机存取存储器130中的H2F表取得n*m个页面的有效数据的实体地址,并据以排程数据读取命令。接着,处理单元110经由存取介面170传送第l个(亦即是第0个)数据读取命令及实体地址给相应的储存子单元(步骤S713)。接着,处理单元110反复执行一个循环(步骤S731至S751),直到n*m个页面的有效数据的数据读取命令都传送给储存单元180为止。
于每一回合中,处理单元110经由存取介面170传送第l+1个数据读取命令及实体地址给相应的储存子单元后(步骤S731),从相应的储存子单元接收相应于第l个数据读取命令及实体地址的有效数据(步骤S733),储存读取的有效数据至动态随机存取存储器130(步骤S735),以及将变数l加一(步骤S737)。接着,处理单元110判断变数l是否大于或等于n*m(步骤S751)。若否,则处理单元110继续经由存取介面170传送第l+1个数据读取命令及实体地址给相应的储存子单元,用以进行下一回合的有效数据读取(步骤S731)。若是,处理单元从相应的储存子单元接收相应于第l个数据读取命令及实体地址的有效数据(步骤S771),以及储存读取的有效数据至动态随机存取存储器130(步骤S773)。
处理单元110读取完n*m个页面的有效数据并储存至动态随机存与存储器130后,经由存取介面170将n*m个页面的有效数据写入储存单元180(步骤S791)。
图8是依据本发明实施例的废料收集处理示意图。假设4个储存子单元共享一个通道,一个储存子单元的最小写入单位为2个页面,每个页面可包含4K、8K或16K或其他长度的位元组数据。参考图4及图7。时间区间T81为读取n*m个页面的有效数据的时间。于步骤S713,处理单元110透过共享的数据线410_0发送数据读取命令以及实体地址给指定的储存子单元。接着,反复执行如步骤S731至S751的循环,使得处理单元110透过共享的数据线410_0发送下一个数据读取命令以及实体地址给指定的储存子单元后,接着接收相应于此数据读取命令及实体地址的有效数据。例如,处理单元110透过共享的数据线410_0传送数据读取命令及实体地址给储存子单元CE1,从储存子单元CE0接收有效数据,传送数据读取命令及实体地址给储存子单元CE3,从储存子单元CE1接收有效数据,依此类推。于执行完循环后,处理单元110透过共享的数据线410_0从储存子单元CE0接收最后的有效数据。比较图6,使用图7所示的方法,可缩短读取二个页面间的空闲时间。
图9A及9B是依据本发明实施例的执行于处理单元中的快闪存储器的废料收集方法流程图。此方法兼备了图7所示的数据读取效率及图5所示的数据写入效率。步骤S911至S943的详细实施细节可参考图7中步骤S711至S773的说明。步骤S951至步骤S971的详细实施细节可参考图5中步骤S513至S557的说明。
虽然图1至4中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图5、7、9A及9B的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,熟***行地执行更多步骤,本发明亦不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟悉本技术领域者显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (18)
1.一种快闪存储器的废料收集方法,由一处理单元执行,包含:
在一第一时间区间内,从多个储存子单元读取n*m个页面的有效数据,其中,n代表共享一通道的上述储存子单元的数量,m代表每一上述储存子单元的最小写入页面的数量;
在上述第一时间区间之后的第二时间区间内,反复执行一循环,用以逐一驱动上述储存子单元以写入m个页面的有效数据,直到上述储存子单元皆处于忙碌状态为止;以及
于上述循环中,当m个页面的有效数据传送至上述储存子单元中之一者后,不需要等待上述储存子单元执行完一实体写入作业即可传送另外m个页面的有效数据给上述储存子单元中之下一者。
2.如权利要求1所述的快闪存储器的废料收集方法,其特征在于,于从多个储存子单元读取n*m个页面的有效数据的步骤中,还包含:
将上述n*m个页面的有效数据储存于一动态随机存取存储器;以及
其中,于上述循环中的每一回合,从上述动态随机存取存储器读取m个页面的有效数据,并且驱动上述储存子单元以写入上述m个页面的有效数据。
3.如权利要求1所述的快闪存储器的废料收集方法,其特征在于,于反复执行一循环的步骤中,还包含:
于每一回合中,传送一数据写入命令及一实体地址给上述储存子单元中的指定一者;
传送m个页面的有效数据给上述指定的储存子单元;以及
传送一开始写入信号给上述指定的储存子单元。
4.如权利要求3所述的快闪存储器的废料收集方法,其特征在于,于上述传送一数据写入命令及一实体地址给上述储存子单元中的指定一者的步骤中,还包含:
致能多个芯片致能控制信号中的指定一者,用以从上述储存子单元选择出上述指定一者;以及
透过上述储存子单元共享的一数据线传送上述数据写入命令及上述实体地址给上述储存子单元中的指定一者。
5.如权利要求4所述的快闪存储器的废料收集方法,其特征在于,于上述传送m个页面的有效数据给上述指定的储存子单元的步骤中,还包含:
透过上述数据线传送m个页面的有效数据给上述指定的储存子单元。
6.如权利要求1所述的快闪存储器的废料收集方法,其特征在于,于上述从多个储存子单元读取n*m个页面的有效数据的步骤中,还包含:
将上述n*m个页面的有效数据的多个读取命令进行排程;以及
除了接收相应于最后一读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,传送下一数据读取命令及实体地址给上述储存子单元中的指定下一者。
7.一种快闪存储器的废料收集方法,由一处理单元执行,包含:
将n*m个页面的有效数据的多个读取命令进行排程,其中n代表共享一通道的储存子单元的数量,m代表每一上述储存子单元的最小写入页面的数量;
在一第一时间区间内,除了接收相应于最后一读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,反复传送下一数据读取命令及实体地址给上述储存子单元中的指定下一者;以及
在上述第一时间区间之后的第二时间区间内,驱动上述储存子单元以写入上述n*m个页面的有效数据。
8.如权利要求7所述的快闪存储器的废料收集方法,其特征在于,于从多个储存子单元读取n*m个页面的有效数据的步骤中,还包含:
将上述n*m个页面的有效数据储存于一动态随机存取存储器。
9.如权利要求7所述的快闪存储器的废料收集方法,其特征在于,上述数据读取命令及上述实体地址透过上述储存子单元共享的一数据线传送,以及上述每一页面的有效数据透过上述数据线接收。
10.一种快闪存储器的废料收集装置,包含:
一通道,耦接于多个储存子单元;
一处理单元,耦接于上述通道,用以在一第一时间区间内,从上述储存子单元读取n*m个页面的有效数据,其中n代表共享上述通道的上述储存子单元的数量,m代表每一上述储存子单元的最小写入页面的数量;以及在上述第一时间区间之后的第二时间区间内,反复执行一循环,用以逐一驱动上述储存子单元以写入m个页面的有效数据,直到上述储存子单元皆处于忙碌状态为止,
其中,于上述循环中,当m个页面的有效数据传送至上述储存子单元中之一者后,上述处理单元不需要等待上述储存子单元执行完一实体写入作业即可传送另外m个页面的有效数据给上述储存子单元中之下一者。
11.如权利要求10所述的快闪存储器的废料收集装置,其特征在于,上述处理单元更将上述n*m个页面的有效数据储存于一动态随机存取存储器,以及,于上述循环中的每一回合,上述处理单元从上述动态随机存取存储器读取m个页面的有效数据,并且驱动上述储存子单元以写入上述m个页面的有效数据。
12.如权利要求10所述的快闪存储器的废料收集装置,其特征在于,于上述循环的每一回合中,上述处理单元传送一数据写入命令及一实体地址给上述储存子单元中之指定一者;传送m个页面的有效数据给上述指定的储存子单元;以及传送一开始写入信号给上述指定的储存子单元。
13.如权利要求12所述的快闪存储器的废料收集装置,其特征在于,上述处理单元还致能上述通道中的多个芯片致能控制信号中的指定一者,用以从上述储存子单元选择出上述指定一者;以及透过上述储存子单元共享的上述通道中的一数据线传送上述数据写入命令及上述实体地址给上述储存子单元中的指定一者。
14.如权利要求13所述的快闪存储器的废料收集装置,其特征在于,上述处理单元透过上述数据线传送m个页面的有效数据给上述指定的储存子单元。
15.如权利要求10所述的快闪存储器的废料收集装置,其特征在于,上述处理单元将上述n*m个页面的有效数据的多个读取命令进行排程;以及除了接收相应于最后一读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,传送下一数据读取命令及实体地址给上述储存子单元中的指定下一者。
16.一种快闪存储器的废料收集装置,包含:
一通道,耦接于多个储存子单元;
一处理单元,耦接于上述通道,将n*m个页面的有效数据的多个读取命令进行排程,其中n代表共享一通道的上述储存子单元的数量,m代表每一上述储存子单元的最小写入页面的数量;在一第一时间区间内,除了接收相应于最后一读取命令及实体地址的有效数据外,于接收相应于每一已传送的数据读取命令及实体地址的有效数据前,反复传送下一数据读取命令及实体地址给上述储存子单元中的指定下一者;以及在上述第一时间区间之后的第二时间区间内,驱动上述储存子单元以写入上述n*m个页面的有效数据。
17.如权利要求16所述的快闪存储器的废料收集装置,其特征在于,上述处理单元将上述n*m个页面的有效数据储存于一动态随机存取存储器。
18.如权利要求16所述的快闪存储器的废料收集装置,其特征在于,上述数据读取命令及上述实体地址透过上述通道中由上述储存子单元共享的一数据线传送,以及上述每一页面的有效数据透过上述数据线接收。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104141255A TWI602186B (zh) | 2015-12-09 | 2015-12-09 | 快閃記憶體之廢料收集方法以及使用該方法的裝置 |
TW104141255 | 2015-12-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106855789A CN106855789A (zh) | 2017-06-16 |
CN106855789B true CN106855789B (zh) | 2020-10-16 |
Family
ID=59020774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610221754.9A Active CN106855789B (zh) | 2015-12-09 | 2016-04-11 | 快闪存储器的废料收集方法以及使用该方法的装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10394486B2 (zh) |
CN (1) | CN106855789B (zh) |
TW (1) | TWI602186B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213623B (zh) * | 2017-06-30 | 2022-02-22 | 慧荣科技股份有限公司 | 降低快闪储存介面中传收数据错误方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201523618A (zh) * | 2013-12-09 | 2015-06-16 | Phison Electronics Corp | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463826B2 (en) * | 2009-09-03 | 2013-06-11 | Apple Inc. | Incremental garbage collection for non-volatile memories |
US8266501B2 (en) | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
US8572311B1 (en) * | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8874872B2 (en) * | 2011-01-21 | 2014-10-28 | Seagate Technology Llc | Garbage collection management in memories |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9727245B2 (en) * | 2013-03-15 | 2017-08-08 | Avalanche Technology, Inc. | Method and apparatus for de-duplication for solid state disks (SSDs) |
US9329797B2 (en) * | 2013-12-30 | 2016-05-03 | Sandisk Technologies Inc. | Method and system for adjusting block erase or program parameters based on a predicted erase life |
-
2015
- 2015-12-09 TW TW104141255A patent/TWI602186B/zh active
-
2016
- 2016-04-11 CN CN201610221754.9A patent/CN106855789B/zh active Active
- 2016-11-11 US US15/349,722 patent/US10394486B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201523618A (zh) * | 2013-12-09 | 2015-06-16 | Phison Electronics Corp | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TWI602186B (zh) | 2017-10-11 |
CN106855789A (zh) | 2017-06-16 |
US20170168750A1 (en) | 2017-06-15 |
US10394486B2 (en) | 2019-08-27 |
TW201721654A (zh) | 2017-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725902B2 (en) | Methods for scheduling read commands and apparatuses using the same | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
US20110019475A1 (en) | Interleaved flash storage system and method | |
TWI512467B (zh) | 實體儲存對照表維護方法以及使用該方法的裝置 | |
CN105893275A (zh) | 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置 | |
CN108628543B (zh) | 垃圾回收方法以及使用该方法的装置 | |
CN102549672A (zh) | 用于非易失性存储器的优化页编程顺序 | |
CN109471819B (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
US20170060427A1 (en) | Methods for scheduling read and write commands and apparatuses using the same | |
US20180275915A1 (en) | Methods for regular and garbage-collection data access and apparatuses using the same | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及*** | |
TWI631565B (zh) | 快閃記憶體之廢料收集方法以及使用該方法的裝置 | |
US9343157B2 (en) | Writing into an EEPROM on an I2C bus | |
CN106855789B (zh) | 快闪存储器的废料收集方法以及使用该方法的装置 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
CN106527962B (zh) | 内部数据搬移方法以及使用该方法的装置 | |
CN104714892B (zh) | 数据存取命令执行方法以及使用该方法的快闪存储器装置 | |
KR100761374B1 (ko) | 플래시 메모리 제어 방법 및 장치 | |
CN108536475B (zh) | 完整编程命令处理方法与装置 | |
US8166228B2 (en) | Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods | |
US10387076B2 (en) | Methods for scheduling data-programming tasks and apparatuses using the same | |
US11194514B2 (en) | Just in time data placement in NAND flash | |
CN109508205B (zh) | 支持原位操作的nvm芯片、其操作方法以及固态存储设备 | |
US20110302355A1 (en) | Mapping and writting method in memory device with multiple memory chips | |
RU2006127530A (ru) | Портативное устройство хранения данных с использованием множества запоминающих устройств |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |