Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,
enhancements, improvements, and other changes to its products and services at any time and to discontinue
any product or service without notice. Customers should obtain the latest relevant information before placing
orders and should verify that such information is current and complete. All products are sold subject to TI’s terms
and conditions of sale supplied at the time of order acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of sale in
accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI
deems necessary to support this warranty. Except where mandated by government requirements, testing of all
parameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are responsible for
their products and applications using TI components. To minimize the risks associated with customer products
and applications, customers should provide adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right,
copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process
in which TI products or services are used. Information published by TI regarding third-party products or services
does not constitute a license from TI to use such products or services or a warranty or endorsement thereof.
Use of such information may require a license from a third party under the patents or other intellectual property
of the third party, or a license from TI under the patents or other intellectual property of TI.
Reproduction of information in TI data books or data sheets is permissible only if reproduction is without
alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction
of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for
such altered documentation.
Resale of TI products or services with statements different from or beyond the parameters stated by TI for that
product or service voids all express and any implied warranties for the associated TI product or service and
is an unfair and deceptive business practice. TI is not responsible or liable for any such statements.
Following are URLs where you can obtain information on other Texas Instruments products and application
solutions:
ProductsApplications
Amplifiersamplifier.ti.comAudiowww.ti.com/audio
Data Convertersdataconverter.ti.comAutomotivewww.ti.com/automotive
This document describes the OMAP5910/5912 multimedia processor DSP
subsystem.
Notational Conventions
This document uses the following conventions.
- Hexadecimal numbers are shown with the suffix h. For example, the fol-
lowing number is 40 hexadecimal (decimal 64): 40h.
Related Documentation From Texas Instruments
Documentation that describes the OMAP5910/5912 devices, related
peripherals, and other technical collateral, is available in the OMAP5910
Product Folder on TI’s website: www.ti.com/omap5910, and in the OMAP5912
Product Folder on TI’s website: www.ti.com/omap5912.
Preface
Read This First
Trademarks
OMAP and the OMAP symbol are trademarks of Texas Instruments.
The Digital Signal Processor (DSP) Subsystem is a collection of modules
which include the TMS320C55x CPU processor along with its hardware
accelerators, tightly coupled memory, instruction cache, and dedicated DMA,
the interfaces it uses to communicate with rest of the OMAP device, as well
as a number of peripherals.
The TMS320C55x core processor (also referred to as the DSP core) and the
peripherals included in the DSP subsystem communicate with:
- The MPU core via the microprocessor unit interface (MPUI)
- Various standard memories via the external memory interface (EMIF)
- Various system peripherals via two TI peripheral bus (TIPB) bridges
Figure 1 and Figure 2 in section 1.4 show block diagrams for the OMAP5910
and OMAP5912 DSP subsystems.
DSP Subsystem
1.2Features
The DSP subsystem is composed of several portions: the DSP module, the
peripherals that surround that module, and several interfaces used to
communicate with the rest of the OMAP modules. Each portion has the
following components:
transform/inverse discrete cosine transform (DCT/IDCT), motion
estimation, and half-pixel interpolation
J Tightly coupled memories and their interfaces: dual-access RAM
(DARAM), single-access RAM (SARAM), programmable dynamic
ROM, and an instruction cache (I-Cache)
J Six-channel DMA controller that can copy memory contents from one
address to another without DSP core intervention
17DSP SubsystemSPRU890A
Digital Signal Processor Subsystem Overview
DSP subsystem interfaces:
-
J External memory interface (EMIF) that connects the DSP core to
external and loosely coupled memories
J MPUI port that permits access to DSP resources by the MPU and
system DMA
J TIPB that provides two external bus interfaces for private and public
peripherals
- DSP subsystem peripherals:
J Private peripherals are on the DSP private peripheral bus, and can
only be accessed by the DSP core. DSP private peripherals include:
HThree 32-bit timers
HWatchdog timer
HInterrupt handlers
J Public peripherals are on the DSP public peripheral bus. These
peripherals are directly accessible by the DSP core and DSP DMA.
The MPU core can also access these peripherals through the MPUI
port. DSP public peripherals include:
HTwo multichannel buffered serial ports (McBSPs)
HTwo multichannel serial interfaces (MCSIs)
J The DSP core and DMA controller also have access to system
peripherals (also referred to as shared peripherals). Shared
peripherals are connected to both the MPU public peripheral bus and
the DSP public peripheral bus. Shared peripherals include:
HMailbox module to permit interrupt-based signaling between the
J The OMAP5912 also adds these shared peripherals:
HEight general purpose timers
HSerial port interface (SPI)
HI2C master/slave interface
HExtra McBSP
HMultimedia card/secure digital interface (MMC/SDIO)
H32-KHz synchronization counter
This document describes all of the DSP module components listed above. The
DSP subsystem peripherals are described in separate documents.
DSP Subsystem18SPRU890A
Digital Signal Processor Subsystem Overview
1.3Differences Between the OMAP5910 and OMAP5912 DSP
Subsystems
The OMAP5910 and OMAP5912 DSP subsystems are very similar. The
difference between the subsystems lies in the mix of the MPU/DSP shared
peripherals.
1.4Functional Block Diagrams
Figure 1 and Figure 2 show functional block diagrams of the OMAP5910 and
OMAP5912 DSP subsystems.
Figure 1.OMAP5910 DSP Subsystem and Modules
DSP Subsystem and Interfaces
DSP private
peripherals
Timers
Watchdog
timer
Interrupt
handlers
Interrupt
interface
DSP private
peripheral bus
DSP public
peripheral bus
DSP public
peripherals
ROM,
SRAM,
Flash,
SBFlash
SDRAM
Endianess
conversion
DSP
MMU
controller
On-chip
SRAM
Traffic
EMIF
I-Cache
DARAM
SARAM
DSP Module
Internal
memory
buses
Memory
I/F
Configuration
DMA
(EMIF)
(DARAM)
(SARAM)
(MPUI)
(TIPB)
MPUI port
HWA
TMS320C55x
DSP core
Shared
TIPB
bridge
Private
TIPB
bridge
Pseudo
dynamic
sharing
MPU/DSP shared
peripherals
Mailbox
GPIO I/F
UART1,2,3
Static UART
sharing switch
16
16
Endianess conversion
MPU
subsystem
System
DMA
MPUI
MPU
MPU public
peripheral
bus
MPU public
TIPB bridge
McBSP1
McBSP3
MCSI2
MCSI1
19DSP SubsystemSPRU890A
Digital Signal Processor Subsystem Overview
Figure 2.OMAP5912 DSP Subsystem and Modules
DSP Subsystem and Interfaces
DSP Module
Internal
memory
buses
Memory
I/F
Configuration
DMA
(EMIF)
(DARAM)
(SARAM)
(MPUI)
(TIPB)
MPUI port
HWA
TMS320C55x
DSP core
Shared
TIPB
bridge
Pseudo
dynamic
sharing
ROM,
SRAM,
Flash,
SBFlash
SDRAM
Endianess
conversion
DSP
MMU
Traffic
controller
On-chip
SRAM
EMIF
I-Cache
DARAM
SARAM
Private
TIPB
bridge
DSP private
peripherals
Timers
Watchdog
timer
Interrupt
handlers
Interrupt
interface
DSP private
peripheral bus
DSP public
peripheral bus
MPU/DSP shared
peripherals
Mailbox
MPU/DSP static
shared
8xGPTIMERS
SPI
UART1,2,3
I2C
MMCSDIO2
McBSP2
MPU/DSP
Dynamic shared
GPIO1,2,3,4
32-KHz synchro timer
16
16
DSP public
peripherals
Endianess conversion
MPU
subsystem
System
DMA
MPUI
MPU
MPU public
peripheral
bus
MPU public
TIPB bridge
McBSP1
McBSP3
MCSI2
MCSI1
DSP Subsystem20SPRU890A
2C55x DSP Core Overview
The DSP subsystem is based on the TMS320C55x DSP generation processor
core. This section is intended to give a mere overview of the C55x DSP core.
For detailed information, see the TMS320C55x DSP CPU Reference Guide
(SPRU371).
2.1DSP Core Features
Features of the high-performance, low-power DSP core include:
- Advanced multiple-bus architecture with one internal program memory
bus and five internal data buses (three dedicated to reads and two
dedicated to writes)
- Unified program/data memory architecture
- Dual 17-bit x 17-bit multipliers coupled to 40-bit dedicated adders for
- Two address generators with eight auxiliary registers and two auxiliary
register arithmetic units
C55x DSP Core Overview
- 8M x 16 bits (16M bytes) of total addressable memory space
- Single-instruction repeat or block repeat operations for program code
- Conditional execution
- Seven-stage pipeline for high instruction throughput
- Instruction buffer unit that loads, parses, queues, and decodes
instructions to decouple the program fetch function from the pipeline
- Program flow unit that coordinates program actions among multiple
parallel DSP core functional units
- Address data flow unit that provides data address generation and includes
a 16-bit arithmetic unit capable of performing arithmetical, logical, shift,
and saturation operations
- Data computation unit containing the primary computation units of the
DSP core, including a 40-bit arithmetic logic unit, two MAC units, and a
shifter
- Software-programmable idle domains that provide configurable
low-power modes
- Automatic power management
21DSP SubsystemSPRU890A
C55x DSP Core Overview
2.2Introduction to the DSP Core
The DSP core supports an internal bus structure composed of one program
bus, three data read buses, two data write buses, and additional buses
dedicated to peripheral and DMA controller activity. These buses provide the
ability to perform up to three data reads and two data writes in a single cycle.
The DSP core provides two multiply-accumulate (MAC) units, each capable
of 17-bit x 17-bit multiplication in a single cycle. A central 40-bit arithmetic/logic
unit (ALU) is supported by an additional 16-bit ALU. Use of the ALUs is under
instruction set control, providing the ability to optimize parallel activity and
power consumption. These resources are managed in the address unit (AU)
and data unit (DU) of the DSP core.
The DSP core supports a variable byte width instruction set for improved code
density. The instruction unit (IU) performs 32-bit program fetches from internal
or DSP external memory and queues instructions for the program unit (PU).
The program unit decodes the instructions, directs tasks to AU and DU
resources, and manages the fully protected pipeline. Predictive branching
capability avoids pipeline flushes on execution of conditional instructions.
Figure 3 shows a conceptual block diagram of the DSP core. Detailed
information on each of the buses and units represented in this figure are given
in the TMS320C55x DSP CPU Reference Guide (SPRU371).
DSP Subsystem22SPRU890A
Figure 3.DSP Core Diagram
C55x DSP Core Overview
Data-read data buses BB, CB, DB (each 16 bits)
Data-read address buses BAB, CAB, DAB (each 23 bits)
Program-read data bus PB (32 bits)
Program-read address bus PAB (24 bits)
External data
buses
External
program buses
Memory
interface unit
Other useful documents include:
- TMS320C55x DSP Mnemonic Instruction Set Reference Guide
- TMS320C55x Programmer’s Guide (SPRU376): Describes ways to
CPU
Instruction
buffer unit
(I unit)
Data-write data buses EB, FB (each 16 bits)
Data-write address buses EAB, FAB (each 23 bits)
Program
flow unit
(P unit)
Address-data
flow unit
(A unit)
Data
computation
unit
(D unit)
(SPRU374): Describes the mnemonic instructions individually. It also
includes a summary of the instruction set, a list of the instruction opcodes,
and a cross-reference to the algebraic instruction set.
optimize C and assembly code for the TMS320C55x DSPs and explains
how to write code that uses the special features and instructions of the
DSP.
- TMS320C55x Optimizing C Compiler User’s Guide (SPRU281):
Describes the TMS320C55x C Compiler. This C compiler accepts ANSI
standard C source code and produces assembly language source code
for TMS320C55x devices.
23DSP SubsystemSPRU890A
C55x DSP Core Overview
TMS320C55x Assembly Language Tools User’s Guide (SPRU280):
-
Describes the assembly language tools (assembler, linker, and other tools
used to develop assembly language code), assembler directives, macros,
common object file format, and symbolic debugging directives for
TMS320C55x devices.
2.3Introduction to the Hardware Accelerators
Three powerful C55x hardware accelerator modules assist the DSP core in
implementing algorithms that are commonly used in video compression
applications such as MPEG4 encoders/decoders. These accelerators allow
implementation of such algorithms using fewer DSP instruction cycles and
dissipating less power than if the DSP core were operating alone. The
hardware accelerators are utilized via functions from the TMS320C55x
Image/Video Processing Library available from Texas Instruments.
The Image/Video Processing Library implements many useful functions
utilizing the hardware accelerators, including:
- Forward and Inverse Discrete Cosine Transform (DCT) (used for video
compression/decompression)
- Motion Estimation (used for compression standards such as MPEG video
- Quantization/Dequantization (useful for JPEG, MPEG, H.26x
encoding/decoding)
- Flexible 1D/2D Wavelet Processing (useful for JPEG2000, MPEG4, and
other compression standards)
- Boundary and Perimeter Computation (useful for Machine Vision
applications)
- Image Threshold and Histogram Computations (useful for various Image
Analysis applications)
More information on the C55x Image/Video Processing Library can be found
in the TMS320C55x Image/Video Processing Library Programmer’s
Reference (SPRU037).
DSP Subsystem24SPRU890A
C55x DSP Core Overview
There are three hardware accelerators included along with the C55x DSP
core:
- DCT/IDCT Accelerator: This hardware accelerator implements Forward
and Inverse DCT algorithms. These DCT/IDCT algorithms can enable a
wide range of video compression standards including JPEG
Encode/Decode, MPEG Video Encode/Decode, and H.26x
Encode/Decode.
- Motion Estimation Accelerator: This hardware accelerator implements a
high-performance motion estimation algorithm, enabling MPEG Video
encoder or H.26x encoder applications. Motion estimation is typically one
of the most computation-intensive operations in video-encoding systems.
- Pixel Interpolation Accelerator: This hardware accelerator enables
high-performance pixel-interpolation algorithms, which allow for powerful
fractal pixel motion estimation when used in conjunction with the Motion
Estimation Accelerator. Such algorithms provide significant improvement
to video-encoding applications.
Detailed information on the C55x Hardware Accelerators can be found in the
TMS320C55x Hardware Extensions for Image/Video Applications
Programmer’s Reference (SPRU098).
25DSP SubsystemSPRU890A
DSP Subsystem Memory
3DSP Subsystem Memory
The DSP subsystem requires access to three different types of memory:
program memory, data memory, and I/O memory. The DSP subsystem
architecture uses a unified program and data memory space composed of
memory internal and external to the DSP subsystem. Internal memory is made
up of tightly coupled memory blocks, whereas DSP external memory is
mapped to OMAP system memory. The DSP subsystem architecture provides
access to a maximum of 8M words (16M bytes) of program/data memory
space.
The DSP subsystem I/O memory space is separate from the data/program
memory space. The I/O space includes the configuration and data registers
for all peripherals accessible by the DSP subsystem.
3.1Internal Memory Space
The DSP subsystem memory consists of four types of tightly coupled
memories which provide the DSP core with maximum efficiency.
- Dual-access RAM (DARAM)
The DARAM memory consists of 8 blocks of 8K bytes each. The DARAM
(64K bytes) can support up to two memory accesses into each RAM block
in one DSP core clock cycle. Accesses can be made from any internal
data, program, or DMA bus.
- Single-access RAM (SARAM)
The SARAM memory consists of 12 blocks of 8K bytes each. The SARAM
(96K bytes) can support one memory access into each RAM block in one
DSP core clock cycle. This access can be a 32-bit value. Accesses can be
made from any internal data, program, or DMA bus.
- Programmable dynamic ROM (PDROM)
The PDROM memory consists of 1 block of 32K bytes. The programmable
dynamic ROM (32K bytes) can support one memory read in one DSP core
clock cycle. This access can be a 32-bit value. Accesses can be made
from any internal data read or program bus.
The PDROM contains a program called a bootloader, which is executed by
the DSP core when it is taken out of reset. Depending on the boot mode
selected, the DSP core will either branch to an internal or DSP external
memory address, or go into idle. Note that the memory at the destination
address must be initialized with valid code before the bootloader is
executed. Selecting boot mode 000b will disable the PDROM. The MPU
core specifies the boot mode through the DSP_BOOT_CONFIG register.
For more information on the DSP subsystem bootloader and the
DSP_BOOT_CONFIG register, see section 12.4.
DSP Subsystem26SPRU890A
Configurable I-Cache structure
-
The DSP instruction cache (I-Cache) module is a special-purpose, tightly
coupled, RAM-based program memory. The module is designed to
significantly improve DSP core performance by buffering the instructions
most recently fetched from DSP external memory. The entire external
program memory space is cacheable. Section 4 describes the I-Cache in
more detail.
Figure 4 shows the connections between the internal memory blocks and the
buses of the DSP core.
Figure 4.Internal Memory Connections in the DSP Subsystem
12 blocks of 8K bytes
8 blocks of 8K bytes
1 block of 32K bytes
DSP Subsystem Memory
P buses
B buses
C buses
D buses
E buses
F bus
PDROM
SARAM
DARAM
To
external
memory
I/F
A
D
The DSP core uses the six sets of buses to simultaneously fetch up to 32 bits
of program code and to read up to 48 bits of data from memory (or to write up
to 32 bits of data to memory). To achieve maximum performance from the
architecture, pay close attention to placement of code and data structures
within the on-chip memory resources. For more details, see the TMS320C55xProgrammer’s Guide (SPRU376).
27DSP SubsystemSPRU890A
DSP Subsystem Memory
3.2DSP External Memory Space
The DSP core and DMA controller use the external memory interface (EMIF)
to access the DSP external memory. External memory for the DSP subsystem
ranges from byte address 0x02 8000 to 0xFF 8000 if the internal PDROM is
enabled, or to 0xFF FFFF if the PDROM is not enabled. See Figure 18 for more
details.
Note:
The term DSP external memory refers to memory outside of the DSP
subsystem internal memory space. This includes program addresses in the
range of 0x02 8000 to 0xFF 8000 if the internal PDROM is enabled, or to
0xFF FFFF if the PDROM is not enabled.
All DSP external memory access requests are passed through the DSP
memory management unit (MMU). If this unit is enabled and configured by the
MPU core, it translates the DSP external memory access request address,
also called a virtual address, into a system memory address, also called a
physical address, that is then passed to the traffic controller. The traffic
controller completes the memory access through one of the three system
memory interfaces: internal memory (IMIF), slow external memory (EMIFS),
or fast external memory (EMIFF).
If the MMU is not enabled, then the access request is passed directly to the
system traffic controller. In this case, the DSP virtual address is mapped to the
first 16M bytes of chip select space 0 (CS0) of the system memory.
3.3I/O Memory Space
The DSP subsystem I/O space is a separate address space from the
data/program memory space. Configuration and data registers for all
peripherals reside in the DSP subsystem I/O space, which consists of
64K-word addresses. Each peripheral maps into a 1K-word section of I/O
memory.
OMAP devices include sets of peripherals grouped into three main categories:
shared, public, or private.
- DSP/MPU shared peripherals are connected to both the MPU public
peripheral bus and the DSP public peripheral bus. Connections are routed
through a TI peripheral bus switch, which must be configured to allow MPU
domain or DSP domain access. Some shared peripherals have
permanent connections to both public peripheral buses, although read
and write accesses to each peripheral register may differ.
DSP Subsystem28SPRU890A
DSP Subsystem Memory
DSP public peripherals are connected to the DSP public peripheral bus
-
and are directly accessible by the DSP core and DSP DMA. These
peripherals may also be accessed by the MPU core and system DMA
controller via the MPUI.
- DSP private peripherals are on the DSP private peripheral bus, and thus,
can only be accessed by the DSP core.
To read or write to these registers, you must access the DSP subsystem I/O
space either through C language constructs or, in the case of
assembly-language code, by using a special instruction qualifier called the
memory-mapped register access qualifier. For more details about this
qualifier, see TMS320C55x DSP Mnemonic Instruction Set Reference Guide
(SPRU374).
Note:
Byte access to I/O space is not supported.
The TI peripheral bus bridges manage accesses to the I/O memory space via
two peripheral buses: a private TI peripheral bus and a public TI peripheral
bus. Section 8 describes the TI peripheral bus bridges and their buses.
3.4Memory Maps
Table 1 shows the high-level program/data memory map for the DSP
subsystem. DSP core data accesses utilize 16-bit word addresses, while DSP
core program fetches utilize byte addressing. DSP DMA data fetches always
use byte addresses.
Table 1.OMAP5910/5912 DSP Subsystem Global Memory Map
0x02 8000-0xFF 7FFF0x01 4000-0x7F BFFFManaged by DSP
MMU
0xFF 8000-0xFF FFFF
†
This space could be DSP external memory or internal shared system memory, depending on the DSP MMU configuration.
0x7F C000-0x7F FFFFPDROM
(MPNMC = 0)
Managed by DSP
MMU (MPNMC = 1)
The I/O memory map varies from device to device, due to the different peripheral
mixes. For a detailed I/O memory map, see the device-specific data manual.
†
29DSP SubsystemSPRU890A
Instruction Cache
4Instruction Cache
4.1Introduction
On the OMAP5912/10 applications processors, instructions for the C55x DSP
core can reside in internal memory or in DSP external memory. When
instructions reside in DSP external memory, the instruction cache (I-Cache)
can improve the overall system performance by buffering the most recent
instructions accessed by the DSP core.
Note:
The term DSP external memory refers to memory outside of the DSP
subsystem internal memory space. This includes program addresses in the
range of 0x02 8000 to 0xFF 8000 if the internal PDROM is enabled, or to
0xFF FFFF if the PDROM is not enabled.
4.1.1Features
For storing instructions, the I-Cache contains:
- One 2-way cache. The 2-way cache uses 2-way set associative mapping
and holds up to 16K bytes: 512 sets, two lines per set, four 32-bit words
per line. In the 2-way cache, each line is identified by a unique tag.
- Two RAM sets (1 and 2). These two banks of RAM are available to hold
blocks of code. Each RAM set holds up to 4K bytes: 256 lines, four 32-bit
words per line. Each RAM set uses a single tag to identify a continuous
range of memory addresses that is represented in the RAM set. Before
enabling the I-Cache, configure the I-Cache to use zero, one, or both RAM
sets.
The DSP core status register, ST3_55, contains three cache control bits for
enabling, freezing, and flushing the I-Cache (see section 4.2.4). To configure
the I-Cache and check its status, the DSP core accesses a set of registers in
the I-Cache (see section 4.6).
4.1.2Functional Block Diagram
Figure 5 shows how the I-Cache fits into the DSP subsystem.
DSP Subsystem30SPRU890A
Loading...
+ 204 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.