專利名稱::數據存取裝置及數據存取方法
技術領域:
:本發明涉及數據存取
技術領域:
,更具體地說,涉及一種使用鏡射機制來提高存取速度并確保數據正確性的數據存取裝置及數據存取方法。
背景技術:
:在舊有的儲存裝置中,通常利用錯誤更正碼(ErrorCorrectingCode,ECC)來保護儲存在儲存裝置里的數據。舉例來說,當發現儲存在一儲存裝置中的數據有問題時,可利用與該數據相對應的ECC進行錯誤更正。然而,利用ECC進行的錯誤更正有其局限性,當大于一特定數據量(例如N位)的錯誤發生時,便無法利用ECC對其進行更正。而且,在現代許多電子裝置中,都使用較快速度的儲存裝置(如閃存)來取代舊有的硬盤,而使用ECC來進行錯誤更正的作法會耗費相當多的時間,因此不符合現代裝置對快速存取的需求。
發明內容本發明要解決的技術問題在于,針對現有技術的上述缺陷,提供一種數據存取裝置及數據存取方法,以提高閃存中數據的正確性以及數據的存取速度。本發明解決其技術問題所采用的技術方案之一是構造一種數據存取裝置,其包含一閃存控制器;一鏡射裝置(means);以及一閃存,包含至少一數據區以及至少一鏡射區,其中該鏡射裝置在該閃存控制器寫入數據至該數據區時,復制該數據以形成鏡射數據至該鏡射區,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤,則讀取該鏡射數據以取代該數據。進一步地,上述本發明所述的數據存取裝置,其中該鏡射裝置以韌體實施。進一步地,上述本發明所述的數據存取裝置,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時且該錯誤無法被修復時,才讀取該鏡射數據以取代該數據。進一步地,上述本發明所述的數據存取裝置,其中該閃存包含多個數據區以及多個鏡射區,其中該閃存控制器在寫入該數據至該閃存時,將該數據分散成多個部份以寫入該些數據區,該鏡射裝置復制該數據的該些部份并存入該些鏡射區。進一步地,上述本發明所述的數據存取裝置,其中該閃存包含多個鏡射區,其中該閃存控制器將該鏡射數據分散成多個部份并存入該些鏡射區。進一步地,上述本發明所述的數據存取裝置,其中該閃存控制器讀取該鏡射數據并判斷該鏡射數據是否錯誤,若該鏡射數據正確則以該鏡射數據取代該數據。本發明解決其技術問題所采用的技術方案之二是構造一種數據存取裝置,包含一閃存控制器;一鏡射裝置;一第一閃存,包含至少一數據區;以及一第二閃存,包含供該第一閃存使用的至少一鏡射區;該鏡射裝置在該閃存控制器寫入數據至該數據區時,復制該數據以形成鏡射數據至該鏡射區,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時,則讀取該鏡射數據以取代該數據。進一步地,上述本發明所述的數據存取裝置,其中該鏡射裝置以韌體實施。進一步地,上述本發明所述的數據存取裝置,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時且該錯誤無法被修復時,才讀取該鏡射數據以取代該數據。進一步地,上述本發明所述的數據存取裝置,其中該閃存包含多個數據區以及多個鏡射區,其中該閃存控制器在寫入該數據至該閃存時,將該數據分散成多個部份以寫入該些數據區,該鏡射裝置復制該數據的該些部份并存入該些鏡射區。進一步地,上述本發明所述的數據存取裝置,其中該閃存包含多個鏡射區,其中該鏡射裝置將該鏡射數據分散成多個部份并存入該些鏡射區。進一步地,上述本發明所述的數據存取裝置,其中該鏡射區涵蓋了該第二閃存的所有儲存空間。進一步地,上述本發明所述的數據存取裝置,其中該閃存控制器讀取該鏡射數據并判斷該鏡射數據是否錯誤,若該鏡射數據正確則以該鏡射數據取代該數據。本發明解決其技術問題所采用的技術方案之三是構造一種數據存取裝置,包含一閃存控制器;一鏡射裝置;一第一閃存;一第二閃存,包含至少一數據區;以及一第三閃存,包含供該第二閃存使用的至少一鏡射區;該鏡射裝置在該閃存控制器寫入數據至該第二閃存時,復制該數據以形成鏡射數據至該鏡射區,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時,則讀取該鏡射數據以取代該數據。進一步地,上述本發明所述的數據存取裝置,其中該第一閃存的品質較該第二閃存為佳。進一步地,上述本發明所述的數據存取裝置,其中該第一閃存為單層單元(SingleLevelCell,SLC)的閃存,該第二閃存為多層單元(MultiLevelCell,MLC)的閃存。進一步地,上述本發明所述的數據存取裝置,其中當欲寫入一第一數據至第一閃存的一特定儲存單元時,該鏡射裝置復制該第一數據以產生一第一鏡射數據至該鏡射區,其中該特定儲存單元先前發生過錯誤的位數大于一門檻值的存取錯誤。進一步地,上述本發明所述的數據存取裝置,其中該門檻值低于該閃存的錯誤更正能力。本發明解決其技術問題所采用的技術方案之四是構造一種閃存的數據存取方法,包含(a)寫入數據至一閃存的一數據區;(b)復制該數據以形成一鏡射數據至該閃存的鏡射區,(c)其中當該數據被讀取時,若判斷該數據具有錯誤,則讀取該鏡射數據以取代該數據。本發明解決其技術問題所采用的技術方案之五是構造一種閃存的數據存取方法,包含(a)寫入數據至一第一閃存的至少一數據區;(b)復制該數據以形成一鏡射數據至一第二閃存的至少一鏡射區,該鏡射區供該第一閃存使用;以及(c)其中當該數據被讀取時,若判斷該數據具有錯誤,則讀取該鏡射數據以取代該數據。實施本發明的數據存取裝置及數據存取方法,具有以下有益效果不依賴ECC來做偵錯的動作,可加速閃存的存取動作且可保留正確的數據在鏡射區中以提高數據的正確性,故可改善習知技術的問題。下面將結合附圖及實施例對本發明作進一步說明,附圖中圖1是本發明第一實施例的數據存取裝置的方框圖2是本發明第二實施例的數據存取裝置的方框圖3是本發明第三實施例的數據存取裝置的方框圖。主要組件符號說明100、200、300數據存取裝置101、201、301數據傳輸接口103、203、303緩沖器105A閃存107B閃存109C閃存IllA閃存控制器11閃存控制器115C閃存控制器117A鏡射裝置Il9B鏡射裝置121C鏡射裝置123、223、323處理器125、225、325總線127131、216、220、316數據區133137、318鏡射區205、305鏡射裝置207Ai閃存控制器209A2閃存控制器2IlB1閃存控制器213閃存控制器215A!閃存217A2閃存2WA1閃存鏡射區219B!閃存221閃存222B,閃存鏡射區307D閃存控制器309E閃存控制器3IlF閃存控制器315D閃存317E閃存319F閃存具體實施方式在說明書及后續的申請專利范圍當中使用了某些詞匯來指稱特定的組件。所屬領域中具有通常知識者應可理解,硬件制造商可能會用不同的名詞來稱呼同一個組件。本說明書及后續的申請專利范圍并不以名稱的差異來作為區分組件的方式,而是以組件在功能上的差異來作為區分的準則。在通篇說明書及后續的請求項當中所提及的“包含”為一開放式的用語,故應解釋成“包含但不限定于”。以外,“耦接”一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表該第一裝置可直接電氣連接于該第二裝置,或透過其它裝置或連接手段間接地電氣連接至該第二裝置。圖1是本發明第一實施例的數據存取裝置100的方框圖。如圖1所示,數據存取裝置100包含一數據傳輸接口101、一緩沖器103、一A閃存(flashmemory)105、一B閃存107、一C閃存109、一A閃存控制器111、一B閃存控制器113、一C閃存控制器115、一A鏡射裝置117、一B鏡射裝置119、一C鏡射裝置121、一處理器123以及一總線125。在欲將一數據寫入閃存105109時,處理器123會透過數據傳輸接口接收數據(例如自一服務器或一主機接收數據)并透過總線125儲存至緩沖器103中。然后閃存控制器111115會分別將緩沖器103中的數據復制并透過總線125寫入到閃存105109。閃存105109分別包含數據區127131以及鏡射區133137。閃存控制器111115將緩沖器103中的數據復制并寫入到閃存105109的數據區127131中。鏡射裝置117121在閃存控制器111115寫入數據至數據區127131時,復制欲寫入數據區127131的數據以形成鏡射數據并儲存至鏡射區133137,且閃存控制器111115在數據被讀取時,利用與該數據相對應的ECC判斷該數據是否正確,若判斷該數據具有錯誤,則可自鏡射區讀取該筆數據相對應的鏡射數據,閃存控制器并利用該筆鏡射數據相對應的ECC判斷該鏡射數據是否正確(或可利用ECC回復為正確數據),若判斷該鏡射數據正確,則可以該鏡射數據取代該數據回復給主機或服務器。或者,更仔細地說,閃存控制器111115在數據被讀取時,若判斷數據具有的錯誤多于可修復的范圍(例如大于ECC可修復的位數),才讀取鏡射數據以取代數據。上述的鏡射裝置117121可以軟件、韌體或硬件的方式實施。除此之外,閃存105109可包含多個數據區以及多個鏡射區,而內存控制器可使用先分割數據再鏡射的方式,或是先鏡射再分割數據的方式來處理欲寫入閃存的數據。詳細來說,分割數據再鏡射的方式指閃存控制器111115在寫入數據至閃存105109時,將數據分散成多個部份以寫入數據區127131,鏡射裝置117121復制數據被分割而成的部份并存入鏡射區133137當中。而先鏡射再分割數據的方式指鏡射裝置117121將數據復制完后,閃存控制器111115將鏡射數據分散成多個部份并存入鏡射區133137。無論是單一數據區、鏡射區或是多數數據區、鏡射區,數據在寫入時都需要建立一地址查找表(addresstable)以供后續讀取數據的對照以及參考。此類地址查找表的功能以及相關運作皆為熟知此項技藝者所知悉,故在此不再贅述。圖2是本發明第二實施例的數據存取裝置200的方框圖。數據存取裝置200包含一數據傳輸接口201、一緩沖器203、一鏡射裝置205、一、閃存控制器207、一A2閃存控制器209、一Bi閃存控制器211、一化閃存控制器213、一Ai閃存215、一A2閃存217、一Bi閃存219、一化閃存221、處理器223以及總線225。數據存取裝置200與數據存取裝置100的差別在于數據存取裝置100的數據區與其對應的鏡射區在同一閃存中,而數據存取裝置200的數據區與其對應的鏡射區在不同閃存中。舉例來說,A1閃存215的數據區216在A1閃存215中,然而A1閃存215的鏡射區218卻在A2閃存217當中。同樣的,B1閃存219的數據區220在B1閃存219中,然而B1閃存219的鏡射區222卻在化閃存221當中。A2閃存217和化閃存221中的鏡射區218和222可以只各自占A2閃存217和B2閃存221的一部份,或者涵蓋A2閃存217和化閃存221所有可用的儲存空間。亦即鏡射區的空間大小可為閃存可用空間的一部份,或者等于閃存的可用空間。須注意的是,上述數據存取裝置100和200的組件,組件數目以及結構僅用以說明,并非用以限定本發明。舉例來說,數據存取裝置100和200的每一閃存都搭配一閃存控制器,實際上不同閃存亦可共享閃存控制器。除此之外,數據存取裝置100每一閃存都搭配一鏡射裝置,而數據存取裝置200所有閃存僅搭配一鏡射裝置,這樣的配置方式亦只用于說明而非構成限制條件。圖3是本發明第三實施例的數據存取裝置300的方框圖。數據存取裝置300包含一數據傳輸接口301、一緩沖器303、一鏡射裝置305、一D閃存控制器307、一E閃存控制器309、一F閃存控制器311、一D閃存315、一E閃存317、一F閃存319、處理器323以及總線325。在此實施例中,D閃存315為一品質較佳的閃存,例如為單層單元(SingleLevelCell,SLC)的閃存,其發生存取錯誤的機率較低。而E閃存317為一品質較差的閃存,例如為多層單元(MultiLevelCe11,MLC)的閃存或次級(downgrade)內存,其發生存取錯誤的機率較高。在本實施例中,鏡射裝置305選擇性地對欲儲存至數據存取裝置300的數據進行鏡射處理。例如,一主機(未示于圖3中)欲將一數據d儲存至數據存取裝置300時,處理器323依據數據d所對應的邏輯地址LAd判斷出數據d應儲存至D閃存315中,由于D閃存315為品質較佳、發生存取錯誤機率較低的閃存,故鏡射裝置305不對數據d進行鏡射處理。而當主機欲將一數據e儲存至數據存取裝置300時,處理器323依據數據e所對應的邏輯地址LA6判斷出數據e應儲存至E閃存317的數據區316中,由于E閃存317為品質較差、發生存取錯誤機率較高的閃存,故鏡射裝置305會對數據e進行鏡射處理。鏡射裝置305會復制數據e產生鏡射數據e’,并將鏡射數據e’儲存至F閃存319的鏡射區318中。請注意到,在一實施例中,可分別將數據e與鏡射數據e’儲存至E閃存317與F閃存319相對應的實體地址中。例如,將數據e儲存至E閃存317的實體地址0x0001中,而將鏡射數據e’儲存至F閃存319的實體地址0x0001中。如此一來,一旦發現讀取儲存在E閃存317的實體地址0x0001的數據e發生讀取錯誤時,E閃存控制器309將該讀取錯誤回報給處理器323,處理器323可直接控制F閃存控制器311讀取儲存在其實體地址0x0001的鏡射數據e’,而無需查找鏡射數據e’的實體儲存地址。如此一來,即可增加處理速度。然而此實施例并非本發明的限制,亦可利用一查找表儲存數據e與鏡射數據e’的實體儲存地址,并利用該查找表及數據e的實體儲存地址(鏡射數據e’的實體儲存地址)找出鏡射數據e’的實體儲存地址(數據e的實體儲存地址)。在另一實施例中,當主機欲將一數據d儲存至數據存取裝置300時,處理器323依據數據d所對應的邏輯地址LAd判斷出數據d應儲存至D閃存315中。D閃存控制器307依據邏輯地址LAd判斷出數據d應儲存至D閃存315的實體儲存地址PAd。而D閃存控制器307判斷出實體儲存地址PAd系位于一個較容易發生存取錯誤的實體儲存單元,例如,該儲存單元(一區塊、一儲存頁等)之前發生過可以回復的ECC錯誤,然而其發生錯誤的位數已經逼近ECC的更正能力上限(或超過一門檻值)。例如,ECC的更正能力上限為8個位,而該儲存單元之前發生過6個位的存取錯誤。為了避免發生無法利用ECC回復的錯誤,D閃存307回報處理器323,處理器323控制鏡射裝置305復制數據d產生鏡射數據d’,并控制F閃存控制器311將鏡射數據d’儲存至F閃存319的鏡射區318。處理器323可建立一查找表說明數據d與鏡射數據d’的實體儲存地址的對應關系。利用鏡射數據的方式,類似于先前的實施例,于此不再贅述。根據上述實施例,熟知此項技藝者可輕易得到相對應的數據存取方法,故在此不再贅述。藉由上述的處理方式,由于可保留鏡射數據在鏡射區中以加強對數據的保護能力,故可改善習知技術的問題。以上所述僅為本發明的較佳實施例,凡依本發明申請專利范圍所做的均等變化與修飾,皆應屬本發明的涵蓋范圍。權利要求1.一種數據存取裝置,其特征在于,包含一閃存控制器;一鏡射裝置(means);以及一閃存,包含至少一數據區以及至少一鏡射區,其中該鏡射裝置在該閃存控制器寫入數據至該數據區時,復制該數據以形成一鏡射數據至該鏡射區,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤,則讀取該鏡射數據以取代該數據。2.根據權利要求1所述的數據存取裝置,其特征在于,其中該鏡射裝置以韌體實施。3.根據權利要求1所述的數據存取裝置,其特征在于,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時且該錯誤無法被修復時,才讀取該鏡射數據以取代該數據。4.根據權利要求1所述的數據存取裝置,其特征在于,其中該閃存包含多個數據區以及多個鏡射區,其中該閃存控制器在寫入該數據至該閃存時,將該數據分散成多個部份以寫入該些數據區,該鏡射裝置復制該數據的該些部份并存入該些鏡射區。5.根據權利要求1所述的數據存取裝置,其特征在于,其中該閃存包含多個鏡射區,其中該閃存控制器將該鏡射數據分散成多個部份并存入該些鏡射區。6.根據權利要求1所述的數據存取裝置,其特征在于,其中該閃存控制器讀取該鏡射數據并判斷該鏡射數據是否錯誤,若該鏡射數據正確則以該鏡射數據取代該數據。7.一種數據存取裝置,其特征在于,包含一閃存控制器;一鏡射裝置;一第一閃存,包含至少一數據區;以及一第二閃存,包含供該第一閃存使用的至少一鏡射區;該鏡射裝置在該閃存控制器寫入數據至該數據區時,復制該數據以形成一鏡射數據至該鏡射區,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時,則讀取該鏡射數據以取代該數據。8.根據權利要求7所述的數據存取裝置,其特征在于,其中該鏡射裝置以韌體實施。9.根據權利要求7所述的數據存取裝置,其特征在于,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時且該錯誤無法被修復時,才讀取該鏡射數據以取代該數據。10.根據權利要求7所述的數據存取裝置,其特征在于,其中該閃存包含多個數據區以及多個鏡射區,其中該閃存控制器在寫入該數據至該閃存時,將該數據分散成多個部份以寫入該些數據區,該鏡射裝置復制該數據的該些部份并存入該些鏡射區。11.根據權利要求7所述的數據存取裝置,其特征在于,其中該閃存包含多個鏡射區,其中該鏡射裝置將該鏡射數據分散成多個部份并存入該些鏡射區。12.根據權利要求7所述的數據存取裝置,其特征在于,其中該鏡射區涵蓋了該第二閃存的所有儲存空間。13.根據權利要求7所述的數據存取裝置,其特征在于,其中該閃存控制器讀取該鏡射數據并判斷該鏡射數據是否錯誤,若該鏡射數據正確則以該鏡射數據取代該數據。14.一種數據存取裝置,其特征在于,包含一閃存控制器;一鏡射裝置;一第一閃存;一第二閃存,包含至少一數據區;以及一第三閃存,包含供該第二閃存使用的至少一鏡射區;該鏡射裝置在該閃存控制器寫入數據至該第二閃存時,復制該數據以形成鏡射數據至該鏡射區,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤時,則讀取該鏡射數據以取代該數據。15.根據權利要求14所述的數據存取裝置,其特征在于,其中該第一閃存的品質較該第二閃存為佳。16.根據權利要求15所述的數據存取裝置,其特征在于,其中該第一閃存為單層單元的閃存,該第二閃存為多層單元的閃存。17.根據權利要求14所述的數據存取裝置,其特征在于,其中當欲寫入一第一數據至第一閃存的一特定儲存單元時,該鏡射裝置復制該第一數據以產生一第一鏡射數據至該鏡射區,其中該特定儲存單元先前發生過錯誤的位數大于一門檻值的存取錯誤。18.根據權利要求17所述的數據存取裝置,其特征在于,其中該門檻值低于該閃存的錯誤更正能力。19.一種閃存的數據存取方法,其特征在于,包含(a)寫入數據至一閃存的一數據區;(b)復制該數據以形成一鏡射數據至該閃存的鏡射區,(c)其中當該數據被讀取時,若判斷該數據具有錯誤,則讀取該鏡射數據以取代該數據。20.一種閃存的數據存取方法,其特征在于,包含(a)寫入數據至一第一閃存的至少一數據區;(b)復制該數據以形成一鏡射數據至一第二閃存的至少一鏡射區,該鏡射區供該第一閃存使用;以及(c)其中當該數據被讀取時,若判斷該數據具有錯誤,則讀取該鏡射數據以取代該數據。全文摘要本發明涉及一種數據存取裝置,其包含一閃存控制器;一鏡射裝置(means);以及一閃存,包含至少一數據區以及至少一鏡射區,其中該鏡射裝置在該閃存控制器寫入數據至該數據區時,復制該數據以形成鏡射數據至該鏡射區,且該閃存控制器在該數據被讀取時,若判斷該數據具有錯誤,則讀取該鏡射數據以取代該數據。本發明還涉及一種數據存取方法。本發明不依賴錯誤更正碼來做偵錯的動作,可加速閃存的存取動作且可保留正確的數據在鏡射區中以提高數據的正確性。文檔編號G11C16/06GK102034537SQ200910179280公開日2011年4月27日申請日期2009年9月25日優先權日2009年9月25日發明者穆忠恕申請人:慧榮科技股份有限公司