Host Interface - Samsung S5PC100 User Manual

Table of Contents

Advertisement

S5PC100 USER'S MANUAL (REV1.0)
3D-ACCELERATOR

3 HOST INTERFACE

3.1 OVERVIEW
The major function of the Host Interface unit is to receive data from CPU converting several data format into
floating point data format. The Host Interface also transfers state data (SFR values, VS inst-memory, etc) to CPU.
The data transferred from CPU to 3D-ACCELERATOR are classified according to the data characteristics; state
and geometry data. The CPU set the state data first. And then, the geometry data is transferred to 3D-
ACCELERATOR. 3D-ACCELERATOR renders the transferred geometry data using the state data. For the next
geometry data to be rendered, the appropriate state data must be transferred to 3D-ACCELERATOR. At this
moment, the previous geometry data can be affected by the new state. Hence, state data can be transferred to
the 3D-ACCELERATOR only when the state data does not affect the previous geometry. PIPELINE STATUS
REGISTER (GB_PIPESTATE), which is explained the previous chapter, is used to query where the geometry
data is processed in 3D-ACCELERATOR. (CPU decides when to update the states using GB_PIPESTATE.)
Suppose there are blocks, A, B, C, and D in 3D-ACCELERATOR and the state data of C is to be updated. If B
processes the geometry data, then CPU must not update the state of C because the geometry data in B can be
affected by the new state of C instead of the previous state. CPU must wait for the geometry data in B to pass
through C and reach to D. At this time, CPU can update the state of C because A, B, and C are empty (there is no
geometry to be affected by the new state data).
If the contents of the frame buffer are to be used for textures, CPU must copy the frame buffer data to the texture.
The next section describes how to feed the geometry data to the Host Interface.
In this document, DWORD represents 32-bit data.
A vertex is composed of several attributes. Vertex attributes are used in the vertex shader program. The vertex
shader program determines what the given attributes represent; they can be vertex position, vertex color, normal
vector, texture coordinates, and so on. Usually, these vertex attributes are supposed to be transferred from CPU
(or DMA) requiring lots of memory bandwidth. The vertex buffer, which is 4KB internal memory in 3D-
ACCELERATOR, can be used to reduce memory bandwidth. After the geometry data, arrays of vertex attributes
in other words, is saved in the vertex array, a series of indices from CPU can be transferred instead of vertex
attributes saving memory bandwidth. Each index represents an array index in each vertex attributes.
(HI_ATTR0_VBBASE~ HI_ATTR9_VBBASE SFR represent the base addresses of vertex attributes in the vertex
buffer.) Section 3.3 shows how the geometry data is transferred to the internal host interface hardware and what
kind of SFRs are used.
3.2 OPERATING MODE
Two modes can be used for Host Interface depending on the way how to transfer the geometry data: index mode,
and non-index mode.
Index mode: After CPU stores the geometry data (input attributes to vertex shader) into the Vertex Buffer in Host
Interface, CPU transfers the indices to the stored geometry. This scheme consumes low bus bandwidth.
Non-index mode: CPU transfers the geometry data directly. This scheme is useful when there is no space in the
Vertex Buffer. Also the infrequently used geometry data can be transferred to Host Interface using this scheme.
9.6-23

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents