System and method for performing scalable embedded parallel data decompression
First Claim
1. A dynamic random access memory (DRAM) module, comprising:
- one or more memory devices for storing data; and
a parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to;
receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols;
examine a plurality of tokens from the compressed data in parallel in a current decompression cycle;
generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and
generate the uncompressed data comprising the plurality of symbols using the plurality of selects.
5 Assignments
0 Petitions
Accused Products
Abstract
A parallel decompression system and method that decompresses input compressed data in one or more decompression cycles, with a plurality of tokens typically being decompressed in each cycle in parallel. A parallel decompression engine may include an input for receiving compressed data, a history window, and a plurality of decoders for examining and decoding a plurality of tokens from the compressed data in parallel in a series of decompression cycles. Several devices are described that may include the parallel decompression engine, including intelligent devices, network devices, adapters and other network connection devices, consumer devices, set-top boxes, digital-to-analog and analog-to-digital converters, digital data recording, reading and storage devices, optical data recording, reading and storage devices, solid state storage devices, processors, bus bridges, memory modules, and cache controllers.
-
Citations
220 Claims
-
1. A dynamic random access memory (DRAM) module, comprising:
-
one or more memory devices for storing data; and a parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A device comprising:
-
a processor; and a system memory comprising one or more dynamic random access memory (DRAM) modules coupled to the processor and operable to store data received from the processor; wherein at least one of the one or more DRAM modules includes an embedded parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window. - View Dependent Claims (10, 11)
-
-
12. A dual in-line memory module (DIMM), comprising:
-
one or more memory devices for storing data; and a parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A device comprising:
-
a processor; and a system memory comprising one or more dual in-line memory modules (DIMMs) coupled to the processor and operable to store data received from the processor; wherein at least one of the one or more DIMMs includes an embedded parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
19. A processor, comprising:
-
one or more registers; an execution core; and a parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (20, 21, 22, 23, 24)
-
-
25. A device comprising:
-
a processor; and memory coupled to the processor and operable to store data received from the processor; wherein the processor includes an embedded parallel decompression engine for decompressing compressed data transferred to or from the memory, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
26. A cache controller, comprising:
-
cache memory control logic for controlling a cache memory; and a parallel decompression engine for decompressing compressed data transferred to or from the cache memory, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (27, 28, 29, 30, 31)
-
-
32. A device comprising:
-
a processor; cache memory which stores data used by said processor for executing one or more applications; a cache controller coupled to the cache memory and the processor, wherein the cache controller performs cache memory control functions for the cache memory, wherein the cache controller includes a parallel decompression engine for decompressing compressed data transferred to or from the cache memory, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
33. A bus bridge, comprising:
-
bus bridge logic for bridging a first bus to a second bus; and a parallel decompression engine for decompressing compressed data transferred between the first bus and the second bus, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (34, 35, 36, 37, 38)
-
-
39. A device comprising:
-
a first bus; a second bus; and a bus bridge for bridging the first bus to the second bus, wherein the bus bridge includes an embedded parallel decompression engine for decompressing compressed data transferred between the first bus and the second bus, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
40. A solid state storage device, comprising:
-
one or more memory boards for storing data; a processor board operable to manage the storage of the data on the one or more memory boards; a memory bus operable to couple the memory boards to the processor board; an interface board operable to couple the solid state storage device to a host system for receiving and sending the data; and a parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (41, 42, 43, 44, 45)
-
-
46. A computer system comprising:
-
a processor; system memory coupled to the processor; and a solid state storage device operable to store data received from one or more of the processor and the system memory, wherein the solid state storage device comprises; one or more memory boards for storing the data; and an embedded parallel decompression engine for decompressing compressed data, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
47. An intelligent device comprising:
-
a processor; a parallel decompression engine for decompressing compressed data within the intelligent device, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (48, 49, 50, 51, 52)
-
-
53. A network hub comprising:
-
hub logic for receiving data from one or more sources on the network and sending the data to one or more destinations on the network, wherein the data includes compressed data; a parallel decompression engine for decompressing the compressed data after said receiving, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (54, 55, 56, 57, 58)
-
-
59. A network switch comprising:
-
switch logic for selecting paths for sending data to destinations on the network; a parallel decompression engine for decompressing compressed data prior to said sending, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (60, 61, 62, 63, 64)
-
-
65. A network bridge comprising:
-
bridge logic for connecting two or more networks; a parallel decompression engine for decompressing compressed data received on one of the two or more networks prior to transferring the data to at least one other of the two or more networks, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (66, 67, 68, 69, 70)
-
-
71. A network router comprising:
-
router logic operable to route data on one or more networks; a parallel decompression engine for decompressing compressed data in transit through the router, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (72, 73, 74, 75, 76)
-
-
77. A network brouter comprising:
-
bridge logic operable to connect two or more networks; router logic operable to route data on the two or more networks; a parallel decompression engine for decompressing compressed data in transit through the brouter, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (78, 79, 80, 81, 82)
-
-
83. A multiplexer comprising:
-
multiplexing logic operable to; receive a plurality of signals from one or more source devices; multiplex the plurality of signals to form one multiplexed signal; and send the multiplexed signal to one or more destination devices; a parallel decompression engine for decompressing compressed data in the plurality of signals prior to said sending, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (84, 85, 86, 87, 88)
-
-
89. A demultiplexer comprising:
-
demultiplexing logic operable to; receive a multiplexed signal from a source device; demultiplex the multiplexed signal to produce a plurality of signals; and send the plurality of signals to one or more destination devices; a parallel decompression engine for decompressing compressed data in the plurality of signals prior to said sending, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (90, 91, 92, 93, 94)
-
-
95. A terminal server comprising:
-
a plurality of ports operable to couple a plurality of devices to the terminal server; a port operable to couple a network to the terminal server; data transfer logic operable to transfer data between the network and the plurality of devices; and a parallel decompression engine for decompressing compressed data during said transferring the data between the network and the plurality of devices, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (96, 97, 98, 99, 100)
-
-
101. A network interface card (NIC), comprising:
-
network interface logic for interfacing a device to a network; a parallel decompression engine for decompressing compressed data transferred between the device and the network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (102, 103, 104, 105, 106)
-
-
107. A computer system comprising:
-
a processor; system memory coupled to the processor; and a network interface card (NIC) operable to couple the computer system to a network, wherein the network interface card includes an embedded parallel decompression engine for decompressing compressed data transferred between the computer system and the network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the data transferred between the computer system and the network includes one or more of data transferred between the system memory and the network and data transferred between the processor and the network; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
108. An Integrated Services Digital Network (ISDN) adapter comprising:
-
logic for interfacing a device to an Integrated Services Digital Network; and a parallel decompression engine for decompressing compressed data transferred between the device and the ISDN, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (109, 110, 111, 112, 113)
-
-
114. A computer system comprising:
-
a processor; system memory coupled to the processor; and an Integrated Services Digital Network (ISDN) adapter operable to couple the computer system to an Integrated Services Digital Network, wherein the ISDN adapter includes an embedded parallel decompression engine for decompressing compressed data transferred between the computer system and the Integrated Services Digital Network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the data transferred between the computer system and the Integrated Services Digital Network includes one or more of data transferred between the system memory and the Integrated Services Digital Network and data transferred between the processor and the Integrated Services Digital Network; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
115. An asynchronous transfer mode (ATM) adapter comprising:
-
logic for interfacing a device to an ATM network; and a parallel decompression engine for decompressing compressed data transferred between the device and the ATM network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (116, 117, 118, 119, 120)
-
-
121. A computer system comprising:
-
a processor; system memory coupled to the processor; and an asynchronous transfer mode (ATM) adapter operable to couple the computer system to a network that supports ATM, wherein the ATM adapter includes an embedded parallel decompression engine for decompressing compressed data transferred between the computer system and the network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the data transferred between the computer system and the network includes one or more of data transferred between the system memory and the network and data transferred between the processor and the network; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
122. A modem comprising:
-
modem logic for interfacing a device to an analog data source; a parallel decompression engine for decompressing compressed data transferred between the device and the modem, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (123, 124, 125, 126, 127)
-
-
128. A computer system comprising:
-
a processor; system memory coupled to the processor; and an modem operable to couple the computer system to an analog data source, wherein the modem includes an embedded parallel decompression engine for decompressing compressed data transferred between the computer system and the analog data source, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the data transferred between the computer system and the analog data source includes one or more of data transferred between the system memory and the analog data source and data transferred between the processor and the analog data source; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
129. A cable modem for connecting to a network via a cable service, comprising:
-
logic for coupling a device to a network via a cable service; and a parallel decompression engine for decompressing compressed data transferred between the device and the network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (130, 131, 132, 133, 134, 135)
-
-
136. A computer system comprising:
-
a processor; system memory coupled to the processor; and a cable modem operable to couple the computer system to a network via a cable service, wherein the cable modem includes an embedded parallel decompression engine for decompressing compressed data transferred between the computer system and the network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the data transferred between the computer system and the network includes one or more of data transferred between the system memory and the network and data transferred between the processor and the network; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
137. A Digital Subscriber Line (DSL) adapter for interfacing a device to a Digital Subscriber Line, the DSL adapter comprising:
-
logic for interfacing the device to the Digital Subscriber Line; and a parallel decompression engine for decompressing compressed data transferred between the device and the DSL, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (138, 139, 140, 141, 142)
-
-
143. A computer system comprising:
-
a processor; system memory coupled to the processor; and a Digital Subscriber Line (DSL) adapter operable to couple the computer system to a Digital Subscriber Line, wherein the DSL adapter includes an embedded parallel decompression engine for decompressing compressed data transferred between the computer system and the Digital Subscriber Line, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the data transferred between the computer system and the Digital Subscriber Line includes one or more of data transferred between the system memory and the Digital Subscriber Line and data transferred between the processor and the Digital Subscriber Line; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
144. A network appliance comprising:
-
network interface logic for interfacing the network appliance to a network; and a parallel decompression engine for decompressing compressed data transferred between the network appliance and the network, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (145, 146, 147, 148, 149)
-
-
150. A set-top box comprising:
-
logic for enabling a television set to serve as a user interface to the Internet; logic for enabling the television set to receive and decode digital television (DTV) broadcasts; and a parallel decompression engine for decompressing compressed data within the set-top box, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (151, 152, 153, 154, 155)
-
-
156. A digital-to-analog converter (DAC), comprising:
-
logic for converting a digital input to an analog output signal; and a parallel decompression engine for decompressing compressed data in the digital input prior to said converting the digital input to the analog output signal, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (157, 158, 159, 160, 161)
-
-
162. A computer system comprising:
-
a processor; system memory coupled to the processor; and a digital-to-analog converter (DAC) for converting a digital input to an analog output signal; wherein the digital-to-analog converter is operable to receive the digital input from one or more of the processor and the system memory; wherein the digital-to-analog converter includes an embedded parallel decompression engine for decompressing compressed data in the digital input prior to said converting the digital input to the analog output signal, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
163. An analog-to-digital converter (ADC), comprising:
-
logic for converting an analog input signal to a digital output; and a parallel decompression engine for decompressing compressed data in the digital output after said converting the analog input signal to the digital output, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (164, 165, 166, 167, 168)
-
-
169. A computer system comprising:
-
a processor; system memory coupled to the processor; and an analog-to-digital converter (ADC) for converting an analog input signal to a digital output; wherein the analog-to-digital converter is operable to provide the digital output to one or more of the processor and the system memory; wherein the analog-to-digital converter further includes an embedded parallel decompression engine for decompressing compressed data in the digital output after said converting the analog input signal to the digital output, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window.
-
-
170. A digital data reading device comprising:
-
a mechanism for reading digital data from a storage medium operable to store the digital data including compressed data; and a parallel decompression engine for decompressing the compressed data after said reading, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (171, 172, 173, 174, 175, 176, 177, 178, 179)
-
-
180. A computer system comprising:
-
a processor; system memory coupled to the processor; and a digital data reading device operable to read data including compressed data from a digital storage medium; wherein the digital data reading device includes logic for transferring the data read from the digital storage medium to one or more of the processor and the system memory; and wherein the digital data reading device further includes an embedded parallel decompression engine for decompressing the compressed data read from the digital storage medium, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window. - View Dependent Claims (181, 182, 183, 184)
-
-
185. A digital data recording device comprising:
-
input logic for receiving data from one or more sources; recording logic for recording the received data digitally to a recordable medium; and a parallel decompression engine for decompressing compressed data including compressed portions of the received data prior to said recording, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (186, 187, 188, 189, 190, 191, 192, 193, 194)
-
-
195. A computer system comprising:
-
a processor; system memory coupled to the processor; and a digital data recording device coupled to the processor and the system memory and operable to record data digitally to a recordable medium; wherein the digital data recording device includes logic for receiving the data for recording from one or more of the processor and the system memory; and wherein the digital data recording device further includes an embedded parallel decompression engine for decompressing compressed data including compressed portions of the received data prior to said recording, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window. - View Dependent Claims (196, 197, 198, 199)
-
-
200. An optical data recording device comprising:
-
input logic for receiving data from one or more sources; recording logic for recording the received data optically to a recordable medium; and a parallel decompression engine for decompressing compressed data including compressed portions of the received data prior to said recording, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (201, 202, 203, 204, 205, 206)
-
-
207. A computer system comprising:
-
a processor; system memory coupled to the processor; and an optical data recording device coupled to the processor and the system memory and operable to record data optically to a recordable medium; wherein the optical data recording device includes logic for receiving the data to be recorded from one or more of the processor and the system memory; and wherein the optical data recording device further includes an embedded parallel decompression engine for decompressing compressed data including compressed portions of the received data prior to said recording, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols; wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; generate uncompressed data comprising the plurality of symbols; and store the uncompressed plurality of symbols from the current decompression cycle in the combined history window. - View Dependent Claims (208)
-
-
209. A personal digital assistant (PDA) comprising:
-
a memory operable to store data within the PDA; and a parallel decompression engine for decompressing compressed data within the PDA including the data stored to the memory, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (210, 211, 212, 213, 214)
-
-
215. A cellular telephone comprising:
-
a memory for storing data within the cellular telephone; a display operable to display the data; and a parallel decompression engine for decompressing compressed data in or received by the cellular telephone including the data stored to the memory, wherein the compressed data comprises a compressed representation of uncompressed data, the uncompressed data having a plurality of symbols, wherein the parallel decompression engine is operable to; receive the compressed data, wherein the compressed data comprises tokens each describing one or more uncompressed symbols; examine a plurality of tokens from the compressed data in parallel in a current decompression cycle; generate a plurality of selects in parallel in response to examining the plurality of tokens in parallel, wherein each of the plurality of selects points to a symbol in a combined history window; and generate the uncompressed data comprising the plurality of symbols using the plurality of selects. - View Dependent Claims (216, 217, 218, 219, 220)
-
Specification