beautypg.com

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

background image

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

.

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)

This manual is related to the following products: