3 ms·
For future reverse-engineering, I think the biggest problem will be imaging. I can study processors up to about 1980 with an inexpensive microscope. But chips w
by kens 6y ago
For future reverse-engineering, I think the biggest problem will be imaging. I can study processors up to about 1980 with an inexpensive microscope. But chips with two layers (or more) of metal are much harder to examine, because the metal layers block each other. And once transistors get too small for optical microscopes (1990s), you need an electron microscope, which is a much bigger investment. (Although there are hobbyists who have one.)
The other factor is understanding. A chip like the Z-80 is simple enough that one person can understand it completely. I doubt any single person at Intel understands everything about the Xeon, since it is so complex. And it's much harder to understand the chip from reverse engineering.
(That assumes the goal of reverse engineering is to understand the chip. Emulating the chip is a different story, since you don't need to understand what's going on. In other words, it's the difference between understanding how the 6502 works and looking at the visual 6502 simulator.)
As for software, I've hacked up various tools for my reverse engineering. I draw out the chip layers manually and then feed the layers into a program that finds transistors and connected components, so I have a raw connection map. Then another program finds all the gates. From that point, it's mainly manual, tracing out the gates and trying to figure out what they are doing. I'll make one-off scripts to help with various things. For instance, when I figure out how the chip implements a latch, I'll write a program to scan for latches. One of the biggest problems is errors, since I'll miss connections, short wires together, or so forth. Even if I'm 99% accurate, the 8086 has 29,000 transistors so there are a lot of errors. So I spend a lot of time looking at circuitry that makes no sense, then realizing that I left out a wire or something.