CN103218308B - 缓冲存储器管理方法、存储器控制器与存储器储存装置 - Google Patents
缓冲存储器管理方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN103218308B CN103218308B CN201210018820.4A CN201210018820A CN103218308B CN 103218308 B CN103218308 B CN 103218308B CN 201210018820 A CN201210018820 A CN 201210018820A CN 103218308 B CN103218308 B CN 103218308B
- Authority
- CN
- China
- Prior art keywords
- memory
- buffer
- data
- rewritable non
- buffer memory
- 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
- 239000000872 buffer Substances 0.000 title claims abstract description 222
- 230000005055 memory storage Effects 0.000 title claims abstract description 49
- 238000007726 management method Methods 0.000 title claims description 93
- 238000013507 mapping Methods 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000012937 correction Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种用于管理存储器储存装置中缓冲存储器的方法,其中此缓冲存储器是配置在具有可复写式非易失性存储器模组的存储器储存装置中。本方法包括:用一预程序化指令组将暂存在缓冲存储器中的暂存数据传送至可复写式非易失性存储器模组的缓冲区中,其中暂存数据不会被程序化至可复写式非易失性存储器模组的储存区。此方法还包括释放缓冲存储器中用以储存此暂存数据的储存空间;以及将暂存数据从缓冲区中重新载入至缓冲存储器的储存空间。藉此,本方法能够暂时的增加缓冲存储器的可用储存空间,以应付额外的运算需求。本发明另公开了一种存储器控制器与存储器储存装置。
Description
技术领域
本发明涉及一种管理缓冲存储器的技术,尤其涉及一种能暂时增加缓冲存储器的存储器空间的缓冲存储器管理方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatilememory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记型电脑。固态硬盘就是一种以快速存储器作为储存媒体的存储器储存装置。因此,近年快速存储器产业成为电子产业中相当热门的一环。
在使用可复写式非易失性存储器作为储存媒体的存储器储存装置中,通常也会配置缓冲存储器,用以暂存程序码或是数据。由于成本的考量,这样的缓冲存储器并不会有很大的存储器空间。当缓冲存储器的存储器空间不够时,存储器储存装置便无法正常的运作。然而,在存储器储存装置执行一些程序时,需要一些额外的存储器空间。例如,要排序大小为n的数据时,通常至少需要大小为log(n)的存储器空间。因此,若缓冲存储器中的存储器空间不足,便无法执行上述的排序程序。因此,如何能够快速且暂时地空出缓冲存储器的储存空间,是此领域技术人员所关心的议题。
发明内容
本发明提出一种缓冲存储器管理方法、存储器控制器与存储器储存装置,其能够暂时且快速的空出缓冲存储器的储存空间。
本发明一范例实施例提出一种用于操作存储器储存装置的缓冲存储器的缓冲存储器管理方法,其中此存储器储存装置包括可复写式非易失性存储器模组且此可复写式非易失性存储器模组包括缓冲区与储存区。此缓冲存储器管理方法包括用一预程序化指令组将暂存数据从缓冲存储器中传送至缓冲区。根据此预程序化指令组,可复写式非易失性存储器模组不会将暂存数据程序化至上述的储存区中。此方法还包括在缓冲存储器中释放用以储存上述暂存数据的储存空间。此方法还包括,之后,将暂存数据从可复写式非易失性存储器模组的缓冲区重新载入至缓冲存储器的储存空间。
在本发明的一范例实施例中,上述释放缓冲存储器的储存空间的步骤还包括:判断是否要执行特定任务或判断缓冲存储器的空间是否不足;以及,当要执行此特定任务或缓冲存储器的空间不足时,释放缓冲存储器的储存空间。
在本发明的一范例实施例中,上述缓冲存储器管理方法还包括:在将暂存数据从可复写式非易失性存储器模组的缓冲区重新载入至缓冲存储器的储存空间之前,利用此储存空间来排序记录在全域混乱表中的信息。
在本发明的一范例实施例中,上述将暂存数据从可复写式非易失性存储器模组的缓冲区中重新载入至缓冲存储器的储存空间的步骤包括:使用缓冲区读取指令将暂存数据从可复写式非易失性存储器模组的缓冲区读取至缓冲存储器的储存空间。
在本发明的一范例实施例中,上述缓冲存储器管理方法还包括:在暂存数据储存在缓冲区的期间,停止存取可复写式非易失性存储器模组的储存区中的数据。
在本发明的一范例实施例中,上述缓冲存储器管理方法还包括:将缓冲存储器划分为多个区域,而上述的储存空间为这些区域的其中之
在本发明的一范例实施例中,上述缓冲存储器管理方法还包括:设定上述的多个区域包括映射表暂存区、变量暂存区、固件码暂存区、全域混乱表暂存区、存取数据暂存区与剩余区域。
以另外一个角度来说,本发明一范例实施例提出一种存储器控制器,用以控制可复写式非易失性存储器模组,其中可复写式非易失性存储器模组包括一缓冲区与储存区。此存储器控制器包括主机接口、存储器接口、缓冲存储器与存储器管理电路。主机接口是用以电性连接至主机系统。存储器接口是用以电性连接至可复写式非易失性存储器模组。存储器管理电路是电性连接至主机接口、存储器接口与缓冲存储器。在此,存储器管理电路会使用一预程序化指令组来将一暂存数据从缓冲存储器中传送至缓冲区。根据此预程序化指令,可复写式非易失性存储器模组并不会将暂存数据程序化(program)至储存区中。此外,存储器管理电路还用以在缓冲存储器中释放用以储存上述暂存数据的储存空间。之后,存储器管理电路还用以将暂存数据从可复写式非易失性存储器模组的缓冲区重新载入至缓冲存储器的储存空间。
在本发明的一范例实施例中,上述存储器管理电路还用以判断是否要执行一特定任务或判断缓冲存储器的空间是否不足。当要执行此特定任务或缓冲存储器的空间不足时,存储器管理电路会释放缓冲存储器的储存空间。
在本发明的一范例实施例中,在将暂存数据从可复写式非易失性存储器模组的缓冲区重新载入至缓冲存储器的储存空间之前,存储器管理电路还利用储存空间来排序记录在全域混乱表中的信息。
在本发明的一范例实施例中,上述存储器管理电路使用缓冲区读取指令将暂存数据从可复写式非易失性存储器模组的缓冲区读取至缓冲存储器的储存空间。
在本发明的一范例实施例中,上述暂存数据储存在缓冲区的期间,存储器管理电路停止存取可复写式非易失性存储器模组的储存区中的数据。
在本发明的一范例实施例中,上述存储器管理电路还用以将缓冲存储器划分为多个区域,并设定储存空间为这些区域的其中之一。
在本发明的一范例实施例中,上述多个区域包括映射表暂存区、变量暂存区、固件码暂存区、全域混乱表暂存区、存取数据暂存区与剩余区域。
以另外一个角度来说,本发明一范例实施例提出一种存储器储存装置,其包括连接器、可复写式非易失性存储器模组与存储器控制器。连接器是用以电性连接至主机系统。可复写式非易失性存储器模组包括缓冲区与储存区。存储器控制器是电性连接至连接器与可复写式非易失性存储器模组,并且具有缓冲存储器。在此,存储器控制器使用一预程序化指令组将暂存数据从缓冲存储器中传送至缓冲区。并且,根据此预程序化指令组,可复写式非易失性存储器模组不会将暂存数据程序化至储存区。存储器控制器用以将暂存在缓冲存储器中的该暂存数据传送至可复写式非易失性存储器模组的该缓冲区中,暂存数据不会被程序化至储存区。存储器控制器会在缓冲存储器中释放用以储存暂存数据的储存空间。之后,存储器控制器还用以将暂存数据从可复写式非易失性存储器模组的缓冲区重新载入至缓冲存储器的储存空间。
在本发明的一范例实施例中,上述存储器控制器还用以判断是否要执行一特定任务或判断缓冲存储器的空间是否不足。当要执行特定任务或缓冲存储器的空间不足时,存储器控制器会释放缓冲存储器的储存空间。
在本发明的一范例实施例中,在将暂存数据从可复写式非易失性存储器模组的缓冲区重新载入至缓冲存储器的储存空间之前,存储器控制器利用储存空间来排序记录在全域混乱表中的信息。
在本发明的一范例实施例中,上述存储器控制器使用缓冲区读取指令将暂存数据从可复写式非易失性存储器模组的缓冲区读取至缓冲存储器的储存空间。
在本发明的一范例实施例中,上述暂存数据储存在缓冲区的期间,存储器控制器会停止存取可复写式非易失性存储器模组的储存区中的数据。
在本发明的一范例实施例中,上述存储器控制器还用以将缓冲存储器划分为多个区域,上述的储存空间为这些区域的其中之一。
在本发明的一范例实施例中,上述多个区域包括映射表暂存区、变量暂存区、固件码暂存区、全域混乱表暂存区、存取数据暂存区与剩余区域。
在本发明的一范例实施例中,上述可复写式非易失性存储器模组还包括至少一个存储器晶片并且每一个存储器晶片包括多个存储器晶粒。并且,上述的缓冲区与储存区是被配置在相同的存储器晶片中。
在本发明的一范例实施例中,上述的缓冲区与储存区是被配置在相同的存储器晶粒中。
基于上述,本发明范例实施例提出的缓冲区管理方法、存储器控制器与存储器储存装置,可以暂时地空出缓冲存储器的储存空间。并且,由于将数据暂存在可复写式非易失性存储器模组的缓冲区所需的时间短于将数据暂存至可复写式非易失性存储器模组的储存区所需的时间,因此,缓冲存储器的可用储存空间可以快速且暂时的增加。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
附图说明
图1A是根据一范例实施例所示的主机系统与存储器储存装置。
图1B是根据一范例实施例所示的电脑、输入/输出装置与存储器储存装置的示意图。
图1C是根据一范例实施例所示的主机系统与存储器储存装置的示意图。
图2A是显示图1A所示的存储器储存装置的概要方框图。
图2B是根据一范例实施例所示的可复写式非易失性存储器模组的方框图。
图3是根据一范例实施例所示的存储器控制器的概要方框图。
图4是根据一范例实施例说明空出缓冲存储器的部分存储器空间的示意图。
图5是根据一范例实施例所示的缓冲区管理方法的流程图。
主要元件符号说明:
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:可复写式非易失性存储器模组
120:缓冲区
140:储存区
160:存储器晶粒
122:I/O控制接口
124:控制电路
202:存储器管理电路
204:主机接口
206:存储器接口
208:缓冲存储器
402:映射表暂存区
404:变量暂存区
406:固件码暂存区
408:全域混乱表暂存区
410:存取数据暂存区
420:暂存数据
440:储存空间
S502、S504、S506、S508:缓冲存储器管理方法的步骤
具体实施方式
一般而言,存储器储存装置(也称,存储器储存系统)包括可复写式非易失性存储器模组与控制器(也称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据一范例实施例所示的主机系统与存储器储存装置。
请参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(randomaccessmemory,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或固态硬盘(SolidStateDrive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memorystick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是显示图1A所示的存储器储存装置的概要方框图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模组106。
在本范例实施例中,连接器102是相容于序列先进附件(SerialAdvancedTechnologyAttachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102也可以是符合平行高级技术附件(ParellelAdvancedTechnologyAttachment,PATA)标准、电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,IEEE)1394标准、高速周边零件连接接口(PeripheralComponentInterconnectExpress,PCIExpress)标准、通用串行总线(UniversalSerialBus,USB)标准、安全数字(SecureDigital,SD)接口标准、记忆棒(MemoryStick,MS)接口标准、多媒体储存卡(MultiMediaCard,MMC)接口标准、小型快速(CompactFlash,CF)接口标准、整合式驱动电子接口(IntegratedDeviceElectronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模组106中进行数据的写入、读取与清除等运作。
可复写式非易失性存储器模组106是电性连接至存储器控制器104,并且用以储存主机系统1000所写入的数据。并且,可复写式非易失性存储器模组106具有缓冲区120与储存区140。
图2B是根据一范例实施例所示的可复写式非易失性存储器模组的方框图。
请参照图2B,在一范例实施例中,可复写式非易失性存储器模组106还包括I/O控制接口122,控制电路124与至少一个存储器晶片(未示出),且每一个存储器晶片包括多个存储器晶粒(例如,存储器晶粒160),每一个存储器晶粒则包括多个实体区块。I/O控制接口122是用以从存储器控制器104接收指令与数据。控制电路124是用以控制可复写式非易失性存储器模组106的整体运作,例如将数据写入至缓冲区120与储存区140。在本范例实施例中,缓冲区120与储存区140封装在相同的存储器晶片中。在一范例实施例中,缓冲区120与储存区140属于同一个存储器晶粒(die)160。然而,在其他范例实施例中,缓冲区120与储存区140也可以属于不同的存储器晶粒,本发明并不限于此。
缓冲区120是用以暂存来自于存储器控制器104或是暂存储存区140的数据。具体来说,在可复写式非易失性存储器模组106中写入数据的过程包括数据传输以及数据程序化两个部分。在数据传输的部分,快速存储器控制器104的存储器管理电路202会将欲写入的数据传输至缓冲区120。而在数据程序化的部分,欲写入的数据会从缓冲区120中程序化至储存区140。在一范例实施例中,缓冲区120可为易失性存储器,例如动态随机存取存储器(dynamicrandomaccessmemory,DRAM),但是缓冲区120也可以是静态随机存取存储器(staticrandomaccessmemory,SRAM)、磁电阻式随机存取存储器(MagnetoresistiveRandomAccessMemory,MRAM)、快取随机存取存储器(CacheRAM)、同步动态随机存取存储器(synchronousdynamicrandomaccessmemory,SDRAM)、视频随机存取存储器(VideoRAM,VRAM)、嵌入式动态随机存取存储器(embeddedDRAM,eDRAM)或其他的存储器。在另一范例实施例中,缓冲区120可为非易失性存储器,例如或非门快速存储器(NORFlash)或其他的存储器。
储存区140具有多个实体区块。例如,这些实体区块可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体区块分别具有多数个实体页面,并且每一实体页面具有至少一实体扇区,其中属于同一个实体区块的实体页面可被独立地写入且被同时地清除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面具有8个实体扇区(sector)。也就是说,在每一实体扇区为512比特组(byte)的例子中,每一实体页面的容量为4千比特组(Kilobyte,K)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为清除的最小单位。也即,每一实体区块含有最小数目的一并被清除的记忆胞。实体页面为程序化的最小单元。即,实体页面为写入数据的最小单元。每一实体页面通常包括数据比特区与冗余比特区。数据比特区用以储存使用者的数据,而冗余比特区用以储存系统的数据(例如,错误检查与校正码)。
在本范例实施例中,可复写式非易失性存储器模组106为多层记忆胞(MultiLevelCell,MLC)NAND快速存储器模组,即一个记忆胞中可储存至少2个比特数据。然而,本发明不限于此,可复写式非易失性存储器模组106也可是单层记忆胞(SingleLevelCell,SLC)NAND快速存储器模组、其他快速存储器模组或其他具有相同特性的存储器模组。
图3是根据一范例实施例所示的存储器控制器的概要方框图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204、存储器接口206与缓冲存储器208。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,此些控制指令会被执行以进行数据的写入、读取与清除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与清除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以程序码型式储存于可复写式非易失性存储器模组106的特定区域(例如,存储器模组中专用于存放系统数据的系统区)中。特别是,此只读存储器具有驱动码,并且当存储器控制器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标准、PCIExpress标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模组106。也就是说,欲写入至可复写式非易失性存储器模组106的数据会经由存储器接口206转换为可复写式非易失性存储器模组106所能接受的格式。
缓冲存储器208是用以暂存存储器管理电路202的程序码或者数据。例如,缓冲存储器208为静态随机存取存储器。然而,必须了解的是,缓冲存储器208也可以是动态随机存取存储器、磁电阻式随机存取存储、快取随机存取存储器、同步动态随机存取存储器、视频随机存取存储器、或非门快速存储器、嵌入式动态随机存取存储器或其他的存储器。
此外,在一范例实施例中,存储器控制器104可还包括电源管理电路与错误检查与校正电路(未示出)。电源管理电路是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。错误检查与校正电路是电性连接至存储器管理电路202并且用以执行一错误校正程序以确保数据的正确性。具体来说,当主机接口204从主机系统1000中接收到主机写入指令时,错误检查与校正电路会为对应此主机写入指令的写入数据(也称为更新数据)产生对应的错误检查与校正码(ErrorCheckingandCorrectingCode,ECCCode),并且存储器管理电路202会将此更新数据与对应的错误校正码写入至可复写式非易失性存储器模组106中。之后,当存储器管理电路202从可复写式非易失性存储器模组106中读取数据时会同时读取此数据对应的错误校正码,并且错误检查与校正电路会依据此错误校正码对所读取的数据执行错误校正程序。
在本范例实施例中,当缓冲存储器208的储存空间不足时,存储器管理电路202便无法正常地执行。例如,当存储器管理电路202要排序一全域混乱表(globalrandomtable)时,便需要额外的储存空间来储存此全域混乱表的内容。详细来说,全域混乱表是记录着一逻辑存取单位与一实体存取单位的映射关系。在一范例实施例中,此逻辑存取单位是一个逻辑页面(logicalpage),而实体存取单位是一个实体页面(physicalpage)。当存储器控制器104对可复写式非易失性存储器模组106中的一个实体页面一直重复的写入数据时,若使用以区块为基准的映射关系(逻辑区块映射至实体区块),会使得被写入的实体区块必须一直被整并(merge),使得写入效率降低。因此,在这样的情况,存储器控制器104会使用以页面为基准的映射关系(逻辑页面映射至实体页面),并维护一个全域混乱表来维护以页面为基准的映射关系。然而,由于以页面为基准的映射关系会比以区块为基准的映射关系较为多,因此使得全域混乱表的内容也较为复杂。为了维护且能有效的存取全域混乱表,存储器控制器104会不定时的排序全域混乱表的信息。而在一般排序过程中,必须使用额外的存储器空间。例如,若使用快速排序演算法(quicksort)来排序大小为n的数据,则必须额外的使用大小为log(n)的存储器空间来执行此快速排序演算法法。因此,当缓冲存储器208中的空间不够以执行排序全域混乱表的演算法时,存储器管理电路202就必须暂时地空出缓冲存储器208的部分存储器空间,藉此完成此排序。
图4是根据一范例实施例说明空出缓冲存储器的部分存储器空间的示意图。
请参考图4,一般来说,存储器控制器104的存储器管理电路202会将缓冲存储器208的储存空间划分为多个区域,以储存数据。举例来说,存储器管理电路202会将缓冲存储器208划分为映射表(mappingtable)暂存区402、变量暂存区404、固件码暂存区406、全域混乱表暂存区408与存取数据暂存区410与其他剩余区域,并且暂存数据420是储存在此剩余区域(即,储存空间440)。在本范例实施例中,映射表暂存区402用以暂存映射表的至少一部分,其中此映射表用以是储存逻辑地址与实体地址之间的映射关系。变量暂存区404是用以储存存储器管理电路202于运作过程中所使用的至少一变量。固件码暂存区406是用以储存存储器管理电路202所执行的至少一程序码。全域混乱表暂存区408是用以暂存全域混乱表的至少一部分。而存取数据暂存区410是用以暂存欲写入至或读取自可复写式非易失性存储器模组106的数据。
如上所述,由于缓冲存储器208的储存空间会事先被规划,以储存存储器储存装置100运作时所需暂存的程序或数据。因此,当需要执行上述排序全域混乱表的额外运算时,存储器管理电路202必须释放缓冲存储器208的储存空间。例如,在本范例实施例中,存储器管理电路202会先利用一指令组将暂存在缓冲存储器208中的暂存数据420传送至可复写式非易失性存储器模组106的缓冲区120中,并且,此指令组并不会要求将暂存数据420程序化(program)至储存区140中。
具体来说,在本范例实施例中,存储器管理电路202可使用一个预程序化指令组来将暂存数据420从缓冲存储器208中传送至缓冲区120。例如,此预程序化指令组是由“写入指令”栏位、“地址”栏位、“数据”栏位所组成,其中“写入指令”栏位是用以指示可复写式非易失性存储器模组106此指令为一写入指令;“地址”栏位是记录欲写入数据的存储器地址;并且“数据”栏位是记录欲写入的数据的内容。值得注意的是,在一般的数据存取中,一个写入指令除了包括上述“写入指令”栏位、“地址”栏位以及“数据”栏位以外,还会包括一个对应“写入指令”栏位的”执行指令”栏位,其用以指示可复写式非易失性存储器模组106开始将欲写入的数据程序化至储存区140中。而在本范例实施例中,存储器管理电路202所使用的预程序化指令组并不包括对应“写入指令”栏位的”执行指令”栏位。因此可复写式非易失性存储器模组106在接收到此预程序化指令组以后,并不会将暂存数据420程序化至储存区140。另一方面,由于可复写式非易失性存储器模组106并不会将暂存数据420程序化至储存区140,因此省去了执行程序化的时间。换句话说,存储器控制器104可以快速将暂存数据420传送至可复写式非易失性存储器模组106,藉此让储存空间440变成闲置且可用的。
存储器管理电路202在将暂存数据420传送至缓冲区120以后,存储器管理电路202会释放缓冲存储器208的储存空间440,也即存储器管理电路202可将一新数据写入至储存空间440,其中,储存空间440中的暂存数据420可被新数据覆写。此时,存储器管理电路202便可以利用储存空间440来排序记录在全域混乱表中的信息。在存储器管理电路完成全域混乱表的排序以后,存储器管理电路202会将暂存数据420从可复写式非易失性存储器模组160的缓冲区120中重新载入至缓冲存储器208的储存空间440。具体来说,存储器管理电路202是使用一缓冲区读取指令来将暂存数据420从可复写式非易失性存储器模组160的缓冲区120读取至缓冲存储器208的储存空间440。例如,此缓冲区读取指令是由“读取指令”栏位、“行地址”(columnaddress)栏位、对应”读取指令”栏位的“执行指令”栏位所组成。在此,“读取指令”栏位是用以指示可复写式非易失性存储器模组160此指令为一读取指令欲读取一数据;“行地址”栏位则用以记录欲读取数据的行地址;并且对应”读取指令”栏位的“执行指令”栏位则用以指示可复写式非易失性存储器模组160开始读取数据。特别是,根据此缓冲区读取指令,可复写式非易失性存储器模组160仅会将缓冲区120的数据提供给存储器管理电路202,而不会再从储存区140读取数据。基此,当接收到此缓冲区读取指令以后,可复写式非易失性存储器模组160便会从缓冲区120中对应上述读取数据的存储器地址中,将暂存数据420传送给存储器控制器104,并且存储器管理电路202会将数据载入至缓冲存储器208的储存空间440。如此一来,便完成了暂时增加缓冲存储器208的可用存储器空间的程序。
在另一范例实施例中,在暂存数据420储存在缓冲区120的期间,存储器管理电路202还停止存取可复写式非易失性存储器模组106的储存区140中的数据。具体来说,由于在存取储存区140时,所有的数据都会被暂存在缓冲区120中。因此,在暂存数据420储存在缓冲区120的期间存储器管理电路202停止存取储存区140中的数据,由此避免储存在缓冲区120的暂存数据420被覆写而遗失。
值得注意的是,本范例实施例中存储器控制器104在将暂存数据420传送至缓冲区120后,使用储存空间440来排序全域混乱表。然而,在其他范例实施例中,存储器控制器104也可以使用储存空间440来执行其他的程序,本发明并不限制储存空间440的用途。举例来说,存储器控制器104还会判断是否要执行一特定任务或判断缓冲存储器208的空间是否不足。例如,此特定任务为全域混乱表的排序任务,但本发明并不限制此特定任务的内容。如果要执行此特定任务,则存储器控制器104会释放储存空间440来执行此特定任务。或者,当存储器控制器104判断缓冲存储器208的空间不足时,便可以释放储存空间440。另一方面,存储器控制器104也可以将缓冲存储器208中的任何数据当做暂存数据420并传送至缓冲区120,藉此暂时地增加缓冲存储器208的可使用储存空间。本发明也不限制暂存数据420的内容。或者是,存储器控制器104可以将缓冲存储器208中的任何一个区域(例如,变量暂存区404)的存储器空间释放。本发明也不限制所释放的存储器空间的位置。
图5是根据一范例实施例所示的缓冲区管理方法的流程图。
在步骤S502中,存储器控制器104的存储器管理电路202将暂存在缓冲存储器208中的暂存数据传送至可复写式非易失性存储器模组106的缓冲区120中,其中暂存数据不会被程序化至可复写式非易失性存储器模组106的储存区140。在步骤S504中,存储器管理电路202会释放缓冲存储器208中用以储存上述暂存数据的储存空间。之后,在步骤S506中,存储器管理电路202会利用此储存空间执行暂时性的运作。例如,执行上述排序全域混乱表的排序。最后,在步骤S508中,存储器管理电路202会将暂存数据从可复写式非易失性存储器模组106的缓冲区120重新载入至缓冲存储器208的储存空间。图5中各步骤已详细说明如上,在此便不再赘述。
综上所述,本发明范例实施例所提出的缓冲存储器管理方法、存储器控制器与存储器储存装置,可以将缓冲存储器中的暂存数据利用一预程序化指令组传送至缓冲区,并且此暂存数据并不会被程序化至可复写式非易失性存储器模组的储存区。如此一来,缓冲存储器中原本用以储存暂存数据的储存空间便可以被释放,用以执行存储器控制器的其他程序。特别是,相较于将数据搬移至可复写式非易失性存储器模组的储存区,将暂存数据暂存至可复写式非易失性存储器模组的缓冲区所需的时间较短,因此,缓冲存储器的可用储存空间可暂时且快速地被增加。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,当可作些许更动与润饰,而不脱离本发明的精神和范围。
Claims (23)
1.一种缓冲存储器管理方法,用于操作一存储器储存装置的一缓冲存储器,其中该存储器储存装置包括一可复写式非易失性存储器模组且该可复写式非易失性存储器模组包括一缓冲区与一储存区,该缓冲存储器管理方法包括:
用一预程序化指令组将一暂存数据从该缓冲存储器中传送至该缓冲区,其中根据该预程序化指令组,该可复写式非易失性存储器模组不会将该暂存数据程序化至该储存区;
释放该缓冲存储器的一储存空间,其中该储存空间用以储存该暂存数据;以及
将该暂存数据从该可复写式非易失性存储器模组的该缓冲区重新载入至该缓冲存储器的该储存空间。
2.根据权利要求1所述的缓冲存储器管理方法,其中释放该缓冲存储器的该储存空间的步骤还包括:
判断是否要执行一特定任务或判断该缓冲存储器的空间是否不足;以及
当要执行该特定任务或该缓冲存储器的空间不足时,释放该缓冲存储器的该储存空间。
3.根据权利要求1所述的缓冲存储器管理方法,其中还包括:
在将该暂存数据从该可复写式非易失性存储器模组的该缓冲区重新载入至该缓冲存储器的该储存空间之前,利用该储存空间来排序记录在一全域混乱表中的信息。
4.根据权利要求1所述的缓冲存储器管理方法,其中将该暂存数据从该可复写式非易失性存储器模组的该缓冲区中重新载入至该缓冲存储器的该储存空间的步骤包括:
使用一缓冲区读取指令将该暂存数据从该可复写式非易失性存储器模组的该缓冲区读取至该缓冲存储器的该储存空间。
5.根据权利要求1所述的缓冲存储器管理方法,其中还包括:
在该暂存数据储存在该缓冲区的期间,停止存取该可复写式非易失性存储器模组的该储存区中的数据。
6.根据权利要求1所述的缓冲存储器管理方法,其中还包括:
将该缓冲存储器划分为多个区域,该储存空间为该些区域的其中之一。
7.根据权利要求6所述的缓冲存储器管理方法,其中还包括:
该些区域包括一映射表暂存区、一变量暂存区、一固件码暂存区、一全域混乱表暂存区、一存取数据暂存区与一剩余区域。
8.一种存储器控制器,用以控制一可复写式非易失性存储器模组,该可复写式非易失性存储器模组包括一缓冲区与一储存区,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模组;
一缓冲存储器;以及
一存储器管理电路,电性连接至该主机接口、该存储器接口与该缓冲存储器,
其中该存储器管理电路使用一预程序化指令组将一暂存数据从该缓冲存储器中传送至该缓冲区,其中根据该预程序化指令,该可复写式非易失性存储器模组并不会将该暂存数据程序化至该储存区,
其中该存储器管理电路还用以释放该缓冲存储器的一储存空间,其中该储存空间用以储存该暂存数据,
其中该存储器管理电路还用以将该暂存数据从该可复写式非易失性存储器模组的该缓冲区重新载入至该缓冲存储器的该储存空间。
9.根据权利要求8所述的存储器控制器,其中该存储器管理电路还用以判断是否要执行一特定任务或判断该缓冲存储器的空间是否不足,当要执行该特定任务或该缓冲存储器的空间不足时,该存储器管理电路释放该缓冲存储器的该储存空间。
10.根据权利要求8所述的存储器控制器,其中在将该暂存数据从该可复写式非易失性存储器模组的该缓冲区重新载入至该缓冲存储器的该储存空间之前,该存储器管理电路利用该储存空间来排序记录在一全域混乱表中的信息。
11.根据权利要求8所述的存储器控制器,其中该存储器管理电路使用一缓冲区读取指令将该暂存数据从该可复写式非易失性存储器模组的该缓冲区读取至该缓冲存储器的该储存空间。
12.根据权利要求8所述的存储器控制器,其中在该暂存数据储存在该缓冲区的期间,该存储器管理电路停止存取该可复写式非易失性存储器模组的该储存区中的数据。
13.根据权利要求8所述的存储器控制器,其中该存储器管理电路还用以将该缓冲存储器划分为多个区域,该储存空间为该些区域的其中之一。
14.根据权利要求13所述的存储器控制器,其中该些区域包括一映射表暂存区、一变量暂存区、一固件码暂存区、一全域混乱表暂存区、一存取数据暂存区与一剩余区域。
15.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模组,包括一缓冲区与一储存区;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模组,并且包括一缓冲存储器,
其中该存储器控制器使用一预程序化指令组将一暂存数据从该缓冲存储器中传送至该缓冲区,其中根据该预程序化指令组,该可复写式非易失性存储器模组不会将该暂存数据程序化至该储存区,
其中该存储器控制器还用以释放该缓冲存储器的一储存空间,其中该储存空间用以储存该暂存数据,
其中该存储器控制器还用以将该暂存数据从该可复写式非易失性存储器模组的该缓冲区重新载入至该缓冲存储器的该储存空间。
16.根据权利要求15所述的存储器储存装置,其中该存储器控制器还用以判断是否要执行一特定任务或判断该缓冲存储器的空间是否不足,当要执行该特定任务或该缓冲存储器的空间不足时,该存储器控制器释放该缓冲存储器的该储存空间。
17.根据权利要求15所述的存储器储存装置,其中在将该暂存数据从该可复写式非易失性存储器模组的该缓冲区重新载入至该缓冲存储器的该储存空间之前,该存储器控制器利用该储存空间来排序记录在一全域混乱表中的信息。
18.根据权利要求15所述的存储器储存装置,其中该存储器控制器使用一缓冲区读取指令将该暂存数据从该可复写式非易失性存储器模组的该缓冲区读取至该缓冲存储器的该储存空间。
19.根据权利要求15所述的存储器储存装置,其中在该暂存数据储存在该缓冲区的期间,该存储器控制器停止存取该可复写式非易失性存储器模组的该储存区中的数据。
20.根据权利要求15所述的存储器储存装置,其中该存储器控制器还用以将该缓冲存储器划分为多个区域,该储存空间为该些区域的其中之一。
21.根据权利要求20所述的存储器储存装置,其中该些区域包括一映射表暂存区、一变量暂存区、一固件码暂存区、一全域混乱表暂存区、一存取数据暂存区与一剩余区域。
22.根据权利要求15所述的存储器储存装置,其中该可复写式非易失性存储器模组还包括至少一存储器晶片并且每一该些存储器晶片包括多个存储器晶粒,其中该缓冲区与该储存区是被配置在相同的该存储器晶片中。
23.根据权利要求15所述的存储器储存装置,其中该可复写式非易失性存储器模组还包括至少一存储器晶片并且每一该些存储器晶片包括多个存储器晶粒,其中该缓冲区与该储存区是被配置在相同的存储器晶粒中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210018820.4A CN103218308B (zh) | 2012-01-20 | 2012-01-20 | 缓冲存储器管理方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210018820.4A CN103218308B (zh) | 2012-01-20 | 2012-01-20 | 缓冲存储器管理方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218308A CN103218308A (zh) | 2013-07-24 |
CN103218308B true CN103218308B (zh) | 2016-06-29 |
Family
ID=48816124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210018820.4A Active CN103218308B (zh) | 2012-01-20 | 2012-01-20 | 缓冲存储器管理方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218308B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6094303B2 (ja) * | 2013-03-25 | 2017-03-15 | 富士通株式会社 | 演算処理装置、情報処理装置及び情報処理装置の制御方法 |
TWI604306B (zh) * | 2016-08-08 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置、記憶體控制器及其資料管理方法 |
CN106681652B (zh) * | 2016-08-26 | 2019-11-19 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN114333930B (zh) * | 2021-12-23 | 2024-03-08 | 合肥兆芯电子有限公司 | 多通道存储器存储装置、控制电路单元及其数据读取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763895A (zh) * | 2008-10-08 | 2010-06-30 | 三星电子株式会社 | 具有随机化器/去随机化器的数据存储系统和设备 |
CN102243603A (zh) * | 2010-05-13 | 2011-11-16 | 美光科技公司 | 在编程失败之后具有可存取信息的存储器缓冲器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000251035A (ja) * | 1999-02-26 | 2000-09-14 | Hitachi Ltd | メモリカード |
TWI397821B (zh) * | 2009-01-19 | 2013-06-01 | Phison Electronics Corp | 資料串傳送方法、系統及其控制器 |
-
2012
- 2012-01-20 CN CN201210018820.4A patent/CN103218308B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763895A (zh) * | 2008-10-08 | 2010-06-30 | 三星电子株式会社 | 具有随机化器/去随机化器的数据存储系统和设备 |
CN102243603A (zh) * | 2010-05-13 | 2011-11-16 | 美光科技公司 | 在编程失败之后具有可存取信息的存储器缓冲器 |
Also Published As
Publication number | Publication date |
---|---|
CN103218308A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US20150161042A1 (en) | Memory management method, memory controlling circuit unit, and memory storage device | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
TW201508748A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107818808A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN103136111B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN107544922A (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN107357520B (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
CN103914391B (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN103218308B (zh) | 缓冲存储器管理方法、存储器控制器与存储器储存装置 | |
CN103577344B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102800357B (zh) | 程序码载入与存取方法、存储器控制器与存储器储存装置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104657083B (zh) | 数据写入方法、存储器储存装置、存储器控制电路单元 | |
CN103513930A (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
CN103186470B (zh) | 存储器储存装置及其存储器控制器与数据写入方法 | |
CN102543184B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN104731710A (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
CN104238956A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN102736985B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |