IP Library Granted Patent US 12,451,206
Granted Patent B2
US 12,451,206 · App. 18/381,568 · Granted Oct 21, 2025

Extending functionality of memory controllers using a loopback mode for testing in a processor-based device

Inventors: Massimo Sutera (Sunnyvale, CA); Rakesh Kumar (Cupertino, CA); Kha Minh Huynh (Ho Chi Minh, VN); Sandeep Brahmadathan (Dublin, CA); Anil Kumar Handenahalli Rajanna (San Jose, CA); Nagi Aboulenein (King City, OR)
Assignee: Ampere Computing LLC
G11C29/1201G11C29/42G11C29/44
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,451,206
App. No.
18/381,568
Granted
Oct 21, 2025
Kind
B2
Abstract

Apparatus and methods for extending functionality of memory controllers using a loopback mode for testing are disclosed herein. In one aspect, a processor-based device provides a memory access intercept circuit configured to receive a memory write request that is directed to and received by a memory controller. The memory access intercept circuit transmits proxy write data to the memory controller, and intercepts write data directed to the memory controller for the memory write request. The memory access intercept circuit stores the write data in a write data buffer, and, upon intercepting the proxy write data from the memory controller directed to a physical (PHY) interface circuit, retrieves the write data from the write data buffer and transmits the write data to the PHY interface circuit. The memory access intercept circuit subsequently receives, from the PHY interface circuit, loopback data, and stores the loopback data in a read data buffer.

Claims (78)

1. A processor-based device, comprising:

a memory controller;

a physical (PHY) interface circuit communicatively coupled to the memory controller, wherein the PHY interface circuit is configured to operate in a loopback mode; and

a memory access intercept circuit configured to operate in the loopback mode by being configured to:

receive, from a requestor, a memory write request that is directed to and received by the memory controller;

transmit proxy write data to the memory controller;

intercept write data from the requestor directed to the memory controller for the memory write request;

store the write data in a write data buffer;

intercept the proxy write data from the memory controller directed to the PHY interface circuit;

retrieve the write data from the write data buffer;

transmit the write data to the PHY interface circuit;

receive, from the PHY interface circuit, loopback data directed to the memory controller in response to a read signal from the memory access intercept circuit; and

store the loopback data in a read data buffer.

2. The processor-based device of claim 1 , wherein:

the memory access intercept circuit is further configured to:

generate a write transaction identifier (ID) for the memory write request; and

generate a read transaction ID for the read signal; and

the memory access intercept circuit is configured to:

transmit the proxy write data to the memory controller by being configured to transmit the write transaction ID to the memory controller as the proxy write data;

store the write data in the write data buffer by being configured to store the write data in the write data buffer in association with the write transaction ID;

retrieve the write data from the write data buffer by being configured to retrieve the write data from the write data buffer based on the write transaction ID of the proxy write data; and

store the loopback data in the read data buffer by being configured to store the loopback data in the read data buffer in association with the read transaction ID.

3. The processor-based device of claim 2 , wherein the memory access intercept circuit is further configured to:

transmit the read transaction ID to the memory controller as proxy read data;

intercept the proxy read data from the memory controller directed to the requestor;

retrieve the loopback data from the read data buffer based on the read transaction ID of the proxy read data; and

transmit the loopback data to the requestor.

4. The processor-based device of claim 3 , wherein the requestor comprises a testing circuit configured to:

perform a comparison of the write data and the loopback data; and

generate a test result indication based on the comparison.

5. The processor-based device of claim 1 , wherein:

the memory access intercept circuit is further configured to perform a first data transformation on the write data to generate first transformed data; and

the memory access intercept circuit is configured to transmit the write data to the PHY interface circuit by being configured to transmit the first transformed data as the write data.

6. The processor-based device of claim 5 , wherein the memory access intercept circuit is configured to perform the first data transformation by being configured to encrypt the write data.

7. The processor-based device of claim 5 , wherein the memory access intercept circuit is configured to perform the first data transformation by being configured to encode a custom error correction code (ECC) based on the write data.

8. The processor-based device of claim 1 , wherein the memory access intercept circuit is configured to receive the loopback data by being configured to:

receive, from the PHY interface circuit, second transformed data; and

perform a second data transformation on the second transformed data to obtain the loopback data.

9. The processor-based device of claim 8 , wherein the memory access intercept circuit is configured to perform the second data transformation by being configured to decrypt the second transformed data.

10. The processor-based device of claim 8 , wherein the memory access intercept circuit is configured to perform the second data transformation by being configured to decode a custom error correction code (ECC).

11. A method for extending functionality of memory controllers using a loopback mode for testing in a processor-based device, comprising:

receiving, by a memory access intercept circuit of the processor-based device from a requestor, a memory write request that is directed to and received by a memory controller of the processor-based device;

transmitting, by the memory access intercept circuit, proxy write data to the memory controller;

intercepting, by the memory access intercept circuit, write data from the requestor directed to the memory controller for the memory write request;

storing, by the memory access intercept circuit, the write data in a write data buffer;

intercepting, by the memory access intercept circuit, the proxy write data from the memory controller directed to a physical (PHY) interface circuit of the processor-based device;

retrieving, by the memory access intercept circuit, the write data from the write data buffer;

transmitting, by the memory access intercept circuit, the write data to the PHY interface circuit;

receiving, by the memory access intercept circuit from the PHY interface circuit, loopback data directed to the memory controller in response to a read signal from the memory access intercept circuit; and

storing, by the memory access intercept circuit, the loopback data in a read data buffer.

12. The method of claim 11 , wherein:

the method further comprises:

generating, by the memory access intercept circuit, a write transaction identifier (ID) for the memory write request; and

generating, by the memory access intercept circuit, a read transaction ID for the read signal;

transmitting the proxy write data to the memory controller comprises transmitting the write transaction ID to the memory controller as the proxy write data;

storing the write data in the write data buffer comprises storing the write data in the write data buffer in association with the write transaction ID;

retrieving the write data from the write data buffer comprises retrieving the write data from the write data buffer based on the write transaction ID of the proxy write data; and

storing the loopback data in the read data buffer comprises storing the loopback data in the read data buffer in association with the read transaction ID.

13. The method of claim 12 , further comprising:

transmitting, by the memory access intercept circuit, the read transaction ID to the memory controller as proxy read data;

intercepting, by the memory access intercept circuit, the proxy read data from the memory controller directed to the requestor;

retrieving, by the memory access intercept circuit, the loopback data from the read data buffer based on the read transaction ID of the proxy read data; and

transmitting, by the memory access intercept circuit, the loopback data to the requestor.

14. The method of claim 13 , wherein:

the requestor comprises a testing circuit; and

the method further comprises:

performing, by the testing circuit, a comparison of the write data and the loopback data; and

generating, by the testing circuit, a test result indication based on the comparison.

15. The method of claim 11 , wherein:

the method further comprises performing, by the memory access intercept circuit, a first data transformation on the write data to generate first transformed data; and

transmitting the write data to the PHY interface circuit comprises transmitting the first transformed data as the write data.

16. The method of claim 15 , wherein performing the first data transformation comprises encrypting the write data.

17. The method of claim 15 , wherein performing the first data transformation comprises encoding a custom error correction code (ECC) based on the write data.

18. The method of claim 11 , wherein receiving the loopback data comprises:

receiving, from the PHY interface circuit, second transformed data; and

performing a second data transformation on the second transformed data to obtain the loopback data.

19. The method of claim 18 , wherein performing the second data transformation comprises decrypting the second transformed data.

20. The method of claim 18 , wherein performing the second data transformation comprises decoding a custom error correction code (ECC).

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2025
From: BRAHMADATHAN, SANDEEP
To: AMPERE COMPUTING LLC
Reel/Frame 072325/0098 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2025
From: HUYNH, KHA MINH; HANDENAHALLI RAJANNA, ANIL KUMAR
To: AMPERE COMPUTING LLC
Reel/Frame 070107/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2023
From: KUMAR, RAKESH; ABOULENEIN, NAGI
To: AMPERE COMPUTING LLC
Reel/Frame 065273/0523 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2023
From: SUTERA, MASSIMO
To: AMPERE COMPUTING LLC
Reel/Frame 065274/0138 →
Continuity (1)
Related Publication 20250131970A1 · Apr 24, 2025
References Cited (16)
US 6928593B1 · Halbert · 2005 [cited by examiner]
US 8332464B2 · Dispensa · 2012 [cited by examiner]
US 9432298B1 · Smith · 2016 [cited by examiner]
US 9525665B1 · Evans · 2016 [cited by examiner]
US 9842045B2 · Heorhiadi · 2017 [cited by examiner]
US 10978170B2 · Lee · 2021 [cited by examiner]
US 11531584B2 · Lee · 2022 [cited by examiner]
US 11997008B1 · Gnanasekaran · 2024 [cited by examiner]
US 12058055B2 · Jung · 2024 [cited by examiner]
US 20110035560A1 · Bodrozic · 2011 [cited by examiner]
US 20120096257A1 · Li et al. · 2012 [cited by applicant]
US 20190332469A1 · Radjai et al. · 2019 [cited by applicant]
US 20230096468A1 · Ong · 2023 [cited by examiner]
US 20240004577A1 · Sutera et al. · 2024 [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/856,299, mailed Aug. 5, 2024, 9 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 17/856,299, mailed Mar. 6, 2024, 10 pages. [cited by applicant]