專利名稱:存儲(chǔ)裝置及其讀寫方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種存儲(chǔ)裝置及其讀寫方法,特別涉及一種用以提高讀寫效 能的利用存儲(chǔ)器作為存儲(chǔ)介質(zhì)的存儲(chǔ)裝置及其方法。
背景技術(shù):
近年來由于電腦(Computer)、通信(Communication)及消費(fèi)性電子 (Consumer Electronics)等3C產(chǎn)業(yè)的快速發(fā)展,在各項(xiàng)產(chǎn)品中,通過內(nèi)置 的閃存或是讀取外部存儲(chǔ)卡來作為存儲(chǔ)數(shù)據(jù)的介質(zhì),似乎己是必備的功能之 一。然而隨著使用者存取數(shù)據(jù)次數(shù)的頻繁及存取數(shù)據(jù)量的日益增加,使得裝 置在讀寫存儲(chǔ)介質(zhì)的速度也就成為使用者選購產(chǎn)品時(shí)參考的重點(diǎn)。雖然閃存具有體積小、容量大、省電、非易失性且耐震等多項(xiàng)優(yōu)點(diǎn),但 卻有兩個(gè)硬件電氣上的限制,那就是不能直接覆寫和擦除(Emse)次數(shù)的限 制。而不能直接覆寫指在新數(shù)據(jù)存儲(chǔ)之前,原位置的數(shù)據(jù)區(qū)段必須先被擦除 后,才能讓新數(shù)據(jù)重新寫入,而擦除運(yùn)算和重新設(shè)定所有存儲(chǔ)單元所需要的 時(shí)間比讀取或?qū)懭脒\(yùn)算的時(shí)間長,以ToshibaTH58NVGlS3AFT05 2Gbit為例, 其讀取的速度為50ns、寫入的速度為200us而擦除時(shí)間為2ms。并且新的可 用空閑空間(Available free space,可立即使用的空間)必須建立在已預(yù)先 擦除后的區(qū)塊。請參考圖1,為公知技術(shù)閃存存取結(jié)構(gòu)示意圖,如圖所示當(dāng)代表主機(jī)端 (Host)的外部系統(tǒng)10送出邏輯區(qū)塊地址(Logical Block Address, LBA)給 控制單元20后,而控制單元20在與閃存30進(jìn)行通信時(shí),會(huì)通過一個(gè)邏輯/ 物理地址映射表21來記錄該邏輯區(qū)塊地址及其映射于閃存30中的物理地址 (Physical Block Address, PBA)以避免每次在數(shù)據(jù)存取時(shí)都必須為了取得 相對應(yīng)的邏輯地址而從頭到尾查找一次。請同時(shí)參考圖2,為公知技術(shù)閃存 中物理地址與邏輯地址的關(guān)系示意圖及利用該關(guān)系所建立的邏輯/物理地址 映射表,邏輯/物理地址映射表21的產(chǎn)生在系統(tǒng)開機(jī)時(shí)就建立完成,并可例
如設(shè)計(jì)一SRAM來存儲(chǔ)記錄該邏輯/物理地址映射表21 ,而之后在存取數(shù)據(jù)時(shí), 利用軟件查找在SRAM中的邏輯/物理地址映射表21,進(jìn)而快速得到相對于該 邏輯地址的物理地址。就閃存30的讀寫而言,寫入數(shù)據(jù)所需的時(shí)間比讀取 數(shù)據(jù)的時(shí)間來得長,且當(dāng)數(shù)據(jù)要寫入閃存30的同時(shí)又必須考慮其所寫的地 址內(nèi)是否已經(jīng)有數(shù)據(jù)存在,如果該地址已有數(shù)據(jù)存在時(shí)必須將此由外部系統(tǒng) 10寫入的數(shù)據(jù)先行寫到一個(gè)新的可用空閑空間內(nèi),并將原本要寫入的區(qū)塊地 址中的數(shù)據(jù)搬移到新的區(qū)塊中并變更邏輯/物理地址映射表21以讓下個(gè)來自 外部系統(tǒng)10的邏輯地址能夠映射到物理地址。然而,在閃存機(jī)制中,由于外部系統(tǒng)10存取數(shù)據(jù)所需的物理地址和邏 輯地址為非線性的對應(yīng)關(guān)系,無法直接由物理地址推知邏輯地址的所在。因 此,當(dāng)要搬移閃存30中的數(shù)據(jù)前,必須先進(jìn)行搜集的操作以搜集原本要寫 入的區(qū)塊地址中的數(shù)據(jù),而在搬移之后才在邏輯/物理地址映射表21進(jìn)行更 新以指定到新的物理地址。但在閃存存取裝置中,上述搜集、搬移及指定地 址的過程如果運(yùn)行過于頻繁,便會(huì)增加擦除和移動(dòng)寫入的次數(shù),也就相對地 影響到整體寫入數(shù)據(jù)的效能,而其中又例如在微軟Windows XP⑧操作系統(tǒng)下 所進(jìn)行上述的過程會(huì)最為頻繁,因此寫入效能的差異也最大。因此,如何在原有閃存的硬件存取結(jié)構(gòu)下,通過軟件程序的改進(jìn)來減少 在各種操作系統(tǒng)下讀寫閃存效能的差異,甚至提高整體效能,這都是目前值 得進(jìn)一步改善的地方。發(fā)明內(nèi)容有鑒于此,本發(fā)明所要解決的技術(shù)問題,針對與外部系統(tǒng)間所傳輸?shù)臄?shù) 據(jù)分為特殊數(shù)據(jù)內(nèi)容和一般數(shù)據(jù)內(nèi)容來處理,并且釆用不同的存取方式來進(jìn) 行,由此特殊數(shù)據(jù)管理區(qū)域可以避免因外部系統(tǒng)時(shí)常更新而導(dǎo)致必須頻繁地 搬移數(shù)據(jù),進(jìn)而達(dá)到提高閃存讀寫效能的目的。為解決上述問題,根據(jù)本發(fā)明所提出的一種方案是提供一種存儲(chǔ)裝置,適用于與外部系統(tǒng)間進(jìn)行數(shù)據(jù)的讀取與寫入,包括 一閃存及一控制單元。 閃存用來存儲(chǔ)讀寫數(shù)據(jù),并且進(jìn)一步包含有多個(gè)存儲(chǔ)區(qū)塊,每一存儲(chǔ)區(qū)塊包 括多個(gè)存儲(chǔ)頁,而存儲(chǔ)區(qū)塊在邏輯地址上可區(qū)分為至少一特殊數(shù)據(jù)管理區(qū)域 和至少一一般數(shù)據(jù)管理區(qū)域。而控制單元更進(jìn)一步包括一區(qū)域映射表以映射 所述存儲(chǔ)區(qū)塊的邏輯地址與物理地址,以及多個(gè)頁映射表,為分別依據(jù)每一 存儲(chǔ)區(qū)塊而產(chǎn)生,用以作為所述存儲(chǔ)頁的邏輯地址與物理地址的關(guān)聯(lián)。其中, 控制單元是依據(jù)區(qū)域映射表與相對應(yīng)的頁映射表并以動(dòng)態(tài)偏差值方式寫入 數(shù)據(jù)至屬于該特殊數(shù)據(jù)管理區(qū)域的存儲(chǔ)區(qū)塊中的存儲(chǔ)頁,以及更新相對應(yīng)的 該區(qū)域映射表與頁映射表以提供之后讀寫時(shí)的映射使用。為了解決上述問題,根據(jù)本發(fā)明所提出的另一種方案,提供一種存儲(chǔ)裝 置的寫入方法,其中該存儲(chǔ)裝置包含一閃存,該閃存包含多個(gè)存儲(chǔ)區(qū)塊,每 一所述存儲(chǔ)區(qū)塊具有多個(gè)存儲(chǔ)頁,該寫入方法包括首先邏輯定義該閃存為 至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理區(qū)域,并進(jìn)行接收一待寫入新數(shù)據(jù)的邏輯地址(Logical Address),進(jìn)而通過區(qū)域判斷機(jī)制來判斷該邏 輯地址位于特殊數(shù)據(jù)管理區(qū)域還是一般數(shù)據(jù)管理區(qū)域,當(dāng)邏輯地址位于特殊 數(shù)據(jù)管理區(qū)域時(shí),判斷該邏輯地址是否接續(xù)先前寫入數(shù)據(jù)所處的最后累積地 址,并且當(dāng)該邏輯地址為接續(xù)該先前寫入數(shù)據(jù)所處的最后累積地址時(shí),則再 進(jìn)一步判斷所屬的堆疊區(qū)塊是否已填滿,如果該堆疊區(qū)塊己填滿,便進(jìn)行整 理和提取該堆疊區(qū)塊中的數(shù)據(jù)至另一新的堆疊區(qū)塊中,并且取得該新的堆疊 區(qū)塊的最新累積地址,以將該待寫入新數(shù)據(jù)依據(jù)區(qū)域映射表與相對應(yīng)的頁映 射表以動(dòng)態(tài)偏差值方式接著寫入在該最新累積地址之后所映射的物理地址; 反之如果該堆疊區(qū)塊未填滿,則直接將該待寫入新數(shù)據(jù)依據(jù)該區(qū)域映射表與 相對應(yīng)的該頁映射表以該動(dòng)態(tài)偏差值方式直接接著寫入在該最后累積地址 之后所映射的物理地址。為了解決上述問題,根據(jù)本發(fā)明所提出的再一種方案,提供一種存儲(chǔ)裝 置的讀取方法,其中該存儲(chǔ)裝置包含一閃存,該閃存包含多個(gè)存儲(chǔ)區(qū)塊,每 一所述存儲(chǔ)區(qū)塊具有多個(gè)存儲(chǔ)頁,該閃存定義為至少一特殊數(shù)據(jù)管理區(qū)域和 至少一一般數(shù)據(jù)管理區(qū)域,而所述讀取方法包括首先接收一讀取數(shù)據(jù)的邏 輯地址(Logical Address),并再通過區(qū)域判斷機(jī)制來判斷該邏輯地址位于 特殊數(shù)據(jù)管理區(qū)域還是一般數(shù)據(jù)管理區(qū)域,當(dāng)邏輯地址位于特殊數(shù)據(jù)管理區(qū) 域時(shí),則判斷該邏輯地址是否符合先前寫入數(shù)據(jù)的最后存儲(chǔ)頁的地址,如果 符合該先前寫入數(shù)據(jù)的最后存儲(chǔ)頁地址,則再判斷該邏輯地址在該最后存儲(chǔ) 頁地址中是否超過最后區(qū)段地址,然而如果該邏輯地址超過該最后區(qū)段地 址,則表示該讀取數(shù)據(jù)位于該邏輯地址所屬的堆疊區(qū)塊中的一舊的存儲(chǔ)頁,
而依據(jù)區(qū)域映射表與相映射的頁映射表以取得該舊的存儲(chǔ)頁的物理頁地址, 并將所述舊的存儲(chǔ)頁的物理頁地址所屬的物理區(qū)塊中的讀取數(shù)據(jù)讀出;反之 如果該邏輯地址并未超過該最后區(qū)段地址,則表示該讀取數(shù)據(jù)已被整理至一 新的存儲(chǔ)頁,而依據(jù)該區(qū)域映射表與相對應(yīng)的該頁映射表以取得在該新的存 儲(chǔ)頁的物理頁地址,并將該新的存儲(chǔ)頁的物理頁地址所屬的物理區(qū)塊中的讀 取數(shù)據(jù)讀出。以上的概述與接下來的詳細(xì)說明及附圖,都是為了能進(jìn)一步說明本發(fā)明 為達(dá)到預(yù)定目的所采取的方式、手段和功效。而有關(guān)本發(fā)明的其他目的和優(yōu) 點(diǎn),將在后續(xù)的說明和圖示中加以闡述。
圖l為公知技術(shù)閃存存取結(jié)構(gòu)示意圖;圖2為公知技術(shù)閃存中物理地址與邏輯地址的關(guān)系示意圖及利用所述關(guān) 系所建立的邏輯/物理地址映射表;圖3A為本發(fā)明的存儲(chǔ)裝置的一較佳實(shí)施例方框圖;圖犯為本發(fā)明應(yīng)用的閃存的結(jié)構(gòu)示意圖; 圖4A為本發(fā)明所使用的頁映射表;圖4B為本發(fā)明利用頁映射表所對應(yīng)的邏輯頁地址與物理頁地址的關(guān)系 示意圖;圖5為本發(fā)明存儲(chǔ)裝置的寫入方法的一實(shí)施例流程圖; 圖6為本發(fā)明存儲(chǔ)裝置的寫入方法的另一實(shí)施例流程圖; 圖7為本發(fā)明存儲(chǔ)裝置的讀取方法的一實(shí)施例流程圖;及圖8為本發(fā)明存儲(chǔ)裝置的讀取方法的另一實(shí)施例流程圖。其中,附圖標(biāo)記說明如下現(xiàn)有技術(shù)10:外部系統(tǒng)20:控制單元21:邏輯/物理地址映射表30:閃存本發(fā)明1:存儲(chǔ)裝置31:存儲(chǔ)區(qū)塊301:存儲(chǔ)頁40:控制單元41:區(qū)域映射表42:頁映射表43:微處理器44:系統(tǒng)接口45:存儲(chǔ)器接口具體實(shí)施方式
請同時(shí)參考圖3A和圖3B,為本發(fā)明的存儲(chǔ)裝置的一較佳實(shí)施例方框圖 和本發(fā)明應(yīng)用的閃存的結(jié)構(gòu)示意圖,如圖3A所示,本發(fā)明提供一種存儲(chǔ)裝 置1,適用于與外部系統(tǒng)10間進(jìn)行數(shù)據(jù)的讀取與寫入,其包括 一閃存30 和一控制單元40。閃存30是作為讀寫數(shù)據(jù)的存儲(chǔ),并且閃存30中包含多個(gè) 存儲(chǔ)區(qū)塊31,而每一個(gè)存儲(chǔ)區(qū)塊31具有多個(gè)存儲(chǔ)頁301,此外,所述存儲(chǔ) 區(qū)塊31在邏輯地址上可區(qū)分為至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù) 管理區(qū)域(如圖3B所示),但實(shí)際在閃存30的物理地址上,特殊數(shù)據(jù)管理區(qū) 域與一般數(shù)據(jù)管理區(qū)域中的存儲(chǔ)區(qū)塊31為混合共用,并且兩種數(shù)據(jù)管理區(qū) 域并非按照一定的排列使用順序。而特殊數(shù)據(jù)管理區(qū)域可例如用來處理較常 被讀取或搬移的數(shù)據(jù); 一般數(shù)據(jù)管理區(qū)域則用來處理較不需常被讀取或搬移 的數(shù)據(jù)。而控制單元40可進(jìn)一步包括 一區(qū)域映射表41、多個(gè)頁映射表42及一 微處理器43,其中區(qū)域映射表41用以對應(yīng)存儲(chǔ)區(qū)塊31的邏輯地址與物理地 址,而每一個(gè)存儲(chǔ)區(qū)塊31都會(huì)對應(yīng)有各自的頁映射表42,作為存儲(chǔ)頁301 的邏輯地址與物理地址的關(guān)聯(lián)。并且控制單元40通過其中的系統(tǒng)接口 44來 與外部系統(tǒng)10進(jìn)行數(shù)據(jù)的傳輸,而通過其中的存儲(chǔ)器接口 45來作為與閃存 30之間的數(shù)據(jù)傳輸通道,進(jìn)而微處理器43根據(jù)區(qū)域映射表41和頁映射表 42來執(zhí)行讀取、寫入和擦除等相關(guān)操作,尤其是在處理特殊數(shù)據(jù)管理區(qū)域時(shí) 除了使用區(qū)域映射表41之外,還會(huì)利用頁映射表42來作為存儲(chǔ)區(qū)塊31在
進(jìn)行存儲(chǔ)頁301動(dòng)態(tài)偏差值寫入時(shí)的地址對應(yīng),而在特殊數(shù)據(jù)管理區(qū)域中的存儲(chǔ)區(qū)塊31通過頁映射表42所進(jìn)行的動(dòng)態(tài)偏差值寫入,會(huì)減少特殊數(shù)據(jù)管 理區(qū)域中的存儲(chǔ)區(qū)塊31受外部系統(tǒng)10的更新頻繁而需時(shí)常整理的次數(shù)。由此可知,控制單元40會(huì)依據(jù)區(qū)域映射表41與相對應(yīng)的頁映射表42 且以動(dòng)態(tài)偏差值方式寫入數(shù)據(jù)到屬于該特殊數(shù)據(jù)管理區(qū)域的存儲(chǔ)區(qū)塊31中 的存儲(chǔ)頁301,隨后便更新相對應(yīng)的區(qū)域映射表41與頁映射表42的地址連 結(jié)關(guān)系以提供之后讀寫時(shí)的對應(yīng)使用;而在一般數(shù)據(jù)管理區(qū)域部分,則僅依 據(jù)區(qū)域映射表41且以相同偏移值方式來進(jìn)行數(shù)據(jù)寫入,并且隨后進(jìn)行更新 區(qū)域映射表41的地址連結(jié)關(guān)系。請?jiān)賲⒖紙D4A和圖4B,為本發(fā)明所使用的頁映射表和利用頁映射表所 映射的邏輯頁地址與物理頁地址的關(guān)系示意圖,如圖所示,特殊數(shù)據(jù)管理區(qū) 域中,可以至少一存儲(chǔ)區(qū)塊31為單位來對應(yīng)一個(gè)邏輯區(qū)塊,而本發(fā)明以兩 個(gè)存儲(chǔ)區(qū)塊31為例來說明。在頁映射表42中主要分為邏輯頁地址的欄位和 物理頁地址的欄位,并且所述二欄位中的連結(jié)關(guān)系會(huì)隨著外部系統(tǒng)10所輸 出的邏輯地址的不同而進(jìn)行更新。而在圖4B中的物理地址以例如兩個(gè)存儲(chǔ) 區(qū)塊31為說明,分別為第一存儲(chǔ)區(qū)塊和第二存儲(chǔ)區(qū)塊,并再依據(jù)動(dòng)態(tài)偏差 值方式進(jìn)行數(shù)據(jù)寫入,先從第一存儲(chǔ)區(qū)塊寫入,待寫滿之后再寫入第二存儲(chǔ) 區(qū)塊中,而在兩個(gè)存儲(chǔ)區(qū)塊31都寫滿之后便進(jìn)行整理到另一新的第一存儲(chǔ) 區(qū)塊,并且再定義一個(gè)新的第二存儲(chǔ)區(qū)塊來搭配使用。由于外部系統(tǒng)10所 輸出邏輯地址中的邏輯頁地址可能會(huì)有重復(fù)的情形,因此在存儲(chǔ)區(qū)塊31中 會(huì)有相同的數(shù)據(jù)頁數(shù)據(jù),此時(shí)的邏輯頁地址會(huì)指定在較新的數(shù)據(jù)頁數(shù)據(jù)上, 并且頁映射表42會(huì)進(jìn)行更新關(guān)聯(lián)以映射,而在存儲(chǔ)區(qū)塊31整理時(shí)便會(huì)依據(jù) 頁映射表42的關(guān)聯(lián)而僅留下較新的數(shù)據(jù)頁數(shù)據(jù)。另外,頁映射表42中單一邏輯頁地址并非僅限制于映射存儲(chǔ)區(qū)塊31的 單一物理頁地址,亦可映射多個(gè)物理頁地址以避免因使用較多頁映射表42 時(shí),占用控制單元40中用以存儲(chǔ)頁映射表42的空間。請參考圖5,為本發(fā)明存儲(chǔ)裝置的寫入方法的一實(shí)施例流程圖,如圖所 示,本發(fā)明提供一種存儲(chǔ)裝置1的寫入方法,其中存儲(chǔ)裝置1包含一閃存30, 而閃存30包含多個(gè)存儲(chǔ)區(qū)塊31,并且每一存儲(chǔ)區(qū)塊31具有多個(gè)存儲(chǔ)頁301 , 該寫入方法包括首先,邏輯定義閃存30為至少一特殊數(shù)據(jù)管理區(qū)域和至
少一一般數(shù)據(jù)管理區(qū)域(S501),進(jìn)而接收一待寫入新數(shù)據(jù)的邏輯地址 (S503),其中該邏輯地址包含有存儲(chǔ)區(qū)塊地址、存儲(chǔ)頁地址及存儲(chǔ)區(qū)段地址 等。接著通過區(qū)域判斷機(jī)制來判斷該邏輯地址位于特殊數(shù)據(jù)管理區(qū)域還是一 般數(shù)據(jù)管理區(qū)域(S505),其中該區(qū)域判斷機(jī)制為比對事先已定義特殊數(shù)據(jù)管 理區(qū)域和一般數(shù)據(jù)管理區(qū)域的邏輯分割地址,以在接收該待寫入新數(shù)據(jù)的邏 輯地址便進(jìn)行判斷所屬管理區(qū)域。進(jìn)而當(dāng)判斷結(jié)果是該邏輯地址位于特殊數(shù) 據(jù)管理區(qū)域時(shí),便判斷該邏輯地址是否接續(xù)先前寫入數(shù)據(jù)所處的最后累積地 址(S507),而如果該邏輯地址為接續(xù)該先前寫入數(shù)據(jù)所處的最后累積地址 時(shí),則再進(jìn)一步判斷該邏輯地址所屬的堆疊區(qū)塊是否已填滿(S509),其中堆 疊區(qū)塊可以包含至少一存儲(chǔ)區(qū)塊31,而當(dāng)該堆疊區(qū)塊已填滿時(shí),則進(jìn)行整理 及提取該堆疊區(qū)塊中的數(shù)據(jù)至另一新的堆疊區(qū)塊中(S511),并且再依據(jù)區(qū)域 映射表41與相對應(yīng)的頁映射表42來取得該新的堆疊區(qū)塊的最新累積地址 (S512),進(jìn)而將所述待寫入新數(shù)據(jù)以動(dòng)態(tài)偏差值方式接著寫入在該最新累積 地址之后所對應(yīng)的物理地址,并更新該區(qū)域映射表41和該頁映射表 42(S515)。反之,如果該堆疊區(qū)塊未填滿,則直接依據(jù)區(qū)域映射表41與相 對應(yīng)的頁映射表42取得最后累積地址(S513),并將該待寫入新數(shù)據(jù)以動(dòng)態(tài) 偏差值方式直接接著寫入在該最后累積地址之后所對應(yīng)的物理地址,并更新 該區(qū)域映射表41和該頁映射表42 (S515)。另外,如果在步驟(S507)判斷該邏輯地址是否系接續(xù)先前寫入數(shù)據(jù)所處 最后累積地址的判斷結(jié)果為否時(shí),則表示該邏輯地址指向一新的堆疊區(qū)塊, 而該先前寫入數(shù)據(jù)則相對位于一舊的堆疊區(qū)塊中,進(jìn)而在舊的堆疊區(qū)塊最后 使用存儲(chǔ)頁301所對應(yīng)的物理頁中,以該邏輯地址的存儲(chǔ)區(qū)段地址為相對地 址,將所述相對地址之后的數(shù)據(jù)以區(qū)段(Sector)為單位復(fù)制至該邏輯地址所 指向的新的堆疊區(qū)塊的存儲(chǔ)頁301所對應(yīng)物理頁的相對地址中(S517),并且 取得新的堆疊區(qū)塊的最新累積地址(S519)。此時(shí)再進(jìn)一步判斷該邏輯地址所 指示的存儲(chǔ)頁301是否從該存儲(chǔ)頁301的第一區(qū)段寫入(S521),如果判斷結(jié) 果為是,則將該待寫入新數(shù)據(jù)再依據(jù)該區(qū)域映射表41與相對應(yīng)的該頁映射 表42以該動(dòng)態(tài)偏差值方式寫入該對應(yīng)的物理地址中,并更新該區(qū)域映射表 41和該頁映射表42(S515);相反的如果判斷結(jié)果為否,則在舊的堆疊區(qū)塊 最后使用存儲(chǔ)頁301所對應(yīng)的物理頁中,以該邏輯地址的存儲(chǔ)區(qū)段地址為相
對地址,將該相對地址之前的數(shù)據(jù)以區(qū)段為單位復(fù)制至該邏輯地址所指向的新的堆疊區(qū)塊的存儲(chǔ)頁301所對應(yīng)物理頁的相對地址中(S523),并再將該待 寫入新數(shù)據(jù)依據(jù)該區(qū)域映射表41與相對應(yīng)的該頁映射表42以該動(dòng)態(tài)偏差值 方式接續(xù)寫入該映射的物理地址中,并更新該區(qū)域映射表41和該頁映射表 42(S515)。而如果在步驟(S505)判斷管理區(qū)域的結(jié)果為位于一般數(shù)據(jù)管理區(qū)域時(shí), 則以相同偏移值方式寫入數(shù)據(jù)至閃存30 (S525)中。而一般數(shù)據(jù)管理區(qū)域的部 分請?jiān)賲⒖紙D6,為本發(fā)明存儲(chǔ)裝置的寫入方法的另一實(shí)施例流程圖,如圖 所示主要是本發(fā)明針對一般數(shù)據(jù)管理區(qū)域的數(shù)據(jù)寫入方法作進(jìn)一步的說明, 其中在步驟(S601)至(S605)的部分與圖5中的步驟(S501)至(S505)相同,而 在步驟(S605)判斷管理區(qū)域的結(jié)果為一般數(shù)據(jù)管理區(qū)域時(shí),則進(jìn)行判斷該邏 輯地址是否接續(xù)先前寫入數(shù)據(jù)所處的最后地址(S607),如果該邏輯地址是接 續(xù)先前寫入數(shù)據(jù)所處的最后地址時(shí),則依據(jù)區(qū)域映射表41取得該最后地址 映射的物理區(qū)塊地址(S609),并以相同偏移值方式將待寫入新數(shù)據(jù)寫入該映 射的物理區(qū)塊地址,并更新該區(qū)域映射表41(S611)。此時(shí)如果步驟(S607)的判斷結(jié)果為否,即表示所接收的邏輯地址并非接 續(xù)所述先前寫入數(shù)據(jù)所處的最后地址,則表示該邏輯地址指向一新的存儲(chǔ)區(qū) 塊,而該先前寫入數(shù)據(jù)則相對位于一舊的存儲(chǔ)區(qū)塊中,進(jìn)而在舊的存儲(chǔ)區(qū)塊 最后使用存儲(chǔ)頁301所對應(yīng)的物理頁中,以該邏輯地址的存儲(chǔ)區(qū)段地址為相 對地址,將該相對地址之后的數(shù)據(jù)以區(qū)段為單位復(fù)制至該邏輯地址所指向的 新的存儲(chǔ)區(qū)塊的存儲(chǔ)頁301所映射物理頁的相對地址中(S613),并且對應(yīng)區(qū) 域映射表41以取得該新的存儲(chǔ)區(qū)塊地址映射的新的物理區(qū)塊地址(S615), 隨后再進(jìn)一步判斷邏輯地址所要寫入新的區(qū)塊地址是否從該新的存儲(chǔ)區(qū)塊 地址的第一存儲(chǔ)頁301開始寫入(S617),如果判斷結(jié)果為是,則直接將該待寫入新數(shù)據(jù)以相同偏移值方式寫入該新的物理區(qū)塊地址,并更新該區(qū)域映射 表41(S611);相反的如果判斷結(jié)果為否,則在舊的存儲(chǔ)區(qū)塊最后使用存儲(chǔ)頁 301所映射的物理頁中,以該邏輯地址的存儲(chǔ)區(qū)段地址為相對地址,將該相 對地址之前的數(shù)據(jù)以區(qū)段為單位復(fù)制至該邏輯地址所指向的新的存儲(chǔ)區(qū)塊 的存儲(chǔ)頁301所映射物理頁的相對地址中(S619),之后再將該待寫入新數(shù)據(jù) 以該相同偏移值方式寫入該新的物理區(qū)塊地址,并更新該區(qū)域映射表 41(S611)。相同的,如果步驟(S605)判斷管理區(qū)域的結(jié)果為特殊數(shù)據(jù)管理區(qū)域,則 參考圖5所示以動(dòng)態(tài)偏差值方式進(jìn)行數(shù)據(jù)寫入至閃存30中(S621)。請參考圖7,為本發(fā)明存儲(chǔ)裝置的讀取方法的一實(shí)施例流程圖,如圖所 示,本發(fā)明提供一種存儲(chǔ)裝置1的讀取方法,其中存儲(chǔ)裝置1包含一閃存30, 該閃存30包含多個(gè)存儲(chǔ)區(qū)塊31,每一存儲(chǔ)區(qū)塊31具有多個(gè)存儲(chǔ)頁301,并 且該閃存30被邏輯定義為至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理 區(qū)域,而該讀取方法包括首先接收一讀取數(shù)據(jù)的邏輯地址(S701),其中該 邏輯地址包含有存儲(chǔ)區(qū)塊地址、存儲(chǔ)頁地址和存儲(chǔ)區(qū)段地址。進(jìn)而通過區(qū)域 判斷機(jī)制來判斷該邏輯地址位于特殊數(shù)據(jù)管理區(qū)域還是一般數(shù)據(jù)管理區(qū)域 (S703),而該區(qū)域判斷機(jī)制用以定義特殊數(shù)據(jù)管理區(qū)域和一般數(shù)據(jù)管理區(qū)域 的邏輯分割地址,以在接收所述待讀取數(shù)據(jù)的邏輯地址時(shí)便進(jìn)行判斷所屬管 理區(qū)域。當(dāng)該邏輯地址位于特殊數(shù)據(jù)管理區(qū)域時(shí),則判斷該邏輯地址是否符 合先前寫入數(shù)據(jù)的最后存儲(chǔ)頁的地址(S705),如果該邏輯地址符合先前寫入 數(shù)據(jù)的最后存儲(chǔ)頁地址時(shí),則再進(jìn)一步判斷該邏輯地址在該最后存儲(chǔ)頁地址 中是否超過一最后區(qū)段地址(S707),當(dāng)該邏輯地址超過該最后區(qū)段地址,則表示該讀取數(shù)據(jù)位于該邏輯地址所屬的堆疊區(qū)塊的一舊的存儲(chǔ)頁中,而依據(jù) 區(qū)域映射表41與相對應(yīng)的頁映射表42以取得該舊的存儲(chǔ)頁的物理頁地址 (S709),并將該舊的存儲(chǔ)頁的物理頁地址所屬的物理區(qū)塊中的讀取數(shù)據(jù)讀出 (S711);反之如果該邏輯地址并未超過該最后區(qū)段地址,則表示該讀取數(shù)據(jù) 已被整理至一新存儲(chǔ)頁中,而依據(jù)該區(qū)域映射表41與相對應(yīng)的該頁映射表 42以取得在該新的存儲(chǔ)頁的物理頁地址(S713),并將該新的存儲(chǔ)頁的物理頁 地址所屬的物理區(qū)塊中的讀取數(shù)據(jù)讀出(S711),其中,該堆疊區(qū)塊可例如包 含至少一存儲(chǔ)區(qū)塊31。而在步驟(S705)的判斷結(jié)果,該邏輯地址不符合先前寫入數(shù)據(jù)的最后存 儲(chǔ)頁地址時(shí),則直接依據(jù)該區(qū)域映射表41和該頁映射表42以取得該邏輯地 址所映射的堆疊區(qū)塊的物理地址(S715),并將該堆疊區(qū)塊映射的物理區(qū)塊中 的讀取數(shù)據(jù)讀出(S711)。另外,如果根據(jù)步驟(S703)的判斷結(jié)果,該邏輯地址位于一般數(shù)據(jù)管理 區(qū)域時(shí),則可依據(jù)區(qū)域映射表41讀取該讀取數(shù)據(jù)(S717),而關(guān)于一般數(shù)據(jù) 管理區(qū)域的部分請?jiān)賲⒖紙D8,為本發(fā)明存儲(chǔ)裝置的讀取方法的另一實(shí)施例流程圖,其中在步驟(S801)至(S803)的部分與圖7中的步驟(S701)至(S703) 相同,而如果在步驟(S803)判斷管理區(qū)域的結(jié)果為一般數(shù)據(jù)管理區(qū)域時(shí),則 判斷該讀取數(shù)據(jù)的邏輯地址是否符合先前寫入數(shù)據(jù)的最后存儲(chǔ)區(qū)塊地址 (S805),如果該邏輯地址符合該先前寫入數(shù)據(jù)的最后存儲(chǔ)區(qū)塊地址時(shí),則再 進(jìn)一步判斷該邏輯地址在該最后存儲(chǔ)區(qū)塊地址中是否超過最后存儲(chǔ)頁地址 (S807),如果該邏輯地址超過該最后存儲(chǔ)頁地址,則表示該讀取數(shù)據(jù)系位于 一舊的存儲(chǔ)區(qū)塊中,而依據(jù)區(qū)域映射表41以取得映射該舊的存儲(chǔ)區(qū)塊的物 理區(qū)塊地址(S809),以將該物理區(qū)塊地址中的讀取數(shù)據(jù)讀出(S811);反之如 果該邏輯地址并未超過該最后存儲(chǔ)頁地址,則表示該讀取數(shù)據(jù)系已在新的存 儲(chǔ)區(qū)塊中,因此依據(jù)該區(qū)域映射表41以取得映射該新的存儲(chǔ)區(qū)塊的物理區(qū) 塊地址(S813),以將該物理區(qū)塊地址中的讀取數(shù)據(jù)讀出(S811)。此外,如果步驟(S805)的判斷結(jié)果為否,即表示該邏輯地址不符合該先 前寫入數(shù)據(jù)的最后邏輯區(qū)塊地址,便直接依據(jù)該區(qū)域映射表41以取得該邏 輯地址所映射的物理區(qū)塊地址(S815),并將該物理區(qū)塊地址中的讀取數(shù)據(jù)讀 出(S811)。相同的,如果步驟(S803)判斷管理區(qū)域的結(jié)果為特殊數(shù)據(jù)管理區(qū) 域,則參考圖5所示依據(jù)該區(qū)域41和相映射的頁映射表42讀取該讀取數(shù)據(jù) (S817)。附帶一提的是,上述的區(qū)域映射表41和頁映射表42主要用于映射邏輯 地址與物理地址的關(guān)聯(lián),如果在任何情形下需取得物理地址時(shí),便會(huì)使用到 這兩個(gè)映射表。以上所述,僅為本發(fā)明的具體實(shí)施例的詳細(xì)說明和圖示,并非用以 限制本發(fā)明,本發(fā)明的所有范圍應(yīng)以權(quán)利要求書為準(zhǔn),任何本領(lǐng)域普通 技術(shù)人員在本發(fā)明領(lǐng)域內(nèi),作出各種等效、修飾和變化,其均屬于本發(fā) 明的權(quán)利要求書的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種存儲(chǔ)裝置,適用于與一外部系統(tǒng)間進(jìn)行數(shù)據(jù)的讀取與寫入,其特 征在于,包括一閃存,用以存儲(chǔ)讀寫數(shù)據(jù),所述閃存包含多個(gè)存儲(chǔ)區(qū)塊,每一所述存 儲(chǔ)區(qū)塊具有多個(gè)存儲(chǔ)頁,并且所述存儲(chǔ)區(qū)塊在邏輯地址上可區(qū)分為至少一特 殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理區(qū)域;及一控制單元,進(jìn)一步包括 一區(qū)域映射表,用以映射所述存儲(chǔ)區(qū)塊的邏輯地址與物理地址;及 多個(gè)頁映射表,分別依據(jù)每一所述存儲(chǔ)區(qū)塊而產(chǎn)生,用以作為所述存 儲(chǔ)頁的邏輯地址與物理地址的關(guān)聯(lián);其中,所述控制單元為依據(jù)所述區(qū)域映射表與相對應(yīng)的頁映射表以動(dòng)態(tài) 偏差值方式寫入數(shù)據(jù)至屬于所述特殊數(shù)據(jù)管理區(qū)域的存儲(chǔ)區(qū)塊中的存儲(chǔ)頁, 以及更新相對應(yīng)的所述區(qū)域映射表與頁映射表以提供之后讀寫時(shí)的映射使 用。
2. 根據(jù)權(quán)利要求1所述的存儲(chǔ)裝置,其特征在于,所述的控制單元進(jìn)一 步包含一系統(tǒng)接口 ,為所述控制單元與所述外部系統(tǒng)間數(shù)據(jù)的傳輸通道; 一微處理器,為依據(jù)所述區(qū)域映射表和所述頁映射表以執(zhí)行讀取、寫入 和擦除的相關(guān)操作;及一存儲(chǔ)器接口,為所述控制單元與所述閃存之間的數(shù)據(jù)傳輸通道。
3. 根據(jù)權(quán)利要求1所述的存儲(chǔ)裝置,其特征在于所述的特殊數(shù)據(jù)管理區(qū) 域和所述一般數(shù)據(jù)管理區(qū)域可依據(jù)數(shù)據(jù)被讀取或搬移的頻繁度來作為所述 兩種數(shù)據(jù)管理區(qū)域的處理分配。
4. 根據(jù)權(quán)利要求1所述的存儲(chǔ)裝置,其特征在于所述的一般數(shù)據(jù)管理區(qū) 域的寫入是所述控制單元依據(jù)所述區(qū)域映射表以相同偏移值方式寫入數(shù)據(jù) 至屬于所述一般數(shù)據(jù)管理區(qū)域的存儲(chǔ)區(qū)塊中,以及更新相對應(yīng)的所述區(qū)域映 射表以提供之后讀寫時(shí)的映射使用。
5. 根據(jù)權(quán)利要求1所述的存儲(chǔ)裝置,其特征在于所述的頁映射表中每一 所述存儲(chǔ)頁的邏輯地址可映射至少一物理地址。
6. —種存儲(chǔ)裝置的寫入方法,其中所述存儲(chǔ)裝置包含一閃存,所述閃存包含多個(gè)存儲(chǔ)區(qū)塊,每一所述存儲(chǔ)區(qū)塊具有多個(gè)存儲(chǔ)頁,其特征在于,所述寫入方法包括邏輯定義所述閃存為至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理 區(qū)域;接收一待寫入新數(shù)據(jù)的邏輯地址;通過區(qū)域判斷機(jī)制來判斷所述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域還 是所述一般數(shù)據(jù)管理區(qū)域;當(dāng)所述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域時(shí),判斷所述邏輯地址是否 為接續(xù)先前寫入數(shù)據(jù)所處最后累積地址;當(dāng)所述邏輯地址是接續(xù)所述先前寫入數(shù)據(jù)所處最后累積地址時(shí),則再進(jìn) 一步判斷所屬的堆疊區(qū)塊是否己填滿;如果所述堆疊區(qū)塊已填滿,便進(jìn)行整理和提取所述堆疊區(qū)塊中的數(shù)據(jù)至 另一新的堆疊區(qū)塊中,并且依據(jù)區(qū)域映射表與相對應(yīng)的頁映射表取得所述新 的堆疊區(qū)塊的最新累積地址,進(jìn)而將所述待寫入新數(shù)據(jù)以動(dòng)態(tài)偏差值方式接 著寫入所述最新累積地址之后所映射的物理地址中,并更新所述區(qū)域映射表 和所述頁映射表;及如果所述堆疊區(qū)塊未填滿,則直接依據(jù)所述區(qū)域映射表與相對應(yīng)的所述 頁映射表取得最后累積地址,并將所述待寫入新數(shù)據(jù)以所述動(dòng)態(tài)偏差值方式 直接接著寫入到所述最后累積地址之后所映射的物理地址中,并更新所述區(qū) 域映射表和所述頁映射表。
7. 根據(jù)權(quán)利要求6所述的存儲(chǔ)裝置的寫入方法,其特征在于所述的區(qū)域 判斷機(jī)制為比對事先已定義所述特殊數(shù)據(jù)管理區(qū)域和所述一般數(shù)據(jù)管理區(qū) 域的邏輯分割地址。
8. 根據(jù)權(quán)利要求6所述的存儲(chǔ)裝置的寫入方法,其特征在于,如果所述 邏輯地址位于所述一般數(shù)據(jù)管理區(qū)域時(shí),則將所述待寫入新數(shù)據(jù)依據(jù)所述區(qū) 域映射表以相同偏移值方式寫入所述閃存的物理地址中。
9. 根據(jù)權(quán)利要求6所述的存儲(chǔ)裝置的寫入方法,其特征在于,進(jìn)一步包括如果所述邏輯地址并非接續(xù)所述先前寫入數(shù)據(jù)所處最后累積地址時(shí),則 將所述先前寫入數(shù)據(jù)所處最后累積地址的存儲(chǔ)頁中之后的數(shù)據(jù)以區(qū)段為單 位復(fù)制至所述邏輯地址所指示的相對存儲(chǔ)頁中,并且取得所屬堆疊區(qū)塊的最新累積地址;進(jìn)而判斷所述邏輯地址所指示的存儲(chǔ)頁是否從第一區(qū)段寫入; 如果判斷結(jié)果為是,則將所述待寫入新數(shù)據(jù)依據(jù)所述區(qū)域映射表與相對 應(yīng)的所述頁映射表以所述動(dòng)態(tài)偏差值方式寫入所述映射的物理地址中,并更 新所述區(qū)域映射表及所述頁映射表;及如果判斷結(jié)果為否,則以區(qū)段為單位復(fù)制所述先前寫入數(shù)據(jù)所處最后累 積地址的存儲(chǔ)頁中之前的數(shù)據(jù)至所述邏輯地址所指示存儲(chǔ)頁的相對地址中, 進(jìn)而再將所述待寫入新數(shù)據(jù)依據(jù)所述區(qū)域映射表與相對應(yīng)的所述頁映射表 以所述動(dòng)態(tài)偏差值方式寫入所述對應(yīng)的物理地址中,并更新所述區(qū)域映射表 和所述頁映射表。
10. —種存儲(chǔ)裝置的寫入方法,其中所述存儲(chǔ)裝置包含一閃存,所述閃存包含多個(gè)存儲(chǔ)區(qū)塊,每一所述存儲(chǔ)區(qū)塊具有多個(gè)存儲(chǔ)頁,其特征在于,所 述寫入方法包括邏輯定義所述閃存為至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理 區(qū)域;接收一待寫入新數(shù)據(jù)的邏輯地址;通過區(qū)域判斷機(jī)制來判斷所述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域還 是所述一般數(shù)據(jù)管理區(qū)域;當(dāng)所述邏輯地址位于所述一般數(shù)據(jù)管理區(qū)域時(shí),則判斷所述邏輯地址是 否接續(xù)先前寫入數(shù)據(jù)所處最后地址;及當(dāng)所述邏輯地址為接續(xù)所述先前寫入數(shù)據(jù)所處最后地址時(shí),則依據(jù)區(qū)域 映射表取得所述最后地址映射的物理區(qū)塊地址,并以相同偏移值方式將所述 待寫入新數(shù)據(jù)寫入所述最后地址映射的物理區(qū)塊地址并更新所述區(qū)域映射 表。
11. 根據(jù)權(quán)利要求io所述的存儲(chǔ)裝置的寫入方法,其特征在于所述的區(qū)域判斷機(jī)制是比對事先已定義的所述特殊數(shù)據(jù)管理區(qū)域和所述一般數(shù)據(jù)管 理區(qū)域的邏輯分割地址。
12. 根據(jù)權(quán)利要求IO所述的存儲(chǔ)裝置的寫入方法,其特征在于,如果所 述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域時(shí),則將所述待寫入新數(shù)據(jù)依據(jù)所述 區(qū)域映射表和相對應(yīng)的頁映射表以動(dòng)態(tài)偏差值方式寫入堆疊區(qū)塊的最后累 積地址映射的物理地址。
13. 根據(jù)權(quán)利要求IO所述的存儲(chǔ)裝置的寫入方法,其特征在于,進(jìn)一步1包括如果所述邏輯地址并非接續(xù)所述先前寫入數(shù)據(jù)所處的最后地址時(shí),則以 區(qū)段為復(fù)制單位復(fù)制所述先前寫入數(shù)據(jù)所處最后區(qū)塊的存儲(chǔ)頁中之后的數(shù) 據(jù)至所述邏輯地址所指示的新的區(qū)塊中相對的存儲(chǔ)頁地址,并且對應(yīng)所述區(qū)域映射表以取得所述新的物理區(qū)塊地址;進(jìn)而再判斷所述邏輯地址所指示的新的區(qū)塊地址是否從第一存儲(chǔ)頁開 始寫入;如果判斷結(jié)果為是,則直接將所述待寫入新數(shù)據(jù)以所述相同偏移值方式 寫入所述新的物理區(qū)塊地址并更新所述區(qū)域映射表;及如果判斷結(jié)果為否,則進(jìn)行復(fù)制所述先前寫入數(shù)據(jù)所處最后區(qū)塊的存儲(chǔ) 頁中之前的數(shù)據(jù)至所述新的物理區(qū)塊地址中相對的存儲(chǔ)頁地址,并進(jìn)而再將 所述待寫入新數(shù)據(jù)以所述相同偏移值方式寫入所述新的物理區(qū)塊地址以及 更新所述區(qū)域映射表。
14. 一種存儲(chǔ)裝置的讀取方法,其中所述存儲(chǔ)裝置包含一閃存,所述閃 存包含多個(gè)存儲(chǔ)區(qū)塊,每一所述存儲(chǔ)區(qū)塊具有多個(gè)存儲(chǔ)頁,其特征在于,所 述閃存被邏輯定義為至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理區(qū)域, 所述讀取方法包括接收一讀取數(shù)據(jù)的邏輯地址;通過區(qū)域判斷機(jī)制來判斷所述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域還 是所述一般數(shù)據(jù)管理區(qū)域;當(dāng)所述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域時(shí),則判斷所述邏輯地址是 否符合先前寫入數(shù)據(jù)的最后存儲(chǔ)頁的地址;如果所述邏輯地址符合所述先前寫入數(shù)據(jù)的最后存儲(chǔ)頁地址,則再判斷 所述邏輯地址在所述最后存儲(chǔ)頁地址中是否超過最后區(qū)段地址;如果所述邏輯地址超過所述最后區(qū)段地址,則表示所述讀取數(shù)據(jù)位于所 述邏輯地址所屬的堆疊區(qū)塊中的一舊的存儲(chǔ)頁,而依據(jù)區(qū)域映射表與相對應(yīng)的頁映射表以取得所述舊的存儲(chǔ)頁的物理頁地址,并將所述舊的存儲(chǔ)頁所屬 的物理區(qū)塊中的讀取數(shù)據(jù)讀出;及如果所述邏輯地址并未超過所述最后區(qū)段地址,則表示所述讀取數(shù)據(jù)已 被整理到一新的存儲(chǔ)頁,而依據(jù)所述區(qū)域映射表與相對應(yīng)的所述頁映射表以 取得在所述新的存儲(chǔ)頁的物理頁地址,并將所述新的存儲(chǔ)頁的物理頁地址所 屬的物理區(qū)塊中的讀取數(shù)據(jù)讀出。
15. 根據(jù)權(quán)利要求14所述的存儲(chǔ)裝置的讀取方法,其特征在于所述的區(qū) 域判斷機(jī)制為比對事先已定義所述特殊數(shù)據(jù)管理區(qū)域和所述一般數(shù)據(jù)管理 區(qū)域的邏輯分割地址。
16. 根據(jù)權(quán)利要求14所述的存儲(chǔ)裝置的讀取方法,其特征在于,如果所 述邏輯地址為位于所述一般數(shù)據(jù)管理區(qū)域時(shí),則依據(jù)所述區(qū)域映射表讀取所 述讀取數(shù)據(jù)。
17. 根據(jù)權(quán)利要求14所述的存儲(chǔ)裝置的讀取方法,其特征在于,進(jìn)一步包括如果所述邏輯地址不符合所述先前寫入數(shù)據(jù)的最后存儲(chǔ)頁地址,則直接 依據(jù)所述區(qū)域映射表和所述頁映射表以取得所述邏輯地址所映射的堆疊區(qū) 塊的物理地址,并將所述堆疊區(qū)塊對應(yīng)的物理區(qū)塊中的讀取數(shù)據(jù)讀出。
18. —種存儲(chǔ)裝置的讀取方法,其中所述存儲(chǔ)裝置包含一閃存,所述閃 存包含多個(gè)存儲(chǔ)區(qū)塊,每一所述存儲(chǔ)區(qū)塊具有多個(gè)存儲(chǔ)頁,其特征在于,所 述閃存被邏輯定義為至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理區(qū)域, 所述讀取方法包括接收一讀取數(shù)據(jù)的邏輯地址;通過區(qū)域判斷機(jī)制來判斷所述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域還 是所述一般數(shù)據(jù)管理區(qū)域;當(dāng)所述邏輯地址位于所述一般數(shù)據(jù)管理區(qū)域時(shí),則判斷所述邏輯地址是 否符合先前寫入數(shù)據(jù)的最后存儲(chǔ)區(qū)塊地址;如果所述邏輯地址符合所述先前寫入數(shù)據(jù)的最后存儲(chǔ)區(qū)塊地址,則再判 斷所述邏輯地址在所述最后存儲(chǔ)區(qū)塊地址中是否超過最后存儲(chǔ)頁地址;如果所述邏輯地址超過所述最后存儲(chǔ)頁地址,則表示所述讀取數(shù)據(jù)位于 一舊的存儲(chǔ)區(qū)塊中,而依據(jù)區(qū)域映射表以取得映射于所述舊的存儲(chǔ)區(qū)塊的物理區(qū)塊地址,以將所述物理區(qū)塊地址中的讀取數(shù)據(jù)讀出;及如果所述邏輯地址并未超過所述最后存儲(chǔ)頁地址,則表示所述讀取數(shù)據(jù) 已在一新的存儲(chǔ)區(qū)塊中,而依據(jù)所述區(qū)域映射表以取得映射于所述新的存儲(chǔ) 區(qū)塊的物理區(qū)塊地址,以將所述物理區(qū)塊地址中的讀取數(shù)據(jù)讀出。
19. 根據(jù)權(quán)利要求18所述的存儲(chǔ)裝置的讀取方法,其特征在于所述的區(qū) 域判斷機(jī)制為比對事先已定義所述特殊數(shù)據(jù)管理區(qū)域和所述一般數(shù)據(jù)管理 區(qū)域的邏輯分割地址。
20. 根據(jù)權(quán)利要求18所述的存儲(chǔ)裝置的讀取方法,其特征在于,如果所 述邏輯地址位于所述特殊數(shù)據(jù)管理區(qū)域時(shí),則依據(jù)所述區(qū)域映射表和相對應(yīng) 的頁映射表讀取所述讀取數(shù)據(jù)。
21. 根據(jù)權(quán)利要求18所述的存儲(chǔ)裝置的讀取方法,其特征在于,進(jìn)一步 包括-如果所述邏輯地址不符合所述先前寫入數(shù)據(jù)的最后邏輯區(qū)塊地址,則直 接依據(jù)所述區(qū)域映射表以取得所述邏輯地址所映射的物理區(qū)塊地址,并將所 述物理區(qū)塊地址中的讀取數(shù)據(jù)讀出。
全文摘要
一種存儲(chǔ)裝置及其讀寫方法,先將閃存所對應(yīng)的邏輯區(qū)塊定義為至少一特殊數(shù)據(jù)管理區(qū)域和至少一一般數(shù)據(jù)管理區(qū)域,并針對與外部系統(tǒng)間所傳輸?shù)臄?shù)據(jù)分別來處理特殊數(shù)據(jù)內(nèi)容和一般數(shù)據(jù)內(nèi)容,特殊數(shù)據(jù)管理區(qū)域采用動(dòng)態(tài)偏差值的寫入方式,而一般數(shù)據(jù)管理區(qū)域則采用相同偏移值的寫入方式。由此,特殊數(shù)據(jù)管理區(qū)域可以避免因外部系統(tǒng)時(shí)常進(jìn)行更新而導(dǎo)致必須頻繁地搬移數(shù)據(jù),進(jìn)而達(dá)到提高閃存讀寫效能的目的。
文檔編號G11C16/26GK101123116SQ200610109740
公開日2008年2月13日 申請日期2006年8月9日 優(yōu)先權(quán)日2006年8月9日
發(fā)明者后嘉偉, 張琦棟, 徐國祥, 鄭文豪 申請人:安國國際科技股份有限公司