Internet ablakok Android

És fontolja meg, mi fog történni két különböző esetben. Univerzális jelenet és tárgyak

Bevezetés. A számítástechnika rohamos ütemben fejlődik. A számítástechnikai eszközök egyre erősebbek, kisebbek, kényelmesebbek, de az utóbbi időben az eszközök teljesítményének növelése nagy probléma. 1965-ben Gordon Moore (az Intel egyik alapítója) arra a következtetésre jutott, hogy "az integrált áramköri chipen elhelyezett tranzisztorok száma 24 havonta megduplázódik".

Az első fejlesztések a többprocesszoros rendszerek létrehozása terén a 70-es években kezdődtek. Hosszú ideig az ismert egymagos processzorok teljesítményét növelték az órajel frekvenciájának növelésével (a teljesítmény legfeljebb 80% -át csak az órajel frekvencia határozta meg) a chipen lévő tranzisztorok számának egyidejű növelésével. A fizika alaptörvényei megállították ezt a folyamatot: a chipek kezdtek túlmelegedni, a technológiai pedig megközelítette a szilícium atomok méretét. Mindezek a tényezők a következőkhöz vezettek:

  • megnőttek a szivárgó áramok, aminek következtében nőtt a hőleadás és az energiafogyasztás.
  • A processzor sokkal "gyorsabb" lett, mint a memória. A teljesítmény leromlott a hívási késleltetés miatt. véletlen hozzáférésű memóriaés betölti az adatokat a gyorsítótárba.
  • van olyan, hogy "von Neumann szűk keresztmetszet". Ez azt jelenti, hogy a processzor architektúrája nem hatékony egy program végrehajtása során.

A többprocesszoros rendszerek (mint a probléma megoldásának egyik módja) nem terjedtek el széles körben, mivel költséges és nehezen gyártható többprocesszoros rendszereket igényeltek. alaplapok. Ennek alapján más módon nőtt a termelékenység. A multithreading koncepciója hatékonynak bizonyult - több parancsfolyam egyidejű feldolgozása.

Hyper-Threading Technology (HTT) vagy szuperszálas technológia, amely lehetővé teszi a processzor számára, hogy több programszálat futtasson egyetlen magon. Sok szakértő szerint a HTT lett az előfeltétele a többmagos processzorok létrehozásának. Azt, hogy a processzor egyszerre több programszálat hajt végre, szálszintű párhuzamosságnak (TLP – szál szintű párhuzamosság) nevezzük.

A többmagos processzorban rejlő lehetőségek kiaknázásához a végrehajtható programnak az összes számítási magot fel kell használnia, ami nem mindig érhető el. Azok a régi soros programok, amelyek csak egy magot használhatnának, már nem futnak gyorsabban az új generációs processzorokon, ezért a programozók egyre inkább részt vesznek az új mikroprocesszorok fejlesztésében.

1. Általános fogalmak

Az építészet tág értelemben egy sok elemből álló összetett rendszer leírása.

A fejlesztés során a félvezető szerkezetek (mikroáramkörök) fejlődnek, ezért folyamatosan változnak a processzorok felépítésének elvei, az összetételükben szereplő elemek száma, kölcsönhatásuk szerveződése. Így az azonos felépítésű CPU-kat általában azonos architektúrájú processzoroknak nevezik. Magukat pedig ezeket az elveket processzorarchitektúrának (vagy mikroarchitektúrának) nevezik.

A mikroprocesszor (vagy processzor) a számítógép fő alkotóeleme. Információkat dolgoz fel, programokat hajt végre, és vezérli a rendszer többi eszközét. A processzor teljesítménye határozza meg, hogy a programok milyen gyorsan futnak.

A mag minden mikroprocesszor alapja. Több millió tranzisztorból áll, amelyek egy szilícium chipen helyezkednek el. A mikroprocesszor speciális cellákra, úgynevezett regiszterekre van felosztva. Általános rendeltetésű(RON). A processzor munkája általában abból áll, hogy a parancsokat és adatokat a memóriából meghatározott sorrendben kinyeri és végrehajtja. Ezenkívül a PC sebességének növelése érdekében a mikroprocesszor belső gyorsítótárral van felszerelve. cache memória az belső memória pufferként használt processzor (a RAM-mal való kommunikáció megszakításai elleni védelem érdekében).

Az IBM-kompatibilis PC-kben használt Intel processzorok több mint ezer utasítással rendelkeznek, és a kiterjesztett utasításkészlettel rendelkező processzorokhoz tartoznak - CISC-processzorok (CISC - Complex Instruction Set Computing).

1.1 Nagy teljesítményű számítástechnika. Párhuzamosság

Fejlődési ütem Számítástechnika Könnyen nyomon követhető: az ENIAC-tól (az első általános célú elektronikus digitális számítógép) másodpercenként több ezer művelettel a Tianhe-2 szuperszámítógépig (1000 billió lebegőpontos művelet másodpercenként). Ez azt jelenti, hogy a számítási sebesség 60 év alatt trilliószorosára nőtt. A nagy teljesítményű számítástechnikai rendszerek létrehozása az egyik legnehezebb tudományos és műszaki feladat. Míg a számítási sebesség technikai eszközökkel mindössze néhány milliószorosára nőtt, a számítástechnika általános sebessége pedig trilliószorosára nőtt. Ez a hatás a párhuzamosság használatával érhető el a számítástechnika minden szakaszában. A párhuzamos számítástechnika megköveteli a memória racionális elosztásának, az információátvitel megbízható módjainak és a számítási folyamatok összehangolásának a keresését.

1.2 Szimmetrikus többfeldolgozás

A Symmetric Multiprocessing (rövidítve SMP) vagy szimmetrikus többfeldolgozás a többprocesszoros rendszerek speciális architektúrája, amelyben több processzor fér hozzá egy közös memóriához. Ez egy nagyon elterjedt architektúra, amelyet az utóbbi időben széles körben használnak.

Az SMP használatakor több processzor dolgozik egyidejűleg egy számítógépben, mindegyik a saját feladatával. A jó minőségű operációs rendszerrel rendelkező SMP rendszer racionálisan osztja el a feladatokat a processzorok között, egyenletes terhelést biztosítva mindegyiknek. A memória-visszafordítással azonban gond van, mert ehhez még az egyprocesszoros rendszerek is viszonylag hosszú időt igényelnek. Így az SMP-ben a RAM-hoz való hozzáférés szekvenciálisan történik: először egy processzor, majd a második.

A fenti sajátosságok miatt az SMP rendszereket kizárólag tudományos területen, iparban, üzleti életben alkalmazzák, munkairodákban rendkívül ritkán. A hardveres megvalósítás magas költsége mellett az ilyen rendszerekhez nagyon drága és jó minőségű szoftverre van szükség, amely többszálú feladatok végrehajtását biztosítja. Rendszeres programok (játékok, szövegszerkesztők) nem fognak hatékonyan működni az SMP rendszereken, mert nem biztosítják ezt a fokú párhuzamosságot. Ha bármilyen programot adaptál egy SMP rendszerhez, rendkívül hatástalanná válik az egyprocesszoros rendszereken való munkavégzés, ami ahhoz vezet, hogy ugyanannak a programnak több verzióját kell létrehozni különböző rendszerek számára. Kivételt képez például az ABLETON LIVE program (zene létrehozására és Dj-készletek készítésére készült), amely támogatja a többprocesszoros rendszereket. Ha egy normál programot futtat többprocesszoros rendszeren, akkor is kicsit gyorsabban fog futni, mint egyetlen processzoron. Ennek oka az úgynevezett hardveres megszakítás (a program leállítása a kernel általi feldolgozáshoz), amely egy másik szabad processzoron fut le.

Az SMP rendszer (mint bármely más párhuzamos számítási alapú rendszer) fokozott követelményeket támaszt egy olyan memóriaparaméterrel szemben, mint a memóriabusz sávszélessége. Ez gyakran korlátozza a processzorok számát egy rendszerben (a modern SMP rendszerek akár 16 processzorral is hatékonyan működnek).

Mivel a processzorok megosztott memóriával rendelkeznek, szükségessé válik annak ésszerű használata és az adatok koordinálása. Egy többprocesszoros rendszerben kiderül, hogy több gyorsítótár is működik egy megosztott memória-erőforráshoz. A gyorsítótár koherenciája egy gyorsítótár-tulajdonság, amely biztosítja a megosztott erőforrások egyedi gyorsítótáraiban tárolt adatok integritását. Ez a koncepció- a memóriakoherencia fogalmának egy speciális esete, ahol több mag fér hozzá egy közös memóriához (a modern többmagos rendszerekben mindenütt jelen van). Ha ezeket a fogalmakat általánosságban leírjuk, akkor a kép a következő lesz: ugyanaz az adatblokk különböző gyorsítótárakba tölthető, ahol az adatok feldolgozása eltérő.

Ha valamelyik adatváltozási értesítést nem használ, hiba történik. A gyorsítótár koherenciáját az ilyen ütközések megoldására és a gyorsítótárak adatainak konzisztenciájának megőrzésére tervezték.

Az SMP rendszerek a MIMD (multi in-struction multi data computing system) számítási rendszerek osztályozásának egy részhalmaza Flynn (a Stanford Egyetem professzora, a Palyn Associates társalapítója) szerint. E besorolás szerint a párhuzamos rendszerek szinte minden fajtája a MIMD-hez köthető.

A többprocesszoros rendszerek típusokra bontása a memóriahasználat elve szerinti felosztás alapján történik. Ez a megközelítés lehetővé tette a következő fontos típusok megkülönböztetését

többprocesszoros rendszerek - többprocesszoros (többprocesszoros rendszerek megosztott memóriával) és többszámítógép (külön memóriával rendelkező rendszerek). A párhuzamos számítástechnikában használt megosztott adatok szinkronizálást igényelnek. Az adatszinkronizálás feladata az egyik legfontosabb probléma, ennek megoldása a többprocesszoros és többmagos fejlesztésekben, és ennek megfelelően a szükséges szoftver mérnökök és programozók számára kiemelt fontosságú. Az adatok fizikai memóriafoglalással oszthatók meg. Ezt a megközelítést nem egységes memóriaelérésnek (NUMA) nevezik.

Ezek a rendszerek a következőket tartalmazzák:

  • Olyan rendszerek, ahol csak az egyes processzorok gyorsítótárát használják az adatok megjelenítésére (csak gyorsítótárat tartalmazó memória architektúra).
  • Helyi gyorsítótár koherenciával rendelkező rendszerek különböző processzorokhoz (cache-koherens NUMA).
  • Rendszerek ellátással nyilvános hozzáférés a processzorok egyéni memóriájába a gyorsítótár nélküli koherens NUMA hardverszintű megvalósítása nélkül.

A többprocesszoros rendszerek létrehozásának problémája leegyszerűsödik az elosztott osztott memória használatával, de ez a módszer a párhuzamos programozás bonyolultságának észrevehető növekedéséhez vezet.

1.3 Egyidejű többszálú feldolgozás

A szimmetrikus többfeldolgozás összes fenti hátránya alapján célszerű más módszereket kidolgozni és fejleszteni a teljesítmény javítására. Ha elemzi az egyes tranzisztorok működését a processzorban, nagyon figyelhet Érdekes tény- a legtöbb számítási művelet végrehajtása során nem minden processzorkomponens vesz részt (a legújabb tanulmányok szerint - az összes tranzisztor körülbelül 30% -a). Így ha a processzor mondjuk egy egyszerű aritmetikai műveletet hajt végre, akkor a processzor nagy része tétlen, ezért más számításokhoz is használható. Tehát, ha a processzor éppen valós műveleteket végez, akkor a szabad részbe egy egész számszerű aritmetikai műveletet lehet betölteni. A processzor terhelésének növelése érdekében spekulatív (vagy haladó) műveletek végrehajtását hozhatja létre, ami a processzor hardveres logikájának nagy bonyolítását igényli. Ha a program előre definiál egymástól függetlenül végrehajtható szálakat (parancssorokat), akkor ez jelentősen leegyszerűsíti a feladatot ( ez a módszer könnyen megvalósítható hardverben). Ezt az ötletet, amely Dean Tulsenhez tartozik (ő dolgozta ki 1955-ben a Washingtoni Egyetemen), szimultán többszálú feldolgozásnak nevezik. Később fejlesztették ki az Intel által hiperszálnak nevezik. Például egy processzort, amely több szálat hajt végre, a Windows operációs rendszer több processzorként érzékeli. Ennek a technológiának a használata ismét megfelelő szintű szoftvert igényel. A többszálú technológia használatának maximális hatása körülbelül 30%.

1.4 Többmagos

A többszálú technológia a többmagos megvalósítás szoftverszinten. A teljesítmény további növelése, mint mindig, változtatásokat igényel a processzor hardverében. A rendszerek és architektúrák bonyolultsága nem mindig hatékony. Ellentétes vélemény van: „minden zseniális egyszerű!”. Valójában a processzor teljesítményének növelése érdekében egyáltalán nem szükséges növelni. órajel frekvenciája, bonyolítja a logikai és hardver komponenseket, hiszen elég csak racionalizálni és finomítani a meglévő technológiát. Ez a módszer nagyon jövedelmező - nem kell megoldani a processzor hőelvezetésének növelését, új drága berendezések fejlesztését a mikroáramkörök gyártásához. Ezt a megközelítést a többmagos technológia részeként valósították meg - több számítási mag megvalósítása egyetlen chipen. Ha az eredeti processzort vesszük alapul, és összehasonlítjuk a teljesítménynövekedést, amelyet több teljesítménynövekedés megvalósítása eredményez, egyértelmű, hogy a többmagos technológia a legjobb megoldás.

Ha összehasonlítjuk egy szimmetrikus többprocesszoros és egy többmagos architektúráját, akkor szinte azonosnak bizonyulnak. A magok cache memóriája lehet többszintű (helyi és megosztott, a RAM-ból pedig közvetlenül a második szintű cache memóriába tölthetők be az adatok). A processzorok többmagos architektúrájának megfontolt előnyei alapján a gyártók erre összpontosítanak. Ez a technológia meglehetősen olcsónak és univerzálisnak bizonyult, ami lehetővé tette a széles piacra vitelét. Ezenkívül ez az architektúra saját kiigazításokat hajtott végre Moore törvényén: "a processzorban lévő számítási magok száma 18 havonta megduplázódik."

A jelenlegi piacot nézve számítógépes technológia, látható, hogy a négy- és nyolcmagos processzorral felszerelt készülékek dominálnak. Ráadásul a processzorgyártók szerint hamarosan több száz processzormaggal rendelkező processzorok is megjelennek a piacon. Amint azt már többször elhangzott, a többmagos architektúrában rejlő lehetőségeket csak a jó minőségű szoftverek fedik fel. Így a számítógépes hardver és szoftver gyártási köre nagyon szorosan összefügg.

De a frekvenciamutatók új csúcsainak meghódításával nehezebbé vált a növelése, 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, sok 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 a processzort Pentium D-nek hívták. 2005-ben megjelent az AMD kétmagos Opteronja is, 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.

Hadd szögezzem le azonnal 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 gépelés egyidejűleg).


Vegyünk példának egy víruskereső programot. Az egyik szálat átvizsgáljuk a számítógépen, a másik pedig frissíteni fog víruskereső adatbázis(nagyon leegyszerűsítettük, hogy megértsük az általános fogalmat).

É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 olyan programot hoznak létre, amelyek kódja tökéletesen optimalizált többmagos processzorokon való végrehajtásra.

Szükségesek-e többmagos processzorok? 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 a fő feladatok típusait, amelyeket végrehajt.

Az ismeretek bővítése a területen számítógép hardver, elolvashatja az anyagot processzor foglalatok .

A kiindulópontot kétmagos processzoroknak nevezhetjük, mivel nincs értelme visszatérni az egymagos megoldásokhoz. De a kétmagos processzorok különböznek egymástól. Lehet, hogy nem a "legfrissebb" Celeron, vagy Core i3 van rajta Ivy híd, pontosan ugyanez az AMD-vel - Sempron vagy 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 az irodai munkához és az internetezéshez számítógépre van szükség, akkor elég 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.


A mai napig ugyanaz a 8 magos AMD processzorok, játékoknál feleslegesek, pont a magok száma a redundáns, de a teljesítménye nem éri el a színvonalat, de vannak más előnyeik is. Ugyanez a 8 mag sokat segít azokban a feladatokban, ahol szükséges erőteljes munka kiváló minőségű többmenetes 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 jó 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 mutatkoznak 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 (

Miután foglalkoztunk a többszálú feldolgozás elméletével, nézzünk meg egy gyakorlati példát - a Pentium 4-et. Már ennek a processzornak a fejlesztési szakaszában az Intel mérnökei tovább dolgoztak a teljesítmény növelésén anélkül, hogy a program felületén változtattak volna. Öt egyszerű módszert vettek figyelembe:

Az órajel frekvenciájának növelése;

Két processzor elhelyezése egy chipen;

Új funkcionális blokkok bevezetése;

Szállítószalag hosszabbító;

Többszálú feldolgozás használata.

A teljesítmény javításának legkézenfekvőbb módja az órajel növelése más paraméterek megváltoztatása nélkül. Általános szabály, hogy minden következő processzormodell valamivel magasabb órajellel rendelkezik, mint az előző. Sajnos az órajel egyenes növekedésével a fejlesztők két problémával szembesülnek: a megnövekedett energiafogyasztással (ami a laptopok és más akkumulátoros számítástechnikai eszközök esetében releváns) és a túlmelegedéssel (ami hatékonyabb hűtőbordákat igényel).

A második módszer - két processzor elhelyezése egy chipen - viszonylag egyszerű, de a chip által elfoglalt terület megkétszerezését jelenti. Ha minden processzort saját cache memóriával látnak el, akkor felére csökken az egy ostyánkénti chipek száma, de ez kétszeres előállítási költséget is jelent. Ha mindkét processzor megosztott cache-memóriával rendelkezik, akkor elkerülhető az elfoglalt terület jelentős növekedése, de ebben az esetben újabb probléma merül fel - a processzoronkénti cache memória mennyisége felére csökken, és ez óhatatlanul befolyásolja a teljesítményt. Ezen túlmenően, míg a professzionális szerveralkalmazások képesek több processzor erőforrásainak teljes kihasználására, a hagyományos asztali programok sokkal kisebb belső párhuzamossággal rendelkeznek.

Az új funkcionális blokkok bevezetése szintén nem nehéz, de itt fontos az egyensúly megteremtése. Mi értelme van egy tucat ALU-nak, ha a chip nem tud olyan sebességgel parancsokat kiadni a folyamatnak, amely képes betölteni az összes blokkot?

A megnövelt szakaszszámú csővezeték, amely képes a feladatokat kisebb szegmensekre osztani és rövid időn belül feldolgozni, egyrészt javítja a teljesítményt, másrészt növeli az átmenetek hibás előrejelzésének negatív következményeit, a gyorsítótár hiányosságait, megszakítások és egyéb események, amelyek megzavarják a processzor normál menetutasítás-feldolgozását. Ezenkívül a meghosszabbított csővezeték képességeinek teljes körű megvalósításához az órajel frekvenciájának növelésére van szükség, és ez, mint tudjuk, megnövekedett energiafogyasztáshoz és hőleadáshoz vezet.

Végül megvalósíthatja a többszálú feldolgozást. Ennek a technológiának az az előnye, hogy bevezet egy további szoftverszálat, amely lehetővé teszi az egyébként tétlen hardvererőforrások használatba vételét. Kísérleti tanulmányok eredményei alapján az Intel fejlesztői azt találták, hogy a chipek területének 5%-os növelése a többszálú alkalmazás során 25%-os teljesítménynövekedést eredményez. A Xeon volt az első Intel processzor, amely 2002-ben támogatta a többszálas működést. Ezt követően 3,06 GHz-től kezdődően a Pentium 4 vonalába bevezették a multithreading-et, az Intel a multithreading megvalósítását a Pentium 4 hyperthreading-nek nevezi.

Miután foglalkoztunk a többszálú feldolgozás elméletével, nézzünk meg egy gyakorlati példát - a Pentium 4-et. Már ennek a processzornak a fejlesztési szakaszában az Intel mérnökei tovább dolgoztak a teljesítmény növelésén anélkül, hogy a program felületén változtattak volna. Öt egyszerű módszert vettek figyelembe:
1. Az órajel frekvenciájának növelése.
2. Két processzor elhelyezése egy chipen.
3. Új funkcionális blokkok bevezetése.
1. A szállítószalag meghosszabbítása.
2. Többszálú feldolgozás használata.
A teljesítmény javításának legkézenfekvőbb módja az órajel növelése más paraméterek megváltoztatása nélkül. Általános szabály, hogy minden következő processzormodell valamivel magasabb órajellel rendelkezik, mint az előző. Sajnos az órajel egyenes növekedésével a fejlesztők két problémával szembesülnek: a megnövekedett energiafogyasztással (ami a laptopok és más akkumulátoros számítástechnikai eszközök esetében releváns) és a túlmelegedéssel (ami hatékonyabb hűtőbordákat igényel).
A második módszer - két processzor elhelyezése egy chipen - viszonylag egyszerű, de a chip által elfoglalt terület megkétszerezését jelenti. Ha minden processzort saját cache memóriával látnak el, akkor felére csökken az egy ostyánkénti chipek száma, de ez kétszeres előállítási költséget is jelent. Ha mindkét processzor megosztott cache-memóriával rendelkezik, akkor elkerülhető az elfoglalt terület jelentős növekedése, de ebben az esetben újabb probléma merül fel - a processzoronkénti cache memória mennyisége felére csökken, és ez óhatatlanul befolyásolja a teljesítményt. Ezen túlmenően, míg a professzionális szerveralkalmazások képesek több processzor erőforrásainak teljes kihasználására, a hagyományos asztali programok sokkal kisebb belső párhuzamossággal rendelkeznek.
Az új funkcionális blokkok bevezetése szintén nem nehéz, de itt fontos az egyensúly megteremtése. Mi értelme van egy tucat ALU-nak, ha a chip nem tud olyan sebességgel parancsokat kiadni a folyamatnak, amely képes betölteni az összes blokkot?
A megnövelt szakaszszámú csővezeték, amely képes a feladatokat kisebb szegmensekre osztani és rövid időn belül feldolgozni, egyrészt javítja a teljesítményt, másrészt növeli az átmenetek hibás előrejelzésének negatív következményeit, a gyorsítótár hiányosságait, megszakítások és egyéb események, amelyek megzavarják a processzor normál menetutasítás-feldolgozását. Ezenkívül a meghosszabbított csővezeték képességeinek teljes körű megvalósításához az órajel frekvenciájának növelésére van szükség, és ez, mint tudjuk, megnövekedett energiafogyasztáshoz és hőleadáshoz vezet.
Végül megvalósíthatja a többszálú feldolgozást. Ennek a technológiának az az előnye, hogy bevezet egy további szoftverszálat, amely lehetővé teszi az egyébként tétlen hardvererőforrások használatba vételét. Kísérleti tanulmányok eredményei alapján az Intel fejlesztői azt találták, hogy a chipek területének 5%-os növelése a többszálú alkalmazás során 25%-os teljesítménynövekedést eredményez. Az első többszálas Intel processzor a 2002-es Xeon volt. Ezt követően 3,06 GHz-től kezdődően a Pentium 4 vonalába bevezették a multithreading-et, az Intel a multithreading megvalósítását a Pentium 4 hyperthreading-nek nevezi.
A hyperthreading fő elve két programszál (vagy folyamat – a processzor nem tesz különbséget a folyamatok és a programszálak között) egyidejű végrehajtása. Az operációs rendszer a Pentium 4 hiperszálas processzort kétprocesszoros komplexumként kezeli megosztott gyorsítótárral és fő memóriával. Az operációs rendszer minden egyes programszálhoz külön ütemezést hajt végre. Így két alkalmazás futhat egyszerre. Például, levelező program címre küldhet vagy fogadhat üzeneteket háttér miközben a felhasználó az interaktív alkalmazással interakcióba lép - vagyis a démon és a felhasználói program egyszerre fut, mintha két processzor állna a rendszer rendelkezésére.
A több szálban végrehajtani képes alkalmazási programok mindkét „virtuális processzort” használhatják. Például a videószerkesztő programok általában lehetővé teszik a felhasználók számára, hogy minden képkockára szűrőket alkalmazzanak. Az ilyen szűrők korrigálják a keretek fényerejét, kontrasztját, színegyensúlyát és egyéb tulajdonságait. Ilyen helyzetben a program hozzárendelhet egy virtuális processzort a páros, egy másik pedig a páratlan képkockák feldolgozásához. Ebben az esetben a két processzor egymástól teljesen függetlenül fog működni.
Mivel a szoftverszálak ugyanazokhoz a hardvererőforrásokhoz férnek hozzá, ezeknek a szálaknak a koordinációja szükséges. A hyperthreading kontextusában az Intel fejlesztői négy hasznos erőforrás-megosztás-kezelési stratégiát azonosítottak: az erőforrás-duplikáció, valamint a kemény, a küszöb és a teljes erőforrás-megosztás. Vessünk egy pillantást ezekre a stratégiákra.
Kezdjük az erőforrások megkettőzésével. Mint ismeretes, egyes erőforrások duplikálva vannak a programfolyamatok megszervezése érdekében. Például, mivel minden programszál egyedi vezérlést igényel, szükség van egy második programszámlálóra is. Ezenkívül be kell vezetni egy második táblázatot az építészeti regiszterek (EAX, EBX stb.) fizikai regiszterekre való leképezésére; hasonlóképpen a megszakításvezérlő megkettőződik, mivel a megszakítások kezelése minden szálra külön-külön történik.
A következő egy módszertan kemény elválasztás erőforrások (particionált erőforrás-megosztás) a programszálak között. Például, ha a processzorban van egy sor a folyamat két funkcionális szakasza között, akkor a slotok felét az 1. szálhoz, a másik felét a 2. szálhoz lehet adni. Az erőforrás-megosztás könnyen megvalósítható, nem vezet egyensúlyhiányhoz, ill. biztosítja a programszálak egymástól való teljes függetlenségét. Az összes erőforrás teljes szétválasztásával egy processzor valójában kettővé válik. Másrészt előállhat olyan helyzet, amikor az egyik programszál nem használ olyan erőforrásokat, amelyek a második szál számára hasznosak lehetnek, de amelyekhez nincs hozzáférési joga. Ennek eredményeként az egyébként felhasználható erőforrások tétlenek.
A kemény megosztás ellentéte a teljes erőforrás-megosztás. Ebben a sémában a kívánt erőforrásokhoz bármely programszál hozzáférhet, és a hozzáférési kérelmek beérkezésének sorrendjében kerülnek kiszolgálásra. Tekintsünk egy olyan helyzetet, amikor egy gyors adatfolyam, amely főleg összeadási és kivonási műveletekből áll, együtt létezik egy lassú adatfolyammal, amely szorzási és osztási műveleteket valósít meg. Ha az utasításokat gyorsabban hívják meg a memóriából, mint a szorzási és osztási műveleteket, akkor a lassú szálon belül meghívott és a folyamatban lévő utasítások száma fokozatosan növekszik. Végül ezek a parancsok kitöltik a sort, ennek eredményeként a gyors adatfolyam helyhiány miatt leáll. A teljes erőforrás-megosztás megoldja a megosztott erőforrások nem optimális felhasználásának problémáját, de kiegyensúlyozatlanságot teremt a fogyasztásukban – az egyik szál lelassíthatja vagy leállíthatja a másikat.
A köztes séma a küszöberőforrás-megosztás keretében valósul meg. E séma szerint bármely programszál képes dinamikusan fogadni egy bizonyos (korlátozott) mennyiségű erőforrást. Replikált erőforrásokra alkalmazva ez a megközelítés rugalmasságot biztosít anélkül, hogy fennállna annak veszélye, hogy valamelyik programszál tétlen lesz az erőforrások megszerzésének képtelensége miatt. Ha például tilos az egyes szálak a parancssor több mint 3/4-ét elfoglalni, akkor a lassú szál megnövekedett erőforrás-fogyasztása nem zavarja a gyors szál végrehajtását.
A Pentium 4 hyperthreading modellje különböző erőforrás-megosztási stratégiákat integrál. Így az egyes stratégiákhoz kapcsolódó összes problémát megpróbálják megoldani. A duplikáció olyan erőforrások tekintetében valósul meg, amelyekhez mindkét programszálnak folyamatosan hozzá kell férnie (különös tekintettel a programszámlálóra, a regiszterleképezési táblára és a megszakításvezérlőre). Ezeknek az erőforrásoknak a megkettőzése csak 5% -kal növeli a mikroáramkör területét - Ön egyetért abban, hogy ez meglehetősen ésszerű ár a többszálú feldolgozásért. Azok az erőforrások, amelyek olyan mennyiségben állnak rendelkezésre, hogy gyakorlatilag lehetetlen, hogy egyetlen szál lefoglalják őket (például gyorsítótár sorai), dinamikusan allokálódnak. A folyamatot vezérlő erőforrásokhoz (különösen a sok várólista) való hozzáférés meg van osztva - minden programszál a slotok felét kapja. A Pentium 4-ben megvalósított Netburst architektúra fő csővezetéke az ábrán látható. 8,7; ezen az ábrán a fehér és szürke területek a fehér és szürke programszálak közötti erőforrás-elosztási mechanizmust jelentik.
Amint láthatja, ezen az ábrán az összes várólista fel van osztva – minden programszálhoz a helyek fele tartozik. Egyik szál sem korlátozhatja a másik munkáját. Az elosztási és helyettesítési blokk is fel van osztva. Az ütemező erőforrásai dinamikusan vannak megosztva, de valamilyen küszöbérték alapján – így egyetlen szál sem tudja elfoglalni a várólista összes rését. A szállítószalag összes többi szakaszában teljes szétválasztás történik.
A többszálú feldolgozás azonban nem ilyen egyszerű. Még ennek a fejlett technikának is megvannak a maga hátrányai. Az erőforrások kemény particionálása nem jár komoly költségekkel, de a dinamikus particionálás, különösen a küszöbértékek tekintetében, megköveteli az erőforrás-felhasználás figyelését futás közben. Ráadásul bizonyos esetekben a programok sokkal jobban működnek többszálú feldolgozás nélkül, mint azzal. Tegyük fel például, hogy ha két programszál van, akkor mindegyiknek szüksége van a gyorsítótár 3/4-ére a megfelelő működéshez. Ha sorra hajtanák végre őket, mindegyik meglehetősen jól teljesítene kis számú gyorsítótár-kihagyással (amelyről ismert, hogy többletköltséggel járnak). Párhuzamos végrehajtás esetén mindegyiknél lényegesen több gyorsítótárhiány lenne, a végeredmény pedig rosszabb lenne, mint többszálú feldolgozás nélkül.
A RepPit 4 többszálú mechanizmusával kapcsolatos további információkért lásd:.

A többmagos processzorok jelenleg senkit sem lepnek meg. Éppen ellenkezőleg, mindenki arra törekszik, hogy a számítógépe a lehető legtöbb magot támogassa, és ezáltal gyorsabban működjön, és ez jogosan van így.
Ami a processzorokat illeti, már régóta csak két gyártó van a piacon - ezek az Intel és az AMD. És ha az utóbbiak a 8 és 10 magos processzoraikról beszélnek (azaz sok van belőlük, ami azt jelenti, hogy erősebbek), akkor az előbbiek 2 és 4 magosak, de koncentráljanak a szálaikra (nem kell haragot írni). megjegyzi, hogy vannak magok és még sok más, mert az otthoni használatra szánt processzorokat az alábbiakban ismertetjük).

És ha megnézi a processzor teljesítményének összehasonlító grafikonját, láthatja, hogy az Intel 4 magos processzora (nem mindegyik) megelőzi az AMD 8 magos processzorát. Miért is? Végül is a 4 kevesebb, mint 8, ami azt jelenti, hogy gyengébbnek kell lennie... De ha mélyebbre ásunk (nem közvetlenül a gyorsítótárakba, frekvenciákba, buszokba stb.), akkor láthat egy érdekes szót, amelyet gyakran leírnak Intel processzorok - Hyper-threading támogatás.

A Hyper-threading technológiát (az egyszerű emberekben "hipertrendű") az Intel találta fel, és csak a processzoraiban használják (nem mindegyikben). Nem megyek bele túl mélyen a részletekbe, ha akarod, tovább olvashatsz róla. Ez a technológia lehetővé teszi, hogy minden magot két részre osszanak, és ennek eredményeként egy fizikai helyett két logikai (vagy virtuális) és működő Windows rendszerúgy gondolja, hogy egy helyett kettő van telepítve.

Hogyan lehet megtudni, hogy hány szál van a processzorban?

Ha tudni szeretne egy adott processzorról, akkor az üzletekben leggyakrabban a Hyper-threading támogatását jelzik, akár ennek a kifejezésnek a beillesztésével, akár egyszerűen a HT rövidítéssel. Ha nincs ilyen leírás, akkor mindig használhatja a legigazabb információkat az Intel hivatalos oldalán http://ark.intel.com/ru/search/advanced/?s=t&HyperThreading=true
Azt javaslom, hogy csak ezeket az információkat használja, mert ez a legpontosabb.

Ha már a rendszerben szeretné megtudni, és ugyanezeket a szálakat kifejezetten az Ön rendszerében használják, akkor nincs könnyebb.

Futtassa bármelyiket kényelmes módja(a legegyszerűbb módja a Ctrl + Shift + Esc gyorsbillentyűkombináció), ha bárhol van (legalábbis elolvasva ezt a cikket), és ha Windows 7-et használ, lépjen a Teljesítmény lapra.


figyelni felső sor a processzor terhelésével és konkrétan a "négyzetek" számával. Pontosan ennyi lesz – ennyi lesz minden mag, beleértve az összes szálat is. Pontosabban, itt minden logikai/virtuális mag megjelenik, és a szálak pontosan azok, amilyenek.

Ha Windows 8, 8.1 vagy 10 operációs rendszered van, akkor nem lesz ilyen lap, de van Teljesítmény.


Itt rávilágítottam, hogy mire kell figyelni. Egyébként nem hiába kattintottam jobb gombbal erre a grafikonra, mert ha kiválasztod a Logikai folyamatok elemet, akkor a grafikon megváltozik és úgy fog kinézni, mint a Windows 7-ben, pl. minden maghoz 8 "négyzet" és terhelési grafikon lesz.
Ha az ellenkező képe van, pl. nem egy, hanem több grafikon jelenik meg, ami azt jelenti, hogy ez az elem magának a grafikonnak a tulajdonságai között van kiválasztva.

Természetesen ennek több módja is van, jelen esetben pedig a flow-k.

Például meghívhatja a rendszertulajdonságot (Win + R billentyűkombináció és írja be a systeminfo ) és ott megtekintheti.