To: The SCSI Committee X3T9.2/88-064 Rev 0 From: Jeff Stai, Western Digital Corp. Subject: Processor Device Model Well, here goes... Add the following as section 11.1: 11.1. Processor Device Model The SCSI processor device is a simple target that is designed to receive and send data packets with SCSI initiators. The contents of these data packets are not defined by this standard. A processor device may also use the COPY command to move data between itself and another SCSI device, or it may move data between two other SCSI devices (this function is not unique to processor devices). A processor device typically is implemented for one or more of the purposes described below. 11.1.1. Host to Host Communication A "Host" is defined here as a "primary computing device", such as a personal computer or minicomputer. In this application of a processor device, two or more host systems use the SCSI bus to pass packets amongst themselves as in a Very Local Area Network (VLAN). The data packets will typically carry system requests, system status, and "user" data. As an example of system behavior, a host system (Host A) would take the initiator role, select another host (Host B) as a target, and issue a packet (via the SEND command) which contains an operating system call that requests data from Host B's local storage. Host B would process the request, and prepare a data packet with the requested data and also the completion status of the system call. Host B would then take the initiator role, select Host A as a target, and transfer the packet (again, via the SEND command) to Host A. If an error occurred for the operating system call sent by Host A, the error information would be reported via the completion status information in the data packet. In this model, the REQUEST SENSE command is used to report standardized conditions (such as NOT READY) and failures related to the SCSI protocol (such as path failures or ILLEGAL REQUEST). Note that in the above example, only the SEND command is used. This illustrates why the RECEIVE command is optional: the device with a packet to send takes the initiator role and SENDs it to the processor target. An initiator asking a target for data in this scenario implies that the initiator somehow knows the target has data to send. This VLAN application of processor devices differs from the communication device in that no other foreign protocol is implied. The host-to-host path is the network. In a communication device, the packet is taken from the initiator and translated to another communcation path. [this is real shaky; why do we have a separate comm device?] 11.1.2. "Exotic" Devices Historically, in SCSI, the processor device was intended for use by "exotic" devices which do not fit into any of the other device types. The implementor is urged to consider the other device types very carefully before deciding to use the processor device; often a standard device can be used with some vendor unique functions. Device which require several unique commands, and would not find using data packets for control and status convenient, should consider using a vendor unique device type. An implementor who feels that the new device is of general interest is encouraged to have that device standardized by the SCSI committee. One "non-host" device which can use the processor device command set is a graphics display terminal. The initiator sends data packets which contain the data defining the image to be displayed. Data packets which control attributes of the display may also be sent. In this model, the REQUEST SENSE command would also indicate error in the device (such as HARDWARE ERROR). Another example would be a data gathering device, such as a data acquisition peripheral. In this example, the data may be transfered to the initiator via the RECEIVE command, since the initiator knows that data is accumulated over a time period. Control information packets are transfered via the SEND command.