CN102053914A - 记忆装置以及存储器的数据存取方法 - Google Patents
记忆装置以及存储器的数据存取方法 Download PDFInfo
- Publication number
- CN102053914A CN102053914A CN 200910208877 CN200910208877A CN102053914A CN 102053914 A CN102053914 A CN 102053914A CN 200910208877 CN200910208877 CN 200910208877 CN 200910208877 A CN200910208877 A CN 200910208877A CN 102053914 A CN102053914 A CN 102053914A
- Authority
- CN
- China
- Prior art keywords
- write
- data
- ranges
- logical addresses
- storer
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种存储器的数据存取方法,其包括:首先,储存自一主机所接收的多个命令至一命令队列;接着,计算该等命令所存取的逻辑地址范围;接着,自该等命令中选取多个写入命令,其中该等写入命令所存取的逻辑地址范围相重叠;若该等写入命令间未穿插一至数个读取命令,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的多个写入数据合并为一合并写入数据;最后,向该存储器发送一合并写入命令及该合并写入数据,以使该存储器执行该等写入命令。本发明还涉及一种记忆装置。本发明对存取的逻辑地址范围相重叠的多个写入命令进行合并处理,并对存取的逻辑地址范围位于存储器的同一页的多个写入命令进行合并处理,以至提升***效能。
Description
技术领域
本发明涉及存储器的数据存取相关技术领域,更具体地说,涉及一种记忆装置以及存储器的数据存取方法。
背景技术
记忆装置为主机储存数据。常见的记忆装置,例如记忆卡(memory card),包括一控制器及至少一存储器。控制器作为主机与存储器间数据存取的媒介。当主机欲存取存储器时,主机向控制器发送存取命令。控制器收到主机发送的存取命令后,将存取命令经过处理后再转发送至存储器,以使存储器执行存取命令相对应的存取动作。
一般而言,控制器仅仅会将自主机所接收的存取命令进行格式上的转换,并将存取命令所欲存取的逻辑地址转换为实体地址,便向存储器发送存取命令及所存取的实体地址。当主机向控制器连续发送多个写入命令以存取多个逻辑地址范围,而该等逻辑地址范围相重叠时,控制器仍旧会依次向存储器转发该等写入命令,而不会对写入命令进行合并的处理。因此,存储器的某一逻辑地址范围会被该等写入命令重复写入,造成***资源不必要的耗费,并导致完成写入命令所需的时间延迟。若存储器为闪存时,由于闪存在重新写入数据前必须先清除其中所储存的数据,因此数据重复写入会造成控制器必须对存储器进行清除及重新写入的额外动作,而降低记忆装置的效能。因此,需要一种存储器的数据存取方法,对存取的逻辑地址范围相重叠的多个写入命令进行合并处理,以提升***效能。
此外,当存储器为闪存时,存储器的每一页(page)只能被写入一次。若该页尚未被写满数据,当后续欲再度对该页补写数据时,必须先对包含该页的整个区块(block)进行删除,才能再度对该页进行数据写入。然而,存储器的一页的数据容量较大(约8K Bytes),当主机欲反复储存少量数据(例如每笔数据大小仅数Bytes)入存储器时,控制器必须反复存取存储器的同一页,而造成控制器的额外工作负担。例如,当主机欲储存档案配置表(file allocationtable)数据时,由于档案配置表以多笔数据量极小的档案配置数据进行储存,因此主机会向控制器发送存取存储器的同一页的多个写入命令,造成控制器处理写入命令时必须对存储器进行清除及重新写入的额外工作负担,并导致***效能的下降。因此,需要一种存储器的数据存取方法,对存取的逻辑地址范围位于存储器的同一页的多个写入命令进行合并处理,以提升***效能。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种记忆装置以及存储器的数据存取方法。
本发明解决其技术问题所采用的技术方案之一是:构造一种存储器的数据存取方法,其包括下列步骤:首先,储存自一主机所接收的多个命令至一命令队列(command queue);接着,计算该等命令所存取的逻辑地址范围;接着,自该等命令中选取多个写入命令,其中该等写入命令所存取的逻辑地址范围相重叠;若该等写入命令间未穿插一至数个读取命令,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的多个写入数据合并为一合并写入数据;最后,向该存储器发送一合并写入命令及该合并写入数据,以使该存储器执行该等写入命令。
进一步地,上述本发明所述的存储器的数据存取方法,其中该方法更包括下列步骤:
若该等写入命令间穿插一至数个读取命令,检查是否该等读取命令的逻辑地址范围与该等写入命令的逻辑地址范围的重叠部分相重叠;
若该等读取命令的逻辑地址范围未与该等写入命令的逻辑地址范围的重叠部分相重叠,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的该等写入数据合并为该合并写入数据;以及
向该存储器发送该合并写入命令及该合并写入数据,以使该存储器执行该等写入命令。
进一步地,上述本发明所述的存储器的数据存取方法,其中该等命令所存取的逻辑地址范围的计算包括:
取得该等命令所存取的多个起始逻辑地址;
取得该等命令所存取的多个数据的数据长度;以及
依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的该等逻辑地址范围。
进一步地,上述本发明所述的存储器的数据存取方法,其中将该等写入数据合并为该合并写入数据的步骤包括:
辨识出该等写入命令所存取的逻辑地址范围的重叠部分;
自该等写入数据中去除对应于该等重叠部分的多个重叠数据以得到多个未重叠数据,其中该等重叠数据具有较先写入位序;以及
合并该等未重叠数据以得到该合并写入数据。
进一步地,上述本发明所述的存储器的数据存取方法,其中该等命令包括一第一写入命令及一第二写入命令,若该第一写入命令的起始逻辑地址位于该第二写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,或该第二写入命令的起始逻辑地址位于该第一写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,则该第一写入命令与该第二写入命令所存取的逻辑地址范围相重叠。
进一步地,上述本发明所述的存储器的数据存取方法,其中该方法更包括:
于向该存储器发送该合并写入命令及该合并写入数据后,自该命令队列中删除该等写入命令。
本发明解决其技术问题所采用的技术方案之二是:构造一种记忆装置,该记忆装置耦接至一主机,包括至少一存储器以及一控制器。该至少一存储器供储存数据。该控制器储存自该主机所接收的多个命令至一命令队列(command queue),计算该等命令所存取的逻辑地址范围,自该等命令中选取具有相重叠的逻辑地址范围的多个写入命令,以及当该等写入命令间未穿插一至数个读取命令时,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的多个写入数据合并为一合并写入数据,并向该存储器发送一合并写入命令及该合并写入数据以使该存储器执行该等写入命令。
进一步地,上述本发明所述的记忆装置,其中当该等写入命令间穿插一至数个读取命令时,该控制器检查是否该等读取命令的逻辑地址范围与该等写入命令的逻辑地址范围的重叠部分相重叠,而当该等读取命令的逻辑地址范围未与该等写入命令的逻辑地址范围的重叠部分相重叠时,该控制器依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的该等写入数据合并为该合并写入数据,并向该存储器发送该合并写入命令及该合并写入数据以使该存储器执行该等写入命令。
进一步地,上述本发明所述的记忆装置,其中该控制器取得该等命令所存取的多个起始逻辑地址,取得该等命令所存取的多个数据的数据长度,并依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的该等逻辑地址范围。
进一步地,上述本发明所述的记忆装置,其中该控制器辨识出该等写入命令所存取的逻辑地址范围的重叠部分,自该等写入数据中去除对应于该等重叠部分的多个重叠数据以得到多个未重叠数据,以及合并该等未重叠数据以得到该合并写入数据,其中该等重叠数据具有较先写入位序。
进一步地,上述本发明所述的记忆装置,其中该等命令包括一第一写入命令及一第二写入命令,若该第一写入命令的起始逻辑地址位于该第二写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,或该第二写入命令的起始逻辑地址位于该第一写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,则该控制器决定该第一写入命令与该第二写入命令所存取的逻辑地址范围相重叠。
进一步地,上述本发明所述的记忆装置,其中于向该存储器发送该合并写入命令及该合并写入数据后,该控制器自该命令队列中删除该等写入命令。
本发明解决其技术问题所采用的技术方案之三是:构造一种存储器的数据存取方法,其包括下列步骤:首先,储存自一主机所接收的多个命令至一命令队列(command queue);接着,计算该等命令所存取的逻辑地址范围;接着,自该等命令中选取多个写入命令,其中该等写入命令所存取的逻辑地址范围均位于该存储器的一页(page);接着,若该等写入命令间未穿插一至数个读取命令,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的多个写入数据合并为一合并写入数据;最后,向该存储器发送一合并写入命令及该合并写入数据,以使该存储器执行该等写入命令。
进一步地,上述本发明所述的存储器的数据存取方法,其中该方法更包括下列步骤:
若该等写入命令间穿插一至数个读取命令时,检查是否该等读取命令的逻辑地址范围与该存储器的该页的逻辑地址范围相重叠;
若该等读取命令的逻辑地址范围未与该存储器的该页的逻辑地址范围相重叠,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的该等写入数据合并为该合并写入数据;以及
向该存储器发送该合并写入命令及该合并写入数据,以使该存储器执行该等写入命令。
进一步地,上述本发明所述的存储器的数据存取方法,其中该等命令所存取的逻辑地址范围的计算包括:
取得该等命令所存取的多个起始逻辑地址;
取得该等命令所存取的多个数据的数据长度;以及
依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的该等逻辑地址范围。
进一步地,上述本发明所述的存储器的数据存取方法,其中将该等写入数据合并为该合并写入数据的步骤包括:
依据该等写入命令所存取的逻辑地址范围将该等写入数据储存于一缓存器中;以及
输出该缓存器中所储存的数据以得到该合并写入数据;
其中该缓存器的大小为该页的数据容量。
进一步地,上述本发明所述的存储器的数据存取方法,其中该等命令包括一第一写入命令,若该第一写入命令的逻辑地址范围的起始逻辑地址后于该页的逻辑地址范围的起始逻辑地址,且该第一写入命令的逻辑地址范围的结束逻辑地址先于该页的逻辑地址范围的结束逻辑地址,则该第一写入命令所存取的逻辑地址范围位于该存储器的该页。
进一步地,上述本发明所述的存储器的数据存取方法,其中该方法更包括:
于向该存储器发送该合并写入命令及该合并写入数据后,自该命令队列中删除该等写入命令。
本发明解决其技术问题所采用的技术方案之四是:构造一种记忆装置,该记忆装置耦接至一主机,包括至少一存储器以及一控制器。该至少一存储器供储存数据。该控制器储存自该主机所接收的多个命令至一命令队列(command queue),计算该等命令所存取的逻辑地址范围,自该等命令中选取所存取的逻辑地址范围均位于该存储器的一页(page)的多个写入命令,以及当该等写入命令间未穿插一至数个读取命令时,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的多个写入数据合并为一合并写入数据,并向该存储器发送一合并写入命令及该合并写入数据以使该存储器执行该等写入命令。
进一步地,上述本发明所述的记忆装置,其中当该等写入命令间穿插一至数个读取命令时,该控制器检查该等读取命令的逻辑地址范围是否与该存储器的该页的逻辑地址范围相重叠,以及当该等读取命令的逻辑地址范围未与该存储器的该页的逻辑地址范围相重叠时,该控制器依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的该等写入数据合并为该合并写入数据,并向该存储器发送该合并写入命令及该合并写入数据以使该存储器执行该等写入命令。
进一步地,上述本发明所述的记忆装置,其中该控制器取得该等命令所存取的多个起始逻辑地址,取得该等命令所存取的多个数据的数据长度,以及依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的该等逻辑地址范围。
进一步地,上述本发明所述的记忆装置,其中该控制器依据该等写入命令所存取的逻辑地址范围将该等写入数据储存于一缓存器中,以及输出该缓存器中所储存的数据以得到该合并写入数据,其中该缓存器的大小为该页的数据容量。
进一步地,上述本发明所述的记忆装置,其中该等命令包括一第一写入命令,若该第一写入命令的逻辑地址范围的起始逻辑地址后于该页的逻辑地址范围的起始逻辑地址,且该第一写入命令的逻辑地址范围的结束逻辑地址先于该页的逻辑地址范围的结束逻辑地址,则该控制器决定该第一写入命令所存取的逻辑地址范围位于该存储器的该页。
进一步地,上述本发明所述的记忆装置,其中当该控制器向该存储器发送该合并写入命令及该合并写入数据后,该控制器自该命令队列中删除该等写入命令。
实施本发明的记忆装置以及存储器的数据存取方法,具有以下有益效果:对存取的逻辑地址范围相重叠的多个写入命令进行合并处理,并对存取的逻辑地址范围位于存储器的同一页的多个写入命令进行合并处理,节省了***资源,解决了写入命令时的时间延迟问题,以至提升***效能。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的记忆装置的区块图;
图2是本发明的对存储器进行数据存取的方法的流程图;
图3是本发明的两写入命令所存取的逻辑地址范围的示意图;
图4是本发明的三写入命令所存取的逻辑地址范围的示意图;
图5是本发明的对存储器进行数据存取的方法的另一实施例的流程图;
图6是本发明的多个写入命令所存取的逻辑地址范围的示意图。
【主要组件符号说明】
100~数据储存***;
102~主机;
104~记忆装置;
112~控制器;
114~存储器;
122~命令队列;
124~缓存器。
具体实施方式
图1是本发明的记忆装置104的区块图。记忆装置104耦接至一主机102,为主机102进行数据储存。主机102支持援本地指令排序(native commandqueuing,NCQ)的功能。于一实施例中,记忆装置104包括一控制器112以及至少一存储器114。控制器112包含一命令队列122以及一缓存器124。当控制器112自主机102接受多个命令后,控制器112会将该等命令储存至命令队列122中。接着,若命令队列122中有多个写入命令,控制器112会检查命令队列122中的多个写入命令所存取的逻辑地址范围是否有相互重叠的情形。若命令队列122中的多个写入命令所存取的逻辑地址范围相互重叠,则控制器112会将该等写入命令相对应的多笔写入数据合并储存于缓存器124中。接着,控制器112仅需向存储器114发送单一写入命令及合并后的数据,便可达到执行多个写入命令的效果,从而减少写入命令的执行所需的时间,以提高控制器112的效能。
同样地,若命令队列122中有多个写入命令,控制器112亦会检查命令队列122中的多个写入命令所存取的逻辑地址范围是否有位于存储器114的同一页(page)的情形。若命令队列122中的多个写入命令所存取的逻辑地址范围位于存储器114的同一页,则控制器112会将该等写入命令相对应的多笔写入数据合并储存于缓存器124中。接着,控制器112仅需向存储器114发送单一写入命令及合并后的数据,便可达到执行多个写入命令的效果,从而减少控制器112需反复清除该页对应的区块并重新对该页写入数据的工作负担,以提高控制器112的效能。
图2是本发明的对存储器114进行数据存取的方法200的流程图。首先,控制器112自主机102接收多个命令并储存至命令队列122(步骤202)。接着,控制器112计算该等命令欲存取的逻辑地址范围(步骤204)。于一实施例中,控制器112首先取得该等命令所存取的多个起始逻辑地址,接着取得该等命令所存取的多个数据的数据长度,然后依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的逻辑地址范围。例如,控制器112可藉起始逻辑地址加上数据长度而得到一结束逻辑地址,而逻辑地址范围可被定义为自起始逻辑地址至结束逻辑地址的区间。
当命令队列中的所有命令的逻辑地址范围均经计算得到后,控制器112便检查命令队列122中是否储存具有相重叠的逻辑地址范围的多个写入命令(步骤206)。举例来说,假设命令队列122中储存一第一写入命令及一第二写入命令。若第一写入命令的起始逻辑地址位于第二写入命令的起始逻辑地址与结束逻辑地址之间,或第二写入命令的起始逻辑地址位于第一写入命令的起始逻辑地址与结束逻辑地址之间,则控制器112判定第一写入命令该第二写入命令所存取的逻辑地址范围相重叠。
接着,控制器112检查具有相互重叠的逻辑地址范围的该等写入命令之间是否有穿插一至数个读取命令(步骤208)。若该等写入命令之间有穿插一读取命令,则控制器112继续检查是否该读取命令的逻辑地址范围与该等写入命令的逻辑地址范围的重叠部分相重叠(步骤210)。若该读取命令的逻辑地址范围与该等写入命令的逻辑地址范围的重叠部分相重叠,则控制器112不能对写入命令对应的写入数据进行合并,以免影响到穿插其间的读取命令所读取的数据的正确性。
图3是本发明的两写入命令所存取的逻辑地址范围W1及W2的示意图。由图3中可见,第一写入命令存取的逻辑地址范围W1与第二写入命令所存取的逻辑地址范围W2于逻辑地址范围X中相重叠。此外,一读取命令的执行顺序位于第一写入命令的执行顺序之后且位于第二写入命令的执行顺序之前,且该读取命令所存取的逻辑地址范围R1与两写入命令的逻辑地址范围W1与W2的重叠部分X相重叠。因此,控制器112不能将两写入命令的写入数据相合并。若控制器112以第二写入命令的逻辑地址重复部份的数据D2置换第一写入命令的逻辑地址重复部份的数据D1以便一并写入存储器114,则当读取命令对逻辑地址范围X的数据进行读取时,将会读取到错误的数据D2而非正确的数据D1。因此,控制器112不能将两写入命令的写入数据相合并。
接着,若具有相互重叠的逻辑地址范围的写入命令之间并未穿插一至数个读取命令(步骤208),或是穿插于写入命令之间的该读取命令的逻辑地址范围并未包含该等写入命令的逻辑地址范围的重叠部分(步骤210),则控制器112将该等写入命令对应的写入数据于缓存器124中合并为一合并写入数据(步骤212)。于一实施例中,控制器112辨识出该等写入命令所存取的逻辑地址范围的重叠部分,接着自该等写入数据中去除对应于该等重叠部分且具有较先写入位序的多个重叠数据以得到多个未重叠数据,最后合并该等未重叠数据以得到一合并写入数据。
图4是本发明的三写入命令所存取的逻辑地址范围W3、W4、及W5的示意图。由图4中可见,第三写入命令存取的逻辑地址范围W3与第四写入命令所存取的逻辑地址范围W4相重叠,而第四写入命令存取的逻辑地址范围W4与第五写入命令所存取的逻辑地址范围W5相重叠。假设第三写入命令所对应的写入数据包括未重叠数据D31及重叠数据D32,第四写入命令所对应的写入数据包括重叠数据D41、未重叠数据D42、及重叠数据D43,而第五写入命令所对应的写入数据包括重叠数据D51及未重叠数据D52。因此,控制器112应将具有较先写入位序的重叠数据D32、D43去除并分别以具有相同逻辑地址的较新数据D41、D51替代。最后,控制器112将数据D31、D41、D42、D51、D52合并以得到一合并写入数据Y。
接着,控制器112向存储器114发送一合并写入命令及该合并写入数据(步骤214),以便使存储器114写入该合并写入数据,从而达到一并执行该等写入命令的效果。由于多个写入命令合并为单一写入命令以一并执行,且重叠部分的数据已由控制器112于缓存器124中先行更新,因此控制器112不需因数据重复写入而对存储器进行清除及重新写入的动作,从而减少了执行写入命令所需的时间并提升记忆装置104的效能。最后,控制器112自命令队列122中删除该等写入命令(步骤216),以表示该等写入命令已被执行完毕。
图5是本发明的对存储器114进行数据存取的方法500的另一实施例的流程图。首先,控制器112自主机102接收多个命令并储存至命令队列122(步骤502)。接着,控制器112计算该等命令欲存取的逻辑地址范围(步骤504)。于一实施例中,控制器112首先取得该等命令所存取的多个起始逻辑地址,接着取得该等命令所存取的多个数据的数据长度,然后依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的逻辑地址范围。例如,控制器112可藉起始逻辑地址加上数据长度而得到一结束逻辑地址,而逻辑地址范围可被定义为自起始逻辑地址至结束逻辑地址的区间。
当命令队列中的所有命令的逻辑地址范围均经计算得到后,控制器112便检查命令队列122中是否储存逻辑地址范围均位于存储器114的同一页的多个写入命令(步骤506)。举例来说,假设命令队列122中储存一第一写入命令。若第一写入命令所存取的逻辑地址范围的起始逻辑地址后于一特定页的逻辑地址范围的起始逻辑地址,且第一写入命令所存取的逻辑地址范围的结束逻辑地址先于该特定页的逻辑地址范围的结束逻辑地址,则控制器112决定该第一写入命令所存取的逻辑地址范围位于该存储器的该特定页。
接着,控制器112检查逻辑地址范围位于同一页的该等写入命令之间是否有穿插一至数个读取命令(步骤508)。若该等写入命令之间有穿插一读取命令,则控制器112继续检查是否该读取命令的逻辑地址范围与存储器114的该页的逻辑地址范围相重叠(步骤510)。若该读取命令所存取的逻辑地址范围涵盖到该等写入命令的逻辑地址范围所位于的该页,则控制器112不能对写入命令对应的写入数据进行合并,以免影响到穿插其间的读取命令所读取的数据的正确性。
接着,若逻辑地址范围均位于存储器114的同一页的多个写入命令之间并未穿插一至数个读取命令(步骤508),或是穿插于写入命令之间的该读取命令所存取的逻辑地址范围并未包含该页的逻辑地址范围(步骤510),则控制器112将该等写入命令对应的写入数据于缓存器124中合并为一合并写入数据(步骤512)。于一实施例中,控制器112首先依据该等写入命令所存取的逻辑地址范围将该等写入数据储存于一缓存器124中,接着输出缓存器124中所储存的数据以得到该合并写入数据。于一实施例中,该缓存器124的大小刚好为存储器114的一页的数据容量。
图6是本发明的多个写入命令所存取的逻辑地址范围W1、W2、...、及WN的示意图。由图6中可见,各写入命令存取的逻辑地址范围W1~WN均不互相重叠。因此,若采用图2的方法200,控制器112并不会对该等写入命令进行合并处理。然而,由于写入命令所存取的逻辑地址范围W1~WN位于存储器114的同一页,而存储器114以页为单位进行写入,因此控制器112于执行该等写入命令时仍会面临需反复清除该页再重新写入的问题。因此,控制器112于缓存器124中将该等写入命令所对应的写入数据依据其逻辑地址范围相合并,以得到包含所有写入数据的一合并写入数据Z。
接着,控制器112向存储器114发送一合并写入命令及该合并写入数据(步骤514),以便使存储器114写入该合并写入数据,从而达到一并执行该等写入命令的效果。由于多个写入命令合并为单一写入命令以一并执行,且欲写入该页的多个写入数据已由控制器112于缓存器124中先行合并,因此控制器112不需因数据重复写入该页而对存储器进行清除及重新写入的动作,从而减少了执行写入命令所需的时间并提升记忆装置104的效能。最后,控制器112自命令队列122中删除该等写入命令(步骤516),以表示该等写入命令已被执行完毕。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此项技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (12)
1.一种存储器的数据存取方法,其特征在于,包括下列步骤:
储存自一主机所接收的多个命令至一命令队列;
计算该等命令所存取的逻辑地址范围;
自该等命令中选取多个写入命令,其中该等写入命令所存取的逻辑地址范围相重叠;
若该等写入命令间未穿插一至数个读取命令,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的多个写入数据合并为一合并写入数据;以及
向该存储器发送一合并写入命令及该合并写入数据,以使该存储器执行该等写入命令。
2.根据权利要求1所述的存储器的数据存取方法,其特征在于,其中该方法更包括下列步骤:
若该等写入命令间穿插一至数个读取命令,检查是否该等读取命令的逻辑地址范围与该等写入命令的逻辑地址范围的重叠部分相重叠;
若该等读取命令的逻辑地址范围未与该等写入命令的逻辑地址范围的重叠部分相重叠,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的该等写入数据合并为该合并写入数据;以及
向该存储器发送该合并写入命令及该合并写入数据,以使该存储器执行该等写入命令。
3.根据权利要求1所述的存储器的数据存取方法,其特征在于,其中该等命令所存取的逻辑地址范围的计算包括:
取得该等命令所存取的多个起始逻辑地址;
取得该等命令所存取的多个数据的数据长度;以及
依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的该等逻辑地址范围。
4.根据权利要求1所述的存储器的数据存取方法,其特征在于,其中将该等写入数据合并为该合并写入数据的步骤包括:
辨识出该等写入命令所存取的逻辑地址范围的重叠部分;
自该等写入数据中去除对应于该等重叠部分的多个重叠数据以得到多个未重叠数据,其中该等重叠数据具有较先写入位序;以及
合并该等未重叠数据以得到该合并写入数据。
5.根据权利要求1所述的存储器的数据存取方法,其特征在于,其中该等命令包括一第一写入命令及一第二写入命令,若该第一写入命令的起始逻辑地址位于该第二写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,或该第二写入命令的起始逻辑地址位于该第一写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,则该第一写入命令与该第二写入命令所存取的逻辑地址范围相重叠。
6.根据权利要求1所述的存储器的数据存取方法,其特征在于,其中该方法更包括:
于向该存储器发送该合并写入命令及该合并写入数据后,自该命令队列中删除该等写入命令。
7.一种记忆装置,耦接至一主机,其特征在于,包括:
至少一存储器,供储存数据;以及
一控制器,储存自该主机所接收的多个命令至一命令队列,计算该等命令所存取的逻辑地址范围,自该等命令中选取具有相重叠的逻辑地址范围的多个写入命令,以及当该等写入命令间未穿插一至数个读取命令时,依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的多个写入数据合并为一合并写入数据,并向该存储器发送一合并写入命令及该合并写入数据以使该存储器执行该等写入命令。
8.根据权利要求6所述的记忆装置,其特征在于,其中当该等写入命令间穿插一至数个读取命令时,该控制器检查是否该等读取命令的逻辑地址范围与该等写入命令的逻辑地址范围的重叠部分相重叠,而当该等读取命令的逻辑地址范围未与该等写入命令的逻辑地址范围的重叠部分相重叠时,该控制器依据该等写入命令所存取的逻辑地址范围将该等写入命令所对应的该等写入数据合并为该合并写入数据,并向该存储器发送该合并写入命令及该合并写入数据以使该存储器执行该等写入命令。
9.根据权利要求7所述的记忆装置,其特征在于,其中该控制器取得该等命令所存取的多个起始逻辑地址,取得该等命令所存取的多个数据的数据长度,并依据该等起始逻辑地址以及该等数据长度推估该等命令所存取的该等逻辑地址范围。
10.根据权利要求7所述的记忆装置,其特征在于,其中该控制器辨识出该等写入命令所存取的逻辑地址范围的重叠部分,自该等写入数据中去除对应于该等重叠部分的多个重叠数据以得到多个未重叠数据,以及合并该等未重叠数据以得到该合并写入数据,其中该等重叠数据具有较先写入位序。
11.根据权利要求7所述的记忆装置,其特征在于,其中该等命令包括一第一写入命令及一第二写入命令,若该第一写入命令的起始逻辑地址位于该第二写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,或该第二写入命令的起始逻辑地址位于该第一写入命令的逻辑地址范围的起始逻辑地址与结束逻辑地址之间,则该控制器决定该第一写入命令与该第二写入命令所存取的逻辑地址范围相重叠。
12.根据权利要求7所述的记忆装置,其特征在于,其中于向该存储器发送该合并写入命令及该合并写入数据后,该控制器自该命令队列中删除该等写入命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910208877 CN102053914B (zh) | 2009-10-30 | 2009-10-30 | 记忆装置以及存储器的数据存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910208877 CN102053914B (zh) | 2009-10-30 | 2009-10-30 | 记忆装置以及存储器的数据存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102053914A true CN102053914A (zh) | 2011-05-11 |
CN102053914B CN102053914B (zh) | 2013-07-31 |
Family
ID=43958259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910208877 Active CN102053914B (zh) | 2009-10-30 | 2009-10-30 | 记忆装置以及存储器的数据存取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102053914B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
CN102662878A (zh) * | 2012-02-27 | 2012-09-12 | 深圳市硅格半导体有限公司 | 存储设备软件层的识别和驱动方法及装置 |
CN107181636A (zh) * | 2016-03-10 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种负载均衡***中的健康检查方法及装置 |
CN107797760A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 基于缓存优化写命令处理的方法、装置与驱动器 |
CN107797759A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 访问缓存信息的方法、装置与驱动器 |
CN108108130A (zh) * | 2017-12-22 | 2018-06-01 | 深圳忆联信息***有限公司 | 一种提升固态硬盘读写性能的方法及固态硬盘 |
CN108255420A (zh) * | 2017-12-22 | 2018-07-06 | 深圳忆联信息***有限公司 | 一种固态硬盘缓存管理方法及固态硬盘 |
CN108491168A (zh) * | 2018-03-30 | 2018-09-04 | 北京联想核芯科技有限公司 | 一种读、写命令流的处理方法及固态硬盘 |
CN111208937A (zh) * | 2018-11-22 | 2020-05-29 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN113342264A (zh) * | 2020-03-02 | 2021-09-03 | 慧荣科技股份有限公司 | 重复数据删除管理的方法、主装置以及储存伺服器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100583059C (zh) * | 2007-12-28 | 2010-01-20 | 祥硕科技股份有限公司 | 数据存取整合方法及其*** |
-
2009
- 2009-10-30 CN CN 200910208877 patent/CN102053914B/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
CN102662878A (zh) * | 2012-02-27 | 2012-09-12 | 深圳市硅格半导体有限公司 | 存储设备软件层的识别和驱动方法及装置 |
CN102662878B (zh) * | 2012-02-27 | 2015-01-21 | 深圳市硅格半导体有限公司 | 存储设备软件层的识别和驱动方法及装置 |
CN107181636A (zh) * | 2016-03-10 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种负载均衡***中的健康检查方法及装置 |
CN107797760B (zh) * | 2016-09-05 | 2021-06-11 | 北京忆恒创源科技有限公司 | 一种访问缓存信息的方法、装置与固态驱动器 |
CN107797760A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 基于缓存优化写命令处理的方法、装置与驱动器 |
CN107797759A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 访问缓存信息的方法、装置与驱动器 |
CN108108130A (zh) * | 2017-12-22 | 2018-06-01 | 深圳忆联信息***有限公司 | 一种提升固态硬盘读写性能的方法及固态硬盘 |
CN108255420A (zh) * | 2017-12-22 | 2018-07-06 | 深圳忆联信息***有限公司 | 一种固态硬盘缓存管理方法及固态硬盘 |
CN108491168A (zh) * | 2018-03-30 | 2018-09-04 | 北京联想核芯科技有限公司 | 一种读、写命令流的处理方法及固态硬盘 |
CN111208937A (zh) * | 2018-11-22 | 2020-05-29 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN111208937B (zh) * | 2018-11-22 | 2023-04-18 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN113342264A (zh) * | 2020-03-02 | 2021-09-03 | 慧荣科技股份有限公司 | 重复数据删除管理的方法、主装置以及储存伺服器 |
Also Published As
Publication number | Publication date |
---|---|
CN102053914B (zh) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102053914B (zh) | 记忆装置以及存储器的数据存取方法 | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
CN104750571B (zh) | 用以进行错误纠正的方法、存储装置与存储装置的控制器 | |
US8417901B2 (en) | Combining write commands to overlapping addresses or to a specific page | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
CN110008136A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US8898375B2 (en) | Memory controlling method, memory controller and memory storage apparatus | |
TWI446349B (zh) | 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
CN104424103A (zh) | 固态储存装置中高速缓存的管理方法 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
JP6139711B2 (ja) | 情報処理装置 | |
US9063888B2 (en) | Program code loading and accessing method, memory controller, and memory storage apparatus | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
CN101930407B (zh) | 闪速存储器控制电路及其存储***与数据传输方法 | |
WO2015006242A1 (en) | Buffer management techniques | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
US9575883B2 (en) | Control device, storage device, and storage control method | |
CN114003169B (zh) | 一种用于ssd的数据压缩方法 | |
US11748011B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus | |
US20150254011A1 (en) | Memory system, memory controller and control method of non-volatile memory | |
CN102541463B (zh) | 快闪存储装置及其数据存取方法 |
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 |