TW202020670A - 資料儲存裝置與資料存取方法 - Google Patents
資料儲存裝置與資料存取方法 Download PDFInfo
- Publication number
- TW202020670A TW202020670A TW107141711A TW107141711A TW202020670A TW 202020670 A TW202020670 A TW 202020670A TW 107141711 A TW107141711 A TW 107141711A TW 107141711 A TW107141711 A TW 107141711A TW 202020670 A TW202020670 A TW 202020670A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- host
- controller
- system data
- write command
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本發明係關於一種資料儲存裝置與資料存取方法,特別係關於一種能夠加快電子裝置之開機速度的資料儲存裝置與資料存取方法。
快閃記憶體為一種普遍的非揮發性資料儲存裝置,係以電性方式抹除與程式化。以非及閘型的快閃記憶體(NAND FLASH)為例,常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)、嵌入式快閃記憶體模組(eMMC)、通用快閃記憶體(UFS)…等使用。
當使用者在使用電子裝置,可能會在寫入資料的過程中,發生意外或不正常的斷電情況。如此一來,可能會造成電子裝置無法在有限時間內載入開機資料以進行初始化運作。
為了解決上述問題,本發明提出一種資料儲存裝置與資料存取方法,能夠讓主機在有限時間內快速載入開機資料,以加快電子裝置的開機速度。
本發明之一實施例提供了一種資料儲存裝置,包括隨機存取記憶體、快閃記憶體以及控制器。快閃記憶體包括複數個區塊,並且每一個區塊包括複數個頁面。控制器耦接隨機存取記憶體以及快閃記憶體,控制器自主機接收寫入指令,並判斷該寫入指令要寫入的資料是一系統資料或是一普通資料。其中,當寫入指令要寫入的是系統資料時,於系統資料已完整儲存至資料儲存裝置後,控制器傳送確認訊息至主機。
本發明之另一實施例提供了一種資料存取方法,適用於具有一快閃記憶體以及一控制器之一資料儲存裝置。資料儲存方法包括:自主機接收寫入指令;判斷寫入指令要寫入的資料是系統資料或是普通資料;以及當寫入指令要寫入的是系統資料時,於系統資料已完整儲存至資料儲存裝置時,傳送確認訊息至該主機。
藉由本發明之多個實施例所提供之資料儲存裝置以及電子裝置及資料存取方法,能夠讓主機在每次開機時可以在有限時間內快速讀取出所需的系統資料(例如開機資料)進行初始化運作,並且可避免系統資料因非預期斷電而造成版本不一的錯誤。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明一實施例所述之電子裝置10之示意圖。電子裝置10包括資料儲存裝置100以及主機200。電子裝置10可以為智慧型手機、平板電腦、筆記型電腦、遊戲裝置、電子書或是PDA等移動電子裝置,或是桌上型電腦、伺服器等電子裝置,或是任何搭載有觸控模組(例如觸控積體電路)的電子裝置。主機200係耦接資料儲存裝置200,用以存取資料儲存裝置200之資料。主機200可包含微處理器(microcontroller, MCU)、單一中央處理單元(central-processing unit, CPU)或者是關連於平行運算環境(parallel processing environment)之複數平行處理單元,用以執行作業系統以及應用程式。
在此實施例中,資料儲存裝置100可包括控制器120、快閃記憶體140以及隨機存取記憶體(RAM)180。資料儲存裝置100耦接主機200以依據主機200之指令讀取或儲存資料。資料儲存裝置100可為固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置。如第1圖所示,控制器120耦接快閃記憶體140以及隨機存取記憶體180。控制器120可包括微處理器以及具有韌體碼之唯讀記憶體(ROM),微處理器可執行韌體碼以存取快閃記憶體140。隨機存取記憶體180可為靜態隨機存取記憶體(Static RAM,SRAM)。隨機存取記憶體180用以暫存主機200所要儲存或讀取之資料以及控制器120執行存取運作所需之資料。
快閃記憶體140可為反集閘快閃記憶體(NAND Flash)。快閃記憶體140包括複數個區塊160~16N,其中「N」為正整數。詳細而言,區塊160~16N中的每一者更包括複數個實體頁面。例如,區塊160包括實體頁面160A~160Z,區塊16N包括實體頁面16NA~16NZ,其中「A」、「Z」為正整數,且「Z」大於「A」。控制器120在對快閃記憶體140執行寫入(程式化)運作時,是以快閃記憶體140之實體頁面為單位來執行寫入的運作。
快閃記憶體140之實體頁面160A~16NZ的每一者都具有一個實體位址,而實體頁面160A~16NZ的每一者的實體位址都是不同的。然而,主機200係藉由邏輯位址來存取資料儲存裝置100。舉例而言,當主機200寫入資料至資料儲存裝置100時,控制器120可從快閃記憶體140之區塊160~16N中選取一區塊作為即時區塊(current block)來寫入資料,並於隨機存取記憶體180維護該即時區塊的對照表F2H。其中,對照表F2H用於紀錄該即時區塊之各個頁面之實體位址-邏輯位址的對應關係。當控制器120寫入資料至該即時區塊之最後一個頁面時,控制器120可將隨機存取記憶體180上之對照表F2H儲存至快閃記憶體140,並且依據對照表F2H來更新快閃記憶體140中之對照表H2F。其中,對照表H2F用於紀錄該快閃記憶體140之各個邏輯位址-實體位址的對應關係。當主機200欲讀取資料儲存裝置100之資料時,控制器120係藉由對照表F2H及/或對照表H2F來取得主機200所欲讀取之資料的實體位址,並將資料讀取至主機200。詳言之,當主機200欲讀取資料儲存裝置100之資料時,控制器120係先查詢隨機存取記憶體180上之對照表F2H,以確認主機200欲讀取之資料是否位於即時區塊。若對照表F2H上並未有主機200欲讀取之資料(例如讀取指令中所指定之邏輯位址之資料),則控制器120可查詢對照表H2F,以取得讀取指令中所指定之邏輯位址所對應之實體位址,並將實體位址之資料讀取至主機200。
第2圖係顯示根據本發明一實施例所述之傳送開機資料之示意圖。在此實施例中,主機200傳送一寫入指令CMD,將複數個開機資料(boot data)BD1~BD4寫入資料儲存裝置100。上述開機資料BD1~BD4是一種系統檔案,用來供主機200於開機時執行初始化運作。其中,寫入指令CMD可為UFS規範之指令封包(Command UFS Protocol Information Unit,CMD UPIU)。如第2圖所示,首先,主機200傳送寫入指令CMD至資料儲存裝置100。寫入指令CMD可包括所要傳送之資料的資料大小、要寫入的資料儲存裝置100之邏輯位址以及邏輯分區(例如邏輯單元編號,Logical Unit Number,LUN)之資訊。當資料儲存裝置100接收到寫入指令CMD之後,資料儲存裝置100會傳送一回覆訊息RT1至主機200,以通知主機200開始傳送開機資料BD1。
然後,主機200在接收到回覆訊息RT1之後,傳送開機資料BD1至資料儲存裝置。當資料儲存裝置100接收到開機資料BD1之後,資料儲存裝置100會傳送回覆訊息RT2至主機200,通知主機200開始傳送開機資料BD2。相似地,主機200繼續傳送開機資料BD2以及BD3至資料儲存裝置100。資料儲存裝置100接收開機資料BD2以及BD3,並且分別對應的傳送回覆訊息RT3以及RT4至主機200。當主機傳送最後一筆的開機資料BD4之後,資料儲存裝置100傳送確認訊息RUPIU至主機200,以通知主機200開機資料BD1~BD4已儲存至資料儲存裝置100。其中,回覆訊息RT1~RT4可為UFS規範之準備傳送封包(Ready To Transfer UFS Protocol Information Unit,RTT UPIU),確認訊息RUPIU可為UFS規範之確認封包(Response UFS Protocol Information Unit,Response UPIU),並且開機資料BD1~BD4可透過UFS規範之資料輸出封包(Data Out UPIU)來傳送。在其他實施例中,主機200可依據其系統需求,傳送其他數量與類型之系統資料至資料儲存裝置100,主機200也可利用其他不同的記憶體規範來存取資料儲存裝置100,本發明並不加以限制。
第3圖係顯示根據本發明一實施例所述之紀錄邏輯分區之表格之示意圖。邏輯分區表170A可用於儲存各個邏輯分區分別對應於資料分區或系統分區的設定資訊,邏輯分區表170A可儲存於快閃記憶體140之中。在資料儲存裝置100接收到寫入指令CMD後,控制器120可依據寫入指令CMD中所指定的邏輯分區查詢邏輯分區表170A,以判斷該寫入指令CMD中所欲寫入的資料屬於系統資料或普通資料。
於一實施例中,主機200可傳送一設定指令來設定各個邏輯分區屬於系統分區或資料分區,並儲存於邏輯分區表170A中。控制器120可以一個位元之旗標(flag)來儲存邏輯分區之設定資訊,例如但不限於,旗標為”0”表示邏輯分區為資料分區、旗標為”1”則表示邏輯分區為系統分區。在第3圖所示的實施例中,快閃記憶體140的儲存空間可劃分為8個邏輯分區P001~P008,邏輯分區P001設定為系統分區(system partition),用以儲存系統資料(例如開機資料),並且邏輯分區P002~P008設定為資料分區(data partition),用以儲存普通資料(例如使用者資料),為求簡潔並未將旗標之數值繪示於圖中。在此實施例中,主機200分別傳送了開機資料BD1~BD4至邏輯分區P001,以及傳送了普通資料ND1~ND2至邏輯分區P002。於另一實施例中,快閃記憶體140之各個邏輯分區可預設為資料分區,主機200可傳送設定指令來將快閃記憶體140之複數個邏輯分區中之至少一者設定為系統分區。
一般而言,區塊160~16N可依據其使用狀態而區分為即時區塊(current block)、資料區塊(data block)以及空閒區塊(spare block)。當主機200傳輸寫入資料至資料儲存裝置100時,控制器120會先從空閒區塊中選取一個區塊作為即時區塊,並且將資料寫入該即時區塊。其中,控制器120可將該筆資料所欲儲存的邏輯分區的資訊一併儲存在即時區塊中,例如儲存在即時區塊的備用區(spare region)。此外,控制器120可在隨機存取記憶體180紀錄關於此即時區塊的對照表F2H(第一對照表),其中對照表F2H係用於紀錄即時區塊之各個頁面的實體位址-邏輯位址的對應關係。當即時區塊被寫滿時,控制器120可將此對照表F2H儲存到快閃記憶體140,並且依據對照表F2H更新快閃記憶體140中的對照表H2F(第二對照表)。此時,寫滿資料之即時區塊邏輯上即轉換為資料區塊。資料區塊可於控制器120進行垃圾回收(garbage collection)運作後,成為空閒區塊,以供再次使用。
當資料儲存裝置100發生非預期斷電時,控制器120於下次開機時可執行一復電運作(Sudden power off recovery,SPOR),其中該復電運作包含於隨機存取記憶體180中重建即時區塊的對照表F2H。於一實施例中,當主機200傳輸系統資料(例如開機資料BD1~BD4)至資料儲存裝置100後,控制器120於系統資料寫入即時區塊後即回覆確認訊息RUPIU至主機200。然而,若即時區塊尚未寫滿即發生非預期斷電,於下次開機時,控制器120需執行完復電運作才可將開機資料BD1~BD4傳送給主機200,以供主機200進行初始化運作。由於復電運作的執行時間將延後主機200開機進行初始化運作的時間,會造成不良的使用者體驗。
於另一實施例中,當主機200傳輸系統資料(例如開機資料BD1~BD4)至資料儲存裝置100後,控制器120係於系統資料已完整儲存至資料儲存裝置100後才傳送確認訊息RUPIU至主機200。詳細而言,當資料儲存裝置100接收開機資料BD1~BD4時,控制器120將開機資料BD1~BD4寫入即時區塊,且依據隨機存取記憶體180中的對照表F2H更新快閃記憶體140中的對照表H2F,之後才傳送確認訊息RUPIU至主機200。詳言之,當控制器120判斷該筆寫入指令CMD的邏輯分區對應於系統分區(例如邏輯分區P001)時,控制器120係於資料寫入即時區塊且依據隨機存取記憶體180中的對照表F2H更新快閃記憶體140中的對照表H2F後,才會將確認訊息RUPIU傳送至主機200。由於對照表H2F已經更新,即使之後發生非預期斷電,資料儲存裝置100在下次開機進行復電運作時,控制器120不需完成復電運作即可直接依據前述更新後的對照表H2F讀取開機資料BD1~BD4並將其傳送至主機200,因此,主機200不需等待控制器120完成復電運作即可接收到開機資料BD1~BD4進行初始化運作。
在另一實施例中,當控制器120判斷寫入指令CMD的邏輯分區對應於系統分區時,控制器120係於資料寫入即時區塊,且將隨機存取記憶體180中的對照表F2H儲存至快閃記憶體140後,才會將確認訊息RUPIU傳送至主機200。由於隨機存取記憶體180中的對照表F2H已儲存至快閃記憶體140,即使之後控制器120在將資料寫入即時區塊時發生非預期斷電,主機200在下次開機進行復電運作時,控制器120不需完成復電運作即可直接將前述對照表F2H讀取至隨機存取記憶體180,並依據對照表F2H讀取開機資料BD1~BD4並將其傳送至主機200,因此,主機200不需等待控制器120於復電運作中重建對照表F2H即可接收到開機資料BD1~BD4進行初始化運作。接著,控制器120可在將開機資料BD1~BD4傳送至主機200後再執行重建對照表F2H之運作。於一使用情境中,開機資料BD1~BD4可能位於即時區塊上或位於其他的資料區塊上,因此,當控制器120將對照表F2H讀取至隨機存取記憶體180,並且經查詢對照表F2H上並未有開機資料BD1~BD4時,控制器120可另查詢對照表H2F,以取得開機資料BD1~BD4並傳送至主機200。
在一實施例中,主機200寫入普通資料ND1~ND2之寫入流程與第2圖所示之流程相似,故不再贅述。資料儲存裝置100在接收一寫入指令的全部普通資料時,控制器120不立刻將對照表F2H儲存至快閃記憶體140中及/或依據對照表F2H更新快閃記憶體140中的對照表H2F。控制器120可在即時區塊寫入一特定資料量或寫入資料至即時區塊之最後一頁面之後,才會將對照表F2H儲存至快閃記憶體140中及依據對照表F2H更新快閃記憶體140中的對照表H2F。簡言之,當控制器120判斷寫入指令CMD所指定的邏輯分區為資料分區時,亦即主機200所欲寫入的資料為普通資料,控制器120將資料寫入即時區塊後即可回覆確認訊息RUPIU至主機200。
在一實施例中,若資料儲存裝置100從主機200接收系統資料,控制器120將系統資料寫入即時區塊後,並且於對照表F2H儲存至快閃記憶體140之後才傳送確認訊息RUPIU至主機200。若之後發生非預期斷電等意外狀況,資料儲存裝置100在下次開機時會執行復電運作,其中控制器120可讀取先前所儲存之對照表F2H,以節省重建對照表F2H所需的時間。於重建對照表F2H的過程中,控制器120可檢查即時區塊上的資料是否為系統資料。當即時區塊上之一頁面的資料為系統資料時,控制器120捨棄該資料。於另一實施例中,若資料儲存裝置100從主機200接收系統資料,控制器120將系統資料寫入即時區塊後,並且於更新對照表H2F之後才傳送確認訊息RUPIU至主機200。若之後發生非預期斷電等意外狀況,資料儲存裝置100在下次開機時會執行復電運作。於重建對照表F2H的過程中,控制器120可檢查即時區塊上的資料是否為系統資料。當即時區塊上之一頁面的資料為系統資料時,控制器120更判斷該頁面於對照表F2H中的映射關係是否於非預期斷電前已更新至對照表H2F。若是,控制器120保留該頁面的系統資料;若否,控制器120捨棄該頁面的系統資料。
舉例而言,即時區塊之各個頁面的備用區中儲存有該頁面之資料所對應之邏輯分區的資訊,因此於重建對照表F2H的過程中,控制器120可藉此來判斷即時區塊之各個頁面所儲存的資料屬於系統資料或是普通資料。當即時區塊上的資料為系統資料(例如開機資料)時,控制器120可捨棄即時區塊上的該資料,例如將該即時區塊儲存有該資料的頁面標記為無效,或者將對照表F2H中該頁面的映射關係記載為”0xFFFFFFFF”。
詳言之,假設發生不正常的斷電等意外狀況,當控制器120在下次開機進行復電運作時,為了避免主機200初始化運作的等待時間過久,控制器120可直接依據即時區塊之對照表F2H及/或對照表H2F將開機資料傳送給主機200(如前述多個實施例所述之方法),然而若即時區塊上所儲存之另一版本的開機資料仍繼續維持有效,會導致開機資料版本衝突的問題。舉例而言,若主機200前後分別寫入了開機資料BD1~BD4及BD5~BD8至資料儲存裝置100,其中開機資料BD1~BD4及BD5~BD8為不同版本的開機資料。當開機資料BD1~BD4已完整儲存至資料儲存裝置100(亦即控制器120已回覆關於開機資料BD1~BD4之寫入指令的確認訊息RUPIU至主機200),而控制器120於寫入開機資料BD5~BD8至即時區塊中即遭遇非預期斷電,之後電子裝置10開機時,控制器120可依據即時區塊之對照表F2H及/或對照表H2F將先前已完整儲存至快閃記憶體140的開機資料BD1~BD4傳送給主機100執行初始化運作。然而,若控制器120執行復電運作時,將開機資料BD5~BD8保留下來(例如在重建對照表F2H的過程中,在對照表F2H中記載開機資料BD5~BD8的實體位址-邏輯位址的映射關係),則會導致開機資料之版本衝突的問題。
簡言之,於復電運作重建對照表F2H的過程中,如果即時區塊上的資料為系統資料,且該系統資料於對照表F2H中的映射關係並未於非預期斷電前已更新至對照表H2F或該對照表F2H並未儲存至快閃記憶體140中,則控制器120捨棄該系統資料。順帶一提,如果即時區塊上的資料為普通資料(例如普通資料ND1~ND2),控制器120不另判斷是否要捨棄該普通資料,普通資料按一般重建對照表F2H的流程處理。
第4A與4B圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖。此資料儲存方法適用於電子裝置10,尤其是資料儲存裝置100之控制器120。在步驟S400,控制器120自主機200接收設定指令,並依據該設定指令將各個邏輯分區分別設定為系統分區或資料分區。其中,控制器120可儲存一表格(例如前述之邏輯分區表170A)來紀錄上述各邏輯分區對應於系統分區或資料分區。表格之記錄方式如前述實施例所述,為求簡潔此處不再贅述。於另一實施例中,各個邏輯分區可預設為資料分區,而步驟S400可取代為,控制器120自主機200接收設定指令,並依據設定指令將複數個邏輯分區中之至少一者設定為系統分區。
在步驟S402中,控制器120接收來自主機200之一寫入指令。其中,寫入指令可包括所要傳送之資料的資料大小、要寫入的資料儲存裝置100之邏輯位址以及邏輯分區之資訊。在步驟S404,控制器120判斷該寫入指令要寫入的資料屬於系統資料或普通資料。如果是系統資料,則執行步驟S406。如果是普通資料,則執行步驟S416。其中,控制器120可依據寫入指令中所指定的邏輯分區查詢前述邏輯分區表170A來判斷該寫入指令中指定的邏輯分區是屬於系統分區或資料分區,進而判斷該筆寫入指令中所欲寫入的資料屬於系統資料或普通資料。
在步驟S406中,控制器120從主機200接收用以寫入至快閃記憶體140之系統分區的系統資料。其中,控制器120將所接收的系統資料寫入即時區塊,並且在隨機存取記憶體180維護對應該即時區塊的對照表F2H。接著,在步驟S408中,控制器120判斷是否已接收該寫入指令之全部系統資料,若是則執行步驟S410;若否,則返回步驟S406。
在步驟S410中,控制器120更新對照表H2F。其中,控制器120可依據對照表F2H來更新對照表H2F。當控制器120更新完對照表H2F後,即表示該筆寫入指令中所欲寫入的資料(亦即系統資料)已完整儲存至資料儲存裝置100。在步驟S412,控制器傳送確認訊息RUPIU至主機。然後在步驟S414,結束此資料儲存方法。於另一實施例中,步驟S410可取代為,控制器120將隨機存取記憶體180上的對照表F2H儲存至快閃記憶體140。
在步驟S416中,控制器120從主機200接收用以寫入至快閃記憶體140之資料分區的普通資料。其中,控制器120將所接收的普通資料寫入即時區塊,並且在隨機存取記憶體180維護對應該即時區塊的對照表F2H。接著,步驟S418中,控制器120判斷是否已接收該寫入指令之全部普通資料,若是,則執行步驟S412;若否,則返回步驟S416。在步驟S412中,控制器120傳送確認訊息RUPIU至主機。順帶一提,於此步驟中,控制器120將所接收的資料寫入即時區塊後即可傳送確認訊息RUPIU至主機,而不需等對照表H2F更新好或將隨機存取記憶體180上的對照表F2H儲存至快閃記憶體140後,即可傳送確認訊息RUPIU。然後執行步驟S414,結束此資料儲存方法。
第5圖係顯示根據本發明一實施例所述之資料讀取方法之流程圖。此資料讀取方法適用於電子裝置10,尤其是資料儲存裝置100之控制器120。其中,此資料讀取方法可接續於前述資料儲存方法之後執行,使得資料讀取方法與資料儲存方法合併為資料存取方法。在步驟S500,電子裝置10遭遇非預期斷電後再次開機。在步驟S502,控制器120在執行復電運作時從主機200接收一讀取指令。其中,該讀取指令用於讀取快閃記憶體140之一系統分區之系統資料(例如開機資料BD1~BD4),以供主機200執行初始化運作。
在步驟S504,控制器120依據對照表H2F讀取該系統資料並傳送至主機200。於此實施例中,控制器120先前接收系統資料時,係依據即時區塊之對照表F2H來更新對照表H2F後才傳送確認訊息RUPIU至主機,則控制器120可直接依據對照表H2F來讀取該系統資料。於另一實施例中,若控制器120先前接收系統資料時,係將即時區塊之對照表F2H儲存至快閃記憶體140後才傳送確認訊息RUPIU至主機,則步驟S504可取代為,控制器120依據對照表F2H讀取該系統資料並傳送至主機200。其中,若該系統資料並未位於即時區塊上,控制器120可另依據對照表H2F讀取該系統資料。
在步驟S506,控制器120重建即時區塊之對照表F2H,並依序檢查即時區塊之一頁面的資料是否為系統資料。當該頁面的資料為系統資料時,執行步驟S508;反之,則執行步驟S514。舉例而言,控制器120可藉由儲存於即時區塊之各個頁面之備用區中所儲存的邏輯分區之資訊來判斷即時區塊之各個頁面所儲存的資料屬於系統資料或是普通資料。例如,當即時區塊之一頁面之備用區中所儲存的邏輯分區係對應於系統分區時,控制器120則判定該頁面儲存系統資料。而當即時區塊之一面頁之備用區中所儲存的邏輯分區對應於資料分區時,控制器120則判定該頁面儲存普通資料。
在步驟S508,控制器120判斷該頁面於對照表F2H中的映射關係是否於非預期斷電前已更新至對照表H2F,若是,則進入步驟S510,控制器120保留該頁面的系統資料,接著執行步驟S514;若否,則進入步驟S512,控制器120捨棄該頁面的系統資料,接著執行步驟S514。舉例而言,控制器120可依據該頁面之備用區所儲存的一邏輯位址,查詢對照表H2F中該邏輯位址所對應的一實體位址是否為該頁面的實體位址,若是,則表示該頁面於對照表F2H中的映射關已於非預期斷電前已更新至對照表H2F。控制器120可將該頁面之邏輯位址-實體位址之映射關係記載於對照表F2H中,以保留該頁面的系統資料。此外,控制器120可藉由將該頁面標記為無效,或者刪除該頁面於對照表F2H中的映射關係,諸如將對照表F2H中的映射關係更改為”0xFFFFFFFF”來捨棄該頁面的系統資料。於另一實施例中,若控制器120先前接收系統資料時,係將即時區塊之對照表F2H儲存至快閃記憶體140後才傳送確認訊息RUPIU至主機,則步驟S508可省略,並直接執行步驟S512。順帶一提,由於在步驟S504時控制器120已經將開機資料傳送給主機200,因此控制器120在後續復電運作中重建F2H表時,若判斷即時區塊上有另一版本的開機資料,則為了避免版本衝突的問題,控制器120可捨棄即時區塊上之該另一版本的開機資料。
在步驟S514,控制器120判斷即時區塊之對照表F2H是否已重建完成。若已完成,則在步驟S516,結束此資料讀取方法。反之,則回到步驟S506。
一般而言,若電子裝置10發生非預期斷電,則下次開機時資料儲存裝置100往往需要花費許多時間來重建即時區塊的照表F2H,待對照表F2H建立完成後,控制器120才能將開機資料傳送至主機200,供主機200進行開機的初始化運作。然而,藉由本發明所提供之資料儲存裝置、電子裝置及資料儲存方法及/或資料讀取方法(資料存取方法),控制器120可藉由寫入指令CMD中所指定的邏輯分區來判斷該寫入指令CMD所要寫入的資料為系統資料或普通資料。若主機200要寫入系統資料至資料儲存裝置100時,控制器120在系統資料已完整儲存至快閃記憶體140之後才傳送確認訊息RUPIU給主機200。換言之,控制器120將所接收的系統資料寫入即時區塊之後,會在將即時區塊之對照表F2H儲存至快閃記憶體140或依據即時區塊之對照表F2H來更新對照表H2F之後,才傳送確認訊息RUPIU給主機200。藉此,即使電子裝置10遭遇非預期斷電,主機200在開機時可以在有限時間內快速讀取出所需的系統資料(例如開機資料)進行初始化運作。此外,控制器120更於復電運作之重建對照表F2H的過程中,捨棄即時區塊上與主機200初始化運作所使用之系統資料不同版本的系統資料,以避免系統資料因非預期斷電而造成版本不一的錯誤。
本發明之方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
在本說明書以及申請專利範圍中的序數,例如「第一」、「第二」、「第三」等等,彼此之間並沒有順序上的先後關係,其僅用於標示區分兩個具有相同名字之不同元件。本發明說明書中「耦接」一詞係泛指各種直接或間接之電性連接方式。本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10:電子裝置100:資料儲存裝置120:控制器140:快閃記憶體160-16N:區塊160A、160Z…16NA、16NZ:頁面170A:邏輯分區表180:隨機存取記憶體200:主機300:顯示器400:通訊裝置RUPIU:確認訊息BD1、BD2-BD10:開機資料P001、P002-P104:邏輯分區RT1、RT2、RT3、RT4:回覆訊息UPIU:指令封包S400…S516:步驟
第1圖係顯示根據本發明一實施例所述之電子裝置之示意圖; 第2圖係顯示根據本發明一實施例所述之傳送開機資料之示意圖; 第3圖係顯示根據本發明一實施例所述之紀錄邏輯分區之表格之示意圖; 第4A與4B圖係顯示根據本發明一實施例所述之資料儲存方法之流程圖; 第5圖係顯示根據本發明一實施例所述之資料讀取方法之流程圖。
S400...S418:步驟
Claims (20)
- 一種資料儲存裝置,包括: 一隨機存取記憶體;一快閃記憶體,包括複數個區塊,並且每一個區塊包括複數個頁面;以及 一控制器,耦接該隨機存取記憶體以及該快閃記憶體,該控制器自一主機接收一寫入指令,並判斷該寫入指令要寫入的資料是一系統資料或是一普通資料; 其中,當該寫入指令要寫入的是該系統資料時,於該系統資料已完整儲存至該資料儲存裝置後,該控制器傳送一確認訊息至該主機。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該快閃記憶體包含複數個邏輯分區,其中該控制器係自該主機接收一設定指令,並依據該設定指令將該複數個邏輯分區分別設定為一系統分區或一資料分區。
- 如申請專利範圍第2項所述之資料儲存裝置,該控制器係依據該寫入指令中指定的該邏輯分區來判斷該寫入指令要寫入的資料為該系統資料或該普通資料,當該寫入指令中指定的該邏輯分區對應於該系統分區時,該寫入指令要寫入的資料為該系統資料,而當該寫入指令中指定的該邏輯分區對應於該資料分區時,該寫入指令要寫入的資料為該普通資料。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該控制器將該寫入指令要寫入的資料寫入該複數個區塊中之一即時區塊,並且在該隨機存取記憶體維護一第一對照表,其中該第一對照表係用於紀錄該即時區塊之各個頁面的一實體位址與一邏輯位址的對應關係。
- 如申請專利範圍第4項所述之資料儲存裝置,其中若該寫入指令要寫入的資料是該系統資料,於該控制器將該系統資料寫入該即時區塊,並依據該隨機存取記憶體中之該第一對照表更新該快閃記憶體中的一第二對照表,並於該第二對照表更新完成後傳送該確認訊息至該主機,其中該第二對照表係用於紀錄該快閃記憶體之各個邏輯位址與各個實體位址的對應關係。
- 如申請專利範圍第5項所述之資料儲存裝置,其中當該控制器在執行一復電運作時從該主機接收一讀取指令,而該讀取指令係用於讀取該系統資料時,該控制器不等待該復電運作完成,依據該第二對照表讀取出該系統資料並傳送至該主機。
- 如申請專利範圍第6項所述之資料儲存裝置,其中於執行該復電運作中重建該第一對照表時,該控制器檢查該即時區塊上之一頁面的資料是否為該系統資料,當該頁面的資料為該系統資料時,該控制器判斷該頁面於該第一對照表中的映射關係是否於非預期斷電前已更新至該第二對照表,若是,則保留該頁面的該系統資料,若否,則捨棄該頁面的該系統資料。
- 如申請專利範圍第4項所述之資料儲存裝置,其中若該寫入指令要寫入的資料是該系統資料,該控制器係將該系統資料寫入該即時區塊,並將該隨機存取記憶體中之該第一對照表儲存至該快閃記憶體,以及於第一對照表儲存完成後傳送該確認訊息至該主機。
- 如申請專利範圍第8項所述之資料儲存裝置,其中當該控制器在執行一復電運作時從該主機接收一讀取指令,而該讀取指令係用於讀取該系統資料時,該控制器不等待該復電運作完成,自該快閃記憶體讀取該第一對照表,並依據該第一對照表讀取該系統資料並傳送至該主機。
- 如申請專利範圍第9項所述之資料儲存裝置,其中於執行該復電運作中重建該第一對照表時,該控制器檢查該即時區塊上之一頁面的資料是否為該系統資料,當該頁面的資料為該系統資料時,該控制器捨棄該頁面的該系統資料。
- 一種資料存取方法,適用於具有一快閃記憶體以及一控制器之一資料儲存裝置,該方法包括: 自一主機接收一寫入指令; 判斷該寫入指令要寫入的資料是一系統資料或是一普通資料;以及 當該寫入指令要寫入的是該系統資料時,於該系統資料已完整儲存至該資料儲存裝置後,傳送一確認訊息至該主機。
- 如申請專利範圍第11項所述之資料存取方法,其中該快閃記憶體包含複數個邏輯分區,該方法更包括: 自該主機接收一設定指令,並依據該設定指令將該複數個邏輯分區分別設定為一系統分區或一資料分區。
- 如申請專利範圍第12項所述之資料存取方法,其中判斷該寫入指令要寫入的資料是該系統資料或是該普通資料更包含: 依據該寫入指令中指定的該邏輯分區來判斷該寫入指令要寫入的資料為該系統資料或該普通資料; 其中,當該寫入指令中指定的該邏輯分區對應於該系統分區時,該寫入指令要寫入的資料為該系統資料,而當該寫入指令中指定的該邏輯分區對應於該資料分區時,該寫入指令要寫入的資料為該普通資料。
- 如申請專利範圍第11項所述之資料存取方法,更包括: 將該寫入指令要寫入的資料寫入該複數個區塊中之一即時區塊,並且在該隨機存取記憶體維護一第一對照表,其中該第一對照表係用於紀錄該即時區塊之各個頁面的一實體位址與一邏輯位址的對應關係。
- 如申請專利範圍第14項所述之資料存取方法,更包括: 若該寫入指令要寫入的資料是該系統資料,於接收該寫入指令之全部系統資料時,依據該第一對照表更新該快閃記憶體中的一第二對照表;以及 於該第二對照表更新完成後,傳送該確認訊息至該主機; 其中,該第二對照表係用於紀錄該快閃記憶體之各個邏輯位址與各個實體位址的對應關係。
- 如申請專利範圍第15項所述之資料存取方法,更包括: 在執行一復電運作時從該主機接收一讀取指令,而該讀取指令係用於讀取該系統資料時,不等待該復電運作完成,依據該第二對照表讀取出該系統資料並傳送至該主機。
- 如申請專利範圍第16項所述之資料存取方法,更包括: 於執行該復電運作中重建該第一對照表時,檢查該即時區塊上之一頁面的資料是否為該系統資料; 當該頁面的資料為該系統資料時,判斷該頁面於該第一對照表中的映射關係是否於非預期斷電前已更新至該第二對照表,若是,則保留該頁面的該系統資料,若否,則捨棄該頁面的該系統資料。
- 如申請專利範圍第14項所述之資料存取方法,更包括: 若該寫入指令要寫入的資料是該系統資料,將該系統資料寫入該即時區塊,並將該隨機存取記憶體中之該第一對照表儲存至該快閃記憶體;以及 於第一對照表儲存完成後,傳送該確認訊息至該主機。
- 如申請專利範圍第18項所述之資料存取方法,更包括: 在執行一復電運作時從該主機接收一讀取指令,而該讀取指令係用於讀取該系統資料時,不等待該復電運作完成,自該快閃記憶體讀取該第一對照表,並依據該第一對照表讀取該系統資料並傳送至該主機。
- 如申請專利範圍第19項所述之資料存取方法,更包括: 於執行該復電運作中重建該第一對照表時,檢查該即時區塊上之一頁面的資料是否為該系統資料;以及 當該頁面的資料為該系統資料時,捨棄該頁面的該系統資料。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107141711A TWI704456B (zh) | 2018-11-22 | 2018-11-22 | 資料儲存裝置與資料存取方法 |
CN201910270810.1A CN111208935B (zh) | 2018-11-22 | 2019-04-04 | 数据储存装置与数据存取方法 |
US16/406,165 US11366596B2 (en) | 2018-11-22 | 2019-05-08 | Data storage device and data access method for quickly loading boot data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107141711A TWI704456B (zh) | 2018-11-22 | 2018-11-22 | 資料儲存裝置與資料存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202020670A true TW202020670A (zh) | 2020-06-01 |
TWI704456B TWI704456B (zh) | 2020-09-11 |
Family
ID=70770296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107141711A TWI704456B (zh) | 2018-11-22 | 2018-11-22 | 資料儲存裝置與資料存取方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11366596B2 (zh) |
CN (1) | CN111208935B (zh) |
TW (1) | TWI704456B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11500567B2 (en) * | 2019-12-06 | 2022-11-15 | Micron Technology, Inc. | Configuring partitions of a memory sub-system for different data |
US11436153B2 (en) * | 2020-05-26 | 2022-09-06 | Western Digital Technologies, Inc. | Moving change log tables to align to zones |
CN117348821B (zh) * | 2023-12-04 | 2024-03-22 | 合肥康芯威存储技术有限公司 | 一种存储器、电子设备及开机数据读取方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787484A (en) * | 1996-08-08 | 1998-07-28 | Micron Technology, Inc. | System and method which compares data preread from memory cells to data to be written to the cells |
CN101436159B (zh) * | 2007-11-14 | 2012-11-28 | 深圳市朗科科技股份有限公司 | 存储介质管理方法 |
TWI364660B (en) * | 2007-11-14 | 2012-05-21 | Netac Technology Co Ltd | Method for managing a storage medium |
TWI375962B (en) * | 2008-06-09 | 2012-11-01 | Phison Electronics Corp | Data writing method for flash memory and storage system and controller using the same |
TWI485563B (zh) | 2008-09-17 | 2015-05-21 | Silicon Motion Inc | 快閃記憶裝置及其運作方法 |
TW201239619A (en) * | 2011-03-21 | 2012-10-01 | Silicon Motion Inc | Writing method of a flash memory and flash memory device |
US9164887B2 (en) | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
US9645896B2 (en) * | 2013-12-26 | 2017-05-09 | Silicon Motion, Inc. | Data storage device and flash memory control method |
WO2016051512A1 (ja) * | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
TWI546666B (zh) * | 2014-11-03 | 2016-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
CN104461397A (zh) * | 2014-12-19 | 2015-03-25 | 上海新储集成电路有限公司 | 一种固态硬盘及其读写方法 |
US9904490B2 (en) * | 2015-06-26 | 2018-02-27 | Toshiba Memory Corporation | Solid-state mass storage device and method for persisting volatile data to non-volatile media |
TWI661352B (zh) * | 2016-09-22 | 2019-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
KR20190030790A (ko) * | 2017-09-14 | 2019-03-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN109582599B (zh) * | 2017-09-29 | 2023-12-22 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
US10908832B2 (en) * | 2017-10-31 | 2021-02-02 | Micron Technology, Inc. | Common pool management |
KR102468737B1 (ko) * | 2017-12-19 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10802734B2 (en) * | 2018-09-28 | 2020-10-13 | Western Digital Technologies, Inc. | Method for fast boot read |
-
2018
- 2018-11-22 TW TW107141711A patent/TWI704456B/zh active
-
2019
- 2019-04-04 CN CN201910270810.1A patent/CN111208935B/zh active Active
- 2019-05-08 US US16/406,165 patent/US11366596B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11366596B2 (en) | 2022-06-21 |
CN111208935A (zh) | 2020-05-29 |
TWI704456B (zh) | 2020-09-11 |
US20200167078A1 (en) | 2020-05-28 |
CN111208935B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI261254B (en) | Memory card and semiconductor device | |
US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
US9081662B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US8902671B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
TWI704456B (zh) | 資料儲存裝置與資料存取方法 | |
US20230342055A1 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
WO2019090493A1 (zh) | 内存块回收方法和装置 | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
CN113900582A (zh) | 数据处理方法及对应的数据储存装置 | |
TW201931127A (zh) | 快閃記憶體控制器、安全數位卡、使用於快閃記憶體控制器的方法以及連接至安全數位卡的電子裝置 | |
TW201327185A (zh) | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 | |
TW201835771A (zh) | 用於在非託管快閃記憶體設備中複製資料頁的方法和裝置 | |
US8966161B2 (en) | Memory storage device and restoring method thereof | |
TWI820951B (zh) | 藉助於預定命令來進行記憶體裝置的資料存取控制的方法及設備 | |
US11748011B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
US11755338B2 (en) | Systems and methods for operating data processing units | |
CN113835617A (zh) | 数据处理方法及对应的数据储存装置 | |
TWI798034B (zh) | 記憶體控制器與資料處理方法 | |
TWI584292B (zh) | 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201926333A (zh) | 記憶體系統及其操作方法 |