(57)【特許請求の範囲】
【請求項１】
中央処理装置と、
第１バスを介して前記中央処理装置と接続されているバスコントローラと、
第２バスを介して前記中央処理装置と、第３バスを介して前記バスコントローラとそれぞれ接続されている命令キャッシュと、
第４バスを介して前記第２バスと接続され、かつ、割り込み処理ルーチンが格納されている命令ＲＡＭと、
第５バスを介して前記バスコントローラと、前記第５バス及び第６バスを介して前記命令ＲＡＭと、第７バスを介して外部メモリとそれぞれ接続されているメモリコントローラと、
を備えることを特徴とするマイクロコンピュータ。
【請求項２】
前記中央処理装置は、実行すべき命令が前記命令キャッシュ上にある場合には、前記命令キャッシュからその命令を読み出し、かつ、実行し、実行すべき命令が前記命令キャッシュ上にない場合には、前記外部メモリから命令を読み出し、その命令を実行することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
割り込み発生時には、前記中央処理装置は、前記命令ＲＡＭから命令を読み出し、前記割り込み処理ルーチンを実行するものであることを特徴とする請求項１又は２に記載のマイクロコンピュータ。
【請求項４】
前記中央処理装置に接続する外部端子をさらに備えており、前記外部端子を介して、前記命令ＲＡＭ及び前記外部メモリの配置が指定されるメモリマップの切り替えが行われることを特徴とする請求項１乃至３の何れか一項に記載のマイクロコンピュータ。
【請求項５】
前記外部端子の操作は前記中央処理装置の実行中においても受け付けられるものであることを特徴とする請求項４に記載のマイクロコンピュータ。
【請求項６】
前記中央処理装置に接続する外部端子をさらに備えており、前記外部端子を介して、前記命令ＲＡＭ及び前記外部メモリの配置が指定されるメモリマップの切り替えが行われ、
前記メモリマップは、前記命令ＲＡＭの割り付けられている配置が互いに異なる通常メモリマップと命令ＲＡＭ初期化用メモリマップとを含み、
前記中央処理装置は、電源投入時のリセット解除後において、前記外部端子により選択された命令ＲＡＭ初期化用メモリマップに基づき前記外部メモリに格納された初期化ルーチンを読み出して実行し、
前記割り込み処理ルーチンは、前記初期化ルーチンの実行結果に基づいて、前記外部メモリから前記第６バスを介して前記命令ＲＡＭに転送されることを特徴とする請求項１乃至３の何れか一項に記載のマイクロコンピュータ。
【請求項７】
前記中央処理装置は内部レジスタを備えており、前記内部レジスタに格納される値に基づいて、前記命令ＲＡＭ及び前記外部メモリの配置が指定されるメモリマップの切り替えが行われるものであることを特徴とする請求項１乃至３の何れか一項に記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュを内蔵し、リアルタイム制御に適したマイクロコンピュータに関する。
【０００２】
【従来の技術】
リアルタイム制御においては、マイクロコンピュータは割り込み処理を短時間、かつ、一定時間内で実行することが要求される。
【０００３】
図４に従来のマイクロコンピュータの構造の一例を示す。
【０００４】
図４に示したマイクロコンピュータ４１は、中央処理装置（ＣＰＵ）４２と、データバス４３を介して中央処理装置４２と接続されているバスコントローラ４４と、命令バス４５を介して中央処理装置４２と、接続バス４６を介してバスコントローラ４４とそれぞれ接続されている命令キャッシュ４７と、内部バス４８を介してバスコントローラ４４と接続されているメモリコントローラ４９と、からなる。
【０００５】
メモリコントローラ４９は、外部バス５０を介して、さらに、外部メモリ５１と接続されている。
【０００６】
従来は、外部メモリ５１へのプログラムアクセスは低速で行われていたが、このマイクロコンピュータ４１は、命令キャッシュ４７を内蔵することによって、外部メモリ５１へプログラムアクセスを高速化することに成功している。
【０００７】
【発明が解決しようとする課題】
しかしながら、キャッシュメモリはミスヒットが発生するため、リアルタイム制御には適していないという欠点がある。
【０００８】
以下、その理由を第１の課題として述べる。
【０００９】
マイクロコンピュータ４１において、命令キャッシュ４７上に中央処理装置４２が実行する命令がない場合には、外部メモリ５１から命令をリフィルする動作が必要となる。例えば、外部メモリ５１に接続されている外部バス５０のデータバスが１６ビット幅であるとすると、このリフィル動作には、最小１６システムクロックの時間が必要となる。従って、割り込みルーチンが命令キャッシュ４７上にない場合には、必然的に、割り込み応答時間が長くなってしまう。
【００１０】
第２の課題は、ミスヒットの低減とチップサイズとが相反の関係にあるという点である。
【００１１】
すなわち、命令キャッシュ４７の容量を大きくすれば、ミスヒットをなくすことが可能である。しかしながら、キャッシュメモリはその構造上面積が大きいため、大きな容量の命令キャッシュ４７を内蔵すると、チップサイズが大きくなり、ひいては、コストの上昇を避けることができない。
【００１２】
このような課題を解決するため、例えば、特開平３−３３９５５号公報は、中央処理装置がアクセスと予測されるメインメモリの内容を高速動作可能なキャッシュメモリへ転送しておき、このキャッシュメモリから前記中央処理装置へデータを供給することにより、前記中央処理装置と前記メインメモリの動作速度のギャップを埋めるキャッシュメモリコントローラにおいて、キャッシュデータに対して外部から入力される優先順位指定情報を記憶しておく優先順位記憶手段と、優先順位指定情報を優先順位記憶手段に記憶させるための制御を行い、破棄するキャッシュメモリを選択し、かつ、決定する制御回路と、この制御回路に優先順位記憶手段に記憶されている優先順位情報を参照する機能とを備えるキャッシュメモリコントローラを提案している。
【００１３】
このキャッシュメモリコントローラにおいては、命令キャッシュの格納データに優先順位を付加することにより、特定の格納データの追い出しをできる限り後に行うようにしている。一度格納したデータを追い出すためには、キャッシュヒットの判定を行うことを必要とするが、その判定を行うためには、１システムクロックを必要とする。このため、中央処理装置が命令を取り込む時間がその分だけ遅れるという欠点があった。さらには、命令キャッシュが優先順位の高いデータで満たされると、プログラム全体のヒット率が著しく低下するという欠点もあった。
【００１４】
本発明はこのような点に鑑みてなされたものであり、中央処理装置がより高速に命令を取り込むことを可能にし、かつ、プログラム全体のヒット率の低下を防止することができるマイクロコンピュータを提供することを目的とする。
【００１７】
【課題を解決するための手段】
この目的を達成するため、請求項１は、中央処理装置と、第１バスを介して前記中央処理装置と接続されているバスコントローラと、第２バスを介して前記中央処理装置と、第３バスを介して前記バスコントローラとそれぞれ接続されている命令キャッシュと、第４バスを介して前記第２バスと接続され、かつ、割り込み処理ルーチンが格納されている命令ＲＡＭと、第５バスを介して前記バスコントローラと、第６バスを介して前記命令ＲＡＭと、第７バスを介して外部メモリとそれぞれ接続されているメモリコントローラと、を備えることを特徴とするマイクロコンピュータを提供する。
【００１９】
請求項２に記載されているように、前記中央処理装置は、例えば、実行すべき命令が前記命令キャッシュ上にある場合には、前記命令キャッシュからその命令を読み出し、かつ、実行し、実行すべき命令が前記命令キャッシュ上にない場合には、前記外部メモリから命令を読み出し、その命令を実行するものであることが好ましい。
【００２０】
請求項３に記載されているように、例えば、割り込み発生時には、前記中央処理装置は、前記命令ＲＡＭから命令を読み出し、前記割り込み処理ルーチンを実行するものであることが好ましい。
【００２１】
請求項４に記載されているように、本マイクロコンピュータは、前記中央処理装置に接続する外部端子をさらに備えていることが好ましい。この外部端子を介して、前記命令ＲＡＭ及び前記外部メモリの配置が指定されるメモリマップの切り替えが行われる。
【００２２】
また、請求項５に記載されているように、前記外部端子の操作は前記中央処理装置の実行中においても受け付けられるものであることが好ましい。
【００２３】
請求項６に記載されているように、本マイクロコンピュータは、前記中央処理装置に接続する外部端子をさらに備えていることが好ましい。この外部端子を介して、メモリマップの切り替えが行われる。前記メモリマップは、前記メモリマップは、前記命令ＲＡＭの割り付けられている配置が互いに異なる通常メモリマップと命令ＲＡＭ初期化用メモリマップとを含む。前記中央処理装置は、電源投入時のリセット解除後において、前記外部端子により選択された命令ＲＡＭ初期化用メモリマップに基づき前記外部メモリに格納された初期化ルーチンを読み出して実行する。前記割り込み処理ルーチンは、前記初期化ルーチンの実行結果に基づいて、前記外部メモリから前記第６バスを介して前記命令ＲＡＭに転送される。
【００２４】
あるいは、請求項６に記載されているように、前記中央処理装置が内部レジスタを有するように
構成し、前記内部レジスタによって、メモリマップの切り替えを行うことも可能である。
【００２５】
【発明の実施の形態】
図１に本発明の一実施形態に係るマイクロコンピュータ１の構成を示すブロック図を示す。
【００２６】
マイクロコンピュータ１は、中央処理装置（ＣＰＵ）２と、データバス３を介して中央処理装置２と接続されているバスコントローラ４と、命令バス５を介して中央処理装置２と、第１接続バス６を介してバスコントローラ４とそれぞれ接続されている命令キャッシュ７と、内部バス８を介してバスコントローラ４と接続されているメモリコントローラ９と、第２接続バス１０を介して命令バス５と、第３接続バス１１を介して内部バス８とそれぞれ接続している命令ＲＡＭ１２と、中央処理装置２に接続されている外部端子１３と、からなる。
【００２７】
メモリコントローラ９は、外部バス１４を介して、さらに、外部メモリ１５と接続されている。
【００２８】
以上のような構成を有するマイクロコンピュータ１はハーバードアーキテクチャのマイクロコンピュータである。
【００２９】
命令ＲＡＭ１２上には、高速応答を要求される割り込み処理ルーチンが格納されている。なお、命令ＲＡＭ１２の初期化は図２に示すメモリマップを切り替えることにより行なう。
【００３０】
命令ＲＡＭ１２は第２接続バス１０を介して命令バス５と接続されているため、中央処理装置２は１システムクロックサイクルで命令ＲＡＭ１２から命令を読み出すことができる。
【００３１】
また、命令ＲＡＭ１２は第３接続バス１１を介して内部バス１３にも接続されているため、中央処理装置２はデータバス３及びバスコントローラ４を経由して、１システムクロックサイクルで命令ＲＡＭ１２に命令を書き込むことができる。
【００３２】
命令キャッシュ７は命令バス５に接続されており、命令キャッシュ７上に実行すべき命令があれば、中央処理装置２は１システムクロックサイクルで命令キャッシュ７から命令を読み出すことができる。
【００３３】
ただし、命令キャッシュ７上に実行する命令がない場合には、命令キャッシュ７は、バスコントローラ４、内部バス８、メモリコントローラ９及び外部バス１４を経由して、外部メモリ１５から、その命令を含むキャッシュ１ライン分の命令を読み込むリフィル動作を行なう。
【００３４】
バスコントローラ４は、データバス３と命令バス５の信号と、内部バス８の信号とを相互に変換する。
【００３５】
メモリコントローラ９は、内部バス８の信号と外部バス１４の信号とを相互に変換する。
【００３６】
中央処理装置２は、命令バス５、バスコントローラ４、内部バス８及びメモリコントローラ９を経由して、外部メモリ１５から最小２システムクロックサイクルで命令を読み出すことができるとともに、データバス３、バスコントローラ４、内部バス８及びメモリコントローラ９を経由して、最小２システムクロックサイクルで外部メモリ１５からデータを読み、あるいは、外部メモリ１５にデータを書き込むことができる。
【００３７】
中央処理装置２に接続されている外部端子１３は、図２に示すように、命令ＲＡＭ１２が配置される領域を指定する。図２に示す双方のメモリマップでは、配置されるアドレスは変化するが、配置される命令ＲＡＭ１２自体は同一である。
【００３８】
すなわち、命令ＲＡＭ１２の初期化用メモリマップの指定時に０１０００００Ｈ番地に書き込んだデータは、通常メモリマップの指定時は０００００００Ｈ番地に存在する。
【００３９】
以下、マイクロコンピュータ１の動作を説明する。
【００４０】
中央処理装置２は、リセット解除時においては、０００００００Ｈ番地から命令実行を開始する。また、割り込み発生時には、割り込み要求ソースに応じて定められている０００００１０Ｈ−００００４８０Ｈ番地の割り込みベクタテーブルで指定される割り込みルーチンを実行する。
【００４１】
先ず、通常メモリマップ時におけるマイクロコンピュータ１の動作は次の通りである。
【００４２】
通常メモリマップ時においては、メモリ空間には、図２に示すように、命令ＲＡＭ１２及び外部メモリ１５が割り付けられている。すなわち、命令ＲＡＭ１２は０００００００Ｈ−０１０００００Ｈ番地にあり、外部メモリ１５は０１０００００Ｈ番地以降の番地にある。
【００４３】
通常メモリマップ時において、リセット解除時には、中央処理装置２は０００００００Ｈ番地から命令実行を開始する。０００００００Ｈ番地には命令ＲＡＭ１２が割り付けられているため、中央処理装置２は命令ＲＡＭ１２から命令を読み出し、実行する。
【００４４】
また、通常の命令の実行に際しては、以下のように、中央処理装置２は外部メモリ１５または命令ＲＡＭ１２に格納されたプログラムを実行する。
【００４５】
中央処理装置２は命令キャッシュ７上に実行する命令があれば、すなわち、キャッシュにヒットすれば、命令キャッシュ７から命令を読み出し、実行する。
【００４６】
命令キャッシュ７上に実行すべき命令がない場合には、外部メモリ１５からその命令を含むキャッシュ１ライン分の命令を読み出し、そのデータを命令キャッシュ７に格納する。その後、中央処理装置２は命令キャッシュ７から命令を読み出し、実行する。
【００４７】
あるいは、命令ＲＡＭ１２上に実行すべき命令がある場合には、中央処理装置２は命令ＲＡＭ１２から命令を読み出し、実行する。
【００４８】
割り込み発生時には、中央処理装置２は、０００００００Ｈ−０１０００００Ｈ番地に格納されている割り込み処理ルーチンに分岐し、割り込み処理ルーチンの実行を開始する。図２に示すように、この領域には命令ＲＡＭ１２が割り付けられており、中央処理装置２は命令ＲＡＭ１２から命令を読み出し、割り込み処理ルーチンを実行する。
【００４９】
以上に述べた通常のメモリマップにおいては、中央処理装置２は、リセット直後に、命令ＲＡＭ１２からリセットルーチンを読み出し、その実行を開始する。
【００５０】
しかしながら、電源立ち上げ直後は命令ＲＡＭ１２の内容が不定であるので、そのままリセット処理を実行できない場合がある。このため、命令ＲＡＭ１２の初期化を行うために、次に述べるように、「命令ＲＡＭ初期化用メモリマップ」が用意されている。
【００５１】
以下、命令ＲＡＭ初期化用メモリマップ時におけるマイクロコンピュータ１の動作を説明する。
【００５２】
命令ＲＡＭ初期化用メモリマップ時においては、メモリ空間には、図２に示すように、外部メモリ１５及び命令ＲＡＭ１２が割り付けられている。命令ＲＡＭ１２は０１０００００Ｈ−０２０００００Ｈ番地にあり、外部メモリ１５は０００００００Ｈ−０１０００００Ｈ番地及び０２０００００Ｈ以降の番地にある。
【００５３】
リセット解除時においては、中央処理装置２は、０００００００Ｈ番地から命令実行を開始する。０００００００Ｈ番地には外部メモリ１５が割り付けられているため、中央処理装置２は外部メモリ１５から命令を読み出し、実行する。
【００５４】
初期化のルーチン実行時においては、マイクロコンピュータ１は、通常メモリマップ時において通常の命令実行時の外部メモリ１５上の命令を実行する場合と同様に動作する。すなわち、中央処理装置２は、上述のように、外部メモリ１５または命令ＲＡＭ１２に格納されたプログラムを実行する。
【００５５】
次いで、上で説明した命令ＲＡＭ初期化用メモリマップを用いた命令ＲＡＭ１２の初期化作業を図３のフローチャートを用いて説明する。
【００５６】
なお、外部メモリ１５には以下のプログラムが格納されているものとする。
（１）リセット・割り込みベクタテーブル
（２）初期化ルーチン
（３）命令ＲＡＭ１２へ転送するデータ（リセット・割り込みベクタ）
（４）命令ＲＡＭ１２へ転送するデータ（割込みルーチン）
（５）制御プログラム・データ（０２０００００Ｈ番地以降）
また、ステップ１００、１０１、１０３、１０４、１０５におけるリセット及び外部端子８の操作は外部の制御機器（図示せず）によって行われるものとする。
【００５７】
電源投入後、ステップ１００において、外部端子８を操作し「命令ＲＡＭ初期化用メモリマップ」を指定する。
【００５８】
次いで、ステップ１０１に進み、リセットを解除する。
【００５９】
次いで、ステップ１０２において、中央処理装置２は外部メモリ１５から命令を読み出し、命令実行を開始する。すなわち、上記（１）、（２）の順にプログラムを実行し、初期化ルーチンにおいて、命令ＲＡＭ１２が配置された０１０００００Ｈ−０２０００００Ｈ番地に外部メモリ１５からプログラム（３）及び（４）を転送する。
【００６０】
プログラム（３）及び（４）の転送完了後、ステップ１０３に進み、一旦リセット状態とする。
【００６１】
次いで、ステップ１０４において、外部端子８を操作し、「通常メモリマップ」を指定する。
【００６２】
その後、ステップ１０５に進み、リセットを解除する。
【００６３】
次いで、ステップ１０６において、中央処理装置２は命令ＲＡＭ１２から命令を読み出し、命令の実行を開始する。すなわち、ステップ１０２において転送した（３）リセット・割り込みベクタ、外部メモリ１５上の（５）制御プログラムの順にプログラムを実行する。
【００６４】
割り込み発生時においては、命令ＲＡＭ１２上の（３）、（４）の順に割り込み処理を実行する。
【００６５】
以上のように、本実施形態に係るマイクロコンピュータ１によれば、命令ＲＡＭ１２は命令キャッシュ７と異なり、ミスヒットが発生しないので、割り込み処理を短時間、かつ、一定時間内に実行することができ、ひいては、リアルタイム応答性に優れたマイクロコンピュータを実現することができる。
【００６６】
また、特開平３−３３９５５号公報に記載されているキャッシュメモリコントローラにおいては、特定の格納データの追い出しを行うため、キャッシュヒットの判定を行う必要があり、そのために、１システムクロックを必要としていたが、本実施形態に係るマイクロコンピュータ１における命令ＲＡＭ１２は、一旦格納したデータの追い出しは行わないため、キャッシュヒットの判定を行う必要もない。従って、中央処理装置２は、上記公報に記載のキャッシュメモリコントローラよりも高速に命令を取り込むことが可能である。
【００６７】
さらに、特開平３−３３９５５号公報に記載されているキャッシュメモリコントローラにおいては、優先順位の高いデータで命令キャッシュが満たされると、プログラム全体のヒット率が低下するという問題があったが、本実施形態に係るマイクロコンピュータ１は命令キャッシュ７がデータで満たされても、命令ＲＡＭ１２を介して中央処理装置２に命令が伝達されるので、プログラム全体のヒット率が低下するという問題を解決することが可能である。
【００６８】
以下、第二の実施形態に係るマイクロコンピュータを説明する。
【００６９】
第二の実施形態においては、外部端子８の操作は中央処理装置２の実行中でも受け付けられるようになっている。
【００７０】
この第二の実施形態によれば、上述の第一の実施形態において外部端子１３を操作するために行なっていた初期化終了後のステップ１０３におけるリセット入力と、ステップ１０４におけるリセット解除とが不要となり、マイクロコンピュータの立ち上げ時間を短縮することができる。
【００７１】
次いで、以下、第三の実施形態に係るマイクロコンピュータを説明する。
【００７２】
第三の実施形態における中央処理装置２には内部レジスタが設けられている。上述の第一の実施形態においては、メモリマップの切り替えは外部端子１３を介して行っていたが、本実施形態においては、このメモリマップの切り替えは内部レジスタにより行われる。
【００７３】
例えば、リセット解除後の内部レジスタの初期値は「命令ＲＡＭ初期化用メモリマップ」を指定するものとし、第一の実施形態と同様に初期化作業を終了した後に、内部レジスタを操作し、「通常メモリマップ」を指定する。
【００７４】
この第三の実施形態によれば、リセット期間中に行なっていたステップ１０１及び１０４における外部端子１３の操作が不要となるため、マイクロコンピュータの立ち上げ時間を短縮し、かつ、マイクロコンピュータの構成を簡略化することができる。
【００７５】
【発明の効果】
以上説明したように、本発明は、以下に記載するような効果を奏する。
【００７６】
第１の効果は、リアルタイム制御において高速応答を要求される割り込み処理プログラムを命令ＲＡＭに格納することにより、常に最小の割り込み応答時間を実現できることである。
【００７７】
第２の効果は、命令ＲＡＭへの書込みをメモリマップの切り替えにより行なうため、命令ＲＡＭは専用の環境を必要とせずに高速で容易にプログラムの書き換えができることである。
【００７８】
第３の効果は、高速応答を必要とするプログラム以外にも頻繁にアクセスするプログラムを命令ＲＡＭに格納することにより、命令キャッシュの使用頻度を下げることができ、ひいては、大きな面積を必要とする命令キャッシュの容量を押さえることができることである。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るマイクロコンピュータのブロック図である。
【図２】二つのメモリマップの内容を示す概略図である。
【図３】命令ＲＡＭの初期化作業のフローチャートである。
【図４】従来のマイクロコンピュータのブロック図である。
【符号の説明】
１  マイクロコンピュータ
２  中央処理装置
３  データバス
４  バスコントローラ
５  命令バス
６  第一接続バス
７  命令キャッシュ
８  内部バス
９  メモリコントローラ
１０  第二接続バス
１１  第三接続バス
１２  命令ＲＡＭ
１３  接続端子
１４  外部バス
１５  外部メモリ
【図１】
0004034032.tif 000002
【図２】
0004034032.tif 000003
【図３】
0004034032.tif 000004
【図４】
0004034032.tif 000005