Archive for the 'Just For Fun' Category

October 15th, 2014 ~ by admin

Has the FDIV bug met its match? Enter the Intel FSIN bug

Intel A80501-60 SX753 - Early 1993 containing the FDIV bug

Intel A80501-60 SX753 – Early 1993 containing the FDIV bug

In 1994 Intel had a bit of an issue.  The newly released Pentium processor, replacement for the now 5 year old i486 had a bit of a problem, it couldn’t properly compute floating point division in some cases.  The FDIV instructions on the Pentium used a lookup table (Programmable Logic Array) to speed calculation.  This PLA had 1066 entries, which were mostly correct except 5 out of the 1066 did not get written to the PLA due to a programming error, so any calculation that hit one of those 5 cells, would result in an erroneous result.  A fairly significant error but not at all uncommon, bugs in processors are fairly common.  They are found, documented as errata, and if serious enough, and practical, fixed in the next silicon revision.

What made the FDIV infamous was, in the terms of the 21st century, it went viral.  The media, who really had little understanding of such things, caught wind and reported it as if it was the end of computing.  Intel was forced to enact a lifetime replacement program for effected chips.  Now the FDIV bug is the stuff of computer history, a lesson in bad PR more then bad silicon.

Current Intel processors also suffer from bad math, though in this case its the FSIN (and FCOS) instructions.  these instructions calculate the sine of float point numbers.  The big problem here is Intel’s documentation says the instruction is nearly perfect over a VERY wide range of inputs.  It turns out, according to extensive research by Bruce Dawson, of Google, to be very inaccurate, and not just for a limited set of inputs.

Interestingly the root of the cause is another look-up table, in this case the hard coded value of pi, which Intel, for whatever reason, limited to just 66-bits. a value much too inaccurate for an 80-bit FPU.

August 13th, 2014 ~ by admin

What’s Missing?

Four-Phase Systems: 1969-1981

Four-Phase Systems: 1969-1981 (click to enlarge

What’s Missing from this Four-Phase Systems family portrait?  Hopefully the lost member arrives this week.  Anyone remember Four-Phase?

Posted in:
Just For Fun

September 14th, 2013 ~ by admin

Intel 8 Inch Flexible Disk – 1.2MB of Data

Intel 8" Floppy Disks (10 Pack) - Minimalist Packaging ahead of its time.

Intel 8″ Floppy Disks (10 Pack) – Minimalist Packaging ahead of its time. 1.2MB

The original floppy disk was introduced by IBM in 1971 as a way to serve updated microcode to their clients mainframes.  Each disk could hold around 80KB.  By 1977 the DSDD (Double Sided, Double Density) 8 Inch disk was released which held 1.2MB of data.  They were officially known as a ‘Flexible Disk’ but floppy disk rapidly became what people referred to them as.  Intel marketed and sold them as well as many other manufacturers.  Intel accepted code for MaskROM based processors, on 8 inch floppy, tape, and a variety of other formats in the 1970’s.  Certainly 1.2MB was a great plenty of storage for the 1-8KB of ROM most microcontrollers and MaskROMs supported in that era.

In 1978 a ‘consumer’ version of the floppy was released, in a more friendly size, but lower capacity. This was the 360KB 5.25″ disk that was eventually made famous by the IBM PC, TRS-80, Apple. and about every other computer of the late 1970’s and early 1980’s. 8 Inch Flexible Disk

Floppy disks continued to evolve into the late 1990’s trying to compete with the CD-ROM, with capacities eventually hitting 240MB with the LS-240 Laser Servo drive.  In the early 21st century companies, largely led by Apple, began to delete the floppy from their computer line up, causing quite a stir.  However, users quickly realized that contrary to popular belief, the floppy really wasn’t used much.   Ultimately the use of the floppy, and the CD have been replaced with the USB Flash Drive, and in many ways, cloud computing.

Posted in:
Just For Fun

May 25th, 2013 ~ by admin

Another Apple 1 Computer, Another $671,400

Apple 1 computers, one of the first personal computers, were introduced in 1976. Now 37 years old they are setting records for auction sales.  In September 2010 one fetched over $20,000 on eBay.  A few months later one with the original box and papers cleared $200,000.  And this week an auction house in Germany sold one for 516,000 Euros (around $670,000 depending on the exchange rate).  Apparently a refurbished and now working model. this is one of the highest prices ever for a vintage computer.

Who knows, in 30 years the original iPhone 2G may set records for sales, but considering the number built, who knows how many will be around in 2040, or how many will have the original box.

Posted in:
Just For Fun

April 16th, 2013 ~ by admin

Project Unity: 15 Game Consoles and 18 Processors

projectunityMaster Modder Bacteria recently completed ‘Unity’ a single cabinet integrating 15 classic consoles, and capable of playing games from 18 different systems (sme consoles can run more then one type of game.  It an impressive feat especially considering he managed to make it work off a single controller, and a single video/audio output.  A custom 15-position switch tops off the console.

The consoles range from a Intellivision and its oddball CP1610 General Instruments (based on the PDP-11) processor, to the wildly successful 299MHz Sony PS2.  Below you can see the variety of systems, and the processors (this IS the CPU Shack after all) that run them.

Console Processor(s)
Amstrad GX4000 Zilog Z-80 4MHz
Atari 7800 MOS 6502 1.79MHz
Colecovision NEC 780C-1 (Zilog Z-80) 3.58MHz
Mattel Intellivision GI CP1610 894KHz or 1MHz
NEC TurboGrafx 16 Hudson Soft HuC6280 (65C02 based) 7.16MHz
NeoGeo MVS Motorola MC68000 12MHz + Zilog Z-80 4MHz
Nintendo NES Ricoh 2A03 (6502 Core) 1.79 MHz
Super Nintendo Ricoh 5A22 (GTEu 68C816 core) 3.58 MHz
Nintendo 64 NEC VR4300 (MIPS) 93.75 MHz
Nintendo Gamecube IBM PowerPC “Gekko” 486 MHz
Sega Master System Zilog Z-80 3.58 MHz
Sega MegaDrive (Genesis) Motorola MC68HC000 7.67MHz + Zilog Z-80 3.58 MHZ
Sega Saturn Hitachi SH-2 32-bit RISC 28.6 MHz
Sega Dreamcast Hitachi SH-4 RISC 200 MHz
Sony Playstation 2 Emotion Engine (MIPS based) 299MHz

As you can see a few processors are common. Five of the consoles run Zilog Z-80 processors, and 4 run on some variation of the MOS 6502 made famous by the Apple 1 computer.  Later consoles shifted towards the RISC based designs of MIPS, PowerPC and the SuperH series by Hitachi (now Renesas). Today’s console continue to use RISC processors albeit at speeds of over 3GHz.

Posted in:
Just For Fun

March 27th, 2013 ~ by admin

Just for Fun: Wafers – Lots and lots of Wafers

Here at the CPU Shack I handle shipping and receiving for collectors all over the world, this means i have packages coming in daily, dozens of them.  Sometimes collectors will go in together to get a large lot of processors etc.  Today one such lot arrived, over 2200 wafers from Kokomo Semiconductor.  That’s nearly 300lbs.


Noel, the CPU Shack’s head of security, does not seem impressed.

Posted in:
Just For Fun

March 23rd, 2013 ~ by admin

Intel Pentium Processor Turns 20 Years Old

Intel Pentium 60

Intel Pentium 60 – Produced May 1993

On March 22nd, 1993 the Intel Pentium Processor was released to the public (so yah yesterday but hey whose counting). This was Intel’s first processor with an actual name.  Turns out you cannot trademark a number, so the ‘486’ name was being used by everyone (AMD, Cyrix, TI, UMC, IBM etc).  Initially known by its core name, P5, the Pentium was also the first superscaler Intel x86 processor   It had dual Integer pipelines, and a single Floating point unit allowing it to issue and complete multiple instructions per clock.

The first Pentiums ran at 60 and 66MHz and were made on a CMOS 0.8micron process with 3.2 million transistors.  After only a few months it was discovered that they ran particularly warm and the package was updated with a Copper-Tungsten heatspreader (gold plated).

A modern desktop processor such as the Core i7 Quad Core Ivy Bridge contain 1.4 Billion transistors on a 22nm process.  The P5 still lives on in the embedded market, and in the Intel Larrabee project which is itself, an updated P54C core (supporting a few more modern features such as x86-64).

Posted in:
Just For Fun

March 13th, 2013 ~ by admin

IBM 3081 TCM Miniature Pendant

IBM 3081 TCM Pendant

IBM 3081 TCM Pendant

A few times I get things that are not processors but are memorabilia and are pretty special nonetheless.  Today these nice IBM pendants came in.  They are very small, measuring barely 37mm square but they weigh an impressive 60 grams.  They are a near perfect miniature version of a not so miniature IBM TCM (Thermal conduction module).  The 3081 TCM contained the cooling, and a very large MCM used in the 308x mainframe series (made from 1980-1987).  Each MCM contained up to 133 dies on a very large ceramic substrate with up to 16,000 contacts for the dies.  They were capable of speeds of up to 38MHz.  Each TCM was liquid cooled and dissipated around 300 watts of heat. A typical 308x system had 2 dozen of these.

A similar IBM MCM can be seen here: (a 9121 processor)


Posted in:
Just For Fun

March 7th, 2013 ~ by admin

PENTIUM License Plate: One in a million, or 2

Original PENTIUM California License (number) plate

Original PENTIUM California License (number) plate

This California license plate came through the museum on its way to a collector in Sweden.  I get many items in that are unusual and rare but this was the first processor relates plate I have seen.  The best part? It came with some history.

It was ordered as a vanity plate by a salesman at Intel around 1995.  He was later hired by AMD as a sales person but his car still said “Pentium” which obviously was a bit of a problem.  As a token of commitment to his new company he gave it to his manager at AMD, despite the fact that he was offered $3000 for it from an employee at Intel.  It likely sat on a desk for some time until it was sold on eBay (for the low price of $100) where it was spotted by a collector in Sweden who asked me to purchase it for him.

It now resides with the collection of CPU Collection.SE

February 12th, 2013 ~ by admin

Reading Mask ROMs – With Python image processing

Mask ROM

Mask ROM

Users of the Python programming language often say it can do anything, and that may just be true.  Microcontrollers through out their history have had a variety of ways to store the programs they run.  Unlike a microprocessor, a microcontroller typically has a fixed, or somewhat fixed, program that it runs.  This program is often referred to as firmware (its not software, as its cant easily be changed, and its not hardware as it isn’t discrete chips, thus firmware).

There are several common ways to store firmware:

  • UV-EPROM: The microcontroller has a UV-EPROM as part of its die (or in some cases separate but on the same package).  This can be programmed using higher voltages, and erased/updated, albeit not in the field.  This was popular in the 80’s for prototyping work.
  • Flash (or EEPROM):  This replaced UV-EPROM program storage as it was update-able in circuit, allowing for such things as user BIOS upgrades, updating firmware on CD/Hard Drives etc.  This has become fairly standard for any firmware that is likely to need to be upgraded in the future.
  • Intel B2616 - Unless you clean the paint off

    Intel B2616 – Unless you clean the paint off

    OTP: One Time Programmable Read Only Memory is useful for medium to large scale production runs.  This allows the code to be ‘burnt’ onto a chip prior to shipping. Often all these were were UV-EPROM chips in a plastic package.  Early Intel’s even used UV-EPROM chips, and simply painted over the window.  a 2708 UV-EPROM became a 2608 PROM with the simple application of some nail polish.  There has been some experimentation and success in erasing/reusing these with the use of X-Rays. (they can penetrate the plastic package).

  • Mask ROM: A Mask ROM is just as it sounds, the program code is actually added to the actual mask itself when making the microcontroller die.  This is the most economical  and reliable for very large production runs.  Obviously one wants to make very sure the code is correct before cutting a mask with it, masks are expensive, and manufacturers are not keen on giving do overs.   In 1978 Intel charged $1000 Mask fee, and a minimum order of 100 units for an 8k ROM (~$10).   By 1986 that Mask fee had risen to $3000 and min units to 1000.

So what happens when 20+ years later you need to figure out whats ON a mask ROM?  The paper tape, 8″ floppy or punch card the program original was stored on is long since gone.  Being that its a mask ROM one can actually SEE the connections, so its possible to decap a device, and visually determine the code, albeit with a lot of tedious work.  Adam Laurie of Aperture Labs developed a Python script to automate some of it, and wrote an article explaining it, which covers some every interesting Mask ROM info.  Not to mention some very nice pictures, so check it out.

Posted in:
Just For Fun