System and method for memory access
First Claim
1. A method of accessing memory, comprising:
- identifying an element, the element corresponding to a rendered atomic data item;
determining an element precision indicative of a size of the element;
identifying a unit of memory based on a memory location and a packed representation of a plurality of the elements relative to the memory location, the unit of memory resides in a region of memory such that each row of the width represents contiguous memory and each column represents a stride offset from a consecutive row of the column;
iteratively referencing a plurality of elements based on a position in the unit of memory, the position specified based on a coordinate of the element in the unit of memory independently of a memory location in which the element resides;
moving the referenced elements to a destination;
identifying a portion of the elements outside the region, the region defined by an origin designated by a grid position of an element; and
augmenting the elements in the identified portion.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory controller performs DMA operations on arbitrary sized elements unbounded by the word size of the host memory or processor, which performs operations based on an element that represents an atomic data unit such as a pixel. In this manner, a corresponding coding effort is not concerned with computing and locating word boundaries and accommodating unused bits of data conventionally used for accommodating word boundaries on pixel data for video rendering, for example. An element in memory corresponds to a rendered atomic data item, such as a pixel. The controller determines an element precision indicative of a size of the element, and identifies a unit of memory based on a memory location and a packed representation of a plurality of the elements relative to the memory location. The unit has a height and width, defining elements arranged in a grid, and an element position is based on coordinates.
-
Citations
20 Claims
-
1. A method of accessing memory, comprising:
-
identifying an element, the element corresponding to a rendered atomic data item; determining an element precision indicative of a size of the element; identifying a unit of memory based on a memory location and a packed representation of a plurality of the elements relative to the memory location, the unit of memory resides in a region of memory such that each row of the width represents contiguous memory and each column represents a stride offset from a consecutive row of the column; iteratively referencing a plurality of elements based on a position in the unit of memory, the position specified based on a coordinate of the element in the unit of memory independently of a memory location in which the element resides; moving the referenced elements to a destination; identifying a portion of the elements outside the region, the region defined by an origin designated by a grid position of an element; and augmenting the elements in the identified portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A direct memory access (DMA) controller, comprising:
-
a plurality of elements, each element corresponding to a rendered atomic data item, each element having an element precision indicative of a size of the element; a unit of memory, the unit of memory based on a memory location and a packed representation of a plurality of the elements relative to the memory location; the unit of memory having a height and width defined by coordinates for iteratively referencing a plurality of elements based on a position in the unit of memory, the position specified based on a coordinate of the element in the unit of memory independently of a memory location in which the element resides; at least one instruction for moving the referenced elements to a destination, the instruction configured for referencing an element when the precision of the element is different than a word size of a memory storing the unit of memory; and a command distributor configured to; identify a portion of the elements outside a region, the region defined by an origin designated by a grid position of an element; and augment the elements in the identified portion. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A computer program product having instructions encoded on a non-transitory computer readable storage medium that, when executed by a system, cause the system to:
-
identify an element, the element corresponding to a rendered atomic data item; determine an element precision indicative of a size of the element; identify a unit of memory based on a memory location and a packed representation of a plurality of the elements relative to the memory location, the unit of memory resides in a region of memory such that each row of the width represents contiguous memory and each column represents a stride offset from a consecutive row of the column; iteratively reference a plurality of elements based on a position in the unit of memory, the position specified based on a coordinate of the element in the unit of memory independently of a memory location in which the element resides; move the referenced elements to a destination; identify a portion of the elements outside the region, the region defined by an origin designated by a grid position of an element; and augment the elements in the identified portion. - View Dependent Claims (19, 20)
-
Specification