dinami ko izvr uvawe na instrukciite voved edna od primarnite celi vo razvojot na na pentium pro a potoa i na pentium procesorite e zna~itelno da se zgolemat performansite vo odnos na pentium procesori na frekvencija od mhz podobruvaweto na performansite su tinski e izvedeno so pomo na podobruvawe na mikroarhitekturata na procesorot po~nuvaj i so pentium procesorot intel postavil nov standard na visoki performansi na svoite procesori so proto~na pipeline i superskalarna superscalar mikroarhitektura pipelining e mikroarhitekturna tehnika za dizajn koja go deli izvr uvaweto na instrukciite vo pove e posledovatelni ~ekori koristej i razli~ni mikroarhitekturni resursi vo sekoj ~ekor pipelined ma inte izvr uvaat pove e instrukcii vo isto vreme no vo razli~ni sostojbi vo ma inata vo pentium procesorite implementacijata na proto~niot sistem koristi pet stepeni na pro~nost za razlika od nego pentium pro koristi superpipelined implementacija so stepeni na proto~nost nudej i pove e proto~ni segmenti i vo isto vreme polesna rabota za sekoja proto~en segment vo tek na izvr uvawe pentium pro procesorot go namaluva vremeto na zadr`uvawe na instrukcijata vo sekoja proto~en segment za vo sporedba so pentium procesorot toa zna~i deka pentium pro procesorot mo`e da ima pogolema frekvencija od onaa na pentium procesorot a vo isto vreme da bide podednakvo lesen da se proizveduva od gledna to~ka na poluprovodni~kiot proizvodstven proces superskalarnata procesorska arhitektura sposobnost za izvr uvawe na dve instrukcii vo edno ot~ukuvawe na procesorskiot ~asovnik bi bila te ka za implementacija bez noviot pristap kon izvr uvawe na instrukciite noviot pristap koristen vo pentium pro procesorot go otstranuva zadr`uvaweto na linearnoto instukcisko sekvencirawe pome u tradicionalnite fetch i execute fazi i otvara irok instrukciski prozorec koristej i instrukciski bazen ovoj pristap ovozmo`uva fazata na izvr uvawe execute da ima uvid vo programskata instrukciska niza taka da mo`e da ovozmo`i i poefikasna raspredelba na instrukcii za izvr uvawe vo isto vreme toa bara instrukciskata fetch decode faza da bide pointelegentna vo smisol na predviduvawe na programskiot tek optimizacijata na redosledot na zapo~nuvawe na izvr uvawe na instrukciite bara edine~nata execute faza da bide zameneta so razdvoeni dispatch execute i retire fazi toa ovozmo`uva instrukciite da bidat zapo~nati po bilo koj redosled no sekoga da bidat zavr eni spored originalniot programski redosled za taa cel intel vo pentium pro procesorot voveduva nekoi novini vo na~inot na izvr uvawe na instrukciite zaedno opi ani kako dinami~ko izvr uvawe dynamic execution toa e kombinacija od tri tehniki na procesirawe dizajnirani za poefikasna manipulacija so podatocite toa se predviduvawe na pove ekratni razgranuvawa multiple branch prediction analiza na podato~niot potok data flow analysis i izvr uvawe von redosled speculative execution predviduvawe na pove ekratni razgranuvawa za potrebite na predviduvaweto na pove ekratni razgranuvawa razvien e algoritam so pomo na koj procesorot mo`e da gi predviduva skokovite vo potokot na instrukcii toj predviduva kade slednata instrukcija mo`e da bide najdena vo memorijata so za~uduva~ka ili pogolema to~nost dodeka procesorot ja prifa a instrukcijata toj vo isto vreme gi gleda i instrukciite to sledat vo programata to ja izvr uva ovaa tehnika go zabrzuva potokot na instrukcii isprateni na procesorot analiza na podato~niot potok so pomo na tehnikata na analiza na podato~niot potok procesorot gi analizira instrukciite to pristigaat na izvr uvawe i go propi uva redosledot na nivnoto izvr uvawe nezavisno od originalniot redosled na izvr uvawe na instrukciite predviden so programata koja ja izvr uva koristej i ja ovaa tehnika procesorot gi gleda dekodiranite softverski instrukcii i opredeluva dali tie se dostapni za procesirawe ili nivnoto izvr uvawe zavisi od prethodno izvr uvawe na nekoi drugi instrukcii procesorot potoa go opredeluva optimalniot redosled na procesirawe i izvr uvawe na instrukciite na najefikasen na~in izvr uvawe von redosled izvr uvaweto von redosled ja zgolemuva brzinata na izvr uvawe so gledawe napred vo programskiot broja~ koga procesorot izvr uva instrukcii najmnogu do pet vo isto vreme toj go pravi toa so koristewe na izvr uvawe von redosled toa ja dr`i superskalarnata mo na pentium procesorot anga`irana kolku to e mo`no pove e so cel da se postignat maksimalni performansi vo izvr uvaweto na programite dodeka softverskite instrukcii to se izvr uvaat se zasnovani na predvideni razgranuvawa rezultatite se skladiraat kako privremeni rezultati speculative results tom nivnata kone~na sostojba e bide opredelena instrukciite se vra aat na izvr uvawe vo nivniot ispraven redosled opis na arhitekturata na pentium procesorot pentium procesorot e implementiran kako tri nezavisni procesorski edinici zdru`eni so instrukciskoti bazen kako to e prika`ano na slika slika p e implementiran kako tri nezavisni delovi koi komuniciraat koristej i go instrukciskiot bazen pred da se obrazlo`i kako pentium procesorot gi postignuva negovite viskoki performansi va`no e da se voo~i zo to e usvoen pristapot so tri nezavisni edinici neka na procesorot mu pristiga na izvr uvawe slednata niza od instrukcii r mem instruction r r r instruction r r instruction r r r instruction prvata instrukcija vo primerot e povikuvawe od r registerot to vo vreme na izvr uvawe predizvikuva nedostatok vo ke ot tradicionalnite procesori moraat da ~ekaat od magistralata da go pro~ita baraniot podatok od glavnata memorija i da go stavat vo soodvetniot register pred da prejdat na vtorata instrukcija vakvite procesori ne pravat ni to dodeka ~ekaat podatok od glavnata memorija i ne se iskoristeni adekvatno na svoite mo`nosti brzinata na procesorite e zgolemena deset pati i pove e vo poslednite deset godini a brzinata na glavnata memorija e zgolemena samo za okolu eden mo`en pristap da se razvr i golemata razlika pome u memoriskata i aritmeti~kata latentnost e so pomo na elektronski komponenti so visoki performansi na primer da se zgolemi l ke ot so to bi se namalile obra awata kon glavnata memorija ili da se zamenat standardnite ram komponenti so sram l ke ot kaj pentium pro procesorot e izgraden od takvi vo bilo koj slu~aj re enieto e efikasno no i ekstremno skapo za taa cel vo pentium procesorot se gleda napred looks ahead vo instrukciski bazen i se izveduva korisna rabota bez da se ~eka da se zavr i ve e zapo~natata vo pogore navedeniot primer so nizata od instrukcii vtorata instrukcija ne mo`e da bide zapo~nata pred prvata da zavr i no tretata i ~etvrtata mo`at taka pentium von redosled vedna posle zapo~nuvaweto na prvata instrukcija preo a kon zapo~nuvawe na tretata i na ~etvrtata instrukcija rezultatite od izvr uvaweto von redosled ne mo`at da bidat povrzani so momentalnata sostojba na procesorot t e so sodr`inata na registrite vidlivi na programerot pa rezultatite se vra aat vedna vo instrukciskoti bazen ~ekaj i na povlekuvawe spored propi aniot redosled od programata jadroto na procesorot gi izvr uva istrukciite vo zavisnost od nivnata spremnost za izvr uvawe a ne spored vistinskiot redosled na instrukcii kakov to doa a od programata ovoj pristap ima strani~en efekt takov to instrukciite voobi~aeno se izvr uvaat nadvor od propi aniot redosled out of order execution nepostoeweto na prvata instrukcija vo ke ot odzema mnogu ot~ukuvawa na vnatre niot ~asovnik pa pentium procesorot prodol`uva da gleda napred vo instrukciskiot bazen i da bara instrukcii to mo`at da bidat izvr eni ili barem zapo~nati pred prvata instrukcija da zavr i vo instrukciskiot bazen se smestuvaat instrukcii od koi pet se skokovi koi fetchh decode edinicata mora ispravno da gi predvidi rasejanoto mno`estvo od registri na procesorot zasnovan na intel ovata arhitektura ia kreira mnogu la`ni zavisnosti na registrite taka to dispatch execute edinicata gi preimenuva so cel da ovozmo`i dopolnitelen ponatamo en progres vo izvr uvaweto na instrukciite zasebnata retire edinica so svoe fizi~ko ia mno`estvo na registri pomaga vo procesot na preimenuvawe na registrite i rezultatite od izvr uvaweto na instrukciite se odnesuvaat na momentalnata sostojba na ma inata t e sostojbata na registrite samo koga instrukcijata e prefrlena od instrukciskiot bazen spored originalniot programski redosled tehnologijata na dinami~ko izvr uvawe mo`e da bide kratko opi ana kako optimalno prilagoduvawe na izvr uvaweto na instrukciite so predviduvawe na programskiot tek analizirawe na programskiot graf na protok na podatoci za da se izbere najdobriot redosled na izvr uvawe na instrukciite potoa postoewe na sposobnost za izvr uvawe na instrukciite vo predpo~itaniot redosled na toj na~in se dobiva pomalo prose~no vreme na izvr uvawe po instrukcija sleduva opis na strukturata na pentium procesorot so akcent na implementacijata na tehnikata na dinami~ko izvr uvawe na slika e ematski prikaz na strukturata na pentium procesorot slika trite delovi od jadroto komuniciraat so memoriskiot podsistem koristej i k k ke kako to se gleda od slikata pentium procesorot e izgraden od slednite sostavni delovi fetch decode edinica edinica koja raboti vo soglasnost so redosledot na instrukcii zadaden od programata koja procesorot ja izvr uva vlez vo edinicata e programskata instrukciska niza zemena od instrukciskiot ke l icache vleznite instrukcii se dekodiraat vo serija od mikro operacii koi go predstavuvaa podato~niot potok data flow na instrukciskata niza dispatfh execute edinica edinica koja gi obrabotuva instrukciite spored redosled razli~en od onoj propi an od programata vlez e podato~niot potok podgotven od fetch decode edinicata ima za zada~a da go opredeluva redosledot na izvr uvawe na mikro instrukciite spored podato~nite zavisnost i dostapnosta do resursite koi tie gi pobaruvaat instrukciite gi izvr uva spored opredeleniot redosled dobien so analizirawe na podato~niot potok i privremeno gi ~uva rezultatite od ovie izvr uvawa retire edinica edinica koja raboti so instrukciite vo soglasnost so programski propi aniot redosled i znae koga da gi povrze privremeno zapi anite rezultati od izvr uvaweto von redosled so momentalnata sostojba na procesorot bus interface edinica edinica odgovorna za povrzuvawe na trite nadvore ni edinici so nadvore niot svet edinicata komunicira direktno so l ke ot dozvoluvaj i najmnogu ~etiri konkurentrni pristapi do ke ot ovaa edinica isto taka ja kontrolira magistralata do sistemskata memorija fetch decode edinica slika dava podetalen prikaz na fetch decode edinicata slika pogled vo vnatre nosta na fetch decode edinicata instrukciskiot ke icache e najbliskoto mesto za skladirawe na instrukcii koe mo`e da bide prebaruvano vedna tom vo procesorot e se poka`e potreba od toa next ip edinicata ovozmo`uva icache indeks baziran na podatoci koi doa aat od branch target buffer btb trap interrupt statusot i branch misprediction indikacii od edinicata za izvr uvawe na operacii so celi broevi integer execution section btb so kelii koristi nadgradba na yeh oviot algoritam i obezbeduva pove e od to~nost vo predviduvawata pod predpostavka deka ni to nevoobi~aeno ne se slu~uva i btb e to~en vo svoite predviduvawa tekot na operacii izvr eni vo ovaa edinica e sledniot icache prezema od sebe edna ke linija vo soglasnost so indeksot od next ip edinicata kako i slednata linija i na dekoderot id mu dostavuva poramneti bitovi pro~itani se dve linii bidej i spored intel ovata arhitektura instrukciskiot potok e poramnet po bajtovi byte aligned i kodot sekoga skoknuva na sredinata ili na krajot od ke linijata ovoj del od proto~nosta odzema tri ot~ukuvawa na sistemskiot ~asovnik vklu~uvaj i go i vremeto za rotirawe na porano prifatenite bajti taka to tie se opravdani za instrukciskiot dekoder po~etokot i krajot na ia instrukciite se obele`ani tri paralelni dekoderi ja prifa aat nizata od obele`ani bajti i ja procesiraat za da gi najdat i gi dekodiraat ia instrukciite to se sodr`ani tamu dekoderot gi konvertira ia instrukciite vo mikro instrukcii najgolemiot del od ia instrukciite se konvertirani direktno vo edine~ni mikro operacii no nekoi instrukcii se dekodiraat vo edna do ~etiri mikro instrukcii dodeka kompleksnite instrukcii baraat mis pravoagolni~eto ozna~eno so mis na slikata to e samo mno`estvo od pred programirani sekvenci od normalni mikro operacii nekoi instrukcii nare~eni bajt prefiksni ja modiriciraat slednata instrukcija zadavaj i mu so toa dopolnitelna rabota na dekoderot tom mikro instrukciite se staveni vo niza tie se pra aat na register alias table rat edinicata kade logi~ki ozna~enite ia registri se konvertiraat vo pentium fizi~ki registri i vo stanicata za alocirawe potoa se dodavaat statusni informacii na mikro instrukciite i se vnesuva vo instrukciskiot bazen instrukciskiot bazen instruction pool e implementiran kako niza od sodr`inski adresibilna memorija content addressable memory na slikata ozna~ena so reorder buffer rob dispatch execute edinica slika to sledi dava detalen ematski prikaz na ovaa edinica slika pregled na dispatch execute edinicata dispatch execute edinicata gi izbira mikro instrukciite od instrukciskiot bazen vrz baza na nivniot status ako statusot poka`uva deka mikro instrukcijata gi ima dostapni site nejzini operandi toga edinicata proveruva dali resursot kotreben za izvr uvawe na taa instrukcija e dostapen sloboden ako se zadovoleni dvata uslova operacijata e ispratena do potrebniot resurs kade to se izvr uva rezultatite od operacijata pokasno se vra aat vo instrukciskiot bazen edinicata za rezervirawe resursi rezervation station rs e generaliziran mehanizam kade mikro instrukciite ~ekaat za komponentite od koi zavisat koga za edna mikro instrukcija e bidat dostapni site komponenti neophodni za nejzinoto izvr uvawe taa se ispra a vo soodvetniot hardverski procesorski resurs na izvr uvawe edinicata za rezervirawe resursi ima implementirano pet porti preku koi se pristapuva na pove e resursi vo isto vreme kako to e prika`ano na slikata pentium procesorot mo`e da rasporedi pet mikro instrukcii za izvr uvawe vo eden takt na sistemskiot ~asovnik po edna na sekoja porta iako voobi~aeni se tri instrukcii redosledot na instrukciite to se pra aat vo ovaa edinica ne e ist so onoj propi an so programata to se izvr uva tuku zavisi od podato~niot potok ispraten od fetch decode edinicata algoritamot iskoristen od ovoj raspredeluva~ko izvr en proces e od vitalno zna~ewe za performansite ako samo edna mikro instrukcija po resurs stanuva podgotvena za izvr uvawe site operandi se podgotveni i resursot koj ja izvr uva e sloboden toga nema drug izbor koja instrukcija e se izvr i no dokolku pove e instrukcii se podgotveni za izvr uvawe toga se postavuva pra aweto koja od niv da se izbere izborot mo`e da bide slu~aen ili spored fifo principot vo idealen slu~aj e bide izbrana onaa instrukcija koja vklopena vo drugite instrukcii koi se izvr uvaat e dade najmalo vreme na izvr uvawe na site niv bidej i ne postoi na~in toa da se znae vo tek na izvr uvawe procesorot koristi psevdo fifo algoritam mnogu od mikro instrukciite se skokovi bidej i i mnogu od ia instrukciite se skokovi branch target buffer btb predviduva najgolem del od ovie skokovi no ne gi predviduva site btb ne mo`e da gi predvidi nazadnite skokovi od dnoto na jamkata bidej i taa mo`e da se prekine i dokolku se slu~i toa skokot e bide nepredviden mikro instrukciite koi pretstavuvaat skokovi se opredeleni so nivnite proa a~ki adresi falltrough address i so adresata na slednata instrukcija koja e predvidena za niv koga skokot se izvr uva ona to skokot navistina go pravi e sporeduvano so ona to predviduva~kiot hardver ka`uva to bi trebalo da go pravi ako sporeduvaweto e pozitivno toga verojatno skokot e bide isfrlen od instrukciskiot bazen i pove eto od izvr enata von redosled rabota pozadi skokot vo instrukciskoto mno`estvo e dobra no ako sporeduvaweto dava negativni rezultati t e predviduva~kiot hardver poka`uva kon pogre na lokacija vo odnos na onaa to navistina treba da bide edinicata za izvr uvawe na skokovi jump execution unit jeu go menuva statusot na site mikro instrukcii pozadi skokot i gi isfrla od instrukciskoti bazen vo takov slu~aj adresata na slednata instrukcija vo skokot e prosledena do btb koja ja izvr uva povtorna celata niza od instrukcii sega opredelena so ispravnata adresa retire edinica retire edinicata edinica za kompletirawe ima za zada~a da go proveruva statusot na mikro instrukciite vo instrukciskiot bazen bara mikro instrukcii koi se ve e izvr eni i mo`at da bidat isfrleni retired od bazenot nejziniot detalen ematski prikaz e prika`an na slika slika pogled vrz retirement edinicata retirement edinicata ne samo to gleda koi instrukcii se zavr eni tuku i go nametnuva originalniot programski redosled na niv taa istoto toa go pravi i so prekinite interrupts zamkite traps gre kite faults to~kite na prekini breakpoints i gre kite vo predviduvawata mis predictions za procesot na ovaa edinica se predvideni dve ot~ukuvawa na sistemskiot ~asovnik edinicata mora prvo da go pregleda instrukciskiot bazen i da gi najde potencijalnite kandidati za otstranuvawe kako i da opredeli koi od ovie kandidati se sledni vo originalniot programski redosled potoa taa gi pi uva rezultatite od toj proces vo instrukciskoti bazen i vo rrf retirement edinicata e vo sostojba da obraboti po tri instrukcii vo eden takt na sistemskiot ~asovnik bus interface edinica bus interface edinicata detalno e prika`ana na slika slika pogled vrz bus interface edinicata postojat dva vida na pristap kon memorijata ~itawe load i zapi uvawe store itaweto bara samo da bide opredelena memoriskata adresa kon koja treba da bide pristapeno t e koja gi sodr`i podatocite koi treba da bidat pro~itani kako i registerot vo koj tie podatoci treba da bidat prefrleni itaweto e dekodirano vo edine~na mikro instrukcija zapi uvaweto bara da bide opredelena memoriskata adresa dol`inata na podatocite kako i podatocite koi treba da bidat zapi ani poradi toa zapi uvaweto se dekodira vo dve mikro instrukcii i toa edna koja ja generira adresata i edna koja gi generira podatocite ovie mikroinstrukcii se izvr uvaat nezavisno edna od druga da se zgolemi do najvisok stepen nivnata konkurentnost no moraat da bidat sostaveni zaedno vo zapi uva~kiot bafer store buffer za da zapi uvaweto bide kompletno zapi uvawata nikoga ne se izvr uvaat odnapred i von redosled bidej i ne postoi na~in da se povrati sostojbata pred nivnoto izvr uvawe zapi uva~kiot bafer gi raspredeluva zapi uvawata ponatamu vo glavnata memorija samo koga instrukcijata za zapi uvawe gi poseduva raspolo`ivi se zaedno adresata i podatocite i ne postojat postari zapi uvawa na istata lokacija ona to e potrebno za postignuvawe na visoki performansi e arhitektura na memoriskiot podsistem koj ovozmo`uva ~itawata da gi zaobikoluvaat zapi uvawata kako i da bide ovozmo`eno edno ~itawe da bide zaobikoleno od drugo ~itawe memory order buffer mob gi ispolnuva ovie zada~i preku odnesuvawe kako edinicata za kompletirawe rezervation station i preureduva~ki bafer reorder buffer toj gi zadr`uva suspendiranite ~itawa i zapi uvawa povtorno pra aj i gi za izvr uvawe toga koga blokira~kite uslovi zavisnosti ili resursi e is~eznat