Wednesday, June 15, 2011

HW: Ahmdalov zakon

Minule sme spominali CPU vykonnostnu rovnicu, dnes si povieme, co to je Ahmdalov zakon.

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