(57)【要約】      （修正有）【課題】ターゲットプログラムの実際の動作時のキャッシュミスのプロファイル情報を、関数毎に得ることができるプロセッサ及びマルチプロセッサを提供する。【解決手段】プロセッサ１１は、ローカルメモリ２３と、クロック信号に基づいてクロック信号をカウントするクロックカウンタと、関数の呼び出しを検出すると、クロックカウンタのカウンタ値と、プログラムカウンタ値と、飛び先あるいは戻り先のアドレスの情報を、ローカルメモリ２３に出力する関数コール制御部４１と、キャッシュミスを検出すると、クロックカウンタのカウンタ値と、プログラムカウンタ値と、アクセスアドレスの情報を、ローカルメモリ２３に出力するキャッシュミス制御部４２とを有する。【選択図】図１
2009217385.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
クロック信号に基づいてクロック信号をカウントするクロックカウンタと、
関数の呼び出しを検出すると、前記クロックカウンタのカウンタ値と、プログラムカウンタ値と、飛び先あるいは戻り先のアドレスの情報を、前記メモリに出力する関数呼び出し制御部と、
キャッシュミスを検出すると、前記クロックカウンタのカウンタ値と、プログラムカウンタ値と、アクセスアドレスの情報を、前記メモリに出力するキャッシュミス制御部と、
を有することを特徴とするプロセッサ。
【請求項２】
前記メモリに記憶されたデータ量が所定の閾値以上となったことを検出すると、データ保存用メモリに、前記メモリに記憶されたデータを転送するデータ制御部を有することを特徴とする請求項１に記載のプロセッサ。
【請求項３】
割り込み制御部を有し、
前記メモリに記憶されたデータの転送は、前記割り込み制御部により行われることを特徴とする請求項１又は請求項２に記載のプロセッサ。
【請求項４】
設定された信号に基づいて、前記関数呼び出し制御部と前記キャッシュミス制御部の機能を有効あるいは無効にするための機能設定部を有することを特徴とする請求項１から３のいずれか１項に記載のプロセッサ。
【請求項５】
複数のプロセッサを有するマルチプロセッサであって、
各プロセッサは、
メモリと、
クロック信号に基づいてクロック信号をカウントするクロックカウンタと、
関数の呼び出しを検出すると、前記クロックカウンタのカウンタ値と、プログラムカウンタ値と、飛び先あるいは戻り先のアドレスの情報を、前記メモリに出力する関数呼び出し制御部と、
キャッシュミスを検出すると、前記クロックカウンタのカウンタ値と、プログラムカウンタ値と、アクセスアドレスの情報を、前記メモリに出力するキャッシュミス制御部と、
を有することを特徴とするマルチプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ及びマルチプロセッサに関し、特に、キャッシュミスのプロファイル機能を有するプロセッサ及びマルチプロセッサに関する。
【背景技術】
【０００２】
従来より、プロセッサ上で動作するプログラムの処理速度を上げる為に、キャッシュメモリ（以下、単にキャッシュともいう）が使用されている。キャッシュを有効に利用するためには、プログラムの時間的局所性（すなわちデータの再利用率とその時間的特性）、及び空間的局所性（すなわちデータの格納位置に対する偏在性）を調査した上で、キャッシュミスのオーバヘッドを低減させることが必須である。
【０００３】
従来、キャッシュミスの発生状況を調査するために、キャッシュミスイベント検出器とキャッシュミスパフォーマンス測定用レジスタが利用される。すなわち、キャッシュミスイベント検出器が、プロセッサにおけるキャッシュミスの発生イベントを検出すると、キャッシュミスパフォーマンス測定用レジスタ（以下、キャッシュミスカウンタという）がインクリメントされることによって、キャッシュミスの発生回数を測定することができる。
【０００４】
キャッシュミスカウンタに保持されたキャッシュミス回数は、ターゲットプログラム中に記述されたコマンドによって読み出すことができる。キャッシュミスカウンタは一つしかないため、ターゲットプログラム中の任意の位置でキャッシュミスカウンタを読み出し、別の場所へ保存することによって、キャッシュミス回数を測定することができる。例えば、ターゲットプログラム中の各関数におけるキャッシュミス回数を測定する場合、各関数の実行前にカウンタ値を読み込み、各関数の実行後に再びカウンタ値を読み込み、各関数の実行の前後におけるカウンタ値の差を算出することによって、各関数におけるキャッシュミス回数を測定することができる。このようにすることによって、測定対象、例えば各関数、のキャッシュに関するプロファイルの情報を得ることができる。
【０００５】
しかし、上述した方法では、キャッシュプロファイル情報を得るために、キャッシュミス回数を測定するためのコードを含ませるようにターゲットプログラムを事前に書き換えて再コンパイルする必要がある。そのため、キャッシュミス回数を測定するためのコードを含むターゲットプログラムと、キャッシュミス回数を測定するためのコードを含まないターゲットプログラムとは、コンパイラの最適化により、コードのメモリ配置が変わってしまうため、実際の動作時のプロファイル情報と違う結果が得られる可能性が高い。
【０００６】
また、ソフトウエアのシミュレーションによるメモリアクセスの状態を抽出する方法では、実システムの動作とは異なる情報が得られるという問題に対して、CPUのメモリアクセス状態の情報を、システムの振る舞いに影響を与えることなく、外部に出力するCPUメモリアクセス解析装置の技術が提案されている（例えば、特許文献１参照）。
【０００７】
その提案に係る技術では、CPUメモリアクセス解析装置は、プロセスの切り替わりを検出し、キャッシュミスヒット時に、イベント識別子とCPUから出力された仮想アドレスを選択してキャッシュミス情報として出力する。
【０００８】
しかし、その技術では、関数毎にキャッシュミスがどの程度かつどのようなタイミングで発生しているのか、という情報を得ることできない。
【特許文献１】特開2006-285430号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は、以上の問題に鑑みてなされたものであり、ターゲットプログラムの実際の動作時のキャッシュミスのプロファイル情報を、関数毎に得ることができるプロセッサ及びマルチプロセッサを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様によれば、メモリと、クロック信号に基づいてクロック信号をカウントするクロックカウンタと、関数の呼び出しを検出すると、前記クロックカウンタのカウンタ値と、プログラムカウンタ値と、飛び先あるいは戻り先のアドレスの情報を、前記メモリに出力する関数呼び出し制御部と、キャッシュミスを検出すると、前記クロックカウンタのカウンタ値と、プログラムカウンタ値と、アクセスアドレスの情報を、前記メモリに出力するキャッシュミス制御部と、を有するプロセッサを提供することができる。
【発明の効果】
【００１１】
本発明のプロセッサ及びマルチプロセッサによれば、ターゲットプログラムの実際の動作時のキャッシュミスのプロファイル情報を、関数毎に得ることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。  
まず図１に基づき、本実施の形態に係わるプロセッサシステムの構成を説明する。図１は、本実施の形態に係わるプロセッサシステムの構成を示す構成図である。
【００１３】
プロセッサシステム１は、プロセッサ１１と、主メモリ１２とを含む。プロセッサ１１は、バスインターフェース（以下、I/Fと略す）１３を介して、システムバス１４に接続され、主メモリ１２も、システムバス１４に接続されている。
【００１４】
プロセッサ１１は、コアプロセッサ２１と、イベント制御部２２と、一時保存用メモリとしてのローカルメモリ２３を含む。ローカルメモリ２３は、一時的にデータを格納するRAMのメモリである。  
コアプロセッサ２１は、デコーダ３１と、命令キャッシュ３２と、データキャッシュ３３と、割り込みコントローラ３４を含む。  
コアプロセッサ２１は、主メモリ１２に記憶されている命令とデータを、システムバス１４を介して読み込んで実行する。主メモリ１２から読み出した命令とデータは、それぞれ、命令キャッシュ３２とデータキャッシュ３３に一時的に記憶される。デコーダ３１は、命令キャッシュ３２の命令を読み出してデコードし、コアプロセッサ３１は、データキャッシュ３３から読み出した必要なデータに対して、そのデコードされた命令を実行する。コアプロセッサ３１は、命令の実行結果を、主メモリ１２の所定の領域に出力し、記憶させる。
【００１５】
プロセッサ１１において実行されるプログラムは、図示しない外部記憶装置等に記憶されており、その外部記憶装置から読み出されたプログラムは、主メモリ１２に記憶される。命令キャッシュ３２とデータキャッシュ３３には、主メモリ１２から読み出された命令とデータが一時的に記憶され、デコーダ３１が連続して命令を実行することによって、主メモリ１２に記憶されたプログラムの処理が実行される。
【００１６】
また、プログラムの実行中に所定のイベントが発生すると割り込み処理が実行される。割り込みコントローラ３４は、その割り込み処理の実行を制御する。
【００１７】
イベント制御部２２は、関数コール制御部４１と、キャッシュミス制御部４２と、データ制御部４３とを含むハードウエア回路により形成された回路部である。
【００１８】
コアプロセッサ２１は、イベント制御部２２の機能を有効あるいは無効にするためのフラグ設定部を有し、そのフラグ設定部に設定するフラグによって、イベント制御部３３の機能を有効（ENABLE）あるいは無効（DISABLE）に設定することができる。よって、イベント制御部３３を有効することにより、後述するようなキャッシュミスのプロファイル情報を得るようにすることができる。
【００１９】
関数コール制御部４１は、デコーダ３１によりデコードされた命令が、分岐命令、ジャンプ命令、あるいはリターン命令のときに、所定のイベントとしてこれらの命令の実行を検出する。デコーダ３１は、デコードされた命令コードを、関数コール制御部４１に出力する。関数コール制御部４１は、これらの命令の実行が、所定の命令であることを検出すると、その検出時のプログラムカウンタ値、飛び先あるいは戻り先のアドレス、及びそのときの時間すなわちクロックカウンタ値を、ログデータとして、一次保存用メモリであるローカルメモリ２３に記録する。すなわち、関数コール制御部４１は、関数の呼び出しを検出すると、クロックカウンタ５１のカウンタ値と、プログラムカウンタ（以下、PCと略す）の値と、飛び先あるいは戻り先のアドレスの情報を、ローカルメモリ２３に出力する関数呼び出し制御部を構成する。
【００２０】
キャッシュミス制御部４２は、命令キャッシュ３２とデータキャッシュ３３のキャッシュミスを、所定のイベントとして検出する。すなわち、キャッシュミス制御部４２は、命令キャッシュ３２とデータキャッシュ３３へのキャッシュミスのアクセスがあった時に、そのキャッシュミスを、所定のイベントとして検出する。キャッシュミス制御部４２は、それらの所定のイベントを検出すると、その検出時のプログラムカウンタ値、アクセスされたアドレスすなわちアクセスアドレス、及びそのときの時間すなわちクロックカウンタ値を、ログデータとして、一次保存用メモリのローカルメモリ２３に出力する。
【００２１】
データ制御部４３には、ローカルメモリ２３に記憶されるデータの量についての閾値が設定されている。データ制御部４３は、ローカルメモリであるローカルメモリ２３に記録されているデータ量をモニタしている。ローカルメモリ２３に格納されたデータ量が、設定された所定の閾値を超えた時点で、データ制御部４３は、割り込みコントローラ３４に所定の割り込み信号を出力する。割り込みコントローラ３４は、対応する所定の割り込みルーチンを実行して、ローカルメモリ２３のログデータを、主メモリ１２の所定のデータ保存領域１２ａに格納する割り込み制御部である。以上により、主メモリ１２に、キャッシュミスのプロファイルデータが自動的に格納される。主メモリ１２は、キャッシュミスのプロファイルデータを格納する、データ保存用メモリである。すなわち、データ制御部４３は、ローカルメモリ２３に記憶されたデータ量が所定の閾値以上となったことを検出すると、データ保存用メモリである主メモリ１２に、ローカルメモリ２３に記憶されたデータを転送する制御部である。
【００２２】
次に、上述した各制御部の構成をより詳述する。  
図２は、プロセッサ１１の構成をより詳細に説明するためのブロック図である。
【００２３】
プロセッサ２１においては、図１で説明した構成に加えて、キャッシュミス検出部３５と、PCの値を保持するPCレジスタ３６と、命令におけるジャンプすなわち飛び先のアドレスを保持する飛び先レジスタ３７と、命令におけるリターンすなわち戻り先のアドレスを保持する戻り先レジスタ３８とが示されている。
【００２４】
キャッシュミス検出部３５は、命令キャッシュ３２及びデータキャッシュ３３においてキャッシュミスが発生すると、キャッシュミスのイベント情報と、データキャッシュにおいてキャッシュミスが発生したときのアクセスアドレスの情報を出力する。
【００２５】
イベント制御部２２は、関数コール制御部４１と、キャッシュミス制御部４２と、データ制御部４３に加えて、カウンタ４９を含む。
【００２６】
関数コール制御部４１は、命令比較部４４と、関数情報出力部４５とを含む。命令比較部４４には、デコーダ３１においてデコードされた命令コードと、分岐命令、ジャンプ命令、あるいはリターン命令の各命令コードとが入力される。命令比較部４４は、デコードされた命令コードと、分岐命令、ジャンプ命令、あるいはリターン命令の各命令コードを比較して、デコードされた命令コードが、分岐命令、ジャンプ命令、あるいはリターン命令のいずれかの命令コードと一致すると、一致信号を関数情報出力部４５に出力する。
【００２７】
関数情報出力部４５には、PCレジスタ３６，飛び先レジスタ３７及び戻り先レジスタ３８のデータが入力されている。さらに、関数情報出力部４５には、クロック（以下、CLKと略す）信号に基づいてCLK信号をカウントするクロックカウンタ５１からのクロックカウンタ値の信号も入力されている。
【００２８】
関数コール制御部４１は、所定の命令が検出されると、その所定の命令を検出したときのクロックカウンタ値、PC値、関数コールであること、及び、飛び先あるいは戻り先のアドレスの情報を、カウンタ４９を介して、ローカルメモリ２３に出力する。  
カウンタ４９は、関数コール制御部４１から出力されたログデータのデータ量に応じた値だけカウントアップする。
【００２９】
キャッシュミス制御部４２は、キャッシュミス情報出力部４６を含んでいる。キャッシュミス情報出力部４６には、キャッシュミス検出部３５から、キャッシュミス検出信号としての、イベント情報とアクセスアドレスの情報とが入力されている。さらに、キャッシュミス情報出力部４６には、PCカウンタ３６のPC値の情報と、クロックカウンタ５１からのクロックカウンタ値の信号とが入力されている。
【００３０】
キャッシュミス制御部４２は、キャッシュミスを検出したときのクロックカウンタ値、PC値、キャッシュミスであること、及び、キャッシュミスしたときのアクセスアドレスの情報を、カウンタ４９を介して、ローカルメモリ２３に出力する。
【００３１】
カウンタ４９は、キャッシュミス制御部４２から出力されたログデータのデータ量に応じた値だけカウントアップする。
【００３２】
データ制御部４３は、閾値比較部４７と閾値保持部４８とを含む。閾値比較部４７は、閾値保持部４８に保持された所定の閾値と、ローカルメモリ２３に記憶されたログデータのデータ量を示すカウンタ４９のカウント値とを比較し、カウント値がその閾値以上になると、割り込みコントローラ３４に所定の割り込み信号を出力する。上述したように、割り込みコントローラ３４は、その所定の割り込み信号を受信すると、ローカルメモリ２３から主メモリ１２へデータの転送処理を実行する。カウンタ４９は、データの転送がされると、リセットされる。
【００３３】
なお、閾値比較部４７は、ローカルメモリ２３のデータ量を監視して、そのデータ量と閾値と比較するようにしてもよい。
【００３４】
イベント制御部２２には、電源Vddが供給されているが、スイッチ（以下、SWと略す）５２を介して電源Vddが供給されている。上述したように、コアプロセッサ２１は、フラグ設定部５３を有している。フラグ設定部５３にイベント制御部２２を有効とする設定がされたときには、フラグ設定部５３は、SW５２をオンとするようにスイッチ信号がSW５２に供給される。SW５２は、関数コール制御部４１とキャッシュミス制御部４２への電源の供給を制御する。フラグ設定部５３は、関数コール制御部４１とキャッシュミス制御部４２の機能の有効あるいは無効を設定する機能設定部である。すなわち、SW５２とフラグ設定部５３は、フラグ設定部５３に設定された信号に基づいて、関数コール制御部４１とキャッシュミス制御部４２の機能を有効あるいは無効にするための機能設定部を構成する。
【００３５】
以上のような構成において、ターゲットプログラムを実行させると、プロセッサ１１は、次のように動作する。  
ターゲットプログラムの実行中に、分岐命令、ジャンプ命令、あるいはリターン命令が検出されると、関数コール制御部４１は、それらの命令を検出したときのクロックカウンタ値、PC値、関数コールであること、及び、飛び先あるいは戻り先のアドレスの情報を、カウンタ４９を介して、ローカルメモリ２３に出力する。  
例えば、次のように、関数コール制御部４１は、CSV形式で、これらの情報を出力する。
【００３６】
（クロックカウンタ値），（PC値），（関数コール），（飛び先あるいは戻り先のアドレス）
また、ターゲットプログラムの実行中に、キャッシュミスが検出されると、キャッシュミス制御部４２は、キャッシュミスを検出したときのクロックカウンタ値、PC値、キャッシュミスであること、及び、キャッシュミスしたときのアクセスアドレスの情報を、カウンタ４９を介して、ローカルメモリ２３に出力する。  
例えば、次のように、キャッシュミス制御部４２は、CSV形式で、これらの情報を出力する。
【００３７】
（クロックカウンタ値），（PC値），（キャッシュミス），（アクセスアドレス）
従って、所定の命令が実行されたこと、及びキャッシュミスが発生したことに応じて、上述した情報が、例えば、CSV形式でカウンタ４９を介して、ローカルメモリ２３に出力され、ログ情報として記録されていく。
【００３８】
関数コール制御部４１とキャッシュミス制御部４２からの情報は、ローカルメモリ２３に蓄積されていき、所定のデータ量が蓄積されると、割り込みコントローラ３４によって、主メモリ１２のデータ保存領域１２ａに転送される。
【００３９】
主メモリ１２のデータ保存領域１２ａに記憶されたログ情報は、飛び先及び戻り先のアドレスの情報を含むため、そのアドレスに基づいて、関数を特定することができるので、蓄積されたログデータを解析することによって、関数毎のキャッシュミス回数をカウントすることができる。
【００４０】
次に、以上のようにして得られたキャッシュミスのプロファイルデータを用いた解析例を説明する。  
１）関数のキャッシュミスの相関  
例えば、図３は、関数名と、各関数のキャッシュミス回数を示す表を示す図である。ターゲットプログラムは、複数の関数を含む。図３には、関数名「func_a」の実行時に「１１２７９７」回のキャッシュミスが発生しており、関数名「func_b」の実行時に「４２６０７」回のキャッシュミスが発生しており、関数名「func_c」の実行時に「２０３６４」回のキャッシュミスが発生していることが示されている。
【００４１】
すなわち、関数毎の、キャッシュミス回数を示すことができる。実行される関数名及び遷移先の関数名は、分岐命令、ジャンプ命令、及びリターン命令時の、PC値、飛び先あるいは戻り先アドレスの情報と、デバッグ情報から得ることができる。これらのアドレス情報から、空間的局所性を知ることができる。キャッシュミス回数が大きい関数は、それによるミスペナルティも大きいので、キャッシュミス回数を減らすことによりプログラム全体の処理速度の向上に効果が大きいと考えられる。
【００４２】
従って、最もキャッシュミスの多かった関数からチューニングをすることによって、キャッシュミスのオーバヘッド低減が大きいので、関数名「func_a」からチューニングを行えばよいことがわかる。
【００４３】
２）関数とキャッシュミスの発生の時間的な相関
例えば、図４は、関数、クロックカウンタ値及びアクセスアドレスの表データを示す図である。図５は、アクセスされた実アドレスの時間経過における散布図である。横軸が、関数のコール、リターン時の時間すなわちクロックカウンタ値の軸であり、縦軸が、関数のコール及びリターン時にアクセスされたときのメモリの実アドレスの軸である。
【００４４】
図５において、縦の実線CMで示す時点においてキャッシュミスが発生したことを示している。すなわち、図５は、キャッシュミスが発生したタイミングを時系列的に示しているので、キャッシュミスの時間的局所性を知ることができる。
【００４５】
関数コール制御部４１とキャッシュミス制御部４２から出力されるログデータには、クロックカウンタ値が含まれているので、図５に示すように、いわゆる分岐、ジャンプ、リターン時の時間と、キャッシュミス発生時の時間とが得られるので、関数の遷移と、キャッシュミスの発生とを関連付けることができる。
【００４６】
図４に示された時間範囲R1のデータに対応する、図５の同じ時間範囲R1におけるキャッシュミスの発生状況を見ると、キャッシュの同一ラインに配置された関数に交互にアクセスが発生しているために、そのアクセスの度にキャッシュミスが発生していることがわかる。特に、時間範囲R1と同じようなキャッシュミスが繰り返し発生しているような場合に、各関数が効率的にメモリに配置されていれば、キャッシュミスを大幅に削減できると考えられる。
【００４７】
図６と図７は、それぞれ、図５に示すようなキャッシュミスの発生を低減するように、関数のメモリ配置を変更したときの、関数、クロックカウンタ値及びアクセスアドレスの表データを示す図と、アクセスされた実アドレスの時間経過における散布図である。図７を見ると判るように、図４の範囲R1に対応する範囲R2におけるキャッシュミス回数は、大幅に減少している。
【００４８】
以上のように、上述した本実施の形態に係るプロセッサによれば、従来のようなキャッシュミスカウンタのようなレジスタを設けず、かつプログラム中にキャッシュミス測定用のコードを含ませることもなく、ターゲットプログラムの実際の動作時のキャッシュミスのプロファイル情報を、関数毎に得ることができる。
【００４９】
特に、出力されるログ情報は、時間の情報を含むので、キャッシュミスの発生した場所と時間を特定することができる。その結果、ターゲットプログラムをチューニングする際に、プログラムのメモリ配置を最適化することにより、キャッシュミス回数の減少につなげることが可能となる。
【００５０】
また、ログ情報は、プロセッサ上のローカルメモリに一旦保持され、一定の閾値以上になると、データ保存用のメモリに転送するので、出力されるログ情報を常にデータ保存用のメモリに転送するよりも、高速にログ情報の記憶を行うことができる。
【００５１】
なお、上述した実施の形態に係るプロセッサは、半導体チップ上に複数のプロセッサが設けられたマルチプロセッサにおいても適用可能である。すなわち、マルチプロセッサ上の各プロセッサに、上述した関数コール制御部４１，キャッシュミス制御部４２，データ制御部４３、及びローカルメモリ２３が、設けられる。図８は、マルチプロセッサの構成例を示す図である。図８に示すように、マルチプロセッサ６１は、複数のプロセッサ１１を有し、複数のプロセッサ１１は、互いにバス６２に接続されている。
【００５２】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態に係わるプロセッサシステムの構成を示す構成図である。
【図２】本発明の実施の形態に係わるプロセッサの構成をより詳細に説明するためのブロック図である。
【図３】本発明の実施の形態に係わる、関数名と、各関数のキャッシュミス回数を示す表を示す図である。
【図４】本発明の実施の形態に係わる、関数、クロックカウンタ値及びアクセスアドレスの表データを示す図である。
【図５】本発明の実施の形態に係わる、アクセスされた実アドレスの時間経過における散布図である。
【図６】本発明の実施の形態に係わる、図５に示すようなキャッシュミスの発生を低減するように、関数のメモリ配置を変更したときの、関数、クロックカウンタ値及びアクセスアドレスの表データを示す図である。
【図７】本発明の実施の形態に係わる、図５に示すようなキャッシュミスの発生を低減するように、関数のメモリ配置を変更したときの、アクセスされた実アドレスの時間経過における散布図である。
【図８】本発明の実施の形態に係わる、マルチプロセッサの構成例を示す図である。
【符号の説明】
【００５４】
１  プロセッサシステム、１１  コアプロセッサ、１２  主メモリ、１３  バスインターフェース、１４  システムバス、２１  コアプロセッサ、２２  イベント制御部、２３  ローカルメモリ、３１  デコーダ、３２  命令キャッシュ、３３  データキャッシュ、３４  割り込みコントローラ、４１  関数コール制御部、４２  キャッシュミス制御部、４３  データ制御部、５１  クロックカウンタ、５２  スイッチ、５３  フラグ設定部、６１  マルチプロセッサ、６２  バス
【図１】
2009217385.tif 000003
【図２】
2009217385.tif 000004
【図３】
2009217385.tif 000005
【図４】
2009217385.tif 000006
【図５】
2009217385.tif 000007
【図６】
2009217385.tif 000008
【図７】
2009217385.tif 000009
【図８】
2009217385.tif 000010