Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Reverse engineering the ARM1, ancestor of the iPhone's processor (2015) (righto.com)
77 points by mariuz on Dec 8, 2018 | hide | past | favorite | 12 comments


It 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.


GameBoy 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).


You 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.


Sorry 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?


It 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.


Thanks!


I 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.


Reverse engineering the 8086, ancestor of the Macbook Pros processor (2015)


ARM 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.


No, 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/82...


ARM 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.





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

Search: