Home   News   Concept   AMIGA-Compatible   Hardware   Forum   Questions+Answers   Pictures   Contact & Team

Welcome to the Natami / Amiga Forum

This forum is for AMIGA fans interested in the new NATAMI platform.
Please read the forum usage manual.



All TopicsNewsQAFeaturesTalkTEAMLogin to post    Create account
The team will post updates and news here

NatAmi LX Evaluation Baseboard Bringuppage  << 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 
Gunnar von Boehn
Germany
(Moderator)
Posts 5775
23 Aug 2010 08:45


Thierry Atheist wrote:

Since the entire cache is flushed when multitasking one program to the next ...

Actually the cache does NOT need to be flushed.

There are two ways of implementing a cache.
A CPU cache always needs to remember where from main memory the cached values came from.

This is simple if the CPU has no MMU as the address the CPU works with always matches the real memory address. On system having a CPU an address translation has to be done. This gives a problem as this increases latceny. There are two options on implementing this.

A) Storing the cached value with the "real" memory address.
This has the disadvantage of needing a translation before being able to access the cache. This will slow the cache down by 1-2 clocks.

B) Storing the value with the "virtual" address. This has the advantage that the CPU does not need to translate when accessing the cache. The disadvantage is that in task-switch you need to flush the whole cache as otherwise the cache would cause false hits.

The AMIGA OS does not use virtual addresses therefore this MMU address translation is not needed for us and all these issues could be removed by simply not implementing it.

One thing you need to mind.
A Cache will normally never be able to cache your whole program.
This means you will have cache misses all the time.
The purpose of the L1 cache is to allow a important workloop to run at maximum speed. This means the L1 needs to be big enough to cache your important workloops.

During program execution the cache gets constantly reloaded with new code and data. Each new subroutine/workloop that you execute will load into the cache and replace older content. This happens all the time during program execution and will happen also during task switch.

The best you can do to improve cache performance are 4 things:

A) Try to maximise cache size.
The 68030 did have 2 times 256 Byte.
This is only big enough for very tiny workloops.
The 68040 did have 2 times 4096 Byte.
This is much better and allows all normal workloops to be cached.
The 68060 did have 2 times 8KB .
This is even better but bigger would again be better.
Another good speed up could be get by increasing this to 2 times 16KB or 2 times 32kB ...

B) Keep the latency low.
All the 68K caches had 1 clock latency (0 waitstates) we need to keep it this way. An increase in latency would be bad for performance.

C) Implement it multi-way.
A 1-way cache is the simplest but also has a high risk of antialiasing effect and can get problems when subroutines are on the same concurrency class. E.g. If a program calls 2 subroutines which have the same address boundary then they push each other out of the cache even if the cache would in theory be big enough to keep them both.
We did experiment with 1-way, 2-way, 3-way and 4-way cache.
More ways increasing the needed routing resources in the FPGA which becomes costly and at a certain point will decrease performance.
For the Cyclone chips we saw the performance peak with 2-way become of this. 3-way was also very good.

D) Do prefetching.
A cache that has intelligence and is able to guess which memory location will be used in the future could be able to prefetch this value from memory and get it ready for the CPU to use. Some CPU can do this - many CPU can not do this. A smart cache will greatly increase performance. Even a 32 KB cache which is able to prefetch can easily outrun a 1MB cache which does not prefetch in real live.

 
Lets look what is possible with the NATAMI:

68050 CPU clock rate: 100 MHz

L1 cache 2 times 32 KB is possible.
Latency 1 clock is also possible.

L2 not needed and not useful.

Main memory latency 12 clocks.
If combined with prefetching we this is a good solution.

Gunnar von Boehn
Germany
(Moderator)
Posts 5775
23 Aug 2010 08:58


Again here the ideal for the next 68050 implementation.

68050 CPU clock rate: 100 MHz

2 seperate L1 caches.
1 cache for Instruction
1 cache for data.
Latency 1 clock is also possible.

Either each cache 2-way with 32 KB total per cache. (64KB L1 total)
Or each cache 3-way with 48 KB total per cache. (96KB L1 total)

Bus snooping on L1 and automatic invalidation.
There manual cache invalidation is never needed.

L2 not needed and not useful.

Main memory latency 12 clocks.

Smart cache prefetching.

Added capability to support 1 outstanding CPU load instructions.

In my opinion this will be somewhat of a perfect combination.

Lord Aga

Posts 129
23 Aug 2010 09:03


Will there be a "NatAmi MX board" thread soon :) ?

Gunnar von Boehn
Germany
(Moderator)
Posts 5775
24 Aug 2010 06:48


Amir A wrote:

  Will there be a "NatAmi MX board" thread soon :) ?
 

 
Yes, the NatAmi-LX bring-up is sort of done.
Now the MX will be produced and then there bring-up will start.
But of course bring-up of the MX will be less work.
 
The LX had many new features which were very different to the old AMIGA and the old NATAMI 1 prototype. One good example was the pipelined - burst memory interface of the NATAMI which allows much higher performance. To utilise these new features a lot of internal chipset development was necessary. These developments were the reason why the LX bringup took that much time.
 
But the MX and the LX share all there features.
This means for the MX we do not need to develop the chipset new - like we did for the LX.
The MX is mainly an improved LX with more main memory, a more powerful FPGA, and more expansions integrated in the mainboard.

Fahed Al Daye
Canada

Posts 282
24 Aug 2010 07:00


Are you saying by the end of this year I can sell my A1200 to buy NatAmi?

Lord Aga

Posts 129
24 Aug 2010 07:46


Yaaay, thanks for the great news Big Gun :)

I don't think it will be done this year, but it is nice to see steady progress.

And I will never sell my old Amigas. They will remain as a testimony of elegant machines from a more civilized age :)

Gunnar von Boehn
Germany
(Moderator)
Posts 5775
24 Aug 2010 07:54


Fahed Al Daye wrote:

Are you saying by the end of this year I can ... buy NatAmi?

That is the plan.


Ralph Ewers
Germany

Posts 42
24 Aug 2010 09:48


I find the naming conventions of the Natami a little bit boring and uninspired. Of course "M" follows after "L", so the "MX" motherboard is probably a newer version. But these short char combinations ("LX", "MX" etc.) do not really get to me. They are too antiseptic (even for me being german ;) and there is no distinction from a random chinese x86 motherboard. Not to mention why the naming starts with an "L" in the middle of the alphabet...
 
  I would like to have a different naming scheme for the Natami to allow a better identification with the different flavours. We are doing it already with the custom chips (in best Amiga tradition) - why not being consequent and doing the same for the boards?
 
  We could e.g. name the boards after important persons from the Amiga's history. The first Natami could contain the "Jay" (Miner) board, others e.g. "Dale" (Luck), "R.J." (Mical), "Greg" (Berlin) or "Fred" (Fish) [my apologies to all i did not name here!].

  And then you could even draw a connection: The "Fred" board could be the low-cost consumer board, while the "Dale" board sports a better/faster graphic unit and the "R.J." is a special variant for developers (could be a "Dave" (Haynie) board as well).
 
  Of course there are other schemes (like the A500 motherboard codenamed "B52/Rock Lobster" after the music taste of the developers).
 
  I don't exactly mind which scheme it is, as long as it is a little bit more personal and passionate than "MX" or "LX"... :-) That simply doesn't match the enthusiasm the developers put into the Natami!

Miroslav Parvanov
Bulgaria

Posts 13
24 Aug 2010 10:06


Gunnar von Boehn wrote:

Fahed Al Daye wrote:

  Are you saying by the end of this year I can ... buy NatAmi?
 

 
  That is the plan.
 

Holly ... I got goosebumps when I read that. This will be my best christmas present ever. I've never had my own Amiga and I'm really excited that my first Amiga will be Natami. Keep up the good work!

SID Hervé
France

Posts 663
24 Aug 2010 13:11


Ralph Ewers :

I think the name of the development team on the motherboard would be more traditional,

Identify different models with names from historical teams of the Amiga would be a fitting tribute but could pose a legal problem.

But I agree in principle.

Merci.

Flash Lab
Netherlands

Posts 166
24 Aug 2010 21:50


I would just be happy if we could get a Natami period! ;-)

Bartek "Banter" K.
Poland
(Natami Team)
Posts 2277
24 Aug 2010 22:13


I think this is a great idea, Ralph. I personally would love to see proposals of new names for Natami mainboards:)
 
Cheers

Casey R Williams
USA

Posts 149
24 Aug 2010 22:20


SID Hervé wrote:

  Identify different models with names from historical teams of the Amiga would be a fitting tribute but could pose a legal problem.

I'm sure we'd be fine with first names.  I already suggested the same thing for the chips but no one seemed to agree.  Everyone wanted feminine names, even though we've already had Gary, Buster, and Ramsey.

Not sure if "Dale" is a better name than "MX" though...

Marcel Verdaasdonk
Netherlands

Posts 3974
24 Aug 2010 22:35


Casey besides that we already had two Complex Interface Adapters on board too. ;)

SID Hervé
France

Posts 663
24 Aug 2010 23:19


Casey R Williams
Tastes and colors are subjective and the final decision belongs to the team.

Thierry Atheist
Canada

Posts 1828
25 Aug 2010 02:25


Let's call the first one with the 68070 Mitchie!

Alessandro Alekin
Italy

Posts 13
25 Aug 2010 14:33


Any progress from last update (21 June)?

Thomas Hirsch
Germany
(MX-Board Owner)
Posts 647
25 Aug 2010 17:20


Not on the LX board, sorry. The flash logic is still to be done - so we will see.

Ingmar H
Germany

Posts 46
25 Aug 2010 17:34


I would suggest NatAmi 5000 as it could had been the Amiga 5000 ;-)

Mr Graham Bartram
United Kingdom

Posts 34
29 Aug 2010 17:47


Your comments a fair one but maybe we should avoid the whole thousands thing as this is bein done with the Amigaone X1000. Names are cooler anyway I think.

posts 735page  << 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37