Abstract:
A method and apparatus for upgrading a microprocessor-based computer processing systems is disclosed. This method and apparatus provides for normal operation of a non-upgraded microprocessor-based computer processing system yet once upgraded the computer processing system operates from the upgraded microprocessor while the non-upgraded microprocessor is disabled.

Description:
This is a continuation of application Ser. No. 07/687,222, filed Apr. 18, 1991, now abandoned. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to the field of computer processing systems. More specifically, the present invention relates to the field of upgradeability of computer processing systems, particularly those employing microprocessors. 
     BACKGROUND OF THE INVENTION 
     Microprocessor-based computer processing systems frequently employ printed circuit boards (PCB&#39;s) containing connectors or sockets which physically hold the microprocessor chip and make electrical connection between the microprocessor and the remainder of the computer processing system via a PCB. Other common chip (microprocessor memory, etc.) mounting methods include either placing the pins of the chip through holes drilled in the PCB to which the chip will then be soldered or using what is known as surface mounting technology wherein a chip is merely placed on top of, and then soldered to, a printed circuit board. One of the advantages of surface mounting technology is the lower cost of manufacturing as well as avoidance of chip connector costs. 
     As computer processing system users require greater and greater processing capabilities, the ability to upgrade to a faster processor or add additional functions or features becomes more important. Presently the possible methods of upgrading a microprocessor-based computer processing system are to either replace the existing microprocessor with an improved microprocessor having additional functions or features and/or faster processing capabilities or, instead, to add separate upgrade componentry containing additional functions or features. For example, if a user requires faster mathematical processing capabilities the user has two options: 1) swap the microprocessor chip for a microprocessor chip which can run the same instruction set more quickly, or, 2) attach a math co-processor to the remaining original microprocessor chip which math co-processor would handle off-loaded mathematical calculations from the original microprocessor chip and thus improve overall processing speed. 
     One problem with adding a separate co-processor chip in order to provide additional functions, features, or performance to an existing processor chip is the performance degradation due to the signal delay between the original microprocessor chip and the upgraded function/feature/performance chip across the PCB which contains the two chips. For instance, in the math co-processor example above, because each mathematical calculation requires transmitting signals back and forth between the original microprocessor chip and the upgraded math co-processor chip, there is an inherent performance sacrifice due to the lower bandwidth of signal lines on a PCB as compared to a silicon wafer or chip. 
     Modern microprocessors increasingly combine multiple functions and features on a single integrated circuit chip. Such technology typically utilizes Large Scale Integration (LSI) and Very Large Scale Integration (VLSI) to achieve the necessary circuit density to be able to hold all the necessary componentry on a single integrated circuit chip. One of the benefits of increased circuit density, in addition to lowering power requirements, reducing heat generation and avoiding failure rates caused by faulty interconnects between separate chips, is in allowing greater processing speeds due to the ability to operate at the faster LSI or VLSI chip speeds rather than the slower printed circuit board speeds. 
     Thus, if a user desires to upgrade from a reduced performance chip to a LSI or VLSI all-in-one microprocessor chip in order to gain additional functions, features or performance, the user need merely remove the original microprocessor chip and replace it with the LSI/VLSI chip which can run the same instruction set as the original microprocessor chip. However, one problem with completely replacing the original microprocessor chip with an upgraded function/feature/performance LSI or VLSI microprocessor chip is the possibility of voiding whatever warranty may exist with regard to the entire computer processing system if this chip replacement is not done properly (either because the chip replacement was not done by an authorized technician or because replacement of the original chip might itself void the warranty). 
     Another problem with complete replacement of the original microprocessor chip with an upgraded function/feature/performance LSI or VLSI microprocessor chip is the requirement that the upgraded chip have identical pin-outs. Having identical pin-outs can be overly limiting in that it may be difficult to access additional functions or features without additional pin-outs to these functions or features. 
     Another limitation with complete replacement of the original microprocessor chip with an upgraded function/feature/performance LSI or VLSI microprocessor chip is the requirement that the upgraded chip have the same footprint and package type as the original microprocessor. Having the same footprint and package type would likely be necessary in order for the upgraded microprocessor chip to properly attach to the PCB in place of the original microprocessor chip. 
     SUMMARY AND OBJECTS OF THE INVENTION 
     One object of the present invention is to provide an improved method of upgrading a computer processing system. 
     Another object of the present invention is to provide an improved upgradeable computer processing system. 
     These and other objects of the present invention are provided for by a method of upgrading a computer processing system having a first processor wherein the computer processing system functions with the first processor if a second processor is not present and wherein the computer processing system disables the first processor and functions with the second processor if the second processor is present. 
     These and other objects are also provided for by an upgradeable computer processing system having an existing processor wherein the upgradeable computer processing system comprises means for connecting to both the existing processor and an improved processor, means for disabling the existing processor upon sensing the presence of the improved processor, and means for utilizing the improved processor instead of the existing processor upon sensing the presence of the improved processor. 
     Other objects, features, and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description which follows below. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements, and in which: 
     FIG. 1 depicts a portion of a prior art microprocessor-based computer processing system; 
     FIG. 2 depicts a portion of the upgradeable microprocessor-based computer processing system of the present invention; 
     FIG. 3 is a timing diagram showing the disabling sequence of the upgradeable microprocessor-based computer processing system of the present invention. 
    
    
     DETAILED DESCRIPTION 
     A method and apparatus for providing upgradeability of functions and/or performance in microprocessor-based computer processing systems is disclosed. In the following description, numerous specific details are set forth, such as specific devices, methods, circuits, timing sequences, etc., in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art that these specific details need not be employed to practice the present invention. In other instances, well-known methods and device configurations are not described in detail in order not to unnecessarily obscure the present invention. 
     Referring now to FIG. 1, a portion of a prior art microprocessor-based computer processing system is shown. The prior art microprocessor-based computer processing system includes a microprocessor chip 10 which provides computing capability to the computer processing system. Microprocessor 10 receives power directly from a signal line on a PCB to which microprocessor 10 is connected via a connector or socket. Of course, microprocessor 10 may be mounted to the PCB via other means such as surface mounting for instance. 
     Microprocessor 10 communicates with other devices such as input/output devices (e.g., disk drives, printers, plotters, modems), user interface devices (e.g., keyboards, monitors), etc., via ADDRESS bus 30, CONTROL bus 31 and DATA bus 32. The computer processing system of the prior art may also include additional microprocessor chips (not shown) located on other PCBs which microprocessors would also connect to ADDRESS bus 30, CONTROL bus 31 and DATA bus 32 and thereby function and communicate with microprocessor 10. Please note that the specific signal lines shown in FIG. 1 (RESET, FLUSH#, BOFF#, HLDA and OSC) are part of CONTROL bus 31 but are separately shown in order to provide a thorough understanding of the present invention. 
     Likewise, specific signal lines which are part of CONTROL bus 31 are separately shown in FIG. 2 where a portion of the upgradeable microprocessor-based computer processing system of the present invention can be seen. In the present invention, microprocessor chip 10, connected to a PCB, may function just as the microprocessor chip 10 did on the prior art computer processing system of FIG. 1. However, in the present invention, there is also the capability of adding or upgrading to a second microprocessor 20 by merely placing microprocessor 20 in a connector or socket located on the PCB to which microprocessor 10 is connected. 
     In the preferred embodiment of the present invention, placement of a second microprocessor 20 in the socket of the PCB entirely disables the first microprocessor, microprocessor 10. In this way, microprocessor 20 not only provides additional function and/or performance (via, e.g., an improved clocks per instruction rate, an extra unit which was not present on microprocessor 10, an enhanced version of a unit already present on microprocessor 10, etc), hence providing upgradeability, but also provides the original processing functionality of microprocessor 10 (via execution of the same instruction set as did microprocessor 10). Therefore, when microprocessor 20 is placed in the socket of the PCB, microprocessor 20 takes over all of the processing functions of microprocessor 10. 
     In the preferred embodiment of the present invention, this disabling process is triggered by the MP# pin of the second microprocessor 20 being grounded. In this way, when the computer processing system powers up, a low logic signal is sent to AND gates 11 and 12 thereby causing each of their respective outputs to also be a low logic signal. Referring now to FIG. 3, because BOFF# of microprocessor 10 is active low (that input reacts to a low signal as opposed to a high signal) and because the BOFF# input signal is sensed on every clock cycle, when AND gate 12 outputs a low logic signal to microprocessor 10&#39;s BOFF# input (see BOFF# timing signal 43 shown continuously held in a low state due to the grounded MP# pin of microprocessor 20), microprocessor 10 disables all of its output signal lines (with the exception of PCHK# timing signal 45, BREQ# timing signal 46 and HDLA timing signal 47) in the next clock cycle. This partially disabled back-off condition can be seen by comparing the ADDR/DATA/CNTL timing signal 44 to the PCHK# 45, BREQ# 46 and HDLA 47 timing signals of FIG. 3 during the period prior to time t 1 . Placing microprocessor 10 in this partially disabled back-off condition, (used in the prior art to prevent microprocessor 10 from colliding/contending with another processor on another PCB simultaneously wishing to access ADDRESS bus 30, CONTROL bus 31 and DATA bus 32), is used in the present invention to suspend as much of microprocessor 10&#39;s activities as possible, as quickly as possible, following start-up of the computer processing system. 
     Of course, the remaining active output signal lines, namely PCHK#, BREQ# and HLDA, must also be disabled in order to fully disable microprocessor 10. This is accomplished via AND gate 11 of FIG. 2 and is also in response to the grounded MP# pin of microprocessor 20 located in the socket on the PCB. AND gate 11&#39;s low output logic signal is input to FLUSH# of microprocessor 10 which, like BOFF#, is active low. Microprocessor 10 does not, however, sense FLUSH# on every clock cycle (as it does BOFF#) and thus PCHK#, BREQ# and HLDA are not immediately disabled upon computer processing system startup. Instead, in the preferred embodiment of the present invention, microprocessor 10 senses FLUSH# only on the falling edge of RESET (time t 1  in FIG. 3) at which time microprocessor 10 disables its remaining active output signal lines PCHK#, BREQ# and HLDA. This is shown by the period following time t 2  of FIG. 3 (where the period between time t 1  and time t 2  is the time in which microprocessor 10 is disabling the remaining active output signal lines PCFtK#, BREQ# and HLDA). Placing microprocessor 10 in this completely disabled condition, (used in the prior art to disable microprocessor 10 in order to test the PCB to which microprocessor 10 is connected without any interference from microprocessor 10), is used in the present invention to disable all of microprocessor 10&#39;s activities so as to entirely remove microprocessor 10&#39;s processing and functioning from the remainder of the computer processing system. 
     Please note that in the preferred embodiment of the present invention, when microprocessor 20 is located in the socket of the PCB, because MP# is grounded, AND gate 11 continuously outputs a low logic signal to the FLUSH# input to microprocessor. However, because microprocessor 10 only senses FLUSH# on the falling edge of RESET as stated above (see time t 1  of FIG. 3), the input to FLUSH# need not be maintained in a continuously low logic state (as is shown by timing signal 42 of FIG. 3) after time t 1  in order to keep all of microprocessor 10&#39;s signal lines disabled. Furthermore, once microprocessor 10 has been placed in the fully disabled state by the FLUSH# signal, the BOFF# signal need no longer be maintained in a continuously low logic state (as is shown by timing signal 43 of FIG. 3). 
     Also please note that in the preferred embodiment of the present invention, when the output signal lines of microprocessor 10 are disabled they are in what is known as a &#34;tri-state&#34; or floating condition whereby they are at neither a high nor a low logic level. Of course, in an alternative embodiment, if microprocessor 10 had an input signal line which turned microprocessor 10 on and off (e.g., an enable input signal line), then microprocessor 10 could be disabled by merely turning microprocessor 10 off (no longer enabling microprocessor 10), in which case microprocessor 10&#39;s output signal lines would be disabled and thus remain in a low logic level state. 
     Further, referring again to FIG. 2, whenever microprocessor 20 is located in the socket of the PCB, thereby disabling microprocessor 10 from the remainder of the computer processing system, and if a HOLD signal is asserted by a system administrator/arbitrator of the computer processing system, microprocessor 20 would respond with a HLDA output signal which would be input to OR gate 13 which would thereby output a high logic level signal thus acknowledging receipt by microprocessor 20 of the HOLD signal. Of course, because microprocessor 10 is fully disabled when microprocessor 20 is placed in the socket of the PCB, microprocessor 10 will not issue a HLDA output signal in response to the HOLD signal. However, if microprocessor 20 was not located in the socket of the PCB, microprocessor 10 would respond to the HOLD signal with a HLDA output signal via OR gate 13, as is discussed more fully below. 
     Also please note the inclusion of additional signal lines (e.g., IGNNE# and FERR#) to microprocessor 20 in the socket of the PCB which signal lines are used by the math co-processor portion of microprocessor 20. Additionally, in order to provide the processing functionality of, and execute the same instruction set as, microprocessor 10, microprocessor 20 includes all of the other pin-outs to signal lines normally used by microprocessor 10 in order to be able to, for instance, communicate with ADDRESS bus 30, CONTROL bus 31 and DATA bus 32. 
     It is important to note that, generally speaking, if a part other than microprocessor 20 were placed in the socket of the PCB, this other part would not function properly in the computer processing system. For example, if a typical math co-processor, not having full microprocessor processing capabilities (and which would thus require microprocessor 10 to still function), were placed in the socket of the PCB, although the math co-processor might somehow obtain power and/or clock signals, because no dedicated signal lines are present on the PCB to handle the data transmission and handshaking protocols between microprocessor 10 and this math co-processor, this math co-processor would be prevented from properly functioning. Of course, if this math co-processor did happen to obtain power through one of the signal lines, there is the potential for bus contention on ADDRESS bus 30, CONTROL bus 31 or DATA bus 32 between this math co-processor and microprocessor 10, or any other processor in the computer processing system for that matter. 
     Additionally, if a part not able to execute the same instruction set as microprocessor 10 were placed in the socket of the PCB, this other part would still not be able supplant the processing capabilities of microprocessor 10 and would thus not function properly in the computer processing system even if it did somehow gain power. 
     Further, even if the math co-processor without full microprocessor processing capabilities happened to have a grounded pin located where the MP# pin is located, although this would still cause microprocessor 10 to be disabled (in accordance with the steps and circuitry as described herein), because a mere math co-processor lacks the remainder of the functionality of a complete microprocessor this would still not be a properly functional or operational configuration. 
     It is also important to note that the present invention provides for a fully functional and operational system even when microprocessor 20 is not placed in the socket of the PCB. In other words, if microprocessor 10 were the only microprocessor located on the PCB, this would still provide a fully functional system. This is achieved by the disabling circuitry of the present invention whereby when no signals (e.g., grounded MP# pin) are output from microprocessor 20, again because of its absence from the socket on the PCB, all of the normal input and output signals to and from microprocessor 10 operate properly. For example, when microprocessor 20 is absent, the MP# signal line input to both AND gate 11 and AND gate 12 of FIG. 2 is maintained at a high logic level due to the connection of VCC through resistor 16. In this way, when the system administrator/arbitrator of the computer processing system issues either a FLUSH# or a BOFF# signal (a low logic signal because these signals are active low and, thus, normally held high) to this PCB, the appropriate AND gate (gate 11 in the case of a FLUSH#  signal, gate 12 in the case of a BOFF# signal) outputs a low logic signal to microprocessor 10 to signal the appropriate command. 
     Likewise, when microprocessor 20 is absent and a HOLD signal is issued, microprocessor 10 will issue a HLDA output signal. This HLDA output signal from microprocessor 10 will be transmitted via OR gate 13 with no interference from the empty socket on the PCB. The reason the empty socket on the PCB does not interfere with the normal operation of a HLDA output signal from microprocessor 10 is because of the presence of grounded resistor 14 which keeps the first input to OR gate 13 at a low logic level whenever the socket is empty. 
     It should be further understood that the circuitry shown on the PCB in FIG. 2 could be handled by either or both of the microprocessors, microprocessor 10 and microprocessor 20. In this way, intelligence on the microprocessor chips would handle the disabling function handled by the AND gates, OR gates, resistors and signal lines of the currently preferred embodiment of the present invention. This intelligence on the microprocessors could be handled by either hardware or software. This alternative embodiment, although requiring the microprocessors to provide additional logic or software, would eliminate the specialized circuitry on the PCB as described herein. 
     In the foregoing specification, the invention has been described with reference to the presently preferred embodiment thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specifications and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.