(57)【特許請求の範囲】
【請求項１】
複数のプロセッサに共有されているキャッシュメモリに記録されたデータを用いて処理を行う複数のプロセッサの中の一部のプロセッサを切り離す制御を行うキャッシュ制御回路であって、
プロセッサの切り離し要求を取得した場合に、前記キャッシュメモリに接続された全てのプロセッサを制御して前記キャッシュメモリに接続された全てのプロセッサによって新規の処理が実行されることを停止させる停止手段と、
前記停止手段によって前記キャッシュメモリに接続された全てのプロセッサの処理が完了した後に、前記キャッシュメモリに記録されたデータの無効化を実行する無効化実行手段と、
前記無効化実行手段によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となるプロセッサを切り離す切り離し実行手段と、
前記無効化実行手段によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となったプロセッサ以外のプロセッサにおける停止状態を解除する解除手段と
を有することを特徴とするキャッシュ制御回路。
【請求項２】
前記無効化実行手段は、前記キャッシュメモリに記録されたデータのうち、メインメモリに書き戻す必要があるデータをメインメモリにライトバックし、データの無効化を実行することを特徴とする請求項１に記載のキャッシュ制御回路。
【請求項３】
複数のプロセッサと、前記複数のプロセッサに共有されているキャッシュメモリと、前
記キャッシュメモリの制御を行うキャッシュ制御部とを有する情報処理装置であって、
前記キャッシュ制御部は、プロセッサの切り離し要求を取得した場合に、前記キャッシュメモリに接続された全てのプロセッサを制御して前記キャッシュメモリに接続された全てのプロセッサによって新規の処理が実行されることを停止させる停止手段と、前記停止手段によって前記キャッシュメモリに接続された全てのプロセッサの処理が完了した後に、前記キャッシュメモリに記録されたデータの無効化を実行する無効化実行手段と、前記無効化実行手段によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となるプロセッサを切り離す切り離し実行手段と、前記無効化実行手段によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となったプロセッサ以外のプロセッサにおける停止状態を解除する解除手段と
を有することを特徴とする情報処理装置。
【請求項４】
前記無効化実行手段は、前記キャッシュメモリに記録されたデータのうち、メインメモリに書き戻す必要があるデータをメインメモリにライトバックし、データの無効化を実行することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
複数のプロセッサに共有されているキャッシュメモリに記録されたデータを用いて処理を行う複数のプロセッサの中の一部のプロセッサを切り離す切り離し方法であって、
プロセッサの切り離し要求を取得した場合に、前記キャッシュメモリの制御を行うためのキャッシュ制御部により前記キャッシュメモリに接続された全てのプロセッサを制御して前記キャッシュメモリに接続された全てのプロセッサによって新規の処理が実行されることを停止させる停止工程と、
前記停止工程によって前記キャッシュメモリに接続された全てのプロセッサの処理が完了した後に、前記キャッシュ制御部により前記キャッシュメモリに記録されたデータの無効化を実行する無効化実行工程と、
前記無効化実行工程によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となるプロセッサを切り離す切り離し実行工程と、
前記無効化実行工程によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となったプロセッサ以外のプロセッサにおける停止状態を解除する解除工程と
を備えたことを特徴とする切り離し方法。
【請求項６】
前記無効化実行工程は、前記キャッシュメモリに記録されたデータのうち、メインメモリに書き戻す必要があるデータをメインメモリにライトバックし、データの無効化を実行することを特徴とする請求項５に記載の切り離し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリに記録されたデータを用いて処理を行うプロセッサを切り離すキャッシュ制御回路、情報処理装置および切り離し方法に関するものである。
【背景技術】
【０００２】
従来より、プロセッサおよびメインメモリ間で発生するデータ遅延の問題を解消するために、キャッシュメモリが利用されている。そして、このキャッシュメモリを管理するキャッシュメモリ管理装置は、例えば、ライトバック方式によって、メインメモリとキャッシュメモリとの間でコヒーレンシを維持している。
【０００３】
また、プロセッサを含んだシステムの再構成などによって、プロセッサを切り離す場合には、キャッシュメモリ管理装置は、プロセッサに対して切り離しを要求し、プロセッサからの応答を待ってからキャッシュメモリの無効化を行って、プロセッサを切り離している。
【０００４】
なお、ライトバック方式では、その性質上、キャッシュメモリのデータがプロセッサによって更新された場合に、更新されたデータが同時にメインメモリに書き戻されない。そのため、プロセッサの切り離しによるキャッシュメモリの無効化を実行する場合には、プロセッサがアクセスしていたデータの書き戻しが必要か否かを判断して、必要であれば書き戻しを行い、メインメモリとキャッシュメモリとの間でコヒーレンシを維持していた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年では、プロセッサの性能向上およびキャッシュメモリの記憶容量の増加に伴って、キャッシュメモリが複数のプロセッサによって共有される場合がある。このように、複数のプロセッサが実装されたシステムにおいて、任意のプロセッサを動的に切り離し、再構成しなければならないケースは多々発生し得るが、上述した従来技術では、プロセッサの切り離し処理が複雑となり、迅速にプロセッサを切り離すことができなかった。
【０００６】
すなわち、キャッシュメモリを複数のプロセッサが共有するシステムであっても、安全かつ迅速にプロセッサをシステムから切り離し、システムの可用性を高めることが極めて重要な課題となっている。
【０００７】
本発明は、上記に鑑みてなされたものであって、安全かつ迅速にプロセッサをシステムから切り離し、システムの可用性を高めることができるキャッシュ制御回路、情報処理装置および切り離し方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、複数のプロセッサに共有されているキャッシュメモリに記録されたデータを用いて処理を行う複数のプロセッサの中の一部のプロセッサを切り離す制御を行うキャッシュ制御回路であって、プロセッサの切り離し要求を取得した場合に、前記キャッシュメモリに接続された全てのプロセッサを制御して前記キャッシュメモリに接続された全てのプロセッサによって新規の処理が実行されることを停止させる停止手段と、前記停止手段によって前記キャッシュメモリに接続された全てのプロセッサの処理が完了した後に、前記キャッシュメモリに記録されたデータの無効化を実行する無効化実行手段と、前記無効化実行手段によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となるプロセッサを切り離す切り離し実行手段と、前記無効化実行手段によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となったプロセッサ以外のプロセッサにおける停止状態を解除する解除手段とを有することを特徴とする。
【０００９】
また、本発明は、複数のプロセッサに共有されているキャッシュメモリに記録されたデータを用いて処理を行う複数のプロセッサの中の一部のプロセッサを切り離す切り離し方法であって、プロセッサの切り離し要求を取得した場合に、前記キャッシュメモリの制御を行うためのキャッシュ制御部により前記キャッシュメモリに接続された全てのプロセッサを制御して前記キャッシュメモリに接続された全てのプロセッサによって新規の処理が実行されることを停止させる停止工程と、前記停止工程によって前記キャッシュメモリに接続された全てのプロセッサの処理が完了した後に、前記キャッシュ制御部により前記キャッシュメモリに記録されたデータの無効化を実行する無効化実行工程と、前記無効化実行工程によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となるプロセッサを切り離す切り離し実行工程と、前記無効化実行工程によって前記キャッシュメモリの無効化が完了した後に、切り離し対象となったプロセッサ以外のプロセッサにおける停止状態を解除する解除工程とを備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プロセッサの切り離し要求を取得した場合に、キャッシュメモリに接続された全てのプロセッサの中で切り離し対象となるプロセッサを制御してキャッシュメモリに接続された全てのプロセッサによって新規の処理が実行されることを停止させ、キャッシュメモリに接続された全てのプロセッサの処理が完了した後に、キャッシュメモリに記録されたデータの無効化を実行して、切り離し対象となるプロセッサを切り離し、キャッシュメモリの無効化が完了した後に、切り離し対象となったプロセッサ以外のプロセッサにおける停止状態を解除するので、キャッシュメモリを複数のプロセッサが共有するシステムであっても、安全かつ迅速にプロセッサをシステムから切り離し、システムの可用性を高めることができる。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明にかかるキャッシュ制御回路、情報処理装置および切り離し方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
まず、従来技術による無効化処理および従来技術によるプロセッサの切り離し処理の説明を行い、従来技術による問題点を示した後に本発明の特徴について説明する。図５は、従来技術にかかる無効化処理を説明するための説明図であり、図６は、従来技術にかかるプロセッサの切り離し処理を説明するための説明図である。
【００１３】
図５に示すプロセッサユニット１０は、プロセッサ２０と、無効化要求部３０と、キャッシュコントロール部４０と、システム部５０と、キャッシュメモリ６０と、とを備えて構成される。このうち、プロセッサ２０は、キャッシュメモリ６０に記憶されたデータにアクセスして、所定の演算を実行し、演算結果となるデータをキャッシュメモリ６０に記憶させる処理部である。ここで、キャッシュメモリ６０は、プロセッサ２０が用いる命令や演算対象となるデータを記憶する記憶部である。
【００１４】
無効化要求部３０は、キャッシュコントロール部４０に対してキャッシュメモリ２０を無効化する旨の要求（以下、キャッシュメモリ無効化要求）を出力する処理部である。また、無効化要求部３０は、入力装置を介してユーザからプロセッサ２０の切り離し要求を取得した場合、あるいは動的再構成プログラムからプロセッサ２０の切り離し要求を取得した場合に、プロセッサ２０を切り離す旨の要求（以下、プロセッサ切り離し要求）をキャッシュコントロール部４０に出力する。
【００１５】
更に、無効化要求部３０は、プロセッサ４０に発生するエラーの回数をカウントし、エラーの回数が規定値以上となった場合に、プロセッサ切り離し要求をキャッシュコントロール部４０に出力する。
【００１６】
キャッシュコントロール部４０は、無効化要求部３０からキャッシュメモリ無効化要求あるいは、プロセッサ切り離し要求を取得した場合に、キャッシュメモリ６０に記憶されたデータの無効化を制御する処理部である。また、このキャッシュコントロール部４０は、ライトバック方式によってメインメモリ（図示しない）とキャッシュメモリ６０との間でコヒーレンシを維持する。
【００１７】
システム部５０は、キャッシュメモリ６０の無効化対象となるデータをメインメモリに書き戻すか否かを判定する処理部である。このシステム部５０は、キャッシュメモリ６０に記憶されたデータの登録状態を示すキャッシュメモリ登録情報５０ａを保持し、このキャッシュメモリ登録情報５０ａを基にして、書き戻しが必要か否かを判定する。
【００１８】
続いて、図５を用いて、従来技術による無効化処理の説明を行うと、無効化要求部３０は、キャッシュコントロール部４０にキャッシュ無効化要求を出力し、キャッシュコントロール部４０は、キャッシュ無効化要求を取得した場合に、（例えば）ブロックＡを無効化する旨の情報をシステム部５０に出力し、システム部５０は、キャッシュメモリ登録情報５０ａを検索して、ブロックＡに記憶されたデータを書き戻すか否かを判定し、判定結果を含んだブロックＡに対する応答をキャッシュコントロール部４０に出力する。
【００１９】
キャッシュコントロール部４０は、システム部４０からブロックＡに対する応答を取得し、キャッシュメモリ６０に記憶されたブロックＡのデータを無効化する。なお、書き戻しが必要となる場合には、ブロックＡに記録されたデータをメインメモリに書き戻した後に、ブロックＡを無効化する。そして、キャッシュメモリ６０における全てのブロックの無効化が完了した場合に、システム部５０は、キャッシュメモリ６０全体の無効化が終了した旨をキャッシュコントロール部４０に通知する。
【００２０】
続いて、図６を用いて、従来技術によるプロセッサの切り離し処理の説明を行うと、無効化要求部３０は、キャッシュコントロール部４０にプロセッサ切り離し要求を出力し、キャッシュコントロール部４０は、プロセッサ切り離し要求を取得した場合に、プロセッサ２０にプロセッサ切り離し要求を出力する。
【００２１】
プロセッサ切り離し要求を取得したプロセッサ２０は、（例えば）ブロックＡを無効化する旨の情報をシステム部５０に出力し、キャッシュコントロール部４０は、ブロックＡを無効化する旨の情報をシステム部５０に出力する。システム部５０は、キャッシュメモリ登録情報５０ａを検索して、ブロックＡに記憶されたデータを書き戻すか否かを判定し、判定結果を含んだブロックＡに対する応答をキャッシュコントロール部４０に出力する。
【００２２】
キャッシュコントロール部４０は、システム部４０からブロックＡに対する応答を取得し、キャッシュメモリ６０に記憶されたブロックＡのデータを無効化する。なお、書き戻しが必要となる場合には、ブロックＡに記録されたデータをメインメモリに書き戻した後に、ブロックＡを無効化する。そして、キャッシュメモリ６０における全てのブロックの無効化が完了した場合に、システム部５０は、キャッシュメモリ６０全体の無効化が終了した旨をキャッシュコントロール部４０に出力する。そして、キャッシュコントロール部４０は、キャッシュメモリ全体の無効化が終了した旨をプロセッサ２０に通知し、プロセッサ２０を切り離す。
【００２３】
しかしながら、図６に示したように、プロセッサ２０を切り離す場合には、この切り離し処理にプロセッサ２０を介在させる必要があり、迅速にプロセッサ２０を切り離すことができないという問題があった。また、キャッシュメモリが複数のプロセッサに共有されている場合には、プロセッサの共有状態を更に考慮して、キャッシュメモリの無効化を行う必要があり、この問題は更に深刻なものとなる。
【００２４】
そこで、本発明では、プロセッサ切り離し要求を取得した場合に、切り離し対象となるプロセッサの処理を停止させ（命令ユニットを停止させ）、キャッシュメモリの無効化を行うことで、上記した従来技術の問題点を解決する。図１は、本発明によるプロセッサの切り離し処理を説明するための説明図である。なお、ここでは、説明の便宜上、図５、図６で用いた構成要素によって本発明の処理を説明する。
【００２５】
図１に示すように、無効化要求部３０は、キャッシュコントロール部４０にプロセッサ切り離し要求を出力し、キャッシュコントロール部４０は、プロセッサ２０に対して命令ユニットの停止要求を出力する。命令ユニットの停止要求を受付けたプロセッサの命令ユニットは、新規の命令を実行することを停止し、実行中の命令を完了させる。
【００２６】
そして、キャッシュコントロール部４０は、ブロックＡを無効化する旨の情報をシステム部５０に出力し、システム部５０は、キャッシュメモリ登録情報５０ａを検索して、ブロックＡに記憶されたデータを書き戻すか否かを判定し、判定結果を含んだブロックＡに対する応答をキャッシュコントロール部４０に出力する。
【００２７】
キャッシュコントロール部４０は、システム部５０からブロックＡに対する応答を取得し、キャッシュメモリ６０に記憶されたブロックＡのデータを無効化する。なお、書き戻しが必要となる場合には、ブロックＡに記憶されたデータをメインメモリに書き戻した後に、ブロックＡを無効化する。そして、キャッシュメモリ６０における全てのブロックの無効化が完了した場合に、システム部５０は、キャッシュメモリ６０全体の無効化が終了した旨をキャッシュコントロール部４０に出力する。
【００２８】
このように、本発明によれば、プロセッサ２０を介在させることなく、キャッシュメモリ６０の無効化処理を実行し、プロセッサを切り離すので、迅速にプロセッサ２０を切り離すことができる。また、プロセッサ２０の新規の処理を停止させてから、キャッシュメモリ６０の無効化・書き戻しを実行するので、メインメモリに対する新規のデータ要求や、データの書換え要求が発生することはなく、キャッシュメモリとメインメモリの内容が食い違うことを防止することができる。
【００２９】
次に、本実施例にかかるプロセッサユニットの構成について説明する。図２は、本実施例にかかるプロセッサユニットの構成を示す機能ブロック図である。同図に示すように、このプロセッサユニット１００は、プロセッサ１１０，１２０と、キャッシュメモリ１３０と、無効化要求部１４０と、キャッシュコントロール部１５０とを備えて構成される。
【００３０】
このうち、プロセッサ１１０，１２０は、キャッシュメモリ１３０に記憶されたデータにアクセスして、所定の演算を実行し、演算結果となるデータをキャッシュメモリ１３０に記憶させる処理部である。なお、ここでは説明の便宜上、プロセッサ１１０，１２０のみを示すが、これに限定されるものではない。キャッシュメモリ１３０は、プロセッサ１１０，１２０が用いる命令や演算対象となるデータを記憶する記憶部である。
【００３１】
無効化要求部１４０は、キャッシュコントロール部１５０に対してキャッシュメモリ無効化要求を出力する処理部である。また、無効化要求部１４０は、入力装置を介してユーザからプロセッサ１１０あるいはプロセッサ１２０の切り離し要求を取得した場合、あるいは動的再構成プログラムからプロセッサ１１０あるいはプロセッサ１２０の切り離し要求を取得した場合に、プロセッサ切り離し要求をキャッシュコントロール部１５０に出力する。
【００３２】
このプロセッサ切り離し要求には、プロセッサ１１０を切り離す旨の要求あるいは、プロセッサ１２０を切り離す旨の要求あるいは、プロセッサ１１０，１２０の双方とも切り離す旨の要求のいずれかが含まれることとなる。
【００３３】
また、無効化要求部１４０は、プロセッサ１１０，１２０に発生するエラーの回数をカウントし、エラー回数が規定値以上となった場合に、エラー回数が規定値以上となったプロセッサに対するプロセッサ切り離し要求をキャッシュコントロール部１５０に出力する。
【００３４】
キャッシュコントロール部１５０は、無効化要求部１４０からキャッシュメモリ無効化要求あるいは、プロセッサ切り離し要求を取得した場合に、キャッシュメモリ１３０に記憶されたデータの無効化を制御する処理部である。また、このキャッシュコントロール部１５０は、ライトバック方式によってメインメモリとキャッシュメモリ１３０との間でコヒーレンシを維持する。
【００３５】
キャッシュコントロール部１５０は、無効化要求取得部１６０と、停止・解除要求部１７０と、無効化実行部１８０と、書き戻し判定部１９０と、キャッシュメモリ登録情報記憶部２００とを備えて構成される。
【００３６】
このうち、無効化要求取得部１６０は、無効化要求部１４０からキャッシュメモリ無効化要求あるいはプロセッサ切り離し要求を取得する処理部である。また、無効化要求取得部１６０は、キャッシュメモリ無効化要求を取得した場合には、無効化実行部１８０に、キャッシュメモリ１３０に対する無効化を要求する。
【００３７】
一方、無効化要求取得部１６０は、無効化要求部１４０からプロセッサ切り離し要求を取得した場合には、取得したプロセッサ切り離し要求を停止・解除要求部１７０に出力するとともに、無効化実行部１８０に、キャッシュメモリ１３０に対する無効化を要求する。
【００３８】
停止・解除要求部１７０は、プロセッサ１１０，１２０の切り離しを行う処理部である。具体的に、この停止・解除要求部１７０は、無効化要求取得部１６０からプロセッサ切り離し要求を取得した場合に、プロセッサ１１０，１２０に命令ユニットの停止要求を出力してプロセッサ１１０，１２０によって新規の命令が実行されることを停止させ、実行中の命令を完了させる。
【００３９】
そして、停止・解除要求部１７０は、無効化実行部１８０から、キャッシュメモリ１３０に対する無効化が完了した旨の情報を取得した場合には、切り離し対象となるプロセッサの状態を有効から無効に変化させると共に、切り離し対象ではないプロセッサの停止状態を解除し、新規の命令の実行を許可する。
【００４０】
例えば、プロセッサ切り離し要求が、プロセッサ１１０を切り離す旨の要求である場合には、停止・解除要求部１７０は、無効化実行部１８０から、キャッシュメモリ１３０に対する無効化が完了した旨の情報を取得した場合に、プロセッサ１１０の状態を有効から無効に変化させると共に、プロセッサ１２０の停止状態を解除し、新規の命令の実行を許可する。
【００４１】
プロセッサ切り離し要求が、プロセッサ１２０を切り離す旨の要求である場合には、停止・解除要求部１７０は、無効化実行部１８０から、キャッシュメモリ１３０に対する無効化が完了した旨の情報を取得した場合に、プロセッサ１２０の状態を有効から無効に変化させると共に、プロセッサ１１０の停止状態を解除し、新規の命令の実行を許可する。
【００４２】
なお、プロセッサ切り離し要求が、プロセッサ１１０，１２０を切り離す旨の要求である場合には、停止・解除要求部１７０は、無効化実行部１８０から、キャッシュメモリ１３０に対する無効化が完了した旨の情報を取得した場合に、プロセッサ１１０，１２０の状態を有効から無効に変化させる。
【００４３】
無効化実行部１８０は、無効化要求取得部１６０から無効化の要求を取得した場合に、キャッシュメモリ１３０の各ブロックを無効化し、キャッシュメモリ１３０に対する無効化が全て完了した場合には、無効化が完了した旨の情報を停止・解除要求部１７０に出力する処理部である。
【００４４】
また、無効化実行部１８０は、キャッシュメモリ１３０のブロックに記録されたデータを無効化する場合には、無効化対象となるブロックの識別情報（以下、ブロック識別情報）を書き戻し判定部１９０に出力し、書き戻し判定部１９０からの応答を取得する。そして、無効化実行部１８０は、書き戻しが必要な場合には、無効化対象となるブロックに記憶されたデータをメインメモリに書き戻してから、データの無効化を実行する。なお、無効化実行部１８０は、書き戻しが必要ない場合には、無効化対象となるブロックに記憶されたデータをそのまま無効化する。
【００４５】
書き戻し判定部１９０は、無効化実行部１８０からブロック識別情報を取得した場合に、当該ブロック識別情報に対応するブロックの登録状態をキャッシュメモリ登録情報記録部２００から検索し、ブロックに記憶されたデータの書き戻しが必要か否かを判定する処理部である。ここで、キャッシュメモリ登録情報記憶部２００は、キャッシュメモリ１３０の各ブロックに記憶されたデータの登録情報（例えば、ライトバック実行後にデータが更新されたか否かを示す情報など）を記憶する記憶部である。
【００４６】
書き戻し判定部１９０は、書き戻しが必要であると判定した場合には、書き戻しが必要である旨の情報を無効化実行部１８０に出力し、書き戻しが必要でないと判定した場合には、書き戻しが必要でない旨の情報を無効化実行部１８０に出力する。
【００４７】
次に、本実施例にかかるプロセッサユニット１００が行う切り離し処理について説明する。図３は、本実施例にかかるプロセッサユニット１００の切り離し処理を示すフローチャートである。同図に示すように、プロセッサユニット１００は、無効化要求取得部１６０が、無効化要求部１４０からプロセッサ切り離し要求を取得し（ステップＳ１０１）、停止・解除要求部１７０が、無効化要求取得部１６０からプロセッサ切り離し要求を取得して、プロセッサ１１０，１２０における命令ユニットの停止要求を出力する（ステップＳ１０２）。
【００４８】
続いて、無効化実行部１８０は、無効化要求取得部１６０から無効化の要求を取得し、無効化対象となるブロックを選択し（ステップＳ１０３）、書き戻し判定部１９０が、無効化実行部１８０からブロック識別情報を取得して、無効化実行部１８０が選択したブロックの書き戻しが必要か否かを、キャッシュメモリ登録情報記憶部２００を検索して判定する（ステップＳ１０４）。
【００４９】
そして、無効化実行部１８０は、書き戻し判定部１９０によって書き戻しが必要であると判定された場合には（ステップＳ１０５，Ｙｅｓ）、メインメモリに無効化対象となるブロックに記憶されたデータを送出し、全てのブロックに対する無効化が完了したか否かを判定する（ステップＳ１０７）。一方、無効化実行部１８０は、書き戻し判定部１９０によって書き戻しが必要でないと判定された場合には（ステップＳ１０５，Ｎｏ）、そのままステップＳ１０７に移行する。
【００５０】
無効化実行部１８０が、全てのブロックに対する無効化が完了していないと判定した場合には（ステップＳ１０８，Ｎｏ）、未選択のブロックを選択して（ステップＳ１０９）、ステップＳ１０４に移行する。
【００５１】
一方、無効化実行部１８０が、全てのブロックに対する無効化が完了したと判定した場合には（ステップＳ１０８，Ｙｅｓ）、停止・解除要求部１７０は、無効化実行部１８０から全てのブロックに対する無効化が完了した旨の情報を取得し、切り離し対象とならないプロセッサの停止要求を解除する（ステップＳ１１０）。
【００５２】
このように、プロセッサユニット１００は、プロセッサ切り離し要求を取得した場合に、キャッシュコントロール部１５０が、プロセッサ１１０，１２０に命令ユニットの停止要求を出力し、キャッシュメモリ１３０の無効化が完了した後に、切り離し対象以外のプロセッサに対する停止要求を解除するので、効率よくプロセッサの切り離し処理を実行することができる。
【００５３】
上述してきたように、本実施例にかかるプロセッサユニット１００は、プロセッサ１１０，１２０（あるいはどちらか一方のプロセッサ）を切り離す場合に、無効化要求部１４０が、キャッシュコントロール部１５０にプロセッサ切り離し要求を出力し、キャッシュコントロール部１５０は、プロセッサ１１０，１２０に命令ユニットの停止要求を出力する。そして、キャッシュコントロール部１５０は、プロセッサ１１０，１２０の実行中の処理が完了した後に、キャッシュメモリ１３０の各ブロックの無効化を実行し、切り離し対象以外のプロセッサに対する停止要求を解除し、切り離し対象となるプロセッサの停止要求を解除しないことで、プロセッサを切り離すので、キャッシュメモリ１３０が複数のプロセッサ１１０，１２０に共有されている場合であっても、安全かつ迅速にプロセッサをシステムから切り離し、システムの可用性を高めることができる。
【００５４】
また、キャッシュメモリを共有するプロセッサが単数であったとしても、プロセッサの命令ユニットを停止させ、キャッシュメモリに記録されたデータを全て無効化することで、プロセッサを切り離すことができるので、煩雑な処理を実行することなく、迅速にプロセッサを切り離すことができる。
【００５５】
なお、本実施例では、同一のプロセッサユニットに備えられたプロセッサの切り離しについて説明を行ったが、異なるプロセッサユニットに備えられるプロセッサによってキャッシュメモリが共有される構成においても、同様の手法を用いてプロセッサを切りなすことができる。図４は、異なるプロセッサユニットに備えられるプロセッサによってキャッシュメモリが共有されている構成の一例を示す図である。
【００５６】
同図に示すように、プロセッサユニット３００，４００が備えるプロセッサを切り離す場合には、キャッシュコントロール部１５０は、プロセッサユニット３００，４００が備えるプロセッサに命令ユニットの停止要求を出力する。そして、キャッシュメモリ１３０の無効化が完了した後に、キャッシュコントロール部１５０は、切り離し対象以外のプロセッサに対する停止要求を解除することによって、プロセッサの切り離しを実現させる。
【産業上の利用可能性】
【００５７】
以上のように、本発明にかかるキャッシュ制御回路、情報処理装置および切り離し方法は、複数のプロセッサが実装されたシステムに有用であり、特に、プロセッサの切り離しを安全かつ迅速に実行する必要のある場合に適している。
【図面の簡単な説明】
【００５８】
【図１】図１は、本発明によるプロセッサの切り離し処理を説明するための説明図である。
【図２】図２は、本実施例にかかるプロセッサユニットの構成を示す機能ブロック図である。
【図３】図３は、本実施例にかかるプロセッサユニットの切り離し処理を示すフローチャートである。
【図４】図４は、異なるプロセッサユニットに備えられるプロセッサによってキャッシュメモリが共有されている構成の一例を示す図である。
【図５】図５は、従来技術にかかる無効化処理を説明するための説明図である。
【図６】図６は、従来技術にかかるプロセッサの切り離し処理を説明するための説明図である。
【符号の説明】
【００５９】
１０，１００，３００，４００  プロセッサユニット
２０，１１０，１２０  プロセッサ
３０，１４０  無効化要求部
４０，１５０  キャッシュコントロール部
５０  システム部
５０ａ  キャッシュメモリ登録情報
６０，１３０  キャッシュメモリ
１６０  無効化要求取得部
１７０  停止・解除要求部
１８０  無効化実行部
１９０  書き戻し判定部
２００  キャッシュメモリ登録情報記憶部
【図１】
0004576453.tif 000002
【図２】
0004576453.tif 000003
【図３】
0004576453.tif 000004
【図４】
0004576453.tif 000005
【図５】
0004576453.tif 000006
【図６】
0004576453.tif 000007