English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 16 July 2013, 09:59   #1
Scyphe
Classic Addict
 
Join Date: Jul 2013
Location: Halmstad / Sweden
Posts: 36
Manual CPU Frequency setting not working

I have a DCE Viper 1230 Mk-IV with 4MB Fast. It's a proper 68030 @ 42MHz (incl. MMU), FPU-slot for 68881/68882.

I figured I'd set up WinUAE to run as close to my A1200 with accelerator/ram card as possible.

I set CPU to 68030, enabled MMU, selected Cycle Exact so I could set a custom frequency for the 030, ie. 42MHz and all other settings, kickstart, more compatible etc. enabled (but FPU disabled since I haven't put an FPU in the socket yet). However, in WinUAE running SysInfo speed test or AIBB 6.5 the emulated A1200 with settings for my accelerator it gave ridiculously high scores, several hundred times faster than the A4000 with 040 which on my real A1200 is 2x faster than my machine.

Is it a bug/currently unsupported function? Can AIBB profiles/modules help in developing support for accelerator cards with custom frequencies to work properly?

/Scyphe
Scyphe is offline  
Old 16 July 2013, 11:35   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
This has been discussed here multiple times.

Only 68000 is accurate. 68020+ CPU speed is very approximate and only memory accesses are cycle exact (if enabled). Cycles taken by internal calculation(s) are not emulated.

Unfortunately 68020/030 documentation does not fully explain how internal (micro)operations works. 68000 was "easy" because same instruction always takes except same of time (internally), on 68020+ it depends on cache state, previous and next instruction.

Creating benchmark is simple, you "only" need to test how long some operation takes on CPU model x speed y and save it. Done. No need to know anything about CPU internals (except possibly cache size).
Toni Wilen is online now  
Old 17 July 2013, 06:27   #3
Scyphe
Classic Addict
 
Join Date: Jul 2013
Location: Halmstad / Sweden
Posts: 36
Okay. Pity though, it would be handy to get WinUAE to run in A1200/68030-mode at approximately the same speed as my physical A1200 with 68030-accelerator.

If there's any data I can provide (like a complete AIBB profile of my machine with my accelerator in the computer if it's possible to decode it) that would help in adding support for more accurate emulation of actual speed of the 68030 at X MHz I'd be happy to help. But since it's still "early days" on 030+ and MMU emulation for post-020 CPU's it's probably not high on the priority list at this time. There are 4-5 different cache-modes (data, burst etc.) which without proper documentation probably makes it very difficult to make 99.9% emulation of post-68k CPU's. A 68000 CPU is well known, well described and every command, how many ticks every possible instruction and process takes, using every second tick for internal work and the others for memory read/writes, tightly knit to the custom chipset and it's timing.

Besides, it's not a deal breaker or even close as far as I'm concerned, I was just a little surprised to note that using cycle exact setting + custom frequency on CPU doesn't work properly.

Thanks for the answer.
Scyphe is offline  
Old 17 July 2013, 09:46   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
Burst isn't a problem, it is easy to emulate

I have some ideas for 68020/030 emulation that emulates bus controller and sequencer simultaneous operation but it may not be more accurate because information in official documentation is not that good. It looks they wanted show lots of numbers only..

68030 documentation is a bit better ("tail" and "head" numbers) but then they decided to make cached/not cached average part of the value which makes them less useful

There is also one very important part in CPU emulation. Any commonly used instruction worst case excution speed must not be slower than real hardware. This "requirement" is the reason why 020/030 is really too fast.

Too slow = lots more gliches, lost frames etc..
Too fast = less problems.

Actually 68000 was not that well documented few years ago (unless you wanted to decode the microcode listing in patent which wasn't from final product), order of memory access cycles, prefetches, idle cycles etc.. was not documented but at least it was easy to found out because timing was always exact same. As long as memory had same speed.
Toni Wilen is online now  
Old 17 July 2013, 11:34   #5
Scyphe
Classic Addict
 
Join Date: Jul 2013
Location: Halmstad / Sweden
Posts: 36
Well, at least there were/are many MC68K books around, I've got one for instance, with timing settings etc. for every instruction. It's not Amiga-specific, it's purely about the MC68000's instruction set

Hmmm.. I don't know if it's possible to write some kind of program to run on a real Amiga with 020/030/040/060 and try all kinds of functions, transfers etc. and save the timings and behavior of registers as well as use a CIA-timer etc. as base-time to compare the CPU timing as well as all the data saved. For this to be fairly accurate it would require accelerators where you can jumper the frequency between 2-3 different frequencies to get different sets of data for different frequencies to compare. On the other hand I have no idea how 68K-emulation on a PC with variable hardware, performance etc. works (or even how to get the emulation to the point where they're cycle exact... in software).

It's way beyond my programming capabilities and I'm not sure it's possible or would help either. Just a thought though to get an idea of how 020+ behave at different frequencies.

Last edited by Scyphe; 17 July 2013 at 11:41.
Scyphe is offline  
Old 17 July 2013, 14:21   #6
amilo3438
Amiga 500 User
 
Join Date: Jun 2013
Location: EU
Posts: 1,511
Quote:
Originally Posted by Scyphe View Post
Hmmm.. I don't know if it's possible to write some kind of program to run on a real Amiga with 020/030/040/060 and try all kinds of functions, transfers etc. and save the timings and behavior of registers as well as use a CIA-timer etc. as base-time to compare the CPU timing as well as all the data saved.
Well, I was wondering almost the same.

I was wondering, is there maybe for Amiga computer somewhere existing something similar to Acid800 test suite found on Altira pages (link & quote):

http://www.virtualdub.org/altirra.html

-----------------------------------------------------------------------------------------------------
"Acid800 Test Suite

Acid800 is a test suite designed to stress 8-bit Atari emulators. It tests a wide variety of program-visible hardware behaviors and reports any deviations from actual hardware behavior, such as missing features or incorrect timing. Acid800 can be run either as a full suite or as standalone tests, with symbols and source included."
-----------------------------------------------------------------------------------------------------

Also, I love those Atari-8bit computers as seeing them as predecessor to Amiga computers, cause of same technical similarities found on both.

So, question would be: does there exist something similar like Acid800 test suite but this time for Amiga computers ?!
amilo3438 is offline  
Old 17 July 2013, 17:46   #7
Scyphe
Classic Addict
 
Join Date: Jul 2013
Location: Halmstad / Sweden
Posts: 36
If anybody would know of the existence of such a suite it's Toni. I doubt there is such a test suite though. Perhaps it's a missing tool for emulator programmers. But I wouldn't even dare guess what it would entail to create such a test suite for the much more complex 16/32-bit Amiga CPU's, various chipsets with different revisions of the various custom chips.

Last edited by Scyphe; 17 July 2013 at 18:00.
Scyphe is offline  
Old 17 July 2013, 17:53   #8
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,534
There is none. Also I'd say there are none who knows everything about Amiga internals. (Not even original designers would have known all side-effects)
Toni Wilen is online now  
Old 17 July 2013, 18:07   #9
Scyphe
Classic Addict
 
Join Date: Jul 2013
Location: Halmstad / Sweden
Posts: 36
I suppose when time permits and the schedule of things to do is ticked off one by one there may come a time when more research and testing of more accurate 020+ and MMU/FPU emulation may happen.
Scyphe is offline  
Old 17 July 2013, 18:33   #10
amilo3438
Amiga 500 User
 
Join Date: Jun 2013
Location: EU
Posts: 1,511
Quote:
Originally Posted by Scyphe View Post
I doubt there is such a test suite though. Perhaps it's a missing tool for emulator programmers. But I wouldn't even dare guess what it would entail to create such a test suite for the much more complex 16/32-bit Amiga CPU's, various chipsets with different revisions of the various custom chips.
For sure, Amiga is more complex machine ...
also, not quite sure, but believe that A800 test suite is just collection of small test programs that author of Altirra emulator made first for himself during years, and not at once. But now this tool is very useful to check how other A800 emulators behave. So its pity that something similar doesnt exist for Amiga also.

Last edited by amilo3438; 17 July 2013 at 18:39.
amilo3438 is offline  
Old 17 July 2013, 19:06   #11
Scyphe
Classic Addict
 
Join Date: Jul 2013
Location: Halmstad / Sweden
Posts: 36
Well, for now we have existing Amiga benchmark programs like SysInfo, AIBB, SystemSpeed etc. (which is where I noticed a huge discrepancy between WinUAE and my real Amiga 1200 with 68030-accelerator board). They're not much help though since they don't produce much else than relative speed compared to other systems. I suppose AIBB 6.5 with logging and making a complete profile of your current setup (for instance, removing the accelerator card, running a stock 1230), then replace the accelerator card and run it again with same settings. But who knows how to decode the modules and even then they're probably completely useless for this purpose since they simply seem to store system info + performance for each test done. At most these modules could be used when running AIBB 6.5 in WinUAE for comparison.
Scyphe is offline  
Old 19 July 2013, 12:00   #12
amilo3438
Amiga 500 User
 
Join Date: Jun 2013
Location: EU
Posts: 1,511
Does something similar exist for Amiga computers as for AtariST ... Atari Diagnostic Cartridge:

http://ataristeven.t15.org/images/di..._cartridge.png
http://www.hobby-electronique.com/in...d=15&Itemid=27


EDIT: (quick search findings)

So now found following:
http://bboah.claunia.com/amigaanalyzer.html
http://www.sgowdy.org/~gowdy/Amiga/A...4/REVIEW3.html
http://www.amiga.org/forums/showthread.php?t=25538


And also found this (quote): http://www.amigaforever.com/emulator/

"For example, Amiga Forever includes the Dialoga 2.0 ROM by Logica (a diagnostic system used by Amiga repair centers), and it can run the 68K version of AROS, as well as other 68K-based operating systems."

And this: http://www.amigawiki.org/lib/exe/fet..._manual_v1.pdf


So that some of Amiga diagnostic tools like Dialoga 2.0 ROM by Logica, not sure if there any other exist, should be already present inside of Amiga Forever package.

Last edited by amilo3438; 19 July 2013 at 13:38.
amilo3438 is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Anyone have any luck with using CPU for manual mode sprites? mc6809e Coders. Asm / Hardware 9 21 October 2015 10:56
Custom CPU and clock frequency MagerValp support.FS-UAE 4 10 April 2013 00:09
Which sound frequency setting is closest to original Amiga rsn8887 support.WinUAE 19 03 December 2011 19:36
CPU Frequency Leandro Jardim support.WinUAE 2 02 November 2011 22:18
Wanted: AmigaONE XE G3/G4 CPU module (broken or working) AlexP MarketPlace 0 12 October 2011 04:39

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 15:54.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.08158 seconds with 13 queries