国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      信息處理設(shè)備和用于該設(shè)備的rom圖像生成設(shè)備的制作方法

      文檔序號:6447275閱讀:135來源:國知局
      專利名稱:信息處理設(shè)備和用于該設(shè)備的rom圖像生成設(shè)備的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種信息處理設(shè)備,該信息處理設(shè)備通過利用存儲裝置中所存儲的程序來執(zhí)行系統(tǒng)引導(dǎo),所述存儲裝置可以包含壞塊并且在執(zhí)行讀取例如NAND型快閃存儲器之后需要檢錯/糾錯過程。
      背景技術(shù)
      快閃存儲器通常分為NOR型和NAND型。同NAND型快閃存儲器相比,NOR型快閃存儲器的優(yōu)點在于它能夠按逐字節(jié)接收隨機訪問,但是也具有缺點,因為它昂貴而且只允許低度集成。從另一方面來說,NAND型快閃存儲器是假定其包含確定個數(shù)或少量壞塊的存儲器。因此,必須在按照管理保持壞塊的位置的同時執(zhí)行對NAND型快閃存儲器的讀或?qū)?。盡管NAND型快閃存儲器是不利的,因為它只能接收順序訪問并且在執(zhí)行讀取之后需要檢錯/糾錯過程,但是同NOR型快閃存儲器相比,NAND型快閃存儲器具有優(yōu)點,因為它廉價而且允許高度集成。
      為了執(zhí)行包含壞塊并且在讀取之后需要檢錯/糾錯過程的存儲裝置(下文中稱為″低可靠性存儲器″;例如NAND型快閃存儲器)中所存儲的程序,通常已經(jīng)實施了下列技術(shù)。常規(guī)技術(shù)不但采用低可靠性的存儲器,而且還采用不包含任何壞塊并且不需要檢錯/糾錯過程的存儲裝置(下文中稱為″高可靠性存儲器″;例如,掩模ROM或NOR型快閃存儲器)。低可靠性存儲器存儲向其分配錯誤校驗碼的主程序,而高可靠性存儲器存儲執(zhí)行包含主程序的傳送的功能的初始程序。在脫離復(fù)位狀態(tài)之后,系統(tǒng)CPU依照高可靠性存儲器中所存儲的初始程序?qū)⒅鞒绦驈牡涂煽啃源鎯ζ鱾魉偷絉AM。在完成主程序的傳送之后,CPU的控制分支到RAM上的主程序,隨后執(zhí)行RAM上的主程序。
      由于沒有快速執(zhí)行初始程序的特定需要,因而還是把初始程序存儲在低速存儲裝置中為好。相應(yīng)地,人們還已知這樣一種技術(shù),該技術(shù)不是采用高可靠性存儲器來存儲初始程序,而是利用NAND型快閃存儲器中存儲的初始程序來執(zhí)行系統(tǒng)引導(dǎo)。例如,在日本已公開專利公報2002-55822中描述了這種技術(shù)。根據(jù)在這篇公報中描述的技術(shù),在電力激活的時候由傳送電路將存儲在NAND型快閃存儲器中的初始程序傳送到靜態(tài)RAM等等中。
      然而,在這篇公報中描述的技術(shù)中,當將初始程序(包含引導(dǎo)程序、驅(qū)動程序等等)傳送給靜態(tài)RAM等等時不執(zhí)行檢錯/糾錯過程。因此,如果已讀取的初始程序包含錯誤的話,則就無法正確地執(zhí)行系統(tǒng)引導(dǎo)。由于靜態(tài)RAM比其它類型的存儲裝置更加昂貴,因而初始程序大小上的增加會導(dǎo)致整個系統(tǒng)的成本增加。

      發(fā)明內(nèi)容
      因此,本發(fā)明的一個目的是,提供一種能夠在無需高可靠性存儲器來存儲初始程序的情況下穩(wěn)定地執(zhí)行系統(tǒng)引導(dǎo)的信息處理設(shè)備。
      本發(fā)明具有下列特征以實現(xiàn)上述目的。
      本發(fā)明的第一方面涉及一種用于通過使用在非易失性存儲裝置中存儲的程序來執(zhí)行系統(tǒng)引導(dǎo)的信息處理設(shè)備,包括CPU;非易失性第一存儲裝置,用于將具有所分配的第一校驗碼的引導(dǎo)程序和具有所分配的第二校驗碼的主程序存為將由CPU執(zhí)行的程序,第二校驗碼是通過不同于用來計算第一校驗碼的方法來計算的;傳送器,用于讀取第一存儲裝置中存儲的程序,其中在系統(tǒng)引導(dǎo)期間,傳送器從第一存儲裝置中讀取引導(dǎo)程序,使引導(dǎo)程序經(jīng)歷基于第一校驗碼的第一檢錯/糾錯處理過程,并將所處理的引導(dǎo)程序傳送到第二存儲裝置;易失性第二存儲裝置,用于存儲從第一存儲裝置中讀取的程序;和CPU控制器,用于禁止CPU的操作直到完成引導(dǎo)程序的傳送。根據(jù)這個結(jié)構(gòu),能夠通過使用具有所分配的校驗碼并且存儲在低可靠性存儲器(比如使用NAND型快閃存儲器而不采用高可靠性存儲器(諸如像ROM)來存儲初始程序)中的程序來穩(wěn)定地執(zhí)行系統(tǒng)引導(dǎo)。
      在這種情況下,當不再被CPU控制器禁止時,依照第二存儲裝置中所存儲的引導(dǎo)程序,CPU將第一存儲裝置中所存儲的主程序傳送到第二存儲裝置,并且使主程序經(jīng)過基于第二校驗碼的第二檢錯/糾錯過程。根據(jù)這個結(jié)構(gòu),就可以在檢錯/糾錯過程之后依照引導(dǎo)程序來為主程序執(zhí)行復(fù)雜的基于軟件的檢錯/糾錯過程。
      所述傳送器可以包括傳送控制單元,用于控制引導(dǎo)程序的傳送;錯誤處理單元,用于根據(jù)正在傳送的引導(dǎo)程序的第一校驗碼來執(zhí)行第一檢錯/糾錯過程;和通知單元,用于如果當完成引導(dǎo)程序的傳送時錯誤處理單元尚未檢查出任何不可糾正錯誤則通知到CPU控制器的傳送結(jié)束。根據(jù)這個結(jié)構(gòu),能夠通過使用具有所分配的校驗碼并且存儲在低可靠性存儲器中的程序來穩(wěn)定地執(zhí)行系統(tǒng)引導(dǎo),而不必采用高可靠性存儲器來存儲初始程序。
      所述CPU控制器可以禁止CPU的時鐘信號的提供直到完成引導(dǎo)程序的傳送為止。作為選擇,所述CPU控制器連續(xù)地提供CPU的復(fù)位信號直到完成引導(dǎo)程序的傳送為止。根據(jù)這個結(jié)構(gòu),能夠僅僅通過使用少量的硬件來禁止CPU的操作。
      所述CPU控制器可以阻止CPU訪問第二存儲裝置直到完成引導(dǎo)程序的傳送為止。更為優(yōu)選地,所述CPU控制器按這樣的方式來裁定對連接于第二存儲裝置的總線的訪問權(quán),所述方式就是給傳送器賦予優(yōu)先權(quán)直到完成引導(dǎo)程序的傳送為止并且在完成引導(dǎo)程序的傳送之后給CPU賦予優(yōu)先權(quán)。根據(jù)這個結(jié)構(gòu),能夠僅僅通過在訪問第二存儲裝置的控制電路上引入微小變化來禁止CPU的操作。
      如果引導(dǎo)程序的傳送失敗則所述CPU控制器可以保持禁止CPU的操作。根據(jù)這個結(jié)構(gòu),能夠防止當系統(tǒng)引導(dǎo)已經(jīng)失敗時發(fā)生系統(tǒng)失控(runway)。
      第一存儲裝置包括多塊,將這些塊中的每一塊都視作為正常塊或者壞塊,并且將引導(dǎo)程序、主程序、和表示第一存儲裝置中的主程序的已存位置的已存位置信息都存儲在第一存儲裝置的正常塊中。根這個結(jié)構(gòu),提供了一種能通過使用包含正常塊和壞塊的低可靠性存儲器(例如NAND型快閃存儲器)中所存儲的程序來執(zhí)行系統(tǒng)引導(dǎo)的信息處理設(shè)備。
      具體而言,所述引導(dǎo)程序包括已存位置信息和用于根據(jù)第二校驗碼來執(zhí)行第二檢錯/糾錯過程的錯誤處理程序,并且當不再被CPU控制器禁止時,CPU在基于第一校驗碼的第一檢錯/糾錯過程之后依照已存位置信息、經(jīng)由傳送器將第一存儲裝置中所存儲的主程序傳送到第二存儲裝置,并且在基于第一校驗碼的第一檢錯/糾錯過程之后,依照錯誤處理程序來為第二存儲裝置中所存儲的主程序執(zhí)行基于第二檢驗碼的第二檢錯/糾錯過程。根據(jù)這個結(jié)構(gòu),就可以從正確的已存位置上讀取主程序,并且為已經(jīng)讀取出的主程序執(zhí)行復(fù)雜的基于軟件的檢錯/糾錯過程。
      作為選擇,所述第一存儲裝置存儲具有所分配的第一校驗碼的已存位置信息,所述傳送器也根據(jù)第一校驗碼來為從第一存儲裝置中讀取的已存位置信息執(zhí)行第一檢錯/糾錯過程。所述引導(dǎo)程序包括在其上于第一存儲裝置中存儲已存位置信息的地址以及用于根據(jù)第二校驗碼來執(zhí)行第二檢錯/糾錯過程的錯誤處理程序,并且當不再被CPU控制器禁止時,CPU在基于第一校驗碼的第一檢錯/糾錯過程之后通過利用地址、經(jīng)由傳送器將第一存儲裝置中所存儲的已存位置信息傳送到第二存儲裝置,在基于第一校驗碼的第一檢錯/糾錯過程之后依照已存位置信息、經(jīng)由傳送器將第一存儲裝置中所存儲的主程序傳送到第二存儲裝置,并且在基于第一校驗碼的第一檢錯/糾錯過程之后依照錯誤處理程序來為第二存儲裝置中所存儲的主程序執(zhí)行基于第二檢驗碼的第二檢錯/糾錯過程。根據(jù)這個結(jié)構(gòu),能夠在尺寸上減小引導(dǎo)程序,并且可以從正確的已存位置上讀取主程序,并且為已經(jīng)讀取出的主程序執(zhí)行復(fù)雜的基于軟件的檢錯/糾錯過程。
      在第一存儲裝置的正常塊中可以以預(yù)定大小的數(shù)據(jù)單元的形式來存儲引導(dǎo)程序,并且所述傳送器從第一存儲裝置中讀取引導(dǎo)程序的每個預(yù)定大小的數(shù)據(jù)單元,使所述數(shù)據(jù)單元經(jīng)過基于第一校驗碼的第一檢錯/糾錯過程,并且將所處理的數(shù)據(jù)單元傳送到第二存儲裝置。根據(jù)這個結(jié)構(gòu),能夠為以預(yù)定大小劃分的每個數(shù)據(jù)單元分配提供所希望的檢錯/糾錯能力的校驗碼以作為第一校驗碼。
      具體而言,如果通過根據(jù)第一校驗碼為從第一存儲裝置中讀取的預(yù)定大小的數(shù)據(jù)單元執(zhí)行檢錯/糾錯過程而檢查出不可糾正錯誤,那么傳送器就從緊跟在包含該數(shù)據(jù)單元之后的正常塊中讀取將要處理的下一個數(shù)據(jù)單元。根據(jù)這個結(jié)構(gòu),能夠正確地檢查出包含壞塊的第一存儲裝置中所存儲的引導(dǎo)程序。
      作為選擇,以預(yù)定大小的數(shù)據(jù)單元的形式將引導(dǎo)程序隨帶分配給每個數(shù)據(jù)單元的對照碼一起存儲在第一存儲裝置的正常塊中,以及所述傳送器保留對照碼的參考數(shù)據(jù),并且如果將等同于參考數(shù)據(jù)的對照碼分配給從第一存儲裝置中讀取的預(yù)定大小的數(shù)據(jù)單元,則將所讀取出的數(shù)據(jù)單元傳送到第二存儲裝置。根據(jù)這個結(jié)構(gòu),能夠解決把壞塊誤會為正常塊的問題,并且能夠快速地檢查出包含壞塊的第一存儲裝置中所存儲的引導(dǎo)程序。
      更為優(yōu)選地,所述傳送器被設(shè)置成允許根據(jù)已知數(shù)據(jù)來改變參考數(shù)據(jù)。根據(jù)這個結(jié)構(gòu),甚至是在不同的CPU更改版或系統(tǒng)配置等等的情況下,也能夠通過依照CPU更改版、系統(tǒng)配置等等從第一存儲裝置內(nèi)部選擇引導(dǎo)程序來正確地執(zhí)行系統(tǒng)引導(dǎo)。
      所述傳送器可以包括傳送控制單元,用于控制引導(dǎo)程序的傳送;第一錯誤處理單元,用于根據(jù)第一校驗碼來為正在傳送的引導(dǎo)程序執(zhí)行第一檢錯/糾錯過程;第二錯誤處理單元,用于根據(jù)第二校驗碼來為從第一存儲裝置中讀取的主程序執(zhí)行第二檢錯/糾錯過程的至少一部分;和通知單元,用于如果當完成引導(dǎo)程序的傳送時第一錯誤處理單元尚未檢查出任何不可糾正錯誤則通知到CPU控制器的傳送結(jié)束。根據(jù)這個結(jié)構(gòu),能夠快速地執(zhí)行主程序的檢錯/糾錯過程,并且能夠快速地執(zhí)行系統(tǒng)引導(dǎo)。
      具特而言,第二錯誤處理單元相對于從第一存儲裝置中讀取的主程序、根據(jù)第二校驗碼來計算校驗子,并且依照第二存儲裝置中所存儲的引導(dǎo)程序,CPU通過使用由第二錯誤處理單元計算出的校驗子、根據(jù)第二校驗碼來為從第一存儲裝置中讀取的主程序執(zhí)行第二檢錯/糾錯過程的其余部分。根據(jù)這個結(jié)構(gòu),僅僅通過使用少量的硬件,就能夠提高主程序的檢錯/糾錯過程的速度。
      作為選擇,當通知單元已經(jīng)通知傳送結(jié)束時,傳送器從第一錯誤處理單元到第二錯誤處理單元地切換處理單元以便處理從第一存儲裝置中讀取的程序。根據(jù)這個結(jié)構(gòu),當完成引導(dǎo)程序的傳送時,能夠自動地變換傳送器中的檢錯/糾錯過程的內(nèi)容。
      作為選擇,所述傳送器受CPU的控制、從第一錯誤處理單元到第二錯誤處理單元地切換處理單元以便處理從第一存儲裝置中讀取的程序。根據(jù)這個結(jié)構(gòu),能夠通過CPU的軟件處理來自動地變換傳送器中的檢錯/糾錯過程的內(nèi)容。
      作為選擇,如果第二錯誤處理單元已經(jīng)檢查出不可糾正錯誤,則傳送器就通知CPU傳送失敗,并且當接收到傳送失敗的通知時,所述CPU執(zhí)行異常處理過程。根據(jù)這個結(jié)構(gòu),如果系統(tǒng)引導(dǎo)失敗,則能夠使系統(tǒng)產(chǎn)生異常結(jié)束,并且能夠向用戶通知不可恢復(fù)錯誤的發(fā)生。
      除傳送引導(dǎo)程序之外,受CPU的控制,傳送器可以以預(yù)定大小的數(shù)據(jù)單元的形式從第一存儲裝置中讀取主程序,并將已讀取出的每個數(shù)據(jù)單元傳送到第二存儲裝置。根據(jù)這個結(jié)構(gòu),能夠在尺寸上減小引導(dǎo)程序,能夠降低CPU的載荷,并且能夠快速地執(zhí)行系統(tǒng)引導(dǎo)。
      本發(fā)明的第二方面涉及一種用于通過使用非易失性存儲裝置中所存儲的程序來執(zhí)行系統(tǒng)引導(dǎo)的信息處理設(shè)備,包括CPU;非易失性第一存儲裝置,用于將具有所分配的第一校驗碼的引導(dǎo)程序和具有所分配的第二校驗碼的主程序存為將由CPU執(zhí)行的程序,所述第二校驗碼是通過不同于用來計算第一校驗碼的方法來計算的;傳送器,用于讀取第一存儲裝置中所存儲的程序;和易失性第二存儲裝置,用于存儲從第一存儲裝置中讀取的程序,其中所述傳送器從第一存儲裝置中讀取引導(dǎo)程序,使該引導(dǎo)程序經(jīng)過基于第一校驗碼的第一檢錯/糾錯過程并內(nèi)部地存儲所處理的引導(dǎo)程序,并且響應(yīng)于來自CPU的讀請求輸出已存儲的引導(dǎo)程序,并且在系統(tǒng)引導(dǎo)期間,CPU依照傳送器中所存儲的引導(dǎo)程序來進行操作。根據(jù)這個結(jié)構(gòu),能夠通過使用具有所分配的校驗碼并且存儲在低可靠性存儲器(比如,NAND型快閃存儲器)中的程序來穩(wěn)定地執(zhí)行系統(tǒng)引導(dǎo),而不必采用高可靠性存儲器(比如,ROM)來存儲初始程序。此外,不必確保用于存儲引導(dǎo)程序的存儲區(qū)。
      在這種情況下,所述引導(dǎo)程序可以包括錯誤處理程序,用于根據(jù)第二校驗碼來執(zhí)行檢錯/糾錯過程,并且在系統(tǒng)引導(dǎo)期間,依照傳送器中所存儲的引導(dǎo)程序,CPU根據(jù)第二校驗碼來為從第一存儲裝置中讀取的主程序執(zhí)行檢錯/糾錯過程。根據(jù)這個結(jié)構(gòu),就可以在第一檢錯/糾錯過程之后依照引導(dǎo)程序來為主程序執(zhí)行復(fù)雜的基于軟件的第二檢錯/糾錯過程。
      本發(fā)明的第三發(fā)明涉及一種用于根據(jù)多個數(shù)據(jù)來生成將要寫入到包含壞塊的存儲裝置中的ROM圖像的ROM圖像生成設(shè)備,包括壞塊信息保留單元,用于保留存儲裝置中所包含的壞塊的位置信息,ROM圖像將被寫入到所述壞塊中;代碼信息管理單元,用于管理與輸入數(shù)據(jù)的類型相關(guān)聯(lián)的校驗碼的類型;圖像重新格式化單元,用于將輸入數(shù)據(jù)轉(zhuǎn)換為適合于具有所分配的與輸入數(shù)據(jù)類型相關(guān)聯(lián)的校驗碼的格式;和寫入圖像生成單元,用于通過參照壞塊信息保留單元中所存儲的位置信息來把已經(jīng)由圖像重新格式化單元重新格式化后的多個數(shù)據(jù)合并成單個數(shù)據(jù),同時避開壞塊,并且將與輸入數(shù)據(jù)類型相關(guān)聯(lián)的校驗碼分配給合并后的數(shù)據(jù)。根據(jù)這個結(jié)構(gòu),就可以生成將要寫入存儲器的ROM圖像,所述存儲器將被用作為根據(jù)本發(fā)明的第一或第二方面的信息處理設(shè)備中所包含的第一存儲裝置。依照數(shù)據(jù)類型分配校驗碼,并且能夠生成ROM圖像以便其數(shù)據(jù)中任何一個都不會被存儲在壞塊中。
      在這種情況下,所述ROM圖像生成設(shè)備可以進一步包括用于保留對照碼的對照碼保留單元,其中所述圖像重新格式化單元將對照碼保留單元中保留的對照碼分配給輸入數(shù)據(jù)。根據(jù)這個結(jié)構(gòu),能夠生成具有所分配的對照碼的ROM圖像。
      所述ROM圖像生成設(shè)備可以進一步包括存儲控制單元,用于執(zhí)行在存儲裝置中搜索壞塊的位置以獲取位置信息的過程和將由寫入圖像生成單元生成的數(shù)據(jù)寫入到存儲裝置中的過程。根據(jù)這個結(jié)構(gòu),能夠獲得一種能把ROM圖像寫入到實際存儲器的ROM圖象生成設(shè)備。
      因此,依照本發(fā)明的信息處理設(shè)備,能夠通過使用具有所分配的校驗碼并且存儲在低可靠性存儲器(比如,NAND型快閃存儲器)中的程序來穩(wěn)定地執(zhí)行系統(tǒng)引導(dǎo),而不必采用高可靠性存儲器(比如,ROM)來存儲初始程序。此外,依照本發(fā)明的ROM圖象生成設(shè)備,就可以生成將要寫入存儲器的ROM圖像,所述存儲器將被用作為信息處理設(shè)備中所包含的第一存儲裝置。
      當結(jié)合附圖閱讀本發(fā)明的下列詳細說明時,本發(fā)明的這些及其它目的、特征、方面和優(yōu)點將變得更加明顯。


      圖1是舉例說明根據(jù)本發(fā)明第一實施例的信息處理設(shè)備的結(jié)構(gòu)的圖;圖2是舉例說明NAND型快閃存儲器中的塊與頁之間的關(guān)系的圖;圖3是舉例說明圖1中所示的信息處理設(shè)備中的引導(dǎo)程序和第一錯誤校驗碼的格式的圖;
      圖4是舉例說明圖1中所示的信息處理設(shè)備中的壞塊信息表和第三錯誤校驗碼的格式的圖;圖5是舉例說明圖1中所示的信息處理設(shè)備中的CPU控制器的示例性結(jié)構(gòu)的圖;圖6是舉例說明圖1中所示的信息處理設(shè)備中的CPU控制器的示例性結(jié)構(gòu)的圖;圖7是舉例說明圖1中所示的信息處理設(shè)備中的傳送器的操作的流程圖;圖8A和8B是舉例說明圖1中所示的信息處理設(shè)備中的引導(dǎo)程序的示例性結(jié)構(gòu)的圖;圖9是舉例說明圖1中所示的信息處理設(shè)備的CPU的自引導(dǎo)過程的流程圖;圖10是舉例說明根據(jù)本發(fā)明第一實施例的信息處理設(shè)備的變形結(jié)構(gòu)的圖;圖11是舉例說明根據(jù)本發(fā)明第二實施例的信息處理設(shè)備的結(jié)構(gòu)的圖;圖12是舉例說明圖11中所示的信息處理設(shè)備中的引導(dǎo)程序和第一錯誤校驗碼的格式的圖;圖13是舉例說明圖11中所示的信息處理設(shè)備中的傳送器的操作的流程圖;圖14是舉例說明根據(jù)本發(fā)明第二實施例的信息處理設(shè)備的變形的圖;圖15是舉例說明根據(jù)本發(fā)明第三實施例的信息處理設(shè)備的結(jié)構(gòu)的圖;圖16是舉例說明根據(jù)本發(fā)明第三實施例的信息處理設(shè)備的變形的圖;圖17是舉例說明根據(jù)本發(fā)明第四實施例的信息處理設(shè)備的結(jié)構(gòu)的圖;
      圖18是舉例說明圖17中所示的信息處理設(shè)備的CPU的自引導(dǎo)過程的流程圖;圖19是舉例說明根據(jù)本發(fā)明第五實施例的信息處理設(shè)備的結(jié)構(gòu)的圖;圖20是舉例說明根據(jù)本發(fā)明第六實施例的ROM圖像生成設(shè)備的結(jié)構(gòu)的圖;和圖21A和21B是舉例說明來自圖20中所示的ROM圖像生成設(shè)備中的重新格式化區(qū)域的輸出的圖。
      具體實施例方式
      在下文中,將參照這些圖來描述本發(fā)明的各種實施例。在每個實施例中,等同于前述實施例中的那些組成部分的任何組成部分都將用相似的數(shù)字來表示,并且將省略對它們的描述。
      (第一實施例)圖1是舉例說明根據(jù)本發(fā)明第一實施例的信息處理設(shè)備的結(jié)構(gòu)的圖。圖1中所示的信息處理設(shè)備1包括CPU 10、第一至第三存儲裝置11至13、傳送器14和CPU控制器15。
      CPU 10是信息處理設(shè)備1的主CPU。在電力激活以前存在的初始狀態(tài)下,把將由CPU 10執(zhí)行的任何程序都存儲在第一存儲裝置11中。不限定在初始狀態(tài)下的第二和第三存儲裝置12和13的內(nèi)容。第一至第三存儲裝置11至13經(jīng)由數(shù)據(jù)總線16a至16c互連。一旦激活電力,就把第一存儲裝置11中所存儲的程序傳送給第二和第三存儲裝置12和13。更具體而言,在初始狀態(tài)下,第一存儲裝置11存儲操縱初始設(shè)定操作的引導(dǎo)程序(引導(dǎo)程序在下文中,縮寫為″BSP″)111以及主程序112。BSP 111將被傳送給第二存儲裝置12,而主程序112將被傳送給第三存儲裝置13。直到BSP 111的傳送結(jié)束,CPU控制器15才禁止CPU 10取指令。
      第一存儲裝置11由可以包含壞塊(即,未正確執(zhí)行存儲功能的塊)并且在讀取時需要檢錯/糾錯過程的非易失性存儲裝置組成。在下文中,假定第一存儲裝置11是NAND型快閃存儲器。圖2是舉例說明NAND型快閃存儲器中的塊與頁之間的關(guān)系的圖。如圖2所示,將NAND型快閃存儲器的存儲區(qū)分成多塊,將每一塊再分成多頁。在一類NAND型快閃存儲器中,一塊由32頁構(gòu)成,其中每一頁例如是由512字節(jié)的數(shù)據(jù)和16字節(jié)備用區(qū)、總計528字節(jié)構(gòu)成的。然而,取決于NAND型快閃存儲器的類型,塊大小和頁大小除采用32頁和528字節(jié)之外可以采用任意數(shù)值。由于假定第一存儲裝置11包含壞塊,因而必須執(zhí)行對第一存儲裝置11的任意讀或?qū)懸员惚荛_壞塊。
      如圖1所示,在除壞塊110之外的塊中,第一存儲裝置11存儲BSP 111、主程序112、壞塊信息表113和第一至第三錯誤校驗碼114至116。BSP 111至少包含為執(zhí)行系統(tǒng)引導(dǎo)所必需的系統(tǒng)配置和用于將主程序112從第一存儲裝置11傳送到第三存儲裝置13的主程序傳送例程(參見圖8A和8B,稍后做描述)。主程序112是在系統(tǒng)引導(dǎo)結(jié)束之后將由CPU 10執(zhí)行的程序。在任何信息處理設(shè)備中,一般而言,主程序112的尺寸大于BSP 111的大小。壞塊信息表113是表示壞塊的位置的表(參見圖4,稍后做描述)。第一至第三錯誤校驗碼114至116分別是分配給BSP 111的錯誤校驗碼、主程序112和壞塊信息表113。正如下面所述的那樣,利用相同的方法來計算第一和第三錯誤校驗碼114和116,而利用與之不同的方法來計算第二錯誤校驗碼115。
      圖3是舉例說明BSP 111和第一錯誤校驗碼114的格式的圖。在圖3中,D[i]表示信息位,P[i]表示錯誤校驗碼位(其中i是非負整數(shù);在下文中,相同的假設(shè)對于任何″i″的實例而言都適用)。如圖3所示,把BSP 111存儲在每個地址的低4位中,而把第一錯誤校驗碼114存儲在每個地址的高4位中。更具體而言,從BSP 111開始處起將其分成4位的組,并且按照地址的升序?qū)⑦@些組中的每一組都存儲在每個地址的低4位中。對于由此而分出的每個4位的組,將(利用如下所述的計算方法)計算4位的第一錯誤校驗碼114,并且按照地址的升序?qū)⑵浯鎯υ诿總€地址的高4位中。因此,以4位為單位(總共8位)來處理BSP 111和第一錯誤校驗碼114。
      圖4是舉例說明壞塊信息表113和第三錯誤校驗碼116的格式的圖。在圖4中,每個地址的低4位(數(shù)值″0″或″1″)表示信息位,而P[i]表示錯誤校驗碼位。把壞塊信息表113存儲在每個地址的低4位中,而把第三錯誤校驗碼116存儲在每個地址的高4位中。更具體而言,壞塊信息表113通過每塊中占一位的方式來存儲表示第一存儲裝置11中的每一塊是好塊(正常塊)還是壞塊的信息。將壞塊信息表113從其開始處起分成4位的組,并且按地址的升序?qū)⑦@些組中的每一組都存儲在每個地址的低4位中。用于由此而劃分出的每個4位的組,將利用與用于計算BSP 111相同的計算方法來計算4位的第三錯誤校驗碼116,并且按地址的升序?qū)⑵浯鎯υ诿總€地址的高4位中。
      例如,如果NAND型快閃存儲器具有256兆比特的存儲容量并且把16K字節(jié)的塊用作為第一存儲裝置11,則總塊數(shù)為2048K。在這種情況下,在第一存儲裝置11的正常塊之一中,確保了相當于2K位的兩倍的區(qū)域(即512字節(jié))(其包含用于存儲第三錯誤校驗碼116的區(qū)域)。在確保的512字節(jié)的存儲區(qū)中,存儲壞塊信息表113和第三錯誤校驗碼116。假設(shè)將要把對應(yīng)每個正常塊的數(shù)值″0″和對應(yīng)每個壞塊的數(shù)值″1″存儲在壞塊信息表113中,則圖4中所示的壞塊信息表113將表明第一存儲裝置11中的第五和第十二塊都是壞塊。
      對于NAND型快閃存儲器而言,推薦依據(jù)它的類型來使用特定的編碼方法。在前述的包含512字節(jié)的數(shù)據(jù)頁和16字節(jié)的備用區(qū)的NAND型快閃存儲器的情況下,例如推薦實施允許將至少為512字節(jié)的數(shù)據(jù)執(zhí)行的1位糾錯和2位檢錯的編碼。相應(yīng)地,將主程序112從其開始處起分成512字節(jié)的組,并且為由此而劃分出的每個512字節(jié)的組分配利用為NAND型快閃存儲器推薦的編碼方法計算出的第二錯誤檢查代碼115(大約24比特)。
      通過在執(zhí)行對第一存儲裝置11的寫入之前先利用預(yù)定方法訪問第一存儲裝置11,來獲得關(guān)于第一存儲裝置11中的塊是好塊(正常塊)還是壞塊的知識。當執(zhí)行對第一存儲裝置11的寫入時,必須確保不對壞塊執(zhí)行寫入,而是僅對正常塊執(zhí)行寫入。在下列說明中,假定BSP 111將被存儲在一個或多個連續(xù)塊中,這些連續(xù)塊的塊號是從第一頁中沖洗出的第一存儲裝置11中所包含的正常塊當中的最小號。還可以假定主程序112將被存儲在從第一頁刷新的第一存儲裝置11中所包含的正常塊當中的其中存有BSP 111的塊的后續(xù)的一個或多個連續(xù)塊中。
      第二存儲裝置12是能夠在無需任何特定的初始設(shè)定的情況下被CPU10和傳送器11兩者訪問的易失性存儲器。由于將要把BSP 111傳送給如上所述的第二存儲裝置12,因而把容量大于BSP 111的尺寸的存儲器用作為第二存儲裝置12。由于一旦CPU 10結(jié)束第二存儲裝置12上的BSP的執(zhí)行時第二存儲裝置12將變得不必要,因此信息處理設(shè)備1可以運用已作為第二存儲裝置12而位于系統(tǒng)LSI內(nèi)部的靜態(tài)RAM等等,而不是配備充當?shù)诙鎯ρb置12的專用存儲器。盡管在下列說明中將順便把第二和第三存儲裝置12和13視作為獨立的存儲裝置,但是將會認識到的是第二和第三存儲裝置12和13也可以是保證位于單個存儲裝置之內(nèi)的離散存儲區(qū)。在這種情況下,在完成系統(tǒng)引導(dǎo)之后,例如可以將確保作為第二存儲裝置12的存儲區(qū)用作為工作區(qū)。
      由于將要把主程序112傳送給如上所述的第三存儲裝置13,將比第二存儲裝置12的容量更大的存儲器用作為第三存儲裝置13。因此,第三存儲裝置13最好是允許隨機訪問的易失存儲裝置,并且其每比特的價格是很低的,例如SDRAM。
      如圖1所示,傳送器14包括傳送控制單元141、錯誤處理單元142和通知單元143。傳送控制單元141具有將第一存儲裝置11中所存儲的BSP111自動傳送到第二存儲裝置12的功能以及受CPU 10的控制讀取第一存儲裝置11中所存儲的主程序112的功能。當把BSP 111從第一存儲裝置11傳送到第二存儲裝置12時,錯誤處理單元142根據(jù)第一錯誤校驗碼114來為正在傳送的BSP 111執(zhí)行檢錯/糾錯過程。如果正確地完成BSP 111的傳送,則通知單元143就輸出傳送表明向CPU控制器15進行的傳送的正確結(jié)束的結(jié)束通知信號144。
      根據(jù)從通知單元143那里輸出的傳送結(jié)束通知信號144,CPU控制器15輸出CPU激活控制信號151。圖5和6是舉例說明CPU控制器15的示例性結(jié)構(gòu)的圖。在圖5中所示的結(jié)構(gòu)當中,CPU控制器15屏蔽CPU 10的時鐘信號直到傳送結(jié)束通知信號144變?yōu)橛行У臑橹?,由此來中止CPU 10。一旦傳送結(jié)束通知信號144變?yōu)橛行У?,CPU控制器15就不再屏蔽時鐘信號,并且CPU 10開始工作。在圖6中所示的結(jié)構(gòu)當中,CPU控制器15允許CPU 10的復(fù)位信號通過直到傳送結(jié)束通知信號144變?yōu)橛行У臑橹梗纱藖碇兄笴PU 10。一旦傳送結(jié)束通知信號144變?yōu)橛行У?,CPU控制器15就屏蔽復(fù)位信號,以使CPU 10開始工作。根據(jù)CPU控制器15的這類動作,禁止CPU 10取指令直到傳送結(jié)束通知信號144變?yōu)橛行У臑橹埂?br> 在下文中,將描述傳送器14的細節(jié)。一旦激活電力,傳送器14就在第一存儲裝置11中獲取在其上存有BSP 111的位置,從這個已存儲的位置開始按頁順序讀取BSP 111,并且將BSP 111傳送到第二存儲裝置12。更具體而言,一旦激活電力,傳送控制單元141就從第一存儲裝置11的起始處開始順序地讀取已存儲的內(nèi)容。如圖3所示,錯誤處理單元142為8位的處理的每個單元執(zhí)行檢錯/糾錯過程。傳送控制單元141在檢錯/糾錯過程之后將BSP 111的每4位的塊打包成預(yù)定的傳送單元,然后將所述預(yù)定傳送單元傳送給第二存儲裝置12。在此,從CPU 10在電力激活以后自其中取指令的地址開始順序更新第二存儲裝置12中的數(shù)據(jù)的傳送目的地。在本實施例中,假定傳送器14按16位的傳送單元執(zhí)行傳送,并且假定CPU 10從其中首次取指令的地址是第二存儲裝置12的第一地址。
      現(xiàn)在,將描述將要在錯誤處理單元142中執(zhí)行的檢錯/糾錯過程。將要分配給BSP 111的第一錯誤校驗碼114可以是滿足第一存儲裝置11的推薦技術(shù)規(guī)范的任意代碼。在前述的包含512字節(jié)的數(shù)據(jù)頁和16字節(jié)的備用區(qū)的NAND型快閃存儲器的情況下,例如推薦執(zhí)行允許將為512字節(jié)的數(shù)據(jù)執(zhí)行的1位糾錯和2位檢錯的編碼。在這種情況下,能夠通過把允許將為512字節(jié)或更少字節(jié)的信息位執(zhí)行的1位糾錯和2位檢錯的代碼選作為第一錯誤校驗碼114來滿足最低要求。
      在這個實施例中,將提供比1位糾錯和2位檢錯所提供的能力更高的檢錯/糾錯處理能力的代碼用于第一錯誤校驗碼114,以便即使在第一存儲裝置11中包含比在1位糾錯和2位檢錯過程中所預(yù)期的缺陷有更多的缺陷也能夠正確地執(zhí)行系統(tǒng)引導(dǎo)。具體地說,通過根據(jù)BSP 111、使用生成矩陣G來計算第一錯誤校驗碼114,正如下面用等式1表示的那樣。在下列說明中,假定D
      至D[3]表示BSP 111的4位的塊;P
      至P[3]表示分配給D
      至D[3]的第一錯誤校驗碼,并且假定在矩陣計算中對于每次加法使用異或。
      P[1]P[2]P[3]]=[D
      D[1]D[2]D[3]]G...等式1其中G=1010011010010101]]>通過使用如等式2所示的校驗矩陣H來計算利用等式1得到的代碼[D
      D[1]D[2]D[3]P
      P[1]P[2]P[3]]的校驗子[X
      X[1]X[2]X[3]][X
      X[1]X[2]X[3]]=[D
      D[1]D[2]D[3]P
      P[1]P[2]P[3]]HT...等式2
      其中H=10101000010101001100001000110001;]]>HT表示H的轉(zhuǎn)置矩陣接下來,錯誤處理單元142依據(jù)由此得到的X[3]至X
      的值來執(zhí)行下列過程(其中X={αβγδ}指的是X[3]=α;X[2]=β;X[1]=γ;和X
      =δ)a)如果X={0000},那么無錯誤;不執(zhí)行糾錯;b)如果X={0101},那么D
      是錯誤;倒置D
      ;c)如果X={0110},那么D[1]是錯誤;倒置D[1];d)如果X={1001},那么D[2]是錯誤;倒置D[2];e)如果X={1010},那么D[3]是錯誤;倒置D[3];f)如果X={0001},那么P
      是錯誤;不執(zhí)行糾錯;g)如果X={0010},那么P[1]是錯誤;不執(zhí)行糾錯;i)如果X={0100},那么P[2]是錯誤;不執(zhí)行糾錯;以及j)如果X={1000},那么P[3]是錯誤;不執(zhí)行糾錯。
      情況(b)至(e)都是這樣的情況,即其中對在信息位中出現(xiàn)的1位錯誤進行糾錯。情況(f)至(j)都是這樣的情況,即其中由于僅僅在錯誤校驗碼中存在1位錯誤,因而不對信息位進行糾錯。如果X采用除前述數(shù)值以外的任何數(shù)值,那么錯誤處理單元142就判定已經(jīng)發(fā)生了不可糾正的錯誤。將會認識到的是,上面描述的用于第一錯誤校驗碼114的計算方法只是示例性的,可以使用任何其它的計算方法。
      圖7是舉例說明傳送控制單元141在電力激活之后的操作的流程圖。依照圖7中所示的程序,傳送控制單元141在第一存儲裝置11中獲取存儲BSP 111的位置,從這個已存儲的位置起按頁順序讀取BSP 111,并且將BSP 111傳送到第二存儲裝置12。在此假定BSP 111的尺寸為一塊或更少塊。變量B表示讀取的塊號,而變量P表示讀取的頁號。
      一旦激活電力,傳送控制單元141就首先將B和P初始化為0(步驟S101)。其結(jié)果是,在第一塊(即″第0塊″)中的第一頁(即″第0頁″)上設(shè)置第一存儲裝置11中的讀取位置。接下來,傳送控制單元141讀取第一存儲裝置11中的第B塊的第P頁,并將這一頁傳送到第二存儲裝置12中的預(yù)定地址上(步驟S102)。在此時,錯誤處理單元142將所傳送的頁劃分成預(yù)定的處理單元(在這個示例中,假定每個處理單元是8位),并且為每個處理單元執(zhí)行檢錯/糾錯過程。如果在每個處理單元中包含任何可糾正錯誤的話,那么錯誤處理單元142就糾正所述錯誤。如果在每個處理單元中包含任何不可糾正錯誤的話,那么錯誤處理單元142就內(nèi)部地存儲這個事件。
      接下來,傳送控制單元141判斷P是否小于BSP 111中的頁數(shù)目(下文中稱為″M″)(步驟S103)。如果判斷的結(jié)果為“是”的話,則傳送控制單元141就將P加1(步驟S106),并前進至步驟S102。由此,連續(xù)地執(zhí)行M次步驟S102中的傳送。如果步驟S103的判斷結(jié)果是否,則傳送控制單元141就判斷在于步驟S102中傳送M頁期間是否已經(jīng)檢測到不可糾正錯誤(步驟S104)。如果判斷的結(jié)果為“否”,則傳送控制單元141就判定BSP 111的傳送成功,并且結(jié)束該過程。在這種情況下,通知單元143向CPU控制器15輸出傳送結(jié)束通知信號144。
      如果步驟S104的判斷結(jié)果為“是”,則傳送控制單元141就判斷B是否小于將要搜索的塊數(shù)目(下文中稱為″N″)(步驟S105)。如果判斷的結(jié)果為“否”,則傳送控制單元141就判定BSP 111的傳送已經(jīng)失敗,并且結(jié)束該過程。如果步驟S105的判斷結(jié)果為“是”,則傳送控制單元141就將B加1,將P設(shè)定為0(步驟S107),并且前進至步驟S102。由此,傳送控制單元141至多相對于N塊查找BSP 111。注意,M和N的值可能在傳送器14中是固定的,或者可能是可通過切換而變化的。
      當從通知單元143那里接收到傳送結(jié)束通知信號144時,CPU控制器15確認已經(jīng)正確地完成了BSP 111的傳送,并且令CPU激活控制信號151變換,以便實現(xiàn)CPU 10的操作。其結(jié)果是,CPU 10開始從第二存儲裝置12中取指令。在另一方面,如果尚未正確地完成BSP 111的傳送,則就不輸出傳送結(jié)束通知信號144,以便在CPU激活控制信號151中不發(fā)生變換,并且CPU 10就不會開始從第二存儲裝置12中取指令。注意,用于通過CPU控制器15來控制CPU 10取指令的方法例如包括一種控制提供給CPU 10的時鐘信號的方法(圖5)和一種控制提供給CPU 10的復(fù)位信號的方法(圖6)。
      在下文中,將描述BSP 111的細節(jié)。BSP 111包含用于執(zhí)行系統(tǒng)配置、主程序傳送例程和壞塊信息表113(或指向壞塊信息表113的指針)的數(shù)據(jù)。由于將把主程序112存儲在第一存儲裝置11的正常塊中,因而可以將壞塊信息表113視作為表示第一存儲裝置11中的主程序112的已存位置的位置信息。
      圖8A和8B是舉例說明BSP 111的示例性結(jié)構(gòu)的圖。如圖8A所示,BSP 111包括配置單元117、主程序傳送單元118和壞塊信息表指針119。配置單元117包含為執(zhí)行基本系統(tǒng)配置所必需的數(shù)據(jù),比如將在總線控制器中設(shè)置的數(shù)據(jù)。根據(jù)配置單元117中所含的數(shù)據(jù),例如執(zhí)行為訪問第三存儲裝置13所必需的存儲器控制器設(shè)置。主程序傳送單元118包含主程序傳送例程,該主程序傳送例程包括根據(jù)第二錯誤校驗碼115來執(zhí)行檢錯/糾錯過程的錯誤處理程序。壞塊信息表指針119包含壞塊信息表113的第一地址。
      作為選擇,如圖8B所示,BSP 111可以包含壞塊信息表113,而不是壞塊信息表指針119。在其中采用圖8B的結(jié)構(gòu)的情況下,BSP 111的尺寸變得比在其中采用圖8A的結(jié)構(gòu)的情況更大。然而,當在結(jié)束BSP 111的傳送之后訪問壞塊信息表113時,CPU 10只須訪問第二存儲裝置12,而不必訪問第一存儲裝置11。因此,在其中采用圖8B的結(jié)構(gòu)的情況下,能夠快速地執(zhí)行向第三存儲裝置13傳送主程序112的過程。
      圖9是舉例說明CPU 10的自引導(dǎo)過程的流程圖。在完成BSP 111的傳送并且輸出傳送結(jié)束通知信號144之后,CPU 10執(zhí)行第二存儲裝置12上的BSP 111以便執(zhí)行圖9中所示的過程。在圖9中,變量B表示讀取的塊號,而變量P表示讀取的頁號。
      一旦完成BSP 111的傳送,CPU 10就首先通過利用BSP 111的系統(tǒng)配置單元117中所存儲的數(shù)據(jù)來執(zhí)行系統(tǒng)配置(步驟S201)。在步驟S201,例如,在存儲器接口電路等等中設(shè)置各種參數(shù),以便訪問第三存儲裝置13。
      接下來,CPU 10從BSP 111中讀取壞塊信息表指針119,并且通過利用這個指針來把壞塊信息表113從第一存儲裝置11拷貝到第三存儲裝置13(步驟S202)。在此時,傳送器14中的錯誤處理單元142根據(jù)已從第一存儲裝置11中讀出的壞塊信息表113的第一錯誤校驗碼114來執(zhí)行檢錯/糾錯過程。注意,在采用如圖8B所示的BSP 111的情況下,不執(zhí)行步驟S202的過程,因為已經(jīng)把壞塊信息表113存儲在了第二存儲裝置12中。接下來,CPU 10將包含BSP 111的塊的數(shù)目設(shè)置為B(步驟S203)。
      接下來,通過參照第三存儲裝置13上的壞塊信息表,CPU 10判斷下一個正常塊的數(shù)目并且把這個數(shù)目設(shè)置成B(步驟S204),并將P置0(步驟S205)。然后,CPU 10調(diào)用拷貝功能以把第一存儲裝置11中的第B塊中的第P頁拷貝到第三存儲裝置13中的預(yù)定地址上(步驟S206)。接下來,作為執(zhí)行檢錯/糾錯過程的準備,CPU 10先計算相對于已在步驟S206拷貝的頁的校驗子(步驟S207)。那么,根據(jù)在步驟S207中計算的校驗子,CPU 10通過軟件手段來執(zhí)行檢錯/糾錯過程(步驟S208)。經(jīng)由步驟S208的過程,已經(jīng)讀取的頁中所含的任何可糾正錯誤都被糾正。
      接下來,CPU 10判斷在步驟S208的檢錯/糾錯過程期間是否已經(jīng)發(fā)現(xiàn)任何不可糾正錯誤(超出糾正能力之外的錯誤)(步驟S209)。如果判斷的結(jié)果為“否”,則CPU 10就判斷P是否小于一塊中的頁數(shù)(步驟S210)。如果判斷的結(jié)果為“是”,則CPU 10就將P加1(步驟S212),并且前進至步驟S206。如果步驟S210的判斷結(jié)果為“否”,則CPU 10就判斷B是否小于BSP 111中的塊數(shù)(步驟S211)。如果判斷的結(jié)果為“是”,則CPU 10就將B加1,將P置0(步驟S213),并且前進至步驟S204。
      如果在步驟S211中的判斷結(jié)果為“否”,則CPU 10就判定主程序112的傳送成功。在這種情況下,CPU 10的控制分支到第三存儲裝置13上的主程序112。在另一方面,如果步驟S209的判斷結(jié)果為“是”,則CPU 10就判定主程序112的傳送已經(jīng)失敗。在這種情況下,CPU 10不執(zhí)行任何過程,并且進入無限循環(huán)。
      由此,CPU 10執(zhí)行第二存儲裝置12上的BSP 111,以將第一存儲裝置11的正常塊中所存儲的主程序112傳送到第三存儲裝置13。爾后,如果主程序112的傳送變成功,則CPU 10繼續(xù)執(zhí)行第三存儲裝置13上的主程序112;如果主程序112的傳送失敗,則CPU 10就停止工作。
      如上所述,依照信息處理設(shè)備1,能夠通過使用具有所分配的校驗碼且正存儲在低可靠性存儲器(比如,NAND型快閃存儲器)中的程序來穩(wěn)定地執(zhí)行系統(tǒng)引導(dǎo),而無需采用高可靠性存儲器(比如,ROM)來存儲初始程序。由于依照存儲在第二存儲裝置中的引導(dǎo)程序來將存儲在第一存儲裝置中的主程序傳送給第二存儲裝置并且根據(jù)第二校驗碼來執(zhí)行檢錯/糾錯過程,因此就可以為所述主程序執(zhí)行復(fù)雜的基于軟件的檢錯/糾錯過程。
      在上述信息處理設(shè)備1中,CPU 10取指令受CPU控制器15的控制。作為選擇,正如圖10中所示的信息處理設(shè)備2所例示的那樣,可以通過為數(shù)據(jù)總線16a采用仲裁器20來控制CPU 10取指令。在圖10中,仲裁器20裁定對訪問第二存儲裝置12所必須的數(shù)據(jù)總線16a的訪問權(quán)。更具體而言,在電力激活之后,仲裁器20以較高優(yōu)先權(quán)向傳送器14準許對數(shù)據(jù)總線16a的訪問權(quán),直到輸出傳送結(jié)束通知信號144為止。一旦完成BSP111的傳送以致輸出傳送結(jié)束通知信號144,仲裁器20就以較高優(yōu)先權(quán)向CPU 10準許對數(shù)據(jù)總線16a的訪問權(quán)。
      其結(jié)果是,雖然CPU 10在電力激活之后立即嘗試從第二存儲裝置12中取指令,但是仲裁器20進行動作以便CPU 10不具有對數(shù)據(jù)總線16a的訪問權(quán),即無法訪問第二存儲裝置12,直到BSP 111的傳送結(jié)束為止。由此,在開始CPU 10取指令之前,必須等待BSP 111的傳送結(jié)束。照此,信息處理設(shè)備2與信息處理設(shè)備1提供了相同的效果。
      信息處理設(shè)備1采用從第一存儲裝置11中的第一塊開始順序搜索BSP111并根據(jù)在M頁的傳送期間是否檢查出不可糾正錯誤來檢查壞塊的壞塊校驗方法。然而,如果在輸出時剛好把偶然通過檢錯/糾錯過程的一個值作為初始值數(shù)據(jù)存儲在壞塊中,那么這個方法就可能會把壞塊誤會為正常塊。為了解決這個問題,當執(zhí)行對第一存儲裝置11的寫入時,可以重復(fù)地把包含不可糾正錯誤的數(shù)據(jù)寫入到壞塊。結(jié)果,將在傳送M頁期間安全地檢查出不可糾正錯誤,借此能夠避免把壞塊誤會成正常塊的問題。
      (第二實施例)圖11是舉例說明根據(jù)本發(fā)明第二實施例的信息處理設(shè)備的結(jié)構(gòu)的圖。除了用傳送器30替代傳送器14并將對照碼121添加到BSP 111上之外,圖11中所示的信息處理設(shè)備3等同于第一實施例的信息處理設(shè)備1(圖1)。信息處理設(shè)備3通過使用對照碼121來解決把壞塊誤會成正常塊的問題。
      除了用傳送控制單元311替代傳送控制單元141以及添加了包含對照碼保留單元301和對照碼比較單元302的傳送數(shù)據(jù)判斷單元303之外,傳送器30等同于第一實施例的傳送器14。對照碼保留單元301存儲在系統(tǒng)中唯一確定的對照碼。盡管對用作為對照碼值沒有特定的限制,但是最好使用區(qū)別于任何其它值的特征值(例如,由″0″位和″1″位的混合組成的值)。在本實施例中,例如使用2字節(jié)的對照碼″5a3c″(十六進制)。
      當把BSP 111寫入第一存儲裝置11時,將與在對照碼保留單元301中保留的對照碼相同的對照碼121分配給該BSP 111。圖12是類似于圖3的圖,該圖舉例說明了具有所分配的對照碼121的BSP 111的格式以及第一錯誤校驗碼114的格式。在第一存儲裝置11中的一個或多個正常塊的多頁上存儲BSP 111。在其中存有BSP 111的一部分的每個數(shù)據(jù)頁的最后4字節(jié)(512字節(jié))中,帶錯誤校驗碼地存儲對照碼121。更具體而言,把2字節(jié)的對照碼121分成四個4位的組,并且將這些組中的每一組都存為每一頁的最末4字節(jié)的低4位。對于對照碼121的每4位,通過使用等式1來計算4位錯誤校驗碼,并且將每一頁的最末4字節(jié)的高4位存為對照碼的錯誤校驗碼122。例如,如果對照碼具有值″5a3c″(十六進制),于是M[15]=0;M[14]=1;M[13]=0;M[12]=1;P =1;P =1;P =0;P =0;等等。
      圖13是類似于圖7的流程圖,該圖舉例說明了在電力激活之后、傳送控制單元311的操作。作為帶有第一實施例中的傳送控制單元141的情況,依照圖13中所示的程序,傳送控制單元311在第一存儲裝置11中獲取BSP 111的已存位置,從這個已存位置起按頁順序地讀取BSP 111,并將該BSP 111傳送到第二存儲裝置12。此外,再假定BSP 111的尺寸是一塊或更少塊。變量B和P的含義與圖7定義的含義相同。
      一旦激活電力,傳送控制單元311就將B和P初始化成0(步驟S301)。接下來,傳送控制單元311判斷P是否小于BSP 111的M的大小(步驟S302)。如果判斷的結(jié)果為“否”,則傳送控制單元311就判定BSP 111的傳送成功,并且結(jié)束該過程。在這種情況下,CPU控制器15輸出傳送結(jié)束通知信號144。
      如果步驟S302的判斷結(jié)果為“是”,則傳送控制單元311就讀取第一存儲裝置11中的第B塊中的第P頁,并且把這一頁傳送到第二存儲裝置12中的預(yù)定地址上(步驟S303)。在此時,錯誤處理單元142執(zhí)行與圖7中的步驟S102相同的檢錯/糾錯過程。對照碼比較單元302將已傳送的頁的數(shù)據(jù)(512字節(jié))的最末4字節(jié)中所存儲的對照碼121與對照碼保留單元301中的保留的對照碼(即,對照碼應(yīng)該采用的參考值)進行比較。
      接下來,傳送控制單元311判斷對照碼比較單元302是否已經(jīng)發(fā)現(xiàn)對照碼121匹配所述對照碼的參考值(步驟S304)。如果判斷的結(jié)果為“是”,則傳送控制單元311就在步驟S303中判斷在一頁的傳送期間是否已經(jīng)檢查出不可糾正錯誤(步驟S305)。如果判斷的結(jié)果為“否”,則傳送控制單元311就將P加1(步驟S307),并前進至步驟S302。
      如果步驟S304的判斷結(jié)果為“否”,則傳送控制單元311就判斷B是否小于將要搜索的塊的數(shù)目N(步驟S306)。如果判斷的結(jié)果為“是”,則傳送控制單元311就將B加1,將P置0(步驟S308),并前進至步驟S302。
      如果步驟S305的判斷結(jié)果為“是”,或者如果步驟S306的判斷結(jié)果為“否”,則傳送控制單元311就判定BSP 111的傳送已經(jīng)失敗,并且結(jié)束該過程。在這種情況下,CPU控制器15不輸出傳送結(jié)束通知信號144。
      不論引導(dǎo)程序的傳送變成功還是變失敗,信息處理設(shè)備3都類似于第一實施例的信息處理設(shè)備1的那樣操作。因此,信息處理設(shè)備3提供了與由第一實施例的信息處理設(shè)備1提供的效果相同的效果。另外,對照碼的使用解決了把壞塊誤會成正常塊的問題,并且實現(xiàn)了對第一存儲裝置中所存儲的估計可能包含壞塊的引導(dǎo)程序的快速檢測。
      在信息處理設(shè)備3中,作為選擇可以采用圖5或圖6中所示的CPU控制器15或者圖10中所示的仲裁器20來控制CPU 10取指令。對如下所述的第三至第五實施例來說也是成立的。
      正如圖14中所示的信息處理設(shè)備4所例示的那樣,信息處理設(shè)備可以包括允許從外界重寫對照碼的傳送器。在圖14中,構(gòu)建傳送器40以便能夠經(jīng)由數(shù)據(jù)總線16d將數(shù)據(jù)寫入對照碼保留單元301中。第一存儲裝置11存儲兩類BSP 111a和111b;并且通過利用相同的方法來相對于這兩類BSP計算第一114a和114b。BSP 111a和第一錯誤校驗碼114a將對應(yīng)于圖11中所示的信息處理設(shè)備3中的BSP 111和第一錯誤校驗碼114。BSP111b是不同于BSP 111a的BSP,例如用于不同更改版的CPU的BSP或用于具有不同系統(tǒng)配置的信息處理設(shè)備的BSP。將BSP 111a和111b隨帶分別分配給它們的對照碼121a和121b一起存儲在第一存儲裝置11中。將為對照碼121b使用不同于對照碼121a的值。
      可以根據(jù)CPU 10或系統(tǒng)配置的更改來重寫對照碼保留單元301中所保留的對照碼(即,對照碼應(yīng)該采用的參考值)。一旦激活電力,傳送器40就依照對照碼保留單元301中保留的對照碼來選擇BSP 111a或者BSP111b,并將所選定的BSP傳送到第二存儲裝置12。CPU 10依照第二存儲裝置12上的BSP 111a或BSP 111b來進行操作。由此,甚至是在不同的CPU更改版或系統(tǒng)配置的情況下等等,也能夠通過依照CPU更改版、系統(tǒng)配置等使用從單個第一存儲裝置11中選出的最佳BSP來正確執(zhí)行系統(tǒng)引導(dǎo)。盡管將上述信息處理設(shè)備4舉例說明成了通過使用相同的方法來計算BSP 111a和111b的第一錯誤校驗碼114a和114b,但是也可以通過不同的方法來計算它們;在這種情況下,每個錯誤校驗碼的檢錯/糾錯都將由錯誤處理單元142來執(zhí)行。
      (第三實施例)圖15是舉例說明根據(jù)本發(fā)明第三實施例的信息處理設(shè)備的結(jié)構(gòu)的圖。除了用傳送器50替代傳送器14之外,圖15中所示的信息處理設(shè)備5等同于第一實施例的信息處理設(shè)備1(圖1)。信息處理設(shè)備5的特征在于主程序112的檢錯/糾錯過程的一部分是在傳送器50中執(zhí)行的。
      除了用第一和第二錯誤處理單元501和502以及錯誤處理選擇單元503替代錯誤處理單元142之外,傳送器50等同于第一實施例的傳送器14。第一錯誤處理單元501根據(jù)第一和第三錯誤校驗碼114和116來執(zhí)行檢錯/糾錯過程。例如,第一錯誤處理單元501中的檢錯/糾錯過程是由預(yù)定的處理單元(在本例中是8位的處理單元)使用等式2來執(zhí)行的。
      第二錯誤處理單元502根據(jù)第二錯誤校驗碼115來執(zhí)行檢錯/糾錯過程的一部分。假定第二錯誤校驗碼115是一個16字節(jié)的錯誤校驗碼,其中所述錯誤校驗碼是根據(jù)512字節(jié)的數(shù)據(jù)加以計算的,那么基于第二錯誤校驗碼115的檢錯/糾錯過程將必然導(dǎo)致比對應(yīng)第一和第三錯誤校驗碼114和116的計算量更大的計算量。因此,如果第二錯誤處理單元502將要根據(jù)第二錯誤校驗碼115來執(zhí)行所有的檢錯/糾錯過程,那么傳送器50就將需要增加的硬件數(shù)量,由此導(dǎo)致信息處理設(shè)備5的成本上的增加。因此,在基于第二錯誤校驗碼115的檢錯/糾錯過程之內(nèi),第二錯誤處理單元502僅僅處理校驗子計算。將要通過CPU 10的軟件處理來執(zhí)行利用計算出的校驗子的檢錯/糾錯過程。
      在CPU 10的控制下,錯誤處理選擇單元503有選擇地令第一和第二錯誤處理單元501和502中的任一個工作。錯誤處理選擇單元503包括CPU10能夠向其中寫入數(shù)值的寄存器。在這個寄存器中,例如,存儲數(shù)值″0″直到BSP 111的傳送結(jié)束為止。一旦完成BSP 111的傳送,CPU 10例如將錯誤處理選擇單元503中的前述寄存器的值更新為″1″。如果寄存器的值為″0″,則錯誤處理選擇單元503就向第一錯誤處理單元501提供從第一存儲裝置11讀取的數(shù)據(jù)。如果寄存器的值為″1″,錯誤處理選擇單元503就向第二錯誤處理單元502提供從第一存儲裝置11讀取的數(shù)據(jù)。
      由此,在傳送器50中,在激活電力之后,為將要傳送的BSP 111執(zhí)行基于第一錯誤校驗碼114的檢錯/糾錯過程,直到錯誤處理選擇單元503中的寄存器的值轉(zhuǎn)變?yōu)椤?″。當CPU 10執(zhí)行預(yù)定的指令時,錯誤處理選擇單元503中的寄存器的值轉(zhuǎn)變?yōu)椤?″。爾后,在基于將為要被傳送的主程序112執(zhí)行的第二錯誤校驗碼115的檢錯/糾錯過程之內(nèi),在傳送器50中發(fā)生校驗子計算。
      由此,依照信息處理設(shè)備5,由傳送器來處理檢錯/糾錯過程的一部分,借此以供主程序的檢錯/糾錯過程的快速執(zhí)行使用,由此以供系統(tǒng)引導(dǎo)使用。
      在上面舉例說明的信息處理設(shè)備5中,用來自CPU 10的指令來重寫錯誤處理選擇單元503中的寄存器的值。作為選擇,正如圖16中所示的信息處理設(shè)備6所例示的那樣,傳送器60中的錯誤處理選擇單元601可以與接收自通知單元143的傳送結(jié)束通知信號144相同步地將前述寄存器的值從″0″變換為″1″。
      (第四實施例)圖17是舉例說明根據(jù)本發(fā)明第四實施例的信息處理設(shè)備的結(jié)構(gòu)的圖。除了用傳送器70替代傳送器50之外,圖17中所示的信息處理設(shè)備7等同于第三實施例的信息處理設(shè)備5(圖15)。信息處理設(shè)備7的特征在于所述傳送器70具有傳送主程序112的功能。
      除了傳送器70還包括控制信息存儲單元701、壞塊信息表指針存儲單元702和壞塊信息表存儲單元703之外,傳送器70等同于第三實施例的傳送器50(圖15)??刂菩畔⒋鎯卧?01存儲傳送源地址、傳送大小、傳送目的地址等等。壞塊信息表指針存儲單元702存儲BSP 111中所包含的壞塊信息表指針119(壞塊信息表113的第一地址)。
      將利用與用于BSP 111的相同方法計算的第三錯誤校驗碼116分配到壞塊信息表113。受CPU 10的控制,傳送器70從第一存儲裝置11中讀取的壞塊信息表113和第三錯誤校驗碼116,借助于第一錯誤處理單元501使它們經(jīng)過檢錯/糾錯過程,并且把已經(jīng)經(jīng)過檢錯/糾錯過程的壞塊信息表寫入第二存儲裝置12。
      在本實施例中,第二錯誤處理單元502根據(jù)第二錯誤校驗碼來執(zhí)行全部檢錯/糾錯過程。在這種情況下,如果當執(zhí)行主程序112的檢錯/糾錯過程時檢查出不可糾正錯誤,那么第二錯誤處理單元502就停止錯誤處理,并且(通過利用圖中未示出的裝置)向CPU 10通知已經(jīng)檢查出不可恢復(fù)錯誤。當接收到這個通知時,CPU 10執(zhí)行異常處理過程。例如,CPU 10可以異常中止系統(tǒng),并且通過在顯示裝置(未示出)上顯示消息來向用戶通知已經(jīng)出現(xiàn)了不可恢復(fù)錯誤。
      圖18是舉例說明根據(jù)當前實施例的CPU 10的自引導(dǎo)過程的流程圖。由于圖18中所示的流程圖與圖9中所示的流程圖相似,因而下面將僅僅描述它們之間的差別。
      在圖9中所示的流程圖中,CPU 10從BSP 111中讀取壞塊信息表指針119,并且使用壞塊信息表指針119來把該壞塊信息表113從第一存儲裝置11拷貝到第三存儲裝置13(步驟S202)。從另一方面來說,在圖18中所示的流程圖中,CPU 10從BSP 111中讀取壞塊信息表指針119,并且把該壞塊信息表指針119寫入到傳送器70的壞塊信息表指針存儲單元702中(步驟S402)。在此時,通過引用存儲在壞塊信息表指針存儲單元702中的壞塊信息表指針,傳送器70從第一存儲裝置11中讀取壞塊信息表113和第三錯誤校驗碼116,并根據(jù)第一錯誤校驗碼114使它們經(jīng)過檢錯/糾錯過程,并且把該過程的結(jié)果寫入到壞塊信息表存儲單元703中。
      此外,在圖9中所示的流程圖中,CPU 10調(diào)用拷貝功能以將一頁拷貝到第三存儲裝置13(步驟S206),并且為所拷貝的頁計算校驗子(步驟S207)。從另一方面來說,在圖18中所示的流程圖中,CPU 10把傳送所必需的參數(shù)(例如,作為傳送源的B和P的值)寫入到傳送器70的控制信息存儲單元701中,并且等待傳送器70完成傳送(步驟S406)。在此時,傳送控制單元141按照由控制信息存儲單元701中存儲的參數(shù)所指定的那樣將第一存儲裝置11中的第B塊中的第P頁傳送到第二存儲裝置12中的預(yù)定地址上,并且第二錯誤處理單元502為所傳送的頁計算校驗子。當完成一頁的傳送時,CPU 10讀取已在第二錯誤處理單元502中計算出的校驗子(步驟S408)。根據(jù)已讀取出的校驗子來執(zhí)行步驟S409的檢錯/糾錯過程。
      由此,依照信息處理設(shè)備7,能夠減小引導(dǎo)程序的大小,并且能夠降低CPU上的載荷,借此實現(xiàn)系統(tǒng)引導(dǎo)的快速執(zhí)行。
      (第五實施例)圖19是舉例說明根據(jù)本發(fā)明第五實施例的信息處理設(shè)備的結(jié)構(gòu)的圖。除了消除掉第二存儲裝置12以及用傳送器80替代傳送器30之外,圖19中所示的信息處理設(shè)備8等同于第三實施例的信息處理設(shè)備3(圖11)。信息處理設(shè)備8的特征在于它沒有用于存儲BSP 111的專用存儲裝置,而且BSP 111是從傳送器80那里提供的。
      除了用傳送控制單元803和緩沖控制單元801替代傳送控制單元311以及添加了指令提供緩沖器802之外,傳送器80等同于第三實施例的傳送器30(圖11)。指令提供緩沖器802是用于存儲預(yù)定數(shù)量的指令的緩沖器。一旦激活電力,傳送控制單元803就從第一存儲裝置11的開始處起順序讀取預(yù)定量的BSP 111,并且錯誤處理單元142為已經(jīng)讀取出的預(yù)定量的BSP 111執(zhí)行檢錯/糾錯過程。把已經(jīng)經(jīng)過檢錯/糾錯的BSP 111經(jīng)由數(shù)據(jù)總線16c、16b和16e存儲到指令提供緩沖器802中。一旦激活電力,CPU 10就嘗試從指令提供緩沖器802中取指令。
      如果當CPU 10已經(jīng)嘗試取指令時已把下一條指令存儲在了指令提供緩沖器802中,那么緩沖控制單元801就允許CPU 10讀出那條指令。在這種情況下,CPU 10成功地取出指令,并且執(zhí)行所取出的指令。在另一方面,如果當CPU 10已經(jīng)嘗試取指令時、在指令提供緩沖器802中尚未存儲下一條指令,那么緩沖控制單元801就停止CPU 10取指令,并且控制傳送控制單元803從第一存儲裝置11中讀取下一條指令。使已讀取出的指令經(jīng)過檢錯/糾錯過程,并且爾后將其存儲在指令提供緩沖器802中。通過這種控制,傳送器80確保如果在指令提供緩沖器802中尚未存儲下一條指令的話則CPU 10就無法執(zhí)行取指令直到下一條指令變成就緒狀態(tài)為止。
      由此,依照信息處理設(shè)備8,能夠在沒有確保用于存儲BSP的存儲區(qū)的情況下提供與第一實施例的信息處理設(shè)備所提供的效果相同的效果。
      (第六實施例)圖20是舉例說明根據(jù)本發(fā)明第六實施例的ROM圖像生成設(shè)備的結(jié)構(gòu)的圖。圖20中所示的ROM圖像生成設(shè)備9是一種將包含BSP 111、主程序112等等的ROM圖像寫入到存儲器(下文中稱為″目標存儲器″)中的設(shè)備,其中所述存儲器被用作為根據(jù)上述實施例中的任何一個的信息處理設(shè)備中所包含的第一存儲裝置11。
      ROM圖像生成設(shè)備9包括圖像重新格式化單元91、寫入圖像生成單元92、存儲控制單元93、對照碼管理單元94、代碼信息管理單元95、壞塊信息保留單元96和壞塊信息表生成單元97。圖像重新格式化單元91包括對照碼分配單元911和重新格式化單元912。寫入圖像生成單元92包括圖像合并單元921、壞塊信息表指針分配單元922和錯誤校驗碼分配單元923。存儲控制單元93包括壞塊搜索單元931和存儲器寫入單元932。
      在將輸入數(shù)據(jù)900輸入之前,對照碼管理單元94先存儲對照碼941(它將被作為對輸入數(shù)據(jù)900的賦值而寫入),并且代碼信息管理單元95存儲表明將在計算每一種類型的輸入數(shù)據(jù)900的錯誤校驗碼的過程中使用哪種方法的錯誤校驗碼賦值信息951。壞塊搜索單元931利用預(yù)定方法來訪問目標存儲器,并且輸出表明目標存儲器中所含的壞塊的位置的壞塊信息933。把從壞塊搜索單元931中輸出的壞塊信息933存儲到壞塊信息保留單元96中。
      作為輸入數(shù)據(jù)900,把將要寫入目標存儲器的BSP、主程序等等(它們都為二進制形式)都作為到ROM圖像生成設(shè)備9的獨立的文件來加以輸入。根據(jù)壞塊信息保留單元96中的壞塊信息961,壞塊信息表生成單元97以二進制形式生成壞塊信息表971。把輸入數(shù)據(jù)900和壞塊信息表971都以獨立的文件的形式輸入到圖像重新格式化單元91中。
      圖像重新格式化單元91把輸入數(shù)據(jù)900和壞塊信息表971重新格式化成用于寫入到目標存儲器中的適當形式。更具體而言,對照碼分配單元911根據(jù)需要將對照碼管理單元94中所存儲的對照碼941分配給輸入數(shù)據(jù)900。依照代碼信息管理單元95中所存儲的錯誤校驗碼賦值信息951,重新格式化單元912將輸入數(shù)據(jù)900和壞塊信息表971的每一個都重新格式化成能夠適于接收分配給它的錯誤校驗碼的形式,并將結(jié)果作為獨立的文件加以輸出。已經(jīng)由圖像重新格式化單元91重新格式化后的數(shù)據(jù)將稱為重新格式化單元輸出913。
      圖21A和21B是舉例說明示例性的重新格式化單元輸出913的圖。圖21A示出了在輸入BSP 111的情況下的重新格式化單元輸出913。圖21B示出了在輸入主程序112的情況下的重新格式化單元輸出913。當正在輸入BSP 111時,代碼信息管理單元95保持輸出表明必須執(zhí)行到一種格式的重新格式化的錯誤校驗碼賦值信息951,在所述格式中將4位錯誤校驗碼分配給4位的信息位(即,圖3中所示的格式)。依照錯誤校驗碼賦值信息951,重新格式化單元912將BSP 111(它已經(jīng)以二進制形式被輸入)重新格式化成圖21A中所示的格式。在另一方面,當正在輸入主程序112時,代碼信息管理單元95保持輸出表明必須執(zhí)行到一種形式的重新格式化的錯誤校驗碼賦值信息951,在所述形式中將16字節(jié)備用區(qū)分配給每512字節(jié)的數(shù)據(jù)。依照這個錯誤校驗碼賦值信息951,重新格式化單元912將主程序112(它已經(jīng)以二進制形式被輸入)重新格式化成圖21B中所示的格式。
      寫入圖像生成單元92對來自圖像重新格式化單元91的重新格式化節(jié)輸出913進行合并以生成將要寫入目標存儲器的ROM圖像924,同時注意目標存儲器中所包含的壞塊的位置。更具體而言,圖像合并單元921把已經(jīng)以獨立文件的形式被輸出的重新格式化單元輸出913合并成單個文件。在此時,根據(jù)從壞塊信息保留單元96中輸出的壞塊信息961,圖像合并單元921輸出僅僅對與正常塊相對應(yīng)的位置有效的數(shù)據(jù),由此避開壞塊。
      一旦圖像合并單元921已經(jīng)把重新格式化單元輸出913合并成單個文件,將把壞塊信息表971存儲在哪個正常塊中就將變成確定的了。因此,為了從圖像合并單元921中輸出,壞塊信息表指針分配單元922分配這個正常塊(對應(yīng)于壞塊信息表指針119)的數(shù)目。
      一旦壞塊信息表指針分配單元922已經(jīng)分配了前述正常塊的數(shù)目,則除了錯誤校驗碼外就最終確定了將要寫入目標存儲器的ROM圖像中的所有數(shù)據(jù)。因此,為了從壞塊信息表指針分配單元922中輸出,錯誤校驗碼分配單元923依照從代碼信息管理單元95中輸出的錯誤校驗碼賦值信息951來分配錯誤校驗碼。例如,錯誤校驗碼分配單元923將第一錯誤校驗碼114分配給BSP 111,而把第二錯誤校驗碼115分配給主程序112。
      存儲器寫入單元932把從寫入圖像生成單元92中輸出的ROM圖像924寫入到目標存儲器。在此時,根據(jù)壞塊信息保留單元96中所保留的壞塊信息961,存儲器寫入單元932把ROM圖像924只寫入到目標存儲器中所包含的正常塊當中。
      如上所述,依照本實施例的ROM圖像生成設(shè)備,能夠把包含BSP、主程序等等的ROM圖像寫入到作為根據(jù)第一至第五實施例中的任何一個的信息處理設(shè)備中所包含的第一存儲裝置的存儲器當中。
      根據(jù)本發(fā)明的信息處理設(shè)備的特征在于它能夠在不采用ROM等等來存儲初始程序的情況下穩(wěn)定地執(zhí)行系統(tǒng)引導(dǎo)。因此,可以把信息處理設(shè)備用作為各種信息處理設(shè)備,比如筆記本型個人電腦、移動式信息裝置、蜂窩式電話、數(shù)字照相機、視頻電影裝置、游戲。
      雖然已經(jīng)詳細描述了本發(fā)明,但是上述說明在所有方面中都是例證性的而非限制性的。當然在不背離本發(fā)明的范圍的情況下能夠設(shè)計出許多其它的修改和變形。
      權(quán)利要求
      1.一種用于通過使用在非易失性存儲裝置中存儲的程序來執(zhí)行系統(tǒng)引導(dǎo)的信息處理設(shè)備,包括CPU;非易失性第一存儲裝置,用于存儲具有所分配的第一校驗碼的引導(dǎo)程序和具有所分配的第二校驗碼的主程序,作為將由CPU執(zhí)行的程序,第二校驗碼是通過不同于用來計算第一校驗碼的方法計算出的;傳送器,用于讀取第一存儲裝置中存儲的程序,其中在系統(tǒng)引導(dǎo)期間,傳送器從第一存儲裝置中讀取引導(dǎo)程序,使引導(dǎo)程序經(jīng)歷基于第一校驗碼的檢錯/糾錯過程,并將經(jīng)過處理的引導(dǎo)程序傳送到第二存儲裝置;易失性第二存儲裝置,用于存儲從第一存儲裝置中讀取的程序;和CPU控制器,用于禁止CPU的操作直到完成引導(dǎo)程序的傳送。
      2.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中,當不再被CPU控制器禁止時,依照第二存儲裝置中所存儲的引導(dǎo)程序,CPU將第一存儲裝置中所存儲的主程序傳送到第二存儲裝置,并且使主程序經(jīng)歷基于第二校驗碼的檢錯/糾錯過程。
      3.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中所述傳送器包括傳送控制單元,用于控制引導(dǎo)程序的傳送;錯誤處理單元,用于根據(jù)正在傳送的引導(dǎo)程序的第一校驗碼來執(zhí)行檢錯/糾錯過程;和通知單元,用于如果當完成引導(dǎo)程序的傳送時錯誤處理單元尚未檢查出任何不可糾正錯誤則向CPU控制器通知傳送結(jié)束。
      4.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中所述CPU控制器禁止CPU的時鐘信號的提供直到完成引導(dǎo)程序的傳送為止。
      5.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中所述CPU控制器連續(xù)地提供CPU的復(fù)位信號直到完成引導(dǎo)程序的傳送為止。
      6.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中所述CPU控制器禁止CPU訪問第二存儲裝置直到完成引導(dǎo)程序的傳送為止。
      7.根據(jù)權(quán)利要求6所述的信息處理設(shè)備,其中所述CPU控制器按這樣的方式來裁定對連接于第二存儲裝置的總線的訪問權(quán),即給傳送器賦予優(yōu)先權(quán)直到完成引導(dǎo)程序的傳送為止并且在完成引導(dǎo)程序的傳送之后給CPU賦予優(yōu)先權(quán)。
      8.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中如果引導(dǎo)程序的傳送失敗則所述CPU控制器保持禁止CPU的操作。
      9.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中第一存儲裝置包括多塊,將這些塊中的每一塊都視作為正常塊或者壞塊,并且將引導(dǎo)程序、主程序、和表示第一存儲裝置中的主程序的已存位置的已存位置信息都存儲在第一存儲裝置的正常塊中。
      10.根據(jù)權(quán)利要求9所述的信息處理設(shè)備,其中所述引導(dǎo)程序包括已存位置信息和用于根據(jù)第二校驗碼來執(zhí)行檢錯/糾錯過程的錯誤處理程序,并且當不再被CPU控制器禁止時,CPU在基于第一校驗碼的檢錯/糾錯過程之后依照已存位置信息、經(jīng)由傳送器將第一存儲裝置中所存儲的主程序傳送到第二存儲裝置,并且在基于第一校驗碼的檢錯/糾錯過程之后,依照該錯誤處理程序來為第二存儲裝置中所存儲的主程序執(zhí)行檢錯/糾錯過程。
      11.根據(jù)權(quán)利要求9所述的信息處理設(shè)備,其中所述第一存儲裝置存儲具有所分配的第一校驗碼的已存位置信息,所述傳送器也根據(jù)第一校驗碼來為從第一存儲裝置中讀取的已存位置信息執(zhí)行檢錯/糾錯過程,所述引導(dǎo)程序包括第一存儲裝置中存儲已存位置信息的地址以及用于根據(jù)第二校驗碼來執(zhí)行檢錯/糾錯過程的錯誤處理程序,并且當不再被CPU控制器禁止時,CPU在基于第一校驗碼的檢錯/糾錯過程之后通過利用該地址、經(jīng)由傳送器將第一存儲裝置中所存儲的已存位置信息傳送到第二存儲裝置,在基于第一校驗碼的檢錯/糾錯過程之后依照已存位置信息、經(jīng)由傳送器將第一存儲裝置中所存儲的主程序傳送到第二存儲裝置,并且在基于第一校驗碼的檢錯/糾錯過程之后依照錯誤處理程序來為第二存儲裝置中所存儲的主程序執(zhí)行檢錯/糾錯過程。
      12.根據(jù)權(quán)利要求9所述的信息處理設(shè)備,其中在第一存儲裝置的正常塊中以預(yù)定大小的數(shù)據(jù)單元的形式來存儲引導(dǎo)程序,并且所述傳送器從第一存儲裝置中讀取引導(dǎo)程序的所述預(yù)定大小的每個數(shù)據(jù)單元,使所述數(shù)據(jù)單元經(jīng)歷基于第一校驗碼的檢錯/糾錯過程,并且將所處理的數(shù)據(jù)單元傳送到第二存儲裝置。
      13.根據(jù)權(quán)利要求12所述的信息處理設(shè)備,其中如果通過根據(jù)第一校驗碼為從第一存儲裝置中讀取的預(yù)定大小的數(shù)據(jù)單元執(zhí)行檢錯/糾錯過程而檢查出不可糾正錯誤,那么傳送器就從緊跟在包含該數(shù)據(jù)單元之后的正常塊中讀取將要處理的下一個數(shù)據(jù)單元。
      14.根據(jù)權(quán)利要求12所述的信息處理設(shè)備,其中以所述預(yù)定大小的數(shù)據(jù)單元的形式將引導(dǎo)程序隨存儲在第一存儲裝置的正常塊中,為每個數(shù)據(jù)單元分配一個對照碼,以及所述傳送器保留該對照碼的參考數(shù)據(jù),并且如果將等同于參考數(shù)據(jù)的對照碼被分配給從第一存儲裝置中讀取的預(yù)定大小的數(shù)據(jù)單元,則將所讀取出的數(shù)據(jù)單元傳送到第二存儲裝置。
      15.根據(jù)權(quán)利要求14所述的信息處理設(shè)備,其中所述傳送器被設(shè)置成允許根據(jù)給定數(shù)據(jù)來改變參考數(shù)據(jù)。
      16.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中所述傳送器包括傳送控制單元,用于控制引導(dǎo)程序的傳送;第一錯誤處理單元,用于根據(jù)第一校驗碼來為正在傳送的引導(dǎo)程序執(zhí)行檢錯/糾錯過程;第二錯誤處理單元,用于根據(jù)第二校驗碼來為從第一存儲裝置中讀取的主程序執(zhí)行至少一部分檢錯/糾錯過程;和通知單元,用于如果當完成引導(dǎo)程序的傳送時第一錯誤處理單元尚未檢查出任何不可糾正錯誤則向CPU控制器通知傳送結(jié)束。
      17.根據(jù)權(quán)利要求16所述的信息處理設(shè)備,其中第二錯誤處理單元相對于從第一存儲裝置中讀取的主程序、根據(jù)第二校驗碼來計算校驗子,并且依照第二存儲裝置中所存儲的引導(dǎo)程序,CPU通過使用由第二錯誤處理單元計算出的校驗子、根據(jù)第二校驗碼來為從第一存儲裝置中讀取的主程序執(zhí)行其余部分的檢錯/糾錯過程。
      18.根據(jù)權(quán)利要求16所述的信息處理設(shè)備,其中當通知單元已經(jīng)通知傳送結(jié)束時,傳送器從第一錯誤處理單元到第二錯誤處理單元地切換處理單元以便處理從第一存儲裝置中讀取的程序。
      19.根據(jù)權(quán)利要求16所述的信息處理設(shè)備,其中所述傳送器在CPU控制下從第一錯誤處理單元到第二錯誤處理單元地切換處理單元以便處理從第一存儲裝置中讀取的程序。
      20.根據(jù)權(quán)利要求16所述的信息處理設(shè)備,其中如果第二錯誤處理單元已經(jīng)檢查出不可糾正錯誤,則傳送器就通知CPU傳送失敗,并且當接收到傳送失敗的通知時,所述CPU執(zhí)行異常處理過程。
      21.根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中除傳送引導(dǎo)程序之外,在CPU控制下,傳送器以預(yù)定大小的數(shù)據(jù)單元的形式從第一存儲裝置中讀取主程序,并將已讀取出的每個數(shù)據(jù)單元傳送到第二存儲裝置。
      22.一種用于通過使用非易失性存儲裝置中所存儲的程序來執(zhí)行系統(tǒng)引導(dǎo)的信息處理設(shè)備,包括CPU;非易失性第一存儲裝置,用于存儲具有所分配的第一校驗碼的引導(dǎo)程序和具有所分配的第二校驗碼的主程序,作為將由CPU執(zhí)行的程序,所述第二校驗碼是通過不同于用來計算第一校驗碼的方法來計算的;傳送器,用于讀取第一存儲裝置中所存儲的程序;和易失性第二存儲裝置,用于存儲從第一存儲裝置中讀取的程序,其中所述傳送器從第一存儲裝置中讀取引導(dǎo)程序,使該引導(dǎo)程序經(jīng)歷基于第一校驗碼的檢錯/糾錯過程并內(nèi)部地存儲所處理的引導(dǎo)程序,并且響應(yīng)于來自CPU的讀請求輸出已存儲的引導(dǎo)程序,并且在系統(tǒng)引導(dǎo)期間,CPU依照傳送器中所存儲的引導(dǎo)程序來進行操作。
      23.根據(jù)權(quán)利要求22所述的信息處理設(shè)備,其中所述引導(dǎo)程序包括錯誤處理程序,用于根據(jù)第二校驗碼來執(zhí)行檢錯/糾錯過程,并且在系統(tǒng)引導(dǎo)期間,依照傳送器中所存儲的引導(dǎo)程序,CPU根據(jù)第二校驗碼來為從第一存儲裝置中讀取的主程序執(zhí)行檢錯/糾錯過程。
      24.一種用于根據(jù)多個數(shù)據(jù)來生成將要寫入到包含壞塊的存儲裝置中的ROM圖像的ROM圖像生成設(shè)備,包括壞塊信息保留單元,用于保留存儲裝置中所包含的壞塊的位置信息,ROM圖像將被寫入到所述壞塊中;代碼信息管理單元,用于管理與輸入數(shù)據(jù)的類型相關(guān)聯(lián)的校驗碼的類型;圖像重新格式化單元,用于將輸入數(shù)據(jù)轉(zhuǎn)換為適合于具有所分配的與輸入數(shù)據(jù)類型相關(guān)聯(lián)的校驗碼的格式;和寫入圖像生成單元,用于通過參照壞塊信息保留單元中所存儲的位置信息來把已經(jīng)由圖像重新格式化單元重新格式化后的多個數(shù)據(jù)合并成單個數(shù)據(jù),同時避開壞塊,并且將與輸入數(shù)據(jù)類型相關(guān)聯(lián)的校驗碼分配給合并后的數(shù)據(jù)。
      25.根據(jù)權(quán)利要求24所述的信息處理設(shè)備,進一步包括用于保留對照碼的對照碼保留單元,其中所述圖像重新格式化單元將對照碼保留單元中保留的對照碼分配給輸入數(shù)據(jù)。
      26.根據(jù)權(quán)利要求24所述的信息處理設(shè)備,進一步包括存儲控制單元,用于執(zhí)行在存儲裝置中搜索壞塊的位置以獲取位置信息的過程和將由寫入圖像生成單元生成的數(shù)據(jù)寫入到存儲裝置中的過程。
      全文摘要
      在電力激活之后,傳送器14檢查具有所分配的第一錯誤校驗碼114并且存儲在第一存儲裝置11中的引導(dǎo)程序111,使所述引導(dǎo)程序111經(jīng)歷檢錯/糾錯過程,并將所述引導(dǎo)程序111傳送到第二存儲裝置12。如果通過執(zhí)行第二存儲裝置12上的引導(dǎo)程序111而正確地完成傳送,CPU10就為具有所分配的第二錯誤校驗碼115的主程序112執(zhí)行檢錯/糾錯過程,并將主程序112傳送到第三存儲裝置13,在此之后CPU的控制分支到第三存儲裝置13上的主程序112。結(jié)果,能夠在不采用NOR型快閃存儲器的情況下執(zhí)行系統(tǒng)引導(dǎo)。
      文檔編號G06F12/16GK1655121SQ200410103669
      公開日2005年8月17日 申請日期2004年12月24日 優(yōu)先權(quán)日2003年12月25日
      發(fā)明者山本泰宜, 隅田圭三, 三野吉輝 申請人:松下電器產(chǎn)業(yè)株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1