Namai Medžiai ir krūmai Šiuolaikinių mikroprocesorių šerdys ir gijos. B priedas. Variklio ir sistemų sąveikos schema

Šiuolaikinių mikroprocesorių šerdys ir gijos. B priedas. Variklio ir sistemų sąveikos schema

  • pamoka

Šiame straipsnyje pabandysiu apibūdinti terminiją, naudojamą apibūdinant sistemas, galinčias lygiagrečiai vykdyti kelias programas, t.y. kelių branduolių, kelių procesorių, kelių gijų. Skirtingi tipai paralelizmas IA-32 procesoriuje atsirado skirtingas laikas ir kiek nenuoseklia tvarka. Dėl viso to lengva susipainioti, ypač atsižvelgiant į tai, kad operacinės sistemos atsargiai slepia detales nuo mažiau sudėtingų taikomųjų programų.

Straipsnio tikslas – parodyti, kad esant visoms galimoms daugiaprocesorių, kelių branduolių ir kelių gijų sistemų konfigūracijų įvairovei jose veikiančioms programoms, atsiranda galimybės tiek abstrakcijai (skirtumų nepaisymui), tiek atsižvelgiant į specifiką ( galimybė programiškai išmokti konfigūraciją).

Įspėjimas apie ženklus ®, ™, straipsnyje

Mano paaiškina, kodėl įmonės darbuotojai turėtų naudoti autorių teisių ženklus viešuose pranešimuose. Šiame straipsnyje jie turėjo būti naudojami gana dažnai.

CPU

Žinoma, seniausias, dažniausiai vartojamas ir dviprasmiškas terminas yra „procesorius“.

Šiuolaikiniame pasaulyje procesorius yra tai, ką perkame gražioje mažmeninėje dėžutėje arba ne itin gražioje OEM pakuotėje. Nedalomas subjektas, įkištas į pagrindinės plokštės lizdą. Net jei nėra jungties ir jos negalima nuimti, tai yra, jei ji yra sandariai sulituota, tai yra vienas lustas.

Mobiliosios sistemos (telefonai, planšetiniai kompiuteriai, nešiojamieji kompiuteriai) ir dauguma stalinių kompiuterių turi vieną procesorių. Darbo stotys ir serveriai kartais gali pasigirti dviem ar daugiau procesorių toje pačioje pagrindinėje plokštėje.

Daugkartinis palaikymas CPU vienoje sistemoje reikia daugybės jos dizaino pakeitimų. Būtina užtikrinti bent fizinį jų ryšį (pamatyti keletą lizdų pagrindinėje plokštėje), išspręsti procesorių identifikavimo (žr. toliau šiame straipsnyje, taip pat mano pastaboje), atminties prieigos koordinavimo ir pertraukimų pateikimo klausimus (žr. pertraukimo valdiklis turi sugebėti nukreipti pertraukimus keliems procesoriams) ir, žinoma, operacinės sistemos palaikymą. Deja, nepavyko rasti dokumentuoto paminėjimo apie pirmosios kelių procesorių sistemos „Intel“ procesoriuose sukūrimo momentą, tačiau „Wikipedia“ teigia, kad „Sequent Computer Systems“ jas tiekė jau 1987 m., naudodama „Intel 80386“ procesorius. Plačiai paplitęs kelių lustų palaikymas vienoje sistemoje. pradedant Intel® Pentium.

Jei yra keli procesoriai, kiekvienas iš jų turi savo jungtį plokštėje. Tuo pačiu metu kiekvienas iš jų turi visas nepriklausomas visų išteklių, tokių kaip registrai, vykdomieji įrenginiai, talpyklos, kopijas. Juos dalijasi bendra atmintis – RAM. Atmintis prie jų gali būti jungiama įvairiai ir gana nebanaliais būdais, tačiau tai atskira istorija kuri nepatenka į šio straipsnio taikymo sritį. Svarbu tai, kad bet kuriuo atveju vykdomosios programos turi sukurti vienalytės bendros atminties, pasiekiamos iš visų sistemos procesorių, iliuziją.


Pasiruošęs kilti! Intel® Desktop Board D5400XS

Branduolys

Istoriškai kelių branduolių „Intel IA-32“ pasirodė vėliau nei „Intel® HyperThreading“, tačiau loginėje hierarchijoje jis yra kitas.

Atrodytų, jei sistema daugiau procesorių, tada jo našumas yra didesnis (atliekant užduotis, kurios gali naudoti visus išteklius). Tačiau, jei ryšio tarp jų kaina yra per didelė, visą paralelizmo naudą sunaikina ilgas bendrų duomenų perdavimo vėlavimas. Būtent tai pastebima kelių procesorių sistemose – tiek fiziškai, tiek logiškai jos yra labai toli viena nuo kitos. Norint efektyviai bendrauti tokiomis sąlygomis, reikia išrasti specializuotus autobusus, tokius kaip „Intel® QuickPath Interconnect“. Energijos sąnaudos, galutinio sprendimo dydis ir kaina, žinoma, nuo viso to nemažėja. Turėtų gelbėti aukšta komponentų integracija – lygiagrečios programos dalis vykdančios grandinės turėtų būti tempiamos arčiau viena kitos, pageidautina vienoje lustoje. Kitaip tariant, vienas procesorius turėtų organizuoti kelis branduoliai, viskuo identiški vienas kitam, bet dirbantys savarankiškai.

Pirmieji IA-32 kelių branduolių procesoriai iš Intel buvo pristatyti 2005 m. Nuo tada vidutinis branduolių skaičius serveryje, darbalaukyje ir dabar mobiliosios platformos nuolat auga.

Skirtingai nuo dviejų vieno branduolio procesorių toje pačioje sistemoje, kurie dalijasi tik atmintimi, du branduoliai taip pat gali dalytis talpyklomis ir kitais ištekliais, atsakingais už sąveiką su atmintimi. Dažniausiai pirmojo lygio talpyklos išlieka privačios (kiekvienas branduolys turi savo), o antrasis ir trečiasis lygiai gali būti bendrinami arba atskiri. Toks sistemos organizavimas sumažina duomenų perdavimo tarp gretimų branduolių vėlavimą, ypač jei jie atlieka bendrą užduotį.


Keturių branduolių „Intel“ procesoriaus kodiniu pavadinimu „Nehalem“ mikrografija. Paryškinami atskiri branduoliai, bendra L3 talpykla, taip pat QPI nuorodos į kitus procesorius ir bendros atminties valdiklis.

hipergija

Iki maždaug 2002 m. vienintelis būdas gauti IA-32 sistemą, galinčią lygiagrečiai vykdyti dvi ar daugiau programų, buvo naudoti specialiai kelių procesorių sistemas. „Intel® Pentium® 4“, taip pat „Xeon“ linija, kodiniu pavadinimu „Foster“ („Netburst“), pristatė naują technologiją – hipersriegiavimą arba hipersriegiavimą – „Intel® HyperThreading“ (toliau HT).

Nėra nieko naujo po saule. HT yra ypatingas atvejis to, kas literatūroje vadinama vienalaikiu daugiasriegiu būdu (SMT). Skirtingai nuo „tikrųjų“ branduolių, kurie yra pilnos ir nepriklausomos kopijos, HT atveju viename procesoriuje dubliuojama tik dalis vidinių mazgų, pirmiausia atsakingų už architektūrinės būsenos – registrų – saugojimą. Vykdomieji mazgai, atsakingi už duomenų tvarkymą ir apdorojimą, lieka vienaskaitoje ir bet kuriuo metu yra naudojami daugiausia vienoje iš gijų. Kaip ir branduoliai, hipergijos dalijasi talpyklomis tarpusavyje, tačiau nuo kokio lygio priklauso nuo konkrečios sistemos.

Nebandysiu paaiškinti visų SMT dizaino privalumų ir trūkumų apskritai ir konkrečiai HT dizaino. Suinteresuotas skaitytojas gali rasti gana išsamią diskusiją apie technologiją daugelyje šaltinių ir, žinoma, Vikipedijoje. Tačiau atkreipiu dėmesį į tai svarbus punktas, paaiškinantis dabartines hipersriegių skaičiaus ribas realioje gamyboje.

Gijų ribos
Kokiais atvejais pateisinamas „nesąžiningas“ kelių branduolių HT buvimas? Jei viena programos gija negali įkelti visų vykdomųjų mazgų branduolio viduje, tada juos galima „pasiskolinti“ kitai gijai. Tai būdinga programoms, kurios turi „butelio kaklelį“ ne skaičiavimuose, o prieiga prie duomenų, ty dažnai generuoja talpyklos praleidimus ir turi laukti, kol duomenys bus pristatyti iš atminties. Per šį laiką branduolys be HT bus priverstas veikti tuščiąja eiga. HT buvimas leidžia greitai perjungti laisvus vykdančius mazgus į kitą architektūrinę būseną (nes jis tiesiog dubliuojamas) ir vykdyti jo instrukcijas. Tai ypatingas gudrybės, vadinamos latentiniu slėpimu, atvejis, kai atliekama viena ilga operacija, kurios metu naudingų išteklių tuščiąja eiga, užmaskuota lygiagrečio kitų užduočių vykdymo. Jei programa jau turi aukštas laipsnis branduolio išteklių panaudojimas, hipergijos buvimas neleis jums gauti pagreitį - čia jums reikia „sąžiningų“ branduolių.

Tipiški stalinių kompiuterių ir serverių taikomųjų programų, sukurtų mašinų architektūroms, scenarijai Pagrindinis tikslas, turi lygiagretumo potencialą, įgyvendintą su HT. Tačiau šis potencialas greitai „išnaudojamas“. Galbūt dėl ​​šios priežasties beveik visuose IA-32 procesoriuose aparatinės įrangos hipergijų skaičius neviršija dviejų. Įprastais scenarijais nauda naudojant tris ar daugiau hipersriegių būtų nedidelė, tačiau sumažėtų štampo dydis, energijos suvartojimas ir sąnaudos.

Kita situacija pastebima tipinėse užduotyse, atliekamose vaizdo greitintuvais. Todėl šioms architektūroms būdingas SMT technologijos naudojimas su didesniu gijų skaičiumi. Kadangi Intel® Xeon Phi koprocesoriai (pristatyti 2010 m.) ideologiškai ir genealogiškai yra gana artimi vaizdo plokštėms, jie gali turėti keturi hipersriegiavimas kiekvienoje šerdyje – unikali IA-32 konfigūracija.

loginis procesorius

Iš trijų aprašytų lygiagretumo „lygių“ (procesoriai, branduoliai, hipergijos) tam tikroje sistemoje gali trūkti kai kurių ar net visų. Tam įtakos turi BIOS nustatymai (kelių branduolių ir kelių gijų išjungimas atskirai), mikroarchitektūra (pavyzdžiui, HT nebuvo Intel® Core™ Duo, bet jis buvo grąžintas išleidus Nehalem) ir sistemos įvykiai ( kelių procesorių serveriai gali išjungti sugedusius procesorius gedimų atveju ir toliau „skraidinti“ ant likusių). Kaip šis daugiasluoksnis lygiagretumo zoologijos sodas matomas operacinei sistemai ir, galiausiai, programoms?

Be to, patogumo dėlei procesorių, branduolių ir gijų skaičių tam tikroje sistemoje žymime trigubu ( x, y, z), kur x yra procesorių skaičius y yra branduolių skaičius kiekviename procesoriuje ir z yra hipergijų skaičius kiekviename šerdyje. Toliau paminėsiu šią trijulę topologija- nusistovėjęs terminas, mažai susijęs su matematikos skyriumi. Darbas p = xyz apibrėžia įvardintų objektų skaičių loginiai procesoriai sistemos. Jis apibrėžia bendrą nepriklausomų taikomųjų programų procesų kontekstų skaičių bendros atminties sistemoje, veikiančioje lygiagrečiai, į kurį turi atsižvelgti operacinė sistema. Sakau „priverstinis“, nes jis negali kontroliuoti dviejų procesų, kurie yra skirtinguose loginiuose procesoriuose, vykdymo tvarkos. Tai pasakytina ir apie hipergijas: nors jos veikia „paeiliui“ tame pačiame branduolyje, konkrečią tvarką diktuoja aparatinė įranga ir jos nematyti ir nekontroliuoja programos.

Dažniausiai operacinė sistema slepia nuo galutinių programų sistemos, kurioje ji veikia, fizinės topologijos ypatybes. Pavyzdžiui, šios trys topologijos: (2, 1, 1), (1, 2, 1) ir (1, 1, 2) - OS bus vaizduojama kaip du loginiai procesoriai, nors pirmasis iš jų turi du procesorius , antrasis turi du branduolius, o trečiasis yra tik dviejų siūlų.


Windows Task Manager rodo 8 loginius procesorius; bet kiek tai yra procesoriuose, branduoliuose ir hipergijose?


„Linux“ viršuje rodomi 4 loginiai procesoriai.

Tai gana patogu taikomųjų programų kūrėjams – jiems nereikia susidurti su dažnai jiems nereikšmingomis aparatūros ypatybėmis.

Programinės įrangos topologijos apibrėžimas

Žinoma, topologijos abstrahavimas į vieną loginių procesorių skaičių tam tikrais atvejais sukuria pakankamai pagrindo painiavoms ir nesusipratimams (karštuose interneto ginčuose). Skaičiavimo programoms, norinčioms išnaudoti didžiausią aparatinės įrangos našumą, reikia tiksliai kontroliuoti, kur bus išdėstytos jų gijos: arčiau viena kitos esančiose gretimose hipergijose arba atvirkščiai, toliau skirtinguose procesoriuose. Ryšio tarp loginių procesorių tame pačiame branduolyje arba procesoriaus greitis yra daug didesnis nei duomenų perdavimo tarp procesorių greitis. Organizacijos heterogeniškumo galimybė laisvosios kreipties atmintis taip pat apsunkina vaizdą.

Informacija apie sistemos topologiją kaip visumą, taip pat kiekvieno loginio procesoriaus padėtį IA-32, pateikiama naudojant CPUID instrukciją. Nuo pirmųjų kelių procesorių sistemų atsiradimo loginio procesoriaus identifikavimo schema buvo kelis kartus pratęsta. Iki šiol jos dalys yra CPUID 1, 4 ir 11 lapuose. Kurį iš lapų žiūrėti, galima nustatyti pagal šią blokinę schemą, paimtą iš straipsnio:

Čia nesivarginsiu su visomis atskirų šio algoritmo dalių detalėmis. Jei yra susidomėjimas, tam gali būti skirta kita šio straipsnio dalis. Susidomėjusį skaitytoją kreipsiu į tai, kur šis klausimas išanalizuotas kiek įmanoma išsamiau. Čia pirmiausia trumpai aprašysiu, kas yra APIC ir kaip jis susijęs su topologija. Tada apsvarstykite galimybę dirbti su įjungtu lapu 0xB (vienuolika po kablelio). Šis momentas yra Paskutinis žodis apikokonstrukcijoje.

APIC ID
Vietinis APIC (išplėstinis programuojamas pertraukų valdiklis) yra įrenginys (dabar procesoriaus dalis), atsakingas už darbą su pertraukimais, ateinančiais į konkretų loginį procesorių. Kiekvienas loginis procesorius turi savo APIC. Ir kiekvienas iš jų sistemoje turi turėti unikalią APIC ID reikšmę. Šį numerį naudoja pertraukimų valdikliai adresuodami pranešimus, o visi kiti (pvz., operacinė sistema) – loginiams procesoriams identifikuoti. Šio pertraukimo valdiklio specifikacijos išsivystė iš Intel 8259 PIC per Dual PIC, APIC ir xAPIC iki x2APIC.

Šiuo metu APIC ID saugomo skaičiaus plotis pasiekė visus 32 bitus, nors anksčiau buvo ribojamas iki 16, o dar anksčiau – tik 8 bitais. Šiandien senų laikų likučiai yra išbarstyti visame CPUID, tačiau visi 32 APIC ID bitai grąžinami CPUID.0xB.EDX. Kiekvienas loginis procesorius, savarankiškai vykdantis CPUID komandą, pateiks skirtingą reikšmę.

Šeimos ryšių išaiškinimas
APIC ID reikšmė pati savaime nieko nesako apie topologiją. Norint sužinoti, kurie du loginiai procesoriai yra tame pačiame fiziniame (t. y. jie yra hipergijų „broliai“, kurie du yra tame pačiame procesoriaus viduje, o kurie visiškai skirtingi procesoriai), reikia palyginti jų APIC ID reikšmes. Priklausomai nuo santykių laipsnio, kai kurios jų dalys sutaps. Ši informacija yra posąrašiuose CPUID.0xB, kurie yra užkoduoti operandu ECX. Kiekvienas iš jų aprašo vieno iš EAX topologijos lygių bitų lauko padėtį (tiksliau, bitų skaičių, kurį reikia perkelti APIC ID į dešinę, kad būtų pašalinti žemesni topologijos lygiai), taip pat. kaip šio lygio tipas – hipergijos, šerdis arba procesorius – ECX.

Loginiai procesoriai tame pačiame branduolyje atitiks visus APIC ID bitus, išskyrus esančius SMT lauke. Loginiams procesoriams, kurie yra tame pačiame procesoriuje, visi bitai, išskyrus Core ir SMT laukus. Kadangi CPUID.0xB antrinių lapų skaičius gali augti, šią schemą leis paremti topologijų aprašą su didesniu lygių skaičiumi, jei ateityje atsiras poreikis. Be to, bus galima įeiti tarpiniai lygiai tarp esamų.

Svarbi šios schemos organizavimo pasekmė yra ta, kad visų sistemos loginių procesorių visų APIC ID rinkinyje gali būti „skylių“, t.y. jie neis paeiliui. Pavyzdžiui, kelių branduolių procesoriuje, kai HT išjungtas, visi APIC ID gali pasirodyti lygūs, nes mažiausiai reikšmingas bitas, atsakingas už hipergijos numerio kodavimą, visada bus nulis.

Atminkite, kad CPUID.0xB nėra vienintelis operacinės sistemos informacijos apie loginius procesorius šaltinis. Visų jam prieinamų procesorių sąrašas kartu su jų APIC ID reikšmėmis yra užkoduotas MADT ACPI lentelėje.

Operacinės sistemos ir topologija

Operacinės sistemos pateikia programoms loginės procesoriaus topologijos informaciją per savo sąsajas.

Linux sistemoje topologijos informacija yra /proc/cpuinfo pseudofaile, taip pat komandos dmidecode išvestis. Toliau pateiktame pavyzdyje aš filtruoju cpuinfo turinį kai kuriose ne HT keturių branduolių sistemose, palikdamas tik su topologija susijusius įrašus:

Paslėptas tekstas

[apsaugotas el. paštas]:~$ cat /proc/cpuinfo |grep "procesorius\|physical\ id\|siblings\|core\|cores\|apicid" procesorius: 0 fizinio ID: 0 brolių ir seserų: 4 branduolių ID: 0 procesoriaus branduolių: 2 apicid: 0 pradinis apicidas: 0 procesorius: 1 fizinis ID: 0 brolių ir seserų: 4 branduolių ID: 0 procesoriaus branduolių: 2 apicid: 1 pradinis apicidas: 1 procesorius: 2 fizinis ID: 0 brolių ir seserų: 4 branduolio ID: 1 procesoriaus branduoliai: 2 apicidas: 2 pradinis apicidas: 2 procesorius: 3 fizinis ID: 0 brolių ir seserų: 4 branduolio ID: 1 procesoriaus branduoliai: 2 apicidas: 3 pradinis apicidas: 3

FreeBSD topologija pranešama per sysctl mechanizmą kern.sched.topology_spec kintamajame kaip XML:

Paslėptas tekstas

[apsaugotas el. paštas]:~$ 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 THREAD grupėSMT grupė 2, 3 THREAD grupėSMT grupė 4, 5 THREAD grupėSMT grupė 6, 7 THREAD grupėSMT grupė

MS Windows 8 topologijos informaciją galima pamatyti užduočių tvarkyklėje.

Išnagrinėję kelių gijų teoriją, panagrinėkime praktinį pavyzdį – Pentium 4. Jau šio procesoriaus kūrimo stadijoje „Intel“ inžinieriai toliau stengėsi didinti jo našumą, nekeisdami programos sąsajos. Buvo apsvarstyti penki paprasti metodai:
1. Laikrodžio dažnio didinimas.
2. Dviejų procesorių įdėjimas į vieną lustą.
3. Naujų funkcinių blokų įvedimas.
1. Konvejerio pratęsimas.
2. Naudojant daugiasriegius.
Akivaizdžiausias būdas pagerinti našumą yra padidinti laikrodžio greitį nekeičiant kitų parametrų. Paprastai kiekvienas paskesnis procesoriaus modelis turi šiek tiek didesnį taktinį dažnį nei ankstesnis. Deja, staigiai didėjant laikrodžio greičiui, kūrėjai susiduria su dviem problemomis: padidėjusiu energijos suvartojimu (tai aktualu nešiojamiesiems kompiuteriams ir kitiems skaičiavimo įrenginiams, kurie veikia baterijomis) ir perkaitimu (tam reikia efektyvesnių aušintuvų).
Antrasis būdas – dviejų procesorių įdėjimas į lustą – yra gana paprastas, tačiau jo metu lusto užimamas plotas padvigubinamas. Jei kiekvienas procesorius turi savo talpyklą, lustų skaičius vienoje plokštelėje sumažėja perpus, tačiau tai taip pat reiškia dvigubai didesnes gamybos sąnaudas. Jei abu procesoriai turi bendrą talpyklą, galima išvengti reikšmingo užimtos vietos padidėjimo, tačiau tokiu atveju iškyla kita problema – talpyklos, tenkančios vienam procesoriui, kiekis sumažėja perpus, o tai neišvengiamai atsiliepia našumui. Be to, nors profesionalios serverių programos gali visiškai išnaudoti kelių procesorių išteklius, įprastinės darbalaukio programos vidinis paralelizmas išvystytas daug mažiau.
Naujų funkcinių blokų įdiegimas taip pat nėra sunkus, tačiau čia svarbu išlaikyti pusiausvyrą. Kokia prasmė iš keliolikos ALU, jei lustas negali duoti komandų konvejeriui tokiu greičiu, kuris galėtų įkelti visus tuos blokus?
Dujotiekis su padidintu etapų skaičiumi, galintis padalinti užduotis į mažesnius segmentus ir jas apdoroti per trumpą laiką, viena vertus, pagerina našumą, kita vertus, padidina neigiamas klaidingo perėjimų numatymo, talpyklos praleidimų pasekmes, pertraukimai ir kiti įvykiai, kurie sutrikdo įprastą eigos instrukcijų apdorojimą procesoriuje. Be to, norint visiškai realizuoti prailginto dujotiekio galimybes, būtina padidinti laikrodžio dažnį, o tai, kaip žinome, padidina energijos suvartojimą ir šilumos išsklaidymą.
Galiausiai, galite įdiegti daugiasriegius. Šios technologijos pranašumas yra tas, kad ji įdiegia papildomą programinės įrangos giją, kuri leidžia naudoti aparatinės įrangos išteklius, kurie kitu atveju būtų nenaudojami. Remdamiesi eksperimentinių tyrimų rezultatais, „Intel“ kūrėjai nustatė, kad 5 % padidinus lusto plotą, kai įdiegiama daugelio programų daugiasriegis ryšys, našumas padidėja 25 %. Pirmasis kelių gijų „Intel“ procesorius buvo 2002 m. „Xeon“. Vėliau, pradedant nuo 3,06 GHz, į Pentium 4 liniją buvo įvestas daugiasriegis ryšys.
Pagrindinis hipergijos principas yra dviejų programų gijų (arba procesų – procesorius neskiria procesų ir programos gijų) vykdymas vienu metu. Operacinė sistema „Pentium 4“ hipersrieginį procesorių traktuoja kaip dviejų procesorių kompleksą su bendromis talpyklomis ir pagrindine atmintimi. Operacinė sistema atlieka planavimą kiekvienai programos gijai atskirai. Taigi vienu metu gali veikti dvi programos. Pavyzdžiui, pašto programa gali siųsti arba gauti pranešimus fone, kai vartotojas bendrauja su interaktyvi programa- tai yra, demonas ir vartotojo programa veikia vienu metu, tarsi sistemai būtų prieinami du procesoriai.
Taikomosios programos, galinčios veikti keliose gijose, gali naudoti abu „virtualiuosius procesorius“. Pavyzdžiui, vaizdo įrašų redagavimo programos paprastai leidžia vartotojams taikyti filtrus visiems kadrams. Tokie filtrai koreguoja ryškumą, kontrastą, spalvų balansą ir kitas rėmelių savybes. Esant tokiai situacijai, programa gali priskirti vieną virtualų procesorių apdoroti lyginius kadrus, o kitą – nelyginius. Tokiu atveju abu procesoriai veiks visiškai nepriklausomai vienas nuo kito.
Kadangi programinės įrangos gijos pasiekia tuos pačius aparatinės įrangos išteklius, būtina šias gijas koordinuoti. Hyperthreading kontekste „Intel“ kūrėjai nustatė keturias naudingas dalijimosi ištekliais valdymo strategijas: išteklių dubliavimą ir standųjį, slenkstinį ir visišką išteklių pasidalijimą. Pažvelkime į šias strategijas.
Pradėkime nuo išteklių dubliavimo. Kaip žinote, kai kurie ištekliai yra dubliuojami, kad būtų galima organizuoti programų srautus. Pavyzdžiui, kadangi kiekvienai programos gijai reikia individualaus valdymo, reikalingas antras programos skaitiklis. Be to, būtina įvesti antrą lentelę, skirtą architektūrinių registrų (EAX, EBX ir kt.) priskyrimui fiziniams registrams; taip pat pertraukimo valdiklis yra dubliuojamas, nes kiekvienos gijos pertraukimų tvarkymas atliekamas atskirai.
Po to seka sudėtingo išteklių padalijimo (dalijimosi ištekliais) tarp programos gijų technika. Pavyzdžiui, jei procesoriuje yra eilė tarp dviejų funkcinių konvejerinio etapų, tai pusė lizdų gali būti skirta 1 gijai, kita pusė 2 gijai. Dalijimasis ištekliais yra lengvai įgyvendinamas, nesukelia disbalanso ir suteikia visiška nepriklausomybė programos teka viena nuo kitos. Visiškai atskyrus visus išteklius, vienas procesorius iš tikrųjų virsta dviem. Kita vertus, gali susiklostyti situacija, kai viena programos gija nenaudoja išteklių, kurie galėtų būti naudingi antrajai gijai, bet neturi prieigos teisių. Dėl to ištekliai, kuriuos būtų galima panaudoti, yra nenaudojami.
Sunkaus dalijimosi priešingybė yra visiškas dalijimasis ištekliais. Šioje schemoje norimus išteklius gali pasiekti bet kuri programos gija, o jie aptarnaujami tokia tvarka, kokia gaunamos prieigos užklausos. Panagrinėkime situaciją, kai greitas srautas, daugiausia susidedantis iš sudėties ir atimties operacijų, egzistuoja kartu su lėtu srautu, kuris įgyvendina daugybos ir padalijimo operacijas. Jei instrukcijos iš atminties iškviečiamos greičiau nei atliekamos daugybos ir padalijimo operacijos, komandų, iškviestų lėtoje gijoje ir eilėje konvejeryje, skaičius palaipsniui didės. Galiausiai šios komandos užpildys eilę, todėl greitas srautas sustos, nes joje trūksta vietos. Visiškas išteklių atskyrimas išsprendžia neoptimalių išlaidų problemą bendrų išteklių, tačiau sukuria jų vartojimo disbalansą – vienas siūlas gali sulėtinti arba sustabdyti kitą.
Tarpinė schema įgyvendinama slenkstinių išteklių pasidalijimo rėmuose. Pagal šią schemą bet kuri programos gija gali dinamiškai gauti tam tikrą (ribotą) išteklių kiekį. Taikant pakartojamiems ištekliams, šis metodas suteikia lankstumo be pavojaus, kad viena iš programos gijų bus neaktyvi dėl nesugebėjimo gauti išteklių. Jei, pavyzdžiui, kiekvienai gijai draudžiama užimti daugiau nei 3/4 komandų eilės, lėtos gijos padidėjęs resursų suvartojimas netrukdys vykdyti greitosios.
„Pentium 4“ hipergijos modelis integruoja skirtingas išteklių dalijimosi strategijas. Taigi, bandoma išspręsti visas su kiekviena strategija susijusias problemas. Dubliavimas įgyvendinamas atsižvelgiant į išteklius, prie kurių nuolatos reikia prieigos abiem programų gijomis (ypač programų skaitiklio, registrų susiejimo lentelės ir pertraukimo valdiklio atžvilgiu). Šių išteklių dubliavimas padidina mikroschemos plotą tik 5% - sutiksite, kad tai yra gana priimtina kelių sriegių kaina. Ištekliai, kurių turima tokia apimtimi, kad praktiškai neįmanoma jų užfiksuoti viena gija (pavyzdžiui, talpyklos eilutės), paskirstomi dinamiškai. Prieiga prie išteklių, kurie kontroliuoja dujotiekio veikimą (ypač daugybę jo eilių), yra padalinta - kiekvienai programos gijai suteikiama pusė laiko tarpsnių. Pagrindinis „Netburst“ architektūros vamzdynas, įdiegtas „Pentium 4“, parodytas Fig. 8,7; baltos ir pilkos sritys šioje iliustracijoje rodo išteklių paskirstymo tarp baltos ir pilkos programos gijų mechanizmą.
Kaip matote, visos eilės šioje iliustracijoje yra padalintos – kiekvienai programos gijai skirta pusė laiko tarpsnių. Nė vienas siūlas negali apriboti kito darbo. Paskirstymo ir pakeitimo blokas taip pat yra padalintas. Planuoklio ištekliai bendrinami dinamiškai, tačiau remiantis tam tikra slenksčio verte, todėl jokia gija negali užimti visų eilės vietų. Visuose kituose konvejerio etapuose yra visiškas atskyrimas.
Tačiau kelių sriegių sukūrimas nėra taip paprasta. Netgi ši pažangi technika turi savo trūkumų. Sunkus išteklių skaidymas nėra susijęs su rimtomis išlaidomis, tačiau dinamiškas skaidymas, ypač atsižvelgiant į slenksčius, reikalauja stebėti išteklių suvartojimą vykdymo metu. Be to, kai kuriais atvejais programos veikia daug geriau be kelių gijų, nei naudojant ją. Tarkime, kad jei yra dvi programos gijos, kiekvienai iš jų reikia 3/4 talpyklos, kad jos tinkamai veiktų. Jei jie būtų vykdomi paeiliui, kiekvienas veiktų pakankamai gerai su nedideliu talpyklos praleidimų skaičiumi (kurie, kaip žinoma, yra susiję su papildomomis išlaidomis). Lygiagrečio vykdymo atveju kiekvienoje būtų žymiai daugiau talpyklos praleidimų, o galutinis rezultatas būtų prastesnis nei be kelių gijų.
Daugiau informacijos apie RepPit 4 kelių sriegių mechanizmą žr.

Įvadas. Kompiuterinės technologijos vystosi sparčiai. Skaičiavimo įrenginiai tampa galingesni, mažesni, patogesni, tačiau pastaruoju metu įrenginių našumas didėja didelė problema. 1965 m. Gordonas Moore'as (vienas iš „Intel“ įkūrėjų) priėjo prie išvados, kad „tranzistorių, dedamų į integrinio grandyno lustą, skaičius padvigubėja kas 24 mėnesius“.

Pirmieji pokyčiai daugelio procesorių sistemų kūrimo srityje prasidėjo 70-aisiais. ilgas laikasįprastų vieno branduolio procesorių našumas buvo padidintas padidinus laikrodžio dažnį (iki 80% našumo lėmė tik laikrodžio dažnis), tuo pačiu padidinant tranzistorių skaičių mikroschemoje. pagrindiniai dėsniai fizikai sustabdė šį procesą: lustai pradėjo perkaisti, technologinė pradėjo artėti prie silicio atomų dydžio. Visi šie veiksniai lėmė:

  • padidėjo nuotėkio srovės, dėl to padidėjo šilumos išsklaidymas ir energijos suvartojimas.
  • Procesorius tapo daug „greitesnis“ nei atmintis. Našumas pablogėjo dėl delsos pasiekti RAM ir įkelti duomenis į talpyklą.
  • yra toks dalykas kaip „von Neumann butelio kaklelis“. Tai reiškia procesoriaus architektūros neefektyvumą vykdant programą.

Daugiaprocesorinės sistemos (kaip vienas iš problemos sprendimo būdų) nebuvo plačiai naudojamos, nes joms reikėjo brangių ir sunkiai pagaminamų daugiaprocesorių pagrindinių plokščių. Remiantis tuo, produktyvumas didėjo kitais būdais. Veiksminga pasirodė kelių gijų koncepcija - kelių komandų srautų apdorojimas vienu metu.

„Hyper-Threading Technology“ (HTT) arba „superthreading“ technologija, leidžianti procesoriui paleisti kelias programos gijas viename branduolyje. Būtent HTT, daugelio ekspertų nuomone, tapo būtina kūrimo sąlyga kelių branduolių procesoriai. Procesoriaus kelių programos gijų vykdymas vienu metu vadinamas gijos lygio paralelizmu (TLP – gijos lygio paralelizmas).

Kad išnaudotų kelių branduolių procesoriaus potencialą, vykdomoji programa turi naudoti visus skaičiavimo branduolius, o tai ne visada įmanoma. Senos serijinės programos, galinčios naudoti tik vieną branduolį, nebeveiks greičiau naujos kartos procesoriuose, todėl programuotojai vis dažniau įsitraukia į naujų mikroprocesorių kūrimą.

1. Bendrosios sąvokos

architektūra in plačiąja prasme yra sudėtingos sistemos, susidedančios iš daugelio elementų, aprašymas.

Kūrimo procese vystosi puslaidininkinės struktūros (mikroschemos), todėl nuolat kinta procesorių konstravimo principai, į jų sudėtį įtrauktų elementų skaičius, kaip organizuojama jų sąveika. Taigi CPU, kurių pagrindiniai struktūros principai yra vienodi, paprastai vadinami tos pačios architektūros procesoriais. Ir patys šie principai vadinami procesoriaus architektūra (arba mikroarchitektūra).

Mikroprocesorius (arba procesorius) yra pagrindinis kompiuterio komponentas. Jis apdoroja informaciją, vykdo programas ir valdo kitus sistemos įrenginius. Procesoriaus galia lemia, kaip greitai veiks programos.

Šerdis yra bet kurio mikroprocesoriaus pagrindas. Jį sudaro milijonai tranzistorių, esančių ant silicio lusto. Mikroprocesorius yra padalintas į specialias ląsteles, kurios vadinamos bendrosios paskirties registrais (RON). Procesoriaus darbas apskritai yra komandų ir duomenų ištraukimas iš atminties tam tikra seka ir jų vykdymas. Be to, siekiant padidinti kompiuterio greitį, mikroprocesoriuje yra vidinė talpyklos atmintis. Talpykla yra vidinė procesoriaus atmintis, naudojama kaip buferis (siekiant apsaugoti nuo ryšio su RAM pertrūkių).

Su IBM suderinamuose asmeniniuose kompiuteriuose naudojami Intel procesoriai turi daugiau nei tūkstantį instrukcijų ir priklauso procesoriams su išplėstiniu instrukcijų rinkiniu – CISC-procesoriais (CISC – Complex Instruction Set Computing).

1.1 Didelio našumo kompiuteriai. Lygiagretumas

Vystymosi tempas informatika lengva atsekti: nuo ENIAC (pirmojo bendrosios paskirties elektroninio skaitmeninio kompiuterio), kurio našumas yra keli tūkstančiai operacijų per sekundę, iki superkompiuterio Tianhe-2 (1000 trilijonų slankiojo kablelio operacijų per sekundę). Tai reiškia, kad skaičiavimo greitis per 60 metų padidėjo trilijoną kartų. Didelio našumo skaičiavimo sistemų kūrimas yra viena iš sunkiausių mokslinių ir techninių užduočių. Nors skaičiavimo greitis techninėmis priemonėmis išaugo tik kelis milijonus kartų, bendras skaičiavimo greitis išaugo trilijoną kartų. Šis efektas pasiekiamas naudojant lygiagretumą visuose skaičiavimo etapuose. Lygiagrečiam skaičiavimui reikia ieškoti racionalaus atminties paskirstymo, patikimų informacijos perdavimo būdų ir skaičiavimo procesų koordinavimo.

1.2 Simetrinis daugiafunkcis apdorojimas

Symmetric Multiprocessing (sutrumpintai SMP) arba simetrinis daugiaprocesis yra speciali daugiaprocesorių sistemų architektūra, kurioje keli procesoriai turi prieigą prie bendros atminties. Tai labai paplitusi architektūra, plačiai naudojama pastaruoju metu.

Naudojant SMP, kompiuteryje vienu metu dirba keli procesoriai, kurių kiekvienas atlieka savo užduotį. SMP sistema su kokybiška operacine sistema racionaliai paskirsto užduotis tarp procesorių, užtikrindama vienodą kiekvieno iš jų apkrovą. Tačiau yra atminties atkūrimo problema, nes net vieno procesoriaus sistemos reikalauja santykinai didelis laikas. Taigi prieiga prie RAM SMP vyksta nuosekliai: pirmiausia vienas procesorius, tada antrasis.

Dėl minėtų savybių SMP sistemos naudojamos išskirtinai mokslo srityje, pramonėje, versle, itin retai darbo biuruose. Be didelių techninės įrangos diegimo sąnaudų, tokioms sistemoms reikalinga labai brangi ir kokybiška programinė įranga, užtikrinanti daugiagiją užduočių vykdymą. Įprastos programos (žaidimai, teksto rengyklės) neveiks efektyviai SMP sistemose, nes jos neužtikrina tokio lygiagretumo. Jei pritaikysite bet kurią programą SMP sistemai, dirbti su vieno procesoriaus sistemomis taps itin neefektyvu, todėl reikės sukurti kelias tos pačios programos versijas. skirtingos sistemos. Išimtis yra, pavyzdžiui, programa ABLETON LIVE (skirta kurti muziką ir rengti DJ rinkinius), kuri palaiko kelių procesorių sistemas. Jei paleidžiate įprastą programą kelių procesorių sistemoje, ji vis tiek veiks šiek tiek greičiau nei viename procesoriuje. Taip yra dėl vadinamojo aparatinės įrangos pertraukimo (programos sustabdymo, kad branduolys apdorotų), kuris vykdomas kitame nemokamame procesoriuje.

SMP sistema (kaip ir bet kuri kita sistema, pagrįsta lygiagrečiu skaičiavimu) kelia didesnius reikalavimus tokiam atminties parametrui kaip atminties magistralės pralaidumas. Tai dažnai apriboja procesorių skaičių sistemoje (šiuolaikinės SMP sistemos efektyviai veikia su iki 16 procesorių).

Kadangi procesoriai turi bendrą atmintį, tampa būtina ją naudoti racionaliai ir derinti duomenis. Kelių procesorių sistemoje paaiškėja, kad kelios talpyklos veikia bendrai naudojamam atminties ištekliui. Talpyklos suderinamumas yra talpyklos ypatybė, užtikrinanti atskirose talpyklose saugomų duomenų vientisumą bendrajam ištekliui. Ši koncepcija yra ypatingas atminties darnos koncepcijos atvejis, kai keli branduoliai turi prieigą prie bendros atminties (ji yra visur šiuolaikinėse kelių branduolių sistemose). Jei šios sąvokos aprašytos bendrais bruožais, tada vaizdas bus toks: tą patį duomenų bloką galima įkelti į skirtingas talpyklas, kur duomenys apdorojami skirtingai.

Jei duomenų pasikeitimo pranešimai nenaudojami, įvyks klaida. Talpyklos suderinamumas yra skirtas tokiems konfliktams išspręsti ir talpykloje esančių duomenų nuoseklumui palaikyti.

SMP sistemos yra MIMD (multi in-struction multi data - computing system with multiple instruction stream and multiple data stream) kompiuterinių sistemų klasifikacijos pogrupis pagal Flynn (Stanfordo universiteto profesorius, Palyn Associates vienas iš įkūrėjų). Pagal šią klasifikaciją beveik visos lygiagrečių sistemų rūšys gali būti priskirtos MIMD.

Daugiaprocesorių sistemų skirstymas į tipus vyksta skirstant pagal atminties naudojimo principą. Šis metodas leido išskirti šiuos svarbius tipus

daugiaprocesorinės sistemos – daugiaprocesoriai (daugiaprocesorinės sistemos su bendra bendra atmintimi) ir daugiakompiuteriai (sistemos su atskira atmintimi). Bendrinamus duomenis, naudojamus lygiagrečiame skaičiavime, reikia sinchronizuoti. Duomenų sinchronizavimo užduotis yra viena iš svarbiausių svarbius klausimus, ir jo sprendimas kuriant daugiaprocesorių ir daugiagysles ir atitinkamai būtinas programinė įranga yra inžinierių ir programuotojų prioritetas. Duomenimis galima dalytis paskirstant fizinę atmintį. Šis metodas vadinamas nevienoda prieiga prie atminties (NUMA).

Šios sistemos apima:

  • Sistemos, kuriose duomenims reprezentuoti naudojama tik atskira procesoriaus talpykla (tik talpyklos atminties architektūra).
  • Sistemos su vietinės talpyklos suderinamumu, skirtu skirtingiems procesoriams (suderinta talpyklos NUMA).
  • Sistemos su aprūpinimu vieša prieigaį individualią procesorių atmintį, neįdiegus ne talpyklos koherentinio NUMA aparatūros lygiu.

Daugiaprocesorių sistemų kūrimo problema supaprastinama naudojant paskirstytą bendrinamą atmintį, tačiau šis metodas žymiai padidina lygiagretaus programavimo sudėtingumą.

1.3 Vienalaikis kelių sriegių sujungimas

Atsižvelgiant į visus aukščiau išvardintus simetrinio daugiafunkcinio apdorojimo trūkumus, prasminga kurti ir plėtoti kitus būdus, kaip pagerinti našumą. Jei analizuosite kiekvieno atskiro procesoriaus tranzistoriaus veikimą, galite atkreipti dėmesį į labai įdomus faktas- atliekant daugumą skaičiavimo operacijų, dalyvauja toli gražu ne visi procesoriaus komponentai (pagal naujausius tyrimus- apie 30% visų tranzistorių). Taigi, jei procesorius atlieka, tarkime, paprastą aritmetinę operaciją, tai didžioji dalis procesoriaus neveikia, todėl jį galima naudoti kitiems skaičiavimams. Taigi, jei į Šis momentas procesorius atlieka realias operacijas, tada į nemokama dalis galite įkelti sveikųjų skaičių aritmetinę operaciją. Norėdami padidinti procesoriaus apkrovą, galite sukurti spekuliacinį (arba išplėstinį) operacijų vykdymą, kuris reikalauja didelių procesoriaus aparatinės įrangos logikos komplikacijų. Jei programa iš anksto nustato gijas (komandų sekas), kurios gali būti vykdomos nepriklausomai viena nuo kitos, tai žymiai supaprastins užduotį (šis metodas lengvai įgyvendinamas aparatūros lygiu). Ši idėja, priklausanti Deanui Tulsenui (jo sukūrė 1955 m. Vašingtono universitete), vadinama simul-tanne multithreading. Vėliau jį sukūrė „Intel“ pavadinimu „hyperthreading“. Taigi vienas procesorius, vykdantis daug gijų, suvokiamas kaip veikiantis Windows sistema kaip keli procesoriai. Vėlgi reikia naudoti šią technologiją atitinkamo lygio programinė įranga. Maksimalus efektas naudojant kelių sriegių technologiją yra apie 30%.

1.4 Kelių branduolių

Multithreading technologija yra kelių branduolių įgyvendinimas programinės įrangos lygiu. Norint toliau didinti našumą, kaip visada, reikia pakeisti procesoriaus aparatinę įrangą. Sistemų ir architektūrų komplikacijos ne visada yra veiksmingos. Yra priešinga nuomonė: „viskas išradinga yra paprasta!“. Iš tiesų, norint padidinti procesoriaus našumą, visai nebūtina didinti jo laikrodžio dažnio, komplikuoti loginius ir aparatūros komponentus, nes pakanka tik racionalizuoti ir patobulinti esamą technologiją. Šis metodas yra labai pelningas – nereikia spręsti procesoriaus šilumos išsklaidymo didinimo, naujos brangios įrangos mikroschemų gamybai kūrimo. Šis metodas buvo įgyvendintas kaip kelių branduolių technologijos dalis - kelių skaičiavimo branduolių įdiegimas viename luste. Jei imsite originalų procesorių ir palyginsite našumo padidėjimą įdiegus kelis našumo patobulinimus, akivaizdu, kad kelių branduolių technologija yra geriausias pasirinkimas.

Jei palyginsime simetrinio kelių procesorių ir kelių branduolių architektūras, jos pasirodys beveik identiškos. Šerdies talpyklos atmintis gali būti kelių lygių (vietinė ir bendrinama, o duomenys iš RAM gali būti įkeliami tiesiai į antrojo lygio talpyklą). Atsižvelgdami į svarstomus kelių branduolių procesorių architektūros pranašumus, gamintojai sutelkia dėmesį į tai. Ši technologija pasirodė gana pigiai įgyvendinama ir universali, todėl ją buvo galima pateikti plačiajai rinkai. Be to, ši architektūra padarė savo Moore'o dėsnio pataisymus: „procesoriaus skaičiavimo branduolių skaičius padvigubės kas 18 mėnesių“.

Jei pažvelgsite į moderni rinka kompiuterinių technologijų, matosi, kad dominuoja įrenginiai su keturių ir aštuonių branduolių procesoriais. Be to, procesorių gamintojai teigia, kad netrukus prekyboje bus galima pamatyti procesorių su šimtais apdorojamų branduolių. Kaip jau ne kartą sakyta, visas kelių branduolių architektūros potencialas atsiskleidžia tik naudojant aukštos kokybės programinę įrangą. Taigi kompiuterių techninės ir programinės įrangos gamybos sfera yra labai glaudžiai susijusi.

* visada aktualiais klausimais, į ką reikėtų atkreipti dėmesį renkantis procesorių, kad nesuklystumėte.

Mūsų tikslas šiame straipsnyje yra aprašyti visus veiksnius, turinčius įtakos procesoriaus našumui ir kitoms veikimo charakteristikoms.

Turbūt niekam ne paslaptis, kad procesorius yra pagrindinis kompiuterio skaičiavimo blokas. Netgi galima sakyti – svarbiausia kompiuterio dalis.

Būtent jis tvarko beveik visus procesus ir užduotis, kurios vyksta kompiuteryje.

Nesvarbu, ar tai būtų vaizdo įrašų žiūrėjimas, muzika, naršymas internete, rašymas ir skaitymas atmintyje, 3D ir vaizdo apdorojimas, žaidimai. Ir daug daugiau.

Todėl pasirinkti C centrinis P procesoriaus, reikia elgtis labai atsargiai. Gali pasirodyti, kad nuspręsite įdiegti galingą vaizdo plokštę ir jos lygio neatitinkantį procesorių. Tokiu atveju procesorius neatskleis vaizdo plokštės potencialo, o tai sulėtins jos darbą. Procesorius bus visiškai pakrautas ir tiesiogine prasme užvirs, o vaizdo plokštė lauks savo eilės, dirbdama 60–70% savo galimybių.

Štai kodėl renkantis subalansuotą kompiuterį, ne išlaidas nepaisykite procesoriaus galingos vaizdo plokštės naudai. Procesoriaus galios turėtų pakakti atrakinti vaizdo plokštės potencialą, antraip tai tik išmesti pinigai.

Intel vs. AMD

*persekioti amžinai

Korporacija Intel, turi didžiulius žmogiškuosius išteklius ir beveik neišsenkamus finansus. Daug naujovių puslaidininkių pramonėje ir naujų technologijų ateina iš šios įmonės. Procesoriai ir tobulinimas Intel, vidutiniškai už 1-1,5 metais lenkia inžinierių tobulėjimą AMD. Bet, kaip žinia, už galimybę turėti daugiausia šiuolaikinės technologijos- turi sumokėti.

Procesoriaus kainų politika Intel, paremtas branduolių skaičius, talpyklos kiekis, bet ir įjungta architektūros „šviežumas“., našumas per laikrodįvatų,lustų apdorojimo technologija. Talpyklos atminties reikšmė, „techninio proceso subtilybės“ ir kt svarbias savybes procesorius bus aptartas toliau. Už tokių technologijų, kaip nemokamas dažnių daugiklis, turėjimą taip pat turėsite sumokėti papildomą sumą.

Įmonė AMD, skirtingai nei įmonė Intel, siekia, kad jos procesoriai būtų prieinami galutiniam vartotojui ir kompetentinga kainų politika.

Galima net taip sakyti AMD– « Žmonių antspaudas“. Kainų etiketėse rasite tai, ko jums reikia už labai patrauklią kainą. Paprastai praėjus metams po atsiradimo nauja technologijaįmonėje Intel, technologijos analogas iš AMD. Jei nesiekiate aukščiausio našumo ir daugiau dėmesio skiriate kainai nei pažangių technologijų buvimui, tada įmonės produktai AMD- tik tau.

Kainų politika AMD, yra labiau pagrįstas branduolių skaičiumi ir labai mažai talpyklos atminties kiekiu, architektūrinių patobulinimų buvimu. Kai kuriais atvejais už galimybę turėti trečiojo lygio talpyklą turėsite sumokėti šiek tiek papildomai ( Fenomas turi 3 lygio talpyklą, Atlonas turinys tik ribotas, 2 lygiai). Bet kartais AMD lepina savo gerbėjus galimybė atrakinti pigesnių procesorių prie brangesnių. Galite atrakinti branduolius arba talpyklą. Tobulinti Atlonas prieš Fenomas. Tai įmanoma dėl modulinės architektūros ir kai kurių pigesnių modelių trūkumo, AMD tiesiog išjungia kai kuriuos brangesnius lusto blokus (pagal programinę įrangą).

Branduoliai– praktiškai nesikeičia, skiriasi tik jų skaičius (galioja procesoriams 2006-2011 metų). Dėl savo procesorių moduliškumo įmonė puikiai parduoda atmestus lustus, kurie, išjungus kai kuriuos blokus, tampa procesoriumi iš mažiau produktyvios linijos.

Bendrovė jau daug metų dirbo prie visiškai naujos architektūros kodiniu pavadinimu Buldozeris, bet išleidimo metu 2011 metų nauji procesoriai parodė ne patį geriausią našumą. AMD nusidėjo operacinėms sistemoms, kad jos nesupranta dviejų branduolių ir „kitų daugiagijų“ architektūrinių ypatybių.

Įmonės atstovų teigimu, norint pajusti visą šių procesorių našumą, reikėtų laukti specialių pataisymų ir pataisų. Tačiau pradžioje 2012 metų įmonės atstovai atidėjo architektūrai palaikančio atnaujinimo išleidimą Buldozeris antram pusmečiui.

Procesoriaus dažnis, branduolių skaičius, daugiagija.

Kartais Pentium 4 ir prieš jį CPU dažnis, buvo pagrindinis procesoriaus našumo veiksnys renkantis procesorių.

Tai nenuostabu, nes procesorių architektūros buvo specialiai sukurtos aukštiems dažniams pasiekti, tai ypač atsispindėjo procesoriuje Pentium 4 apie architektūrą tinklo sprogimas. Aukštas dažnis nebuvo veiksmingas naudojant ilgą vamzdyną, kuris buvo naudojamas architektūroje. Netgi Athlon XP dažnis 2GHz, pagal našumą buvo didesnis nei Pentium 4 c 2,4 GHz. Taip ir buvo Tyras vanduo rinkodara. Po šios klaidos įmonė Intel Supratau savo klaidas ir atgal į gerąją pusę Pradėjau dirbti ne su dažnio komponentu, o su laikrodžio našumu. Iš architektūros tinklo sprogimas turėjo atsisakyti.

mus suteikia kelių branduolių?

Keturių branduolių procesorius 2,4 GHz, kelių gijų programose, teoriškai būtų maždaug lygiavertis vieno branduolio procesoriui, kurio dažnis 9,6 GHz arba 2 branduolių procesorius su dažniu 4,8 GHz. Bet tai tik teoriškai. Praktiškai kita vertus, du dviejų branduolių procesoriai dviejų lizdų pagrindinėse plokštėse bus greitesni nei vienas 4 branduolių procesorius tuo pačiu veikimo dažniu. Autobusų greičio apribojimai ir atminties delsa jaučiasi.

* atsižvelgiant į tą pačią architektūrą ir talpyklos atminties kiekį

Daugiagyslis, leidžia vykdyti instrukcijas ir skaičiavimus dalimis. Pavyzdžiui, reikia atlikti tris aritmetines operacijas. Pirmieji du yra vykdomi kiekviename procesoriaus šerdyje, o rezultatai įtraukiami į talpyklą, kur kitą veiksmą su jais gali atlikti bet kuris iš laisvų branduolių. Sistema yra labai lanksti, tačiau be tinkamo optimizavimo ji gali neveikti. Todėl optimizavimas kelių branduolių procesorių architektūrai OS aplinkoje yra labai svarbus.

Programėlės, kurios „myli“ ir naudoti kelių gijų: archyvuotojai, vaizdo grotuvai ir koduotuvai, antivirusinės priemonės, defragmentavimo programos, grafinis redaktorius , naršyklės, Blykstė.

Taip pat tarp kelių gijų „gerbėjų“ priskiriamos tokios operacinės sistemos kaip Windows 7 ir Windows Vista, taip pat daugelis OS, remiantis branduoliu Linux, kurios veikia pastebimai greičiau su kelių branduolių procesoriumi.

Dauguma žaidimai, kartais visiškai pakanka 2 branduolių procesoriaus aukštu dažniu. Tačiau dabar atsiranda vis daugiau žaidimų, „paaštrintų“ multithreading. Imk bent jau šiuos smėlio dėžėžaidimai kaip GTA 4 arba prototipas, kuriame yra 2 branduolių procesorius, kurio dažnis yra žemiau 2,6 GHz- nesijaučiate patogiai, kadrų dažnis nukrenta žemiau 30 kadrų per sekundę. Nors šiuo atveju greičiausiai tokių incidentų priežastis yra „silpnas“ žaidimų optimizavimas, laiko trūkumas arba „netiesioginės“ tų, kurie perkėlė žaidimus iš konsolių į PC.

Perkant naują procesorių žaidimams, dabar reikėtų atkreipti dėmesį į procesorius su 4 ar daugiau branduolių. Tačiau nepamirškite 2 branduolių procesorių iš „aukštesnės kategorijos“. Kai kuriuose žaidimuose šie procesoriai kartais jaučiasi geriau nei kai kurie kelių branduolių procesoriai.

Procesoriaus talpykla.

- tai yra skirta procesoriaus lusto sritis, kurioje apdorojami ir saugomi tarpiniai duomenys tarp procesoriaus branduolių, RAM ir kitų magistralių.

Jis veikia labai dideliu taktiniu dažniu (dažniausiai paties procesoriaus dažniu), turi labai didelį pralaidumą, o procesoriaus branduoliai su juo dirba tiesiogiai ( L1).

Dėl jos trūkumas, procesorius gali neveikti atliekant daug laiko reikalaujančias užduotis ir laukti, kol talpykloje bus apdoroti nauji duomenys. Taip pat talpyklos atmintis tarnauja dažnai pasikartojančių duomenų įrašai, kuriuos prireikus galima greitai atkurti be nereikalingų skaičiavimų, nepriverčiant procesoriaus vėl skirti jiems laiko.

Našumas taip pat prideda faktą, kad jei talpyklos atmintis yra sujungta, ir visi branduoliai gali vienodai naudoti jos duomenis. Tai suteikia papildomų galimybių kelių gijų optimizavimui.

Ši technika dabar naudojama 3 lygio talpykla. Procesoriams Intel buvo procesoriai su kombinuota 2 lygio talpykla ( C2D E 7***,E8***), dėl ko šis metodas padidino daugiasriegio našumą.

Peršokant procesorių gali tapti talpyklos atmintis silpnoji vieta, neleidžiant procesoriui įsijungti daugiau nei maksimalus veikimo dažnis be klaidų. Tačiau privalumas yra tas, kad jis veiks tuo pačiu dažniu kaip ir peršokęs procesorius.

Apskritai, kuo didesnė talpyklos atmintis, tuo greičiau CPU. Kokiose programose?

Visose programose, kuriose naudojama daug slankiojo kablelio duomenų, instrukcijų ir gijų, aktyviai naudojama talpykla. Laikinoji atmintis yra labai populiari archyvuotojai, vaizdo kodavimo įrenginiai, antivirusinės priemonės ir grafinis redaktorius ir tt

palankus didelis skaičius talpyklos yra žaidimai. Ypač strategijos, automatiniai žaidimai, RPG, SandBox ir visi žaidimai, kuriuose yra daug smulkių detalių, dalelių, geometrijos elementų, informacijos srautų ir fizinių efektų.

Laikinoji atmintis atlieka labai svarbų vaidmenį išlaisvinant sistemų, kuriose yra 2 ar daugiau vaizdo plokščių, potencialą. Galų gale, dalis apkrovos tenka procesoriaus branduolių sąveikai tiek tarpusavyje, tiek dirbant su kelių vaizdo lustų srautais. Būtent šiuo atveju svarbus yra talpyklos atminties organizavimas, o didelės apimties 3 lygio talpyklos atmintis yra labai naudinga.

Laikinoji atmintis visada aprūpinta apsauga nuo galimų klaidų ( ECC), kuriuos aptikus, jie koreguojami. Tai labai svarbu, nes nedidelė klaida talpykloje, apdorojimo metu, gali virsti milžiniška, nuolatine klaida, nuo kurios „atsiguls“ visa sistema.

Korporacinės technologijos.

(hiper gijos, HT)–

pirmą kartą technologija buvo pritaikyta procesoriuose Pentium 4, tačiau jis ne visada veikė tinkamai ir dažnai labiau sulėtino procesorių nei pagreitino. Priežastis buvo per ilgas vamzdynas ir nebaigta atšakų prognozavimo sistema. Taiko įmonė Intel, technologijos analogų dar nėra, jei nelaikyti analogu tada? ką įgyvendino įmonės inžinieriai AMD architektūroje Buldozeris.

Sistemos principas yra toks, kad kiekvienai fizinei šerdies dvi skaičiavimo gijos, vietoj vieno. Tai yra, jei turite 4 branduolių procesorių su HT (Core i 7), tada turite virtualias gijas 8 .

Našumo padidėjimas pasiekiamas dėl to, kad duomenys gali patekti į dujotiekį jau jo viduryje, o nebūtinai pradžioje. Jei kai kurie procesoriaus blokai, galintys atlikti šį veiksmą, yra neaktyvūs, jie gauna užduotį, kurią reikia atlikti. Našumo padidėjimas nėra toks pat kaip tikrų fizinių branduolių, bet palyginamas (~ 50-75%, priklausomai nuo taikymo tipo). Gana retai kai kuriose programose HT neigiamai veikia dėl našumo. Taip yra dėl prasto šios technologijos taikomųjų programų optimizavimo, nesugebėjimo suprasti, kad yra „virtualios“ gijos ir tolygiai įkelti gijas ribotuvų.

TurboPadidinti - labai naudinga technologija, kuri padidina dažniausiai naudojamų procesoriaus branduolių dažnį, priklausomai nuo jų darbo krūvio lygio. Tai labai naudinga, kai programa negali naudoti visų 4 branduolių ir įkelia tik vieną ar du, o jų dažnis didėja, o tai iš dalies kompensuoja našumą. Šios technologijos analogas įmonėje AMD, yra technologija Turbo branduolys.

, 3 dabar! nurodymus. Sukurta pagreitinti procesorių multimedija skaičiavimai (vaizdo įrašas, muzika, 2D/3D grafika ir kt.), taip pat pagreitinti tokių programų kaip archyvavimo, darbo su vaizdais ir vaizdo įrašais darbą (palaikant šių programų instrukcijas).

3dabar! - gana sena technologija AMD, kuriame yra papildomų nurodymų, kaip apdoroti daugialypės terpės turinį, be to SSE pirmoji versija.

* Būtent, galimybė srautu apdoroti vieno tikslumo realius skaičius.

Naujausios versijos buvimas yra didelis pliusas, procesorius pradeda efektyviau atlikti tam tikras užduotis tinkamai optimizavus programinę įrangą. Procesoriai AMD dėvėti panašūs pavadinimai, bet šiek tiek kitoks.

* Pavyzdys – SSE 4.1 („Intel“) – SSE 4A (AMD).

Be to, šie instrukcijų rinkiniai nėra tapatūs. Tai yra analogai, kuriuose yra nedideli skirtumai.

ramiai, speedstep, „CoolCore“, Patobulinta pusė valstybė (C1E) irt. d.

Šios technologijos, esant mažai apkrovai, sumažina procesoriaus dažnį, sumažindamos daugiklio ir šerdies įtampą, išjungdamos dalį talpyklos ir pan. Tai leidžia procesoriui daug mažiau įkaisti ir sunaudoti mažiau energijos, kelti mažiau triukšmo. Jei reikia maitinimo, procesorius per sekundės dalį grįš į įprastą būseną. Pagal standartinius nustatymus bios beveik visada įjungtos, jei pageidaujama, jas galima išjungti, kad perjungus 3D žaidimus būtų sumažinti galimi „frizai“.

Kai kurios iš šių technologijų valdo sistemos ventiliatorių greitį. Pavyzdžiui, jei procesoriui nereikia didesnio šilumos išsklaidymo ir jis nėra apkrautas, procesoriaus ventiliatoriaus greitis sumažinamas ( AMD Cool'n'Quiet, Intel Speed ​​​​Step).

„Intel“ virtualizacijos technologija ir AMD virtualizavimas.

Šios techninės įrangos technologijos leidžia specialių programų pagalba paleisti kelias Operacinės sistemos iš karto, be reikšmingo našumo praradimo. Taip pat jis naudojamas tinkamam serverių veikimui, nes dažnai juose yra įdiegta daugiau nei viena OS.

Vykdyti Išjungti Bit irne Vykdyti Bit technologija, skirta apsaugoti kompiuterį nuo virusų atakų ir programinės įrangos klaidų, kurios gali sukelti sistemos gedimą buferio perpildymas.

Intel 64 , AMD 64 , EM 64 T - ši technologija leidžia procesoriui dirbti tiek OS su 32 bitų architektūra, tiek OS su 64 bitų architektūra. Sistema 64 bitai- kalbant apie naudą, eiliniam vartotojui ji skiriasi tuo, kad šioje sistemoje galima naudoti daugiau nei 3,25 GB RAM. 32 bitų sistemose naudokite b apie Daugiau RAM neįmanoma dėl riboto adresuojamos atminties* .

Daugumą programų su 32 bitų architektūra galima paleisti sistemoje su 64 bitų OS.

* Ką daryti, jei dar 1985 metais niekas net negalėjo pagalvoti apie tokius milžiniškus, pagal to meto standartus, RAM kiekius.

Papildomai.

Keletas žodžių apie

Į šį momentą verta atkreipti ypatingą dėmesį. Kuo plonesnis techninis procesas, tuo mažiau procesorius sunaudoja energijos ir dėl to mažiau įkaista. Ir, be kita ko, jis turi didesnę saugumo ribą įsijungimui.

Kuo plonesnis techninis procesas, tuo daugiau galima „įvynioti“ į lustą (ir ne tik) ir padidinti procesoriaus galimybes. Dėl mažesnių srovės nuostolių ir šerdies ploto sumažėjimo proporcingai mažėja ir šilumos išsklaidymas bei energijos suvartojimas. Galima pastebėti tendenciją, kad su kiekviena nauja tos pačios architektūros karta, naudojant naują proceso technologiją, energijos suvartojimas taip pat auga, tačiau taip nėra. Tiesiog gamintojai juda link dar didesnio našumo ir peržengia ankstesnės kartos procesorių šilumos išsklaidymo liniją dėl išaugusio tranzistorių skaičiaus, kuris nėra proporcingas techninio proceso mažėjimui.

integruotas į procesorių.

Jei jums nereikia integruoto vaizdo šerdies, neturėtumėte pirkti procesoriaus su juo. Jūs gausite tik blogesnį šilumos išsklaidymą, papildomą šilumą (ne visada), blogesnį įsijungimo potencialą (ne visada) ir permokėtus pinigus.

Be to, tie branduoliai, kurie yra įmontuoti į procesorių, yra tinkami tik įkelti OS, naršyti internete ir žiūrėti vaizdo įrašus (ir net tada ne bet kokios kokybės).

Rinkos tendencijos vis dar keičiasi ir galimybė įsigyti produktyvų procesorių iš Intel Be vaizdo šerdies jis iškrenta vis mažiau. Su procesoriais atsirado priverstinio integruoto vaizdo šerdies įvedimo politika Intel pagal Kodinis pavadinimas Smėlio tiltas, kurios pagrindinė naujovė buvo tame pačiame gamybos procese įmontuotas branduolys. Vaizdo įrašo branduolys yra bendrai su procesoriumi ant vieno kristalo, ir ne taip paprasta, kaip ankstesnių kartų procesoriuose Intel. Tiems, kurie jo nenaudoja, yra trūkumų: tam tikra permoka už procesorių, šildymo šaltinio poslinkis šilumos paskirstymo dangtelio centro atžvilgiu. Tačiau yra ir pliusų. Išjungtas vaizdo šerdis, gali būti naudojamas labai greitam vaizdo kodavimui naudojant technologiją Greitas sinchronizavimas kartu su specialia programine įranga, kuri palaiko šią technologiją. Ateityje, Intelžada plėsti integruoto vaizdo branduolio panaudojimo lygiagrečiam skaičiavimui horizontus.

Lizdai procesoriams. Platformos tarnavimo laikas.


Intel savo platformoms laikosi grubios politikos. Kiekvieno eksploatavimo trukmė (procesorių pardavimo pradžios ir pabaigos data) paprastai neviršija 1,5–2 metų. Be to, įmonė turi kelias lygiagrečiai besivystančias platformas.

Įmonė AMD, turi priešingą suderinamumo politiką. Į jos platformą 3 AM, visi būsimų kartų procesoriai, kurie palaiko DDR3. Net kai platforma eina į AM3+ o vėliau arba nauji procesoriai pagal 3 AM, arba nauji procesoriai bus suderinami su senais pagrindinės plokštės, o piniginei bus galima padaryti neskausmingą atnaujinimą pakeitus tik procesorių (nekeičiant pagrindinės plokštės, RAM ir pan.) bei blykstelėjus pagrindinei plokštei. Vieninteliai nesuderinamumo niuansai gali būti keičiant tipą, nes reikės kito procesoriuje įmontuoto atminties valdiklio. Taigi suderinamumas yra ribotas ir palaikomas ne visose pagrindinėse plokštėse. Tačiau apskritai ekonomiškam vartotojui arba tiems, kurie nėra įpratę visiškai keisti platformos kas 2 metus - procesoriaus gamintojo pasirinkimas yra suprantamas - tai AMD.

CPU aušinimas.

Standartiškai komplektuojamas su procesoriumi DĖŽĖ- naujas aušintuvas, kuris tiesiog atliks savo darbą. Tai aliuminio gabalas, kurio sklaidos plotas nėra labai didelis. Efektyvūs aušintuvai, pagrįsti šilumos vamzdeliais ir prie jų pritvirtintomis plokštėmis, yra skirti labai efektyviam šilumos išsklaidyti. Jei nenorite girdėti per didelio ventiliatoriaus triukšmo, turėtumėte apsvarstyti galimybę įsigyti alternatyvų, efektyvesnį šilumos vamzdžio aušintuvą arba uždaro ciklo arba neuždarojo ciklo skysčio aušinimo sistemą. Tokios aušinimo sistemos papildomai leis įsibėgėti procesorių.

Išvada.

Buvo apsvarstyti visi svarbūs aspektai, turintys įtakos procesoriaus veikimui ir veikimui. Pakartokime, į ką reikia atkreipti dėmesį:

  • Pasirinkite gamintoją
  • Procesoriaus architektūra
  • Proceso technologija
  • CPU dažnis
  • Procesoriaus branduolių skaičius
  • Procesoriaus talpyklos dydis ir tipas
  • Technologijų ir instrukcijų palaikymas
  • Kokybiškas aušinimas

Mes tikimės duota medžiaga padės suprasti ir apsispręsti dėl jūsų lūkesčius atitinkančio procesoriaus pasirinkimo.

Išnagrinėję kelių gijų teoriją, panagrinėkime praktinį pavyzdį – Pentium 4. Jau šio procesoriaus kūrimo stadijoje „Intel“ inžinieriai toliau stengėsi didinti jo našumą, nekeisdami programos sąsajos. Buvo apsvarstyti penki paprasti metodai:

Laikrodžio dažnio didinimas;

Dviejų procesorių įdėjimas į vieną lustą;

Naujų funkcinių blokų įvedimas;

Konvejerio pratęsimas;

Naudojant daugiasriegius ryšius.

Akivaizdžiausias būdas pagerinti našumą yra padidinti laikrodžio greitį nekeičiant kitų parametrų. Paprastai kiekvienas paskesnis procesoriaus modelis turi šiek tiek didesnį taktinį dažnį nei ankstesnis. Deja, staigiai didėjant laikrodžio greičiui, kūrėjai susiduria su dviem problemomis: padidėjusiu energijos suvartojimu (tai aktualu nešiojamiesiems kompiuteriams ir kitiems skaičiavimo įrenginiams, kurie veikia baterijomis) ir perkaitimu (tam reikia efektyvesnių aušintuvų).

Antrasis būdas – dviejų procesorių įdėjimas į lustą – yra gana paprastas, tačiau jo metu lusto užimamas plotas padvigubinamas. Jei kiekvienas procesorius turi savo talpyklą, lustų skaičius vienoje plokštelėje sumažėja perpus, tačiau tai taip pat reiškia dvigubai didesnes gamybos sąnaudas. Jei abu procesoriai turi bendrą talpyklą, galima išvengti reikšmingo užimtos vietos padidėjimo, tačiau tokiu atveju iškyla kita problema – talpyklos, tenkančios vienam procesoriui, kiekis sumažėja perpus, o tai neišvengiamai atsiliepia našumui. Be to, nors profesionalios serverių programos gali visiškai išnaudoti kelių procesorių išteklius, įprastose darbalaukio programose vidinis lygiagretumas išvystomas daug mažiau.

Naujų funkcinių blokų įdiegimas taip pat nėra sunkus, tačiau čia svarbu išlaikyti pusiausvyrą. Kokia prasmė iš keliolikos ALU, jei lustas negali duoti komandų konvejeriui tokiu greičiu, kuris galėtų įkelti visus tuos blokus?

Dujotiekis su padidintu etapų skaičiumi, galintis padalinti užduotis į mažesnius segmentus ir jas apdoroti per trumpą laiką, viena vertus, pagerina našumą, kita vertus, padidina neigiamas klaidingo perėjimų numatymo, talpyklos praleidimų pasekmes, pertraukimai ir kiti įvykiai, kurie sutrikdo įprastą eigos instrukcijų apdorojimą procesoriuje. Be to, norint visiškai realizuoti prailginto dujotiekio galimybes, būtina padidinti laikrodžio dažnį, o tai, kaip žinome, padidina energijos suvartojimą ir šilumos išsklaidymą.

Galiausiai, galite įdiegti daugiasriegius. Šios technologijos pranašumas yra tas, kad ji įdiegia papildomą programinės įrangos giją, kuri leidžia naudoti aparatinės įrangos išteklius, kurie kitu atveju būtų nenaudojami. Remdamiesi eksperimentinių tyrimų rezultatais, „Intel“ kūrėjai nustatė, kad 5 % padidinus lusto plotą, kai įdiegiama daugelio programų daugiasriegis ryšys, našumas padidėja 25 %. 2002 m. Xeon buvo pirmasis „Intel“ procesorius, palaikantis kelių gijų funkciją. Vėliau, pradedant nuo 3,06 GHz, į Pentium 4 liniją buvo įvestas daugiasriegis ryšys.

Nauja vietoje

>

Populiariausias