Parallel array architecture for a graphics processor

التفاصيل البيبلوغرافية
العنوان: Parallel array architecture for a graphics processor
Patent Number: 8,730,249
تاريخ النشر: May 20, 2014
Appl. No: 13/269462
Application Filed: October 07, 2011
مستخلص: A parallel array architecture for a graphics processor includes a multithreaded core array including a plurality of processing clusters, each processing cluster including at least one processing core operable to execute a pixel shader program that generates pixel data from coverage data; a rasterizer configured to generate coverage data for each of a plurality of pixels; and pixel distribution logic configured to deliver the coverage data from the rasterizer to one of the processing clusters in the multithreaded core array. A crossbar coupled to each of the processing clusters is configured to deliver pixel data from the processing clusters to a frame buffer having a plurality of partitions.
Inventors: Danskin, John M. (Providence, RI, US); Montrym, John S. (Los Altos Hills, CA, US); Lindholm, John Erik (Saratoga, CA, US); Molnar, Steven E. (Chapel Hill, NC, US); French, Mark (Raleigh, NC, US)
Assignees: NVIDIA Corporation (Santa Clara, CA, US)
Claim: 1. A graphics processor comprising: a multithreaded core array including a plurality of processing clusters; and a crossbar configured to connect the plurality of processing clusters to a frame buffer configured to store data associated with pixels of an image, the frame buffer being partitioned into a plurality of partitions, wherein each processing cluster includes: at least one processing core operable to execute programs; a pixel module configured to receive coverage data and to direct at least one of the processing cores to execute a pixel shader program on the received coverage data to generate pixel values; and a raster operations unit configured to receive the pixel values generated by the at least one processing core included in the same processing cluster as the raster operations unit and to update the pixel data stored in the frame buffer based on the received pixel values, and wherein the raster operations unit of each processing cluster is coupled to the crossbar such that every partition of the frame buffer is accessible to every one of the raster operations units.
Claim: 2. The graphics processor of claim 1 wherein the number of partitions of the frame buffer is different from the number of raster operations units.
Claim: 3. The graphics processor of claim 1 wherein the number of partitions of the frame buffer is equal to the number of raster operations units.
Claim: 4. The graphics processor of claim 1 wherein each processing cluster further includes a geometry module configured to receive vertex data and to direct at least one of the processing cores to execute at least one of a vertex shader program or a geometry shader program on the received vertex data.
Claim: 5. A graphics processor comprising: a multithreaded core array including a plurality of processing clusters; a rasterizer configured to generate coverage data for each of a plurality of pixels; pixel distribution logic configured to deliver a portion of the coverage data from the rasterizer to one of the processing clusters in the multithreaded core array; and a crossbar connecting the plurality of processing clusters to a frame buffer configured to store pixels of an image, the frame buffer being partitioned into a plurality of partitions, wherein each processing cluster includes: at least one processing core operable to execute program instructions; a pixel module configured to receive a portion of the coverage data from the rasterizer and to direct at least one of the processing cores to execute a pixel shader program on the received coverage data to generate pixel values; and a raster operations unit configured to receive the pixel values generated by the at least one processing core included in the same processing cluster as the raster operations unit and to combine the received pixel values with pixels of an image in the frame buffer, and wherein the raster operations unit of each processing cluster is coupled to the crossbar such that every partition of the frame buffer is accessible to every one of the raster operations units.
Claim: 6. The graphics processor of claim 5 wherein the number of partitions of the frame buffer is different from the number of raster operations units.
Claim: 7. The graphics processor of claim 5 wherein the number of partitions of the frame buffer is equal to the number of raster operations units.
Claim: 8. The graphics processor of claim 5 wherein each processing cluster further includes a geometry module configured to receive vertex data and to direct at least one of the processing cores to execute at least one of a vertex shader program or a geometry shader program on the received vertex data.
Claim: 9. The graphics processor of claim 5 wherein the image area is divided into a plurality of tiles, each tile being assigned to one of the processing clusters, and wherein the pixel distribution logic selects the one of the processing clusters based on a determination as to which of the plurality of tiles includes the first pixel.
Claim: 10. The graphics processor of claim 9 wherein at least two of the plurality of tiles are assigned to each of the processing clusters, wherein for each processing cluster, the tiles assigned thereto are not contiguous with each other.
Claim: 11. A graphics processor comprising: a multithreaded core array including a plurality of processing clusters; and a crossbar configured to connect the plurality of processing clusters to a plurality of frame buffers, each of the plurality of frame buffers being configured to store data for a different attribute associated with pixels of an image, each of the plurality of frame buffers being partitioned into a plurality of partitions, wherein each processing cluster includes: at least one processing core operable to execute programs; a pixel module configured to receive coverage data and to direct at least one of the processing cores to execute a pixel shader program on the received coverage data to generate pixel values; and a raster operations unit configured to receive the pixel values generated by the at least one processing core included in the same processing cluster as the raster operations unit and to update the pixel data stored in the one or more frame buffers based on the received pixel values, and wherein the raster operations unit of each processing cluster is coupled to the crossbar such that every partition of each one of the frame buffers is accessible to every one of the raster operations units.
Claim: 12. The graphics processor of claim 11 wherein the plurality of frame buffers includes a first frame buffer configured to store Z data for the pixels of the image and a second frame buffer configured to store color data for the pixels of the image.
Claim: 13. The graphics processor of claim 12 wherein the first frame buffer is partitioned into a first number of partitions and the second frame buffer is partitioned into a second number of partitions, wherein the first number and the second number are different.
Claim: 14. The graphics processor of claim 12 wherein the first frame buffer and the second frame buffer are each partitioned into a same number of partitions.
Claim: 15. The graphics processor of claim 11 wherein each processing cluster further includes a geometry module configured to receive vertex data and to direct at least one of the processing cores to execute at least one of a vertex shader program or a geometry shader program on the received vertex data.
Claim: 16. The graphics processor of claim 11 wherein the plurality of frame buffers includes a first frame buffer partitioned into a first number of partitions and a second frame buffer partitioned into a second number of partitions, wherein the first number and the second number are different.
Claim: 17. The graphics processor of claim 11 wherein the plurality of frame buffers includes a first frame buffer a second frame buffer and wherein the first frame buffer and the second frame buffer are each partitioned into a same number of partitions.
Current U.S. Class: 345/505
Patent References Cited: 5408606 April 1995 Eckart
5794016 August 1998 Kelleher
5857109 January 1999 Taylor
6181355 January 2001 Brethour et al.
6853380 February 2005 Alcorn
6924807 August 2005 Ebihara et al.
7161603 January 2007 Saito et al.
7233331 June 2007 Kato
7570267 August 2009 Patel et al.
2002/0174318 November 2002 Stuttard et al.
2003/0234749 December 2003 Marks et al.
2004/0257607 December 2004 Gupta et al.
2005/0093873 May 2005 Paltashev et al.
2005/0219253 October 2005 Piazza et al.
2006/0161757 July 2006 Piazza
2008/0198167 August 2008 Bakalash et al.
1551048 December 2004
1702692 November 2005








Other References: Molnar et al. “A Sorting Classification of Parallel Rendering”, 1994, ACM SIGGRAPH Asia, IEEE Computer Graphics and Applications, vol. 14, No. 4, pp. 23-32. cited by applicant
Samanta et al. “Hybrid Sort-First and Sort-Last Parallel Rendering with a Cluster of PCs”, 2000, ACM SIGGRAPH, pp. 97-108, 2000. cited by applicant
Intellectual Property Office of Singapore (IPOS) written opinion for IPOS patent application SG200804652-6 dated Dec. 22, 2009. cited by applicant
German Patent Office (DPMA) office action for DPMA patent application DE11-2006-003473.1-53 dated Sep. 9, 2009. cited by applicant
International Search Report PCT/US06/62258 dated May 30, 2008. cited by applicant
Austrian Patent Office Written Opinion, Application No. 200804652-6 dated Jan. 22, 2009, 4 pages. cited by applicant
China State Intellectual Property Office office action for patent application CN200680047739.1 dated Sep. 11, 2009. cited by applicant
China State Intellectual Property Office office action for patent application CN200680047739.1 dated Jul. 12, 2010. cited by applicant
United Kingdom Intellectual Property Office office action for patent application GB0810493.7 dated Jul. 26, 2010. cited by applicant
Assistant Examiner: Ricks, Donna J
Primary Examiner: McDowell, Jr., Maurice L
Attorney, Agent or Firm: Kilpatrick Townsend & Stockton LLP
رقم الانضمام: edspgr.08730249
قاعدة البيانات: USPTO Patent Grants