CPU of the Day: Motorola MC68040VL
cpushack.com
cpushack.com
When Steve Jobs came back to Apple, he sanctioned a marketing campaign emphasizing the performance of the Motorola PowerPC G3, with Intel chips pictured on the back of snails.
'The ASA has banned two separate Apple commercials from airing in the UK. In 2004 the Power Mac G5 made unsubstantiated claims of being "the world's fastest personal computer" and in 2008, an iPhone commercial was banned for saying that it could access "all of the internet" even though it couldn't support Flash.'
So, not even "all of the web", never mind "all of the Internet", which Apple still doesn't support.
https://www.bountysource.com/issues/80706251-m68k-convert-th...
Microprogramming was already widespread since the 1960s. The early microprocessors, such as MOS Technology’s 6502, too, used microcode (in its “hardwired” form).
“An alternate approach, used in many microprocessors, is to use PLAs or ROMs (instead of combinational logic) mainly for instruction decoding, and let a simple state machine (without much, or any, microcode) do most of the sequencing. The MOS Technology 6502 is an example of a microprocessor using a PLA for instruction decode and sequencing.”:
The distinction might be whether the instruction breaks up into a sequence of discrete internal operations. Implementing this as a hardwired state machine is an optimization.
And classic 5 stage RISCs like most MIPS don't typically have microcode.
edit: I realize that in some trivial sense any combinational logic is tantamount to a compressed ROM, but I mean that even in a design sense this seems like it's not far off from a deduped array of microinstructions.
I never ended up doing any low-level programming professionally though. The person I worked with that was the best at SQL, I heard hated his college course with FPGAs.
Once I get my desk rebuilt I will fire up my PowerPC collection again.
What are dual MMUs good for? One for kernel code and one for user-mode code? (Does that mean less cache flushing during context switches?)
However, there are separate configuration registers for code and data address space that can be used to define which parts of the virtual address space should be translated and which parts are directly mapped to physical addresses without translation. Therefore, strictly spoken, the instruction address space is not necessarily identical to the data address space, despite having only one page table.
Amiga programmers, do you remember the (bad) habit of putting data fields directly into the code? Like this fragment:
...
jsr OpenLibrary(a6)
move.l d0, gfxbase
rts
gfxbase dc.l 0
Imagine now what could happen in the above move.l instruction if the address "gfxbase" is translated differently from the addresses of the instructions :)