TWI425355B - 資料存取方法、記憶體控制器與儲存系統 - Google Patents
資料存取方法、記憶體控制器與儲存系統 Download PDFInfo
- Publication number
- TWI425355B TWI425355B TW099107928A TW99107928A TWI425355B TW I425355 B TWI425355 B TW I425355B TW 099107928 A TW099107928 A TW 099107928A TW 99107928 A TW99107928 A TW 99107928A TW I425355 B TWI425355 B TW I425355B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- file
- logical
- area
- value
- Prior art date
Links
Classifications
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種資料存取方法、記憶體控制器、記憶體儲存系統,且特別是有關於一種能夠在一個分割區中配置一防寫區與一可寫入區的資料存取方法及使用此方法的記憶體控制器、記憶體儲存系統與記憶卡。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於可複寫式非揮發性記憶體具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。記憶卡就是一種以NAND型快閃記憶體作為儲存媒體的儲存裝置。由於記憶卡體積小容量大,所以已廣泛用於個人重要資料的儲存。
由於快閃記憶體的容量越來越大,因此使用者往往會透過檔案系統將以快閃記憶體作為儲存媒體的儲存裝置的可儲存空間格式化為多個分割區(partition)以分別地使用。例如,將重要資料儲存於其中一個分割區中並且將此分割區設定為寫入保護模式(即,防寫模式),以避免此重要資料被誤刪。然而,依據記憶卡(例如,安全數位(secure digital,SD)記憶卡、多媒體儲存卡(Multi Media Card,MMC))的規範,記憶卡是無法支援多分割區(即,記憶卡的儲存空間無法劃分為多個分割區來提供給主機系統存
取)。基此,記憶卡的儲存空間僅能被格式化成單一分割區並且以整個分割區為單位來設定為可寫區或防寫區。
基此,使用者經常需在記憶卡僅儲存少量的資料下將記憶卡設定為防寫模式而浪費其他剩餘的空間。例如,當導航機的製造商使用容量為16GB的記憶卡來作為資料量為2GB的導航軟體與圖資的儲存媒體時,為了避免使用者誤刪此導航軟體與圖資,此記憶卡會在僅儲存2GB的資料下被設定為防寫模式。基此,此記憶卡的其他空間將無法再被使用。
本發明提供一種資料存取方法,其能夠將一個分割區中的部分儲存位址設定為寫入保護區,將另一部份儲存位址設定為可寫入區,並且在可寫入區中新增目錄或檔案。
本發明提供一種記憶體控制器,其能夠將非揮發性記憶體模組的一個分割區中的部分儲存位址設定為寫入保護區並且將另一部份儲存位址設定為可寫入區,並且在可寫入區中新增目錄或檔案。
本發明提供一種記憶體儲存系統,其記憶體控制器能夠將非揮發性記憶體模組的一個分割區中的部分儲存位址設定為寫入保護區並且將另一部份儲存位址設定為可寫入區,並且在可寫入區中新增目錄或檔案。
本發明提出一種資料存取方法,用於存取一非揮發性記憶體模組,其中此非揮發性記憶體模組具有多個實體區
塊。本資料存取方法包括將此些實體區塊至少分組為一資料區、一備用區與一系統區;配置多個邏輯位址並且將此些邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊,使用一檔案系統將此些邏輯位址格式化為一個分割區。此外,此分割區具有一檔案及對應該檔案的一檔案描述區塊,並且此分割區具有至少一檔案配置表以儲存對應用以儲存此檔案描述區塊的邏輯位址的登錄值。本資料存取方法也包括依據檔案配置表搜尋此登錄值的一結束標記;將儲存此結束標記的邏輯位址設定為預設型態位址;以及將儲存在儲存此結束標記的邏輯位址中的數值設定為對應此預設型態位址的預設值。
在本發明之一實施例中,上述之資料存取方法更包括:在系統區的實體區塊中儲存關於此預設型態位址與此預設值的資訊。
在本發明之一實施例中,上述之資料存取方法更包括:從主機系統中接收對應此預設型態位址的讀取指令;並且判斷儲存於此預設型態位址中的數值是否為一空白值;當儲存於此預設型態位址中的數值資料為空白值時,傳送對應此預設型態位址的預設值給主機系統;以及當儲存於此預設型態位址中的數值不為空白值時,傳送儲存於此預設型態位址中的數值給主機系統。
在本發明之一實施例中,上述之資料存取方法更包括:將分割區中的邏輯位址至少劃分為主引導磁區、檔案配置表區與檔案區;將此些邏輯位址之中儲存上述主引導
磁區、檔案、檔案描述區塊與上述登錄值的邏輯位址分組為一第一部份並且將其他邏輯位址分組為一第二部分;當從主機系統中接收對應此第一部份的邏輯位址的第一寫入指令與對應此第一寫入指令的第一資料時,判斷此第一寫入指令所欲寫入的邏輯位址是否對應上述預設型態位址;當此第一寫入指令所欲寫入的邏輯位址為對應上述預設型態位址時,將此第一資料寫入至第一寫入指令所欲寫入的邏輯位址中;以及當第一寫入指令所欲寫入的邏輯位址非對應上述預設型態位址時,不將第一資料寫入至第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給主機系統。
在本發明之一實施例中,上述之資料存取方法更包括:當從主機系統中接收對應第二部份的邏輯位址的第二寫入指令與對應此第二寫入指令的第二資料時,將第二資料寫入至此第二寫入指令所欲寫入的邏輯位址中。
在本發明之一實施例中,上述之資料存取方法更包括:將分割區中的邏輯位址至少劃分為主引導磁區、檔案配置表區與檔案區;將邏輯位址之中儲存主引導磁區、檔案、檔案描述區塊與此登錄值的邏輯位址分組為第一部份並且將此些邏輯位址之中的其他邏輯位址分組為第二部分;在此些邏輯位址中寫入至少一虛擬檔案以及以一扇區為單位將邏輯位址之中儲存主引導磁區、檔案、檔案描述區塊與此登錄值的邏輯位址分組為第一部份並且將此些邏輯位址之中的其他邏輯位址分組為第二部分。
在本發明之一實施例中,所述之資料存取方法更包括:將分割區中的邏輯位址至少劃分為主引導磁區、檔案配置表區與檔案區;將邏輯位址之中儲存主引導磁區、檔案、檔案描述區塊與此登錄值的邏輯位址分組為第一部份並且將此些邏輯位址之中的其他邏輯位址分組為第二部分;以一位元組為單位將邏輯位址之中儲存主引導磁區、檔案、檔案描述區塊與此登錄值的邏輯位址分組為第一部份並且將此些邏輯位址之中的其他邏輯位址分組為第二部分。
在本發明之一實施例中,在檔案區中儲存此檔案的儲存位址為連續的。
在本發明之一實施例中,上述之資料存取方法更包括:將分割區中的邏輯位址至少劃分為主引導磁區、檔案配置表區與檔案區;將此些邏輯位址之中儲存上述主引導磁區、檔案、檔案描述區塊與上述登錄值的邏輯位址分組為一第一部份並且將其他邏輯位址分組為一第二部分;當從主機系統中接收對應第一部份的邏輯位址的第一寫入指令與對應此第一寫入指令的第一資料時,判斷此第一寫入指令所欲寫入的邏輯位址是否對應上述預設型態位址;當此第一寫入指令所欲寫入的邏輯位址為對應上述預設型態位址時,判斷此第一資料是否為一空白值;當此第一資料非為該空白值時,將此第一資料寫入至第一寫入指令所欲寫入的邏輯位址中;當此第一資料為空白值時,不將此第一資料寫入至第一寫入指令所欲寫入的邏輯位址中且不傳
送一錯誤訊息給主機系統;以及當第一寫入指令所欲寫入的邏輯位址非對應上述預設型態位址時,不將此第一資料寫入至第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給主機系統。
本發明範例實施例提出一種記憶體控制器,其包括記憶體介面、記憶體管理電路與主機介面。記憶體介面耦接至記憶體管理電路,並且用以耦接至上述非揮發性記憶體模組。主機介面耦接至記憶體管理電路並且用以耦接至主機系統。記憶體管理電路單元用以執行上述資料存取方法。
本發明範例實施例提出一種記憶體儲存系統,其包括連接器、上述非揮發性記憶體模組與耦接至此非揮發性記憶體模組的記憶體控制器。在此,此記憶體控制器用以執行上述資料存取方法。
在本發明之一實施例中,每一上述之實體區塊具有多個實體頁面並且此些實體頁面可獨立地被寫入且同時地被抹除。
本發明範例實施例提出一種非揮發性記憶體儲存系統,其包括連接器、非揮發性記憶體模組與記憶體控制器。連接器用以耦接至主機系統。記憶體模組具有資料區、備用區與系統區,並且此資料區、此備用區與此系統區分別地具有多個實體區塊。記憶體控制器耦接至連接器與非揮發性記憶體模組,用以配置多個邏輯位址並且將此些邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊,其中此些邏輯位址被格式化為一分割區,此分割區至少具有一
檔案配置表區與一目錄區。並且,此些邏輯位址包括一寫入保護區與一可寫入區,此檔案配置表區具有對應目錄區至少二個登錄值,儲存此二個登錄值的其中之一的邏輯位址屬於寫入保護區並且儲存此二個登錄值的其中另一的邏輯位址屬於可寫入區。在此,上述此二個登錄值的其中另一為對應目錄區的一結束標記。
基於上述,本發明範例實施例能夠在檔案系統所劃分的一個分割區中設定部分的儲存位址為寫入保護區、將其他部分的儲存位址設定為可寫入區並且在可寫入區中新增目錄或檔案。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
一般而言,記憶體儲存裝置(亦稱,記憶體儲存系統)包括記憶體晶片與控制器(亦稱,控制電路)。通常記憶體儲存裝置會與主機系統一起使用,以使主機系統可將資料寫入至記憶體儲存裝置或從記憶體儲存裝置中讀取資料。另外,亦有記憶體儲存裝置是包括嵌入式記憶體與可執行於主機系統上以實質地作為此嵌入式記憶體之控制器的軟體。
圖1A是根據本發明範例實施例繪示使用記憶體儲存裝置的主機系統。
請參照圖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與安裝於主儲存裝置1112中之作業系統1200的運作可將資料寫入至記憶體儲存裝置100或從記憶體儲存裝置100中讀取資料。例如,記憶體儲存裝置100可以是如圖1B所示的隨身碟1212、記憶卡1214或固態硬碟(Solid State Drive,SSD)1216等的非揮發性記憶體儲存裝置。
一般而言,主機系統1000可實質地為可儲存資料的任意系統。雖然在本範例實施例中,主機系統1000是以電腦系統來作說明,然而,在本發明另一範例實施例中主機系統1000可以是數位相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統。例如,在主機系統為數位相機(攝影機)1310時,記憶體儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320(如圖1C所示)。嵌入式儲存裝置1320包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提
的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
請參照圖2,記憶體儲存裝置100包括連接器102、記憶體控制器104與記憶體模組106。
在本範例實施例中,連接器102為安全數位(secure digital,SD)介面連接器。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是通用序列匯流排(Universal Serial Bus,USB)連接器、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394連接器、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)連接器、序列先進附件(Serial Advanced Technology Attachment,SATA)連接器、記憶棒(Memory Stick,MS)介面連接器、多媒體儲存卡(Multi Media Card,MMC)介面連接器、小型快閃(Compact Flash,CF)介面連接器、整合式驅動電子介面(Integrated Device Electronics,IDE)連接器或其他適合的連接器。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在記憶體模組106中進行資料的寫入、讀取與抹除等運作。特別是,記憶體控制器104用以執行根據本範例實施例的資料存取方法與記憶體管理方法。
記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。記憶體模組106包括
實體區塊304(0)~304(R)。各實體區塊分別具有複數個頁面,其中屬於於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。
在本範例實施例中,記憶體模組106為可複寫式非揮發性記憶體。例如,記憶體模組106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,記憶體模組106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
圖3是根據本發明範例實施例所繪示的記憶體控制器與記憶體晶片的概要方塊圖。
請參照圖3,記憶體控制器104包括記憶體管理電路202、主機介面204與記憶體介面206。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100運作時,此些控制指令會被執行以根據本範例實施例的資料存取方法與記憶體管理方法來管理記憶體模組106。此資料存取方法與記憶體管理方法將於以下配合圖式作詳細說明。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微
處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行以完成根據本發明實施例的資料存取方法與記憶體管理方法。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於記憶體模組106的特定區域(例如,記憶體晶片中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令以執行本發明範例實施例的資料存取方法與記憶體管理方法。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204是對應連接器102為SD介面。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是PATA介面、USB介面、IEEE 1394介面、PCI Express介面、SATA介面、MS介面、MMC介面、CF介面、IDE介面或其他
適合的資料傳輸介面。
記憶體介面206是耦接至記憶體管理電路202並且用以存取記憶體模組106。也就是說,欲寫入至記憶體模組106的資料會經由記憶體介面206轉換為記憶體模組106所能接受的格式。
在本發明一範例實施例中,記憶體控制器104還包括緩衝記憶體252。緩衝記憶體252是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於記憶體模組106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本發明一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行一錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至記憶體模組106中。之後,當記憶體管理電路202從記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀
取的資料執行錯誤校正程序。
圖4與圖5是根據本發明範例實施例所繪示之管理記憶體晶片的範例示意圖。
必須瞭解的是,在此描述記憶體模組106之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。也就是說,記憶體模組106之實體區塊的實際位置並未更動,而是邏輯上對記憶體模組106的實體區塊進行操作。
請參照圖4,記憶體管理電路202會將記憶體模組106的實體區塊304(0)~304(R)邏輯地分組為資料區402、備用區404、系統區406與取代區408。
資料區402與備用區404的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區402是已儲存資料的實體區塊,而備用區404的實體區塊是用以替換資料區402的實體區塊。因此,備用區404的實體區塊為空或可使用的實體區塊,即無記錄資料或標記為已沒用的無效資料。也就是說,在備用區中的實體區塊已被執行抹除運作,或者當備用區中的實體區塊被提取用於儲存資料之前所提取之實體區塊會被執行抹除運作。因此,備用區的實體區塊為可被使用的實體區塊。
邏輯上屬於系統區406的實體區塊是用以記錄系統資料,其中此系統資料包括關於記憶體晶片的製造商與型號、記憶體晶片的實體區塊數、每一實體區塊的實體頁面數等。
邏輯上屬於取代區408中的實體區塊是替代實體區塊。例如,記憶體模組106於出廠時會預留4%的實體區塊作為更換使用。也就是說,當資料區402、備用區404與系統區406中的實體區塊損毀時,預留於取代區408中的實體區塊是用以取代損壞的實體區塊(即,壞實體區塊(bad block))。因此,倘若取代區408中仍存有正常之實體區塊且發生實體區塊損毀時,記憶體管理電路202會從取代區408中提取正常的實體區塊來更換損毀的實體區塊。倘若取代區408中無正常之實體區塊且發生實體區塊損毀時,則記憶體管理電路202會將整個記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
特別是,資料區402、備用區404、系統區406與取代區408之實體區塊的數量會依據不同的記憶體規格而有所不同。此外,必須瞭解的是,在記憶體儲存裝置100的運作中,實體區塊關聯至資料區402、備用區404、系統區406與取代區408的分組關係會動態地變動。例如,當備用區中的實體區塊損壞而被取代區的實體區塊取代時,則原本取代區的實體區塊會被關聯至儲存區。
請參照圖5,如上所述,資料區402與備用區404的實體區塊是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體管理電路202會配置邏輯位址給主機系統1000以利於在以上述輪替方式來儲存資料之實體區塊中進行資料存取。特別是,記憶體管理電路202會將所提供的邏輯位址分組為邏輯區塊
510(0)~510(H),並且將邏輯區塊510(0)~510(H)映射至資料區402的實體區塊。例如,當記憶體儲存裝置100被作業系統1200以檔案系統(例如,FAT 32)格式化時,邏輯區塊510(0)~510(H)分別地映射至資料區402的實體區塊304(0)~304(D)。也就是說,一個邏輯區塊會映射資料區402中的一個實體區塊。在此,記憶體管理電路202會建立邏輯區塊-實體區塊映射表(logical block-physical block mapping table),以記錄邏輯區塊與實體區塊之間的映射關係。
圖6~圖8是根據本發明範例實施例所繪示的寫入資料至記憶體晶片的範例。
請同時參照圖6~圖8,例如,在邏輯區塊510(0)是映射至實體區塊304(0)的映射狀態下,當記憶體控制器104從主機系統1000中接收到寫入指令而欲寫入資料至屬於邏輯區塊510(0)的邏輯位址時,記憶體管理電路202會依據邏輯區塊-實體區塊映射表識別邏輯區塊510(0)目前是映射至實體區塊304(0)並且從備用區404中提取實體區塊304(D+1)作為替換實體區塊來輪替實體區塊304(0)。然而,當記憶體管理電路202將新資料寫入至實體區塊304(D+1)的同時,記憶體管理電路202不會立刻將實體區塊304(0)中的所有有效資料搬移至實體區塊304(D+1)而抹除實體區塊304(0)。具體來說,記憶體管理電路202會將實體區塊304(0)中欲寫入實體頁面之前的有效資料(即,實體區塊304(0)的第0實體頁面與第1實體頁面中的資料)
複製至實體區塊304(D+1)的第0實體頁面與第1實體頁面中(如圖6所示),並且將新資料寫入至實體區塊304(D+1)的第2實體頁面與第3實體頁面中(如圖7所示)。此時,記憶體管理電路202即完成寫入的運作。因為實體區塊304(0)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊304(0)中的有效資料搬移至實體區塊304(D+1)可能會造成無謂的搬移。此外,資料必須依序地寫入至實體區塊內的實體頁面,因此,記憶體管理電路202僅會先搬移欲寫入實體頁面之前的有效資料。
在本範例實施例中,暫時地維持此等母子暫態關係(即,實體區塊304(0)與實體區塊304(D+1))的運作稱為開啟(open)母子區塊,並且原實體區塊稱為母實體區塊而替換實體區塊稱為子實體區塊。
之後,當需要將實體區塊304(0)與實體區塊304(D+1)的內容真正合併時,記憶體管理電路202才會將實體區塊304(0)與實體區塊304(D+1)的資料整併至一個實體區塊,由此提升實體區塊的使用效率。在此,合併母子區塊的運作稱為關閉(close)母子區塊。例如,如圖8所示,當進行關閉母子區塊時,記憶體管理電路202會將實體區塊304(0)中剩餘的有效資料(即,實體區塊304(0)的第4實體頁面~第(K)實體頁面中的資料)複製至替換實體區塊304(D+1)的的第4實體頁面~第(K)實體頁面中,然後將實體區塊304(0)抹除並關聯至備用區404,同時,將實體區塊
304(D+1)關聯至資料區402。也就是說,記憶體管理電路202會在邏輯區塊-實體區塊映射表中將邏輯區塊510(0)重新映射至304(D+1)。此外,在本範例實施例中,記憶體管理電路202會建立備用區實體區塊表(未繪示)來記錄目前被關聯至備用區的實體區塊。值得一提的是,在開啟母子區塊時記憶體管理電路202需使用更多緩衝記憶體252的儲存空間來儲存管理變數,以記錄更詳細的儲存狀態。例如,此些管理變數會記錄屬於邏輯區塊510(0)的有效資料被分散地儲存在實體區塊304(0)與實體區塊304(D+1)的哪些實體頁面中(如圖7所示)。基此,在記憶體儲存裝置100運作期間,母子區塊的組數是有限的。因此,當記憶體儲存裝置100接收到來自於主機系統1000的寫入指令時,倘若已開啟母子區塊的組數達到上限時,記憶體管理電路202需關閉至少一組目前已開啟之母子區塊(即,執行關閉母子區塊運作)以執行此寫入指令。
在本範例實施例中,主機系統1000的作業系統1200使用檔案系統將邏輯區塊510(0)~510(H)的邏輯位址格式化成一個分割區(partition)900(如圖9所示)。分割區900包括主引導磁區902、檔案配置表區904、目錄區906與檔案區908。
屬於主引導磁區902的儲存位址是用以儲存記憶體儲存裝置100的可儲存空間的系統資訊。
屬於檔案配置表區904的儲存位址是用以儲存檔案配置表。檔案配置表是用以記錄儲存檔案之邏輯位址的登錄
值。例如,檔案配置表區中會儲存兩個檔案配置表,其中一個檔案配置表為正常存取所使用,而另一個檔案配置表為備份檔案配置表。
屬於目錄區906的儲存位址是用以儲存檔案描述區塊(File Description Block,FDB),其用以記錄目前儲存於記憶體儲存裝置100中之檔案與目錄的屬性資訊。特別是,檔案描述區塊會記錄用以儲存此些檔案的起始儲存位址(即,起始叢集)。
屬於檔案區908的儲存位址是用以實際地儲存檔案的內容。
在本範例實施例中,一個邏輯位址的大小為一個扇區(sector)。在主引導磁區902、檔案配置表區904與目錄區906中是以扇區為存取單位。
具體來說,磁碟儲存最小單位為扇區,每一個扇區包含了512位元組(byte)的資訊內容。然而,使用扇區當單位來儲存時,主機系統1000的效率會很差。一般來說,主機系統1000的作業系統1200不會以一個扇區當作存取檔案的單位,而是以叢集為一基本檔案單位。每一個叢集是架構在扇區的2次方倍數上。假定連續的8個扇區構成一個叢集,則此叢集的大小就為4096位元組。基此,在作業系統1200在存取資料時會以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的起始叢集。
圖10A與10B為根據本發明範例實施例所繪示的檔案配置表與檔案描述區塊的示意圖。
請參照圖10A,在此範例中檔案配置表1002的叢集索引欄位1002a與登錄值(entry value)欄位1002b依序地記錄每一叢集對應的登錄值,其中記錄於登錄值欄位1002b中的登錄值是以特殊字元來表示所對應之叢集的狀態。例如,在FAT32中,“0000000h”表示此叢集為閒置邏輯位址(即,未儲存資料),“FFFFFF8h”-“FFFFFFFh”表示此叢集為儲存檔案之最後一個邏輯位址等。在此,
“FFFFFF8h”-“FFFFFFFh”亦稱為結束標記(End Of Clusterchain Mark,EOC Mark)
請參照圖10B,檔案描述區塊1004的檔案名稱欄位1004a與起始位址欄位1004b是用以記錄在記憶體儲存裝置100中所儲存之檔案的檔案名稱及儲存此檔案的起始邏輯位址。必須瞭解的是,檔案描述區塊1004僅為一範例,實際上檔案描述區塊1004更包括檔案長度等其他屬性欄位來描述所儲存之檔案的資訊。
請同時參照圖10A與圖10B,從檔案描述區塊1004中的空間資訊可以得知,記憶體儲存裝置100中儲存有“f1.exe”與“f2.dll”兩個檔案,其中儲存“f1.exe”的起始邏輯位址為叢集600(1)而儲存“f2.dll”的起始邏輯位址為叢集600(4)。此外,從檔案配置表1002中的登錄值更可得知“f1.exe”的內容是依序地被儲存在叢集600(1)、叢集600(2)與叢集600(3)中,並且“f2.dll”的內容是被儲存在叢集600(4)中。
此外,值得一提的是,在FAT 32中,由於目錄區906是與檔案區908一起管理。因此,屬於目錄區906的叢集是可被動態地擴充以記錄更多檔案描述區塊,而使得記憶體儲存裝置100可儲存之檔案數量不受限制。具體來說,在檔案配置表1002中會記錄目錄區的起始叢集對應的下一個登錄值。例如,如圖10A所示,當記憶體儲存裝置100被格式化時,叢集600(0)是目錄區的起始叢集並且叢集600(0)的登錄值為“FFFFFFFh”。也就是說,目前檔案描
述區塊1004僅由叢集600(0)所儲存。之後,當叢集600(0)的儲存空間已被填滿時,作業系統1200會依據檔案配置表1002從檔案區908中選擇一個空的叢集來繼續存放新增的檔案描述區塊1004並且在檔案配置表1002中將叢集600(0)的登錄值更新為所選擇之叢集。
圖10C是根據本發明範例實施例所繪示的檔案配置表區的範例。
請同時參照圖10A與圖10C,檔案配置表區904包括扇區700(M)~扇區700(M+K)。扇區700(M)的前2個登錄值(即,前8個位元組)會被保留並記錄為"F8hFFhFFh0Fh"與"FFhFFhFFh0Fh"。第2個登錄值為"FFFFFFFh"以對應叢集600(0)。第3個登錄值為"600(2)"以對應叢集600(1)。第4個登錄值為"600(3)"以對應叢集600(2)。第5個登錄值為"FFFFFFFh"以對應叢集600(3)。第6個登錄值為"FFFFFFFh"以對應叢集600(4)。第7個登錄值為"0000000h"以對應叢集600(5)。以此類推,對應叢集600(0)~600(W)都會被記錄在檔案配置表區904的扇區中。
在本範例實施例中,記憶體控制器104會依據檔案配置表1002將分割區900之邏輯區塊的邏輯位址(即,扇區)劃分為第一部分與第二部分。
特別是,當主機系統1000寫入資料至第一部分的邏輯區塊時,記憶體控制器104不會將資料寫入至此邏輯區塊所映射的實體區塊中並且不會傳送錯誤訊息給主機系統。具體來說,主機系統1000會接收到表示指令已被完成
的確認訊息,但實際上資料未被寫入至記憶體模組106的實體區塊中。
此外,當主機系統1000寫入資料至第二部分的邏輯區塊時,記憶體控制器104會依據寫入指令將資料寫入至此邏輯區塊所映射的實體區塊中。
也就是說,在作業系統1200根據檔案系統所格式化的分割區900中,第一部份的邏輯區塊會被設定為屬於寫入保護區,且第二部分的邏輯區塊會被設定為屬於可寫入區。
圖11A與11B為根據本發明範例實施例所繪示之將邏輯位址設定為屬於寫入保護區的示意圖。在此,假設記憶體儲存裝置100儲存“f1.exe”與“f2.dll”兩個檔案並且使用者(例如,導航機的製造商)欲將用以儲存“f1.exe”與“f2.dll”的儲存空間設定為寫入保護區。
請參照圖11A,記憶體控制器104的記憶體管理電路202會依據檔案系統中的資訊以扇區為單位來將部分的邏輯區塊設定為屬於寫入保護區(如,斜線部分所示)。
具體來說,由於主引導磁區902儲存用以識別分割區900的資訊,因此,記憶體管理電路202會將屬於主引導磁區902的扇區700(0)~扇區700(M-1)設定為屬於寫入保護區。此外,記憶體管理電路202會將用以儲存“f1.exe”的叢集600(1)~600(3)和用以儲存“f2.dll”的叢集600(4)設定為屬於寫入保護區。再者,記憶體管理電路202會將檔案配置表區904中用以儲存關於叢集600(1)~600(4)之登
錄值的扇區700(M)設定為屬於寫入保護區,由此避免此些登錄值被主機系統1000誤刪而無法讀取“f1.exe”與“f2.dll”。另外,記憶體管理電路202會將在目錄區906中已記錄檔案描述區塊之扇區設定為屬於寫入保護區,以避免關於“f1.exe”與“f2.dll”的檔案資訊被主機系統1000誤刪。例如,假設每一叢集是由2個扇區所構成並且在儲存檔案描述區塊的叢集600(0)中用以已儲存對應“f1.exe”與“f2.dll”的檔案描述區塊的扇區會被設定為屬於寫入保護區。
當主機系統1000寫入資料至屬於寫入保護區的邏輯位址(如圖11A的斜線所示)時,記憶體管理電路202不會將資料寫入至此邏輯位址所映射的實體區塊的實體頁面中並且不會傳送錯誤訊息給主機系統1000。也就是說,既使主機系統1000一再寫入資料至屬於寫入保護區的邏輯位址中,儲存於屬於寫入保護區的邏輯位址中的資料都不會被改變。此外,當主機系統1000寫入資料至非屬於寫入保護區(即,可寫入區)的邏輯位址(如圖11A的空白儲存位址所示)時,記憶體管理電路202會將資料寫入至此邏輯位址所映射之實體區塊的實體頁面中。
值得一提的是,為了能夠在分割區900中新增檔案或目錄,在本範例實施例中,由於檔案配置表區904的扇區700(M)需被設定為屬於寫入保護區,因此,在執行上述寫入保護區的設定之前,多個虛擬檔案會透過工具程式(未繪示)被儲存至檔案配置表1002的第7個登錄值~第127個登
錄值所對應的叢集(例如,叢集600(5)~叢集600(125)),由此避免作業系統1200使用叢集600(5)~叢集600(125)來儲存資料。例如,此些虛擬檔案會被設定為隱藏檔,以避免主機系統1000顯示此些虛擬檔。
此外,請參照圖11B,為了使目錄區906能夠繼續被擴充以儲存所新增之檔案的檔案描述區塊,在執行上述寫入保護區的設定之前,在檔案配置表1002中用以記錄對應目錄區906的結束標記的儲存位址會被搜尋(即,檔案配置表1002的第2個登錄值),在檔案區908的一個空叢集(例如,叢集600(126))會被作為下一個儲存檔案描述區塊的叢集,並且此叢集的位址會被寫入至原先用以記錄對應目錄區906的結束標記的儲存位址中。特別是,在檔案配置表1002中對應叢集600(126)的登錄值會被寫入"FFFFFFFh",以表示此叢集為目錄區906的最後一個叢集。基此,目錄區906的最後一個叢集不會被設定在寫入保護區,而能夠繼續被寫入資料。然而,在本發明另一範例實施例中,在檔案配置表1002中記錄對應目錄區906的結束標記的儲存位址(即,儲存第2登錄值的儲存位址)亦可直接設定在寫入保護區(扇區700(M))外,而直接地被設為上述之預設型態位址。基此,目錄區906的最後一個叢集不會被設定在寫入保護區,而能夠繼續被寫入資料。
在本範例實施例中,上述新增虛擬檔以及重新設定目錄區906的最後一個叢集的運作是透過工具程式(未繪示)來執行。
值得一提的是,在本範例實施例中,記憶體管理電路202會依據檔案配置表1002搜尋對應用以儲存檔案描述區塊之邏輯位址的登錄值,將用以儲存此登錄值之結束標記的邏輯位址標記為預設型態位址並且將此邏輯位址上的數值標記為對應此預設型態位址的預設值。在本範例實施例中,此預設值為"FFFFFFFh",但本發明並不限於此,並且在本發明另一範例實施例中,此預設值可以是任何用以代表結束標記的值。在本範例實施例中,叢集600(0)是目錄區的起始叢集並且叢集600(101)亦是目錄區的結束叢集。因此,記憶體管理電路202會在檔案配置表1002中識別出記錄對應叢集600(101)的登錄值的儲存位址並且將記錄對應叢集600(101)的登錄值的儲存位址標記為預設型態位址。
在本範例實施例中,當主機系統1000對被設定為預設型態位址之邏輯位址下達寫入指令或抹除指令時,記憶體管理電路202會依據主機系統1000的指令來更新儲存於此邏輯位址所映射之實體區塊的實體頁面中的值。此外,當主機系統1000對被設定為預設型態位址之邏輯位址下達讀取指令時,記憶體管理電路202會判斷目前儲存於此預設型態位址中的數值是否為空白值。在本範例實施例中,空白值是指實體區塊被執行抹除運作之後,記憶胞中所儲存的值。在此,空白值會根據不同的快閃記憶體模組而有所不同。例如,空白值可以是"0×FF"或"0×00"。當目前儲存於此預設型態位址中的數值為空白值時,記憶體管
理電路202會將此預設型態位址所對應的預設值傳送給主機系統1000。反之,當目前儲存於此預設型態位址中的數值不為空白值時,記憶體管理電路202會將此數值傳送給主機系統1000。
也就是說,在檔案配置表1002中用以儲存對應檔案描述區塊的結束標記的儲存位址會被標記為預設型態位址,並且此邏輯位址中的值具有可修改性與可恢復性。因此,主機系統1000的作業系統1200可於分割區900的可寫入區中寫入新檔案與檔案描述區塊,並且在檔案配置表區中更新對應用以儲存檔案描述區塊之儲存位址的登錄值與結束標記。基於上述,記憶體管理電路202可在分割區900的可寫入區中儲存新檔案,同時防止寫入保護區中的檔案被刪除。
例如,在本發明範例實施例中,記憶體管理電路202會將關於上述預設型態位址與其對應之預設值的資訊儲存於系統區406的實體區塊中或者此些資訊亦可以直接寫在記憶體控制器104的韌體碼中。
值得一提的是,在本範例實施例中,記憶體管理電路202會依據主機系統1000所讀取的邏輯位址來判斷是否傳送預設值給主機系統1000。也就是說,記憶體管理電路202是在執行讀取指令時,判斷是否提供預設值給主機系統1000。然而,本發明不限於此。在本發明另一範例實施例中,記憶體管理電路202亦可在執行寫入指令時,判斷是否實際地寫入資料至實體區塊的實體頁面中。例如,當主
機系統1000對被設定為預設型態位址之邏輯位址下達寫入指令或抹除指令時,記憶體管理電路202會判斷欲寫入的資料是否為空白值。並且,倘若欲寫入的資料為空白值時,則記憶體管理電路202不會更新此邏輯位址所映射之實體區塊的實體頁面中的值。反之,倘若欲寫入的資料不為空白值時,記憶體管理電路202會依據主機系統1000的指令更新此邏輯位址所映射之實體區塊的實體頁面中的值。也就是說,欲寫入的資料為空白值表示主機系統1000欲執行抹除運作,因此記憶體管理電路202不允許儲存於預設型態位址中的資料被抹除。而欲寫入的資料不為空白值表示主機系統1000欲執行新增檔案的運作,因此記憶體管理電路202允許儲存於預設型態位址中的資料被更新。之後,當主機系統1000下達讀取指令時,則記憶體管理電路202會將所讀取的值傳送給主機系統1000。
值得一提的是,在本發明範例實施例中,在執行上述寫入保護區的設定之前,在檔案配置表1002中記錄對應目錄區906的結束標記的儲存位址會被調整(如圖11B所示)。然而,在本發明另一範例實施例中,在檔案配置表1002中記錄對應目錄區906的結束標記的儲存位址(即,儲存第2登錄值的儲存位址)亦可不被調整,而直接地被設為上述之預設型態位址。基此,既使在扇區700(M)被設定為屬於寫入保護區下,記憶體管理電路202仍可依據上述運作來修改或回復用以儲存第2登錄值的儲存位址中的數值。
在本發明範例實施例中,記憶體管理電路202是以扇區為單元來設定記憶體模組106的哪些邏輯位址是屬於寫入保護區。但本發明不限於此,在本發明另一範例實施例中,記憶體管理電路202亦可以位元組為單位來設定記憶體模組106的哪些邏輯位址是屬於寫入保護區。
圖12為根據本發明另一範例實施例所繪示之將邏輯位址設定為屬於寫入保護區的示意圖,其中寫入保護區是以位元組為單位來被設定。
請參照圖12,類似地,由於主引導磁區902儲存用以識別分割區900的資訊,因此,記憶體管理電路202會將屬於主引導磁區902的扇區700(0)~扇區700(M-1)設定為屬於寫入保護區。此外,記憶體管理電路202會將用以儲存“f1.exe”的叢集600(1)~600(3)和用以儲存“f2.dll”的叢集600(4)設定為屬於寫入保護區。再者,記憶體管理電路202會將檔案配置表區904中用以儲存前2個登錄值(如圖10C所示之第0個登錄值與第1個登錄值)的儲存位址和用以儲存關於叢集600(1)~600(4)之登錄值(如圖10C所示之第2個登錄值~第6個登錄值)的儲存位址設定為屬於寫入保護區,由此避免此些登錄值被主機系統1000誤刪而無法讀取“f1.exe”與“f2.dll”。另外,記憶體管理電路202會將在目錄區906中已記錄檔案描述區塊之儲存位址扇區設定為屬於寫入保護區,以避免關於“f1.exe”與“f2.dll”的檔案資訊被主機系統1000誤刪。例如,假設每一叢集是由2個扇區所構成並且在儲存檔案描述區塊的
叢集600(0)中用以已儲存對應“f1.exe”與“f2.dll”的檔案描述區塊的扇區會被設定為屬於寫入保護區。此外,在目錄區906假設叢集600(0)的第4位元組~第19位元組記錄了對應“f1.exe”與“f2.dll”的登錄值,則記憶體管理電路202會將叢集600(0)的第4位元組~第19位元組設定為屬於寫入保護區。另外,記憶體管理電路202會將在目錄區的叢集中已記錄檔案描述區塊之邏輯位址(如圖11A中叢集600(0)的斜線部分所示)設定為屬於寫入保護區,以避免關於“f1.exe”與“f2.dll”的檔案資訊被主機系統1000誤刪。
值得一提的是,主機系統1000是以扇區為單位來寫入資料,因此記憶體管理電路202會解析主機系統1000所寫入的邏輯位址中哪些位元組已被設定為屬於寫入保護區。
圖13是根據本發明範例實施例所繪示之資料存取方法中設定寫入保護區與預設型態位址的流程圖。
請參照圖13,在步驟S1301中,記憶體管理電路202將實體區塊304(0)~304(R)分組為資料區402、備用區404、系統區406與取代區408。然後,在步驟S1303中記憶體管理電路202會配置多個邏輯位址並且將邏輯位址分組為多個邏輯區塊以映射資料區402的實體區塊。
之後,在步驟S1305中主機系統1000的作業系統1200會使用檔案系統將邏輯位址格式化為一個分割區,在檔案區的邏輯位址中儲存檔案與對應此檔案的檔案描述區塊,
並且在檔案配置表的邏輯位址中儲存對應儲存此檔案描述區塊的邏輯位址的登錄值。在此,當作業系統1200於邏輯位址中寫入資料時,記憶體管理電路202會如圖6~圖8所示的運作將資料實際地寫入至實體區塊中。
接著,在步驟S1307中,記憶體管理電路202會依據檔案配置表1002分別地將邏輯位址設定為屬於寫入保護區或可寫入區(如圖11所示)。
然後,在步驟S1309中,記憶體管理電路202會依據檔案配置表1002搜尋對應目錄區的結束標記,將儲存此結束標記的邏輯位址設定為預設型態位址,並且將儲存於此邏輯位址中的數值設定為對應此預設型態位址的預設值。例如,記憶體管理電路202會將關於預設型態位址與其預設值的資訊寫入至系統區406的實體區塊中。
圖14是根據本發明範例實施例所繪示之資料存取方法中執行寫入或抹除指令的流程圖。
請參照圖14,在步驟S1401中記憶體管理電路202從主機系統1000中接收寫入指令(或抹除指令)與對應的資料。
接著,在步驟S1403中記憶體管理電路202會判斷所接收之寫入指令(或抹除指令)對應的邏輯位址是否屬於資料保護區。具體來說,記憶體管理電路202會依據圖13所述之設定來判斷主機系統1000是否欲寫入資料至屬於寫入保護區的邏輯位址中。
倘若所接收之寫入指令(或抹除指令)對應的邏輯位址
非屬於資料保護區時,則在步驟S1405中記憶體管理電路202會將所接收的資料寫入至此邏輯位址所映射之實體區塊的實體頁面中。
倘若所接收之寫入指令(或抹除指令)對應的邏輯位址屬於資料保護區時,則在步驟S1407中記憶體管理電路202會判斷所接收之寫入指令(或抹除指令)對應的邏輯位址是否為預設型態位址。具體來說,記憶體管理電路202會依據圖13所述之設定來判斷主機系統1000是否欲寫入資料至預設型態位址中。例如,記憶體管理電路202藉由比對儲存於系統區406中之關於預設型態位址與其預設值的資訊來判斷欲寫入之邏輯位址是否屬於預設型態位址。
倘若所接收之寫入指令(或抹除指令)對應的邏輯位址非為預設型態位址時,則在步驟S1409中記憶體管理電路202不會將所接收的資料寫入至此邏輯位址所映射之實體區塊的實體頁面中並且不會傳送錯誤訊息給主機系統1000。具體來說,記憶體管理電路202會在未實際地執行寫入動作下而回應確認訊息給主機系統1000,以表示已完成寫入指令。也就是說,記憶體管理電路202不會回應失敗訊息。
倘若所接收之寫入指令(或抹除指令)對應的邏輯位址為預設型態位址時,則在步驟S1411中記憶體管理電路202會將所接收的資料寫入至此邏輯位址所映射之實體區塊的實體頁面中。
圖15是根據本發明範例實施例所繪示之資料存取方
法中執行讀取指令的流程圖。
請參照圖15,在步驟S1501中記憶體管理電路202從主機系統1000中接收讀取指令。
接著,在步驟S1503中記憶體管理電路202會從對應此讀取指令的邏輯位址所映射之實體區塊的實體頁面中讀取資料。
然後,在步驟S1505中記憶體管理電路202會判斷所接收之讀取指令所對應的邏輯位址是否為預設型態位址。具體來說,記憶體管理電路202會依據圖13所述之設定來判斷主機系統1000是否欲讀取預設型態位址中的資料。例如,記憶體管理電路202藉由比對儲存於系統區406中之關於預設型態位址與其預設值的資訊來判斷欲讀取之邏輯位址是否屬於預設型態位址。
倘若所接收之讀取指令所對應的邏輯位址非為預設型態位址時,則在步驟S1507中記憶體管理電路202會將在步驟S1503中所讀取之資料傳送給主機系統1000。
倘若所接收之讀取指令所對應的邏輯位址為預設型態位址時,則在步驟S1509中記憶體管理電路202會判斷在步驟S1503中所讀取之資料是否為空白值。
倘若所讀取之資料不為空白值時,則在步驟S1507會被執行。
倘若所讀取之資料為空白值時,則在步驟S1511中記憶體管理電路202會將對應此邏輯位址的預設值傳送給主機系統1000。
綜上所述,本發明範例實施例的資料存取方法將部分儲存位址設定為預設型態位址並記錄其預設值,由此使得此預設型態位址具有可修改性與可恢復性。此外,藉由將屬於檔案配置表區的邏輯位址設定預設型態位址,本發明範例實施例的資料存取方法能夠在檔案系統所劃分的一個分割區中將部分的儲存位址設定為寫入保護區並且另一部份的儲存位址設定為可寫入區。基此,本發明範例實施例的資料存取方法能夠使得一張記憶卡能夠同時具有寫入保護區與可寫入區,由此儲存於記憶卡的重要檔案可有效地被保護。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1000‧‧‧主機系統
1100‧‧‧電腦
1102‧‧‧微處理器
1104‧‧‧隨機存取記憶體
1106‧‧‧輸入/輸出裝置
1108‧‧‧系統匯流排
1110‧‧‧資料傳輸介面
1112‧‧‧主儲存裝置
1200‧‧‧作業系統
1202‧‧‧滑鼠
1204‧‧‧鍵盤
1206‧‧‧顯示器
1208‧‧‧印表機
1212‧‧‧隨身碟
1214‧‧‧記憶卡
1216‧‧‧固態硬碟
1310‧‧‧數位相機
1312‧‧‧SD卡
1314‧‧‧MMC卡
1316‧‧‧記憶棒
1318‧‧‧CF卡
1320‧‧‧嵌入式儲存裝置
100‧‧‧記憶體儲存裝置
102‧‧‧連接器
104‧‧‧記憶體控制器
106‧‧‧記憶體模組
304(0)~304(R)‧‧‧實體區塊
202‧‧‧記憶體管理電路
204‧‧‧主機介面
206‧‧‧記憶體介面
252‧‧‧緩衝記憶體
254‧‧‧電源管理電路
256‧‧‧錯誤檢查與校正電路
402‧‧‧資料區
404‧‧‧備用區
406‧‧‧系統區
408‧‧‧取代區
510(0)~510(H)‧‧‧邏輯區塊
600(0)~600(W)‧‧‧叢集
900‧‧‧分割區
902‧‧‧主引導磁區
904‧‧‧檔案配置區
906‧‧‧目錄區
908‧‧‧檔案區
1002‧‧‧檔案配置表
1002a‧‧‧叢集索引欄位
1002b‧‧‧登錄值欄位
1004‧‧‧檔案描述區塊
1004a‧‧‧檔案名稱欄位
1004b‧‧‧起始位址欄位
700(0)~700(M+K)‧‧‧扇區
S1301、S1303、S1305、S1307、S1309‧‧‧資料存取方法的步驟
S1401、S1403、S1405、S1407、S1409、S1411‧‧‧資料存取方法的步驟
S1501、S1503、S1505、S1507、S1509、S1511‧‧‧資料存取方法的步驟
圖1A是根據本發明範例實施例繪示使用記憶體儲存裝置的主機系統。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明範例實施例所繪示的記憶體控制器與記憶體晶片的概要方塊圖。
圖4與圖5是根據本發明範例實施例所繪示之管理記憶體晶片的範例示意圖。
圖6~圖8是根據本發明範例實施例所繪示的寫入資料至記憶體晶片的範例。
圖9為根據本發明範例實施例所繪示之以檔案系統格式化記憶體模組之邏輯位址的範例。
圖10A與10B為根據本發明範例實施例所繪示的檔案配置表與檔案描述區塊的範例。
圖10C是根據本發明範例實施例所繪示的檔案配置表區的範例。
圖11A與11B為根據本發明範例實施例所繪示之將邏輯位址設定為屬於寫入保護區的示意圖。
圖12為根據本發明另一範例實施例所繪示之將邏輯位址設定為屬於寫入保護區的示意圖。
圖13是根據本發明範例實施例所繪示之資料存取方法中設定寫入保護區與預設型態位址的流程圖。
圖14是根據本發明範例實施例所繪示之資料存取方法中執行寫入或抹除指令的流程圖。
圖15是根據本發明範例實施例所繪示之資料存取方法中執行讀取指令的流程圖。
S1301、S1303、S1305、S1307、S1309‧‧‧資料存取方法的步驟
Claims (20)
- 一種資料存取方法,用於存取一非揮發性記憶體模組,其中該非揮發性記憶體模組具有多個實體區塊,該資料存取方法包括:將該些實體區塊至少分組為一資料區、一備用區與一系統區;配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊;使用一檔案系統將該些邏輯位址格式化為一個分割區,該分割區具有一檔案及對應該檔案的一檔案描述區塊,並且該分割區具有至少一檔案配置表以儲存對應用以儲存該檔案描述區塊的邏輯位址的至少一登錄值;依據該檔案配置表搜尋該至少一登錄值中的一結束標記;將儲存該檔案配置表的邏輯位址之中儲存該結束標記的至少一邏輯位址設定為至少一預設型態位址;以及將儲存在儲存該結束標記的該至少一邏輯位址中的至少一數值設定為對應該至少一預設型態位址的至少一預設值。
- 如申請專利範圍第1項所述之資料存取方法,更包括:在該系統區的實體區塊中儲存關於該至少一預設型態位址與該至少一預設值的資訊。
- 如申請專利範圍第1項所述之資料存取方法,更包 括:從一主機系統中接收對應該至少一預設型態位址的一讀取指令;判斷儲存於該至少一預設型態位址中的數值是否為一空白值;當儲存於該至少一預設型態位址中的數值為該空白值時,傳送對應該至少一預設型態位址的該至少一預設值給該主機系統;以及當儲存於該預設型態位址中的數值不為該空白值時,傳送儲存於該至少一預設型態位址中的數值給該主機系統。
- 如申請專利範圍第1項所述之資料存取方法,更包括:將該分割區中的該些邏輯位址至少劃分為一主引導磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;當從一主機系統中接收對應該第一部份的邏輯位址的一第一寫入指令與對應該第一寫入指令的至少一第一資料時,判斷該第一寫入指令所欲寫入的邏輯位址是否對應該至少一預設型態位址,其中當該第一寫入指令所欲寫入的邏輯位址為對應 該至少一預設型態位址時,將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中,其中當該第一寫入指令所欲寫入的邏輯位址非對應該至少一預設型態位址時,不將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給該主機系統。
- 如申請專利範圍第4項所述之資料存取方法,更包括:當從該主機系統中接收對應該第二部份的邏輯位址的一第二寫入指令與對應該第二寫入指令的至少一第二資料時,將該至少一第二資料寫入至該第二寫入指令所欲寫入的邏輯位址中。
- 如申請專利範圍第1項所述之資料存取方法,更包括:將該分割區中的該些邏輯位址至少劃分為一主引導磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;在該些邏輯位址中寫入至少一虛擬檔案;以及以一扇區為單位將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為該第一部份並且將該些邏輯位址之中的其他邏 輯位址分組為該第二部分。
- 如申請專利範圍第1項所述之資料存取方法,更包括:將該分割區中的該些邏輯位址至少劃分為一主引導磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;以及以一位元組為單位將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為該第一部份並且將該些邏輯位址之中的其他邏輯位址分組為該第二部分。
- 如申請專利範圍第7項所述之資料存取方法,其中在該檔案區中儲存該檔案的儲存位址為連續的。
- 如申請專利範圍第1項所述之資料存取方法,更包括:將該分割區中的該些邏輯位址至少劃分為一主引導磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;當從一主機系統中接收對應該第一部份的邏輯位址 的一第一寫入指令與對應該第一寫入指令的至少一第一資料時,判斷該第一寫入指令所欲寫入的邏輯位址是否對應該至少一預設型態位址,其中當該第一寫入指令所欲寫入的邏輯位址為對應該至少一預設型態位址時,判斷該至少第一資料是否為一空白值,其中當該至少一第一資料非為該空白值時,將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中,其中當該至少一第一資料為該空白值時,不將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給該主機系統,其中當該第一寫入指令所欲寫入的邏輯位址非對應該至少一預設型態位址時,不將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給該主機系統。
- 一種記憶體控制器,用於管理一非揮發性記憶體模組,其中該非揮發性記憶體模組具有多個實體區塊,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該非揮發性記憶體模組;以及一記憶體管理電路,耦接至該主機介面與該記憶體介面,其中該記憶體管理電路用以執行至少下列程序: 將該些實體區塊至少分組為一資料區、一備用區與一系統區;配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊;使用一檔案系統將該些邏輯位址格式化為一個分割區,該分割區具有一檔案及對應該檔案的一檔案描述區塊,並且該分割區具有至少一檔案配置表以儲存對應用以儲存該檔案描述區塊的邏輯位址的至少一登錄值;依據該檔案配置表搜尋該至少一登錄值之中的一結束標記;將儲存該檔案配置表的邏輯位址之中儲存該結束標記的至少一邏輯位址設定為至少一預設型態位址;將儲存在儲存該結束標記的該至少一邏輯位址中的至少一數值設定為對應該至少一預設型態位址的至少一預設值;在該系統區的實體區塊中儲存關於該至少一預設型態位址與該至少一預設值的資訊;以及當從一主機系統中接收對應該至少一預設型態位址的一讀取指令時,從該系統區的實體區塊中讀取對應該至少一預設型態位址的該至少一預設值並傳送給該主機系統。
- 如申請專利範圍第10項所述之記憶體控制器,其 中該記憶體管理電路所執行之當從該主機系統中接收對應該至少一預設型態位址的該讀取指令時,從該系統區的實體區塊中讀取對應該至少一預設型態位址的該至少一預設值並傳送給該主機系統的程序包括:判斷儲存於該至少一預設型態位址中的數值是否為一空白值;當儲存於該至少一預設型態位址中的數值為該空白值時,傳送對應該至少一預設型態位址的該至少一預設值給該主機系統;以及當儲存於該預設型態位址中的數值不為該空白值時,傳送儲存於該至少一預設型態位址中的數值給該主機系統。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路更用以執行下列程序:將該分割區中的該些邏輯位址至少劃分為一主引導磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;當從該主機系統中接收對應該第一部份的邏輯位址的一第一寫入指令與對應該第一寫入指令的至少一第一資料時,判斷該第一寫入指令所欲寫入的邏輯位址是否對應該至少一預設型態位址, 其中當該第一寫入指令所欲寫入的邏輯位址為對應該至少一預設型態位址時,將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中,其中當該第一寫入指令所欲寫入的邏輯位址非對應該至少一預設型態位址時,將不寫入該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給該主機系統。
- 如申請專利範圍第12項所述之記憶體控制器,其中該記憶體管理電路更用以當從該主機系統中接收對應該第二部份的邏輯位址的一第二寫入指令與對應該第二寫入指令的至少一第二資料時,將該至少一第二資料寫入至該第二寫入指令所欲寫入的邏輯位址中。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路更用以執行下列程序:將該分割區中的該些邏輯位址至少劃分為一主引導磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;當從該主機系統中接收對應該第一部份的邏輯位址的一第一寫入指令與對應該第一寫入指令的至少一第一資料時,判斷該第一寫入指令所欲寫入的邏輯位址是否對應該至少一預設型態位址, 其中當該第一寫入指令所欲寫入的邏輯位址為對應該至少一預設型態位址時,判斷該至少第一資料是否為一空白值,其中當該至少一第一資料非為該空白值時,將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中,其中當該至少一第一資料為該空白值時,不將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給該主機系統,其中當該第一寫入指令所欲寫入的邏輯位址非對應該至少一預設型態位址時,不將該至少一第一資料寫入至該第一寫入指令所欲寫入的邏輯位址中且不傳送一錯誤訊息給該主機系統。
- 一種非揮發性記憶體儲存系統,包括:一連接器,用以耦接至一主機系統;一非揮發性記憶體模組,具有多個實體區塊;以及一記憶體控制器,耦接至該連接器與該非揮發性記憶體模組,並且用以執行至少下列程序:將該些實體區塊至少分組為一資料區、一備用區與一系統區;配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊;使用一檔案系統將該些邏輯位址格式化為一個分割區,該分割區具有一檔案及對應該檔案的一檔案 描述區塊,並且該分割區具有至少一檔案配置表以儲存對應用以儲存該檔案描述區塊的邏輯位址的至少一登錄值;將該檔案配置表的邏輯位址之中儲存一結束標記的至少一邏輯位址設定為至少一預設型態位址;將儲存在儲存該結束標記的該至少一邏輯位址中的至少一數值設定為對應該至少一預設型態位址的至少一預設值;當從一主機系統中接收對應該至少一預設型態位址的一讀取指令時,判斷儲存於該至少一預設型態位址中的數值是否為一空白值;當儲存於該至少一預設型態位址中的數值為該空白值時,傳送對應該至少一預設型態位址的該至少一預設值給該主機系統;以及當儲存於該預設型態位址中的數值不為該空白值時,傳送儲存於該至少一預設型態位址中的數值給該主機系統。
- 如申請專利範圍第15項所述之記憶體儲存系統,其中該記憶體控制器更用以在該系統區的實體區塊中儲存關於該至少一預設型態位址與該至少一預設值的資訊。
- 如申請專利範圍第15項所述之記憶體儲存系統,其中該記憶體控制器更用以執行下列程序:將該分割區中的該些邏輯位址至少劃分為一主引導 磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;在該些邏輯位址所對應的該些實體區塊中寫入至少一虛擬檔案;以及以一扇區為單位將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為該第一部份並且將該些邏輯位址之中的其他邏輯位址分組為該第二部分。
- 如申請專利範圍第15項所述之記憶體儲存系統,其中該記憶體控制器更用以執行下列程序:將該分割區中的該些邏輯位址至少劃分為一主引導磁區、一檔案配置表區與一檔案區;將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為一第一部份並且將該些邏輯位址之中的其他邏輯位址分組為一第二部分;以一位元組為單位將該些邏輯位址之中儲存該主引導磁區、該檔案、該檔案描述區塊與該至少一登錄值的邏輯位址分組為該第一部份並且將該些邏輯位址之中的其他邏輯位址分組為該第二部分。
- 如申請專利範圍第18項所述之記憶體儲存系 統,其中在該檔案區中儲存該檔案的儲存位址為連續的。
- 如申請專利範圍第15項所述之記憶體儲存系統,其中每一實體區塊具有多個實體頁面並且該些實體頁面可獨立地被寫入且同時地被抹除。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099107928A TWI425355B (zh) | 2010-03-17 | 2010-03-17 | 資料存取方法、記憶體控制器與儲存系統 |
US12/773,475 US8291155B2 (en) | 2010-03-17 | 2010-05-04 | Data access method, memory controller and memory storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099107928A TWI425355B (zh) | 2010-03-17 | 2010-03-17 | 資料存取方法、記憶體控制器與儲存系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201133236A TW201133236A (en) | 2011-10-01 |
TWI425355B true TWI425355B (zh) | 2014-02-01 |
Family
ID=44648129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099107928A TWI425355B (zh) | 2010-03-17 | 2010-03-17 | 資料存取方法、記憶體控制器與儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8291155B2 (zh) |
TW (1) | TWI425355B (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI451247B (zh) * | 2010-09-23 | 2014-09-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
JP5296763B2 (ja) * | 2010-11-11 | 2013-09-25 | 株式会社バッファロー | 記憶装置、記憶プログラム及び制御方法 |
KR20120067136A (ko) * | 2010-12-15 | 2012-06-25 | 삼성전자주식회사 | 전자 장치 및 이에 적용되는 파일 삭제 방지 방법 |
US9563681B1 (en) | 2012-08-08 | 2017-02-07 | Amazon Technologies, Inc. | Archival data flow management |
US9767098B2 (en) | 2012-08-08 | 2017-09-19 | Amazon Technologies, Inc. | Archival data storage system |
TWI443512B (zh) * | 2011-07-13 | 2014-07-01 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
TWI540428B (zh) | 2011-11-18 | 2016-07-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN103136111B (zh) * | 2011-11-29 | 2017-03-01 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
TWI451248B (zh) | 2012-01-13 | 2014-09-01 | Phison Electronics Corp | 資料保護方法、記憶體控制器與記憶體儲存裝置 |
CN103218319B (zh) * | 2012-01-20 | 2016-01-20 | 群联电子股份有限公司 | 数据保护方法、存储器控制器与存储器储存装置 |
CN103365790B (zh) * | 2012-03-29 | 2016-03-02 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
CN103377143B (zh) * | 2012-04-27 | 2016-12-21 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器存储装置 |
TWI498738B (zh) * | 2012-05-18 | 2015-09-01 | Phison Electronics Corp | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 |
US9830111B1 (en) | 2012-08-08 | 2017-11-28 | Amazon Technologies, Inc. | Data storage space management |
US9225675B2 (en) | 2012-08-08 | 2015-12-29 | Amazon Technologies, Inc. | Data storage application programming interface |
US10120579B1 (en) | 2012-08-08 | 2018-11-06 | Amazon Technologies, Inc. | Data storage management for sequentially written media |
US8805793B2 (en) | 2012-08-08 | 2014-08-12 | Amazon Technologies, Inc. | Data storage integrity validation |
US9904788B2 (en) | 2012-08-08 | 2018-02-27 | Amazon Technologies, Inc. | Redundant key management |
US9652487B1 (en) | 2012-08-08 | 2017-05-16 | Amazon Technologies, Inc. | Programmable checksum calculations on data storage devices |
US8959067B1 (en) | 2012-08-08 | 2015-02-17 | Amazon Technologies, Inc. | Data storage inventory indexing |
US9779035B1 (en) | 2012-08-08 | 2017-10-03 | Amazon Technologies, Inc. | Log-based data storage on sequentially written media |
TWI516936B (zh) | 2012-12-07 | 2016-01-11 | 群聯電子股份有限公司 | 運作模式切換方法、記憶體控制器與記憶體儲存裝置 |
US10558581B1 (en) * | 2013-02-19 | 2020-02-11 | Amazon Technologies, Inc. | Systems and techniques for data recovery in a keymapless data storage system |
US9229639B2 (en) * | 2013-03-11 | 2016-01-05 | Sandisk Technologies Inc. | Method and non-volatile memory device for improving latency together with write protection |
US10261899B2 (en) * | 2014-09-03 | 2019-04-16 | Infineon Technologies Ag | Method, device and system for data processing using dedicated mapping between logical and physical addresses |
TWI563507B (en) * | 2015-07-01 | 2016-12-21 | Phison Electronics Corp | Memory management method, memory control circuit unit and memry storage apparatus |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
CN106527969B (zh) * | 2016-09-21 | 2017-09-19 | 中国科学院地质与地球物理研究所 | 一种寿命均衡的NandFlash存储器读写方法 |
US10229052B2 (en) * | 2017-05-31 | 2019-03-12 | Seagate Technology Llc | Reverse map logging in physical media |
US11138069B2 (en) | 2018-06-11 | 2021-10-05 | Seagate Technology, Llc | Providing additional parity for non-standard sized parity data sets |
US10896002B2 (en) | 2018-06-29 | 2021-01-19 | Seagate Technology Llc | Reverse directory structure in a garbage collection unit (GCU) |
US12086450B1 (en) | 2018-09-26 | 2024-09-10 | Amazon Technologies, Inc. | Synchronous get copy for asynchronous storage |
CN111309513A (zh) * | 2020-02-07 | 2020-06-19 | 北京海博思创科技有限公司 | 一种数据存储系统及管理方法 |
JP2021144553A (ja) * | 2020-03-13 | 2021-09-24 | 日立Astemo株式会社 | センサ装置 |
CN111580959B (zh) * | 2020-04-26 | 2023-02-28 | Oppo(重庆)智能科技有限公司 | 一种数据写入方法、数据写入装置、服务器及存储介质 |
US11726921B2 (en) | 2020-05-21 | 2023-08-15 | Seagate Technology Llc | Combined page footer for parallel metadata storage |
TWI750811B (zh) * | 2020-09-16 | 2021-12-21 | 英柏得科技股份有限公司 | 用於記憶體的資料保護寫入方法、用於記憶體的資料保護讀取方法以及記憶體資料保護系統 |
US11314428B1 (en) | 2020-10-09 | 2022-04-26 | Western Digital Technologies, Inc. | Storage system and method for detecting and utilizing wasted space using a file system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003191A1 (en) * | 2002-06-28 | 2004-01-01 | Minne Mark W. | Write-once memory storage device |
TW200506609A (en) * | 2003-03-19 | 2005-02-16 | Sony Corp | Data storage device, management information updating method in data storage device, and computer program |
US7062602B1 (en) * | 2001-04-09 | 2006-06-13 | Matrix Semiconductor, Inc. | Method for reading data in a write-once memory device using a write-many file system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8275927B2 (en) * | 2007-12-31 | 2012-09-25 | Sandisk 3D Llc | Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method |
US8452934B2 (en) * | 2008-12-16 | 2013-05-28 | Sandisk Technologies Inc. | Controlled data access to non-volatile memory |
-
2010
- 2010-03-17 TW TW099107928A patent/TWI425355B/zh active
- 2010-05-04 US US12/773,475 patent/US8291155B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062602B1 (en) * | 2001-04-09 | 2006-06-13 | Matrix Semiconductor, Inc. | Method for reading data in a write-once memory device using a write-many file system |
US20040003191A1 (en) * | 2002-06-28 | 2004-01-01 | Minne Mark W. | Write-once memory storage device |
TW200506609A (en) * | 2003-03-19 | 2005-02-16 | Sony Corp | Data storage device, management information updating method in data storage device, and computer program |
Also Published As
Publication number | Publication date |
---|---|
US8291155B2 (en) | 2012-10-16 |
TW201133236A (en) | 2011-10-01 |
US20110231597A1 (en) | 2011-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI425355B (zh) | 資料存取方法、記憶體控制器與儲存系統 | |
TWI435219B (zh) | 資料保護方法、記憶體控制器及可攜式記憶體儲存裝置 | |
TWI408551B (zh) | 快閃記憶體儲存系統及其控制器與資料處理方法 | |
TWI467372B (zh) | 指令執行方法、記憶體控制器與記憶體儲存裝置 | |
TWI480733B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI420305B (zh) | 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
US8255656B2 (en) | Storage device, memory controller, and data protection method | |
TWI486766B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421686B (zh) | 資料存取方法與系統、儲存媒體控制器與儲存系統 | |
TWI463313B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
US9128624B2 (en) | Flash memory storage system for simulating rewritable disc device, flash memory controller, computer system, and method thereof | |
TWI498738B (zh) | 檔案保護方法與系統及其記憶體控制器與記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI489272B (zh) | 保護資料的方法、記憶體控制器與記憶體儲存裝置 | |
TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
TWI448892B (zh) | 資料搬移方法、記憶體控制器與記憶體儲存裝置 | |
TWI493341B (zh) | 記憶體儲存裝置及其修復方法 |