10 February 2015, 19:25 | #61 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,432
|
Ask the team I am sure they would like to explain it if you ask. They have been planning / thinking / experimenting about this for many years. I am sure they are very chatty.
In the FPGA all instructions could potentially be single cycle whereas they take many cycles in the original silicon but that doesn't explain Pheonix's speed because TG68k will have also done this. FAST-RAM memory performance with a good SDRAM controller could be incredible compared to old accelerators. But again the older Vampire core with TG68k.C core could also have had this. The speed will probably be coming from advanced processor technologies not used at the time of the 680x0 series (maybe a little in the 680x0) such as pipelining, caches, prefetch and branch prediction? If it has a cache or pipeline stages I imagine they could use write-back to minimize stalls and to help 68000 compatibility. These are just "buzzwords" to me, I don't really implement any of them in my part of embedded processor design. I design ULP (ultra-low-power) and they are usually old-skool 8-bit micros clocked around 1MHz or lower which sleep most of the time But I know that one of our guys do. |
10 February 2015, 20:31 | #62 | ||
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Quote:
Otherwise, the 68060 lacks the longword multiplies and divides. I could live without an FPU. I could also live without 68060-specific demos not working. Demos only really exist to prove what a very specific set of hardware is capable of, so there is not really much point running them on anything else anyway. Quote:
Oh all of these things were used long before the time of the 680x0 series. It's all trickled down from the supercomputers of the 1950s. They just couldn't fit it onto a chip or into the consumer price bracket until much later. |
||
10 February 2015, 22:32 | #63 | |
Join Date: Jul 2008
Location: Sweden
Posts: 2,269
|
Quote:
AmigaOS itself employs self-modifying code all the time. Loading and running a program from disk f.ex, involves self-modifying code. |
|
10 February 2015, 23:10 | #64 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,432
|
|
10 February 2015, 23:25 | #65 | ||
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Quote:
Also what if there is multitasking, or interrupts? The cache might not always behave in an entirely deterministic way in these cases. Quote:
|
||
11 February 2015, 02:31 | #66 |
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Phoenix is faster than the TG68 mostly because it has a deeper pipeline but also because of an overall more advanced design and better optimization in the fpga.
Some new versions of Phoenix now support all 68020 addressing modes, 64 bit integer MUL/DIV and some bit field instructions. Somehow they squeezed the majority of 68020 support in a Cyclone II. Phoenix uses writethrough caching and a bus sniffer so the core is very tolerant of self-modifying code. It is more tolerant than the 68040 and 68060 and doesn't need manual cache clearing or flushing. The 68040 and 68060 added very little of what could be considered integer instructions. MOVE16 could be considered an integer instruction or specialized co-processor instruction. I have never seen a compiler generate a MOVE16 and it is not commonly used. Most other instructions are either not used on the Amiga or are MMU or FPU instructions. For the most part on the Amiga, the integer 68020 ISA = integer 68030 ISA = integer 68040 ISA = integer 68060 ISA (which uses some traps/emulation for compatibility). Pheonix has the 64 bit MUL/DIV instructions in hardware unlike the 68060. They are used on the Amiga providing a big benefit in a few cases where they are used (picture.datatype, utility.library, ffmpeg, etc.). |
11 February 2015, 03:11 | #67 | |
Registered User
Join Date: Sep 2006
Location: Thunder Bay, Canada
Posts: 4,323
|
Quote:
the core is pretty well full. Gunnar keeps saying its full and people keep getting him to add more |
|
11 February 2015, 05:28 | #68 |
Registered User
Join Date: Sep 2007
Location: Melbourne/Australia
Posts: 4,406
|
We'll need a bigger FPGA for the A1200 version!
|
11 February 2015, 15:06 | #69 |
Registered User
Join Date: Apr 2012
Location: Canada
Age: 44
Posts: 910
|
|
11 February 2015, 18:08 | #70 | |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,432
|
Quote:
I am not familiar with Altera FPGA's but with Xilinx, the smallest RTL change can result in a more optimised layout with less routing giving more resources for functions. It may sound strange for hardware but coding style can have a big effect on FPGA utilisation. ASIC coding style is not always optimal for FPGA. We have options to remove resets from registers in data-pipelines. Write inferred RAMs in such a way you can infer block-ram or distributed-ram. Writing good constraints can also pay off. Timing-ignore added to the reset can often (for Xilinx) have a huge effect. I doubt you have many clocks in Pheonix but using a fast clock and clock-enable instead of two different frequency clocks can make a design previously un-routable work with only minutes of work as the tool stops trying to solve hold violations. Our new FPGA board being made now will have four XCVU440 and people here will still complain it is too small |
|
11 February 2015, 19:21 | #71 |
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
The Cyclone V will be easier to fit including better 68020 support and enhancements, has a faster clock speed (~20% faster as I recall), has space for more superscalar execution including another integer unit and possibly FPU, has more memory blocks for several times larger cache than the 68060 instead of 1/2, has a built in memory controller saving some logic, etc. It should make a big difference and allow Phoenix to finally surpass even an over-clocked Rev 6 68060.
It is unlikely that there will ever be support for a 6888x FPU which is too slow to bother with. The Cyclone V should have room for some of a 68060 compatible FPU implementation. This may be most of a 68060 FPU if Gunnar can squeeze the logic down like he has in the Cyclone II. |
11 February 2015, 19:29 | #72 |
Registered User
Join Date: Feb 2010
Location: Espoo / Finland
Posts: 820
|
|
11 February 2015, 23:07 | #73 | ||||
Join Date: Jul 2008
Location: Sweden
Posts: 2,269
|
Quote:
Quote:
Quote:
Quote:
Saying that SMC doesn't work on 680x0 or that it's something uncertain or unreliable is not true, the programmer just has to understand how the caches work. |
||||
11 February 2015, 23:46 | #74 | ||
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Quote:
Quote:
A lot of trouble has been caused by people writing self-modifying code on 68000 which doesn't have any caches, and of course it works fine on that every time. I don't suppose they imagined a cache might happen in the future. ok if it's a demo, you want to get the absolute maximum out of a particular CPU and if it doesn't work on another one it doesn't really matter, it's just a demo. Last edited by Mrs Beanbag; 11 February 2015 at 23:54. |
||
15 February 2015, 23:29 | #75 |
Registered User
Join Date: Sep 2006
Location: Thunder Bay, Canada
Posts: 4,323
|
Here is an update of the work in progress.
|
15 February 2015, 23:46 | #76 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,432
|
That looks less than other screenshots I've seen where it was around 80 MIPS?
Presumably increased compatibility has reduced peak performance? |
15 February 2015, 23:48 | #77 |
Registered User
Join Date: Sep 2006
Location: Thunder Bay, Canada
Posts: 4,323
|
this is 68020 and not 68000. pretty well full functionality with a couple of changes needed to the lib
|
16 February 2015, 06:53 | #78 |
Registered User
Join Date: Dec 2013
Location: Sweden
Posts: 53
|
Tis makes me want a vampire for my a600 :-)
|
17 February 2015, 08:21 | #79 | |
Registered User
Join Date: Dec 2013
Location: italy
Posts: 51
|
Quote:
Gunnar removed some features like Branch Predictions and Linstack to free space in the FPGA to improve the 68020/040/060 compatibility. He is looking for the better compromise between speed and compatibility. But not all the speed is lost. We obtained 60 mips with a 83 mhz core, but we can go up to 90mhz ! |
|
17 February 2015, 08:56 | #80 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,432
|
What is a LINstack? Is that like GDB?
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
A600 + Vampire + Phoenix-CPU = running texture demo | Gunnar | Amiga scene | 27 | 02 September 2014 20:59 |
Is your Fastmem/Vampire board popping off your a600 CPU | kipper2k | Hardware mods | 9 | 05 June 2014 15:44 |
MP3@64 in a A600? | pertinax | support.Hardware | 7 | 14 April 2008 22:19 |
Amiga program to Read MP3 Files ? | Rich M | Amiga scene | 16 | 09 January 2005 14:17 |
Amiga playing AVI, MP3 Files etc | technium | support.Apps | 5 | 03 October 2004 23:46 |
|
|