TWI645296B - 資料儲存裝置以及非揮發式記憶體操作方法 - Google Patents

資料儲存裝置以及非揮發式記憶體操作方法 Download PDF

Info

Publication number
TWI645296B
TWI645296B TW106135474A TW106135474A TWI645296B TW I645296 B TWI645296 B TW I645296B TW 106135474 A TW106135474 A TW 106135474A TW 106135474 A TW106135474 A TW 106135474A TW I645296 B TWI645296 B TW I645296B
Authority
TW
Taiwan
Prior art keywords
volatile memory
power supply
boot code
program
boot
Prior art date
Application number
TW106135474A
Other languages
English (en)
Other versions
TW201917589A (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 TW106135474A priority Critical patent/TWI645296B/zh
Priority to CN201810007289.8A priority patent/CN109669627B/zh
Priority to US16/016,168 priority patent/US10684864B2/en
Application granted granted Critical
Publication of TWI645296B publication Critical patent/TWI645296B/zh
Publication of TW201917589A publication Critical patent/TW201917589A/zh
Priority to US16/869,956 priority patent/US11086636B2/en

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/4403Processor initialisation
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • 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
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

快速休眠喚醒的資料儲存裝置,其中以一控制器操作一非揮發式記憶體。該控制器具有一微處理器以及一揮發式記憶體。根據該揮發式記憶體的一常態給電區所載有的一開機程式碼載出腳本,該微處理器自該非揮發式記憶體將一開機程式載出至該揮發式記憶體的一非常態給電區,以執行該開機程式,繼而自該非揮發式記憶體將一系統內程式載出至該非常態給電區,以執行該系統內程式。

Description

資料儲存裝置以及非揮發式記憶體操作方法
本發明係有關於資料儲存裝置以及其中非揮發式記憶體的操作方法。
非揮發式記憶體有多種形式-例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存。一非揮發式記憶體可與一控制器結合成一資料儲存裝置,由一主機操作。
為了使非揮發式記憶體上儲存單元的損耗平均,非揮發式記憶體的物理空間係動態配置使用。特別是,不同非揮發式記憶體可能有不同的良率狀況;因此,不同非揮發式記憶體配置來儲存開機程式碼(以下以BootISP代號)的物理空間可能有出入。資料儲存裝置的控制器需對非揮發式記憶體耗時搜尋後,方能自非揮發式記憶體尋得、並載出開機程式碼BootISP。如此耗時的逐空間搜尋特別影響休眠喚醒時的使用者感受。
根據本案一種實施方式所實現的一資料儲存裝置包括一非揮發式記憶體以及一控制器。該控制器包括一微處理器以及一揮發式記憶體,用以操作該非揮發式記憶體。根據該揮發式記憶體的一常態給電區所載有的一開機程式碼載出腳本,該微處理器自該非揮發式記憶體將一開機程式載出至該揮發式記憶體的一非常態給電區,以執行該開機程式,繼而自該非揮發式記憶體將一系統內程式載出至該非常態給電區,以執行該系統內程式。
根據本案一種實施方式實現的一種非揮發式記憶體操作方法,包括:提供一揮發式記憶體,其中該揮發式記憶體包括一常態給電區以及一非常態給電區;且根據該常態給電區所載有的一開機程式碼載出腳本,自該非揮發式記憶體將一開機程式載出至該非常態給電區,以執行該開機程式,繼而自該非揮發式記憶體將一系統內程式載出至該非常態給電區,以執行該系統內程式。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧資料儲存裝置
102‧‧‧快閃記憶體
104‧‧‧控制器
106‧‧‧主機
112‧‧‧微處理器
114‧‧‧唯讀記憶體
116‧‧‧揮發式記憶體
122‧‧‧常態給電區
124‧‧‧非常態給電區
202‧‧‧欄位,供填寫參數BtDSSecCnt、Scnt、Cnt0、Cnt1、Cnt2、Mode、Block、以及三組Page與CH/CE
API_for_PS4‧‧‧參數
Boot1、Boot2、Boot3‧‧‧開機程式碼BootISP三段落
BootDS‧‧‧開機程式碼載出腳本
BootDS_Tail、BootISP1_Tail、BootISP2_Tail、BootISP3_Tail‧‧‧標籤
BootISP‧‧‧開機程式碼
BootISP1、BootISP2與BootISP3‧‧‧程式碼
BootISP_2017‧‧‧標籤
BootISP_HMAC‧‧‧欄位
Boot_use‧‧‧參數
ISP‧‧‧系統內程式碼
ISP_variable‧‧‧參數
Model123_AO、Model123_DS、Model123_Ext、Model123_RT‧‧‧標籤
ParaInfo‧‧‧參數
Reserved‧‧‧儲備空間
S502…S518、S602…S612‧‧‧步驟
ScriptSize‧‧‧腳本尺寸
Super_Lightswitch、Super_Lightswitch_HMAC‧‧‧欄位
NandCmdScript‧‧‧欄位,供填寫腳本
InitFormDeviceSleepFlow‧‧‧休眠喚醒碼
第1圖為方塊圖,圖解根據本案一種實施方式所實現的一資料儲存裝置100;第2A、2B、2C圖圖解開機程式碼載出腳本BootDS以及開機程式碼BootISP(分三段Boot1、Boot2以及Boot3)內容;第3A-1、3A-2圖圖解常態給電區122所載內容; 第3B圖圖解非常態給電區124所載內容;第4A、4B、4C圖圖解舊產品之快閃記憶體為開機所內存的內容,包括開機程式碼Boot1、Boot2以及Boot3,但不包括第2A-2C圖所示之開機程式碼載出腳本BootDS;第5圖為流程圖,圖解該資料儲存裝置100自關機狀態上電所做的開機動作;且第6圖為流程圖,圖解該資料儲存裝置100休眠喚醒的開機動作。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,提供長時間資料保存之儲存媒體,可用於實現資料儲存裝置、或應用於數據中心。以下特別以快閃記憶體為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,用來實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD)…等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。以快閃記憶體為儲存媒體的 資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為一主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
快閃記憶體實現的儲存媒體也可用於建構數據中心。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為一主機,操作所連結之固態硬碟,以存取其中快閃記憶體。
主機端是以邏輯位址(例如,邏輯區塊位址LBA或全域主機頁編號GHP…等)區別快閃記憶體儲存內容。為了最佳化使用快閃記憶體,快閃記憶體之儲存空間係動態配置對應主機所識別的邏輯位址。例如,為了避開損壞的區塊,不同快閃記憶體配置來儲存開機程式碼(以下以BootISP代號)的物理空間可能有出入。
快閃記憶體一般劃分為複數個區塊(Blocks)。各區塊包括複數頁(Pages)。各頁可更劃分為複數個儲存單元。快閃記憶體可採用多通道存取,以輪流存取每一通道中的區塊的頁所儲存的資料,或同時存取每一通道中的區塊的頁所儲存的資料。開機程式碼BootISP可分為數段存於一區塊中,有著各自的通道編號以及頁編號。或者,快閃記憶體的空間劃分也可能有其他實施方式。或者,開機程式碼BootISP不同段可儲存於不同區塊中。
開機程式碼BootISP一般在系統內程式碼(ISP)之前被載出執行,用以完成快閃記憶體的開機程序(包括自關機 狀態、或省電狀態啟動上電所需的程序)。針對開機程式碼BootISP,本案提供一開機程式碼載出腳本(Script)BootDS,儲存於內建於控制器的揮發式記憶體的常態給電(Always On)區,或是獨立式揮發式記憶體的常態給電區。開機程式碼載出腳本BootDS記錄取得開機程式碼BootISP所需的物理參數,例如:通道數值、物理位址值等等。如此一來,當資料儲存裝置從休眠狀態被喚醒時(例如,從NVMe定義之電力狀態S4切換至電力狀態S1時),由於開機程式碼載出腳本BootDS記錄取得開機程式碼BootISP所需的物理參數,所以控制器可免去依序搜尋快閃記憶體以獲得開機程式碼BootISP如此繁瑣的程序,加速開機程式碼BootISP的讀取,亦也節省開機程式碼BootISP所佔用的揮發式記憶體的儲存空間。
第1圖為方塊圖,圖解根據本案一種實施方式所實現的一資料儲存裝置100。
資料儲存裝置100包括一快閃記憶體102以及一控制器104。一主機106可連結該資料儲存裝置100,通過該控制器104存取該快閃記憶體102。快閃記憶體102上存有開機程式碼載出腳本BootDS以及開機程式碼BootISP,以提供開機程序。快閃記憶體102上更存有系統內程式碼ISP,於開機程序後再被載出執行。控制器104包括一微處理器112、一唯讀記憶體114以及一揮發式記憶體116。唯讀記憶體114以及揮發式記憶體116不限定與微處理器112整合、或分開提供。唯讀記憶體114儲存有一唯讀程式碼(ROM code)。揮發式記憶體116可由靜態隨機存取記憶體(SRAM)實現,暫存程式碼、運算資料、主機 106與快閃記憶體102之間映射關係…等。以下專注於開機程序之相關描述。
如圖所示,揮發式記憶體116包括一常態給電(Always On)區122以及一非常態給電區124。資料儲存裝置100自正常狀態,例如電力狀態S1,進入休眠狀態時,例如電力狀態S4,常態給電區122還是有電,因此,可用以儲存重要的資料,在本發明中,常態給電區122可儲存用於喚醒該資料儲存裝置100所需的資料。本案是令該常態給電區122儲存載自該快閃記憶體102的開機程式碼載出腳本BootDS。微處理器112藉由執行常態給電區122上的開機程式碼載出腳本BootDS,即可獲知自快閃記憶體102何處取得開機程式碼BootISP,待資料儲存裝置100自休眠狀態回復至正常狀態時,則將開機程式碼BootISP載至該非常態給電區124執行,以於後續更將系統內程式碼ISP自該快閃記憶體102取至該非常態給電區124執行。相較於包含繁瑣開機程序的開機程式碼BootISP,作快閃記憶體102位置標記用的開機程式碼載出腳本BootDS尺寸相當小,僅佔用常態給電區122一部份儲存空間,因此,常態給電區122的儲存空間有相當餘裕可做其他應用。例如,智慧型手機的個人安全性信息因而可儲存在常態給電區122,加速資料儲存裝置100的休眠喚醒。
資料儲存裝置100自完成開機後,即將開機程式碼載出腳本BootDS儲存至常態給電區122,並於資料儲存裝置100自休眠狀態回復至正常狀態時載入開機程式碼載出腳本BootDS。該資料儲存裝置100自關機狀態啟動或重新啟動時, 微處理器112會根據唯讀記憶體114提供的唯讀程式碼(ROM code)動作,依據預設的方式,搜尋快閃記憶體102以找到開機程式碼載出腳本BootDS以及開機程式碼BootISP、並將開機程式碼載出腳本BootDS載入該常態給電區122,且將開機程式碼BootISP載入該非常態給電區124。特別是,取得開機程式碼BootISP的物理參數(快閃記憶體102位址)也是在此時填入常態給電區122的開機程式碼載出腳本BootDS。在另一實施例中,資料儲存裝置100自關機狀態啟動或重新啟動時,微處理器112僅搜尋快閃記憶體102以找到開機程式碼BootISP且將開機程式碼BootISP載入該非常態給電區124,待完成開機程序後,微處理器112再從快閃記憶體102取得開機程式碼載出腳本BootDS並將開機程式碼載出腳本BootDS載入常態給電區122,並將取得開機程式碼BootISP的物理參數填入開機程式碼載出腳本BootDS。
第2A、2B、2C圖圖解開機程式碼載出腳本BootDS以及開機程式碼BootISP(分三段Boot1、Boot2以及Boot3)內容。
開機程式碼載出腳本BootDS以標籤(tag)”Model123_DS”標示,且註明揮發式記憶體116上一位址”0x40180000”,表示需寫入該常態給電區122。除了內容標籤”BOOTISP_2017”外,開機程式碼載出腳本BootDS提供欄位202,供填寫自快閃記憶體102取得開機程式碼BootISP所需的多種物理參數(包括BtDSSecCnt、Scnt、Cnt0、Cnt1、Cnt2、Mode、Block、以及三組Page與CH/CE)。開機程式碼載出腳本BootDS更提供一欄位NandCmdScript,用於腳本(Script)儲存; 該腳本是根據欄位202內容而編寫出。欄位202以及欄位NandCmdScript都是在資料儲存裝置100自關機狀態啟動、對快閃記憶體102有進行搜尋時,才將實際數值填入已載至該常態給電區122上的該開機程式碼載出腳本BootDS。開機程式碼載出腳本BootDS還提供一休眠喚醒碼InitFormDeviceSleepFlow,其中描述資料儲存裝置100休眠喚醒時的元件上電順序(power sequence),且指示執行欄位NandCmdScript所填寫的該腳本。尾端標有結尾標籤”BootDS_Tai1”。
開機程式碼Boot1同樣註有標籤”Model123_DS”,但註明揮發式記憶體116上一位址”0x40071000”,表示係規劃載入該非常態給電區124。開機程式碼Boot1包括程式碼BootISP1、快閃記憶體102資訊FlashInfo、以及結尾標籤”BootISP1_Tai1”。一種實施方式中,下一段開機程式碼Boot2在快閃記憶體102的位置可以記錄於程式碼BootISP1中。開機程式碼Boot1可接續開機程式碼載出腳本BootDS存於快閃記憶體102上,與開機程式碼載出腳本BootDS儲存於同一頁的儲存空間。
開機程式碼Boot2所註標籤為”Model123_RT”,且註明揮發式記憶體116上一位址”0x40072800”,表示係規劃載入該非常態給電區124。開機程式碼Boot2包括程式碼BootISP2、以及結尾標籤”BootISP2_Tail”。一種實施方式中,下一段開機程式碼Boot3在快閃記憶體102的位置可以記錄於程式碼BootISP2中。
開機程式碼Boot3所註標籤為”Model123_Ext”,且註明揮發式記憶體116上一位址”0x40074000”,表示係規劃載入該非常態給電區124。開機程式碼Boot3包括程式碼BootISP3、偵錯欄位C_ROMCodeChecksum、結尾標籤”BootISP3_Tai1”、及其他欄位(BootISP_HMAC、Super_Lightswitch、Super_Lightswitch_HMAC)。
第3A-1、3A-2圖圖解常態給電區122所載內容。常態給電區122的儲存空間為32K,除了儲存操作快閃記憶體102所需的參數ParaInfo、ISP_variable、API_for_PS4與Boot_use,不同於習知技藝所需佔用大量的儲存空間,本發明開機程式碼載出腳本BootDS只佔用常態給電區122的4K儲存空間,而節省的儲存空間可用以儲存其他重要資料,或作為其他應用,更加速休眠喚醒。
第3B圖圖解非常態給電區124所載內容。同一頁儲存的開機程式碼載出腳本BootDS以及開機程式碼Boot1可如圖所示一同載入該非常態給電區124。開機程式碼Boot1之後更載有開機程式碼Boot2以及Boot3。由於開機程式碼Boot1、Boot2以及Boot3是載入非常態給電區124,不會占用常態給電區122,僅開機程式碼載出腳本BootDS會搬移或備份至常態給電區122。
第4A、4B、4C圖圖解舊產品之快閃記憶體為開機所內存的內容,包括開機程式碼Boot1、Boot2以及Boot3,但不包括第2A-2C圖所示之開機程式碼載出腳本BootDS。如圖所示,開機程式碼Boot1所註標籤係”Model123_AO”,係”AO”結 尾,與第2A圖”DS”結尾的標籤”Model123_DS”區別。特別是,開機程式碼三段落Boot1、Boot2以及Boot3是註明揮發式記憶體116之常態給電區122上的位址,分別為”0x40180000”、”0x40181800”、以及”0x40183000”。常態給電區122的大量儲存空間用以儲存開機程式碼BootISP,供休眠喚醒使用。
以下考量新舊產品相容性,提出資料儲存裝置100操作流程。第5圖為流程圖,圖解該資料儲存裝置100自關機狀態上電所做的開機動作。步驟S502,微處理器112根據唯讀程式碼(ROM code)搜尋快閃記憶體102,尋找標籤符合的內容。若尋無,則流程進行步驟S504,微處理器112維持執行唯讀程式碼(ROM code)。若尋得,則步驟S506會根據標籤尾端導向不同動作。若標籤尾端為”DS”,符合第2A圖開機程式碼載出腳本BootDS所載標籤”Model123_DS”,則流程進行步驟S508。微處理器112自快閃記憶體102將開機程式碼載出腳本BootDS載出至揮發式記憶體116的常態給電區122,並將組成開機程式碼BootISP的三段落Boot1、Boot2以及Boot3自快閃記憶體102載至揮發式記憶體116的非常態給電區124。此步驟更包括對常態給電區122上的開機程式碼載出腳本BootDS進行參數填寫,包括:自快閃記憶體102讀出段落Boot1、Boot2以及Boot3各自所需的控制參數Cnt0、Cnt1、Cnt2與操作模式Mode(SDR或DDR模式);段落Boot1、Boot2以及Boot3所在區塊編號Block;段落Boot1、Boot2以及Boot3各自的頁編號Page以及通道編號/晶片致能編號CH/CE。步驟S510對已載至揮發式記憶體116的資料 進行偵錯,可以是根據段落Boot3末端所提供的C_ROMCodeChecksum、BootISP_HMAC、Super_Lightswitch、Super_Lightswitch_HMAC等欄位進行。若未通過偵錯,表示段落Boot1、Boot2以及Boot3可能已受到未授權更改,流程進行步驟S504,微處理器112維持執行唯讀程式碼(ROM code)。若通過偵錯,流程進行步驟S512執行非常態給電區124上的開機程式碼BootISP,繼而以步驟S514將系統內程式碼ISP自快閃記憶體102載出至非常態給電區124,並以步驟S516執行之。一種實施方式是在微處理器112已經進入系統內程式碼ISP執行,採用較高速的時脈後,方對常態給電區122上的開機程式碼載出腳本BootDS的欄位NandCmdScript進行腳本填寫,包括填寫腳本之尺寸Scnt。
若快閃記憶體102事實上是舊產品,儲存的開機內容是如第4A-4C圖所示,則步驟S506會辨識到標籤尾端為”AO”,符合第4A圖開機程式碼Boot1所註標籤”Model123_AO”,則流程進行步驟S518。微處理器112自快閃記憶體102將組成開機程式碼BootISP的三段落Boot1、Boot2以及Boot3載至揮發式記憶體116的常態給電區122。步驟S510偵錯通過後,步驟S512是執行常態給電區122上的開機程式碼BootISP,繼而進行步驟S514以及S516。
第6圖為流程圖,圖解該資料儲存裝置100休眠喚醒的開機動作。步驟S602,微處理器112對揮發式記憶體116的常態給電區122上的資料進行標籤檢查。”DS”結尾的標籤代表常態給電區122上係開機程式碼載出腳本BootDS。步驟S604執 行開機程式碼載出腳本BootDS,依照休眠喚醒碼InitFormDeviceSleepFlow依序上電資料儲存裝置100上的元件,且執行欄位NandCmdScript所載之腳本。步驟S606根據該腳本將組成開機程式碼BootISP的三段落Boot1、Boot2以及Boot3自快閃記憶體102載至揮發式記憶體116的非常態給電區124。步驟S608執行非常態給電區124上由三段落Boot1、Boot2以及Boot3組成的開機程式碼BootISP,繼而以步驟S610將系統內程式碼ISP自快閃記憶體102載出至非常態給電區124,並以步驟S612執行之。
若步驟S602是在常態給電區122找到”AO”結尾的標籤,代表常態給電區122上係三段落Boot1、Boot2以及Boot3組成的開機程式碼BootISP。步驟S614令微處理器112執行常態給電區122上的該開機程式碼BootISP,繼而以步驟S610將系統內程式碼ISP自快閃記憶體102載出至非常態給電區124,並以步驟S612執行之。
第5、6圖流程使新舊產品相容。
綜上所述,凡是將開機程式碼BootISP載於非常態給電區124且是在常態給電區122載有開機程式碼載出腳本BootDS的技術,都屬於本案所欲保護的範圍。基於以上技術內容,本案更涉及非揮發式記憶體操作方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。

Claims (14)

  1. 一種資料儲存裝置,包括:一非揮發式記憶體;以及一控制器,包括一微處理器以及一揮發式記憶體,用以操作該非揮發式記憶體;其中:根據該揮發式記憶體的一常態給電區所載有的一開機程式碼載出腳本,該微處理器自該非揮發式記憶體將一開機程式載出至該揮發式記憶體的一非常態給電區,以執行該開機程式,繼而自該非揮發式記憶體將一系統內程式載出至該非常態給電區,以執行該系統內程式;且該開機程式碼載出腳本載有該開機程式於該非揮發式記憶體上的位置,供該微處理器據以自該非揮發式記憶體將該開機程式載出至該揮發式記憶體的該非常態給電區。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中:該微處理器係自該非揮發式記憶體將該開機程式碼載出腳本載出至該常態給電區。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中:該微處理器是在該資料儲存裝置自關機狀態上電時,搜尋該非揮發式記憶體,據以將該開機程式碼載出腳本載出至該常態給電區。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中: 該微處理器搜尋該非揮發式記憶體時,更尋得該開機程式,將該開機程式於該非揮發式記憶體上的位置填入該常態給電區上的該開機程式碼載出腳本。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中:該微處理器搜尋該非揮發式記憶體尋得的該開機程式更被該微處理器載出至該非常態給電區,以執行該開機程式,繼而自該非揮發式記憶體將該系統內程式載出至該非常態給電區執行,並在執行該系統內程式時對該常態給電區上的該開機程式碼載出腳本做進一步編寫。
  6. 如申請專利範圍第5項所述之資料儲存裝置,其中:該微處理器是在該資料儲存裝置自休眠狀態喚醒時,執行該常態給電區所載有的該開機程式碼載出腳本。
  7. 如申請專利範圍第6項所述之資料儲存裝置,其中:該常態給電區更載有使用者安全信息,加速該資料儲存裝置自休眠狀態喚醒。
  8. 一種非揮發式記憶體操作方法,包括:提供一揮發式記憶體,其中該揮發式記憶體包括一常態給電區以及一非常態給電區;且根據該常態給電區所載有的一開機程式碼載出腳本,自該非揮發式記憶體將一開機程式載出至該非常態給電區,以執行該開機程式,繼而自該非揮發式記憶體將一系統內程式載出至該非常態給電區,以執行該系統內程式, 其中,該開機程式碼載出腳本載有該開機程式於該非揮發式記憶體上的位置,供據以自該非揮發式記憶體將該開機程式載出至該揮發式記憶體的該非常態給電區。
  9. 如申請專利範圍第8項所述之非揮發式記憶體操作方法,係自該非揮發式記憶體將該開機程式碼載出腳本載出至該常態給電區。
  10. 如申請專利範圍第9項所述之非揮發式記憶體操作方法,更包括:在該非揮發式記憶體所屬的一資料儲存裝置自關機狀態上電時,搜尋該非揮發式記憶體,據以將該開機程式碼載出腳本載出至該常態給電區。
  11. 如申請專利範圍第10項所述之非揮發式記憶體操作方法,更包括:搜尋該非揮發式記憶體時,更尋得該開機程式,將該開機程式於該非揮發式記憶體上的位置填入該常態給電區上的該開機程式碼載出腳本。
  12. 如申請專利範圍第11項所述之非揮發式記憶體操作方法,更包括:將搜尋該非揮發式記憶體尋得的該開機程式載出至該非常態給電區,以執行該開機程式,繼而自該非揮發式記憶體將該系統內程式載出至該非常態給電區執行,並在執行該系統內程式時對該常態給電區上的該開機程式碼載出腳本做進一步編寫。
  13. 如申請專利範圍第12項所述之非揮發式記憶體操作方法, 是在該資料儲存裝置自休眠狀態喚醒時,執行該常態給電區所載有的該開機程式碼載出腳本。
  14. 如申請專利範圍第13項所述之非揮發式記憶體操作方法,其中:該常態給電區更載有使用者安全信息,加速該資料儲存裝置自休眠狀態喚醒。
TW106135474A 2017-10-17 2017-10-17 資料儲存裝置以及非揮發式記憶體操作方法 TWI645296B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW106135474A TWI645296B (zh) 2017-10-17 2017-10-17 資料儲存裝置以及非揮發式記憶體操作方法
CN201810007289.8A CN109669627B (zh) 2017-10-17 2018-01-04 数据储存装置以及非挥发式存储器操作方法
US16/016,168 US10684864B2 (en) 2017-10-17 2018-06-22 Data storage device and method for operating non-volatile memory
US16/869,956 US11086636B2 (en) 2017-10-17 2020-05-08 Data storage device and method for operating non-volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106135474A TWI645296B (zh) 2017-10-17 2017-10-17 資料儲存裝置以及非揮發式記憶體操作方法

Publications (2)

Publication Number Publication Date
TWI645296B true TWI645296B (zh) 2018-12-21
TW201917589A TW201917589A (zh) 2019-05-01

Family

ID=65432187

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106135474A TWI645296B (zh) 2017-10-17 2017-10-17 資料儲存裝置以及非揮發式記憶體操作方法

Country Status (3)

Country Link
US (2) US10684864B2 (zh)
CN (1) CN109669627B (zh)
TW (1) TWI645296B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI738235B (zh) * 2020-03-03 2021-09-01 慧榮科技股份有限公司 用來進行恢復管理的方法以及記憶裝置及其控制器以及電子裝置
TWI738359B (zh) * 2020-05-26 2021-09-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US11763040B2 (en) * 2021-04-07 2023-09-19 Western Digital Technologies, Inc. Enhanced D3-cold and faster recovery

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1530795A (zh) * 2003-03-12 2004-09-22 联想(北京)有限公司 保存并快速恢复计算机系统工作状态的方法
US20140164810A1 (en) * 2012-12-12 2014-06-12 International Business Machines Corporation System and methods for dimm-targeted power saving for hypervisor systems
TW201437805A (zh) * 2013-03-29 2014-10-01 Wistron Corp 電子裝置及其電源管理方法
US20170177870A1 (en) * 2015-12-18 2017-06-22 Intel IP Corporation Security Mechanisms for Extreme Deep Sleep State
TW201723830A (zh) * 2015-12-31 2017-07-01 Insyde Software Corp 快速開機之電腦系統及方法、電腦可讀取之記錄媒體及電腦程式產品

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6004134A (en) * 1994-05-19 1999-12-21 Exos, Inc. Interactive simulation including force feedback
US6641480B2 (en) * 2001-01-29 2003-11-04 Microsoft Corporation Force feedback mechanism for gamepad device
US7257703B2 (en) * 2003-11-18 2007-08-14 Toshiba America Electronic Components, Inc. Bootable NAND flash memory architecture
US7523212B2 (en) * 2004-03-01 2009-04-21 Microsoft Corporation System and method for configuring a computer according to a detected network
US7296143B2 (en) * 2004-06-22 2007-11-13 Lenovo (Singapore) Pte. Ltd. Method and system for loading processor boot code from serial flash memory
US7657696B2 (en) * 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7496719B2 (en) * 2005-07-26 2009-02-24 Intel Corporation Universal nonvolatile memory boot mode
US7849302B2 (en) * 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
JP5220747B2 (ja) * 2007-07-31 2013-06-26 パナソニック株式会社 不揮発性記憶装置および不揮発性記憶システム
TW200943184A (en) * 2008-04-03 2009-10-16 Jmicron Technology Corp Host peripheral system and method for loading an external program code to a host for setting up a transmission mechanism when booting
CN102099787B (zh) * 2008-07-17 2014-03-26 Lsi公司 用于在虚拟化的服务器平台上安装可引导的虚拟存储设备的系统和方法
US8386738B1 (en) * 2008-11-06 2013-02-26 Marvell International Ltd. Off-chip non-volatile memory access
US20100211616A1 (en) * 2009-02-16 2010-08-19 Rajesh Khandelwal Performance by Avoiding Disk I/O for Deduplicated File Blocks
US9058491B1 (en) * 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US8589667B2 (en) * 2010-04-19 2013-11-19 Apple Inc. Booting and configuring a subsystem securely from non-local storage
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US8447983B1 (en) * 2011-02-01 2013-05-21 Target Brands, Inc. Token exchange
CN102929565B (zh) * 2012-10-24 2016-04-06 北京华大信安科技有限公司 基于SoC的引导装载程序读取方法、装置及芯片
US10579391B2 (en) * 2013-07-31 2020-03-03 Oracle International Corporation System on a chip hardware block for translating commands from processor to read boot code from off-chip non-volatile memory device
US20160232088A1 (en) * 2014-07-17 2016-08-11 Sandisk Enterprise Ip Llc Garbage Collection in Storage System with Distributed Processors
KR102290974B1 (ko) * 2014-11-07 2021-08-19 삼성전자주식회사 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
EP3198417B1 (en) * 2015-01-29 2021-03-03 Hewlett-Packard Development Company, L.P. Booting a system-on-a-chip device
TWI541809B (zh) * 2015-04-24 2016-07-11 群聯電子股份有限公司 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
CN106775609A (zh) * 2015-11-19 2017-05-31 飞思卡尔半导体公司 用于减少休眠及恢复时间的系统及方法
US10019158B2 (en) * 2016-03-15 2018-07-10 Toshiba Memory Corporation Determination of a read voltage to be applied to a page based on read voltages of other pages
TWI623878B (zh) * 2017-07-07 2018-05-11 大心電子(英屬維京群島)股份有限公司 資料讀取方法以及儲存控制器
TWI638263B (zh) * 2017-07-26 2018-10-11 大陸商深圳大心電子科技有限公司 資料備份方法、資料恢復方法以及儲存控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1530795A (zh) * 2003-03-12 2004-09-22 联想(北京)有限公司 保存并快速恢复计算机系统工作状态的方法
US20140164810A1 (en) * 2012-12-12 2014-06-12 International Business Machines Corporation System and methods for dimm-targeted power saving for hypervisor systems
TW201437805A (zh) * 2013-03-29 2014-10-01 Wistron Corp 電子裝置及其電源管理方法
US20170177870A1 (en) * 2015-12-18 2017-06-22 Intel IP Corporation Security Mechanisms for Extreme Deep Sleep State
TW201723830A (zh) * 2015-12-31 2017-07-01 Insyde Software Corp 快速開機之電腦系統及方法、電腦可讀取之記錄媒體及電腦程式產品

Also Published As

Publication number Publication date
US11086636B2 (en) 2021-08-10
US10684864B2 (en) 2020-06-16
CN109669627B (zh) 2022-05-03
TW201917589A (zh) 2019-05-01
CN109669627A (zh) 2019-04-23
US20190114177A1 (en) 2019-04-18
US20200264894A1 (en) 2020-08-20

Similar Documents

Publication Publication Date Title
US10866797B2 (en) Data storage device and method for reducing firmware update time and data processing system including the device
KR102500661B1 (ko) 다중 레벨 셀 모드 비휘발성 메모리를 위한 비용 최적화된 단일 레벨 셀 모드 비휘발성 메모리
US8463826B2 (en) Incremental garbage collection for non-volatile memories
CN106354615B (zh) 固态硬盘日志生成方法及其装置
TWI519952B (zh) 非揮發性暫時資料處理
US9063728B2 (en) Systems and methods for handling hibernation data
US9501130B2 (en) Data storage device and data processing system including the same
US20140184619A1 (en) System-on-chip performing dynamic voltage and frequency scaling
US11086636B2 (en) Data storage device and method for operating non-volatile memory
JP5860543B2 (ja) ブートデータのロード
KR101862112B1 (ko) 비휘발성 메모리(nvm) 기술 기반 메모리의 부팅 시간 제로화의 가속화
US10324867B2 (en) Systems and devices having a scalable basic input/output system (BIOS) footprint and associated methods
KR20140007989A (ko) 불휘발성 램을 포함하는 사용자 장치 및 그것의 설정 방법
KR20140007990A (ko) 불휘발성 램을 포함하는 사용자 장치 및 그것의 데이터 관리 방법
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
US10353816B2 (en) Page cache in a non-volatile memory
TW201327185A (zh) 記憶體儲存裝置及其記憶體控制器與資料寫入方法
US9323539B2 (en) Constructing persistent file system from scattered persistent regions
US20180189173A1 (en) System memory migration
US20130346673A1 (en) Method for improving flash memory storage device access