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