図面 (/)

この項目の情報は公開日時点(1994年5月13日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (17)

構成

計算機システムは、プロセッサ101、メモリ102、命令選択部103、ハード構成情報部104、I/O105から構成される。プロセッサ101は、メモリ102内のデータと命令列を参照して動作する。プロセッサ101が動作するために参照する命令列は、命令列選択部103により、メモリ102に保持されている命令列のなかで、プロセッサ101にもっとも適している命令列が選択される。ハード構成情報部104は、I/O105から入力されたハード構成の情報をプロセッサ101で受け取り、その情報を設定する。

効果

ハードウエア構成適応した効率の良いプログラムの作成、複数のハード構成に適応できるプログラムの作成、複数のハードウエア構成で効率の良いプログラムの実行可能な計算機システム、および計算機ネットワークシステムを実現することができる。

概要

背景

従来、計算機システムにおいて、ハードウエア構成適応したプログラムを実行させるための手法として以下の4つの方法が行われている。

(1)ハードウエア構成に対応したコンパイラを作成する。

(2)ハードウエア構成に対応したライブラリを作成してリンクする。

(3)ハードウエア構成を意識したプログラムのコーディングを行う。

(4)プログラムで必要とした資源使用不可能な場合にハードウエアサポート割り込みにより処理の切り換えを行う。

以下、各々について説明する。(1)は、コンパイラのコード生成部分をハード構成対応に作成することである。したがって、最適なコードを選出することが可能となる。この場合、ハードウエア構成ごとに別のコンパイラを作成するか、コンパイラ起動時の起動時のオプションフラグなどにより、コプロセッサの有無などのハード構成情報を引き渡すものである。(1)に関するものとして、特開平3−94330号公報が挙げられる。

(2)は、ハード構成に直接対応するプログラムをアセンブラなどにより作成して、ライブラリを作成する。このように作成したハード構成に直接対応しているライブラリを直接指定してリンクすることにより、ハードウエア構成に適応した命令列が生成できる。

(3)は、コンパイラのコード中で意識的に、特定のハード構成に対応した命令列を生成する処理であり、レジスタ変数サブルーチンコールなどにより、必要なハード構成をプログラムの内部で認識して、条件分岐などを行うことでハード構成に適応した命令列を実行することができる。また、ループベクトルプロセッサ用のコードに展開するための手法として、コメント内にコンパイラ・ディレクティブと呼ばれるフラグを設けて、コンパイラに情報渡す方式がある。具体的には、コンパイラディレクティブは、ベクトルプロセッサ・サポート用のコンパイラと、一般のコンパイラで同一のソースプログラムを使用できるように考えられた手法である。ベクトルプロセッサ・サポート用のコンパイラが、一般のコンパイラでは単なるコメントとなる部分から情報を受け取りその情報を使用して、ハード適応のコードを生成するものである。

(4)は、一般にエラートラップとして、実現されている手法である。具体的には、浮動小数点演算用のプロセッサが接続されていない場合に、障害対策として割り込みを発生させるものである。この割り込みの発生に対して、浮動小数点演算用のプロセッサの処理を代行することにより、ハード構成に対応した処理を実行するものである。

従来、計算機ネットワークシステムでは、ファイルは、その属性によりアクセスの制限が発生する場合があるが、実行プログラムとデータのアクセスは、同一のプロトコルによっておこなわれる。

概要

計算機システムは、プロセッサ101、メモリ102、命令選択部103、ハード構成情報部104、I/O105から構成される。プロセッサ101は、メモリ102内のデータと命令列を参照して動作する。プロセッサ101が動作するために参照する命令列は、命令列選択部103により、メモリ102に保持されている命令列のなかで、プロセッサ101にもっとも適している命令列が選択される。ハード構成情報部104は、I/O105から入力されたハード構成の情報をプロセッサ101で受け取り、その情報を設定する。

ハードウエア構成に適応した効率の良いプログラムの作成、複数のハード構成に適応できるプログラムの作成、複数のハードウエア構成で効率の良いプログラムの実行可能な計算機システム、および計算機ネットワークシステムを実現することができる。

目的

本発明の目的は、複数のハードウエア構成に適応して高性能を引き出せるプログラムをもつ計算機システムを提供することである。

本発明の別の目的は、複数の計算機システムによって構成される計算機ネットワークにおいて、どの計算機システム上でも高性能を引き出しうるプログラムを持つ計算機ネットワークを提供することである。

本発明の別の目的は、プログラムのソースコードから実行する計算機システムのハード構成に適応した命令系列を生成することである。

本発明の別の目的は、複数のハードウエア構成に適応して高性能を引き出せるプログラムの開発を可能にすることである。

効果

実績

技術文献被引用数
0件
牽制数
4件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プロセッサメモリ入出力装置を備えた計算機システムであって、上記計算機システムのハードウエア構成情報を保持するためのハード構成情報保持手段と、予め作成された同一の処理を行なうための複数通り命令列から構成される命令列群と、上記ハードウエア構成情報保持手段に保持されたハードウエア構成情報を使用して、上記命令列群から、上記プロセッサが実行する命令列を選択する命令列選択手段を備えたことを特徴とする計算機システム。

請求項2

請求項1記載において、上記命令列選択手段は、上記プロセッサが実行する命令列を選択するためのハードウエア構成情報を、上記ハードウエア構成情報保持手段の内容を参照して設定するための選択情報設定手段を備えたことを特徴とする計算機システム。

請求項3

請求項1記載において、上記ハードウエア構成情報として、仮想メモリアドレス物理メモリアドレスに変換するための変換対のコピーを保持する高速バッファメモリの情報を使用することを特徴とする計算機システム。

請求項4

請求項1記載において、上記ハードウエア構成情報として、上記プロセッサの演算器数の情報を使用することを特徴とする計算機システム。

請求項5

請求項1記載において、上記ハードウエア構成情報として、上記プロセッサの命令仕様の情報を使用することを特徴とする計算機システム。

請求項6

プロセッサとメモリと入出力装置と、上記メモリとは別に構成された二次記憶装置を備えた計算機システムであって、上記計算機システムのハードウエア構成情報を保持するためのハードウエア構成情報保持手段を備え、上記二次記憶装置には、予め作成された同一の処理を行なうための複数通りの命令列から構成される命令列群と、上記ハードウエア構成情報保持手段に保持されたハードウエア構成情報を使用して、上記命令列群から、上記プロセッサが実行する命令列を選択するための情報を保持するように構成し、起動時に選択された上記命令列を上記メモリ上にロードして実行することを特徴とする計算機システム。

請求項7

請求項6記載において、上記二次記憶装置を不揮発性メモリにて構成することを特徴とする計算機システム。

請求項8

請求項6記載において、上記ハードウエア構成情報として、仮想メモリアドレスを物理メモリアドレスに変換するための変換対のコピーを保持する高速なバッファメモリの情報を使用することを特徴とする計算機システム。

請求項9

請求項6記載において、上記ハードウエア構成情報として、上記プロセッサの演算器数の情報を使用することを特徴とする計算機システム。

請求項10

請求項6記載において、上記ハードウエア構成情報として、上記プロセッサの命令仕様の情報を使用することを特徴とする計算機システム。

請求項11

請求項6記載において、上記命令列群からの命令列の選択処理オペレーティングシステムが提供するライブラリルーチンを用いて実行し、プログラムに静的に取り込まれずにそのライブラリルーチンへのコールがあった時にオペレーティングシステムを介して実行されるライブラリルーチンのロードの際に選択処理を行うことを特徴とする計算機システム。

請求項12

請求項6記載において、上記命令列群からの命令列の選択処理を複数回に分割して計算機システムにロードするオペレーティングシステムの二回め以降のロードにおいて行うことを特徴とする計算機システム。

請求項13

プロセッサとメモリと入出力装置と、上記メモリとは別に構成された二次記憶装置を有し、ネットワークアダプタと、当該計算機システムのハードウエア構成情報を保持するためのローカルシステムハード構成情報保持手段及びネットワークで接続された他の計算機システムのハードウエア構成情報を保持するためのリモートシステムハード構成情報保持手段を備え、上記二次記憶装置には、予め作成された同一の処理を行なうための複数通りの命令列から構成される命令列群と、上記ローカルシステムハードウエア構成情報保持手段および上記リモートシステムハード構成情報保持手段に保持されたハードウエア構成情報を使用して、上記命令列群から、該当する計算機システムのプロセッサが実行する命令列を選択するための情報を保持するように構成された第1の計算機システムと、プロセッサとメモリと入出力装置を有し、ネットワークアダプタと、当該計算機システムのハードウエア構成情報を保持するためのハード構成情報保持手段を備え、上記第1の計算機システムから選択された命令列を上記メモリ上にロードして実行する第2の計算機システムと、を備えたことを特徴とする計算機ネットワークシステム

技術分野

0001

本発明は、計算機システムおよび計算機ネットワークシステム計算機システムに関する。

背景技術

0002

従来、計算機システムにおいて、ハードウエア構成適応したプログラムを実行させるための手法として以下の4つの方法が行われている。

0003

(1)ハードウエア構成に対応したコンパイラを作成する。

0004

(2)ハードウエア構成に対応したライブラリを作成してリンクする。

0005

(3)ハードウエア構成を意識したプログラムのコーディングを行う。

0006

(4)プログラムで必要とした資源使用不可能な場合にハードウエアサポート割り込みにより処理の切り換えを行う。

0007

以下、各々について説明する。(1)は、コンパイラのコード生成部分をハード構成対応に作成することである。したがって、最適なコードを選出することが可能となる。この場合、ハードウエア構成ごとに別のコンパイラを作成するか、コンパイラ起動時の起動時のオプションフラグなどにより、コプロセッサの有無などのハード構成情報を引き渡すものである。(1)に関するものとして、特開平3−94330号公報が挙げられる。

0008

(2)は、ハード構成に直接対応するプログラムをアセンブラなどにより作成して、ライブラリを作成する。このように作成したハード構成に直接対応しているライブラリを直接指定してリンクすることにより、ハードウエア構成に適応した命令列が生成できる。

0009

(3)は、コンパイラのコード中で意識的に、特定のハード構成に対応した命令列を生成する処理であり、レジスタ変数サブルーチンコールなどにより、必要なハード構成をプログラムの内部で認識して、条件分岐などを行うことでハード構成に適応した命令列を実行することができる。また、ループベクトルプロセッサ用のコードに展開するための手法として、コメント内にコンパイラ・ディレクティブと呼ばれるフラグを設けて、コンパイラに情報渡す方式がある。具体的には、コンパイラディレクティブは、ベクトルプロセッサ・サポート用のコンパイラと、一般のコンパイラで同一のソースプログラムを使用できるように考えられた手法である。ベクトルプロセッサ・サポート用のコンパイラが、一般のコンパイラでは単なるコメントとなる部分から情報を受け取りその情報を使用して、ハード適応のコードを生成するものである。

0010

(4)は、一般にエラートラップとして、実現されている手法である。具体的には、浮動小数点演算用のプロセッサが接続されていない場合に、障害対策として割り込みを発生させるものである。この割り込みの発生に対して、浮動小数点演算用のプロセッサの処理を代行することにより、ハード構成に対応した処理を実行するものである。

0011

従来、計算機ネットワークシステムでは、ファイルは、その属性によりアクセスの制限が発生する場合があるが、実行プログラムとデータのアクセスは、同一のプロトコルによっておこなわれる。

発明が解決しようとする課題

0012

従来例で示した、ハードウエア構成に適応した命令列を実行する方式では、以下に示すような課題がある。

0013

(1)で示した、ハードウエア構成に対応したコンパイラの作成によりハードウエア構成に適応させる場合には、実行プログラムは、ある特定のハードウエア構成で動作するように作成される。

0014

したがって、様々なハード構成ごとにプログラムを別途供給することとなり、ユーザの誤入手などによる管理工数の増大などの問題がある。

0015

(2)で示した方式の場合も、ある特定のハードウエア構成で動作するようにプログラムが生成されるので、(1)と同じ問題が生ずる。また、ライブラリの各々をハンドチューニングすることになるので、ハードの最高性能を引き出しうる代わりにライブラリの構築にかかる工数が増大する。また、この方式によって作成したプログラムも、(1)と同様に様々なハード構成ごとにプログラムを別途供給することとなり、ユーザの誤入手などによる管理工数の増大などの問題がある。(1)、(2)の特定のハード構成に対応するプログラムしか作成できない問題に対処するために、ソースプログラムによって供給することを考えることができるが、ユーザ側でプログラムをコンパイル・リンクする際に、ハード構成情報などの情報、ライブラリの指定のための情報を増加させ、ユーザインタフェースとして非常に複雑な処理を要求するという問題がある。さらに、現在のコンパイラへのフラグ渡しでは、あまり複雑なハードウエア構成情報を引き渡すことは困難である。

0016

また、ソースコードの直接配布自体にも、商用のアプリケーションプログラムでは、プログラムのノウハウなどを公開することになるので避けたい場合が多い。

0017

(3)で示した方式では、動作するプログラムのコードに複数のハード構成の情報にしたがって処理を切り換える処理をおこなわなければならないので、プログラムの本質的なアルゴリズム以外の部分に対して考慮してコーディングをする必要があるので、プログラムの設計工数の増大という問題がある。

0018

(4)で示した方式は、本来異常処理としての割り込み処理によって処理を行うためにプログラムの処理に対するオーバヘッドの増大、および、割り込み処理ルーチンの複雑化、および割り込み処理のルーチンの工数の増大などの問題がある。計算機ネットワークシステムにおいて、実行プログラムを保持する計算機システムから実行する計算機システムへのプログラムのロードは、ネットワークにプロトコルにしたがってロードするものであるが、このプログラムが実行側の計算機システムで動作可能か否かのチェックおよび、最適な命令の実行を行うコードをロードすることができないという問題がある。

0019

本発明の目的は、複数のハードウエア構成に適応して高性能を引き出せるプログラムをもつ計算機システムを提供することである。

0020

本発明の別の目的は、複数の計算機システムによって構成される計算機ネットワークにおいて、どの計算機システム上でも高性能を引き出しうるプログラムを持つ計算機ネットワークを提供することである。

0021

本発明の別の目的は、プログラムのソースコードから実行する計算機システムのハード構成に適応した命令系列を生成することである。

0022

本発明の別の目的は、複数のハードウエア構成に適応して高性能を引き出せるプログラムの開発を可能にすることである。

課題を解決するための手段

0023

本発明では、複数のハードウエア構成に適応して高性能を引き出せるプログラムをもつ計算機システムを提供するために計算機システムのハードウエア構成情報を保持するための手段と、ハードウエア構成情報を保持する手段によって示されるハードウエア構成情報を使用して、予め作成された複数の命令列群から、実行する命令列を選択し、その命令を実行する計算機システムを構成する。

0024

本発明では、複数の計算機システムによって構成される計算機ネットワークシステムにおいて、どの計算機システム上でも高性能を引き出しうるプログラムを持つ計算機ネットワークを提供するために命令列群を保持する計算機システムが、命令列を実行する計算機システムのハードウエア構成情報を参照する手段をもち、参照したハードウエア構成情報によって、予め作成された命令列群から命令列を選択して、命令列を実行する計算機システムにロードするような計算機ネットワークシステムを構成する。

0025

本発明では、ハードウエア構成構成に適応して高性能を引き出せるプログラムの開発を可能にするために、ハードウエア構成情報を保持するための手段に保持されたハードウエア情報を参照し、そのハードウエア情報を使用して命令列を生成する。

0026

本発明では、複数のハードウエア構成に適応して高性能を引き出せるプログラムの開発を可能にするために、実行される複数のハードウエアの構成に対して、効率を引き出すような別々の命令列を作成する。

0027

本発明では、複数のハードウエア構成に適応して高性能を引き出せるプログラムの開発を可能にするために、実行されるハードウエアの構成に対して、効率を引き出すような命令列を作成し、複数の前記命令列を合わせて一つのプログラムとして作成する。

0028

本発明によれば、ハードウエア構成に適応した効率の良いプログラムの作成、複数のハード構成に適応できるプログラムをの作成、複数のハードウエア構成で効率の良いプログラムの実行可能な計算機システム、および計算機ネットワークシステムを実現することができる。

0029

下図を用いて本発明の実施例を説明する。図1に計算機システムの構成の実施例の一つを示す。

0030

本実施例の計算機システムでは、最適命令列は、その計算機システムがサポートしているVLIW命令のレベルによって決定する。VLIW命令のレベルは、完全に上位互換を保つものし、VLIW命令のレベルが高いものほど、動作を高速に行うことが可能であるとする。すなわち、VLIW命令レベルが2のプロセッサは、VLIW命令非使用コード、VLIWレベル0命令使用コード、VLIWレベル1命令使用コード、VLIWレベル2命令使用コードのすべてが実行でき、VLIWレベル2命令使用コードを使ったときに最も高速になる(最適となる)ことが保証されている。つまり、ハード構成に示されるVLIW命令のレベルと実行する命令列のレベルを合わせることにより、最適命令列を実行できる。

0031

図2から図6を用いて例を説明する。ここでは、汎用レジスタG0からG23までの計24本のレジスタの内容の和を汎用レジスタG0に保存する処理を使用する。ここで、各命令は命令フェッチと同一サイクルで処理が可能なものとする。VLIW命令がない場合には、レジスタ間での和の計算を図2に示すように、(12+6+3+2)回の計23回の命令を使用するので命令サイクルが23サイクルとなる。VLIW命令レベル0では、図3に示すように3回の命令フェッチを行ない、レジスタ8本分のデータの和をレジスタ1本に保存するVLIW命令を持つ。したがって上述の処理を行なうためには、そのVLIW命令が3回と非VLIW命令が2回となるので総命令サイクルは、計11命令サイクルとなる。VLIW命令レベル1では、図4に示すように4回の命令フェッチを行ない、レジスタ12本分のデータの和をレジスタ1本に保存するVLIW命令を持つ。したがって上述の処理を行なうためには、そのVLIW命令が2回と非VLIW命令が1回なので命令サイクルは計9サイクルとなる。VLIW命令レベル2では、図5に示すように7回の命令フェッチを行ない、レジスタ12本分のデータの和をレジスタ1本に保存するVLIW命令を持つ。したがって上述の処理を行なうためには、そのVLIW命令が1回なので計7サイクルとなる。したがって、各命令列群に対する処理のサイクル数図6に示すようになる。

0032

本実施例の計算機システムは、動作時にこのVLIW命令の選択を自動的に行なうものである。従来の計算機システムでは、互換性重視するために全ての計算機システムで動作する命令列を生成する(VLIWサポートなし)か、VLIW命令レベル別の専用のコンパイラによってこのような命令列を生成し、動作環境を制限するような運用をしていた。

0033

計算機システムは、図1に示すように、プロセッサ101a、メモリ102a、命令選択部103a、ハード構成情報部104a、I/O105aから構成される。

0034

プロセッサ101aは、メモリ102a内のデータと命令列を参照して動作する。プロセッサ101aが動作するために参照する命令列は、命令列選択部103aにより、メモリ102aに保持されている命令列のなかで、プロセッサ101aにもっとも適している命令列が選択される。ハード構成情報部104aは、I/O105aから入力されたハード構成の情報(例えば、VLIW命令のレベル等)をプロセッサ101aで受け取り、その情報を設定する。尚、ハード構成情報部104aは、EPROMやE2PROM等の素子で構成してもよいし、プロセッサ101a内のレジスタに保持しても構わない。

0035

図7に、命令列選択部103aの実施例の一つを示す。命令列選択部201は、ハード構成情報部104aにハード構成情報を設定するための選択情報設定レジスタ202をもち、命令要求をメモリに対して発行する際に、選択情報を付加するものである。以下、命令列選択部201の動作を示す。命令列選択部の201の選択情報設定レジスタ202は、あらかじめプロセッサ101aにより、ハード構成情報部104aの内容を参照して設定される。

0036

その後、プロセッサからの命令列要求(32ビット分のアドレス)を受け取ると命令列選択部201では、選択情報設定レジスタ202の内容とプロセッサからの命令列要求が(32ビット分)のアドレスとをまとめて、メモリ102aに対して出力する。メモリ102aは、選択情報によって、プロセッサに最適なVLIW命令列を最適命令列として、命令列選択部201に返す。命令列選択部では、最適命令列をシステムバスを通じてプロセッサ101aに返す。

0037

図8にメモリの構成例を示す。メモリ301は、データ303と命令列を格納する部分であるハード適応命令コード群302から構成され、ハード適応命令コード群302は、VLIW(Very LongInstruction Word)命令非使用コード304、VLIWレベル0命令使用コード305、VLIWレベル1命令使用コード306、VLIWレベル2命令使用コード307から構成される。

0038

メモリ301は命令列選択部103から出力された選択情報と、命令要求を受け付ける。選択情報は、デコーダ308によってデコードされて、VLIW命令のレベルに切り分けられ、正しいVLIW命令レベルのものだけから命令が返されることとなる。命令要求のアドレスは、各命令列のアドレスとしてハード適応命令コード群の全てに同一に渡される。以上の処理によってメモリ301は最適な命令列を命令列選択部103に返す。データの場合は、一般の場合と同様に、データ部303へのアドレスの出力に対してデータを返す処理となる。

0039

また、ハード構成情報としてキャッシュサイズ情報が与えられている場合には、メモリ301の内部にあるハード適応命令コード群307として、各キャッシュのサイズに対して最適化された命令列を入れることで実現できる。

0040

また、ハード構成情報として仮想メモリアドレス物理メモリアドレスに変換するための変換対のコピーを保持する高速なバッファメモリのサイズ情報が与えられている場合には、メモリ301の内部にあるハード適応命令コード群307として、バッファメモリを有効に使用するように最適化された命令列を入れることで実現できる。

0041

さらには、ハード構成情報としてプロセッサの演算器数の情報が与えられている場合には、メモリ301の内部にあるハード適応命令コード群307として、プロセッサ内部の演算器並列実行に関して最適化した命令列を入れることで実現できる。

0042

図9に計算機システムの構成の他の実施例の一つを示す。計算機システムは、プロセッサ401、メモリ402、二次記憶装置であるHDDサブシステム403、ハード構成情報部404、I/O405から構成される。プロセッサ401は、メモリ402内のデータと命令列を参照して動作する。HDDサブシステムの内部には、ハード構成と命令レベルを対応させるためのハード構成・命令レベル対応データ406と、VLIW(Very Long Instruction Word)命令非使用コード407、VLIWレベル0命令使用コード408、VLIWレベル1命令使用コード409、VLIWレベル2命令使用コード410が保持されている。(尚、ハード構成情報部104aは、EPROMやE2PROM等の素子で構成してもよいし、プロセッサ101a内のレジスタに保持しても構わない。)プロセッサ401が動作するために参照する命令列は、HDDサブシステム403内に保持されている。プログラムの起動を行う際に、プロセッサは、ハード構成情報部404と、HDDサブシステム403内のハード構成・命令レベル対応データ406の情報とから、ハード構成に最も適合した、VLIWレベルの命令コードを選択し、メモリ402にロードする。ハード構成・命令レベル対応データ406には、ハード構成とそのハード構成に適応する命令列のHDDサブシステム内の位置情報が含まれている。この処理によって、メモリ402には、ハード構成に適合した命令列のみが選択的にロードされることになる。この後、プロセッサ401は、メモリ402にロードされた命令列にしたがって動作することにより。ハード構成に最も適合した命令列を選択的に実行する計算機システムが構成できる。

0043

また、ハード構成情報としてキャッシュのサイズ情報が与えられている場合には、HDDサブシステムの中のVLIW命令レベル別コード407から410の代わりに、各キャッシュのサイズに対して最適化された命令列を入れることで実現できる。

0044

また、ハード構成情報として仮想メモリアドレスを物理メモリアドレスに変換するための変換対のコピーを保持する高速なバッファメモリのサイズ情報が与えられている場合には、HDDサブシステムの中のVLIW命令レベル別コード407から410の代わりに、バッファメモリを有効に使用するように最適化された命令列を入れることで実現できる。

0045

さらには、ハード構成情報としてプロセッサの演算器数の情報が与えられている場合には、HDDサブシステムの中のVLIW命令レベル別コード407から410の代わりに、プロセッサ内部の演算器の並列実行に関して最適化した命令列を入れることで実現できる。

0046

なお、図9で示した計算機システム上で動作するオペレーティングシステムで、上述の命令列群の選択をオペレーティングシステムが提供するライブラリルーチンのメモリへロードの際に行うものとして実施できる。

0047

もしくは、図9で示した計算機システム上の動作するオペレーティングシステムで、上述の命令列群の選択を複数回に分割されて計算機システムにロードされるオペレーティングシステムの二回め以降のロードにおいて行うことにより実施できる。

0048

図10に計算機システムネットワークの構成の実施例の一つを示す。本ネットワークシステムは、全計算機ステムのファイルを持つファイルサーバ(計算機システム1)501と、ディスクレスの計算機システム2(502)と計算機システム3(503)から構成されている。

0049

ファイルサーバ(計算機システム1)501の構成を図11に示す。ファイルサーバ501の計算機システムの基本構成は、図9に示した計算機システムであり、変更点ネットワークアダプタ606が追加され、ネットワーク制御処理のためにハード構成情報部が、ローカルシステムハード構成情報部604(図9におけるハード構成情報部)とリモートシステムハード構成情報部606の2つから構成されている部分である。すなわち、ファイルサーバ501は、プロセッサ601、メモリ602、HDDサブシステム603、ローカルシステムハード構成情報部604、I/O605、ネットワークアダプタ606、リモートシステムハード構成情報部607から構成されている。

0050

図12にディスクレスの計算機システムの構成例を示す。図12に示すディスクレスの計算機システムの基本構成は、図9に示した計算機システムであり、違いはHDDサブシステムがないことである。すなわちディスクレスの計算機システムは、プロセッサ701、メモリ702、ハード構成情報部703、I/O704、ネットワークアダプタ705から構成されている。

0051

ファイルサーバ501は、ネットワークアダプタを介してディスクレスの計算機システム2および3からのプログラム及びデータの要求に対して、HDDサブシステム603の内容を読み書きし、ディスクレスの計算機システムとデータのやり取りをする。データに関しては、通常の計算機システムネットワークと同様の処理を行う。

0052

プログラムに関するロード要求がファイルサーバ501からの場合は、ローカルなプロセッサであるプロセッサ601の情報は、ローカルシステムハード構成情報部604のハード情報にあるので、これに基づいて、図9で説明した処理を行う。ディスクレスの計算機システム502および503からの要求の場合には、あらかじめ設定されているリモートシステムハード構成情報部606を用いて、図9によって説明した手法を使用して、要求をしたディスクレスの計算機システムに最適な命令列をHDDサブシステム603の中から選択し、その命令列を、ネットワークアダプタ606を介して、要求元のディスクレスの計算機システム502もしくは503に返す。リモートシステムハード構成情報部604は、計算機システムネットワークの構築時および変更時に、構成されたネットワークのプロトコルを使用して、ファイルサーバ501にネットワークを介して送られる。ファイルサーバ501では、ネットワークアダプタ606から、リモートシステムのハード構成情報を受け取り、リモートシステムハード構成情報部607に設定する。ローカルシステムハード構成情報部604は、I/O605から入力されたデータを受け付けて、プロセッサ601によって設定する。ディスクレスの場合のハード構成情報部703は、I/O704から入力されたハード構成の情報をプロセッサ701によって設定する。

0053

図13にコンパイラの実施例を示す。コンパイラと計算機システムの構成を以下に示す。コンパイラ801は、API互換アプリケーションのソースコード802を入力とし、計算機システム804のハードウエア構成情報811の情報をもちいて、コンパイラ命令生成用データ805内から命令列を選択し、最適なVLIWレベルの命令列を選出してハードウエア構成適応オブジェクト803を出力する。計算機システム804は、図1または、図9で示した計算機システムとして実現できる。

0054

図14に、コンパイラの処理フローを示す。以下、図14フローにしたがってコンパイラの処理を説明する。コンパイラは、起動時に自動的にハード構成情報を取り込み、それに続いて、ソースコードを読み取り中間コードに変換する。ソースコードから、中間コードまでの変換は、アディソンウェスレイパブリッシングカンパニーコンパイラーズ、プリンシプルテクニックアンドツールス(1986年)第83頁から第336頁(ADDISON-WESLEY PUBLISHING COMPANY,COMPILERSPrinciples, Techniques,and Tools,(1986),PP83-336)に記載のような公知の方法によって行うことができる。その後、中間コードから命令コードへの変換を行う。通常この変換は、アディソン ウェスレイ パブリッシング カンパニー、コンパイラーズ、プリンシプル、テクニック、アンド ツールス(1986年)第513頁から第580頁(ADDISON-WESLEY PUBLISHING COMPANY,COMPILERS Principles, Techniques,and Tools,(1986),PP513-580)に記載の公知の方法によって命令コードに変換される。ここで、命令コードに変換する際に、コンパイラ命令生成用データ805内のハード構成・命令レベル対応データ806をもちいて、ハードウエア構成情報に対応する命令コードをVLIW命令非使用コード807、VLIWレベル0命令使用コード808、VLIWレベル1命令使用コード809、VLIWレベル2命令使用コード810から選択して命令コードの生成を行う。その際に、使用したハード構成情報と命令オブジェクトの情報からプログラムを生成する。ハード構成情報から、図9で説明したハード情報・命令レベル対応データとなる。この出力命令列がハードウエア構成適応オブジェクトとなる。この命令列の例を図15に示す。

0055

ハード構成・命令レベル情報は、命令列を生成したときの計算機システムのハード構成の情報とハード構成適応命令列のファイル上での位置情報を保持している。ハード適応命令列は、そのハード構成に対応した命令列であり、データ領域は、内部に含むものとする。

0056

ハードウエア情報の異なる複数の計算機システムにおいて、先のコンパイラを動作させることによって生成された命令列をまとめて計算機システムにおいて実効される命令列群を生成する実施例を以下に示す。先の実施例のコンパイラによって生成された命令列は、図15に示したように生成した計算機のハード構成情報を保持している。まず、先の実施例のコンパイラによって生成されたハードウエア構成適応オブジェクトを複数作成する。この複数のハードウエア構成適応オブジェクトは、ハード構成とそのハード構成に対する命令列の対応関係を各々保持している。したがってハード構成情報と、ハード構成対応命令列の関係を保ったまま、ハード構成・命令レベル対応データおよび、ハード構成対応命令列を一つのファイルにすることができる。これを、図16に示す。

0057

計算機上で、計算機をエミュレートし、そこで、ハード構成情報を変化させて、上述のコンパイラを動作させる。この処理により、複数のハードウエア構成適応命令列が作成される。これを図15に対応するプログラムによりまとめることで、図16に対応するログラムを実現することができる。

0058

また、ハード構成情報としてキャッシュのサイズ情報が与えられている場合には、コンパイラ命令生成用データ805の中のVLIW命令レベル別コード807から810の代わりに、各キャッシュのサイズに対して最適化された命令列を入れることで実現できる。

0059

また、ハード構成情報として仮想メモリアドレスを物理メモリアドレスに変換するための変換対のコピーを保持する高速なバッファメモリのサイズ情報が与えられている場合には、コンパイラ命令生成用データ805の中のVLIW命令レベル別コード807から810の代わりに、バッファメモリを有効に使用するように最適化された命令列を入れることで実現できる。

0060

さらに、ハード構成情報としてプロセッサの演算器数の情報が与えられている場合には、コンパイラ命令生成用データ805の中のVLIW命令レベル別コード807から810の代わりに、プロセッサ内部の演算器の並列実行に関して最適化した命令列を入れることで実現できる。

発明の効果

0061

以上本発明によれば、ハードウエア構成に適応した効率の良いプログラムの作成、複数のハード構成に適応できるプログラムの作成、複数のハードウエア構成で効率の良いプログラムの実行可能な計算機システム、および計算機ネットワークシステムを実現することができる。

図面の簡単な説明

0062

図1計算機システム構成の一実施例を示す図である。
図2VLIW命令非使用命列令を示す図である。
図3VLIW命令非使用命令列を示す図である。
図4VLIW命令非使用命令列を示す図である。
図5VLIW命令非使用命令列を示す図である。
図6VLIW命令レベル別実行時間を示す図である。
図7命令列選択部の実施例を示す図である。
図8メモリ構成の実施例を示す図である。
図9計算機システム構成の他の実施例を示す図である。
図10計算機ネットワークシステム構成の一実施例を示す図である。
図11計算機ネットワークシステムのファイルサーバ構成の実施例を示す図である。
図12計算機ネットワークシステムのディスクレス構成の実施例を示す図である。
図13コンパイラの実施例を示す図である。
図14コンパイラ処理フローの実施例を示す図である。
図15ハードウエア構成の適応オブジェクト構成を示す図である。
図16ハードウエア構成の適応オブジェクトと複数ハードウエア構成の適応オブジェクトの対応を示す図である。

--

0063

101:プロセッサ、102:メモリ、103:命令選択部、104:ハード構成情報、105:I/O、201:命令選択部、202:選択情報設定レジスタ、301:メモリ、302:ハード適応命令コード群、303:データ、304:VLIW命令非使用コード、305:VLIW命令レベル0命令使用コード、306:VLIW命令レベル1命令使用コード、307:VLIW命令レベル2命令使用コード、308:デコーダ、401:プロセッサ、402:メモリ、403:HDDサブシステム、404:ハード構成情報、405:I/O、406:ハード構成・命令レベル対応データ、407:VLIW命令非使用コード、408:VLIW命令レベル0命令使用コード、409:VLIW命令レベル1命令使用コード、410:VLIW命令レベル2命令使用コード、501:ファイルサーバ(計算機システム1)、502:ディスクレス(計算機システム2)
503:ディスクレス(計算機システム3)、601:プロセッサ、602:メモリ、603:HDDサブシステム、604:ローカルシステムハード構成情報、605:I/O、606:ネットワークアダプタ、607:リモートシステムハード構成情報、701:プロセッサ、702:メモリ、703:ハード構成情報、704:I/O、705:ネットワークアダプタ、801:コンパイラ、802:API互換アプリケーション(ソースコード)、803:ハードウエア構成適応オブジェクト、804:計算機システム、805:コンパイラ命令生成用データ、806:ハード構成・命令レベル対応データ、807:VLIW命令非使用コード、808:VLIW命令レベル0命令使用コード、809:VLIW命令レベル1命令使用コード、810:VLIW命令レベル2命令使用コード、811:ハードウエア構成情報。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ