(57)【要約】【課題】  計算機システムのマルチコア化や処理のマルチスレッド化によるクロスコールの制御のために要する資源の増大を抑制する。【解決手段】  ＸＣＳＣ４０は、他のＣＰＵへ宛ててＣＰＵコア部２０により発行されるクロスコールの送信を制御する。このＸＣＳＣ４０に、当該クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とを直接対応付けて当該クロスコールのエントリ毎に保持するレジスタ４１を設ける。【選択図】図２
2007102447.tif 000002
【特許請求の範囲】
【請求項１】
他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、
前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有することを特徴とする演算処理装置。
【請求項２】
前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする請求項２に記載の演算処理装置。
【請求項４】
前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする請求項３に記載の演算処理装置。
【請求項５】
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有することを特徴とする請求項２に記載の演算処理装置。
【請求項６】
複数の演算処理装置を備えた情報処理装置であって、
前記演算処理装置が、
前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、
前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有する
ことを特徴とする情報処理装置。
【請求項７】
前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
複数の演算処理部を有する演算処理装置であって、
前記複数の演算処理部のいずれかから他の演算処理装置における演算処理部へ宛てて発行されるクロスコールの送信を制御する制御部と、
前記演算処理部毎に設けられており、前記クロスコールに係る処理の処理状況と、前期処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有することを特徴とする演算処理装置。
【請求項９】
演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、
前記クロスコールに係る処理の処理状況と、前記クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップ
を有することを特徴とするクロスコールの送信制御方法。
【請求項１０】
他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
前記クロスコールの発行履歴を保持するための記憶領域として、当該クロスコールを個々に識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を個々に識別する識別子の記憶領域とを有する記憶部と、
を有することを特徴とする演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ等の演算処理装置内部の制御技術に関し、特に、演算処理装置間のクロスコールのための制御技術に関する。
【背景技術】
【０００２】
本発明は、ＣＰＵ間のクロスコールに関し、特にマルチＣＰＵシステムを対象とする。クロスコールとは、プロセッサ間における通信手段の一つであり、仮想メモリにおけるメモリ一貫性を維持するために、OSにより使用される内部プロセッサ割り込みをいう。
【０００３】
本発明に関連する技術として、例えば特許文献１には、リード・リクエストに対するレスポンスがリクエストの発行先に返されるまでの間、システム・バスを解放する方式であるリード・スプリット方式を採用するコンピュータシステムのリード制御装置において、メモリ・リードとＩ／Ｏの管理テーブルとを別々に分割して制御することにより、レスポンスの遅いＩ／Ｏリードによるリード管理テーブルの占有を防止する技術が開示されている。
【０００４】
また、例えば特許文献２には、共有システム・バスの高速化のために、複数のデータ・プロセッサ、メモリ・ユニット、及びＩ／Ｏインタフェースを当該システム・バスへ接続するためのバッファ機能付きの万能インタフェースを提供する技術が開示されている。
【０００５】
但し、これらの技術はどちらもコンピュータシステムの構成に特徴を有するものであり、ＣＰＵの内部構成に関するものではない。
【特許文献１】特開平１１−１１０３４３号公報
【特許文献２】特開平５−２１０６２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図１０は、マルチＣＰＵシステムの概略構成例を示している。この構成例では、ＣＰＵＡ１１００、ＣＰＵＢ１２００、及びメモリ１４００がシステムコントローラ（以下、「ＳＣ」と記す）１３００に接続されている。ここで、ＣＰＵＡ１１００とＣＰＵＢ１２００との各々のＣＰＵコア部１１１０、１２１０は、外部インタフェース部１１２０、１２２０を各々介してＳＣ１３００に接続されている。
【０００７】
クロスコールの制御は外部インタフェース部１１２０、１２２０によって行われる。外部インタフェース部１１２０、１２２０は、クロスコール送信制御部（以下、「ＸＣＳＣ」（Cross Call Send Controller）と記す）１１２１、１２２１とクロスコール受信制御部（以下、「ＸＣＲＣ」（Cross Call Receive Controller ）と記す）１１２２、１２２２とを各々有している。
【０００８】
ここで、図１０に示したシステムにおけるクロスコール送受信の流れを、図１１を用いて説明する。
まず、（１）の２つの矢印で示すように、ＣＰＵＡ１１００のＣＰＵコア部１１１０からクロスコールのデータ（太い矢印）とクロスコールリクエストの発行要求（細い矢印）とが送られてくると、（２）の矢印で示すように、ＸＣＳＣ１１２１はそれらをバッファリングしつつ、ＳＣ１３００へとクロスコールリクエスト（クロスコール要求）を発行する。
【０００９】
（３）の矢印で示すように、ＳＣ１３００は、相手先（この場合はＣＰＵＢ１２００）の状態に基づき、相手先がＢＵＳＹ状態でなければ、すなわち、ＳＣ１３００自身が有しているレジスタにおける、ＣＰＵＢ１２００の状態を示すＢＵＳＹビットが立っていなければ、当該ＢＵＳＹビットを立てる（図１１におけるＳＣ１３００に記されている矢印）と共に、要求元であるＣＰＵＡ１１００へＡＣＫ（許可）を返答する。一方、相手先が既にＢＵＳＹ状態であれば（当該ＢＵＳＹビットが立っていれば）ＮＡＣＫ（不許可）をＣＰＵＡ１１００へ返答する。
【００１０】
ＣＰＵＡ１１００は、ＡＣＫを受け取った場合には、（４）の矢印で示すように、クロスコールのデータをＳＣ１３００へ送信する。一方、ＮＡＣＫを受け取った場合には、所定時間経過後に、改めてクロスコールリクエストのＳＣ１３００への発行をＸＣＳＣ１１２１に行わせ、以降、ＡＣＫを受け取るまで繰り返しクロスコールリクエストの発行をＸＣＳＣ１１２１に行わせる。
【００１１】
クロスコールの受信側であるＣＰＵＢ１２００のＸＣＲＣ１２２２では、（５）の矢印で示すように、ＳＣ１３００からクロスコールのデータが送られてくると、そのデータを内部のレジスタへ書き込む。その後、ＸＣＲＣ１２２２は、（６）の矢印で示すように、ＣＰＵＢ１２００のＣＰＵコア部１２１０へとクロスコール受信通知を送る（外向きの細い矢印）と共にデータを受け渡す（太い矢印）。その後、クロスコールの受信時の作業が完了したことがＣＰＵコア部１２１０から伝えられると（内向きの細い矢印）、ＸＣＲＣ１２２２は、（７）の矢印で示すように、ＳＣ１３００へ、ＣＰＵＢ１２００の状態を表すＢＵＳＹビットを落とす要求を発行する。従って、上記図１１の動作説明において、（２）の矢印で示されるＣＰＵＡによるＳＣへのクロスコールリクエスト（クロスコール要求）の発行から（７）のＣＰＵＢによるＳＣへのＢＵＳＹ状態の解除までの期間がＳＣにおけるＢＵＳＹ期間（ＢＵＳＹ上部の矢印）となる。
【００１２】
ＸＣＳＣ１１２１、１２２１は、データレジスタと、クロスコールのＢＵＳＹ（クロスコール発行中）及びＮＡＣＫ（クロスコールの発行失敗）の状態を記憶するステータスレジスタと、コマンドの発行順及び発行内容を記憶しておくコマンドＦＩＦＯとを有している。このステータスレジスタの構成例を図１２に示し、コマンドＦＩＦＯの構成例を図１３に示す。
【００１３】
図１２に示すように、ステータスレジスタは、クロスコールのＢＵＳＹ及びＮＡＣＫの状態、すなわち、クロスコールに係る処理の処理状況を、ＢＵＳＹとＮＡＣＫとのペア番号（ＢＮ番号）毎に保持して管理する。
【００１４】
図１３に示すように、コマンドＦＩＦＯは、クロスコールの発行履歴を保持して管理するものであり、コマンドの発行の状況を管理するための各種のデータを保持すると共に、ＳＣ１３００へ発行するクロスコールの相手先であるＣＰＵ等を示す識別子であるターゲットＩＤ（ＴＩＤ）と、逐次発行されるクロスコールを個々に識別するための識別子であるリクエストＩＤ（ＲＥＱＩＤ）とを保持する。また、ステータスレジスタとの対応を取るために、上記のＢＮ番号をも保持しておく。なお、ステータスレジスタ及びコマンドＦＩＦＯにおいて予め確保されるエントリの数は、ＣＰＵコア部１１１０、１２１０が発行するクロスコール発行要求数の最大数に一致させるが、これはＣＰＵコア部１１１０、１２１０の仕様により決定されるものである。
【００１５】
このように、従来はステータスレジスタとコマンドＦＩＦＯとが別個に設けられていたため、両者の対応関係を示すＢＮ番号をコマンドＦＩＦＯで保持していた。
このため、近年における大規模ＳＭＰ(Symmetrical Multi-Processor)システムやマルチコアプロセサのように、計算機システム内においてクロスコールを発行するプロセサ又はプロセサコアの増加とともに、必然的にコマンドＦＩＦＯにおけるクロスコール用のエントリ数が増加するため、クロスコール制御に係るハードウェア資源が増大するという問題があった。
【００１６】
本発明は上述した問題に鑑みてなされたものであり、その解決しようとする課題は、計算機システムにおける大規模ＳＭＰ化及びプロセサのマルチコア化並びに処理のマルチスレッド化によるクロスコールの制御のために要する資源の増大を抑制することである。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本発明の演算処理装置は、他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、を有する演算処理装置であることを特徴とする。
【００１８】
さらに、本発明の演算処理装置は、前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する演算処理装置であることを特徴とする。
【００１９】
さらに、本発明の演算処理装置は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする演算処理装置であることを特徴とする。
【００２０】
さらに、本発明の演算処理装置は、前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする演算処理装置であることを特徴とする。
【００２１】
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有する演算処理装置であることを特徴とする。
【００２２】
さらに、本発明の情報処理装置は、複数の演算処理装置を備えた情報処理装置であって、前記演算処理装置が、前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、を有する情報処理装置であることを特徴とする。
【００２３】
さらに、本発明の情報処理装置は、前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する情報処理装置であることを特徴とする。
【００２４】
さらに、本発明の情報処理装置は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする情報処理装置であることを特徴とする。
【００２５】
さらに、本発明の情報処理装置は、前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする情報処理装置であることを特徴とする。
【００２６】
さらに、本発明の情報処理装置は、前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有する情報処理装置であることを特徴とする。
【００２７】
さらに、本発明の演算処理装置は、複数の演算処理部を有する演算処理装置であって、前記複数の演算処理部のいずれかから他の演算処理装置における演算処理部へ宛てて発行されるクロスコールの送信を制御する制御部と、前記演算処理部毎に設けられており、前記クロスコールに係る処理の処理状況と、前期処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、を有する演算処理装置であることを特徴とする。
【００２８】
さらに、本発明の演算処理装置は、前記制御部は、他の演算処理装置における演算処理部宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域と、を有する演算処理装置であることを特徴とする。
【００２９】
さらに、本発明の演算処理装置は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有する演算処理装置であることを特徴とする。
【００３０】
さらに、本発明の演算処理装置は、前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行う演算処理装置であることを特徴とする。
さらに、本発明の演算処理装置は、前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有する演算処理装置であることを特徴とする。
【００３１】
さらに、本発明のクロスコールの送信制御方法は、演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、前記クロスコールに係る処理の処理状況と、前記クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップを有することを特徴とするクロスコールの送信制御方法であることを特徴とする。
【００３２】
さらに、本発明のクロスコールの送信制御方法は、前記クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップの後に、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを前記演算処理装置で判定するステップをさらに有するクロスコールの送信制御方法であることを特徴とする。
【００３３】
さらに、本発明のクロスコールの送信制御方法は、前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを前記演算処理装置で判定するステップの後に、前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、そのどちらか一方を前記調停部へ導く信号線へと出力するステップをさらに有するクロスコールの送信制御方法であることを特徴とする。
【００３４】
さらに、本発明の演算処理装置は、他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、前記クロスコールの発行履歴を保持するための記憶領域として、当該クロスコールを個々に識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を個々に識別する識別子の記憶領域とを有する記憶部と、を有する演算処理装置であることを特徴とする。
【００３５】
さらに、本発明の情報処理装置は、複数の演算処理装置を備えた情報処理装置であって、前記演算処理装置が、前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を前記演算処理装置の外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、を有する情報処理装置であることを特徴とする。
【００３６】
さらに、本発明のクロスコールの演算処理装置は、複数の演算処理部を有する演算処理装置であって、他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、前記演算処理部毎に設けられており、前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、を有する演算処理装置であることを特徴とする。
【００３７】
さらに、本発明のクロスコールの送信制御方法は、演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、信号を前記演算処理装置から外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求と、前記クロスコールに係る処理に関するデータの送信要求とを制御するステップと、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを有する記憶部において、前記クロスコールの発行履歴を保持するステップと、を有するクロスコールの送信制御方法であることを特徴とする。
【発明の効果】
【００３８】
本発明によれば、以上のようにすることにより、計算機システムのマルチコア化や処理のマルチスレッド化によるクロスコールの制御のために要する資源の増大が抑制されるという効果を奏する。
【発明を実施するための最良の形態】
【００３９】
まず、本発明における実施の形態を説明する前に、図１１の（１）から（４）にかけての矢印で示されているクロスコール送信時における、ＸＣＳＣ１１２１の内部動作について説明する。
【００４０】
ＣＰＵコア部１１１０から送られてきたクロスコールのデータがデータレジスタに書き込まれた後、ＢＮ番号の指定を伴ったＢＵＳＹビットへの書き込み要求がＣＰＵコア部１１１０から送られてくる。この要求に応じ、ステータスレジスタにおける指定されているＢＮ番号のＢＵＳＹビットが立てられるのと同時に、コマンドＦＩＦＯに当該ＢＮ番号が格納され、更にＶＬＤ（Valid ）ビットがセットされる。このとき、ＸＣＳＣ１１２１よりＸＣＡＬＬ＿ＲＥＱ（クロスコールリクエスト）の発行要求が調停部へと送信される。
【００４１】
調停部は、ＣＰＵコア部１１１０とＳＣ１３００との間のバス（信号線）の使用の優先順位を調停し、コマンドの発行を効率的に行えるように、且つ仕様に則って行うように、制御するためのブロックであり、外部インタフェース部１１２０に設けられている（もちろん、調停部は、ＣＰＵ１２００の外部インタフェース部１２２０にも同様に設けられている）。この調停部においてバスの使用権が得られると、コマンドＦＩＦＯ内の当該ＢＮ番号に対応するＩＳＤ（Issued）ビットがセットされ、前述のＸＣＡＬＬ＿ＲＥＱをＳＣ１３００へ発行する。
【００４２】
ここで、ＳＣ１３００からＮＡＣＫが返ってきた場合には、ステータスレジスタのＢＵＳＹビットとコマンドＦＩＦＯのＶＡＬＩＤビットとを落とし、代わってステータスレジスタのＮＡＣＫビットをセットし、クロスコールの発行失敗を表示する。一方、ＳＣ１３００からＡＣＫが返ってきた場合には、データレジスタに保持しておいたデータをＳＣ１３００へ発行し、併せて、コマンドＦＩＦＯのＶＬＤビット及びＩＳＤビットと、ステータスレジスタのＢＵＳＹビットとを落とす。
【００４３】
ＸＣＳＣ１１２１内部では以上のような動作を行っていた。
このように、従来は、上述したＸＣＳＣ１１２１の動作において、ＡＣＫをＳＣ１３００から受信した後のデータ送信は常に固定した動作サイクルの後に行われており、また、このデータ送信はＡＣＫ受信後直ちに可能であったので、データ送信用のリクエスト信号は不要であった。
【００４４】
ところが、このＡＣＫ受信後のデータ送信のタイミングが不定の場合には、クロスコールに係る処理に関するデータの送信の要求（Slave Write Cross Call Request、以下、「ＳＷＸＣ＿ＲＥＱ」と記す）の発行要求を調停部へ発行すると共に、当該データ送信の発行順を制御する必要が生じる。なお、ＡＣＫ受信後のデータ送信タイミングが固定であるか否かは、バスの仕様に依存するものである。
【００４５】
更に加えて、ＸＣＡＬＬ＿ＲＥＱの発行順にＡＣＫがＳＣ１３００から返ってくるかどうかもバスの仕様に依存している。従って、ＳＣ１３００側で例えば待ち合わせ回路の削減等の事情により、ＸＣＡＬＬ＿ＲＥＱの発行順にＡＣＫがＳＣ１３００から返ってくることが保証されていない場合には、ＳＷＸＣ＿ＲＥＱ発行時にも返答の順番が入れ替わる可能性が生じる。
【００４６】
従って、上述した従来のコマンドＦＩＦＯのエントリ構成のままでこの返答の順番の入れ替わりに対処するには、途中で順番が入れ替わる可能性があるため複雑な制御が必要となるが、エントリ毎に単純に制御回路を増やせば、クロスコールのエントリ数が多いため、非常に多くの資源を必要とすることとなる。
【００４７】
次に、本発明の実施の形態を図面に基づいて説明する。
図１は、本発明を実施するマルチＣＰＵシステムの構成を示している。
同図において、ＣＰＵＡ１０、ＣＰＵＢ１１０、及びメモリ４００がＳＣ３００に接続されている。ここで、ＣＰＵＡ１０とＣＰＵＢ１１０との各々のＣＰＵコア部２０、１２０は、外部インタフェース部３０、１３０を各々介してＳＣ３００に接続されている。この外部インタフェース部３０、１３０には、ＸＣＳＣ４０、１４０とＸＣＲＣ５０、１５０とが各々備えられている。ここで、同図におけるＣＰＵ間クロスコールは、例えばＣＰＵＡ１０及びＣＰＵＢ１１０との間において、ＳＣ３００を介することにより、実行される。
【００４８】
次に図２について説明する。同図は、本発明を実施するＣＰＵＡ１０の外部インタフェース部の構成を示している。なお、同図は図１におけるＣＰＵＡ１０の外部インタフェース部３０の構成を示しているが、ＣＰＵＢ１１０の外部インタフェース部１３０も同様の構成を有している。
【００４９】
ＣＰＵＡ１０のＣＰＵコア部２０は、外部インタフェース部３０を介してＳＣ３００に接続されている。
クロスコールの制御は外部インタフェース部３０によって行われる。外部インタフェース部３０は、ＸＣＳＣ４０、ＸＣＲＣ５０、及び調停部７０を有している。ここで、ＸＣＳＣ４０はクロスコールの送信制御を行うものであり、ＸＣＲＣ５０はクロスコールの受信制御を行うものである。また、調停部７０は、ＣＰＵコア部２０とＳＣ３００との間のバス（信号線）の使用の権限（優先順位）を調停し、コマンドの発行を効率的に行えるように、且つ仕様に則って行うように、制御するものである。
【００５０】
ＸＣＳＣ４０はレジスタ４１、ＩＤ判定回路４２、ＩＤ記憶制御回路４３、発行要求切り替え回路４４、動作制御部４５、及びデータレジスタ６０を有している。
レジスタ４１は、各クロスコールのＢＵＳＹ及びＮＡＣＫの状態並びにコマンドの発行内容をクロスコールの管理のために一括して記憶しておく記憶部として機能する。
【００５１】
ＩＤ判定回路４２は、レジスタ４１の所定の記憶領域に保持される識別子（ＩＤ）が何についてのものであるかを、ＸＣＳＣ４０による制御動作の進捗状況を示すステータス情報に基づいて判定するものである。また、ＩＤ記憶制御回路４３は、レジスタ４１の当該所定の記憶領域で保持させる識別子を、ＸＣＳＣ４０による制御動作の進捗状況を示すステータスに応じて選択するものである。
【００５２】
発行要求切り替え回路４４は、クロスコールの発行要求と当該クロスコールに係る処理に関するデータの送信要求とを、ＣＰＵコア部２０とＳＣ３００との間のバスの使用状況に基づいて切り替えるものである。
【００５３】
動作制御部４５は、ＸＣＳＣ４０の動作制御を行うものである。
データレジスタ６０は、ＣＰＵコア部２０から送られてきたクロスコールのデータを一時的に格納しておくものである。
【００５４】
次に図３について説明する。同図は、図２に示したレジスタ４１の構成を例示している。
図３に示すように、このレジスタ４１は、クロスコールに係る処理の処理状況、すなわち、クロスコールのＢＵＳＹ（クロスコール発行中）及びＮＡＣＫ（クロスコールの発行失敗）の状態を、クロスコールのエントリ毎、ここではＢＵＳＹとＮＡＣＫとのペア番号（ＢＮ番号）毎に保持して管理する。加えて、このレジスタ４１は、クロスコールの発行履歴の管理のため、コマンドの発行の状況を管理するための各種のデータ（図３では「ｅｔｃ」と表示）を保持すると共に、ＳＣ３００へ発行するクロスコールの相手先であるＣＰＵ等を示す識別子であるターゲットＩＤ（ＴＩＤ）をＢＮ番号毎に保持して管理する。更に、レジスタ４１にはＨＯＬＤ＿ＩＤなる記憶領域がＢＮ番号毎に用意されている。この記憶領域には、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤ、ＳＷＸＣ＿ＲＥＱ＿ＩＤ、及びＲＥＱＩＤのいずれかが記憶されて管理される。
【００５５】
ここで、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤは、ＸＣＳＣ４０が調停部７０へ送付する、ＸＣＡＬＬ＿ＲＥＱ（クロスコール要求）の発行要求の管理のために、当該発行要求に対して個々に与えられる識別子である。
【００５６】
また、ＳＷＸＣ＿ＲＥＱ＿ＩＤは、ＸＣＳＣ４０が調停部７０へ送付する、ＳＷＸＣ＿ＲＥＱ（クロスコールに係る処理に関するデータの送信要求）の発行要求の管理のために、当該発行要求に対して個々に与えられる識別子である。
【００５７】
なお、ＲＥＱＩＤは、クロスコールを個々に識別するための識別子である。
このように、クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とを直接対応付けて当該クロスコールのエントリ毎にレジスタ４１で保持するようにしたことにより、これらを対応付けるための情報を保持しておくための専用の記憶領域が不要となる。また、従来は、上述した各識別子を別々の記憶領域で記憶して管理していたが、このように同一の記憶領域を共用することにより、記憶領域の節約となる。
【００５８】
但し、同一の記憶領域を共用してこれらの識別子の管理を行うためには、当該記憶領域に記憶されている識別子が上述したもののうちのどれであるかを判別できなければならない。以下、この判別の手法について説明する。
【００５９】
図４について説明する。同図は、図２のＸＣＳＣ４０の動作制御部４５によるクロスコールの送信制御動作の流れを示しており、併せて、当該制御動作の進捗状況を示すステータス情報である、ＸＣＡＬＬ＿ＶＬＤ、ＸＣＡＬＬ＿ＩＳＤ、ＳＷＸＣ＿ＶＬＤの各ビットの遷移の様子を表している。
【００６０】
まず、Ｓ１０１は初期状態を示しており、これは、ＳＣ３００に接続されている他のＣＰＵ（図１においてはＣＰＵＢ１１０）へ宛てて発行されるＣＰＵコア部２０からのクロスコールをレジスタ４１へ受け入れることが可能な状態である。
【００６１】
ここで、ＣＰＵコア部２０からまずＸＣＡＬＬ＿ＲＥＱ（クロスコールリクエスト）の発行要求と当該ＸＣＡＬＬ＿ＲＥＱに対応するＢＮ番号とが送られてくる。すると、制御動作はＳ１０２へと進み、ＸＣＳＣ４０はＣＰＵコア部２０から次に送られてくるクロスコールのデータをデータレジスタ６０に書き込むと共に、その発行要求と共に送られてきたＢＮ番号に対応するレジスタ４１のエントリにおけるＢＵＳＹビットを立てる。そして、ＸＣＡＬＬ＿ＲＥＱの発行要求を調停部７０へと送信すると共に、当該ＢＮ番号に対応するＸＣＡＬＬ＿ＶＬＤビットをセットして当該発行要求の送信完了を表示する。なお、当該発行要求の送信に併せて、この発行要求を個々に識別するための識別子であるＸＣＡＬＬ＿ＲＥＱ＿ＩＤを生成してレジスタ４１の当該エントリのＨＯＬＤ＿ＩＤで保持する。
【００６２】
ＸＣＡＬＬ＿ＲＥＱの発行要求に対し調停部７０においてバスの使用権が得られると、制御動作はＳ１０３へと進み、ＸＣＳＣ４０は、ＸＣＡＬＬ＿ＲＥＱをＳＣ３００へ発行すると共に、レジスタ４１内の当該エントリのＸＣＡＬＬ＿ＶＬＤビットを落とし、その代わりに当該エントリのＸＣＡＬＬ＿ＩＳＤビットをセットしてＸＣＡＬＬ＿ＲＥＱの発行完了を表示する。なお、ＸＣＳＣ４０は、このＸＣＡＬＬ＿ＲＥＱを個々に識別するための識別子であるＲＥＱＩＤを生成し、ＸＣＡＬＬ＿ＲＥＱと共にＳＣ３００へ送信する。レジスタ４１の当該エントリのＨＯＬＤ＿ＩＤでは、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤに代えて、このＲＥＱＩＤを保持する。
【００６３】
このＸＣＡＬＬ＿ＲＥＱの発行に対し、ＳＣ３００からＮＡＣＫが返ってきた場合には、制御動作はＳ１０４へと進み、レジスタ４１の当該エントリのＸＣＡＬＬ＿ＩＳＤビットとを落とし、この代わりに当該エントリのＮＡＣＫビットをセットしてクロスコールの発行失敗を表示し、ＣＰＵコア部２０によるクロスコールリクエストの発行要求のリトライを待つこととなる。ここで、例えば所定時間経過後にＣＰＵコア部２０からのクロスコールリクエストの発行要求を改めて受けた場合には、制御動作はＳ１０２へと戻り、上述した制御動作が再度行われる。
【００６４】
一方、ＸＣＡＬＬ＿ＲＥＱの発行に対し、ＳＣ３００からＡＣＫが返ってきた場合には、制御動作はＳ１０５へと進み、ＸＣＳＣ４０は、ＳＷＸＣ＿ＲＥＱの発行要求を調停部７０へと送信すると共に、レジスタ４１の当該エントリのＸＣＡＬＬ＿ＩＳＤビットを落とし、この代わりに当該エントリのＳＷＸＣ＿ＶＬＤビットをセットして当該発行要求の送信完了を表示する。このとき、当該発行要求の送信に併せて、この発行要求を個々に識別するための識別子であるＳＷＸＣ＿ＲＥＱ＿ＩＤを生成し、レジスタ４１の当該エントリのＨＯＬＤ＿ＩＤで、ＲＥＱＩＤに代えて、このＳＷＸＣ＿ＲＥＱ＿ＩＤを保持する。
【００６５】
ＳＷＸＣ＿ＲＥＱの発行要求に対し調停部７０においてバスの使用権が得られると、制御動作はＳ１０６へと進み、ＸＣＳＣ４０は、レジスタ４１の当該エントリのＳＷＸＣ＿ＶＬＤビットを落とし、データレジスタに保持しておいたデータを含めたＳＷＸＣ＿ＲＥＱを調停部７０へと送信し、当該データをＳＣ３００へと発行する。
【００６６】
以上のようにしてクロスコールのデータの発行が完了したときには、ＸＣＳＣ４０は、レジスタ４１の当該エントリのＢＵＳＹビットを落とし、制御動作はＳ１０１へと戻り、上述した制御動作が再度行われる。
【００６７】
ＣＰＵコア部２０からのクロスコールリクエストの発行要求において指定されているＢＮ番号に対応するレジスタ４１の各エントリの内容は、ＸＣＳＣ４０におけるクロスコールの送信制御動作の流れに応じ、上述したように遷移する。従って、当該エントリにおけるＨＯＬＤ＿ＩＤに現在保持されている識別子が何であるかは、当該エントリのステータス、すなわち、ＸＣＡＬＬ＿ＶＡＬＩＤ、ＸＣＡＬＬ＿ＩＳＤ、及びＳＷＸＣ＿ＶＬＤの各ビットの状態により判別することができるのである。
【００６８】
次に、ＩＤ判定回路４２、ＩＤ記憶制御回路４３、及び発行要求切り替え回路４４について説明する。
まず図５について説明する。同図はＩＤ判定回路４２の回路例を示している。ＩＤ判定回路４２は、レジスタ４１の各エントリのＨＯＬＤ＿ＩＤに保持されている識別子が何についてのものであるかを、ＸＣＳＣ４０による前述した制御動作の進捗状況を示すステータス情報に基づいて判定するものである。なお、このＩＤ判定回路４２は、エントリ毎に別個に設けられる。
【００６９】
図５において、一致回路８１ａ、８１ｂ、８１ｃは、２つの入力に各々入力された識別子（ＩＤ）が一致した場合にのみ、「Ｈ」レベルの出力を行うものである。また、ＡＮＤ回路８２ａ、８２ｂ、８２ｃは、２つの入力がどちらも「Ｈ」レベルのときにのみ、「Ｈ」レベルの出力を行うものである。ここで、ＡＮＤ回路８２ａの出力であるＸＣＡＬＬ＿ＩＳＤ＿ＩＤ＿ＭＣＨは、レジスタ４１の判定対象のエントリのＨＯＬＤ＿ＩＤに保持していた識別子が、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤであるときに「Ｈ」レベルとなる。また、ＡＮＤ回路８２ｂの出力であるＲＥＱ＿ＩＳＤ＿ＩＤ＿ＭＣＨは、当該判定対象のエントリのＨＯＬＤ＿ＩＤに保持していた識別子が、ＲＥＱ＿ＩＤであるときに「Ｈ」レベルとなる。また、ＡＮＤ回路８２ｃの出力であるＳＷＸＣ＿ＩＳＤ＿ＩＤ＿ＭＣＨは、当該判定対象のエントリのＨＯＬＤ＿ＩＤに保持していた識別子が、ＳＷＸＣ＿ＲＥＱ＿ＩＤであるときに「Ｈ」レベルとなる。
【００７０】
図５において、ＨＯＬＤ＿ＩＤの入力には、レジスタ４１において指定されているＢＮ番号に対応するエントリのＨＯＬＤ＿ＩＤに保持されている識別子が入力される。また、図５におけるＸＣＡＬＬ＿ＲＥＱ＿ＩＤ、ＲＥＱＩＤ、ＳＷＸＣ＿ＲＥＱ＿ＩＤの各入力には、それぞれ、ＸＣＳＣ４０で上記のようにして生成した同一名称の識別子が入力される。更に、図５におけるＸＣＡＬＬ＿ＶＬＤ、ＸＣＡＬＬ＿ＩＳＤ、ＳＷＸＣ＿ＶＬＤの各入力には、それぞれ、レジスタ４１の判定対象であるエントリにおける同一名称の各ビットの状態が入力される。
【００７１】
従って、図５の回路によれば、当該エントリのＨＯＬＤ＿ＩＤに保持されている識別子が、ＸＣＳＣ４０で生成したＸＣＡＬＬ＿ＲＥＱ＿ＩＤ、ＲＥＱＩＤ、ＳＷＸＣ＿ＲＥＱ＿ＩＤのいずれかと一致した場合にのみ、同図の回路の３つの出力（ＸＣＡＬＬ＿ＩＳＤ＿ＩＤ＿ＭＣＨ、ＲＥＱ＿ＩＳＤ＿ＩＤ＿ＭＣＨ、及びＳＷＸＣ＿ＩＳＤ＿ＩＤ＿ＭＣＨ）のうちのいずれかが「Ｈ」レベルとなる。つまり、判定対象であるエントリのＸＣＡＬＬ＿ＶＬＤフラグが立っていれば（すなわち、ＸＣＳＣ４０が図４のＳ１０２までの制御動作を行っていたときには）、図５におけるＸＣＡＬＬ＿ＶＡＬＩＤ時にＸＣＡＬＬ＿ＲＥＱ＿ＩＤとＨＯＬＤ＿ＩＤが一致していることを表すＸＣＡＬＬ＿ＩＳＤ＿ＩＤ＿ＭＣＨの出力のみが「Ｈ」レベルとなり、当該エントリのＨＯＬＤ＿ＩＤに保持していた識別子が、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤであるとの判定結果が示される。また、この場合において、当該エントリのＸＣＡＬＬ＿ＩＳＤフラグが立っていれば（すなわち、ＸＣＳＣ４０が図４のＳ１０３までの制御動作を行っていたときには）、図５におけるＲＥＱ＿ＩＳＤ＿ＩＤ＿ＭＣＨの出力のみが「Ｈ」レベルとなり、当該エントリのＨＯＬＤ＿ＩＤに保持していた識別子が、ＲＥＱＩＤであるとの判定結果が示される。更に、この場合において、当該エントリのＳＷＸＣ＿ＶＬＤフラグが立っていれば（すなわち、ＸＣＳＣ４０が図４のＳ１０５までの制御動作を行っていたときには）、図５におけるＳＷＸＣ＿ＩＳＤ＿ＩＤ＿ＭＣＨの出力のみが「Ｈ」レベルとなり、当該エントリのＨＯＬＤ＿ＩＤに保持していた識別子が、ＳＷＸＣ＿ＲＥＱ＿ＩＤであるとの判定結果が示される。
【００７２】
以上のように、ＸＣＡＬＬ＿ＩＳＤ＿ＩＤ＿ＭＣＨ、ＲＥＱ＿ＩＳＤ＿ＩＤ＿ＭＣＨ、及びＳＷＸＣ＿ＩＳＤ＿ＩＤ＿ＭＣＨの出力の状態を参照することにより、レジスタ４１の判定対象であるエントリのＨＯＬＤ＿ＩＤに保持していた識別子が何であるかを判定することができる。
【００７３】
次に図６について説明する。同図はＩＤ記憶制御回路４３の回路例を示している。ＩＤ記憶制御回路４３は、ＩＤ判定回路４２からの出力の一部を利用し、レジスタ４１の各エントリのステータスに応じて当該エントリのＨＯＬＤ＿ＩＤに保持させるＩＤを選択するものである。なお、このＩＤ記憶制御回路４３も、レジスタ４１のエントリ毎に別個に設けられる。
【００７４】
図６において、ＡＮＤ回路９１ａは、２つの入力がどちらも「Ｈ」レベルのときにのみ、すなわち、当該エントリのＸＣＡＬＬ＿ＩＳＤビットがセットされており、且つ、ＩＤ判定回路４２から出力されるＸＣＡＬＬ＿ＩＳＤ＿ＩＤ＿ＭＣＨが「Ｈ」レベルのときにのみ、「Ｈ」レベルの出力を行う。この出力は、ＸＣＳＣ４０が図４のＳ１０３の制御動作を行ったことを示す。
【００７５】
また、ＡＮＤ回路９１ｂは、２つの入力がどちらも「Ｈ」レベルのときにのみ、すなわち、ＳＣ３００からＡＣＫが帰ってきており、且つ、ＩＤ判定回路４２から出力されるＸＲＥＱ＿ＩＳＤ＿ＩＤ＿ＭＣＨが「Ｈ」レベルのときにのみ、「Ｈ」レベルの出力を行う。この出力は、ＸＣＳＣ４０が図４のＳ１０５の制御動作を行ったことを示す。
【００７６】
ＡＮＤ回路９１ｃは、ＩＤ判定回路４２から出力されるＸＣＡＬＬ＿ＩＳＤ＿ＩＤ＿ＭＣＨが「Ｈ」レベルのとき、すなわち、レジスタ４１の判定対象のエントリのＨＯＬＤ＿ＩＤに保持していた識別子がＸＣＡＬＬ＿ＲＥＱ＿ＩＤであったときに、ＸＣＳＣ４０が図４のＳ１０３の制御動作を行ったことにより生成したＲＥＱＩＤをそのまま出力するものである。
【００７７】
ＡＮＤ回路９１ｄは、ＩＤ判定回路４２から出力されるＲＥＱ＿ＩＳＤ＿ＩＤ＿ＭＣＨが「Ｈ」レベルのとき、すなわち、レジスタ４１の判定対象のエントリのＨＯＬＤ＿ＩＤに保持していた識別子がＲＥＱＩＤであったときに、ＸＣＳＣ４０が図４のＳ１０５の制御動作を行ったことにより生成したＳＷＸＣ＿ＲＥＱ＿ＩＤをそのまま出力するものである。
【００７８】
ＯＲ回路９２ａは、その３つの入力である、当該エントリのＸＣＡＬＬ＿ＩＳＤビットとＡＮＤ回路９１ａ及び９１ｂとのうちの少なくとも１つ以上が「Ｈ」レベルのときに、「Ｈ」レベルの出力を行うものである。ここで、当該エントリのＸＣＡＬＬ＿ＩＳＤビットが「Ｈ」レベルとなるのは、ＸＣＳＣ４０が図４のＳ１０１の制御動作を行ったときである。従って、ＯＲ回路９２ａの出力が「Ｈ」レベルとなるのは、ＸＣＳＣ４０が図４のＳ１０１、Ｓ１０３、Ｓ１０５のいずれかの制御動作を行ったときである。
【００７９】
ＯＲ回路９２ｂは、その３つの入力に各々排他的に入力される識別子である、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤ、ＲＥＱＩＤ、ＳＷＸＣ＿ＲＥＱ＿ＩＤのうちのいずれか１つのみをそのまま出力するものである。
【００８０】
記憶領域９３は、レジスタ４１において指定されているＢＮ番号に対応するエントリのＨＯＬＤ＿ＩＤの領域を表している。ここで、図６には「ＥＮ」の表示があるが、この表示は、ＯＲ回路９２ａの出力が記憶領域９３でのデータ記憶についてのイネーブル（ＥＮＡＢＬＥ）として作用することを表している。つまり、ＯＲ回路９２ａの出力が「Ｈ」レベルとなったとき、すなわち、ＸＣＳＣ４０が図４のＳ１０１、Ｓ１０３、Ｓ１０５のいずれかの制御動作を行ったときに、ＯＲ回路９２ｂから出力されている識別子を保持するように記憶領域９３は動作する。
【００８１】
なお、図６において、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤの値は、ＸＣＡＬＬ＿ＶＬＤビットが無効のときには「０」であるとする。
図６に示したＩＤ記憶制御回路４３の動作について更に説明する。
【００８２】
ＸＣＳＣ４０が図４のＳ１０２の制御動作を行うと、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤが生成されると共に、ＸＣＡＬＬ＿ＶＬＤビットがセットされる。従って、図６の回路では、このときに、ＣＰＵコア部２０から送られてきたクロスコールリクエストの発行要求において指定されているＢＮ番号に対応するレジスタ４１のエントリにおけるＨＯＬＤ＿ＩＤ（記憶領域６３）にはＸＣＡＬＬ＿ＲＥＱ＿ＩＤが保持されることとなる。
【００８３】
また、ＸＣＳＣ４０が図４のＳ１０３の制御動作を行うと、ＲＥＱＩＤが生成されると共に、ＸＣＡＬＬ＿ＶＬＤビットが落とされ、代わりにＸＣＡＬＬ＿ＩＳＤビットがセットされる。このとき、当該エントリにおけるＨＯＬＤ＿ＩＤにはＸＣＡＬＬ＿ＲＥＱ＿ＩＤが保持されているので、図５の回路におけるＸＣＡＬＬ＿ＩＳＤ＿ＩＤ＿ＭＣＨの出力は「Ｈ」レベルとなっている。従って、このときにはＯＲ回路９２ａが改めて「Ｈ」レベルとなるので、当該エントリにおけるＨＯＬＤ＿ＩＤにはＲＥＱＩＤが保持されることとなる。
【００８４】
その後、ＸＣＳＣ４０が図４のＳ１０５の制御動作を行うと、ＳＷＸＣ＿ＲＥＱ＿ＩＤが生成されると共に、ＸＣＡＬＬ＿ＩＳＤビットが落とされる。このとき、ＳＣ３００からＡＣＫが返ってきている。また、このときには、当該エントリにおけるＨＯＬＤ＿ＩＤにはＲＥＱＩＤが保持されているので、図５の回路におけるＲＥＱ＿ＩＳＤ＿ＩＤ＿ＭＣＨの出力は「Ｈ」レベルとなっている。従って、このときにはＯＲ回路９２ａが改めて「Ｈ」レベルとなるので、当該エントリにおけるＨＯＬＤ＿ＩＤにはＳＷＸＣ＿ＲＥＱ＿ＩＤが保持され、当該ＨＯＬＤ＿ＩＤの値が出力されることとなる。
【００８５】
このように、ＩＤ記憶制御回路４３は、ＸＣＳＣ４０の送信制御動作の流れに応じ、その時点でＸＣＳＣ４０の内部処理のために保持しておく必要のある識別子を、レジスタ４１の各エントリのＨＯＬＤ＿ＩＤに保持させる。
【００８６】
以上のように、従来は別個に設けられていたステータスレジスタとコマンドＦＩＦＯとをレジスタ４１として一体化したことにより、従来はコマンドＦＩＦＯに設けられていたＢＮ番号の記憶領域が削減される。また、ＩＤ判定回路４２及びＩＤ記憶制御回路４３を設けたことにより、ＸＣＡＬＬ＿ＲＥＱ＿ＩＤ、ＲＥＱＩＤ、ＳＷＸＣ＿ＲＥＱ＿ＩＤを保持しておくための記憶領域の共用化を可能にし、記憶領域を従来から増加させることなく、クロスコール制御におけるハードウェア資源の増加を抑制することが可能となる。
【００８７】
このような、レジスタのエントリの制御変更によるハードウェア資源の増加抑制効果は、（エントリあたりの増加抑制効果）×（エントリ数）×（ストランド数）で概算することができる。ここで、ストランド数とは、物理的な１つのＣＰＵコア当たりで構築される論理的なコアの数を示している。近年のＣＰＵのマルチコア化の進展とマルチスレッド処理の採用により、エントリ数及びストランド数はどちらも増加する傾向にあるので、この増加抑制効果は非常に大きなものとなる。
【００８８】
次に図７について説明する。同図は発行要求切り替え回路４４の回路例を示している。
調停部７０では、ＸＣＡＬＬ＿ＲＥＱの発行要求とＳＷＸＣ＿ＲＥＱの発行要求とが競合しても選択されるのはどちらか一方のみであり、同時に両方が発行されることはないことは明らかである。また、バスを介してデータ送信を行っている間は、ＸＣＡＬＬ＿ＲＥＱのような、他の情報を伴わないコマンドを発行することは可能であるが、ＣＰＵコア部２０から送られてきたクロスコールに関するデータを含むＳＷＸＣ＿ＲＥＱのような、他の情報を含むコマンドを発行することはできない。
【００８９】
そこで、ＸＣＳＣ４０を以下のように制御する。すなわち、ＣＰＵＡ１０とＳＣ３００との間のバスの使用状況を示すＢＵＳＹフラグが立っている期間、すなわち、当該バスを介してデータ送信を行っている期間においてはＳＷＸＣ＿ＲＥＱ発行要求を抑止する一方で、その期間においてもＸＣＡＬＬ＿ＲＥＱ発行要求はＸＣＳＣ４０から調停部７０へ送信するように制御する。これに対し、当該ＢＵＳＹフラグが落ちている期間、すなわち、バスを介したデータ送信を行っていない期間においてはＳＷＸＣ＿ＲＥＱ発行要求を優先して調停部７０へ送信し、ＳＷＸＣ＿ＲＥＱ発行要求がないときにはＸＣＡＬＬ＿ＲＥＱ発行要求を調停部７０へ送信するように制御する。ここで、同一のＢＮ番号に対応するＸＣＡＬＬ＿ＲＥＱの発行要求とＳＷＸＣ＿ＲＥＱの発行要求とは排他的に生じるものであって同時に生じることはないので、このような制御を行ってもクロスコール動作が滞ることはない。
【００９０】
発行要求切り替え回路４４はこの制御を行う回路である。
図７において、ＯＲ回路１０１は、２つの入力のうちの少なくとも１つ以上が「Ｈ」レベルのとき、すなわち、２つのＡＮＤ回路１０２ａ、１０２ｂの各々の出力のうちの少なくとも１つ以上が「Ｈ」レベルのときに、「Ｈ」レベルの出力を行う。
【００９１】
ここで、ＡＮＤ回路１０２ａの出力が「Ｈ」レベルとなるのは、ＣＰＵコア部２０とＳＣ３００との間のバスの使用状況を示すＢＵＳＹビット（ＤＡＴＡ＿ＢＵＳＹ）が立っている状態の下で、ＸＣＡＬＬ＿ＲＥＱ＿ＰＲＥビットが「Ｈ」レベルとなった場合のみである。ここで、ＸＣＡＬＬ＿ＲＥＱ＿ＰＲＥビットとは、図４に示したＸＣＳＣ４０の送信制御動作がＳ１０２へと進み、ＸＣＡＬＬ＿ＲＥＱ発行要求を発生させるためのトリガとしてＸＣＳＣ４０内部でセットされる（「Ｈ」レベルとされる）ビットである。つまり、ＣＰＵコア部２０とＳＣ３００との間でバスを介してデータ送信を行っている状態の下で、ＸＣＡＬＬ＿ＲＥＱ発行要求が生じた場合に、ＡＮＤ回路１０２ａは「Ｈ」レベルとなる。
【００９２】
また、ＡＮＤ回路１０２ｂの出力が「Ｈ」レベルとなるのは、当該ＢＵＳＹビットが立っていない状態であって、且つ、ＳＷＸＣ＿ＲＥＱ＿ＰＲＥビットが「Ｌ」レベルの状態の下でＸＣＡＬＬ＿ＲＥＱ＿ＰＲＥビットが「Ｈ」レベルとなった場合のみである。ここで、ＳＷＸＣ＿ＲＥＱ＿ＰＲＥは、図４に示したＸＣＳＣ４０の送信制御動作がＳ１０５へと進み、ＳＷＸＣ＿ＲＥＱ発行要求を発生させるためのトリガとしてＸＣＳＣ４０内部でセットされる（「Ｈ」レベルとされる）ビットである。つまり、バスを介したデータ送信を行っていない期間であって、且つ、ＳＷＸＣ＿ＲＥＱ発行要求がない期間において、ＸＣＡＬＬ＿ＲＥＱ発行要求が生じた場合に、ＡＮＤ回路１０２ｂは「Ｈ」レベルとなる。
【００９３】
ＯＲ回路７１は、上記した２つの場合にのみ、ＸＣＡＬＬ＿ＲＥＱを「Ｈ」レベルとしてＸＣＡＬＬ＿ＲＥＱ発行要求の調停部７０への送信を許可する。
一方、ＡＮＤ回路１０２ｃは、当該ＢＵＳＹビットが立っていない状態の下でＳＷＸＣ＿ＲＥＱ＿ＰＲＥが「Ｈ」レベルとなった場合にのみ、つまり、バスを介したデータ送信を行っていない期間において、ＳＷＸＣ＿ＲＥＱ発行要求が生じた場合にのみ、ＳＷＸＣ＿ＲＥＱを「Ｈ」レベルとしてＳＷＸＣ＿ＲＥＱ発行要求の調停部７０への送信を許可する。
【００９４】
以上のように動作する回路をＸＣＳＣ４０に備えることにより、ＸＣＳＣ４０から調停部７０への配線が、ＸＣＡＬＬ＿ＲＥＱのためのものとＳＷＸＣ＿ＲＥＱのためのものとで共用できるようになるので、これらの信号線を別個に調停部７０へ配線する場合に比べ、ＣＰＵコア部２０からの他のリクエストとの調停を取るために配線が密集する調停部７０周辺の配線量が減少する。
【００９５】
次に、本発明の他の実施形態について説明する。これより説明する実施形態は、複数のＣＰＵコアを有しているＣＰＵでマルチＣＰＵシステムを構成するものである。このマルチＣＰＵシステムの構成を図８に示す。
【００９６】
同図において、ＣＰＵＡ５１０、ＣＰＵＢ６１０、及びメモリ４００がＳＣ３００に接続されている。ここで、ＣＰＵＡ５１０はＣＰＵコア部ＡＡ５２０とＣＰＵコア部ＡＢ５２１とを有しており、ＣＰＵＢ６１０はＣＰＵコア部ＢＡ６２０とＣＰＵコア部ＢＢ６２１とを有している。ＣＰＵコア部ＡＡ５２０及びＣＰＵコア部ＡＢ５２１は、どちらも外部インタフェース部５３０を介してＳＣ３００に接続されており、ＣＰＵコア部ＢＡ６２０及びＣＰＵコア部ＢＢ６２１は、どちらも外部インタフェース部６３０を介してＳＣ３００に接続されている。外部インタフェース部５３０、６３０には、ＸＣＳＣ５４０、６４０とＸＣＲＣ５５０、６５０とが各々備えられている。
【００９７】
次に図９について説明する。同図は、図８に示したＣＰＵＡ５１０の外部インタフェース部５３０の構成を示している。なお、図８に示したＣＰＵＢ６１０の外部インタフェース部６３０も同様の構成を有している。
【００９８】
ＣＰＵＡ５１０のＣＰＵコア部ＡＡ５２０及びＣＰＵコア部ＡＢ５２１は、どちらも外部インタフェース部５３０を介してＳＣ３００に接続されている。
クロスコールの制御は外部インタフェース部５３０によって行われる。外部インタフェース部５３０は、ＸＣＳＣ５４０、ＸＣＲＣ５５０、及び調停部５７０を有している。ここで、ＸＣＳＣ５４０はクロスコールの送信制御を行うものであり、ＸＣＲＣ５５０はクロスコールの受信制御を行うものである。また、調停部５７０は、２つのＣＰＵコア部５２０、５２１とＳＣ３００との間のバス（信号線）の使用の権限（優先順位）を調停し、コマンドの発行を効率的に行えるように、且つ仕様に則って行うように、制御するものである。
【００９９】
ＸＣＳＣ５４０の構成はレジスタ５４１、ＩＤ判定回路５４２、ＩＤ記憶制御回路５４３、発行要求切り替え回路５４４、動作制御部５４５、及びデータレジスタ５６０を有している。
【０１００】
レジスタ５４１は、各クロスコールのＢＵＳＹ及びＮＡＣＫの状態並びにコマンドの発行内容をクロスコールの管理のために一括して記憶しておく記憶部として機能する。なお、レジスタ５４１は、ＣＰＵコア部ＡＡ５２０用のレジスタ５４１−１と、ＣＰＵコア部ＡＢ５２１用のレジスタ５４１−２とを有している。なお、このレジスタ５４１−１及び５４１−２の構成は、どちらも図３に示したレジスタ４１の構成と同一である。
【０１０１】
ＩＤ判定回路５４２は、レジスタ５４１の所定の記憶領域に保持される識別子（ＩＤ）が何についてのものであるかを、ＸＣＳＣ５４０による制御動作の進捗状況を示すステータス情報に基づいて判定するものであり、図５に示したＩＤ判定回路４２と同一構成のものである。また、ＩＤ記憶制御回路５４３は、レジスタ５４１の当該所定の記憶領域で保持させる識別子を、ＸＣＳＣ５４０による制御動作の進捗状況を示すステータスに応じて選択するものであり、図６に示したＩＤ記憶制御回路４３と同一構成のものである。
【０１０２】
発行要求切り替え回路５４４は、クロスコールの発行要求と当該クロスコールに係る処理に関するデータの送信要求とを、２つのＣＰＵコア部５２０、５２１とＳＣ３００との間のバスの使用状況に基づいて切り替えるものであり、図７に示した発行要求切り替え回路４４と同一構成のものである。
【０１０３】
動作制御部５４５は、ＸＣＳＣ５４０の動作制御を行うものであり、動作制御部５４５によって行われるＸＣＳＣ４０のクロスコールの送信制御動作の流れは、図４に示したものと同一の流れによって行われる。
【０１０４】
データレジスタ４６０は、２つのＣＰＵコア部５２０、５２１から送られてきたクロスコールのデータを一時的に格納しておくものである。
このように、複数のＣＰＵコアを有しているＣＰＵにおいても、従来はＣＰＵコア毎に別個に設けられていたステータスレジスタとコマンドＦＩＦＯとをレジスタ５４１−１及び５４１−２として一体化してＣＰＵコア毎に設けたことにより、従来はコマンドＦＩＦＯに設けられていたＢＮ番号の記憶領域が削減される。また、ＩＤ判定回路５４２及びＩＤ記憶制御回路５４３を設けることで、前述した実施例と同様、レジスタ５４１−１及び５４１−２におけるＸＣＡＬＬ＿ＲＥＱ＿ＩＤ、ＲＥＱＩＤ、ＳＷＸＣ＿ＲＥＱ＿ＩＤを保持しておくための記憶領域の共用化を可能にしたことにより、記憶領域を従来から増加させることなく、クロスコール制御における仕様の変更への対処が可能となる。
【０１０５】
このような、レジスタのエントリの制御変更によるハードウェア資源の増加抑制効果は、複数のＣＰＵコアを有しているＣＰＵにおいては、（エントリあたりの増加抑制効果）×（エントリ数）×（ストランド数）×（ＣＰＵコア数）で概算することができる。従って、前述した単一ＣＰＵコアを持つＣＰＵ同様、複数のＣＰＵコアを持つＣＰＵにおいても、ハードウェア増加の抑制効果は非常に大きなものとなる。
【０１０６】
以上、本発明の実施形態を説明したが、本発明は、上述した各実施形態に限定されることなく、本発明の要旨を逸脱しない範囲内で種々の改良・変更が可能である。
なお、上記した実施の形態から次のような構成の技術的思想が導かれる。
【０１０７】
（付記１）
他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、
前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有することを特徴とする演算処理装置。
【０１０８】
（付記２）
前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする付記１に記載の演算処理装置。
【０１０９】
（付記３）
前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする付記２に記載の演算処理装置。
【０１１０】
（付記４）
前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする付記３に記載の演算処理装置。
【０１１１】
（付記５）
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有することを特徴とする付記２に記載の演算処理装置。
【０１１２】
（付記６）
複数の演算処理装置を備えた情報処理装置であって、
前記演算処理装置が、
前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御する制御部と、
前記クロスコールに係る処理の処理状況と、前記処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有する
ことを特徴とする情報処理装置。
【０１１３】
（付記７）
前記制御部は、他の演算処理装置宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする付記６に記載の情報処理装置。
【０１１４】
（付記８）
前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする付記７に記載の情報処理装置。
【０１１５】
（付記９）
前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする付記８に記載の情報処理装置。
【０１１６】
（付記１０）
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有することを特徴とする付記７に記載の情報処理装置。
【０１１７】
（付記１１）
複数の演算処理部を有する演算処理装置であって、
前記複数の演算処理部のいずれかから他の演算処理装置における演算処理部へ宛てて発行されるクロスコールの送信を制御する制御部と、
前記演算処理部毎に設けられており、前記クロスコールに係る処理の処理状況と、前期処理状況に対応する前記クロスコールの発行履歴とをクロスコールのエントリ毎に保持する記憶部と、
を有することを特徴とする演算処理装置。
【０１１８】
（付記１２）
前記制御部は、他の演算処理装置における演算処理部宛てのクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御し、
前記記憶部は、前記クロスコールを識別する識別子を記憶する第一の記憶領域と、前記発行要求を識別する識別子を記憶する第二の記憶領域と、前記送信要求を識別する識別子を記憶する第三の記憶領域とを有する、
ことを特徴とする付記１１に記載の演算処理装置。
【０１１９】
（付記１３）
前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを判定する判定部を更に有することを特徴とする付記１２に記載の演算処理装置。
【０１２０】
（付記１４）
前記判定部は、前記制御部による前記制御の進捗状況を示す情報に基づいて、前記判定を行うことを特徴とする付記１３に記載の演算処理装置。
【０１２１】
（付記１５）
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、前記制御部から前記調停部へ導く信号線へと出力する発行要求切り替え部を更に有することを特徴とする付記１２に記載の演算処理装置。
【０１２２】
（付記１６）
演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、
前記クロスコールに係る処理の処理状況と、前記クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップ
を有することを特徴とするクロスコールの送信制御方法。
【０１２３】
（付記１７）
前記クロスコールに係る処理の処理状況と、当該クロスコールの発行履歴とをクロスコールのエントリ毎に前記演算処理装置の記憶部で保持しておくステップの後に、
前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを前記演算処理装置で判定するステップをさらに有することを特徴とする付記１６に記載のクロスコールの送信制御方法。
【０１２４】
（付記１８）
前記記憶部の前記記憶領域に保持されている識別子が何についてのものかを前記演算処理装置で判定するステップの後に、
前記発行要求と前記送信要求とを前記信号線の使用状況に基づいて切り替えて、そのどちらか一方を前記調停部へ導く信号線へと出力するステップをさらに有することを特徴とする付記１６に記載のクロスコールの送信制御方法。
【０１２５】
（付記１９）
他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
前記クロスコールの発行履歴を保持するための記憶領域として、当該クロスコールを個々に識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を個々に識別する識別子の記憶領域とを有する記憶部と、
を有することを特徴とする演算処理装置。
【０１２６】
（付記２０）
複数の演算処理装置を備えた情報処理装置であって、
前記演算処理装置が、
前記情報処理装置に備えられている他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を前記演算処理装置の外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を個々に識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、
を有する
ことを特徴とする情報処理装置。
【０１２７】
（付記２１）
複数の演算処理部を有する演算処理装置であって、
他の演算処理装置へ宛てて発行されるクロスコールの送信を制御すると共に、信号を外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求の送信と、前記クロスコールに係る処理に関するデータの送信要求の送信とを制御する制御部と、
前記演算処理部毎に設けられており、前記クロスコールの発行履歴を保持するための記憶領域として、前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを共用している記憶部と、
を有することを特徴とする演算処理装置。
【０１２８】
（付記２２）
演算処理装置から他の演算処理装置へ宛てて発行されるクロスコールの送信を前記演算処理装置で制御する方法であって、
信号を前記演算処理装置から外部へ導く信号線の使用権を調停する調停部に対して行われる、前記クロスコールの発行要求と、前記クロスコールに係る処理に関するデータの送信要求とを制御するステップと、
前記クロスコールを識別する識別子の記憶領域と、前記発行要求を識別する識別子の記憶領域と、前記送信要求を識別する識別子の記憶領域とを有する記憶部において、前記クロスコールの発行履歴を保持するステップとを有する、
ことを特徴とするクロスコールの送信制御方法。
【図面の簡単な説明】
【０１２９】
【図１】本発明を実施するマルチＣＰＵシステムの構成を示す図である。
【図２】図１に示されているＣＰＵＡの外部インタフェース部の構成を示す図である。
【図３】図２に示されているレジスタの構成を示す図である。
【図４】ＸＣＳＣによるクロスコールの送信制御動作の流れを示す図である。
【図５】ＩＤ判定回路の回路例を示す図である。
【図６】ＩＤ記憶制御回路の回路例を示す図である。
【図７】発行要求切り替え回路の回路例を示す図である。
【図８】複数のＣＰＵコアを有しているＣＰＵで構成したマルチＣＰＵシステムの構成例を示す図である。
【図９】図８に示したＣＰＵＡの外部インタフェース部の構成を示す図である。
【図１０】マルチＣＰＵシステムの概略構成例を示す図である。
【図１１】クロスコール送受信の流れを説明する図である。
【図１２】ステータスレジスタの構成例を示す図である。
【図１３】コマンドＦＩＦＯを示す図である。
【符号の説明】
【０１３０】
１０、５１０、１１００  ＣＰＵＡ
２０、１２０、１１１０、１２１０  ＣＰＵコア部
３０、１３０、５３０、６３０、１１２０、１２２０  外部インタフェース部
４０、１４０、５４０、６４０、１１２１、１２２１  ＸＣＳＣ
４１、５４１、５４１−１、５４１−２  レジスタ
４２、５４２  ＩＤ判定回路
４３、５４３  ＩＤ記憶制御回路
４４、５４４  発行要求切り替え回路
４５、５４５  動作制御部
５０、１５０、５５０、６５０、１１２２、１２２２  ＸＣＲＣ
６０、５６０  データレジスタ
７０、５７０  調停部
８１ａ、８１ｂ、８１ｃ  一致回路
８２ａ、８２ｂ、８２ｃ、９１ａ、９１ｂ、９１ｃ、９１ｄ、１０２ａ、１０２ｂ、１０２ｃ  ＡＮＤ回路
９２ａ、９２ｂ、１０１  ＯＲ回路
９３  記憶領域
１１０、６１０、１２００  ＣＰＵＢ
３００、１３００  ＳＣ
４００、１４００  メモリ
５２０  ＣＰＵコア部ＡＡ
５２１  ＣＰＵコア部ＡＢ
６２０  ＣＰＵコア部ＢＡ
６２１  ＣＰＵコア部ＢＢ
【図１】
2007102447.tif 000003
【図２】
2007102447.tif 000004
【図３】
2007102447.tif 000005
【図４】
2007102447.tif 000006
【図５】
2007102447.tif 000007
【図６】
2007102447.tif 000008
【図７】
2007102447.tif 000009
【図８】
2007102447.tif 000010
【図９】
2007102447.tif 000011
【図１０】
2007102447.tif 000012
【図１１】
2007102447.tif 000013
【図１２】
2007102447.tif 000014
【図１３】
2007102447.tif 000015