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
Ko’pgina zamonaviy kompyuterlar ikki yoki undan ortiq sathga
ega.
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.
2-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.
3-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.
3 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.
4-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.
4 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.
5-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: |