(57)【要約】【課題】  従来のマルチプロセッサシステムではロードしようとするプロセッサのメモリにあらかじめプログラムが配置されたメモリが必要である。【解決手段】  ＣＰＵ２処理手段が共有記憶装置への転送終了した後バス制御アクセス許可フラグを設定する転送終了設定手段とバス制御アクセス許可フラグがOFFのあいだ、第１のＣＰＵがバス制御装置を通じて共有記憶装置にアクセスするのを止め、バス制御アクセス許可フラグがONになったとき、バス制御アクセス許可装置が第１のＣＰＵのバス制御装置を経由し、共有記憶装置にアクセスするのを可能とするバス制御アクセス許可装置を備える。【選択図】  図１
2005038444.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと、前記第１のプロセッサからアクセス可能な第１の記憶装置と、複数のプロセッサからアクセス可能な共有記憶装置とを備えた情報処理装置のメモリ排他制御方法であって、前記第１のプロセッサから前記共有記憶装置へのアクセスを許可するか禁止するかを示すバス制御アクセス許可フラグを備え、そのフラグを用いて前記第１のプロセッサから前記共有記憶装置へのアクセス制御を行うメモリ排他制御方法。
【請求項２】
前記バス制御アクセス許可フラグは、前記第１のプロセッサとは別の第２のプロセッサが前記共有記憶装置にアクセスしている間はOFFに設定し、そのアクセスが終了した後はONに設定することにより、前記第１のプロセッサから前記共有記憶装置へのアクセス制御を行うことを特徴とする請求項１記載のメモリ排他制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置において、メモリ排他制御を行なう方法に関する。
【背景技術】
【０００２】
従来の複数のプロセッサからなる情報処理装置において、初期プログラムロード装置およびその方法の構成を図７に示す。
【０００３】
図７において、１１０１は第１のＣＰＵで、後述の共有記憶装置１１０５あるいは、後述の第１の記憶装置１１０２にアクセスするものである。１１０２は第１の記憶装置であり、第１のＣＰＵ１１０１からアクセス可能である。１１０３は第３の記憶装置で、あらかじめプログラムが配置された、第１の記憶装置１１０２と異なる記憶装置であり、第１のＣＰＵ１１０１からアクセス可能である。１１０４はバス制御装置で、共有記憶装置１１０５と第１のＣＰＵ１１０１あるいは共有記憶装置１１０５と後述する第２のＣＰＵ１１０６へのバスの制御をするものである。１１０５は共有記憶装置で、第１のＣＰＵ１１０１あるいは後述する第２のＣＰＵ１１０６からもアクセス可能である。１１０６は第２のＣＰＵで、共有記憶装置１１０５あるいは、後述する第２の記憶装置１１０８にアクセス可能である。１１０７はＣＰＵ２インタフェースで、第１のＣＰＵ１１０１と第２のＣＰＵ１１０６とのアクセスを相互に制御するものである。１１０８は第２の記憶装置で、第２のＣＰＵ１１０６からアクセス可能である。１１０９は第１のプログラム転送手段で、第２の記憶装置１１０８上のプログラムを共有記憶装置１１０５に転送するものである。１１１０は転送終了変数で、共有記憶装置１１０５への転送終了したかどうかの情報をもつ変数で、共有記憶装置１１０５上に存在するものである。１１１１は転送終了設定手段で、共有記憶装置への転送が終ったら転送終了を示す変数に終了を示す値を設定するものである。１１１２は第２のプログラム転送手段で、共有記憶装置１１０５上のプログラムを第１の記憶装置１１０２に転送するものである。１１１３は転送終了監視手段で、転送終了変数１１１０を参照し終了を示す値が設定されていたら、第２のプログラム転送手段１１１２を起動するものである。１１１４は第１のＣＰＵ処理手段で、第１の記憶装置１１０２上で動作するプログラムである。１１１５は第１のプロセッサで、第１のＣＰＵ１１０１、第１の記憶装置１１０２、第３の記憶装置１１０３、バス制御装置１１０４、第２のＣＰＵ１１０７から構成される。１１０６は第２のプロセッサで第２のＣＰＵ  １１１６、第２の記憶装置１１０８から構成される。
【０００４】
前述のように構成された従来のメモリ排他制御方法の動作を、図８のフローチャートを用いて説明する。
【０００５】
ステップ１２０１：システムをリセットするとステップ１２０２とステップ１２０５が同時に起動する。
【０００６】
ステップ１２０２：第２のＣＰＵが第２の記憶装置のプログラムを実行する。
【０００７】
ステップ１２０３：第２の記憶装置上の第１のプログラム転送手段が第２の記憶装置上の第２のプログラム転送手段、第１のＣＰＵ処理手段を共有記憶装置に転送する。
【０００８】
ステップ１２０４：転送終了設定手段が第１のＣＰＵ処理手段を共有記憶装置に転送し終ったことを判定し、転送終了したことを検出したら、転送終了変数に終了を示す値を設定する。
【０００９】
ステップ１２０５：第１のＣＰＵが、あらかじめ配置された第３の記憶装置上のプログラムを実行する
ステップ１２０６：第３の記憶装置上の転送終了監視手段が転送終了変数を参照し、転送終了変数に終了を示す値が設定されていたら、共有記憶装置上の第２のプログラム転送手段が第１のＣＰＵ処理手段を第１の記憶装置に転送する。
【００１０】
ステップ１２０７：共有記憶装置上の第２のプログラム転送手段が第１のＣＰＵ処理手段を第１の記憶装置に転送し終ったら、第１のＣＰＵ処理手段を起動する。
【００１１】
以上のように動作する従来の情報処理装置における具体的な動作を次に説明する。
（１３０１）いま、システムの初期状態での従来の各処理手段の配置が図９のとおりであったとする。
【００１２】
図９によると、第１のプログラム転送手段、転送終了設定手段、第２のプログラム転送手段、第１のＣＰＵ処理手段が第２の記憶装置上に格納されており、第３の記憶装置上にあらかじめ転送終了監視手段が格納されており、共有記憶装置、第１の記憶装置上には何も格納されていないとする。
（１３０２）システムをリセットするとステップ１２０２とステップ１２０５が同時に起動する。
【００１３】
これにより、第２のＣＰＵによって第１のプログラム転送手段が起動され、第２のプログラム転送手段、第１のＣＰＵ処理手段を転送する。
（１３０３）ステップ１２０５によって、転送終了監視手段が起動し、転送終了変数を参照する。
まだ転送終了変数に終了を示す値１が設定されないので転送終了監視手段の実行を繰り返す。
（１３０４）第２のＣＰＵが第２のプログラム転送手段、第１のＣＰＵ処理手段を共有記憶装置に転送し終ると、転送終了変数に終了を示す１が設定され、図１０となる。
（１３０５）転送終了変数に１に設定されたので、第１のＣＰＵが第２のプログラム転送手段を起動し、第１のＣＰＵ処理手段が第１の記憶装置に転送され、図１１となる。
【００１４】
このとき、第２のプログラム転送手段は、それぞれ共有記憶装置上の先頭アドレス0x80000000、転送すべきプログラムのサイズ0x01000040、第１の記憶装置上の先頭アドレス0x40001000という固定値が実際のプログラム上に書き込まれており、その分だけ転送を行う。
（１３０６）ステップ１２０７により第１のＣＰＵ処理手段を起動する。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
従来例では、第１の記憶装置と、第１の記憶装置とは別の、あらかじめプログラムが配置された第３の記憶装置を設ける必要があった。
【００１６】
また、プログラムを共有記憶装置から第２の記憶装置に転送する時、プログラムのサイズと、転送前のプログラムが配置されているアドレス、転送後のプログラムが配置されているアドレスの情報をあらかじめ求めて、プログラムの中に定数として記述する必要があった。
【００１７】
このような課題に鑑み、本発明は、情報処理装置において、あらかじめプログラムが配置された第３の記憶装置を設けることなしに、第１のＣＰＵがプログラムロード可能なメモリ排他制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の課題を解決するため、本発明のメモリ排他制御方法は、第１のＣＰＵから共有記憶装置へのアクセス許可するかアクセス禁止するかを示すバス制御アクセス許可フラグを備え、第１のプログラム転送手段が共有記憶装置への転送を終了したらバス制御アクセス許可フラグを設定する転送終了設定手段とバス制御アクセス許可フラグがOFFのあいだ、第１のＣＰＵがバス制御装置を通じて共有記憶装置にアクセスするのを止め、バス制御アクセス許可フラグがONになったとき、バス制御アクセス許可装置が第１のＣＰＵのバス制御装置を経由し、共有記憶装置にアクセスするのを可能とするバス制御アクセス許可装置を備える。
【００１９】
オーバーレイテーブルから転送すべきプログラムのサイズ、共有記憶装置上の先頭アドレス、第１の記憶装置上の先頭アドレスを取得するオーバーレイテーブル検出手段とオーバーレイテーブル検出手段が取得した、転送すべきプログラムのサイズ、共有記憶装置上の先頭アドレス、第１の記憶装置上の先頭アドレスの情報をもとに第１の記憶装置に転送する第２のプログラム転送手段を備える。  
【発明の効果】
【００２０】
従来では２つ以上のＣＰＵ構成のマルチプロセッサシステムでは、ＣＰＵ１処理手段を第１の記憶装置に転送する時、転送し終るまで、第１のＣＰＵが第１の記憶装置へアクセスするのを避けなければならず、転送終了するまでループする処理をシステムの初期状態で、あらかじめ第３の記憶装置に格納しておかなければならなかった。
【００２１】
本発明は、マルチプロセッサシステムにおいて、転送終了設定手段が、バス制御アクセス許可フラグを設定し、バス制御アクセス許可装置がバス制御アクセス許可フラグがOFFのあいだ、第１のＣＰＵがバス制御装置を通じて共有記憶装置にアクセスするのを止め、バス制御アクセス許可フラグがONになったとき、バス制御アクセス許可装置が第１のＣＰＵのバス制御装置を経由し、共有記憶装置にアクセスする方法により、あらかじめプログラムを第３の記憶装置を設けなくても第１のＣＰＵのみアクセス可能な空間に転送することができ、マルチプロセッサシステムにおいてメモリ排他制御が可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明のメモリ排他制御方法の一実施例を説明する。
【００２３】
図１は本発明の実施例におけるメモリ排他制御方法の構成図を示すものである。
【００２４】
図１において、１０１は第１のＣＰＵで、後述の共有記憶装置１０５あるいは、第１の記憶装置１０２にアクセスするものである。１０２は第１の記憶装置であり、第１のＣＰＵ１０１がアクセス可能である。１０３はバス制御装置で、第１のＣＰＵ１０１からのアクセスする信号、あるいは後述の第２のＣＰＵ１０６からアクセスする信号により、第１のＣＰＵ１０１から共有記憶装置１０５へのアクセスあるいは第２のＣＰＵ１０６から共有記憶装置１０５へのアクセスするバスの制御をするものである。１０４はバス制御アクセス許可装置で、バス制御アクセス許可フラグがONになれば、バス制御装置１０３を経由した共有記憶装置１０５へのアクセスを許可するものである。１０５は共有記憶装置で、第１のＣＰＵ１０１あるいは第２のＣＰＵ１０６からもアクセスすることが可能である。１０６は第２のＣＰＵで、共有記憶装置１０５あるいは、第２の記憶装置１０７にアクセスするものである。１０７は第２の記憶装置で、第２のＣＰＵ１０６がアクセス可能である。後述の第１のプログラム転送手段１０９、転送終了設定手段１１０、第２のプログラム転送手段１１１、オーバーレイテーブル検出手段１１３はシステム起動前には第２の記憶装置に格納されている。１０８はＣＰＵ２インタフェースで、このインタフェースを経由してバス制御装置１０３とバス制御アクセス許可装置１０４を制御するものである。１０９は第１のプログラム転送手段で、第２の記憶装置１０７上のプログラムを共有記憶装置１０５に転送するものである。１１０は転送終了設定手段で、共有記憶装置１０５への転送が終ったらバス制御アクセス許可フラグをONにするものである。１１１は第２のプログラム転送手段で、共有記憶装置１０５上のプログラムを第１の記憶装置１０２に転送するものである。１１２はオーバーレイテーブルで、プログラムを区別する情報、プログラムのサイズ、複数の記憶装置上での先頭アドレス情報が格納されている。１１３はオーバーレイテーブル検出手段で、オーバーレイテーブルから転送すべきプログラムのサイズ、共有記憶装置１０５上の先頭アドレス、第１の記憶装置１０２上の先頭アドレスを取得するものである。１１４はＣＰＵ１処理手段で、第１の記憶装置１０２上で動作するプログラムである。１１５は第１のプロセッサで、第１の第１のＣＰＵ０１、第１の記憶装置１０２、バス制御装置１０３、バス制御アクセス許可装置１０４、ＣＰＵ２インタフェース１０８から構成される。１１６は第２のプロセッサで第２のＣＰＵ１０６、第２の記憶装置１０７から構成される。
【００２５】
前述のように構成された本実施例のメモリ排他制御方法の動作を、図２のフローチャートを用いて説明する。
【００２６】
ステップ２０１：システムをリセットにする。
【００２７】
ステップ２０２：ステップ２０５を同時に起動する。
【００２８】
ステップ２０２：第２のＣＰＵが第２の記憶装置のプログラムを実行する。
【００２９】
ステップ２０３：第２の記憶装置上の第１のプログラム転送手段が、オーバーレイテーブル検出手段、第２のプログラム転送手段を共有記憶装置に転送する。
【００３０】
ステップ２０４：転送終了設定手段が、オーバーレイテーブル検出手段、第２のプログラム転送手段を共有記憶装置に転送し終ったことを判定し、転送終了したことを検出したら、バス制御アクセス許可フラグONを設定する。
【００３１】
ステップ２０５：バス制御アクセス許可装置が、バス制御アクセス許可フラグを参照し、バス制御アクセス許可フラグONが設定されていたら、第１のＣＰＵがバス制御装置へアクセスすることを許可する。
【００３２】
ステップ２０６：第１のＣＰＵがバス制御装置を経由して、共有記憶装置上のオーバーレイテーブル検出手段を起動する。
【００３３】
ステップ２０７：オーバーレイテーブル検出手段が、オーバーレイテーブルから転送すべきプログラムのサイズ、共有記憶装置上の先頭アドレス、第１の記憶装置上の先頭アドレスを取得し、第２のプログラム転送手段を起動する。
【００３４】
ステップ２０８：第２のプログラム転送手段が、オーバーレイテーブル検出手段が取得したオーバーレイテーブルから転送すべきＣＰＵ１処理手段のサイズ、共有記憶装置上の先頭アドレス、第１の記憶装置上の先頭アドレスの情報をもとに、共有記憶上の先頭アドレスから第１の記憶装置上の先頭アドレスへ転送すべきＣＰＵ１処理手段のサイズだけ転送すべきＣＰＵ１処理手段を第１の記憶装置に転送する。
【００３５】
ステップ２０９：第２のプログラム転送手段がＣＰＵ１処理手段を第１の記憶装置に転送し終ったら、ＣＰＵ１処理手段を起動する。
【００３６】
以上のように動作する本実施例のメモリ排他制御方法における具体的な動作を次に説明する。
（１０１）いま、共有記憶装置転送処理手段、第２のプログラム転送手段は第２の記憶装置上に格納されており、共有記憶装置、第１の記憶装置には何も格納されておらず、各処理手段の配置は図６の状態となっているとする。第２の記憶装置のアドレスは００００００００番地から、共有記憶装置のアドレスは８０００００００番地から、第１の記憶装置のアドレスは４０００００００番地から割り当てられている。
（１０２）システムリセットにするとステップ２０２、ステップ２０５が同時に起動する。
（１０３）ステップ２０２により、第２のＣＰＵが第２の記憶装置のプログラムを起動する。
（１０６）第２のＣＰＵが第１のプログラム転送手段を起動する。
これにより、オーバーレイテーブル検出手段、第２のプログラム転送手段を共有記憶装置に転送し、図４の状態となる。図４は各処理手段の配置がどの記憶装置に配置されているかを示す。
（１０７）転送終了したので第２のＣＰＵが転送終了設定手段を起動し、バス制御アクセス許可フラグONを設定する。
（１０８）バス制御アクセス許可フラグONが設定されたので、バス制御アクセス許可装置がバス制御アクセス許可フラグを参照し、バス制御アクセス許可装置が第１のＣＰＵがバス制御装置をへアクセスすることを許可する。
（１０９）バス制御装置へのアクセスが可能になったので第１のＣＰＵが共有記憶装置上のオーバーレイテーブル検索手段を起動する。
（１１０）オーバーレイテーブル検索手段が図３のオーバレイテーブルから、サイズ情報、共有記憶装置上のアドレス情報、第１の記憶装置上のアドレス情報を取得する。
【００３７】
その結果、サイズ情報０x４０、共有記憶上のアドレス０x８０００００５４第１の記憶装置上のアドレス０x４００００００８を得る。
（１１１）第１のＣＰＵが第２のプログラム転送手段を起動する。
このとき、オーバーレイテーブル検索手段が取得したサイズ情報、共有記憶装置上のアドレス情報をもとに、共有記憶装置上のアドレスから第１の記憶装置上のアドレスへ、サイズ情報分だけ第１の記憶装置に転送し、その結果図５の状態となる。
【００３８】
図５は各処理手段の配置がどの記憶装置に配置されているかを示す。
（１１２）第１の記憶装置への転送が終ったら、ＣＰＵ１処理手段を起動する 。
【図面の簡単な説明】
【００３９】
【図１】本発明のメモリ排他制御方法の構成図
【図２】本発明のメモリ排他制御方法のフロー図
【図３】実施例のオーバーレイテーブルを示す図
【図４】システム初期状態での各処理手段の配置を示す図
【図５】共有記憶装置転送後の各処理手段の配置を示す図
【図６】第１の記憶装置転送後の各処理手段の配置を示す図
【図７】従来のメモリ排他制御方法の構成図
【図８】従来のメモリ排他制御方法のフロー図
【図９】従来のシステム初期状態での各処理手段の配置を示す図
【図１０】従来の共有記憶装置転送後の各処理手段の配置を示す図
【図１１】従来の第１の記憶装置転送後の各処理手段の配置を示す図
【図１】
2005038444.tif 000003
【図２】
2005038444.tif 000004
【図３】
2005038444.tif 000005
【図４】
2005038444.tif 000006
【図５】
2005038444.tif 000007
【図６】
2005038444.tif 000008
【図７】
2005038444.tif 000009
【図８】
2005038444.tif 000010
【図９】
2005038444.tif 000011
【図１０】
2005038444.tif 000012
【図１１】
2005038444.tif 000013