新四季網

半導體存儲器和程序判別系統的製作方法

2023-04-23 03:32:21 2

專利名稱:半導體存儲器和程序判別系統的製作方法
技術領域:
本發明涉及半導體存儲器和使用它的程序判別系統,特別涉及例如遊戲機用的盒式碟片(cartridge)那樣的存儲程序的ROM等的半導體存儲器和程序判別系統。
例如,在將遊戲機程序寫入到ROM那樣的半導體存儲器中使用時,將遊戲機用的盒式碟片安裝在遊戲機主體中。特別,對於這種遊戲機用的盒式碟片,到處可見非法複製其存儲內容的程序的盜版碟片。
因此,本申請人如在先的日本特開平2-31256號公報[G06F 12/14]所公開的那樣,建議了一種能判別真假的系統,這種系統在不是正版的盒式碟片的場合,能藉助於禁止訪問程序存儲區域,防止遊戲程序和其它程序的非法複製以及數據改變。
在這種以往的技術中,因用「地址解碼方式」,並用從程序存儲器實際讀出的數據判別真假,所以有相當高的可靠性,能排除盜版磁碟。
但是,在前述以往的技術中,因必須對多個地址進行解碼,所以不僅門電路個數增加、晶片尺寸增大,而且如分析解碼所有地址,則有進一步要解決失去非法利用的防護效果的問題。
因此,本發明的主要目的是提供新穎的半導體存儲器和使用它的程序判別系統。
本發明的另一個目的是提供難於剖析並具有長期保護效果的半導體存儲器和使用它的程序判別系統。
本發明的半導體存儲器,固定地存儲由中央處理器執行的程序數據,並輸出按照指定的地址數據的地址的程序數據,包括固定地存儲程序數據的程序數據存儲器,發生地址運算碼的碼發生裝置,和接受由中央處理器輸出的第1地址數據的地址處理裝置,地址處理裝置在有控制信號時,根據地址運算碼,輸出對至少第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給程序數據存儲器,在沒有控制信號時,將第1地址數據提供給程序數據存儲器。
具體地說,地址處理裝置包括用於對第1地址數據的至少一部分與地址運算碼進行運算,並輸出第2地址數據的運算裝置,和在提供控制信號時輸出第2地址數據,並在不提供控制信號時輸出第1地址數據的選擇器。
這種場合,運算裝置包括能分別執行不同種類的運算,並且各自接受第1地址數據以及地址運算碼,分別輸出不同的第2地址數據用的多個運算器,碼發生裝置還發生選擇多個運算器中的任意一個的運算器選擇碼,選擇器也可以選擇與根據運算器選擇碼選擇的運算器相關的第2地址數據或者第1地址數據。
本發明另一個方面的半導體存儲器包括固定地存儲程序數據的程序數據存儲器,發生地址運算碼的碼發生裝置,和接受由中央處理器輸出的第1地址數據的地址處理裝置,地址處理裝置在有控制信號時,根據地址運算碼,輸出對至少第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給程序數據存儲器,在沒有控制信號時,根據地址運算碼,輸出對至少第1地址數據的一部分進行與第1運算不同的第2運算後的新的第3地址數據,並將這種第3地址數據提供給程序數據存儲器。
這時,地址處理裝置的第1和第2運算的任何一方,將第1地址數據變換成用於輸出應該在中央處理器中正規執行的程序數據的地址數據。
本發明的程序判別系統,包括固定存儲程序數據的讀出專用的程序存儲器,和從程序存儲器讀出程序數據並執行程序、同時判別程序是否正規的中央處理器,程序存儲器包括固定地存儲程序數據的程序數據存儲器,發生地址運算碼的碼發生裝置,和接受由中央處理器輸出的第1地址數據的地址處理裝置,地址處理裝置在由中央處理器提供控制信號時,根據地址運算碼,輸出對至少第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給程序數據存儲器,在沒有提供控制信號時,將第1地址數據提供給程序數據存儲器,中央處理器包括將控制信號提供給程序存儲器的地址處理裝置的控制信號提供裝置,緊接著提供控制信號,輸出第1地址數據並提供給地址處理器裝置的地址輸出裝置,和判斷按照第2地址數據從程序數據存儲器讀出的程序數據與預先設定的檢查數據是否為規定的關係,並判斷程序存儲器的真假的判斷裝置。
中央處理器還包括在判斷裝置的判斷結果為假的程序存儲器時,強制地結束程序的程序強制結束裝置。
在半導體存儲器中,在應答於從程序數據存儲器讀出的特別程序數據、將從中央處理器輸出的控制信號提供給地址處理裝置時,地址處理裝置根據來自碼發生裝置的地址運算碼,輸出對第1地址數據的全部位或者一部分位進行運算的第2地址數據,並將這種第2地址數據提供給程序數據存儲器。具體地說,地址處理裝置的運算裝置對第1地址數據和地址運算碼進行運算,並輸出第2地址數據,選擇器應答於控制信號輸出第2地址數據。因此,從程序數據存儲器應答於控制信號,不是根據從中央處理器輸出的第1地址數據,而是由根據從地址處理裝置輸出的第2地址數據指定的地址,讀出程序數據。
在中央處理器中,用判斷裝置判斷按照第2地址數據讀出的程序數據是否與預先設定的檢查數據一致。如果兩個數據一致,則判斷裝置判斷這時的半導體存儲器(程序ROM)是真的,如果兩個數據不一致,則判斷裝置判斷這時的半導體存儲器是假的,並強制地結束程序。
因此,即使複製存儲在程序數據存儲器中的全部程序數據,在沒有本發明的地址處理裝置的場合,也因為判斷程序檢查的結果為假,所以不可能執行程序。
此外,在地址處理裝置中分別設置能執行不同種類運算的多個運算器的場合,選擇器選擇第2地址數據,這種第2地址數據來自基於由碼發生裝置輸出的運算器選擇碼選擇的運算器。
此外也可以,當有控制信號時,輸出用第1運算處理第1地址數據後的第2地址數據,當沒有控制信號時,輸出用第2運算處理第1地址數據後的結果的第3地址數據。這種場合,地址處理裝置的第1和第2運算的任何一方,將第1地址變換成應該用中央處理器執行的用於輸出程序數據的正規的地址數據。
採用本發明,則如果僅複製程序數據存儲器的全部的程序數據,不能分析地址處理裝置中的運算裝置和運算碼等的全部的要素,則因不能與真品相同地執行這種程序數據,所以能有效地防止程序的非法使用。
此外,如果對於每個不同的機種或者版本變更指定運算裝置中的運算的種類和地址運算碼或者運算器的運算選擇碼等的要素,則即使能分析某1個程序存儲器的全部要素,也因不能使這種分析結果原樣地適用於其它的程序存儲器,所以非法利用者有必要對每次變更重新分析,如果考慮到分析需要很多的時間和設備,則採用本發明能做到實質上不能進行程序的非法使用。
下面,參照附圖對本發明的實施例詳細地進行說明,以便進一步明確本發明的前述目的、特徵和優點。


圖1表示本發明一實施例的方框圖。
圖2表示圖1實施例的地址處理單元一例的方框圖。
圖3表示圖1中的CPU的存儲器映射的圖解圖。
圖4是表示圖1實施例的動作的流程圖。
圖5是表示圖4流程圖中檢查用程序的流程圖。
圖6表示地址處理單元的變形例的方框圖。
圖7表示地址處理單元的另一變形例的方框圖。
圖8表示本發明的另一實施例的方框圖。
實施例,圖1所示的本發明一實施例的信息處理裝置10包含作為中央處理器的CPU12,並將作為輸出裝置的顯示器14和作為輸入裝置的操作輸入裝置16連接到這種CPU12中。信息處理裝置10構成程序判別系統,在這種信息處理裝置為遊戲處理器的場合,操作輸入裝置16是遊戲控制器,並包括操縱杆和十字鍵或者各種操作按鈕,遊戲處理器即CPU12應答於這種操作輸入裝置16藉助於處理存儲在程序ROM18中的遊戲程序,將遊戲圖像顯示在例如電視監視器和液晶顯示器的顯示器14上。此外,用例如RAM等構成與CPU12連接的工作存儲器20,在前述的程序處理過程中,根據需要被使用,同時為了暫時地存儲用於判別後述程序的真假的檢查用程序和檢查數據而被使用。
用作為半導體存儲器或者程序存儲器程序ROM18是預先固定地存儲例如PROM、快速ROM、EPROM、EEPROM等的程序數據的讀出專用半導體存儲器。這種程序ROM18,在相當於以往稱為程序ROM的存儲器核心部分的程序數據存儲器之外,還包括地址處理單元24和碼存儲器26。此外,在本實施例中,將程序數據存儲器22、地址處理單元24和碼存儲器26設置在同一的半導體晶片上。此外,利用地址處理單元24處理通過地址總線從CPU12輸出的地址數據,並將這種被處理後的地址提供給程序數據存儲器22。程序數據存儲器22按照利用地址處理單元24處理後的地址,讀出程序數據,並通過數據總線將其輸出到CPU12中。
此外,如後所述,地址處理單元24根據通過控制總線由CPU12供給的控制信號和由碼存儲器26供給的碼(數據),對地址進行處理。
圖2示出了地址處理單元24的具體的一例。如圖2所示,地址處理單元24包括作為運算裝置的運算器28和選擇器30。運算器28形成於程序ROM18的晶片內,是例如乘法器、除法器、減法器、加法器、移位寄存器或者其它簡單的邏輯運算器(例如AND、NAND、OR、NOR、EXOR等)。
從CPU12輸出的例如16位的第1地址數據A0-A15的上8位A8-A15與原樣的選擇器30的輸出數據A0』-A7』合成,下8位A0-A7用作為運算器28的一方輸入和選擇器30的一方輸入(X)。將設定在用作為碼發生裝置的碼存儲器26的8位地址運算碼a0-a7提供給運算器28的另一方的輸入。運算器28對2個輸入執行前述種類的任何一種運算,並將其輸出供給為選擇器30的另一方輸入(Y)。例如在運算器28為AND的場合,運算器28輸出地址運算碼a0-a7與下8位A0-A7的邏輯積的結果A0』-A7』,並提供給選擇器30的前述的一方輸入。
將前述的控制信號、例如寫入信號從CPU12提供給選擇器30。因此,選擇器30應答於這種控制信號、即寫入信號,將地址數據的下8位A0-A7置換成運算結果A0』-A7』並輸出。另一方面,如前所述因原樣地將地址數據A0-A15的上8位A8-A15結合在選擇器30的輸出上,所以其結果從選擇器30、即地址處理單元24輸出A0』-A7』+A8-A15的共計16位的第2地址數據。
這樣,因為將由地址處理單元24修飾處理的第2地址數據輸入到程序數據存儲器22(參照圖1)中,所以在後述的圖5的步驟S12中,從程序數據存儲器22讀出不是第1地址數據A0-A15,而是從第2地址數據A0』-A7』+A8-A15所示的地址讀出程序數據。在沒有假程序ROM的場合,地址處理單元24從第1地址數據A0-A15所示的地址讀出程序數據。因此,因為從程序數據存儲器22讀出的程序數據不同,所以前者場合讀出的程序數據雖然與預先設定的檢查數據一致,但是後者場合的程序數據與檢查數據不一致。
此外,在圖2所實施例中,僅在運算器28中將地址數據的下8位與運算碼進行運算,上8位原樣地輸出。因此,也可以用運算器28對第1地址數據的全部16位進行運算。這種場合,如圖2中括號所示的的那樣,將地址數據A0-A15的全部16位原樣地提供給運算器28的一方輸入,將來自碼存儲器26的16位的地址運算碼a0-a15提供給另一方的輸入。因此,從運算器28輸出修飾處理全部位後的第2地址數據A0』-A15』,將這種第2地址數據A0』-A15』供給為選擇器30的一方輸入(X),將由CPU12輸出的第1地址數據A0-A15供給為選擇器30的另一方輸入(Y)。因此,在有控制信號時,從選擇器30輸出第1地址數據A0』-A15』,在沒有控制信號時,輸出第2地址數據A0-A15。因此,在圖5的步驟S13中,判斷是否適合從用地址數據A0』-A15』指定的地址讀出的程序數據。
圖1的CPU12具有圖3所示的存儲器映射,例如「0000h~DFFFh」的存儲器空間是分配給程序ROM18的程序區域,「E000h~FFFFh」是分配給工作存儲器20的工作區域。
程序ROM18的程序數據存儲器22是前述程序區域的一部分,在程序區域中還進一步設定程序常駐區域、檢查用程序區域和檢查開始命令區域。用後述的圖4和圖5的流程圖能實現存儲在檢查用程序區域中的檢查用程序。
此外,在檢查用程序中設定1個或者多個檢查數據。這種檢查數據是與執行檢查用程序時的結果所示的數據進行比較,用於判別程序的真假的數據。例如,在本實施例中,因為僅對1次檢查程序的真假的場合進行說明,所以如圖3所示,雖然在檢查用程序內設定1個檢查數據,但藉助於將使利用單一的檢查數據的檢查用程序起動的檢查開始命令設定在主體程序(例如遊戲程序)內的多個地方,並在多個地方設定分別使利用多個檢查數據的多個檢查用程序起動的檢查開始命令,能多次檢查程序的真假,並能增加程序分析的困難性。
此外,在檢查用程序比較小(例如幾到幾十字節)的場合,在主體程序內的多個地方設定檢查用程序來代替檢查開始命令,也能進一步增加檢查用程序分析的困難性。
參照圖4,一接通信息處理裝置10(圖1)的電源(未圖示),則CPU12首先執行步驟S1。在這種步驟S1中,CPU12讀入存儲在程序ROM18(圖1)的程序數據存儲器22中的程序數據。在步驟S2,判斷讀入的程序數據是否為指示程序的真假檢查執行的特別程序數據。
如果在步驟S2中為「否」,即這時的程序數據並不是命令真假檢查的數據時,在步驟S3按照這時的程序數據進行處理。在步驟S3的後面步驟S4中,CPU12判斷程序是否結束,如果是「是」,則原樣地結束,如果是「否」,則返回到前面的步驟S1。這樣,藉助於重複步驟S1-S4,依次地執行存儲在程序數據存儲器22中的程序。在這種狀態中,因為在地址處理單元22的選擇器30中沒有賦予控制信號(例如寫入信號),所以在選擇器30中用選擇的狀態保持輸入X,因此,將由CPU12輸出的第1地址數據原樣地提供給程序存儲器22。
藉助於重複步驟S1-S4,在依次地執行包含在程序中的各個命令中,將用於執行檢查用程序的命令一輸入到CPU12,就在步驟S2對其進行判斷,並進入到步驟S5。如圖3所示,將這種命令、即特別程序數據設定為例如地址「030Eh」的場合,CPU12在地址到達「030Eh」時,進入到步驟S5。在步驟S5,CPU12讀入設定在圖2所示的程序區域中的檢查用程序和檢查數據,並寫入到工作存儲器20中(進行複製)。因此,按照複製在工作存儲器20中的檢查用程序和檢查數據,執行步驟S6。但是,複製在這種工作存儲器20中的檢查用程序在檢查結束後從工作存儲器中消失。
圖5示出了步驟S6的子程序的細節。在圖5的步驟S11中,CPU12首先通過控制總線發生控制信號,使包含在圖1所示的程序ROM18中的地址處理單元24能動。具體地說,CPU12通過控制總線將寫入的信號(控制信號)提供給程序ROM18的選擇器30。因為通常在執行ROM內的程序時,不將寫入的信號提供給ROM(讀出專用存儲器),所以藉助於將這種信號輸出到程序ROM18中,選擇地址處理單元24的選擇器30中的輸入Y。這種步驟S11構成控制信號提供裝置。
但是,在不僅將前述的寫入信號作為控制信號,而且在CPU12執行程序ROM18的程序數據存儲器22的特定地址時,也可以將控制信號提供給選擇30。這種場合雖然未圖示,但也可以採用下述的結構,即在設置逐次比較從CPU12通過地址總線輸出的地址數據與這種特定地址的比較器,並且用這種地址比較器檢測出2個地址一致時,將控制信號提供給選擇器30。
接著,在步驟S12中,CPU12輸出用於讀出程序ROM18的程序數據存儲器22的地址數據(第1地址數據)。也就是說,在步驟S11緊接著輸出控制信號後,在用作地址輸入裝置的步驟S12中,雖然從CPU12通過地址總線將ROM地址輸入到地址處理單元24中,但是在地址處理單元24中,如前述圖2的實施例所述進行處理這種第1地址,將這種處理結果地址(第2地址數據)提供給程序ROM18。
接著,在步驟S13中,按照在地址處理單元24處理後的第2地址數據,判斷從程序數據存儲器22讀出的程序數據是否為正確的值。也就是說,步驟S13構成判斷裝置,比較工作存儲器20中讀出的檢查數據與這時的程序數據,並判斷兩者是否一致。從按照地址處理單元24規定的法則處理的地址讀出的程序數據,應該與預先設定的檢查數據一致。因此,這種場合,為「是」。但是,在沒有設置地址處理單元24的假的程序ROM的場合,或者即使存在與地址處理單元24相當東西,但是不按照地址處理規定的法則的假的程序ROM的場合,在這種步驟S13判斷為「否」。
接著,在步驟S13判斷為「是」的真的程序ROM的場合,返回到通常的程序處理。另一方面,在判斷為「否」的假的程序ROM的場合,在接著的步驟S14中,CPU12在顯示器14上顯示例如「該程序ROM(碟片cartridge)是盜版的,不能在本機上使用」那樣的警告消息,同時在步驟S15強制地結束程序。因此,在假的場合,不能進行其後的程序的繼續處理。也就是說,步驟S14和S15相當於程序強制結束裝置。
此外,如前所述,在作為判斷裝置的步驟S13中,雖然比較按照第2地址數據讀出的程序數據與預先設定的檢查數據是否一致,但是兩者不必要一定一致,也可以是兩者預先設定的規定的關係。例如,一方比另一方僅大一定的數或者小一定的數的關係,或者對一方(和/或者另一方)進行一定的運算時兩者一致的關係,或者兩者的絕對值相等的關係等,能設定成任意規定的關係。
在圖2的實施例中,程序數據如果用合適的設備,那麼也能用完整的形式從程序數據存儲器22讀出程序數據,並能對其進行複製。但是,在圖2的實施例中,從程序數據存儲器22僅能提取程序數據並對程序數據進行復原,而不能與真的相同地執行這種程序數據。
也就是說,即使僅復原程序數據,但在非法利用這種程序ROM18的程序數據的存儲器中沒有地址處理單元24和碼存儲器26的場合,即使讀出指示程序檢查的程序數據,也因不能執行前述的地址修飾處理,所以未修飾的第1地址數據A0-A15原樣地輸入到程序數據存儲器22中。因此,即使有這種檢查命令,也能從在第1地址數據A0-A15指定的地址讀出程序數據。這種場合的程序數據與從用圖2實施例得到的第2地址數據A0』-A7』+A8-A15指定的地址讀出的程序數據不同。因此,在步驟S13與預先設定的檢查數據比較中,成為不一致。因為一得到這種不一致的判別結果,就在步驟S13判斷為「否」,所以強制地結束程序。
為了避免這種程序的強制結束,在圖4的步驟S2中分析指令檢查開始的特別程序數據及其程序步驟(地址),並且必須進一步分析設定在運算器28中的運算的種類和地址運算碼以及檢查程序中的檢查數據(圖2)等全部要素。例如在用屏蔽ROM等作為程序ROM18的場合,這種分析是困難的,並且在分析中需要相當大的設備和長的時間。另一方面,因為如果變更運算器中的運算的種類和地址運算碼等的要素,例如程序ROM的機種、遊戲碟片中的每個遊戲名稱,此外,即使是相同的機種(遊戲名稱)也要變更每個版本,那麼即使分析了某個程序ROM的全部要素,這種分析結果也不能原樣地適用於其它的程序ROM,所以對於非法利用者來說,有必要每次重新分析全部要素。因此,採用這種實施例,如果考慮到分析所要的大量的時間和費用,則能實質上做到不能非法使用程序ROM。
圖6是圖2實施例的變形例,在圖6的實施例中,地址處理單元24的運算裝置包括多個(n個)運算器281-28n。將來自地址總線的地址數據的下8位A0-A7提供給各個運算器281-28n的各自的一方輸入,將由碼存儲器26輸出的8位地址運算碼a0-a7共同地提供給各自的另一方輸入。此外,將設定在碼存儲器26中的運算器選擇碼c0-cX與控制信號一起提供給選擇器30。對應於運算器的個數n,設定運算器選擇碼c0-cX的位數,在有4個運算器28的場合是2位,在8個的場合可以是3位。此外,設定運算器選擇碼c0-cX,以便選擇多個運算器281-28n中的任何一個。
在圖6的實施例中,因為各個運算器281-28n與圖2的實施例的運算器28相同對地址進行運算和修飾,所以省略地址運算的具體說明,但在圖6的實施例中,設定各個運算器281-28n,以便執行不同種類的運算。因此,如果對於例如每個程序ROM的機種(遊戲名稱)、或者每個版本,根據運算器選擇碼c0-cX選擇不同的運算器,則進一步增加圖2說明的程序分析的困難性。因此,使非法利用更困難。
在這種圖6的實施例中,還有其它的優點。即如圖2的實施例所示,在1個晶片上僅形成1個運算器,在根據機種和版本變更這種運算器的場合,當程序ROM是例如屏蔽ROM時,每次運算器的變更都必須變更燒結屏蔽。對此,如圖6所示,如果預先組合多個運算器281-28n,則能僅變化運算器選擇碼,就能選擇運算器、即運算的種類。另一方面,因運算器選擇碼能用與地址運算碼相同的燒結工序設定,所以在圖6的實施例中,在變更運算器的場合,能廉價地製作程序ROM。
在圖6的實施例中,也因選擇器30在供給控制信號時選擇輸入X,在不供給控制信號時選擇輸入Y,所以對應於控制信號的有無,輸出第1地址數據或者第2地址數據。此外,在圖6中,也用括號示出了修飾處理地址數據A0-A15的全部位的場合。其中,這種動作因為由前述圖2的實施例的說明容易地理解,所以省略其說明。
此外,在前述的實施例中,由地址處理單元24輸出,在有控制信號時,用運算器28(281-28n)運算一部分或者全部後的地址數據(第2地址數據),在沒有控制信號時,原樣地選擇並輸出由CPU12供給的地址數據(第1地址數據)。其中,也可以在沒有控制信號時,也可以輸出對第1地址數據進行與第2地址數據不同的第2運算後的第3地址數據。
圖7示出了這種實施例。在圖7的實施例中,除設置與圖2的實施例相同的運算器28和選擇器30外,還在地址處理單元24中設置第2運算器28』。此外,在運算器28和28』的各自的一方輸入上原樣地供給來自CPU12的地址總線的地址數據A0-A15(第1地址數據)的下8位A0-A7。在運算器28和運算器28』的各自的另一方輸入上共同地供給在碼存儲器26中設定的8位的地址運算碼a0-a7。運算器28和28』能執行相互不同的第1種類的運算和第2種類的運算。
運算器28輸出地址運算碼a0-a7與下8位A0-A7的第1運算結果A0』-A7』,並提供給選擇器30的一方輸入X。運算器28』輸出地址運算碼a0-a7與下8位A0-A7的第2運算結果A0」-A7」,並提供給選擇器30的另一方輸入Y。由選擇器30選擇這種來自運算器28和28』的輸入A0』-A7』或者A0」-A7」。
由CPU12將控制信號、例如寫入信號提供給選擇器30,同時提供給存儲在碼存儲器26中的運算器選擇碼c0-cX。因此,選擇器30在有這種控制信號時,選擇運算器28的輸出、即輸入X,並輸出由這種運算器28處理的下8位的地址數據A0』-A7』。此外,選擇器30在沒有這種控制信號時,選擇運算器28』的輸出、即輸入Y,並輸出由這種運算器28』處理的下8位的地址數據A0」-A7」。
另一方面,因為使地址數據A0-A15的上8位A8-A15原樣地與選擇器30的輸出結合,所以其結果在有控制信號時,從選擇器30、即地址處理單元24輸出A0』-A7』+A8-A15的共計16位的地址數據(第2地址數據),在沒有控制信號時,從選擇器30、即地址處理單元24輸出A0」-A7」+A8-A15的共計16位的地址數據(第3地址數據)。
其中,在這種圖7的實施例中也可以如圖7中的括號所示,根據運算器28和運算器28』,對地址數據A0-A15的全部位進行運算。
在圖7的實施例中,來自CPU12的第1地址數據A0-A15不是正確讀出CPU12正規執行的程序數據的地址數據。即,第1地址數據不過是假的地址數據。並且,第1運算器28和第2運算器28』的任何一方變更乃至變換第1地址數據A0-A15,以便正確的讀出CPU12正規執行的程序數據。即,第2地址數據或者第3地址數據的中一方是正確的地址數據。
在圖7的實施例中,在非法使用程序的場合,不僅對第1運算器28,而且對第2運算器28』也必須要分析,進一步增加了分析的困難性。
前述的實施例是在程序ROM18中設置地址處理單元24,加工乃至修飾提供給程序數據存儲器22的地址的例子。但是,同樣的考慮方法適用於從程序數據存儲器22讀出的程序數據,也能加工乃至修飾地址數據和輸出程序數據。
圖8示出了這種實施例。詳細地說,在圖8的實施例中,在程序ROM18中除程序數據存儲器22外,包括圖1所示的地址處理單元24和碼存儲器26,此外,設置接受由程序數據存儲器22輸出的程序數據並對這種程序數據進行規定的處理的輸出數據處理單元32。具體地說,輸出數據處理單元32執行與前述說明了的地址處理單元24相同的動作,處理乃至修飾由程序數據存儲器22讀出的程序數據。這種場合,將來自CPU12的控制信號提供給地址處理單元24和輸出數據處理單元32,在圖5的步驟S11中使地址處理單元24和輸出數據處理單元32能動。
此外,在前述實施例中,都使用在與作為碼發生裝置的程序ROM18相同的晶片上形成的碼存儲器26。但是,這種碼發生裝置只要將任意的碼(數據)提供給運算裝置就可,也可以置換成例如利用直立式開關等提供任意數據的結構和從外部能換寫存儲任意數據的外附的刷新ROM等。
此外,在前述的實施例中,在假的程序的場合,雖然直接地結束程序的執行,但是在例如一定時間後強制結束,或者在遊戲的場合換寫主人公的參數,或者消去遊戲的後備數據時,也能進行返回到遊戲開始的狀態的處理。
雖然詳細地對本發明進行說明和圖示,但這是作為簡單的圖解和一例而用,因此顯然不能理解為一種限定,本發明的精神和範圍僅由所附的權利要求來限定。
權利要求
1.一種半導體存儲器,固定地存儲由中央處理器執行的程序數據,並輸出按照指定地址數據的地址的程序數據,其特徵在於,包括固定地存儲所述程序數據的程序數據存儲器,發生地址運算碼的碼發生裝置,和接受由所述中央處理器輸出的第1地址數據的地址處理裝置,所述地址處理裝置在有控制信號時,根據所述地址運算碼,輸出對至少所述第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給所述程序數據存儲器,在沒有所述控制信號時,將所述第1地址數據提供給所述程序數據存儲器。
2.如權利要求1所述的半導體存儲器,其特徵在於,所述地址處理裝置包括用於對所述第1地址數據的至少一部分與所述地址運算碼進行運算,並輸出所述第2地址數據的運算裝置,和在提供所述控制信號時輸出所述第2地址數據,並在不提供所述控制信號時輸出所述第1地址數據的選擇器。
3.如權利要求2所述的半導體存儲器,其特徵在於,所述運算裝置包括能分別執行不同種類的運算,並且各自接受所述第1地址數據以及所述地址運算碼,分別輸出不同的所述第2地址數據用的多個運算器,所述碼發生裝置還發生選擇所述多個運算器中的任意一個的運算器選擇碼,所述選擇器選擇與根據所述運算器選擇碼選擇的運算器相關的所述第2地址數據或者第1地址數據。
4.如權利要求1至3任一項所述的半導體存儲器,其特徵在於,所述程序數據存儲器包含命令根據所述中央處理器在程序執行中輸出所述控制信號的特別程序數據。
5.如權利要求1至4任一項所述的半導體存儲器,其特徵在於,將所述程序數據存儲器、所述碼發生裝置和所述地址處理裝置,裝載在單個半導體晶片上。
6.如權利要求1至5任一項所述的半導體存儲器,其特徵在於,用高速緩衝存儲器,構成所述程序數據存儲器和所述碼發生裝置。
7.一種半導體存儲器,固定地存儲由中央處理器執行的程序數據,並輸出按照指定的地址數據的地址的程序數據,其特徵在於,包括存儲所述程序數據的程序數據存儲器,發生地址運算碼的碼發生裝置,和接受由所述中央處理器輸出的第1地址數據的地址處理裝置,所述地址處理裝置在有控制信號時,根據所述地址運算碼,輸出對至少所述第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給所述程序數據存儲器,在沒有控制信號時,根據所述地址運算碼,輸出對至少所述第1地址數據的一部分進行與所述第1運算不同的第2運算後的新的第3地址數據,並將這種第3地址數據提供給所述程序數據存儲器。
8.如權利要求7所述的半導體存儲器,其特徵在於,所述地址處理裝置的第1和第2運算的任何一方,將所述第1地址數據變換成用於應該在所述中央處理器中正規執行並輸出程序數據的地址數據。
9.一種程序判別系統,包括固定存儲程序數據的讀出專用的程序存儲器,和從所述程序存儲器讀出程序數據並執行程序、同時判別所述程序是否正規的中央處理器,其特徵在於,所述程序存儲器包括固定地存儲所述程序數據的程序數據存儲器,發生地址運算碼的碼發生裝置,和接受由所述中央處理器輸出的第1地址數據的地址處理裝置,所述地址處理裝置在有來自中央處理器的控制信號時,根據所述地址運算碼,輸出對至少所述第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給所述程序數據存儲器,在沒有提供所述控制信號時,將所述第1地址數據提供給所述程序數據存儲器所述中央處理器包括將所述控制信號提供給所述地址處理裝置的控制信號提供裝置,緊接著提供所述控制信號,輸出所述第1地址數據並提供給所述地址處理器裝置的地址輸出裝置,和判斷按照所述第2地址數據從所述程序數據存儲器讀出的程序數據與預先設定的檢查數據是否為規定的關係,並判斷所述程序存儲器的真假的判斷裝置。
10.如權利要求9所述的程序判別系統,其特徵在於,所述控制信號提供裝置包含在所述程序存儲器中預先設定的特別程序,並用讀出所述特別程序的定時、提供所述控制信號。
11.如權利要求9或10所述的程序判別系統,其特徵在於,所述中央處理器還包括在所述判斷裝置的判斷結果為假的程序存儲器時,強制地結束程序的程序強制結束裝置。
12.一種半導體存儲器的地址控制方法,所述半導體存儲器包含固定地存儲由中央處理器執行的程序數據的程序ROM,其特徵在於,所述方法包括下述步驟(a)發生地址運算碼,(b)在有控制信號時,根據所述地址運算碼,輸出對至少由所述中央處理器輸出的第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給所述程序數據存儲器,(c)在沒有所述控制信號時,將所述第1地址數據提供給所述程序數據存儲器。
13.一種半導體存儲器的地址控制方法,所述半導體存儲器包含固定地存儲由中央處理器執行的程序數據的程序ROM,其特徵在於,所述方法包括下述步驟(a)發生地址運算碼,(b)在有控制信號時,根據所述地址運算碼,輸出對至少由所述中央處理器輸出的第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給所述程序數據存儲器,(c)在沒有所述控制器信號時,根據所述地址運算碼,輸出對至少所述第1地址數據的一部分進行與所述第1運算不同的第2運算後的新的第3地址數據,並將這種第3地址數據提供給所述程序數據存儲器。
14.一種信息處理裝置的程序判別方法,所述信息處理裝置包括固定存儲程序數據的讀出專用的程序存儲器,和從所述程序存儲器讀出程序數據並執行程序的中央處理器,其特徵在於,所述方法包括下述步驟(a)發生地址運算碼,(b)輸出控制信號,(c)緊接著所述步驟(b)從所述中央處理器輸出第1地址,(d)在有控制信號時,根據所述地址運算碼,輸出對至少第1地址數據的一部分進行運算後的新的第2地址數據,並將這種第2地址數據提供給所述程序數據存儲器,在沒有所述控制信號時,將所述第1地址數據提供給所述程序數據存儲器,(e)在所述中央處理器中,判斷按照所述第2地址數據從所述程序數據存儲器讀出的程序數據與預先設定的檢查數據是否為規定的關係。
全文摘要
本發明揭示一種半導體存儲器和使用它的程序判別系統。所述半導體存儲器包含程序ROM,包含在這種程序ROM中的地址處理單元的運算器對來自CPU的地址總線的第1地址數據的後8位A0-A7與設定包含在相同程序ROM中的碼存儲器的8位的地址運算碼a0-a7進行運算,並輸出運算結果A0』-A7』。選擇將A0-A7置換成A0』-A7』,因此從地址處理單元輸出A0』-A7』+A8-A15的共計16位的第2地址數據。
文檔編號G06F21/00GK1316697SQ0110330
公開日2001年10月10日 申請日期2001年1月22日 優先權日2000年1月25日
發明者下村勝 申請人:任天堂株式會社

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀