TWI493341B - 記憶體儲存裝置及其修復方法 - Google Patents
記憶體儲存裝置及其修復方法 Download PDFInfo
- Publication number
- TWI493341B TWI493341B TW101124630A TW101124630A TWI493341B TW I493341 B TWI493341 B TW I493341B TW 101124630 A TW101124630 A TW 101124630A TW 101124630 A TW101124630 A TW 101124630A TW I493341 B TWI493341 B TW I493341B
- Authority
- TW
- Taiwan
- Prior art keywords
- host system
- storage device
- customized data
- memory storage
- written
- Prior art date
Links
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/142—Reconfiguring to eliminate the error
- G06F11/1428—Reconfiguring to eliminate the error with loss of hardware functionality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種記憶體儲存裝置的修復方法,且特別是有關於一種能在客戶端將記憶體儲存裝置回復至原廠狀態的方法與使用此方法的記憶體儲存裝置。
由於快閃記憶體(Flash Memory)具有非揮發性、省電、體積小以及內部無機械結構等特性,因此被廣泛地應用於各種電子裝置。有越來越多如記憶卡或隨身碟等可攜式儲存裝置是以快閃記憶體作為其中的儲存媒體。
然而,使用者在使用可攜式儲存裝置的期間,往往可能因使用不當等人為因素或各種不可預期的原因而造成可攜式儲存裝置發生異常。可攜式儲存裝置發生異常輕則導致部分資料遺失,重則可能有無法開機存取的情形。對此,由於使用者大多無法自行進行修復,因此只能選擇將可攜式儲存裝置送回原製造商來處理。
由於製造商的維修單位必須處理來自各地送修的商品,且可能因為缺乏商品在生產時的相關製造資訊,因此也難以快速地將其回復至與客戶需求相符的原廠狀態。就使用者的角度而言,在將有問題的裝置送修後,不僅需要花費修繕的費用,更經常必須等待相當長的維修時間。基此,實有必要研發一套能讓使用者自行對儲存裝置進行修復的機制。
有鑑於此,本發明提供一種記憶體儲存裝置及其修復方法,能便利地將記憶體儲存裝置恢復至原廠狀態。
本發明提出一種記憶體儲存裝置的修復方法,用於具有可複寫式非揮發性記憶體模組的記憶體儲存裝置,此可複寫式非揮發性記憶體模組包括多個實體單元,這些實體單元包括至少一備援實體單元,而上述備援實體單元係設定成只能透過特殊指令集合來存取,且上述備援實體單元儲存有至少一客製化資料。此方法包括在記憶體儲存裝置處於可接收與處理來自主機系統之指令的狀態時,從主機系統接收欲讀取上述備援實體單元的特殊讀取指令,此特殊讀取指令屬於特殊指令集合。此方法還包括將上述備援實體單元中的客製化資料傳送至主機系統。此方法還包括當從主機系統接收到欲寫入客製化資料的寫入指令時,將來自主機系統的所有客製化資料寫入至對應的實體單元,以使記憶體儲存裝置恢復至原廠狀態。
在本發明之一範例實施例中,其中上述備援實體單元更儲存有還原結構表,此還原結構表記錄各客製化資料與邏輯位址的對應關係,其中各邏輯位址個別映射各客製化資料所對應的實體單元。傳送備援實體單元中的客製化資料至主機系統的步驟更包括將還原結構表與備援實體單元中的客製化資料一併傳送至主機系統。
在本發明之一範例實施例中,其中在將還原結構表與
備援實體單元中的客製化資料一併傳送至主機系統的步驟之後,此方法更包括由主機系統根據還原結構表發出欲寫入客製化資料的寫入指令,其中各寫入指令欲寫入之邏輯位址為記錄在還原結構表中對應於欲寫入之客製化資料的邏輯位址。
在本發明之一範例實施例中,其中客製化資料包括主開機記錄(Master Boot Record,MBR)、開機磁區(Boot Sector)、檔案配置表(File Allocation Table)、根目錄(root directory)、裝置規格資訊、客製化應用程式、燒錄軟體以及韌體碼至少其中之一,而當從主機系統接收到欲寫入客製化資料的寫入指令時,將客製化資料寫入至對應的實體單元,以使記憶體儲存裝置恢復至原廠狀態的步驟包括針對各寫入指令,將寫入指令欲寫入的客製化資料回填至寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自主機系統的客製化資料分別寫入至對應的實體單元。
在本發明之一範例實施例中,其中在將客製化資料寫入至對應的實體單元,以使記憶體儲存裝置恢復至原廠狀態的步驟之前,此方法更包括判斷是否需要對記憶體儲存裝置進行預格式化(pre-format)程序。若是,則抹除使用區中的所有實體單元,並對使用區中的所有實體單元進行磁碟掃描。
在本發明之一範例實施例中,其中客製化資料與記憶體儲存裝置的生產資訊及架構資訊相關。
從另一觀點來看,本發明提出一種記憶體儲存裝置,
包括可複寫式非揮發性記憶體模組、連接器以及記憶體控制器。記憶體控制器耦接至可複寫式非揮發性記憶體模組與連接器。其中,可複寫式非揮發性記憶體模組包括多個實體單元,上述實體單元包括至少一備援實體單元,且上述備援實體單元係設定成只能透過特殊指令集合來存取,並儲存有至少一客製化資料。記憶體控制器用以在記憶體儲存裝置藉由連接器耦接主機系統,並處於可接收與處理來自主機系統之指令的狀態時,記憶體控制器從主機系統接收欲讀取上述備援實體單元的特殊讀取指令,並將上述備援實體單元中的客製化資料傳送至主機系統,其中特殊讀取指令屬於特殊指令集合。記憶體控制器用以在從主機系統接收到欲寫入客製化資料的寫入指令時,將來自主機系統的所有客製化資料寫入至對應的實體單元,以使記憶體儲存裝置恢復至原廠狀態。
在本發明之一範例實施例中,其中備援實體單元更儲存有還原結構表,此還原結構表記錄各客製化資料與邏輯位址的對應關係,其中各邏輯位址個別映射各客製化資料所對應的實體單元。記憶體控制器係將還原結構表與備援實體單元中的客製化資料一併傳送至主機系統。
在本發明之一範例實施例中,其中主機系統發出的寫入指令係欲寫入客製化資料,且各寫入指令欲寫入的邏輯位址為記錄在還原結構表中對應於欲寫入之客製化資料的邏輯位址。
在本發明之一範例實施例中,其中客製化資料包括主
開機記錄、開機磁區、檔案配置表、根目錄、裝置規格資訊、客製化應用程式、燒錄軟體以及韌體碼至少其中之一,而記憶體控制器用以針對各寫入指令,將寫入指令欲寫入的客製化資料回填至寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自主機系統的各客製化資料分別寫入至對應的實體單元。
在本發明之一範例實施例中,其中記憶體控制器用以在將客製化資料寫入至對應的實體單元之前,判斷是否需要對記憶體儲存裝置進行預格式化程序。若是,記憶體控制器抹除使用區中的所有實體單元,並對使用區中的所有實體單元進行磁碟掃描。
在本發明之一範例實施例中,其中客製化資料與記憶體儲存裝置的生產資訊及架構資訊相關。
從又一觀點來看,本發明提出一種記憶體儲存裝置的修復方法,其中記憶體儲存裝置具有可複寫式非揮發性記憶體模組與開機唯讀記憶體(Boot ROM),且可複寫式非揮發性記憶體模組包括多個實體單元,上述實體單元包括至少一備援實體單元,且上述備援實體單元係設定成只能透過特殊指令集合來存取。此方法包括在記憶體儲存裝置被耦接至主機系統而僅能執行開機唯讀記憶體中的驅動碼段時,從主機系統接收欲讀取上述備援實體單元的特殊讀取指令,其中特殊讀取指令屬於特殊指令集合。此方法還包括將上述備援實體單元中的客製化資料傳送至主機系統。此方法還包括當從主機系統接收到欲寫入客製化資料
的寫入指令時,將來自主機系統的客製化資料寫入至對應的實體單元,以使記憶體儲存裝置恢復至原廠狀態。
在本發明之一範例實施例中,其中客製化資料與記憶體儲存裝置的生產資訊及架構資訊相關。
在本發明之一範例實施例中,其中上述備援實體單元更儲存有還原結構表,此還原結構表中記錄各客製化資料與邏輯位址的對應關係,其中各邏輯位址個別映射各客製化資料所對應的實體單元,而傳送備援實體單元中的客製化資料至主機系統的步驟更包括將還原結構表與備援實體單元中的客製化資料一併傳送至主機系統。
在本發明之一範例實施例中,其中在將還原結構表與備援實體單元中的客製化資料一併傳送至主機系統的步驟之後,此方法更包括由主機系統根據還原結構表發出欲寫入客製化資料的寫入指令,其中各寫入指令欲寫入之邏輯位址為記錄在還原結構表中對應於欲寫入之客製化資料的邏輯位址。
在本發明之一範例實施例中,其中客製化資料包括主開機記錄、開機磁區、檔案配置表、根目錄、裝置規格資訊、客製化應用程式、燒錄軟體以及韌體碼至少其中之一,而當從主機系統接收到欲寫入客製化資料的寫入指令時,將客製化資料寫入至對應的實體單元,以使記憶體儲存裝置恢復至原廠狀態的步驟包括自主機系統接收欲寫入燒錄軟體與韌體碼的寫入指令,將來自主機系統的燒錄軟體載入記憶體儲存裝置的隨機存取記憶體,運轉燒錄軟體以將
來自主機系統的韌體碼回填至使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元,以及針對後續接收到的各寫入指令,將寫入指令欲寫入的客製化資料回填至寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自主機系統的各客製化資料分別寫入至對應的實體單元。
在本發明之一範例實施例中,其中在運轉燒錄軟體以將來自主機系統的韌體碼回填至使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元的步驟之後,更包括在回填各寫入指令欲寫入的客製化資料之前,判斷是否需要對記憶體儲存裝置進行預格式化程序。若是,則抹除使用區中的所有實體單元,並對使用區中的所有實體單元進行磁碟掃描。
從再一觀點來看,本發明提出一種記憶體儲存裝置,包括可複寫式非揮發性記憶體模組、連接器以及記憶體控制器。記憶體控制器耦接至可複寫式非揮發性記憶體模組與連接器。其中,可複寫式非揮發性記憶體模組包括多個實體單元,上述實體單元包括至少一備援實體單元,且上述備援實體單元係設定成只能透過特殊指令集合來存取,其中特殊指令集合包括特殊讀取指令。在記憶體儲存裝置藉由連接器被耦接至主機系統,而記憶體控制器僅能執行開機唯讀記憶體中的驅動碼段時,若透過連接器接收到來自主機系統並用以讀取備援實體單元的特殊讀取指令,記憶體控制器用以傳送備援實體單元中的客製化資料至主機系統。記憶體控制器用以在從主機系統接收到屬於欲寫入
客製化資料的寫入指令時,將來自主機系統的客製化資料寫入至對應的實體單元,以使記憶體儲存裝置恢復至原廠狀態。
在本發明之一範例實施例中,其中客製化資料與記憶體儲存裝置的生產資訊及架構資訊相關。
在本發明之一範例實施例中,其中上述備援實體單元更儲存有還原結構表,還原結構表中記錄各客製化資料與邏輯位址的對應關係,其中各邏輯位址個別映射各客製化資料所對應的實體單元。記憶體控制器將還原結構表與備援實體單元中的客製化資料一併傳送至主機系統。
在本發明之一範例實施例中,其中主機系統發出的寫入指令係欲寫入客製化資料,且各寫入指令欲寫入的邏輯位址為記錄在還原結構表中對應於欲寫入之客製化資料的邏輯位址。
在本發明之一範例實施例中,其中客製化資料包括主開機記錄、開機磁區、檔案配置表、根目錄、裝置規格資訊、客製化應用程式、燒錄軟體以及韌體碼至少其中之一,記憶體控制器用以自主機系統接收欲寫入燒錄軟體與韌體碼的寫入指令,將來自主機系統的燒錄軟體載入記憶體控制器的隨機存取記憶體,運轉燒錄軟體以將來自主機系統的韌體碼回填至使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元,以及針對後續接收到的各寫入指令,將寫入指令欲寫入的客製化資料回填至寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自主機系統的客製化資
料分別寫入至對應的實體單元。
在本發明之一範例實施例中,其中在運轉燒錄軟體以將來自主機系統的韌體碼回填至使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元之後,記憶體控制器更用以在回填各寫入指令欲寫入的客製化資料之前,判斷是否需要對記憶體儲存裝置進行預格式化程序。若是,記憶體控制器抹除使用區中的所有實體單元,並對使用區中的所有實體單元進行磁碟掃描。
基於上述,本發明係將與生產資訊及架構資訊相關的客製化資料額外儲存在受到高存取限制的備援實體單元。待記憶體儲存裝置出廠後,倘若客戶端主機系統透過特殊指令集合存取上述備援實體單元,記憶體儲存裝置則會將先前備份於備援實體單元的客製化資料回填到對應的儲存位址。據此,將記憶體儲存裝置恢復至符合其生產資訊與架構資訊的原廠狀態。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括可複寫式非揮發性記憶體模組與控制器(亦稱,控制電路)。通常記憶體儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲
存裝置中讀取資料。
圖1A是根據本發明一範例實施例所繪示之使用記憶體儲存裝置之主機系統的示意圖。
主機系統1000包括電腦1100與輸入/輸出(Input/Output,I/O)裝置1106。電腦1100包括微處理器1102、隨機存取記憶體(Random Access Memory,RAM)1104、系統匯流排1108、資料傳輸介面1110以及主儲存裝置1112。輸入/輸出裝置1106包括如圖1B所示的滑鼠1202、鍵盤1204、顯示器1206與印表機1208。必須瞭解的是,圖1B所示的裝置非限制輸入/輸出裝置1106,輸入/輸出裝置1106可更包括其他裝置。
在本發明範例實施例中,記憶體儲存裝置100是透過資料傳輸介面1110與主機系統1000的其他元件耦接。藉由微處理器1102、隨機存取記憶體1104以及輸入/輸出裝置1106的運作,主機系統1000可將資料寫入至記憶體儲存裝置100,或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的記憶卡1214、隨身碟1212、或固態硬碟(Solid State Drive,SSD)1216。
一般而言,主機系統1000為可儲存資料的任意系統。雖然在本範例實施例中主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中,主機系統1000亦可以是手機、數位相機、攝影機、通訊裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機1310時,記憶體儲存裝置則為其所使用的安全數位(Secure
Digital,SD)卡1312、多媒體記憶(Multimedia Card,MMC)卡1314、記憶棒(Memory Stick)1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示之記憶體儲存裝置100的方塊圖。請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
連接器102耦接至記憶體控制器104,並且用以耦接主機系統1000。在本範例實施例中,連接器102所支援的傳輸介面種類為通用序列匯流排(Universal Serial Bus,USB)介面。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是序列先進附件(Serial Advanced Technology Attachment,SATA)介面、多媒體儲存卡(Multimedia Card,MMC)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、安全數位(Secure Digital,SD)介面、記憶棒(Memory Stick,MS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。其中,記憶體控制器104更特別用以根據本範例實施例之修復方法,在記憶體儲存裝置100出廠之前備份與生產及架構資訊相關的重要資料,爾後在接獲主機系統1000下達屬於特殊指令集合的指令時,利用先前備份的資料將記憶體儲存裝置100恢復至原廠狀態。
可複寫式非揮發性記憶體模組106耦接至記憶體控制器104。可複寫式非揮發性記憶體模組106包括多個實體單元。在一範例實施例中,每一實體單元是由一個實體區塊(一實體區塊包括多個實體頁面)所組成,然而本發明並不侷限於此。在其他範例實施例中,每一實體單元也可由數個實體區塊所組成,在此並不對實體單元的組成加以限制。舉例來說,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組,但本發明不限於此,可複寫式非揮發性記憶體模組106也可以是單階記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或任何具有相同特性的記憶體模組。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機系統介面1041、記憶體管理電路1043、記憶體介面1045,以及儲存單元1047。
主機系統介面1041耦接至記憶體管理電路1043,並透過連接器102以耦接主機系統1000。主機系統介面1041係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機系統介面1041而傳送至記憶體管理電路1043。在本範例實施例中,主機系統介面1041對應連接器102而為USB介面,而在其他範例實施例中,主機系統介面1041也可以是SATA介面、MMC介面、PATA介面、IEEE 1394介面、PCI Express介面、SD介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
儲存單元1047耦接至記憶體管理電路1043。儲存單元1047至少包括開機唯讀記憶體(Boot ROM)1047-1與隨機存取記憶體1047-3。其中,開機唯讀記憶體1047-1用以儲存驅動碼段(Boot code)。隨機存取記憶體1047-3可以是靜態隨機存取記憶體(Static Random Access Memory,SRAM)、或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)等,本發明並不加以限制。隨機存取記憶體1047-3用以暫存來自於主機系統1000的指令與資料,或暫存來自於可複寫式非揮發性記憶體模組106的資料。
記憶體管理電路1043係用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1043具有多個控制指令,在記憶體儲存裝置100被運轉(power on)時,上述控制指令會被執行以對可複寫式非揮發性記憶體模組
106進行操作。
在本範例實施例中,記憶體管理電路1043的控制指令是以程式碼型式(亦稱,韌體碼)儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,可複寫式非揮發性記憶體模組106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1043具有微處理器單元(未繪示)。當記憶體控制器104被致能時,微處理器單元會先執行開機唯讀記憶體1047-1中的驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至隨機存取記憶體1047-3中。之後,微處理器單元會運轉上述控制指令以因應主機系統1000的指令來存取可複寫式非揮發性記憶體模組106。
在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以韌體型式來實作。例如,記憶體管理電路1043具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。當記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以因應主機系統1000的指令來存取可複寫式非揮發性記憶體模組106。
此外,在本發明另一範例實施例中,記憶體管理電路1043的控制指令亦可以一硬體型式來實作。舉例來說,記憶體管理電路1043包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取
單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體單元。記憶體寫入單元用以對可複寫式非揮發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中。記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料。記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除。而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
記憶體介面1045耦接至記憶體管理電路1043,以使記憶體控制器104與可複寫式非揮發性記憶體模組106相耦接。據此,記憶體控制器104可對可複寫式非揮發性記憶體模組106進行相關運作。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面1045轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
在本發明之另一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路3002。錯誤檢查與校正電路3002耦接至記憶體管理電路1043,用以執行錯誤檢查與校正程序以確保資料的正確性。具體而言,當記憶體管理電路1043接收到來自主機系統1000的寫入指令時,錯誤檢查
與校正電路3002會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),且記憶體管理電路1043會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106。之後當記憶體管理電路1043從可複寫式非揮發性記憶體模組106中讀取資料時,會同時讀取此資料對應的錯誤檢查與校正碼,且錯誤檢查與校正電路3002會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序,以識別該筆資料是否存在錯誤位元。
在本發明又一範例實施例中,記憶體控制器104還包括電源管理電路3006。電源管理電路3006耦接至記憶體管理電路1043,用以控制記憶體儲存裝置100的電源。
圖4是根據本發明之一範例實施例所繪示之管理可複寫式非揮發性記憶體模組之實體單元的示意圖。在以下描述可複寫式非揮發性記憶體模組106之實體單元的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體單元是邏輯上的概念。也就是說,可複寫式非揮發性記憶體模組106之實體單元的實際位置並未更動,而是邏輯上對可複寫式非揮發性記憶體模組106的實體單元進行上述操作。
請參照圖4,記憶體控制器104在記憶體儲存裝置100的生產期間(即,出廠之前)便將可複寫式非揮發性記憶體模組106的所有實體單元至少劃分為備援區1061與使用區1063。其中,備援區1061包括備援實體單元
405(1)~405(B),B為正整數。備援實體單元405(1)~405(B)係設定成只能透過特殊指令集合來存取。特殊指令集合包括數種製造商指令(vendor command),例如特殊讀取指令、特殊寫入指令以及特殊抹除指令。除非接獲屬於特殊指令集合的指令,否則記憶體控制器104將不會對備援區1061進行資料的寫入、讀取與抹除等運作。
使用區1063包括實體單元410(0)~410(N)。記憶體控制器104中的記憶體管理電路1043會將實體單元410(0)~410(N)邏輯地分組為資料區502、閒置區504、系統區506與取代區508。其中,圖4所標示的F、S、R與N為正整數,代表各區配置的實體單元數量,其可由記憶體儲存裝置100的製造商依據所使用之可複寫式非揮發性記憶體模組106的容量來設定。
邏輯上屬於資料區502與閒置區504的實體單元是用以儲存來自於主機系統1000的資料。具體來說,資料區502的實體單元是被視為已儲存資料的實體單元,而閒置區504的實體單元是用以寫入新資料的實體單元。換句話說,閒置區504的實體單元為空或可使用的實體單元(無記錄資料或標記為已沒用的無效資料)。當從主機系統1000接收到寫入指令與欲寫入之資料時,記憶體管理電路1043會從閒置區504中提取實體單元,並且將資料寫入至所提取的實體單元中,以替換資料區502的實體單元。或者,當需要對一邏輯單元執行資料合併程序時,記憶體管理電路1043會從閒置區504提取實體單元並將資料寫入其
中,以替換原先映射此邏輯單元的實體單元。
邏輯上屬於系統區506的實體單元是用以記錄系統資料。舉例來說,系統資料包括關於可複寫式非揮發性記憶體模組106的韌體碼、製造商與型號、可複寫式非揮發性記憶體模組106的實體區塊數、每一實體區塊的實體頁面數等資訊。必須特別說明的是,在圖4中雖然是將備援區1061獨立繪製在使用區1063之外,然而實際上,備援區1061中的備援實體單元405(1)~405(B)是屬於系統區506的實體單元。圖4之繪示方式僅是為了便於清楚說明。
邏輯上屬於取代區508的實體單元是用以在資料區502、閒置區504或系統區506中的實體單元損毀時,取代損壞的實體單元。具體而言,在記憶體儲存裝置100運作期間,倘若取代區508中仍存有正常之實體單元且資料區502的實體單元損壞時,記憶體管理電路1043會從取代區508中提取正常的實體單元來更換資料區502中損壞的實體單元。也因此,在記憶體儲存裝置100的運作過程中,資料區502、閒置區504、系統區506與取代區508的實體單元會動態地變動。例如,用以輪替儲存資料的實體單元會變動地屬於資料區502或閒置區504。
為了讓主機系統1000能對可複寫式非揮發性記憶體模組106進行存取,記憶體管理電路1043會配置數個邏輯單元610(0)~610(L)以映射資料區502中的實體單元410(0)~410(F-1)。詳言之,記憶體管理電路1043將所配置的邏輯單元610(0)~610(L)提供給主機系統1000,並維護
邏輯單元-實體單元映射表(logical unit-physical unit mapping table)以記錄邏輯單元610(0)~610(L)與實體單元410(0)~410(F-1)的映射關係。因此,當主機系統1000欲存取一邏輯位址時,記憶體管理電路1043會根據邏輯單元-實體單元映射表找到邏輯位址所映射的實體單元來進行存取。
在本範例實施例中,在記憶體儲存裝置100出廠之前,製造商會對可複寫式非揮發性記憶體模組106執行開卡程序。詳言之,製造商使用量產工具(Mass Production tool,MP tool)來命令記憶體控制器104對使用區1063中的實體單元410(0)~410(N)進行初始化動作。例如,記憶體控制器104會將實體單元410(0)~410(N)中每一頁面位址的資料抹除為0×FF資料,並進行磁碟掃描(例如,做讀寫測試)以識別出正常的實體單元與損毀的實體單元,並且將與記憶體儲存裝置100之生產資訊及架構資訊相關的客製化資料寫入使用區1063(例如,寫入專用於存放系統資料的系統區506)。其中,客製化資料包括主開機記錄(Master Boot Record,MBR)、開機磁區(Boot Sector)、檔案配置表(File Allocation Table)、根目錄(root directory)、裝置規格資訊(例如,記憶體儲存裝置100的速度、容量、模式、產品名稱等)、客製化應用程式、燒錄軟體(burner)以及韌體碼至少其中之一。進一步來說,部分客製化資料是在記憶體儲存裝置100被使用的過程中,會因應使用者的讀寫操作而被間接存取的資料。例
如,當使用者要將資料寫入記憶體儲存裝置100,或要刪除、修改記憶體儲存裝置100中的資料時,使用者雖不是直接對檔案配置表進行修改,然而檔案配置表的內容也會隨之被對應更動。另一部分的客製化資料則是與維繫記憶體儲存裝置100之主要運作有關的資料,好比像是燒錄軟體及韌體碼,此類型的客製化資料則無法被使用者直接或間接地修改其內容。而尚有一部分的客製化資料是關於記憶體儲存裝置100的附加功能(例如客製化應用程式),而這類型的客製化資料則可透過特殊的指令或工具來新增或刪除。
除此之外,量產工具會透過特殊指令集合命令記憶體控制器104將執行開卡程序期間所建立並寫入使用區1063的所有客製化資料額外寫入備援區1061中的備援實體單元405(1)~405(B)。舉例來說,量產工具先下達特殊指令集合中的特殊抹除指令,以由記憶體控制器104將備援實體單元405(1)~405(B)中的資料抹除。接著,量產工具再下達特殊寫入指令,以由記憶體控制器104將上述客製化資料寫入備援實體單元405(1)~405(B)。必須說明的是,某些種類的客製化資料在使用區1063係利用一個完整的實體單元來儲存,然而其實際的資料量卻小於一個實體單元的設計容量。而在本範例實施例中,記憶體控制器104在將各種客製化資料寫入備援區1061時,則會依各客製化資料的大小將其整併至備援實體單元405(1)~405(B)。也就是說,使用區1063中用以儲存所有客製化資料的實體單元總數
可能會大於備援實體單元405(1)~405(B)的數量。舉例來說,假設每一實體單元為一個實體區塊,在本範例實施例中,裝置規格資訊雖僅佔用兩個實體頁面,但記憶體控制器104會在使用區1063中使用一整個實體區塊來作為裝置規格資訊的儲存空間,然而在將裝置規格資訊寫入備援區1061時,記憶體控制器104則例如是將裝置規格資訊與檔案配置表等其他客製化資料寫入同一備援實體區塊,亦即,裝置規格資訊不會獨自佔用一個備援實體單元。
除此之外,在開卡程序的執行期間,量產工具還會下達特殊寫入指令以命令記憶體控制器104在各備援實體單元405(1)~405(B)建立一還原結構表,並在此還原結構表中記錄所屬之備援實體單元所記錄的各客製化資料與一邏輯位址的對應關係。其中,各邏輯位址是個別映射各客製化資料所對應的實體單元,亦即各客製化資料被寫入至使用區1063的實體單元。圖5是根據本發明之一範例實施例所繪示之還原結構表的示意圖。請參閱圖5,還原結構表50包括客製化資料名稱欄位53以及邏輯位址欄位55。其中,主開機記錄對應的邏輯位址為LBA(10)、開機磁區對應的邏輯位址為LBA(20)、檔案配置表對應的邏輯位址為LBA(30)、根目錄對應的邏輯位址為LBA(40)、裝置規格資訊對應的邏輯位址為LBA(50),而客製化應用程式對應的邏輯位址為LBA(100)。
在另一範例實施例中,記憶體控制器104還會在還原結構表中記錄各客製化資料所對應的檢查總和
(checksum),例如,在圖5所示之還原結構表50中新增一個欄位以記錄各客製化資料的檢查總和。此外,假設備援實體單元405(1)~405(B)的數量大於1,則各還原結構表還會記錄下一個備援實體單元的實體位址,例如,在圖5所示之還原結構表50的最後新增一列資料以記錄下一個備援實體單元的實體位址。
如上所述,在記憶體儲存裝置100尚未出廠之前,記憶體控制器104會在可複寫式非揮發性記憶體模組106的所有實體單元中特別劃分出僅能由特殊指令集合來進行存取的備援區1061,並將在開卡程序的執行期間所產生的各種客製化資料額外備份至備援區1061中的備援實體單元405(1)~405(B)。
在記憶體儲存裝置100出廠並被販售給使用者後,倘若使用者在使用時發現記憶體儲存裝置100有異常狀況,則可透過主機系統1000連接製造商提供的服務網站以將一修復應用程式下載至主儲存裝置1112。或者,倘若修復應用程式是儲存在光碟片並隨記憶體儲存裝置100一併販售給使用者,使用者亦可將光碟片中的修復應用程式安裝於主儲存裝置1112。在將記憶體儲存裝置100連接至主機系統1000後,使用者只要在主機系統1000執行修復應用程式,記憶體儲存裝置100中的記憶體控制器104便會依照修復應用程式的指令來將記憶體儲存裝置100恢復至原廠狀態。也就是說,使用者能利用修復應用程式以在使用者端自行完成記憶體儲存裝置100的復原程序。
詳言之,當記憶體儲存裝置100連接主機系統1000,倘若記憶體儲存裝置100處於可接收與處理來自主機系統1000之指令的狀態,表示記憶體控制器104能依照主機系統1000下達的指令對可複寫式非揮發性記憶體模組106進行存取。此時,一旦使用者在主機系統1000啟動修復應用程式,修復應用程式便會對記憶體儲存裝置100下達欲讀取備援實體單元405(1)~405(B)的特殊讀取指令。而記憶體控制器104在接獲上述特殊讀取指令時,則會將備援實體單元405(1)~405(B)中的所有客製化資料以及還原結構表一併回傳至主機系統1000。舉例來說,針對每一客製化資料,記憶體控制器104可先自還原結構表取得其檢查總和,並利用例如循環冗餘校驗(Cyclic Redundancy Check,CRC)程序來確認此客製化資料的正確性,並且待檢查無誤後再將其傳送至主機系統1000。
在主機系統1000收到記憶體儲存裝置100回傳的還原結構表與客製化資料之後,修復應用程式會參照還原結構表的內容來發出數個寫入指令,以將各客製化資料寫入可複寫式非揮發性記憶體模組106的使用區1063。其中,各寫入指令欲寫入的邏輯位址為記錄在還原結構表中對應於欲寫入之客製化資料的邏輯位址。在本範例實施例中,修復應用程式會依照一特定順序(例如,資料的重要性)將各個客製化資料寫入可複寫式非揮發性記憶體模組106的使用區1063。
當記憶體控制器104接收到由主機系統1000下達且
欲寫入客製化資料的寫入指令時,記憶體控制器104便會針對各寫入指令,將寫入指令欲寫入的客製化資料回填至使用區1063中映射於寫入指令欲寫入之邏輯位址的實體單元。在將所有客製化資料寫入使用區1063後,便能使記憶體儲存裝置100恢復至符合生產資訊及架構資訊的原廠狀態。
在一範例實施例中,當記憶體儲存裝置100透過連接器102耦接至主機系統1000,若主機系統1000向記憶體儲存裝置100詢問其裝置特徵,卻收到記憶體儲存裝置100發出一儲存媒體不存在(no media)訊息,則修復應用程式則會先下達預格式化指令來通知記憶體控制器104對記憶體儲存裝置100進行預格式化(pre-format)程序。詳言之,記憶體控制器104在接獲預格式化指令後,將抹除使用區1063中所有實體單元410(0)~410(N)中的資料,並對使用區1063中的所有實體單元410(0)~410(N)進行磁碟掃描,據此能從中識別出正常的實體單元與損毀的實體單元。而倘若正常的實體單元所對應的可用容量不符合記憶體儲存裝置100的裝置容量(例如,可用容量未達裝置容量),記憶體控制器104則會將此訊息回報給主機系統1000,而修復應用程式在接獲上述訊息後,會將裝置容量更新為可用容量(例如,更新檔案配置表中的容量欄位),並控制記憶體儲存裝置100再次進行檢查。此時,由於裝置容量已與可用容量相符,待記憶體儲存裝置100因應主機系統1000的詢問而回覆其裝置特徵後,修復應用程式便
可接續下達寫入指令以將先前接收到的客製化資料寫回使用區1063中的部份實體單元。亦即,在此範例實施例中,在將來自主機系統1000的客製化資料回填至對應的實體單元之前,記憶體控制器104有能力接收及識別預格式化指令,並可根據有無收到預格式化指令來判斷是否需要對記憶體儲存裝置100進行預格式化程序。在有需要執行預格式化程序的情況下,則先執行預格式化程序,而後再透過回填客製化資料的方式而將記憶體儲存裝置100恢復至原廠狀態。
圖6是根據本發明之第一範例實施例所繪示之記憶體儲存裝置的修復方法的流程圖。
請參閱圖6,首先如步驟S610所示,在記憶體儲存裝置100出廠之前,記憶體控制器104將可複寫式非揮發性記憶體模組106中所有的實體單元劃分為備援區1061與使用區1063,其中備援區1061包括一個以上的備援實體單元405(1)~405(B),且備援實體單元405(1)~405(B)只能透過特殊指令集合來存取。
接著在步驟S620中,製造商使用量產工具對記憶體儲存裝置100執行開卡程序。並如步驟S630所示,記憶體控制器104透過特殊指令集合,將執行開卡程序期間所建立並寫入使用區1063的各種客製化資料額外寫入備援實體單元405(1)~405(B)。
待記憶體儲存裝置100出廠之後,如步驟S640所示,在記憶體儲存裝置100連接主機系統1000並處於可接收與
處理來自主機系統1000之指令的狀態時,記憶體控制器104從主機系統1000接收到欲讀取備援實體單元405(1)~405(B)的特殊讀取指令,此特殊讀取指令屬於特殊指令集合。
在步驟S650中,記憶體控制器104將備援實體單元405(1)~405(B)中的客製化資料傳送至主機系統1000。
如步驟S660所示,記憶體控制器104在從主機系統1000接收到欲寫入客製化資料的寫入指令時,將來自主機系統1000的客製化資料寫入至對應的實體單元,據以使記憶體儲存裝置100恢復至原廠狀態。
以下將以圖7說明圖6之步驟S660的詳細流程。
請參閱圖7,首先在步驟S710中,記憶體控制器104判斷是否需要對記憶體儲存裝置100進行預格式化程序。亦即,判斷是否接獲主機系統1000下達的預格式化指令。
若是,則如步驟S720所示,記憶體控制器104抹除使用區1063中的所有實體單元410(0)~410(N),並對使用區1063中的所有實體單元410(0)~410(N)進行磁碟掃描。
待步驟S720執行完畢,或步驟S710的判斷結果為否,則如步驟S730所示,針對主機系統1000後續下達的各寫入指令,記憶體控制器104將各寫入指令欲寫入的客製化資料回填至使用區1063中映射於欲寫入之邏輯位址的實體單元。
在本範例實施例中,在記憶體儲存裝置100尚未出廠之前,記憶體控制器104亦會在可複寫式非揮發性記憶體模組106中劃分出僅能由特殊指令集合來進行存取的備援區1061,並且將在開卡程序的執行期間所產生的所有客製化資料額外備份至備援區1061中的備援實體單元405(1)~405(B)。然而,第二範例實施例與第一範例實施例的差異之處在於,記憶體儲存裝置100在出廠而被販售給使用者後,倘若因韌體碼損毀或遺失而造成記憶體控制器104僅能執行開機唯讀記憶體1047-1中的驅動碼段,使用者依舊可透過在主機系統1000執行修復應用程式以將記憶體儲存裝置100恢復至原廠狀態。
圖8是根據本發明之第二範例實施例所繪示之記憶體儲存裝置的修復方法的流程圖。
請參閱圖8,由於圖8之步驟S810至S830與圖6之步驟S610至S630相同或相似,故在此不再贅述。
待記憶體儲存裝置100出廠後,如步驟S840所示,在記憶體儲存裝置100被耦接至主機系統1000,而記憶體控制器104僅能執行開機唯讀記憶體1047-1中的驅動碼段時,使用者可在主機系統1000執行修復應用程式。修復應用程式在被執行後將發出欲讀取備援實體單元405(1)~405(B)的特殊讀取指令。基此,記憶體控制器104將透過連接器102接收到來自主機系統1000且讀取備援實體單元405(1)~405(B)的特殊讀取指令。
接著在步驟S850中,雖然記憶體控制器104目前僅
能執行開機唯讀記憶體1047-1中的驅動碼段,然而因驅動碼段增設了直接讀取可複寫式非揮發性記憶體模組106的功能,因此記憶體控制器104仍可以因應特殊讀取指令去讀取備援實體單元405(1)~405(B),並且將備援實體單元405(1)~405(B)中的客製化資料以及還原結構表回傳至主機系統1000。
在主機系統1000收到各客製化資料與還原結構表後,修復應用程式便會發出欲將客製化資料寫入可複寫式非揮發性記憶體模組106之使用區1063的寫入指令。而如步驟S860所示,當記憶體控制器104從主機系統1000接收到欲寫入客製化資料的寫入指令時,記憶體控制器104依照寫入指令中的邏輯位址將客製化資料寫入至對應的實體單元,以使記憶體儲存裝置100恢復至原廠狀態。
也就是說,在本發明之第二範例實施例中,即便因記憶體儲存裝置100的韌體碼損毀或遺失導致記憶體控制器104僅能執行到開機唯讀記憶體1047-1中的驅動碼段,亦能因應來自主機系統1000的特殊讀取指令對可複寫式非揮發性記憶體模組106中的備援實體單元405(1)~405(B)進行讀取,並利用備份在其中的客製化資料來將記憶體儲存裝置100恢復至原廠狀態。
以下將以圖9說明步驟S860的詳細流程。
請參閱圖9,在本範例實施例中,修復應用程式會先下達欲寫入燒錄軟體與韌體碼的寫入指令,故如步驟S910所示,記憶體控制器104自主機系統1000接收欲寫入燒錄
軟體與韌體碼的寫入指令。
接著在步驟S920中,記憶體控制器104將來自主機系統1000的燒錄軟體載入隨機存取記憶體1047-3。並如步驟S930所示,記憶體控制器104運轉燒錄軟體以將來自主機系統1000的韌體碼回填至使用區1063中映射於寫入指令所欲寫入之邏輯位址的實體單元。從另一角度來看,修復應用程式具有以系統內燒錄(In System Programming,ISP)方式來修正或更新記憶體儲存裝置100之韌體碼的功能。修復應用程式在下達寫入指令以將韌體碼存入使用區1063中的實體單元後,記憶體管理電路1043中的微處理器單元便可執行開機唯讀記憶體1047-1中的驅動碼段來將使用區1063中的韌體碼載入至隨機存取記憶體1047-3,以完成韌體碼的修正或更新。
爾後在步驟S940中,記憶體控制器104判斷是否需要對記憶體儲存裝置100進行預格式化程序(亦即,判斷是否有收到主機系統1000下達的預格式化指令)。
若是,則在步驟S950中,記憶體控制器104抹除使用區1063中的所有實體單元410(0)~410(N),並對使用區1063中的所有實體單元410(0)~410(N)進行磁碟掃描。
接著在步驟S960中,針對後續接收到的各寫入指令,記憶體控制器104將欲寫入的客製化資料回填至使用區1063中映射於欲寫入之邏輯位址的實體單元。
綜上所述,本發明所述之記憶體儲存裝置及其修復方法係在記憶體儲存裝置出廠之前,將進行開卡程序時所產
生的客製化資料額外寫入備援實體單元。由於備援實體單元僅能透過特殊指令集合來存取,因此即便在記憶體儲存裝置售出後,使用者對記憶體儲存裝置進行的一般存取操作並不會更動到備援實體單元的內容。一旦記憶體儲存裝置發生故障或異常,使用者能在用戶端主機系統執行製造商提供的修復應用程式,而記憶體儲存裝置中的記憶體控制器會根據修復應用程式的指示將備份在備援實體單元的客製化資料傳送至主機系統,並依修復應用程式下達的寫入指令將各客製化資料寫回使用區的實體單元,據此將記憶體儲存裝置回復到客戶需求的原廠狀態。對使用者來說,當發現記憶體儲存裝置異常時,不再需要將其送回原廠,只要在用戶端便能自行將其復原至原廠狀態,相當便利省時。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1112‧‧‧主儲存裝置
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
1041‧‧‧主機系統介面
1043‧‧‧記憶體管理電路
1045‧‧‧記憶體介面
1047‧‧‧儲存單元
1047-1‧‧‧開機唯讀記憶體
1047-3‧‧‧隨機存取記憶體
3002‧‧‧錯誤檢查與校正電路
3006‧‧‧電源管理電路
1061‧‧‧備援區
1063‧‧‧使用區
405(1)~405(B)‧‧‧備援實體單元
410(0)~410(N)‧‧‧實體單元
502‧‧‧資料區
504‧‧‧閒置區
506‧‧‧系統區
508‧‧‧取代區
610(0)~610(L)‧‧‧邏輯單元
50‧‧‧還原結構表
53‧‧‧客製化資料名稱欄位
55‧‧‧邏輯位址欄位
S610~S660‧‧‧本發明之第一實施例所述之記憶體儲存裝置的修復方法的各步驟
S710~S730‧‧‧本發明之第一實施例所述之將客製化資料寫入使用區以使記憶體儲存裝置恢復至原廠狀態的各步驟
S810~S860‧‧‧本發明之第二實施例所述之記憶體儲存
裝置的修復方法的各步驟
S910~S960‧‧‧本發明之第二實施例所述之將客製化資料寫入使用區以使記憶體儲存裝置恢復至原廠狀態的各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系
統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明一範例實施例繪示之記憶體控制器的概要方塊圖。
圖4是根據本發明之一範例實施例所繪示之管理實體單元的示意圖。
圖5是根據本發明之一範例實施例所繪示之還原結構表的示意圖。
圖6是根據本發明之第一範例實施例所繪示之記憶體儲存裝置的修復方法的流程圖。
圖7是根據本發明之第一範例實施例所繪示之將客製化資料寫入使用區以使記憶體儲存裝置恢復至原廠狀態的流程圖。
圖8是根據本發明之第二範例實施例所繪示之記憶體儲存裝置的修復方法的流程圖。
圖9是根據本發明之第二範例實施例所繪示之將客製化資料寫入使用區以使記憶體儲存裝置恢復至原廠狀態的流程圖。
S610~S660‧‧‧本發明之第一實施例所述之記憶體儲存裝置的修復方法的各步驟
Claims (26)
- 一種可插拔式記憶體儲存裝置的修復方法,用於具有一可複寫式非揮發性記憶體模組的一可插拔式記憶體儲存裝置,該可複寫式非揮發性記憶體模組包括多個實體單元,其中該些實體單元包括至少一備援實體單元,且該至少一備援實體單元係設定成只能透過一特殊指令集合來存取,其中該至少一備援實體單元儲存有至少一客製化資料,該方法包括:判斷是否被耦接至一主機系統;在判定被耦接至該主機系統之後,反應於來自該主機系統的一詢問而傳送一回應至該主機系統,其中該回應用以表示該可插拔式記憶體儲存裝置是否處於可接收與處理來自該主機系統之指令的狀態;在該可插拔式記憶體儲存裝置處於可接收與處理來自該主機系統之指令的狀態時,從該主機系統接收欲讀取該至少一備援實體單元的一特殊讀取指令,其中該特殊讀取指令屬於該特殊指令集合;傳送該至少一備援實體單元中的該至少一客製化資料至該主機系統;以及當從該主機系統接收到欲寫入該至少一客製化資料的至少一寫入指令時,將來自該主機系統的該至少一客製化資料寫入至對應的實體單元,以使該可插拔式記憶體儲存裝置恢復至一原廠狀態。
- 如申請專利範圍第1項所述之可插拔式記憶體儲 存裝置的修復方法,其中該至少一備援實體單元更儲存有一還原結構表,該還原結構表記錄該至少一客製化資料與一邏輯位址的對應關係,其中該邏輯位址個別映射該至少一客製化資料所對應的實體單元,而傳送該至少一備援實體單元中的該至少一客製化資料至該主機系統的步驟更包括:將該還原結構表與該至少一備援實體單元中的該至少一客製化資料一併傳送至該主機系統。
- 如申請專利範圍第2項所述之可插拔式記憶體儲存裝置的修復方法,其中在將該還原結構表與該至少一備援實體單元中的該至少一客製化資料一併傳送至該主機系統的步驟之後,該方法更包括:由該主機系統根據該還原結構表發出欲寫入該至少一客製化資料的該至少一寫入指令,其中該至少一寫入指令欲寫入的邏輯位址為記錄在該還原結構表中對應於欲寫入之客製化資料的該邏輯位址。
- 如申請專利範圍第3項所述之可插拔式記憶體儲存裝置的修復方法,其中該至少一客製化資料包括一主開機記錄(Master Boot Record,MBR)、一開機磁區(Boot Sector)、一檔案配置表(File Allocation Table)、一根目錄(root directory)、一裝置規格資訊、一客製化應用程式、一燒錄軟體以及一韌體碼至少其中之一,而當從該主機系統接收到欲寫入該至少一客製化資料的該至少一寫入指令時,將該至少一客製化資料寫入至對應的實體單元, 以使該可插拔式記憶體儲存裝置恢復至該原廠狀態的步驟包括:針對該至少一寫入指令,將該至少一寫入指令欲寫入的客製化資料回填至該至少一寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自該主機系統的該至少一客製化資料寫入至對應的實體單元。
- 如申請專利範圍第4項所述之可插拔式記憶體儲存裝置的修復方法,其中在將該至少一客製化資料寫入至對應的實體單元,以使該可插拔式記憶體儲存裝置恢復至該原廠狀態的步驟之前,更包括:判斷是否需要對該可插拔式記憶體儲存裝置進行一預格式化(pre-format)程序;以及若是,則抹除一使用區中的所有實體單元,並對該使用區中的所有實體單元進行磁碟掃描。
- 如申請專利範圍第1項所述之可插拔式記憶體儲存裝置的修復方法,其中該至少一客製化資料與該可插拔式記憶體儲存裝置的一生產資訊及一架構資訊相關。
- 如申請專利範圍第1項所述之可插拔式記憶體儲存裝置的修復方法,更包括:在該可插拔式記憶體儲存裝置沒有耦接至該主機系統時,從該些實體單元中劃分出該至少一備援實體單元並且將該至少一客製化資料儲存至該至少一備援實體單元中。
- 一種可插拔式記憶體儲存裝置,包括: 一可複寫式非揮發性記憶體模組,包括多個實體單元,其中該些實體單元包括至少一備援實體單元,且該至少一備援實體單元係設定成只能透過一特殊指令集合來存取,其中該至少一備援實體單元儲存有至少一客製化資料;一連接器,用以耦接至一主機系統;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體模組與該連接器,其中該記憶體控制器用以判斷該連接器是否被耦接至該主機系統,在判定該連接器被耦接至該主機系統之後,該記憶體控制器更用以反應於來自該主機系統的一詢問而傳送一回應至該主機系統,其中該回應用以表示該可插拔式記憶體儲存裝置是否處於可接收與處理來自該主機系統之指令的狀態,在該可插拔式記憶體儲存裝置藉由該連接器耦接該主機系統,並處於可接收與處理來自該主機系統之指令的狀態時,該記憶體控制器用以從該主機系統接收欲讀取該至少一備援實體單元的一特殊讀取指令,並傳送該至少一備援實體單元中的該至少一客製化資料至該主機系統,其中該特殊讀取指令屬於該特殊指令集合,該記憶體控制器更用以在從該主機系統接收到欲寫入該至少一客製化資料的至少一寫入指令時,將來自該主機系統的該至少一客製化資料寫入至對應的實體單元,以使該可插拔式記憶體儲存裝置恢復至一原廠狀態。
- 如申請專利範圍第8項所述之可插拔式記憶體儲存裝置,其中該至少一備援實體單元更儲存有一還原結構表,該還原結構表記錄該至少一客製化資料與一邏輯位址的對應關係,其中該邏輯位址個別映射該至少一客製化資料所對應的實體單元,而該記憶體控制器係將該還原結構表與該至少一備援實體單元中的該至少一客製化資料一併傳送至該主機系統。
- 如申請專利範圍第9項所述之可插拔式記憶體儲存裝置,其中該主機系統發出的該至少一寫入指令係欲寫入該至少一客製化資料,且該至少一寫入指令欲寫入的邏輯位址為記錄在該還原結構表中對應於欲寫入之客製化資料的該邏輯位址。
- 如申請專利範圍第10項所述之可插拔式記憶體儲存裝置,其中該至少一客製化資料包括一主開機記錄、一開機磁區、一檔案配置表、一根目錄、一裝置規格資訊、一客製化應用程式、一燒錄軟體以及一韌體碼至少其中之一,而該記憶體控制器用以針對該至少一寫入指令,將該至少一寫入指令欲寫入的客製化資料回填至該至少一寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自該主機系統的該至少一客製化資料寫入至對應的實體單元。
- 如申請專利範圍第11項所述之可插拔式記憶體儲存裝置,其中該記憶體控制器用以在將該至少一客製化資料寫入至對應的實體單元之前,判斷是否需要對該可插拔式記憶體儲存裝置進行一預格式化程序, 若是,該記憶體控制器抹除一使用區中的所有實體單元,並對該使用區中的所有實體單元進行磁碟掃描。
- 如申請專利範圍第8項所述之可插拔式記憶體儲存裝置,其中該至少一客製化資料與該可插拔式記憶體儲存裝置的一生產資訊及一架構資訊相關。
- 如申請專利範圍第8項所述之可插拔式記憶體儲存裝置,其中在該可插拔式記憶體儲存裝置沒有耦接至該主機系統時,該記憶體控制器更用以從該些實體單元中劃分出該至少一備援實體單元並且將該至少一客製化資料儲存至該至少一備援實體單元中。
- 一種可插拔式記憶體儲存裝置的修復方法,其中該可插拔式記憶體儲存裝置具有一可複寫式非揮發性記憶體模組與一開機唯讀記憶體(Boot ROM),且該可複寫式非揮發性記憶體模組包括多個實體單元,其中該些實體單元包括至少一備援實體單元,且該至少一備援實體單元係設定成只能透過一特殊指令集合來存取,該方法包括:在該可插拔式記憶體儲存裝置被耦接至該主機系統而僅能執行該開機唯讀記憶體中的一驅動碼段時,從該主機系統接收欲讀取該至少一備援實體單元的一特殊讀取指令,其中該特殊讀取指令屬於該特殊指令集合;傳送該至少一備援實體單元中的至少一客製化資料至該主機系統;以及當從該主機系統接收到欲寫入該至少一客製化資料的至少一寫入指令時,將來自該主機系統的該至少一客製 化資料寫入至對應的實體單元,以使該可插拔式記憶體儲存裝置恢復至一原廠狀態。
- 如申請專利範圍第15項所述之可插拔式記憶體儲存裝置的修復方法,其中該至少一客製化資料與該可插拔式記憶體儲存裝置的一生產資訊及一架構資訊相關。
- 如申請專利範圍第15項所述之可插拔式記憶體儲存裝置的修復方法,其中該至少一備援實體單元更儲存有一還原結構表,該還原結構表記錄該至少一客製化資料與一邏輯位址的對應關係,其中該邏輯位址個別映射該至少一客製化資料所對應的實體單元,而傳送該至少一備援實體單元中的至少一客製化資料至該主機系統的步驟更包括:將該還原結構表與該至少一備援實體單元中的該至少一客製化資料一併傳送至該主機系統。
- 如申請專利範圍第17項所述之可插拔式記憶體儲存裝置的修復方法,其中在將該還原結構表與該至少一備援實體單元中的該至少一客製化資料一併傳送至該主機系統的步驟之後,該方法更包括:由該主機系統根據該還原結構表發出欲寫入該至少一客製化資料的該至少一寫入指令,其中該至少一寫入指令欲寫入之邏輯位址為記錄在該還原結構表中對應於欲寫入之客製化資料的該邏輯位址。
- 如申請專利範圍第18項所述之可插拔式記憶體儲存裝置的修復方法,其中該至少一客製化資料包括一主 開機記錄、一開機磁區、一檔案配置表、一根目錄、一裝置規格資訊、一客製化應用程式、一燒錄軟體以及一韌體碼至少其中之一,而當從該主機系統接收到欲寫入該至少一客製化資料的該至少一寫入指令時,將該至少一客製化資料寫入至對應的實體單元,以使該可插拔式記憶體儲存裝置恢復至該原廠狀態的步驟包括:自該主機系統接收欲寫入該燒錄軟體與該韌體碼的寫入指令;將來自該主機系統的該燒錄軟體載入該可插拔式記憶體儲存裝置的一隨機存取記憶體;運轉該燒錄軟體以將來自該主機系統的該韌體碼回填至一使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元;以及針對後續接收到的該至少一寫入指令,將該至少一寫入指令欲寫入的客製化資料回填至該至少一寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自該主機系統的該至少一客製化資料寫入至對應的實體單元。
- 如申請專利範圍第19項所述之可插拔式記憶體儲存裝置的修復方法,其中在運轉該燒錄軟體以將來自該主機系統的該韌體碼回填至該使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元的步驟之後,更包括:在回填該至少一寫入指令欲寫入的客製化資料之前,判斷是否需要對該可插拔式記憶體儲存裝置進行一預格式化程序;以及 若是,則抹除該使用區中的所有實體單元,並對該使用區中的所有實體單元進行磁碟掃描。
- 一種可插拔式記憶體儲存裝置,包括:一可複寫式非揮發性記憶體模組,包括多個實體單元,其中該些實體單元包括至少一備援實體單元,且該至少一備援實體單元係設定成只能透過一特殊指令集合來存取;一連接器,用以耦接至一主機系統;以及一記憶體控制器,耦接至該可複寫式非揮發性記憶體模組與該連接器,該記憶體控制器包括一開機唯讀記憶體,其中在該可插拔式記憶體儲存裝置藉由該連接器被耦接至該主機系統,而該記憶體控制器僅能執行該開機唯讀記憶體中的一驅動碼段時,若透過該連接器接收到來自該主機系統且欲讀取該至少一備援實體單元的一特殊讀取指令,該記憶體控制器用以傳送該至少一備援實體單元中的至少一客製化資料至該主機系統,其中該特殊讀取指令屬於該特殊指令集合,該記憶體控制器更用以在從該主機系統接收到欲寫入該至少一客製化資料的至少一寫入指令時,將來自該主機系統的該至少一客製化資料寫入至對應的實體單元,以使該可插拔式記憶體儲存裝置恢復至一原廠狀態。
- 如申請專利範圍第21項所述之可插拔式記憶體儲存裝置,其中該至少一客製化資料與該可插拔式記憶體儲存裝置的一生產資訊及一架構資訊相關。
- 如申請專利範圍第21項所述之可插拔式記憶體儲存裝置,其中該至少一備援實體單元更儲存有一還原結構表,該還原結構表記錄該至少一客製化資料與一邏輯位址的對應關係,其中該邏輯位址個別映射該至少一客製化資料所對應的實體單元,而該記憶體控制器將該還原結構表與該至少一備援實體單元中的該至少一客製化資料一併傳送至該主機系統。
- 如申請專利範圍第23項所述之可插拔式記憶體儲存裝置,其中該主機系統發出的該至少一寫入指令係欲寫入該至少一客製化資料,且該至少一寫入指令欲寫入的邏輯位址為記錄在該還原結構表中對應於欲寫入之客製化資料的該邏輯位址。
- 如申請專利範圍第24項所述之可插拔式記憶體儲存裝置,其中該至少一客製化資料包括一主開機記錄、一開機磁區、一檔案配置表、一根目錄、一裝置規格資訊、一客製化應用程式、一燒錄軟體以及一韌體碼至少其中之一,該記憶體控制器用以自該主機系統接收欲寫入該燒錄軟體與該韌體碼的寫入指令,將來自該主機系統的該燒錄軟體載入該記憶體控制器的一隨機存取記憶體,運轉該燒錄軟體以將來自該主機系統的該韌體碼回填至一使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元,以及針對後續接收到的該至少一寫入指令,將該至少一寫入指令欲寫入的客製化資料回填至該至少一寫入指令欲寫入之邏輯位址所映射的實體單元,以使來自該主機系統的該至少 一客製化資料寫入至對應的實體單元。
- 如申請專利範圍第25項所述之可插拔式記憶體儲存裝置,其中在運轉該燒錄軟體以將來自該主機系統的該韌體碼回填至該使用區中映射於寫入指令所欲寫入之邏輯位址的實體單元之後,該記憶體控制器更用以在回填該至少一寫入指令欲寫入的客製化資料之前,判斷是否需要對該可插拔式記憶體儲存裝置進行一預格式化程序,若是,該記憶體控制器抹除該使用區中的所有實體單元,並對該使用區中的所有實體單元進行磁碟掃描。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101124630A TWI493341B (zh) | 2012-07-09 | 2012-07-09 | 記憶體儲存裝置及其修復方法 |
US13/632,161 US8966161B2 (en) | 2012-07-09 | 2012-10-01 | Memory storage device and restoring method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101124630A TWI493341B (zh) | 2012-07-09 | 2012-07-09 | 記憶體儲存裝置及其修復方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201403323A TW201403323A (zh) | 2014-01-16 |
TWI493341B true TWI493341B (zh) | 2015-07-21 |
Family
ID=49879399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101124630A TWI493341B (zh) | 2012-07-09 | 2012-07-09 | 記憶體儲存裝置及其修復方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8966161B2 (zh) |
TW (1) | TWI493341B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201604778A (zh) * | 2014-07-29 | 2016-02-01 | Acaia Corp | 藍牙電子秤之韌體更新方法 |
TWI567633B (zh) * | 2015-07-07 | 2017-01-21 | 鈺群科技股份有限公司 | 通用序列匯流排相容的隨身碟的啟動方法及其相關隨身碟 |
CN107015882B (zh) * | 2016-12-26 | 2019-11-22 | 阿里巴巴集团控股有限公司 | 一种区块数据校验方法和装置 |
KR20210085284A (ko) * | 2019-12-30 | 2021-07-08 | 삼성전자주식회사 | Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법 |
TWI817824B (zh) * | 2022-11-11 | 2023-10-01 | 宇瞻科技股份有限公司 | 資料備份還原方法及其裝置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591376B1 (en) * | 2000-03-02 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Method and system for failsafe recovery and upgrade of an embedded operating system |
US20080120353A1 (en) * | 2006-11-21 | 2008-05-22 | Samsung Electronics Co., Ltd. | Electronic device having file restore function and method thereof |
US20100023681A1 (en) * | 2004-05-07 | 2010-01-28 | Alan Welsh Sinclair | Hybrid Non-Volatile Memory System |
TW201015292A (en) * | 2008-07-01 | 2010-04-16 | Ibm | Microprocessor interface with dynamic segment sparing and repair |
US20120084601A1 (en) * | 2010-09-30 | 2012-04-05 | Yung-Chih Lee | Computer system rescue method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19839680B4 (de) * | 1998-09-01 | 2005-04-14 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten |
TW501037B (en) * | 2001-05-01 | 2002-09-01 | Benq Corp | Interactive update method for parameter data |
US20070283114A1 (en) * | 2006-06-01 | 2007-12-06 | Lawrence Andy V | Method and system for dividing a hard disk drive into multiple host access spaces |
US8190574B2 (en) * | 2010-03-02 | 2012-05-29 | Storagecraft Technology Corporation | Systems, methods, and computer-readable media for backup and restoration of computer information |
US9323670B2 (en) * | 2010-12-13 | 2016-04-26 | Seagate Technology Llc | Protecting volatile data of a storage device in response to a state reset |
-
2012
- 2012-07-09 TW TW101124630A patent/TWI493341B/zh active
- 2012-10-01 US US13/632,161 patent/US8966161B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591376B1 (en) * | 2000-03-02 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Method and system for failsafe recovery and upgrade of an embedded operating system |
US20100023681A1 (en) * | 2004-05-07 | 2010-01-28 | Alan Welsh Sinclair | Hybrid Non-Volatile Memory System |
US20080120353A1 (en) * | 2006-11-21 | 2008-05-22 | Samsung Electronics Co., Ltd. | Electronic device having file restore function and method thereof |
TW201015292A (en) * | 2008-07-01 | 2010-04-16 | Ibm | Microprocessor interface with dynamic segment sparing and repair |
US20120084601A1 (en) * | 2010-09-30 | 2012-04-05 | Yung-Chih Lee | Computer system rescue method |
Also Published As
Publication number | Publication date |
---|---|
US20140013029A1 (en) | 2014-01-09 |
TW201403323A (zh) | 2014-01-16 |
US8966161B2 (en) | 2015-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI425355B (zh) | 資料存取方法、記憶體控制器與儲存系統 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI385523B (zh) | 用於快閃記憶體的資料備份方法及其控制器與儲存系統 | |
US8230160B2 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
US9104329B2 (en) | Mount-time reconciliation of data availability | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI421686B (zh) | 資料存取方法與系統、儲存媒體控制器與儲存系統 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
US8255656B2 (en) | Storage device, memory controller, and data protection method | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
TW201445313A (zh) | 記憶體儲存裝置及其還原方法與記憶體控制器 | |
TWI498738B (zh) | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI489272B (zh) | 保護資料的方法、記憶體控制器與記憶體儲存裝置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
TWI493341B (zh) | 記憶體儲存裝置及其修復方法 | |
US9128624B2 (en) | Flash memory storage system for simulating rewritable disc device, flash memory controller, computer system, and method thereof | |
US20110231621A1 (en) | System recovery method, and storage medium controller and storage system using the same | |
TW201344434A (zh) | 記憶體格式化方法、記憶體控制器及記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |