IP Library Granted Patent US 12,737,245
Granted Patent B2
US 12,737,245 · App. 18/374,311 · Granted Sep 15, 2026

Memory access validation for input/output operations using an interposer

Inventor: David Joseph Clinton (Coopersburg, PA)
Assignee: Advanced Micro Devices, Inc.
G06F11/0772G06F11/0787G06F11/1004
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 12,737,245
App. No.
18/374,311
Granted
Sep 15, 2026
Kind
B2
Abstract

Memory access validation for input/output operations using an interposer is described. In one or more implementations, an interposer is disposed logically between an input/output device and a memory. The interposer receives a plurality of requests from the input/output device to access the memory non-sequentially in association with an input/output operation. Responsive to each request, the interposer updates an accumulated error code using error-detection logic. Based upon the accumulated error code, the interposer outputs an I/O validity indicator.

Claims (32)

1 . A device comprising:

an interposer disposed logically between an input/output device and a memory to:

receive a plurality of requests from the input/output device to access the memory non-sequentially in association with an input/output operation;

responsive to each request of the plurality of requests, incrementally update an accumulated error code based at least in part on an indication of which particular bytes of the memory are requested in each request of the plurality of requests, wherein the accumulated error code is updated incrementally with each request based on at least one error detection algorithm; and

output an input/output validity indicator for the input/output operation based on the accumulated error code.

2 . The device of claim 1 , wherein the interposer is further configured to validate the input/output operation based on the accumulated error code.

3 . The device of claim 1 , wherein the plurality of requests is received from a direct memory access engine of the input/output device.

4 . The device of claim 1 , wherein the input/output device is a non-volatile memory express (NVMe) device and the interposer is an NVMe interposer.

5 . The device of claim 1 , wherein error-detection logic of the interposer performs incremental cyclic redundancy code (CRC) calculations associated with the at least one error detection algorithm for each request on a per-request basis as a request is received to update the accumulated error code.

6 . The device of claim 5 , wherein the error-detection logic comprises a linear feedback shift register (LFSR) for performing the incremental cyclic redundancy code (CRC) calculations.

7 . The device of claim 1 , wherein the interposer is further configured to validate the input/output operation based on the accumulated error code and an input/output level error code.

8 . The device of claim 7 , wherein the accumulated error code and the input/output level error code are cyclic redundancy codes (CRCs).

9 . The device of claim 7 , wherein the interposer stores both the accumulated error code and the input/output level error code without storing a virtual bit vector having a number of bits which corresponds to a number of bytes of the input/output operation.

10 . The device of claim 7 , wherein:

error-detection logic of the interposer updates the accumulated error code for a request according to the at least one error detection algorithm based on a number of bytes of memory requested for access by the request and the indication of which particular bytes of the memory are requested; and

the error-detection logic updates the input/output level error code for the request based on the number of bytes of memory requested.

11 . The device of claim 10 , wherein the error-detection logic updates the input/output level error code for the request based on the number of bytes of memory requested by the request and agnostic to which particular bytes of the memory are requested.

12 . The device of claim 1 , wherein the interposer is further configured to translate the plurality of requests to produce a plurality of translated requests for accessing respective portions of the memory.

13 . The device of claim 12 , wherein the plurality of translated requests are formatted according to a different protocol than the plurality of requests.

14 . The device of claim 1 , wherein the indication of which particular bytes of the memory are requested indicates an offset and a number of bytes accessed by the request.

15 . The device of claim 1 , wherein the input/output device is configured to perform the input/output operation again in response to the input/output validity indicator indicating that the input/output operation is invalid.

16 . A system comprising:

a memory;

an input/output device to generate a plurality of requests to access the memory non-sequentially in association with an input/output operation; and

an interposer disposed logically between the memory and the input/output device, the interposer having error-detection logic to incrementally update an accumulated error code based at least in part on an indication of which particular bytes of the memory are requested in each request of the plurality of requests and output an input/output validity indicator based on the accumulated error code, wherein the accumulated error code is updated incrementally with each request of the plurality of requests based on at least one error detection algorithm.

17 . The system of claim 16 , wherein the interposer is further configured to use the error-detection logic to update an input/output level error code based on each request, the interposer updating the input/output level error code based on different input information than the accumulated error code.

18 . The system of claim 17 , wherein the interposer is further configured to validate the input/output operation based on both the accumulated error code and the input/output level error code.

19 . The system of claim 17 , wherein the interposer is further configured to validate the input/output operation based on whether the accumulated error code and the input/output level error code are equal.

20 . A method comprising:

receiving, by an interposer and from an input/output device, a plurality of requests to access memory non-sequentially in association with an input/output operation;

responsive to each request of the plurality of requests, incrementally updating an accumulated error code based at least in part on an indication of which particular bytes of the memory are requested in each request of the plurality of requests, wherein the accumulated error code is updated incrementally with each request based on at least one error detection algorithm; and

outputting, by the interposer, an input/output validity indicator based on the accumulated error code.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2023
From: CLINTON, DAVID JOSEPH
To: ADVANCED MICRO DEVICES, INC
Reel/Frame 065195/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2023
From: CLINTON, DAVID JOSEPH
To: ADVANCED MICRO DEVICES, INC
Reel/Frame 065195/0680 →
Continuity (1)
Related Publication 20250110819A1 · Apr 3, 2025
References Cited (13)
US RE36448E · Brady · 1999 [cited by examiner]
US 9384086B1 · Craddock · 2016 [cited by examiner]
US 10078541B2 · Benedict · 2018 [cited by examiner]
US 20110066925A1 · Smith · 2011 [cited by examiner]
US 20110078537A1 · Gruner · 2011 [cited by examiner]
US 20170187389A1 · Radhakrishnan · 2017 [cited by examiner]
US 20190138440A1 · Lee · 2019 [cited by examiner]
US 20190332469A1 · Radjai · 2019 [cited by examiner]
US 20250165145A1 · Peterson · 2025 [cited by examiner]
US 20250390380A1 · Mahanty · 2025 [cited by examiner]
Google Scholar/Patents search—text refined (Year: 2025). [cited by examiner]
Google Scholar/Patents search—text refined (Year: 2026). [cited by examiner]
Satran, Julian , et al., “Out of Order Incremental CRC Computation”, IEEE Transactions on Computers, vol. 54. No. 9 [retrieved Aug. 18, 2023]. Retrieved from the Internet <https://doi.org/10.1109/TC.2005.151>, Jul. 25, … [cited by applicant]