專利名稱:總線控制器及初始引導(dǎo)程序的修補(bǔ)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及搭載在系統(tǒng)LSI中的總線控制器,特別涉及在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中、對初始引導(dǎo)程序(initial boot program)適用補(bǔ)丁(patch)的方法及裝置。
背景技術(shù):
以往,有由對系統(tǒng)進(jìn)行控制的主程序及通過主程序而被參照的安裝在ROM中的程序所控制的系統(tǒng)。作為在這些程序中發(fā)生不良狀況的情況下的對應(yīng)方法,在實施這樣的程序的更換的情況下,使處理器的訪問地址跳躍(jump)以使得不進(jìn)行向需要更換的程序區(qū)域的訪問,通過在跳躍目的地對主程序追加安裝用于安裝新程序的補(bǔ)丁適用程序,實施處理器執(zhí)行的程序的更換(例如參照專利文獻(xiàn)1)?,F(xiàn)有技術(shù)文獻(xiàn)專利文獻(xiàn)專利文獻(xiàn)1 日本特開2005-63311號公報發(fā)明概要發(fā)明要解決的技術(shù)問題但是,近年來,以通過使外部存儲器僅為主程序用的閃存(flash)而帶來的成本競爭力強(qiáng)化為目的,要求具備內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI開發(fā),該內(nèi)置ROM引導(dǎo)模式是指,將系統(tǒng)的初始引導(dǎo)程序搭載在內(nèi)置于系統(tǒng)LSI中的ROM中、在系統(tǒng)初始引導(dǎo)時處理器從搭載在內(nèi)置ROM中的初始引導(dǎo)程序進(jìn)行引導(dǎo)的模式。但是,因為該初始引導(dǎo)程序是在主程序執(zhí)行前被處理、且該初始引導(dǎo)程序是燒入到ROM中的程序,所以在發(fā)現(xiàn)了不良狀況的情況下不能通過之后的補(bǔ)丁適用來避免,在不良狀況發(fā)生時必須進(jìn)行屏蔽(mask)修正,以修正成本為首的事業(yè)沖突非常大。
發(fā)明內(nèi)容
本發(fā)明是鑒于這樣的情況而做出的,目的是提供一種搭載在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中的總線控制器等,能夠?qū)崿F(xiàn)內(nèi)置在系統(tǒng)LSI中的初始引導(dǎo)程序的修正。解決技術(shù)問題所采用的手段為了達(dá)到上述目的,有關(guān)本發(fā)明的總線控制器,搭載在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中,該內(nèi)置ROM引導(dǎo)模式是內(nèi)置在上述系統(tǒng)LSI中的處理器從安裝在內(nèi)置于上述系統(tǒng)LSI中的ROM中的初始引導(dǎo)程序來起動的模式,該總線控制器的特征在于,具備起動模式確認(rèn)電路,根據(jù)通過上述系統(tǒng)LSI的外部端子的狀態(tài)而設(shè)定的起動模式信息,判斷是否需要上述初始引導(dǎo)程序的一部分的更換;補(bǔ)丁代碼轉(zhuǎn)送定序器,在上述起動模式確認(rèn)電路中判斷為需要進(jìn)行上述初始引導(dǎo)程序的更換的情況下,控制來自外部存儲器的規(guī)定地址的補(bǔ)丁代碼的轉(zhuǎn)送;補(bǔ)丁代碼緩存,保存通過上述補(bǔ)丁代碼轉(zhuǎn)送定序器而轉(zhuǎn)送的上述補(bǔ)丁代碼;以及訪問控制電路,根據(jù)包含在上述補(bǔ)丁代碼中的信息,檢測需要更換的上述初始引導(dǎo)程序在上述ROM中的地址,在上述處理器發(fā)出了向上述初始引導(dǎo)程序的對應(yīng)地址的訪問的情況下,通過向上述補(bǔ)丁代碼緩存發(fā)出該訪問,進(jìn)行上述初始引導(dǎo)程序的更換。由此,將初始引導(dǎo)程序中的不良狀況部位替換為被從外部存儲器取入到總線控制器中的補(bǔ)丁程序而執(zhí)行,所以即使是具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI,也能夠不進(jìn)行其內(nèi)置ROM的屏蔽修正而對初始引導(dǎo)程序適用補(bǔ)丁。此外,也可以是以下的結(jié)構(gòu)在上述補(bǔ)丁代碼中,包含表示該補(bǔ)丁代碼的轉(zhuǎn)送大小的轉(zhuǎn)送大小信息;上述補(bǔ)丁代碼轉(zhuǎn)送定序器具備通過參照上述補(bǔ)丁代碼的轉(zhuǎn)送大小信息來判斷上述補(bǔ)丁代碼的轉(zhuǎn)送大小的功能,根據(jù)保存在上述補(bǔ)丁代碼中的轉(zhuǎn)送大小信息進(jìn)行與上述初始引導(dǎo)程序的更換量相應(yīng)的轉(zhuǎn)送。由此,根據(jù)轉(zhuǎn)送大小信息進(jìn)行與上述內(nèi)置ROM程序的更換量相應(yīng)的轉(zhuǎn)送,能夠削減不必要的轉(zhuǎn)送時間。此外,也可以是以下的結(jié)構(gòu)在上述補(bǔ)丁代碼中,包含表示該補(bǔ)丁代碼的轉(zhuǎn)送定時的轉(zhuǎn)送定時信息;上述補(bǔ)丁代碼轉(zhuǎn)送定序器具備通過參照上述補(bǔ)丁代碼的轉(zhuǎn)送定時信息來判斷上述補(bǔ)丁代碼的轉(zhuǎn)送定時的功能,將保存在上述補(bǔ)丁代碼緩存中的補(bǔ)丁代碼動態(tài)地更新。由此,將保存在上述補(bǔ)丁代碼緩存中的數(shù)據(jù)動態(tài)地更新,實現(xiàn)上述補(bǔ)丁代碼緩存的小容量化,削減不必要的轉(zhuǎn)送時間。此外,也可以是以下的結(jié)構(gòu)在上述初始引導(dǎo)程序中,包含使上述補(bǔ)丁代碼轉(zhuǎn)送定序器起動的命令;上述補(bǔ)丁代碼轉(zhuǎn)送定序器搭載有通過上述處理器的控制也能夠起動的接口(I/F),如果經(jīng)由該I/F從上述處理器接受起動指示,則開始上述補(bǔ)丁代碼的轉(zhuǎn)送。由此, 沒有起動模式的確認(rèn)而實現(xiàn)內(nèi)置ROM數(shù)據(jù)的更換。此外,也可以是以下的結(jié)構(gòu)上述訪問控制電路具備判斷被轉(zhuǎn)送的上述補(bǔ)丁代碼的有效及無效的功能,僅在被轉(zhuǎn)送的上述補(bǔ)丁代碼的數(shù)據(jù)表示有效的情況下進(jìn)行上述初始引導(dǎo)程序的更換。由此,不需要通過外部端子進(jìn)行的補(bǔ)丁代碼有無的判斷。此外,也可以是以下的結(jié)構(gòu)上述訪問控制電路對于在由上述補(bǔ)丁代碼轉(zhuǎn)送定序器進(jìn)行的上述補(bǔ)丁代碼的轉(zhuǎn)送處理期間中發(fā)生的來自上述處理器的訪問,通過在轉(zhuǎn)送處理期間中對上述處理器進(jìn)行循環(huán)命令的發(fā)送,對上述處理器發(fā)出等待控制。由此,通過在補(bǔ)丁代碼轉(zhuǎn)送處理期間中對處理器安全地發(fā)出等待控制,能夠避免超時的發(fā)生。另外,本發(fā)明不僅能夠作為總線控制器實現(xiàn),也能夠作為具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中的初始引導(dǎo)程序的修補(bǔ)方法來實現(xiàn)。發(fā)明效果通過搭載有關(guān)本發(fā)明的總線控制器,無需作為以往的補(bǔ)丁處理的主要方法的、對不能避免主程序中的不良狀況的搭載在內(nèi)置于系統(tǒng)LSI中的ROM中的系統(tǒng)的初始引導(dǎo)程序進(jìn)行的屏蔽修正,而能夠以低成本進(jìn)行修正。即,在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中, 能夠不進(jìn)行屏蔽修正、而對初始引導(dǎo)程序適用補(bǔ)丁。進(jìn)而,由于也能夠適用于向初始引導(dǎo)程序進(jìn)行功能追加的目的,所以帶來作為同一系統(tǒng)LSI的產(chǎn)品的長壽命化。
圖1是表示本發(fā)明的實施方式的總線控制器的結(jié)構(gòu)的一例的框圖。圖2是表示本發(fā)明的實施方式的總線控制器的動作的一例的時序圖。圖3是表示補(bǔ)丁代碼的數(shù)據(jù)結(jié)構(gòu)例的圖。
圖4是表示作為本發(fā)明的總線控制器的擴(kuò)展功能的轉(zhuǎn)送大小解析的動作的一例的時序圖。圖5是表示補(bǔ)丁代碼的其他數(shù)據(jù)結(jié)構(gòu)例的圖。圖6是表示作為本發(fā)明的總線控制器的擴(kuò)展功能的轉(zhuǎn)送定時解析的動作的一例的時序圖。圖7(a)是表示補(bǔ)丁代碼的其他數(shù)據(jù)結(jié)構(gòu)例的圖,圖7(b)是表示使用該補(bǔ)丁代碼的有關(guān)本發(fā)明的總線控制器的動作例的流程圖。圖8是表示包含在初始引導(dǎo)程序中的命令列的例子的圖。
具體實施例方式以下,對本發(fā)明的實施方式進(jìn)行說明。圖1是表示使用搭載本發(fā)明的實施方式的總線控制器3的系統(tǒng)LSIl而得的系統(tǒng)結(jié)構(gòu)的一例的框圖。使用圖1,對有關(guān)本發(fā)明的總線控制器3的概略結(jié)構(gòu)及動作進(jìn)行說明。對使用搭載有有關(guān)本發(fā)明的總線控制器3的系統(tǒng)LSIl而得的系統(tǒng)結(jié)構(gòu)例和起動序列的概要進(jìn)行說明。該例所示的系統(tǒng)LSIl搭載有對系統(tǒng)LSIl整體進(jìn)行控制的處理器2 和有關(guān)本發(fā)明的總線控制器3。總線控制器3是搭載在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSIl 中的總線控制器,該內(nèi)置ROM引導(dǎo)模式是從安裝在內(nèi)置于系統(tǒng)LSIl中的R0M(Read Only Memory)中的初始引導(dǎo)程序31起動的模式,所述總線控制器3具備的結(jié)構(gòu)為,除了包含保存在內(nèi)置ROM中的初始引導(dǎo)程序31的以往的總線控制器以外、還追加了起動模式確認(rèn)電路 32、補(bǔ)丁代碼(patch code)轉(zhuǎn)送定序器(sequencer) 33、補(bǔ)丁代碼緩存34和緩存 內(nèi)置ROM 訪問控制電路35。作為使用搭載本發(fā)明的實施方式的總線控制器3的系統(tǒng)LSIl而得的系統(tǒng),有將保存有主程序41的外部FLASH存儲器4與主存儲器5連接的系統(tǒng)。作為系統(tǒng)的起動的流程,是指如下流程,即如果復(fù)位被解除,則首先處理器2執(zhí)行搭載在內(nèi)置ROM中的初始引導(dǎo)程序31、將主程序41向主存儲器5轉(zhuǎn)送,然后,處理器2通過執(zhí)行轉(zhuǎn)送給主存儲器5 的主程序來控制系統(tǒng)整體。對有關(guān)本發(fā)明的總線控制器3具備的構(gòu)成單元進(jìn)行說明。起動模式確認(rèn)電路32根據(jù)通過系統(tǒng)LSIl的外部端子6的狀態(tài)而設(shè)定的起動模式信息,判斷是否需要初始引導(dǎo)程序31的一部分的更換。在起動模式確認(rèn)電路32判斷為需要初始引導(dǎo)程序31的部分更換的情況下,起動模式確認(rèn)電路32向補(bǔ)丁代碼轉(zhuǎn)送定序器33發(fā)送用來將補(bǔ)丁代碼42向補(bǔ)丁代碼緩存34轉(zhuǎn)送的起動信號,該補(bǔ)丁代碼42位于外部FLASH 存儲器4的特定區(qū)域中且包含更換用程序。補(bǔ)丁代碼轉(zhuǎn)送定序器33接受來自起動模式確認(rèn)電路32的起動信號(即補(bǔ)丁代碼轉(zhuǎn)送請求),在處理器2的起動前取得位于外部FLASH存儲器4的特定區(qū)域中的補(bǔ)丁代碼 42,解析補(bǔ)丁代碼42的頭,將程序向補(bǔ)丁代碼緩存34轉(zhuǎn)送。在補(bǔ)丁代碼42的轉(zhuǎn)送期間中, 該補(bǔ)丁代碼轉(zhuǎn)送定序器33通過對處理器2進(jìn)行循環(huán)命令的發(fā)送而對處理器2發(fā)出等待控制。具體而言,在補(bǔ)丁代碼42的轉(zhuǎn)送期間中,該補(bǔ)丁代碼轉(zhuǎn)送定序器33對于處理器2,通過等待、循環(huán)命令的發(fā)送,向緩存·內(nèi)置ROM訪問控制電路35通知訪問等待請求,以使得采取處理器不會掛起(hang)(或超時)那樣的行為,如果轉(zhuǎn)送完成,則許可由處理器2進(jìn)行的向初始引導(dǎo)程序31的訪問。保存有補(bǔ)丁代碼42的地址通過補(bǔ)丁代碼轉(zhuǎn)送定序器33的安裝時的約定來規(guī)定。適用從初始引導(dǎo)程序31向補(bǔ)丁代碼42的更換的初始引導(dǎo)程序的地址通過作為補(bǔ)丁代碼42的頭部而賦予的地址信息來規(guī)定。補(bǔ)丁代碼轉(zhuǎn)送定序器33將包括頭部的補(bǔ)丁代碼42分離為程序部和頭部,其中,頭部包含地址信息。程序部保存在補(bǔ)丁代碼緩存34中。關(guān)于頭部,由補(bǔ)丁代碼轉(zhuǎn)送定序器33作為控制信息而保持,將位于頭部中的地址信息作為向補(bǔ)丁代碼緩存34的更換訪問所用到的地址信息來向緩存·內(nèi)置ROM訪問控制電路35發(fā)送。補(bǔ)丁代碼緩存34是保存補(bǔ)丁代碼42的程序部的緩存。通過補(bǔ)丁代碼轉(zhuǎn)送定序器 33保存補(bǔ)丁代碼42的程序部。保存的補(bǔ)丁代碼42的程序部基于緩存 內(nèi)置ROM訪問控制電路35的訪問判斷,通過處理器2而被訪問。緩存 內(nèi)置ROM訪問控制電路35基于來自補(bǔ)丁代碼轉(zhuǎn)送定序器33的用于更換訪問的地址信息來解析來自處理器2的訪問,在來自處理器2的訪問命中于補(bǔ)丁適用地址的情況下,作為更換訪問而發(fā)出向補(bǔ)丁代碼緩存34的訪問,在沒有命中于補(bǔ)丁適用地址的情況下,發(fā)出向初始引導(dǎo)程序31的訪問。此外,檢測在由補(bǔ)丁代碼轉(zhuǎn)送定序器33進(jìn)行的補(bǔ)丁代碼42的轉(zhuǎn)送期間中所發(fā)送的訪問等待請求,在有訪問等待請求的期間中對處理器2發(fā)送等待·循環(huán)命令。使用圖2說明以上的一系列的動作。從TO到Tl的期間是對系統(tǒng)LSIl施加了復(fù)位的狀態(tài)。在該期間中,將意味著有補(bǔ)丁代碼的信息設(shè)定在外部端子6中。在緊接著作為復(fù)位解除定時的Tl之后,將表示有補(bǔ)丁代碼的信息傳遞給起動模式確認(rèn)電路32,之后在T2 的定時起動補(bǔ)丁代碼轉(zhuǎn)送定序器33。起動后的補(bǔ)丁代碼轉(zhuǎn)送定序器33隨時取得保存在外部FLASH存儲器4中的補(bǔ)丁代碼42,在到T3為止的期間中進(jìn)行包括補(bǔ)丁地址的頭解析、和程序的向補(bǔ)丁代碼緩存34的保存。在此期間中,復(fù)位解除后的處理器2為了初始引導(dǎo)程序 31的取得而發(fā)出對地址AO的訪問,但緩存·內(nèi)置ROM訪問控制電路35對處理器發(fā)出意味著等待 循環(huán)處理的命令,從而處理器2反復(fù)進(jìn)行向地址AO的訪問。補(bǔ)丁代碼轉(zhuǎn)送定序器 33在T3的定時結(jié)束從補(bǔ)丁代碼42的補(bǔ)丁地址的取得和程序的向補(bǔ)丁代碼緩存34的保存, 對緩存 內(nèi)置ROM訪問控制電路35通知補(bǔ)丁地址和轉(zhuǎn)送完成。被通知了補(bǔ)丁代碼42的轉(zhuǎn)送完成的緩存·內(nèi)置ROM訪問控制電路35結(jié)束對處理器2的等待·循環(huán)處理,基于來自處理器2的訪問地址與從補(bǔ)丁代碼轉(zhuǎn)送定序器33提示的補(bǔ)丁地址的比較,將處理器2的訪問切換為初始引導(dǎo)程序31或補(bǔ)丁代碼緩存34中的某個。通過以上那樣的序列,實現(xiàn)對初始引導(dǎo)程序31的補(bǔ)丁適用(更換)。接著,對本實施方式的總線控制器3具備的附加的功能進(jìn)行說明。補(bǔ)丁代碼轉(zhuǎn)送定序器33也可以具備判斷轉(zhuǎn)送的補(bǔ)丁代碼大小的功能。在此情況下,如圖3所示,作為由頭部4 和程序部42b構(gòu)成的補(bǔ)丁代碼42的頭部42a,不僅預(yù)先賦予補(bǔ)丁地址(上述的地址信息(補(bǔ)丁適用地址)),還預(yù)先賦予規(guī)定補(bǔ)丁代碼大小的信息(轉(zhuǎn)送大小信息;圖中的“補(bǔ)丁代碼大小”)。補(bǔ)丁代碼轉(zhuǎn)送定序器33具備檢測該補(bǔ)丁代碼大小信息、將需要的最小限度的補(bǔ)丁代碼向補(bǔ)丁代碼緩存34轉(zhuǎn)送的動作模式。通過具備該動作模式,作為補(bǔ)丁代碼,能夠僅進(jìn)行所需要的數(shù)據(jù)轉(zhuǎn)送,不需要進(jìn)行在補(bǔ)丁適用中不需要的多余的數(shù)據(jù)轉(zhuǎn)送,所以帶來系統(tǒng)的起動時間的縮短。圖2中的T2到T3的期間是補(bǔ)丁代碼轉(zhuǎn)送時間,但如圖4所示,通過在補(bǔ)丁代碼取得時取得補(bǔ)丁代碼的大小信息、進(jìn)行需要的大小的數(shù)據(jù)轉(zhuǎn)送,從而能夠?qū)⒃诠潭ù笮∞D(zhuǎn)送時為T3的定時的補(bǔ)丁代碼轉(zhuǎn)送完成時間縮短為T3'。此外,補(bǔ)丁代碼轉(zhuǎn)送定序器33也可以具備判斷補(bǔ)丁代碼42的轉(zhuǎn)送定時、自發(fā)地開始補(bǔ)丁代碼42的轉(zhuǎn)送的功能。這里,設(shè)想在補(bǔ)丁代碼42中保存有多個對于初始引導(dǎo)程序 31的多處的程序的替換、或者多個功能追加的程序。在此情況下,如圖5所示,在補(bǔ)丁代碼 42的頭部42a中,作為表示補(bǔ)丁代碼42的轉(zhuǎn)送定時的轉(zhuǎn)送定時信息,包括包含在補(bǔ)丁代碼42中的這些多個功能的程序A、B、C(圖中的“補(bǔ)丁代碼A、補(bǔ)丁代碼B、補(bǔ)丁代碼C”)的補(bǔ)丁地址PA-A、PA-B、PA-C ;補(bǔ)丁代碼大小PS-A、PS_B、PS_C ;補(bǔ)丁代碼轉(zhuǎn)送開始地址PT-A、 PT-B, PT-C ;補(bǔ)丁代碼FLASH內(nèi)部地址PF_A、PF-B, PF-C。首先,補(bǔ)丁代碼轉(zhuǎn)送定序器33解析頭信息,取得補(bǔ)丁地址、補(bǔ)丁代碼大小、補(bǔ)丁代碼轉(zhuǎn)送開始地址,除了補(bǔ)丁地址以外,還將補(bǔ)丁代碼轉(zhuǎn)送開始地址信息向緩存·內(nèi)置ROM訪問控制電路35通知。補(bǔ)丁代碼轉(zhuǎn)送開始地址用于,在來自處理器2的訪問到達(dá)由補(bǔ)丁代碼轉(zhuǎn)送開始地址所表示的地址的情況下開始補(bǔ)丁代碼的轉(zhuǎn)送。被通知了補(bǔ)丁代碼轉(zhuǎn)送開始地址的緩存·內(nèi)置ROM訪問控制電路35,在來自處理器2的訪問地址命中于補(bǔ)丁代碼轉(zhuǎn)送開始地址的情況下,進(jìn)入到等待 循環(huán)處理。 而且,將補(bǔ)丁代碼轉(zhuǎn)送起動請求與命中的地址信息一起向補(bǔ)丁代碼轉(zhuǎn)送定序器33發(fā)送。接受到地址信息和補(bǔ)丁代碼轉(zhuǎn)送起動請求的補(bǔ)丁代碼轉(zhuǎn)送定序器33,作為對應(yīng)的補(bǔ)丁代碼而從補(bǔ)丁代碼FLASH內(nèi)部地址轉(zhuǎn)送補(bǔ)丁代碼,轉(zhuǎn)送量為補(bǔ)丁代碼大小的量。圖6是表示上述那樣的轉(zhuǎn)送定時解析的動作的一例的時序圖。在T2的定時被起動的補(bǔ)丁代碼轉(zhuǎn)送定序器33僅進(jìn)行補(bǔ)丁代碼42的頭部42a的轉(zhuǎn)送,取得包含在補(bǔ)丁代碼42 的頭部42a中的轉(zhuǎn)送定時信息。然后,在T4的定時,處理器2的訪問地址與補(bǔ)丁代碼轉(zhuǎn)送開始地址一致,緩存·內(nèi)置ROM訪問控制電路35對于處理器2進(jìn)入到等待·循環(huán)處理,起動補(bǔ)丁代碼轉(zhuǎn)送定序器33。補(bǔ)丁代碼轉(zhuǎn)送定序器33在T5的定時完成以處理器2的訪問地址、補(bǔ)丁代碼轉(zhuǎn)送開始地址和起動請求為基礎(chǔ)的補(bǔ)丁代碼A的向補(bǔ)丁代碼緩存34的轉(zhuǎn)送, 從而向緩存·內(nèi)置ROM訪問控制電路35提示補(bǔ)丁地址,進(jìn)行補(bǔ)丁代碼的適用。然后,在T6 的定時,如果到達(dá)第2補(bǔ)丁代碼轉(zhuǎn)送開始地址,則緩存 內(nèi)置ROM訪問控制電路35再次轉(zhuǎn)移到等待·循環(huán)處理,補(bǔ)丁代碼轉(zhuǎn)送定序器33進(jìn)行補(bǔ)丁代碼B的轉(zhuǎn)送,以下同樣地進(jìn)行補(bǔ)丁代碼的適用。通過具備該模式,能夠?qū)崿F(xiàn)小容量的補(bǔ)丁代碼緩存中的多個補(bǔ)丁適用。此外, 由于僅在需要的情況下進(jìn)行補(bǔ)丁代碼的轉(zhuǎn)送,所以與將補(bǔ)丁代碼的轉(zhuǎn)送統(tǒng)一進(jìn)行的情況相比能夠?qū)崿F(xiàn)數(shù)據(jù)轉(zhuǎn)送時間的縮短,其中,該需要的情況是指存在僅在系統(tǒng)LSIl的某一部分的模式使用時才需要的補(bǔ)丁代碼的情況等。此外,補(bǔ)丁代碼轉(zhuǎn)送定序器33也可以具備判斷各個補(bǔ)丁代碼的有效及無效的功能。在此情況下,如圖7(a)的補(bǔ)丁代碼42的數(shù)據(jù)結(jié)構(gòu)圖所示,在補(bǔ)丁代碼42的頭部42a 中預(yù)先包含表示各個補(bǔ)丁代碼的有效/無效的標(biāo)志。在補(bǔ)丁代碼轉(zhuǎn)送定序器33檢測到表示補(bǔ)丁代碼的無效的標(biāo)志的情況下,補(bǔ)丁代碼轉(zhuǎn)送定序器33不對緩存·內(nèi)置ROM訪問控制電路35提示對應(yīng)的補(bǔ)丁地址。S卩,如圖7(b)所示的流程圖那樣,通過具備僅在被轉(zhuǎn)送的上述補(bǔ)丁代碼的數(shù)據(jù)表示有效的情況下(Si)進(jìn)行上述初始引導(dǎo)程序的更換(S》的模式,從而不需要由外部端子6進(jìn)行的補(bǔ)丁代碼有無的判斷,所以能夠?qū)崿F(xiàn)外部端子6的分配及判斷電路的削減。但是,在沒有補(bǔ)丁代碼的情況下也必定發(fā)生補(bǔ)丁代碼轉(zhuǎn)送。此外,補(bǔ)丁代碼轉(zhuǎn)送定序器33也可以具備能夠從處理器2起動的接口(I/F)部。 即,補(bǔ)丁代碼轉(zhuǎn)送定序器33搭載有受理來自處理器2的起動指示的I/F部,如果經(jīng)由該I/
8F部從處理器2接受起動指示,則可以開始補(bǔ)丁代碼的轉(zhuǎn)送。通過具備該模式(I/F部)、并且如圖8所示那樣在初始引導(dǎo)程序31中搭載補(bǔ)丁代碼轉(zhuǎn)送定序器33的起動命令31a,從而不需要由外部端子6進(jìn)行的補(bǔ)丁代碼有無的判斷,所以能夠?qū)崿F(xiàn)外部端子6的分配及判斷電路的削減。但是,在沒有補(bǔ)丁代碼的情況下也必定發(fā)生補(bǔ)丁代碼轉(zhuǎn)送。以上,對于有關(guān)本發(fā)明的總線控制器,基于實施方式進(jìn)行了說明,但本發(fā)明并不限定于該實施方式。例如,上述的總線控制器補(bǔ)丁具備的附加的功能、即代碼的轉(zhuǎn)送大小的判斷、補(bǔ)丁代碼的轉(zhuǎn)送定時的判斷、能夠從處理器起動的I/F、補(bǔ)丁代碼的有效及無效的判斷等,既可以全部安裝,也可以以任意的組合安裝。此外,在本實施方式中,總線控制器3具備保存有初始引導(dǎo)程序31的內(nèi)置ROM,但這樣的內(nèi)置ROM只要內(nèi)置在系統(tǒng)LSIl中就可以,不需要必須內(nèi)置在總線控制器3中。工業(yè)實用性有關(guān)本發(fā)明的總線控制器,作為搭載在系統(tǒng)LSI中的總線控制器、特別是作為在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中、為了能夠?qū)崿F(xiàn)對不能進(jìn)行主程序中的補(bǔ)丁適用的初始引導(dǎo)程序的補(bǔ)丁適用而具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI等中搭載的總線控制器,具有
實用性。
標(biāo)號說明
1系統(tǒng)LSI
2處理器
3總線控制器
4外部FLASH存儲器
5主存儲器
6外部端子
31初始引導(dǎo)程序
31a補(bǔ)丁代碼轉(zhuǎn)送定序器起動命令
32起動模式確認(rèn)電路
33補(bǔ)丁代碼轉(zhuǎn)送定序器
34補(bǔ)丁代碼緩存
35緩存 內(nèi)置ROM訪問控制電路
41主程序
42補(bǔ)丁代碼
4 頭部
42b程序部
權(quán)利要求
1.一種總線控制器,搭載在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中,該內(nèi)置ROM引導(dǎo)模式是內(nèi)置在上述系統(tǒng)LSI中的處理器從安裝在內(nèi)置于上述系統(tǒng)LSI中的只讀存儲器即ROM 中的初始引導(dǎo)程序來起動的模式,該總線控制器的特征在于,具備起動模式確認(rèn)電路,根據(jù)通過上述系統(tǒng)LSI的外部端子的狀態(tài)而設(shè)定的起動模式信息,判斷是否需要上述初始引導(dǎo)程序的一部分的更換;補(bǔ)丁代碼轉(zhuǎn)送定序器,在上述起動模式確認(rèn)電路中判斷為需要進(jìn)行上述初始引導(dǎo)程序的更換的情況下,控制來自外部存儲器的規(guī)定地址的、包含更換用程序的補(bǔ)丁代碼的轉(zhuǎn)送;補(bǔ)丁代碼緩存,保存通過上述補(bǔ)丁代碼轉(zhuǎn)送定序器而轉(zhuǎn)送的上述補(bǔ)丁代碼;以及訪問控制電路,根據(jù)包含在上述補(bǔ)丁代碼中的信息,檢測需要更換的上述初始引導(dǎo)程序在上述ROM中的地址,在上述處理器發(fā)出了向上述初始引導(dǎo)程序的對應(yīng)地址的訪問的情況下,通過作為該訪問的更換訪問而發(fā)出向上述補(bǔ)丁代碼緩存的訪問,從而進(jìn)行上述初始引導(dǎo)程序的更換。
2.如權(quán)利要求1所述的總線控制器,其特征在于,在上述補(bǔ)丁代碼中,包含表示該補(bǔ)丁代碼的轉(zhuǎn)送大小的轉(zhuǎn)送大小信息;上述補(bǔ)丁代碼轉(zhuǎn)送定序器具備通過參照上述補(bǔ)丁代碼的轉(zhuǎn)送大小信息來判斷上述補(bǔ)丁代碼的轉(zhuǎn)送大小的功能,根據(jù)保存在上述補(bǔ)丁代碼中的轉(zhuǎn)送大小信息進(jìn)行與上述初始引導(dǎo)程序的更換量相應(yīng)的轉(zhuǎn)送。
3.如權(quán)利要求1或2所述的總線控制器,其特征在于,在上述補(bǔ)丁代碼中,包含表示該補(bǔ)丁代碼的轉(zhuǎn)送定時的轉(zhuǎn)送定時信息;上述補(bǔ)丁代碼轉(zhuǎn)送定序器具備通過參照上述補(bǔ)丁代碼的轉(zhuǎn)送定時信息來判斷上述補(bǔ)丁代碼的轉(zhuǎn)送定時的功能,將保存在上述補(bǔ)丁代碼緩存中的補(bǔ)丁代碼動態(tài)地更新。
4.如權(quán)利要求1 3中任一項所述的總線控制器,其特征在于,在上述初始引導(dǎo)程序中,包含使上述補(bǔ)丁代碼轉(zhuǎn)送定序器起動的命令;上述補(bǔ)丁代碼轉(zhuǎn)送定序器搭載有受理來自上述處理器的起動指示的接口部,如果經(jīng)由該接口部從上述處理器接受起動指示,則開始上述補(bǔ)丁代碼的轉(zhuǎn)送。
5.如權(quán)利要求1 4中任一項所述的總線控制器,其特征在于,上述訪問控制電路具備判斷被轉(zhuǎn)送的上述補(bǔ)丁代碼的有效及無效的功能,僅在被轉(zhuǎn)送的上述補(bǔ)丁代碼的數(shù)據(jù)表示有效的情況下進(jìn)行上述初始引導(dǎo)程序的更換。
6.如權(quán)利要求1 5中任一項所述的總線控制器,其特征在于,上述訪問控制電路,對于在由上述補(bǔ)丁代碼轉(zhuǎn)送定序器進(jìn)行的上述補(bǔ)丁代碼的轉(zhuǎn)送處理期間發(fā)生的來自上述處理器的訪問,通過在轉(zhuǎn)送處理期間中對上述處理器進(jìn)行循環(huán)命令的發(fā)送,對上述處理器發(fā)出等待控制。
7.一種初始引導(dǎo)程序的修補(bǔ)方法,在具有內(nèi)置ROM引導(dǎo)模式的系統(tǒng)LSI中對初始引導(dǎo)程序進(jìn)行更換,該內(nèi)置ROM引導(dǎo)模式是內(nèi)置在系統(tǒng)LSI中的處理器從安裝在內(nèi)置于上述系統(tǒng)LSI中的ROM中的上述初始引導(dǎo)程序來起動的模式,該初始引導(dǎo)程序的修補(bǔ)方法的特征在于,具備以下步驟判斷是否需要上述初始引導(dǎo)程序的一部分的更換;在判斷為需要上述初始引導(dǎo)程序的更換的情況下,從外部存儲器的規(guī)定地址讀出包含更換用程序的補(bǔ)丁代碼,將該補(bǔ)丁代碼向補(bǔ)丁代碼緩存轉(zhuǎn)送;以及根據(jù)包含在上述補(bǔ)丁代碼中的信息,檢測需要更換的上述初始引導(dǎo)程序在上述ROM中的地址,在上述處理器發(fā)出了向上述初始引導(dǎo)程序的對應(yīng)地址的訪問的情況下,通過作為該訪問的更換訪問而發(fā)出向上述補(bǔ)丁代碼緩存的訪問,從而進(jìn)行上述初始引導(dǎo)程序的更換。
全文摘要
一種在內(nèi)置ROM的初始引導(dǎo)程序的不良狀況發(fā)生時不進(jìn)行屏蔽修正、能夠進(jìn)行初始引導(dǎo)程序的修正的總線控制器,具備起動模式確認(rèn)電路(32),根據(jù)來自外部端子(6)的起動模式信息,判斷是否需要初始引導(dǎo)程序(31)的一部分的更換;補(bǔ)丁代碼轉(zhuǎn)送定序器(33),在判斷為需要的情況下,控制從外部存儲器的補(bǔ)丁代碼(42)的轉(zhuǎn)送;補(bǔ)丁代碼緩存(34),將被轉(zhuǎn)送的上述補(bǔ)丁代碼保存;以及緩存·內(nèi)置ROM訪問控制電路(35),根據(jù)包含在上述補(bǔ)丁代碼中的信息,檢測需要更換的上述初始引導(dǎo)程序在ROM中的地址,在處理器(2)發(fā)出了向上述初始引導(dǎo)程序的對應(yīng)地址的訪問的情況下,通過向上述補(bǔ)丁代碼緩存發(fā)出該訪問,進(jìn)行上述初始引導(dǎo)程序的更換。
文檔編號G06F11/00GK102265263SQ20098015249
公開日2011年11月30日 申請日期2009年10月9日 優(yōu)先權(quán)日2008年12月24日
發(fā)明者前田太郎 申請人:松下電器產(chǎn)業(yè)株式會社