TWI498738B - 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 - Google Patents
檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI498738B TWI498738B TW101117788A TW101117788A TWI498738B TW I498738 B TWI498738 B TW I498738B TW 101117788 A TW101117788 A TW 101117788A TW 101117788 A TW101117788 A TW 101117788A TW I498738 B TWI498738 B TW I498738B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- cluster
- area
- memory
- login
- Prior art date
Links
- 230000005055 memory storage Effects 0.000 title claims description 50
- 238000000034 method Methods 0.000 title claims description 40
- 238000005192 partition Methods 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 22
- 230000004913 activation Effects 0.000 claims description 13
- 239000003550 marker Substances 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 238000007726 management method Methods 0.000 description 66
- 238000010586 diagram Methods 0.000 description 19
- 238000012937 correction Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/062—Securing storage systems
-
- 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/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
- 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
- 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/7202—Allocation control and policies
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)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種檔案保護方法與系統,且特別是有關於一種用於保護儲存於可複寫式非揮發性記憶體模組之檔案的檔案保護方法與系統及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。隨身碟就是一種以NAND型快閃記憶體作為儲存媒體的儲存裝置。由於隨身碟體積小容量大,所以已廣泛用於資料的儲存與交換。
例如,使用者會彼此借用對方的隨身碟以將欲傳送給對方的資料儲存至其隨身碟中。然而,隨身碟是相當私人的物品,其往往儲存有個人之重要資料。因此,當使用者將隨身碟借用給他人時,如何不讓其他人看到或存取原先儲存於其中的個人檔案是使用者所相當重視的議題。
本發明提供一種檔案保護方法與系統、記憶體控制器與記憶體儲存裝置,其能夠有效地防止檔案被非授權者存
取。
本發明範例實施例提出一種檔案保護方法,用於記憶體儲存裝置,其中此記憶體儲存裝置具有可複寫式非揮發性記憶體模組,且此可複寫式非揮發性記憶體模組具有多個實體區塊。本檔案保護方法包括:將此些實體區塊至少分組為資料區與備用區;配置多個邏輯位址並且將此些邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊,其中此些邏輯位址會被格式化為分割區,此分割區包括檔案配置文件區與檔案區,檔案配置文件區儲存檔案配置文件,檔案區中的至少一叢集儲存一檔案,並且檔案配置文件記錄對應儲存此檔案之叢集的登錄值。本檔案保護方法也包括為此檔案執行一檔案保護啟動程序,其中此檔案保護啟動程序包括:根據記錄在檔案配置文件中對應儲存此檔案的至少一叢集的登錄值產生登錄值備份;將此登錄值備份儲存至安全儲存區;以及在檔案配置文件中變更對應儲存此檔案之叢集的登錄值,其中檔案無法根據變更後的登錄值被正確地讀取。
在本發明之一實施例中,所述之檔案保護方法更包括:為上述檔案執行一檔案保護關閉程序,其中此檔案保護關閉程序包括:從上述安全儲存區中讀取對應的登錄值備份;以及在檔案配置文件中根據所讀取之登錄值備份回復對應儲存此檔案的叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存上述檔案的叢集的數目為1個,並且在檔案配置文件中變更對應儲存
此檔案之叢集的登錄值的步驟包括:在檔案配置文件中將對應儲存此檔案的叢集的登錄值修改為表示壞叢集的值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且上述在檔案配置文件中變更對應儲存此叢集的登錄值的步驟包括:在檔案配置文件中將對應儲存此檔案的叢集之中的其中一個叢集的登錄值修改為表示此叢集之位址的值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且上述在檔案配置文件中變更對應儲存此叢集的登錄值的步驟包括:在檔案配置文件中將對應儲存此檔案的叢集之中的至少一個叢集的登錄值修改為表示壞叢集的值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且上述在檔案配置文件中變更對應儲存此叢集的登錄值的步驟包括:在檔案配置文件中將對應儲存此檔案的叢集之中的至少一個叢集的登錄值修改為表示結束標記的值,其中此叢集非為儲存此檔案的最後一個叢集。
在本發明之一實施例中,所述之將此些實體區塊至少分組為資料區與備用區的步驟包括:將此些實體區塊至少分組為資料區、備用區與隱藏區並且將此隱藏區作為上述安全儲存區。
在本發明之一實施例中,所述之檔案保護方法更包括:在主機系統運轉一檔案保護應用程式並且在記憶體儲
存裝置配置記憶體控制器;以及透過此檔案保護應用程式傳送用於上述檔案的檔案保護啟動訊號給記憶體控制器,並且由記憶體控制器執行此檔案保護啟動程序以回應此檔案保護啟動訊號。
在本發明之一實施例中,所述之檔案保護方法更包括:在主機系統運轉檔案保護應用程式;以及透過檔案保護應用程式執行上述檔案保護啟動程序。
本發明範例實施例提出一種記憶體控制器,用於控制可複寫式非揮發性記憶體模組,其中此可複寫式非揮發性記憶體模組具有多個實體區塊。本記憶體控制器包括主機介面、記憶體介面與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接至主機介面與記憶體介面。在此,記憶體管理電路將此些實體區塊至少分組為資料區與備用區,配置多個邏輯位址並且將此些邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊,其中此些邏輯位址會被格式化為分割區,此分割區包括檔案配置文件區與檔案區,檔案配置文件區儲存檔案配置文件,檔案區中的至少一叢集儲存一檔案並且檔案配置文件記錄對應儲存此檔案之叢集的登錄值。此外,記憶體管理電路為此檔案執行一檔案保護啟動程序,來根據記錄在檔案配置文件中對應儲存此檔案的至少一叢集的登錄值產生登錄值備份,將此登錄值備份儲存至安全儲存區,以及在檔案配置文件中變更對應儲存此檔案之叢集的登錄值,其中檔案無
法根據變更後的登錄值被正確地讀取。
在本發明之一實施例中,所述之記憶體管理電路為上述檔案執行一檔案保護關閉程序,以從安全儲存區中讀取對應的登錄值備份並且在檔案配置文件中根據所讀取的登錄值備份回復對應儲存此檔案之叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為1個,並且記憶體管理電路藉由在檔案配置文件中將對應儲存此檔案的叢集的登錄值修改為表示壞叢集的值,以變更對應儲存此檔案的叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且記憶體管理電路藉由在檔案配置文件中將對應儲存此檔案的叢集之中的其中一個叢集的登錄值修改為表示此叢集之位址的值,以變更對應儲存此檔案的叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且記憶體管理電路藉由在檔案配置文件中將對應儲存此檔案的叢集之中的至少一個叢集的登錄值修改為表示壞叢集的值,以變更對應儲存該檔案的叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且記憶體管理電路藉由在檔案配置文件中將對應儲存此檔案的叢集之中的至少一個叢集的登錄值修改為表示結束標記的值,以變更對應儲存該檔案的叢集的登錄值,其中此叢集非為儲存該檔案的最後一個叢集。
在本發明之一實施例中,所述之記憶體管理電路將此些實體區塊至少分組為資料區、備用區與隱藏區並且將此隱藏區作為上述安全儲存區。
在本發明之一實施例中,所述之主機系統運轉一檔案保護應用程式,並且當此檔案保護應用程式傳送用於此檔案的檔案保護啟動訊號給記憶體管理電路時,記憶體管理電路執行上述檔案保護啟動程序以回應此檔案保護啟動訊號。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統,可複寫式非揮發性記憶體模組具有多個實體區塊,並且記憶體控制器耦接至此連接器與可複寫式非揮發性記憶體模組。在此,記憶體控制器將此些實體區塊至少分組為資料區與備用區,配置多個邏輯位址並且將此些邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊,其中此些邏輯位址會被格式化為分割區,此分割區包括檔案配置文件區與檔案區,檔案配置文件區儲存檔案配置文件,檔案區中的至少一叢集儲存一檔案,並且檔案配置文件記錄對應儲存此檔案之叢集的登錄值。此外,記憶體控制器為此檔案執行一檔案保護啟動程序,來根據記錄在檔案配置文件中對應儲存此檔案的至少一叢集的登錄值產生登錄值備份,將此登錄值備份儲存至安全儲存區,以及在檔案配置文件中變更對應儲存此檔案之叢集的登錄值,其中檔案無法根據變更後的登錄值被正確地
讀取。
在本發明之一實施例中,所述之記憶體控制器為上述檔案執行一檔案保護關閉程序,以從安全儲存區中讀取對應的登錄值備份並且在檔案配置文件中根據所讀取的登錄值備份回復對應儲存此檔案之叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為1個,並且記憶體控制器藉由在檔案配置文件中將對應儲存此檔案的叢集的登錄值修改為表示壞叢集的值,以變更對應儲存此檔案的叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且記憶體控制器藉由在檔案配置文件中將對應儲存此檔案的叢集之中的其中一個叢集的登錄值修改為表示此叢集之位址的值,以變更對應儲存此檔案的叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且記憶體控制器藉由在檔案配置文件中將對應儲存此檔案的叢集之中的至少一個叢集的登錄值修改為表示壞叢集的值,以變更對應儲存該檔案的叢集的登錄值。
在本發明之一實施例中,在檔案區中儲存此檔案的叢集的數目為多個,並且記憶體控制器藉由在檔案配置文件中將對應儲存此檔案的叢集之中的至少一個叢集的登錄值修改為表示結束標記的值,以變更對應儲存該檔案的叢集的登錄值,其中此叢集非為儲存該檔案的最後一個叢集。
在本發明之一實施例中,所述之記憶體控制器將此些實體區塊至少分組為資料區、備用區與隱藏區並且將此隱藏區作為上述安全儲存區。
在本發明之一實施例中,所述之主機系統運轉一檔案保護應用程式,並且當此檔案保護應用程式傳送用於此檔案的檔案保護啟動訊號給記憶體控制器時,記憶體控制器執行上述檔案保護啟動程序以回應此檔案保護啟動訊號。
本發明範例實施例提出一種資料保護系統,其包括記憶體儲存裝置與檔案保護應用程式。記憶體儲存裝置具有可複寫式非揮發性記憶體模組與記憶體控制器,其中此可複寫式非揮發性記憶體模組具有多個實體區塊,並且記憶體控制器將此些實體區塊至少分組為資料區、備用區與隱藏區,配置多個邏輯位址並且將此些邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊,其中此些邏輯位址會被格式化為分割區,此分割區包括檔案配置文件區與檔案區,此檔案配置文件區儲存檔案配置文件,檔案區中的至少一叢集儲存一檔案,並且檔案配置文件記錄對應儲存此檔案的叢集的登錄值。檔案保護應用程式運轉於主機系統中,並且為此檔案執行一檔案保護啟動程序,來根據記錄在檔案配置文件中對應儲存此檔案的至少一叢集的登錄值產生登錄值備份,將此登錄值備份儲存至安全儲存區,以及在檔案配置文件中變更對應儲存此檔案之叢集的登錄值,其中檔案無法根據變更後的登錄值被正確地讀取。
基於所述,本範例實施例的檔案保護方法與系統及使
用此方法的記憶體控制器與記憶體儲存裝置可防止非授權者存取所儲存的檔案,由此確保所儲存之檔案的安全性。
為讓本發明之所述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖1A,主機系統1000包括微處理器1102、儲存裝置1104、隨機存取記憶體1106與輸入/輸出裝置1108。當主機系統1000開機時,微處理器1102會執行安裝於儲存裝置1104中的作業系統1110,以使主機系統1000根據使用者之操作而提供對應的功能。例如,在本範例實施中,主機系統1000為電腦系統並且作業系統1110為視窗作業系統,並且當主機系統1000開機後,使用者可透過輸入/輸出裝置1108操作主機系統1000以執行文件檔案編輯、影音檔案編輯、影音播放等功能。
記憶體儲存裝置100是耦接至主機系統1000,並且根據來自於主機系統1000之作業系統1110的指令執行資料的寫入與讀取。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的可複寫式非揮發性記憶體儲存裝置。
雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統
1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,可複寫式非揮發性記憶體儲存裝置則為其所使用的安全數位(Secure Digital,SD)卡1312、多媒體儲存卡(Multi Media Card,MMC)卡1314、記憶棒(memory stick)1316、小型快閃(Compact Flash,CF)卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。
連接器102是相容於通用序列匯流排(Universal Serial Bus,USB)標準的連接器。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是相容MS標準、MMC標準、CF標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、平行先進附件(Parallel Advanced Technology Attachment,PATA)標準、SD標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他標準的連接器。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指
令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。特別是,記憶體控制器104能夠執行根據本範例實施例之檔案保護啟動程序以回應運轉於主機系統1000之檔案保護應用程式1120所傳送之檔案保護啟動訊號,來防止主機系統1000存取被保護之檔案。此外,記憶體控制器104能夠執行根據本範例實施例之檔案保護關閉程序以回應運轉於主機系統1000之檔案保護應用程式1120所傳送之檔案保護關閉訊號,來允許主機系統1000存取原先被保護之檔案。稍後將配合圖式詳細描述檔案保護啟動程序與檔案保護關閉程序。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106包括多個實體區塊。各實體區塊分別具有複數個實體頁面,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是扇區(Sector)或其他大小。在本範例實施例中,可複寫式非揮發性記憶體模組106為多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶
體模組、複數階記憶胞(Trinary Level Cell,TLC)NAND型快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖2與圖3是根據一範例實施例所繪示之管理實體區塊的示意圖。
請參照圖2,在本範例實施例中,記憶體控制器104會將可複寫式非揮發性記憶體模組106的實體區塊304(0)~304(R)邏輯地分組為資料區402、備用區404、取代區406與隱藏區408,其中被分組為資料區402與備用區404的實體區塊會輪替地來儲存主機系統1000所寫入之資料,取代區408的實體區塊是用以取代資料區與備用區中的壞實體區塊,而隱藏區408是用以儲存記憶體控制器104所使用之系統資料。特別是,主機系統1000無法存取隱藏區408。
請參照圖3,為了使主機系統1000能夠方便地對以輪替方式儲存資料的實體區塊進行存取,記憶體控制器104會配置邏輯區塊位址LBA(0)~LBA(H)來映射資料區402的實體區塊,由此主機系統1000能夠直接地依據邏輯區塊位址來進行資料的寫入與讀取。
在本範例實施例中,邏輯區塊位址LBA(0)~LBA(H)會根據檔案系統被格式化成一個分割區(partition)900(如圖4所示),其中,檔案系統可為檔案配置表(File Allocation Table,FAT)、新技術檔案系統(New Technology File System,NTFS)、高效能檔案系統(High Performance File System,
HPFS)或其他類型之管理檔案系統。為說明方便,本範例實施例是以FAT來作說明。
分割區900可包括主引導磁區902、檔案配置文件區904、根目錄區906與檔案區908。
屬於主引導磁區902的邏輯區塊位址是用以儲存記憶體儲存裝置100的可儲存空間的系統資訊。
屬於檔案配置文件區904的邏輯區塊位址是用以儲存檔案配置文件。檔案配置文件是用以記錄用以儲存資料之邏輯區塊位址的登錄值。例如,檔案配置文件區中會儲存兩個檔案配置文件,其中一個檔案配置文件為正常存取所使用,而另一個檔案配置文件為備份檔案配置文件。
屬於根目錄區906的邏輯區塊位址是用以儲存檔案描述區塊(File Description Block,FDB),其用以記錄目前儲存於記憶體儲存裝置100中之檔案與目錄的屬性資訊。例如,對應一個檔案的檔案描述區塊會記錄用以此檔案的檔名以及儲存此檔案的起始邏輯區塊位址(即,起始叢集);並且對應一個目錄的檔案描述區塊會記錄此目錄的目錄名稱以及用以記錄儲存於此目錄中之檔案或目錄的檔案描述區塊的邏輯區塊位址(即,叢集)。
屬於檔案區908的邏輯區塊位址會被劃分為多個叢集並且用以實際地儲存檔案的內容。
具體來說,磁碟儲存最小單位為扇區,每一個扇區包含了512位元組(byte)的資訊內容。然而,使用扇區當單位來儲存時,主機系統1000的效率會很差。一般來說,主機系統1000
的作業系統1110不會以一個扇區當作存取檔案的單位,而是以叢集為一基本檔案單位。每一個叢集是架構在扇區的2次方倍數上。假定連續的8個扇區構成一個叢集,則此叢集的大小就為4096位元組。基此,在作業系統1110在存取資料時會以8個扇區連續讀取而提升了相對效率。但,叢集並非越大越好。因為當叢集越大時相對的可能會浪費許多儲存空間。例如,在一個叢集為4千位元組(kilobyte,KB)的情況下,當主機系統1000所儲存的檔案內容只有1KB時,此檔案還是佔用掉一個叢集的空間,剩餘之3KB的儲存空間就浪費掉了。特別是,叢集的總數目會受限於可複寫式非揮發性記憶體模組106的容量與檔案配置文件型態而有所不同。以FAT16來說,根據定義其本身最大的叢集數目必須介於4048個~65526個之間,所以當格式化一張128MB的記憶卡,其每一個叢集至少必須要包含4個扇區,不然會超出65526個叢集(cluster)的限制(127,901,696/512/4=62,452clusters)。所以每一叢集的大小為2KB。類似地,在FAT32中,最大的叢集數目必須介於65526個~4177918個之間。值得一提的是,在FAT16中,根目錄區906的大小是固定的。而在FAT32中,根目錄區906會被放在檔案區908來一起管理。
例如,在本範例實施例中,分割區(partition)900是符合FAT32規範的分割區。因此,屬於根目錄區906與檔案區908的扇區會被分組為叢集(cluster)600(0)~600(W)。在此假設叢集600(0)是被配置為根目錄區906的起始叢集。此外,檔案配置文件區904的檔案配置文件950包括扇區
700(M)~扇區700(M+K)(如圖5所示),來分別地記錄對應叢集600(0)~600(W)的登錄值(entry value)。在此,登錄值是用以表示所對應之叢集的狀態。例如,在FAT32中,“0000000h”表示此叢集為閒置叢集(即,未儲存資料),“FFFFFF7h”表示此叢集為壞叢集(即,無法儲存資料的壞叢集),“FFFFFF8h”-“FFFFFFFh”表示此叢集為儲存檔案之最後一個叢集等。在此,扇區700(M)的前2個登錄值(即,前8個位元組)會被保留並記錄為"F8hFFhFFh0Fh"與"FFhFFhFFh0Fh"。第2個登錄值為對應根目錄區906的叢集600(0)。第3個登錄值為對應叢集600(1)。第4個登錄值為對應叢集600(2)。第5個登錄值為對應叢集600(3)。第6個登錄值為對應叢集600(4)。第7個登錄值為對應叢集600(5)。以此類推,對應叢集600(0)~600(W)的登錄值都會被記錄在檔案配置文件區904的扇區中。
圖6是根據一範例實施例所繪示的記憶體控制器的概要方塊圖。
請參照圖6,記憶體控制器104包括記憶體管理電路202、主機介面204、記憶體介面206、緩衝記憶體208、電源管理電路210與錯誤檢查與校正電路212。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100上電(power on)時,此些控制指令會被執行以控制記憶體控制器104的整體運作。例如,記憶體管理電路202會執行如圖2與圖3所述之記憶
體管理機制。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令。
此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。例如,記憶體管理電路202包括微控制器、記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元。記憶體管理單元、記憶體寫入單元、記憶體讀取單元、記憶體抹除單元與資料處理單元是耦接至微控制器。其中,記憶體管理單元用以管理可複寫式非揮發性記憶體模組106的實體區塊;記憶體寫入單元用以對可複寫式非揮
發性記憶體模組106下達寫入指令以將資料寫入至可複寫式非揮發性記憶體模組106中;記憶體讀取單元用以對可複寫式非揮發性記憶體模組106下達讀取指令以從可複寫式非揮發性記憶體模組106中讀取資料;記憶體抹除單元用以對可複寫式非揮發性記憶體模組106下達抹除指令以將資料從可複寫式非揮發性記憶體模組106中抹除;而資料處理單元用以處理欲寫入至可複寫式非揮發性記憶體模組106的資料以及從可複寫式非揮發性記憶體模組106中讀取的資料。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204為符合USB標準的介面。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是符合MS標準、MMC標準、CF標準、PATA標準、IEEE 1394標準、PCI Express標準、SATA標準、SD標準、IDE標準或其他標準的介面。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
緩衝記憶體208是耦接至記憶體管理電路202並且用
以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
電源管理電路210是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
錯誤檢查與校正電路212是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
圖7是根據一範例實施例所繪示之於記憶體儲存裝置中儲存檔案的示意圖。
請參照圖7,在此假設使用者透過作業系統1110在記憶體儲存裝置100中建立目錄名稱為’JOB’的子目錄並且將檔名為’JOB1.DOC’的檔案807與檔名為’JOB1.DOC’的檔案809儲存至目錄名稱為’JOB’的子目錄中,其中檔名為’JOB1.DOC’的檔案807需佔用2個叢集並且檔名為’JOB2.DOC’的檔案809需佔用4個叢集。
針對子目錄,作業系統1110會根據記憶體儲存裝置100的檔案系統在配置給根目錄區906之叢集(例如,叢集600(0))中未使用的位址記錄對應目錄名稱為’JOB’的子目錄的檔案描述區塊801並且尋找一個空的叢集(例如,叢集600(1))來記錄關於此子目錄之內容,其中檔案描述區塊801會記錄叢集600(1)的資訊。
針對檔案,作業系統1110會根據記憶體儲存裝置100的檔案系統及檔案807的大小,尋找2個空的叢集(例如,叢集600(2)與叢集600(3))來儲存檔案807的內容。此外,作業系統1110會在叢集600(1)中記錄對應檔案807的檔案描述區塊803,在檔案配置文件區904的檔案配置文件950中將對應叢集600(2)的登錄值(即,第4登錄值)修改為叢集600(3)的位址並且在對應叢集600(3)的登錄值(即第5登錄值)修改為“FFFFFFFh”。類似地,作業系統1110會根據記憶體儲存裝置100的檔案系統及檔案809的大小,尋找4個空的叢集(例如,叢集600(4)、叢集600(5)、叢集600(6)與叢集600(7))來儲存檔案809的內容。此外,作業系統1110會在叢集600(1)中記錄對應檔案809的檔案描述區塊805,在檔案配置文件區904的檔案配置文件950中將對應叢集600(4)的登錄值(即,第6登錄值)修改為叢集600(5)的位址,將對應叢集600(5)的登錄值(即,第7登錄值)修改為叢集600(6)的位址,將對應叢集600(6)的登錄值(即,第8登錄值)修改為叢集600(7)的位址,並且,將對應叢集600(7)的登錄值(即,第9登錄值)修改為“FFFFFFFh”。
例如,在完成上述儲存之後,主機系統1000就可根據根目錄區906中的檔案描述區塊獲知記憶體儲存裝置100存有一個目錄名稱為’JOB’的子目錄。此外,主機系統1000可根據此子目錄的檔案描述區塊所記錄的叢集600(1)中所儲存之檔案描述區塊,獲知記憶體儲存裝置100存有一個檔名為’JOB1.DOC’的檔案807與一個檔名為’JOB2.DOC’的檔案809,並且此些檔案位於目錄名稱為’JOB’的子目錄下。例如,當主機系統1000欲讀取檔名為’JOB1.DOC’的檔案807時,作業系統1110會根據此檔案的檔案描述區塊803所記錄的叢集600(2)來開始讀取資料,並且根據在檔案配置文件區904中將對應叢集600(2)的登錄值繼續從叢集600(3)讀取資料,由此完成此檔案的讀取。
在本範例實施例中,當欲防止儲存在記憶體儲存裝置100的檔案被其他人存取時,使用者可透過檔案保護應用程式1120來指示記憶體控制器104(或記憶體管理電路202)對欲保護的檔案執行檔案保護啟動程序。例如,當檔案保護應用程式1120傳送對一個檔案執行檔案保護啟動程序的檔案保護啟動訊號給記憶體儲存裝置100時,記憶體控制器104(或記憶體管理電路202)會依據記錄在檔案配置文件950中對應用以儲存此檔案之叢集的登錄值來產生登錄值備份,將所產生之登錄值備份儲存至安全儲存區,並且在檔案配置文件950中變更用以儲存此檔案之叢集的至少一登錄值,由此使得主機系統1000無法根據變更後的登錄值來讀取此檔案,由此達到保護檔案的功能。
以下將以數個範例,來說明記憶體控制器104(或記憶體管理電路202)如何更改對應用以儲存此檔案之叢集的登錄值,以達到保護檔案的功能。
圖8A與圖8B是根據本發明範例實施例所繪示之修改檔案配置文件的一範例。
請參照圖8A與圖8B,假設使用者欲保護檔名為”JOB2.DOC”的檔案809(如圖7所示)並且傳送指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號給記憶體儲存裝置100。在此範例中,當接收到指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號時,記憶體控制器104(或記憶體管理電路202)會根據檔案配置文件950中對應儲存檔案809的第二個叢集(即,叢集600(5))的登錄值(即,第7登錄值)產生登錄值備份880,並且將所產生的登錄值備份儲存至隱藏區480,其中登錄值備份880記錄第7登錄值為600(6)。之後,記憶體控制器104(或記憶體管理電路202)會將檔案配置文件950中對應叢集600(5)的登錄值(即,第7登錄值)修改為本身位址之值(即,600(5))。基此,因為用以儲存檔案809的叢集之間的鏈結資訊會被破壞,因此主機系統1000無法再根據檔案配置文件950中的資訊讀取檔案809。例如,在依據檔案描述區塊805從叢集600(4)開始讀取資料並且根據檔案配置文件950中對應叢集600(4)之登錄值(即,第6登錄值)繼續從叢集600(5)讀取資料之後,主機系統1000根據對應叢集600(5)的登錄值(即,第7登錄值)會識別叢集600(5)的下一
個叢集為叢集600(5),而產生矛盾並且造成檔案讀取失敗。值得一提的是,儘管在圖8B的範例中,是以修改第二個叢集為利來進行說明,但本發明不限於此,在本發明另一範例實施例中,亦可將用以儲存檔案的叢集中的任一個或任多個叢集所對應的登錄值修改為本身位址或其他檔案位址之值,由此破壞儲存此檔案之叢集之間的鏈結,以致於檔案無法被正確地讀取,亦即檔案讀取失敗或讀出錯誤檔案。
圖9A與圖9B是根據本發明範例實施例所繪示之修改檔案配置文件的另一範例。
請參照圖9A與圖9B,假設使用者欲保護檔名為”JOB2.DOC”的檔案809(如圖7所示)並且傳送指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號給記憶體儲存裝置100。在此範例中,當接收到指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號時,記憶體控制器104(或記憶體管理電路202)會根據檔案配置文件950中對應儲存檔案809的第一個叢集(即,叢集600(4))的登錄值(即,第6登錄值)產生登錄值備份980,並且將所產生的登錄值備份儲存至隱藏區480,其中登錄值備份980記錄第6登錄值為600(5)。之後,記憶體控制器104(或記憶體管理電路202)會將檔案配置文件950中對應叢集600(4)的登錄值(即,第6登錄值)修改為表示此叢集為儲存檔案之最後一個叢集的值(即,結束標記,例如,”FFFFFFFh”)。基此,因為用以儲存檔案809的叢集之間的鏈結資訊會被
破壞,因此主機系統1000無法再根據檔案配置文件950中的資訊讀取檔案809。例如,在依據檔案描述區塊805從叢集600(4)開始讀取資料之後,主機系統1000根據對應叢集600(4)的登錄值(即,第6登錄值)會識別叢集600(4)為最後一個叢集,而無法繼續讀取後續之資料並造成檔案讀取失敗。值得一提的是,儘管在圖9B的範例中,是以修改第一個叢集為利來進行說明,但本發明不限於此,在本發明另一範例實施例中,亦可將用以儲存檔案的叢集中的任一個或任多個叢集所對應的登錄值修改為結束標記,由此使主機系統1000無法繼續讀取資料,以致於檔案讀取失敗。
圖10A與圖10B是根據本發明範例實施例所繪示之修改檔案配置文件的另一範例。
請參照圖10A與圖10B,假設使用者欲保護檔名為”JOB2.DOC”的檔案809(如圖7所示)並且傳送指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號給記憶體儲存裝置100。在此範例中,當接收到指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號時,記憶體控制器104(或記憶體管理電路202)會根據檔案配置文件950中對應儲存檔案809的第一個叢集(即,叢集600(4))的登錄值(即,第6登錄值)產生登錄值備份1080,並且將所產生的登錄值備份儲存至隱藏區480,其中登錄值備份1080記錄第6登錄值為600(5)。之後,記憶體控制器104(或記憶體管理電路202)會將檔案配置文件950中對應叢集
600(4)的登錄值(即,第6登錄值)修改為表示此叢集為壞叢集的值(例如,”FFFFFF7h”)。基此,當依據檔案描述區塊805從叢集600(4)開始讀取資料時,主機系統1000會識別用以儲存檔案809的叢集已損壞,因此造成檔案讀取失敗。
圖11A與圖11B是根據本發明範例實施例所繪示之修改檔案配置文件的另一範例。
請參照圖11A與圖11B,假設使用者欲保護檔名為”JOB2.DOC”的檔案809(如圖7所示)並且傳送指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號給記憶體儲存裝置100。在此範例中,當接收到指示為檔案809執行檔案保護啟動程序的檔案保護啟動訊號時,記憶體控制器104(或記憶體管理電路202)會根據檔案配置文件950中對應儲存檔案809的第一個叢集(即,叢集600(4))的登錄值(即,第6登錄值)產生登錄值備份1180,並且將所產生的登錄值備份儲存至隱藏區480,其中登錄值備份1180記錄第6登錄值為600(5)。之後,記憶體控制器104(或記憶體管理電路202)會在檔案配置文件950中將對應用以儲存檔案809的所有叢集的登錄值修改為表示此叢集為壞叢集的值(例如,”FFFFFF7h”)。例如,記憶體控制器104(或記憶體管理電路202)將對應叢集600(4)的登錄值(即,第6登錄值)修改為”FFFFFF7h”,將對應叢集600(5)的登錄值(即,第7登錄值)修改為”FFFFFF7h”,將對應叢集600(6)的登錄值(即,第8登錄值)修改為”FFFFFF7h”,並且將對應叢集600(7)的登錄值(即,第9登錄值)修改
為”FFFFFF7h”。基此,當依據檔案描述區塊805從叢集600(4)開始讀取資料時,主機系統1000會識別用以儲存檔案809的叢集已損壞,因此造成檔案讀取失敗。
值得一提的是,在圖10B與圖11B本範例中,是將用以儲存檔案的多個叢集中的第一個叢集所對應的登錄值或者用以儲存檔案的所有叢集所對應之登錄值修改為表示此叢集為壞叢集的值,來達到檔案讀取失敗,亦即檔案無法被正確地讀取的目的。然而,本發明不限於此,在另一範例實施例中,可藉由將用以儲存檔案的叢集中的任一個或任多個叢集所對應的登錄值修改為表示此叢集為壞叢集的值,以使主機系統1000檔案失敗。此外,值得一提的是,儘管在圖11A與圖11B的範例中,是假設用以儲存檔案809的叢集為多個,但本發明不限於此,用以儲存檔案的叢集亦只有1個,並且在執行檔案保護啟動程序時,此叢集所對應的登錄值會被修改為表示此叢集為壞叢集的值。
必須瞭解的是,圖8B、圖9B、圖10B與圖11B所述之修改機制僅為範例並非限制本發明,並且記憶體控制器104(或記憶體管理電路202)可選擇地執行此些修改機制之中的至少其中一部份,以達到資料保護的功能。
如上所述,在本範例實施例中,記憶體控制器104(或記憶體管理電路202)會以所配置隱藏區408作為用以儲存登錄值備份的安全儲存區。然而,必須瞭解的是,本發明不限於此,並且在本發明另一範例實施例中,額外配置於記憶體儲存裝置100中的儲存元件(例如,可複寫式非揮發
性記憶體)亦可被用作為儲存登錄值備份的安全儲存區。
特別是,在執行檔案保護啟動程序之後,當欲存取已被保護的檔案時,使用者可透過檔案保護應用程式1120關閉檔案保護機制。例如,檔案保護應用程式1120會在完成使用者身份的識別後傳送檔案保護關閉訊號給記憶體儲存裝置100,並且記憶體控制器104(或記憶體管理電路202)會依據儲存於安全儲存區中的登錄值備份來回復(還原)透過檔案保護啟動程序所修改之登錄值。在此,使用者身份的識別可以是透過密碼、生物特徵或其他認證機制來實施,本範例實施例不對此作限制。
例如,在圖8A與圖8B所示的範例中,當接收到為檔案809執行檔案保護關閉程序的檔案保護關閉訊號時,記憶體控制器104(或記憶體管理電路202)會將檔案配置文件950中對應儲存檔案809的第二個叢集(即,叢集600(5))的登錄值(即,第7登錄值)回復為600(6)。基此,主機系統1000就可根據還原之檔案配置文件950讀取檔案809。
圖12A與圖12B是根據本發明範例實施例所繪示之檔案保護方法的流程圖。
請參照圖12A,在步驟S1201中,可複寫式非揮發性記憶體模組106的實體區塊至少被分組為資料區402與備用區404,多個邏輯位址會被配置且被分組為多個邏輯區塊以映射資料區402的實體區塊,並且此些邏輯位址會被格式化為一個分割區。例如,如上所述,此分割區包括檔案配置文件區904、根目錄區906與檔案區908。
在步驟S1203中,檔案會被儲存至此分割區中。具體來說,在步驟S1203中,檔案的內容會被儲存至檔案區908,對應檔案的檔案描述區塊會被儲存至根目錄區906,並且用以儲存此檔案之叢集的登錄值會被記錄在檔案配置文件區904的檔案配置文件950中。並且,在步驟S1203中,記憶體控制器104(或記憶體管理電路202)會根據邏輯區塊-實體區塊映射表將此些儲存至檔案配置文件區904、根目錄區906與檔案區908的資料寫入至對應的實體區塊中。
請參照圖12B,在步驟S1205中,檔案保護啟動訊號或檔案保護關閉訊號會判斷是否被接收。
倘若接收到檔案保護啟動訊號時,在步驟S1207中,記憶體控制器104(或記憶體管理電路202)會根據記錄在檔案配置文件950中對應儲存欲保護之檔案的至少一叢集的登錄值產生至少一登錄值備份。之後,在步驟S1209中,記憶體控制器104(或記憶體管理電路202)會將所產生之登錄值備份儲存至安全儲存區中。最後,在步驟S1211中,記憶體控制器104(或記憶體管理電路202)會在檔案配置文件950中變更對應叢集的登錄值,以使欲保護之檔案無法根據變更後的登錄值被讀取。變更登錄值的機制已配合圖8B、9B、10B與圖11B詳細說明如上,在此不再重複。
倘若接收到檔案保護關閉訊號時,在步驟S1213中,記憶體控制器104(或記憶體管理電路202)會從安全儲存區中讀取關於欲關閉檔案保護機制之檔案的登錄值備份。然
後,在步驟S1215中,記憶體控制器104(或記憶體管理電路202)會在檔案配置文件950中根據所讀取之登錄值備份回復對應用以儲存此檔案的叢集的登錄值。基此,先前已被保護之檔案就可再被存取。
值得一提的是,在上述範例實施例中,檔案保護啟動程序與檔案保護關閉程序是由記憶體控制器104(或記憶體管理電路202)根據檔案保護應用程式1120的訊號來執行。然而,本發明不限於此,例如,在本發明另一範例實施例中,檔案保護系統可包括記憶體儲存裝置與檔案保護應用程式,並且檔案保護啟動程序與檔案保護關閉程序亦是由檔案保護應用程式來執行。
綜上所述,本發明範例實施例的檔案保護方法與系統及使用此方法的記憶體控制器與記憶體儲存裝置可防止非授權者存取所儲存的檔案,由此確保所儲存之檔案的安全性。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧可複寫式非揮發性記憶體模組
1000‧‧‧主機系統
1102‧‧‧微處理器
1104‧‧‧儲存裝置
1106‧‧‧隨機存取記憶體
1108‧‧‧輸入/輸出裝置
1110‧‧‧作業系統
1120‧‧‧格式化應用程式
1100‧‧‧電腦
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
304(0)~304(R)‧‧‧實體區塊
402‧‧‧資料區
404‧‧‧備用區
406‧‧‧取代區
408‧‧‧隱藏區
LBA(0)~LBA(H)‧‧‧邏輯區塊位址
600(0)~600(W)‧‧‧叢集
700(0)~700(M+K)‧‧‧扇區
900‧‧‧分割區
902‧‧‧主引導磁區
904‧‧‧檔案配置區
906‧‧‧根目錄區
908‧‧‧檔案區
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
208‧‧‧緩衝記憶體
210‧‧‧電源管理電路
212‧‧‧錯誤檢查與校正電路
801、803、805‧‧‧檔案描述區塊
807、809‧‧‧檔案
880、980、1080、1180‧‧‧登錄值備份
S1201、S1203、S1205、S1207、S1209、S1211、S1213、S1215‧‧‧檔案保護方法的步驟
圖1A是根據一範例實施例所繪示的主機系統與記憶體儲存裝置的概要方塊圖。
圖1B是根據本發明第一範例實施例所繪示的電腦、
輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2與圖3是根據一範例實施例所繪示之管理實體區塊的示意圖。
圖4為根據一範例實施例所繪示之以檔案系統格式化記憶體模組之邏輯區塊位址的範例。
圖5是根據一範例實施例所繪示的檔案配置文件區的範例。
圖6是根據一範例實施例所繪示的記憶體控制器的概要方塊圖。
圖7是根據一範例實施例所繪示之於記憶體儲存裝置中儲存檔案的示意圖。
圖8A與圖8B是根據本發明範例實施例所繪示之修改檔案配置文件的一範例。
圖9A與圖9B是根據本發明範例實施例所繪示之修改檔案配置文件的另一範例。
圖10A與圖10B是根據本發明範例實施例所繪示之修改檔案配置文件的另一範例。
圖11A與圖11B是根據本發明範例實施例所繪示之修改檔案配置文件的另一範例。
圖12A與圖12B是根據本發明範例實施例所繪示之檔案保護方法的流程圖。
S1205、S1207、S1209、S1211、S1213、S1215‧‧‧檔案保護方法的步驟
Claims (26)
- 一種檔案保護方法,用於一記憶體儲存裝置,其中該記憶體儲存裝置具有一可複寫式非揮發性記憶體模組,且該可複寫式非揮發性記憶體模組具有多個實體區塊,該檔案保護方法包括:將該些實體區塊至少分組為一資料區與一備用區;配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊,其中該些邏輯位址會被格式化為一個分割區,該分割區包括一檔案配置文件區與一檔案區,該檔案配置文件區儲存一檔案配置文件,該檔案區中的至少一叢集儲存一檔案,並且該檔案配置文件記錄對應該至少一叢集的至少一登錄值;為該檔案執行一檔案保護啟動程序,其中該檔案保護啟動程序包括:根據記錄在該檔案配置文件中對應該至少一叢集的登錄值產生一登錄值備份;將該登錄值備份儲存至一安全儲存區;以及在該檔案配置文件中變更對應該至少一叢集的登錄值,其中該檔案無法根據變更後的登錄值被正確地讀取。
- 如申請專利範圍第1項所述之檔案保護方法,更包括:為該檔案執行一檔案保護關閉程序,其中該檔案保護關閉程序包括: 從該安全儲存區中讀取該登錄值備份;以及在該檔案配置文件中根據該登錄值備份回復對應儲存該檔案之叢集的登錄值。
- 如申請專利範圍第1項所述之檔案保護方法,其中在該檔案區中儲存該檔案的該至少一叢集的數目為1個,並且所述在該檔案配置文件中變更對應該至少一叢集的登錄值的步驟包括:在該檔案配置文件中將對應儲存該檔案之叢集的登錄值修改為表示壞叢集的值。
- 如申請專利範圍第1項所述之檔案保護方法,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個,並且所述在該檔案配置文件中變更對應該至少一叢集的登錄值的步驟包括:在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的其中一個叢集的登錄值修改為表示該其中一個叢集之位址的值。
- 如申請專利範圍第1項所述之檔案保護方法,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個,並且所述在該檔案配置文件中變更對應該至少一叢集的登錄值的步驟包括:在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的至少一個叢集的登錄值修改為表示壞叢集的值。
- 如申請專利範圍第1項所述之檔案保護方法,其中 在該檔案區中儲存該檔案的該至少一叢集的數目為多個,並且所述在該檔案配置文件中變更對應該至少一叢集的登錄值的步驟包括:在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的至少一個叢集的登錄值修改為表示結束標記的值,其中該至少一個叢集非為儲存該檔案的最後一個叢集。
- 如申請專利範圍第1項所述之檔案保護方法,其中所述將該些實體區塊至少分組為該資料區與該備用區的步驟包括:將該些實體區塊至少分組為該資料區、該備用區與一隱藏區並且將該隱藏區作為該安全儲存區。
- 如申請專利範圍第1項所述之檔案保護方法,更包括:在一主機系統運轉一檔案保護應用程式並且在該記憶體儲存裝置配置一記憶體控制器;以及透過該檔案保護應用程式傳送用於該檔案的一檔案保護啟動訊號給該記憶體控制器,並且由該記憶體控制器執行該檔案保護啟動程序以回應該檔案保護啟動訊號。
- 如申請專利範圍第1項所述之檔案保護方法,更包括:在一主機系統運轉一檔案保護應用程式;以及透過該檔案保護應用程式執行該檔案保護啟動程序。
- 一種記憶體控制器,用於控制一可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,該記憶體控制器包括: 一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路將該些實體區塊至少分組為一資料區與一備用區,配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊,其中該些邏輯位址會被格式化為一個分割區,該分割區包括一檔案配置文件區與一檔案區,該檔案配置文件區儲存一檔案配置文件,該檔案區中的至少一叢集儲存一檔案,並且該檔案配置文件記錄對應該至少一叢集的至少一登錄值,其中該記憶體管理電路為該檔案執行一檔案保護啟動程序,來根據記錄在該檔案配置文件中對應該至少一叢集的登錄值產生一登錄值備份,將該登錄值備份儲存至一安全儲存區並且在該檔案配置文件中變更對應該至少一叢集的登錄值,其中該主機系統根據變更後的登錄值無法正確地讀取該檔案。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路為該檔案執行一檔案保護關閉程序,以從該安全儲存區中讀取該登錄值備份並且在該檔案配置文件中根據該登錄值備份回復對應儲存該檔案之叢集的登錄值。
- 如申請專利範圍第10項所述之記憶體控制器,其中在該檔案區中儲存該檔案的該至少一叢集的數目為1個,其中該記憶體管理電路藉由在該檔案配置文件中將對應儲存該檔案之叢集的登錄值修改為表示壞叢集的值,以變更對應儲存該檔案的叢集的登錄值。
- 如申請專利範圍第10項所述之記憶體控制器,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個其中該記憶體管理電路藉由在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的其中一個叢集的登錄值修改為表示該其中一個叢集之位址的值,以變更對應儲存該檔案的叢集的登錄值。
- 如申請專利範圍第10項所述之記憶體控制器,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個,其中該記憶體管理電路藉由在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的至少一個叢集的登錄值修改為表示壞叢集的值,以變更對應儲存該檔案的叢集的登錄值。
- 如申請專利範圍第10項所述之記憶體控制器,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個,其中該記憶體管理電路藉由在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的至少一個叢集的登 錄值修改為表示結束標記的值,以變更對應儲存該檔案的叢集的登錄值,其中該至少一個叢集非為儲存該檔案的最後一個叢集。
- 如申請專利範圍第10項所述之記憶體控制器,該記憶體管理電路將該些實體區塊至少分組為該資料區、該備用區與一隱藏區並且將該隱藏區作為該安全儲存區。
- 如申請專利範圍第10項所述之記憶體控制器,其中該主機系統運轉一檔案保護應用程式,其中當該檔案保護應用程式傳送用於該檔案的一檔案保護啟動訊號給該記憶體管理電路時,該記憶體管理電路執行該檔案保護啟動程序以回應該檔案保護啟動訊號。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組,具有多個實體區塊;以及一記憶體控制器,耦接至該連接器與該可複寫式非揮發性記憶體模組,其中該記憶體控制器將該些實體區塊至少分組為一資料區與一備用區,配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊,其中該些邏輯位址會被格式化為一個分割區,該分割區包括一檔案配置文件區與一檔案區,該檔案配置文件區儲存一檔案配置文件,該檔案區中的至少一叢集儲存一檔案,並且該檔案配置文件記錄對應該至少一叢集的至少一登錄值, 其中該記憶體控制器為該檔案執行一檔案保護啟動程序,來根據記錄在該檔案配置文件中對應該至少一叢集的登錄值產生一登錄值備份,將該登錄值備份儲存至一安全儲存區並且在該檔案配置文件中變更對應該至少一叢集的登錄值,其中該主機系統根據變更後的登錄值無法正確地讀取該檔案。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中該記憶體控制器為該檔案執行一檔案保護關閉程序,以從該安全儲存區中讀取該登錄值備份並且在該檔案配置文件中根據該登錄值備份回復對應儲存該檔案的叢集的登錄值。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中在該檔案區中儲存該檔案的該至少一叢集的數目為1個,其中該記憶體控制器藉由在該檔案配置文件中將對應儲存該檔案之叢集的登錄值修改為表示壞叢集的值,以變更對應儲存該檔案的叢集的登錄值。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個其中該記憶體控制器藉由在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的其中一個叢集的登錄值修改為表示該其中一個叢集之位址的值,以變更對應儲存該檔案的叢集的登錄值。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個,其中該記憶體控制器藉由在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的至少一個叢集的登錄值修改為表示壞叢集的值,以變更對應儲存該檔案的叢集的登錄值。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中在該檔案區中儲存該檔案的該至少一叢集的數目為多個,其中該記憶體控制器藉由在該檔案配置文件中將對應儲存該檔案的所述多個叢集之中的至少一個叢集的登錄值修改為表示結束標記的值,以變更對應儲存該檔案的叢集的登錄值,其中該至少一個叢集非為儲存該檔案的最後一個叢集。
- 如申請專利範圍第18項所述之記憶體儲存裝置,該記憶體控制器將該些實體區塊至少分組為該資料區、該備用區與一隱藏區並且將該隱藏區作為該安全儲存區。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中該主機系統運轉一檔案保護應用程式,其中當該檔案保護應用程式傳送用於該檔案的一檔案保護啟動訊號給該記憶體控制器時,該記憶體控制器執行該檔案保護啟動程序以回應該檔案保護啟動訊號。
- 一種資料保護系統,包括:一記憶體儲存裝置,具有一可複寫式非揮發性記憶體模組與一記憶體控制器,其中該可複寫式非揮發性記憶體模組具有多個實體區塊,並且該記憶體控制器將該些實體區塊至少分組為一資料區、一備用區與一隱藏區,配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊,其中該些邏輯位址會被格式化為一個分割區,該分割區包括一檔案配置文件區與一檔案區,該檔案配置文件區儲存一檔案配置文件,該檔案區中的至少一叢集儲存一檔案,並且該檔案配置文件記錄對應該至少一叢集的至少一登錄值;以及一檔案保護應用程式,運轉於一主機系統,其中該檔案保護應用程式為該檔案執行一檔案保護啟動程序,來根據記錄在該檔案配置文件中對應該至少一叢集的登錄值產生一登錄值備份,指示該記憶體控制器將該登錄值備份儲存至該隱藏區並且在該檔案配置文件中變更對應該至少一叢集的登錄值,其中該主機系統該根據變更後的登錄值無法正確地讀取該檔案。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101117788A TWI498738B (zh) | 2012-05-18 | 2012-05-18 | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 |
US13/551,594 US8954692B2 (en) | 2012-05-18 | 2012-07-17 | File protecting method and system, and memory controller and memory storage apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101117788A TWI498738B (zh) | 2012-05-18 | 2012-05-18 | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201348965A TW201348965A (zh) | 2013-12-01 |
TWI498738B true TWI498738B (zh) | 2015-09-01 |
Family
ID=49582282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101117788A TWI498738B (zh) | 2012-05-18 | 2012-05-18 | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8954692B2 (zh) |
TW (1) | TWI498738B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011137844A1 (zh) * | 2011-05-30 | 2011-11-10 | 华为终端有限公司 | 数据存储设备访问方法及装置 |
US9489514B2 (en) | 2013-10-11 | 2016-11-08 | Verisign, Inc. | Classifying malware by order of network behavior artifacts |
US20150160890A1 (en) * | 2013-12-05 | 2015-06-11 | Apple Inc. | Memory multi-chip package (mcp) with integral bus splitter |
CN105278867A (zh) * | 2014-07-24 | 2016-01-27 | 宇瞻科技股份有限公司 | 储存装置的载入方法及分割方法 |
US20170091453A1 (en) * | 2015-09-25 | 2017-03-30 | Mcafee, Inc. | Enforcement of file characteristics |
CN107203328A (zh) * | 2016-03-17 | 2017-09-26 | 伊姆西公司 | 存储管理方法和存储设备 |
US20170371573A1 (en) * | 2016-06-24 | 2017-12-28 | Samsung Electronics Co., Ltd. | Method of operating storage medium, method of operating host controlling the storage medium, and method of operating user system including the storage medium and the host |
US11216216B2 (en) * | 2019-01-25 | 2022-01-04 | Ipxcl, Llc | Portable memory device having mutually exclusive non-volatile electronic data storage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
TW201128518A (en) * | 2010-02-12 | 2011-08-16 | Phison Electronics Corp | Partitionable management storage system and using method thereof and managing method thereof and controller thereof |
US20120030411A1 (en) * | 2010-07-29 | 2012-02-02 | Phison Electronics Corp. | Data protecting method, memory controller and portable memory storage apparatus |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020156973A1 (en) * | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Enhanced disk array |
JP3526452B2 (ja) * | 2001-12-18 | 2004-05-17 | 株式会社東芝 | ディスクアレイ装置及びデータバックアップ方法 |
TWI425355B (zh) * | 2010-03-17 | 2014-02-01 | Phison Electronics Corp | 資料存取方法、記憶體控制器與儲存系統 |
TWI451248B (zh) * | 2012-01-13 | 2014-09-01 | Phison Electronics Corp | 資料保護方法、記憶體控制器與記憶體儲存裝置 |
-
2012
- 2012-05-18 TW TW101117788A patent/TWI498738B/zh active
- 2012-07-17 US US13/551,594 patent/US8954692B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702831B2 (en) * | 2000-01-06 | 2010-04-20 | Super Talent Electronics, Inc. | Flash memory controller for electronic data flash card |
TW201128518A (en) * | 2010-02-12 | 2011-08-16 | Phison Electronics Corp | Partitionable management storage system and using method thereof and managing method thereof and controller thereof |
US20120030411A1 (en) * | 2010-07-29 | 2012-02-02 | Phison Electronics Corp. | Data protecting method, memory controller and portable memory storage apparatus |
Also Published As
Publication number | Publication date |
---|---|
US20130311708A1 (en) | 2013-11-21 |
US8954692B2 (en) | 2015-02-10 |
TW201348965A (zh) | 2013-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI498738B (zh) | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 | |
TWI435219B (zh) | 資料保護方法、記憶體控制器及可攜式記憶體儲存裝置 | |
TWI425355B (zh) | 資料存取方法、記憶體控制器與儲存系統 | |
TWI408551B (zh) | 快閃記憶體儲存系統及其控制器與資料處理方法 | |
KR101528714B1 (ko) | 메모리 유닛 동작 방법 및 메모리 제어기 | |
TWI479359B (zh) | 指令執行方法、記憶體控制器與記憶體儲存裝置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
US8954705B2 (en) | Memory space management method and memory controller and memory storage device and memory storage using the same | |
TWI451248B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI463313B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
US10459803B2 (en) | Method for management tables recovery | |
TWI489272B (zh) | 保護資料的方法、記憶體控制器與記憶體儲存裝置 | |
TWI486766B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
TW201445313A (zh) | 記憶體儲存裝置及其還原方法與記憶體控制器 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
TW201239623A (en) | Data merging method for non-volatile memory and controller and stoarge apparatus using the same | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
TW201344434A (zh) | 記憶體格式化方法、記憶體控制器及記憶體儲存裝置 | |
TWI493341B (zh) | 記憶體儲存裝置及其修復方法 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN102043724B (zh) | 用于闪存的区块管理方法、控制器与存储系统 | |
CN103455444B (zh) | 文件保护方法与系统及其存储器控制器与存储器存储装置 |