Software Texture Unit for Cell Processor Graphics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems, particularly those using graphics cards, face inefficiencies due to slower clock rates and limited memory capacity, making them less effective for handling large textures and requiring extensive hardware resources, whereas cell processors with parallel processing capabilities are underutilized for graphics rendering tasks.

Innovation Solution

Implementing a software-based texture unit that utilizes cell processors to fetch and blend image pixels from various mipmap levels, leveraging the co-processor's local memory and DMA manager to perform texture mapping operations without specialized hardware, allowing for efficient caching and memory management of texture data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If graphics cards with specialized hardware are used for texture processing, then texture mapping can be performed, but the clock rate is slower and memory capacity is limited, reducing processing efficiency

Engineering Contradiction:
Improvetexture processing efficiencyVSAvoidclock rate
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent replaces specialized graphics card hardware with a software-based texture unit running on a cell processor. This substitution leverages the cell processor's higher clock rate and parallel processing capabilities to achieve faster texture processing compared to traditional graphics cards with dedicated hardware.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The cell processor is used for both general-purpose computing and specialized graphics rendering tasks. The software-based texture unit enables the cell processor to perform texture mapping operations that were previously the domain of dedicated graphics hardware, maximizing the utilization of the cell processor's computational resources.

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

2Manufacturing precision

If large textures are stored in main memory, then high-resolution graphics can be rendered, but memory bandwidth is consumed and access time increases

Engineering Contradiction:
Improvetexture detail qualityVSAvoidtexture access time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent divides large textures into smaller texture blocks that can be selectively loaded into the co-processor's local memory. This segmentation allows only the necessary texture portions to be transferred from main memory to local memory, reducing memory bandwidth consumption and access time while maintaining the ability to render high-resolution graphics when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The software-based texture unit pre-loads texture blocks into the co-processor's local memory before they are needed for rendering. This preliminary action reduces the access time during actual texture mapping operations by having the texture data ready in faster local memory rather than fetching from main memory during rendering.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If dedicated graphics hardware is used, then texture mapping is efficient, but the system requires extensive hardware resources and increases device complexity

Engineering Contradiction:
Improverendering performanceVSAvoidhardware resources
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces dedicated graphics hardware with a software-based solution running on a general-purpose cell processor. This substitution eliminates the need for separate graphics card hardware while achieving comparable or superior rendering performance by leveraging the cell processor's parallel processing capabilities and higher clock rate.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The cell processor serves dual purposes as both a general-purpose CPU and a graphics rendering engine. By implementing the texture unit in software, the system eliminates dedicated graphics hardware while maintaining rendering capabilities, thereby reducing device complexity and hardware resource requirements.

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

4Manufacturing precision

If mipmap levels are stored for all texture sizes, then rendering quality is maintained at all distances, but storage space increases by one third

Engineering Contradiction:
Improverendering qualityVSAvoidstorage space
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent implements selective loading of mipmap levels based on the specific rendering requirements. Instead of loading all mipmap levels for all textures, the system loads only the necessary mipmap levels corresponding to the current view distance and texture size being rendered. This approach maintains rendering quality where needed while minimizing storage space consumption.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP1994506B1Texture unit for multi processor environment
Publication Date: 2018.04.11 SONY INTERACTIVE ENTERTAINMENT LLC
  • EP1994506B1 patent drawingFigure 1~2
  • EP1994506B1 patent drawingFigure 3
  • EP1994506B1 patent drawingFigure 4~5

AI summary

Methods and apparatus for texture mapping of pixel data are disclosed. A block of texture fetches is received with a co-processor element having a local memory. Each texture fetch includes pixel coordinates for a pixel in an image. The co-processor element determines one or more corresponding blocks of a texture stored in main memory from pixel coordinates of each texture fetch and number of blocks NB that make up the texture. Each texture block contains all mipmap levels of the texture. NB chosen such that all N<NB blocks can be cached in the local memory. One or more of the corresponding blocks are loaded to the local memory if not currently loaded there. The co-processor element performs texture filtering with one or more of the texture blocks in local memory to generate a pixel value corresponding to one of the texture fetches.