数据写入方法、存储器控制器与储存装置.pdf

上传人:大师****2 文档编号:1486723 上传时间:2018-06-17 格式:PDF 页数:49 大小:1.60MB
返回 下载 相关 举报
摘要
申请专利号:

CN201110256271.X

申请日:

2011.08.31

公开号:

CN102968385A

公开日:

2013.03.13

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20110831|||公开

IPC分类号:

G06F12/08; G06F13/16

主分类号:

G06F12/08

申请人:

群联电子股份有限公司

发明人:

叶志刚

地址:

中国台湾苗栗县

优先权:

专利代理机构:

北京市柳沈律师事务所 11105

代理人:

史新宏

PDF下载: PDF下载
内容摘要

本发明是关于一种用于可复写式非易失性存储器模块的数据写入方法及使用此方法的存储器控制器与储存装置。本方法包括提取物理单元作为全局随机区并且建立全局随机区搜寻表以记录对应暂存于全局随机区中的更新数据所属的逻辑页面的更新信息。本方法还包括接收欲储存至一逻辑单元的更新数据;以及为此逻辑单元配置索引编号,将此更新数据写入至全局随机区中并且使用对应此逻辑单元的索引编号在全局随机区搜寻表中记录对应的更新信息。基此,可使用较小的全局随机区搜寻表来记录对应暂存于使用全局随机区的更新数据所属的逻辑页面的更新信息。

权利要求书

权利要求书一种数据写入方法,用于一可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个物理区块,每一该多个物理区块具有多个物理页面,该多个物理区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该些物理区块被分组为多个物理单元,该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,多个逻辑单元被配置以映射该数据区的该些物理单元,并且每一该些逻辑单元具有多个逻辑页面,该数据写入方法包括:
从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该多个已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元;
建立一全局随机区搜寻表以记录在该全局随机区中对应该些已更新逻辑页面的多个更新信息;
接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元之中的一第一逻辑单元;
判断该全局随机区是否储存有属于该第一逻辑单元的数据;
当该全局随机区未储存有属于该第一逻辑单元的数据时,判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数;以及
当该些已更新逻辑单元的数目小于该预设数目时,为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。
根据权利要求1所述的数据写入方法,还包括:
当该全局随机区储存有属于该第一逻辑单元的数据时,将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。
根据权利要求1所述的数据写入方法,还包括:
当该些已更新逻辑单元的数目非小于该预设数目时,从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存属于该第一逻辑单元的数据。
根据权利要求1所述的数据写入方法,还包括:
记录对应每一该些逻辑单元的一写入次数;以及
根据对应该些逻辑单元的该些写入次数将该些逻辑单元区分为一热逻辑区与一冷逻辑区。
根据权利要求4所述的数据写入方法,还包括:
在判断该全局随机区是否储存有属于该第一逻辑单元的数据之前还判断该第一逻辑单元是否属于该冷逻辑区;以及
仅当该第一逻辑单元非属于该冷逻辑区时,才执行上述判断该全局随机区是否储存有属于该第一逻辑单元的数据的步骤。
根据权利要求5所述的数据写入方法,还包括:
当该第一逻辑单元属于该冷逻辑区时,从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中。
一种数据写入方法,用于一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个物理区块,每一该多个物理区块具有多个物理页面,该多个物理区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该些物理区块被分组为多个物理单元,该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,多个逻辑单元被配置以映射该数据区的该些物理单元,并且每一该些逻辑单元具有多个逻辑页面,该数据写入方法包括:
从该闲置区的该些物理单元中提取至少一个物理单元以作为一第一全局随机区且从该闲置区的该些物理单元中提取至少一个物理单元以作为一第二全局随机区,其中该第一全局随机区暂存属于多个第一已更新逻辑页面的数据,该第二全局随机区暂存属于多个第二已更新逻辑页面的数据,该些第一已更新逻辑页面属于多个第一已更新逻辑单元,并且该些第二已更新逻辑页面属于多个第二已更新逻辑单元;
建立一第一全局随机区搜寻表以记录在该第一全局随机区中对应该些第一已更新逻辑页面的多个更新信息和建立一第二全局随机区搜寻表以记录在该第二全局随机区中对应该些第二已更新逻辑页面的多个更新信息;
接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元中的一第一逻辑单元;
判断该第一全局随机区或该第二全局随机区是否储存有属于该第一逻辑单元的数据;
当该第一全局随机区与该第二全局随机区皆未储存有属于该第一逻辑单元的数据时,判断该些第一已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数;
当该些第一已更新逻辑单元的数目小于该预设数目时,为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该第一全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该第一全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息;
当该些第一已更新逻辑单元的数目非小于该预设数目时,判断该些第二已更新逻辑单元的数目是否小于该预设数目;以及
当该些第二已更新逻辑单元的数目小于该预设数目时,为该第一逻辑单元配置一第二索引编号,将该更新数据写入至该第二全局随机区中并且使用对应该第一逻辑单元的该第二索引编号在该第二全局随机区搜寻表中记录对应该第一逻辑页面的该更新信息。
一种存储器控制器,用于控制一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个物理区块,并且每一该多个物理区块具有多个物理页面,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,并且用以将该多个物理区块至少分组为一数据区与一闲置区,
其中该存储器管理电路将属于该数据区与该闲置区的该多个物理区块分组为多个物理单元,其中该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,
其中该存储器管理电路配置多个逻辑单元以映射该数据区的该些物理单元,其中每一该些逻辑单元具有多个逻辑页面,
其中该存储器管理电路从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该些已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元,
其中该存储器管理电路建立一全局随机区搜寻表以记录在该全局随机区中对应该些已更新逻辑页面的多个更新信息,
其中该存储器管理电路接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元之中的一第一逻辑单元,
其中该存储器管理电路判断该全局随机区是否储存有属于该第一逻辑单元的数据,
其中当该全局随机区未储存有属于该第一逻辑单元的数据时,该存储器管理电路判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数,
其中当该些已更新逻辑单元的数目小于该预设数目时,该存储器管理电路为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。
根据权利要求8所述的存储器控制器,
其中当该全局随机区储存有属于该第一逻辑单元的数据时,该存储器管理电路将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。
根据权利要求8所述的存储器控制器,
其中当该些已更新逻辑单元的数目非小于该预设数目时,该存储器管理电路从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存属于该第一逻辑单元的数据。
根据权利要求8所述的存储器控制器,
其中该存储器管理电路记录对应每一该些逻辑单元的一写入次数并且根据对应该些逻辑单元的该些写入次数将该些逻辑单元区分为一热逻辑区与一冷逻辑区。
根据权利要求11所述的存储器控制器,其中该存储器管理电路还判断该第一逻辑单元是否属于该冷逻辑区,并且
仅当该第一逻辑单元非属于该冷逻辑区时,该存储器管理电路才判断该全局随机区是否储存有属于该第一逻辑单元的数据,
其中当该第一逻辑单元属于该冷逻辑区时,该存储器管理电路从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中。
一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,具有多个物理区块并且每一该多个物理区块具有多个物理页面;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,并且用以将该多个物理区块至少分组为一数据区与一闲置区,
其中该存储器控制器将属于该数据区与该闲置区的该多个物理区块分组为多个物理单元,其中该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,
其中该存储器控制器配置多个逻辑单元以映射该数据区的该些物理单元,其中每一该些逻辑单元具有多个逻辑页面,
其中该存储器控制器从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该些已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元,
其中该存储器控制器建立一全局随机区搜寻表以记录在该全局随机区中对应该些已更新逻辑页面的多个更新信息,
其中该存储器控制器接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元之中的一第一逻辑单元,
其中该存储器控制器判断该全局随机区是否储存有属于该第一逻辑单元的数据,
其中当该全局随机区未储存有属于该第一逻辑单元的数据时,该存储器控制器判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数,
其中当该些已更新逻辑单元的数目小于该预设数目时,该存储器控制器为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。
根据权利要求13所述的存储器储存装置,
其中当该全局随机区储存有属于该第一逻辑单元的数据时,该存储器控制器将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。
根据权利要求13所述的存储器储存装置,
其中当该些已更新逻辑单元的数目非小于该预设数目时,该存储器控制器从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存属于该第一逻辑单元的数据。
根据权利要求13所述的存储器储存装置,
其中该存储器控制器记录对应每一该些逻辑单元的一写入次数并且根据对应该些逻辑单元的该些写入次数将该些逻辑单元区分为一热逻辑区与一冷逻辑区。
根据权利要求16所述的存储器储存装置,其中该存储器控制器还判断该第一逻辑单元是否属于该冷逻辑区,并且
仅当该第一逻辑单元非属于该冷逻辑区时,该存储器控制器才判断该全局随机区是否储存有属于该第一逻辑单元的数据。
根据权利要求17所述的存储器储存装置,
其中当该第一逻辑单元属于该冷逻辑区时,该存储器控制器从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中。
一种数据写入方法,用于一可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个物理区块,每一该多个物理区块具有多个物理页面,该多个物理区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该多个物理区块被分组为多个物理单元,该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,多个逻辑单元被配置以映射该数据区的该些物理单元,并且每一该些逻辑单元具有多个逻辑页面,该数据写入方法包括:
从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该些已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元;
接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元之中的一第一逻辑单元;
判断该全局随机区是否储存有属于该第一逻辑单元的数据;
当该全局随机区储存有属于该第一逻辑单元的数据时,将该更新数据写入至该全局随机区;
当该全局随机区未储存有属于该第一逻辑单元的数据时,判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数;
当该些已更新逻辑单元的数目小于该预设数目时,将该更新数据写入至该全局随机区中;以及
当该些已更新逻辑单元的数目非小于该预设数目时,从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存该对应该第一逻辑单元的数据。
一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,具有多个物理区块并且每一该多个物理区块具有多个物理页面;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,并且用以将该多个物理区块至少分组为一数据区与一闲置区,
其中该存储器控制器将属于该数据区与该闲置区的该多个物理区块分组为多个物理单元,其中该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,
其中该存储器控制器配置多个逻辑单元以映射该数据区的该些物理单元,其中每一该多个逻辑单元具有多个逻辑页面,
其中该存储器控制器从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区暂存属于多个已更新逻辑页面的数据,并且该多个已更新逻辑页面属于该多个逻辑单元之中的多个已更新逻辑单元,
其中该存储器控制器接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该多个逻辑单元之中的一第一逻辑单元,
其中该存储器控制器判断该全局随机区是否储存有属于该第一逻辑单元的数据,
其中当该全局随机区未储存有属于该第一逻辑单元的数据时,该存储器控制器判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该多个逻辑单元的总数,
其中当该多个已更新逻辑单元的数目小于该预设数目时,该存储器控制器将该更新数据写入至该全局随机区中,
其中当该全局随机区储存有属于该第一逻辑单元的数据时,该存储器控制器将该更新数据写入至该全局随机区中,
其中当该些已更新逻辑单元的数目非小于该预设数目时,该存储器控制器从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存属于该第一逻辑单元的数据。

说明书

说明书数据写入方法、存储器控制器与储存装置
技术领域
本发明是有关于一种用于可复写式非易失性存储器的数据写入方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non‑volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本型计算机。固态硬盘就是一种以闪存作为储存媒体的存储器储存装置。因此,近年闪存产业成为电子产业中相当热门的一环。
闪存模块具有多个物理区块且每一物理区块具有多个物理页面(physical page),其中在物理区块中写入数据时必须依据物理页面的顺序依序地写入数据。此外,已被写入数据的物理页面并需先被抹除后才能再次用于写入数据。特别是,物理区块为抹除的最小单位,并且物理页面为可编程(亦称写入)的最小单元。因此,在闪存模块的管理中,物理区块会被区分为数据区与闲置区。
数据区的物理区块是用以储存主机系统所储存的数据。具体来说,存储器储存装置中的存储器管理电路会将主机系统所存取的逻辑存取地址转换为逻辑区块的逻辑页面并且将逻辑区块的逻辑页面映射至数据区的物理区块的物理页面。也就是说,闪存模块的管理上数据区的物理区块是被视为已被使用的物理区块(例如,已储存主机系统所写入的数据)。例如,存储器管理电路会使用逻辑‑物理地址映射表来记载逻辑区块与数据区的物理区块的映射关系,其中逻辑区块中的逻辑页面是依序的对应所映射的物理区块的物理页面。
闲置区的物理区块是用以轮替数据区中的物理区块。具体来说,如上所述,已写入数据的物理区块必须被抹除后才可再次用于写入数据,因此,闲置区的物理区块是被设计用于写入更新数据以替换映射逻辑区块的物理区块。基此,在闲置区中的物理区块为空或可使用的物理区块,即无记录数据或标记为已没用的无效数据。
也就是说,数据区与闲置区的物理区块的物理页面是以轮替方式来映射逻辑区块的逻辑页面,以储存主机系统所写入的数据。例如,存储器储存装置的存储器管理电路会从闲置区中提取一个或多个物理区块作为全局随机物理区块,并且当主机系统欲写入更新数据的逻辑存取地址是对应储存装置的某一逻辑单元的某一逻辑页面时,储存装置的存储器管理电路会将此更新数据写入至全局随机物理区块的物理页面中。
此外,当更新数据被写入至全局随机物理区块的物理页面中,存储器管理电路必须在一全局随机区搜寻表中记录关于已被更新的逻辑页面的更新信息。也就是说,在全局随机区搜寻表中会记录已更新逻辑页面的更新数据被写入至那些全局随机物理区块的物理页面中。在此,在全局随机区搜寻表中用以储存一个已更新逻辑页面的更新信息的记录称为登录(entry)。每一个登录中包含用以记录已更新逻辑页面的地址的字段、用以记录在全局随机物理区块中储存属于此已更新逻辑页面的数据的物理页面的地址的字段以及用以标记此登录是否有效的字段。由于任何一个逻辑页面的数据都有可能暂存至全局随机区中,因此,在全局随机区搜寻表中用以记录已更新逻辑页面的地址的字段必须包含较多的位,才能够储存足够识别所有逻辑页面地址的信息。
在存储器储存装置运作期间,全局随机区搜寻表必须被加载至缓冲存储器中,以利于存取。然而,对于配置小容量的缓冲存储器的存储器储存装置来说,上述全局随机区搜寻表将无法被加载至缓冲存储器。因此,开发一种数据写入方法,以使得在此类配置小容量的缓冲存储器的存储器储存装置中仍可使用全局随机物理区块来储存数据,是有其必要的。
发明内容
本发明提供一种数据写入方法、存储器控制器、存储器控制器与存储器储存装置,其能够在有限的缓冲存储器容量下使用全局随机物理区块来储存数据。
本发明范例实施例提出一种用于可复写式非易失性存储器模块的数据写入方法,其中此可复写式非易失性存储器模块具有多个物理区块,每一物理区块具有多个物理页面,此些物理区块至少分组为数据区与闲置区,属于数据区与闲置区的物理区块被分组为多个物理单元,闲置区的物理单元用以替换数据区的物理单元以写入数据,多个逻辑单元被配置以映射数据区的物理单元,并且每一逻辑单元具有多个逻辑页面。本数据写入方法包括从闲置区中提取至少一个物理单元作为全局随机区,其中全局随机区暂存属于多个已更新逻辑页面的数据,并且此些已更新逻辑页面属于上述逻辑单元之中的多个已更新逻辑单元。本数据写入方法也包括建立全局随机区搜寻表以记录在全局随机区中对应此些已更新逻辑页面的多个更新信息。本数据写入方法还包括接收写入指令与对应此写入指令的更新数据,其中此更新数据是属于第一逻辑页面并且第一逻辑页面属于第一逻辑单元。本数据写入方法亦包括判断全局随机区是否储存有属于第一逻辑单元的数据;以及当全局随机区未储存有属于第一逻辑单元的数据时,还判断此些已更新逻辑单元的数目是否小于预设数目,其中此预设数小于逻辑单元的总数。本数据写入方法还包括,当此些已更新逻辑单元的数目小于预设数目时,为第一逻辑单元配置第一索引编号,将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。
在本发明的一实施例中,上述的数据写入方法还包括,当全局随机区储存有属于第一逻辑单元的数据时,将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。
在本发明的一实施例中,上述的数据写入方法还包括,当此些已更新逻辑单元的数目非小于预设数目时,从闲置区中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中,其中此子物理单元只用以储存属于第一逻辑单元的数据。
在本发明的一实施例中,上述的数据写入方法还包括:记录对应每一逻辑单元的写入次数;以及根据对应逻辑单元的写入次数将逻辑单元区分为热逻辑区与冷逻辑区。
在本发明的一实施例中,上述的数据写入方法还包括,在判断全局随机区是否储存有属于第一逻辑单元的数据之前更判断第一逻辑单元是否属于冷逻辑区;以及仅当第一逻辑单元非属于冷逻辑区时,才执行上述判断全局随机区是否储存有属于第一逻辑单元的数据的步骤。
在本发明的一实施例中,上述的数据写入方法还包括,当第一逻辑单元属于冷逻辑区时,从闲置区的物理单元之中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中。
本发明范例实施例提出一种用于可复写式非易失性存储器模块的数据写入方法,其中此可复写式非易失性存储器模块具有多个物理区块,每一物理区块具有多个物理页面,此些物理区块至少分组为数据区与闲置区,属于数据区与闲置区的物理区块被分组为多个物理单元,闲置区的物理单元用以替换数据区的物理单元以写入数据,多个逻辑单元被配置以映射数据区的物理单元,并且每一逻辑单元具有多个逻辑页面。本数据写入方法包括从闲置区的中提取至少一个物理单元作为第一全局随机区且从闲置区的物理单元中提取至少一个物理单元作为第二全局随机区,其中第一全局随机区暂存属于多个第一已更新逻辑页面的数据,第二全局随机区暂存属于多个第二已更新逻辑页面的数据,第一已更新逻辑页面属于多个第一已更新逻辑单元,并且第二已更新逻辑页面属于多个第二已更新逻辑单元。本数据写入方法也包括建立第一全局随机区搜寻表以记录在第一全局随机区中对应第一已更新逻辑页面的多个更新信息和建立第二全局随机区搜寻表以记录在第二全局随机区中对应第二已更新逻辑页面的多个更新信息。本数据写入方法还包括接收写入指令与对应写入指令的更新数据,其中更新数据是属于第一逻辑页面并且第一逻辑页面属于一第一逻辑单元。本数据写入方法亦包括判断第一全局随机区或第二全局随机区是否储存有属于第一逻辑单元的数据;以及当第一全局随机区与第二全局随机区皆未储存有属于第一逻辑单元的数据时,判断第一已更新逻辑单元的数目是否小于预设数目,其中此预设数小于逻辑单元的总数。本数据写入方法也包括,当第一已更新逻辑单元的数目小于预设数目时,为第一逻辑单元配置第一索引编号,将更新数据写入至第一全局随机区中并且使用对应第一逻辑单元的第一索引编号在第一全局随机区搜寻表中记录对应第一逻辑页面的更新信息。此外,本数据写入方法还包括,当第一已更新逻辑单元的数目非小于预设数目时,判断第二已更新逻辑单元的数目是否小于预设数目。本数据写入方法还包括,当第二已更新逻辑单元的数目小于预设数目时,为第一逻辑单元配置一第二索引编号,将更新数据写入至第二全局随机区中并且使用对应第一逻辑单元的第二索引编号在第二全局随机区搜寻表中记录对应第一逻辑页面的更新信息。
本发明范例实施例提出一种存储器控制器,用于控制可复写式非易失性存储器模块,其中此可复写式非易失性存储器模块具有多个物理区块,并且每一物理区块具有多个物理页面。存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口与存储器接口,并且用以将此些物理区块至少分组为数据区与闲置区。此外,存储器管理电路将属于数据区与闲置区的物理区块分组为多个物理单元,其中闲置区的物理单元用以替换数据区的物理单元以写入数据。另外,存储器管理电路配置多个逻辑单元以映射数据区的物理单元,其中每一逻辑单元具有多个逻辑页面。存储器管理电路从闲置区的物理单元中提取至少一个物理单元作为全局随机区,其中全局随机区暂存属于多个已更新逻辑页面的数据,并且此些已更新逻辑页面属于此些逻辑单元之中的多个已更新逻辑单元。存储器管理电路建立全局随机区搜寻表以记录在全局随机区中对应此些已更新逻辑页面的多个更新信息。存储器管理电路接收写入指令与对应此写入指令的更新数据,其中此更新数据是属于第一逻辑页面并且第一逻辑页面属于此些逻辑单元之中的第一逻辑单元。存储器管理电路判断全局随机区是否储存有属于第一逻辑单元的数据。当全局随机区未储存有属于第一逻辑单元的数据时,存储器管理电路还判断此些已更新逻辑单元的数目是否小于预设数目,其中预设数小于逻辑单元的总数。当此些已更新逻辑单元的数目小于预设数目时,存储器管理电路为第一逻辑单元配置第一索引编号,将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。
在本发明的一实施例中,当全局随机区储存有属于第一逻辑单元的数据时,上述的存储器管理电路将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。
在本发明的一实施例中,当已更新逻辑单元的数目非小于预设数目时,存储器管理电路从闲置区的物理单元之中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中。
在本发明的一实施例中,上述的存储器管理电路记录对应每一逻辑单元的写入次数并且根据对应逻辑单元的写入次数将逻辑单元区分为热逻辑区与冷逻辑区。
在本发明的一实施例中,上述的存储器管理电路还判断第一逻辑单元是否属于冷逻辑区,并且仅当第一逻辑单元非属于冷逻辑区时,存储器管理电路才判断全局随机区是否储存有属于第一逻辑单元的数据。
在本发明的一实施例中,当第一逻辑单元属于冷逻辑区时,存储器管理电路从闲置区的物理单元之中提取一第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中。
本发明范例实施例提出一种存储器储存装置,其包括连接器连接器、可复写式非易失性存储器模块与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模块具有多个物理区块并且每一物理区块具有多个物理页面。存储器控制器电性连接至连接器与可复写式非易失性存储器模块,并且用以将此些物理区块至少分组为数据区与闲置区。此外,存储器控制器将属于数据区与闲置区的物理区块分组为多个物理单元,其中闲置区的物理单元用以替换数据区的物理单元以写入数据。另外,存储器控制器配置多个逻辑单元以映射数据区的物理单元,其中每一逻辑单元具有多个逻辑页面。存储器控制器从闲置区的物理单元中提取至少一个物理单元作为全局随机区,其中全局随机区暂存属于多个已更新逻辑页面的数据,并且此些已更新逻辑页面属于此些逻辑单元之中的多个已更新逻辑单元。存储器控制器建立全局随机区搜寻表以记录在全局随机区中对应此些已更新逻辑页面的多个更新信息。存储器控制器接收写入指令与对应此写入指令的更新数据,其中此更新数据是属于第一逻辑页面并且第一逻辑页面属于此些逻辑单元之中的第一逻辑单元。存储器控制器判断全局随机区是否储存有属于第一逻辑单元的数据。当全局随机区未储存有属于第一逻辑单元的数据时,存储器控制器还判断此些已更新逻辑单元的数目是否小于预设数目,其中此预设数小于逻辑单元的总数。当此些已更新逻辑单元的数目小于预设数目时,存储器控制器为第一逻辑单元配置第一索引编号,将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。
在本发明的一实施例中,当全局随机区储存有属于第一逻辑单元的数据时,上述的存储器控制器将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。
在本发明的一实施例中,当已更新逻辑单元的数目非小于预设数目时,存储器控制器从闲置区的物理单元之中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中,其中子物理单元只用以储存属于第一逻辑单元的数据。
在本发明的一实施例中,上述的存储器控制器记录对应每一逻辑单元的写入次数并且根据对应逻辑单元的写入次数将逻辑单元区分为热逻辑区与冷逻辑区。
在本发明的一实施例中,上述的存储器控制器还判断第一逻辑单元是否属于冷逻辑区,并且仅当第一逻辑单元非属于冷逻辑区时,存储器控制器才判断全局随机区是否储存有属于第一逻辑单元的数据。
在本发明的一实施例中,当第一逻辑单元属于冷逻辑区时,存储器控制器从闲置区的物理单元之中提取一第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中。
本发明范例实施例提出一种用于可复写式非易失性存储器模块的数据写入方法,其中可复写式非易失性存储器模块具有多个物理区块,每一物理区块具有多个物理页面,这些物理区块至少分组为数据区与闲置区,属于数据区与闲置区的物理区块被分组为多个物理单元,闲置区的物理单元用以替换数据区的物理单元以写入数据,多个逻辑单元被配置以映射数据区的该些物理单元,并且每一逻辑单元具有多个逻辑页面。本数据写入方法包括从闲置区的物理单元中提取至少一个物理单元作为全局随机区,其中全局随机区用以暂存属于多个已更新逻辑页面的数据,并且这些已更新逻辑页面属于此些逻辑单元之中的多个已更新逻辑单元。本数据写入方法也包括接收写入指令与对应此写入指令的更新数据,其中此更新数据是属于第一逻辑页面并且第一逻辑页面属于这些逻辑单元之中的第一逻辑单元。本数据写入方法还包括判断全局随机区是否储存有属于第一逻辑单元的数据。本数据写入方法包括:当全局随机区储存有属于第一逻辑单元的数据时,将更新数据写入至全局随机区;以及当全局随机区未储存有属于第一逻辑单元的数据时,判断此些已更新逻辑单元的数目是否小于预设数目,其中预设数小于逻辑单元的总数。本数据写入方法还包括:当此些已更新逻辑单元的数目小于预设数目时,将更新数据写入至全局随机区中;以及当此些已更新逻辑单元的数目非小于预设数目时,从闲置区的物理单元之中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中,其中子物理单元只用以储存对应第一逻辑单元的数据。
本发明范例实施例提出一种存储器储存装置,其包括连接器连接器、可复写式非易失性存储器模块与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模块具有多个物理区块并且每一物理区块具有多个物理页面。存储器控制器电性连接至连接器与可复写式非易失性存储器模块,并且用以将此些物理区块至少分组为数据区与闲置区。此外,存储器控制器将属于数据区与闲置区的物理区块分组为多个物理单元,其中闲置区的物理单元用以替换数据区的物理单元以写入数据。另外,存储器控制器配置多个逻辑单元以映射数据区的物理单元,其中每一逻辑单元具有多个逻辑页面。存储器控制器从闲置区的物理单元中提取至少一个物理单元作为全局随机区,其中全局随机区暂存属于多个已更新逻辑页面的数据,并且此些已更新逻辑页面属于这些逻辑单元之中的多个已更新逻辑单元。再者,存储器控制器接收写入指令与对应写入指令的更新数据,其中更新数据是属于第一逻辑页面并且第一逻辑页面属于这些逻辑单元之中的一第一逻辑单元。并且,存储器控制器判断全局随机区是否储存有属于第一逻辑单元的数据。当全局随机区未储存有属于第一逻辑单元的数据时,存储器控制器判断此些已更新逻辑单元的数目是否小于预设数目,其中预设数小于逻辑单元的总数。当这些已更新逻辑单元的数目小于预设数目时,存储器控制器将更新数据写入至全局随机区中。此外,当全局随机区储存有属于第一逻辑单元的数据时,存储器控制器将更新数据写入至全局随机区中。当此些已更新逻辑单元的数目非小于该预设数目时,存储器控制器从闲置区的物理单元之中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中,其中子物理单元只用以储存属于第一逻辑单元的数据。
基于上述,在本发明范例实施例的数据写入方法、存储器控制器、存储器控制器与存储器储存装置中,全局随机区最多仅会储存属于预定数目的逻辑单元的更新数据,因此,用以在全局随机区搜寻表中用以记录对应更新逻辑页面的更新信息的登录可有效地被缩小,由此全局随机区搜寻表可顺利地载入至缓冲存储器中。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A是根据第一范例实施例所绘示的主机系统与存储器储存装置。
图1B是根据本发明范例实施例所绘示的计算机、输入/输出装置与存储器储存装置的示意图。
图1C是根据本发明范例实施例所绘示的主机系统与存储器储存装置的示意图。
图2是绘示图1A所示的存储器储存装置的概要方块图。
图3是根据第一范例实施例所绘示的存储器控制器的概要方块图。
图4A与图4B是根据第一范例实施例所绘示的管理物理区块的范例示意图。
图5A~5G是绘示使用全局随机区写入数据的简化范例。
图6是根据图5G所绘示的全局随机区搜寻表的简化范例。
图7A与7B是绘示使用全局随机区写入数据与执行数据合并程序的简化范例。
图8是根据第一范例实施例所绘示的索引编号映射表的范例。
图9~图11是绘示的使用子物理单元来写入更新数据的范例。
图12A与图12B是根据第一范例实施例所绘示的数据写入方法的流程图。
图13是根据第二范例实施例所绘示的写入更新数据的流程图。
图14是根据第三范例实施例所绘示的配置全局随机区的范例。
图15A与图15B是根据第三范例实施例所绘示的数据写入方法的流程图。
[主要元件标号说明]
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:可复写式非易失性存储器模块
202:存储器管理电路      204:主机接口
206:存储器接口          252:缓冲存储器
254:电源管理电路        256:错误检查与校正电路
410(0)~410(N):物理区块 502:系统区
504:数据区              506:闲置区
508:取代区              550:全局随机区
610(0)~610(K):物理单元 710(0)~710(H):逻辑单元
800:全局随机区搜寻表    810(0)~810(4):根单元
902:第一字段            904:第二字段
906:第三字段            900:索引编号映射表
S1201、S1203、S1211、S1213、S1215、S1217、S1219、S1221:数据写入方法的步骤
S1301、S1303:数据写入方法的步骤
550‑1:第一全局随机区
550‑2:第二全局随机区
S1501、S1503、S1511、S1513、S11515、S1517、S1519、S1521、S1523、S1525、S1527:数据写入方法的步骤
具体实施方式
[第一范例实施例]
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图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或固态硬盘(Solid State Drive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数字相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数字相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是绘示图1A所示的存储器储存装置的概要方块图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模块106。
在本范例实施例中,连接器102是相容于序列先进附件(Serial Advanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合并列先进附件(Parellel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速外围零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用序列总线(Universal Serial Bus,USB)标准、安全数字(Secure Digital,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)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一物理区块分别具有多个物理页面,并且每一物理页面具有至少一物理扇区,其中属于同一个物理区块的物理页面可被独立地写入且被同时地抹除。例如,每一物理区块是由128个物理页面所组成,并且每一物理页面具有8个物理扇区(sector)。也就是说,在每一物理扇区为512字节(byte)的例子中,每一物理页面的容量为4千字节(Kilobyte,K)。然而,必须了解的是,本发明不限于此,每一物理区块是可由64个物理页面、256个物理页面或其它任意个物理页面所组成。
更详细来说,物理区块为抹除的最小单位。亦即,每一物理区块含有最小数目的一并被抹除的存储单元。物理页面为可编程的最小单元。即,物理页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是物理扇区或其它大小。每一物理页面通常包括数据位区与冗余位区。数据位区用以储存使用者的数据,而冗余位区用以储存系统的数据(例如,错误检查与校正码)。
在本范例实施例中,可复写式非易失性存储器模块106为多层存储单元(Multi Level Cell,MLC)NAND闪存模块。然而,本发明不限于此,可复写式非易失性存储器模块106亦可是单层存储单元(Single Level Cell,SLC)NAND闪存模块、其它闪存模块或其它具有相同特性的存储器模块。
图3是根据第一范例实施例所绘示的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以程序码型式储存于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器模块106中的控制指令加载至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以一硬件型式来实作。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是兼容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其它适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254与错误检查与校正电路256。缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4A与图4B是根据第一范例实施例所绘示的管理物理区块的范例示意图。
请参照图4A,存储器控制器104的存储器管理电路202会将物理区块410(0)~410‑(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的物理区块是用以储存来自于主机系统1000的数据。具体来说,数据区502的物理区块是被视为已储存数据的物理区块,而闲置区504的物理区块是用以替换数据区502的物理区块。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取物理区块,并且将数据写入至所提取的物理区块中,以替换数据区502的物理区块。
逻辑上属于系统区506的物理区块是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的物理区块数、每一物理区块的物理页面数等。
逻辑上属于取代区508中的物理区块是用于坏物理区块取代程序,以取代损坏的物理区块。具体来说,倘若取代区508中仍存有正常的物理区块并且数据区502的物理区块损坏时,存储器管理电路202会从取代区508中提取正常的物理区块来更换损坏的物理区块。
请参照图4B,存储器管理电路202会将数据区502与闲置区504的物理区块410(0)~410(S‑1)分组为物理单元610(0)~610(K),并且以物理单元为单位来管理物理区块。在本范例实施例中,每一物理单元是由1个物理区块所组成。然而,必须了解的是,本发明不限于此。在另一范例实施例中,每一物理单元亦可由属于同一存储器子模块或属于不同存储器子模块中的至少2个物理区块所组成。
此外,存储器管理电路202会配置逻辑单元710(0)~710(H)以映射数据区502的物理单元,其中每一逻辑单元具有多个逻辑页面以依序地映射对应的物理单元的物理页面。在本范例实施例中,每一物理单元是由1个物理区块所组成,每一逻辑页面是映射1个物理页面(即,每一逻辑页面的容量为1个物理页面的容量)。然而,在每一物理单元是由多个物理区块所组成的例子中,每一逻辑页面亦可映射多个物理页面(即,每一逻辑页面的容量为多个物理页面的容量)。
在本范例实施例中,存储器管理电路202会维护逻辑单元‑物理单元映射表(logical unit‑physical unit mapping table)以记录逻辑单元710(0)~710(H)与数据区502的物理单元的映射关系。例如,当主机系统1000欲存取某一逻辑存取地址时,存储器管理电路202可将主机系统1000所存取的逻辑存取地址转换为以对应的逻辑单元、逻辑页面与逻辑扇区所构成的地址,并且通过逻辑单元‑物理单元映射表于对应的物理单元的物理页面中存取数据。
在本范例实施例中,存储器管理电路202会从闲置区504中提取物理单元作为全局随机区,并且将包含于来自主机系统1000的写入指令中的数据(亦称为更新数据)写入至全局随机区的物理单元(亦称为全局随机物理单元)中。在本范例实施例中,全局随机物理单元是设计来储存分别对应于不同逻辑单元的数据。
具体来说,当存储器储存装置100从主机系统1000接收到写入指令时,来自于主机系统1000的写入指令中的数据可被依序地写入至全局随机区的物理单元中。并且,当此全局随机区的物理单元已被写满时,存储器管理电路202会再从闲置区504中提取物理单元作为另一个全局随机物理单元,以继续写入对应来自于主机系统1000的写入指令的更新数据。直到作为全局随机区的物理单元的数目已到达一上限值时,存储器管理电路202会执行数据合并程序,以使储存于全局随机物理单元中的数据成为无效数据,并且之后将所储存的数据皆为无效数据的全局随机物理单元关联回闲置区504。
图5A~5G是绘示使用全局随机区写入数据的简化范例。
为方便说明,在此假设数据区502具有5个物理单元,闲置区504具有4个物理单元,每一物理单元具有实3个物理页面,欲写入至每一物理单元的数据必须依照物理页面的顺序来被写入,并且作为全局随机物理单元的物理单元数的上限值为3。
请参照图5A,在存储器储存装置100的初始状态中,逻辑单元710(0)~710(4)的逻辑页面可依序地映射数据区502的物理单元610(0)~610(4)的物理页面,并且闲置区504具有物理单元610(5)~610(8)。也就是说,存储器管理电路202会在逻辑单元‑物理单元映射表中记录逻辑单元710(0)~710(4)与物理单元610(0)~610(4)之间的映射关系,并且将物理单元610(0)~610(4)的物理页面视为已储存属于逻辑单元710(0)~710(4)的逻辑页面的数据(即,初始数据ID1~ID15)。必须了解的是,在存储器储存装置100刚出厂时,初始数据ID1~ID15可能为空数据。此外,存储器管理电路202会记录闲置区504中可用的物理单元610(5)~610(8)。
请参照图5B,假设欲编程更新数据UD1并且更新数据UD1是属于逻辑单元710(0)的第1个逻辑页面时,存储器管理电路202会从闲置区504中提取物理单元610(5)作为全局随机区550的物理单元并且下达编程指令以将此更新数据UD1写入至物理单元610(5)的第0个物理页面。
请参照图5C,接续图5B,假设欲再编程更新数据UD2并且更新数据UD2是属于逻辑单元710(1)的第0个逻辑页面时,存储器管理电路202会下达编程指令以将此更新数据UD2写入至物理单元610(5)的第1个物理页面。
请参照图5D,接续图5C,假设欲再编程更新数据UD3并且更新数据UD3是属于逻辑单元710(2)的第1个逻辑页面时,存储器管理电路202会下达编程指令以将此更新数据UD3写入至物理单元610(5)的第2个物理页面。
请参照图5E,接续图5D,假设欲再编程更新数据UD4并且更新数据UD4是属于逻辑单元710(3)的第0个逻辑页面时,由于全局随机物理单元610(5)已无储存空间,因此,存储器管理电路202会从闲置区504中提取物理单元610(6)作为全局随机区550的物理单元并且下达编程指令以将此更新数据UD4写入至物理单元610(6)的第0个物理页面。
请参照图5F,接续图5E,假设欲再编程更新数据UD5并且更新数据UD5是属于逻辑单元710(3)的第1个逻辑页面时,存储器管理电路202会下达编程指令以将此更新数据UD5写入至物理单元610(6)的第1个物理页面。
请参照图5G,接续图5F,假设欲再编程更新数据UD6并且更新数据UD6是属于逻辑单元710(0)的第2个逻辑页面时,存储器管理电路202会下达编程指令以将此更新数据UD6写入至物理单元610(6)的第2个物理页面。
为了能够识别储存于全局随机区的物理单元中的数据是属于那个逻辑单元(亦称为已更新逻辑单元)的那个逻辑页面(亦称为已更新逻辑页面),在本范例实施例中,存储器管理电路202会建立全局随机区搜寻表,以利有效数据的搜寻。在此,暂存于全局随机区中的更新数据所属的逻辑页面称为已更新逻辑页面并且已更新逻辑页面所属的逻辑单元区块称为已更新逻辑单元。在全局随机区搜寻表中,存储器管理电路202会建立多个根单元并且为每一根单元配置一登录链接。特别是,存储器管理电路202会将逻辑单元的逻辑页面分组来分别地对应至其中一个根单元,并且将已更新逻辑页面的更新信息记录在对应的根单元的登录链接上。基此,当欲在全局随机物理单元中搜寻特定逻辑单元的更新数据时,仅需搜寻对应的根单元的登录链接。
例如,在本范例实施例中,存储器管理电路202会每一逻辑单元的逻辑页面分别地对应至同一个根单元。也就是,同一个逻辑单元的逻辑页面是对应同一个根单元。必须了解的是,本发明不限于此,例如,在本发明另一范例实施中,亦可将一个逻辑单元的一部份逻辑页面分组至一个根单元并且将此逻辑单元的另一部分逻辑页面分组至另一根单元。
此外,存储器管理电路202会为每一根单元分别地配置一个登录链接并且每当执行写入指令时,存储器管理电路202会在对应的登录链接上建立登录以记录关于此写入指令的更新信息。例如,每一登录包括第一字段(例如,图6的字段902)、第二字段(例如,图6的字段904)与第三字段(例如,图6的字段906),其中第一字段记录已更新逻辑页面的地址,第二字段用以记录储存此已更新逻辑页面的更新数据的物理地址,并且第三字段用以标记此登录是否有效。在此,若此登录为有效,则第三字段例如会被标记为‘1’;并且若此登录为无效,则第三字段例如会被标记为‘0’。必须了解的是,在此标记有效登录与无效登录的方式,不限于此。例如,亦可以‘1’代表无效登录并且以‘0’代表有效登录。
图6是根据图5G所绘示的全局随机区搜寻表的简化范例。
请参照图6,全局随机区搜寻表800包括根单元810(0)~810(4),其中逻辑单元710(0)的逻辑页面是对应根单元810(0),逻辑单元710(1)的逻辑页面是对应根单元810(1),逻辑单元710(2)的逻辑页面是对应根单元810(2),逻辑单元710(3)的逻辑页面是对应根单元810(3),并且逻辑单元710(4)的逻辑页面是对应根单元810(4)。
在根单元810(0)的登录链接中包含2个有效登录,以记录逻辑单元710(0)的第1个逻辑页面(即,信息″710(0)‑1″)与第2个逻辑页面(即,信息″710(0)‑2″)已被更新,其中逻辑单元710(0)的第1个逻辑页面的更新数据被写入至物理单元610(5)的第0个物理页面(即,信息″610(5)‑0″)中并且逻辑单元710(0)的第2个逻辑页面的更新数据被写入至物理单元610(6)的第2个物理页面(即,信息″610(6)‑2″)中。
在根单元810(1)的登录链接中包含1个有效登录,以记录逻辑单元710(1)的第0个逻辑页面(即,信息″710(1)‑0″)已被更新,其中逻辑单元710(1)的第0个逻辑页面的更新数据被写入至物理单元610(5)的第1个物理页面(即,信息″610(5)‑1″)中。
在根单元810(2)的登录链接中包含1个有效登录,以记录逻辑单元710(2)的第1个逻辑页面(即,信息″710(2)‑1″)已被更新,其中逻辑单元710(2)的第1个逻辑页面的更新数据被写入至物理单元610(5)的第2个物理页面(即,信息″610(5)‑2″)中。
在根单元810(3)的登录链接中包含2个有效登录,以记录逻辑单元710(3)的第0个逻辑页面(即,信息″710(3)‑0″)与第1个逻辑页面(即,信息″710(3)‑1″)已被更新,其中逻辑单元710(3)的第0个逻辑页面的更新数据被写入至物理单元610(6)的第0个物理页面(即,信息″610(6)‑0″)中并且逻辑单元710(3)的第1个逻辑页面的更新数据被写入至物理单元610(6)的第1个物理页面(即,信息″610(6)‑1″)中。
此外,在根单元810(0)~810(4)的登录链接中分别地会包含1个空的登录,以表示登录链接的结束。例如,倘若欲在全局随机物理单元中搜寻属于逻辑单元710(4)的数据时,存储器管理单元202可根据根单元810(4)的登录链接仅有空的登录,而识别出全局随机物理单元中未储存属于逻辑单元710(4)的数据,由此可直接依据逻辑单元‑物理单元映射表的信息从对应的物理单元的物理页面中读取数据。
以此类推,存储器管理电路202会依序地将主机系统1000欲储存的数据写入至作为全局随机区的物理单元中。特别是,当全局随机区的物理单元的数目达到3时,存储器管理电路202会在执行写入指令时一并执行数据合并程序,以防止闲置区的物理单元被用尽。
图7A与7B是绘示使用全局随机区写入数据与执行数据合并程序的简化范例。
请参照图7A,接续图5G,假设欲再编程更新数据UD7并且更新数据UD7是属于逻辑单元710(2)的第0个逻辑页面时,由于全局随机物理单元610(6)已无储存空间,因此,存储器管理电路202会从闲置区504中提取物理单元610(7)作为全局随机区550的物理单元并且下达编程指令以将此更新数据UD7写入至物理单元610(7)的第0个物理页面。特别是,由于作为全局随机区550的物理单元的数目已达到3,因此,存储器管理电路202在执行图7B所示的写入运作后会执行数据合并程序。也就是说,在此例子中,在执行此次写入指令期间,存储器管理电路202会一并执行数据合并程序。
请参照图7B,假设存储器管理电路202选择逻辑单元710(0)来进行数据合并时,存储器管理电路202会识别逻辑单元710(0)是映射物理单元610(0),从闲置区504提取物理单元610(8),并且将物理单元610(0)以及全局随机区550中属于逻辑单元710(0)的有效数据复制到物理单元610(8)中。具体来说,存储器管理电路202会依序地将物理单元610(0)中的数据ID1、物理单元610(5)中的UD1与物理单元610(6)中的数据UD6写入至物理单元610(8)的第0~2个物理页面中,并且将物理单元610(5)的第1个物理页面与物理单元610(6)的第2个物理页面标示为无效(如斜线所示)。之后,存储器管理电路202会对物理单元610(0)执行抹除运作,在逻辑单元‑物理单元映射表中将逻辑单元710(0)重新映射至物理单元610(8),并且将物理单元610(0)关联至闲置区504。
例如,当执行下一个写入指令时,存储器管理电路202会对逻辑单元710(1)执行数据合并程序,并且之后再执行下一个写入指令时,存储器管理电路202会对逻辑单元710(2)执行数据合并程序。因此,在物理单元610(7)的储存空间被填满时,物理单元610(5)中的数据皆会成为无效数据。基此,存储器管理电路202可对物理单元610(5)执行抹除运作并将抹除后的物理单元610(5)关联回闲置区504。
或者,例如,当执行下一个写入指令时,存储器管理电路202会对逻辑单元710(3)执行数据合并程序。因此,在物理单元610(7)的储存空间被填满之前,物理单元610(6)中的数据皆会成为无效数据。基此,存储器管理电路202可对物理单元610(6)执行抹除运作并将抹除后的物理单元610(6)关联回闲置区504。
基此,根据上述运作,存储器管理电路202可持续将已储存无效数据的物理单元关联回闲置区504并且从闲置区504中提取空的物理单元作为全局随机物理单元。
值得一提的是,在本范例实施例中,暂存于全局随机区550的更新数据所属的逻辑单元的数目会被限制不大于预设数目。也就是说,在同一时间,存储器管理电路202仅会在全局随机区550中暂存部分逻辑单元的更新数据,并且此部分逻辑单元的数目不大于预设数目。也就是说,此预设数会被设定为小于逻辑单元的总数。
具体来说,如上所述,在全局随机区搜寻表中,已更新逻辑页面的地址是通过记录在第一字段中的信息来识别。因此,在已知技术所使用的全局随机区搜寻表中,第一字段的大小必须足够记录能够区别所有逻辑页面的信息。例如,倘若逻辑单元的数目为1024个时,在已知技术所使用的全局随机区搜寻表中第一字段必须被配置10个位才能够区别所有逻辑页面的信息。
在本范例实施例中,第一字段902的大小被设计为较小并且无法记录能够区别所有逻辑页面的信息。例如,第一字段902的大小为7个位,并且仅能记录用以区别128个逻辑单元的逻辑页面地址的信息(即,索引编号)。因此,上述预设数目会被设定为128并且存储器管理电路202最多仅会在全局随机区550中暂存属于128个逻辑单元的更新数据。基此,全局随机区搜寻表800的大小能够有效地被缩小,以利被加载至容量较小的缓冲存储器252中。
当属于一个逻辑单元的逻辑页面的更新数据被写入至全局随机区550,存储器管理电路202会分配一个索引编号给此逻辑单元并且根据此索引编号在全局随机区搜寻表800记录此逻辑页面的更新信息。例如,在本范例实施例中,索引编号的范围为‘0’~‘127’并且存储器管理电路202会配置索引编号映射表来记录目前设定给每一已更新逻辑单元的索引编号。也就是说,每一个更新逻辑单元会被配置其中一个索引编号(即,‘0’~‘127’)并且索引编号会被记录在全局随机区搜寻表800的第一字段中以取代原本记录在第一字段中关于逻辑页面所属的逻辑单元的部分。
图8是根据第一范例实施例所绘示的索引编号映射表的范例。
请参照图8,假设属于逻辑单元710(0)的第0个逻辑页面的更新数据被写入至全局随机区550时,存储器管理电路202会将索引编号映射表900中未被使用的索引编号‘0’指派给逻辑单元710(0)。
此外,在进行数据合并程序(如图7B所示)之后,倘若全局随机区550已无储存属于逻辑单元710(0)的更新数据时,指派给逻辑单元710(0)的索引编号‘0’会被取消。基此,在后续的写入运作时,索引编号‘0’可再被指派给其它更新逻辑单元。
也就是说,当主机系统1000欲储存数据至某一个逻辑单元的某一个逻辑页面时,存储器管理电路202会判断全局随机区550是否已存有属于此逻辑单元的数据。例如,存储器管理电路202会根据索引编号映射表来判断此逻辑单元是否已被指派一个索引编号,其中当此逻辑单元已被指派一个索引编号时表示全局随机区550已存有属于此逻辑单元的数据。当全局随机区550已存有属于此逻辑单元的数据,存储器管理电路202会将属于此逻辑页面的更新数据写入至全局随机区550并且使用指派给此逻辑单元的索引编号来在全局随机区搜寻表中记录对应此逻辑页面的更新数据。
当全局随机区550未存有属于此逻辑单元的数据,存储器管理电路202会判断暂存于全局随机区550的更新数据所属的逻辑单元的数目是否小于预设数目。例如,存储器管理电路202会判断索引编号映射表中是否还有未被指派的索引编号,其中当索引编号映射表中还有未被指派的索引编号时表示暂存于全局随机区550的更新数据所属的逻辑单元的数目小于预设数目。
倘若暂存于全局随机区550的更新数据所属的逻辑单元的数目小于预设数目时,存储器管理电路202会将一个未使用的索引编号指派给此逻辑单元,将属于此逻辑页面的更新数据写入至全局随机区550并且使用指派给此逻辑单元的索引编号来在全局随机区搜寻表中记录对应此逻辑页面的更新数据。
倘若暂存于全局随机区550的更新数据所属的逻辑单元的数目非小于预设数目(即,已无空的索引编号可指派给欲写入的逻辑单元)时,存储器管理电路202会从闲置区504中提取一个物理单元作为子物理单元来写入更新数据。
图9~图11是绘示的使用子物理单元来写入更新数据的范例。
请同时参照图9~图11,例如,在逻辑单元710(0)是映射至物理单元610(0)的映射状态下,当存储器控制器104从主机系统1000中接收到写入指令而欲写入数据至属于逻辑单元710(0)的逻辑页面时,存储器管理电路202依据逻辑单元‑物理单元映射表识别逻辑单元710(0)目前是映射至物理单元610(0)并且从闲置区504中提取物理单元610(H+1)来轮替物理单元610(0)。然而,当新数据写入至物理单元610(H+1)的同时,存储器管理电路202可不用立刻将物理单元610(0)中的所有有效数据搬移至物理单元610(H+1)而抹除物理单元610(0)。具体来说,存储器管理电路202会从物理单元610(0)中读取欲写入物理页面之前的有效数据(即,物理单元610(0)的第0物理页面与第1物理页面中的数据)。之后,存储器控制器104会将物理单元610(0)中欲写入物理页面之前的有效数据写入至物理单元610(H+1)的第0物理页面与第1物理页面中(如图9所示),并且将新数据写入至物理单元610(H+1)的第2~4个物理页面中(如图10所示)。此时,存储器控制器104即完成写入的运作。因为物理单元610(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将物理单元610(0)中的有效数据搬移至物理单元610(H+1)可能会造成无谓的搬移。此外,数据必须依序地写入至物理单元内的物理页面,因此,存储器管理电路202可先搬移欲写入物理页面之前的有效数据(即,储存在物理单元610(0)的第0物理页面与第0物理页面中数据),并且暂不搬移其余有效数据(即,储存在物理单元610(0)的第5~K物理页面中数据)。
在本范例实施例中,暂时地维持此等瞬时关系的运作称为开启(open)母子区块,并且原物理单元(例如,上述物理单元610(0))称为母物理单元而用以替换母物理单元的物理单元(例如,上述与物理单元610(H+1))称为子物理单元。
之后,当需要将物理单元610(0)与物理单元610(H+1)的数据合并(merge)时,存储器控制器104会将物理单元610(0)与物理单元610(H+1)的数据整并至一个物理单元,由此提升物理单元的使用效率。在此,合并母子区块的运作称为数据合并程序或关闭(close)母子区块。例如,如图11所示,当进行关闭母子区块时,存储器管理电路202会从物理单元610(0)中读取剩余的有效数据(即,物理单元610(0)的第5~K物理页面中的数据),将物理单元610(0)中剩余的有效数据写入至物理单元610(H+1)的第5物理页面~第K物理页面中,对物理单元610(0)执行抹除操作,抹除后的物理单元610(0)关联至闲置区504并且将物理单元610(H+1)关联至数据区502。也就是说,存储器控制器104会在逻辑单元‑物理单元映射表中将逻辑单元710(0)重新映射至物理单元610(H+1)。值得一提的是,闲置区504中物理单元的数目是有限的,基此,在存储器储存装置100运作期间,已开启的母子区块组的数目亦会受到限制。因此,当存储器储存装置100接收到来自于主机系统1000的写入指令时,倘若已开启母子区块组的数目达到上限时,存储器控制器104需关闭至少一组目前已开启的母子区块组后才可执行此写入指令。
值得一提的是,尽管在本范例实施例中,当暂存于全局随机区550的更新数据所属的逻辑单元的数目非小于预设数目时,存储器管理电路202是使用子物理单元来写入更新数据。但本发明不限于此,在本发明另一范例实施例中,存储器管理电路202亦可先执行如图7B所述的数据合并程序,将属于某一个已更新逻辑单元的有效数据整理至从闲置区504提取的物理单元中并且将此逻辑单元重新映射此物理单元,由此使得暂存于全局随机区550的更新数据所属的逻辑单元的数目小于预设数目并且将新的更新数据写入至全局随机区550中。
图12A与图12B是根据第一范例实施例所绘示的数据写入方法的流程图,其中图12A是绘示设置全局随机区550与全局随机区搜寻表的步骤并且图12B是绘示写入更新数据的步骤。
请参照图12A,在步骤S1201中,至少一个物理单元会从闲置区504的物理单元之中被提取作为全局随机区550。在此,全局随机区550可暂存属于多个已更新逻辑单元的多个已更新逻辑页面的数据。
在步骤S1203中,全局随机区搜寻表会被建立以记录在全局随机区中对应已更新逻辑页面的更新信息。特别是,全局随机区可被分配到的逻辑单元数目是小于此装置所具有的逻辑单元数目,此外,在全局随机区搜寻表中关于已更新逻辑页面所属的逻辑单元的信息可以是由所指派的索引编号来记录。例如,在步骤S1203中,索引编号映射表会被建立以记录已更新逻辑单元与索引编号之间的映射关系。
请参照图12B,当主机系统1000下达写入指令以写入更新数据至逻辑页面(以下称为第一逻辑单元的第一逻辑页面)时,在步骤S1211中,写入指令与对应写入指令的更新数据会被接收,并且在步骤S1213中,全局随机区550会被判断是否储存有属于第一逻辑单元的数据。
倘若全局随机区550未储存有属于第一逻辑单元的数据时,则在步骤S1215中,暂存于全局随机区550的更新数据所属的已更新逻辑单元的数目会被判断是否小于预设数目,其中此预设数目是小于此装置所具有的逻辑单元的总数。
倘若已更新逻辑单元的数目小于预设数目时,在步骤S1217中,一个未使用的索引编号(以下称为第一索引编号)会被配置给第一逻辑单元。并且,之后,在步骤S1219中,此更新数据会被写入至全局随机区550中并且对应第一逻辑页面的更新信息会通过使用对应第一逻辑单元的第一索引编号被记录在全局随机区搜寻表中。
倘若已更新逻辑单元的数目非小于预设数目时,在步骤S1221中,一个物理单元(以下称为第一物理单元)会从闲置区的物理单元之中被提取作为对应第一逻辑单元的子物理单元并且更新数据会被写入至对应第一逻辑单元的子物理单元中。
倘若全局随机区550储存有属于第一逻辑单元的数据时,则步骤S1219会被执行。
[第二范例实施例]
第二范例实施例与第一范例实施例的差异在于,除了第一范例实施例所述的区块管理步骤与数据写入步骤之外,在第二范例实施例中,当接收到写入指令与更新数据时,此更新数据所属的逻辑单元还会被判断是否为频繁写入的区域,其中仅属于频繁写入的区域的更新数据才会被写入至全局随机区中。第二范例实施例的存储器控制器与存储器储存装置的硬件架构本质上是相同于第一范例实施例,以下将使用第一范例实施例的硬件架构来描述第二范例实施例。
在第二范例实施例中,存储器控制器104的存储器管理电路202会记录对应每一逻辑单元的写入次数。例如,每当主机系统将数据储存至一个逻辑单元时,对应此逻辑单元的写入次数会被加1。此外,存储器管理电路202会根据此些写入次数将逻辑单元区分为较常被使用的热逻辑区与较少被使用的冷逻辑区。例如,在本范例实施例中,存储器管理电路202会依据写入次数由大到小将逻辑单元排序并且前80%的逻辑单元分组为热逻辑区并且交其它的逻辑单元分组至冷逻辑区。依据写入次数区分热逻辑区与冷逻辑区仅是一个范例,本发明不限于此。
在本范例实施例中,当主机系统1000欲储存数据至某一个逻辑单元的某一个逻辑页面时,存储器管理电路202会判断此逻辑单元是否属于冷逻辑区。
倘若此逻辑单元属于冷逻辑区时,存储器管理电路202会使用子物理单元来写入此更新数据。并且,倘若此逻辑单元非属于冷逻辑区时,存储器管理电路202才会根据全局随机区550的储存状态来决定是否将更新数据写入至全局随机区550中。也就是说,仅当更新数据所属的逻辑单元属于热逻辑区时,存储器管理电路202才会判断全局随机区550是否存有属于此逻辑单元的数据和暂存于全局随机区550的更新数据所属的逻辑单元的数目是否小于预设数目并且根据判断决定是否将更新数据写入至全局随机区550中(如第一范例实施例所述)。
图13是根据第二范例实施例所绘示的写入更新数据的流程图。
请参照图13,当主机系统1000下达写入指令以写入更新数据至逻辑页面(以下称为第一逻辑单元的第一逻辑页面)时,在步骤S1211中,写入指令与对应写入指令的更新数据会被接收,并且在步骤S1301中,逻辑单元会根据写入次数被区分为热逻辑区与冷逻辑区并且第一逻辑单元会被判断是否属于冷逻辑区。
倘若第一逻辑单元非属于冷逻辑区时,在步骤S1213中,全局随机区550会被判断是否储存有属于第一逻辑单元的数据。
倘若全局随机区550未储存有属于第一逻辑单元的数据时,在步骤S1215中,判断暂存于全局随机区550的更新数据所属的已更新逻辑单元的数目会被判断是否小于预设数目。
倘若已更新逻辑单元的数目小于预设数目时,在步骤S1217中,一个未使用的索引编号(以下称为第一索引编号)会被配置给第一逻辑单元。并且之后,在步骤S1219中,此更新数据会被写入至全局随机区550中并且对应第一逻辑页面的更新信息会通过使用对应第一逻辑单元的第一索引编号被记录在全局随机区搜寻表中。
倘若已更新逻辑单元的数目非小于预设数目时,在步骤S1221中,一个物理单元(以下称为第一物理单元)会从闲置区的物理单元之中被提取作为对应第一逻辑单元的子物理单元并且更新数据会被写入至对应第一逻辑单元的子物理单元中。
此外,倘若全局随机区550储存有属于第一逻辑单元的数据时,则步骤S1219会被执行。
另外,倘若第一逻辑单元属于冷逻辑区时,步骤S1221会被执行。
之后,在步骤S1219与步骤S1221之后,在步骤S1303中,对应第一逻辑单元的写入次数会被更新。
[第三范例实施例]
第三范例实施例与第一范例实施例的差异在于,除了第一范例实施例所述的区块管理步骤与数据写入步骤之外,在第三范例实施例中,全局随机区的物理单元会被至少分成两组(即,第一全局随机区与第二全局随机区)并且第一全局随机区与第二全局随机区至多可被分别地写入属于预定数目的逻辑单元的更新数据。也就是说,在第二范例实施例中,两个如第一范例实施例所述的全局随机区搜寻表会被用来记录对应第一全局随机区的更新信息与对应第二全局随机区的更新信息。第三范例实施例的存储器控制器与存储器储存装置的硬件架构本质上是相同于第一范例实施例,以下将使用第一范例实施例的硬件架构来描述第三范例实施例。
图14是根据第三范例实施例所绘示的配置全局随机区的范例。
请参照图14,存储器控制器104的存储器管理电路202会从闲置区504中提取物理单元作为第一全局随机区550‑1与第二全局随机区550‑2。此外,存储器管理电路202会为第一全局随机区550‑1与第二全局随机区550‑2分别地配置第一全局随机区搜寻表与第二全局随机区搜寻表。在此,第一全局随机区搜寻表与第一全局随机区搜寻表的数据结构与大小是相同于第一范例实施例的全局随机区搜寻表800。
在本范例实施例中,存储器管理电路202会使用第一全局随机区550‑1与第二全局随机区550‑2来分别地储存属于不同逻辑单元的更新数据,其中暂存在第一全局随机区550‑1的更新数据所属的逻辑单元的数目不会超过预设数目并且暂存在第二全局随机区550‑2的更新数据所属的逻辑单元的数目不会超过预设数目。例如,在预设数目设定为128的例子,第一全局随机区550‑1最多储存属于128个逻辑单元的更新数据并且第二全局随机区550‑2最多储存属于128个逻辑单元的更新数据。
具体来说,当主机系统1000欲储存数据至某一个逻辑单元的某一个逻辑页面时,存储器管理电路202会判断第一全局随机区550‑1或第二全局随机区550‑2是否已存有属于此逻辑单元的数据。
当第一全局随机区550‑1存有属于此逻辑单元的数据,存储器管理电路202会将此更新数据写入至第一全局随机区550‑1中并且根据已指派给此逻辑单元的索引编号在第一全局随机区搜寻表中记录对应此逻辑页面的更新信息。
当第二全局随机区550‑2存有属于此逻辑单元的数据,存储器管理电路202会将此更新数据写入至第二全局随机区550‑2中并且根据已指派给此逻辑单元的索引编号在第二全局随机区搜寻表中记录对应此逻辑页面的更新信息。
当第一全局随机区550‑1与第二全局随机区550‑2未存有属于此逻辑单元的数据,存储器管理电路202会判断暂存于第一全局随机区550‑1的更新数据所属的逻辑单元的数目是否小于预设数目。
倘若暂存于第一全局随机区550‑1的更新数据所属的逻辑单元的数目小于预设数目时,存储器管理电路202会将第一全局随机区搜寻表中未使用的索引编号指派给此逻辑单元,将属于此逻辑页面的更新数据写入至第一全局随机区550并且使用指派给此逻辑单元的索引编号来在第一全局随机区搜寻表中记录对应此逻辑页面的更新数据。
倘若暂存于第一全局随机区550‑1的更新数据所属的逻辑单元的数目非小于预设数目时,存储器管理电路202会判断暂存于第二全局随机区550‑2的更新数据所属的逻辑单元的数目是否小于预设数目。
倘若暂存于第二全局随机区550‑2的更新数据所属的逻辑单元的数目小于预设数目时,存储器管理电路202会将第二全局随机区搜寻表中未使用的索引编号指派给此逻辑单元,将属于此逻辑页面的更新数据写入至第二全局随机区550‑2并且使用指派给此逻辑单元的索引编号来在第二全局随机区搜寻表中记录对应此逻辑页面的更新数据。
倘若暂存于第二全局随机区550‑2的更新数据所属的逻辑单元的数目非小于预设数目时,存储器管理电路202会从闲置区504中提取一个物理单元作为子物理单元来写入更新数据。
图15A与图15B是根据第三范例实施例所绘示的数据写入方法的流程图,其中图15A是绘示设置全局随机区与全局随机区搜寻表的步骤并且图15B是绘示写入更新数据的步骤。
请参照图15A,在步骤S1501中,至少一个物理单元会从闲置区504的物理单元之中被提取作为第一全局随机区550‑1并且至少一个物理单元会从闲置区504的物理单元之中被提取作为第二全局随机区550‑2。在此,第一全局随机区550‑1会暂存属于多个已更新逻辑单元(以下称为第一已更新逻辑单元)的多个已更新逻辑页面(以下称为第一已更新逻辑页面)的数据并且第二全局随机区550‑2会暂存属于多个已更新逻辑单元(以下称为第二已更新逻辑单元)的多个已更新逻辑页面(以下称为第二已更新逻辑页面)的数据。
在步骤S1503中,第一全局随机区搜寻表与第二全局随机区搜寻表会分别地被建立,其中第一全局随机区搜寻表记录在第一全局随机区中对应第一已更新逻辑页面的更新信息并且第二全局随机区搜寻表记录在第二全局随机区中对应第二已更新逻辑页面的更新信息。特别是,在第一全局随机区搜寻表与第二全局随机区搜寻表中关于已更新逻辑页面所属的逻辑单元的信息是以所指派的索引编号来记录。
请参照图15B,当主机系统1000下达写入指令以写入更新数据至逻辑页面(以下称为第一逻辑单元的第一逻辑页面)时,在步骤S1511中,写入指令与对应写入指令的更新数据会被接收,并且在步骤S1513中,第一全局随机区550‑1会被判断是否储存有属于第一逻辑单元的数据。
倘若第一全局随机区550‑1未储存有属于第一逻辑单元的数据时,则在步骤S1515中,第二全局随机区550‑1会被判断是否储存有属于第一逻辑单元的数据。
倘若第二全局随机区550‑2未储存有属于第一逻辑单元的数据时,在步骤S1517中,暂存于第一全局随机区550‑1的更新数据所属的已更新逻辑单元的数目会被判断是否小于预设数目。
倘若暂存于第一全局随机区550‑1的更新数据所属的已更新逻辑单元的数目小于预设数目时,在步骤S1519中,在第一全局随机区搜寻表中未使用的索引编号(以下称为第一索引编号)会被配置给第一逻辑单元。并且,之后,在步骤S1521中,此更新数据会被写入至第一全局随机区550‑1中并且对应第一逻辑页面的更新信息会通过使用对应第一逻辑单元的第一索引编号被记录在第一全局索引映射表中。
倘若暂存于第一全局随机区550‑1的更新数据所属的已更新逻辑单元的数目非小于预设数目时,在步骤S1523中,暂存于第二全局随机区550‑2的更新数据所属的已更新逻辑单元的数目会被判断是否小于预设数目。
倘若暂存于第二全局随机区550‑2的更新数据所属的已更新逻辑单元的数目小于预设数目时,在步骤S1525中,在第二全局随机区搜寻表中未使用的索引编号(以下称为第二索引编号)会被配置给第一逻辑单元。并且,之后,在步骤S1527中,此更新数据会被写入至第二全局随机区550‑2中并且对应第一逻辑页面的更新信息会通过使用对应第一逻辑单元的第二索引编号被记录在第二全局随机区搜寻表中。
倘若暂存于第二全局随机区550‑2的更新数据所属的已更新逻辑单元的数目非小于预设数目时,在步骤S1529中,一个物理单元(以下称为第一物理单元)会从闲置区的物理单元之中被提取作为对应第一逻辑单元的子物理单元并且更新数据会被写入至对应第一逻辑单元的子物理单元中。
此外,倘若在步骤S1513中判断第一全局随机区550‑1储存有属于第一逻辑单元的数据时,则步骤S1521会直接被执行。并且,倘若在步骤S1515中判断第二全局随机区550‑2储存有属于第一逻辑单元的数据时,则步骤S1527会被执行。
值得一提的,仅管在第三范例实施例中,以配置两个全局随机区来作说明,但本发明不限于此,全局随机区的数目可以超过2。
综上所述,根据本发明一范例实施例的数据写入方法、存储器控制器与存储器储存装置在将更新数据写入全局随机区之前会判断暂存于全局随机区的更新数据所属的逻辑单元的数目是否小于预设数目,并且仅当暂存于全局随机区的更新数据所属的逻辑单元的数目小于预设数目才将更新数据暂存于全局随机区中。因此,全局随机表仅需记录预设数目的逻辑单元的更新信息并且全局随机表的大小可有效地缩小。基此,在配置小容量的缓冲存储器的存储器储存装置中亦可使用全局随机物理单元来储存数据并且有效地提升配置小容量的缓冲存储器的存储器储存装置的写入速度。此外,根据本发明另一范例实施例的数据写入方法、存储器控制器与存储器储存装置,逻辑单元会被区分为热逻辑区与冷逻辑区,并且仅将属于热逻辑区的更新数据暂存至全局随机区中,还可使仅能暂存有限的逻辑单元的更新数据的全局随机区被有效地利用。此外,根据本发明另一范例实施例的数据写入方法、存储器控制器与存储器储存装置,多个全局随机区会被配置以分别地暂存不同逻辑单元的更新数据,由此可使更多逻辑单元的更新数据可被暂存至全局随机区中,以更提升配置小容量的缓冲存储器的存储器储存装置的写入速度。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附的权利要求范围所界定者为准。

数据写入方法、存储器控制器与储存装置.pdf_第1页
第1页 / 共49页
数据写入方法、存储器控制器与储存装置.pdf_第2页
第2页 / 共49页
数据写入方法、存储器控制器与储存装置.pdf_第3页
第3页 / 共49页
点击查看更多>>
资源描述

《数据写入方法、存储器控制器与储存装置.pdf》由会员分享,可在线阅读,更多相关《数据写入方法、存储器控制器与储存装置.pdf(49页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102968385 A(43)申请公布日 2013.03.13CN102968385A*CN102968385A*(21)申请号 201110256271.X(22)申请日 2011.08.31G06F 12/08(2006.01)G06F 13/16(2006.01)(71)申请人群联电子股份有限公司地址中国台湾苗栗县(72)发明人叶志刚(74)专利代理机构北京市柳沈律师事务所 11105代理人史新宏(54) 发明名称数据写入方法、存储器控制器与储存装置(57) 摘要本发明是关于一种用于可复写式非易失性存储器模块的数据写入方法及使用此方法的存储器控制器与储存装置。本。

2、方法包括提取物理单元作为全局随机区并且建立全局随机区搜寻表以记录对应暂存于全局随机区中的更新数据所属的逻辑页面的更新信息。本方法还包括接收欲储存至一逻辑单元的更新数据;以及为此逻辑单元配置索引编号,将此更新数据写入至全局随机区中并且使用对应此逻辑单元的索引编号在全局随机区搜寻表中记录对应的更新信息。基此,可使用较小的全局随机区搜寻表来记录对应暂存于使用全局随机区的更新数据所属的逻辑页面的更新信息。(51)Int.Cl.权利要求书6页 说明书21页 附图21页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 6 页 说明书 21 页 附图 21 页1/6页21.一种数据写入方法。

3、,用于一可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个物理区块,每一该多个物理区块具有多个物理页面,该多个物理区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该些物理区块被分组为多个物理单元,该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,多个逻辑单元被配置以映射该数据区的该些物理单元,并且每一该些逻辑单元具有多个逻辑页面,该数据写入方法包括:从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该多个已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元;建立一全局随机区搜寻表以。

4、记录在该全局随机区中对应该些已更新逻辑页面的多个更新信息;接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元之中的一第一逻辑单元;判断该全局随机区是否储存有属于该第一逻辑单元的数据;当该全局随机区未储存有属于该第一逻辑单元的数据时,判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数;以及当该些已更新逻辑单元的数目小于该预设数目时,为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。2.根。

5、据权利要求1所述的数据写入方法,还包括:当该全局随机区储存有属于该第一逻辑单元的数据时,将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。3.根据权利要求1所述的数据写入方法,还包括:当该些已更新逻辑单元的数目非小于该预设数目时,从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存属于该第一逻辑单元的数据。4.根据权利要求1所述的数据写入方法,还包括:记录对应每一该些逻辑单元的一写入次数;以及根据对应。

6、该些逻辑单元的该些写入次数将该些逻辑单元区分为一热逻辑区与一冷逻辑区。5.根据权利要求4所述的数据写入方法,还包括:在判断该全局随机区是否储存有属于该第一逻辑单元的数据之前还判断该第一逻辑单元是否属于该冷逻辑区;以及仅当该第一逻辑单元非属于该冷逻辑区时,才执行上述判断该全局随机区是否储存有属于该第一逻辑单元的数据的步骤。6.根据权利要求5所述的数据写入方法,还包括:当该第一逻辑单元属于该冷逻辑区时,从该闲置区的该些物理单元之中提取一第一物权 利 要 求 书CN 102968385 A2/6页3理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中。7。

7、.一种数据写入方法,用于一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个物理区块,每一该多个物理区块具有多个物理页面,该多个物理区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该些物理区块被分组为多个物理单元,该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,多个逻辑单元被配置以映射该数据区的该些物理单元,并且每一该些逻辑单元具有多个逻辑页面,该数据写入方法包括:从该闲置区的该些物理单元中提取至少一个物理单元以作为一第一全局随机区且从该闲置区的该些物理单元中提取至少一个物理单元以作为一第二全局随机区,其中该第一全局随机区暂存属于多个第一已更新逻辑页。

8、面的数据,该第二全局随机区暂存属于多个第二已更新逻辑页面的数据,该些第一已更新逻辑页面属于多个第一已更新逻辑单元,并且该些第二已更新逻辑页面属于多个第二已更新逻辑单元;建立一第一全局随机区搜寻表以记录在该第一全局随机区中对应该些第一已更新逻辑页面的多个更新信息和建立一第二全局随机区搜寻表以记录在该第二全局随机区中对应该些第二已更新逻辑页面的多个更新信息;接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元中的一第一逻辑单元;判断该第一全局随机区或该第二全局随机区是否储存有属于该第一逻辑单元的数据;当该第一全局随机区与该第二全局随机区皆。

9、未储存有属于该第一逻辑单元的数据时,判断该些第一已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数;当该些第一已更新逻辑单元的数目小于该预设数目时,为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该第一全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该第一全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息;当该些第一已更新逻辑单元的数目非小于该预设数目时,判断该些第二已更新逻辑单元的数目是否小于该预设数目;以及当该些第二已更新逻辑单元的数目小于该预设数目时,为该第一逻辑单元配置一第二索引编号,将该更新数据写入至该第二全局随机区中并且使用对应该第一逻辑单元。

10、的该第二索引编号在该第二全局随机区搜寻表中记录对应该第一逻辑页面的该更新信息。8.一种存储器控制器,用于控制一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个物理区块,并且每一该多个物理区块具有多个物理页面,该存储器控制器包括:一主机接口,用以电性连接至一主机系统;一存储器接口,用以电性连接至该可复写式非易失性存储器模块;以及一存储器管理电路,电性连接至该主机接口与该存储器接口,并且用以将该多个物理区块至少分组为一数据区与一闲置区,其中该存储器管理电路将属于该数据区与该闲置区的该多个物理区块分组为多个物权 利 要 求 书CN 102968385 A3/6页4理单元,其中该闲。

11、置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,其中该存储器管理电路配置多个逻辑单元以映射该数据区的该些物理单元,其中每一该些逻辑单元具有多个逻辑页面,其中该存储器管理电路从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该些已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元,其中该存储器管理电路建立一全局随机区搜寻表以记录在该全局随机区中对应该些已更新逻辑页面的多个更新信息,其中该存储器管理电路接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元。

12、之中的一第一逻辑单元,其中该存储器管理电路判断该全局随机区是否储存有属于该第一逻辑单元的数据,其中当该全局随机区未储存有属于该第一逻辑单元的数据时,该存储器管理电路判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数,其中当该些已更新逻辑单元的数目小于该预设数目时,该存储器管理电路为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。9.根据权利要求8所述的存储器控制器,其中当该全局随机区储存有属于该第一逻辑单元的数据时,该存储器管理电路将该更新数据写。

13、入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。10.根据权利要求8所述的存储器控制器,其中当该些已更新逻辑单元的数目非小于该预设数目时,该存储器管理电路从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存属于该第一逻辑单元的数据。11.根据权利要求8所述的存储器控制器,其中该存储器管理电路记录对应每一该些逻辑单元的一写入次数并且根据对应该些逻辑单元的该些写入次数将该些逻辑单元区分为一热逻辑区与一冷逻辑区。12.。

14、根据权利要求11所述的存储器控制器,其中该存储器管理电路还判断该第一逻辑单元是否属于该冷逻辑区,并且仅当该第一逻辑单元非属于该冷逻辑区时,该存储器管理电路才判断该全局随机区是否储存有属于该第一逻辑单元的数据,其中当该第一逻辑单元属于该冷逻辑区时,该存储器管理电路从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中。13.一种存储器储存装置,包括:权 利 要 求 书CN 102968385 A4/6页5一连接器,用以电性连接至一主机系统;一可复写式非易失性存储器模块,具有多个物理区块并且每一该多个物理区块具有多。

15、个物理页面;以及一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,并且用以将该多个物理区块至少分组为一数据区与一闲置区,其中该存储器控制器将属于该数据区与该闲置区的该多个物理区块分组为多个物理单元,其中该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,其中该存储器控制器配置多个逻辑单元以映射该数据区的该些物理单元,其中每一该些逻辑单元具有多个逻辑页面,其中该存储器控制器从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该些已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元,其中该存储器控制。

16、器建立一全局随机区搜寻表以记录在该全局随机区中对应该些已更新逻辑页面的多个更新信息,其中该存储器控制器接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元之中的一第一逻辑单元,其中该存储器控制器判断该全局随机区是否储存有属于该第一逻辑单元的数据,其中当该全局随机区未储存有属于该第一逻辑单元的数据时,该存储器控制器判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数,其中当该些已更新逻辑单元的数目小于该预设数目时,该存储器控制器为该第一逻辑单元配置一第一索引编号,将该更新数据写入至该全局随机区中并且使用对应。

17、该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。14.根据权利要求13所述的存储器储存装置,其中当该全局随机区储存有属于该第一逻辑单元的数据时,该存储器控制器将该更新数据写入至该全局随机区中并且使用对应该第一逻辑单元的该第一索引编号在该全局随机区搜寻表中记录对应该第一逻辑页面的一更新信息。15.根据权利要求13所述的存储器储存装置,其中当该些已更新逻辑单元的数目非小于该预设数目时,该存储器控制器从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以。

18、储存属于该第一逻辑单元的数据。16.根据权利要求13所述的存储器储存装置,其中该存储器控制器记录对应每一该些逻辑单元的一写入次数并且根据对应该些逻辑单元的该些写入次数将该些逻辑单元区分为一热逻辑区与一冷逻辑区。17.根据权利要求16所述的存储器储存装置,其中该存储器控制器还判断该第一逻辑单元是否属于该冷逻辑区,并且仅当该第一逻辑单元非属于该冷逻辑区时,该存储器控制器才判断该全局随机区是否储存有属于该第一逻辑单元的数据。18.根据权利要求17所述的存储器储存装置,权 利 要 求 书CN 102968385 A5/6页6其中当该第一逻辑单元属于该冷逻辑区时,该存储器控制器从该闲置区的该些物理单元之。

19、中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中。19.一种数据写入方法,用于一可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个物理区块,每一该多个物理区块具有多个物理页面,该多个物理区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该多个物理区块被分组为多个物理单元,该闲置区的该些物理单元用以替换该数据区的该些物理单元以写入数据,多个逻辑单元被配置以映射该数据区的该些物理单元,并且每一该些逻辑单元具有多个逻辑页面,该数据写入方法包括:从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该。

20、全局随机区用以暂存属于多个已更新逻辑页面的数据,并且该些已更新逻辑页面属于该些逻辑单元之中的多个已更新逻辑单元;接收一写入指令与对应该写入指令的一更新数据,其中该更新数据是属于一第一逻辑页面并且该第一逻辑页面属于该些逻辑单元之中的一第一逻辑单元;判断该全局随机区是否储存有属于该第一逻辑单元的数据;当该全局随机区储存有属于该第一逻辑单元的数据时,将该更新数据写入至该全局随机区;当该全局随机区未储存有属于该第一逻辑单元的数据时,判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该些逻辑单元的总数;当该些已更新逻辑单元的数目小于该预设数目时,将该更新数据写入至该全局随机区中;以及当该些。

21、已更新逻辑单元的数目非小于该预设数目时,从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其中该子物理单元只用以储存该对应该第一逻辑单元的数据。20.一种存储器储存装置,包括:一连接器,用以电性连接至一主机系统;一可复写式非易失性存储器模块,具有多个物理区块并且每一该多个物理区块具有多个物理页面;以及一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,并且用以将该多个物理区块至少分组为一数据区与一闲置区,其中该存储器控制器将属于该数据区与该闲置区的该多个物理区块分组为多个物理单元,其中该闲置。

22、区的该些物理单元用以替换该数据区的该些物理单元以写入数据,其中该存储器控制器配置多个逻辑单元以映射该数据区的该些物理单元,其中每一该多个逻辑单元具有多个逻辑页面,其中该存储器控制器从该闲置区的该些物理单元中提取至少一个物理单元作为一全局随机区,其中该全局随机区暂存属于多个已更新逻辑页面的数据,并且该多个已更新逻辑页面属于该多个逻辑单元之中的多个已更新逻辑单元,其中该存储器控制器接收一写入指令与对应该写入指令的一更新数据,其中该更新数权 利 要 求 书CN 102968385 A6/6页7据是属于一第一逻辑页面并且该第一逻辑页面属于该多个逻辑单元之中的一第一逻辑单元,其中该存储器控制器判断该全局。

23、随机区是否储存有属于该第一逻辑单元的数据,其中当该全局随机区未储存有属于该第一逻辑单元的数据时,该存储器控制器判断该些已更新逻辑单元的数目是否小于一预设数目,其中该预设数小于该多个逻辑单元的总数,其中当该多个已更新逻辑单元的数目小于该预设数目时,该存储器控制器将该更新数据写入至该全局随机区中,其中当该全局随机区储存有属于该第一逻辑单元的数据时,该存储器控制器将该更新数据写入至该全局随机区中,其中当该些已更新逻辑单元的数目非小于该预设数目时,该存储器控制器从该闲置区的该些物理单元之中提取一第一物理单元作为对应该第一逻辑单元的一子物理单元并且将该更新数据写入至对应该第一逻辑单元的该子物理单元中,其。

24、中该子物理单元只用以储存属于该第一逻辑单元的数据。权 利 要 求 书CN 102968385 A1/21页8数据写入方法、 存储器控制器与储存装置技术领域0001 本发明是有关于一种用于可复写式非易失性存储器的数据写入方法及使用此方法的存储器控制器与存储器储存装置。背景技术0002 数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本型计算机。固态硬盘就是一种以闪存作为储存媒体的。

25、存储器储存装置。因此,近年闪存产业成为电子产业中相当热门的一环。0003 闪存模块具有多个物理区块且每一物理区块具有多个物理页面(physical page),其中在物理区块中写入数据时必须依据物理页面的顺序依序地写入数据。此外,已被写入数据的物理页面并需先被抹除后才能再次用于写入数据。特别是,物理区块为抹除的最小单位,并且物理页面为可编程(亦称写入)的最小单元。因此,在闪存模块的管理中,物理区块会被区分为数据区与闲置区。0004 数据区的物理区块是用以储存主机系统所储存的数据。具体来说,存储器储存装置中的存储器管理电路会将主机系统所存取的逻辑存取地址转换为逻辑区块的逻辑页面并且将逻辑区块的逻。

26、辑页面映射至数据区的物理区块的物理页面。也就是说,闪存模块的管理上数据区的物理区块是被视为已被使用的物理区块(例如,已储存主机系统所写入的数据)。例如,存储器管理电路会使用逻辑-物理地址映射表来记载逻辑区块与数据区的物理区块的映射关系,其中逻辑区块中的逻辑页面是依序的对应所映射的物理区块的物理页面。0005 闲置区的物理区块是用以轮替数据区中的物理区块。具体来说,如上所述,已写入数据的物理区块必须被抹除后才可再次用于写入数据,因此,闲置区的物理区块是被设计用于写入更新数据以替换映射逻辑区块的物理区块。基此,在闲置区中的物理区块为空或可使用的物理区块,即无记录数据或标记为已没用的无效数据。000。

27、6 也就是说,数据区与闲置区的物理区块的物理页面是以轮替方式来映射逻辑区块的逻辑页面,以储存主机系统所写入的数据。例如,存储器储存装置的存储器管理电路会从闲置区中提取一个或多个物理区块作为全局随机物理区块,并且当主机系统欲写入更新数据的逻辑存取地址是对应储存装置的某一逻辑单元的某一逻辑页面时,储存装置的存储器管理电路会将此更新数据写入至全局随机物理区块的物理页面中。0007 此外,当更新数据被写入至全局随机物理区块的物理页面中,存储器管理电路必须在一全局随机区搜寻表中记录关于已被更新的逻辑页面的更新信息。也就是说,在全局随机区搜寻表中会记录已更新逻辑页面的更新数据被写入至那些全局随机物理区块的。

28、物理页面中。在此,在全局随机区搜寻表中用以储存一个已更新逻辑页面的更新信息的记录称为登录(entry)。每一个登录中包含用以记录已更新逻辑页面的地址的字段、用以记录在说 明 书CN 102968385 A2/21页9全局随机物理区块中储存属于此已更新逻辑页面的数据的物理页面的地址的字段以及用以标记此登录是否有效的字段。由于任何一个逻辑页面的数据都有可能暂存至全局随机区中,因此,在全局随机区搜寻表中用以记录已更新逻辑页面的地址的字段必须包含较多的位,才能够储存足够识别所有逻辑页面地址的信息。0008 在存储器储存装置运作期间,全局随机区搜寻表必须被加载至缓冲存储器中,以利于存取。然而,对于配置小。

29、容量的缓冲存储器的存储器储存装置来说,上述全局随机区搜寻表将无法被加载至缓冲存储器。因此,开发一种数据写入方法,以使得在此类配置小容量的缓冲存储器的存储器储存装置中仍可使用全局随机物理区块来储存数据,是有其必要的。发明内容0009 本发明提供一种数据写入方法、存储器控制器、存储器控制器与存储器储存装置,其能够在有限的缓冲存储器容量下使用全局随机物理区块来储存数据。0010 本发明范例实施例提出一种用于可复写式非易失性存储器模块的数据写入方法,其中此可复写式非易失性存储器模块具有多个物理区块,每一物理区块具有多个物理页面,此些物理区块至少分组为数据区与闲置区,属于数据区与闲置区的物理区块被分组为。

30、多个物理单元,闲置区的物理单元用以替换数据区的物理单元以写入数据,多个逻辑单元被配置以映射数据区的物理单元,并且每一逻辑单元具有多个逻辑页面。本数据写入方法包括从闲置区中提取至少一个物理单元作为全局随机区,其中全局随机区暂存属于多个已更新逻辑页面的数据,并且此些已更新逻辑页面属于上述逻辑单元之中的多个已更新逻辑单元。本数据写入方法也包括建立全局随机区搜寻表以记录在全局随机区中对应此些已更新逻辑页面的多个更新信息。本数据写入方法还包括接收写入指令与对应此写入指令的更新数据,其中此更新数据是属于第一逻辑页面并且第一逻辑页面属于第一逻辑单元。本数据写入方法亦包括判断全局随机区是否储存有属于第一逻辑单。

31、元的数据;以及当全局随机区未储存有属于第一逻辑单元的数据时,还判断此些已更新逻辑单元的数目是否小于预设数目,其中此预设数小于逻辑单元的总数。本数据写入方法还包括,当此些已更新逻辑单元的数目小于预设数目时,为第一逻辑单元配置第一索引编号,将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。0011 在本发明的一实施例中,上述的数据写入方法还包括,当全局随机区储存有属于第一逻辑单元的数据时,将更新数据写入至全局随机区中并且使用对应第一逻辑单元的第一索引编号在全局随机区搜寻表中记录对应第一逻辑页面的更新信息。0012 在本发明的一实施。

32、例中,上述的数据写入方法还包括,当此些已更新逻辑单元的数目非小于预设数目时,从闲置区中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中,其中此子物理单元只用以储存属于第一逻辑单元的数据。0013 在本发明的一实施例中,上述的数据写入方法还包括:记录对应每一逻辑单元的写入次数;以及根据对应逻辑单元的写入次数将逻辑单元区分为热逻辑区与冷逻辑区。0014 在本发明的一实施例中,上述的数据写入方法还包括,在判断全局随机区是否储说 明 书CN 102968385 A3/21页10存有属于第一逻辑单元的数据之前更判断第一逻辑单元是否属于冷逻辑区;以及仅当第。

33、一逻辑单元非属于冷逻辑区时,才执行上述判断全局随机区是否储存有属于第一逻辑单元的数据的步骤。0015 在本发明的一实施例中,上述的数据写入方法还包括,当第一逻辑单元属于冷逻辑区时,从闲置区的物理单元之中提取第一物理单元作为对应第一逻辑单元的子物理单元并且将更新数据写入至对应第一逻辑单元的子物理单元中。0016 本发明范例实施例提出一种用于可复写式非易失性存储器模块的数据写入方法,其中此可复写式非易失性存储器模块具有多个物理区块,每一物理区块具有多个物理页面,此些物理区块至少分组为数据区与闲置区,属于数据区与闲置区的物理区块被分组为多个物理单元,闲置区的物理单元用以替换数据区的物理单元以写入数据。

34、,多个逻辑单元被配置以映射数据区的物理单元,并且每一逻辑单元具有多个逻辑页面。本数据写入方法包括从闲置区的中提取至少一个物理单元作为第一全局随机区且从闲置区的物理单元中提取至少一个物理单元作为第二全局随机区,其中第一全局随机区暂存属于多个第一已更新逻辑页面的数据,第二全局随机区暂存属于多个第二已更新逻辑页面的数据,第一已更新逻辑页面属于多个第一已更新逻辑单元,并且第二已更新逻辑页面属于多个第二已更新逻辑单元。本数据写入方法也包括建立第一全局随机区搜寻表以记录在第一全局随机区中对应第一已更新逻辑页面的多个更新信息和建立第二全局随机区搜寻表以记录在第二全局随机区中对应第二已更新逻辑页面的多个更新信。

35、息。本数据写入方法还包括接收写入指令与对应写入指令的更新数据,其中更新数据是属于第一逻辑页面并且第一逻辑页面属于一第一逻辑单元。本数据写入方法亦包括判断第一全局随机区或第二全局随机区是否储存有属于第一逻辑单元的数据;以及当第一全局随机区与第二全局随机区皆未储存有属于第一逻辑单元的数据时,判断第一已更新逻辑单元的数目是否小于预设数目,其中此预设数小于逻辑单元的总数。本数据写入方法也包括,当第一已更新逻辑单元的数目小于预设数目时,为第一逻辑单元配置第一索引编号,将更新数据写入至第一全局随机区中并且使用对应第一逻辑单元的第一索引编号在第一全局随机区搜寻表中记录对应第一逻辑页面的更新信息。此外,本数据。

36、写入方法还包括,当第一已更新逻辑单元的数目非小于预设数目时,判断第二已更新逻辑单元的数目是否小于预设数目。本数据写入方法还包括,当第二已更新逻辑单元的数目小于预设数目时,为第一逻辑单元配置一第二索引编号,将更新数据写入至第二全局随机区中并且使用对应第一逻辑单元的第二索引编号在第二全局随机区搜寻表中记录对应第一逻辑页面的更新信息。0017 本发明范例实施例提出一种存储器控制器,用于控制可复写式非易失性存储器模块,其中此可复写式非易失性存储器模块具有多个物理区块,并且每一物理区块具有多个物理页面。存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口与存储器接口,并且用以将此些物理区块至少分组为数据区与闲置区。此外,存储器管理电路将属于数据区与闲置区的物理区块分组为多个物理单元,其中闲置区的物理单元用以替换数据区的物理单元以写入数据。另外,存储器管理电路配置多个逻辑单元以映射数据区的物理单元,其中每一逻辑单元具有多个逻辑页面。存储器管理电路从闲置区的物理单元中提取至少一个物理单元作为全局随机区,其中全局随机区暂说 明 书CN 102968385 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1