Shop menü

ÚJ MÓDSZERREL, TÖBB PROCESSZORMAG ÖSSZEVONÁSÁVAL NÖVELNÉ AZ INTEL AZ EGYSZÁLAS TELJESÍTMÉNYT – JÖHET AZ SDC

Az Intel csapata egy érdekes technológiát fejleszthet, amely egyelőre még csak szabadalom formájában létezik, legalábbis hivatalosan.
Víg Ferenc (J.o.k.e.r)
Víg Ferenc (J.o.k.e.r)
Új módszerrel, több processzormag összevonásával növelné az Intel az egyszálas teljesítményt – Jöhet az SDC

Az Intel fejlesztőcsapata egy érdekes technológián dolgozik a háttérben, amit nemrégiben szabadalmaztatott is a gyártó. A Software Defined Supercore funkció lényegében a Hyper-Threading ellentétének tekinthető, ugyanis míg előbbi egy fizikai processzormaghoz több, jellemzően 2 szálat tud hozzárendelni, ezáltal egy fizikai processzormag két virtuális magként jelenhet meg a támogatott szoftverek alatt; addig az SDC támogatás már azt a célt szolgálja, hogy több processzormag „szoftveres összevonásával” növekedjen az egyszálas teljesítmény a funkciót támogató szoftverek alatt.

A szoftveresen létrehozott virtuális „szupermag” előnye, hogy a feladatokat „szét tudja dobni” a rendszer több processzormag között, méghozzá úgy, hogy a végrehajtás sorrendje változatlan maradjon, és arról is tud gondoskodni, hogy az „összevont” processzormagok megfelelő teljesítményt nyújtsanak azáltal, hogy megfelelő mennyiségű terheléssel próbálja kiaknázni a bennük rejlő lehetőségeket. Ezzel a funkcióval jelentősen növelhető a rendszer egyszálas teljesítménye azoknál az alkalmazásoknál, amelyek jellemzően egyszálas terhelést jelentenek és rendelkeznek SDC támogatással.

A processzormagok összevonása során kettő vagy több processzormag erőforrásait lehet egyesíteni, az így létrejövő „virtuális szupermag” egyszálas terhelésének adott részeit futtatják az egyes processzormagok, a munkafolyamatot blokkokra bontja a szoftver, majd ezeket az egyes processzormagok kapják meg, ennek során fontos szerepet kap a szinkronizáció és a műveletek sorrendjének megtartása is. A módszer jóvoltából nincs szükség kifejezetten nagy, magas tranzisztor-büdzsét igénylő, széles processzormagok készítésének, amelyek egyébként magasabb fogyasztás mellett is dolgoznak, valamint a magórajel növelése sem szükséges ahhoz, hogy a teljesítmény magasabb lehessen: a virtuális szupermag funkció keretén belül maximalizálható az órajelenként elvégezhető műveletek (IPC) száma.

Galéria megnyitása

Az x86-os processzorok korábban jellemzően 4-6 műveletet tudtak dekódolni, majd ezeket órajelenként 8-9 mikroművelet formájában tudták elvégezni, miután mikroműveletekké alakította őket a rendszer, ezáltal maximalizálni lehetett az IPC értékét. A mai modern processzoroknál az említett számokhoz képest már történt némi előrelépés, így jobb teljesítmény elérésére is van mód. Az Apple háza táján az M4-es sorozatú SoC egységek esetében órajelenként akár 8 utasítást is dekódolni lehet, majd ideális körülmények között akár 10-nél is több művelet végrehajtására nyílik lehetőség egyetlen órajel leforgása alatt, ezért is olyan magas az Apple processzorok egyszálas teljesítménye a többi ARM alapú megoldáshoz képest, és egyszálas terhelés alkalmával ezért is kedvezőbb a fogyasztásuk, mint riválisaiknak.

Noha az x86-os processzorok esetében lehetővé van akár nyolcutas CPU mag létrehozására is, ez viszont nem nevezhető ideálisnak, részben a kiszolgálást végző front-end részleg gyengeségei miatt, részben a bonyolultabb felépítés és a magasabb fogyasztás miatt, részben pedig azért, mert jellemzően úgysem használnák ki a benne rejlő lehetőségeket az egyes szoftverek. Általános terhelés alkalmával általában 2 és 4 között helyezkedik el az órajelenként végrehajtott műveletek száma a mai modern processzoroknál, így nagyobb előnye lehet egy olyan dizájnnak, ahol nagy nyolcutas magok helyett inkáb kisebb négyutas magokat készítenek, majd ezeket szükség esetén összevonják nyolcutas maggá, például a fentebb említett szoftveres módszerre, így közel akkora teljesítményt érhetnek el, mint ha natív nyolcutas magot használtak volna.

Ahhoz persze, hogy ez a funkció hardver szintjén is működhessen, szükség van arra, hogy a processzormagok is kezelni tudják az SDC-t, vagyis minden egyes processzormagnak szüksége van egy dedikált hardveres egységre, ami elvégzi a szinkronizációt, a regiszter-műveleteket, illetve a memóriakezeléssel kapcsolatos feladatokat is, csak így tudnak együttműködni a szoftveresen egybekapcsolt processzormagok. A processzormagok egy külön fenntartott memóriaterületet használhatnak, ahol a ki- és bemeneti adtatok és a szinkronizációval kapcsolatos műveletek egyaránt koordinálhatóak, valamint az is biztosítható, hogy a különböző processzormagok által elvégzett műveletblokkokat végül a rendszer a megfelelő sorrendben fűzi össze újra. Ez a funkció egyébként az in-order és az out-of-order típusú processzormagokat egyaránt támogatja, és csak minimális változtatást igényel a meglévő végrehajtó motorok esetében, cserébe viszont teljesítménynövekedést hozhat, kompakt felépítést kínál, illetve a lapkaterület hatékony felhasználását is elősegíti – egy nagy és széles mag bevetéséhez képest.

Természetesen szoftverek terén is szükség van az SDC támogatására, hogy a feladatok hatékonyan és eredményesen eloszthatóak legyenek, azaz blokkokra lehessen bontani őket, majd ezek a blokkok megfelelő sorrendben kerüljenek az egyes processzormagokhoz. A feladat-végrehajtás integritásának biztosítása minimális overheadet jelent, cserébe viszont növelhető a teljesítmény, igaz, ehhez mindenképpen szükség van operációs rendszer szintű támogatásra is, hiszen alapvetően az OS dönti majd el, érdemes-e egy adott feladatot több részre bontani és egy szupermagra bízva végrehajtani, vagy sem. A mérlegelés során nemcsak a teljesítmény játszik majd szerepet, hanem az is, hogy egyensúly legyen a teljesítmény és a processzormagok elérhetősége terén, mindezt pedig dinamikusan kell kezelnie az operációs rendszernek.

Arról sajnos nem esett szó, hogy az újítás mekkora gyorsulást hozhat, de elméletben lehetőség van arra, hogy két keskenyebb processzormag összevonásával közel akkora teljesítményt nyújtson a rendszer, mintha egy szélesebb processzormagra bízta volna a feladatot.

Az egyelőre nem derült ki, mely architektúrától kezdve számíthatunk az SDC használatára, de mivel még csak egy szabadalmi bejegyzésről van szó, nem konkrét termékbe épített támogatásról, az is könnyen előfordulhat, hogy a közeljövőben még nem vetik be élesben az SDC-t, majd csak akkor, ha az ehhez szükséges feltételek adottak lesznek.

Neked ajánljuk

    Tesztek

      Kapcsolódó cikkek

      Vissza az oldal tetejére