Instruction Format — protsessor buyrug‘i ichidagi bit maydonlarining tuzilishi va ma’nosini belgilovchi andoza. Format operatsiya turini, operandlar manbasini, natija manzilini va qo‘shimcha boshqaruv belgilarini qayerdan o‘qishni ko‘rsatadi. U buyruqlar to‘plami arxitekturasining dasturchiga ko‘rinadigan qismi bo‘lib, assembler, kompilyator va apparat dekoderi uchun umumiy kelishuv yaratadi.
Maydonlar
Ko‘p formatlarda opcode bajariladigan amalni bildiradi. Registr maydonlari manba yoki natija registrlarining raqamini kodlaydi. Immediate maydon buyruqning o‘ziga yozilgan sonni saqlaydi; siljish yoki manzil maydoni xotira adresini hisoblashga xizmat qiladi. Ayrim bitlar operand kengligi, shart kodi, adreslash turi yoki imtiyoz darajasini tanlaydi.
Masalan, mavhum 32 bitli format quyidagicha bo‘lishi mumkin:
| Bitlar | Maydon | Vazifa |
|---|---|---|
| 31–26 | opcode | Amal oilasini tanlaydi |
| 25–21 | rd | Natija registri |
| 20–16 | rs | Birinchi manba registri |
| 15–0 | immediate | Ikkinchi operand yoki siljish |
Bu faqat tasviriy misol; haqiqiy arxitekturadagi joylashuv uning spetsifikatsiyasi bilan aniqlanadi. Bir xil bitlar boshqa formatda butunlay boshqa ma’noga ega bo‘lishi mumkin.
Uzunlik va muvozanat
Ruxsat etilgan formatlar bir xil uzunlikda bo‘lsa, buyruq chegarasini topish va parallel dekodlash osonlashadi. Biroq kichik doimiy son ham to‘liq so‘z egallaydi. O‘zgaruvchan uzunlikdagi format tez-tez ishlatiladigan amallarni ixcham kodlashi mumkin, lekin chegarani aniqlash va bir siklda bir necha buyruqni ajratish murakkablashadi.
Bitlar soni cheklanganligi sabab registrlar soni, opcode maydoni va immediate kengligi o‘rtasida tanlov mavjud. Ko‘proq registrni bevosita ko‘rsatish uchun ko‘proq bit kerak; bu doimiy qiymat yoki operatsiyalar soniga qoladigan joyni kamaytiradi. Arxitektura bir necha format orqali bu qarama-qarshilikni boshqaradi: registrli arifmetika, immediate amal, xotira va boshqaruv o‘tishi alohida tuzilishi mumkin.
Talqin va kengaytirish
Formatning ayrim maydonlari faqat asosiy opcode aniqlangandan keyin talqin qilinadi. Masalan, qo‘shimcha funksiya biti arifmetik oiladagi aniq amalni, prefiks esa keyingi bitlarning ma’nosini o‘zgartiradi. Rezerv qilingan kombinatsiyalar kelajakdagi kengaytma uchun qoldiriladi. Eski protsessor ularni noqonuniy buyruq sifatida rad etishi kerak; tasodifiy boshqa amal bajarishi moslikni buzadi.
Assembler mnemonikani formatga joylaydi, disassembler esa bitlardan mnemonikani qayta tiklaydi. Relokatsiya vaqtida linker manzil maydonining faqat tegishli qismini o‘zgartiradi. Debugger to‘g‘ri buyruq chegarasi va operandni ko‘rsatishi uchun aynan shu qoidalarga tayanadi.
Format semantikaning o‘zi emas. Ikki buyruq bir xil shaklda bo‘lib, opcode sabab turli natija berishi mumkin. Shuningdek, apparat ichki bajarishda buyruqni mikrooperatsiyalarga ajratsa ham, dasturiy vositalar uchun tashqi format o‘zgarmaydi.
Format dizaynida dekoderning kritik yo‘li ham hisobga olinadi. Ko‘p maydon doim bir xil bit pozitsiyasida tursa, registr indekslarini opcode to‘liq aniqlanishidan oldin o‘qish mumkin. Siqilgan formatlarda esa bir nechta kichik registr to‘plami yoki yashirin operand evaziga kod hajmi kamayadi. Bu tanlov faqat apparat tezligi emas, instruction cache sig‘imi va dastur binariysi hajmiga ham ta’sir qiladi. Kengaytma qo‘shishda eski format bilan chalkashmaydigan bo‘sh kod maydoni zarur.
Bog‘liq tushunchalar
instruction set architecture, opcode, operand, immediate value, addressing mode, instruction encoding