Thursday, 23 May 2019

What has PowerPC got to do with the Amiga?

 
In 1984 Tina Turner released the hit single, What's Love Got to Do with It. In a similar way, you may have been asking; What's PowerPC got to do, got to do with the Amiga? ;-)

In 1997 we saw the introduction of the PowerPC to the Amiga. It may have been more of a de facto introduction rather than any kind of official introduction as the Amiga's future still lay in stasis. But it saw a lot of people asking questions like "What has PowerPC got to do with the Amiga?" and "Why was that CPU chosen?" And apart from sharing a Motorola heritage, being big-endian and being used in the closest relative of the Amiga of that time; the Apple Mac, it seemed to have no relation at all to the Amiga, its chipset or even the 68K series itself. :-?

But a little while back I was thinking about this. And I think I have come up with some answers. And found the missing link, if you will, that bridges the gap between the Amiga and PowerPC. :-)

The Copper! Yes, that's right, the Copper I believe, is the bridge that provides the missing links between the Amiga and PowerPC. For the following reasons I will outlay below and further expand on. I've so far found five things that are common between the Copper and PowerPC.

1.) Endianess.
2.) RISC architecture.
3.) Instruction length.
4.) Instruction format.
5.) Memory addressing.
I shall expand on these things now.


1.) Endianess.
First and most obvious. Both Copper and PowerPC are big endian processors. And their encoded data bytes is contained in a natural forward order. In big endian order.

2.) RISC architecture.
Yes! RISC or Reduced Instruction Set Computer architecture. The PowerPC is called a RISC processor because it contains a reduced or cut down instruction set and other designs in order to maximise execution speed. Although PowerPC does have a lot of instructions for a RISC processor the Copper is a true RISC processor with only three instructions. And in almost all cases only two are ever used! Although not a full microprocessor obviously, the Copper being only a task specific co-processor, it certainly deserves the description of a RISC processor architecture. Even if I slightly advanced the meaning. ;-)

3.) Instruction length.
It's amazing to think given its time but like PowerPC the Copper has a 32-bit instruction length. As with PowerPC, all Copper instructions are 32-bit in length. No matter what data size they work on or what operation they will perform.

4.) Instruction format.
This even continues from the instruction length into the instruction format. Both Copper and PowerPC feature an opcode (or operation code) in the high 16-bit word and a data operand in the lower 16-bit word of a full 32-bit instruction. To simplify here I am comparing like instructions in both, for instance a store or move immediate instruction. Whose format is as follows:

Bit: 31.. 15..
Data: OOOO DDDD


Where O is the OpCode and D the Data bytes. For example on PowerPC an instruction to load an immediate value into a register would have the particular load opcode and CPU register encoded into the upper word and the data value contained in the lower word. Likewise, on Copper, the move opcode and destination register or address are encoded into the upper word and the data value contained in the lower word. It's very close!

5.) Memory addressing.
Finally, the method of memory addressing. Both PowerPC and Copper cannot address memory directly. It is always through a register and offset. The Copper may be able to perform a direct move into a hardware register or a custom chip address but it is always through an offset from $DFF000. And the data is always 16-bit. Similar on PowerPC, where it can only move 16-bits into its registers even if they are internal, and can only store to memory through a preset offset from a register. But with more freedom of course.

So that concludes my five reasons for how the Copper provides a bridge from Amiga to PowerPC. And in depth reasoning for each. :-)

Homework for this study: :-D

A hard assignment: Can you think of five (or more) things Copper has in common with PowerPC?

An easy assignment: Can you think of ten (and perhaps no more) things Copper does not has in common with PowerPC? 🤔