Computer Hardware Architecture and Data Structures for Packet Binning to Support Incoherent Ray Traversal
First Claim
Patent Images
1. Digital circuitry to create a database of objects in a scene for ray tracing comprising:
- a plurality of data arrays in a first memory, each data array corresponding to a cell comprising the scene, each data array operative to receive and store data for objects in the scene that are at least partially contained by the cell corresponding to said each data array;
a plurality of pointer packet registers, each pointer packet register corresponding to a cell comprising the scene and operative to receive and store pointers to areas of memory in a data packet memory separate from the first memory; and
control logic circuitry configured to control operation of the data arrays and pointer packet registers while the data for the objects are being stored in the data arrays, wherein the control logic circuitry;
(i) moves data from a given data array that is on-chip with respect to the digital circuitry into an area of memory in the data packet memory that is off-chip with respect to the digital circuitry when the given data array is in a full condition;
(ii) stores a pointer to the area of memory in the data packet memory into one of the pointer packet registers, wherein said one of the pointer packet registers and the given data array correspond to the same cell; and
(iii) moves data from a given pointer packet register that is on-chip with respect to the digital circuitry into a corresponding pointer packet memory that is off-chip with respect to the digital circuitry when the given pointer packet register is in a full condition,wherein the control logic circuitry is distributed among the data arrays and the pointer packet registers so that the data arrays operate independently of each other and the pointer packet registers operate independently of each other.
2 Assignments
0 Petitions
Accused Products
Abstract
A new hardware architecture defines an indexing and encoding method for accelerating incoherent ray traversal. Accelerating multiple ray traversal may be accomplished by organizing the rays for minimal movement of data, hiding latency due to external memory access, and performing adaptive binning. Rays may be binned into coarse grain and fine grain spatial bins, independent of direction.
9 Citations
23 Claims
-
1. Digital circuitry to create a database of objects in a scene for ray tracing comprising:
-
a plurality of data arrays in a first memory, each data array corresponding to a cell comprising the scene, each data array operative to receive and store data for objects in the scene that are at least partially contained by the cell corresponding to said each data array; a plurality of pointer packet registers, each pointer packet register corresponding to a cell comprising the scene and operative to receive and store pointers to areas of memory in a data packet memory separate from the first memory; and control logic circuitry configured to control operation of the data arrays and pointer packet registers while the data for the objects are being stored in the data arrays, wherein the control logic circuitry; (i) moves data from a given data array that is on-chip with respect to the digital circuitry into an area of memory in the data packet memory that is off-chip with respect to the digital circuitry when the given data array is in a full condition; (ii) stores a pointer to the area of memory in the data packet memory into one of the pointer packet registers, wherein said one of the pointer packet registers and the given data array correspond to the same cell; and (iii) moves data from a given pointer packet register that is on-chip with respect to the digital circuitry into a corresponding pointer packet memory that is off-chip with respect to the digital circuitry when the given pointer packet register is in a full condition, wherein the control logic circuitry is distributed among the data arrays and the pointer packet registers so that the data arrays operate independently of each other and the pointer packet registers operate independently of each other. - View Dependent Claims (2, 3, 4, 5, 6, 8, 9, 20, 21)
-
-
7. (canceled)
-
10. Digital circuitry for storing data representative of objects in a scene, the digital circuitry comprising:
-
a plurality of data arrays in a first memory, each data array corresponding to a cell comprising the scene, each data array operative to receive and store data for objects in the scene that are at least partially contained by the cell corresponding to said each data array; a plurality of pointer packet registers, each pointer packet register corresponding to a cell comprising the scene and operative to receive and store pointers to areas of memory in a data packet memory separate from the first memory; and digital circuit means for controlling operation of the data arrays and pointer packet registers while the data for the objects are being stored in the data arrays, including; (i) moving data from a given data array that is on-chip with respect to the digital circuitry into an area of memory in the data packet memory that is off-chip with respect to the digital circuitry when the given data array is in a full condition; (ii) storing a pointer to the area of memory in the data packet memory into one of the pointer packet registers, wherein said one of the pointer packet registers and the given data array correspond to the same cell; and (iii) moving data from a given pointer packet register that is on-chip with respect to the digital circuitry into a pointer packet memory that is off-chip with respect to the digital circuitry when the given pointer packet register is in a full condition, wherein the digital circuitry means comprises control logic circuitry distributed among the data arrays and the pointer packet registers so that the data arrays operate independently of each other and the pointer packet registers operate independently of each other. - View Dependent Claims (11, 12, 22)
-
-
13. (canceled)
-
14. A method in a ray tracing system for creating a database of objects in a scene comprising:
-
receiving data for objects comprising a scene; storing the data among a plurality of data arrays in a first memory, each data array corresponding to a cell comprising the scene, each data array operative to receive and store data for objects in the scene that are at least partially contained by the cell corresponding to said each data array; (i) when a given data array that is on-chip with respect to digital circuitry containing the given data array is in a full condition, then; logic circuitry causing data to be moved from the given data array into a data packet memory separate from the first memory that is off-chip with respect to the digital circuitry; the logic circuitry resetting the given data array to accept new data; and the logic circuitry storing a pointer to the data packet memory into a pointer packet register, from among a plurality of pointer packet registers, that corresponds to the same cell as the given data array; and (ii) when a given pointer packet register that is on-chip with respect to the digital circuitry is in a full condition, then; the logic circuitry causing data to be moved from the given pointer packet register into a corresponding pointer packet memory that is off-chip with respect to the digital circuitry; and the logic circuitry resetting the given pointer packet register to accept new data, wherein the logic circuitry is distributed among the data packet memory and the pointer packet registers so that the data arrays operate independently of each other and the pointer packet registers operate independently of each other. - View Dependent Claims (15, 16, 17, 18, 19, 23)
-
Specification