30

My understanding is the CPU clock speed on the Intel 8088 in the IBM PC was selected as 4.77 MHz to simplify the design of the system. This despite the 8088 coming in two versions - 5 MHz and 8 MHz. Since later PC's routinely operated at higher clock speeds and typically up to the CPU's spec, I assume some cost savings was realized on the original PC.

What specific parts were able to be eliminated from the PC design by limiting the CPU clock rate? Can anyone approximate the cost savings by removing those parts?

  • 3
    If there had been a separate 15 MHz oscillator on the motherboard to run the CPU and associated peripherals at 5 MHz, the CGA card would need it's own 14.318 MHz colorburst oscillator. But it is not that simple, then the CGA card would have to have extra circuitry to be asynchronous. It may not be that huge cost though, as the MDA does run asynchronously at 16.257 MHz. Plus it may mean that faster speed grade memory is needed, or extra wait states on bus cycles, to get the required bus cycle length, and it would result in a slower system. – Justme Mar 11 at 21:08
  • 3
    @Justme: The CGA card does in fact run asynchronously, with a rather conservative (and slow) synchronization mechanism, but I don't know if that was the original intention. – supercat Mar 11 at 21:18
  • 1
    The PC design was made independent of any output standard. All video cards operate asynchronous to the main system. – Raffzahn Mar 11 at 21:30
  • 2
    So it's not the right answer, or especially relevant, but cf. seasip.info/VintagePC/cga.html as a source of the no-independent clock claim: "Unlike an MDA, the CGA card does not contain a clock crystal. Instead, the Oscillator signal on the ISA bus is used to generate timing. This is 14.318MHz (4 times the NTSC subcarrier frequency). On the original PC and XT, the same clock signal, divided by 3, gave the 4.77MHz CPU clock." – Tommy Mar 12 at 1:28
  • 1
    Too late to edit my previous comment, but in response to @supercat, the linked page also states "On a PC with a 5161 expansion unit, the CGA should be fitted in the main PC, not the expansion unit. This is probably because the 14.318MHz clock is not shared between the PC and the expansion unit; each has its own, and they may not be in sync." so I'm not sure it's completely asynchronous. – Tommy Mar 12 at 1:36
32

Worshipping at the altar of color clock

Back in that day, everything was built around the NTSC color clock frequency of 3.579545 MHz. Everything from the Atari VCS to the C64 made ample use of it, because some iteration of your product would inevitably need to talk to a commodity color NTSC display operating at that frequency.

This will come up; so FYI the way you divide by 3.5 is by starting with a crystal at 4x the color clock (14.31818) and dividing by 14.

  • The Atari VCS/2600 used 1.19 MHz -- color clock / 3 -- crystal / 12
  • The Atari 400/800 used 1.79 MHz -- color clock / 2 -- crystal / 8
  • Most of the rest used 1.022 MHz -- color clock / 3.5 -- crystal / 14

By "rest" I mean Apple II family, Commodore Pet, Vic, C64. Note that most of these systems actually overclocked the CPU. I can vouch that Apple did not use a 2 MHz version of the 6502 chip; they used the 1 MHz version.

The 8088 master clock operates at 4x RAM cycle speed

Mind you, all these systems above have one system clock per memory cycle. The Intel philosophy was quite different, with a fast master clock, but memory fetches only occurring at 1/4 of this speed.

So the IBM PC clock was chosen, still worshipping the color clock, at 4.77 MHz -- crystal / 3.

Wow, that sounds fantastic, right? IBM, big gorilla of the computer biz, comes out with a processor seemingly an order of magnitude faster than those clunky 1.02-1.79 MHz 6502 systems. Yeah, hold on. It has an 8-bit bus, and memory operations happened at 1/4 this frequency, at 1.19 MHz -- crystal / 12.

The IBM PC had the memory throughput of an Atari 2600.

That's not so awesome. Nor was it intended to be. IBM's market strategy was not to be "Amiga", outshining the competition in raw performance. Much the opposite, they wanted to avoid at all costs cannibalizing sales of their larger and much, much more expensive minicomputer line e.g. Series/1. The purpose of the IBM PC was to put I B M on a conservatively designed system -- and let IBM's unbelievable reputation and market power sell it. That can't be overstated - they had market dominance of (larger-than-Apple-II) computers like Google has dominance in search. My dad was an IBM salesman, and there was an adage universally known:

Nobody ever got fired for buying IBM.

Seriously. It was just like that. If your mainframe or minicomputer project went sideways for any of a variety of reasons, scuttlebutt is "this wouldn't have happened if you had bought IBM". (even if that had nothing to do with it). So the business desktop market was a vacuum, avoiding perfectly useful offerings by Tandy, Commodore and Apple, holding its breath for 3 magic letters.

All that to say, performance was not Job One.

Why would IBM give any care at all about color clock?

After all, it grew up as a business machine; many systems actually used the Monochrome Display Adapter (which had much higher resolution than NTSC); many monitors were RGBI for which color clocks did not matter, and IBM's dabble in the home market with the PCjr was a fiasco.

True, but nobody knew that, at the time.

IBM did not know what it would take for the PC to adopt. But they certainly knew the home computer market was proven. So they wanted to "keep their options open" for a side-step into the home market, where they MUST by necessity play nice with NTSC. Costs must be kept low in such a system - which means doing what everyone else does: sharing main RAM with the video card, which in turn requires memory and therefore CPU clock to be in syncopation with NTSC color clock.

As such, choosing 1.19 MHz memory clock was a conservative, safe choice; as made by the Atari VCS/2600.

The choice of 4.77 MHz instead of 5 MHz only cost 4.5% performance. You can argue that they could have architected the system for 4.77 MHz and then just used a faster crystal in the 5150 PC (planning to downsize the crystal to 4.77 in the future imaginary consumer PC). However, in that era, the prevailing view was if you change hardware, it breaks existing software, which as a rule were written to run on bare metal and software routines as-shipped. (think Apple's Sweet16 and FP routines, which were removed to fit AppleSoft BASIC). So they wouldn't want to risk it for 4.5% performance.

They did end up doing that "future imaginary consumer PC" and making use of those concepts, but far past the time of its relevance (technical or market). Maybe they were thinking "nobody ever got kicked out of bed for buying IBM".

| improve this answer | |
  • Indeed. It's also amusing to note that the first computer I ever "had" was one of these: old-computers.com/museum/computer.asp?st=1&c=1147 . Without being able to see detail, I can tell you the crystal was 4.433618 MHz. From which, you can tell where I grew up. ;) BTW "had" in this context means shared with my father. – dgnuff Mar 13 at 0:02
  • In some ways, the thought of the PC designers actually being confused, and thus taking cues from the design of the Atari home computers, for example, feels like an "Occam's razor" type of likely scenario. – Brian H Mar 13 at 14:25
  • 1
    Wasn't it also due in part to the 315 ∕ 88 MHz crystal being dirt cheap compared to most every other frequency? I wonder how much of that was really IBM leaving an NTSC monitor option open, versus trying to build each unit as inexpensively as they could? – smitelli Mar 14 at 2:53
  • 2
    @smitelli If anything NTSC picked it because it was cheap :) IMO being a student of Wozniak, IBM didn't make even the slightest effort to cost optimize, and chose very chip-heavy, boilerplate designs, damn the cost. 30 chips on the floppy controller, to Apple's 8. Keep in mind IBM had simply staggering chip fab capabilities the PC division was not allowed to use, otherwise they could've followed Atari's lead and put the whole PC on like 5 chips. – Harper - Reinstate Monica Mar 14 at 3:30
  • @dgnuff Yes, we can tell by your clock frequency that you probably grew up in the UK. Whatsmore, you had a higher vertical resolution and more stable colour than NTSC (Never Twice the Same Colour), namely PAL. Mind you, so do we (still) here in South Africa. – Reversed Engineer Mar 14 at 21:33
26

For many kinds of parts, there's a substantial gap between specified maximum/minimum timings and typical timings. The 8088 specification requires that the clock be high for a minimum of 69 ns every cycle and low for a minimum of 118 ns. Dividing a 14.3818 Mhz clock by three yields a high time of 69.5 ns and a low time of 139.1 ns, satisfying both requirements for up to 20 ns of timing uncertainty on the divide circuit, provided that one ensures that it is biased toward lengthening its output.

If one were to divide a 15 Mhz clock by three while meeting specifications, the natural high time would be 66.7 ns, which would fall slightly short of the timing spec and the low time would be 133.3 ns, which would only tolerate about 15 ns of timing uncertainty. There are ways one can slightly stretch a signal, but using a 14.3818 Mhz signal that can tolerate anywhere from 0 to 20 ns of stretching is cleaner than using a design that would require stretching the signal by at least 2.5 ns but not more than 15 ns.

| improve this answer | |
  • 2
    Are you claiming that a 5 MHz 8088 would not work correctly with a 15MHz crystal and Intel's 8284 clock generator IC? – Brian H Mar 12 at 12:53
  • 2
    @BrianH: I think it would have, but that would have required using the 8284 clock generator IC rather than a commodity divide-by-three circuitl. – supercat Mar 12 at 14:52
  • Ok. Am I mistaken in thinking the 8284 was used in the IBM PC? – Brian H Mar 12 at 14:58
  • @BrianH: I don't think it was,but it's entirely possible I'm mistaken. In any case, there may have been an intention to have video generated by a clock signal that was synchronous with the CPU speed, which would have improved video performance, but in practice the video circuitry was designed to assume there was no synchronous relationship, to the detriment of performance. – supercat Mar 12 at 15:06
  • 1
    FWIW it does look like the 8284 was used in the IBM PC. – dwizum Mar 12 at 19:14
18

Quartz used in colour TVs such as 3.579545MHz or 14.31818MHz used to be much cheaper than other frequencies.

It was important for home computers and game consoles (8/16 bits), which used the same quartz for video and the CPU, keeping everything synchronous.

It was far less siginificant for rather expensive computers such as IBM PC which didn't need to produce NTSC compatible video (although CGA was NTSC).

Edit : this post : http://dosmandrivel.blogspot.com/2009/03/ibm-pc-design-antics.html tells that the reason was to save a quartz for CGA.

| improve this answer | |
  • IBM could have used an UART frequency : 14.7456MHz = 3.6864MHz * 4, which would have allowed RS/232 ports without additional quartz. – TEMLIB Mar 13 at 0:19
  • 3
    I have a faint recollection of looking at quartz crystal prices in the mid-80's, and indeed anything but NTSC crystals were priced as specialty products. – Jon Custer Mar 13 at 14:28
  • Did color televisions widely use 14.31818Mhz? The 3.579545Mhz chroma crystal would have been commonplace, but I can't think of any use that televisions would have had for 4xchroma. I would think 14.31818Mhz might be cheaper than 15.00Mhz, but I would think it would be the same price as small integer multiples of 4.00MHz or 3.6864Mhz (the latter being used for serial ports, and 3x3.6864Mhz being the most common 8051 speed). – supercat Mar 15 at 17:40
  • @JonCuster: My recollection is that 1xchroma crystals were dirt cheap. Many other frequencies were stock items one "price tier" up. A few crystals were essentially custom (I think the video chip for the CDP1802 was "supposed" to be used with a 3.5245Mhz crystal (about 1.53% slower than chroma), but I suspect most hobbyist projects simply used a 3.579545Mhz crystal and output video with scan rates that were a little faster than spec); I can't think of any "normal" uses for that rate other than the 1802's video chip, which strikes me as somewhat obscure. – supercat Mar 15 at 17:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.