欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數據存取方法、使用此方法的存儲系統(tǒng)及其控制器的制作方法

文檔序號:6465370閱讀:126來源:國知局

專利名稱::數據存取方法、使用此方法的存儲系統(tǒng)及其控制器的制作方法
技術領域
:本發(fā)明涉及一種數據存取方法,且特別涉及一種能夠避免主機讀取到亂碼的數據存取方法以及使用此方法的快閃存儲系統(tǒng)與其控制器。
背景技術
:數字相機、手機相機與MP3在這幾年來的成長十分迅速,使得消費者對存儲介質的需求也急速增加。由于快閃存儲器(FlashMemory)具有數據非揮發(fā)性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用于這類可攜式由電池供電的產品上。存儲卡就是一種以反及(NAND)快閃存儲器作為存儲介質的存儲裝置。由于存儲卡體積小容量大且攜帶方便,所以已廣泛用于個人重要數據的存儲。因此,近年快閃存儲器產業(yè)成為電子產業(yè)中相當熱門的一環(huán)。傳統(tǒng)上,在快閃存儲系統(tǒng)中控制器所執(zhí)行的固件代碼以控制器內的可程序只讀存儲器來存儲,并且于快閃存儲系統(tǒng)運作時載入至控制器內的靜態(tài)隨機存取存儲器來執(zhí)行。為了能夠縮小存儲裝置的尺寸且能夠更方便更新/修改固件代碼,已發(fā)展出將固件代碼直接存儲在快閃存儲系統(tǒng)的快閃存儲器內且于控制器欲運作時再載入至控制器的技術。在此架構中,一般會實作一數據擾亂模塊(或編碼模塊)并且在數據傳送給快閃存儲器之前將數據編碼成亂碼再傳送至快閃存儲器,且在從快閃存儲器中讀取數據后進行解碼來恢復原始數據,由此保護固件代碼或者其他重要數據在控制器與快閃存儲器之間傳送的安全性。然而,在一般快閃存儲裝置出廠前必須對快閃存儲裝置內的新快閃存儲器進行開卡程序,其類似對快閃存儲器的每一新區(qū)塊進行初始化的操作(即,將每一區(qū)塊的每一頁地址的數據擦除為0xFF數據)。特別是,此對每一區(qū)塊進行初始化的操作并非寫入指令,因此并不會經過上述數據擾亂模塊來進行編碼,但當使用者端系統(tǒng)對此新快閃存儲裝置的新區(qū)塊下達讀取指令時其所存儲的oxFF數據會經過上述數據擾亂模塊來進行解碼,基此使用者端系統(tǒng)會接收到亂碼,而造成無法辨識的問題?;?,有其需要發(fā)展一種在具有上述數據擾亂模塊的快閃存儲裝置中避免讀取到亂碼的數據存取數據方法。
發(fā)明內容有鑒于此,本發(fā)明提供一種數據存取方法,其能夠避免主機從具有數據擾亂模塊的快閃存儲系統(tǒng)中讀取到亂碼。本發(fā)明提供一種控制器,其中存儲器管理模塊是使用上述數據存取方法來管理與讀取快閃存儲器的新區(qū)塊,由此避免主機從具有數據擾亂模塊的快閃存儲系統(tǒng)中讀取到亂碼。本發(fā)明提供一種存儲系統(tǒng),其中控制器是使用上述數據存取方法來管理與讀取快閃存儲器的新區(qū)塊,由此避免主機從具有數據擾亂模塊的快閃存儲系統(tǒng)中讀取到亂碼。本發(fā)明提出一種數據存取方法,其適用于存取具有數據擾亂模塊的快閃存儲裝置,其中此快閃存儲裝置的快閃存儲器具有多個實體區(qū)塊且這些實體區(qū)塊會至少分組為數據區(qū)與備用區(qū),此存取方法包括從主機中接收讀取指令,并且從此讀取指令中獲取欲讀取邏輯區(qū)塊與欲讀取頁地址。此數據存取方法也包括判斷在數據區(qū)中對應欲讀取邏輯區(qū)塊的實體區(qū)塊是否為據傳送給主機。在本發(fā)明的一實施例中,上述的預設數據為0x00數據或0xFF數據。在本發(fā)明的一實施例中,上述的數據存取方法還包括在對此快閃存儲裝置執(zhí)行開卡程序期間為每一實體區(qū)塊記錄一標記以注記每一實體區(qū)塊為新區(qū)塊,其中上述判斷在該數據區(qū)中對應該欲讀取邏輯區(qū)塊的實體區(qū)塊是否為該新區(qū)塊的步驟包括根據此標記來判斷在數據區(qū)中對應欲讀取邏輯區(qū)塊的實體區(qū)塊是否為新區(qū)塊,其中倘若對應欲讀取邏輯區(qū)塊的實體區(qū)塊具有此標記時則判斷在對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊。在本發(fā)明的一實施例中,上述的數據存取方法還包括在對快閃存儲裝置執(zhí)行開卡程序期間將預設數據寫入至每一實體區(qū)塊的預設頁面中,其中據。在本發(fā)明的一實施例中,上述的預設頁地址為實體區(qū)塊的第一頁地址。在本發(fā)明的一實施例中,上述的數據存取方法還包括在對快閃存儲裝置執(zhí)行開卡程序期間在備用區(qū)中的其中一個實體區(qū)塊的所有頁地址中寫入預設數據,其中當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時則將預設數讀取數據。在本發(fā)明的一實施例中,上述的數據存取方法,其中當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時則將預設數據傳送給主機的步驟包括由硬件或固件將從對應欲讀取邏輯區(qū)塊的實體區(qū)塊中所讀取的數據更改為預設數據。在本發(fā)明的一實施例中,上述的數據存取方法還包括在對快閃存儲裝置執(zhí)行開卡程序期間將每一實體區(qū)塊中的0xFF數據通過上述數據擾亂模塊進行解碼且將所解碼的0xFF數據記錄在解碼表中,其中判斷在數據區(qū)取邏輯區(qū)塊的實體區(qū)塊中讀取的數據與記錄在解碼表中的數據進行比對,其中倘若從對應欲讀取邏輯區(qū)塊的實體區(qū)塊中讀取的數據與記錄在解碼表中的數據相同時則判斷對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊。在本發(fā)明的一實施例中,上述的數據存取方法還包括在邏輯區(qū)塊與實體區(qū)塊映射表中記錄此標記。在本發(fā)明的一實施例中,上述的數據存取方法還包括在每一實體區(qū)塊的冗余區(qū)中記錄此標記。本發(fā)明提出一種控制器,其適用于具有快閃存儲器的快閃存儲裝置,其中快閃存儲器包括多個實體區(qū)塊且這些實體區(qū)塊會至少分組為數據區(qū)與備用區(qū)。此控制器包括微處理器單元、數據擾亂模塊、快閃存儲器接口、緩沖存儲器以及存儲器管理模塊。微處理器單元用以從來自于主機的讀取指令中獲取欲讀取邏輯區(qū)塊與欲讀取頁地址。數據擾亂模塊電性連接至微處理器單元且用以將從快閃存儲器中讀取的數據進行解碼。快閃存儲器接口電性連接至微處理器單元且用以存取快閃存儲器。緩沖存儲器電性連接至微處理器單元且用以暫時地存儲數據。存儲器管理模塊電性連接至微處區(qū)塊,并且用以當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時,將預設數據傳送給主機。在本發(fā)明的一實施例中,上述的預設數據為0x00數據或0xFF數據。在本發(fā)明的一實施例中,上述的存儲器管理模塊會在快閃存儲裝置的開卡程序期間為每一實體區(qū)塊記錄標記以注記每一實體區(qū)塊為新區(qū)塊,并且存儲器管理模塊會根據此標記來判斷在數據區(qū)中對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊。在本發(fā)明的一實施例中,上述的存儲器管理;漠塊會在開卡程序期間將預設數據寫入至每一實體區(qū)塊的預設頁地址中,并且當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時存儲器管理模塊會從對應欲讀取邏輯區(qū)塊的實體區(qū)塊的預設頁地址中讀取凝:據。在本發(fā)明的一實施例中,上述的預設頁地址為實體區(qū)塊的第一頁地址。在本發(fā)明的一實施例中,上述的存儲器管理模塊會在開卡程序期間在備用區(qū)中的其中一個實體區(qū)塊的所有頁地址中寫入預設數據,并且當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時存儲器管理模塊會從其中一個實體區(qū)塊中對應欲讀取頁地址的頁地址中讀取數據。在本發(fā)明的一實施例中,當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時上述的存儲器管理模塊會將從對應欲讀取邏輯區(qū)塊的實體區(qū)塊中所讀取的數據更改為預設數據。在本發(fā)明的一實施例中,上述的存儲器管理模塊會在開卡程序期間將每一實體區(qū)塊中的0xFF數據通過數據擾亂模塊進行解碼且將所解碼的0xFF數據記錄在解碼表中,并且上述的存儲器管理模塊會在當從對應欲讀取邏輯區(qū)塊的實體區(qū)塊中讀取的數據與記錄在解碼表中的數據為相同時判斷對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊。在本發(fā)明的一實施例中,上述的存儲器管理模塊會在邏輯區(qū)塊與實體區(qū)塊映射表中記錄上述的標記。在本發(fā)明的一實施例中,上述的存儲器管理模塊會在每一實體區(qū)塊的冗余區(qū)中記錄上述的標記。在本發(fā)明的一實施例中,上述的快閃存儲裝置為USB隨身盤、存儲卡或固態(tài)硬盤。本發(fā)明提出一種快閃存儲系統(tǒng),其包括快閃存儲器、傳輸連接接口與控制器。快閃存儲器用以存儲數據,其中快閃存儲器包括多個實體區(qū)塊且這些實體區(qū)塊會至少分組為lt據區(qū)與備用區(qū)。傳輸連接接口用以連接主機??刂破麟娦赃B接至快閃存儲器與傳輸連接接口,且控制器用以從來自于主機的讀取指令中獲取欲讀取邏輯區(qū)塊與欲讀取頁地址、判斷在數據區(qū)中對應欲讀取邏輯區(qū)塊的實體區(qū)塊是否為新區(qū)塊,并且當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時,將預設數據傳送給主機,其中控制器具有數據擾亂模塊用以將從快閃存儲器中讀取的數據進行解碼。在本發(fā)明的一實施例中,上述的預設數據為0x00數據或0xFF數據。在本發(fā)明的一實施例中,上述的控制器會在快閃存儲裝置的開卡程序期間為每一實體區(qū)塊記錄標記以注記每一實體區(qū)塊為新區(qū)塊,并且控制器塊。;'、。、々'在本發(fā)明的一實施例中,上述的控制器會在開卡程序期間將預設數據寫入至每一實體區(qū)塊的預設頁地址中,并且當對應欲讀取邏輯區(qū)塊的實體頁地址中讀取數據。本發(fā)明因采用在傳送數據給主機之前判斷所讀取的實體區(qū)塊是否為新區(qū)塊,并且當所讀取的實體區(qū)塊為新區(qū)塊時以預設數據傳送給主機,因此可避免主機讀取到亂碼。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉優(yōu)選實施例,并配合附圖,作詳細說明如下。圖1是根據本發(fā)明一實施例繪示快閃存儲系統(tǒng)的概要方塊圖。圖2是根據本發(fā)明一實施例繪示快閃存儲器及其運作的詳細方塊圖。圖3A是根據本發(fā)明第一實施例繪示數據存取的流程圖。圖3B是根據本發(fā)明第一實施例繪示改變讀取頁面位的示意圖。圖4A是根據本發(fā)明第二實施例繪示數據存取的流程圖。圖4B是根據本發(fā)明第二實施例繪示邏輯區(qū)塊與實體區(qū)塊映射表的范例。圖4C是根據本發(fā)明第二實施例繪示改變讀取另一實體區(qū)塊的示意圖。圖5是根據本發(fā)明第三實施例繪示數據存取的流程圖。主要元件符號說明100:快閃存儲系統(tǒng)110:控制器110a:微處理器單元110b:存儲器管理模塊110c:快閃存儲器接口110d:緩沖存儲器110e:數據擾亂模塊120:傳輸連接接口130:快閃存儲器130-0、130-1、130-2、130-N:實體區(qū)塊300總線200主機202系統(tǒng)區(qū)204數據區(qū)206備用區(qū)S、M:實體區(qū)塊U):邏輯區(qū)塊D:數據區(qū)R:冗余區(qū)P0、Pl、PN:頁地址S301、S303、S305、S307、S309:數據存取步驟。S401、S403、S405、S407、S409:數據存取步驟。S501、S503、S505、S507、S509:數據存取步驟。具體實施例方式圖1是根據本發(fā)明一實施例繪示快閃存儲系統(tǒng)的概要方塊圖。請參照圖1,快閃存儲系統(tǒng)100包括控制器110、傳輸連接接口120以及快閃存儲器130。通??扉W存儲系統(tǒng)100會與主機200—起使用,以使主機200可將數據寫入至快閃存儲系統(tǒng)100或從快閃存儲系統(tǒng)100中讀取數據。在本實施例中,快閃存儲系統(tǒng)120為固態(tài)硬盤(SolidStateDrive,SSD)。但必須了解的是,在本發(fā)明另一實施例中快閃存儲系統(tǒng)120亦可以是存儲卡或隨身盤。控制器110會執(zhí)行以硬件型式或固件型式實作的多個指令以配合傳輸連接接口120與快閃存儲器130以進行數據的存儲、讀取與擦除等操作??刂破?10包括微處理器單元110a、存儲器管理模塊110b、快閃存儲器接口110c、緩沖存儲器110d以及數據擾亂模塊110e。微處理器單元110a用以與存儲器管理模塊110b、快閃存儲器接口110c與緩沖存儲器110d等協(xié)同合作以進行快閃存儲系統(tǒng)100的各種操作。例如,微處理器單元110a會依據所接收到的讀取指令或寫入指令來與存儲器管理模塊110b、快閃存儲器接口110c和緩沖存儲器110d完成數據的讀取與寫入。存儲器管理模塊110b是電性連接至微處理器單元110a。存儲器管理模塊110b用以管理快閃存儲器130,例如具有用以執(zhí)行平均磨損(wearleveling)、壞區(qū)塊管理、維護映射表(mappingtable)等功能的機器指令。特別是,存儲器管理模塊11Ob會執(zhí)行根據下述數個實施例的數據存取步驟。值得一提的是,在本實施例中,存儲器管理模塊110b是以一硬件型式來實際操作。然而必須了解的是,在本發(fā)明另一實施例中存儲器管理模塊110b亦可以一固件型式來實際操作,其中當以一固件型式來實際操作存儲器管理模塊110b時存儲器管理模塊110b是具有可由微處理器單元110a執(zhí)行的多個機器指令,并且當快閃存儲系統(tǒng)IOO運作時存儲器管理模塊110b會被載入至緩沖存儲器llOd中以由微處理器單元110a來執(zhí)行??扉W存儲器接口110c是電性連接至微處理器單元110a并且用以存取快閃存儲器130。也就是,主機200欲寫入至快閃存儲器130的數據會經由快閃存儲器接口110c轉換為快閃存儲器130所能接受的格式。緩沖存儲器110d是電性連接至微處理器單元110a并且用以暫時地存儲系統(tǒng)數據(例如邏輯實體映射表)或者主機200所讀取或寫入的數據。在本實施例中,緩沖存儲器110d為靜態(tài)隨機存取存儲器(staticrandomaccessmemory,SRAM)。然而,必須了解的是,本發(fā)明不限于此,動態(tài)隨才幾存取存^f諸器(DynamicRandomAccessmemory,DRAM)、《茲阻式存儲器(MagnetoresistiveRandomAccessMemory,MRAM)、相變化存儲器(PhaseChangeRandomAccessMemory,PRAM)或其j也適合的存4諸器亦可應用于本發(fā)明。數據擾亂模塊llOe是電性連接至微處理器單元110a并且用以將所輸入的序列數據轉換為非序列數據,或者將非序列數據轉換為序列數據。具體來說,為了達到數據安全性的目的,在本實施例中控制器110在對快閃存儲器130進行寫入或讀取時,其間所傳送的數據都會經過數據擾亂模塊llOe進行編碼或解碼。在本發(fā)明一實施例中,數據擾亂模塊llOe會將所接收的數據碼的至少兩個字節(jié)(byte)中的數據進行對調的動作。例如,當所輸入的序列數據為"01020304050607081112131415161718,,時,數據擾亂單元202會將其編碼為"05060708010203041516171811121314"。反之,當所輸入的非序列數據為"05060708010203041516171811121314",則數據擾亂單元110e會將其解碼為"01020304050607081112131415161718"。然而,必須了解的是上述對調范例并非限制本發(fā)明,此領域熟知技藝者可輕易地依照上述精神實現(xiàn)其他形式的對調交換或重新排列方式。在本發(fā)明實施例中的數據擾亂模塊110e是以改變數據的序列來混亂數據,然而在本發(fā)明另一實施例中亦可將數據比特作一反相(例如"O"變"l"或"r,變"o")或者一演算法來混亂數據。此外,雖未繪示于本實施例,但控制器110可還包括錯誤校正模塊與電源管理模塊等用于控制快閃存儲器的一般功能模塊。傳輸連接接口120用以通過總線300連接主機200。在本實施例中,傳輸連接接口120為PCIExpress接口。然而,必須了解的是本發(fā)明不限于此,傳輸連接接口120亦可以是USB接口、IEEE1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其他適合的數據傳輸接口??扉W存儲器130是電性連接至控制器110并且用以存儲數據。快閃存儲器130通常實質上分割為多個實體區(qū)塊(physicalblock)130-0至130-N。一4殳而言,在快閃存儲器中實體區(qū)塊為擦除的最小單位。亦即,每一實體區(qū)塊含有最小數目之一并被擦除的存儲胞。每一實體區(qū)塊通常會分割為數個頁地址(page)。頁地址通常為編程(program)的最小單元。但要特別說明的是于有些不同的快閃存儲器設計,最小的編程單位也可為一個扇區(qū)(sector)。也就是說,一頁地址中有多個扇區(qū)并以一扇區(qū)為編程的最小單元。換句話說,頁地址為寫入數據或讀取數據的最小單元。每一頁地址通常包括使用者數據區(qū)D與冗余區(qū)R。使用者數據區(qū)用以存儲使用者的數據,而冗余區(qū)用以存儲系統(tǒng)的數據(例如,4昔誤校正碼(errorcorrectingcode,ECC))。為對應于磁碟驅動器的扇區(qū)(sector)大小,一般而言,使用者數據區(qū)D通常為512字節(jié),而冗余區(qū)R通常為16字節(jié)。也就是,一頁為一個扇區(qū)。然而,亦可以多個扇區(qū)形成一頁,例如一頁包括4個扇區(qū)。一般而言,實體區(qū)塊可由任意數目的頁地址所組成,例如64個頁地址、128個頁地址、256個頁地址等。實體區(qū)塊130-0至130-N通常也可被分組為數個區(qū)域(zone),以區(qū)域來管理存儲器某種程度上是彼此獨立地操作以增加操作執(zhí)行的平行程度且簡化管理的復雜度。以下將根據本發(fā)明并配合附圖詳細說明快閃存儲器130的操作。必須了解的是,在以下描述中使用"提取"、"搬移"、"交換,,等詞來操作快閃存儲器130的實體區(qū)塊是邏輯上的概念。也就是說,快閃存儲器區(qū)塊的實際位置并未更動,而是邏輯上對快閃存儲器130的實體區(qū)塊進行操作。圖2是根據本發(fā)明實施例繪示快閃存儲器130及其運作的詳細方塊圖。請參照圖2,在本發(fā)明實施例中,為了有效率地編程(即寫入與擦除)快閃存儲器130,快閃存儲器130的實體區(qū)塊130-1至130-N會在邏輯上分組為一系統(tǒng)區(qū)202、一數據區(qū)204與一備用區(qū)206。一般來說,快閃存儲器130中屬于數據區(qū)204的實體區(qū)塊會占90%以上。系統(tǒng)區(qū)202中的實體區(qū)塊用以記錄系統(tǒng)數據,系統(tǒng)數據例如是關于快閃存儲器130的區(qū)域數、每一區(qū)域的實體區(qū)塊數、每一實體區(qū)塊的頁地址數、記錄邏輯區(qū)塊與實體區(qū)塊對應關系的映射表(mappingtable)等。數據區(qū)204中的實體區(qū)塊用以存儲使用者的數據,一般來說就是主機200所操作的邏輯區(qū)塊地址所對應的區(qū)塊。備用區(qū)206中的實體區(qū)塊是用以替換數據區(qū)204中的實體區(qū)塊,因此在備用區(qū)206中的實體區(qū)塊為空或可使用的區(qū)塊,即無記錄數據或標記為已沒用的無效數據。具體來說,由于如果要對已寫過資料位置再次寫入資料時,必須先執(zhí)行擦除的動作。然而,如前所述快閃存儲器寫入單位為頁,而擦除單位為區(qū)塊,因此一個擦除的單位是大于寫入的單位。此表示若要執(zhí)行實體區(qū)塊的擦除動作時,必須先將欲擦除實體區(qū)塊中的有效頁地址復制至其它實體區(qū)塊后才可進行。因此,當欲在lt據區(qū)204中已寫過資料位置的實體區(qū)塊M中寫入新數據時,一般會在備用區(qū)206中提取一實體區(qū)塊S,然后將實體區(qū)塊M中的有效數據復制至實體區(qū)塊S且將新數據寫入實體區(qū)塊S后,將實體區(qū)塊M擦除后搬移至備用區(qū)206同時將實體區(qū)塊S搬移至數據區(qū)204。必須了解的是,將實體區(qū)塊M擦除后搬移至備用區(qū)206206而將實體區(qū)塊S關聯(lián)于數據區(qū)204。其中此本領域技術人員皆能了解數據區(qū)204中區(qū)塊的邏輯關系可由邏輯區(qū)塊與實體區(qū)塊映射表來維護。一般來說,快閃存儲系統(tǒng)100在準備出廠前會進行開卡程序,在執(zhí)行此開卡程序時快閃存儲器130的所有實體區(qū)塊130-0-130-N會進行初始化以將其所含有的數據實際地擦除為0xFF數據。如上所述,快閃存儲器會130的個實體區(qū)塊130-0130-N會分組為系統(tǒng)區(qū)、數據區(qū)與備用區(qū),其中屬邏輯區(qū)塊對應的區(qū)塊),而備用區(qū)的實體區(qū)塊是用以在執(zhí)行寫入指令時用以替換的區(qū)塊,因此當經過數據區(qū)的實體區(qū)塊與備用區(qū)的實體區(qū)塊經過輪替后就不會發(fā)生因對剛初始化(即,擦除為0xFF數據)后的實體區(qū)塊(即,剛出廠的新區(qū)塊)進行讀取而接收到亂碼的問題。因此,本發(fā)明所提出的數據存取方法就是在傳送數據給主機200之前判斷所讀取的實體區(qū)塊是否為新區(qū)塊,倘若所讀取的實體區(qū)塊為新區(qū)塊則以一預設數據(例如,0x00數據或0xFF數據)傳送給主機200,由此避免主機200接收到亂碼。以下將以上述的硬件概要方塊圖并分別地配合數個數據存取步驟范例實施例來說明本發(fā)明的精神。[第一實施例]如上所述,快閃存儲系統(tǒng)100在準備出廠前會進行開卡程序,此時根據本實施例的存儲器管理模塊110b會在每一實體區(qū)塊的第一頁地址的冗余區(qū)R中以一個比特來標記此實體區(qū)塊為新區(qū)塊(即,未曾寫入過數據),例如在此比特中記錄"1,,來表示此實體區(qū)塊為新區(qū)塊,且以記錄"0,,來表示此實體區(qū)塊為非新區(qū)塊。同時,在開卡程序期間存儲器管理模塊110b會在每一實體區(qū)塊的第一頁地址的數據區(qū)D中寫入0x00數據,特別是所寫入的0xOO數據會經過數據擾亂^t塊110e編碼并且以一亂碼型式寫入至每一實體區(qū)塊的第一頁地址的數據區(qū)D中。必須了解的是,在此是在實體區(qū)塊的第一頁地址中寫入0x00數據(即,預設數據),然而本發(fā)明不限于此,在本值得一提的是,之后在快閃存儲系統(tǒng)100運作時當對標記為新區(qū)塊的實體區(qū)塊寫入數據后則存儲器管理模塊110b會更改此實體區(qū)塊的標記以表示此實體區(qū)塊為非新區(qū)塊。特別是,倘若當僅對標記為新區(qū)塊的實體區(qū)塊的部分頁地址進行寫入數據時,其他未寫入數據的頁地址亦會寫入0x00數據,以使得此實體區(qū)塊的所有頁地址都已寫入過數據。在本發(fā)明一實施例中,當主機200欲讀取快閃存儲系統(tǒng)100中的數據時,存儲器管理模塊110b會判斷主機200欲讀取的頁地址所屬的實體區(qū)塊是否為新區(qū)塊,倘若欲讀取的頁地址為一個新區(qū)塊的頁地址時,則存儲器管理模塊110b會讀取此實體區(qū)塊的第一頁地址,并傳送其中的數據給主機200。更詳細來說,倘若欲讀取的頁地址為新區(qū)塊的頁地址時,由在此頁地址所存儲的數據為0xFF數據,當0xFF數據經過數據擾亂模塊110e進行解碼時會產生亂碼,因此主機200會從此屬于新區(qū)塊的頁地址中接收到無法辨識的亂碼數據。因此,在本實施例中倘若欲讀取的頁地址所屬的實體區(qū)塊為新區(qū)塊時,存儲器管理模塊110b會讀取此實體區(qū)塊的第一頁地址中的數據來傳送給主機,其中由在此實體區(qū)塊的第一頁地址中的數據是以經過數據擾亂模塊110e所編碼的0x00數據來存儲,因此當從此實體區(qū)塊的第一頁地址中讀取的數據經過數據擾亂模塊110e進行解碼后會是OxOO數據。因此,主機200不會發(fā)生讀取到亂碼的情況。在本實施例中,是在每一實體區(qū)塊的第一頁地址的冗余區(qū)R中記錄此實體區(qū)塊是否為新區(qū)塊的標記。然而,本發(fā)明不限于此,在本發(fā)明另一實區(qū)塊是否為新區(qū)塊。圖3A是根據本發(fā)明第一實施例繪示數據存取的流程圖。請參照圖3A,在步驟S301中快閃存儲系統(tǒng)100會從主機200中接收一讀取指令,并且微處理器單元110a會從此讀取指令中獲取欲讀取的邏輯區(qū)塊及其頁地址。接著,在步驟S303中存儲器管理模塊110b會讀取對應此欲讀取邏輯區(qū)塊的實體區(qū)塊的第一頁地址中的標記,并且在步驟S305中否為新區(qū)塊。倘若在步驟S305中判斷對應此欲讀取邏輯區(qū)塊的實體區(qū)塊不是新區(qū)塊時,則在步驟S307中存儲器管理模塊110b會讀取對應此欲讀取邏輯區(qū)塊的實體區(qū)塊的第一頁地址中的數據,并將所讀取的數據傳送給主機200。例如,如圖3B所示,當主機200名夂讀取邏輯區(qū)塊L0的頁地址Pl時,存儲器管理模塊110b依據欲讀取邏輯區(qū)塊L0所對應的實體區(qū)塊130-0的頁地址P0中的標記'T,而判斷實體區(qū)塊130-0為新區(qū)塊,因此原本應讀取實體區(qū)塊130-0的頁地址Pl的存儲器管理模塊110b會改讀取實體區(qū)塊130-0的頁地址PO中的數據。倘若在步驟S305中判斷對應此欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時,則在步驟S309中存儲器管理模塊110b會依據讀取指令中欲讀取的邏的數據傳送給主機200。[第二實施例]如上所述第一實施例是在當判斷所欲讀取的實體區(qū)塊為新區(qū)塊時,通過更改在此實體區(qū)塊中所讀取的頁地址來讀取事先寫入的0x00數據以避免主機讀取到亂碼。然而,亦可利用更改所讀取的實體區(qū)塊的方式來達到此目的。如上所述,在執(zhí)行開卡程序時快閃存儲器130的所有實體區(qū)塊會進行初始化以將其所含有的數據實際地擦除為OxFF數據,并且根據本實施例的存儲器管理模塊110b會在邏輯區(qū)塊與實體區(qū)塊映射表中標記對應每一邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊。例如,在邏輯區(qū)塊與實體區(qū)塊映射表的每一組對應中以1個比特來記錄"l"來表示此實體區(qū)塊為新區(qū)塊(如圖4B所示),且之后在快閃存儲系統(tǒng)100運作時當對標記為新區(qū)塊的實體區(qū)塊寫入數據后此標記會更改為"O"來表示此實體區(qū)塊為非新區(qū)塊。同時,根據本實施例的存儲器管理模塊110b會從快閃存儲器的備用區(qū)206中提取一實體區(qū)塊,并且在所提取的實體區(qū)塊的所有頁地址中寫入0x00數據(例如,圖4C所示的實體區(qū)塊130-N),特別是所寫入的0x00數據會經過數據擾亂模塊110e編碼后才寫入至所提取的實體區(qū)塊的所有頁地址中。在本實施例中,當主機200欲讀取快閃存儲系統(tǒng)100中的數據時,根據本實施例的存儲器管理模塊110b會判斷主機200欲讀取的頁地址所屬的實體區(qū)塊是否為新區(qū)塊,倘若欲讀取的頁地址為新區(qū)塊的頁地址時,則根據本實施例的存儲器管理模塊110b會從所提取的實體區(qū)塊的對應頁地址中讀取數據,并傳送所讀取的數據給主機200。因此,在本實施例中倘若欲讀取的頁地址所屬的實體區(qū)塊為新區(qū)塊時,則根據本實施例的存儲器管理模塊110b會從事先已寫入0xOO數據的實體區(qū)塊中讀取數據來傳送給主機,由此避免主機讀取到亂碼的情況。圖4A是根據本發(fā)明第二實施例繪示數據存取的流程圖。請參照圖4A,在步驟S401中快閃存儲系統(tǒng)100會/人主機200中接收一讀取指令,并且微處理器單元110a會從此讀取指令中獲取欲讀取的邏輯區(qū)塊及其頁地址。接著,在步驟S403中存儲器管理模塊110b從邏輯區(qū)塊步驟S405中存儲器管理模塊110b會依據此標記判斷對應此欲讀取邏輯區(qū)塊的實體區(qū)塊是否為新區(qū)塊。倘若在步驟S405中存儲器管理模塊110b判斷對應此欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時,則在步驟S407中存儲器管理模塊110b會從所提取的實體區(qū)塊的對應頁地址中讀取數據,并將所讀取的數據傳送給主機。例如,如圖4C所示,當主機200名太讀取邏輯區(qū)塊L0的頁地址Pl日于,存儲器管理模塊110b依據邏輯區(qū)塊與實體區(qū)塊映射表中的標記"l"而判斷實體區(qū)塊130-0為新區(qū)塊,因此原本應讀取實體區(qū)塊130-0的頁地址P1的存儲器管理模塊110b會改從事先已寫入0x00數據的實體區(qū)塊130-N的頁地址P1中讀取數據。倘若在步驟S405中存儲器管理模塊110b判斷對應此欲讀取邏輯區(qū)塊的實體區(qū)塊不是新區(qū)塊時,則在步驟S409中存儲器管理模塊110b會依據讀取數據,并將所讀取的數據傳送給主機200。[第三實施例]上述第一實施例與第二實施例是通過在實體區(qū)塊的第一頁地址的冗余區(qū)中或在邏輯區(qū)塊與實體區(qū)塊映射表中記錄實體區(qū)塊為新區(qū)塊的標記來判斷所欲讀取的實體區(qū)塊是否為新區(qū)塊。此外,亦可通過判斷從實體區(qū)塊中所讀取的數據來判斷此實體區(qū)塊是否為新區(qū)塊。在本實施例中,存儲器管理模塊110b會快閃存儲系統(tǒng)ioo執(zhí)行開卡程序期間將每一已初始化的實體區(qū)塊中的OxFF數據通過數據擾亂模塊110e來進行解碼,并且將所解碼后得到的數據記錄在一解碼表中。之后,當控制器110依照主機200的讀取指令從實體區(qū)塊中讀取數據時存儲器管理模塊110b就可根據所讀取的數據與記錄在此解碼表中的數據為相同而判斷此實體區(qū)塊為新區(qū)塊。此外,在上述第一實施例與第二實施例是分別通過更改讀取的頁地址與實體區(qū)塊來讀取事先寫入的0x00數據以避免主機讀取到亂碼。然而,由存儲器管理模塊110b直接以0xOO數據回應此讀取指令以傳送給主機,其中在存儲器管理模塊110b中更改所讀取的數據的指令可以一硬件型式或一固件型式來實際操作。圖5是根據本發(fā)明第三實施例繪示數據存取的流程圖。請參照圖5,在步驟S501中快閃存儲系統(tǒng)100會從主機200中接收一讀取指令,并且微處理器單元110a會從此讀取指令中獲取欲讀取的邏輯區(qū)塊及其頁地址。接著,在步驟S503中存儲器管理模塊110b會依據欲讀取在步驟S505中存儲器管理模塊110b會判斷所讀取的數據是否與解碼表中'的內容相同,其中倘若比對結果為相同時表示對應此名文讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊。倘若在步驟S505中比對結果為相同時,則在步驟S507中會將所讀取的數據更改為0x00數據,并將所更改后的數據傳送給主機。倘若在步驟S505中比對結果為不相同時,則在步驟S509中會將所讀耳又的數據傳送給主機200。綜上所述,本發(fā)明所提出的數據存取方法會在傳送數據給使用者端系統(tǒng)之前判斷所讀取的實體區(qū)塊是否為新區(qū)塊,倘若所讀取的實體區(qū)塊為新區(qū)塊則以更改讀取頁地址或實體區(qū)塊或者直接產生0x00數據傳送給使用者端系統(tǒng),由此避免使用者端系統(tǒng)在具有數據擾亂模塊的快閃存儲系統(tǒng)中于新區(qū)塊中讀取數據時接收到亂碼的情形。雖然本發(fā)明已以優(yōu)選實施例公開如上,然其并非用以限定本發(fā)明,本領域技術人員,在不脫離本發(fā)明的精神和范圍內,當可作些許的更動與潤飾,因此本發(fā)明的保護范圍當視所附權利要求書所界定者為準。權利要求1.一種數據存取方法,其適用于具有一數據擾亂模塊的一快閃存儲裝置,其中該快閃存儲裝置的快閃存儲器具有多個實體區(qū)塊且這些實體區(qū)塊會至少分組為一數據區(qū)與一備用區(qū),該存取方法包括從該主機中接收一讀取指令,并且從該讀取指令中獲取一欲讀取邏輯區(qū)塊與一欲讀取頁地址;判斷在該數據區(qū)中對應該欲讀取邏輯區(qū)塊的實體區(qū)塊是否為一新區(qū)塊;以及當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,則將一預設數據傳送給該主機。2.如權利要求1所述的數據存取方法,其中該預設數據為0x00數據或0xFF數據。3.如權利要求1所述的數據存取方法,還包括在對該快閃存儲裝置執(zhí)行一開卡程序期間為每一實體區(qū)塊記錄一標記,以注記每一實體區(qū)塊為該新新區(qū)塊的步驟包括否為該新區(qū)塊,其中倘若對應該;欲讀取邏輯區(qū)塊的實體區(qū)塊具有該標記時,4.如權利要求3所述的數據存取方法,還包括在對該快閃存儲裝置執(zhí)行該開卡程序期間將該預設數據寫入至每一實體區(qū)塊的一預設頁地址中,其中當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時則將該預設數據傳送中讀取數據。5.如權利要求4所述的數據存取方法,其中該預設頁地址為該實體區(qū)塊的第一頁地址。6.如權利要求3所述的數據存取方法,還包括在對該快閃存儲裝置執(zhí)行該開卡程序期間,在該備用區(qū)中的其中一個實體區(qū)塊的所有頁地址中寫入該預設數據,其中當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,則將該預設數據傳送給該主機的步驟包括從該其中一個實體區(qū)塊中對應該欲讀取頁地址的頁地址中讀取數據。7.如權利要求3所述的數據存取方法,其中當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時則將該預設數據傳送給該主機的步驟包括由一硬件或一固件將從對應該欲讀取邏輯區(qū)塊的實體區(qū)塊中所讀取的數據更改為該預設數據。8.如權利要求1所述的數據存取方法,還包括在對該快閃存4諸裝置執(zhí)行一開卡程序期間,將每一實體區(qū)塊中的0xFF數據通過該數據護C亂才莫塊進行解碼且將所解碼的0xFF數據記錄在一解碼表中,其中判斷在該數據區(qū)將從對應該欲讀取邏輯區(qū)塊的實體區(qū)塊中讀取的數據與記錄在該解碼表中的數據進行比對,其中倘若從對應該欲讀取邏輯區(qū)塊的實體區(qū)塊中讀取的數據與記錄在該解碼表中的數據為相同時,則判斷對應該^:讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊。9.如權利要求3所述的數據存取方法,還包括在一邏輯區(qū)塊與實體區(qū)塊映射表中記錄該標記。10.如權利要求3所述的數據存取方法,還包括在每一實體區(qū)塊的冗余區(qū)中記錄該標記。11.一種控制器,其適用于具有一快閃存儲器的一快閃存儲裝置,其中該快閃存儲器包括多個實體區(qū)塊且這些實體區(qū)塊會至少分組為一數據區(qū)與一備用區(qū),該控制器包括一微處理器單元,用以從來自于一主機的一讀取指令中獲取一欲讀取邏輯區(qū)塊與一欲讀取頁地址;一數據擾亂模塊,電性連接至該微處理器單元且用以將從該快閃存儲器中讀取的數據進行解碼;一快閃存儲器接口,電性連接至該微處理器單元且用以存取該快閃存儲器;一緩沖存儲器,電性連接至該微處理器單元且用以暫時地存儲數據;以及一存儲器管理模塊,電性連接至該微處理器單元且用以判斷在該數據區(qū)中對應該欲讀取邏輯區(qū)塊的實體區(qū)塊是否為一新區(qū)塊,并且用以當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,將一預設數據傳送給該主機。12.如權利要求11所述的控制器,其中該預設數據為0x00數據或0xFF數據。13.如權利要求11所述的控制器,其中該存儲器管理模塊會在該快閃存儲裝置的一開卡程序期間為每一實體區(qū)塊記錄一標記,以注記每一實體區(qū)塊為該新區(qū)塊,并且該存儲器管理模塊會根據該標記來判斷在該數據區(qū)中對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊。14.如權利要求13所述的控制器,其中該存儲器管理模塊會在該開卡程序期間,將該預設數據寫入至每一實體區(qū)塊的一預設頁地址中,并且當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,該存儲器管理模塊會從對應該欲讀取邏輯區(qū)塊的實體區(qū)塊的該預設頁地址中讀取數據。15.如權利要求14所述的控制器,其中該預設頁地址為該實體區(qū)塊的第一頁地址。16.如權利要求13所述的控制器,其中該存儲器管理模塊會在該開卡程序期間,在該備用區(qū)中的其中一個實體區(qū)塊的所有頁地址中寫入該預設數據,并且當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,該存儲器管理模塊會從該其中一個實體區(qū)塊中對應該欲讀取頁地址的頁地址中讀取數據。17.如權利要求13所述的控制器,其中當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,該存儲器管理才莫塊會將從對應該欲讀取邏輯區(qū)塊的實體區(qū)塊中所讀取的數據更改為該預設數據。18.如權利要求11所述的控制器,其中該存儲器管理模塊會在該開卡程序期間,將每一實體區(qū)塊中的0xFF數據通過該數據擾亂模塊進行解碼且將所解碼的0xFF數據記錄在一解碼表中,并且該存儲器管理模塊會在當從對應該欲讀取邏輯區(qū)塊的實體區(qū)塊中讀取的數據與記錄在該解碼表中的數據為相同時,判斷對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊。19.如權利要求13所述的控制器,其中該存儲器管理模塊會在一邏輯區(qū)塊與實體區(qū)塊映射表中記錄該標記。20.如權利要求13所述的控制器,其中該存儲器管理模塊會在每一實體區(qū)塊的冗余區(qū)中記錄該標記。21.如權利要求11所述的控制器,其中該快閃存儲裝置為一USB隨身盤、一存儲卡或一固態(tài)硬盤。22.—種快閃存儲系統(tǒng),包括一快閃存儲器,用以存儲數據,其中該快閃存儲器包括多個實體區(qū)塊且這些實體區(qū)塊會至少分組為一數據區(qū)與一備用區(qū);一傳輸連接接口,用以連接一主機;以及一控制器,電性連接至該快閃存儲器與該傳輸連接接口,該控制器用以從來自于一主機的一讀取指令中獲取一欲讀取邏輯區(qū)塊與一欲讀取頁地并且當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,將一預設數據傳送給該主機,其中該控制器具有一數據擾亂模塊,用以將從該快閃存儲器中讀取的數據進行解碼。23.如權利要求22所述的快閃存儲系統(tǒng),其中該預設數據為0x00數據或0xFF數據。24.如權利要求22所述的快閃存儲系統(tǒng),其中該控制器會在一開卡程序期間,為每一實體區(qū)塊記錄一標i己,以注記每一實體區(qū)塊為該新區(qū)塊,并且該控制器會根據該標記來判斷在該數據區(qū)中對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊。25.如權利要求24所述的快閃存儲系統(tǒng),其中該控制器會在該開卡程序期間將該預設數據寫入至每一實體區(qū)塊的一預設頁地址中,并且當對應該欲讀取邏輯區(qū)塊的實體區(qū)塊為該新區(qū)塊時,該控制器會從對應該欲讀取邏輯區(qū)塊的實體區(qū)塊的該預設頁地址中讀取數據。全文摘要一種數據存取方法、使用此方法的存儲系統(tǒng)及其控制器,此數據存取方法適用于具有數據擾亂模塊的快閃存儲裝置。此存取方法包括從主機中接收讀取指令,并且從此讀取指令中獲取欲讀取邏輯區(qū)塊與欲讀取頁地址。此數據存取方法也包括判斷在數據區(qū)中對應欲讀取邏輯區(qū)塊的實體區(qū)塊是否為新區(qū)塊,并且當對應欲讀取邏輯區(qū)塊的實體區(qū)塊為新區(qū)塊時則將預設數據傳送給主機?;?,能夠避免主機從具有數據擾亂模塊的快閃存儲系統(tǒng)中讀取到亂碼。文檔編號G06F3/06GK101634937SQ20081012818公開日2010年1月27日申請日期2008年7月21日優(yōu)先權日2008年7月21日發(fā)明者葉志剛,朱健華申請人:群聯(lián)電子股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
炎陵县| 岚皋县| 内乡县| 健康| 大悟县| 五指山市| 刚察县| 高陵县| 鞍山市| 扎赉特旗| 邹平县| 乐东| 吉安市| 万载县| 临海市| 广宁县| 钟祥市| 阳新县| 建宁县| 奇台县| 栖霞市| 岢岚县| 太谷县| 昌宁县| 海兴县| 乃东县| 嘉祥县| 甘孜| 嵊州市| 襄樊市| 石狮市| 二连浩特市| 介休市| 贵南县| 冕宁县| 海兴县| 大城县| 甘洛县| 湄潭县| 东明县| 元谋县|