Mi az a soron kívüli végrehajtás?

A számítógépek összetett gépek, amelyeknek nincs bonyolultabb alkatrésze, mint a CPU. Alapvetően úgy tűnik, hogy a CPU-nak viszonylag egyszerűnek kell lennie. Egy sor parancsot vesz fel, feldolgozza azokat, majd kiadja az adatokat. Ez azonban kevéssé hasonlít a modern CPU-k tényleges működéséhez.

Szub-skalártól szuperskalárig

A korai CPU-k pontosan olyanok voltak, mint amire számítottál. Egyénileg vették át az utasításokat, abban a sorrendben, ahogyan kapták őket, dolgozták fel teljesen, majd továbbléptek a következő utasításra. Az ilyen típusú CPU-k szubskalárisak voltak, órajelenként egy utasításnál kevesebbet tudtak végrehajtani. A CPU-tervezők megállapították, hogy egy utasítás végrehajtásának sok különböző szakasza van. Ezen szakaszok mindegyike más hardvert igényelt. Ez azt jelentette, hogy amikor egyetlen utasítást futtatunk a teljes sorozaton egyszerre, a hardver egyes részei tétlenül maradtak. Bármilyen processzorban a tétlen hardver haszontalan hardver.

Ennek a tétlen hardvernek a használatához a CPU-terveket a folyamatmenetes megközelítésre frissítették. Ez tovább különítette el a hardvereket az egyes szakaszokhoz, de lehetővé tette, hogy mindegyiket egyidejűleg egy utasítássorozattal használhassák. Bár még mindig eltartott néhány ciklusig, amíg minden utasítás áthalad a folyamaton, a teljes átviteli sebesség ciklusonként egy utasítás volt. Ez skalárossá tette a CPU-kat.

Ahhoz, hogy többet tudjunk csinálni, a processzorokat szuperskalárissá kellett tenni. Ennek érdekében több párhuzamos csővezetéket valósítottak meg.

A csővezetékek adatokkal való feltöltése

A számítógépek teljesítményével kapcsolatos fő probléma jellemzően a memória késleltetése. Sok utasítás adatokon működik, így az adatoknak rendelkezésre kell állniuk az utasítás végrehajtásához. A kérdés az, hogy mit tesz, ha várnia kell az adatokra, mert nem érhető el azonnal? Hagyományosan az volt a válasz, hogy el kell állni, és meg kell várni, amíg elérhetővé válik. Ez üresen hagyja az egész folyamatot, potenciálisan több száz CPU-ciklusra. A helyzet még rosszabbá válik, ha a párhuzamos folyamatban lévő két utasításnak várnia kell a memóriára, mivel az első még a második adatainak kérését is feltartja. Bár a CPU gyorsítótár segíthet megoldani ezt a problémát, mégsem tudja megoldani. A megoldáshoz új paradigmára volt szükség. Ez a paradigmaváltás az Out Of Order Execution vagy az OOO volt.

A folyamat első lépése az utasítás dekódolása. Ez azt jelenti, hogy ki kell dolgozni, hogy mit kell tenni, és ellenőrizni kell, hogy a művelethez szükséges adatok rendelkezésre állnak-e. Egy OOO CPU-ban a dekódolt utasítások egy sorba kerülnek. Csak akkor távolítják el őket a sorból, és csak akkor dolgozzák fel ténylegesen, ha a szükséges adatok rendelkezésre állnak. Kritikusan nem számít, milyen sorrendben kerültek az utasítások a sorba. Ha egy korai utasítás adatokra vár, egy újabb utasítás előre ugorhat, ha készen áll a használatra. Az OOO processzorok átrendezhetik a feldolgozni kívánt utasításokat a soron következő utasítások alapján, és a végrehajtásra kész utasítások alapján.

Kritikus függőségek

Ez a folyamat két dolgot feltételez. Először is, hogy a valódi függőségek megbízhatóan azonosíthatók és kezelhetők. Másodszor, hogy megbízhatóan kezelheti és azonosíthatja a hamis függőségeket. Mi a különbség? Nos, a valódi függőség olyan függőség, amelyet egyáltalán nem lehet enyhíteni egy OOO rendszerben. A legegyszerűbb példa az olvasás után-írás. Ha van egy utasítása, amely bizonyos adatokat ír, a másik pedig ezeket az adatokat olvassa be, akkor nincs mód az utasítások átrendezésére. Ezeket a bemutatás sorrendjében kell kitölteni, különben értelmetlen adatokat kapsz.

A hamis függőség az, amit egy másik ügyes trükkel el lehet rejteni. Vegyük például az írás utáni olvasást. Első pillantásra azt gondolhatja, hogy nem írhatja felül az adatokat, amíg el nem olvasta azokat. Azért a dolgok nem ilyen egyszerűek. Mi van, ha van egy másik hely, ahol beírhatja az új adatokat, majd a régi adatok beolvasása után felcserélheti az új és a régi adatokat? Ez a regiszter átnevezésének folyamata, és kritikus az OOO feldolgozáshoz.

Általában egy utasításkészlet meghatározza a rendszerben használt architekturális regiszterek meghatározott számát. Szó szerint nem szólíthatsz meg másokat. De mi van akkor, ha túlellátási nyilvántartásokat vezet? Legtöbbször csak elrejtheti őket, tárolhatja azokat az adatokat, amelyeket még nem kellett volna feldolgozni, majd egyszerűen felcserélheti a rejtett és az építészeti regiszterek címkéit, amikor az idővonal ismét megfelelő. Bármikor van pontosan megfelelő mennyiségű építészeti regiszter, csak nem feltétlenül mindig ugyanazon a helyen. Egy valós hasonlat a forró íróasztal lenne.

Következtetés

A soron kívüli végrehajtás egy feldolgozási paradigma, ahol az utasításokat a CPU végrehajtási időben dinamikusan átrendezheti. Ez a rendelkezésre álló adatokkal rendelkező legkorábbi utasítások alapján történik. Ez azt jelenti, hogy a folyamatba betöltött utasítások mindig készen állnak a végrehajtásra, és nincs késés az adatokra való várakozás során. Természetesen elég hosszú sorra van szükség ahhoz, hogy ne legyen tele adatra váró utasításokkal, de ez megvalósítási kihívás. Az OOO végrehajtása a regiszter átnevezésére támaszkodik a hamis függőségek elrejtése érdekében. Még akkor is, ha ezeket az utasításokat nem megfelelően hajtják végre, a regisztereket úgy nevezik át, hogy ezt a tényt elrejtse a számítógép többi része elől.


Leave a Comment

SSD Telepítése Asztali és Laptop PC-ken

SSD Telepítése Asztali és Laptop PC-ken

Rendelkezik egy SSD-vel, hogy frissítse a számítógép belső tárolóját, de nem tudja, hogyan telepítse? Olvassa el ezt a cikket most!

5 Ok, amiért a laptopod túlmelegszik

5 Ok, amiért a laptopod túlmelegszik

Tudd meg, miért melegszik túl a laptopod, és milyen tippeket és trükköket alkalmazhatsz, hogy elkerüld ezt a problémát és a készüléked hűvös maradjon.

Hogyan találjuk meg a nyomtató IP címét

Hogyan találjuk meg a nyomtató IP címét

Problémája van a nyomtató IP címének megtalálásával? Megmutatjuk, hogyan találhatja meg.

GeForce Now hibaelhárítás: 0xC272008F kód

GeForce Now hibaelhárítás: 0xC272008F kód

Egy nagy játéknak indulsz – éppen most szerezted meg a “Star Wars Outlaws”-t a GeForce Now streaming szolgáltatáson. Fedezd fel az egyetlen ismert megoldást a GeForce Now 0xC272008F hibaelhárításához, hogy újra játszhass az Ubisoft játékokkal.

Hogyan használj AirPods-ot Samsung telefonokkal

Hogyan használj AirPods-ot Samsung telefonokkal

Ha nem vagy biztos abban, hogy vásárolj-e AirPods-ot a Samsung telefonodhoz, ez az útmutató segíthet. Az első kérdés az, hogy a kettő kompatibilis-e, és a válasz: igen, kompatibilisek!

Hogyan csatlakoztassuk a Windows 11 laptopot projektorhoz/TV-hez

Hogyan csatlakoztassuk a Windows 11 laptopot projektorhoz/TV-hez

Olvassa el ezt a cikket az egyszerű, lépésről lépésre történő folyamatról, amely a Windows 11 és Windows 10 operációs rendszeren történő laptop projektor vagy TV-hez való csatlakoztatásához szükséges.

3D Nyomtatás Alapjai: Karbantartási Tippjei a 3D Nyomtatójához

3D Nyomtatás Alapjai: Karbantartási Tippjei a 3D Nyomtatójához

A 3D nyomtatók karbantartása nagyon fontos a legjobb eredmények eléréséhez. Íme néhány fontos tipp, amit érdemes megjegyezni.

Mi a teendő, ha a Powerbeats Pro nem töltődik az ügyben?

Mi a teendő, ha a Powerbeats Pro nem töltődik az ügyben?

Ha a Powerbeats Pro nem töltődik, használjon másik áramforrást és tisztítsa meg a fülhallgatókat. Töltés közben hagyja nyitva az ügyet.

Canon Pixma MG5220: Szkennelés Tinta Nélkül

Canon Pixma MG5220: Szkennelés Tinta Nélkül

Hogyan lehet engedélyezni a szkennelést a Canon Pixma MG5220-on, ha kifogyott a tinta.

10 Legjobb NAS Tárolóeszköz Otthoni és Professzionális Használatra

10 Legjobb NAS Tárolóeszköz Otthoni és Professzionális Használatra

Akár otthoni, akár irodai NAS-t keresel, nézd meg ezt a legjobb NAS tárolóeszközök listáját.