TW201939283A - 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 - Google Patents

主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 Download PDF

Info

Publication number
TW201939283A
TW201939283A TW107108606A TW107108606A TW201939283A TW 201939283 A TW201939283 A TW 201939283A TW 107108606 A TW107108606 A TW 107108606A TW 107108606 A TW107108606 A TW 107108606A TW 201939283 A TW201939283 A TW 201939283A
Authority
TW
Taiwan
Prior art keywords
memory
storage device
buffer
host
physical address
Prior art date
Application number
TW107108606A
Other languages
English (en)
Other versions
TWI668569B (zh
Inventor
賀孝淇
鄔正男
朱健華
Original Assignee
群聯電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 群聯電子股份有限公司 filed Critical 群聯電子股份有限公司
Priority to TW107108606A priority Critical patent/TWI668569B/zh
Priority to US15/978,198 priority patent/US20190286351A1/en
Application granted granted Critical
Publication of TWI668569B publication Critical patent/TWI668569B/zh
Publication of TW201939283A publication Critical patent/TW201939283A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage 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/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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
    • 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/1028Power efficiency
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元,此方法包括:載入記憶體儲存裝置的選項唯讀記憶體的初始化程式至主機系統的緩衝記憶體;執行初始化程式,以在主機系統的緩衝記憶體中配置連續實體位址給記憶體儲存裝置作為記憶體儲存裝置的主機記憶體緩衝區,並在連續實體位址上設定標記並且儲存標記。此方法還包括:當接收到對應暫停至記憶體模式的重啟指令時,重新與連續實體位址建立連結,並且判斷在連續實體位址上設定的標記是否相同於所儲存的標記;若標記相同,則繼續使用連續實體位址作為記憶體儲存裝置的主機記憶體緩衝區。

Description

主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元
本發明是有關於一種主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元。
對於不同功能的記憶體儲存裝置,為了能夠完全發揮記憶體儲存裝置提高電子設備性能的作用,目前主機系統已具備為記憶體儲存裝置提供記憶體緩衝區(host memory buffer,HMB)的功能。例如儲存空間為1TB的SSD(Solid State Drives)固態硬碟,主機系統例如提供儲存空間大小約為1GB作為其主機記憶體緩衝區。在分配主機記憶體緩衝區時,主機系統驅動主機記憶體緩衝區一般有兩個時機,驅動加載發現記憶體儲存裝置時以及運行過程中記憶體儲存裝置異常或命令觸發重啟時。
為了提高電子設備的性能,通常採用在主機系統上增加記憶體儲存裝置,主機系統上設有的驅動層通過選項唯讀記憶體以及SSD固態硬碟的自定義命令,在記憶體儲存裝置驅動加載過程中,主機系統根據記憶體儲存裝置記憶體配置參數提供具有連續實體位址的主機記憶體緩衝區給記憶體儲存裝置,以便於主機系統通過分配的主機記憶體緩衝區能夠訪問記憶體儲存裝置及記憶體儲存裝置的具體位置。並且,在記憶體儲存裝置重啟或移除時將記憶體釋放回主機系統。
上述過程中主機系統通過驅動層與記憶體儲存裝置通訊,這就需要主機系統的驅動層與記憶體儲存裝置的驅動程式相容,否則無法實現驅動記憶體儲存裝置初始化或給記憶體儲存裝置配置具有連續的實體位址的記憶體。然後,透過驅動層的方式配置主機記憶體緩衝區,需要主機系統安裝有對應的驅動程式,因此若使用者未在主機系統中安裝驅動程式會使得主機記憶體緩衝區的功能無法被開始,造成使用者的不便。
本發明提供一種主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元。本發明不需要驅動層與記憶體儲存裝置的驅動程式相容即可實現對主機記憶體緩衝區的彈性配置。
本發明提供一種主機記憶體緩衝區配置方法,此方法包括:載入記憶體儲存裝置的選項唯讀記憶體的初始化程式至主機系統的緩衝記憶體;執行初始化程式,以在主機系統的緩衝記憶體中配置連續實體位址給記憶體儲存裝置作為記憶體儲存裝置的主機記憶體緩衝區,在連續實體位址上設定標記並且儲存標記。
在本發明的一範例實施例中,上述的主機記憶體緩衝區配置方法更包括:,當接收到對應暫停至記憶體模式的重啟指令時,重新與連續實體位址建立連結,判斷在連續實體位址上設定的標記是否相同於所儲存的標記,若在連續實體位址上設定的標記相同於所儲存的標記時,則繼續使用連續實體位址作為記憶體儲存裝置的主機記憶體緩衝區。
在本發明的一範例實施例中,上述的主機記憶體緩衝區配置方法更包括:當接收到對應暫停至磁碟模式的重啟指令或暖重置指令時,從記憶體儲存裝置的選項唯讀記憶體重新載入初始化程式至主機系統的緩衝記憶體;重新執行初始化程式,以在主機系統的緩衝記憶體中配置另一連續實體位址給記憶體儲存裝置作為記憶體儲存裝置的主機記憶體緩衝區,並在另一連續實體位址上設定另一標記;以及儲存另一標記。
在本發明的一範例實施例中,上述的主機記憶體緩衝區配置方法更包括:當接收到對應斷電狀態的重啟指令時,重新初始化記憶體儲存裝置,並且重新建立與連續實體位址的連結。
在本發明的一範例實施例中,其中斷電狀態包括裝置電源關閉狀態、非揮發性記憶體子系統重置或功能層重置。
在本發明的一範例實施例中,上述的主機記憶體緩衝區配置方法更包括:在記憶體儲存裝置正常關閉後,在作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上設置對應正常關閉狀態的標籤。
在本發明的一範例實施例中,上述的主機記憶體緩衝區配置方法更包括:在記憶體儲存裝置重新上電後,判斷作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上是否有對應正常關閉狀態的標籤;以及若作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上儲存有對應正常關閉狀態的標籤時,識別記憶體儲存裝置處於正常關閉狀態後的重啟。
本發明提供的一種記憶體儲存裝置,包括連接介面單元、可複寫式非揮發性記憶體模組、選項唯讀記憶體與記憶體控制電路單元。連接介面單元用以電性連接至主機系統。選項唯讀記憶體用以儲存有初始化程式,其中當主機系統上電時會載入初始化程式至主機系統的緩衝記憶體,並執行初始化程式,以在主機系統的緩衝記憶體中配置連續實體位址作為主機記憶體緩衝區,並且在連續實體位址上設定標記。記憶體控制電路單元電性連接至選項唯讀記憶體、連接介面單元與可複寫式非揮發性記憶體模組並用以儲存上述標記。
在本發明的一範例實施例中,其中當記憶體控制電路單元接收到對應暫停至記憶體模式的重啟指令時,記憶體控制電路單元用以重新與連續實體位址建立連結,並且判斷在連續實體位址上設定的標記是否相同於所儲存的標記,若在連續實體位址上設定的標記相同於所儲存的標記時,則記憶體控制電路單元用以繼續使用連續實體位址作為記憶體儲存裝置的主機記憶體緩衝區。
在本發明的一範例實施例中,其中當記憶體控制電路單元接收到暫停至磁碟模式的重啟指令或暖重置指令時,記憶體控制電路單元更用以從選項唯讀記憶體重新載入初始化程式至主機系統的緩衝記憶體並且重新執行初始化程式;記憶體控制電路單元更用以重新配置另一連續實體位址給記憶體儲存裝置作為記憶體儲存裝置的主機記憶體緩衝區,並在另一連續實體位址上設定另一標記且儲存另一標記。
在本發明的一範例實施例中,當記憶體控制電路單元接收到對應斷電狀態的重啟指令時,記憶體控制電路單元更用以重新初始化記憶體儲存裝置,並且重新建立與連續實體位址的連結。
在本發明的一範例實施例中,其中在記憶體儲存裝置正常關閉後,記憶體控制電路單元更用以在作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上設置對應正常關閉狀態的標籤。
在本發明的一範例實施例中,其中在記憶體儲存裝置重新上電後,記憶體控制電路單元更用以判斷作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上是否有對應正常關閉狀態的標籤。若作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上儲存有對應正常關閉狀態的標籤時,記憶體控制電路單元更用以識別記憶體儲存裝置處於正常關閉狀態後的重啟。
本發明提供的一種記憶體控制電路單元,包括:主機介面、記憶體介面與記憶體管理電路。主機介面用以電性連接至主機系統;記憶體介面,用以電性連接至可複寫式非揮發性記憶體模組與選項唯讀記憶體。選項唯讀記憶體儲存有初始化程式,其中當主機系統上電時會載入初始化程式至主機系統的緩衝記憶體,並執行初始化程式,以在主機系統的緩衝記憶體中配置連續實體位址作為主機記憶體緩衝區,並且在連續實體位址上設定標記。記憶體管理電路電性連接至主機介面與記憶體介面並用以儲存標記。
在本發明的一範例實施例中,其中當記憶體管理電路收到對應暫停至記憶體模式的重啟指令時,記憶體管理電路用以重新與連續實體位址建立連結,並且判斷在連續實體位址上設定的標記是否相同於所儲存的標記。若在連續實體位址上設定的標記相同於所儲存的標記時,則記憶體管理電路用以繼續使用連續實體位址作為記憶體儲存裝置的主機記憶體緩衝區。
在本發明的一範例實施例中,其中當記憶體管理電路接收到暫停至磁碟模式的重啟指令或暖重置指令時,記憶體管理電路更用以從選項唯讀記憶體重新載入初始化程式至主機系統的緩衝記憶體並且重新執行初始化程式;記憶體管理電路更用以重新配置另一連續實體位址給記憶體儲存裝置作為記憶體儲存裝置的主機記憶體緩衝區,並在另一連續實體位址上設定另一標記;以及記憶體控制電路單元更用以儲存另一標記。
在本發明的一範例實施例中,其中當記憶體管理電路接收到對應斷電狀態的重啟指令時,記憶體管理電路更用以重新初始化記憶體儲存裝置,並且重新建立與連續實體位址的連結。
在本發明的一範例實施例中,其中斷電狀態包括裝置電源關閉狀態、非揮發性記憶體子系統重置或功能層重置。
在本發明的一範例實施例中,其中在記憶體儲存裝置正常關閉後,記憶體管理電路更用以在作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上設置對應正常關閉狀態的標籤。
在本發明的一範例實施例中,其中在記憶體儲存裝置重新上電後,記憶體管理電路更用以判斷作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上是否有對應正常關閉狀態的標籤;以及若作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上儲存有對應正常關閉狀態的標籤時,記憶體管理電路更用以識別記憶體儲存裝置處於正常關閉狀態後的重啟。
基於上述,本發明提供的主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元,利用選項唯讀記憶體以及根據記憶體儲存裝置的記憶體配置參數在主機系統自休眠模式重啟後實現對主機記憶體緩衝區的彈性配置。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路單元)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖,並且圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。
請參照圖1與圖2,主機系統11一般包括處理器111、隨機存取記憶體(random access memory, RAM)112、唯讀記憶體(read only memory, ROM)113及資料傳輸介面114。處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114皆耦接至系統匯流排(system bus)110。
在本範例實施例中,主機系統11是透過資料傳輸介面114與記憶體儲存裝置10耦接。例如,主機系統11可經由資料傳輸介面114將資料寫入至記憶體儲存裝置10或從記憶體儲存裝置10中讀取資料。此外,主機系統11是透過系統匯流排110與I/O裝置12耦接。例如,主機系統11可經由系統匯流排110將輸出訊號傳送至I/O裝置12或從I/O裝置12接收輸入訊號。
在本範例實施例中,處理器111、隨機存取記憶體112、唯讀記憶體113及資料傳輸介面114是可設置在主機系統11的主機板20上。資料傳輸介面114的數目可以是一或多個。透過資料傳輸介面114,主機板20可以經由有線或無線方式耦接至記憶體儲存裝置10。記憶體儲存裝置10可例如是隨身碟201、記憶卡202、固態硬碟(Solid State Drive, SSD)203或無線記憶體儲存裝置204。無線記憶體儲存裝置204可例如是近距離無線通訊(Near Field Communication Storage, NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板20也可以透過系統匯流排110耦接至全球定位系統(Global Positioning System, GPS)模組205、網路介面卡206、無線傳輸裝置207、鍵盤208、螢幕209、喇叭210等各式I/O裝置。例如,在一範例實施例中,主機板20可透過無線傳輸裝置207存取無線記憶體儲存裝置204。
在一範例實施例中,所提及的主機系統為可實質地與記憶體儲存裝置配合以儲存資料的任意系統。雖然在上述範例實施例中,主機系統是以電腦系統來作說明,然而,圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。請參照圖3,在另一範例實施例中,主機系統31也可以是數位相機、攝影機、通訊裝置、音訊播放器、視訊播放器或平板電腦等系統,而記憶體儲存裝置30可為其所使用的SD卡32、CF卡33或嵌入式儲存裝置34等各式非揮發性記憶體儲存裝置。嵌入式儲存裝置34包括嵌入式多媒體卡(embedded MMC, eMMC)341及/或嵌入式多晶片封裝儲存裝置(embedded Multi Chip Package, eMCP)342等各類型將記憶體模組直接耦接於主機系統的基板上的嵌入式儲存裝置。
圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖4,記憶體儲存裝置10包括連接介面單元402、記憶體控制電路單元404、可複寫式非揮發性記憶體模組406與選項唯讀記憶體(Option ROM)408。
在本範例實施例中,連接介面單元402是相容於安全數位(Secure Digital, SD)介面標準。然而,必須瞭解的是,本發明不限於此,連接介面單元402亦可以是符合序列先進附件(Serial Advanced Technology Attachment, SATA)標準、並列先進附件(Parallel Advanced Technology Attachment, PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers, IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準、通用序列匯流排(Universal Serial Bus, USB)標準、超高速一代(Ultra High Speed-I, UHS-I)介面標準、超高速二代(Ultra High Speed-II, UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card, MMC)介面標準、嵌入式多媒體儲存卡(Embedded Multimedia Card, eMMC)介面標準、通用快閃記憶體(Universal Flash Storage, UFS)介面標準、嵌入式多晶片封裝(embedded Multi Chip Package, eMCP)介面標準、小型快閃(Compact Flash, CF)介面標準、整合式驅動電子介面(Integrated Device Electronics, IDE)標準或其他適合的標準。在本範例實施例中,連接介面單元402可與記憶體控制電路單元404封裝在一個晶片中,或者連接介面單元402是佈設於一包含記憶體控制電路單元之晶片外。
記憶體控制電路單元404用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取與抹除等操作。例如,記憶體控制電路單元404具有微處理器單元(未繪示)與暫存器(未繪示),在根據主機系統11的指令在可複寫式非揮發性記憶體模組406中進行資料的寫入、讀取或其他操作時,暫存器可以暫存與寫入、讀取指令或其他操作指令相關的資料。
可複寫式非揮發性記憶體模組406是耦接至記憶體控制電路單元404並且用以儲存主機系統11所寫入之資料。可複寫式非揮發性記憶體模組406可以是單階記憶胞(Single Level Cell, SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell, MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、複數階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
選項唯讀記憶體(Option Read-Only Memory,option ROM)408是耦接至記憶體控制電路單元404並且通過記憶體控制電路單元404執行選項唯讀記憶體408內儲存的加電自檢程式、初始化程式等程式以提供實現例如加電自檢(Power-on self-test,POST)、初始化等操作的固件。
圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。
請參照圖5,記憶體控制電路單元404包括記憶體管理電路502、主機介面504與記憶體介面506。
記憶體管理電路502用以控制記憶體控制電路單元404的整體運作。具體來說,記憶體管理電路502具有多個控制指令,並且在記憶體儲存裝置10運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
在本範例實施例中,記憶體管理電路502的控制指令是以韌體型式來實作。例如,記憶體管理電路502具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置10運作時,此些控制指令會由微處理器單元來執行以進行資料的寫入、讀取與抹除等運作。
在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組406的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路502具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼,並且當記憶體控制電路單元404被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組406中之控制指令載入至記憶體管理電路502的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。
此外,在本發明另一範例實施例中,記憶體管理電路502的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路502包括微控制器、記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路。記憶胞管理電路、記憶體寫入電路、記憶體讀取電路、記憶體抹除電路與資料處理電路是耦接至微控制器。其中,記憶胞管理電路用以管理可複寫式非揮發性記憶體模組406的實體抹除單元;記憶體寫入電路用以對可複寫式非揮發性記憶體模組406下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組406中;記憶體讀取電路用以對可複寫式非揮發性記憶體模組406下達讀取指令以從可複寫式非揮發性記憶體模組406中讀取資料;記憶體抹除電路用以對可複寫式非揮發性記憶體模組406下達抹除指令以將資料從可複寫式非揮發性記憶體模組406中抹除;而資料處理電路用以處理欲寫入至可複寫式非揮發性記憶體模組406的資料以及從可複寫式非揮發性記憶體模組406中讀取的資料。
主機介面504是耦接至記憶體管理電路502並且用以耦接至連接介面單元402,以接收與識別主機系統11所傳送的指令與資料。也就是說,主機系統11所傳送的指令與資料會透過主機介面504來傳送至記憶體管理電路502。在本範例實施例中,主機介面504是相容於SATA標準。然而,必須瞭解的是本發明不限於此,主機介面504亦可以是相容於PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I介面標準 、UHS-II介面標準、SD標準 、MS標準、MMC標準、CF標準、IDE標準或其他適合的資料傳輸標準。
記憶體介面506是耦接至記憶體管理電路502並且用以存取可複寫式非揮發性記憶體模組406及選項唯讀記憶體408。也就是說,欲寫入至可複寫式非揮發性記憶體模組406的資料會經由記憶體介面506轉換為可複寫式非揮發性記憶體模組406所能接受的格式。記憶體管理電路502透過記憶體介面506將選項唯讀記憶體408儲存的初始化程式載入主機系統11。
在一範例實施例中,記憶體控制電路單元404還包括緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512。
緩衝記憶體508是耦接至記憶體管理電路502並且用以暫存來自於主機系統11的資料與指令或來自於可複寫式非揮發性記憶體模組406的資料。
電源管理電路510是耦接至記憶體管理電路502並且用以控制記憶體儲存裝置10的電源。
錯誤檢查與校正電路512是耦接至記憶體管理電路502並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路502從主機系統11中接收到寫入指令時,錯誤檢查與校正電路512會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),並且記憶體管理電路502會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路512會根據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
在本範例實施例中,錯誤檢查與校正電路512是以低密度奇偶檢查碼(low density parity code,LDPC)來實作。然而,在另一範例實施例中,錯誤檢查與校正電路512也可以BCH碼、迴旋碼(convolutional code)、渦輪碼(turbo code)、位元翻轉(bit flipping)等編碼/解碼演算法來實作。
具體來說,記憶體管理電路202會依據所接收之資料及對應的錯誤檢查與校正碼(以下亦稱為錯誤校正碼)來產生錯誤校正碼框(ECC Frame)並且將錯誤校正碼框寫入至可複寫式非揮發性記憶體模組406中。之後,當記憶體管理電路502從可複寫式非揮發性記憶體模組406讀取資料時,錯誤檢查與校正電路512會根據錯誤校正碼框中的錯誤校正碼來驗證所讀取之資料的正確性。
以下描述記憶體管理電路502、主機介面504與記憶體介面506、緩衝記憶體508、電源管理電路510與錯誤檢查與校正電路512所執行的操作,亦可參考為由記憶體控制電路單元404所執行。
圖6是根據一範例實施例所繪示的主機系統、記憶體儲存裝置的概要方塊圖。
請參照圖6,主機系統11包括緩衝記憶體(即RAM)112,可以依據與主機系統11電性連接的記憶體儲存裝置10的記憶體配置參數在緩衝記憶體112上配置連續實體位址以作為主機記憶體緩衝區1121給記憶體儲存裝置10。主機記憶體緩衝區1121用以於當主機系統11使用與其電性連接的記憶體儲存裝置10時,可提供給記憶體儲存裝置10作為擴展的記憶體,以提高記憶體儲存裝置10的性能。
記憶體儲存裝置10包括選項唯讀記憶體408。選項唯讀記憶體408內儲存有初始化程式。於一範例實施例中,記憶體儲存裝置10以固態硬碟為例。然而必須了解的是,記憶體儲存裝置10也可以是隨身碟等其他可外接於主機系統11並且可提高主機系統性能的電子裝置,不以此為限。
記憶體儲存裝置10電性連接於主機系統11上時,主機系統11掃描與其電性連接的記憶體儲存裝置10,若記憶體儲存裝置10的選項唯讀記憶體408內儲存有初始化程式,則主機系統11會將此初始化程式載入至主機系統11的緩衝記憶體112中並執行此初始化程式。並且,主機系統11根據此初始化程式設定的記憶體配置參數在緩衝記憶體112中配置連續實體位址作為主機記憶體緩衝區1121,並且在此連續實體位址的主機記憶體緩衝區1121上設定標記。
以下結合圖7至圖11,結合範例實施例具體說明在不同的休眠模式下重啟時,判斷是否需要重新配置主機記憶體緩衝區。
圖7是根據一範例實施例所繪示的主機系統上電後配置主機記憶體緩衝區的流程示意圖。
請參照圖7,於一範例實施例中,在步驟S701中,主機系統11上電時會掃描與主機系統11電性連接的記憶體儲存裝置10內是否儲存有初始化程式。
若記憶體儲存裝置10內儲存有初始化程式,在步驟S703中主機系統11會將此初始化程式載入至主機系統11的緩衝記憶體112並執行此初始化程式。
在步驟S705中,主機系統11根據此初始化程式設定的記憶體配置參數在主機系統11的緩衝記憶體112中配置連續實體位址以作為主機記憶體緩衝區1121,並在連續實體位址上設定標記,並且記憶體控制電路單元404儲存此標記至暫存器。
圖8是根據一範例實施例所繪示的記憶體控制電路單元接收到對應暫停至記憶體模式的重啟指令的流程示意圖。
請參照圖8,在步驟S801中,當記憶體控制電路單元404接收到對應暫停至記憶體模式的重啟指令時,記憶體控制電路單元404重新與連續實體位址建立連結。
在步驟S803中,記憶體控制電路單元404會判斷在連續實體位址上設定的標記是否相同於所儲存的標記。若在連續實體位址上設定的標記不同於所儲存的標記時,則執行步驟S703。
若在連續實體位址上設定的標記相同於所儲存的標記時,則在步驟S805中記憶體控制電路單元404繼續使用連續實體位址作為記憶體儲存裝置10的主機記憶體緩衝區1121。
更詳細地說,當記憶體控制電路單元404接收到對應暫停至記憶體模式的重啟指令時,主機系統11是從S3(暫停至記憶體(Suspend to RAM),簡稱STR)的休眠模式中重啟。在S3休眠模式中,僅對主機系統11的主機記憶體緩衝區1121供電,而主機系統11的其他元件以及記憶體儲存裝置10斷電。此時,主機系統11在進入S3模式前的工作狀態資訊儲存至主機記憶體緩衝區1121中。當主機系統11從S3休眠模式中重啟後,可以直接從主機記憶體緩衝區1121中讀取資訊並且將主機系統11恢復至進入S3模式前的工作狀態。也就是說,記憶體控制電路單元404只需比較主機系統11重啟後在連續實體位址設定的標記是否相同於主機系統11重啟前所儲存的標記,即可判斷是否可以直接使用進入S3休眠模式之前配置的主機記憶體緩衝區1121。因此,主機系統11不需重新載入初始化程式,更不需要重新配置主機記憶體緩衝區1121即可直接進入作業系統。
圖9是根據一範例實施例所繪示的記憶體控制電路單元接收到暫停至磁碟(Suspend to disk)模式的重啟指令或暖重置指令的流程示意圖。
請參照圖9,當記憶體控制電路單元404接收到暫停至磁碟模式的重啟指令或暖重置(Warm Reset)指令時,在步驟S901中,記憶體控制電路單元404會從選項唯讀記憶體408重新載入初始化程式至主機系統11的緩衝記憶體112並且重新執行初始化程式。
在步驟S903中,記憶體控制電路單元404重新配置另一連續實體位址給記憶體儲存裝置10作為記憶體儲存裝置10的主機記憶體緩衝區1121,並在另一連續實體位址上設定另一標記。
在步驟S905中,記憶體控制電路單元404儲存另一標記。
更詳細地說,當記憶體控制電路單元404接收到暫停至磁碟模式的重啟指令時,主機系統11是從S4(暫停至磁碟(Suspend to Disk),簡稱STD)的休眠模式中重啟。在S4休眠模式中,僅對記憶體儲存裝置10供電,此時,主機系統11在進入S4休眠模式前的工作狀態資訊儲存至記憶體儲存裝置10。當主機系統11從S4休眠模式中重啟後,若需要啟動作業系統,則需要重新載入記憶體儲存裝置10的初始化程式並執行,因此,主機系統11需要重新配置另一連續實體位址的主機記憶體緩衝區1121給記憶體儲存裝置10。
圖10是根據一範例實施例所繪示的記憶體控制電路單元接收到對應斷電狀態的重啟指令的流程示意圖。
請參照圖10,當記憶體控制電路單元404接收到對應斷電狀態的重啟指令時,在步驟S1001中,記憶體控制電路單元404重新初始化記憶體儲存裝置10。例如,此斷電狀態包括裝置電源關閉狀態(D3)、非揮發性記憶體子系統重置(NVM Subsystem Reset,NSSR)或功能層重置(Function Level Reset,FLR)。
在步驟S1003中,記憶體控制電路單元404重新建立與連續實體位址的連結。
具體而言,記憶體儲存裝置10重新上電後記憶體控制電路單元404會接收到對應斷電狀態的重啟指令。此時,記憶體儲存裝置10及PCIe匯流排重新初始化,記憶體控制電路單元404重新建立與連續實體位址的連結。也就是說,由於主機系統11不需重啟,記憶體控制電路單元404只需重新建立與連續實體位址的連結,即可直接使用連續實體位址作為記憶體儲存裝置10的主機記憶體緩衝區1121。
圖11是根據一範例實施例所繪示的記憶體控制電路單元判斷記憶體儲存裝置是否正常關閉的流程示意圖。
請參照圖11,在記憶體儲存裝置10正常關閉後,在步驟S1101中,記憶體控制電路單元404在作為記憶體儲存裝置10的主機記憶體緩衝區1121的連續實體位址上設置對應正常關閉狀態的標籤。
在記憶體儲存裝置10重新上電後,在步驟S1103中,記憶體控制電路單元404會判斷作為記憶體儲存裝置10的主機記憶體緩衝區404的連續實體位址上是否有對應正常關閉狀態的標籤。
若作為記憶體儲存裝置10的主機記憶體緩衝區1121的連續實體位址上儲存有對應正常關閉狀態的標籤時,在步驟S1105中記憶體控制電路單元404識別記憶體儲存裝置10處於正常關閉狀態後的重啟。
若作為記憶體儲存裝置10的主機記憶體緩衝區1121的連續實體位址上沒有儲存對應正常關閉狀態的標籤時,在步驟S1107中記憶體控制電路單元404識別記憶體儲存裝置20處於非正常關閉後的重啟。
綜上所述,本發明提供的主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元,針對主機系統自不同的休眠模式重啟後,利用選項唯讀記憶體以及根據記憶體儲存裝置的記憶體配置參數判斷重啟後是否需要給記憶體儲存裝置重新配置主機記憶體緩衝區,從而實現對主機記憶體緩衝區的彈性配置。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧記憶體儲存裝置
11‧‧‧主機系統
12‧‧‧輸入/輸出(I/O)裝置
110‧‧‧系統匯流排
111‧‧‧處理器
112‧‧‧隨機存取記憶體(RAM)/緩衝記憶體
113‧‧‧唯讀記憶體(ROM)
114‧‧‧資料傳輸介面
20‧‧‧主機板
201‧‧‧隨身碟
202‧‧‧記憶卡
203‧‧‧固態硬碟
204‧‧‧無線記憶體儲存裝置
205‧‧‧全球定位系統模組
206‧‧‧網路介面卡
207‧‧‧無線傳輸裝置
208‧‧‧鍵盤
209‧‧‧螢幕
210‧‧‧喇叭
30‧‧‧記憶體儲存裝置
31‧‧‧主機系統
32‧‧‧SD卡
33‧‧‧CF卡
34‧‧‧嵌入式儲存裝置
341‧‧‧嵌入式多媒體卡
342‧‧‧嵌入式多晶片封裝儲存裝置
402‧‧‧連接介面單元
404‧‧‧記憶體控制電路單元
406‧‧‧可複寫式非揮發性記憶體模組
408‧‧‧選項唯讀記憶體
502‧‧‧記憶體管理電路
504‧‧‧主機介面
506‧‧‧記憶體介面
508‧‧‧緩衝記憶體
510‧‧‧電源管理電路
512‧‧‧錯誤檢查與校正電路
1121‧‧‧主機記憶體緩衝區
S701‧‧‧掃描與主機系統電性連接的記憶體儲存裝置內是否儲存有初始化程式的步驟
S703‧‧‧將此初始化程式載入至主機系統的緩衝記憶體並執行此初始化程式的步驟
S705‧‧‧根據此初始化程式設定的記憶體配置參數在主機系統的緩衝記憶體中配置連續實體位址以作為主機記憶體緩衝區,並在連續實體位址上設定標記,並且儲存此標記的步驟
S801‧‧‧重新與連續實體位址建立連結的步驟
S803‧‧‧判斷在連續實體位址上設定的標記是否相同於所儲存的標記的步驟
S805‧‧‧繼續使用連續實體位址作為記憶體儲存裝置的主機記憶體緩衝區的步驟
S901‧‧‧從選項唯讀記憶體重新載入初始化程式至主機系統的緩衝記憶體並且重新執行初始化程式的步驟
S903‧‧‧重新配置另一連續實體位址給記憶體儲存裝置作為記憶體儲存裝置的主機記憶體緩衝區,並在另一連續實體位址上設定另一標記的步驟
S905‧‧‧儲存另一標記的步驟
S1001‧‧‧重新初始化記憶體儲存裝置的步驟
S1003‧‧‧重新建立與連續實體位址的連結的步驟
S1101: S1103‧‧‧S1103中,判斷作為記憶體儲存裝置的主機記憶體緩衝區的連續實體位址上是否有對應正常關閉狀態的標籤的步驟
S1105‧‧‧識別記憶體儲存裝置處於正常關閉狀態後的重啟的步驟
S1107‧‧‧識別記憶體儲存裝置處於非正常關閉後的重啟的步驟
圖1是根據一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖2是根據另一範例實施例所繪示的主機系統、記憶體儲存裝置及輸入/輸出(I/O)裝置的示意圖。 圖3是根據另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。 圖4是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。 圖5是根據一範例實施例所繪示之記憶體控制電路單元的概要方塊圖。 圖6是根據一範例實施例所繪示的主機系統、記憶體儲存裝置的概要方塊圖。 圖7是根據一範例實施例所繪示的主機系統上電後配置主機記憶體緩衝區的流程示意圖。 圖8是根據一範例實施例所繪示的記憶體控制電路單元接收到對應暫停至記憶體模式的重啟指令的流程示意圖。 圖9是根據一範例實施例所繪示的記憶體控制電路單元接收到暫停至磁碟模式的重啟指令或暖重置指令的流程示意圖。 圖10是根據一範例實施例所繪示的記憶體控制電路單元接收到對應斷電狀態的重啟指令的流程示意圖。 圖11是根據一範例實施例所繪示的記憶體控制電路單元判斷記憶體儲存裝置是否正常關閉的流程示意圖。

Claims (21)

  1. 一種主機記憶體緩衝區配置方法,包括: 載入一記憶體儲存裝置的一選項唯讀記憶體的一初始化程式至一主機系統的一緩衝記憶體; 執行所述初始化程式,以在所述主機系統的所述緩衝記憶體中配置一連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的一主機記憶體緩衝區,並在所述連續實體位址上設定一標記; 儲存所述標記在所述記憶體儲存裝置。
  2. 如申請專利範圍第1項所述的主機記憶體緩衝區配置方法,更包括: 當接收到對應一暫停至記憶體模式的一重啟指令時,重新與所述連續實體位址建立連結,並且判斷在所述連續實體位址上設定的標記是否相同於所儲存的標記;以及 若在所述連續實體位址上設定的標記相同於所儲存的標記時,則繼續使用所述連續實體位址作為所述記憶體儲存裝置的主機記憶體緩衝區。
  3. 如申請專利範圍第1項所述的主機記憶體緩衝區配置方法,更包括: 當接收到對應一暫停至磁碟模式的一重啟指令或一暖重置指令時,從所述記憶體儲存裝置的選項唯讀記憶體重新載入所述初始化程式至所述主機系統的緩衝記憶體; 重新執行所述初始化程式,以在所述主機系統的所述緩衝記憶體中配置另一連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的主機記憶體緩衝區,並在所述另一連續實體位址上設定一另一標記;以及 儲存所述另一標記在所述記憶體儲存裝置。
  4. 如申請專利範圍第1項所述的主機記憶體緩衝區配置方法,更包括: 當接收到對應一斷電狀態的一重啟指令時,重新初始化所述記憶體儲存裝置,並且重新建立與所述連續實體位址的連結。
  5. 如申請專利範圍第4項所述的主機記憶體緩衝區配置方法,其中所述斷電狀態包括一裝置電源關閉狀態、一非揮發性記憶體子系統重置或一功能層重置。
  6. 如申請專利範圍第1項所述的主機記憶體緩衝區配置方法,更包括: 在所述記憶體儲存裝置正常關閉後,在作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上設置對應一正常關閉狀態的一標籤。
  7. 如申請專利範圍第6項所述的主機記憶體緩衝區配置方法,更包括: 在所述記憶體儲存裝置重新上電後,判斷作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上是否有對應所述正常關閉狀態的標籤;以及 若作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上儲存有對應所述正常關閉狀態的標籤時,識別所述記憶體儲存裝置處於所述正常關閉狀態後的重啟。
  8. 一種記憶體儲存裝置,包括: 一連接介面單元,用以電性連接至一主機系統; 一可複寫式非揮發性記憶體模組; 一選項唯讀記憶體,儲存有一初始化程式,其中當所述主機系統上電時會載入所述初始化程式至所述主機系統的一緩衝記憶體,並執行所述初始化程式,以在所述主機系統的所述緩衝記憶體中配置一連續實體位址作為一主機記憶體緩衝區,並在所述連續實體位址上設定一標記;以及 一記憶體控制電路單元,電性連接至所述選項唯讀記憶體、所述連接介面單元與所述可複寫式非揮發性記憶體模組,且用以儲存所述標記。
  9. 如申請專利範圍第8項所述的記憶體儲存裝置,其中當所述記憶體控制電路單元接收到對應一暫停至記憶體模式的一重啟指令時,所述記憶體控制電路單元用以重新與所述連續實體位址建立連結,並且判斷在所述連續實體位址上設定的標記是否相同於所儲存的標記, 若在所述連續實體位址上設定的標記相同於所儲存的標記時,則所述記憶體控制電路單元用以繼續使用所述連續實體位址作為所述記憶體儲存裝置的主機記憶體緩衝區。
  10. 如申請專利範圍第8項所述的記憶體儲存裝置,其中當所述記憶體控制電路單元接收到一暫停至磁碟模式的一重啟指令或一暖重置指令時, 所述記憶體控制電路單元更用以從所述選項唯讀記憶體重新載入所述初始化程式至所述主機系統的緩衝記憶體並且重新執行所述初始化程式; 所述記憶體控制電路單元更用以重新配置另一連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的主機記憶體緩衝區,並在所述另一連續實體位址上設定一另一標記;以及 所述記憶體控制電路單元更用以儲存所述另一標記。
  11. 如申請專利範圍第8項所述的記憶體儲存裝置,其中當所述記憶體控制電路單元接收到對應一斷電狀態的一重啟指令時, 所述記憶體控制電路單元更用以重新初始化所述記憶體儲存裝置,並且重新建立與所述連續實體位址的連結。
  12. 如申請專利範圍第11項所述的記憶體儲存裝置,其中所述斷電狀態包括一裝置電源關閉狀態、一非揮發性記憶體子系統重置或一功能層重置。
  13. 如申請專利範圍第8項所述的記憶體儲存裝置,其中在所述記憶體儲存裝置正常關閉後, 所述記憶體控制電路單元更用以在作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上設置對應一正常關閉狀態的一標籤。
  14. 如申請專利範圍第13項所述的記憶體儲存裝置,其中在所述記憶體儲存裝置重新上電後, 所述記憶體控制電路單元更用以判斷作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上是否有對應所述正常關閉狀態的標籤;以及 若作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上儲存有對應所述正常關閉狀態的標籤時,所述記憶體控制電路單元更用以識別所述記憶體儲存裝置處於所述正常關閉狀態後的重啟。
  15. 一種記憶體控制電路單元,所述記憶體控制電路單元包括: 一主機介面,用以電性連接至一主機系統; 一記憶體介面,用以電性連接至一可複寫式非揮發性記憶體模組與一選項唯讀記憶體,所述選項唯讀記憶體儲存有一初始化程式,其中當所述主機系統上電時會載入所述初始化程式至所述主機系統的一緩衝記憶體,並執行所述初始化程式,以在所述主機系統的所述緩衝記憶體中配置一連續實體位址作為一主機記憶體緩衝區,並在所述連續實體位址上設定一標記,所述標記被儲存至一暫存器。
  16. 如申請專利範圍第15項所述的記憶體控制電路單元,其中更包括一記憶體管理電路,電性連接至所述主機介面與所述記憶體介面, 其中當所述記憶體管理電路接收到對應一暫停至記憶體模式的一重啟指令時,所述記憶體管理電路用以重新與所述連續實體位址建立連結,並且判斷在所述連續實體位址上設定的標記是否相同於所儲存的標記, 若在所述連續實體位址上設定的標記相同於所儲存的標記時,則所述記憶體管理電路用以繼續使用所述連續實體位址作為所述記憶體儲存裝置的主機記憶體緩衝區。
  17. 如申請專利範圍第15項所述的記憶體控制電路單元,其中當所述記憶體管理電路接收到一暫停至磁碟模式的一重啟指令或一暖重置指令時, 所述記憶體管理電路更用以從所述選項唯讀記憶體重新載入所述初始化程式至所述主機系統的緩衝記憶體並且重新執行所述初始化程式; 所述記憶體管理電路更用以重新配置另一連續實體位址給所述記憶體儲存裝置作為所述記憶體儲存裝置的主機記憶體緩衝區,並在所述另一連續實體位址上設定一另一標記;以及 所述記憶體控制電路單元更用以儲存所述另一標記。
  18. 如申請專利範圍第15項所述的記憶體控制電路單元,其中當所述記憶體管理電路接收到對應一斷電狀態的一重啟指令時, 所述記憶體管理電路更用以重新初始化所述記憶體儲存裝置,並且重新建立與所述連續實體位址的連結。
  19. 如申請專利範圍第18項所述的記憶體控制電路單元,其中所述斷電狀態包括一裝置電源關閉狀態、一非揮發性記憶體子系統重置或一功能層重置。
  20. 如申請專利範圍第15項所述的記憶體控制電路單元,其中在所述記憶體儲存裝置正常關閉後, 所述記憶體管理電路更用以在作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上設置對應一正常關閉狀態的一標籤。
  21. 如申請專利範圍第20項所述的記憶體控制電路單元,其中在所述記憶體儲存裝置重新上電後, 所述記憶體管理電路更用以判斷作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上是否有對應所述正常關閉狀態的標籤;以及 若作為所述記憶體儲存裝置的主機記憶體緩衝區的所述連續實體位址上儲存有對應所述正常關閉狀態的標籤時,所述記憶體管理電路更用以識別所述記憶體儲存裝置處於所述正常關閉狀態後的重啟。
TW107108606A 2018-03-14 2018-03-14 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 TWI668569B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW107108606A TWI668569B (zh) 2018-03-14 2018-03-14 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元
US15/978,198 US20190286351A1 (en) 2018-03-14 2018-05-14 Method for configuring host memory buffer, memory storage apparatus and memory control circuit unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107108606A TWI668569B (zh) 2018-03-14 2018-03-14 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元

Publications (2)

Publication Number Publication Date
TWI668569B TWI668569B (zh) 2019-08-11
TW201939283A true TW201939283A (zh) 2019-10-01

Family

ID=67904450

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107108606A TWI668569B (zh) 2018-03-14 2018-03-14 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元

Country Status (2)

Country Link
US (1) US20190286351A1 (zh)
TW (1) TWI668569B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965670A (zh) * 2021-04-22 2021-06-15 群联电子股份有限公司 主机存储器缓冲区管理方法、存储装置与控制电路单元
TWI798680B (zh) * 2021-04-14 2023-04-11 群聯電子股份有限公司 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI788594B (zh) * 2019-10-07 2023-01-01 系微股份有限公司 安全執行可延伸韌體應用程式的方法及計算機設備

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212599B1 (en) * 1997-11-26 2001-04-03 Intel Corporation Method and apparatus for a memory control system including a secondary controller for DRAM refresh during sleep mode
US6625725B1 (en) * 1999-12-22 2003-09-23 Intel Corporation Speculative reuse of code regions
TWM256542U (en) * 2004-03-29 2005-02-01 Genesys Logic Inc Device for USB data transmission and backup and related devices thereof
CN1869913A (zh) * 2004-06-23 2006-11-29 马维尔国际贸易有限公司 具有sata接口及远程缓冲的存储设备电路
US7496609B2 (en) * 2005-09-01 2009-02-24 Microsoft Corporation Dirty shutdown recovery of file system filters
WO2007073538A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with data alignment in a directly mapped file storage system
US8214560B2 (en) * 2010-04-20 2012-07-03 International Business Machines Corporation Communications support in a transactional memory
TWI494849B (zh) * 2013-05-06 2015-08-01 Phison Electronics Corp 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
TW201537453A (zh) * 2014-03-31 2015-10-01 Acer Inc 電子裝置及基於其儲存裝置吞吐量調整緩衝區大小的方法
US20160162215A1 (en) * 2014-12-08 2016-06-09 Sandisk Technologies Inc. Meta plane operations for a storage device
US10591980B2 (en) * 2015-01-02 2020-03-17 Mentor Graphics Corporation Power management with hardware virtualization
KR102466412B1 (ko) * 2016-01-14 2022-11-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
WO2017209813A1 (en) * 2016-05-31 2017-12-07 Sandisk Technologies Llc Systems and methods for performing adaptive host memory buffer caching of transition layer tables
US20170351452A1 (en) * 2016-06-01 2017-12-07 Intel Corporation Dynamic host memory buffer allocation
US10551902B2 (en) * 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10482010B2 (en) * 2017-06-29 2019-11-19 Intel Corporation Persistent host memory buffer
US10712949B2 (en) * 2017-11-09 2020-07-14 Western Digital Technologies, Inc. Adaptive device quality of service by host memory buffer range
KR102565895B1 (ko) * 2017-11-13 2023-08-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10956323B2 (en) * 2018-05-10 2021-03-23 Intel Corporation NVDIMM emulation using a host memory buffer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI798680B (zh) * 2021-04-14 2023-04-11 群聯電子股份有限公司 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元
CN112965670A (zh) * 2021-04-22 2021-06-15 群联电子股份有限公司 主机存储器缓冲区管理方法、存储装置与控制电路单元
CN112965670B (zh) * 2021-04-22 2023-08-01 群联电子股份有限公司 主机存储器缓冲区管理方法、存储装置与控制电路单元

Also Published As

Publication number Publication date
TWI668569B (zh) 2019-08-11
US20190286351A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
US8954705B2 (en) Memory space management method and memory controller and memory storage device and memory storage using the same
TWI592799B (zh) 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置
US10860247B2 (en) Data writing method and storage controller
US9460004B2 (en) Memory erasing method, memory controller, and memory storage apparatus
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TWI607309B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI668569B (zh) 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元
TW201608467A (zh) 資料儲存裝置的操作方法
TWI591640B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TW201944421A (zh) 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置
TWI658361B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI640872B (zh) 記憶體控制電路單元、記憶體儲存裝置及其控制方法
TWI798680B (zh) 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元
TWI678621B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN107045890B (zh) 数据保护方法、存储器控制电路单元及存储器存储装置
TWI526818B (zh) 休眠模式啓動方法、記憶體控制電路單元及儲存裝置
TWI733375B (zh) 資料轉移方法與記憶體儲存裝置
TWI494944B (zh) 記憶體模組偵測方法、記憶體控制電路單元及儲存裝置
CN110297595B (zh) 主机存储器缓冲区配置方法、储存装置与控制电路单元
TWI512623B (zh) 休眠模式啓動方法、記憶體控制電路單元及儲存裝置
TWI622044B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
CN107229413B (zh) 存储器管理方法、存储器控制电路单元与存储器储存装置
US12008239B1 (en) Memory management method, memory storage device and memory control circuit unit
US20240184449A1 (en) Memory management method, memory storage device and memory control circuit unit
CN112965670A (zh) 主机存储器缓冲区管理方法、存储装置与控制电路单元