2/24/2008 9T6WP
BCM7405
Preliminary Hardware Data Module
Functional Description
06/29/07
Bro a d c o m C o rp o r a ti o n
Page 1-22
Data Transport Processor
Document
7405-1HDM00-R
Each enabled generic filter is applied to MPEG section bytes 0-3, excluding byte 2. Banks of 4-byte generic filters can be
cascaded to make up groups of filters that are effectively up to 64 bytes wide.
The PSI processor also supports dynamic reconfiguration of a filter for an active PSI channel. This includes dynamically
adding, removing, or reprogramming of an existing filter.
Memory Buffer Manager
The data transport module provides for 128 independent message buffers (in external system memory) corresponding to
PID channels 0–127. Each message buffer stores data that comes from the respective PID channel. The type of data stored
to the message buffer (PSI section, PES packet, or transport packet) is determined by the filtering selections made for each
PID channel.
The message buffer manager collects all accepted data and sends it to one of more of the 128 corresponding message
buffers. Each message buffer can start on any 1 KB address boundary, and can be from 1 KB to 512 KBs long. The message
buffer manager maintains a pointer to the last valid memory location of each buffer (such as the valid_pointer), while the last
read memory location is supplied by the microprocessor (the read_pointer). If unread data is present, an interrupt may be
generated. The message buffer manager waits until the entire delineated message (PES packet, PSI section, or transport
packet) is verified and written to memory before it updates the buffer valid pointer. Each message is optionally 32-bit word
aligned. When word-align is enabled, a par tial word at the end of a message (or transport packet when using
SAVE_PACKET_EN mode) is filled with bytes of 0x55.
Interrupt Controller
The interrupt controller generates interrupts for any of the data available, status or error conditions. Each of these conditions
are individually maskable. The interrupt status registers can be read to determine the conditions, and written low to clear the
interrupts. Some of the status and error conditions are indicated on a per PID basis. The various interrupt conditions that
may occur in the data transport module are divided into groups:
•
Status Interrupts
•
Message Buffer Overflow Interrupts
•
Message Buffer Data Ready Interrupts
Each group of interrupts contains up to 64 unique interrupt conditions. Each of these groups generates a unique interrupt
signal which is output from the data transport module to the higher level interrupt controller.
Record Audio Video Engine (RAVE)
The data transport module has a programmable audio/video transport demultiplexer called RAVE. In addition to the audio/
video parser functions, RAVE supports record functionality for PVR applications. It accepts an MPEG or DIRECTV Transport
stream input from one or more input bands, and Transport, PES or ES streams from one or more playback bands. RAVE's
output format can be ES, PES, or Transport data for PVR. RAVE supports 24 channels. Each RAVE channel can be
configured as a record channel for PVR or as an AV channel. Each record channel can be configured for one to eight SCD
or one TPIT (maximum of five in the system). The AV channels are used for interface to the audio/video decoders via the
external memory subsystem.
Record
Each record channel can be used to record transport streams for up to 128 PID channels. The Record channel is allocated
two external DRAM buffers; one for data, and the other for index table entries. Each channel's index table descriptor buffer
contains entries which points to relevant locations within the data buffer, such as start code locations, PTS information, etc.
Each record channel can support up to four types of entries. These include a Start Code Detect entries, Transport Parser
Index Table (TPIT) entries, seamless pause entries and/or a PTS entries that can be used to build start code tables or