4 ms·
Reverse engineering the ARM1, ancestor of the iPhone's processor (2015)
- jchw 8y agoIt feels weird to see the ARM1 described as an 'ancestor of the iPhone's processor.' Of course, it is... but that feels like describing the 8086 as the ancestor of the PlayStation 4's processor. ARM was popular in embedded devices prior to the iPhone, after all; I had at least a couple ARM powered devices well prior to the iPhone's launch. Not even obscure: GameBoy Advance is an example. This is really just a nitpick, though, I definitely find these in-browser gate-level chip emulators to be fascinating. It makes me wonder if we will some day see realtime gate-level emulation of entire machines... It may be too soon to ask given that state-of-the-art cycle-level CPU emulation is already pretty limited by performance, but perhaps for some really old devices, it'll happen. It would just be really cool to be able to do things like play with fault injection on an emulated processor and watch what actually happens.
- analognoise 8y agoYou could use Verilator to stimulate a processor, and SDL to give you a graphical output, if so desired. If you detest Verilator, Modelsim DE or above comes with TCL embedded, you could use Tk to build a graphical interface.
- twtw 8y agoSorry if this is too unrelated to the original post. I just recently discovered verilator, and it seems pretty awesome. I'm curious if there are some drawbacks that you are aware of that make people dislike it?
- analognoise 8y agoIt will never be able to simulate encrypted RTL - so any design using vendor IP is out (so lots of Xilinx cores, for example). It is a cycle simulator (not a delta time simulator), so no back annotated timing is possible. It does not support mixed language simulation (I know, it is a Verilog simulator, but you don't always get to choose what language a vendor supplies IP in). So that's just to start. Writing C++ to toggle clocks then force the simulator to re-evaluate everything is terrible (opinion). The primary tutorials I've found are Dan Gisselquest's (ZipCpu) and (iirc) he recommends running your testbench in a delta simulator as well, to make sure it's giving you what you expect. So it isn't much of a "standalone" tool. All that said, it seems like it could be useful - it wasn't in my case, but ymmv.
- twtw 8y agoThanks!
- solarexplorer 8y agoARM was founded as a joint venture of Apple and VLSI. And Apple was the very first client and used an ARM processor in the Newton—the grandfather of the iPhone. So it makes a lot of sense to describe the ARM1 as an ancestor of the iphone’s processor today.
- TickleSteve 8y agoNo, this ARM1 was a product of Acorn Computers IIRC. This was prior to the Apple agreement to create ARM Holdings. Basically, ARM was a spinoff from Apple & Acorn in 1990... ARM1 very much predates this. https://www.telegraph.co.uk/finance/newsbysector/epic/arm/8243162/History-of-ARM-from-Acorn-to-Apple.html https://www.telegraph.co.uk/finance/newsbysector/epic/arm/82...
- SmellyGeekBoy 8y agoARM Holdings was a joint venture between Acorn, Apple and VLSI and was founded in 1990. The ARM concept and CPU were invented by Acorn in 1983. So you're both right, essentially.
- happycube 8y agoI think the closest complete project to that we'll see for a long time is MISTer, which uses an Altera FPGA board w/2 ARM cores.
- Zhenya 8y agoReverse engineering the 8086, ancestor of the Macbook Pros processor (2015)
- faragon 8y agoGameBoy Advance CPU (ARM7TDMI) is very close to first ARM designs: just three stage pipeline, without cache (with higher IPC, because of better memory interface and less pipeline stalls). Because of using a 4-byte wide 24 bit memory bus, it could address up to 64MB of memory. It is an excellent platform to measure memory access behavior without the distortion of cache subsystems. You can buy dev boards with 64MB of external SDRAM, and run ucLinux (Linux for microcontrollers without MMU).
- dang 8y agoDiscussed at the time: https://news.ycombinator.com/item?id=10819025 https://news.ycombinator.com/item?id=10819025