(57)【要約】      （修正有）【課題】プログラムの解読による不正な複製または改造等を困難にする。【解決手段】プログラムをプログラムカード１に記憶させ、計算機本体３から送出されたプログラムカウンタ２０２の内容をプログラムカードリーダ２を介してプログラムカード１内に送出し、プログラムカード１では、この送出されたプログラムカウンタ２０２の内容に従って対応するアドレスからプログラム命令を読み出し、これを計算機本体３に送出する。【選択図】  図２
2005122723.tif 000002
【特許請求の範囲】
【請求項１】
アドレスの付された単位記憶セルからなる単位記憶セル群にプログラムを構成する機械語命令からなるプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、
前記アドレスを示すアドレス値を保持するアドレス値保持手段と、
この手段に保持されたアドレス値に対応する前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、
この手段により読出されたプログラム情報と前記計算機本体の条件コードレジスタ及び前記アドレス値保持手段に保持されているアドレス値から計算されたアドレス値を前記アドレス値保持手段に書き込むアドレス値変更手段と、
前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを備えたことを特徴とするプログラムカード。
【請求項２】
アドレスの付された単位記憶セルからなる単位記憶セル群にプログラムを構成する機械語命令からなるプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、
前記プログラムカードは、
前記アドレスを示すアドレス値を保持するアドレス値保持手段と、
この手段に保持されたアドレス値に対応する前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、
この手段により読出されたプログラム情報と前記計算機本体の条件コードレジスタ及び前記アドレス値保持手段に保持されているアドレス値から計算されたアドレス値を前記アドレス値保持手段に書き込むアドレス値変更手段と、
前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを、
前記計算機本体は、
前記プログラム情報送出手段により送出されたプログラム情報に基づいて命令制御を実行する命令制御実行手段とを備えたことを特徴とするプログラムカードを用いた計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラムカード及びこれを用いた計算機に関するものである。
【背景技術】
【０００２】
近年、集積回路（ＬＳＩ，ＶＬＳＩ等を含む。以下「ＩＣ等」という）に対する集積化技術の発達はめざましく、カートリッジ又は薄型のカード（以下「カード等」という）内にＲＯＭ型又はＲＡＭ型のＩＣ等を設け、これに計算の手順を示すプログラムと計算データとを（以下「プログラム情報」という）記憶させることにより、容易に着脱可能な計算機の主記憶装置や補助記憶装置（以下「記憶装置」という）として利用することが一般的となっている。
【０００３】
ところで、このＩＣ等に記憶されるプログラム情報等は、２進数で表現されており、このプログラム情報は、一括して計算機内のメインメモリに読み込まれる。そして、このメインメモリから計算機の中央処理装置（以下「ＣＰＵ」という）が逐次読み出しながら、その内容を解釈して命令を実行する。このように、プログラム情報を計算機の記憶装置の中に読み込んで、それを逐次読み出しながら、解釈実行していく計算機をノイマン（Ｎｅｕｍａｎｎ  ）型計算機と呼ばれている。
【０００４】
しかしながら、上記ノイマン型計算機における従来の着脱可能な記憶装置では、計算機本体のＣＰＵとの間で所定の信号線を介してプログラム情報の通信を行う必要がある。従って、この信号線を介してあたかもＣＰＵがプログラム情報を読み出すのと同じように、ユーザはプログラム解読装置によりプログラム情報を読み出してプログラム情報の解読を行うことが可能である。このことは、たとえＩＣ化されていても、プログラム情報を信号線を介して通信する限り、プログラム情報の解読が可能であることを意味し、莫大な開発費をかけて生産したプログラム情報を、第三者による不正な複製又は改造から保護することが困難であった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記ノイマン型計算機における従来の着脱可能な記憶装置では、計算機本体のＣＰＵとの間で所定の信号線を介してプログラム情報の通信を行う必要がある。従って、この信号線を介してあたかもＣＰＵがプログラム情報を読み出すのと同じように、ユーザはプログラム解読装置によりプログラム情報を読み出してプログラム情報の解読を行うことが可能である。このことは、たとえＩＣ化されていても、プログラム情報を信号線を介して通信する限り、プログラム情報の解読が可能であることを意味し、莫大な開発費をかけて生産したプログラム情報を、第三者による不正な複製又は改造等から保護することが困難であった。
【０００６】
そこで、本発明は、プログラム情報の不正な複製又は改造等を困難とする記憶装置及びこれを用いた計算機を提供するものである。
【課題を解決するための手段】
【０００７】
第１発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記計算機本体から送出される前記アドレスを示すアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報を前記計算機本体に送出する手段とを備えたプログラムカードである。
【０００８】
ここで、プログラムカード内の単位記憶セル群は、以下の実施例中、プログラム記憶装置に対応する。そして、外部からのアドレス指定信号（アドレス値）び読み出し／書き込み信号により、アドレス指定信号の示すアドレスの割り当てられた単位記憶セルからプログラム情報を読み出し、また、単位記憶セルに書き込むことができる。
【０００９】
また、本発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報を前記計算機本体に送出する手段とを備え、前記計算機本体は、前記アドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、前記プログラム情報送出手段から送出されたプログラム情報に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【００１０】
第２発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記計算機本体から送出された前記アドレスを示すアドレス値を、所定の暗号キーに基づいて復号化する復号化手段と、この手段により復号化されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報のうち、命令コード部とアドレスオペランド部とを識別する手段と、この手段により識別されたアドレスオペランド部を、所定の暗号キーに基づいて暗号化する暗号化手段と、前記命令コード部及び前記暗号化手段により暗号化されたアドレスオペランド部を前記計算機本体に送出するプログラム情報送出手段とを備えたプログラムカードである。
【００１１】
また、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値を所定の暗号キーに基づいて復号化する復号化手段と、この手段により復号化されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報のうち、命令コード部とアドレスオペランド部とを識別する手段と、この手段により識別されたアドレスオペランド部を、所定の暗号キーに基づいて暗号化する暗号化手段と、前記命令コード部及び前記暗号化手段により暗号化されたアドレスオペランド部を前記計算機本体に送出するプログラム情報送出手段とを備え、前記計算機本体は、前記アドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、前記プログラム情報送出手段により送出された命令コード部及び暗号化されたアドレスオペランド部に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【００１２】
第３発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記アドレスを示すアドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報が所定の条件を満たす場合に、前記アドレス値保持手段に保持されているアドレス値を変更するアドレス値変更手段と、前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを備えたプログラムカードである。
【００１３】
また本発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報が所定の条件を満たす場合に、前記アドレス値保持手段に保持されているアドレス値を変更するアドレス値変更手段と、前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを備え、前記計算機本体は、前記プログラム情報送出手段により送出されたプログラム情報に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【００１４】
第１発明によれば、プログラム情報を格納したプログラム記憶装置と機械語命令読み出し装置とをプログラムカード内に設けて、１ステップずつ計算機本体に機械語命令を送出する。これによって、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。
【００１５】
第２発明によれば、プログラムカード内に暗号化装置、暗号キー発生装置及び復号化装置を設け、プログラムカウンタの内容を暗号化装置により暗号化する。ここで、生成される暗号キーは毎回変化するので、もとのアドレス値が同じであっても毎回異なる暗号化されたアドレス値になる。従って、外部からはプログラム上のどの場所に戻ったのかがわからなくなり、プログラムの実行制御を外部から隠ぺいすることができる。
【００１６】
第３発明によれば、プログラムカウンタ及びこのプログラムカウンタの内容を制御するプログラムカウンタ計算装置をプログラムカード内に設けているので、プログラムの実行制御が計算機本体と完全に分離されることになる。これにより、通常のプログラムカウンタの更新及び実行制御命令に基づくプログラムカウンタの更新をプログラムカード内で行うので、ＪＵＭＰ命令等によりプログラムを実行する場合にも実行制御を完全に隠ぺいすることができるようになる。
【発明の効果】
【００１７】
以上のように、第１発明によれば、プログラム情報を格納したプログラム記憶装置と機械語命令読み出し装置とをプログラムカード内に設けて、１ステップずつ計算機本体に機械語命令を送出しているので、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。従って、ユーザは、プログラム情報の特定の実行系列については把握することができるが、たかだか１回の実行では全ての命令が実行されず、プログラム全体がどのようになっているかを容易に解読することができなくなる。
【００１８】
第２発明によれば、実行制御命令であるＪＵＭＰ命令等を解釈実行する際に、オペランド部に記述されたアドレス値が暗号化されるので、外部からはプログラム上のどの場所に戻ったのかがわからなくなる。これによって、プログラムのループ構造が隠ぺいすることができ、プログラムの解読画より一層困難なものとなる。
【００１９】
第３発明によれば、通常のプログラムカウンタの更新及び実行制御命令に基づくプログラムカウンタの更新をプログラムカード内で行うので、実行制御命令であるＪＵＭＰ命令等によりプログラムを実行する場合にも実行制御を完全に隠ぺいすることができるようになる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しながら本発明の一実施例について説明する。
【００２１】
図１は、本発明に係るプログラムカード及びこれを用いた計算機の適用対象を示す図である。同図に示すように、本発明は、プログラム情報が記憶されたプログラムカード１をプログラムカードリーダ２に装着することにより計算機本体３からアクセス可能とし、該プログラム情報に従ってプログラムを実行するものに関するものである。
【００２２】
ここで、プログラムカード１は、内部に設けられたＲＯＭやＲＡＭ、ＥＥＰＲＯＭ等の集積回路によりプログラム情報を記憶することが可能ないわゆるＩＣカードであり、カード型のみならずカートリッジ型のものも含まれるものとする。また、このプログラムカード１は、外部ケースにより内部の集積回路が保護されているが、外部ケースを開封するとＩＣカードの内容が消失するような構造になっている方が好ましい。
【００２３】
また、プログラムカードリーダ２は、プログラムカード１を着脱することができ、装着されたプログラムカード１内に記憶されたプログラム情報を読出し、また、計算機本体３からのプログラム情報を書込む場合の入出力装置の役目を果たしている。
【００２４】
計算機本体３は、キーボートやディスプレイ、補助記憶装置、主記憶装置、中央処理装置等から構成され、通常の計算機の機能を備えているものとし、本発明ではそれに加え、プログラムカードリーダ２を介して後述するプログラムカード１とアクセスするための機能を備えている。
【００２５】
［第１発明］
図２は、第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図である。
【００２６】
本発明は、プログラムカード内にプログラム情報を記憶し、計算機本体からの読み出し要求により、プログラムカード内に格納されたプログラム情報をその都度計算機本体に送出する。
【００２７】
即ち、同図において、命令制御装置２０１は、プログラムカウンタ（ＰＣ）２０２の内容（アドレス値）をプログラムリーダ２を介してプログラムカード１内の機械語命令読み出し装置２０３に送出する。機械語命令読み出し装置２０３はアドレス値に従ってプログラム記憶装置２０４から機械語命令を読み出し、これをプログラムリーダ２を介して計算機本体３の命令解釈実行装置２０５に送出する。命令解釈実行装置は、この機械語命令を解釈し、その結果に基づいて命令の実行を行い、必要であれば主記憶装置２０６をアクセスする。
【００２８】
以上のような本発明に係るプログラムカード及びこれを用いた計算機の構成をさらに詳述する。
【００２９】
図３は、第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図である。
【００３０】
同図において、計算機本体に設けられている演算装置（ＡＬＵ）３０１は、Ｌバス及びＲバスで与えられたデータに対し演算指定により指定された演算を行って、演算結果をＯバスに出力する。
【００３１】
条件コードレジスタ（ＣＣＲ）３０２は、演算装置３０１で行われた演算結果の状態（例えば、Ｎ，Ｚ，Ｖ，Ｃ）を後述する命令制御装置２０１からの指定によりセットすることができる。
【００３２】
アキュムレータレジスタ（ＡＣＣ）３０３は、いわゆる作業用レジスタであり、Ｏバスから取り込んだデータをＬバスに出力することができる。
【００３３】
上述したプログラムカウンタ２０２は、命令制御装置２０１からの指令により、そのアドレス値を１増加することができるようになっている。プログラムカウンタ２０２の内容は、Ｌバス及びＡ１  バスに出力することができるようになっている。
【００３４】
主記憶番地レジスタ（ＭＡＲ）３０４、読み出し用データレジスタ（ＲＤＲ）３０５、書き込み用データレジスタ（ＷＤＲ）３０６は、それぞれ主記憶装置の読み書きに使われる。
【００３５】
命令レジスタ（ＩＲ）３０７は、命令コード部とオペランド部とから構成される機械語命令をセットすることができ、命令コード部は命令制御装置２０１に、オペランド部はＬバスに送出される。
【００３６】
命令制御装置２０１は、命令コード部や条件コードレジスタ３０２の内容により、上記各レジスタから各バスへの出力、各バスから各レジスタへの入力、演算の指定、主記憶装置２０６の読み書き制御等を行うことができる。このための制御信号線は、命令制御装置２０１から各レジスタに配線されているが、ここでは省略する。
【００３７】
一方、プログラムカード内に設けられている機械語命令読み出し装置２０３は、計算機本体に設けられたプログラムカウンタ２０２からアドレス値を取り込み、これをプログラム記憶装置２０４に送出する。同時に、機械語命令読み出し装置２０３は、そのアドレス値を受けることによって、読み出し信号線３０８ａを読み出し状態（例えば、「Ｈ」）に、選択信号線３０９ａをアクティブ（例えば、「Ｌ」）にして、プログラム記憶装置２０４からデータを読み出し、これを計算機本体の命令レジスタ３０７に送出する。
【００３８】
以上のように構成された本発明に係るプログラムカードと及びこれを用いた計算機は、以下のように動作する。
【００３９】
即ち、命令制御装置２０１は、まずプログラムカウンタ２０２の内容をＡ１  バスに出力する。Ａ１  バスに出力されたアドレス値は、プログラムカードリーダ（図示せず）を介して命令読み出し装置２０３に送出される。命令読み出し装置２０３は、プログラムカウンタ２０２からのアドレス値をプログラム記憶装置２０４に送出するとともに、読み出し信号線３０８ａを「Ｈ」に、選択信号線３０９ｂをアクティブにする。そして、プログラム記憶装置読み出し時間だけ待った後、つまり、読み出されたデータが命令読み出し装置２０３に取り込まれるであろう時間後に、これを取り込む。さらに命令読み出し装置２０３は、読み出されたデータをプログラムカードリーダを介して命令レジスタ３０７に送出し、命令レジスタ３０７はこれを取り込む。この動作は、通常の計算機でいう命令フェッチに相当する。命令フェッチの後、次の命令の実行へ移る準備としてプログラムカ
ウンタ２０２の内容を１増加させる。
【００４０】
命令レジスタ３０７は、取り込まれたデータのうち命令コード部を命令制御装置２０１に送出することにより、命令制御装置２０１ではその命令コードを解釈し、その結果に従って動作を行う。
【００４１】
例えば、命令レジスタに取り込まれたデータがＬＯＡＤ命令であるとする。すると命令制御装置２０１は、命令レジスタ３０７のオペランド部をＲバスに出力し、Ｌバスには何も出力せずに、演算指定を加算にする。これによってＬバスのデータはそのままＯバスに出力されるので、このデータを主記憶番地レジスタ３０４に取り込む。
【００４２】
次に、主記憶番地レジスタ５の内容をＡ２  バスに出力し、読み出し信号線３０８ｂを「Ｈ」に選択信号線３０９ｂをアクティブにして主記憶装置２０６を読む。これによって主記憶番地レジスタ３０４の内容、つまりＬＯＡＤ命令のオペランド部で示された値に従って主記憶装置から読み出される。この動作は、通常の計算機でいうオペランドフェッチに相当する。そして、記憶装置の読み出し時間だけ待った後、Ｄバス上に読み出されたデータを読み出し用データレジスタ３０５に取り込む。
【００４３】
次に、読み出し用データレジスタ３０５の内容をＲバスに出力し、Ｌバスには何も出力せずに、演算指定を加算にする。この結果、Ｒバス上のデータはそのままＯバスに出力されるので、Ｏバス上のデータをアキュムレータレジスタ３０３に取り込む。また、演算装置の演算結果の状態のうちの「Ｎ」と「Ｚ」に対応する部分を条件コードレジスタ３０２に取り込む。この動作は、命令実行に相当する。
【００４４】
このようにしてＬＯＡＤ命令の実行が完了するので、命令制御装置２０１は、命令フェッチ、オペランドフェッチ、命令実行を繰り返す。
【００４５】
なお、本実施例においては、ＬＯＡＤ命令のみ示したが、主記憶装置２０６に書込む命令であるＳＴＯＲＥ命令や実行順序を制御するＪＵＭＰ命令においても同様に動作する。
【００４６】
以上のように、第１の発明によれば、プログラム情報を格納したプログラム記憶装置３１１と機械語命令読み出し装置とをプログラムカード内に設けて、１ステップずつ計算機本体に機械語命令を送出しているので、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。従って、ユーザは、プログラム情報の特定の実行系列については把握することができるが、たかだか１回の実行では全ての命令が実行されず、プログラム全体がどのようになっているかを容易に解読することができない。
【００４７】
［第２発明］
図４は、第２発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図である。
【００４８】
本発明は、プログラムカード内に格納されたプログラム情報を特定の実行系列に対しても解読を困難とすべく、第１発明に対しさらに暗号化・復号化に関する構成を加えている。なお、第１発明と同じものに対しては、同じ符号を付している。
【００４９】
即ち、同図において、プログラムカウンタ２０２からの内容をプログラムリーダ２を介してプログラムカード１内の復号化装置４０１に送出する。ここで、プログラムカウンタ２０２の内容は、後述する暗号化装置４０２により暗号化されたアドレス値Ｘ（Ｘは任意のビット数）とインデックス値Ｃ（Ｃは任意のビット数）とから構成されており、これを「（Ｘ，Ｃ）」と表すこととする。
【００５０】
復号化装置４０１では、暗号化されたアドレス値Ｘを復号化し、この復号化された値ｘにインデックス値Ｃを加えた値を本来のアドレス値として、機械語命令読み出し装置２０３に送出する。機械語命令読み出し装置２０３は、このアドレス値に従ってプログラム記憶装置２０４から機械語命令を読み出し、これを暗号化装置４０２に送出する。
【００５１】
暗号化装置４０２では、機械語命令のうちオペランド部の値を暗号キー発生装置４０３により生成された暗号キーに従って暗号化した後、この暗号化されたアドレス値Ｘ’をプログラムリーダ２を介して計算機本体３の命令解釈実行装置２０５に送出する。
【００５２】
命令解釈実行装置２０５は、この機械語命令を解釈し、その結果に基づいて命令の実行を行い、必要であれば主記憶装置２０６をアクセスする。また、本発明では、命令解釈実行装置２０５によって実行制御命令（例えば、ＪＵＭＰ命令等）であると解釈された場合には、オペランド部に記述されている暗号化されたアドレス値Ｘ’をプログラムカウンタ２０２に新たにセットする。これに対して、実行制御命令以外の命令（例えば、ＬＯＡＤ命令等）の場合には、プログラムカウンタ２０２の内容のインデックス値を１つ増やす。
【００５３】
例えば、プログラムの実行アドレスを図５（ａ）に示すプログラムに従って説明する。即ち、同図（ａ）に示すプログラムは、メモリＭ２の内容にメモリＭ３の内容を乗じた値をメモリＭ１の内容とするプログラムである。今、メモリＭ３の内容が「２」の場合、プログラムカウンタ２０２の内容は同図（ｂ）のようになる。つまり、Ｓ５やＳ９のＪＵＭＰ命令（ＢＬＥ、ＪＭＰ）を解釈実行する際に、オペランド部に記述されたアドレス値「Ｓ１０」や「Ｓ２」が暗号化されるので、外部からはプログラム上のどの場所に戻ったのかがわからなくなる。これによって、Ｓ２乃至Ｓ９のループ構造が隠ぺいすることができ、プログラムの解読画より一層困難なものとなる。
【００５４】
［第３発明］
図６は、第３発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図である。
【００５５】
本発明は、機械語命令全ての実行順序を外部から隠ぺいすべく、プログラムカウンタをプログラムカード内に設けている。なお、第１，２発明と同じものに対しては、同じ符号を付している。
【００５６】
即ち、同図において、計算機本体３内の命令制御装置２０１からの命令により、プログラムカード１内のプログラムカウンタ２０２は、その内容（アドレス値）を機械語命令読み出し装置２０３に送出する。機械語命令読み出し装置２０３は、送出されたアドレス値に従ってプログラム記憶装置２０４から機械語命令を読み出す。
【００５７】
ここで、読み出された機械語命令が実行制御命令（ＪＵＭＰ命令等）である場合には、プログラムカウンタ計算装置６０１を起動する。プログラムカウンタ計算装置６０１は、計算機本体３内の条件コードレジスタ３０２の内容を読み込み、該内容が命令コードに対応する条件を満たしたとき、アドレス値を計算してこれを新たなプログラムカウンタ２０２の内容すべくプログラムカウンタ２０２を更新する。
【００５８】
一方、機械語命令が実行制御命令以外の命令であった場合には、プログラムカウンタ２０２の内容を１つ増やするとともに、機械語命令を計算機本体３内の命令解釈実行装置２０５に送出する。命令解釈実行装置２０５は、この機械語命令を解釈し、その結果に基づいて命令の実行を行い、必要であれば主記憶装置２０６をアクセスする。
【００５９】
以上のような本発明に係るプログラムカード及びこれを用いた計算機の構成をさらに詳述する。
【００６０】
図７は、第３発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図である。
【００６１】
同図において、図６における機械語命令読みだし装置２０３及びプログラムカウンタ計算装置６０１は、演算装置７０１、プログラムカウンタ２０２、命令レジスタ７０２、サブ命令制御装置７０３により構成されている。
【００６２】
以上のように構成された本発明に係るプログラムカード及びこれを用いた計算機は、以下のように動作する。
【００６３】
即ち、計算機本体３内の命令制御装置２０１は、プログラムカード１内のサブ命令制御装置７０３を起動させる。サブ命令制御装置７０３は、まずプログラムカウンタ２０２の内容をＡ１  バスに出力する。サブ命令制御装置７０３は、読み出し信号線３０８ａを「Ｈ」に、選択信号線３０９ｂをアクティブにする。そして、プログラム記憶装置読み出し時間だけ待った後、つまり、読み出されたデータが命令レジスタ７０２に取り込まれるであろう時間後に、これを取り込む。この動作は、通常の計算機でいう命令フェッチに相当する。命令フェッチの後、次の命令の実行へ移る準備としてプログラムカウンタ２０２の内容を１増加させる。
【００６４】
命令レジスタ７０２は、取り込まれたデータのうち命令コード部を主命令制御装置２０１に送出することにより、命令制御装置２０１ではその命令コードを解釈する。
【００６５】
即ち、命令レジスタ７０２に取り込まれたデータが実行制御命令、例えば、ＪＮＺ命令であるとする。ここで、ＪＮＺ命令は、条件コードレジスタの内容がゼロか否かの真偽を判定し、真（つまりゼロでない）であればオペランド部に示されるアドレスに実行制御を移す命令であるとする。サブ命令制御装置７０２は、計算機本体３内にある条件コードレジスタ３０２の内容を読み込み、条件判定を行う。これにより、真であればサブ命令制御装置７０３は、命令レジスタ７０２の内容をＲ１  バスに出力し、Ｌバスには何も出力せずに、演算指定を加算にする。これによってＲ１  バスのデータはそのままＯ１  バスに出力されるので、このデータをプログラムカウンタ２０２に取り込む。
【００６６】
これで、実行制御先であるアドレスがプログラムカウンタ２０２にセットされるので、ＪＮＺ命令が終了する。
【００６７】
一方、命令レジスタ７０２に取り込まれたデータが実行制御命令以外の命令であったとする。この場合、サブ命令制御装置は、機械語命令送出バスＭを介して計算機本体３内の命令レジスタ３０７に送出する。機械語命令が送出された後は、主命令制御装置２０１の制御に従って、第１発明に示したと同様に動作する。
【００６８】
以上のように、本発明によれば、通常のプログラムカウンタの更新及び実行制御命令に基づくプログラムカウンタの更新をプログラムカード内で行うので、ＪＵＭＰ命令等によりプログラムを実行する場合にも実行制御を完全に隠ぺいすることができるようになる。
【図面の簡単な説明】
【００６９】
【図１】本発明に係るプログラムカード及びこれを用いた計算機の適用対象を示す図。
【図２】第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図３】第１発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図。
【図４】第２発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図５】実行制御を説明するためのプログラムを示す図。
【図６】第３発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図７】第３発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図。
【符号の説明】
【００７０】
１…プログラムカード
２…プログラムカードリーダ
３…計算機本体
２０１…命令制御装置
２０２…プログラムカウンタ
２０３…機械語命令読みだし装置
２０４…プログラム記憶装置
２０５…命令解釈実行装置
２０６…主記憶装置
【図１】
2005122723.tif 000003
【図２】
2005122723.tif 000004
【図３】
2005122723.tif 000005
【図４】
2005122723.tif 000006
【図５】
2005122723.tif 000007
【図６】
2005122723.tif 000008
【図７】
2005122723.tif 000009