X3T9.2/88-064 REV 1 To: The SCSI Committee From: Jeff Stai, Western Digital Robert Snively, Adaptec Date: Oct 21, 1988 Subject: Processor Device Model Add the following text as section 11.1. 11.1 Processor Device Model The SCSI processor device is a target with the characteristics of a primary computing device, typically a personal computer, minicomputer, mainframe computer, or auxilary computing device or server. Such a primary computing device is often called a host. The processor device receives or provides packets of data as requested by the initiator. The contents and meaning of the data packets is not defined by this standard. A processor device may or may not have the capability of acting as an initiator. In the SCSI processor device, the target accepts and provides the data packets transferred according to the commands of the initiator. The initiator and the processor device are both assumed to know the rules by which information is exchanged between them, how the information is interpreted by the processor device, and when it is allowable to exchange the information. These rules are not specified by this standard. The initiator requests that the processor device accept a packet of data by transmitting a SEND command. The initiator requests that the processor device return a packet of data by transmitting a RECEIVE command. A COPY command can also be transmitted to the processor device to request that it serve as a copy manager. The actual data flow can be between the processor device and another SCSI device or can be between two SCSI devices under control of the processor device acting as a copy manager. If a processor device temporarily has no resource available to manage a data packet from the initiator, has no data packet to provide to the initiator, or has no resources assigned to perform the operation, the device may then choose one of the following responses: 1) Terminate the command with CHECK CONDITION status and the sense key set to Not Ready with the appropriate additional sense code for the condition. 2) Disconnect until the necessary resource or data packet becomes available, and then reconnect to the initiator and resume the operation. 3) Terminate the command with BUSY status. More than one Logical Unit can be implemented by a processor device. Logical Units can serve as additional paths to a single resource, and/or each logical unit can serve as a path to different resources within the device. A single logical unit may also serve as a path to multiple resources if the processor device can interpret information within the data packet and route the packet to the appropriate resource. If the logical unit addressed by the initiator does not have an available resource or data packet associated with it, the processor device may choose to treat the logical unit as an invalid logical unit (see section 6.5.3) or respond as described in the previous paragraph. If the processor device determines that an error or unusual condition has occurred while performing an operation specified by the contents of a data packet, the information describing the condition is normally returned as a part of a data packet. If the processor device determines that an error or unusual condition has occurred while executing the SCSI command from the initiator, the command is terminated with a CHECK CONDITION and the failures are identified through a REQUEST SENSE command. The SCSI processor device is distinguished from a SCSI communications device by the fact that the primary destination of the data packets is within the target device. A SCSI communications device, in contrast, passes the data on to an ultimate destination outside the target through a network. Many types of devices may find it convenient to function as processor devices if no other suitable SCSI device type exists and if the packet exchange protocol dictated by the processor device model meets their functional requirements. Devices requiring totally incompatible protocols and command sets should be examined carefully to be sure that the incompatibilities are based on functional requirements. If they are, they should be treated as vendor unique device types. Several examples of processor device implementations will be provided to clarify the range of utility of the SCSI processor device. Host to host communication, SEND only: A host system, (Host A), takes the initiator role and selects a processor device (Host B), transmitting a packet to Host B using the SEND command. The SEND command contains an operating system call that requests data from Host B's local storage devices. After performing the functions required by the data packet, Host B assumes the initiator mode and selects Host A as a processor device and uses a SEND command to transmit the requested data back to Host A. Host A thus acts as a primary computer and Host B as a specialized data server computer. Note that the SEND command is sufficient to perform a complete transaction if both Host A and Host B can assume the initiator mode. This provides the function of a Very Local Area Network (VLAN) for very high bandwidth intercommunication among nearby host processors. Host to host communication, SEND and RECEIVE: A host system, Host A, takes the initiator role and selects a processor device (Host B), transmitting a packet using the SEND command to Host B containing instructions about an operation to be performed. Host A again takes the initiator role and SEND's the data to be used by Host B in the operation. Host A then assumes that a result will be obtained consistent with rules understood by both devices. Host A generates a RECEIVE command to obtain the result from Host B. If the result is not yet ready, Host B may disconnect until the calculation is complete and the requested data packet can be returned to Host A. This method also provides the function of the VLAN between nearby hosts. Note that Host A need not support target mode and Host B need not support initiator mode to successfully complete an exchange between the two devices. Host to special output peripheral: A special co-processor device which can use the processor device command set is a high performance graphics display terminal. The initiator sends control and data packets to the display terminal that contain the image to be displayed. Only the SEND command would be required. A peripheral failure would be indicated through the normal CHECK CONDITION / REQUEST SENSE protocol. Host to special input peripheral: A second special co-processor device which can use the processor device command set is a data acquisition subsystem. Such subsystems may multiplex and compact streams of data from many sources. A host could control the data acquisition modes and the selection of data streams by transmitting control packets to the processor device using the SEND command. The host could then obtain the acquired data by executing a series of RECEIVE commands. The data acquisition device could also serve as an initiator, selecting peripheral storage devices and storing the compacted acquired data there for later access directly by the host or through Host to Host communication protocols. A peripheral failure would be indicated through the normal CHECK CONDITION / REQUEST SENSE protocol.