Apollo Accelerators

Apollo Accelerators Discussion Forum
» » »
[Post Reply] [*]  Page 1 of 1  [ 7 posts ]
Author Message
flype
Post subject: CPUMon080 Posted: Mon 21 Nov 2016 01:58
Offline
User avatar
Posts: 41
Joined: Sat 19 Nov 2016 13:58
I'm pleased to present you a tool i'm working on - that make uses of the CPU internal stats counters.

CPUMon080 is a graphical CPU Monitor for the AC68080 that shows in realtime valuable informations of the internal CPU activity.

It requires a GOLD2+ core

and it is currentely developped using a GOLD2 alpha core.

It can shows how many MIPS are currentely in use (literally how many million of instructions really executed in a given interval). This can't be compared to classical CPU Load existing tools. One of the coolest feature is the ability to show the Pipe 1 and Pipe 2 usage. Also, coders have an interesting visibility on the Branches prediction efficiency, Cache hits efficiency, the amount of R/W on mem, and stalls. This informations gives hints on about how to optimize a program (with some knowledges) - but mainly it is *fun* to use even as end-users :mrgreen:

I wanted to have a minimal impact on the general performances while not sacrifying the look and feel, so CPUMon is coded 100% in ASM. It use very few CPU ressources for what it does. It is small, 4KB, about 800 lines of code - quite simple code, mainly calling CPU counters, computing some valuable informations, and using the Graphics.library for the rendering (Move, Text, Draw, SetAPen, PolyLine, ...).

This is early work and i'm still digging into AmigaOS API to improve it as i wish (i need to dig into window border sizes, iconifying, font sizing and such). Also i plan to add some more informations such as the IPC (Instruction Per Cycle), the % of usage of the pipe 2, Peak values to remember max scores. Also, i would like to add selectable different timing resolutions (some levels between 'faster refresh but less accurate' and 'slower but more accurate' (1/10 sec, 1/5 sec, 1/2 sec, 1 sec). And a toggable File logger. Also, i will put the sources on github when i'm happy with current code to invit more skilled coders to improve it.

[ img ]

Videos :

https://www.youtube.com/watch?v=jO0_SkHogrI&

https://www.youtube.com/watch?v=ees1PExo4PA


Last edited by flype on Tue 22 Nov 2016 15:25, edited 2 times in total.

_________________

Amiga 600 + 2MB ChipRAM + V600 V2-128 + PCMCIA LinkSys Wifi card.
Amiga 1200 + Blizzard 030 IV + 256MB FastRAM 50ns.
-
68k rulez!


Top
[Profile] [Quote]
flype
Post subject: Re: CPUMon080 Posted: Mon 21 Nov 2016 09:44
Offline
User avatar
Posts: 41
Joined: Sat 19 Nov 2016 13:58
Some progress :

- Added IPC (Instruction Per Cycle/Clock) :
( ( MIPS_in_Pipe1 + MIPS_in_Pipe2 ) / Freq_in_MHz )
- Added SuperScalar (efficiency of superscalar code) :
( ( Min( MIPS_in_Pipe1, MIPS_in_Pipe2 ) * 200 ) / ( MIPS_in_Pipe1 + MIPS_in_Pipe2 ) )
- Added Data-Cache Hit (Percent of Memory Reads from Data-Cache) :
( ( Data_Cache_Hits * 100 ) / ( Data_Cache_Hits + Data_Cache_Misses ) )

- Added Branch-Prediction (Percent of branches correctely predicted) :
( ( Bra_Corrects * 100 ) / ( Bra_Corrects + Bra_Wrongs ) )

- Added Stall-Total (Sum of stalls counters) :
( Stall_Reg + Stall_Cache + Stall_Hazard + Stall_Buffer )
- Added CPU CACR and PCR state
- Added Board Serial Number
- Added Core Revision string
- Added selectable size (small, intermediates, large) - using hotkey
- Added pause/idle state - using hotkey
- Added WBStart (start from icon or CLI)
- Improved design

[ img ]

Roadmap / TODO :

- Add Report / Logging to file (start/stop using hotkey)
- Add Iconify / Run in background
- Improve low depth rendering (when run in PAL 4 to 32 colors)
- Improve Default user preferences (Window Borders / Font Sizes)
- Refresh CACR/PCR Flags at runtime

_________________

Amiga 600 + 2MB ChipRAM + V600 V2-128 + PCMCIA LinkSys Wifi card.
Amiga 1200 + Blizzard 030 IV + 256MB FastRAM 50ns.
-
68k rulez!


Top
[Profile] [Quote]
guibrush
Post subject: Re: CPUMon080 Posted: Mon 21 Nov 2016 23:07
Offline
User avatar
Posts: 96
Joined: Sat 19 Nov 2016 14:12
Hi flype

Very nice one ! I have tried it, and it's look awesome !


Last edited by guibrush on Tue 22 Nov 2016 09:51, edited 1 time in total.

_________________

A600 V1.5, V600 V2, A604n, RTC, Indi ECS, 32Gb CF, PCMCIA Ethernet, HD floppy, TOM, HP Pavilion 23xi monitor
A500+V8A, V500+, Indi ECS, 32Gb CF, SD-net, SD floppy, Kipper 2Mb chip expansion, TOM, Eizo EV2450


Top
[Profile] [Quote]
TuKo
Post subject: Re: CPUMon080 Posted: Tue 22 Nov 2016 08:55
Offline
Administrateur du site
User avatar
Posts: 85
Joined: Thu 17 Nov 2016 23:29
Location: Switzerland
Contact: YouTube
That's indeed a very useful tool for developers !
It also looks stylish for users like me :)

_________________

A600, V600 V2, A604n+Indi+RTC, CF 32Gb, WiFi
A500+, V500 V2+, Kipper 1MB ChipRAM, CF 32GB, Indivision ECS, ESP8266, Plipbox
A4000D, CS MK2 68060@66MHz 128Mb, Indi MK2cr, CF 16Gb, CV64 4Mb, FastATA MK-VI, Ariadne II


Top
[Profile] [Quote]
flype
Post subject: Re: CPUMon080 Posted: Tue 22 Nov 2016 14:08
Offline
User avatar
Posts: 41
Joined: Sat 19 Nov 2016 13:58
Thank you guys, much appreciated.

Some progress related to adaptative GUI and Jauges :

- Window Border sizes and font size are used to calculate correct display.
- Better pen selection to make it looks good even in PAL (native) screen.
- Now use a own made jauge chunky array that i blit to the window using WriteChunkyPixels. That looks good i think.

[ img ]

_________________

Amiga 600 + 2MB ChipRAM + V600 V2-128 + PCMCIA LinkSys Wifi card.
Amiga 1200 + Blizzard 030 IV + 256MB FastRAM 50ns.
-
68k rulez!


Top
[Profile] [Quote]
guibrush
Post subject: Re: CPUMon080 Posted: Tue 22 Nov 2016 15:29
Offline
User avatar
Posts: 96
Joined: Sat 19 Nov 2016 14:12
Nice. Il like the black version very much, its give a modern look. How does the core revision string work ? The same way as the flash tool, or with a chech of the file in the vampire flash ?

_________________

A600 V1.5, V600 V2, A604n, RTC, Indi ECS, 32Gb CF, PCMCIA Ethernet, HD floppy, TOM, HP Pavilion 23xi monitor
A500+V8A, V500+, Indi ECS, 32Gb CF, SD-net, SD floppy, Kipper 2Mb chip expansion, TOM, Eizo EV2450


Top
[Profile] [Quote]
flype
Post subject: Re: CPUMon080 Posted: Wed 23 Nov 2016 10:44
Offline
User avatar
Posts: 41
Joined: Sat 19 Nov 2016 13:58
guibrush wrote:
Nice. Il like the black version very much, its give a modern look. How does the core revision string work ? The same way as the flash tool, or with a chech of the file in the vampire flash ?
It works exact same as ">VampireTool CORE".

_________________

Amiga 600 + 2MB ChipRAM + V600 V2-128 + PCMCIA LinkSys Wifi card.
Amiga 1200 + Blizzard 030 IV + 256MB FastRAM 50ns.
-
68k rulez!


Top
[Profile] [Quote]
Display: Sort by: Direction:
[Post Reply]  Page 1 of 1  [ 7 posts ] Return to “News and announcements”

Jump to: 

Who is online

Users browsing this forum: No registered users and 1 guest


» The team | Delete all board cookies | All times are UTC+02:00

cron