CN109062827B - 闪存控制装置、闪存控制系统以及闪存控制方法 - Google Patents

闪存控制装置、闪存控制系统以及闪存控制方法 Download PDF

Info

Publication number
CN109062827B
CN109062827B CN201810719948.0A CN201810719948A CN109062827B CN 109062827 B CN109062827 B CN 109062827B CN 201810719948 A CN201810719948 A CN 201810719948A CN 109062827 B CN109062827 B CN 109062827B
Authority
CN
China
Prior art keywords
flash memory
buffer
storage plane
valid
data
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
Application number
CN201810719948.0A
Other languages
English (en)
Other versions
CN109062827A (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN109062827A publication Critical patent/CN109062827A/zh
Application granted granted Critical
Publication of CN109062827B publication Critical patent/CN109062827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering 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]

Abstract

本发明公开了一种闪存控制装置、闪存控制系统和闪存控制方法。所述闪存控制装置包括数据读写接口和控制器。当所述数据读写接口耦接到第一闪存与第二闪存时,所述控制器通过所述数据读写接口来将第一闪存的第一储存平面所储存的至少一笔有效数据暂存到第二闪存的第二缓冲器;所述控制器对已经没有有效数据的所述第一储存平面执行擦除循环,以清除所述第一储存平面内的非有效数据并且整理出所述第一储存平面内的闲置空间;以及所述控制器还将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面。本发明可实现更快的操作速度,并且降低闪存控制器的制造成本。

Description

闪存控制装置、闪存控制系统以及闪存控制方法
本发明要求中国申请号2015103350923(申请日为2015年6月17日)的优先权,所述中国申请案进一步要求台湾地区申请号103121404(申请日2014年6月20日)的优先权,这些申请案的所有内容以引用方式纳入。
技术领域
本发明涉及读取闪存的控制装置、闪存控制系统以及闪存控制方法,特别涉及减少一存储器控制器内的一静态随机存取存储器的一存储器控制装置、闪存控制系统及其相关控制方法。
背景技术
一般而言,当一闪存控制电路在存取(例如写入/擦除循环)一闪存时,所述闪存控制电路必须具有足够的存储器容量来暂存来自所述闪存内的数据。举例而言,若所述闪存内的一个储存平面(plane)的大小为8KB,则所述闪存控制电路内就必须具有至少一颗容量为8KB的存储器来暂存来自所述闪存内的数据。传统的设计是在所述闪存控制电路内设置一颗静态随机存取存储器(SRAM)来解决上述的问题。但是,在所述闪存控制电路内设置一颗容量为8KB的静态随机存取存储器无疑大幅提高了所述闪存控制电路的制造成本。因此,如何更进一步降低一闪存控制电路的制造成本已成为此领域所亟需解决的问题。
发明内容
因此,本发明的目的之一在于减少一存储器控制器内的一静态随机存取存储器的一存储器控制器及其相关控制方法。
本发明的一实施例公开了一种闪存控制装置。所述闪存控制装置包括有一数据读写接口以及一控制器。所述数据读写接口设置来耦接到一第一闪存与一第二闪存,其中所述第一闪存包括有一第一储存平面以及一第一缓冲器,所述第二闪存包括有一第二储存平面以及一第二缓冲器。所述控制器耦接到所述数据读写接口,其中当所述数据读写接口耦接到所述第一闪存与所述第二闪存时,所述控制器通过所述数据读写接口来将所述第一储存平面所储存的至少一笔有效数据暂存到所述第二缓冲器;所述控制器对已经没有有效数据的所述第一储存平面执行一擦除循环,以清除所述第一储存平面内的非有效数据并且整理出所述第一储存平面内的闲置空间;以及所述控制器还将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面。
本发明的一实施例公开了一种闪存控制系统。所述闪存控制系统包括有一第一闪存、一第二闪存、一数据读写接口以及一控制器。所述第一闪存包括有一第一储存平面以及一第一缓冲器。所述第二闪存包括有一第二储存平面以及一第二缓冲器。其中所述控制器用来通过所述数据读写接口来将所述第一储存平面所储存的至少一笔有效数据暂存到所述第二缓冲器;所述控制器对已经没有有效数据的所述第一储存平面执行一擦除循环,以清除所述第一储存平面内的非有效数据并且整理出所述第一储存平面内的闲置空间;以及所述控制器还将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面。
本发明的一实施例公开了一种闪存控制方法。所述闪存控制方法包括有:设置一数据读写接口来耦接到一第一闪存与一第二闪存,其中所述第一闪存包括有一第一储存平面以及一第一缓冲器,所述第二闪存包括有一第二储存平面以及一第二缓冲器;通过所述数据读写接口来将所述第一储存平面所储存的至少一笔有效数据暂存到所述第二缓冲器;对所述第一储存平面执行一擦除循环;对已经没有有效数据的所述第一储存平面执行一擦除循环,以清除所述第一储存平面内的非有效数据并且整理出所述第一储存平面内的闲置空间;以及将暂存在所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面。
附图说明
图1是本发明闪存控制装置的一实施例示意图。
图2是本发明闪存控制系统的一实施例示意图。
图3是本发明闪存控制方法的一实施例示意图。
其中,附图标记说明如下:
100、202 闪存控制装置
102、206 数据读写接口
104、208 控制器
106、204 闪存装置
200 闪存控制系统
1042、2082 序列发生器
1044、2084 数据块缓冲装置
1044a、2084a 第一数据块缓冲器
1044b、2084b 第二数据块缓冲器
1046、2086 主机接口
1048、2088 纠错编码器
1062、2042 第一闪存
1064、2044 第二闪存
1062a、2042a 第一储存平面
1062b、2042b 第一缓冲器
1064a、2044a 第二储存平面
1064b、2044b 第二缓冲器
2046 第三闪存
2048 第四闪存
2046a 第三储存平面
2046b 第三缓冲器
2048a 第四储存平面
2048b 第四缓冲器
302~310 步骤
具体实施方式
在说明书及之前的权利要求书当中使用了某些词汇来指称特定的组件。本领域的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及之前的权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及之前的权利要求书当中所提及的“包括”为一开放式的用语,故应解释成“包括但不限定于”。此外,“耦接”一词在此包括任何直接和间接的电连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电连接于所述第二装置,或通过其它装置或连接手段间接地电连接到所述第二装置。
请参考图1。图1所示是依据本发明一种闪存控制装置100的一实施例示意图。闪存控制装置100包括有一数据读写接口102以及一控制器104。闪存控制装置100可用来读写(read/write)一闪存装置。为了更清楚描述本发明闪存控制装置100的操作特征,图1还绘示了一闪存装置106,闪存装置106耦接到闪存控制装置100。闪存装置106包括有一第一闪存1062以及一第二闪存1064。第一闪存1062包括有一第一储存平面(plane)1062a以及一第一缓冲器(plane-buffer)1062b。第二闪存1064包括有一第二储存平面1064a以及一第二缓冲器1064b。控制器104包括有一序列发生器(sequencer)1042、一数据块缓冲装置1044、一主机接口1046以及一纠错(Error Correction Code,ECC)编解器1048。请注意,在闪存装置106中,一储存平面会搭配一缓冲器,当数据暂存存满所述缓冲器时,控制器104才会将所述缓冲器内的数据写入(program)对应的所述储存平面。数据块缓冲装置1044可由一静态随机存取存储器(SRAM)来实施。
当闪存控制装置100用来存取闪存装置106时,数据读写接口102用来耦接到第一闪存1062与第二闪存1064。在一操作中,控制器104用来通过数据读写接口102来将第一储存平面1062a所储存的至少一笔有效(valid)数据暂存到第二缓冲器1064b,并且在第一储存平面1062a被执行一擦除循环(erase cycle)之后,控制器104还将暂存于第二缓冲器1064b的所述至少一笔有效数据重新写入第一储存平面1062a。序列发生器1042耦接到数据读写接口102,用来决定读写第一储存平面1062a的一地址的顺序。数据块缓冲装置1044耦接到序列发生器1042,在控制器104将所读出的所述至少一笔有效数据暂存到第二缓冲器1064b之前,数据块缓冲装置1044用来依序地缓冲所述至少一笔有效数据中的每一笔有效数据,在控制器104将所述至少一笔有效数据重新写入第一储存平面1062a之前,数据块缓冲装置1044用来依序地缓冲所述至少一笔有效数据中的每一笔有效数据。主机接口1046耦接到数据块缓冲装置1044以及纠错编码器1048,主机接口1046用来输出一读取命令以指示序列发生器1042通过数据读写接口102来从第一储存平面1062a读出所述至少一笔有效数据,以及输出一写入命令以指示序列发生器1042通过数据读写接口102将所述至少一笔有效数据写入第一储存平面1062a。
在本实施例中,数据块缓冲装置1044包括有一第一数据块缓冲器(chunk buffer)1044a以及一第二数据块缓冲器1044b。在控制器104将所读出的所述至少一笔有效数据暂存到第二缓冲器1064b之前,第一数据块缓冲器1044a用来依序缓冲所述至少一笔有效数据中的每一笔有效数据。在控制器104将所述至少一笔有效数据重新写入第一储存平面1062a之前,第二数据块缓冲器1044b用来依序缓冲所述至少一笔有效数据中的一笔有效数据。
进一步而言,当本实施例的闪存控制装置100对第一闪存1062(或第二闪存1064)内的第一储存平面1062a执行一擦除/写入(erase/program)循环操作时,控制器104会先将第一储存平面1062a所储存的至少一笔有效数据暂存到第二缓冲器1064b,并且在第一储存平面1062a被执行所述擦除循环之后,控制器104还将暂存于第二缓冲器1064b的所述至少一笔有效数据重新写入第一储存平面1062a。举例而言,在一实施例中,第一储存平面1062a以及第二储存平面1064a的储存容量均是8KB,第一缓冲器1062b与第二缓冲器1064b的储存容量均是8KB,第一数据块缓冲器1044a以及第二数据块缓冲器1044b的储存容量均是1KB。控制器104每一次只会从第一储存平面1062a中读取出容量1KB的一笔有效数据。当所述1KB的有效数据从第一储存平面1062a中读取出来后会先缓冲在第一数据块缓冲器1044a。接着,所述1KB的有效数据才会被暂存到第二缓冲器1064b。在所述1KB的有效数据被暂存到第二缓冲器1064b之后,控制器104才会从第一储存平面1062a中读取出容量1KB的另一笔有效数据。同样地,所述1KB的另一笔有效数据会先缓冲在第一数据块缓冲器1044a。接着,所述1KB的另一笔有效数据才会被暂存到第二缓冲器1064b。经由重复执行上述的操作之后,控制器104就可以将第一储存平面1062a所储存的所有有效数据暂存到第二缓冲器1064b内。
接着,控制器104就会对已经没有有效数据的第一储存平面1062a执行一擦除循环操作,以清除第一储存平面1062a内的非有效数据以及整理出第一储存平面1062a内的闲置空间。当控制器104对第一储存平面1062a执行完所述擦除循环操作之后,第一储存平面1062a内的储存空间就可以重新被清理出来。也就是说,在控制器104对第一储存平面1062a执行完所述擦除循环操作之后,第一储存平面1062a的可储存容量恢复为8KB。请注意,在第一储存平面1062a未执行所述擦除循环操作之前,由于第一储存平面1062a在经过多次的读取数据之后,第一储存平面1062a内可能会存在一些无效数据以及未能被读取到的闲置空间,因此第一储存平面1062a的可储存容量可能会少于8KB。执行所述擦除循环操作的目的之一就是使得第一储存平面1062a的可储存容量恢复为8KB。
在第一储存平面1062a执行完所述擦除循环之后,控制器104需要将暂存于第二缓冲器1064b的所述至少一笔有效数据重新写入第一储存平面1062a。同样地,控制器104每一次只会从第二缓冲器1064b中读取出容量为1KB的有效数据。当所述1KB的有效数据从第二缓冲器1064b中读取出来后会先缓冲在第二数据块缓冲器1044b。接着,所述1KB的有效数据才会被重新写入第一储存平面1062a。在所述1KB的有效数据被重新写入第一储存平面1062a之后,控制器104才会从第二缓冲器1064b中读取出容量为1KB的另一笔有效数据。同样地,所述1KB的另一笔有效数据会先缓冲在第二数据块缓冲器1044b。接着,所述1KB的另一笔有效数据才会被重新写入第一储存平面1062a中。经由重复执行上述的操作之后,控制器104就可以将暂存在第二缓冲器1064b内的所有有效数据重新存入第一储存平面1062a内。
从上述的操作可以得知,相比于传统的闪存控制电路,传统的闪存控制电路内设置一颗容量为8KB的静态随机存取存储器,而本发明的控制器104内则只需设置两个容量为1KB的数据块缓冲器(即第一数据块缓冲器1044a以及第二数据块缓冲器1044b)就可以完成一擦除/写入循环的操作。因此,在不影响一闪存控制器的正常操作下,本发明可大幅降低所述闪存控制器的制造成本。
请注意,当本实施例的闪存控制装置100对第一闪存1062内的第一储存平面1062a执行所述擦除/写入循环操作时,控制器104从第一储存平面1062a所读取出来的有效数据以及从第二数据块缓冲器1044b写入第一储存平面1062a的有效数据都不会经过一纠错码的处理。进一步而言,当控制器104从第一储存平面1062a读出有效数据并且暂存入第二数据块缓冲器1044b时,所述有效数据的传送路径是从第一闪存1062开始,经由数据读写接口102、序列发生器1042、第一数据块缓冲器1044a、序列发生器1042、数据读写接口102,最后到达第二缓冲器1064b。当控制器104将暂存的有效数据从第二数据块缓冲器1044b写入第一储存平面1062a时,所述有效数据的传送路径是从第一数据块缓冲器1044a开始,经由数据读写接口102、序列发生器1042、第二数据块缓冲器1044b、序列发生器1042、数据读写接口102,最后到达第一闪存1062。也就是说,当本实施例的控制器104将第一储存平面1062a所储存的所述至少一笔有效数据暂存到第二缓冲器1064b,以及当控制器104将暂存于第二缓冲器1064b的所述至少一笔有效数据重新写入第一储存平面1062a时,所述至少一笔有效数据不会经过纠错编码器1048。在另一实施例中,主机接口1046还可输出一控制信号来止能(disable)纠错编码器1048,以使得纠错编码器1048不会对所述至少一笔有效数据执行一纠错码操作。但是,本发明并不受限于上述的控制方法。任何使得纠错编码器1048不会对所述至少一笔有效数据执行一纠错码操作的方法均属于本发明闪存控制装置100的范畴。
由于所述至少一笔有效数据不会经过一纠错码的操作,因此本发明的闪存控制装置100具有更快的擦除/写入的速度。
此外,本发明也没有限制第二缓冲器1064b的容量必须是1KB,任何小于第一储存平面1062a的容量均可适用于本发明的闪存控制装置100。进一步而言,只要可以用来缓冲从一笔从第一储存平面1062a所读出来的有效数据就可适用于本发明的闪存控制装置100。
另一方面,当本实施例的控制器104将第一储存平面1062a所储存的所述至少一笔有效数据暂存到第二缓冲器1064b时,控制器104会通过所述数据读写接口来随机地(random in)将第一储存平面1062a内所储存的所述至少一笔有效数据中的每一笔有效数据暂存到第二缓冲器1064b。在第一储存平面1062a被执行完所述擦除循环之后,以及在控制器104将暂存于第二缓冲器1064b的所述至少一笔有效数据重新写入第一储存平面1062a之前,控制器104会先将暂存于第二缓冲器1064b的所述至少一笔有效数据随机地(randomout)写入第一缓冲器1062b,当第二缓冲器1064b内所有的有效数据都被暂存到第一缓冲器1062b之后,控制器104还执行一写入循环(program cycle)来一次性地将暂存到第一缓冲器1062b的所述至少一笔有效数据写入第一储存平面1062a内。
请注意,虽然图1所示的第一闪存1062以及第二闪存1064均设置在同一颗闪存装置(即106)内,但这并不是本发明的限制所在。第一闪存1062以及第二闪存1064也可以分别设置在两颗不同的闪存芯片上。
虽然上述的描述是以擦除第一储存平面1062a为例,但本领域的技术人员应可了解本发明的闪存控制装置100也可用来擦除/写入第二储存平面1064b。当闪存控制装置100用来对第二储存平面1064b执行一擦除循环操作时,第一闪存1062的第一缓冲器1062b就可用来暂存来自第二储存平面1064b的多个有效数据。由于其操作是相似于上述有关于擦除/写入第一储存平面1062a的操作,故其详细运作在此不另赘述。
再者,在此实施例中,由于第二缓冲器1064b的储存容量是8KB,而来自第一储存平面1062a的至少一笔有效数据并不一定可以填满第二缓冲器1064b,因此暂存入第二缓冲器1064b也可以来自其他或多个储存平面的有效数据。这样,当来自多个储存平面的有效数据填满了第二缓冲器1064b时,控制器104才对没有有效数据的一个或多个储存平面执行擦除操作。接着,控制器104才会将暂存在第二缓冲器1064b内8KB的有效数据重新写入一个储存平面,例如第一储存平面1062a。请参考图2。图2所示是依据本发明一种闪存控制系统200的一实施例示意图。闪存控制系统200包括有一闪存控制装置202以及一闪存芯片204。相似于图1的闪存控制装置100,本实施例的闪存控制装置202也包括有一数据读写接口206以及一控制器208。控制器208也包括有一序列发生器2082、一数据块缓冲装置2084、一主机接口2086以及一纠错编码器2088。数据块缓冲装置2084也包括有一第一数据块缓冲器2084a以及一第二数据块缓冲器2084b。与第一实施例相比,本实施例的闪存芯片204包括有四个闪存,即一第一闪存2042、一第二闪存2044、一第三闪存2046以及一第四闪存2048。第一闪存2042包括有一第一储存平面2042a以及一第一缓冲器2042b。第二闪存2044包括有一第二储存平面2044a以及一第二缓冲器2044b。第三闪存2046包括有一第三储存平面2046a以及一第三缓冲器2046b。第四闪存2048包括有一第四储存平面2048a以及一第四缓冲器2048b。请注意,所述四个闪存也可以分别存在于四颗不同的闪存芯片。
在图2的实施例中,举例而言,若控制器208要对第一储存平面2042a执行一擦除/写入的操作,控制器208会先将第一储存平面2042a内的至少一笔有效数据暂存到第二缓冲器2044b。若第一储存平面2042a内的至少一笔有效数据不足8KB,则控制器208可以将第三储存平面2046a以及/或第四储存平面2048a内的至少一笔有效数据暂存到第二缓冲器2044b,一直到第二缓冲器2044b收集满8KB的有效数据为止。当第二缓冲器2044b收集满8KB的有效数据时,控制器208就会对第一储存平面2042a执行一擦除的操作。在第一储存平面2042a被擦除完之后,控制器208就会将暂存在第二缓冲器2044b的至少一笔有效数据重新写入第一储存平面2042a。请注意,在将有效数据暂存入第二缓冲器2044b的过程中,若第三储存平面2046a以及第四储存平面2048a中的有效数据也完全被暂存入第二缓冲器2044b中,则控制器208也可以对第三储存平面2046a以及第四储存平面2048a执行一擦除的操作,以使得第三储存平面2046a以及第四储存平面2048a的可储存容量恢复为原来的8KB。这样,经由上述操作,闪存芯片204内被无效数据所占据的空间以及闲置空间就可以被整理出来,以增加闪存芯片204内的可储存空间。
请注意,本领域的技术人员在阅读完图1的闪存控制装置100对闪存装置106的擦除/写入的操作之后,应可轻易了解闪存控制装置202对闪存芯片204所执行的所述擦除/写入的操作,故其详细操作在此不另赘述。
简言之,上述有关于闪存控制装置100以及闪存控制装置202的操作方法可简化为图3所示的流程图。图3所示是依据本发明一闪存控制方法300的一实施例示意图。倘若大体上可达到相同的结果,则不需要一定照图3所示的流程中的步骤顺序来执行,且图3所示的步骤不一定要连续执行,即其他步骤也可以插入其中。此外,以下流程图是以闪存控制装置100为例来说明本发明闪存控制方法300的技术特征。闪存控制方法300包括有下步骤:
步骤302:设置数据读写接口102来耦接到第一闪存1062与第二闪存1064;
步骤304:通过数据读写接口102来随机地将第一储存平面1062a内所储存的所述至少一笔有效数据中的每一笔有效数据暂存到第二缓冲器1064b;
步骤306:在第一储存平面1062a内所有的有效数据都被暂存到第二缓冲器1064b之后,执行所述擦除循环来擦除第一储存平面1062a;
步骤308:在第一储存平面1062a执行完所述擦除循环之后,将暂存于第二缓冲器1064b的所述至少一笔有效数据暂存在第一缓冲器1062b;
步骤310:在第二缓冲器1064b内所有的有效数据都被暂存到第一缓冲器1062b之后,执行一写入循环来将暂存到第一缓冲器1062b的所述至少一笔有效数据写入第一储存平面1062a内。
请注意,当第一储存平面1062a内的所述至少一笔有效数据暂存到第二缓冲器1064b,以及当第二缓冲器1064b内的所述至少一笔有效数据重新写入第一储存平面1062a时,所述至少一笔有效数据不会经过一纠错码操作,因此本发明的闪存控制方法300具有更快的擦除/写入的速度。此外,经由闪存控制方法300的操作,闪存装置106内被无效数据所占据的空间以及闲置空间就可以被整理出来,以增加闪存装置106内的可储存空间。
综上所述,本发明的闪存控制装置100、202以及闪存控制方法300是利用闪存芯片内一储存平面的一缓冲器来暂存来自一需要被擦除/写入的储存平面内的所有有效数据,而不是在闪存控制装置100、202直接设置一颗大容量的缓冲器来暂存所述需要被擦除/写入的储存平面内的所有有效数据。这样,所述有效数据就不需由一纠错码操作来处理,从而增加闪存控制装置100、202的操作速度。此外,由于本发明的闪存控制装置100、202内只需设置两个小容量(例如1KB)的数据块缓冲器就可以完成一擦除/写入循环的操作,因此本发明也可以大幅降低一闪存控制器的制造成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (19)

1.一种闪存控制装置,其特征在于,包括有:
一数据读写接口,其设置来耦接到一第一闪存与一第二闪存,其中所述第一闪存包括有一第一储存平面以及一第一缓冲器,所述第二闪存包括有一第二储存平面以及一第二缓冲器;以及
一控制器,耦接到所述数据读写接口;
其中当所述数据读写接口耦接到所述第一闪存与所述第二闪存时,所述控制器通过所述数据读写接口来将所述第一闪存的所述第一储存平面所储存的至少一笔有效数据暂存到所述第二闪存的所述第二缓冲器;所述控制器对已经没有有效数据的所述第一闪存的所述第一储存平面执行一擦除循环,以清除所述第一闪存的所述第一储存平面内的非有效数据并且整理出所述第一闪存的所述第一储存平面内的闲置空间;以及所述控制器还将暂存于所述第二闪存的所述第二缓冲器的所述至少一笔有效数据重新写入所述第一闪存的所述第一储存平面。
2.如权利要求1所述的闪存控制装置,其特征在于,所述控制器是用来通过所述数据读写接口来随机地将所述第一储存平面内所储存的所述至少一笔有效数据中的每一笔有效数据暂存到所述第二缓冲器,当所述第一储存平面内所有的有效数据都被暂存到所述第二缓冲器之后,所述控制器还执行所述擦除循环来擦除所述第一储存平面,当所述控制器擦除所述第一储存平面之后,所述控制器还将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面。
3.如权利要求1所述的闪存控制装置,其特征在于,当所述控制器用来将所述第一储存平面所储存的所述至少一笔有效数据暂存到所述第二缓冲器时,所述控制器每一次只会从所述第一储存平面中读取出所述至少一笔有效数据中的一笔有效数据,以及当所述控制器将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面时,所述控制器每一次只会将所述第二缓冲器中的所述至少一笔有效数据中的一笔有效数据写入所述第一储存平面。
4.如权利要求1所述的闪存控制装置,其特征在于,所述控制器将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面之前,所述控制器会先将暂存于所述第二缓冲器的所述至少一笔有效数据随机地写入所述第一缓冲器,在所述第二缓冲器内所有的有效数据都被暂存到所述第一缓冲器之后,所述控制器还执行一写入循环来将暂存到所述第一缓冲器的所述至少一笔有效数据写入所述第一储存平面内。
5.如权利要求1所述的闪存控制装置,其特征在于,所述控制器包括有:
一序列发生器,耦接到所述数据读写接口,用来决定读写所述第一储存平面的一地址的顺序;
一数据块缓冲装置,耦接到所述序列发生器,在所述控制器将所读出的所述至少一笔有效数据暂存到所述第二缓冲器之前,所述数据块缓冲装置会用来缓冲所述至少一笔有效数据中的每一笔有效数据,在所述控制器将所述至少一笔有效数据重新写入所述第一储存平面之前,所述数据块缓冲装置会用来缓冲所述至少一笔有效数据中的每一笔有效数据;
一主机接口,耦接到所述数据块缓冲装置,用来输出一读取命令以指示所述序列发生器通过所述数据读写接口来从所述第一储存平面读出所述至少一笔有效数据,以及输出一写入命令以指示所述序列发生器通过所述数据读写接口将所述至少一笔有效数据写入所述第一储存平面。
6.如权利要求5所述的闪存控制装置,其特征在于,所述数据块缓冲装置的容量是一第一储存容量,所述第一缓冲器与所述第二缓冲器的容量均是一第二储存容量,以及所述第一储存容量会小于所述第二储存容量。
7.如权利要求5所述的闪存控制装置,其特征在于,所述数据块缓冲装置包括有:
一第一数据块缓冲器,在所述控制器将所读出的所述至少一笔有效数据暂存到所述第二缓冲器之前,所述第一数据块缓冲器用来缓冲所述至少一笔有效数据中的每一笔有效数据;以及
一第二数据块缓冲器,在所述控制器将所述至少一笔有效数据重新写入所述第一储存平面之前,所述第二数据块缓冲器用来缓冲所述至少一笔有效数据中的一笔有效数据。
8.如权利要求7所述的闪存控制装置,其特征在于,所述第一数据块缓冲器以及所述第二数据块缓冲器的容量均只用来缓冲一笔有效数据。
9.如权利要求5所述的闪存控制装置,其特征在于,所述控制器还包括有:
一纠错编码器,耦接到所述序列发生器与所述数据块缓冲装置;
其中当所述控制器将所述第一储存平面所储存的所述至少一笔有效数据暂存到所述第二缓冲器,以及当所述控制器将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面时,所述主机接口还输出一控制信号来止能所述纠错编码器。
10.如权利要求5所述的闪存控制装置,其特征在于,所述控制器还包括有:
一纠错编码器,耦接到所述序列发生器与所述数据块缓冲装置;
其中当所述控制器将所述第一储存平面所储存的所述至少一笔有效数据暂存到所述第二缓冲器时,所述纠错编码器不会对所述至少一笔有效数据执行一纠错码操作,以及当所述控制器将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面时,所述纠错编码器不会对所述至少一笔有效数据执行所述纠错码操作。
11.一种闪存控制系统,其特征在于,包括有:
一第一闪存,包括有一第一储存平面以及一第一缓冲器;
一第二闪存,包括有一第二储存平面以及一第二缓冲器;
一数据读写接口,耦接到所述第一闪存与所述第二闪存;以及
一控制器,耦接到所述数据读写接口;
其中所述控制器用来通过所述数据读写接口来将所述第一闪存的所述第一储存平面所储存的至少一笔有效数据暂存到所述第二闪存的所述第二缓冲器;所述控制器对已经没有有效数据的所述第一闪存的所述第一储存平面执行一擦除循环,以清除所述第一闪存的所述第一储存平面内的非有效数据并且整理出所述第一闪存的所述第一储存平面内的闲置空间;以及所述控制器还将暂存于所述第二闪存的所述第二缓冲器的所述至少一笔有效数据重新写入所述第一闪存的所述第一储存平面。
12.如权利要求11所述的闪存控制系统,其特征在于,所述第一闪存以及所述第二闪存设置在同一颗闪存芯片内。
13.如权利要求11所述的闪存控制系统,其特征在于,所述第一闪存以及所述第二闪存分别是两颗不同的闪存芯片。
14.一种闪存控制方法,其特征在于,包括有:
设置一数据读写接口来耦接到一第一闪存与一第二闪存,其中所述第一闪存包括有一第一储存平面以及一第一缓冲器,所述第二闪存包括有一第二储存平面以及一第二缓冲器;
通过所述数据读写接口来将所述第一闪存的所述第一储存平面所储存的至少一笔有效数据暂存到所述第二闪存的所述第二缓冲器;
对所述第一闪存的所述第一储存平面执行一擦除循环;
对已经没有有效数据的所述第一闪存的所述第一储存平面执行一擦除循环,以清除所述第一闪存的所述第一储存平面内的非有效数据并且整理出所述第一闪存的所述第一储存平面内的闲置空间;以及
将暂存在所述第二闪存的所述第二缓冲器的所述至少一笔有效数据重新写入所述第一闪存的所述第一储存平面。
15.如权利要求14所述的闪存控制方法,其特征在于,通过所述数据读写接口来将所述第一储存平面所储存的至少一笔有效数据暂存到所述第二缓冲器的步骤包括有:
通过所述数据读写接口来随机地将所述第一储存平面内所储存的所述至少一笔有效数据中的每一笔有效数据暂存到所述第二缓冲器;
对所述第一储存平面执行所述擦除循环的步骤包括有:
在所述第一储存平面内所有的有效数据都被暂存到所述第二缓冲器之后,执行所述擦除循环来擦除所述第一储存平面;
将暂存在所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面的步骤包括有:
在所述第一储存平面执行完所述擦除循环之后,将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面。
16.如权利要求14所述的闪存控制方法,其特征在于,通过所述数据读写接口来将所述第一储存平面所储存的至少一笔有效数据暂存到所述第二缓冲器的步骤还包括有:
每一次只从所述第一储存平面中读取出所述至少一笔有效数据中的一笔有效数据;以及
将暂存在所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面的步骤还包括有:
每一次只将所述第二缓冲器中的所述至少一笔有效数据中的一笔有效数据写入所述第一储存平面。
17.如权利要求14所述的闪存控制方法,其特征在于,所述闪存控制方法还包括有:
在暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面之前,先将暂存于所述第二缓冲器的所述至少一笔有效数据随机地写入所述第一缓冲器;以及
在所述第二缓冲器内所有的有效数据都被暂存到所述第一缓冲器之后,执行一写入循环来将暂存到所述第一缓冲器的所述至少一笔有效数据写入所述第一储存平面内。
18.如权利要求14所述的闪存控制方法,其特征在于,所述闪存控制方法还包括有:
在所述至少一笔有效数据暂存到所述第二缓冲器之前,利用一数据块缓冲装置来缓冲所述至少一笔有效数据中的每一笔有效数据;
在所述至少一笔有效数据重新写入所述第一储存平面之前,利用所述数据块缓冲装置来缓冲所述至少一笔有效数据中的每一笔有效数据;
依据一读取命令来从所述第一储存平面读出所述至少一笔有效数据;以及
依据一写入命令来将所述至少一笔有效数据写入所述第一储存平面。
19.如权利要求14所述的闪存控制方法,其特征在于,所述闪存控制方法还包括有:
当将所述第一储存平面所储存的所述至少一笔有效数据暂存到所述第二缓冲器时,不对所述至少一笔有效数据执行一纠错码操作;以及
当将暂存于所述第二缓冲器的所述至少一笔有效数据重新写入所述第一储存平面时,不对所述至少一笔有效数据执行所述纠错码操作。
CN201810719948.0A 2014-06-20 2015-06-17 闪存控制装置、闪存控制系统以及闪存控制方法 Active CN109062827B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
TW103121404A TWI554944B (zh) 2014-06-20 2014-06-20 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法
TW103121404 2014-06-20
CN201510335092.3A CN105279115B (zh) 2014-06-20 2015-06-17 闪存控制装置、闪存控制系统以及闪存控制方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201510335092.3A Division CN105279115B (zh) 2014-06-20 2015-06-17 闪存控制装置、闪存控制系统以及闪存控制方法

Publications (2)

Publication Number Publication Date
CN109062827A CN109062827A (zh) 2018-12-21
CN109062827B true CN109062827B (zh) 2021-10-29

Family

ID=54869725

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510335092.3A Active CN105279115B (zh) 2014-06-20 2015-06-17 闪存控制装置、闪存控制系统以及闪存控制方法
CN201810719948.0A Active CN109062827B (zh) 2014-06-20 2015-06-17 闪存控制装置、闪存控制系统以及闪存控制方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510335092.3A Active CN105279115B (zh) 2014-06-20 2015-06-17 闪存控制装置、闪存控制系统以及闪存控制方法

Country Status (4)

Country Link
US (2) US9760433B2 (zh)
KR (1) KR101698949B1 (zh)
CN (2) CN105279115B (zh)
TW (1) TWI554944B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6466279B2 (ja) * 2015-08-05 2019-02-06 アラクサラネットワークス株式会社 通信装置
US10719237B2 (en) * 2016-01-11 2020-07-21 Micron Technology, Inc. Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory
CN107391296B (zh) 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10110255B2 (en) * 2016-04-27 2018-10-23 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10216417B2 (en) 2016-10-26 2019-02-26 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
JP2018112883A (ja) * 2017-01-11 2018-07-19 東芝メモリ株式会社 半導体記憶装置
US11048624B2 (en) 2017-04-25 2021-06-29 Samsung Electronics Co., Ltd. Methods for multi-stream garbage collection
US10698808B2 (en) 2017-04-25 2020-06-30 Samsung Electronics Co., Ltd. Garbage collection—automatic data placement
CN112074908A (zh) * 2018-03-16 2020-12-11 美光科技公司 Nand数据放置模式
TWI671756B (zh) * 2018-11-13 2019-09-11 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101147119A (zh) * 2005-02-16 2008-03-19 桑迪士克股份有限公司 快闪存储器中的直接数据文件存储实施技术
CN101256535A (zh) * 2007-03-01 2008-09-03 创惟科技股份有限公司 硬盘资料读写快取装置及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877066A (ja) 1994-08-31 1996-03-22 Tdk Corp フラッシュメモリコントローラ
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US20050132128A1 (en) * 2003-12-15 2005-06-16 Jin-Yub Lee Flash memory device and flash memory system including buffer memory
US20110029723A1 (en) * 2004-08-06 2011-02-03 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
CN101118783A (zh) * 2006-09-07 2008-02-06 晶天电子(深圳)有限公司 带有闪存坏块控制系统的电子数据闪存卡
TW201007734A (en) * 2008-08-06 2010-02-16 Genesys Logic Inc Flash memory control apparatus having signal-converting module
TW201037725A (en) * 2009-04-07 2010-10-16 Giga Byte Tech Co Ltd Flash memory control device
US8806090B2 (en) * 2011-05-31 2014-08-12 Micron Technology, Inc. Apparatus including buffer allocation management and related methods
KR101920500B1 (ko) 2012-06-29 2018-11-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN103365789B (zh) * 2013-08-08 2016-12-28 曹乃承 数据存储装置和flash存储装置的块删除块写入方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101147119A (zh) * 2005-02-16 2008-03-19 桑迪士克股份有限公司 快闪存储器中的直接数据文件存储实施技术
CN101256535A (zh) * 2007-03-01 2008-09-03 创惟科技股份有限公司 硬盘资料读写快取装置及方法

Also Published As

Publication number Publication date
CN105279115B (zh) 2018-08-17
CN105279115A (zh) 2016-01-27
TWI554944B (zh) 2016-10-21
KR20150145693A (ko) 2015-12-30
KR101698949B1 (ko) 2017-01-23
US10049005B2 (en) 2018-08-14
US20170329668A1 (en) 2017-11-16
US20150370630A1 (en) 2015-12-24
TW201601062A (zh) 2016-01-01
CN109062827A (zh) 2018-12-21
US9760433B2 (en) 2017-09-12

Similar Documents

Publication Publication Date Title
CN109062827B (zh) 闪存控制装置、闪存控制系统以及闪存控制方法
JP5002201B2 (ja) メモリシステム
KR100546348B1 (ko) 플래시 메모리 시스템 및 그 데이터 저장 방법
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
US20150161040A1 (en) Data-storage device and data erasing method
US20130046918A1 (en) Method writing meta data with reduced frequency
TWI690928B (zh) 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
JP2012113343A (ja) 記憶装置
US20140040534A1 (en) Data storing method and memory controller and memory storage device using the same
EP3057100B1 (en) Memory device and operating method of same
US20170285953A1 (en) Data Storage Device and Data Maintenance Method thereof
JP2007094639A (ja) メモリコントローラ及びフラッシュメモリシステム
JP2009123191A (ja) Norインターフェイスフラッシュメモリ装置及びそのアクセス方法
US20130067141A1 (en) Data writing method, and memory controller and memory storage apparatus using the same
US20130246687A1 (en) Data writing method, memory controller and memory storage apparatus
US9229798B2 (en) Error handling method, memory storage device and memory controlling circuit unit
JP2007048090A (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
TWI718889B (zh) 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
EP4369184A1 (en) Storage device and method thereof
JP2009104430A (ja) フラッシュディスク装置
US20080059691A1 (en) Memory management module
US20180196722A1 (en) Data Storage Device and Data Maintenance Method Thereof

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