Abstract:
The present invention provides an apparatus comprising a stacked processor construction and a method for creating the stacked processor construction. The stacked processor construction comprises two or more printed circuit boards (PCBs), each of which has at least one processor mounted thereon, and each of which has a local PCB bus. Each processor is electrically coupled to its respective local PCB bus. The PCBs are stacked substantially parallel to each other in such a way that the processors are not placed into contact with each other. The local PCB buses are electrically coupled together to enable the processors to communicate with each other. A stacking device is connected to the PCBs. The stacking device separates the PCBs a predetermined distance apart from one another and maintains the PCBs in planes that are substantially parallel to one another. The predetermined distance is at least large enough to prevent the processors from being in contact with each other. A group of conductive elements electrically couples the local buses together to enable the processors to communicate with each other. Preferably, the conductive elements are comprised by a high-speed connector, which functions as the stacking device.

Description:
TECHNICAL FIELD OF THE INVENTION 
     The present invention relates to a stacked processor construction and a method for producing it. More particularly, the present invention relates to a stacked processor construction and a method for producing the stacked processor construction wherein the local PCB bus is optimized to maximize the speed of the local PCB bus. 
     BACKGROUND OF THE INVENTION 
     In printed circuit board (PCB) technology, local bus timing challenges have generally been confronted in relation to two-dimensional topologies. The challenges associated with bus length issues have typically been addressed by employing flat, two-dimensional multi-chip modules or by utilizing complex signaling conventions to overcome the speed limitations associated with signal propagation constraints. Generally, in a system where processors are relatively far apart, the system is generally slower due to the length of time required for the signal to travel between the processors via the trace connecting the pins of the processors. 
     One known solution to this problem is to move the processors closer together on the printed circuit board, thereby shortening the length of the local bus traces interconnecting the processors. Increasing the speed of the local bus enables execution speed to be increased, which increases the speed of the overall system. In order to increase execution speed, many factors must be addressed, including, for example, the timing of the signals sent between the processors and memory. The speed of the local PCB bus is related to the amount of time that is required for a processor to obtain a predetermined amount of data (i.e., a transaction) from memory and load it into the processor. This speed, in turn, relates to the speed of the bus clock and to the data transfer protocol being used. All of these factors are limited by the speed of the local PCB bus, which greatly depends on the trace lengths of the local PCB bus. Therefore, one of the primary factors effecting the overall system speed is the trace lengths of the local PCB bus. 
     Although moving the processors closer together on the local PCB bus enables the trace lengths of the local PCB bus to be shortened, which can improve the speed of the local PCB bus, two-dimensional topologies are limited with respect to how close to each other the processors can be placed on the PCB. Therefore, a need exists for a method for spatially locating processors in a multi-processor environment with respect to one another such that the trace lengths of the local PCB bus can be minimized, thereby enabling the speed of the PCB bus to be increased. 
     FIG. 1 illustrates a known multi-processor arrangement in which the processors are arranged on a PCB board in a two-dimensional topology. The arrangement shown in FIG. 1 comprises four central processing units (CPUs)  10 , which are all connected to a local PCB bus  11 . A core electronics components (CEC)  12  is connected to the local PCB bus  11  and provides an inner face between the CPUs  10  and memory (not shown). The CEC  12  also provides an input/output (I/O) interface for the CPUs  10  and any components (not shown) communicating with the CPUs  10  over the local PCB bus  11  via the CEC  12 . Each of the CPUs  10  has particular pins that are connected to each other via the local PCB bus  11 . Each of the pins is connected via IC package traces and other conductive bonding elements to the die of the respective CPU  10 . Therefore, each pin of each CPU  10  has a particular IC package trace length associated with it. 
     In addition, the signal pins of each CPU  10  has a local PCB bus trace length associated with it. The term signal pin, as that term is used herein, is intended to generally denote pins that correspond to data and address signals. Some pins of the CPUs  10  are not connected to the local bus. Some pins that are connected to the local bus are not used for data or addresses. The PCB bus trace lengths associated with the signal pins corresponds to the distance between a signal pin of one CPU  10  along the local bus to a signal pin of another CPU  10 . This combined IC package trace length and local PCB bus trace length, which will be referred to hereinafter as the die-to-die trace length, is related to the overall speed of the system. Shortening the die-to-die trace lengths can reduce the PCB bus length and thus improve the overall speed of the system. Therefore, in a two-dimensional topology such as that shown in FIG. 1, attempts have been made to route the PCB bus trace lengths in such a way that the die-to-die trace lengths are minimized for certain signals. 
     A need exists for a method that can be utilized to further reduce the die-to-die trace lengths between the CPUs in order to improve the speed of the PCB bus and of the overall system. Accordingly, a need exists for a method that enables the processors in a multi-processor environment to be located with respect to one another in such a way that die-to-die trace lengths associated with certain signals can be reduced in order to increase the speed of the local PCB bus and of the overall system. 
     SUMMARY OF THE INVENTION 
     The present invention provides an apparatus comprising a stacked processor construction and a method for creating the stacked processor construction. The stacked processor construction comprises two or more printed circuit boards (PCBs), each of which has at least one processor mounted thereon, and each of which has a local PCB bus therein. Each processor is electrically coupled to its respective local PCB bus. The PCBs are stacked substantially parallel to each other in such a way that the processors are not placed into contact with each other. The local PCB buses are electrically coupled together to enable the processors to communicate with each other. 
     In accordance with a first embodiment, the stacked processor construction apparatus comprises a first printed circuit board having a first local bus, which comprises of conductive traces, a first processor mounted on the first printed circuit board and electrically coupled to the first local bus, a second printed circuit board having a second local bus comprised of conductive traces, a second processor mounted on the second printed circuit board and electrically coupled to the second local bus, and a first stacking device connected to the first and second printed circuit boards. The first stacking device separates the first and second printed circuit boards a predetermined distance apart from one another and maintains the first and second printed circuit boards substantially in first and second planes, which are substantially parallel to one another. The predetermined distance is at least large enough to prevent the first processor from being in contact with the second processor. A group of conductive elements electrically couples the first local bus to the second local bus to enable the first and second processors to communicate with each other. 
     Preferably, the first stacking device is a high-speed, impedance-controlled connector that comprises the group of conductive elements that electrically couple the first and second local buses together. The stacking device may be, for example, a MICTOR™ connector, developed by AMP, Inc. The first and second processors are oriented on the first and second printed circuit boards, respectively, in such a way that the die-to-die distance is optimized for certain signals being communicated between the first and second processors. 
     Preferably, the stacked processor architecture of the present invention further comprises third and fourth PCBs. The third PCB has a third local bus comprising conductive traces, a third processor mounted on the third printed circuit board and electrically coupled to the third local bus, a second stacking device connected to the second and third printed circuit boards and to the first stacking device, and a second group of conductive elements that electrically couple the first and second local buses to the third local bus to enable the first, second and third processors to communicate with each other. 
     The fourth PCB is connected to the second stacking device, which has a fourth local bus comprising conductive traces. A fourth processor is mounted on the fourth printed circuit board and is electrically coupled to the fourth local bus. The second group of conductive elements electrically couple the first, second and third local buses to the fourth local bus to enable the first, second, third and fourth processors to communicate with each other. Preferably, the second stacking device is also a high-speed, impedance-controlled connector, such as, for example, a Harman, John M (John) [johnharman@lucent.com]connector, and the second group of conductive elements are comprised by the connector. 
     In accordance with another embodiment of the present invention, the apparatus comprises two PCBs, each having a processor mounted on opposite sides thereof. Each processor is electrically coupled to the local bus of the PCB on which it is mounted. The PCBs are stacked on a stacking device such as the aforementioned stacking device and are maintained a predetermined distance apart so that the processors on different PCBs do not come into contact with each other. 
     Other features and advantages of the present invention will become apparent from the following description drawings and claims. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram illustrating a prior art arrangement of a multi-processor printed circuit board that utilizes a typical two-dimensional topology. 
     FIG. 2 is a block diagram of a multi-processor configuration wherein the processors are stacked in accordance with a first embodiment of the present invention. 
     FIG. 3 is a block diagram of a multi-processor configuration wherein the processors are stacked in accordance with a second embodiment of the present invention. 
     FIG. 4 is a flow chart illustrating the method of the present invention in accordance with the preferred embodiment. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     It should be noted that the drawings are not necessarily drawn to scale. The drawings are intended to demonstrate the various features, concepts and principles of the present invention, but are not intended to illustrate the actual dimensions of features. The drawings have also been created to comply with the formal drawing requirements, which, in some cases (e.g., font size requirements), prevent features in the drawings from being drawn to scale. 
     In accordance with the present invention, processors are stacked one on top of another to enable a very fast local bus to be created for coupling the processors together. This approach provides local bus lengths that are substantially shorter than those associated with the aforementioned flat topologies. Furthermore, this approach facilitates different numbers of processor configurations because it enables processors to be easily added. This feature, in turn, enables more competitive products to be produced without having to make many, if any, changes in protocols or very large scale integration (VLSI) techniques. Other features and advantages of the present invention will become apparent from the following description of FIGS. 2-4. 
     It should also be noted that the local bus trace lengths are not necessarily shortened for all pins of the CPUs. For example, optimizing trace lengths for power pins, ground pins, and control pins may not be an issue. However, for signal pins, optimizing local bus trace lengths is important. Furthermore, signal pins differ in regard to their importance. Therefore, it may be important to optimize trace lengths associated with certain signal pins while not optimizing trace lengths associated with other signal pins. On the other hand, it may be desirable to optimize trace lengths associated with all signal pins, but to differing degrees of optimization. Those skilled in the art will understand the manner in which various factors are taken into account in determining which trace lengths to optimize and the degree to which the trace lengths are to be optimized since this is generally done with the aforementioned 2-D topologies. 
     FIG. 2 is a block diagram showing the stacked arrangement of processors in accordance with a first embodiment of the present invention. In accordance with this embodiment, each CPU  20  is mounted on a respective PCB  22 . Each of the CPUs  20  has pins (not shown) that are connected via traces (not shown) on the PCBs  22  to a local PCB bus of the PCB  22 . These traces can be viewed as being comprised by the local PCB bus. The local PCB bus preferably utilizes a high-speed, impedance-controlled connector  25  for interconnecting each of the PCBs. A main PCB  26  has a core electronics component (CEC)  27  mounted thereon that provides the memory and I/O interface for the CPUs  20 . 
     By utilizing the stacked processor arrangement shown in FIG. 2, the processors can be mounted in closer proximity to one another than in the aforementioned 2-D configuration to enable some or all of the trace lengths of the local PCB bus interconnecting the CPUs  20  to be minimized, thus enabling some or all of the die-to-die trace lengths between the CPUs  20  to be minimized. By minimizing the die-to-die trace lengths in this manner, the timing of the local PCB bus and of the overall system is improved. 
     FIG. 3 illustrates an alternative embodiment of the three-dimensional topology of the present invention wherein multiple processors are mounted on the same printed circuit board. As shown in FIG. 3, a first CPU  30  is mounted on one surface of a daughter printed circuit board  32  and a second CPU  31  is mounted on the opposing surface of the daughter printed circuit board  32 . Similarly, a CPU  33  is mounted on a first surface of a main printed circuit board  34  and another CPU  35  is mounted on the opposite surface of the main printed circuit board. Each printed circuit board  32  and  34  has a local bus therein to which the processors on the printed circuit boards  32  and  34  are electrically coupled. By mounting the CPUs on opposite sides of the printed circuit boards in this manner, the trace lengths interconnecting CPUs mounted on the same printed circuit boards can be further reduced. Furthermore, by utilizing the stacked arrangement, the trace lengths between the CPUs mounted on the daughter printed circuit board and the CPUs mounted on the main printed circuit board can be also be reduced. 
     In accordance with this embodiment, preferably the connector  25  that interconnects the daughter and main printed circuit boards  32  and  34  is a high-speed, impedance-controlled stacking connector. A core electronics component (CEC) provides the interface between the CPUs  30 ,  31 ,  33  and  35 , memory (not shown) and the I/O bus (not shown). Preferably, a MICTOR™ connector is utilized for this purpose. The MICTOR™ connector is manufactured by AMP, Inc. An alternative to the MICTOR™ connector is a type of connector generally referred to as a free-height connector, which is known in the art. Therefore, any suitable connector that is capable of interconnecting the traces of the local bus of one PCB to the local bus of another PCB is suitable for use with the present invention. Preferably, any such connector used for this purpose is a high-speed, impedance-controlled connector. 
     The MICTOR™ connector is typically utilized for connecting logic analyzers to logic components being tested with the logic analyzer. These types of connectors are also often used to connect a low cost mother board to a parallel, more expensive daughter board having one or more processors on it. This generally enables different processors to be used on the daughter board without having to change the mother board. In this type of construction, the processors are always contained on the daughter board. The daughter board will also typically contain cache memory and other components that need to be close to the processor. The MICTOR™ connector has both female (not shown) and male (not shown) connecting features that provide the conductive paths between the local PCB bus of the main PCB  34  and the local PCB bus of the daughter PCB  32 . Those skilled in the art will understand the manner in which such a connector can be used for this purpose. 
     Although stacking the CPUs in a three-dimensional topology, as shown in FIGS. 2 and 3, enables the die-to-die trace lengths to be shortened considerably, thereby enabling the speed of the overall system to be increased, the CPUs should also be oriented on their respective PCBs in such a way that the IC package trace lengths for some or all of the signals being transmitted between the CPUs are connected to the traces of the local buses in such a way that the die-to-die traces associated with some or all of the signals are optimized. As stated above, it may be desirable to minimize the die-to-die trace lengths for certain signal pins connected to the local buses than for other signal pins connected to the local buses. In order to optimize system performance, it may be desirable to shorten certain local bus trace lengths and minimize others. Those skilled in the art will understand the manner in which determinations can be made as to which trace lengths of the local buses need to be shortened or minimized. 
     For example, since the die-to-die distance(s) of one or more particular signals may limit the overall speed of the system, shortening or minimizing those die-to-die distances may directly improve overall performance. Therefore, it may be desirable to connect the shortest IC package trace length associated with a particular signal pin to the longest local bus trace length in order to minimize that particular trace length. This may require orienting the IC in a certain manner. 
     Of course, shortening a particular die-to-die trace length may result in a different die-to-die trace length becoming the longest, which may not improve performance. Therefore, all of the IC package trace lengths should be taken into account along with the trace lengths of the PCB local buses in order to optimize the die-to-die trace lengths. Those skilled in the art will understand the manner in which all of these factors can be taken into account in order to optimize some or all of the die-to-die trace lengths. This can be accomplished by performing a design algorithm Implemented in hardware, in a combination of hardware and software or manually by a designer using the IC package trace lengths and other variables to achieve the optimal design. 
     The CPUs should generally be oriented so that the pins that correspond to the shortest on-package traces are connected to the longest trace lengths on the PCB bus for certain signals. This is illustrated by the flow chart shown in FIG.  4 . The flow chart shown in FIG. 4 shows the preferred embodiment for performing the method of the present invention. Some or all of the steps shown in FIG. 4 may be performed by a human being. Alternatively, some or all of the steps shown in FIG. 4 may be performed partially by a human being and partially by a computer that calculates the trace lengths and the orientation of the CPUs. Alternatively, the entire method can be automated such that certain steps are performed robotically and other steps are performed in software being executed by a computer and/or by hardware controlling the automated process. Those skilled in the art will understand the manner in which these various embodiments may be implemented. 
     In accordance with the preferred method of the present invention, the printed circuit boards are stacked in a three-dimensional topology such as that shown in either of FIGS. 2 or  3 , as indicated by block  41 . The IC package trace lengths are obtained, as indicated by block  42 . Of course, the order in which steps  41  and  42  are performed can be reversed from that shown in FIG.  4 . The IC packet trace lengths of each of the CPUs are typically known and are typically documented in design specifications associated with the CPUs. The critical local bus signals are determined in order to determine which trace lengths need to be optimized, as indicated by block  43 . The IC package trace lengths typically do not need to be determined, but rather, are obtainable from an appropriate source (e.g., the IC designer&#39;s design specifications). Once the IC package trace lengths have been obtained, the IC packages are oriented. This step, which is represented by block  44 , utilizes the IC package trace lengths and the determination as to the critical trace lengths in order to optimize some or all of the die-to-die trace lengths. 
     Once the IC packages have been oriented on the printed circuit boards in this manner and the critical local bus signals have been determined, the IC packages are secured to the printed circuit boards and the local PCB bus traces are routed. The pins of the ICs are electrically coupled to the local PCB buses, as indicated by block  45 . Preferably, the trace lengths are routed in such a manner that the trace lengths between the pins of the CPUs that are to be connected are optimized. 
     Therefore, by stacking the CPUs in the three-dimensional topology shown in FIGS. 2 or  3  and by orienting the CPUs in such a manner that the die-to-die trace lengths associated with some or all signals are optimized, the local PCB bus speed is increased. This, in turn, enables the overall speed and performance of the system to be improved. 
     It should be noted that the present invention has been described with respect to certain embodiments, but that the present invention will not be limited to these embodiments. Those skilled in the art will understand that modifications can be made to the embodiments discussed above that are within the scope of the present invention. For example, although FIGS. 2 and 3 illustrate four CPUs stacked in a three-dimensional topology, those skilled in the art will understand that the present invention is not limited with respect to the number of CPUs that are stacked. Also, those skilled in the art will understand that the manner in which the local PCB buses of the individual PCBs are interconnected is not limited to any particular types of connectors. 
     Also, the PCBs shown in FIGS. 2 and 3 will typically have other components mounted thereon. However, for ease of illustration, only the CPUs are shown as being mounted on the printed circuit boards in FIGS. 2 and 3. Those skilled in the art will understand that the three-dimensional stacked topology of the present invention is not limited to any particular design. For example, although each of the PCBs shown in FIGS. 2 and 3 has a single CPU mounted on any particular side thereof, those skilled in the art will understand that the present invention also applies to a stacked arrangement of two-dimensional topologies, such as that shown in FIG. 1 to obtain a stacked three-dimensional topology having virtually any configuration. Of course, those skilled in the art will also understand that the number of CPUs that can be stacked and the manner in which two and three-dimensional topologies can be interconnected may be limited by other design constraints.