Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Two bits per transistor: high-density ROM in Intel's 8087 floating point chip (righto.com)
93 points by magnat on Sept 30, 2018 | hide | past | favorite | 13 comments


That's a super neat trick, I would have never suspected it from looking at the initial die shot.

The later 80387/80386 combo had an interesting property: you could clock both at different rates, even though they normally shared a clock line from the crystal oscillator, apparently the interface between the two chips was resilient enough that it would work in a mostly asynchronous fashion.

After reading about that I figured I'd put it to the test, and cut off a leg from an 80387 to solder a short wire to the remains and this in turn to an IC socket that you could then try to put different oscillators in, running some benchmark to ensure that it was stable.

It worked like a charm and I gave a 3D demo in front of an audience in an Amsterdam planning committee about the construction of a new building for 'the Meervaart' in Amsterdam west. The demo went off without a glitch, and I was super happy with my little hack that allowed a much larger number of objects (buildings) to be shown in the display in real time than would have been possible otherwise.


Very nice, is the a video?


I wish. We're talking early 90's here, maybe even a bit earlier than that (I could find out the exact date if I dig hard enough).

I was lucky enough to be able to get a beamer with enough lumens that it could be used for an audience that large, a giant NEC iirc.

The display was 800x600x24, hidden line removal was done by back-to-front drawing, double buffering courtesy of a TSENG card that had enough ram to have two full screens worth of data. The card could have gone higher but the beamer only did 800x600 (which was pretty good, most of them at the time only did 640x480).

It did about 10 fps or so with a few hundred objects, all simple blocks of a certain color extruded from a scan of an aerial photograph (which I still have, one of the oldest things I still have related to my work). The idea was to get people to look at the new situation from the vantage point of their house.

By todays standards it was totally lame, but back then it was awesome, a couple of years later I bought an Indy and never wrote another line of 3D->2D code but I loved that work.

Intersting tidbit: I got paid with a car, a rusty old Citroen DS that I took the engine out of to rebuild my own.

Fun memories.


Note this gem in the footnotes:

> Ion implantation was also used in the Z-80 microprocessor to create some transistor "traps", circuits that looked like regular transistors under a microscope but received doping implants that made them non-functional. This served as copy protection since a manufacturer that tried to produce clones on the Z-80 by copying the chip with a microscope would end up with a chip that failed in multiple ways, some of them very subtle.


Hehe. That reminds me. On an Atari ST based CAD/CAM system I wrote we used a similar trick: a hair thin wire inside the DB25 shell of the Centronics port connected two pins together. In the software we checked for the presence of that wire and if it wasn't there we'd do a huge malloc causing the program to abend with an out of memory error.

Every now and then we'd get people complaining about the software using too much memory but they would never want to leave a phone number or other contact details behind. I don't think anybody every found out about that while the machine was still in production, it was very hard to spot and you had to drill apart the db 25 shell by destroying the two small rivets that held it together. Super silly copy protection but quite effective.


So this was a dongle that you guys shipped with your system?


A dongle is something external to the computer, this was a very small modification of the motherboard.


If the system was not for distribution then it was just to thwart the ones trying to “borrow” it from that closed system.


Presumably the Soviets knew about that, since they produced clones of them pretty quickly.

Here's a series of images (by a Russian, appropriately enough) that shows where the traps are and how they can be found:

http://www.cl.cam.ac.uk/~sps32/Z80proj/Z80_traps.pdf


> The entire Zilog those days had 11 people.

> It took one year and one month from the kick-off meeting to fully working silicon.

> We basically got $500,000 the first financing of the company. And I promised to Exxon that we would get on March 9 that we would get the first working CPU and that I would spend $400,000. And Shima was able to get the Z80, the first working Z80 on March 9. And that was incredible feat. And we spent $400,000.

> In order to support the high-speed task switching, in the beginning I asked to complete two sets of register files including the program counter. But it was too complicated to customer.

> I remember one event that sticks out very clearly, and that is that we were just ready to the put the mylar into the layout, when we found a bug in the simulator, in the software - I mean, in the hardware. And we basically went to Shima and said "We have to stop, there's a bug in the chip". Shima looked at us carefully, and thought for a couple of seconds, and said, "No, no problem, we just have to put a contact here." And it was the most amazing thing that we would take the logic error and turn it into a physical fix in a just a few seconds. And sure enough when it was fixed, and when the chip came out, it was bug-free.

> Faggin: Yes, we were concerned about others copying the Z80. So I was trying to figure what we could do that that would be effective, and that’s when I came across an idea that if we use the depletion load the mask that doesn’t leave any trace, then I could create depletion load devices that look like enhancement mode devices. And by doing that we could trick the customer into believing that a certain logic was implemented, when it was not. Then I told Shima, “Shima, this is the idea how to implement traps. Put traps, you know, figure out how to do the worst possible traps that you can imagine,” and then Shima with his mind, that was steel mind, was able to actually figure out a bunch of traps that he could talk about.

> Slater: You want to tell us a little about that Shima?

> Shima: I didn’t count [on] talking about that mostly. I placed six traps for stopping the copy of the layout by the copy maker. And one transistor was added to existing enhancement transistors. And I added a transistor looks like an enhancement transistor. But if transistors are set to be always on state by the ion implantations, it has a drastic effect on very much. I heard from NEC later the copy maker delayed the announcement of Z80 compatible product for about six months.

> Ungermann: I’m going to go back over a couple of things that we’ve mentioned briefly. But I’ll never forget Shima-san’s ability to take a logic equation and convert it to physical layout of a mask. And I remember many meetings when we were working on the instruction set. And Federico would say, “It really needs this one,” and Shima would say, “No! It adds two more microns.” He would completely analyze the instruction set in real time, and veto or approve the instructions based on his ability to perceive a different world than I work in.

> Faggin: Yeah, you remind me of that. Basically, the worst nightmare of when you do layout is at the end you cannot fit everything on this chip size that you have staked for yourself. And toward the end of it, as I was turning the last corner of the chip and finishing, it was very clear that there were too many transistors, and I couldn’t fit them. I had to really compact it more. So it was a very sinking feeling. I pondered for about half-an-hour, and it was obvious that I couldn’t fit it! And so I took an eraser, and I erased three weeks of my work, or two weeks of my work. And I start all over again, and did it, and at the end, I think I had no more than a couple mils left of space at the end. I had forgotten about that, but that was an incredible experience.

http://archive.computerhistory.org/resources/text/Oral_Histo...


If this stuff interests you, and you're not already aware, the "Unnamed Reverse Engineering podcast" will be worth a listen: https://reverseengineering.libsyn.com/rss

I only recently discovered it, and am about 6 episodes into it, but they've had interesting guests, the show notes have good links, and I actually recognized Ken's domain from the last episode I listened to (by coincidence): http://reverseengineering.libsyn.com/005-circuits-that-go-to...


One notable design choice is the row multiplexer, from schematic perspective it is completely redundant (and only contributes additional transistors) but is there presumably to make the ROM shape more suitable for overall chip layout (ie. trading complexity for more squarish-shape of the circuitry). Nice trick is that this mux is on the analog side which saves both on paths through mux and number of output ADCs.


I had e-mailed Ken Shirriff a few months ago to ask whether he might tackle this topic. I'm thrilled that he has! Thank you!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: