Overview Features Instructions Performance Forum Downloads Products OrderV4 Contact

Welcome to the Apollo Forum

This forum is for people interested in the APOLLO CPU.
Please read the forum usage manual.



All TopicsNewsPerformanceGamesDemosApolloVampireAROSWorkbenchATARIReleases
Performance and Benchmark Results!

Ammx

Roland V

Posts 6
12 Apr 2021 21:24


A few days ago Santa announced he was in the area and after hanging my sock at the chimney he confirmed my V1200v2 is on its way. Yeah: finally performance in my amiga that doesn't require a PC.

AMMX seems to be a very efficient instruction set and it's new for Vampire 68080. My question is: why stop at AMMX and not add more very performant assembly instructions that save a lot of bytes and cycles, because they don't have to be coded in 680x0 assembly?

I can imagine this requires some thinking and even a CPU migration to 68090 for the new code, but besides the available FPGA space, what would limit us to only AMMX as a super instruction set?


Gunnar von Boehn
(Apollo Team Member)
Posts 5307
13 Apr 2021 06:18


Roland V wrote:

  AMMX seems to be a very efficient instruction set and it's new for Vampire 68080. My question is: why stop at AMMX and not add more very performant assembly instructions that save a lot of bytes and cycles, because they don't have to be coded in 680x0 assembly?
 

   
I agree with you hat AMMX is a great enhancement.
In addition to AMMX, Apollo 68080 provides a number of more enhancements. For example, Apollo 68080 has a lot more registers which make coding a lot more flexible and increase performance.
   
In my opinion the instruction set that we have now, is very very good.
 
   
Regarding enhancing.
Do you believe there is something missing or was this just a bigger is better post?
 
Maybe an example helps here:
I don't know if you are an experienced cook.
I'm not a good cook :-), but I learned something about cooking:
- A soup with no salt in it, will taste dull.
- Adding the right amount of salt can improve the soup!
- But added more salt will then ruin the soup.

To me an instruction set is like a toolkit.
You need to have the right tools to do the job.
 
When you are snow shuffling then using a tea spoon for this is not optimal. And here a snow shuffle is the right tool and will be much better than the tea spoon.
 
68000 instruction set always did had the tea spoon.
And for some jobs the tea spoon is perfect.
But for snow shuffling /game coding the AMMX snow shuffle is the much better tool.
 
Where I live there it snows regularly in winter and I shuffle a lot snow. In my experience the ideal snow shuffle has a certain size -
  and just making the shuffle much larger will not make it better.


Kamelito Loveless

Posts 183
13 Apr 2021 08:36


For the ZX Spectrum Next, professionals games developers with tracks records experience developing games in the 80/90 for the platform (now working on PCand current consoles) asked for specifics op codes to improve performance for games and so the Z80 op codes were enhanced.
I assume the same kind of feedback lead the way of the new instructions for the 080.
EXTERNAL LINK  It should be enough now, what is needed is programmers creating new contents using those new features.



Tim Trepanier

Posts 112
13 Apr 2021 16:43


It's tempting to add new hardware instructions to improve performance of specific features. But this is also a dangerous mentality. You can easily end up with x64 syndrome. Over the years the x86-x64 ISA has grown to thousands of instructions. Most of them are a waste of silicon space. This adds cost, heat, and complexity.

Some instructions have greater benefits then others. Add those that make sense but know when to stop adding.


Vojin Vidanovic
(Needs Verification)
Posts 1896/ 1
13 Apr 2021 18:10


As I understand from past discussion on PCx, some instructions valuable for better x86 emulation were indeed added to 080 set, but did not prove to expected level (but neither the 080 MMX enhanced PCx ever came to life). This kind of approach for expected task.

On other level, 080 has proven to be quite 00/060 compatible more then 040 and 060 alone - which proves another point. That is has most full and rich m68k instruction set and that is good for backward compatibility. Lets say that this has worked. Some incompatibilities with Vampire are often related to blitter timings or something else then CPU alone.

Introducing something new and useful, like MMX, have proven to be very useful but let alone, stirred some part of discussion is it Amiga anymore. This proves then in Amiga community such changes can often bring more negative then positive. Quite conservative community.

And dont forget that, leaving alone MMX, compilers and GCC Tools do work on 080. Radical changes could negate that.

So seems to be very sensitive aspect. So speed could better be archieved by larger FPGA and more MHz. My 2 cents :)


Antony Coello

Posts 120
13 Apr 2021 20:37


I would suggest having a non moving target for a while.

Keep changing specifications and developers (especially the niche small teams developing for Amiga/Vampire) will get fed up with the constant having to maintain their outdated code and handle code fragmentation.

Besides, Im sure you would agree; the 68xxx architecture is very nice to ASM code with and from what I can see so far, the 080 is a very elegant addition, not like that pile of dog excrement that is x86, with all its legacy quirks, wrong-endianess ;) and awful memory paging system thats worse than on a C128 with a memory expansion.

I would leave it just as it is, fix/improve any real HW compatability bugs and eventually, go for an ASIC build.




Gunnar von Boehn
(Apollo Team Member)
Posts 5307
14 Apr 2021 07:50


Vojin Vidanovic wrote:

(but neither the 080 MMX enhanced PCx ever came to life). This kind of approach for expected task.

Please mind that 68080 AMMX is not MMX.
Apollo AMMX is realy many times faster than Intel MMX.

Apollo 68080 AMMX instructions are designed for game programming.
You can with 1 instruction in AMMX replace sometimes 20 or 30 instructions of old code.



posts 7