Adaptable datapath for a digital processing system

Information

  • Patent Grant
  • 7904603
  • Patent Number
    7,904,603
  • Date Filed
    Thursday, September 10, 2009
    15 years ago
  • Date Issued
    Tuesday, March 8, 2011
    13 years ago
Abstract
The present invention includes an adaptable high-performance node (RXN) with several features that enable it to provide high performance along with adaptability. A preferred embodiment of the RXN includes a run-time configurable data path and control path. The RXN supports multi-precision arithmetic including 8, 16, 24, and 32 bit codes. Data flow can be reconfigured to minimize register accesses for different operations. For example, multiply-accumulate operations can be performed with minimal, or no, register stores by reconfiguration of the data path. Predetermined kernels can be configured during a setup phase so that the RXN can efficiently execute, e.g., Discrete Cosine Transform (DCT), Fast-Fourier Transform (FFT) and other operations. Other features are provided.
Description
BACKGROUND OF THE INVENTION

This invention is related in general to digital processing architectures and more specifically to the use of an adaptable data path using register files to efficiently implement digital signal processing operations.


Digital Signal Processing (DSP) calculations require many iterations of fast multiply-accumulate and other operations. Typically, the actual operations are accomplished by “functional units” such as multipliers, adders, accumulators, shifters, etc. The functional units obtain values, or operands, from a fast main memory such as Random Access Memory (RAM). The DSP system can be included within a chip that resides in a device such as a consumer electronic device, computer, etc.


The design of a DSP chip can be targeted for specific DSP applications. For example, in a cellular telephone, a DSP chip may be optimized for Time-Division Multiple Access (TDMA) processing. A Voice-Over-Internet Protocol (VOIP) application may require vocoding operations, and so on. It is desirable for a chip manufacturer to provide a single chip design that can be adapted to different DSP applications. Such a chip is often described as an adaptable, or configurable, design.


One aspect of an adaptable design for a DSP chip includes allowing flexible and configurable routing between the different functional units, memory and other components such as registers, input/output and other resources on the chip. A traditional approach to providing flexible routing uses a data bus. Such an approach is shown in FIG. 1.


In FIG. 1, memory bus 10 interfaces with a memory (not shown) to provide values from the memory to processing components such as functional unit blocks 30, 32 and 34. Values from memory bus 10 are selected and routed through memory bus interface 20 to data path bus 36. The functional unit blocks are able to obtain values from data path bus 36 by using traditional bus arbitration logic (e.g., address lines, bus busy, etc.). Within a block, such as functional unit block 30 of FIG. 1, there may be many different components, such as a bank of multipliers, to which the data from data path bus 36 can be transferred. In this manner, any arbitrary value from memory can be provided to any functional unit block, and to components within blocks of functional units.


Values can also be provided between functional unit blocks by using the data path bus. Another resource is register file 60 provided on data path bus 36 by register file interface 50. Register file 60 includes a bank of fast registers, or fast RAM. Register file interface 50 allows values from data path bus 36 to be exchanged with the register file. Typically, any register or memory location within register file 60 can be placed on data path bus 36 within the same amount of time (e.g., a single cycle). One way to do this is to provide an address to a location in the register file, either on the data path bus, itself or by using a separate set of address lines. This approach is very flexible in that any value in a component of a functional unit block can be transferred to any location within the register file and vice versa.


However, a drawback with the approach of FIG. 1, is that such a design is rather expensive to create, slow and does not scale well. A bus approach requires considerable overhead in control circuitry and arbitration logic. This takes up real estate on the silicon chip and increases power consumption. The use of a large, randomly addressable register file also is quite costly and requires inclusion of tens of thousands of additional transistors. The use of such complicated logic often requires bus cycle times to be slower to accommodate all of the switching activity. Finally, such an approach does not scale well since, e.g., adding more and more functional unit blocks will require additional addressing capability that may mean more lines and logic. Additional register file space may also be required. The data path bus would also need to be routed to connect to the added components. Each functional unit block also requires the bus control and arbitration circuitry.


Thus, it is desirable to provide an interconnection scheme for digital processor applications that improves over one or more of the above, or other, shortcomings in the prior art.


SUMMARY OF THE INVENTION

The present invention uses dedicated groups of configurable data path lines to transfer data values from a main memory to functional units. Each group of data path lines includes a register file dedicated for storage for each group of lines. Functional units can obtain values from, and store values to, main memory and can transfer values among the registers and among other functional units by using the dedicated groups of data path lines and a data address generator (DAG).


DAG circuitry interfaces each group of datapath lines to a main memory bus. Each DAG is controllable to select a value of varying bit width from the memory bus, or to select a value from another group of data path lines. In a preferred embodiment, eight groups of 16 data path lines are used. Each group includes a register file of eight 16-bit words on each group of 16 data path lines. Registers can hold a value onto their associated group of data path lines so that the value is available at a later time on the lines without the need to do a later data fetch.


In one embodiment the invention provides a data path circuit in a digital processing device, wherein the data path circuit is coupled to a memory bus for obtaining values from a memory, the data path circuit comprising a first plurality of data lines; a first data address generator for coupling the first plurality of data lines to the memory bus so that a value from the memory transferred by the memory bus can be placed onto the first plurality of data lines; one or more functional units for performing a digital operation coupled to the plurality of data lines; and a register coupled to the first plurality of data lines, wherein the register selectively stores a value from the first plurality of data lines so that the value is selectively available on the first plurality of data lines.


Another aspect of the invention provides both general and direct data paths between array multipliers and accumulators. Banks of accumulators are coupled to the groups of configurable data path lines and are also provided with direct lines to the multipliers. An embodiment of the invention provides a digital processing system comprising a multiplier; an accumulator; a configurable data path coupled to the multiplier and the accumulator; and a direct data path coupled between the multiplier and the accumulator.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 shows a prior art approach using a data path bus;



FIG. 2A comprising FIG. 2A-1 and FIG. 2A-2 illustrates the configurable data path arrangement of a preferred embodiment of the present invention;





DETAILED DESCRIPTION OF THE INVENTION

A preferred embodiment of the invention is incorporated into a node referred to as a Adaptable Node (RXN) in a adaptive computing engine (ACE) manufactured by Quicksilver, Inc., of San Jose, Calif. Details of the ACE engine and RXN node can be found in the priority and related patent applications reference above. Aspects of the invention described herein are adaptable for use with any generalized digital processing system, such as a system adapted for digital signal processing or other types of processing.



FIG. 2A comprising FIG. 2A-1 and FIG. 2A-2 illustrates the configurable data path arrangement according to a preferred embodiment of the present invention.


In FIG. 2A, digital processing system 100 is designed for fast DSP-type processing such as in discrete cosine transformation (DCT), fast fourier transformation (FFT), etc. Digital processing system 100 includes four 32-bit data path address generators (DAG) to interface between four groups of configurable data path lines 200 and a main memory bus 110. Main memory bus 110 is an arbitrated high-speed bus as is known in the art. Other types of main memory accessing can be used.


Each group of 32 lines includes two subgroups of 16 lines each. Each subgroup is connected to a register file of eight 16-bit words. For example, DAG 120 is connected to register files 180 and 182. DAG 122 is connected to register files 184 and 186. Similarly, DAGs 124 and 126 are connected to register files 188, 190 and 192, 194, respectively. Naturally, other embodiments can use any number of DAGs, groups, and subgroups register files. Although specific bit widths, numbers of lines, components, etc., and specific connectivity are described, many variations are possible and are within the scope of the invention. Although the DAGs play a major role in the preferred embodiment, other embodiments can use other types of interfacing to the main memory bus. Although the DAGs provide a high degree of configurable routing options (as discussed below), other embodiments can vary in the degree of configurability, and in the specific configuration options and control methods. In some cases, simple registers, register files, multiplexers or other components might be used in place of the DAGs of the present invention.


The use of register files on each of the discrete subgroup lines simplifies the interconnection architecture from that of the more generalized bus and multiport register file shown in FIG. 1 of the prior art. This approach can also provide benefits in reduced transistor count, power consumption, improved scalability, efficient data access and other advantages. Although configuring the data path of the present invention may be more complex than with generalized approaches, in practice, a compiler is able to automatically handle the configuration transparently to a human programmer. This allows creation of faster-executing code for a variety of DSP applications by using the same hardware architecture without placing any undue burden on the programmer. If desired, a programmer can customize the data path configuration in order to further optimize processing execution.


Groups of data path lines 200 are used to transfer data from memory bus 110 to functional units within blocks 130 and 132, and also to transfer data among the functional units, themselves. The functional unit blocks are essentially the same so only block 130 is discussed in detail. Functional units include Programmable Array Multipliers (PAMs) 140, accumulators (and shift registers) 150, data cache 160 and Arithmetic/Logic Units (ALUs) 170 and 172. Naturally, the functional units used in any specific embodiment can vary in number and type from that shown in FIG. 2A.


Functional units are connected to the data path line groups via multiplexers and demultiplexers such as 210 and 220, respectively. Inputs and Outputs (I/Os) from the functional units can, optionally, use multiplexing to more than one subgroup of data path lines; or an I/O can be connected directly to one subgroup. A preferred embodiment uses pipeline registers between I/O ports and data path lines, as shown by boxes labeled “p” in FIG. 2A. Pipeline registers allow holding data at I/O ports, onto data lines, or for other purposes. The pipeline registers also allow obtaining a zero, 1, or other desired binary values and provide other advantages. Pipeline registers are described in more detail in the co-pending patent application “Input Pipeline Registers For A Node In An Adaptive Computing Engine” referenced above.


Table I, below, shows DAG operations. The configuration of the data path from cycle to cycle is set by a control word, or words obtained from the main memory bus in accordance with controller modules such as a hardware task manager, scheduler and other processes and components not shown in FIG. 2A but discussed in related patent applications. Part of the configuration information includes fields for DAG operations. A DAG operation can change from cycle to cycle and includes reading data of various widths from memory or from another DAG. DAG operations other than those shown in Table I can be used. Each DAG has one 5-bit ‘dag-op’ field and one 4-bit ‘address’ field. There is a single ‘pred’ field that defines non-sequencing operations.












TABLE I





Dag-op
Mnemonic
Description
Cycles







0x00
read8
Read 8-bits from memory
1


0x01
read8x
Read 8-bits from memory and sign extend to 32-bits
1


0x02
read16
Read 16-bits from memory
1


0x03
read16x
Read 16-bits from memory and sign extend to 32-bits
1


0x04
read24
Read 24-bits from memory
1


0x05
read24x
Read 24-bits from memory and sign extend to 32-bits
1


0x06
read32
Read 32-bits from memory
1


0x07
write8
Write 8-bits to memory
1


0x08
write16
Write 16-bits to memory
1


0x09
write24
Write 24-bits to memory
1


0x0A
write32
Write 32-bits to memory
1


0x0B
writeMindp
Write 32-bits (only mode supported) to MIN write queue from the data path
1




buses


0x0C
writeMinM
Write 32-bits (only mode supported) to MIN write queue from a 32-bit memory
1




read.
(pipelined)


0x0D
readdag16
Read a 16 bit value from one DAG register
0


0x0E
readdag32
Read a 32 bit value from two DAG registers
0


0x0F
load32dp
Load two 16-bit DAG registers or 32-bit write buffer using 32-bit data in
1




dp2n:dp2n + 1 connecting to DAGn


0x10
load16dpn
Load a DAG register from an even data path bus
1


0x11
load16dpn + 1
Load a DAG register from an odd data path bus 1


0x12
modify
Modify address but do not do a memory access.
1


0x13
Dagnoop
Do nothing. All DAG operations execute every clock cycle until this operation
1




is chosen


0x14
Dagcont
Continue the previous operation
1


0x15
writePA
Writes 32-bits of data from memory into ‘tfrl’ or ‘tbrl’
1


0x16
writeMinbuf
Write 32-bits to MIN write queue from buffer
1









For dag-op: 0x00 to 0x0A, 0x0C and 0x12 the DAG operation format of Table II applies. The address field is divided into action and context as shown.









TABLE II









embedded image












Action


The ‘action’ field describes the address modification/generation process using a set of registers (base, limit, index and delta) pointed to by the ‘context’ field.









TABLE 1







DAG address calculation









action
Operation
Description





00
Supply an
Address = Base + Index



address and
Index = Index + delta (delta is a signed value)



post modify
If Index >= limit, Index = Index − limit




If Index < 0, Index = limit + Index


01
Supply a
Index = Index + delta (delta is a signed value)



pre-modified
If Index >= limit, Index = Index − limit



address
If Index < 0, Index = limit + Index




Address = Base + Index


11
Supply a
Address = Base + B-Index



bit-reversed
B-Index = reverse carry add (Index + delta)



address
(delta is a signed value)




If Index >= limit, Index = Index − Limit




If Index < 0, Index = limit + Index










Context


The ‘context’ field is used to point at a specific DAG setting (base, limit, index and delta) on which an ‘action’ is performed or a DAG register is accessed (II)









TABLE 2







context encoding








Context
Operation





00
Use setting - basen.0, limitn.0, indexn.0, deltan.0 for DAGn


01
Use setting - basen.1, limitn.1, indexn.1, deltan.1 for DAGn


10
Use setting - basen.2, limitn.2, indexn.2, deltan.2 for DAGn


11
Use setting - basen.3, limitn.3, indexn.3, deltan.3 for DAGn









For convenience, an ACTION function is defined according to the action table—ACTION (action, context) where ‘action’ and ‘context’ refer to the DAG operation fields. This function is used in the individual DAG operation descriptions.


(II) For dag-op: 0x0D to 0x11 the following DAG operation format applies:
















embedded image











The ‘dag-reg’ field is used to identify a specific 16-bit register (base or limit or index or delta) within a DAG ‘context’ as specified by the dag-reg table (below)









TABLE 3







dag-reg encoding for dag-op 0x0D, 0x10 and 0x11








dag-reg
Register





00
base


01
limit


10
index


11
delta









For operations 0x0E and 0x0F, the dag-reg field is used to address 2 DAG registers—base and limit or index and delta or a write buffer location. In this case, the ‘dag-reg’ table is as follows:









TABLE 4







dag-reg encoding for dag-op 0x0E








dag-reg
Register





0X
Base and limit


1X
Index and delta





X - don't care













TABLE 5







dag-reg encoding for dag-op 0x0F








dag-reg
Register





00
Base and limit


10
Index and delta


11
Location ‘n’ of write buffer for DAGn





01 - undefined






(III) For dag-op: 0x0B, 0x13, 0x14, and 0x16 the following DAG operation format applies:
















embedded image











The address field in this case is unused, which is represented as “0” in the RXN.


(IV) For dag-op: 0x15 the following DAG operation format applies;
















embedded image











The ‘T-frl/brl’ field is used to choose between the translation frl and the translation brl













T-frl/brl
Operation







0
The ‘idx’ field points to T-frl


1
The ‘idx’ field points to T-brl









The T-frl and T-brl each have 5 32-bit locations. The ‘idx’ field is used to address these five locations
















add
Operation









000
Location 0



001
Location 1



010
Location 2



011
Location 3



100
Location 4



101
Location 5











Pred


The universal ‘pred’ field along with the ‘s’ bit determines whether a DAG operation is executed or not executed. When a DAG operation is ‘not executed’ due to its predication, the last executed DAG operation executes again.









TABLE 6







Pred field encoding








Pred
Description





00
Never execute


01
Always execute (execute specified operations)


10
Execute if condition is true (“s” bit is set) (execute specified



operation)



If condition is false (“s” bit is not set) (do not execute the DAG



operation)


11
Execute if condition is false (“s” bit is not set) (execute specified



operation)



If condition is true (“s” bit is set) (do not execute the DAG



operation)





Note:


All DAG operations execute every clock cycle until “dagnoop” operation is chosen.






Although the invention has been discussed with respect to specific embodiments thereof, these embodiments are merely illustrative, and not restrictive, of the invention. For example, although the node has been described as part of an adaptive computing machine, or environment, aspects of the filter node design, processing and functions can be used with other types of systems. In general, the number of lines and specific interconnections can vary in different embodiments. Specific components, e.g., the data address generator, can be implemented in different ways in different designs. Components may be omitted, substituted or implemented with one or more of the same or different components. For example, a data address generator can be substituted with a general register, or it can be a different component responsive to a control word. Many variations are possible.


Thus, the scope of the invention is to be determined solely by the claims.

Claims
  • 1. A reconfigurable data path circuit coupled to a memory bus for obtaining data from a memory, the reconfigurable data path circuit comprising: a plurality of functional units configured to perform a digital operation;one or more data address generators coupled to the memory bus;a configurable data path configurably coupled to the one or more data address generators and the plurality of functional units, the configurable data path being configurable in response to a first configuration information to provide a data path configuration by configuring or reconfiguring interconnections between the one or more data address generators and the plurality of functional units, the data path configuration including the configured or reconfigured interconnections;wherein the one or more data address generators are coupled to the memory bus and the configurable data path, each of the one or more data address generators being configurable in response to a second configuration information that is different from the first configuration information to generate memory addresses from which data is to be read from or written to the memory for the data path configuration; andwherein the second configuration information includes predication information, the generation of the memory addresses in response to the second configuration information being conditioned upon the predication information.
  • 2. A reconfigurable data path circuit of claim 1, wherein each of the one or more data address generators is configurable as a function of both the predication information and other information in the second configuration information to determine whether to generate one of the memory addresses in response to the second configuration information.
  • 3. The reconfigurable data path circuit of claim 2, wherein each of the one or more data address generators is configurable as a function of the predication information to operate other than generating one of the memory addresses.
  • 4. The reconfigurable data path circuit of claim 1, wherein each of the one or more data address generators is configurable for non-sequential operation as a function of the predication information.
  • 5. The reconfigurable data path circuit of claim 1, wherein the first and second configuration information each comprises a separate control word.
  • 6. The reconfigurable data path circuit of claim 5, wherein each separate control word includes an operation field including the predication information.
  • 7. The reconfigurable data path circuit of claim 6, wherein each separate control word further comprises an address field designating one of the memory addresses.
  • 8. The reconfigurable data path circuit of claim 1, wherein the one or more data address generators are further configurable or reconfigurable in response to the second configuration information to read data of one or more widths from the memory bus consistent with and for the data path configuration.
  • 9. The reconfigurable data path circuit of claim 1, wherein the one or more data address generators are configurable in response to the second configuration information to split data received from the memory bus onto the configurable data path.
  • 10. The reconfigurable data path circuit of claim 9, wherein the one or more data address generators transfer data to the configurable data path for processing by the functional units in parallel.
  • 11. The reconfigurable data path circuit of claim 1, wherein the configurable data path is reconfigurable to change from a first data path configuration having one 16 bit path to a second data path configuration having two 8 bit paths in response to the first configuration information; and each of the one or more data address generators is configurable in response to the second configuration information to generate two memory addresses for writing and reading two 8 bit words for the second data path configuration, and wherein the generation of the two memory addresses is conditioned upon the predication information.
  • 12. The reconfigurable data path circuit of claim 1, wherein the one or more data address generators are further configurable in response to the second configuration information for transferring data to the memory bus for writing to the memory, the generation of a respective memory address for the writing of the data being conditioned upon the predication information.
  • 13. The reconfigurable data path circuit of claim 1, wherein the plurality of functional units include a multiplier and an accumulator, the accumulator being adapted to accumulate outputs from the multipliers into a register, the reconfigurable data path circuit further comprising a direct data path coupling the multiplier and the accumulator.
  • 14. The reconfigurable data path circuit of claim 13, wherein the plurality of functional units further includes an Arithmetic Logic Unit (ALU).
  • 15. The reconfigurable data path circuit of claim 1, further comprising a plurality of register files each configurably interconnected by the configurable data path to the plurality of functional units and to one of the one or more data address generators.
  • 16. The reconfigurable data path circuit of claim 1, wherein the configurable data path further comprises a reconfigurable interconnection network configurable for configuring or reconfiguring the interconnections between the one or more data address generators and the plurality of functional units for the data path configuration.
  • 17. The reconfigurable data path circuit of claim 16, wherein the reconfigurable interconnection network includes a plurality of groups of data lines configurably coupled to the one or more data address generators and the plurality of functional units.
  • 18. The reconfigurable data path circuit of claim 17, wherein the reconfigurable interconnection network is configurable or reconfigurable to create portions of the reconfigurable data path having different widths, the portions being coupled between the one or more data address generators and the plurality of functional units.
  • 19. The reconfigurable data path circuit of claim 15, wherein the configurable data path further comprises a reconfigurable interconnection network comprising a plurality of groups of data lines configurably coupled to the one or more data address generators, the functional units, and the plurality of register files in the configurable data path, wherein each register file of the plurality of register files is coupled to a group of data lines of the plurality of groups of data lines in the configurable data path in a one-to-one correspondence, the plurality of register files being adapted for storing data from the respective group of data lines to which the respective ones of the plurality of register files is coupled.
  • 20. The reconfigurable data path circuit of claim 1, wherein the interconnections between the configurable data path and the one or more data address generators are configurable in real time.
  • 21. The reconfigurable data path circuit of claim 1, wherein at least one of the plurality of functional units is configurable to provide at least two different functions.
  • 22. The reconfigurable data path circuit of claim 16, wherein the plurality of functional units are configurable to provide a second plurality of configurable data paths between respective ones of the plurality of functional units and the reconfigurable interconnection network.
  • 23. The reconfigurable data path circuit of claim 22, wherein the second plurality of configurable data paths are configurable for a plurality of data widths.
  • 24. The reconfigurable data path circuit of claim 1, wherein each of the functional units of the plurality of functional units comprises one of a multiplier, an accumulator, a data cache, an Arithmetic Logic Unit (ALU), or a register file.
  • 25. The reconfigurable data path circuit of claim 24, wherein the reconfigurable data path includes the multiplier, the accumulator, the data cache, the Arithmetic Logic Unit (ALU), the register file, and the reconfigurable data path includes interconnects between the functional units of the reconfigurable data path.
  • 26. The reconfigurable data path circuit of claim 1, wherein each of the one or more data address generators is further configurable in response to the second configuration information to control memory addresses from which data is to be read from or written to the memory for the data path configuration, the control of the memory addresses in response to the second configuration information being conditioned upon the predication information.
  • 27. A digital processing system comprising: a memory bus coupled to a memory; anda reconfigurable data path circuit coupled to the memory bus for obtaining data from the memory, the reconfigurable data path circuit comprising: a plurality of functional units configurable to perform a digital operation; andone or more data address generators coupled to the memory bus;a configurable data path configurably coupled to the one or more data address generators and the plurality of functional units, the configurable data path being configurable in response to a first configuration information to provide a data path configuration by configuring or reconfiguring interconnections between the one or more data address generators and the plurality of functional units, the data path configuration including the configured or reconfigured interconnections;wherein the one or more data address generators are coupled to the memory bus and the configurable data path, each of the one or more data address generators being configurable in response to a second configuration information that is different from the first configuration information to generate memory addresses from which data is to be read from or written to the memory for the data path configuration; andwherein the second configuration information includes predication information, the generation of the memory addresses in response to the second configuration information being conditioned upon the predication information.
  • 28. The digital processing system of claim 27, wherein each of the one or more data address generators is further configurable in response to the second configuration information to control memory addresses from which data is to be read from or written to the memory for the data path configuration, the control of the memory addresses in response to the second configuration information being conditioned upon the predication information.
  • 29. The digital processing system of claim 27, wherein each of the one or more data address generators is configurable as a function of both the predication information and other information in the second configuration information to determine whether to generate one of the memory addresses in response to the second configuration information.
  • 30. The digital processing system of claim 27, wherein the configurable data path further comprises a reconfigurable interconnection network comprising the plurality of groups of data lines and being configurable for configuring or reconfiguring the interconnections between or among the one or more data address generators and the plurality of functional units for the data path configuration.
  • 31. The digital processing system of claim 30, wherein the reconfigurable interconnection network is configurable or reconfigurable to create portions of the reconfigurable data paths having different widths, the portions being coupled between the one or more data address generators and the plurality of functional units.
  • 32. The digital processing system of claim 30, wherein the plurality of functional units include a multiplier, an accumulator, and an Arithmetic Logic Unit (ALU), the reconfigurable data path circuit further comprising a direct data path coupling the multiplier and the accumulator.
  • 33. The digital processing system of claim 27, wherein at least one of the plurality of functional units is configurable to provide two different functions.
  • 34. A method for generating memory addresses for obtaining data from a memory using a reconfigurable data path circuit coupled to a memory bus, the reconfigurable data path circuit comprising a plurality of functional units configured to perform a digital operation, one or more data address generators coupled to the memory bus, a configurable data path configurably coupled to the one or more data address generators and the plurality of functional units, said method comprising: providing a first configuration information to configure the configurable data path to provide a data path configuration by configuring or reconfiguring interconnections between the one or more data address generators and the plurality of functional units, whereby the one or more data address generators are coupled to the memory bus and the configurable data path;providing a second configuration information, said second configuration information being different from the first configuration information to each of the one or more data address generators;determining whether the second configuration information includes predication information; andgenerating memory addresses from which data is to be read from or written to the memory for the data path configuration in response to the second configuration information when the second configuration information includes predication information.
  • 35. The method of claim 34, wherein each of the one or more data address generators is configurable as a function of both the predication information and other information in the second configuration information to determine whether to generate one of the memory addresses in response to the second configuration information.
  • 36. The method of claim 34, wherein each of the one or more data address generators is configurable for non-sequential operation as a function of the predication information.
  • 37. The method of claim 34, wherein the first and second configuration information each comprises a separate control word.
  • 38. The method of claim 34, further comprising configuring the one or more data address generators in response to the second configuration information to read data of one or more widths from the memory bus consistent with and for the data path configuration.
  • 39. The method of claim 34, further comprising configuring the one or more data address generators in response to the second configuration information to split data received from the memory bus onto the configurable data path.
  • 40. The method of claim 34, wherein the configurable data path is reconfigurable to change from a first data path configuration having bit path of a predetermined size to a second data path configuration having two bit paths that are smaller than the predetermined size in response to the first configuration information; and each of the one or more data address generators is configurable in response to the second configuration information to generate two memory addresses for writing and reading two words for the second data path configuration, and wherein the generation of the two memory addresses is conditioned upon the predication information.
  • 41. The method of claim 34, further comprising configuring the one or more data address generators in response to the second configuration information for transferring data to the memory bus for writing to the memory, the generation of a respective memory address for the writing of the data being conditioned upon the predication information in the second configuration information.
  • 42. The method of claim 34, wherein the plurality of functional units include a multiplier and an accumulator, the accumulator being adapted to accumulate outputs from the multipliers into a register, the reconfigurable data path circuit further comprising a direct data path coupling the multiplier and the accumulator.
  • 43. The method of claim 34, wherein the configurable data path further comprises a reconfigurable interconnection network configurable for configuring or reconfiguring the interconnections between the one or more data address generators and the plurality of functional units for the data path configuration.
  • 44. The method of claim 34, wherein at least one of the plurality of functional units is configurable to provide at least two different functions.
  • 45. The method of claim 34, wherein the plurality of functional units are configurable to provide a second plurality of configurable data paths between respective ones of the plurality of functional units and a reconfigurable interconnection network.
  • 46. The method of claim 34, further comprising configuring each of the one or more data address generators in response to the second configuration information to control memory addresses from which data is to be read from or written to the memory for the data path configuration, the control of the memory addresses in response to the second configuration information being conditioned upon the predication information in the second configuration information.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 11/800,577, filed May 3, 2007, which is a continuation of U.S. application Ser. No. 10/626,833, filed Jul. 23, 2003, which claims the benefit of U.S. Provisional Application No. 60/422,063, filed Oct. 28, 2002, each of the aforementioned applications are incorporated by reference herein. This application is related to the following co-pending U.S. Patent Applications that are each incorporated by reference as if set forth in full in this application: “Input Pipeline Registers For A Node In An Adaptive Computing Engine,” Ser. No. 10/626,479, filed Jul. 23, 2003; “Cache For Instruction Set Architecture Using Indexes To Achieve Compression”, Ser. No. 11/628,083, filed Jul. 24, 2003; “Method For Ordering Operations For Scheduling By A Modulo Scheduler For Processors With A Large Number Of Function Units And Reconfigurable Data Paths”, Ser. No. 10/146,857, filed on May 15, 2002; “Uniform Interface For A Functional Node In An Adaptive Computing Engine”, Ser. No. 10/443,554, filed on May 21, 2003; “Hardware Task Manager For Adaptive Computing”, Ser. No. 10/443,501, filed on May 21, 2003; and “Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed, Application Specific Computational Elements”, Ser. No. 09/815,122, filed on Mar. 22, 2001.

US Referenced Citations (464)
Number Name Date Kind
3409175 Byrne Nov 1968 A
3666143 Weston May 1972 A
3938639 Birrell Feb 1976 A
3949903 Benasutti et al. Apr 1976 A
3960298 Birrell Jun 1976 A
3967062 Dobias Jun 1976 A
3991911 Shannon et al. Nov 1976 A
3995441 McMillin Dec 1976 A
4076145 Zygiel Feb 1978 A
4143793 McMillin et al. Mar 1979 A
4172669 Edelbach Oct 1979 A
4174872 Fessler Nov 1979 A
4181242 Zygiel et al. Jan 1980 A
RE30301 Zygiel Jun 1980 E
4218014 Tracy Aug 1980 A
4222972 Caldwell Sep 1980 A
4237536 Enelow et al. Dec 1980 A
4252253 Shannon Feb 1981 A
4302775 Widergren et al. Nov 1981 A
4333587 Fessler et al. Jun 1982 A
4354613 Desai et al. Oct 1982 A
4377246 McMillin et al. Mar 1983 A
4393468 New Jul 1983 A
4413752 McMillin et al. Nov 1983 A
4458584 Annese et al. Jul 1984 A
4466342 Basile et al. Aug 1984 A
4475448 Shoaf et al. Oct 1984 A
4509690 Austin et al. Apr 1985 A
4520950 Jeans Jun 1985 A
4549675 Austin Oct 1985 A
4553573 McGarrah Nov 1985 A
4560089 McMillin et al. Dec 1985 A
4577782 Fessler Mar 1986 A
4578799 Scholl et al. Mar 1986 A
RE32179 Sedam et al. Jun 1986 E
4633386 Terepin Dec 1986 A
4658988 Hassell Apr 1987 A
4694416 Wheeler et al. Sep 1987 A
4711374 Gaunt et al. Dec 1987 A
4713755 Worley, Jr. et al. Dec 1987 A
4719056 Scott Jan 1988 A
4726494 Scott Feb 1988 A
4747516 Baker May 1988 A
4748585 Chiarulli et al. May 1988 A
4760525 Webb Jul 1988 A
4760544 Lamb Jul 1988 A
4765513 McMillin et al. Aug 1988 A
4766548 Cedrone et al. Aug 1988 A
4781309 Vogel Nov 1988 A
4800492 Johnson et al. Jan 1989 A
4811214 Nosenchuck et al. Mar 1989 A
4824075 Holzboog Apr 1989 A
4827426 Patton et al. May 1989 A
4850269 Hancock et al. Jul 1989 A
4856684 Gerstung Aug 1989 A
4901887 Burton Feb 1990 A
4921315 Metcalfe et al. May 1990 A
4930666 Rudick Jun 1990 A
4932564 Austin et al. Jun 1990 A
4936488 Austin Jun 1990 A
4937019 Scott Jun 1990 A
4960261 Scott et al. Oct 1990 A
4961533 Teller et al. Oct 1990 A
4967340 Dawes Oct 1990 A
4974643 Bennett et al. Dec 1990 A
4982876 Scott Jan 1991 A
4993604 Gaunt et al. Feb 1991 A
5007560 Sassak Apr 1991 A
5021947 Campbell et al. Jun 1991 A
5040106 Maag Aug 1991 A
5044171 Farkas Sep 1991 A
5090015 Dabbish et al. Feb 1992 A
5129549 Austin Jul 1992 A
5139708 Scott Aug 1992 A
5156301 Hassell et al. Oct 1992 A
5156871 Goulet et al. Oct 1992 A
5165575 Scott Nov 1992 A
5190083 Gupta et al. Mar 1993 A
5190189 Zimmer et al. Mar 1993 A
5193151 Jain Mar 1993 A
5193718 Hassell et al. Mar 1993 A
5202993 Tarsy et al. Apr 1993 A
5203474 Haynes Apr 1993 A
5240144 Feldman Aug 1993 A
5261099 Bigo et al. Nov 1993 A
5263509 Cherry et al. Nov 1993 A
5269442 Vogel Dec 1993 A
5280711 Motta et al. Jan 1994 A
5297400 Benton et al. Mar 1994 A
5301100 Wagner Apr 1994 A
5303846 Shannon Apr 1994 A
5335276 Thompson et al. Aug 1994 A
5339428 Burmeister et al. Aug 1994 A
5343716 Swanson et al. Sep 1994 A
5361362 Benkeser et al. Nov 1994 A
5368198 Goulet Nov 1994 A
5379343 Grube et al. Jan 1995 A
5381546 Servi et al. Jan 1995 A
5381550 Jourdenais et al. Jan 1995 A
5388212 Grube et al. Feb 1995 A
5392960 Kendt et al. Feb 1995 A
5437395 Bull et al. Aug 1995 A
5450557 Kopp et al. Sep 1995 A
5454406 Rejret et al. Oct 1995 A
5465368 Davidson et al. Nov 1995 A
5479055 Eccles Dec 1995 A
5490165 Blakeney, II et al. Feb 1996 A
5491823 Ruttenberg Feb 1996 A
5507009 Grube et al. Apr 1996 A
5515519 Yoshioka et al. May 1996 A
5517600 Shimokawa May 1996 A
5519694 Brewer et al. May 1996 A
5522070 Sumimoto May 1996 A
5530964 Alpert et al. Jun 1996 A
5534796 Edwards Jul 1996 A
5542265 Rutland Aug 1996 A
5553755 Bonewald et al. Sep 1996 A
5555417 Odnert et al. Sep 1996 A
5560028 Sachs et al. Sep 1996 A
5560038 Haddock Sep 1996 A
5570587 Kim Nov 1996 A
5572572 Kawan et al. Nov 1996 A
5590353 Sakakibara et al. Dec 1996 A
5594657 Cantone et al. Jan 1997 A
5600810 Ohkami Feb 1997 A
5600844 Shaw et al. Feb 1997 A
5602833 Zehavi Feb 1997 A
5603043 Taylor et al. Feb 1997 A
5607083 Vogel et al. Mar 1997 A
5608643 Wichter et al. Mar 1997 A
5611867 Cooper et al. Mar 1997 A
5623545 Childs et al. Apr 1997 A
5625669 McGregor et al. Apr 1997 A
5626407 Westcott May 1997 A
5630206 Urban et al. May 1997 A
5635940 Hickman et al. Jun 1997 A
5646544 Iadanza Jul 1997 A
5646545 Trimberger et al. Jul 1997 A
5647512 Assis Mascarenhas de Oliveira et al. Jul 1997 A
5667110 McCann et al. Sep 1997 A
5684793 Kiema et al. Nov 1997 A
5684980 Casselman Nov 1997 A
5687236 Moskowitz et al. Nov 1997 A
5694613 Suzuki Dec 1997 A
5694794 Jerg et al. Dec 1997 A
5699328 Ishizaki et al. Dec 1997 A
5701482 Harrison et al. Dec 1997 A
5704053 Santhanam Dec 1997 A
5706191 Bassett et al. Jan 1998 A
5706976 Purkey Jan 1998 A
5712996 Schepers Jan 1998 A
5720002 Wang Feb 1998 A
5721693 Song Feb 1998 A
5721854 Ebicioglu et al. Feb 1998 A
5732563 Bethuy et al. Mar 1998 A
5734808 Takeda Mar 1998 A
5737631 Trimberger Apr 1998 A
5742180 DeHon et al. Apr 1998 A
5742821 Prasanna Apr 1998 A
5745366 Highma et al. Apr 1998 A
RE35780 Hassell et al. May 1998 E
5751295 Becklund et al. May 1998 A
5754227 Fukuoka May 1998 A
5758261 Wiedeman May 1998 A
5768561 Wise Jun 1998 A
5778439 Trimberger et al. Jul 1998 A
5784636 Rupp Jul 1998 A
5787237 Reilly Jul 1998 A
5790817 Asghar et al. Aug 1998 A
5791517 Avital Aug 1998 A
5791523 Oh Aug 1998 A
5794062 Baxter Aug 1998 A
5794067 Kadowaki Aug 1998 A
5802055 Krein et al. Sep 1998 A
5818603 Motoyama Oct 1998 A
5822308 Weigand et al. Oct 1998 A
5822313 Malek et al. Oct 1998 A
5822360 Lee et al. Oct 1998 A
5828858 Athanas et al. Oct 1998 A
5829085 Jerg et al. Nov 1998 A
5835753 Witt Nov 1998 A
5838165 Chatter Nov 1998 A
5845815 Vogel Dec 1998 A
5860021 Klingman Jan 1999 A
5862961 Motta et al. Jan 1999 A
5870427 Teidemann, Jr. et al. Feb 1999 A
5873045 Lee et al. Feb 1999 A
5881106 Cartier Mar 1999 A
5884284 Peters et al. Mar 1999 A
5886537 Macias et al. Mar 1999 A
5887174 Simons et al. Mar 1999 A
5889816 Agrawal et al. Mar 1999 A
5890014 Long Mar 1999 A
5892900 Ginter et al. Apr 1999 A
5892961 Trimberger Apr 1999 A
5894473 Dent Apr 1999 A
5901884 Goulet et al. May 1999 A
5903886 Heimlich et al. May 1999 A
5907285 Toms et al. May 1999 A
5907580 Cummings May 1999 A
5910733 Bertolet et al. Jun 1999 A
5912572 Graf, III Jun 1999 A
5913172 McCabe et al. Jun 1999 A
5917852 Butterfield et al. Jun 1999 A
5920801 Thomas et al. Jul 1999 A
5931918 Row et al. Aug 1999 A
5933642 Greenbaum et al. Aug 1999 A
5933855 Rubinstein Aug 1999 A
5940438 Poon et al. Aug 1999 A
5949415 Lin et al. Sep 1999 A
5950011 Albrecht et al. Sep 1999 A
5950131 Vilmur Sep 1999 A
5951674 Moreno Sep 1999 A
5953322 Kimball Sep 1999 A
5956518 DeHon et al. Sep 1999 A
5956967 Kim Sep 1999 A
5959811 Richardson Sep 1999 A
5959881 Trimberger et al. Sep 1999 A
5963048 Harrison et al. Oct 1999 A
5966534 Cooke et al. Oct 1999 A
5970254 Cooke et al. Oct 1999 A
5987105 Jenkins et al. Nov 1999 A
5987611 Freund Nov 1999 A
5991302 Berl et al. Nov 1999 A
5991308 Fuhrmann et al. Nov 1999 A
5993739 Lyon Nov 1999 A
5999734 Willis et al. Dec 1999 A
6005943 Cohen et al. Dec 1999 A
6006249 Leong Dec 1999 A
6016395 Mohamed Jan 2000 A
6021186 Suzuki et al. Feb 2000 A
6021492 May Feb 2000 A
6023742 Ebeling et al. Feb 2000 A
6023755 Casselman Feb 2000 A
6028610 Deering Feb 2000 A
6036166 Olson Mar 2000 A
6039219 Bach et al. Mar 2000 A
6041322 Meng et al. Mar 2000 A
6041970 Vogel Mar 2000 A
6046603 New Apr 2000 A
6047115 Mohan et al. Apr 2000 A
6052600 Fette et al. Apr 2000 A
6055314 Spies et al. Apr 2000 A
6056194 Kolls May 2000 A
6059840 Click, Jr. May 2000 A
6061580 Altschul et al. May 2000 A
6073132 Gehman Jun 2000 A
6076174 Freund Jun 2000 A
6078736 Guccione Jun 2000 A
6085740 Ivri et al. Jul 2000 A
6088043 Kelleher et al. Jul 2000 A
6091263 New et al. Jul 2000 A
6091765 Pietzold, III et al. Jul 2000 A
6094065 Tavana et al. Jul 2000 A
6094726 Gonion et al. Jul 2000 A
6111893 Volftsun et al. Aug 2000 A
6111935 Hughes-Hartogs Aug 2000 A
6115751 Tam et al. Sep 2000 A
6120551 Law et al. Sep 2000 A
6122670 Bennett et al. Sep 2000 A
6138693 Matz Oct 2000 A
6141283 Bogin et al. Oct 2000 A
6150838 Wittig et al. Nov 2000 A
6154494 Sugahara et al. Nov 2000 A
6157997 Oowaki et al. Dec 2000 A
6175854 Bretscher Jan 2001 B1
6175892 Sazzad et al. Jan 2001 B1
6181981 Varga et al. Jan 2001 B1
6185418 MacLellan et al. Feb 2001 B1
6192070 Poon et al. Feb 2001 B1
6192255 Lewis et al. Feb 2001 B1
6192388 Cajolet Feb 2001 B1
6195788 Leaver et al. Feb 2001 B1
6198924 Ishii et al. Mar 2001 B1
6199181 Rechef et al. Mar 2001 B1
6202130 Scales, III et al. Mar 2001 B1
6219697 Lawande et al. Apr 2001 B1
6219756 Kasamizugami Apr 2001 B1
6219780 Lipasti Apr 2001 B1
6223222 Fijolek et al. Apr 2001 B1
6226387 Tewfik et al. May 2001 B1
6230307 Davis et al. May 2001 B1
6237029 Master et al. May 2001 B1
6246883 Lee Jun 2001 B1
6247125 Noel-Baron et al. Jun 2001 B1
6249251 Chang et al. Jun 2001 B1
6258725 Lee et al. Jul 2001 B1
6263057 Silverman Jul 2001 B1
6266760 DeHon et al. Jul 2001 B1
6272579 Lentz et al. Aug 2001 B1
6281703 Furuta et al. Aug 2001 B1
6282627 Wong et al. Aug 2001 B1
6289375 Knight et al. Sep 2001 B1
6289434 Roy Sep 2001 B1
6289488 Dave et al. Sep 2001 B1
6292822 Hardwick Sep 2001 B1
6292827 Raz Sep 2001 B1
6292830 Taylor et al. Sep 2001 B1
6301653 Mohamed et al. Oct 2001 B1
6305014 Roediger et al. Oct 2001 B1
6311149 Ryan et al. Oct 2001 B1
6321985 Kolls Nov 2001 B1
6346824 New Feb 2002 B1
6347346 Taylor Feb 2002 B1
6349394 Brock et al. Feb 2002 B1
6353841 Marshall et al. Mar 2002 B1
6356994 Barry et al. Mar 2002 B1
6359248 Mardi Mar 2002 B1
6360256 Lim Mar 2002 B1
6360259 Bradley Mar 2002 B1
6360263 Kurtzberg et al. Mar 2002 B1
6363411 Dugan et al. Mar 2002 B1
6366999 Drabenstott et al. Apr 2002 B1
6377983 Cohen et al. Apr 2002 B1
6378072 Collins et al. Apr 2002 B1
6381735 Hunt Apr 2002 B1
6385751 Wolf May 2002 B1
6405214 Meade, II Jun 2002 B1
6408039 Ito Jun 2002 B1
6410941 Taylor et al. Jun 2002 B1
6411612 Halford et al. Jun 2002 B1
6421372 Bierly et al. Jul 2002 B1
6421809 Wuytack et al. Jul 2002 B1
6430624 Jamtgaard et al. Aug 2002 B1
6433578 Wasson Aug 2002 B1
6434590 Blelloch et al. Aug 2002 B1
6438737 Morelli et al. Aug 2002 B1
6456996 Crawford, Jr. et al. Sep 2002 B1
6459883 Subramanian et al. Oct 2002 B2
6473609 Schwartz et al. Oct 2002 B1
6507947 Schreiber et al. Jan 2003 B1
6510138 Pannell Jan 2003 B1
6510510 Garde Jan 2003 B1
6538470 Langhammer et al. Mar 2003 B1
6556044 Langhammer et al. Apr 2003 B2
6563891 Eriksson et al. May 2003 B1
6570877 Kloth et al. May 2003 B1
6577678 Scheuermann Jun 2003 B2
6587684 Hsu et al. Jul 2003 B1
6590415 Agrawal et al. Jul 2003 B2
6601086 Howard et al. Jul 2003 B1
6601158 Abbott et al. Jul 2003 B1
6604085 Kolls Aug 2003 B1
6606529 Crowder, Jr. et al. Aug 2003 B1
6615333 Hoogerbrugge et al. Sep 2003 B1
6618434 Heidari-Bateni et al. Sep 2003 B2
6640304 Ginter et al. Oct 2003 B2
6653859 Sihlbom et al. Nov 2003 B2
6662260 Wertheim et al. Dec 2003 B1
6675265 Barroso et al. Jan 2004 B2
6691148 Zinky et al. Feb 2004 B1
6711617 Bantz et al. Mar 2004 B1
6718182 Kung Apr 2004 B1
6721286 Williams et al. Apr 2004 B1
6721884 De Oliveira Kastrup Pereira et al. Apr 2004 B1
6732354 Ebeling et al. May 2004 B2
6735621 Yoakum et al. May 2004 B1
6738744 Kirovski et al. May 2004 B2
6748360 Pitman et al. Jun 2004 B2
6754470 Hendrickson et al. Jun 2004 B2
6760587 Holtzman et al. Jul 2004 B2
6766163 Sharma et al. Jul 2004 B1
6778212 Deng et al. Aug 2004 B1
6785341 Walton et al. Aug 2004 B2
6819140 Yamanaka et al. Nov 2004 B2
6823448 Roth et al. Nov 2004 B2
6829633 Gelfer et al. Dec 2004 B2
6832250 Coons et al. Dec 2004 B1
6836839 Master et al. Dec 2004 B2
6865664 Budrovic et al. Mar 2005 B2
6871236 Fishman et al. Mar 2005 B2
6883084 Donohoe Apr 2005 B1
6894996 Lee May 2005 B2
6901440 Bimm et al. May 2005 B1
6912515 Jackson et al. Jun 2005 B2
6985517 Matsumoto et al. Jan 2006 B2
6986021 Master et al. Jan 2006 B2
6988139 Jervis et al. Jan 2006 B1
7032229 Flores et al. Apr 2006 B1
7044741 Leem May 2006 B2
7082456 Mani-Meitav et al. Jul 2006 B2
7139910 Ainsworth et al. Nov 2006 B1
7142731 Toi Nov 2006 B1
7249242 Ramchandran Jul 2007 B2
20010003191 Kovacs et al. Jun 2001 A1
20010023482 Wray Sep 2001 A1
20010029515 Mirsky Oct 2001 A1
20010034795 Moulton et al. Oct 2001 A1
20010039654 Miyamoto Nov 2001 A1
20010048713 Medlock et al. Dec 2001 A1
20010048714 Jha Dec 2001 A1
20010050948 Ramberg et al. Dec 2001 A1
20020010848 Kamano et al. Jan 2002 A1
20020013799 Blaker Jan 2002 A1
20020013937 Ostanevich et al. Jan 2002 A1
20020015435 Rieken Feb 2002 A1
20020015439 Kohli et al. Feb 2002 A1
20020023210 Tuomenoksa et al. Feb 2002 A1
20020024942 Tsuneki et al. Feb 2002 A1
20020024993 Subramanian et al. Feb 2002 A1
20020031166 Subramanian et al. Mar 2002 A1
20020032551 Zakiya Mar 2002 A1
20020035623 Lawande et al. Mar 2002 A1
20020041581 Aramaki Apr 2002 A1
20020042907 Yamanaka et al. Apr 2002 A1
20020061741 Leung et al. May 2002 A1
20020069282 Reisman Jun 2002 A1
20020072830 Hunt Jun 2002 A1
20020078337 Moreau et al. Jun 2002 A1
20020083305 Renard et al. Jun 2002 A1
20020083423 Ostanevich et al. Jun 2002 A1
20020087829 Snyder et al. Jul 2002 A1
20020089348 Langhammer Jul 2002 A1
20020101909 Chen et al. Aug 2002 A1
20020107905 Roe et al. Aug 2002 A1
20020107962 Richter et al. Aug 2002 A1
20020119803 Bitterlich et al. Aug 2002 A1
20020120672 Butt et al. Aug 2002 A1
20020138716 Master et al. Sep 2002 A1
20020141489 Imaizumi Oct 2002 A1
20020147845 Sanchez-Herrero et al. Oct 2002 A1
20020159503 Ramachandran Oct 2002 A1
20020162026 Neuman et al. Oct 2002 A1
20020168018 Scheuermann Nov 2002 A1
20020181559 Heidari-Bateni et al. Dec 2002 A1
20020184291 Hogenauer Dec 2002 A1
20020184498 Qi Dec 2002 A1
20020191790 Anand et al. Dec 2002 A1
20020199090 Wilson Dec 2002 A1
20030007606 Suder et al. Jan 2003 A1
20030012270 Zhou et al. Jan 2003 A1
20030018446 Makowski et al. Jan 2003 A1
20030018700 Giroti et al. Jan 2003 A1
20030023830 Hogenauer Jan 2003 A1
20030026242 Jokinen et al. Feb 2003 A1
20030030004 Dixon et al. Feb 2003 A1
20030046421 Horvitz et al. Mar 2003 A1
20030061260 Rajkumar Mar 2003 A1
20030061311 Lo Mar 2003 A1
20030063656 Rao et al. Apr 2003 A1
20030076815 Miller et al. Apr 2003 A1
20030099223 Chang et al. May 2003 A1
20030102889 Master et al. Jun 2003 A1
20030105949 Master et al. Jun 2003 A1
20030110485 Lu et al. Jun 2003 A1
20030142818 Raghunathan et al. Jul 2003 A1
20030154357 Master et al. Aug 2003 A1
20030163723 Kozuch et al. Aug 2003 A1
20030172138 McCormack et al. Sep 2003 A1
20030172139 Srinivasan et al. Sep 2003 A1
20030200538 Ebeling et al. Oct 2003 A1
20030212684 Meyer et al. Nov 2003 A1
20040006584 Vandeweerd Jan 2004 A1
20040010645 Scheuermann et al. Jan 2004 A1
20040015970 Scheuermann Jan 2004 A1
20040025159 Scheuermann et al. Feb 2004 A1
20040057505 Valio Mar 2004 A1
20040062300 McDonough et al. Apr 2004 A1
20040081248 Parolari Apr 2004 A1
20040093479 Ramchandran May 2004 A1
20040168044 Ramchandran Aug 2004 A1
20050166038 Wang et al. Jul 2005 A1
20050198199 Dowling Sep 2005 A1
20060031660 Master et al. Feb 2006 A1
Foreign Referenced Citations (52)
Number Date Country
100 18 374 Oct 2001 DE
0 301 169 Feb 1989 EP
0 166 586 Jan 1991 EP
0 236 633 May 1991 EP
0 478 624 Apr 1992 EP
0 479 102 Apr 1992 EP
0 661 831 Jul 1995 EP
0 668 659 Aug 1995 EP
0 690 588 Jan 1996 EP
0 691 754 Jan 1996 EP
0 768 602 Apr 1997 EP
0 817 003 Jan 1998 EP
0 821 495 Jan 1998 EP
0 866 210 Sep 1998 EP
0 923 247 Jun 1999 EP
0 926 596 Jun 1999 EP
1 056 217 Nov 2000 EP
1 061 437 Dec 2000 EP
1 061 443 Dec 2000 EP
1 126 368 Aug 2001 EP
1 150 506 Oct 2001 EP
1 189 358 Mar 2002 EP
2 067 800 Jul 1981 GB
2 237 908 May 1991 GB
62-249456 Oct 1987 JP
63-147258 Jun 1988 JP
4-51546 Feb 1992 JP
7-064789 Mar 1995 JP
7066718 Mar 1995 JP
10233676 Sep 1998 JP
10254696 Sep 1998 JP
11296345 Oct 1999 JP
2000315731 Nov 2000 JP
2001-053703 Feb 2001 JP
WO 8905029 Jun 1989 WO
WO 8911443 Nov 1989 WO
WO 9100238 Jan 1991 WO
WO 9313603 Jul 1993 WO
WO 9511855 May 1995 WO
WO 9633558 Oct 1996 WO
WO 9832071 Jul 1998 WO
WO 9903776 Jan 1999 WO
WO 9921094 Apr 1999 WO
WO 9926860 Jun 1999 WO
WO 9965818 Dec 1999 WO
WO 0019311 Apr 2000 WO
WO 0065855 Nov 2000 WO
WO 0069073 Nov 2000 WO
WO 0111281 Feb 2001 WO
WO 0122235 Mar 2001 WO
WO 0176129 Oct 2001 WO
WO 0212978 Feb 2002 WO
Related Publications (1)
Number Date Country
20090327541 A1 Dec 2009 US
Provisional Applications (1)
Number Date Country
60422063 Oct 2002 US
Continuations (2)
Number Date Country
Parent 11800577 May 2007 US
Child 12556894 US
Parent 10626833 Jul 2003 US
Child 11800577 US