![]() |
![]() |
#201 |
Registered User
Join Date: Oct 2012
Location: Surrey
Posts: 390
|
Hey guys please let's not start giving personal preferences or wishes again.
Instead support Majsta in his quest. |
![]() |
![]() |
#202 |
Registered User
Join Date: Nov 2012
Location: Northampton
Posts: 25
|
14 mips on a A600 - absolutely incredible
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Well done sir ![]() @majsta - if you don't mind me saying so, this is totally your quest so if you heart has got you this far on a A600 project, if it was me I would see it through to conclusion rather than taking on other projects. Plenty of times for those if you then wish later on? If you could keep the mips higher that would be amazing; I could see SCUMM ECS as an immediate application open with more power available. I'll finish my post with this ![]() |
![]() |
![]() |
#203 |
Posts: n/a
|
Impressive work!
![]() Can't wait to see your next results! ![]() |
![]() |
#204 |
Registered User
Join Date: Nov 2012
Location: Northampton
Posts: 25
|
@majsta - take you time and enjoy the ride - we'll enjoy reading about it
![]() |
![]() |
![]() |
#205 | |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,574
|
Quote:
SysInfo speed benchmark is totally stupid, any CPU that can execute multiple instructions (68060) at the same time will get too slow results because code is extremely stupid. Also it uses very long instruction sequences and no loops like normal real world code has which makes caches (at least small 68020/030 caches) mostly useless. Yes, it does test CPU speed but it does not test real world CPU speed. Code:
<snip> 14077F90 4840 SWAP.W D0 14077F92 c141 EXG.L D0,D1 14077F94 4281 CLR.L D1 14077F96 4480 NEG.L D0 14077F98 d080 ADD.L D0,D0 14077F9A d080 ADD.L D0,D0 14077F9C d080 ADD.L D0,D0 14077F9E d080 ADD.L D0,D0 14077FA0 0680 0000 3039 ADD.L #$00003039,D0 14077FA6 0480 0000 3039 SUB.L #$00003039,D0 14077FAC 207c 1407 9250 MOVEA.L #$14079250,A0 14077FB2 2028 0004 MOVE.L (A0, $0004) == $14079254,D0 14077FB6 2028 0008 MOVE.L (A0, $0008) == $14079258,D0 14077FBA 2028 000c MOVE.L (A0, $000c) == $1407925c,D0 </snip> |
|
![]() |
![]() |
#206 |
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
@Loedown You are missing one importan thing regarding PPC and BGA. Emulating PPC in FPGA would require FPGA with lot of LE and only FPGA's capable of emulating complex designs with lot's of LE are also in BGA actually FBGA or UFBGA so
![]() @all yes many projects for Amiga were canceled because community constantly demanded some changes or upgrades but here we are beyond that because on same hardware design we could add later something we want. It is enough to properly connect all FPGA unused pins to some header and on that header we can add hardware part. That is the reason why I created 2 headers who are compatible with almost all cheap arduino addition boards. So if you check about arduino project you will notice that simple wireless adapters or usb are few USD so that way we will never have expensive Amiga hardware. So what I m trying to do is to stop exploiting Amiga scene where people give bunch of money for 1 mega memory. Complete goal is to have fastest Amiga accelerator for A600 for smallest possible price and I have managed to remove some parts in the design to reduce manufacturing costs and drop price to 90Euro. What is most important here that if you don't like the price you can try to build it yourself because you will have all documents needed when time comes. |
![]() |
![]() |
#207 | |
Precious & fragile things
Join Date: Feb 2009
Location: Victoria, Australia
Posts: 1,946
|
Quote:
Is it then possible to use several of your FPGA in parallel to do complex emulation? I am genuinely not trying to hijack the thread but I am also interested in future-proofing your solution. |
|
![]() |
![]() |
#208 |
www.majsta.com
Join Date: Jun 2010
Location: Banjaluka/Republic of Srpska
Age: 43
Posts: 448
|
It could be done to connect several FPGA actually it is easy task. For example to use one just for cache but there is no point doing that now at this conditions. Design to achieve those last performance i presented takes about 6000LE and could be dropped more with code optimizations so using larger FPGA is not an option because simply there is no need for that. For example complete Amiga recreation code can take about 20 000LE and those days we have FPGA capable of more than 100 000LE.
|
![]() |
![]() |
#209 | ||
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Quote:
I agree with your other points and nice work on the performance. I hope you find the memory problem. Quote:
![]() Some modern processors would have a bigger problem but the 68060 sometimes handles multiple consecutive instructions using the same register by using early instruction completion and register forwarding when the results are longword. There usually is a change/use delay when loading an address register (or scale register) and using it right away (none in this case for 060) but the same applies to the 68040 (which has bigger penalties). The 68060 can only do SWAP and EXG in the pOEP (primary integer unit) so they aren't 2x as fast. They should have put SWAP in both OEP considering the 68k does not have a shift >8 and the result can be forwarded. Last edited by matthey; 16 June 2013 at 17:58. |
||
![]() |
![]() |
#210 |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Great for basic one-instruction-per-cycle pipelining, but not superscalar. You can't execute two instructions at once if they use the same register, or you would have to forward the result back in time!
|
![]() |
![]() |
#211 | |
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Quote:
![]() Last edited by matthey; 16 June 2013 at 17:52. |
|
![]() |
![]() |
#212 | |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Quote:
Well there are instances, I suppose, where two instructions could be replaced by one. For instance the above code where Add D0,D0; Add D0,D0 can be replaced by Lsl #2,D0. I believe people do write such things in real code because on a 68000 it is faster than the equivalent shift. But you'd have to be some kind of maniac to design a CPU to do that when a programmer/compiler could just avoid doing such tricks. Also if the second instruction is a Move, well the result of the first instruction is going to get trashed anyway so the CPU could just not even bother doing it. But that would also be a crazy thing for the programmer to do. *Until they invent practical quantum computers |
|
![]() |
![]() |
#213 |
Registered User
Join Date: Jun 2013
Location: Erimang
Posts: 45
|
If the FPGA is enough for a complete Amiga. One could implement AGA inside it and stream the output to the main computer bus to be displayed by the original graphics
![]() |
![]() |
![]() |
#214 | |
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Quote:
Code:
moveq #9,d0 ;pOEP cycle 1, EA calc-> add.l d0,d0 ;sOEP cycle 1, ->ALU execute ![]() Last edited by matthey; 16 June 2013 at 18:21. |
|
![]() |
![]() |
#215 | |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Quote:
lea (D0,A0),A0 add.l D0,A0 and the result of the first would be available for the second, but a standard integer ADD instruction being executed by the Address Generation stage is something I never heard of. Of course this pair is trivial since the #9 is available immediately in any case, without the ALU having to do anything to it. Although why you wouldn't just moveq #18 I can't imagine. |
|
![]() |
![]() |
#216 | |
Registered User
Join Date: Oct 2009
Location: Salem, OR
Posts: 1,770
|
Quote:
But the nice thing about designing an FPGA solution is that FPGAs are getting more powerful and less expensive over time.. Not so with the actual 060's. (At least the ones that are compatible with the Amiga) It's just a matter of time.. ;-) desiv |
|
![]() |
![]() |
#217 |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
TG68 is a pretty basic 68000 implementation from what I gather (I don't say that to do it down any, it's still a great achievement). A fully pipelined implementation, even without such luxuries as superscalar execution, could do very well. If we got even half of a 68060's instructions per clock, at 80MHz, it would be worth doing. Especially since memory access could be that much faster, caches that much bigger etc..
|
![]() |
![]() |
#218 |
Registered User
Join Date: Sep 2006
Location: Thunder Bay, Canada
Posts: 4,323
|
I think with the reduced availability of the older processers then the time is right for the FGPA's to take over. With the constant increase in the performance of these things then quite literally the speed capabilities of future upgrades for the Amiga/Atari is looking very bright .
Hats off to Majsta for sticking it out all this time, i know there were times when he felt as though it was too tough to continue. |
![]() |
![]() |
#219 |
Registered User
Join Date: Sep 2009
Location: San Antonio, TX USA
Age: 50
Posts: 1,185
|
|
![]() |
![]() |
#220 |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Yeah I don't understand how anyone can have anything negative to say about this project.
Whether it can ever match a 68060 or not, people are still buying 68030 and even 68020 accelerators, anyway 10-20x speed-up for an A600 with a completely home-made card is impressive. I'd like to see some real software running on it though, would be a better demo than a synthetic benchmark. 14.35 MIPS is a triumph, 177,000 MIPS is a statistic. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Vampire 600 and floppy issues | Firestone | support.Hardware | 15 | 22 March 2017 18:11 |
Vampire 600 more cores.. | Turran | support.Hardware | 48 | 14 January 2015 17:39 |
Vampire 600 wierd issues | Retro | support.Other | 4 | 05 September 2014 22:36 |
Vampire 600 troubles | Viserion | support.Hardware | 21 | 10 December 2013 20:28 |
WTB: Amiga 600 Accelerator | Gordon | MarketPlace | 4 | 21 February 2009 16:06 |
|
|