Public Version
SDRAM Controller (SDRC) Subsystem
www.ti.com
10.2.4.1.5 Rotation Engine
Smartphone applications must often perform image rotation between the orientation of images stored in
external memory and the orientation with which they must be displayed. The device offers a hardware
mechanism that allows rotation tasks to be implemented efficiently, transparent to software applications,
thereby keeping the MPU and DSP CPUs free for other tasks. For a description of the RE mechanism,
see
, SDRC Use Cases and Tips.
The SMS includes address processing support for rotated DSS displays (90, 180, and 270 degrees). This
function is realized by the VRFB submodule, also called the rotation engine (RE) in this document.
The primary goal of the VRFB is to eliminate the SDRAM page-miss penalty when reading graphics data
in nonnatural raster scan order (that is, top to bottom, bottom to top, right to left).
The 2D-rotation module (the VRFB) is included as a black box that intercepts incoming requests when
addressed to the virtual frame buffer. If the address of the request targets the VRFB address space, the
request is sent to the RE. It processes the address and reinserts the modified request in the SMS request
path. The SMS translates the virtual address into physical SDRAM addresses and reinserts a request or
multiple requests in the SMS request path to the SDRC.
NOTE:
The use of the word virtual does not refer to the usual CPU-related MMU concept; the word
is used in a more general context of the address remapping feature, which decouples the
system from the actual storage physical organization of the graphics data in the external
memory.
The VRFB can be abstracted as a 3-port module:
•
Interconnect input port
•
Interconnect output port
•
Configuration port; all programmable control registers are part of the SMS register file, which is
described in
, VRFB Configuration Port.
10.2.4.1.5.1 VRFB Input Port
The VRFB receives a 29-bit address, and two decoding signals, from the SMS module. The 29-bit address
is decoded to determine the context and the rotation view of the request.
The VRFB address space is a 768-MB address space split into two non-contiguous virtual address
spaces:
•
Address space 0: 256 MB in quarter Q1 (start address: 0x7000 0000, end address: 0x7FFF FFFF)
•
Address space 1: 512 MB in quarter Q3 (start address: 0xE000 0000, end address: 0xFFFF FFFF)
It can manage up to 12 concurrent rotation contexts.
details the address space of each
context.
Table 10-100. VRFB Contexts Virtual Address Spaces vs Rotation Angle
Context
0°
90°
180°
270°
Number
0
0x7000 0000
0x7100 0000
0x7200 0000
0x7300 0000
1
0x7400 0000
0x7500 0000
0x7600 0000
0x7700 0000
2
0x7800 0000
0x7900 0000
0x7A00 0000
0x7B00 0000
3
0x7C00 0000
0x7D00 0000
0x7E00 0000
0x7F00 0000
4
0xE000 0000
0xE100 0000
0xE200 0000
0xE300 0000
5
0xE400 0000
0xE500 0000
0xE600 0000
0xE700 0000
6
0xE800 0000
0xE900 0000
0xEA00 0000
0xEB00 0000
7
0xEC00 0000
0xED00 0000
0xEE00 0000
0xEF00 0000
8
0xF000 0000
0xF100 0000
0xF200 0000
0xF300 0000
9
0xF400 0000
0xF500 0000
0xF600 0000
0xF700 0000
10
0xF800 0000
0xF900 0000
0xFA00 0000
0xFB00 0000
2244Memory Subsystem
SWPU177N – December 2009 – Revised November 2010
Copyright © 2009–2010, Texas Instruments Incorporated