IP Library Granted Patent US 8,332,832
Granted Patent B2
US 8,332,832 · App. 11/421,399 · Granted Dec 11, 2012

Dynamic arrays and overlays with bounds policies

Assignee: Micron Technology, Inc.
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 8,332,832
App. No.
11/421,399
Granted
Dec 11, 2012
Kind
B2
Abstract

Systems and methods are provided for writing code to access data arrays. One aspect provides a method of accessing a memory array. Data is provided within a one-dimensional array of allocated memory. A dimensional dynamic overlay is declared from within a block of statements, and the declaration initializes various attributes within an array attribute storage object. The data is accessed from within the block of statements as a dimensional indexed array using the array attribute storage object. Another aspect provides a method of creating and accessing a dimensional dynamic array. A dimensional dynamic array is declared from within a block of statements, and memory storage for the array is dynamically allocated. A dynamic overlay storage object is also provided and its attributes are initialized from the dynamic array declaration. The data is accessed as a dimensional indexed array from within the block of statements using the array attribute storage object.

Claims (19)

1. A machine-implemented method, comprising:

representing a one-dimensional array within contiguous memory locations of a program having a first boundary policy custom defined and referenced as an attribute to the one-dimensional array defining behavior of the program on an out-of-bounds access attempt of the one-dimensional array during execution of the program; and

simultaneously permitting and representing an overlay on the contiguous memory locations via expressions that are dynamically evaluated at run time for the program, wherein the overlay provides a two or more dimensional view of the one-dimensional array using the same contiguous memory locations, the contiguous memory locations remains persistent for both the one-dimensional array and the overlay and the overlay including a second boundary policy defined and referenced as a second attribute to the overlay defining different behavior of the program on an out-of-bounds access attempt of the overlay during execution of the program.

2. The method of claim 1 , wherein simultaneously permitting further includes permitting the overlay within a scope of a subroutine of the program.

3. The method of claim 2 further comprising, removing access to the overlay from being accessible within the program when the overlay is referenced outside the scope of the subroutine.

4. The method of claim 1 further comprising, providing a handle to access and reference the contiguous memory locations for the overlay within the program.

5. The method of claim 4 further comprising, providing a different handle to access and reference the contiguous memory locations for the one-dimensional array within the program.

6. A machine-implemented method, comprising:

receiving a multi-dimensional reference to a multi-dimensional overlay of a one-dimensional array within a subroutine of a program during execution of the subroutine based on dynamic evaluation of an expression that defines the overlay, the multi-dimensional overlay having a first boundary policy that custom defines behavior of the subroutine during execution on an out-of-bounds access attempt and the one-dimensional array having a second boundary policy that custom defines behavior of the program during execution on an out-of-bounds access attempt, the first boundary policy and the second boundary policy carried at attributes with the multi-dimensional overlay and the one-dimensional overlay, respectively;

accessing same memory locations associated with the one-dimensional array in response to the multi-dimensional reference, the memory locations remain persistent for both the multi-dimensional overlay and the one-dimensional array; and

removing the multi-dimensional reference when context falls outside a scope of the subroutine.

7. The method of claim 6 further comprising, providing array information for the multi-dimensional overlay in response to a request for the multi-dimensional overlay including at least one of array height information, array width information, and array stride information.

8. The method of claim 6 further comprising, detecting the multi-dimensional reference as an attempt to access memory locations outside the bounds of the one-dimensional array and processing a user-defined exception routine in response to that attempt.

9. The method of claim 6 further comprising, obtaining dynamic attributes associated with the multi-dimensional overlay in response to receiving the multi-dimensional reference.

10. A machine-implemented method, comprising:

managing data in contiguous memory locations that is referenced by a first reference associated with a one-dimensional array; and

permitting a second reference to access the data from the same contiguous memory locations, wherein the second reference is associated with a two or more dimensional overlay view of the one-dimensional array defined via an expression that is dynamically evaluated to defile the overlay, and the contiguous memory locations remain persistent for both the one-dimensional array and the second reference using the two or more dimensional overlay, the one-dimensional array having a first boundary policy custom defining out-of-bounds processing carried as a first attribute with the one-dimensional array and the tow or more dimensional overlay having a second boundary policy custom defining out-of-bounds processing carried as a second attribute with the two or more dimensional array.

11. The method of claim 10 further comprising, providing array information for the two or more dimensional overlay.

12. The method of claim 10 further comprising, restricting use of the second reference to a context associated with a subroutine.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2014
From: SLAVIN, KEITH R.; HU, SHANE C.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 033526/0484 →
Continuity (2)
Continuation 09901806 · Jul 10, 2001
Related Publication 20060221747A1 · Oct 5, 2006