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.

What Makes a Good Performing CPU?

Gunnar von Boehn
(Apollo Team Member)
Posts 6223
12 Feb 2024 05:54


There was a discussion what features are useful for a good performing CPU architecture?

Let me give you me experience in what helps to make a good CPU

* compact code= helps to get more from your instruction cache
* being able to do more per single instruction= being strong! = is very good = CISC
* many instruction per cycle = is good
* more operations per instruction = SIMD = is very good
* doing more in one, support 3 operand
* having good EA modes = is very useful
* having many or enough register = is very good
* Having powerful caches - that support several access per cycle = is very good
* Good branch prediction
* good internal forwarding ..
* Having either a design that performs good without OOO - or if not then having strong OOO
* Having smart cache pre-fetching

What do you think to this list?

Which CPU has ALL the attributes that make a good performing CPU?


Peeri the Sunlight

Posts 71
12 Feb 2024 09:34


I think it is 080.
In addition Fun to write code :)
Meaning:
  - Easy addressing modes (*having good EA modes)
  - Intuitive syntax
  - Easy learning Asm, without any tricky paging etc.
  - and overall very logical.


Gunnar von Boehn
(Apollo Team Member)
Posts 6223
12 Feb 2024 10:54


Peeri the Sunlight wrote:

I think it is 080.

You are right the Apollo 68080 has all the above good features.


Marcio Esper

Posts 11
16 Feb 2024 14:34


Gunnar von Boehn wrote:

There was a discussion what features are useful for a good performing CPU architecture?
 
  Let me give you me experience in what helps to make a good CPU
 
 
  * compact code= helps to get more from your instruction cache
  * being able to do more per single instruction= being strong! = is very good = CISC
  * many instruction per cycle = is good
  * more operations per instruction = SIMD = is very good
  * doing more in one, support 3 operand
  * having good EA modes = is very useful
  * having many or enough register = is very good
  * Having powerful caches - that support several access per cycle = is very good
  * Good branch prediction
  * good internal forwarding ..
  * Having either a design that performs good without OOO - or if not then having strong OOO
  * Having smart cache pre-fetching
 
 
  What do you think to this list?
 
  Which CPU has ALL the attributes that make a good performing CPU?

I believe this list is essential for a good performing CPU.

CISC will also help make code easier.

My 17 year old son loves designing cpus, he uses logisim and now I bought him an FPGA development board, and he is loving it. His CPUs are incredible, some with multi busses to communicate memory and devices with very low cycle and resource usage.

Best Regards,

posts 4