TWI420305B - 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 - Google Patents
記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 Download PDFInfo
- Publication number
- TWI420305B TWI420305B TW099134409A TW99134409A TWI420305B TW I420305 B TWI420305 B TW I420305B TW 099134409 A TW099134409 A TW 099134409A TW 99134409 A TW99134409 A TW 99134409A TW I420305 B TWI420305 B TW I420305B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- host system
- fill
- root directory
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種產生填充檔案的方法,且特別是有關於一種由記憶體儲存裝置自動產生填充檔案的方法以及實作此方法的記憶體儲存裝置及其記憶體控制器。
對於連接至儲存裝置的手機或電腦等主機系統來說,為了提升讀取儲存裝置之資料的效率,多半會採用一預讀(pre-read)機制先將部分的資料讀取到主機系統的隨機存取記憶體當中。一旦主機系統的隨機存取記憶體有記錄某個位址的資料,日後當主機系統需要讀取該位址時,便會直接從隨機存取記憶體讀取資料。換句話說,唯有在主機系統欲讀取之位址的資料還未被記錄在隨機存取記憶體時,主機系統才會去讀取儲存裝置以從中取得資料。
預讀機制雖然能提升資料讀取的效率,但在某些情況下也會造成主機系統無法取得最新的資料內容。例如,在主機系統讀取一特定位址的資料並將其記錄至隨機存取記憶體之後,倘若主機系統又將資料寫入儲存裝置而更新了該特定位址的資料內容,當主機系統下一次要讀取該特定位址時,由於隨機存取記憶體記錄有該特定位址,因此主機系統仍會讀取隨機存取記憶體而非儲存裝置,故不能取得更新後的資料內容。
為了使主機系統每次都會從儲存裝置讀取最新的資料,目前採取的作法是由主機系統寫入一填充檔案,進而利用此填充檔案佔據隨機存取記憶體來確保主機系統會從儲存裝置讀取資料。然而,由主機系統寫入填充檔案須耗費相當多的時間,另外當儲存裝置需擷取此填充檔案的位址範圍時,主機系統也經常會因為儲存裝置的處理時間過長而判定儲存裝置的動作逾時,甚至會因此將儲存裝置移除或重置,徒增許多使用上的不便。
有鑑於此,本發明提供一種自動產生填充檔案的方法,可由記憶體儲存裝置因應不同的檔案系統快速且自動地產生大容量的填充檔案。
本發明提供一種記憶體控制器,使所屬之記憶體儲存裝置能因應不同的檔案系統快速且自動地產生大容量的填充檔案。
本發明提供一種記憶體儲存裝置,能因應不同的檔案系統快速且自動地產生大容量的填充檔案。
本發明提出一種自動產生填充檔案的方法,用於耦接至主機系統的記憶體儲存裝置,此記憶體儲存裝置包括記憶體晶片且記憶體晶片具有多個實體區塊。此方法包括將上述實體區塊至少分組為資料區、備用區與系統區。配置多個邏輯位址並且將上述邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊。在主機系統的電源啟動時,若上述邏輯位址已依照一檔案系統而至少被格式化為一分割區,且分割區包括磁碟分割開機記錄、檔案配置表以及根目錄,則讀取磁碟分割開機記錄與根目錄,進而判斷符合預設檔案容量的填充檔案是否存在於記憶體晶片。若填充檔案不存在,則在主機系統欲讀取檔案配置表時,配置預設檔案容量對應的扇區個數,從檔案配置表的預定扇區開始定義符合扇區個數的多個特定扇區,將關於填充檔案的叢集登錄值填入至上述特定扇區,並在將上述特定扇區對應的邏輯位址設定為寫入保護狀態後,將檔案配置表傳送至主機系統。而在主機系統欲讀取根目錄時,將填充檔案的填充檔案標頭填入至根目錄的預定扇區,並在將根目錄之預定扇區對應的邏輯位址設定為寫入保護狀態後,將根目錄傳送至主機系統。
在本發明之一範例實施例中,其中磁碟分割開機記錄具有一剩餘空間欄位,此方法更包括在填充檔案不存在時,在主機系統欲讀取磁碟分割開機記錄時將記憶體晶片的總容量與預設檔案容量之間的差值寫入剩餘空間欄位,並將磁碟分割開機記錄傳送至主機系統。
在本發明之一範例實施例中,其中檔案配置表的預定扇區用以存放第一數量的叢集登錄值,且檔案配置表的其他扇區則分別用以存放第二數量的叢集登錄值。配置預設檔案容量對應的扇區個數的步驟包括依據預設檔案容量配置儲存填充檔案所需的叢集個數,並且根據叢集個數、第一數量與第二數量配置扇區個數。
在本發明之一範例實施例中,其中將關於填充檔案的叢集登錄值填入至上述特定扇區的步驟更包括在將關於填充檔案的叢集登錄值填入上述特定扇區後,判斷特定扇區是否具有剩餘空間。若是,則利用關於至少一預設檔的叢集登錄值填滿剩餘空間。
在本發明之一範例實施例中,其中預設檔包括隱藏檔、刪除檔,及一般檔。
在本發明之一範例實施例中,其中將填充檔案標頭填入至根目錄的預定扇區的步驟更包括在將填充檔案標頭填入至根目錄的預定扇區後,判斷根目錄的預定扇區是否具有一剩餘空間。若是,則利用至少一預設檔標頭填滿根目錄的預定扇區。
在本發明之一範例實施例中,其中上述預設檔標頭的數量係對應填充檔案的檔名格式、各預設檔標頭所對應之預設檔的檔名格式,以及扇區容量。
在本發明之一範例實施例中,其中預定扇區為第一個扇區。
在本發明之一範例實施例中,其中在讀取磁碟分割開機記錄與根目錄,以判斷填充檔案是否存在於記憶體晶片的步驟之後,此方法更包括若填充檔案存在,則在主機系統欲讀取檔案配置表時,將特定扇區對應的邏輯位址設定為寫入保護狀態,並傳送檔案配置表至主機系統。而在主機系統欲讀取根目錄時,將根目錄之預定扇區對應的邏輯位址設定為寫入保護狀態,並傳送根目錄至主機系統。
在本發明之一範例實施例中,此自動產生填充檔案的方法更包括判斷主機系統是否開始執行一格式化動作。若是,則判斷格式化動作是否執行完畢。當格式化動作執行完畢後,在主機系統欲讀取檔案配置表時,配置預設檔案容量對應的扇區個數,從檔案配置表的預定扇區開始定義符合扇區個數的數個特定扇區,將關於填充檔案的叢集登錄值填入至上述特定扇區,並在將特定扇區對應的邏輯位址設定為寫入保護狀態後,傳送檔案配置表至主機系統。而在主機系統欲讀取根目錄時,將填充檔案的填充檔案標頭填入至根目錄的預定扇區,並在將根目錄的預定扇區對應的邏輯位址設定為寫入保護狀態後,傳送根目錄至主機系統。
在本發明之一範例實施例中,其中判斷主機系統是否開始執行格式化動作的步驟包括當主機系統欲將一寫入資料寫入至分割資訊記錄位址時,檢查寫入資料與分割資訊記錄位址所儲存的現有資料是否相同。若寫入資料不同於現有資料,則判定主機系統開始執行格式化動作。
在本發明之一範例實施例中,其中判斷主機系統是否開始執行格式化動作的步驟包括在主機系統欲更新磁碟分割開機記錄的內容時,根據主機系統在更新前後分別寫入磁碟分割開機記錄中一特定位元組位址的資料內容判斷主機系統是否執行檔案變更動作。若主機系統並非執行檔案變更動作,則判定主機系統開始執行格式化動作。
在本發明之一範例實施例中,其中磁碟分割開機記錄具有一剩餘空間欄位,而判斷主機系統是否開始執行格式化動作的步驟包括在主機系統欲更新磁碟分割開機記錄的內容時,若剩餘空間欄位所記錄的剩餘容量小於記憶體晶片的總容量與預設檔案容量的差值,則判定主機系統開始執行格式化動作。
在本發明之一範例實施例中,其中在判斷主機系統是否開始執行格式化動作的步驟之後,此方法更包括在判定主機系統開始執行格式化動作後,檢查檔案配置表與根目錄是否存在。若是,則將檔案配置表與根目錄對應的所有邏輯位址設定為可寫入狀態。
在本發明之一範例實施例中,其中判斷格式化動作是否執行完畢的步驟包括當主機系統連續讀取兩個不同的邏輯位址,或主機系統讀取的邏輯位址不同於上一次寫入的邏輯位址時,判定格式化動作執行完畢。
在本發明之一範例實施例中,此自動產生填充檔案的方法更包括在主機系統的電源啟動時,若上述邏輯位址未被格式化,則判斷主機系統是否開始執行一格式化動作。若是,則判斷格式化動作是否執行完畢。當格式化動作執行完畢後,在主機系統欲讀取檔案配置表時,配置預設檔案容量對應的扇區個數,從檔案配置表的預定扇區開始定義符合扇區個數的數個特定扇區,將關於填充檔案的叢集登錄值填入至上述特定扇區,並在將特定扇區對應的邏輯位址設定為寫入保護狀態後,傳送檔案配置表至主機系統。而在主機系統欲讀取根目錄時,將填充檔案的填充檔案標頭填入至根目錄的預定扇區,並在將根目錄的預定扇區對應的邏輯位址設定為寫入保護狀態後,傳送根目錄至主機系統。
從另一觀點來看,本發明提出一種記憶體控制器,用於管理記憶體儲存裝置中一記憶體晶片的多個實體區塊。此記憶體控制器包括主機系統介面、記憶體介面以及記憶體管理電路。其中,主機系統介面用以耦接主機系統,記憶體介面用以耦接記憶體晶片。而記憶體管理電路耦接至主機系統介面與記憶體介面,記憶體管理電路用以將上述實體區塊至少分組為資料區、備用區與系統區。配置多個邏輯位址並且將上述邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊。在主機系統的電源啟動時,若上述邏輯位址已依照一檔案系統且至少被格式化為一分割區,且分割區包括磁碟分割開機記錄、檔案配置表以及根目錄,記憶體管理電路更用以讀取磁碟分割開機記錄與根目錄,以判斷符合一預設檔案容量的填充檔案是否存在於記憶體晶片。若填充檔案不存在,記憶體管理電路在主機系統欲讀取檔案配置表時,配置預設檔案容量對應的扇區個數,從檔案配置表的預定扇區開始定義符合扇區個數的多個特定扇區,將關於填充檔案的叢集登錄值填入至上述特定扇區,並在將上述特定扇區對應的邏輯位址設定為寫入保護狀態後,將檔案配置表傳送至主機系統。而在主機系統欲讀取根目錄時,記憶體管理電路將填充檔案的填充檔案標頭填入至根目錄的預定扇區,並在將根目錄的預定扇區對應的邏輯位址設定為寫入保護狀態後,將根目錄傳送至主機系統。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括記憶體晶片、連接器以及記憶體控制器。其中,記憶體晶片具有多個實體區塊。連接器用以耦接一主機系統。記憶體控制器耦接至記憶體晶片與連接器,記憶體控制器用以將上述實體區塊至少分組為資料區、備用區與系統區。配置多個邏輯位址並且將上述邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊。在主機系統的電源啟動時,若上述邏輯位址已依照一檔案系統且至少被格式化為一分割區,且分割區包括磁碟分割開機記錄、檔案配置表以及根目錄,則記憶體控制器讀取磁碟分割開機記錄與根目錄,進而判斷符合一預設檔案容量的填充檔案是否存在於記憶體晶片。若填充檔案不存在,記憶體控制器在主機系統欲讀取檔案配置表時,配置預設檔案容量對應的扇區個數,從檔案配置表的預定扇區開始定義符合扇區個數的多個特定扇區,將關於填充檔案的叢集登錄值填入至上述特定扇區,並在將上述特定扇區對應的邏輯位址設定為寫入保護狀態後,將檔案配置表傳送至主機系統。而在主機系統欲讀取根目錄時,記憶體控制器將填充檔案的填充檔案標頭填入至根目錄的預定扇區,並在將根目錄的預定扇區對應的邏輯位址設定為寫入保護狀態後,將根目錄傳送至主機系統。
在本發明之一範例實施例中,其中磁碟分割開機記錄具有一剩餘空間欄位,而記憶體控制器更包括當填充檔案不存在時,在主機系統欲讀取磁碟分割開機記錄時將記憶體晶片的總容量與預設檔案容量之間的差值寫入剩餘空間欄位,並將磁碟分割開機記錄傳送至主機系統。
在本發明之一範例實施例中,其中檔案配置表的預定扇區用以存放第一數量的叢集登錄值,且檔案配置表的其他扇區分別用以存放第二數量的叢集登錄值,而記憶體控制器更用以依據預設檔案容量配置儲存填充檔案所需的叢集個數。根據叢集個數、第一數量與第二數量配置扇區個數。
從又一觀點來看,本發明提出一種記憶體儲存裝置,包括記憶體晶片、連接器以及記憶體控制器。其中記憶體晶片具有多個實體區塊。連接器用以耦接主機系統。記憶體控制器耦接至記憶體晶片與連接器。記憶體控制器用於管理記憶體晶片的上述實體區塊。其中,記憶體控制器用以將上述實體區塊至少分組為資料區、備用區與系統區,並配置多個邏輯位址並且將上述邏輯位址分組為多個邏輯區塊以映射資料區的實體區塊。在主機系統的電源啟動時,記憶體控制器更用以將預設檔案容量的填充檔案的對應資料配置至儲存於記憶體晶片的檔案系統,並在將填充檔案設定為寫入保護狀態後,將檔案系統之檔案配置表傳送至主機系統。其中,填充檔案是用以佔據主機系統的快取空間,以使主機系統從記憶體晶片讀出所需資料。
基於上述,本發明在不影響主機系統操作的前提之下,由記憶體儲存裝置自動因應不同的檔案系統來產生大容量的填充檔案,從而降低產生大容量填充檔案所耗費的時間。也正因為此填充檔案係由記憶體儲存裝置本身所產生,記憶體儲存裝置能快速取得填充檔案的儲存位址範圍,進而提升處理速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖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的運作,主機系統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所支援的傳輸介面種類為安全數位(Secure Digital,SD)介面。然而在其他範例實施例中,連接器102的傳輸介面種類也可以是多媒體儲存卡(Multimedia Card,MMC)介面、通用序列匯流排(Universal Serial Bus,USB)介面、序列先進附件(Serial Advanced Technology Attachment,SATA)介面、平行先進附件(Parallel Advanced Technology Attachment,PATA)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)介面、記憶棒(Memory Stick,MS)介面、小型快閃(Compact Flash,CF)介面,或整合驅動電子(Integrated Drive Electronics,IDE)介面等任何適用的介面,在此並不加以限制。
記憶體控制器104會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並根據主機系統1000的指令在記憶體晶片106中進行資料的寫入、讀取與抹除等運作。在本範例實施例中,主機系統1000為了提升資料讀取的效率,會執行一預讀(pre-read)機制而先將記憶體晶片106之部分位址的資料讀入隨機存取記憶體1104中分配給預讀機制所使用的快取空間。為了避免主機系統1000只讀取隨機存取記憶體1104的快取空間而未能取得記憶體晶片106中最新的資料內容,記憶體控制器104更特別用以執行一填充檔案的自動產生程序,以利用此填充檔案佔據隨機存取記憶體1104的快取空間,從而較確保主機系統1000在每次執行讀取動作時,都能從記憶體晶片106較確實地讀出所需資料。而記憶體控制器104所執行之填充檔案的自動產生程序將於後配合圖式再作說明。
記憶體晶片106耦接至記憶體控制器104。記憶體晶片106係用以儲存如檔案配置表(File Allocation Table,FAT),磁碟分割開機記錄(Partition Boot Record,PBR)、以及根目錄(root directory)等檔案系統(file system)的相關資訊,並用以儲存如文字、影像(video)或聲音(audio)檔案等一般性檔案。在本範例實施例中,記憶體晶片106包括多個實體區塊(例如實體區塊206(0)~206(K)),每個實體區塊分別包括多個實體位址(亦稱之為實體頁面),且對應於同一實體區塊之該些實體頁面可獨立寫入並同時抹除。更詳細地說,在本範例實施例中,實體區塊可為抹除之最小單位,亦即,每一實體區塊含有最小數目之一併被抹除的記憶胞。而實體頁面則可是程式化的最小單元,亦即實體頁面是寫入資料時的最小單元。
在本範例實施例中,記憶體晶片106為可複寫式非揮發性記憶體。舉例來說,記憶體晶片106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片,但本發明不限於此,記憶體晶片106也可以是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體晶片、其他快閃記憶體晶片或任何具有相同特性的記憶體晶片。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。請參照圖3,記憶體控制器104包括主機介面1042、記憶體管理電路1046,以及記憶體介面1048。
主機介面1042耦接至記憶體管理電路1046,並透過連接器102以耦接主機系統1000。主機介面1042係用以接收與識別主機系統1000所傳送的指令與資料。據此,主機系統1000所傳送的指令與資料會透過主機介面1042而傳至記憶體管理電路1046。在本範例實施例中,主機介面1042對應連接器102而為SD介面,而在其他範例實施例中,主機介面1042也可以是MMC介面、USB介面、SATA介面、PATA介面、IEEE 1394介面、PCI Express介面、MS介面、CF介面、IDE介面或符合其他介面標準的介面。
記憶體管理電路1046用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路1046具有多個控制指令,在記憶體儲存裝置100運作時,上述控制指令會被執行以完成本範例實施例之填充檔案的自動產生程序。
在本範例實施例中,記憶體管理電路1046的控制指令是以韌體型式來實作。例如,記憶體管理電路1046具有微處理器單元(未繪示)與唯讀記憶體(未繪示),且上述控制指令是被燒錄在唯讀記憶體中。在記憶體儲存裝置100運作時,上述控制指令會由微處理器單元來執行以完成本範例實施例所述之填充檔案的自動產生程序。
在另一範例實施例中,記憶體管理電路1046的控制指令亦可以程式碼型式儲存於記憶體晶片106的特定區域(例如,記憶體晶片106中專用於存放系統資料的系統區)中。此外,記憶體管理電路1046具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。其中,唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於記憶體晶片106中之控制指令載入至記憶體管理電路1046的隨機存取記憶體中。之後,微處理器單元會運轉上述控制指令以執行本發明範例實施例之填充檔案的自動產生程序。此外,在本發明另一範例實施例中,記憶體管理電路1046的控制指令亦可以一硬體型式來實作。
記憶體介面1048耦接至記憶體管理電路1046,用以使記憶體控制器104與記憶體晶片106相耦接。據此,記憶體控制器104可對記憶體晶片106進行相關運作。也就是說,欲寫入至記憶體晶片106的資料會經由記憶體介面1048轉換為記憶體晶片106所能接受的格式。
在本發明另一範例實施例中,記憶體控制器104還包括緩衝記憶體2002。緩衝記憶體2002耦接至記憶體管理電路1046,用以暫存來自於主機系統1000的資料,或暫存來自於記憶體晶片106的資料。
在本發明另一範例實施例中,記憶體控制器104還包括錯誤校正電路2004。錯誤校正電路2004耦接至記憶體管理電路1046,用以執行一錯誤校正程序以確保資料的正確性。具體來說,當記憶體控制器104接收到來自主機系統1000的寫入指令時,錯誤校正電路2004會為對應此寫入指令的寫入資料產生相應的錯誤校正碼(Error Correcting Code,ECC),而此寫入資料與相應的錯誤校正碼將被一併寫入至記憶體晶片106。而當記憶體控制器104接收到來自主機系統1000的讀取指令時,則會從記憶體晶片106中讀取對應此讀取指令的資料及其錯誤校正碼。此時,錯誤校正電路2004會依據此錯誤校正碼對所讀取的資料執行錯誤校正程序。
在本發明另一範例實施例中,記憶體控制器104還包括電源管理電路2006。電源管理電路2006耦接至記憶體管理電路1046,用以控制記憶體儲存裝置100的電源。
圖4與圖5是根據本發明一範例實施例所繪示之管理記憶體晶片的範例示意圖。
必須說明的是,以下描述記憶體晶片106之實體區塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區塊是邏輯上的概念。亦即,記憶體晶片106之實體區塊的實際位置並未更動,而是邏輯上對記憶體晶片106的實體區塊進行操作。
請參照圖4,在本範例實施例中記憶體管理電路1046會將記憶體晶片106中的實體區塊206(0)~206(K)邏輯地分組為資料區402、備用區404、系統區406與取代區408。
邏輯上屬於資料區402與備用區404的實體區塊是用以儲存來自於主機系統1000的資料。具體來說,資料區402是已存有資料的實體區塊,而備用區404中的實體區塊則是用以替換資料區402的實體區塊。因此,備用區404的實體區塊為空或可使用的實體區塊(亦即,無記錄資料或標記為已沒用的無效資料)。也就是說,在備用區404中的實體區塊已被執行抹除運作,或者在備用區404中的實體區塊被提取用於儲存資料之前,所提取之實體區塊會被執行抹除運作。因此,備用區404的實體區塊為可被使用的實體區塊。
邏輯上屬於系統區406的實體區塊是用以記錄系統資料,此系統資料包括關於記憶體晶片106的製造商與型號、記憶體晶片106的實體區塊數,以及每一實體區塊之實體頁面數等。
邏輯上屬於取代區408中的實體區塊可稱之為替代實體區塊。例如,記憶體晶片106於出廠時會預留4%的實體區塊作為更換使用。當資料區402、備用區404與系統區406中的實體區塊損毀時,預留於取代區408中的實體區塊便能用來取代損壞的實體區塊。因此,倘若在發生實體區塊損毀時,取代區408中仍有正常之實體區塊,記憶體管理電路1046會從取代區408中提取正常的實體區塊來更換損毀的實體區塊。倘若在發生實體區塊損毀時取代區408中已無正常之實體區塊,記憶體管理電路1046會將記憶體儲存裝置100宣告為寫入保護(write protect)狀態,而無法再寫入資料。
請參照圖5,如上所述,資料區402與備用區404的實體區塊是以輪替方式來儲存主機系統1000所寫入之資料。在本範例實施例中,記憶體管理電路1046會配置多個邏輯區塊,各邏輯區塊分別包括多個邏輯位址。記憶體管理電路1046將上述邏輯位址提供給主機系統1000,以利主機系統1000在以上述輪替方式來儲存資料之實體區塊中進行資料存取。具體來說,記憶體管理電路1046會將提供給主機系統1000的邏輯位址分組為邏輯區塊510(0)~510(L),並且將邏輯區塊510(0)~510(L)映射至資料區402的實體區塊。記憶體管理電路1046會建立邏輯區塊-實體區塊映射表(logical block-physical block mapping table),以記錄邏輯區塊與實體區塊之間的映射關係。
然而,由於各種作業系統所設定的檔案屬性與權限並不相同,因此邏輯區塊510(0)~510(L)所包括的該些邏輯位址必須先以作業系統1200能支援的檔案系統(例如FAT32或FAT16)進行格式化後才能被作業系統1200所使用。
圖6是根據本發明一範例實施例所繪示之以檔案系統格式化記憶體晶片之邏輯位址的範例。如圖6所示,主機系統1000使用作業系統1200支援的檔案系統,將記憶體晶片106之邏輯區塊510(0)~510(L)所包括的該些邏輯位址格式化為一分割區600。分割區600包括主開機磁區602、分割開機磁區604、檔案配置表區606、目錄區608以及檔案區610。
其中,屬於主開機磁區602的儲存位址是用以儲存記憶體儲存裝置100的可儲存空間的系統資訊,例如主開機記錄(Master Boot Record,MBR)。而屬於分割開機磁區604的儲存位址則是用以儲存磁碟分割開機記錄。
屬於檔案配置表區606的儲存位址是用以儲存檔案配置表。檔案配置表是用來記錄儲存檔案之邏輯位址的叢集登錄值。在一範例實施例中,檔案配置表區606會儲存兩個檔案配置表,其中一個檔案配置表為正常存取所使用,而另一個檔案配置表為備份檔案配置表。
屬於目錄區608的儲存位址是用以儲存根目錄。根目錄係記錄記憶體儲存裝置100目前儲存之檔案與目錄的屬性資訊。而屬於檔案區610的儲存位址則是用以實際地儲存檔案的內容。
在本範例實施例中,主開機磁區602、分割開機磁區604、檔案配置表區606與目錄區608是以扇區(sector)作為存取單位。具體來說,磁碟的最小儲存單位為扇區,而每一個扇區包含了512位元組(byte)的資訊內容。但由於以扇區為單位來儲存時主機系統1000的效率會很差,因此主機系統1000的作業系統1200會以叢集(cluster)作為存取檔案的基本單位,而每一個叢集所包括的扇區數目必須是2的次方。假定連續的8個扇區構成一個叢集,那麼此叢集的大小就是4096位元組。換句話說,作業系統1200在存取資料時會以8個扇區連續讀取而提升了相對效率。
必需說明的是,在本範例實施例中雖然是將邏輯位址格式化為一個分割區600,但在其他範例實施例中,主機系統1000也可使用檔案系統將邏輯位址格式化為數個分割區。
每當主機系統1000的電源啟動時,記憶體管理電路1046在確認記憶體晶片106之邏輯區塊510(0)~510(L)所包括的邏輯位址已被格式化後,接著會判斷符合一預設檔案容量的填充檔案是否存在於記憶體晶片106。其中,預設檔案容量例如是20至100百萬位元組(Megabyte,MB),但本發明並不以此為限。
若填充檔案並不存在於記憶體晶片106,記憶體管理電路1046便會利用主機系統1000欲讀取磁碟分割開機記錄、檔案配置表以及根目錄等檔案系統資訊的時間來產生填充檔案。
詳細地說,在主機系統1000的電源啟動且記憶體管理電路1046判定記憶體晶片106已被格式化後,記憶體管理電路1046會讀取分割區600的磁碟分割開機記錄與根目錄,據以判斷符合預設檔案容量的填充檔案是否存在於記憶體晶片106。
若磁碟分割開機記錄與根目錄的內容顯示填充檔案並不存在,那麼在主機系統1000欲讀取檔案配置表時,記憶體管理電路1046除了從記憶體晶片106讀出檔案配置表之外,還會配置預設檔案容量所對應的扇區個數,並從檔案配置表的預定扇區開始,將符合扇區個數的數個扇區定義為特定扇區,並且將關於填充檔案的叢集登錄值填入至該些特定扇區。而針對檔案配置表區606所儲存的兩個檔案配置表,記憶體管理電路1046都將採取相同的動作。
具體而言,當主機系統1000使用不同的檔案系統進行格式化動作時,在對應之檔案配置表中用以記錄每個叢集登錄值的所需位元組也不相同。例如,以FAT32檔案系統進行格式化所建立的檔案配置表需要4個位元組來記錄一個叢集登錄值,而以FAT16檔案系統進行格式化所建立的檔案配置表則需要2個位元組來記錄一個叢集登錄值。在本範例實施例中預定扇區例如是檔案配置表的第一個扇區,由於檔案配置表的第一個扇區有部份位元組須保留下來記錄檔案配置表的相關資訊(例如檔案配置表的起始標誌),因此檔案配置表之第一個扇區可存放的叢集登錄值數量與其他每個扇區能存放的叢集登錄值數量不同。例如,在FAT32檔案系統下,檔案配置表的第一個扇區可存放125(即,(512-12)/4)個叢集登錄值,其餘每個扇區則分別可以存放128(即,512/4)個叢集登錄值。而在FAT16檔案系統下,檔案配置表的第一個扇區可存放254(即,(512-4)/2)個叢集登錄值,其餘每個扇區則分別可存放256(即,512/2)個叢集登錄值。
記憶體管理電路1046會依據預設檔案容量配置儲存填充檔案所需的叢集個數,並且根據叢集個數、檔案配置表之第一個扇區可存放叢集登錄值的數量,以及其他各扇區能分別存放叢集登錄值的數量來配置扇區個數。
在一範例實施例中,記憶體管理電路1046例如是以下列算式計算儲存填充檔案所需的叢集個數CN:
CN=(X*1024)/Y
其中,X為填充檔案的預設檔案容量(單位為MB),而Y則是一個叢集的大小,單位為Y千位元組(kilobyte,KB)。另外,記憶體管理電路1046例如會以下列算式來計算扇區個數SN:
其中,m表示檔案配置表之第一個扇區可存放叢集登錄值的數量,n表示其他各個扇區可分別存放叢集登錄值的數量。
在另一範例實施例中,記憶體管理電路1046可利用記錄有檔案容量與扇區個數之對應關係的對應表,根據填充檔案的預設檔案容量直接以查表的方式取得要配置的扇區個數SN。
在取得扇區個數SN後,記憶體管理電路1046將從檔案配置表的預定扇區開始,將符合於扇區個數SN的扇區定義為特定扇區。例如,當預定扇區為檔案配置表的第一個扇區時,檔案配置表的前SN個扇區便會被定義為特定扇區。而當預定扇區為檔案配置表的第M個扇區時,檔案配置表的第M至(M+SN-1)個扇區便會被定義為特定扇區。
接著,記憶體管理電路1046從檔案配置表的預定扇區開始填入關於填充檔案的叢集登錄值。在將關於填充檔案的所有叢集登錄值都填入上述特定扇區之後,記憶體管理電路1046判斷在上述特定扇區中是否具有剩餘空間。倘若特定扇區中還有剩餘空間,記憶體管理電路1046則會利用關於至少一預設檔的叢集登錄值來填滿剩餘空間。其中,預設檔可以是隱藏檔、刪除檔,或一般檔等等,在此並不加以限制。
舉例來說,假設主機系統1000是使用FAT32檔案系統來進行格式化動作以建立分割區600,其中每一個叢集的大小為32 KB,並假設填充檔案的預設檔案容量為20 MB。記憶體管理電路1046可透過查表的方式或使用上述算式取得用以儲存填充檔案的叢集個數CN為640,且對應的扇區個數SN為6。若預定扇區為檔案配置表的第一個扇區,檔案配置表的前6個扇區將被定義為特定扇區(如圖7A之扇區FATS(1)~FATS(6))。由於填充檔案對應的叢集個數CN為640,在第一個特定扇區FATS(1)中除了填入檔案配置表的相關資訊(在圖7A中以直線標示)外,其餘空間用以填入關於填充檔案的125個叢集登錄值(在圖7A中以斜線標示),特定扇區FATS(2)~FATS(5)則個別填入關於填充檔案的128個叢集登錄值,最後一個特定扇區FATS(6)用以填入關於填充檔案的最後3個叢集登錄值。由於特定扇區FATS(6)還具有剩餘空間,因此記憶體管理電路1046會利用關於預設檔的叢集登錄值(在圖7A中以網點標示)將剩餘空間填滿。
倘若預定扇區為檔案配置表的第M個扇區,如圖7B所示,扇區FATS(M)~FATS(M+5)會被定義為特定扇區。其中,第一個特定扇區FATS(M)用以填入識別資訊(例如填充檔案的起始標誌,在圖7B中以直線標示)以及關於填充檔案的叢集登錄值(在圖7B中以斜線標示)。特定扇區FATS(M+1)~FATS(M+4)繼續填入關於填充檔案的叢集登錄值,而最後一個特定扇區FATS(M+5)除了填入關於填充檔案的叢集登錄值外,剩餘空間則會填入預設檔的叢集登錄值(在圖7B中以網點標示)。
既然特定扇區是用以記錄與填充檔案相關的叢集登錄值,因此需要避免主機系統1000任意刪除或修改這些位址所記錄的內容。是故,記憶體管理電路1046會先將所有特定扇區對應的邏輯位址設定為寫入保護狀態,接著再將檔案配置表傳送至主機系統1000。
而在主機系統1000欲讀取根目錄時,記憶體管理電路1046在從記憶體晶片106讀出根目錄之後,會將填充檔案的填充檔案標頭填入至根目錄的預定扇區(例如第一個扇區)。
在一範例實施例中,倘若記憶體管理電路1046判斷在將填充檔案標頭填入至根目錄的預定扇區後,根目錄的預定扇區仍具有剩餘空間(即,填充檔案標頭無法填滿根目錄的預定扇區),那麼記憶體管理電路1046會利用至少一預設檔標頭填滿根目錄的預定扇區。其中,預設檔標頭的數量係對應填充檔案的檔名格式、各預設檔標頭所對應之預設檔(例如是隱藏檔、刪除檔,或一般檔)的檔名格式,以及扇區容量。
舉例來說,所對應之檔名格式為短檔名的檔案標頭在根目錄中會佔據32位元組的空間。假設在本範例實施例中預定扇區為根目錄的第一個扇區且填充檔案的檔名格式為短檔名,記憶體管理電路1046在將填充檔案標頭填入根目錄的第一個扇區後,由於根目錄的第一個扇區仍有剩餘空間,因此記憶體管理電路1046還會利用所對應之預設檔檔名格式為短檔名的15個預設檔標頭來填滿根目錄之第一個扇區剩下的480(512-32)位元組(如圖8A所示之根目錄的第一個扇區RDS(1)所示),或者利用所對應之預設檔檔名格式為長檔名的1個預設檔標頭來填滿根目錄之第一個扇區剩下的480位元組(如圖8B所示之根目錄的第一個扇區RDS(1)所示)。類似地,倘若填充檔案的檔名格式的長檔名,記憶體管理電路1046除了將填充檔案標頭填入根目錄的第一個扇區之外,當根目錄的第一個扇區還有剩餘空間時,記憶體管理電路1046亦會利用預設檔標頭來填滿根目錄的第一個扇區。
同樣地,為了避免主機系統1000將其他資料寫入根目錄的預定扇區,記憶體管理電路1046會將根目錄之預定扇區對應的邏輯位址設定為寫入保護狀態,接著再將根目錄傳送至主機系統1000。
另外必須說明的是,在FAT32檔案系統之下,磁碟分割開機記錄具有一剩餘空間欄位。因此若主機系統1000是使用FAT32檔案系統來進行格式化動作以建立出分割區600,那麼在記憶體管理電路1046判斷填充檔案不存在的情況下,當主機系統1000欲讀取磁碟分割開機記錄時,記憶體管理電路1046會從記憶體晶片106讀出磁碟分割開機記錄,並將記憶體晶片106的總容量與預設檔案容量之間的差值寫入該剩餘空間欄位,接著再將磁碟分割開機記錄回傳至主機系統1000。然由於在FAT16檔案系統下磁碟分割開機記錄並無上述剩餘空間欄位,因此若主機系統1000是使用FAT16檔案系統以建立出分割區600,記憶體管理電路1046在從記憶體晶片106讀出磁碟分割開機記錄後,便會直接將磁碟分割開機記錄回傳至主機系統1000。
在另一範例實施例中,主機系統1000的電源啟動時,若記憶體管理電路1046確認記憶體晶片106之邏輯區塊510(0)~510(L)所包括的邏輯位址已被格式化,且符合預設檔案容量的填充檔案已存在於記憶體晶片106。那麼,在主機系統1000欲讀取檔案配置表時,記憶體管理電路1046會將檔案配置表中特定扇區對應的邏輯位址設定為寫入保護狀態,再將檔案配置表傳送至主機系統1000。另外在主機系統1000欲讀取根目錄時,記憶體管理電路1046會將根目錄之預定扇區對應的邏輯位址設定為寫入保護狀態,接著再將根目錄傳送至主機系統1000。
主機系統1000為了使用記憶體儲存裝置100,在電源啟動之後必定需要去讀取記憶體儲存裝置100之檔案系統的相關資訊,因此在記憶體晶片106已被格式化且填充檔案不存在的情況下,記憶體管理電路1046會利用主機系統1000分別讀取各種檔案系統資訊的時間,將關於填充檔案的資訊個別加入磁碟分割開機記錄、檔案配置表以及根目錄。如此一來,記憶體管理電路1046將不需要額外的執行時間就可自動產生填充檔案,且無論記憶體晶片106是被何種檔案系統格式化,記憶體管理電路1046都能對應地產生填充檔案。另外在記憶體晶片106已被格式化且填充檔案也存在的情況下,記憶體管理電路1046會將儲存填充檔案的相關位址設為寫入保護狀態來避免主機系統1000任意更改其內容。由於填充檔案是由記憶體管理電路1046自動產生,因此記憶體管理電路1046能快速取得填充檔案的儲存位址範圍。也正因如此,在主機系統1000讀取完檔案系統的資訊後,記憶體儲存裝置100便能與主機系統1000同步。
在又一範例實施例中,在主機系統1000的電源啟動時,倘若記憶體管理電路1046判定記憶體晶片106的邏輯位址尚未被格式化,記憶體管理電路1046則會等待主機系統1000開始執行格式化動作,並且在主機系統1000完成格式化動作之後,再依照記憶體晶片106已被格式化但填充檔案並不存在的情況來自動產生填充檔案。
換句話說,本範例實施例之記憶體管理電路1046具備判斷主機系統1000是否開始執行格式化動作,以及判斷格式化動作是否執行完畢的能力。記憶體管理電路1046例如可藉由下列幾種方式來判斷主機系統1000是否開始執行格式化動作。
在一範例實施例中,記憶體晶片106中的一分割資訊記錄位址係用以記錄與分割區有關的資料。因此當主機系統1000欲將一寫入資料寫入該分割資訊記錄位址時,記憶體管理電路1046會檢查寫入資料與分割資訊記錄位址所儲存的現有資料是否相同。若寫入資料不同於現有資料,表示主機系統1000想要改變檔案系統,因此記憶體管理電路1046判定主機系統1000開始執行格式化動作。
在另一範例實施例中,無論主機系統1000欲寫入的資料與磁碟分割開機記錄原本記錄的內容是否相同,一旦主機系統1000想要更新磁碟分割開機記錄的內容,都表示主機系統1000有可能要開始執行格式化動作。但也因為主機系統1000在執行如刪除記憶體單元106中的檔案或將檔案寫入記憶體單元106等檔案變更動作時,亦會去更新磁碟分割開機記錄,基此,記憶體管理電路1046必須進一步區別主機系統1000的行為是要進行格式化動作或檔案變更動作。
在本範例實施例中,磁碟分割開機記錄具有一特定位元組位址,而記憶體管理電路1046會根據主機系統1000在更新磁碟分割開機記錄的前後分別寫入該特定位元組位址的資料內容來判斷主機系統1000是否要執行檔案變更動作。若主機系統1000並非執行檔案變更動作,記憶體管理電路1046則判定主機系統1000準備開始執行格式化動作。
詳細地說,隨著檔案系統的不同,磁碟分割開機記錄之特定位元組位址也不相同。例如,在FAT16檔案系統下,特定位元組位址為0x25,而在FAT32檔案系統下,特定位元組位址則是0x51。以FAT16檔案系統為例,每當主機系統1000要執行檔案變更動作時,會先把0x25這個位址的值設定為1,並且在完成檔案的刪除或寫入等變更動作之後,將0x25這個位址的值更改為0。基此,根據主機系統1000先後寫入特定位元組位址的資料內容,記憶體管理電路1046便可判斷主機系統1000是單純要變更檔案或是要執行格式化動作。
在又一範例實施例中,假設記憶體晶片106已被主機系統1000使用FAT32檔案系統來格式化,由於在此檔案系統下磁碟分割開機記錄具有一剩餘空間欄位,因此在主機系統1000欲更新磁碟分割開機記錄的內容時,倘若剩餘空間欄位所記錄的剩餘容量小於記憶體晶片106之總容量與預設檔案容量之間的差值,記憶體管理電路1046便判定主機系統1000開始執行格式化動作。
在記憶體管理電路1046判定主機系統1000要開始執行格式化動作時,記憶體管理電路1046會檢查檔案配置表與根目錄是否存在。若檔案配置表與根目錄存在,表示記憶體晶片106已被格式化。由於記憶體管理電路1046會自動產生填充檔案,且在產生填充檔案之後,記憶體管理電路1046會將檔案配置表與根目錄中的部份邏輯位址設定為寫入保護狀態。為使格式化動作成功地進行,記憶體管理電路1046會將檔案配置表與根目錄對應的所有邏輯位址設定為可寫入狀態,以利主機系統1000接著執行格式化動作。
基本上,主機系統1000在執行格式化動作的過程中,會針對同樣的位址進行寫入、讀取,以及比較的操作。例如,主機系統100在寫完檔案配置表後,會重新讀出檔案配置表並進行比較,因此記憶體管理電路1046可依據主機系統1000的上述行為來判斷格式化動作是否執行完畢。
詳細地說,在主機系統1000欲寫入一邏輯位址時,記憶體管理電路1046會將該邏輯位址記錄下來。待主機系統完成該邏輯位址的寫入動作並接著執行一讀取動作時,記憶體管理電路1046會判斷讀取動作所對應的邏輯位址與先前寫入動作的邏輯位址是否相同。若兩者相同,表示主機系統1000接下來要進行比較,也代表格式化動作尚未結束。因此當主機系統1000連續讀取兩個不同的邏輯位址,或主機系統1000讀取的邏輯位址不同於前次寫入的邏輯位址時,記憶體管理電路1046便判定格式化動作執行完畢。
當格式化動作執行完畢後,記憶體管理電路1046會開始自動產生填充檔案。由於在此情況下記憶體管理電路1046產生填充檔案的方式與主機系統1000的電源啟動後,記憶體管理電路1046判斷記憶體晶片106已被格式化但填充檔案不存在時去產生填充檔案的方法相同或相似,故在此不再贅述。
無論主機系統1000在什麼時間點準備進行格式化動作,記憶體管理電路1046都能透過上述方式偵測格式化動作的開始與結束,並且在主機系統1000完成格式化動作之後自動產生填充檔案。
在一範例實施例中,使用者可藉由下達一特殊指令來設定填充檔案的預設檔案容量。待主機系統1000重新格式化記憶體晶片106之邏輯區塊510(0)~510(L)所包括的該些邏輯位址格式後,記憶體管理電路1046便會自動去產生符合使用者更新之預設檔案容量的填充檔案。
圖9是根據本發明一範例實施例所繪示之自動產生填充檔案的方法的流程圖。
請參閱圖9,如步驟S910所示,記憶體管理電路1046將實體區塊206(0)~206(K)分組為資料區402、備用區404、系統區406與取代區408。並在步驟S920中,記憶體管理電路1046配置多個邏輯位址並將邏輯位址分組為多個邏輯區塊510(0)~510(L)以映射資料區402的實體區塊。
如步驟S930所示,在主機系統1000的電源啟動時,記憶體管理電路1046判斷邏輯位址是否被格式化為一分割區。
若是,則如步驟S940所示,記憶體管理電路1046讀取分割區所包括的磁碟分割開機記錄與根目錄來判斷符合預設檔案容量的填充檔案是否存在。
在填充檔案不存在時,如步驟S950所示,記憶體管理電路1046在主機系統1000欲讀取檔案配置表時,將關於填充檔案的叢集登錄值填入至檔案配置表中的數個特定扇區。倘若填充檔案的叢集登錄值無法填滿上述特定扇區,則再利用至少一預設檔的叢集登錄值將特定扇區填滿(如圖7所示)。記憶體管理電路1046在將上述特定扇區對應的邏輯位址設定為寫入保護狀態後,將檔案配置表傳送至主機系統1000。
並且在步驟S960中,在主機系統1000欲讀取根目錄時,記憶體管理電路1046將填充檔案的填充檔案標頭填入至根目錄的預定扇區。其中,當填充檔案的填充檔案標頭無法填滿根目錄的預定扇區時,記憶體管理電路1046會利用至少一預設檔標頭將根目錄的預定扇區填滿(如圖8A、8B所示)。在將根目錄的預定扇區所對應的邏輯位址設定為寫入保護狀態後,將根目錄傳送至主機系統1000。
另外在記憶體管理電路1046判斷填充檔案存在的情況下,如步驟S970所示,記憶體管理電路1046在主機系統1000欲讀取檔案配置表時,將特定扇區對應的邏輯位址設定為寫入保護狀態,並將檔案配置表傳送至主機系統1000,以及在主機系統1000欲讀取根目錄時,將根目錄的預定扇區對應的邏輯位址設定為寫入保護狀態,接著再將根目錄傳送至主機系統1000。
倘若記憶體管理電路1046在步驟S930中判定邏輯位址尚未被格式化,接著如步驟S980所示,記憶體管理電路1046持續判斷主機系統1000是否開始執行一格式化動作。待判定主機系統1000開始執行格式化動作後,記憶體管理電路1046如步驟S990所示,持續判斷格式化動作是否執行完畢。
在記憶體管理電路1046判定格式化動作執行完畢後,接著如步驟S950、S960所示,記憶體管理電路1046在主機系統1000分別讀取檔案配置表及根目錄時,將關於填充檔案的資料填入檔案配置表與根目錄。
在本發明的一範例實施例中,在主機系統1000的電源啟動時,記憶體控制器104便會將符合預設檔案容量之填充檔案的對應資料配置至記憶體晶片106所儲存的檔案系統之中,並在將填充檔案設定為寫入保護狀態後,將檔案系統之檔案配置表傳送至主機系統1000。詳細地說,記憶體控制器104首先判斷填充檔案是否存在於記憶體晶片106的檔案系統。若填充檔案不存在,才將填充檔案的對應資料配置至檔案系統之中。由於填充檔案是用以佔據主機系統1000的快取空間,因而確保主機系統1000在執行資料讀取的動作時,能從記憶體晶片106讀出所需資料。
綜上所述,本發明所述之記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法是在不影響主機系統之正常操作的前提下,由記憶體儲存裝置自動產生大容量的填充檔案以填滿主機系統之隨機存取記憶體中的快取空間,進而確保具有預讀機制的主機系統在每次執行讀取動作時都能從記憶體儲存裝置讀出資料。由於記憶體儲存裝置是利用主機系統讀取檔案系統之資訊的時間來產生填充檔案,因而不會增加額外的執行時間,也正因填充檔案是由記憶體儲存裝置本身來產生,記憶體儲存裝置能快速得知填充檔案的儲存位址範圍,進而加快主機系統執行寫入動作的速度。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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...記憶體晶片
206(0)、206(1)、206(D)、206(D+1)、206(D+2)、206(N)、206(N+1)、206(N+2)、206(S)、206(S+1)、206(S+2)、206(K)...實體區塊
1042...主機介面
1046...記憶體管理電路
1048...記憶體介面
2002...緩衝記憶體
2004...錯誤校正電路
2006...電源管理電路
402...資料區
404...備用區
406...系統區
408...取代區
510(0)、510(1)、510(L)...邏輯區塊
600...分割區
602...主開機磁區
604...分割開機磁區
606...檔案配置表區
608...目錄區
610...檔案區
FATS(1)、FATS(2)、FATS(3)、FATS(4)、FATS(5)、FATS(6)、FATS(F)、FATS(M)、FATS(M+1)、FATS(M+2)、FATS(M+3)、FATS(M+4)、FATS(M+5)、RDS(1)...扇區
S910~S990...本發明之一範例實施例所述之自動產生填充檔案的方法之各步驟
圖1A是根據本發明一範例實施例繪示之使用記憶體儲存裝置的主機系統的示意圖。
圖1B是根據本發明範例實施例所繪示的電腦、輸入/輸出裝置與記憶體儲存裝置的示意圖。
圖1C是根據本發明另一範例實施例所繪示的主機系統與記憶體儲存裝置的示意圖。
圖2是繪示圖1A所示的記憶體儲存裝置的概要方塊圖。
圖3是根據本發明一範例實施例所繪示的記憶體控制器的概要方塊圖。
圖4、圖5是根據本發明一範例實施例所繪示之管理記憶體晶片的範例示意圖。
圖6是根據本發明一範例實施例所繪示之以檔案系統格式化記憶體晶片之邏輯位址的範例。
圖7A、7B是根據本發明一範例實施例所繪示之利用關於填充檔案與至少一預設檔的叢集登錄值填滿檔案配置表之特定扇區的示意圖。
圖8A、8B是根據本發明一範例實施例所繪示之利用填充檔案的填充檔案標頭以及至少一預設檔標頭來填滿根目錄之第一個扇區的示意圖。
圖9是根據本發明一範例實施例所繪示之自動產生填充檔案的方法的流程圖。
S910~S990...本發明之一範例實施例所述之自動產生填充檔案的方法的各步驟
Claims (21)
- 一種自動產生填充檔案的方法,用於耦接至一主機系統的一記憶體儲存裝置,該記憶體儲存裝置包括一記憶體晶片且該記憶體晶片具有多個實體區塊,該方法包括:將該些實體區塊至少分組為一資料區、一備用區與一系統區;配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊;在該主機系統的電源啟動時,若該些邏輯位址已使用一檔案系統且至少被格式化為一分割區,且該分割區包括一磁碟分割開機記錄、一檔案配置表以及一根目錄,則讀取該磁碟分割開機記錄與該根目錄,以判斷符合一預設檔案容量的一填充檔案是否存在於該記憶體晶片;若該填充檔案不存在,則在該主機系統欲讀取該檔案配置表時,配置該預設檔案容量對應的一扇區個數,從該檔案配置表的一預定扇區開始定義符合該扇區個數的多個特定扇區,將關於該填充檔案的叢集登錄值填入至該些特定扇區,並在將該些特定扇區對應的邏輯位址設定為一寫入保護狀態後,傳送該檔案配置表至該主機系統;以及在該主機系統欲讀取該根目錄時,將該填充檔案的一填充檔案標頭填入至該根目錄的該預定扇區,並在將該根目錄之該預定扇區對應的邏輯位址設定為該寫入保護狀態後,傳送該根目錄至該主機系統。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,其中該磁碟分割開機記錄具有一剩餘空間欄位,該方法更包括:若該填充檔案不存在,則在該主機系統欲讀取該磁碟分割開機記錄時,將該記憶體晶片的一總容量與該預設檔案容量的一差值寫入該剩餘空間欄位;以及傳送該磁碟分割開機記錄至該主機系統。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,其中該檔案配置表的該預定扇區用以存放一第一數量的叢集登錄值,且該檔案配置表的其他扇區分別用以存放一第二數量的叢集登錄值,而配置該預設檔案容量對應的該扇區個數的步驟包括:依據該預設檔案容量配置儲存該填充檔案所需的一叢集個數;以及根據該叢集個數、該第一數量與該第二數量配置該扇區個數。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,其中將關於該填充檔案的叢集登錄值填入至該些特定扇區的步驟更包括:在將關於該填充檔案的叢集登錄值填入該些特定扇區後,判斷該些特定扇區是否具有一剩餘空間;以及若是,則利用關於至少一預設檔的叢集登錄值填滿該剩餘空間。
- 如申請專利範圍第4項所述之自動產生填充檔案的方法,其中各該至少一預設檔為一隱藏檔、一刪除檔,以及一一般檔其中之一。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,其中將該填充檔案標頭填入至該根目錄的該預定扇區的步驟更包括:在將該填充檔案標頭填入至該根目錄的該預定扇區後,判斷該根目錄的該預定扇區是否具有一剩餘空間;以及若是,則利用至少一預設檔標頭填滿該根目錄的該預定扇區。
- 如申請專利範圍第6項所述之自動產生填充檔案的方法,其中該至少一預設檔標頭的數量係對應該填充檔案的一檔名格式、各該至少一預設檔標頭所對應之預設檔的該檔名格式,以及一扇區容量。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,其中該預定扇區為第一個扇區。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,其中在讀取該磁碟分割開機記錄與該根目錄,以判斷該填充檔案是否存在於該記憶體晶片的步驟之後,該方法更包括:若該填充檔案存在,則在該主機系統欲讀取該檔案配置表時,將該些特定扇區對應的邏輯位址設定為該寫入保護狀態,並傳送該檔案配置表至該主機系統;以及在該主機系統欲讀取該根目錄時,將該根目錄之該預定扇區對應的邏輯位址設定為該寫入保護狀態,並傳送該根目錄至該主機系統。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,更包括:判斷該主機系統是否開始執行一格式化動作;若是,判斷該格式化動作是否執行完畢;當該格式化動作執行完畢後,在該主機系統欲讀取該檔案配置表時,配置該預設檔案容量對應的該扇區個數,從該檔案配置表的該預定扇區開始定義符合該扇區個數的該些特定扇區,將關於該填充檔案的叢集登錄值填入至該些特定扇區,並在將該些特定扇區對應的邏輯位址設定為該寫入保護狀態後,傳送該檔案配置表至該主機系統;以及在該主機系統欲讀取該根目錄時,將該填充檔案的該填充檔案標頭填入至該根目錄的該預定扇區,並在將該根目錄之該預定扇區對應的邏輯位址設定為該寫入保護狀態後,傳送該根目錄至該主機系統。
- 如申請專利範圍第10項所述之自動產生填充檔案的方法,其中判斷該主機系統是否開始執行該格式化動作的步驟包括:當該主機系統欲將一寫入資料寫入至一分割資訊記錄位址時,檢查該寫入資料與該分割資訊記錄位址所儲存的一現有資料是否相同;以及若該寫入資料不同於該現有資料,則判定該主機系統開始執行該格式化動作。
- 如申請專利範圍第10項所述之自動產生填充檔案的方法,其中判斷該主機系統是否開始執行該格式化動作的步驟包括:在該主機系統欲更新該磁碟分割開機記錄的內容時,根據該主機系統在更新前後分別寫入該磁碟分割開機記錄中一特定位元組位址的資料內容判斷該主機系統是否執行一檔案變更動作;以及若該主機系統並非執行該檔案變更動作,則判定該主機系統開始執行該格式化動作。
- 如申請專利範圍第10項所述之自動產生填充檔案的方法,其中該磁碟分割開機記錄具有一剩餘空間欄位,而判斷該主機系統是否開始執行該格式化動作的步驟包括:在該主機系統欲更新該磁碟分割開機記錄的內容時,若該剩餘空間欄位所記錄的一剩餘容量小於該記憶體晶片的一總容量與該預設檔案容量的一差值,則判定該主機系統開始執行該格式化動作。
- 如申請專利範圍第10項所述之自動產生填充檔案的方法,其中在判斷該主機系統是否開始執行該格式化動作的步驟之後,該方法更包括:若是,檢查該檔案配置表與該根目錄是否存在;以及若是,將該檔案配置表與該根目錄對應的所有邏輯位址設定為一可寫入狀態。
- 如申請專利範圍第10項所述之自動產生填充檔案的方法,其中判斷該格式化動作是否執行完畢的步驟包括:當該主機系統連續讀取兩個不同的邏輯位址,或該主機系統讀取的邏輯位址不同於上一次寫入的邏輯位址時,判定該格式化動作執行完畢。
- 如申請專利範圍第1項所述之自動產生填充檔案的方法,更包括:在該主機系統的電源啟動時,若該些邏輯位址未被格式化,則判斷該主機系統是否開始執行一格式化動作;若是,判斷該格式化動作是否執行完畢;當該格式化動作執行完畢後,在該主機系統欲讀取該檔案配置表時,配置該預設檔案容量對應的該扇區個數,從該檔案配置表的該預定扇區開始定義符合該扇區個數的該些特定扇區,將關於該填充檔案的叢集登錄值填入至該些特定扇區,並在將該些特定扇區對應的邏輯位址設定為該寫入保護狀態後,傳送該檔案配置表至該主機系統;以及在該主機系統欲讀取該根目錄時,將該填充檔案的該填充檔案標頭填入至該根目錄的該預定扇區,並在將該根目錄之該預定扇區對應的邏輯位址設定為該寫入保護狀態後,傳送該根目錄至該主機系統。
- 一種記憶體控制器,用於管理一記憶體儲存裝置中一記憶體晶片的多個實體區塊,該記憶體控制器包括:一主機系統介面,用以耦接一主機系統;一記憶體介面,用以耦接該記憶體晶片;以及一記憶體管理電路,耦接至該主機系統介面與該記憶體介面,其中該記憶體管理電路用以將該些實體區塊至少分組為一資料區、一備用區與一系統區,配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊,在該主機系統的電源啟動時,若該些邏輯位址已依照一檔案系統且至少被格式化為一分割區,且該分割區包括一磁碟分割開機記錄、一檔案配置表以及一根目錄,該記憶體管理電路更用以讀取該磁碟分割開機記錄與該根目錄,以判斷符合一預設檔案容量的一填充檔案是否存在於該記憶體晶片,若該填充檔案不存在,該記憶體管理電路用以在該主機系統欲讀取該檔案配置表時,配置該預設檔案容量對應的一扇區個數,從該檔案配置表的一預定扇區開始定義符合該扇區個數的多個特定扇區,將關於該填充檔案的叢集登錄值填入至該些特定扇區,並在將該些特定扇區對應的邏輯位址設定為一寫入保護狀態後,傳送該檔案配置表至該主機系統,並且在該主機系統欲讀取該根目錄時,將該填充檔案的一填充檔案標頭填入至該根目錄的該預定扇區,並在將該根目錄之該預定扇區對應的邏輯位址設定為該寫入保護狀態後,傳送該根目錄至該主機系統。
- 一種記憶體儲存裝置,包括:一記憶體晶片,具有多個實體區塊;一連接器,用以耦接一主機系統;以及一記憶體控制器,耦接至該記憶體晶片與該連接器,該記憶體控制器用以將該些實體區塊至少分組為一資料區、一備用區與一系統區,配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊,在該主機系統的電源啟動時,若該些邏輯位址已依照一檔案系統且至少被格式化為一分割區,且該分割區包括一磁碟分割開機記錄、一檔案配置表以及一根目錄,則該記憶體控制器用以讀取該磁碟分割開機記錄與該根目錄,以判斷符合一預設檔案容量的一填充檔案是否存在於該記憶體晶片,若該填充檔案不存在,該記憶體控制器用以在該主機系統欲讀取該檔案配置表時,配置該預設檔案容量對應的一扇區個數,從該檔案配置表的一預定扇區開始定義符合該扇區個數的多個特定扇區,將關於該填充檔案的叢集登錄值填入至該些特定扇區,並在將該些特定扇區對應的邏輯位址設定為一寫入保護狀態後,傳送該檔案配置表至該主機系統,並且在該主機系統欲讀取該根目錄時,將該填充檔案的一填充檔案標頭填入至該根目錄的該預定扇區,並在將該根目錄之該預定扇區對應的邏輯位址設定為該寫入保護狀態後,傳送該根目錄至該主機系統。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中該磁碟分割開機記錄具有一剩餘空間欄位,當該記憶體控制器判斷該填充檔案不存在,該記憶體控制器更用以在該主機系統欲讀取該磁碟分割開機記錄時,將該記憶體晶片的一總容量與該預設檔案容量的一差值寫入該剩餘空間欄位,並傳送該磁碟分割開機記錄至該主機系統。
- 如申請專利範圍第18項所述之記憶體儲存裝置,其中該檔案配置表的該預定扇區用以存放一第一數量的叢集登錄值,且該檔案配置表的其他扇區分別用以存放一第二數量的叢集登錄值,而該記憶體控制器更用以依據該預設檔案容量配置儲存該填充檔案所需的一叢集個數,並且根據該叢集個數、該第一數量與該第二數量配置該扇區個數。
- 一種記憶體儲存裝置,包括:一記憶體晶片,具有多個實體區塊;一連接器,用以耦接一主機系統;以及一記憶體控制器,耦接至該記憶體晶片與該連接器,該記憶體控制器用於管理該記憶體晶片的該些實體區塊,其中該記憶體控制器用以將該些實體區塊至少分組為一資料區、一備用區與一系統區,配置多個邏輯位址並且將該些邏輯位址分組為多個邏輯區塊以映射該資料區的實體區塊,在該主機系統的電源啟動時,該記憶體控制器用以配置一預設檔案容量的一填充檔案的一對應資料至儲存於該記憶體晶片之一檔案系統,並在將該填充檔案設定為一寫入保護狀態後,傳送該檔案系統之一檔案配置表至該主機系統,其中,該填充檔案是用以佔據該主機系統的一快取空間,以使主機系統從該記憶體晶片讀出所需資料。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW099134409A TWI420305B (zh) | 2010-10-08 | 2010-10-08 | 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 |
| US12/960,563 US8707007B2 (en) | 2010-10-08 | 2010-12-06 | Memory storage device, memory controller thereof, and method for automatically creating fill-file thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW099134409A TWI420305B (zh) | 2010-10-08 | 2010-10-08 | 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201216054A TW201216054A (en) | 2012-04-16 |
| TWI420305B true TWI420305B (zh) | 2013-12-21 |
Family
ID=45926030
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW099134409A TWI420305B (zh) | 2010-10-08 | 2010-10-08 | 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8707007B2 (zh) |
| TW (1) | TWI420305B (zh) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2954572B1 (fr) * | 2009-12-23 | 2020-04-17 | Thales | Procede de gestion de donnees tournantes. |
| FR2954538B1 (fr) * | 2009-12-23 | 2020-04-17 | Thales | Securisation de l'effacement d'une memoire de type flashprom. |
| TWI435219B (zh) * | 2010-07-29 | 2014-04-21 | Phison Electronics Corp | 資料保護方法、記憶體控制器及可攜式記憶體儲存裝置 |
| TWI467364B (zh) * | 2011-07-12 | 2015-01-01 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與資料寫入方法 |
| TWI492051B (zh) * | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
| TWI459202B (zh) * | 2012-12-05 | 2014-11-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
| CN103870408B (zh) * | 2012-12-18 | 2017-06-06 | 群联电子股份有限公司 | 数据处理方法、存储器控制器与存储器储存装置 |
| KR20170012629A (ko) * | 2015-07-21 | 2017-02-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US10140055B2 (en) * | 2015-12-21 | 2018-11-27 | Memory Technologies Llc | Ensuring that memory device actions are valid using reference values |
| KR20170089069A (ko) * | 2016-01-25 | 2017-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
| TWI631461B (zh) * | 2017-06-27 | 2018-08-01 | 晨星半導體股份有限公司 | 行車記錄器之儲存裝置的控制方法與儲存裝置控制系統 |
| CN109308267B (zh) * | 2017-07-28 | 2021-12-03 | 星宸科技股份有限公司 | 行车记录器的储存装置的控制方法与储存装置控制系统 |
| CN109597793B (zh) * | 2018-12-04 | 2023-02-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种提升文件系统io性能的方法 |
| CN110321740B (zh) * | 2019-05-15 | 2023-06-30 | 深圳市江波龙电子股份有限公司 | 一种存储设备的数据操作方法以及存储设备 |
| CN112650448B (zh) * | 2020-12-21 | 2024-04-05 | 中国航天科工集团八五一一研究所 | 一种基于fpga的大数据量存储文件管理方法 |
| CN116166199B (zh) * | 2023-03-17 | 2023-08-08 | 哈尔滨市科佳通用机电股份有限公司 | 机车信号记录数据的存储容量自适应调整方法及设备 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6459644B2 (en) * | 2000-06-06 | 2002-10-01 | Hitachi, Ltd. | Semiconductor memory device with block alignment function |
| US7039754B2 (en) * | 2002-04-15 | 2006-05-02 | Sony Corporation | Detachably mounted removable data storage device |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7398348B2 (en) * | 2004-08-24 | 2008-07-08 | Sandisk 3D Llc | Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory |
| US7457910B2 (en) * | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
-
2010
- 2010-10-08 TW TW099134409A patent/TWI420305B/zh active
- 2010-12-06 US US12/960,563 patent/US8707007B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6459644B2 (en) * | 2000-06-06 | 2002-10-01 | Hitachi, Ltd. | Semiconductor memory device with block alignment function |
| US7039754B2 (en) * | 2002-04-15 | 2006-05-02 | Sony Corporation | Detachably mounted removable data storage device |
Also Published As
| Publication number | Publication date |
|---|---|
| US8707007B2 (en) | 2014-04-22 |
| TW201216054A (en) | 2012-04-16 |
| US20120089805A1 (en) | 2012-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI420305B (zh) | 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 | |
| US12461851B2 (en) | Memory system, data storage device, user device and data management method thereof | |
| TWI425355B (zh) | 資料存取方法、記憶體控制器與儲存系統 | |
| JP4238514B2 (ja) | データ記憶装置 | |
| US8122193B2 (en) | Storage device and user device including the same | |
| US7039754B2 (en) | Detachably mounted removable data storage device | |
| US8230160B2 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
| CN103377143B (zh) | 存储器管理方法、存储器控制器与存储器存储装置 | |
| TWI463313B (zh) | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
| TWI450099B (zh) | 模擬可覆寫光碟裝置的儲存系統、控制器、電腦系統及方法 | |
| US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
| US20140059273A1 (en) | Host apparatus and memory device | |
| TWI451439B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
| TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
| US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
| KR101893897B1 (ko) | 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법 | |
| KR101747791B1 (ko) | 메모리 시스템 및 데이터 저장 장치 그리고 그것의 데이터 관리 방법 | |
| CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
| CN103389941B (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 | |
| CN102455879B (zh) | 存储器存储装置、存储器控制器与自动产生填充文件方法 | |
| CN103578566B (zh) | 存储器存储装置及其修复方法 | |
| TWI493341B (zh) | 記憶體儲存裝置及其修復方法 | |
| TWI498731B (zh) | 非揮發性記憶體儲存系統 | |
| JP2012068853A (ja) | 情報処理装置、及び情報処理方法 |