CN106326142B - 缓冲存储器存取方法、存储器控制器与存储器存储装置 - Google Patents

缓冲存储器存取方法、存储器控制器与存储器存储装置 Download PDF

Info

Publication number
CN106326142B
CN106326142B CN201510336797.7A CN201510336797A CN106326142B CN 106326142 B CN106326142 B CN 106326142B CN 201510336797 A CN201510336797 A CN 201510336797A CN 106326142 B CN106326142 B CN 106326142B
Authority
CN
China
Prior art keywords
write
cache unit
memory
data
pre
Prior art date
Application number
CN201510336797.7A
Other languages
English (en)
Other versions
CN106326142A (zh
Inventor
陈国荣
Original Assignee
群联电子股份有限公司
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 群联电子股份有限公司 filed Critical 群联电子股份有限公司
Priority to CN201510336797.7A priority Critical patent/CN106326142B/zh
Publication of CN106326142A publication Critical patent/CN106326142A/zh
Application granted granted Critical
Publication of CN106326142B publication Critical patent/CN106326142B/zh

Links

Abstract

本发明提供一种缓冲存储器存取方法、存储器控制器与存储器存储装置,其中此缓冲存储器具有多个写入缓存单元且是配置在具有可复写式非易失性存储器模块的存储器存储装置中。本方法包括:从主机系统接收写入数据,并判断写入缓存单元之中被占用的写入缓存单元的数目是否非小于一预先定义值。本方法还包括:倘若写入缓存单元之中被占用的写入缓存单元的数目非小于预先定义值时,将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并且在一预先定义时间间隔后传送对应此写入数据的确认信息给主机系统。藉此,本方法能够有效降低主机系统写入操作的延迟时间。

Description

缓冲存储器存取方法、存储器控制器与存储器存储装置

技术领域

本发明是有关于一种缓冲存储器的管理方法,且特别是有关于一种缓冲存储器存取方法、存储器控制器与存储器存储装置。

背景技术

数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。

在使用可复写式非易失性存储器作为存储媒体的存储器存储装置中,通常也会配置缓冲存储器,用以暂存程序代码、数据或是用于存储器存储装置在执行背景(background)工作时数据的暂存区域。由于成本的考量,这样的缓冲存储器并不会有很大的存储空间。在缓冲存储器的存储空间不足的情况下,存储器存储装置的运作会严重受到影响。例如,当来自主机系统的写入指令以及数据无法即时写入缓冲存储器时,可能会导致主机系统写入的延迟(latency)时间过长,而造成逾时并中断。因此,如何确保主机系统写入的延迟时间在一固定的时间内,以避免造成逾时,为此领域技术人员所关心的议题。

发明内容

本发明提供一种缓冲存储器存取方法、存储器控制器与存储器存储装置,可以有效降低主机系统写入操作的延迟时间。

本发明的一范例实施例提供一种缓冲存储器存取方法,用于一存储器存储装置的缓冲存储器,其中此存储器存储装置包括一可复写式非易失性存储器模块且缓冲存储器具有多个写入缓存单元。本缓冲存储器存取方法包括:从主机系统接收写入数据,并判断写入缓存单元之中被占用的写入缓存单元的数目是否非小于一预先定义值。本缓冲存储器存取方法还包括:倘若写入缓存单元之中被占用的写入缓存单元的数目小于预先定义值时,将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并且传送对应此写入数据的一确认信息给主机系统。本缓冲存储器存取方法还包括:倘若写入缓存单元之中被占用的写入缓存单元的数目非小于预先定义值时,将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并且在一预先定义时间间隔后传送对应此写入数据的确认信息给主机系统。

在本发明的一实施例中,上述的缓冲存储器存取方法还包括记录对应在存储器存储装置中运行的多个背景工作中的多个执行时间,并且记录此些执行时间之中的一第一执行时间,其中此第一执行时间不小于此些执行时间之中的其他执行时间,其中此些背景工作会占用缓冲存储器的部分写入缓存单元,以及根据此第一执行时间以及预先定义时间间隔,设定预先定义值。

在本发明的一实施例中,上述的缓冲存储器存取方法还包括将写入缓存单元的数目减去一第一数值以获得预先定义值,其中第一数值是通过第一执行时间除以预先定义时间间隔所获得。

在本发明的一实施例中,上述的缓冲存储器存取方法还包括当传送确认信息后,从主机系统接收另一写入数据,并将此另一写入数据暂存至缓冲存储器中。

在本发明的一实施例中,上述的缓冲存储器存取方法还包括在缓冲存储器中的写入缓存单元皆被占用之后,将写入缓存单元中的数据写入至可复写式非易失性存储器模块中。

在本发明的一实施例中,上述的缓冲存储器存取方法的背景工作包括映射表存储、数据合并与错误校正。

本发明一范例实施例提供一种用于控制可复写式非易失性存储器模块的存储器控制器。此存储器控制器包括:用以电性连接至主机系统的主机接口;用以电性连接至可复写式非易失性存储器模块的存储器接口;电性连接至主机接口及存储器接口的缓冲存储器,此缓冲存储器具有多个写入缓存单元;以及电性连接至主机接口、存储器接口与缓冲存储器的存储器管理电路。存储器管理电路用以从主机系统接收写入数据,并判断写入缓存单元之中被占用的写入缓存单元的数目是否非小于预先定义值。倘若写入缓存单元之中被占用的写入缓存单元的数目小于预先定义值时,存储器管理电路将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并且传送对应此写入数据的确认信息给主机系统。倘若写入缓存单元之中被占用的写入缓存单元的数目非小于预先定义值时,存储器管理电路将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并且在预先定义时间间隔后传送对应此写入数据的确认信息给主机系统。

在本发明的一实施例中,上述的存储器管理电路还用以记录对应在存储器控制器中运行的多个背景工作的多个执行时间,并且记录此些执行时间之中的一第一执行时间,其中此第一执行时间不小于此些执行时间之中的其他执行时间,其中背景工作会占用缓冲存储器的部分写入缓存单元,并根据此第一执行时间以及预先定义时间间隔,设定预先定义值。

在本发明的一实施例中,上述的存储器管理电路更用以将写入缓存单元的数目减去一第一数值以获得预先定义值,其中第一数值是通过存储器管理电路将第一执行时间除以预先定义时间间隔所获得。

在本发明的一实施例中,当存储器管理电路传送该确认信息后,上述存储器管理电路更用以从主机系统接收另一写入数据,并将此另一写入数据暂存至缓冲存储器中。

在本发明的一实施例中,在缓冲存储器中的写入缓存单元皆被占用之后,上述存储器管理电路更用以将写入缓存单元中的数据写入至可复写式非易失性存储器模块中。

在本发明的一实施例中,上述的背景工作包括映射表存储、数据合并与错误校正。

本发明一范例实施例提供一种存储器存储装置。其包括:用以电性连接至主机系统的连接接口单元、可复写式非易失性存储器模块以及电性连接至连接接口单元与可复写式非易失性存储器模块的存储器控制器。其中存储器控制器包括缓冲存储器,其中缓冲存储器具有多个写入缓存单元。存储器控制器用以从主机系统接收写入数据,并判断写入缓存单元之中被占用的写入缓存单元的数目是否非小于预先定义值。倘若写入缓存单元之中被占用的写入缓存单元的数目小于预先定义值时,存储器控制器将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并且传送对应此写入数据的一确认信息给该主机系统。倘若写入缓存单元之中被占用的写入缓存单元的数目非小于预先定义值时,存储器控制器将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并且在预先定义时间间隔后传送对应此写入数据的确认信息给主机系统。

在本发明的一范例实施例中,上述存储器控制器还用以记录对应在该存储器存储装置中运行的多个背景工作的多个执行时间,并且记录此些执行时间之中的一第一执行时间,其中此第一执行时间不小于此些执行时间之中的其他执行时间,其中背景工作会占用缓冲存储器的部分写入缓存单元,并根据第一执行时间以及预先定义时间间隔,设定预先定义值。

在本发明的一范例实施例中,上述存储器控制器更用以将写入缓存单元的数目减去第一数值以获得预先定义值,其中第一数值是通过存储器控制器将第一执行时间除以预先定义时间间隔所获得。

在本发明的一范例实施例中,其中当该存储器控制器传送该确认信息后,上述存储器控制器更用以从主机系统接收另一写入数据,并将此另一写入数据暂存至缓冲存储器中。

在本发明的一范例实施例中,其中在缓冲存储器中的写入缓存单元皆被占用之后,上述存储器控制器更用以将写入缓存单元中的数据写入至可复写式非易失性存储器模块中。

在本发明的一范例实施例中,所述背景工作包括映射表存储、数据合并与错误校正。

基于上述,本发明的缓冲存储器存取方法,通过两阶段的写入方式可以有效降低主机系统写入操作的延迟时间,以解决当缓冲存储器被写满时,主机系统写入操作等待时间过长的问题。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1A是根据一范例实施例所示出的主机系统与存储器存储装置;

图1B是根据本发明范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;

图1C是根据本发明范例实施例所示出的主机系统与存储器存储装置的示意图;

图2是根据一范例实施例所示出的存储器存储装置的概要方块图;

图3是根据一范例实施例所示出的存储器控制器的概要方块图;

图4是根据一范例实施例所示出的缓冲存储器的示意图;

图5A~图5D是根据一范例实施例所示出的缓冲存储器存取方法的示意图;

图6是根据一范例实施例所示出的缓冲存储器存取方法的流程图。

附图标记说明:

1000:主机系统;

1100:电脑;

1102:微处理器;

1104:随机存取存储器;

1106:输入/输出装置;

1108:系统总线;

1110:数据传输接口;

1202:鼠标;

1204:键盘;

1206:显示器;

1208:打印机;

1212:移动硬盘;

1214:存储卡;

1216:固态硬盘;

1310:数码相机;

1312:SD卡;

1314:MMC卡;

1316:存储棒;

1318:CF卡;

1320:嵌入式存储装置;

100:存储器存储装置;

102:连接接口单元;

104:存储器控制器;

106:可复写式非易失性存储器模块;

302:存储器管理电路;

304:主机接口;

306:存储器接口;

308:缓冲存储器;

310:电源管理电路;

312:错误检查与校正电路;

410(0)~410(511):写入缓存单元;

S601、S603、S605、S607:步骤。

具体实施方式

图1A是根据一范例实施例所示出的主机系统与存储器存储装置的示意图。

请参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。

在本范例实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图1B所示的移动硬盘1212、存储卡1214或固态硬盘(SolidState Drive,简称SSD)1216等的可复写式非易失性存储器存储装置。

一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来做说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为图1C中的数码相机(摄影机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。

图2是根据一范例实施例所示出的存储器存储装置的概要方块图。

请参照图2,存储器存储装置100包括连接接口单元102、存储器控制器104与可复写式非易失性存储器模块106。

在本范例实施例中,连接接口单元102是相容于安全数字(Secure Digital,简称SD)接口标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,简称IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,简称PCIExpress)标准、通用串行总线(Universal Serial Bus,简称USB)标准、超高速一代(UltraHigh Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II)接口标准、串行高级技术附件(Serial Advanced Technology Attachment,简称SATA)标准、存储棒(Memory Stick,简称MS)接口标准、多媒体存储卡(Multi Media Card,简称MMC)接口标准、小型快闪(Compact Flash,简称CF)接口标准、整合式驱动电子接口(IntegratedDevice Electronics,简称IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元可与存储器控制器封装在一个芯片中,或布设于一包含存储器控制器的芯片外。

存储器控制器104用以执行以硬件形式或固件形式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取、抹除与合并等运作。

可复写式非易失性存储器模块106是电性连接至存储器控制器104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有多个实体抹除单元。例如,此些实体抹除单元可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,例如本发明的范例实施例中,每一个实体抹除单元包含258个实体程序化单元,而其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。

更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。

在本范例实施例中,可复写式非易失性存储器模块106为多阶存储单元(MultiLevel Cell,简称MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个数据比特的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单阶存储单元(Single Level Cell,简称SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个数据比特的快闪存储器模块)、复数阶存储单元(Trinary Level Cell,简称TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个数据比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。

图3是根据一范例实施例所示出的存储器控制器的概要方块图。必须了解的是,图3所示出的存储器控制器仅为一个范例,本发明不限于此。

请参照图3,存储器控制器104包括存储器管理电路302、主机接口304、存储器接口306与缓冲存储器308。

存储器管理电路302用以控制存储器控制器104的整体运作。具体来说,存储器管理电路302具有多个控制指令,并且在存储器存储装置100运作时,此些控制指令会被执行以进行数据的写入、读取、抹除与合并等运作。

在本范例实施例中,存储器管理电路302的控制指令是以固件形式来实作。例如,存储器管理电路302具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取、抹除与合并等运作。

在本发明另一范例实施例中,存储器管理电路302的控制指令也可以程序编码形式存储于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路302具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路302的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取、抹除与合并等运作。

此外,在本发明另一范例实施例中,存储器管理电路302的控制指令也可以一硬件形式来实作。例如,存储器管理电路302包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块106的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取电路用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。

主机接口304是电性连接至存储器管理电路302并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口304来传送至存储器管理电路302。在本范例实施例中,主机接口304是相容于SD标准。然而,必须了解的是本发明不限于此,主机接口304也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SATA标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。

存储器接口306是电性连接至存储器管理电路302并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会通过存储器接口306转换为可复写式非易失性存储器模块106所能接受的格式。

缓冲存储器308是电性连接至存储器管理电路302、主机接口304及存储器接口306。

图4是根据一范例实施例所示出的缓冲存储器的示意图。

请参照图4,在本范例实施例中,缓冲存储器308具有512个写入缓存单元(即,写入缓存单元410(0)~410(511)),每一个写入缓存单元的大小为4KB,且主机系统1000是以4KB为单位来传送数据。此外,在本范例实施例中,四个写入缓存单元的大小为对应一个可复写式非易失性存储器的实体程序化单元的大小。然而,必须了解的是,本范例实施例不限定配置在缓冲存储器308中的写入缓存单元的个数、写入缓存单元的大小以及主机系统1000传送数据的大小。在其他范例实施例中,缓冲存储器308中写入缓存单元的个数可以多于或少于512个,且写入缓存单元的大小以及主机系统1000传送数据的大小也可以大于或小于4KB。

写入缓存单元410(0)~410(511)用以暂存来自于主机系统1000欲写入至可复写式非易失性存储器模块106的数据与指令,或来自于可复写式非易失性存储器模块106的数据。此外,写入缓存单元410(0)~410(511)也可用于存储器存储装置100中存储器控制器104(或存储器管理电路302)执行背景工作时数据的暂存区域。例如,背景工作为映射表存储、数据合并(garbage collection)及/或错误校正(error correction)等。

请再参照图3,在本发明一范例实施例中,存储器控制器104还包括电源管理电路310与错误检查与校正电路312。

电源管理电路310是电性连接至存储器管理电路302并且用以控制存储器存储装置100的电源。

错误检查与校正电路312是电性连接至存储器管理电路302并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路302从主机系统1000中接收到写入指令时,错误检查与校正电路312会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路302会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路302从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路312会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。

图5A~图5D是根据一范例实施例所示出的缓冲存储器存取方法的示意图。

请参照图5A~图5D,必须了解的是,在一般的缓冲存储器308的存取中,当主机系统1000执行写入操作时,存储器控制器104(或存储器管理电路302)会将此写入操作的写入数据暂存至缓冲存储器308中未被占用的写入缓存单元中。当写入数据顺利地暂存至缓冲存储器308后,存储器控制器104(或存储器管理电路302)会发送一个确认信息给主机系统1000,以通知主机系统1000此写入操作已完成。然而,当缓冲存储器308中的写入缓存单元410(0)~410(511)皆被占用时,来自主机系统1000的写入数据会无法即时地被写入缓冲存储器308,并增加主机系统1000的延迟(latency)时间。

为了避免延迟时间过长而造成逾时,在本范例实施例中,在写入缓存单元410(0)~410(511)已被占用预定的空间后,存储器控制器104(或存储器管理电路302)会减缓写入数据至缓冲存储器308的频率。例如,在被占用的写入缓存单元的数目小于预先定义值,且需暂存数据至缓冲存储器308时,存储器控制器104(或存储器管理电路302)会直接将数据暂存至写入缓存单元410(0)~410(511);而在被占用的写入缓存单元的数目大于或等于预先定义值,且需暂存数据至缓冲存储器308时,存储器控制器104(或存储器管理电路302)会根据预先定义时间间隔来使用写入缓存单元410(0)~410(511)。

在此,预先定义时间间隔会被设定为主机系统1000所能允许的最长延迟时间,例如,10ms。此外,存储器控制器104(或存储器管理电路302)还会记录运行在存储器存储装置100中每个背景工作的执行时间,并且记录最长的执行时间(以下称为,第一执行时间)。例如,执行时间最长的背景工作为映射表存储,且其执行时间为1280ms。存储器控制器104(或存储器管理电路302)会根据上述预先定义时间间隔及第一执行时间,来设定上述预先定义值。具体来说,在本范例时实施例中,存储器控制器104(或存储器管理电路302)会将第一时间除以预先定义时间间隔以获得第一数值,并且将写入缓存单元的数目减去此第一数值所获得的值作为预先定义值。

例如,在第一时间为1280,预先定义时间间隔为10且写入缓存单元的个数为512的例子中,第一数值为128(即,1280/10=128),且预先定义值为384(即,512-128=384)。也就是说,存储器控制器104(或存储器管理电路302)会保留缓冲存储器308中的128个写入缓存单元,用以调节主机系统1000的数据写入。必须了解的是,所述“保留缓冲存储器308中128个写入缓存单元”并非用于保留特定的128个写入缓存单元,而是当缓冲存储器308中未被占用的写入缓存单元剩下128个时,此些128个写入缓存单元会被用以仅接收来自主机系统1000的写入数据,以调节主机系统1000的写入操作,以避免主机系统1000的写入延迟时间过长。

在本范例实施例中,当存储器控制器104(或存储器管理电路302)从主机系统1000接收写入数据且缓冲存储器308中被占用的写入缓存单元的数目小于此预先定义值时,存储器控制器104(或存储器管理电路302)会将此写入数据写入缓冲存储器308,并直接回复对应此写入数据的确认信息给主机系统1000。当存储器控制器104(或存储器管理电路302)从主机系统1000接收写入数据且缓冲存储器308中被占用的写入缓存单元的数目非小于此预先定义值时,存储器控制器104(或存储器管理电路302)会将此写入数据写入缓冲存储器308,并在预先定义时间间隔后才回复对应此写入数据的确认信息给主机系统1000。如图5A所示,假设目前缓冲存储器308被占用的写入缓存单元的数目为383个(例如,被占用的写入缓存单元为写入缓存单元410(0)~410(382))。当存储器控制器104(或存储器管理电路302)从主机系统1000接收一个写入数据WDATA1时,存储器控制器104(或存储器管理电路302)会判断出目前缓冲存储器308中被占用的写入缓存单元的数目为小于上述预先定义值(即,384)。接着,存储器控制器104(或存储器管理电路302)会将此写入操作的写入数据WDATA1直接暂存至未被占用的写入缓存单元中(例如,写入缓存单元410(383)),并立即传送指示已完成此写入数据WDATA1的写入的确认信息给主机系统1000。例如,主机系统1000可以再执行下一个写入操作。

如图5B所示,假设目前缓冲存储器308被占用的写入缓存单元的数目为384个(例如,被占用的写入缓存单元为写入缓存单元410(0)~410(383))。当存储器控制器104(或存储器管理电路302)从主机系统1000接收一个写入数据WDATA2时,存储器控制器104(或存储器管理电路302)会判断出目前缓冲存储器308中被占用的写入缓存单元的数目为非小于上述预先定义值(即,384)。接着,存储器控制器104(或存储器管理电路302)会将此写入操作的写入数据WDATA2直接暂存至未被占用的写入缓存单元中(例如,写入缓存单元410(384)),并在上述预先定义时间间隔(即,10ms)后才传送指示已完成此写入数据WDATA2的写入的确认信息给主机系统1000。也就是说,当写入缓存单元的数目为非小于上述预先定义值时,主机系统1000在执行一个写入操作后,需等待预先定义时间间隔才能再执行下一个写入操作。

如图5C所示,假设目前缓冲存储器308被占用的写入缓存单元的数目为385个(例如,被占用的写入缓存单元为写入缓存单元410(0)~410(384))。当存储器控制器104(或存储器管理电路302)从主机系统1000接收一个写入数据WDATA3时,存储器控制器104(或存储器管理电路302)会判断出目前缓冲存储器308中被占用的写入缓存单元的数目为非小于上述预先定义值(即,384)。接着,存储器控制器104(或存储器管理电路302)会将此写入操作的写入数据WDATA3直接暂存至未被占用的写入缓存单元中(例如,写入缓存单元410(385)),并在上述预先定义时间间隔后才传送指示已完成此写入数据WDATA3的写入的确认信息给主机系统1000。

如图5D所示,假设目前缓冲存储器308被占用的写入缓存单元的数目为511个(例如,被占用的写入缓存单元为写入缓存单元410(0)~410(510))。当存储器控制器104(或存储器管理电路302)从主机系统1000接收一个写入数据WDATA4时,存储器控制器104(或存储器管理电路302)会判断出目前缓冲存储器308中被占用的写入缓存单元的数目为非小于上述预先定义值(即,384)。接着,存储器控制器104(或存储器管理电路302)会将此写入操作的写入数据WDATA4直接暂存至未被占用的写入缓存单元中(例如,写入缓存单元410(511)),并在上述预先定义时间间隔后才传送指示已完成此写入数据WDATA4的写入的确认信息给主机系统1000。特别是,由于此时缓冲存储器308中的写入缓存单元410(0)~410(511)皆被占用,因此存储器控制器104(或存储器管理电路302)会在可复写式非易失性存储器模块106的背景工作皆已完成下,将所有写入缓存单元410(0)~410(511)的数据写入至可复写式非易失性存储器模块106中,以清空写入缓存单元410(0)~410(511)中的数据,用以再次接收来自主机系统1000新的写入数据或用于执行背景工作。

例如,以运行所需执行时间为1280ms的映射表存储为例,假设目前被占用的384个写入缓存单元中,被占用的写入缓存单元410(0)~410(383)中包含了存储器控制器104(或存储器管理电路302)执行映射表存储工作所占用的写入缓存单元(即,映射表存储正被执行)。当主机系统1000欲执行连续的写入操作时,如图5B至图5D所示,由于当被占用的写入缓存单元的个数非小于384个时,主机系统1000执行一个写入操作后需等待10ms才能再执行下一个写入操作。故当剩下未被占用的128个写入缓存单元(即,写入缓存单元410(384)~410(511))皆用于存储主机系统1000连续的写入数据写入时,其也需花费1280ms。藉此,当写入缓存单元410(384)~410(511)被写满时,背景工作(即,映射表存储)也执行结束,此时存储器控制器104(或存储器管理电路302)会将缓冲存储器308中所有写入缓存单元410(0)~410(511)的数据写入至可复写式非易失性存储器模块106中,以清空写入缓存单元410(0)~410(511)中的数据,用以再次接收来自主机系统1000新的写入数据或用于执行背景工作。基此,可有效地避免当背景工作正被执行且缓冲区308中写入缓存单元被占满时,主机系统1000执行写入所产生的逾时的问题。

必须了解的是,图5A至图5D所示出的示意图仅方便于理解。在另一实施例中,存储器控制器104(或存储器管理电路302)对于写入缓存单元中数据的写入方式并非按照写入缓存单元410(0)~411(511)的排列方式。其中,存储器控制器104(或存储器管理电路302)可以任意地使用缓冲存储器308中目前未被占用的部份写入缓存单元来执行背景工作,或者将主机系统1000的写入数据任意地写入缓冲存储器308中目前未被占用的写入缓存单元的其中之一。此外,存储器控制器104(或存储器管理电路302)也仅需根据目前缓冲存储器308中被占用的写入缓存单元的个数以及预先定义值,用以判断将来自主机系统1000的写入数据暂存至缓冲存储器308后,是否在预先定义时间间隔后才传送此写入数据的确认信息给主机系统1000。

图6是根据一范例实施例所示出的缓冲存储器存取方法的流程图。

请参照图6。在步骤S601中,存储器控制器104(或存储器管理电路302)会从主机系统1000接收一个写入数据。在步骤S603中,存储器控制器104(或存储器管理电路302)会判断目前缓冲存储器308的写入缓存单元410(0)~410(511)中,被占用的写入缓存单元的数目是否非小于预先定义值。

倘若目前缓冲存储器308的写入缓存单元410(0)~410(511)中,被占用的写入缓存单元的数目小于预先定义值,则在步骤S605中,存储器控制器104(或存储器管理电路302)会将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并传送对应此写入数据的确认信息给主机系统1000。

倘若目前缓冲存储器308的写入缓存单元410(0)~410(511)中,被占用的写入缓存单元的数目非小于预先定义值,则在步骤S607中,存储器控制器104(或存储器管理电路302)会将写入数据暂存至写入缓存单元之中未被占用的其中一个写入缓存单元,并在一预先定义时间间隔后传送对应此写入数据的确认信息给主机系统1000。

当该存储器控制器104(或存储器管理电路302)传送该确认信息后,主机系统1000接收到上述步骤S605或步骤S607的确认信息,主机系统1000即可以再发送另一个写入数据,而存储器控制器104(或存储器管理电路302)会再执行步骤S601以从主机系统1000接收此另一个写入数据。

综上所述,本发明提出一种两段式的缓冲存储器的存取,当缓冲存储器中的写入缓存单元被占用的数目小于预先定义值时,存储器控制器(或存储器管理电路)会直接将写入数据暂存至一个未被占用的写入缓存单元中,并立即回复写入数据的确认信息给主机系统;当缓冲存储器中的写入缓存单元被占用的数目非小于预先定义值时,存储器控制器(或存储器管理电路)会直接将写入数据暂存至一个未被占用的写入缓存单元中,并在预先定义时间间隔后才回复写入数据的确认信息给主机系统。基此,可以有效降低主机系统写入操作的延迟时间,以有效解决当缓冲存储器被写满时,主机系统写入操作等待时间过长的问题。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (18)

1.一种缓冲存储器存取方法,用于一存储器存储装置的一缓冲存储器,其特征在于,该所述存储器存储装置包括一可复写式非易失性存储器模块且所述缓冲存储器具有多个写入缓存单元,所述缓冲存储器存取方法包括:
从一主机系统接收一写入数据;
判断所述写入缓存单元之中被占用的写入缓存单元的数目是否非小于一预先定义值;
倘若所述写入缓存单元之中被占用的写入缓存单元的数目小于所述预先定义值时,将所述写入数据暂存至所述写入缓存单元之中未被占用的其中一个写入缓存单元,并且传送对应所述写入数据的一确认信息给所述主机系统;以及
倘若所述写入缓存单元之中被占用的写入缓存单元的数目非小于所述预先定义值时,将所述写入数据暂存至所述写入缓存单元之中未被占用的其中一个写入缓存单元,并且在一预先定义时间间隔后传送对应所述写入数据的所述确认信息给所述主机系统,
其中所述预先定义值是根据一第一执行时间以及所述预先定义时间间隔来设定,所述第一执行时间为所述存储器存储装置中运行的多个背景工作的多个执行时间的其中一个执行时间,且所述第一执行时间不小于所述执行时间之中的其他执行时间。
2.根据权利要求1所述的缓冲存储器存取方法,其特征在于,还包括:
记录对应在所述存储器存储装置中运行的该些背景工作的该些执行时间,并且从该些执行时间之中获取该第一执行时间,其中所述背景工作会占用所述缓冲存储器的部分所述写入缓存单元。
3.根据权利要求2所述的缓冲存储器存取方法,其特征在于,还包括:
将所述写入缓存单元的数目减去一第一数值以获得所述预先定义值,其中所述第一数值是通过所述第一执行时间除以所述预先定义时间间隔所获得。
4.根据权利要求1所述的缓冲存储器存取方法,其特征在于,还包括:
当传送所述确认信息后,从所述主机系统接收另一写入数据,并将所述另一写入数据暂存至所述缓冲存储器中。
5.根据权利要求1所述的缓冲存储器存取方法,其特征在于,还包括:
在所述缓冲存储器中的所述写入缓存单元皆被占用之后,将所述写入缓存单元中的数据写入至所述可复写式非易失性存储器模块中。
6.根据权利要求2所述的缓冲存储器存取方法,其特征在于,其中所述背景工作包括一映射表存储、一数据合并与一错误校正。
7.一种存储器控制器,用于控制一可复写式非易失性存储器模块,其特征在于,所述存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至所述可复写式非易失性存储器模块;
一缓冲存储器,电性连接至所述主机接口及所述存储器接口,所述缓冲存储器具有多个写入缓存单元;以及
一存储器管理电路,电性连接至所述主机接口、所述存储器接口与所述缓冲存储器,并且用以从所述主机系统接收一写入数据,并判断所述写入缓存单元之中被占用的写入缓存单元的数目是否非小于一预先定义值,
倘若所述写入缓存单元之中被占用的写入缓存单元的数目小于所述预先定义值时,所述存储器管理电路将所述写入数据暂存至所述写入缓存单元之中未被占用的其中一个写入缓存单元,并且传送对应所述写入数据的一确认信息给所述主机系统,
倘若所述写入缓存单元之中被占用的写入缓存单元的数目非小于所述预先定义值时,所述存储器管理电路将所述写入数据暂存至所述写入缓存单元之中未被占用的其中一个写入缓存单元,并且在一预先定义时间间隔后传送对应所述写入数据的所述确认信息给所述主机系统,
其中所述预先定义值是根据一第一执行时间以及所述预先定义时间间隔来设定,所述第一执行时间为所述存储器存储装置中运行的多个背景工作的多个执行时间的其中一个执行时间,且所述第一执行时间不小于所述执行时间之中的其他执行时间。
8.根据权利要求7所述的存储器控制器,其特征在于,所述存储器管理电路记录对应在所述存储器控制器中运行的该些背景工作的多个执行时间,并且从该些执行时间之中获取该第一执行时间,其中所述背景工作会占用所述缓冲存储器的部分所述写入缓存单元。
9.根据权利要求8所述的存储器控制器,其特征在于,所述存储器管理电路将所述写入缓存单元的数目减去一第一数值以获得所述预先定义值,其中所述第一数值是通过所述存储器管理电路将所述第一执行时间除以所述预先定义时间间隔所获得。
10.根据权利要求7所述的存储器控制器,其特征在于,当所述存储器管理电路传送所述确认信息后,所述存储器管理电路会从所述主机系统接收另一写入数据,并将所述另一写入数据暂存至所述缓冲存储器中。
11.根据权利要求7所述的存储器控制器,其特征在于,在所述缓冲存储器中的所述写入缓存单元皆被占用之后,所述存储器管理电路将所述写入缓存单元中的数据写入至所述可复写式非易失性存储器模块中。
12.根据权利要求8所述的存储器控制器,其特征在于,该些背景工作包括一映射表存储、一数据合并与一错误校正。
13.一种存储器存储装置,其特征在于,包括:
一连接接口单元,用以电性连接至一主机系统;
一可复写式非易失性存储器模块;以及
一存储器控制器,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,并且包括一缓冲存储器,其中所述缓冲存储器具有多个写入缓存单元,
所述存储器控制器用以从所述主机系统接收一写入数据,并判断所述写入缓存单元之中被占用的写入缓存单元的数目是否非小于一预先定义值,
倘若所述写入缓存单元之中被占用的写入缓存单元的数目小于所述预先定义值时,所述存储器控制器将所述写入数据暂存至所述写入缓存单元之中未被占用的其中一个写入缓存单元,并且传送对应所述写入数据的一确认信息给所述主机系统,
倘若所述写入缓存单元之中被占用的写入缓存单元的数目非小于所述预先定义值时,所述存储器控制器将所述写入数据暂存至所述写入缓存单元之中未被占用的其中一个写入缓存单元,并且在一预先定义时间间隔后传送对应所述写入数据的所述确认信息给所述主机系统,
其中所述预先定义值是根据一第一执行时间以及所述预先定义时间间隔来设定,所述第一执行时间为所述存储器存储装置中运行的多个背景工作的多个执行时间的其中一个执行时间,且所述第一执行时间不小于所述执行时间之中的其他执行时间。
14.根据权利要求13所述的存储器存储装置,其特征在于,所述存储器控制器记录对应在所述存储器存储装置中运行的该些背景工作的该些执行时间,并且从执行时间之中获取该第一执行时间,其中所述背景工作会占用所述缓冲存储器的部分所述写入缓存单元。
15.根据权利要求14所述的存储器存储装置,其特征在于,所述存储器控制器将所述写入缓存单元的数目减去一第一数值以获得所述预先定义值,其中所述第一数值是通过所述存储器控制器将所述第一执行时间除以所述预先定义时间间隔所获得。
16.根据权利要求13所述的存储器存储装置,其特征在于,当所述存储器控制器传送所述确认信息后,所述存储器控制器从所述主机系统接收另一写入数据,并将所述另一写入数据暂存至所述缓冲存储器中。
17.根据权利要求13所述的存储器存储装置,其特征在于,在所述缓冲存储器中的所述写入缓存单元皆被占用之后,所述存储器控制器将所述写入缓存单元中的数据写入至所述可复写式非易失性存储器模块中。
18.根据权利要求14所述的存储器存储装置,其特征在于,所述背景工作包括一映射表存储、一数据合并与一错误校正。
CN201510336797.7A 2015-06-17 2015-06-17 缓冲存储器存取方法、存储器控制器与存储器存储装置 CN106326142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510336797.7A CN106326142B (zh) 2015-06-17 2015-06-17 缓冲存储器存取方法、存储器控制器与存储器存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510336797.7A CN106326142B (zh) 2015-06-17 2015-06-17 缓冲存储器存取方法、存储器控制器与存储器存储装置

Publications (2)

Publication Number Publication Date
CN106326142A CN106326142A (zh) 2017-01-11
CN106326142B true CN106326142B (zh) 2019-05-21

Family

ID=57733139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510336797.7A CN106326142B (zh) 2015-06-17 2015-06-17 缓冲存储器存取方法、存储器控制器与存储器存储装置

Country Status (1)

Country Link
CN (1) CN106326142B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102890653A (zh) * 2011-07-18 2013-01-23 群联电子股份有限公司 指令执行方法、存储器控制器与存储器储存装置
CN103218310A (zh) * 2012-01-19 2013-07-24 横河电机株式会社 缓存装置、通信设备以及计算机程序产品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101888009B1 (ko) * 2012-02-28 2018-09-07 삼성전자주식회사 저장 장치
CN104769558B (zh) * 2012-11-05 2017-07-21 三菱电机株式会社 存储器控制装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102890653A (zh) * 2011-07-18 2013-01-23 群联电子股份有限公司 指令执行方法、存储器控制器与存储器储存装置
CN103218310A (zh) * 2012-01-19 2013-07-24 横河电机株式会社 缓存装置、通信设备以及计算机程序产品

Also Published As

Publication number Publication date
CN106326142A (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
US20180260317A1 (en) Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same
US8775771B2 (en) Block management method for a flash memory and flash memory controller and storage system using the same
US8606987B2 (en) Data writing method for flash memory and controller using the same
US8645613B2 (en) Data writing method for flash memory and control circuit and storage system using the same
US8296507B2 (en) Memory management and writing method and rewritable non-volatile memory controller and storage system using the same
US9009399B2 (en) Flash memory storage system and controller and data writing method thereof
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
TWI515735B (zh) 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
US10152426B2 (en) Mapping table loading method, memory control circuit unit and memory storage apparatus
US8386905B2 (en) Error correcting method, and memory controller and memory storage system using the same
US8606988B2 (en) Flash memory control circuit for interleavingly transmitting data into flash memories, flash memory storage system thereof, and data transfer method thereof
TWI467372B (zh) 指令執行方法、記憶體控制器與記憶體儲存裝置
US9037782B2 (en) Method of programming memory cells and reading data, memory controller and memory storage apparatus using the same
US8837217B2 (en) Memory storage apparatus, and memory controller and power control method
TWI479491B (zh) 記憶體控制方法、記憶體控制器與記憶體儲存裝置
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
US10120615B2 (en) Memory management method and storage controller using the same
US8892814B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
TWI454911B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8769192B2 (en) Data read method for a plurality of host read commands, and flash memory controller and storage system using the same
US9043536B2 (en) Method of recording mapping information, and memory controller and memory storage apparatus using the same
US8898370B2 (en) Data storage method for flash memory, and flash memory controller and flash memory storage system using the same
CN102375788A (zh) 为具有非易失性存储器的系统动态地分配功率预算的方法及装置
US8706952B2 (en) Flash memory storage device, controller thereof, and data programming method thereof

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
GR01 Patent grant