Koti / Internet / ht tekniikkaa. Hyper threading mikä se on ja miksi se on? Suorittimet, joissa on Hyper Threading -tuki

ht tekniikkaa. Hyper threading mikä se on ja miksi se on? Suorittimet, joissa on Hyper Threading -tuki

15.03.2013

Hyper-Threading-tekniikka ilmestyi Intelin prosessorit, pelottavaa sanoa, yli 10 vuotta sitten. Ja tällä hetkellä se on tärkeä elementti Core-prosessoreissa. Kysymystä HT:n tarpeesta peleissä ei kuitenkaan vielä täysin ymmärretä. Päätimme tehdä testin nähdäksemme, tarvitsevatko pelaajat Core i7:n vai onko parempi tulla toimeen Core i5:llä. Ota myös selvää, kuinka Core i3 on parempi kuin Pentium.


Intelin kehittämä Hyper-Threading Technology, jota käytetään yksinomaan yhtiön prosessoreissa, alkaen mieleenpainuvasta Pentium 4:stä, on nyt itsestäänselvyys. Se on varustettu huomattavalla määrällä nykyisen ja edellisen sukupolven prosessoreita. Sitä käytetään myös lähitulevaisuudessa.

Ja on myönnettävä, että Hyper-Threading-tekniikka on hyödyllinen ja sillä on positiivinen vaikutus suorituskykyyn, muuten Intel ei käyttäisi sitä prosessorien sijoittamiseen linjaan. Eikä vähäpätöisenä elementtinä, vaan yhtenä tärkeimmistä, ellei tärkein. Selvittääksemme, mistä puhumme, olemme laatineet taulukon, jonka avulla on helppo arvioida Intel-prosessorien segmentointiperiaatetta.


Kuten näet, Pentiumin ja Core i3:n sekä Core i5:n ja Core i7:n välillä on hyvin vähän eroja. Itse asiassa i3- ja i7-mallit eroavat Pentiumista ja i5:stä vain kolmannen tason välimuistin koosta ydintä kohden (kellotaajuutta tietenkään ottamatta huomioon). Ensimmäinen pari on 1,5 megatavua ja toinen 2 megatavua. Tämä ero ei voi radikaalisti vaikuttaa prosessorien suorituskykyyn, koska välimuistin koon ero on hyvin pieni. Tästä syystä Core i3 ja Core i7 saivat tuen Hyper-Threading-teknologialle, joka on tärkein elementti, jonka avulla nämä prosessorit voivat saada suorituskykyetua Pentiumiin ja Core i5:een verrattuna.

Tämän seurauksena hieman suurempi välimuisti ja Hyper-Threading-tuki antavat sinun asettaa huomattavasti korkeampia hintoja prosessoreille. Esimerkiksi Pentium-linjan prosessorit (noin 10 tuhatta tengeä) ovat noin kaksi kertaa halvempia kuin Core i3 (noin 20 tuhatta tengeä), ja huolimatta siitä, että fyysisesti, laitteistotasolla, ne ovat täysin samat ja vastaavasti. , on sama hinta. Hintaero Core i5:n (noin 30 tuhatta tengeä) ja Core i7:n (noin 50 tuhatta tengeä) välillä on myös erittäin suuri, vaikkakin alle kaksi kertaa nuoremmissa malleissa.


Kuinka perusteltua tällainen hinnankorotus on? Mitä todellista hyötyä Hyper-Threading tarjoaa? Vastaus on tiedetty pitkään: lisäys voi olla erilainen - kaikki riippuu sovelluksesta ja sen optimoinnista. Päätimme tarkistaa, mitä HT tekee peleissä, yhtenä vaativimmista "kotitaloussovelluksista". Lisäksi tämä testi on loistava lisä aiempaan materiaaliimme prosessoriytimien määrän vaikutuksesta pelin suorituskykyyn.

Ennen kuin siirrymme testeihin, muistetaan (tai ota selvää), mikä on Hyper-Threading Technology. Kuten Intel itse ilmaisi, esittelee tätä tekniikkaa monta vuotta sitten siinä ei ole mitään erityisen monimutkaista. Itse asiassa kaikki mitä tarvitaan HT:n käyttöönottamiseksi fyysisellä tasolla, on lisätä ei yksi joukko rekistereitä ja keskeytysohjain, vaan kaksi, yhteen fyysiseen ytimeen. Pentium 4 -prosessoreissa nämä lisäelementtejä lisäsi transistorien määrää vain viisi prosenttia. Nykypäivän Ivy Bridge -ytimissä (samoin kuin Sandy Bridgessä ja tulevassa Haswellissa) lisäelementit edes neljälle ytimelle eivät lisää suulaketta edes yhdellä prosentilla.


Lisärekisterit ja keskeytysohjain yhdistettynä ohjelmistotukeen antavat käyttöjärjestelmälle mahdollisuuden nähdä ei yhtä fyysistä ydintä, vaan kaksi loogista ydintä. Samaan aikaan tietojen käsittely kahdesta järjestelmän lähettämästä virrasta jatkuu edelleen samassa ytimessä, mutta joillain ominaisuuksilla. Koko prosessori jää edelleen yhden säikeen käyttöön, mutta heti kun jotkut CPU-lohkot vapautuvat ja ovat joutuneet, ne asetetaan välittömästi toisen säikeen käyttöön. Tämän ansiosta oli mahdollista käyttää kaikkia prosessoriyksiköitä samanaikaisesti ja siten lisätä sen tehokkuutta. Intelin itsensä mukaan suorituskyvyn lisäys voi ihanteellisissa olosuhteissa olla jopa 30 prosenttia. Totta, nämä luvut pitävät paikkansa vain Pentium 4:ssä, jonka putkilinja on erittäin pitkä, nykyaikaiset prosessorit hyötyvät vähemmän HT:sta.

Mutta ihanteelliset olosuhteet Hyper-Threadingille eivät aina ole totta. Ja mikä tärkeintä, HT:n työn huonoin tulos ei ole suorituskyvyn kasvun puute, vaan sen väheneminen. Toisin sanoen tietyissä olosuhteissa HT:lla varustetun prosessorin suorituskyky laskee verrattuna prosessoriin, jossa ei ole HT:tä, johtuen siitä, että säikeiden jakamisen ja jonotuksen ylittävät kustannukset ylittävät merkittävästi rinnakkaisten säikeiden laskemisesta saatavan voiton, mikä on mahdollista tässä tapauksessa. tapaus. Ja tällaiset tapaukset ovat paljon yleisempiä kuin Intel haluaisi. Lisäksi useiden vuosien Hyper-Threadingin käyttö ei parantanut tilannetta. Tämä pätee erityisesti peleihin, jotka ovat erittäin monimutkaisia ​​eivätkä mitenkään epätavanomaisia ​​tietojen laskennan ja sovellusten suhteen.

Selvittääksemme Hyper-Threadingin vaikutuksen pelisuorituskykyyn käytimme jälleen pitkään kestäneitä Core i7-2700K -testiprosessoriamme ja simuloimme neljää prosessoria kerralla poistamalla ytimet käytöstä ja ottamalla HT:n käyttöön/pois käytöstä. Perinteisesti niitä voidaan kutsua Pentium (2 ydintä, HT pois päältä), Core i3 (2 ydintä, HT päällä), Core i5 (4 ydintä, HT pois) ja Core i7 (4 ydintä, HT päällä). Miksi ehdollisesti? Ensinnäkin siksi, että ne eivät joidenkin ominaisuuksien mukaan vastaa oikeita tuotteita. Erityisesti ytimien poistaminen käytöstä ei johda vastaavaan kolmannen tason välimuistin äänenvoimakkuuden pienenemiseen - sen tilavuus on kaikille 8 megatavua. Ja lisäksi kaikki "ehdolliset" prosessorimme toimivat samalla 3,5 GHz:n taajuudella, mitä kaikki Intel-prosessorit eivät vielä saavuta.


Tämä on kuitenkin jopa parempaan päin, koska kaikkien muuttumattomuuden ansiosta tärkeitä parametreja voimme ilman varauksia selvittää Hyper-Threadingin todellisen vaikutuksen pelin suorituskykyyn. Ja "ehdollisen" Pentiumin ja Core i3:n suorituskyvyn prosentuaalinen ero on lähellä todellisten prosessorien välistä eroa edellyttäen, että taajuudet ovat samat. Ei myöskään pitäisi olla kiusallista, että käytämme Sandy Bridge -prosessoria, sillä tehokkuustestimme, joista voit lukea artikkelista "Paljaa suorituskyky - ALU:iden ja FPU:iden tehokkuuden tutkiminen", osoittivat, että Hyper-Threadingin vaikutus uusimpien sukupolvien prosessorit Core pysyy ennallaan. Todennäköisimmin relevantti annettua materiaalia on saatavilla myös tuleville Haswell-prosessoreille.

No, näyttää siltä, ​​että kaikki testausmetodologiaa koskevat kysymykset sekä Hyper-Threading Technologyn toiminnan ominaisuudet on keskusteltu, ja siksi on aika siirtyä mielenkiintoisimpaan asiaan - testeihin.

Takaisin testissä, jossa tutkimme prosessoriytimien määrän vaikutusta pelin suorituskykyyn, huomasimme, että 3DMark 11 on melko rauhallinen suorittimen suorituskyvyn suhteen ja toimii täydellisesti jopa yhdellä ytimellä. Hyper-Threadingilla oli sama "voimakas" vaikutus. Kuten näette, testi ei todellakaan huomaa eroja Pentiumin ja Core i7:n välillä, puhumattakaan välimalleista.

Metro 2033

Mutta Metro 2033 huomasi selvästi Hyper-Threadingin syntymisen. Ja reagoi negatiivisesti! Kyllä, aivan oikein: HT:n salliminen tässä pelissä vaikuttaa negatiivisesti suorituskykyyn. Pieni vaikutus tietysti - 0,5 kuvaa sekunnissa neljällä fyysisellä ytimellä ja 0,7 kahdella. Mutta tämä tosiasia antaa kaikki syyt sanoa, että Metro 2033:ssa Pentium on nopeampi kuin Core i3 ja Core i5 on parempi kuin Core i7. Tässä on vahvistus tosiasialle, että Hyper-Threading ei näytä tehokkuuttaan aina eikä kaikkialla.

Crysis 2

Tämä peli näytti erittäin mielenkiintoisia tuloksia. Ensinnäkin huomautamme, että Hyper-Threadingin vaikutus näkyy selvästi kaksiytimisissä prosessoreissa - Core i3 ylitti Pentiumin lähes 9 prosentilla, mikä on melko paljon tälle pelille. Voitto HT:lle ja Intelille? Ei oikeastaan, koska Core i7 ei osoittanut parannuksia huomattavasti halvempaan Core i5:een verrattuna. Mutta tälle on järkevä selitys - Crysis 2 ei osaa käyttää enempää kuin neljää tietovirtaa. Tästä johtuen näemme hyvän kasvun kaksiytimisessä HT:n kanssa - loppujen lopuksi neljä säiettä, vaikkakin loogisia, ovat parempia kuin kaksi. Toisaalta Core i7 -säikeitä ei ollut mihinkään laittaa, neljä fyysistä ydintä riitti sinne. Joten tämän testin tulosten mukaan voimme huomata HT:n positiivisen vaikutuksen Core i3:ssa, joka on huomattavasti parempi kuin Pentium täällä. Mutta neljän ytimen Core i5 näyttää jälleen järkevämmältä ratkaisulta.

Battlefield 3

Tässä tulokset ovat hyvin outoja. Jos ytimien lukumäärän testissä taistelukenttä oli näyte mikroskooppisesta mutta lineaarisesta kasvusta, niin Hyper-Threadingin sisällyttäminen toi tuloksiin kaaosta. Itse asiassa voimme todeta, että Core i3 kahdella ytimellään ja HT:lla osoittautui kaikkien aikojen parhaaksi, jopa Core i5:n ja Core i7:n edellä. Outoa tietysti, mutta samaan aikaan Core i5 ja Core i7 olivat jälleen samalla tasolla. Mikä tämän selittää, ei ole selvää. Todennäköisesti tämän pelin testausmenetelmällä oli rooli tässä, mikä antaa suurempia virheitä kuin tavalliset vertailuarvot.

Viimeisessä testissä F1 2011 osoittautui yhdeksi niistä peleistä, jotka suhtautuvat erittäin kriittisesti ytimien määrään, ja tässä se yllätti jälleen erinomaisella vaikutuksellaan Hyper-Threading-tekniikan suorituskykyyn. Ja jälleen, kuten Crysis 2:ssa, HT:n sisällyttäminen osoittautui erittäin hyväksi kaksiytimisissä prosessoreissa. Katso ero ehdollisen Core i3:n ja Pentiumin välillä – se on yli kaksinkertainen! Näet selvästi, että pelistä puuttuu kaksi ydintä, ja samalla sen koodi on niin hyvin rinnakkaista, että vaikutus on hämmästyttävä. Toisaalta et voi voittaa neljää fyysistä ydintä - Core i5 on huomattavasti nopeampi kuin Core i3. Mutta Core i7, kuten aiemmissa peleissä, ei osoittanut mitään erinomaista Core i5:n taustalla. Syy on sama - peli ei voi käyttää enempää kuin 4 säiettä, ja HT:n yläraja heikentää Core i7:n suorituskykyä Core i5:n tason alapuolelle.

Vanha soturi tarvitsee Hyper-Threadingiä sen enempää kuin siili tarvitsee T-paidan – sen vaikutus ei suinkaan ole yhtä voimakas kuin F1 2011:ssä tai Crysis 2:ssa. Samalla toteamme edelleen, että HT:n käyttöönotto kaksiytimisessä prosessori toi 1 ylimääräisen kehyksen. Tämä ei tietenkään riitä sanomaan, että Core i3 on parempi kuin Pentium. Tämä parannus ei ainakaan selvästi vastaa näiden prosessorien hintaeroa. Ja Core i5:n ja Core i7:n hintaeroa ei kannata edes muistaa, koska prosessori ilman HT-tukea osoittautui jälleen nopeammaksi. Ja huomattavasti nopeammin - 7 prosenttia. Halusimme tai emme, toteamme jälleen tosiasian, että neljä säiettä on tämän pelin maksimi, ja siksi HyperThreading Tämä tapaus ei auta Core i7:ää, mutta häiritsee.

Jos tarkastelit huolellisesti BIOS-asetusten sisältöä, saatat huomata siellä CPU-vaihtoehdon. Hyper Threading teknologiaa. Ja ehkä he ihmettelivät, mitä Hyper Threading on (Super-threading tai hyper-threading, virallinen nimi on Hyper Threading Technology, HTT) ja miksi tätä vaihtoehtoa tarvitaan.

Hyper Threading on verraten uusi teknologia, jonka Intel on kehittänyt Pentium-arkkitehtuuriprosessoreille. Kuten käytäntö on osoittanut, Hyper Threading -tekniikan käyttö on mahdollistanut monissa tapauksissa prosessorin suorituskyvyn lisäämisen noin 20-30%.

Tässä sinun on muistettava, kuinka tietokoneen keskusyksikkö yleensä toimii. Heti kun käynnistät tietokoneen ja käynnistät siinä ohjelman, CPU alkaa lukea sen sisältämiä ohjeita, jotka on kirjoitettu niin sanottuun konekoodiin. Se lukee jokaisen käskyn vuorotellen ja suorittaa ne yksitellen.

Monissa ohjelmissa on kuitenkin useita samanaikaisesti käynnissä olevia ohjelmistoprosesseja. Lisäksi nykyaikaiset käyttöjärjestelmät sallivat käyttäjälle useita käynnissä olevia ohjelmia. Eikä vain salli - itse asiassa tilanne, jossa yksi prosessi on käynnissä käyttöjärjestelmässä, on täysin mahdotonta ajatella nykyään. Siksi vanhemmilla teknologioilla kehitetyillä prosessoreilla oli huono suorituskyky tapauksissa, joissa oli tarpeen käsitellä useita samanaikaisia ​​prosesseja kerralla.

Tämän ongelman ratkaisemiseksi voit tietysti sisällyttää järjestelmään useita prosessoreita kerralla tai prosessoreita, jotka käyttävät useita fyysisiä laskentaytimiä. Mutta tällainen parannus osoittautuu kalliiksi, teknisesti monimutkaiseksi ja ei aina tehokkaaksi käytännön näkökulmasta.

Kehityshistoria

Siksi päätettiin luoda tekniikka, joka mahdollistaisi useiden prosessien käsittelyn yhdessä fyysisessä ytimessä. Samaan aikaan ohjelmien kohdalla asia näyttää ulkoapäin siltä, ​​että järjestelmässä olisi useita prosessoriytimiä kerralla.

Hyper Threading -teknologian tuki ilmestyi ensimmäisen kerran prosessoreihin vuonna 2002. Nämä olivat Pentium 4 -perheen prosessorit ja Xeon-palvelinprosessorit, joiden kellotaajuudet olivat yli 2 GHz. Aluksi teknologian koodinimi oli Jackson, mutta sitten sen nimi muutettiin suurelle yleisölle ymmärrettäväksi Hyper Threadingiksi - mikä voidaan karkeasti kääntää "superthreadingiksi".

Samaan aikaan Intelin mukaan Hyper Threadingiä tukevan prosessorisirun pinta-ala on kasvanut edelliseen malliin, joka ei tue sitä, vain 5 %, samalla kun suorituskyky on kasvanut keskimäärin 20 %.

Huolimatta siitä, että tekniikka kokonaisuudessaan on osoittautunut hyvin, Intel päätti kuitenkin useista syistä poistaa Hyper Threading -tekniikan käytöstä Pentium 4:n korvanneen Core 2 -perheen prosessoreista. Hyper Threading kuitenkin ilmestyi myöhemmin uudelleen Sandy Bridgen, Ivy Bridgen ja Haswellin prosessoriarkkitehtuureissa, jotka on suunniteltu huomattavasti uudelleen.

Tekniikan ydin

Hyper Threadingin ymmärtäminen on tärkeää, koska se on yksi avaintoiminnot Intel-prosessoreissa.

Huolimatta kaikista prosessorien saavutuksista, niillä on yksi merkittävä haittapuoli - ne voivat suorittaa vain yhden käskyn kerrallaan. Oletetaan, että sinulla on samaan aikaan käynnissä sovelluksia, kuten tekstieditori, selain ja Skype. Käyttäjän näkökulmasta tätä ohjelmistoympäristöä voidaan kutsua multitaskingiksi, mutta prosessorin näkökulmasta tämä ei ole kaukana. Prosessoriydin suorittaa silti yhden käskyn tietyn ajan. Tässä tapauksessa prosessorin tehtävään kuuluu prosessorin aikaresurssien jakaminen kesken yksittäisiä sovelluksia. Koska tämä käskyjen peräkkäinen suorittaminen on erittäin nopeaa, et huomaa sitä. Ja sinusta näyttää, ettei viivytystä ole.

Mutta viivettä on edelleen. Viive johtuu tavasta, jolla prosessori toimittaa tietoja kustakin ohjelmasta. Jokaisen tietovirran tulee saapua tiettyyn aikaan, ja prosessori käsittelee ne erikseen. Hyper Threading -teknologia mahdollistaa jokaisen prosessorin ytimen ajoittaa tietojen käsittelyn ja allokoida resursseja samanaikaisesti kahdelle säikeelle.

On huomattava, että nykyaikaisten prosessorien ytimessä on useita niin kutsuttuja suoritusyksiköitä kerralla, joista jokainen on suunniteltu suorittamaan tietty toiminto tiedoille. Samaan aikaan jotkut näistä johtavista laitteista voivat olla käyttämättöminä yhdestä säikeestä peräisin olevien tietojen käsittelyn aikana.

Tämän tilanteen ymmärtämiseksi voidaan vetää analogia kokoonpanopajassa kuljettimella työskentelevien ja erityyppisiä osia käsittelevien työntekijöiden kanssa. Jokainen työntekijä on varustettu tietyllä työkalulla, joka on suunniteltu suorittamaan tehtävä. Jos osat saapuvat kuitenkin väärässä järjestyksessä, tulee viiveitä - koska osa työntekijöistä odottaa vuoroaan aloittaa työ. Hyper Threadingia voidaan verrata lisäkuljettimeen, joka laitettiin liikkeessä siten, että aiemmin joutilaina olleet työntekijät suorittaisivat tehtävänsä muista riippumatta. Kauppa on edelleen yksin, mutta osat käsitellään nopeammin ja tehokkaammin, joten seisokit vähenevät. Siten Hyper Threading mahdollisti sen, että työhön sisällytettiin ne prosessorin executive-laitteet, jotka olivat käyttämättömänä suorittaessaan käskyjä yhdestä säikeestä.

Heti kun käynnistät tietokoneen, jossa on kaksiytiminen prosessori, joka tukee Hyper Threading -tekniikkaa, ja avaat Windowsin Tehtävienhallinnan (Task Manager) Suorituskyky (Suorituskyky) -välilehdellä, löydät siitä neljä kaaviota. Mutta tämä ei tarkoita, että sinulla on itse asiassa 4 prosessoriydintä.

Tämä johtuu siitä, että Windows uskoo, että jokaisessa ytimessä on kaksi loogista prosessoria. Termi "looginen prosessori" kuulostaa hauskalta, mutta se tarkoittaa prosessoria, jota ei fyysisesti ole olemassa. Windows voi lähettää tietovirtoja jokaiselle loogiselle prosessorille, mutta vain yksi ydin tekee työn. Siksi yksi Hyper Threading -tekniikalla varustettu ydin eroaa merkittävästi erillisistä fyysisistä ytimistä.

Hyper Threading -tekniikka vaatii tukea seuraavista laitteistoista ja ohjelmistoista:

  • prosessori
  • emolevyn piirisarja
  • Käyttöjärjestelmä

Tekniikan edut

Mieti nyt seuraavaa kysymystä – kuinka paljon Hyper Threading -tekniikka lisää tietokoneen suorituskykyä? Jokapäiväisissä tehtävissä, kuten Internetissä surffaamisessa ja kirjoittamisessa, tekniikan hyödyt eivät ole niin ilmeisiä. Muista kuitenkin, että nykyiset prosessorit ovat niin tehokkaita, että päivittäiset tehtävät käyttävät harvoin prosessoria täysillä. Lisäksi paljon riippuu siitä, miten se on kirjoitettu ohjelmisto. Sinulla voi olla useita ohjelmia käynnissä kerralla, mutta kuormituskaaviota tarkasteltaessa huomaat, että vain yksi looginen prosessori ydintä kohti on käytössä. Tämä johtuu siitä, että ohjelmisto ei tue prosessien jakamista ytimien välillä.

Monimutkaisemmissa tehtävissä Hyper Threading voi kuitenkin olla hyödyllisempi. Sovellukset, kuten 3D-mallinnusohjelmat, 3D-pelit, musiikin tai videon koodaus-/dekoodausohjelmat ja monet tieteelliset sovellukset, on kirjoitettu hyödyntämään monisäikeistystä. Siksi voit kokea hypersäikeisen tietokoneen suorituskyvyn edut pelatessasi monimutkaisia ​​pelejä, kuuntelemalla musiikkia tai katsoessasi elokuvia. Suorituskyvyn lisäys voi olla jopa 30 %, vaikka voi olla tilanteita, joissa Hyper Threading ei tarjoa etua ollenkaan. Joskus, jos molemmat säikeet lataavat kaikki prosessorin suoritusyksiköt samoilla tehtävillä, suorituskyky saattaa jopa heiketä.

Palatakseni siihen, että BIOS-asetuksissa on vastaava vaihtoehto, jonka avulla voit määrittää Hyper Threading -parametreja, useimmissa tapauksissa on suositeltavaa ottaa tämä ominaisuus käyttöön. Voit kuitenkin aina sammuttaa sen, jos käy ilmi, että tietokone toimii virheellisesti tai sen suorituskyky on jopa odotettua heikompi.

Johtopäätös

Koska suurin suorituskyvyn kasvu Hyper Threadingia käytettäessä on 30%, ei voida sanoa, että tekniikka vastaa prosessoriytimien määrän kaksinkertaistamista. Hyper Threading on kuitenkin hyödyllinen vaihtoehto, etkä sinä tietokoneen omistajana puutu siihen. Sen etu on erityisen havaittavissa esimerkiksi kun muokkaat multimediatiedostoja tai käytät tietokonettasi työasemana ammattiohjelmille, kuten Photoshop tai Maya.

Oli aika, jolloin oli tarpeen arvioida muistin suorituskykyä Hyper-threading-tekniikan yhteydessä. Tulimme siihen tulokseen, että sen vaikutus ei aina ole positiivinen. Kun vapaa-aikaa riitti, haluttiin jatkaa tutkimusta ja pohtia meneillään olevia prosesseja konesyklien ja bittien tarkkuudella oman suunnittelemamme ohjelmiston avulla.

Tutkittu alusta

Kokeiden kohde - ASUS kannettava tietokone N750JK Intel Core i7-4700HQ -prosessorilla. Kellotaajuus on 2,4 GHz, jota tehostaa Intel Turbo Boost -tila 3,4 GHz asti. 16 gigatavua asennettu RAM-muisti DDR3-1600 (PC3-12800), joka toimii kaksikanavaisessa tilassa. Käyttöjärjestelmä - Microsoft Windows 8.1 64 bittiä.

Kuva 1 Tutkitun alustan konfiguraatio.

Tutkittavan alustan prosessori sisältää 4 ydintä, jotka Hyper-Threading-tekniikan ollessa käytössä tarjoavat laitteistotuen 8 säikeelle tai loogiselle prosessorille. Alustan laiteohjelmisto välittää nämä tiedot käyttöjärjestelmälle MADT (Multiple APIC Description Table) ACPI-taulukon kautta. Koska alusta sisältää vain yhden RAM-ohjaimen, ei ole olemassa SRAT-taulukkoa (System Resource Affinity Table), joka ilmoittaisi prosessoriytimien läheisyyden muistiohjaimiin. Ilmeisesti kyseessä oleva kannettava tietokone ei ole NUMA-alusta, vaan käyttöjärjestelmä, pitää sitä yhtenäistämistarkoituksessa NUMA-järjestelmänä, jossa on yksi verkkotunnus, kuten rivi NUMA Nodes = 1 osoittaa. Kokeilujemme kannalta olennainen tosiasia on, että ensimmäisen tason datavälimuistin koko on 32 kilotavua. jokainen neljästä ytimestä. Kaksi loogista prosessoria, jotka jakavat saman ytimen, jakavat L1- ja L2-välimuistit.

Tutkittu toiminta

Tutkimme datalohkon lukunopeuden riippuvuutta sen koosta. Tätä varten valitsemme tuottavimman menetelmän, nimittäin 256-bittisten operandien lukemisen VMOVAPD AVX -käskyllä. Kaavioissa X-akseli näyttää lohkon koon ja Y-akseli lukunopeuden. Pisteen X läheisyydessä, joka vastaa L1-välimuistin kokoa, odotamme näkevän käännekohdan, koska suorituskyvyn pitäisi laskea sen jälkeen, kun käsiteltävä lohko poistuu välimuistista. Testissämme monisäikeistyksen tapauksessa jokainen 16 aloitetusta säikeestä toimii erillisellä osoitealueella. Hyper-Threading-tekniikan ohjaamiseksi sovelluksen sisällä jokainen säie käyttää SetThreadAffinityMask API -toimintoa, joka asettaa maskin, jossa jokainen looginen prosessori vastaa yhtä bittiä. Yksi bitin arvo sallii määritetyn säikeen määritetyn prosessorin käytön, nolla-arvo estää sen. Tutkitun alustan 8:lle loogiselle prosessorille maski 11111111b sallii kaikkien prosessorien käytön (Hyper-Threading käytössä), maski 01010101b mahdollistaa yhden loogisen prosessorin käytön jokaisessa ytimessä (Hyper-Threading pois käytöstä).

Kaavioissa käytetään seuraavia lyhenteitä:

MBPS (megatavua sekunnissa)lohkon lukunopeus megatavuina sekunnissa;

CPI (kellot per ohje)jaksojen määrä ohjetta kohden;

TSC (aikaleimalaskuri)prosessorin syklilaskuri.

Huomautus: TSC-rekisterin kellonopeus ei välttämättä vastaa prosessorin kellonopeutta Turbo Boost -tilassa. Tämä on otettava huomioon tuloksia tulkittaessa.

Kaavioiden oikealla puolella visualisoidaan heksadesimaalivedos käskyistä, jotka muodostavat kussakin ohjelmasäikeessä suoritetun kohdeoperaation syklin rungon tai tämän koodin ensimmäiset 128 tavua.

Kokemus numero 1. Yksi lanka



Kuva 2 Lukeminen yhdessä ketjussa

Suurin nopeus on 213563 megatavua sekunnissa. Käännepiste esiintyy noin 32 kilotavun lohkokoossa.

Kokemus numero 2. 16 säiettä 4 prosessorissa, Hyper-Threading pois käytöstä



Kuva 3 Lukeminen kuudessatoista ketjussa. Käytettyjen loogisten prosessorien määrä on neljä

Hyper-säie on poistettu käytöstä. Suurin nopeus on 797598 megatavua sekunnissa. Käännepiste esiintyy noin 32 kilotavun lohkokoossa. Kuten odotettiin, yhden säikeen lukemiseen verrattuna nopeus kasvoi noin 4-kertaiseksi, mitä tulee toimivien ytimien lukumäärään.

Kokemus numero 3. 16 säiettä 8 prosessorissa, Hyper-Threading käytössä



Kuva 4 Lukeminen kuudessatoista ketjussa. Loogisia prosessoreita käytetään kahdeksan

Hyper-säie käytössä. Enimmäisnopeus 800722 megatavua sekunnissa Hyper-Threadingin sisällyttämisen seurauksena melkein ei kasvanut. Suuri miinus on, että käännekohta esiintyy noin 16 kilotavun lohkokoossa. Hyper-Threadingin käyttöönotto nosti hieman maksiminopeutta, mutta nopeuden pudotus tapahtuu nyt puolessa lohkokoosta - noin 16 kilotavua, joten keskinopeus on laskenut merkittävästi. Tämä ei ole yllättävää, jokaisella ytimellä on oma L1-välimuisti, kun taas saman ytimen loogiset prosessorit jakavat sen.

johtopäätöksiä

Tutkittu toiminta skaalautuu varsin hyvin moniytimisellä prosessorilla. Syynä on se, että jokaisessa ytimessä on oma ensimmäisen ja toisen tason välimuisti, kohdelohkon koko on verrattavissa välimuistin kokoon ja jokainen säikeistä toimii omalla osoitealueellaan. Akateemisiin tarkoituksiin loimme tällaiset olosuhteet synteettisessä testissä ymmärtäen, että todelliset sovellukset ovat yleensä kaukana ihanteellisesta optimoinnista. Mutta Hyper-Threadingin sisällyttämisellä, jopa näissä olosuhteissa, oli kielteinen vaikutus, huippunopeuden lievällä kasvulla, lohkojen, joiden koko on välillä 16-32, käsittelynopeudessa on huomattava menetys. kilotavua.

Hei tietokoneiden ja laitteistojen ystävät.

Haluatko tietokoneellesi tehokkaan prosessorin, joka pystyy suorittamaan useita tehtäviä samanaikaisesti salamannopeasti? Kuka kieltäytyisi, eikö niin? Sitten ehdotan, että tutustut hyperkierteitystekniikkaan: mitä se on ja miten se toimii, opit tästä artikkelista.


Käsitteen selitys

Hyper-threading on käännetty englannista "hyper-tarkkuus". Tekniikka sai suuren nimen syystä. Loppujen lopuksi käyttöjärjestelmä vie yhden sillä varustetun fyysisen prosessorin kahta loogista ydintä varten. Näin ollen enemmän komentoja käsitellään, eikä suorituskyky heikkene.

Kuinka tämä on mahdollista? Johtuen siitä, että prosessori:

  • Tallentaa tietoja useista käynnissä olevista säikeistä kerralla;
  • Jokaista loogista prosessoria kohden on yksi joukko rekistereitä - nopean sisäisen muistin lohkot sekä yksi keskeytyslohko. Jälkimmäinen vastaa eri laitteilta tulevien pyyntöjen peräkkäisestä suorittamisesta.

Miltä se näyttää käytännössä? Oletetaan nyt, että fyysinen prosessori käsittelee ensimmäisen loogisen prosessorin komennot. Mutta jälkimmäisessä tapahtui jonkinlainen vika, ja esimerkiksi hänen on odotettava tietoja muistista. Fyysinen ei tuhlaa aikaa ja siirtyy välittömästi toiseen loogiseen prosessoriin.

Tietoja suorituskyvyn parantamisesta

Fyysisen prosessorin tehokkuus on yleensä enintään 70%. Miksi? Usein joitain lohkoja ei yksinkertaisesti tarvita tietyn tehtävän suorittamiseen. Esimerkiksi kun CPU suorittaa triviaaleja laskentatoimia, käskylohko ja laajennus SIMD eivät ole mukana. Haaran ennustemoduulissa tai välimuistia käytettäessä tapahtuu vika.

Tällaisissa tilanteissa Hyper-threading täyttää "aukot" muilla tehtävillä. Siten tekniikan tehokkuus piilee siinä, että hyödyllinen työ ei ole tyhjäkäyntiä ja se annetaan joutokäyttöisille laitteille.

Ulkonäkö ja toteutus

Voimme olettaa, että Hyper-threading on jo juhlinut 15-vuotisjuhliaan. Loppujen lopuksi se kehitettiin vuonna 2002 julkaistun super-threading-tekniikan pohjalta ja aloitti toimintansa ensin Xeon-tuotteissa, sitten samana vuonna se integroitiin Pentium 4:ään. Näiden teknologioiden tekijänoikeudet kuuluvat Intelille.

HT on toteutettu prosessoreissa, jotka toimivat NetBurst-mikroarkkitehtuurilla, jolle on ominaista korkeat kellotaajuudet. Teknologinen tuki on toteutettu Core vPro-, M- ja Xeon-perheiden malleissa. Core 2 ("Duo", "Quad") -sarjassa sitä ei kuitenkaan ole integroitu. Toimintaperiaatteeltaan samanlaista teknologiaa on toteutettu Atom- ja Itanium-prosesseissa.

Miten se otetaan käyttöön? Sinulla on oltava paitsi yksi yllä olevista prosessoreista, myös käyttöjärjestelmä, joka tukee tekniikkaa, ja BIOS, jolla on mahdollisuus kytkeä HT päälle ja pois. Jos ei, päivitä BIOS.

Hyperthreadingin hyvät ja huonot puolet

Voit jo vetää johtopäätöksen joistakin tekniikan eduista yllä olevien tietojen perusteella. Lisään niihin vielä muutaman sanan:

  • Useiden ohjelmien vakaa toiminta rinnakkain;
  • Lyhentynyt vasteaika Internetissä surffattaessa tai sovelluksia käytettäessä.

Kuten ymmärrät, se ei ollut ilman kärpäsiä. Suorituskyky ei ehkä parane seuraavista syistä:

  • Välimuisti ei riitä. Esimerkiksi 4-ytimisissä i7-prosessoreissa välimuisti on 8 Mt, mutta loogisia ydintä on sama määrä. Saamme vain 1 Mt per ydin, mikä ei riitä useimpien ohjelmien suorittamiseen laskentatehtäviin. Tämän vuoksi suorituskyky ei vain pysy paikallaan, vaan jopa laskee.

  • Tietojen riippuvuus. Oletetaan, että ensimmäinen säie vaatii välittömästi tietoja toiselta, mutta se ei ole vielä valmis tai jonottaa toista säiettä. On myös mahdollista, että syklinen data tarvitsee tiettyjä lohkoja suorittaakseen tehtävän nopeasti, mutta ne ovat jo kiireisiä muussa työssä.
  • Ytimen ylikuormitus. Ydin saattaa olla jo ylikuormitettu, mutta tästä huolimatta ennustemoduuli lähettää edelleen dataa sille, minkä seurauksena tietokone alkaa hidastua.

Missä hypersäikeistystä tarvitaan?

Tekniikka on hyödyllinen käytettäessä resurssiintensiivisiä ohjelmia: ääni-, video- ja valokuvaeditorit, pelit, arkistointilaitteet. Näitä ovat Photoshop, Maya, 3D's Max, Corel Draw, WinRar jne.

On tärkeää, että ohjelmisto on optimoitu Hyper-threadingille. Muuten saattaa ilmetä viivästyksiä. Tosiasia on, että ohjelmat pitävät loogisia ytimiä fyysisinä, joten ne voivat lähettää eri tehtäviä samalle lohkolle.

Odotan innolla näkemistäsi blogissani.

Käyttäjät, jotka ovat ainakin kerran määrittäneet BIOSia, ovat luultavasti jo huomanneet, että siellä on Intel Hyper Threading -parametri, joka on monille käsittämätön. Monet eivät tiedä mitä tämä tekniikka on ja mihin tarkoitukseen sitä käytetään. Yritetään selvittää, mitä Hyper Threading on ja kuinka voit ottaa tämän tuen käyttöön. Yritämme myös selvittää, mitä etuja se antaa tietokoneelle. tämä asetus. Periaatteessa tässä ei ole mitään vaikeaa ymmärtää.

Intel Hyper Threading: mikä se on?
Jos et mene syvälle tietokoneterminologian viidakkoon, vaan yksinkertaisesti sanottuna, tämä tekniikka kehitettiin lisäämään keskusprosessorin samanaikaisesti käsittelemien komentojen virtaa. Nykyaikaiset prosessorisirut käyttävät yleensä vain 70% käytettävissä olevista laskentaominaisuuksista. Loput jäävät niin sanotusti varaukseen. Mitä tulee tietovirran käsittelyyn, useimmissa tapauksissa käytetään vain yhtä säiettä huolimatta siitä, että järjestelmä käyttää moniytimistä prosessoria.

Työn perusperiaatteet
Keskusprosessorin ominaisuuksien lisäämiseksi se kehitettiin erityistä tekniikkaa hyperketjuttaminen. Tämän tekniikan avulla on helppo jakaa yksi komentovirta kahdeksi. On myös mahdollista lisätä toinen stream olemassa olevaan streamiin. Vain tällainen virta on virtuaalinen eikä toimi fyysisellä tasolla. Tämän lähestymistavan avulla voit lisätä merkittävästi prosessorin suorituskykyä. Vastaavasti koko järjestelmä alkaa toimia nopeammin. Suorittimen suorituskyvyn kasvu voi vaihdella melko paljon. Tästä keskustellaan erikseen. Hyper Threading -tekniikan kehittäjät kuitenkin itse väittävät, että se ei ole täysimittainen ydin. Joissakin tapauksissa tämän tekniikan käyttö on täysin perusteltua. Jos tiedät Hyper Threading -prosessorien olemuksen, tulos ei kestä kauan.

Historiallinen viittaus
Sukellaanpa hieman tämän kehityksen historiaan. Hyper Threading -tuki ilmestyi aluksi vain Intel Pentium 4 -prosessoreissa, mutta myöhemmin tämän tekniikan käyttöönottoa jatkettiin Intel Core iX -sarjassa (X tarkoittaa tässä prosessorisarjaa). On huomattava, että jostain syystä se puuttuu Core 2 -prosessorisirujen riviltä. Totta, tuottavuuden kasvu oli silloin melko heikkoa: jossain 15-20 prosentin tasolla. Tämä osoitti, että prosessorissa ei ollut tarvittavaa prosessointitehoa ja luotu tekniikka oli käytännössä aikaansa edellä. Nykyään Hyper Threading -teknologian tuki on jo saatavilla lähes kaikissa nykyaikaisissa siruissa. Keskusprosessorin tehon lisäämiseksi prosessi itse käyttää vain 5 % kiteen pinnasta jättäen tilaa käskyjen ja tietojen käsittelylle.

Kysymys konflikteista ja suorituskyvystä
Kaikki tämä on varmasti hyvä, mutta joissakin tapauksissa tietojen käsittelyssä saattaa esiintyä työn hidastamista. Tämä johtuu enimmäkseen ns. haaran ennustusmoduulista ja riittämättömästä välimuistin koosta, kun sitä ladataan jatkuvasti uudelleen. Jos puhumme päämoduulista, niin tässä tapauksessa tilanne on sellainen, että joissain tapauksissa ensimmäinen säie saattaa vaatia tietoja toisesta, jota ei ehkä käsitellä sillä hetkellä tai jotka ovat käsittelyjonossa. Yhtä yleisiä ovat myös tilanteet, joissa suorittimen ytimellä on erittäin vakava kuorma, ja päämoduuli jatkaa siitä huolimatta tietojen lähettämistä sille. Jotkut ohjelmat ja sovellukset, kuten resurssiintensiiviset online-pelit, voivat hidastua vakavasti vain siksi, että niitä ei ole optimoitu Hyper Threading -tekniikan käyttöä varten. Mitä tapahtuu peleille? Käyttäjän tietokonejärjestelmä puolestaan ​​yrittää optimoida tietovirrat sovelluksesta palvelimelle. Ongelmana on, että peli ei osaa jakaa tietovirtoja itsenäisesti ja heittää kaiken yhteen kasaan. Yleisesti ottaen sitä ei ehkä yksinkertaisesti ole suunniteltu tähän. Joskus kaksiytimisissä prosessoreissa suorituskyvyn lisäys on huomattavasti suurempi kuin 4-ytimisissä prosessoreissa. Heillä ei vain ole prosessointitehoa.

Kuinka ottaa Hyper Threading käyttöön BIOSissa?
Olemme jo selvittäneet hieman siitä, mitä Hyper Threading -tekniikka on, ja tutustunut sen kehityshistoriaan. Olemme tulleet lähelle ymmärtämistä, mitä Hyper Threading -tekniikka on. Kuinka aktivoida tämä tekniikka käytettäväksi prosessorissa? Täällä kaikki tehdään yksinkertaisesti. Sinun on käytettävä BIOS-hallintaalijärjestelmää. Osajärjestelmään syötetään Del, F1, F2, F3, F8, F12, F2+Del jne. näppäimillä. Jos käytät Sony Vaio -kannettavaa, niillä on erityinen tulo, kun käytetään omistettua ASSIST-näppäintä. Jos käyttämäsi prosessori tukee Hyper Threading -tekniikkaa, BIOS-asetuksissa pitäisi olla erityinen asetusrivi. Useimmissa tapauksissa se näyttää Hyper Threading -tekniikalta, ja joskus se näyttää Functionilta. Riippuen osajärjestelmän kehittäjästä ja BIOS-versiot, tämän parametrin asetus voidaan sisällyttää joko päävalikkoon tai lisäasetuksiin. Ota tämä tekniikka käyttöön avaamalla asetusvalikko ja asettamalla arvoksi Käytössä. Tämän jälkeen sinun on tallennettava tehdyt muutokset ja käynnistettävä järjestelmä uudelleen.

Miksi Hyper Threading on hyödyllinen?
Lopuksi haluaisin puhua Hyper Threading -tekniikan käytön eduista. Mitä varten tämä kaikki on? Miksi on tarpeen lisätä prosessorin tehoa käsiteltäessä tietoja? Resurssiintensiivisten sovellusten ja ohjelmien parissa työskentelevien käyttäjien ei tarvitse selittää mitään. Monet varmaan tietävät, että graafiset, matemaattiset, suunnitteluohjelmistopaketit vaativat paljon järjestelmäresursseja työssään. Tästä johtuen koko järjestelmä kuormitetaan niin paljon, että se alkaa hidastua hirveästi. Tämän estämiseksi on suositeltavaa ottaa käyttöön Hyper Threading -tuki.