1. Field of the Invention
This invention relates to computer systems and, more particularly, to memory resource utilization during system boot code execution.
2. Description of the Related Art
Current computer systems typically include a microprocessor, system memory, and a plurality of peripheral devices such as video graphics adapters, network controllers, modems, game controllers, and serial communications controllers. The memory and peripheral devices are typically coupled to the microprocessor through one or more system buses. In Personal Computers (PCs) these buses are controlled by bridge logic, which is commonly separated into two distinct Integrated Circuits (ICs): the system controller and the peripheral bus controller. The system controller commonly referred to as a northbridge in PC systems, includes such devices as a system bus interface, a memory controller, a Peripheral Component Interconnect (PCI) bus controller, and an Accelerated Graphics Port (AGP). The peripheral bus controller commonly referred to as a southbridge in PC systems, includes such devices as a PCI to Industry Standard Architecture (ISA) bridge, an Enhanced Integrated Device Electronics (EIDE) controller, and a Universal Serial Bus (USB) controller.
During the power-up sequence or after a system reset, the microprocessor must execute initialization code that is typically stored in an external Read-Only Memory (ROM). This code is referred to as Basic Input and Output System (BIOS) code. The BIOS is responsible for system level operations such as initializing and testing the system hardware. This portion of code is known as Power On Self Test (POST). The BIOS is also responsible for loading and running the system software in a bootstrap routine. In addition, the BIOS manages the system default, or setup hardware conditions and helps the system software manage system resources during normal system operation through the use of BIOS run-time services.
A problem associated with current computer systems is that prior to the POST routine initializing and testing the main system memory, the microprocessor has relatively few registers to use as a stack or scratchpad memory. As computer systems continue to increase in complexity, this lack of memory makes writing BIOS code increasingly more difficult as the BIOS code is required to do more. Therefore, it is desirable to have access to some memory space during the execution of the POST.