专利名称:记忆装置以及记忆装置的数据存取方法
技术领域:
本发明涉及存储器的数据存取相关技术领域,更具体地说,涉及一种记忆装置以 及记忆装置的数据存取方法。
背景技术:
闪存通常设置于数据储存装置中以供数据储存。为了提供更大的数据容量,一快 闪记忆装置通常包括多个闪存。因此,快闪记忆装置的控制器必须可同时管理多个闪存的 数据存取。当快闪记忆装置自一主机接收到一序列的存取命令,快闪记忆装置的控制器必 须逐次辨别该等存取命令存取多个闪存中的哪一个,进而将存取命令转发送至对应的闪 存,以使对应的闪存依存取命令执行数据存取动作。图1为快闪记忆装置的一控制器的习知数据存取方法100的流程图。首先,控制 器自主机接收一存取命令(步骤10幻。接着,控制器决定该存取命令所欲存取的目标存储 器(步骤104)。当目标存储器决定之后,由于目标存储器可能正忙于处理之前自控制器接 收的数据或对其内储存的数据进行重整或搬移,因此目标存储器可能正处于忙碌状态,而 无法接收新数据。因此,控制器必须先检查是否该目标存储器处于忙碌状态(步骤106)。 若目标存储器正处于忙碌状态,控制器必须等待一段预定时间,再重新检查是否该目标存 储器处于忙碌状态(步骤106),直到目标存储器完成目前的工作而解除忙碌状态为止。当控制器发现该目标存储器并非处于忙碌状态(步骤106),目标存储器便可自控 制器接收新数据及新存取命令。因此,控制器向该目标存储器发送存取命令以存取该目标 存储器所储存的数据(步骤110)。该存取命令可为一读取命令以要求目标存储器读取特 定数据,或是一写入命令以要求目标存储器写入特定数据。当数据存取执行完毕,控制器再 将存取数据的结果回报该主机(步骤11 。最后,若主机再次发送其它存取命令至控制器 (步骤114),则控制器重新执行步骤102 112。若主机未再发送其它存取命令至控制器, 则数据存取结束。图1的习知数据存取方法100有严重的缺点。当控制器运用习知数据存取方法 100处理接受自主机的存取命令时,若目标存储器处于忙碌状态(步骤106),控制器必须不 断的等待(步骤108),直到目标存储器的忙碌状态解除为止,才可继续向目标存储器传送 存取命令与数据以执行存取命令(步骤110)。若主机不断发送存取命令以存取相邻近的 逻辑地址的数据,由于相邻近的逻辑地址的数据对应于同一目标存储器,造成目标存储器 处于忙碌状态的频率过高,便使得控制器不断处于等待状态而无法执行后续自主机接收的 存取命令。这会使得执行存取命令的延迟时间过长,而降低控制器与记忆装置的效能。因 此,需要一种记忆装置的数据存取方法,以使控制器可减少执行存取命令的延迟时间,从而 提升控制器与记忆装置的效能。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种记忆装置的数据存取方法,以解决习知技术存在的问题。本发明解决其技术问题所采用的技术方案之一是构造一种记忆装置的数据存取 方法,该记忆装置包括多个存储器,且该记忆装置耦接至一主机,该方法包括下列步骤首 先,储存自该主机所依序接收的多个命令于一命令队列;接着,自该命令队列取得一目标 命令;接着,决定该目标命令所欲存取的一目标存储器;接着,检查该目标存储器是否处于 忙碌状态;若该目标存储器并非处于忙碌状态,执行该目标命令的存取动作;若该目标存 储器处于忙碌状态,自该命令队列中的顺序位于该目标命令之后的该等命令选取一替代命 令,并执行该替代命令的存取动作。进一步地,上述本发明所述的记忆装置的数据存取方法,其中该替代命令的选取 包括自该命令队列中的顺序位于该目标命令之后的该等命令取得一候选替代命令;决定该候选替代命令所欲存取的一候选存储器;
检查该候选存储器是否处于忙碌状态;若该候选存储器并非处于忙碌状态,则决定该候选替代命令为该替代命令;以及若该目标存储器处于忙碌状态,自该命令队列中的顺序位于该目标命令之后的该 等命令重新选取一候选替代命令。进一步地,上述本发明所述的记忆装置的数据存取方法,其中该替代命令的决定 更包括决定该候选替代命令欲存取的逻辑地址范围;决定于该命令队列中顺序位于该候选替代命令之前的该等命令欲存取的多个参 考地址范围;检查是否该逻辑地址范围与该等参考地址范围相重迭;若该逻辑地址范围与该等参考地址范围不相重迭,则决定该候选替代命令为该替 代命令;以及若该逻辑地址范围与该等参考地址范围相重迭,自该命令队列中的顺序位于该目 标命令之后的该等命令重新选取一候选替代命令。进一步地,上述本发明所述的记忆装置的数据存取方法,其中该逻辑地址范围的 决定包括决定该候选替代命令所存取的一起始逻辑地址;决定该候选替代命令所存取的一数据长度;将该起始逻辑地址加上该数据长度以得到一结束逻辑地址;以及决定自该起始逻辑地址至该结束逻辑地址所包括的范围为该逻辑地址范围。进一步地,上述本发明所述的记忆装置的数据存取方法,其中该目标存储器的决 定包括决定该目标命令所存取的一起始逻辑地址;转换该起始逻辑地址为一实体地址;以及决定包含该实体地址的该目标存储器。进一步地,上述本发明所述的记忆装置的数据存取方法,其中该等存储器皆具有 对应的一芯片致能信号,且该目标存储器是否处于忙碌状态的检查包括
决定该目标存储器所对应的一目标芯片致能信号;检查是否该目标芯片致能信号处于致能状态;以及若该目标芯片致能信号非处于致能状态,则决定该目标存储器正处于忙碌状态。进一步地,上述本发明所述的记忆装置的数据存取方法,其中该目标命令的存取 动作的执行包括向该目标存储器发送该目标命令以使该目标存储器进行数据存取;向该主机回报数据存取的结果;以及自该命令队列中删除该目标命令。进一步地,上述本发明所述的记忆装置的数据存取方法,其中该等存储器为闪存。本发明解决其技术问题所采用的技术方案之二是构造一种记忆装置,该记忆装 置耦接至一主机,其包括多个存储器以及一控制器。该等存储器用以储存数据。该控制器 储存自该主机所依序接收的多个命令于一命令队列,自该命令队列取得一目标命令,决定 该目标命令所欲存取的一目标存储器,检查该目标存储器是否处于忙碌状态,当该目标存 储器并非处于忙碌状态时执行该目标命令的存取动作,以及当该目标存储器处于忙碌状态 时,自该命令队列中的顺序位于该目标命令之后的该等命令选取一替代命令,并执行该替 代命令的存取动作。进一步地,上述本发明所述的记忆装置,其中该控制器自该命令队列中顺序位于 该目标命令之后的该等命令取得一候选替代命令,决定该候选替代命令所欲存取的一候选 存储器,检查该候选存储器是否处于忙碌状态,当该候选存储器并非处于忙碌状态时决定 该候选替代命令为该替代命令,以及当该目标存储器处于忙碌状态时自该命令队列中顺序 位于该目标命令之后的该等命令重新选取一候选替代命令,以进行该替代命令的选取。进一步地,上述本发明所述的记忆装置,其中该控制器决定该候选替代命令欲存 取的逻辑地址范围,决定于该命令队列中顺序位于该候选替代命令之前的该等命令欲存取 的多个参考地址范围,检查是否该逻辑地址范围与该等参考地址范围相重迭,当该逻辑地 址范围与该等参考地址范围不相重迭时则决定该候选替代命令为该替代命令,以及当该逻 辑地址范围与该等参考地址范围相重迭时自该命令队列中的顺序位于该目标命令之后的 该等命令重新选取一候选替代命令,以决定该替代命令。进一步地,上述本发明所述的记忆装置,其中该控制器决定该候选替代命令所存 取的一起始逻辑地址,决定该候选替代命令所存取的一数据长度,将该起始逻辑地址加上 该数据长度以得到一结束逻辑地址,以及决定自该起始逻辑地址至该结束逻辑地址所包括 的范围为该逻辑地址范围。进一步地,上述本发明所述的记忆装置,其中该控制器决定该目标命令所存取的 一起始逻辑地址,转换该起始逻辑地址为一实体地址,以及决定包含该实体地址的该目标 存储器,以决定该目标存储器。进一步地,上述本发明所述的记忆装置,其中该等存储器皆具有对应的一芯片致 能信号,且该控制器决定该目标存储器所对应的一目标芯片致能信号,检查是否该目标芯 片致能信号处于致能状态,以及当该目标芯片致能信号非处于致能状态时,则决定该目标 存储器正处于忙碌状态。进一步地,上述本发明所述的记忆装置,其中该控制器向该目标存储器发送该目标命令以使该目标存储器进行数据存取,向该主机回报数据存取的结果,以及自该命令队 列中删除该目标命令,以执行该目标命令的存取动作。进一步地,上述本发明所述的记忆装置,其中该等存储器为闪存。实施本发明的记忆装置以及记忆装置的数据存取方法,具有以下有益效果当控 制器处理接受自主机的存取命令时,若目标存储器处于忙碌状态,控制器不须等待到目标 存储器的忙碌状态解除,便可继续向目标存储器传送存取命令与数据以执行存取命令。于 是,减少了控制器执行存取命令的延迟时间,进一步提升了控制器与记忆装置的效能。
下面将结合附图及实施例对本发明作进一步说明,附图中图1为快闪记忆装置的一控制器的习知数据存取方法的流程图;图2是本发明的数据储存系统的区块图;图3是本发明的记忆装置的数据存取方法的流程图;图4是本发明的命令队列中储存的多个命令的一范例。主要组件符号说明200 数据储存系统;202 主机;204 记忆装置;212 控制器;214 命令队列;221、222、…、22N 存储器。
具体实施例方式图2是本发明的数据储存系统200的区块图。数据储存系统200包括主机202以 及记忆装置204。记忆装置204为主机202储存数据。主机202支持本地指令排序(native command queuing, NCQ)的功能。于一实施例中,记忆装置204包括控制器212以及多个存 储器 221、222、. . .、22N。于一实施例中,存储器 221、222、. . .、22N 为闪存(flash memory) 控制器212包括一命令队列(command queue) 214。当控制器212自主机202接收多个命 令后,控制器212会将该等命令储存于命令队列214中,再自命令队列中依序取出命令并向 对应的存储器发送命令,以使存储器依命令进行数据存取。该等命令可为要求存储器读取 数据的读取命令,或是要求存储器写入数据的写入命令。于一实施例中,控制器212与存 储器221、222、…、22N间各具有一芯片致能信号CE^CE^…、CEn,该等芯片致能信号CE1. CE2,…、(&分别表示对应的存储器221、222、…、22N是否正处于忙碌状态中。图3是本发明的记忆装置204的数据存取方法300的流程图。控制器212依据方法300处理自主机202所接收的多个命令,以对存储器221、222.....22N进行数据存取。首先,控制器212自主机202接收多个命令,并将该等命令依序储存至一命令队列214(步骤 301)。接着,控制器212自命令队列214中储存的一连串命令取得一目标命令(步骤302)。 该目标命令为命令队列214中储存的多个命令中的第一个命令。接着,控制器212决定该 目标命令欲存取的目标存储器(步骤304)。于一实施例中,控制器212先决定该目标命令欲存取的逻辑地址,接着将逻辑地址转换为对应的实体地址,再决定该实体地址包含于哪 一记亿体中,以决定包含该实体地址的目标存储器。当控制器212决定目标命令欲存取的目标存储器后,便需先判断目标存储器是否 处于忙碌状态(步骤306)。若目标存储器正在对其内储存数据进行重整或挪移,目标存储 器便处于忙碌状态,而无法处理自控制器212所接收的新数据。于一实施例中,控制器212 检查目标存储器所对应的芯片致能信号,以决定是否目标存储器处于忙碌状态。若目标存 储器所对应的芯片致能信号处于致能状态,则控制器212可判定目标存储器并非处于忙碌 状态。反之,若目标存储器所对应的芯片致能信号非处于致能状态,则控制器212可判定目 标存储器正处于忙碌状态。此时,若控制器212判定目标存储器正处于忙碌状态(步骤306),则目标存储器 无法接收控制器212所传送的目标命令。若控制器212仅仅等待目标存储器解除忙碌状态 而不对命令队列214所储存的其它命令进行任何处理,将使控制器212处于闲置状态,而对 命令队列214所储存的其它命令的执行造成长时间的延迟。因此,控制器212自命令队列 214所储存的次序位于该目标命令之后的该等命令中选取一替代命令(步骤308),并提前 执行该替代命令,以减少控制器212处于闲置状态的时间。然而,控制器212于步骤308中自命令队列214所储存的命令所选取的替代命令 并非一定可以立即执行,控制器212还需检查该替代命令是否符合两项标准。首先,控制 器212决定该替代命令所存取的逻辑地址所对应的一替代存储器(步骤310),并检查是否 该替代存储器处于忙碌状态(步骤31 。于一实施例中,控制器212检查替代存储器对应 的一芯片致能信号,以决定替代存储器是否处于忙碌状态。若替代存储器正处于忙碌状态 (步骤31 ,则替代存储器与目标存储器同样无法自控制器212接收存取命令与新数据,因 此控制器212必须自命令队列储存的该等命令中重新选取一替代命令(步骤308)。其次,控制器212还需检查步骤308中所选取的该替代命令所存取的逻辑地址范 围是否与该替代命令之前的其它命令所存取的逻辑地址范围相重迭。控制器212首先决定 该替代命令欲存取的逻辑地址范围,并决定于命令队列中顺序位于该替代命令之前的多个 命令欲存取的多个参考地址范围(步骤314)。于一实施例中,控制器212决定替代命令所 存取的一起始逻辑地址以及替代命令所存取的数据的长度,接着将起始逻辑地址加上数据 长度以得一结束逻辑地址,再以介于起始逻辑地址与结束逻辑地址间的范围作为逻辑地址 范围。对应于其它命令的参考地址范围亦可以同法获得。接着,控制器212比较逻辑地址 范围与该等参考地址范围(步骤316),若替代命令所存取的逻辑地址范围与该等参考地址 范围其中的一至数个重迭,则若提前替代命令的执行会影响数据存取的正确性,因此控制 器212必须自命令队列储存的该等命令中重新选取一替代命令(步骤308)。若替代命令顺替通过步骤312及316的检测条件,表示替代命令可提前执行而不 影响数据存取的正确性。因此,控制器212向替代存储器发送替代命令,以使该替代存储器 进行数据存取,从而完成替代命令的执行(步骤318)。当替代命令执行完毕后,控制器212 自命令队列214中删去该替代命令。接着,于替代命令执行完毕后,控制器212继续检查是 否目标存储器仍处于忙碌状态(步骤306)。若目标存储器仍处于忙碌状态,则控制器212 持续自命令队列214所储存的该等命令中选取一新替代命令(步骤308),依据步骤310 316检测该新替代命令,并于新替代命令通过步骤312及316的检测条件后提前执行该新替代命令(步骤318)。当替代命令执行完毕后(步骤318),若控制器212发现目标存储器并非处于忙碌 状态(步骤306),则控制器212向目标存储器发送目标命令,以使该目标存储器进行数据存 取,从而完成目标命令的执行(步骤320)。当目标命令执行完毕后,控制器212自命令队 列214中删去该目标命令。最后,控制器212检查命令队列214中是否尚储存有其它命令 待执行(步骤32 。由于当命令执行完毕后,控制器212便会自命令队列214中删除该命 令,因此若命令队列214中尚储存有其它命令,表示控制器212尚未完成所有主机要求的命 令的执行。反之,若命令队列214中已不储存有命令,表示控制器212已完成所有主机要求 的命令的执行,则方法300结束。图4是本发明的命令队列214中储存的多个命令的一范例。假设记忆装置204 包括4个存储器,其中第一存储器供储存逻辑地址范围为1 5000的数据,第二存储器供 储存逻辑地址范围为5001 10000的数据,第三存储器供储存逻辑地址范围为10001 15000的数据,第四存储器供储存逻辑地址范围为15001 20000的数据。命令队列214中 储存着K个存取命令。控制器212首先自命令队列214中取得次序为1的读取命令为目标 命令。该读取命令的起始逻辑地址为1001,对应于第一存储器。假设第一存储器正处于忙 碌状态,则控制器212自命令队列214中取得次序为2的写入命令为替代命令。该写入命 令的起始逻辑地址为7501,对应于第二存储器。假设第二存储器非处于忙碌状态,则控制器 212先对第二存储器发送次序为2的写入命令,待写入命令执行完毕后,再对第一存储器发 送次序为1的读取命令,并自命令队列214删去次序为1的读取命令及次序为2的写入命 令。接着,控制器212自命令队列214中取得次序为3的读取命令为目标命令。该读 取命令的起始逻辑地址为10001,对应于第三存储器。假设第三存储器正处于忙碌状态,则 控制器212自命令队列214中取得次序为4的写入命令为替代命令。该写入命令的起始逻 辑地址为9001,对应于第二存储器。假设第二存储器非处于忙碌状态。然而,因为次序为4 的写入命令的逻辑地址范围9001 10500与之前的次序为3的读取命令的逻辑地址范围 10001 11000相重迭,会导致重迭部分的数据的存取错误,因此控制器212必须重新选取 替代命令。假设控制器212自命令队列214中重新取得次序为5的读取命令为替代命令, 而该读取命令的起始逻辑地址17501所对应的第四存储器非处于忙碌状态。则控制器212 先对第四存储器发送次序为5的读取命令,再对第三存储器发送次序为3的读取命令。待 次序为5及3的读取命令皆执行完毕后,控制器212再对第二存储器发送次序为4的写入 命令,并自命令队列214删去次序为5及3的读取命令及次序为4的写入命令。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此项 技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范 围当视后附的申请专利范围所界定者为准。
权利要求
1.一种记忆装置的数据存取方法,其中该记忆装置包括多个存储器,且该记忆装置耦 接至一主机,其特征在于,该方法包括下列步骤储存自该主机所依序接收的多个命令于一命令队列; 自该命令队列取得一目标命令; 决定该目标命令所欲存取的一目标存储器; 检查该目标存储器是否处于忙碌状态;若该目标存储器并非处于忙碌状态,执行该目标命令的存取动作;以及 若该目标存储器处于忙碌状态,自该命令队列中的顺序位于该目标命令之后的该等命 令选取一替代命令,并执行该替代命令的存取动作。
2.根据权利要求1所述的记忆装置的数据存取方法,其特征在于,其中该替代命令的 选取包括自该命令队列中的顺序位于该目标命令之后的该等命令取得一候选替代命令; 决定该候选替代命令所欲存取的一候选存储器; 检查该候选存储器是否处于忙碌状态;若该候选存储器并非处于忙碌状态,则决定该候选替代命令为该替代命令;以及 若该目标存储器处于忙碌状态,自该命令队列中的顺序位于该目标命令之后的该等命 令重新选取一候选替代命令。
3.根据权利要求2所述的记忆装置的数据存取方法,其特征在于,其中该替代命令的 决定更包括决定该候选替代命令欲存取的逻辑地址范围;决定于该命令队列中顺序位于该候选替代命令之前的该等命令欲存取的多个参考地 址范围;检查是否该逻辑地址范围与该等参考地址范围相重迭;若该逻辑地址范围与该等参考地址范围不相重迭,则决定该候选替代命令为该替代命 令;以及若该逻辑地址范围与该等参考地址范围相重迭,自该命令队列中的顺序位于该目标命 令之后的该等命令重新选取一候选替代命令。
4.根据权利要求3所述的记忆装置的数据存取方法,其特征在于,其中该逻辑地址范 围的决定包括决定该候选替代命令所存取的一起始逻辑地址;决定该候选替代命令所存取的一数据长度;将该起始逻辑地址加上该数据长度以得到一结束逻辑地址;以及决定自该起始逻辑地址至该结束逻辑地址所包括的范围为该逻辑地址范围。
5.根据权利要求1所述的记忆装置的数据存取方法,其特征在于,其中该目标存储器 的决定包括决定该目标命令所存取的一起始逻辑地址; 转换该起始逻辑地址为一实体地址;以及 决定包含该实体地址的该目标存储器。
6.根据权利要求1所述的记忆装置的数据存取方法,其特征在于,其中该等存储器皆具有对应的一芯片致能信号,且该目标存储器是否处于忙碌状态的检查包括决定该目标存储器所对应的一目标芯片致能信号;检查是否该目标芯片致能信号处于致能状态;以及若该目标芯片致能信号非处于致能状态,则决定该目标存储器正处于忙碌状态。
7.根据权利要求1所述的记忆装置的数据存取方法,其特征在于,其中该目标命令的 存取动作的执行包括向该目标存储器发送该目标命令以使该目标存储器进行数据存取;向该主机回报数据存取的结果;以及自该命令队列中删除该目标命令。
8.根据权利要求1所述的记忆装置的数据存取方法,其特征在于,其中该等存储器为闪存。
9.一种记忆装置,耦接至一主机,其特征在于,包括多个存储器,用以储存数据;以及一控制器,储存自该主机所依序接收的多个命令于一命令队列,自该命令队列取得一 目标命令,决定该目标命令所欲存取的一目标存储器,检查该目标存储器是否处于忙碌状 态,当该目标存储器并非处于忙碌状态时执行该目标命令的存取动作,以及当该目标存储 器处于忙碌状态时,自该命令队列中的顺序位于该目标命令之后的该等命令选取一替代命 令,并执行该替代命令的存取动作。
10.根据权利要求9所述的记忆装置,其特征在于,其中该控制器自该命令队列中顺 序位于该目标命令之后的该等命令取得一候选替代命令,决定该候选替代命令所欲存取的 一候选存储器,检查该候选存储器是否处于忙碌状态,当该候选存储器并非处于忙碌状态 时决定该候选替代命令为该替代命令,以及当该目标存储器处于忙碌状态时自该命令队列 中顺序位于该目标命令之后的该等命令重新选取一候选替代命令,以进行该替代命令的选 取。
11.根据权利要求10所述的记忆装置,其特征在于,其中该控制器决定该候选替代命 令欲存取的逻辑地址范围,决定于该命令队列中顺序位于该候选替代命令之前的该等命令 欲存取的多个参考地址范围,检查是否该逻辑地址范围与该等参考地址范围相重迭,当该 逻辑地址范围与该等参考地址范围不相重迭时则决定该候选替代命令为该替代命令,以及 当该逻辑地址范围与该等参考地址范围相重迭时自该命令队列中的顺序位于该目标命令 之后的该等命令重新选取一候选替代命令,以决定该替代命令。
12.根据权利要求11所述的记忆装置,其特征在于,其中该控制器决定该候选替代命 令所存取的一起始逻辑地址,决定该候选替代命令所存取的一数据长度,将该起始逻辑地 址加上该数据长度以得到一结束逻辑地址,以及决定自该起始逻辑地址至该结束逻辑地址 所包括的范围为该逻辑地址范围。
全文摘要
本发明涉及一种记忆装置的数据存取方法,该记忆装置包括多个存储器,且该记忆装置耦接至一主机。首先,储存自该主机所依序接收的多个命令于一命令队列。接着,自该命令队列取得一目标命令。接着,决定该目标命令所欲存取的一目标存储器。接着,检查该目标存储器是否处于忙碌状态。若该目标存储器并非处于忙碌状态,执行该目标命令的存取动作。若该目标存储器处于忙碌状态,自该命令队列中的顺序位于该目标命令之后的该等命令选取一替代命令,并执行该替代命令的存取动作。本发明还涉及一种记忆装置。本发明减少了控制器执行存取命令的延迟时间,进一步提升了控制器与记忆装置的效能。
文档编号G06F12/02GK102053913SQ20091020887
公开日2011年5月11日 申请日期2009年10月30日 优先权日2009年10月30日
发明者林仁文 申请人:慧荣科技股份有限公司