IP Library Granted Patent US 12,118,132
Granted Patent B2
US 12,118,132 · App. 17/266,369 · Granted Oct 15, 2024

Memory bus protection

Inventor: Scott Best (Palo Alto, CA)
Assignee: Cryptography Research, Inc.
G06F21/85G06F7/588G06F11/1004G06F21/45G06F21/72
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,118,132
App. No.
17/266,369
Granted
Oct 15, 2024
Kind
B2
Abstract

A first address bus may be located in an upper layer of an integrated circuit that is associated with a memory and a memory controller. The first address bus may receive a first portion of a memory address. A second address bus may be located in a lower layer of the integrated circuit where the second address bus is to receive a second portion of the memory address. Furthermore, a data bus may be located in an intermediate layer where the data bus is to receive data corresponding to the memory address from the memory and may transmit the data to the memory controller. The intermediate layer may be between the upper layer and the lower layer. A layout of the signals of the data bus may vertically overlap with a layout of signals of the first address bus and a layout of signals of the second address bus.

Claims (45)

1. An integrated circuit comprising:

a memory;

a memory controller;

a first address bus located in an upper layer of the integrated circuit, wherein the first address bus is to receive a first portion of a memory address from the memory controller;

a second address bus located in a lower layer of the integrated circuit, wherein the second address bus is to receive a second portion of the memory address from the memory controller; and

a data bus located in an intermediate layer of the integrated circuit, wherein the data bus is to receive data corresponding to the memory address from the memory and transmit the data to the memory controller, and wherein the intermediate layer is between the upper layer and the lower layer, and wherein a layout of signals of the data bus vertically overlaps with a layout of signals of the first address bus and a layout of signals of the second address bus.

2. The integrated circuit of claim 1 , wherein the first address bus is further to receive a first portion of a memory command and the second address bus is further to receive a second portion of the memory command.

3. The integrated circuit of claim 1 , wherein the first address bus is further to receive a first random value from the memory controller, and wherein the second address bus is further to receive a second random value from the memory controller, and wherein the data transmitted to the memory controller via the data bus is encoded based on the first random value and the second random value.

4. The integrated circuit of claim 1 , wherein the memory controller further comprises an encoder to encode the first portion of the memory address and the second portion of the memory address, and wherein the memory is associated with a decoder to decode the encoded first portion of the memory address and the encoded second portion of the memory address.

5. The integrated circuit of claim 1 , wherein the memory controller is to generate a first cyclic redundancy check (CRC) value based on the first portion of the memory address and a second CRC value based on the second portion of the memory address, and wherein the first CRC value is transmitted to the memory via the first address bus and the second CRC value is transmitted to the memory via the second address bus.

6. The integrated circuit of claim 1 , wherein the memory is associated with receiving a first random value with the first portion of the memory address from the first address bus located in the upper layer and a second random value with the second portion of the memory address from the second address bus located in the lower layer, and wherein the data transmitted via the data bus in the intermediate layer is encoded based on a combination of the first random value and the second random value.

7. The integrated circuit of claim 1 , wherein the first address bus and the second address bus correspond to a shielding for the data bus.

8. A method comprising:

receiving a memory address associated with a memory;

transmitting a first portion of the memory address to the memory, the first portion of the memory address being transmitted via a first address bus located in an upper layer of an integrated circuit associated with the memory;

transmitting, by a processing device, a second portion of the memory address to the memory, the second portion of the memory address being transmitted via a second address bus located in a lower layer of the integrated circuit; and

receiving data at the memory address from the memory via a data bus that is located at an intermediate layer of the integrated circuit, wherein the intermediate layer is between the upper layer and the lower layer of the integrated circuit, and wherein a layout of signals of the data bus in the intermediate layer vertically overlaps with a layout of signals of the first address bus and a layout of signals of the second address bus.

9. The method of claim 8 , further comprising:

transmitting a first portion of a memory command via the first address bus; and transmitting a second portion of the memory command via the second address bus.

10. The method of claim 8 , further comprising:

generating a first random value, wherein the first random value is transmitted to the memory via the first address bus; and

generating a second random value, wherein the second random value is transmitted to the memory via the second address bus, and wherein the data received via the data bus is based on the first random value and the second random value.

11. The method of claim 8 , further comprising:

encoding the first portion of the memory address and the second portion of the memory address, wherein the transmitting of the first portion of the memory address is based on the encoded first portion of the memory address and the transmitting of the second portion of the memory address is based on the encoded second portion of the memory address.

12. The method of claim 8 , further comprising:

generating a first cyclic redundancy check (CRC) value based on the first portion of the memory address, and

generating a second CRC value based on the second portion of the memory address, and wherein the first CRC value is transmitted to the memory via the first address bus and the second CRC value is transmitted to the memory via the second address bus.

13. The method of claim 12 , wherein the receiving of the data at the memory address from the memory via the data bus that is located at the intermediate layer of the integrated circuit is based on the first CRC value and the second CRC value.

14. The method of claim 8 , wherein the first address bus and the second address bus correspond to a shielding for the data bus.

15. A method comprising:

receiving a first portion of a memory address of a memory, the first portion of the memory address being transmitted via a first address bus located in an upper layer of an integrated circuit associated with the memory;

receiving a second portion of the memory address of the memory, the second portion of the memory address being transmitted via a second address bus located in a lower layer of the integrated circuit;

identifying, by a processing device, data corresponding to the memory address based on the first portion of the memory address and the second portion of the memory address; and

transmitting the data at the memory address from the memory via a data bus that is located at an intermediate layer of the integrated circuit, wherein the intermediate layer is between the upper layer and the lower layer of the integrated circuit.

16. The method of claim 15 , wherein a layout of signals of the data bus in the intermediate layer overlap with a layout of signals of the first address bus and a layout of signals of the second address bus.

17. The method of claim 15 , wherein the memory address corresponding to the first portion and the second portion is encoded, the method further comprising decoding the encoded memory address.

18. The method of claim 15 , further comprising:

receiving a first cyclic redundancy check (CRC) value with the first portion of the memory address via the first address bus located in the upper layer;

receiving a second CRC value with the second portion of the memory via the second address bus located in the lower layer; and

generating a corresponding CRC value for each of the first portion of the memory address and the second portion of the memory address, and wherein the identifying of the data is based on the corresponding CRC values matching the first CRC value and the second CRC value.

19. The method of claim 15 , further comprising:

receiving a first random value with the first portion of the memory address via the first address bus located in the upper layer;

receiving a second random value with the second portion of the memory via the second address bus located in the lower layer; and

encoding the data based on the first random value and the second random value, wherein the transmitting of the data via the data bus corresponds to transmitting the encoded data.

20. The method of claim 15 , wherein the first address bus and the second address bus correspond to a shielding for the data bus.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: BEST, SCOTT C
To: CRYPTOGRAPHY RESEARCH, INC.
Reel/Frame 055167/0850 →
Continuity (3)
Provisional Application 62717619 · Aug 10, 2018
Provisional Application 62792757 · Jan 15, 2019
Related Publication 20210319145A1 · Oct 14, 2021