Bahay / Internet / ht teknolohiya. Hyper threading ano ito at bakit ito? Mga CPU na may Suporta sa Hyper Threading

ht teknolohiya. Hyper threading ano ito at bakit ito? Mga CPU na may Suporta sa Hyper Threading

15.03.2013

Lumitaw ang teknolohiya ng Hyper-Threading Mga processor ng Intel, nakakatakot sabihin, mahigit 10 taon na ang nakalipas. At sa sa sandaling ito ito ay isang mahalagang elemento ng mga Core processor. Gayunpaman, ang tanong ng pangangailangan para sa HT sa mga laro ay hindi pa rin lubos na nauunawaan. Nagpasya kaming magsagawa ng pagsubok para makita kung kailangan ng mga manlalaro ng Core i7, o kung mas mahusay na makayanan ang isang Core i5. At alamin din kung paano mas mahusay ang Core i3 kaysa sa Pentium.


Ang Hyper-Threading Technology, na binuo ng Intel at eksklusibong ginagamit sa mga processor ng kumpanya, simula sa hindi malilimutang Pentium 4, ngayon ay isang bagay na ipinagkaloob. Ito ay nilagyan ng isang makabuluhang bilang ng mga processor ng kasalukuyan at nakaraang mga henerasyon. Gagamitin din ito sa malapit na hinaharap.

At dapat aminin na ang teknolohiya ng Hyper-Threading ay kapaki-pakinabang at may positibong epekto sa pagganap, kung hindi, hindi ito gagamitin ng Intel upang iposisyon ang mga processor nito sa loob ng linya. At hindi bilang isang maliit na elemento, ngunit isa sa pinakamahalaga, kung hindi ang pinakamahalaga. Upang gawing malinaw kung ano ang pinag-uusapan natin, naghanda kami ng isang talahanayan na nagpapadali sa pagsusuri sa prinsipyo ng segmentasyon ng mga processor ng Intel.


Tulad ng nakikita mo, napakakaunting mga pagkakaiba sa pagitan ng Pentium at Core i3, pati na rin sa pagitan ng Core i5 at Core i7. Sa katunayan, ang mga modelo ng i3 at i7 ay naiiba sa Pentium at i5 lamang sa laki ng ikatlong antas ng cache sa bawat core (hindi binibilang ang dalas ng orasan, siyempre). Ang unang pares ay 1.5 megabytes, at ang pangalawa ay 2 megabytes. Ang pagkakaiba na ito ay hindi maaaring makaapekto sa pagganap ng mga processor, dahil ang pagkakaiba sa laki ng cache ay napakaliit. Iyon ang dahilan kung bakit nakatanggap ang Core i3 at Core i7 ng suporta para sa Hyper-Threading na teknolohiya, na siyang pangunahing elemento na nagpapahintulot sa mga processor na ito na magkaroon ng isang kalamangan sa pagganap kaysa sa Pentium at Core i5, ayon sa pagkakabanggit.

Bilang resulta, ang bahagyang mas malaking cache at suporta para sa Hyper-Threading ay magbibigay-daan sa iyong magtakda ng mas mataas na presyo para sa mga processor. Halimbawa, ang mga processor ng linya ng Pentium (mga 10 thousand tenge) ay humigit-kumulang dalawang beses na mas mura kaysa sa Core i3 (mga 20 thousand tenge), at sa kabila ng katotohanan na pisikal, sa antas ng hardware, sila ay ganap na pareho, at, nang naaayon. , ay may parehong halaga. Ang pagkakaiba sa presyo sa pagitan ng Core i5 (mga 30 thousand tenge) at Core i7 (tungkol sa 50 thousand tenge) ay napakalaki rin, kahit na mas mababa sa dalawang beses sa mas batang mga modelo.


Gaano katuwiran ang gayong pagtaas ng presyo? Anong tunay na pakinabang ang ibinibigay ng Hyper-Threading? Ang sagot ay matagal nang alam: ang pagtaas ay maaaring magkakaiba - ang lahat ay nakasalalay sa aplikasyon at sa pag-optimize nito. Nagpasya kaming suriin kung ano ang ginagawa ng HT sa mga laro, bilang isa sa mga pinaka-hinihingi na "sambahayan" na mga aplikasyon. Bilang karagdagan, ang pagsubok na ito ay magiging isang mahusay na karagdagan sa aming nakaraang materyal sa epekto ng bilang ng mga core ng processor sa pagganap ng paglalaro.

Bago tumungo sa mga pagsusulit, tandaan natin (o mabuti, o alamin) kung ano ang Hyper-Threading Technology. Tulad ng inilagay mismo ng Intel, nagpapakilala teknolohiyang ito maraming taon na ang nakalilipas, walang partikular na kumplikado tungkol dito. Sa katunayan, ang kailangan lang upang ipakilala ang HT sa pisikal na antas ay magdagdag ng hindi isang hanay ng mga rehistro at isang interrupt na controller, ngunit dalawa, sa isang pisikal na core. Sa mga processor ng Pentium 4, ang mga ito karagdagang elemento nadagdagan ang bilang ng mga transistor ng limang porsyento lamang. Sa mga core ng Ivy Bridge ngayon (pati na rin sa Sandy Bridge at sa hinaharap na Haswell), ang mga karagdagang elemento para sa kahit na apat na core ay hindi nagpapataas ng die kahit na 1 porsyento.


Ang mga karagdagang rehistro at isang interrupt na controller, kasama ng suporta sa software, ay nagbibigay-daan sa operating system na hindi makita ang isang pisikal na core, ngunit dalawang lohikal. Kasabay nito, ang pagproseso ng data mula sa dalawang stream na ipinadala ng system ay nagpapatuloy pa rin sa parehong core, ngunit may ilang mga tampok. Ang buong processor ay nananatili pa rin sa pagtatapon ng isang thread, ngunit sa sandaling ang ilang mga bloke ng CPU ay napalaya at idle, agad silang inilalagay sa pagtatapon ng pangalawang thread. Salamat sa ito, posible na gamitin ang lahat ng mga yunit ng processor nang sabay-sabay, at sa gayon ay mapataas ang kahusayan nito. Tulad ng sinabi mismo ng Intel, ang performance gain sa ilalim ng ideal na mga kondisyon ay maaaring umabot ng hanggang 30 porsyento. Totoo, ang mga figure na ito ay totoo lamang para sa Pentium 4 na may napakahabang pipeline, ang mga modernong processor ay mas nakikinabang mula sa HT.

Ngunit ang mga perpektong kondisyon para sa Hyper-Threading ay hindi palaging nangyayari. At ang pinakamahalaga, ang pinakamasamang resulta ng trabaho ng HT ay hindi ang kakulangan ng performance gain, ngunit ang pagbaba nito. Iyon ay, sa ilalim ng ilang mga kundisyon, ang pagganap ng isang processor na may HT ay mahuhulog na may kaugnayan sa isang processor na walang HT dahil sa ang katunayan na ang overhead ng thread splitting at queuing ay makabuluhang lalampas sa pakinabang mula sa pagkalkula ng mga parallel na mga thread, na posible sa partikular na ito. kaso. At ang mga ganitong kaso ay mas karaniwan kaysa sa gusto ng Intel. Bukod dito, hindi napabuti ng maraming taon ng paggamit ng Hyper-Threading ang sitwasyon. Ito ay totoo lalo na para sa mga laro na napakakumplikado at hindi nangangahulugang hindi kinaugalian sa mga tuntunin ng pagkalkula ng data, mga aplikasyon.

Upang malaman ang epekto ng Hyper-Threading sa performance ng paglalaro, muli naming ginamit ang aming mahabang pagtitiis na Core i7-2700K test processor, at nag-simulate ng apat na processor nang sabay-sabay sa pamamagitan ng hindi pagpapagana ng mga core at pag-enable / hindi pagpapagana ng HT. Karaniwan, maaari silang tawaging Pentium (2 core, HT off), Core i3 (2 core, HT on), Core i5 (4 cores, HT off), at Core i7 (4 cores, HT on). Bakit may kondisyon? Una sa lahat, dahil ayon sa ilang mga katangian ay hindi sila tumutugma sa mga tunay na produkto. Sa partikular, ang hindi pagpapagana ng mga core ay hindi humahantong sa isang kaukulang pagbawas sa dami ng ikatlong antas ng cache - ang dami nito para sa lahat ay 8 megabytes. At bukod pa, ang lahat ng aming "kondisyon" na mga processor ay nagpapatakbo sa parehong dalas ng 3.5 GHz, na hindi pa nakakamit ng lahat ng mga processor ng Intel.


Gayunpaman, ito ay para sa mas mahusay, dahil salamat sa hindi nababago ng lahat mahalagang mga parameter malalaman natin ang tunay na epekto ng Hyper-Threading sa pagganap ng paglalaro nang walang anumang reserbasyon. At ang porsyento ng pagkakaiba sa pagganap sa pagitan ng aming "kondisyon" na Pentium at Core i3 ay magiging malapit sa pagkakaiba sa pagitan ng mga tunay na processor, sa kondisyon na ang mga frequency ay pantay. Hindi rin dapat nakakahiya na gumagamit kami ng Sandy Bridge processor, dahil ang aming mga pagsubok sa kahusayan, na mababasa mo sa artikulong "Bare performance - Exploring the efficiency of ALUs at FPUs", ay nagpakita na ang epekto ng Hyper-Threading sa ang pinakabagong mga henerasyon ng mga processor na Core ay nananatiling hindi nagbabago. Malamang na may kaugnayan ibinigay na materyal ay magagamit din para sa paparating na mga processor ng Haswell.

Well, tila ang lahat ng mga katanungan tungkol sa pamamaraan ng pagsubok, pati na rin ang mga tampok ng paggana ng Hyper-Threading Technology, ay napag-usapan, at samakatuwid ay oras na upang lumipat sa pinaka-kagiliw-giliw na bagay - mga pagsubok.

Bumalik sa pagsubok, kung saan pinag-aralan namin ang epekto ng bilang ng mga core ng processor sa pagganap ng paglalaro, nalaman namin na ang 3DMark 11 ay medyo kalmado tungkol sa pagganap ng CPU, gumagana nang perpekto kahit sa isang core. Ang Hyper-Threading ay may parehong "malakas" na impluwensya. Tulad ng nakikita mo, ang pagsubok ay ganap na hindi napapansin ang mga pagkakaiba sa pagitan ng Pentium at Core i7, hindi sa pagbanggit ng mga intermediate na modelo.

Metro 2033

Ngunit malinaw na napansin ng Metro 2033 ang paglitaw ng Hyper-Threading. At nag-react ng negatibo! Oo, tama iyan: ang pagpapagana ng HT sa larong ito ay may negatibong epekto sa pagganap. Ang isang maliit na epekto, siyempre - 0.5 frame bawat segundo na may apat na pisikal na core, at 0.7 na may dalawa. Ngunit ang katotohanang ito ay nagbibigay ng lahat ng dahilan upang sabihin na sa Metro 2033 ang Pentium ay mas mabilis kaysa sa Core i3, at ang Core i5 ay mas mahusay kaysa sa Core i7. Narito ito ay kumpirmasyon ng katotohanan na ang Hyper-Threading ay hindi nagpapakita ng pagiging epektibo nito hindi palaging at hindi sa lahat ng dako.

Crysis 2

Ang larong ito ay nagpakita ng napaka-kagiliw-giliw na mga resulta. Una sa lahat, tandaan namin na ang impluwensya ng Hyper-Threading ay malinaw na nakikita sa mga dual-core processors - ang Core i3 ay nalampasan ang Pentium ng halos 9 na porsyento, na medyo marami para sa larong ito. Tagumpay para sa HT at Intel? Hindi talaga, dahil ang Core i7 ay hindi nagpakita ng anumang pagpapabuti sa kapansin-pansing mas murang Core i5. Ngunit mayroong isang makatwirang paliwanag para dito - hindi alam ng Crysis 2 kung paano gumamit ng higit sa apat na stream ng data. Dahil dito, nakikita namin ang isang mahusay na pagtaas sa isang dual-core na may HT - pagkatapos ng lahat, apat na mga thread, kahit na mga lohikal, ay mas mahusay kaysa sa dalawa. Sa kabilang banda, walang kahit saan na maglagay ng karagdagang mga thread ng Core i7, sapat na ang apat na pisikal na core doon. Kaya, ayon sa mga resulta ng pagsubok na ito, mapapansin natin ang positibong impluwensya ng HT sa Core i3, na kapansin-pansing mas mahusay kaysa sa Pentium dito. Ngunit kabilang sa quad-core Core i5 muli ay mukhang isang mas makatwirang solusyon.

Larangan ng digmaan 3

Narito ang mga resulta ay lubhang kakaiba. Kung sa pagsubok para sa bilang ng mga core, ang larangan ng digmaan ay isang sample ng isang mikroskopiko ngunit linear na pagtaas, kung gayon ang pagsasama ng Hyper-Threading ay nagdala ng kaguluhan sa mga resulta. Sa katunayan, maaari nating sabihin na ang Core i3, kasama ang dalawang core at HT nito, ay naging pinakamaganda sa lahat, nangunguna pa sa Core i5 at Core i7. Kakaiba, siyempre, ngunit sa parehong oras, ang Core i5 at Core i7 ay muli sa parehong antas. Kung ano ang nagpapaliwanag nito ay hindi malinaw. Malamang, ang pamamaraan ng pagsubok sa larong ito ay gumanap ng isang papel dito, na nagbibigay ng mas malalaking error kaysa sa mga karaniwang benchmark.

Sa huling pagsubok, ipinakita ng F1 2011 ang sarili bilang isa sa mga laro na napakakritikal sa bilang ng mga core, at sa isang ito ay nagulat muli ito sa mahusay na epekto sa pagganap ng teknolohiya ng Hyper-Threading. At muli, tulad ng sa Crysis 2, ang pagsasama ng HT ay napatunayang napakahusay sa mga dual-core na processor. Tingnan ang pagkakaiba sa pagitan ng aming conditional Core i3 at Pentium - ito ay higit pa sa doble! Malinaw mong makikita na ang laro ay kulang ng dalawang core, at sa parehong oras ang code nito ay napakahusay na parallelized na ang epekto ay kamangha-mangha. Sa kabilang banda, hindi mo matatalo ang apat na pisikal na core - ang Core i5 ay kapansin-pansing mas mabilis kaysa sa Core i3. Ngunit ang Core i7, muli, tulad ng sa mga nakaraang laro, ay hindi nagpakita ng anumang namumukod-tangi laban sa background ng Core i5. Ang dahilan ay pareho - ang laro ay hindi maaaring gumamit ng higit sa 4 na mga thread, at ang overhead ng HT ay binabawasan ang pagganap ng Core i7 sa ibaba ng antas ng Core i5.

Ang isang matandang mandirigma ay nangangailangan ng Hyper-Threading nang hindi hihigit sa isang hedgehog na nangangailangan ng isang T-shirt - ang impluwensya nito ay hindi gaanong binibigkas tulad ng sa F1 2011 o Crysis 2. Kasabay nito, napapansin pa rin namin na ang pagpapagana ng HT sa isang dual-core nagdala ang processor ng 1 dagdag na frame. Siyempre, hindi ito sapat upang sabihin na ang Core i3 ay mas mahusay kaysa sa Pentium. Hindi bababa sa, ang pagpapahusay na ito ay malinaw na hindi tumutugma sa pagkakaiba sa presyo ng mga processor na ito. At ang pagkakaiba sa presyo sa pagitan ng Core i5 at Core i7 ay hindi rin nagkakahalaga ng pag-alala, dahil ang processor na walang suporta sa HT ay naging mas mabilis muli. At kapansin-pansing mas mabilis - sa pamamagitan ng 7 porsyento. Gustuhin man o hindi, muli naming sinasabi ang katotohanan na apat na mga thread ang pinakamataas para sa larong ito, at samakatuwid ay ang HyperThreading sa kasong ito ay hindi nakakatulong sa Core i7, ngunit nakakasagabal.

Kung maingat mong tiningnan ang mga nilalaman ng BIOS Setup, marahil ay napansin mo ang opsyon na CPU Hyper Threading Technology doon. At marahil ay nagtaka sila kung ano ang Hyper Threading (Super-threading o hyper-threading, ang opisyal na pangalan ay Hyper Threading Technology, HTT), at kung bakit kailangan ang opsyong ito.

Hyper Threading ay comparatively bagong teknolohiya, na binuo ng Intel para sa mga processor ng arkitektura ng Pentium. Tulad ng ipinakita ng kasanayan, ang paggamit ng teknolohiya ng Hyper Threading ay naging posible sa maraming mga kaso upang mapataas ang pagganap ng CPU ng humigit-kumulang 20-30%.

Dito kailangan mong tandaan kung paano gumagana ang central processing unit ng isang computer. Sa sandaling i-on mo ang computer at magpatakbo ng isang programa dito, magsisimulang basahin ng CPU ang mga tagubiling nakapaloob dito, na nakasulat sa tinatawag na machine code. Binabasa nito ang bawat tagubilin at isa-isa itong isinasagawa.

Gayunpaman, maraming mga programa ang may ilang sabay-sabay na pagpapatakbo ng mga proseso ng software. Bilang karagdagan, pinapayagan ng mga modernong operating system ang gumagamit na magkaroon ng ilan nagpapatakbo ng mga programa. At hindi lamang payagan - sa katunayan, ang sitwasyon kapag ang isang solong proseso ay tumatakbo sa operating system ay ganap na hindi maiisip ngayon. Samakatuwid, ang mga processor na binuo gamit ang mga mas lumang teknolohiya ay may mahinang pagganap sa mga kaso kung saan kinakailangan upang iproseso ang ilang sabay-sabay na proseso nang sabay-sabay.

Siyempre, upang malutas ang problemang ito, maaari mong isama ang ilang mga processor sa system nang sabay-sabay, o mga processor na gumagamit ng ilang mga pisikal na computing core. Ngunit ang gayong pagpapabuti ay lumalabas na mahal, kumplikado sa teknikal at hindi palaging epektibo mula sa praktikal na pananaw.

Kasaysayan ng pag-unlad

Samakatuwid, napagpasyahan na lumikha ng isang teknolohiya na magpapahintulot sa pagproseso ng ilang mga proseso sa isang pisikal na core. Kasabay nito, para sa mga programa, ang bagay ay makikita sa panlabas na parang mayroong ilang mga core ng processor sa system nang sabay-sabay.

Ang suporta para sa teknolohiya ng Hyper Threading ay unang lumitaw sa mga processor noong 2002. Ito ay mga processor ng pamilyang Pentium 4 at mga processor ng Xeon server na may bilis ng orasan sa itaas ng 2 GHz. Sa una, ang teknolohiya ay pinangalanang Jackson, ngunit ang pangalan nito ay binago sa Hyper Threading, na mas nauunawaan ng pangkalahatang publiko - na maaaring isalin bilang "superthreading".

Kasabay nito, ayon sa Intel, ang ibabaw ng isang processor chip na sumusuporta sa Hyper Threading ay tumaas kumpara sa nakaraang modelo na hindi sumusuporta dito, sa pamamagitan lamang ng 5%, habang ang pagtaas ng pagganap sa pamamagitan ng isang average na 20%.

Sa kabila ng katotohanan na ang teknolohiya sa kabuuan ay napatunayang mabuti ang sarili nito, gayunpaman, sa maraming kadahilanan, nagpasya ang Intel na huwag paganahin ang teknolohiya ng Hyper Threading sa mga processor ng pamilyang Core 2 na pumalit sa Pentium 4. Gayunpaman, muling lumitaw ang Hyper Threading sa kalaunan sa mga arkitektura ng processor ng Sandy Bridge, Ivy Bridge at Haswell, na muling idinisenyo sa mga ito.

Ang kakanyahan ng teknolohiya

Ang pag-unawa sa Hyper Threading ay mahalaga dahil isa ito sa mga pangunahing pag-andar sa mga processor ng Intel.

Sa kabila ng lahat ng mga tagumpay na nakamit ng mga processor, mayroon silang isang makabuluhang disbentaha - maaari lamang silang magsagawa ng isang pagtuturo sa isang pagkakataon. Sabihin nating mayroon kang mga application na tumatakbo sa parehong oras, tulad ng text editor, browser at Skype. Mula sa pananaw ng gumagamit, ang kapaligiran ng software na ito ay maaaring tawaging multitasking, gayunpaman, mula sa punto ng view ng processor, ito ay malayo sa pagiging kaso. Ang processor core ay magsasagawa pa rin ng isang pagtuturo para sa isang tiyak na tagal ng panahon. Sa kasong ito, ang gawain ng processor ay kasama ang pamamahagi ng mga mapagkukunan ng oras ng processor sa pagitan mga indibidwal na aplikasyon. Dahil ang sunud-sunod na pagpapatupad ng mga tagubilin ay napakabilis, hindi mo ito napapansin. At tila sa iyo ay walang pagkaantala.

Pero may delay pa rin. Lumilitaw ang pagkaantala dahil sa paraan na binibigyan ng data ang processor ng bawat isa sa mga programa. Ang bawat stream ng data ay dapat dumating sa isang tiyak na oras at isa-isang iproseso ng processor. Ang teknolohiya ng Hyper Threading ay ginagawang posible para sa bawat core ng processor na mag-iskedyul ng pagpoproseso ng data at maglaan ng mga mapagkukunan nang sabay-sabay para sa dalawang thread.

Dapat pansinin na sa core ng mga modernong processor mayroong ilang mga tinatawag na mga yunit ng pagpapatupad nang sabay-sabay, ang bawat isa ay idinisenyo upang magsagawa ng isang tiyak na operasyon sa data. Kasabay nito, maaaring idle ang ilan sa mga executive device na ito sa panahon ng pagproseso ng data mula sa isang thread.

Upang maunawaan ang sitwasyong ito, maaari tayong gumuhit ng pagkakatulad sa mga manggagawang nagtatrabaho sa assembly shop sa conveyor at nagpoproseso ng iba't ibang uri ng mga bahagi. Ang bawat manggagawa ay nilagyan ng isang partikular na tool na idinisenyo upang magsagawa ng isang gawain. Gayunpaman, kung ang mga bahagi ay dumating sa maling pagkakasunud-sunod, pagkatapos ay may mga pagkaantala - dahil ang ilan sa mga manggagawa ay naghihintay para sa kanilang pagkakataon upang simulan ang trabaho. Ang Hyper Threading ay maihahambing sa isang karagdagang conveyor belt na inilatag sa tindahan upang ang mga dating walang ginagawa na manggagawa ay gampanan ang kanilang mga gawain nang hiwalay sa iba. Ang tindahan ay nag-iisa pa rin, ngunit ang mga bahagi ay naproseso nang mas mabilis at mahusay, kaya nababawasan ang downtime. Kaya, ginawang posible ng Hyper Threading na isama sa trabaho ang mga executive device ng processor na idle habang nagsasagawa ng mga tagubilin mula sa isang thread.

Sa sandaling i-on mo ang isang computer na may dual-core processor na sumusuporta sa Hyper Threading at buksan ang Windows Task Manager (Task Manager) sa tab na Performance (Performance), makikita mo ang apat na graph dito. Ngunit hindi ito nangangahulugan na mayroon ka talagang 4 na mga core ng processor.

Ito ay dahil iniisip ng Windows na ang bawat core ay may dalawang lohikal na processor. Ang terminong "lohikal na processor" ay nakakatawa, ngunit nangangahulugan ito ng isang processor na hindi pisikal na umiiral. Maaaring magpadala ang Windows ng mga stream ng data sa bawat lohikal na processor, ngunit isang core lamang ang aktwal na gumagawa ng gawain. Samakatuwid, ang isang solong core na may teknolohiya ng Hyper Threading ay makabuluhang naiiba sa magkahiwalay na mga pisikal na core.

Ang teknolohiya ng Hyper Threading ay nangangailangan ng suporta mula sa sumusunod na hardware at software:

  • CPU
  • motherboard chipset
  • operating system

Mga Benepisyo sa Teknolohiya

Ngayon isaalang-alang ang susunod na tanong - gaano kalaki ang pinatataas ng teknolohiya ng Hyper Threading sa pagganap ng computer? Sa pang-araw-araw na gawain tulad ng Internet surfing at pag-type, ang mga benepisyo ng teknolohiya ay hindi masyadong halata. Gayunpaman, tandaan na ang mga processor ngayon ay napakalakas na ang mga pang-araw-araw na gawain ay bihirang gamitin ang processor sa kanilang buong kapasidad. Bilang karagdagan, marami ang nakasalalay sa kung paano ito isinulat software. Maaari kang magkaroon ng ilang mga programa na tumatakbo nang sabay-sabay, gayunpaman, sa pagtingin sa load graph, makikita mo na isang lohikal na processor bawat core ang ginagamit. Ito ay dahil hindi sinusuportahan ng software ang pamamahagi ng mga proseso sa pagitan ng mga core.

Gayunpaman, sa mas kumplikadong mga gawain, ang Hyper Threading ay maaaring maging mas kapaki-pakinabang. Ang mga application tulad ng mga 3D modeling program, 3D na laro, musika o video encoding/decoding program, at maraming siyentipikong application ay isinulat para masulit ang multithreading. Samakatuwid, maaari mong maranasan ang mga benepisyo ng pagganap ng isang hyper-threaded na computer habang naglalaro ng mga kumplikadong laro, nakikinig sa musika, o nanonood ng mga pelikula. Maaari nitong pataasin ang pagganap ng hanggang 30%, kahit na maaaring may mga sitwasyon kung saan ang Hyper Threading ay hindi nagbibigay ng anumang kalamangan. Minsan, kung sakaling i-load ng parehong mga thread ang lahat ng mga executive device ng processor na may parehong mga gawain, maaaring may ilang pagkasira ng pagganap.

Ang pagbabalik sa presensya sa BIOS Setup ng kaukulang opsyon na nagbibigay-daan sa iyo upang itakda ang mga parameter ng Hyper Threading, sa karamihan ng mga kaso inirerekomenda na paganahin ang tampok na ito. Gayunpaman, maaari mo itong i-off anumang oras kung lumalabas na ang computer ay gumagana nang may mga error o kahit na mas mababa ang pagganap kaysa sa iyong inaasahan.

Konklusyon

Dahil ang pinakamataas na pagtaas ng pagganap kapag gumagamit ng Hyper Threading ay 30%, hindi masasabi na ang teknolohiya ay katumbas ng pagdodoble ng bilang ng mga core ng processor. Gayunpaman, ang Hyper Threading ay isang kapaki-pakinabang na opsyon, at ikaw, bilang may-ari ng isang computer, ay hindi makagambala dito. Ang kalamangan nito ay lalong kapansin-pansin, halimbawa, sa mga ganitong kaso kapag nag-edit ka ng mga multimedia file o ginagamit ang iyong computer bilang isang workstation para sa naturang mga propesyonal na programa parang Photoshop or Maya.

Nagkaroon ng oras kung kailan kinakailangan upang suriin ang pagganap ng memorya sa konteksto ng teknolohiya ng Hyper-threading. Nakarating kami sa konklusyon na ang impluwensya nito ay hindi palaging positibo. Kapag nagkaroon ng dami ng libreng oras, nagkaroon ng pagnanais na ipagpatuloy ang pagsasaliksik at isaalang-alang ang mga patuloy na proseso nang may katumpakan ng mga cycle at bits ng makina, gamit ang software ng sarili nating disenyo.

Sinaliksik na plataporma

Ang object ng mga eksperimento - ASUS laptop N750JK na may processor Intel core i7-4700HQ. Ang bilis ng orasan ay 2.4GHz, pinalakas ng Intel Turbo Boost mode hanggang 3.4GHz. 16 gigabytes na naka-install random access memory DDR3-1600 (PC3-12800) na gumagana sa dual-channel mode. Operating system - Microsoft Windows 8.1 64 bits.

Fig.1 Configuration ng pinag-aralan na platform.

Ang processor ng platform na pinag-aaralan ay naglalaman ng 4 na mga core, na, kapag ang teknolohiya ng Hyper-Threading ay pinagana, ay nagbibigay ng suporta sa hardware para sa 8 mga thread o lohikal na mga processor. Ipinapasa ng platform firmware ang impormasyong ito sa operating system sa pamamagitan ng MADT (Multiple APIC Description Table) ACPI table. Dahil ang platform ay naglalaman lamang ng isang RAM controller, walang SRAT (System Resource Affinity Table) na nagdedeklara ng kalapitan ng mga core ng processor sa mga memory controller. Malinaw, ang laptop na pinag-uusapan ay hindi isang platform ng NUMA, ngunit operating system, para sa layunin ng pag-iisa, isinasaalang-alang ito bilang isang NUMA system na may isang domain, gaya ng ipinahiwatig ng linyang NUMA Nodes = 1. Ang katotohanan na mahalaga para sa aming mga eksperimento ay ang unang antas ng data cache ay may sukat na 32 kilobytes para sa bawat isa. ng apat na core. Dalawang lohikal na processor na nagbabahagi ng parehong core ay nagbabahagi ng L1 at L2 na mga cache.

Inimbestigahan ang operasyon

Sisiyasatin namin ang dependence ng bilis ng pagbasa ng data block sa laki nito. Upang gawin ito, pipiliin namin ang pinaka produktibong pamamaraan, ibig sabihin, ang pagbabasa ng 256-bit na mga operand gamit ang pagtuturo ng VMOVAPD AVX. Sa mga chart, ipinapakita ng X-axis ang laki ng block, at ang Y-axis ay nagpapakita ng bilis ng pagbabasa. Sa paligid ng point X, na tumutugma sa laki ng unang antas ng cache, inaasahan naming makakita ng inflection point, dahil dapat bumaba ang performance pagkatapos lumabas ang naprosesong block sa cache. Sa aming pagsubok, sa kaso ng multithreading, gumagana ang bawat isa sa 16 na pinasimulang thread sa isang hiwalay na hanay ng address. Para sa pagmamaneho teknolohiya ng hyper-threading sa loob ng application, ang bawat isa sa mga thread ay gumagamit ng SetThreadAffinityMask API function, na nagtatakda ng mask, kung saan ang bawat lohikal na processor ay tumutugma sa isang bit. Ang isang solong halaga ng bit ay nagpapahintulot sa paggamit ng tinukoy na processor ng tinukoy na thread, ang isang zero na halaga ay nagbabawal dito. Para sa 8 lohikal na processor ng pinag-aralan na platform, ang mask 11111111b ay nagbibigay-daan sa paggamit ng lahat ng mga processor (Hyper-Threading ay pinagana), mask 01010101b ay nagbibigay-daan sa paggamit ng isang lohikal na processor sa bawat core (Hyper-Threading ay hindi pinagana).

Ang mga sumusunod na pagdadaglat ay ginagamit sa mga graph:

MBPS (Megabytes bawat Segundo)harangan ang bilis ng pagbasa sa megabytes bawat segundo;

CPI (Mga Orasan bawat Tagubilin)bilang ng mga cycle sa bawat pagtuturo;

TSC (Time Stamp Counter)counter ng ikot ng processor.

Tandaan: Ang bilis ng orasan ng TSC register ay maaaring hindi tumugma sa bilis ng orasan ng processor kapag tumatakbo sa Turbo Boost mode. Dapat itong isaalang-alang kapag binibigyang kahulugan ang mga resulta.

Sa kanang bahagi ng mga graph, makikita ang isang hexadecimal dump ng mga tagubilin na bumubuo sa katawan ng cycle ng target na operasyon na ginanap sa bawat thread ng program, o ang unang 128 byte ng code na ito.

Karanasan bilang 1. Isang thread



Fig.2 Nagbabasa sa isang thread

Ang maximum na bilis ay 213563 megabytes bawat segundo. Ang inflection point ay nangyayari sa isang block size na humigit-kumulang 32 kilobytes.

Karanasan bilang 2. 16 na thread sa 4 na processor, hindi pinagana ang Hyper-Threading



Fig.3 Pagbasa sa labing-anim na mga thread. Ang bilang ng mga lohikal na processor na ginamit ay apat

Naka-disable ang hyper-threading. Ang maximum na bilis ay 797598 megabytes bawat segundo. Ang inflection point ay nangyayari sa isang block size na humigit-kumulang 32 kilobytes. Tulad ng inaasahan, kumpara sa pagbabasa na may isang solong thread, ang bilis ay tumaas ng halos 4 na beses, sa mga tuntunin ng bilang ng mga gumaganang core.

Karanasan bilang 3. 16 na thread sa 8 processor, pinagana ang Hyper-Threading



Fig.4 Pagbasa sa labing-anim na mga thread. Ang bilang ng mga lohikal na processor na ginamit ay walo

Naka-enable ang hyper-threading. Ang maximum na bilis ng 800722 megabytes bawat segundo, bilang isang resulta ng pagsasama ng Hyper-Threading, halos hindi tumaas. Ang malaking minus ay ang inflection point ay nangyayari sa isang block size na humigit-kumulang 16 kilobytes. Ang pagpapagana ng Hyper-Threading ay bahagyang tumaas ang maximum na bilis, ngunit ngayon ang bilis ng pagbaba ay nangyayari sa kalahati ng laki ng bloke - mga 16 kilobytes, kaya ang average na bilis ay bumaba nang malaki. Ito ay hindi nakakagulat, ang bawat core ay may sariling L1 cache, habang ang mga lohikal na processor sa parehong core ay nagbabahagi nito.

mga konklusyon

Ang inimbestigahang operasyon ay nasusukat nang maayos sa isang multi-core na processor. Ang mga dahilan ay ang bawat isa sa mga core ay naglalaman ng sarili nitong cache memory ng una at pangalawang antas, ang laki ng target block ay maihahambing sa laki ng cache memory, at ang bawat isa sa mga thread ay gumagana sa sarili nitong hanay ng mga address. Para sa mga layuning pang-akademiko, gumawa kami ng mga ganitong kundisyon sa isang synthetic na pagsubok, na napagtatanto na ang mga tunay na aplikasyon ay karaniwang malayo sa perpektong pag-optimize. Ngunit ang pagsasama ng Hyper-Threading, kahit na sa ilalim ng mga kundisyong ito, ay nagkaroon ng negatibong epekto, na may bahagyang pagtaas sa peak speed, mayroong isang makabuluhang pagkawala sa bilis ng pagproseso ng mga bloke, ang laki nito ay nasa saklaw mula 16 hanggang 32 kilobytes.

Hello sa mga mahilig sa computer at hardware.

Gusto mo bang magkaroon ng processor na may mataas na pagganap sa iyong computer na maaaring magsagawa ng maraming gawain nang sabay-sabay nang may bilis ng kidlat? Sino ba namang tatanggi di ba? Pagkatapos ay iminumungkahi kong pamilyar ka sa teknolohiya ng hyper threading: kung ano ito at kung paano ito gumagana, matututunan mo mula sa artikulong ito.


Pagpapaliwanag ng konsepto

Ang hyper-threading ay isinalin mula sa Ingles bilang "hyper-accuracy". Ang teknolohiya ay nakakuha ng isang malaking pangalan para sa isang dahilan. Pagkatapos ng lahat, ang operating system ay tumatagal ng isang pisikal na processor na nilagyan nito para sa dalawang lohikal na core. Dahil dito, mas maraming command ang naproseso, at hindi bumababa ang performance.

Paano ito posible? Dahil sa katotohanan na ang processor:

  • Nagse-save ng impormasyon tungkol sa ilang tumatakbong mga thread nang sabay-sabay;
  • Para sa bawat lohikal na processor, mayroong isang hanay ng mga rehistro - mga bloke ng mabilis na panloob na memorya, pati na rin ang isang bloke ng mga pagkagambala. Ang huli ay responsable para sa sunud-sunod na pagpapatupad ng mga kahilingan mula sa iba't ibang mga device.

Ano ang hitsura nito sa pagsasanay? Ipagpalagay na ngayon ang pisikal na processor ay nagpoproseso ng mga utos ng unang lohikal na processor. Ngunit sa huli ay may ilang uri ng kabiguan, at, halimbawa, kailangan niyang maghintay para sa data mula sa memorya. Ang pisikal ay hindi mag-aaksaya ng anumang oras at agad na lilipat sa pangalawang lohikal na processor.

Tungkol sa pagpapabuti ng pagganap

Ang kahusayan ng isang pisikal na processor, bilang panuntunan, ay hindi hihigit sa 70%. Bakit? Kadalasan, ang ilang mga bloke ay hindi kailangan upang maisagawa ang isang partikular na gawain. Halimbawa, kapag ang CPU ay nagsasagawa ng mga walang kabuluhang pagkilos sa pag-compute, ang bloke ng pagtuturo at extension ng SIMD ay hindi kasama. Nangyayari na ang isang pagkabigo ay nangyayari sa module ng hula ng sangay o kapag ina-access ang cache.

Sa ganitong mga sitwasyon, pinupunan ng Hyper-threading ang mga "gaps" sa iba pang mga gawain. Kaya, ang pagiging epektibo ng teknolohiya ay nakasalalay sa katotohanan na ang kapaki-pakinabang na trabaho ay hindi idle at ibinibigay sa mga idle na device.

Hitsura at pagpapatupad

Maaari nating ipagpalagay na ipinagdiwang na ng Hyper-threading ang ika-15 anibersaryo nito. Pagkatapos ng lahat, ito ay binuo batay sa teknolohiya ng super-threading, na inilabas noong 2002 at unang nagsimulang magtrabaho sa mga produkto ng Xeon, pagkatapos ay sa parehong taon ay isinama ito sa Pentium 4. Ang copyright para sa mga teknolohiyang ito ay pagmamay-ari ng Intel.

Ang HT ay ipinatupad sa mga processor na tumatakbo sa NetBurst microarchitecture, na kung saan ay nailalarawan sa pamamagitan ng mataas na bilis ng orasan. Ipinapatupad ang suporta sa teknolohiya sa mga modelo ng mga pamilyang Core vPro, M at Xeon. Gayunpaman, sa serye ng Core 2 ("Duo", "Quad"), hindi ito isinama. Ang isang teknolohiyang katulad sa prinsipyo ng pagpapatakbo ay ipinatupad sa mga proseso ng Atom at Itanium.

Paano ito paganahin? Dapat ay mayroon kang hindi lamang isa sa mga processor sa itaas, kundi pati na rin ang isang operating system na sumusuporta sa teknolohiya at isang BIOS na may opsyon na i-on at i-off ang HT. Kung hindi, i-update ang BIOS.

Mga kalamangan at kahinaan ng Hyperthreading

Maaari ka nang gumawa ng konklusyon tungkol sa ilan sa mga pakinabang ng teknolohiya mula sa impormasyon sa itaas. Magdaragdag ako ng ilang higit pang mga salita sa kanila:

  • Matatag na operasyon ng ilang mga programa nang magkatulad;
  • Nabawasan ang oras ng pagtugon kapag nagsu-surf sa Internet o gumagamit ng mga application.

Tulad ng naiintindihan mo, ito ay hindi walang langaw sa pamahid. Maaaring walang performance gain para sa mga sumusunod na dahilan:

  • Walang sapat na memorya ng cache. Halimbawa, sa mga processor ng 4-core i7, ang cache ay 8 MB, ngunit mayroong parehong bilang ng mga lohikal na core. Nakukuha lang namin ang 1 MB bawat core, na hindi sapat para sa karamihan ng mga program na magsagawa ng mga gawain sa pag-compute. Dahil dito, ang pagganap ay hindi lamang nakatayo, ngunit bumabagsak pa.

  • Depende sa data. Ipagpalagay na ang unang thread ay nangangailangan kaagad ng impormasyon mula sa pangalawa, ngunit hindi pa ito handa o nakapila para sa isa pang thread. Nangyayari rin na ang paikot na data ay nangangailangan ng ilang mga bloke upang mabilis na makumpleto ang isang gawain, ngunit abala na sila sa ibang gawain.
  • Overload ng kernel. Nangyayari na ang kernel ay maaaring na-overload na, ngunit sa kabila nito, ang module ng hula ay nagpapadala pa rin ng data dito, bilang isang resulta kung saan ang computer ay nagsimulang bumagal.

Saan kailangan ang Hyper-threading?

Magiging kapaki-pakinabang ang teknolohiya kapag gumagamit ng mga programang masinsinang mapagkukunan: mga editor ng audio, video at larawan, mga laro, mga archiver. Kabilang dito ang Photoshop, Maya, 3D's Max, Corel Draw, WinRar, atbp.

Mahalaga na ang software ay na-optimize para sa Hyper-threading. Kung hindi, maaaring mangyari ang mga pagkaantala. Ang katotohanan ay ang mga programa ay isinasaalang-alang ang mga lohikal na core bilang pisikal, kaya maaari silang magpadala ng iba't ibang mga gawain sa parehong bloke.

Inaasahan na makita ka sa aking blog.

Ang mga gumagamit na hindi bababa sa isang beses na nag-configure ng BIOS ay malamang na napansin na mayroong isang parameter ng Intel Hyper Threading na hindi maintindihan ng marami. Marami ang hindi nakakaalam kung ano ang teknolohiyang ito at para sa anong layunin ito ginagamit. Subukan nating alamin kung ano ang Hyper Threading at kung paano mo paganahin ang paggamit ng suportang ito. Susubukan din naming malaman kung anong mga pakinabang ang ibinibigay nito sa isang computer. ang setting na ito. Sa prinsipyo, walang mahirap na maunawaan dito.

Intel Hyper Threading: ano ito?
Kung hindi ka malalim sa gubat ng terminolohiya ng computer, ngunit upang ilagay ito sa mga simpleng termino, kung gayon ang teknolohiyang ito ay binuo upang madagdagan ang daloy ng mga utos na naproseso nang sabay-sabay ng gitnang processor. Ang mga modernong processor chips, bilang panuntunan, ay gumagamit lamang ng 70% ng mga magagamit na kakayahan sa pag-compute. Ang natitira ay nananatili, wika nga, sa reserba. Tulad ng para sa pagproseso ng stream ng data, sa karamihan ng mga kaso isang thread lamang ang ginagamit, sa kabila ng katotohanan na ang system ay gumagamit ng isang multi-core processor.

Mga pangunahing prinsipyo ng trabaho
Upang madagdagan ang mga kakayahan ng gitnang processor, ito ay binuo espesyal na teknolohiya hyperthreading. Pinapadali ng teknolohiyang ito na hatiin ang isang command stream sa dalawa. Posible ring magdagdag ng pangalawang stream sa isang umiiral na. Tanging ang ganitong stream ay virtual at hindi gumagana sa pisikal na antas. Ang diskarte na ito ay nagbibigay-daan sa iyo upang makabuluhang taasan ang pagganap ng processor. Ang buong sistema, nang naaayon, ay nagsisimulang gumana nang mas mabilis. Ang pagtaas sa pagganap ng CPU ay maaaring magbago nang malaki. Ito ay tatalakayin nang hiwalay. Gayunpaman, ang mga nag-develop ng teknolohiya ng Hyper Threading mismo ay nag-aangkin na kulang ito sa isang ganap na core. Sa ilang mga kaso, ang paggamit ng teknolohiyang ito ay ganap na makatwiran. Kung alam mo ang kakanyahan ng mga processor ng Hyper Threading, kung gayon ang resulta ay hindi magtatagal.

Makasaysayang sanggunian
Sumisid tayo nang kaunti sa kasaysayan ng pag-unlad na ito. Ang suporta para sa Hyper Threading ay unang lumitaw lamang sa mga processor ng Intel Pentium 4. Nang maglaon, ang pagpapatupad ng teknolohiyang ito ay ipinagpatuloy sa serye ng Intel Core iX (X ay nangangahulugang serye ng processor dito). Dapat pansinin na sa ilang kadahilanan ay wala ito sa linya ng Core 2 processor chips. Totoo, kung gayon ang pagtaas sa pagiging produktibo ay medyo mahina: sa isang lugar sa antas ng 15-20%. Ipinapahiwatig nito na ang processor ay walang kinakailangang kapangyarihan sa pagpoproseso, at ang teknolohiyang nilikha ay halos nauuna sa oras nito. Ngayon, ang suporta para sa teknolohiya ng Hyper Threading ay magagamit na sa halos lahat ng modernong chips. Upang mapataas ang kapangyarihan ng gitnang processor, ang proseso mismo ay gumagamit lamang ng 5% ng kristal na ibabaw, habang nag-iiwan ng puwang para sa pagproseso ng mga utos at data.

Isang tanong ng mga salungatan at pagganap
Ang lahat ng ito ay tiyak na mabuti, ngunit sa ilang mga kaso, kapag nagpoproseso ng data, maaaring may pagbagal sa trabaho. Ito ay kadalasang dahil sa tinatawag na branch prediction module at hindi sapat na laki ng cache kapag ito ay patuloy na nire-reload. Kung pinag-uusapan natin ang pangunahing module, kung gayon sa kasong ito ang sitwasyon ay tulad na sa ilang mga kaso ang unang thread ay maaaring mangailangan ng data mula sa pangalawa, na maaaring hindi maproseso sa sandaling iyon o nasa pila para sa pagproseso. Gayundin, hindi gaanong karaniwan ang mga sitwasyon kapag ang gitnang core ng processor ay may napakaseryosong pagkarga, at ang pangunahing module, sa kabila nito, ay patuloy na nagpapadala ng data dito. Ang ilang mga programa at application, tulad ng mga online na laro na masinsinan sa mapagkukunan, ay maaaring seryosong bumagal dahil lang sa kulang ang mga ito sa pag-optimize para sa paggamit ng teknolohiyang Hyper Threading. Ano ang mangyayari sa mga laro? Ang computer system ng user, sa bahagi nito, ay sumusubok na i-optimize ang mga daloy ng data mula sa application patungo sa server. Ang problema ay ang laro ay hindi alam kung paano independiyenteng ipamahagi ang mga stream ng data, paglalaglag ng lahat sa isang bunton. Sa pangkalahatan, maaaring hindi ito idinisenyo para dito. Minsan sa mga dual-core na processor, ang pagtaas ng performance ay mas mataas kaysa sa mga 4-core. Wala lang sila sa processing power.

Paano paganahin ang Hyper Threading sa BIOS?
Nalaman na namin ang kaunti tungkol sa kung ano ang teknolohiya ng Hyper Threading at nakilala ang kasaysayan ng pag-unlad nito. Malapit na nating maunawaan kung ano ang teknolohiya ng Hyper Threading. Paano i-activate ang teknolohiyang ito para magamit sa processor? Narito ang lahat ay ginagawa nang simple. Dapat mong gamitin ang BIOS management subsystem. Ang subsystem ay ipinasok gamit ang Del, F1, F2, F3, F8, F12, F2+Del, atbp. Kung gumagamit ka ng Sony Vaio laptop, mayroon silang partikular na input kapag ginagamit ang nakalaang ASSIST key. Sa mga setting ng BIOS, kung ang processor na iyong ginagamit ay sumusuporta sa teknolohiya ng Hyper Threading, dapat mayroong isang espesyal na linya ng setting. Sa karamihan ng mga kaso, ito ay mukhang Hyper Threading Technology, at kung minsan ay parang Function. Depende sa developer ng subsystem at Mga bersyon ng BIOS, ang setting ng parameter na ito ay maaaring nasa main menu o sa mga advanced na setting. Upang paganahin ang teknolohiyang ito, dapat kang pumasok sa menu ng mga opsyon at itakda ang halaga sa Pinagana. Pagkatapos nito, kailangan mong i-save ang mga pagbabagong ginawa at i-reboot ang system.

Bakit kapaki-pakinabang ang Hyper Threading?
Sa konklusyon, nais kong pag-usapan ang tungkol sa mga benepisyo na ibinibigay ng paggamit ng teknolohiya ng Hyper Threading. Para saan ang lahat ng ito? Bakit kailangang dagdagan ang lakas ng processor kapag nagpoproseso ng impormasyon? Ang mga gumagamit na nagtatrabaho sa mga application at program na masinsinang mapagkukunan ay hindi kailangang magpaliwanag ng anuman. Malamang na alam ng maraming tao na ang mga graphic, mathematical, design software packages ay nangangailangan ng maraming mapagkukunan ng system sa proseso ng trabaho. Dahil dito, ang buong sistema ay na-load nang labis na nagsisimula itong bumagal nang husto. Upang maiwasang mangyari ito, inirerekumenda na paganahin ang suporta sa Hyper Threading.