TWI693600B - 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents

具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 Download PDF

Info

Publication number
TWI693600B
TWI693600B TW108115801A TW108115801A TWI693600B TW I693600 B TWI693600 B TW I693600B TW 108115801 A TW108115801 A TW 108115801A TW 108115801 A TW108115801 A TW 108115801A TW I693600 B TWI693600 B TW I693600B
Authority
TW
Taiwan
Prior art keywords
firmware code
security
function
volatile memory
main
Prior art date
Application number
TW108115801A
Other languages
English (en)
Other versions
TW202042234A (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 TW108115801A priority Critical patent/TWI693600B/zh
Priority to CN201910445357.3A priority patent/CN111916131B/zh
Priority to US16/508,501 priority patent/US11204700B2/en
Application granted granted Critical
Publication of TWI693600B publication Critical patent/TWI693600B/zh
Publication of TW202042234A publication Critical patent/TW202042234A/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/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/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
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • 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/0658Controller construction arrangements

Abstract

非揮發式記憶體之安全性擴充設計。本案令該非揮發式記憶體載有一個線上編程。一記憶體控制器將該線上編程載入一資料暫存器,使在該資料暫存器上提供一主韌體碼、一函式指標結構、以及一安全韌體碼。該記憶體控制器執行該主韌體碼,由該主韌體碼透過該函式指標結構呼叫該安全韌體碼所提供的安全函式,使切換以較高安全層級操作該非揮發式記憶體。該安全韌體碼採應用程式介面(API),相容其他專案。

Description

具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法
本案係有關於非揮發式記憶體之安全性擴充(security extension)。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive  RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
因應安全性(security)應用,資料儲存裝置之安全性擴充為本技術領域重要議題。
本案提出不同專案之資料儲存裝置都可通用的一種安全性擴充技術。
根據本案一種實施方式所實現的一資料儲存裝置包括一非揮發式記憶體以及一記憶體控制器。該記憶體控制器根據一主機之要求操作該非揮發式記憶體。該非揮發式記憶體載有一個線上編程。該記憶體控制器將該線上編程載入一資料暫存器,使在該資料暫存器上提供一主韌體碼、一函式指標結構、以及一安全韌體碼。該記憶體控制器執行該主韌體碼,由該主韌體碼透過該函式指標結構呼叫該安全韌體碼所提供的安全函式,使切換以較高安全層級操作該非揮發式記憶體。該安全韌體碼可採應用程式介面(API),相容複數個專案。
該函式指標結構可包括一第一表格以及一第二表格。該第一表格記載主函式位址。該第二表格記載安全函式位址。該主韌體碼是透過該第二表格呼叫該安全韌體碼所提供的安全函式。透過該第一表格,該安全韌體碼得以呼叫該主韌體碼提供的主函式。一種實施方式中,該記憶體控制器是在執行該主韌體碼時填寫該第一表格。該第二表格存在於取自該非揮發式記憶體的該線上編程。
一種實施方式中,該主機要求安全操作時,該記憶體控制器釋出該資料暫存器的空間,儲存該主韌體碼、該函式指標結構、以及該安全韌體碼。
一種實施方式中,該記憶體控制器更以該主韌體碼將第一安全函式參數載入該資料暫存器,上述第一安全函式參數與專案相關。該記憶體控制器執行的安全函式包括將第二安全函式參數載入該資料暫存器,上述第二安全函式參數係取自該非揮發式記憶體。上述第二安全函式參數載入該資料暫存器修正後,可由該記憶體控制器以該安全韌體碼更新回該非揮發式記憶體。
一種實施方式中,上述第二安全函式參數可局部保留於該資料暫存器,不隨上述安全操作結束而自該資料暫存器移除。其他主韌體碼可能使用之。
本案概念可用於實施非揮發式記憶體控制方法。
根據本案一種實施方式所實現的非揮發式記憶體控制幫法包括:令該非揮發式記憶體載有一個線上編程;將該線上編程載入一資料暫存器,使在該資料暫存器上提供一主韌體碼、一函式指標結構、以及一安全韌體碼;且執行該主韌體碼,由該主韌體碼透過該函式指標結構呼叫該安全韌體碼所提供的安全函式,使切換以較高安全層級操作該非揮發式記憶體。該安全韌體碼可採應用程式介面(API),相容其他專案。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論。
現今資料儲存裝置常以快閃記憶體為儲存媒體,實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) …等產品。有一種應用是採多晶片封裝、將快閃記憶體與其記憶體控制器包裝在一起─稱為嵌入式快閃記憶體(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為一主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構數據中心。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為一主機,操作所連結之固態硬碟,以存取其中快閃記憶體。
機密資料,例如:個人資訊、密碼、行動支付之帳戶…等,存在有安全(Security)需求。為了滿足安全(Security)需求,資料儲存裝置在運作上可採用安全機制,以正確地存取機密及非機密資料。安全機制例如是Trustzone,使資料儲存裝置之運算核心在不同安全層級的領域(Domain)間切換,機密資料被保護於高安全層級的領域中,避免洩漏,一般性資料則被保護於低安全層級的領域中。為了支援或採用安全機制,資料儲存裝置的韌體需進行適當的調整,使安全機制可以正確且順暢地執行,以提供較佳的使用者體驗。
為了加速存取快閃記憶體所儲存的資料,資料儲存裝置上通常配置有適當大小的DRAM,以暫存安全機制所對應的安全韌體碼(Security Firmware Code),加速安全韌體碼的執行。相反地,在未配置有DRAM或僅配置小容量DRAM的資料儲存裝置,如何讓安全韌體碼順暢地執行成為技術上的一門課題。另外,由於不同的資料儲存裝置可能配置不同規格的硬體,例如,不同規格的記憶體控制器,因此,如何以最簡便的方式讓同一套安全韌體碼可以在不同的資料儲存裝置上運作,是技術上的另一門課題。在上述中小容量DRAM又稱為部份DRAM(Partial DRAM),表示DRAM的容量無法暫存完整的L2P映射表,或無法暫存完整的安全韌體碼。
在本案中安全韌體碼依其功能或大小而分割成多個安全函式(Function),之後,主韌體碼(Base Firmware Code)可透過應用程式介面(Application Programming Interface,簡稱API)而呼叫並執行安全韌體碼的一個或多個安全函式,進而提供或實現上述的安全機制。不同資料儲存裝置上的主韌體碼依據記憶體控制器的規格而有所不同,但是,皆能透過相同的應用程式介面而執行安全韌體碼,進而提供或實現上述的安全機制,使資料儲存裝置上實現安全機制更為簡便且快速。
第1圖根據本案一種實施方式圖解資料儲存裝置100。資料儲存裝置100以快閃記憶體102為儲存媒體,且具有記憶體控制器104。資料儲存裝置100可更配置小容量DRAM。主機106輸出主機指令至記憶體控制器104,記憶體控制器104再依據主機指令的要求以快閃記憶體的操作函式來存取快閃記憶體102,例如:快閃記憶體的讀取函式或寫入函式,並回傳主機指令的執行結果至主機106。主機指令包括安全性資料存取指令和一般性資料存取指令,安全性資料存取指令乃存取機密性資料,一般性資料存取指令乃存取非機密性資料。記憶體控制器104具有資料暫存器108,例如,靜態隨機存取記憶體(SRAM),提供資料隨機存取的功能。
快閃記憶體102儲存有線上編程(In System Program,ISP)110,裡面包含主韌體碼112、安全韌體碼114、以及應用程式介面,其中,應用程式介面較佳以函式指標結構(Function Pointer Structure,FPS)116來實現,函式指標結構116作為主韌體碼112以及安全韌體碼114之間溝通的介面。當資料儲存裝置100進行初始化時,記憶體控制器104讀取二進位檔中的主韌體碼以完成初始化。之後,當主機106要求安全操作時,記憶體控制器104依據應用程式介面(函式指標結構(FPS)116)而呼叫安全韌體碼114的安全函式,以執行主機106所要求的安全操作。
函式指標結構116包括主函式位址表118(記錄主韌體碼112的主函式位址)以及安全函式位址表120(記錄安全韌體碼114的安全函式位址)。主韌體碼112將透過安全函式位址表120而呼叫安全韌體碼114中的一個或多個安全函式;安全韌體碼114的安全函式也可透過主函式位址表118而呼叫主韌體碼112的主函式。
不同規格的資料儲存裝置100可採用不同的主韌體碼112,但採用上述的應用程式介面(函式指標結構(FPS)116)以及安全韌體碼114,即可在資料儲存裝置100上實現安全機制,無需開發專屬的安全韌體碼,達到本發明的目的。換句話說,程式開發者只需開發主韌體碼112,並將主韌體碼112與應用程式介面(函式指標結構(FPS)116)以及安全韌體碼114予以結合,當需要進行安全操作時,主韌體碼112即可依據應用程式介面(函式指標結構(FPS)116)來呼叫安全韌體碼114的安全函式。
第2A圖為建立可支援安全功能的線上編程(In System Program,ISP)的方法流程圖,其中,線上編程可由資料儲存裝置100的記憶體控制器104來執行,以回應來自主機106的主機指令,主機指令包括安全性資料存取指令和一般性資料存取指令。
在步驟S12,對主程式進行編譯以產生二進位檔202,其中,二進位檔202更包括主函式位址表118,主函式位址表118記錄主韌體碼112的主函式位址,主程式置於二進位檔202的起始位置。主程式包括回應一般性資料存取指令所需的韌體,即主韌體碼。
在步驟S14,對安全程式進行編譯以產生二進位檔204,其中,二進位檔204更包括安全函式位址表120,安全函式位址表120記錄安全韌體碼114的安全函式位址,並置於二進位檔204的起始位置。安全程式包括回應安全性資料存取指令所需的韌體,即安全韌體碼。
如第2B圖所示主函式位址表118的內容加上安全函式位址表120的內容即為函式指標結構116。由於函式指標結構116的大小大於主函式位址表118或安全函式位址表120,因此,除了主函式位址表118或安全函式位址表120,未使用的空間則填入空值Null。例如,函式指標結構116的大小為80B,每筆位址的值為4B,則函式指標結構116可儲存20筆位址。主函式位址表118記錄12筆主函式的位址,分別為主函式#1~#12(BaseFunc#1~BaseFunc#12)的位址,剩下8筆位址填入空值Null。安全函式位址表120記錄8筆安全函式的位址,分別為安全函式#1~#8(SecurityFunc#1~SecurityFunc#8),剩下12筆位址填入空值Null。主函式位址表118或安全函式位址表120在函式指標結構116的起始位址不同。
第2A圖包括步驟S16,將二進位檔202與二進位檔204合併成可支援安全功能的線上編程110。一種實施方式是當二進位檔202與二進位檔204合併時,二進位檔204的安全函式位址表120將覆蓋二進位檔202的主函式位址表118。因此,函式指標結構116中的主函式位址表118的值將被空值Null所覆蓋。
當記憶體控制器104載入線上編程110並開始執行主韌體碼112之後,記憶體控制器104再逐一填寫主函式位址表118的內容,之後,再以主函式位址表118的內容更新線上編程110。
舉例說明安全函式呼叫主韌體碼112的狀況。例如,直接記憶體存取(DMA)為一種高效率的資料搬移方法,可為主韌體碼112的主函式之一,記憶體控制器104可將直接記憶體存取的函式位址填寫至主函式位址表118。當安全韌體碼114的安全函式欲執行直接記憶體存取(DMA)時,可透過主函式位址表118所記錄的函式位址而呼叫並執行直接記憶體存取(DMA)。直接記憶體存取(DMA)函式可依據安全函式所輸入的起始位址與目的地位址判斷出所屬的記憶體類型,並執行直接記憶體存取(DMA),在安全操作下進行大量資料的搬移。
第2C圖圖解資料暫存器108上經記憶體控制器104填寫完成的線上編程110,此時,記憶體控制器104已填寫完成主函式位址表118的內容,函式指標結構116內容已完整。
第3圖更詳細圖解記憶體控制器104對資料暫存器108之使用。由左至右討論之。資料暫存器108原本可能佔滿資料。當記憶體控制器104收到來自主機106的安全性資料存取指令後,記憶體控制器104先釋出資料暫存器108的部份空間,例如,將資料暫存器108的部份資料寫入至快閃記憶體102。接著,記憶體控制器104從快閃記憶體102中讀取主韌體碼112(可為主程式碼之全數或部分)、函式指標結構116以及安全韌體碼114,並將主韌體碼112、函式指標結構116以及安全韌體碼114載入至資料暫存器108。記憶體控制器104更可將安全韌體碼114運作所需要的安全函式參數302載入資料暫存器108。記憶體控制器104執行主韌體碼112,主韌體碼112透過安全函式位址表120所記錄的位址而執行安全韌體碼114所提供的安全函式。安全韌體碼114可根據主函式位址表118記錄的位址而執行主韌體碼112所提供的主函式。
第4圖為本案可支援安全功能的資料存取方法的流程圖,可支援安全功能的資料存取方法較佳由記憶體控制器104所執行,以回應來自主機106的主機指令。
步驟S402,記憶體控制器104自快閃記憶體102讀取並執行線上編程110的主韌體碼112,其中,線上編程110主要包括主韌體碼112、安全韌體碼114以及函式指標結構116。記憶體控制器104在讀取並執行唯讀程式碼(ROM code)後,接著自快閃記憶體102讀取線上編程110並將線上編程110載入資料暫存器108,並執行線上編程110。如果資料暫存器108的空間有限,記憶體控制器104可分段地讀取線上編程110,或僅讀取線上編程110的主韌體碼112,並執行之。
步驟S404,記憶體控制器104填寫線上編程110的函式指標結構116。記憶體控制器104於執行線上編程110的主韌體碼112後,得知主韌體碼112的主函式之位址,並將主函式之位址填入至函式指標結構116的主函式位址表118。
步驟S406,記憶體控制器104設定安全函式參數302。記憶體控制器104可設定安全函式參數302的部分內容,例如,目前專案所會用到的安全函式可藉此宣告,使安全程式符合使用者的需求。
步驟S408,記憶體控制器104透過函式指標結構116呼叫安全韌體碼114的安全函式。當收到來自主機106的安全性資料存取指令,記憶體控制器104所執行中的主韌體碼112透過函式指標結構116呼叫安全韌體碼114的安全函式,以由安全函式來回應安全性資料存取指令。步驟S404~S408主要是由主韌體碼112所執行,之後,步驟S410主要是由安全韌體碼114所執行。
步驟S410,記憶體控制器104以安全函式參數302執行安全韌體碼114的安全函式。記憶體控制器104可以利用DMA函式或快閃記憶體102的操作函式來取得安全函式執行所需的安全函式參數302,再執行安全函式。特別是,在安全韌體碼114的安全函式的執行過程中,記憶體控制器104可以透過函式指標結構116的主函式位址表118而呼叫主韌體碼112的主函式,主函式例如是DMA函式、快閃記憶體102的操作函式等等。
步驟S412,記憶體控制器104以安全函式的執行結果來回應來自主機106的安全性資料存取指令。記憶體控制器104執行安全韌體碼114的安全函式,並呼叫且執行主韌體碼112的主函式以操作快閃記憶體102,例如;自快閃記憶體102讀取機密資料或寫入機密資料至快閃記憶體102等,再依據快閃記憶體102的操作結果,例如:執行成功或失敗,來回應來自主機106的安全性資料存取指令。或者,記憶體控制器104執行安全韌體碼114的安全函式,並依據安全性資料存取指令的要求而更新密碼、使用者權限等,再呼叫且執行主韌體碼112的主函式以將更新後密碼、使用者權限寫入至快閃記憶體102,再依據快閃記憶體102的操作結果來回應來自主機106的安全性資料存取指令。
在回應來自主機106的安全性資料存取指令之後,記憶體控制器104可釋出安全韌體碼114所佔用的資料暫存器108空間。其他實施方式中,安全函式參數302有部分內容可暫存在資料暫存器108中,以供主函式使用。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:資料儲存裝置
102:快閃記憶體
104:記憶體控制器
106:主機
108:資料暫存器
110:線上編程
112:主韌體碼
114:安全韌體碼
116:函式指標結構(FPS)
118:主函式位址表
120:安全函式位址表
202、204:二進位檔
302:安全函式參數
BaseFunc#1…BaseFunc#12:主函式位址
Null:空值
S12…S16、S402…S412:步驟
SecurityFunc#1…SecurityFunc#8:安全函式位址
第1圖根據本案一種實施方式圖解一資料儲存裝置100; 第2A圖為建立可支援安全功能的線上編程(In System Program,ISP)的方法流程圖; 第2B圖圖解該線上編程110的產生技術; 第2C圖圖解資料暫存器108上經記憶體控制器104填寫完成的二進位檔,其中函式指標結構(FPS)116內容已完整; 第3圖更詳細圖解記憶體控制器104對資料暫存器108之使用;以及 第4圖為流程圖,根據本案一種實施方式說明記憶體控制器104如何回應主機106要求的安全操作。
100:資料儲存裝置
102:快閃記憶體
104:記憶體控制器
106:主機
108:資料暫存器
110:線上編程
112:主韌體碼
114:安全韌體碼
116:函式指標結構(FPS)
118:主函式位址表
120:安全函式位址表

Claims (18)

  1. 一種資料儲存裝置,包括:一非揮發式記憶體;以及一記憶體控制器,根據一主機之要求操作該非揮發式記憶體,其中:該非揮發式記憶體載有一個線上編程;該記憶體控制器將該線上編程載入一資料暫存器,使在該資料暫存器上提供一主韌體碼、一函式指標結構、以及一安全韌體碼;該記憶體控制器執行該主韌體碼,由該主韌體碼透過該函式指標結構呼叫該安全韌體碼所提供的安全函式,使切換以較高安全層級操作該非揮發式記憶體;該函式指標結構包括一第一表格以及一第二表格;該第一表格記載主函式位址;該第二表格記載安全函式位址;該主韌體碼是透過該第二表格呼叫該安全韌體碼所提供的安全函式;且該安全韌體碼更透過該第一表格呼叫該主韌體碼提供的主函式。
  2. 如申請專利範圍第1項所述之資料儲存裝置,其中:該安全韌體碼採應用程式介面(API),相容複數個專案。
  3. 如申請專利範圍第2項所述之資料儲存裝置,其中: 該記憶體控制器是在執行該主韌體碼時填寫該第一表格。
  4. 如申請專利範圍第3項所述之資料儲存裝置,其中:該第二表格存在於取自該非揮發式記憶體的該線上編程。
  5. 如申請專利範圍第4項所述之資料儲存裝置,其中:該主機要求安全操作時,該記憶體控制器釋出該資料暫存器的空間,儲存該主韌體碼、該函式指標結構、以及該安全韌體碼;且上述安全操作結束後,該記憶體控制器再次釋出該資料暫存器的空間,移除該主韌體碼、該函式指標結構、以及該安全韌體碼。
  6. 如申請專利範圍第5項所述之資料儲存裝置,其中:該記憶體控制器更以該主韌體碼將第一安全函式參數載入該資料暫存器,上述第一安全函式參數與專案相關。
  7. 如申請專利範圍第6項所述之資料儲存裝置,其中:該記憶體控制器執行的安全函式包括將第二安全函式參數載入該資料暫存器,上述第二安全函式參數係取自該非揮發式記憶體。
  8. 如申請專利範圍第7項所述之資料儲存裝置,其中:上述第二安全函式參數載入該資料暫存器修正後,是由該記憶體控制器以該安全韌體碼更新回該非揮發式記憶體。
  9. 如申請專利範圍第8項所述之資料儲存裝置,其中:上述第二安全函式參數局部保留於該資料暫存器,不隨上述安全操作結束而自該資料暫存器移除。
  10. 一種非揮發式記憶體控制方法,包括: 令該非揮發式記憶體載有一個線上編程;將該線上編程載入一資料暫存器,使在該資料暫存器上提供一主韌體碼、一函式指標結構、以及一安全韌體碼;且執行該主韌體碼,由該主韌體碼透過該函式指標結構呼叫該安全韌體碼所提供的安全函式,使切換以較高安全層級操作該非揮發式記憶體,其中:該函式指標結構包括一第一表格以及一第二表格;該第一表格記載主函式位址;該第二表格記載安全函式位址;該主韌體碼是透過該第二表格呼叫該安全韌體碼所提供的安全函式;且該安全韌體碼更透過該第一表格呼叫該主韌體碼提供的主函式。
  11. 如申請專利範圍第10項所述之非揮發式記憶體控制方法,其中:該安全韌體碼採應用程式介面(API),相容複數個專案。
  12. 如申請專利範圍第11項所述之非揮發式記憶體控制方法,更包括:在執行該主韌體碼時填寫該第一表格。
  13. 如申請專利範圍第12項所述之非揮發式記憶體控制方法,其中:該第二表格存在於取自該非揮發式記憶體的該線上編程。
  14. 如申請專利範圍第13項所述之非揮發式記憶體控制方法,更包括:於一主機要求安全操作時,釋出該資料暫存器的空間,以儲存該主韌體碼、該函式指標結構、以及該安全韌體碼;且上述安全操作結束後,再次釋出該資料暫存器的空間,其中移除該主韌體碼、該函式指標結構、以及該安全韌體碼。
  15. 如申請專利範圍第14項所述之非揮發式記憶體控制方法,更包括:以該主韌體碼將第一安全函式參數載入該資料暫存器,上述第一安全函式參數與專案相關。
  16. 如申請專利範圍第15項所述之非揮發式記憶體控制方法,更包括:以安全函式之執行將第二安全函式參數載入該資料暫存器,上述第二安全函式參數係取自該非揮發式記憶體。
  17. 如申請專利範圍第16項所述之非揮發式記憶體控制方法,其中:上述第二安全函式參數載入該資料暫存器修正後,是以該安全韌體碼更新回該非揮發式記憶體。
  18. 如申請專利範圍第17項所述之非揮發式記憶體控制方法,其中:上述第二安全函式參數局部保留於該資料暫存器,不隨上述安全操作結束而自該資料暫存器移除。
TW108115801A 2019-05-08 2019-05-08 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 TWI693600B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW108115801A TWI693600B (zh) 2019-05-08 2019-05-08 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法
CN201910445357.3A CN111916131B (zh) 2019-05-08 2019-05-27 具安全性扩充的数据储存装置以及非挥发式存储器控制方法
US16/508,501 US11204700B2 (en) 2019-05-08 2019-07-11 Data storage device and non-volatile memory control method, with security extension

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108115801A TWI693600B (zh) 2019-05-08 2019-05-08 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法

Publications (2)

Publication Number Publication Date
TWI693600B true TWI693600B (zh) 2020-05-11
TW202042234A TW202042234A (zh) 2020-11-16

Family

ID=71896154

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108115801A TWI693600B (zh) 2019-05-08 2019-05-08 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法

Country Status (3)

Country Link
US (1) US11204700B2 (zh)
CN (1) CN111916131B (zh)
TW (1) TWI693600B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131402A1 (en) * 2000-06-30 2011-06-02 Millind Mittal Method and apparatus for secure execution using a secure memory partition
TWI444826B (zh) * 2005-02-02 2014-07-11 Insyde Software Corp 用以對電腦裝置中的韌體提供安全儲存的方法、系統及保留有電腦可執行指令的媒體
TWI494849B (zh) * 2013-05-06 2015-08-01 Phison Electronics Corp 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
US20160092183A1 (en) * 2014-09-26 2016-03-31 Microsoft Corporation Compiler Caching for Runtime Routine Redundancy Tracking
US20170180137A1 (en) * 2015-12-21 2017-06-22 Electro Industries/Gauge Tech Providing security in an intelligent electronic device
US20170249164A1 (en) * 2016-02-29 2017-08-31 Apple Inc. Methods and apparatus for loading firmware on demand

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275196B2 (en) * 2012-05-31 2016-03-01 Marvell World Trade Ltd. Implementing security functions using ROM
EP2808818B1 (en) * 2013-05-29 2016-07-13 Nxp B.V. Processing system
US9842212B2 (en) * 2014-11-03 2017-12-12 Rubicon Labs, Inc. System and method for a renewable secure boot
KR102401088B1 (ko) * 2017-08-02 2022-05-24 삼성전자주식회사 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법
US10721072B2 (en) * 2017-09-29 2020-07-21 Xilinx, Inc. Network interface device and method
US10817200B2 (en) * 2017-10-26 2020-10-27 Silicon Laboratories Inc. Memory interface for a secure NOR flash memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131402A1 (en) * 2000-06-30 2011-06-02 Millind Mittal Method and apparatus for secure execution using a secure memory partition
TWI444826B (zh) * 2005-02-02 2014-07-11 Insyde Software Corp 用以對電腦裝置中的韌體提供安全儲存的方法、系統及保留有電腦可執行指令的媒體
TWI494849B (zh) * 2013-05-06 2015-08-01 Phison Electronics Corp 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
US20160092183A1 (en) * 2014-09-26 2016-03-31 Microsoft Corporation Compiler Caching for Runtime Routine Redundancy Tracking
US20170180137A1 (en) * 2015-12-21 2017-06-22 Electro Industries/Gauge Tech Providing security in an intelligent electronic device
US20170249164A1 (en) * 2016-02-29 2017-08-31 Apple Inc. Methods and apparatus for loading firmware on demand

Also Published As

Publication number Publication date
CN111916131B (zh) 2022-08-26
CN111916131A (zh) 2020-11-10
US20200356284A1 (en) 2020-11-12
US11204700B2 (en) 2021-12-21
TW202042234A (zh) 2020-11-16

Similar Documents

Publication Publication Date Title
JP4059002B2 (ja) メモリ装置
KR102372888B1 (ko) 저장 장치의 온도별 데이터 관리 방법
CN108804023A (zh) 数据存储装置及其操作方法
TWI668575B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
TWI790456B (zh) 記憶體定址方法及相關聯的控制器
KR20220014212A (ko) 저장 장치 및 그 동작 방법
KR20190120573A (ko) 메모리 시스템, 데이터 처리 시스템 및 메모리 시스템의 동작 방법
CN108932107A (zh) 数据存储装置及其操作方法
US11861359B2 (en) Storage device and method of operating the same
US20210191854A1 (en) Storage device including memory controller
CN109783008A (zh) 数据存储装置及其操作方法
JP2021501941A (ja) メモリブロックリクレーム方法およびメモリブロックリクレーム装置
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
KR102596964B1 (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
TWI693600B (zh) 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法
KR20190106005A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
KR102434840B1 (ko) 데이터 저장 장치
US20190129854A1 (en) Computing device and non-volatile dual in-line memory module
US20150153965A1 (en) Electronic system and method of operating the same
US20220091757A1 (en) Apparatus including data storage device and method of operating the same
JP2023001885A (ja) 記憶装置及びその動作方法
KR20230037255A (ko) 이벤트 로그 관리 방법, 컨트롤러 및 저장 장치
CN107526694A (zh) 数据存储装置及其操作方法
US20230297261A1 (en) Storage device and operating method thereof
US20230342049A1 (en) Reading a master boot record for a namespace using a regular read operation