Aktuāls

Kad pienāks beigas Francijas ērai WRC pasaules čempionātā?

Auto, Moto

Hyper-Threading – aiz šiem diviem vienkāršajiem un patīkami skanošajiem vārdiem, kas apzīmē tehnoloģiju, kas integrēta jaunākās paaudzes Pentium 4 procesoros, slēpjas veseli informācijas kalni. Lai gan nemaz nevarētu teikt, ka tie slēpjas jo pats Intel mārketinga aparāts šo informāciju izplata ar tādu sparu, ka, šķiet, grūti būtu vēl aizvien par šo tehnoloģiju neko nezināt. No vienas puses skatoties tas pat nebūtu nekas sevišķs, jo šāda “bļaustīšanās” un savu produktu un tehnoloģiju lielīšana ir raksturīga ne tikai Intel, bet mūsdienu pasaulei vispār, kur katrs produkts tiek izreklamēts līdz nepazīšanai. Tomēr, ziņas un dažāda veida informācija par HT tiek potēta tādos apmēros un ar tādu nepacietību, ka šķiet, Intel šoreiz tiešām mums grib ko teikt. Pats jaunais Intel 3.06Ghz procesors, kas tuvāk iepazīstināja mūs ar HT tehnoloģiju, palika gluži vai šīs tehnoloģijas ēnā, ja tas maz ir iespējams. Pirmo reizi to, ka ar procesora takts frekfenci(Megaherciem) vien vēl nepietiek lai raksturotu procesora veiktspēju, sāk apgalvot arī Intel. Kas tad ir tas tik nozīmīgais, ko Intel vēlas mums visiem paziņot ar HT?

Pēc būtības HT ir tehnoloģija, kas atļauj procesoram darboties, kā virtuālai divu procesoru sistēmai. Rezultātā tādas operētājsistēmas, kas atbalsta multiprocesoru sistēmas(kā piemēram Windows XP) tiek piemuļķotas un atpazīst šo procesoru kā divus procesorus.

Bet kāda gan jēga no šāda virtuāla otrā procesora, ja mēs zinām , ka reāli taču pastāv tikai viens procesors? Labs jautājums, priecājos, ka pajautājāt:). Lai atbildētu uz šo jautājumu un izskaidrotu kā darbojas HT tehnoloģija būs labāk, ja atkārtosim nedaudz teorijas.

Tātad mūsdienu procesori vienā instrukciju ciklā spēj izpildīt vairākas operācijas. Tomēr, tas ka tie to spēj izdarīt, vēl nebūt nenozīmē, ka tie to arī izdara. Maksimālais operāciju skaits vienā instrukciju ciklā tiks izpildīts tikai ideālā gadījumā, kas ir reta parādība reālajā dzīvē, neskatoties uz to, ka programmu izstrādātāji mūsdienās cenšas pielāgot savu kodu izplatītākajiem procesoriem. Reālā darbībā, kādu uzdevumu veicot, procesoram parasti ir jāizpilda tikai daļa no visām tām operācijām, kuras viņš varētu veikt, ja būtu tāda vajadzība, šajā pat instrukciju ciklā, kas būtībā nozīmē to, ka lielāka vai mazāka daļa procesora resursu gandrīz nepārtraukti paliek neizmantota. Pat, ja lietotājs strādā ar kādu ārkārtīgi “rijīgu” aplikāciju parasti tiek noslogota tikai daļa no procesora resursiem, jo visai reti vienādi intensīvi tiek operēts ar veseliem skaitļiem, peldošo punktu, vai adresēšanas operācijām. Tālāk iedomāsimies, ka procesoram ir jāpaveic divi uzdevumi vai divi procesi. To var izdarīt vai nu paveicot vispirms vienu un pēc tam otru vai paveicot abus vienlaicīgi. Taču izrādās, ka standarta procesors nemaz nevar apstrādāt vai veikt divus uzdevumus vienā instrukciju ciklā. Jebkurš process uzdevums tiek sadalīts pa instrukciju cikliem tādos kā mazos gabaliņos, kas procesoram ir jāizpilda un vienā šādā instrukciju ciklā standarta procesors var apstrādāt tikai vienu uzdevumu, neatkarīgi no tā cik operācijas konkrētajā ciklā ir jāizpilda lai veiktu(turpinātu) attiecīgo uzdevumu. Tādejādi vienīgais veids kā standarta procesors var “vienlaicīgi” veikt vairākus uzdevumus ir pārmīšus strādāt pie viena un pie otra uzdevuma tādejādi it kā vienlaicīgi turpinot tos abus. Lai cik dīvaini arī neizklausītos šis veids caurmērā ir pat ātrāks nekā tad, ja vispirms līdz galam izpildītu pirmo uzdevumu un tikai pēc tam ķertos pie otrā. Tas tā ir tāpēc, ka veicot vienu noteiktu uzdevumu procesoram bieži nākas palikt bez datiem, kas nozīmē ka līdz procesoram nav paspējusi nokļūt informācija par to, kas tagad procesoram būtu jādara. Speciāli šādiem gadījumiem mūsdienu procesoros ir iestrādātas dažādas sistēmas un tehnoloģijas, kas šādos gadījumos cenšas paredzēt, kas varētu būt jādara, jeb citiem vārdiem sakot, ja procesoram pēkšņi nav informācijas ko tālāk darīt, tas cenšas uzminēt, kas varētu būt jādara. Diemžēl, ja tas neizdodas procesoram ir jāattīra sevi no lieki un nepareizi sastrādātā darba, kas prasa vairākus ciklus, kuru laikā netiek veikts nekas. Dažādus “tukšos” ciklus spēj radīt arī citi iemesli un dažādas aiztures sistēmā. Šie cikli tā arī paliek neizmantoti, ja to laika tiek veikts tikai viens uzdevums, tomēr, ja paralēli tiek veikti vairāki uzdevumi procesors var aši “pieslēgties” citam uzdevumam tādejādi kompensējot darba aizturi pie cita uzdevuma “tukšo” ciklu dēļ, kuru skaits nebūt nav tik mazs kā varētu likties. Tā rezultātā vairākus procesus veicot pamīšus vienu otram kopējais rezultāts būs labāks nekā ja šos visus procesus veiktu vienu pēc otra. Šīs tikko aprakstītās tehnoloģijas sauc time–slice multithreading, kad procesors pārslēdzas uz citu procesu ik pēc noteikta laika intervāla, un switch-on-event multithreading, kad procesors pārslēdzas uz citu procesu, jo dotajā brīdī nav spējīgs turpināt darbu pie patreizējā procesa.
Šīs tehnoloģijas, protams ievērojami racionalizē procesora darbību, kad tam ir saskarsme ar vairākiem uzdevumiem vienlaicīgi, tomēr tās nespēj cīnīties ar pašu galveno problēmu – neefektīvu procesora resursu izmantošanu vienā instrukciju ciklā veicot operācijas, jeb apkalpojot tikai vienu procesu.

Līdz šim šo problēmu spēja atrisināt tikai vairākprocesoru sistēmas, kas notiekošos procesus spēja sadalīt uz vairākiem procesoriem un rezultātā vairāki procesi varēja ritēt savu gaitu vienlaicīgi, ievērojami atslogojot sistēmas, kurās vienlaicīgi tiek veikti daudzi procesi – piemēram dažādas jaudas serveri.
HT tehnoloģija padara daudz racionālāku sistēmas darbību arī viena procesora robežās, ļaujot tam vienlaicīgi veikt divus uzdevumus, tādejādi daudz efektīgāk izmantojot procesora resursus. Visa pamatā ir vienkārša ideja par to, ka bieži nemaz nav vajadzīgi otra procesora fiziskie resursi, lai izpildītu divus procesus vienlaicīgi, jo liela daļa no šī paša procesora resursiem gandrīz vienmēr paliek neizmantota. Līdz ar to pilnīgi pietiek šajā procesorā integrēt otru loģisko procesoru, kas var izpildīt operācijas un lai arī tie abi izmantos vienus un tos pašus resursus, rezultāts būs nesalīdzināmi pilnīgāks. Līdz ar to kļūst skaidrs, ka HT tehnoloģija neizveido vienkārši virtuālu otro procesoru, kas neko tā arī nedara. Šis otrs procesors ir gluži reāls – tikai tam nav pašam savu individuālu resursu atsevišķu operāciju veikšanai, bet tas tomēr nenozīmē, ka šis otrs procesors nevar izpausties tajos resursos kurus uz laiku neizmanto pirmais procesors.
HT tehnoloģija, protams, nedos nekādus rezultātus gadījumā ja intensīvi tiek veikts viens vienīgs uzdevums, jo tā nevar palielināt procesora maksimālo jaudu, toties tai jūtami labāk vajadzētu tikt galā ar diviem paralēli notiekošiem procesiem.

HT tehnoloģijas princips uzskatāmi parādīts šajā zīmējumā.

Izsaki savu viedokli