Overview Features Coding ApolloOS Performance Forum Downloads Products Order Contact

Welcome to the Apollo Forum

This forum is for people interested in the APOLLO CPU.
Please read the forum usage manual.
Please visit our Apollo-Discord Server for support.



All TopicsNewsPerformanceGamesDemosApolloVampireAROSWorkbenchATARIReleases
Performance and Benchmark Results!

Performance and Software for 2018page  1 2 3 4 

Mallagan Bellator

Posts 393
04 Dec 2017 00:55


Gunnar von Boehn wrote:

Mallagan Bellator wrote:

 
Gunnar von Boehn wrote:

  68080 does support:
  100% of all 68000 instructions
  100% of all 68030 instructions
  100% of all 68040 instructions
  100% of all 68060 instructions
  So 68080 is fully compatible
 

       
  This is great, and I have understood this for a long time now.
  However, just for clarification, ”widest” doesn’t mean ”complete”.
 

 
  Yes but 100% means 100% complete. :-)
  And the widest means that there is no other 68K family CPU supporting so many 68K instructions as the 68080.
   

True, but info on the compatibility with 020 and 010 instructions is left out.
So, are they supported? And if so, by how much? If not, is it hard to do, or is it on the to-do-list?


Mallagan Bellator

Posts 393
04 Dec 2017 01:01


For all I know, 020 and 010 instructions could be conflicting with the other instruction sets, which would be problematic. But I have no clue tbh.
I don’t know if it’s that, or if it’s just a ”Rome wasn’t built in a day” thing.

You guys are doing a great job btw!! :)


Roman S.

Posts 149
04 Dec 2017 07:01


To be precise, the MOVE from SR is a problem, since it is unprivileged on 68000, but privileged on 68010 and above. So - how is it even possible to have a with CPU 100% of 68000 and 68030 instruction set (fully compatible) at the same time? Is the privileged/unprivileged switchable somehow?
 
Yes, I know this is a very minor issue, but still... for somebody it might be relevant.


Nixus Minimax

Posts 416
04 Dec 2017 08:59


Mallagan Bellator wrote:

  True, but info on the compatibility with 020 and 010 instructions is left out.

030 is identical to 020 plus DCache and optionally an internal MMU, 010 is identical to 000, just one instruction became a supervisor mode instruction that was a user mode instruction before. This means that no instruction was missing in the list above even though 020 and 010 were not mentioned explicitly.



Nixus Minimax

Posts 416
04 Dec 2017 09:03


Roman S. wrote:
To be precise, the MOVE from SR is a problem, since it is unprivileged on 68000, but privileged on 68010 and above. So - how is it even possible to have a with CPU 100% of 68000 and 68030 instruction set (fully compatible) at the same time?

How does "supported" mean that the CPU will behave exactly like a specific other CPU? The most reasonable thing would be to make MOVE from SR privileged as it has been ever after the 68000 where it was considered a BUG to have put this instruction in usermode.

Of course, in the 080 it would be possible to e.g. make it privileged after boot and implement some switch to make it available in usermode. However, AFAIK nobody has needed such a solution in the last 30 years which is why Motorola didn't put it into the 010-060.



Roman S.

Posts 149
04 Dec 2017 10:24


Nixus Minimax wrote:

How does "supported" mean that the CPU will behave exactly like a specific other CPU?

This way:

Gunnar von Boehn wrote:

So 68080 is fully compatible

And I am very curious how the team managed to make it fully compatible... as far as I understand it is not really possible.


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
04 Dec 2017 12:19


Nixus Minimax wrote:

How does "supported" mean that the CPU will behave exactly like a specific other CPU? The most reasonable thing would be to make MOVE from SR privileged as it has been ever after the 68000 where it was considered a BUG to have put this instruction in usermode.

 
The other way around makes sense.
 
MOVE SR,Dn -- was used on AMIGA and ATARI by a number of programs.
 
By using MOVE SR in user mode no harm can be done.
Using MOVE SR programs can "see" if they are run in a debugger
or in a virtual environment. This was unwanted on UNIX.
Therefore this was prohibited.

On AMIGA OS this reason makes no sense.
On AMIGA OS every program can switch to supervisor mode anyway.
So this instruction change was done for UNIX and makes on AMIGA no sense.
 
APOLLO offers the original 68000 behavior as this is most compatible to some old ATARI and AMIGA programs.


Mallagan Bellator

Posts 393
04 Dec 2017 14:09


Nixus Minimax wrote:

Mallagan Bellator wrote:

  True, but info on the compatibility with 020 and 010 instructions is left out.

 
  030 is identical to 020 plus DCache and optionally an internal MMU, 010 is identical to 000, just one instruction became a supervisor mode instruction that was a user mode instruction before. This means that no instruction was missing in the list above even though 020 and 010 were not mentioned explicitly.
 

And this was exactly what I meant and what I wanted to know, but didn’t get an answer to. Thanks Nixus Minimax! I just hope it really is as you say



Gunnar von Boehn
(Apollo Team Member)
Posts 6207
04 Dec 2017 14:41


Mallagan Bellator wrote:

  And this was exactly what I meant and what I wanted to know, but didn’t get an answer to. Thanks Nixus Minimax! I just hope it really is as you say
 

 
In general the higher 680x0 CPU generation did normally include all instructions of the lower models.
 
This means 68010 includes all 68000 instructions, and added 3 instructions.
68020 includes all 68010 and 68000 instructions and added a number of instructions.
68030 includes the 68020 (but removes a special call instruction which MOTO declared to be never use in sw.) So removing this instruction was on purpose and no MOTO CPU ever included it.
The 68040 includes the 68030, 68010, 68000, and added 1 new instruction.
So the 68040 was the MOST complete CPU at this point.
 
Then came the 68060. Here Motorola made a major cut.
The 68060 did drop about 10 instructions.
So about 10 instruction which were before supported in the 68000/68010/68020/68030/68040 - do not work anymore in the 68060.
 
The 68060 FPU did drop 3 FPU instructions of the 68040, but added 2 different ones. So 68060 FPU code and 68040 FPU code are not always compatible.
 
68080 includes all instruction of the previous cores.
This means 68080 has all INTEGER instructions of 68000/68010/68030/68040/68060 and added in addition about 10 new integer instructions, the combined FPU instructions from 68040 and 68060, plus adding 50 AMMX instructions


Mallagan Bellator

Posts 393
04 Dec 2017 15:09


So what I take from this is that some instructions from the 020 are missing.
Since Motorola claimed this special call instruction was never used, could it be that those missing 020 instructions wont really be missed? As long as the games and programs will work, it’s all good. After all, the 020 is the base cpu of the A1200, and games written for the A1200 need to work as well, just like anything else.




Gunnar von Boehn
(Apollo Team Member)
Posts 6207
04 Dec 2017 15:26


Mallagan Bellator wrote:

  So what I take from this is that some instructions from the 020 are missing.
 

 
The instruction we talk about is named CALLM
Read in the Motorola manual what is does then you will see and agree.
 


Thierry Atheist

Posts 644
04 Dec 2017 19:46


Gunnar von Boehn wrote:
68080 includes all instruction of the previous cores.
This means 68080 has all INTEGER instructions of 68000/68010/68030/68040/68060 and added in addition about 10 new integer instructions, the combined FPU instructions from 68040 and 68060, plus adding 50 AMMX instructions

This, combined with S-AGA, makes the Vampire the ABSOLUTE WINNER in the AMIGA continuity games!!!!!

THIS is what I wanted to see transpire ever since Commodore shuttered their doors!

If we NEVER catch up in MHz or Cores of the competition, it's not important.

WE have got the PLEASANT OS and a WORTHY one of all of this concerted effort undertaken here.


Mallagan Bellator

Posts 393
05 Dec 2017 02:54


Yup, the Apollo core is awesome, and better than any core out there (as far as I know at least), and it keeps getting better.

Dude... can you guys imagine this core in ASIC, doing 3 or more Ghz?
That would be rad!
I would say Microsoft, go home, you’re drunk xD

posts 73page  1 2 3 4