TWI738235B - 用來進行恢復管理的方法以及記憶裝置及其控制器以及電子裝置 - Google Patents
用來進行恢復管理的方法以及記憶裝置及其控制器以及電子裝置 Download PDFInfo
- Publication number
- TWI738235B TWI738235B TW109106873A TW109106873A TWI738235B TW I738235 B TWI738235 B TW I738235B TW 109106873 A TW109106873 A TW 109106873A TW 109106873 A TW109106873 A TW 109106873A TW I738235 B TWI738235 B TW I738235B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- controller
- system programming
- loader
- random access
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/20—Initialising; Data preset; Chip identification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
Abstract
本發明提供一種用來進行恢復管理的方法及設備。該方法包含:利用一開機載入器載入一群系統內編程碼;將包含一恢復系統內編程載入器之待保留資訊儲存於一隨機存取記憶體的一保留區中,以供於休眠的期間被保留;判斷是否開始休眠,且產生一判斷結果;因應該判斷結果,控制該記憶裝置開始休眠;於開始休眠以後,判斷是否發生任何喚醒事件;於發生所述任何喚醒事件以後,執行該群系統內編程碼中之一第一系統內編程碼以開始進行一第一操作;以及執行該恢復系統內編程載入器以載入該群系統內編程碼中之其它系統內編程碼。
Description
本發明係關於記憶體控制,尤指一種用來進行恢復管理的方法以及相關設備(apparatus)諸如一記憶裝置、其控制器以及一電子裝置。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式記憶裝置(例如:分別符合SD/MMC、CF、MS以及XD標準之記憶卡;又例如:分別符合UFS以及eMMC標準之嵌入式(embedded)記憶裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single level cell,SLC)與多階細胞(multiple level cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶細胞的電晶體的儲存能力可被充分利用,其採用較高的電壓來驅動,以透過不同的電壓位準在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便
宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。例如,該記憶裝置可進入一省電模式以節省電源,且可於被存取時重新載入龐大且複雜的程式碼,使該記憶裝置暫時沒有回應,這可導致整體效能變差。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下解決相關技術的問題。
本發明之一目的在於提供一種用來進行恢復管理的方法以及相關設備(apparatus)諸如一記憶裝置、其控制器以及一電子裝置,以解決上述之問題。
本發明至少一實施例提供一種用來進行恢復管理的方法,其中該方法係應用於一記憶裝置的一控制器。該記憶裝置可包含該控制器與該非揮發性記憶體,且該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該方法可包含:利用一開機載入器(boot loader)載入一群系統內編程(In-System Programming,ISP)碼,其中該控制器包含一隨機存取記憶體,而該群系統內編程碼是被載入至該隨機存取記憶體;將包含一恢復系統內編程載入器(resume ISP loader)之待保留資訊儲存於該隨機存取記憶體的一保留區(retention region)中,以供於休眠的期間被保留(retain);判斷是否開始休眠,且產生一判斷結果,其中該判斷結果指出是否開始休眠;因應該判斷結果,控制該記憶裝置開始休眠;於開始休眠以後,判斷是否發生任何
喚醒事件;於發生所述任何喚醒事件以後,執行該群系統內編程碼中之一第一系統內編程碼以開始進行一第一操作,其中該第一系統內編程碼是透過該恢復系統內編程載入器來取得;以及執行該恢復系統內編程載入器以載入該群系統內編程碼中之其它系統內編程碼。
除了上述方法外,本發明亦提供一種記憶裝置,且該記憶裝置包含一非揮發性記憶體以及一控制器。該非揮發性記憶體係用來儲存資訊,其中該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該控制器係耦接至該非揮發性記憶體,且該控制器係用來控制該記憶裝置之操作。另外,該控制器包含一處理電路,其中該處理電路係用來依據來自一主裝置(host device)之複數個主裝置指令(host command)控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。該控制器另包含一隨機存取記憶體,且該隨機存取記憶體係用來儲存資訊,其中該隨機存取記憶體包含一保留區。舉例來說,該控制器利用一開機載入器載入一群系統內編程碼,其中該群系統內編程碼是被載入至該隨機存取記憶體;該控制器將包含一恢復系統內編程載入器之待保留資訊儲存於該隨機存取記憶體的該保留區中,以供於休眠的期間被保留;該控制器判斷是否開始休眠,且產生一判斷結果,其中該判斷結果指出是否開始休眠;因應該判斷結果,該控制器控制該記憶裝置開始休眠;於開始休眠以後,該控制器判斷是否發生任何喚醒事件;於發生所述任何喚醒事件以後,該控制器執行該群系統內編程碼中之一第一系統內編程碼以開始進行一第一操作,其中該第一系統內編程碼是透過該恢復系統內編程載入器來取得;以及該控制器執行該恢復系統內編程載入器以載入該群系統內編程碼中之其它系統內編程碼。
依據某些實施例,本發明亦提供相關之電子裝置。該電子裝置可包含上述記憶裝置,且可另包含:該主裝置,耦接至該記憶裝置。該主裝置可包
含:至少一處理器,用來控制該主裝置之操作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置。另外,該記憶裝置可提供儲存空間給該主裝置。
除了上述方法外,本發明亦提供一種記憶裝置的控制器,其中該記憶裝置包含該控制器以及一非揮發性記憶體。該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。另外,該控制器包含一處理電路,其中該處理電路係用來依據來自一主裝置之複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。該控制器另包含一隨機存取記憶體,且該隨機存取記憶體係用來儲存資訊,其中該隨機存取記憶體包含一保留區。舉例來說,該控制器利用一開機載入器載入一群系統內編程碼,其中該群系統內編程碼是被載入至該隨機存取記憶體;該控制器將包含一恢復系統內編程載入器之待保留資訊儲存於該隨機存取記憶體的該保留區中,以供於休眠的期間被保留;該控制器判斷是否開始休眠,且產生一判斷結果,其中該判斷結果指出是否開始休眠;因應該判斷結果,該控制器控制該記憶裝置開始休眠;於開始休眠以後,該控制器判斷是否發生任何喚醒事件;於發生所述任何喚醒事件以後,該控制器執行該群系統內編程碼中之一第一系統內編程碼以開始進行一第一操作,其中該第一系統內編程碼是透過該恢復系統內編程載入器來取得;以及該控制器執行該恢復系統內編程載入器以載入該群系統內編程碼中之其它系統內編程碼。
本發明所提出之方法以及相關設備能確保該記憶裝置能在各種狀況下妥善地操作,其中上述相關設備例如:該控制器、該記憶裝置、該電子裝置等。另外,透過執行該第一系統內編程碼以開始進行該第一操作,本發明所提出之方法以及相關設備可確保該主裝置與該記憶裝置之間的即時響應,以提升整體效能。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯電路
116:隨機存取記憶體
116R:保留區
116L:恢復ISP載入器
116C:緊急ISP碼
118:傳輸介面電路
120:非揮發性記憶體
122-1、122-2、...122-N:非揮發性記憶體元件
122C:ISP碼
S10、S12、S14、S16、S18、S20、S22、S24、S26:步驟
S31、S32、S33、S34、S35、
S36、S37:步驟
第1圖為依據本發明一實施例之一電子裝置的示意圖。
第2圖為依據本發明一實施例之一種用來進行恢復管理的方法的流程圖。
第3圖繪示第2圖所示方法於本發明一實施例中的一存取控制方案。
第4圖繪示第2圖所示方法於本發明另一實施例中的一存取控制方案。
第1圖為依據本發明一實施例之一種電子裝置10的示意圖,其中電子裝置10可包含一主裝置(host device)50與一記憶裝置100。主裝置50可包含至少一處理器(例如一或多個處理器),其可統稱為處理器52,且可另包含一電源供應電路54,耦接至處理器52。處理器52係用來控制主裝置50的運作,而電源供應電路54係用來提供電源予處理器52以及記憶裝置100,並輸出一或多個驅動電壓至記憶裝置100。記憶裝置100可用來提供儲存空間給主裝置50,且可從主裝置50取得該一或多個驅動電壓作為記憶裝置100之電源。主裝置50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、可穿戴裝置(wearable device)、平板電腦(tablet)、以及個人電腦(personal computer)諸如桌上型電腦及膝上型電腦。記憶裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS或XD標準之記憶卡)、固態硬碟(solid state drive,SSD)、以及分別符合UFS與EMMC標準之各種嵌入式(embedded)記憶裝置。依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性(non-volatile,NV)記憶體120,其中該控制器係用來控制記憶裝置100的運作並存取(access)非揮發性記憶體120,且非揮發性記憶體
120係用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件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、隨機存取記憶體(Random Access Memory,RAM)116、以及傳輸介面電路118,其中以上元件可透過匯流排彼此耦接。隨機存取記憶體116係以靜態隨機存取記憶體(Static RAM,SRAM)來實施,但本發明不限於此。隨機存取記憶體116可用來提供內部儲存空間給記憶體控制器110。例如,隨機存取記憶體116可用作一緩衝記憶體來緩衝資料。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,在某些例子中,程式碼112C可被儲存於隨機存取記憶體116或任何形式之記憶體內。此外,控制邏輯電路114中的一資料保護電路(未顯示)可保護資料及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準、嵌入式多媒體記憶卡(embedded Multi Media Card,eMMC)標準、或通用快閃記憶體儲存(Universal Flash Storage,UFS)標準),且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置50可藉由傳送主裝置指令(host command)與對應的邏輯位址予記憶體控制器110來存取記憶裝置100。記憶體控制器110接
收該些主裝置指令與該些邏輯位址,並將該些主裝置指令轉譯成記憶體運作指令(可簡稱為運作指令),再以該些運作指令控制非揮發性記憶體120以對非揮發性記憶體120當中之具有實體位址之記憶單位(memory unit)(例如資料頁(page))進行讀取(read)、寫入(write)/編程(program)等,其中該些實體位址對應於該些邏輯位址。
在主裝置50沒有對記憶裝置100進行任何存取操作的情況下,例如,因應記憶裝置100處於閒置狀態的時間達到一預定時間、或因應來自主裝置50的一預定訊號之觸發,記憶體控制器110可暫時停止供電給記憶體控制器110之大部分的內部元件,且可持續供電給隨機存取記憶體116中之一保留區(retention region)116R,以供儲存記憶裝置100的重要資訊(例如一或多個表諸如一系統資訊表與一位址映射表、多個變數等)作為保留資訊。
第2圖為依據本發明一實施例之一種用來進行恢復管理的方法的流程圖。該方法可應用於第1圖所示架構(例如電子裝置10、記憶裝置100、記憶體控制器110等),且可由記憶裝置100的記憶體控制器110來執行。
於步驟S10中,記憶體控制器110開始進行初始化,尤其,開始執行程式碼112C。例如程式碼112C可包含一或多個程式模組,以供進行記憶裝置100的基本控制。
於步驟S12中,記憶體控制器110利用一開機載入器(boot loader)載入一群系統內編程(In-System Programming,簡稱ISP)碼122C,尤其,將該群ISP碼122C從非揮發性記憶體120(例如非揮發性記憶體元件122-1)載入至隨機存取記憶體116,以使記憶裝置100具備各種功能,其中程式碼112C中的該一或多個程式模組可包含該開機載入器,但本發明不限於此。舉例來說,用來儲存該群ISP碼122C的位置可予以變化,尤其,可為複數個非揮發性記憶體元件122-1、122-2、...與122-N中的一或多個。依據本實施例,該群ISP碼122C可包含
關於存取(例如讀取、寫入及抹除)的多個程式模組,諸如一讀取操作模組、一查表模組、一讀取刷新(read refresh)模組、一讀取回收(read reclaim)模組、一讀取垃圾收集(read garbage collection)模組、以及一不可更正錯誤更正碼(uncorrectable error correction code,UECC)模組,以供分別進行讀取、查表、讀取刷新、讀取回收、於讀取期間的垃圾收集、以及針對UECC錯誤的錯誤處置,其中上列六個模組中的後四個模組可以是關於錯誤處置,但本發明不限於此。於某些實施例中,該群ISP碼122C可予以變化。
於步驟S14中,記憶體控制器110將包含一恢復ISP載入器(resume ISP loader)116L之待保留資訊儲存於隨機存取記憶體116的保留區116R中,以供於休眠(sleep)的期間被保留(retain)。基於第1圖所示架構,上述休眠可代表一特殊類型的暫停(suspend),尤其,對應於局部(partial)資訊保留的暫停。例如,在休眠的期間,記憶體控制器110可於保留區116R中保留恢復ISP載入器116L、該一或多個表、該多個變數等,且可暫時停止供電給隨機存取記憶體116中的其它區以容許該群ISP碼122C中之大部分的ISP碼從隨機存取記憶體116消失。
於步驟S16中,記憶體控制器110判斷是否開始休眠,尤其,產生一判斷結果,其中該判斷結果指出是否開始休眠。如果是(例如:因應記憶裝置100處於該閒置狀態的時間達到該預定時間),記憶體控制器110可因應該判斷結果控制記憶裝置100開始休眠,尤其,暫時停止供電給記憶體控制器110之上述大部分的內部元件,且接著執行步驟S20以判斷是否停止休眠;如果否,記憶體控制器110可執行步驟S18。
於步驟S18中,記憶體控制器110控制記憶裝置100進行一或多個操作,尤其,因應一或多個主裝置指令(例如讀取指令、寫入指令等)進行該一或多個操作(例如讀取操作、寫入操作等)。
於步驟S20中,在休眠的期間,記憶體控制器110判斷是否發生任何喚醒事件(於第2圖中標示「喚醒」,以求簡明)。如果是(例如:傳輸介面電路118收到來自主裝置50的任何指令),記憶體控制器110可觸發記憶體控制器110供電給記憶體控制器110之上述大部分的內部元件,連同隨機存取記憶體116中的上述其它區,且接著執行步驟S22;如果否,記憶體控制器110可執行步驟S20以繼續等待。例如,記憶體控制器110可利用傳輸介面電路118來偵測該喚醒事件諸如來自主裝置50的任何指令,而傳輸介面電路118可因應該喚醒事件來觸發記憶體控制器110供電給記憶體控制器110之上述大部分的內部元件,連同隨機存取記憶體116中的上述其它區,以喚醒記憶裝置100,其中記憶體控制器110可供電給隨機存取記憶體116中的上述其它區,使隨機存取記憶體116正常地儲存資訊,以避免後續載入至隨機存取記憶體116(尤其,上述其它區)的資訊遺失,但本發明不限於此。於某些實施例中,記憶體控制器110可利用傳輸介面電路118中之一實體層(physical layer,PHY)電路來偵測該喚醒事件。
於步驟S22中,記憶體控制器110執行恢復ISP載入器116L以載入該群ISP碼122C中之一緊急ISP碼116C。緊急ISP碼116C的大小可以很小,例如16KB(kilobytes;千位元組)或8KB。因此,載入緊急ISP碼116C可立即完成。
於步驟S24中,記憶體控制器110執行緊急ISP碼116C以開始進行一緊急操作,諸如記憶裝置100於喚醒以後的第一個操作。例如,該緊急操作可代表一讀取操作,且緊急ISP碼116C可代表該讀取操作模組,其中為了便於理解,主裝置50與記憶裝置100可分別為多功能行動電話與安裝於其內的嵌入式記憶裝置,但本發明不限於此。於某些實施例中,該緊急操作可包含其它類型的操作,且緊急ISP碼116C可包含對應的程式模組,其中依據該喚醒事件諸如上述任何指令,恢復ISP載入器116L可從該多個程式模組選擇對應於這個指令的某一程式模組作為緊急ISP碼116C,但本發明不限於此。
於步驟S26中,記憶體控制器110執行恢復ISP載入器116L以載入該群ISP碼122C中之其它ISP碼,以使記憶裝置100具備上述各種功能。
為了更好地理解,該方法可用第2圖所示之工作流程來說明,但本發明不限於此。依據某些實施例,一個或多個步驟可於第2圖所示之工作流程中增加、刪除或修改。
另外,記憶體控制器110可因應記憶裝置100處於該閒置狀態的時間達到該預定時間來控制記憶裝置100開始休眠,而該喚醒事件可代表來自主裝置50的任何指令,但本發明不限於此。於某些實施例中,記憶體控制器110可因應該預定訊號之觸發來控制記憶裝置100開始休眠,而該喚醒事件可代表另一預定訊號。於某些實施例中,記憶體控制器110可因應具有一第一邏輯狀態的該預定訊號之觸發來控制記憶裝置100開始休眠,而該喚醒事件可代表具有一第二邏輯狀態的該預定訊號。例如,該第一邏輯狀態與該第二邏輯狀態可分別實施成為該預定訊號之一低電壓位準與一高電壓位準。又例如,該第一邏輯狀態與該第二邏輯狀態可分別實施成為該預定訊號之一高電壓位準與一低電壓位準。
第3圖繪示第2圖所示方法於本發明一實施例中的一存取控制方案,其中主機側(host side)與裝置側(device side)分別對應於主裝置50與記憶裝置100。為了便於理解,假設該喚醒事件包含來自主裝置50的一讀取指令,但本發明不限於此。
於步驟S31中,記憶體控制器110(例如:運行著恢復ISP載入器116L的微處理器112)可透過控制邏輯電路114發送一讀取操作指令至非揮發性記憶體120,以控制非揮發性記憶體120讀取緊急ISP碼116C。
於步驟S32中,記憶體控制器110可透過控制邏輯電路114取得緊急ISP碼116C,尤其,將緊急ISP碼116C載入至隨機存取記憶體116。
於步驟S33中,記憶體控制器110(例如:運行著緊急ISP碼116C的微
處理器112)可透過控制邏輯電路114發送另一讀取操作指令至非揮發性記憶體120,以控制非揮發性記憶體120讀取資料,諸如對應於該讀取指令之資料。
於步驟S34中,記憶體控制器110可透過控制邏輯電路114取得步驟S33中所述之該資料,尤其,將該資料緩衝於隨機存取記憶體116中之一資料緩衝器。
於步驟S35中,記憶體控制器110可透過傳輸介面電路118輸出該資料,諸如緩衝於該資料緩衝器中之該資料。
於步驟S36中,記憶體控制器110(例如:運行著恢復ISP載入器116L的微處理器112)可透過控制邏輯電路114發送又一讀取操作指令至非揮發性記憶體120,以控制非揮發性記憶體120讀取該群ISP碼122C中之上述其它ISP碼。
於步驟S37中,憶體控制器110可透過控制邏輯電路114取得步驟S36中所述之其它ISP碼,尤其,將上述其它ISP碼載入至隨機存取記憶體116。
第4圖繪示第2圖所示方法於本發明另一實施例中的一存取控制方案。相較於第3圖所示存取控制方案,本實施例之緊急ISP碼116C可內建於(embedded in)恢復ISP載入器116L,且可於休眠的期間保留於保留區116R中,其中保留區116R可略為擴大,而步驟S31與S32可被省略,但本發明不限於此。為了簡明起見,於本實施例中類似的內容在此不重複贅述。
依據某些實施例,在緊急ISP碼116C內建於恢復ISP載入器116L的情況下,步驟S22可於第2圖所示之工作流程中被省略,其中,當步驟S20的判斷結果為「是」,記憶體控制器110可執行步驟S24。為了簡明起見,於這些實施例中類似的內容在此不重複贅述。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯電路
116:隨機存取記憶體
116R:保留區
116L:恢復ISP載入器
116C:緊急ISP碼
118:傳輸介面電路
120:非揮發性記憶體
122-1、122-2、...122-N:非揮發性記憶體元件
122C:ISP碼
Claims (20)
- 一種用來進行恢復管理的方法,該方法係應用於一記憶裝置的一控制器,該記憶裝置包含該控制器與一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,該方法包含:利用一開機載入器(boot loader)載入一群系統內編程(In-System Programming,ISP)碼,其中該控制器包含一隨機存取記憶體,而該群系統內編程碼是被載入至該隨機存取記憶體;將包含一恢復系統內編程載入器(resume ISP loader)之待保留資訊儲存於該隨機存取記憶體中的一保留區(retention region)中,以供於休眠的期間被保留(retain);判斷是否開始休眠,且產生一判斷結果,其中該判斷結果指出是否開始休眠;因應該判斷結果,控制該記憶裝置開始休眠;於開始休眠以後,判斷是否發生任何喚醒事件;於發生所述任何喚醒事件以後,執行該群系統內編程碼中之一第一系統內編程碼以開始進行一第一操作,其中該第一系統內編程碼是透過該恢復系統內編程載入器來取得;以及執行該恢復系統內編程載入器以載入該群系統內編程碼中之其它系統內編程碼。
- 如申請專利範圍第1項所述之方法,其中利用該開機載入器載入該群系統內編程碼之步驟另包含:利用該開機載入器將該群系統內編程碼從該非揮發性記憶體載入至該隨 機存取記憶體,以使該記憶裝置具備各種功能。
- 如申請專利範圍第2項所述之方法,其中執行該恢復系統內編程載入器以載入該群系統內編程碼中之所述其它系統內編程碼之步驟另包含:執行該恢復系統內編程載入器以載入該群系統內編程碼中之所述其它系統內編程碼,以使該記憶裝置具備所述各種功能。
- 如申請專利範圍第1項所述之方法,其中所述休眠代表對應於局部(partial)資訊保留的暫停。
- 如申請專利範圍第1項所述之方法,其中在所述休眠的期間,該控制器於該保留區中保留該恢復系統內編程載入器,且暫時停止供電給該隨機存取記憶體中的其它區以容許該群系統內編程碼中之大部分的系統內編程碼從該隨機存取記憶體消失。
- 如申請專利範圍第5項所述之方法,其中因應該喚醒事件,該控制器供電給該隨機存取記憶體中的所述其它區,使該隨機存取記憶體正常地儲存資訊,以避免後續載入至該隨機存取記憶體的資訊遺失。
- 如申請專利範圍第1項所述之方法,其另包含:於發生所述任何喚醒事件以後,執行該恢復系統內編程載入器以載入該群系統內編程碼中之該第一系統內編程碼,其中該第一系統內編程碼是透過執行該恢復系統內編程載入器來取得。
- 如申請專利範圍第1項所述之方法,其中該第一系統內編程碼是內建於(embedded in)該恢復系統內編程載入器。
- 如申請專利範圍第1項所述之方法,其中該群系統內編程碼包含關於存取的多個程式模組,該第一操作代表一讀取操作,且該第一系統內編程碼代表該多個程式模組中之一讀取操作模組。
- 如申請專利範圍第9項所述之方法,其中該多個程式模組包含該讀取操作模組、一查表模組、一讀取刷新(read refresh)模組、一讀取回收(read reclaim)模組、一讀取垃圾收集(read garbage collection)模組、以及一不可更正錯誤更正碼(uncorrectable error correction code,UECC)模組,以供分別進行讀取、查表、讀取刷新、讀取回收、於讀取期間的垃圾收集、以及針對不可更正錯誤更正碼錯誤的錯誤處置。
- 一種記憶裝置,包含:一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之操作,其中該控制器包含:一處理電路,用來依據來自一主裝置之複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體;以及一隨機存取記憶體,用來儲存資訊,其中該隨機存取記憶體包含一保留區(retention region); 其中:該控制器利用一開機載入器(boot loader)載入一群系統內編程(In-System Programming,ISP)碼,其中該群系統內編程碼是被載入至該隨機存取記憶體;該控制器將包含一恢復系統內編程載入器(resume ISP loader)之待保留資訊儲存於該隨機存取記憶體中的該保留區中,以供於休眠的期間被保留(retain);該控制器判斷是否開始休眠,且產生一判斷結果,其中該判斷結果指出是否開始休眠;因應該判斷結果,該控制器控制該記憶裝置開始休眠;於開始休眠以後,該控制器判斷是否發生任何喚醒事件;於發生所述任何喚醒事件以後,該控制器執行該群系統內編程碼中之一第一系統內編程碼以開始進行一第一操作,其中該第一系統內編程碼是透過該恢復系統內編程載入器來取得;以及該控制器執行該恢復系統內編程載入器以載入該群系統內編程碼中之其它系統內編程碼。
- 如申請專利範圍第11項所述之記憶裝置,其中該控制器利用該開機載入器將該群系統內編程碼從該非揮發性記憶體載入至該隨機存取記憶體,以使該記憶裝置具備各種功能。
- 如申請專利範圍第12項所述之記憶裝置,其中該控制器執行該恢復系統內編程載入器以載入該群系統內編程碼中之所述其它系統內編程碼,以使該記憶裝置具備所述各種功能。
- 如申請專利範圍第11項所述之記憶裝置,其中所述休眠代表對應於局部(partial)資訊保留的暫停。
- 如申請專利範圍第11項所述之記憶裝置,其中在所述休眠的期間,該控制器於該保留區中保留該恢復系統內編程載入器,且暫時停止供電給該隨機存取記憶體中的其它區以容許該群系統內編程碼中之大部分的系統內編程碼從該隨機存取記憶體消失。
- 如申請專利範圍第15項所述之記憶裝置,其中因應該喚醒事件,該控制器供電給該隨機存取記憶體中的所述其它區,使該隨機存取記憶體正常地儲存資訊,以避免後續載入至該隨機存取記憶體的資訊遺失。
- 如申請專利範圍第11項所述之記憶裝置,其中於發生所述任何喚醒事件以後,該控制器執行該恢復系統內編程載入器以載入該群系統內編程碼中之該第一系統內編程碼,其中該第一系統內編程碼是透過執行該恢復系統內編程載入器來取得。
- 如申請專利範圍第11項所述之記憶裝置,其中該第一系統內編程碼是內建於(embedded in)該恢復系統內編程載入器。
- 一種包含如申請專利範圍第11項所述之記憶裝置之電子裝置,另包含:該主裝置,耦接至該記憶裝置,其中該主裝置包含: 至少一處理器,用來控制該主裝置之操作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源給該至少一處理器以及該記憶裝置;其中該記憶裝置提供儲存空間給該主裝置。
- 一種記憶裝置的控制器,該記憶裝置包含該控制器以及一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,該控制器包含:一處理電路,用來依據來自一主裝置之複數個主裝置指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體;以及一隨機存取記憶體,用來儲存資訊,其中該隨機存取記憶體包含一保留區(retention region);其中:該控制器利用一開機載入器(boot loader)載入一群系統內編程(In-System Programming,ISP)碼,其中該群系統內編程碼是被載入至該隨機存取記憶體;該控制器將包含一恢復系統內編程載入器(resume ISP loader)之待保留資訊儲存於該隨機存取記憶體中的該保留區中,以供於休眠的期間被保留(retain);該控制器判斷是否開始休眠,且產生一判斷結果,其中該判斷結果指出是否開始休眠;因應該判斷結果,該控制器控制該記憶裝置開始休眠;於開始休眠以後,該控制器判斷是否發生任何喚醒事件;於發生所述任何喚醒事件以後,該控制器執行該群系統內編程碼中 之一第一系統內編程碼以開始進行一第一操作,其中該第一系統內編程碼是透過該恢復系統內編程載入器來取得;以及該控制器執行該恢復系統內編程載入器以載入該群系統內編程碼中之其它系統內編程碼。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109106873A TWI738235B (zh) | 2020-03-03 | 2020-03-03 | 用來進行恢復管理的方法以及記憶裝置及其控制器以及電子裝置 |
| CN202010239721.3A CN113345500B (zh) | 2020-03-03 | 2020-03-30 | 用来进行恢复管理的方法及设备 |
| US17/086,445 US11662944B2 (en) | 2020-03-03 | 2020-11-01 | Method and apparatus for performing resuming management |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW109106873A TWI738235B (zh) | 2020-03-03 | 2020-03-03 | 用來進行恢復管理的方法以及記憶裝置及其控制器以及電子裝置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI738235B true TWI738235B (zh) | 2021-09-01 |
| TW202134859A TW202134859A (zh) | 2021-09-16 |
Family
ID=77467468
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109106873A TWI738235B (zh) | 2020-03-03 | 2020-03-03 | 用來進行恢復管理的方法以及記憶裝置及其控制器以及電子裝置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11662944B2 (zh) |
| CN (1) | CN113345500B (zh) |
| TW (1) | TWI738235B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114116006A (zh) * | 2021-11-30 | 2022-03-01 | 星宸科技股份有限公司 | 用于控制电子装置的方法 |
| CN116701042B (zh) * | 2023-07-27 | 2023-10-13 | 飞腾信息技术有限公司 | 一种内存数据保留方法、保留装置和相关设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7953892B2 (en) * | 2000-03-17 | 2011-05-31 | Digital Electronics Corporation | Control server, control terminal, control system, and recording medium storing control communication program |
| EP2380081B1 (en) * | 2009-01-05 | 2013-11-06 | Marvell World Trade Ltd. | Method and system for hibernation or suspend using a non-volatile-memory device |
| US9655810B2 (en) * | 2010-08-30 | 2017-05-23 | Watkins Manufacturing Corporation | Internet based spa networking system having wireless spa nodes |
| US20180314223A1 (en) * | 2003-12-23 | 2018-11-01 | Rain Bird Corporation | Code replacement for irrigation controllers |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5784611A (en) * | 1994-12-19 | 1998-07-21 | Seagate Technology, Inc. | Device and process for in-system programming electrically erasable and programmable non-volatile memory |
| TWI436369B (zh) * | 2009-11-13 | 2014-05-01 | Silicon Motion Inc | 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統 |
| US8694764B2 (en) * | 2011-02-24 | 2014-04-08 | Microsoft Corporation | Multi-phase resume from hibernate |
| US20160232088A1 (en) * | 2014-07-17 | 2016-08-11 | Sandisk Enterprise Ip Llc | Garbage Collection in Storage System with Distributed Processors |
| US9928079B2 (en) * | 2014-09-23 | 2018-03-27 | Dialog Semiconductor (Uk) Limited | Conditional processor auto boot with no boot loader when coupled with a nonvolatile memory |
| KR20170021402A (ko) * | 2015-08-17 | 2017-02-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
| WO2019055066A1 (en) | 2017-09-12 | 2019-03-21 | Ambiq Micro, Inc. | VERY LOW POWER MICROCONTROLLER SYSTEM |
| TWI645296B (zh) * | 2017-10-17 | 2018-12-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體操作方法 |
| TWI664527B (zh) * | 2018-03-20 | 2019-07-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 |
| KR102787772B1 (ko) * | 2019-06-28 | 2025-03-31 | 에스케이하이닉스 주식회사 | 슬립모드에서 메모리 시스템의 내부데이터를 전송하는 장치 및 방법 |
-
2020
- 2020-03-03 TW TW109106873A patent/TWI738235B/zh active
- 2020-03-30 CN CN202010239721.3A patent/CN113345500B/zh active Active
- 2020-11-01 US US17/086,445 patent/US11662944B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7953892B2 (en) * | 2000-03-17 | 2011-05-31 | Digital Electronics Corporation | Control server, control terminal, control system, and recording medium storing control communication program |
| US20180314223A1 (en) * | 2003-12-23 | 2018-11-01 | Rain Bird Corporation | Code replacement for irrigation controllers |
| EP2380081B1 (en) * | 2009-01-05 | 2013-11-06 | Marvell World Trade Ltd. | Method and system for hibernation or suspend using a non-volatile-memory device |
| US9655810B2 (en) * | 2010-08-30 | 2017-05-23 | Watkins Manufacturing Corporation | Internet based spa networking system having wireless spa nodes |
Also Published As
| Publication number | Publication date |
|---|---|
| CN113345500A (zh) | 2021-09-03 |
| CN113345500B (zh) | 2024-03-08 |
| US11662944B2 (en) | 2023-05-30 |
| US20210279003A1 (en) | 2021-09-09 |
| TW202134859A (zh) | 2021-09-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11995348B2 (en) | Data and power management of partitioned buffer in a storage device | |
| US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
| TWI507871B (zh) | 資料儲存元件、記憶體系統以及使用非揮發性記憶體元件之計算系統 | |
| US20100042773A1 (en) | Flash memory storage system and data writing method thereof | |
| TWI459400B (zh) | 記憶體儲存裝置、及其記憶體控制器與電源控制方法 | |
| CN101656104B (zh) | 快闪存储器储存系统及其数据写入方法 | |
| TWI748410B (zh) | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 | |
| TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
| CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
| CN111399752B (zh) | 不同类型存储单元的控制装置及方法 | |
| CN107544919A (zh) | 数据储存装置的数据储存方法 | |
| US9063888B2 (en) | Program code loading and accessing method, memory controller, and memory storage apparatus | |
| TW202209106A (zh) | 用來進行資料儲存管理以提升資料可靠度之方法、記憶裝置及其控制器以及電子裝置 | |
| TWI693520B (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
| TWI673716B (zh) | 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置 | |
| TWI738235B (zh) | 用來進行恢復管理的方法以及記憶裝置及其控制器以及電子裝置 | |
| CN103377155B (zh) | 存储器储存装置及其存储器控制器与电源控制方法 | |
| TWI748542B (zh) | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 | |
| CN110069362B (zh) | 数据储存装置与数据处理方法 | |
| TW201430852A (zh) | 非揮發性記憶體儲存裝置、記憶體控制器與資料儲存方法 | |
| US10782901B2 (en) | Method for performing initialization in a memory device, associated memory device and controller thereof, and associated electronic device | |
| CN116561028A (zh) | 存储器控制方法与存储器存储系统 | |
| CN107229413B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
| CN114968067B (zh) | 使用持久性存储器的资料整理方法与存储器储存系统 |