IP Library › Granted Patent US 9,384,086
Granted Patent B1
US 9,384,086 · App. 14/953,873 · Granted Jul 5, 2016

I/O operation-level error checking

Inventors: David Craddock (New Paltz, NY); John R. Flanagan (Poughkeepsie, NY); Thomas A. Gregg (Highland, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/1004G06F11/0745
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,384,086
App. No.
14/953,873
Granted
Jul 5, 2016
Kind
B1
Abstract

Error checking in a computing environment at an input/output (I/O) level is facilitated by associating a cyclic redundancy check (CRC) control element (CCE) with an input/output (I/O) operation based on a command to perform the I/O operation of the computing environment. The CRC control element is used in accumulating during performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the I/O operation. By way of example, the associating and the accumulating of the accumulated CRC value may be performed within an I/O hub of the computing environment, and where data of the I/O operation is transferred in data fragments, the CRC control element is updated for each data fragment during the accumulating of the CRC context for the I/O operation.

Claims (29)

1. A system for facilitating error checking in a computing environment, the system comprising:

a memory;

a processing device communicatively coupled to the memory, wherein the system performs a method comprising:

based on a command to perform an input/output (I/O) operation of the computing environment, associating, by an I/O hub of the computing environment, a cyclic redundancy check (CRC) control element (CCE) with the I/O operation; and

using, by the I/O hub, the CRC control element in accumulating with performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the I/O operation.

2. The system of claim 1 , wherein the I/O operation is between an adapter and system memory of the computing environment, and the I/O hub of the computing environment is coupled between the adapter and the system memory.

3. The system of claim 1 , wherein the accumulating comprises performing CRC calculations for the I/O operation with performance of the I/O operation to accumulate the accumulated CRC value for the I/O operation.

4. The system of claim 1 , where data of the I/O operation is transferred in data fragments and the CRC control element is updated for each data fragment during the accumulating of the CRC value for the I/O operation.

5. The system of claim 4 , wherein the method further comprises storing the CRC control element between data fragments in a CRC control element cache of the I/O hub or in a CRC control table in system memory of the computing environment accessible by the I/O hub.

6. The system of claim 1 , wherein the CRC control element comprises a working count field that tracks data fragments of the I/O operation, and the method further comprises for each data fragment, using the working count field of the CRC control element to determine completion of the CRC value for the I/O operation.

7. The system of claim 1 , wherein the using utilizes a portion of an I/O address associated with the I/O operation in identifying the CRC control element with performance of the I/O operation, wherein the I/O address comprises a PCI address.

8. The system of claim 1 , wherein the method further comprises in association with receiving one or more requests for data pursuant to the I/O operation, receiving a request to fetch the CRC value, and responsive to receipt of the request, fetching the CRC control element for use in accumulating with performance of the I/O operation the accumulated CRC value.

9. The system of claim 1 , wherein the I/O operation comprises a write operation, and the method further comprises bundling the CRC value with data written pursuant to the write operation, the associating, the using and the bundling being performed by the I/O hub of the computing environment.

10. The system of claim 1 , wherein the I/O operation comprises a read operation, and the method further comprises error checking the accumulated CRC value against a received CRC value associated with data read pursuant to the read operation, the associating, the using and the error checking being performed by the I/O hub of the computing environment.

11. A method of facilitating error checking in a computing environment, the method comprising:

based on a command to perform an input/output (I/O) operation of the computing environment, associating, by an I/O hub of the computing environment, a cyclic redundancy check (CRC) control element (CCE) with the I/O operation; and

using, by the I/O hub, the CRC control element in accumulating with performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the I/O operation.

12. The method of claim 11 , wherein the I/O operation is between an adapter and system memory of the computing environment, and the I/O hub of the computing environment is coupled between the adapter and the system memory.

13. The method of claim 11 , wherein the accumulating comprises performing CRC calculations for the I/O operation with performance of the I/O operation to accumulate the accumulated CRC value for the I/O operation.

14. The method of claim 11 , where data of the I/O operation is transferred in data fragments and the CRC control element is updated for each data fragment during the accumulating of the CRC value for the I/O operation.

15. The method of claim 14 , wherein method further comprises storing the CRC control element between data fragments in a CRC control element cache of the I/O hub or in a CRC control table in system memory of the computing environment accessible by the I/O hub.

16. The method of claim 11 , wherein the using utilizes a portion of an I/O address associated with the I/O operation in identifying the CRC control element with performance of the I/O operation, wherein the I/O address comprises a PCI address.

17. The method of claim 11 , further comprising in association with receiving one or more requests for data pursuant to the I/O operation, receiving a request to fetch the CRC value, and responsive to receipt of the request, fetching the CRC control element for use in accumulating with performance of the I/O operation the accumulated CRC value.

18. The method of claim 11 , wherein the I/O operation comprises a write operation, and the method further comprises bundling the CRC value with data written pursuant to the write operation, the associating, the using and the bundling being performed by the I/O hub of the computing environment.

19. The method of claim 11 , wherein the I/O operation comprises a read operation, and the method further comprises error checking the accumulated CRC value against a received CRC value associated with data read pursuant to the read operation, the associating, the using and the error checking being performed by the I/O hub of the computing environment.

20. The computer program product for facilitating error checking in a computing environment, the computer program product comprising:

A non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a processing device to cause the processing device to perform a method comprising:

based on a command to perform an input/output (I/O) operation of the computing environment, associating, by an I/O hub of the computing environment, a cyclic redundancy check (CRC) control element (CCE) with the I/O operation; and

using, by the I/O hub, the CRC control element in accumulating with performance of the I/O operation an accumulated CRC value for the I/O operation to facilitate error checking of the I/O operation.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074125/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: KIDON IP CORPORATION
To: CAPROCK INTEGRATED TECHNOLOGIES LLC
Reel/Frame 073866/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KIDON IP CORPORATION
Reel/Frame 074975/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2015
From: CRADDOCK, DAVID; FLANAGAN, JOHN R.; GREGG, THOMAS A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037166/0896 →