TWI615771B - 資料儲存裝置及其資料讀取方法 - Google Patents
資料儲存裝置及其資料讀取方法 Download PDFInfo
- Publication number
- TWI615771B TWI615771B TW105120136A TW105120136A TWI615771B TW I615771 B TWI615771 B TW I615771B TW 105120136 A TW105120136 A TW 105120136A TW 105120136 A TW105120136 A TW 105120136A TW I615771 B TWI615771 B TW I615771B
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- data
- read command
- command
- commands
- Prior art date
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本發明提供一種資料儲存裝置包括一快閃記憶體、一隨機存取記憶體以及一控制器。控制器自一主機接收複數讀取命令。控制器選擇讀取命令中所需之映射表已上載至隨機存取記憶體之一者作為一第一讀取命令。控制器在所剩餘之讀取命令中選擇一第二讀取命令。控制器復用以選擇性地同時自快閃記憶體讀取第一讀取命令所指示之一第一資料以及用以執行第二讀取任務之一第二讀取命令所需之映射表,或者同時自快閃記憶體讀取第一讀取命令所指示之一第一資料以及第二讀取命令所指定之一第二資料。
Description
本發明係關於一種資料儲存裝置之資料讀取方法;特別係關於一種可決定讀取任務之順序之資料讀取方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(即NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)…等使用。
快閃記憶體(如,NAND FLASH)的儲存陣列包括複數個區塊(blocks)。各區塊包括複數頁面(pages)。一般而言,在快閃記憶體中資料讀取的單位是頁面。在以往eMMC的規格中,讀取命令需要逐一執行。換言之,當所接收之讀取命令已執行完畢後,資料儲存裝置才可自主機接收另一個讀取命令以執行令一讀取任務。因此,如何更有效率的執行讀取命令是增進資料儲存裝置效能的重要問題。
本發明所提供之資料儲存裝置以及資料讀取方法可依照特定規則選擇讀取命令所執行的順序,以降低控制器閒置的時間。
本發明提供一種資料儲存裝置包括一快閃記憶體、一隨機存取記憶體以及一控制器。控制器自一主機接收複數讀取命令,其中每一讀取命令所指定之資料需要藉由複數映射表中之一者來定位,並且每一讀取命令用以執行將所指定之資料傳送至主機之一讀取任務。控制器選擇讀取命令中所需之映射表已上載至隨機存取記憶體之一者作為一第一讀取命令,並且第一讀取命令所執行之一第一讀取任務是讀取任務中第一個被執行的。控制器在第一讀取任務執行前,在所剩餘之讀取命令中選擇一第二讀取命令,以安排第二讀取命令所執行之一第二讀取任務在第一讀取任務下一個被執行。控制器在第一讀取任務執行前,復用以選擇性地同時自快閃記憶體讀取第一讀取命令所指示之一第一資料以及用以執行第二讀取任務之一第二讀取命令所需之映射表,或者同時自快閃記憶體讀取第一讀取命令所指示之一第一資料以及第二讀取命令所指定之一第二資料。
在一實施例中,快閃記憶體包括複數晶片以及複數晶片選擇線,每一晶片選擇線用以控制至少一晶片。控制器係自讀取命令中選擇所需之映射表尚未被上載至隨機存取記憶體並且所需之映射表與第一資料被不同之晶片選擇線所控制之一者作為第二讀取命令。當所有剩餘之讀取命令所需但尚未被上載至隨機存取記憶體之映射表皆被用以控制第一資料之晶片選擇線所控制時,控制器自讀取命令中選擇所需之映射表尚未被上載至隨機存取記憶體之任一者作為第二讀取命令,在第一讀取任務執行前,選擇僅自快閃記憶體讀取第一資
料,並且在自主機接收到執行第一讀取任務之一第一任務執行訊號後並且自主機接收到執行第二讀取任務的一第二任務執行訊號前,自快閃記憶體讀取第二讀取命令所需之映射表。當所有剩餘之讀取命令所需之映射表皆已上載至隨機存取記憶體時,控制器自讀取命令中選擇任一者作為第二讀取命令,控制器在第一讀取任務執行前,選擇僅自快閃記憶體讀取第一資料。
在另一實施例中,當所有剩餘之讀取命令所需之映射表皆已上載至隨機存取記憶體時,控制器自讀取命令中選擇所指定之資料與第一資料被不同之晶片選擇線所控制之一者作為第二讀取命令,並且在第一讀取任務執行前,同時自快閃記憶體讀取第一資料以及第二資料。當所有剩餘之讀取命令所需之映射表皆已上載至隨機存取記憶體並且所有剩餘之讀取命令所指定的資料皆被用以控制第一資料之晶片選擇線所控制時,控制器自讀取命令中選擇任一者作為第二讀取命令,在第一讀取任務執行前,選擇僅自快閃記憶體讀取第一資料。當所有剩餘之讀取命令所需之映射表皆已被上載至隨機存取記憶體並且相應於目前之讀取命令所指示之資料已被讀取時,控制器自讀取命令中選擇任一者作為下一個讀取命令,並且目前之讀取命令所相應之目前的讀取任務執行前,選擇僅自快閃記憶體讀取下一個讀取命令所指示之資料。
值得注意的是,一實施例中,資料儲存裝置符合嵌入式快閃記憶體模組(eMMC)之規範,其中控制器係先陸續自主機接收讀取命令,再決定讀取命令所相應之讀取任務被執
行的順序。另外,控制器更用以根據讀取命令之數量動態調整隨機存取記憶體中用以預取讀取命令之資料的空間。當讀取命令之總數為N,控制器更用以調整隨機存取記憶體中用以預取讀取命令之資料的空間使得讀取命令所需之映射表具有1/N的機會已上載至隨機存取記憶體中。
本發明另提供一種資料儲存裝置包括一快閃記憶體、一隨機存取記憶體以及一控制器。控制器自一主機接收複數讀取命令以構成一命令序列,並且決定讀取命令執行之順序,其中每一讀取命令所指定之資料需要藉由複數映射表中之一者來定位,並且每一讀取命令用以執行將所指定之資料傳送至主機之一讀取任務。控制器選擇讀取命令中所需之映射表已上載至隨機存取記憶體之一者作為第一個執行之一第一讀取命令,其中在所剩餘之讀取命令中,所需之映射表尚未被上載至隨機存取記憶體的之讀取命令的優先權高於所需之映射表已被上載至隨機存取記憶體的讀取命令的優先權。
在一實施例中,快閃記體包括複數晶片以及複數晶片選擇線,每一晶片選擇線用以控制至少一晶片,其中在所需之映射表尚未被上載至隨機存取記憶體的之所剩餘的讀取命令中,所需之映射表與目前所執行之讀取命令所指示之一目前資料被不同之晶片選擇線所控制之讀取命令的優先權高於所需之映射表與目前所執行之讀取命令所指示之一目前資料被相同之晶片選擇線所控制之讀取命令的優先權。當下一個讀取命令所需之映射表與目前所執行之讀取命令所指示之一目前資料被不同之晶片選擇線所控制時,控制器同時自快閃記憶
體讀取目前之讀取命令所指示之目前資料以及用以下一個讀取命令所需之映射表。
又另一實施例中,在所需之映射表已未被上載至隨機存取記憶體的之所剩餘的讀取命令中,所指示之資料與目前所執行之讀取命令所指示之一目前資料被不同之晶片選擇線所控制之讀取命令的優先權高於所指示之資料與目前所執行之讀取命令所指示之一目前資料被相同之晶片選擇線所控制之讀取命令的優先權。當下一個讀取命令所指示之資料與目前所執行之讀取命令所指示之一目前資料被不同之晶片選擇線所控制時,控制器用以同時自快閃記憶體讀取目前之讀取命令所指示之目前資料以及下一個讀取命令所指定之資料。
本發明又提供一種資料讀取方法適用於具有一快閃記憶體之資料儲存裝置。資料讀取方法包括:自一主機接收複數讀取命令,其中每一讀取命令所指定之資料需要藉由複數映射表中之一者來定位,並且每一讀取命令用以執行將所指定之資料傳送至主機之一讀取任務;判斷讀取命令所需要之映射表是否已上載至一隨機存取記憶體;選擇讀取命令中所需之映射表已上載至隨機存取記憶體之一者作為一第一讀取命令,其中第一讀取命令所執行之一第一讀取任務是讀取任務中第一個被執行的;在第一讀取任務執行前,在所剩餘之讀取命令中選擇一第二讀取命令,以安排第二讀取命令所執行之一第二讀取任務在第一讀取任務下一個被執行;以及在第一讀取任務執行前,選擇性地同時自快閃記憶體讀取第一讀取命令所指示之一第一資料以及用以執行第二讀取任務之一第二讀取命令所
需之映射表,或者同時自快閃記憶體讀取第一讀取命令所指示之一第一資料以及第二讀取命令所指定之一第二資料。
在一實施例中,快閃記憶體包括複數晶片以及複數晶片選擇線,每一晶片選擇線用以控制至少一晶片,並且在所剩餘之讀取命令中選擇第二讀取命令之步驟更包括:判斷剩餘之讀取命令所需但尚未被上載至隨機存取記憶體之映射表是否與第一資料被不同之晶片選擇線所控制;以及當剩餘之讀取命令所需但尚未被上載至隨機存取記憶體之映射表中之至少一者與第一資料被不同之晶片選擇線所控制時,自讀取命令中選擇所需之映射表尚未被上載至隨機存取記憶體並且所需之映射表與第一資料被不同之晶片選擇線所控制之一者作為一第二讀取命令,其中資料讀取方法更包括:在第一讀取任務執行前,選擇同時自快閃記憶體讀取第一讀取命令所指示之一第一資料以及用以執行第二讀取任務之一第二讀取命令所需之映射表。
在一實施例中,在所剩餘之讀取命令中選擇第二讀取命令之步驟更包括:當所有剩餘之讀取命令所需但尚未被上載至隨機存取記憶體之映射表與第一資料皆被相同之晶片選擇線所控制時,自讀取命令中選擇所需之映射表尚未被上載至隨機存取記憶體之任一者作為第二讀取命令,其中資料讀取方法更包括:在第一讀取任務執行前,選擇僅自快閃記憶體讀取第一資料;以及在自主機接收到執行第一讀取任務之一第一任務執行訊號後並且自主機接收到執行第二讀取任務的一第二任務執行訊號前,自快閃記憶體讀取第二讀取命令所需之映
射表;當所有剩餘之讀取命令所需之映射表皆已上載至隨機存取記憶體時,自讀取命令中選擇任一者作為第二讀取命令,其中資料讀取方法更包括:在第一讀取任務執行前,選擇僅自快閃記憶體讀取第一資料。
又另一實施例中,在所剩餘之讀取命令中選擇第二讀取命令之步驟更包括:當所有剩餘之讀取命令所需之映射表皆已上載至隨機存取記憶體時,判斷所有剩餘之讀取命令所指定的資料是否與第一資料被不同之晶片選擇線所控制;當所有剩餘之讀取命令所指定的資料中之至少一者與第一資料被不同之晶片選擇線所控制時,自讀取命令中選擇所指定之資料與第一資料被不同之晶片選擇線所控制之一者作為第二讀取命令,其中資料讀取方法更包括:在第一讀取任務執行前,選擇同時自快閃記憶體讀取第一資料以及第二資料;當所有剩餘之讀取命令所指定的資料皆與第一資料被相同之晶片選擇線所控制時,自讀取命令中選擇任一者作為第二讀取命令,其中資料讀取方法更包括:在第一讀取任務執行前,選擇僅自快閃記憶體讀取第一資料。
又另一實施例中,資料讀取方法更包括:當所有剩餘之讀取命令所需之映射表皆已被上載至隨機存取記憶體並且相應於目前之讀取命令所指示之資料已被讀取時,自讀取命令中選擇任一者作為下一個讀取命令;以及在目前之讀取命令所相應之目前的讀取任務執行前,選擇僅自快閃記憶體讀取下一個讀取命令所指示之資料。
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圖係本發明之一種實施例之電子系統之方塊圖;第2圖係本發明之一種實施例之快閃記憶體的示意圖;第3圖係本發明之一種實施例之在嵌入式快閃記憶體模組之規範下資料傳輸的示意圖;第4圖係本發明之另一種實施例之在嵌入式快閃記憶體模組之規範下資料傳輸的示意圖;第5圖係本發明之另一種實施例之在嵌入式快閃記憶體模組之規範下資料傳輸的示意圖;第6圖係本發明之另一種實施例之在嵌入式快閃記憶體模組之規範下資料傳輸的示意圖;第7圖係本發明之另一種實施例之在嵌入式快閃記憶體模組之規範下資料傳輸的示意圖;第8圖係本發明之另一種實施例之在嵌入式快閃記憶體模組之規範下資料傳輸的示意圖;第9A-9C圖係本發明之一種實施例之資料讀取方法之流程圖;第10A-10D圖係本發明之一種實施例之資料讀取方法之流程圖。
以下將詳細討論本發明各種實施例之裝置及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之裝置及使用方法,但非用於限定本發明之範圍。
第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拉起第一任務準備訊號TA1_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將下一個讀取命令所執行之讀取任務設定為目前讀取任務。
接著,在步驟5942中,控制器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讀取下一個讀取命令所指示之資料。
本發明所提供之資料儲存裝置以及資料讀取方法可依照特定規則選擇讀取命令所執行的順序,以降低控制器閒置的時間。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,
如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。另外本發明的任一實施例或申請專利範圍不須達成本發明所揭露之全部目的或優點或特點。此外,摘要部分和標題僅是用來輔助專利文件搜尋之用,並非用來限制本發明之權利範圍。
100‧‧‧電子系統
120‧‧‧主機
140‧‧‧資料儲存裝置
160‧‧‧控制器
162‧‧‧運算單元
164‧‧‧永久記憶體
166‧‧‧隨機存取記憶體
180‧‧‧快閃記憶體
C0~CN‧‧‧晶片
Claims (25)
- 一種資料儲存裝置,包括:一快閃記憶體;一隨機存取記憶體;以及一控制器,自一主機接收複數讀取命令,其中每一該等讀取命令所指定之資料需要藉由複數映射表中之一者來定位,並且每一該等讀取命令用以執行將所指定之資料傳送至該主機之一讀取任務;其中該控制器選擇該等讀取命令中所需之該映射表已上載至該隨機存取記憶體之一者作為一第一讀取命令,並且該第一讀取命令所執行之一第一讀取任務是該等讀取任務中第一個被執行的;其中該控制器在該第一讀取任務執行前,在所剩餘之該等讀取命令中選擇一第二讀取命令,以安排該第二讀取命令所執行之一第二讀取任務在該第一讀取任務下一個被執行;其中該控制器在該第一讀取任務執行前,復用以選擇性地同時自該快閃記憶體讀取該第一讀取命令所指示之一第一資料以及用以執行該第二讀取任務之一第二讀取命令所需之該映射表,或者同時自該快閃記憶體讀取該第一讀取命令所指示之一第一資料以及該第二讀取命令所指定之一第二資料。
- 根據申請專利範圍第1項之資料儲存裝置,其中該快閃記憶體包括複數晶片以及複數晶片選擇線,每一該等晶片選擇 線用以控制至少一該等晶片,該控制器係自該等讀取命令中選擇所需之該映射表尚未被上載至該隨機存取記憶體並且所需之該映射表與該第一資料被不同之該等晶片選擇線所控制之一者作為該第二讀取命令。
- 根據申請專利範圍第2項之資料儲存裝置,其中當所有剩餘之該等讀取命令所需但尚未被上載至該隨機存取記憶體之該等映射表皆被用以控制該第一資料之該晶片選擇線所控制時,該控制器自該等讀取命令中選擇所需之該映射表尚未被上載至該隨機存取記憶體之任一者作為該第二讀取命令,在該第一讀取任務執行前,選擇僅自該快閃記憶體讀取該第一資料,並且在自該主機接收到執行該第一讀取任務之一第一任務執行訊號後並且自該主機接收到執行該第二讀取任務的一第二任務執行訊號前,自該快閃記憶體讀取該第二讀取命令所需之該映射表。
- 根據申請專利範圍第3項之資料儲存裝置,其中當所有剩餘之該等讀取命令所需之該等映射表皆已上載至該隨機存取記憶體時,該控制器自該等讀取命令中選擇任一者作為該第二讀取命令,該控制器在該第一讀取任務執行前,選擇僅自該快閃記憶體讀取該第一資料。
- 根據申請專利範圍第3項之資料儲存裝置,其中當所有剩餘之該等讀取命令所需之該等映射表皆已上載至該隨機存取記憶體時,該控制器自該等讀取命令中選擇所指定之資料與該第一資料被不同之該等晶片選擇線所控制之一者作為該第二讀取命令,並且在該第一讀取任務執行前,同時自 該快閃記憶體讀取該第一資料以及該第二資料。
- 根據申請專利範圍第5項之資料儲存裝置,其中當所有剩餘之該等讀取命令所需之該等映射表皆已上載至該隨機存取記憶體並且所有剩餘之該等讀取命令所指定的資料皆被用以控制該第一資料之該晶片選擇線所控制時,該控制器自該等讀取命令中選擇任一者作為該第二讀取命令,在該第一讀取任務執行前,選擇僅自該快閃記憶體讀取該第一資料。
- 根據申請專利範圍第5項之資料儲存裝置,其中當所有剩餘之該等讀取命令所需之該等映射表皆已被上載至該隨機存取記憶體並且相應於目前之該讀取命令所指示之資料已被讀取時,該控制器自該等讀取命令中選擇任一者作為下一個讀取命令,並且目前之該讀取命令所相應之目前的該讀取任務執行前,選擇僅自該快閃記憶體讀取該下一個讀取命令所指示之資料。
- 根據申請專利範圍第1項之資料儲存裝置,其中該資料儲存裝置符合嵌入式快閃記憶體模組(eMMC)之規範,其中該控制器係先陸續自該主機接收該等讀取命令,再決定該等讀取命令所相應之該等讀取任務被執行的順序。
- 根據申請專利範圍第1項之資料儲存裝置,其中該控制器更用以根據該等讀取命令之數量動態調整該隨機存取記憶體中用以預取該等讀取命令之資料的空間。
- 根據申請專利範圍第9項之資料儲存裝置,其中當該等讀取命令之總數為N,該控制器更用以調整該隨機存取記憶體中 用以預取該等讀取命令之資料的空間使得該等讀取命令所需之該等映射表具有1/N的機會已上載至該隨機存取記憶體中。
- 一種資料儲存裝置,包括:一快閃記憶體;一隨機存取記憶體;以及一控制器,自一主機接收複數讀取命令以構成一命令序列,並且決定該等讀取命令執行之順序,其中每一該等讀取命令所指定之資料需要藉由複數映射表中之一者來定位,並且每一該等讀取命令用以執行將所指定之資料傳送至該主機之一讀取任務;其中該控制器選擇該等讀取命令中所需之該映射表已上載至該隨機存取記憶體之一者作為第一個執行之一第一讀取命令;其中在所剩餘之該等讀取命令中,所需之該等映射表尚未被上載至該隨機存取記憶體的之該等讀取命令的優先權高於所需之該等映射表已被上載至該隨機存取記憶體的該等讀取命令的優先權。
- 根據申請專利範圍第11項之資料儲存裝置,其中該快閃記體包括複數晶片以及複數晶片選擇線,每一該等晶片選擇線用以控制至少一該等晶片,其中在所需之該等映射表尚未被上載至該隨機存取記憶體的之所剩餘的該等讀取命令中,所需之該等映射表與目前所執行之該讀取命令所指示之一目前資料被不同之該等晶片選擇線所控制之該等讀取 命令的優先權高於所需之該等映射表與目前所執行之該讀取命令所指示之一目前資料被相同之該晶片選擇線所控制之該等讀取命令的優先權。
- 根據申請專利範圍第11項之資料儲存裝置,其中當下一個該讀取命令所需之該等映射表與目前所執行之該讀取命令所指示之一目前資料被不同之該等晶片選擇線所控制時,該控制器同時自該快閃記憶體讀取目前之該讀取命令所指示之該目前資料以及用以下一個該讀取命令所需之該映射表。
- 根據申請專利範圍第11項之資料儲存裝置,其中在所需之該等映射表已未被上載至該隨機存取記憶體的之所剩餘的該等讀取命令中,所指示之資料與目前所執行之該讀取命令所指示之一目前資料被不同之該等晶片選擇線所控制之該等讀取命令的優先權高於所指示之資料與目前所執行之該讀取命令所指示之一目前資料被相同之該晶片選擇線所控制之該等讀取命令的優先權。
- 根據申請專利範圍第14項之資料儲存裝置,其中當下一個該讀取命令所指示之資料與目前所執行之該讀取命令所指示之一目前資料被不同之該等晶片選擇線所控制時,該控制器用以同時自該快閃記憶體讀取目前之該讀取命令所指示之該目前資料以及下一個該讀取命令所指定之資料。
- 一種資料讀取方法,適用於具有一快閃記憶體之資料儲存裝置,包括: 自一主機接收複數讀取命令,其中每一該等讀取命令所指定之資料需要藉由複數映射表中之一者來定位,並且每一該等讀取命令用以執行將所指定之資料傳送至該主機之一讀取任務;判斷該等讀取命令所需要之該等映射表是否已上載至一隨機存取記憶體;選擇該等讀取命令中所需之該映射表已上載至該隨機存取記憶體之一者作為一第一讀取命令,其中該第一讀取命令所執行之一第一讀取任務是該等讀取任務中第一個被執行的;在該第一讀取任務執行前,在所剩餘之該等讀取命令中選擇一第二讀取命令,以安排該第二讀取命令所執行之一第二讀取任務在該第一讀取任務下一個被執行;以及在該第一讀取任務執行前,選擇性地同時自該快閃記憶體讀取該第一讀取命令所指示之一第一資料以及用以執行該第二讀取任務之一第二讀取命令所需之該映射表,或者同時自該快閃記憶體讀取該第一讀取命令所指示之一第一資料以及該第二讀取命令所指定之一第二資料。
- 根據申請專利範圍第16項之資料讀取方法,其中該快閃記憶體包括複數晶片以及複數晶片選擇線,每一該等晶片選擇線用以控制至少一該等晶片,並且在所剩餘之該等讀取命令中選擇該第二讀取命令之步驟更包括: 判斷剩餘之該等讀取命令所需但尚未被上載至該隨機存取記憶體之該等映射表是否與該第一資料被不同之該等晶片選擇線所控制;以及當剩餘之該等讀取命令所需但尚未被上載至該隨機存取記憶體之該等映射表中之至少一者與該第一資料被不同之該等晶片選擇線所控制時,自該等讀取命令中選擇所需之該映射表尚未被上載至該隨機存取記憶體並且所需之該映射表與該第一資料被不同之該等晶片選擇線所控制之一者作為一第二讀取命令,其中該資料讀取方法更包括:在該第一讀取任務執行前,選擇同時自該快閃記憶體讀取該第一讀取命令所指示之一第一資料以及用以執行該第二讀取任務之一第二讀取命令所需之該映射表。
- 根據申請專利範圍第17項之資料讀取方法,其中在所剩餘之該等讀取命令中選擇該第二讀取命令之步驟更包括:當所有剩餘之該等讀取命令所需但尚未被上載至該隨機存取記憶體之該等映射表與該第一資料皆被相同之該等晶片選擇線所控制時,自該等讀取命令中選擇所需之該映射表尚未被上載至該隨機存取記憶體之任一者作為該第二讀取命令,其中該資料讀取方法更包括:在該第一讀取任務執行前,選擇僅自該快閃記憶體讀取該第一資料;以及在自該主機接收到執行該第一讀取任務之一第一任務執行訊號後並且自該主機接收到執行該第二讀取任務的一第二 任務執行訊號前,自該快閃記憶體讀取該第二讀取命令所需之該映射表。
- 根據申請專利範圍第18項之資料讀取方法,其中在所剩餘之該等讀取命令中選擇該第二讀取命令之步驟更包括:當所有剩餘之該等讀取命令所需之該等映射表皆已上載至該隨機存取記憶體時,自該等讀取命令中選擇任一者作為該第二讀取命令,其中該資料讀取方法更包括:在該第一讀取任務執行前,選擇僅自該快閃記憶體讀取該第一資料。
- 根據申請專利範圍第18項之資料讀取方法,其中在所剩餘之該等讀取命令中選擇該第二讀取命令之步驟更包括:當所有剩餘之該等讀取命令所需之該等映射表皆已上載至該隨機存取記憶體時,判斷所有剩餘之該等讀取命令所指定的資料是否與該第一資料被不同之該等晶片選擇線所控制;當所有剩餘之該等讀取命令所指定的資料中之至少一者與該第一資料被不同之該等晶片選擇線所控制時,自該等讀取命令中選擇所指定之資料與該第一資料被不同之該等晶片選擇線所控制之一者作為該第二讀取命令,其中該資料讀取方法更包括:在該第一讀取任務執行前,選擇同時自該快閃記憶體讀取該第一資料以及該第二資料。
- 根據申請專利範圍第20項之資料讀取方法,其中在所剩餘之該等讀取命令中選擇該第二讀取命令之步驟更包括: 當所有剩餘之該等讀取命令所指定的資料皆與該第一資料被相同之該晶片選擇線所控制時,自該等讀取命令中選擇任一者作為該第二讀取命令,其中該資料讀取方法更包括:在該第一讀取任務執行前,選擇僅自該快閃記憶體讀取該第一資料。
- 根據申請專利範圍第20項之資料讀取方法,更包括:當所有剩餘之該等讀取命令所需之該等映射表皆已被上載至該隨機存取記憶體並且相應於目前之該讀取命令所指示之資料已被讀取時,自該等讀取命令中選擇任一者作為下一個讀取命令;以及在目前之該讀取命令所相應之目前的該讀取任務執行前,選擇僅自該快閃記憶體讀取該下一個讀取命令所指示之資料。
- 根據申請專利範圍第16項之資料讀取方法,其中該資料儲存裝置符合嵌入式快閃記憶體模組(eMMC)之規範,其中該資料讀取方法係先陸續自該主機接收該等讀取命令,再決定該等讀取命令所相應之該等讀取任務被執行的順序。
- 根據申請專利範圍第16項之資料讀取方法,更包括根據該等讀取命令之數量動態調整該隨機存取記憶體中用以預取該等讀取命令之資料的空間。
- 根據申請專利範圍第24項之資料讀取方法,其中當該等讀取命令之總數為N,該根據該等讀取命令之數量動態調整該隨機存取記憶體中用以預取該等讀取命令之資料的空間的步驟更包括調整該隨機存取記憶體中用以預取該等讀取命 令之資料的空間使得該等讀取命令所需之該等映射表具有1/N的機會已上載至該隨機存取記憶體中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610603073.9A CN106547480B (zh) | 2015-09-17 | 2016-07-28 | 数据储存装置及其数据读取方法 |
US15/265,563 US10140024B2 (en) | 2015-09-17 | 2016-09-14 | Data storage device and data reading method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562220008P | 2015-09-17 | 2015-09-17 | |
US62/220,008 | 2015-09-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201712525A TW201712525A (zh) | 2017-04-01 |
TWI615771B true TWI615771B (zh) | 2018-02-21 |
Family
ID=59256653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105120136A TWI615771B (zh) | 2015-09-17 | 2016-06-27 | 資料儲存裝置及其資料讀取方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI615771B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI676103B (zh) * | 2018-06-19 | 2019-11-01 | 旺宏電子股份有限公司 | 記憶系統 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140089568A1 (en) * | 2012-09-14 | 2014-03-27 | Samsung Electronics Co., Ltd. | Embedded multimedia card (emmc), host for controlling the emmc, and methods of operating the emmc and the host |
TW201426303A (zh) * | 2012-12-24 | 2014-07-01 | Phison Electronics Corp | 資料讀取方法、記憶體控制器與記憶體儲存裝置 |
US20140281588A1 (en) * | 2013-03-14 | 2014-09-18 | Apple Inc. | Generating efficient reads for a system having non-volatile memory |
US20140310574A1 (en) * | 2012-12-28 | 2014-10-16 | Super Talent Technology, Corp. | Green eMMC Device (GeD) Controller with DRAM Data Persistence, Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files for Enhanced Flash Endurance |
TW201500923A (zh) * | 2013-06-20 | 2015-01-01 | Silicon Motion Inc | 資料儲存裝置及用於快閃記憶體之資料讀取方法 |
TW201506953A (zh) * | 2013-03-15 | 2015-02-16 | Sandisk Technologies Inc | 減小資料儲存裝置的讀取延時之系統及方法 |
-
2016
- 2016-06-27 TW TW105120136A patent/TWI615771B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140089568A1 (en) * | 2012-09-14 | 2014-03-27 | Samsung Electronics Co., Ltd. | Embedded multimedia card (emmc), host for controlling the emmc, and methods of operating the emmc and the host |
TW201426303A (zh) * | 2012-12-24 | 2014-07-01 | Phison Electronics Corp | 資料讀取方法、記憶體控制器與記憶體儲存裝置 |
US20140310574A1 (en) * | 2012-12-28 | 2014-10-16 | Super Talent Technology, Corp. | Green eMMC Device (GeD) Controller with DRAM Data Persistence, Data-Type Splitting, Meta-Page Grouping, and Diversion of Temp Files for Enhanced Flash Endurance |
US20140281588A1 (en) * | 2013-03-14 | 2014-09-18 | Apple Inc. | Generating efficient reads for a system having non-volatile memory |
TW201506953A (zh) * | 2013-03-15 | 2015-02-16 | Sandisk Technologies Inc | 減小資料儲存裝置的讀取延時之系統及方法 |
TW201500923A (zh) * | 2013-06-20 | 2015-01-01 | Silicon Motion Inc | 資料儲存裝置及用於快閃記憶體之資料讀取方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI676103B (zh) * | 2018-06-19 | 2019-11-01 | 旺宏電子股份有限公司 | 記憶系統 |
Also Published As
Publication number | Publication date |
---|---|
TW201712525A (zh) | 2017-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11651823B2 (en) | Fractional program commands for memory devices | |
CN106547480B (zh) | 数据储存装置及其数据读取方法 | |
CN100483366C (zh) | 闪速存储器控制器高速缓存架构 | |
US20190018618A1 (en) | Methods and apparatuses for executing a plurality of queued tasks in a memory | |
US11068388B2 (en) | Verify before program resume for memory devices | |
US8310880B2 (en) | Virtual channel support in a nonvolatile memory controller | |
TWI473116B (zh) | 多通道記憶體儲存裝置及其控制方法 | |
JP7236172B2 (ja) | データ記憶用の装置、方法及び読み取り可能な媒体 | |
TW201241624A (en) | Memory system | |
US20150149741A1 (en) | Storage System and Control Method Thereof | |
US9772777B2 (en) | Systems and methods for improved access to flash memory devices | |
CN1225490A (zh) | 信息重放装置 | |
US10089039B2 (en) | Memory controller, memory device having the same, and memory control method | |
TWI615771B (zh) | 資料儲存裝置及其資料讀取方法 | |
JP7236173B2 (ja) | データ伝送装置、方法及び読み取り可能な記憶媒体 | |
WO2024066383A1 (zh) | 闪存管理方法及闪存设备 | |
US9195595B2 (en) | Portable apparatus using multi-core storage mechanism and data access method therefor | |
US10394486B2 (en) | Methods for garbage collection in a flash memory and apparatuses using the same | |
US11194514B2 (en) | Just in time data placement in NAND flash | |
EP3968329A1 (en) | Memory controller, memory device and storage device | |
JP6363978B2 (ja) | 半導体記憶装置及びその制御方法 | |
TWI567550B (zh) | 資料儲存裝置及其資料維護方法 | |
JP2007094964A (ja) | 記憶手段制御回路、及び記憶装置インターフェース回路 |