4 ms·
All 32 bits in the ARM1 and 2 were used to address data, so in theory you could have 4GB of RAM. But these processors only had 26 address pins, so that would gi
by jecel 2y ago
All 32 bits in the ARM1 and 2 were used to address data, so in theory you could have 4GB of RAM. But these processors only had 26 address pins, so that would give you at most 64MB (similar to the 24 address pins in the 68000). If you used the MEMC chip to interface to your DRAM then the limit would be a mere 4MB.
For code the limitation was baked into the architecture itself. The bottom two bits of the program counter were used to define the current execution mode (and always output as 0 to fetch word aligned instructions) while the top six bits were the status flag. That meant that saving the PC to the stack saved the whole execution context in a single memory write and it only took one read to restore it.
Fixing this required moving the flags to a separate register, which was a very visible change.