Y2K Site Map | Terms of Use | Problem | Steps | Certification | Briefings | Compliance | Solutions | BIOS | Test & Evaluation | Cost


The following Y2K material has been kept available by MITRE for historical purposes only and has not been updated unless noted.

MITRE - Y2K - Time and Date on Your Personal Computer
Time and Date on Your Personal Computer

The real time clock (RTC), along with its complementary metal-oxide semiconductor (CMOS) memory, are the originating time and date keepers in most, if not all, personal computers. The RTC and CMOS memory are the only components to continue working when the computer is powered off. All other dates used in the Basic Input Output System (BIOS) or operating system must originally come from the RTC/CMOS chip. The original RTC/CMOS chip was the Motorola MC146818, which was introduced with the IBM PC AT. Subsequent RTC/CMOS chips have duplicated the basic functionality and design while adding new capabilities and features.

The figure below (which will be described in more detail shortly) shows the relationships between the RTC, CMOS memory, BIOS calls for date/time information, operating system calls for date/time, and the operating system clock (for DOS and Windows).

The operating system clock is not very accurate and is used to quickly provide approximate times. This operating system clock is started each time the computer is powered on and gets its initial settings from an operating system call to the BIOS to retrieve the current time and date. This is then converted into the number of days since 1 January 1980 and then the number of seconds since the start of that day (a.k.a. mid-night) is also calculated.

The two types of interaction with the RTC and CMOS memory that we need to understand in the context of the Year 2000 problem is reading the time and date and setting the time and date. In the figure above, all setting of the time or date are shown as red arrows but these are not the only ways that the RTC and CMOS can be set. In the following figures the black arrows will indicate the various ways and components that read the date and time. The exceptions to these rules are the setting and reading of the operating system clock which is shown in blue. The operating system clock does not usually play a large part in the discussion of Year 2000 problems with personal computers but it will come up in a few places later in the discussion.

As discussed earlier and shown below, well-behaved applications (especially commercially purchased ones) will almost exclusively read the date/time information by calling the BIOS function to access the information, or they may call the operating system function which will pass along the time based on the operating system clock.

As illustrated below, applications that you develop yourself, or that your company has developed for themselves, will in most cases also rely on these two sources for date and time information. Although applications are supposed to only use either the BIOS calls or the operating system calls to get date and time, for some applications, the RTC is a more accurate method of reading the current time on a PC. The operating system and BIOS calls will always lag slightly behind the time reported by a direct call to the date registers of the RTC/CMOS memory, so for those applications that require it, that is what the programmers do.

Network time services will directly set the RTC and CMOS memory when your machine connects to the network services providing the time synchronization as illustrated below. Other types of time synchronization programs can also use this direct access to the RTC and CMOS to keep your machine in step with its parent time source.

Finally, the user can read or set the date/time information by issuing the appropriate commands. These could be via the BIOS calls, operating system calls, or directly to the date/time commands of the RTC and CMOS memory.

When all of this setting and reading of the time and date are looked at together it can get fairly confusing and hard to discuss. This is shown pretty well in the following figure.

So What is the Problem?

According to the original design for the RTC, the RTC only knows about a two-digit year. After 99 comes 00. It does not notify any other part of the system or pass along instructions to another counter when the 10's counter for years changes from 9 to 0. According to the original design of the personal computers it is up to other parts of the system to recognize and deal with that, and that is the crux of the problem with many PCs.

The part of the system that is supposed to recognize the RTC's change from year 99, day 365, hour 24, minute 59, and second 59 to year 00, day 1, hour 0, minute 0, second 1 does not do its job correctly in most personal computers and the part that is supposed to do this job is the BIOS.

Since the start of the use of a RTC by IBM in their AT-class personal computers in 1984, the one part of the RTC/CMOS design that has not actually been called upon to do its job is the setting of the century information to its next value. This is where the 19 gets changed to 20 in the century place and most personal computers will fail to do this correctly unless updates, changes, or replacements are made.

For a full discussion of the various steps available and necessary for fixing your personal computers various Year 2000 problems see Desktop PC Resolution.

So What About Time-Dilation (a.k.a., the Crouch Echlin Effect)

The Crouch-Echlin effect, which is a reported time anomaly in system clocks that shows up after the year 2000, was originally reported by computer user Jace Crouch and described by programmer Michael Echlin. Echlin hypothesized that the Crouch-Echlin effect was caused by the BIOS choosing a new execution path after the year 2000 and incorrectly programming the system's RTC due to timing problems. The specifics of the reported problem are theorized to be related with the fact that real time clock chips are just simple counter devices and that during the time at which the update 'ripples' through the counter stages the time and date is technically unstable. For example, the minutes may just have gone to zero, but the hour has not been updated yet. Thus if the BIOS "grabbed" the time while it was unstable it could get corrupted information.

While widely discussed, there does not appear to be a verifiable problem behind the behavior observed by Jace Crouch and Michael Echlin. The Intel Corporation, with Echlin's cooperation did an intensive study of the phenomena, and it disproved the theories about the behavior and was unable to reproduce Crouch and Echlin's observations. For more details look at Intel's Analysis of the Crouch Echlin Effect or Compaq Computer's Frequently Asked Questions 18 through 23 on the subject.


PC Internal Clock and BIOS Desktop PC Resolution Clock/BIOS Flowchart Appropriate BIOS Upgrade Test Your PC System Clock Testing Leap Year
Other Dates of Concern FlashBIOS Upgrades Testing Utilities & Patches Vendor Patches & SW Libraries Manual Clock Setting PC Suppliers Compliance Lists

For further information directly related to Year 2000 issues, please contact Year2000@mitre.org

Information is provided by the MITRE Y2K Team
Last modified: Thursday, 14-Feb-2008 09:21:05 EST