(57)【要約】【課題】ハードリアルタイムが要求される優先度の高いタスクの実行のリアルタイム性の確保を行なうメモリ切り替え回路を提供する。【解決手段】マイクロプロセッサ１、キャッシュコントローラ３、キャッシュメモリ４、およびメインメモリ２から構成されるマイクロプロセッサ回路において、ローカルメモリ１４と、タスク切替ビット１１と、タスク切替ビット１１の出力によりローカルメモリ１４とキャッシュコントローラ３のバスを切り替えるバス切替部１３と、アドレス信号とタスク切替ビット１１の出力とによりローカルメモリ１４へのアドレスを生成するアドレス生成部１２と、タスク切替ビット１１の出力とアドレスバスからのアドレス信号とマイクロプロセッサ１からの読み書きを制御するためのストローブ信号とにより、タスク切替ビット１１のセレクト信号とローカルメモリ１４のセレクト信号を生成するデコーダ部１５とを備える。【選択図】　　　　　図１
2004127031.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサ、キャッシュコントローラ、キャッシュメモリ、およびメインメモリから構成されるマイクロプロセッサ回路において、
パイプライン処理を乱れを生じないで実行できるアクセススピードを有し、かつ切り替えが必要な優先度の高いタスクとそのタスクのデータ領域を格納するのに十分な容量を持つローカルメモリと、
前記マイクロプロセッサからデータバスを通して任意に値を設定でき、タスクの切替の決定に使われるタスク切替ビットと、
前記マイクロプロセッサからのデータバスと前記ローカルメモリのデータバスと前記キャッシュコントローラからのデータバスに接続され、前記タスク切替ビットの出力により前記ローカルメモリと前記キャッシュコントローラのバスを切り替えるバス切替部と、
前記マイクロプロセッサに接続されたアドレスバスからのアドレス信号と前記タスク切替ビットの出力とにより、前記ローカルメモリへのアドレスを生成するアドレス生成部と、
前記タスク切替ビットの出力と前記アドレスバスからのアドレス信号と前記マイクロプロセッサからの読み書きを制御するためのストローブ信号とにより、前記タスク切替ビットのセレクト信号と前記ローカルメモリのセレクト信号を生成するデコーダ部と
を備えたことを特徴とするメモリ切り替え回路。
【請求項２】
マイクロプロセッサ、キャッシュコントローラ、キャッシュメモリ、およびメインメモリから構成されるマイクロプロセッサ回路において、
パイプライン処理に乱れを生じないで実行できるアクセススピードを有し、かつ切り替えが必要な優先度の高いタスクとそのタスクのデータ領域を格納するのに十分な容量を持つローカルメモリと、
前記マイクロプロセッサからデータバスを通して任意に値を設定でき、タスクの切替の判定に使われるタスクテーブルと、
前記タスクテーブルの出力と前記マイクロプロセッサに接続されたアドレスバスからのアドレス信号との比較を行ないタスクの切替の判定を行なうタスク検出部と、
前記マイクロプロセッサからのデータバスと前記ローカルメモリのデータバスと前記キャッシュコントローラからのデータバスに接続され、前記タスク検出部の出力により前記ローカルメモリと前記キャッシュコントローラのバスを切り替えるバス切替部と、
前記アドレスバスと前記タスクテーブルの出力と前記タスク検出部の出力により、前記ローカルメモリへのアドレスを生成するアドレス生成部と、
前記タスク検出部の出力と前記アドレスバスからのアドレス信号と前記マイクロプロセッサからの読み書きを制御するためのストローブ信号とにより、前記タスクテーブルのセレクト信号と前記ローカルメモリのセレクト信号を生成するデコーダ部と
を備えたことを特徴とする、メモリ切り替え回路。
【請求項３】
前記タスクテーブルは、切り替えを行なうタスクもしくはそのタスクのデータ領域のベースアドレスとサイズのペアを一つの項目とし、複数の項目を持つことを特徴とする請求項２に記載のメモリ切り替え回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マイクロプロセッサ回路、特にキャッシュを利用したメモリ階層構造をとるマイクロプロセッサ回路のメモリ切り替え回路に関する。
【０００２】
【従来の技術】
マイクロプロセッサ回路の技術として、マイクロプロセッサとメモリだけの構成である図５を用いて、マイクロプロセッサが命令の読み込み等、メモリアクセスを行なうことで生じる問題点を説明する。このような構成は、組み込みシステムでマイクロプロセッサを利用する場合には良く見掛けられる構成である。
マイクロプロセッサはスループットの改善のために、内部処理をブロック化（これをステージと呼ぶ）し、そのステージを並列に動作させる回路構成をとる。この回路構成をパイプラインと呼ぶ。例えば、命令読み込み、命令デコード、演算、メモリへの結果の書出しという４つのステージから構成されるパイプラインでは、命令の読み込み、命令デコード、演算、メモリへの結果の書出しを並行に行なえるため、スループットの改善になる。パイプライン構成でない場合には、これらの処理がシーケンシャルに行なわれるため、単純計算で４倍の時間がかかる。
【０００３】
図５の構成において、マイクロプロセッサ１と主記憶であるメインメモリ２とのアクセススピードの差が大きい場合には、メインメモリ２からの命令の取り込みやデータの読み書きのために、マイクロプロセッサ１においてはパイプラインにインターロックが発生する。そのため、パイプラインにストール（乱れ）を生じ、各ステージの実行をクロック毎に行なえなくなるため、スループットが低下する。実際にはマイクロプロセッサ１に比べてメインメモリ２の処理速度は遅いため、メモリアクセスの際にはパイプラインストールを生じやすい。
【０００４】
スループットの低下を改善するメモリの階層構造について図６に例を挙げて説明する。マイクロプロセッサ１と主記憶であるメインメモリ２との間にキャッシュコントローラ３が接続される。キャッシュコントローラ３には、比較的容量が少ないが、メインメモリ２に比べ高速なキャッシュメモリ４が接続される。最近アクセスしたデータは、キャッシュコントローラ３によりキャッシュメモリ４に取り込まれている。この際、キャッシュコントローラ３はそのデータのみでなく、ラインと呼ばれる一定のブロックでデータの取り込みを行なう。マイクロプロセッサ１が同じデータにアクセスする場合、キャッシュコントローラ３はメインメモリ２のデータではなく、キャッシュメモリ４のデータを提示する。これを、キャッシュにヒットしているという。ここで、キャッシュメモリ４はマイクロプロセッサ１のパイプランがインターロックを生じないような、高速なアクセススピードのメモリを用いる。そのため、キャッシュメモリ４にデータがヒットしている間は、パイプラインのスピードにキャッシュメモリのアクセスが追いつくのでパイプランストールが生じず、スループットを維持することができる。
【０００５】
キャッシュメモリ４は命令やデータがアクセスされる際の性質である、空間的局所性と時間的局所性を利用している。命令は連続したアドレスに配置されるため空間的局所性を持ち、データは短い時間の間にアクセスされる傾向にあるため時間的局所性を持つ。この局所性を利用して、よくアクセスされる命令やデータをキャッシュメモリ４に蓄え、マイクロプロセッサ１へ高速に提示する。
上記の性質から、キャッシュメモリはＵＮＩＸ（登録商標）のプロセスのように、比較的長い間マイクロプロセッサを占有するプログラムに対し相性が良い。そのため、単一プロセスのスループットの改善がシステム全体のパフォーマンスの向上につながる。
【０００６】
【特許文献１】
特開平５−２００５９号公報
【特許文献２】
特開平５−３２４４７３号公報
【特許文献３】
特開平６−１１９２４１号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、リアルタイムシステムでは、短い時間でタスクの切り替えが生じ、空間的局所性や時間的局所性を満足しない状況が比較的生じ易い。そのため、キャッシュミスによるラインのリプレースが頻繁に生じることになり、パイプラインのストールを生じさせパフォーマンスの低下を引き起こす。
特に、ハードリアルタイムを要求される定周期タスクが影響を受けやすく、ハードリアルタイムを満足しない要因となる。さらに、要求される時間内に、演算を行なわなければならないリアルタイムシステムでは、タスクの実行時間の予測が不可欠である。キャッシュメモリを用いたリアルタイムシステムでは、上記のような理由により実行時間の変動があるため、実行時間の予測が困難である。
【０００８】
これを改善する方法として、例えば図７に示すようにキャッシュのライン３３やラインを示すタグ３２に加えて、ラインをロックするためのロックビット３１を加えることが行なわれる。ロックビット３１が有効なラインはキャッシュのリプレースの対象とならず、常にキャッシュにデータが存在する。
しかし、この図７に示す方法では、無駄な命令やデータがキャッシュに蓄えられること、そして、実効的なキャッシュメモリの領域が減少することなど、種々の問題をもつ。
【０００９】
一方、キャッシュメモリの有効利用およびプログラム処理速度の向上を図るために、例えば特許文献１には、プログラムを記憶するメインメモリと、プログラムの一部を記憶するキャッシュメモリと、初期化の際にプログラムの一部をキャッシュメモリに書き込む書き込み制御手段と、キャッシュメモリのプログラムを優先的に実行させる制御手段とを備えたマイクロプロセッサが開示されている。
【００１０】
また特許文献２には、キャッシュメモリを、ダイレクトマップ方式の１次キャッシュメモリと小規模なダイレクトマップ方式の２次キャッシュメモリとで構成し、１次キャッシュメモリと２次キャッシュメモリの内容に重複がないように制御することで、小面積で高速なマイクロプロセッサの実現を図っている。
【００１１】
特許文献３には、ＣＰＵとローカルメモリとの中間にキャッシュメモリを有するマイクロプロセッサにおいて、ローカルメモリには、命令コード格納エリアと、データエリア内にシステム運用中に書き換えられることのない固定データが格納された特定セグメントとを設けると共に、命令コード格納エリアと特定セグメントがＣＰＵによってアクセスされたときのみキャッシュイネーブル信号を送出するキャッシュ制御部を設け、ＣＰＵが命令フェッチまたは固定データ読込みのためにローカルメモリにアクセスしたときに、キャッシュイネーブル信号によって当該アドレスの内容がキャッシュメモリに書き込まれるようにしたキャッシュメモリ制御方式が開示されている。
【００１２】
しかしながら、このような従来の技術においては、次のような問題があった。
特許文献１に記載されたマイクロプロセッサでは、例えば優先度が高いなど、ある特定のタスクをキャッシュメモリに留めておくことはできるが、そのことにより実際のキャッシュメモリ容量が減ることにつながる。これは、キャッシュメモリに留めておくタスク以外は、キャッシュメモリの効果を受けることが少なくなり、システムのパフォーマンスが低下するという問題がある。　特許文献２に記載されたマイクロプロセッサは、例えば優先度が高いなど、ある特定のタスクをキャッシュメモリに留めておくのが困難となる。そのため、ある特定のタスクが必要なときに、キャッシュミスが発生する可能性が高く、パフォーマンスの低下を招くという問題がある。
特許文献３に記載されたマイクロプロセッサは、メモリ上のある特定の領域をキャッシュメモリに留めておくもので、例えば優先度が高いなど、ある特定のタスクをキャッシュメモリに留めておくのは困難となる。そのため、ある特定のタスクが必要なときに、キャッシュミスが発生する可能性が高く、パフォーマンスの低下を招くという問題がある。また、キャッシュメモリが有効でない領域については、パフォーマンスの低下を招くという問題がある。
【００１３】
そこで本発明は、マイクロプロセッサとキャッシュとメインメモリから構成されるマイクロプロセッサ回路において、ハードリアルタイムが要求される優先度の高いタスクの実行のリアルタイム性の確保を行なうと同時に、優先度の低いタスクについては平均的なスループットを向上させ、トータルとしてシステムのパフォーマンスを改善できるメモリ切り替え回路を提供することを目的とし、併せて、優先度の高い定周期タスクに対して、静的に予測した実行時間の精度を上げることも目的とする。
【００１４】
【課題を解決するための手段】
上記課題を解決するため、本発明の第１の構成は、マイクロプロセッサ、キャッシュコントローラ、キャッシュメモリ、およびメインメモリから構成されるマイクロプロセッサ回路において、パイプライン処理を乱れを生じないで実行できるアクセススピードを有し、かつ切り替えが必要な優先度の高いタスクとそのタスクのデータ領域を格納するのに十分な容量を持つローカルメモリと、前記マイクロプロセッサからデータバスを通して任意に値を設定でき、タスクの切替の決定に使われるタスク切替ビットと、前記マイクロプロセッサからのデータバスと前記ローカルメモリのデータバスと前記キャッシュコントローラからのデータバスに接続され、前記タスク切替ビットの出力により前記ローカルメモリと前記キャッシュコントローラのバスを切り替えるバス切替部と、前記マイクロプロセッサに接続されたアドレスバスからのアドレス信号と前記タスク切替ビットの出力とにより、前記ローカルメモリへのアドレスを生成するアドレス生成部と、前記タスク切替ビットの出力と前記アドレスバスからのアドレス信号と前記マイクロプロセッサからの読み書きを制御するためのストローブ信号とにより、前記タスク切替ビットのセレクト信号と前記ローカルメモリのセレクト信号を生成するデコーダ部とを備えたものである。
この第１の構成においては、優先度の高いタスクの切り替えの前／後で、ローカルメモリを選択するようにタスク切替ビットをプログラムで設定／解除を行なうことで、ローカルメモリ上で優先度の高いタスクを実行させ、ハードリアルタイムを満足することができる。さらに、変動要因が排除できるため、正確な実行時間の予測を行なうことができる。
【００１５】
本発明の第２の構成は、マイクロプロセッサ、キャッシュコントローラ、キャッシュメモリ、およびメインメモリから構成されるマイクロプロセッサ回路において、パイプライン処理に乱れを生じないで実行できるアクセススピードを有し、かつ切り替えが必要な優先度の高いタスクとそのタスクのデータ領域を格納するのに十分な容量を持つローカルメモリと、前記マイクロプロセッサからデータバスを通して任意に値を設定でき、タスクの切替の判定に使われるタスクテーブルと、前記タスクテーブルの出力と前記マイクロプロセッサに接続されたアドレスバスからのアドレス信号との比較を行ないタスクの切替の判定を行なうタスク検出部と、前記マイクロプロセッサからのデータバスと前記ローカルメモリのデータバスと前記キャッシュコントローラからのデータバスに接続され、前記タスク検出部の出力により前記ローカルメモリと前記キャッシュコントローラのバスを切り替えるバス切替部と、前記アドレスバスと前記タスクテーブルの出力と前記タスク検出部の出力により、前記ローカルメモリへのアドレスを生成するアドレス生成部と、前記タスク検出部の出力と前記アドレスバスからのアドレス信号と前記マイクロプロセッサからの読み書きを制御するためのストローブ信号とにより、前記タスクテーブルのセレクト信号と前記ローカルメモリのセレクト信号を生成するデコーダ部とを備えたものである。
この第２の構成によれば、ローカルメモリ上で動作させたい優先度の高いタスクをタスクテーブルに設定することで、タスク切替判定部では、このタスクテーブルとプロセッサの生成するアドレスを比較することにより、ローカルメモリを選択するタスクの判定を行なうことにより、自動的にローカルメモリ上で優先度の高いタスクを実行させ、ハードリアルタイムを満足することができる。さらに、変動要因が排除できるため、正確な実行時間の予測を行なうことができる。
【００１６】
本発明の第３の構成は、第２の構成のタスクテーブルを、切り替えを行なうタスクもしくはそのタスクのデータ領域のベースアドレスとサイズのペアを一つの項目とし、複数の項目を持つようにしたものである。
この第３の構成によれば、複数の優先度の高いタスクを取り扱うことができるので、第２の構成の効果を複数のタスクに適用できるため、さらに厳しい要求のハードリアルタイムを満足することができる。さらに、複数のタスクの変動要因が排除できるため、さらに正確な実行時間の予測を行なうことができる。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図１〜図４を用いて説明する。
＜第１実施形態＞
図１は本発明の第１実施形態を示すものである。
この第１実施形態に係るメモリ切り替え回路は、マイクロプロセッサ１、メインメモリ２、キャッシュコントローラ３、キャッシュメモリ４から構成されるマイクロプロセッサ回路において、パイプライン処理を乱れを生じないで実行できるアクセススピードを有し、かつ切り替えが必要な優先度の高いタスクとそのタスクのデータ領域を格納するのに十分な容量を持つローカルメモリ１４と、マイクロプロセッサ１からデータバスＳ２を通して任意に値を設定でき、タスクの切替の決定に使われるタスク切替ビット１１と、マイクロプロセッサ１からのデータバスＳ２とローカルメモリ１４のデータバスＳ１３とキャッシュコントローラ３からのデータバスＳ１４に接続され、データバスＳ１１からのタスク切替ビット１１の出力によりローカルメモリ１４とキャッシュコントローラ３のバスＳ１３，Ｓ１４を切り替えるバス切替部１３と、マイクロプロセッサ１に接続されたアドレスバスＳ１からのアドレス信号とタスク切替ビット１３の出力とにより、ローカルメモリ１４へのアドレスを生成するアドレス生成部１２と、タスク切替ビット１１の出力とアドレスバスＳ１からのアドレス信号とマイクロプロセッサ１からの読み書きを制御するためのストローブ信号とにより、タスク切替ビット１１のセレクト信号とローカルメモリ１４のセレクト信号を生成するデコーダ部１５とを備えている。
【００１８】
次に、この構成の回路の動作について説明する。
ローカルメモリ１４上で優先度の高いタスクを動作させるためには、システムの初期化時にメインメモリ２上に存在するタスクをローカルメモリ１４へコピーする。ローカルメモリ１４へのコピーはマイクロプロセッサ１がメインメモリ２上のタスクプログラムをデータとして読み出すことから始まる。この読み出したデータをローカルメモリ１４に書き込むには、タスク切替ビット１１を１にセットする。
マイクロプロセッサ１がタスク切替ビット１１にアクセスするには、アドレスバスＳ１を通してタスク切替ビット１１がマップされているアドレスと、ストローブバスＳ３を通して読み書きを示すストローブ信号とを、マイクロプロセッサ１が出力する。デコーダ部１５は、このアドレスバスＳ１とストローブバスＳ３の情報を元にタスク切替ビットセレクト信号Ｓ１５を生成し、タスク切替ビット１１にアクセスする。ストローブバスＳ３が書き込みを示す場合、タスク切替ビット１１はデータバスＳ２から与えられる値を設定でき、読み込みを示す場合、設定されている値をデータバスＳ２を通して確認できる。
【００１９】
本実施形態では、タスク切替ビット１１の内容を１にセットした場合には、ローカルメモリ１４を選択するものとして説明を行なう。タスク切替ビット１１の出力Ｓ１１は、バス切替部１３、アドレス生成部１２とデコーダ部１５に接続されており、タスク切替ビット１１の出力が１の場合ローカルメモリ１４を選択するように、バス切替部１３はデータバスＳ２とローカルメモリデータバスＳ１３を接続し、アドレス生成部１２はアドレスバスＳ１を元にローカルメモリ１４に与えるアドレスを生成し、アドレスバスＳ１２に出力する。
デコーダ部１５はローカルメモリセレクト信号Ｓ１６を生成する。これにより、メインメモリ２から読み込まれたデータを、ローカルメモリ１４に書き込むことができる。この動作をタスクのサイズだけ繰り返した後、タスク切替ビット１１を０にリセットし、初期化を完了する。タスク切替ビット１１が０にリセットされている場合、バス切替部１３はデータバスＳ２とキャッシュコントローラ３とのデータバスＳ１４を接続する。しかし、デコーダ部１５とアドレス生成部１２は動作しない。
【００２０】
初期化後、最初のタスクが生成されシステムが動き出す。あるイベントによりこのローカルメモリ１４にコピーしたタスクがスケジューリングされ起動される前にタスク切替ビット１１の出力を１にセットすることで、ローカルメモリ１４からタスクが読み込まれ実行されるようになる。これにより、パイプラインを乱すことなくこのタスクの実行が行なえるため、ハードリアルタイムを満足することができるようになるのである。このタスクが処理を終え待ちに入る場合、スケジュールの前にタスク切替ビット１１の出力を０にリセットし、メインメモリ２もしくはキャッシュコントローラ３を通してキャッシュメモリ４から新たなタスクを読み込めるようにする。
【００２１】
＜第２実施形態＞
図２は本発明の第２実施形態を示すものである。
本実施形態に係るメモリ切り替え回路は、マイクロプロセッサ１、メインメモリ２、キャッシュコントローラ３、キャッシュメモリ４から構成されるマイクロプロセッサ回路において、パイプライン処理に乱れを生じないで実行できるアクセススピードを有し、かつ切り替えが必要な優先度の高いタスクとそのタスクのデータ領域を格納するのに十分な容量を持つローカルメモリ１４と、マイクロプロセッサ１からデータバスＳ２を通して任意に値を設定でき、タスクの切替の判定に使われるタスクテーブル１１２と、タスクテーブル１１２の出力とマイクロプロセッサ１に接続されたアドレスバスＳ１からのアドレス信号との比較を行ないタスクの切替の判定を行なうタスク検出部１１１と、マイクロプロセッサ１からのデータバスＳ２とローカルメモリ１４のデータバスＳ１３とキャッシュコントローラ３からのデータバスＳ１４に接続され、タスク検出部１１１の出力によりローカルメモリ１４とキャッシュコントローラ３のバスＳ１３，Ｓ１４を切り替えるバス切替部１３と、アドレスバスＳ１とタスクテーブル１１２の出力とタスク検出部１１１の出力により、ローカルメモリ１４へのアドレスを生成するアドレス生成部１２と、タスク検出部１１１の出力とアドレスバスＳ１からのアドレス信号とマイクロプロセッサ１からの読み書きを制御するためのストローブ信号Ｓ３とにより、タスクテーブル１１２のセレクト信号とローカルメモリ１４のセレクト信号を生成するデコーダ部１５とを備えている。
【００２２】
次に、この第２実施形態の動作について説明する。
第２実施形態でも、ローカルメモリ１４上で優先度の高いタスクを動作させるためには、図１に示した第１実施形態の場合と同じく、システムの初期化時にメインメモリ２上に存在するタスクをローカルメモリ１４にコピーする。タスクテーブル１１２には、優先度が高いためローカルメモリ１４で動作させたいタスクのスタートアドレスを設定する。
マイクロプロセッサ１がタスクテーブル１１２にアクセスするには、アドレスバスＳ１を通してタスクテーブル１１２がマップされているアドレスを、ストローブバスＳ３を通して読み書きを示すストローブ信号を、それぞれマイクロプロセッサ１が出力する。デコーダ部１５は、このアドレスバスＳ１とストローブバスＳ３の情報を元に、タスクテーブルセレクト信号Ｓ１５を生成し、タスクテーブル１１２にアクセスできる。
【００２３】
ストローブバスＳ３のストローブ信号が書き込みを示す場合、データバスＳ２から与えられる値を設定でき、読み込みを示す場合、設定されている値をデータバスを通して確認できる。第１実施形態の場合と同じような手順で、データを読み、次にタスクテーブル１１２を設定し、ローカルメモリ１４に書き込み、書き込み後にタスクテーブル１１２の再設定を行なうことで初期化が行なえるが、これは手順として煩雑である。より効率的に行なうには、タスクテーブル１１２をメモリ等のリソースがマップされてない空間に設定する。ローカルメモリ１４へのコピーはマイクロプロセッサ１がメインメモリ２上のタスクプログラムをデータとして読み出す。この読み出したデータをローカルメモリ１４に書き込むには、タスクテーブル１１２に設定したアドレスをベースとする。
ここで、タスク検出部１１１では、アドレスバスＳ１とタスクテーブル１１２の出力Ｓ１７を利用して、
タスクテーブル１１２の値≦アドレス＜タスクテーブルの値＋ローカルメモリ１４のサイズ
の判定を行ない、目的のタスクを検出する。本実施形態では目的のタスクを検出した場合にタスク検出部は１を出力し、この時にはローカルメモリ１４を選択するものとして説明を行なう。
【００２４】
タスク検出部１１１の出力Ｓ１１はバス切替部１３、アドレス生成部１２、およびデコーダ部１５に接続されており、タスク検出部１１１の出力が１の場合、ローカルメモリ１４を選択するように、バス切替部１３はデータバスＳ２とローカルメモリデータバスＳ１３を接続し、アドレス生成部１２はタスクテーブル１１２の出力とアドレスバスＳ１のアドレス信号を元に、ローカルメモリ１４に与えるアドレスを生成し、アドレスバスＳ１２に出力する。デコーダ部１５はローカルメモリセレクト信号Ｓ１６を生成する。これにより、メインメモリ２から読み込まれたデータを、ローカルメモリ１４へ書き込むことができる。
このメインメモリ２からの読み出し、ローカルメモリ１４への書き込みを、タスクのサイズだけ繰り返し、ローカルメモリ１４にタスクをコピーした後、タスクテーブル１１２を本来のタスクのベースアドレスに設定することで初期化が完了する。なお、タスク検出部１１１の出力が０である場合、バス切替部１３はデータバスＳ２とキャッシュコントローラ３とのデータバスＳ１４を接続する。しかし、デコーダ部１５とアドレス生成部１２は動作しない。
【００２５】
初期化後、最初のタスクが生成されシステムが動き出す。あるイベントによりこのローカルメモリ１４にコピーしたタスクがスケジューリングされ起動されるとき、ローカルメモリ１４からタスクが読み込まれ実行されるようになる。この場合、第１実施形態のようなタスクの読み込みの前で特別な命令を発行する必要がない。
すなわち、ローカルメモリ１４からタスクが読み込まれることから、パイプラインを乱すことなくこのタスクの実行が行なえるため、ハードリアルタイムを満足することができるようになるのである。このタスクが処理を終え待ちにはいる場合も、第１実施形態のような特別な命令を発行する必要がない。タスク検出部１１１の出力が０になるようなアドレスをマイクロプロセッサ１が生成する場合、メインメモリ２もしくはキャッシュコントローラ３を通してキャッシュメモリ４上のデータを読み込む。
【００２６】
＜第３実施形態＞
図３は、本発明の第３実施形態を示すもので、第２実施形態におけるタスクテーブル１１２を、タスクのベースアドレス１１２１とタスクのサイズ１１２２とをペアとする項目を複数個持つ構造にし、分散した複数の優先度の高いタスクをローカルメモリ１４上におけるようにしている。
図３のタスクテーブル１１２を利用したタスク検出部１１１の構成の一例を図４で説明する。タスクテーブル１１２はタスクのベースアドレス１１２１とタスクのサイズ１１２２をペアとする項目を複数個持つ構造になっている。このタスクテーブル１１２はデータバスＳ１とデコーダ部１５からのストローブ信号Ｓ２１，Ｓ２２，・・・，Ｓ２ｍ，Ｓ２ｎを利用して任意の時点でアクセスを行なえる。この例では、最初の項目としてタスクのベースアドレスに０ｘｆｆｆｆ００００がタスクのサイズとして０ｘ１０００が設定されている。タスク検出部１１１は、このタスクテーブル１１２の出力とアドレスバスＳ３０を利用してタスクの判定を行なう。
【００２７】
タスクのベースアドレスからの出力Ｓ３１とタスクのサイズからの出力Ｓ３２は、加算器２１を通りタスクの上限アドレスＳ３３となる。この上限アドレスＳ３３は第１比較器２２でアドレスバスを利用して［１］で示す比較を行なう。
アドレスバス＜上限アドレス　　　　　　・・・［１］
比較の結果［１］が成り立つ場合、第１比較器２２の出力Ｓ３４は１を出力し、それ以外は０を出力する。第２比較器２３では、タスクのベースアドレスからの出力とアドレスバスを利用して［２］で示す比較を行なう。
ベースアドレス≦アドレスバス　　　　　・・・［２］
判定の結果［２］が成り立つ場合、第２比較器２３の出力Ｓ３５は１を出力し、それ以外は０を出力する。論理積回路２４で、この第１比較器２２、第２比較器２３の出力の論理積を取ることにより、その出力Ｓ３６がタスクの判定結果となり、判定を行なうアドレスの範囲にアドレスバスの値があればタスクがあるとして１を出力する。それ以外は０を出力する。このタスクの判定はタスクテーブル１１２の項目分だけ並列に行なわれ、その論理積２４の出力は論理和回路２５により論理和がとられ、論理和回路２５の出力Ｓ１１がタスク検出部１１１の判定結果となる。
【００２８】
【発明の効果】
以上述べたように、本発明の第１の構成のメモリ切り替え回路によれば、タスク切替ビットを操作することにより、ローカルメモリ上で優先度の高いタスクを実行させることができるために、パイプラインストールやキャッシュミスによるオーバヘッドのような、実行時間を長くすると同時に不定期にする要因を排除することができる。このため、ハードリアルタイムのサイクルタイムを確実に守ることができる。さらに、変動要因が排除できるため、正確な実行時間の予測を行なうことができる。
【００２９】
本発明の第２の構成のメモリ切り替え回路によれば、タスクテーブルを設定することにより、自動的にローカルメモリ上で優先度の高いタスクを実行させることができるため、パイプラインストールやキャッシュミスによるオーバヘッドのような、実行時間を長くすると同時に不定期にする要因を排除することができる。このため、ハードリアルタイムのサイクルタイムを確実に守ることができる。そして、変動要因が排除できるため、正確な実行時間の予測を行なうことができる。さらに、初期化ブロックの一部を除き、タスクを実行させるオペレーティングシステムやアプリケーション等のソフトウエアの変更が必要ない。
【００３０】
本発明の第３の構成のメモリ切り替え回路によれば、タスクテーブルを、切り替えたいタスクのベースアドレスとサイズのペアを一つの項目とし、複数の項目を持つようにしたことにより、複数の優先度の高いタスクを取り扱うことができるので、第２の構成の効果を複数のタスクに適用できる。そのため、さらに厳しい要求のハードリアルタイムのサイクルタイムを確実に守ることができる。さらに、複数のタスクの変動要因が排除できるため、さらに正確な実行時間の予測を行なうことができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態の構成を示すブロック図である。
【図２】本発明の第２実施形態の構成を示すブロック図である。
【図３】本発明の第３実施形態におけるタスクテーブルの構成図である。
【図４】本発明の第３実施形態のタスクテーブルを利用したタスクの判定を示すブロック図である。
【図５】従来のキャッシュを利用しない回路の構成を示すブロック図である。
【図６】従来のキャッシュ回路の構成を示すブロック図である。
【図７】従来のキャッシュコントローラのラインの構成図である。
【符号の説明】
１：マイクロプロセッサ
２：メインメモリ
３：キャッシュコントローラ
４：キャッシュメモリ
１１：タスク切替ビット
１２：アドレス生成部
１３：バス切替部
１４：ローカルメモリ
１５：デコーダ部
１１１：タスク検出部
１１２：タスクテーブル
１１２：タスクテーブル
１１２１：タスクベースアドレス
１１２２：タスクサイズ
２１：加算器
２２：比較器
２３：比較器
２４：論理積回路
２５：論理和回路
３１：ロックビット
３２：タグ
３３：ラインデータ
Ｓ１：アドレスバス
Ｓ２：データバス
Ｓ３：ストローブバス
Ｓ１１：タスク切替ビット出力
Ｓ１２：ローカルメモリアドレスバス
Ｓ１３：ローカルメモリデータバス
Ｓ１４：キャッシュメモリデータバス
Ｓ１５：タスク切替ビットセレクト信号（タスクテーブルセレクト信号）
Ｓ１６：ローカルメモリセレクト信号
Ｓ１７：タスクテーブル出力
Ｓ２１〜Ｓ２ｎ：ストローブバス
Ｓ３１：タスクベースアドレス出力
Ｓ３２：タスクサイズ出力
Ｓ３３：加算器出力
Ｓ３４：比較器出力
Ｓ３５：比較器出力
Ｓ３６：論理積出力
【図１】
2004127031.tif 000003
【図２】
2004127031.tif 000004
【図３】
2004127031.tif 000005
【図４】
2004127031.tif 000006
【図５】
2004127031.tif 000007
【図６】
2004127031.tif 000008
【図７】
2004127031.tif 000009