Figure10.3 multithreaded scripts example step 1, Multithreaded scripts example step 1 – Avago Technologies LSI53C1010 User Manual
Page 241
Multithreaded SCRIPTS Example
10-5
queue tag messages. There must also be a DSA table entry for each
possible outstanding tagged command per target ID instead of just one
per target ID as in this example. This program appears in
“Multithreaded SCRIPTS Example.”
Any item in the code examples that is preceded by “PATCH_” must be
patched by the driver. Patching only occurs when the driver is initially
loaded. After initialization, all required addresses are in the SCRIPTS
array. For more information on instruction patching, refer to
“Integrating SCRIPTS Programs into “C” Language Drivers.”
Note:
Both dashed and solid lines are used in some of the
program illustrations. The dashed lines indicate pointers
and the solid lines indicate data movement in the direction
indicated by the arrows.
1.
The CPU writes a JUMP into the io_requestX scheduler slot as
shown in
.
Figure 10.3 Multithreaded SCRIPTS Example Step 1
2.
The CPU may need to set the SIGP bit to indicate that an I/O needs
to be processed.
If this happens the SCRIPTS processor JUMPs to the scheduler. The
first instruction in the scheduler sets up the DSA to point to the
correct table in the
example.
JUMP
CPU
JUMP
io_request0:
rel (multi_thread)