1.1-rasm. Ko’p bosqichli mashina
Til va virtual mashina o’rtasida muhim munosabatlar mavjud.
Har bir mashina ma’lum bir mashina tilini qo’llab-quvvatlaydi, bu mashina bajarishi mumkin bo’lgan barcha buyruqlardan iborat. Aslida, mashina tilni aniqlaydi. Xuddi shunday, til bir mashinani, ya’ni shu tilda yozilgan barcha dasturlarni bajaradigan mashinani belgilaydi.
Albatta, bir tilda yoki boshqa tilda aniqlangan dastgoh elektron davrlardan qurish juda qiyin va qimmat, ammo biz bunday mashinani tasavvur qilishimiz mumkin. Mashina tili C yoki C ++ bo’lgan kompyuter juda murakkab bo’lar edi, ammo printsipial jihatdan zamonaviy texnologiyalarning yuqori sathi hisobga olingan holda ishlab chiqilishi mumkin. Biroq, bunday kompyuterni qurmaslik uchun yaxshi sabablar bor - bunday yechim boshqalarga nisbatan samarasiz. Darhaqiqat, texnologiya nafaqat maqsadga muvofiq, balki oqilona bo’lishi kerak.
n-sathli kompyuterni har birining o’ziga xos mashina tili bo’lgan n har xil virtual mashinalar deb hisoblash mumkin. Biz "sath" va "virtual mashina" atamalarini bir-biridan foydalanamiz. Faqat T0 da yozilgan dasturlarni kompyuter tomonidan translyatsiya qilinmasdan yoki
interpretatsiyasiz amalga oshirish mumkin. T1, T2, ..., Tn -da yozilgan dasturlar quyi sathdagi interpretatordan o’tishi yoki quyi sathga mos keladigan tilga translyatsiya qilinishi kerak.
n sathli virtual mashina uchun dasturlar yozadigan odam, quyi sathdagi interpretatorlar va interpretatorlar haqida bilishi shart emas.
Mashina ushbu dasturlarni bajaradi va ular interpretator tomonidan bosqichma-bosqich bajariladimi yoki ularni o’zi qayta ishlaydimi, muhim emas. Ikkala holatda ham natija bir xil - dasturning bajarilishi.
n sathli mashinadan foydalanadigan aksariyat dasturchilar faqat mashina tiliga o’xshash eng yuqori sathga qiziqishadi. Biroq, kompyuter aslida qanday ishlashini tushunishni istaganlar barcha sathlarni o’rganishlari kerak. Yangi kompyuterlar yoki yangi sathlarni ishlab chiquvchilar (ya’ni yangi virtual mashinalar) barcha sathlar bilan tanish bo’lishi kerak.
1.3 Zamonaviy ko’p bosqichli mashinalar
ega.
Ko’pgina zamonaviy kompyuterlar ikki yoki undan ortiq sathga
Oltita sathli mashinalar ham mavjud (1.2-rasm). 0-sath - bu noldan
pastda joylashgan apparat sathi. Ushbu sath 1.2 shaklda ko’rsatilmagan, chunki bu elektronika sohasiga kiradi va shuning uchun ma’ruzada kitobda keltirilmagan. Bunga fizik qurilma sathi deyiladi. Ushbu sathda tranzistorlar mavjud, ular kompyuter ixtrochilari uchun sodda hisoblanadi. Agar kimdir tranzistorlarning qanday ishlashi bilan qiziqsa, qattiq jismlar fizikasi sohasiga murojaat qilishga majbur bo’ladi.
Biz o’rganadigan eng past sathda, ya’ni raqamli mantiq sathda ob’ektlar ventillar deb nomlanadi. Ventillar analog komponentlardan (masalan, tranzistorlardan) qurilgan bo’lsa ham, ularni raqamli qurilmalar sifatida aniq modellashtirilishi mumkin. Har bir ventilda bitta yoki bir nechta raqamli kirish mavjud (signallar 0 yoki 1 ni bildiradi).
Ventil signallarni oddiy yoki funktsiyalarini hisoblaydi, masalan, VA yoki KI.
Har bir ventil bir nechta tranzistorlardan hosil bo’ladi. Bir nechta ventillar 0 yoki 1 ni o’z ichiga olishi mumkin bo’lgan 1 xotira bitini tashkil qiladi. Xotira bitlari, guruhlarga birlashtirilgan, masalan, 16, 32 yoki 64, registrlar. Har bir registrda ma’lum bir diapazonda bitta ikkilik raqam bo’lishi mumkin. Ventillar hisoblash tizimining eng asosiy qismini yaratish uchun ham ishlatilishi mumkin.
1.2- rasm. Olti sathli kompyuter.
Keyingi sathga mikroarxitektura sathi deyiladi. Ushbu sathda mahalliy (lokal) xotirani va AMQ (Arifmetik-matiqiy qurilma) deb nomlangan sxemani tashkil etadigan (odatda) 8 yoki 32 registrlar to’plami mavjud.
AMQ oddiy arifmetik amallarni bajaradi. Registrlar AMQ bilan birgalikda ma’lumotlar qabul qilingan yo’lni hosil qiladi. Ma’lumotlar yo’lining asosiy ishlashi quyidagicha amalga oshiriladi: bitta yoki ikkita registrlar tanlangan, AMQ ular ustida bir nechta operatsiyalarni bajaradi (masalan, qo’shish), shundan so’ng natija yana registrga joylashtiriladi.
Ba’zi bir mashinalarda ma’lumotlar trakti mikrodastur deb nomlangan maxsus dastur tomonidan boshqariladi. Boshqa mashinalarda ma’lumotlar trakti to’g’ridan-to’g’ri apparat tomonidan boshqariladi.
Ma’lumotlar uzatiladigan trakt dasturiy ta’minot tomonidan boshqariladigan mashinalarda, dasturiy ta’minot 2-sathdagi buyruqlar uchun interpretator hisoblanadi. Masalan, ADD buyrug’i bajarilganda, u xotiradan chaqiriladi, uning operandalari registrlarga joylashtiriladi, AMQ yig’indini hisoblab chiqadi va keyin natija kerak bo’lgan joyga yuboriladi. Ma’lumotlarini boshqarish yo’llari uskunali boshqariladigan kompyuterda xuddi shunday protsedura sodir bo’ladi, ammo 2-sathli buyruqlarni sharhlaydigan dastur yo’q.
chi sath buyruqlar majmuasi arxitekturasi deb nomlanadi.
Keyingi bosqich odatda gibriddir. Uning tilidagi buyruqlarning aksariyati buyruqlar to’plamining arxitekturasi sathidadir (sathlarning birida mavjud bo’lgan buyruqlar boshqa sathlarda ham namoyish etilishi mumkin).
Ushbu sath ba’zi qo’shimcha funktsiyalarga ega: yangi buyruqlar to’plami, boshqa xotira tashkil etilishi, bir vaqtning o’zida ikki yoki undan ortiq dasturlarni bajarish qobiliyati va boshqalar. 1- va 2- sathlarni qurishdan ko’ra 3- sathni qurishda ko’proq xilma-xillik mavjud.
sathga kiritilgan yangi vositalar ikkinchi sathda ishlaydigan interpretator tomonidan bajariladi. Ushbu interpretator bir vaqtlar operatsion tizim deb nomlangan. 2-sathli buyruqlar bilan bir xil bo’lgan 3-chi sathdagi buyruqlar operatsion tizim tomonidan emas, balki dasturiy yoki qo’shimcha vositalar tomonidan bajariladi. Boshqacha qilib aytganda, 3-sathli buyruqlarning bir qismi operatsion tizim tomonidan, boshqa qismi esa dasturiy ta’minot tomonidan interpretatsiya qilinadi. SHuning uchun bu sath gibrid deb hisoblanadi. Ushbu sathni operatsion tizim sathi deb ataymiz.
va 4- sathlar o’rtasida tub farq mavjud. Pastki uchta sath oddiy dasturchilar tomonidan ishlatilishi mo’ljallanmagan. Ular dastlab interpretatorlar va translyatorlarga qaratilgan bo’lib, yuqori sathdagi ishlarni ta’minlaydilar. Ushbu translyatorlar va interpretatorlar yangi virtual mashinalarni ishlab chiqarishga ixtisoslashgan tizim dasturchilari tomonidan yaratilgan. To’rtinchi va undan yuqori sathlar amaliy muammolarni hal qiladigan dasturchilar uchun mo’ljallangan.
sathga kiritilgan yana bir o’zgarish yuqori sathlarni qo’llab- quvvatlash mexanizmidir. 2 va 3 sathlar har doim interpretatsiya qilinadi, 4, 5 va undan yuqori sathlar odatda (har doim ham emas) translyatsiya qilinadi.
1, 2, 3 va 4, 5 va undan yuqori sathlar o’rtasidagi yana bir farq bu tilning o’ziga xos xususiyati. 1, 2 va 3 sathdagi mashina tillari raqamli hisoblanadi. Ushbu tillarda yozilgan dasturlar raqamlar uzun satrlaridan iborat bo’lib, ular kompyuter tomonidan o’qilishi mumkin, ammo odamlar tomonidan juda kam tushuniladi. 4-sathdan boshlab, tillarda odamlar tushunadigan so’zlar va qisqartmalar mavjud.
sath quyi sathdagi tillardan birining ramziy shaklini anglatadi. Ushbu sathda, kishi 1, 2 va 3 sathlar uchun dasturlarni virtual mashinalarning tiliga o’xshamaydigan shaklda yozishi mumkin. Ushbu
dasturlar birinchi navbatda 1, 2 yoki 3 tilga translyatsiya qilinadi, so’ngra tegishli virtual yoki real dunyo mashinasi tomonidan interpretatsiya qilinadi.
Translyatsiyani bajaradigan dastur assembler deb nomlanadi.
sath, odatda dastur dasturchilari uchun mo’ljallangan tillardan iborat. Bunday tillarga yuqori sathdagi tillar deyiladi. Yuzlab yuqori sathdagi tillar mavjud. Ular orasida eng mashhurlari C, C ++, Java, Perl, Python va PHP. Ushbu tillarda yozilgan dasturlar odatda 3 yoki 4 sathga translyatsiya qilinadi, ba’zi hollarda translyatsiyalar mavjud bo’lsa ham, ushbu dasturlarni qayta ishlaydigan interpretatorlar kompilyator deb ataladi. Masalan, Java dasturlari dastlab bayt-kod Java deb nomlangan mashinaga o’xshash tilga translyatsiya qilinadi, keyinchalik u izohlanadi.
Ba’zi hollarda, 5-sath ramziy mantiq kabi ma’lum bir amaliy domen uchun interpretatordan iborat. Ushbu domen muammolarini ushbu domenning malakali shaxs tomonidan yaxshi tushunilgan kontekstida hal qilish uchun ma’lumotlar va operatsiyalarni ta’minlaydi.
SHunday qilib, ushbu tavsifdan shuni esda tutish kerakki, kompyuter bir-birining ustiga qurilgan sathlarning ierarxik tuzilishi sifatida yaratilgan.
Har bir sath ba’zi ob’ektlar va operatsiyalarning mavhumligidir. SHu tarzda kompyuterning tuzilishini o’rganish va tahlil qilish orqali biz keraksiz tafsilotlarni e’tiborsiz qoldiramiz va shu tariqa murakkab mavzuni tushunishni osonlashtiramiz.
Har bir alohida sathning ma’lumotlar turlari, operatsiyalari va tavsiflari to’plamiga arxitektura deyiladi. Arxitektura ushbu sathdagi foydalanuvchiga ko’rinadigan jihatlar bilan shug’ullanadi. Masalan, dastur yozishda qancha xotiradan foydalanishingiz mumkinligini bilish arxitekturaning bir qismidir. Amalga oshirish jihatlari (masalan, xotirani amalga oshirishda foydalaniladigan texnologiyalar) arxitekturaning bir qismi emas. Kompyuter tizimining dasturiy elementlarini loyihalash usullarini o’rganish, biz kompyuter arxitekturasini o’rganamiz. Amaliyotda "kompyuter arxitekturasi" va "kompyuter tashkiloti" atamalari bir-birining o’rnida ishlatiladi.
Do'stlaringiz bilan baham: |