This invention relates to personal computers designed with commercially available microprocessor chip sets. More particularly, the present invention relates to a personal computer in which a new generation of commercially available microprocessors is implemented in a manner to maintain software compatibility with existing application programs.
The present invention permits one to implement a new family of microprocessors such as the Intel 80386 while maintaining compatibility with the older generation of microprocessors, specifically the 80286 microprocessor (manufactured by Intel).
One of the design features of the 80286 microprocessor was the ability to recognize and retain a HOLD request from external hardware during a microprocessor RESET cycle. In the 80286 system, DMA and REFRESH cycle operations (using HOLD) could occur while the CPU was being reset. The feature in the 80286 microprocessor, to recognize a HOLD, during a RESET cycle was eliminated at the time the 80386 microprocessor chip was designed. Thus the 80386 chip is not capable of being fully compatible with 80286 functions because of the loss of this feature. Since many third party software applications for the 80286 processor machines are written with this feature in mind, these programs were incompatible with the new 80386 microprocessor. Failure to find a means to make the programs written for the 80286 microprocessor compatible with the new 80386 microprocessor will result in almost no commercial demand for a computer implementing the new 80386 microprocessor.
The introduction of the personal computer has resulted in a tremendous amount of application software programs written for both the professional and for the home entertainment market. These personal computers are designed around commercially available microprocessor chip sets which may include a plurality of microprocessors connected in an architecture which results in varying degrees of execution throughput rates.
Popular microprocessor chip sets widely used by personal computer manufacturers are the Intel Corporation 8088 microprocessor, 8086 microprocessor and the 80286 microprocessor, all having similar instruction sets. Similar instruction sets are also available for a new generation microprocessor from Intel, the 80386 microprocessor. The 80386 microprocessor has a substantially higher execution cycle rate, almost three times faster than the 80286 . Available also from Intel is a co-processor chip, the Intel 80287, which may be used either with the 80286 or the 80386 microprocessor chips to achieve even higher execution throughput rates.
With the availability of a software compatible (i.e., executes the same instruction set) microprocessor, it is possible to upgrade a prior art personal computer with higher execution speeds for some application programs written for the lower speed microprocessor chip sets. While faster software compatible microprocessors are available, it is not possible, however, to simply substitute the faster microprocessor for the slower microprocessor and thereby produce a personal computer which executes at higher speeds for all of the application programs written for the slower microprocessor.
Not all application programs written for the slower microprocessor i.e., 8088/8086 and 80286 microprocessors are capable of running at faster microprocessor speeds, even though each instruction in the program is executed in a similar manner in these machines. The inability to run some programs at higher speeds results from the fact that programmers, when writing for the slower microprocessor, take advantage of the particular capabilities of the microprocessor in structuring routines. For example, many programmers took advantage of the ability of the 80286 microprocessor to run programs in the "real" and "protected" mode and implemented this capability while at the same time taking the necessary precautions to work within the limitations of these features as the program performed the various functions.
It is undeniable that providing a personal computer capable of executing application programs written for slower microprocessors in a third of the time would be of a commercial advantage in the marketplace, but such a device would not be competitive unless it were able to execute a majority of the application programs written for slower speed microprocessors.
Even though the previous microprocessor chip sets, (i.e. 80286 ) contain a great deal of software compatibility, the internal design of the microprocessors is not the same. This difference in internal design, depending upon the design of the application program, i.e., does it contain a lot of program jumps, affects the adaptability of a given application program to the new microprocessor.
The internal design difference between the 80286 and the 80386 microprocessors is primarily in the amount of pre-fetch buffer memory provided in the microprocessor, however, some of the firmware features in the 80286 microprocessor were eliminated in the design of the 80386 microprocessor.
Therefore, it would be advantageous to provide a personal computer with a new generation microprocessor executing at a faster rate which provides for a faster execution of application programs which were written for an earlier generation of microprocessors while maintaining compatibility with the older generation microprocessors. Compatibility should be maintained particularly when the chip manufacturer has eliminated features from the new generation microprocessor without regard to the issue of compatibility. For example, the older generation microprocessor included features which were intentionally used by program writers as a part of the program, however the chip manufacturer has eliminated these features without regard to the issue of compatibility. One such feature is the ability to recognize and respond to a "HOLD" request during reset of the CPU.