CN104423888B - 数据写入方法、存储器控制电路单元与存储器存储装置 - Google Patents
数据写入方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN104423888B CN104423888B CN201310371587.2A CN201310371587A CN104423888B CN 104423888 B CN104423888 B CN 104423888B CN 201310371587 A CN201310371587 A CN 201310371587A CN 104423888 B CN104423888 B CN 104423888B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer storage
- memory
- control circuit
- 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
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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种数据写入方法、存储器控制电路单元与存储器存储装置,其中此存储器存储装置具有第一缓冲存储器、第二缓冲存储器及可复写式非易失性存储器模块,其中第一缓冲存储器的传输带宽大于第二缓冲存储器的传输带宽。本方法包括:从主机系统中接收写入指令与对应的第一数据;判断第一数据是否为连续大数据;倘若第一数据为连续大数据时,将第一数据暂存至第一缓冲存储器的第一数据暂存区,将第一数据从第一数据暂存区中写入至可复写式非易失性存储器模块中;并且倘若第一数据不是连续大数据时,将第一数据暂存至第二缓冲存储器的第二数据暂存区。
Description
技术领域
本发明是有关于一种用于可复写式非易失性存储器的数据写入方法,尤其是涉及一种数据写入方法、存储器控制电路单元与存储器存储装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于便携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
若存储器存储装置是以可复写式非易失性存储器作为存储媒体,当有数据写入至可复写式非易失性存储器时,可复写式非易失性存储器可能会发生程序化错误,使得数据并没有成功地被写入。因此,一个存储器存储装置中通常会配置至少一个缓冲存储器。此缓冲存储器可以用来暂存欲写入存储器存储装置的数据。也就是说,每一笔欲写入至存储器存储装置的数据都需要先暂存至此缓冲存储器,并且之后再从缓冲存储器中将欲写入的数据写入至可复写式非易失性存储器中。由于对于一笔写入数据来说,都需要对缓冲存储器进行暂存与读取两个动作。因此,当缓冲存储器的传输带宽不够大时,相对于分配给写入操作的带宽就会相对较少。
此外,当数据被暂存至缓冲存储器后,存储器存储装置的控制电路就会向主机传送已完成指令的信息,以便接收下一个指令与数据。当将数据写入至可复写式非易失性存储器时,可能会发生程序化错误(program fail),使得数据并没有成功地被写入。因此,存储器存储装置的控制电路会需要从缓冲存储器中将以为成功写入的数据再次写入(也称为重写)至可复写式非易失性存储器中。因此,在存储器存储装置中所配置的缓冲存储器必须足够大来暂存数据,以避免无法进行重写。
基于上述,为了提升写入速度,使用带宽较大的缓冲存储器是需要的。然而,为了考量上述重写的需求,必须使用大容量的缓冲存储器。对于带宽较大的缓冲存储器来说,每存储单位的成本较高。因此,如何能够在降低制造成本下,又具有适当容量的缓冲存储器及具有适当的存储器带宽,为此领域技术人员所关心的议题。
发明内容
本发明提供一种数据写入方法、存储器控制电路单元与存储器存储装置,其能够有效率地使用存储器存储装置中暂存存储器的带宽与容量并且提升写入数据的速度。
本发明一范例实施例提出一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块、存储器控制电路单元与第二缓冲存储器。连接接口单元用以电性连接至主机系统。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块,其中存储器控制电路单元包括一第一缓冲存储器,且第一缓冲存储器包括第一数据暂存区。第二缓冲存储器电性连接至第一缓冲存储器,其中第二缓冲存储器包括第二数据暂存区,且第二缓冲存储器的传输带宽低于第一缓冲存储器的传输带宽。在此,存储器控制电路单元用以从主机系统中接收写入指令与对应此写入指令的起始逻辑地址与第一数据,并且用以判断第一数据是否为连续大数据。倘若第一数据为连续大数据时,存储器控制电路单元将第一数据暂存至第一数据暂存区,且将第一数据从第一数据暂存区中写入至可复写式非易失性存储器模块中。倘若第一数据不是连续大数据时,存储器控制电路单元将第一数据暂存至第二数据暂存区。
在本发明的一实施例中,在判断第一数据是否为连续大数据的操作中,存储器控制电路单元会判断上述起始逻辑地址是否为数据存取单位的倍数并且第一数据的大小是否为此数据存取单位的倍数。倘若起始逻辑地址为数据存取单位的倍数并且第一数据的大小为数据存取单位的倍数时,存储器控制电路单元识别第一数据为连续大数据。倘若起始逻辑地址不是数据存取单位的倍数或者第一数据的大小不是数据存取单位的倍数时,存储器控制电路单元识别第一数据不是连续大数据。
在本发明的一实施例中,存储器控制电路单元还从第一数据暂存区中将第一数据复制到第二缓冲存储器的第二数据暂存区中。
在本发明的一实施例中,倘若第一数据不是连续大数据时,存储器控制电路单元还用以从可复写式非易失性存储器模块的第一实体程序化单元中将第二数据读取至第二数据暂存区并且将第一数据与第二数据从第二数据暂存区中写入至可复写式非易失性存储器模块的第二实体程序化单元。
在本发明的一实施例中,上述存储器控制电路单元还用以在将第一数据写入至可复写式非易失性存储器模块中之后判断是否发生程序化错误。若发生程序化错误时,则存储器控制电路单元还用以从第二缓冲存储器中读取第一数据,并根据写入指令将所读取的第一数据重新写入至可复写式非易失性存储器模块中。
在本发明的一实施例中,上述存储器控制电路单元还用以从主机系统接收读取指令。此外,存储器控制电路单元还用以判断第二缓冲存储器是否存储有属于此读取指令所指示的一逻辑地址的第三数据。若第二缓冲存储器存储有属于此读取指令所指示的逻辑地址的第三数据时,则存储器控制电路单元从第二缓冲存储器中读取第三数据并将所读取的第三数据传送至主机系统以响应此读取指令。
在本发明的一实施例中,上述的第二缓冲存储器是配置在存储器控制电路单元中或者配置在存储器控制电路单元的外部。
在本发明的一实施例中,上述第一缓冲存储器为静态随机存取存储器,第二缓冲存储器为同步动态随机存取存储器并且第二缓冲存储器的容量大于第一缓冲存储器的容量。
本发明一范例实施例提出一种存储器控制电路单元,其包括主机接口、存储器接口、存储器管理电路、第一缓冲存储器与第二缓冲存储器。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口与存储器接口。第一缓冲存储器电性连接至存储器管理电路且包括第一数据暂存区。第二缓冲存储器电性连接至第一缓冲存储器与存储器管理电路,其中第二缓冲存储器包括第二数据暂存区,且第二缓冲存储器的传输带宽低于第一缓冲存储器的传输带宽。存储器管理电路用以从主机系统中接收写入指令与对应此写入指令的起始逻辑地址与第一数据。存储器管理电路还用以判断第一数据是否为连续大数据。倘若第一数据为连续大数据时,存储器管理电路将第一数据暂存至第一数据暂存区,且将第一数据从第一数据暂存区中写入至可复写式非易失性存储器模块中。倘若第一数据不是连续大数据时,存储器管理电路将第一数据暂存至第二数据暂存区。
在本发明的一实施例中,在判断第一数据是否为连续大数据的操作中,存储器管理电路会判断上述起始逻辑地址是否为数据存取单位的倍数并且第一数据的大小是否为此数据存取单位的倍数。倘若起始逻辑地址为数据存取单位的倍数并且第一数据的大小为数据存取单位的倍数时,存储器管理电路识别第一数据为连续大数据。倘若起始逻辑地址不是数据存取单位的倍数或者第一数据的大小不是数据存取单位的倍数时,存储器管理电路识别第一数据不是连续大数据。
在本发明的一实施例中,存储器管理电路还从第一数据暂存区中将第一数据复制到第二缓冲存储器的第二数据暂存区中。
在本发明的一实施例中,倘若第一数据不是连续大数据时,存储器管理电路还用以从可复写式非易失性存储器模块的第一实体程序化单元中将第二数据读取至第二数据暂存区并且将第一数据与第二数据从第二数据暂存区中写入至可复写式非易失性存储器模块的第二实体程序化单元。
在本发明的一实施例中,上述存储器管理电路还用以在将第一数据写入至可复写式非易失性存储器模块中之后判断是否发生程序化错误。若发生程序化错误时,则存储器管理电路还用以从第二缓冲存储器中读取第一数据,并根据写入指令将所读取的第一数据重新写入至可复写式非易失性存储器模块中。
在本发明的一实施例中,上述存储器管理电路还用以从主机系统接收读取指令。此外,存储器管理电路还用以判断第二缓冲存储器是否存储有属于此读取指令所指示的一逻辑地址的第三数据。若第二缓冲存储器存储有属于此读取指令所指示的逻辑地址的第三数据时,则存储器管理电路从第二缓冲存储器中读取第三数据并将所读取的第三数据传送至主机系统以响应此读取指令。
在本发明的一实施例中,上述第一缓冲存储器为静态随机存取存储器,第二缓冲存储器为同步动态随机存取存储器并且第二缓冲存储器的容量大于第一缓冲存储器的容量。
本发明一范例实施例提出一种数据写入方法,用于存储器存储装置,其中此存储器存储装置具有第一缓冲存储器、第二缓冲存储器以及可复写式非易失性存储器模块,其中第一缓冲存储器的传输带宽大于第二缓冲存储器的传输带宽。本数据写入方法包括:从主机系统中接收写入指令与对应此写入指令的起始逻辑地址与第一数据;并判断第一数据是否为连续大数据。本数据写入方法也包括:倘若第一数据为连续大数据时,将第一数据暂存至第一缓冲存储器的第一数据暂存区,且将第一数据从第一数据暂存区中写入至可复写式非易失性存储器模块中;以及倘若第一数据不是连续大数据时,将第一数据暂存至第二缓冲存储器的第二数据暂存区。
在本发明的一实施例中,上述判断第一数据是否为连续大数据的步骤包括:判断起始逻辑地址是否为数据存取单位的倍数并且第一数据的大小是否为数据存取单位的倍数;倘若起始逻辑地址为数据存取单位的倍数并且第一数据的大小为数据存取单位的倍数时,识别第一数据为该连续大数据;以及倘若起始逻辑地址不是数据存取单位的倍数或者第一数据的大小不是数据存取单位的倍数时,识别第一数据不是连续大数据。
在本发明的一实施例中,上述的数据写入方法还包括:从第一数据暂存区中将第一数据复制到第二缓冲存储器的第二数据暂存区中。
在本发明的一实施例中,上述的数据写入方法还包括:倘若第一数据不是连续大数据时,从可复写式非易失性存储器模块的第一实体程序化单元中将第二数据读取至第二数据暂存区并且将第一数据与第二数据从第二数据暂存区中写入至可复写式非易失性存储器模块的第二实体程序化单元中。
在本发明的一实施例中,上述的数据写入方法还包括:在将第一数据写入至可复写式非易失性存储器模块中之后判断是否发生程序化错误;以及倘若发生程序化错误时,则从第二缓冲存储器中读取第一数据,并根据写入指令将所读取的第一数据重新写入至可复写式非易失性存储器模块中。
在本发明的一实施例中,上述的数据写入方法还包括:从主机系统接收读取指令;判断第二缓冲存储器是否存储有属于此读取指令所指示之一逻辑地址的第三数据;倘若第二缓冲存储器存储有属于此读取指令所指示之逻辑地址的第三数据时,从第二缓冲存储器中读取第三数据并将所读取的第三数据传送至主机系统以响应此读取指令。
基于上述,本发明范例实施例的存储器存储装置、存储器控制电路单元与数据写入方法能够根据不同的数据类型来使用不同的缓冲机制来写入数据,由此有效率地使用存储器存储装置中暂存存储器的带宽与容量并且提升写入数据的速度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一范例实施例所示出的主机系统与存储器存储装置;
图2是根据本发明范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;
图3是根据本发明范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是示出图1所示的存储器存储装置的概要方块图;
图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图;
图6与图7是根据第一范例实施例所示出的管理实体抹除单元的示意图;
图8是根据本发明一范例实施例所示出的更新一个逻辑页面的数据的范例;
图9是根据本发明一范例实施例所示出的更新一个逻辑页面的数据的另一范例;
图10是根据本发明一范例实施例所示出的使用一般缓冲写入机制来写入数据的示意图;
图11是根据本发明一范例实施例所示出的使用加速缓冲写入机制来写入数据的示意图;
图12是根据本发明一范例实施例所示出的数据写入方法的流程图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器;
1106:输入/输出装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:U盘;
1214:存储卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:记忆棒;
1318:CF卡;
1320:嵌入式存储装置;
100:存储器存储装置;
102:连接接口单元;
104:存储器控制电路单元;
106:可复写式非易失性存储器模块;
108:第二缓冲存储器;
108a:第二数据暂存区;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
208:第一缓冲存储器;
208a:第一数据暂存区;
210:错误检查与校正电路;
212:电源管理电路;
410(0)~410(N):实体抹除单元;
502:系统区;
504:数据区;
506:闲置区;
508:取代区;
LBA(0)~LBA(H):逻辑单元;
LZ(0)~LZ(M):逻辑区域;
LP(0):逻辑页面;
PP(0)、PP(1):实体页面;
UD1、UD2、OD1、OD2-1、OD2-2:数据;
S1201、S1203、S1205、S1207、S1209:数据写入方法的步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入到存储器存储装置或从存储器存储装置中读取数据。
图1是根据一范例实施例所示出的主机系统与存储器存储装置,图2是根据本发明范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图。
请参照图1,主机系统1000一般包括电脑1100与输入/输出(input/output,以下简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,以下简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图2的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图2所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的操作可将数据写入到存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图2所示的U盘1212、存储卡1214或固态硬盘(Solid StateDrive,以下简称SSD)1216等的可复写式非易失性存储器存储装置。
一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,图3是根据本发明范例实施例所示出的主机系统与存储器存储装置的示意图,在主机系统为数码相机(摄像机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图3所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,以下简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图4是示出图1所示的存储器存储装置的概要方块图。
请参照图4,存储器存储装置100包括连接接口单元102、存储器控制电路单元104、可复写式非易失性存储器模块106与第二缓冲存储器108。
在本实施例中,连接接口单元102是兼容于串行高级技术附件(Serial AdvancedTechnology Attachment,以下简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行高级技术附件(Parellel Advanced TechnologyAttachment,以下简称PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,以下简称IEEE)1394标准、高速外设互连接口(PeripheralComponent Interconnect Express,以下简称PCIExpress)标准、通用串行总线(UniversalSerial Bus,以下简称USB)标准、超高速一代(Ultra High Speed-I,以下简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,以下简称UHS-II)接口标准、安全数字(SecureDigital,以下简称SD)接口标准、存储棒(Memory Stick,以下简称MS)接口标准、多媒体存储卡(Multi Media Card,以下简称MMC)接口标准、小型快闪(Compact Flash,以下简称CF)接口标准、集成式驱动电子接口(Integrated Device Electronics,以下简称IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元可与存储器控制电路单元封装在一个芯片中,或布设于一包含存储器控制电路单元的芯片外。
存储器控制电路单元104用以执行以硬件形式或固件形式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与抹除等操作。
可复写式非易失性存储器模块106是电性连接至存储器控制电路单元104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目的一并被抹除的记忆胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制资讯与错误还正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含8个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块106为多阶记忆胞(MultiLevel Cell,以下简称MLC)NAND型快闪存储器模块(即,一个记忆胞中可存储2个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单阶记忆胞(Single Level Cell,以下简称SLC)NAND型快闪存储器模块(即,一个记忆胞中可存储1个比特数据的快闪存储器模块)、复数阶记忆胞(Trinary Level Cell,以下简称TLC)NAND型快闪存储器模块(即,一个记忆胞中可存储3个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
第二缓冲存储器108是配置在存储器控制电路单元的外部且电性连接至存储器控制电路单元104。第二缓冲存储器108用以缓冲存储器控制电路单元104所执行的指令或数据。例如,第二缓冲存储器108具有第二数据暂存区108a是用以备份接收自主机系统1000的写入数据。本范例实施例中,第二缓冲存储器108为同步动态缓冲存储器(synchronousdynamic random access memory,以下简称SDRAM)并且第二缓冲存储器108的传输带宽为400M比特/秒。然而,本发明不限于此,第二缓冲存储器108也可以是动态随机存取存储器(dynamic random access memory,以下简称DRAM)、静态随机存取存储器(static randomaccess memory,以下简称SRAM)、磁电阻式随机存取存储器(Magnetoresistive RandomAccess Memory,以下简称MRAM)、快取随机存取存储器(Cache RAM)、同步动态随机存取存储器(synchronous dynamic random access memory,以下简称SDRAM)、视频随机存取存储器(Video RAM,以下简称VRAM)、异或门快闪存储器(NOR Flash)、嵌入式动态随机存取存储器(embedded DRAM,以下简称eDRAM)或其他的存储器。
图5是根据一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元104包括存储器管理电路202、主机接口204、存储器接口206、第一缓冲存储器208、错误检查与校正电路210与电源管理电路212。
存储器管理电路202用以控制存储器控制电路单元104的整体操作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100操作时,此些控制指令会被执行以进行数据的写入、读取与抹除等操作。
在本范例实施例中,存储器管理电路202的控制指令是以固件形式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100操作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等操作。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以程序码形式存储于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元104被使能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等操作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制指令也可以一硬件形式来实作。例如,存储器管理电路202包括微控制器、记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,记忆胞管理电路用以管理可复写式非易失性存储器模块106的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取电路用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是兼容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
第一缓冲存储器208是电性连接至存储器管理电路202并且用以缓冲存储器管理电路202所执行的指令或是数据。具体来说,第一缓冲存储器208包括第一数据暂存区208a,其用以暂存主机系统1000所写入或主机系统1000所读取的数据。然而,必须了解的是,除了第一数据暂存区208a,第一缓冲存储器208可包括其他区域(未示出),用以暂存其他数据。例如,存储器管理电路202可将可复写式非易失性存储器模块106中虚拟地址与实体地址的映射表(mapping table)存储在第一缓冲存储器208的其他区域中。在本范例实施例中,第一缓冲存储器208的传输带宽大于第二缓冲存储器108的传输带宽。例如,第一缓冲存储器208为静态随机存取存储器(static random access memory,以下简称SRAM)。然而,第一缓冲存储器208也可以是MRAM、Cache RAM、SDRAM、VRAM、NOR Flash或是eDRAM。并且第一缓冲存储器208的传输带宽为800M比特/秒。
电源管理电路210是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
错误检查与校正电路212是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路212会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,以下简称ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路212会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图6与图7是根据第一范例实施例所示出的管理实体抹除单元的示意图。
请参照图6,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)~410(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元,并且将数据写入到所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路202会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的操作中,实体抹除单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。
请参照图7,存储器控制电路单元104(或存储器管理电路202)会配置逻辑单元LBA(0)~LBA(H)以映射数据区502的实体抹除单元,其中每一逻辑单元具有多个逻辑页面以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统100欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。
为了识别每个逻辑页面的数据被存储在那个实体程序化单元,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑页面与实体程序化单元之间的映射,其中一个逻辑页面的大小是相同于一个实体程序化单元的大小。在此,一个实体程序化单元的大小也称为一个数据存取单位。并且,当主机系统1000欲在逻辑页面中存取数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑页面所属的逻辑单元,并且在此逻辑页面所映射的实体程序化单元中来存取数据。
图8是根据本发明一范例实施例所示出的更新一个逻辑页面的数据的范例。
请参照图8,倘若主机系统1000下达写入指令以从逻辑页面LP(0)的起始地址开始写入数据UD1且数据UD1的大小相同一个实体程序化单元时,存储器控制电路单元104(或存储器管理电路202)会确认逻辑页面LP(0)所映射的实体程序化单元PP(0),选择一个空的实体程序化单元PP(1)来替换原先映射逻辑页面LP(0)的实体程序化单元PP(0),将数据UD1写入至所选择的实体程序化单元PP(1)并且将此逻辑页面LP(0)重新映射至实体程序化单元PP(1)。然后,存储在原始逻辑页面LP(0)的映射实体程序化单元PP(0)上的数据OD1为被标记为无效数据。
图9是根据本发明一范例实施例所示出的更新一个逻辑页面的数据的另一范例。
请参照图9,倘若主机系统1000下达写入指令以从逻辑页面LP(0)的起始地址开始写入数据UD2且数据UD2的大小为一个实体程序化单元的大小的一半时,存储器控制电路单元104(或存储器管理电路202)会确认逻辑页面LP(0)所映射的实体程序化单元PP(0),选择一个空的实体程序化单元来替换原先映射逻辑页面LP(0)的实体程序化单元PP(0),从原先映射逻辑页面LP(0)的实体程序化单元PP(0)中读取未被更新的数据OD2-2(即,旧有效数据),将数据UD2与旧有效数据OD2-2写入至所选择的实体程序化单元PP(1)并且将逻辑页面LP(0)重新映射至实体程序化单元PP(1)。然后,存储在原始逻辑页面LP(0)的映射实体程序化单元PP(0)上的数据OD2-1与OD2-2会被标记为无效数据。
由于存储器控制电路单元104(或存储器管理电路202)会记录逻辑页面与实体程序化单元的映射关系,因此,之后,当主机系统1000下达读取逻辑页面LP(0)上的数据的指令时,存储器控制电路单元104(或存储器管理电路202)可根据所记录的映射从实体程序化单元PP(1)中读取更新后的数据。
在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在可复写式非易失性存储器模块106中存储逻辑-实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时,存储器控制电路单元104(或存储器管理电路202)会将逻辑-实体地址映射表载入至缓冲存储器208来维护。
值得一提的是,由于缓冲存储器208的容量有限无法存储记录所有逻辑单元之映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑-实体地址映射表。特别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑-实体地址映射表会被载入至缓冲存储器208来被更新。
在本范例实施例中,当主机系统1000下达写入指令与对应的写入数据至存储器存储装置100时,存储器控制电路单元104(或存储器管理电路202)会先将数据暂存至缓冲存储器。特别是,由于存储器存储装置100配置有具有不同容量与带宽的第一缓冲存储器208与第二缓冲存储器108,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)根据所写入的数据的态样来使用一般缓冲写入机制与加速缓冲写入机制来写入数据。
图10是根据本发明一范例实施例所示出的使用一般缓冲写入机制来写入数据的示意图。
请参照图10,当从主机系统1000接收到写入指令与对应的写入数据UD2时,此数据UD2会被暂存至第二缓冲存储器108的第二数据暂存区108a。例如,存储器控制电路单元104(或存储器管理电路202)会通过与第二缓冲存储器108连接的总线直接将数据UD2传输至第二缓冲存储器108或者通过与第一缓冲存储器208连接的总线经由第一缓冲存储器208传输至第二缓冲存储器108。之后,存储器控制电路单元104(或存储器管理电路202)会再从第二缓冲存储器108的第二数据暂存区108a中将数据UD2传送至可复写式非易失性存储器模块106的实体程序化单元中。例如,数据OD2-2会先被读取至第二缓冲存储器108,然后数据UD2与数据OD2-2会被程序化至一个实体程序化单元PP(1)。
也就是说,在一般缓冲写入机制中,第二缓冲存储器108会同时被用来作为接收写入数据以及将写入数据传送至可复写式非易失性存储器模块106的缓冲区域。特别是,在一般缓冲写入机制中,由于第二暂存存储器108的传输带宽会被写入存取与读取存取来共享,因此,通过一般缓冲写入机制来写入数据的速度较慢。
图11是根据本发明一范例实施例所示出的使用加速缓冲写入机制来写入数据的示意图。
请参照图11,为了增加存储器存储装置100的写入速度,在加速缓冲写入机制中,存储器控制电路单元104(或存储器管理电路202)是将传输带宽较大的第一缓冲存储器208作为暂存写入数据的区域,并将传输带宽较小的第二缓冲存储器108作为备份写入数据的区域。
例如,当存储器存储装置100从主机系统1000中接收到写入指令及对应此写入指令的写入数据UD1时,存储器控制电路单元104(或存储器管理电路202)会将写入数据UD1暂存至第一缓冲存储器208的第一数据暂存区208a。由于第一缓冲存储器208的传输带宽较大,因此可满足主机系统1000的写入需求。也就是说,存储器管理电路202将数据UD1暂存在第一数据暂存区208a的速度会不低于主机系统1000传送数据UD1至存储器管理电路202的速度,由此可即时地从主机系统1000接收数据并且暂存至第一缓冲存储器208。
在加速缓冲写入机制中,第一缓冲存储器208的传输带宽可同时被写入存取与读取存取来分享。例如,当一数据被写入至第一缓冲存储器208的同时,其他数据可从第一缓冲存储器208中被读取出并被传输至可复写式非易失性存储器模块106。例如,当一数据被写入至第一缓冲存储器208的同时,其他数据也可从第一缓冲存储器208中被读取出并且被传送至第二缓冲存储器108。
接着,存储器控制电路单元104(或存储器管理电路202)会从第一数据暂存区208a中读取数据UD1,并根据上述写入指令将数据UD1写入至可复写式非易失性存储器模块106中。
另一方面,存储器控制电路单元104(或存储器管理电路202)也会从第一数据暂存区208a中读取数据UD1,并将数据UD1复制到第二缓冲存储器108的第二数据暂存区108a中。值得注意的是,在加速缓冲写入机制中,第二缓冲存储器108的传输带宽可全部都被用来写入数据UD1。也就是说,对于一份数据UD1来说,存储器控制电路单元104(或存储器管理电路202)只需要对第二缓冲存储器108做写入的动作,而不做读取的动作。另一方面,存储器管理电路202也可以在将数据UD1写入至可复写式非易失性存储器模块106的同时,将数据UD1复制到第二缓冲存储器108中。
基此,数据UD1便被备份在第二缓冲存储器108中,并且存储器控制电路单元104(或存储器管理电路202)就可再从主机系统1000下一个写入指令并且将新的写入数据暂存至第一缓冲存储器208。特别是,数据UD1已被备份至第二缓冲存储器108中,因此,在第一缓冲存储器208中,既使原先存储数据UD1的地址被用来暂存新的写入数据,也不会影响存储器存储装置100的操作。
例如,存储器管理电路202会在将数据UD1写入至可复写式非易失性存储器模块106中之后,判断是否发生程序化错误。若发生程序化错误时,存储器管理电路202会从第二缓冲存储器108中读取数据UD1,并根据写入指令将数据UD1重新写入至可复写式非易失性存储器模块106中。也就是说,当发生程序化错误而未成功地将写入数据302写入至可复写式非易失性存储器模块106时,既使在第一缓冲存储器208中数据UD1已被覆写成新的数据,存储器控制电路单元104(或存储器管理电路202)仍可将数据UD1从第二缓冲存储器108中重新写入至可复写式非易失性存储器模块106中。基此,存储器存储装置100能够在利用带宽较大的第一缓冲存储器208来提升写入速度的同时,确保数据UD1能成功的写入至可复写式非易失性存储器模块106。在本范例实施例中,当存储器管理电路202从第二缓冲存储器108中读取数据UD1时,第二缓冲存储器108的传输带宽可全部都被用来传输数据UD1。也就是说,在加速缓冲写入机制中,第二缓冲存储器108的全部传输带宽会被用来执行一个单一操作程序(例如,写入存取或读取存取)。例如,第二缓冲存储器108的传输带宽全部被用来将数据写入至第二缓冲存储器108。或者,第二缓冲存储器的传输带宽全部被用来将数据从第二缓冲存储器108读取出。
在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在接收到来自于主机系统1000的写入指令与对应的数据时,判断此数据是否为连续大数据。并且,倘若此数据为连续大数据时,存储器控制电路单元104(或存储器管理电路202)会使用上述加速缓冲写入机制来写入数据,并且倘若此数据不是连续大数据时,存储器控制电路单元104(或存储器管理电路202)会使用上述一般缓冲写入机制来写入数据。
具体来说,存储器控制电路单元104(或存储器管理电路202)会判断写入指令所指示开始写入数据的地址(即,起始逻辑地址)是否为数据存取单位的倍数且写入指令所指示的写入数据的大小是否为数据存取单位的倍数。
倘若写入指令所指示的起始逻辑地址为数据存取单位的倍数且写入数据的大小为数据存取单位的倍数时,则表示所欲写入的数据是更新逻辑页面内的所有数据(如图8所示)。此时,存储器控制电路单元104(或存储器管理电路202)会采用加速缓冲写入机制。更详细来说,由于实体程序化单元内的数据是全部更新,无需读取旧有效数据,因此,通过加速缓冲写入机制可有效地利用第一缓冲存储器208的大带宽来提升写入速度。
倘若写入指令所指示的起始逻辑地址不是数据存取单位的倍数且写入数据的大小不是数据存取单位的倍数时,则表示至少有一个逻辑页面内的数据不是全部被更新(如图9所示)。此时,存储器控制电路单元104(或存储器管理电路202)会采用一般缓冲写入机制。更详细来说,由于实体程序化单元内的数据仅部分被更新,因此,需先将写入数据保留在缓冲存储器中并读取旧有效数据,再以实体程序化单元为单位来进行写入。基此,通过一般缓冲写入机制可有效地利用第二缓冲存储器108的大容量,以避免第一缓冲存储器208的第一数据暂存区208a被占满而无法用于执行其他指令。
图12是根据本发明一范例实施例所示出的数据写入方法的流程图。
请参照图12,当从主机系统1000接收到指示起始逻辑地址与写入数据(以下称为第一数据)的写入指令时,在步骤S1201中,存储器控制电路单元104(或存储器管理电路202)会判断第一数据是否属于连续大数据。例如,如上所述,存储器控制电路单元104(或存储器管理电路202)会根据写入指令所指示的起始逻辑地址与写入数据的大小来判断第一数据是否属于连续大数据。
倘若第一数据属于连续大数据时,在步骤S1203中,存储器控制电路单元104(或存储器管理电路202)会将第一数据暂存至第一缓冲存储器208的第一数据暂存区208a。
之后,在步骤S1205中,存储器控制电路单元104(或存储器管理电路202)会将第一数据从第一数据暂存区208a中写入至该可复写式非易失性存储器模块中。然后,在步骤S1207中,存储器控制电路单元104(或存储器管理电路202)会从第一数据暂存区208a中将第一数据复制到第二缓冲存储器108的第二数据暂存区108a中。
倘若第一数据不属于连续大数据时,在步骤S1209中,存储器控制电路单元104(或存储器管理电路202)会将第一数据暂存至第二缓冲存储器108的第二数据暂存区108a中。值得一提的是,之后,存储器控制电路单元104(或存储器管理电路202)会从对应的实体程序化单元之中将旧有效数据(以下称为第二数据)读取至第二缓冲存储器108的第二数据暂存区108a,并且将所暂存的第一数据与第二数据写入至空的实体程序化单元中(如图9所示)。
值得一提的是,尽管在本范例实施例中,第二缓冲存储器108是独立于存储器控制电路单元104来被配置,然而,本发明不限于此。在本发明另一范例实施例中,第二缓冲存储器108也可被配置在存储器控制电路单元104中。
综上所述,本发明实施例所提出的存储器存储装置、存储器控制电路单元与写入方法,可以根据不同的数据型态来使用不同的缓冲机制来写入数据,由此有效率地使用存储器存储装置中暂存存储器的带宽与容量并且提升写入数据的速度。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种存储器存储装置,其特征在于,包括:
一连接接口单元,用以电性连接至一主机系统;
一可复写式非易失性存储器模块;
一存储器控制电路单元,电性连接至该连接接口单元与该可复写式非易失性存储器模块,其中该存储器控制电路单元包括一第一缓冲存储器,且该第一缓冲存储器包括一第一数据暂存区;以及
一第二缓冲存储器,电性连接至该第一缓冲存储器,其中该第二缓冲存储器包括一第二数据暂存区,该第二缓冲存储器的一传输带宽低于该第一缓冲存储器的一传输带宽,
其中该存储器控制电路单元用以从该主机系统中接收一写入指令与对应该写入指令的一起始逻辑地址与一第一数据,
其中该存储器控制电路单元还用以判断该第一数据是否为一连续大数据,
倘若该第一数据为该连续大数据时,该存储器控制电路单元将该第一数据暂存至该第一数据暂存区,且将该第一数据从该第一数据暂存区中写入至该可复写式非易失性存储器模块中,
倘若该第一数据不是该连续大数据时,该存储器控制电路单元将该第一数据暂存至该第二数据暂存区而不会暂存至该第一数据暂存区中。
2.根据权利要求1所述的存储器存储装置,其特征在于,在判断该第一数据是否为该连续大数据的操作中,该存储器控制电路单元会判断该起始逻辑地址是否为一数据存取单位的倍数并且该第一数据的大小是否为该数据存取单位的倍数,
倘若该起始逻辑地址为该数据存取单位的倍数并且该第一数据的大小为该数据存取单位的倍数时,该存储器控制电路单元识别该第一数据为该连续大数据,
倘若该起始逻辑地址不是该数据存取单位的倍数或者该第一数据的大小不是该数据存取单位的倍数时,该存储器控制电路单元识别该第一数据不是该连续大数据。
3.根据权利要求1所述的存储器存储装置,其特征在于,倘若该第一数据不是该连续大数据时,该存储器控制电路单元还用以从该可复写式非易失性存储器模块的一第一实体程序化单元中将一第二数据读取至该第二数据暂存区并且将该第一数据与该第二数据从该第二数据暂存区中写入至该可复写式非易失性存储器模块的一第二实体程序化单元。
4.根据权利要求1所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以在将该第一数据写入至该可复写式非易失性存储器模块中之后判断是否发生一程序化错误,
若发生该程序化错误时,则该存储器控制电路单元还用以从该第二缓冲存储器中读取该第一数据,并根据该写入指令将所读取的该第一数据重新写入至该可复写式非易失性存储器模块中。
5.根据权利要求1所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以从该主机系统接收一读取指令,
该存储器控制电路单元还用以判断该第二缓冲存储器是否存储有属于该读取指令所指示的一逻辑地址的一第三数据,
若该第二缓冲存储器存储有属于该读取指令所指示的该逻辑地址的该第三数据时,则该存储器控制电路单元从该第二缓冲存储器中读取该第三数据并将所读取的该第三数据传送至该主机系统以响应该读取指令。
6.根据权利要求1所述的存储器存储装置,其特征在于,该第二缓冲存储器是配置在该存储器控制电路单元中或者配置在该存储器控制电路单元的外部。
7.根据权利要求1所述的存储器存储装置,其特征在于,该第一缓冲存储器为一静态随机存取存储器,该第二缓冲存储器为一同步动态随机存取存储器并且该第二缓冲存储器的一容量大于该第一缓冲存储器的一容量。
8.一种存储器控制电路单元,其特征在于,包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至一可复写式非易失性存储器模块;
一存储器管理电路,电性连接至该主机接口与该存储器接口;
一第一缓冲存储器,电性连接至该存储器管理电路且包括一第一数据暂存区;以及
一第二缓冲存储器,电性连接至该第一缓冲存储器与该存储器管理电路,其中该第二缓冲存储器包括一第二数据暂存区,该第二缓冲存储器的一传输带宽低于该第一缓冲存储器的一传输带宽,
其中该存储器管理电路用以从该主机系统中接收一写入指令与对应该写入指令的一起始逻辑地址与一第一数据,
其中该存储器管理电路还用以判断该第一数据是否为一连续大数据,
倘若该第一数据为该连续大数据时,该存储器管理电路将该第一数据暂存至该第一数据暂存区,并且将该第一数据从该第一数据暂存区中写入至该可复写式非易失性存储器模块中,
倘若该第一数据不是该连续大数据时,该存储器管理电路将该第一数据暂存至该第二数据暂存区而不会暂存至该第一数据暂存区中。
9.根据权利要求8所述的存储器控制电路单元,其特征在于,在判断该第一数据是否为该连续大数据的操作中,该存储器管理电路会判断该起始逻辑地址是否为一数据存取单位的倍数并且该第一数据的大小是否为该数据存取单位的倍数,
倘若该起始逻辑地址为该数据存取单位的倍数并且该第一数据的大小为该数据存取单位的倍数时,该存储器管理电路识别该第一数据为该连续大数据,
倘若该起始逻辑地址不是该数据存取单位的倍数或者该第一数据的大小不是该数据存取单位的倍数时,该存储器管理电路识别该第一数据不是该连续大数据。
10.根据权利要求8所述的存储器控制电路单元,其特征在于,倘若该第一数据不是该连续大数据时,该存储器管理电路还用以从该可复写式非易失性存储器模块的一第一实体程序化单元中将一第二数据读取至该第二数据暂存区并且将该第一数据与该第二数据从该第二数据暂存区中写入至该可复写式非易失性存储器模块的一第二实体程序化单元。
11.根据权利要求8所述的存储器控制电路单元,其特征在于,该存储器管理电路还用以在将该第一数据写入至该可复写式非易失性存储器模块中之后判断是否发生一程序化错误,
其中若发生该程序化错误时,则该存储器管理电路还用以从该第二缓冲存储器中读取该第一数据,并根据该写入指令将所读取的该第一数据重新写入至该可复写式非易失性存储器模块中。
12.根据权利要求8所述的存储器控制电路单元,其特征在于,该存储器管理电路还用以从该主机系统接收一读取指令,
其中该存储器管理电路还用以判断该第二缓冲存储器是否存储有属于该读取指令所指示的一逻辑地址的一第三数据,
其中若该第二缓冲存储器存储有属于该读取指令所指示的该逻辑地址的该第三数据时,则该存储器管理电路从该第二缓冲存储器中读取该第三数据并将所读取的该第三数据传送至该主机系统以响应该读取指令。
13.根据权利要求8所述的存储器控制电路单元,其特征在于,该第一缓冲存储器为一静态随机存取存储器,该第二缓冲存储器为一同步动态随机存取存储器并且该第二缓冲存储器的一容量大于该第一缓冲存储器的一容量。
14.一种数据写入方法,用于一存储器存储装置,其特征在于,该存储器存储装置具有一第一缓冲存储器、一第二缓冲存储器及一可复写式非易失性存储器模块,该第一缓冲存储器的一传输带宽大于该第二缓冲存储器的一传输带宽,该写入方法包括:
从一主机系统中接收一写入指令与对应该写入指令的一起始逻辑地址与一第一数据;
判断该第一数据是否为一连续大数据;
倘若该第一数据为该连续大数据时,将该第一数据暂存至该第一缓冲存储器的一第一数据暂存区,并且将该第一数据从该第一数据暂存区中写入至该可复写式非易失性存储器模块中;以及
倘若该第一数据不是该连续大数据时,将该第一数据暂存至该第二缓冲存储器的一第二数据暂存区中而不会暂存至该第一数据暂存区中。
15.根据权利要求14所述的数据写入方法,其特征在于,其中上述判断该第一数据是否为该连续大数据的步骤包括:
判断该起始逻辑地址是否为一数据存取单位的倍数并且该第一数据的大小是否为该数据存取单位的倍数;
倘若该起始逻辑地址为该数据存取单位的倍数并且该第一数据的大小为该数据存取单位的倍数时,识别该第一数据为该连续大数据;以及
倘若该起始逻辑地址不是该数据存取单位的倍数或者该第一数据的大小不是该数据存取单位的倍数时,识别该第一数据不是该连续大数据。
16.根据权利要求14所述的数据写入方法,其特征在于,还包括:
倘若该第一数据不是该连续大数据时,从该可复写式非易失性存储器模块的一第一实体程序化单元中将一第二数据读取至该第二数据暂存区并且将该第一数据与该第二数据从该第二数据暂存区中写入至该可复写式非易失性存储器模块的一第二实体程序化单元。
17.根据权利要求14所述的数据写入方法,其特征在于,还包括:
在将该第一数据写入至该可复写式非易失性存储器模块中之后判断是否发生一程序化错误;以及
倘若发生该程序化错误时,则从该第二缓冲存储器中读取该第一数据,并根据该写入指令将所读取的该第一数据重新写入至该可复写式非易失性存储器模块中。
18.根据权利要求14所述的数据写入方法,其特征在于,还包括:
从该主机系统接收一读取指令,
判断该第二缓冲存储器是否存储有属于该读取指令所指示的一逻辑地址的一第三数据;
倘若该第二缓冲存储器存储有属于该读取指令所指示的该逻辑地址的该第三数据时,从该第二缓冲存储器中读取该第三数据并将所读取的该第三数据传送至该主机系统以响应该读取指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310371587.2A CN104423888B (zh) | 2013-08-23 | 2013-08-23 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310371587.2A CN104423888B (zh) | 2013-08-23 | 2013-08-23 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104423888A CN104423888A (zh) | 2015-03-18 |
CN104423888B true CN104423888B (zh) | 2017-10-03 |
Family
ID=52973006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310371587.2A Active CN104423888B (zh) | 2013-08-23 | 2013-08-23 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104423888B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557432B (zh) * | 2015-09-29 | 2019-08-06 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
TWI571881B (zh) * | 2015-10-23 | 2017-02-21 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
CN107665091B (zh) * | 2016-07-28 | 2021-03-02 | 深圳大心电子科技有限公司 | 数据读取方法、数据写入方法及其存储控制器 |
CN106681652B (zh) * | 2016-08-26 | 2019-11-19 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN106681654B (zh) * | 2016-09-29 | 2019-08-27 | 合肥兆芯电子有限公司 | 映射表载入方法与存储器存储装置 |
CN108121663B (zh) * | 2016-11-29 | 2022-05-03 | 群联电子股份有限公司 | 数据存储方法、存储器存储装置及存储器控制电路单元 |
CN110058783B (zh) * | 2018-01-17 | 2022-04-12 | 瑞昱半导体股份有限公司 | 暂存存储器处理方法、暂存存储器程序与存储装置 |
KR20190102781A (ko) * | 2018-02-27 | 2019-09-04 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
TWI653630B (zh) * | 2018-05-14 | 2019-03-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
CN110580230B (zh) * | 2018-06-11 | 2022-11-22 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
JP7213657B2 (ja) * | 2018-11-05 | 2023-01-27 | キヤノン株式会社 | 撮像装置及びその制御方法及びプログラム |
US11366618B2 (en) * | 2020-03-02 | 2022-06-21 | Silicon Motion, Inc. | All flash array server and control method thereof |
CN112558865A (zh) * | 2020-12-02 | 2021-03-26 | 成都佰维存储科技有限公司 | 突发数据读写方法、装置、可读存储介质及电子设备 |
CN114333930B (zh) * | 2021-12-23 | 2024-03-08 | 合肥兆芯电子有限公司 | 多通道存储器存储装置、控制电路单元及其数据读取方法 |
CN115878051B (zh) * | 2023-03-03 | 2023-06-09 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、数据同步系统、存储介质和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515333A (en) * | 1991-10-29 | 1996-05-07 | Hitachi, Ltd. | Semiconductor memory |
CN101124556A (zh) * | 2004-12-16 | 2008-02-13 | 桑迪士克股份有限公司 | 具有用于高速暂存器和更新区块的改进索引的非易失性存储器和方法 |
CN102968385A (zh) * | 2011-08-31 | 2013-03-13 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与储存装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152464A (ja) * | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
US8397024B2 (en) * | 2008-10-25 | 2013-03-12 | Sandisk 3D Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
US8266334B2 (en) * | 2010-02-12 | 2012-09-11 | Phison Electronics Corp. | Data writing method for non-volatile memory, and controller and storage system using the same |
-
2013
- 2013-08-23 CN CN201310371587.2A patent/CN104423888B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515333A (en) * | 1991-10-29 | 1996-05-07 | Hitachi, Ltd. | Semiconductor memory |
CN101124556A (zh) * | 2004-12-16 | 2008-02-13 | 桑迪士克股份有限公司 | 具有用于高速暂存器和更新区块的改进索引的非易失性存储器和方法 |
CN102968385A (zh) * | 2011-08-31 | 2013-03-13 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与储存装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104423888A (zh) | 2015-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
CN104765568B (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
US20090150597A1 (en) | Data writing method for flash memory and controller using the same | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN106681652B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
TWI660271B (zh) | 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
TW201324145A (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201344434A (zh) | 記憶體格式化方法、記憶體控制器及記憶體儲存裝置 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |