データの位置合わせ

コンピューターは情報を 8 ビットの倍数で保持します。 この 8 ビット単位の情報はバイト と呼ばれます。 コンピューターによるアクセスは、1 バイト、ハーフワード、ワード、またはダブルワードを単位として行われます。 ストレージのバイト位置は 0 から開始される連続した番号が付けられます。各番号は対応するバイトのアドレスです。

ハーフワード は連続している 2 バイト、フルワード は連続している 4 バイト、 ダブルワード は連続している 8 バイトをそれぞれ指します。ハーフワード、ワード、およびダブルワードは、それぞれの一番左のアドレスでアドレス指定されます。

ハーフワード、ワード、およびダブルワードが、主記憶域でそれぞれの 情報単位の規定境界に置かれていると、プログラムの実行が高速になります。つまり、表 1 に示すように、情報単位のアドレスがその情報のバイト数の倍数となる場合、プログラムの実行が高速になります。

表 1. ハーフワード、ワード、およびダブルワードの規定境界の位置合わせ
ストレージ・セクションのアドレス
5000 5001 5002 5003 5004 5005 5006 5007
バイト バイト バイト バイト バイト バイト バイト バイト
ハーフワード ハーフワード ハーフワード ハーフワード
フルワード フルワード
ダブルワード

PL/I は規定境界でのデータ位置合わせが可能です。 ただし、連続するデータ・エレメント間の未使用バイトがあると、 ストレージの使用が増加します。 例えば、データ項目がデータ・セットを作成するために 使用される集合のメンバーである場合、 未使用バイトによって補助記憶域の必要量が増えることになります。 ALIGNED 属性と UNALIGNED 属性を使用すれば、適切な規定境界にデータを位置合わせ するかどうかを選択できます。