instrukcje a takty procesora

0

Czy wie ktoś gdzie mozna znaleźć spis ile dana instrukcja asma potrzebuje taktów procesora ?? Przeglądałem artykuły Dryo ale akurat nie ma tam podanych dwóch instrukcji, których potrzebuje: shl i xchg

0

poszukaj na necie standardowego spisu mnemonikow asma x86 by intel, z tego co pamietam byly tam podane ilosci taktow procka, mozesz to zassac z www.cepa.end.pl ale najpierw serwerek musi zmartychwstac ;/

0

Bo nie mozna takiego zestawienia zrobic.

Chodzi o to, ze nie wiadomo ile taktow zajmuje dana instrukcja. To co podaja w dok. Intela, to tylko wartosci orientacyjne. Np. najprostszy skok warunkowy moze zajac od kilku taktow (jesli jednostka przewidywania skoku go dobrze przewidzi) do kilkuset (jesli sie pomyli i trzeba bedzie anulowac wszystkie instrukcje z kilku potokow oraz oproznic kolejke zdekodowanych instrukcji, a nastepnie sciagnac dalszy ciag z pamieci, bo pechowo w cache L1 ani L2 nie bylo). W praktyce taki pech sie rzadko zdarza, ale kilkadziesiat taktow jest typowe, jesli jest kilka skokow obok siebie. Przy wiecej niz 4 skokach tuz obok siebie, prawie zawsze ktorys bedzie zle przewidziany. :(

Z innymi instrukcjami nie jest tak zle, ale roznice tez moga byc spore, bo trzeba wziac pod uwage takie rzeczy jak chwilowe wstrzymanie potoku instrukcji do zakonczenia wykonywania instr. biezacej w pewnych sytuacjach, przemianowywanie rejestrow przez procesor (tylko IA32) obecnosc danych w cache itd..... Kompilatory w tym sie gubia, a co dopiero czlowiek. ;)

0

Cóż ale powinno to być jakoś proporcjonalne np. instrukcja shr weźmie od 3 do 27 taktów a mov od 2 do 18 itd.

0

Cóż ale powinno to być jakoś proporcjonalne np. instrukcja shr weźmie od 3 do 27 taktów a mov od 2 do 18 itd.

Wiesz, to nie takie proste. Bo to silnie zalezy od tego, co bylo przed tym "shr" a co bylo po tym. Jesli to shr korzysta z czegos, co bylo wyliczone w poprzedniej instrukcji, to potrwa dluzej, bo bedzie musialo czekac na wynik tamtej instrukcji. Jesli skorzysta z czegos co bylo kilka instr. wczesniej, to wtedy szybko, bo wynik juz jest w jakims rejestrze - jednym z 72 (chyba) na Intelu i 128 na AMD (!).

0

Krolik ma racje, nazywa się to hazardami danych(RAR, WAR itp.)

0

No i jeszcze parowanie instrukcji... Tez zalezy jak dostosujesz (albo kompilator).
To co jest tam podane, mozna stosować dla procesorów 8086 (ew. chyba jeszcze 286 i 386), bo nie przypominam sobie, by byla tam predykcja skokow, a juz na pewno wszystkie instrukcje wykonywaly sie w 1 potoku.

0

Wszystko na ten temat możesz znaleźć w Tłumaczeniu RAG "THE ART OF ASSEMBLY LANGUAGE". Naprawde polecam jest tam wszystko !!! :) Niesamowity opis ! Znajdziesz na stronie www.r-ag.prv.pl !!!!

Pozdrawiam wszystkich Assm-maniaków !

1 użytkowników online, w tym zalogowanych: 0, gości: 1