本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX フローティング・ポイント ガイド: HP 9000 コンピュータ > 第7章 パフォーマンス・チューニング

データの割り付け境界

≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 用語集

 ≫ 索引

データの割り付け境界とは、メモリ中のデータ・オブジェクトのアドレスの種類を意味します。データ・オブジェクトには、1 バイト、2 バイト、4 バイト、8 バイトの各割り付け境界があり、つまり、オブジェクトを格納した場所のアドレスは、1, 2, 4, 8 で割り切ることができます。一般に、最高のパフォーマンスは自然なデータの割り付け境界で発揮され、それはオブジェクトの長さに対応する割り付け境界です。例えば、HP C のint の自然なデータの割り付け境界は、4 バイト・データの割り付け境界です。

単純な静的変数に対して、コンパイラは常にデータを自然な境界に割り付けます。割り付け境界の問題は、C の構造体、Pascal のレコード、Fortran の共通ブロックで発生します。デフォルトで、HP-UX コンパイラはこのようなデータを自然な境界に割り付けます。ただし、プログラムやコマンド行上で、他の HP システム上でのデータの割り付け境界と互換性を持つようにデータを割り付けさせる指令を指定することができます。また、デフォルト以外のデータの割り付け境界を実現するために、Fortran のEQUIVALENCE 文やそれ以外のプログラミング方法を使用することもできます。デフォルト以外のデータの割り付け境界を指定すると、コンパイラは余分な命令を生成するようになります。この余分な命令により、コード・サイズは実質的に増大し、パフォーマンスも実質的に低下します。そのうえ、自然な割り付け境界を下回る境界でデータを整列させると (例えば、2 バイト境界上でdouble 型を割り付ける場合)、バス・エラーや別種の実行時エラーを発生させることもあります。

ある状況では、自然なアドレスを上回るアドレスでデータを割り付けさせることによりパフォーマンスを向上させることができます。このパフォーマンスの向上は、次の 2 つの要因があり、その両方とも+Ovectorize オプションによって使用可能となるベクトル・ルーチンに関係があります。

  • 8 バイトの割り付け境界の場合に、単精度配列のパフォーマンスが向上することがあります。ベクトル・ルーチンが 2 つのオペランドを同時に移動させる倍精度のロード/ストアを使用できるからです。

  • 32 バイトまたはキャッシュラインの割り付け境界の場合に、倍精度配列のパフォーマンスが向上することがあります。ベクトル・ルーチンが HP 9000 システムのデータ・キャッシュとやりとりする方法のためです。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© Hewlett-Packard Development Company, L.P.