摘要 |
A coprocessor has a service port architecture which may support multiple service ports, each of which may be assigned to a different process. Operations supported by the coprocessor may be requested using commands to the service port, and status may be checked using status commands to the service port. Since different processes may be assigned to different service ports, the coprocessor may be able to determine, while performing an operation for a process, that a different process is requesting an operation. In one embodiment, the coprocessor may interrupt the in-progress operation to perform the newly requested operation. When status is requested for the interrupted operation, the coprocessor may return a failure status code indicating the interrupted operation was interrupted. In one embodiment, when the coprocessor initiates an operation for a service port, the coprocessor establishes a reservation for that service port. If a reservation for a service port is inactive when a status command is received on that service port, then the coprocessor may indicate that the operation failed (was unsuccessful) due to interruption by another operation from a different service port. In one embodiment, the coprocessor may support the locking of one or more resources which may store the output of an operation. If another operation would use the resources locked to a service port, that operation may be terminated with a failure status indicating that the resources used are locked to another service port. |