IP Library Granted Patent US 11,620,184
Granted Patent B2
US 11,620,184 · App. 17/402,755 · Granted Apr 4, 2023

Runtime integrity checking for a memory system

Inventors: Thomas E. Tkacik (Phoenix, AZ); Geoffrey Paul Waters (Austin, TX); James Andrew Welker (Leander, TX); Mohit Mongia (Noida, IN)
Assignee: NXP B.V.
G06F11/1004G06F3/0619G06F3/0652G06F3/0659G06F3/0673G06F11/1076
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 11,620,184
App. No.
17/402,755
Granted
Apr 4, 2023
Kind
B2
Abstract

Various embodiments relate to a memory controller, including: a memory interface connected to a memory; an address and command logic connected to the memory interface and a command interface, wherein the address and control logic is configured to receive a memory read request; a memory scrubber configured to cycle through memory locations and to read data from those locations; a region selector configured to determine when a memory location read by the memory scrubber is within an integrity checked memory region; a runtime integrity check (RTIC) engine connected to a read data path of the memory interface, wherein the RTIC engine is configured to calculate an integrity check value for the RTIC region using data read from the checked memory region by the memory scrubber; and a RTIC controller configured to compare the calculated integrity check value for the checked memory region to a reference integrity check value for the checked memory region.

Claims (33)

1. A memory controller, comprising:

a memory interface connected to a memory;

an address and command logic connected to the memory interface and a command interface, wherein the address and control logic is configured to receive a memory read request;

a memory scrubber configured to cycle through memory locations and to read data from the memory locations;

a region selector configured to determine when a memory location read by the memory scrubber is within a checked memory region;

a runtime integrity checking (RTIC) engine connected to a read data path of the memory interface, wherein the RTIC engine is configured to calculate an integrity check value for the checked memory region using the data read from the memory by the memory scrubber; and

a RTIC controller configured to compare the calculated integrity check value for the checked memory region to a reference integrity check value, wherein the RTIC controller is configured to produce an error signal when the calculated integrity check value for the checked memory region is not equal to the reference integrity check value.

2. The memory controller of claim 1 , wherein calculating an integrity check value includes calculating a hash function.

3. The memory controller of claim 1 , wherein the RTIC engine includes a buffer configured to buffer data read from the memory locations read by the memory scrubber.

4. The memory controller of claim 1 , wherein the reference integrity check value for the checked memory region is stored in the RTIC controller and is precomputed.

5. The memory controller of claim 1 , wherein the reference integrity check value for the checked memory region is computed a first time the RTIC engine calculates the integrity check value for the checked memory region and is stored in the RTIC controller.

6. The memory controller of claim 1 , wherein the RTIC controller is configured to initiate the RTIC engine when the memory scrubber first reads a portion of the checked memory region.

7. The memory controller of claim 1 , wherein the RTIC controller is configured to indicate to the RTIC engine when the memory scrubber reads a last portion of the checked memory region.

8. The memory controller of claim 1 , wherein a configuration bit is associated with the checked memory region indicating whether or not the RTIC engine is to calculate the integrity check value for the checked memory region.

9. The memory controller of claim 8 , wherein the configuration bit may be sticky.

10. The memory controller of claim 1 , wherein the memory includes a plurality of checked memory regions.

11. The memory controller of claim 10 , wherein the region selector is configured to identify which of the plurality of the checked memory regions is associated with a memory location selected by the memory scrubber and provides to the RTIC controller an identity of an identified checked memory region.

12. The memory controller of claim 1 , wherein the memory scrubber is configured to:

cycle through the memory locations at a first rate; and

cycle through the memory locations at a second rate to calculate the integrity check value using the RTIC engine, wherein the first rate and the second rate are different.

13. The memory controller of claim 1 , wherein the memory scrubber is configured to:

cycle through memory locations at a first rate to correct data errors using an error correction code; and

cycle through the memory locations associated with the checked memory region at a second rate to calculate the integrity check value using the RTIC engine, wherein the first rate and the second rate are different.

14. A method for checking the integrity of a memory region in a memory, comprising:

cycling, by a memory scrubber, through memory locations and reading data from those the memory locations;

determining, by a region selector, when a memory location read by the memory scrubber is within a checked memory region;

calculating, by a runtime integrity checking (RTIC) engine, an integrity check value for the checked memory region using data read from the memory by the memory scrubber; and

comparing, by a RTIC controller, the calculated integrity check value for the checked memory region to a reference integrity check value, wherein the RTIC controller produces an error signal when the calculated integrity check value for the checked memory region is not equal to the reference integrity check value.

15. The method of claim 14 further comprising initiating, by the RTIC controller, the RTIC engine when the memory scrubber first reads a portion of the checked memory region.

16. The method of claim 14 , further comprising indicating, by the RTIC controller, to the RTIC engine when the memory scrubber reads a last portion of the checked memory region.

17. The method of claim 14 , wherein a configuration bit is associated with the checked memory region indicating whether or not the RTIC engine is to calculate the integrity check value for the checked memory region.

18. The method of claim 14 , wherein the memory includes a plurality of checked memory regions.

19. The method of claim 18 , identifying, by the region selector, which of the plurality of the checked memory regions is associated with a memory location selected by the memory scrubber and provides to the RTIC controller an identity of the identified checked memory region.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2021
From: TKACIK, THOMAS E.; WATERS, GEOFFREY PAUL; WELKER, JAMES ANDREW; MONGIA, MOHIT
To: NXP B.V.
Reel/Frame 057185/0885 →
Continuity (1)
Related Publication 20230051590A1 · Feb 16, 2023