More Related Content Similar to Instruction sets
Similar to Instruction sets (20) More from Oidov Umbelee (11) Instruction sets2. Регистр ба процессорын түвшний
төхөөрөмжүүд
• Компьютерын програм нь командуудын
дараалал хэлбэртэй байна. Энэ командууд
нь бусад мэдээллийн адил 2-тын тоо
хэлбэртэй байх ба ямар үйлдэл хийхийг
заасан үйлдлийн код болон уг үйлдэлд орох
өгөгдлийн хаягийг агуулсан байна. Тухайн
үйлдэлд орж ашиглагдах өгөгдлийг
операнд гэнэ. Хоёр операндтай үйлдлийн
команд ерөнхий тохиолдолд
3. • Үйлдлийн код
• Ашиглагдах операндуудын хаяг
• Үйлдлийн үр дүнг хадгалах үүрийн хаяг
• Уг командын дараа биелэх дараагийн
командын хаяг
• гэсэн 4 элементээс тогтсон
4. • Код
• Операнд 1
• Операнд 2
• Үр дүнг хадгалах үүрийн хаяг
• Дараагийн командын хаяг
5. • Операндын хаягийн урт нь шууд хандах
санах ойн хэмжээ болон хаягийг өгөх аргаас
хамаардаг. Хэрэв үйлдлийн кодын уртыг 8
бит, хаягийн уртыг 14 бит гэж авбал, дээрх 4
хаяг агуулсан командын урт 64 бит болоход
хүрнэ. Ийм урт командуудаас бүтсэн
програмын хэмжээ ч ихсэх тул командын
уртыг багасгах арга хэрэгтэй болсон.
Командын уртыг регистрүүд ашиглан
багасгадаг. Регистрүүд нь команд
биелэгдэхэд шаардагдах хугацаа болон,
програмын хэмжээг багасгах зориулалттай.
6. • Ихэнх тохиолдолд, програмын командууд нь бичигдсэн
дарааллаараа дэс дараалан биелэгддэг. Харин бүлэг
командыг давтаж биелүүлэх, бүлэг командыг
биелүүлэлгүйгээр алгасах, тусгай зориулалттай бүлэг
командыг биелүүлэхээр очих ба тэндээс буцах гэсэн
цөөн тохиолдолд л дараачийн биелэх командын хаягийг
зааж өгөх шаардлагатай байдаг. Иймээс дараагийн
биелэх командын хаягийг команд дотор бичихгүй, харин
дараагийн биелэх командын хаягийг хадгалах
зориулалттай тусгай үүрийг (регистр) CPU-д нэмсэн. CPU
дэхь ийм төрлийн регистрыг IP (Instruction Pointer –
командын заагуур) гэнэ. Мөн програмын тоолуур
(Program Counter) гэдэг.
• Гарсан үр дүнгээ санах ойн өөр байрлалд биш харин
хоёр операндын аль нэгний нь оронд хадгалдаг
болгосон. Үр дүн 2-р операндын хаягт хадгалагдана.
7. • 2-р операндыг хассан. Мэдээж нэг хаягаар 2 операндыг
өгч чадахгүй учир, нэг операндыг тогтмол байрнаас авч,
үйлдлийн үр дүнг мөн тэр байрт үлдээдэг байхаар
болгосон. Энэ тогтмол байр нь регистр байхаар сонгож,
нэг регистр нэмсэн ба түүнийг аккумулятор (үр дүнг
хурааж хадгалж байх хураагуур гэсэн утгатай үг) гээд АС
гэж тэмдэглэдэг. Аккумулятор нь санах ойн үүртэй ижил
урттай байх ёстой ба түүний утгыг санах ойд хадгалах,
санах ойгоос уншиж түүнд бичих гэсэн нэмэлт 2 үйлдэл
шаардагдана.
• Хаягийн урт нь шууд хандах санах ойн хэмжээнээс
хамаарч харьцангуй их байдаг тул командад операндын
хаягийг шууд өгөхгүй харин операндын хаягийг хадгалж
байгаа регистрын дугаарыг зааж өгөх арга хэрэглэдэг.
Энэ нь ялангуяа дарааллын элементүүдийг
боловсруулахад илүү тохиромжтой байдаг. Уг дараалал
эхлэх эхний хаягийг суурь, уг дарааллын элементүүдэд
индексээр нь хандана.
8. • Элементийн_хаяг=суурь+индекс. Эдгээрийг
хадгалахад зориулагдсан регистрыг
харгалзан баазын регистр, индексийн
регистр гэнэ. Мөн дарааллыг боловсруулах
үед ямар нэгэн N дугаараас цааших
дугаартай элемент дээр үйлдэл хийх
тохиолдол гардаг. Тэгвэл элементийн хаяг
нь суурь+N+индекс гэсэн 3
хэмжигдэхүүнээр тодорхойлогдоно.
9. Регистрийн төрлүүд:
• Програмчлагддаг буюу хэрэглэгчид харагддаг регистрүүд
– Ерөнхий зориулалтын (аккумулятор, сегмент) – програмистын
хувьд илүү уян хатан, сонголт ихтэй. Командын хэмжээг ихэсгэж
болдог. 8-32 битийн хооронд байдаг. Ихэнх тохиолдолд 2
өгөгдлийн регистрийг нэгтгэн нэг том регистртэй адилаар
ажиллууллдаг.
– Тусгай зориулалтын (төлөвийн регистрүүд, хаягийн регистрүүд,
өгөгдөл хадгалах)– эдгээр нь үйлдлийн үр дүнд карри бит үүссэн,
орон хальсан, үйлдлийн үр дүн 0 гарсан гэх мэтийг заадаг.
Ерөнхий зориулалтын регистрүүдийг бодвол илүү хурдан.
Тасалдалтыг идэвхтэй ба идэвхгүй болгож болдог.
• Харагддаггүй регистрүүд (PC-program counter, IR-Instruction register,
Memory address register, memory buffer register)
•
11. Процессорын үндэс, CPU-ын тухай
• C PU –ын бүтэц:
– ALU
– Регистрүүд
– Дотоод
холболтууд (bus)
– Удирдах
байгууламж
(Control Unit)
12. • CPU-нь:
• Бусад төхөөрөмжийг удирдах – жишээ нь
мэдээллийг унших ба мэдээлэл бичих үйлдэл
хийхийг санах ойд “тушаах”.
• Өгөгдөл боловсруулах буюу өгөгдөл дээр
арифметик, логикийн үйлдэл хийх
• гэсэн үндсэн үүрэгтэй. Иймээс CPU нь удирдах
байгууламж ба арифметик логикийн үйлдэл хийдэг
байгууламж гэсэн 2 үндсэн хэсгээс тогтоно. CPU нь
өгөгдлийг (гадаад төхөөрөмжөөс) унших, өгөгдлийг
(гадаад төхөөрөмж рүү) гаргах болон
нэмэх, хасах, үржих, хуваах, 2 утгыг жиших гэх
арифметик ба логикийн цөөн үйлдэл хийдэг
автомат. Гэхдээ эдгээр үйлдлүүд нь аливаа
тооцоолох ажлыг програмчлахад хүрэлцээтэй
байдаг.
13. • CPU-ын үйлдлүүд:
• Команд (instruction) авчрах – fetch instruction
• Командыг декодлох (interpret instruction)
• Өгөгдөл авчрах - команд биелүүлэхэд
шаардлагатай өгөгдөл авчрах
• Өгөгдөл боловсруулах – команд биелүүлэхэд
арифметик эсвэл логик үйлдэл гүйцэтгэж
болно.
• Өгөгдөл бичих – командын үр дүнд гарсан
өгөгдлийг санах ойд эсвэл I/O-д бичих
14. Өгөгдөл илэрхийлэх, instruction
sets
• Компьютерын ойд тоон мэдээллийг дүрслэх
үндсэн арга бол 2-тын тооллын систем.
• 2-тын системд өгөгдсөн тоог 10т руу
хөрвүүлэхдээ:
• 0.1=1/2
• 0.01=1/4
• 0.001=1/8
15. • Хөвөх таслалтай бодит тоо: компьютерын шинжлэх ухаанд -
1,001000101*10110В хэлбэртэй бичсэн тоог (тооны бүхлийн
таслал хаана ч байж болно гэсэн утгаар) хөвөх таслалтай тоо
гэнэ. Тооллын нэг системийн хувьд суурь нь өөрчлөгдөхгүй
тогтмол байх тул хөвөх таслалтай тоог компьютерт дүрслэхдээ
түүний тэмдэг, мантис, эрэмбэ 3-ыг бичиж санахад хангалттай
байдаг. Хөвөх таслалтай бичсэн 2-тын тооны мантис нь
1≤мантис<2 нөхцөлийг хангаж байвал түүнийг энгийн хэлбэртэй
тоо гэнэ. Ө.х энгийн хэлбэртэй тооны бүхэл хэсэг нь тогтмол 1
байна. Жишээ нь 0,000000110111В тоог энгийн хэлбэрт бичье.
Хэрэв таслалыг баруун тийш нэг оронгоор зөөвөл
0,00000110111В болох учраас эхний тоотой тэнцүү болгохын
тулд 10-1–ээр үржиж өгөх ёстой. Иймд
0,000000110111В=0,00000110111*10-1В болох ба таслалыг дахин
баруун тийш нэг оронгоор зөөвөл 0,0000110111В болж эхний
тоотой тэнцүү болгохын тулд 10-10 тоогоор үржинэ. Эндээс
үзэхэд, өгсөн тоог энгийн хэлбэрт бичихийн тулд тооны таслал
эхний 1 цифрийн ард гартал дээрх үйлдлийг давтах хэрэгтэй.
Иймд 0,000000110111В=1,10111*10-111байна.
16. • Хөвөх таслалтай бодит тооны дүрслэл (floating-
point) – 2-тын хөвөх таслалтай бодит тоог дүрсэлдэг
хэд хэдэн ялгаатай хэлбэр байдаг. Хамгийн өргөн,
мөн микрокомпьютеруудад хэрэглэгддэг нь IEEE 754
(Institute for Electrical and Electronic Engineers)
формат. Бодит тоон дээр хийх үйлдлийг
хялбарчилж, хурдан биелдэг болгох зорилгоор
тооны эрэмбийг тэмдэггүй бүхэл тоо болгон
хувиргаж хадгалах нь илүү тохиромжтой. Үүний
тулд, хэрэв эрэмбийг n битээр дүрсэлж байгаа бол
2-n-1 тоог эрэмбэ дээр нэмж, гарсан тоо нэмэгдсэн
эрэмбэ гэнэ. Жишээ нь: тооны эрэмбийг 8 битээр
дүрслэх үед аравтын системд
17. • Instruction Set – командын багц. Команд
бүр 2 үндсэн алхамд гүйцэтгэгддэг.
• Компьютерын хийж чадах ажил машиныг
удирдаж байгаа командуудын багцаар
тодорхойлогдоно. Командын цикль нь
дараах дэд цикльтэй:
• Авчрах цикль – fetch cycle
• Гүйцэтгэх цикль – execute cycle
• Тасалдалтын цикль – interrupt cycle
19. • Авчрах
– РС регистрт дараагийн авчрах командын хаяг хадгалагдана.
– РС-д заагдсан санах ойн байрлалаас процессор командыг авчирна.
– РС-г нэмэгдүүлэн.
– Командыг IR регистрт ачаална. Энэ регистрт тухайн мөчид
биелэгдэх командын хаяг байна.
– Командыг декодлоно.
• Гүйцэтгэх
• Хийж байгаа үйлдлээсээ хамаарч тодорхойлогдоно. Үйлдлийн
төрлүүд нь:
– Процессор, санах ой хоёрын хооронд дамжуулалт хийх
– Процессор, оролт/гаралтын төхөөрөмж хоёрын хооронд
дамжуулалт хийх
– Өгөгдөл боловсруулах - өгөгдөл дээр арифметик буюу логик
үйлдэл хийх
– Удирдлага – үйлдлүүдийн шулуун дарааллын хувьд гарч болох
өөрчлөлт. Жишээ нь: үсрэлт (jump), салбарлах (branch)
20. • Команд биелүүлсний дараа тасалдалт үүссэн эсэхийг шалгана.
Хэрэв үүссэн бол тухайн програмын ажиллац байсан хэсгээ РС-
д, өгөгдлөө CPU-ын регистрүүдэд хийгээд, РС-ыг тасалдалт
боловсруулагч функцийг эхлүүлэхээр тохируулна. Уг тасалдалт
боловсруулагч тасалдалтыг гүйцэтгэсний дараа РС, болон CPU
регистрүүдээс өмнө ажиллаж байсан зүйлсээ сэргээн,
тасалдсан байсан програмаа үргэлжлүүлнэ. Дээрх зураг дээрээс
харахад тухайн агшинд нэг л команд биелэгдэж байна. Энэ үед
CPU бүрэн хүчин чадлаараа ашиглагдахгүй байна. Үүнийг
instruction pipelining хийснээр арилгаж болдог. Энэ тохиолдолд
өмнөх команд биелж дуусаагүй байхад дараагийн команд орж
болдог. Энэ нь командыг урьдаар авчран, буферлэх замаар
богино хугацаанд олон команд гүйцэтгэх боломж олгодог
архитектур. 2 салангид үе шаттай. Нэг үед команд биелүүлж
байхад, нөгөө нь санах ойн ашиглагдаагүй цикль ашиглан
дараагийн командыг авчирч байдаг.