Hacker News new | past | comments | ask | show | jobs | submit login

I feel old knowing my Logitech USB receiver is roughly as powerful as the Gameboy Advance I bought in college.



At roughly the same clock speed I think the 32-bit ARM7 in the Gameboy would actually run laps around an 8-bit 8051.


50 MHz 8051 can usually be beat by 1 MHz ARM CPU.

8051 uses several (typically 4 or 12, etc. [1]) clock cycles for one actual machine cycle. So an instruction that takes "2" cycles, can actually take 24 clock cycles.

Of course, some modern 8051 clones are more efficient. Some of them can execute one instruction per actual clock cycle.

Even then, one ARM instruction can often do work of 2-10 8051 instructions. 8051 is particularly bad at pointer arithmetic (except incrementing pointer by one) and, of course being an 8-bit CPU, 16/32 bit math.

[1]: ftp://ftp.ti.com/pub/data_acquisition/MSC_CD-ROM/8051_Tutorial/tuttimng.html

"Microcontrollers (and many other electrical systems) use crystals to syncrhronize operations. The 8051 uses the crystal for precisely that: to synchronize it’s operation. Effectively, the 8051 operates using what are called "machine cycles." A single machine cycle is the minimum amount of time in which a single 8051 instruction can be executed. although many instructions take multiple cycles.

A cycle is, in reality, 12 pulses of the crystal. That is to say, if an instruction takes one machine cycle to execute, it will take 12 pulses of the crystal to execute. Since we know the crystal is pulsing 11,059,000 times per second and that one machine cycle is 12 pulses, we can calculate how many instruction cycles the 8051 can execute per second:

11,059,000 / 12 = 921,583

This means that the 8051 can execute 921,583 single-cycle instructions per second. Since a large number of 8051 instructions are single-cycle instructions it is often considered that the 8051 can execute roughly 1 million instructions per second, although in reality it is less--and, depending on the instructions being used, an estimate of about 600,000 instructions per second is more realistic."


the original Gameboy had a Z80/8080 hybrid.


That statement confused me too... I think she/he means the Game Boy Advanced (ARM7TDMI @ 16.78 MHz): https://en.wikipedia.org/wiki/Game_Boy_Advance


The post I am responding to is talking about the Advance model, not the original.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: