TW202046114A - 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置 - Google Patents

用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置 Download PDF

Info

Publication number
TW202046114A
TW202046114A TW108125912A TW108125912A TW202046114A TW 202046114 A TW202046114 A TW 202046114A TW 108125912 A TW108125912 A TW 108125912A TW 108125912 A TW108125912 A TW 108125912A TW 202046114 A TW202046114 A TW 202046114A
Authority
TW
Taiwan
Prior art keywords
memory
completion time
request
command
controller
Prior art date
Application number
TW108125912A
Other languages
English (en)
Other versions
TWI735918B (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 慧榮科技股份有限公司
Publication of TW202046114A publication Critical patent/TW202046114A/zh
Application granted granted Critical
Publication of TWI735918B publication Critical patent/TWI735918B/zh

Links

Images

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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0653Monitoring storage devices or systems
    • 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/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation

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)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

本發明提供一種用來進行一記憶裝置的存取管理之方法以及相關裝置(例如,該記憶裝置及其控制器諸如該記憶裝置中之一記憶體控制器、相關之主裝置以及相關之電子裝置)。該方法可包含:當該主裝置傳送一主裝置指令至該記憶裝置,利用該記憶體控制器估測該主裝置指令的一完成時間,以產生對應於該完成時間之完成時間資訊;以及利用該記憶體控制器將該完成時間資訊傳送至該主裝置,以容許該主裝置於該完成時間之後進行輪詢以取得該主裝置指令的一執行結果。

Description

用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置
本發明係關於快閃記憶體(Flash memory)之存取(access),尤指一種用來進行一記憶裝置的存取管理之方法以及相關裝置(例如,該記憶裝置及其控制器諸如該記憶裝置中之一記憶體控制器、相關之主裝置以及相關之電子裝置)。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式記憶裝置(例如:分別符合SD/MMC、CF、MS及XD標準之記憶卡;又例如:固態硬碟(solid state drive, SSD);又例如:分別符合UFS及EMMC標準之嵌入式(embedded)記憶裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其可包含單階細胞(single level cell, SLC)與多階細胞(multiple level cell, MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶細胞的電晶體的儲存能力則可被充分利用,其中該電晶體係採用較高的電壓來驅動,以透過不同的電壓位準在一個電晶體中記錄至少兩組位元資訊(例如00、01、11或10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,採用較新架構的傳輸介面,諸如符合快捷外設互聯(Peripheral Component Interconnect Express, PCIe)標準者,可增加記憶裝置與主裝置之間的傳輸頻寬。為了充分利用該傳輸頻寬,該主裝置較佳應操作在特定操作模式中並且持續地進行輪詢(polling),這樣很容易發生主裝置的硬體資源滿載或過載(例如,高使用率諸如100%)。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下提昇整體效能。
本發明之一目的在於提供一種用來進行一記憶裝置的存取(access)管理之方法以及相關裝置(例如,該記憶裝置及其控制器諸如該記憶裝置中之一記憶體控制器、相關之主裝置以及相關之電子裝置),以解決上述問題。
本發明之另一目的在於提供一種用來進行一記憶裝置的存取(access)管理之方法以及相關裝置(例如,該記憶裝置及其控制器諸如該記憶裝置中之一記憶體控制器、相關之主裝置以及相關之電子裝置),以在沒有副作用或較不可能帶來副作用之狀況下提昇整體效能。
本發明之至少一實施例提供一種用來進行一記憶裝置的存取管理之方法。該記憶裝置可包含一非揮發性記憶體(non-volatile memory, NV)以及用來控制該非揮發性記憶體的存取之一記憶體控制器,且該非揮發性記憶體可包含至少一非揮發性記憶體元件(NV memory element)(例如一或多個非揮發性記憶體元件)。該方法可包含:若一主裝置(host device)傳送一主裝置指令至該記憶裝置,利用該記憶體控制器估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊;以及利用該記憶體控制器將該完成時間資訊傳送至該主裝置,以容許該主裝置於該完成時間之後進行輪詢(polling)以取得該主裝置指令的一執行結果。
除了上述方法以外,本發明亦提供一種記憶裝置,且該記憶裝置包含一非揮發性記憶體以及一控制器。該非揮發性記憶體係用來儲存資訊,其中該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該控制器耦接至該非揮發性記憶體,且該控制器係用來控制該記憶裝置之運作。另外,該控制器包含一處理電路,其中該處理電路係用來依據來自一主裝置的複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。舉例來說,若該主裝置傳送一主裝置指令至該記憶裝置,該控制器估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊。此外,該控制器將該完成時間資訊傳送至該主裝置,以容許該主裝置於該完成時間之後進行輪詢以取得該主裝置指令的一執行結果。
依據某些實施例,本發明亦提供相關之電子裝置。該電子裝置可包含上述記憶裝置,且可另包含耦接至該記憶裝置之該主裝置。該主裝置可包含:至少一處理器,用來控制該主裝置之運作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置。另外,該記憶裝置可提供儲存空間給該主裝置。
除了上述方法以外,本發明亦提供一種記憶裝置之控制器,其中該記憶裝置包含該控制器以及一非揮發性記憶體。該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如,一或多個非揮發性記憶體元件)。另外,該控制器包含一處理電路,其中該處理電路係用來依據來自一主裝置的複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。例如,若該主裝置傳送一主裝置指令至該記憶裝置,該控制器估測該主裝置指令的一完成時間,以產生對應於該完成時間之完成時間資訊。此外,該控制器將該完成時間資訊傳送至該主裝置,以容許該主裝置於該完成時間之後進行輪詢以取得該主裝置指令的一執行結果。
本發明之至少一實施例提供一種用來進行一記憶裝置的存取管理之方法。該記憶裝置可包含一非揮發性記憶體以及用來控制該非揮發性記憶體的存取之一記憶體控制器,且該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該方法可包含:控制一主裝置傳送一主裝置指令至該記憶裝置,並且利用該記憶體控制器估測該主裝置指令的一完成時間,以產生對應於該完成時間之完成時間資訊;以及依據傳送自該記憶體控制器的該完成時間資訊,控制該主裝置於該完成時間之後進行輪詢以取得該主裝置指令的一執行結果。
本發明之至少一實施例提供一種主裝置,且該主裝置包含至少一處理器,且該至少一處理器係用來控制該主裝置的運作以及進行一記憶裝置的存取管理,其中該記憶裝置包含一非揮發性記憶體以及用來控制該非揮發性記憶體的存取之一記憶體控制器,以及該非揮發性記憶體包含至少一非揮發性記憶體元件。該至少一處理器控制該主裝置傳送一主裝置指令至該記憶裝置,並且利用該記憶體控制器估測該主裝置指令的一完成時間,以產生對應於該完成時間之完成時間資訊。依據傳送自該記憶體控制器的該完成時間資訊,該至少一處理器控制該主裝置於該完成時間之後進行輪詢以取得該主裝置指令的一執行結果。例如,該主裝置可另包含一電源供應電路,其中該電源供應電路耦接至該至少一處理器,並且係用來提供電源給該至少一處理器以及該記憶裝置,其中該記憶裝置提供儲存空間給該主裝置。
本發明所提供的方法以及相關裝置能確保整體系統(例如該主裝置以及該記憶裝置)能妥善地運作,以避免相關技術中之問題,諸如主裝置的硬體資源滿載或過載。另外,依據本發明之實施例來實施並不會大幅增加額外的成本。因此,相關技術的問題能被解決,且整體成本不會增加太多。相較於相關技術,本發明的方法以及相關裝置能在沒有副作用或較不可能帶來副作用之狀況下提昇整體效能。
第1圖為依據本發明一實施例之一電子裝置10的示意圖,其中電子裝置10可包含一主裝置(host device)50與一記憶裝置100。主裝置50可包含至少一處理器(例如一或多個處理器),統稱為處理器52,且可另包含分別耦接至處理器52的一電源供應電路54與一記憶體56。處理器52係用來控制主裝置50的運作,而電源供應電路54係用來提供電源給處理器52與記憶裝置100、並且輸出一或多個驅動電壓至記憶裝置100。記憶體56可為主裝置50儲存資訊。例如,記憶體56可為一隨機存取記憶體(Random Access Memory, RAM),但本發明不限於此。記憶裝置100可用來提供儲存空間給主裝置50,並且從主裝置50取得該一或多個驅動電壓以作為記憶裝置100的電源。主裝置50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、可穿戴裝置(wearable device)、平板電腦(tablet)以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。記憶裝置100的例子可包含(但不限於):固態硬碟(solid state drive, SSD)以及各種嵌入式(embedded)記憶裝置(諸如符合快捷外設互聯(Peripheral Component Interconnect Express,簡稱PCIe)標準之嵌入式記憶裝置)。依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory, NV memory)120,其中該控制器係用來控制記憶裝置100的運作以及存取(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、一完成時間估測資料庫(completion time estimation database,可簡稱為CTE資料庫)115、一隨機存取記憶體116以及一傳輸介面電路118,其中上述元件可透過一匯流排彼此耦接。隨機存取記憶體116係利用一靜態隨機存取記憶體(Static RAM, SRAM)來實施,但本發明不限於此。CTE資料庫115可包含一或多種時間參考資料,諸如記憶裝置100之各種類型的內部運作之時間參考資料,以供進行完成時間估測運作。隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110。例如,隨機存取記憶體116可用來作為一緩衝記憶體以供緩衝資料。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則係用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,在某些例子中,程式碼112C可被儲存在隨機存取記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可用來控制非揮發性記憶體120,並且可包含一資料保護電路(未顯示)以保護資料及/或進行錯誤更正,但本發明不限於此。傳輸介面電路118可符合一特定通訊標準(例如PCIe標準)且可依據該特定通訊標準進行通訊,例如為記憶裝置100,和主裝置50進行通訊,其中主裝置50可包含對應的傳輸介面電路(例如PCIe傳輸介面電路),以供用來為主裝置50,和記憶裝置100進行通訊。
在本實施例中,主裝置50可傳送主裝置指令(host command)與對應的邏輯位址至記憶體控制器110來存取記憶裝置100。記憶體控制器110接收主裝置指令與邏輯位址,並將主裝置指令轉譯成記憶體操作指令(可簡稱為操作指令),再以操作指令控制非揮發性記憶體120讀取或寫入(write)/編程(program)非揮發性記憶體120當中某些實體位址之記憶單位(例如資料頁(page)),其中實體位址對應於邏輯位址。當記憶體控制器110對非揮發性記憶體元件122-1、122-2、…與122-N中之任一非揮發性記憶體元件122-n進行一抹除(erase)運作時(符號「n」可代表區間[1, N]中之任一整數),非揮發性記憶體元件122-n的多個區塊中之至少一個區塊會被抹除,其中該些區塊中的每一區塊可包含多個頁(例如資料頁),且一存取運作(例如讀取或寫入)可對一或多個頁進行。
依據某些實施例,第1圖所示架構可予以變化。例如,CTE資料庫115可整合至唯讀記憶體112M、或記憶裝置100中之其它記憶體。又例如,CTE資料庫115可實施成運行於微處理器112上的一部分程式碼。又例如,CTE資料庫115可設置於非揮發性記憶體120中。
第2圖為依據本發明一實施例之一種用來進行一記憶裝置的存取管理之方法的工作流程200。該方法可應用於電子裝置10、主裝置50及其處理器52、記憶裝置100、以及可用來控制非揮發性記憶體120之存取的記憶體控制器110。舉例來說,主裝置50(例如:運行於處理器52上之程式,諸如一驅動程式(driver)或一應用程式(application))以及記憶裝置100(例如:記憶體控制器110)可依據該方法來運作。基於該方法,處理器52以及記憶體控制器110中之每一者可進行記憶裝置100的存取管理。
在步驟210中,當主裝置50傳送一主裝置指令至記憶裝置100,主裝置50可利用記憶體控制器110估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊。處理器52可控制主裝置50傳送該主裝置指令至該記憶裝置100,並且利用記憶體控制器110估測該主裝置指令的該完成時間,以產生對應於該完成時間之該完成時間資訊。該完成時間通常可包含記憶裝置100執行該主裝置指令以產生該主裝置指令的一執行結果所需的一時期(time period)。依據本實施例,該完成時間可包含記憶裝置100的一或多個內部運作的時間,且該一或多個內部運作可包含因應該主裝置指令存取非揮發性記憶體120,但本發明不限於此。例如,該主裝置指令可包含一抹除請求、一寫入請求以及一讀取請求中之一者。
在步驟220中,主裝置50可利用記憶體控制器110將該完成時間資訊傳送至主裝置50(例如其內的暫存器),以容許主裝置50於該完成時間之後進行輪詢(polling)以取得該主裝置指令的該執行結果。依據傳送自記憶體控制器110的該完成時間資訊,處理器52可控制主裝置50於該完成時間之後進行輪詢以取得該主裝置指令的該執行結果。在本實施例中,於傳送該主裝置指令至記憶裝置100的期間(例如,於傳送該主裝置指令至記憶裝置100的時間點),主裝置50可運作於一使用者模式(User mode),而非一核模式(Kernel mode)。於主裝置50傳送該主裝置指令至記憶裝置100之後,運行於處理器52上的程式(諸如該驅動程式或該應用程式)可控制主裝置50避免持續地為了該執行結果進行輪詢,直到該完成時間已屆時(expire),尤其,可控制主裝置50進行至少一其它運作(例如一或多個其它運作),而非持續地為了該執行結果進行輪詢。
依據本實施例,主裝置50於該完成時間已屆時之前能進行上述至少一其它運作,而不需要持續地進行輪詢。因此,本發明的方法以及裝置能達到充分利用主裝置50與記憶裝置100之間的頻寬以及盡快取得該執行結果(例如一存取結果)的目標,而不會造成相關技術中的問題諸如硬體資源滿載或過載(例如高使用率諸如100%)。另外,由於主裝置50能於該完成時間已屆時之前進行上述至少一其它運作,本發明的方法以及裝置能確保電子裝置10具有最佳化的效能。
為便於理解,該方法可透過工作流程200來說明,但本發明不限於此。依據某些實施例,一或多個步驟可於工作流程200中被新增、刪除或修改。
依據某些實施例,在記憶體控制器100的控制下,記憶裝置100可先完成一先前運作(若該先前運作存在),使記憶裝置100處於一備妥(ready)狀態來執行該主裝置指令。尤其是,該先前運作可為記憶裝置100於接收該主裝置指令時正在進行的運作、或用於使記憶裝置備妥以執行該主裝置指令的準備運作。該先前運作的例子可包含(但不限於):一垃圾收集(garbage collection, GC)運作、一抹除運作與一損耗平均(wear-leveling)運作等。
依據某些實施例,該主裝置指令可包含一請求。於主裝置50接收到該完成時間資訊之後,運行於處理器52上的程式(諸如該驅動程式或該應用程式)可控制主裝置50觸發記憶裝置100(例如記憶體控制器110)執行該請求。尤其是,該請求可代表一存取請求,諸如該抹除請求、該寫入請求以及該讀取請求中之一者。例如,當該請求代表該寫入請求,該執行結果可代表對應的確認(acknowledgement),以及該寫入請求可包含資料量資訊,以容許記憶裝置100(例如記憶體控制器110)依據該資料量資訊估測該完成時間,其中該資料量資訊可指出對應於該寫入請求之寫入資料的一資料量。又例如,當該請求代表該讀取請求,該執行結果可代表對應的讀取資料,以及主裝置50可傳送目的地資訊(destination information)至記憶裝置100,以容許記憶裝置100(例如記憶體控制器110)依據該目的地資訊將該執行結果儲存於主裝置50之記憶體56中之一目的地記憶區,其中該目的地資訊可指出該目的地記憶區,尤其是,該目的地資訊可為該目的地記憶區的一記憶位址,但本發明不限於此。再舉一例,當該請求代表該抹除請求,該執行結果可代表對應的確認(acknowledgement),以及該抹除請求可包含範圍資訊,以容許記憶裝置100(例如記憶體控制110)依據該範圍資訊器估測該完成時間,其中該範圍資訊可指出對應於該抹除請求之一位址範圍(例如,對應於非揮發性記憶體120中之一或多個區塊的一或多個邏輯區塊位址(logical block address, LBA))。
第3圖為依據本發明一實施例繪示之該方法的一寫入控制方案,其中主裝置50可在運行於處理器52的程式(諸如該驅動程式或該應用程式)的控制下進行運作,且記憶裝置100可在記憶體控制器110的控制下進行運作。
在步驟S10中,主裝置50(例如運行於處理器52的程式,諸如該驅動程式或該應用程式)可進行寫入資料準備,例如,於記憶體56中分配(allocate)一寫入緩衝區並且將該寫入資料(例如欲寫入記憶裝置100的資料)移動或複製至該寫入緩衝區。
在步驟S11中,主裝置50(例如運行於處理器52的程式,諸如該驅動程式或該應用程式)可傳送該寫入請求,諸如帶有該寫入資料的資料大小的該寫入請求,其中該資料大小可作為該資料量資訊的一個例子。
在步驟S12中,記憶裝置100(例如記憶體控制器110)可依據該資料大小估測該完成時間。舉例來說,在非揮發性記憶體120沒有足夠空間的情況下(例如,非揮發性記憶體120目前沒有足夠的空白區塊,諸如所需數量的空白區塊,其總空間大於該資料大小),記憶體控制器110可能需要進行該先前運作諸如一垃圾收集運作,以準備足夠的空間以供儲存該寫入資料。記憶體控制器110可依據CTE資料庫115中的針對該垃圾收集運作的時間參考資料(例如,產生空白區塊的速度或預定/歷史時間,諸如時間每區塊(time per block))、以及所需的空白區塊的數量,來判斷該垃圾收集運作的準備時間T11,並且可依據CTE資料庫115中的針對編程運作的時間參考資料(例如,編程至空白區塊中的速度或預定/歷史時間,諸如時間每區塊)、以及所需的空白區塊的數量,來判斷將該寫入資料編程至非揮發性記憶體120中所需的編程時間T12,並且可另將該完成時間決定為準備時間T11以及編程時間T12的總和(T11+T12)。例如該寫入請求的完成時間T10可被表示為: T10 = T11 + T12。
在步驟S13中,記憶裝置100(例如記憶體控制器110)可傳送該完成時間資訊(例如指出完成時間T10的時間資訊)。於是,主裝置50可取得完成時間T10。
在步驟S14中,主裝置50(例如運行於處理器52的程式,諸如該驅動程式或該應用程式)可觸發記憶裝置100(例如記憶體控制器100)以執行該寫入請求。尤其是,主裝置50可避免持續地為了該執行結果(例如對應於該寫入請求的確認)進行輪詢,直到完成時間T10已屆時。例如,於完成時間T10已屆時之前,主裝置50可進行其它運作而不花任何時間在為了該執行結果進行輪詢。
在步驟S15中,記憶裝置100(例如記憶體控制器110)可提取(fetch)資料(例如,於記憶體56之寫入緩衝區中的該寫入資料的一部分),並且將該資料寫入非揮發性記憶體120。於是,記憶體控制器110完成了將該寫入資料編程至非揮發性記憶體120中。
在步驟S16中,記憶裝置100(例如記憶體控制器110)可傳送對應於該寫入請求的該確認至主裝置50。
在步驟S17中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可於該完成時間已屆時之後進行輪詢,以依據該確認判斷為完成(例如,該寫入請求的完成狀態)。之後,主裝置50可釋出(release)相關硬體資源諸如上述的寫入緩衝區。
由於記憶裝置100確實將全部的寫入資料儲存至非揮發性記憶體120中,而非將該寫入資料暫存於隨機存取記憶體116中並偽裝成工作完成,該寫入資料在該電子裝置10中是安全的。例如,在電子裝置10實施為包含有主裝置50與多個記憶裝置{100}(例如多個固態硬碟)的一全快閃陣列(All-Flash Array)裝置的情況下,該些記憶裝置{100}的任一者的資料能被妥善的保全(secure)或保護(protect),且主裝置50的錯誤處理機制能夠非常強健穩固。因此,本發明能確保電子裝置10的整體效能。
依據某些實施例,假設該準備運作不存在(例如非揮發性記憶體120具有足夠的空間),且記憶體控制器不需要進行該先前運作諸如該垃圾收集運作,則第3圖所示之準備時間T11可變為零,這表示T10 = T12。
第4圖為依據本發明一實施例繪示之該方法的一讀取控制方案,其中主裝置50可在運行於處理器52的程式(諸如該驅動程式或該應用程式)的控制下進行運作,且記憶裝置100可在記憶體控制器110的控制下進行運作。
在步驟S20中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可傳送該讀取請求,諸如帶有該讀取資料的一邏輯區塊位址(logical block address, LBA)列表的該讀取請求。例如,該邏輯區塊位址列表可包含該讀取資料之至少一邏輯區塊位址(例如一或多個邏輯區塊位址)。
在步驟S21中,記憶裝置100(例如記憶體控制器110)可依據該邏輯區塊位址列表估測該完成時間。例如,在記憶體控制器110於接收到該讀取請求的時間正在進行該先前運作諸如一特定內部運作(例如,一垃圾收集運作、一抹除運作、一損耗平均運作等)的情況下,記憶體控制器110可能需要準備時間T21以供準備停止或暫停該特定內部運作,以避免記憶裝置100的故障。記憶體控制器110可依據CTE資料庫115中的針對停止或暫停該特定內部運作的時間參考資料(例如其預定/歷史時間)來決定準備時間T21,並且可依據CTE資料庫115中的針對該讀取運作的時間參考資料(例如從資料區塊讀取的速度或預定/歷史時間,諸如時間每區塊)、以及對應於上述至少一邏輯區塊位址的區塊的數量,來決定自非揮發性記憶體120讀取該讀取資料所需的讀取時間T22,並且可另將該完成時間決定為準備時間T21以及讀取時間T22的總和(T21 + T22)。例如,該讀取請求之完成時間T20可表示為: T20 = T21 + T22。
在步驟S22中,記憶裝置100(例如記憶體控制器110)可傳送該完成時間資訊(例如,指出完成時間T20的時間資訊)。於是,主裝置50可取得完成時間T20。
在步驟S23中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可進行讀取資料準備,例如,於記憶體56中分配一讀取緩衝區以供儲存該讀取資料(例如,預計從記憶裝置100讀取的資料)之用,其中該讀取緩衝區能作為該目的地記憶區的一個例子。
在步驟S24中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可傳送該目的地資訊(例如該讀取緩衝區的記憶位址)並且觸發記憶裝置100(例如記憶體控制器110)執行該讀取請求。尤其是,主裝置50可避免持續地為了該執行結果(例如對應於該讀取請求的讀取資料)進行輪詢,直到完成時間T20已屆時。例如,在完成時間T20已屆時之前,主裝置50可進行其它運作而不花任何時間在為了該執行結果進行輪詢。
在步驟S25中,記憶裝置100(例如,記憶體控制器110)可讀取資料(例如於非揮發性記憶體120中之該讀取資料的一部分),並且將該資料傳回記憶體56的該讀取緩衝區。於是,記憶體控制器110完成了自非揮發性記憶體120讀取該讀取資料以及將該讀取資料放置於記憶體56的該讀取緩衝區的運作。
在步驟S26中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可於該完成時間已屆時之後進行輪詢,以取得該讀取資料。之後,主裝置50可使用該讀取資料,並且可在需要時釋出相關硬體資源諸如該讀取緩衝區。
依據某些實施例,假設該準備運作不存在,例如,記憶體控制器110於接收到該讀取請求的時間並非正在進行該先前運作諸如該特定內部運作。因此,第4圖所示之準備時間T21可變為零,這表示T20 = T22。
第5圖為依據本發明另一實施例繪示之該方法的一讀取控制方案,其中主裝置50可在運行於處理器52的程式(諸如該驅動程式或該應用程式)的控制下進行運作,且記憶裝置100可在記憶體控制器110的控制下進行運作。
在步驟S30中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可進行讀取資料準備,例如,於記憶體56中分配一讀取緩衝區以供儲存該讀取資料(例如,預計從記憶裝置100讀取的資料)之用,其中該讀取緩衝區能作為該目的地記憶區的一個例子。
在步驟S31中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可傳送該讀取請求,諸如帶有該讀取資料的一邏輯區塊位址列表以及該目的地資訊(例如該讀取緩衝區的記憶位址)的該讀取請求。例如,該邏輯區塊位址列表可包含該讀取資料之至少一邏輯區塊位址(例如一或多個邏輯區塊位址)。
在步驟S32中,記憶裝置100(例如記憶體控制器110)可依據該邏輯區塊位址列表估測該完成時間。例如,在記憶體控制器110於接收到該讀取請求的時間正在進行該先前運作諸如一特定內部運作(例如,一垃圾收集運作、一抹除運作、一損耗平均運作等)的情況下,記憶體控制器110可能需要準備時間T31以供準備停止或暫停該特定內部運作,以避免記憶裝置100的故障。記憶體控制器110可依據CTE資料庫115中的針對停止或暫停該特定內部運作的時間參考資料(例如其預定/歷史時間)來決定準備時間T31,並且可依據CTE資料庫115中的針對該讀取運作的時間參考資料(例如從資料區塊讀取的速度或預定/歷史時間,諸如時間每區塊)、以及對應於上述至少一邏輯區塊位址的區塊的數量,來決定自非揮發性記憶體120讀取該讀取資料所需的讀取時間T32,並且可另將該完成時間決定為準備時間T31以及讀取時間T32的總和(T31 + T32)。例如,該讀取請求之完成時間T30可表示為: T30 = T31 + T32。
在步驟S33中,記憶裝置100(例如記憶體控制器110)可傳送該完成時間資訊(例如,指出完成時間T30的時間資訊)。於是,主裝置50可取得完成時間T30。
在步驟S34中主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可觸發記憶裝置100(例如記憶體控制器110)執行該讀取請求。尤其是,主裝置50可避免持續地為了該執行結果(例如對應於該讀取請求的讀取資料)進行輪詢,直到完成時間T30已屆時。例如,在完成時間T30已屆時之前,主裝置50可進行其它運作而不花任何時間在為了該執行結果進行輪詢。
在步驟S35中,記憶裝置100(例如,記憶體控制器110)可讀取資料(例如於非揮發性記憶體120中之該讀取資料的一部分),並且將該資料傳回記憶體56的該讀取緩衝區。於是,記憶體控制器110完成了自非揮發性記憶體120讀取該讀取資料以及將該讀取資料放置於記憶體56的該讀取緩衝區的運作。
在步驟S36中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可於該完成時間已屆時之後進行輪詢,以取得該讀取資料。之後,主裝置50可使用該讀取資料,並且可在需要時釋出相關硬體資源諸如該讀取緩衝區。
依據某些實施例,假設該準備運作不存在,例如,記憶體控制器110於接收到該讀取請求的時間並非正在進行該先前運作諸如該特定內部運作。因此,第5圖所示之準備時間T31可變為零,這表示T30 = T32。
第6圖為依據本發明一實施例繪示之該方法的一抹除控制方案,其中主裝置50可在運行於處理器52的程式(諸如該驅動程式或該應用程式)的控制下進行運作,且記憶裝置100可在記憶體控制器110的控制下進行運作。
在步驟S40中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可傳送帶有一邏輯區塊位址列表的該抹除請求,其中該邏輯區塊位址列表可作為該範圍資訊的一個例子。依據本實施例,該邏輯區塊位址列表可包含對應非揮發性記憶體120中之至少一區塊(例如一或多個區塊)的至少一邏輯區塊位址(例如一或多個邏輯區塊位址)。
在步驟S41中,記憶裝置100(例如記憶體控制器110)可依據該邏輯區塊位址列表估測該完成時間。例如,在記憶體控制器110於接收到該抹除請求的時間正在進行該先前運作諸如一特定內部運作(例如,一垃圾收集運作、一抹除運作、一損耗平均運作等)的情況下,記憶體控制器110可能需要準備時間T41以供準備停止或暫停該特定內部運作,以避免記憶裝置100的故障。記憶體控制器110可依據CTE資料庫115中的針對停止或暫停該特定內部運作的時間參考資料(例如其預定/歷史時間)來決定準備時間T41,並且可依據CTE資料庫115中的針對該抹除運作的時間參考資料(例如抹除區塊的速度或預定/歷史時間,諸如時間每區塊)、以及對應於步驟S40所述之邏輯區塊位址列表中之上述至少一邏輯區塊位址(例如該一或多個邏輯區塊位址)的區塊的數量,來決定抹除非揮發性記憶體120中之上述至少一區塊(例如該一或多個區塊)所需的抹除時間T42,並且可另將該完成時間決定為準備時間T41以及抹除時間T42的總和(T41 + T42)。例如,該抹除請求之完成時間T40可表示為: T40 = T41 + T42。
在步驟S42中,記憶裝置100(例如記憶體控制器110)可傳送該完成時間資訊(例如,指出完成時間T40的時間資訊)。於是,主裝置50可取得完成時間T40。
在步驟S43中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可觸發記憶裝置100(例如記憶體控制器110)執行該抹除請求。尤其是,主裝置50可避免持續地為了該執行結果(例如對應於該抹除請求的該確認)進行輪詢,直到完成時間T40已屆時。例如,在完成時間T40已屆時之前,主裝置50可進行其它運作而不花任何時間在為了該執行結果進行輪詢。
在步驟S44中,記憶裝置100(例如記憶體控制器110)可抹除非揮發性記憶體120中之上述至少一區塊(例如該一或多個區塊)。於是,記憶體控制器110完成了抹除非揮發性記憶體120中之上述至少一區塊(例如該一或多個區塊)的運作。
在步驟S45中,記憶裝置100(例如記憶體控制器110)可傳送對應於該抹除請求之該確認至主裝置50。
在步驟S46中,主裝置50(例如,運行於處理器52的程式,諸如該驅動程式或該應用程式)可於該完成時間已屆時之後進行輪詢,以依據該確認判斷為完成(例如,該抹除請求的完成狀態)。之後,主裝置50可在需要時為了某些目的使用該(些)區塊。
依據某些實施例,假設該準備運作不存在,例如,記憶體控制器110於接收到該抹除請求的時間並非正在進行該先前運作諸如該特定內部運作。因此,第6圖所示之準備時間T41可變為零,這表示T40 = T42。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置 50:主裝置 52:處理器 54:電源供應電路 56:記憶體 100:記憶裝置 110:記憶體控制器 112:微處理器 112C:程式碼 112M:唯讀記憶體 114:控制邏輯電路 115:CTE資料庫 116:隨機存取記憶體 118:傳輸介面電路 120:非揮發性記憶體 122-1、122-2、:…、122-N:非揮發性記憶體元件 200:工作流程 210、220、S10、S11、S12、S13、S14、S15、S16、S17、S20、S21、S22、S23、S24、S25、S26、S30、S31、S32、S33、S34、S35、S36、S40、S41、S42、S43、S44、S45、S46:步驟 T10、T20、T30、T40:完成時間 T11、T21、T31、T41:準備時間 T12:編程時間 T22、T32:讀取時間 T42:抹除時間
第1圖為依據本發明一實施例之一電子裝置的示意圖。 第2圖為依據本發明一實施例之一種用來進行一記憶裝置的存取管理之方法的一工作流程。 第3圖為依據本發明一實施例繪示之該方法的一寫入控制方案。 第4圖為依據本發明一實施例繪示之該方法的一讀取控制方案。 第5圖為依據本發明另一實施例繪示之該方法的一讀取控制方案。 第6圖為依據本發明一實施例繪示之該方法的一抹除控制方案。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
56:記憶體
100:記憶裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
115:CTE資料庫
116:隨機存取記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1、122-2、...、122-N:非揮發性記憶體元件

Claims (39)

  1. 一種用來進行一記憶裝置的存取(access)管理之方法,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV)以及用來控制該非揮發性記憶體的存取之一記憶體控制器,該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該方法包含: 若一主裝置(host device)傳送一主裝置指令至該記憶裝置,利用該記憶體控制器估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊;以及 利用該記憶體控制器將該完成時間資訊傳送至該主裝置,以容許該主裝置於該完成時間之後進行輪詢(polling)以取得該主裝置指令的一執行結果。
  2. 如申請專利範圍第1項所述之方法,其中該完成時間包含該記憶裝置執行該主裝置指令以產生該執行結果所需的一時期(time period)。
  3. 如申請專利範圍第1項所述之方法,其中該完成時間包含該記憶裝置的一或多個內部運作的時間,以及該一或多個內部運作包含因應該主裝置指令存取該非揮發性記憶體。
  4. 如申請專利範圍第3項所述之方法,其中該記憶裝置先完成一先前運作,若存在,使該記憶裝置處於一備妥(ready)狀態來執行該主裝置指令。
  5. 如申請專利範圍第1項所述之方法,其中該主裝置指令包含一抹除請求、一寫入請求以及一讀取請求中之一者。
  6. 如申請專利範圍第1項所述之方法,其中於傳送該主裝置指令至該記憶裝置的期間,該主裝置運作於一使用者模式(User mode),而非一核模式(Kernel mode)。
  7. 如申請專利範圍第1項所述之方法,其另包含: 於該主裝置傳送該主裝置指令至該記憶裝置之後,控制該主裝置避免持續地為了該執行結果進行輪詢,直到該完成時間已屆時(expire)。
  8. 如申請專利範圍第7項所述之方法,其中控制該主裝置避免持續地為了該執行結果進行輪詢包含: 控制該主裝置進行至少一其它運作,而非持續地為了該執行結果進行輪詢。
  9. 如申請專利範圍第1項所述之方法,其中該主裝置指令包含一請求(request);以及該方法另包含: 於該主裝置接收到該完成時間資訊之後,控制該主裝置觸發該記憶裝置執行該請求。
  10. 如申請專利範圍第9項所述之方法,其中該請求代表一存取請求,且該存取請求是一抹除請求、一寫入請求以及一讀取請求中之一者。
  11. 如申請專利範圍第9項所述之方法,其中該請求代表一寫入請求,該執行結果代表對應的確認(acknowledgement),以及該寫入請求包含資料量資訊,以容許該記憶體控制器依據該資料量資訊估測該完成時間,其中該資料量資訊指出對應於該寫入請求之寫入資料的一資料量。
  12. 如申請專利範圍第9項所述之方法,其中該請求代表一讀取請求,該執行結果代表對應的讀取資料,以及該主裝置傳送目的地資訊(destination information)至該記憶裝置,以容許該記憶裝置依據該目的地資訊將該執行結果儲存於該主裝置之一記憶體中之一目的地記憶區,其中該目的地資訊指出該目的地記憶區。
  13. 如申請專利範圍第9項所述之方法,其中該請求代表一抹除請求,該執行結果代表對應的確認(acknowledgement),以及該抹除請求包含範圍資訊,以容許該記憶體控制器依據該範圍資訊器估測該完成時間,其中該範圍資訊指出對應於該抹除請求之一位址範圍。
  14. 一種記憶裝置,包含: 一非揮發性記憶體(non-volatile memory, NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element);以及 一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之運作,其中該控制器包含: 一處理電路,用來依據來自一主裝置(host device)的複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中: 若該主裝置傳送一主裝置指令至該記憶裝置,該控制器估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊;以及 該控制器將該完成時間資訊傳送至該主裝置,以容許該主裝置於該完成時間之後進行輪詢(polling)以取得該主裝置指令的一執行結果。
  15. 如申請專利範圍第14項所述之記憶裝置,其中該完成時間包含該記憶裝置執行該主裝置指令以產生該執行結果所需的一時期(time period)。
  16. 如申請專利範圍第14項所述之記憶裝置,其中該完成時間包含該記憶裝置的一或多個內部運作的時間,以及該一或多個內部運作包含因應該主裝置指令存取該非揮發性記憶體。
  17. 如申請專利範圍第16項所述之記憶裝置,其中該記憶裝置先完成一先前運作,若存在,使該記憶裝置處於一備妥(ready)狀態來執行該主裝置指令。
  18. 如申請專利範圍第14項所述之記憶裝置,其中該主裝置指令包含一抹除請求、一寫入請求以及一讀取請求中之一者。
  19. 一種包含如申請專利範圍第14項所述之記憶裝置的電子裝置,另包含: 該主裝置,耦接至該記憶裝置,其中該主裝置包含: 至少一處理器,用來控制該主裝置之運作;以及 一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置; 其中該記憶裝置提供儲存空間給該主裝置。
  20. 一種記憶裝置之控制器,該記憶裝置包含該控制器以及一非揮發性記憶體(non-volatile memory, NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該控制器包含: 一處理電路,用來依據來自一主裝置(host device)的複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中: 若該主裝置傳送一主裝置指令至該記憶裝置,該控制器估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊;以及 該控制器將該完成時間資訊傳送至該主裝置,以容許該主裝置於該完成時間之後進行輪詢(polling)以取得該主裝置指令的一執行結果。
  21. 一種用來進行一記憶裝置的存取(access)管理之方法,該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV)以及用來控制該非揮發性記憶體的存取之一記憶體控制器,該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該方法包含: 控制一主裝置(host device)傳送一主裝置指令至該記憶裝置,並且利用該記憶體控制器估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊;以及 依據傳送自該記憶體控制器的該完成時間資訊,控制該主裝置於該完成時間之後進行輪詢(polling)以取得該主裝置指令的一執行結果。
  22. 如申請專利範圍第21項所述之方法,其中該完成時間包含該記憶裝置執行該主裝置指令以產生該執行結果所需的一時期(time period)。
  23. 如申請專利範圍第21項所述之方法,其中該完成時間包含該記憶裝置的一或多個內部運作的時間,以及該一或多個內部運作包含因應該主裝置指令存取該非揮發性記憶體。
  24. 如申請專利範圍第23項所述之方法,其中該記憶裝置先完成一先前運作,若存在,使該記憶裝置處於一備妥(ready)狀態來執行該主裝置指令。
  25. 如申請專利範圍第21項所述之方法,其中該主裝置指令包含一抹除請求、一寫入請求以及一讀取請求中之一者。
  26. 如申請專利範圍第21項所述之方法,其中於傳送該主裝置指令至該記憶裝置的期間,該主裝置運作於一使用者模式(User mode),而非一核模式(Kernel mode)。
  27. 如申請專利範圍第21項所述之方法,其另包含: 於該主裝置傳送該主裝置指令至該記憶裝置之後,控制該主裝置避免持續地為了該執行結果進行輪詢,直到該完成時間已屆時(expire)。
  28. 如申請專利範圍第27項所述之方法,其中控制該主裝置避免持續地為了該執行結果進行輪詢包含: 控制該主裝置進行至少一其它運作,而非持續地為了該執行結果進行輪詢。
  29. 如申請專利範圍第21項所述之方法,其中該主裝置指令包含一請求(request);以及該方法另包含: 於該主裝置接收到該完成時間資訊之後,控制該主裝置觸發該記憶裝置執行該請求。
  30. 如申請專利範圍第29項所述之方法,其中該請求代表一存取請求,且該存取請求是一抹除請求、一寫入請求以及一讀取請求中之一者。
  31. 如申請專利範圍第29項所述之方法,其中該請求代表一寫入請求,該執行結果代表對應的確認(acknowledgement),以及該寫入請求包含資料量資訊,以容許該記憶體控制器依據該資料量資訊估測該完成時間,其中該資料量資訊指出對應於該寫入請求之寫入資料的一資料量。
  32. 如申請專利範圍第29項所述之方法,其中該請求代表一讀取請求,該執行結果代表對應的讀取資料,以及該主裝置傳送目的地資訊(destination information)至該記憶裝置,以容許該記憶裝置依據該目的地資訊將該執行結果儲存於該主裝置之一記憶體中之一目的地記憶區,其中該目的地資訊指出該目的地記憶區。
  33. 如申請專利範圍第29項所述之方法,其中該請求代表一抹除請求,該執行結果代表對應的確認(acknowledgement),以及該抹除請求包含範圍資訊,以容許該記憶體控制器依據該範圍資訊器估測該完成時間,其中該範圍資訊指出對應於該抹除請求之一位址範圍。
  34. 一種主裝置(host device),包含: 至少一處理器,用來控制該主裝置的運作以及進行一記憶裝置的存取(access)管理,其中該記憶裝置包含一非揮發性記憶體(non-volatile memory, NV)以及用來控制該非揮發性記憶體的存取之一記憶體控制器,以及該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element); 其中該至少一處理器控制該主裝置傳送一主裝置指令至該記憶裝置,並且利用該記憶體控制器估測(estimate)該主裝置指令的一完成時間(completion time),以產生對應於該完成時間之完成時間資訊;以及 依據傳送自該記憶體控制器的該完成時間資訊,該至少一處理器控制該主裝置於該完成時間之後進行輪詢(polling)以取得該主裝置指令的一執行結果。
  35. 如申請專利範圍第34項所述之主裝置,其中該完成時間包含該記憶裝置執行該主裝置指令以產生該執行結果所需的一時期(time period)。
  36. 如申請專利範圍第34項所述之主裝置,其中該完成時間包含該記憶裝置的一或多個內部運作的時間,以及該一或多個內部運作包含因應該主裝置指令存取該非揮發性記憶體。
  37. 如申請專利範圍第36項所述之主裝置,其中該記憶裝置先完成一先前運作,若存在,使該記憶裝置處於一備妥(ready)狀態來執行該主裝置指令。
  38. 如申請專利範圍第34項所述之主裝置,其中該主裝置指令包含一抹除請求、一寫入請求以及一讀取請求中之一者。
  39. 如申請專利範圍第34項所述之主裝置,另包含: 一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置; 其中該記憶裝置提供儲存空間給該主裝置。
TW108125912A 2019-01-24 2019-07-23 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置 TWI735918B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/257,022 US10942677B2 (en) 2019-01-24 2019-01-24 Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device
US16/257,022 2019-01-24

Publications (2)

Publication Number Publication Date
TW202046114A true TW202046114A (zh) 2020-12-16
TWI735918B TWI735918B (zh) 2021-08-11

Family

ID=71732481

Family Applications (2)

Application Number Title Priority Date Filing Date
TW110124943A TWI789817B (zh) 2019-01-24 2019-07-23 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置
TW108125912A TWI735918B (zh) 2019-01-24 2019-07-23 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW110124943A TWI789817B (zh) 2019-01-24 2019-07-23 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置

Country Status (3)

Country Link
US (1) US10942677B2 (zh)
CN (2) CN115050409A (zh)
TW (2) TWI789817B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI750811B (zh) * 2020-09-16 2021-12-21 英柏得科技股份有限公司 用於記憶體的資料保護寫入方法、用於記憶體的資料保護讀取方法以及記憶體資料保護系統

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200083048A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 폴링 시간을 예측하는 뉴럴 네트워크 시스템 및 이를 이용한 뉴럴 네트워크 모델 처리 방법
US11669272B2 (en) * 2019-05-31 2023-06-06 Micron Technology, Inc. Predictive data transfer based on availability of media units in memory sub-systems
JP7366795B2 (ja) * 2020-02-14 2023-10-23 キオクシア株式会社 メモリシステムおよび制御方法
US11354041B2 (en) * 2020-06-12 2022-06-07 Western Digital Technologies, Inc. Read latency reduction through command and polling overhead avoidance
US11915047B2 (en) 2020-06-30 2024-02-27 Western Digital Technologies, Inc. Managing storage device compute operations
US11681466B2 (en) * 2020-06-30 2023-06-20 Western Digital Technologies, Inc. Proactive storage operation management
CN113867640A (zh) * 2021-09-28 2021-12-31 合肥兆芯电子有限公司 存储器轮询方法、存储器存储装置及存储器控制电路单元
US20230359550A1 (en) * 2022-05-05 2023-11-09 Western Digital Technologies, Inc. File system integration into data mining model

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047533B2 (en) * 2001-09-10 2006-05-16 Hewlett-Packard Development Company, L.P. Wait utility and method
US8813052B2 (en) 2005-12-07 2014-08-19 Microsoft Corporation Cache metadata for implementing bounded transactional memory
US8117415B2 (en) * 2006-09-18 2012-02-14 Sandisk Il Ltd. Storage device estimating a completion time for a storage operation
KR100925499B1 (ko) * 2007-02-06 2009-11-05 한국해양연구원 박용기관 배기가스의 전자인증 시스템
US9003414B2 (en) * 2010-10-08 2015-04-07 Hitachi, Ltd. Storage management computer and method for avoiding conflict by adjusting the task starting time and switching the order of task execution
US8527693B2 (en) 2010-12-13 2013-09-03 Fusion IO, Inc. Apparatus, system, and method for auto-commit memory
US20120278819A1 (en) 2011-04-26 2012-11-01 Byungcheol Cho Polling-driven device driver interface
US20140047210A1 (en) * 2012-08-08 2014-02-13 Lsi Corporation Trim mechanism using multi-level mapping in a solid-state media
KR102094902B1 (ko) * 2013-07-08 2020-03-30 삼성전자주식회사 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템
US20170206033A1 (en) * 2016-01-19 2017-07-20 SK Hynix Inc. Mechanism enabling the use of slow memory to achieve byte addressability and near-dram performance with page remapping scheme
CN110119248B (zh) * 2016-12-05 2021-10-15 华为技术有限公司 数据读写命令的控制方法、存储设备和系统
US10068663B1 (en) * 2017-05-30 2018-09-04 Seagate Technology Llc Data storage device with rewriteable in-place memory
KR20190010335A (ko) * 2017-07-21 2019-01-30 삼성전자주식회사 레이턴시 정보를 저장하는 저장 장치, 프로세서 및 컴퓨팅 시스템
JP2019049949A (ja) * 2017-09-12 2019-03-28 東芝メモリ株式会社 ストレージデバイス
CN108958950A (zh) * 2018-05-29 2018-12-07 联发科技(新加坡)私人有限公司 电子存储设备的任务管理方法、主机和存储装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI750811B (zh) * 2020-09-16 2021-12-21 英柏得科技股份有限公司 用於記憶體的資料保護寫入方法、用於記憶體的資料保護讀取方法以及記憶體資料保護系統

Also Published As

Publication number Publication date
US10942677B2 (en) 2021-03-09
CN111554340A (zh) 2020-08-18
TWI735918B (zh) 2021-08-11
TW202139012A (zh) 2021-10-16
CN115050409A (zh) 2022-09-13
CN111554340B (zh) 2022-06-28
US20200241795A1 (en) 2020-07-30
TWI789817B (zh) 2023-01-11

Similar Documents

Publication Publication Date Title
TWI735918B (zh) 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置
US9778878B2 (en) Method and system for limiting write command execution
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
US9472244B2 (en) Apparatus power control
KR20200064499A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US10599345B2 (en) Memory device that writes data into a block based on time passage since erasure of data from the block
US11150822B2 (en) Memory system for determining usage of a buffer based on I/O throughput and operation method thereof
TWI684860B (zh) 用來進行讀取加速之方法以及資料儲存裝置及其控制器
WO2016069196A1 (en) Method and system for throttling power consumption
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
TWI748410B (zh) 用來針對非揮發性記憶體進行區塊管理的方法以及設備
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
CN110806837A (zh) 数据处理系统及其操作方法
CN110895449B (zh) 用于在存储器系统中管理有效数据的装置和方法
TWI798806B (zh) 藉助於熱控制單元以使用動態速度調整的資料存取方法以及相關設備
US11922062B2 (en) Controller and operating method thereof
KR20190051530A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
TWI810095B (zh) 資料儲存裝置與寫入緩存器管理方法
TWI828391B (zh) 資料儲存裝置與資料儲存裝置之緩存器大小估計方法
KR102721567B1 (ko) 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법
TWI814625B (zh) 資料儲存裝置與寫入緩存器管理方法
TWI822398B (zh) 資料儲存裝置與資料儲存裝置之緩存器大小估計方法
US11275694B2 (en) Memory system and method of operating method thereof
US20230244402A1 (en) Storage device and operating method of storage device