← Back to Patent Explorer
US5671401A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus for efficiently accessing graphic data for rendering on a display

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1995-05-08
•
Granted: 1997-09-23
•
Expires: 2015-05-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An electronic logic and computer implemented apparatus and method for accessing graphic geometric data within a computer display system utilizing an SIMD environment. The present invention spreads the vertex data structure of geometric primitives across multiple memories allowing much higher bandwidth access into the data structure for greater performance. The present invention eliminates branches from the processing of triangle and quadrilateral primitives allowing full utilization of SIMD processors. The present invention utilizes an indirection circuit and software to control the order of coupling of these memory units to the inputs of specialized graphic processors. Therefore, the indirection mechanism allows a geometric data structure to be spread across multiple memories in a multi-memory/multi-bus environment with indirection across these multiple busses and memories. The present invention provides full utilization of a SIMD processor processing triangles or quadrilaterals and performs splitting of quads and ordering of triangle vertices in hardware.

Inventors

  • 👤 Chandlee Bryant Harrell

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 15:05
CPC Classifications
G; G06; G06T; G06T15/00; G06T15/50; G06T15/80

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 238 words
An apparatus for rendering a geometric primitive composed of data associated with a plurality of vertices, said apparatus comprising: a first circuit determining slopes based on said data associated with said plurality of vertices of said geometric primitive, each slope associated with an edge of said geometric primitive, said first circuit processing said data associated with said plurality of vertices in a predetermined vertex order, said first circuit coupled to a plurality of signal lines for receiving said data; a plurality of memories for storing said data associated with said plurality of vertices, each memory for storing data associated with a separate vertex of said geometric primitive and each memory having a separate output line; multiplexing circuitry coupled to said plurality of memories and coupled to said first circuit for intercoupling an output line of each memory to an individual signal line of said plurality of signal lines coupled to said first circuit, wherein said multiplexing circuitry simultaneously supplies said data associated with said plurality of vertices from said plurality of memories to said first circuit in said predetermined vertex order; a second circuit generating comparison results of screen coordinate values between pairs of vertices of said geometric primitive; and a third circuit ordering said plurality of vertices of said geometric primitive according to said predetermined vertex order, said third circuit coupled to receive said comparison results from said second circuit and coupled to control said multiplexing circuitry.
Claim 2
Independent Claim 238 words
An apparatus for rendering a geometric primitive composed of data associated with a plurality of vertices, said apparatus comprising: a first circuit determining slopes based on said data associated with said plurality of vertices of said geometric primitive, each slope associated with an edge of said geometric primitive, said first circuit processing said data associated with said plurality of vertices in a predetermined vertex order, said first circuit coupled to a plurality of signal lines for receiving said data; a plurality of memories for storing said data associated with said plurality of vertices, each memory for storing data associated with a separate vertex of said geometric primitive and each memory having a separate output line; multiplexing circuitry coupled to said plurality of memories and coupled to said first circuit for intercoupling an output line of each memory to an individual signal line of said plurality of signal lines coupled to said first circuit, wherein said multiplexing circuitry simultaneously supplies said data associated with said plurality of vertices from said plurality of memories to said first circuit in said predetermined vertex order; a second circuit generating comparison results of screen coordinate values between pairs of vertices of said geometric primitive; and a third circuit ordering said plurality of vertices of said geometric primitive according to said predetermined vertex order, said third circuit coupled to receive said comparison results from said second circuit and coupled to control said multiplexing circuitry.
Claim 3
Dependent Claim 51 words
An apparatus for rendering a geometric primitive as described in claim 1 further comprising: a scan conversion unit generating a pixel pattern of said geometric primitive based on said slopes generated for each edge of said geometric primitive by said first circuit, said scan conversion unit coupled to said first circuit.
Claim 4
Dependent Claim 22 words
An apparatus for rendering a geometric primitive as described in claim 1 wherein said geometric primitive is a triangle having three vertices.
Claim 5
Dependent Claim 32 words
An apparatus for rendering a geometric primitive as described in claim 3 wherein said predetermined vertex order is based on a screen coordinate value associated with each vertex of said three vertices.
Claim 6
Dependent Claim 38 words
An apparatus for rendering a geometric primitive as described in claim 4 wherein said third circuit further comprises a pointer indicating said predetermined vertex order to said multiplexing circuitry, said pointer communicatively coupled to control said multiplexing circuitry.
Claim 7
Dependent Claim 27 words
An apparatus for rendering a geometric primitive as described in claim 4 wherein said screen coordinate value is a Y-axis coordinate value of a computer display screen.
Claim 8
Dependent Claim 56 words
An apparatus for rendering a geometric primitive as described in claim 3 wherein said predetermined vertex order is based on a screen coordinate value associated with each vertex of said three vertices and wherein each signal line coupled to said first circuit corresponds to an individual vertex of said plurality of vertices of said triangle primitive.
Claim 9
Dependent Claim 22 words
An apparatus for rendering a geometric primitive as described in claim 1 wherein said geometric primitive is a quadrilateral having four vertices.
Claim 10
Dependent Claim 128 words
An apparatus for rendering a geometric primitive as described in claim 8 wherein said predetermined vertex order is based on a screen coordinate value associated with each vertex of said four vertices and wherein: said second circuit is also for generating a comparison result between a first dot product of surface normals associated with a first vertex and a third vertex and a second dot product of surface normals associated with a second vertex and a fourth vertex; and wherein said third circuit is also responsive to said second circuit and is also for splitting said quadrilateral primitive into two triangle subprimitives according to said comparison result, wherein said multiplexing circuitry is also for supplying said triangle subprimitives to said first circuit according to said predetermined vertex order.
Claim 11
Dependent Claim 212 words
An apparatus for rendering a geometric primitive as described in claim 9 wherein said predetermined vertex order is based on a screen coordinate value associated with each vertex of said four vertices and further comprising (a) a select indicator for selecting a first triangle subprimitive of said two triangle subprimitives; (b) wherein provided said select indicator selects a first triangle subprimitive: (i) said second circuit generates comparison results of screen coordinate values between pairs of vertices of said first triangle subprimitive; (ii) said third circuit orders said vertices of said first triangle subprimitive according to said comparison results of screen coordinate values between pairs of vertices of said first triangle subprimitive; and (iii) a pointer indicates said predetermined vertex order to control said multiplexing circuitry based on said first triangle; and (c) wherein provided said select indicator selects a second triangle subprimitive: (i) said second circuit generates comparison results of screen coordinate values between pairs of vertices of said second triangle subprimitive; (ii) said third circuit orders said vertices of said second triangle subprimitive according to said comparison results of screen coordinate values between pairs of vertices of said second triangle subprimitive; and (iii) said pointer indicates said predetermined vertex order to control said multiplexing circuitry based on said second triangle subprimitive.
Claim 12
Dependent Claim 205 words
In a computer controlled graphics system including a display displaying computer generated images and a memory unit storing information representing geometric primitives, an apparatus for rendering said geometric primitives onto said display, said apparatus comprising: a plurality of processors coupled to a common instruction bus according to a SIMD architecture, each processor simultaneously processing a separate geometric primitive, each processor further comprising: a plurality of memory units for storing information representing said geometric primitive wherein information associated with each vertex of said geometric primitive is stored in a separate memory unit; a mathematical processing circuit processing said information representing said geometric primitive in a predetermined vertex ordering to provide display information regarding said geometric primitive; multiplexing circuitry coupled to said plurality of memory units and coupled to said mathematical processing circuit, said multiplexing circuitry simultaneously providing said information representing said geometric primitive from said plurality of memory units to said mathematical unit in said predetermined vertex ordering; and vertex order determining circuitry determining a vertex ordering of said geometric primitive and generating output pointers indicative of said vertex ordering, said vertex order determining circuitry coupled to receive comparison signals indicating results of comparisons of parameters associated with pairs of said vertices of said geometric primitive.
Claim 13
Dependent Claim 205 words
In a computer controlled graphics system including a display displaying computer generated images and a memory unit storing information representing geometric primitives, an apparatus for rendering said geometric primitives onto said display, said apparatus comprising: a plurality of processors coupled to a common instruction bus according to a SIMD architecture, each processor simultaneously processing a separate geometric primitive, each processor further comprising: a plurality of memory units for storing information representing said geometric primitive wherein information associated with each vertex of said geometric primitive is stored in a separate memory unit; a mathematical processing circuit processing said information representing said geometric primitive in a predetermined vertex ordering to provide display information regarding said geometric primitive; multiplexing circuitry coupled to said plurality of memory units and coupled to said mathematical processing circuit, said multiplexing circuitry simultaneously providing said information representing said geometric primitive from said plurality of memory units to said mathematical unit in said predetermined vertex ordering; and vertex order determining circuitry determining a vertex ordering of said geometric primitive and generating output pointers indicative of said vertex ordering, said vertex order determining circuitry coupled to receive comparison signals indicating results of comparisons of parameters associated with pairs of said vertices of said geometric primitive.
Claim 14
Dependent Claim 52 words
An apparatus as described in claim 11 further comprising a scan conversion unit accessing said display information regarding said geometric primitive for said each processor and generating therefrom a pixel pattern representative of said geometric primitive for each processor, said scan conversion unit coupled to each processor and coupled to said display.
Claim 15
Dependent Claim 17 words
An apparatus as described in claim 11 wherein said plurality of processors comprise at least four processors.
Claim 16
Dependent Claim 28 words
An apparatus as described in claim 11 wherein said comparisons of parameters associated with said vertices comprise comparisons of screen coordinate values associated with each of said vertices.
Claim 17
Dependent Claim 96 words
An apparatus as described in claim 11 further comprising: geometric primitive splitting signal for splitting a geometric primitive into first and second geometric primitives and for indicating a split direction; and a combination circuit for generating select signals to instruct said multiplexing circuitry to couple said plurality of memory units to said mathematical processing circuit to realize said predetermined vertex ordering for said first geometric primitive or said second geometric primitive based on said vertex ordering and said split direction, said combination circuit communicatively coupled to said multiplexing circuitry and to said vertex order determining circuitry.
Claim 18
Dependent Claim 17 words
An apparatus as described in claim 15 wherein said first and said second geometric primitive are triangles.
Claim 19
Dependent Claim 34 words
An apparatus as described in claim 15 wherein said vertex order determining circuitry operates on a triangle primitive and said geometric primitive splitting signal operates on a quadrilateral primitive to form two triangle primitives.
Claim 20
Dependent Claim 281 words
In a computer controlled graphics system including a display displaying computer generated images and a memory unit storing information representing geometric primitives, an apparatus for rendering said geometric primitives onto said display, said apparatus comprising: a plurality of processors coupled to a common instruction bus according to a SIMD architecture, each processor simultaneously processing a separate geometric primitive, each processor further comprising: a first circuit determining slopes based on said information associated with said plurality of vertices of said geometric primitive, each slope associated with an edge of said geometric primitive, said first circuit processing said information associated with said plurality of vertices in a predetermined vertex order, said first circuit coupled to a plurality of signal lines for receiving said information; a plurality of memories for storing said information associated with said plurality of vertices, each memory for storing information associated with a separate vertex of said geometric primitive and each memory having a separate output line; multiplexing circuitry coupled to said plurality of memories and coupled to said first circuit for intercoupling an output line of each memory to an individual signal line of said plurality of signal lines coupled to said first circuit wherein said multiplexing circuitry simultaneously supplies said information associated with said plurality of vertices from said plurality of memories to said first circuit in said predetermined vertex order; a second circuit generating comparison results of screen coordinate values between pairs of vertices of said geometric primitive; and a third circuit ordering said plurality of vertices of said geometric primitive according to said predetermined vertex order, said third circuit coupled to receive said comparison results from said second circuit and coupled to control said multiplexing circuitry.
Claim 21
Dependent Claim 281 words
In a computer controlled graphics system including a display displaying computer generated images and a memory unit storing information representing geometric primitives, an apparatus for rendering said geometric primitives onto said display, said apparatus comprising: a plurality of processors coupled to a common instruction bus according to a SIMD architecture, each processor simultaneously processing a separate geometric primitive, each processor further comprising: a first circuit determining slopes based on said information associated with said plurality of vertices of said geometric primitive, each slope associated with an edge of said geometric primitive, said first circuit processing said information associated with said plurality of vertices in a predetermined vertex order, said first circuit coupled to a plurality of signal lines for receiving said information; a plurality of memories for storing said information associated with said plurality of vertices, each memory for storing information associated with a separate vertex of said geometric primitive and each memory having a separate output line; multiplexing circuitry coupled to said plurality of memories and coupled to said first circuit for intercoupling an output line of each memory to an individual signal line of said plurality of signal lines coupled to said first circuit wherein said multiplexing circuitry simultaneously supplies said information associated with said plurality of vertices from said plurality of memories to said first circuit in said predetermined vertex order; a second circuit generating comparison results of screen coordinate values between pairs of vertices of said geometric primitive; and a third circuit ordering said plurality of vertices of said geometric primitive according to said predetermined vertex order, said third circuit coupled to receive said comparison results from said second circuit and coupled to control said multiplexing circuitry.
Claim 22
Dependent Claim 46 words
An apparatus as described in claim 18 further comprising: a scan conversion unit generating a pixel pattern of said geometric primitive based on said slopes generated for each edge of said geometric primitive by said first circuit, said scan conversion unit coupled to said first circuit.
Claim 23
Dependent Claim 27 words
An apparatus as described in claim 18 wherein said predetermined vertex order is based on a screen coordinate value associated with each vertex of said three vertices.
Claim 24
Dependent Claim 33 words
An apparatus as described in claim 18 wherein said third circuit further comprises a pointer indicating said predetermined vertex order to said multiplexing circuitry, said pointer communicatively coupled to control said multiplexing circuitry.
Claim 25
Dependent Claim 127 words
An apparatus for rendering a geometric primitive as described in claim 18 wherein said predetermined vertex order is based on a screen coordinate value associated with each vertex of four vertices and wherein: said second circuit is also for generating a comparison result between a first dot product of surface normals associated with a first vertex and a third vertex and a second dot product of surface normals associated with a second vertex and a fourth vertex; and wherein said third circuit is also responsive to said second circuit and is also for splitting a quadrilateral primitive into two triangle subprimitives according to said comparison result, wherein said multiplexing circuitry is also for supplying said triangle subprimitives to said first circuit according to said predetermined vertex order.

References Cited (Backward Citations)

US5070465A Cited
US4945500A Cited
US5129051A Cited
US5287436A Cited
US5457779A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-09-22 2001-03-24 2001-09-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-09-22 2005-03-24 2005-09-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-09-22 2009-03-24 2009-09-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag