数据储存装置及其数据读取方法与流程

文档序号:17387879发布日期:2019-04-13 00:17阅读:210来源:国知局
数据储存装置及其数据读取方法与流程

本发明有关于一种数据储存装置的数据读取方法;特别有关于一种可决定读取任务的顺序的数据读取方法。



背景技术:

快闪存储器为一种普遍的非挥发性数据储存装置,是以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD)、嵌入式快闪存储器模组(eMMC)…等使用。

快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks)。各区块包括多个页面(pages)。一般而言,在快闪存储器中数据读取的单位是页面。在以往eMMC的规格中,读取命令需要逐一执行。换言之,当所接收的读取命令已执行完毕后,数据储存装置才可自主机接收另一个读取命令以执行令一读取任务。因此,如何更有效率的执行读取命令是增进数据储存装置效能的重要问题。



技术实现要素:

本发明所提供的数据储存装置以及数据读取方法可依照特定规则选择读取命令所执行的顺序,以降低控制器闲置的时间。

本发明提供一种数据储存装置包括一快闪存储器、一随机存取存储器以及一控制器。控制器自一主机接收多条读取命令,其中每一读取命令所指定的数据需要藉由多个映射表中之一者来定位,并且每一读取命令用以执行将所指定的数据传送至主机的一读取任务。控制器选择读取命令中所需的映射表已上载至随机存取存储器之一者作为一第一读取命令,并且第一读取命令所执行的一第一读取任务是读取任务中第一个被执行的。控制器在第一读取任务执行前,在所剩余的读取命令中选择一第二读取命令,以安排第二读取命令所执行的一第二读取任务在第一读取任务下一个被执行。控制器在第一读取任务执行前,复用以选择性地同时自快闪存储器读取第一读取命令所指示的一第一数据以及用以执行第二读取任务的一第二读取命令所需的映射表,或者同时自快闪存储器读取第一读取命令所指示的一第一数据以及第二读取命令所指定的一第二数据。

在一实施例中,快闪存储器包括多个芯片以及多条芯片选择线,每一芯片选择线用以控制至少一芯片。控制器自读取命令中选择所需的映射表尚未被上载至随机存取存储器并且所需的映射表与第一数据被不同的芯片选择线所控制之一者作为第二读取命令。当所有剩余的读取命令所需但尚未被上载至随机存取存储器的映射表皆被用以控制第一数据的芯片选择线所控制时,控制器自读取命令中选择所需的映射表尚未被上载至随机存取存储器之任一者作为第二读取命令,在第一读取任务执行前,选择仅自快闪存储器读取第一数据,并且在自主机接收到执行第一读取任务的一第一任务执行信号后并且自主机接收到执行第二读取任务的一第二任务执行信号前,自快闪存储器读取第二读取命令所需的映射表。当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器时,控制器自读取命令中选择任一者作为第二读取命令,控制器在第一读取任务执行前,选择仅自快闪存储器读取第一数据。

在另一实施例中,当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器时,控制器自读取命令中选择所指定的数据与第一数据被不同的芯片选择线所控制之一者作为第二读取命令,并且在第一读取任务执行前,同时自快闪存储器读取第一数据以及第二数据。当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器并且所有剩余的读取命令所指定的数据皆被用以控制第一数据的芯片选择线所控制时,控制器自读取命令中选择任一者作为第二读取命令,在第一读取任务执行前,选择仅自快闪存储器读取第一数据。当所有剩余的读取命令所需的映射表皆已被上载至随机存取存储器并且相应于目前的读取命令所指示的数据已被读取时,控制器自读取命令中选择任一者作为下一个读取命令,并且目前的读取命令所相应的目前的读取任务执行前,选择仅自快闪存储器读取下一个读取命令所指示的数据。

值得注意的是,一实施例中,数据储存装置符合嵌入式快闪存储器模组(eMMC)的规范,其中控制器先陆续自主机接收读取命令,再决定读取命令所相应的读取任务被执行的顺序。另外,控制器还用以根据读取命令的数量动态调整随机存取存储器中用以预取读取命令的数据的空间。当读取命令的总数为N,控制器更用以调整随机存取存储器中用以预取读取命令的数据的空间使得读取命令所需的映射表具有1/N的机会已上载至随机存取存储器中。

本发明另提供一种数据储存装置包括一快闪存储器、一随机存取存储器以及一控制器。控制器自一主机接收多条读取命令以构成一命令序列,并且决定读取命令执行的顺序,其中每一读取命令所指定的数据需要藉由多个映射表中之一者来定位,并且每一读取命令用以执行将所指定的数据传送至主机的一读取任务。控制器选择读取命令中所需的映射表已上载至随机存取存储器之一者作为第一个执行的一第一读取命令,其中在所剩余的读取命令中,所需的映射表尚未被上载至随机存取存储器的读取命令的优先权高于所需的映射表已被上载至随机存取存储器的读取命令的优先权。

在一实施例中,快闪记体包括多个芯片以及多条芯片选择线,每一芯片选择线用以控制至少一芯片,其中在所需的映射表尚未被上载至随机存取存储器的所剩余的读取命令中,所需的映射表与目前所执行的读取命令所指示的一目前数据被不同的芯片选择线所控制的读取命令的优先权高于所需的映射表与目前所执行的读取命令所指示的一目前数据被相同的芯片选择线所控制的读取命令的优先权。当下一个读取命令所需的映射表与目前所执行的读取命令所指示的一目前数据被不同之芯片选择线所控制时,控制器同时自快闪存储器读取目前的读取命令所指示的目前数据以及用以下一个读取命令所需的映射表。

又另一实施例中,在所需的映射表已未被上载至随机存取存储器的所剩余的读取命令中,所指示的数据与目前所执行的读取命令所指示的一目前数据被不同的芯片选择线所控制的读取命令的优先权高于所指示的数据与目前所执行的读取命令所指示的一目前数据被相同的芯片选择线所控制的读取命令的优先权。当下一个读取命令所指示的数据与目前所执行的读取命令所指示的一目前数据被不同的芯片选择线所控制时,控制器用以同时自快闪存储器读取目前的读取命令所指示的目前数据以及下一个读取命令所指定的数据。

本发明又提供一种数据读取方法适用于具有一快闪存储器的数据储存装置。数据读取方法包括:自一主机接收多条读取命令,其中每一读取命令所指定的数据需要藉由多个映射表中之一者来定位,并且每一读取命令用以执行将所指定的数据传送至主机的一读取任务;判断读取命令所需要的映射表是否已上载至一随机存取存储器;选择读取命令中所需的映射表已上载至随机存取存储器之一者作为一第一读取命令,其中第一读取命令所执行的一第一读取任务是读取任务中第一个被执行的;在第一读取任务执行前,在所剩余的读取命令中选择一第二读取命令,以安排第二读取命令所执行的一第二读取任务在第一读取任务下一个被执行;以及在第一读取任务执行前,选择性地同时自快闪存储器读取第一读取命令所指示的一第一数据以及用以执行第二读取任务的一第二读取命令所需的映射表,或者同时自快闪存储器读取第一读取命令所指示的一第一数据以及第二读取命令所指定的一第二数据。

在一实施例中,快闪存储器包括多个芯片以及多条芯片选择线,每一芯片选择线用以控制至少一芯片,并且在所剩余的读取命令中选择第二读取命令的步骤还包括:判断剩余的读取命令所需但尚未被上载至随机存取存储器的映射表是否与第一数据被不同的芯片选择线所控制;以及当剩余的读取命令所需但尚未被上载至随机存取存储器的映射表中之至少一者与第一数据被不同的芯片选择线所控制时,自读取命令中选择所需的映射表尚未被上载至随机存取存储器并且所需的映射表与第一数据被不同的芯片选择线所控制之一者作为一第二读取命令,其中数据读取方法还包括:在第一读取任务执行前,选择同时自快闪存储器读取第一读取命令所指示的一第一数据以及用以执行第二读取任务的一第二读取命令所需的映射表。

在一实施例中,在所剩余的读取命令中选择第二读取命令的步骤还包括:当所有剩余的读取命令所需但尚未被上载至随机存取存储器的映射表与第一数据皆被相同的芯片选择线所控制时,自读取命令中选择所需的映射表尚未被上载至随机存取存储器之任一者作为第二读取命令,其中数据读取方法还包括:在第一读取任务执行前,选择仅自快闪存储器读取第一数据;以及在自主机接收到执行第一读取任务的一第一任务执行信号后并且自主机接收到执行第二读取任务的一第二任务执行信号前,自快闪存储器读取第二读取命令所需的映射表;当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器时,自读取命令中选择任一者作为第二读取命令,其中数据读取方法还包括:在第一读取任务执行前,选择仅自快闪存储器读取第一数据。

又另一实施例中,在所剩余的读取命令中选择第二读取命令的步骤还包括:当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器时,判断所有剩余的读取命令所指定的数据是否与第一数据被不同的芯片选择线所控制;当所有剩余的读取命令所指定的数据中之至少一者与第一数据被不同的芯片选择线所控制时,自读取命令中选择所指定的数据与第一数据被不同的芯片选择线所控制之一者作为第二读取命令,其中数据读取方法还包括:在第一读取任务执行前,选择同时自快闪存储器读取第一数据以及第二数据;当所有剩余的读取命令所指定的数据皆与第一数据被相同的芯片选择线所控制时,自读取命令中选择任一者作为第二读取命令,其中数据读取方法还包括:在第一读取任务执行前,选择仅自快闪存储器读取第一数据。

又另一实施例中,数据读取方法还包括:当所有剩余的读取命令所需的映射表皆已被上载至随机存取存储器并且相应于目前的读取命令所指示的数据已被读取时,自读取命令中选择任一者作为下一个读取命令;以及在目前的读取命令所相应的目前的读取任务执行前,选择仅自快闪存储器读取下一个读取命令所指示的数据。

附图说明

图1是本发明的一种实施例的电子系统的方块图;

图2是本发明的一种实施例的快闪存储器的示意图;

图3是本发明的一种实施例的在嵌入式快闪存储器模组的规范下数据传输的示意图;

图4是本发明的另一种实施例的在嵌入式快闪存储器模组的规范下数据传输的示意图;

图5是本发明的另一种实施例的在嵌入式快闪存储器模组的规范下数据传输的示意图;

图6是本发明的另一种实施例的在嵌入式快闪存储器模组的规范下数据传输的示意图;

图7是本发明的另一种实施例的在嵌入式快闪存储器模组的规范下数据传输的示意图;

图8是本发明的另一种实施例的在嵌入式快闪存储器模组的规范下数据传输的示意图;

图9A-9C是本发明的一种实施例的数据读取方法的流程图;

图10A-10D是本发明的一种实施例的数据读取方法的流程图。

符号说明

100 电子系统;

120 主机;

140 数据储存装置;

160 控制器;

162 运算单元;

164 永久存储器;

166 动态随机存取器;

180 快闪存储器;

C0~CN 芯片;

CE0~CE3 芯片选择线;

CH0~CH3 通道选择线;

TA1_Ready~TA4_Ready 任务预备信号;

TA1_Go~TA4_Go 任务执行信号;

DA1~DA4 数据;

TB1~TB4 映射表;

WP_0~WP_5 工作期间;

IDP_1~IDP_3 闲置期间;

S900~S940、S1000~S1040 步骤。

具体实施方式

以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。

图1是本发明的一种实施例的电子系统的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机120所下达的命令操作。值得注意的是,在本发明中的一实施例中,数据储存装置140需符合嵌入式快闪存储器180模组(eMMC)的规范。

控制器160包括一运算单元162、一永久存储器(如,只读存储器ROM)164以及一随机存取存储器(RAM)166。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。随机存取存储器(RAM)166用以暂存以及预取控制器160所需的数据。换言之,控制器160所需要用以读取数据的参数可被上载至随机存取存储器166,以加快控制器160的忙碌时间。值得注意的是,在随机存取存储器166上会保留使用过的映射表,并且在随机存取存储器166用以预取读取命令的数据的空间被填满时,才会清除已使用过的映射表以上载所需的其他映射表。

快闪存储器180包括多个芯片C0~CN,每一芯片C0~CN中包括多个页面。每一芯片C0-CN包括多个页面,每一芯片C0-CN中的页面可以一既定排列顺序构成多个区块。在一实施例中,快闪存储器180具有多个映射表,用以记录快闪存储器180中数据的映射关系,其中当控制器160需要映射表来进行读取时,映射表则被上载至随机存取存储器166,以提供控制器160存取。另外,快闪存储器180还包括多条通道选择线(CH)以及多条芯片选择线(CE)。芯片C0~CN构成一矩阵,通道选择线用以选择矩阵中的行,芯片选择线用以选择矩阵中的列。

举例而言,图2是本发明的一种实施例的快闪存储器的示意图。在本实施例中,快闪存储器180包括16个芯片C0~C15。每一芯片C0~C15包括多个页面,其中芯片C0包括多个页面C0_P0~C0_PM、芯片C1包括多个页面C1_P0~C1_PM、芯片C2包括多个页面C2_P0~C2_PM,依此类推。快闪存储器180还包括4条通道选择线CH0~CH3以及4条芯片选择线CE0~CE3。如图2所示,芯片C0~C15构成一矩阵,通道选择线CH0~CH3用以选择矩阵中的行,芯片选择线CE0~CE3用以选择矩阵中的列。详细而言,通道选择线CH0用以选择在矩阵中第一行上的芯片C0、C4、C8以及C12,通道选择线CH1用以选择在矩阵中第二行上的芯片C1、C5、C9以及C13、通道选择线CH2用以选择在矩阵中第三行上的芯片C2、C6、C10以及C14、通道选择线CH3用以选择在矩阵中第四行上的芯片C3、C7、C11以及C15。另外,芯片选择线CE0用以选择矩阵中第一列上的芯片C0~C3、芯片选择线CE1用以选择矩阵中第二列上的芯片C4~C7、芯片选择线CE2用以选择矩阵中第三列上的芯片C8~C11、以及芯片选择线CE3用以选择矩阵中第四列上的芯片C12~C15。换言之,当控制器160要对芯片C10进行存取时,快闪存储器180则藉由通道选择线CH2以及芯片选择线CE2选择芯片C10,依此类推。在另一实施例中,快闪存储器180亦可包括32个芯片、4条通道选择线以及8条芯片选择线,但本发明不限于此。值得注意的是,在本实施例中,由不同芯片选择线所控制的页面中所储存的数据,可同时自快闪存储器180中读出。举例而言,控制器160可同时自快闪存储器180中读出页面C0_P1、页面C5_P1、页面C9_P3以及页面C15_PM的数据,但本发明不限于此。

在嵌入式快闪存储器模组(eMMC)的最新的5.1规范之前的规范中,主机120仅可一次对数据储存装置140下一个读取命令,并且在相应于所下达的读取命令的数据被读出后才可对数据储存装置140下下一个读取命令。换言之,主机120仅可在前一次所下达的读取命令被完成后,才可对数据储存装置140下下一个读取命令。然而,在嵌入式快闪存储器模组(eMMC)的最新的5.1规范中具有"EMMC Command Que"的功能,使得主机120可不断的对数据储存装置140下达命令。因此,数据储存装置140可将所接收的读取命令储存起来以构成一个命令序列(Command Que),再选择较佳的处理顺序处理所接收的读取命令,其中数据储存装置140在决定好处理顺序后,会告知主机120目前准备进行相应于读取命令的读取任务为何,并且在主机120确认后再将数据传送给主机120以进行读取任务。换言之,控制器160是先陆续自120主机接收多条读取命令,再决定读取命令所相应的读取任务被执行的顺序。

图3是本发明的一种实施例的在嵌入式快闪存储器模组(eMMC)的规范下数据传输的示意图。其中,工作期间WP_0~WP_5代表控制器160工作的时间。换言之,在工作期间WP_0~WP_5中,控制器160都在处理数据以及参数。举例而言,控制器160可在工作期间中,分析读取命令以获得读取命令所相应的数据的逻辑地址、藉由逻辑地址获得相应的映射表、自快闪存储器180读取映射表、藉由映射表获得数据所储存的实体地址、自快闪存储器180读取被读取命令所指定数据、以及根据一特定规则(演算法)以及所获得的资讯选择下一个被执行的读取任务等,但本发明不限于此。在本实施例中,数据储存装置140自主机120接收四个读取命令,其中每一读取命令所指定的数据需要藉由多个映射表中之一者来定位,并且每一读取命令用以执行将所指定的数据传送至主机120的一读取任务,但本发明不限于此。在其他实施例中,数据储存装置140亦可自主机120接收其他数量的读取命令以构成命令序列,4个命令的数量仅是方便说明本案内容。

在本实施例中,在自主机120接收到多个读取命令以获得一个命令序列后,控制器160在工作期间WP_0中解读所接收的读取命令,以获得相应于读取命令的多个读取任务的执行顺序以及读取命令所需的参数(例如读取命令所要读取的数据的逻辑地址)。接着,控制器160拉起(Pull)一第一任务预备信号TA1_Ready,以告知主机120第一读取任务已准备执行。接着,控制器160在工作期间WP_1中自快闪存储器180读取所有读取命令所需的多个映射表TB1~TB4,并且接着在工作期间WP_2根据所获得的映射表TB1~TB4,自快闪存储器180读取所有读取命令所指示的数据DA1~DA4。值得注意的是,映射表TB1~TB4重迭是代表映射表TB1~TB4是同时被读出的,以及数据DA1~DA4重迭是代表数据DA1~DA4是同时被读出的。换言之,在本实施例中映射表TB1~TB4彼此是由不同芯片选择线所控制所以映射表TB1~TB4可同时自快闪存储器180中读出,同理数据DA1~DA4彼此也是由不同芯片选择线所控制所以数据DA1~DA4也可同时自快闪存储器180中读出。在读取完所有的数据DA1~DA4后,控制器160判断主机120是否拉起一第一任务执行信号TA1_Go。由于工作期间WP_1~WP_2所花费时间较长,故在此时主机120已将第一任务执行信号TA1_Go传送给数据储存装置140。接着,控制器160响应于第一任务执行信号TA1_Go,开始在工作期间WP_3将第一读取命令所指示的第一数据DA1传送至主机120以执行第一读取任务,并且同时拉起第二任务预备信号TA2_Ready。在将第一数据DA1全部传送至主机120后,控制器160开始判断是否自主机120接收到第二任务执行信号TA2_Go。然而,在实际的操作上,工作期间WP_3仅需要耗费20~30微秒(μs),但自数据储存装置140拉起第二任务预备信号TA2_Ready开始到主机120回复第二任务执行信号TA2_Go的时间需要耗费70微秒(μs)。因此,控制器160在接收到第二任务执行信号TA2_Go之前会有一段闲置期间IDP_1。接着,在接收到第二任务执行信号TA2_Go后,控制器160响应于第二任务执行信号TA2_Go,将第二读取命令所指定的第二数据DA2在开始在工作期间WP_4传送给主机120以执行第二读取任务并且拉起第三任务预备信号TA3_Ready。同理,控制器160在接收到第三任务执行信号TA3_Go之前会有一段闲置期间IDP_2。接着,在接收到第三任务执行信号TA3_Go后,控制器160响应于第三任务执行信号TA3_Go,将第三读取命令所指定的第三数据DA3在开始在工作期间WP_5传送给主机120以执行第三读取任务并且拉起第四任务预备信号TA4_Ready。同理,控制器160在接收到第四任务执行信号TA4_Go之前会有一段闲置期间IDP_3。最后,在接收到第四任务执行信号TA2_Go后,控制器160响应于第四任务执行信号TA2_Go,将相应于第四读取任务的第四读取命令所指定的第四数据DA2传送给主机120以完成第四读取任务。由于命令序列只有四个读取命令,故在第四读取任务完成后,所有的命令序列的读取任务也都执行完毕。

如上所述,控制器160在等待任务执行信号时,会产生闲置期间IDP_1~IDP_3。在闲置期间IDP_1~IDP_3中,控制器160无法进行其他工作仅能等待主机120的回复,故闲置期间IDP_1~IDP_3降低了数据储存装置140的效能。值得注意的是,在本实施例中,读取任务的顺序可在工作期间WP_0中全部决定好,但本发明不限于此。在一实施例中,第一读取任务是在工作期间WP_0中所决定的、第二读取任务是在工作期间WP_3中所决定的、第三读取任务是在工作期间WP_4中所决定的、第四读取任务是在工作期间WP_5中所决定的。

有鉴于此,本发明提供另一种实施例,以增进数据储存装置140的效能。在本实施例中,控制器160自主机120接收多条读取命令以构成一命令序列。接着,控制器160先选择所需的映射表已上载至随机存取存储器166的读取命令作为第一读取命令。换言之,第一读取命令所执行的读取任务是第一读取任务,第一读取任务是在所有读取任务中第一个被执行的。接着,控制器160在第一任务准备信号以及第二任务执行信号之间,决定下一个第二读取任务并且仅自快闪存储器180读取第一读取任务的第一数据以及第二读取任务所需的映射表,以缩短第一任务准备信号以及第二任务执行信号之间的工作期间,并且将其他任务所需的映射表和数据分散到其他拉起任务准备信号后的工作期间,以利用原本的闲置期间进行读取。值得注意的是,在本实施例中,控制器160会优先选择所需要的映射表未上载至随机存取存储器166的读取命令作为下一个读取命令(读取任务),除了第一个执行的读取任务外。在所需要的映射表未上载至随机存取存储器166的读取命令中,控制器160会优先选择所需要的映射表与目前要读取的数据被不同芯片选择线所控制的读取命令作为下一个读取命令(读取任务)。当所有所需要的映射表未上载至随机存取存储器166的读取命令都处理完之后,处理器160才会选择映射表已上载至随机存取存储器166的读取命令作为一个读取命令(读取任务)。

换言之,在所剩余的读取命令中,所需的映射表尚未被上载至随机存取存储器166的读取命令的优先权高于所需的映射表已被上载至随机存取存储器166的读取命令的优先权。在所需的映射表尚未被上载至随机存取存储器166的所剩余的读取命令中,所需的映射表与目前所执行的读取命令所指示的一目前数据被不同的芯片选择线所控制的读取命令的优先权高于所需的映射表与目前所执行的读取命令所指示的一目前数据被相同的芯片选择线所控制的读取命令的优先权。在所需的映射表已未被上载至随机存取存储器166的所剩余的读取命令中,所指示的数据与目前所执行的读取命令所指示的一目前数据被不同的芯片选择线所控制的读取命令的优先权高于所指示的数据与目前所执行的读取命令所指示的一目前数据被相同的芯片选择线所控制的读取命令的优先权。

另外,控制器160更用以根据读取命令的数量动态调整随机存取存储器166中用以预取读取命令的数据的空间。详细而言,当读取命令的总数为N,控制器160更用以调整随机存取存储器166中用以预取读取命令的数据的空间使得读取命令所需的映射表具有1/N的机会已上载至随机存取存储器166中。因此,控制器160可在命列序列中,具有至少一个所需的映射表已上载至随机存取存储器166中的读取命令。详细说明请参考图4-8。

图4是本发明的另一种实施例的在嵌入式快闪存储器模组的规范下数据传输的示意图。在本实施例中,命令序列具有四个读取命令,并且四个读取命令中有一个读取命令所需的映射表已上载至随机存取存储器166,其他三个读取命令所需的映射表未上载至随机存取存储器166。在本实施例中,控制器160是自主机120接收四个读取命令以构成命令序列,但本发明不限于此。在其他实施例中,命令序列中的命令数量可为既定的其他数量或者动态由控制器160或者主机120决定。举例而言,控制器160可在闲置的时候判断所累积的读取命令的数量,并且将所累积的读取命令构成命令序列。

详细而言,控制器160自主机120接收四个读取命令以构成一命令序列后,控制器160在工作期间WP_0中判读每一读取命令所需的映射表是否已被上载至随机存取存储器166中,并且选择读取命令中所需的映射表已上载至随机存取存储器166之一者作为一第一读取命令。换言之,控制器160选择第一读取命令所执行的一第一读取任务为所有读取任务中第一个被执行的任务。

在选择完第一读取命令后,控制器160拉起第一任务准备信号TA_Ready并且在第一读取任务执行前(工作期间WP_1),在所剩余的读取命令中选择一第二读取命令,以安排第二读取命令所执行的一第二读取任务在第一读取任务下一个被执行。值得注意的是,在本实施例中,控制器160在第一读取任务执行前(工作期间WP_1),同时自快闪存储器180读取第一读取命令所指示的一第一数据DA1以及用以执行第二读取任务的一第二读取命令所需的映射表TB2。在本实施例中,控制器160是自读取命令中选择所需的映射表尚未被上载至随机存取存储器166并且所需的映射表与第一数据被不同的芯片选择线所控制之一者作为第二读取命令。因此,第二读取命令所需的映射表TB2可与第一数据DA1同时被读取,以缩短工作时间。

在自快闪存储器180读取完第一数据DA1以及映射表TB2后,控制器判断是否自主机120接收到第一任务执行信号TA1_Go。在实际上,同时读取两笔数据的时间约为70~80微秒(μs),恰好与数据储存装置140拉起第一任务预备信号TA1_Ready开始到主机120回复第一任务执行信号TA1_Go的时间多0~10微秒(μs),故在自快闪存储器180读取完第一数据DA1以及映射表TB2后,控制器160无需等待便会接收到第一任务执行信号TA1_Go。接着,控制器160响应于所接收的第一任务执行信号TA1_Go,拉起第二任务准备信号TA2_Ready,并且在工作期间WP_2中传送第一数据DA1以执行第一读取任务、决定第三读取命令、以及同时自快闪存储器180读取第二读取命令所指定的第二数据DA2以及第三读取命令所需要的映射表TB3。

在自快闪存储器180读取完第二数据DA2以及映射表TB3后,控制器判断是否自主机120接收到第二任务执行信号TA2_Go。在实际上,同时读取两笔数据的时间约为70~80微秒(μs),恰好与数据储存装置140拉起第二任务预备信号TA2_Ready开始到主机120回复第二任务执行信号TA2_Go的时间多0~10微秒(μs),故在自快闪存储器180读取完第二数据DA2以及映射表TB3后,控制器160无需等待便会接收到第二任务执行信号TA2_Go。接着,控制器160响应于所接收的第二任务执行信号TA2_Go,拉起第三任务准备信号TA3_Ready,并且在工作期间WP_3中传送第二数据DA2以执行第二读取任务、决定第四读取命令、以及同时自快闪存储器180读取第三读取命令所指定的第三数据DA3以及第四读取命令所需要的映射表TB4。

在自快闪存储器180读取完第三数据DA3以及映射表TB4后,控制器判断是否自主机120接收到第三任务执行信号TA3_Go。同理,在自快闪存储器180读取完第三数据DA3以及映射表TB4后,控制器160无需等待便会接收到第三任务执行信号TA3_Go。接着,控制器160响应于所接收的第三任务执行信号TA3_Go,拉起第四任务准备信号TA4_Ready,并且在工作期间WP_4中传送第三数据DA3以执行第三读取任务、以及自快闪存储器180读取第四读取命令所指定的第四数据DA4。值得注意的是,由于命令序列只有四个读取命令,故第四读取命令是最后一个命令。因此,在工作期间WP_4中控制器160不需要决定下一个读取任务并且也不需要读取下一个读取命令的映射表。

最后,在自快闪存储器180读取完第四数据DA4后,控制器判断是否自主机120接收到第四任务执行信号TA4_Go。仅读取一笔数据的时间与同时读取两笔数据的时间相当,故在自快闪存储器180读取完第四数据DA4后,控制器160无需等待便会接收到第四任务执行信号TA4_Go。接着,控制器160响应于所接收的第四任务执行信号TA4_Go,将第四数据DA4传送给主机120以执行最后的第四读取任务。

在本实施例选择下一个读取命令的过程中,当所有剩余的读取命令所需但尚未被上载至随机存取存储器166的映射表皆被用以控制目前数据的芯片选择线所控制时,控制器160自读取命令中选择所需的映射表尚未被上载至随机存取存储器166之任一者作为下一个读取命令,并且在目前工作期间中仅自快闪存储器180读取目前数据。接着,在下一个工作期间,再自快闪存储器180读取下一个读取命令所需的映射表。如图5所示,在决定第二读取命令的过程中,当所有剩余的读取命令所需但尚未被上载至随机存取存储器166的映射表皆被用以控制第一数据DA1的芯片选择线所控制时,控制器160自读取命令中选择所需的映射表尚未被上载至随机存取存储器166之任一者作为第二读取命令,并且在工作期间WP_1中仅自快闪存储器180读取第一数据DA1。接着,在自主机120接收到执行第一读取任务的一第一执行信号后并且自主机120接收到执行第二读取任务的一第二执行信号前(工作期间WP_2中),先自快闪存储器180读取第二读取命令所需的映射表TB2后,再同时读取第二读取命令所指示的第二数据DA2以及第三读取命令的映射表TB3。同理,所剩余的读取命令的映射表也被控制第二数据D2的相同的芯片选择线所控制时,映射表TB3也会被安排至工作期间WP_3中读取,依此类推。

在本实施例选择下一个读取命令的过程中,当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器166时,控制器160自读取命令中选择任一者作为下一个读取命令,控制器160在目前数据的读取任务执行前,选择仅自快闪存储器180读取目前数据。如第6图所示,当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器166时,控制器160自读取命令中选择任一者作为第二读取命令,控制器160在第一读取任务执行前(工作期间WP_1),选择仅自快闪存储器180读取第一数据DA1。值得注意的是,由于映射表尚未上载至随机存取存储器166的读取命令具有较高的优先权。因此,当第二读取命令所需的映射是已上载至随机存取存储器166,则表示其余所有读取命令的所需的映射也全部皆已上载至随机存取存储器166,如图6所示。由此可知,不需要读取映射表的工作期间会被安排在最后。

在另一实施例中,在映射表已上载至随机存取存储器166的读取命令中,控制器160会优先选择所指示的数据与目前的数据被不同的芯片选择线所控制的读取命令作为下一个读取命令,并且将下一个读取命令所指定的数据提前至目前的工作期间进行读取。换言之,当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器166时,控制器160自读取命令中选择所指定的数据与目前的数据被不同的芯片选择线所控制之一者作为下一个读取命令,并且在目前读取任务执行前(目前工作期间),同时自快闪存储器180读取目前数据以及下一个数据。举例而言,如图7所示,在判断第四读取命令时,所有剩余的读取命令所需的映射表皆已上载至随机存取存储器166。因此,控制器160自读取命令中选择所指定的数据与第三数据DA3被不同的芯片选择线所控制之一者作为第四读取命令,并且在第三读取任务执行前(工作期间WP_3),同时自快闪存储器180读取第三数据DA3以及第四数据DA4,依此类推。值得注意的是,如图7所示,在本实施例中,最后一个读取命令的读取数据若可提前至上一个工作期间读取时,控制器160则会需要等待最后一个任务执行命令。换言之,在本实施例中,控制器160在最后会有一个闲置期间IDP_1。然而,此闲置期间IDP_1与最后一个工作期间WP4所相加的时间会小读取第四数据DA4的工作期间WP4。

在本实施例中,当所有剩余的读取命令所需的映射表皆已上载至随机存取存储器166并且所有剩余的读取命令所指定的数据皆被用以控制目前数据的芯片选择线所控制时,控制器160自所剩余的读取命令中选择任一者作为下一个读取任务,在目前数据的读取任务执行前,仅自快闪存储器180读取目前数据。另外,当所有剩余的读取命令所需的映射表皆已被上载至随机存取存储器166并且相应于目前的读取命令所指示的数据已被读取时,控制器160自读取命令中选择任一者作为下一个读取命令,并且目前的读取命令所相应的目前的读取任务执行前,选择仅自快闪存储器180读取下一个读取命令所指示的数据。举例而言,如图8所示,在本实施例中所有读取命令的映射表皆已被上载至随机存取存储器166。第二数据DA2由于与第一数据DA1是被不同的芯片选择线所控制的,故第二数据DA2已在工作期间WP_1中读取完毕了。因此,在工作期间WP_2之中,控制器160选择任一读取命令作为第三读取命令,且仅自快闪存储器180读取第三读取命令所指定的第三数据DA3,依此类推。由于第三数据DA3已在工作期间WP_2中读取完毕了。因此,在工作期间WP_3之中,控制器160选择任一读取命令作为第四读取命令,且仅自快闪存储器180读取第四读取命令所指定的第三数据DA4,依此类推。

图9是本发明的一种实施例的数据读取方法的流程图。数据读取方法适用于图1所示的数据储存装置140。在本实施例中,控制器160会优先选择所需要的映射表未上载至随机存取存储器166的读取命令作为下一个读取命令(读取任务),除了第一个执行的读取任务外。在所需要的映射表未上载至随机存取存储器166的读取命令中,控制器160会优先选择所需要的映射表与目前要读取的数据被不同芯片选择线所控制的读取命令作为下一个读取命令(读取任务)。当所有所需要的映射表未上载至随机存取存储器166的读取命令都处理完之后,处理器160才会选择映射表已上载至随机存取存储器166的读取命令作为一个读取命令(读取任务)。另外,控制器160还用以根据读取命令的数量动态调整随机存取存储器166中用以预取读取命令的数据的空间。详细而言,当读取命令的总数为N,控制器160更用以调整随机存取存储器166中用以预取读取命令的数据的空间使得读取命令所需的映射表具有1/N的机会已上载至随机存取存储器166中。因此,控制器160可在命列序列中,具有至少一个所需的映射表已上载至随机存取存储器166中的读取命令。流程开始于步骤S900。

在步骤S900中,控制器160是自主机120接收多条读取命令以构成命令序列,其中每一读取命令所指定的数据需要藉由多个映射表中之一者来定位,并且每一读取命令用以执行将所指定的数据传送至主机120的一读取任务。

接着,在步骤S902中,控制器160分别判断读取命令所需要的映射表是否已上载至一随机存取存储器166。详细而言,控制器160可逐一判断读取命令所需的映射表是否已上载至随机存取存储器166,并且分别标记各读取命令的状态,但本发明不限于此。在其他实施例中,控制器160亦可将具有已上载的映射表的读取命令与映射表未上载的读取命令分开储存已达到分类效果。

接着,在步骤S904中,控制器160选择读取命令中所需的映射表已上载至随机存取存储器166之一者作为一第一读取命令并在选取完第一读取命令后拉起任务准备信号,其中第一读取命令所执行的一第一读取任务是读取任务中第一个被执行的。值得注意的是,第一读取命令即为以下流程中的目前读取命令,其所相应的第一读取任务则为以下流程中的目前读取任务,直到控制器设定其他读取命令作为目前读取命令。另外,任务准备信号系用以告知主机120目前所要进行的读取任务是何者。

接着,在步骤S906中,控制器160判断是否有尚未执行的读取任务所需的映射表尚未被上载至随机存取存储器166。当尚未执行的读取任务中之任一者所需的映射表尚未被上载至随机存取存储器166时,流程进行至步骤S908。当尚未执行的读取任务所需的映射表皆已被上载至随机存取存储器166时,流程进行至步骤S916。

在步骤S908中,控制器160判断剩余的读取命令所需但尚未被上载至随机存取存储器166的映射表中之任一者是否与目前读取命令所指示的目前数据被不同的芯片选择线所控制。当剩余的读取命令所需但尚未被上载至随机存取存储器166的映射表中之任一者与目前数据被不同的芯片选择线所控制时,流程进行至步骤S910,否则,流程进行至步骤S914。

在步骤S910中,控制器160自读取命令中选择所需的映射表尚未被上载至随机存取存储器166并且所需的映射表与目前数据被不同的芯片选择线所控制之一者作为下一个读取命令。

接着,在步骤S912中,控制器160同时自快闪存储器180读取目前读取命令所指示的目前数据以及用以执行下一个读取任务的下一个读取命令所需的映射表,以预取目前读取命令所指定的目前数据并将下一个读取命令所需的映射表上载至随机存取存储器166中。

在步骤S914中,控制器160自读取命令中选择所需的映射表尚未被上载至随机存取存储器166之任一者作为下一个读取命令。

在步骤S916中,控制器160自读取命令中选择任一者作为下一个读取命令。

在步骤S918中,控制器160仅自快闪存储器180读取目前数据,以预取目前读取命令所指定的目前数据。

接着,在步骤S936中,控制器160在自主机120接收到执行目前读取任务的任务执行信号后,响应于任务执行信号将目前信号传送至主机120。

接着,在步骤S938中,控制器160判断所有读取任务是否皆执行完毕。当所有读取任务中的任意者未执行完毕时,流程进行至步骤S940,否则,流程结束于步骤S938。

在步骤S940中,控制器160将下一个读取命设定为目前读取命令,并且拉起任务准备信号。换言之,控制器160将下一个读取命令所执行的读取任务设定为目前读取任务。

接着,在步骤S942中,控制器160判断目前读取命令所需的映射表是否已上载至随机存取存储器166中。当目前读取命令所需的映射表已上载至随机存取存储器166时,流程回到步骤S906,否则流程进行至步骤S944。

在步骤S944中,控制器160自快闪存储器180读取目前读取命令所需的映射表,以将目前读取命令所需的映射表上载至随机存取存储器166中。

图10是本发明的一种实施例的数据读取方法的流程图。数据读取方法适用于图1所示的数据储存装置140并且相似于图9所示的数据读取方法。在本实施例中,在映射表已上载至随机存取存储器166的读取命令中,控制器160会优先选择所指示的数据与目前的数据被不同的芯片选择线所控制的读取命令作为下一个读取命令,并且将下一个读取命令所指定的数据提前至目前的工作期间进行读取。步骤S1000~S1004、S1008~S1012以及S1036~S1044相似于图9的步骤S900~S904、S908~S912以及S936~S944,可参考图9的说明,在此不再赘述。

在步骤S1006中,控制器160判断是否有尚未执行的读取任务所需的映射表尚未被上载至随机存取存储器166。当尚未执行的读取任务中之任一者所需的映射表尚未被上载至随机存取存储器166时,流程进行至步骤S1008。当尚未执行的读取任务所需的映射表皆已被上载至随机存取存储器166时,流程进行至步骤S1020。

在步骤S1020中,控制器160判断目前读取命令所指定的目前数据是否已被预先自快闪存储器160中被读取。当目前读取命令所指定的目前数据已被预先自快闪存储器160中被读取,流程进行至步骤S1032,否则流程进行至步骤S1022。

在步骤S1022中,控制器160判断所剩余的读取命令所指定的数据中之任一者是否与目前数据被不同的芯片选择线所控制。当所剩余的读取命令所指定的数据中之任一者与目前数据被不同的芯片选择线所控制时,流程进行至步骤S1024,否则流程进行至步骤S1028。

在步骤S1024中,控制器160自剩余的读取命令中选择所指定的数据与目前数据被不同的芯片选择线所控制之一者作为下一个读取命令。

接着,在步骤S1026中,控制器160同时自快闪存储器180读取目前数据以及下一个读取命令所指示的下一个数据。

在步骤S1028中,控制器160自剩余的读取命令中选择任一者作为下一个读取命令。

接着,在步骤S1030中,控制器160仅自快闪存储器180读取目前数据。

在步骤S1032中,控制器160自剩余的读取命令中选择任一者作为下一个读取命令。

接着,在步骤S1034中,控制器160仅自快闪存储器180读取下一个读取命令所指示的数据。

本发明所提供的数据储存装置以及数据读取方法可依照特定规则选择读取命令所执行的顺序,以降低控制器闲置的时间。

本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。

以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1