top | item 44848293

A CT scanner reveals surprises inside the 386 processor's ceramic package

314 points| robin_reala | 7 months ago |righto.com | reply

107 comments

order
[+] mlhpdx|7 months ago|reply
A bit of a trip down memory lane for me. I performed an analysis of the thermo-mechanical cyclic fatigue in later packages using detailed CAD, FEA and empirical tests. A lot of work went into finding it wasn’t a big deal for the most part. Still, I don’t recommend that museums power cycle old PCs daily…
[+] nxobject|7 months ago|reply
Knowing nothing about how survival/durability testing is done in VLSI: how did you do the empirical tests?

For example, I know that thermal samples for the Pentium 5-era Xeon (Jayhawk) were produced, but I'd always wondered Intel went from the dummy to realizing "oh, shit, this is going to be way too hot in the long run."

[+] PeterStuer|7 months ago|reply
For museums, would it be an option to instead of a cooler have a temperature control unit that keeps the package at a set temperature no matter wether the PC is operating or not? Just heating the chips surfaces might be cheaper than having the full PC on 24/7 with a semi constant load.
[+] rasz|7 months ago|reply
>386 has eight pins labeled "NC" (No Connect)

and Cyrix 486DLC hijacks 7 of those :)

A20M# (F13) - when supported by motherboard you can L1 cache whole ram instead of leaving first 64KB uncached

FLUSH# (E13) - when supported by motherboard you dont have to use hacks and flush L1 on every DMA access. Hacks (BARB mode) seemed clever at the time until everyone had a Sound Blaster DMAing audio constantly invalidating cache while gaming.

RPLSET (C6) RPLVAl (C7)- L1 cache status debug outputs

SUSP# (A4) SUSPA# (B4)- suspend support, wakes on INT and NMI. Good for laptops.

>The surprising thing is that one of the No Connect pads does have the bond wire in place

Somehow Cyrix picked this particular pin (B12) for KEN# input (enable L1 cache) :O

>From the circuitry on the die, this pin appears to be an output

Meaning the _one_ NC pin Intel CPU actually wires, an output no less, Cyrix demands driven low to enable cache.

[+] kens|7 months ago|reply
Author here for all your CT scanning questions :-)
[+] johnklos|7 months ago|reply
This isn't about CT scanning, but about the chip itself.

Since the bond wires are just hanging out in air, does this mean that a chip like this could be ruined by dropping it which might cause the bond wires to move enough to short something?

Thanks for all your hard work!

[+] s1110|7 months ago|reply
Genuine question: the website doesn't work in Russia. Did you restrict the access or is it my ISP doing that? Someone tries to prevent me from studying of very niche info on ancient Intel CPUs. Thanks! P.S. Big fan of your work!
[+] rylando|7 months ago|reply
What kVp/mAs do you use for this? How are you avoiding the artifacts seen from medical imaging? Curious, in school for CT in the medical field.
[+] imoverclocked|7 months ago|reply
Does it look like the almost connected pins could have been purposely severed during production? ie: could they have been connected and then using a calculated pulse of power, disconnected?
[+] loa_in_|7 months ago|reply
Is the CPU destroyed by the process or did you reassemble this particular specimen?
[+] bunabhucan|7 months ago|reply
What is the last node/cpu that had the smallest features visible at optical microscope scales?
[+] TZubiri|7 months ago|reply
What CT scanner was used? The images are surprisingly detailed for something so small, while we are used to coarser scales of human anatomy.
[+] OptionOfT|7 months ago|reply
What is your CPU's yearly deductible?
[+] Mountain_Skies|7 months ago|reply
> From the circuitry on the die, this pin appears to be an output. If someone with a 386 chip hooks this pin to an oscilloscope, maybe they will see something interesting.

Would be a fun surprise if the 386 had its own Halt and Catch Fire mode.

[+] rep_lodsb|7 months ago|reply
It had ICE mode (precursor to SMM, but used for production testing and low-level debugging), and according to this article, the pins were exposed at least on some of the chips you could buy:

https://www.rcollins.org/ddj/Jan97/Jan97.html

>On the standard Intel 80386 DX, asserting the undocumented pin at location B6 will cause the microprocessor to halt emulation and enter ICE mode.

[this is written from an ICE perspective - for "emulation", read "normal operation"]

This mode was introduced in the 80286, but I don't think the pins were exposed except in the special bond-out variant for ICE, and maybe early samples. You can trigger it in software (opcode 0F 04 on the 286, or by enabling a bit in DR7 on the 386), but then the processor disconnects from the bus and you have to reset it.

On the 286, you can get it to dump some otherwise hidden internal state, by using a prefix that no longer exists on 386s: https://rep-lodsb.mataroa.blog/blog/intel-286-secrets-ice-mo...

[+] lisbbb|7 months ago|reply
Went to a computer fair circa, gosh, 1989? My Dad bought me a 386 DX 25MHz with like 4MB of RAM and a whopping 40MB hard drive. This was a remarkable upgrade from the Tandy 286 16MHz that I was using. The 386 we got was not the standard 20MHz or 33MHz, 25MHz was some kind of hype thing, as I recall. The 33MHz was the bomb, but of course that cost more bones $$$$. The computer fairs were cool.
[+] kfarr|7 months ago|reply
For 89 that's screamin! I remember early 90's getting a 50 mhz 8mb Gateway and it was amazing. Even just MS Paint and MS Word kept my sister and I plenty entertained making up stories and pictures to go along with them. Then I found MS DOS and QBasic and here I am posting on hacker news on a Saturday afternoon.
[+] Zardoz84|7 months ago|reply
My father bought and built my first PC with an AMD 386DX40 in 1991 . I have good memories from these computer, and from the Spectrum +3 that He bought a year prior.
[+] mike50|7 months ago|reply
I'm just glad someone is putting hybrid packaging information in the public domain. The generalized background information is really helpful for engineers new to this very small area. This wiring is not as complex as the old military hybrids for sure. It may be six layers but there is only one monolithic.
[+] m104|7 months ago|reply
The anecdote about the 16-pin religion and the reluctance to use more pins is so good. It's often assumed that (later) successful companies were always making fantastic decisions in the earlier days, when in reality there were a few bizarre and harmful assumptions that were holding it back and needed to be forced out in order for rationality to prevail.
[+] rasz|7 months ago|reply
To be fair packaging used to be very expensive in US. I remember one of Asianometry? videos touching on Japanese businessman traveling to Texas in ?seventies? and learning how expensive lead frames were while he could manufacture and ship them overseas at fraction of the cost. Sadly I cant find that specific episode anymore :(
[+] Tuna-Fish|7 months ago|reply
The reluctance to use more pins is very understandable.

At the time, Intel was primarily a memory manufacturer, and they had vertically integrated the complete workflow for anything that could fit into a 16-pin DIP. Anything that didn't, required them to outsource testing and packaging, or purchase expensive new machines. When CPUs were still being pushed against the wishes of upper management ("A computer has only one CPU but lots of memory chips, so the memory is a better business"), it was a hard sell to invest lots of money for an uncertain market.

[+] themafia|7 months ago|reply
That lower level "Signals" CT image (layer 2) would have been an amazing background for the "Intel Inside" logo stickers. It has the proper era aesthetic and everything.

Anyways.. this is what I really like about kens work.. the accidental discovery of beautiful structures while trying to answer abstract questions. Thanks for doing all this!

[+] mrlonglong|7 months ago|reply
Where's A0 and A1?
[+] kens|7 months ago|reply
Since the 386 is a 32-bit processor, the address specifies a 32-bit word and doesn't use address bits A0 and A1. But what if you just want to read a byte or a 16-bit word? The trick is that the 386 provides four Byte Enable outputs (BE0#-BE3#) that indicate which bytes in the word are being transferred. Of course, it's not that simple. If the lower 16 bits of the data bus aren't being used, the upper 16 bits of the data bus are duplicated on the lower 16 bits to make 16-bit buses more efficient (somehow).
[+] devmor|7 months ago|reply
Super cool! This was the CPU in my very first PC (which I got to build myself, under the tutelage of a family friend). I remember that it was cooled by nothing but a tiny stick-on heatsink and a small plastic fan that clipped on top of that.

8MB of DRAM, a 250MB spinning disk hard drive, 5.25 and 3.5 inch floppy bays, removable bios that I had to sort through a tupperware of chips to find the correct unit, some unnamed AGP video card that I had to slot removable chips into as well and a great big 16" CRT.

I think I had to install a special serial card in an ISA slot to use a mouse too.

[+] bartread|7 months ago|reply
> some unnamed AGP video card

Do you mean VGA rather than AGP? AGP came much later than the 386 and wouldn’t have been supported by its motherboard chipsets.

[+] lisbbb|7 months ago|reply
The VGA cards often had a mouse port, I think. I don't recall having to add a serial card on 386s, but maybe we did. IBM machines were really oddball, too, with that fancier type of bus. I stayed away from IBM.
[+] nickdothutton|7 months ago|reply
These old ceramic packages are to my mind peak aesthetic for chips.
[+] xpe|7 months ago|reply
> In later Intel processors, the number of connections exponentially increased.

Pedantic note: I think "quadratically" makes more sense here: we're talking about two dimensions.

[+] kens|7 months ago|reply
If you look at the numbers, the number of pins is roughly exponential over time, increasing about 10% per year. Also take a look at Rent's Rule.
[+] chiph|7 months ago|reply
kens - Presumably they chose the pin assignments to make it easier to arrange traces on the motherboard side. Or did they?
[+] kens|7 months ago|reply
That's an interesting question. Looking at the layout, my guess is that they didn't worry about the motherboard routing. I'm not sure they could do much to make it easier in any case.
[+] _xerces_|7 months ago|reply
How do they attach those bond wires? Seems difficult and fiddly!
[+] YakBizzarro|7 months ago|reply
with a bonding machine :) doing that manually can be tedious, nowadays for IC that are bonded and not flipchipped it's all automatic. Manual bonding is still very used in research.
[+] rasz|7 months ago|reply
friction (ultrasonic) welding
[+] gregsadetsky|7 months ago|reply
Hey @kens, congrats on the page! Extremely super small usability note/suggestion: if you changed your inputs (above the tool that lets you see all of the layers) to something like this:

    <input name="layer" type="radio" onclick="show('https://static.righto.com/images/386-package/layer0.jpg')" id="layer1">
    <label for="layer1">Pins</label>
then it would be possible to click the label name (i.e. Pins, I/O Vcc, etc.) instead of having to click the small radio circles.

It's a small thing, but I think it's a lot more fun/easy/fast to click the different label names rather than the circles. It's truly a small nit - just in case it's an easy fix for you. Cheers!

(just to make sure: you need to add a unique "id" attribute for each "input", and then make a <label> tag for each label referencing that id in the "for")