Uy / Turli xil / Hyper threading texnologiyasini qo'llab-quvvatlash. Inteldan Hyper-Threading texnologiyasi. Hosildorlik hech qachon etarli emas

Hyper threading texnologiyasini qo'llab-quvvatlash. Inteldan Hyper-Threading texnologiyasi. Hosildorlik hech qachon etarli emas

Hech bo'lmaganda bir marta BIOS-ni sozlagan foydalanuvchilar, ehtimol, ko'pchilik uchun tushunarsiz bo'lgan Intel Hyper Threading parametri mavjudligini allaqachon payqashgan. Ko'pchilik bu texnologiya nima ekanligini va u qanday maqsadda qo'llanilishini bilmaydi. Keling, Hyper Threading nima ekanligini va ushbu yordamdan foydalanishni qanday yoqish mumkinligini aniqlashga harakat qilaylik. Shuningdek, biz kompyuterga qanday afzalliklarni berishini aniqlashga harakat qilamiz. bu sozlama. Aslida, bu erda tushunish qiyin narsa yo'q.

Intel Hyper Threading: bu nima?
Agar siz kompyuter terminologiyasi o'rmoniga chuqur kirmasangiz, lekin uni oddiy tilda aytsangiz, unda bu texnologiya CPU tomonidan bir vaqtning o'zida qayta ishlangan buyruqlar oqimini oshirish uchun mo'ljallangan. Zamonaviy protsessor chiplari, qoida tariqasida, mavjud hisoblash imkoniyatlarining atigi 70 foizidan foydalanadi. Qolganlari, ta'bir joiz bo'lsa, zaxirada qoladi. Ma'lumotlar oqimini qayta ishlashga kelsak, tizim ko'p yadroli protsessordan foydalanishiga qaramay, aksariyat hollarda faqat bitta ip ishlatiladi.

Ishning asosiy tamoyillari
Markaziy protsessor imkoniyatlarini oshirish maqsadida maxsus Hyper Threading texnologiyasi ishlab chiqildi. Ushbu texnologiya bitta buyruq oqimini ikkiga bo'lishni osonlashtiradi. Mavjud oqimga ikkinchi oqim qo'shish ham mumkin. Faqat bunday oqim virtual bo'lib, jismoniy darajada ishlamaydi. Ushbu yondashuv protsessorning ish faoliyatini sezilarli darajada oshirish imkonini beradi. Butun tizim, shunga ko'ra, tezroq ishlay boshlaydi. CPU unumdorligining o'sishi juda ko'p o'zgarishi mumkin. Bu alohida muhokama qilinadi. Biroq, Hyper Threading texnologiyasini ishlab chiquvchilarning o'zlari u to'liq huquqli yadroga etishmayotganini ta'kidlamoqda. Ba'zi hollarda ushbu texnologiyadan foydalanish to'liq oqlanadi. Agar siz Hyper Threading protsessorlarining mohiyatini bilsangiz, natija uzoq kutilmaydi.

Tarix ma'lumotnomasi
Keling, ushbu rivojlanish tarixiga biroz to'xtalib o'tamiz. Hyper Threading-ni qo'llab-quvvatlash dastlab faqat Intel Pentium 4 protsessorlarida paydo bo'ldi.Keyinchalik bu texnologiyani amalga oshirish Intel Core iX seriyasida davom ettirildi (bu erda X protsessorlar seriyasini bildiradi). Shuni ta'kidlash kerakki, u negadir Core 2 protsessor chiplari qatorida yo'q. To'g'ri, keyin hosildorlikning o'sishi juda zaif edi: bir joyda 15-20% darajasida. Bu protsessorning kerakli ishlov berish kuchiga ega emasligini va yaratilgan texnologiya o'z vaqtidan deyarli oldinda ekanligini ko'rsatdi. Bugungi kunda Hyper Threading texnologiyasini qo'llab-quvvatlash deyarli barcha zamonaviy chiplarda allaqachon mavjud. Markaziy protsessorning quvvatini oshirish uchun jarayonning o'zi kristall sirtining atigi 5 foizidan foydalanadi, shu bilan birga buyruqlar va ma'lumotlarni qayta ishlash uchun joy qoldiradi.

Mojarolar va ishlash masalasi
Bularning barchasi, albatta, yaxshi, lekin ba'zi hollarda, ma'lumotlarni qayta ishlashda ishda sekinlashuv bo'lishi mumkin. Bu, asosan, filialni bashorat qilish moduli va doimiy ravishda qayta yuklanganda kesh hajmining etarli emasligi bilan bog'liq. Agar biz asosiy modul haqida gapiradigan bo'lsak, unda bu holat vaziyat shunday rivojlanadiki, ba'zi hollarda birinchi ip ikkinchidan ma'lumotlarni talab qilishi mumkin, ular o'sha paytda qayta ishlanmasligi yoki ishlov berish uchun navbatda turishi mumkin. Bundan tashqari, protsessor yadrosi juda jiddiy yukga ega bo'lgan holatlar ham kam uchraydi va asosiy modul, shunga qaramay, unga ma'lumotlarni yuborishda davom etadi. Resurs talab qiladigan onlayn o'yinlar kabi ba'zi dasturlar va ilovalar Hyper Threading texnologiyasidan foydalanish uchun optimallashtirish yo'qligi sababli jiddiy sekinlashishi mumkin. O'yinlar bilan nima sodir bo'ladi? Foydalanuvchining kompyuter tizimi, o'z navbatida, dasturdan serverga ma'lumotlar oqimini optimallashtirishga harakat qiladi. Muammo shundaki, o'yin ma'lumotlar oqimini mustaqil ravishda qanday tarqatishni bilmaydi, hamma narsani bitta to'plamga tashlaydi. Umuman olganda, u shunchaki buning uchun mo'ljallanmagan bo'lishi mumkin. Ba'zan ikki yadroli protsessorlarda ishlashning o'sishi 4 yadroli protsessorlarga qaraganda ancha yuqori. Ular shunchaki qayta ishlash kuchiga ega emaslar.

BIOS-da Hyper Threading-ni qanday yoqish mumkin?
Biz allaqachon Hyper Threading texnologiyasi nima ekanligini biroz tushunib oldik va uning rivojlanish tarixi bilan tanishdik. Biz Hyper Threading texnologiyasi nima ekanligini tushunishga yaqinlashdik. Protsessorda foydalanish uchun ushbu texnologiyani qanday faollashtirish mumkin? Bu erda hamma narsa juda sodda tarzda amalga oshiriladi. BIOS boshqaruv quyi tizimidan foydalanishingiz kerak. Quyi tizim Del, F1, F2, F3, F8, F12, F2+Del va hokazo tugmalar yordamida kiritiladi. Agar siz Sony Vaio noutbukidan foydalanayotgan bo'lsangiz, ular maxsus ASSIST tugmasidan foydalanganda ma'lum kirishga ega. BIOS sozlamalarida, agar siz foydalanayotgan protsessor Hyper Threading texnologiyasini qo'llab-quvvatlasa, maxsus sozlash liniyasi bo'lishi kerak. Aksariyat hollarda u Hyper Threading Technology kabi ko'rinadi, ba'zan esa Funktsiyaga o'xshaydi. Quyi tizim ishlab chiqaruvchisi va BIOS versiyasiga qarab, ushbu parametrni sozlash asosiy menyuda yoki kengaytirilgan sozlamalarda bo'lishi mumkin. Ushbu texnologiyani yoqish uchun siz variantlar menyusiga kirishingiz va qiymatni Enabled ga o'rnatishingiz kerak. Shundan so'ng siz kiritilgan o'zgarishlarni saqlashingiz va tizimni qayta ishga tushirishingiz kerak.

Hyper Threading nima uchun foydali?
Xulosa qilib, men Hyper Threading texnologiyasidan foydalanishning afzalliklari haqida gapirmoqchiman. Bularning barchasi nima uchun? Nima uchun axborotni qayta ishlashda protsessor quvvatini oshirish kerak? Resurs talab qiladigan ilovalar va dasturlar bilan ishlaydigan foydalanuvchilar hech narsani tushuntirishlari shart emas. Ko'pchilik, ehtimol, grafik, matematik, dizayn dasturlari paketlari ish jarayonida juda ko'p tizim resurslarini talab qilishini biladi. Shu sababli, butun tizim shunchalik yuklanganki, u dahshatli sekinlasha boshlaydi. Buning oldini olish uchun Hyper Threading yordamini yoqish tavsiya etiladi.

Ko'pgina Intel protsessorlari modullarni o'z ichiga oladi Giper qo'llab-quvvatlash-Threading texnologiyasi, ishlab chiquvchilarning fikriga ko'ra, chipning ishlashini oshirishga va umuman shaxsiy kompyuterni tezlashtirishga yordam beradi. Amerika korporatsiyasining ushbu yechimining o'ziga xos xususiyatlari nimada? Hyper-Threading-dan qanday foydalanishingiz mumkin?

Texnologiya asoslari

Keling, Hyper-Threading haqidagi asosiy tafsilotlarni ko'rib chiqaylik. Bu texnologiya nima? U Intel tomonidan ishlab chiqilgan va birinchi marta 2001 yilda ommaga taqdim etilgan. Uni yaratishdan maqsad serverlar unumdorligini oshirish edi. Hyper-Threading-da amalga oshirilgan asosiy printsip protsessor hisoblarini bir nechta iplarga taqsimlashdir. Bundan tashqari, bu faqat bitta yadro mikrosxemaning mos keladigan turiga o'rnatilgan bo'lsa ham mumkin (agar ular ikkita yoki undan ko'p bo'lsa va protsessordagi iplar allaqachon taqsimlangan bo'lsa, texnologiya ushbu mexanizmni muvaffaqiyatli to'ldiradi).

Asosiy kompyuter chipining bir nechta iplar ichida ishlashini ta'minlash hisob-kitoblar jarayonida me'moriy holatlarning nusxalarini yaratish orqali amalga oshiriladi. Bunday holda, chipdagi bir xil resurslar to'plami ishlatiladi. Agar dastur tegishli imkoniyatlardan foydalansa, amalda muhim operatsiyalar tezroq amalga oshiriladi. Ko'rib chiqilayotgan texnologiya kompyuterning kirish / chiqish tizimi - BIOS tomonidan qo'llab-quvvatlanishi ham muhimdir.

Hyper-Threadingni yoqish

Agar shaxsiy kompyuterda o'rnatilgan protsessor tegishli standartni qo'llab-quvvatlasa, u odatda avtomatik ravishda faollashadi. Ammo ba'zi hollarda Hyper-Threading texnologiyasi ishlashi uchun kerakli amallarni qo'lda bajarishingiz kerak bo'ladi. Uni qanday yoqish mumkin? Juda onson.

Asosiy BIOS interfeysiga kirishingiz kerak. Buni amalga oshirish uchun, kompyuterni ishga tushirishning boshida siz DEL tugmachalarini bosishingiz kerak, ba'zan - F2, F10, kamroq - boshqa tugmachalar, lekin kerakli tugma har doim darhol ekranda ko'rsatilgan matn qatorlaridan birida paydo bo'ladi. kompyuterni yoqish. BIOS interfeysida siz Hyper-Threading elementini topishingiz kerak: uni qo'llab-quvvatlaydigan kiritish-chiqarish tizimining versiyalarida u odatda taniqli joyda joylashgan. Tegishli variantni tanlagandan so'ng, Enter tugmasini bosishingiz va uni Yoqilgan deb belgilashingiz kerak. Agar ushbu rejim allaqachon o'rnatilgan bo'lsa, Hyper-Threading texnologiyasi ishlaydi. Siz uning barcha afzalliklaridan foydalanishingiz mumkin. Sozlamalarda texnologiyani faollashtirgandan so'ng, "Saqlash va o'rnatishdan chiqish" ni tanlab, BIOS-dagi barcha yozuvlarni saqlashingiz kerak. Shundan so'ng, protsessor Hyper-Theading qo'llab-quvvatlashi bilan ishlaganda kompyuter rejimda qayta ishga tushadi. Xuddi shunday, Hyper-Threading o'chirib qo'yilgan. Buni amalga oshirish uchun tegishli elementda boshqa variantni tanlang - O'chirilgan va sozlamalarni saqlang.

Hyper-Threading-ni qanday yoqish va ushbu texnologiyani o'chirishni o'rganib chiqib, uning xususiyatlarini batafsil ko'rib chiqamiz.

Hyper Threading-ni qo'llab-quvvatlaydigan protsessorlar

Kompaniyaning kontseptsiyasi amalga oshirilgan birinchi protsessor, ba'zi manbalarga ko'ra, Intel Xeon MP, Foster MP sifatida ham tanilgan. Ushbu chip bir qator me'moriy komponentlar bo'yicha Pentium 4 ga o'xshash bo'lib, keyinchalik u ham ushbu texnologiyani amalga oshirdi. Keyinchalik, ko'p tarmoqli hisoblash xususiyati Prestonia yadroli Xeon server protsessorlarida amalga oshirildi.

Agar Hyper-Threadingning hozirgi tarqalishi haqida gapiradigan bo'lsak - qaysi "taroziga" uni qo'llab-quvvatlaydi? Ushbu turdagi eng mashhur chiplar orasida Core va Xeon oilalariga tegishli chiplar mavjud. Shunga o'xshash algoritmlar Itanium va Atom kabi protsessorlarda ham amalga oshirilganligi haqida ma'lumotlar mavjud.

Hyper-Threading, uning yordami bilan protsessorlar haqidagi asosiy ma'lumotlarni o'rganib chiqib, texnologiyaning rivojlanish tarixi haqidagi eng ajoyib faktlarni ko'rib chiqaylik.

Rivojlanish tarixi

Yuqorida ta'kidlaganimizdek, Intel 2001 yilda ko'rib chiqilayotgan kontseptsiyani ommaga ko'rsatdi. Ammo texnologiyani yaratishda birinchi qadamlar 90-yillarning boshlarida qo'yilgan. Amerika kompaniyasi muhandislari bir qator operatsiyalarni bajarishda shaxsiy kompyuter protsessorlari resurslaridan to'liq foydalanilmayotganini payqashdi.

Intel mutaxassislarining hisob-kitoblariga ko'ra, foydalanuvchi shaxsiy kompyuterda ishlaganda, mikrosxema sezilarli vaqt oralig'ida faol foydalanilmaydi - deyarli ko'pincha - taxminan 30%. Mutaxassislarning bu ko'rsatkich bo'yicha fikrlari juda boshqacha - kimdir buni aniq baholanmagan deb hisoblaydi, boshqalari amerikalik ishlab chiquvchilarning tezislari bilan to'liq rozi.

Biroq, IT-mutaxassislarining ko'pchiligi protsessor quvvatining 70 foizi bo'lmasa ham, ularning juda muhim miqdori bo'sh turganiga rozi bo'lishdi.

Ishlab chiquvchilarning asosiy vazifasi

Intel ushbu holatni asosiy kompyuter chiplari samaradorligini ta'minlashga sifat jihatidan yangi yondashuv orqali tuzatishga qaror qildi. Protsessorlar imkoniyatlaridan faolroq foydalanishga yordam beradigan texnologiya yaratish taklif etildi. 1996 yilda Intel mutaxassislari o'zining amaliy rivojlanishini boshladilar.

Amerika korporatsiyasining kontseptsiyasiga ko'ra, bitta dasturdan ma'lumotlarni qayta ishlaydigan protsessor bo'sh turgan resurslarni boshqa dastur bilan ishlashga yo'naltirishi mumkin (yoki joriy dasturning tarkibiy qismi, lekin boshqa tuzilishga ega va qo'shimcha resurslardan foydalanishni talab qiladi). Tegishli algoritm, shuningdek, kompyuterning boshqa apparat qismlari - RAM, chipset va dasturlar bilan samarali o'zaro ta'sir qilishni nazarda tutgan.

Intel muammoni hal qilishga muvaffaq bo'ldi. Dastlab, texnologiya Willamette deb nomlangan. 1999 yilda u ba'zi protsessorlar arxitekturasiga kiritildi va uni sinovdan o'tkazish boshlandi. Tez orada texnologiya o'zining zamonaviy nomini oldi - Hyper-Threading. Bu nima ekanligini aytish qiyin - oddiy rebrending yoki platformaga fundamental tuzatishlar. Texnologiyaning omma oldida paydo bo'lishi va uni Intel protsessorlarining turli modellarida amalga oshirishga oid qo'shimcha faktlarni biz allaqachon bilamiz. Bugungi kunda keng tarqalgan rivojlanish nomlari orasida Hyper-Threading Technology mavjud.

Texnologiya bilan moslik jihatlari

Hyper-Threading texnologiyasini qo'llab-quvvatlash operatsion tizimlarda qanchalik yaxshi tatbiq etilgan? Shuni ta'kidlash mumkinki, agar biz zamonaviy haqida gapiradigan bo'lsak Windows versiyalari, keyin foydalanuvchi Intel Hyper-Threading Technology afzalliklaridan to'liq foydalanishi uchun hech qanday muammo bo'lmaydi. Albatta, I/U tizimining texnologiyani qo'llab-quvvatlashi ham juda muhim - biz bu haqda yuqorida gaplashdik.

Dasturiy ta'minot va apparat omillari

OTning eski versiyalari - Windows 98, NT va nisbatan eskirgan XP-ga kelsak, Hyper-Threading bilan muvofiqligi uchun zaruriy shart ACPI-ni qo'llab-quvvatlashdir. Agar u OTda amalga oshirilmagan bo'lsa, unda mos keladigan modullar tomonidan yaratilgan barcha hisoblash oqimlari kompyuter tomonidan tan olinmaydi. E'tibor bering, Windows XP umuman olganda ko'rib chiqilayotgan texnologiyaning afzalliklaridan foydalanishni ta'minlaydi. Shuningdek, ko'p tarmoqli algoritmlarni shaxsiy kompyuter egasi ishlatadigan ilovalarda qo'llash juda ma'qul.

Ba'zan sizga shaxsiy kompyuter kerak bo'lishi mumkin - agar siz unga dastlab o'rnatilgan va texnologiyaga mos kelmaydigan protsessorlar o'rniga Hyper-Threading-ni qo'llab-quvvatlaydigan protsessorlarni o'rnatsangiz. Biroq, operatsion tizimlarda bo'lgani kabi, agar foydalanuvchida zamonaviy shaxsiy kompyuter yoki hech bo'lmaganda birinchi Hyper Threading protsessorlariga mos keladigan apparat komponentlari bo'lsa, yuqorida ta'kidlaganimizdek, Core liniyasida amalga oshirilgan va moslashtirilgan bo'lsa, hech qanday muammo bo'lmaydi. unga anakartlardagi chipsetlar chipning mos keladigan funktsiyalarini to'liq qo'llab-quvvatlaydi.

Tezlashtirish mezonlari

Agar apparat va dasturiy ta'minot komponentlari darajasidagi kompyuter Hyper-Threading bilan mos kelmasa, bu texnologiya, nazariy jihatdan, hatto uni sekinlashtirishi mumkin. Ushbu holat ba'zi IT-mutaxassislarini Intel tomonidan yechimning istiqboliga shubha qilishiga olib keldi. Ular bu texnologik sakrash emas, balki arxitekturasi tufayli shaxsiy kompyuterni sezilarli darajada tezlashtirishga qodir bo'lmagan Hyper Threading kontseptsiyasi asosidagi marketing harakati deb qaror qilishdi. Ammo tanqidchilarning shubhalari Intel muhandislari tomonidan tezda yo'q qilindi.

Shunday qilib, texnologiyadan muvaffaqiyatli foydalanish uchun asosiy shartlar:

I/U tizimi tomonidan Hyper-Threading-ni qo'llab-quvvatlash;

Anakartning tegishli turdagi protsessor bilan mosligi;

Operatsion tizim va unda ishlaydigan maxsus dastur tomonidan texnologiyani qo'llab-quvvatlash.

Agar dastlabki ikki nuqtada biron bir muammo bo'lmasa, Hyper-Threading bilan dasturlarning mosligi nuqtai nazaridan, ba'zi bir qoplamalar hali ham bo'lishi mumkin. Ammo shuni ta'kidlash mumkinki, agar dastur, masalan, ikki yadroli protsessorlar bilan ishlashni qo'llab-quvvatlasa, u Intel texnologiyasiga mos keladi, deyarli kafolatlanadi.

Hech bo'lmaganda, agar protsessorda Intel Hyper Threading modullari ishlayotgan bo'lsa, ikki yadroli mikrosxemalarga moslashtirilgan dasturlarning samaradorligini taxminan 15-18% ga oshirishni tasdiqlovchi tadqiqotlar mavjud. Biz ularni qanday o'chirishni allaqachon bilamiz (agar foydalanuvchi texnologiyadan foydalanishning maqsadga muvofiqligiga shubha tug'dirsa). Ammo ularning paydo bo'lishining aniq sabablari juda kam.

Hyper-Threadingning amaliy foydasi

Ushbu texnologiya Intelga sezilarli ta'sir ko'rsatdimi? Bu masala bo'yicha turli xil fikrlar mavjud. Ammo ko'pchilik Hyper-Threading texnologiyasi shu qadar mashhur bo'lib ketganligini ta'kidlashadiki, bu yechim ko'plab server tizimlari ishlab chiqaruvchilari uchun ajralmas bo'lib qoldi va u oddiy shaxsiy kompyuter foydalanuvchilari tomonidan ham ijobiy qabul qilindi.

Uskuna ma'lumotlarini qayta ishlash

Texnologiyaning asosiy afzalligi shundaki, u apparat formatida amalga oshiriladi. Ya'ni, hisob-kitoblarning asosiy qismi mikrosxemaning asosiy yadrosi darajasiga uzatiladigan dasturiy ta'minot algoritmlari shaklida emas, balki maxsus modullarda protsessor ichida amalga oshiriladi - bu umumiy ishlashning pasayishini anglatadi. Kompyuter. Umuman olganda, IT-mutaxassislarining fikriga ko'ra, Intel muhandislari texnologiyani ishlab chiqish boshida aniqlagan muammoni - protsessorning yanada samarali ishlashini hal qilishga muvaffaq bo'lishdi. Darhaqiqat, testlar shuni ko'rsatdiki, foydalanuvchi uchun amaliy ahamiyatga ega bo'lgan ko'plab vazifalarni hal qilishda Hyper-Threading-dan foydalanish ishni sezilarli darajada tezlashtirishga imkon berdi.

Shuni ta'kidlash mumkinki, ko'rib chiqilayotgan texnologiyani qo'llab-quvvatlash modullari bilan jihozlangan 4 ta mikrosxemalar birinchi modifikatsiyalarga qaraganda ancha samarali ishladi. Bu, asosan, shaxsiy kompyuterning haqiqiy ko'p vazifali rejimda ishlash qobiliyatida namoyon bo'ldi - bir necha xil turdagi Windows ilovalari, va ulardan biri tomonidan tizim resurslarining ko'payishi tufayli boshqalarining tezligi pasayishi juda istalmagan.

Turli vazifalarni bir vaqtda hal qilish

Shunday qilib, Hyper-Threading-ni qo'llab-quvvatlaydigan protsessorlar, masalan, brauzerni ishga tushirish, musiqa tinglash va hujjatlar bilan ishlash uchun unga mos kelmaydigan mikrosxemalarga qaraganda yaxshiroq moslashtirilgan. Albatta, bu barcha afzalliklar foydalanuvchi tomonidan amalda faqat shaxsiy kompyuterning dasturiy va apparat komponentlari ushbu ish rejimiga yetarli darajada mos kelsagina seziladi.

Shunga o'xshash o'zgarishlar

Hyper-Threading ko'p tarmoqli hisoblash orqali shaxsiy kompyuter ish faoliyatini yaxshilash uchun mo'ljallangan yagona texnologiya emas. Uning analoglari bor.

Masalan, IBM tomonidan chiqarilgan POWER5 protsessorlari ham ko'p ish zarralarini qo'llab-quvvatlaydi. Ya'ni, har biri (jami 2 ta mos keladigan element o'rnatilgan) 2 ta ip ichida vazifalarni bajarishi mumkin. Shunday qilib, mikrosxema bir vaqtning o'zida 4 ta hisob oqimini qayta ishlaydi.

AMD shuningdek, ko'p qirrali tushunchalar sohasida ajoyib ishlarga ega. Shunday qilib, ma'lumki, Buldozer arxitekturasi Hyper-Threading-ga o'xshash algoritmlardan foydalanadi. AMD yechimining o'ziga xos xususiyati shundaki, har bir ip alohida protsessor bloklarini qayta ishlaydi. Ikkinchi daraja umumiy bo'lib qolganda. Shunga o'xshash tushunchalar noutbuklar va kichik shaxsiy kompyuterlar uchun moslashtirilgan AMD tomonidan ishlab chiqilgan Bobcat arxitekturasida amalga oshiriladi.

Albatta, AMD, IBM va Intel kontseptsiyasining bevosita analoglari juda shartli ko'rib chiqilishi mumkin. Shuningdek, umuman protsessorlar arxitekturasini loyihalashtirishga yondashuvlar. Ammo tegishli texnologiyalarda amalga oshirilgan printsiplarni juda o'xshash deb hisoblash mumkin va ishlab chiquvchilar tomonidan mikrosxemalarning ishlash samaradorligini oshirish bo'yicha qo'yilgan maqsadlar bir xil bo'lmasa ham, mohiyatan juda yaqin.

Bu Intelning eng qiziqarli texnologiyasiga oid asosiy faktlar. Bu nima, Hyper-Threading-ni qanday yoqish yoki aksincha, uni o'chirish, biz aniqladik. Gap, ehtimol, uning afzalliklaridan amaliy foydalanishda bo'lib, uni apparat va dasturiy ta'minot komponentlarida kompyuter texnologiyani qo'llab-quvvatlashiga ishonch hosil qilish orqali ishlatish mumkin.

Hyper Threading (giper iplik, "giper iplik", hyper threading - rus.) - kompaniya tomonidan ishlab chiqilgan texnologiya Intel, bu protsessor yadrosiga bittadan (odatda ikkitadan) ko'proq ma'lumot oqimini bajarishga imkon beradi. An'anaviy protsessor ko'pgina vazifalarda dan ortiq foydalanmasligi aniqlangan 70% Barcha hisoblash quvvatlaridan ba'zi bir hisoblash birliklari ishlamay qolganda, ularni boshqa tarmoq bilan ishlashga imkon beradigan texnologiyadan foydalanishga qaror qilindi. Bu yadroning ishlashini oshirish imkonini beradi 10 dan 80% gacha vazifaga qarab.

Hyper-Threading qanday ishlashini ko'ring .

Aytaylik, protsessor oddiy hisob-kitoblarni amalga oshiradi va shu bilan birga ko'rsatmalar bloki ishlamaydi va SIMD kengaytmalar.

Adreslash moduli buni aniqlaydi va keyingi hisoblash uchun ma'lumotlarni u erga yuboradi. Agar ma'lumotlar aniq bo'lsa, unda bu bloklar ularni sekinroq bajaradi, ammo ma'lumotlar bo'sh qolmaydi. Yoki ular tegishli blok tomonidan keyingi tez ishlov berish uchun ularni oldindan qayta ishlaydilar. Bu qo'shimcha samaradorlikni beradi.

Tabiiyki, virtual ip to'liq huquqli yadroga etib bormaydi, lekin bu sizga deyarli erishishga imkon beradi 100% hisoblash quvvatining samaradorligi, deyarli butun protsessorni ish bilan yuklash, uning bo'sh turishiga yo'l qo'ymaslik. Bularning barchasi bilan, HT texnologiyasini amalga oshirish faqat taxminan. 5% qo'shimcha o'lim maydoni va ishlash ba'zan qo'shilishi mumkin 50% . Ushbu qo'shimcha hudud registrlarning qo'shimcha bloklarini va tarmoqni bashorat qilishni o'z ichiga oladi, ular ma'lum bir vaqtda hisoblash quvvatini qayerda ishlatish mumkinligini hisoblab chiqadi va u yerga qo'shimcha manzil blokidan ma'lumotlarni yuboradi.

Birinchi marta texnologiya protsessorlarda paydo bo'ldi Pentium 4, lekin unumdorlikda katta o'sish kuzatilmadi, chunki protsessorning o'zi yuqori hisoblash kuchiga ega emas edi. O'sish eng yaxshi holatda edi 15-20% , va ko'p vazifalarda protsessor bo'lmaganga qaraganda ancha sekin ishladi HT.

Sekinlashish texnologiya tufayli protsessor Hyper Threading, sodir bo'ladi, agar:

  • Kesh yetarli emas hamma uchun va u protsessorni sekinlashtirib, davriy ravishda qayta ishga tushadi.
  • Ma'lumotni filial bashoratchisi to'g'ri qayta ishlay olmaydi. Asosan tufayli yuzaga keladi optimallashtirishning etishmasligi maxsus dasturiy ta'minot yoki operatsion tizim tomonidan qo'llab-quvvatlash uchun.
  • Bundan tashqari, tufayli yuzaga kelishi mumkin ma'lumotlarga bog'liqlik, masalan, birinchi ip ikkinchisidan darhol ma'lumotni talab qilganda, lekin ular hali tayyor emas yoki boshqa ip uchun navbatda kutishadi. Yoki siklik ma'lumotlarga tezkor ishlov berish uchun ma'lum bloklar kerak bo'ladi va ular boshqa ma'lumotlar bilan yuklanadi. Ma'lumotlarga bog'liqlikning ko'plab o'zgarishlari bo'lishi mumkin.
  • Agar yadro allaqachon yuklangan bo'lsa va "etarlicha aqlli bo'lmagan" tarmoqni bashorat qilish moduli hali ham protsessorni sekinlashtiradigan ma'lumotlarni yuborsa (bu uchun tegishli). Pentium 4).

Keyin Pentium 4, Intel texnologiyasidan faqatgina foydalanishni boshladi Core i7 birinchi avlod, seriyani o'tkazib yuborish 2 .

Protsessorlarning hisoblash quvvati hatto optimallashtirilmagan ilovalar uchun ham ko'p zarar etkazmasdan, gipertreadingni to'liq amalga oshirish uchun etarli bo'ldi. Keyinchalik, Hyper Threading O'rta sinf va hatto byudjetli va portativ protsessorlarda paydo bo'ldi. Barcha seriyalarda qo'llaniladi yadro i (i3; i5; i7) va yana mobil protsessorlar atom(arzimaydi). Qizig'i shundaki, ikki yadroli protsessorlar bilan HT, foydalanishdan to'rt yadrolidan ko'ra ko'proq unumdorlikka ega bo'ling Hyper Threading, turish 75% to'liq to'rtta yadroviy.

HyperThreading qayerda foydali?

U professional, grafik, analitik, matematik va ilmiy dasturlar, video va audio muharrirlar, arxivatorlar bilan birgalikda foydalanish uchun foydali bo'ladi ( Photoshop, Corel Draw, Maya, 3D's Max, WinRar, Sony Vegas &va boshqalar). Ko'p hisob-kitoblarni ishlatadigan barcha dasturlar, HT albatta foydali bo'ladi. Yaxshiyamki, ichida 90% hollarda, bunday dasturlar undan foydalanish uchun yaxshi optimallashtirilgan.

hyperthreading server tizimlari uchun ajralmas. Aslida, bu joy uchun u qisman ishlab chiqilgan. Rahmat HT, ko'p sonli vazifalar mavjud bo'lganda protsessorning daromadliligini sezilarli darajada oshirishingiz mumkin. Har bir ip yarmiga tushiriladi, bu ma'lumotlarni manzillash va filiallarni bashorat qilishga foydali ta'sir ko'rsatadi.

Ko'pchilik Kompyuter o'yinlari , mavjudligi bilan salbiy bog'liqdir Hyper Threading, bu soniyada kadrlar sonini kamaytiradi. Bu optimallashtirishning yo'qligi bilan bog'liq Hyper Threading o'yin tomondan. Operatsion tizim tomonidan bitta optimallashtirish har doim ham etarli emas, ayniqsa noodatiy, heterojen va murakkab ma'lumotlar bilan ishlashda.

Qo'llab-quvvatlaydigan anakartlarda HT, siz har doim hyperthreading texnologiyasini o'chirib qo'yishingiz mumkin.

2015 yil 20 yanvar, soat 19:43

Hyper-Threading haqida ko'proq

  • IT tizimlarini sinovdan o'tkazish,
  • Dasturlash

Hyper-threading texnologiyasi kontekstida xotira ishlashini baholash zarur bo'lgan vaqt bor edi. Biz uning ta'siri har doim ham ijobiy emas degan xulosaga keldik. Bo'sh vaqt kvanti paydo bo'lganda, tadqiqotni davom ettirish va davom etayotgan jarayonlarni mashina tsikllari va bitlarining aniqligi bilan ko'rib chiqish istagi paydo bo'ldi. dasturiy ta'minot o'z rivojlanishi.

Tadqiqot platformasi

Tajriba ob'ekti - ASUS noutbuki Intel Core i7-4700HQ protsessorli N750JK. Soat tezligi 2,4 gigagertsli, Intel Turbo Boost rejimi orqali 3,4 gigagertsgacha oshiriladi. 16 gigabayt o'rnatilgan tasodifiy kirish xotirasi Ikki kanalli rejimda ishlaydigan DDR3-1600 (PC3-12800). Operatsion tizim - Microsoft Windows 8.1 64 bit.

Fig.1 O'rganilayotgan platformaning konfiguratsiyasi.

O'rganilayotgan platformaning protsessorida 4 ta yadro mavjud bo'lib, ular Hyper-Threading texnologiyasi yoqilganda 8 ta oqim yoki mantiqiy protsessorlar uchun apparat ta'minotini ta'minlaydi. Platforma mikrodasturi ushbu ma'lumotni MADT (Multiple APIC Description Table) ACPI jadvali orqali operatsion tizimga uzatadi. Platformada faqat bitta RAM kontrolleri mavjud bo'lganligi sababli, protsessor yadrolarining xotira kontrollerlariga yaqinligini e'lon qiladigan SRAT (tizim resurslariga yaqinlik jadvali) mavjud emas. Shubhasiz, ko'rib chiqilayotgan noutbuk NUMA platformasi emas, balki operatsion tizim, birlashtirish maqsadida, NUMA tugunlari = 1 qatorida ko'rsatilgandek, uni bitta domenga ega NUMA tizimi deb hisoblaydi. Bizning tajribalarimiz uchun asosiy fakt shundaki, birinchi darajali ma'lumotlar keshi 32 kilobayt hajmga ega. to'rt yadroning har biri. Xuddi shu yadroga ega ikkita mantiqiy protsessor L1 va L2 keshlarini baham ko'radi.

Tekshirilgan operatsiya

Biz ma'lumotlar blokini o'qish tezligining uning hajmiga bog'liqligini tekshiramiz. Buning uchun biz eng samarali usulni tanlaymiz, ya'ni VMOVAPD AVX ko'rsatmasi yordamida 256 bitli operandlarni o'qish. Grafiklarda X o'qi blok hajmini, Y o'qi esa o'qish tezligini ko'rsatadi. Birinchi darajadagi kesh hajmiga to'g'ri keladigan X nuqtasi yaqinida biz burilish nuqtasini ko'rishni kutamiz, chunki ishlov berilgan blok keshdan chiqqandan so'ng unumdorlik pasayishi kerak. Bizning testimizda, ko'p ish zarralari bo'lsa, 16 ta boshlangan ipning har biri alohida manzil diapazoni bilan ishlaydi. Ilova ichida Hyper-Threading texnologiyasini boshqarish uchun har bir ip har bir mantiqiy protsessor bir bitga mos keladigan niqobni o'rnatuvchi SetThreadAffinityMask API funksiyasidan foydalanadi. Bitning bitta qiymati ko'rsatilgan protsessordan ko'rsatilgan ip tomonidan foydalanishga imkon beradi, nol qiymati uni taqiqlaydi. O'rganilayotgan platformaning 8 ta mantiqiy protsessorlari uchun niqob 11111111b barcha protsessorlardan foydalanishga imkon beradi (Hyper-Threading yoqilgan), niqob 01010101b har bir yadroda bitta mantiqiy protsessordan foydalanishga imkon beradi (Hyper-Threading o'chirilgan).

Grafiklarda quyidagi qisqartmalar qo'llaniladi:

MBPS (sekundiga megabayt)sekundiga megabaytlarda o'qish tezligini bloklash;

CPI (ko'rsatma bo'yicha soatlar)har bir ko'rsatma uchun aylanishlar soni;

TSC (vaqt markasi hisoblagichi)protsessor sikli hisoblagichi.

Eslatma: Turbo Boost rejimida ishlayotganda TSC registrining soat tezligi protsessorning soat tezligiga mos kelmasligi mumkin. Natijalarni sharhlashda buni hisobga olish kerak.

Grafiklarning o'ng tomonida har bir dastur ipida bajariladigan maqsadli operatsiya siklining tanasini tashkil etuvchi ko'rsatmalarning o'n oltilik soni yoki ushbu kodning birinchi 128 bayti tasvirlangan.

Tajriba raqami 1. Bitta ip



2-rasm Bir mavzuda o'qish

Maksimal tezlik sekundiga 213563 megabayt. Burilish nuqtasi taxminan 32 kilobayt blok hajmida sodir bo'ladi.

Tajriba raqami 2. 4 ta protsessorda 16 ta ip, Hyper-Threading o'chirilgan



3-rasm O'n olti ipda o'qish. Amaldagi mantiqiy protsessorlar soni to'rtta

Hyper-threading o'chirilgan. Maksimal tezlik sekundiga 797598 megabayt. Burilish nuqtasi taxminan 32 kilobayt blok hajmida sodir bo'ladi. Kutilganidek, bitta ip bilan o'qish bilan solishtirganda, ishlaydigan yadrolar soni bo'yicha tezlik taxminan 4 baravar oshdi.

Tajriba raqami 3. 8 ta protsessorda 16 ta ip, Hyper-Threading yoqilgan



4-rasm O'n olti ipda o'qish. Amaldagi mantiqiy protsessorlar soni sakkizta

Hyper-threading yoqilgan. Hyper-Threading qo'shilishi natijasida soniyasiga 800722 megabayt maksimal tezlik deyarli oshmadi. Katta minus shundaki, burilish nuqtasi taxminan 16 kilobayt blok hajmida sodir bo'ladi. Hyper-Threading-ni yoqish maksimal tezlikni biroz oshirdi, ammo hozir tezlikning pasayishi blok hajmining yarmida - taxminan 16 kilobaytda sodir bo'ladi, shuning uchun o'rtacha tezlik sezilarli darajada kamaydi. Buning ajablanarli joyi yo'q, har bir yadro o'zining L1 keshiga ega, ayni paytda bir yadrodagi mantiqiy protsessorlar uni baham ko'radi.

xulosalar

Tekshirilayotgan operatsiya ko'p yadroli protsessorda juda yaxshi miqyosda. Sabablari shundaki, yadrolarning har biri o'zining birinchi va ikkinchi darajali kesh xotirasini o'z ichiga oladi, maqsadli blokning o'lchami kesh xotirasi hajmi bilan taqqoslanadi va har bir ip o'z manzillari diapazoni bilan ishlaydi. Akademik maqsadlarda biz haqiqiy ilovalar odatda ideal optimallashtirishdan uzoq ekanligini tushunib, sintetik testda bunday sharoitlarni yaratdik. Ammo Hyper-Threading-ning kiritilishi, hatto bunday sharoitlarda ham, salbiy ta'sir ko'rsatdi, eng yuqori tezlikning biroz oshishi bilan bloklarni qayta ishlash tezligida sezilarli yo'qotish bor, ularning o'lchamlari 16 dan 32 gacha. kilobayt.

Biz bitta protsessorli Xeon tizimlaridan foydalanish mantiqiy emasligini yozdik, chunki yuqori narxda ularning ishlashi bir xil chastotali Pentium 4 bilan bir xil bo'ladi. Endi, yaqinroq tekshirilgandan so'ng, bu bayonot biroz o'zgartirilishi kerak bo'ladi. Prestonia yadrosi bilan Intel Xeon-da amalga oshirilgan Hyper-Threading texnologiyasi haqiqatan ham ishlaydi va sezilarli effekt beradi. Garchi undan foydalanishda ko'plab savollar mavjud bo'lsa ham ...

Ishlash ko'rsating

"Tezroq, hatto tezroq ...". Ishlash uchun poyga yillar davomida davom etmoqda va ba'zida kompyuter komponentlaridan qaysi biri tezroq tezlashayotganini aytish qiyin. Buning uchun tobora ko'proq yangi usullar ixtiro qilinmoqda va ko'chkiga o'xshash jarayonga qanchalik malakali mehnat va yuqori sifatli miyalar sarflanmoqda.

Ishlashning doimiy o'sishi, albatta, kerak. Hech bo'lmaganda, bu foydali biznes va foydalanuvchilarni kechagi "juda yaxshi ishlaydigan CPU" ni ertangi "yana super..." ga oshirishga undashning har doim yaxshi usuli bor. Masalan, sinxron nutqni aniqlash va boshqa tilga sinxron tarjima qilish - bu hammaning orzusi emasmi? Yoki g'ayrioddiy realistik deyarli "kino" sifatli o'yinlar (e'tiborni to'liq o'ziga singdiruvchi va ba'zan psixikada jiddiy o'zgarishlarga olib keladi) - bu ko'plab yosh va keksa geymerlarning xohishi emasmi?

Ammo bu holatda marketing jihatlarini qoldirib, texnik jihatlarga e'tibor qarataylik. Bundan tashqari, hamma narsa unchalik ma'yus emas: shoshilinch vazifalar (server ilovalari, ilmiy hisob-kitoblar, modellashtirish va boshqalar), bu erda hamma narsa ko'proq. yuqori ishlash, xususan, markaziy ishlov berish birliklari, albatta, zarur.

Xo'sh, ularning samaradorligini oshirish yo'llari qanday?

Soatni kuchaytirish. Keyinchalik "yuyultirish" mumkin texnologik jarayon va chastotani oshiring. Lekin, siz bilganingizdek, bu oson emas va issiqlik tarqalishi bilan bog'liq muammolar kabi har qanday yon ta'sirga ega.

Protsessor resurslarini ko'paytirish- masalan, kesh hajmini oshirish, yangi bloklarni qo'shish (Ijro birliklari). Bularning barchasi tranzistorlar sonining ko'payishiga, protsessorning murakkabligiga, kristall maydonining oshishiga va natijada narxning oshishiga olib keladi.

Bundan tashqari, avvalgi ikkita usul, qoida tariqasida, unumdorlikning chiziqli o'sishini ta'minlamaydi. Bu Pentium 4 misolida yaxshi ma'lum: tarmoqni bashorat qilishdagi xatolar va uzilishlar uzoq quvur liniyasining qayta tiklanishiga olib keladi, bu umumiy ishlashga katta ta'sir qiladi.

ko'p ishlov berish. Bir nechta protsessorlarni o'rnatish va ular o'rtasida ishni taqsimlash ko'pincha juda samarali. Ammo bu yondashuv unchalik arzon emas - har bir qo'shimcha protsessor tizimning narxini oshiradi va ikkilamchi anakart odatdagidan ancha qimmatroq (to'rt yoki undan ortiq protsessorni qo'llab-quvvatlaydigan anakartlarni eslatib o'tmaslik kerak). Bundan tashqari, barcha ilovalar xarajatlarni oqlash uchun ko'p ishlov berishdan foyda ko'rmaydi.

"Sof" ko'p ishlov berishdan tashqari, ilovalarning bajarilishini tezlashtirishga imkon beruvchi bir nechta "oraliq" variantlar mavjud:

Chiplarni ko'p ishlov berish (CMP)- ikkita protsessor yadrosi umumiy yoki alohida keshdan foydalangan holda jismonan bir chipda joylashgan. Tabiiyki, kristallning o'lchami juda katta bo'lib chiqadi va bu narxga ta'sir qilishi mumkin emas. E'tibor bering, ushbu "ikki" protsessorlarning bir nechtasi ko'p protsessorli tizimda ham ishlashi mumkin.

Time Slice Multithreading. Protsessor belgilangan vaqt oralig'ida dastur iplari o'rtasida almashinadi. Qo'shimcha xarajatlar ba'zan juda katta bo'lishi mumkin, ayniqsa jarayon kutayotgan bo'lsa.

Hodisalarni yoqish. Uzoq pauzalar sodir bo'lganda vazifalarni almashtirish, masalan, "keshni o'tkazib yuborish" (keshni o'tkazib yuborish), ularning ko'p qismi server ilovalari uchun odatiy hisoblanadi. Bunday holda, nisbatan sekin xotiradan keshga ma'lumotlarni yuklashni kutayotgan jarayon to'xtatiladi va boshqa jarayonlar uchun protsessor resurslarini bo'shatadi. Biroq, Time-Slice Multithreading kabi, Switch-on-Event Multithreading, har doim ham protsessor resurslaridan optimal foydalanishga erisha olmaydi, xususan, tarmoqlarni bashorat qilishdagi xatolar, ko'rsatmalarga bog'liqlik va hokazolar tufayli.

Bir vaqtning o'zida ko'p oqim. Bunday holda, dastur iplari bir xil protsessorda "bir vaqtning o'zida", ya'ni ular o'rtasida almashmasdan ishlaydi. CPU resurslari dinamik ravishda taqsimlanadi, "agar siz undan foydalanmasangiz, uni boshqa birovga bering" tamoyili bo'yicha. Aynan shu yondashuv asosida yotadi Intel texnologiyalari Hyper-Threading, endi biz unga murojaat qilamiz.

Hyper-Threading qanday ishlaydi

Ma'lumki, hozirgi "hisoblash paradigmasi" o'z ichiga oladi ko'p bosqichli hisoblash. Bu nafaqat bunday kontseptsiya dastlab mavjud bo'lgan serverlarga, balki ish stantsiyalari va ish stoli tizimlariga ham tegishli. Mavzular bir xil yoki turli ilovalarga tegishli bo'lishi mumkin, lekin deyarli har doim bir nechta faol iplar mavjud (buni ko'rish uchun Windows 2000/XP da Vazifa menejerini ochish va iplar soni ko'rsatkichini yoqish kifoya). Shu bilan birga, an'anaviy protsessor bir vaqtning o'zida faqat iplardan birini bajarishi mumkin va ular o'rtasida doimiy ravishda almashishga majbur bo'ladi.

Birinchi marta Hyper-Threading texnologiyasi u "ishlayotgan" Intel Xeon MP (Foster MP) protsessorida amalga oshirildi. Eslatib o'tamiz, IDF Spring 2002 da rasman taqdim etilgan Xeon MP Pentium 4 Willamette yadrosidan foydalanadi, 256 KB L2 kesh va 512 KB/1 MB L3 keshni o'z ichiga oladi va 4 protsessorli konfiguratsiyalarni qo'llab-quvvatlaydi. Hyper-Threading qo'llab-quvvatlashi ish stantsiyalari uchun Intel Xeon protsessorida (Prestonia yadrosi, 512 KB L2 kesh) ham mavjud bo'lib, u bozorga Xeon MP-dan biroz oldinroq kirgan. Bizning o'quvchilarimiz Intel Xeon-dagi ikkilamchi protsessorli konfiguratsiyalar bilan allaqachon tanish, shuning uchun biz ushbu protsessorlar yordamida Hyper-Threading imkoniyatlarini misol sifatida ko'rib chiqamiz - nazariy va amaliy jihatdan. Qanday bo'lmasin, "oddiy" Xeon 4 protsessorli tizimlarda Xeon MP-ga qaraganda oddiyroq va hazm bo'ladi...

Hyper-Threadingning ishlash printsipi shundan iboratki, har qanday vaqtda dastur kodini bajarishda protsessor resurslarining faqat bir qismi ishlatiladi. Ishlatilmagan resurslar ham ish bilan yuklanishi mumkin - masalan, parallel bajarish uchun yana bitta dastur (yoki bir xil dasturning boshqa ipi) ishlatilishi mumkin. Bitta jismoniy Intel Xeon protsessorida ikkita mantiqiy protsessor (LP - Logical Processor) hosil bo'lib, ular markaziy protsessorning hisoblash resurslarini taqsimlaydi. Operatsion tizim va ilovalar aynan ikkita protsessorni "ko'radi" va ular o'rtasida ishni to'liq huquqli ikki protsessorli tizimda bo'lgani kabi taqsimlashi mumkin.

Hyper-Threading-ni amalga oshirishning maqsadlaridan biri oddiy protsessor bilan bir xil tezlikda faqat bitta faol ipning ishlashiga ruxsat berishdir. Buning uchun protsessor ikkita asosiy ish rejimiga ega: bir vazifali (ST) va ko'p vazifali (MT). ST rejimida faqat bitta mantiqiy protsessor faol bo'lib, mavjud resurslardan bo'linmasdan foydalanadi (ST0 va ST1 rejimlari); boshqa LP HALT buyrug'i bilan to'xtatiladi. Ikkinchi dastur chizig'i paydo bo'lganda, bo'sh turgan mantiqiy protsessor faollashadi (uzilish orqali) va jismoniy protsessor MT rejimiga o'tkaziladi. Foydalanilmayotgan LPlarni HALT buyrug'i bilan to'xtatish operatsion tizimning javobgarligi bo'lib, u oxir-oqibat Hyper-Threadingsiz holatda bo'lgani kabi bitta ipning tez bajarilishi uchun javobgardir.

Ikkita LPning har biri uchun Arxitektura holati (AS) deb ataladigan narsa saqlanadi, u har xil turdagi registrlarning holatini o'z ichiga oladi - umumiy maqsadli, nazorat, APIC va xizmat. Har bir LP o'zining APIC (uzilish nazoratchisi) va registrlar to'plamiga ega bo'lib, ular bilan to'g'ri ishlash uchun Register taxalluslar jadvali (RAT) tushunchasi kiritilgan bo'lib, u sakkizta IA-32 umumiy maqsadli registrlar va 128 ta o'rtasidagi yozishmalarni kuzatadi. jismoniy protsessor registrlari (har bir LP uchun bitta RAT).

Ikki ipni ishga tushirganda, keyingi ko'rsatmalar ko'rsatkichlarining ikkita mos keladigan to'plami qo'llab-quvvatlanadi. Ko'rsatmalarning aksariyati Trace Cache (TC) dan olingan bo'lib, ular dekodlangan shaklda saqlanadi va ikkita faol LP har soatda o'z navbatida TCga kirishadi. Shu bilan birga, faqat bitta LP faol bo'lganda, u soatlarga aralashmasdan TCga eksklyuziv kirish huquqiga ega bo'ladi. Xuddi shunday, Microcode ROM ga kirish sodir bo'ladi. Yo'riqnoma keshida zarur ko'rsatmalar mavjud bo'lmaganda faollashtirilgan ITLB bloklari (Instruction Translation Look-side Buffer) ko'paytiriladi va har biri o'z ish zarrachasi uchun ko'rsatmalar beradi. IA-32 Instruction Decode yo'riqnomasini dekodlash bloki umumiy bo'lib, agar ikkala oqim uchun ko'rsatmalarni dekodlash zarur bo'lsa, u ularga birma-bir xizmat qiladi (yana har bir tsikl). Uop Queue va Allocator bloklari har bir LP uchun ajratilgan elementlarning yarmi bilan ikkiga bo'lingan. 5 bo'lakdan iborat rejalashtiruvchilar LP0 / LP1 ga tegishli bo'lishiga qaramay, dekodlangan buyruqlar (Uops) navbatlarini qayta ishlaydilar va kerakli Ijro birliklari tomonidan bajarilishi kerak bo'lgan to'g'ridan-to'g'ri buyruqlar - birinchisini bajarishga tayyorligi va ikkinchisining mavjudligiga qarab. Barcha darajadagi keshlar (Xeon uchun L1/L2, shuningdek Xeon MP uchun L3) ikkita LP o'rtasida to'liq taqsimlanadi, biroq ma'lumotlar yaxlitligini ta'minlash uchun DTLB (Data Translation Look-side Buffer) dagi yozuvlar diskriptorlar bilan ta'minlanadi. mantiqiy protsessor identifikatorlari shakli.

Shunday qilib, ikkala mantiqiy protsessorning ko'rsatmalari bir vaqtning o'zida to'rtta sinfga bo'lingan bitta jismoniy protsessorning resurslarida bajarilishi mumkin:

  • dublikatlangan (takrorlangan);
  • to'liq baham ko'rilgan (To'liq baham ko'rilgan);
  • elementlar deskriptorlari bilan (Entry Tagged);
  • ST0/ST1 yoki MT ning ishlash rejimiga qarab dinamik ravishda bo'lingan (Bo'lingan).

Biroq, ko'p protsessorli tizimlarda tezlashtirilgan ilovalarning aksariyati Hyper-Threading yoqilgan protsessorda ham hech qanday o'zgartirishlarsiz tezlashtirilishi mumkin. Ammo muammolar ham mavjud: masalan, agar bitta jarayon kutish tsiklida bo'lsa, u jismoniy protsessorning barcha resurslarini egallab, ikkinchi LP ning ishlashiga to'sqinlik qilishi mumkin. Shunday qilib, Hyper-Threading-dan foydalanganda ishlash ba'zan pasayishi mumkin (20% gacha). Buning oldini olish uchun Intel bo'sh kutish davrlari o'rniga PAUSE yo'riqnomasidan foydalanishni tavsiya qiladi (IA-32 da Pentium 4 dan boshlab kiritilgan). Kompilyatsiya paytida kodni avtomatik va yarim avtomatik optimallashtirish bo'yicha ham jiddiy ishlar olib borilmoqda - masalan, Intel OpenMP C ++ / Fortran Compilers () seriyasining kompilyatorlari bu borada sezilarli yutuqlarga erishdi.

Intelning so'zlariga ko'ra, Hyper-Threading-ni birinchi joriy etishning yana bir maqsadi tranzistorlar sonining o'sishini, o'lim maydonini va quvvat sarfini minimallashtirish va unumdorlikni sezilarli darajada oshirish edi. Ushbu majburiyatning birinchi qismi allaqachon bajarilgan: Xeon/Xeon MP ga Hyper-Threading qo'llab-quvvatlash qo'shilishi o'lim maydoni va quvvat sarfini 5% dan kamroqqa oshirdi. Ikkinchi qism (spektakl) bilan nima sodir bo'ldi, biz hali tekshirishimiz kerak.

Amaliy qism

Aniq sabablarga ko'ra, biz Hyper-Threading yoqilgan Xeon MP da 4 protsessorli server tizimlarini sinab ko'rmadik. Birinchidan, bu juda ko'p mehnat talab qiladi. Ikkinchidan, agar biz bunday jasoratga qaror qilsak, rasmiy e'lon qilinganidan keyin bir oy o'tmay, bu qimmatbaho uskunani olish mutlaqo haqiqiy emas. Shu sababli, ushbu protsessorlarning birinchi sinovlari o'tkazilgan ikkita Intel Xeon 2.2 GHz bilan bir xil tizim bilan cheklanishga qaror qilindi (maqolaning boshidagi havolaga qarang). Tizim asosiga qurilgan edi anakart Supermicro P4DC6+ ( Intel chipset i860), 512 MB RDRAM, GeForce3 chipidagi video karta (64 MB DDR, Detonator 21.85 drayverlari), qattiq disk g'arbiy raqamli WD300BB va 6X DVD-ROM; OT sifatida Windows 2000 Professional SP2 ishlatilgan.

Birinchidan, bir nechta umumiy taassurotlar. Ishga tushganda Prestonia yadrosi bilan bitta Xeon o'rnatilganda tizim BIOS ikkita protsessor mavjudligi haqida xabarni ko'rsatadi; agar ikkita protsessor o'rnatilgan bo'lsa, foydalanuvchi to'rtta protsessor haqida xabarni ko'radi. Operatsion tizim odatda "ikkala protsessorni" taniydi, lekin ikkita shart bajarilgan taqdirdagina.

Birinchidan, CMOS Setup-da, ikkinchisi BIOS versiyalari Supermicro P4DCxx platalari Hyper-Threadingni yoqish elementini taqdim etdi, ularsiz OT faqat jismoniy protsessor(lar)ni taniydi. Ikkinchidan, ACPI OS ga qo'shimcha mantiqiy protsessorlar mavjudligini aytish uchun ishlatiladi. Shuning uchun, Hyper-Threading-ni yoqish uchun CMOS-da ACPI opsiyasi yoqilgan bo'lishi kerak va ACPI-ni qo'llab-quvvatlaydigan HAL (hardware abstraction Layer) OTning o'zi uchun ham o'rnatilishi kerak. Yaxshiyamki, Windows 2000 da HAL ni standart kompyuterdan (yoki MPS Uni-/Multiprocessor PC) ACPI Uni-/Multiprocessor PC ga o'zgartirish oson - qurilma menejeridagi "kompyuter drayverini" o'zgartirish orqali. Shu bilan birga, Windows XP uchun ACPI HAL ga o'tishning yagona qonuniy yo'li mavjud o'rnatishning ustiga tizimni qayta o'rnatishdir.

Ammo hozir barcha tayyorgarlik ishlari olib borildi va bizning Windows 2000 Pro allaqachon ikki protsessorli tizimda ishlashiga qat'iy ishonadi (garchi aslida faqat bitta protsessor o'rnatilgan bo'lsa ham). Endi, odatdagidek, test maqsadlari haqida qaror qabul qilish vaqti keldi. Shunday qilib, biz xohlaymiz:

  • Hyper-Threadingning turli sinflardagi ilovalarning ishlashiga ta'sirini baholang.
  • Ushbu effektni ikkinchi protsessorni o'rnatish effekti bilan solishtiring.
  • Ikkinchi LP ishlamay qolganda faol mantiqiy protsessorga qanday "adolatli" resurslar berilganligini tekshiring.

Ishlashni baholash uchun biz o'quvchilarga allaqachon tanish bo'lgan ish stantsiyalari tizimlarini sinovdan o'tkazishda foydalanilgan bir qator ilovalarni oldik. Keling, oxiridan boshlaylik va mantiqiy protsessorlarning "tengligini" tekshiramiz. Hammasi juda oddiy: biz birinchi navbatda Hyper-Threading o'chirilgan bitta protsessorda testlarni o'tkazamiz, so'ngra Hyper-Threading yoqilgan holda va ikkita mantiqiy protsessordan faqat bittasi (Vazifa menejeri yordamida) yordamida jarayonni takrorlaymiz. Bu holatda bizni faqat nisbiy qiymatlar qiziqtirganligi sababli, barcha testlarning natijalari "ko'proq yaxshi" ko'rinishiga tushiriladi va normallashtiriladi (Hyper-Threadingsiz bitta protsessorli tizimning ko'rsatkichlari birlik sifatida olinadi).

Ko'rib turganingizdek, Intelning va'dalari bu erda amalga oshadi: faqat bitta faol oqim bilan ikkita LPning har birining ishlashi Hyper-Threadingsiz jismoniy protsessorning ishlashiga to'liq teng. Bo'sh ishlayotgan LP (LP0 va LP1) aslida to'xtatiladi va olingan natijalarga ko'ra umumiy resurslar to'liq faol LP dan foydalanishga o'tkaziladi.

Shuning uchun biz birinchi xulosani chiqaramiz: ikkita mantiqiy protsessor haqiqatda teng huquqlarga ega va Hyper-Threading-ni yoqish bitta ipning ishlashiga "to'sqinlik qilmaydi" (bu o'z-o'zidan yomon emas). Keling, ushbu inklyuziya "yordam beradimi" yoki yo'qligini bilib olaylik, agar shunday bo'lsa, qaerda va qanday?

ko'rsatish. 3D Studio MAX 4.26, Lightwave 7b va A|W Maya 4.0.1 3D-modellash paketlaridagi to‘rtta test natijalari o‘xshashligi tufayli bitta diagrammada birlashtirilgan.

Barcha to'rtta holatda (Lightwave uchun - ikki xil sahnada), Hyper-Threading o'chirilgan bitta protsessor mavjudligida protsessor yuki deyarli doimo 100% darajasida saqlanadi. Biroq, Hyper-Threading yoqilganda, sahnalarni hisoblash tezlashadi (natijada bizda protsessordan 100% dan ortiq foydalanish haqida hazil ham bor edi). Uchta testda biz Hyper-Threading-dan unumdorlikning 14--18% ga oshganini ko'rishimiz mumkin - bir tomondan, ikkinchi protsessor bilan solishtirganda unchalik katta emas, lekin boshqa tomondan, "bepul" effektni hisobga olgan holda, bu juda yaxshi. bu ta'sirdan. Lightwave bilan ikkita sinovdan birida samaradorlik deyarli nolga teng (ko'rinishidan, ushbu dasturning o'ziga xosligi g'alati narsalarga ta'sir qiladi). Ammo hech bir joyda salbiy natija yo'q, qolgan uchta holatda sezilarli o'sish quvonarli. Va shunga qaramay, parallel ko'rsatish jarayonlari shunga o'xshash ishlarni bajaradi va, albatta, jismoniy protsessor resurslaridan bir vaqtning o'zida eng yaxshi tarzda foydalana olmaydi.

Photoshop va MP3 kodlash. GOGO-no-coda 2.39c kodek SMP-ni qo'llab-quvvatlaydigan kam sonli kodeklardan biri bo'lib, u ikkita protsessordan 34% unumdorlikni ko'rsatadi. Shu bilan birga, bu holda Hyper-Threading ta'siri nolga teng (biz 3% farqni muhim deb hisoblamaymiz). Ammo Photoshop 6.0.1 (katta buyruqlar va filtrlar to'plamidan iborat skript) bilan testda Hyper-Threading yoqilganda siz sekinlashuvni ko'rishingiz mumkin, garchi ikkinchi jismoniy protsessor bu holatda 12% unumdorlikni oshiradi. Bu, aslida, Hyper-Threading ishlashning pasayishiga olib keladigan birinchi holat ...

Professional OpenGL. SPEC ViewPerf va boshqa ko'plab OpenGL ilovalari SMP tizimlarida tez-tez sekinlashishi uzoq vaqtdan beri ma'lum.

OpenGL va ikkilamchi protsessor: nima uchun ular do'st emas

Ko'p marta maqolalarda biz o'quvchilar e'tiborini ikki protsessorli platformalar professional OpenGL testlarini o'tkazishda kamdan-kam hollarda bitta protsessorli platformalardan sezilarli ustunlikka ega ekanligiga qaratganmiz. Bundan tashqari, ikkinchi protsessorni o'rnatishda, aksincha, dinamik uch o'lchamli sahnalarni ko'rsatishda tizim ish faoliyatini yomonlashtiradigan holatlar mavjud.

Tabiiyki, bu g'alatilikni nafaqat biz sezdik. Ba'zi sinovchilar bu haqiqatni jimgina chetlab o'tishdi - masalan, faqat ikkita protsessorli konfiguratsiyalar uchun SPEC ViewPerf taqqoslash natijalarini taqdim etish orqali "ikki protsessorli tizim nega sekinroq?" tushuntirishlaridan qochadi. Boshqalar kesh uyg'unligi, uni saqlab qolish zarurati, natijada paydo bo'ladigan qo'shimcha xarajatlar va hokazolar haqida har xil xayoliy taxminlarni ilgari surdilar. Va negadir, masalan, protsessorlar OpenGL-ni oynali renderlashda kogerentlikni aniq kuzatishga sabrsizlik qilgani hech kimni ajablantirmadi (o'zining "hisoblash" mohiyatiga ko'ra, u boshqa har qanday hisoblash vazifasidan unchalik farq qilmaydi).

Aslida, tushuntirish, bizning fikrimizcha, ancha sodda. Ma'lumki, ilova ikkita protsessorda bitta protsessorga qaraganda tezroq ishlashi mumkin, agar:

  • bir vaqtning o'zida ikkitadan ortiq yoki undan ko'p bajariladigan dastur iplari (iplari) mavjud;
  • bu iplar bir-birining bajarilishiga xalaqit bermaydi - masalan, ular tashqi disk yoki tarmoq interfeysi kabi umumiy resurs uchun raqobatlashmaydi.

Keling, ikkita ip tomonidan bajariladigan OpenGL renderlash qanday ko'rinishini soddalashtirilgan tarzda ko'rib chiqaylik. Agar dastur ikkita protsessorni "ko'rib" ikkita OpenGL ko'rsatuvchi ipni yaratsa, ularning har biri uchun OpenGL qoidalariga muvofiq o'z gl-konteksti yaratiladi. Shunga ko'ra, har bir ip o'zining gl kontekstini ko'rsatadi. Ammo muammo shundaki, tasvir ko'rsatiladigan oyna uchun istalgan vaqtda faqat bitta gl-kontekst joriy bo'lishi mumkin. Shunga ko'ra, bu holda iplar shunchaki "birma-bir" yaratilgan tasvirni oynaga chiqaradi va ularning kontekstini muqobil ravishda joriy qiladi. Aytishga hojat yo'q, bu "kontekstni aralashtirib yuborish" qo'shimcha xarajatlar nuqtai nazaridan juda qimmatga tushishi mumkinmi?

Bundan tashqari, misol sifatida biz OpenGL sahnalarini ko'rsatadigan bir nechta ilovalarda ikkita protsessordan foydalanish grafiklarini beramiz. Barcha o'lchovlar quyidagi konfiguratsiyaga ega platformada amalga oshirildi:

  • bir yoki ikkita Intel Xeon 2.2 GHz (Hyper-Threading o'chirilgan);
  • 512 MB RDRAM;
  • Supermicro P4DC6+ anakarti;
  • ASUS V8200 Deluxe video kartasi (NVidia GeForce3, 64 MB DDR SDRAM, Detonator 21.85 drayverlari);
  • Windows 2000 Professional SP2;
  • video rejimi 1280x1024x32 bpp, 85 Hz, Vsync o'chirilgan.

Moviy va qizil mos ravishda CPU 0 va CPU 1 yuk grafiklari. O'rtadagi chiziq oxirgi CPU foydalanish grafigi. Uchta grafik 3D Studio MAX 4.26 dan ikkita sahnaga va SPEC ViewPerf testining bir qismiga (AWadvs-04) mos keladi.


CPU foydalanish: Animation 3D Studio MAX 4.26 - Anibal (manipulyatorlar bilan).


CPU foydalanish: Animation 3D Studio MAX 4.26 - Rabbit.max


CPU foydalanish: SPEC ViewPerf 6.1.2 - AWadvs-04

Xuddi shu naqsh OpenGL-dan foydalanadigan boshqa ko'plab ilovalarda takrorlanadi. Ikkita protsessor ish bilan umuman bezovta qilmaydi va umumiy protsessordan foydalanish 50-60% darajasida. Shu bilan birga, bitta protsessorli tizim uchun bu barcha holatlarda CPU foydalanish ishonchli tarzda 100% darajasida saqlanadi.

Shunday ekan, ko‘pgina OpenGL ilovalari dual tizimlarda unchalik tez ishlamasligi ajablanarli emas. Xo'sh, ularning ba'zan hatto sekinlashishi, bizning fikrimizcha, butunlay mantiqiy tushuntirishga ega.

Aytishimiz mumkinki, ikkita mantiqiy protsessor bilan ishlashning pasayishi yanada sezilarli bo'ladi, bu juda tushunarli: ikkita mantiqiy protsessor bir-biriga ikkita jismoniy protsessor kabi aralashadi. Ammo ularning umumiy ishlashi, albatta, bu holatda pastroq bo'lib chiqadi, shuning uchun Hyper-Threading yoqilganda, u ikkita jismoniy protsessor ishlayotgan paytdagidan ham ko'proq kamayadi. Natijani bashorat qilish mumkin va xulosa oddiy: "haqiqiy" SMP kabi Hyper-Threading ba'zan OpenGL uchun kontrendikedir.

SAPR ilovalari. Oldingi xulosa ikkita SAPR sinovlari natijalari bilan tasdiqlangan - SolidEdge V10 uchun SPECapc va SolidWorks uchun SPECapc. Hyper-Threading uchun ushbu testlarning grafik ishlashi o'xshashdir (garchi SolidEdge V10 uchun SMP tizimida natija biroz yuqoriroq bo'lsa ham). Ammo protsessorni yuklaydigan CPU_Score testlarining natijalari sizni o'ylantiradi: SMPdan 5-10% o'sish va Hyper-Threadingdan 14-19% sekinlashuv.

Biroq, oxir-oqibat, Intel ba'zi hollarda, masalan, bo'sh kutish davrlarini ishlatganda, Hyper-Threading bilan ishlashning pasayishi ehtimolini halol tan oladi. Biz faqat buning sababi deb taxmin qilishimiz mumkin (SolidEdge va SolidWorks kodlarini batafsil o'rganish ushbu maqola doirasidan tashqarida). Axir, hamma tasdiqlangan ishonchlilikni afzal ko'rgan va dasturlashning yangi tendentsiyalarini hisobga olgan holda kodni qayta yozishga shoshilmaydigan SAPR ilovalarini ishlab chiquvchilarning konservatizmini biladi.

Xulosa yoki "Diqqat, to'g'ri savol"

Hyper-Threading ishlaydi, bunga hech qanday shubha yo'q. Albatta, texnologiya universal emas: Hyper-Threading "yomon bo'lib qoladigan" ilovalar mavjud va agar bu texnologiya tarqalsa, ularni o'zgartirish maqsadga muvofiqdir. Ammo xuddi shu narsa MMX va SSE bilan sodir bo'lmaganmi va SSE2 bilan sodir bo'lishda davom etmoqda?..

Biroq, bu texnologiyaning bizning voqelikimizga qo'llanilishi masalasini ko'taradi. Biz Hyper-Threading bilan Xeon-da bitta protsessorli tizim variantidan darhol voz kechamiz (yoki ikkinchi protsessorni sotib olishni kutish uchun uni vaqtinchalik deb hisoblaymiz): hatto 30% unumdorlikni oshirish ham narxni oqlamaydi. yo'l - keyin oddiy Pentium 4 sotib olish yaxshidir. Qolgan protsessorlar soni ikki yoki undan ko'p.

Keling, ikkita protsessorli Xeon tizimini (masalan, Windows 2000/XP Professional bilan) sotib olayotganimizni tasavvur qilaylik. Ikkita protsessor o'rnatildi, Hyper-Threading yoqildi, BIOS to'rtta mantiqiy protsessorni topdi, endi chiqaylik ... To'xtating. Ammo bizning operatsion tizimimiz nechta protsessorni ko'radi? To'g'ri, ikkita. Faqat ikkitasi, chunki u shunchaki ko'proq raqam uchun mo'ljallanmagan. Bu ikkita jismoniy protsessor bo'ladi, ya'ni hammasi o'chirilgan Hyper-Threading bilan bir xil ishlaydi - sekinroq emas (ikkita "qo'shimcha" mantiqiy protsessor shunchaki to'xtaydi), lekin tezroq emas (qo'shimcha testlar bilan tasdiqlangan, natijalar keltirilmagan). ularning aniqligi). Hmm, unchalik qiziq emas...

Nima qoldi? Xo'sh, bizning ish stantsiyamizga Advanced Server yoki .NET Serverni o'rnatmang, to'g'rimi? Yo'q, tizim to'rtta mantiqiy protsessorni o'rnatadi, taniydi va ishlaydi. Bu shunchaki server OS ish stantsiyasiga qaraydi, yumshoq qilib aytganda, biroz g'alati (moliyaviy jihatlarni hisobga olmaganda). Ikki protsessorli Xeon tizimimiz server vazifasini bajarishi mumkin bo'lgan yagona oqilona holat (hech bo'lmaganda ba'zi quruvchilar Xeon protsessorlari ish stantsiyalarida serverlarni chiqarishda ikkilanishmaydi). Ammo mos keladigan operatsion tizimlarga ega ikkita ish stantsiyalari uchun Hyper-Threadingning qo'llanilishi so'roq ostida qolmoqda. Intel hozirda mantiqiy emas, balki jismoniy protsessorlar soniga asoslangan operatsion tizimni litsenziyalashni faol ravishda qo'llab-quvvatlamoqda. Munozaralar hali ham davom etmoqda va umuman olganda, ko'p narsa biz to'rtta protsessorni qo'llab-quvvatlaydigan ish stantsiyasining operatsion tizimini ko'rishimizga bog'liq.

Xo'sh, serverlar bilan hamma narsa juda oddiy chiqadi. Masalan, Hyper-Threading yoqilgan ikki soketli Xeon tizimiga o'rnatilgan Windows 2000 Advanced Server to'rtta mantiqiy protsessorni ko'radi va unda muammosiz ishlaydi. Hyper-Threading server tizimlariga nima olib kelishini baholash uchun biz Xeon MP va bir nechta Microsoft server ilovalaridagi ikki protsessorli tizimlar uchun Intel Microprocessor Software Labs natijalarini taqdim etamiz.

Ikki protsessorli server uchun "bepul" unumdorlikni 20-30% ga oshirish jozibador emas (ayniqsa "haqiqiy" 4 protsessorli tizimni sotib olish bilan solishtirganda).

Ma'lum bo'lishicha, hozirgi vaqtda Hyper-Threadingning amaliy qo'llanilishi faqat serverlarda mumkin. Ish stantsiyalari bilan bog'liq muammo operatsion tizimni litsenziyalash bilan hal qilishga bog'liq. Hyper-Threading-ning yana bir qo'llanilishi haqiqatan ham - agar ish stoli protsessorlari ushbu texnologiyani qo'llab-quvvatlasa. Masalan (tasavvur qilaylik) Windows 2000/XP Professional SMP-ni qo'llab-quvvatlaydigan Hyper-Threading-ni qo'llab-quvvatlaydigan Pentium 4 tizimida nima noto'g'ri? - serverlardan ish stoli va mobil tizimlargacha.