(57)【要約】  割込みコントローラは、処理要素に割込み要求を発行する発行回路と、発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態の存在を検出することと、競合状態が解決されたときにバリア・インジケータを設定することとを行うための制御回路とを備える。競合状態が存在することに応答して、発行回路が、少なくとも１つの保留中の割込み要求のうちの１つを選択することと、選択された保留中の割込み要求に続いてパスを介してダミー要求を処理要素に発行し、ダミー要求を受信する前に処理要素が選択された保留中の割込み要求を受信することを確実にすることと、を行うように構成される。処理要素がダミー要求を受信したことを示す確認応答を受信すると、制御回路はバリア・インジケータを設定するように構成される。
2021524092.tif 000002
【特許請求の範囲】
【請求項１】
処理要素に割込み要求を発行する発行回路と、
発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態の存在を検出することと、前記競合状態が解決されたときにバリア・インジケータを設定することとを行うための制御回路と
を備え、
存前記競合状態が存在することに応答して、前記発行回路が、前記少なくとも１つの保留中の割込み要求のうちの１つを選択することと、前記選択された保留中の割込み要求に続いてパスを介してダミー要求を前記処理要素に発行し、前記ダミー要求を受信する前に前記処理要素が前記選択された保留中の割込み要求を受信することを確実にすることと、前記処理要素が前記ダミー要求を受信したことを示す確認応答を受信することとを行うように構成され、
前記確認応答に応答して、前記制御回路が前記バリア・インジケータを設定するように構成されている、割込みコントローラ。
【請求項２】
前記処理要素が前記選択された保留中の割込み要求を受信すると、前記割込みコントローラが採用されているシステムのコンポーネントの動作を実施したい場合に、前記競合状態が発生する、請求項１に記載の割込みコントローラ。
【請求項３】
前記制御回路が、前記競合状態が存在するかどうかを決定するために、システム状態情報を監視する監視回路を備える、請求項２に記載の割込みコントローラ。
【請求項４】
前記制御回路が、前記システム状態情報及び前記少なくとも１つの保留中の割込み要求に基づいて、前記競合状態が存在するかどうかを決定するために配置されている、請求項３に記載の割込みコントローラ。
【請求項５】
前記バリア・インジケータを設定することにより前記コンポーネントに前記競合状態が解決されたことが通知されるように、前記バリア・インジケータを記憶するためのインジケータ・ストレージをさらに備える、請求項２から４までのいずれか一項に記載の割込みコントローラ。
【請求項６】
前記システムの前記コンポーネントが前記処理要素である、請求項２から５までのいずれか一項に記載の割込みコントローラ。
【請求項７】
前記処理要素の前記動作が、前記選択された保留中の割込み要求の受信後に必要な関連付けられるデータ処理動作を実施するための１つ又は複数のプログラム命令の実行を含む、請求項２から６までのいずれか一項に記載の割込みコントローラ。
【請求項８】
前記処理要素が、ハイパーバイザの制御下で複数のオペレーティング・システムを採用するように構成され、任意の時点で、前記オペレーティング・システムのうちの１つが前記処理要素の常駐オペレーティング・システムであり、
前記少なくとも１つの保留中の割込み要求のターゲット・オペレーティング・システムが前記常駐オペレーティング・システム以外の場合に前記競合状態が発生し、前記１つ又は複数の命令が前記ターゲット・オペレーティング・システムの前記制御下で実行され、
前記制御回路が、前記競合状態が存在する場合、前記ハイパーバイザに前記ターゲット・オペレーティング・システムを前記常駐オペレーティング・システムにさせるために前記処理要素に切替え要求を送るように構成されている、請求項７に記載の割込みコントローラ。
【請求項９】
前記割込みコントローラが、前記ハイパーバイザが前記ターゲット・オペレーティング・システムを前記常駐オペレーティング・システムにしたことを示す応答インジケータを受信することと、前記応答インジケータの受信後に、前記選択した保留中の割込み要求の後に前記ダミー要求を発行することとを行うように構成されている、請求項８に記載の割込みコントローラ。
【請求項１０】
前記制御回路が、前記ターゲット・オペレーティング・システムによる前記１つ又は複数のプログラム命令の実行が実施され得ることを示すために、前記確認応答に応答して前記バリア・インジケータを設定するように構成されている、請求項９に記載の割込みコントローラ。
【請求項１１】
前記処理要素にアクセス可能な常駐レジスタをさらに備え、前記処理要素が、前記常駐レジスタ内に前記応答インジケータを設定するように配置され、前記制御回路が、前記応答インジケータについて前記常駐レジスタを監視するように構成されている、請求項１０に記載の割込みコントローラ。
【請求項１２】
前記パスが、要求を順番に送信することによって、前記ダミー要求を受信する前に、前記処理要素が前記選択された保留中の割込み要求を受信することを確実にする、請求項１から１１までのいずれか一項に記載の割込みコントローラ。
【請求項１３】
前記ダミー要求が、クリアされるべき前記割込み要求の偽の識別子を備えるクリア割込み要求である、請求項１から１２までのいずれか一項に記載の割込みコントローラ。
【請求項１４】
処理要素に割込み要求を発行するための発行手段と、
発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態の存在を検出することと、前記競合状態が解決されたときにバリア・インジケータを設定することとを行うための制御手段と
を備え、
前記競合状態が存在することに応答して、前記発行手段が、前記少なくとも１つの保留中の割込み要求のうちの１つを選択することと、前記選択された保留中の割込み要求に続いてパスを介してダミー要求を前記処理要素に発行し、前記ダミー要求を受信する前に前記処理要素が前記選択された保留中の割込み要求を受信することを確実にすることと、前記処理要素が前記ダミー要求を受信したことを示す確認応答を受信することとを行うように構成され、
前記確認応答に応答して、前記制御手段が前記バリア・インジケータを設定するように構成されている、割込みコントローラ。
【請求項１５】
発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態を検出するステップと、
前記競合状態が存在することに応答して、前記少なくとも１つの保留中の割込み要求のうちの１つを選択するステップと、
前記選択された保留中の割込み要求に続いてパスを介してダミー要求を前記処理要素に発行し、前記ダミー要求を受信する前に前記処理要素が前記選択された保留中の割込み要求を受信することを確実にするステップと、
前記処理要素が前記ダミー要求を受信したことを示す確認応答を受信するステップと、
前記競合状態が解決されたことを示すために、前記確認応答に応じてバリア・インジケータを設定するステップと
を含む、処理要素に割込み要求を発行するための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技法はデータ処理に関する。より具体的には、本技法は、割込みコントローラに関する。
【背景技術】
【０００２】
処理要素に割込み要求を発行するために、割込みコントローラが提供され得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
１つの実例では、本技法は、処理要素に割込み要求を発行する発行回路と、発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態の存在を検出することと、競合状態が解決されたときにバリア・インジケータを設定することとを行うための制御回路とを備え、競合状態が存在することに応答して、発行回路が、少なくとも１つの保留中の割込み要求のうちの１つを選択することと、選択された保留中の割込み要求に続いてパスを介してダミー要求を処理要素に発行し、ダミー要求を受信する前に処理要素が選択された保留中の割込み要求を受信することを確実にすることと、処理要素がダミー要求を受信したことを示す確認応答を受信することとを行うように構成され、確認応答に応答して、制御回路がバリア・インジケータを設定するように構成される、割込みコントローラを提供する。
【０００４】
別の実例では、本技法は、処理要素に割込み要求を発行するための発行手段と、発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態の存在を検出することと、競合状態が解決されたときにバリア・インジケータを設定することとを行うための制御手段とを備え、競合状態が存在することに応答して、発行手段が、少なくとも１つの保留中の割込み要求のうちの１つを選択することと、選択された保留中の割込み要求に続いてパスを介してダミー要求を処理要素に発行し、ダミー要求を受信する前に処理要素が選択された保留中の割込み要求を受信することを確実にすることと、処理要素がダミー要求を受信したことを示す確認応答を受信することとを行うように構成され、確認応答に応答して、制御手段がバリア・インジケータを設定するように構成される、割込みコントローラを提供する。
【０００５】
別の実例では、本技法は、発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態を検出するステップと、競合状態が存在することに応答して、少なくとも１つの保留中の割込み要求のうちの１つを選択するステップと、選択された保留中の割込み要求に続いてパスを介してダミー要求を処理要素に発行し、ダミー要求を受信する前に処理要素が選択された保留中の割込み要求を受信することを確実にするステップと、処理要素がダミー要求を受信したことを示す確認応答を受信するステップと、競合状態が解決されたことを示すために、確認応答に応じてバリア・インジケータを設定するステップとを含む、処理要素に割込み要求を発行するための方法を提供する。
【０００６】
本技法は、添付の図面に示されているようなその実例を参照して、例示のみによってさらに説明される。
【図面の簡単な説明】
【０００７】
【図１】本技法による、割込みコントローラの１つの実例を示す図である。
【図２】ハイパーバイザの制御下でゲスト・オペレーティング・システムを採用する処理要素の割込み要求を扱うように配置された本技法による割込みコントローラの別の実例を示す図である。
【図３】本技法の実例による、割込みコントローラの常駐レジスタのフィールドを示す図である。
【図４】本技法の実例による、割込み要求を扱うための方法を示す図である。
【図５】本技法の実例による、割込みコントローラに結合された処理要素によって実施される方法を示す図である。
【図６Ａ】本技法の実例による割込みコントローラが、あるゲスト・オペレーティング・システムからターゲット・ゲスト・オペレーティング・システムへの切替えを開始するときに常駐レジスタにおいて発生する一連のビット・フィールド遷移を示す図である。
【図６Ｂ】処理要素のハイパーバイザが、あるゲスト・オペレーティング・システムから別のゲスト・オペレーティング・システムに切り替わるときに発生し得る別の一連のビット・フィールド遷移を示す図である。
【図７】ゲート可能な相互接続を介して複数の処理要素に結合された本技法の実例による割込みコントローラの別の実例を示す図である。
【発明を実施するための形態】
【０００８】
本明細書で説明する少なくとも１つの実例は、処理要素に割込み要求を発行する発行回路と、発行される少なくとも１つの保留中の割込み要求に関連付けられる競合状態の存在を検出することと、競合状態が解決されたときにバリア・インジケータを設定することとを行うための制御回路とを備え、競合状態が存在することに応答して、発行回路が、少なくとも１つの保留中の割込み要求のうちの１つを選択することと、選択された保留中の割込み要求に続いてパスを介してダミー要求を処理要素に発行し、ダミー要求を受信する前に処理要素が選択された保留中の割込み要求を受信することを確実にすることと、処理要素がダミー要求を受信したことを示す確認応答を受信することとを行うように構成され、確認応答に応答して、制御回路がバリア・インジケータを設定するように構成される、割込みコントローラを提供する。
【０００９】
状況によっては、保留中の割込み要求がその処理要素によって受信された後まで、処理要素内の特定の処理イベントが発生しないようにすることを求めることが望ましい場合がある。たとえば、割込みコントローラにおける割込み要求の出現に続いて、その割込み要求が関連する処理要素に配信される前に発生した場合、割込み要求の処理を禁止する、又は遅延させる、様々な処理イベントが発生する可能性がある。本技法は、選択された割込み要求に続くダミー要求の発行が、特定の割込み要求がいつその宛先に到着したかを選択的に決定する効率的な方法を提供することを認識する。次に、これに基づいてバリア・インジケータを設定することができ、通常なら割込み要求の処理が禁止又は遅延された任意の処理イベントを、バリア・インジケータが設定されるまで遅延させることができるようになる。
【００１０】
知られているシステムでは、割込みコントローラが処理要素に割込み要求を発行するとき、その処理要素は、それが処理要素によって受信されたときに割込み要求を確認するように構成されていない場合がある。たとえば、多くの場合、確認応答が発行される範囲で、処理要素が少なくとも割込み要求の扱いを開始した後にのみ発行され、したがって、そのような確認応答のタイミングは、割込み要求が受信されたタイミングに比べて大幅に変動する可能性がある。したがって、これは、割込み要求が処理要素によって受信されたとき、割込みコントローラが効果的に推論することを困難にする。
【００１１】
しかしながら、割込み要求の多くにとって、割込みがいつ受信されたかを割込みコントローラが知る必要はないため、割込みコントローラから受信したすべての割込み要求の受信を確認するために処理要素が確認応答を返すという要件を追加の制約として追加することは不適切であり、そのため、処理要素は、すべての割込み要求の受信を確認することによって、時間と処理能力を浪費する可能性があり得る。これにより、割込みコントローラと処理要素との間のトラフィックも増加し、帯域幅が減少し、優先度の高い割込み及びアプリケーションにとって望ましくないレイテンシが増加する。
【００１２】
しかしながら、本発明者らは、ダミー要求の即時の確認応答を引き起こすダミー要求を処理要素に送ることが可能であった点に留意した。選択された保留中の割込み要求の発行の直後にダミー要求が続くように配置することによって、選択された保留中の割込み要求の受信を推測するために、ダミー要求に対して受信された確認応答を使用することができ、したがって、選択された保留中の割込み要求が受信された時間の正確な表示を提供する。その時点でバリア・インジケータを設定することによって、対象の割込み要求が処理要素によって受信された後までそのような処理イベントが発生しないことを確実にするために、対象の割込み要求の受信と特定の処理イベントの実施との間にバリアを挿入することが可能である。
【００１３】
いくつかの実例では、処理要素が選択された保留中の割込み要求を受信すると、割込みコントローラが採用されているシステムのコンポーネントの動作を実施したい場合に、競合状態が発生する。したがって、処理要素による割込み要求の受信とコンポーネントの動作との間にバリアを効果的に挿入することができ、その結果、動作は、割込み要求が受信されるまで実施されない。このようなバリアの実装形態は、様々な状況において役立ち、その実例については、後で説明する。いずれにしても、本技法は、割込み要求が受信される前に実施された場合、動作が割込み要求の処理に悪影響を与える可能性がある任意の状況において有利であり、本明細書で説明する技法を使用することによって、割込み要求が少なくとも処理要素によって受信されるまで、動作が実施されないことを確実にすることができる。
【００１４】
いくつかの実例では、制御回路は、競合状態が存在するかどうかを決定するために、システム状態情報を監視する監視回路を備える。選択された保留中の割込み要求の正しい処理は、システムにおける他の要素によって実施される動作と同様に、処理要素の動作に依存し得る。したがって、システム状態を監視するように割込みコントローラを配置すると、様々な状況でバリアを設定することができるようになる。割込み要求の選択、発行、及び処理は、システム内の他のイベントに依存しない、比較的分離された一連の動作であると通常予想されるため、これは直観に反している。しかしながら、本技法は、これが常に当てはまるわけではないことを認識している。たとえば、割込み要求を選択して発行するプロセスは比較的長くなる可能性があり、（たとえば、次に選択されるべき割込み要求を決定するために保留中の割込み要求の記録を検索するのにかかる時間のため）、この間、選択した割込み要求の処理を不利に妨害する他のイベントが発生し得る。
【００１５】
純粋に１つの特定の実例として、システム状態情報は、特定の割込み要求のターゲット・オペレーティング・システムがＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）に常駐していないため、現在割込み要求を扱う立場にないことを示し得る。別の実例として、状態情報は、ゲーティング・コントローラが処理要素へのパスをクロック・ゲートしたいことを示し得、したがって、ゲーティングが発生する前に処理要素によって割込み要求が受信されることが望ましい。
【００１６】
いくつかの実例では、制御回路は、システム状態情報及び少なくとも１つの保留中の割込み要求に基づいて、競合状態が存在するかどうかを決定する。したがって、システム状態情報に加えて、保留中の少なくとも１つの割込み要求も、競合状態の原因と見なすことができる。これは、様々な場合に適しており、たとえば、処理要素を少なくとも１つの保留中の割込み要求を受信できる状態にするためのステップは、処理の開始を引き起こし、これによりコンポーネントの前述の動作が実施される可能性がある。本技法は、処理要素が選択されている保留中の割込み要求を扱うことができるようにするために実施される予備動作が、正しく制御されない場合、選択された保留中の割込み要求の処理に悪影響を及ぼす可能性があることを認識し、上述の技法は、バリアを挿入することによってその可能性を軽減するために使用することができ、その結果、選択された割込み要求が処理要素によって受信されるまで、上述の悪影響をもたらす可能性のある動作の実施が延期される。
【００１７】
いくつかの実例では、割込みコントローラは、バリア・インジケータを設定することによりコンポーネントに競合状態が解決されたことが通知されるように、バリア・インジケータを記憶するためのインジケータ・ストレージをさらに備える。したがって、割込みコントローラは、競合状態が解決され、今は動作を実施することができることをコンポーネントに明示的に示す必要はない。代わりに、インジケータ・ストレージに単に表示するだけで十分であり、これにより、割込みコントローラに必要な処理を減らすことができる。
【００１８】
いくつかの実例では、選択された保留中の割込み要求が受信されるまで１つ又は複数の動作が延期されるシステムのコンポーネントは、実際には選択された保留中の割込み要求を受信する処理要素である。
【００１９】
いくつかの実例では、延期することが望まれる処理要素の動作は、所与の割込み要求の受信後に必要な関連付けられるデータ処理動作を実施するための１つ又は複数のプログラム命令の実行を含む。本技法は、処理要素によって割込み要求が扱われる方法が、データ処理動作が実施されるときに割込み要求が受信されるかどうかに依存することを認識し、割込み要求が効率的及び／又は正しく扱われるためには、データ処理動作が、割込み要求が受信された後にのみ実施されることが望ましい。
【００２０】
いくつかの実例では、処理要素は、ハイパーバイザの制御下で複数のオペレーティング・システムを採用するように構成され、任意の時点で、それらのオペレーティング・システムのうちの１つが処理要素の常駐オペレーティング・システムである。次いで、少なくとも１つの保留中の割込み要求のターゲット・オペレーティング・システムが常駐オペレーティング・システム以外の場合に競合状態が発生し得、１つ又は複数の命令がターゲット・オペレーティング・システムの制御下で実行される。制御回路は、競合状態が存在する場合、ハイパーバイザにターゲット・オペレーティング・システムを常駐オペレーティング・システムにさせるために処理要素に切替え要求を送るように構成され得る。オペレーティング・システム間の切替えのコストは通常、比較的高くなる。したがって、割込み要求が対象のオペレーティング・システムをターゲットとしており、その割込み要求が処理されるためにそのオペレーティング・システムに対して切替えが実施される必要がある場合、割込み要求は実際に切替えの後に処理されることが望ましい。しかしながら、割込みコントローラが切替え要求を送信することによって切替えを開始するのと、割込みコントローラが選択された保留中の割込み要求を発行するのとの間の時間は、選択された保留中の割込み要求を見つけるために保留中の割込み要求を検索するのにかかる時間のため、比較的長くなる可能性がある。制御されていない場合、処理要素は、ターゲット・オペレーティング・システムの制御下で１つ又は複数の命令の実行を完了し、保留中の割込み要求がそれらの命令が実行されるまでに受信されなかったため、別のオペレーティング・システムに切り替えることを決定し得る。その結果、選択した割込み要求が処理要素によって処理されるために利用可能である場合、ターゲット・オペレーティング・システムがもはや常駐していないため、処理することはできない。したがって、割込みコントローラが割込み要求が処理要素によって受信されたと決定するまで、処理要素による１つ又は複数のプログラム命令の実行を遅延させることができるので、本技法はこの配置に特によく適している。
【００２１】
いくつかの実例では、割込みコントローラは、ハイパーバイザがターゲット・オペレーティング・システムを常駐オペレーティング・システムにしたことを示す応答インジケータを受信することと、応答インジケータの受信後に、選択した保留中の割込み要求の後にダミー要求を発行することとを行うように構成される。これは、ターゲットのオペレーティング・システムが処理要素に常駐していることがわかっている場合に、選択した保留中の割込み要求が発行されることを可能にすることと、選択した保留中の割込み要求があまりにもすぐに送られる可能性を回避することとを行うが、割込みコントローラが保留中の割込み要求を選択して発行することが安全であることを認識する前に、任意の過度の遅延を回避することを行うためのシンプルで効果的なメカニズムを提供する。
【００２２】
いくつかの実例では、割込みコントローラは、ターゲット・オペレーティング・システムによる１つ又は複数のプログラム命令の実行が実施され得ることができることを示すために、確認応答に応答してバリア・インジケータを設定するように構成される。これにより、通常なら選択された保留中の割込み要求の適切な処理を妨げる可能性がある１つ又は複数のプログラム命令の実行が、処理要素が選択された保留中の割込み要求を受信したことが確認されるまで遅延されることを確実にするためのシンプルで効果的なメカニズムが提供される。
【００２３】
いくつかの実例では、割込みコントローラは、処理要素にアクセス可能な常駐レジスタをさらに備え、処理要素は、常駐レジスタ内に応答インジケータを設定するように配置され、制御回路は、応答インジケータについて常駐レジスタを監視するように構成される。この方法でレジスタを使用すると、処理要素によって応答インジケータが設定されたときに、割込みコントローラに通知するシンプルで簡単な方法が提供される。
【００２４】
様々な要求がそこから発行される、割込みコントローラと処理要素との間のパスは、様々な形式をとることができる。しかしながら、いくつかの実例では、パスは、要求を順番に送信することによって、ダミー要求を受信する前に、処理要素が選択された保留中の割込み要求を受信することを確実にする。順序正しい扱いを管理することができる方法はいくつかある。たとえば、要求が確実に順番に伝播されることを確実にするために、１つ又は複数のＦＩＦＯ（ｆｉｒｓｔ−ｉｎ−ｆｉｒｓｔ−ｏｕｔ：先入れ先出し）バッファ構造がパスに関連付けて含まれ得る。
【００２５】
上述の技法において使用されるダミー要求は、処理要素によって受信されたときに確認応答が割込みコントローラに発行されるようにする形式であれば、様々な形式をとることができる。いくつかの実例では、ダミー要求はクリア割込み要求であり得、これは通常、すでに発行された割込み要求はもはや実施される必要がないことを示したい場合に、割込みコントローラによって発行される。そのようなクリア割込み要求は、受信時に確認されるように配置することができる。発明者らは、クリアされるべき割込み要求の偽の識別子を指定することによって、クリア割込み要求をダミー要求として使用できると決定することによって、この事実を利用した。偽のＩＤ（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を使用しているため、これは割込み要求がクリアされないことを意味し、したがってダミー要求が処理要素に不要な影響を与えることはない。さらに、これは、割込みコントローラにとってすでに使用可能な要求フォーマットであり、処理要素が確認するように配置されているため、対象の選択された保留中の割込み要求の直後に伝搬されたダミー要求の受信を割込みコントローラに確実に通知することができ、それによって、割込みコントローラに、選択された保留中の割込み要求がいつ受信されたかのおおよその目安を示す。
【００２６】
次に、本技法のいくつかの特定の実例について、図面を参照して説明する。
【００２７】
図１は、本技法による、割込みコントローラ１００の１つの実例を示している。割込みコントローラ１００は、割込み要求を受信することと、待ち行列に入れることと、優先順位を付けることとを行うように構成された割込み要求バッファ１０２を備える。割込み要求は、いくつかのソースから発生する可能性がある。たとえば、割込みコントローラ１００は、いくつかの周辺デバイスと、周辺デバイスからの入力に応答してプログラム命令を実行するためのいくつかの処理要素とを備えるシステムにおいて配置され得る。しかしながら、周辺デバイスの処理需要は、ときには処理要素の処理能力を超える場合がある。したがって、処理要素は、周辺デバイス間で効果的に共有されるように、周辺デバイスの異なるものに対応するプログラム命令の処理間で切り替えるように適合されている。周辺デバイスによる処理要素のこの共有は、全体的な処理能力をあまり必要としない方法で周辺デバイスの処理需要が満たされることを可能にする。処理要素が他のタスクを完了するのを待つ必要がなく、任意の所与の周辺デバイスが動作されたときに反応するように、割込みコントローラ１００はシステムの割込み要求を扱うように配置されているため、緊急性の低い処理よりも緊急性の高い処理を優先することができる。優先順位付けスキームは、要求バッファ１０２内の保留中のどの割込み要求が他の保留中の割込み要求に先立って処理要素に発行されるべきかを決定するために、制御回路１０４によって実装することができる。制御回路１０４が要求バッファ１０２からの割込み要求を選択すると、それは発行回路１０６にその選択を示し、その後、選択された割込み要求を要求バッファ１０２から選択された処理要素に発行する。
【００２８】
上記の実例では、周辺デバイスによって発行された割込み要求が考慮されているが、多くのシステムにおいては、周辺デバイスに加えて他の割込み要求ソースが存在する可能性があることも理解され、それらの様々な割込み要求はすべて、割込みコントローラ１００によって優先順位を付けて発行される必要がある。
【００２９】
場合によっては、要求バッファ１０２内の保留中の割込み要求が、その保留中の割込み要求が発行される処理要素によって受信されると、システム・コンポーネント（たとえば、処理要素のうちの１つ）が特定の動作のみを実施することが望ましい場合に、競合状態が発生する可能性があり、又は、言い換えれば、処理要素による保留中の割込み要求の受信と、システム・コンポーネントによって実施される特定の処理動作（１つの実例では、保留中の割込み要求を受信したのと同じ処理要素）との間にバリアが挿入される。たとえば、処理要素は、あるプロセスから別のプロセスへの切替えを実施する必要がある場合がある。保留中の割込み要求が以前のプロセスに関連している場合、処理要素が切替えを実施できるようになる前に、割込み要求が処理要素によって受信されることが望ましい。別の実例として、処理要素を第１のプロセスから第２のプロセスに切り替えて、第２のプロセスが割込み要求を扱うことができるようにする必要があり得る。しかしながら、第２のプロセスの開始が速すぎると、割込み要求を待機して停止する点に達し得、その場合、処理要素は第２のプロセスからさらなるプロセスに切り替えることを決定し得る。割込み要求がその後処理要素によって受信されると、もはや処理されることができなくなり、割込みコントローラによってリコールされ、その後の時間にスケジューリングされる必要があるため、これは効率に大きな影響を与える。
【００３０】
この問題に対処するために、割込みコントローラ１００はインジケータ・ストレージ１０８をさらに備え、これは、競合状態に関連するシステム・コンポーネント（上記の場合は処理要素自体）にアクセス可能であり、動作が実施され得るときをシステム・コンポーネントに示すために使用することができる。この表示は、処理要素が実際に割込み要求を受信したことが確認された場合にのみ設定される。しかしながら、いくつかのシステムは、処理要素と割込みコントローラとの間のトラフィックが大幅に増加する可能性があるため、デフォルトで割込み要求の受信を確認する処理要素が配置されていない場合がある。したがって、割込み要求の選択的確認応答を容易にするために、割込みコントローラ１００は、確認するために処理要素が配置されている特定の割込み要求に続いてダミー要求を送信するように構成されている。たとえば、ダミー要求は、存在しない割込みに対応する偽のＩＤ値を有するクリア割込み要求であり得る。クリア割込み要求は、受信時に確認されるように配置することができるが、誤ったＩＤが原因で、処理要素は存在しない割込みをクリアすることができないため、処理要素によってアクションが取られる必要はない。対象の選択された保留中の割込み要求に続いてダミー要求が発行されたので、ダミー要求の受信の確認応答は、ダミー要求の前に発行された割込み要求も受信されたと推論していると見なすことができる。したがって、この確認応答に基づいて、割込みコントローラは、処理要素が割込み要求を受信したことを認識して、インジケータ・ストレージにインジケータを設定することができる。
【００３１】
割込み要求と後続のダミー要求は、ダミー要求を受信する前に処理要素が割込み要求を受信することを確実にするパスを介して処理要素に発行される。この機能を満たすことができるパスの具体的な実例はいくつかある。たとえば、パスは、先入れ先出しプロトコルに従って要求を送信するように配置されたパスであり得る。或いは、パスは、要求の再順序付けが禁止されている順序付けされたパスであり得る。
【００３２】
制御回路はまた、競合状態の存在を決定するために使用される状態情報１１０にアクセスし得る。参照される状態情報は、割込みコントローラが設置されているシステムのタイプに応じて、様々な形式をとることができる。純粋に１つの特定の実例として、システム状態情報は、特定の割込み要求のターゲット・オペレーティング・システムがＣＰＵに常駐していないため、現在割込み要求を扱う立場にないことを示し得る。別の実例として、状態情報は、ゲーティング・コントローラが処理要素へのパスをクロック・ゲートしたいことを示し得、したがって、ゲーティングが発生する前に処理要素によって割込み要求が受信されることが望ましい。
【００３３】
図２は、本技法による割込みコントローラ２１０を含むシステム２００の実例を示している。割込みコントローラ２１０は、外部ソースから割込み要求を受信することと、処理要素に割込み要求を発行することとを行うように配置されているという点で図１のものと同様であるが、システム２００のゲスト・オペレーティング・システム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）環境において本技法を実装するように特に構成されている。たとえば、図面に示されるように、ＣＰＵの各々は、ハイパーバイザ２０８の制御下でいくつかのゲスト・オペレーティング・システム２０６を採用することができる。割込みコントローラによって受信された割込み要求のうちのいくつかは、特定のゲスト・オペレーティング・システムにおいてターゲットにされ得る。各ＣＰＵのハイパーバイザ２０８は、ＣＰＵの処理リソースを常駐ゲスト・オペレーティング・システムに割り振ることによって、ゲスト・オペレーティング・システムを制御するために提供されるが、他のゲスト・オペレーティング・システムは非常駐として設定されているため、非アクティブである。たとえば、ＣＰＵ０  ２０２は最初にゲストＯＳ０  ２０６−２を実動かしているかもしれないが、その後、ゲストＯＳ３による命令の実行を可能にするために、ハイパーバイザ２０８−２はゲストＯＳ０  ２０６−２からゲストＯＳ３  ２０６−６に切り替えることを決定し得る。割込みコントローラ２１０によって受信された特定の割込み要求は、特定のゲストＯＳにおいてターゲットにされる場合があり、したがって、そのような割込み要求が処理される前に、関連するゲスト・オペレーティング・システムが常駐である必要がある。
【００３４】
一般的なレベルでは、割込み要求は、特定のＣＰＵをターゲットとする物理的な割込み要求、又は特定のオペレーティング・システムをターゲットとする仮想割込み要求のいずれかとして定義され得る。たとえば、割込みコントローラは、ゲストＯＳ２  ２０６−８をターゲットとする周辺デバイスから仮想割込み要求を受信し得る。次いで、制御回路２２０は、どのコアがゲストＯＳ２の親であるかを決定するために親コア・レジスタ２１６をチェックし得、この場合はＣＰＵ１  ２０４である。次いで、制御回路２２０は、ゲストＯＳ２  ２０６−８が現在常駐しているかどうかを決定するために、対応する常駐レジスタ、この場合は常駐レジスタ２１４をチェックする。常駐していない場合、ゲストＯＳ２  ２０６−８が非アクティブあり、現在実行されていないため、仮想割込み要求を発行することはできない。したがって、制御回路は、第１に、物理的な割込み要求をＣＰＵ１  ２０４に発行し、これはゲストＯＳ２  ２０６−８を常駐させるように切り替えることをＣＰＵ１  ２０４に示す。この切替えが実施されたときのみ、最初に受信された仮想割込み要求がＣＰＵ１  ２０４に発行される。
【００３５】
図２では、各ゲストＯＳが特定のＣＰＵに関連付けられているように示されているが、ゲストＯＳは、あるＣＰＵと別のＣＰＵとの間で移行することができ、その場合、親コア・レジスタ２１６の内容がそれに応じて更新される。
【００３６】
システム２００の修正された実例では、ＣＰＵ１  ２０４が含まれなくてもよく、したがって、本技法は、単一のＣＰＵのみを備えるシステムに適用できることが理解されよう。さらに、ＣＰＵ１  ２０４が含まれない場合、親コア・レジスタ２１６又は常駐レジスタ１  ２１４も必要ない。
【００３７】
図３は、常駐レジスタの実例をより詳細に示している。図面に示されるように、常駐ゲストＯＳフィールド３０２は、どのゲスト・オペレーティング・システムが対応するＣＰＵ上に現在常駐しているかを示している。このフィールドは、ＣＰＵのハイパーバイザによって制御され、ゲストＯＳの切替えが発生すると更新される。ハイパーバイザはまた、有効なフィールド３０４も制御する。このフィールドは、ゲストＯＳが常駐し、またコアでプログラム命令を実行しているときに設定され、ゲストＯＳが実質的にビジーであることを示す。常駐ゲストＯＳによって実行されるべき任意のプログラム命令の処理が完了すると、ハイパーバイザは、ゲストＯＳがもはやビジーではないこと、及び別のゲストＯＳへの切替えが実施され得ることを示すために、有効なフィールド３０４をクリアすることができる。しかしながら、切替えは、切替え開始イベントが発生するまで実際には実施されない場合があり、このときまで、現在のゲストＯＳがアイドル状態でＣＰＵに常駐したままである場合がある。割込みコントローラ・チェック完了フィールド３０６も提供され、ハイパーバイザではなく割込みコントローラ２１０によって制御される。このフィールドは、本技法による割込みコントローラ２１０によって実施されるチェックを考慮して、常駐ゲストＯＳによる処理をいつ実施できるかを示すために使用される。所与のゲストＯＳによる処理は、常駐であり、有効であり、対応する割込みコントローラ・チェックが常駐レジスタにおいて完了していることが示されない限り、実施することはできない。
【００３８】
図４は、本技法による図２のゲストＯＳ環境における割込み要求を扱うための方法の実例を示している。ステップ４０２において、特定のゲストＯＳをターゲットとする仮想割込み要求が、たとえば、周辺デバイス又はソフトウェアなどの外部ソースから受信される。ステップ４０４において、割込みコントローラ２１０は、割込み要求によってターゲットにされるゲストＯＳを決定し、どのＣＰＵがターゲット・ゲストＯＳの親であるかを決定するために、親コア・レジスタ２１６をチェックする。次いで、制御回路２２０は、ステップ４０６に示されるように、ゲストＯＳが現在コアに常駐しているかどうかを決定するために、親コアに対応する常駐レジスタをチェックする。ゲストＯＳが現在コアに常駐している場合、ステップ４０８において、割込み要求がコアに発行され、プロセスが終了する。発行の正確なタイミングは任意の他の保留中の割込み要求に対する優先順位に依存するため、割込み要求は必ずしもステップ４０８においてすぐに発行されるとは限らない点に留意されたい。
【００３９】
一方、割込み要求によってターゲットにされたゲストＯＳが現在親コアに常駐していない場合、制御回路は、親コアにおいてゲストＯＳへの切替えを開始する必要があると決定する。したがって、今回は、受信した割込み要求が、要求バッファ２２２内の保留キューに追加される。この決定の結果、監視回路は競合状態の存在を検出し、これは常駐していないゲストＯＳをターゲットとする保留中の仮想割込み要求があるためである。ゲストＯＳへの切替えを開始するために、ステップ４１０において、割込みコントローラ２１０は、物理的な割込み要求（本明細書ではドアベル要求と呼ばれる）を親コアに発行し、コアのハイパーバイザが指定されたゲストＯＳを常駐させるべきであることを示す。ドアベル要求が発行される時間は、他の物理的な保留中の割込み要求に対するその優先順位に依存するため、ドアベル要求がすぐに発行されるとは限らない点に留意されたい。
【００４０】
ドアベル要求が発行されると、割込みコントローラ２１０は、ゲストＯＳが常駐されたことを示すために、親コアに対応する常駐レジスタが更新されるまで待機する。具体的には、制御回路は、ステップ４１２に示されるように、仮想割込み要求のターゲットであるゲストＯＳと一致するように更新されるまで、常駐レジスタの常駐ゲストＯＳフィールド３０２を監視する。ターゲット・ゲストＯＳが常駐していることを示し、ゲストＯＳが有効であることを示すために、常駐レジスタが更新されると、ステップ４１４において、制御回路は、ゲストＯＳをターゲットとする任意の保留中の仮想割込み要求を見つけるために、要求バッファ２２２内で検索を実施する。多くの場合、ステップ４１４において見つかった保留中の割込み要求は、最初にステップ４０２において受信したものと同じ割込み要求になる。しかしながら、場合によっては、最初に受信した仮想割込み要求がリコールされ、別の仮想割込み要求に置き換えられることがある。又は、最初に受信した割込み要求が依然として要求バッファにおいて保留されている可能性があるが、優先順位のより高い割込み要求も現在要求バッファに追加されている可能性がある。いずれにしても、現在常駐しているゲストＯＳをターゲットとする保留中の割込み要求が見つかった場合、制御回路２２０は、ステップ４１４において、発行回路２２４に保留中の割込み要求とそれに続くダミー要求を親コアに送らせる。次いで、割込みコントローラ２１０は、ステップ４１６において、ダミー要求の確認応答信号（ＡＣＫ：ａｃｋｎｏｗｌｅｄｇｍｅｎｔ）を待つ。ＡＣＫが受信されると、割込みコントローラ２１０は、親コアが割込み要求を受信したことを確認し、ステップ４１８において、親コアが現在プログラム命令の処理を開始し得ることを示すために、ＩＣ（ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）チェック・フィールドを完了として設定する。この時点までＩＣチェック完了フィールドの設定を遅延させることにより、切替えを引き起こした仮想割込み要求をコアが受信するまで、親コアがデータ処理動作の実施を開始しないことを確実にすることができ、それによって、割込み要求が受信される前にそれらの動作を早期に実施すると、ＣＰＵがターゲット・ゲストＯＳから切り替わる可能性を回避する。これにより、軽微な切替えが実施される可能性が低くなり、ゲスト・オペレーティング・システム間の切替えは比較的高価になるため、無駄な処理リソースが削減される。
【００４１】
図５は、図４の方法に応答するＣＰＵにおける処理の１つの実例を示している。ステップ５０２において、ＣＰＵは、ターゲット・ゲストＯＳを常駐させるべきであることを示す物理的な割込み要求（ドアベル要求）を受信する。ステップ５０４において、ＣＰＵは、任意の他のゲストＯＳによる現在の実行を停止し、ターゲット・ゲストＯＳによる命令を実行する準備をすることによって、ターゲットＯＳに切り替える。以前のゲストＯＳが撤回され、ＣＰＵがターゲット・ゲストＯＳによる命令を実行する準備ができると、ターゲット・ゲストＯＳが常駐していることを示し、それが有効であることを識別するために、ＣＰＵは常駐レジスタを更新する。また、この段階でＩＣチェックが完了しているかどうかを決定するために、ＣＰＵは常駐レジスタの監視を開始する。しかしながら、ダミー要求に対するＡＣＫはまだ割込みコントローラによって受信されていないため、ＩＣチェックは完了としてマーク付けされない。ステップ５０６において、ＣＰＵは、ダミー要求を待つ。ＩＣチェックが完了したことを常駐レジスタがまだ示していないため、ターゲット・ゲストＯＳによるプログラム命令の実行は不可能である。ダミー要求が受信されると、ＣＰＵは、ステップ５０８において、受信の確認応答を割込みコントローラに送信する。これに続いて、ＣＰＵは、常駐レジスタを監視し続け、ステップ５１０に示されるように、ＩＣチェック完了フィールドが設定されるのを待つ。これが発生すると、方法はステップ５１２に進み、ＣＰＵはターゲット・ゲストＯＳでプログラム命令の実行を開始することができる。
【００４２】
図６Ａは、割込みコントローラが所与のコアにおいてゲストＯＳの切替えを開始するときに常駐レジスタにおいて発生する遷移の実例を示している。図６Ａの実例では、ゲストＯＳ０に切り替えられている。図６Ａに示されているステップの目的のために、ゲストＯＳの切替え前は、常駐レジスタにおける現在の値は特に関連しておらず、最初の行において「Ｘ」によって示されている任意の値であってよい。しかしながら、いくつかの実例では、たとえば、現在のＯＳがまだ切替えのターゲットＯＳでないことを確認するために、又は、切替えを実施する必要がある場合は現在のＯＳが無効としてマーク付けされていることを確認するために、現在の値に対していくつかの初期チェックが行うことができることが理解されよう。割込みコントローラがターゲット・ゲストＯＳへの切替えを開始する場合、図４のステップ４１０を参照して説明したように、そのゲストＯＳの親コアにドアベル要求を第１に発行する。ドアベル要求に応答して、コアはターゲットのゲストＯＳに切り替え、それに応じて常駐レジスタを更新する。具体的には、コアは常駐ゲストＯＳフィールドを０に更新し、常駐ゲストＯＳがゲストＯＳ０であることを示し、第２の行に示されるように、ゲストＯＳ０が有効であることを示すために、有効ビットを「１」に設定する。コアによって常駐ゲストＯＳフィールド又は有効なフィールドが変更されるときはいつでも、第２の行に示されるように、割込みコントローラがゲストＯＳによる処理を実施するために必要なチェックをまだ実施していないことを示すために、ＩＣチェック完了フィールドは論理１状態に遷移する。割込みコントローラは、常駐ゲストＯＳフィールドにおける変更から、ゲストＯＳ０が現在常駐していると決定し、したがって、たとえば図４のステップ４１４を参照して説明したように、仮想割込み要求に続いてダミー要求を送信する。第３の行に示されるように、この時点では常駐レジスタにおける値に対する変更は発生していない。割込みコントローラがダミー要求に対するＡＣＫを受信すると、コアが仮想割込み要求を受信したと決定することができるため、割込みコントローラはＩＣチェック完了フィールドを「０」に設定し、チェックが完了したことと、コアがゲストＯＳ０の制御下で命令の実行に進むことができることとを示す。
【００４３】
図６Ｂは、所与のコアのハイパーバイザがゲストＯＳの切替えを引き起こしたときに常駐レジスタにおいて発生する変更の実例を示している。図６Ｂの実例では、ゲストＯＳ０からゲストＯＳ１に切り替えられている。第１の行において、常駐ゲストＯＳフィールドは、現在の常駐ゲストＯＳがゲストＯＳ０であることを「０」の値によって示している。ゲストＯＳ０が現在プログラム命令を実行しており、実質的にビジーであるため、有効ビットも「１」に設定される。ゲストＯＳ０の割込みコントローラ・チェックが以前に完了しているため、ＩＣチェック完了フィールドは「０」である。
【００４４】
後の時点で、たとえば、ゲストＯＳ１によって完了されるべき保留中のタスクがあり得るため、ハイパーバイザはゲストＯＳ１に切り替える必要があると決定し得る。切り替えるために、ゲストＯＳ０が常駐している間、その常駐がもはや無効になり、第２の行に示されているように、それによってさらなる動作を実施できないことを示すために、ハイパーバイザは第１に有効なフィールドを「０」に設定する。さらに、やはり第２の行に示されているように、割込みコントローラのチェックが完了していないこと、及び常駐レジスタにおける任意の変更がまだ割込みコントローラによって承認されていないことを示すために、常駐レジスタの内容におけるこの変更により、ＩＣチェック完了フィールドが「１」に設定される。
【００４５】
第３の行では、割込みコントローラがチェックを実施し、完了すると、ＩＣチェック完了フィールドを「０」としてマーク付けする。たとえば、割込みコントローラは、ゲストＯＳ０に関して任意の割込み要求を発行したかどうかをチェックし得るが、それらの割込み要求はコアによってまだ処理されていない。その場合、それらの割込み要求を要求バッファ２２２に再び追加できるように、コアからのそれらの割込み要求をリコールする必要があり得る。そのような場合、その後のある時点で、コアをゲストＯＳ０に再び切り替えるためにドアベル要求を発行することができるように、保留中の物理的な割込み要求に別のドアベル要求を追加する必要もあり得る。或いは、常駐レジスタは、ＯＳ１による処理が完了したときにゲストＯＳ０を再度常駐させる必要があるという表示を記録するための追加フィールドを含み得る。そのような実装形態では、追加のドアベルを必要とせずに、ＯＳ０に再び切り替えるときを決定するために、要求バッファ内の割込み要求の優先順位付けと並行して追加フィールドのチェックを実施することができる。
【００４６】
チェックが完了すると、割込みコントローラは、第３の行に示されるように、ＩＣチェック完了フィールドを「０」に設定する。これに応答して、ハイパーバイザはゲストＯＳ１に切り替わり、第４の行に示されるように、常駐ゲストＯＳフィールドと有効なフィールドを設定することによってこれを示す。しかしながら、やはり常駐レジスタにおいて変更があったため、第４の行に示されるようにＩＣチェック完了フィールドが「１」に設定されており、したがって、ゲストＯＳ１は常駐しているが、プログラム命令の処理を開始することはできない。割込みコントローラがそのチェックを完了すると（ゲストＯＳ１の任意の仮想の保留中の割込み要求を識別することと、ＯＳ１の保留中の割込み要求が少なくとも１つある場合、図４を参照して説明したように、選択された保留中の割込み要求に続いてダミー要求の送信と、そのダミー要求の確認応答の受信とを含む）、割込みコントローラは、ＩＣチェック完了フィールドを第５の行において「０」に設定し、そのため、ゲストＯＳ１はプログラム命令を実行することによって継続することができる。
【００４７】
図７は、本技法が適用され得るシステム７００の別の実例を示している。システム７００において、割込みコントローラ７１０は、相互接続７２０を介して３つの処理要素に結合される。システム７００はまた、電力消費を低減するために、使用されていないときに相互接続の要素をクロック・ゲートするように構成されたゲーティング回路７３０を含む。
【００４８】
特定のパスを所与の処理要素にゲーティングすることが適切であるときを決定するために、ゲーティング回路７３０によっていくつかのチェックが実施され得る。しかしながら、これらのチェックが、特定の処理要素へのパスをゲーティングすることが適切であると示す一方で、その処理要素をターゲットとする割込み要求バッファ７３５に依然として割込み要求がある場合、問題が発生する可能性がある。この問題に対処するために、割込みコントローラ７１０には、ゲーティング回路７３０が特定のプログラミング要素へのパスをゲーティングしたいことを示すときを検出するための制御回路７４０が設けられている。これが当てはまる場合、制御回路７４０は、割込み要求バッファ７４０内の特定の処理要素をターゲットとする保留中の割込み要求があるかどうかをチェックし、ある場合、その割込み要求に続いて前述のダミー要求を関連する処理要素に発行するために、発行回路７５０を制御する。保留中の割込み要求が発行され、ダミー要求の確認応答が必要な処理要素によって受信されたことを示すと、制御回路は、その処理要素へのパスが今ではゲーティングされ得ることをゲーティング回路７３０に示すために、ゲート・インジケータ７６０にバリア・インジケータを設定する。このようにして、特定の処理要素へのパスがゲーティングされて使用できなくなるが、その処理要素をターゲットとする割込み要求が依然として保留中である状況を回避することができる。したがって、本技法は、そのパスを介して発行される必要があり得る保留中の割込み要求が依然として存在する間、相互接続を通じたパスがゲーティングされるのを回避し、したがって、単に割込み要求を扱うことができるようにするためにそれらのパスのゲーティングを解除する必要を回避するため、効率を向上させる。これにより、不必要なゲーティング及びゲーティング解除が回避され、電力消費コストが発生する可能性があるが、割込み要求バッファ７４０において保留状態を維持する必要があるため、１つ又は複数の保留中の割込み要求の扱いを遅延させる可能性があり、一方、ゲーティングされたパスは、適切な処理要素に発行できるようにするためにゲーティング解除されている。
【００４９】
本出願では、「〜ように構成された」又は「〜ように配置された」という用語は、装置の要素が、定義された動作を行うことができる構成を有することを意味するために使用される。この文脈において、「構成」は、ハードウェア又はソフトウェアの相互接続の配置又は方法を意味する。たとえば、本装置は、定義された動作を提供する専用ハードウェアを有し得、或いはプロセッサ又は他の処理デバイスは、機能を実施するようにプログラムされ得る。「〜ように構成された」又は「〜ように配置された」は、定義された動作を提供するために装置要素を何らかの方法で変更される必要があることを含意しない。
【００５０】
本明細書において、添付図面を参照して、例示的な実施例について詳細に説明したが、本発明はそれらの厳密な実施例に限定されず、様々な変更、追加、及び修正が、当業者によって、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなしに達成され得ることを理解されたい。たとえば、本発明の範囲から逸脱することなしに、従属請求項の特徴の様々な組合せを、独立請求項の特徴で作成することができる。
【図１】
2021524092.tif 000003
【図２】
2021524092.tif 000004
【図３】
2021524092.tif 000005
【図４】
2021524092.tif 000006
【図５】
2021524092.tif 000007
【図６Ａ】
2021524092.tif 000008
【図６Ｂ】
2021524092.tif 000009
【図７】
2021524092.tif 000010
【国際調査報告】
2021524092.tif 000011
2021524092.tif 000012