Direct memory access execution engine with indirect addressing of circular queues in addition to direct memory addressing
First Claim
1. A method for managing digital transport packet distribution in a transport packet demultiplexing system, wherein the transport packet demultiplexing system receives a transport stream including digital transport packets each identified by a packet identifier (PID), the method comprising:
- generating an address index for each of the transport packets based on the PID, wherein the address index corresponds to a memory queue address;
generating a local header incorporating the address index for each of the transport packets;
adding the local headers to their corresponding transport packets; and
distributing the modified transport packet to corresponding memory queues based on their associated one of the memory queue addresses in the local header.
17 Assignments
0 Petitions
Accused Products
Abstract
A method for enhancing transport packet demultiplexing and distribution in a digital transport demultiplexing system that inputs a stream of digital multimedia transport packets is provided. Each of the transport packets includes a packet identifier (PID) to identify the digital program or elementary stream to which it corresponds. Local packet information is generated for each of the transport packets, which is used in identifying and distributing the transport packets. A local header is created that includes the generated local packet information, and the local header is linked to its corresponding transport packet to create a modified transport packet. In this manner, each of the modified transport packets represents a self-contained digital transport packet having local distribution information contained therein. A transport stream demultiplexing apparatus for use in a digital transmission system capable of providing a plurality of digital transport packets to a digital program presentation device is provided. The demulitplexing apparatus performs the demultiplexing operation by creating a set of direct memory access (DMA) instructions for a DMA engine to execute when transferring the transport packets to one or more output queues. The DMA engine is also configured to descramble the contents of the transport packets while the DMA operation occurs.
218 Citations
25 Claims
-
1. A method for managing digital transport packet distribution in a transport packet demultiplexing system, wherein the transport packet demultiplexing system receives a transport stream including digital transport packets each identified by a packet identifier (PID), the method comprising:
-
generating an address index for each of the transport packets based on the PID, wherein the address index corresponds to a memory queue address;
generating a local header incorporating the address index for each of the transport packets;
adding the local headers to their corresponding transport packets; and
distributing the modified transport packet to corresponding memory queues based on their associated one of the memory queue addresses in the local header.
-
-
2. A method for managing digital transport packet distribution in a transport packet demultiplexing system, wherein the transport packet demultiplexing system receives a transport stream including digital transport packets each identified by a packet identifier (PID), the method comprising:
-
generating an address index for each of the transport packets based on the PID, wherein the address index corresponds to a memory queue address;
generating a local header incorporating the address index for each of the transport packets;
adding the local headers to their corresponding transport packets; and
distributing the modified transport packet to corresponding memory queues based on their associated one of the memory queue addresses in the local header, including reading the local headers of the transport packets, generating direct memory access (DMA) instructions indicating where the transport packet is to be distributed, storing the DMA instructions in memory, and transferring the transport packets using a DMA transport engine which executes the DMA instructions directly from memory. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
a memory read operation from a source address;
a first memory write to a first destination address; and
a second memory write to a Sky Queue using a second destination address.
-
-
16. The method according to claim 15, wherein the memory-to-memory operation further comprises a de-scrambling as the data transfer occurs using a key stored in a key table, the key is selected using a key pointer.
-
17. The method according to claim 16, wherein the source address is an absolute memory address.
-
18. The method according to claim 16, wherein the source address is a queue number.
-
19. The method according to claim 16, wherein the first destination address is an absolute memory address.
-
20. The method according to claim 16, wherein the first destination address is a queue number.
-
21. The method according to claim 16, wherein the second destination address is an absolute memory address.
-
22. The method according to claim 16, wherein the second destination address is a queue number.
-
23. The method according to claim 3, wherein the completion of the memory-to-memory operation comprises a interrupt service request be sent to a host processor.
-
24. A method for managing digital transport packet distribution in a transport packet demultiplexing system, wherein the transport packet demultiplexing system receives a transport stream including digital transport packets each identified by a packet identifier (PID), the method comprising:
-
generating an address index for each of the transport packets based on the PID, wherein the address index corresponds to a memory queue address;
generating a local header incorporating the address index for each of the transport packets;
adding the local headers to their corresponding transport packets; and
distributing the modified transport packet to corresponding memory queues based on their associated one of the memory queue addresses in the local header;
wherein the distributing step comprises;
reading the local headers of the transport packets;
generating direct memory access (DMA) instructions indicating where the transport packet is to be distributed;
storing the DMA instructions in memory; and
transferring the transport packets using a DMA transport engine which executes the DMA instructions directly from memory; and
the DMA transport engine transfers the transport packets as a memory-to-memory operation, the memory-to-memory operation selectively comprises a de-scrambling as the data transfer occurs using a key stored in a key table, the key is selected using a key pointer.
-
-
25. An apparatus for managing digital transport packet distribution in a transport packet demultiplexing system, wherein the transport packet demultiplexing system receives a transport stream including digital transport packets each identified by a packet identifier (PID), the apparatus comprising:
-
means for generating an address index for each of the transport packets based on the PID, wherein the address index corresponds to a memory queue address;
means for generating a local header incorporating the address index for each of the transport packets;
means for adding the local headers to their corresponding transport packets; and
means for distributing the modified transport packet to corresponding memory queues based on their associated one of the memory queue addresses in the local header;
wherein the distributing means comprises;
means for reading the local headers of the transport packets;
means for generating direct memory access (DMA) instructions indicating where the transport packet is to be distributed;
means for storing the DMA instructions in memory; and
means for transferring the transport packets using a DMA transport engine which executes the DMA instructions directly from memory; and
the DMA transport engine transfers the transport packets as a memory-to-memory operation and the memory-to-memory operation selectively comprises a de-scrambling means using a key stored in a key table.
-
Specification