Ahmdalov zakon je vlastne sposob vypoctu vykonoveho zisku, alebo zrychlenia, ktore dosiahneme zlepsenim niektore z casti pocitaca. Zrychlenie pre tento ucel je pomer, ktory vravi, kolkorat je rychlejsi beh ulohy na vylepsenom pocitaci voci povodnemu pocitacu.
Celkove zrychlenie zodpovedajuce danemu vylepseniu spocitame ako
Soverall = Told / Tnew = 1 / (1 - Fe + Fe/Se)
Fe = povodna doba vypoctu zlepsenej casti ulohy / povodna celkova doba vypoctu <= 1
Se = povodna doba vypoctu zlepsenej casti ulohy / doba vypoctu zlepsenej casti ulohy > 1
Fe nam teda hovori, aky pomer v celkovom vypocte zohrava zlepsovana cast a Se je zrychlenie, ktore sme dosiahli na danej casti ulohy (o kolkokrat je uloha rychlejsia po vylepseni).
Vo vzorci pre celkove zrychlenie mame zahrnutu cast ulohy, ktoru nezlepsujeme, 1 - Fe a dobu vypoctu zlepsenej casti ulohy Fe/Se. Preto doba vypoctu Tnew na vylepsenom pocitaci bude
Tnew = Told / (1 - Fe + Fe/Se).
Teraz mame 2 sposoby vypoctu vykonu/zrychlenia a ktory je lepsi? CPU vyko. rovnica ma svoje vyhody
- meratelny alebo simulaciou ziskatelny pocet instrukcii
- meratelne alebo simulaciou ziskatelne cpi
- oddeleny vypocet pre danu instrukciu alebo skupinu
- vypocet vykonnosti bez znalosti celkovej doby vykonavania instrukcii
Plusy AZ su
- jednoduchy vypocet za predpokladu znalosti doby vypoctu zlepsenej a povodnej casti ulohy (a jej podielu)
- vypocet vykonnosti bez znalosti cpi, ic, Tclk, IC, CPI