Mustaqil ish mavzu: Multitasking va Ko’poqimli tizimlar mutitasking va ko’poqimli tizimlar reja
Download 22.5 Kb.
|
Mustaqil ish mavzu Multitasking va Ko’poqimli tizimlar-fayllar.org
Multitasking muammo haqida ma'lumot berish uchun biz oddiy ikki muammoli MIPS protsessorini ko'rib chiqamiz, bu erda ko'rsatmalardan biri butun ALU operatsiyasi yoki filiali bo'lishi mumkin, ikkinchisi esa yuk yoki saqlash bo'lishi mumkin. Bunday dizayn ba'zi o'rnatilgan MIPS protsessorlarida qo'llaniladigan dizaynga o'xshaydi. Har bir tsikl uchun ikkita ko'rsatma berish 64 bitli ko'rsatmalarni olish va dekodlashni talab qiladi. Ko'pgina statik ko'p sonli protsessorlarda va asosan barcha VLIW protsessorlarida, dekodlash va ko'rsatmalar masalasini soddalashtirish uchun bir vaqtning o'zida ko'rsatmalar berish tartibi cheklangan. Shunday qilib, biz ko'rsatmalarni 64 bitli chegarada juftlashtirishni va tekislashni talab qilamiz, birinchi navbatda ALU yoki filial qismi paydo bo'ladi. Bundan tashqari, agar juftlikning bitta ko'rsatmasi ishlatilmasa, biz uni nop bilan almashtirishni talab qilamiz. Bizga ko'ra, ko'rsatmalar har doim juftlik bilan chiqariladi, ehtimol bitta uyada nop bilan. 4.68-rasmda ko'rsatmalar quvur liniyasiga juft bo'lib kirganda qanday ko'rinishi ko'rsatilgan. Multitasking protsessorlar potentsial ma'lumotlar bilan ishlash va xavflarni boshqarishda farqlanadi. Ba'zi dizaynlarda kompilyator barcha xavflarni bartaraf etish, kodni rejalashtirish va no-ops kiritish uchun to'liq javobgarlikni o'z zimmasiga oladi, shunda kod hech qanday xavfni aniqlash yoki apparat tomonidan ishlab chiqarilgan to'xtashlarsiz ishlaydi. Boshqalarida, apparat ma'lumotlar xavfini aniqlaydi va ikkita muammoli paketlar o'rtasida to'xtash joylari hosil qiladi, shu bilan birga kompilyatordan ko'rsatmalar juftligidagi barcha bog'liqliklardan qochishni talab qiladi.
Shunday bo'lsa ham, xavf odatda qaram bo'lganlarni o'z ichiga olgan butun muammo paketini majbur qiladi Multitasking muammoli quvur liniyasi ishlamoqda. ALU va ma'lumotlarni uzatish bo'yicha ko'rsatmalar bir vaqtning o'zida chiqariladi. Bu erda biz bir xil quvur liniyasi uchun ishlatiladigan besh bosqichli tuzilmani qabul qildik. Bu juda zarur bo'lmasa-da, ba'zi afzalliklarga ega. Xususan, ro'yxat oxiridagi yozuvlarni saqlash istisnolar bilan ishlashni va aniq istisno modelini saqlashni soddalashtiradi, bu ko'p sonli protsessorlarda yanada qiyinlashadi. Dasturiy ta'minot barcha xavf-xatarlarga bardosh berishi kerakmi yoki faqat alohida nashr paketlari o'rtasidagi xavflar ulushini kamaytirishga harakat qiladimi, bir nechta operatsiyalarni o'z ichiga olgan katta bitta yo'riqnomaga ega bo'lish ko'rinishi mustahkamlanadi. Ushbu misol uchun biz ikkinchi yondashuvni qabul qilamiz. ALU va ma'lumotlarni uzatish operatsiyalarini parallel ravishda chiqarish uchun odatiy xavfni aniqlash va to'xtash mantig'idan tashqari qo'shimcha uskunaga birinchi ehtiyoj - bu registr faylidagi qo'shimcha portlardir (4.69-rasmga qarang). Bir soat siklida biz ALU operatsiyasi uchun ikkita registrni va do'kon uchun yana ikkita registrni, shuningdek, ALU operatsiyasi uchun bitta yozish portini va yuk uchun bitta yozish portini o'qishimiz kerak bo'lishi mumkin. ALU ALU operatsiyasi uchun bog'langanligi sababli, ma'lumotlarni uzatish uchun samarali manzilni hisoblash uchun bizga alohida qo'shimcha kerak bo'ladi. Ushbu qo'shimcha manbalarsiz, bizning ikki muammoli quvur liniyasi tizimli xavf-xatarlar tufayli to'sqinlik qiladi. Shubhasiz, bu ikki muammoli protsessor ish faoliyatini ikki baravar oshirishi mumkin. Biroq, buning uchun bajarilishda ikki baravar ko'p ko'rsatmalar bir-biriga mos kelishi kerak va bu qo'shimcha takrorlanish ma'lumotlar va nazorat qilish xavfidan nisbiy ishlash yo'qotilishini oshiradi. Masalan, bizning oddiy besh bosqichli quvur liniyasida, Multitasking muammoli ma'lumotlar yo'li. Ikki marta chiqarish uchun zarur bo'lgan qo'shimchalar ta'kidlangan: ko'rsatmalar xotirasidan yana 32 bit, yana ikkita o'qish porti va registr faylida yana bitta yozish porti va boshqa ALU. Tasavvur qiling, pastki ALU ma'lumotlarni uzatish uchun manzil hisoblarini boshqaradi va yuqori ALU qolgan hamma narsani boshqaradi. yuklar bir soat siklining foydalanish kechikishiga ega, bu esa bitta ko'rsatma natijadan to'xtab qolmasdan foydalanishga to'sqinlik qiladi. Ikki bosqichli, besh bosqichli quvur liniyasida yuk ko'rsatmasi natijasini keyingi takt siklida ishlatib bo'lmaydi. Bu shuni anglatadiki, keyingi ikkita ko'rsatmalar yuk natijasini to'xtamasdan ishlata olmaydi. Bundan tashqari, oddiy besh bosqichli quvur liniyasida foydalanish kechikishiga ega bo'lmagan ALU ko'rsatmalari endi bitta ko'rsatmalardan foydalanish kechikishiga ega, chunki natijalarni juftlashtirilgan yuklash yoki saqlashda ishlatib bo'lmaydi. Ko'p sonli protsessorda mavjud parallelizmdan samarali foydalanish uchun ko'proq ambitsiyali kompilyator yoki apparatni rejalashtirish texnikasi talab qilinadi va statik bir nechta muammo kompilyatordan ushbu rolni o'z zimmasiga olishini talab qiladi. Ko'p sonli oddiy kodni rejalashtirish Ushbu tsikl MIPS uchun statik ikki muammoli quvur liniyasida qanday rejalashtirish: Iloji boricha ko'proq quvur liniyasi to'xtab qolmasligi uchun ko'rsatmalarni qayta tartiblang. Taxminlarga ko'ra, filiallar prognoz qilingan, shuning uchun nazorat xavflari apparat tomonidan hal qilinadi.
Ko'pgina superskalarlar dinamik masalalar bo'yicha qarorlarning asosiy doirasini dinamik quvurlarni rejalashtirishni o'z ichiga oladi. Dinamik quvur liniyasini rejalashtirish xavf va to'xtashlardan qochishga harakat qilganda ma'lum bir soat siklida qaysi ko'rsatmalar bajarilishini tanlaydi. Keling, ma'lumotlar xavfidan qochishning oddiy misolidan boshlaylik. Quyidagi kod ketma-ketligini ko'rib chiqing: Qo'shimcha ko'rsatma bajarishga tayyor bo'lsa ham, u lw va addu birinchi bo'lib tugashini kutishi kerak, agar xotira sekin bo'lsa, bu juda ko'p soat tsikllarini olishi mumkin.
|
ma'muriyatiga murojaat qiling