Internet Windows Android
Kengaytirish

Va ikki xil holatda nima bo'lishini ko'rib chiqing. Universal sahna va ob'ektlar

Kirish. Kompyuter texnologiyalari jadal sur'atlar bilan rivojlanmoqda. Hisoblash qurilmalari kuchliroq, kichikroq, qulayroq bo'lib bormoqda, ammo so'nggi paytlarda qurilmalarning ishlashini oshirish katta muammoga aylandi. 1965 yilda Gordon Mur (Intel asoschilaridan biri) “integral mikrosxemalar chipiga joylashtirilgan tranzistorlar soni har 24 oyda ikki barobar ortadi” degan xulosaga keldi.

Ko'p protsessorli tizimlarni yaratish sohasidagi birinchi ishlanmalar 70-yillarda boshlangan. Uzoq vaqt davomida tanish bir yadroli protsessorlarning ishlashi chipdagi tranzistorlar sonining bir vaqtning o'zida ko'payishi bilan takt chastotasini oshirish orqali oshirildi (ishlashning 80% gacha faqat soat chastotasi bilan aniqlandi). Fizikaning asosiy qonunlari bu jarayonni to'xtatdi: chiplar qizib keta boshladi, texnologik esa kremniy atomlarining o'lchamiga yaqinlasha boshladi. Bu omillarning barchasi quyidagilarga olib keldi:

  • qochqin oqimlari ko'paydi, buning natijasida issiqlik tarqalishi va quvvat sarfi oshdi.
  • Protsessor xotiradan ancha "tezroq" bo'ldi. Qo‘ng‘iroqning kechikishi tufayli unumdorlik pasaygan. tasodifiy kirish xotirasi va ma'lumotlarni keshga yuklash.
  • "von Neumann darboğazi" kabi narsa bor. Bu dasturni bajarishda protsessor arxitekturasining samarasizligini bildiradi.

Ko'p protsessorli tizimlar (muammoni hal qilish usullaridan biri sifatida) keng qo'llanilmadi, chunki ular qimmat va ishlab chiqarish qiyin ko'p protsessorli tizimlarni talab qiladi. anakartlar. Shunga asoslanib, hosildorlik boshqa yo'llar bilan oshdi. Ko'p oqim kontseptsiyasi samarali bo'ldi - bir vaqtning o'zida bir nechta buyruqlar oqimini qayta ishlash.

Hyper-Threading Technology (HTT) yoki protsessorga bir yadroda bir nechta dastur iplarini ishga tushirishga imkon beruvchi super threading texnologiyasi. Ko'pgina mutaxassislarning fikriga ko'ra, ko'p yadroli protsessorlarni yaratish uchun zarur shart bo'lgan HTT edi. Protsessor tomonidan bir vaqtning o'zida bir nechta dastur iplarining bajarilishi ip darajasidagi parallelizm (TLP - tread-level parallelism) deb ataladi.

Ko'p yadroli protsessorning imkoniyatlarini ochish uchun bajariladigan dastur barcha hisoblash yadrolaridan foydalanishi kerak, bu har doim ham erishib bo'lmaydi. Faqat bitta yadrodan foydalanishi mumkin bo'lgan eski seriyali dasturlar endi yangi avlod protsessorlarida tezroq ishlamaydi, shuning uchun dasturchilar yangi mikroprotsessorlarni ishlab chiqishda tobora ko'proq qatnashmoqda.

1. Umumiy tushunchalar

Keng ma'noda arxitektura ko'plab elementlardan tashkil topgan murakkab tizimning tavsifidir.

Rivojlanish jarayonida yarimo'tkazgichli tuzilmalar (mikrosxemalar) rivojlanadi, shuning uchun protsessorlarni qurish tamoyillari, ularning tarkibiga kiritilgan elementlarning soni, ularning o'zaro ta'siri qanday tashkil etilganligi doimiy ravishda o'zgarib turadi. Shunday qilib, strukturaning bir xil asosiy printsiplariga ega bo'lgan protsessorlar odatda bir xil arxitekturaning protsessorlari deb ataladi. Va bu tamoyillarning o'zi protsessor arxitekturasi (yoki mikroarxitektura) deb ataladi.

Mikroprotsessor (yoki protsessor) kompyuterning asosiy komponentidir. U axborotni qayta ishlaydi, dasturlarni bajaradi va tizimdagi boshqa qurilmalarni boshqaradi. Protsessorning kuchi dasturlarning qanchalik tez ishlashini aniqlaydi.

Yadro har qanday mikroprotsessorning asosidir. U kremniy chipida joylashgan millionlab tranzistorlardan iborat. Mikroprotsessor registrlar deb ataladigan maxsus hujayralarga bo'linadi. umumiy maqsad(RON). Protsessorning ishi umuman olganda xotiradan buyruqlar va ma'lumotlarni ma'lum bir ketma-ketlikda ajratib olish va ularni bajarishdan iborat. Bundan tashqari, shaxsiy kompyuter tezligini oshirish uchun mikroprotsessor ichki kesh xotirasi bilan jihozlangan. kesh xotira hisoblanadi ichki xotira protsessor, bufer sifatida ishlatiladi (RAM bilan aloqada uzilishlardan himoya qilish uchun).

IBM bilan mos keluvchi shaxsiy kompyuterlarda ishlatiladigan Intel protsessorlari mingdan ortiq ko'rsatmalarga ega va kengaytirilgan buyruqlar to'plamiga ega protsessorlarga tegishli - CISC-protsessorlari (CISC - Complex Instruction Set Computing).

1.1 Yuqori unumdorlikdagi hisoblash. Parallellik

Rivojlanish tezligi Kompyuter fanlari kuzatish oson: soniyasiga bir necha ming amalni bajaradigan ENIAC (birinchi umumiy maqsadli elektron raqamli kompyuter) dan Tianhe-2 superkompyuterigacha (sekundiga 1000 trillion suzuvchi nuqta operatsiyalari). Bu 60 yil ichida hisoblash tezligi trillion martaga oshganini bildiradi. Yuqori unumli hisoblash tizimlarini yaratish eng murakkab ilmiy-texnikaviy vazifalardan biridir. Hisoblash tezligi bo'lganda texnik vositalar bir necha million marta o'sdi, hisoblashning umumiy tezligi trillion marta o'sdi. Bu effekt hisoblashning barcha bosqichlarida parallellikdan foydalanish orqali erishiladi. Parallel hisoblash xotirani oqilona taqsimlashni, axborotni uzatishning ishonchli usullarini va hisoblash jarayonlarini muvofiqlashtirishni talab qiladi.

1.2 Simmetrik ko'p ishlov berish

Simmetrik ko'p ishlov berish (qisqartirilgan SMP) yoki simmetrik ko'p ishlov berish - bu ko'p protsessorli tizimlarning maxsus arxitekturasi bo'lib, unda bir nechta protsessorlar kirish huquqiga ega. umumiy xotira. Bu so'nggi paytlarda keng qo'llanilgan juda keng tarqalgan arxitektura.

SMP dan foydalanganda bir vaqtning o'zida bir nechta protsessorlar kompyuterda ishlaydi, ularning har biri o'z vazifasini bajaradi. Yuqori sifatli operatsion tizimga ega SMP tizimi protsessorlar o'rtasida vazifalarni oqilona taqsimlaydi va ularning har biriga teng yukni ta'minlaydi. Biroq, xotirani o'zgartirish bilan bog'liq muammo mavjud, chunki hatto bir protsessorli tizimlar ham buning uchun nisbatan uzoq vaqtni talab qiladi. Shunday qilib, SMPda RAMga kirish ketma-ket sodir bo'ladi: birinchi navbatda bitta protsessor, keyin ikkinchi.

Yuqoridagi xususiyatlar tufayli SMP tizimlari faqat ilmiy sohada, sanoatda, biznesda, juda kamdan-kam hollarda ish ofislarida qo'llaniladi. Uskunani amalga oshirishning yuqori narxiga qo'shimcha ravishda, bunday tizimlar juda qimmat va yuqori sifatli dasturlarni talab qiladi, bu ko'p bosqichli vazifalarni bajarishni ta'minlaydi. Oddiy dasturlar (o'yinlar, matn muharrirlari) SMP tizimlarida samarali ishlamaydi, chunki ular bunday parallellik darajasini ta'minlamaydi. Agar siz biron bir dasturni SMP tizimiga moslashtirsangiz, bitta protsessorli tizimlarda ishlash juda samarasiz bo'lib qoladi, bu esa turli xil tizimlar uchun bir xil dasturning bir nechta versiyasini yaratish zarurligiga olib keladi. Istisno, masalan, ko'p protsessorli tizimlarni qo'llab-quvvatlaydigan ABLETON LIVE dasturi (musiqa yaratish va Dj-setlarni tayyorlash uchun mo'ljallangan). Agar siz oddiy dasturni ko'p protsessorli tizimda ishlatsangiz, u bitta protsessorga qaraganda biroz tezroq ishlaydi. Bu boshqa bepul protsessorda bajariladigan apparat uzilishi (dasturni yadro tomonidan qayta ishlash uchun to'xtatish) bilan bog'liq.

SMP tizimi (parallel hisoblashga asoslangan har qanday boshqa tizim kabi) xotira shinasi o'tkazuvchanligi kabi xotira parametriga yuqori talablarni qo'yadi. Bu ko'pincha tizimdagi protsessorlar sonini cheklaydi (zamonaviy SMP tizimlari 16 tagacha protsessor bilan samarali ishlaydi).

Protsessorlar umumiy xotiraga ega bo'lganligi sababli, undan oqilona foydalanish va ma'lumotlarni muvofiqlashtirish zarur bo'ladi. Ko'p protsessorli tizimda umumiy xotira resursi uchun bir nechta keshlar ishlaydi. Kesh muvofiqligi - umumiy manba uchun alohida keshlarda saqlangan ma'lumotlarning yaxlitligini ta'minlaydigan kesh xususiyati. Bu tushuncha- xotira kogerentligi kontseptsiyasining alohida holati, bu erda bir nechta yadrolar umumiy xotiraga kirish imkoniga ega (u zamonaviy ko'p yadroli tizimlarda hamma joyda mavjud). Agar biz ushbu tushunchalarni umumiy ma'noda tasvirlab beradigan bo'lsak, unda rasm quyidagicha bo'ladi: bir xil ma'lumotlar bloki turli keshlarga yuklanishi mumkin, bu erda ma'lumotlar turlicha qayta ishlanadi.

Agar biron-bir ma'lumot o'zgarishi haqida bildirishnoma ishlatilmasa, xatolik yuz beradi. Kesh muvofiqligi bunday ziddiyatlarni hal qilish va keshlardagi ma'lumotlarning izchilligini saqlash uchun mo'ljallangan.

SMP tizimlari Flinn (Stenford universiteti professori, Palyn Associates hammuassisi) bo'yicha hisoblash tizimlarining MIMD (multi in-struction multi data computing system) tasnifining kichik to'plamidir. Ushbu tasnifga ko'ra, parallel tizimlarning deyarli barcha navlarini MIMDga kiritish mumkin.

Ko'p protsessorli tizimlarning turlarga bo'linishi xotiradan foydalanish printsipiga ko'ra bo'linish asosida sodir bo'ladi. Ushbu yondashuv quyidagi muhim turlarni ajratish imkonini berdi

ko'p protsessorli tizimlar - ko'p protsessorlar (umumiy xotiraga ega ko'p protsessorli tizimlar) va ko'p kompyuterlar (alohida xotiraga ega tizimlar). Parallel hisoblashda ishlatiladigan umumiy ma'lumotlar sinxronlashni talab qiladi. Ma'lumotlarni sinxronlashtirish vazifasi eng muhim muammolardan biri bo'lib, uni ko'p protsessorli va ko'p yadroli va shunga mos ravishda zarur dasturiy ta'minot muhandislar va dasturchilar uchun ustuvor vazifadir. Ma'lumotlarni jismoniy xotira ajratish bilan almashish mumkin. Ushbu yondashuv yagona bo'lmagan xotiraga kirish (NUMA) deb ataladi.

Bu tizimlarga quyidagilar kiradi:

  • Ma'lumotlarni ko'rsatish uchun faqat individual protsessor keshidan foydalaniladigan tizimlar (faqat kesh xotirasi arxitekturasi).
  • Turli protsessorlar uchun mahalliy kesh kogerentligiga ega tizimlar (kesh-kogerent NUMA).
  • Ta'minlangan tizimlar ommaviy kirish apparat darajasida keshsiz kogerent NUMA ni amalga oshirmasdan protsessorlarning individual xotirasiga.

Ko'p protsessorli tizimlarni yaratish muammosini soddalashtirishga taqsimlangan umumiy xotiradan foydalanish orqali erishiladi, ammo bu usul parallel dasturlashning murakkabligini sezilarli darajada oshirishga olib keladi.

1.3 Bir vaqtning o'zida ko'p ish zarralari

Nosimmetrik ko'p ishlov berishning yuqoridagi barcha kamchiliklariga asoslanib, ishlashni yaxshilashning boshqa usullarini ishlab chiqish va rivojlantirish mantiqan. Agar siz protsessordagi har bir tranzistorning ishlashini tahlil qilsangiz, siz juda ko'p e'tibor berishingiz mumkin qiziq fakt- ko'pgina hisoblash operatsiyalarini bajarishda protsessorning barcha komponentlari ishtirok etmaydi (so'nggi tadqiqotlarga ko'ra - barcha tranzistorlarning taxminan 30%). Shunday qilib, agar protsessor, aytaylik, oddiy arifmetik amalni bajarsa, protsessorning ko'p qismi ishlamayapti, shuning uchun uni boshqa hisob-kitoblar uchun ishlatish mumkin. Shunday qilib, agar ichida bu daqiqa protsessor real amallarni bajaradi, keyin bo'sh qismga butun sonli arifmetik amal yuklanishi mumkin. Protsessorga yukni oshirish uchun siz protsessor apparat mantig'ining katta murakkabligini talab qiladigan operatsiyalarning spekulyativ (yoki ilg'or) bajarilishini yaratishingiz mumkin. Agar dastur bir-biridan mustaqil ravishda bajarilishi mumkin bo'lgan iplarni (buyruqlar ketma-ketligini) oldindan belgilab qo'ysa, bu vazifani sezilarli darajada soddalashtiradi ( bu usul apparatda osonlik bilan amalga oshiriladi). Din Tulsenga tegishli bo'lgan bu g'oya (u tomonidan 1955 yilda Vashington universitetida ishlab chiqilgan) bir vaqtning o'zida multithreading deb ataladi. Keyinchalik ishlab chiqilgan Intel tomonidan hyperthreading deb ataladi. Masalan, ko'p iplarni bajaruvchi bitta protsessor Windows operatsion tizimi tomonidan bir nechta protsessor sifatida qabul qilinadi. Ushbu texnologiyadan foydalanish yana tegishli darajadagi dasturiy ta'minotni talab qiladi. Multithreading texnologiyasidan foydalanishning maksimal ta'siri taxminan 30% ni tashkil qiladi.

1.4 Ko'p yadroli

Multithreading texnologiyasi - bu ko'p yadroli dasturiy ta'minot darajasida amalga oshirilishi. Ishlashning yanada oshishi, har doimgidek, protsessorning apparatidagi o'zgarishlarni talab qiladi. Tizimlar va arxitekturalarning murakkabligi har doim ham samarali emas. Qarama-qarshi fikr bor: "hamma narsa oddiy!". Darhaqiqat, protsessorning ishlashini oshirish uchun uni oshirish umuman shart emas. soat chastotasi, mantiqiy va apparat komponentlarini murakkablashtiradi, chunki mavjud texnologiyani ratsionalizatsiya qilish va takomillashtirish kifoya. Bu usul juda foydali - protsessorning issiqlik tarqalishini oshirish, mikrosxemalarni ishlab chiqarish uchun yangi qimmat uskunalarni ishlab chiqish muammosini hal qilishning hojati yo'q. Ushbu yondashuv ko'p yadroli texnologiyaning bir qismi sifatida amalga oshirildi - bitta chipda bir nechta hisoblash yadrolarini amalga oshirish. Agar siz asl protsessorni olsangiz va unumdorlikni oshirishning bir nechta yaxshilanishlarini amalga oshirishdan olingan samaradorlikni solishtirsangiz, ko'p yadroli texnologiya eng yaxshi variant ekanligi ayon bo'ladi.

Agar biz simmetrik ko'p protsessor va ko'p yadroli arxitekturani solishtirsak, ular deyarli bir xil bo'lib chiqadi. Yadrolarning kesh xotirasi ko'p darajali bo'lishi mumkin (mahalliy va umumiy, operativ xotiradan olingan ma'lumotlar to'g'ridan-to'g'ri ikkinchi darajali kesh xotirasiga yuklanishi mumkin). Protsessorlarning ko'p yadroli arxitekturasining ko'rib chiqilgan afzalliklariga asoslanib, ishlab chiqaruvchilar bunga e'tibor berishadi. Bu texnologiya amalga oshirish uchun juda arzon va universal bo'lib chiqdi, bu esa uni keng bozorga olib chiqishga imkon berdi. Bundan tashqari, ushbu arxitektura Mur qonuniga o'z tuzatishlarini kiritdi: "protsessordagi hisoblash yadrolari soni har 18 oyda ikki barobar ortadi".

Hozirgi bozorni ko'rib chiqish kompyuter texnologiyasi, siz to'rt va sakkiz yadroli protsessorli qurilmalar ustunlik qilayotganini ko'rishingiz mumkin. Bundan tashqari, protsessor ishlab chiqaruvchilari yuzlab qayta ishlash yadrolariga ega protsessorlar tez orada bozorda paydo bo'lishini aytishadi. Ilgari bir necha bor ta'kidlanganidek, ko'p yadroli arxitekturaning to'liq salohiyati faqat yuqori sifatli dasturiy ta'minot bilan namoyon bo'ladi. Shunday qilib, kompyuter texnikasi va dasturiy ta'minotini ishlab chiqarish sohasi juda chambarchas bog'liq.

Ammo chastota ko'rsatkichlarida yangi cho'qqilarni zabt etish bilan uni oshirish qiyinlashdi, chunki bu protsessorlarning TDP o'sishiga ta'sir qildi. Shu sababli, ishlab chiquvchilar protsessorlarni kenglikda, ya'ni yadrolarni qo'shishni boshladilar va ko'p yadroli tushunchasi paydo bo'ldi.

6-7 yil oldin ko'p yadroli protsessorlar deyarli eshitilmagan edi. Yo'q, ko'p yadro protsessorlari Xuddi shu IBM kompaniyasidan ilgari ham mavjud edi, lekin birinchi ikki yadroli protsessor paydo bo'ldi ish stoli kompyuterlari, faqat 2005 yilda bo'lib o'tdi va bu protsessor Pentium D deb nomlangan. Shuningdek, 2005 yilda AMD ning ikki yadroli Opteron chiqarildi, lekin server tizimlari uchun.

Ushbu maqolada biz tarixiy faktlarni batafsil ko'rib chiqmaymiz, lekin CPU xususiyatlaridan biri sifatida zamonaviy ko'p yadroli protsessorlarni muhokama qilamiz. Va eng muhimi - bu ko'p yadroli protsessor va siz va men uchun ishlash nuqtai nazaridan nimani berishini aniqlashimiz kerak.

Ko'p yadroli ish unumdorligi oshirildi

Bir nechta yadrolar tufayli protsessor ish faoliyatini oshirish printsipi iplarning bajarilishini (turli xil vazifalarni) bir nechta yadrolarga bo'lishdir. Xulosa qilib aytganda, tizimingizda ishlaydigan deyarli har bir jarayon bir nechta mavzularga ega.

Buni darhol aytib o'tishga ruxsat bering operatsion tizim protsessor jismonan bir yadroli bo'lsa ham, o'zi uchun deyarli ko'plab iplarni yaratishi va barchasini bir vaqtning o'zida bajarishi mumkin. Ushbu printsip Windows-ning bir xil ko'p vazifalarini amalga oshiradi (masalan, musiqa tinglash va bir vaqtning o'zida yozish).


Misol tariqasida antivirus dasturini olaylik. Bir mavzu biz kompyuterni skanerlaymiz, ikkinchisi yangilanadi antivirus ma'lumotlar bazasi(umumiy tushunchani tushunish uchun biz uni ancha soddalashtirdik).

Va ikki xil holatda nima bo'lishini ko'rib chiqing:

a) Bir yadroli protsessor. Ikki mavzu bir vaqtning o'zida ishlayotganligi sababli, biz foydalanuvchi uchun (vizual) aynan shu bir vaqtda bajarilishini yaratishimiz kerak. Operatsion tizim juda qiyin:bu ikki ipning bajarilishi o'rtasida kalit mavjud (bu kalitlar bir zumda va vaqt millisekundlarda). Ya'ni, tizim yangilanishni biroz "bajardi", keyin to'satdan skanerlashga o'tdi, so'ngra yangilanishga qaytdi. Shunday qilib, siz va men uchun bu ikki vazifa bir vaqtning o'zida amalga oshirilayotganga o'xshaydi. Ammo nima yo'qoladi? Albatta, ishlash. Shunday qilib, keling, ikkinchi variantni ko'rib chiqaylik.

b) Protsessor ko'p yadroli. Bunday holda, bu o'tish sodir bo'lmaydi. Tizim har bir ipni alohida yadroga aniq yuboradi, buning natijasida ishlashga zarar etkazadigan ipdan ipga o'tishdan xalos bo'lishga imkon beradi (vaziyatni ideallashtiramiz). Ikki ip bir vaqtning o'zida ishlaydi, bu ko'p yadroli va ko'p tarmoqli printsipi. Oxir oqibat, biz bir yadroli protsessorga qaraganda ko'p yadroli protsessorda skanerlash va yangilanishlarni tezroq bajaramiz. Ammo bir narsa bor - barcha dasturlar ko'p yadroli dasturlarni qo'llab-quvvatlamaydi. Har bir dasturni shu tarzda optimallashtirish mumkin emas. Va hamma narsa biz tasvirlagandek mukammal bo'lishdan uzoqda sodir bo'ladi. Ammo har kuni ishlab chiquvchilar ko'p yadroli protsessorlarda ishlash uchun kodi mukammal optimallashtirilgan dasturlarni yaratadilar.

Ko'p yadroli protsessorlar kerakmi? Kundalik oqilonalik

Da protsessor tanlash kompyuter uchun (ya'ni, yadrolar soni haqida o'ylashda) u bajaradigan vazifalarning asosiy turlarini aniqlash kerak.

Sohadagi bilimlarni yaxshilash kompyuter texnikasi, haqida materialni o'qishingiz mumkin protsessor rozetkalari .

Boshlanish nuqtasini ikki yadroli protsessorlar deb atash mumkin, chunki bitta yadroli echimlarga qaytish mantiqiy emas. Ammo ikki yadroli protsessorlar boshqacha. Bu "eng" yangi Celeron bo'lmasligi mumkin yoki u yoqilgan Core i3 bo'lishi mumkin Ayvi ko'prigi, AMD bilan aynan bir xil - Sempron yoki Phenom II. Tabiiyki, boshqa ko'rsatkichlar tufayli ularning ishlashi juda boshqacha bo'ladi, shuning uchun siz hamma narsani har tomonlama ko'rib chiqishingiz va ko'p yadroli boshqalar bilan solishtirishingiz kerak. protsessor xususiyatlari.

Masalan, Ivy Bridge-dagi Core i3 bir vaqtning o'zida 4 ta ipni qayta ishlash imkonini beruvchi Hyper-Treading texnologiyasiga ega (operatsion tizim 2 ta jismoniy o'rniga 4 ta mantiqiy yadroni ko'radi). Va o'sha Celeron bunday bilan maqtanmaydi.

Ammo keling, to'g'ridan-to'g'ri talab qilinadigan vazifalar bo'yicha fikrlarga qaytaylik. Agar kompyuter ofis ishi va Internetda ishlash uchun kerak bo'lsa, unda ikki yadroli protsessor buning uchun etarli.

O'yin samaradorligi haqida gap ketganda, ko'pchilik o'yinlar qulay bo'lishi uchun 4 yadro yoki undan ko'p talab qiladi. Ammo bu erda juda qiziq narsa paydo bo'ladi: hamma o'yinlarda 4 yadroli protsessorlar uchun optimallashtirilgan kod mavjud emas va agar ular optimallashtirilgan bo'lsa, u biz xohlagan darajada samarali emas. Ammo, printsipial jihatdan, hozirda o'yinlar uchun eng maqbul echim aniq 4-yadroli protsessordir.


Bugungi kunga qadar bir xil 8 yadroli AMD protsessorlari, o'yinlar uchun ular ortiqcha, bu ortiqcha bo'lgan yadrolar soni, lekin ishlash darajasi teng emas, lekin ular boshqa afzalliklarga ega. Xuddi shu 8 yadro zarur bo'lgan vazifalarni bajarishda juda ko'p yordam beradi kuchli ish yuqori sifatli ko'p tishli yuk bilan. Bunga, masalan, videoni ko'rsatish (hisoblash) yoki server hisoblash kiradi. Shuning uchun bunday vazifalar uchun 6, 8 yoki undan ortiq yadro kerak bo'ladi. Va tez orada o'yinlar 8 yoki undan ortiq yadrolarni yuqori sifatli yuklay oladi, shuning uchun kelajakda hamma narsa juda pushti.

Shuni unutmangki, bitta ipli yukni yaratadigan juda ko'p vazifalar hali ham mavjud. Va siz o'zingizga savol berishingiz kerak: menga bu 8 yadro kerakmi yoki yo'qmi?

Biroz xulosa qilib, yana bir bor ta'kidlashni istardimki, ko'p yadroli afzalliklar "og'ir" hisoblash ko'p tarmoqli ish paytida namoyon bo'ladi. Va agar siz haddan tashqari talablarga ega o'yinlarni o'ynamasangiz va yaxshi hisoblash quvvatini talab qiladigan muayyan turdagi ishlarni qilmasangiz, qimmat ko'p yadroli protsessorlarga pul sarflash mantiqiy emas (

Ko'p oqim nazariyasi bilan shug'ullangandan so'ng, amaliy misolni ko'rib chiqaylik - Pentium 4. Ushbu protsessorni ishlab chiqish bosqichida Intel muhandislari dastur interfeysiga o'zgartirishlar kiritmasdan uning ishlashini oshirish ustida ishlashni davom ettirdilar. Beshta oddiy usul ko'rib chiqildi:

Soat chastotasini oshirish;

Ikkita protsessorni bitta chipga joylashtirish;

Yangi funktsional bloklarni joriy etish;

Konveyerni kengaytirish;

Multithreadingdan foydalanish.

Ishlashni yaxshilashning eng aniq usuli boshqa parametrlarni o'zgartirmasdan soat tezligini oshirishdir. Qoida tariqasida, har bir keyingi protsessor modeli oldingisiga qaraganda bir oz yuqoriroq soat tezligiga ega. Afsuski, soat tezligining to'g'ri chiziqli o'sishi bilan ishlab chiquvchilar ikkita muammoga duch kelishadi: quvvat sarfini ko'paytirish (bu noutbuklar va boshqa akkumulyatorli hisoblash qurilmalari uchun tegishli) va haddan tashqari qizib ketish (buning uchun yanada samarali issiqlik batareyalari talab qilinadi).

Ikkinchi usul - ikkita protsessorni chipga joylashtirish - nisbatan sodda, ammo u chip egallagan maydonni ikki barobar oshirishni o'z ichiga oladi. Har bir protsessor o'zining kesh xotirasi bilan ta'minlangan bo'lsa, har bir gofret uchun chiplar soni ikki baravar kamayadi, lekin bu ishlab chiqarish narxini ham ikki barobarga oshiradi. Ikkala protsessor ham umumiy kesh xotirasiga ega bo'lsa, ishg'ol qilingan maydonning sezilarli darajada oshishiga yo'l qo'ymaslik mumkin, ammo bu holda yana bir muammo paydo bo'ladi - har bir protsessor uchun kesh xotirasi miqdori ikki baravar kamayadi va bu muqarrar ravishda ishlashga ta'sir qiladi. Bundan tashqari, professional server ilovalari bir nechta protsessorlarning resurslaridan to'liq foydalanishga qodir bo'lsa-da, oddiy ish stoli dasturlari juda kam ichki parallelizmga ega.

Yangi funktsional bloklarni joriy etish ham qiyin emas, lekin bu erda muvozanatni saqlash muhimdir. Agar chip barcha bloklarni yuklay oladigan tezlikda quvur liniyasiga buyruq bera olmasa, o'nlab ALU-ning nima keragi bor?

Vazifalarni kichikroq segmentlarga bo'lish va ularni qisqa vaqt ichida qayta ishlashga qodir bo'lgan bosqichlari ko'paygan quvur liniyasi, bir tomondan, ish faoliyatini yaxshilaydi, boshqa tomondan, o'tishlarni noto'g'ri bashorat qilish, kesh o'tkazib yuborishning salbiy oqibatlarini oshiradi, uzilishlar va protsessorda oddiy kurs yo'riqnomalarini qayta ishlashni buzadigan boshqa hodisalar. Bundan tashqari, kengaytirilgan quvur liniyasining imkoniyatlarini to'liq amalga oshirish uchun soat chastotasini oshirish kerak va bu, biz bilganimizdek, energiya sarfini va issiqlik tarqalishini oshirishga olib keladi.

Nihoyat, siz multithreadingni amalga oshirishingiz mumkin. Ushbu texnologiyaning afzalligi shundaki, u qo'shimcha dasturiy ta'minot tarmog'ini taqdim etadi, bu esa bo'sh qoladigan apparat resurslaridan foydalanishga imkon beradi. Eksperimental tadqiqotlar natijalariga ko'ra, Intel ishlab chiquvchilari ko'plab ilovalar uchun multithreadingni amalga oshirishda chip maydonini 5% ga oshirish unumdorlikni 25% ga oshirishini aniqladilar. Xeon 2002 yilda ko'p ish zarralarini qo'llab-quvvatlaydigan birinchi Intel protsessoridir. Keyinchalik, 3,06 GGts dan boshlab, Pentium 4 liniyasiga multitreading kiritildi.Intel Pentium 4 gipermavzusida multithreadingni amalga oshirish deb ataladi.

Ko'p oqim nazariyasi bilan shug'ullangandan so'ng, amaliy misolni ko'rib chiqaylik - Pentium 4. Ushbu protsessorni ishlab chiqish bosqichida Intel muhandislari dastur interfeysiga o'zgartirishlar kiritmasdan uning ishlashini oshirish ustida ishlashni davom ettirdilar. Beshta oddiy usul ko'rib chiqildi:
1. Takt chastotasini oshirish.
2. Ikkita protsessorni bitta chipga joylashtirish.
3. Yangi funksional bloklarni joriy etish.
1. Konveyerni uzaytirish.
2. Ko'p ish zarralarini ishlatish.
Ishlashni yaxshilashning eng aniq usuli boshqa parametrlarni o'zgartirmasdan soat tezligini oshirishdir. Qoida tariqasida, har bir keyingi protsessor modeli oldingisiga qaraganda bir oz yuqoriroq soat tezligiga ega. Afsuski, soat tezligining to'g'ri chiziqli o'sishi bilan ishlab chiquvchilar ikkita muammoga duch kelishadi: quvvat sarfini ko'paytirish (bu noutbuklar va boshqa akkumulyatorli hisoblash qurilmalari uchun tegishli) va haddan tashqari qizib ketish (buning uchun yanada samarali issiqlik batareyalari talab qilinadi).
Ikkinchi usul - ikkita protsessorni chipga joylashtirish - nisbatan sodda, ammo u chip egallagan maydonni ikki barobar oshirishni o'z ichiga oladi. Har bir protsessor o'zining kesh xotirasi bilan ta'minlangan bo'lsa, har bir gofret uchun chiplar soni ikki baravar kamayadi, lekin bu ishlab chiqarish narxini ham ikki barobarga oshiradi. Ikkala protsessor ham umumiy kesh xotirasiga ega bo'lsa, ishg'ol qilingan maydonning sezilarli darajada oshishiga yo'l qo'ymaslik mumkin, ammo bu holda yana bir muammo paydo bo'ladi - har bir protsessor uchun kesh xotirasi miqdori ikki baravar kamayadi va bu muqarrar ravishda ishlashga ta'sir qiladi. Bundan tashqari, professional server ilovalari bir nechta protsessorlarning resurslaridan to'liq foydalanishga qodir bo'lsa-da, oddiy ish stoli dasturlari juda kam ichki parallelizmga ega.
Yangi funktsional bloklarni joriy etish ham qiyin emas, lekin bu erda muvozanatni saqlash muhimdir. Agar chip barcha bloklarni yuklay oladigan tezlikda quvur liniyasiga buyruq bera olmasa, o'nlab ALU-ning nima keragi bor?
Vazifalarni kichikroq segmentlarga bo'lish va ularni qisqa vaqt ichida qayta ishlashga qodir bo'lgan bosqichlari ko'paygan quvur liniyasi, bir tomondan, ish faoliyatini yaxshilaydi, boshqa tomondan, o'tishlarni noto'g'ri bashorat qilish, kesh o'tkazib yuborishning salbiy oqibatlarini oshiradi, uzilishlar va protsessorda oddiy kurs yo'riqnomalarini qayta ishlashni buzadigan boshqa hodisalar. Bundan tashqari, kengaytirilgan quvur liniyasining imkoniyatlarini to'liq amalga oshirish uchun soat chastotasini oshirish kerak va bu, biz bilganimizdek, energiya sarfini va issiqlik tarqalishini oshirishga olib keladi.
Nihoyat, siz multithreadingni amalga oshirishingiz mumkin. Ushbu texnologiyaning afzalligi shundaki, u qo'shimcha dasturiy ta'minot tarmog'ini taqdim etadi, bu esa bo'sh qoladigan apparat resurslaridan foydalanishga imkon beradi. Eksperimental tadqiqotlar natijalariga ko'ra, Intel ishlab chiquvchilari ko'plab ilovalar uchun multithreadingni amalga oshirishda chip maydonini 5% ga oshirish unumdorlikni 25% ga oshirishini aniqladilar. Birinchi ko'p tarmoqli Intel protsessori 2002 yil Xeon edi. Keyinchalik, 3,06 GGts dan boshlab, Pentium 4 liniyasiga multitreading kiritildi.Intel Pentium 4 gipermavzusida multithreadingni amalga oshirish deb ataladi.
Giperthreadingning asosiy printsipi ikkita dastur zanjirining bir vaqtning o'zida bajarilishi (yoki jarayonlar - protsessor jarayonlar va dastur iplarini ajratmaydi). Operatsion tizim Pentium 4 giper-torli protsessoriga umumiy keshlar va asosiy xotiraga ega ikki protsessorli kompleks sifatida qaraydi. Operatsion tizim har bir dastur oqimi uchun alohida rejalashtirishni amalga oshiradi. Shunday qilib, ikkita dastur bir vaqtning o'zida ishlashi mumkin. Masalan, pochta dasturi ga xabar yuborishi yoki qabul qilishi mumkin fon foydalanuvchi interaktiv dastur bilan o'zaro aloqada bo'lganda - ya'ni demon va foydalanuvchi dasturi bir vaqtning o'zida ishlaydi, go'yo tizimda ikkita protsessor mavjud.
Bir nechta iplarda ishlashga qodir amaliy dasturlar ikkala "virtual protsessor" dan ham foydalanishi mumkin. Misol uchun, video tahrirlash dasturlari odatda foydalanuvchilarga barcha freymlarga filtrlarni qo'llash imkonini beradi. Bunday filtrlar yorqinlik, kontrast, rang balansi va ramkalarning boshqa xususiyatlarini tuzatadi. Bunday vaziyatda dastur bitta virtual protsessorni juft kvadratlarni qayta ishlash uchun, ikkinchisini esa toq kvadratlarni qayta ishlash uchun belgilashi mumkin. Bunday holda, ikkita protsessor bir-biridan butunlay mustaqil ishlaydi.
Dasturiy ta'minot tarmoqlari bir xil apparat resurslariga kirishi sababli, bu oqimlarni muvofiqlashtirish zarur. Hyperthreading kontekstida Intel ishlab chiquvchilari resurslarni almashishning to'rtta foydali strategiyasini aniqladilar: resurslarni takrorlash va qattiq, chegara va to'liq resurslarni almashish. Keling, ushbu strategiyalarni ko'rib chiqaylik.
Keling, resurslarni takrorlashdan boshlaylik. Ma'lumki, dastur oqimlarini tashkil qilish uchun ba'zi resurslar takrorlanadi. Misol uchun, har bir dastur oqimi individual nazoratga muhtoj bo'lganligi sababli, ikkinchi dastur hisoblagichi kerak. Bundan tashqari, arxitektura registrlarini (EAX, EBX va boshqalar) fizik registrlarga xaritalash uchun ikkinchi jadvalni kiritish kerak; xuddi shunday, uzilish boshqaruvchisi takrorlanadi, chunki har bir ip uchun uzilishlar alohida amalga oshiriladi.
Quyida metodologiya keltirilgan qattiq ajralish dastur mavzulari o'rtasida resurslar (bo'lingan resurslarni taqsimlash). Misol uchun, agar protsessorda quvur liniyasining ikkita funktsional bosqichi o'rtasida navbat bo'lsa, u holda slotlarning yarmini 1-ipga, ikkinchi yarmini 2-yivga berish mumkin.Resurslarni taqsimlash oson amalga oshiriladi, muvozanat buzilishiga olib kelmaydi. , va dastur iplarining bir-biridan to'liq mustaqilligini ta'minlaydi. Barcha resurslarni to'liq ajratish bilan bir protsessor aslida ikkitaga aylanadi. Boshqa tomondan, bitta dastur chizig'i ikkinchi oqim uchun foydali bo'lishi mumkin bo'lgan resurslardan foydalanmaydigan, ammo kirish huquqiga ega bo'lmagan vaziyat bo'lishi mumkin. Natijada, boshqacha tarzda ishlatilishi mumkin bo'lgan resurslar bo'sh qoladi.
Qattiq almashishning qarama-qarshi tomoni bu to'liq manba almashishdir. Bu sxemada istalgan resurslarga har qanday dastur yo'nalishi orqali kirish mumkin va ularga kirish so'rovlarini qabul qilish tartibida xizmat ko'rsatiladi. Asosan qo'shish va ayirish amallaridan iborat tez oqim ko'paytirish va bo'lish amallarini amalga oshiradigan sekin oqim bilan birga mavjud bo'lgan vaziyatni ko'rib chiqamiz. Agar ko'rsatmalar xotiradan ko'paytirish va bo'lish amallarini bajarishdan tezroq chaqirilsa, sekin ip ichida chaqiriladigan va quvur liniyasida navbatda turgan ko'rsatmalar soni asta-sekin o'sib boradi. Oxir-oqibat, bu buyruqlar navbatni to'ldiradi, natijada tez oqim undagi bo'sh joy etishmasligi tufayli to'xtaydi. Resurslarni to'liq taqsimlash umumiy resurslardan nomaqbul foydalanish muammosini hal qiladi, lekin ularni iste'mol qilishda nomutanosiblikni keltirib chiqaradi - bir ip boshqasini sekinlashtirishi yoki to'xtatishi mumkin.
Oraliq sxema resurslarni chegaraviy taqsimlash doirasida amalga oshiriladi. Ushbu sxema bo'yicha har qanday dastur ipi ma'lum (cheklangan) miqdordagi resurslarni dinamik ravishda qabul qilishi mumkin. Replikatsiya qilingan resurslarga qo'llanilganda, bu yondashuv resurslarni olishning iloji yo'qligi sababli dastur iplaridan birining bo'sh qolishi tahdidisiz moslashuvchanlikni ta'minlaydi. Agar, masalan, iplarning har biriga buyruqlar navbatining 3/4 qismidan ko'prog'ini egallash taqiqlangan bo'lsa, sekin ip tomonidan resurslarning ko'payishi tez bajarilishiga xalaqit bermaydi.
Pentium 4 ning gipertorlik modeli turli xil resurslarni almashish strategiyalarini birlashtiradi. Shunday qilib, har bir strategiya bilan bog'liq barcha muammolarni hal qilishga harakat qilinadi. Takrorlash har ikkala dastur zanjiri doimiy ravishda foydalanishi kerak bo'lgan resurslarga nisbatan amalga oshiriladi (xususan, dastur hisoblagichi, registrlarni xaritalash jadvali va uzilishlar boshqaruvchisiga nisbatan). Ushbu resurslarning takrorlanishi mikrosxemaning maydonini atigi 5% ga oshiradi - bu ko'p tarmoqli uchun juda mos narx ekanligiga rozi bo'lasiz. Shunday hajmda mavjud bo'lgan resurslar (masalan, kesh satrlari) dinamik ravishda taqsimlanadi. Quvurning ishlashini nazorat qiluvchi resurslarga kirish (xususan, uning ko'p navbatlari) bo'linadi - har bir dastur chizig'iga yarim slot beriladi. Pentium 4 da amalga oshirilgan Netburst arxitekturasining asosiy quvur liniyasi rasmda ko'rsatilgan. 8,7; Ushbu rasmdagi oq va kulrang joylar oq va kulrang dastur iplari o'rtasida resurslarni taqsimlash mexanizmini ifodalaydi.
Ko'rib turganingizdek, ushbu rasmdagi barcha navbatlar bo'lingan - har bir dastur chizig'iga yarmining yarmi ajratilgan. Hech bir ip boshqasining ishini cheklay olmaydi. Tarqatish va almashtirish bloki ham bo'linadi. Rejalashtiruvchi resurslar dinamik ravishda taqsimlanadi, lekin ba'zi chegara qiymatiga asoslanadi - shuning uchun hech qanday ip navbatning barcha uyalarini egallamaydi. Konveyerning boshqa barcha bosqichlari uchun to'liq ajratish mavjud.
Biroq, multithreading unchalik oddiy emas. Hatto bu ilg'or texnikaning ham kamchiliklari bor. Resurslarning qattiq bo'linishi jiddiy xarajatlar bilan bog'liq emas, lekin dinamik bo'linish, ayniqsa chegaralar bo'yicha, ish vaqtida resurslarning sarflanishini kuzatishni talab qiladi. Bundan tashqari, ba'zi hollarda dasturlar ko'p ish zarralarisiz unga qaraganda ancha yaxshi ishlaydi. Misol uchun, agar ikkita dastur zanjiri mavjud bo'lsa, ularning har biri to'g'ri ishlashi uchun keshning 3/4 qismini talab qiladi. Agar ular navbatma-navbat bajarilsa, ularning har biri kam sonli kesh o'tkazib yuborishlari bilan (qo'shimcha yuk bilan bog'liqligi ma'lum) juda yaxshi ishlaydi. Parallel bajarilgan taqdirda, har biri uchun kesh o'tkazib yuborilishi sezilarli darajada ko'p bo'ladi va yakuniy natija ko'p ish zarralari bo'lmaganidan ko'ra yomonroq bo'ladi.
RepPit 4 multithreading mexanizmi haqida qo'shimcha ma'lumot olish uchun qarang.

Hozirgi vaqtda ko'p yadroli protsessorlar hech kimni ajablantirmaydi. Aksincha, har bir kishi o'z kompyuterini iloji boricha ko'proq yadrolarni qo'llab-quvvatlashga harakat qilmoqda va shuning uchun tezroq ishlaydi va bu to'g'ri.
Protsessorlarga kelsak, bozorda uzoq vaqtdan beri faqat ikkita ishlab chiqaruvchi mavjud - bu Intel va AMD. Va agar ikkinchisi o'zlarining 8 va 10 yadroli protsessorlari haqida gapiradigan bo'lsa (ya'ni ularning ko'pi bor, ya'ni ular kuchliroqdir), unda birinchisi 2 va 4 yadroga ega, ammo ularning iplariga e'tibor qarating (g'azablangan holda yozish kerak emas) yadrolari va boshqalar mavjudligini izohlaydi, chunki uyda foydalanish uchun protsessorlar bundan keyin tavsiflanadi).

Va agar siz protsessor ishlashini taqqoslash grafiklariga qarasangiz, Intel'dan 4 yadroli protsessor (barchasi emas) AMD'dan 8 yadroli protsessorni quvib o'tishini ko'rishingiz mumkin. Nega shunday? Axir, 4 8 dan kam, ya'ni u zaifroq bo'lishi kerak ... Ammo agar siz chuqurroq qazsangiz (to'g'ridan-to'g'ri keshlarga, chastotaga, avtobusga va hokazolarga emas), siz tez-tez tasvirlangan bitta qiziqarli so'zni ko'rishingiz mumkin. Intel protsessorlari - Hyper-threading qo'llab-quvvatlash.

Hyper-threading texnologiyasi (oddiy odamlarda "gipertrend") Intel tomonidan ixtiro qilingan va faqat ularning protsessorlarida qo'llaniladi (barchasi emas). Men uning tafsilotlariga juda chuqur kirmayman, agar xohlasangiz, bu haqda o'qishingiz mumkin. Ushbu texnologiya, go'yo har bir yadroni ikkiga bo'lish imkonini beradi va natijada bitta jismoniy o'rniga bizda ikkita mantiqiy (yoki virtual) va ishlaydigan mavjud. Windows tizimi bitta o'rniga ikkita o'rnatilgan deb o'ylaydi.

Protsessorda nechta ip borligini qanday aniqlash mumkin?

Agar siz ma'lum bir protsessor haqida bilmoqchi bo'lsangiz, ko'pincha do'konlardagi tavsifda ular Hyper-threading-ni qo'llab-quvvatlashni yoki ushbu iborani kiritish orqali yoki oddiygina HT qisqartmasi bilan ko'rsatiladi. Agar bunday tavsif bo'lmasa, siz har doim rasmiy Intel sahifasida eng to'g'ri ma'lumotdan foydalanishingiz mumkin http://ark.intel.com/ru/search/advanced/?s=t&HyperThreading=true
Men faqat ushbu ma'lumotdan foydalanishni maslahat beraman, chunki u eng aniq.

Agar siz tizimda bo'lganingizda va xuddi shu mavzular sizning tizimingizda maxsus ishlatilganligini bilmoqchi bo'lsangiz, unda osonroq narsa yo'q.

Har qanday ishga tushiring qulay usul(eng oson yo'li - tezkor tugmalar birikmasi Ctrl + Shift + Esc ) istalgan joyda bo'lish (hech bo'lmaganda ushbu maqolani o'qish) va agar sizda Windows 7 bo'lsa, Ishlash yorlig'iga o'ting.


e'tibor bering yuqori chiziq protsessor yuki bilan va ayniqsa "kvadratchalar" soni bo'yicha. Bu qancha bo'ladi - shunchalik ko'p barcha yadrolar, shu jumladan barcha iplar bo'ladi. Aniqroq qilib aytadigan bo'lsak, barcha mantiqiy/virtual yadrolar bu yerda ko'rsatiladi va iplar aynan shunday.

Agar sizda Windows 8, 8.1 yoki 10 bo'lsa, unda bunday yorliq bo'lmaydi, lekin ishlash mavjud.


Bu erda men qayerga e'tibor berish kerakligini ta'kidladim. Aytgancha, men bu grafikni sichqonchaning o'ng tugmasi bilan bosganim bejiz emas edi, chunki agar siz Mantiqiy jarayonlar bandini tanlasangiz, grafik o'zgaradi va Windows 7 dagi kabi ko'rinadi, ya'ni. har bir yadro uchun 8 ta "kvadrat" va yuk grafiklari bo'ladi.
Agar sizda qarama-qarshi rasm bo'lsa, ya'ni. bitta emas, balki bir nechta grafiklar ko'rsatiladi, ya'ni bu element grafikning o'zi xususiyatlarida tanlangan.

Albatta, buni amalga oshirishning yana bir qancha usullari mavjud va bu holda oqimlar.

Misol uchun, siz tizim xususiyatiga qo'ng'iroq qilishingiz mumkin ( Win + R tugmalar birikmasi va tizim ma'lumotlarini kiriting ) va uni u erda ko'ring.