闪存的数据管理方法

文档序号:6563712阅读:182来源:国知局
专利名称:闪存的数据管理方法
技术领域
本发明涉及一种内存的数据管理,且特别是关于使用一数据的写入方法以 管理闪存的数据。
背景技术
闪存为一存储系统,具有高存取速度与高稳定性的优点。闪存为一非挥发 性内存,也就是说,数据一旦储存到闪存之后,就不需要电源以保存数据。
闪存数据存取架构是以块(block)为单位,每一块再分为页(page)或 扇区(section)。当数据需要写入至闪存,需执行一数据写入指令,将外部 缓冲区内的数据写入至闪存的缓冲器,然后再从闪存的缓冲器写入至闪存内。 在NOP (number of program,即闪存的块只能存取一次)为一的条件下,页内的 数据只能写入一次,在应用上,容易造成数据未能占满闪存的块或储存数据不 连续的缺点。如果当数据未占满闪存的块或数据储存不连续,则会造成闪存的 储存效能降低。数据重整可以解决这个问题,但是相对的必须花费大量地时间 来重新整理闪存内的数据。其中,在外部缓冲器中指派一目的块地址给此数据 之后,如果要改变此数据的目的块地址,在目前闪存的架构限制下,无法将闪 存的缓冲区内的数据改变其写入的地址,或将数据读出闪存的缓冲区之外。而 且,此架构将更不利于加速资料重新整理。
因此需要一个新的闪存的数据管理方法以避免因数据分散或数据不连续 而必须花费大量的时间来重新整理闪存内的数据,并减少对外部缓冲器的需 求,以使闪存储存数据的能力最佳化。

发明内容
本发明所要解决的技术问题在于,提供一种闪存的数据管理方法,用以克 服因为存储数据分散或数据不连续而必须花费大量地时间来重新整理闪存内 的数据,以提高闪存储存数据的能力。
为了实现上述的目的,本发明提供了一种闪存的数据管理方法,此闪存
的数据管理方法包含下列步骤(a)写入一外部缓冲器的一数据至一闪存的 一缓冲器内,其中,闪存的缓冲器内的数据具有一目的块地址;以及(b)检 査存放于闪存的该缓冲器内的数据,若数据未占满闪存的缓冲器,则使用一改 变地址指令,用于指派一暂存块地址给该闪存的该缓冲器内的数据,以将此数 据写入至该暂存块。
为了实现上述目的,本发明还提出了一种闪存的数据管理方法,此闪存的 数据管理方法包含下列步骤(a)写入一外部缓冲器的一数据至一闪存的一 缓冲器内,其中,闪存的缓冲器内的数据具有一目的块地址;(b)检查存放
于闪存的缓冲器内的数据,当数据未占满闪存的缓冲器,则执行一写入指令, 其中,写入指令会删掉闪存的缓冲器内的数据,并且重新指派一地址,该地址 为一暂存块地址;(c)写入外部缓冲器的数据至闪存的缓冲器内,其中,闪 存的缓冲器内的数据具有暂存块地址;以及(d)根据暂存块地址将数据写入
至一暂存块。
为了实现上述目的,本发明还提出了一种闪存的数据管理方法,此闪存的 数据管理方法包含下列步骤(a) —主机决定一数据传输的一位置,其中, 此位置为一原始目的块地址;(b)等待主机将数据传送到一外部缓冲器;(c) 判断外部缓冲器的数据是否为第一次传输,若外部缓冲器的数据为第一次传 输,则判断主机指派的数据传输的位置是否指向一暂存块地址,当主机指派的 数据传输的位置指向为暂存块地址,则读取暂存块地址内的一暂存块数据至外 部缓冲器,接着,执行一写入指令,用于重新指派一地址,此地址为一新的目 的块地址;(d)写入外部缓冲器内的暂存块数据至一闪存的一缓冲器内;以 及(e)写入外部缓冲器内的从主机传输过来的数据至闪存的缓冲器内;其中, 闪存的缓冲器内的数据具有原始目的块地址或新的目的块地址。
当外部缓冲器的数据不是第一次传输,则直接执行步骤(e),以及当外 部缓冲器的数据为第一次传输且当主机指派的数据传输的位置不是指向暂存 块地址,执行一演算处理,接着,直接执行步骤(e),此演算处理包含整理 外部缓冲器的数据,以使此数据为连续性的数据。
本发明具有以下有益的效果利用本发明提供的闪存的数据管理方法,能 够克服因为存储数据分散或数据不连续而必须花费大量地时间来重新整理闪存内的数据,以提高闪存储存数据的能力。
为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的 详细说明与附图,然而附图仅提供参考与说明用,并非用来对本发明加以限制。


图1为本发明一较佳实施例的流程示意图。
图2为本发明另一较佳实施例的流程示意图。 图3为本发明另一较佳实施例的流程示意图。 图4为应用本发明的图1或图2的流程示意图。 其中,附图标记
100、 200、 300、 400 —闪存的数据管理方法 102 118、 202 220、 302 344、 402 434—步骤
具体实施例方式
本发明的闪存的数据管理方法,为若闪存的缓冲器内的数据为满的状态, 则将此数据写入目的块,当闪存的缓冲器内的数据为未满的状态,则将此数据 写入至暂存块。本发明的闪存的另一数据管理方法,为若主机传送过来的数据 为第一次传输,且此数据的写入地址指向为暂存块地址,则读取一暂存块数据 至外部缓冲器后,执行写入指令,且写入此具有一目的块地址的暂存块数据至 闪存的缓冲器。因此,可降低闪存因为数据分散或数据不连续而必须花费大量 地时间来重新整理闪存内的数据的情形,并减少对外部缓冲器的需求,以提高 闪存储存数据的能力。下面将以图及详细说明清楚说明本发明的精神,如熟悉 此技术的人员在了解本发明的较佳实施例后,当可由本发明所揭示的技术,加 以改变及修饰,其并不脱离本发明的精神与范围。
图1为本发明一较佳实施例的流程示意图。首先,步骤102以及步骤104 使用一数据写入指令与数据地址(例如,使用5周期以传输此具有目的块地址 的数据),执行写入一外部缓冲器的一数据至一闪存的一缓冲器内(步骤106), 且此数据具有一目的块地址。步骤108为检査存放于闪存的缓冲器内的数据, 若数据未占满闪存的缓冲器,则使用一改变地址指令(步骤IIO),用于指派 一暂存块地址(步骤112)给闪存的缓冲器内的数据,以将数据写入至闪存的 一暂存块(步骤114)。步骤116以及步骤118完成数据的写入。
图2为本发明一较佳实施例的流程示意图。首先,步骤202以及步骤204 使用一数据写入指令与数据地址(例如,使用5周期以传输此具有目的块地址 的数据),执行写入一外部缓冲器的一数据至一闪存的一缓冲器内(步骤206), 且此数据具有一目的块地址。步骤208为检査存放于闪存的缓冲器内的数据, 当数据未占满闪存的缓冲器,步骤210则执行一写入指令,其中,写入指令会 删掉闪存的缓冲器内的数据,并且重新指派一地址,该地址为一暂存块地址(步 骤212)。步骤214为重新写入外部缓冲器的数据至闪存的缓冲器内,其中,
闪存的缓冲器内的数据具有此暂存块地址。步骤216则根据暂存块地址将此 数据写入至闪存的一暂存块。步骤218以及步骤220完成数据的写入。
图3为本发明另一较佳实施例的流程示意图。步骤304为一主机决定一数 据传输的一位置,其中,此位置为一原始目的块地址。步骤306为等待主机将 数据传送到一外部缓冲器。步骤308判断外部缓冲器的数据是否为第一次传 输,当外部缓冲器的数据为第一次传输,则在步骤310判断主机指派的数据传 输的位置是否指向为一暂存块地址,步骤314当主机指派的数据传输的位置指 向为暂存块地址,则读取暂存块地址内的一暂存块数据至外部缓冲器,接着, 歩骤316以及步骤318执行一写入指令,用于重新指派一地址,此地址为一新 的目的块地址。步骤320写入外部缓冲器内的暂存块数据至一闪存的一缓冲器 内。步骤322写入外部缓冲器内的从主机传输过来的数据至闪存的缓冲器内。 其中,闪存的缓冲器内的数据具有原始目的块地址或新的目的块地址。
更详细的说,在步骤308中,当外部缓冲器的数据不是第一次传输,则直 接执行步骤322的写入外部缓冲器内的从主机传输过来的数据至闪存的缓冲 器内。或,在步骤308当外部缓冲器的数据为第一次传输且在步骤310当主机 指派的数据传输的位置不是指向暂存块地址,则在步骤312中执行一演算处 理,演算处理包含整理外部缓冲器的数据,以使数据为连续性的数据。接着, 直接执行步骤322的写入外部缓冲器内的从主机传输过来的数据至闪存的缓 冲器内。
在写入外部缓冲器内的从主机传输过来的数据至闪存的缓冲器内后,步骤 324检査主机的数据传输至外部缓冲器的写入动作是否已经停止,当数据停止 从主机写入至外部缓冲器,则步骤326检査存放于闪存的缓冲器内的数据,当 数据占满闪存的缓冲器,则执行步骤330,写入具有目的块地址的数据至一目的块,其中,此目的块地址为原始目的块地址或新的目的块地址。步骤326 检查存放于闪存的缓冲器内的数据,当数据未占满闪存的缓冲器,则在步骤 328做一处理,以指派一暂存块给数据,并在步骤329将数据写入至暂存块, 步骤332完成数据的写入至闪存内以及步骤334结束此数据的写入至闪存内。
步骤328,为应用本发明的实施例所提出的将未占满闪存的缓冲器的数据 移动至暂存块的方法。写入暂存块的方法包含如图1所示,在数据未占满闪存 的缓冲器的情况下,使用一改变地址指令,用于指派一暂存块地址给闪存的缓 冲器内的数据,以将数据写入至暂存块。或如图2所示,在数据未占满闪存的 缓冲器的情况下,执行一写入指令,其中,写入指令会删掉闪存的缓冲器内的 数据,并且重新指派一地址,此地址为一暂存块地址;以及写入外部缓冲器的 数据至闪存的缓冲器内,其中,闪存的缓冲器内的资料具有暂存块地址,并根 据暂存块地址将数据写入至暂存块。
在写入外部缓冲器内的从主机传输过来的数据至闪存的缓冲器内后,步骤 324检査主机的数据传输至外部缓冲器的写入动作是否已经停止,当数据还未 停止从主机写入至外部缓冲器,步骤336检查存放于闪存的缓冲器内的数据, 当数据占满闪存的缓冲器,步骤338则根据目的块地址,写入数据至一 目的块。 步骤340为完成数据写入至目的块,在步骤342中,闪存执行一写入指令,以 及步骤344累加目的块地址(例如,将上次写入地址累加)之后,回到步骤 306并执行上述步骤。其中,目的块地址为原始目的块地址或新的目的块地址。
在检査主机的数据传输至外部缓冲器的写入动作是否已经停止,当数据还 未停止从主机写入至外部缓冲器,步骤336检査存放于闪存的缓冲器内的数 据,当数据未占满闪存的缓冲器,则回到步骤322的写入外部缓冲器内的从主 机传输过来的数据至闪存的缓冲器内。
图4为应用本发明的实施例的流程示意图。在流程示意图400中,步骤 404为一主机决定一数据传输的一位置(例如, 一连续性数据),其中,此位 置为一目的块地址。步骤406为等待主机将数据传送到一外部缓冲器。步骤 408为判断外部缓冲器的数据是否为第一次传输,当外部缓冲器的数据为第一 次传输,则步骤410对此数据执行一起头数据处理,起头数据处理用以简化此 后数据的读取。步骤412为写入外部缓冲器的数据至一闪存的一缓冲器内,其 中,该闪存的缓冲器内的数据具有一目的块地址。在等待主机将数据传送到外部缓冲器后,判断外部缓冲器的数据是否为第
一次传输,当该外部缓冲器的数据不是第一次传输,则直接执行步骤412的写 入外部缓冲器的数据至闪存的缓冲器内。
步骤414为检査主机的数据传输至外部缓冲器的写入动作是否已经停止, 当数据还未停止从主机写入至外部缓冲器,则在步骤426检查存放于闪存的缓 冲器内的数据,当数据占满闪存的缓冲器,步骤428则会根据目的块地址将数 据写入至一目的块。步骤430为完成数据写入至目的块,在步骤432中,闪存 执行一写入指令,以及步骤434累加目的块地址(例如,将上次写入地址累加) 之后,回到步骤406并执行上述步骤。
当数据还未停止从主机写入至外部缓冲器,且在步骤426中,数据未占满 闪存的缓冲器,则回到步骤406并执行上述步骤。
步骤414检查主机的数据传输至外部缓冲器的写入动作是否已经停止,当 数据停止从主机写入至外部缓冲器,则步骤416检査存放于闪存的缓冲器内的 数据,当数据占满闪存的缓冲器,则执行步骤420,写入具有目的块地址的数 据至一目的块。
当数据停止从主机写入至外部缓冲器,以及步骤416检査存放于闪存的缓 冲器内的数据,当数据未占满闪存的缓冲器,则在步骤418做一处理,以指派 一暂存块给数据,并在步骤419将数据写入至暂存块,步骤422完成数据的写 入至闪存内以及步骤424结束此数据的写入至闪存内。
步骤418为应用本发明的实施例所提出的将未占满闪存的缓冲器的数据 移动至暂存块的方法。写入暂存块的方法包含如图1所示,在数据未占满闪存 的缓冲器的情况下,使用一改变地址指令,用于指派一暂存块地址给闪存的缓 冲器内的数据,以将数据写入至暂存块。或如图2所示,在数据未占满闪存的 缓冲器的情况下,执行一写入指令,其中,写入指令会删掉闪存的缓冲器内的 数据,并且重新指派一地址,此地址为一暂存块地址;以及写入外部缓冲器的 数据至闪存的缓冲器内,其中,闪存的缓冲器内的资料具有暂存块地址,并根 据暂存块地址将数据写入至暂存块。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的普通技术人员当可根据本发明做出各种相应的改变和变 形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种闪存的数据管理方法,使用于闪存的数据管理,其特征在于,该方法包含下列步骤(a)写入一外部缓冲器的一数据至一闪存的一缓冲器内,其中,该闪存的该缓冲器内的该数据具有一目的块地址;以及(b)检查存放于该闪存的该缓冲器内的该数据,若该数据未占满该闪存的该缓冲器,则使用一改变地址指令,用于指派一暂存块地址给该闪存的该缓冲器内的该数据,以将该数据写入至该暂存块。
2. 根据权利要求1所述的闪存的数据管理方法,其特征在于,执行该步 骤(a)之前,还包含步骤(c):等待一主机将该数据传送到该外部缓冲器, 判断该外部缓冲器的该数据是否为第一次传输,若该外部缓冲器的该数据不是 第一次传输,则执行该步骤(a),若该外部缓冲器的该数据为第一次传输, 则对该数据执行一起头数据处理,再执行该步骤(a),其中,该起头数据处 理用以简化此后数据的读取。
3. 根据权利要求2所述的闪存的数据管理方法,其特征在于,执行该步 骤(c)之前,还包含该主机决定该数据传输的一位置,其中,该位置为该目 的块地址。
4. 根据权利要求2所述的闪存的数据管理方法,其特征在于,执行该步 骤(b)之前,还包含检査该主机的该数据传输至该外部缓冲器的写入动作是 否已经停止,若该数据停止从该主机写入至该外部缓冲器,则执行该步骤(b)。
5. —种闪存的数据管理方法,使用于闪存的数据管理,其特征在于,该 方法包含下列步骤(a) 写入一外部缓冲器的一数据至一闪存的一缓冲器内,其中,该闪存 的该缓冲器内的该数据具有一 目的块地址;(b) 检査存放于该闪存的该缓冲器内的该数据,当该数据未占满该闪存 的该缓冲器,则执行一写入指令,其中,该写入指令会删掉该闪存的该缓冲器 内的该数据,并且重新指派一地址,该地址为一暂存块地址;(c) 写入该外部缓冲器的该数据至该闪存的该缓冲器内,其中,该闪存 的该缓冲器内的该数据具有该暂存块地址;以及 (d)根据该暂存块地址将该数据写入至一暂存块。
6. 根据权利要求5所述的闪存的数据管理方法,其特征在于,执行该步 骤(a)之前,还包含步骤(e):等待一主机将该数据传送到该外部缓冲器, 判断该外部缓冲器的该数据是否为第一次传输,若该外部缓冲器的该数据不是 第一次传输,则执行该步骤(a),若该外部缓冲器的该数据为第一次传输, 则对该数据执行一起头数据处理,再执行该步骤(a),其中,该起头数据处 理用以简化此后数据的读取。
7. 根据权利要求6所述的闪存的数据管理方法,其特征在于,执行该步 骤(e)之前,还包含该主机决定该数据传输的一位置,其中,该位置为该目 的块地址。
8. 根据权利要求6所述的闪存的数据管理方法,其特征在于,执行该步 骤(b)之前,还包含检査该主机的该数据传输至该外部缓冲器的写入动作是 否已经停止,若该数据停止从该主机写入至该外部缓冲器,则执行该步骤(b)。
9. 一种闪存的数据管理方法,使用于闪存的数据管理,其特征在于,该 方法包含下列步骤(a) —主机决定一数据传输的一位置,其中,该位置为一原始目的地地址;(b) 等待该主机将该数据传送到一外部缓冲器;(c) 判断该外部缓冲器的该数据是否为第一次传输,若该外部缓冲器的 该数据为第一次传输,则判断该主机指派的该数据传输的该位置是否指向为一 暂存块地址,若该主机指派的该数据传输的该位置指向为该暂存块地址,则读 取该暂存块地址内的一暂存块数据至该外部缓冲器,接着,执行一写入指令, 用于重新指派一地址,该地址为一新的目的块地址;(d) 写入该外部缓冲器内的该暂存块数据至一闪存的一缓冲器内;以及(e) 写入该外部缓冲器内的从该主机传输过来的该数据至该闪存的该缓 冲器内,该闪存的该缓冲器内的该数据具有该原始目的块地址或该新的目的块 地址;其中,若该外部缓冲器的该数据不是第一次传输,则直接执^1该步骤(6), 以及当该外部缓冲器的该数据为第一次传输且当该主机指派的该数据传输的 该位置不是指向该暂存块地址,执行一演算处理,接着,直接执行步骤(e),该演算处理包含整理该外部缓冲器的该数据,以使该数据为连续性的数据。
10. 根据权利要求9所述的闪存的数据管理方法,其特征在于,执行步骤 (e)之后,还包含检査该主机的该数据传输至该外部缓冲器的写入动作是否己经停止,若该数据停止从该主机写入至该外部缓冲器,则执行下列歩骤(i) 检査存放于该闪存的该缓冲器内的该数据,若该数据占满该闪存的 该缓冲器,则执行步骤(g),若该数据未占满该闪存的该缓冲器,则执行步骤(h):(g) 根据该目的块地址,写入该数据至一目的块,其中,该目的块地址为该原始目的块地址或该新的目的块地址;以及(h) 指派一暂存块给该数据,并将该数据写入至该暂存块。
11. 根据权利要求10所述的闪存的数据管理方法,其特征在于,该步骤 (h)中写入该数据至该暂存块是使用一改变地址指令,用于指派一暂存块地址给该闪存的该缓冲器内的该数据,以将该数据写入至该暂存块。
12. 根据权利要求10所述的闪存的数据管理方法,其特征在于,该步骤 (h)中写入该数据至该暂存块还包含下列步骤(i) 执行一写入指令,其中,该写入指令会删掉该闪存的该缓冲器内的 该数据,并且重新指派一地址,该地址为一暂存块地址;以及(j)写入该外部缓冲器的该数据至该闪存的该缓冲器内,其中,该闪存 的该缓冲器内的该资料具有该暂存块地址,并根据该暂存块地址将该数据写入 至该暂存块。
13. 根据权利要求9所述的闪存的数据管理方法,其特征在于,执行步骤 (e)之后,还包含检査该主机的该数据传输至该外部缓冲器的写入动作是否已经停止,若该数据还未停止从该主机写入至该外部缓冲器,则执行下列步骤:(f)检査存放于该闪存的该缓冲器内的该数据,若该数据未占满该闪存的该缓冲器,则回到该步骤(e),若该数据占满该闪存的该缓冲器,则根据 该目的块地址,写入该数据至一目的块,当完成该数据写入至该目的块,该闪 存执行一写入指令,以及累加该目的块地址之后,回到该步骤(b),其中, 该目的块地址为该原始目的块地址或该新的目的块地址。
全文摘要
一种闪存的数据管理方法,包含当主机传送过来的数据为第一次传输,且此数据的写入地址为暂存块地址,则读取一暂存块数据至外部缓冲器后,执行一写入指令,写入此具有一目的块地址的暂存块数据至闪存的缓冲器。当闪存的缓冲器内的数据为未占满缓冲器的状态,则将此数据写入暂存块;写入暂存块的方法包含使用改变地址指令,或执行一写入指令,再重新写入外部缓冲器的数据至闪存的缓冲器,以使此数据写入至暂存块。
文档编号G06F12/06GK101196851SQ20061016187
公开日2008年6月11日 申请日期2006年12月5日 优先权日2006年12月5日
发明者李俊坤, 萧惟益 申请人:慧荣科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1