Abstract:
A dynamically reconfigurable, multi-mode, multi-channel communication bus. The bus may be dynamically reconfigured into a plurality fo segments, or slices, to provide a relatively wide unified bus, or smaller versions of the bus. This allows multiple bus masters to coexist at the same time that control the bus. The protocol is adaptive in that bus widths dynamically change to allow addition or removal of bus masters at any time. Bus acquisition delays caused by bus arbitration latency using a packetized protocol regime are drastically reduced or eliminated in some systems by using the present bus. The bus demonstrates relatively high efficiency.

Description:
BACKGROUND 
     The present invention relates generally to communication busses, and more particularly, to a multi-mode, multi-channel communication bus that is particularly well suited to provide communication between multiple application specific integrated circuits (ASICs). 
     All common commercial and military busses packetize large messages to control the amount of bus arbitration latency. Furthermore, conventional busses do not dynamically change the number of busses that are available to transfer data. Also, bus acquisition delays caused by bus arbitration latency in a packetized protocol regime is relatively high using conventional busses. Conventional busses do not allow multiple bus masters to coexist at the same time. 
     Therefore, it would be an advantage to have a communication bus that is dynamically reconfigurable to allow multiple bus masters to coexist at the same time and therefore improve bus acquisition delays. Accordingly, it is an objective of the present invention to provide for a multi-mode, multi-channel communication bus. It is a further objective of the present invention to provide for a multi-mode, multi-channel communication bus that provides for improved inter-ASIC communication. 
     SUMMARY OF THE INVENTION 
     To meet the above and other objectives, the present invention provides for a multi-mode, multi-channel communication bus that is dynamically reconfigurable. The multi-mode, multi-channel communication bus provides for dynamic reconfiguration of a larger bus width (64 bits wide, for example) into smaller versions of the original bus (32 bits wide, 16 bits wide, 8 bits wide, etc.), thus allowing multiple bus masters to coexist at the same time. The protocol is adaptive in that bus widths dynamically change to allow addition or removal of a bus master at any time. This means that the bus state is not required to transition into an idle state before reconfiguration can occur. 
     More specifically, the multi-mode, multi-channel communication bus permits communication between a plurality of nodes. The communication bus comprises a plurality of multiplexed busses coupled between each of the nodes that each have a bus width that is a predetermined portion of the communication bus, and whose combined bus width is equal to the bus width of the communication bus. A plurality of read/write lines, bus request lines, idle lines and bus grant lines are coupled between each of the nodes. In the present bus, one of the nodes comprises an arbiter that dynamically reconfigures the bus width of the communication bus to segment the communication bus into smaller independent slices and to allow multiple bus masters to coexist at the same time. 
     The multi-mode, multi-channel communication bus eliminates problems associated with the commercial and military busses by dynamically providing more busses to transfer data. The degree of fragmentation depends upon the instantaneous demand (number of multiple bus requests). In most cases, the segmenting of the larger bus into smaller independent slices eliminates latency. The multi-mode, multi-channel communication bus solves certain deficiencies of some common commercial and military bus standards, such as PCI and PI-Bus protocols, for example. 
     The primary advantage of the present invention is that bus acquisition delays caused by bus arbitration latency in a packetized protocol regime are drastically reduced or eliminated in some systems. As a result, the multi-mode, multi-channel communication bus demonstrates higher efficiency relative to contemporary standard busses. 
     The present invention is a bus that may be preferably used as an inter-ASIC communication path to overcome deficiencies found in conventional commercial busses, such as PCI and PI-Bus busses, for example. The present bus structure (using an adaptive protocol) may be employed with all systems that use common busses and distributed bus masters, particularly in a Common Integrated Processor architecture developed for an F-22 aircraft, for example. However, although the present invention was specifically developed to improve inter-ASIC communication, it is not limited to this application. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The various features and advantages of the present invention may be more readily understood with reference to the following detailed description taken in conjunction with the accompanying drawing figures, wherein like reference numerals designate like structural elements, and in which: 
     FIG. 1 illustrates a system employing a multi-mode, multi-channel communication bus in accordance with the principles of the present invention; 
     FIG. 2 shows a bus interface for an exemplary 64 bit wide implementation of a multi-mode, multi-channel communication bus of the present invention; 
     FIG. 3 is a detailed block diagram illustrating the bus interface for the system of FIG. 1; 
     FIG. 4 illustrates an exemplary 64-bit four-slice multi-mode, multi-channel communication bus in accordance with the principles of the present invention; 
     FIG. 5 illustrates an exemplary 32-bit two-slice multi-mode, multi-channel communication bus in accordance with the principles of the present invention; 
     FIG. 6 is a block diagram of an input interface of a 64-bit input port of the multi-mode, multi-channel communication bus; and 
     FIG. 7 is a timing diagram of a 32 bit multi-mode, multi-channel communication bus working in a dual 16 bit mode. 
    
    
     DETAILED DESCRIPTION 
     Referring to the drawing figures, FIG. 1 depicts an exemplary system 10 employing a multi-mode, multi-channel communication bus 20 in accordance with the principles of the present invention. The exemplary system 10 includes a plurality of application specific integrated circuits (ASICs) 11 or nodes 11 that communicate with each other by way of the multi-mode, multi-channel communication bus 20. In the system 10, each of the plurality of ASICs 11 may become a bus master 11 that controls or drives a single relatively wide (unified) address/data multiplexed (MMIC) bus 22 (FIG. 2) of the communication bus 20. Each of the plurality of ASICs 11 has a bus interface (INT) 21 that is part of the communication bus 20 that permits the ASIC 11 to become a bus master 11 and drive the communication bus 20. 
     FIG. 2 illustrates the bus interface 21 for an exemplary 64-bit wide implementation of the multi-mode, multi-channel communication bus 20. The communication bus 20 was developed to provide communication between multiple ASICs 11 by way of the address/data multiplexed bus 22 (shown in FIG. 2 as 64 bits wide). Multi-mode, multi-channel communication is achieved by allowing selected ASICs 11 to act as bus masters 11 that independently use a portion(s) or segment(s) of the multiplexed bus 22. The portions or segments of the multiplexed bus 22 are designated in FIGS. 3-6 by numerals 22a, 22b, 22c and 22d, depending upon how many bus slices are formed. The multi-mode, multi-channel communication bus 20 is described herein with regard to its use with multiple ASICs 11. However, the present communication bus 20 is not limited to use with ASICs 11, and has general applicability to systems that use common busses and distributed bus masters 11, such as those used in military avionics systems, for example. 
     The multi-mode, multi-channel communication bus 20 is unique in that acquisition latency is reduced by permitting multiple bus masters 11 to exist at the same time. This is accomplished by reconfiguring the relatively wide multiplexed bus 22 (such as a 64-bit wide bus 22, for example) into several narrower busses 22 (such as two 32 bit wide busses 22a, 22b, or four 16 bit wide busses 22a, 22b, 22c, 22d, for example). The interface ports 21 of each ASIC 11 monitor bus arbitration control lines 14 coupled to an arbiter 40 (FIGS. 3-5) to determine which bus master 11 (ASIC 11) is to drive which segment(s) of the multiplexed (MMIC) bus 22. Bus request lines 15 are also coupled between the ASICs 11 along with read/write segment lines 16. 
     The multi-mode, multi-channel communication bus 20 permits reconfiguring the wide multiplexed bus 22 into several narrower independent busses 22a-d that provide for immediate handling of simultaneous unrelated bus transactions by multiple bus masters 11 (multiple ASICs 11). Segmentation or &#34;split operation&#34; of the wide unified multiplexed bus 22 occurs during an existing transaction, meaning that multiple bus masters 11 coexist. When only one bus master 11 requests the bus 20, a default mode is provided which is a dedicated 64-bit wide multiplexed bus 22 (comprising all four bus segments 22a-22d) working at its full bus bandwidth. Multiple bus masters 11 do not have to wait for a current transaction to end for reconfiguration (into smaller bus segments) to take place. The communication bus 20 thus provides for an adaptive protocol where the transfer protocol changes depending upon how many bus masters 11 request the multiplexed bus 22 at any particular time. 
     There are four primary configurations of the multi-mode, multi-channel communication bus 20, but the present invention is not limited to these specific configurations. The first is the single 64-bit wide multiplexed bus 22 controlled by one bus master 11. The second comprises two 32 bit wide multiplexed busses 22 (comprising bus segments 22a, 22b) controlled by two bus masters 11. The third comprises two 16 bit wide multiplexed busses 22 (bus segments 22a, 22b) and one 32 bit wide multiplexed bus 22 (bus segment 22c) controlled by three bus masters 11. The fourth comprises four 16 bit wide multiplexed busses 22 (bus segments 22a, 22b, 22c, 22d) controlled by four bus masters 11. The bus mode line 14 of the bus interface 21 shown in FIG. 2 is controlled such that a change in the state of the arbiter 40 indicates the presence of a grant or grants to multiple bus masters 11. Two specific examples are described with reference to FIGS. 4 and 5, which illustrate two of the configurations. 
     FIG. 3 is a block diagram of an exemplary 4-bit four-slice multi-mode, multi-channel communication bus 20 illustrating details of the bus interface 21 shown in FIGS. 1 and 2. As is shown in FIG. 3, two nodes 11 or ASICs 11 are connected by way of the multi-mode, multi-channel communication bus 20. Each node 11 or ASIC 11 comprises a bus interface 21 containing an input port 30 and an output port 30a. The input and output ports 30, 30a are coupled to lines comprising the multiplexed bus 22 (shown as segments 22a, 22b, 22c, 22d) and the respective control lines 14, 15, 16 shown in FIG. 2. 
     The input port 30 of each node 11 includes an input register 31 coupled between the segments 22a, 22b, 22c, 22d of the multiplexed bus 22 and a barrel shift register 32. The barrel shift register 32 is controlled by a receive shift register controller 33. The barrel shift register 32 is coupled to a portal data register 34 comprising a plurality of shift registers 34. The plurality of shift registers 34 are coupled to a latch 35. The latch 35 is controlled by a receive latch controller 36. The latch 35 is coupled to a data register 37 comprising an input first-in, first-out (FIFO) 37 that is coupled to an internal bus 11a of the node 11 or ASIC 11. The receive shift register controller 33 and receive latch controller 36 are controlled by a transmit/receive configuration controller 30b which interfaces to an arbiter 40. 
     The output port 30a of each node 11 includes an output first-in, first-out (FIFO) 38 that is coupled to the internal bus 11a of the node 11 or ASIC 11. The output FIFO 38 is coupled by way of a portal data register 34 comprising a plurality of shift registers 34 to a barrel shift register 32. The barrel shift register 32 is controlled by a transmit shift register controller 33. The barrel shift register 32 is coupled by way of an output data register 38 to the communication bus 20. The output data register 38 is controlled by a transmit latch controller 36. The transmit shift register controller 33 and transmit latch controller 36 are also controlled by the transmit/receive configuration controller 30a which interfaces to the arbiter 40. 
     FIG. 4 illustrates an exemplary 64-bit four-slice multi-mode, multi-channel communication bus 20. Four ASICs 11 are interconnected by way of the 64-bit four-slice multiplexed bus 22 comprising four 16-bit wide address/data multiplexed busses 22a, 22b, 22c, 22d or segments 22a, 22b, 22c, 22d. The ASICs 11 have bidirectional control lines 14, 15, 16, 17 coupled between them that include bus mode lines 14, bus request and grant lines 15, read/write A and B lines 16, and idle A and B lines 17. The bus request and grant lines 15 are connected between respective slave ASICs 11 and the master ASIC 11 that comprises the arbiter 40. The lowermost ASIC 11 includes the arbiter 40 in the embodiment shown in FIG. 4. Bus request and grant logic is provided in each of the respective ASICs 11 (in the arbiter 40) that process request and grant signals in a conventional manner. 
     FIG. 5 illustrates an exemplary 32-bit two-slice multi-mode, multi-channel communication bus 20. The 32-bit two-slice communication bus 20 comprises two 32-bit wide address/data multiplexed busses 22a, 22b. The ASICs 11 have bi-directional control lines 16, 17 coupled between them that include the read/write A and B lines 16 and the bus request lines 15. The bus request and grant lines 15 are connected between respective slave ASICs 11 and the master ASIC 11 that includes the arbiter 40. The lowermost ASIC 11 is the arbiter 40 in the exemplary embodiment shown in FIG. 5. Bus request and grant logic is provided in each of the respective ASICs 11 that process request and grant and grant signals in a conventional manner. The ASIC 11 that includes the arbiter 40 in the embodiment of FIG. 5 may be configured to implement a ring or a first-come, first-served request/grant scheme. The ASIC 11 that is the arbiter 40 monitors the status of the other ASICs 11 to properly allocate bus resources. 
     FIG. 6 is a block diagram of an exemplary 64 bit input port 30 of the bus interface 21 that implements the multi-mode, multi-channel communication bus 20. A reversed configuration of the 64 bit input port 30 functionally defines an output port 30a of the bus interface 21, and are shown in FIG. 3. The input port 30 comprises an input register 31 with a data input having a 64 bit wide data path. The input register 31 is coupled to a barrel shift register 32 that is controlled by a shift register controller 33. The barrel shift register 32 is coupled to a plurality of shift registers 34 that each have a 16 bit wide data path. The plurality of shift registers 34 are coupled to a latch 35. The plurality of shift registers 34 and the latch 35 are controlled by a latch controller 36. The latch 35 is coupled to a data register 37 comprising an data output having a 32 bit wide data path. 
     The present invention provides for specific architectural enhancements to MMIC master and slave interface designs. FIG. 2 depicts functional components of the bus 20 and that are used to temporarily ignore bus segments 22a-22d (control and data lines) that are not used for an immediate node 11 to node 11 transaction. Therefore, the following requirement is specific to the present invention. The masters 11 and slaves 11 must be able to conduct a transaction on a single bus slice at a minimum, or all bus slices at a maximum (FIGS. 2-4 show four bus slices of the implementation). 
     The number of slices used on the multiplexed bus 22 determines the peak instantaneous bandwidth of the transaction. For example, a bus transfer using one slice will only maintain a peak transfer rate one-quarter of the peak potential (in the examples of FIGS. 2-4). In the example implementations, the peak transfer width is 64 bits or four bus slices used simultaneously for a master 11 to slave 11 transaction. Therefore, it is a requirement is that the master 11 or slave 11 be able to initiate and complete a transaction using one (or N) slices of the multiplexed bus 22. 
     The next aspect of the master-slave interface 21 is that, since data will end up in a storage medium (i.e., register or latch), a shifter must exist to translate data transferred on any bus slice or slices, and reconstruct the data segments to form the original wide data word, (see FIG. 6). In the aforementioned examples, a data word may be split up into four 16-bit words if one bus segment is used for a particular transfer. Likewise, if two slices are used, the 32-bit data packets are combined to yield 64 bits of resultant data. In the case where the ASIC data busses 11a are 32 bits wide and a 64 bit multiplexed bus 22 is used, rate buffering is employed to accommodate the overrun of data. Therefore, the next requirement for a master-slave interface 21 is that master-slave partitions in an ASIC 11 use a shifting function (barrel shifter 32) to format wide data into smaller segments. Slave partitions use the shifting function to adjust incoming data so that the original data (with a wider data width) can be reconstructed from smaller components. The amount of shifting depends upon how many bus slices (segments 22a-22d) are used during the transfer. 
     Another important behavior for the multiplexed bus 22 during the arbitration grant phase is that the slice allocation used for an existing transfer may be reallocated in the middle of the current transaction. In this case, the arbiter 40 examines the existing bus slice allocation, and upon reception of the bus request, synchronously redefines the allocations to support simultaneous transfers. This dynamic reconfiguration during an existing bus transaction to allow multiple masters 11 prompts the following master-slave characteristic. Bus masters 11 and slaves 11 must be able to dynamically redefine the bus transaction in progress to free resources for another bus master 11. This implies a user-defined synchronism between bus arbitration and transaction timing. This is unique to the present ASIC implementation. 
     The function that oversees the data transfer width, or how many bus slices are used for a particular transaction, is determined by an arbitration function. A bus arbiter is not unique to a bus implementation. However the present arbiter 40 is unique because it must query a bus slave 11 to determine if it can accept data, determine what bus slice resources are available, supply enough information to both master 11 and slave 11 to indicate on which bus slices the transaction will occur, and monitor the transactions to determine when bus slice resources become available for use for a subsequent transaction. In order to accomplish the above requirements, the arbiter 40 keeps track of bus segments. This is unique, because standard arbiter function only involve keeping track of the utilization of the entire bus 22 and not individual bus slices (segments 22a-22d). Therefore, the features described above for the arbiter 40 define a MMIC-unique (or ASIC-unique) arbiter 40 that keeps track of which bus slices are used at any one time. Bus slices are awarded to an arbitration winner based upon the bandwidth required for a transaction and bus slice resources available at the time of arbitration. 
     At the physical layer of the MMIC protocol, each bus slice contains signal functional groups comprising a bus entity in itself. This means that each slice contains a data slice (16 bits in the aforementioned examples), data direction controls and a strobe. Also, if the bus 22 is to be throttled, then a signal equivalent to &#34;transfer acknowledge&#34; must exist to indicate to a master 11 that the addressed bus slave 11 can take the data transferred on the bus slices. 
     The following is a brief description of a typical transaction between master 11 and slave 11. The first phase of such a transaction is the arbitration phase. At this time, the arbiter 40 examines its record of the existing transactions on the bus 22. This knowledge is received be each master 11 requesting bus resources from the arbiter 40. The arbiter 40 grants resources and stores the current status of the bus 22. The arbiter 40 stores the current bus status so that it knows how to allocate bus resources for subsequent transaction requests from a different bus master 11. 
     The master 11 then grants bus slices to the master 11 and also notifies the slave 11 which of the bus slices will facilitate transmission of data. After the requisite hand-shaking between the arbiter 40, master 11 and slave 11 is complete, the transaction is started between the master 11 and slave 11. The arbitration/grant sequence may result in a reallocation of bus slices available for new and existing transactions. As discussed above, existing transactions need not be interrupted due to design considerations in the arbiter 40, master 11 and slave 11 ASIC partitions. After the transfer is complete, the existing bus master 11 controlling a particular number of bus slices notifies the arbiter 40 that the transaction is done, meaning that those bus resources can be allocated to another master 11. 
     For the purposes of completeness, FIG. 7 is a timing diagram of a 32 bit multi-mode, multi-channel communication bus 20, such as the embodiment shown in FIG. 4, for example, working in a dual 16 bit mode. DATM and DATL signals represent the most and least significant 16 bits of the wider 32 bit bus 20. The 16 bit words &#34;FFFF&#34;, &#34;AAAA&#34;, &#34;BBBB&#34; and &#34;CCCC&#34; represent data packets, and are not represent any specific control or formatting information. The &#34;EOT&#34; is an end of transfer signal. The DESTM and DESTL signals are 4-bit code words (discrete destination indicators) that are sent to a slave 11. In this particular example, the bus structure depicts a 32 bit bus with two 16 bit slices. In this case the master 11 of the transmission would output the destination address as the 4-bit code to the slave 11. The numbers &#34;F&#34;, &#34;2&#34; and &#34;1&#34; indicate slave 11 or destination terminals for reception of data. Each of these numbers identifies a unique slave 11 that is expected to receive the data. The HOLDx, R*/Wx and IDLEx signal groups are an example of signals at the physical protocol layer that facilitate MMIC characteristic requirements identified above. The IDLEx signals indicate to the arbiter 40 that the bus segment is IDLE and free to be reallocated for a requested transfer. The HOLDx signals provide transaction throttling in the event that the addressed slave 11 cannot take the data. 
     One of the most attractive characteristics of the multi-mode, multi-channel communication bus 20 is the severe reduction of bus arbitration latency that it provides. Simply put, latency is the time from when perspective bus masters 11 request the bus 20, to the time when the arbiter 40 gives the new bus masters 11 permission to drive (transfer data over) the bus 20. In the present implementation of the multi-mode, multi-channel inter-ASIC communication bus 20 that has been reduced to practice, there are four primary configurations (discussed previously), but in the most extreme case, 64 independent bus masters 11 may exist for a 64 bit large unified bus 20, each possessing a single (1) bit slice. This is equivalent to 64 independent serial busses, available upon demand if the communication bus 20 is designed to configure itself with bit wide granularity. With a 64 bit wide bus 20 that may be dynamically reconfigured to narrower copies of the wider unified bus 20 allowing quick grants to multiple masters 11, access time to bus services are virtually eliminated in most systems. 
     When using the multi-mode, multi-channel communication bus 20, the more bus masters 11 that consume the peak bandwidth, the less bandwidth is available to an individual bus master 11. In most cases however, the benefit of reducing latency is more desirable than a reduction in bandwidth because peak efficiency is realized for the entire ensemble of bus masters 11 or system. 
     The multi-mode, multi-channel communication bus 20 tends to optimize bus efficiency by increasing or completely eliminating the need for packetizing large data files into smaller packets, which require a large amount of overhead. A reduction in overhead stems from a reduction in arbitration cycles on the bus 20, and fewer header transfer cycles because of the reduction in the number of packets. Since most of the penalties incurred on conventional busses are attributed to the aforementioned causes, the efficiency (data transfer cycles versus total bus cycles) of the multi-mode, multi-channel communication bus 20 is higher than conventional busses having a comparable data width and peak data transfer rate. 
     Not only is latency drastically reduced (and in most cases, eliminated), several other advantages are realized that make the multi-mode, multi-channel communication bus 20 very conducive to simpler system designs. The present invention does not rely on the concept of packetizing to control latency, and complicated bus arbiters to guarantee extreme fairness, which simplifies the system design. Requirements placed upon the bus arbiter 40 are different because of the dynamic restructuring of the wider bus 20 into several smaller busses, thus servicing several bus masters 11 at once. This essentially eliminates the need for potentially complicated bus arbitration schemes, such as bus grants based upon fairness or priority. The dynamic bus reallocation operation performed in the multi-mode, multi-channel communication bus 20 permits the use of a very simple first come-first served arbiter 40, which is relatively easy to implement. 
     Since the multi-mode, multi-channel communication bus 20 may be modified to operate in smaller slices, there is a certain degree of redundancy. If a failure is detected on a bus driver of a particular bus master 11, the communication bus 20 may be reconfigured in a degraded resource mode. This feature makes the multi-mode, multi-channel communication bus 20 somewhat fault tolerant in that it may be reconfigured around the failure due to its inherent redundancy. 
     Thus, an improved multi-mode, multi-channel communication bus has been disclosed. It is to be understood that the described embodiments are merely illustrative of some of the many specific embodiments which represent applications of the principles of the present invention. Clearly, numerous and other arrangements can be readily devised by those skilled in the art without departing from the scope of the invention. In particular, the disclosure of two, three or four bus slices as the segmented multiplexed bus is not to be taken as limiting, in that the multiplexed bus may be segmented into additional slices as a function of the number of nodes and the width of the unified bus.