CN108628543B - 垃圾回收方法以及使用该方法的装置 - Google Patents
垃圾回收方法以及使用该方法的装置 Download PDFInfo
- Publication number
- CN108628543B CN108628543B CN201710294143.1A CN201710294143A CN108628543B CN 108628543 B CN108628543 B CN 108628543B CN 201710294143 A CN201710294143 A CN 201710294143A CN 108628543 B CN108628543 B CN 108628543B
- Authority
- CN
- China
- Prior art keywords
- data
- access interface
- storage unit
- processing unit
- timer
- 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 38
- 238000012545 processing Methods 0.000 claims abstract description 40
- 238000011084 recovery Methods 0.000 claims abstract 5
- 238000004064 recycling Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 239000002699 waste material Substances 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping 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
- 229940044442 onfi Drugs 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/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
- 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)
- Memory System (AREA)
Abstract
本发明涉及一种垃圾回收方法以及使用该方法的装置,由处理单元执行,包含下列步骤:执行垃圾回收程序的指令以驱动第一存取介面从储存单元读取数据,收集读取数据中的有效数据,及驱动第一存取介面将有效数据写入储存单元中的空区块。于垃圾回收程序中,每当计时器计数至一段时间时,驱动第二存取介面将主装置请求数据中的至少一部分敲出给主装置,以及重设计时器。
Description
技术领域
本发明关连于一种快闪存储器装置,特别是一种垃圾回收方法以及使用该方法的装置。
背景技术
快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,主装置(host)可于地址脚位上提供存取NOR快闪装置的任意地址,并即时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入序列的位元组(bytes)值到NAND快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,藉由使用提取信号(strobesignal)顺序地敲出(clock out)内容,让主单元可逐位元组或字元组(words)存取数据。
如果区块中的部分页面的数据已经无效(又称为过期页面),读取这些区块中具有效数据的页面并重新写入其他之前被抹除的空区块。接着,这些被释放的页面加上过期数据的页面,可收集起来以写入新的数据。如上所述的程序称为垃圾回收(garbagecollection)。垃圾回收程序牵涉到从快闪存储器读取数据以及重新写入数据至快闪存储器。这代表快闪控制器首先需要读出整个区块,接着将区块中拥有有效数据的部分页面写入。然而,这可能会影响原本主装置的存取作业。于最差的情况下,可能造成主装置发出的存取命令逾时。因此,本发明提出一种垃圾回收方法以及使用该方法的装置,用以降低对主装置存取作业的影响。
发明内容
本发明的实施例提出一种垃圾回收方法,由处理单元执行,包含下列步骤:执行垃圾回收程序的指令以驱动第一存取介面从储存单元读取数据,收集读取数据中的有效数据,及驱动第一存取介面将有效数据写入储存单元中的空区块。于垃圾回收程序中,每当计时器计数至一段时间时,驱动第二存取介面将主装置请求数据中的至少一部分敲出给主装置,以及重设计时器,使得主装置不会因为过了最大容许时间还没有收到回复的数据而发生读取错误。
本发明的实施例提出一种垃圾回收装置,包含第一存取介面、第二存取介面及处理单元。第一存取介面耦接于储存单元,第二存取介面耦接于主装置,以及处理单元耦接于第一存取介面及第二存取介面。处理单元执行垃圾回收程序的指令以驱动第一存取介面从储存单元读取数据,收集读取数据中的有效数据,及驱动第一存取介面将有效数据写入储存单元中的空区块。于垃圾回收程序中,每当计时器计数至一段时间时,驱动第二存取介面将主装置请求数据中的至少一部分敲出给主装置,以及重设计时器,使得主装置不会因为过了最大容许时间还没有收到回复的数据而发生读取错误。
附图说明
图1是依据本发明实施例的快闪存储器的***架构示意图。
图2是依据本发明实施例的存取介面与储存单元的方块图。
图3是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。
图4是依据本发明实施例的垃圾回收方法的流程图。
图5是依据本发明实施例的垃圾回收示意图。
图6是依据本发明实施例的整合主装置读取及垃圾回收程序的讯息交换图。
符号说明
10 ***;
110 处理单元;
120 数据缓存器;
130 动态随机存取存储器;
150 存取介面;
160 主装置;
170 存取介面;
170_0~170_j 存取子介面;
180 储存单元;
180_0_0~180_j_i 储存子单元;
320_0_0~320_0_i 芯片致能控制信号;
S410~S473 方法步骤;
510、530、550、570 区块;
511、533、555、557 区段;
P1、P2、P3、P4 页面;
CMDread 读取命令;
REQr 数据读取请求;
DATAr 主装置请求数据;
DATAp 主装置请求数据;
DATAgc 垃圾回收数据;
REQgc_r 垃圾回收程序中的数据读取请求;
REQgc_w 垃圾回收程序中的数据写入请求;
tc 时间区间。
具体实施方式
以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
于权利要求中使用如“第一”、“第二”、“第三”等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
图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)或其他介面。
储存单元180可包含多个储存子单元,每一个储存子单元实施于一个晶粒(die)上,各自使用关联的存取子介面与处理单元110进行沟通。图2是依据本发明实施例的存取介面与储存单元的方块图。快闪存储器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)控制信号。换句话说,当欲对指定的储存子单元进行数据读取时,需要驱动关联的存取子介面致能此储存子单元的芯片致能控制信号。图3是依据本发明实施例的一个存取子介面与多个储存子单元的连接示意图。处理单元110可透过存取子介面170_0使用独立的芯片致能控制信号320_0_0至320_0_i来从连接的储存子单元180_0_0至180_0_i中选择出其中一者,接着,透过共享的数据线310_0从选择出的储存子单元的指定位置读取数据。
经过多次的存取后,一个页面可能包含有效及无效的数据。为解决如上所述的缺陷,本发明实施例提出一种垃圾回收方法,以交错的方式读取及回复主装置160请求的数据以及垃圾回收程序中的数据读取及写入作业。例如,执行垃圾回收程序的指令以驱动存取介面170从储存单元180读取数据,收集读取数据中的有效数据,及驱动存取介面170将有效数据写入储存单元180中的空区块(spare block)。于垃圾回收程序中,每当计时器计数至一段时间时,驱动存取介面150将主装置160请求数据中的至少一部分敲出给主装置160,以及重设计时器,使得主装置160不会因为过了最大容许时间还没有收到回复的数据而发生读取错误。图4是依据本发明实施例的垃圾回收方法的流程图。此方法由处理单元110于载入并执行特定微码或软件指令时实施。每次透过存取介面150从主装置160接收读取命令后(步骤S410),判断是否需要执行垃圾回收程序(步骤S430)。于步骤S410,读取命令包含逻辑位置或逻辑位置区间的资讯,用以请求读取逻辑位置或逻辑位置区间的数据。逻辑位置或逻辑位置区间可以逻辑区块地址(LBA,Logical Block Address)表示。于步骤S430,可判断储存单元180的空区块数目是否小于阀值。若是则需要执行垃圾回收程序;否则不需要执行垃圾回收程序。
当判定不需要执行垃圾回收程序时(步骤S430中“否”的路径),驱动存取介面170将读取命令请求的数据从储存单元180读出并储存至数据缓存器120(步骤S471),以及驱动存取介面150将数据缓存器120的数据敲出给主装置160(步骤S473)。为最佳化数据写入的效率,一段具有连续逻辑区块地址的数据会分散地摆放在储存单元180中的不同实体区域。因此,动态随机存取存储器130储存一个实体储存对照表(storage mapping table,又称为H2F Host-to-Flash表),用以指出每个逻辑区块地址的数据实际储存于储存单元280中的哪个位置。于步骤S471,处理单元110从实体储存对照表读取逻辑位置或逻辑位置区间的相应实***置或实***置区间,接着,驱动存取介面170从储存单元180读取实***置或实***置区间的数据。例如,储存单元180可包含2个通道,每个通道包含4个储存子单元。储存单元180可驱动2个存取子介面从8个储存子单元一次读取128K位元组的数据,并储存数据至数据缓存器120。于步骤S473,处理单元110可设定存取介面150中的寄存器,用以将逐页敲出给主装置160。例如,一个页面包含16K位元组的数据,处理单元110可以8个批次,每次敲出一个页面的数据给主装置160。于一些实施例中,数据缓存器120可实施于动态随机存取存储器130之中。
当判定需要执行垃圾回收程序时(步骤S430中“是”的路径),设定计时器计数一段时间,此段时间短于主装置160等待数据的最大容许时间,例如50毫秒(50milliseconds)(步骤S451),驱动存取介面170将读取命令请求的数据从储存单元180读出并储存至数据缓存器120(步骤S453),执行垃圾回收程序的指令以读取或写入一个页面的数据(步骤S455),并且判断是否完成垃圾回收程序(步骤S457)。于一些实施例中,最大容许时间可于出厂时设定,并储存于非挥发性储存装置,并且于步骤S451从非挥发性储存装置读取。于一些实施例中,最大容许时间可乘载于主装置160发送的读取命令。
图5是依据本发明实施例的垃圾回收示意图。假设一个页面可储存四个区段的数据:经过多次存取后,区块510中的页面P1的第0个区段511为有效数据,其余为无效数据。区块530中的页面P2的第1个区段533为有效数据,其余为无效数据。区块550中的页面P3的第2个及第3个区段555及557为有效数据,其余为无效数据。为了将页面P1至P3中的有效数据回收成一个页面以储存至区块570中的新页面P4,可执行垃圾回收程序。详细来说,数据缓存器120可配置空间以储存一个页面的数据。处理单元110可透过存取子介面170读取区块510中的页面P1的数据,保留页面P1的第0个区段511的数据,并储存至数据缓存器120中配置空间的第0个区段(步骤S455)。接着,处理单元110可透过存取子介面170读取区块530中的页面P2的数据,保留页面P2的第1个区段533的数据,并储存至数据缓存器120中配置空间的第1个区段(步骤S455)。接着,处理单元110可透过存取子介面170读取区块550中的页面P3的数据,保留页面P3的第2个及第3个区段555及557的数据,并储存至数据缓存器120中配置空间的第2个及第3个区段(步骤S455)。最后,处理单元110可透过存取子介面170将数据缓存器120中配置空间的数据写入区块570中的页面P4(步骤S455)。
于一些实施例中,当计数器计数至上述时间时,会发出中断给处理单元110,使得处理单元110中断目前执行的任务,例如,垃圾回收程序的指令执行,并且执行中断服务程序(ISR,Interrupt Service Routine)。当中断服务程序执行时,设定存取介面150中的寄存器,用以将一页的数据敲出给主装置160,接着,重新设定计时器以计数上述时间。当中断服务程序执行完毕,处理单元110继续中断的任务,例如,垃圾回收程序的指令执行。
于一些实施例中,于步骤S455,处理单元可于读取或写入一个页面的数据后,读取计数器的值,并且判断计数器是否已经计数至上述时间。当计数至上述时间时,处理单元110可设定存取介面150中的寄存器,用以将一页的数据敲出给主装置160,接着,重新设定计时器以计数上述时间。
以下更举出实例来说明如上所述的垃圾回收方法。图6是依据本发明实施例的整合主装置读取及垃圾回收程序的讯息交换图。处理单元110透过存取介面150从主装置160接收读取命令CMDread以读取128K位元组的数据,并储存数据至数据缓存器120(步骤S410)。接着,当需要执行垃圾回收程序时(步骤S430中”是”的路径),设定计时器以计数一段时间tc(步骤S451),及透过存取介面170发送数据读取请求REQr给储存单元180,并且从储存单元180接收128K位元组的数据DATAr并储存至数据缓存器120(步骤S453)。接着,周期性地执行垃圾回收程序的指令,例如,数据读取请求REQgc_r以读取一个页面的数据,或数据写入请求REQgc_w以写入一个页面的数据(步骤S455)。每当计时器计数一段时间tc,处理单元110设定存取介面150中的寄存器,用以将数据缓存器120中一个页面(16K位元组)的数据DATAp敲出给主装置160。
虽然图1至3中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图4的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,熟悉本技术领域者可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,熟悉本技术领域者亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明亦不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟悉本技术领域者显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
Claims (10)
1.一种垃圾回收方法,由一处理单元执行,包含:
执行一垃圾回收程序的指令以驱动一第一存取介面从一储存单元读取数据,收集上述读取数据中的有效数据,及驱动上述第一存取介面将上述有效数据写入上述储存单元中的空区块;以及
于上述垃圾回收程序中,执行下列步骤:
启动一计时器;
周期性地执行一数据读取请求以从储存单元读取一个页面的数据;
响应于该计时器第一次计数至预定期间,驱动一第二存取介面以敲出(clock out)一主装置之一目前主装置读取指令所请求的数据的第一部分到该主装置,并重置该计时器;
响应于该计时器第一次计数至该预定期间,驱动该第二存取介面以敲出(clock out)来自该主装置之该目前主装置读取指令所请求的该数据的第二部分到该主装置,并重置该计时器,
其中上述预定期间短于上述主装置等待数据的最大容许时间。
2.如权利要求1所述的垃圾回收方法,其特征在于,当上述计时器计数至上述预定期间时,发出一中断给上述处理单元,使得上述处理单元中断目前执行的任务,并且执行一中断服务程序,以及当上述中断服务程序执行时,驱动上述第二存取介面将上述主装置请求数据中的至少一部分敲出(clock out)给上述主装置,以及重设上述计时器。
3.如权利要求1所述的垃圾回收方法,其特征在于,还包含:
从上述主装置接收一读取命令后,判断上述储存单元中的空区块数目是否小于阀值;以及
当上述储存单元中的空区块数目小于阀值时,执行上述垃圾回收程序。
4.如权利要求3所述的垃圾回收方法,其特征在于,还包含:
驱动上述第一存取介面从上述储存单元读取上述读取命令请求的数据,以及储存上述请求的数据至一数据缓存器。
5.如权利要求4所述的垃圾回收方法,其特征在于,上述处理单元使用上述第二存取介面透过通用串行总线(universal serial bus,USB)、先进技术附着(advanced technologyattachment,ATA)、序列先进技术附着(serial advanced technology attachment,SATA)或快速周边元件互联(peripheral component interconnect express,PCI-E)的通讯协定从上述主装置接收上述读取命令。
6.一种垃圾回收装置,包含:
一第一存取介面,耦接于一储存单元;
一第二存取介面,耦接于一主装置;
一处理单元,耦接于上述第一存取介面及上述第二存取介面,执行一垃圾回收程序的指令以驱动上述第一存取介面从上述储存单元读取数据,收集上述读取数据中的有效数据,及驱动上述第一存取介面将上述有效数据写入上述储存单元中的空区块;
其中于上述垃圾回收程序中,上述处理单元执行下列步骤:
启动一计时器;
周期性地执行一数据读取请求以从储存单元读取一个页面的数据;
响应于该计时器第一次计数至预定期间,驱动一第二存取介面以敲出(clock out)一主装置之一目前主装置读取指令所请求的数据的第一部分到该主装置,并重置该计时器;
响应于该计时器第一次计数至该预定期间,驱动该第二存取介面以敲出(clock out)来自该主装置之该目前主装置读取指令所请求的该数据的第二部分到该主装置,并重置该计时器,
其中上述预定期间短于上述主装置等待数据的最大容许时间。
7.如权利要求6所述的垃圾回收装置,其特下在于,当上述计时器计数至上述预定期间时,发出一中断给上述处理单元,使得上述处理单元中断目前执行的任务,并且执行一中断服务程序,以及当上述中断服务程序执行时,驱动上述第二存取介面将上述主装置请求数据中的至少一部分敲出(clock out)给上述主装置,以及重设上述计时器。
8.如权利要求6所述的垃圾回收装置,其特征在于,上述处理单元从上述主装置接收一读取命令后,判断上述储存单元中的空区块数目是否小于阀值;以及当上述储存单元中的空区块数目小于阀值时,上述处理单元执行上述垃圾回收程序。
9.如权利要求8所述的垃圾回收装置,其特征在于,还包含:
一数据缓存器;
其中,上述处理单元驱动上述第一存取介面从上述储存单元读取上述读取命令请求的数据,以及储存上述请求的数据至上述数据缓存器。
10.如权利要求9所述的垃圾回收装置,其特征在于,上述处理单元使用上述第二存取介面透过通用串行总线(universal serial bus,USB)、先进技术附着(advancedtechnology attachment,ATA)、序列先进技术附着(serial advanced technologyattachment,SATA)或快速周边元件互联(peripheral component interconnect express,PCI-E)的通讯协定从上述主装置接收上述读取命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106109513 | 2017-03-22 | ||
TW106109513A TWI612473B (zh) | 2017-03-22 | 2017-03-22 | 垃圾回收方法以及使用該方法的裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628543A CN108628543A (zh) | 2018-10-09 |
CN108628543B true CN108628543B (zh) | 2021-07-06 |
Family
ID=61728437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710294143.1A Active CN108628543B (zh) | 2017-03-22 | 2017-04-28 | 垃圾回收方法以及使用该方法的装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10776042B2 (zh) |
CN (1) | CN108628543B (zh) |
TW (1) | TWI612473B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200021815A (ko) * | 2018-08-21 | 2020-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR20200073017A (ko) * | 2018-12-13 | 2020-06-23 | 에스케이하이닉스 주식회사 | 데이터 저장 장치와, 그것의 동작 방법 |
CN113495850B (zh) * | 2020-04-08 | 2024-02-09 | 慧荣科技股份有限公司 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
EP3926452A1 (en) * | 2020-06-19 | 2021-12-22 | NXP USA, Inc. | Norflash sharing |
TWI748542B (zh) | 2020-07-01 | 2021-12-01 | 慧榮科技股份有限公司 | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 |
CN118093449A (zh) * | 2022-11-25 | 2024-05-28 | 长江存储科技有限责任公司 | 一种存储器***及其垃圾回收方法、电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640529A (en) * | 1993-07-29 | 1997-06-17 | Intel Corporation | Method and system for performing clean-up of a solid state disk during host command execution |
CN101645044A (zh) * | 2005-01-20 | 2010-02-10 | 桑迪士克股份有限公司 | 快闪存储器***中内务处理操作的调度 |
US8364883B2 (en) * | 2005-01-20 | 2013-01-29 | Sandisk Technologies Inc. | Scheduling of housekeeping operations in flash memory systems |
CN103135946A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 基于ssd的大规模存储***中的文件布局方法 |
CN103135945A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 用于ssd的多通道动态读写调度方法 |
CN103530237A (zh) * | 2013-10-31 | 2014-01-22 | 厦门大学 | 一种固态盘阵列的垃圾回收方法 |
CN105892941A (zh) * | 2016-03-30 | 2016-08-24 | 联想(北京)有限公司 | 垃圾回收方法、垃圾回收装置和电子设备 |
CN106326136A (zh) * | 2015-07-02 | 2017-01-11 | 广明光电股份有限公司 | 固态硬盘搜集垃圾区块的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832529A (en) * | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
DE69906446T2 (de) * | 1998-05-19 | 2004-02-12 | Matsushita Electric Industrial Co., Ltd., Kadoma | Datenspeichervorrichtung und zugriffsverfahren |
JP3484657B2 (ja) * | 2000-06-08 | 2004-01-06 | 株式会社 エキシー総合研究所 | 生ごみ液状化装置およびその管理方法 |
KR100528973B1 (ko) * | 2003-11-05 | 2005-11-16 | 한국전자통신연구원 | 가비지 콜렉션 방법 및 그 장치 |
US20130191580A1 (en) * | 2012-01-23 | 2013-07-25 | Menahem Lasser | Controller, System, and Method for Mapping Logical Sector Addresses to Physical Addresses |
US9195406B2 (en) * | 2013-06-28 | 2015-11-24 | Micron Technology, Inc. | Operation management in a memory device |
US9898404B2 (en) * | 2013-07-14 | 2018-02-20 | Cnex Labs | Method and apparatus for providing improved garbage collection process in solid state drive |
TWI537816B (zh) * | 2014-10-13 | 2016-06-11 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器進行的控制方法 |
US9727456B2 (en) * | 2014-11-03 | 2017-08-08 | Pavilion Data Systems, Inc. | Scheduled garbage collection for solid state storage devices |
US20160188233A1 (en) * | 2014-12-26 | 2016-06-30 | Mediatek Inc. | Method for interrupting cleaning procedure of flash memory |
TWI562154B (en) * | 2015-02-17 | 2016-12-11 | Silicon Motion Inc | Methods for reading data from a storage unit of a flash memory and apparatuses using the same |
US9940234B2 (en) * | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
-
2017
- 2017-03-22 TW TW106109513A patent/TWI612473B/zh active
- 2017-04-28 CN CN201710294143.1A patent/CN108628543B/zh active Active
-
2018
- 2018-01-06 US US15/863,894 patent/US10776042B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640529A (en) * | 1993-07-29 | 1997-06-17 | Intel Corporation | Method and system for performing clean-up of a solid state disk during host command execution |
CN101645044A (zh) * | 2005-01-20 | 2010-02-10 | 桑迪士克股份有限公司 | 快闪存储器***中内务处理操作的调度 |
US8364883B2 (en) * | 2005-01-20 | 2013-01-29 | Sandisk Technologies Inc. | Scheduling of housekeeping operations in flash memory systems |
CN103135946A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 基于ssd的大规模存储***中的文件布局方法 |
CN103135945A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 用于ssd的多通道动态读写调度方法 |
CN103530237A (zh) * | 2013-10-31 | 2014-01-22 | 厦门大学 | 一种固态盘阵列的垃圾回收方法 |
CN106326136A (zh) * | 2015-07-02 | 2017-01-11 | 广明光电股份有限公司 | 固态硬盘搜集垃圾区块的方法 |
CN105892941A (zh) * | 2016-03-30 | 2016-08-24 | 联想(北京)有限公司 | 垃圾回收方法、垃圾回收装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108628543A (zh) | 2018-10-09 |
TWI612473B (zh) | 2018-01-21 |
TW201835757A (zh) | 2018-10-01 |
US10776042B2 (en) | 2020-09-15 |
US20180275914A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628543B (zh) | 垃圾回收方法以及使用该方法的装置 | |
US20180307496A1 (en) | Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9081662B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
CN111459844B (zh) | 数据储存装置及用于存取逻辑至物理地址映射表的方法 | |
US20110055457A1 (en) | Method for giving program commands to flash memory, and controller and storage system using the same | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
CN111045593B (zh) | 用来进行读取加速的方法以及数据存储装置及其控制器 | |
CN105893275A (zh) | 缓存及读取即将写入储存单元的数据的方法以及使用该方法的装置 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
TWI512609B (zh) | 讀取命令排程方法以及使用該方法的裝置 | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
CN109471819B (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
CN113196225A (zh) | 开放信道矢量命令执行 | |
US8209472B2 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
CN114253462A (zh) | 提供混合通道存储设备的方法 | |
CN114253461A (zh) | 混合通道存储设备 | |
CN213338708U (zh) | 一种控制部件及存储设备 | |
CN108536475B (zh) | 完整编程命令处理方法与装置 | |
CN113778317A (zh) | 计算机可读取存储介质、调度主机命令的方法及装置 | |
CN106855789B (zh) | 快闪存储器的废料收集方法以及使用该方法的装置 | |
CN106528452B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |