Application specific integrated circuits (ASICs) are often used to extract data, such as packet data, from data streams. Message extractors are often used in set-top devices for receiving cable signals to obtain video and audio data as well as subscriber information corresponding with a given set-top device. Head-end devices have many more functional requirements than basic set-top devices, including re-multiplexing, encryption, and decryption functions, and therefore require more message extractors to accommodate the increased number of functions. The re-multiplexing function in particular requires more message extractors in the ASIC because re-multiplexing requires the device to extract services and messages from a greater number of data streams and to combine them into different data streams.
Adding more message extractors to accommodate the increased functional requirements of head-end devices, however, require additional ASIC space, on the order of 7–8K ASIC gates per message extractor. To conserve ASIC space while maintaining the re-multiplexing function, a processor that performs the re-multiplexing function may continuously reassign the message extractors to reference different packet identifiers at different times to extract the needed messages from the data stream. Using the processor to reassign message extractors, however, reduces the amount of time that the processor can devote to perform core tasks related to the re-multiplexing process itself, reducing the speed at which messages are received and processed.
There is a need for a device that can accommodate the greater message extraction requirements of head-end devices for, e.g., re-multiplexing, encryption and decryption, without consuming additional ASIC space or sacrificing processor speed.