Welcome, Guest. Please login or register.

Author Topic: ADOOM on A600 running 22-35 FPS  (Read 79102 times)

Description:

0 Members and 38 Guests are viewing this topic.

Offline kolla

Re: ADOOM on A600 running 22-35 FPS
« Reply #314 from previous page: February 23, 2015, 07:36:57 AM »
For sake of compatibility for those who want hardware to run old m68k OSes (NeXTStep, Plan9, A\UX, MacOS...) I think compatibility with 68040 is favourable. It may be worthwhile to check with people over at http://www.nextcomputers.org/ if they would be interested.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: ADOOM on A600 running 22-35 FPS
« Reply #315 on: February 23, 2015, 08:26:10 AM »
Quote from: Lurch;785213
Being an 020 CPU do you need a special 060 library to fool some programs that will only run when an 060 is detected?

This would not be a good idea in general because Phoenix has the 64 bit integer MUL*.L and DIV*.L instructions in hardware and detecting a 68060 may use slower code which would avoid them. It would be a better idea if MOVE16 was implemented also (not difficult). Most code that detects for a 68060 needs a 68060 compatible FPU or MMU which Phoenix doesn't currently have. In some specific cases, changing the SysBase->AttnFlags may get some programs working but this would more commonly result in a guru. A program that changes SysBase->AttnFlags is trivial. There are other programs that would detect for a 68060 in other ways that would not be so easy to fix. Most 68060 optimized and compiled code which does not use the FPU or MMU should work on Phoenix (and a 68020) right now.

Quote from: kolla;785219
There are plenty of us running Linux on m68k, and m68k is well supported by the Linux kernel and the GNU tool chain, in parallel with ColdFire. If you manage to provide a modern and fast, and well documented 68k CPU, you will quickly find Linux running on it, as well as NetBSD.

I agree. Frank Wille is a NetBSD developer (Amiga/PPC ports) and expressed interest in a 68k version of Phoenix with MMU. The low memory footprint could make it useful for small servers. The Amiga and BSD are almost opposite ends of the spectrum as far as security so supporting Unix (and other high security OSs like Plan9) would attract a wider audiance.

Quote from: kolla;785220
For sake of compatibility for those who want hardware to run old m68k OSes (NeXTStep, Plan9, A\UX, MacOS...) I think compatibility with 68040 is favourable. It may be worthwhile to check with people over at http://www.nextcomputers.org/ if they would be interested.

There is little difference between the 68040 and 68060 MMU as already stated. The 68060 MMU has a few more restrictions. Most OSs abandoned the 68k before support for the 68060 MMU was added so a 68040 MMU interface would be more compatible. Adding support for an updated MMU would likely require more changes than from 68040 MMU to 68060 MMU. Maybe some kind of compatibility layer could be added in between to get old OSs working and to have a working system when enabling old support.
« Last Edit: February 23, 2015, 08:32:38 AM by matthey »
 

Offline kolla

Re: ADOOM on A600 running 22-35 FPS
« Reply #316 on: February 23, 2015, 03:50:27 PM »
i am asking around in various relevant communities, it would be nice if the http://www.apollo-core.com pages could say a little more about compatibility (68020 instructions) and about your MMU plans.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline biggunTopic starter

  • Sr. Member
  • ****
  • Join Date: Apr 2006
  • Posts: 397
    • Show only replies by biggun
    • http://www.greyhound-data.com/gunnar/
Re: ADOOM on A600 running 22-35 FPS
« Reply #317 on: February 23, 2015, 06:38:12 PM »
Quote from: kolla;785228
i am asking around in various relevant communities, it would be nice if the http://www.apollo-core.com pages could say a little more about compatibility (68020 instructions) and about your MMU plans.


when you say "communities" how many people are these roughly?
what hardware systems are they using exactly?

Offline ppcamiga1

Re: ADOOM on A600 running 22-35 FPS
« Reply #318 on: February 23, 2015, 07:18:58 PM »
Quote from: matthey;785132
ASICs are the cheapest option with high enough production quantity. Making a few thousand FPGA boards could cost $100,000-$200,000. For double that, maybe less with the right partners, you could be in the range of an ASIC that could lower per unit board costs by maybe 25%-50% and increase performance by several times. Add 1 GB of memory and you are delivering a full slice of Cherry Pi. It's risky but it is a better plan to add Amiga users than Hyperion ever had. I bet they spent millions on software development only to gain a few hundred Amiga users.

 In 2009 gunnar von boehn promised something like raspberry pi.

Wonderful NatAmi with cpu faster than g4 and graphics better than ps3,  for 100 euros only.

Even with the later change for graphics ps2 level only, it was a good plan.

if only NatAmi existed in reality, NatAmi would have had great success.  

Unfortunately in 2015, as in 2009, gunnar has nothing working and ready to sell.

kleinegun where is my natami?
 

Offline Oldsmobile_Mike

Re: ADOOM on A600 running 22-35 FPS
« Reply #319 on: February 23, 2015, 07:49:03 PM »
Quote from: ppcamiga1;785238
kleinegun where is my natami?

Amiga 500: 2MB Chip|16MB Fast|30MHz 68030+68882|3.9|Indivision ECS|GVP A500HD+|Mechware card reader + 8GB CF|Cocolino|SCSI DVD-RAM
Amiga 2000: 2MB Chip|136MB Fast|50MHz 68060|3.9|Indivision ECS + GVP Spectrum|Mechware card reader + 8GB CF|AD516|X-Surf 100|RapidRoad|Cocolino|SCSI CD-RW
 Amiga videos and other misc. stuff at https://www.youtube.com/CompTechMike/videos
 

Offline Lurch

  • Lifetime Member
  • Hero Member
  • *****
  • Join Date: Dec 2003
  • Posts: 1716
    • Show only replies by Lurch
Re: ADOOM on A600 running 22-35 FPS
« Reply #320 on: February 24, 2015, 04:22:49 AM »
Quote from: matthey;785222
This would not be a good idea in general because Phoenix has the 64 bit integer MUL*.L and DIV*.


Interesting as I have tried a few demos that will not run without an 060 and wont continue and will produce an error asking for an 060.

Will hold on to my 060 for now if there is no work around. Which is a shame as the 020 core could be a lot faster than my 80MHz 060.
-=[LurcH]=-
A500 Plus Black 030@40MHz 128MB | A1200T 060@80MHz 320MB | Pegasos II G4@1GHz 1GB  | Amiga Future Sub
 

Offline kolla

Re: ADOOM on A600 running 22-35 FPS
« Reply #321 on: February 24, 2015, 04:58:14 AM »
Quote from: biggun;785235
when you say "communities" how many people are these roughly?
what hardware systems are they using exactly?


I need to do counting too?

Well, there's Amiga and Atari peeps obviously, running you know what. There's the NeXTStep die hards using NeXTStation and Cubes, there's people who enjoy firing up unixen for old (*gasp*) Apollo computers, there are people keeping their old macs alive for A\UX and ditto for old SunOS. Then are there people like me who happily run Linux and *BSD on anything that has a capable m68k inside, from old Macs, Amigas, Ataris, Motorola VME boards... anything. How many all these add up to? No idea, but certainly way lot more than Amiga folks alone.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline kolla

Re: ADOOM on A600 running 22-35 FPS
« Reply #322 on: February 24, 2015, 05:10:26 AM »
The first answers at NeXT forum is that compatibility with 68030/882 or a full 68040 is needed, which is pretty much what I expected. Also the rumour was that apollo core is mostly vapourware, only 68000 capable, and that among all the 68k cores, the TG68 is the most preferable anyhow :) I can understand the centiment, how can one trust people with only background in Amiga to do a capable 68k MMU for example. I would say the Apollo team could benefit greatly by pulling in people from other plattforms to chime in, especially Atari people are easily available.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline biggunTopic starter

  • Sr. Member
  • ****
  • Join Date: Apr 2006
  • Posts: 397
    • Show only replies by biggun
    • http://www.greyhound-data.com/gunnar/
Re: ADOOM on A600 running 22-35 FPS
« Reply #323 on: February 24, 2015, 06:24:09 AM »
Quote from: kolla;785288
I need to do counting too?

Well, there's Amiga and Atari peeps obviously, running you know what. There's the NeXTStep die hards using NeXTStation and Cubes, there's people who enjoy firing up unixen for old (*gasp*) Apollo computers, there are people keeping their old macs alive for A\UX and ditto for old SunOS. Then are there people like me who happily run Linux and *BSD on anything that has a capable m68k inside, from old Macs, Amigas, Ataris, Motorola VME boards... anything. How many all these add up to? No idea, but certainly way lot more than Amiga folks alone.


The question was how many people use what computer system.
If you have 1000 people using an A1200 and wanting to upgrade then it can make sense to design a new accelerator card for them.

If you have 40 people using system A, 30 people using system B, 50 people using symtem C, 60 people using system D .... and so on ... then you might in total have many people but   -  but the number of different upgrade cards to design would kill you.

Can you give me a feeling how many people and how many cards you talk about?

Offline biggunTopic starter

  • Sr. Member
  • ****
  • Join Date: Apr 2006
  • Posts: 397
    • Show only replies by biggun
    • http://www.greyhound-data.com/gunnar/
Re: ADOOM on A600 running 22-35 FPS
« Reply #324 on: February 24, 2015, 06:42:12 AM »
Kolla,

You have to see we test every card with a real system,
If got an A1000, two A2000, an A4000, three A500, two A300/A600, two A1200, a CD32 here to be able to test the Core and bus controllers on different systems.
And the above is only my test setup - the others in the team also have many systems to test.

There is a logical limitations how many more tests system I can setup before my beloved wife will kick me.

For the Linux fans how much sense would it make to hold out for the upcoming  stand alone system?

guest11527

  • Guest
Re: ADOOM on A600 running 22-35 FPS
« Reply #325 on: February 24, 2015, 06:55:16 AM »
Quote from: matthey;785212
The MMU is one of the areas we need to talk about and work out. Gunnar's MMU is very simple and incompatible with the 68k MMU in the 68030-68060. The 68030 MMU is very flexible and has some interesting ideas but is far from modern MMUs. The 68040 and 68060 MMUs are similar and very capable but the page sizes only go up to 8kB which is small and not optimum for modern large memory sizes.  
We are not talking about modern applications here. We are talking about Amiga applications. Still, the page size for the intels is 4K, with optional huge page support. The 68030 design could offer that out of the box ("early termination descriptors").  
Quote from: matthey;785212
Enlarging the page sizes would break compatibility with the 68040 and 68060 MMU  
Compatibility with *what*? Programs that hack on the MMU should go anyhow. As far as other Oses are concerned, I cannot tell you what they do, but one way or another, the core requires some software support in first place, in the same way the 68060 required software support. As far as the mmu.lib is concerned, every page size works. (Provided it is a power of two). Still, 4K pages are - for Amiga - really not too bad.  In the end, I would probably not go for a complete 68060 MMU in first place, but rather emulate parts of its functionality in software in the same way the 68060 emulates parts of the chip in software. Thus, I would probably only have the ATC logic on chip, and would do the table-walk in software (i.e. that part that collects the descriptor from RAM). Such a construction could emulate any MMU from 68851 to 68060 with a bit of software support.  
Quote from: matthey;785212
ThoR or Gunnar could probably give more details as the MMU is not my strong point. The 68060 MMU allows virtualization (virtual addresses and physical to virtual translation) which is a great modern feature but it has a cost.  
That is an elementary feature that goes for all MMUs right away.  
Quote from: matthey;785212
All cached addresses which may have a virtual address need to be flushed on context switches which has overhead. The 68060 may require this already with it's branch cache.  
No, that's rather a matter of whether the cache is addressed by physical or logical addresses. If it is addressed by physical addresses, context switches are free. Only the relatively slow 68030 and 68020 caches were logically indexed, everything above that was physically indexed, and hence, context switches do not require a cache flush on these processors.  
Quote from: matthey;785212
Memory performance can degrade with many page misses from accessing memory in a dispersed or random way. More hardware can make up for this problem but at a cost. The CPU pipeline can increase by 1 stage depending on how the MMU is designed also.  
The major problem with a MMU is really the enlarged pipeline, which limits throughput.    
Quote from: matthey;785212
Gunnar and Jens know the best way to make a modern MMU and ThoR could help with the design. Gunnar is resistent to a more advanced MMU with virtual addresses in an FPGA because of the cost of performance and because the Amiga doesn't need it. The overhead of such an MMU as a percentage of performance is much smaller in an ASIC and the advantages for an open platform 68k board which would support multiple OSs is more compelling.  
Jens is making good hardware designs, but I don't believe he has the knowledge in CPU design. Gunnar has, I can certainly give a broad design of a MMU that is powerful enough to emulate everything with proper software support, and design the system software for that. But whether such a design is performing well and worth implementing in an FPGA is really something only Gunnar can answer.  
Quote from: matthey;785212
This still leaves the question of how compatible an updated and modernized 68k MMU could be.
See above. I have a small design in my back-head somewhere that is a software-driven MMU capable enough to emulate the 68851 up to the 68060. But, as the 68060, it requires an additional support library.    
Quote from: matthey;785212
 Some changes to existing 68060 MMU support in the OSs which support the 68k would be necessary for optimal performance at least and maybe even to be usable. Personally, I think an MMU which supports virtual addresses is an important modern feature which would be important if competing against the Raspberry Pi with an ASIC.
Actually, a MMU that does not distinguish logical and physical addressing is hardly ever an MMU.      
Quote from: matthey;785212
 Embedded applications use memory protection more and more all the time but I expect the extra performance to be more important than virtual addressing.
All the nice features like kickstart remapping, zero-page remapping or MuRedox require a logical addressing that is different from physical addressing. You could hard-code such cases in the FPGA, but how ugly a design is that? It would be "Amiga only". It's not the type of design I would call "elegant" or "future proof" (for whatever "future" and "Amiga" could mean together, but hey, if you design something as an engineer, you want to make it right, ok?)
 

Offline biggunTopic starter

  • Sr. Member
  • ****
  • Join Date: Apr 2006
  • Posts: 397
    • Show only replies by biggun
    • http://www.greyhound-data.com/gunnar/
Re: ADOOM on A600 running 22-35 FPS
« Reply #326 on: February 24, 2015, 07:22:01 AM »
Quote from: Thomas Richter;785292
All the nice features like kickstart remapping, zero-page remapping or MuRedox require a logical addressing that is different from physical addressing. You could hard-code such cases in the FPGA,


Good examples.

You can solve this in different ways.
It really depends on what feature you focus on.

For example:
1) You could have a very simple flat design where the whole memory is mapped in 4K pages.

2) You could have a hirarchical design with for example 512 KB size top level entries, and below 4 sub level entries.

3) You could implement this not with an MMU map but with a number of programmable mapping registers. Just like the EC chips did have them. You could make those register really flexible to allow programming of mapping or snooping of any size.  For example you could say I have here at $54321 and memory array of size 11 bytes  I want to snoop any access to it.


Option 3) is very useful for programming, testing and debugging.
I use this feature in Phoenix regularly.

For a general purpose Unix  compatible MMU design option 2 will be better than option 1.
But again there are many detail questions. How many ERATs / Cache entries are needed to be able to run bigger unix programs really well?

The old 68K MMU have in my humble opinion only enough cache entries to run programs of their time. The could ran well typical 90th application - but for todays staandards I would increase the number of cache entries.

Offline skolman

  • Full Member
  • ***
  • Join Date: Oct 2007
  • Posts: 106
    • Show only replies by skolman
    • http://stagevu.com/user/skolman_mws
Re: ADOOM on A600 running 22-35 FPS
« Reply #327 on: February 24, 2015, 07:23:51 AM »
A1200 BlizzardPPC BVision Lan/WiFi FastATA Gold,
EFIKA 5K2 R9250 MorphOS +Amiga Workbench
https://youtu.be/mjsGVkDjBOc
 

guest11527

  • Guest
Re: ADOOM on A600 running 22-35 FPS
« Reply #328 on: February 24, 2015, 07:37:06 AM »
Quote from: biggun;785293
2) You could have a hirarchical design with for example 512 KB size top level entries, and below 4 sub level entries.
I wouldn't go for a hierarchy, it's all complicating matters. A flat page table within which the MMU finds entries by trying several hash algorithms to find a suitable table entry would be entirely sufficient. Everything else, like filling the page table, or replacing descriptors in the page, can be done entirely in software. This software can do the table walk and emulate whatever 68K MMU there is.

But no matter what - that's not the problem at this point. The problem at this point is making a hobby project a product. This requires a vendor, and a salesmen, and some funding. I cannot deliver any of this.  
Quote from: biggun;785293
The old 68K MMU have in my humble opinion only enough cache entries to run programs of their time. The could ran well typical 90th application - but for todays staandards I would increase the number of cache entries.

I don't have a problem with a larger ATC, but that's all not the problem. Actually, it only has to run programs of its time - isn't that its primary use? But see above - first things first.
 

Offline ppcamiga1

Re: ADOOM on A600 running 22-35 FPS
« Reply #329 on: February 24, 2015, 08:09:21 AM »
if this crap natami have to be useful for anything other than amiga os, it must have MMU.

This MMU does not have to be existing 68k MMU compatible, of course.

kleine-gun where is my natami?