# US 10,120,818 B2 · Synchronous input/output command

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,818 B2
- Document ID: US10120818B2
- Status: Granted
- Kind: B2
- Application number: 14/872,872
- Filed: 2015-10-01
- Published: 2017-04-06
- Granted: 2018-11-06
- Earliest claimed: 2015-10-01
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: David F. Craddock; Beth A. Glendening; Dale F. Riedy; Harry M. Yudenfriend
- Web page: https://patentgrep.com/patent/US10120818B2

## CPC

- G06F 13/1689: {Synchronisation and timing concerns (synchronisation on a memory bus G06F13/4234)}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 13/1605: {based on arbitration (arbitration in handling access to a common bus or bus system G06F13/36)}
- G06F 13/4243: {with synchronous protocol}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Aspects include sending a request to perform a unit of work that includes a synchronous I/O operation. The sending is from an operating system (OS) executing on a server to firmware located on the server. The synchronous I/O request includes a command request block that includes an operation code identifying the synchronous I/O operation and a identifier of a persistent storage control unit (SCU). The OS waits for the synchronous I/O to complete and the unit of work remains active during the waiting. The firmware detects that the synchronous I/O operation has completed. A command response block that includes completion status information about the synchronous I/O operation is received by the OS from the firmware. The unit of work is completed in response to the I/O operation completing.

## Claims

### Claim 1

A computer program product, the computer program product comprising a computer readable storage medium having program instructions for performing synchronous input/output (I/O) operations embodied therewith, the program instructions executable by a processor to cause the processor to perform:
sending, from an operating system (OS) executing on a server to firmware located on the server, a request to perform a unit of work that includes a synchronous I/O operation, the request comprising a variable length command request block that includes format information specifying a format of the command request block, an operation code identifying the synchronous I/O operation as a synchronous read operation or a synchronous write operation, an identifier of a persistent storage control unit (SCU), and an access key for accessing storage specified by the synchronous I/O operation;
waiting, by the OS, for the synchronous I/O to complete, wherein the unit of work remains active during the waiting;
detecting, by the firmware, that the synchronous I/O operation has completed;
receiving, by the OS, a command response block from the firmware that includes completion status information about the synchronous I/O operation; and
completing the unit of work in response to the I/O operation completing,
wherein the command request block further includes an incremented sequence number that provides the SCU with an offset of a status area within the firmware for the command response block and a confirmation that a previous command has been completed.

### Claim 2 (depends on 1)

The computer program product of claim 1, wherein the synchronous I/O operation is the synchronous read operation and the detecting includes determining that data from the persistent SCU has been written to a memory location on the server.

### Claim 3 (depends on 1)

The computer program product of claim 1, wherein the synchronous I/O operation is the synchronous write operation and the detecting includes receiving a status message in a memory location on the server indicating that the synchronous I/O operation has been completed.

### Claim 4 (depends on 1)

The computer program product of claim 1, wherein the completion status information in the command response block indicates that the synchronous I/O operation completed successfully.

### Claim 5 (depends on 1)

The computer program product of claim 1, wherein the completion status information in the command response block indicates that the synchronous I/O operation completed in an error state.

### Claim 6 (depends on 1)

The computer program product of claim 1, wherein the program instructions are further executable by the processor to cause:
creating the command request block based on completion information about the synchronous I/O operation.

### Claim 7 (depends on 1)

The computer program product of claim 1, wherein the OS utilizes contents of the command response block to determine a next action by the OS.

### Claim 8

A system, comprising a processor and a memory storing program instructions for performing synchronous input/output (I/O) operations, thereon, the program instructions executable by a processor to cause the system to perform:
sending, from an operating system (OS) executing on a server to firmware located on the server, a request to perform a unit of work that includes a synchronous I/O operation, the request comprising a variable length command request block that includes format information specifying a format of the command request block, an operation code identifying the synchronous I/O operation as a synchronous read operation or a synchronous write operation, an identifier of a persistent storage control unit (SCU), and an access key for accessing storage specified by the synchronous I/O operation;
waiting, by the OS, for the synchronous I/O to complete, wherein the unit of work remains active during the waiting;
detecting, by the firmware, that the synchronous I/O operation has completed;
receiving, by the OS, a command response block from the firmware that includes completion status information about the synchronous I/O operation; and
completing the unit of work in response to the I/O operation completing,
wherein the command request block further includes an incremented sequence number that provides the SCU with an offset of a status area within the firmware for the command response block and a confirmation that a previous command has been completed.

### Claim 9 (depends on 8)

The system of claim 8, wherein the synchronous I/O operation is the synchronous read operation and the detecting includes determining that data from the persistent SCU has been written to a memory location on the server.

### Claim 10 (depends on 8)

The system of claim 8, wherein the synchronous I/O operation is the synchronous write operation and the detecting includes receiving a status message in a memory location on the server indicating that the synchronous I/O operation has been completed.

### Claim 11 (depends on 8)

The system of claim 8, wherein the completion status information in the command response block indicates that the synchronous I/O operation completed successfully.

### Claim 12 (depends on 8)

The system of claim 8, wherein the completion status information in the command response block indicates that the synchronous I/O operation completed in an error state.

### Claim 13 (depends on 8)

The system of claim 8, wherein the OS utilizes contents of the command response block to determine a next action by the OS.
