rom:mask
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
rom:mask [2016/02/04 07:32] – mcmaster | rom:mask [2018/02/12 20:18] (current) – mcmaster | ||
---|---|---|---|
Line 2: | Line 2: | ||
Mask ROM is used for high volume ICs that can sacrifice flexibility in changing the program for large volume production cost savings. Stand alone mask ROMs are also produced such as the MCM6570. | Mask ROM is used for high volume ICs that can sacrifice flexibility in changing the program for large volume production cost savings. Stand alone mask ROMs are also produced such as the MCM6570. | ||
+ | |||
+ | Small ROMs are also used to form logic arrays such as for CPU microcode. | ||
|{{: | |{{: | ||
Line 67: | Line 69: | ||
Above original caption: " | Above original caption: " | ||
- | Implant ROMs essentially work by starting with a mask that has a grid of normal, working | + | Implant ROMs essentially work by starting with a mask that has a grid of normal, working |
- | These can be read optically but requires some technique. | + | |
+ | ==== Reading out ==== | ||
+ | |||
+ | These can be tricky to read out, even on old chips, since they are not readily visible under a microscope. | ||
+ | |||
+ | |||
+ | === Electronic === | ||
+ | |||
+ | Try to find a test mode, glitch, etc by studying the die circuitry. | ||
+ | |||
+ | |||
+ | === Optical === | ||
+ | |||
+ | Generally | ||
+ | |||
+ | |||
+ | === Staining === | ||
+ | |||
+ | This is the generally preferred method to read these out. See [[: | ||
+ | |||
+ | |||
+ | === Scanning capacitance microscopy (SCM) === | ||
+ | |||
+ | AFM like technique that measures capacitance change by doping. | ||
+ | |||
+ | |||
+ | === Scanning Microwave Impedance Microscopy === | ||
+ | |||
+ | https:// | ||
+ | |||
+ | This is believed to work for ROMs, although we currently don't have any solid data on this. | ||
+ | |||
+ | |||
+ | === Energy-dispersive X-ray spectroscopy (EDS) === | ||
+ | |||
+ | Discussed this with someone and they think the dopants are too low concentration to be detected. | ||
Line 93: | Line 130: | ||
Above: unstained active area | Above: unstained active area | ||
- | {{: | + | {{: |
Above: stained active area | Above: stained active area | ||
Line 124: | Line 161: | ||
===== RSA SecurID 1C vs 2C ===== | ===== RSA SecurID 1C vs 2C ===== | ||
- | {{: | + | {{: |
Above: earlier 1C die | Above: earlier 1C die | ||
- | {{: | + | {{: |
Above: later 2C die switched to implant ROM | Above: later 2C die switched to implant ROM | ||
Line 137: | Line 174: | ||
- | ====== | + | ===== CBM 65CE02 active NOR ROM ===== |
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Very unusual diagonal pattern | ||
+ | |||
+ | ===== Bandai Tamagotchi metal NOR ROM ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== HK HK628 active metal gate NAND ROM ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== Intel 80486DX ===== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ====== Decoding ====== | ||
+ | |||
+ | I've created the [[https:// | ||
+ | * Use a tool to generate a spatially equivalent 2D array of 1's and 0's | ||
+ | * Use rompar as an individual | ||
+ | * Use djangoMonkeys to crowdsource | ||
+ | * Both of these tools can produce CV training data | ||
+ | * Feed into the zorrom library to decode into a binary | ||
+ | * Knows how to order bits | ||
===== rompar by Adam Laurie ===== | ===== rompar by Adam Laurie ===== | ||
+ | |||
+ | {{: | ||
[[http:// | [[http:// | ||
Line 145: | Line 217: | ||
Code is not yet released at the time of this writing but looks to be a good tool to try out. Good article highlighting some of the problems optically reading mask ROMs and how they get around it. | Code is not yet released at the time of this writing but looks to be a good tool to try out. Good article highlighting some of the problems optically reading mask ROMs and how they get around it. | ||
- | ===== Idea bucket | + | Video: https:// |
+ | |||
+ | |||
+ | ===== djangoMonkeys | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||
+ | ===== typingMonkeys ===== | ||
+ | |||
+ | Original MAME mask ROM crowdsourcing project. Written in PHP, deprecated in favor of djangoMonkeys | ||
- | I heard a rumor that I'm told is false that the MAME project crowd sourced ROM decoding by putting some sort of captcha on login screens. | ||
===== Misc ===== | ===== Misc ===== | ||
Line 158: | Line 239: | ||
* Horizontal projection profile, possibly using color differences. Very sensitive to angle though, so might not be practical | * Horizontal projection profile, possibly using color differences. Very sensitive to angle though, so might not be practical | ||
* Signal based: above design has additional images on top of base. Filter out signals from repeating pattern and analyse remainder | * Signal based: above design has additional images on top of base. Filter out signals from repeating pattern and analyse remainder | ||
+ | |||
+ | ===== Tool1 ===== | ||
+ | |||
+ | An unnamed tool. I (mcmaster) have a copy of it but was requested not to post binaries and/or screenshots. However, some general feedback: | ||
+ | * Their tool works by thresholding with misc tools to help see this | ||
+ | * Bits are selected by drawing a box on the center of where the bits go. Then you tell it how many in rows/cols | ||
+ | * Has pan and zoom, which made it much easier to use than rompar for the large dataset I was working with | ||
+ | * Author says that in their experience bits are always on the same grid pitch, even if there are gaps | ||
+ | * Distributed as Windows executable | ||
+ | |||
====== References ====== | ====== References ====== |
rom/mask.1454571151.txt.gz · Last modified: 2016/02/04 07:32 by mcmaster