CN102109964A - 数据储存装置及闪存的数据写入方法 - Google Patents
数据储存装置及闪存的数据写入方法 Download PDFInfo
- Publication number
- CN102109964A CN102109964A CN2009102168203A CN200910216820A CN102109964A CN 102109964 A CN102109964 A CN 102109964A CN 2009102168203 A CN2009102168203 A CN 2009102168203A CN 200910216820 A CN200910216820 A CN 200910216820A CN 102109964 A CN102109964 A CN 102109964A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- address
- write
- pairing
- 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.)
- Granted
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
本发明涉及一种闪存的数据写入方法,其包括:首先,接收一写入命令、一写入地址、以及一写入数据;当该闪存所储存的多个区块配对的数目等于一界限值且执行该写入命令需要增加该等区块配对的数目时,将该写入数据存入该闪存的一数据暂存区块,并将该写入地址存入一地址储存表。接着,自该等区块配对选取一目标区块配对以供整合;接着,于多个后续写入命令的多个间隔时间中整合该目标区块配对的一待整合母区块及一待整合子区块为一整合区块;最后,依据该数据暂存区块储存的该写入数据以及该地址储存表储存的该写入地址执行该写入命令。本方法还涉及一种数据储存装置。本发明减少了整合区块配对的母区块与子区块的数据需耗费的时间,可在短短的250ms内完成,以达到数据储存装置与主机间数据传送的规格的要求。
Description
技术领域
本发明涉及存储器技术领域,更具体地说,涉及一种数据储存装置及闪存的数据写入方法。
背景技术
图1为主机传送写入命令至一数据储存装置的时序图。假设该数据储存装置包括一闪存以供储存数据。当一主机欲将数据写入至一数据储存装置,首先会经由输入/输出数据总线传送第一写入命令(0x80)至数据储存装置。接着,主机依序向数据储存装置传送列地址及行地址,以指明数据欲存入的地址。接着主机向数据储存装置传送欲写入闪存的数据,并向数据储存装置传送第二写入命令(0x10)。当第二写入命令传送完毕,数据储存装置会将一待命/忙碌(ready/busy)导线的电位下拉,以阻止主机继续发送后续命令或数据。依数据储存装置与主机间数据传送的规格,此电位下拉时间Tprog不可长于250ms。于待命/忙碌导线的电位下拉时间Tprog内,数据储存装置一般会立即将其所接收的数据写入闪存的写入地址。待数据写入完毕之后,数据储存装置会将待命/忙碌导线的电位上拉。主机便接着传送一读取状态(read status)命令,以向数据储存装置询问数据写入是否成功。
闪存通常包括多个区块(block),而每一区块包括多个页(page)以供储存数据。通常一页仅能够被写入一次数据,若要将该页的数据更新,则必须将整个区块的所有页所储存的数据一并抹除,才能再次将数据写入该页。因此,当数据储存装置欲执行写入命令时,若主机指定的写入地址所对应的页之前已储存数据,数据储存装置必须将新接收的更新数据写入至一空白区块,再建立该空白区块与写入地址所对应的原本区块间的对应关系。此一对应关系称为区块配对(block pair),原本区块称为区块配对的母区块(mother block),而储存更新数据的区块称为区块配对的子区块(child block)。
一般而言,由于维持一区块配对需额外纪录许多配对关系,因此数据储存装置必须控制区块配对的数目,使闪存中仅储存固定数目的区块配对。在一般的情况下,数据储存装置可以于250ms的时段Tprog内将所接收的数据写入至闪存内。然而,当执行主机传送的写入命令需要新增一区块配对时,为了使闪存中的区块配对数目维持固定,必须于执行主机传送的写入命令之前,先将闪存的部份区块配对所包含的母区块所储存的原始数据与子区块所储存的更新数据相整合为单一区块,以便先使原本的区块配对数目下降,接着才能执行主机传送的写入命令而新增区块配对。
再者,由于每一区块均包含许多页以储存数据,整合区块配对的母区块与子区块的数据需耗费许多时间。尤其是当闪存为多层单元(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~数据暂存区块;224~区块配对;231、232、…、23K、241、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为一组区块配对,而母区块23K与对应的子区块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接收写入命令、写入地址、及数据(步骤302)。接着,控制器212检查是否执行该写入命令需新建一区块配对,且闪存214所储存的多个区块配对的数目K已等于一界限值N(步骤304)。若区块配对的数目K尚未达到界限值N,或执行该写入命令不需新建一区块配对,则控制器212可直接将数据写入包含该写入地址的区块,以完成写入命令的执行(步骤306)。若区块配对的数目K已等于界限值N,而执行该写入命令需新建一区块配对,则会使区块配对的数目K增加而超过界限值N。因此,控制器212必须于执行写入命令前事先将一区块配对整合以减少区块配对的数目。
首先,控制器212将所接收的数据存入闪存214的一数据暂存区块222,并将该写入地址存入随机存取存储器216的一地址储存表220(步骤308)。接着,控制器212自闪存214的多个区块配对224中选取一目标区块配对(步骤312)。假设控制器212选取的目标区块配对为母区块231及子区块241,以进行整合。接着,控制器212将目标区块配对的母区块231所储存的数据分为前半部数据区段与后半部数据区段(步骤314)。于一实施例中,母区块231中地址在前半部的多个页所储存的数据为前半部数据区段,而母区块231中地址在后半部的多个页所储存的数据为该后半部数据区段。接着,控制器212将母区块231的前半部数据区段与子区块241的更新数据整合,以得到一前半部整合数据(步骤316)。由于步骤316仅整合目标区块配对的前一半数据,因此可确保控制器212可在该写入命令所对应的250ms处理时间内完成前半部数据区段的整合。
接着,控制器212继续自主机212接收一后续写入命令(步骤317)。当后续写入命令传送完毕后,控制器212亦得到250ms的处理时间。因此,控制器212便继续母区块231的后半部数据区段的整合工作,并于整合工作结束后执行写入命令。首先,控制器212将目标区块配对的母区块231的后半部数据区段与子区块241的更新数据整合,以得到一后半部整合数据(步骤318)。由于步骤318仅整合目标区块配对的后一半数据,因此可确保控制器212可在该后续写入命令所对应的250ms处理时间内完成后半部数据区段的整合。接着,控制器212自闪存214取得一空白区块,将前半部整合数据与后半部整合数据写入该空白区块,并清除目标区块配对包含的母区块231及子区块241所储存的数据(步骤320)。此时,控制器212已成功地将母区块231及子区块241整合为单一区块,从而使闪存214的区块配对数目减少一。
接着,控制器212再依据数据暂存区块222所储存的写入数据以及地址储存表220所储存的写入地址执行该写入命令。首先,控制器212依据地址储存表220中的写入地址决定包含该写入地址的一特定区块(步骤322)。接着,控制器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中(N×K×M)字节的储存空间。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此项技术者,在不脱离本发明的精神和范围内,当可作些许更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (14)
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所述的数据储存装置,其特征在于,其中该控制器更自该地址储存表搜寻对应于该特定区块该的至少一第二写入地址,自该数据暂存区块读取对应于该其它写入地址的至少一第二写入数据,依据该第二写入地址将该第二写入数据写入该空白区块,以及自该地址储存表删除该第二写入地址,以执行该写入命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102168203A CN102109964B (zh) | 2009-12-28 | 2009-12-28 | 数据储存装置及闪存的数据写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102168203A CN102109964B (zh) | 2009-12-28 | 2009-12-28 | 数据储存装置及闪存的数据写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102109964A true CN102109964A (zh) | 2011-06-29 |
CN102109964B CN102109964B (zh) | 2012-11-28 |
Family
ID=44174143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102168203A Active CN102109964B (zh) | 2009-12-28 | 2009-12-28 | 数据储存装置及闪存的数据写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102109964B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136071A (zh) * | 2011-12-01 | 2013-06-05 | 晨星软件研发(深圳)有限公司 | 电子系统及其存储器管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1311366C (zh) * | 2003-05-22 | 2007-04-18 | 群联电子股份有限公司 | 快闪存储器的平行双轨使用方法 |
CN1617109A (zh) * | 2003-11-11 | 2005-05-18 | 群联电子股份有限公司 | 母和子架构下建立子区块检查页及逻辑页的链接方法 |
US7225291B2 (en) * | 2004-04-19 | 2007-05-29 | Phison Electronics Corp. | Storage controlling and judging method of flash memory |
US8195870B2 (en) * | 2007-11-29 | 2012-06-05 | Silicon Motion, Inc. | Memory card and method for handling data updating of a flash memory |
-
2009
- 2009-12-28 CN CN2009102168203A patent/CN102109964B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136071A (zh) * | 2011-12-01 | 2013-06-05 | 晨星软件研发(深圳)有限公司 | 电子系统及其存储器管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102109964B (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168647B (zh) | Flash数据读写方法及系统 | |
CN103019971A (zh) | 快速响应trim命令的方法、SSD控制器及系统 | |
US7937523B2 (en) | Memory system with nonvolatile semiconductor memory | |
DE102011086098B4 (de) | Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle | |
CN101571832B (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
CN101908368A (zh) | 电子存储装置及其操作方法 | |
CN106055489A (zh) | 存储器装置与其操作方法 | |
CN109783004A (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN108733578A (zh) | 快闪存储器的垃圾回收断电回复方法及使用该方法的装置 | |
CN104298606A (zh) | 固态存储装置中垃圾搜集动作的控制方法 | |
CN101123113A (zh) | 同步动态随机访问存储器的访问方法及控制装置 | |
CN101241446A (zh) | 非易失数据存储装置中虚拟文件系统命令调度方法和设备 | |
CN102053914A (zh) | 记忆装置以及存储器的数据存取方法 | |
DE102019116546A1 (de) | Verfahren für schnelles boot-lesen | |
CN101840375A (zh) | 半导体存储装置 | |
TW201123190A (en) | Data storage device and data writing method of a flash memory | |
CN106033323B (zh) | 读取快闪存储器中储存单元的方法以及使用该方法的装置 | |
CN101515221A (zh) | 一种读数据的方法、装置和系统 | |
CN101894077B (zh) | 一种数据存储方法及系统 | |
CN102109964B (zh) | 数据储存装置及闪存的数据写入方法 | |
CN102541464A (zh) | 快闪存储装置及其数据写入方法 | |
US11023170B2 (en) | Writing method for multi-stream write solid state drive | |
CN104133774A (zh) | 管理非易失性存储器的方法及其非易失性存储装置 | |
CN107678679A (zh) | 运用于固态储存装置的超级区块的扫描方法 | |
US20110010512A1 (en) | Method for controlling storage system having multiple non-volatile memory units and storage system using the same |
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 |