Fujitsu MAP3147 Computer Drive User Manual


 
1.3 Outline of Command Processing
C141-E167 1 - 13
(2) Basic disconnect processing procedure
Disconnect processing is executed basically by the following processing procedure.
1) If the IDD judges that it is possible for it to disconnect from the SCSI bus during execution of a
command, it sends a DISCONNECT message to the INIT and enters the BUS FREE phase. At
this time, if necessary, the IDD sends a message to activate a pointer in the INIT which precedes
sending of the DISCONNECT message. Furthermore, for details concerning pointers, refer to
the SCSI pointer description in “SCSI Physical Interface Specifications” and “Chapter 2 SCSI
Messages.”
2) After the IDD enters the BUS FREE phase, it is possible for the INIT to issue other commands.
Also, it is possible for an IDD which has performed disconnect processing to receive input/output
operation requests from each INIT (this is explained in the description of the command queuing
function in Section 1.4).
3) The IDD executes the command which performs disconnect processing internally.
4) After that, the IDD executes reconnection processing at the point, when it is necessary for
operation on the SCSI bus, to reconnect with the INIT (See item (6) concerning reconnection
processing).
(3) Disconnect processing procedure after COMMAND phase execution
If commands are queued (see Section 1.4), disconnect processing is performed immediately after the
COMMAND phase execution is completed. In this case, the IDD switches from the COMMAND phase to
the MESSAGE IN phase and sends the DISCONNECT message to the INIT.
(4) Disconnect processing procedure after data transfer execution
For commands which accompany a data transfer, disconnect processing may be performed during
DATA IN or DATA OUT phase execution or after transfer of the last data is completed. In this case,
caution is necessary when executing the following types of pointer controls.
a. If disconnecting during a data transfer
In cases where data transfer has begun (in DATA IN or DATA OUT phase) and it will take time
until transfer of subsequent data can be transferred (example: When the data buffer has been
emptied by a READ command, or the data buffer has ceased to be empty due to a WRITE
command), disconnect processing is performed during data transfer. In this case, the IDD sends the
SAVE DATA POINTER message before sending the DISCONNECT message. When the INIT
receives the SAVE DATA POINTER message, it must save the current value of the current data
pointer and make it possible to transfer data from the subsequent data at reconnection time.
b. If disconnecting after the final data transfer is completed
In the case of a disconnect after transfer of all the data necessary for execution of a command has
been completed normally, (example: a WRITE command), the IDD sends a DISCONNECT
message after sending the SAVE DATA POINTER message.
After that, the IDD executes reconnection processing and enters the STATUS phase immediately
and reports the status byte without requesting a data transfer.