(57)【要約】【課題】未使用の記憶領域の生成を防ぐ【解決手段】第１処理装置、第２処理装置、第１記憶装置、及び第２記憶装置に対してデータを入出力する入出力制御装置であって、第１処理装置が出力する第１データを分割するデータ分割部と、分割した第１データを、第１記憶装置及び第２記憶装置にそれぞれ格納するとともに、第２処理装置が出力し且つ第１データよりビット数が少ない第２データを、第１記憶装置及び第２記憶装置の何れか１つに格納する格納制御部と、を備える入出力制御装置が提供される。【選択図】図２
2012014397.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を実行して、第１データを出力する第１処理装置、演算処理を実行して、前記第１データよりビット数が少ない第２データを出力する第２処理装置、第１記憶装置、及び第２記憶装置に対してデータを入出力する入出力制御装置であって、
前記第１処理装置が出力する第１データを分割するデータ分割部と、
前記分割した第１データを、前記第１記憶装置及び前記第２記憶装置にそれぞれ格納するとともに、前記第２処理装置が出力する第２データを、前記第１記憶装置及び前記第２記憶装置の何れか１つに格納する格納制御部と、を備えることを特徴とする入出力制御装置。
【請求項２】
前記格納制御部は、前記第２データのアドレスを、前記第１記憶装置又は前記第２記憶装置のアドレスに変換することを特徴とする請求項１に記載の入出力制御装置。
【請求項３】
前記格納制御部は、前記第１データのアドレス及び前記第２のデータのアドレスに含まれるビットを用いて、前記第１データ又は前記第２データの出力先を認識することを特徴とする請求項１又は２に記載の入出力制御装置。
【請求項４】
前記データ分割部は、受け取ったデータのうち、上位ビット部分又は下位ビット部分を前記第２データと判別して、前記判別した第２データを前記格納制御部に出力することを特徴とする請求項１〜３の何れか１項に記載の入出力制御装置。
【請求項５】
演算処理を実行して、第１データ及び前記第１データのアドレスを出力する第１処理装置と、
演算処理を実行して、前記第１データよりビット数が少ない第２データ及び前記第２データのアドレスを出力する第２処理装置と、
前記第１データ及び前記第２データを記憶する第１記憶装置及び第２記憶装置と、
前記第１処理装置が出力する第１データを分割するデータ分割部と、前記分割した第１データを、前記第１記憶装置及び前記第２記憶装置にそれぞれ格納するとともに、第２処理装置が出力する第２データを前記第１記憶装置及び前記第２記憶装置の何れか１つに格納する格納制御部と、を備える入出力制御装置と、を備えることを特徴とする情報処理装置。
【請求項６】
前記格納制御部は、前記第２データのアドレスを、前記第１記憶装置又は前記第２記憶装置のアドレスに変換することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記格納制御部は、前記第１データのアドレス及び前記第２のデータのアドレスに含まれるビットを用いて、前記第１データ又は前記第２データの出力先を認識することを特徴とする請求項５又は６に記載の情報処理装置。
【請求項８】
前記データ分割部は、受け取ったデータのうち、上位ビット部分又は下位ビット部分を前記第２データと判別して、前記判別した第２データを前記格納制御部に出力することを特徴とする請求項５〜７の何れか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願で言及する実施例は、入出力制御装置、及び情報処理装置に関する。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と主記憶装置との間のデータの入出力を制御するメモリアクセス制御装置が知られている。メモリアクセス制御装置は、ＣＰＵ及び主記憶装置と共に、情報処理装置に含まれる。
【０００３】
情報処理装置には、主記憶装置への出力データのビット数が互いに異なる２つのＣＰＵを備えるものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３５９３３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ビット数が異なるＣＰＵの出力データを主記憶装置に格納する場合、主記憶装置は、大きなビット数に合わせて構成されるか、又は、小さなビット数に合わせて構成される。大きなビット数に合わせて構成される主記憶装置が、小さなビット数のデータを格納する場合、主記憶装置に未使用の記憶領域が生じる。
【０００６】
また、ビット数の小さなデータを格納するように構成される主記憶装置は、大きなビット数のデータの一部を格納できない。そのため、大きなビット数を出力するＣＰＵは、主記憶装置に格納されるビット範囲に演算結果を含むようにデータを生成するので、ＣＰＵの機能を最大限に使用することができない。
【課題を解決するための手段】
【０００７】
一実施形態によれば、演算処理を実行して、第１データを出力する第１処理装置、演算処理を実行して、前記第１データよりビット数が少ない第２データを出力する第２処理装置、第１記憶装置、及び第２記憶装置に対してデータを入出力する入出力制御装置であって、データ分割部と、格納制御部と、を備える入出力制御装置が提供される。前記データ分割部は、前記第１処理装置が出力する第１データを分割する。前記格納制御部は、前記分割した第１データを、前記第１記憶装置及び前記第２記憶装置にそれぞれ格納するとともに、前記第２処理装置が出力する第２データを、前記第１記憶装置及び前記第２記憶装置の何れか１つに格納する。
【発明の効果】
【０００８】
開示の入出力制御装置は、出力ビット数が互いに異なる複数の演算処理装置から出力されるデータを全て主記憶装置に格納するとともに、未使用の記憶領域の生成を防ぐことができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の一例を示す図である。
【図２】入出力制御装置の一例を示す図である。
【図３】演算処理装置出力アドレスのデータフォーマットの一例を示す図である。
【図４】演算処理装置出力アドレスと、主記憶装置のアドレスとの関係の一例を示す図である。
【図５Ａ】変換アドレスにより特定される主記憶装置の記憶領域の一例を示す図である。
【図５Ｂ】演算処理装置のアドレスにより特定される主記憶装置の記憶領域の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、情報処理装置と、入出力制御装置について説明する。まず、図１を用いて、情報処理装置について説明する。
【００１１】
＜１．情報処理装置の詳細＞
図１は、情報処理装置の一例を示す図である。図１において、参照符号１０は情報処理装置を示す。図１に示すように、情報処理装置１０は、演算処理装置４０Ａ、演算処理装置４０Ｂ、入出力制御装置５０、及び主記憶装置７０Ａ、７０Ｂを有する。情報処理装置１０はさらに、通信部３３、音声出力部３５、画像表示部３７、及び入力部３８を有する。演算処理装置４０Ａ及び４０Ｂは、入出力制御装置５０を介して、主記憶装置７０Ａ及び７０Ｂに対するデータの入出力を行う。情報処理装置１０は、例えば、サーバ、パーソナルコンピュータ、又は、無線通信を送受信可能な携帯端末である。
【００１２】
＜１．１  演算処理装置＞
演算処理装置４０Ａは、命令実行部４１Ａ、レジスタ４２Ａ、キャッシュメモリ４３Ａ、及びコントローラ４４Ａを含む。演算処理装置４０Ｂは、命令実行部４１Ｂ、レジスタ４２Ｂ、キャッシュメモリ４３Ｂ、及びコントローラ４４Ｂを含む。演算処理装置４０Ａ及び４０Ｂは、例えば、ＣＰＵである。
【００１３】
演算処理装置４０Ａが主記憶装置７０Ａ及び７０Ｂに対して入出力するデータのビット数である外部データバス幅は、演算処理装置４０Ｂの外部データバス幅より広い。例えば、演算処理装置４０Ａの外部データバス幅は、６４ビットであり、演算処理装置４０Ｂの外部データバス幅は、３２ビットである。なお、以下において、演算処理装置４０Ａの外部データバス幅を６４ビット、演算処理装置４０Ｂの外部データバス幅を３２ビットとして説明するが、外部データバス幅は、これらのビット数に限定されない。
【００１４】
演算処理装置４０Ａ及び演算処理装置４０Ｂは、主記憶装置７０Ａ及び７０Ｂにおいてそれぞれ異なるアドレス空間にアクセスする。そのため、演算処理装置４０Ａ及び４０Ｂの一方は、出力するデータのアドレスを、演算処理装置４０Ａ及び４０Ｂのうち他方の演算処理装置と相違するように生成する。なお、図４を用いて後述するように、演算処理装置４０Ａ及び４０Ｂが出力するアドレスは、主記憶装置７０Ａ及び７０Ｂにおいて未使用の記憶領域の生成を回避するために、入出力制御装置５０によって、主記憶装置７０Ａ及び７０Ｂの物理アドレスに変換される。
【００１５】
演算処理装置４０Ａ又は４０Ｂの命令実行部４１Ａ又は４１Ｂは、主記憶装置７０Ａ又は７０Ｂに格納されるプログラムを実行することで、所定の機能を実現する。
【００１６】
レジスタ４２Ａ又は４２Ｂは、命令実行部４１Ａ又は４１Ｂの計算結果としてのデータ、主記憶装置７０Ａ又は７０Ｂに読み書きする際のアドレス、命令実行部４１Ａ又は４１Ｂの動作状態などを記憶する記憶装置である。
【００１７】
データを格納するレジスタのデータバス幅は、演算処理装置４０Ａ又は４０Ｂのデータ信号線ｃ１１、ｃ２１の外部データバス幅に関連する。例えば、演算処理装置４０Ａ又は４０Ｂのレジスタのデータバス幅は、外部データバス幅と同じである。
【００１８】
キャッシュメモリ４３Ａ、４３Ｂは、主記憶装置７０Ａ又は７０Ｂに格納されるデータ又は命令のうち、命令実行部４１Ａ、４１Ｂにより頻繁に使用されるデータ又は命令を記憶する記憶装置である。
【００１９】
コントローラ４４Ａ、４４Ｂは、主記憶装置７０Ａ又は７０Ｂからキャッシュメモリ４３Ａ、４３Ｂへの命令又はデータのロード、キャッシュメモリ４３Ａ、４３Ｂから主記憶装置７０Ａ又は７０Ｂへのデータのストアを制御するユニットである。コントローラ４４Ａ、４４Ｂはさらに、命令実行部４１Ａ、４１Ｂと、他のユニットとの接続を制御する。他のユニットは、命令実行部４１Ａの場合、画像表示部３７、入力部３８、音声出力部３５である。他のユニットは、命令実行部４１Ｂの場合、通信部３３である。コントローラ４４Ａ、４４Ｂは、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）等の規格に従って他のユニットとの接続動作を行う。
【００２０】
演算処理装置４０Ａは、入力部３８から受け取った入力信号に対して演算処理を行い、その結果を、画像表示部３７から画像表示し、又は、音声出力部３５から音声出力する。画像表示部３７は、例えば、液晶ディスプレイ、有機エレクトロルミネッセンスディスプレイである。入力部３８は、例えば、キーパッドである。音声出力部３５は、例えば、スピーカである。
【００２１】
演算処理装置４０Ａは、例えば、ＰＣＭ形式のデジタル信号の音声信号を、アナログ信号に変換して、音声出力部３５にアナログ信号を出力する。演算処理装置４０Ａはさらに、例えば、ＹＵＶやＲＧＢ形式の画像信号に基づき、画像表示部３７を駆動するための表示駆動信号を生成して、画像表示部３７に表示駆動信号を供給する。演算処理装置４０Ａはさらに、情報処理装置１０のユーザが入力部３８を操作することで生じる操作信号を受け取り、操作信号に基づいて演算処理を実行する。
【００２２】
演算処理装置４０Ｂは、図１に示されるように、通信部３３と接続する。通信部３３は、映像又は音声データを含む無線信号を受信して、受信した無線信号から、デジタル信号である映像又は音声データを取得する。通信部３３は、図示されない受信アンテナにより受信された電波から、Ａ／Ｄ（アナログ／デジタル）変換や、フーリエ変換、逆拡散などのベースバンド処理を行った後に、特定の周波数帯域の電波を抽出する。演算処理装置４０Ｂは、通信部３３が外部から受け取った電波に対して、例えば、ＷＣＤＭＡ（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）等の無線アクセス方式に従って所定の符号化又は復号化処理を実行する。
【００２３】
＜１．２  入出力制御装置＞
入出力制御装置５０は、データ信号線ｃ１１、ｃ２１を介して演算処理装置４０Ａ又は４０Ｂに対してデータを入出力する。入出力制御装置５０はさらに、アドレス信号線ｃ１２、ｃ２２を介して演算処理装置４０Ａ又は４０Ｂから読出又は書込データのアドレスを受け取る。
【００２４】
一実施例において、主記憶装置７０Ａ又は７０Ｂは、演算処理装置４０Ａが出力するデータを、１ラインのビット幅で格納することが出来ない。例えば、演算処理装置４０Ａの出力データのデータバス幅は６４ビットで、主記憶装置７０Ａ及び７０Ｂのキャッシュラインに記憶されるデータのビット幅は、３２ビットである。そのため、入出力制御装置５０は、演算処理装置４０Ａが出力する６４ビットのデータを３２ビットのデータに分割するとともに、一方の３２ビットデータを、主記憶装置７０Ａに格納し、他方の３２ビットデータを主記憶装置７０Ｂに格納する。また、主記憶装置７０Ａ及び７０Ｂは、演算処理装置４０Ｂが出力する３２ビットのデータをそれぞれ１ラインで格納することが出来る。そのため、入出力制御装置５０は、演算処理装置４０Ｂが出力する３２ビットのデータを、主記憶装置７０Ａ及び主記憶装置７０Ｂの何れか１つに格納する。
【００２５】
入出力制御装置５０は、データバス信号線ｃ３１、ｃ４１を介してデータを、アドレスバス信号線ｃ３２、ｃ４２を介してアドレスを、主記憶装置７０Ａ又は７０Ｂに対して入出力する。
【００２６】
なお、入出力制御装置５０は、演算処理装置４０Ａの出力データを２つに分割して、一方のデータを主記憶装置７０Ａに、他方のデータを主記憶装置７０Ｂに格納するとともに、演算処理装置４０Ｂの出力データを、主記憶装置７０Ａ又は７０Ｂに格納する。
【００２７】
＜１．３  主記憶装置＞
主記憶装置７０Ａ及び７０Ｂは、半導体素子を利用して電気的にデータを記憶する装置であり、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。上記のように、主記憶装置７０Ａ又は７０Ｂは、キャッシュメモリ４３Ａ又は４３Ｂに格納されるデータ又は命令を包含する。
【００２８】
次に、図２〜図５Ｂを用いて、入出力制御装置５０の詳細例について説明する。
【００２９】
＜２  入出力制御装置の詳細＞
図２は、入出力制御装置の一例を示す図である。入出力制御装置５０は、入出力部５１、データ分割部５３、アドレス判別部５４、切替アドレスレジスタ５５、アドレスマスクレジスタ５６、切替回路５７、ゲート回路５８、及び格納制御部５９を有する。
【００３０】
＜２．１  入出力部＞
入出力部５１は、演算処理装置４０Ａ及び４０Ｂの何れかを指定して、データ及びアドレスの転送を許可するバス調停回路として動作する。入出力部５１は、データ及びアドレスの転送を許可したデータ信号線ｃ１１、ｃ２１の何れか及びアドレス信号線ｃ１２、ｃ２２の何れかから、それぞれデータ及びアドレスを受け取る。
【００３１】
入出力部５１は、演算処理装置４０Ａのデータバス幅で、演算処理装置４０Ａ及び演算処理装置４０Ｂに対してデータの入出力を行う。演算処理装置４０Ａのデータバス幅が６４ビット、及び演算処理装置４０Ｂのデータバス幅が３２ビットである場合、演算処理装置４０Ｂは、６４ビットの下位３２ビットを用いて入出力部５１に対してデータを入出力する。入出力部５１は、演算処理装置４０Ａ又は４０Ｂから受け取ったデータを、データ分割部５３に出力する。なお、演算処理装置４０Ｂの出力データは、６４ビットの下位ビットとしたが、上位ビットとしてもよい。
【００３２】
このように、３２ビットのデータを、６４ビットのデータとして送信することで、演算処理装置４０Ａ及び４０Ｂは、各々別々のデータ線を用意することなく、６４ビットの共通データ線を用いて入出力制御装置５０とのデータ入出力を行うことができる。
【００３３】
入出力部５１は、受け取ったアドレスを、アドレス判別部５４及び格納制御部５９に出力する。演算処理装置４０Ａ及び演算処理装置４０Ｂのアドレスのビット幅は、同じである。
【００３４】
図３は、アドレスの一例を示す図である。アドレス１００は、演算処理装置４０Ａ及び演算処理装置４０Ｂが出力するアドレスデータの共通フォーマットである。演算処理装置４０Ａ及び４０Ｂがアクセスする主記憶装置７０Ａ及び７０Ｂの記憶領域は互いに異なるので、演算処理装置４０Ａ及び４０Ｂが出力するアドレスは、互いに異なる。
【００３５】
アドレスは、ビット番号０から３１で示される３２ビット（以下、「０：３１」で表す）のビット列である。アドレスのビット番号０から２７までの２８ビット（０：２７）は、主記憶装置のアドレスを特定するアドレスビット１２０である。アドレスのビット番号２７から２３までのビット（２７：２３）は、切替アドレス設定ビット１１０である。切替アドレス設定ビット１１０は、アドレスの出力元を識別するビット列であり、アドレスビット１２０の上位５ビットのビット列である。
【００３６】
＜２．２  データ分割部＞
図２に示すデータ分割部５３は、受け取ったデータを、上位ビット部分と下位ビット部分とに分割する。演算処理装置４０Ａの出力データは６４ビットであるので、データ分割部５３は、分割した上位３２ビットを切替回路５７に、分割した下位３２ビットをゲート回路５８に出力する。また、上記のように、演算処理装置４０Ｂの出力データは、６４ビットのうち下位３２ビットが演算処理装置４０Ｂの出力データである。そのため、下位３２ビットだけが切替回路５７で受け取られ、主記憶装置７０Ａ又は７０Ｂに記憶される。したがって、入出力部５１から受け取った演算処理装置４０Ｂの６４ビットデータのうち、上位３２ビットは使用されない。
【００３７】
＜２．３  切替アドレスレジスタ及びアドレスマスクレジスタ＞
切替アドレスレジスタ５５は、切替アドレスを記憶する記憶回路である。切替アドレスは、演算処理装置４０Ａ又は４０Ｂが出力したアドレスの一部のビット列と比較され、演算処理装置４０Ａから出力されたデータと、演算処理装置４０Ｂから出力されたデータとを識別するために使用される。図３に示すように、切替アドレス１３０は、例えば、「０００１０」のビット列である。
【００３８】
アドレスマスクレジスタ５６は、マスクビットを記憶する記憶回路である。マスクビットは、演算処理装置４０Ａ又は４０Ｂが出力したアドレスの一部をマスクすることで、主記憶装置７０Ａ又は７０Ｂのアドレスを生成するために使用されるビット列である。図３に示すように、マスクビット１４０は、例えば、「０００００」のビット列である。後述の格納制御部５９は、マスクビット１４０で、演算処理装置４０Ｂのアドレスの切替アドレス設定ビット１１０をＡＮＤ演算し、主記憶装置７０Ａ又は７０Ｂ用の物理アドレスを生成する。
【００３９】
＜２．４  アドレス判別部＞
（１）出力元である演算処理装置の判別
アドレス判別部５４は、入出力部５１からアドレスを受け取ると、アドレスを出力した演算処理装置を判別するＣＰＵ判別信号Ｃと、演算処理装置４０Ｂの出力データの格納先になる主記憶装置及び記憶領域を判別する主記憶判別信号Ｄを出力する。アドレス判別部５４は、図３に示す切替アドレス設定ビット１１０と図３に示す切替アドレス１３０とを比較して、切替アドレス設定ビット１１０が、切替アドレス１３０以上であれば、データ及びアドレスの出力元は演算処理装置４０Ａと判断する。また、アドレス判別部５４は、切替アドレス設定ビット１１０と切替アドレスとを比較して、切替アドレス設定ビット１１０が、切替アドレス１３０より小さければ、データ及びアドレスの出力元は演算処理装置４０Ｂと判断する。
【００４０】
図４は、演算処理装置出力アドレスと、主記憶装置アドレスとの対応関係の一例を示す図である。対応関係を示す表１５０は、出力元演算処理装置と、アドレスビットと、切替アドレス設定ビットと、主記憶装置７０Ａのアドレスと、主記憶装置７０Ｂのアドレスとの対応関係を示す。アドレスビットを示す列１５２に示すように、アドレスの出力元を示す列１５１が演算処理装置４０Ａである場合、アドレスビットは、「０ｘ１００００００」〜「０ｘＦＦＦＦＦＦＦ」である。また、アドレスの出力元演算処理装置が演算処理装置４０Ｂである場合、アドレスビットは、「０ｘ０００００００」〜「０ｘ０７ＦＦＦＦＦ」である。
【００４１】
列１５２に示すように、演算処理装置４０Ａから出力されるアドレスビットが、下限値「０ｘ１００００００」である場合、列１５３に示すように、アドレスビットの上位５ビットを示す切替アドレス設定ビットは、「０００１０」になる。また、演算処理装置４０Ａから出力されるアドレスが上限値「０ｘＦＦＦＦＦＦＦ」である場合、アドレスビットの上位５ビットを示す切替アドレス設定ビットは、「１１１１１」になる。このように、演算処理装置４０Ａから出力されるデータの切替アドレス設定ビットは、「０００１０」〜「１１１１１」になる。一方、切替アドレス１３０は、「０００１０」であるので、演算処理装置４０Ａから出力されるデータの切替アドレス設定ビットは、切替アドレス１３０以上である。よって、アドレス判別部５４は、切替アドレス設定ビット１１０と切替アドレス１３０とを比較して、切替アドレス設定ビット１１０が切替アドレス１３０以上であれば、アドレスの出力元は演算処理装置４０Ａと判断することができる。
【００４２】
さらに、列１５２に示すように、演算処理装置４０Ｂから出力されるアドレスが下限値「０ｘ０００００００」である場合、列１５３に示すように、アドレスの上位５ビットを示す切替アドレス設定ビットは、「０００００」になる。また、列１５２に示すように、演算処理装置４０Ｂから出力されるアドレスが上限値「０ｘ０８０００００」である場合、列１５３に示すように、アドレスビットの上位５ビットを示す切替アドレス設定ビットは、「００００１」になる。このように、演算処理装置４０Ｂから出力されるデータの切替アドレス設定ビットは、「０００００」〜「００００１」になる。一方、切替アドレス１３０は、「０００１０」であるので、演算処理装置４０Ｂから出力されるデータの切替アドレス設定ビットは、切替アドレス１３０より小さい。よって、アドレス判別部５４は、切替アドレス設定ビット１１０と切替アドレス１３０とを比較して、切替アドレス設定ビット１１０が、切替アドレス１３０より小さければ、アドレスの出力元は演算処理装置４０Ｂと判断することができる。
【００４３】
（２）出力先である主記憶装置の判別
演算処理装置４０Ｂの出力データは、主記憶装置７０Ａ及び７０Ｂの何れか１つに格納される。そのため、演算処理装置４０Ｂの出力データのアドレスは後述の格納制御部５９によって、主記憶装置７０Ａ及び主記憶装置７０Ｂの何れか１つの記憶領域を特定する物理アドレスに変換される。アドレス判別部５４は、受け取ったアドレスにより、格納する主記憶装置及び記憶領域を特定する主記憶判別信号Ｄを出力し、格納制御部５９は主記憶判別信号Ｄに従って、演算処理装置４０Ａ又は４０Ｂの出力アドレスを、主記憶装置７０Ａ又は７０Ｂの物理アドレスに変換する。
【００４４】
図４を用いて、アドレス判別部５４が、演算処理装置４０Ａ又は４０Ｂの出力アドレスから、格納対象となる主記憶装置を識別する方法の一例を説明する。図４に示すように、出力元が演算処理装置４０Ｂである「０ｘ０８０００００」〜「０ｘ０ＦＦＦＦＦＦ」の切替アドレス設定ビットは、「００００１」である。また、出力元が演算処理装置４０Ａである「０ｘ１００００００」〜「０ｘＦＦＦＦＦＦＦ」のアドレス設定ビットは、「０００１０」〜「１１１１１」である。切替アドレス設定ビットが切替アドレス「０００１０」を２で除算した「００００１」以上であり、且つ「０００１０」より小さい場合、アドレス判別部５４は、出力元は「０ｘ０８０００００」〜「０ｘ０ＦＦＦＦＦＦ」の範囲のアドレスを特定していると判別する。主記憶判別信号Ｄは、例えば、２ビットのビット幅を有するデータである。アドレス判別部５４は、主記憶装置７０Ａ及び７０Ｂ、及び物理アドレス「０ｘ０００００００」〜「０ｘ０７ＦＦＦＦＦ」を特定する主記憶判別信号Ｄを格納制御部５９に出力する。
【００４５】
切替アドレス設定ビットが切替アドレス「０００１０」を２で除算した「００００１」以上であり、且つ「０００１０」以上の場合、アドレス判別部５４は、主記憶装置７０Ａの物理アドレスを特定する主記憶判別信号Ｄを格納制御部５９に出力する。それ以外のアドレスの場合、切替アドレス設定ビットが切替アドレス「０００１０」を２で除算した「００００１」より小さい場合、アドレス判別部５４は、主記憶装置７０Ｂの物理アドレスを特定する主記憶判別信号Ｄを格納制御部５９に出力する。
【００４６】
このように、主記憶判別信号Ｄは、出力先の主記憶装置と、記憶領域を示す。後述するように、格納制御部５９は、主記憶判別信号Ｄに従って、演算処理装置４０Ａ又は４０Ｂの出力アドレスを、主記憶装置７０Ａ又は７０Ｂの物理アドレスに変換することができる。
【００４７】
＜２．５  切替回路とゲート回路＞
切替回路５７は、ＣＰＵ判別信号Ｃの信号レベルが「１」のとき、データ分割部５３から出力されるデータ上位ビットを、格納制御部５９に出力する。切替回路５７は、ＣＰＵ判別信号Ｃの信号レベルが「０」のとき、データ分割部５３から出力されるデータ下位ビットを、格納制御部５９に出力する。
【００４８】
ゲート回路５８は、ＣＰＵ判別信号Ｃの信号レベルが「１」のとき、データ分割部５３から出力されるデータ下位ビットを、格納制御部５９に出力する。ゲート回路５８は、ＣＰＵ判別信号Ｃの信号レベルが「０」のとき、データ分割部５３から出力されるデータ下位ビットを、格納制御部５９に出力しない。
【００４９】
図２の切替回路５７及びゲート回路５８に示す例は、ＣＰＵ判別信号Ｃの信号レベル「０」が、切替回路５７及びゲート回路５８に与えられた場合である。演算処理装置４０Ｂの出力データは、データ下位ビットとしてデータ分割部５３から与えられているので、ＣＰＵ判別信号Ｃの信号レベル「０」のとき、演算処理装置４０Ｂの出力データは、切替回路５７を介して、格納制御部５９に出力されることになる。一方、演算処理装置４０Ａの出力データは、データ分割部５３で上位ビットと下位ビットに分割されて、切替回路５７とゲート回路とを介して格納制御部５９に与えられる。このように、演算処理装置４０Ａ又は４０Ｂの出力データは、データの欠損を生じることなく格納制御部５９に与えられる。
【００５０】
＜２．６  格納制御部＞
格納制御部５９は、切替回路５７又はゲート回路５８から受け取ったアドレスを、論理演算して、主記憶装置７０Ａ又は７０Ｂのアドレスに変換する。
【００５１】
格納制御部５９は、主記憶装置７０Ａ及び７０Ｂを特定する主記憶判別信号Ｄを受け取ると、演算処理装置４０Ａのアドレスを、論理シフト演算の右シフトで「０ｘ１００００００〜０ｘＦＦＦＦＦＦＦ」から「０ｘ０８０００００〜０ｘ７ＦＦＦＦＦＦ」にする。
【００５２】
格納制御部５９は、主記憶装置７０Ａを特定する主記憶判別信号Ｄを受け取ると、当該アドレスは、アドレスビット「０ｘ０８０００００〜０ｘ０ＦＦＦＦＦＦ」であると判断して、切替アドレス設定ビットを、アドレスマスク「０００００」でＡＮＤ演算する。このようにすることで、格納制御部５９は、図４に示す表の第３行のアドレスビット「０ｘ０８０００００〜０ｘ０ＦＦＦＦＦＦ」を、列１５４に示す物理アドレス「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」にする。
【００５３】
また、格納制御部５９は、主記憶装置７０Ｂを特定する主記憶判別信号Ｄを受け取ると、当該アドレスは、アドレスビット「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」であると判断して、切替アドレス設定ビットを、アドレスマスク「０００００」でＡＮＤ演算する。このようにすることで、格納制御部５９は、図４に示す表の第４行のアドレスビット「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」を、列１５４に示す物理アドレス「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」にする。アドレス変換により、主記憶装置の記憶領域において未使用領域の生成が防がれるが、この点については、図５Ａ及び図５Ｂを用いて後述する。
【００５４】
主記憶装置７０Ａ及び７０Ｂを特定する主記憶判別信号Ｄを受け取る場合、格納制御部５９は、切替回路５７から受け取ったデータ上位ビット、及びゲート回路５８から受け取ったデータ下位ビットと、物理アドレスとを、主記憶装置７０Ａ及び７０Ｂに出力する。
【００５５】
主記憶装置７０Ａを特定する主記憶判別信号Ｄを受け取る場合、格納制御部５９は、切替回路５７から出力されたデータと、物理アドレスとを、主記憶装置７０Ａに出力する。
【００５６】
主記憶装置７０Ｂを特定する主記憶判別信号Ｄを受け取る場合、格納制御部５９は、切替回路５７から出力されたデータと、物理アドレスとを、主記憶装置７０Ｂに出力する。
【００５７】
図５Ａは、変換アドレスにより特定される主記憶装置の記憶領域の一例を説明する図である。図５Ａには、主記憶装置７０Ａ及び７０Ｂの記憶領域が示される。図５Ａにおいて、記憶領域２１０は、アドレス「０ｘ０８０００００〜０ｘ７ＦＦＦＦＦＦ」により特定される主記憶装置７０Ａ及び７０Ｂの記憶領域である。演算処理装置４０Ａの６４ビットの出力データは、上位３２ビットが、アドレス「０ｘ０８０００００〜０ｘ７ＦＦＦＦＦＦ」により特定される主記憶装置７０Ａに記憶され、下位３２ビットが同じアドレスにより特定される主記憶装置７０Ｂに記憶される。
【００５８】
記憶領域２２０は、アドレス「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」により特定される主記憶装置７０Ａ又は７０Ｂの記憶領域である。アドレスビット「０ｘ０８０００００〜０ｘ０ＦＦＦＦＦＦ」の演算処理装置４０Ｂの３２ビットの出力データは、「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」のアドレスで特定される主記憶装置７０Ａの記憶領域に格納される。また、アドレスビット「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」の演算処理装置４０Ｂの３２ビットの出力データは、同じアドレスで特定される主記憶装置７０Ａの記憶領域に格納される。
【００５９】
図５Ｂは、演算処理装置のアドレスにより特定される主記憶装置の記憶領域の一例を示す図である。図５Ｂには、主記憶装置７０Ａ及び７０Ｂの記憶領域が示される。主記憶装置７０Ａ又は７０Ｂの記憶領域は、図４のアドレスビットの列１５２に示すアドレスにより特定される。ハッチング部分である主記憶装置７０Ａのアドレス空間「０ｘ０８０００００〜０ｘ０ＦＦＦＦＦＦ」と、主記憶装置７０Ｂのアドレス空間「０ｘ０００００００〜０ｘ０７ＦＦＦＦＦ」の記憶領域は、未使用となる。
【００６０】
図５Ａに示すように、１ラインに３２ビット幅のデータを格納する３２ビットの主記憶装置は、未使用の記憶領域を生成することがない。さらに、３２ビットの主記憶装置を２つ用いることで、６４ビットのデータについても欠損無く格納することができる。
【００６１】
さらに、アドレス変換しないで、主記憶装置７０Ａ又は７０Ｂに格納した場合、主記憶装置７０Ａ又は７０Ｂに未使用領域が生じるが、図５Ａに示すように、アドレス変換により、主記憶装置に７０Ａ及び７０Ｂにおいて未使用の記憶領域の生成を防ぐことが出来る。
【符号の説明】
【００６２】
１０    情報処理装置
３３    通信部
３５    音声出力部
３７    画像表示部
３８    入力部
４０Ａ、４０Ｂ    演算処理装置
５０    入出力制御装置
５１    入出力部
５３    データ分割部
５４    アドレス判別部
５５    切替アドレスレジスタ
５６    アドレスマスクレジスタ
５７    切替回路
５８    ゲート回路
５９    格納制御部
７０Ａ、７０Ｂ    主記憶装置
１００    アドレス
１１０    切替アドレス設定ビット
１２０    アドレスビット
１３０    切替アドレス
１４０    マスクビット
２１０    記憶領域
２２０    記憶領域
【図１】
2012014397.tif 000003
【図２】
2012014397.tif 000004
【図３】
2012014397.tif 000005
【図４】
2012014397.tif 000006
【図５Ａ】
2012014397.tif 000007
【図５Ｂ】
2012014397.tif 000008