TWI636363B - 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 - Google Patents
用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 Download PDFInfo
- Publication number
- TWI636363B TWI636363B TW106126636A TW106126636A TWI636363B TW I636363 B TWI636363 B TW I636363B TW 106126636 A TW106126636 A TW 106126636A TW 106126636 A TW106126636 A TW 106126636A TW I636363 B TWI636363 B TW I636363B
- Authority
- TW
- Taiwan
- Prior art keywords
- queue
- descriptor
- entity region
- intermediate entity
- entity
- Prior art date
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
本發明提供一種用來於一記憶裝置中進行動態資源管理之方法以及該記憶裝置及其控制器。該方法可包含:分別儲存關於複數個主裝置指令之複數組實體區域描述符資訊,且將分別對應於該複數組實體區域描述符資訊之複數個中間實體區域描述符儲存進入一第一佇列;從該第一佇列取得該複數個中間實體區域描述符中之一中間實體區域描述符,且將該中間實體區域描述符儲存進入一第二佇列;依據該第二佇列中之該中間實體區域描述符,傳送一指令至該非揮發性記憶體,以存取資料;以及當存取成功,將該中間實體區域描述符從該第二佇列釋放至該第一佇列。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種用來於一記憶裝置中進行動態資源管理之方法以及相關之記憶裝置及其控制器。
近年來由於記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、或XD標準之記憶卡)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保可攜式記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,因應的某些類型的讀取(read)運作,記憶裝置中用來進行存取管理的硬體資源可能不敷使用而導致整體效能變差。因此,需要一種新穎的方法及記憶體存取架構,以在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置之最佳化(optimal)效能。
本發明之一目的在於提供一種用來於一記憶裝置中進行動態資源管理之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來於一記憶裝置中進行動態資源管理之方法以及相關之記憶裝置及其控制器,以在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置之最佳化(optimal)效能。
本發明之至少一實施例提供一種用來於一記憶裝置中進行動態資源管理之方法,其中該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory),且該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element)。例如,該方法可包含:分別儲存關於複數個主裝置指令(host command)之複數組實體區域描述符(physical region descriptor, PRD)資訊,且將分別對應於該複數組實體區域描述符資訊之複數個中間(intermediate)實體區域描述符儲存進入一第一佇列(queue),其中該複數個主裝置指令是接收自該記憶裝置以外,且該複數個中間實體區域描述符中之任一者包含該複數組實體區域描述符資訊中之一組的辨識符(identifier, ID);從該第一佇列取得該複數個中間實體區域描述符中之一中間實體區域描述符,且將該中間實體區域描述符儲存進入一第二佇列;依據該第二佇列中之該中間實體區域描述符,傳送一指令至該非揮發性記憶體,以存取(access)該複數個非揮發性記憶體元件之至少一非揮發性記憶體元件中之資料;以及當存取該資料之運作成功,將該中間實體區域描述符從該第二佇列釋放(release)至該第一佇列。
本發明之至少一實施例提供一種記憶裝置,其包含有:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含複數個非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之運作。例如:該控制器可包含一多佇列型(multi-queue type)實體區域描述符儲存模組,其可用來儲存至少一實體區域描述符,其中該多佇列型實體區域描述符儲存模組包含一實體區域描述符資訊暫存器、一第一佇列(queue)以及一第二佇列。另外,該控制器可另包含一處理電路,而該處理電路可用來依據來自一主裝置(host device)的複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。此外,該控制器於該實體區域描述符資訊暫存器中分別儲存關於該複數個主裝置指令之複數組實體區域描述符資訊,且將分別對應於該複數組實體區域描述符資訊之複數個中間實體區域描述符儲存進入該第一佇列,其中該複數個中間實體區域描述符中之任一者包含該複數組實體區域描述符資訊中之一組的辨識符。該控制器從該第一佇列取得該複數個中間實體區域描述符中之一中間實體區域描述符,且將該中間實體區域描述符儲存進入該第二佇列;依據該第二佇列中之該中間實體區域描述符,該控制器傳送一指令至該非揮發性記憶體,以存取該複數個非揮發性記憶體元件之至少一非揮發性記憶體元件中之資料。當存取該資料之運作成功,該控制器將該中間實體區域描述符從該第二佇列釋放至該第一佇列。
本發明之至少一實施例提供一種記憶裝置之控制器,其中該記憶裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含複數個非揮發性記憶體元件。例如,該控制器可包含一多佇列型實體區域描述符儲存模組,其可用來儲存至少一實體區域描述符,其中該多佇列型實體區域描述符儲存模組包含一實體區域描述符資訊暫存器、一第一佇列以及一第二佇列。另外,該控制器可另包含一處理電路,而該處理電路可用來依據來自一主裝置的複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。此外,該控制器於該實體區域描述符資訊暫存器中分別儲存關於該複數個主裝置指令之複數組實體區域描述符資訊,且將分別對應於該複數組實體區域描述符資訊之複數個中間實體區域描述符儲存進入該第一佇列,其中該複數個中間實體區域描述符中之任一者包含該複數組實體區域描述符資訊中之一組的辨識符。該控制器從該第一佇列取得該複數個中間實體區域描述符中之一中間實體區域描述符,且將該中間實體區域描述符儲存進入該第二佇列;依據該第二佇列中之該中間實體區域描述符,該控制器傳送一指令至該非揮發性記憶體,以存取該複數個非揮發性記憶體元件之至少一非揮發性記憶體元件中之資料。當存取該資料之運作成功,該控制器將該中間實體區域描述符從該第二佇列釋放至該第一佇列。
本發明的好處之一是,藉由適當地進行動態資源管理,本發明能針對該控制器的運作進行妥善的控制,以避免記憶裝置中用來進行存取管理的硬體資源不足。另外,依據本發明之相關實施例來實施並不會增加許多額外的成本,甚至比相關技術更能節省成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置之最佳化效能。
I. 記憶體系統
請參考第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、實體區域描述符(Physical Region Descriptor,PRD)儲存模組115、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過匯流排彼此耦接。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。實體區域描述符儲存模組115可用來儲存至少一實體區域描述符,且可用任何形式之記憶體(例如:該隨機存取記憶體及/或任何其它記憶體)來實施,但本發明不限於此。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含一錯誤更正碼電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment, SATA)標準、通用序列匯流排(Universal Serial Bus, USB)標準、或快捷外設互聯(Peripheral Component Interconnect Express, PCIE)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置50可藉由傳送主裝置指令(Host Command)與對應的邏輯位址予記憶體控制器110來間接地存取記憶裝置100。記憶體控制器110接收主裝置指令與邏輯位址,並將主裝置指令轉譯成記憶體操作指令(簡稱操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(Write)/編程(Program)非揮發性記憶體120當中特定實體位址之記憶單位(Memory Unit)或資料頁(Page),其中實體位址對應於邏輯位址。在下述說明中,將以非揮發性記憶體120的讀取操作為例進行說明,但本發明不以此為限。
II. 多佇列架構
記憶體控制器110可以佇列多個主裝置指令,並依序執行主裝置指令,最後,回傳操作結果至主裝置50。然而,主裝置指令的完成時間或成功與否可能與預期不符,如果於接收主裝置指令時即對主裝置指令預留系統資源,這可能造成系統資源的長期佔用及低效率。因此,本發明採用多佇列架構並賦予其每一佇列不同的功能,且於回傳操作結果至主裝置50時才佔用系統資源,如此一來,可有效地克服主裝置指令執行時所造成的問題。
第2圖繪示第1圖所示實體區域描述符儲存模組115於一實施例中之實施細節。實體區域描述符儲存模組115可包含實體區域描述符資訊(Physical Region Descriptor Information,PRD Information)暫存器210、第一佇列Queue(A)以及第二佇列Queue(B)。例如第一佇列Queue(A)與第二佇列Queue(B)可實施成循環(Cyclic)緩衝器,但本發明不限於此。
記憶體控制器110的微處理器112接收複數個主裝置指令後,可於實體區域描述符資訊暫存器210中分別儲存關於該複數個主裝置指令之複數組實體區域描述符資訊PRDINF。該複數組實體區域描述符資訊PRDINF可包含第2圖所示之各組實體區域描述符資訊PRDINF(1)、PRDINF(2)、PRDINF(3)、PRDINF(4)…等。依據本實施例,實體區域描述符資訊PRDINF是關於這些主裝置指令的參數,例如該複數組實體區域描述符資訊PRDINF中之任一組(尤其是每一組)可包含:指令識別碼(Command ID)、目標資料之邏輯區塊位址(Logical Block Address,LBA)、主裝置記憶體的位址、資料讀取量(Data-Transfer Amount)、指令型態等等。
另外,微處理器112依據快閃記憶體轉換層(Flash Translation Layer,FTL)或是邏輯位址-物理位址對照表(Host Logical-to-Flash Physical Address Mapping Table;或H2F Table)可以得知操作非揮發性記憶體元件所需的操作參數,例如,通道(Channel,CH)參數、晶片致能(Chip Enable,CE)等參數等,操作參數亦可記錄至實體區域描述符資訊PRDINF。如果是寫入操作時,儲存實體區域描述符資訊PRDINF更包括記錄使用者資料目前所暫存的位址,例如:使用者資料在記憶體控制器110內建的分時緩衝器(time sharing buffer,TSB)或緩衝記憶體116中的位址。
在微處理器112之控制下,記憶體控制器110可將分別對應於該複數組實體區域描述符資訊PRDINF之複數個中間(Intermediate)實體區域描述符儲存進入第一佇列Queue(A)。該複數個中間實體區域描述符中之任一者可包含該複數組實體區域描述符資訊PRDINF中之一組的辨識符(Identifier,ID),或是該複數組實體區域描述符資訊PRDINF中之該組的位址,或是指向該複數組實體區域描述符資訊PRDINF中之該組的位址之指標(Pointer),但本發明不限於此。
在微處理器112之控制下,記憶體控制器110可安排該複數個中間實體區域描述符佇列(Queuing)在第一佇列Queue(A)或第二佇列Queue(B)中,猶如該複數組實體區域描述符資訊PRDINF佇列在第一佇列Queue(A)或第二佇列Queue(B)中。例如:記憶體控制器110可保持該複數個中間實體區域描述符中之至少一部分(例如一部分或全部)佇列在第一佇列Queue(A)中。又例如:於需要時,記憶體控制器110可將該複數個中間實體區域描述符中之一個或多個中間實體區域描述符從第一佇列Queue(A)移動至第二佇列Queue(B)。又例如:於需要時,記憶體控制器110可將該一個或多個中間實體區域描述符從第二佇列Queue(B)移動至第一佇列Queue(A)。
依據本實施例,儲存於第一佇列Queue(A)中之多個中間實體區域描述符可代表待處理之第一層排隊中實體區域描述符(first layer of queued PRD),而儲存於第二佇列Queue(B)中之多個中間實體區域描述符可代表處理中之第二層排隊中實體區域描述符(second layer of queued PRD);其中,處理中的第二層排隊中實體區域描述符較佳取自於待處理的第一層排隊中實體區域描述符,但本發明不限於此。
如第2圖所示,記憶體控制器110可分別利用頭部指標Head_ptr(A)與尾部指標Tail_ptr(A)來指出第一佇列Queue(A)中之該第一層排隊中實體區域描述符的序列之頭部與尾部。依據本實施例,記憶體控制器110可從第一佇列Queue(A)中之這個序列之尾部取出某一中間實體區域描述符、並將此中間實體區域描述符搬移至第二佇列Queue(B)、執行此中間實體區域描述符、於執行完畢後將此中間實體區域描述符搬移至第一佇列Queue(A)中之這個序列之頭部,但本發明不限於此。
例如:在第一時刻,第一佇列Queue(A)包含分別對應於四組實體區域描述符資訊PRDINF(1)、PRDINF(2)、PRDINF(3)與PRDINF(4)之四個中間實體區域描述符F1、F2、F3與F4,其中中間實體區域描述符F4與F1可分別位於第一佇列Queue(A)之頭部與尾部,並且在中間實體區域描述符F1、F2、F3與F4依序加入第一佇列Queue(A)的過程中,記憶體控制器110可對應地將頭部指標Head_ptr(A) 指向最新加入的中間實體區域描述符,以更新第一佇列Queue(A)之頭部的位置。
在另一時刻,記憶體控制器110可從第一佇列Queue(A)之尾部取出中間實體區域描述符F1,且對應地將尾部指標Tail_ptr(A)指向中間實體區域描述符F2,這表示這個序列變得更短。
在又一時刻,記憶體控制器110可將被執行完成的中間實體區域描述符F1加入到第一佇列Queue(A),即第一佇列Queue(A)中目前序列以外的下一個位置,諸如緊鄰於中間實體區域描述符F4的位置,其中在加入中間實體區域描述符F1至第一佇列Queue(A)之前,記憶體控制器110已觸發主裝置50讀取對應於中間實體區域描述符F1之資料。此狀況下,對應於中間實體區域描述符F1之這一組實體區域描述符資訊PRDINF(1)已變成無效(invalid)資訊。當收到新的主裝置指令,記憶體控制器110可將該無效資訊取代為對應至新的主裝置指令之新的一組實體區域描述符資訊PRDINF’(1)、且對應地將頭部指標Head_ptr(A)移到中間實體區域描述符F4右側的位置以記錄新的中間實體區域描述符F1’(其緊鄰於中間實體區域描述符F4右側),這表示這個序列變得更長。如此,隨著這個序列變化,頭部指標Head_ptr(A)與尾部指標Tail_ptr(A)可對應地變化。
相仿地,記憶體控制器110可分別利用頭部指標Head_ptr(B)與尾部指標Tail_ptr(B)來指出第二佇列Queue(B)中之該第二層排隊中實體區域描述符的序列之頭部與尾部。依據本實施例,記憶體控制器110可將從第一佇列Queue(A)所取得之某一中間實體區域描述符搬移到第二佇列Queue(B)中之這個序列之頭部以等待被處理,但本發明不限於此。例如:在第二時刻,這個序列包含分別對應於二組實體區域描述符資訊PRDINF(1)與PRDINF(2)之二個中間實體區域描述符F1與F2,其中中間實體區域描述符F2與F1可分別位於這個序列之頭部與尾部,並且在中間實體區域描述符F1與F2依序加入這個序列的過程中,記憶體控制器110可對應地將頭部指標Head_ptr(B)移到最新加入的中間實體區域描述符,以更新這個序列之頭部的位置。
記憶體控制器110依據中間實體區域描述符F1所對應的實體區域描述符資訊PRDINF(1)操作非揮發性記憶體120。當操作成功並產生操作結果後,記憶體控制器110依據中間實體區域描述符F1所對應的實體區域描述符資訊PRDINF(1)回傳操作結果至主裝置50,此時,記憶體控制器110已將中間實體區域描述符F1處理完畢。記憶體控制器110可將處理完成後的中間實體區域描述符F1從第二佇列Queue(B)搬移至第一佇列Queue(A),且對應地將尾部指標Tail_ptr(B)指向中間實體區域描述符F2。假設記憶體控制器110接著將中間實體區域描述符F2處理完畢。記憶體控制器110可將被處理後的中間實體區域描述符F2從第二佇列Queue(B) 搬移至第一佇列Queue(A)、且將尾部指標Tail_ptr(B)指向第二佇列Queue(B)中的下一個中間實體區域描述符(諸如剛加入的中間實體區域描述符F3)。如此,隨著這個序列變化,頭部指標Head_ptr(B)與尾部指標Tail_ptr(B)可對應地變化。
在另一實施方式中,記憶體控制器110依據中間實體區域描述符所對應的實體區域描述符資訊PRDINF回傳操作結果至主裝置50後,直接將中間實體區域描述符自第二佇列Queue(B)中移除,而不再將中間實體區域描述符搬移到第一佇列Queue(A),以增快主裝置指令的執行速度。
依據本實施例,實體區域描述符資訊暫存器210的儲存容量可足以儲存M組實體區域描述符資訊,第一佇列Queue(A)的儲存容量可足以儲存MA個中間實體區域描述符,且第二佇列Queue(B)的儲存容量可足以儲存MB個中間實體區域描述符,其中符號「M」、「MA」與「MB」中之任一者可代表大於一的正整數。例如:M = 64,MA = 64,且MB = 256;但本發明不限於此。
III. 動態資源管理
記憶體控制器110可以佇列多個主裝置指令,並依序執行主裝置指令,最後,回傳操作結果至主裝置50。如果多個連續主裝置指令皆操作同一非揮發性記憶體元件,而非均勻地操作每一非揮發性記憶體元件,這將造成系統效能低落。本發明採用動態資源管理來決定主裝置指令的執行順序,藉由延遲或調整主裝置指令的執行,可有效地提升主裝置指令執行的效能。
第3圖為依據本發明一實施例之一種用來於一記憶裝置中進行動態資源管理之方法300的流程圖,其中方法300可應用於記憶裝置100,且可應用於該控制器諸如記憶體控制器110。例如:在該處理電路諸如微處理器112之控制下,記憶體控制器110可進行方法300之運作。
於步驟S310中,記憶體控制器110可接收多個主裝置指令。
於步驟S312中,記憶體控制器110可儲存對應至多個主裝置指令的多組實體區域描述符資訊PRDINF(諸如PRDINF(1)、PRDINF(2)、PRDINF(3)、PRDINF(4)…等)。例如:記憶體控制器110可於實體區域描述符資訊暫存器210中儲存關於多個主裝置指令之多組實體區域描述符資訊PRDINF。
於步驟S314中,記憶體控制器110將對應至多組實體區域描述符資訊PRDINF之多個中間實體區域描述符儲存進入第一佇列Queue(A)。
於步驟S316中,記憶體控制器110將第一佇列Queue(A)中的部分中間實體區域描述符搬移到第二佇列Queue(B)。
於步驟S318中,記憶體控制器110檢查第二佇列Queue(B)的中間實體區域描述符中欲操作同一非揮發性記憶體元件者的數量是否達到一預定數量門檻值。由中間實體區域描述符、或中間實體區域描述符所對應至實體區域描述符資訊PRDINF中之各組詳細實體區域描述符資訊可以得知欲讀取的非揮發性記憶體元件為何。以非揮發性記憶體元件122-1為例,記憶體控制器110可以判斷在第二佇列Queue(B)當中欲操作非揮發性記憶體元件122-1的中間實體區域描述符的數量是否達到預定數量門檻值,例如3筆。達到預定數量門檻值表示記憶體控制器110將頻繁地操作非揮發性記憶體元件122-1,而頻繁地操作同一非揮發性記憶體元件而非均勻地操作每一非揮發性記憶體元件將導致系統效能低落。當步驟S318之判斷結果為真時,進入步驟S320;否則,進入步驟S322。
於步驟S320中,記憶體控制器110調整第二佇列Queue(B)的中間實體區域描述符的順序,接著進入步驟S322。記憶體控制器110將至少一排隊中實體區域描述符諸如超過該預定數量門檻值的中間實體區域描述符搬移至第二佇列Queue(B) 之尾部,即第二層排隊中實體區域描述符的序列之尾部,以延緩(postpone)該至少一中間實體區域描述符之執行(諸如其至少一存取運作),但本發明不限於此。在另一實施例中,記憶體控制器110可依預設間隔重新排列第二佇列Queue(B)的中間實體區域描述符,例如,每4個中間實體區域描述符中僅有一個中間實體區域描述符與非揮發性記憶體元件122-1的操作有關。在另一實施例中,記憶體控制器110可於任兩個相鄰且與非揮發性記憶體元件122-1的操作有關的中間實體區域描述符之間插入另一個與非揮發性記憶體元件122-1的操作無關的中間實體區域描述符。藉由調整第二佇列Queue(B)的多個中間實體區域描述符的順序,使每一非揮發性記憶體元件可被均勻地操作,以達到提昇系統效能的目標。
於步驟S322中,記憶體控制器110依序依據第二佇列Queue(B)的中間實體區域描述符所對應的多組實體區域描述符資訊,諸如實體區域描述符資訊PRDINF之至少一部分(例如一部分或全部),操作非揮發性記憶體120以取得多個操作結果。基於方法300的工作流程,記憶體控制器110依據第二佇列Queue(B)的中間實體區域描述符所對應的多組實體區域描述符資訊PRDINF依序操作非揮發性記憶體元件122-1、122-2、…與122-N以取得操作結果,例如:取得目標資料,並可將操作結果儲存於分時緩衝器(TSB)或緩衝記憶體116。
於步驟S324中,記憶體控制器110輸出多個操作結果至主裝置50。記憶體控制器110可依據實體區域描述符資訊PRDINF之該至少一部分(例如一部分或全部),將操作結果自分時緩衝器或緩衝記憶體116輸出至主裝置50,例如,通知主裝置50某一(些)主裝置指令已執行完畢及/或觸發主裝置50讀取記憶體控制器110所備妥的目標資料,但本發明不限於此。依據某些實施例,步驟S322的運作和步驟S324的運作可同時或交替地進行。
於步驟S326中,記憶體控制器110可將中間實體區域描述符從第二佇列Queue(B)搬移至第一佇列Queue(A)。
於步驟S328中,記憶體控制器110可檢查第一佇列Queue(A)中是否有尚未被搬移的任何中間實體區域描述符,諸如未曾被搬移到第二佇列Queue(B)的任何中間實體區域描述符。當第一佇列Queue(A)中有尚未被搬移的任何中間實體區域描述符,進入步驟S316;否則,進入步驟S330。
於步驟S330中,記憶體控制器110可檢查第二佇列Queue(B)中是否有尚未被處理的任何中間實體區域描述符,諸如未曾執行對應的存取運作之任何中間實體區域描述符。當第二佇列Queue(B)中有尚未被處理的任何中間實體區域描述符,進入步驟S318以執行從S318開始的對應於此中間實體區域描述符之相關運作(諸如存取運作);否則,方法300的工作流程結束,但本發明並不限於此(例如:工作流程結束可改成進入步驟S310)。
依據本實施例,針對步驟S316所述之該部分中間實體區域描述符中之任一中間實體區域描述符,在該中間實體區域描述符從第一佇列Queue(A)被搬移至第二佇列Queue(B)之前,該中間實體區域描述符是該第一層排隊中實體區域描述符的其中之一。當該中間實體區域描述符從第一佇列Queue(A) 被搬移至第二佇列Queue(B)之後,該中間實體區域描述符從該第一層排隊中實體區域描述符中被移除。例如,在該中間實體區域描述符從第一佇列Queue(A) 被搬移之前,該中間實體區域描述符可位於該第一層排隊中實體區域描述符的序列的尾部。當該中間實體區域描述符從第一佇列Queue(A)被搬移時,記憶體控制器110可移動尾部指標Tail_ptr(A)以指出這個序列的尾部之最新位置。另外,在步驟S316所述之該部分中間實體區域描述符中之該中間實體區域描述符從第一佇列Queue(A) 被搬移至第二佇列Queue(B)之前,該中間實體區域描述符尚未成為該第二層排隊中實體區域描述符的其中之一。當該中間實體區域描述符從第一佇列Queue(A) 被搬移至第二佇列Queue(B)之後,該中間實體區域描述符成為該第二層排隊中實體區域描述符的其中之一。
依據某些實施例,關於步驟S324之輸出操作結果,在主裝置50讀取某一中間實體區域描述符的操作結果之後,對應於該中間實體區域描述符之那一組實體區域描述符資訊可變成無效的(invalid)實體區域描述符資訊,但本發明不限於此。
依據某些實施例,該些中間實體區域描述符亦可稱為韌體實體區域描述符(firmware PRD),但本發明不限於此。
第4圖繪示第3圖所示方法300於一實施例中的後指派(post-assign)控制方案。記憶體控制器110可另包含硬體實體區域描述符儲存模組HWPRD,其屬於記憶體控制器110的硬體資源、且可供主裝置50直接存取,其中硬體實體區域描述符儲存模組HWPRD的容量足以儲存MH個硬體實體區域描述符,且符號「MH」可代表大於一的正整數,諸如64;但本發明不限於此。另外,記憶體控制器110可基於方法300進行某些運作。例如,步驟S312中可儲存分別對應至八個主裝置指令的八組實體區域描述符資訊PRDINF,且記憶體控制器110已儲存分別對應於這八個主裝置指令之八個中間實體區域描述符F1、F2、F3、F4、F5、F6、F7與F8至實體區域描述符儲存模組115中之第一佇列Queue(A)。在分別對應於四個中間實體區域描述符F1、F2、F3與F5之存取操作之後,中間實體區域描述符F1、F2、F3與F5已經從第二佇列Queue(B)被釋放至第一佇列Queue(A)且對應的操作結果已經備妥於分時緩衝器中,並且中間實體區域描述符F4被搬移到第二層排隊中實體區域描述符的序列之尾部以延緩關於中間實體區域描述符F4之一存取操作。記憶體控制器110可觸發主裝置50自行讀取操作結果(例如將中間實體區域描述符F1、F2、F3與F5分別映射到硬體實體區域描述符儲存模組HWPRD中之硬體實體區域描述符H1、H2、H3與H4),同時避免相關技術的問題。尤其是,在關於中間實體區域描述符F4之存取操作尚未完成以前,記憶體控制器110不自硬體實體區域描述符儲存模組HWPRD佔用任何資源,如此一來,可以避免硬體實體區域描述符儲存模組HWPRD被佔用的問題。因此,在硬體實體區域描述符儲存模組HWPRD的容量有限的狀況下,記憶體控制器110可在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置100之最佳化(optimal)效能。
第5圖繪示第3圖所示方法300於一實施例中之多佇列(multi-queue)控制方案。記憶體控制器110可基於方法300進行某些運作。例如,記憶體控制器110儲存分別對應至十一個主裝置指令的十一組實體區域描述符資訊PRDINF,且儲存分別對應於這十一個主裝置指令之十一個中間實體區域描述符F1、F2、F3、F4、F5、F6、F7、F8、F9、F10與F11至第一佇列Queue(A)。在第二佇列Queue(B)中分別對應於中間實體區域描述符F1、F2、F3、F4、F7與F9之存取操作成功之後,中間實體區域描述符F1、F2、F3、F4、F7與F9已經從第二佇列Queue(B)被搬移至第一佇列Queue(A)且操作結果已經被儲存至分時緩衝器中,其中中間實體區域描述符F5、F6、F8、F10與F11可停留在第二佇列Queue(B)排隊且等待被處理,而不會妨礙分別對應於中間實體區域描述符F1、F2、F3、F4、F7與F9之存取操作。因此,藉助於多佇列控制,記憶體控制器110可進行動態資源管理,以在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置100之最佳化效能。
第6圖繪示第3圖所示方法300於一實施例中之分時緩衝器資源管理方案。記憶體控制器110可檢查(第二佇列Queue(B)中之)第二層排隊中實體區域描述符當中用來存取同一非揮發性記憶體元件(諸如非揮發性記憶體元件122-1、122-2、…與122-N中之某一者)的排隊中實體區域描述符的數量是否達到該預定數量門檻值,諸如3。例如,該預定數量門檻值可等於3,但本發明並不以此為限。假設在中間實體區域描述符F1、F2、F3、F4、F5、F6、F7、F8、F9、F10與F11當中,只有中間實體區域描述符F4、F5、F6與F7是用來存取同一非揮發性記憶體元件。此狀況下,記憶體控制器110可將中間實體區域描述符F7推到該第二層排隊中實體區域描述符的序列之尾部,以延緩對應於中間實體區域描述符F7之存取運作,藉此重分配該分時緩衝器之硬體資源。因此,記憶體控制器110可因應該分時緩衝器之循序運作特性來妥善地管理該分時緩衝器之硬體資源,以在沒有副作用或較不可能帶來副作用之狀況下達到記憶裝置100之最佳化效能。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
50‧‧‧主裝置
100‧‧‧記憶裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯電路
115‧‧‧實體區域描述符儲存模組
116‧‧‧緩衝記憶體
118‧‧‧傳輸介面電路
120‧‧‧非揮發性記憶體
122-1, 122-2, …, 122-N‧‧‧非揮發性記憶體元件
210‧‧‧實體區域描述符資訊暫存器
300‧‧‧用來於記憶裝置中進行動態資源管理之方法
S310‧‧‧接收主裝置指令之步驟
S312‧‧‧儲存實體區域描述符資訊之步驟
S314‧‧‧將中間實體區域描述符儲存進入第一佇列之步驟
S316‧‧‧將第一佇列中的部分中間實體區域描述符搬移到第二佇列之步驟
S318‧‧‧檢查第二佇列的中間實體區域描述符中操作同一非揮發性記憶體元件者的數量是否達到預定數量門檻值之步驟
S320‧‧‧調整第二佇列的中間實體區域描述符的順序之步驟
S322‧‧‧操作非揮發性記憶體以取得操作結果之步驟
S324‧‧‧輸出操作結果至主裝置之步驟
S326‧‧‧將中間實體區域描述符從第二佇列搬移至第一佇列之步驟
S328‧‧‧檢查第一佇列中是否有尚未被搬移的中間實體區域描述符之步驟
S330‧‧‧檢查第二佇列中是否有尚未被處理的中間實體區域描述符之步驟
F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11‧‧‧中間實體區域描述符
H1, H2, H3, H4‧‧‧硬體實體區域描述符
Head_ptr(A), Head_ptr(B)‧‧‧頭部指標
HWPRD‧‧‧硬體實體區域描述符儲存模組
PRDINF, PRDINF(1), PRDINF(2), PRDINF(3), PRDINF(4), …‧‧‧實體區域描述符資訊
Queue(A)‧‧‧第一佇列
Queue(B)‧‧‧第二佇列
Tail_ptr(A), Tail_ptr(B)‧‧‧尾部指標
100‧‧‧記憶裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯電路
115‧‧‧實體區域描述符儲存模組
116‧‧‧緩衝記憶體
118‧‧‧傳輸介面電路
120‧‧‧非揮發性記憶體
122-1, 122-2, …, 122-N‧‧‧非揮發性記憶體元件
210‧‧‧實體區域描述符資訊暫存器
300‧‧‧用來於記憶裝置中進行動態資源管理之方法
S310‧‧‧接收主裝置指令之步驟
S312‧‧‧儲存實體區域描述符資訊之步驟
S314‧‧‧將中間實體區域描述符儲存進入第一佇列之步驟
S316‧‧‧將第一佇列中的部分中間實體區域描述符搬移到第二佇列之步驟
S318‧‧‧檢查第二佇列的中間實體區域描述符中操作同一非揮發性記憶體元件者的數量是否達到預定數量門檻值之步驟
S320‧‧‧調整第二佇列的中間實體區域描述符的順序之步驟
S322‧‧‧操作非揮發性記憶體以取得操作結果之步驟
S324‧‧‧輸出操作結果至主裝置之步驟
S326‧‧‧將中間實體區域描述符從第二佇列搬移至第一佇列之步驟
S328‧‧‧檢查第一佇列中是否有尚未被搬移的中間實體區域描述符之步驟
S330‧‧‧檢查第二佇列中是否有尚未被處理的中間實體區域描述符之步驟
F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11‧‧‧中間實體區域描述符
H1, H2, H3, H4‧‧‧硬體實體區域描述符
Head_ptr(A), Head_ptr(B)‧‧‧頭部指標
HWPRD‧‧‧硬體實體區域描述符儲存模組
PRDINF, PRDINF(1), PRDINF(2), PRDINF(3), PRDINF(4), …‧‧‧實體區域描述符資訊
Queue(A)‧‧‧第一佇列
Queue(B)‧‧‧第二佇列
Tail_ptr(A), Tail_ptr(B)‧‧‧尾部指標
第1圖為依據本發明一第一實施例之一種記憶裝置與一主裝置(host device)的示意圖。 第2圖繪示第1圖所示實體區域描述符儲存模組於一實施例中之實施細節。 第3圖為依據本發明一實施例之一種用來於一記憶裝置中進行動態資源管理之方法的流程圖。 第4圖繪示第3圖所示方法於一實施例中的後指派(post-assign)控制方案。 第5圖繪示第3圖所示方法於一實施例中之多佇列(multi-queue)控制方案。 第6圖繪示第3圖所示方法於一實施例中之分時緩衝器(time sharing buffer, TSB)資源管理方案。
Claims (20)
- 一種用來於一記憶裝置中進行動態資源管理之方法,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),該方法包含有: 分別儲存關於複數個主裝置指令(host command)之複數組實體區域描述符(physical region descriptor, PRD)資訊,且將分別對應於該複數組實體區域描述符資訊之複數個中間(intermediate)實體區域描述符儲存進入一第一佇列(queue),其中該複數個主裝置指令是接收自該記憶裝置以外,且該複數個中間實體區域描述符中之任一者包含該複數組實體區域描述符資訊中之一組的辨識符(identifier, ID); 從該第一佇列取得該複數個中間實體區域描述符中之一中間實體區域描述符,且將該中間實體區域描述符儲存進入一第二佇列; 依據該第二佇列中之該中間實體區域描述符,傳送一指令至該非揮發性記憶體,以存取(access)該複數個非揮發性記憶體元件之至少一非揮發性記憶體元件中之資料;以及 當存取該資料之運作成功,將該中間實體區域描述符從該第二佇列釋放(release)至該第一佇列。
- 如申請專利範圍第1項所述之方法,其中儲存於該第一佇列中之多個實體區域描述符代表待處理之一第一層排隊中實體區域描述符(first layer of queued PRD);以及儲存於該第二佇列中之多個實體區域描述符代表處理中之一第二層排隊中實體區域描述符(second layer of queued PRD)。
- 如申請專利範圍第2項所述之方法,其另包含: 分別利用一第一指標(pointer)與一第二指標來指出該第一層排隊中實體區域描述符的序列之頭部與尾部。
- 如申請專利範圍第2項所述之方法,其中在該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之前,該中間實體區域描述符是該第一層排隊中實體區域描述符的其中之一;以及當該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之後,該中間實體區域描述符從該第一層排隊中實體區域描述符中被移除。
- 如申請專利範圍第4項所述之方法,其另包含: 分別利用一第一指標(pointer)與一第二指標來指出該第一層排隊中實體區域描述符的序列之頭部與尾部,其中在該中間實體區域描述符從該第一佇列被搬移之前,該中間實體區域描述符位於該序列的該尾部;以及 當該中間實體區域描述符從該第一佇列被搬移時,移動該第二指標以指出該序列的該尾部之一最新位置。
- 如申請專利範圍第2項所述之方法,其另包含: 分別利用一第一指標(pointer)與一第二指標來指出該第二層排隊中實體區域描述符的序列之頭部與尾部。
- 如申請專利範圍第2項所述之方法,其中在該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之前,該中間實體區域描述符尚未成為該第二層排隊中實體區域描述符的其中之一;以及當該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之後,該中間實體區域描述符成為該第二層排隊中實體區域描述符的其中之一。
- 如申請專利範圍第2項所述之方法,其另包含: 檢查該第二層排隊中實體區域描述符當中用來存取該複數個非揮發性記憶體元件中之同一非揮發性記憶體元件的排隊中實體區域描述符的數量是否達到一預定數量門檻值;以及 當用來存取該同一非揮發性記憶體元件的該些排隊中實體區域描述符的該數量達到該預定數量門檻值時,將該些排隊中實體區域描述符中之至少一排隊中實體區域描述符搬移至該第二層排隊中實體區域描述符的序列之尾部,以延緩(postpone)該至少一排隊中實體區域描述符之至少一存取運作。
- 如申請專利範圍第2項所述之方法,其中該複數個主裝置指令是接收自位於該記憶裝置以外的一主裝置(host device);以及該方法另包含: 觸發該主裝置讀取該資料,其中在該主裝置讀取該資料之後,對應於該中間實體區域描述符之一組實體區域描述符資訊變成無效(invalid)資訊。
- 如申請專利範圍第1項所述之方法,其中該複數組實體區域描述符資訊是關於該複數個主裝置指令的參數;以及該複數組實體區域描述符資訊中之任一組實體區域描述符資訊包含一指令識別碼(Command ID)、目標資料之一邏輯區塊位址(logical block address, LBA)、一資料讀取量(data-transfer amount)以及一指令型態。
- 一種記憶裝置,包含有: 一非揮發性記憶體(non-volatile memory, NV memory),用來儲存資訊,其中該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element);以及 一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之運作,其中該控制器包含: 一多佇列型(multi-queue type)實體區域描述符(physical region descriptor, PRD)儲存模組,用來儲存至少一實體區域描述符,其中該多佇列型實體區域描述符儲存模組包含: 一實體區域描述符資訊暫存器; 一第一佇列(queue);以及 一第二佇列;以及 一處理電路,用來依據來自一主裝置(host device)的複數個主裝置指令(host command)控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器於該實體區域描述符資訊暫存器中分別儲存關於該複數個主裝置指令之複數組實體區域描述符資訊,且將分別對應於該複數組實體區域描述符資訊之複數個中間(intermediate)實體區域描述符儲存進入該第一佇列,其中該複數個中間實體區域描述符中之任一者包含該複數組實體區域描述符資訊中之一組的辨識符(identifier, ID); 該控制器從該第一佇列取得該複數個中間實體區域描述符中之一中間實體區域描述符,且將該中間實體區域描述符儲存進入該第二佇列; 依據該第二佇列中之該中間實體區域描述符,該控制器傳送一指令至該非揮發性記憶體,以存取該複數個非揮發性記憶體元件之至少一非揮發性記憶體元件中之資料;以及 當存取該資料之運作成功,該控制器將該中間實體區域描述符從該第二佇列釋放(release)至該第一佇列。
- 如申請專利範圍第11項所述之記憶裝置,其中儲存於該第一佇列中之多個實體區域描述符代表待處理之一第一層排隊中實體區域描述符(first layer of queued PRD);以及儲存於該第二佇列中之多個實體區域描述符代表處理中之一第二層排隊中實體區域描述符(second layer of queued PRD)。
- 如申請專利範圍第12項所述之記憶裝置,其中該控制器分別利用一第一指標(pointer)與一第二指標來指出該第一層排隊中實體區域描述符的序列之頭部與尾部。
- 如申請專利範圍第12項所述之記憶裝置,其中在該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之前,該中間實體區域描述符是該第一層排隊中實體區域描述符的其中之一;以及當該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之後,該中間實體區域描述符從該第一層排隊中實體區域描述符中被移除。
- 如申請專利範圍第14項所述之記憶裝置,其中該控制器分別利用一第一指標(pointer)與一第二指標來指出該第一層排隊中實體區域描述符的序列之頭部與尾部,其中在該中間實體區域描述符從該第一佇列被搬移之前,該中間實體區域描述符位於該序列的該尾部;以及當該中間實體區域描述符從該第一佇列被搬移時,該控制器移動該第二指標以指出該序列的該尾部之一最新位置。
- 一種記憶裝置之控制器,該記憶裝置包含該控制器與一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含複數個非揮發性記憶體元件(NV memory element),該控制器包含有: 一多佇列型(multi-queue type)實體區域描述符(physical region descriptor, PRD)儲存模組,用來儲存至少一實體區域描述符,其中該多佇列型實體區域描述符儲存模組包含: 一實體區域描述符資訊暫存器; 一第一佇列(queue);以及 一第二佇列;以及 一處理電路,用來依據來自一主裝置(host device)的複數個主裝置指令(host command)控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中: 該控制器於該實體區域描述符資訊暫存器中分別儲存關於該複數個主裝置指令之複數組實體區域描述符資訊,且將分別對應於該複數組實體區域描述符資訊之複數個中間(intermediate)實體區域描述符儲存進入該第一佇列,其中該複數個中間實體區域描述符中之任一者包含該複數組實體區域描述符資訊中之一組的辨識符(identifier, ID); 該控制器從該第一佇列取得該複數個中間實體區域描述符中之一中間實體區域描述符,且將該中間實體區域描述符儲存進入該第二佇列; 依據該第二佇列中之該中間實體區域描述符,該控制器傳送一指令至該非揮發性記憶體,以存取該複數個非揮發性記憶體元件之至少一非揮發性記憶體元件中之資料;以及 當存取該資料之運作成功,該控制器將該中間實體區域描述符從該第二佇列釋放(release)至該第一佇列。
- 如申請專利範圍第16項所述之控制器,其中儲存於該第一佇列中之多個實體區域描述符代表待處理之一第一層排隊中實體區域描述符(first layer of queued PRD);以及儲存於該第二佇列中之多個實體區域描述符代表處理中之一第二層排隊中實體區域描述符(second layer of queued PRD)。
- 如申請專利範圍第17項所述之控制器,其中該控制器分別利用一第一指標(pointer)與一第二指標來指出該第一層排隊中實體區域描述符的序列之頭部與尾部。
- 如申請專利範圍第17項所述之控制器,其中在該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之前,該中間實體區域描述符是該第一層排隊中實體區域描述符的其中之一;以及當該中間實體區域描述符從該第一佇列被搬移至該第二佇列中之後,該中間實體區域描述符從該第一層排隊中實體區域描述符中被移除。
- 如申請專利範圍第19項所述之控制器,其中該控制器分別利用一第一指標(pointer)與一第二指標來指出該第一層排隊中實體區域描述符的序列之頭部與尾部,其中在該中間實體區域描述符從該第一佇列被搬移之前,該中間實體區域描述符位於該序列的該尾部;以及當該中間實體區域描述符從該第一佇列被搬移時,該控制器移動該第二指標以指出該序列的該尾部之一最新位置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106126636A TWI636363B (zh) | 2017-08-08 | 2017-08-08 | 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 |
CN202111488799.XA CN114153764B (zh) | 2017-08-08 | 2017-10-11 | 进行动态资源管理的方法、记忆装置及记忆装置的控制器 |
CN201710941733.9A CN109388593B (zh) | 2017-08-08 | 2017-10-11 | 进行动态资源管理的方法、记忆装置及记忆装置的控制器 |
US15/859,701 US10310746B2 (en) | 2017-08-08 | 2018-01-01 | Method, associated memory device and controller thereof for performing dynamic resource management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106126636A TWI636363B (zh) | 2017-08-08 | 2017-08-08 | 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI636363B true TWI636363B (zh) | 2018-09-21 |
TW201911056A TW201911056A (zh) | 2019-03-16 |
Family
ID=64453161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106126636A TWI636363B (zh) | 2017-08-08 | 2017-08-08 | 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10310746B2 (zh) |
CN (2) | CN109388593B (zh) |
TW (1) | TWI636363B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112714092B (zh) * | 2019-10-24 | 2022-03-18 | 珠海格力电器股份有限公司 | 一种注册登录方法、设备和计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120278664A1 (en) * | 2011-04-28 | 2012-11-01 | Kabushiki Kaisha Toshiba | Memory system |
US20160026386A1 (en) * | 2014-07-22 | 2016-01-28 | Sandisk Enterprise Ip Llc | Suspending and Resuming Non-Volatile Memory Operations |
US20160070488A1 (en) * | 2014-09-09 | 2016-03-10 | Sandisk Technologies Inc. | Multi-stage programming at a storage device using multiple instructions from a host |
TW201617891A (zh) * | 2014-07-17 | 2016-05-16 | 高通公司 | 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 |
US20160299844A1 (en) * | 2015-04-08 | 2016-10-13 | Sandisk Enterprise Ip Llc | Mapping Logical Groups of Data to Physical Locations In Memory |
TWI581092B (zh) * | 2016-03-30 | 2017-05-01 | 威盛電子股份有限公司 | 記憶體裝置及其節能控制方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6330623B1 (en) * | 1999-01-08 | 2001-12-11 | Vlsi Technology, Inc. | System and method for maximizing DMA transfers of arbitrarily aligned data |
US6697885B1 (en) * | 1999-05-22 | 2004-02-24 | Anthony E. B. Goodfellow | Automated DMA engine for ATA control |
US8930583B1 (en) * | 2003-09-18 | 2015-01-06 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for controlling data transfer in a serial-ATA system |
US20050235072A1 (en) * | 2004-04-17 | 2005-10-20 | Smith Wilfred A | Data storage controller |
CN101082852B (zh) * | 2006-05-29 | 2012-07-18 | 联阳半导体股份有限公司 | 用于存储器的控制装置及控制方法 |
CN100452007C (zh) * | 2007-06-13 | 2009-01-14 | 威盛电子股份有限公司 | 直接内存存取处理单元的实体区域描述元预取方法 |
TWI334541B (en) * | 2007-06-22 | 2010-12-11 | Via Tech Inc | Prd (physical region descriptor) pre-fetch methods for dma (direct memory access) unit |
US7962314B2 (en) * | 2007-12-18 | 2011-06-14 | Global Foundries Inc. | Mechanism for profiling program software running on a processor |
TW200947216A (en) * | 2008-05-08 | 2009-11-16 | Accusys Inc | Job-based structure for processing and transmitting data |
US9128699B2 (en) * | 2008-12-22 | 2015-09-08 | Intel Corporation | Method and system for queuing transfers of multiple non-contiguous address ranges with a single command |
CN101498994B (zh) * | 2009-02-16 | 2011-04-20 | 华中科技大学 | 一种固态硬盘控制器 |
TWI447580B (zh) * | 2012-04-03 | 2014-08-01 | Phison Electronics Corp | 管理記憶體空間的方法、記憶體控制器與記憶體儲存裝置 |
CN104346292B (zh) * | 2013-08-05 | 2017-10-24 | 慧荣科技股份有限公司 | 用来管理一记忆装置的方法、记忆装置与控制器 |
CN105988954B (zh) * | 2015-03-05 | 2018-09-11 | 光宝科技股份有限公司 | 区域描述元管理方法及其电子装置 |
TWI566253B (zh) * | 2015-09-02 | 2017-01-11 | 慧榮科技股份有限公司 | 用來管理一記憶裝置之方法以及記憶裝置與控制器 |
-
2017
- 2017-08-08 TW TW106126636A patent/TWI636363B/zh active
- 2017-10-11 CN CN201710941733.9A patent/CN109388593B/zh active Active
- 2017-10-11 CN CN202111488799.XA patent/CN114153764B/zh active Active
-
2018
- 2018-01-01 US US15/859,701 patent/US10310746B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120278664A1 (en) * | 2011-04-28 | 2012-11-01 | Kabushiki Kaisha Toshiba | Memory system |
TW201617891A (zh) * | 2014-07-17 | 2016-05-16 | 高通公司 | 用於經由集合和通道來靈活地將快取記憶體劃分成分量快取記憶體的方法和裝置 |
US20160026386A1 (en) * | 2014-07-22 | 2016-01-28 | Sandisk Enterprise Ip Llc | Suspending and Resuming Non-Volatile Memory Operations |
US20160070488A1 (en) * | 2014-09-09 | 2016-03-10 | Sandisk Technologies Inc. | Multi-stage programming at a storage device using multiple instructions from a host |
US20170123732A1 (en) * | 2014-09-09 | 2017-05-04 | Sandisk Technologies Llc | Multi-stage programming at a storage device using multiple instructions from a host |
US20160299844A1 (en) * | 2015-04-08 | 2016-10-13 | Sandisk Enterprise Ip Llc | Mapping Logical Groups of Data to Physical Locations In Memory |
TWI581092B (zh) * | 2016-03-30 | 2017-05-01 | 威盛電子股份有限公司 | 記憶體裝置及其節能控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US10310746B2 (en) | 2019-06-04 |
CN109388593B (zh) | 2021-12-28 |
CN114153764B (zh) | 2023-08-29 |
US20190050154A1 (en) | 2019-02-14 |
CN114153764A (zh) | 2022-03-08 |
TW201911056A (zh) | 2019-03-16 |
CN109388593A (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI601060B (zh) | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US11294586B2 (en) | Method for performing read acceleration, associated data storage device and controller thereof | |
US20140019670A1 (en) | Data writing method, memory controller, and memory storage device | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
US11360711B2 (en) | Storage device temporarily suspending internal operation to provide short read response time for read request from host | |
CN111752484A (zh) | 一种ssd控制器、固态硬盘及数据写入方法 | |
KR20090006920A (ko) | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 | |
CN110989918A (zh) | 写入控制方法以及数据存储装置及其控制器 | |
US9804983B2 (en) | Controlling method, connector, and memory storage device | |
TWI709975B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
US9733832B2 (en) | Buffer memory accessing method, memory controller and memory storage device | |
US10678698B2 (en) | Memory storage device, control circuit and method including writing discontinuously arranged data into physical pages on word lines in different memory sub-modules | |
CN113867640A (zh) | 存储器轮询方法、存储器存储装置及存储器控制电路单元 | |
TWI636363B (zh) | 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器 | |
TW201941208A (zh) | 記憶體管理方法與儲存控制器 | |
TW201908958A (zh) | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 | |
TWI644215B (zh) | 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器 | |
TWI752784B (zh) | 非對稱型平面管理方法以及資料儲存裝置及其控制器 | |
US9117514B2 (en) | Data encoding for non-volatile memory | |
US9117520B2 (en) | Data encoding for non-volatile memory | |
CN112463018A (zh) | 指令传送方法、存储器控制电路单元及存储器存储装置 | |
TWI728448B (zh) | 指令傳送方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN118092807A (zh) | 缓存空间调配方法及存储器存储装置 | |
TW201908973A (zh) | 資料編程之方法以及記憶裝置及其控制器 |