The PROTECTED STREAM directives allow you to manage protected
streams. These streams are protected from being replaced by any hardware-detected
streams.
XL Fortran provides the following protected stream directives:
- The PROTECTED_UNLIMITED_STREAM_SET_GO_FORWARD directive establishes
an unlimited-length protected stream that begins with the cache line at the
specified prefetch variable and fetches from increasing memory addresses.
The PROTECTED_UNLIMITED_STREAM_SET_GO_BACKWARD directive fetches
from decreasing memory addresses.
- The PROTECTED_STREAM_SET_FORWARD directive establishes
a limited-length protected stream that begins with the cache line at the specified
prefetch variable and fetches from increasing memory addresses. The PROTECTED_STREAM_SET_BACKWARD directive fetches from decreasing memory
addresses.
- The PROTECTED_STREAM_COUNT directive sets the number of cache
lines for the specified limited-length stream.
- The PROTECTED_STREAM_GO directive starts to prefetch all limited-length
streams.
- The PROTECTED_STREAM_STOP directive stops prefetching the specified
protected stream.
- The PROTECTED_STREAM_STOP_ALL directive stops prefetching all
protected streams.
The PROTECTED directive can take the following forms:

>>-PROTECTED_UNLIMITED_STREAM_SET_GO_FORWARD--(--prefetch_variable--,--stream_ID--)-><
Note:
Valid for PowerPC(R) 970 and POWER5(TM).

>>-PROTECTED_UNLIMITED_STREAM_SET_GO_BACKWARD--(--prefetch_variable--,--stream_ID--)-><
Note:
Valid for PowerPC 970 and POWER5.

>>-PROTECTED_STREAM_SET_FORWARD--(--prefetch_variable--,--stream_ID--)-><
Note:
Valid for POWER5 only.

>>-PROTECTED_STREAM_SET_BACKWARD--(--prefetch_variable--,--stream_ID--)-><
Note:
Valid for POWER5 only.

>>-PROTECTED_STREAM_COUNT--(--unit_count--,--stream_ID--)------><
Note:
Valid for POWER5 only.

>>-PROTECTED_STREAM_GO-----------------------------------------><
Note:
Valid for POWER5 only.

>>-PROTECTED_STREAM_STOP--(--stream_ID--)----------------------><
Note:
Valid for POWER5 only.

>>-PROTECTED_STREAM_STOP_ALL-----------------------------------><
Note:
Valid for POWER5 only.
- prefetch_variable
- is a variable to be prefetched. The variable must be a data object with
a determinable storage address. The variable can be of any data type, including
intrinsic and derived data types. The variable cannot be a procedure name,
subroutine name, module name, function name, literal constant, label, zero-sized
string, zero-length array, or array with a vector subscript.
- stream_ID
- is the ID for the prefetched stream. It must be scalar and of type integer.
It can be any number from 0 to 7.
- unit_count
- is the number of cache lines for the limited-length protected stream.
It must be scalar and of type integer. It can be any number from 0 to 1023.
For a stream that is larger than 1024 cache lines, use the PROTECTED_UNLIMITED_STREAM directives instead of the PROTECTED_STREAM directives.