IP Library Granted Patent US 9,740,411
Granted Patent B2
US 9,740,411 · App. 14/523,039 · Granted Aug 22, 2017

Configuring circuitry with memory access constraints for a program

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 9,740,411
App. No.
14/523,039
Granted
Aug 22, 2017
Kind
B2
Abstract

Techniques are disclosed relating to configuring an interlock memory system. In one embodiment, a method includes determining a sequence of memory access requests for a program and generating information specifying memory access constraints based on the sequence of memory accesses, where the information is usable to avoid memory access hazards for the sequence of memory accesses. In this embodiment, the method further includes configuring first circuitry using the information, where the first circuitry is included in or coupled to a memory. In this embodiment, after the configuring, the first circuitry is operable to perform memory access requests to the memory corresponding to the sequence of memory accesses while avoiding the memory access hazards, without receiving other information indicating the memory access hazards.

Claims (47)

1. A method, comprising:

determining, by a computing system, a sequence of memory accesses for a program;

generating, by the computing system, information specifying memory access constraints based on the sequence of memory accesses, wherein the information is usable to avoid memory access hazards for the sequence of memory accesses, wherein the generating is performed during compilation of the program; and

configuring, by the computing system, first circuitry using the information, wherein the first circuitry is included in or coupled to a memory, wherein after said configuring the first circuitry is operable to:

receive the sequence of memory accesses based on execution of the program, wherein a processor executing the program sends the sequence of memory accesses without waiting for resolution of memory access hazards; and

perform memory access requests to the memory corresponding to the received sequence of memory accesses while avoiding the memory access hazards, wherein the first circuitry is configured to avoid the memory access hazards without receiving other information indicating the memory access hazards.

2. The method of claim 1 , wherein the sequence of memory accesses includes read, modify, and write operations for locations indicated by different rows of a sparse matrix, wherein read, modify, and write operations to a location for a first row are to be completed prior to a read operation to the location for a second row.

3. The method of claim 1 , wherein the sequence of memory accesses is based on a low-density parity-check (LDPC) matrix.

4. The method of claim 3 , wherein the computing system is a mobile device, the method further comprising:

receiving, by the mobile device, an updated LDPC matrix, wherein the determining, generating, and configuring are performed based on the updated LDPC matrix.

5. The method of claim 4 , further comprising:

generating the program based on the LDPC matrix; and

decoding incoming wireless transmissions using the program.

6. The method of claim 1 , further comprising:

configuring the first circuitry with multiple sets of memory access constraints corresponding to different programs.

7. The method of claim 1 , wherein the configuring is performed using one or more programmable hardware elements.

8. The method of claim 1 , wherein the configuring is performed by transferring the information to a table.

9. The method of claim 1 , wherein the generating is performed based on partially executing at least a portion of the program.

10. The method of claim 1 , wherein the memory access constraints indicate one or more of:

a number of read operations that must occur prior to performance of a write operation;

a number of write operations that must occur prior to performance of a read operation; or

a token value for a particular memory access operation in the sequence of memory accesses, wherein the token value indicates a number of subsequent read or write operations to allow based on performance of the particular memory access operation.

11. A system, comprising:

one or more processors; and

one or more memories having program instructions stored thereon that are executable by the one or more processors to cause the system to perform operations comprising:

determining a sequence of memory accesses for a program;

generating information specifying memory access constraints based on the sequence of memory accesses, wherein the memory access constraints are usable to avoid memory access hazards for the sequence of memory accesses, wherein the generating is performed during compilation of the program; and

configuring first circuitry using the information, wherein the first circuitry is included in or coupled to a memory, wherein after said configuring the first circuitry is operable to:

receive the sequence of memory accesses based on execution of the program, wherein a processor executing the program sends the sequence of memory accesses without waiting for resolution of memory access hazards; and

perform memory access requests to the memory corresponding to the sequence of memory accesses while avoiding the memory access hazards, wherein the first circuitry is configured to avoid the memory access hazards without receiving other information indicating the memory access hazards.

12. The system of claim 11 , wherein the sequence of memory accesses includes read, modify, and write operations for locations indicated by different rows of a sparse matrix, wherein read, modify, and write operations to a location for a first row are to be completed prior to a read operation to the location for a second row.

13. The system of claim 11 , wherein the system is a mobile device, wherein the sequence of memory accesses is for a low-density parity-check matrix for wireless communications of the mobile device, wherein the operations further comprise:

receiving, by the mobile device, an updated LDPC matrix, wherein the determining, generating, and configuring are performed based on the updated LDPC matrix.

14. The system of claim 11 , further comprising:

one or more programmable hardware elements programmable circuitry, wherein the configuring is performed using the one or more programmable hardware elements.

15. The system of claim 11 , wherein the generating is performed by partially executing at least a portion of the program.

16. A non-transitory computer-readable medium having instructions stored thereon that are executable by a computing device to perform operations comprising:

determining a sequence of memory accesses for a program;

generating information specifying memory access constraints based on the sequence of memory accesses, wherein the memory access constraints are usable to avoid memory access hazards for the sequence of memory accesses, wherein the generating is performed during compilation of the program; and

configuring first circuitry using the information, wherein the first circuitry is included in or coupled to a memory, wherein after said configuring the first circuitry is operable to:

receive the sequence of memory accesses based on execution of the program, wherein a processor executing the program sends the sequence of memory accesses without waiting for resolution of memory access hazards; and

perform memory access requests to the memory corresponding to the sequence of memory accesses while avoiding the memory access hazards, wherein the first circuitry is configured to avoid the memory access hazards without receiving other information indicating the memory access hazards.

17. The non-transitory computer-readable medium of claim 16 , wherein the determining is performed by compiling an input program that comprises the sequence of memory accesses, wherein the compiling includes executing portions of the input program to determine the sequence of memory accesses and the memory access constraints.

18. The non-transitory computer-readable medium of claim 16 , wherein the memory access constraints indicate one or more of:

a number of read operations that must occur prior to performance of a write operation;

a number of write operations that must occur prior to performance of a read operation; or

a token value for a particular memory access operation in the sequence of memory accesses, wherein the token value indicates a number of subsequent read or write operations to allow based on performance of the particular memory access operation.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2014
From: LY, TAI A.; MHASKE, SWAPNIL D.; KEE, HOJIN; ARNESEN, ADAM T.; ULIANA, DAVID C.; PETERSEN, NEWTON G.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 034028/0934 →