IP Library › Granted Patent US 11,734,173
Granted Patent B2
US 11,734,173 · App. 17/854,770 · Granted Aug 22, 2023

Memory access bounds checking for a programmable atomic operator

Inventors: Tony Brewer (Plano, TX); Dean E. Walker (Allen, TX); Chris Baronne (Allen, TX)
Assignee: Micron Technology, Inc.
G06F12/0607G06F12/0223G06F12/0844G06F2212/1012
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,734,173
App. No.
17/854,770
Granted
Aug 22, 2023
Kind
B2
Abstract

Devices and techniques for memory access bounds checking for a programmable atomic operator are described herein. A processor can execute a programmable atomic operator with a base memory address. The processor can obtain a memory interleave size indicator corresponding to the programmable atomic operator and calculate a contiguous memory address range from the base memory address and the memory interleave size. The processor can then detect that a memory request from the programmable atomic operator is outside the contiguous memory address range and deny the memory request when it is outside of the contiguous memory address range and allow the memory request otherwise.

Claims (36)

1. An apparatus comprising:

an interface to connect the apparatus to a memory when in operation; and

processing circuitry that, when in operation, is configured to:

determine that a memory request from an executing program is outside a contiguous memory address range in a memory, the contiguous memory address range defined by a base memory address for the program and an interleave size; and

refuse execution of the memory request based on the memory request being outside the contiguous memory address range in the memory.

2. The method of claim 1 , wherein the program is a programmable atomic operator.

3. The method of claim 2 , wherein the memory is part of the apparatus.

4. The method of claim 1 , wherein the apparatus is a chiplet in a chiplet system.

5. The method of claim 1 , wherein the processing circuitry is configured to receive a request to execute the program, the request including the base memory address.

6. The method of claim 5 , wherein the request includes the interleave size.

7. The method of claim 6 , wherein the interleave size is specified by an indicator that is one of four values.

8. The method of claim 7 , wherein the four values respectively correspond to two-hundred fifty-six bytes, sixteen kilobytes, one megabyte, and sixty-four megabytes.

9. The method of claim 7 wherein the four values are integers between zero and three inclusive.

10. The method of claim 5 , wherein, to refuse execution of the memory request, the processing circuitry is configured to communicate a failure status to an entity that requested execution of the program.

11. The method of claim 1 , wherein the memory interleave size indicator is a bit mask.

12. The method of claim 11 , wherein, to determine that the memory request is outside the contiguous memory address range, the processing circuitry is configured to:

perform an exclusive OR (XOR) operation on the base memory address and a memory address of the memory request to produce a result; and

apply the bit mask to the result to cover lower bits of the result; and

evaluate uncovered bits of the result to find a non-zero bit, the memory request being within the contiguous memory address range when the uncovered bits of the result are all zero, and outside otherwise.

13. A method comprising:

determining that a memory request from an executing program is outside a contiguous memory address range in a memory, the contiguous memory address range defined by a base memory address for the program and an interleave size; and

refusing execution of the memory request based on the memory request being outside the contiguous memory address range in the memory.

14. The method of claim 13 , wherein the program is a programmable atomic operator.

15. The method of claim 14 , wherein the memory is part of a memory device that includes processing circuitry upon which the programmable atomic operator is executing.

16. The method of claim 15 , wherein the memory device is a chiplet in a chiplet system.

17. The method of claim 13 , comprising receiving, at a device that includes the memory, a request to execute the program, the request including the base memory address.

18. The method of claim 17 , wherein the request includes the interleave size.

19. The method of claim 18 , wherein the interleave size is specified by an indicator that is one of four values.

20. The method of claim 19 , wherein the four values respectively correspond to two-hundred fifty-six bytes, sixteen kilobytes, one megabyte, and sixty-four megabytes.

21. The method of claim 19 wherein the four values are integers between zero and three inclusive.

22. The method of claim 17 , wherein refusing execution of the memory request includes communicating a failure status to an entity that requested execution of the program.

23. The method of claim 13 , wherein the memory interleave size indicator is a bit mask.

24. The method of claim 23 , wherein determining that the memory request is outside the contiguous memory address range includes:

performing an exclusive OR (XOR) operation on the base memory address and a memory address of the memory request to produce a result; and

applying the bit mask to the result to cover lower bits of the result; and

evaluating uncovered bits of the result to find a non-zero bit, the memory request being within the contiguous memory address range when the uncovered bits of the result are all zero, and outside otherwise.

Continuity (2)
Continuation 17075073 · Oct 20, 2020
Related Publication 20220414004A1 · Dec 29, 2022