(57)【要約】【課題】割り込み信号が発生されてからプロセッサが割り込み要因に対応する処理ルーチンをコールするまでのタイムラグ中に割り込み要因に対応する処理ルーチンをキュッシュに効率よくロードすることができる情報処理装置を実現する。【解決手段】ある割り込み要因（例えばＩＮＴ３）が発生した時、割り込み制御部１２１は、割り込み信号ＩＮＴを発生する。ＣＰＵ１１は割り込みハンドラの実行を開始する。キャッシュロード制御部１２３は、割り込み信号ＩＮＴの発生を検出すると、発生した割り込み信号に対応する割り込み要因に関連付けられたアドレスを用いて、キャッシュ制御部１２２にロード要求を発行する。これにより、割り込み要因弐対応する処理ルーチンの命令群をメモリ１３からキャッシュ２０２にロードする処理が、割り込みハンドラによる処理と並行して実行される。【選択図】図１
2009258984.tif 000002
【特許請求の範囲】
【請求項１】
割り込み信号の受信に応答して、前記割り込み信号の割り込み要因を特定する処理を実行した後に前記特定された割り込み要因に対応する処理ルーチンをコールするプロセッサと、
複数の割り込み要因のいずれかが発生したことに応答して、前記プロセッサに対して前記割り込み信号を発生する割り込み制御部と、
メモリに格納されている命令群の一部を格納するキャッシュと、
前記複数の割り込み要因に関連付けて、前記複数の割り込み要因に対応する複数の処理ルーチンが格納されている前記メモリ上のメモリ領域をそれぞれ示す複数のアドレスを格納するアドレス記憶部と、
前記割り込み信号が発生した場合、前記複数のアドレスの中から前記発生した割り込み信号に対応する割り込み要因に関連付けられたアドレスを選択し、前記選択したアドレスに基づいて、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを構成する命令群を前記メモリから前記キャッシュにロードするロード制御手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記プロセッサは割り込みハンドラを格納したローカル記憶部を含み、前記プロセッサは、前記割り込み信号の発生に応答して前記割り込みハンドラを実行することによって、前記発生した割り込み信号の割り込み要因を特定する処理と、前記特定された割り込み要因に対応する処理ルーチンを前記メモリからリードするためのメモリリード要求を発行する処理とを実行することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ローカル記憶部および前記メモリは前記プロセッサのメモリアドレス空間にマッピングされており、前記ローカル記憶部はスタティックＲＡＭから構成され、前記メモリはダイナミックＲＡＭから構成されていることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記キャッシュは、前記キャッシュ内の複数のエントリのいずれを更新すべきかを決定するためのＬＲＵ制御情報を含み、
前記プロセッサが前記発生した割り込み信号の割り込み要因に対応する処理ルーチンから抜けるためのリターン命令を実行した場合、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを優先的に前記キャッシュから除去するために、前記ＬＲＵ制御情報を変更するＬＲＵ制御手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記アドレス記憶部は、前記複数の割り込み要因に関連付けて、前記複数の処理ルーチンそれぞれに対応する前記メモリ上の複数の変数領域をそれぞれ示す複数の変数領域アドレスをさらに格納しており、
前記ロード制御手段は、前記割り込み信号が発生した場合、前記発生した割り込み信号に対応する割り込み要因に対応する処理ルーチンを構成する命令群を前記メモリから前記キャッシュにロードする処理と、前記発生した割り込み信号に対応する割り込み要因に関連付けられた変数領域アドレスに基づいて前記発生した割り込み信号の割り込み要因に対応する処理ルーチンの変数領域を前記メモリから前記キャッシュにロードする処理とを実行することを特徴とする請求項１記載の情報処理装置。
【請求項６】
割り込み信号の受信に応答して、前記割り込み信号の割り込み要因を特定する処理を実行した後に前記特定された割り込み要因に対応する処理ルーチンをコールするプロセッサと、
複数の割り込み要因のいずれかが発生したことに応答して、前記プロセッサに対して前記割り込み信号を発生する割り込み制御部と、
前記プロセッサによって実行されるべき命令群を格納するメモリと、
前記メモリに格納されている命令群の一部を格納するキャッシュと、
前記複数の割り込み要因に関連付けて、前記複数の割り込み要因に対応する複数の処理ルーチンが格納されている前記メモリ上のメモリ領域をそれぞれ示す複数のアドレスを格納するアドレス記憶部と、
前記割り込み信号が発生した場合、前記発生した割り込み信号に対応する割り込み要因に関連付けられたアドレスに基づいて、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを構成する命令群を前記メモリから前記キャッシュにロードするロード制御手段とを具備することを特徴とする情報処理システム。
【請求項７】
前記プロセッサは割り込みハンドラを格納したローカル記憶部を含み、前記プロセッサは、前記割り込み信号の発生に応答して前記割り込みハンドラを実行することによって、前記発生した割り込み信号の割り込み要因を特定する処理と、前記特定された割り込み要因に対応する処理ルーチンを前記メモリからリードするためのメモリリード要求を発行する処理とを実行することを特徴とする請求項６記載の情報処理システム。
【請求項８】
前記キャッシュは、前記キャッシュ内の複数のエントリのいずれを更新すべきかを決定するためのＬＲＵ制御情報を含み、
前記プロセッサが前記発生した割り込み信号の割り込み要因に対応する処理ルーチンから抜けるためのリターン命令を実行した場合、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを優先的に前記キャッシュから除去するために、前記ＬＲＵ制御情報を変更するＬＲＵ制御手段をさらに具備することを特徴とする請求項６記載の情報処理システム。
【請求項９】
割り込み信号の受信に応答して前記割り込み信号の割り込み要因を特定する処理を実行した後に前記特定された割り込み要因に対応する処理ルーチンをコールするプロセッサによって実行されるべき命令を、メモリからキャッシュにロードするためのロード制御方法であって、
複数の割り込み要因のいずれかが発生したことに応答して、前記プロセッサに対して前記割り込み信号を発生するステップと、
前記割り込み信号が発生された場合、前記複数の割り込み要因に対応する複数の処理ルーチンが格納されている前記メモリ上のメモリ領域をそれぞれ示す複数のアドレスを保持するアドレステーブルを参照して、前記複数のアドレスの中から前記発生した割り込み信号に対応する割り込み要因に関連付けられたアドレスを選択し、前記選択したアドレスに基づいて、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを構成する命令群を前記メモリから前記キャッシュにロードするステップとを具備することを特徴とするロード制御方法。
【請求項１０】
前記プロセッサは割り込みハンドラを格納したローカル記憶部を含み、前記プロセッサは、前記割り込み信号の発生に応答して前記割り込みハンドラを実行して、前記発生した割り込み信号の割り込み要因を特定する処理と、前記特定された割り込み要因に対応する処理ルーチンを前記メモリからリードするためのメモリリード要求を発行する処理とを実行することを特徴とする請求項９記載のロード制御方法。
【請求項１１】
前記キャッシュは、前記キャッシュ内の複数のエントリのいずれを更新すべきかを決定するためのＬＲＵ制御情報を含み、
前記プロセッサが前記発生した割り込み信号の割り込み要因に対応する処理ルーチンから抜けるためのリターン命令を実行した場合、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを優先的に前記キャッシュから除去するために、前記ＬＲＵ制御情報を変更するステップをさらに具備することを特徴とする請求項１０記載のロード制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュを含む情報処理装置およびメモリからキュッシュに命令をロードするためのロード制御方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、ＰＤＡ、組み込みシステムといった、様々な情報処理装置が開発されている。
【０００３】
このような情報処理装置においては、通常、ダイナミックＲＡＭのようなメモリから命令をフェッチするためのレイテンシーによる処理性能の低下を防ぐために、キャッシュが設けられている。プロセッサからフェッチ要求された命令（コード）がキャッシュに存在すれば、その命令をキャッシュから即座にプロセッサに与えることが出来る。
【０００４】
しかし、プロセッサからフェッチ要求された命令（コード）がキャッシュに存在しない場合には、メモリから命令をリードすることが必要となり、これによって多くのレイテンシーが発生する。
【０００５】
特許文献１には、割り込み要求が発生した時に、割り込み処理ルーチンを外部記憶装置からキャッシュに読み込むことをキャッシュ制御装置に指示する割り込み制御装置が開示されている。この割り込み制御装置は、割り込み処理ルーチンがキャッシュに読み込まれるのを待ってから、割り込み信号を中央処理装置に送出する。
【特許文献１】特開２００１−３０６３３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の割り込み制御装置では、キャッシュ上に割り込み処理ルーチンの一部または全部が読み込まれた後に中央処理装置に割り込み信号を送出するという制御であるため、割り込み処理をリアルタイムに実行することが困難である。
【０００７】
また、特許文献１の割り込み制御装置では、中央処理装置に割り込み信号が送出されてから、中央処理装置が割り込み信号に対応する割り込み要因に対応する処理ルーチンをコールするまでのタイムラグについては考慮されていない。
【０００８】
複数の割り込み要因を有するシステムにおいては、割り込み要因に対応する処理ルーチンの実行に先立って、発生した割り込み信号に対応する割り込み要因を特定するための処理を実行することが必要である。よって、割り込み信号の発生タイミングを遅延させるという特許文献１の制御では、割り込み要因を特定するための処理の実行タイミングが遅れてしまい、割り込み処理をリアルタイムに実行することが困難となる。
【０００９】
本発明は上述の事情を考慮してなされたものであり、割り込み信号が発生されてからプロセッサが割り込み要因に対応する処理ルーチンをコールするまでのタイムラグ中に割り込み要因に対応する処理ルーチンをキュッシュに効率よくロードすることができる情報処理装置およびロード制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述の課題を解決するため、本発明の情報処理装置は、割り込み信号の受信に応答して、前記割り込み信号の割り込み要因を特定する処理を実行した後に前記特定された割り込み要因に対応する処理ルーチンをコールするプロセッサと、複数の割り込み要因のいずれかが発生したことに応答して、前記プロセッサに対して前記割り込み信号を発生する割り込み制御部と、メモリに格納されている命令群の一部を格納するキャッシュと、前記複数の割り込み要因に関連付けて、前記複数の割り込み要因に対応する複数の処理ルーチンが格納されている前記メモリ上のメモリ領域をそれぞれ示す複数のアドレスを格納するアドレス記憶部と、前記割り込み信号が発生した場合、前記複数のアドレスの中から前記発生した割り込み信号に対応する割り込み要因に関連付けられたアドレスを選択し、前記選択したアドレスに基づいて、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを構成する命令群を前記メモリから前記キャッシュにロードするロード制御手段とを具備することを特徴とする。
【００１１】
また、本発明は、割り込み信号の受信に応答して前記割り込み信号の割り込み要因を特定する処理を実行した後に前記特定された割り込み要因に対応する処理ルーチンをコールするプロセッサによって実行されるべき命令を、メモリからキャッシュにロードするためのロード制御方法であって、複数の割り込み要因のいずれかが発生したことに応答して、前記プロセッサに対して前記割り込み信号を発生するステップと、前記割り込み信号が発生された場合、前記複数の割り込み要因に対応する複数の処理ルーチンが格納されている前記メモリ上のメモリ領域をそれぞれ示す複数のアドレスを保持するアドレステーブルを参照して、前記複数のアドレスの中から前記発生した割り込み信号に対応する割り込み要因に関連付けられたアドレスを選択し、前記選択したアドレスに基づいて、前記発生した割り込み信号の割り込み要因に対応する処理ルーチンを構成する命令群を前記メモリから前記キャッシュにロードするステップとを具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、割り込み信号が発生されてからプロセッサが割り込み要因に対応する処理ルーチンをコールするまでのタイムラグ中に割り込み要因に対応する処理ルーチンをキュッシュに効率よくロードすることができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施形態を説明する。
【００１４】
まず、図１を参照して、本発明の一実施形態に係る情報処理装置の構成を説明する。この情報処理装置は、例えば、パーソナルコンピュータのようなコンピュータ、またはハードディスクドライブのような各種電子機器に内蔵される組み込みシステムとして使用される。この情報処理装置は、ＣＰＵ１１と制御回路１２とを備えている。
【００１５】
ＣＰＵ１１は各種プログラムを実行するプロセッサである。ＣＰＵ１１は、各種演算処理を実行すると共に、情報処理装置内の各デバイスまたは電子機器内の各デバイスを制御する。このＣＰＵ１１は割り込み信号ＩＮＴを受信するための割り込み信号入力端子を有している。ＣＰＵ１１は、割り込み信号ＩＮＴの受信に応答して、その割り込み信号ＩＮＴに対応する割り込み要因を特定する処理を実行した後に、特定された割り込み要因に対応する処理ルーチンをコールする。すなわち、本情報処理装置においては、複数の割り込み要因（メモリリードエラー（ＥＣＣエラー）、ホストまたは外部装置から送信されるコマンドの受信、タイマ、入力デバイス、通信デバイスといった各種デバイスそれぞれからの割り込み要求、等）がサポートされている。これら複数の割り込み要因のいずれかが発生された時、割り込み信号ＩＮＴがＣＰＵ１１に送信される。具体的には、割り込み信号ＩＮＴは、複数の割り込み要因のいずれかが発生された時にアクティブステートに設定される。
【００１６】
ＣＰＵ１１は、ローカルメモリ１１１を備えている。このローカルメモリ１１１は、例えば、ＣＰＵ１１内に内蔵されている。このローカルメモリ１１１は、例えば、スタティックＲＡＭから構成されている。このローカルメモリ１１１には、ＣＰＵ１１によって実行されるべき命令群の一部が格納されている。具体的には、割り込みハンドラのような、システム制御に密結合された処理ルーチンがローカルメモリ１１１に格納されている。割り込みハンドラは、ＣＰＵ１１への割り込み信号ＩＮＴが発生された時にＣＰＵ１１によって実行される処理ルーチン（プログラム）である。割り込み信号ＩＮＴが発生された時、ＣＰＵ１１は、割り込みハンドラを実行して、発生した割り込み信号ＩＮＴの割り込み要因を特定する処理と、特定された割り込み要因に対応する処理ルーチンをメモリ１３からリードするためのメモリリード要求を発行する処理とを実行する。
【００１７】
制御回路１２は、ＣＰＵ１１のローカルバス１０に接続されている。制御回路１２は、ＣＰＵ１１からのメモリアクセス要求に応じて外部メモリをアクセスするメモリ制御機能、およびＣＰＵ１１に割り込み信号ＩＮＴを送出するための割り込み制御機能等を有している。例えば、制御回路１２とＣＰＵ１１は、System on a Chip（ＳＯＣ）のような１チップマイクロコンピュータとして実現することができる。この１チップマイクロコンピュータが、本実施形態の情報処理装置のコア部として機能する。
【００１８】
メモリ１３は、ＣＰＵ１１によって実行される命令群を格納するための外部メモリである。メモリ１３は、制御回路１２に設けられたメモリインタフェースに接続することができる。ＣＰＵ１１および制御回路１２を含む装置の構成に外部メモリであるメモリ１３を付加したシステムが、本実施形態の情報処理システムとして機能する。
【００１９】
メモリ１３には、例えば、ＣＰＵ１１によって実行される命令群の内、ローカルメモリ１１１に格納されている命令群以外の他の命令群が格納される。メモリ１３は、例えば、ダイナミックＲＡＭから構成されている。ダイナミックＲＡＭはローカルメモリ１１１を構成するスタティックＲＡＭよりも低速のメモリであるが、スタティックＲＡＭに比べビット当たりのコストは低い。本実施形態では、ローカルメモリ１１１およびメモリ１３は、ＣＰＵ１１のメモリアドレス空間上にそれぞれマッピングされている。ＣＰＵ１１によって実行される命令群（コード群）は、ローカルメモリ１１１とメモリ１３とに分散して格納されている。例えば、本情報処理装置のシステム起動時には、不揮発性メモリ等に格納された命令群の一部（割り込みハンドラ等のプログラム）がローカルメモリ１１１にロードされる。また、不揮発性メモリに格納された命令群の残りの部分は、外部メモリであるメモリ１３にロードされる。本実施形態においては、メモリ１３は、例えば、複数の割り込み要因それぞれに対応する複数の処理ルーチン等の格納に使用される。
【００２０】
制御回路１２は、割り込み制御部１２１、キュッシュ制御部１２２、およびキャッシュロード制御部１２３を備えている。
【００２１】
割り込み制御部１２１は、上述の割り込み信号ＩＮＴをＣＰＵ１１に発生する。この割り込み制御部１２１は、複数の割り込み要因（例えば、ＩＮＴ１，ＩＮＴ２，ＩＮＴ３）のいずれかが発生したことに応答して、ＣＰＵ１１に割り込み信号ＩＮＴを発生する。
【００２２】
キュッシュ制御部１２２は、ヒット判定部２０１、およびキャッシュ（キャッシュメモリ）２０２を備えている。キャッシュ２０２は、ＣＰＵ１１によってリード要求されたメモリ１３上の命令のロードに要するレイテンシーを減少するために設けられたキャッシュメモリである。このキャッシュ２０２は、メモリ１３に格納されている命令群の一部を格納する。このキャッシュ２０２は、例えば、スタティックＲＡＭから構成されている。
【００２３】
ヒット判定部２０１は、ＣＰＵ１１によって実行されるメモリリードサイクルを監視する。そして、ヒット判定部２０１は、ＣＰＵ１１によってフェッチ要求された目的の情報、つまりＣＰＵ１１からのメモリリード要求に含まれるメモリアドレスによって指定される、メモリ１３上のメモリ領域に格納されている情報（命令）が、キャッシュ２０２に存在するか否かを判定する。
【００２４】
目的の情報（目的の命令）がキャッシュ２０２に格納されているならば（キャッシュヒット）、キュッシュ制御部１２２は、即座にキャッシュ２０２から目的の情報（目的の命令）を取り出し、その目的の情報（目的の命令）をＣＰＵ１１のローカルバス１０上に出力する。
【００２５】
一方、目的の情報（目的の命令）がキャッシュ２０２に格納されていないならば（キャッシュミス）、キュッシュ制御部１２２は、目的の情報（目的の命令）をメモリ１３からリードするためのメモリリードサイクルを実行して、目的の情報をメモリ１３からキャッシュ２０２にロードする。そして、キュッシュ制御部１２２は、メモリ１３からリードした目的の情報をＣＰＵ１１のローカルバス１０上に出力する。目的の情報（目的の命令）がメモリ１３からリードされるまでの間、キュッシュ制御部１２２は、例えば、ローカルバス１０上のレディー信号（ＲＥＤＹ）をインアクティブステートに保持し、これによってメモリリードサイクルにウェイトを挿入する。このように、キャッシュミス時には、多くのレイテンシーが発生する。例えば、ＣＰＵ１１への割り込み信号ＩＮＴが発生すると、ＣＰＵ１１によって割り込みハンドラが実行された後に、割り込みハンドラから、割り込み要因に対応するする処理ルーチンへとジャンプされる。この処理ルーチンはメモリ１３に格納されている。したがって、もしこの処理ルーチンがキャッシュ２０２にロードされていない場合にはキャッシュミスが発生し、メモリ１３から処理ルーチンをリードするために多くのレイテンシーが発生する。
【００２６】
本実施形態では、このようなレイテンシーの発生を防止するために、キャッシュロード制御部１２３が制御回路１２内に設けられている。
【００２７】
キャッシュロード制御部１２３は、割り込み信号ＩＮＴが発生されてから、ＣＰＵ１１が割り込み要因に対応する処理ルーチンをコールするまでのタイムラグ中に、割り込み要因に対応する処理ルーチンをメモリ１３からキュッシュ２０２にロードする。
【００２８】
すなわち、制御回路１２には、複数の割り込み要因に対応する複数の処理ルーチンが格納されているメモリ１３上のメモリ領域をそれぞれ示す複数のアドレスが予め設定されている。具体的には、複数の割り込み要因“ＩＮＴ１”，“ＩＮＴ２”，“ＩＮＴ３”にそれぞれに関連付けられた複数のアドレス“ＡＡ”，“ＢＢ”，“ＣＣ”が制御回路１２内のアドレス記憶部に格納されている。アドレス“ＡＡ”は、割り込み要因“ＩＮＴ１”に対応する処理ルーチンが格納されているメモリ領域の先頭番地を指定するメモリアドレスである。アドレス“ＢＢ”は、割り込み要因“ＩＮＴ２”に対応する処理ルーチンが格納されているメモリ領域の先頭アドレスを指定するメモリアドレスである。アドレス“ＣＣ”は、割り込み要因“ＩＮＴ３”に対応する処理ルーチンが格納されているメモリ領域の先頭アドレスを指定するメモリアドレスである。
【００２９】
割り込み制御部１２１から割り込み信号ＩＮＴが発生された時、キャッシュロード制御部１２３は、複数のアドレス“ＡＡ”，“ＢＢ”，“ＣＣ”の中から、発生した割り込み信号ＩＮＴに対応する割り込み要因に関連付けられたアドレスを選択する。そして、キャッシュロード制御部１２３は、選択したアドレスに基づいて、発生した割り込み信号ＩＮＴの割り込み要因に対応する処理ルーチン（この処理ルーチンを構成する命令群）をメモリ１３からキャッシュ２０２にロードする。この場合、キャッシュロード制御部１２３は、例えば、選択したアドレスから所定サイズ分のメモリ領域に格納されている命令群をメモリ１３からリードし、リードした命令群をキャッシュ２０２に格納する。メモリ１３からキャッシュ２０２への情報のロードは、例えば、キャッシュロード制御部１２３がキャッシュ制御部１２２にロード要求を発行することによって実行することが出来る。
【００３０】
ある実施形態では、複数のアドレス“ＡＡ”，“ＢＢ”，“ＣＣ”に加えて、複数の処理ルーチンそれぞれのサイズを指定する情報をアドレス記憶部に予め設定しても良い。
【００３１】
これにより、たとえ複数の処理ルーチンそれぞれのプログラムサイズが互いに異なる場合であっても、キャッシュロード制御部１２３は、発生した割り込み要因に対応する割り込み処理を実行する処理ルーチンの命令群全体を効率よくメモリ１３からリードして、キャッシュ２０２に格納することが出来る。
【００３２】
このように、本実施形態の情報処理装置では、ある割り込み要因が発生したとき、割り込み信号ＩＮＴは即座にＣＰＵ１１に対して発生され、そして割り込み信号ＩＮＴの発生と同時に、割り込み要因に対応する処理ルーチンをメモリ１３からロードすることを指示するロード要求がキャッシュロード制御部１２３からキャッシュ制御部１２２に送られる。したがって、ＣＰＵ１１がローカルメモリ１１１上の割り込みハンドラを実行する処理と並行して、発生した割り込み信号ＩＮＴの割り込み要因に対応する処理ルーチンをキャッシュ２０２にロードする処理が実行される。言い換えれば、割り込み信号ＩＮＴが発生されてからＣＰＵ１１が割り込み要因に対応する処理ルーチンを実際にコールするまでのタイムラグ中に、その処理ルーチンをキャッシュ２０２にロードする処理が実行される。この結果、発生した割り込み要因に対応する処理をリアルタイムに実行することが可能となる。
【００３３】
また、本実施形態では、割り込みハンドラはローカルメモリ１１１に格納されているので、ＣＰＵ１１は、発生した割り込み要因を特定する処理と、その特定した割り込み要因に対応する処理ルーチンをコールして処理ルーチンをリードするためのメモリリード要求を発行する処理とを、高速に実行することが出来る。
【００３４】
次に、本実施形態のキャッシュロード制御処理の手順の概要について説明する。
【００３５】
（１）  例えば本情報処理装置が起動された時、ＣＰＵ１１によって実行される所定のプログラム（ファームウェア）は、複数の割り込み要因“ＩＮＴ１”，“ＩＮＴ２”，“ＩＮＴ３”にそれぞれに関連付けられた複数のアドレス“ＡＡ”，“ＢＢ”，“ＣＣ”を制御回路１２に設定する。このファームウェアは、例えば、ローカルメモリ１１１または外部の不揮発性メモリに格納し得る。
【００３６】
（２）  通常処理中にある割り込み要因（例えばＩＮＴ３）が発生した時、割り込み制御部１２１は、割り込み信号ＩＮＴを発生する。キャッシュロード制御部１２３は、割り込み信号ＩＮＴの発生を検出すると、発生した割り込み信号ＩＮＴに対応する割り込み要因（ＩＮＴ３）に関連付けられたアドレス（“ＣＣ”）を用いて、キャッシュ制御部１２２にロード要求を発行する。これにより、アドレス（“ＣＣ”）によって指定されるメモリ領域上の情報（割り込み要因（ＩＮＴ３）に対応する処理ルーチン）をメモリ１３からキャッシュ２０２にロードする処理が開始される。なお、このロード処理は、キャッシュロード制御部１２３自体が実行することもできる。
【００３７】
（３）  割り込みハンドラは、割り込み制御部１２１内のステータスレジスタ等を参照することによって割り込み要因（ＩＮＴ３）を特定する。この後、割り込みハンドラは、必要に応じて、ＣＰＵ１１内のレジスタの内容（プログラムカウンタの値、エラーフラグ等）をスタックに保存した後に、特定した割り込み要因（ＩＮＴ３）に対応する処理ルーチンにジャンプする。この場合、ＣＰＵ１１は、割り込み要因（ＩＮＴ３）に対応する処理ルーチンの先頭の命令をフェッチするために、当該命令をリードするためのメモリリードサイクルを実行して制御回路１２にメモリリード要求を発行する。
【００３８】
（４）  キャッシュ制御部１２２は、ヒット判定部２０１を用いて、メモリリード要求で指定された命令がキャッシュ２０２に格納されているか否かを判定する。割り込み要因（ＩＮＴ３）に対応する処理ルーチンのキャッシュ２０２へのロードが既に完了していれば、キャッシュヒットとなる。この場合、キャッシュ制御部１２２は、即座にメモリリード要求で指定された命令をキャッシュ２０２からリードして、ＣＰＵ１１に出力する。よって、レイテンシーは発生しない。もし割り込み要因（ＩＮＴ３）に対応する処理ルーチンのキャッシュ２０２へのロードが完了していない場合には、キャッシュ制御部１２２は、ロードが完了するまで、ＣＰＵ１１のメモリリードサイクルにウェイトステートを挿入する。しかし、ロード処理は既に進行しているので、発生するレイテンシーの時間を十分に減少することが出来る。
【００３９】
図２には、ＣＰＵ１１から見たメモリアドレス空間の例が示されている。
【００４０】
本実施形態においては、ＣＰＵ１１がアドレッシング可能なメモリアドレス空間上には、上述のローカルメモリ（高速メモリ）１１１およびメモリ（低速メモリ）１３がマッピングされている。
【００４１】
ローカルメモリ（高速メモリ）１１１には、リアルタイム処理が必要なプログラムとして、上述の割り込みハンドラ等が格納されている。また、低速の外部メモリであるメモリ１３には、割り込み処理を実行するための処理本体である処理ルーチンが格納されている。本実施形態においては、複数の割り込み要因に対応する複数の処理ルーチンＡ，Ｂ，Ｃがメモリ１３に格納されている。処理ルーチンＡは、割り込み要因ＩＮＴ１に対応する割り込み処理を実行するためのルーチンである。この処理ルーチンＡは、メモリアドレス“ＡＡ”から始まるメモリ領域に格納されている。処理ルーチンＢは、割り込み要因ＩＮＴ２に対応する割り込み処理を実行するためのルーチンである。この処理ルーチンＢは、メモリアドレス“ＢＢ”から始まるメモリ領域に格納されている。処理ルーチンＣは、割り込み要因ＩＮＴ３に対応する割り込み処理を実行するためのルーチンである。この処理ルーチンＣは、メモリアドレス“ＣＣ”から始まるメモリ領域に格納されている。なお、メモリ１３には、処理ルーチンＡ，Ｂ，Ｃ以外の他の各種処理ルーチン（例えば、通常処理を実行するためのコード群等）も格納されている。
【００４２】
次に、図３を参照して、割り込み制御部１２１およびキャッシュロード制御部１２３の構成例について説明する。
【００４３】
割り込み制御部１２１は、割り込み要因ＩＮＴ１，ＩＮＴ２，ＩＮＴ３にそれぞれ対応する３つの２入力ＡＮＤ回路３０４、３０５，３０６と、一つの３入力ＯＲ回路３０７を備えている。
【００４４】
ＡＮＤ回路３０４の一方の入力には割り込み要因ＩＮＴ１に対応する割り込み要求信号が入力され、他方の入力にはイネーブルフラグ（ＥＮ）３０１が入力されている。イネーブルフラグ（ＥＮ）３０１は割り込み要因ＩＮＴ１の発生を許可するか否かを指定するフラグであり、上述のファームウェアによって“１”または“０”に設定される。イネーブルフラグ（ＥＮ）３０１が“１”にセットされている期間中は、割り込み要因ＩＮＴ１の発生が許可される。
【００４５】
ＡＮＤ回路３０５の一方の入力には割り込み要因ＩＮＴ２に対応する割り込み要求信号が入力され、他方の入力にはイネーブルフラグ（ＥＮ）３０２が入力されている。イネーブルフラグ（ＥＮ）３０２は割り込み要因ＩＮＴ２の発生を許可するか否かを指定するフラグであり、上述のファームウェアによって“１”または“０”に設定される。イネーブルフラグ（ＥＮ）３０２が“１”にセットされている期間中は、割り込み要因ＩＮＴ２の発生が許可される。
【００４６】
ＡＮＤ回路３０６の一方の入力には割り込み要因ＩＮＴ３に対応する割り込み要求信号が入力され、他方の入力にはイネーブルフラグ（ＥＮ）３０３が入力されている。イネーブルフラグ（ＥＮ）３０３は割り込み要因ＩＮＴ３の発生を許可するか否かを指定するフラグであり、上述のファームウェアによって“１”または“０”に設定される。イネーブルフラグ（ＥＮ）３０３が“１”にセットされている期間中は、割り込み要因ＩＮＴ３の発生が許可される。
【００４７】
ＡＮＤ回路３０４〜３０６それぞれの出力は、３入力ＯＲ回路３０７に接続されている。３入力ＯＲ回路３０７の出力は、上述の割り込み信号ＩＮＴとしてＣＰＵ１１に送出される。
【００４８】
キャッシュロード制御部１２３は、ロード処理部３０１とＬＲＵ（Least Recently Used）制御部３１２とを備えている。
【００４９】
ロード処理部３０１は、割り込み信号ＩＮＴが発生した時、その割り込み信号ＩＮＴの割り込み要因（ＩＮＴ１，ＩＮＴ２，またはＩＮＴ３）に対応する処理ルーチンをメモリ１３からキャッシュ２０２にロードする処理を実行する。このロード処理部３０１は、アドレス選択部３１１と、ロード要求部３１２とを備えている。
【００５０】
アドレス選択部３１１は、割り込み要因ＩＮＴ１，ＩＮＴ２，ＩＮＴ３それぞれの発生を監視するために、ＡＮＤ回路３０４，３０５，３０６それぞれの出力に接続されている。アドレス選択部３１１は、ＡＮＤ回路３０４，３０５，３０６それぞれの出力信号に基づいて、発生した割り込み信号ＩＮＴに対応する割り込み要因を特定する。そして、アドレス選択部３１１は、アドレス記憶部２００を参照することによって、割り込み要因ＩＮＴ１，ＩＮＴ２，ＩＮＴ３それぞれに関連付けられた３つのアドレスの中から、特定した割り込み要因に対応するアドレスを選択する。
【００５１】
アドレス記憶部２００は複数の処理ルーチン（処理ルーチンＡ，処理ルーチンＢ，処理ルーチンＣ）それぞれが格納されているメモリ１３上のメモリ領域をそれぞれ示すアドレスを格納するアドレステーブルである。すなわち、このアドレス記憶部２００には、複数の割り込み要因（ＩＮＴ１，ＩＮＴ２，ＩＮＴ３）に関連付けて、複数の割り込み要因（ＩＮＴ１，ＩＮＴ２，ＩＮＴ３）に対応する複数の処理ルーチン（処理ルーチンＡ，処理ルーチンＢ，処理ルーチンＣ）が格納されているメモリ１３上のメモリ領域をそれぞれ示す複数のアドレスが格納されている。
【００５２】
本実施形態では、アドレス記憶部２００においては、処理ルーチンＡ，処理ルーチンＢ，処理ルーチンＣそれぞれのアドレスのみならず、処理ルーチンＡ，処理ルーチンＢ，処理ルーチンＣそれぞれに対応するメモリ領域のサイズを示す情報もさらに格納されている。
【００５３】
アドレス選択部３１１は、アドレス記憶部２００に格納されている複数のアドレスおよびサイズの組の中から、特定した割り込み要因に関連付けられたアドレスおよびサイズの組を選択する。
【００５４】
ロード要求部３１２は、アドレス選択部３１１によって選択されたアドレスおよびサイズに従って、特定した割り込み要因に対応する処理ルーチン（命令群）をメモリ１３からキュッシュ２０２にロードすべきことをキャッシュ制御部１２２に要求する。
【００５５】
ＬＲＵ制御部３１２は、キュッシュ２０２にロードされた、発生した割り込み要因に対応する処理ルーチンがキャッシュ２０２から除去されやすくするための処理を実行する。すなわち、ＣＰＵ１１は、発生した割り込み要因に対応する処理ルーチンの実行を完了すると、その処理ルーチンから抜けるためのリターン命令（またはリターン関数）を実行する。ＬＲＵ制御部３１２は、このリターン命令が実行されたことを検出した時、発生した割り込み要因に対応する処理ルーチンがキャッシュ２０２から除去されやすくするために、キャッシュ２０２内に含まれるＵＲＵテーブルに格納されたＬＲＵ制御情報を変更する処理を実行する。
【００５６】
ＬＲＵ制御情報は、キャッシュ２０２内の複数のエントリのいずれを更新すべきかを決定するための情報である。例えば、ＬＲＵ制御情報は、最近使用されていないエントリと最近使用したエントリとを識別するための情報を含む。キャッシュ制御部１２２は、ＬＲＵ制御情報を参照することにより、ＬＲＵアルゴリズムにしたがって更新対象とすべきエントリを決定する。この場合、最近使用されていないエントリが優先的に更新対象とした選択され、キャッシュ２０２から優先的に除去される。
【００５７】
ＬＲＵ制御部３１２は、処理が完了した処理ルーチンをキャッシュ２０２内の他の命令群よりも優先的に当該キャッシュ２０２から除去するために、処理ルーチンが格納されているエントリそれぞれに対応するＬＲＵ制御情報を変更する。この場合、ＬＲＵ制御部３１２は、例えば、処理ルーチンが格納されているエントリそれぞれに対応するＬＲＵ制御情報を、「最近使用したエントリ」を示す値から「最近使用されていないエントリ」を示す値に変更するといった処理を実行してもよい。また、もしＬＲＵ制御情報がエントリそれぞれが使用された時間を示すならば、処理ルーチンが格納されているエントリそれぞれに対応する時間を変更してもよい。
【００５８】
このように、処理が完了した処理ルーチンが優先的にキャッシュ２０２から除去されるようにＬＲＵ制御情報を変更することにより、限られたキャッシュ２０２の記憶容量を効率よく利用することが可能となる。
【００５９】
次に、図４のフローチャートを参照して、割り込み信号ＩＮＴの発生時に制御回路１２３によって実行されるロード制御処理の動作を説明する。
【００６０】
キャッシュロード制御部１２３は、割り込み要因ＩＮＴ１，ＩＮＴ２，ＩＮＴ３それぞれの発生を監視することによって、割り込み信号ＩＮＴの発生を検出する（ステップＳ１１）。割り込み信号ＩＮＴの発生が検出された時、つまり割り込み要因ＩＮＴ１，ＩＮＴ２，ＩＮＴ３のいずれかが発生された時、キャッシュロード制御部１２３は、アドレス記憶部２００を参照し、そのアドレス記憶部２００に格納されている複数のアドレスおよびサイズの組の中から、発生した割り込み要因に対応するアドレスおよびサイズの組を選択する（ステップＳ１２）。
【００６１】
そして、キャッシュロード制御部１２３は、例えばキュッシュ制御部１２２を用いてメモリリードサイクルを実行することにより、選択したアドレスおよびサイズによって指定されるメモリ１３上のメモリ領域に格納されている命令群（コード群）をメモリ１３からリードし、そのリードした命令群をキャッシュ２０２に格納する（ステップＳ１３）。
【００６２】
この後、キャッシュロード制御部１２３は、キャッシュ２０２に格納した処理ルーチンから抜ける為のリターン命令が実行されたか否かを判定する（ステップＳ１４）。ステップＳ１４では、キャッシュロード制御部１２３は、例えば、キャッシュ２０２に格納した処理ルーチン内のリターン命令に対応するメモリアドレスがＣＰＵ１１によってリード要求されたか否かを判定する処理を実行する。また、処理ルーチン内に、通常のリターン関数return()ではなく、リターン命令が実行されることをキャッシュロード制御部１２３に通知するための命令を含むリターン関数を設けてもよい。この場合、ＣＰＵ１１からの通知の有無に基づいて、キャッシュロード制御部１２３は、キャッシュ２０２に格納した処理ルーチンから抜ける為のリターン命令が実行されたか否かを判定することが出来る。
【００６３】
ＣＰＵ１１が処理ルーチンから抜けるためのリターン命令を実行したことが検出された場合（ステップＳ１４のＹＥＳ）、キャッシュロード制御部１２３は、その処理ルーチン（コード群）を優先的にキャッシュ２０２から除去するためにＬＲＵテーブルのＬＲＵ制御情報を変更する（ステップＳ１５）。
【００６４】
図５は、キュッシュ２０２の構成例を示している。
【００６５】
キュッシュ２０２は、タグを格納するためのキャッシュディレクトリ４０１と情報を格納するためのキャッシュ部４０２とを含んでいる。キャッシュディレクトリ４０１は、キャッシュ部４０２内のエントリそれぞれに格納されている情報に対応するアドレス等をタグとして保持する。
【００６６】
もし割り込み要因ＩＮＴ３によって割り込み信号ＩＮＴが発生されたならば、割り込み要因ＩＮＴ３に関連付けられたアドレス（“ＣＣ”）がキャッシュディレクトリ４０１内のあるエントリに格納される。アドレス（“ＣＣ”）が格納されたエントリに対応するキャッシュ部４０２内のエントリには、割り込み要因ＩＮＴ３に対応する処理ルーチンがメモリ１３からロードされる。実際には、処理ルーチンには複数の命令群が含まれているので、処理ルーチンは複数のエントリそれぞれに格納される。
【００６７】
次に、図６のフローチャートを参照して、割り込み信号ＩＮＴの発生に応答してＣＰＵ１１によって実行される処理について説明する。
【００６８】
割り込み信号ＩＮＴが発生された時、つまり割り込み信号ＩＮＴがアクティブステートに設定された時、ＣＰＵ１１は、ローカルメモリ１１１に格納されている割り込みハンドラを実行する。そして、その割り込みハンドラの制御の下、ＣＰＵ１１は、以下の処理を実行する。
【００６９】
まず、ＣＰＵ１１は、割り込み制御部１２１のステータスレジスタ等を参照して、発生した割り込み信号ＩＮＴの割り込み要因を特定する（ステップＳ４０１）。次いで、ＣＰＵ１１は、プログラムカウンタ等のレジスタ群の内容をスタックのようなメモリ領域に保存し（ステップ４０２）、そして、割り込み要因に対応する処理ルーチンをコールする（ステップＳ４０３）。ステップＳ４０３では、処理ルーチンの先頭アドレスへのジャンプ命令が実行される。この結果、処理ルーチンの先頭アドレスをリードするためのメモリリードサイクルがＣＰＵ１１によって実行される。
【００７０】
次に、図７を参照して、アドレス記憶部２００の他の構成例について説明する。
【００７１】
図７のアドレス記憶部２００は、複数の割り込み要因に関連付けて、複数の処理ルーチンそれぞれに対応するメモリ１３上の複数の変数領域をそれぞれ示す複数のアドレス（変数領域アドレス）をさらに保持している。すなわち、アドレス記憶部２００においては、各処理ルーチン毎に、その処理ルーチン内の命令群が格納されているメモリ領域（コード領域）を指定するアドレスおよびサイズに加え、その処理ルーチン内の変数群が格納されているメモリ領域（変数領域）を指定するアドレス（変数領域）およびサイズも格納されている。
【００７２】
割り込み信号ＩＮＴが発生した時、キュッシュロード制御部１２３は、アドレス記憶部２００を参照することにより、発生した割り込み要因に対応する処理ルーチンの命令群をメモリ１３からキャッシュ２０２にロードする処理と、発生した割り込み要因に対応する処理ルーチンの変数領域をメモリ１３からキャッシュ２０２にロードする処理とを実行する。このように、命令群のみならず、変数もキャッシュ２０２に自動的にロードすることにより、キャッシュヒットが発生する確率をより高めることができる。
【００７３】
以上のように、本実施形態においては、割り込み信号が発生されてからＣＰＵ１１が割り込み要因に対応する処理ルーチンをコールするまでのタイムラグ中に、割り込み要因に対応する処理ルーチンをキュッシュ２０２に効率よくロードすることができる。よって、発生した割り込み要因に対応する処理をリアルタイムに実行することが可能となる。
【００７４】
なお、本実施形態では、処理ルーチン毎にアドレスとサイズの組をアドレス記憶部２００に格納する例を説明したが、処理ルーチン毎にアドレスのみをアドレス記憶部２００に格納するようにしてもよい。
【００７５】
また本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７６】
【図１】本発明の一実施形態に係る情報処理装置の構成を示すブロック図。
【図２】同実施形態の情報処理装置に設けられたＣＰＵＫメモリアドレス空間の例を示す図。
【図３】同実施形態の情報処理装置に設けられた、割り込み制御部およびキャッシュロード制御部それぞれの構成例を示す図。
【図４】同実施形態の情報処理装置によって実行されるロード制御処理の動作を説明するフローチャート。
【図５】同実施形態の情報処理装置に設けられたキャッシュの構成例を示すブロック図。
【図６】同実施形態の情報処理装置に設けられたＣＰＵが割り込み信号の発生に応答して実行する処理の手順の例を示すフローチャート。
【図７】同実施形態の情報処理装置に設けられたアドレス記憶部の構成例を示す図。
【符号の説明】
【００７７】
１１…ＣＰＵ、１２…制御回路、１３…メモリ、１１１…ローカルメモリ、１２１…割り込み制御部、１２２…キャッシュ制御部、１２３…キャッシュロード制御部、２０１…ヒット判定部、２０２…キャッシュ、３０２…ＬＲＵ制御部、３１１…アドレス選択部、３１２…ロード要求部。
【図１】
2009258984.tif 000003
【図２】
2009258984.tif 000004
【図３】
2009258984.tif 000005
【図４】
2009258984.tif 000006
【図５】
2009258984.tif 000007
【図６】
2009258984.tif 000008
【図７】
2009258984.tif 000009