Nazorat Savolari: 1. Buyruq darajasida moslik deganda nima tushunasiz?
2. Konveyerli qayta ishlash qanday amalga oshiriladi?
3. Super konveyerni qayta ishlash qanday amalga oshiriladi?
4. Superskalyar hisoblash qanday amalga oshiriladi?
5. Hyper-Threading teхnologiyasi nima maqsadda qullaniladi?
16-Ma’ruza. Multi tasking va ko’p oqimli tizimlar VLIW SMT (simultaneous multithreading) Reja:
Multi tasking
Ko’p oqimli tizimlar
VLIW SMT
Tayanch iboralar:Multi tasking, ko’p oqimli tizimlar, VLIW SMT.
Multitasking - bu operatsion tizimning bir vaqtning o'zida bir nechta dasturlarni ishga tushirish qobiliyati. Ushbu printsipni shaxsiy kompyuterlarda amalga oshirish operatsion tizim tomonidan bir vaqtning o'zida ishlaydigan jarayonlarning har biri uchun ajratilgan vaqtni ajratish uchun apparat taymeridan foydalanishga asoslangan. Agar bu vaqtlar etarlicha qisqa bo'lsa va mashina juda ko'p dasturlar bilan ortiqcha yuklanmagan bo'lsa, foydalanuvchiga bu dasturlarning barchasi parallel ravishda bajarilayotgandek tuyuladi.
Multithreading- bu mashina dasturida parallel bajariladigan bo'limlar yoki protseduralar (iplar) mavjud bo'lgan rejim. Shunday qilib, ko'p ish zarralari mexanizmi dasturning o'zi bir nechta vazifani bajarishga imkon beradi. Ko'p vazifani bajarish g'oyasi yangi emas. Multitasking o'nlab, yuzlab terminallar ulangan asosiy kompyuter kabi yirik ko'p foydalanuvchili kompyuterlarda amalga oshiriladi. Bunday terminal ekranida o'tirgan har bir foydalanuvchi butun mashinaga eksklyuziv kirish huquqiga ega degan taassurotga ega. Bundan tashqari, bunday kompyuterlarning operatsion tizimlari ko'pincha foydalanuvchilarga vazifalarni fonga qo'yish imkonini beradi, bu erda ular foydalanuvchi boshqa dastur bilan ishlashi mumkin bo'lgan vaqtda bajariladi. Shaxsiy kompyuterlar ko'p vazifalarni bajarish uchun apparat ta'minotiga ega emas edi. Bu to'liq oqlandi. Bir tomondan, arzon narxlardagi haydovchi soddalashtirilgan apparat echimlariga olib keldi. Boshqa tomondan, foydalanuvchi allaqachon barcha kompyuter resurslariga ega edi va oddiy foydalanuvchi bir vaqtning o'zida bir nechta dasturlar bilan ishlashi mumkin emas. Boshqa muammoni hal qilish uchun foydalanuvchi joriy dasturdan chiqib, yangisini yuklashi mumkin. Biroq, vaqt o'tishi bilan shaxsiy kompyuterda ishlash oddiygina ko'p vazifalarni bajarish talabiga aylandi. Misol uchun, 100 sahifali matnni va hatto nuqta matritsali printerda chop etishingiz kerakligini tasavvur qiling. Bu dars bir necha soat davom etadi. Va agar bir vaqtning o'zida kompyuter printerga ma'lumot yuborishdan boshqa hech narsa qila olmasa, unda bu jarayon qanchalik zerikarli bo'ladi. Ammo yaqinda kurs ishlari, tezislar va boshqa ishlar shunday chop etildi. Ko'p vazifali apparat prototipi uzilish tizimiga ega bo'lgan protsessorlardan olinishi mumkin. Umuman olganda, mikroprotsessorning uzilishi - bu boshqaruvni joriy dasturdan maxsus xizmat protsedurasiga o'tkazishdan iborat bo'lgan maxsus holatlarga javob. Qayta ishlashni talab qiladigan bunday holatlarga apparat komponentlaridan (klaviatura, dinamik ravishda yangilangan xotira, video karta, taymer) muhim tashqi hodisalar to'g'risida signallarning paydo bo'lishi va dasturning ishlashidagi xatolar yoki qiyinchiliklar haqida ichki mikroprotsessor birliklaridan xabarlar (masalan, bo'linish) kiradi. nol, xotiraga kirish taqiqlangan). Ko'pincha uzilishlar tor ma'noda faqat birinchi turdagi so'rovlar sifatida tushuniladi va ikkinchi turdagi so'rovlar istisnolar deb ataladi. Uzilishlarni qayta ishlash sxemasi quyidagicha:
-asosiy foydalanuvchi dasturining ishlashi;
- uzilishning yuzaga kelishi;
-ishlayotgan dastur (protsessor registrlari) parametrlarini saqlash;
-uzilishlarni qayta ishlash protsedurasi manziliga o'tish;
-uzilishlarni qayta ishlash protsedurasini bajarish;
- ishlayotgan dastur parametrlarini tiklash;
-Asosiy dasturning keyingi buyrug'ining manziliga o'tish. Yuqori ustuvorlikdagi uzilishlar, o'z navbatida, joriy uzilishning uzilishini qayta ishlash va h.k. Uzilishlar ustida ishlashning yana bir yaqqol kamchiligi shundaki, dastur bo'limlarini o'zgartirish tartibi protsedura va funksiyalardan foydalanishga o'xshaydi - ya'ni dastur elementlari tartibining aniq sxemasi - uzilishdan faqat dasturga qaytish mumkin edi. bu vaqtda uzilish sodir bo'lgan va buni barcha uzilish harakatlari tugaguniga qadar qilish mumkin emas. Ko'p oqimli muhitda dasturlarni bir vaqtning o'zida ishlaydigan iplar deb ataladigan qismlarga bo'lish mumkin. Dastur nuqtai nazaridan, "oqim" oddiygina dasturdagi boshqa funktsiyalarni ham chaqira oladigan funksiyadir. Dastur o'zining an'anaviy C dasturlarida asosiy funksiya bo'lgan asosiy (asosiy) ipdan va Windows dasturlarida WinMain dan ishlay boshlaydi. Bajarilgandan so'ng, funktsiya boshlang'ich tirqish funktsiyasi bilan tizim chaqiruvini amalga oshirish orqali qayta ishlashning yangi oqimlarini yaratishi mumkin. Preemptiv rejimdagi operatsion tizim jarayonlar bilan bir xil tarzda iplar orasidagi boshqaruvni o'zgartiradi. Shunday qilib, ko'p ish zarralari - bu ko'p vazifali printsipni dastur doirasida amalga oshirish. Ko'p vazifalilik kompyuterning bir vaqtning o'zida bir nechta dasturlar bilan ishlashini anglatadi. Masalan, siz ekranda bitta ma'lumotlar bazasidagi ma'lumotlar bilan ishlashingiz va ma'lumotlarni tahlil qilishingiz mumkin, kompyuter esa boshqa ma'lumotlar bazasidan ma'lumotlarni saralaydi, elektron jadval esa alohida ish varag'ida hisob-kitoblarni amalga oshiradi. Bu Macintosh yoki DOS topshiriq almashtirgichida MultiFinder yoki System 7 dan foydalanganda sodir bo'ladigan "kontekstni almashtirish" yoki "vazifalarni almashtirish" deb ham ataladigan ilovalarning "bir nechta yuklanishi" dan farq qiladi. Kontekstni almashtirish bir nechta ilovalarni ochishga imkon beradi, lekin bir vaqtning o'zida faqat bittasi ishlaydi. Aslida, hatto haqiqiy ko'p vazifalarni bajarishda ham, istalgan vaqtda faqat bitta dastur ishlaydi. Ammo kompyuter avtomatik ravishda biridan ikkinchisiga juda tez o'tganligi sababli, barcha dasturlar bir vaqtning o'zida ishlayotganga o'xshaydi. (Kontekstni almashtirishda siz tugmani bosish yoki sichqonchani bosish orqali bir dasturdan boshqasiga qachon o'tishni hal qilasiz.) Har bir alohida dastur sekinroq ishlaydi, albatta, chunki har bir dastur kompyuter vaqtining faqat bir qismini oladi va ma'lum vaqtdan beri. dasturdan dasturga o'tish jarayonida yo'qoladi. Ideal holda, ko'p vazifalarni bajarish qobiliyati kompyuteringizning operatsion tizimiga o'rnatilgan. DOS-da ko'p vazifali funksiyalar mutlaqo yo'q, lekin DESQ ko'rinishi va Windows uni qandaydir tarzda ta'minlaydi. Mac o'zining fonda chop etish xususiyatida kooperativ ko'p vazifalarni bajarishga imkon beradi, bu siz bir hujjatni boshqasida ishlayotganingizda chop etish imkonini beradi. "Ko'p vazifa" so'zi ko'pincha defissiz yoziladi; Men o'qishni osonlashtirish uchun so'zdagi defisni maxsus qo'ydim. Ko'p ish zarralarining eng ilg'or turi superskalyar protsessorlarga taalluqlidir. An'anaviy superskalar protsessor har bir protsessor siklida bir ish zarrachasidan bir nechta ko'rsatmalar chiqaradi, bir vaqtning o'zida ko'p ish zarrachalari (SMT) bilan, superskalyar protsessor har bir protsessor siklida bir nechta iplardan ko'rsatmalar berishi mumkin. SMT dan ip o'tkazishning boshqa turlarini farqlash uchun "o'tkinchi ip" atamasi bir vaqtning o'zida faqat bitta ipdan ko'rsatmalar berilishi mumkinligini bildirish uchun ishlatiladi. Interleaved multithreading uchun muhokama qilingan apparat xarajatlariga qo'shimcha ravishda, SMT quvur liniyasining har bir bosqichi uchun qo'shimcha xarajatlarga ega bo'lib, har bir qayta ishlangan ko'rsatmaning ip identifikatorini kuzatib boradi. Shunga qaramay, keshlar va TLBlar kabi umumiy resurslarning hajmi qayta ishlanayotgan ko'p sonli faol oqimlarga mos kelishi kerak. Agar ko'p protsessorli tizimlar bir yoki bir nechta yadrolarda bir nechta to'liq protsessorlarni o'z ichiga olgan bo'lsa, ko'p ish zarralari ip darajasidagi parallelizm hamda ko'rsatmalar darajasidagi parallelizmdan foydalanish orqali bitta yadrodan foydalanishni oshirishga qaratilgan. Ikkala usul bir-birini to'ldirganligi sababli, ular ba'zan bir nechta ko'p tarmoqli protsessorli va bir nechta ko'p tarmoqli yadroli protsessorli tizimlarda birlashtiriladi. Kompyuter arxitekturasida multithreading - bu markaziy protsessor (protsessor) (yoki ko'p yadroli protsessorda bitta yadro) bir vaqtning o'zida operatsion tizim tomonidan qo'llab-quvvatlanadigan bir nechta bajarilishini ta'minlash qobiliyatidir. Ushbu yondashuv ko'p ishlov berishdan farq qiladi. Ko'p tarmoqli ilovada ish zarrachalari bir yoki bir nechta yadro resurslarini baham ko'radi, jumladan, hisoblash birliklari, protsessor keshi va tarjimani kutish buferi (TLB). Ikkala usul bir-birini to'ldirganligi sababli, ular ba'zan bir nechta ko'p tarmoqli protsessorli va bir nechta ko'p tarmoqli yadroli protsessorli tizimlarda birlashtiriladi.