TWI684860B - 用來進行讀取加速之方法以及資料儲存裝置及其控制器 - Google Patents
用來進行讀取加速之方法以及資料儲存裝置及其控制器 Download PDFInfo
- Publication number
- TWI684860B TWI684860B TW107136132A TW107136132A TWI684860B TW I684860 B TWI684860 B TW I684860B TW 107136132 A TW107136132 A TW 107136132A TW 107136132 A TW107136132 A TW 107136132A TW I684860 B TWI684860 B TW I684860B
- Authority
- TW
- Taiwan
- Prior art keywords
- volatile memory
- controller
- command
- host
- data storage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種用來進行讀取加速之方法以及相關之資料儲存裝置及其控制器,其中該方法係可應用於該資料儲存裝置與該控制器。該方法可包含:從一主機接收一寫入指令,且依據該寫入指令對該複數個非揮發性記憶體元件中之一非揮發性記憶體元件進行編程;記錄對應於該寫入指令之操作指令相關資訊;當對應於該非揮發性記憶體元件之一佇列中存在具有高優先權之一讀取指令時,暫停對該非揮發性記憶體元件進行編程;執行該讀取指令;以及於執行該讀取指令之後,至少依據該操作指令相關資訊,繼續對該非揮發性記憶體元件進行編程。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來進行讀取加速之方法以及相關之資料儲存裝置及其控制器。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式資料儲存裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)被廣泛地實施於諸多應用中。因此,這些資料儲存裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之資料儲存裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保資料儲存裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的資料儲存裝置還是有不足之處。舉例來說,在發出檢查狀態指令之後,某一管理機制可能僅僅等待結果,且在一些指令被填入一個指令佇列之後,只能依序執行這些指令,這可造成資料儲存裝置無法處理急迫的指令。尤其,在資料儲存裝置正在對其內的某一個快閃記憶體元件進行編程(programming)的狀況下,當使用者想取得某資料、且該資料正好儲存於這個快閃記憶體元件中時,使用者只能等待,直到編程結束。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下提昇資料儲存裝置之效能。
本發明之一目的在於提供一種用來進行讀取加速之方法以及相關之資料儲存裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來進行讀取加速之方法以及相關之資料儲存裝置及其控制器,以
在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化(optimal)效能。
本發明之至少一實施例提供一種用來進行讀取加速之方法,其中該方法係可應用於一資料儲存裝置(尤其,其控制器)。該資料儲存裝置包含一非揮發性記憶體(non-volatile memory, NV memory),且該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),該方法可包含:從一主機(host device)接收一寫入指令,且依據該寫入指令對該複數個非揮發性記憶體元件中之一非揮發性記憶體元件進行編程(programming);記錄對應於該寫入指令之操作指令相關資訊(operation command-related information);當對應於該非揮發性記憶體元件之一佇列中存在具有高優先權之一讀取指令時,暫停(suspend)對該非揮發性記憶體元件進行編程;執行該讀取指令;以及於執行該讀取指令之後,至少依據該操作指令相關資訊,繼續對該非揮發性記憶體元件進行編程。
本發明之至少一實施例提供一種資料儲存裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含複數個非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作。該控制器可包含一處理電路,而該處理電路可依據來自一主機的複數個主機指令控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體。例如:該控制器從該主機接收一寫入指令,且依據該寫入指令對該複數個非揮發性記憶體元件中之一非揮發性記憶體元件進行編程,其中該寫入指令是該複數個主機指令中之一主機指令;該控制器記錄對應於該寫入指令之操作指令相關資訊;當對應於該非揮發性記憶體元件之一佇列中存在具有高優先權之一讀取指令時,該控制器暫停對該非揮發性記憶體元件進行編程,其中該讀取指令是該複數個主機指令中之另一主機指令;該控制器執行該讀取指令;以及於執行該讀取指令之後,該控制器至少依據該操作指令相關資訊,繼續對該非揮發性記憶體元件進行編程。
本發明之至少一實施例提供一種資料儲存裝置之控制器,其中該資料儲存裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含複數個非揮發性記憶體元件。該控制器可包含一處理電路,而該處理電路可依據來自一主機的複數個主機指令控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器從該主機接收一寫入指令,且依據該寫入指令對該複數個非揮發性記憶體元件中之一非揮發性記憶體元件進行編程,其中該寫入指令是該複數個主機指令中之一主機指令;該控制器記錄對應於該寫入指令之操作指令相關資訊;當對應於該非揮發性記憶體元件之一佇列中存在具有高優先權之一讀取指令時,該控制器暫停對該非揮發性記憶體元件進行編程,其中該讀取指令是該複數個主機指令中之另一主機指令;該控制器執行該讀取指令;以及於執行該讀取指令之後,該控制器至少依據該操作指令相關資訊,繼續對該非揮發性記憶體元件進行編程。
本發明的好處之一是,透過佇列管理及編程中斷管理,本發明能針對該控制器的運作進行妥善的控制,以避免資料儲存裝置的反應因編程而變慢。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化效能。
請參考第1圖,第1圖為依據本發明一第一實施例之一種資料儲存裝置100與一主機(host device)50的示意圖。例如:資料儲存裝置100可為一可攜式資料儲存裝置(例如:符合SD/MMC、CF、MS、或XD標準之記憶卡)或固態硬碟(solid state drive, SSD)。另外,主機50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)、以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。依據本實施例,資料儲存裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory, NV memory)120,其中該控制器係用來存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含複數個非揮發性記憶體元件(NV memory element)122-1、122-2、…與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、…與122-N可分別為複數個快閃記憶體晶片(Flash memory chip;可簡稱為快閃晶片)或複數個快閃記憶體裸晶(Flash memory die;可簡稱為快閃裸晶),但本發明並不限於此。
如第1圖所示,記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如一唯讀記憶體(read only memory, ROM)112M、控制邏輯電路114、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116係以隨機存取記憶體(random access memory, RAM)來實施。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含一錯誤更正碼電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment, SATA)標準、通用序列匯流排(Universal Serial Bus, USB)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準或非揮發性記憶體快捷(Non-Volatile Memory Express,NVME))且可依據該特定通訊標準進行通訊。尤其,控制邏輯電路114可包含佇列控制電路114Q。例如,佇列控制電路114Q可包含分別對應於非揮發性記憶體元件122-1、122-2、…與122-N之多組佇列,但本發明不限於此。
於本實施例中,主機50可藉由傳送複數個主機指令(Host Command)與對應的邏輯位址(Logical Address)予記憶體控制器110來間接地存取資料儲存裝置100中之非揮發性記憶體120。記憶體控制器110接收該複數個主機指令與邏輯位址,並將該複數個主機指令分別轉譯成記憶體操作指令(簡稱操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(Write)/編程(Program)非揮發性記憶體120當中特定物理位址(Physical Address)之記憶單位(Memory Unit)或資料頁(Page),其中物理位址對應於邏輯位址。例如,針對非揮發性記憶體元件122-1、122-2、…與122-N中之任一非揮發性記憶體元件122-n(符號「n」可代表區間[1, N]中之任一整數)的存取,該多組佇列中之一對應組的佇列可分別用來佇列操作指令,以操作非揮發性記憶體元件122-n。
第2圖為依據本發明一實施例之一種用來進行讀取加速之方法的佇列控制方案。佇列控制電路114Q可包含仲裁器200、一般佇列群210與高優先權佇列群220,尤其,一般佇列群210可包含一個以上的,例如:N個佇列,即佇列Q1(1)、Q1(2)、…與Q1(N),而高優先權佇列群220可包含一個以上的,例如:N個佇列,即佇列Q2(1)、Q2(2)、…與Q2(N)。如第2圖所示,仲裁器200可於一般佇列群210中進行切換以輪流地執行分別佇列於佇列Q1(1)、Q1(2)、…與Q1(N)之操作指令,且可於高優先權佇列群220中進行切換以輪流地執行分別佇列於佇列Q2(1)、Q2(2)、…與Q2(N)之操作指令。其中,仲裁器200可依序切換或給予每一佇列不同的權重,再依權重的大小而在佇列之間依序切換。另外,一般佇列群210與高優先權佇列群220的組合中之N組佇列{Q1(1), Q2(1)}、{Q1(2), Q2(2)}、…與{Q1(N), Q2(N)}可分別作為上述多組佇列的例子,其中該N組佇列{Q1(1), Q2(1)}、{Q1(2), Q2(2)}、…與{Q1(N), Q2(N)}分別對應於非揮發性記憶體元件122-1、122-2、…與122-N。仲裁器200可控制高優先權佇列群220具有比一般佇列群210更高的優先權。當高優先權佇列群220中存在任何操作指令時,若有必要,記憶體控制器110可暫停進行一般佇列群210中之操作指令之運作。
依據本實施例,該複數個主機指令可包含寫入指令與讀取指令。當接收到該複數個主機指令中之一主機指令時,記憶體控制器110(例如其內的微處理器112)可將對應於這個主機指令之一或多個操作指令填入某一個佇列,諸如對應於非揮發性記憶體元件122-n之一組佇列{Q1(n), Q2(n)}中之某一個佇列(諸如佇列Q1(n)或Q2(n)),以於非揮發性記憶體元件122-n中存取(例如讀取或寫入)資料。為了便於理解,假設記憶體控制器110從主機50接收到一第一主機指令諸如一寫入指令,且於執行該第一主機指令的期間從主機50接收到一第二主機指令諸如一讀取指令,其中該第一主機指令的運作並不急迫,該第二主機指令的運作急迫,並且這些運作都涉及非揮發性記憶體120中之同一個非揮發性記憶體元件,諸如非揮發性記憶體元件122-n,但本發明不限於此。
當接收到該第一主機指令諸如該寫入指令時,記憶體控制器110(例如其內的微處理器112)可將對應於該第一主機指令之一第一操作指令填入一般佇列群210中之佇列Q1(n),以將資料寫入非揮發性記憶體元件122-n。例如,在一第一時間點,該第一操作指令可位於佇列Q1(n)的開頭,且記憶體控制器110可透過控制邏輯電路114將該第一操作指令傳送至非揮發性記憶體元件122-n,以將資料寫入非揮發性記憶體元件122-n。另外,當接收到該第二主機指令諸如該讀取指令時,記憶體控制器110(例如其內的微處理器112)可將對應於該第二主機指令之一第二操作指令填入高優先權佇列群220中之佇列Q2(n),以從非揮發性記憶體元件122-n讀取資料。由於高優先權佇列群220具有比一般佇列群210更高的優先權、且該組佇列{Q1(n), Q2(n)}分別屬於一般佇列群210與高優先權佇列群220,故佇列Q2(n)具有比佇列Q1(n)更高的優先權。當佇列Q2(n)中存在該第二操作指令時,記憶體控制器110可暫停進行佇列Q1(n)中之該第一操作指令之運作。例如,在一第二時間點(其在該第一時間點之後),該第二操作指令位於佇列Q2(n)的開頭,且記憶體控制器110可透過控制邏輯電路114將該第二操作指令傳送至非揮發性記憶體元件122-n,以從非揮發性記憶體元件122-n讀取資料。假設於這個讀取運作完成之後,佇列Q2(n)中不存在任何操作指令。此狀況下,記憶體控制器110可繼續進行佇列Q1(n)中之該第一操作指令之運作。
依據某些實施例,由於記憶體控制器110可將該第一主機指令諸如該寫入指令以及該第二主機指令諸如該讀取指令分別轉換為該第一操作指令與該第二操作指令,故該第一操作指令可代表該第一主機指令諸如該寫入指令,且該第二操作指令可代表該第二主機指令諸如該讀取指令,但本發明不限於此。
依據某些實施例,記憶體控制器110從主機50接收該寫入指令,且依據該寫入指令對非揮發性記憶體元件122-n進行編程,並且記錄對應於該寫入指令之操作指令相關資訊(operation command-related information),其中該操作指令相關資訊可包含至少一參數(例如一或多個參數,其可關聯於該第一操作指令),且可另包含至少一物理位址(例如一或多個物理位址,其可關聯於該第一操作指令)與資料,但本發明不限於此。舉例來說,該操作指令相關資訊可包含一或多個平面編號(plane number)、一或多個物理區塊位址(physical block address)、及/或一或多個物理頁位址(physical page address)。另外,當對應於非揮發性記憶體元件122-n之佇列Q2(n)中存在具有高優先權之指令諸如該讀取指令時,記憶體控制器110可暫停對非揮發性記憶體元件122-n進行編程、且可執行該讀取指令,並且於執行該讀取指令之後,至少依據該操作指令相關資訊,繼續對非揮發性記憶體元件122-n進行編程。由於該讀取指令位於佇列Q2(n)(其優先權高於佇列Q1(n)),故可視為具有高優先權之指令。
第3圖繪示該方法於一實施例中之工作流程300。例如:在該處理電路諸如微處理器112的控制下,該控制器諸如記憶體控制器110可進行工作流程300的運作。
於步驟S30中,記憶體控制器110可從主機50接收一寫入指令(諸如上述之寫入指令),且依據該寫入指令進行編程。舉例來說,記憶體控制器110可將該寫入指令轉換為對應的操作指令諸如該第一操作指令、且將該第一操作指令佇列於佇列Q1(n),並且傳送該第一操作指令至非揮發性記憶體元件122-n以進行編程,以將資料寫入非揮發性記憶體元件122-n。
於步驟S31中,記憶體控制器110可記錄關於該寫入指令之參數、資料與位址。依據本實施例,記憶體控制器110可於步驟S30中傳送該第一操作指令以及對應於該寫入指令之該操作指令相關資訊(諸如上述至少一參數、上述資料與上述至少一物理位址)至非揮發性記憶體元件122-n以進行編程,並且於步驟S31中記錄該操作指令相關資訊,但本發明不限於此。於某些實施例中,記憶體控制器110可先記錄該操作指令相關資訊,然後傳送該第一操作指令以及該操作指令相關資訊至非揮發性記憶體元件122-n以進行編程。
於步驟S32中,記憶體控制器110可檢查佇列Q2(n)中是否存在具有高優先權之一讀取指令(諸如上述之讀取指令)。當佇列Q2(n)中存在該讀取指令,進入步驟S33;否則,進入步驟S36。
於步驟S33中,針對非揮發性記憶體元件122-n,記憶體控制器110可暫停編程,且記錄一暫停位置。例如,該暫停位置可代表步驟S30之編程運作被暫停的位置,諸如目前已編程的最後位置,但本發明不限於此。於某些實施例中,該暫停位置可代表該最後位置的下一個位置。
於步驟S34中,記憶體控制器110可執行該讀取指令。舉例來說,記憶體控制器110可將該讀取指令轉換為對應的操作指令諸如該第二操作指令、且將該第二操作指令佇列於佇列Q2(n),並且傳送該第二操作指令至非揮發性記憶體元件122-n以從非揮發性記憶體元件122-n讀取資料。
於步驟S35中,記憶體控制器110可依據先前記錄之參數、資料與位址以及該暫停位置,繼續進行編程。依據本實施例,記憶體控制器110可從該暫停位置之後的某個位置(例如該最後位置的下一個位置)繼續對非揮發性記憶體元件122-n進行編程,但本發明不限於此。
於步驟S36中,記憶體控制器110可檢查是否已完成編程。當完成編程,結束工作流程300;否則,進入步驟S32。
為了更好地理解,該方法可用第3圖所示工作流程300來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於工作流程300中增加、刪除或修改。
依據某些實施例,記憶體控制器110可於步驟S30中傳送該第一操作指令及該操作指令相關資訊至非揮發性記憶體元件122-n以將資料寫入非揮發性記憶體元件122-n,尤其,基於下列格式: 80h-ADDRESS(1)-DATA-00h; 其中十六進位數值80h與00h可代表的預定指令,ADDRESS(1)可代表物理位址(其可指出於非揮發性記憶體元件122-n中寫入資料之位置),並且DATA可代表資料,但本發明不限於此。另外,記憶體控制器110可於步驟S33中傳送其它操作指令至非揮發性記憶體元件122-n以暫停編程,尤其,基於下列格式: 84h-ADDRESS(1)-00h; 其中十六進位數值84h可代表一預定指令,但本發明不限於此。此外,記憶體控制器110可於步驟S34中傳送該第二操作指令及其相關資訊至非揮發性記憶體元件122-n以從非揮發性記憶體元件122-n讀取資料,尤其,基於下列格式: 00h-ADDRESS(2)-30h; 其中ADDRESS(2)可代表物理位址(其可指出於非揮發性記憶體元件122-n中儲存有所讀取資料之位置),十六進位數值30h可代表的預定指令,但本發明不限於此。舉例來說,一物理位址(諸如物理位址ADDRESS(1)與ADDRESS(2))可包含下列格式的位址資訊: {CE#, PLANE#, BLK#, PAGE#, OFFSET}; 其中CE#、PLANE#、BLK#、PAGE#以及OFFSET可分別代表快閃裸晶編號(Flash die number)、平面編號、物理區塊位址、物理頁位址以及偏移量,且它們中之每一者可包含一個位元,但本發明不限於此。於某些實施例中,偏移量OFFSET僅存在於讀取資料時,在進行資料編程時可予以省略,但本發明不限於此。
針對記憶體控制器110中之佇列管理與相關控制的某些實施細節可說明如下。依據某些實施例,於將該第二主機指令諸如該讀取指令轉換為該第二操作指令之後,記憶體控制器110(例如微處理器112)可查詢(Poll)非揮發性記憶體元件122-n是否處於空閒狀態(free state)。當非揮發性記憶體元件122-n並非處於空閒狀態(free state)時,即處於忙碌(Busy)狀態時,記憶體控制器110(例如微處理器112)可查詢非揮發性記憶體元件122-n是否處於編程狀態,例如,若是,另檢查一第一旗標的狀態以進行進一步處理,否則,將第二操作指令填入一緩衝佇列Q0(n)(未顯示)。若該第一旗標已被設定(例如,邏輯值“1”),則記憶體控制器110(例如微處理器112)可將第二操作指令暫時地填入緩衝佇列Q0(n),以供下次進行檢查非揮發性記憶體元件122-n是否處於空閒狀態之運作時重新處理,否則(亦即,該第一旗標未被設定,例如,邏輯值“0”),記憶體控制器110(例如微處理器112)可將該第二操作指令填入佇列Q2(n)、且設定第一旗標(設定為邏輯值“1”)。當非揮發性記憶體元件122-n處於空閒狀態時,記憶體控制器110(例如微處理器112)也可以將第二操作指令填入佇列Q2(n)、且設定第一旗標(設定為邏輯值“1”)。於是,記憶體控制器110可依據第一旗標進行管理,且可針對對應於任何其它讀取指令之操作指令進行類似的運作,但本發明不限於此。例如,於進行其它相關運作時,記憶體控制器110可參考第一旗標,並且,若有必要,可修改該第一旗標(例如,設定為邏輯值“1”,或取消設定至邏輯值“0”)以進行對應的管理。
另外,記憶體控制器110可傳送一預定指令70h至非揮發性記憶體元件122-n以查詢非揮發性記憶體元件122-n的狀態。例如,在基於格式「84h-ADDRESS(1)-00h」暫停編程以後且在基於格式「00h-ADDRESS(2)-30h」傳送該第二操作指令及其相關資訊至非揮發性記憶體元件122-n以前,記憶體控制器110可透過預定指令70h查詢非揮發性記憶體元件122-n的狀態,以判斷非揮發性記憶體元件122-n是否已處於暫停編程的狀態,尤其,若是,傳送該第二操作指令及其相關資訊,否則,等待一小段時間且再重複此檢查運作。又例如,在基於格式「00h-ADDRESS(2)-30h」傳送該第二操作指令及其相關資訊至非揮發性記憶體元件122-n以後,記憶體控制器110可透過預定指令70h查詢非揮發性記憶體元件122-n的狀態,以判斷非揮發性記憶體元件122-n中之目標資料(諸如預計讀取的資料)是否已被搬移到非揮發性記憶體120之內部緩衝器(諸如頁緩衝器),尤其,若是,讀出該目標資料(例如透過預定指令05h-E0h)以將該目標資料暫時儲存於緩衝記憶體116,否則,等待一小段時間且再重複此檢查運作。於讀出該目標資料之後,記憶體控制器110可傳送一預定指令13h至非揮發性記憶體元件122-n以繼續進行編程,例如,另傳送預定指令70h至非揮發性記憶體元件122-n以查詢非揮發性記憶體元件122-n的狀態,以判斷是否完成編程,但本發明不限於此。 由於熟習此技藝者在閱讀上列實施例以後,應可了解本發明的方法應用於其它相關運作及管理的實施方式,故其細節不再贅述。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
50‧‧‧主機
100‧‧‧資料儲存裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯電路
114Q‧‧‧佇列控制電路
116‧‧‧緩衝記憶體
118‧‧‧傳輸介面電路
120‧‧‧非揮發性記憶體
122-1,122-2,…,122-N‧‧‧非揮發性記憶體元件
200‧‧‧仲裁器
210‧‧‧一般佇列群
220‧‧‧高優先權佇列群
Q1(1),Q1(2),…,Q1(N),Q2(1),Q2(2),…,Q2(N)‧‧‧佇列
300‧‧‧工作流程
S30,S31,S32,S33,S34,S35,S36‧‧‧步驟
第1圖為依據本發明一實施例之一種資料儲存裝置與一主機(host device)的示意圖。 第2圖為依據本發明一實施例之一種用來進行讀取加速之方法的佇列控制方案。 第3圖繪示該方法於一實施例中之工作流程。
300‧‧‧工作流程
S30,S31,S32,S33,S34,S35,S36‧‧‧步驟
Claims (15)
- 一種用來進行讀取加速之方法,可應用於(applicable to)一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),該方法包含有: 從一主機(host device)接收一寫入指令,且依據該寫入指令對該複數個非揮發性記憶體元件中之一非揮發性記憶體元件進行編程(programming); 記錄對應於該寫入指令之操作指令相關資訊(operation command-related information); 當對應於該非揮發性記憶體元件之一佇列中存在具有高優先權之一讀取指令時,暫停(suspend)對該非揮發性記憶體元件進行編程; 執行該讀取指令;以及 於執行該讀取指令之後,至少依據該操作指令相關資訊,繼續對該非揮發性記憶體元件進行編程。
- 如申請專利範圍第1項所述之方法,其中該操作指令相關資訊包含至少一參數。
- 如申請專利範圍第2項所述之方法,其中該操作指令相關資訊另包含至少一物理位址與資料。
- 如申請專利範圍第1項所述之方法,其中暫停對該非揮發性記憶體元件進行編程之步驟另包含: 當該佇列中存在該讀取指令時,暫停對該非揮發性記憶體元件進行編程,且記錄一暫停位置。
- 如申請專利範圍第4項所述之方法,其中繼續對該非揮發性記憶體元件進行編程之步驟另包含: 於執行該讀取指令之後,依據該操作指令相關資訊以及該暫停位置,繼續對該非揮發性記憶體元件進行編程。
- 一種資料儲存裝置,包含有: 一非揮發性記憶體(non-volatile memory, NV memory),用來儲存資訊,其中該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element);以及 一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作,其中該控制器包含: 一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收一寫入指令,且依據該寫入指令對該複數個非揮發性記憶體元件中之一非揮發性記憶體元件進行編程(programming),其中該寫入指令是該複數個主機指令中之一主機指令; 該控制器記錄對應於該寫入指令之操作指令相關資訊(operation command-related information); 當對應於該非揮發性記憶體元件之一佇列中存在具有高優先權之一讀取指令時,該控制器暫停(suspend)對該非揮發性記憶體元件進行編程,其中該讀取指令是該複數個主機指令中之另一主機指令; 該控制器執行該讀取指令;以及 於執行該讀取指令之後,該控制器至少依據該操作指令相關資訊,繼續對該非揮發性記憶體元件進行編程。
- 如申請專利範圍第6項所述之資料儲存裝置,其中該操作指令相關資訊包含至少一參數。
- 如申請專利範圍第7項所述之資料儲存裝置,其中該操作指令相關資訊另包含至少一物理位址與資料。
- 如申請專利範圍第6項所述之資料儲存裝置,其中當該佇列中存在該讀取指令時,該控制器暫停對該非揮發性記憶體元件進行編程,且記錄一暫停位置。
- 如申請專利範圍第9項所述之資料儲存裝置,其中於執行該讀取指令之後,該控制器依據該操作指令相關資訊以及該暫停位置,繼續對該非揮發性記憶體元件進行編程。
- 一種資料儲存裝置之控制器,該資料儲存裝置包含該控制器與一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),該控制器包含有: 一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器從該主機接收一寫入指令,且依據該寫入指令對該複數個非揮發性記憶體元件中之一非揮發性記憶體元件進行編程(programming),其中該寫入指令是該複數個主機指令中之一主機指令; 該控制器記錄對應於該寫入指令之操作指令相關資訊(operation command-related information); 當對應於該非揮發性記憶體元件之一佇列中存在具有高優先權之一讀取指令時,該控制器暫停(suspend)對該非揮發性記憶體元件進行編程,其中該讀取指令是該複數個主機指令中之另一主機指令; 該控制器執行該讀取指令;以及 於執行該讀取指令之後,該控制器至少依據該操作指令相關資訊,繼續對該非揮發性記憶體元件進行編程。
- 如申請專利範圍第11項所述之控制器,其中該操作指令相關資訊包含至少一參數。
- 如申請專利範圍第12項所述之控制器,其中該操作指令相關資訊另包含至少一物理位址與資料。
- 如申請專利範圍第11項所述之控制器,其中當該佇列中存在該讀取指令時,該控制器暫停對該非揮發性記憶體元件進行編程,且記錄一暫停位置。
- 如申請專利範圍第14項所述之控制器,其中於執行該讀取指令之後,該控制器依據該操作指令相關資訊以及該暫停位置,繼續對該非揮發性記憶體元件進行編程。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107136132A TWI684860B (zh) | 2018-10-15 | 2018-10-15 | 用來進行讀取加速之方法以及資料儲存裝置及其控制器 |
US16/251,034 US11294586B2 (en) | 2018-10-15 | 2019-01-17 | Method for performing read acceleration, associated data storage device and controller thereof |
CN201910388809.9A CN111045593B (zh) | 2018-10-15 | 2019-05-10 | 用来进行读取加速的方法以及数据存储装置及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107136132A TWI684860B (zh) | 2018-10-15 | 2018-10-15 | 用來進行讀取加速之方法以及資料儲存裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI684860B true TWI684860B (zh) | 2020-02-11 |
TW202016738A TW202016738A (zh) | 2020-05-01 |
Family
ID=70160081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107136132A TWI684860B (zh) | 2018-10-15 | 2018-10-15 | 用來進行讀取加速之方法以及資料儲存裝置及其控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11294586B2 (zh) |
CN (1) | CN111045593B (zh) |
TW (1) | TWI684860B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102680273B1 (ko) * | 2019-02-12 | 2024-07-01 | 삼성전자주식회사 | 서스펜드 모드를 제어하는 방법 및 이를 포함하는 메모리 컨트롤러 |
KR20210031266A (ko) * | 2019-09-11 | 2021-03-19 | 삼성전자주식회사 | 인터페이스 회로, 메모리 장치, 저장 장치 및 메모리 장치의 동작 방법 |
KR20220082563A (ko) * | 2020-12-10 | 2022-06-17 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
KR20220094726A (ko) * | 2020-12-29 | 2022-07-06 | 삼성전자주식회사 | 메모리 컨트롤러, 비휘발성 메모리 장치 및 그 스토리지 장치 |
KR20220135786A (ko) * | 2021-03-31 | 2022-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템에 포함된 복수의 메모리 장치에서 수행되는 동작에 대해 스케줄링하는 장치 및 방법 |
KR20220165563A (ko) * | 2021-06-08 | 2022-12-15 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN117406935B (zh) * | 2023-12-13 | 2024-02-20 | 苏州萨沙迈半导体有限公司 | 数据读取方法及装置、读写控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201227293A (en) * | 2004-05-03 | 2012-07-01 | Microsoft Corp | Method and system for non-volatile memory performance improvement |
US9910786B2 (en) * | 2015-11-03 | 2018-03-06 | Intel Corporation | Efficient redundant array of independent disks (RAID) write hole solutions |
US20180284871A1 (en) * | 2017-04-01 | 2018-10-04 | Intel Corporation | Shutting down gpu components in response to unchanged scene detection |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7562180B2 (en) * | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
WO2010143209A1 (en) * | 2009-06-10 | 2010-12-16 | Francesco Falanga | Suspension of memory operations for reduced read latency in memory arrays |
US8004884B2 (en) * | 2009-07-31 | 2011-08-23 | International Business Machines Corporation | Iterative write pausing techniques to improve read latency of memory systems |
JP5848153B2 (ja) * | 2012-02-17 | 2016-01-27 | ルネサスエレクトロニクス株式会社 | 信号処理装置及び半導体装置 |
US8904119B2 (en) * | 2012-10-31 | 2014-12-02 | Lsi Corporation | Method and structures for performing a migration of a logical volume with a serial attached SCSI expander |
US9645765B2 (en) * | 2015-04-09 | 2017-05-09 | Sandisk Technologies Llc | Reading and writing data at multiple, individual non-volatile memory portions in response to data transfer sent to single relative memory address |
TWI566253B (zh) * | 2015-09-02 | 2017-01-11 | 慧榮科技股份有限公司 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
US10423508B2 (en) * | 2017-08-11 | 2019-09-24 | Alibaba Group Holding Limited | Method and system for a high-priority read based on an in-place suspend/resume write |
KR20190090614A (ko) * | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
-
2018
- 2018-10-15 TW TW107136132A patent/TWI684860B/zh active
-
2019
- 2019-01-17 US US16/251,034 patent/US11294586B2/en active Active
- 2019-05-10 CN CN201910388809.9A patent/CN111045593B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201227293A (en) * | 2004-05-03 | 2012-07-01 | Microsoft Corp | Method and system for non-volatile memory performance improvement |
US9910786B2 (en) * | 2015-11-03 | 2018-03-06 | Intel Corporation | Efficient redundant array of independent disks (RAID) write hole solutions |
US20180284871A1 (en) * | 2017-04-01 | 2018-10-04 | Intel Corporation | Shutting down gpu components in response to unchanged scene detection |
Also Published As
Publication number | Publication date |
---|---|
CN111045593A (zh) | 2020-04-21 |
CN111045593B (zh) | 2023-03-31 |
US11294586B2 (en) | 2022-04-05 |
US20200117378A1 (en) | 2020-04-16 |
TW202016738A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI684860B (zh) | 用來進行讀取加速之方法以及資料儲存裝置及其控制器 | |
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
US10296231B2 (en) | Data-storage device and data maintenance method thereof | |
US10466903B2 (en) | System and method for dynamic and adaptive interrupt coalescing | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
TWI735918B (zh) | 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置 | |
TWI601060B (zh) | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 | |
US11126369B1 (en) | Data storage with improved suspend resume performance | |
US20210072922A1 (en) | Storage device and operating method thereof | |
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 | |
KR20100031132A (ko) | 플래시 메모리 시스템에서 페이징된 가비지 수집과 하우스 키핑 동작 | |
CN110895449B (zh) | 用于在存储器***中管理有效数据的装置和方法 | |
US10922013B2 (en) | Suspending and resuming a read operation for a non-volatile memory | |
US9733832B2 (en) | Buffer memory accessing method, memory controller and memory storage device | |
TW202038106A (zh) | 儲存裝置、儲存裝置的控制方法及記錄媒體 | |
TWI641988B (zh) | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
TWI644215B (zh) | 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器 | |
TWI725434B (zh) | 藉助於組態設定來進行動態節流控制之方法、具備計算機功能的主機、以及資料儲存裝置及其控制器 | |
US10310746B2 (en) | Method, associated memory device and controller thereof for performing dynamic resource management | |
US8713242B2 (en) | Control method and allocation structure for flash memory device | |
TW202125206A (zh) | 記憶體管理方法與記憶體裝置 | |
TWI805449B (zh) | 藉助於多階段垃圾收集管理以進行記憶體裝置的存取控制的方法、用於記憶體裝置的控制器、以及記憶體裝置 |