專利名稱:具有解釋功能的lsi和使用其的信息記錄/再現(xiàn)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具有解釋功能的LSI,和一種使用這一LSI的信息記錄/再現(xiàn)設(shè)備。具體地,本發(fā)明涉及一種LSI,包括一用于存儲中間碼的RAM、一用于存儲解釋執(zhí)行程序以解釋該中間碼的ROM、和一用于控制該解釋執(zhí)行程序的執(zhí)行的CPU;和使用這樣一LSI的光盤設(shè)備。
在上述常規(guī)的LSI中,僅預(yù)先存儲在ROM中的軟件可被執(zhí)行,且不允許自由地對存儲在ROM中的軟件進行修改。因此,這樣一LSI不能與多個制造商生產(chǎn)的基于不同標準和不同規(guī)格的各種光盤設(shè)備一起使用。而且,在光盤設(shè)備的開發(fā)過程中產(chǎn)生的對修改規(guī)格和增加功能的需要不能被容易地滿足。如果通過增加一外部ROM來實現(xiàn)規(guī)格的修改和功能的增加,就牽扯到在該LSI的工作期間程序(軟件)的內(nèi)容可能泄漏。而且,存在有在CPU和ROM之間的信號的傳送可能被第三方觀察到的危險。
在本發(fā)明的一實施例上,該中間碼被加密。
在本發(fā)明的另一實施例中,該RAM可存儲一被加密的中間碼和一未被加密的中間碼;且該解釋執(zhí)行程序可解釋該被加密的中間碼和該未被加密的中間碼兩者。
在本發(fā)明的再另一實施例中,該LSI還包括一記錄/再現(xiàn)頭,用于記錄/再現(xiàn)一光盤上的信息;和一光盤控制部分,用于控制驅(qū)動該光盤的一電機,其中該光盤控制部分被形成在該一芯片上。
根據(jù)本發(fā)明的另一方面,一種光盤設(shè)備,包括一執(zhí)行部分,用于執(zhí)行可解釋一中間碼的一解釋執(zhí)行程序,以使生成一控制指令串;和一控制部分,用于根據(jù)該控制指令串控制一光盤上的信息的記錄/再現(xiàn)。
在本發(fā)明的一實施例中,該執(zhí)行部分包括一RAM,用于存儲一中間碼;一ROM,用于存儲該解釋執(zhí)行程序;和一CPU,用于控制該解釋執(zhí)行程序的執(zhí)行。
在本發(fā)明的另一實施例中,該RAM、ROM和CPU形成在一芯片上。
在本發(fā)明的再另一實施例中,該控制部分包括一記錄/再現(xiàn)頭,用于記錄/再現(xiàn)該光盤上的信息;一電機,用于驅(qū)動該光盤;和一光盤控制部分,用于控制該記錄/再現(xiàn)頭和該電機。
在本發(fā)明的再另一實施例中,該光盤控制部分被形成在該一芯片上。
在本發(fā)明的再另一實施例中,該中間碼被加密。
在本發(fā)明的另一實施例中,該RAM可存儲一被加密的中間碼和一未被加密的中間碼;且該解釋執(zhí)行程序可解釋該被加密的中間碼和該未被加密的中間碼兩者。
以下,將描述本發(fā)明的功能。
在根據(jù)本發(fā)明的一LSI中,用于存儲一中間碼的一RAM、用于存儲一可解釋該中間碼的一解釋執(zhí)行程序的ROM和用于控制該解釋執(zhí)行程序的執(zhí)行的CPU被形成在一芯片上。具有這樣一結(jié)構(gòu),就不會涉及到在CPU的工作期間在該芯片外部的ROM中存儲的解釋執(zhí)行程序的內(nèi)容發(fā)生泄漏。而且,在CPU和RAM及ROM之間傳送的信號不可能被第三方觀察到。
還有,根據(jù)本發(fā)明的一光盤設(shè)備具有用于執(zhí)行可解釋一中間碼的一解釋執(zhí)行程序,以使生成一控制指令串的一執(zhí)行部分。具有這樣一結(jié)構(gòu),本發(fā)明的光盤設(shè)備可僅通過重寫該中間碼以使與來自多個制造商的基于不同的標準和規(guī)格的各種光盤設(shè)備相兼容來進行修改。而且,即使在光盤設(shè)備的開發(fā)過程中產(chǎn)生的對修改規(guī)格和增加功能的需要,僅通過重寫該中間碼而不給該LSI增加附加的電路和以另一LSI來更換該LSI,可容易地滿足這一需要。
這樣,在此描述的本發(fā)明具有以下的優(yōu)點(1)提供了一種LSI,其可用于來自多個制造商的基于不同的標準和規(guī)格的各種光盤設(shè)備,其中在光盤設(shè)備的開發(fā)過程中產(chǎn)生的對修改規(guī)格和增加功能的需要可被容易地滿足,且其中不會涉及到在CPU的工作期間該程序(軟件)的內(nèi)容發(fā)生泄漏;及(2)提供了使用這樣的LSI的光盤設(shè)備。
通過參照附圖所作的詳細描述,本發(fā)明的這些及其它的優(yōu)點將變得顯然。
圖2示出了根據(jù)本發(fā)明的實施例1的一中間碼的數(shù)據(jù)結(jié)構(gòu)。
圖3說明了根據(jù)本發(fā)明的實施例1的加密一中間碼以生成以加密的中間碼的過程。
圖4示出了根據(jù)本發(fā)明的實施例1的以中間碼的特定結(jié)構(gòu)的一例子。
圖5示出了根據(jù)本發(fā)明的實施例1的一特定密碼結(jié)構(gòu)的示例性結(jié)構(gòu)。
圖6示出了根據(jù)本發(fā)明的實施例1的一加密的中間碼的結(jié)構(gòu)。
圖7示出了根據(jù)本發(fā)明的實施例1的加密的中間碼數(shù)據(jù)的一具體例子。
圖8說明了根據(jù)本發(fā)明的實施例1的解密一加密的中間碼的過程。
圖9說明了通過根據(jù)本發(fā)明的實施例1的一LSI執(zhí)行一中間碼的過程。
圖10說明了根據(jù)本發(fā)明的實施例1的一中間碼的指令的執(zhí)行。
圖11示出了根據(jù)本發(fā)明的實施例2的一LSI。
圖12示出了根據(jù)本發(fā)明的實施例2的執(zhí)行一中間碼的過程。
本發(fā)明的一LSI可被實現(xiàn)為以下所述的三種類型中的任一種LSI。(第一種)第一種LSI包括一RAM,用于存儲一中間碼;一ROM,用于存儲一可解釋該中間碼的一解釋執(zhí)行程序;和一CPU,用于控制該解釋執(zhí)行程序的執(zhí)行,其中該RAM、ROM和CPU形成在一芯片上。在該第一種LSI中,該RAM中存儲的中間碼未被加密。這樣,該第一種LSI的用戶可自由地修改該RAM中存儲的中間碼以使根據(jù)環(huán)境自由地用戶化該LSI。例如,通過修改該中間碼,這樣一LSI可共同的應(yīng)用于不同制造商的設(shè)備。即使在該LSI中產(chǎn)生修改規(guī)格或增加功能的需要,該用戶不需要對該LSI增加電路或以另一LSI來更換該LSI,而僅需修改RAM中存儲的中間碼。這樣,在開發(fā)結(jié)合有LSI的產(chǎn)品所花費的時間和成本可被大大地降低。(第二種)第二種LSI包括一RAM,用于存儲一中間碼;一ROM,用于存儲一可解釋該中間碼的一解釋執(zhí)行程序;和一CPU,用于控制該解釋執(zhí)行程序的執(zhí)行,其中該RAM、ROM和CPU形成在一芯片上。該第二種LSI的結(jié)構(gòu)與第一種相同。然而,該第二種LSI與第一種LSI的不同之處在于該中間碼被加密。這樣,當在第二種LSI中產(chǎn)生修改規(guī)格和增加功能的需要時,該第二種LSI的用戶可通過請求該LSI的銷售商修改RAM中存儲的中間碼而可自由地用戶化該LSI。因此,該用戶不需要對該LSI增加電路或以另一LSI來更換該LSI,而僅需修改RAM中存儲的中間碼。這樣,在開發(fā)結(jié)合有LSI的產(chǎn)品所花費的時間和成本可被大大地降低。而且,中間碼的加密對于該LSI的銷售商的有益之處在于裝置控制的技術(shù)秘密可對用戶保密。(第三種)第三種LSI包括一RAM,用于存儲一中間碼;一ROM,用于存儲一可解釋該中間碼的一解釋執(zhí)行程序;和一CPU,用于控制該解釋執(zhí)行程序的執(zhí)行,其中該RAM、ROM和CPU形成在一芯片上。該第三種LSI的結(jié)構(gòu)與第一種相同。然而,該第三種LSI與第一種LSI的不同之處在于該RAM中存儲的中間碼包括被加密的中間碼和未被加密的中間碼,且該解釋執(zhí)行程序可解釋該被加密的中間碼和該未被加密的中間碼兩者。這樣,當在第二種LSI中產(chǎn)生修改規(guī)格和增加功能的需要時,該第二種LSI的用戶可通過修改RAM中存儲的未加密的中間碼而可根據(jù)環(huán)境自由地用戶化該LSI。因此,該用戶不需要對該LSI增加電路或以另一LSI來更換該LSI,而僅需修改RAM中存儲的未加密的中間碼。這樣,在開發(fā)結(jié)合有LSI的產(chǎn)品所花費的時間和成本可被大大地降低。而且,由于用戶不能解釋被加密的中間碼。該LSI的銷售商可靠地得知裝置控制的技術(shù)秘密不會對用戶公開。在第三種LSI中,為了解密該被加密的中間碼,用戶使用由銷售商設(shè)置的一解密密鑰(例如ROM中存儲的數(shù)據(jù)的任何連續(xù)隨機部分)。較佳地是不同的解密密鑰被分配給不同的用戶,以使在這些用戶中對該信息進行保密。這樣,在第三種LSI中,既實現(xiàn)了用戶方便又保證了銷售商的利益。
接著,描述本發(fā)明的用于執(zhí)行(上述第二或第三種)LSI的RAM中存儲的一被加密的中間碼的方法。
當本發(fā)明的LSI通過使用ROM中存儲的解釋執(zhí)行程序,在CPU的控制下,執(zhí)行RAM中存儲的一被加密的中間碼時,可采用以下兩種方法。在第一種方法中,RAM中存儲的被預(yù)先加密的中間碼被解密,且針對各指令,序列地執(zhí)行這些被解密的中間碼。在第二種方法中,該RAM具有一可從外部訪問的區(qū)域和一不可從外部訪問的區(qū)域。首先,在該可從外部訪問的RAM區(qū)域中記錄的預(yù)先加密的中間碼被解密,且在被記錄在該不可從外部訪問的RAM區(qū)域后,執(zhí)行該被解密的中間碼。
以下,參照附圖依序描述涉及帶有具有第一執(zhí)行方法的解釋功能的LSI的光盤設(shè)備的實施例1和帶有具有第二執(zhí)行方法的解釋功能的LSI的光盤設(shè)備的實施例2。應(yīng)注意以下所述的實施例對于本發(fā)明僅是示例性的,本發(fā)明不限于這些示例性的實施例。(實施例1)圖1示出了根據(jù)本發(fā)明的實施例1的光盤設(shè)備100。
該光盤設(shè)備100包括一執(zhí)行部分120,用于執(zhí)行可解釋一中間碼的一解釋執(zhí)行程序,以使生成一控制指令串;和一控制部分121,用于根據(jù)該生成的控制指令串控制光盤1 14上的信息的記錄/再現(xiàn)。
該執(zhí)行裝置120包括一RAM103,用于存儲一中間碼108;一ROM104,用于存儲該可解釋該中間碼108的解釋執(zhí)行程序106;和一CPU102,用于控制該解釋執(zhí)行程序106的執(zhí)行。該RAM103、ROM104和CPU102形成在一芯片上,起到一LSI的作用。而且,該執(zhí)行裝置120可包括一系統(tǒng)微型控制計算機105,用于控制整個光盤設(shè)備100。該LSI101可包括一通信部分110。在該情況下,通信部分110可建立與控制部分121、系統(tǒng)控制部分105、CPU102和RAM103的通信。該RAM103可包括除了中間碼108以外的,一指示該中間碼108的地址的指令指針109??商鎿Q地,設(shè)置在CPU102中的一寄存器或存儲器(未示出)可被用作為一指令指針。該ROM104可包括除了解釋執(zhí)行程序106以外的,被用于解密該中間碼108的密碼數(shù)據(jù)107。在此情況下,在ROM104的數(shù)據(jù)中,可被認為是基本上隨機的數(shù)據(jù)的一地址區(qū)域中的任何連續(xù)數(shù)據(jù)可被用作為密碼數(shù)據(jù)107。
該控制部分121包括一記錄/再現(xiàn)頭112,用于記錄/再現(xiàn)該光盤114上的信息;一電機113,用于驅(qū)動該光盤;和一光盤控制部分111,用于控制該記錄/再現(xiàn)頭112和該電機113。該光盤控制部分111被形成在該LSI中,即可與RAM103、ROM104和CPU102一起被形成在一芯片上。
接著,描述根據(jù)實施例1的光盤設(shè)備的操作。如上對于LSI的第一種、第二種和第三種的分類所述,待由該解釋執(zhí)行程序執(zhí)行的一中間碼可包括一未被加密的中間碼、一被加密的中間碼或兩者。這里,以下的描述是結(jié)合一被加密的中間碼作出的。在使用或部分使用一未被加密的中間碼的情況下,該光盤設(shè)備的操作中省除了用于編碼一被加密的中間碼的處理過程,但是其它過程基本上與使用一被加密的中間碼的一光盤設(shè)備的操作中執(zhí)行的處理過程相同。
首先,由一中間碼開發(fā)者(developer)生成的中間碼被預(yù)先加密以獲得一被加密的中間碼108。接著,通過使用系統(tǒng)控制微型計算機105,該中間碼108被存儲在該LSI中設(shè)置的RAM103中。當該系統(tǒng)控制微型計算機105發(fā)出一解釋執(zhí)行指令時,LSI101中的CPU102執(zhí)行ROM104中存儲的解釋執(zhí)行程序106。然后,CPU102解釋并執(zhí)行該中間碼108,同時通過使用ROM104中存儲的密碼數(shù)據(jù)107,解密RAM103中存儲的中間碼108。接著,CPU102使用通信部分110以在光盤控制部分111中設(shè)置的以寄存器中設(shè)定以命令參數(shù),并獲取該光盤控制部分111的狀態(tài),從而控制該光盤控制部分111。
接著,詳細描述由該解釋執(zhí)行程序執(zhí)行的一中間碼。
圖2示出了根據(jù)本發(fā)明的實施例1的一中間碼201的一數(shù)據(jù)結(jié)構(gòu)。
該中間碼201包括至少一指令202。在圖2所示的例子中,該中間碼201包括多條指令202。這些指令202被從中間碼201的頭部配置到尾部以形成一串指令,起到與該光盤設(shè)備的控制相關(guān)聯(lián)的一控制命令的作用。各指令202包括指示該指令的類型的一字節(jié)長度的一指令碼部分203,和一被用作為該指令的變元(argument)且具有0或更多字節(jié)長度的參數(shù)部分204。該參數(shù)部分204的長度在各指令中是不同的。該解釋執(zhí)行程序106解釋包括在該中間碼201中的至少一指令202,并執(zhí)行該被解釋的指令。
圖3示出了根據(jù)本發(fā)明的實施例1的用于加密一中間碼以生成一被加密的中間碼的處理過程。該加密過程在將一中間碼存儲在RAM103中之前被執(zhí)行??赏ㄟ^一程序在一個人計算機上執(zhí)行一中間碼的加密。
對一未被加密的中間碼執(zhí)行從步驟301到步驟307的處理以使被加密成一加密的中間碼108。在步驟301,一指針被設(shè)置在一中間碼的頭部。在步驟302,從該中間碼的指針位置獲取1字節(jié)數(shù)據(jù)。接著,在步驟303,從通過將該密碼數(shù)據(jù)107的第一地址與由該指針相對于該密碼數(shù)據(jù)的大小所指出的該中間碼的一位置之間的偏移的余項(remainder)加至該第一地址規(guī)定的一地址獲取1字節(jié)的密碼數(shù)據(jù)。然后,在步驟304,自所獲得的該中間碼的1字節(jié)部分和所獲得的該密碼數(shù)據(jù)的1字節(jié)部分的異或所得到的一結(jié)果被存儲在一存儲器中作為一被加密的數(shù)據(jù)。接著,在步驟305,確定一當前指針位置是否在該中間碼的尾部。如果該當前指針位置不在該中間碼的尾部,在步驟306,該指針被移至下一位置,且然后,重復(fù)從步驟302開始的該加密處理過程。如果該當前指針位置在該中間碼的尾部,該處理過程進至步驟307。在步驟307,在該被加密的中間碼串的頭部,起到指示該中間碼已被加密的一加密標志作用的1字節(jié)數(shù)據(jù)0×01、在ROM上的該密碼數(shù)據(jù)107的第一地址、和該密碼數(shù)據(jù)107的大小被附連。具有這樣附連的信息的被加密的中間碼被輸出給一文件,且然后,該加密處理過程結(jié)束。這里,“0×”是指該數(shù)據(jù)由一十六進制數(shù)表示。
接著,參照圖4和5具體描述用于加密一中間碼的程序。
圖4示出了根據(jù)本發(fā)明的實施例1的一中間碼的一具體結(jié)構(gòu)的例子。
圖4示出了一中間碼401、一指令402、一指令碼部分403、和一參數(shù)部分404。在圖4中,被給予存儲器的一中間寫指令(0×05)、被給予光盤控制部分的一光盤控制命令發(fā)行指令(0×10)、被給予光盤控制部分的一參數(shù)設(shè)置指令(0×12)、用于一光盤控制指令的一狀態(tài)獲取指令(0×20)和一結(jié)束指令(0×30)被示出為指令碼部分。各指令402的細節(jié)在以下被描述。
被給予存儲器的中間寫指令(0×05)是一在存儲器中寫2字節(jié)中間數(shù)據(jù)的指令。該中間碼401包括一在存儲器的地址0×1234中寫中間數(shù)據(jù)0×0400的指令,和一在存儲器的地址0×5678中寫中間數(shù)據(jù)0×03E8的指令。
被給予光盤控制部分的光盤控制命令發(fā)行指令(0×10)是一發(fā)出用于控制該光盤控制部分的命令的指令。根據(jù)該指令,對應(yīng)于該參數(shù)部分中的一命令碼的一光盤控制命令被發(fā)出,使用寫在該光盤控制部分的一參數(shù)寄存器中的地址0×A000中的一值作為一變元。該中間碼401包括一發(fā)出用于轉(zhuǎn)動一光盤的電機ON(通)命令(命令碼“0×04)的指令和一發(fā)出用于執(zhí)行記錄/再現(xiàn)一光盤上的信息的激光器ON命令(命令碼0×06)的指令。
被給予光盤控制部分的參數(shù)設(shè)置指令(0×12)是一將存儲器的值拷貝入該光盤控制部分的一寄存器內(nèi)的指令。該中間碼401包括一將該存儲器中地址0×1234的一值拷貝入該寄存器中的地址0×A000內(nèi)的指令,和一將該存儲器中的地址0×5678的一值拷貝入該寄存器中的地址0×A000內(nèi)的指令。
用于一光盤控制指令的狀態(tài)獲取指令(0×20)是一將指示該光盤控制指令結(jié)束后從該光盤控制部分返回的一指令的結(jié)束狀態(tài)的一狀態(tài)拷貝入該存儲器內(nèi)的指令。該中間碼401包括一將地址0×9876中的狀態(tài)拷貝入該存儲器內(nèi)的指令。
該結(jié)束指令是一結(jié)束該中間碼401的執(zhí)行的指令。
總括以上,當執(zhí)行圖4的中間碼401時,本發(fā)明的LSI執(zhí)行以下處理過程。首先,中間數(shù)據(jù)0×0400被寫在存儲器的地址0×1234中,且該寫在地址0×1234中的值被拷貝到光盤控制部分中的寄存器的地址0×A000。然后,通過將該光盤控制部分中的寄存器的地址0×A000中的該值作為一變元,轉(zhuǎn)動用于旋轉(zhuǎn)光盤的電機的一命令被發(fā)出給光盤控制部分。然后,中間數(shù)據(jù)0×03E8被寫在存儲器的地址0×5678中,且寫在地址0×5678中的該值被拷貝到光盤控制部分中的該寄存器的地址0×A000。然后,通過使用該光盤控制部分中的該寄存器的地址0×A000中的該值作為一變元,啟通用于記錄/再現(xiàn)光盤上的信息的一激光器的一命令被發(fā)出給該光盤控制部分。然后,上述命令的這些狀態(tài)被拷貝入該存儲器的地址0×9876中,且然后,該中間碼401的執(zhí)行被結(jié)束。
圖5示出了根據(jù)本發(fā)明的實施例1的一具體密碼數(shù)據(jù)的示例性結(jié)構(gòu)。
圖5示出了一具體的密碼數(shù)據(jù)501,該密碼數(shù)據(jù)501被記錄在從ROM104上的第一地址0×DEF0開始的連續(xù)地址區(qū)域中。
以下,作為一例子,結(jié)合圖3所示的加密該中間碼以生成一加密的中間碼的處理過程,描述使用圖5的密碼數(shù)據(jù)的圖4的加密中間碼401的一處理過程。
在圖3中的步驟301,一指針被設(shè)置在一地址,在該地址自該中間碼401的頭部的偏移為0×00。在步驟302,從中間碼401獲取在該指針位置的數(shù)據(jù)0×05。在步驟303,由于(0×DEF0)+(0×00)mod(0×09)=0×DEF0,獲取在該ROM上的地址0×DEF0處的密碼數(shù)據(jù)0×1C。然后,在步驟304,從中間碼401獲得的數(shù)據(jù)0×05和密碼數(shù)據(jù)0×1C的異或的結(jié)果,即結(jié)果0×19被存儲在該存儲器中作為加密數(shù)據(jù)。接著,在步驟305,確定當前指針位置是否在中間碼401的尾部。由于偏移0×00的地址不是在中間碼401的尾部,在步驟306,該指針被移至下一位置,且處理過程返回到步驟302。通過進一步執(zhí)行步驟302到步驟306的處理過程,實現(xiàn)中間碼401的加密。步驟302到步驟306的處理過程被重復(fù)直至檢測到中間碼401的尾部。該重復(fù)的處理過程與上述相同,且因此,省略對其的詳細描述。現(xiàn)在,在指針被移至中間碼401的尾部,即偏移0×1B后執(zhí)行的程序被描述。
在該指針已達到中間碼401的尾部后,在步驟302,從中間碼401的指針位置獲取數(shù)據(jù)0×30。在步驟303,由于(0×DEF0)+(0×1B)mod(0×09)=0×DEF0。獲取在該ROM上的地址0×DEF0處的密碼數(shù)據(jù)0×1C。然后,在步驟304,從中間碼401獲得的數(shù)據(jù)0×30和密碼數(shù)據(jù)0×1C的異或的結(jié)果,即結(jié)果0×2C被存儲在該存儲器中作為加密數(shù)據(jù)。接著,在步驟305,確定當前指針位置是否在中間碼401的尾部。由于地址偏移0×1B是在中間碼401的尾部,該處理過程進到步驟306。在步驟307,加密標志0×01、密碼數(shù)據(jù)501在ROM上的第一地址0×DEF0、和密碼數(shù)據(jù)501的大小0×0009被加至該被加密的中間數(shù)據(jù)的頭部。具有這樣信息的被加密的中間數(shù)據(jù)被輸出給一文件,且該處理過程結(jié)束。
接著,描述以上述說明的方式被加密的中間碼的結(jié)構(gòu)。
圖6示出了根據(jù)本發(fā)明的實施例1的一被加密的中間碼的結(jié)構(gòu)。
通過將加密信息加至一被加密的中間碼所獲得的被加密的中間碼數(shù)據(jù)601包括一具有1字節(jié)長度的加密標志602、具有2字節(jié)長度的在該ROM上的該密碼數(shù)據(jù)的第一地址603、一密碼數(shù)據(jù)大小604、和一被加密的中間碼605。如果該中間碼被加密,數(shù)據(jù)0×01被記錄作為加密標志602,而如果該中間碼未被加密,數(shù)據(jù)0×00被記錄作為該加密標志602。通過解密該被加密的中間碼605,可獲得一初始的中間碼。
圖7示出了根據(jù)本發(fā)明的實施例1的被加密的中間碼數(shù)據(jù)的一具體例子。圖7的該被加密的中間碼數(shù)據(jù)可通過使用圖5的密碼數(shù)據(jù)加密圖4的中間碼401而獲得。該被加密的中間碼數(shù)據(jù)701包括一加密標志702、被用于加密該中間碼701的在該ROM上的密碼數(shù)據(jù)的第一地址703、一密碼數(shù)據(jù)大小704、和被加密的中間碼705。該被加密的中間碼701通過系統(tǒng)控制微型計算機被下載到該RAM103以被執(zhí)行。
圖8說明了根據(jù)本發(fā)明的實施例1的解密一被加密的中間碼的處理過程。
被加密的中間碼的解密是通過執(zhí)行步驟801至804的處理過程而被實現(xiàn)的。在步驟801,從該中間碼的一指令指針的位置獲取1字節(jié)的數(shù)據(jù)。在步驟802,通過參考該加密標志(例如圖6中所示的加密標志)的值確定該中間碼是否已被加密。具體地,如果在步驟802,該加密標志為0×01,該過程進至步驟803。在步驟803,從通過將由來自該中間碼的第一地址的指針指向的相對于該密碼數(shù)據(jù)大小的偏移的余項加至該密碼數(shù)據(jù)的第一地址所規(guī)定的一地址獲取1字節(jié)的密碼數(shù)據(jù)。在步驟804,通過使用獲得的1字節(jié)的中間碼和1字節(jié)的密碼數(shù)據(jù)的異或來執(zhí)行解密,且解密的結(jié)果被獲取以結(jié)束該處理過程。
現(xiàn)在,為了更加詳細地描述圖8的解密被加密的中間碼的處理過程,將對使用圖5的密碼數(shù)據(jù)501的圖7的解密被加密的中間碼數(shù)據(jù)701的解密處理過程進行描述。解密圖7的被加密的中間碼數(shù)據(jù)701中的偏移0×08的一地址中的數(shù)據(jù)的處理過程被描述為一例子。
在圖8的步驟801,從中間碼的指針位置0×08獲取數(shù)據(jù)0×D8。在步驟802,確定該加密標志是否指示該中間碼已被加密。在被加密的中間碼數(shù)據(jù)701中,確定它已被加密,因為該加密標志702的值為0×01,且該過程進到步驟803。在步驟803,由于(0×DEF0)+(0×08)mod(0×09)=0×DEF8。從在ROM上的地址0×DEF8獲取密碼數(shù)據(jù)CA。然后,在步驟804,從來自中間碼的數(shù)據(jù)0×D8和密碼數(shù)據(jù)0×CA的異或獲得解密數(shù)據(jù)0×12。該解密數(shù)據(jù)0×12的值等于圖4的中間碼401中的一地址的偏移0×08的值。
圖9說明了通過根據(jù)本發(fā)明的實施例1的LSI執(zhí)行一中間碼的處理過程。
使用系統(tǒng)微型計算機105,本發(fā)明的LSI將通過圖3的處理過程獲得的加密的中間碼數(shù)據(jù)下載到RAM103。然后,該LSI通過圖8的解密過程,順序地對用于各指令的在RAM103中存儲的加密的中間碼數(shù)據(jù)進行解密,并執(zhí)行該解密的中間碼。該中間碼的執(zhí)行是通過步驟901至步驟906的處理過程而實現(xiàn)的。在步驟901,該指令指針被設(shè)置在該中間碼的頭部。接著,在步驟902,通過圖8的程序解密一密碼以獲取該中間碼的一指令碼部分。在步驟903,確定在步驟902獲得的該中間碼的指令碼部分是否是一結(jié)束指令。如果它不是該中間碼的指令碼部分,在步驟904執(zhí)行該指令。然后,在步驟905,該指令指針被移至下一位置,且該過程再返回到步驟902。在步驟903,確定該中間碼的指令碼部分是一結(jié)束指令。該過程進到步驟906。在步驟906,該結(jié)束指令被執(zhí)行,且該解釋的執(zhí)行被結(jié)束。
在步驟904的一指令的執(zhí)行是通過圖10的處理過程解密一密碼以獲得該中間碼的一參數(shù)部分而實現(xiàn)的。
圖10說明了根據(jù)本發(fā)明的實施例1的一中間碼的一指令的執(zhí)行。
在步驟904的一指令的執(zhí)行是通過執(zhí)行圖10的步驟1001至步驟1005的操作而實現(xiàn)的。在步驟1001,一指針被設(shè)置在一中間碼指令的一參數(shù)部分的頭部。在步驟1002,在該指針位置的一參數(shù)的一密碼被解密以使獲得具有1字節(jié)長度的參數(shù)。該密碼的解密是通過圖8的解密一加密的中間碼的過程而實現(xiàn)的。接著,在步驟1003,確定在該指針位置的參數(shù)是否是最后的參數(shù)。如果該在指針位置的參數(shù)不是最后的參數(shù),在步驟1004,該指針被移下一位置,且該再過程返回到步驟1002。如果該在指針位置的參數(shù)是最后的參數(shù),該過程進到步驟1005,且使用在步驟1002獲得的參數(shù)作為一變元來執(zhí)行一指令。然后,該解密過程結(jié)束。
以下,具體描述在圖9和10的過程中被執(zhí)行的根據(jù)一解釋執(zhí)行程序的一指令的執(zhí)行。在這里描述的示例性過程中,使用圖5的密碼數(shù)據(jù)解密圖7的加密的中間碼數(shù)據(jù)701,且該解密的中間碼被實際地執(zhí)行。在該例中,通過系統(tǒng)微型計算機105,該中間碼數(shù)據(jù)701已被預(yù)先下載到RAM103。
在圖9的步驟901,該指令指針被設(shè)置在該加密的中間碼705的第一地址的偏移0×00的一位置。接著,在步驟902,根據(jù)圖8的過程解密在該加密的中間碼705中的該指令指針的該位置的數(shù)據(jù)0×19,以使獲得該指令碼部分的數(shù)據(jù),即數(shù)據(jù)0×05。在步驟903,確定在步驟902獲得的該中間碼的指令碼部分是否是一結(jié)束指令。該指令碼部分的值為0×05,即它不是結(jié)束指令,且因此,該過程進到步驟904。在步驟904的用于執(zhí)行一指令的過程的細節(jié)在后進行描述。接著,在步驟905,該指令指針被移至下一偏移0×04,該過程返回到步驟902。由于該參數(shù)的大小是被確定用于各指令的,即使該中間碼被加密,也可獲得下一指令的一偏移。以與上述相同的方式對各指令重復(fù)步驟902至905的操作,從而進行該中間碼的執(zhí)行。步驟902至步驟905的操作被重復(fù)直至在步驟903檢測到結(jié)束指令,且因此,在此省略這些重復(fù)的操作的細節(jié)。如果由該指令指針指出的一地址的偏移是0×1B,通過在步驟902解密一密碼所獲得的一指令碼部分是0×30。在此情況下,在步驟903,確定該中間碼的指令碼部分是該結(jié)束指令。這樣,該過程進到步驟906。在步驟906執(zhí)行該結(jié)束指令后,結(jié)束該中間碼的執(zhí)行。
根據(jù)圖10說明的用于執(zhí)行該中間碼的一指令的處理過程,描述在步驟904的該中間碼的一指令的執(zhí)行。在此說明的例子中,一指令指針被設(shè)置在一地址的偏移0×00。
在圖10的步驟1001,一指針被設(shè)置在由該指令指針指出的一指令的一參數(shù)部分的第一地址的偏移0×01。在步驟1002,由該指針指出的該地址的偏移0×01的數(shù)據(jù)0×BF被解密以使獲得該參數(shù)部分的數(shù)據(jù)0×12。然后,在步驟1003,確定在步驟1002獲取的數(shù)據(jù)是否是該參數(shù)的最后數(shù)據(jù)。由于數(shù)據(jù)0×12不是最后數(shù)據(jù),該過程進到步驟1004。在步驟1004,該指針被設(shè)置在下一參數(shù)部分的數(shù)據(jù)的一地址的偏移0×02,且該過程進到步驟1002。然后,以與上述相同的方式重復(fù)步驟1002至步驟1004的操作,以使獲得參數(shù)部分的數(shù)據(jù),0×34、0×04和0×00。當該指針指在一地址的偏移0×04時,在步驟1003確定該偏移0×04是最后的數(shù)據(jù),且然后,該過程進到步驟1005。在步驟1005,在上述過程中獲得的值0×12、0×34、0×04和0×00被用作為參數(shù)部分以執(zhí)行指令碼部分的一指令0×05,且然后,該過程結(jié)束。具體地,由于該指令碼部分的指令0×05是一將具有2字節(jié)大小的中間數(shù)據(jù)寫入存儲器中的指令,中間值0×0400被寫在該存儲器的地址0×1234中,且該過程被結(jié)束。
具有以上結(jié)構(gòu)和配置,根據(jù)本發(fā)明的一LSI,用于存儲一中間碼的RAM一、用于存儲可解釋該中間碼的一解釋執(zhí)行程序的一ROM和用于控制該解釋執(zhí)行程序的執(zhí)行的一CPU被形成在一芯片上。因此,不涉及該ROM中存儲的解釋執(zhí)行程序的內(nèi)容在CPU的工作期間泄漏到外部。而且,在CPU和該RAM及ROM之間的信號的傳送不可能被第三方觀察到。
而且,本發(fā)明的一光盤設(shè)備具有用于執(zhí)行一可解釋一中間碼以使生成一控制命令串的解釋執(zhí)行程序的一執(zhí)行部分。這樣,本發(fā)明的光盤設(shè)備可僅通過重寫一中間碼部分而不用另一LSI來替換該LSI來修改本發(fā)明的光盤設(shè)備,以使與根據(jù)不同標準或規(guī)格設(shè)計的多個制造商生產(chǎn)的各種光盤設(shè)備相兼容。而且,即使在一光盤設(shè)備的開發(fā)過程中產(chǎn)生修改規(guī)格或增加功能的需要,這樣的需要可僅通過重寫一中間碼而不增加附加電路或替換LSI來容易地滿足。而且,即使本發(fā)明的LSI被提供給除了開發(fā)者以外的第三方用戶,通過加密一中間碼,即使該中間碼的其它部分,即該中間碼的未被加密的部分可通過第三方用戶被自由地用戶化,一光盤設(shè)備的控制的技術(shù)秘密可對第三方用戶保密。這樣,實現(xiàn)來用戶使用方便,制造商的利益也得到保護。(實施例2)接著,描述根據(jù)本發(fā)明的實施例2的一LSI和使用該LSI的一光盤設(shè)備。
圖11示出了根據(jù)本發(fā)明的實施例2的一LSI1101。根據(jù)實施例2的LSI1101的結(jié)構(gòu)基本上與根據(jù)實施例1的光盤設(shè)備100中使用的LSI101的結(jié)構(gòu)相同。相同的參考數(shù)字指示相同的元件,且省略對它們的描述。
在實施例2的LSI1101中,一RAM103具有一可訪問的RAM區(qū)1104,其可由一系統(tǒng)控制微型計算機訪問;和一不可訪問的RAM區(qū)1105,其不可由該系統(tǒng)控制微型計算機訪問。在實施例2中,一先前加密的中間碼1102被存儲在該可訪問的RAM區(qū)1104中,且該加密的中間碼1102在第一步驟中被解密。該解密的中間碼被存儲在該不可訪問的RAM區(qū)1105中作為一解密的中間碼1103,且該解密的中間碼1103使用一解釋執(zhí)行程序被執(zhí)行。在實施例2中,該可訪問的RAM區(qū)1104和該不可訪問的RAM區(qū)1105被形成在同一存儲器上,但它們可以形成在不同的存儲器上。
分別根據(jù)圖3和8所示的實施例1的處理過程執(zhí)行一中間碼的加密和解密。可替換地,可使用一已知的加密算法,例如RSA算法、DES算法等實現(xiàn)一中間碼的加密和解密。在圖12的流程圖中說明了根據(jù)實施例2的使用一解釋執(zhí)行程序執(zhí)行一中間碼的程序。
圖12說明了根據(jù)本發(fā)明的實施例2的用于執(zhí)行一中間碼的處理過程。圖12中所說明的過程與圖9中所示的基本相同,除了圖12的步驟1201與圖9的步驟902略有不同以外。在圖12的步驟1201執(zhí)行的操作與在圖9的步驟902執(zhí)行的操作是相同的,除了未執(zhí)行一密碼的解密,即當該加密標志指示該中間碼未被加密時,圖8的步驟802執(zhí)行的一操作外。圖12中的其它步驟的操作與圖9中所示的相同。這樣,相同的參考數(shù)字表示與圖9中相同的部分,且省略對它們的詳細描述。
本發(fā)明的一LSI可被用于構(gòu)成一信息記錄設(shè)備、一信息再現(xiàn)設(shè)備和一信息記錄/再現(xiàn)設(shè)備。在這些設(shè)備中,其內(nèi)結(jié)合有該LSI的操作可通過根據(jù)該設(shè)備的目的修改一中間碼而被改。這樣,這些設(shè)備的標準和規(guī)格可被容易地用戶化。
而且,由于以上RAM包括一外部可訪問的RAM區(qū)和一外部不可訪問的RAM區(qū),對于一加密的中間碼的計算量不會影響到該中間碼的執(zhí)行時間。因此,一復(fù)合算法可被用于該中間碼的加密/解密。
在根據(jù)本發(fā)明的一LSI中,用于存儲一中間碼的RAM、用于存儲可解釋該中間碼的一解釋執(zhí)行程序的一ROM和用于控制該解釋執(zhí)行程序的執(zhí)行的一CPU被形成在一芯片上。具有這樣的結(jié)構(gòu),不涉及該ROM中存儲的解釋執(zhí)行程序的內(nèi)容在CPU的工作期間泄漏到外部。而且,在CPU和該RAM及ROM之間的信號的傳送不可能被第三方觀察到。
而且,本發(fā)明的一光盤設(shè)備具有用于執(zhí)行一可解釋一中間碼以使生成一控制命令串的解釋執(zhí)行程序的一執(zhí)行部分。這樣,本發(fā)明的光盤設(shè)備可僅通過重寫一中間碼部分而不用另一LSI來替換該LSI來修改本發(fā)明的光盤設(shè)備,以使與根據(jù)不同標準或規(guī)格設(shè)計的多個制造商生產(chǎn)的各種光盤設(shè)備相兼容。而且,即使在一光盤設(shè)備的開發(fā)過程中產(chǎn)生修改規(guī)格或增加功能的需要,這樣的需要可僅通過重寫一中間碼而不增加附加電路或替換LSI來容易地滿足。
不脫離本發(fā)明的精神和范圍,現(xiàn)有技術(shù)領(lǐng)域的熟練結(jié)束人員可容易地作出各種其它的改型。因此,本發(fā)明的范圍并不限于在此所作的描述,而應(yīng)由權(quán)利要求作出廣義上的解釋。
權(quán)利要求
1.一種LSI,包括一RAM,用于存儲一中間碼;一ROM,用于存儲一可解釋該中間碼的一解釋執(zhí)行程序;和一CPU,用于控制該解釋執(zhí)行程序的執(zhí)行,其中該RAM、ROM和CPU形成在一芯片上。
2.根據(jù)權(quán)利要求1的LSI,其中該中間碼被加密。
3.根據(jù)權(quán)利要求1的LSI,其中該RAM可存儲一被加密的中間碼和一未被加密的中間碼;且該解釋執(zhí)行程序可解釋該被加密的中間碼和該未被加密的中間碼兩者。
4.根據(jù)權(quán)利要求1的LSI,還包括一記錄/再現(xiàn)頭,用于記錄/再現(xiàn)一光盤上的信息;和一光盤控制部分,用于控制驅(qū)動該光盤的一電機,其中該光盤控制部分被形成在該一芯片上。
5.一種光盤設(shè)備,包括一執(zhí)行部分,用于執(zhí)行可解釋一中間碼的一解釋執(zhí)行程序,以使生成一控制指令串;和一控制部分,用于根據(jù)該控制指令串控制一光盤上的信息的記錄/再現(xiàn)。
6.根據(jù)權(quán)利要求5的光盤設(shè)備,其中該執(zhí)行部分包括一RAM,用于存儲一中間碼;一ROM,用于存儲該解釋執(zhí)行程序;和一CPU,用于控制該解釋執(zhí)行程序的執(zhí)行。
7.根據(jù)權(quán)利要求6的光盤設(shè)備,其中該RAM、ROM和CPU形成在一芯片上。
8.根據(jù)權(quán)利要求7的光盤設(shè)備,其中該控制部分包括一記錄/再現(xiàn)頭,用于記錄/再現(xiàn)該光盤上的信息;一電機,用于驅(qū)動該光盤;和一光盤控制部分,用于控制該記錄/再現(xiàn)頭和該電機。
9.根據(jù)權(quán)利要求8的光盤設(shè)備,其中該光盤控制部分被形成在該一芯片上。
10.根據(jù)權(quán)利要求5的光盤設(shè)備,其中該中間碼被加密。
11.根據(jù)權(quán)利要求6的光盤設(shè)備,其中該RAM可存儲一被加密的中間碼和一未被加密的中間碼;及該解釋執(zhí)行程序可解釋該被加密的中間碼和該未被加密的中間碼兩者。
全文摘要
一種LSI,包括一RAM,用于存儲一中間碼;一ROM,用于存儲一可解釋該中間碼的一解釋執(zhí)行程序;和一CPU,用于控制該解釋執(zhí)行程序的執(zhí)行,其中該RAM、ROM和CPU形成在一芯片上。
文檔編號G11B20/10GK1396529SQ0210258
公開日2003年2月12日 申請日期2002年1月25日 優(yōu)先權(quán)日2001年1月26日
發(fā)明者佐藤孝広, 藪野寛之, 臼井誠, 伊藤基志 申請人:松下電器產(chǎn)業(yè)株式會社