读取及写入命令排程方法以及使用该方法的装置与流程

文档序号:12176251阅读:150来源:国知局
读取及写入命令排程方法以及使用该方法的装置与流程

本发明有关于一种快闪存储器装置,特别是一种读取及写入命令排程方法以及使用该方法的装置。



背景技术:

快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,而可于地址脚位上提供任何的地址,用以存取NOR快闪装置的主装置(host),并及时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是串行存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入串行的位元组(bytes)的值到NAND快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,藉由使用提取信号(strobe signal)顺序地敲出(clock out)内容,让主单元可逐位元组或字元组(words)存取数据。本发明提出一种读取及写入命令排程方法以及使用该方法的装置,用以提升数据读取及写入的效率。



技术实现要素:

本发明的实施例提出一种读取及写入命令排程方法,由处理单元执行,至少包含下列步骤。从读取队列连续取得超过一个读取命令并执行,直到第一条件满足为止。当第一条件满足后,从写入队列连续取得超过一个写入命令并执行,直到第二条件满足为止。

本发明的实施例提出一种读取及写入命令排程装置,至少包含读取队列、写入队列及处理单元。处理单元耦接于读取队列及写入队列,从读取队列连续取得超过 一个读取命令并执行,直到第一条件满足为止;以及当第一条件满足后,从写入队列连续取得超过一个写入命令并执行,直到第二条件满足为止。

附图说明

图1是依据本发明实施例的快闪存储器的系统架构示意图。

图2是依据本发明实施例的快闪存储器中的储存单元示意图。

图3是依据本发明实施例的存取介面与储存单元的方块图。

图4A至4C是依据本发明实施例的执行于处理单元中的读取及写入排程方法流程图。

图5是依据本发明实施例的连续读取及写入命令执行示意图。

图6是依据本发明实施例的连续读取及写入命令执行示意图。

符号说明

10 系统;

110 处理单元;

120 数据缓存器;

130 对照表缓存器;

140 先进先出队列;

150 存取介面;

160 主装置;

17 0存取介面;

170_0~170_j 存取子介面;

180 储存单元;

180_0_0~180_j_i 储存子单元;

210 存储器单元阵列;

220 行解码单元;

230 列编码单元;

240 地址单元;

250 数据缓存器;

410_0 数据线;

420_0_0~420_0_i 芯片致能控制信号;

S411~S495 方法步骤;

t0 设置写入计时器的时间点;

T1 写入计时器的时间区间。

具体实施方式

以下说明是为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考权利要求范围。

必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。

于权利要求中使用如“第一”、“第二“、”第三“等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。

图1是依据本发明实施例的快闪存储器的系统架构示意图。快闪存储器的系统架构10中包含处理单元110,用以写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。详细来说,处理单元110透过存取介面170写入数据到储存单元180中的指定地址,以及从储存单元180中的指定地址读取数据。系统架构10使用数个电子信号来协调处理单元110与储存单元180间的数据与命令传递,包含数据线(data line)、时脉信号(clock signal)与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(chip enable,CE)、地址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、写入致能(write enable,WE)等控制信号。存取介面170可采用双倍数据率(double data rate,DDR)通讯协定与储存单元180沟通,例如,开放NAND快闪(open NAND flash interface,ONFI)、双倍数据率开关(DDR toggle)或其他介面。处理单元110另可使用存取介面150透过指定通讯协定与主装置160进行沟通,例如,通用串行总线(universal serial bus,USB)、先进技术附着(advanced technology attachment,ATA)、串行先进技术附着(serial advanced technology attachment,SATA)、快速周边元件互联(peripheral component interconnect express,PCI-E)或其他介面。

图2是依据本发明实施例的快闪存储器中的储存单元示意图。储存单元180可包含由MxN个存储器单元(memory cells)组成的阵列(array)210,而每一个存储器单元储存至少一个位元(bit)的资讯。快闪存储器可以是NAND型快闪存储器,或其他种类的快闪存储器。为了正确存取资讯,行解码单元220用以选择存储器单元阵列210中指定的行,而列编码单元230用以选择指定行中一定数量的位元组的数据作为输出。地址单元240提供行资讯给行解码器220,其中定义了选择存储器单元阵列210中的那些行。相似地,列解码器230则根据地址单元240提供的列资讯,选择存储器单元阵列210的指定行中一定数量的列进行读取或写入操作。行可称为为字元线(wordline),列可称为位元线(bitline)。数据缓存器(data buffer)250可储存从存储器单元阵列210读取出的数据,或欲写入存储器单元阵列210中的数据。存储器单元可为单层式单元(single-level cells,SLCs)、多层式单元(multi-level cells,MLCs)或三层式单元(triple-level cells,TLCs)。

储存单元180可包含多个储存子单元,每一个储存子单元实施于一个晶粒(die)上,各自使用关联的存取子介面与处理单元110进行沟通。图3是依据本发明实施例的存取介面与储存单元的方块图。快闪存储器10可包含j+1个存取子介面170_0至170_j,存取子介面又可称为通道(channel),每一个存取子介面连接i+1个储存子单元。换句话说,i+1个储存子单元共享一个存取子介面。例如,当快闪存储器10包含4个通道(j=3)且每一个通道连接4个储存单元(i=3)时,快闪存储器10一共拥有16个储存单元180_0_0至180_j_i。处理单元110可驱动存取子介面170_0至170_j中之一,从指定的储存子单元读取数据。每个储存子单元拥有独立的芯片致能(CE)控制信号。换句话说,当欲对指定的储存子单元进行数据读取时,需要驱动关联的存取子介面致能此储存子单元的芯片致能控制信号。

主装置160可透过存取介面150提供带有逻辑区块地址(LBA,Logical Block Address)的读取命令或写入命令给处理单元110,用以指示写入或读取特定区域的数据。这些读取命令以及写入命令会依到达时间的先后顺序被分别储存于读取队列130以及写入队列140。存取介面170为最佳化数据读取及写入的效率,可排程这些命令,形成连续性的读取或写入,而非按照接收到命令的先后时间顺序。图4A至4C是依据本发明实施例的执行于处理单元中的读取及写入排程方法流程图。在经过一段闲置时间后接收到至少一个读取或写入命令开始整个方法流程。于此流程执行的期间,所有经由存取介面150从主装置160接收到的读取命令及写入命令会 依时间先后顺序被分别储存于读取队列130以及写入队列140。首先,处理单元选择第一个进入队列的命令(步骤S411)。接着,判断第一个命令是否为读取命令(步骤S413)。当第一个命令为读取命令时(步骤S413中”是”的路径),此流程反复执行一个回圈,尝试连续执行数个读取队列130中的读取命令,直到特定条件发生为止(步骤S431至S455)。于此须注意的是,在尚未发生特定条件前,被执行的读取命令的到达时间是允许晚于写入队列中的若干写入命令的到达时间。另一方面,当第一个命令为写入命令时(步骤S413中”否”的路径),此流程反复执行一个回圈,尝试连续执行数个写入队列140中的命令,直到特定条件发生为止(步骤S471至S495)。于此须注意的是,在尚未发生特定条件前,被执行的写入命令的到达时间是允许晚于读取队列中的若干读取命令的到达时间。

于执行读取命令的回圈中,可至少包含了三个是否结束执行读取命令并开始执行写入命令的条件判断。第一个判断用以将连续的读取命令执行限制于一段时间区间内,此时间区间关联于写入命令允许的等待时间。当一个写入命令到达后,并且在超过允许的等待时间后还没被执行,主装置160会认为发生了写入错误,并重新传送写入命令。于进入回圈的一开始,处理单元110会设置一个写入计时器,并设定一段关联于写入命令的允许等待时间的时间区间(步骤S431)。于此须注意的是,当写入计时器已经到达设定的时间区间后,会通知处理单元110关于写入计时器已经逾时的资讯。此通知可以直接发送信号给处理单元110,或设定可被处理单元110读取的暂存器。于每次执行完读取队列130中的读取命令后(步骤S437),判断写入计时器是否逾时(步骤S451)。若是,则跳出读取命令的回圈并尝试开始取得并执行写入队列140中的写入命令(步骤S493、S473及S477)。图5是依据本发明实施例的连续读取及写入命令执行示意图。假设读取队列130储存五笔读取命令,而写入队列140中储存四笔读取命令,括弧中的数字代表逻辑区块地址。处理单元110于时间点t0设置一个写入计时器,并设定时间区间T1。处理单元110在连续执行读取逻辑区块地址100、200及300的命令后(步骤S437),发现写入计时器逾时(步骤S451中“是”的路径)。接着,开始执行写入逻辑区块地址1000及以后的命令(步骤S473)。

第二个判断用以避免发生脏读取(dirty read)的情形。脏读取是指当主装置160欲先写入数据至一个逻辑区块地址再从相同的逻辑区块地址读出,但却因为执行顺序颠倒而造成处理单元110先读出尚未写入的错误数据。或者是,当主装置160 欲先从一个逻辑区块地址读取数据再写入数据到相同的逻辑区块地址,但却因为执行顺序颠倒而读取到已经覆写过的错误数据。为避免脏读取,处理单元110于每次取得读取命令后(步骤S433),先判断于写入队列140中是否存在一笔相同于此读取命令的逻辑区块地址的写入命令,且此写入命令的到达时间早于读取命令的到达时间(步骤S435)。若是,则跳出读取命令的回圈并尝试开始取得并执行写入队列140中的写入命令(步骤S493、S473及S477)。图6是依据本发明实施例的连续读取及写入命令执行示意图。假设读取队列130储存五笔读取命令,而写入队列140中储存四笔读取命令,第一个括弧中的数字代表逻辑区块地址,第二个括弧中的数字代表命令到达的时间先后顺序(数字越小代表到达的时间越早)。处理单元110在连续执行读取逻辑区块地址100及200的命令后(步骤S437),发现写入队列140中存在一笔相同于即将执行读取命令的逻辑区块地址300的写入命令,且此写入命令的到达时间早于读取命令的到达时间(步骤S435中”是”的路径)。接着,开始执行写入逻辑区块地址1000及以后的命令(步骤S473)。

此外,当判断读取队列130没有任何读取命令待执行且写入队列140中有至少一个写入命令待执行时(步骤S453中“是”的路径并接着步骤S455中“是”的路径),则跳出读取命令的回圈并尝试开始取得并执行写入队列140中的写入命令(步骤S493、S473及S477)。于步骤S437中,处理单元110驱动存取介面170用以从储存单元180中读出特定逻辑区块地址的数据并储存于数据缓存器120,接着驱动存取介面150读取数据缓存器120中的数据并回复给主装置160。于此须注意的是,每次成功执行读取命令后(步骤S437),从读取队列130移除此读取命令。

类似地,于执行写入命令的回圈中,可至少包含了三个是否结束执行写入命令并开始执行读取命令的条件判断。于进入回圈的一开始,处理单元110会设置一个读取计时器,并设定一段关联于读取命令的允许等待时间的时间区间(步骤S471)。读取计时器的设计类似于写入计时器,技术细节可参考关于写入计时器的内容,不再赘述以求精简。读取计时器的时间区间可相同于或不同于写入计时器的时间区间。于每次执行完写入队列140中的写入命令后(步骤S477),判断写入计时器是否逾时(步骤S491)。若是,则跳出写入命令的回圈并尝试开始取得并执行读取队列130中的读取命令(步骤S453、S433及S437)。为避免脏读取,处理单元110于每次取得写入命令后(步骤S473),先判断于读取队列130中是否存在一笔相同于此写入命令的逻辑区块地址的读取命令,且此读取命令的到达时间早于写入命令的到达时间 (步骤S475)。若是,则跳出写入命令的回圈并尝试开始取得并执行读取队列130中的读取命令(步骤S453、S433及S437)。此外,当判断写入队列130没有任何读取命令待执行且写入队列140中有至少一个写入命令待执行时(步骤S493中“是”的路径并接着步骤S495中“是”的路径),则跳出写入命令的回圈并尝试开始取得并执行读取队列130中的读取命令(步骤S453、S433及S437)。于步骤S477中,处理单元110驱动存取介面170,用以写入特定逻辑区块地址的数据至储存单元180。于此须注意的是,每次成功执行写入命令后(步骤S477),从写入队列140移除此写入命令。

虽然图1至3中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然图4的流程图采用指定的顺序来执行,但是在不违法发明精神的情况下,熟悉本技术领域者可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,熟悉本技术领域者亦可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明亦不因此而局限。

虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了熟悉本技术领域者显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

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