×

PC-based computing system having an integrated graphics subsystem supporting parallel graphics processing operations across a plurality of different graphics processing units (GPUS) from the same or different vendors, in a manner transparent to graphics applications

  • US 7,808,504 B2
  • Filed: 10/26/2007
  • Issued: 10/05/2010
  • Est. Priority Date: 01/28/2004
  • Status: Active Grant
First Claim
Patent Images

1. A PC-based computing system having an integrated graphics subsystem supporting parallel graphics processing operations across a plurality of different graphics processing units (GPUs) from same or different vendors, in a manner transparent to graphics applications, said PC-based computing system comprising:

  • system memory for storing software graphics applications, software drivers and graphics libraries;

    an operating system (OS), stored in said system memory;

    one or more graphics applications, stored in said system memory, for generating a stream of graphics commands and geometrical data supporting the representation of one or more 3D objects in a scene having 3D geometrical characteristics and the viewing of images of said one or more 3D objects in said scene during an interactive process carried out between said PC-based computing system and a user thereof;

    one or more graphics libraries, stored in said system memory, for storing data used to implement said stream of graphics commands and geometrical data;

    a central processing unit (CPU) on a motherboard for executing said OS, said graphics applications, and said graphics libraries;

    a CPU bus;

    a display surface for displaying said images by graphically displaying frames of pixel data;

    a graphics subsystem integrated within said PC-based computing system and supporting parallel graphics processing operations across a plurality of different graphics processing units (GPUs) supplied from the same or different vendor, and in a manner transparent to said one or more graphics applications, and wherein said graphics subsystem includes a graphics controller hub (GCH) chip located on said CPU bus, and having Multi-Pipeline Core Logic (MP-CL) circuitry including a routing unit and a control unit;

    wherein said plurality of different GPUs are interfaced with said GCH chip,wherein each said different GPU supports a GPU-driven pipeline core having a frame buffer (FB) for storing a fragment of pixel data, andwherein said GPU-driven pipeline cores are arranged in a parallel architecture and operated according to a parallelization mode of operation, so that said GPU-driven pipeline cores process data in a parallel manner, andwherein at least one of said GPU-driven pipeline cores includes a display interface interfacing with said display surface;

    a plurality of vendor-supplied software GPU drivers, stored in said system memory, for said plurality of different GPUs;

    wherein each said vendor-supplied GPU driver (i) allows the GPU-driven pipeline core and said GPU to interact with said OS and said graphic libraries, and (ii) controls said GPU during the running of said graphics application; and

    a plurality of software multi-pipe drivers, stored in said system memory, and including (i) a first software module for profiling and analyzing said graphics application, including analyzing incoming commands, and collecting and analyzing parameters including performance data selected from the group consisting of memory speed, memory usage in bytes, total pixels rendered, geometric data entering rendering, frame rate, workload of each GPU-driven pipeline core, load balance among said GPU-driven pipeline cores, volumes of transferred data, textures count, and depth complexity, and (ii) a second software module for controlling said parallelization mode of operation;

    wherein said control unit accepts commands from said software multi-pipe drivers, over said CPU bus, and controls components within said GCH chip, including said routing unit;

    wherein said routing unit feeds back performance data to said software multi-pipe drivers, for balancing the data load among said GPU-driven pipeline cores during said parallelization mode of operation;

    wherein, for each image of said 3D object to be generated and displayed on said display surface, the following operations are performed;

    (i) said routing unit routes said stream of graphic commands and geometrical data, or a portion thereof, from said CPU to one or more of said GPU-driven pipeline cores,(ii) one or more of said GPU-driven pipeline cores process said stream of graphic commands and geometrical data, or a portion thereof, during the generation of each said frame, while operating in said parallelization mode, so as to generate pixel data corresponding to at least a portion of said image, and(iii) said routing unit routes pixel data output from one or more of said GPU-driven pipeline cores during the composition of each frame of pixel data, corresponding to a final image, for display on said display surface.

View all claims
  • 4 Assignments
Timeline View
Assignment View
    ×
    ×