Multi-Core 3D Graphics Rendering with Shared Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current tile-based three-dimensional (3D) rendering methods using a single core or the same number of cores as tiles result in suboptimal performance and resource utilization, leading to inefficient processing and high costs.

Innovation Solution

A system and method utilizing a multi-core processor with a configuration of dual cores, scratch pad memory, and shared memory, allowing data to be distributed and processed in predetermined modes such as VLIW and CGA, and employing double-buffering to prevent redundant processing and enhance efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single core or the same number of cores as tiles is used for rendering, then the device complexity is reduced, but the productivity and resource utilization are insufficient

Engineering Contradiction:
Improverendering performanceVSAvoidmulti-core processor configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The screen is divided into multiple tiles, and each tile is assigned to a specific core for independent rendering. This segmentation allows parallel processing across multiple cores, significantly improving rendering performance while maintaining manageable complexity through modular architecture

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The multi-core processor is designed with universal rendering capabilities where each core can handle multiple rendering tasks including vertex processing, fragment processing, and tile rendering. This multi-functionality maximizes resource utilization across all cores

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If data is processed without distribution across cores, then the device complexity is reduced, but redundant processing occurs and productivity decreases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata distribution mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Data is pre-distributed to appropriate cores before rendering begins. The system performs preliminary data preparation and allocation, ensuring each core receives the specific tile data it needs in advance, which eliminates redundant processing and improves processing efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Tile data is copied to the frame buffer memory associated with each core. This copying mechanism ensures that each core has local access to the data it needs without requiring other cores to provide it, preventing redundant data retrieval operations

Inventive Principle:
Principle #26Copying

3Productivity

If frame buffer memory is not shared between cores, then device complexity is reduced, but resource utilization and productivity are limited

Engineering Contradiction:
Improveresource utilizationVSAvoidshared memory architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Frame buffer memories from multiple cores are merged into a shared frame buffer memory that all cores can access. This merging allows efficient resource utilization where processed tiles can be transferred to the final frame buffer through the shared memory architecture, improving overall system productivity

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9007382B2System and method of rendering 3D graphics
Publication Date: 2015.04.14 SAMSUNG ELECTRONICS CO LTD
  • US9007382B2 patent drawing
  • US9007382B2 patent drawing
  • US9007382B2 patent drawing

AI summary

A system and method of rendering three-dimensional (3D) graphics. The system for rendering 3D graphics may include a plurality of cores including a scratch pad memory, a first memory to perform a control flow, a second memory for loop acceleration, and a shared memory to interpolate with the plurality of cores.