Autor Wątek: Z80 profiler  (Przeczytany 41148 razy)

Dr Piotr

  • ***
  • Wiadomości: 196
Z80 profiler
« dnia: 2016.01.13, 00:18:39 »
Witam,
Nudzilem sie troche ostatnio i sklecilem sobie profiler dla z80 - sa moze chetni do przetestowania go?

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Z80 profiler
« Odpowiedź #1 dnia: 2016.01.13, 09:24:48 »
Chętnie.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Z80 profiler
« Odpowiedź #2 dnia: 2016.01.13, 11:04:06 »
A do czego to służy ?
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Z80 profiler
« Odpowiedź #3 dnia: 2016.01.13, 11:14:53 »
W dużym uproszczeniu profiler to narzędzie do analizy wykonania kodu, które pozwala ustalić które kawałki wykonują się nie dość optymalnie.

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Z80 profiler
« Odpowiedź #4 dnia: 2016.01.13, 12:51:05 »
Może bym i potestował.

A co dokładnie ten konkretny profiler robi?
« Ostatnia zmiana: 2016.01.13, 13:28:41 wysłana przez RafalM »

Dr Piotr

  • ***
  • Wiadomości: 196
Odp: Z80 profiler
« Odpowiedź #5 dnia: 2016.01.13, 15:39:43 »
Może bym i potestował.

A co dokładnie ten konkretny profiler robi?
Wciaga binarke z kodem z80 i ja wykonuje, wypisujac na koncu ile sumarycznie zajelo wykonanie kazdej instrukcji i funkcji.

tdu

  • *****
  • Wiadomości: 926
  • Miejsce pobytu:
    Gdansk
    • Nasze Wędrowanie
Odp: Z80 profiler
« Odpowiedź #6 dnia: 2016.01.13, 15:52:35 »
Ciekawe, to może ja spróbuje.
ZX81/ZX 48k/Zx48k+/ZX +2/ZX +2A/+3/TC2048/FDD3000/FDD5000/3"/3,5'/5,25'/Beta 48k Apina/D+/GP50s/DIVIDE CF/Masterface/Polbasic SamCoupe QL CPC6128/N100 MSX-SVI738  MSX2-VG8235

matofesi

  • *****
  • Wiadomości: 2048
  • Miejsce pobytu:
    Toruń/Poland
Odp: Z80 profiler
« Odpowiedź #7 dnia: 2016.01.13, 15:58:31 »
Ale jakąś tablicę symboli też bierze czy jedzie po czystej binarce? Profiluje ścieżki wykonania? I rozumiem, że podlicza tylko procesor nie symulując np. spectrumowej pamięci ekranu?

Dr Piotr

  • ***
  • Wiadomości: 196
Odp: Z80 profiler
« Odpowiedź #8 dnia: 2016.01.13, 16:38:23 »
Ale jakąś tablicę symboli też bierze czy jedzie po czystej binarce? Profiluje ścieżki wykonania? I rozumiem, że podlicza tylko procesor nie symulując np. spectrumowej pamięci ekranu?
Tablicy symboli jeszcze nie wciaga, na razie sam ja sobie generuje. Czasy wykonania przelicza dla golego z80 oraz dla cpc i msx,  z80 w Spectrum nie symuluje, bo z tego co czytalem jest to dosyc skomplikowane i nie chcialo mi sie tego implementowac.

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Z80 profiler
« Odpowiedź #9 dnia: 2016.01.13, 17:11:25 »
Cytuj
Wciaga binarke z kodem z80 i ja wykonuje, wypisujac na koncu ile sumarycznie zajelo wykonanie kazdej instrukcji i funkcji.

Upewnię się czy dobrze rozumiem. To znaczy robi takie np takie zestawienie:

LD A,B  100 taktów
LD A,C  120 taktów
itp.


czyli dla wszystkich instrukcji sumuje łączne czasy ich wykonania?

A co do funkcji, to w asemblerze przecież tak naprawdę ich nie ma ;) Co rozumiemy przez funkcję? Zbiór instrukcji który został wywołany instrukcją CALL i zakończony instrukcją RET ?

Dr Piotr

  • ***
  • Wiadomości: 196
Odp: Z80 profiler
« Odpowiedź #10 dnia: 2016.01.13, 18:32:56 »
Cytuj
Wciaga binarke z kodem z80 i ja wykonuje, wypisujac na koncu ile sumarycznie zajelo wykonanie kazdej instrukcji i funkcji.

Upewnię się czy dobrze rozumiem. To znaczy robi takie np takie zestawienie:

LD A,B  100 taktów
LD A,C  120 taktów
itp.


czyli dla wszystkich instrukcji sumuje łączne czasy ich wykonania?

A co do funkcji, to w asemblerze przecież tak naprawdę ich nie ma ;) Co rozumiemy przez funkcję? Zbiór instrukcji który został wywołany instrukcją CALL i zakończony instrukcją RET ?
Tak - funkcja to call, zakonczony ret.
Tu masz przykladowy output:
Z80 Profiler v 0.8, copyright 2015 Piotr Drapich
0000 di ;        4T  F3
0001 call #0019 ;       17T  CD 19 00
0019 xor a ;        4T  AF
001a ret ;       10T  C9
0004 call #000e ;       17T  CD 0E 00
000e xor a ;        4T  AF
000f call #0013 ;       17T  CD 13 00
0013 and a ;        4T  A7
0014 ret ;       10T  C9
0012 ret ;       10T  C9
0007 call #0013 ;       17T  CD 13 00
0013 and a ;        4T  A7
0014 ret ;       10T  C9
000a call #0015 ;       17T  CD 15 00
0015 call #000e ;       17T  CD 0E 00
000e xor a ;        4T  AF
000f call #0013 ;       17T  CD 13 00
0013 and a ;        4T  A7
0014 ret ;       10T  C9
0012 ret ;       10T  C9
0018 ret ;       10T  C9
000d ret ;       10T  C9
Profiling summary for test1.bin, loaded at 0x0000 and executed in 227 tstates.
0000 di ;        4T  F3
0001 call #0019 ;       31T  CD 19 00
0004 call #000e ;       66T  CD 0E 00
0007 call #0013 ;       31T  CD 13 00
000a call #0015 ;       34T  CD 15 00
000d ret ;       10T  C9
l000e:
000e xor a ;        8T  AF
000f call #0013 ;       34T  CD 13 00
0012 ret ;       20T  C9
l0013:
0013 and a ;       12T  A7
0014 ret ;       30T  C9
l0015:
0015 call #000e ;       21T  CD 0E 00
0018 ret ;       10T  C9
l0019:
0019 xor a ;        4T  AF
001a ret ;       10T  C9
Executed calls:
0001 call #0019       31T (13.66%)
0004 call #000e       66T (29.07%)
0007 call #0013       31T (13.66%)
000a call #0015       34T (14.98%)
000f call #0013       34T (14.98%)
0015 call #000e       21T (9.25%)
btw: jest jeszcze jakis blad w podsumowaniu na koncu - jak go poprawie to bedzie gotowa wersja testowa.

Dr Piotr

  • ***
  • Wiadomości: 196
Odp: Z80 profiler
« Odpowiedź #11 dnia: 2016.01.13, 19:59:52 »
Chętnie.
Na jaki mail Ci wyslac?

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Z80 profiler
« Odpowiedź #12 dnia: 2016.01.13, 21:08:00 »
A czy do tego narzędzia możesz dodać wyliczanie czasu wykonania w milisekundach? Taktowanie Z80 można podać jako parametr...

Mail podałem na pw.

Dr Piotr

  • ***
  • Wiadomości: 196
Odp: Z80 profiler
« Odpowiedź #13 dnia: 2016.01.16, 14:25:21 »
A czy do tego narzędzia możesz dodać wyliczanie czasu wykonania w milisekundach? Taktowanie Z80 można podać jako parametr...

Mail podałem na pw.
Dolozylem przeliczanie na ms, wlasnie wysylam wersje testowa.
Btw: ostatnia szansa na zalapanie sie na testowanie :) Zainteresowanych zapraszam na pw ze swoim mailem.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4537
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Z80 profiler
« Odpowiedź #14 dnia: 2016.01.17, 14:11:40 »
Dzięki, będę testować.