BYTE-ORIENTED-OPERAND FACILITY
The byte-oriented-operand facility is
standard onSystem/370. This facility
permits storage operands of most unpriv
ileged instructions to appear on any
byte boundary.
The facility does not pertain to
instruction addresses or to the operands
forCOMPARE AND SWAP and COMPARE DOUBLE AND SWAP. Instructions must appear on
two-byte integral boundaries. The
rightmost bit of a branch address must
be zero, and the instructionEXECUTE must designate the target instruction at
an even byte address.COMPARE AND SWAP
must designate a four-byte integral
boundary, andCOMPARE DOUBLE AND SWAP
must designate an eight-byte integral
boundary.
Programming Note
For fixed-field-Iength operations with
field lengths that are a power of 2,
significant performance degradation is
possible when storage operands are not
positioned at addresses that are inte
gral multiples of the operand length.
To improve performance, frequently used
storage operands should be aligned on
integralboundaries. ADDRESS TYPES For purposes of addressing main storage,
three basic types of addresses are
recognized: absolute, real, and
virtual. The addresses are distin
guished on the basis of the transf
ormations that are applied to the
address duringa storage access.
Address translation converts virtual to
real, and prefixing converts real to
absolute. In addition to the three
basic address types, additional types
are defined which are treated as one or
another of the three basic types,
depending on the instruction and the
current mode.
Absolute Address
An absolute addressis the address
assigned to a main-storage location. An
absolute address is used for a storage
access without any transformations
performed on it.
All CPUs and channels in the configura\ tion refer to a shared main-storage
location by using the same absolute, address. Available main storage is
usually assigned contiguous absolute
addresses startingat 0, and the
addresses are always assigned in
complete 2K-byte blocks on integral
boundaries. When either TESTBLOCK or
the storage-key 4K-byte-block facility
is installed, storage is assigned in
complete 4K-byte blocks on integral
boundaries. An exception is recognized
when an attempt is made to use an abso
lute address in a block which has not
been assigned to physical locations.On some models, storage-reconfiguration
controls may be provided which permit
the operator to change the correspond
ence between absolute addresses and
physical locations. However, at anyone
time, a physical location is not associ
ated with more than one absolute
address.
Storage consisting of byte
sequenced according to their
addresses is referred to as
storage.
Real Address
locations
absolute
absolute
A real address identifies a location in
real storage. When a real address is
used for an access to main storage, it
is converted, by means of prefixing, to
an absolute address.
At any instant there is one real-address
to absolute-address mapping for eachCPU in the configuration. When a real
address is used bya CPU to access main
storage, it is converted to an absolute
address by prefixing. The particular
transformation is defined by the value
in the prefix register for theCPU. Storage consisting of byte locations
sequenced according to their real
addresses is referred to as real
storage.
Virtual Address
A virtual address identifies a location
in virtual storage. When a virtual
address is used for an access to main
storage, it is translated by means of
dynamic address translation to a real
address, which is then further converted
by prefixing to an absolute address.
Primary Virtual Address
A primary virtual address isa virtual
address which is to be translated by
means of the primary segment-table
designation. WhenDAS is not installed,
all logical addresses are treated as
Chapter 3.Storage 3-5
The byte-oriented-operand facility is
standard on
permits storage operands of most unpriv
ileged instructions to appear on any
byte boundary.
The facility does not pertain to
instruction addresses or to the operands
for
two-byte integral boundaries. The
rightmost bit of a branch address must
be zero, and the instruction
an even byte address.
must designate a four-byte integral
boundary, and
must designate an eight-byte integral
boundary.
Programming Note
For fixed-field-Iength operations with
field lengths that are a power of 2,
significant performance degradation is
possible when storage operands are not
positioned at addresses that are inte
gral multiples of the operand length.
To improve performance, frequently used
storage operands should be aligned on
integral
three basic types of addresses are
recognized: absolute, real, and
virtual. The addresses are distin
guished on the basis of the transf
ormations that are applied to the
address during
Address translation converts virtual to
real, and prefixing converts real to
absolute. In addition to the three
basic address types, additional types
are defined which are treated as one or
another of the three basic types,
depending on the instruction and the
current mode.
Absolute Address
An absolute address
assigned to a main-storage location. An
absolute address is used for a storage
access without any transformations
performed on it.
All CPUs and channels in the configura
location by using the same absolute
usually assigned contiguous absolute
addresses starting
addresses are always assigned in
complete 2K-byte blocks on integral
boundaries. When either TEST
the storage-key 4K-byte-block facility
is installed, storage is assigned in
complete 4K-byte blocks on integral
boundaries. An exception is recognized
when an attempt is made to use an abso
lute address in a block which has not
been assigned to physical locations.
controls may be provided which permit
the operator to change the correspond
ence between absolute addresses and
physical locations. However, at anyone
time, a physical location is not associ
ated with more than one absolute
address.
Storage consisting of byte
sequenced according to their
addresses is referred to as
storage.
Real Address
locations
absolute
absolute
A real address identifies a location in
real storage. When a real address is
used for an access to main storage, it
is converted, by means of prefixing, to
an absolute address.
At any instant there is one real-address
to absolute-address mapping for each
address is used by
storage, it is converted to an absolute
address by prefixing. The particular
transformation is defined by the value
in the prefix register for the
sequenced according to their real
addresses is referred to as real
storage.
Virtual Address
A virtual address identifies a location
in virtual storage. When a virtual
address is used for an access to main
storage, it is translated by means of
dynamic address translation to a real
address, which is then further converted
by prefixing to an absolute address.
Primary Virtual Address
A primary virtual address is
address which is to be translated by
means of the primary segment-table
designation. When
all logical addresses are treated as
Chapter 3.