Patent Publication Number: US-6708277-B1

Title: Method and system for parallel bus stepping using dynamic signal grouping

Description:
FIELD OF THE INVENTION 
     The invention relates to the field of computer communications and, more particularly, to a method and system for parallel bus stepping using dynamic signal grouping. 
     BACKGROUND OF THE INVENTION 
     In modern-day portable computer systems, emphasis is placed on reducing the power required to perform various computer processes. By reducing power consumption, portable computer users can operate under battery power for extended periods of time. Additionally, batteries can be made smaller and more lightweight while still providing the same number of operating hours. This enables portable computer systems to be even more attractive to users to due to their increased portability. 
     In order to reduce the power required to perform communications functions, portable computer units can make use of various standards, such as the Peripheral Component Interconnect bus in order to be interfaced with ancillary equipment such as disk drives and printer equipment. Generally, these bus structures provide operating protocols in which speed and power can be traded in order to optimize performance under various circumstances. Thus, speed can be sacrificed in order to reduce power consumption while power consumption can be increased in order to provide a higher speed interface with ancillary components. 
     Therefore, it is highly desirable to make use of a parallel bus structure which allows a high-speed interface with peripheral components while maintaining a low level of power consumption. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention is pointed out with particularity in the appended claims. However, a more complete understanding of the present invention may be derived by referring to the detailed description and claims when considered in connection with the figures, wherein like reference numbers refer to similar items throughout the figures, and: 
     FIG. 1 is an illustration of power consumption versus speed of a parallel interface bus in accordance with the use of conventional parallel bus structures; 
     FIG. 2 is a timing diagram of an eight-signal parallel bus structure in accordance with the use of conventional parallel bus structures; 
     FIG. 3 is a timing diagram of an eight-signal parallel bus structure using dynamic signal grouping in accordance with a preferred embodiment of the invention; 
     FIG. 4 is a block diagram of a system for limiting the power required to drive signals in a parallel bus structure in accordance with a preferred embodiment of the invention; 
     FIG. 5 is a flowchart of a method for dynamic signal grouping used in a parallel bus structure in accordance with a preferred embodiment of the invention; 
     FIG. 6 is another flowchart of a method for dynamic signal grouping used in a parallel bus structure in accordance with a preferred embodiment of the invention; and 
     FIG. 7 is flowchart of still another method for dynamic signal grouping used in a parallel bus structure in accordance with a preferred embodiment of the invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     A method and system for parallel bus stepping using dynamic signal grouping allows a parallel bus structure to operate at a high data rate while minimizing power consumption. This allows computers to efficiently communicate with peripheral devices without placing additional demands on power storage and power conversion equipment. This results in portable computer systems which are more capable and require less battery power than their predecessors, thus enhancing the appeal of portable and laptop computer units. 
     FIG. 1 is an illustration of power consumption versus speed of a parallel interface bus in accordance with the use of conventional parallel bus structures. In FIG. 1, a measure of power consumption is oriented in the vertical direction, while a measure of the relative speed of the parallel interface bus is oriented in the horizontal direction. In conventional systems, the user must decide whether reducing power consumption is necessary (at the expense of interface bus speed), or whether a premium is to be placed on interface bus speed (at the expense of increased power consumption). In FIG. 1, Point “ 10 ” represents a relatively low power consumption, low speed interface bus while point “ 20 ” represents a higher speed, higher power consumption interface bus. Point “ 30 ” represents a desirable condition where interface bus speed can be increased without requiring the interface bus to consume additional power. Point “ 30 ” is not obtainable through the use of a conventional parallel interface bus structure. 
     FIG. 2 is a timing diagram of an eight-signal parallel bus structure in accordance with the use of conventional bus structures. In FIG. 2, information words  1 ,  2 , and  3  are intended for transmission along a parallel bus structure. The parallel bus structure inferred by FIG. 2 includes a clock signal, data ready signal, and signals  1 - 8 . In a preferred embodiment, the clock signal, data ready signal, and signals  1 - 8  each propagate through a dedicated conductor to at least one external component. Information words  1 - 3  are representative of data transmitted along the parallel bus structure of inferred by FIG. 2, or can be representative of address information which identifies a particular receiving element, or group of receiving elements which are interfaced to a parallel bus structure. 
     The clock signal of FIG. 2 functions to provide external equipment with the timing information sufficient to indicate the start and stop of an information or management signal, such as the data ready signal also shown in FIG.  2 . The end of each clock signal period of FIG. 2 is denoted by T 1  through T 12 . Note that the parallel bus structure inferred by FIG. 2 can incorporate additional control and management signals, such as an address and data strobe, frame identifier, or other signal not shown in the FIG.  2 . 
     In the example of FIG. 2, address and data stepping are used in order to reduce power consumption of the parallel bus structure in accordance with conventional techniques, such as address and data stepping used in the Peripheral Component Interconnect bus specification. Therefore, the example of FIG. 2 is indicative of a power consumption and interface bus speed which corresponds to a location near point “ 10 ” of FIG.  1 . 
     In the example of FIG. 2, signals  1 - 2  are allowed to change during clock period  1 , signals  3 - 4  are allowed to change during clock period  2 , signals  5 - 6  are allowed to change during clock period  3 , and signals  7 - 8  are allowed to change during clock period  4 . Through this technique of address and data stepping, 4 clock cycles are required in order to convey a set of 8 binary  1 &#39;s along the parallel bus structure. After the start of clock period  4 , a data ready signal is asserted. This signal notifies the external components coupled to the parallel bus structure by FIG. 2 that information word  1  is available for reception. 
     Further in accordance with the conventional technique of address and data stepping, signal  1  changes from a binary  1  to a binary  0  during clock period  5 , which corresponds to the 1 st  clock period of information word  2  of FIG.  2 . Signal  2  does not change in information word  2 . Signal  3  changes from a binary  1  to a binary  0  during clock period  6 , while signal  4  remains a binary  1 . Further, signals  5  and  6  change state from a binary  1  to a binary  0  during clock periods  7  and  8 , respectively. Signals  6  and  8  do not change for the example of information word  2 . During clock period  8 , the data ready signal is asserted in order to notify the external components that a completed information word is now present on the parallel interface bus inferred by FIG.  2 . 
     Also in accordance with the conventional technique of data stepping, signals  1 ,  3  and  5 - 8  remain at their current states in order to form information word  3 . Signal  2  changes from a binary  1  to a binary  0  during the first clock period of information word  3 , while signal  4  changes during the 2nd clock period of information word  3 . At clock period  12 , the data ready signal is asserted in order to notify external equipment that a completed information word is present on the parallel bus structure. 
     In the example of FIG. 2, which illustrates a conventional technique of address and data stepping, it is important to point out that four clock periods are always required in order to complete an information word. This is the case even though only very few signals actually change states during the formation of a new word. The example of FIG. 2 could have been illustrated using an address and data stepping scheme in which only 1 signal was allowed to change states during each clock period. In this case, each information word would have required 8 clock periods is in order to complete the transmission of a single 8-bit word. Although this technique would have resulted in requiring the least amount of power in order to transmit each 8-bit word, the technique would reduce the speed of the parallel interface bus by a factor of two. 
     In a similar manner, the example of FIG. 2 could also have been illustrated using an address and data stepping scheme in which signals  1 - 4  were allowed to change states during clock period  1 , and signals  5 - 8  were allowed to change during clock period  2 . In this case, each information word would have required only 2 clock periods in order to complete the transmission of each 8-bit information word. 
     FIG. 3 is a timing diagram the of an 8-signal parallel bus structure using dynamic signal grouping in accordance with a preferred embodiment of the invention. In FIG. 3, information words  1 ,  2 , and  3  are the same value as information words  1 ,  2 , and  3  of FIG.  2 . Additionally, in order to reduce the power consumption of the parallel bus structure represented by FIG. 3, only 2 of the 8 signals will be changed during any clock period. Thus, a change of state of each of signals  1 - 8  requires 4 clock periods. When each of signals  1 - 8  has changed state to reflect a set of binary  1 &#39;s, a data ready signal is asserted. Similar to FIG. 2, this data ready signal informs any external component interfaced to the parallel bus structure of FIG. 3 that information word  1  is ready for reception. 
     In order to convey information word  2  along the parallel interface bus inferred by FIG. 3, signals  1 - 3  are set to a binary  0  during clock period  5 . During clock period  6 , signals  5  and  7  are changed to a binary  0 . In this manner, the dynamic grouping of signals  1 - 3  and  5 - 7  enables a change of state which requires only 2 clock periods in order to complete. Through this dynamic grouping, the data ready signal can be asserted during clock period  6  in order to notify external components that information word  2  is complete and ready to be received. 
     In order to convey information word  3  along the parallel interface bus inferred by FIG. 3, signals  2  and  4  are set to a binary  0 . Thus, these changes in the state of signals  2  and  4  can be completed during clock period  7 , thus requiring only one clock period to complete all of the changes in the binary state of each of the  8  signals of the parallel bus structure which are required in order to form information word  3 . Therefore, the data ready signal can be asserted during clock period  7  in order to notify the external equipment that information word  3  is complete and ready for reception. 
     As illustrated in the example of FIGS. 2 and 3, the principles of the invention provide savings in the number of clock periods required to complete an information word. The amount of the savings is determined in accordance with the number of signals which must undergo a change of state as the parallel bus structure transitions from one information word to the next. In the example of FIG. 3, only 7 clock periods were required in order to convey  3  information words while 12 clock periods were required in order to transmit the same 3 information words, using the conventional address and data stepping of FIG.  2 . Additionally, both FIGS. 2 and 3 represent the case of allowing only 2 of the 8 signals to change state during any given clock period. 
     The principles used in the example of FIG. 3 can be extended to parallel bus structures which make use of address and data stepping using any number of signals. Thus, the principles can easily be extended to other parallel bus structures, such as the Peripheral Component Interconnect bus, which makes use of 32 signal conductors. For those instances which require a change to very few of the set of signal conductors, such as in information word  3  of FIG. 3, the maximum savings in clock periods can be realized. From a statistical standpoint, it is expected that over a period of time, each signal conductor can be expected to change less than half of the time. Thus, it is expected that the preferred embodiment of the present invention will result in an average savings in clock periods of more than 50 percent over conventional stepping techniques. This, in turn, is expected to increase the speed of the parallel bus by a factor of more than two. 
     FIG. 4 is a block diagram of a system for limiting the power required to drive signals in a parallel bus structure in accordance with a preferred embodiment of the invention. In FIG. 4, monitor circuit  100  is interfaced to parallel bus structure  110 . Monitor circuit  100  serves to determine the state of each of the signal conductors of parallel bus structure  110  using low-power integrated circuitry. Monitor circuit  100  is also interfaced to processor  120 . Based on the outputs of monitor circuit  100 , processor  120  determines the number of signals which are expected to change in order to form a second or subsequent information word to be transmitted along parallel bus structure  110 . When this determination has been made, processor  120  dynamically allocates some signals to change state during a first clock period, and allocates others to change state during subsequent clock periods. In accordance with the allocation or grouping function performed by processor  120 , the time at which a read indication is transmitted by way of transmitter  130  along parallel bus structure  110  can be adjusted. This allows transmitter  130  to make use of the minimum number of clock periods in order to transmit each information word in response to a control signal from processor  120 . Processor  120  also includes an interface to clock  140  in order to maintain synchronization with other components of the computer system. 
     Monitor circuit  100  need not monitor all signals in parallel bus structure  110 . For those applications in parallel bus structure  110  includes a number of control and management signal conductors, these signals are not required to be interfaced to monitor circuit  100 , thus reducing the complexity and further reducing the power consumption needs of the circuit. In a preferred embodiment, monitor circuit  100  monitors only the signal conductors which convey address or data information. 
     FIG. 5 is a flowchart of a method for dynamic signal grouping used in a parallel bus structure in accordance with a preferred embodiment of the invention. The apparatus of FIG. 4 is suitable for performing the method of FIG.  5 . FIG. 5 begins at step  300  in which a number of signals allowed to change during a clock period is defined. In a preferred embodiment, step  300  is performed in conjunction with the defining of a power budget which influences the number of signals which can be allowed to change during a particular clock period. 
     The method continues at step  310 , in which information is transmitted along the parallel bus structure during a first frame. At step  320 , a processor determines the number of signals expected to change in a second frame, which, preferably, immediately follows the first frame. In step  330 , a time is adjusted at which an indication that the information is ready can be transmitted along the parallel bus structure. Desirably, the adjusting step occurs through the use of a data ready signal. 
     FIG. 6 is a flowchart of a method for dynamic signal grouping used in a peripheral component interconnect bus in accordance with a preferred embodiment of the invention. The apparatus of FIG. 4 is suitable for performing the method of FIG.  5 . FIG. 6 begins at step  400  in which a number of signals allowed to change during a clock period is defined. In a preferred embodiment, step  400  is performed in conjunction with the defining of a power budget which influences the number of signals which can be allowed to change during a particular clock period. 
     The method continues at step  410 , in which information is transmitted along the peripheral component interconnect bus during a first frame. At step  420 , a processor determines the number of signals expected to change in a second frame, which, preferably, immediately follows the first frame. In step  430 , a time is adjusted at which an indication that the information is ready can be transmitted along the peripheral component interconnect bus. Desirably, the adjusting step occurs through the use of a data ready signal and is based on an outcome of step  420 . 
     FIG. 7 is flowchart of another method for dynamic signal grouping used in a parallel bus structure in accordance with a preferred embodiment of the invention. The apparatus of FIG. 4 is suitable for performing the method of FIG.  7 . The method begins at step  510  in which the number of signals which are allowed to change during a clock period is defined. Desirably, step  510  is performed in conjunction with establishing a power budget which influences the number of signals which the parallel bus structure will be allowed to change during a clock period. The method continues at step  520  where at least some of the signals of the parallel bus structure are monitored in order to ascertain the state of the signals. At step  530 , the number of signals which are expected to change in a second frame, which preferably follows a first frame, is determined. At step  540 , certain ones of the signals are changed during a first clock period. At step  550 , the remainder of the number of signals identified as requiring a change in state are allocated to change during at least one subsequent clock period. Desirably, the clock period of step  550  immediately follows the clock period of step  540 . 
     In conclusion, a method and system for parallel bus stepping using dynamic signal grouping allows a parallel bus structure to operate at a high data rate while minimizing power consumption. This allows computers to efficiently communicate with peripheral devices without placing additional demands on power storage and power conversion equipment. This results in portable computer systems which are more capable and require less battery power than their predecessors, thus enhancing the appeal of portable and laptop computer units. 
     Accordingly, it is intended by the appended claims to cover all modifications of the invention that fall within the true spirit and scope of the invention.