存儲器芯片與數(shù)據(jù)保護(hù)方法
【專利摘要】一種存儲器芯片與數(shù)據(jù)保護(hù)方法。該存儲器芯片,耦接一主機(jī),包括存儲器與控制器。存儲器用以預(yù)先載入多個(gè)具有相同的內(nèi)容的啟動(dòng)映像文檔。控制器耦接至存儲器,用以處理存儲器芯片與主機(jī)之間的數(shù)據(jù)傳輸??刂破鬟M(jìn)一步判斷存儲器芯片是否第一次進(jìn)入一啟動(dòng)模式,并且當(dāng)存儲器芯片第一次進(jìn)入啟動(dòng)模式時(shí),控制器存取存儲器,用以自多個(gè)啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔,并且將正確的啟動(dòng)映像文檔傳送至主機(jī)。
【專利說明】存儲器芯片與數(shù)據(jù)保護(hù)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種可有效保護(hù)正確數(shù)據(jù)的系統(tǒng)及方法,特別是涉及可保護(hù)存儲器芯片中正確數(shù)據(jù)的系統(tǒng)及方法。
【背景技術(shù)】
[0002]近年來,越來越多種類的電子產(chǎn)品被開發(fā)出來,像是手機(jī)、平板計(jì)算機(jī)、MP3隨身聽、隨身硬盤、衛(wèi)星導(dǎo)航、數(shù)字相機(jī)、手持式游戲裝置等等。電子產(chǎn)品內(nèi)通常配置存儲器裝置,用以儲存電子產(chǎn)品系統(tǒng)內(nèi)主機(jī)的運(yùn)作所必備的數(shù)據(jù),以及使用者的個(gè)人數(shù)據(jù)等。
[0003]由于主機(jī)的運(yùn)作所必備的數(shù)據(jù)為用以啟動(dòng)及初始化主機(jī),并且致使該電子裝置開始正常運(yùn)作的重要數(shù)據(jù),為了避免存儲器裝置的數(shù)據(jù)損壞導(dǎo)致電子產(chǎn)品系統(tǒng)無法順利被啟動(dòng),需要一種可有效保護(hù)正確數(shù)據(jù)的系統(tǒng)及方法。
【發(fā)明內(nèi)容】
[0004]根據(jù)本發(fā)明的一實(shí)施例,一種存儲器芯片,稱接一主機(jī),包括存儲器與控制器。存儲器用以預(yù)先載入多個(gè)具有相同的內(nèi)容的啟動(dòng)映像文檔??刂破黢罱又链鎯ζ?,用以處理存儲器芯片與主機(jī)之間的數(shù)據(jù)傳輸,其中控制器進(jìn)一步判斷存儲器芯片是否第一次進(jìn)入一啟動(dòng)模式,并且當(dāng)存儲器芯片第一次進(jìn)入啟動(dòng)模式時(shí),控制器存取存儲器,用以自多個(gè)啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔,并且將正確的啟動(dòng)映像文檔傳送至主機(jī)。
[0005]根據(jù)本發(fā)明的另一實(shí)施例,一種數(shù)據(jù)保護(hù)方法,包括:將多個(gè)具有相同的內(nèi)容的啟動(dòng)映像文檔預(yù)先載入一存儲器芯片;判斷存儲器芯片是否第一次進(jìn)入一啟動(dòng)模式;當(dāng)存儲器芯片第一次進(jìn)入啟動(dòng)模式時(shí),自啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔;以及將正確的啟動(dòng)映像文檔傳送至耦該存儲器芯片的一主機(jī)。
[0006]根據(jù)本發(fā)明的另一實(shí)施例,一種數(shù)據(jù)保護(hù)方法,包括:判斷存儲器芯片是否進(jìn)入一啟動(dòng)模式;判斷存儲器芯片是否預(yù)先載入多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔;當(dāng)存儲器芯片進(jìn)入啟動(dòng)模式且存儲器芯片預(yù)先載入多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔時(shí),自啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔傳送至耦接存儲器芯片的一主機(jī)。
[0007]基于上述,在本發(fā)明的范例實(shí)施例中,當(dāng)存儲器芯片進(jìn)入啟動(dòng)模式且存儲器芯片預(yù)先載入多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔時(shí),會(huì)自啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔傳送至耦接存儲器芯片的一主機(jī),防止了由于啟動(dòng)映像文檔產(chǎn)生過多位錯(cuò)誤因而致使存儲器芯片甚至于配置存儲器芯片的主機(jī)無法被啟動(dòng)的問題。從而克服了現(xiàn)有技術(shù)中由于存儲器裝置的數(shù)據(jù)損壞而導(dǎo)致電子產(chǎn)品系統(tǒng)無法順利被啟動(dòng)的缺陷。
【專利附圖】
【附圖說明】
[0008]圖1是顯示根據(jù)本發(fā)明的一實(shí)施例所述的存儲器芯片方塊圖。
[0009]圖2是顯示根據(jù)本發(fā)明的一實(shí)施例所述的燒錄啟動(dòng)映像文檔的方法流程圖。
[0010]圖3是顯示根據(jù)本發(fā)明的一實(shí)施例所述的數(shù)據(jù)保護(hù)方法流程圖。[0011]圖4是顯示根據(jù)本發(fā)明的另一實(shí)施例所述的數(shù)據(jù)保護(hù)方法流程圖。
[0012]圖5是顯示根據(jù)本發(fā)明的一實(shí)施例所述的控制器方塊圖。
[0013]圖6是顯示根據(jù)本發(fā)明的又另一實(shí)施例所述的數(shù)據(jù)保護(hù)方法流程圖。
[0014]圖7是顯示根據(jù)本發(fā)明的一實(shí)施例所述的取得正確的啟動(dòng)映像文檔的方法流程圖。
[0015]圖8是顯示根據(jù)本發(fā)明的一實(shí)施例所述的合并操作流程圖。
[0016]圖9是顯示根據(jù)本發(fā)明的一實(shí)施例所述的合并操作示意圖。
[0017]附圖符號說明
[0018]50 主機(jī)
[0019]60 接口
[0020]100存儲器芯片
[0021]110控制器
[0022]120存儲器
[0023]530錯(cuò)誤檢測與更正模塊
[0024]540合并模塊
[0025]900、901、902、90M 啟動(dòng)映像文檔
[0026]950正確的啟動(dòng)映像文檔復(fù)本
【具體實(shí)施方式】
[0027]為使本發(fā)明的制造、操作方法、目標(biāo)和優(yōu)點(diǎn)能更明顯易懂,下文特舉幾個(gè)較佳實(shí)施例,并配合附圖詳細(xì)說明如下。
[0028]實(shí)施例:
[0029]圖1是顯示根據(jù)本發(fā)明的一實(shí)施例所述的存儲器芯片方塊圖。存儲器芯片100可包含存儲器120與用以控制存儲器120及處理存儲器芯片100與主機(jī)50之間的數(shù)據(jù)傳輸?shù)目刂破?10。根據(jù)本發(fā)明的一實(shí)施例,控制器110與存儲器120可分別為一控制器晶粒(die)與一存儲器晶粒,共同封裝于存儲器芯片100中。存儲器芯片100可通過一接口 60耦接至一主機(jī)50。值得注意的是,為了簡化說明,圖1顯示為一簡化過的方塊圖,其中僅顯示出與本發(fā)明相關(guān)的部分。然而,本領(lǐng)域技術(shù)人員應(yīng)可理解觸控裝置亦可包括其他圖中未顯示的電路元件,因此本發(fā)明并不限于圖中所示的內(nèi)容。存儲器芯片100及主機(jī)50可于客戶端安裝或配置于一電子裝置內(nèi),并且可與電子裝置的硬件與軟件/固件模塊組合為一系統(tǒng)。于本發(fā)明的實(shí)施例中,電子裝置可以是移動(dòng)通訊裝置、平板計(jì)算機(jī)、MP3隨身聽、隨身硬盤、衛(wèi)星導(dǎo)航、數(shù)字相機(jī)、手持式游戲裝置等相關(guān)產(chǎn)品。
[0030]在存儲器芯片100的制造生產(chǎn)過程中,工廠端通常會(huì)通過機(jī)臺或制具將客戶所指定的重要數(shù)據(jù)通過工廠端外接的計(jì)算機(jī)裝置(圖未繪示)預(yù)先載入于存儲器120中,再將存儲器芯片100焊接在印刷電路板上。預(yù)先載入于存儲器晶粒中的重要數(shù)據(jù)可包含啟動(dòng)映像文檔(boot image)(或稱啟動(dòng)程序碼(boot code))。啟動(dòng)映像文檔可包含許多軟件或固件程序以及重要的系統(tǒng)參數(shù),使得耦接至存儲器芯片100的主機(jī)50可根據(jù)啟動(dòng)映像文檔初始化主機(jī)50本身以及電子裝置內(nèi)的其它硬件,或驅(qū)動(dòng)存儲器芯片100與主機(jī)50內(nèi)的其他硬件,使得主機(jī)50可具備基本的輸入/輸出能力。例如,具備可存取及控制存儲器芯片100以及其他硬件的能力。主機(jī)50可以包含于電子裝置內(nèi),例如,是電子裝置內(nèi)的一微處理器(MCU),亦可以獨(dú)立于電子裝置,例如,是于工廠端外接的計(jì)算機(jī)裝置。
[0031]一般而言,存儲器芯片100被焊接在印刷電路板前,會(huì)有一份啟動(dòng)映像文檔預(yù)先載入或燒錄于存儲器120中。接著,再將存儲器芯片100焊接印刷電路板上。然而,焊接過程中的環(huán)境高溫通常會(huì)導(dǎo)致此單一份的啟動(dòng)映像文檔產(chǎn)生位錯(cuò)誤。當(dāng)位錯(cuò)誤過多時(shí),啟動(dòng)映像文檔會(huì)被視為損毀,因而導(dǎo)致存儲器芯片100甚至于耦接存儲器芯片的主機(jī)50無法被啟動(dòng)。為了解決此問題,本發(fā)明提出一種可有效保護(hù)正確數(shù)據(jù)的系統(tǒng)及方法。
[0032]繼續(xù)參考圖1,存儲器120中包含了預(yù)先載入的多個(gè)個(gè)啟動(dòng)映像文檔。根據(jù)本發(fā)明的一實(shí)施例,各啟動(dòng)映像文檔具有相同的內(nèi)容??刂破?10耦接存儲器120,可處理存儲器芯片100與主機(jī)50之間的數(shù)據(jù)傳輸。此外,控制器110可判斷存儲器芯片100是否第一次進(jìn)入一啟動(dòng)模式。當(dāng)存儲器芯片100第一次進(jìn)入啟動(dòng)模式時(shí),控制器110可存取存儲器120,由這些啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔,并且將該份正確的啟動(dòng)映像文檔傳送至主機(jī)50。
[0033]圖2是顯示根據(jù)本發(fā)明的一實(shí)施例所述的燒錄啟動(dòng)映像文檔的方法流程圖。根據(jù)本發(fā)明的一實(shí)施例,在制造存儲器芯片100時(shí),制造商可將多個(gè)啟動(dòng)映像文檔預(yù)先載入(pre-load)存儲器芯片100的存儲器120中(步驟S202)。根據(jù)本發(fā)明的一實(shí)施例,為了保護(hù)啟動(dòng)映像文檔的內(nèi)容,預(yù)先載入的多個(gè)啟動(dòng)映像文檔可具有相同的內(nèi)容。即,除了原始的啟動(dòng)映像文檔外,存儲器120中還可儲存一份以上的備份啟動(dòng)映像文檔。接著,制造商可設(shè)定用以指示存儲器芯片儲存多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔的一第一標(biāo)志FMultia)py(步驟S204),例如,設(shè)定Ffclti一=1,并且將第一標(biāo)志FMultiaw儲存于存儲器120中。接著,制造商可依照客戶需求組裝或焊接存儲器芯片100 (步驟S206)。例如,將存儲器芯片100焊接于印刷電路板上。
[0034]待存儲器芯片100組裝完成后,存儲器芯片100可進(jìn)一步于客戶端被安裝或配置于一電子裝置中。當(dāng)電子裝置被供電時(shí),存儲器芯片100內(nèi)的控制器110可根據(jù)本發(fā)明的數(shù)據(jù)保護(hù)方法載入啟動(dòng)映像文檔,以解決先前因過多的位錯(cuò)誤導(dǎo)致存儲器芯片100甚至于配置存儲器芯片100的電子裝置無法被順利啟動(dòng)的問題。
[0035]圖3是顯示根據(jù)本發(fā)明的一實(shí)施例所述的數(shù)據(jù)保護(hù)方法流程圖。首先,將多個(gè)啟動(dòng)映像文檔預(yù)先載入一存儲器芯片100 (步驟S301)。要注意的是,步驟S301通常是在存儲器芯片100尚未焊接于印刷電路板前執(zhí)行。當(dāng)焊接完成且耦接至主機(jī)50后,存儲器芯片100才會(huì)執(zhí)行步驟S302以下的步驟。當(dāng)電子裝置被供電時(shí),判斷存儲器芯片100是否第一次進(jìn)入一啟動(dòng)模式(boot mode)(步驟S302)。若是,則自預(yù)先載入的多個(gè)啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔(步驟S304),接著,將正確的啟動(dòng)映像文檔傳送至主機(jī)50 (步驟S306)。若否,則不執(zhí)行所述的數(shù)據(jù)保護(hù)方法。
[0036]根據(jù)本發(fā)明的一實(shí)施例,于步驟S302中,控制器302可根據(jù)接口 60上傳送的一信號波形判斷存儲器芯片100是否進(jìn)入啟動(dòng)模式。當(dāng)此信號波形符合對應(yīng)的技術(shù)規(guī)格所定義的一既定波形時(shí),可判斷存儲器芯片進(jìn)入啟動(dòng)模式。在一實(shí)施例中,存儲器芯片100可以是符合MMCA協(xié)會(huì)(MultiMediaCard Association,多媒體卡協(xié)會(huì))所訂立的內(nèi)嵌式存儲器標(biāo)準(zhǔn)規(guī)格的一內(nèi)嵌式多媒體卡(embedded MultiMediaCard, eMMC)芯片。此eMMC芯片100可通過eMMC界面60耦接主機(jī)50。當(dāng)主機(jī)50未完成啟動(dòng)程序前,主機(jī)50無法下達(dá)完整的數(shù)據(jù)存取指令給存儲器芯片100,以取得存儲器芯片100中啟動(dòng)映像文檔藉以執(zhí)行后續(xù)的啟動(dòng)程序。但此時(shí)主機(jī)50可于eMMC界面60上特定的一個(gè)或多個(gè)接腳上傳輸特定的電壓或信號波形,使eMMC芯片100根據(jù)此電壓或信號波形進(jìn)入eMMC啟動(dòng)模式(eMMC boot mode)。于eMMC啟動(dòng)模式中,eMMC芯片100可主動(dòng)提供啟動(dòng)映像文檔給主機(jī)50。此外,在步驟S302中,當(dāng)存儲器芯片100根據(jù)接口 60上的信號波形進(jìn)入了啟動(dòng)模式時(shí),可根據(jù)存儲器芯片100中是否預(yù)先設(shè)定了一第一標(biāo)志以判斷是否第一次進(jìn)入此啟動(dòng)模式。在一實(shí)施例中,此第一標(biāo)志可為圖2步驟S204所設(shè)定的第一標(biāo)志(例如,設(shè)定FMultiQ)py=l)。當(dāng)存儲器芯片100于第一次進(jìn)入此啟動(dòng)模式且將正確的啟動(dòng)映像文檔傳送至主機(jī)50后(步驟S306),存儲器芯片100還可清除該第一標(biāo)志(例如,設(shè)定FMultiew=0),即是說,后續(xù)再次啟動(dòng)存儲器芯片100時(shí),該第一標(biāo)志為清除狀態(tài)。根據(jù)本發(fā)明的另一實(shí)施例,于步驟S302中,控制器302還可僅根據(jù)前述的存儲于存儲器120中的第一標(biāo)志FMultiajpy判斷存儲器芯片100是否第一次進(jìn)入啟動(dòng)模式。
[0037]圖4是顯示根據(jù)本發(fā)明的另一實(shí)施例所述的數(shù)據(jù)保護(hù)方法流程圖。首先,將多個(gè)啟動(dòng)映像文檔預(yù)先載入存儲器芯片100 (步驟S401)。類似于步驟S301,步驟S401是在存儲器芯片100尚未焊接于印刷電路板前執(zhí)行。當(dāng)焊接完成且耦接至主機(jī)50后,存儲器芯片100才會(huì)執(zhí)行步驟S402以下的步驟。當(dāng)電子裝置被供電時(shí),判斷存儲器芯片100是否進(jìn)入一啟動(dòng)模式(boot mode)(步驟S402)。若是,則進(jìn)一步判斷存儲器芯片100是否預(yù)先載入多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔(步驟S404)。若是,則自預(yù)先載入的多個(gè)啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔(步驟S406),接著,將正確的啟動(dòng)映像文檔傳送至耦接存儲器芯片100的主機(jī)50 (步驟S408)。若存儲器芯片100并未進(jìn)入一啟動(dòng)模式,或者存儲器芯片100并未預(yù)先載入多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔,則不執(zhí)行所述的數(shù)據(jù)保護(hù)方法。
[0038]與圖3的實(shí)施例相較,其差異在于本實(shí)施例的存儲器芯片100是根據(jù)第一標(biāo)志判斷是否預(yù)先載入多個(gè)啟動(dòng)映像文檔,而非判斷存儲器芯片100是否第一次進(jìn)入啟動(dòng)模式。其余部份皆為相同,就不在此贅述。值得注意的是,存儲器芯片100內(nèi)也可以儲存其他標(biāo)志或變數(shù),用以指示存儲器芯片100是否預(yù)先載入多個(gè)啟動(dòng)映像文檔或第一次進(jìn)入啟動(dòng)模式,因此本發(fā)明并不限于此。
[0039]圖5是顯示根據(jù)本發(fā)明的一實(shí)施例所述的控制器方塊圖。根據(jù)本發(fā)明的一實(shí)施例,存儲器120是以數(shù)據(jù)區(qū)塊來存儲數(shù)據(jù),因此預(yù)先載入存儲器120的多個(gè)啟動(dòng)映像文檔各包括多個(gè)數(shù)據(jù)區(qū)塊,控制器110可至少包括一錯(cuò)誤檢測與更正模塊530與一合并模塊540。錯(cuò)誤檢測模塊530用以檢測并更正存儲器120內(nèi)所儲存的數(shù)據(jù)的位錯(cuò)誤。一般而言,錯(cuò)誤檢測與更正模塊530可設(shè)定一可修復(fù)臨界值。錯(cuò)誤檢測與更正模塊530可通過既定的演算法檢測一數(shù)據(jù)區(qū)塊內(nèi)的錯(cuò)誤位數(shù)量。當(dāng)錯(cuò)誤位數(shù)量未超過此可修復(fù)臨界值時(shí),錯(cuò)誤檢測與更正模塊530有能力更正數(shù)據(jù)區(qū)塊內(nèi)的錯(cuò)誤位。更正后的數(shù)據(jù)區(qū)塊仍可被視為正確的數(shù)據(jù)區(qū)塊。然而,當(dāng)錯(cuò)誤位數(shù)量超過此可修復(fù)臨界值時(shí),錯(cuò)誤檢測與更正模塊530將無法修復(fù)此數(shù)據(jù)區(qū)塊內(nèi)的錯(cuò)誤位,因而此數(shù)據(jù)區(qū)塊將被視為損壞的數(shù)據(jù)區(qū)塊。合并模塊540用以自一個(gè)或多個(gè)這些啟動(dòng)映像文檔載入正確的數(shù)據(jù)區(qū)塊,以取得該份正確的啟動(dòng)映像文檔。在本發(fā)明另一實(shí)施例中,合并模塊540還用以執(zhí)行合并(merge)操作,即用以合并預(yù)先載入的多個(gè)啟動(dòng)映像文檔中正確的數(shù)據(jù)區(qū)塊,使這些正確的數(shù)據(jù)區(qū)塊合并成一啟動(dòng)映像文檔復(fù)本,并且將該啟動(dòng)映像文檔復(fù)本儲存于該存儲器120中,其中該啟動(dòng)映像文檔復(fù)本與前述傳送至主機(jī)50的該份正確的啟動(dòng)映像文檔內(nèi)容相同。在一實(shí)施例中,控制器110于取得該份正確的啟動(dòng)映像文檔后設(shè)定一第二標(biāo)志,當(dāng)存儲器芯片100處于一閑置狀態(tài)時(shí),合并模塊540還根據(jù)該第二標(biāo)志合并這些正確的數(shù)據(jù)區(qū)塊,并于合并成該啟動(dòng)映像文檔復(fù)本后,清除該第二標(biāo)志。此外,值得注意的是,為了簡化說明,圖5顯示為一簡化過的方塊圖,其中僅顯示出與本發(fā)明相關(guān)的部分。然而,本領(lǐng)域技術(shù)人員可理解控制器110亦可包括其他圖中未顯示的電路元件,因此本發(fā)明并不限于圖中所示的內(nèi)容。
[0040]以下段落將通過更詳細(xì)的流程圖介紹本發(fā)明所提出的數(shù)據(jù)保護(hù)方法。
[0041]圖6是顯示根據(jù)本發(fā)明的又另一實(shí)施例所述的數(shù)據(jù)保護(hù)方法流程圖。請一并參閱圖2以及圖6。首先,將多個(gè)啟動(dòng)映像文檔預(yù)先載入存儲器芯片100(步驟S601)。要注意的是,步驟S601通常是在存儲器芯片100尚未焊接于印刷電路板前執(zhí)行。當(dāng)焊接完成且耦接至主機(jī)50后,存儲器芯片100才會(huì)執(zhí)行步驟S602以下的步驟。將電源供應(yīng)至電子裝置,以致使主機(jī)50開機(jī)(步驟S602)。接著,存儲器芯片100的控制器110可先判斷存儲器芯片100是否第一次進(jìn)入一啟動(dòng)模式(步驟S604)。若是,則控制器110執(zhí)行流程A,用以自預(yù)先載入的多個(gè)啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔(步驟S606)。根據(jù)本發(fā)明的一實(shí)施例,控制器110可藉由分別自一個(gè)或多個(gè)啟動(dòng)映像文檔中載入正確的數(shù)據(jù)區(qū)塊,以取得一份正確的啟動(dòng)映像文檔。流程A將于圖7作更詳細(xì)的介紹。待流程A結(jié)束后,控制器110判斷是否已成功取得正確的啟動(dòng)映像文檔(步驟S608)。若是,則控制器110可清除第一標(biāo)志FMultia)py (步驟S610),例如,設(shè)定FMultia)py=0。接著,控制器110可設(shè)定并儲存第二標(biāo)志Fsfageajpy于存儲器120中(步驟S612),例如,設(shè)定Fsfag^py=I。根據(jù)本發(fā)明的一實(shí)施例,第二標(biāo)志Fsfag^py用以指示是否須對預(yù)先載入的多個(gè)啟動(dòng)映像文檔執(zhí)行合并操作,合并操作將于以下段落作進(jìn)一步介紹。接著,控制器110可將正確的啟動(dòng)映像文檔傳送至主機(jī)50(步驟S614)。另一方面,若存儲器芯片100并非第一次進(jìn)入啟動(dòng)模式,或者無法于流程A中成功取得正確的啟動(dòng)映像文檔,則此流程結(jié)束。
[0042]值得注意的是,于本發(fā)明的實(shí)施例中,執(zhí)行步驟S610、S612與S614的先后順序可任意調(diào)整,而本發(fā)明并不限于任一種實(shí)施方`式。
[0043]圖7是顯示根據(jù)本發(fā)明的一實(shí)施例所述的取得正確的啟動(dòng)映像文檔的方法流程圖。請一并參閱圖5與圖7。根據(jù)本發(fā)明的一實(shí)施例,假設(shè)存儲器120內(nèi)儲存M份內(nèi)容相同的啟動(dòng)映像文檔,其中M為大于I的一正整數(shù),而各啟動(dòng)映像文檔分別包括N個(gè)數(shù)據(jù)區(qū)塊,其中N為一正整數(shù)。于流程A開始時(shí),控制器110先設(shè)定變數(shù)n=0 (步驟S702),以及設(shè)定變數(shù)m=0 (步驟S704)。接著,控制器110存取存儲器120,用以載入第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊(步驟S706)。接著,控制器110可判斷第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊是否為正確的數(shù)據(jù)區(qū)塊(步驟S708)。如上所述,控制器110可通過錯(cuò)誤檢測與更正模塊(例如,錯(cuò)誤檢測與更正模塊530)的檢測結(jié)果判斷數(shù)據(jù)區(qū)塊是否為正確的數(shù)據(jù)區(qū)塊。
[0044]若第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊是正確的數(shù)據(jù)區(qū)塊(步驟S708的是),則控制器110累加變數(shù)n (步驟S710)。接著,控制器110判斷第m份啟動(dòng)映像文檔的所有數(shù)據(jù)區(qū)塊是否已全數(shù)檢查完畢,例如,判斷變數(shù)n是否等于N(步驟S712)。若否,則回到步驟S704,控制器110設(shè)定變數(shù)m=0,并且接著存取存儲器120,用以載入第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊(步驟S706)。若控制器110判斷正確數(shù)據(jù)區(qū)塊已全數(shù)載入(步驟S712的是),則設(shè)定變數(shù)LoadFail=O (步驟S714),代表控制器110已成功取得正確的啟動(dòng)映像文檔。
[0045]另一方面,若第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊不是正確的數(shù)據(jù)區(qū)塊(步驟S708的否),則控制器110累加變數(shù)m (步驟S716)。接著,控制器接著存取存儲器120,用以載入第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊(步驟S718)。接著,控制器110可判斷第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊是否為正確的數(shù)據(jù)區(qū)塊(步驟S720)。如上所述,控制器110可通過錯(cuò)誤檢測與更正模塊(例如,錯(cuò)誤檢測與更正模塊530)的檢測結(jié)果判斷數(shù)據(jù)區(qū)塊是否為正確的數(shù)據(jù)區(qū)塊。
[0046]若第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊是正確的數(shù)據(jù)區(qū)塊,則控制器110回到步驟S710累加變數(shù)n。若第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊不是正確的數(shù)據(jù)區(qū)塊,則控制器110進(jìn)一步判斷M份啟動(dòng)映像文檔是否已全數(shù)檢查完畢,例如,判斷變數(shù)m是否等于M(步驟S722)。若否,則控制器110回到步驟S716累加變數(shù)m。若M份啟動(dòng)映像文檔已全數(shù)檢查完畢,由于此時(shí)尚未能完整取得一份啟動(dòng)映像文檔的所有正確的數(shù)據(jù)區(qū)塊,因此控制器110設(shè)定變數(shù)LoadFai 1=1 (步驟S724),代表控制器110無法成功取得正確的啟動(dòng)映像文檔。
[0047]值得注意的是,雖然于圖7所示的流程圖中,當(dāng)控制器110于其他份啟動(dòng)映像文檔取得正確的數(shù)據(jù)區(qū)塊后,會(huì)回到第1份啟動(dòng)映像文檔載入后續(xù)的數(shù)據(jù)區(qū)塊(例如,控制器110于步驟S720中判斷第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊是正確的數(shù)據(jù)區(qū)塊后,會(huì)回到步驟S710累加變數(shù)n,并且爾后會(huì)回到步驟S704設(shè)定變數(shù)m=0,用以繼續(xù)自第一份啟動(dòng)映像文檔載入后續(xù)的數(shù)據(jù)區(qū)塊),然而本發(fā)明并不限于此。舉例而言,于其他實(shí)施例中,當(dāng)控制器110于步驟S720中判斷第m份啟動(dòng)映像文檔的第n個(gè)數(shù)據(jù)區(qū)塊是正確的數(shù)據(jù)區(qū)塊后,亦可停留在第m份啟動(dòng)映像文檔繼續(xù)自第m份啟動(dòng)映像文檔載入后續(xù)的數(shù)據(jù)區(qū)塊,因此本發(fā)明并不限于圖7所示的實(shí)施方式。此外,控制器110不一定要依序?yàn)g覽各啟動(dòng)映像文檔,控制器110也可根據(jù)其他控制機(jī)制于M份啟動(dòng)映像文檔中隨機(jī)地尋找正確的數(shù)據(jù)區(qū)塊,因此本發(fā)明并不限于以上所述的實(shí)施方式。
[0048]當(dāng)控制器110成功取得正確的啟動(dòng)映像文檔后,主機(jī)50可自存儲器芯片100接收正確的啟動(dòng)映像文檔,并執(zhí)行接收到的啟動(dòng)映像文檔,以完成既定的啟動(dòng)流程。爾后,主機(jī)50可正常運(yùn)作。根據(jù)本發(fā)明的一實(shí)施例,控制器110可進(jìn)一步于主機(jī)50正常運(yùn)作后,對存儲器120所儲存的多個(gè)內(nèi)容相同的啟動(dòng)映像文檔執(zhí)行合并操作,用以保留一份正確的啟動(dòng)映像文檔復(fù)本,并且擦除其余重復(fù)的啟動(dòng)映像文檔。例如,控制器110可通過合并模塊(例如,合并模塊540)執(zhí)行所述的合并操作。 [0049]圖8是顯示根據(jù)本發(fā)明的一實(shí)施例所述的合并操作流程圖。當(dāng)存儲器芯片100處于一閑置狀態(tài)(idle mode)時(shí)(步驟S802),控制器110可判斷第二標(biāo)志Fsfageajpy是否被設(shè)起(步驟S804),例如,判斷?__7是否等于I。在一實(shí)施例中,當(dāng)判斷到耦接主機(jī)50以及存儲器芯片100的接口 60閑置時(shí),則說明存儲器芯片100處于閑置狀態(tài)。如上所述,第二標(biāo)志Ffageaw可于步驟S612中被設(shè)定,用以指示須對預(yù)先載入的多個(gè)啟動(dòng)映像文檔執(zhí)行合并操作。若Ffag^py被設(shè)起,則控制器對存儲器120所儲存的多個(gè)內(nèi)容相同的啟動(dòng)映像文檔執(zhí)行合并操作,用以保留一正確的啟動(dòng)映像文檔復(fù)本(步驟S806)。另一方面,若控制器110于步驟S804中判斷第二標(biāo)志FMe,geQ)py未被設(shè)起,則代表無須執(zhí)行合并操作。最后,控制器110可清除第二標(biāo)志Fsfageajpy,例如,設(shè)定Fsfageajpy=O (步驟S808)。于合并操作后,正確的啟動(dòng)映像文檔復(fù)本被儲存于存儲器120中,并且其余重復(fù)的啟動(dòng)映像文檔會(huì)被擦除。
[0050]圖9是顯示根據(jù)本發(fā)明的一實(shí)施例所述的合并操作示意圖。圖9左手邊代表合并操作前的多個(gè)啟動(dòng)映像文檔,右手邊代表合并操作后的正確的啟動(dòng)映像文檔復(fù)本,其中啟動(dòng)映像文檔900可以是原始啟動(dòng)映像文檔,而啟動(dòng)映像文檔901、902"AOM可以是啟動(dòng)映像文檔900的備份數(shù)據(jù)。換言之,啟動(dòng)映像文檔900?90M可具有相同的內(nèi)容。于合并操作中,一個(gè)或多個(gè)啟動(dòng)映像文檔中正確的數(shù)據(jù)區(qū)塊(如圖9中由斜線所標(biāo)示出的區(qū)塊)會(huì)被控制器110收集并合并,最后組成正確的啟動(dòng)映像文檔復(fù)本950。
[0051]于本發(fā)明的實(shí)施例中,通過以上所介紹的數(shù)據(jù)保護(hù)方法,由焊接過程中的環(huán)境高溫導(dǎo)致啟動(dòng)映像文檔產(chǎn)生過多位錯(cuò)誤因而致使存儲器芯片甚至于配置存儲器芯片的主機(jī)無法被啟動(dòng)的問題可有效被解決。
[0052]本發(fā)明的上述實(shí)施例能夠以多種方式執(zhí)行,例如使用硬件、軟件或其結(jié)合來執(zhí)行。本領(lǐng)域技術(shù)人員應(yīng)了解執(zhí)行上述功能的任何組件或組件的集合可被視為一個(gè)或多個(gè)控制上述功能的處理器。此一個(gè)或多個(gè)處理器可以多種方式執(zhí)行,例如藉由指定硬件,或使用微碼或軟件來編程的通用硬件來執(zhí)行上述功能。
[0053]權(quán)利要求中用以修飾元件的“第一”、“第二”等序數(shù)詞的使用本身未暗示任何優(yōu)先權(quán)、優(yōu)先次序、各元件之間的先后次序、或方法所執(zhí)行的步驟的次序,而僅用作標(biāo)識來區(qū)分具有相同名稱(具有不同序數(shù)詞)的不同元件。
[0054]本發(fā)明雖以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明的范圍,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍的前提下,可做些許的更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍是以本發(fā)明的權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種存儲器芯片,稱接一主機(jī),包括: 一存儲器,用以預(yù)先載入多個(gè)啟動(dòng)映像文檔,其中這些啟動(dòng)映像文檔具有相同的內(nèi)容;以及 一控制器,耦接至該存儲器,用以處理該存儲器芯片與該主機(jī)之間的數(shù)據(jù)傳輸,其中該控制器進(jìn)一步判斷該存儲器芯片是否第一次進(jìn)入一啟動(dòng)模式,并且當(dāng)該存儲器芯片第一次進(jìn)入該啟動(dòng)模式時(shí),該控制器存取該存儲器,用以自這些啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔,并且將該份正確的啟動(dòng)映像文檔傳送至該主機(jī)。
2.如權(quán)利要求1所述的存儲器芯片,其中該控制器根據(jù)一第一標(biāo)志判斷該存儲器芯片是否第一次進(jìn)入該啟動(dòng)模式。
3.如權(quán)利要求2所述的存儲器芯片,其中該存儲器芯片通過一接口耦接至該主機(jī),該控制器還根據(jù)該主機(jī)于該接口上傳送的一信號波形判斷該存儲器芯片是否第一次進(jìn)入該啟動(dòng)模式,當(dāng)該信號波形符合一既定波形,并且該第一標(biāo)志被設(shè)起時(shí),該控制器判斷該存儲器芯片第一次進(jìn)入該啟動(dòng)模式。
4.如權(quán)利要求2所述的存儲器芯片,其中該第一標(biāo)志用以指示該存儲器是否儲存多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔。
5.如權(quán)利要求2所述的存儲器芯片,其中當(dāng)該存儲器芯片第一次進(jìn)入該啟動(dòng)模式且取得該份正確的啟動(dòng)映像文檔之后,該控制器清除該第一標(biāo)志。
6.如權(quán)利要求1所述的存儲器芯片,其中各啟動(dòng)映像文檔分別包括多個(gè)數(shù)據(jù)區(qū)塊,該控制器自一個(gè)或多個(gè)這些啟動(dòng)映像文檔載入多個(gè)正確的數(shù)據(jù)區(qū)塊,以取得該份正確的啟動(dòng)映像文檔。
7.如權(quán)利要求6所述的存儲器芯片,其中該控制器包括: 一錯(cuò)誤檢測與更正模塊,用以檢測并更正這些啟動(dòng)映像文檔的位錯(cuò)誤, 其中于存取該存儲器的過程中,當(dāng)該錯(cuò)誤檢測與更正模塊檢測到這些數(shù)據(jù)區(qū)塊其中的一所包含的錯(cuò)誤位數(shù)量未超過一可修復(fù)臨界值時(shí),該數(shù)據(jù)區(qū)塊被視為正確的數(shù)據(jù)區(qū)塊。
8.如權(quán)利要求1所述的存儲器芯片,其中各啟動(dòng)映像文檔分別包括多個(gè)數(shù)據(jù)區(qū)塊,并且該控制器包括: 一合并模塊,用以合并這些啟動(dòng)映像文檔中正確的數(shù)據(jù)區(qū)塊,使這些正確的數(shù)據(jù)區(qū)塊合并成一啟動(dòng)映像文檔復(fù)本,并且將該啟動(dòng)映像文檔復(fù)本儲存于該存儲器中。
9.如權(quán)利要求8所述的存儲器芯片,其中該控制器于取得該份正確的啟動(dòng)映像文檔后設(shè)定一第二標(biāo)志,當(dāng)該存儲器芯片處于一閑置狀態(tài)時(shí),該合并模塊還根據(jù)該第二標(biāo)志合并這些正確的數(shù)據(jù)區(qū)塊,并于合并成該啟動(dòng)映像文檔復(fù)本后,清除該第二標(biāo)志。
10.如權(quán)利要求9所述的存儲器芯片,其中該存儲器芯片通過一接口與該主機(jī)耦接,其中當(dāng)該接口閑置時(shí),該存儲器芯片處于該閑置狀態(tài)。
11.一種數(shù)據(jù)保護(hù)方法,包括: 將多個(gè)啟動(dòng)映像文檔預(yù)先載入一存儲器芯片,其中這些啟動(dòng)映像文檔具有相同的內(nèi)容; 判斷該存儲器芯片是否第一次進(jìn)入一啟動(dòng)模式; 當(dāng)該存儲器芯片第一次進(jìn)入該啟動(dòng)模式時(shí),自這些啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔;以及將該份正確的啟動(dòng)映像文檔傳送至耦該該存儲器芯片的一主機(jī)。
12.如權(quán)利要求11所述的方法,其中判斷該存儲器芯片是否第一次進(jìn)入該啟動(dòng)模式的步驟還包括: 根據(jù)一第一標(biāo)志判斷該存儲器芯片是否第一次進(jìn)入該啟動(dòng)模式。
13.如權(quán)利要求12所述的方法,其中該存儲器芯片通過一接口耦接至該主機(jī),當(dāng)該主機(jī)于該接口上傳送的一信號波形符合一既定波形,且該第一標(biāo)志被設(shè)起時(shí),該存儲器芯片被判斷為第一次進(jìn)入該啟動(dòng)模式。
14.如權(quán)利要求12所述的方法,其中該第一標(biāo)志用以指示該存儲器是否儲存多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔。
15.如權(quán)利要求12所述的方法,還包括當(dāng)該存儲器芯片第一次進(jìn)入該啟動(dòng)模式且取得該份正確的啟動(dòng)映像文檔之后,清除該第一標(biāo)志。
16.如權(quán)利要求10所述的方法,其中各啟動(dòng)映像文檔分別包括多個(gè)數(shù)據(jù)區(qū)塊,并且其中自這些啟動(dòng)映像文檔取得該份正確的啟動(dòng)映像文檔的該步驟還包括: 判斷一個(gè)或多個(gè)這些啟動(dòng)映像文檔中的這些數(shù)據(jù)區(qū)塊是否正確;以及 自一個(gè)或多個(gè)這些啟動(dòng)映像文檔載入多個(gè)正確的數(shù)據(jù)區(qū)塊,以取得該份正確的啟動(dòng)映像文檔。
17.如權(quán)利要求16所述的方法,其中判斷一個(gè)或多個(gè)這些啟動(dòng)映像文檔中的這些數(shù)據(jù)區(qū)塊是否正確的該步驟還包括: 檢測這些數(shù)據(jù)區(qū)塊其中的一所包含的錯(cuò)誤位數(shù)量;以及 當(dāng)該數(shù)據(jù)區(qū)塊內(nèi)所包含的錯(cuò)誤位數(shù)量未超過一可修復(fù)臨界值時(shí),該數(shù)據(jù)區(qū)塊被視為正確的數(shù)據(jù)區(qū)塊。
18.如權(quán)利要求11所述的方法,還包括: 合并這些啟動(dòng)映像文檔中的多個(gè)正確的數(shù)據(jù)區(qū)塊,使這些正確的數(shù)據(jù)區(qū)塊合并成一啟動(dòng)映像文檔復(fù)本;以及 將該啟動(dòng)映像文檔復(fù)本儲存于該存儲器芯片中。
19.如權(quán)利要求18所述的方法,還包括: 取得該份正確的啟動(dòng)映像文檔后設(shè)定一第二標(biāo)志; 當(dāng)該存儲器芯片處于一閑置狀態(tài)時(shí),根據(jù)該第二標(biāo)志合并這些正確的數(shù)據(jù)區(qū)塊;以及 合并成該啟動(dòng)映像文檔復(fù)本后,清除該第二標(biāo)志。
20.一種數(shù)據(jù)保護(hù)方法,包括: 判斷一存儲器芯片是否進(jìn)入一啟動(dòng)模式; 判斷該存儲器芯片 是否預(yù)先載入多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔; 當(dāng)該存儲器芯片進(jìn)入該啟動(dòng)模式且該存儲器芯片預(yù)先載入多個(gè)具有相同內(nèi)容的啟動(dòng)映像文檔時(shí),自這些啟動(dòng)映像文檔取得一份正確的啟動(dòng)映像文檔;以及 將該份正確的啟動(dòng)映像文檔傳送至耦接該存儲器芯片的一主機(jī)。
【文檔編號】G06F12/16GK103761198SQ201410040996
【公開日】2014年4月30日 申請日期:2014年1月27日 優(yōu)先權(quán)日:2014年1月6日
【發(fā)明者】洪堯順, 蔡金印, 賴義麟 申請人:威盛電子股份有限公司