Figure10.5 multithreaded scripts example step 3, Figure10.6 multithreaded scripts example step 6, Multithreaded scripts example step 3 – Avago Technologies LSI53C1010 User Manual
Page 243: Multithreaded scripts example step 6
Multithreaded SCRIPTS Example
10-7
Figure 10.5 Multithreaded SCRIPTS Example Step 3
4.
The scheduler jumps to the multithread SCRIPTS subroutine with:
io_request0:
JUMP rel (multi_thread)
5.
The main SCRIPTS routine executes a Select With Attention
instruction to connect to the appropriate SCSI device:
;
Main SCRIPT code
multi_thread:
SELECT ATN FROM SCSI_id, REL (wait_for_reselect)
6.
After the two devices are connected, the SCRIPTS instruction writes
the NOP into the scheduler routine to avoid trying to start the I/O
again.
This is accomplished by using a Memory-to-Memory Move
command. The source address is the address of a NOP SCRIPTS
instruction. The destination address is the io_requestX location that
was patched into place_hold_addr in the scheduler, as shown in
Figure 10.6 Multithreaded SCRIPTS Example Step 6
Before:
After:
MOVE
MEM
4
nop_physaddr
place_hold_addr
(Source Address)
(Source Address)
(Destination Address)
(Destination Address)
4
nop_physaddr
io_request0
schedule_nop:
schedule_nop:
MOVE
MEM
MOVE MEMORY 4, PATCH_SCRIPTphysaddr+io_request0,
PATCH_SCRIPTphysaddr+schedule_NOP+8
NOP
JUMP
nop_physaddr:
io_request0:
NOP
rel (multi_thread)