|03 April 2016, 10:25||#1|
Apollo Test Team
Join Date: May 2014
SILVER3 core released for Vampire 600 V2
SILVER3 core has been released, along with latest SAGA Driver 0.8h !
Full changelog :
* Flag for BFTST fixed
* Super-Scalar improvements :
- Allow more instructions in 2nd pipe
- More 64Bit MMX instructions added
- PADD, PSUB, PMUL, ... (used by videoplayers like RIVA)
* Improved RESET behaviour (AROS)
* Improved SAGA video out (24Bit, 32Bit, YUV422)
* Clock-cycle register added
Download it :
Apollo team would be happy to get feedbacks from users using this new SILVER3 core. Be free to join #Apollo-Team IRC channel on Freenode to discuss it.
|03 April 2016, 14:01||#5|
Join Date: Dec 2014
Thank you for the news.
The APOLLO CPU in SILVER3 release contains some new intructions indeed.
They have been tested with success in the MPEG RiVA to save some FPS. Goal is to prove their usefullness and play MPEG videos in 640×480 @ 24fps. Work in progress. Of course, these new instructions can be used in other sort of applications, particularly in greedy routines.
Operation : Dz = ( Dy + Dx ) Can be used instead of : move.w Dy,Dz add.w Dx,Dz
Operation : Dz = ( Dy - Dx ) Can be used instead of : move.w Dy,Dz sub.w Dx,Dz
Operation : Dz = ( ( Dy * Dx ) >> 8 ) Can be used instead of : move.x Dx,Dz muls.w Dy,Dz asr.l #8,Dz It is ieee 8.8 multiplication.
Same as MOVE.L but in 64bits (Quad).
Permute bytes from Dx and Dy and save to Dz thanks to the sequence defined in $Selector.
Core now fully supports following pixel formats :
- 320x240x8/15/16/24/32/YUV - 640x480x8/15/16/24/32/YUV 8 = CLUT 15 = R5G5B5 16 = R5G6B5 24 = R8G8B8 32 = A8R8G8B8 YUV = Y4U2V2
It is a new read-only register, $DE0008.
We can read it (example: tst.l $DE0008), which reset its counter.
Then, we can read it again (example: move.l $DE0008,d0) so that d0 contains number of CPU cycles since last call.
This a unique feature, very handy to analyse code and hire for greedy routines and helps to optimize code and understand how APOLLO works.
For instance :
move.l #cafecafe,d1 tst.l $DE0008 divu.l #100,d1 move.l $DE0008,d0 ; d0 contains number of cycles consumed by the DIV instruction.
|Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)|
|Thread||Thread Starter||Forum||Replies||Last Post|
|Vampire II for the Amiga 600 FAQ's||kipper2k||support.Hardware||411||10 October 2016 15:44|
|First Amiga 600 FPGA Accelerator - Vampire 600||majsta||Hardware mods||736||18 July 2016 18:31|
|Vampire 600 more cores..||Turran||support.Hardware||48||14 January 2015 17:39|
|Vampire 600 troubles||Viserion||support.Hardware||21||10 December 2013 20:28|