(57)【特許請求の範囲】
【請求項１】
ハーバードアーキテクチャ構成のＣＰＵと、該ＣＰＵが実行する命令コードを格納したプログラムメモリと、前記ＣＰＵが演算するデータや演算結果を保存するデータメモリと、前記命令コードを常時監視し特定の命令コードを認知することにより特定の制御を行うコントローラとを具備する制御装置において、
前記ＣＰＵは、前記プログラムメモリからフェッチした命令コードが前記コントローラに対する特定の命令コードのとき、前記コントローラに対して、該特定の命令コードのみを送り込むことを特徴とする制御装置。
【請求項２】
前記ＣＰＵは、前記プログラムメモリからフェッチした命令コードが前記コントローラに対する特定の命令コードのとき、前記コントローラに対して、命令コードを受信させるための命令コード有効信号と前記特定の命令コードとを送り込むことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記コントローラが外部割込みを検知すると前記ＣＰＵに対して割込み信号を送出して割込みプログラムを実行させる割込みコントローラであり、前記特定の命令コードが割込み終了命令コードであることを特徴とする請求項２に記載の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハーバードアーキテクチャ構成のＣＰＵを使用した制御装置に関するものである。
【０００２】
【従来の技術】
ハーバードアーキテクチャ構成のＣＰＵとは、プログラムメモリの接続とデータメモリの接続をそれぞれ独立させたもの、つまりプログラムメモリ専用のバスをデータメモリ用のバスとは別に設けたＣＰＵである。図３にそのハーバードアーキテクチヤ構成のＣＰＵを使用した制御装置のブロック図を示す。
【０００３】
１１はハーバードアーキテクチャ構成のＣＰＵである。２０はプログラムメモリであり、ＣＰＵ１１が実行する命令コードが格納されている。３０はデータメモリであり、ＣＰＵ１１が演算するデータや演算結果を保存するために使用される。４０はＩ／Ｏインターフェイスであり、ＣＰＵ１１がスイッチ４２のオン／オフ情報を取り込んだり、ランプ４１の点灯／消灯の出力のため等に使用される。５５は割込みコントローラであり、複数のスイッチ５１による割込み信号の優先順位の制御を行い、ＣＰＵ１１に端子ＩＮＴから割込み信号を出力する。６０はデコーダであり、ＣＰＵ１１のアドレス端子ＡＤＤから出力するアドレスデータを読み込んで、データメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５５の各端子ＣＳに対する選択信号を生成し出力する選択端子ＣＳ１，ＣＳ２，ＣＳ３を持つ。
【０００４】
７０はアドレスバスであり、ＣＰＵ１１のアドレス端子ＡＤＤをデータメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５５のアドレス端子ＡＤＤに接続している。７１はデータバスであり、ＣＰＵ１１のデータ入出力端子ＤＡＴＡをデータメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５５のデータ入出力端子ＤＡＴＡに接続している。７５はプログラムアドレスバスであり、ＣＰＵ１１のプログラムアドレス端子ＰＡＤＤをプログラムメモリ２０のアドレス端子ＡＤＤに接続している。７６は命令コードバスであり、ＣＰＵ１１の命令コード入力端子ＩＤＡＴＡをプログラムメモリ２０の命令コード出力端子ＤＡＴＡに接続している。なお、その他の各ブロックのＲＤはリード端子、ＷＲはライト端子、ＩＮＴＡは割込み確認端子である。
【０００５】
図４は図３の制御装置のＣＰＵ１１のタイミングチャートである。この図４において、左端のＰＣＳ，ＰＲＤ，・・・・・，ＤＡＴＡは、ＣＰＵ１１の各端子の状態を示し、Ｔ１〜Ｔ６はＣＰＵ１１の内部のステートを示している。ハーバードアーキテクチャ構成の場合、プログラムメモリ２０とデータメモリ３０のバス接続がそれぞれＣＰＵ１１に対して独立しているので、ステートＴ１でフェッチした命令（Ｉ０）をステートＴ２で実行（図３では、データメモリ３０のアドレスＡＤＤ１のデータＤＩをリードする）すると同時に、プログラムメモリ２０からの次の命令コード（Ｉ１）をプリフェッチする。
【０００６】
図５はプログラムメモリ専用バスを持たないＣＰＵ１２を使った制御装置のブロック図である。図３に示したものと同じ機能のものには同じ符号を付している。ＣＰＵ１２に対するバスは、アドレスバス７０とデータバス７１のみであり、プログラムメモリ２０、データメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５０に各々共通接続されている。６１はデコーダであり、ＣＰＵ１２のアドレス端子ＡＤＤの出力を取り込み、プログラムメモリ２０、データメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５０ヘのセレクト信号を生成して出力する端子ＣＳＯ，ＣＳ１，ＣＳ２，ＣＳ３を持っている。割込みコントローラ５０は、デコーダ６１の端子ＣＳ３からの選択信号が入力する外に、端子ＣＳ０からプログラムメモリ２０に選択信号を出力しているときに、端子ＩＮＳＴに同じ選択信号が入力する。
【０００７】
図６は図５の制御装置のＣＰＵ１２のタイミングチャートである。Ｔ１〜Ｔ１７はＣＰＵ１２の内部のステートを示している。プログラムメモリ専用バスを持たないＣＰＵ１２は、命令コードをプログラムメモリ２０からリードし、解読して、次のステートで命令を実行する。例えば、ステートＴ１で命令コード（Im−1）をリードしてステートＴ２でその命令（図６ではデータメモリ３０のアドレスＡＤＤ１のデータＤＩをリードする）を実行する。この時、プログラムメモリ２０とデータメモリ３０は、データバス７１で接続されているので、ステートＴ２でのデータメモリ３０ヘのアクセスが終了するまで、次の命令コード（Im）はフェッチできない。
【０００８】
よって、図３に示したハーバードアーキテクチャ構成のＣＰＵ１１は、図５に示したプログラムメモリ専用バスを持たないＣＰＵ１２に比べて、命令コードをプリフェッチする時間分だけ、命令実行時間を早くすることが可能である。
【０００９】
次に、割込みが発生した場合について説明する。図７にプログラムの流れを表した図を示す。プログラムメモリ２０に格納されたプログラムのメインルーチン９０のアドレス（PCm）の命令の実行中に割込みが発生したときは、ＣＰＵ１２はアドレス（PCm）の命令の実行が終了すると、次の命令のアドレスとその時のＣＰＵの状態をＣＰＵ内部のレジスタ（図示せず）やデータメモリ３０に退避してから、割込み処理プログラム９１にジャンプして割込み処理を実行する。割込み処理が終了すると、最後にデータバス７１に読み出した割込み終了命令（ＩＥＮＤ）を実行して、割込み処理プログラムにジャンプする時に退避した、次の命令のアドレス（PCm＋1）とその時のＣＰＵの状態を復元して、メインルーチン９０のプログラムを実行する。以下、詳しく説明する。
【００１０】
図５の構成のＣＰＵ１２において、スイッチ５１のいずれかが押され、割込みの要求が割込みコントローラ５０に発生した場合、割込みコントローラ５０は、他の割込みと優先順位の調停を行い、ＣＰＵ１２の端子ＩＮＴに割込み信号を出力する。図６に示すように、ステートＴ４でその割込み信号が入力された場合、ＣＰＵ１２はステートＴ４の命令（データメモリヘのデータのライト）が終了すると、ステートＴ５で端子ＩＮＴＡから割込み許可信号を出力する。
【００１１】
図５の割込みコントローラ５０は、端子ＩＮＴＡに割込み許可信号が入力されると、図６のステートＴ５で割込み処理プログラムの先頭のアドレス（PCn）を出力する。ＣＰＵ１２は、次の命令のアドレス（Pcm+1）とその時のＣＰＵ１２の状態をＣＰＵ内部のレジスタやデータメモリに退避して、割込みコントローラ５０が出力した割込み処理プログラムの先頭のアドレス（PCn）を取り込み、ステートＴ６で割込み処理プログラム先頭アドレス（PCn）にジャンプして、割込み処理を行う。
【００１２】
図５の割込みコントローラ５０は、割込み処理が行われている間に、他の割込みが入力された時、現在実行されている割込みより優先順位が高いが低いかを判断して、優先順位が高い場合は割込み信号をＣＰＵ１２の端子ＩＮＴに対して出力し、優先順位が低い場合は現在実行している割込み処理が終了するまで、優先順位の低い割込み処理を待たせる制御をする。そのために、割込みコントローラ５０は割込み処理の終了を認知する必要がある。
【００１３】
割込み処理プログラムを終了する時は、図６のステートＴ１２で割込み終了命令（ＩＥＮＤ）をフェッチして、ステートＴ１３でその割込み終了命令（ＩＥＮＤ）を実行し、割込み処理プログラムにジャンプする時に退避した、次の命令のアドレス（PCm＋1）とその時のＣＰＵ１２の状態を復元して、ステートＴ１４でそのアドレス（PCm＋l）の命令コード（Im+1）をフェッチして、メインルーチンのプログラムを実行する。
【００１４】
図５の割込みコントローラ５０が割込み処理の終了を認知する手投として、ＣＰＵ１２が命令コードをリードする時に、データバス７１上の命令コードを常に監視しておき、プログラムメモリ２０からの割込み終了命令（ＩＥＮＤ）を認知する方法がある。割込みコントローラ５０の端子ＩＮＳＴには、デコーダ６１の端子ＣＳ０が接続されており、この端子ＣＳ０の信号が出力されている時は、データバス７１にプログラムメモリ２０からの命令コードが出力されているので、割込みコントローラ５０はこの端子ＣＳ０からの信号が出力されている間にデータバス７１の命令コードを監視することにより、割込み終了命令（ＩＥＮＤ）を認知することができる。
【００１５】
しかし、図３のＣＰＵ１１のようにハーバードアーキテクチャ構成にした場合には、データバス７１上には命令コードが出力されないので、常に命令コードを監視するということことはできず、割込み終了命令（ＩＥＮＤ）を認知することができない。したがって、命令コードを常に監視する図５に示した割込みコントローラ５０をそのままでは使用することができない。
【００１６】
そこで、図８に示すように、ハーバードアーキテクチヤ構成のＣＰＵ１１においては、そのＣＰＵ１１の端子ＰＲＤからプログラムメモリ２０の端子ＲＤに命令コードのリード信号を出力するときにデータバス７６の内容をデータバス７１に転送するバッファ８０を設けて、命令コードを常に監視する割込みコントローラ５０を使用できるようにした構成がある。
【００１７】
図９は、図８の構成の制御装置のタイミングチャートである。各ステートＴ１，Ｔ３，Ｔ６，Ｔ１０，Ｔ１１，Ｔ１２，Ｔ１４において、ＣＰＵ１１が命令コードをリードする。そのうちのステートＴ１１で、データバス７６上の書込終了命令（ＩＥＮＤ）がバッファ８０を介してデータバス７１に出力されるので、命令コードを常に監視する割込みコントローラ５０を使用することが可能になる。
【００１８】
しかし、この図８の構成では、命令コードと通常のデータ等が共通のデータバス７１上に載るので、ＣＰＵ１１が命令コードをリードするタイミングとデータメモリ等にアクセスするタイミングが重ならない様にする必要があり、プログラムメモリ２０のアクセスとデータメモリ３０のアクセスを同時に行うハーバードアーキテクチヤ構成の特徴がなくなってしまう。
【００１９】
【発明が解決しようとする課題】
以上説明したように、図３に示したハーバードアーキテクチャ構成のＣＰＵでは、処理速度は速くなるものの、プログラムメモリ２０に格納された割込みプログラムの処理のみによって動作する通常の割込みコントローラ５５を使用しなければならない。割込みプログラム内容を簡素化するため、或いは割込み終了処理動作を速くするために、割込みプログラムの内容を監視しそれに直ちに対応して動作させるようにするには、割込みコントローラ５５とは異なった新規な割込みコントローラを開発しなければならない。
【００２０】
また、図５に示した構成では、プログラム専用バスを使用しないので、命令コードのフェッチと実行を交互に行う必要があり、処理に時間がかかるという問題がある。
【００２１】
さらに、図８に示したハーバードアーキテクチャ構成では、命令コードを常に監視する割込みコントローラ５０を使用できるが、命令コードをデータバスに出力するためのバッファ８０が特別に必要となり、さらに、命令コードのリードとデータメモリやＩ／Ｏインターフェイスへのアクセスが同時に行えないため命令コードのプリフェッチが行えず、命令の処理速度を早く出来ないという問題があった。
【００２２】
本発明は以上のような点に鑑みてなされたものであり、その目的は、ハーバードアーキテクチャ構成のＣＰＵの命令の処理速度が早いという特徴を生かし、同時にデータバス上の命令コードを監視するコントローラを使用できるようにした制御装置を提供することである。
【００２３】
【課題を解決するための手段】
上記目的を達成するために第１の発明は、ハーバードアーキテクチャ構成のＣＰＵと、該ＣＰＵが実行する命令コードを格納したプログラムメモリと、前記ＣＰＵが演算するデータや演算結果を保存するデータメモリと、前記命令コードを常時監視し特定の命令コードを認知することにより特定の制御を行うコントローラとを具備する制御装置において、前記ＣＰＵは、前記プログラムメモリからフェッチした命令コードが前記コントローラに対する特定の命令コードのとき、前記コントローラに対して、該特定の命令コードのみを送り込むよう構成した。
【００２４】
第２の発明は、第１の発明において、前記ＣＰＵは、前記プログラムメモリからフェッチした命令コードが前記コントローラに対する特定の命令コードのとき、前記コントローラに対して、命令コードを受信させるための命令コード有効信号と前記特定の命令コードとを送り込むよう構成した。
【００２５】
第３の発明は、第２の発明において、前記コントローラは外部割込みを検知すると前記ＣＰＵに対して割込み信号を送出し割込みプログラムを実行させる割込みコントローラであり、前記特定の命令コードが割込み終了命令コードであるよう構成した。
【００２６】
【発明の実施の形態】
図１に本発明の一つの実施の形態の制御装置のブロック図を示す。１０はハーバードアーキテクチャ構成のＣＰＵ、２０はそのＣＰＵ１０が実行する命令コードが格納されたプログラムメモリ、３０はＣＰＵ１０が演算するデータや結果を保存するデータメモリ、４０はＣＰＵ１０がスイッチ４２のオン／オフ情報を読み込んだり、ランプ４１への点灯／消灯情報等を出力するためのＩ／Ｏインターフェイス、５０は外部割込を制御する割込みコントローラ、６０はＣＰＵ１０のアドレス端子ＡＤＤから入力するアドレスデータをデコードすることにより、端子ＣＳ１，ＣＳ２，ＣＳ３からデータメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５０に選択信号を送出するデコーダである。ＣＰＵ１０以外のプログラムメモリ２０、データメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５０は図３、図５、又は図８に示したものと同じである。
【００２７】
ＣＰＵ１０は、プログラムメモリ２０の端子ＣＳに選択信号を出力する端子ＰＣＳと、プログラムメモリ２０の端子ＡＤＤにプログラムアドレスデータをプログラムアドレスバス７５を経由して出力する端子ＰＡＤＤと、プログラムメモリ２０の端子ＤＡＴＡから出力する命令コードをプログラムデータバス７６を経由して入力する端子ＩＤＡＴＡと、プログラムメモリ２０の端子ＲＤに対して読出信号を出力する端子ＰＲＤと、割込みコントローラ５０の端子ＩＮＳＴに対して命令コード有効信号（ＩＮＳＴ）を出力する端子ＩＮＳＴと、デコーダ６０の端子ＣＳに選択信号を出力する端子ＣＳをもつ。
【００２８】
さらに、ＣＰＵ１０は、データメモリ３０、Ｉ／Ｏインターフェイス４０、割込みコントローラ５０、およびデコーダ６０の各端子ＡＤＤに対してアドレスバス７０を経由してアドレスデータを出力する端子ＡＤＤと、データメモリ３０、Ｉ／Ｏインターフェイス４０、および割込みコントローラ５０の端子ＤＡＴＡとの間でデータバス７１を介してデータをやりとりする端子ＤＡＴＡと、データメモリ３０、Ｉ／Ｏインターフェイス４０、および割込みコントローラ５０の端子ＲＤに読出信号を送る端子ＲＤと、データメモリ３０、Ｉ／Ｏインターフェイス４０、および割込みコントローラ５０の端子ＷＲに書込信号を送る端子ＷＲと、割込みコントローラ５０の端子ＩＮＴからの割込み信号を入力する端子ＩＮＴと、割込みコントローラ５０の端子ＩＮＴＡに対して割込み許可信号を出力する端子ＩＮＴＡを持つ。
【００２９】
第２図は図１に示した制御装置の動作のタイミングを示す図である。ＣＰＵ１０は、ステートＴ１で命令コード（Ｉｅ−２）をフェッチして、ステートＴ２でその命令を実行すると同時に、次の命令コード（Ｉｅ−１）をフェッチする。
【００３０】
ＣＰＵ１０は、通常の命令を実行しているときは、命令コード有効信号（ＩＮＳＴ）を出力しないが、割込み処理を実行しているときには、ステートＴ３で割込み終了命令コード（ＩＥＮＤ）をプリフェッチすると、次のステートＴ４において、割込み処理プログラムにジャンプするときに退避した次の命令のアドレスとその退避時のＣＰＵの状態を復元すると同時に、命令コード有効信号（ＩＮＳＴ）を出力し、データバス７１にその割込み終了命令の命令コード（ＩＥＮＤ）を出力する。
【００３１】
したがって、割込みコントローラ５０は、命令コード有効信号（ＩＮＳＴ）が人力されたときに、データバス７１に出力している割込み終了命令（ＩＥＮＤ）を認知することができ、これに基づき割込み制御を行うことが可能となる。
【００３２】
以上のように、本実施の形態の制御装置は、プログラムメモリ２０から出力した命令コードを直接的に割込みコントローラ５０に対して入力するのではなく、割込みコントローラ５０が必要としている割込終了の命令（ＩＥＮＤ）のみを、その必要としているタイミングを示す命令コード有効信号（ＩＮＳＴ）が入力しているときのみ、ＣＰＵ１０からその割込みコントローラ５０に送り込むものである。
【００３３】
このため、ハーバードアーキテクチャ構成のＣＰＵ１０によりプログラムメモリ２０とデータメモリ３０を同時にアクセスすることができるという特徴を失うことなく、コントローラ５０をそのまま使用し、データバス７１上の命令コードを監視して、割込み終了命令（ＩＥＮＤ）を確認してから割込みの制御を行うことができる。
【００３４】
［その他の実施の形態］
なお、以上では割込み終了命令（ＩＥＮＤ）を確認して割込み終了の制御を行う割込みコントローラ５０を使用する場合に適用したが、命令コードを常に監視しておき、必要な命令コードを確認することによって特定の制御を行う別のコントローラの制御にも適用することができる。
【００３５】
【発明の効果】
以上から本発明によれば、命令の実行中に次の命令のプリフェッチを行うハーバードアーキテクチャ構成のＣＰＵを採用しながら、同時に常時命令を監視して特定の命令を確認することにより特定の制御を行うコントローラを使用することが可能となり、これを割込み制御に適用したとき、既存の割込みコントローラをそのまま使用することが可能になる。
【図面の簡単な説明】
【図１】  本発明の実施の形態の制御装置のブロック図である。
【図２】  図１の制御装置のタイミングチャートである。
【図３】  プログラムメモリ専用バスを持つハーバードアーキテクチャ構成のＣＰＵを使用した従来の制御装置のブロック図である。
【図４】  図３の制御装置のタイミングチャートである。
【図５】  プログラムメモリ専用バスを持たないＣＰＵを使用した従来の制御装置の構成を示すブロック図である。
【図６】  図５の制御装置のタイミングチャートである。
【図７】  割込みルーチンをもつプログラムのフローチャートである。
【図８】  プログラムメモリ専用バスを持つハーバードアーキテクチャ構成のＣＰＵを使用した従来の制御装置のブロック図である。
【図９】  図８の制御装置のタイミングチャートである。
１０，１１：ハーバードアーキテクチャ構成のＣＰＵ
１２：プログラムメモリ専用バスを持たないＣＰＵ
２０：プログラムメモリ
３０：データメモリ
４０：Ｉ／Ｏインターフェイス
４１：ランプ
４２：スイッチ
５０：命令コードを常に監視する割込みコントローラ
５１：スイッチ
５５：割込みコントローラ
６０，６１：デコーダ
７０：アドレスバス
７１：データバス
７５：プログラムアドレスバス
７６：命令コードバス
８０：バッファ回路
【図１】
0003785807.tif 000002
【図２】
0003785807.tif 000003
【図３】
0003785807.tif 000004
【図４】
0003785807.tif 000005
【図５】
0003785807.tif 000006
【図６】
0003785807.tif 000007
【図７】
0003785807.tif 000008
【図８】
0003785807.tif 000009
【図９】
0003785807.tif 000010