Nazorat savollari
1.
CISC arxitekturasi
2.
RISC arxitekturasi
3.
VLIW arxitekturasi
74
12-Ma’ruza.
Oqimlarni boshqarish buyruqlar turlari
Reja:
1.
Oqimlarni boshqarish buyruqlari
2.
Buyruqlar turlari
Tayanch iboralar:
shartsiz sakrash, shartli sakrash, siklni boshqarish.
Oqimlarni boshqarish buyruqlari
Keyingi buyruqning manzilini buyruqlar tuzilmasidan chiqarib tashlash
buyruqlarning dasturda joylashish tartibi bo'yicha bajarilishini (tanlanishini)
nazarda tutadi. Bunday tanlash - "tabiiy tartibda" - buyruq hisoblagichi yordamida,
buyruq hisoblagichi tarkibiga joriy buyruqdagi baytlar sonini qo'shish orqali
amalga oshiriladi.
Ammo ba'zi hollarda jamoalarni tanlashning tabiiy tartibini o'zgartirish
kerak bo'ladi. Buning uchun buyruqlar tizimiga dasturni boshqarish buyruqlari
kiritiladi. Bular tegishli boshqaruvni uzatish protseduralarini amalga oshiradigan
o'tish ko'rsatmalaridir. Xuddi shu maqsadlar uchun kompyuter arxitekturasiga
uzilishlar tizimi deb ataladigan maxsus tizim kiritilgan.
Dasturni boshqarish buyruqlari quyidagi buyruqlarni o'z ichiga oladi:
• shartsiz sakrash,
• shartli sakrash,
• siklni boshqarish,
• qo'ng'iroq (kichik dasturlar),
• shartli chaqiruv (kichik dasturlar).
Ingliz tilida o'tish atamasi odatda shartsiz o'tish buyruqlari uchun ishlatiladi
va filial odatda shartli o'tish buyruqlari uchun ishlatiladi, garchi bu atama
sotuvchilar tomonidan majburiy ravishda bajarilmasa ham. Misol uchun, Intel
shartli va shartsiz sakrash uchun sakrash atamasini ishlatadi. Buyruqlar oqimini
boshqarish uchun to'rtta asosiy buyruq turi mavjud: shartli o'tish, shartsiz o'tish,
protsedura chaqiruvi va protsedurani qaytarish.
75
Statistik ma'lumotlarga ko'ra, ushbu buyruqlardan foydalanish chastotasi
rahminan quyidagicha. Dasturlarda shartli o'tish buyruqlari ustunlik qiladi. Turli
dasturlarda ko'rsatilgan boshqaruv buyruqlari orasida ulardan foydalanish
chastotasi 66 dan 78% gacha. Keyingi eng ko'p ishlatiladigan shartsiz o'tish
buyruqlari (12 dan 18% gacha). Protseduralarni bajarish va bajarishdan o'tish
chastotasi 10 dan 16% gacha.
Bunday holda, dastur hisoblagichiga nisbatan shartsiz tarmoq buyruqlarining
tahminan 90% bajariladi. O'tish ko'rsatmalari uchun sakrash manzili har doim
oldindan ma'lum bo'lishi kerak. Bu kompilyatsiya vaqtida ma'lum bo'lmagan va ish
vaqtida aniqlanishi kerak bo'lgan qaytarish manzillariga taalluqli emas. Filialning
manzilini aniqlashning eng oddiy usuli - dastur hisoblagichining joriy qiymatiga
nisbatan uning o'rnini ko'rsatish (ko'rsatma ofsetidan foydalangan holda) va
bunday o'tishlar dastur hisoblagichiga nisbatan deyiladi. Ushbu adreslash usulining
afzalligi shundaki, filial manzillari odatda bajarilayotgan buyruqning joriy
manziliga yaqin joylashgan bo'lib, dastur hisoblagichining joriy qiymatiga nisbatan
ko'rsatish ofsetda oz sonli bitlarni talab qiladi. Bundan tashqari, dastur-son-nisbiy
adreslashdan foydalanish dastur qayerda yuklangan bo'lishidan qat'i nazar,
xotiraning istalgan joyida ishlashiga imkon beradi. Ya'ni, bu adreslash usuli
avtomatik ravishda o'zgartiriladigan dasturlarni yaratishga imkon beradi.
Kompilyatsiya vaqtida manzil ma'lum bo'lmagan bilvosita manzilga qaytish
va o'tishlarni amalga oshirish dastur hisoblagichiga nisbatan adreslashdan boshqa
usullarni talab qiladi. Bunday holda, dastur ishlayotgan vaqtda o'tish manzili
dinamik ravishda aniqlanishi kerak. Eng oddiy yo'l - qaytish manzilini saqlash
uchun registrni belgilash yoki o'tish manzilini hisoblash uchun sakrash uchun
istalgan adreslash usuliga ruxsat berilishi mumkin.
Sakrash ko'rsatmalarini amalga oshirishdagi asosiy masalalardan biri sakrash
ko'rsatmasining o'zidan sakrashning maqsadli manzili qanchalik uzoqda? Va
ko'rsatmalardan foydalanish statistikasi bu savolga javob beradi: aksariyat hollarda
o'tish o'tish yo'riqnomasiga nisbatan 3-7 ko'rsatma ichida sodir bo'ladi va 75%
76
hollarda o'tish manzilni oshirish yo'nalishida amalga oshiriladi. , ya'ni dasturdan
oldin.
Ko'pgina ko'rsatmalar oqimini boshqarish shartli tarmoq ko'rsatmasi
bo'lganligi sababli, arxitekturani amalga oshirishda muhim masala o'tish shartlarini
aniqlashdir. Buning uchun uch xil yondashuv qo'llaniladi. Ulardan birinchisi bilan
protsessor arxitekturasi maxsus registrni ta'minlaydi, uning bitlari ma'lum shart
kodlariga mos keladi. Shartli o'tish ko'rsatmalari ushbu shartlarni bajarayotganda
tekshiradi. Ushbu yondashuvning afzalligi shundaki, ba'zida shart kodini o'rnatish
va unga rioya qilish qo'shimcha vaqtni yo'qotmasdan amalga oshirilishi mumkin,
ammo bu juda kam. Va bu yondashuvning kamchiliklari shundaki, birinchi
navbatda, mashinaning yangi holatlari paydo bo'ladi, ular kuzatilishi kerak
(uzilishda yashiringan va undan qaytib kelganda tiklanadi). Ikkinchidan, hozirgi
yuqori tezlikdagi quvur liniyasi arxitekturalari uchun juda muhim, shart kodlari
oqimdagi ko'rsatmalarni bajarish tartibini cheklaydi, chunki ularning asosiy
maqsadi shart kodini shartli o'tish ko'rsatmasiga o'tkazishdir.
Ikkinchi usul oddiygina o'zboshimchalik bilan (ehtimol bitta ajratilgan)
umumiy maqsadli registrdan foydalanishdir. Bunday holda, ushbu reestrning holati
tekshiriladi, unda taqqoslash operatsiyasining natijasi oldindan joylashtiriladi.
Ushbu yondashuvning kamchiliklari dasturda tahlil qilish uchun maxsus registr
shart kodlarini ajratish zarurati hisoblanadi.
Uchinchi usul solishtirish va o'tish buyruqlarini bitta buyruqda birlashtirishni
o'z ichiga oladi. Ushbu yondashuvning kamchiligi shundaki, bu birlashtirilgan
buyruqni bajarish juda qiyin (bitta buyruqda siz ikkala shart turini ham, taqqoslash
uchun doimiyni ham, o'tish manzilini ham ko'rsatishingiz kerak). Shuning uchun,
bunday mashinalarda ko'pincha kompromis qo'llaniladi, ba'zi shart kodlari uchun
bunday ko'rsatmalar, masalan, nolga solishtirish uchun ishlatiladi va murakkabroq
shartlar uchun shartlar registridan foydalaniladi. Ko'pincha, butun son
operatsiyalari va suzuvchi nuqta operatsiyalari uchun taqqoslash buyruqlari
natijalarini tahlil qilish uchun turli xil usullar qo'llaniladi, ammo buni dasturlarda
suzuvchi nuqta operatsiyalarini bajarish shartlariga ko'ra sakrashlar soni ancha kam
77
ekanligi bilan izohlash mumkin. butun son arifmetikasi natijalari bilan aniqlangan
sakrashlarning umumiy sonidan.
Ko'pgina dasturlarning eng diqqatga sazovor xususiyatlaridan biri bu
teng/teng bo'lmagan taqqoslashlar va nol taqqoslashlarning keng tarqalganligi.
Shuning uchun, ba'zi arxitekturalarda bunday buyruqlar, ayniqsa, "taqqoslash va
o'tish" kabi buyruqlardan foydalanganda alohida kichik to'plamda ajratiladi.
Shartli shox ko'rsatmani sinovdan o'tkazish sharti to'g'ri bo'lsa, filial
bajarilgan deb ataladi. Bunda o'tish buyrug'i bilan belgilangan manzilga sakrash
amalga oshiriladi. Shuning uchun barcha shartsiz filial ko'rsatmalari doimo
bajariladi. Statistik ma'lumotlarga ko'ra, dastur bo'ylab orqaga sakrashlar ko'p
hollarda tsikllarni tashkil qilish uchun ishlatiladi va ularning 60% ga yaqini davom
etayotgan sakrashlardir. Umuman olganda, shartli o'tish ko'rsatmalarining xatti-
harakati aniq dasturga bog'liq, lekin ba'zida kompilyatorga bog'liqlik ham o'ynaydi.
Ushbu kompilyatorga bog'liqliklar sikl bajarilishini tezlashtirish uchun
kompilyatorlarni optimallashtirish orqali amalga oshiriladigan boshqaruv
oqimining o'zgarishi natijasida yuzaga keladi.
Do'stlaringiz bilan baham: |