1. Field of the Invention
This invention relates to computing systems and more particularly to the real-time clock and configuration parameters utilized by computers.
2. Description of the Related Art
In prior art systems, the real-time clock was a battery-powered circuit providing date and time information independently from power supplied to the central processing unit (CPU) and other system components. When the computer is turned off, the real-time clock continues to update the time and date. In prior art systems, the real-time clock stores the time and date in a circuit on the motherboard of the computer called the CMOS RAM. The CMOS RAM also stores information relating to system configuration. The CMOS RAM is supplied with battery power to maintain configuration data even when the computer is powered off. During the boot process, the Basic Input/Output System (BIOS) utilizes information from the CMOS RAM, reads the time and date from the CMOS RAM, and sets an internal system clock used by software based on the time/date information.
Prior art implementations include the real-time clock and the CMOS RAM in a single device. Referring to
The bytes of the CMOS RAM can be addressed individually. Typically, the first 14 bytes of the CMOS RAM are reserved for time and date information and the control and status registers for the real-time clock. The remainder of the CMOS RAM stores hardware-specific information including processor clock speed, size of the BIOS ROM, data bus size, etc. The typical CMOS RAM includes four status registers that are used for monitoring and programming the operating mode of the real-time clock and the CMOS RAM chip. The real-time clock may be accelerated, slowed down, initialized, or adjusted for daylight savings time. In addition, various interrupts can be enabled. The CMOS RAM also stores information regarding the shutdown status of the computer and the indicators for memory and power failures. CMOS RAM 110 has typically been accessed in two ways: limited access via a BIOS interrupt 1Ah, and complete access via the address and data register accessible via input/output instructions at ports 70h and 71h.
BIOS interrupt 1Ah provides access to date and time features of the real-time clock. Although CMOS RAM 110 includes additional data storage locations that are not part of the function of these date and time features, the additional data storage locations are not accessible via the BIOS interrupt handler for interrupt 1Ah. Instead, data stored in these additional data storage locations, e.g., configuration data, are accessed via the ports 70h and 71h. Port 70h accesses the address register of the CMOS RAM 110 and port 71h accesses the data register of the CMOS RAM 110. CPU 102 may access CMOS RAM 110 via the I/O interface 104, by accessing I/O ports numbered 70h and 71h. CPU 102 supplies an address to port 70h and retrieves the corresponding byte of data from port 71h.
Device 106 is powered by battery 116. Although device 106 requires little power as compared to other memory circuits, it may need replacement after several years. Depending on the implementation, battery replacement may require merely opening the device package and replacing the battery, replacing the entire chip, or even replacing the motherboard. Replacement may be expensive and data may be lost in the process. Therefore, it would be desirable to replace device 106 with an implementation that does not require a battery power supply.
Accordingly, the invention provides a BMC-hosted real-time clock and non-volatile RAM replacement that does not require a battery power supply.
In one embodiment of the invention, the BMC includes an I/O mapped interface responsive to I/O accesses to an address range associated with storage locations of a real-time clock circuit and storage locations holding configuration information. The BMC receives power when a processor coupled to the BMC is not powered. In one embodiment of the invention, the I/O address range includes 70h and 71h.
In one embodiment of the invention, a network interface communicates information between a network external to the BMC and the real-time clock and/or the storage locations holding the configuration information. The network external to the BMC communicates clock synchronization and/or configuration information to the BMC.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
Servers are computing systems that give multiple clients access to the same data or resources. A group of networked servers that reside in a single location are known as server farms. Processes are distributed among these servers to improve performance and reliability of processes running on the individual servers. Software tracks the processing demand from individual machines, prioritizing tasks, and scheduling and rescheduling these tasks.
The Intelligent Platform Management Interface (IPMI) architecture specification defines a common interface to the hardware that monitors server physical health characteristics including temperature, voltage, fans, power supplies, and chassis intrusion. For a detailed description of the IPMI architecture, see Intel Corp., Hewlett-Packard Corp., NEC Corp., & Dell Computer Corp., Intelligent Platform Management Interface Specification v1.5, (Feb. 20, 2002), which is incorporated herein by reference.
IPMI also includes automatic alerting, automatic system shutdown and restart, remote restart and power control capabilities, and asset tracking. The standard describes an interface for remote management of servers and systems. Managers can determine the health of systems whether the servers are running normally or the servers are in a non-operational state. A characteristic of an IPMI-compliant system is that inventory, monitoring, logging, and recovery control functions are available independent from the main processors, BIOS, and the operating system.
One of the main elements of an IPMI-compliant system is the baseboard management controller (BMC).
Because the BMC functions when the system is powered down, the functions of the RTC and the CMOS RAM may be incorporated into the BMC and the battery may be eliminated.
In one embodiment, real-time clock 206 is implemented via a background firmware process that increments a counter at a predefined rate. The real-time clock 206 stores the counter value in memory via storage interface 208. Storage interface 208 reads and writes real-time clock data and configuration data to storage 210. In one embodiment, storage interface 208 is a firmware process that copies the configuration information and/or information related to the real-time clock from memory 210 to non-volatile memory 212. That way, in the event of a failure in the power being supplied to the BMC, the information will not be lost. Serial EEPROM 212 is available to BMC 200 for non-volatile storage. Alternative embodiments may include SRAM external to the BMC, non-volatile memory internal to the BMC, or a combination thereof. In one embodiment, non-volatile storage may be provided by a remote computer that communicates with BMC 200 via LAN 218. Thus, the cost of an individual system including BMC 200 may be reduced by relocating nonvolatile storage for storing the contents of the CMOS RAM to a remote computer. In one embodiment, BMC 200 emulates some or all functions of the real-time clock in firmware, thus reducing the system cost by eliminating hardware. In one embodiment, network interface 202 can receive real-time clock synchronization data and/or configuration information from a remote computer. In one embodiment, storage interface 208 receives those data and updates appropriate locations of memory 210 corresponding to the real-time clock. Alternatively, network interface 202 may communicate real-time clock data directly to real-time clock 206. In addition, network interface 202 communicates real-time clock synchronization data and configuration information from the storage interface 208 to facilitate system monitoring by a remote computer.
In one embodiment, if the server power fails and thus the power supplied to BMC 200 fails, system time may be lost. However, remote computer 310 can detect when the BMC power plane is restored and remote computer 310 programs BMC 200 with the correct time, without CPU 302 detecting the time loss. In addition, individual time drift on server 300 can be eliminated by receiving a time update from remote computer 310.
The description of the invention set forth herein is illustrative, and is not intended to limit the scope of the invention as set forth in the following claims. For example, while the invention has been described in an embodiment in which the 70h/71h front end, storage interface, and real-time clock are implemented in firmware, one of skill in the art will appreciate that the teachings herein can be utilized with hardware implementations of these blocks. Variations and modifications of the embodiments disclosed herein, may be made based on the description set forth herein, without departing from the scope and spirit of the invention as set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5422862 | Wisor | Jun 1995 | A |
5542077 | Johnson et al. | Jul 1996 | A |
5727221 | Walsh et al. | Mar 1998 | A |
5802305 | McKaughan et al. | Sep 1998 | A |
5826015 | Schmidt | Oct 1998 | A |
6493824 | Novoa et al. | Dec 2002 | B1 |
6571111 | Mayo et al. | May 2003 | B1 |
6950952 | Felsman | Sep 2005 | B2 |
7024695 | Kumar et al. | Apr 2006 | B1 |
20030041182 | Martwick | Feb 2003 | A1 |