Bus systems and reconfiguration methods

Information

  • Patent Grant
  • 8127061
  • Patent Number
    8,127,061
  • Date Filed
    Tuesday, February 18, 2003
    21 years ago
  • Date Issued
    Tuesday, February 28, 2012
    12 years ago
Abstract
A processor chip includes data processing elements that each has dedicated to it a respective switch for dynamically establishing an interconnection between the data processing elements conditional upon verification of a validity of the interconnection, which verification is automatically performed by at least one of the data processing elements to be interconnected.
Description
FIELD OF THE INVENTION

The present invention relates to methods and embodiments of bus systems for configurable architectures. The optimization of the configuration and reconfiguration efficiency is taken into account in particular.


BACKGROUND INFORMATION

A reconfigurable architecture is understood to refer to modules (VPUs) having a configurable function and/or interconnection, in particular integrated modules having a plurality of arithmetic and/or logic and/or analog and/or storing and/or interconnecting modules (hereinafter referred to as PAEs) arranged in one or more dimensions and/or communicative peripheral modules (IO) interconnected directly or via one or more bus systems. PAEs may be of any embodiment or mixture and arranged in any hierarchy. This arrangement is referred to below as a PAE array or PA.


Generic modules of this type include systolic arrays, neural networks, multiprocessor systems, processors having multiple arithmetic units and/or logic cells, interconnecting and network modules such as crossbar switches, as well as known modules of the types FPGA, DPGA, XPUTER, etc. In this context, reference is made in particular to the following patents and applications by the present applicant: P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 044.6-53; DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9, PCT/DE 00/08169, DE 100 36 627.9-33, DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6, PCT/EP 00/10516, EP 01 102 674.7, PACT02, PACT04, PACT05, PACT08, PACT10, PACT11, PACT13, PACT21, PACT13, PACT18, PACT19, PACT16, PACT25, PACT27, PACT26/US, which are herewith incorporated to the full extent for the purpose of disclosure.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 shows the two processing elements, a bus, and their IDs.



FIG. 2 shows a bus segment with double switches for controlling data flow between bus segments, according to an example embodiment of the present invention.



FIGS. 3
a-3b show a bus system in various states of configuration, and the use of switches for connecting an input of a processing element, according to an example embodiment of the present invention.



FIGS. 4
a-4b show a bus system in various states of configuration, and the use of switches and RdyHold stages for connecting an output of a processing element, according to an example embodiment of the present invention.



FIGS. 5
a-5c show examples of processing elements with differently configured interconnections, and signal propagation in the case of branching or loops.



FIG. 6
a shows a conventional bus design.



FIG. 6
b shows a bus design according to an example embodiment of the present invention.



FIG. 7 shows different types of connections between busses using either one switch or two switches and using configuration bits to determine the states of the switches, according to example embodiments of the present invention.



FIGS. 8
a and 8b illustrate how to respond to a SyncReconfig before a configuration is not yet completely configured, according to example embodiments of the present invention.



FIG. 9 illustrates an architecture implementing a RDY/ACK protocol according to an example embodiment of the present invention.



FIG. 10 illustrates a modified architecture implementing a RDY/ACK protocol according to an example embodiment of the present invention.



FIG. 11 illustrates an architecture including a double receiver input register, implementing a transmitter/receiver protocol according to an example embodiment of the present invention.



FIG. 12 illustrates a modified architecture implementing a protocol between a transmitter and receiver, where all modules have registers at the output, according to an example embodiment of the present invention.



FIG. 13 illustrates an architecture implementing a RDY-ABLE protocol according to an example embodiment of the present invention.



FIG. 14 shows a bus signal between a transmitter and a receiver using credit system timing.



FIG. 15 shows a bus signal between a transmitter and a receiver using a RDY protocol.



FIG. 16 shows a bus signal where a pulsed RDY-ABLE protocol is used. FIG. 17 shows hardware for receiving and sending data using a RDY/ABLE protocol according to an example embodiment of the present invention.



FIG. 18 illustrates an example interface arrangement of AMBA for a control manager (CM) interface of a unit having an XPP core according to an example embodiment of the present invention.



FIG. 19 shows an internal structure of a receiver part in an external interface for a 16-bit output port of the CM according to an example embodiment of the present invention.



FIG. 20 shows an internal structure of a transmitter part of an external module that establishes an interface connection with the 16-bit input port of the configuration manager according to an example embodiment of the present invention.


The architecture indicated above is used as an example for illustration and is referred to below as a VPU. This architecture has any number of arithmetic or logic cells (including memories) and/or memory cells and/or interconnection cells and/or communicative/peripheral (IO) cells (PAEs), which may be arranged to form a one-dimensional or multidimensional matrix (PA), which may have different cells of any configuration. Bus systems are also understood to be cells. The matrix as a whole or parts thereof are assigned a configuration unit (CT), which influences the interconnection and function of the PA. Improvements are still possible with such architectures, e.g., with regard to the procedure and/or speed of reconfiguration.





DETAILED DESCRIPTION

The object of the present invention is to provide a novel approach for commercial use.


The means for achieving this object is claimed independently. Preferred embodiments are characterized in the subclaims.


1. Structure of Bus Systems


Conventional implementation of configuration requires synchronization between the objects. Objects are understood to refer to all data processing modules (PAEs) and, inasmuch as necessary, also the data transferring modules such as bus systems. This synchronization is implemented centrally, e.g., via a FILMO (see PACT04, PACT05, PACT10, PACT17). Therefore, at least as many cycles elapse between the end of an old configuration (reconfig trigger; see PACT08) and the beginning of a new configuration (object again enters the “configured” state) as would correspond to the length of the pipelined CM bus (forward and return; see PACT17).


According to the present invention, two methods are proposed for accelerating this procedure:

    • a) the required sequence is ensured by additional logic in the objects, e.g., management of IDs;
    • b) the objects are modified so that it is no longer necessary to take the sequence into account and instead the proper interconnection is ensured by the architecture of the objects.


For the following considerations, the modules present in a typical reconfigurable architecture are divided into two groups:


Buses: This group includes the connecting line between two segments. It is represented by the segment switch at one end.


Object: This group includes all the objects which have a connection to a bus and/or communicate with its environment, i.e., any PAE (e.g., memory, ALUs), IO, etc.


Typically there are dependencies mainly among all directly adjacent objects, including specifically:


Bus to bus: A bus is represented by the segment switch at the end of a bus.


Object to bus: The object is to be selected freely from FREG, BREG, ALU and RAM. Everything that has a connection is likewise counted as an object in this sense.


Object to object: These are not usually directly adjacent and there is normally a bus in between. There is then no dependence. In the case of a direct connection, the connection behaves according to “bus to bus” and/or “object to bus” depending on the embodiment.


1.1 Bus-to-Bus Dependence


in the related art, longer buses are configured from back to front, for example. An example of the bus design described below is illustrated in FIG. 6a. The last bus segment (0606a) is configured with an open bus switch (0607) while all others are configured with a closed bus switch. The sequence must be preserved to prevent data from running from a bus that is closer to the front to a bus that is closer to the rear which still belongs to another configuration.


1.2 Bus-to-Object Dependence


According to the related art, an object (e.g., 0601, 0602, 0603) may not be configured until it is ascertained that the buses (0606a, 0606b) used by the object have already been configured. This dependence also exists to ensure that no data is running into a foreign configuration (PAE output) and/or is taken from a foreign configuration (PAE input).


In summary, it may be concluded that there is always a dependence when an object establishes, has established and/or wishes to establish a connection to another object. This takes place by way of the connection mask (0608) which controls the connection of the object inputs and/or outputs onto the buses (e.g., via multiplexers, transmission gates and the like; see also PACT18, FIG. 5 and FIG. 7c) and/or closed bus switches (0607) which permit the transfer of information via a bus (e.g., from one segment (0606a[1]) to another segment (0606a[2]). In other words, this connection mask indicates which horizontal bus structure is connected to which vertical bus structure and where this occurs; the fact that a “lane change” to a horizontal bus structure, for example, is also possible should be mentioned for the sake of thoroughness. The connection must not be established until it is ascertained that the object to which the connection is to be established already belongs to the same configuration, i.e., has already been configured accordingly.


2. Control Over ID Management


The first approach claimed according to the present invention is to store the IQ or array ID currently being used by the object in each object (see PACT10). Therefore, information regarding which task and/or configuration the particular object is being assigned to at the moment is stored. As soon as a connection between two objects is configured (e.g., between a PAE output and a bus), a check is performed in advance to determine whether both objects have the same ID/array ID. If this is not the case, the connection must not be established. Thus a connection is activated and/or allowed, depending on a comparison of identifying information.


Although this method is basically comparatively trivial, it requires a great hardware complexity, because for each possible connection, registers are required for storing the IDs/array IDs and comparators are required for comparing the IDs/array IDs of the two objects to be connected.



FIG. 1 shows the two PAEs (0101, 0102) together with their IDs and a bus (0103) with its ID. Each PAE/bus connection is checked via the comparators (0104, 0105). The figure is used only to illustrate the basic principle without being restrictive. If all resources (inputs/outputs of the PAEs, buses) are taken into account, there is a considerable increase in complexity and the associated hardware expenditure. A method according to the present invention which is implemented much more favorably from a technical standpoint and is therefore preferred is discussed in the following sections.


3. Control Over the Interconnection Structure



FIG. 2 shows a bus segment needed by configurations A and B. However, it is still occupied by configuration A, as shown here. Configuration B may already occupy the two neighboring bus segments independently thereof. According to the present invention, through the new double bus switches (0201 and 0202, corresponding to 0607 and, according to FIG. 6b, 0609), the possibility may be ruled out that data from configuration B will interfere with the data flow of configuration A. Likewise, no data runs from configuration A to B. In the case of configuration B, it is assumed that configuration A has been correctly implemented and that the bus switch at the output is open.


As soon as configuration A is concluded, the bus thus released is occupied by configuration B and configuration B begins to work.


In other words, one basic principle of the method is that each element involved in a data transmission connects itself automatically to the corresponding data source and/or the data transmitter, i.e., it has the control itself of which data transmitter/receiver it is to be connected to according to the configuration.


Bus to PAE Input



FIG. 3 shows a PAE input (0301) which is to be connected to the two lower buses of the three buses shown here. The vertical switches correspond to a simple connection switch of the connection mask (0608) for connection to the bus and are managed by the PAE (0302), and in addition, the horizontal switches (0303, corresponding to 0610) are also configured via the bus to ensure a correct connection.


The middle bus in FIG. 3a is still occupied by another configuration. Nevertheless the object may be configured completely using the PAE input. Data from the middle bus cannot run unintentionally into the object because this is prevented by the configuration of the bus (switch 0303).


In FIG. 3b the old configuration has been terminated and replaced by the new configuration. Now both buses are available. To determine which buses are in fact connected, only the vertical switches (0302) are used.


Finally, the upper bus in FIG. 3c is occupied by a third configuration, which would also like to use the PAE input shown. Therefore, the bus is configured so that data may be withdrawn at this point. However, this has no effect on the object because the PAE configuration does not provide any connection at this point. The connection is thus not established until the configuration of the PAE input changes.


Bus-PAE Output


This is a connection in which the use of two separate switches is particularly preferred. It may be preferable in the (two) other cases to implement the functionality with one switch which is controlled by two config bits which are interlinked by Boolean logic, preferably by an AND link, to determine the switch state. FIG. 4 shows a PAE output which is to be connected to the two lower buses of the three buses illustrated here. The object is configured independently of the availability of the buses, the switches on the left in the figure corresponding to the connection mask.


The middle bus (0401) in FIG. 4a is still occupied by another configuration. Now a data packet may be sent from the output register to the connection. It is stored in the connected RdyHold (see PACT18) stages. The packet may not be transmitted through the opened switch of the middle bus and thus also may not be acknowledged, i.e., the transmitter does not receive an acknowledgment of receipt. Thus the object may not transmit any further data packets with the usual protocols.


Now in FIG. 4b the middle bus has been reconfigured, i.e., the switch closed, so that data may again be transmitted here. A packet that has possibly already been stored is now on the bus; otherwise everything functions like before.


In FIG. 4c the top bus (0402) is requested by a third configuration. The switch on the bus side behind the RM remains ?? open accordingly, because data transfer is to be prevented on the bus side. Here again, everything otherwise behaves like before.


Result


The reconfiguration performance may be increased substantially with relatively simple hardware. In particular, it is thus even more possible to preload multiple complete configurations into the objects because the objects may then be configured individually per object and independently according to the prevailing data processing status of each without any problems being expected.


After arrival of the reconfiguration signal requesting reconfiguration, each object until it is configured again needs locally only as many cycles as configuration words are necessary when transmission of configuration words in cycles is assumed. The reconfiguration time may be pushed further by using a second register set, approximately toward zero cycles, when configurations are predeposited in the second register set.


In an optimized implementation that is preferred according to the present invention, the additional hardware complexity for buses and PAE inputs may be limited to one additional configuration bit and one AND gate per bus switch and per number of buses×number of PAE inputs. This is depicted in FIG. 7.



FIG. 7
a shows a left-hand bus (0606a[1]) connected to a right-hand bus (0606a[2]) via the bus switch. A configuration switch is assigned to each bus switch, indicating whether the switch is configured as being open or closed (c[1] for the left-hand bus and c[2] for the right-hand bus). In FIG. 7b the same function is implemented by a single switch instead of two switches. The two configuration bits c[1] and c[2] are logically linked together by an AND gate (&) so that the single switch is closed only when both configuration bits in this example are logic b′1. Alternatively, an implementation via an OR gate is appropriate when a logic b′0 is to display a closed switch.


The PAE outputs may optionally require slightly more complexity, depending on the implementation, if an additional switch is considered to be necessary for each. In this connection, it should be pointed out that although it is possible to provide the connection to and/or between all objects according to the present invention, this is by no means obligatory. Instead it is possible to implement the ideas according to the present invention only in some objects.



FIG. 6
b shows as an example a design of an object and a bus according to the present invention. The basic design corresponds to the related art according to FIG. 6a and/or according to PACT18, FIGS. 5 and 7c. Therefore, only the elements in FIG. 6b that are novel in comparison with the related art will be described anew here. The switches on bus ends 0609 are inserted according to the present invention, so the buses are completely separable by switches 0607 and 0609. Switches (0610) at the inputs and outputs of the objects (PAEs), regulating the correct connections to the buses, are also novel.


The basic principle now is that each object and/or each bus independently regulates, i.e., determines, which connections are to be established and/or remain in effect at the moment. It should be pointed out here that this determination is performed by the individual object and/or bus depending on the configuration, i.e., it is by no means arbitrary. Management of the connections is thus more or less delegated to the objects involved. Each bus may regulate which other buses it will be connected to via switches 0607 and 0609 according to the configuration. No bus may now be connected to another (e.g., via 0607) without the other bus allowing this through a corresponding switch setting of its bus switches (e.g., 0609).


It should be pointed out explicitly that switch 0607 according to the related art could also be situated at the output of a bus and switch 0609 is added at the input of the buss accordingly.


Switches 0610 are preferably also double switches, one switch being controlled by the PAE object and the other switch being controlled by the particular bus system 0606a and/or 0606b. It should be pointed out in particular that one switch is merely indicated with dashed lines. This is the switch controlled by bus 0606a and/or 0606b and it may be implemented “virtually” by the setting of the connection mask (0608).


5. Reconfiguration Control


Control of the reconfiguration is triggered in the VPU technology by signals (Reconfig) which are usually propagated with the data packets and/or trigger packets over the bus systems and indicate that a certain resource may or should be reconfigured and, if necessary, the new configuration is selected at the same time (see PACT08, PACT13).


If a reconfigurable module is to be only partially reconfigured, then Reconfig must be interrupted at certain locations according to the algorithm. This interruption, which prevents forwarding of Reconfig, is referred to as ReconfigBlock.


ReconfigBlocks are usually introduced at the boundary of one configuration with the next to separate them from one another.


Different strategies for sending Reconfig signals are selected as requested by the algorithm.


Now three possible and preferred embodiments will be described; these embodiments may be used individually and/or combined and they have different behaviors. It is regarded as inventive in comparison with the related art that it is possible to select between such embodiments in pairs.


a) ForcedReconfig: The simplest strategy is to send the Reconfig signal via all interfaces of an object, i.e., it propagates along the data paths and/or trigger paths belonging to a certain configuration while other configurations remain unaffected. This ensures that all interconnected objects in the PA receive the signal. For the sake of restriction, the signal must be blocked at suitable locations. This method, i.e., signal, ensures that a configuration is removed completely. The signal is referred to below as ForcedReconfig. This signal should be used only after all data in the particular objects has been processed and removed because there is no synchronization with data processing. Although all objects belonging to a certain configuration within an array are thus forced to allow reconfiguration, other configurations running simultaneously on other objects of the same array remain unaffected.


b) SyncReconfig: A Reconfig is sent together with the corresponding data and/or triggers. It is sent only together with active data packets and/or trigger packets. The signal is preferably relayed together with the last data packet and/or trigger packet to be processed and indicates the end of the data processing after this data/trigger packet. If a PAE requires multiple cycles for processing, the forwarding of SyncReconfig is delayed until the trigger packet and/or data packet has in fact been sent. This signal is thus synchronized with the last data processing. As described below, this synchronized reconfiguration according to the present invention may be blocked at certain locations.


c) ArrayReset: ArrayReset may be used as an extension of ForcedReconfig which cannot be blocked and results in reconfiguration of the complete array. This method is particularly appropriate when, for example, an application is terminated or an illegal opcode (see PACT19) and/or timeout of a configuration has occurred and proper termination of the configuration cannot be ensured with other strategies. This is important for a power-on reset, or the like, in particular.


5.1 SyncReconfig


When SyncReconfig is propagated, it always contains valid active data or triggers.


Problems occur when, in the case of branching, the signal is propagated only in the active branch (FIG. 5a) or when branching or combining is blocked due to lack of data and/or triggers. (FIG. 5b).


To solve this problem, the semantics of SyncReconfig is defined as follows: The signal indicates that after receiving and completely processing the data/triggers, all the data/trigger sources (sources) and buses leading to the input of an object which has received the SyncReconfig signal are reconfigured. A ReconfigEcho signal may be introduced for this purpose. After the arrival of SyncReconfig at a destination object, a ReconfigEcho is generated by it, preferably only and as soon as the destination object has completely processed the data arriving with the SyncReconfig signal. This generated ReconfigEcho is then sent to all sources connected to the object, i.e., its inputs, and results in reconfiguration, i.e., reconfigurability of the sources and/or the bus systems transmitting data and/or triggers.


If an object receives a ReconfigEcho, this signal is transmitted further upstream, i.e., it is transmitted via the buses to its sources via all the inputs having bus switches still closed. After being generated, ReconfigEcho is thus sent to the data and/or trigger sources that feed into an object, and the signals are forwarded from there. Inputs/outputs that have already received a SyncReconfig preferably become passive due to its arrival, i.e., they no longer execute any data/trigger transfers. Depending on the embodiment, a SyncReconfig may only induce passivation of the input at which the signal has arrived or passivation of all inputs of the PAE.


A ReconfigEcho usually arrives at the outputs of PAEs. This causes the ReconfigEcho to be relayed via the inputs of the PAE if they have not already been passivated by a received SyncReconfig.


In some cases, e.g., in FIGS. 5a through c, ReconfigEcho may also occur at the inputs. This may result in passivation of the input at which the signal arrived, depending on the embodiment, or in a preferred embodiment it may trigger passivation of all inputs of the PAEs.


5.2 Trigger Having Reconfig Semantics


In some cases (e.g., FIG. 5b) an implicit propagation of the Reconfig signals (in particular SyncReconfig, ReconfigEcho) is impossible.


For the required explicit transmission of any Reconfig signals, the trigger system according to PACT08 may be used, to which end the trigger semantics is extended accordingly. Triggers may thus transmit any status signals and control signals (e.g., carry, zero, overflow, STEP, STOP, GO; see PACT08, PACT13, PACT18), as well as the implicit Reconfig signals. In addition, a trigger may assume the SyncReconfig, ReconfigEcho, or ForcedReconfig semantics.


5.3 Blocking


At each interface which sends a SyncReconfig, it is possible to set whether sending or relaying is to take place. Suppressing propagation results in stopping a reconfiguration wave that would otherwise propagate over the array and/or the configuration affected by it. However, regardless of the blockades to be set up for certain locations during configuration in a self-modifying or data-dependent manner and/or under or for certain conditions, it should be mentioned that data and/or trigger signals may continue to run over a blocked position, in order to be processed further as before, as provided with the protected configuration and/or a protected configuration part.


If necessary, it would also be possible to locally suppress the response to the reconfiguration request, i.e., to ignore the reconfiguration request locally but nevertheless send a signal indicative of the arrival of a locally ignored reconfiguration request signal to downstream objects, whether blocked or unblocked.


As a rule, however, when individual objects of a configuration are to be blocked, it is preferable to send the reconfiguration request signal over separate buses, bus segments or lines to downstream objects past a blocking object. The normally preferred case in which the reconfiguration request signal must penetrate into the object is then easier to maintain, i.e., not only peripherally relayed in forward or reverse registers, if provided, and thus sent past the actual cell. It is then preferable that, in the case of blocking of a reconfiguration request signal (or a certain reconfiguration request signal of a plurality of differentiable reconfiguration request signals), this blocked reconfiguration request signal “dies” in the particular object, i.e., is not to be forwarded.


If the acceptance of SyncReconfig at the receiving interface is blocked, then the receiving object switches the interface receiving SyncReconfig to passive (i.e., the interface no longer sends and/or receives any data); otherwise the object does not respond to the signal but it may send back the ReconfigEcho to permit the release of the transmitting bus system.


In addition, it is possible to block ReconfigEcho either independently of and/or jointly with a ReconfigBlock.


5.4 Effect of SyncReconfig and ForcedReconfig on Bus Systems


To ensure that, after transmission of a SyncReconfig over a bus, no subsequent data and/or triggers which originate from a following configuration, for example, and would thus be processed incorrectly are transmitted, SyncReconfig preferably blocks the sending of the handshake signals RDY/ACK (see PACT02), which indicate the presence of valid data on the bus and control the data transmission, over the bus. The bus connections per se, i.e., the data and/or trigger network, are not interrupted to permit resending of ReconfigEcho over the bus system. The bus is dismantled and reconfigured only with the transmission of ReconfigEcho.


In other more general terms, the occurrence of SyncReconfig first prevents data and/or triggers from being relayed over a bus—except for ReconfigEcho—e.g., by blocking the handshake protocols and ReconfigEcho subsequently induces the release and reconfiguration of the bus.


Other methods having an equivalent effect may be used; for example, data and trigger connections may be interrupted even in a run-through of SyncReconfig, whereas the ReconfigEcho connection is dismantled only on occurrence of ReconfigEcho.


This ensures that data and triggers of different configurations which do not belong together will not be exchanged incorrectly via the configurations.



FIG. 5 shows an example PAEs (0501) having differently configured interconnections. The following transmissions are defined: data and/or trigger buses (0502), SyncReconfig (0503), ReconfigEcho (0504). In addition, ReconfigBlock (0505) is also shown; 0506 indicates that SyncReconfig is not relayed.



FIG. 5
a illustrates a branching such as that which may occur, for example due to an IF-THEN-ELSE construct in a program. After a PAE, the data is branched into two paths (0510, 0511), only one of which is always active. In the case depicted here, a last data packet is transmitted together with SyncReconfig, branch 0510 is not active and therefore does not relay either the data or SyncReconfig. Branch 0511 is active and relays the data and SyncReconfig. The transmitting bus system may preferably be switched to inactive immediately after the transmission and is then able to transmit back only ReconfigEcho. PAE 0501b receives SyncReconfig and sends it to PAE 0501c, which sends ReconfigEcho back to 0501a, whereupon 0501a and the bus system between 0501a and 0501b are reconfigured. The transmission between 0501b and 0501c takes place accordingly.



0501
e has also received SyncReconfig from 0501a but the branch is not active. Therefore 0501e does not respond, i.e., 0501e does not send SyncReconfig to 0501f nor does it send the ReconfigEcho back to 0501a.



0501
c processes the incoming data and forwards SyncReconfig to 0501d. This sequence initially corresponds to the transmission from 0501a to 0501b. After processing the data, 0501d generates a ReconfigEcho which is also sent to 0501f because the branches are combined. Although 0501f has not performed a data operation, the unit is reconfigured and sends the ReconfigEcho to 0501e which is then also reconfigured—without new data processing having taken place.


ReconfigEcho transmitted from 0501b to 0501a may also be transmitted in a preferred embodiment to 0501e where it arrives at an input. This results in passivation of the input and to passivation of all inputs in an expanded embodiment, which may also be reconfigurable.


To impart a local character to the examples in FIG. 5, the inputs/outputs in the diagrams have been provided with a ReconfigBlock so that the forwarding of SyncReconfig and ReconfigEcho is suppressed.



FIG. 5
b is largely identical to FIG. 5a which is why the same references are also being used. The right-hand path is again active and the left-hand path is inactive. The essential difference is that instead of combining the paths at 0501d, the paths now remain open and lead directly to the peripheral interface, for example. In such cases, it is possible and preferable to provide an explicit wiring of ReconfigEcho via trigger lines (0507) between the PAEs (0501i and 0501j).



FIG. 5
c shows the exemplary embodiment of a loop. This loop runs over PAEs 0501m, . . . , 0501r. The transmissions between PAEs 0501m, . . . , 0501r are evidently equivalent here according to the preceding discussion, in particular regarding the transmissions between 0501b and 0501c.


The transmission between 0501r and 0501m deserves special attention. When ReconfigEcho appears at 0501m, the bus (0508) between 0501m and 0501r is reconfigured by the transmission of ReconfigEcho. ReconfigEcho is blocked at the output of 0501r. Therefore 0501r is not reconfigured but the particular output is switched to passive on arrival of ReconfigEcho, i.e., 0501r no longer sends any results on the bus. Therefore the bus may be used by any other configuration.


As soon as 0501r receives ReconfigEcho from 0501q, 0501r is reconfigured at the end of the data processing. The ReconfigBlock and/or the passivation of the bus connection to 0501m (0508) prevents forwarding toward 0501m. Meanwhile 0501m and 0508 may be used by another configuration.


6.0 SyncReconfig II


Another optional method for controlling the SyncReconfig protocol is described below; this method may be preferred, depending on the application, the area of use and/or embodiment of the semiconductor or system.


This method is defined as follows:


1. SyncReconfig is transmitted in principle over all connected buses of a PAE (data buses and/or trigger buses), even over the buses which are not currently (in the current cycle) transmitting any data and/or triggers.


2. In order for a PAE to relay SyncReconfig according to paragraph 1, first all the connected inputs of the PAE must have received SyncReconfig.


2a. Feedback in the data structure (e.g., loops) requires an exception to the postulate according to paragraph 2. Feedback coupling is excepted, i.e., it is sufficient if all the connected inputs of a PAE except those in a feedback loop have received SyncReconfig so that it is forwarded.


3. If a PAE is processing data (under some circumstances even in multiple cycles, e.g., division), then a SyncReconfig (if this is applied to the inputs according to 2 and 2a) is relayed to the receiver(s) at the point in time when the calculation and forwarding of the data and/or triggers is completed. In other words, SyncReconfig does not overtake data processing.


4. If a PAE is not processing any data (e.g., because no data is queued up at the inputs and/or there is no corresponding trigger for enabling data processing (see PACT08)) but it has received SyncReconfig at all configured inputs, then the PAE forwards SyncReconfig via all configured outputs. No data processing takes place (there is no queued-up input data and/or no enable trigger (PACT08) is queued up) and accordingly no data is transmitted further. In other words: PAEs that are not processing data relay SyncReconfig further immediately to the connected receivers but with the cycles synchronized, if necessary.


SyncReconfig is preferably transmitted together with handshake signals (e.g., RDY/ACK=reaDY/ACKnowledge). A PAE sending a SyncReconfig does not enter the reconfigurable state until all receivers have acknowledged receipt of SyncReconfig for confirmation by an ACK(nowledge).


In this method, the basic question arises as to what happens when a configuration is not yet completely configured but is already to be reconfigured again. Apart from the consideration as to whether such behavior of an application does not require better programming, the problem is solved as follows: if a PAE attempts to forward SyncReconfig to a PAE that is not yet configured, it will not receive an ACK until the PAE is configured and acknowledges SyncReconfig. This might result in a loss of performance because of waiting until the configuration of the configuration to be deleted is completed before deleting it. On the other hand, however, this is a very rare case which occurs only under unusual circumstances.



FIG. 8
a shows the basic method to be used. SyncReconfig 0805 arrives at PAE 0806, which forwards a signal at the end of data processing together with data 0807. Connections that have been configured but not used during the data processing also forward the data (0808).


Although SyncReconfig arrives from 0806 via 0807 in the case of PAE 0809, SyncReconfig is still outstanding for the second input. Therefore, 0809 does not forward SyncReconfig. PAE 0810 receives SyncReconfig via 0808 but does not receive any data. Via the second input 0810 likewise receives a SyncReconfig. Although no data processing is taking place in 0810 (the data via 0808 is still outstanding), 0810 relays SyncReconfig without any result data.



FIG. 8
b shows the processing of a loop. During the data processing, data is fed back (0824) from PAE 0822 to PAE 0821. At 0821 a SyncReconfig arrives via 0820. This is relayed to the downstream PAEs in the loop as far as 0822. PAE 0822 relays (0823) SyncReconfig to downstream PAEs not belonging to the loop. Neither SyncReconfig nor data is transmitted via loop feedback 0824 (see explanation 0803).



0801 means that no SyncReconfig has been transmitted on this bus at the point in time depicted as an example. 0801 implies no information regarding whether data/triggers have been transmitted.



0802 means that a SyncReconfig has been transmitted on this bus at the point in time depicted as an example. 0802 does not imply any statement regarding whether data/triggers have been transmitted.



0803 means that in the case of occurrence of a SyncReconfig at the data transmitter (in this example 0822), no SyncReconfig is transmitted on this bus (regardless of the point in time). 0802 implies that no data/triggers are transmitted.


7. Alternative Protocoling


A protocol is described below as an alternative to the known RDY/ACK data flow control protocol. It secures data streams even when registers are inserted between the transmitter and receiver at high clock frequencies. To this end, suitable hardware modules are also provided.


Reusable transmitter and receiver units are extracted for these modules, in particular for the communication between an XPP processor field and an XPP configuration controller. These modules and their code are also described below. It should be pointed out that these modules may in part replace and/or supplement XPP-FILMO modules such as those which have been used previously.


The architecture using the RDY/ACK protocol is shown in FIG. 9.


The transmitter must wait for pending ACKs before a RDY signal is assigned. This means that the longest path which determines the frequency of such a system is the path from the receiver to the transmitter, specifically via the logic of the transmitter and back to the receiver and its register enable logic.


An inserted register at the input of the transmitter as shown in FIG. 10 shortens the longest path but the logic must wait one cycle longer for pending ACKs. The data transmission rate is reduced to every second clock cycle. This is also true when the pipeline register is not provided at the ACK input but instead at the RDY and data output.


A second problem occurs when the protocol is used on the PINS or the I/O interface of an XPU. The XPU may be correctly configured and may send a data packet outward. This means that it sends a RDY. Under the assumption that the connected circuit is not in a position to receive data because it is not connected or is not completely programmed, the RDY will be lost and the XPU will be stopped. Later when the connected circuit outside of the XPU is in a position to receive data, it will not respond because it will not send an ACK without having received a RDY.


8. First Approach Using the Credit FIFO Principle


The Credit FIFO idea presented here solves the problem of the reduced throughput with a FIFO in the receiver input. The transmitter is always allowed to send another packet if at least one ACK is pending.


This means that when the transmission begins the first time, two packets are sent without knowing whether or not they will be confirmed (acknowledged). Thus the second problem mentioned in the preceding section still exists.



FIG. 12 shows one alternative. The protocol between the transmitter and receiver is the same but all modules have registers in the outputs as a design variant. This is useful for synthesis estimates and time response estimates. The latter architecture does not require more hardware than the former because a data register must also be present in the former variant.


According to another novel proposal, the semantics of the ACK signal is changed to the meaning of “would issue an ACK,” i.e., it shows the ability to receive data. Therefore these signals are called “ABLE” signals. FIG. 5 shows the version in which there are registers at all module outputs.


The transmitter may always send data in the direction of the receiver if allowed by the ABLE signal. This protocol may then disable the second register in the receiver part if it is certain that the transmitter is holding the transmitted data in a stable stall situation until the receiver signals “ABLE” again.


9.1 Protocol Evaluation—Credit System Semantics


The credit system has the following semantics: Transmitter: “I am allowed here to send two data packets and as many additional packets as I receive acknowledgments for. If I am not allowed to send another packet, then the last data value must remain valid on the BUS.”


Receiver: “Each received packet will be acknowledged as soon as I am able to receive others.”


9.2 RDY-ABLE Semantics


The RDY-ABLE protocol has the following semantics: Transmitter: “If the ABLE signal is “high,” I am allowed to send a data packet which is also valid, with a ready signal being on the connection bus during the entire next cycle. If the ABLE signal is “low,” then I must ensure that the instantaneous data will remain on the bus for another cycle.”


Receiver: “ABLE will always be assigned to the connecting bus for the entire next cycle if I am certain that no incoming data packet is lost.”


There may be a number of variants for implementing the RDY-ABLE protocol, e.g., pulsed RDY-ABLE or RDY-ABLE having pulsed data. The meanings of high and low may be the opposite of those described above. For pulse-like protocols, each data packet must be valid for only one cycle. This variant needs one more input register in the receiver and may be useful if the bus between the transmitter and receiver is used by more than one connection or possibly is used bidirectionally. Certain IO additions to XPU architectures may be one example of this.


Comparison


In situations where the number of credits is not known to the transmitter the credit system is more stable, whereas RDY-ABLE has the advantage that data is not sent until the receiver is in a position to receive data. RDY has an ACK-time curve with a credit system. FIG. 6 shows the bus signal between a transmitter and a receiver in a credit system having RDY/ACK protocol. Five cases are outlined below:

    • 1. Transmission of a single packet
    • 2. Streaming
    • 3. Receiver is not immediately ready to receive
    • 4. Receiver is able to receive only at the beginning
    • 5. Receiver is not ready to receive additional data, e.g., because it has not been reconfigured or it is unable to supply any additional data to the next receiver.


      2.5 FIG. 15 Shows the Bus Signal Between a Transmitter and a Receiver Using the RDY Protocol.


Four cases are outlined:

    • 1. Transmission of a single packet “I am allowed while ABLE is active.”
    • 2. Streaming is consistently high during ABLE.
    • 3. The transmitter transmits regardless of the ability of the receiver to receive data.
    • 4. The transmitter stops the flow for one cycle.


To make the communication bus free for other users more frequently, the pulsed RDY-ABLE protocol may be used. However, it is not the standard when simpler hardware is desired because it increases the hardware complexity by the addition of one register. Reference may be made to FIG. 16 for the comparison.


The hardware for RDY (FIG. 17) includes a general module which has a transmitter part and a transmitter part for data using the RDY protocol. A specific module may insert its required data processing hardware between the transmitter and the receiver unit. If the central part of FIG. 7 is omitted, then the local RDY, ABLE and data signals fit directly on top of one another on the transmitter and receiver units. The resulting module—just one transmitter and one receiver unit—is useful in a pipeline stage where many of these modules may be used between a real data producing module and a data-using module. This is useful when a transmitter and a receiver are to be connected over a great distance without having to reduce the frequency or throughput.


A module must contain not only a receiver and a transmitter, but in many cases multiple receivers and one or more transmitters will be provided in one module, e.g., and arithmetic logic unit or a dual-ported ram. This is advisable when data is generated in different ways or when data is received via another protocol. Examples may include configurable counters (without receivers) or displays (no forwarding).


Insertion of simple registers:


If the bus must have simple register stages between the transmitter and receiver, then the receiver must be increased by two registers per inserted stage. An example for this need is to provide register stages at chip boundaries, e.g., connection pieces provided with registers.


Addendum


Receiver and transmitter for AMBA interfaces:



FIG. 18 illustrates one possible interface arrangement of AMBA for the CM interface of a unit having an XPP core.


For external units with the CM interface of an XPP core, the use of two modules is recommended.



FIG. 19 shows the internal structure of the receiver part which is required in the external interface for the 16-bit output port of the configuration manager.


The reception of data functions as follows: when the receiver module displays a 1 (HIGH) on recv_valid, then data has been received and it is instantaneously available at the recv_data output. If the surrounding module is able to receive this data, it assigns a 1 (HIGH) to recv_able. The data is then available only until the end of the same cycle. The data received next is then presented, if available.


For some circuits it may be beneficial to use the recv_rdy signal which shows that data is currently being taken from the receiver. It is an AND logic result from recv_valid and recv_able.


Transmitters in External Units



FIG. 20 shows the internal structure of the transmitter part which is to be part of the external module that establishes an interface connection with the 16-bit input port of the configuration manager. A conventional 43-bit code word input of a CM (configuration manager) may also expect this input externally. Both versions may be available in a simulation environment.


If this module and the XPP are directly connected, the signals send_req and n_back may both be set at 0 (LOW). The n_back and n_oe are not used. Data is transmitted as follows: When the transmitter module shows a 1 (HIGH) at send_able, the send_rdy signal may be set at 1 (HIGH) namely with valid data at the send_data input. All this takes place in the same cycle. If new data is available in the next cycle, the send_rdy may be set again at 1 (HIGH), otherwise it is to be enabled; send_data need not be valid in any cycle in which send_rdy is 0 (LOW).












Reference list


















PACT01
P 44 16 881.0-53



PACT02
PCT/DE97/02949



PACT03
PCT/DE97/03013



PACT04
PCT/DE97/02998



PACT05
PCT/DE97/02999



PACT06
197 04 044.6-53



PACT07
PCT/DE98/00456



PACT08
PCT/DE98/00334



PACT09
PCT/DE98/03682



PACT10
PCT/DE99/00504



PACT10
PCT/DE99/00505



PACT11
PCT/EP02/10065



PACT12
PCT/DE99/00639



PACT13
PCT/DE00/01869



PACT14
PCT/EP01/08534



PACT15
PCT/EP02/02398



PACT16
102 06 857.7



PACT16
102 40 000.8



PACT17
PCT/EP01/06703



PACT18
PCT/EP02/02403



PACT19
PCT/DE03/00152



PACT20
PCT/EP02/06865



PACT21
PCT/DE02/03278



PACT22
PCT/EP01/11299



PACT24
EP 01 102 674.7



PACT25
PCT/EP02/02402



PACT26
EP 01 129 923.7



PACT27
02 027 277.9



PACT28
PCT/EP02/10084



PACT29
102 12 622.4-53



PACT29
102 19 681.8



PACT30
102 36 271.8



PACT30
102 38 174.7-53



PACT31
PCT/EP02/10572



PACT32
PCT/EP02/10479



PACT33
102 36 272.6



PACT33
102 38 173.9



PACT34
102 41 812.8



PACT36
102 36 269.6



PACT36
102 38 172.0



PACT37
102 43 322.4



PACT39
EP 02 022 692.4



PACT40
103 00 380.0









Claims
  • 1. A processor chip, comprising: a bus structure; anda multidimensional field of cells;wherein: for each of at least some of the cells, a respective switch is dedicated to the respective cell for dynamically establishing an interconnection over the bus structure and between the respective cell and another of the cells, data being transferable from a transmitting one of the interconnected cells to a receiving one of the interconnected cells via the interconnection;the processor chip is adapted for at least one of the transmitting and receiving cells to automatically verify a validity of the interconnection; andthe interconnection is established conditional upon the verification of the validity.
  • 2. The processor chip of claim 1, wherein the interconnection is established conditional upon approval of the interconnection by both of the transmitting and receiving cells.
  • 3. The processor chip of claim 1, wherein the cells are coarsely granular logic cell units.
  • 4. The processor chip of claim 3, wherein each of at least one of the coarsely granular logic cell units includes an arithmetic logic unit.
  • 5. The processor chip of claim 1, wherein the verification of the validity of the interconnection depends on an availability of resources required for the interconnection.
  • 6. The processor chip of claim 5, wherein the resources on whose availability the validity of the interconnection depends includes at least two of the transmitting cell, the receiving cell, and a bus segment of the bus structure.
  • 7. The processor chip of claim 6, wherein the validity of the interconnection is analyzed based on identifiers assigned to at least one of the transmitting cell, the receiving cell, and the bus segment.
  • 8. The processor chip of claim 7, wherein the validity of the interconnection is further analyzed based on an identifier assigned to a currently processed application.
  • 9. The processor chip of claim 6, wherein the cells are coarsely granular logic cell units.
  • 10. The processor chip of claim 9, wherein each of at least one of the coarsely granular logic cell units includes an arithmetic logic unit.
  • 11. The processor chip of claim 5, wherein the cells are coarsely granular logic cell units.
  • 12. The processor chip of claim 11, wherein each of at least one of the coarsely granular logic cell units includes an arithmetic logic unit.
  • 13. The processor chip of claim 1, wherein each of the transmitting and receiving cells stores therein an identification of a configuration to which the respective cell is assigned, and the verification of the validity is performed by comparing the identifications.
  • 14. The processor chip of claim 1, wherein the bus structure includes: a plurality of bus segments;two switches at an interface between two adjacent ones of the plurality of bus segments;a first one of the switches is controllable by a first one of the two adjacent ones of the plurality of bus segments; anda second one of the switches is controllable by a second one of the two adjacent ones of the plurality of bus segments.
  • 15. The processor chip of claim 1, wherein the cells are reconfigurable data processing elements.
  • 16. The processor chip of claim 1, wherein the verification includes verifying whether there is a relationship between the transmitting and receiving cells rendering them suitable for connection to each other.
  • 17. The processor chip of claim 16, wherein the verification is performed in response to a configuration of the interconnection.
  • 18. The processor chip of claim 1, wherein the cells include at least one of data processing elements and memory elements.
Priority Claims (2)
Number Date Country Kind
102 06 857 Feb 2002 DE national
102 40 000 Aug 2002 DE national
PCT Information
Filing Document Filing Date Country Kind 371c Date
PCT/DE03/00489 2/18/2003 WO 00 7/14/2006
Publishing Document Publishing Date Country Kind
WO03/071432 8/28/2003 WO A
US Referenced Citations (558)
Number Name Date Kind
2067477 Cooper Jan 1937 A
3242998 Gubbins Mar 1966 A
3564506 Bee et al. Feb 1971 A
3681578 Stevens Aug 1972 A
3753008 Guarnaschelli Aug 1973 A
3757608 Willner Sep 1973 A
3855577 Vandierendonck Dec 1974 A
4151611 Sugawara et al. Apr 1979 A
4233667 Devine et al. Nov 1980 A
4414547 Knapp et al. Nov 1983 A
4498134 Hansen et al. Feb 1985 A
4498172 Bhavsar Feb 1985 A
4566102 Hefner Jan 1986 A
4571736 Agrawal et al. Feb 1986 A
4590583 Miller May 1986 A
4591979 Iwashita May 1986 A
4594682 Drimak Jun 1986 A
4663706 Allen et al. May 1987 A
4667190 Fant et al. May 1987 A
4682284 Schrofer Jul 1987 A
4706216 Carter Nov 1987 A
4720778 Hall et al. Jan 1988 A
4720780 Dolecek Jan 1988 A
4739474 Holsztynski Apr 1988 A
4761755 Ardini et al. Aug 1988 A
4791603 Henry Dec 1988 A
4811214 Nosenchuck et al. Mar 1989 A
4852043 Guest Jul 1989 A
4852048 Morton Jul 1989 A
4860201 Miranker et al. Aug 1989 A
4870302 Freeman Sep 1989 A
4873666 Lefebvre et al. Oct 1989 A
4882687 Gordon Nov 1989 A
4884231 Mor et al. Nov 1989 A
4891810 de Corlieu et al. Jan 1990 A
4901268 Judd Feb 1990 A
4910665 Mattheyses et al. Mar 1990 A
4918440 Furtek et al. Apr 1990 A
4939641 Schwartz et al. Jul 1990 A
4967340 Dawes Oct 1990 A
4972314 Getzinger et al. Nov 1990 A
4992933 Taylor Feb 1991 A
5010401 Murakami et al. Apr 1991 A
5014193 Garner et al. May 1991 A
5015884 Agrawal et al. May 1991 A
5021947 Campbell et al. Jun 1991 A
5023775 Poret Jun 1991 A
5034914 Osterlund Jul 1991 A
5036473 Butts et al. Jul 1991 A
5036493 Nielsen Jul 1991 A
5041924 Blackborow et al. Aug 1991 A
5043978 Nagler et al. Aug 1991 A
5047924 Matsubara et al. Sep 1991 A
5055997 Sluijter et al. Oct 1991 A
5065308 Evans Nov 1991 A
5072178 Matsumoto Dec 1991 A
5081375 Pickett et al. Jan 1992 A
5099447 Myszewski Mar 1992 A
5103311 Sluijter et al. Apr 1992 A
5109503 Cruickshank et al. Apr 1992 A
5113498 Evan et al. May 1992 A
5115510 Okamoto et al. May 1992 A
5119290 Loo et al. Jun 1992 A
5123109 Hillis Jun 1992 A
5125801 Nabity et al. Jun 1992 A
5128559 Steele Jul 1992 A
5142469 Weisenborn Aug 1992 A
5144166 Camarota et al. Sep 1992 A
5193202 Jackson et al. Mar 1993 A
5203005 Horst Apr 1993 A
5204935 Mihara et al. Apr 1993 A
5208491 Ebeling et al. May 1993 A
5212716 Ferraiolo et al. May 1993 A
5212777 Gove et al. May 1993 A
5218302 Loewe et al. Jun 1993 A
5226122 Thayer et al. Jul 1993 A
RE34363 Freeman Aug 1993 E
5233539 Agrawal et al. Aug 1993 A
5237686 Asano et al. Aug 1993 A
5243238 Kean Sep 1993 A
5247689 Ewert Sep 1993 A
RE34444 Kaplinsky Nov 1993 E
5274593 Proebsting Dec 1993 A
5276836 Fukumaru et al. Jan 1994 A
5287472 Horst Feb 1994 A
5287511 Robinson et al. Feb 1994 A
5287532 Hunt Feb 1994 A
5294119 Vincent et al. Mar 1994 A
5301284 Estes et al. Apr 1994 A
5301344 Kolchinsky Apr 1994 A
5303172 Magar et al. Apr 1994 A
5311079 Ditlow et al. May 1994 A
5327125 Iwase et al. Jul 1994 A
5336950 Popli et al. Aug 1994 A
5343406 Freeman et al. Aug 1994 A
5347639 Rechtschaffen et al. Sep 1994 A
5349193 Mott et al. Sep 1994 A
5353432 Richek et al. Oct 1994 A
5355508 Kan Oct 1994 A
5361373 Gilson Nov 1994 A
5365125 Goetting et al. Nov 1994 A
5379444 Mumme Jan 1995 A
5386154 Goetting et al. Jan 1995 A
5386518 Reagle et al. Jan 1995 A
5392437 Matter et al. Feb 1995 A
5410723 Schmidt et al. Apr 1995 A
5412795 Larson May 1995 A
5418952 Morley et al. May 1995 A
5418953 Hunt et al. May 1995 A
5421019 Holsztynski et al. May 1995 A
5422823 Agrawal et al. Jun 1995 A
5425036 Liu et al. Jun 1995 A
5426378 Ong Jun 1995 A
5428526 Flood et al. Jun 1995 A
5430687 Hung et al. Jul 1995 A
5435000 Boothroyd et al. Jul 1995 A
5440245 Galbraith et al. Aug 1995 A
5440538 Olsen et al. Aug 1995 A
5442790 Nosenchuck Aug 1995 A
5444394 Watson et al. Aug 1995 A
5448186 Kawata Sep 1995 A
5450022 New Sep 1995 A
5455525 Ho et al. Oct 1995 A
5457644 McCollum Oct 1995 A
5465375 Thepaut et al. Nov 1995 A
5469003 Kean Nov 1995 A
5473266 Ahanin et al. Dec 1995 A
5473267 Stansfield Dec 1995 A
5475583 Bock et al. Dec 1995 A
5475803 Stearns et al. Dec 1995 A
5475856 Kogge Dec 1995 A
5483620 Pechanek et al. Jan 1996 A
5485103 Pedersen et al. Jan 1996 A
5485104 Agrawal et al. Jan 1996 A
5489857 Agrawal et al. Feb 1996 A
5491353 Kean Feb 1996 A
5493239 Zlotnick Feb 1996 A
5493663 Parikh Feb 1996 A
5497498 Taylor Mar 1996 A
5504439 Tavana Apr 1996 A
5506998 Kato et al. Apr 1996 A
5510730 El Gamal et al. Apr 1996 A
5511173 Yamaura et al. Apr 1996 A
5513366 Agarwal et al. Apr 1996 A
5521837 Frankle et al. May 1996 A
5522083 Gove et al. May 1996 A
5525971 Flynn Jun 1996 A
5530873 Takano Jun 1996 A
5530946 Bouvier et al. Jun 1996 A
5532693 Winters et al. Jul 1996 A
5532957 Malhi Jul 1996 A
5535406 Kolchinsky Jul 1996 A
5537057 Leong et al. Jul 1996 A
5537580 Giomi et al. Jul 1996 A
5537601 Kimura et al. Jul 1996 A
5541530 Cliff et al. Jul 1996 A
5544336 Kato et al. Aug 1996 A
5548773 Kemeny et al. Aug 1996 A
5550782 Cliff et al. Aug 1996 A
5555434 Carlstedt Sep 1996 A
5559450 Ngai et al. Sep 1996 A
5561738 Kinerk et al. Oct 1996 A
5568624 Sites et al. Oct 1996 A
5570040 Lytle et al. Oct 1996 A
5572710 Asano et al. Nov 1996 A
5574927 Scantlin Nov 1996 A
5574930 Halverson, Jr. et al. Nov 1996 A
5581731 King et al. Dec 1996 A
5581734 DiBrino et al. Dec 1996 A
5583450 Trimberger et al. Dec 1996 A
5584013 Cheong et al. Dec 1996 A
5586044 Agrawal et al. Dec 1996 A
5587921 Agrawal et al. Dec 1996 A
5588152 Dapp et al. Dec 1996 A
5590345 Barker et al. Dec 1996 A
5590348 Phillips et al. Dec 1996 A
5596742 Agarwal et al. Jan 1997 A
5600265 El Gamal Abbas et al. Feb 1997 A
5600597 Kean et al. Feb 1997 A
5600845 Gilson Feb 1997 A
5606698 Powell Feb 1997 A
5608342 Trimberger Mar 1997 A
5611049 Pitts Mar 1997 A
5617547 Feeney et al. Apr 1997 A
5617577 Barker et al. Apr 1997 A
5619720 Garde et al. Apr 1997 A
5625806 Kromer Apr 1997 A
5625836 Barker et al. Apr 1997 A
5634131 Matter et al. May 1997 A
5635851 Tavana Jun 1997 A
5642058 Trimberger et al. Jun 1997 A
5646544 Iadanza Jul 1997 A
5646545 Trimberger et al. Jul 1997 A
5649176 Selvidge et al. Jul 1997 A
5649179 Steenstra et al. Jul 1997 A
5652529 Gould et al. Jul 1997 A
5652894 Hu et al. Jul 1997 A
5655069 Ogawara et al. Aug 1997 A
5655124 Lin Aug 1997 A
5656950 Duong et al. Aug 1997 A
5657330 Matsumoto Aug 1997 A
5658797 Zanveld et al. Aug 1997 A
5659785 Pechanek et al. Aug 1997 A
5659797 Zandveld et al. Aug 1997 A
5675262 Duong et al. Oct 1997 A
5675743 Mavity Oct 1997 A
5675777 Glickman Oct 1997 A
5680583 Kuijsten Oct 1997 A
5682491 Pechanek et al. Oct 1997 A
5687325 Chang Nov 1997 A
5694602 Smith Dec 1997 A
5696976 Nizar et al. Dec 1997 A
5701091 Kean Dec 1997 A
5705938 Kean Jan 1998 A
5713037 Wilkinson et al. Jan 1998 A
5717890 Ichida et al. Feb 1998 A
5717943 Barker et al. Feb 1998 A
5732209 Vigil et al. Mar 1998 A
5734869 Chen Mar 1998 A
5734921 Dapp et al. Mar 1998 A
5737516 Circello et al. Apr 1998 A
5737565 Mayfield Apr 1998 A
5742180 Detton et al. Apr 1998 A
5748872 Norman May 1998 A
5748979 Trimberger May 1998 A
5752035 Trimberger May 1998 A
5754459 Telikepalli May 1998 A
5754820 Yamagami May 1998 A
5754827 Barbier et al. May 1998 A
5754871 Wilkinson et al. May 1998 A
5760602 Tan Jun 1998 A
5761484 Agarwal et al. Jun 1998 A
5773994 Jones Jun 1998 A
5778439 Trimberger et al. Jul 1998 A
5781756 Hung Jul 1998 A
5784630 Saito et al. Jul 1998 A
5784636 Rupp Jul 1998 A
5794059 Barker et al. Aug 1998 A
5794062 Baxter Aug 1998 A
5801547 Kean Sep 1998 A
5801715 Norman Sep 1998 A
5801958 Dangelo et al. Sep 1998 A
5802290 Casselman Sep 1998 A
5815004 Trimberger et al. Sep 1998 A
5815715 Kayhan Sep 1998 A
5821774 Veytsman et al. Oct 1998 A
5828229 Cliff et al. Oct 1998 A
5828858 Athanas et al. Oct 1998 A
5831448 Kean Nov 1998 A
5832288 Wong Nov 1998 A
5838165 Chatter Nov 1998 A
5838988 Panwar et al. Nov 1998 A
5841973 Kessler et al. Nov 1998 A
5844422 Trimberger et al. Dec 1998 A
5844888 Markkula, Jr. et al. Dec 1998 A
5848238 Shimomura et al. Dec 1998 A
5854918 Baxter Dec 1998 A
5857097 Henzinger et al. Jan 1999 A
5857109 Taylor Jan 1999 A
5859544 Norman Jan 1999 A
5862403 Kanai et al. Jan 1999 A
5865239 Carr Feb 1999 A
5867691 Shiraishi Feb 1999 A
5867723 Peters et al. Feb 1999 A
5870620 Kadosumi et al. Feb 1999 A
5884075 Hester et al. Mar 1999 A
5887162 Williams et al. Mar 1999 A
5887165 Martel et al. Mar 1999 A
5889533 Lee Mar 1999 A
5889982 Rodgers et al. Mar 1999 A
5892370 Eaton et al. Apr 1999 A
5892961 Trimberger Apr 1999 A
5892962 Cloutier Apr 1999 A
5894565 Furtek et al. Apr 1999 A
5898602 Rothman et al. Apr 1999 A
5901279 Davis, III May 1999 A
5915099 Takata et al. Jun 1999 A
5915123 Mirsky et al. Jun 1999 A
5924119 Sindhu et al. Jul 1999 A
5926638 Inoue Jul 1999 A
5927423 Wada et al. Jul 1999 A
5933023 Young Aug 1999 A
5933642 Baxter et al. Aug 1999 A
5936424 Young et al. Aug 1999 A
5943242 Vorbach et al. Aug 1999 A
5956518 DeHon et al. Sep 1999 A
5960193 Guttag et al. Sep 1999 A
5960200 Eager et al. Sep 1999 A
5966143 Breternitz, Jr. Oct 1999 A
5966534 Cooke et al. Oct 1999 A
5970254 Cooke et al. Oct 1999 A
5978260 Trimberger et al. Nov 1999 A
5978583 Ekanadham et al. Nov 1999 A
5996048 Cherabuddi et al. Nov 1999 A
5996083 Gupta et al. Nov 1999 A
5999990 Sharrit et al. Dec 1999 A
6003143 Kim et al. Dec 1999 A
6011407 New Jan 2000 A
6014509 Furtek et al. Jan 2000 A
6020758 Patel et al. Feb 2000 A
6020760 Sample et al. Feb 2000 A
6021490 Vorbach et al. Feb 2000 A
6023564 Trimberger Feb 2000 A
6023742 Ebeling et al. Feb 2000 A
6026481 New et al. Feb 2000 A
6034538 Abramovici Mar 2000 A
6035371 Magloire Mar 2000 A
6038650 Vorbach et al. Mar 2000 A
6038656 Cummings et al. Mar 2000 A
6044030 Zheng et al. Mar 2000 A
6047115 Mohan et al. Apr 2000 A
6049222 Lawman Apr 2000 A
6052773 DeHon et al. Apr 2000 A
6054873 Laramie Apr 2000 A
6058469 Baxter May 2000 A
6077315 Greenbaum et al. Jun 2000 A
6078736 Guccione Jun 2000 A
6081903 Vorbach et al. Jun 2000 A
6084429 Trimberger Jul 2000 A
6085317 Smith Jul 2000 A
6086628 Dave et al. Jul 2000 A
6088795 Vorbach et al. Jul 2000 A
6092174 Roussakov Jul 2000 A
6096091 Hartmann Aug 2000 A
6105105 Trimberger Aug 2000 A
6105106 Manning Aug 2000 A
6108760 Mirsky et al. Aug 2000 A
6119181 Vorbach et al. Sep 2000 A
6122719 Mirsky et al. Sep 2000 A
6125408 McGee et al. Sep 2000 A
6127908 Bozler et al. Oct 2000 A
6128720 Pechanek et al. Oct 2000 A
6131149 Nguyen Oct 2000 A
6134166 Lytle et al. Oct 2000 A
6137307 Iwanczuk et al. Oct 2000 A
6145072 Shams et al. Nov 2000 A
6150837 Beal et al. Nov 2000 A
6150839 New et al. Nov 2000 A
6154048 Iwanczuk et al. Nov 2000 A
6154049 New Nov 2000 A
6154826 Wulf et al. Nov 2000 A
6157214 Marshall Dec 2000 A
6170051 Dowling Jan 2001 B1
6172520 Lawman et al. Jan 2001 B1
6173419 Barnett Jan 2001 B1
6173434 Wirthlin et al. Jan 2001 B1
6178494 Casselman Jan 2001 B1
6185256 Saito et al. Feb 2001 B1
6185731 Maeda et al. Feb 2001 B1
6188240 Nakaya Feb 2001 B1
6198304 Sasaki Mar 2001 B1
6201406 Iwanczuk et al. Mar 2001 B1
6202182 Abramovici et al. Mar 2001 B1
6204687 Schultz et al. Mar 2001 B1
6211697 Lien et al. Apr 2001 B1
6212544 Borkenhagen et al. Apr 2001 B1
6212650 Guccione Apr 2001 B1
6215326 Jefferson et al. Apr 2001 B1
6216223 Revilla et al. Apr 2001 B1
6219833 Solomon et al. Apr 2001 B1
RE37195 Kean May 2001 E
6230307 Davis et al. May 2001 B1
6240502 Panwar et al. May 2001 B1
6243808 Wang Jun 2001 B1
6252792 Marshall et al. Jun 2001 B1
6256724 Hocevar et al. Jul 2001 B1
6260114 Schug Jul 2001 B1
6260179 Ohsawa et al. Jul 2001 B1
6262908 Marshall et al. Jul 2001 B1
6263430 Trimberger et al. Jul 2001 B1
6266760 DeHon et al. Jul 2001 B1
6279077 Nasserbakht et al. Aug 2001 B1
6282627 Wong et al. Aug 2001 B1
6282701 Wygodny et al. Aug 2001 B1
6285624 Chen Sep 2001 B1
6286134 Click, Jr. et al. Sep 2001 B1
6288566 Hanrahan et al. Sep 2001 B1
6289440 Casselman Sep 2001 B1
6298043 Mauger et al. Oct 2001 B1
6298396 Loyer et al. Oct 2001 B1
6298472 Phillips et al. Oct 2001 B1
6301706 Maslennikov et al. Oct 2001 B1
6311200 Hanrahan et al. Oct 2001 B1
6311265 Beckerle et al. Oct 2001 B1
6321298 Hubis Nov 2001 B1
6321366 Tseng et al. Nov 2001 B1
6321373 Ekanadham et al. Nov 2001 B1
6338106 Vorbach et al. Jan 2002 B1
6339840 Kothari et al. Jan 2002 B1
6341318 Dakhil Jan 2002 B1
6347346 Taylor Feb 2002 B1
6349346 Hanrahan et al. Feb 2002 B1
6353841 Marshall et al. Mar 2002 B1
6362650 New et al. Mar 2002 B1
6370596 Dakhil Apr 2002 B1
6373779 Pang et al. Apr 2002 B1
6374286 Gee Apr 2002 B1
6378068 Foster et al. Apr 2002 B1
6381624 Colon-Bonet et al. Apr 2002 B1
6389379 Lin et al. May 2002 B1
6389579 Phillips et al. May 2002 B1
6392912 Hanrahan et al. May 2002 B1
6398383 Huang Jun 2002 B1
6400601 Sudo et al. Jun 2002 B1
6404224 Azegami et al. Jun 2002 B1
6405185 Pechanek et al. Jun 2002 B1
6405299 Vorbach et al. Jun 2002 B1
6421808 McGeer et al. Jul 2002 B1
6421809 Wuytack et al. Jul 2002 B1
6421817 Mohan et al. Jul 2002 B1
6425054 Nguyen Jul 2002 B1
6425068 Vorbach et al. Jul 2002 B1
6427156 Chapman et al. Jul 2002 B1
6430309 Pressman et al. Aug 2002 B1
6434642 Camilleri et al. Aug 2002 B1
6434672 Gaither Aug 2002 B1
6434695 Esfahani et al. Aug 2002 B1
6434699 Jones et al. Aug 2002 B1
6437441 Yamamoto Aug 2002 B1
6438747 Schreiber et al. Aug 2002 B1
6449283 Chao et al. Sep 2002 B1
6457116 Mirsky et al. Sep 2002 B1
6476634 Bilski Nov 2002 B1
6477643 Vorbach et al. Nov 2002 B1
6480937 Vorbach et al. Nov 2002 B1
6480954 Trimberger et al. Nov 2002 B2
6487709 Keller et al. Nov 2002 B1
6490695 Zagorski et al. Dec 2002 B1
6496902 Faanes et al. Dec 2002 B1
6496971 Lesea et al. Dec 2002 B1
6504398 Lien et al. Jan 2003 B1
6507947 Schreiber et al. Jan 2003 B1
6512804 Johnson et al. Jan 2003 B1
6513077 Vorbach et al. Jan 2003 B2
6516382 Manning Feb 2003 B2
6518787 Allegrucci et al. Feb 2003 B1
6519674 Lam et al. Feb 2003 B1
6523107 Stansfield et al. Feb 2003 B1
6525678 Veenstra et al. Feb 2003 B1
6526520 Vorbach et al. Feb 2003 B1
6538468 Moore Mar 2003 B1
6539415 Mercs Mar 2003 B1
6539438 Ledzius et al. Mar 2003 B1
6539477 Seawright Mar 2003 B1
6542394 Marshall et al. Apr 2003 B2
6542844 Hanna Apr 2003 B1
6542998 Vorbach et al. Apr 2003 B1
6553395 Marshall et al. Apr 2003 B2
6567834 Marshall et al. May 2003 B1
6571381 Vorbach et al. May 2003 B1
6587939 Takano Jul 2003 B1
6606704 Adiletta et al. Aug 2003 B1
6624819 Lewis Sep 2003 B1
6631487 Abramovici et al. Oct 2003 B1
6633181 Rupp Oct 2003 B1
6657457 Hanrahan et al. Dec 2003 B1
6658564 Smith et al. Dec 2003 B1
6668237 Guccione et al. Dec 2003 B1
6681388 Sato et al. Jan 2004 B1
6687788 Vorbach et al. Feb 2004 B2
6697979 Vorbach et al. Feb 2004 B1
6704816 Burke Mar 2004 B1
6708325 Cooke et al. Mar 2004 B2
6717436 Kress et al. Apr 2004 B2
6721830 Vorbach et al. Apr 2004 B2
6725334 Barroso et al. Apr 2004 B2
6728871 Vorbach et al. Apr 2004 B1
6754805 Juan Jun 2004 B1
6757847 Farkash et al. Jun 2004 B1
6757892 Gokhale et al. Jun 2004 B1
6782445 Olgiati et al. Aug 2004 B1
6785826 Durham et al. Aug 2004 B1
6803787 Wicker, Jr. Oct 2004 B1
6804752 Patterson et al. Oct 2004 B2
6820188 Stansfield et al. Nov 2004 B2
6829697 Davis et al. Dec 2004 B1
6836842 Guccione et al. Dec 2004 B1
6847370 Baldwin et al. Jan 2005 B2
6859869 Vorbach Feb 2005 B1
6868476 Rosenbluth et al. Mar 2005 B2
6871341 Shyr Mar 2005 B1
6874108 Abramovici et al. Mar 2005 B1
6886092 Douglass et al. Apr 2005 B1
6901502 Yano et al. May 2005 B2
6928523 Yamada Aug 2005 B2
6961924 Bates et al. Nov 2005 B2
6975138 Pani et al. Dec 2005 B2
6977649 Baldwin et al. Dec 2005 B1
7000161 Allen et al. Feb 2006 B1
7007096 Lisitsa et al. Feb 2006 B1
7010687 Ichimura Mar 2006 B2
7036114 McWilliams et al. Apr 2006 B2
7038952 Zack et al. May 2006 B1
7210129 May et al. Apr 2007 B2
7216204 Rosenbluth et al. May 2007 B2
7237087 Vorbach et al. Jun 2007 B2
7249351 Songer et al. Jul 2007 B1
7254649 Subramanian et al. Aug 2007 B2
7340596 Crosland et al. Mar 2008 B1
7350178 Crosland et al. Mar 2008 B1
7382156 Pani et al. Jun 2008 B2
7657877 Vorbach et al. Feb 2010 B2
7759968 Hussein et al. Jul 2010 B1
7873811 Wolinski et al. Jan 2011 B1
20010001860 Beiu May 2001 A1
20010010074 Nishihara et al. Jul 2001 A1
20010018733 Fujii et al. Aug 2001 A1
20010032305 Barry Oct 2001 A1
20020010853 Trimberger et al. Jan 2002 A1
20020013861 Adiletta et al. Jan 2002 A1
20020038414 Taylor et al. Mar 2002 A1
20020045952 Blemel Apr 2002 A1
20020073282 Chauvel et al. Jun 2002 A1
20020083308 Pereira et al. Jun 2002 A1
20020099759 Gootherts Jul 2002 A1
20020103839 Ozawa Aug 2002 A1
20020124238 Metzgen Sep 2002 A1
20020138716 Master et al. Sep 2002 A1
20020143505 Drusinsky Oct 2002 A1
20020144229 Hanrahan Oct 2002 A1
20020152060 Tseng Oct 2002 A1
20020165886 Lam Nov 2002 A1
20030001615 Sueyoshi et al. Jan 2003 A1
20030014743 Cooke et al. Jan 2003 A1
20030046607 Vorbach Mar 2003 A1
20030052711 Taylor et al. Mar 2003 A1
20030055861 Lai et al. Mar 2003 A1
20030056062 Prabhu Mar 2003 A1
20030056085 Vorbach Mar 2003 A1
20030056091 Greenberg Mar 2003 A1
20030056202 Vorbach Mar 2003 A1
20030061542 Bates et al. Mar 2003 A1
20030062922 Douglass et al. Apr 2003 A1
20030070059 Dally et al. Apr 2003 A1
20030086300 Noyes et al. May 2003 A1
20030093662 Vorbach et al. May 2003 A1
20030097513 Vorbach et al. May 2003 A1
20030123579 Safavi et al. Jul 2003 A1
20030135686 Vorbach et al. Jul 2003 A1
20030154349 Berg et al. Aug 2003 A1
20030192032 Andrade et al. Oct 2003 A1
20040015899 May et al. Jan 2004 A1
20040025005 Vorbach et al. Feb 2004 A1
20040039880 Pentkovski et al. Feb 2004 A1
20040168099 Vorbach et al. Aug 2004 A1
20040199688 Vorbach et al. Oct 2004 A1
20050066213 Vorbach et al. Mar 2005 A1
20050091468 Morita et al. Apr 2005 A1
20050144210 Simkins et al. Jun 2005 A1
20050144212 Simkins et al. Jun 2005 A1
20050144215 Simkins et al. Jun 2005 A1
20060036988 Allen et al. Feb 2006 A1
20060230094 Simkins et al. Oct 2006 A1
20060230096 Thendean et al. Oct 2006 A1
20070083730 Vorbach et al. Apr 2007 A1
20080313383 Morita et al. Dec 2008 A1
20090193384 Sima et al. Jul 2009 A1
20100306602 Kamiya et al. Dec 2010 A1
Foreign Referenced Citations (126)
Number Date Country
42 21 278 Jan 1994 DE
44 16 881 Nov 1994 DE
38 55 673 Nov 1996 DE
196 51 075 Jun 1998 DE
196 54 593 Jul 1998 DE
196 54 595 Jul 1998 DE
196 54 846 Jul 1998 DE
197 04 044 Aug 1998 DE
197 04 728 Aug 1998 DE
197 04 742 Sep 1998 DE
198 22 776 Mar 1999 DE
198 07 872 Aug 1999 DE
198 61 088 Feb 2000 DE
199 26 538 Dec 2000 DE
100 28 397 Dec 2001 DE
100 36 627 Feb 2002 DE
101 29 237 Apr 2002 DE
102 04 044 Aug 2003 DE
0 208 457 Jan 1986 EP
0 221 360 May 1987 EP
0 398 552 Nov 1990 EP
0 428 327 May 1991 EP
0 463 721 Jan 1992 EP
0 477 809 Apr 1992 EP
0 485 690 May 1992 EP
0 497 029 Aug 1992 EP
0 539 595 May 1993 EP
0 638 867 Aug 1994 EP
0 628 917 Dec 1994 EP
0 678 985 Oct 1995 EP
0 686 915 Dec 1995 EP
0 707 269 Apr 1996 EP
0 735 685 Oct 1996 EP
0 835 685 Oct 1996 EP
0 746 106 Dec 1996 EP
0 748 051 Dec 1996 EP
0 726 532 Jul 1998 EP
0 926 594 Jun 1999 EP
1 102 674 Jul 1999 EP
1 061 439 Dec 2000 EP
1 115 204 Jul 2001 EP
1 146 432 Oct 2001 EP
0 696 001 Dec 2001 EP
1 669 885 Jun 2006 EP
2 752 466 Feb 1998 FR
2 304 438 Mar 1997 GB
58-58672 Apr 1983 JP
10-44571 Feb 1989 JP
01-229378 Sep 1989 JP
2-130023 May 1990 JP
2-226423 Sep 1990 JP
5-276007 Oct 1993 JP
6-266605 Sep 1994 JP
07-086921 Mar 1995 JP
7-154242 Jun 1995 JP
8-148989 Jun 1995 JP
7-182160 Jul 1995 JP
7-182167 Jul 1995 JP
8-44581 Feb 1996 JP
08069447 Mar 1996 JP
08-101761 Apr 1996 JP
8-102492 Apr 1996 JP
8-106443 Apr 1996 JP
8-221164 Aug 1996 JP
8-250685 Sep 1996 JP
9-27745 Jan 1997 JP
9-237284 Sep 1997 JP
09-294069 Nov 1997 JP
11-046187 Feb 1999 JP
11-307725 Nov 1999 JP
2000-076066 Mar 2000 JP
2000-181566 Jun 2000 JP
2000-201066 Jul 2000 JP
2000-311156 Nov 2000 JP
2001-500682 Jan 2001 JP
2001-510650 Jul 2001 JP
2001-236221 Aug 2001 JP
2002-0033457 Jan 2002 JP
05-509184 Dec 2003 JP
3-961028 Aug 2007 JP
WO9004835 May 1990 WO
WO9011648 Oct 1990 WO
WO9201987 Feb 1992 WO
WO9311503 Jun 1993 WO
WO9406077 Mar 1994 WO
WO9408399 Apr 1994 WO
WO9500161 Jan 1995 WO
WO9526001 Sep 1995 WO
WO9810517 Mar 1998 WO
WO9826356 Jun 1998 WO
WO9828697 Jul 1998 WO
WO9829952 Jul 1998 WO
WO9831102 Jul 1998 WO
WO9835294 Aug 1998 WO
WO9835299 Aug 1998 WO
WO 9835294 Aug 1998 WO
WO9900731 Jan 1999 WO
WO9900739 Jan 1999 WO
WO9912111 Mar 1999 WO
WO9932975 Jul 1999 WO
WO9940522 Aug 1999 WO
WO9944120 Sep 1999 WO
WO9944147 Sep 1999 WO
WO0017771 Mar 2000 WO
WO0038087 Jun 2000 WO
0045282 Aug 2000 WO
WO0049496 Aug 2000 WO
WO0077652 Dec 2000 WO
WO0155917 Aug 2001 WO
WO0213000 Feb 2002 WO
WO0221010 Mar 2002 WO
WO0229600 Apr 2002 WO
WO0250665 Jun 2002 WO
WO02071196 Sep 2002 WO
WO02071248 Sep 2002 WO
WO02071249 Sep 2002 WO
WO02103532 Dec 2002 WO
WO03017095 Feb 2003 WO
WO03023616 Mar 2003 WO
WO03025781 Mar 2003 WO
WO03032975 Apr 2003 WO
WO03036507 May 2003 WO
WO2004053718 Jun 2004 WO
WO2004114128 Dec 2004 WO
WO2005045692 May 2005 WO
WO 2007030395 Mar 2007 WO
Related Publications (1)
Number Date Country
20070150637 A1 Jun 2007 US