專利名稱::記憶裝置以及存儲器的數(shù)據(jù)存取方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及存儲器的數(shù)據(jù)存取相關(guān)
技術(shù)領(lǐng)域:
,更具體地說,涉及一種記憶裝置以及存儲器的數(shù)據(jù)存取方法。
背景技術(shù):
:記憶裝置為主機儲存數(shù)據(jù)。常見的記憶裝置,例如記憶卡(memorycard),包括一控制器及至少一存儲器??刂破髯鳛橹鳈C與存儲器間數(shù)據(jù)存取的媒介。當主機欲存取存儲器時,主機向控制器發(fā)送存取命令??刂破魇盏街鳈C發(fā)送的存取命令后,將存取命令經(jīng)過處理后再轉(zhuǎn)發(fā)送至存儲器,以使存儲器執(zhí)行存取命令相對應(yīng)的存取動作。一般而言,控制器僅僅會將自主機所接收的存取命令進行格式上的轉(zhuǎn)換,并將存取命令所欲存取的邏輯地址轉(zhuǎn)換為實體地址,便向存儲器發(fā)送存取命令及所存取的實體地址。當主機向控制器連續(xù)發(fā)送多個寫入命令以存取多個邏輯地址范圍,而該等邏輯地址范圍相重疊時,控制器仍舊會依次向存儲器轉(zhuǎn)發(fā)該等寫入命令,而不會對寫入命令進行合并的處理。因此,存儲器的某一邏輯地址范圍會被該等寫入命令重復(fù)寫入,造成系統(tǒng)資源不必要的耗費,并導(dǎo)致完成寫入命令所需的時間延遲。若存儲器為閃存時,由于閃存在重新寫入數(shù)據(jù)前必須先清除其中所儲存的數(shù)據(jù),因此數(shù)據(jù)重復(fù)寫入會造成控制器必須對存儲器進行清除及重新寫入的額外動作,而降低記憶裝置的效能。因此,需要一種存儲器的數(shù)據(jù)存取方法,對存取的邏輯地址范圍相重疊的多個寫入命令進行合并處理,以提升系統(tǒng)效能。此外,當存儲器為閃存時,存儲器的每一頁(page)只能被寫入一次。若該頁尚未被寫滿數(shù)據(jù),當后續(xù)欲再度對該頁補寫數(shù)據(jù)時,必須先對包含該頁的整個區(qū)塊(block)進行刪除,才能再度對該頁進行數(shù)據(jù)寫入。然而,存儲器的一頁的數(shù)據(jù)容量較大(約8KBytes),當主機欲反復(fù)儲存少量數(shù)據(jù)(例如每筆數(shù)據(jù)大小僅數(shù)Bytes)入存儲器時,控制器必須反復(fù)存取存儲器的同一頁,而造成控制器的額外工作負擔(dān)。例如,當主機欲儲存檔案配置表(fileallocationtable)數(shù)據(jù)時,由于檔案配置表以多筆數(shù)據(jù)量極小的檔案配置數(shù)據(jù)進行儲存,因此主機會向控制器發(fā)送存取存儲器的同一頁的多個寫入命令,造成控制器處理寫入命令時必須對存儲器進行清除及重新寫入的額外工作負擔(dān),并導(dǎo)致系統(tǒng)效能的下降。因此,需要一種存儲器的數(shù)據(jù)存取方法,對存取的邏輯地址范圍位于存儲器的同一頁的多個寫入命令進行合并處理,以提升系統(tǒng)效能。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述缺陷,提供一種記憶裝置以及存儲器的數(shù)據(jù)存取方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案之一是構(gòu)造一種存儲器的數(shù)據(jù)存取方法,其包括下列步驟首先,儲存自一主機所接收的多個命令至一命令隊列(commandqueue);接著,計算該等命令所存取的邏輯地址范圍;接著,自該等命令中選取多個寫入命令,其中該等寫入命令所存取的邏輯地址范圍相重疊;若該等寫入命令間未穿插一至數(shù)個讀取命令,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的多個寫入數(shù)據(jù)合并為一合并寫入數(shù)據(jù);最后,向該存儲器發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù),以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該方法更包括下列步驟若該等寫入命令間穿插一至數(shù)個讀取命令,檢查是否該等讀取命令的邏輯地址范圍與該等寫入命令的邏輯地址范圍的重疊部分相重疊;若該等讀取命令的邏輯地址范圍未與該等寫入命令的邏輯地址范圍的重疊部分相重疊,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù);以及向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù),以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該等命令所存取的邏輯地址范圍的計算包括取得該等命令所存取的多個起始邏輯地址;取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度;以及依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的該等邏輯地址范圍。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中將該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù)的步驟包括辨識出該等寫入命令所存取的邏輯地址范圍的重疊部分;自該等寫入數(shù)據(jù)中去除對應(yīng)于該等重疊部分的多個重疊數(shù)據(jù)以得到多個未重疊數(shù)據(jù),其中該等重疊數(shù)據(jù)具有較先寫入位序;以及合并該等未重疊數(shù)據(jù)以得到該合并寫入數(shù)據(jù)。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該等命令包括一第一寫入命令及一第二寫入命令,若該第一寫入命令的起始邏輯地址位于該第二寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,或該第二寫入命令的起始邏輯地址位于該第一寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,則該第一寫入命令與該第二寫入命令所存取的邏輯地址范圍相重疊。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該方法更包括于向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)后,自該命令隊列中刪除該等寫入命令。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案之二是構(gòu)造一種記憶裝置,該記憶裝置耦接至一主機,包括至少一存儲器以及一控制器。該至少一存儲器供儲存數(shù)據(jù)。該控制器儲存自該主機所接收的多個命令至一命令隊列(commandqueue),計算該等命令所存取的邏輯地址范圍,自該等命令中選取具有相重疊的邏輯地址范圍的多個寫入命令,以及當該等寫入命令間未穿插一至數(shù)個讀取命令時,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的多個寫入數(shù)據(jù)合并為一合并寫入數(shù)據(jù),并向該存儲器發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù)以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的記憶裝置,其中當該等寫入命令間穿插一至數(shù)個讀取命令時,該控制器檢查是否該等讀取命令的邏輯地址范圍與該等寫入命令的邏輯地址范圍的重疊部分相重疊,而當該等讀取命令的邏輯地址范圍未與該等寫入命令的邏輯地址范圍的重疊部分相重疊時,該控制器依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù),并向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的記憶裝置,其中該控制器取得該等命令所存取的多個起始邏輯地址,取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度,并依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的該等邏輯地址范圍。進一步地,上述本發(fā)明所述的記憶裝置,其中該控制器辨識出該等寫入命令所存取的邏輯地址范圍的重疊部分,自該等寫入數(shù)據(jù)中去除對應(yīng)于該等重疊部分的多個重疊數(shù)據(jù)以得到多個未重疊數(shù)據(jù),以及合并該等未重疊數(shù)據(jù)以得到該合并寫入數(shù)據(jù),其中該等重疊數(shù)據(jù)具有較先寫入位序。進一步地,上述本發(fā)明所述的記憶裝置,其中該等命令包括一第一寫入命令及一第二寫入命令,若該第一寫入命令的起始邏輯地址位于該第二寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,或該第二寫入命令的起始邏輯地址位于該第一寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,則該控制器決定該第一寫入命令與該第二寫入命令所存取的邏輯地址范圍相重疊。進一步地,上述本發(fā)明所述的記憶裝置,其中于向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)后,該控制器自該命令隊列中刪除該等寫入命令。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案之三是構(gòu)造一種存儲器的數(shù)據(jù)存取方法,其包括下列步驟首先,儲存自一主機所接收的多個命令至一命令隊列(commandqueue);接著,計算該等命令所存取的邏輯地址范圍;接著,自該等命令中選取多個寫入命令,其中該等寫入命令所存取的邏輯地址范圍均位于該存儲器的一頁(page);接著,若該等寫入命令間未穿插一至數(shù)個讀取命令,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的多個寫入數(shù)據(jù)合并為一合并寫入數(shù)據(jù);最后,向該存儲器發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù),以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該方法更包括下列步驟若該等寫入命令間穿插一至數(shù)個讀取命令時,檢查是否該等讀取命令的邏輯地址范圍與該存儲器的該頁的邏輯地址范圍相重疊;若該等讀取命令的邏輯地址范圍未與該存儲器的該頁的邏輯地址范圍相重疊,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù);以及向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù),以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該等命令所存取的邏輯地址范圍的計算包括取得該等命令所存取的多個起始邏輯地址;取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度;以及依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的該等邏輯地址范圍。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中將該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù)的步驟包括依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入數(shù)據(jù)儲存于一緩存器中;以及輸出該緩存器中所儲存的數(shù)據(jù)以得到該合并寫入數(shù)據(jù);其中該緩存器的大小為該頁的數(shù)據(jù)容量。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該等命令包括一第一寫入命令,若該第一寫入命令的邏輯地址范圍的起始邏輯地址后于該頁的邏輯地址范圍的起始邏輯地址,且該第一寫入命令的邏輯地址范圍的結(jié)束邏輯地址先于該頁的邏輯地址范圍的結(jié)束邏輯地址,則該第一寫入命令所存取的邏輯地址范圍位于該存儲器的該頁。進一步地,上述本發(fā)明所述的存儲器的數(shù)據(jù)存取方法,其中該方法更包括于向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)后,自該命令隊列中刪除該等寫入命令。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案之四是構(gòu)造一種記憶裝置,該記憶裝置耦接至一主機,包括至少一存儲器以及一控制器。該至少一存儲器供儲存數(shù)據(jù)。該控制器儲存自該主機所接收的多個命令至一命令隊列(commandqueue),計算該等命令所存取的邏輯地址范圍,自該等命令中選取所存取的邏輯地址范圍均位于該存儲器的一頁(page)的多個寫入命令,以及當該等寫入命令間未穿插一至數(shù)個讀取命令時,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的多個寫入數(shù)據(jù)合并為一合并寫入數(shù)據(jù),并向該存儲器發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù)以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的記憶裝置,其中當該等寫入命令間穿插一至數(shù)個讀取命令時,該控制器檢查該等讀取命令的邏輯地址范圍是否與該存儲器的該頁的邏輯地址范圍相重疊,以及當該等讀取命令的邏輯地址范圍未與該存儲器的該頁的邏輯地址范圍相重疊時,該控制器依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù),并向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)以使該存儲器執(zhí)行該等寫入命令。進一步地,上述本發(fā)明所述的記憶裝置,其中該控制器取得該等命令所存取的多個起始邏輯地址,取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度,以及依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的該等邏輯地址范圍。進一步地,上述本發(fā)明所述的記憶裝置,其中該控制器依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入數(shù)據(jù)儲存于一緩存器中,以及輸出該緩存器中所儲存的數(shù)據(jù)以得到該合并寫入數(shù)據(jù),其中該緩存器的大小為該頁的數(shù)據(jù)容量。進一步地,上述本發(fā)明所述的記憶裝置,其中該等命令包括一第一寫入命令,若該第一寫入命令的邏輯地址范圍的起始邏輯地址后于該頁的邏輯地址范圍的起始邏輯地址,且該第一寫入命令的邏輯地址范圍的結(jié)束邏輯地址先于該頁的邏輯地址范圍的結(jié)束邏輯地址,則該控制器決定該第一寫入命令所存取的邏輯地址范圍位于該存儲器的該頁。進一步地,上述本發(fā)明所述的記憶裝置,其中當該控制器向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)后,該控制器自該命令隊列中刪除該等寫入命令。實施本發(fā)明的記憶裝置以及存儲器的數(shù)據(jù)存取方法,具有以下有益效果對存取的邏輯地址范圍相重疊的多個寫入命令進行合并處理,并對存取的邏輯地址范圍位于存儲器的同一頁的多個寫入命令進行合并處理,節(jié)省了系統(tǒng)資源,解決了寫入命令時的時間延遲問題,以至提升系統(tǒng)效能。下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中圖1是本發(fā)明的記憶裝置的區(qū)塊圖;圖2是本發(fā)明的對存儲器進行數(shù)據(jù)存取的方法的流程圖;圖3是本發(fā)明的兩寫入命令所存取的邏輯地址范圍的示意圖;圖4是本發(fā)明的三寫入命令所存取的邏輯地址范圍的示意圖;圖5是本發(fā)明的對存儲器進行數(shù)據(jù)存取的方法的另一實施例的流程6是本發(fā)明的多個寫入命令所存取的邏輯地址范圍的示意圖。主要組件符號說明100數(shù)據(jù)儲存系統(tǒng);102主機;104記憶裝置;112控制器;114存儲器;122命令隊列;124緩存器。具體實施例方式圖1是本發(fā)明的記憶裝置104的區(qū)塊圖。記憶裝置104耦接至一主機102,為主機102進行數(shù)據(jù)儲存。主機102支持援本地指令排序(nativecommandqueuing,NCQ)的功能。于一實施例中,記憶裝置104包括一控制器112以及至少一存儲器114??刂破?12包含一命令隊列122以及一緩存器124。當控制器112自主機102接受多個命令后,控制器112會將該等命令儲存至命令隊列122中。接著,若命令隊列122中有多個寫入命令,控制器112會檢查命令隊列122中的多個寫入命令所存取的邏輯地址范圍是否有相互重疊的情形。若命令隊列122中的多個寫入命令所存取的邏輯地址范圍相互重疊,則控制器112會將該等寫入命令相對應(yīng)的多筆寫入數(shù)據(jù)合并儲存于緩存器1中。接著,控制器112僅需向存儲器114發(fā)送單一寫入命令及合并后的數(shù)據(jù),便可達到執(zhí)行多個寫入命令的效果,從而減少寫入命令的執(zhí)行所需的時間,以提高控制器112的效能。同樣地,若命令隊列122中有多個寫入命令,控制器112亦會檢查命令隊列122中的多個寫入命令所存取的邏輯地址范圍是否有位于存儲器114的同一頁(page)的情形。若命令隊列122中的多個寫入命令所存取的邏輯地址范圍位于存儲器114的同一頁,則控制器112會將該等寫入命令相對應(yīng)的多筆寫入數(shù)據(jù)合并儲存于緩存器124中。接著,控制器112僅需向存儲器114發(fā)送單一寫入命令及合并后的數(shù)據(jù),便可達到執(zhí)行多個寫入命令的效果,從而減少控制器112需反復(fù)清除該頁對應(yīng)的區(qū)塊并重新對該頁寫入數(shù)據(jù)的工作負擔(dān),以提高控制器112的效能。圖2是本發(fā)明的對存儲器114進行數(shù)據(jù)存取的方法200的流程圖。首先,控制器112自主機102接收多個命令并儲存至命令隊列122(步驟20。接著,控制器112計算該等命令欲存取的邏輯地址范圍(步驟204)。于一實施例中,控制器112首先取得該等命令所存取的多個起始邏輯地址,接著取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度,然后依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的邏輯地址范圍。例如,控制器112可藉起始邏輯地址加上數(shù)據(jù)長度而得到一結(jié)束邏輯地址,而邏輯地址范圍可被定義為自起始邏輯地址至結(jié)束邏輯地址的區(qū)間。當命令隊列中的所有命令的邏輯地址范圍均經(jīng)計算得到后,控制器112便檢查命令隊列122中是否儲存具有相重疊的邏輯地址范圍的多個寫入命令(步驟206)。舉例來說,假設(shè)命令隊列122中儲存一第一寫入命令及一第二寫入命令。若第一寫入命令的起始邏輯地址位于第二寫入命令的起始邏輯地址與結(jié)束邏輯地址之間,或第二寫入命令的起始邏輯地址位于第一寫入命令的起始邏輯地址與結(jié)束邏輯地址之間,則控制器112判定第一寫入命令該第二寫入命令所存取的邏輯地址范圍相重疊。接著,控制器112檢查具有相互重疊的邏輯地址范圍的該等寫入命令之間是否有穿插一至數(shù)個讀取命令(步驟208)。若該等寫入命令之間有穿插一讀取命令,則控制器112繼續(xù)檢查是否該讀取命令的邏輯地址范圍與該等寫入命令的邏輯地址范圍的重疊部分相重疊(步驟210)。若該讀取命令的邏輯地址范圍與該等寫入命令的邏輯地址范圍的重疊部分相重疊,則控制器112不能對寫入命令對應(yīng)的寫入數(shù)據(jù)進行合并,以免影響到穿插其間的讀取命令所讀取的數(shù)據(jù)的正確性。圖3是本發(fā)明的兩寫入命令所存取的邏輯地址范圍W1及W2的示意圖。由圖3中可見,第一寫入命令存取的邏輯地址范圍W1與第二寫入命令所存取的邏輯地址范圍W2于邏輯地址范圍X中相重疊。此外,一讀取命令的執(zhí)行順序位于第一寫入命令的執(zhí)行順序之后且位于第二寫入命令的執(zhí)行順序之前,且該讀取命令所存取的邏輯地址范圍R1與兩寫入命令的邏輯地址范圍W1與W2的重疊部分X相重疊。因此,控制器112不能將兩寫入命令的寫入數(shù)據(jù)相合并。若控制器112以第二寫入命令的邏輯地址重復(fù)部份的數(shù)據(jù)&置換第一寫入命令的邏輯地址重復(fù)部份的數(shù)據(jù)D1以便一并寫入存儲器114,則當讀取命令對邏輯地址范圍X的數(shù)據(jù)進行讀取時,將會讀取到錯誤的數(shù)據(jù)込而非正確的數(shù)據(jù)Dp因此,控制器112不能將兩寫入命令的寫入數(shù)據(jù)相合并。接著,若具有相互重疊的邏輯地址范圍的寫入命令之間并未穿插一至數(shù)個讀取命令(步驟208),或是穿插于寫入命令之間的該讀取命令的邏輯地址范圍并未包含該等寫入命令的邏輯地址范圍的重疊部分(步驟210),則控制器112將該等寫入命令對應(yīng)的寫入數(shù)據(jù)于緩存器124中合并為一合并寫入數(shù)據(jù)(步驟212)。于一實施例中,控制器112辨識出該等寫入命令所存取的邏輯地址范圍的重疊部分,接著自該等寫入數(shù)據(jù)中去除對應(yīng)于該等重疊部分且具有較先寫入位序的多個重疊數(shù)據(jù)以得到多個未重疊數(shù)據(jù),最后合并該等未重疊數(shù)據(jù)以得到一合并寫入數(shù)據(jù)。圖4是本發(fā)明的三寫入命令所存取的邏輯地址范圍W3、W4、及W5的示意圖。由圖4中可見,第三寫入命令存取的邏輯地址范圍W3與第四寫入命令所存取的邏輯地址范圍W4相重疊,而第四寫入命令存取的邏輯地址范圍W4與第五寫入命令所存取的邏輯地址范圍W5相重疊。假設(shè)第三寫入命令所對應(yīng)的寫入數(shù)據(jù)包括未重疊數(shù)據(jù)D31及重疊數(shù)據(jù)D32,第四寫入命令所對應(yīng)的寫入數(shù)據(jù)包括重疊數(shù)據(jù)D41、未重疊數(shù)據(jù)D42、及重疊數(shù)據(jù)D43,而第五寫入命令所對應(yīng)的寫入數(shù)據(jù)包括重疊數(shù)據(jù)D51及未重疊數(shù)據(jù)D52。因此,控制器112應(yīng)將具有較先寫入位序的重疊數(shù)據(jù)D32、D43去除并分別以具有相同邏輯地址的較新數(shù)據(jù)D41、D51替代。最后,控制器112將數(shù)據(jù)D31、D41、D42、D51、D52合并以得到一合并寫入數(shù)據(jù)Y。接著,控制器112向存儲器114發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù)(步驟214),以便使存儲器114寫入該合并寫入數(shù)據(jù),從而達到一并執(zhí)行該等寫入命令的效果。由于多個寫入命令合并為單一寫入命令以一并執(zhí)行,且重疊部分的數(shù)據(jù)已由控制器112于緩存器124中先行更新,因此控制器112不需因數(shù)據(jù)重復(fù)寫入而對存儲器進行清除及重新寫入的動作,從而減少了執(zhí)行寫入命令所需的時間并提升記憶裝置104的效能。最后,控制器112自命令隊列122中刪除該等寫入命令(步驟216),以表示該等寫入命令已被執(zhí)行完畢。圖5是本發(fā)明的對存儲器114進行數(shù)據(jù)存取的方法500的另一實施例的流程圖。首先,控制器112自主機102接收多個命令并儲存至命令隊列122(步驟50。接著,控制器112計算該等命令欲存取的邏輯地址范圍(步驟504)。于一實施例中,控制器112首先取得該等命令所存取的多個起始邏輯地址,接著取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度,然后依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的邏輯地址范圍。例如,控制器112可藉起始邏輯地址加上數(shù)據(jù)長度而得到一結(jié)束邏輯地址,而邏輯地址范圍可被定義為自起始邏輯地址至結(jié)束邏輯地址的區(qū)間。當命令隊列中的所有命令的邏輯地址范圍均經(jīng)計算得到后,控制器112便檢查命令隊列122中是否儲存邏輯地址范圍均位于存儲器114的同一頁的多個寫入命令(步驟506)。舉例來說,假設(shè)命令隊列122中儲存一第一寫入命令。若第一寫入命令所存取的邏輯地址范圍的起始邏輯地址后于一特定頁的邏輯地址范圍的起始邏輯地址,且第一寫入命令所存取的邏輯地址范圍的結(jié)束邏輯地址先于該特定頁的邏輯地址范圍的結(jié)束邏輯地址,則控制器112決定該第一寫入命令所存取的邏輯地址范圍位于該存儲器的該特定頁。接著,控制器112檢查邏輯地址范圍位于同一頁的該等寫入命令之間是否有穿插一至數(shù)個讀取命令(步驟508)。若該等寫入命令之間有穿插一讀取命令,則控制器112繼續(xù)檢查是否該讀取命令的邏輯地址范圍與存儲器114的該頁的邏輯地址范圍相重疊(步驟510)。若該讀取命令所存取的邏輯地址范圍涵蓋到該等寫入命令的邏輯地址范圍所位于的該頁,則控制器112不能對寫入命令對應(yīng)的寫入數(shù)據(jù)進行合并,以免影響到穿插其間的讀取命令所讀取的數(shù)據(jù)的正確性。接著,若邏輯地址范圍均位于存儲器114的同一頁的多個寫入命令之間并未穿插一至數(shù)個讀取命令(步驟508),或是穿插于寫入命令之間的該讀取命令所存取的邏輯地址范圍并未包含該頁的邏輯地址范圍(步驟510),則控制器112將該等寫入命令對應(yīng)的寫入數(shù)據(jù)于緩存器124中合并為一合并寫入數(shù)據(jù)(步驟512)。于一實施例中,控制器112首先依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入數(shù)據(jù)儲存于一緩存器124中,接著輸出緩存器124中所儲存的數(shù)據(jù)以得到該合并寫入數(shù)據(jù)。于一實施例中,該緩存器124的大小剛好為存儲器114的一頁的數(shù)據(jù)容量。圖6是本發(fā)明的多個寫入命令所存取的邏輯地址范圍WpW2.....及\的示意圖。由圖6中可見,各寫入命令存取的邏輯地址范圍W1Wn均不互相重疊。因此,若采用圖2的方法200,控制器112并不會對該等寫入命令進行合并處理。然而,由于寫入命令所存取的邏輯地址范圍W1Wn位于存儲器114的同一頁,而存儲器114以頁為單位進行寫入,因此控制器112于執(zhí)行該等寫入命令時仍會面臨需反復(fù)清除該頁再重新寫入的問題。因此,控制器112于緩存器124中將該等寫入命令所對應(yīng)的寫入數(shù)據(jù)依據(jù)其邏輯地址范圍相合并,以得到包含所有寫入數(shù)據(jù)的一合并寫入數(shù)據(jù)Z。接著,控制器112向存儲器114發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù)(步驟514),以便使存儲器114寫入該合并寫入數(shù)據(jù),從而達到一并執(zhí)行該等寫入命令的效果。由于多個寫入命令合并為單一寫入命令以一并執(zhí)行,且欲寫入該頁的多個寫入數(shù)據(jù)已由控制器112于緩存器124中先行合并,因此控制器112不需因數(shù)據(jù)重復(fù)寫入該頁而對存儲器進行清除及重新寫入的動作,從而減少了執(zhí)行寫入命令所需的時間并提升記憶裝置104的效能。最后,控制器112自命令隊列122中刪除該等寫入命令(步驟516),以表示該等寫入命令已被執(zhí)行完畢。雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何熟習(xí)此項技術(shù)者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的更動與潤飾,因此本發(fā)明的保護范圍當視后附的申請專利范圍所界定者為準。權(quán)利要求1.一種存儲器的數(shù)據(jù)存取方法,其特征在于,包括下列步驟儲存自一主機所接收的多個命令至一命令隊列;計算該等命令所存取的邏輯地址范圍;自該等命令中選取多個寫入命令,其中該等寫入命令所存取的邏輯地址范圍相重疊;若該等寫入命令間未穿插一至數(shù)個讀取命令,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的多個寫入數(shù)據(jù)合并為一合并寫入數(shù)據(jù);以及向該存儲器發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù),以使該存儲器執(zhí)行該等寫入命令。2.根據(jù)權(quán)利要求1所述的存儲器的數(shù)據(jù)存取方法,其特征在于,其中該方法更包括下列步驟若該等寫入命令間穿插一至數(shù)個讀取命令,檢查是否該等讀取命令的邏輯地址范圍與該等寫入命令的邏輯地址范圍的重疊部分相重疊;若該等讀取命令的邏輯地址范圍未與該等寫入命令的邏輯地址范圍的重疊部分相重疊,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù);以及向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù),以使該存儲器執(zhí)行該等寫入命令。3.根據(jù)權(quán)利要求1所述的存儲器的數(shù)據(jù)存取方法,其特征在于,其中該等命令所存取的邏輯地址范圍的計算包括取得該等命令所存取的多個起始邏輯地址;取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度;以及依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的該等邏輯地址范圍。4.根據(jù)權(quán)利要求1所述的存儲器的數(shù)據(jù)存取方法,其特征在于,其中將該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù)的步驟包括辨識出該等寫入命令所存取的邏輯地址范圍的重疊部分;自該等寫入數(shù)據(jù)中去除對應(yīng)于該等重疊部分的多個重疊數(shù)據(jù)以得到多個未重疊數(shù)據(jù),其中該等重疊數(shù)據(jù)具有較先寫入位序;以及合并該等未重疊數(shù)據(jù)以得到該合并寫入數(shù)據(jù)。5.根據(jù)權(quán)利要求1所述的存儲器的數(shù)據(jù)存取方法,其特征在于,其中該等命令包括一第一寫入命令及一第二寫入命令,若該第一寫入命令的起始邏輯地址位于該第二寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,或該第二寫入命令的起始邏輯地址位于該第一寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,則該第一寫入命令與該第二寫入命令所存取的邏輯地址范圍相重疊。6.根據(jù)權(quán)利要求1所述的存儲器的數(shù)據(jù)存取方法,其特征在于,其中該方法更包括于向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)后,自該命令隊列中刪除該等寫入命令。7.—種記憶裝置,耦接至一主機,其特征在于,包括至少一存儲器,供儲存數(shù)據(jù);以及一控制器,儲存自該主機所接收的多個命令至一命令隊列,計算該等命令所存取的邏輯地址范圍,自該等命令中選取具有相重疊的邏輯地址范圍的多個寫入命令,以及當該等寫入命令間未穿插一至數(shù)個讀取命令時,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的多個寫入數(shù)據(jù)合并為一合并寫入數(shù)據(jù),并向該存儲器發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù)以使該存儲器執(zhí)行該等寫入命令。8.根據(jù)權(quán)利要求6所述的記憶裝置,其特征在于,其中當該等寫入命令間穿插一至數(shù)個讀取命令時,該控制器檢查是否該等讀取命令的邏輯地址范圍與該等寫入命令的邏輯地址范圍的重疊部分相重疊,而當該等讀取命令的邏輯地址范圍未與該等寫入命令的邏輯地址范圍的重疊部分相重疊時,該控制器依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的該等寫入數(shù)據(jù)合并為該合并寫入數(shù)據(jù),并向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)以使該存儲器執(zhí)行該等寫入命令。9.根據(jù)權(quán)利要求7所述的記憶裝置,其特征在于,其中該控制器取得該等命令所存取的多個起始邏輯地址,取得該等命令所存取的多個數(shù)據(jù)的數(shù)據(jù)長度,并依據(jù)該等起始邏輯地址以及該等數(shù)據(jù)長度推估該等命令所存取的該等邏輯地址范圍。10.根據(jù)權(quán)利要求7所述的記憶裝置,其特征在于,其中該控制器辨識出該等寫入命令所存取的邏輯地址范圍的重疊部分,自該等寫入數(shù)據(jù)中去除對應(yīng)于該等重疊部分的多個重疊數(shù)據(jù)以得到多個未重疊數(shù)據(jù),以及合并該等未重疊數(shù)據(jù)以得到該合并寫入數(shù)據(jù),其中該等重疊數(shù)據(jù)具有較先寫入位序。11.根據(jù)權(quán)利要求7所述的記憶裝置,其特征在于,其中該等命令包括一第一寫入命令及一第二寫入命令,若該第一寫入命令的起始邏輯地址位于該第二寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,或該第二寫入命令的起始邏輯地址位于該第一寫入命令的邏輯地址范圍的起始邏輯地址與結(jié)束邏輯地址之間,則該控制器決定該第一寫入命令與該第二寫入命令所存取的邏輯地址范圍相重疊。12.根據(jù)權(quán)利要求7所述的記憶裝置,其特征在于,其中于向該存儲器發(fā)送該合并寫入命令及該合并寫入數(shù)據(jù)后,該控制器自該命令隊列中刪除該等寫入命令。全文摘要本發(fā)明涉及一種存儲器的數(shù)據(jù)存取方法,其包括首先,儲存自一主機所接收的多個命令至一命令隊列;接著,計算該等命令所存取的邏輯地址范圍;接著,自該等命令中選取多個寫入命令,其中該等寫入命令所存取的邏輯地址范圍相重疊;若該等寫入命令間未穿插一至數(shù)個讀取命令,依據(jù)該等寫入命令所存取的邏輯地址范圍將該等寫入命令所對應(yīng)的多個寫入數(shù)據(jù)合并為一合并寫入數(shù)據(jù);最后,向該存儲器發(fā)送一合并寫入命令及該合并寫入數(shù)據(jù),以使該存儲器執(zhí)行該等寫入命令。本發(fā)明還涉及一種記憶裝置。本發(fā)明對存取的邏輯地址范圍相重疊的多個寫入命令進行合并處理,并對存取的邏輯地址范圍位于存儲器的同一頁的多個寫入命令進行合并處理,以至提升系統(tǒng)效能。文檔編號G06F12/02GK102053914SQ20091020887公開日2011年5月11日申請日期2009年10月30日優(yōu)先權(quán)日2009年10月30日發(fā)明者林仁文申請人:慧榮科技股份有限公司