itthon / Skype / Milyen magok vannak a processzorban. Mi befolyásolja a processzormagok számát? Többmagos processzor. Virtuális többmagos, vagy Hyper-Threading

Milyen magok vannak a processzorban. Mi befolyásolja a processzormagok számát? Többmagos processzor. Virtuális többmagos, vagy Hyper-Threading

De a frekvenciamutatók új csúcsainak meghódításával nehezebbé vált növelni, mivel ez befolyásolta a processzorok TDP-jének növekedését. Ezért a fejlesztők megkezdték a processzorok szélességének növelését, nevezetesen magok hozzáadását, és felmerült a többmagos koncepció.

Szó szerint 6-7 évvel ezelőtt a többmagos processzorok gyakorlatilag ismeretlenek voltak. Nem, sokat nukleáris processzorok ugyanattól az IBM cégtől már korábban is létezett, de megjelent az első kétmagos processzor asztali számítógépek, csak 2005-ben került sor, és ezt az ún Pentium processzor D. Ezenkívül az AMD kétmagos Opteronja 2005-ben jelent meg, de szerverrendszerekhez.

Ebben a cikkben nem foglalkozunk részletesen a történelmi tényekkel, hanem a modern többmagos processzorokat tárgyaljuk, mint a CPU egyik jellemzőjét. És ami a legfontosabb: ki kell találnunk, hogy ez a többmagos teljesítmény mit ad a processzornak, valamint neked és nekem.

Megnövelt teljesítmény többmagos rendszerrel

A processzor teljesítményének több mag miatti növelésének elve az, hogy a szálak (különböző feladatok) végrehajtását több magra osztják. Összefoglalva, szinte minden, a rendszeren futó folyamatnak több szála van.

Azonnal lefoglalom, hogy az operációs rendszer gyakorlatilag sok szálat tud létrehozni magának, és mindezt egyszerre, még akkor is, ha a processzor fizikailag egymagos. Ez az elv ugyanazt a Windows multitaskingot valósítja meg (például zenehallgatás és egyidejű gépelés).


Vegyük például víruskereső program. Az egyik szál átvizsgálja a számítógépet, a másik - a víruskereső adatbázis frissítése (mindent leegyszerűsítettünk az általános koncepció megértése érdekében).

És fontolja meg, mi fog történni két különböző esetben:

a) Egymagos processzor. Mivel két szál fut egyszerre, ezért a felhasználó számára (vizuálisan) létre kell hoznunk a végrehajtásnak ezt az egyidejűségét. Az operációs rendszer trükkös:e két szál végrehajtása között van váltás (ezek a kapcsolók azonnaliak, az idő pedig ezredmásodpercben van megadva). Vagyis a rendszer kicsit „végezte” a frissítést, majd hirtelen áttért a szkennelésre, majd vissza a frissítésre. Így Önnek és nekem úgy tűnik, hogy ezt a két feladatot egyszerre hajtják végre. De mi vész el? Természetesen a teljesítmény. Tehát nézzük a második lehetőséget.

b) A processzor többmagos. Ebben az esetben ez a váltás nem történik meg. A rendszer egyértelműen minden szálat külön magba küld, aminek eredményeként megszabadulhatunk a teljesítményt rontó szálról szálra váltástól (idealizáljuk a helyzetet). Két szál fut egyidejűleg, ez a többmagos és többszálas elve. Végső soron sokkal gyorsabban hajtjuk végre a vizsgálatokat és a frissítéseket egy többmagos processzoron, mint egy egymagoson. De van egy fogás - nem minden program támogatja a többmagos rendszert. Nem minden program optimalizálható így. És minden korántsem olyan tökéletes, mint ahogy leírtuk. De a fejlesztők napról napra egyre több programot hoznak létre, amelyek kódja tökéletesen optimalizált többmagos processzorokon való végrehajtásra.

Szükség van-e többmagos processzorokra? Mindennapi ésszerűség

Nál nél processzor választás egy számítógép esetében (nevezetesen, ha a magok számára gondolunk), meg kell határozni az elvégzendő feladatok fő típusait.

A számítógépes hardverrel kapcsolatos ismeretek bővítése érdekében elolvashatja az anyagot processzor foglalatok .

A kiindulópontot kétmagos processzoroknak nevezhetjük, mivel nincs értelme visszatérni az egymagos megoldásokhoz. A kétmagos processzorok azonban mások. Lehet, hogy nem a "legfrissebb" Celeron, vagy egy Core i3 az Ivy Bridge-en, akárcsak az AMD - Sempron vagy a Phenom II. Természetesen más mutatók miatt teljesítményük nagyon eltérő lesz, ezért mindent átfogóan kell megvizsgálnia, és összehasonlítania kell a többmagos rendszert másokkal. processzor jellemzői.

Például az Ivy Bridge Core i3-ja Hyper-Treading technológiával rendelkezik, amely lehetővé teszi 4 szál egyidejű feldolgozását (az operációs rendszer 4 logikai magot lát 2 fizikai helyett). És ugyanaz a Celeron nem büszkélkedhet ilyenekkel.

De térjünk vissza közvetlenül a szükséges feladatok reflexióihoz. Ha számítógépre van szükség irodai munkaés internetezni, akkor elég neki egy kétmagos processzor.

Ha játékteljesítményről van szó, 4 vagy több magra van szükség ahhoz, hogy a legtöbb játékban kényelmes legyen. De itt bukkan fel a csapás: nem minden játékban van 4 magos processzorokra optimalizált kód, és ha optimalizálják, akkor nem olyan hatékony, mint szeretnénk. De elvileg a játékokhoz most éppen a 4. magos processzor az optimális megoldás.


Ma már ugyanazok a 8 magos AMD processzorok redundánsak a játékoknál, pont a magok száma a redundáns, de a teljesítmény nem éri el a színvonalat, de vannak más előnyei is. Ugyanez a 8 mag sokat segít azokban a feladatokban, ahol erőteljes munkára van szükség kiváló minőségű többszálas terheléssel. Ide tartozik például a videó renderelése (számítása), vagy a szerver számítástechnika. Ezért az ilyen feladatokhoz 6, 8 vagy több magra van szükség. És hamarosan a játékok 8 vagy több magot is képesek lesznek kiváló minőségben betölteni, így a jövőben minden nagyon rózsás lesz.

Ne felejtse el, hogy még mindig sok olyan feladat van, amely egyszálú terhelést hoz létre. És fel kell tenned magadnak a kérdést: kell nekem ez a 8 magos vagy sem?

Kicsit összefoglalva szeretném még egyszer megjegyezni, hogy a többmagosság előnyei a "nehéz" számítási többszálú munka során nyilvánulnak meg. És ha nem játszik túl nagy követelményeket támasztó játékokat, és nem végez olyan típusú munkát, amely jó számítási teljesítményt igényel, akkor egyszerűen nincs értelme drága többmagos processzorokra költeni (

Mi az előnye a kétmagos processzoroknak?

Laptop vásárlásakor valószínűleg észrevette, hogy némelyiken a következő címkék vannak: " Intel Core 2 Duo" vagy "AMD Turion 64 x2". Ezek a címkék azt jelzik, hogy a notebookok kétmagos feldolgozási technológián alapulnak.

Kétmagos processzorok

A kétmagos processzorok olyan rendszerekre utalnak, amelyek két független processzormagból állnak, amelyek egy integrált áramkörben (IC) vannak kombinálva, vagy ahogy a szakemberek mondják, egyetlen chipben. Az ilyen rendszerek két magot egyesítenek egy processzorban. Hasonló technológiát először alkalmaztak személyi számítógépés haza Játék Konzol, de nagyon hamar adaptálták a mobil számítástechnikai környezethez. Hasonló technológiájú laptopok kaphatók az AMD-től és az Inteltől.

A kétmagos processzorok szerkezete eltér a kétmagos processzoroktól. Olyan rendszerre utalnak, amelyben két processzort egyesítenek egy integrált áramkörben. A két egymagos processzorok pedig egy olyan rendszerre utalnak, ahol két független processzor (mindegyik saját kockával) közvetlenül kapcsolódik alaplap.

A kétmagos rendszerben minden processzor beépített gyorsítótárral (elsődleges gyorsítótárral) rendelkezik, amely lehetővé teszi számukra a gyakran használt utasítások gyors és hatékony helyreállítását és feldolgozását. Ezenkívül a második szintű gyorsítótár ugyanazon az integrált áramkörön található. Az Intel Mobile Core 2 Duo lapkakészletének másodlagos gyorsítótárát két processzor osztja meg. A Turion AMD 64x2 lapkakészletben a két processzor mindegyike rendelkezik dedikált gyorsítótárral – magonként 512 KB. A második szintű gyorsítótár tartalék az esetek számára ha az elsődleges nem elég.

A kétmagos technológia előnyei

Az ilyen processzorok legfontosabb előnyei a sebesség és a hatékonyság. A parancsfeldolgozást és az adatlekérést két feldolgozó végzi; így nagyobb teljesítmény érhető el a processzorok melegítése nélkül. A gyors teljesítményt az is garantálja, hogy ennek a két processzornak saját, könnyen elérhető elsődleges gyorsítótárral rendelkezik. Ezenkívül, különösen az Intel Core 2 Duo esetében, ahol a másodlagos gyorsítótár fel van osztva, a teljes másodlagos gyorsítótárat az egyik vagy mindkét processzor egyidejűleg használhatja, ha szükséges.

Dióhéjban: egy kétmagos processzorral rendelkező laptop gyorsabban és hűvösebben működik, miközben jobb a többfeladatos munkavégzés. A kétmagos processzorok kevesebb energiát fogyasztanak, mint a kétmagos processzorok.

A kétmagos processzorok laptopokban való használatának másik előnye a könnyebb súly és méret laptop kényelmesebb, miközben PC-szerű teljesítményt nyújt.

Fontos megjegyezni, hogy a régebbi programokkal, ha egyszerre csak egy programot futtatunk, akkor a kétmagos processzorok előnyeit nem tapasztaljuk meg. A régebbi programokat nem ehhez a technológiához tervezték, így csak egy magot tudtak használni. Ebben az esetben azonban a multitasking előnye továbbra is megmarad. Ha egyszerre több program is nyitva van, akkor a kétmagos processzor gyorsabb teljesítményt nyújt, mint egymagos.

Az idő telik, és egyre több fejlesztő szoftver kétmagos processzorok figyelembevételével készítsék el programjaikat; így a felhasználók a közeljövőben megtapasztalhatják az ilyen processzorok minden előnyét.

Csúnya órakorlát-problémát találtunk. A 3 GHz-es küszöbérték elérése után a fejlesztők termékeik energiafogyasztásának és hőelvezetésének jelentős növekedésével szembesülnek. A 2004-es technológiai szint nem tette lehetővé a tranzisztorok méretének jelentős csökkentését egy szilíciumkristályban, és ebből a helyzetből a kiutat a frekvencia növelése, hanem a ciklusonként végrehajtott műveletek számának növelése jelentette. A tapasztalat átvétele után szerver platformok, ahol a többprocesszoros elrendezést már tesztelték, úgy döntöttek, hogy két processzort kombinálnak egyetlen chipen.

Azóta sok idő eltelt, széles hozzáférésben jelentek meg a két-, három-, négy-, hat-, sőt nyolcmagos CPU-k. De a fő piaci részesedést továbbra is a 2 és 4 magos modellek foglalják el. Az AMD próbál változtatni a helyzeten, de Bulldozer architektúrája nem váltotta be a hozzá fűzött reményeket, és a pénztárcabarát nyolcmagosok továbbra sem túl népszerűek a világon. Ezért a kérdésmelyik a jobb: 2 vagy 4 magos processzor, továbbra is aktuális.

Különbség a 2 és 4 magos processzorok között

Hardver szintena fő különbség a 2 magos és a 4 magos processzor közötta funkcionális blokkok száma. Valójában mindegyik mag egy külön CPU, amely saját számítási csomópontokkal van felszerelve. 2 vagy 4 ilyen CPU egy belső nagysebességű buszon és egy közös memóriavezérlőn keresztül van összekötve a RAM-mal való interakció érdekében. Más funkcionális csomópontok is megoszthatók: a legtöbb modern CPU-ban az első (L1) és a második (L2) szint cache memóriája, az egészszámítási blokkok és a lebegőpontos műveletek egyediek. Az L3 gyorsítótár, amely viszonylag nagy, egyetlen és minden mag számára elérhető. Külön megjegyezhetjük a már említett AMD FX-et (valamint az Athlon CPU-t és az A sorozatú APU-t): nem csak a cache memórián és a vezérlőn osztoznak, hanem a lebegőpontos egységeken is: mindegyik ilyen modul egyszerre két maghoz tartozik.

AMD Athlon négymagos séma

A felhasználó szemszögébőlkülönbség a 2 és 4 magos cpu közöttazoknak a feladatoknak a száma, amelyeket a CPU egy órajelciklus alatt képes feldolgozni. Ugyanazzal az architektúrával az elméleti különbség 2-szeres lesz 2 és 4 mag esetén, illetve 4-szeres 2 és 8 mag esetén. Így több folyamat egyidejű működése esetén a szám növekedése a rendszer sebességének növekedéséhez kell, hogy vezessen. Hiszen 2 művelet helyett egy négymagos CPU egyszerre négyet is képes végrehajtani.

Miért népszerűek a kétmagos CPU-k?

Úgy tűnik, hogy ha a magok számának növekedése a teljesítmény növekedésével jár, akkor a négy-, hat- vagy nyolcmagos modellek hátterében a kétmagos processzoroknak nincs esélyük. A CPU-piac világelső cége, az Intel azonban évente frissíti termékpalettáját, és új modelleket ad ki mindössze néhány magból (Core i3, Celeron, Pentium). És ez annak a hátterében, hogy a felhasználók még az okostelefonokban és táblagépekben is bizalmatlanul vagy megvetéssel néznek az ilyen CPU-kra. Annak megértéséhez, hogy a legnépszerűbb modellek miért kétmagos processzorok, számos fő tényezőt kell figyelembe venni.

Intel Core i3 – a legnépszerűbb 2 magos processzorok otthoni számítógépekhez

Kompatibilitási probléma. A szoftverek létrehozásakor a fejlesztők arra törekszenek, hogy az új számítógépeken és a meglévő CPU- és GPU-modelleken is működjön. Tekintettel a piac változatosságára, fontos, hogy a játék két és nyolc magon is zökkenőmentesen fusson. A legtöbb meglévő otthoni számítógép kétmagos processzorral van felszerelve, így az ilyen számítógépek támogatására fordítják a legnagyobb figyelmet.

A feladatok párhuzamosításának összetettsége. Az összes mag hatékony felhasználása érdekében a program során végzett számításokat egyenlő szálakra kell felosztani. Például egy olyan feladat, amely optimálisan tudja használni az összes magot úgy, hogy mindegyikre egy-két folyamatot szentel, több videó egyidejű tömörítése. A játékokkal ez nehezebb, mivel a bennük végzett összes művelet összefügg egymással. Annak ellenére, hogy a fő munkát a GPU videokártyák esetén a CPU készíti elő a 3D kép kialakításához szükséges információkat. Meglehetősen nehéz úgy elkészíteni, hogy minden mag a saját adatrészét dolgozza fel, majd másokkal szinkronban továbbítsa a GPU-nak. Minél több egyidejű számítási szálat kell feldolgoznia, annál nehezebb a feladat végrehajtása.

A technológiák folytonossága. A szoftverfejlesztők a meglévő fejlesztéseket használják fel új projektjeikhez, amelyeket ismételt korszerűsítésnek vetnek alá. Egyes esetekben az a tény, hogy az ilyen technológiák 10-15 éves múltban gyökereznek. Egy tízéves projekten alapuló fejlesztést vonakodva, ha nem is teljesen újraterveznek a tökéletes optimalizálás érdekében. Ennek eredményeként a szoftver nem tudja racionálisan kihasználni a számítógép hardveres képességeit. ORVVADÁSZ. A 2009-ben (a többmagos CPU-k virágkorában) megjelent Call of Pripyat 2001-es motorra épül, így nem tud több magot betölteni.

ORVVADÁSZ. a 4 magos CPU egyetlen magját használja teljes mértékben

Ugyanez a helyzet a népszerű online RPG World of Tanks esetében is: az alapjául szolgáló Big World motort 2005-ben hozták létre, amikor még nem a többmagos CPU-kat tekintették a fejlesztés egyetlen lehetséges útjának.

A World of Tanks azt sem tudja, hogyan kell egyenletesen elosztani a magok terhelését

Pénzügyi nehézségek. Ennek a problémának a következménye az előző pont. Ha minden alkalmazást a semmiből, a meglévő technológiák használata nélkül hoz létre, azok megvalósítása mesés összegekbe fog kerülni. Például a GTA V fejlesztésének költsége több mint 200 millió dollár volt. Ugyanakkor egyes technológiákat továbbra sem „a semmiből” hoztak létre, hanem a korábbi projektekből kölcsönözték, mivel a játékot egyszerre 5 platformra írták (Sony PS3, PS4, Xbox 360 és One, valamint PC).

A GTA V többmagosra van optimalizálva, és egyenletesen tudja terhelni a processzort

Mindezek az árnyalatok nem teszik lehetővé a többmagos processzorok lehetőségeinek teljes kihasználását a gyakorlatban. Termelői kölcsönös függés hardverés a szoftverfejlesztők ördögi kört hoznak létre.

Melyik processzor jobb: 2 vagy 4 magos

Nyilvánvaló, hogy minden előnnyel együtt a többmagos processzorokban rejlő lehetőségek a végsőkig kiaknázatlanok maradnak. Egyes feladatok egyáltalán nem tudják, hogyan kell egyenletesen elosztani a terhelést, és egy szálban működnek, mások közepes hatékonysággal teszik ezt, és a szoftvereknek csak egy kis része működik teljes mértékben az összes maggal. Ezért a kérdésMelyik jobb processzor, 2 vagy 4 mag, vásárolni, a jelenlegi helyzet alapos mérlegelését igényli.

Két gyártó termékei vannak a piacon: az Intel és az AMD, amelyek megvalósítási jellemzőiben különböznek egymástól. Az Advanced Micro Devices hagyományosan a többmagosra helyezi a hangsúlyt, míg az Intel nem hajlandó megtenni ezt a lépést és csak akkor növeli a magok számát, ha ez nem vezet a magonkénti fajlagos teljesítmény csökkenéséhez (amit nagyon nehéz elkerülni).

A magok számának növelése csökkenti mindegyikük általános teljesítményét.

Általános szabály, hogy egy többmagos CPU általános elméleti és gyakorlati teljesítménye alacsonyabb, mint egy hasonló (ugyanazon mikroarchitektúrára épülő, azonos technikai processzorral rendelkező) egyetlen magos CPU. Ezt az okozza, hogy a kernelek megosztott erőforrásokat használnak, de ez nem így van a legjobb módon befolyásolja a sebességet. Így nem lehet egyszerűen úgy vásárolni egy erős négy- vagy hatmagos processzort, hogy az biztosan nem lesz gyengébb, mint egy ugyanebből a sorozatból származó kétmagos processzor. Bizonyos helyzetekben ez ráadásul kézzelfogható is lesz. Példa erre a régi játékok futtatása nyolcmagos AMD FX processzorral rendelkező számítógépen: az FPS néha alacsonyabb, mint egy hasonló PC-n, de négymagos CPU-val.

Ma többmagosra van szükség

Ez azt jelenti, hogy nincs szükség sok magra? Annak ellenére, hogy a következtetés logikusnak tűnik - nem. A könnyű mindennapi feladatok (például az interneten való böngészés vagy egyidejű több programmal végzett munka) pozitívan reagálnak a processzormagok számának növekedésére. Ez az oka annak, hogy az okostelefon-gyártók a mennyiségre összpontosítanak, háttérbe szorítva a konkrét teljesítményt. Opera (és más böngészők Króm motor), indítsa el mindegyiket a Firefox lap megnyitása külön folyamatként, minél több mag - annál gyorsabb az átmenet a lapok között. Fájlkezelők, irodai programok, játékosok – önmagukban nem erőforrásigényesek. De ha gyakran kell váltani közöttük, a többmagos processzor javítja a rendszer teljesítményét.

Az Opera böngésző minden laphoz külön folyamatot rendel

Az Intel tisztában van ezzel, mert a HuperThreading technológia, amely lehetővé teszi a mag számára, hogy a második szálat fel nem használt erőforrások felhasználásával dolgozza fel, még a Pentium 4 idejében jelent meg. Ez azonban nem kompenzálja teljes mértékben a teljesítmény hiányát.

A 2 magos CPU Huper Threadinggel 4 magosként jelenik meg a Feladatkezelőben

A játék készítői eközben fokozatosan felzárkóznak. A Sony Play Station és a Microsoft Xbox konzolok új generációinak megjelenése arra ösztönözte a fejlesztőket, hogy fordítsanak nagyobb figyelmet a többmagos megoldásokra. Mindkét konzol nyolcmagos AMD chipekre épül, így a programozóknak nem kell sok erőfeszítést költeniük az optimalizálásra, amikor egy játékot PC-re portolnak. A konzolok növekvő népszerűsége miatt azok, akik csalódtak az AMD FX 8xxx megvásárlásában, fellélegezhettek. A többmagos processzorok aktívan szereznek piaci pozíciókat, amint az az értékelésekből is kiderül.

A Neumann-féle architektúra fejlesztésének egyik állomása a szálak párhuzamosítása ( cérna Szint Párhuzamosság, TLP). Megkülönböztetni egyidejű többszálú feldolgozás (Egyidejű Többszálú, SMT) És chip szintű többszálú (Forgács- szint Többszálú, CMT). A két megközelítés elsősorban abban különbözik, hogy mi a szál. Tipikus képviselő SMT az úgynevezett technológia HTT (Hiper- befűzés Technológia).

P az építészet első képviselői CMP szerverekben való használatra tervezett processzorokká váltak. Ez egy egyszerű tandem volt, az ilyen eszközökben két, valójában egymástól független mag került egy hordozóra (8. ábra,). Ennek a sémának a fejlesztése először egy közös gyorsítótárral rendelkező struktúrává vált - memória 1. ábra. 9, majd egy struktúra többszálas minden magban.

A többmagos processzorok előnyei a következők.

    A tervezés és a gyártás egyszerűsége (természetesen relatív). Egy hatékony mag kifejlesztése után kristályban reprodukálható, kiegészítve az architektúrát a szükséges rendszerelemekkel.

    Az energiafogyasztás észrevehetően csökken. Ha például két magot helyez egy chipre, és olyan órafrekvencián működteti azokat, amelyek teljesítménye megegyezik az egymagos „testvérével”, majd összehasonlítja mindkettő energiafogyasztását, akkor azt fogja látni, hogy a teljesítmény a fogyasztás többszörösére csökken, mivel szinte a négyzetfrekvenciákkal arányosan nő.

Általában, ha figyelmesen megnézzük a 8. és 9. ábrát, láthatjuk, hogy nincs alapvető különbség mondjuk egy 2 processzoros rendszer és egy 2 magos processzoros számítógép között. A problémák ugyanazok. És az egyik első a megfelelő operációs rendszer.

A feldolgozók munkájának megszervezésének módjai

A számítógépes architektúra fejlesztésének fő ösztönzője a termelékenység növelése. A számítógépek termelékenységének növelésének egyik módja a specializáció (mind a számítógép egyes elemei, mind a speciális számítástechnikai rendszerek létrehozása).

A processzorok specializálódása a 60-as években kezdődött, amikor a nagy számítógépek központi processzora felszabadult a bemeneti-kimeneti információk rutinszerű működése alól. Ez a funkció átkerült az I / O processzorra, amely kommunikál a perifériás eszközökkel.

A teljesítmény javításának másik módja, ha eltávolodunk a soros von Neumann architektúrától, és a párhuzamosságra összpontosítunk. M. Flynn felhívta a figyelmet arra, hogy a számítási párhuzamosságnak csak két oka van: a rendszerben egyidejűleg létező parancsfolyamok függetlensége és az egy parancsfolyamban feldolgozott adatok szétkapcsolása. Ha a számítási folyamat párhuzamosságának első oka közismert (ez az egyszerű többfeldolgozás), akkor részletesebben kitérünk az adatpárhuzamra, mivel a legtöbb esetben a programozók elől rejtve létezik, és a szakemberek korlátozott köre használja. .

Az adatok párhuzamosságának legegyszerűbb példája két parancsból álló sorozat: A=B+C; D=E*F;

Ha szigorúan követjük a Neumann-elvet, akkor a második művelet csak az első művelet befejezése után indítható végrehajtásra. Nyilvánvaló azonban, hogy ezen utasítások végrehajtási sorrendje nem számít - az első utasítás A, B és C operandusai semmilyen módon nem állnak kapcsolatban a második utasítás D, E és F operandusaival. Más szóval, a két művelet éppen azért párhuzamos, mert ezen utasítások operandusai nem kapcsolódnak egymáshoz. Számos példát hozhat három vagy több, egymástól független adatokkal rendelkező parancsból álló sorozatra, amely egyértelmű következtetéshez vezet: szinte minden program tartalmaz műveletcsoportokat párhuzamos adatokon.

D Egy másik típusú adatpárhuzam jellemzően a ciklikus adatfeldolgozó programokban fordul elő. Például két tömb elemeinek összeadásakor egy parancs nagy tömböt (több adatfolyamot) tud feldolgozni. Az ilyen utasításokat vektornak, az ezt a módot megvalósító processzort pedig vektornak nevezzük. A következő definíciót adhatja meg: „A vektorprocesszor olyan processzor, amely párhuzamos műveletek végrehajtását biztosítja adattömbökön (vektorokon). Párhuzamos feldolgozóelemek csoportjára épülő speciális architektúra jellemzi, és képek, mátrixok és adattömbök feldolgozására szolgál.

A szoftveres párhuzamosságnak több olyan besorolása létezik, amelyek jelentésükben meglehetősen közel állnak egymáshoz, amelyek közül a legelismertebb osztályozás hat szintre épül (10. ábra). A párhuzamosság felső három szintjét nagy programobjektumok – független jobok, programok és programeljárások – foglalják el. A nem kapcsolódó utasítások, ciklusok és műveletek alkotják a párhuzamosság alsó szintjeit. Ha egy ilyen rangsort kombinálunk M. Flyn "párhuzamos parancsfolyamok" és "párhuzamos adatfolyamok" kategóriáival, akkor azt láthatjuk, hogy a felső szintű párhuzamosság elsősorban a sok független parancsfolyamnak köszönhető, az alsó szint pedig a párhuzamosság főként a nem kapcsolódó adatfolyamoknak köszönheti létezését.

Csővezetékek és csővezeték-szerkezetek

RÓL RŐL valaminek a napja hatékony módszerek a számítógépek teljesítményének javítása folyamatban van. ábrán. tizenegy A) egyetlen univerzális blokkban történő feldolgozás látható, és a 11. ábra b)És V)- a szállítószalagon. A csővezetékes feldolgozás ötlete az, hogy az univerzális funkcionális blokk (FB) által megvalósított funkciót több speciális egység között ossza fel. A csővezeték minden funkcionális blokkjának azonos sebességgel (legalább átlagosan) kell futnia. A gyakorlatban ez utóbbit ritkán érik el, és ennek eredményeként a csővezeték teljesítménye csökken, mivel a bemeneti adatok fogadásának időtartamát az egyes funkcionális blokkok maximális feldolgozási ideje határozza meg. Az FB működési idejének ingadozásának kompenzálására pufferregiszterek vannak közöttük. Univerzálisabb technika a FIFO típusú puffertároló eszközök beépítése (11. ábra). V). Még egy különbséget kell megjegyezni az ábrák között. b)És V). Szerkezetben V) nincs SI szinkronizációs vonal. Ez nem azt jelenti, hogy nem lehet hasonló szerkezetű, csak azt, hogy kétféle csővezeték létezik: szinkron közös szinkronvonallal és aszinkron, egy nélkül. Az előbbieket is hívják parancskezeléssel, és a második adatkezeléssel. A szisztolés tömbök az aszinkron csővezetékek példái.

NAK NEK A csővezeték nem mindig egy lineáris blokklánc. Néha előnyös funkcióblokkok nem szekvenciálisan, hanem a feldolgozási logikának megfelelően bonyolultabb séma szerint kapcsolódnak egymáshoz, miközben a lánc egyes blokkjai átugorhatók, míg mások ciklikus struktúrákat alkothatnak. ábrán látható egy két X és Y függvény kiszámítására alkalmas nemlineáris csővezeték szerkezete, valamint egy diagram, amelyen az X és Y függvények bizonyos funkcionális blokkokat igényelnek. 12

  • oktatóanyag

Ebben a cikkben megpróbálom leírni a több program párhuzamos végrehajtására képes, azaz többmagos, többprocesszoros, többszálú rendszerek leírására használt terminológiát. Különböző típusok A párhuzamosság az IA-32 CPU-ban különböző időpontokban és némileg következetlen sorrendben jelent meg. Könnyű összezavarodni ebben az egészben, különösen, ha az operációs rendszerek gondosan elrejtik a részleteket a kevésbé kifinomult alkalmazási programok elől.

A cikk célja bemutatni, hogy a rajtuk futó programok sokprocesszoros, többmagos és többszálas rendszerek konfigurációinak sokféleségével lehetőség nyílik mind az absztrakcióra (a különbségek figyelmen kívül hagyására), mind a sajátosságok figyelembevételére ( a konfiguráció programozott megtanulásának képessége).

Figyelmeztetés a cikkben található ®, ™ jelekre

Megjegyzésem megmagyarázza, hogy a vállalati alkalmazottaknak miért kell szerzői jogi védjegyeket használniuk nyilvános kommunikációjuk során. Ebben a cikkben elég gyakran kellett őket használni.

CPU

Természetesen a legrégebbi, leggyakrabban használt és félreérthető kifejezés a "processzor".

BAN BEN modern világ a processzor az a (csomag), amit gyönyörű kiskereskedelmi dobozban vagy nem túl szép OEM-csomagban veszünk. Oszthatatlan entitás, amelyet az alaplap aljzatába helyeznek. Még akkor is, ha nincs csatlakozó, és nem lehet eltávolítani, vagyis ha szorosan van forrasztva, ez egy chip.

A mobil rendszerek (telefonok, táblagépek, laptopok) és a legtöbb asztali számítógép egyetlen processzorral rendelkeznek. A munkaállomások és szerverek néha két vagy több processzorral büszkélkedhetnek ugyanazon az alaplapon.

Többszörös támogatás CPU-k egy rendszerben számos változtatást igényel a kialakításában. Minimálisan biztosítani kell a fizikai kapcsolatukat (az alaplapon több aljzatot kell biztosítani), megoldani a processzor azonosítását (lásd később ebben a cikkben, valamint az előző megjegyzésemet), a memóriaelérés koordinálását és a megszakítások kézbesítését ( a megszakításvezérlőnek képesnek kell lennie több processzor megszakításainak irányítására) és természetesen az operációs rendszer támogatására. Sajnos nem találtam dokumentált említést arról a pillanatról, amikor az első többprocesszoros rendszer létrejött Intel processzorokon, de a Wikipédia azt állítja, hogy a Sequent Computer Systems már 1987-ben szállította őket Intel 80386 processzorokkal.. Elérhetővé válik az egy rendszerben lévő több chip széles körű támogatása kezdve az Intel® Pentiummal.

Ha több processzor van, akkor mindegyiknek saját csatlakozója van az alaplapon. Ugyanakkor mindegyik rendelkezik teljes független másolattal az összes erőforrásról, például regiszterekről, végrehajtó eszközökről, gyorsítótárakról. Közös memóriájuk van - a RAM. Az emlékezet különféle és meglehetősen nem triviális módon kapcsolódhat hozzájuk, de ez egy külön történet, amely túlmutat jelen cikk keretein. A lényeg az, hogy a végrehajtható programoknak minden esetben egy homogén megosztott memória illúzióját kell kelteniük, amely a rendszer összes processzoráról elérhető.


Felszállásra kész! Intel® asztali alaplap D5400XS

Mag

A történelem során az Intel IA-32 többmagos része később jelent meg, mint az Intel® HyperThreading, de a logikai hierarchiában a következő helyen áll.

Úgy tűnik, hogy ha több processzor van a rendszerben, akkor a teljesítménye nagyobb (az összes erőforrást kihasználó feladatoknál). Ha azonban a köztük lévő kommunikáció költsége túl magas, akkor a párhuzamosságból származó összes nyereséget megöli a közös adatok átvitelének hosszú késése. Pontosan ez figyelhető meg a többprocesszoros rendszerekben - mind fizikailag, mind logikailag nagyon távol vannak egymástól. Az ilyen körülmények között történő hatékony kommunikációhoz speciális buszokat kell feltalálni, mint például az Intel® QuickPath Interconnect. A végső megoldás energiafelhasználása, mérete és ára természetesen nem csökken mindebből. A komponensek magas integráltságának kell segítenie - a párhuzamos program részeit végrehajtó áramköröket közelebb kell húzni egymáshoz, lehetőleg egy chipen. Más szóval, egy processzornak több dolgot is meg kell szerveznie magok, mindenben azonosak egymással, de önállóan működnek.

Az Intel első IA-32 többmagos processzorait 2005-ben mutatták be. Azóta a magok átlagos száma a szervereken, asztali gépeken és most már mobil platformokon is folyamatosan növekszik.

Ellentétben az ugyanabban a rendszerben lévő két egymagos processzorral, amelyek csak memóriát osztanak meg, két mag is megoszthatja a gyorsítótárakat és a memóriával való interakcióért felelős egyéb erőforrásokat. Leggyakrabban az első szint gyorsítótárai privátak maradnak (mindegyik magnak megvan a maga sajátja), míg a második és harmadik szint megosztott vagy különálló. A rendszernek ez a szervezése csökkenti a szomszédos magok közötti adattovábbítás késését, különösen, ha közös feladaton dolgoznak.


Egy négymagos mikrofelvétel Intel processzor kódnéven Nehalem. A különálló magok, a megosztott L3 gyorsítótár, valamint a QPI hivatkozások más processzorokhoz és egy megosztott memóriavezérlőhöz vannak kiemelve.

hiperszál

Körülbelül 2002-ig az egyetlen módja annak, hogy olyan IA-32 rendszert szerezzenek, amely képes két vagy több program párhuzamos végrehajtására, a többprocesszoros rendszerek használata volt. Bemutatták az Intel® Pentium® 4-et, valamint a Foster (Netburst) kódnevű Xeon vonalat új technológia- hiperszálak vagy hiperszálak, - Intel® HyperThreading (a továbbiakban HT).

Nincs új a nap alatt. A HT egy speciális esete annak, amit a szakirodalom szimultán többszálú (SMT) néven emleget. Ellentétben a "valódi" magokkal, amelyek teljes és független másolatok, a HT esetében a belső csomópontok csak egy része duplikálódik egy processzorban, amely elsősorban az architekturális állapot tárolásáért felelős - regiszterek. Az adatok rendszerezéséért és feldolgozásáért felelős végrehajtó csomópontok egyes számban maradnak, és bármikor legfeljebb az egyik szál használja őket. A magokhoz hasonlóan a hiperszálak is megosztják a gyorsítótárakat egymás között, de a szinttől kezdve az adott rendszertől függ.

Nem próbálom megmagyarázni az SMT-tervek összes előnyét és hátrányát általában, és különösen a HT-terveket. Az érdeklődő olvasó számos forrásban találhat elég részletes leírást a technológiáról, és természetesen a Wikipédián is. Mindazonáltal megjegyzem a következő fontos pontot, amely megmagyarázza a hiperszálak számának jelenlegi korlátozásait a valós termelésben.

Szálkorlátok
Milyen esetekben indokolt a "becstelen" többmagos jelenléte HT formájában? Ha az egyik alkalmazási szál nem tudja betölteni a kernelen belüli összes végrehajtó csomópontot, akkor azokat egy másik szálnak "kölcsönözheti". Ez jellemző azokra az alkalmazásokra, amelyeknek nem a számításokban, hanem az adatelérésben van "szűk keresztmetszete", vagyis gyakran generálnak gyorsítótár-kihagyásokat, és meg kell várniuk, hogy a memóriából adatátvitelre kerüljön sor. Ez idő alatt a HT nélküli kernel tétlen lesz. A HT jelenléte lehetővé teszi a szabad végrehajtó csomópontok gyors átváltását egy másik architekturális állapotba (mivel csak duplikált), és végrehajthatja az utasításait. Ez egy speciális esete a késleltetési elrejtésnek nevezett trükknek, amikor egy hosszú műveletet, amelynek során hasznos erőforrások tétlenek, más feladatok párhuzamos végrehajtása takar el. Ha az alkalmazás már nagymértékben kihasználja a kernel erőforrásait, akkor a hyperthreading jelenléte nem teszi lehetővé a gyorsítást - itt "becsületes" kernelekre van szükség.

Tipikus forgatókönyvek a gépi architektúrákhoz tervezett asztali és szerveralkalmazásokhoz Általános rendeltetésű, a HT-vel megvalósított párhuzamosság lehetősége. Ez a potenciál azonban gyorsan „kihasználódik”. Talán emiatt szinte az összes IA-32 processzoron a hardveres hiperszálak száma nem haladja meg a kettőt. Tipikus forgatókönyvekben a három vagy több hiperszál használatából származó haszon csekély lenne, de a szerszámméret, az energiafogyasztás és a költségek vesztesége jelentős.

Egy másik helyzet figyelhető meg a videogyorsítókon végzett tipikus feladatoknál. Ezért ezekre az architektúrákra az SMT technológia nagyobb szálszámú használata jellemző. Mivel a (2010-ben bevezetett) Intel® Xeon Phi társprocesszorok ideológiailag és genealógiailag meglehetősen közel állnak a videokártyákhoz, előfordulhat, hogy négy hyperthreading minden magon – az IA-32 egyedi konfigurációja.

logikai processzor

A párhuzamosság leírt három "szintje" (processzorok, magok, hiperszálak) közül néhány vagy akár mindegyik hiányozhat egy adott rendszerből. Ez befolyásolja BIOS beállítások(a többmagos és a többszálas funkció egymástól függetlenül le van tiltva), mikroarchitektúra (például a HT hiányzott az Intel® Core™ Duo-ból, de a Nehalem kiadásával visszahozták), és rendszeresemények (a többprocesszoros szerverek üzemzavar esetén állítsa le a meghibásodott processzorokat, és folytassa a repülést) a többinél). Hogyan látható ez a többrétegű párhuzamosság az operációs rendszer és végső soron az alkalmazások számára?

Továbbá a kényelem kedvéért egyes rendszerekben a processzorok, magok és szálak számát hármasával jelöljük ( x, y, z), Ahol x a processzorok száma y az egyes processzorokban lévő magok száma, és z a hiperszálak száma az egyes magokban. A továbbiakban erre a trióra fogok hivatkozni topológia- bevett kifejezés, aminek nem sok köze van a matematika részéhez. Munka p = xyz a megnevezett entitások számát határozza meg logikai processzorok rendszerek. Meghatározza a párhuzamosan futó osztott memóriás rendszer független alkalmazási folyamatkörnyezeteinek teljes számát, amelyet az operációs rendszernek figyelembe kell vennie. Azért mondom, hogy "kényszer", mert nem tudja szabályozni két különböző logikai processzoron lévő folyamat végrehajtási sorrendjét. Ez vonatkozik a hiperszálakra is: bár "szekvenciálisan" futnak ugyanazon a magon, a konkrét sorrendet a hardver határozza meg, és nem látható és nem vezérlik a programok.

Az operációs rendszer leggyakrabban elrejti a végalkalmazások elől azon rendszer fizikai topológiájának jellemzőit, amelyen fut. Például a következő három topológia: (2, 1, 1), (1, 2, 1) és (1, 1, 2) - az operációs rendszer kétként jelenik meg logikai processzorok, bár az első két processzoros, a második kétmagos, a harmadik pedig csak két szálú.


ablakok feladatkezelő 8 logikai processzort mutat; de ez mennyi a processzorokban, magokban és hiperszálakban?


A Linux tetején 4 logikai processzor látható.

Ez meglehetősen kényelmes az alkalmazott alkalmazások készítői számára - nem kell foglalkozniuk a számukra gyakran jelentéktelen hardverfunkciókkal.

A topológia szoftveres meghatározása

Természetesen a topológia egyetlen számú logikai processzorra való absztrahálása bizonyos esetekben elegendő okot ad a zavarra és félreértésekre (heves internetes vitákban). Azoknak a számítástechnikai alkalmazásoknak, amelyek a hardverből a legtöbb teljesítményt szeretnék kihozni, finoman szabályozni kell, hogy szálaik hol helyezkedjenek el: közelebb egymáshoz a szomszédos hiperszálakon, vagy fordítva, távolabb a különböző processzorokon. Az ugyanazon a magon vagy processzoron belüli logikai processzorok közötti kommunikáció sebessége sokkal gyorsabb, mint a processzorok közötti adatátvitel sebessége. Heterogenitás lehetősége a szervezetben véletlen hozzáférésű memória is bonyolítja a képet.

A rendszer topológiájáról mint egészről, valamint az egyes logikai processzorok helyzetéről az IA-32-ben a CPUID utasítás segítségével érhetők el információk. Az első többprocesszoros rendszerek megjelenése óta a logikai processzor azonosítási sémát többször is kiterjesztették. Ennek egyes részeit a mai napig a CPUID 1., 4. és 11. lapja tartalmazza. A következő, a cikkből vett blokkdiagramból meghatározható, hogy a lapok közül melyiket érdemes megnézni:

Nem foglalkozom itt az algoritmus egyes részeinek minden részletével. Ha van érdeklődés, akkor ennek a cikknek a következő részét szentelhetjük. Utalni fogom az érdeklődő olvasót, amelyben ezt a kérdést a lehető legrészletesebben elemzik. Itt először röviden leírom, mi az APIC, és hogyan kapcsolódik a topológiához. Ezután fontolja meg a 0xB (11 hüvelykes) lappal való munkát decimális), amely pillanatnyilag az „apico-építés” utolsó szava.

APIC ID
A helyi APIC (fejlett programozható megszakításvezérlő) egy olyan eszköz (ma már a processzor része), amely egy adott logikai processzorhoz érkező megszakítások kezeléséért felelős. Minden logikai processzornak saját APIC-je van. És mindegyiknek rendelkeznie kell a rendszerben egyedi érték APICID. Ezt a számot a megszakításvezérlők használják az üzenetek kézbesítésekor történő címzésre, és mindenki más (például az operációs rendszer) a logikai processzorok azonosítására. Ennek a megszakításvezérlőnek a specifikációja az Intel 8259 PIC-ről a Dual PIC-en, APIC-on és xAPIC-on keresztül x2APIC-re fejlődött.

Jelenleg az APIC ID-ben tárolt szám szélessége elérte a teljes 32 bitet, bár korábban 16 bitre korlátozták, még korábban is csak 8 bitre. Ma a régi idők maradványai szétszórva vannak a CPUID-ben, de az APIC ID mind a 32 bitje visszakerül a CPUID.0xB.EDX-ben. A CPUID utasítást függetlenül végrehajtó logikai processzorok különböző értéket adnak vissza.

A családi kötelékek tisztázása
Az APIC ID értéke önmagában semmit sem mond a topológiáról. Ahhoz, hogy megtudja, melyik két logikai processzor található ugyanabban a fizikaiban (azaz a hiperszálak „testvérei”), melyik kettő ugyanabban a processzorban, és melyek teljesen különböző processzorok, össze kell hasonlítani az APIC azonosítójuk értékeit. A kapcsolat mértékétől függően néhány bitje megegyezik. Ezt az információt a CPUID.0xB allisták tartalmazzák, amelyek egy operandussal vannak kódolva az ECX-ben. Mindegyik leírja az egyik topológiaszint bitmezőjének pozícióját az EAX-ben (pontosabban, hogy az APIC ID-ben hány bitet kell jobbra tolni a topológia alsó szintjei eltávolításához), valamint mint ennek a szintnek a típusa - hiperszál, mag vagy processzor - az ECX-ben.

Az ugyanazon a magon belüli logikai processzorok minden APIC azonosító bittel megegyeznek, kivéve az SMT mezőben lévőket. Azon logikai processzorok esetében, amelyek ugyanabban a processzorban vannak, minden bit, kivéve a Core és az SMT mezőket. Mivel a CPUID.0xB allapjainak száma nőhet, ezt a sémát lehetővé teszi a topológiák nagyobb számú szinttel történő leírásának támogatását, ha a jövőben szükség lesz rá. Ezen túlmenően lehetőség lesz a meglévők között köztes szintek bevezetésére.

E séma felépítésének fontos következménye, hogy a rendszer összes logikai processzorának összes APIC azonosítójának halmazában lehetnek "lyukak", pl. nem fognak egymás után menni. Például egy többmagos processzorban, ahol a HT le van tiltva, minden APIC azonosító párosnak bizonyulhat, mivel a hiperszál szám kódolásáért felelős legkisebb jelentőségű bit mindig nulla lesz.

Vegye figyelembe, hogy a CPUID.0xB nem az egyetlen információforrás az operációs rendszer számára elérhető logikai processzorokról. A számára elérhető összes processzor listája az APIC ID értékekkel együtt a MADT ACPI táblában van kódolva.

Operációs rendszerek és topológia

OS információkat nyújtanak a logikai processzorok topológiájáról az alkalmazásoknak saját interfészeiket használva.

Linuxon a topológia információkat a /proc/cpuinfo pszeudofájl, valamint a dmidecode parancs kimenete tartalmazza. Az alábbi példában a cpuinfo tartalmát szűröm néhány nem HT négymagos rendszeren, és csak a topológiával kapcsolatos bejegyzéseket hagyom meg:

Rejtett szöveg

[e-mail védett]:~$ cat /proc/cpuinfo |grep "processzor\|fizikai\ id\|testvérek\|mag\|magok\|apicid" processzor: 0 fizikai azonosító: 0 testvér: 4 mag azonosító: 0 cpu mag: 2 apicid: 0 kezdeti apicid: 0 processzor: 1 fizikai azonosító: 0 testvér: 4 mag azonosító: 0 cpu mag: 2 apicid: 1 kezdeti apicid: 1 processzor: 2 fizikai azonosító: 0 testvér: 4 mag azonosító: 1 cpu mag: 2 apicid: 2 kezdeti apicid: 2 processzor: 3 fizikai azonosító: 0 testvér: 4 mag azonosító: 1 cpu mag: 2 apicid: 3 kezdeti apicid: 3

A FreeBSD-ben a topológia a kern.sched.topology_spec változóban található sysctl mechanizmuson keresztül XML-ként jelenik meg:

Rejtett szöveg

[e-mail védett]:~$ sysctl kern.sched.topology_spec kern.sched.topology_spec: 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 2, 3, 4, 5, 6, 7 0, 1 SZÁM csoportSMT csoport 2, 3 SZÁM csoportSMT csoport 4, 5 SZÁM csoportSMT csoport 6, 7 SZÁM csoportSMT csoport

Az MS Windows 8 rendszerben a topológiai információk a Feladatkezelőben láthatók.