TWI621021B - 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 - Google Patents

用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 Download PDF

Info

Publication number
TWI621021B
TWI621021B TW106128933A TW106128933A TWI621021B TW I621021 B TWI621021 B TW I621021B TW 106128933 A TW106128933 A TW 106128933A TW 106128933 A TW106128933 A TW 106128933A TW I621021 B TWI621021 B TW I621021B
Authority
TW
Taiwan
Prior art keywords
data storage
queue
read
read instruction
controller
Prior art date
Application number
TW106128933A
Other languages
English (en)
Other versions
TW201913395A (zh
Inventor
林瑜智
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW106128933A priority Critical patent/TWI621021B/zh
Priority to US15/863,449 priority patent/US10528289B2/en
Priority to CN201810208664.5A priority patent/CN109426445B/zh
Application granted granted Critical
Publication of TWI621021B publication Critical patent/TWI621021B/zh
Publication of TW201913395A publication Critical patent/TW201913395A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種資料儲存裝置,具有一快閃記憶體以及一控制器。快閃記憶體係用以儲存至少一資料。控制器耦接該快閃記憶體,用以接收來自一主機所傳送之至少一讀取指令,並且依據該讀取指令讀取該快閃記憶體所儲存之該資料。該控制器判斷該讀取指令之長度是否大於一第一預設值,如果該長度大於該第一預設值,則該控制器將該讀取指令配置於一連續佇列,如果該長度並未大於該第一預設值,則該控制器將該讀取指令配置於一隨機佇列,並且該控制器優先執行該隨機佇列中的該讀取指令。

Description

用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置
本發明係關於一用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置,特別係關於一種藉由隨機佇列與連續佇列,分別處理不同長度之讀取指令之資料儲存裝置與資料儲存方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)、通用快閃記憶體(UFS)…等使用。
主機會對資料儲存裝置傳送各種不同長度的讀取指令。資料儲存裝置處理不同長度之讀取指令所需的時間並不相同,因此而影響到資料儲存裝置存取資料的速度以及效率。因此,需要一種能夠有效率的資料儲存方法,能夠對於不同長度的讀取指令進行排序以及優化處理,以確保資料存取之效能與可靠度。
為了解決上述問題,本發明提出一種用以檢測讀 取指令之長度之資料儲存方法及其資料儲存裝置,並且據以將讀取指令配置於隨機佇列或是連續佇列。詳細而言,資料儲存裝置係優先執行隨機佇列中的讀取指令,並且以表格化方式及時且動態更新隨機佇列與連續佇列的狀況,以有效確保資料存取之效能與可靠度。
本發明之一實施例提供了一種資料儲存裝置,具有一快閃記憶體以及一控制器。快閃記憶體係用以儲存至少一資料。控制器耦接該快閃記憶體,用以接收來自一主機所傳送之至少一讀取指令,並且依據該讀取指令讀取該快閃記憶體所儲存之該資料。該控制器判斷該讀取指令之長度是否大於一第一預設值,如果該長度大於該第一預設值,則該控制器將該讀取指令配置於一連續佇列,如果該長度並未大於該第一預設值,則該控制器將該讀取指令配置於一隨機佇列,並且該控制器優先執行該隨機佇列中的該讀取指令。
本發明之一實施例提供了一種用於優化資料儲存裝置之資料儲存方法,資料儲存裝置具有一快閃記憶體、一控制器以及一隨機存取記憶體。快閃記憶體包括複數個儲存矩陣(plane),並且該等儲存矩陣之每一者包括複數個區塊(block),該等複數矩陣之每一者係分別藉由一通道耦接該控制器,該快閃記憶體儲存至少一資料。上述資料儲存方法包括:接收來自一主機所傳送之至少一讀取指令,其中該讀取指令係用以讀取該快閃記憶體所儲存之該資料;判斷該讀取指令之長度是否大於一第一預設值,如果該長度大於該第一預設值,則該控制器將該讀取指令配置於一連續佇列,如果該長度並未大於該第一 預設值,則該控制器將該讀取指令配置於一隨機佇列;以及優先執行該隨機佇列中的該讀取指令。
關於本發明其他附加的特徵與優點,此領域之熟習技術人士,在不脫離本發明之精神和範圍內,當可根據本案實施方法中所揭露之資料儲存裝置與資料儲存方法。
100‧‧‧資料儲存裝置
120‧‧‧控制器
140‧‧‧快閃記憶體
160-16N‧‧‧儲存矩陣
160_A、160_Z...16N_A、16N_Z‧‧‧區塊
160_A_1、160_Z_1...16N_A_X、16N_Z_X‧‧‧頁面
180‧‧‧隨機存取記憶體
200‧‧‧主機
CE0、CE1‧‧‧邏輯矩陣
DT‧‧‧表格
#1...#6‧‧‧讀取指令
RAM‧‧‧隨機存取記憶體
S200...S306‧‧‧步驟
根據以下的詳細說明並配合所附圖式做完整揭露。應注意的是,根據本產業的一般作業,圖示並未必按照比例繪製。事實上,可能任意的放大或縮小元件的尺寸,以做清楚的說明。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置與主機之示意圖;第2圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖;第3圖係顯示根據本發明另一實施例所述之資料儲存方法之流程圖;第4圖係顯示根據本發明一實施例所述之以表格儲存讀取指令及其相關資訊之示意圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述 任意組合來實現。
第1圖係顯示根據本發明一實施例所述之資料儲存裝置100與主機200之示意圖。在一實施例中,資料儲存裝置100包括控制器120、快閃記憶體140以及隨機存取記憶體(RAM)180。資料儲存裝置100耦接主機200以傳送資料與指令、或是接收資料與指令。快閃記憶體140可以為非揮發性記憶體,例如反集閘快閃記憶體(NAND Flash)。資料儲存裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(solid state drive,SSD)以及各種嵌入式(embedded)儲存裝置(諸如符合UFS或EMMC規格之嵌入式儲存裝置)。主機200可以為手機、平板電腦、筆記型電腦、導航機或車載系統等各種電子產品、或上述各種電子產品中的處理器。
如第1圖所示,控制器120耦接快閃記憶體140以及隨機存取記憶體180。隨機存取記憶體180用以暫存以及快取控制器120所需之資料,或是用以暫存主機200要寫入快閃記憶體140之資料,以加快資料儲存裝置100之存取時間。控制器120藉由控制快閃記憶體140以叢集(cluster)為單位執行讀取運作的方式來對快閃記憶體140執行讀取運作。此外,控制器120耦接快閃記憶體140以相互傳送資料與指令或接收資料與指令。進一步而言,控制器120可包括具有韌體碼之唯讀記憶體(ROM)以及微控制器,並且微控制器執行韌體碼以操作或是存取快閃記憶體140。
快閃記憶體140包括複數個儲存矩陣 (plane)160~16N。上述儲存矩陣之每一者係分別藉由一通道(未顯示)耦接控制器120。在一實施例中,每一儲存矩陣160~16N之一部分區塊組合成一超級區塊(super block),使得快閃記憶體140包括複數個超級區塊。詳細而言,儲存矩陣160~16N中的每一者更包括複數個區塊(block)。在另一實施例中,儲存矩陣即為超級區塊。舉例而言,快閃記憶體140具有4個超級區塊(亦即CE0~CE3)。儲存矩陣160包括區塊160_A~160_Z,儲存矩陣16N包括區塊16N_A~16N_Z。對於儲存矩陣160而言,區塊160_A~160_Z中的每一者更包括複數個頁面。區塊160_A包括頁面160_A_1~160_A_X,區塊160_Z包括頁面160_Z_1~160_Z_X,並且每個頁面之大小為N個位元組,其中N為大於1之正整數。
舉例而言,儲存矩陣160~164之每一者係包括820的區塊,上述區塊的每一者係包括256個頁面,並且每個頁面之大小為16K位元組(K-bytes)。此外,上述頁面160_A_1~16N_Z_X為實體頁面。控制器120在對快閃記憶體140執行寫入或儲存動作時,是藉由控制快閃記憶體140以實體頁面為單位來執行寫入或程式化的運作。
對於快閃記憶體140而言,其頁面160_A_1~16N_Z_X的每一者皆具有不同的實體位址。換言之,頁面160_A_1~16N_Z_X的每一者都具有一個實體位址,而頁面160_A_1~16N_Z_X的每一者的實體位址都是不同的。當資料儲存裝置100執行一寫入運作時,控制器120決定快閃記憶體140的一實體位址以寫入或儲存資料。此外,控制器120則分別對 應上述複數個實體位址至複數個邏輯位址。因此,對於主機200而言,主機200係藉由邏輯位址,來讀取或寫入資料儲存裝置100所儲存於某個邏輯位址的資料。
在一實施例中,控制器120係以1位元組為偵測單位,計算每一頁面160_A_1~16N_Z_X之錯誤校正碼(Error Correction Code,ECC)位元數,並且統計當該錯誤校正碼位元數為不同數值時所分別對應之該等頁面之該等偵測單位的數量,以分別判斷快閃記憶體140之每一儲存矩陣160~16N是否正常。
第2圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。在步驟S200中,控制器120接收來自主機200所傳送之至少一讀取指令,用以讀取快閃記憶體140所儲存之資料。在步驟S202中,控制器120判斷上述讀取指令之長度是否大於第一預設值。如果上述讀取指令之長度大於第一預設值,控制器120將讀取指令配置於連續佇列(sequential queue);如果上述讀取指令之長度沒有大於第一預設值,控制器120將讀取指令配置於隨機佇列(random queue)。
由此可知,連續佇列係依據主機200傳送指令之順序,儲存了1個或多個長度大於第一預設值之讀取指令。隨機佇列係依據主機200傳送指令之順序,儲存了1個或多個長度小於或等於第一預設值之讀取指令。在一實施例中,上述第一預設值為4Kbytes。要注意的是,上述第一預設值之數值僅作為說明之用,而非用以限制本發明。本發明所提供之資料儲存裝置100可依據其他記憶體規範或是使用環境,選擇其他數值作 為上述第一預設值。
然後,在步驟S204中,控制器120執行隨機佇列中的讀取指令。換言之,資料儲存裝置100係優先執行隨機佇列中的讀取指令,再執行連續佇列中的讀取指令。在步驟S206中,控制器120檢測是否接收到來自主機200之第二讀取指令。因此,每當控制器120執行完一個讀取指令後,就會檢測是否接收到主機200所傳送之另一個讀取指令(第二讀取指令),以即時調整與分配資料儲存裝置100之存取運作。
如果控制器120沒有接收到來自主機200之第二讀取指令,則繼續執行步驟S206。如果控制器120接收到來自主機200之第二讀取指令,則執行步驟S208,控制器120依據第二讀取指令之長度,將第二讀取指令配置於隨機佇列或連續佇列。上述判斷指令長度以及分配到隨機佇列或連續佇列之方法如步驟S202所述,故此處不再贅述。
在步驟S210中,控制器120檢測隨機佇列是否具有尚未執行之讀取指令。如果隨機佇列具有尚未執行之讀取指令,則流程回到步驟S204,控制器120再次執行隨機佇列中的讀取指令。如果隨機佇列沒有尚未執行之讀取指令,則執行步驟S212,控制器120執行連續佇列之讀取指令。換言之,當隨機佇列具有尚未執行之讀取指令時,控制器120繼續執行隨機佇列中之讀取指令,直到隨機佇列沒有尚未執行之該讀取指令為止,然後控制器120才開始執行連續佇列之讀取指令。
在另一實施例中,控制器120執行隨機佇列中之讀取指令之次數係小於或等於一第二預設值。詳細而言,當控制 器120執行隨機佇列中之讀取指令之次數大於第二預設值時,控制器120停止執行隨機佇列中之讀取指令,並且開始執行連續佇列中之讀取指令。舉例而言,上述第二預設值為16。如果控制器120連續執行隨機佇列中的16個讀取指令時,即使隨機佇列中還有尚未執行的讀取指令,控制器120仍停止執行隨機佇列中的讀取指令,開始執行連續佇列中之讀取指令。
藉由上述第二預設值的設定,能夠強制控制器120開始執行連續佇列之讀取指令,以避免連續佇列中的讀取指令被擱置太久,影響到主機200對於資料的讀取。詳細而言,上述第二預設值之設定係關聯於主機200的運作速度。當主機200的運作速度越快,則第二預設值的數值越小。
然後,在步驟S214中,控制器120檢測是否接收到來自主機200之第三讀取指令,以即時調整與分配資料儲存裝置100之存取運作。如果控制器120沒有接收到來自主機200之第三讀取指令,則繼續執行步驟S214。如果控制器120接收到來自主機200之第三讀取指令,則執行步驟S216,控制器120依據第三讀取指令之長度,將第三讀取指令配置於隨機佇列或連續佇列。上述判斷指令長度以及分配到隨機佇列或連續佇列之方法如步驟S202所述,故此處不再贅述。然後,執行步驟S204,控制器120優先執行隨機佇列中的讀取指令,再執行連續佇列中的讀取指令。
要注意的是,上述實施例主要係說明主機200傳送的指令為讀取指令時的狀況。在其他實施例中,如果主機200所傳送的是寫入指令,用以將資料寫入快閃記憶體160,亦適 用於本發明所提供之資料儲存裝置與資料儲存方法。詳細而言,控制器120判斷上述寫入指令之長度是否大於第一預設值,如果寫入指令之長度大於該第一預設值,則控制器120將該寫入指令配置於連續佇列。如果寫入指令之長度並未大於第一預設值,則控制器120將該寫入指令配置於隨機佇列。控制器優先執行隨機佇列中的寫入指令,然後再執行連續佇列中的寫入指令。
在一實施例中,如果控制器120接收到主機200之讀取指令與寫入指令時,則控制器120執行指令的順序為:隨機佇列中的讀取指令、連續佇列中的讀取指令、隨機佇列中的寫入指令、以及連續佇列中的寫入指令。一般而言,寫入資料所耗費的時間,會大於讀取資料所需要的時間。因此,本發明之資料儲存裝置100係優先處理讀取指令,再處理寫入指令,以提升資料處理裝置100的運作效率。
第3圖係顯示根據本發明另一實施例所述之資料儲存方法之流程圖。此實施例中係用以說明當隨機佇列具有複數個讀取指令時,控制器120分配該等讀取指令之執行順序的方法。首先,在步驟S300,控制器120判斷在隨機佇列中,是否具有關於快取隨機存取記憶體180之資料之讀取指令。亦即,上述讀取指令是否涉及讀取隨即存取記憶體180所儲存之資料。
如果沒有關於快取隨機存取記憶體180之資料之讀取指令,則執行步驟S304。如果有關於快取隨機存取記憶體180之資料之讀取指令,則執行步驟S302,控制器120執行關於 快取隨機存取記憶體180之資料之讀取指令。然後,在步驟S304中,控制器120評估複數個儲存矩陣160~16N與控制器120之間的複數個通道之空閒狀況。在步驟S306中,控制器120依據上述通道之空閒狀況,執行所對應之通道為空閒之讀取指令。換言之,當控制器120偵測出某個通道正在進行資料傳輸(亦即非空閒的狀態),會避免執行需要該通道之讀取指令,以避免發生通道雍塞的狀況而影響資料儲存裝置100的效能。
第4圖係顯示根據本發明一實施例所述之以表格DT儲存讀取指令及其相關資訊之示意圖。在此實施例中,表格DT紀錄了隨機佇列中的複數個讀取指令#1~#6及其對應位址之相關資訊。如第4圖所示,讀取指令#0所欲讀取之資料係儲存於儲存矩陣160(亦即CE0),讀取指令#1所欲讀取之資料也是儲存於儲存矩陣160(亦即CE0),讀取指令#2所欲讀取之資料係儲存於隨機存取記憶體180(亦即RAM)。上述讀取指令#1~#6係依序配置於隨機佇列中。因此,若不考慮其資料儲存之位址資訊,控制器120係依序執行讀取指令#1~#6。
在一實施例中,控制器120優先執行關於快取隨機存取記憶體180之資料之讀取指令。因此,控制器120先執行第4圖之讀取指令#3與讀取指令#6。然後,依照表格DT所顯示之隨機佇列之順序,控制器120執行讀取指令#1。要注意的是,由於讀取指令#2之對應位址與讀取指令#1相同,表示CE0與控制器120之間的通道已先被讀取指令#1所佔用。因此,考量到通道之空閒狀態,控制器120在執行讀取指令#1後,係執行讀取指令#4,而不是執行讀取指令#2,以增進資料處理裝置100 的運作效能。
藉由本發明所提出之資料儲存方法及其資料儲存裝置,能夠檢測讀取指令之長度,並且將讀取指令配置於隨機佇列或是連續佇列。詳細而言,資料儲存裝置係優先執行隨機佇列中的讀取指令,並且以表格化方式及時且動態更新隨機佇列與連續佇列的狀況,因此能夠對於不同長度的讀取指令進行排序以及優化處理,以確保資料存取之效能與可靠度。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
在本說明書以及申請專利範圍中的序數,例如「第一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之 申請專利範圍所界定者為準。

Claims (18)

  1. 一種資料儲存裝置,包括:一快閃記憶體,用以儲存至少一資料;以及一控制器,耦接該快閃記憶體,用以接收來自一主機所傳送之至少一讀取指令,並且依據該讀取指令讀取該快閃記憶體所儲存之該資料,其中:該控制器判斷該讀取指令之長度是否大於一第一預設值,如果該長度大於該第一預設值,則該控制器將該讀取指令配置於一連續佇列,如果該長度並未大於該第一預設值,則該控制器將該讀取指令配置於一隨機佇列,並且該控制器優先執行該隨機佇列中的該讀取指令。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中:在該控制器優先執行該隨機佇列中的該讀取指令之後,該控制器檢測是否接收到來自主機之一第二讀取指令,並且該控制器依據該第二讀取指令之長度,將該第二讀取指令配置於該隨機佇列或該連續佇列。
  3. 如申請專利範圍第1項所述之資料儲存裝置,其中:在該控制器優先執行該隨機佇列中的該讀取指令之後,該控制器檢測該隨機佇列是否具有尚未執行之該讀取指令。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中:當該隨機佇列具有尚未執行之該讀取指令時,該控制器繼續執行該隨機佇列中之該讀取指令,直到該隨機佇列沒有尚未執行之該讀取指令為止,然後該控制器開始執行該連續佇列之該讀取指令。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中:該控制器執行該隨機佇列中之該讀取指令之次數係小於或等於一第二預設值,並且當該控制器執行該隨機佇列中之該讀取指令之次數大於該第二預設值時,該控制器停止執行該隨機佇列中之該讀取指令,以及開始執行該連續佇列中之該讀取指令。
  6. 如申請專利範圍第5項所述之資料儲存裝置,其中:在該控制器執行該連續佇列中的該讀取指令之後,該控制器檢測是否接收到來自主機之一第三讀取指令,並且該控制器依據該第三讀取指令之長度,將該第三讀取指令配置於該隨機佇列或該連續佇列。
  7. 如申請專利範圍第1項所述之資料儲存裝置,其中:該第一預設值為通用快閃記憶體(UFS)之最小儲存單位。
  8. 如申請專利範圍第4項所述之資料儲存裝置,其中該資料儲存裝置更包括一隨機存取記憶體,用以暫存或是快取該資料,其中:當該隨機佇列之具有複數個該讀取指令時,該控制器優先執行有關於快取該隨機存取記憶體之該資料之該讀取指令。
  9. 如申請專利範圍第8項所述之資料儲存裝置,其中該快閃記憶體包括複數個儲存矩陣(plane),該等儲存矩陣之每一者包括複數個區塊(block),並且該等複數矩陣之每一者係分別藉由一通道耦接該控制器,其中:該控制器執行有關於快取該隨機存取記憶體之該資料之該讀取指令後,該控制器依據該等通道之空閒狀況,執行所對 應之該通道為空閒之該讀取指令。
  10. 一種用於優化資料儲存裝置之資料儲存方法,該資料儲存裝置具有一快閃記憶體、一控制器以及一隨機存取記憶體,其中該快閃記憶體包括複數個儲存矩陣(plane),並且該等儲存矩陣之每一者包括複數個區塊(block),該等複數矩陣之每一者係分別藉由一通道耦接該控制器,該快閃記憶體儲存至少一資料,該資料儲存方法包括:接收來自一主機所傳送之至少一讀取指令,其中該讀取指令係用以讀取該快閃記憶體所儲存之該資料;判斷該讀取指令之長度是否大於一第一預設值,如果該長度大於該第一預設值,則該控制器將該讀取指令配置於一連續佇列,如果該長度並未大於該第一預設值,則該控制器將該讀取指令配置於一隨機佇列;以及優先執行該隨機佇列中的該讀取指令。
  11. 如申請專利範圍第10項所述之用於優化資料儲存裝置之資料儲存方法,更包括:在優先執行該隨機佇列中的該讀取指令之後,檢測是否接收到來自主機之一第二讀取指令;以及依據該第二讀取指令之長度,將該第二讀取指令配置於該隨機佇列或該連續佇列。
  12. 如申請專利範圍第10項所述之用於優化資料儲存裝置之資料儲存方法,更包括:在優先執行該隨機佇列中的該讀取指令之後,檢測該隨機佇列是否具有尚未執行之該讀取指令。
  13. 如申請專利範圍第12項所述之用於優化資料儲存裝置之資料儲存方法,更包括:當該隨機佇列具有尚未執行之該讀取指令時,繼續執行該隨機佇列中之該讀取指令,直到該隨機佇列沒有尚未執行之該讀取指令為止;以及開始執行該連續佇列之該讀取指令。
  14. 如申請專利範圍第13項所述之用於優化資料儲存裝置之資料儲存方法,其中:執行該隨機佇列中之該讀取指令之次數係小於或等於一第二預設值,並且當執行該隨機佇列中之該讀取指令之次數大於該第二預設值時,停止執行該隨機佇列中之該讀取指令,以及開始執行該連續佇列中之該讀取指令。
  15. 如申請專利範圍第14項所述之用於優化資料儲存裝置之資料儲存方法,更包括:在執行該連續佇列中的該讀取指令之後,該控制器檢測是否接收到來自主機之一第三讀取指令,並且依據該第三讀取指令之長度,將該第三讀取指令配置於該隨機佇列或該連續佇列。
  16. 如申請專利範圍第10項所述之用於優化資料儲存裝置之資料儲存方法,其中:該第一預設值為通用快閃記憶體(UFS)之最小儲存單位。
  17. 如申請專利範圍第13項所述之用於優化資料儲存裝置之資料儲存方法,其中:當該隨機佇列之具有複數個該讀取指令時,優先執行有關 於快取該隨機存取記憶體之該資料之該讀取指令。
  18. 如申請專利範圍第17項所述之用於優化資料儲存裝置之資料儲存方法,更包括:在執行有關於快取該隨機存取記憶體之該資料之該讀取指令後,依據該等通道之空閒狀況,執行所對應之該通道為空閒之該讀取指令。
TW106128933A 2017-08-25 2017-08-25 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置 TWI621021B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106128933A TWI621021B (zh) 2017-08-25 2017-08-25 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置
US15/863,449 US10528289B2 (en) 2017-08-25 2018-01-05 Data storage method for optimizing data storage device and its data storage device
CN201810208664.5A CN109426445B (zh) 2017-08-25 2018-03-14 用以优化数据储存装置的数据储存方法及其数据储存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106128933A TWI621021B (zh) 2017-08-25 2017-08-25 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置

Publications (2)

Publication Number Publication Date
TWI621021B true TWI621021B (zh) 2018-04-11
TW201913395A TW201913395A (zh) 2019-04-01

Family

ID=62639892

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106128933A TWI621021B (zh) 2017-08-25 2017-08-25 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置

Country Status (3)

Country Link
US (1) US10528289B2 (zh)
CN (1) CN109426445B (zh)
TW (1) TWI621021B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI657336B (zh) * 2017-08-28 2019-04-21 慧榮科技股份有限公司 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置
KR102551730B1 (ko) * 2018-10-22 2023-07-06 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN114242122A (zh) * 2021-12-07 2022-03-25 深圳市富迪微科技有限公司 一种读取效率高的ssd硬盘及控制系统
CN118656032A (zh) * 2024-08-19 2024-09-17 珠海妙存科技有限公司 存储器读任务的处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW446150U (en) * 1994-09-30 2001-07-11 Intel Corp Instruction length decoder for variable length instructions
CN1516030A (zh) * 2003-01-15 2004-07-28 威盛电子股份有限公司 重排多个数据存取指令的方法与装置
US20140189247A1 (en) * 2012-12-28 2014-07-03 Christopher J Hughes Apparatus and method for implementing a scratchpad memory
TW201633138A (zh) * 2015-03-06 2016-09-16 愛思開海力士有限公司 記憶體系統及其操作方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553476B1 (en) * 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
CN101340569A (zh) * 2007-07-06 2009-01-07 扬智科技股份有限公司 高速缓存及其数据处理方法
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
DE102012022728A1 (de) * 2012-11-21 2014-05-22 Unify Gmbh & Co. Kg Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens
US9563551B2 (en) * 2013-06-20 2017-02-07 Silicon Motion, Inc. Data storage device and data fetching method for flash memory
US9509771B2 (en) * 2014-01-14 2016-11-29 International Business Machines Corporation Prioritizing storage array management commands
KR102320864B1 (ko) * 2015-03-24 2021-11-03 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW446150U (en) * 1994-09-30 2001-07-11 Intel Corp Instruction length decoder for variable length instructions
CN1516030A (zh) * 2003-01-15 2004-07-28 威盛电子股份有限公司 重排多个数据存取指令的方法与装置
US20140189247A1 (en) * 2012-12-28 2014-07-03 Christopher J Hughes Apparatus and method for implementing a scratchpad memory
TW201633138A (zh) * 2015-03-06 2016-09-16 愛思開海力士有限公司 記憶體系統及其操作方法

Also Published As

Publication number Publication date
CN109426445B (zh) 2022-03-25
US10528289B2 (en) 2020-01-07
TW201913395A (zh) 2019-04-01
US20190065055A1 (en) 2019-02-28
CN109426445A (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
US10296231B2 (en) Data-storage device and data maintenance method thereof
TWI621021B (zh) 用以優化資料儲存裝置之資料儲存方法及其資料儲存裝置
US9110786B2 (en) Read operation prior to retrieval of scatter gather list
KR102395477B1 (ko) 호스트 메모리에 대한 메모리 액세스를 스케쥴링하는 장치 컨트롤러, 및 이를 포함하는 저장 장치
US10338846B2 (en) Method for reducing read buffer size requirements in NVMe based solid state drives
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
US20150212738A1 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
TWI684860B (zh) 用來進行讀取加速之方法以及資料儲存裝置及其控制器
TWI643065B (zh) 用於動態執行記憶體回收資料儲存裝置與操作方法
TWI657336B (zh) 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置
TWI710905B (zh) 資料儲存裝置及邏輯至物理位址映射表之載入方法
US9304900B2 (en) Data reading method, memory controller, and memory storage device
TWI446349B (zh) 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
TWI592866B (zh) 固態硬碟系統的原子寫入方法以及使用該方法的裝置
TW202101230A (zh) 資料儲存裝置與資料處理方法
US10055356B2 (en) Memory device and method for controlling memory device
US10296256B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
CN108628759B (zh) 乱序执行nvm命令的方法与装置
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system
US20230137938A1 (en) Method and apparatus for performing data access control of memory device with aid of predetermined command
TWI697778B (zh) 資料儲存裝置與資料處理方法
CN109388593B (zh) 进行动态资源管理的方法、记忆装置及记忆装置的控制器
TWI674531B (zh) 資料儲存裝置及操作該資料儲存裝置的方法
TWI653630B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
TWI673646B (zh) 資料儲存裝置與資料儲存方法