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

Minden az iOS 26-ról

Minden az iOS 26-ról

Az Apple bemutatta az iOS 26-ot – egy jelentős frissítést vadonatúj matt üveg dizájnnal, intelligensebb felhasználói élményekkel és a megszokott alkalmazások fejlesztéseivel.

A legjobb laptopok diákoknak 2025-ben

A legjobb laptopok diákoknak 2025-ben

A diákoknak egy bizonyos típusú laptopra van szükségük a tanulmányaikhoz. Nemcsak elég erősnek kell lennie ahhoz, hogy jól teljesítsen a választott szakon, hanem elég kompaktnak és könnyűnek is ahhoz, hogy egész nap magaddal cipelhesd.

Hogyan lehet visszanyerni a hozzáférést a merevlemezhez, hogyan lehet kijavítani a merevlemez megnyitásának sikertelenségével kapcsolatos hibát

Hogyan lehet visszanyerni a hozzáférést a merevlemezhez, hogyan lehet kijavítani a merevlemez megnyitásának sikertelenségével kapcsolatos hibát

Ebben a cikkben bemutatjuk, hogyan állíthatja vissza a hozzáférést a merevlemezéhez, ha meghibásodik. Kövessük a példáját!

A Beszélgetéstudatosság és az Élő hallgatás funkció használata AirPods-on

A Beszélgetéstudatosság és az Élő hallgatás funkció használata AirPods-on

Első pillantásra az AirPods pont olyan, mint bármely más valódi vezeték nélküli fülhallgató. De mindez megváltozott, amikor felfedeztek néhány kevésbé ismert funkciót.

Hogyan adhatunk hozzá nyomtatót Windows 10-hez

Hogyan adhatunk hozzá nyomtatót Windows 10-hez

A nyomtató hozzáadása Windows 10-hez egyszerű, bár a vezetékes eszközök folyamata eltér a vezeték nélküli eszközökétől.

Hogyan ellenőrizheti a RAM-ot és a RAM-hibákat a számítógépén a legnagyobb pontossággal

Hogyan ellenőrizheti a RAM-ot és a RAM-hibákat a számítógépén a legnagyobb pontossággal

Mint tudod, a RAM egy nagyon fontos hardveralkatrész a számítógépben, amely memóriaként működik az adatok feldolgozásához, és ez a tényező határozza meg a laptop vagy PC sebességét. Az alábbi cikkben a WebTech360 bemutat néhány módszert a RAM-hibák ellenőrzésére szoftverek segítségével Windows rendszeren.

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.