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
Information about the Apollo CPU and FPU.

Apollo Is 64bit - What Does It Mean?

Szyk Cech

Posts 191
09 Jan 2016 14:01


Hi
I am wonder what it means to users that Apollo processor is 64bit?

Is that mean that I need 64bit OS to use 64bit programs? (like 64bit Windows version for 64bit programs).
Maybe it should be needed to recompile Aros for that 64bit. Or maybe better idea will be to recompile leaked Amiga OS 3.1 (but it will involve to rewrite asm sources to C)... But in either way it will involve brand new compler (or compilers: Assembler and C).

Or maybe I can write programs which can use 64bit registers but 32bit address space (like DOS programs can use 32bit registers in 16bit address space). In that case OS calls must be also 32bit (like in DOS were 16bit). In that case there will be semi (or pseudo) 64bit programs... But it involve also 64bit aware Assembler...

So: Do you planed release your own Assembler compiler or adapt GNU C compiler for Amiga 64bit needs?


Thierry Atheist

Posts 644
09 Jan 2016 15:30


I've seen that mentioned quite a few times and don't understand it either. I believe I've read that floating point operations can be computed out to 80 bits with only 64 retained, on original 68060 CPUs.

But this bit thing brings up something that has been bothering me forever.

Even though AOS is a 32 bit OS, and it works on 32 bit CPUs, the maximum RAM is 2 gigs instead of 4.

Q 1. AOS3.0 or 3.1 has been leaked onto the internet. Is it authentic, and is enough of it available that it could be recompiled so that we could use 4 gigs of RAM?

Q 2. Does AROS allow for 4 gigs of RAM to be used?

Q 3. Okay, this one is just something I thought of right now, and I ask because I'm clueless of how software works, yet can see that it can do almost anything, so here goes: Since the Apollo Core and S-AGA is a software construct, WHAT IF the 68060 made were 33 bits??? In other words, is an integer overflow what triggers an AOS software failure at the 31/32 bit address barrier and it could be avoided by adding a "phantom bit"?


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
09 Jan 2016 15:37


Yes, Apollo supports both 64bit and 32bit.

This means several things:
* APOLLO supports 64bit instructions
* APOLLO registers are 64bit wide
* APOLLO DCache supports 64bit reading and writing in single cycle.

64bit instruction allow to process data much faster.



Szyk Cech

Posts 191
10 Jan 2016 11:52


So: How can I use 64bit on Amiga?


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
10 Jan 2016 14:54


Szyk Cech wrote:

So: How can I use 64bit on Amiga?

Just the same like with all AMIGA programs.
Either you write a program yourself
or you use one written by someone else ...


Szyk Cech

Posts 191
10 Jan 2016 16:23


Thank you for all your answers Gunnar! But I have 2 more :)

Gunnar von Boehn wrote:

  64bit instruction allow to process data much faster.
 


Back to Natami days, you claimed that 64bit instructions must be slower due to additional 32bit to compute in compare to 32bit instructions... Is that change nowadays?

Other question:
To use 64bit instructions do I need special assembler compiler? My concern is due to my filling that you implement custom 64bit instruction set - so probably no body before Apollo were aware of that - so chances that old compilers will work are slim.


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
10 Jan 2016 20:19


Szyk Cech wrote:

  Back to Natami days, you claimed that 64bit instructions must be slower due to additional 32bit to compute in compare to 32bit instructions... Is that change nowadays?
 

 
  Yes, doing a 64bit operation needs twice as much computation than 32bit. So yes doing 64bit as fast as 32bit is very difficult.
  In the Apollo-Core went many years of careful work and design.
  It was not easy to make Apollo so fast.
  Apollo does 64bit operations as fast as 32bit.
 
 
Szyk Cech wrote:

  To use 64bit instructions do I need special assembler compiler? My concern is due to my filling that you implement custom 64bit instruction set - so probably no body before Apollo were aware of that - so chances that old compilers will work are slim.
 

Actually you can even write 64bit code with existing assemblers pretty well.

This is possible as we use a special trick which allows even old assemblers to generate most 64bit instructions.
 
Being able to do 64bit operations is a milestone for the 68k family.
 
As you certainly know, todays x86 architecture support 64bit.
This leads to the habit that many coders take 64bit instructions for granted and use their programs more and more 64bit data formats.
Compiling these software for non 64bit CPUs is possible but then the compiler has to create "emulation-code" which does the 64bit operations with several 32bit operations.
In a nutshell such code gets slower to execute.
 
I think its essential for the 68K that it has catched up now.


posts 7