Parancs szintű párhuzamosság
A párhuzamosság (levelizmus) észlelésének két módja van a parancs szintjén:
- hardver - a párhuzamosság felismerése a munkafolyamatban speciális processzor-áramkörökkel történik a programkód végrehajtása során;
- szoftver - a párhuzam azonosítását a fordító kezeli, ami egy speciális processzor futtatható programkódját képezi.
A hardver szint dinamikus párhuzamosságon fut. míg a szoftver szintje statikus párhuzamosságon múlik. A korszerű, nagy teljesítményű x86-os processzorok (Intel Pentium 4. Intel Core) dinamikus párhuzamos végrehajtási sorrendben (Extra Command Execution) működnek. Az Itanium processzorokban statikus párhuzamosságot használtak (azonban az Itanium 2 hibrid megközelítést alkalmaz).
Vegye figyelembe a következő programot:
A 3 művelet az 1. és a 2. eredménytől függ, ezért nem számítható ki mindaddig, amíg mindkettő befejeződik. Az 1. és a 2. műveletek azonban függetlenek bármely más művelettől, így számításuk egyszerre történhet. Feltéve, hogy minden egyes művelet egy időegységben befejeződhet, ez a három utasítás összesen két egységnyi időtartamon belül elvégezhető, így az ILP 3/2.
A fordító és a processzor fejlesztőinek célja. az ILP azonosítása és megszerzése a lehető legnagyobb előnyökből. A hagyományos programok általában egy szekvenciális végrehajtási modellre vannak írva, ahol a parancsok végrehajtása egymás után a programozó által meghatározott sorrendben történik. Az ILP lehetővé teszi a fordító és / vagy processzor számára, hogy felülírják az utasítások végrehajtását, vagy módosítsák a parancsok végrehajtásának sorrendjét.
Az ILP mennyisége a programokban nagymértékben függ a program hatókörétől. Bizonyos területeken, például a számítógépes grafika és a tudományos számítástechnika területén, a szám nagyon nagy lehet. Azonban a munkaterhelések, mint a titkosítás. sokkal kevésbé konkurens lehet.
Hardver módszerek a felismeréshez és a konkurenciahasználathoz:
- Számítástechnikai csővezeték. ahol több utasítás végrehajtása átfedhet;
- Műveletek túlnyomó végrehajtása, amelyekben több funkcióblokkot használnak több parancs végrehajtására egyidejűleg;
- Rendkívüli végrehajtás. ahol az utasítások végrehajtása olyan sorrendben történik, amely nem sérti az adatfüggést. Ne feledje, hogy ez a módszer nem függ sem a csővezetéktől, sem a szuperskalálattól. A rendelés nélküli végrehajtás aktuális végrehajtása dinamikus (azaz a program fut és a fordító segítség nélkül) kivonja az ILP-t a megszokott programokból. Alternatív megoldásként ezt a párhuzamosságot kicsomagolhatja fordítási idő alatt, és valamilyen módon átviheti ezt az információt a hardverre. A rendkívüli teljesítmény felidézésének technikájának bonyolultsága miatt az ipar újra átgondolta a csapatcsoportot. amelyek kifejezetten több független műveletet kódolnak az utasításban;
- Regiszterek átnevezése. amely a program által végrehajtott műveletek szükségtelen sorozatosságának elkerülésére alkalmazott módszerre vonatkozik, amely a nyilvántartások újbóli felhasználását írja elő e műveletek esetében, a megbízás nélküli megbízás végrehajtására használják;
- Spekulatív végrehajtás, amely lehetővé teszi a teljes utasítások vagy utasításrészek végrehajtását annak ellenőrzésére, hogy ez a végrehajtás megvalósul-e. Általánosan használt forma spekulatív végrehajtás az a feltételezés, az áramlásszabályozó, ahol vezérlő utasításokat telt áramban utasítások (például, kapcsolás) és lefut, mielőtt a meghatározott cél ellenőrzési flow utasításokat. Számos egyéb spekulatív végrehajtás javasoltak és használtak, többek között a spekulatív végrehajtás, fontossága miatt az előrejelzés, a becslés és előrejelzés alapján a memória cache latency;
- Az átmenet előrejelzése. amelyet arra használnak, hogy elkerülje a függőségek szabályozásának felfüggesztését, amelyet meg kell oldani. A konverziók előrejelzését spekulatív végrehajtással használják.
A streaming architektúrák egy másik architektúrájú osztály, ahol az ILP kifejezetten meg van határozva, lásd például a TRIPS architektúráját.
Korai végrehajtása ILP, mint például a mainframe IBM System / 360 modell 91. ILP alkalmazott módszer, hogy felszámolja a korlátozásokat a viszonylag kis regiszter fájlt.