数据储存装置及闪存的数据写入方法

文档序号:6583388阅读:182来源:国知局
专利名称:数据储存装置及闪存的数据写入方法
技术领域
本发明涉及存储器技术领域,更具体地说,涉及一种数据储存装置及闪存的数据 写入方法。
背景技术
图1为主机传送写入命令至一数据储存装置的时序图。假设该数据储存装置包括 一闪存以供储存数据。当一主机欲将数据写入至一数据储存装置,首先会经由输入/输出 数据总线传送第一写入命令(0x80)至数据储存装置。接着,主机依序向数据储存装置传送 列地址及行地址,以指明数据欲存入的地址。接着主机向数据储存装置传送欲写入闪存的 数据,并向数据储存装置传送第二写入命令(0x10)。当第二写入命令传送完毕,数据储存 装置会将一待命/忙碌(ready/busy)导线的电位下拉,以阻止主机继续发送后续命令或数 据。依数据储存装置与主机间数据传送的规格,此电位下拉时间Tprag不可长于250ms。于待 命/忙碌导线的电位下拉时间Tprag内,数据储存装置一般会立即将其所接收的数据写入闪 存的写入地址。待数据写入完毕之后,数据储存装置会将待命/忙碌导线的电位上拉。主 机便接着传送一读取状态(read status)命令,以向数据储存装置询问数据写入是否成功。闪存通常包括多个区块(block),而每一区块包括多个页(page)以供储存数据。 通常一页仅能够被写入一次数据,若要将该页的数据更新,则必须将整个区块的所有页所 储存的数据一并抹除,才能再次将数据写入该页。因此,当数据储存装置欲执行写入命令 时,若主机指定的写入地址所对应的页之前已储存数据,数据储存装置必须将新接收的更 新数据写入至一空白区块,再建立该空白区块与写入地址所对应的原本区块间的对应关 系。此一对应关系称为区块配对(block pair),原本区块称为区块配对的母区块(mother block),而储存更新数据的区块称为区块配对的子区块(child block)。一般而言,由于维持一区块配对需额外纪录许多配对关系,因此数据储存装置必 须控制区块配对的数目,使闪存中仅储存固定数目的区块配对。在一般的情况下,数据储存 装置可以于250ms的时段Tprag内将所接收的数据写入至闪存内。然而,当执行主机传送的 写入命令需要新增一区块配对时,为了使闪存中的区块配对数目维持固定,必须于执行主 机传送的写入命令之前,先将闪存的部份区块配对所包含的母区块所储存的原始数据与子 区块所储存的更新数据相整合为单一区块,以便先使原本的区块配对数目下降,接着才能 执行主机传送的写入命令而新增区块配对。再者,由于每一区块均包含许多页以储存数据,整合区块配对的母区块与子区块 的数据需耗费许多时间。尤其是当闪存为多层单元(multi-level-cell,MLC)闪存或三层 单元(three-level-cell,TLC)闪存时,闪存的每一区块所储存的数据量庞大,而整合区块 配对的母区块与子区块的数据需耗费更多时间,常常无法于短短的250ms内完成,而无法 达到数据储存装置与主机间数据传送的规格的要求。因此,需要一种写入数据至闪存的方 法,以解决上述问题。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种数据储存装 置及闪存的数据写入方法,以解决习知技术存在的问题。本发明解决其技术问题所采用的技术方案之一是构造一种数据储存装置,该数 据储存装置包括一闪存及一控制器。该闪存包括一数据暂存区块以及多个区块配对。该控 制器自一主机接收一写入命令、一写入地址、以及一写入数据,以及当该等区块配对的数目 等于一界限值且执行该写入命令需要增加该等区块配对的数目时,将该写入数据存入该数 据暂存区块并将该写入地址存入一地址储存表,自该等区块配对选取一目标区块配对以供 整合,于自该主机接收多个后续写入命令的多个间隔时间中整合该目标区块配对的一待整 合母区块及一待整合子区块为一整合区块,以及依据该数据暂存区块储存的该写入数据以 及该地址储存表储存的该写入地址执行该写入命令。本发明所述的闪存的数据写入方法,其中该待整合母区块及该待整合子区块的整 合包括下列步骤将该待整合母区块所储存的数据区分为多个数据区段;于每一该等间隔时间中整合该数据区段其中的一及该待整合子区块储存的更新 数据为一区段整合数据;合并该等区段整合数据以写入一空白区块,以作为该整合区块;以及清除该待整合母区块及该待整合子区块中所储存的数据。本发明所述的闪存的数据写入方法,其中该待整合母区块包括多个页,该等数据 区段包括一前半部数据区段及一后半部数据区段,其中地址在前半部的该等多个页所储存 的数据为该前半部数据区段,而地址在后半部的该等多个页所储存的数据为该后半部数据 区段。本发明所述的闪存的数据写入方法,其中该方法更包括当该等区块配对的数目小于该界限值,依据该写入命令将该写入数据写入该写入 地址;以及当该等区块配对的数目等于该界限值,且执行该写入命令不需要新增一区块配对 时,依据该写入命令将该写入数据写入该写入地址。本发明所述的闪存的数据写入方法,其中每一该等区块配对包括一母区块及一子 区块,该母区块储存一逻辑区块地址的原始数据,且该子区块储存该逻辑区块地址的更新 数据。本发明所述的闪存的数据写入方法,其中该写入命令的执行包括下列步骤依据该地址储存表储存的该写入地址决定对应于该写入地址的一特定区块;取得一空白区块并建立该特定区块与该空白区块的区块配对关系;依据该写入地址将该数据暂存区块所储存的该写入数据写入该空白区块;以及自该地址储存表删除该写入地址。本发明所述的闪存的数据写入方法,其中该写入命令的执行更包括自该地址储存表搜寻对应于该特定区块该的至少一第二写入地址;自该数据暂存区块读取对应于该其它写入地址的至少一第二写入数据;依据该第二写入地址将该第二写入数据写入该空白区块;以及
自该地址储存表删除该第二写入地址。本发明所述的闪存的数据写入方法,其中该地址储存表系储存于一随机存取存储 器中。本发明解决其技术问题所采用的技术方案之二是构造提供一种闪存的数据写入 方法。首先,自一主机接收一写入命令,其中该写入命令包括一写入地址、以及一写入数据。 当该闪存所储存的多个区块配对的数目等于一界限值且执行该写入命令需要新增一区块 配对时,将该写入数据存入该闪存的一数据暂存区块,并将该写入地址存入一地址储存表。 接着,自该等区块配对选取一目标区块配对以供整合,其中该目标区块配对包括一待整合 母区块及一待整合子区块。接着,当自该主机接收多个后续写入命令时,于该等后续写入命 令的多个间隔时间中整合该待整合母区块及该待整合子区块为一整合区块。最后,依据该 数据暂存区块储存的该写入数据以及该地址储存表储存的该写入地址执行该写入命令。本发明所述的数据储存装置,其中该控制器将该待整合母区块所储存的数据区分 为多个数据区段,于每一该等间隔时间中整合该数据区段其中的一及该待整合子区块储存 的更新数据为一区段整合数据,合并该等区段整合数据供写入一空白区块以作为该整合区 块,以及清除该待整合母区块及该待整合子区块中所储存的数据,以整合该目标区块配对。本发明所述的数据储存装置,其中该待整合母区块包括多个页,该等数据区段包 括一前半部数据区段及一后半部数据区段,其中地址在前半部的该等多个页所储存的数据 为该前半部数据区段,而地址在后半部的该等多个页所储存的数据为该后半部数据区段。本发明所述的数据储存装置,其中当该等区块配对的数目小于该界限值时,该控 制器依据该写入命令将该写入数据写入该写入地址,以及当该等区块配对的数目等于该界 限值且执行该写入命令不需要新增一区块配对时,该控制器依据该写入命令将该写入数据 写入该写入地址。本发明所述的数据储存装置,其中每一该等区块配对包括一母区块及一子区块, 该母区块储存一逻辑区块地址的原始数据,且该子区块储存该逻辑区块地址的更新数据。本发明所述的数据储存装置,其中该控制器依据该地址储存表储存的该写入地址 决定对应于该写入地址的一特定区块,取得一空白区块并建立该特定区块与该空白区块的 区块配对关系,依据该写入地址将该数据暂存区块所储存的该写入数据写入该空白区块, 以及自该地址储存表删除该写入地址,以执行该写入命令。本发明所述的数据储存装置,其中该控制器更自该地址储存表搜寻对应于该特定 区块该的至少一第二写入地址,自该数据暂存区块读取对应于该其它写入地址的至少一第 二写入数据,依据该第二写入地址将该第二写入数据写入该空白区块,以及自该地址储存 表删除该第二写入地址,以执行该写入命令。本发明所述的数据储存装置,其中该数据储存装置更包括一随机存取存储器,以 储存该地址储存表。本发明所述的数据储存装置,其中该数据储存装置为一记忆卡。实施本发明的数据储存装置及闪存的数据写入方法,具有以下有益效果减少了 整合区块配对的母区块与子区块的数据需耗费的时间,可在短短的250ms内完成,以达到 数据储存装置与主机间数据传送的规格的要求。


下面将结合附图及实施例对本发明作进一步说明,附图中图1为主机传送写入命令至一数据储存装置的时序图;图2为依据本发明的数据储存装置的区块图;图3为依据本发明执行主机所发送的写入命令的方法的流程图;图4为依据本发明的地址储存表的一实施例;图5为闪存的多个区块配对的示意图;图6为闪存的多个区块配对经依图3的方法处理后的示意图;图7为依据本发明执行主机所发送的写入命令的另一方法的流程图;图8为对应于图7的方法的整合闪存的多个区块配对的示意图;图9A为依据本发明的地址储存表的实施例的示意图;以及图9B为依据本发明的地址储存表及地址清理表的实施例的示意图。主要组件符号说明202 主机;204 数据储存装置;212 控制器;214 闪存;216 随机存取存 储器;220 地址储存表;222 数据暂存区块;2 区块配对;231、232、...、23K、M1、 242、...、24K 区块;30、31、60、82 区块配对;100、150、60、82 区块配对;30、31、60、
82 区块配对。
具体实施例方式图2为依据本发明的数据储存装置204的区块图。数据储存装置204耦接至一 主机202,并依据主机202的指示存取数据。于一实施例中,数据储存装置204包括控制器 212、闪存214、以及随机存取存储器216。闪存214包含多个区块(block)以供储存数据, 该等区块包括一数据暂存区块222。闪存214尚包含多组区块配对224。每一区块配对包 含一母区块(mother block)及一子区块(child block),该母区块储存一逻辑区块地址的 原始数据,而该子区块储存该逻辑区块地址的更新数据。例如,母区块231与对应的子区块 241为一组区块配对,而母区块21与对应的子区块24K为另一组区块配对。随机存取存储 器216储存一地址储存表220。于一实施例中,数据储存装置204为一记忆卡。由于纪录区块配对的母区块的各页原始数据与子区块的各页更新数据的对应关 系需要占据大量的数据储存空间,为了有效运用随机存取存储器216的数据储存空间,控 制器212会将闪存214内的区块配对数目限制在一界限值N。当闪存214内的区块配对数 目K即将超过界限值N时,控制器212便会自闪存214的多组区块配对224中选取一组目 标区块配对,然后将目标区块配对的母区块所储存的原始数据与子区块所储存的更新数据 整合后储存入单一区块中,然后将原本的目标区块配对的母区块与子区块的数据清除。如 此闪存214的区块配对数目K便可维持在不超过界限值N。此外,当主机202向数据储存装置204发送写入命令时,若该写入命令要求将新数 据写入闪存214的一特定区块的一特定页,而该特定页已经储存原始数据,控制器212便 需将新数据写入该特定区块所对应的子区块的更新页中,并纪录更新页与特定页的对应关 系。若该特定区块并不具有对应的子区块,则控制器212需自闪存214中取得一空白区块作 为特定区块所对应的子区块,并纪录特定区块及子区块的对应关系以新增一组区块配对。
当执行一写入命令会造成控制器212于闪存214中新增一组区块配对时,而闪存 214中的区块配对数目N已达界限值K时,为了避免区块配对的数目K超过界限值N,控制 器212必须先选区一目标区块配对进行整合以使区块配对数目K下降,才能执行写入命令 并增加区块配对数目,以维持区块配对数目K不超过界限值N。然而,由于目标区块配对的 母区块与子区块均包括数百个页,整合目标区块配对的母区块所储存的原始数据与子区块 所储存的更新数据需要耗费大量的时间,而此时间很可能超过数据储存装置与主机间数据 传送的规格所规定的250ms,如图1所示。此时,控制器212便将目标区块配对的母区块中 所储存的数据分为数个数据区段,利用数据储存装置204自主机202接收后续写入命令时 所间隔的250ms时间分别与目标区块配对的子区块中储存的更新数据进行整合,其中每一 数据区段的整合时间不超过规格所规定的250ms。于一实施例中,控制器212仅将母区块中 所储存的数据分为前半部数据区段与后半部数据区段。如此控制器212便能将目标区块配 对的母区块与子区块整合完毕以维持区块配对数目不变,又能符合主机202与数据储存装 置204间执行写入命令的规格要求。图3为依据本发明执行主机202所发送的写入命令的方法300的流程图。首先, 控制器212自主机202接收写入命令、写入地址、及数据(步骤30幻。接着,控制器212检 查是否执行该写入命令需新建一区块配对,且闪存214所储存的多个区块配对的数目K已 等于一界限值N(步骤304)。若区块配对的数目K尚未达到界限值N,或执行该写入命令不 需新建一区块配对,则控制器212可直接将数据写入包含该写入地址的区块,以完成写入 命令的执行(步骤306)。若区块配对的数目K已等于界限值N,而执行该写入命令需新建 一区块配对,则会使区块配对的数目K增加而超过界限值N。因此,控制器212必须于执行 写入命令前事先将一区块配对整合以减少区块配对的数目。首先,控制器212将所接收的数据存入闪存214的一数据暂存区块222,并将该写 入地址存入随机存取存储器216的一地址储存表220(步骤308)。接着,控制器212自闪存 214的多个区块配对224中选取一目标区块配对(步骤31幻。假设控制器212选取的目标 区块配对为母区块231及子区块M1,以进行整合。接着,控制器212将目标区块配对的母 区块231所储存的数据分为前半部数据区段与后半部数据区段(步骤314)。于一实施例 中,母区块231中地址在前半部的多个页所储存的数据为前半部数据区段,而母区块231中 地址在后半部的多个页所储存的数据为该后半部数据区段。接着,控制器212将母区块231 的前半部数据区段与子区块Ml的更新数据整合,以得到一前半部整合数据(步骤316)。 由于步骤316仅整合目标区块配对的前一半数据,因此可确保控制器212可在该写入命令 所对应的250ms处理时间内完成前半部数据区段的整合。接着,控制器212继续自主机212接收一后续写入命令(步骤317)。当后续写入命 令传送完毕后,控制器212亦得到250ms的处理时间。因此,控制器212便继续母区块231 的后半部数据区段的整合工作,并于整合工作结束后执行写入命令。首先,控制器212将目 标区块配对的母区块231的后半部数据区段与子区块Ml的更新数据整合,以得到一后半 部整合数据(步骤318)。由于步骤318仅整合目标区块配对的后一半数据,因此可确保控 制器212可在该后续写入命令所对应的250ms处理时间内完成后半部数据区段的整合。接 着,控制器212自闪存214取得一空白区块,将前半部整合数据与后半部整合数据写入该空 白区块,并清除目标区块配对包含的母区块231及子区块241所储存的数据(步骤320)。此时,控制器212已成功地将母区块231及子区块241整合为单一区块,从而使闪存214的 区块配对数目减少一。接着,控制器212再依据数据暂存区块222所储存的写入数据以及地址储存表220 所储存的写入地址执行该写入命令。首先,控制器212依据地址储存表220中的写入地址决 定包含该写入地址的一特定区块(步骤32 。接着,控制器212自闪存214再取得一空白区 块作为该特定区块的子区块,以建立该特定区块与该子区块的区块配对关系(步骤324)。 接着,控制器212自数据暂存区块222中读取该写入数据,自地址储存表220中读取该写入 地址,并依据写入地址将写入数据写入至该子区块(步骤326)。如此则控制器212已完成 写入命令的执行。最后,控制器212自地址储存表220中删除该写入地址(步骤328),以表 示该写入地址对应的写入命令已执行完毕。图4为依据本发明的地址储存表400的一实施例。假设控制器212自主机202依 序接收了 12笔写入命令并将对应的写入地址储存入地址储存表400。第1个写入命令系欲 写入闪存214的区块100的第3页。第2个写入命令系欲写入闪存214的区块100的第4 页。第3个写入命令系欲写入闪存214的区块150的第6页。第4个写入命令系欲写入闪 存214的区块150的第7页。第5个写入命令系欲写入闪存214的区块150的第7页。
假设控制器212自主机202接收第9个写入命令后,将第9个写入命令对应的数据 储存入数据暂存区块222,并将第9个写入命令对应的写入地址储存入地址储存表220。接 着,控制器于第9个写入命令所对应的处理时间内开始执行第1个写入命令。假设第1个 写入命令的执行会增加区块配对数目。因此,控制器212自闪存214的多个区块配对挑选 一目标区块配对进行整合,以减少区块配对数目。图5为闪存214的多个区块配对的示意 图。假设闪存214共有区块配对30、区块配对31、区块配对60、区块配对82等4组区块配 对,而控制器212挑选区块配对30作为目标区块配对。控制器212首先将区块配对30的 母区块的数据分为前半部数据与后半部数据,接着将前半部数据与子区块的更新数据进行 整合。控制器212接着自主机202接收第10个写入命令,将第10个写入命令对应的数 据储存入数据暂存区块222,并将第10个写入命令对应的写入地址储存入地址储存表220。 接着,控制器212将区块配对30的母区块的后半部数据与子区块的更新数据进行整合。接 着,控制器212将前半部整合数据及后半部整合数据写入一空白区块作为区块30,并清除 原区块配对30的母区块及子区块为空白区块。因此闪存214的区块配对的数目减为3对。接着,控制器212开始执行第1个写入命令。由图4可知,第1个写入命令系要将 数据写入区块100的第3页,而第2个写入命令系要将数据写入区块100的第4页。由于 第1个写入命令及第2个写入命令皆欲将数据写入区块100,控制器212 —并执行第1个 写入命令及第2个写入命令。首先,控制器212自闪存214取得一空白区块作为区块100 的子区块,因此闪存214的区块配对的数目增为4对。接着,控制器212将第1个写入命令 及第2个写入命令所对应的数据由数据暂存区块222取出并写入至区块配对100的子区块 中,如图6所示。接着,控制器212将第1个写入命令及第2个写入命令的写入地址由地址 储存表400中清除。接着,控制器212自主机202接收第11个写入命令,将第11个写入命令对应的数 据储存入数据暂存区块222,并将第11个写入命令对应的写入地址储存入地址储存表220。接着,控制器212于第11个写入命令所对应的处理时间内开始执行第3个写入命令。假设 第3个写入命令的执行会增加区块配对数目。因此,控制器212自闪存214的多个区块配 对挑选一目标区块配对进行整合,以减少区块配对数目。假设控制器212挑选区块配对31 作为目标区块配对。控制器212首先将区块配对31的母区块的数据分为前半部数据与后 半部数据,接着将前半部数据与子区块的更新数据进行整合。控制器212接着自主机202接收第12个写入命令,将第12个写入命令对应的数 据储存入数据暂存区块222,并将第12个写入命令对应的写入地址储存入地址储存表220。 接着,控制器212将区块配对31的母区块的后半部数据与子区块的更新数据进行整合。接 着,控制器212将前半部整合数据及后半部整合数据写入一空白区块作为区块31,并清除 原区块配对31的母区块及子区块为空白区块。因此闪存214的区块配对的数目再减为3 对。接着,控制器212开始执行第3个写入命令。由图4可知,第3个写入命令系要将 数据写入区块150的第6页,而第4个写入命令及第5个写入命令系要将数据写入区块150 的第7页。由于第3个写入命令、第4个写入命令、及第5个写入命令皆欲将数据写入区块 150,控制器212 —并执行第3个写入命令、第4个写入命令、及第5个写入命令。首先,控制 器212自闪存214取得一空白区块作为区块150的子区块,因此闪存214的区块配对的数 目增为4对。接着,控制器212将第3个写入命令及第5个写入命令所对应的数据由数据 暂存区块222取出并写入至区块配对150的子区块中,如图6所示。接着,控制器212将第 3个写入命令、第4个写入命令、及第5个写入命令的写入地址由地址储存表400中清除。依据图3的方法300,控制器212于接收一写入命令后的250ms处理时间内将目 标区块配对的母区块的前半部数据与子区块的更新数据整合为一前半部整合数据(步骤 316),于接收一后续写入命令后的250ms处理时间内将目标区块配对的母区块的后半部数 据与子区块的更新数据整合为一后半部整合数据(步骤318),再将前半部整合数据与后半 部整合数据写入一空白区块(步骤320),而完成目标区块配对的母区块与子区块的整合。 然而,当步骤316与318分别产生前半部整合数据与后半部整合数据时,前半部整合数据与 后半部整合数据系储存于随机存取存储器216中,占据控制器212可使用的储存空间。于 另一实施例中,控制器212亦可直接将所产生的前半部整合数据与后半部整合数据直接写 入空白区块,以节省随机存取存储器216中的储存空间。图7为依据本发明执行主机202 所发送的写入命令的另一方法700的流程图。方法700中除了步骤715、716、718、720夕卜, 其余步骤均与图3的方法300相同,因此此处仅就该等差异步骤进行说明。于步骤715中, 控制器212首先选取一空白区块作为对应于目标区块配对的一更新区块。接着,控制器212 将母区块的前半部数据与子区块的更新数据整合以得到一前半部整合数据,并将前半部整 合数据写入更新区块(步骤716)。接着,控制器212接收一后续写入命令(步骤717)。接 着,控制器212将目标区块配对的母区块的后半部数据与子区块的更新数据整合以得到一 后半部整合数据,并将后半部整合数据写入更新区块(步骤718)。如此则目标区块配对的 母区块与子区块的数据均已整合完毕并储存于更新区块中。因此,控制器212于步骤720 清除目标区块配对的母区块及子区块。图7的方法700可较图3的方法300节省较多的数 据储存空间。图8为对应于图7的方法700的整合闪存214的多个区块配对的示意图。假设闪存214共有区块配对30、区块配对31、区块配对60、区块配对82等4组区块配对,而控制 器212挑选区块配对30作为目标区块配对以进行整合。控制器212首先自主机202接收 第一写入命令,并于第一写入命令的处理时间250ms内将区块配对30的母区块的前半部数 据与子区块的更新数据进行整合以得到前半部整合数据8A,并将前半部整合数据8A写入 区块配对30的更新区块的前半部。接着,控制器212自主机202接收第二写入命令,并于 第二写入命令的处理时间250ms内将区块配对30的母区块的后半部数据与子区块的更新 数据进行整合以得到后半部整合数据8B,并将后半部整合数据8B写入区块配对30的更新 区块的后半部,从而完成区块配对30的数据整合。接着,控制器212便可将区块配对30的 母区块与子区块的数据清除。同样的,假设控制器212更接着挑选区块配对31作为目标区块配对以进行整合。 控制器212首先自主机202接收第三写入命令,并于第三写入命令的处理时间250ms内将 区块配对31的母区块的前半部数据与子区块的更新数据进行整合以得到前半部整合数据 8C,并将前半部整合数据8C写入区块配对31的更新区块的前半部。接着,控制器212自主 机202接收第四写入命令,并于第四写入命令的处理时间250ms内将区块配对31的母区块 的后半部数据与子区块的更新数据进行整合以得到后半部整合数据8D,并将后半部整合数 据8D写入区块配对31的更新区块的后半部,从而完成区块配对31的数据整合。接着,控 制器212便可将区块配对31的母区块与子区块的数据清除。图9A为依据本发明的地址储存表902的实施例的示意图。随机存取存储器216 中储存地址储存表902,以供控制器212于步骤308中储存自主机202所接收的数据写入地 址。于一实施例中,该数据写入地址包括区块序号及页序号。地址储存表902具有一储存 表指针以指示地址储存表902中最后储存的数据写入地址。于一实施例中,随机存取存储 器216中更储存一地址清理表904。当控制器212欲开始整合区块配对以减少块配对的数 目时,控制器212会将地址储存表902中所储存的多个数据写入地址转储存至地址清理表 904中,如图9B所示。地址清理表904具有一清理表指针以指示地址清理表904中开始清 理的数据写入地址。控制器212便可于步骤322依次选取清理表指针所指向的数据写入地 址所对应的区块作为特定区块,以新增区块配对。而当地址储存表902中所储存的多个数 据写入地址转储存至地址清理表904后,地址储存表902的数据被清除,便可再储存后续自 主机所接收的数据写入地址。由于地址储存表储存于随机存取存储器216中,数据储存装置204的系统设计者必 须估计地址储存表所占用的随机存取存储器216的最大储存空间。首先说明的是,本发明的 实施例虽然均以两次接收写入命令的处理时间(250ms)完成一个区块配对的数据整合工作, 但当闪存214的一区块所包含的页数增多时,控制器212可能需要三次以上的接收写入命令 的处理时间(250ms)才能完成一个区块配对的数据整合工作。假设闪存214包含有K个区 块,而控制器212需要N次的接收写入命令的处理时间(250ms)才能完成一个区块配对的数 据整合工作,且地址储存表220中储存一笔数据写入地址的数据大小为M字节,则在最极端的 状况下,地址储存表220最多需占据随机存取存储器216中(NXKXM)字节的储存空间。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此项 技术者,在不脱离本发明的精神和范围内,当可作些许更动与润饰,因此本发明的保护范围 当视后附的申请专利范围所界定者为准。
权利要求
1.一种闪存的数据写入方法,其特征在于,包括自一主机接收一写入命令,其中该写入命令包括一写入地址、以及一写入数据; 当该闪存所储存的多个区块配对的数目等于一界限值且执行该写入命令需要增加该 等区块配对的数目时,将该写入数据存入该闪存的一数据暂存区块,并将该写入地址存入 一地址储存表;自该等区块配对选取一目标区块配对以供整合,其中该目标区块配对包括一待整合母 区块及一待整合子区块;当自该主机接收多个后续写入命令时,于该等后续写入命令的多个间隔时间中整合该 待整合母区块及该待整合子区块为一整合区块;以及依据该数据暂存区块储存的该写入数据以及该地址储存表储存的该写入地址执行该 写入命令。
2.根据权利要求1所述的闪存的数据写入方法,其特征在于,其中该待整合母区块及 该待整合子区块的整合包括下列步骤将该待整合母区块所储存的数据区分为多个数据区段;于每一该等间隔时间中整合该数据区段其中的一及该待整合子区块储存的更新数据 为一区段整合数据;合并该等区段整合数据以写入一空白区块,以作为该整合区块;以及 清除该待整合母区块及该待整合子区块中所储存的数据。
3.根据权利要求2所述的闪存的数据写入方法,其特征在于,其中该待整合母区块包 括多个页,该等数据区段包括一前半部数据区段及一后半部数据区段,其中地址在前半部 的该等多个页所储存的数据为该前半部数据区段,而地址在后半部的该等多个页所储存的 数据为该后半部数据区段。
4.根据权利要求1所述的闪存的数据写入方法,其特征在于,其中该方法更包括 当该等区块配对的数目小于该界限值,依据该写入命令将该写入数据写入该写入地址;以及当该等区块配对的数目等于该界限值,且执行该写入命令不需要新增一区块配对时, 依据该写入命令将该写入数据写入该写入地址。
5.根据权利要求1所述的闪存的数据写入方法,其特征在于,其中每一该等区块配对 包括一母区块及一子区块,该母区块储存一逻辑区块地址的原始数据,且该子区块储存该 逻辑区块地址的更新数据。
6.根据权利要求1所述的闪存的数据写入方法,其特征在于,其中该写入命令的执行 包括下列步骤依据该地址储存表储存的该写入地址决定对应于该写入地址的一特定区块; 取得一空白区块并建立该特定区块与该空白区块的区块配对关系; 依据该写入地址将该数据暂存区块所储存的该写入数据写入该空白区块;以及 自该地址储存表删除该写入地址。
7.根据权利要求6所述的闪存的数据写入方法,其特征在于,其中该写入命令的执行 更包括自该地址储存表搜寻对应于该特定区块该的至少一第二写入地址;自该数据暂存区块读取对应于该其它写入地址的至少一第二写入数据;依据该第二写入地址将该第二写入数据写入该空白区块;以及自该地址储存表删除该第二写入地址。
8.一种数据储存装置,耦接至一主机,其特征在于,包括一闪存,包括一数据暂存区块以及多个区块配对;以及一控制器,自该主机接收一写入命令、一写入地址、以及一写入数据,以及当该等区块 配对的数目等于一界限值且执行该写入命令需要增加该等区块配对的数目时,将该写入数 据存入该数据暂存区块并将该写入地址存入一地址储存表,自该等区块配对选取一目标区 块配对以供整合,于自该主机接收多个后续写入命令的多个间隔时间中整合该目标区块配 对的一待整合母区块及一待整合子区块为一整合区块,以及依据该数据暂存区块储存的该 写入数据以及该地址储存表储存的该写入地址执行该写入命令。
9.根据权利要求8所述的数据储存装置,其特征在于,其中该控制器将该待整合母区 块所储存的数据区分为多个数据区段,于每一该等间隔时间中整合该数据区段其中的一及 该待整合子区块储存的更新数据为一区段整合数据,合并该等区段整合数据供写入一空白 区块以作为该整合区块,以及清除该待整合母区块及该待整合子区块中所储存的数据,以 整合该目标区块配对。
10.根据权利要求9所述的数据储存装置,其特征在于,其中该待整合母区块包括多个 页,该等数据区段包括一前半部数据区段及一后半部数据区段,其中地址在前半部的该等 多个页所储存的数据为该前半部数据区段,而地址在后半部的该等多个页所储存的数据为 该后半部数据区段。
11.根据权利要求8所述的数据储存装置,其特征在于,其中当该等区块配对的数目小 于该界限值时,该控制器依据该写入命令将该写入数据写入该写入地址,以及当该等区块 配对的数目等于该界限值且执行该写入命令不需要新增一区块配对时,该控制器依据该写 入命令将该写入数据写入该写入地址。
12.根据权利要求8所述的数据储存装置,其特征在于,其中每一该等区块配对包括一 母区块及一子区块,该母区块储存一逻辑区块地址的原始数据,且该子区块储存该逻辑区 块地址的更新数据。
13.根据权利要求8所述的数据储存装置,其特征在于,其中该控制器依据该地址储存 表储存的该写入地址决定对应于该写入地址的一特定区块,取得一空白区块并建立该特定 区块与该空白区块的区块配对关系,依据该写入地址将该数据暂存区块所储存的该写入数 据写入该空白区块,以及自该地址储存表删除该写入地址,以执行该写入命令。
14.根据权利要求13所述的数据储存装置,其特征在于,其中该控制器更自该地址储 存表搜寻对应于该特定区块该的至少一第二写入地址,自该数据暂存区块读取对应于该其 它写入地址的至少一第二写入数据,依据该第二写入地址将该第二写入数据写入该空白区 块,以及自该地址储存表删除该第二写入地址,以执行该写入命令。
全文摘要
本发明涉及一种闪存的数据写入方法,其包括首先,接收一写入命令、一写入地址、以及一写入数据;当该闪存所储存的多个区块配对的数目等于一界限值且执行该写入命令需要增加该等区块配对的数目时,将该写入数据存入该闪存的一数据暂存区块,并将该写入地址存入一地址储存表。接着,自该等区块配对选取一目标区块配对以供整合;接着,于多个后续写入命令的多个间隔时间中整合该目标区块配对的一待整合母区块及一待整合子区块为一整合区块;最后,依据该数据暂存区块储存的该写入数据以及该地址储存表储存的该写入地址执行该写入命令。本方法还涉及一种数据储存装置。本发明减少了整合区块配对的母区块与子区块的数据需耗费的时间,可在短短的250ms内完成,以达到数据储存装置与主机间数据传送的规格的要求。
文档编号G06F3/06GK102109964SQ200910216820
公开日2011年6月29日 申请日期2009年12月28日 优先权日2009年12月28日
发明者萧惟益 申请人:慧荣科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1