(CPU-)futószalag

A processzorok a programkódban található utasításokat egy úgynevezett futószalagon keresztül dolgozzák fel, amit logikai részegységekre lehet bontani. Ezeket a logikai részegységeket három nagyobb csoportra lehet osztani, a front-endre, az ütemezésre és a back-endre.

A front-end felel az utasítások behívásáért és dekódolásáért. Itt találjuk az utasításbehívót (fetch), az elágazásbecslőt (branch predictor) és a dekódolót (decode). Az utasításbehívó, mint az nevéből is következik, a programkódban található x86-os utasítások beolvasásáért felel. A dekódoló az x86-os utasításokat fordítja le a CPU-számára is érthető, RISC-szerű nyelvre. Az elágazásbecslő megpróbálja a programkódban található elágazások végkimenetelét kikalkulálni a korábbi elágazások eredményei alapján.

Az ütemező a már dekódolt utasításokat a megfelelő „útra” tereli. Itt általában egy úgynevezett reorder buffert (ROB) találunk, amely a már dekódolt utasításokat tárolja, majd küldi tovább az ütemező (scheduler) felé, amely az adott típusú utasításokat a megfelelő feldolgozó felé irányítja.

A back-end a műveletek elvégzéséért felel, itt találjuk az ALU-t, az FPU-t és a SIMD utasítások végrehajtására képes részegységeket. Az eredmények ezután egy betöltésre/kiírásra képes pufferbe kerülnek, ott az eredeti programkódnak megfelelő sorrendbe rendeződnek, onnan pedig az elsőszintű adatgyorsítótárba kerülnek, ami rácsatlakozik a rendszerbuszra.


K10 teljes blokkdiagramm [+]

Hirdetés