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

防止非易失性存儲器發(fā)生讀取干擾的方法及其控制器的制作方法

文檔序號:6771566閱讀:158來源:國知局

專利名稱::防止非易失性存儲器發(fā)生讀取干擾的方法及其控制器的制作方法
技術(shù)領(lǐng)域
:本發(fā)明是有關(guān)于一種儲存媒體的讀取技術(shù),且特別是有關(guān)于一種防止非易失性存儲器發(fā)生讀取干擾的方法及其控制器。
背景技術(shù)
:近年來,由于數(shù)碼相機、具有照相功能的手機、MP3,以及MP4的成長十分迅速,所以使得消費者對儲存媒體的需求也急劇增加。綜觀現(xiàn)今所有的儲存媒體而言,由于快閃存儲器(FlashMemory)具有資料非易失性、省電、體積小,以及無機械結(jié)構(gòu)等特性,所以最適合內(nèi)建于上述所舉例的多種可攜式多媒體裝置中。再者,由于小型記憶卡與隨身碟等外接式產(chǎn)品對于現(xiàn)代人而言的需求也很大,所以各家快閃存儲器的制造廠商無不朝向讓快閃存儲器的容量變得更大及使用穩(wěn)定度提升的研發(fā)方向而努力琢磨著。一般而言,快閃存儲器的種類大致可以按照制程的精密程度而分成兩種。而眾所皆知的是,由較低精密程度的制程所制作出來的是單層存儲單元(SingleLevelCell,SLC)快閃存儲器,而由較高精密程度的制程所制作出來的是多層存儲單元(MultiLevelCell,MLC)快閃存儲器。其中,多層存儲單元快閃存儲器的記憶容量會高于單層存儲單元快閃存儲器的存儲容量,但是多層存儲單元快閃存儲器的使用穩(wěn)定度卻會比單層存儲單元快閃存儲器的使用穩(wěn)定度來得低。然而,無論是對多層存儲單元快閃存儲器或是單層存儲單元快閃存儲器內(nèi)的同一個區(qū)塊所儲存的資料進行多次讀取時,例如十萬至百萬次間的讀取次數(shù),很有可能會發(fā)生所讀取的資料是錯誤的,甚至此被多次讀取區(qū)塊內(nèi)所儲存的資料會發(fā)生異?;蜻z失。而此類現(xiàn)象以本發(fā)明領(lǐng)域具有通常知識者慣稱為“讀取干擾”(read-disturb)。也因有著這樣的現(xiàn)象存在著,無不驅(qū)使著各家廠商必須發(fā)展出防止讀取干擾的技術(shù),以來有效地抑制讀取干擾發(fā)生的機率。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的就是提供一種防止非易失性存儲器發(fā)生讀取干擾的方法及其控制器,其可有效地抑制讀取干擾發(fā)生的機率,以正確地讀取非易失性存儲器內(nèi)所儲存的所有資料?;谏鲜黾捌渌_成的目的,本發(fā)明提出一種防止非易失性存儲器發(fā)生讀取干擾的方法,適用于一非易失性存儲器儲存裝置,其中易失性存儲器具有多數(shù)個區(qū)塊,且每一個區(qū)塊具有多數(shù)個分頁。本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法包括將非易失性存儲器儲存裝置的控制器所執(zhí)行用以控制非易失性存儲器儲存裝置的程序碼儲存于該些區(qū)塊中的至少一第一區(qū)塊;以及當(dāng)供電至非易失性存儲器儲存裝置時,將第一區(qū)塊內(nèi)所儲存的程序碼復(fù)制至該些區(qū)塊中的至少一第二區(qū)塊。在本發(fā)明的一選擇實施例中,本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法還包括以下步驟紀(jì)錄第二區(qū)塊被讀取的次數(shù),并且當(dāng)?shù)诙^(qū)塊的讀取次數(shù)大于一個預(yù)設(shè)值時,更新第二區(qū)塊內(nèi)所儲存的程序碼。于本發(fā)明一選擇實施例中,紀(jì)錄第二區(qū)塊被讀取的次數(shù)的步驟包括利用一讀取次數(shù)表紀(jì)錄第二區(qū)塊被讀取的次數(shù),其中所述讀取次數(shù)表具有對應(yīng)第二區(qū)塊的一第一計數(shù)值,且此第一計數(shù)值用以表示為第二區(qū)塊被讀取的次數(shù)。于本發(fā)明一選擇實施例中,更新第二區(qū)塊內(nèi)所儲存的程序碼的步驟包括首先,將第二區(qū)塊內(nèi)所儲存的程序碼復(fù)制至該些區(qū)塊中的至少一第三區(qū)塊,其中所述讀取次數(shù)表還具有對應(yīng)第三區(qū)塊的一第二計數(shù)值,且此第二計數(shù)值用以表示為第三區(qū)塊被讀取的次數(shù)。接著,以第三區(qū)塊替代第二區(qū)塊,并且更新所述第一計數(shù)值。于本發(fā)明一選擇實施例中,更新第二區(qū)塊內(nèi)所儲存的程序碼的步驟更包括首先,將相鄰于第二區(qū)塊的至少一第四區(qū)塊內(nèi)原先所儲存的資料復(fù)制至該些區(qū)塊中的一第五區(qū)塊,其中所述讀取次數(shù)表更具有對應(yīng)第四區(qū)塊及第五區(qū)塊的一第三計數(shù)值與一第四計數(shù)值,且此第三計數(shù)值及第四計數(shù)值用以各別表示為第四區(qū)塊及第五區(qū)塊被讀取的次數(shù)。接著,以第五區(qū)塊替代第四區(qū)塊,并且更新所述第三計數(shù)值。于本發(fā)明一選擇實施例中,非易失性存儲器為單層存儲單元快閃存儲器或多層存儲單元快閃存儲器。再從另一觀點來看,本發(fā)明提供一種控制器,其適用于一非易失性存儲器儲存裝置,該控制器包括微處理單元、非易失性存儲器接口、緩沖存儲器,以及存儲器管理模組。其中,微處理單元用以控制所述控制器的整體運作。非易失性存儲器接口會電性連接至微處理單元,并且用以存取非易失性存儲器儲存裝置的非易失性存儲器,其中非易失性存儲器具有多數(shù)個區(qū)塊。緩沖存儲器會電性連接至微處理單元,并且用以暫時地儲存資料。存儲器管理模組會電性連接至微處理單元,并且用以管理非易失性存儲器,其中存儲器管理模組會將控制器所執(zhí)行用以控制非易失性存儲器儲存裝置的程序碼儲存于該些區(qū)塊中的至少一第一區(qū)塊,且當(dāng)供電至非易失性存儲器儲存裝置時,存儲器管理模組會將第一區(qū)塊內(nèi)所儲存的程序碼復(fù)制至該些區(qū)塊中的至少一第二區(qū)塊。于本發(fā)明一選擇實施例中,存儲器管理模組會紀(jì)錄第二區(qū)塊被讀取的次數(shù),并且當(dāng)?shù)诙^(qū)塊的讀取次數(shù)大于一個預(yù)設(shè)值時,存儲器管理模組會更新第二區(qū)塊內(nèi)所儲存的程序碼。于本發(fā)明一選擇實施例中,存儲器管理模組利用一讀取次數(shù)表紀(jì)錄第二區(qū)塊被讀取的次數(shù),其中所述讀取次數(shù)表具有對應(yīng)該第二區(qū)塊的一第一計數(shù)值,且此第一計數(shù)值用以表示為第二區(qū)塊被讀取的次數(shù)。于本發(fā)明一選擇實施例中,存儲器管理模組更新第二區(qū)塊內(nèi)所儲存的程序碼的方式可以包括將第二區(qū)塊內(nèi)所儲存的程序碼重新寫回第二區(qū)塊,并且更新所述第一計數(shù)值;或者,將第二區(qū)塊內(nèi)所儲存的程序碼復(fù)制至該些區(qū)塊中的至少一第三區(qū)塊,并以第三區(qū)塊替代第二區(qū)塊,且更新所述第一計數(shù)值。其中,所述讀取次數(shù)表更具有對應(yīng)第三區(qū)塊的一第二計數(shù)值,且此第二計數(shù)值用以表示為第三區(qū)塊被讀取的次數(shù)。于本發(fā)明一選擇實施例中,存儲器管理模組更新第二區(qū)塊內(nèi)所儲存的程序碼的方式更可以包括將相鄰于第二區(qū)塊的至少一第四區(qū)塊內(nèi)原先所儲存的資料同時更新。其中,所述讀取次數(shù)表更具有對應(yīng)第四區(qū)塊的一第三計數(shù)值,且此第三計數(shù)值用以表示為第四區(qū)塊被讀取的次數(shù)。為了要防止讀取干擾的產(chǎn)生,本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法主要是利用讀取次數(shù)表來記錄非易失性存儲器內(nèi)至少一/每一區(qū)塊或分頁被讀取的次數(shù)。由此,當(dāng)非易失性存儲器內(nèi)某一個區(qū)塊或分頁被讀取的次數(shù)大于預(yù)設(shè)值時,將此區(qū)塊或?qū)⒋朔猪撍`屬的區(qū)塊所儲存的資料更新。因此,本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法,不但可以有效地抑制讀取干擾發(fā)生的機率,且可以正確地讀取非易失性存儲器內(nèi)所儲存的所有資料。另外,當(dāng)主機供電至非易失性存儲器儲存裝置時,存有程序碼的區(qū)塊會被控制器復(fù)制至另一區(qū)塊中。由此,被復(fù)制存有程序碼的區(qū)塊就會替代原存有程序碼的區(qū)塊,而此用意乃是為了要顧全原存有程序碼的區(qū)塊不會受到讀取干擾的影響,所以程序碼發(fā)生錯誤、異?;蜻z失的現(xiàn)象就會大大地降低。為讓本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,以下結(jié)合附圖對本發(fā)明的具體實施方式作詳細說明,其中圖1繪示為非易失性存儲器儲存裝置的簡易系統(tǒng)方塊圖。圖2繪示為本發(fā)明一實施例的防止非易失性存儲器發(fā)生讀取干擾的方法流程圖。圖3繪示為本發(fā)明另一實施例的防止非易失性存儲器發(fā)生讀取干擾的方法流程圖。圖4繪示為本發(fā)明的防止非易失性存儲器發(fā)生讀取干擾的方法可應(yīng)用的裝置的示意圖。主要元件符號說明100非易失性存儲器儲存裝置101控制器IOla存儲器管理模組IOlb非易失性存儲器接口IOlc:緩沖存儲器IOld微處理單元IOle:主機傳輸接口IOlf錯誤校正模組IOlg:電源管理模組IOlh程序存儲器103非易失性存儲器BtlBn:區(qū)塊PtlPm分頁D資料存儲區(qū)R資料冗余區(qū)402=USB快閃碟404數(shù)碼相機(攝影機)404a:SD卡404b:MMC卡404c:CF卡404d記憶棒(memorystick)406:固態(tài)硬盤S201、S203本發(fā)明一實施例的防止非易失性存儲器發(fā)生讀取干擾的方法各步驟S301、S303本發(fā)明另一實施例的防止非易失性存儲器發(fā)生讀取干擾的方法各步驟具體實施例方式本發(fā)明所欲達成的技術(shù)功效是為有效地抑制讀取干擾發(fā)生的機率,以達到正確地讀取非易失性存儲器內(nèi)所儲存的所有資料。而以下的內(nèi)容將針對本案的技術(shù)特征與所欲達成的技術(shù)功效做一詳加描述,以提供給本發(fā)明相關(guān)領(lǐng)域的技術(shù)人員參考。圖1繪示為非易失性存儲器儲存裝置100的系統(tǒng)方塊圖。請參照圖1,非易失性存儲器儲存裝置100—般包括控制器101與非易失性存儲器103。其中,控制器101用以控制非易失性存儲器儲存裝置100的整體運作,例如資料的儲存、讀取與抹除等。于本實施例中,控制器101包括存儲器管理模組101a、非易失性存儲器接口101b、緩沖存儲器IOlc與微處理單元101d。其中,存儲器管理模組IOla用以管理非易失性存儲器103,例如執(zhí)行本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾(read-disturb)的方法、損壞區(qū)塊管理、維護映射表(mappingtable)等。非易失性存儲器接口IOlb用以存取非易失性存儲器103,也就是外部主機(未繪示,例如可以是電腦、數(shù)碼相機、攝影機、通信裝置、音頻播放器或視頻播放器等可儲存資料的任意系統(tǒng))欲寫入至非易失性存儲器103的資料會經(jīng)由非易失性存儲器接口IOlb轉(zhuǎn)換為非易失性存儲器103所能接受的資料格式。緩沖存儲器IOlc用以暫時地儲存系統(tǒng)資料(例如映射表)或者主機所欲讀取或?qū)懭氲馁Y料。在本實施例中,緩沖存儲器IOlc為靜態(tài)隨機存取存儲器(staticrandomaccessmemory,SRAM)。然而,必須了解的是,本發(fā)明并不限于此,動態(tài)隨機存取存儲器(DRAM)、磁阻式存儲器(MRAM)、相變化存儲器(PRAM)或其他適合的存儲器也可應(yīng)用于本發(fā)明。微處理單元IOld用以控制控制器101的整體運作。于本實施例中,控制器101還包括主機傳輸接口101e、錯誤校正模組IOlf、電源管理模組101g,以及程序存儲器101h。其中,主機傳輸接口IOle用以與主機通訊。于此,主機傳輸接口IOlc可以是USB接口、IEEE1394接口、SATA接口、PCIExpress接口、SAS接口、MS接口、MMC接口、SD接口、CF接口或IDE接口。錯誤校正模組IOlf用以計算錯誤更正碼(errorcorrectingcode),以來檢查與校正主機所讀取或?qū)懭氲馁Y料。電源管理模組IOIg用以管理非易失性存儲器儲存裝置100的電源。程序存儲器IOlh用以儲存控制器101所執(zhí)行用以控制非易失性存儲器儲存裝置100的程序碼。非易失性存儲器103用以儲存資料。于本實施例中,非易失性存儲器103為快閃存儲器,且此快閃存儲器可以為單層存儲單元(SLC)快閃存儲器或多層存儲單元(MLC)快閃存儲器。眾所皆知的是,非易失性存儲器通常實質(zhì)上分割為多個實體區(qū)塊(physicalblock),且每一個實體區(qū)塊通常會分割為多數(shù)個分頁(page)。于本實施例中,非易失性存儲器103具有多數(shù)個區(qū)塊BtlBn(排列方式并不限制如圖1所繪示般),且每一個區(qū)塊BtlBn皆會如區(qū)塊Btl般具有多數(shù)個分頁&?_(排列方式并不限制如圖1所繪示般)。一般而言,每一個分頁通常包括有資料存儲區(qū)D與資料冗余區(qū)R。其中,資料存儲區(qū)D用以儲存使用者的資料,而資料冗余區(qū)R則用以儲存系統(tǒng)的資料,例如上述的錯誤更正石馬(errorcorrectingcode,ECC)0為了有效率地管理非易失性存儲器103,一般會將非易失性存儲器103的區(qū)塊Bci-Bn在邏輯上規(guī)劃成系統(tǒng)群組、資料群組與備用群組。一般來說,非易失性存儲器103中屬于資料群組的區(qū)塊會占據(jù)所有區(qū)塊BtlBn的90%以上,而剩下的區(qū)塊才屬于系統(tǒng)群組與備用群組。其中,系統(tǒng)群組中的區(qū)塊主要是用以記錄系統(tǒng)資料,例如是關(guān)于非易失性存儲器103的區(qū)域數(shù)、每一區(qū)域的區(qū)塊數(shù)、每一區(qū)塊的分頁數(shù)、邏輯實體映射表...等。資料群組中的區(qū)塊主要是用以儲存使用者的資料。備用群組中的區(qū)塊主要是用以替換資料群組中的區(qū)塊。因此,備用群組中的區(qū)塊為空的區(qū)塊,亦即無記錄資料或標(biāo)記為已沒用的無效資料。再者,為了要有效地抑制對非易失性存儲器103進行多次讀取時所發(fā)生的讀取干擾,以下將針對本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法進行詳細的說明,以讓本發(fā)明相關(guān)領(lǐng)域的技術(shù)人員參考。圖2繪示為本發(fā)明一實施例的防止非易失性存儲器發(fā)生讀取干擾的方法流程圖。請合并參照圖1及圖2,本實施例的防止非易失性存儲器發(fā)生讀取干擾的方法包括下列步驟首先,如步驟S201所述,紀(jì)錄隸屬于資料群組的所有區(qū)塊中至少一第一區(qū)塊被讀取的次數(shù)。于本實施例中,紀(jì)錄資料群組中每一個區(qū)塊被讀取的次數(shù)主要是利用一讀取次數(shù)表來記錄的,其中此讀取次數(shù)表可以儲存在緩沖存儲器101c,但并不限制于此。另外,控制器101會控制管理其內(nèi)部的一計數(shù)器(未繪示)去計數(shù)資料群組中每一區(qū)塊被讀取的次數(shù),并且將資料群組中每一區(qū)塊被讀取的次數(shù)紀(jì)錄于讀取次數(shù)表中。因此,讀取次數(shù)表中就會具有多數(shù)個對應(yīng)資料群組中每一個區(qū)塊的一計數(shù)值,而這些計數(shù)值則分別表示為資料群組中每一個區(qū)塊被讀取的次數(shù)。舉例來說,當(dāng)讀取次數(shù)表中用以紀(jì)錄資料群組中區(qū)塊~被讀取的次數(shù)的計數(shù)值為100時,即表示區(qū)塊Btl內(nèi)所儲存的資料已被讀取了100次?;耍緦嵤├蠢蒙鲜鲎x取次數(shù)表紀(jì)錄第一區(qū)塊被讀取的次數(shù),且此讀取次數(shù)表具有對應(yīng)此第一區(qū)塊的第一計數(shù)值,其中該第一計數(shù)值則用以表示為第一區(qū)塊被讀取的次數(shù)。于此值得一提的是,在非易失性存儲器儲存裝置100的運作期間,每當(dāng)讀取資料群組中的任一區(qū)塊時,緩沖存儲器105內(nèi)的讀取次數(shù)表所紀(jì)錄的內(nèi)容就會持續(xù)地被控制器101所更新,并且例如在非易失性存儲器儲存裝置100結(jié)束運作或者每動作一定次數(shù)后,讀取次數(shù)表中所紀(jì)錄的內(nèi)容就會被控制器101紀(jì)錄至系統(tǒng)群組的至少一區(qū)塊中,或者會被相對應(yīng)的紀(jì)錄于被讀取的區(qū)塊的資料冗余區(qū)R中,而此備份動作是為了要避免因非易失性存儲器儲存裝置100發(fā)生不正常斷電所造成已更新的讀取次數(shù)表所紀(jì)錄的內(nèi)容遺失。故依據(jù)上述可知,上述讀取次數(shù)表可以儲存在非易失性存儲器103的外部(亦即儲存在控制器101內(nèi)部的緩沖存儲器105中),且亦可以儲存在非易失性存儲器103的內(nèi)部(亦即儲存在系統(tǒng)群組的至少一區(qū)塊中或儲存于被讀取的區(qū)塊的資料冗余區(qū)R中),甚至更可以獨身自立于控制器101的系統(tǒng)當(dāng)中。此外,上述被控制器101所控制管理的計數(shù)器的計數(shù)方式可以設(shè)計成上數(shù)或下數(shù)。接著,如步驟S203所述,當(dāng)資料群組中的第一區(qū)塊的讀取次數(shù)大于預(yù)設(shè)值時,更新第一區(qū)塊內(nèi)原先所儲存的資料。于本實施例中,假設(shè)資料群組中的第一區(qū)塊(例如區(qū)塊B0)的讀取次數(shù)大于預(yù)設(shè)值(即有可能發(fā)生讀取干擾的讀取次數(shù),例如百萬次,但不限制于此)時,此時控制器101會將第一區(qū)塊Btl內(nèi)原先所儲存的資料復(fù)制至備用群組中的一第二區(qū)塊(例如區(qū)塊Blri),而此過程也就是步驟S203所述及的更新第一區(qū)塊內(nèi)原先所儲存的資料;反之,當(dāng)資料群組中的第一區(qū)塊Btl的讀取次數(shù)未大于預(yù)設(shè)值時,第一區(qū)塊Btl內(nèi)原先所儲存的資料并不會被更新。于本實施例中,上述讀取次數(shù)表還具有對應(yīng)此第二區(qū)塊Blri的第二計數(shù)值,且此第二計數(shù)值則用以表示為第二區(qū)塊Blri被讀取的次數(shù)。緊接著,控制器101會再去修正邏輯實體映射表的對應(yīng)關(guān)系,以將第二區(qū)塊Blri替代第一區(qū)塊Btl,并且更新讀取次數(shù)表用以紀(jì)錄第一區(qū)塊Btl被讀取的次數(shù)的第一計數(shù)值,例如將紀(jì)錄第一區(qū)塊Btl被讀取的次數(shù)的第一計數(shù)值重新歸0(亦即從百萬次的計數(shù)值歸0)。在此值得一提的是,過于頻繁地執(zhí)行資料更新會影響整個非易失性存儲器儲存裝置100的效能,而若太長時間不執(zhí)行資料更新的話,則會增加資料讀取錯誤的風(fēng)險,故上述預(yù)設(shè)值的設(shè)定可以通過多次實驗的結(jié)果而定義出一個合理值,例如10萬次至1000萬次依不同的設(shè)計需求來設(shè)定不同的數(shù)值。故依據(jù)上述可知,當(dāng)?shù)谝粎^(qū)塊Btl的讀取次數(shù)大于百萬次的同時,控制器101會致使第一區(qū)塊Btl內(nèi)原先所儲存的資料復(fù)制至備用群組中的第二區(qū)塊Blri,并且修正邏輯實體映射表的對應(yīng)關(guān)系,以將第二區(qū)塊Blri替代第一區(qū)塊Btl,所以本實施例的防止非易失性存儲器發(fā)生讀取干擾的方法即可有效地抑制對非易失性存儲器103于一特定的區(qū)塊進行多次讀取時所發(fā)生的讀取干擾。然而,更得一提的是,由于制程因素的影響,當(dāng)?shù)谝粎^(qū)塊Btl的讀取次數(shù)越來越多的同時,有可能會間接影響到相鄰于第一區(qū)塊Btl的一第三區(qū)塊(例如區(qū)塊B1)內(nèi)原先所儲存的資料。因此,當(dāng)?shù)谝粎^(qū)塊Btl的讀取次數(shù)大于百萬次的同時,控制器101除了會致使第一區(qū)塊Btl內(nèi)原先所儲存的資料復(fù)制至備用群組中的第二區(qū)塊Blri外,還會致使第三區(qū)塊&內(nèi)原先所儲存的資料復(fù)制至備用群組中的一第四區(qū)塊(例如區(qū)塊Bn)。于本實施例中,上述讀取次數(shù)表還具有對應(yīng)第三區(qū)塊B1及第四區(qū)塊Bn的一第三計數(shù)值與一第四計數(shù)值,且此第三及第四計數(shù)值用以各別表示為第三區(qū)塊B1及第四區(qū)塊Bn被讀取的次數(shù)。緊接著,控制器101會再去修正邏輯實體映射表的對應(yīng)關(guān)系,以將第四區(qū)塊Bn替代第三區(qū)塊B1,并且更新讀取次數(shù)表用以紀(jì)錄第三區(qū)塊B1被讀取的次數(shù)的第三計數(shù)值。故基于上述可知,當(dāng)資料群組中的某一區(qū)塊的讀取次數(shù)達到設(shè)定的預(yù)設(shè)值時,本實施例的防止非易失性存儲器發(fā)生讀取干擾的方法除了會更新讀取次數(shù)大于預(yù)設(shè)值的區(qū)塊所儲存的資料外,還更會同時將與讀取次數(shù)大于預(yù)設(shè)值的區(qū)塊相鄰的區(qū)塊(例如左右/上下相鄰的區(qū)塊)所儲存的資料也一并更新。因此,本實施例的防止非易失性存儲器發(fā)生讀取干擾的方法即可達到正確地讀取非易失性存儲器103內(nèi)所儲存的所有資料。再者,依據(jù)本發(fā)明的精神并不限制于上述實施例的實施方式。在本發(fā)明另一實施例中,假設(shè)資料群組中的第一區(qū)塊(例如區(qū)塊Btl)的讀取次數(shù)大于預(yù)設(shè)值(即有可能發(fā)生讀取干擾的讀取次數(shù),例如百萬次,但不限制于此)時,此時控制器101會先將第一區(qū)塊~內(nèi)原先所儲存的資料讀出,并暫存于緩沖存儲器IOlc內(nèi)。接著,控制器101會抹除第一區(qū)塊Btl內(nèi)所儲存的所有資料。之后,控制器101會將緩沖存儲器IOlc內(nèi)暫存第一區(qū)塊Btl內(nèi)原先所儲存的資料寫回至第一區(qū)塊Btl,并且更新讀取次數(shù)表用以紀(jì)錄第一區(qū)塊Btl被讀取的次數(shù)的第一計數(shù)值,而此過程同樣也就是步驟S203所述及的更新第一區(qū)塊內(nèi)原先所儲存的資料。然而,于本實施例中,控制器101并不需要去修正邏輯實體映射表的對應(yīng)關(guān)系。上述所謂的資料更新指的是將區(qū)塊內(nèi)原先所儲存的資料重新寫入的動作(亦即抹除后再寫入),其可以寫入于不同的區(qū)塊或原來的區(qū)塊。因此,只要是區(qū)塊內(nèi)原先所儲存的資料被重新寫入,該區(qū)塊發(fā)生讀取干擾的可能性即會大大地減少,且當(dāng)區(qū)塊內(nèi)原先所儲存的資料被重新寫入時,讀取次數(shù)表用以記錄區(qū)塊被讀取的計數(shù)值也會隨即被重置(例如歸0)。相似地,由于制程因素的影響,當(dāng)?shù)谝粎^(qū)塊Btl的讀取次數(shù)越來越多的同時,有可能會間接影響到相鄰于第一區(qū)塊Btl的至少一第二區(qū)塊(例如區(qū)塊B1)內(nèi)原先所儲存的資料。因此,當(dāng)?shù)谝粎^(qū)塊Btl的讀取次數(shù)大于百萬次的同時,控制器101除了會將第一區(qū)塊Btl內(nèi)原先所儲存的資料讀出并暫存于緩沖存儲器IOlc外,更會將第二區(qū)塊B1內(nèi)原先所儲存的資料同樣讀出并暫存于緩沖存儲器IOlc內(nèi)。接著,控制器101也會抹除第二區(qū)塊B1內(nèi)所儲存的所有資料,并將緩沖存儲器IOlc內(nèi)暫存第二區(qū)塊&內(nèi)原先所儲存的資料寫回至第二區(qū)塊&,且更新讀取次數(shù)表用以紀(jì)錄第二區(qū)塊B1被讀取的次數(shù)的第二計數(shù)值。由此,本實施例的防止非易失性存儲器發(fā)生讀取干擾的方法亦可達到正確地讀取非易失性存儲器103內(nèi)所儲存的所有資料。據(jù)此,值得一提的是,上述實施例用以紀(jì)錄資料群組中每一個區(qū)塊被讀取的次數(shù)的單位為整個區(qū)塊,但是依據(jù)本發(fā)明的精神并不限制于此。在本發(fā)明的再一實施例中,紀(jì)錄資料群組中每一個區(qū)塊被讀取的次數(shù)同樣還是利用讀取次數(shù)表來記錄的,但是控制器101卻會控制管理計數(shù)器去計數(shù)資料群組中每一個區(qū)塊內(nèi)的每一個分頁被讀取的次數(shù),只要是任一區(qū)塊內(nèi)的任一分頁被讀取時,此被讀取分頁所隸屬的區(qū)塊就會被視為已讀取一次。舉例來說,當(dāng)?shù)谝粎^(qū)塊(例如區(qū)塊Btl)內(nèi)的第一分頁(例如分頁Ptl)所儲存的資料被讀取時,讀取次數(shù)表用以紀(jì)錄第一區(qū)塊Btl被讀取的次數(shù)的第一計數(shù)值就會累加一次或遞減一次;而當(dāng)?shù)诙^(qū)塊(例如區(qū)塊B1)內(nèi)的第二分頁(例如分頁P1)所儲存的資料被讀取時,讀取次數(shù)表用以紀(jì)錄第二區(qū)塊B1被讀取的次數(shù)的第一計數(shù)值就會累加一次或遞減一次。相似地,當(dāng)?shù)谌齾^(qū)塊(例如區(qū)塊B2)內(nèi)的第三分頁(例如分頁P2)所儲存的資料被讀取時,讀取次數(shù)表用以紀(jì)錄第三區(qū)塊化被讀取的次數(shù)的第三計數(shù)值就會累加一次或遞減一次;而當(dāng)?shù)谒膮^(qū)塊(例如區(qū)塊B3)內(nèi)的第四分頁(例如分頁P3)所儲存的資料被讀取時,讀取次數(shù)表用以紀(jì)錄第四區(qū)塊被讀取的次數(shù)的第四計數(shù)值就會累加一次或遞減一次,依此類推之。當(dāng)然,為了實現(xiàn)此實施方式,讀取次數(shù)表內(nèi)就必須具有多數(shù)個對應(yīng)資料群組中每一個區(qū)塊內(nèi)的每一個分頁的計數(shù)值,且這些計數(shù)值分別表示為資料群組中每一個區(qū)塊內(nèi)的每一個分頁被讀取的次數(shù)。另外,于本實施例中,更新任一區(qū)塊內(nèi)原先所儲存的資料的流程大致與上述實施例所揭露的內(nèi)容類似,故在此并不再加以贅述。從另一觀點來說,控制器101所執(zhí)行用以控制非易失性存儲器儲存裝置100的程序碼一般會儲存在程序存儲器IOlh內(nèi)。然而,于本發(fā)明的一選擇實施例中,控制器101所執(zhí)行用以控制非易失性存儲器儲存裝置100的程序碼會被儲存在非易失性存儲器103中的至少一區(qū)塊。故可想而知的是,此區(qū)塊所儲存的程序碼在非易失性存儲器儲存裝置100的運作期間必然會很頻繁地被讀取。因此,對此區(qū)塊所儲存的程序碼進行多次得讀取后,也有可能會發(fā)生讀取干擾。為此,本發(fā)明提供另一種防止非易失性存儲器發(fā)生讀取干擾的方法,以提供給本發(fā)明領(lǐng)域的技術(shù)人員參考。圖3繪示為本發(fā)明另一實施例的防止非易失性存儲器發(fā)生讀取干擾的方法流程圖。請合并參照圖1及圖3,本實施例的防止非易失性存儲器發(fā)生讀取干擾的方法適用于非易失性存儲器儲存裝置100,其中非易失性存儲器103具有多數(shù)個區(qū)塊,且每一個區(qū)塊具有多數(shù)個分頁,該方法同樣由存儲器管理模組IOla來執(zhí)行,且其包括下列步驟首先,如步驟S301所述,將非易失性存儲器儲存裝置100的控制器101所執(zhí)行用以控制非易失性存儲器儲存裝置100的程序碼儲存于非易失性存儲器103內(nèi)所有區(qū)塊中的至少一第一區(qū)塊。接著,如步驟S303所述,當(dāng)供電至非易失性存儲器儲存裝置100時,將第一區(qū)塊內(nèi)所儲存的程序碼復(fù)制至非易失性存儲器103內(nèi)所有區(qū)塊中的至少一第二區(qū)塊。于本實施例中,當(dāng)?shù)谝粎^(qū)塊內(nèi)所儲存的程序碼復(fù)制至非易失性存儲器103內(nèi)所有區(qū)塊中的至少一第二區(qū)塊之后,存儲器管理模組IOla更會紀(jì)錄第二區(qū)塊被讀取的次數(shù),并且當(dāng)?shù)诙^(qū)塊的讀取次數(shù)大于一個預(yù)設(shè)值時,更新第二區(qū)塊內(nèi)所儲存的程序碼。故基于上述可知,由于控制器101所執(zhí)行用以控制非易失性存儲器儲存裝置100的程序碼已被儲存在非易失性存儲器103中的至少一區(qū)塊,所以控制器101內(nèi)的程序存儲器IOlh即可省略,以節(jié)省控制器101的成本。另外,當(dāng)主機供電至非易失性存儲器儲存裝置100時,存有程序碼的區(qū)塊會被控制器101復(fù)制至另一區(qū)塊中。由此,被復(fù)制存有程序碼的區(qū)塊就會替代原存有程序碼的區(qū)塊,而此用意乃是為了要顧全原存有程序碼的區(qū)塊不會受到讀取干擾的影響,所以程序碼發(fā)生錯誤、異常或遺失的現(xiàn)象就會大大地降低。此外,由于被復(fù)制存有程序碼的區(qū)塊在非易失性存儲器儲存裝置100的運作期間還是會很頻繁地被讀取,所以依據(jù)本發(fā)明的精神,當(dāng)被復(fù)制存有程序碼的區(qū)塊的讀取次數(shù)大于一個預(yù)設(shè)值(即有可能發(fā)生讀取干擾的讀取次數(shù),例如百萬次,但不限制于此時),被復(fù)制存有程序碼的區(qū)塊的資料更新方式會與上述實施例類似,于此并不再加以贅述。有鑒于此,本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法不但可以確保讀取非揮性存儲器103內(nèi)所儲存的所有資料的正確性外,也可確保當(dāng)控制器101所執(zhí)行用以控制非易失性存儲器儲存裝置100的程序碼存在非揮性存儲器103的完整性。因此,本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法可適用于各種以非易失性存儲器作為儲存媒體的裝置。例如圖4所繪示的USB快閃碟402、數(shù)碼相機(攝影機)404所使用的SD卡404a、MMC卡404b、CF卡4(Mc與記憶棒(memorystick)404d,以及固態(tài)硬盤406等。當(dāng)中尤以固態(tài)硬盤406更需要好的防止非易失性存儲器發(fā)生讀取干擾的方法,來抑制讀取干擾發(fā)生的機率。綜上所述,本發(fā)明所提供的防止非易失性存儲器發(fā)生讀取干擾的方法主要是利用計數(shù)器及讀取次數(shù)表來各別計數(shù)及記錄非易失性存儲器內(nèi)每一個區(qū)塊或分頁被讀取的次數(shù)。由此,當(dāng)非易失性存儲器內(nèi)某一個區(qū)塊或分頁被讀取的次數(shù)大于預(yù)設(shè)值時,將此區(qū)塊或?qū)⒋朔猪撍`屬的區(qū)塊所儲存的資料更新。因此,本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法,不但可以有效地抑制讀取干擾發(fā)生的機率,且可以正確地讀取非易失性存儲器內(nèi)所儲存的所有資料。雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。權(quán)利要求1.一種防止非易失性存儲器發(fā)生讀取干擾的方法,適用于一非易失性存儲器儲存裝置,其中該易失性存儲器具有多數(shù)個區(qū)塊,且每一個區(qū)塊具有多數(shù)個分頁,該方法包括將該非易失性存儲器儲存裝置的一控制器所執(zhí)行用以控制該非易失性存儲器儲存裝置的一程序碼儲存于該些區(qū)塊中的至少一第一區(qū)塊;以及當(dāng)供電至該非易失性存儲器儲存裝置時,將該第一區(qū)塊內(nèi)所儲存的該程序碼復(fù)制至該些區(qū)塊中的至少一第二區(qū)塊。2.如權(quán)利要求1所述的防止非易失性存儲器發(fā)生讀取干擾的方法,其特征在于,還包括紀(jì)錄該第二區(qū)塊被讀取的次數(shù);以及當(dāng)該第二區(qū)塊的讀取次數(shù)大于一預(yù)設(shè)值時,更新該第二區(qū)塊內(nèi)所儲存的該程序碼。3.如權(quán)利要求2所述的防止非易失性存儲器發(fā)生讀取干擾的方法,其特征在于,于“紀(jì)錄該第二區(qū)塊被讀取的次數(shù)”的步驟包括利用一讀取次數(shù)表紀(jì)錄該第二區(qū)塊被讀取的次數(shù),其中該讀取次數(shù)表具有對應(yīng)該第二區(qū)塊的一第一計數(shù)值,且該第一計數(shù)值用以表示為該第二區(qū)塊被讀取的次數(shù)。4.如權(quán)利要求3所述的防止非易失性存儲器發(fā)生讀取干擾的方法,其特征在于,于“更新該第二區(qū)塊內(nèi)所儲存的該程序碼”的步驟包括將該第二區(qū)塊內(nèi)所儲存的該程序碼復(fù)制至該些區(qū)塊中的至少一第三區(qū)塊,其中該讀取次數(shù)表還具有對應(yīng)該第三區(qū)塊的一第二計數(shù)值,且該第二計數(shù)值用以表示為該第三區(qū)塊被讀取的次數(shù);以及以該第三區(qū)塊替代該第二區(qū)塊,并且更新該第一計數(shù)值。5.如權(quán)利要求4所述的防止非易失性存儲器發(fā)生讀取干擾的方法,其特征在于,于“更新該第二區(qū)塊內(nèi)所儲存的該程序碼”的步驟還包括將相鄰于該第二區(qū)塊的至少一第四區(qū)塊內(nèi)原先所儲存的資料復(fù)制至該些區(qū)塊中的一第五區(qū)塊,其中該讀取次數(shù)表還具有對應(yīng)該第四區(qū)塊及該第五區(qū)塊的一第三計數(shù)值與一第四計數(shù)值,且該第三計數(shù)值及該第四計數(shù)值用以各別表示為該第四區(qū)塊及該第五區(qū)塊被讀取的次數(shù);以及以該第五區(qū)塊替代該第四區(qū)塊,并且更新該第三計數(shù)值。6.如權(quán)利要求1所述的防止非易失性存儲器發(fā)生讀取干擾的方法,其特征在于,該非易失性存儲器為一單層存儲單元快閃存儲器或一多層存儲單元快閃存儲器。7.—種控制器,其適用于一非易失性存儲器儲存裝置,其特征在于,該控制器包括一微處理單元,用以控制該控制器的整體運作;一非易失性存儲器接口,電性連接至該微處理單元并且用以存取該非易失性存儲器儲存裝置的一非易失性存儲器,其中該易失性存儲器具有多數(shù)個區(qū)塊;一緩沖存儲器,電性連接至該微處理單元并且用以暫時地儲存資料;以及一存儲器管理模組,電性連接至該微處理單元并且用以管理該非易失性存儲器,其中該存儲器管理模組會將該控制器所執(zhí)行用以控制該非易失性存儲器儲存裝置的一程序碼儲存于該些區(qū)塊中的至少一第一區(qū)塊,且當(dāng)供電至該非易失性存儲器儲存裝置時,該存儲器管理模組會將該第一區(qū)塊內(nèi)所儲存的該程序碼復(fù)制至該些區(qū)塊中的至少一第二區(qū)塊。8.如權(quán)利要求7所述的控制器,其特征在于,該存儲器管理模組會紀(jì)錄該第二區(qū)塊被讀取的次數(shù),且當(dāng)該第二區(qū)塊的讀取次數(shù)大于一預(yù)設(shè)值時,該存儲器管理模組會更新該第二區(qū)塊內(nèi)所儲存的該程序碼。9.如權(quán)利要求8所述的控制器,其特征在于,該存儲器管理模組利用一讀取次數(shù)表紀(jì)錄該第二區(qū)塊被讀取的次數(shù),其中該讀取次數(shù)表具有對應(yīng)該第二區(qū)塊的一第一計數(shù)值,且該第一計數(shù)值用以表示為該第二區(qū)塊被讀取的次數(shù)。10.如權(quán)利要求9所述的控制器,其特征在于,該存儲器管理模組更新該第二區(qū)塊內(nèi)所儲存的該程序碼的方式包括將該第二區(qū)塊內(nèi)所儲存的該程序碼重新寫回該第二區(qū)塊,并且更新該第一計數(shù)值;或者,將該第二區(qū)塊內(nèi)所儲存的該程序碼復(fù)制至該些區(qū)塊中的至少一第三區(qū)塊,并以該第三區(qū)塊替代該第二區(qū)塊,且更新該第一計數(shù)值,其中,該讀取次數(shù)表還具有對應(yīng)該第三區(qū)塊的一第二計數(shù)值,且該第二計數(shù)值用以表示為該第三區(qū)塊被讀取的次數(shù)。11.如權(quán)利要求10所述的控制器,其特征在于,該存儲器管理模組更新該第二區(qū)塊內(nèi)所儲存的該程序碼的方式還包括將相鄰于該第二區(qū)塊的至少一第四區(qū)塊內(nèi)原先所儲存的資料同時更新,其中,該讀取次數(shù)表還具有對應(yīng)該第四區(qū)塊的一第三計數(shù)值,且該第三計數(shù)值用以表示為該第四區(qū)塊被讀取的次數(shù)。全文摘要本發(fā)明提供一種防止非易失性存儲器發(fā)生讀取干擾的方法,適用于一非易失性存儲器儲存裝置,其中易失性存儲器具有多數(shù)個區(qū)塊,且每一個區(qū)塊具有多數(shù)個分頁。本發(fā)明所提出的防止非易失性存儲器發(fā)生讀取干擾的方法包括將非易失性存儲器儲存裝置的控制器所執(zhí)行用以控制非易失性存儲器儲存裝置的程序碼儲存于該些區(qū)塊中的至少一第一區(qū)塊;以及當(dāng)供電至非易失性存儲器儲存裝置時,將第一區(qū)塊內(nèi)所儲存的程序碼復(fù)制至該些區(qū)塊中的至少一第二區(qū)塊。由此,被復(fù)制存有程序碼的區(qū)塊就會替代原存有程序碼的區(qū)塊,而此用意乃是為了要顧全原存有程序碼的區(qū)塊不會受到讀取干擾的影響,所以程序碼發(fā)生錯誤、異?;蜻z失的現(xiàn)象就會大大地降低。文檔編號G11C16/10GK102157202SQ20111011808公開日2011年8月17日申請日期2008年1月22日優(yōu)先權(quán)日2008年1月22日發(fā)明者陳振業(yè)申請人:群聯(lián)電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
大同县| 雅安市| 白河县| 平远县| 永川市| 威信县| 镇平县| 兴安盟| 天台县| 剑阁县| 汉中市| 武宣县| 永顺县| 桂阳县| 即墨市| 鸡东县| 乌兰察布市| 中江县| 枞阳县| 廊坊市| 临邑县| 日喀则市| 凤庆县| 天祝| 台江县| 宁安市| 明星| 陇川县| 西贡区| 桦川县| 天祝| 彰化县| 平定县| 庆阳市| 荣昌县| 英吉沙县| 贡山| 茌平县| 嘉荫县| 东丽区| 道真|