Instruction set — protsessor bajarishi mumkin bo‘lgan mashina buyruqlari, registrlar, ma’lumot turlari, adreslash usullari va ularning binary kodlanishini belgilovchi arxitektura interfeysidir. U ISA qisqartmasi bilan yuritiladi. Dasturiy ta’minot ISAga kompilyatsiya qilinadi, turli mikroarxitekturalar esa ayni ISA buyruqlarini boshqa ichki usulda bajarishi mumkin.
ISA va mikroarxitektura
x86-64, Arm AArch64 va RISC-V ISA oilalariga misol. ISA ADD, load/store, branch, atomic va privilege buyruqlarining ko‘rinadigan xulqini belgilaydi. Pipeline chuqurligi, cache hajmi, execution unit soni va branch predictor ISA emas, mikroarxitektura xususiyatidir. Shu sababli ikkita x86-64 protsessor ayni binaryni ishga tushiradi, lekin tezligi va energiya sarfi farq qiladi.
Application Binary Interface calling convention, registerdan foydalanish, stack joylashuvi, system call va obyekt formatini belgilaydi. Bir ISAning o‘zida OS va ABI farqi binary moslikni buzishi mumkin. Source kod qayta kompilyatsiya qilinsa portable bo‘lishi, tayyor binary esa bo‘lmasligi mumkin.
Buyruq kategoriyalari
Data movement register, xotira va I/O orasida qiymat ko‘chiradi. Arithmetic va logical buyruqlar qo‘shish, bit operatsiyasi, shift va taqqoslash bajaradi. Control flow branch, call va returnni boshqaradi. Load/store xotira bilan ishlaydi; atomic instruction ko‘p yadroli sinxronlash primitiveini beradi.
Privilege buyruqlari page table, interrupt va qurilma boshqaruviga tegishli bo‘lib, faqat kernel rejimida bajariladi. User jarayon taqiqlangan buyruqni ishlatsa exception yuz beradi. Virtualizatsiya extensionlari hypervisorga guest operatsiyalarini nazoratli bajarishga yordam beradi.
RISC va CISC
RISC tarixan sodda, odatda bir xilroq uzunlikdagi buyruq va load/store modeliga urg‘u beradi. CISC murakkabroq adreslash va o‘zgaruvchan uzunlikdagi buyruqlarni qamrab oladi. Zamonaviy chegaralar qat’iy emas: x86 protsessor murakkab buyruqlarni ichki micro-oplarga ajratadi, Arm va RISC-V ham vector hamda maxsus extensionlarga ega.
Instruction encoding zichligi instruction cache va decode bandwidthga ta’sir qiladi. Qisqa buyruq binaryni kichraytiradi, lekin variable-length decode murakkablashishi mumkin. Compiler scheduling va register allocation target mikroarxitektura uchun optimallashtiriladi.
Kengaytmalar
SIMD/vector extension bitta buyruq bilan ko‘p element ustida amal bajaradi. Kriptografik extension AES yoki hash operatsiyalarini tezlashtiradi. Extension mavjudligini dastur runtime feature detection bilan tekshiradi; aks holda illegal instruction xatosi keladi. Portable kutubxona baseline kod va tezlashtirilgan variantlarni saqlab, mosini tanlaydi.
RISC-V modul extension modeli implementatsiyaga kerakli imkoniyatni tanlashga ruxsat beradi. Bu binary targetni aniq ko‘rsatishni talab qiladi. Cross-compiler, emulator yoki QEMU boshqa ISA uchun build va testda yordam beradi, ammo timing hamda apparat xulqini to‘liq takrorlamasligi mumkin.
Xavfsizlik
Speculative execution ISA bo‘yicha bekor qilingan buyruq natijasini architectural statega yozmaydi, ammo cache kabi mikroarxitektura izlari yon kanal yaratishi mumkin. Memory ordering qoidalari parallel kodning ko‘rinuvchanligini belgilaydi. To‘g‘ri atomic va barrier buyruqlarini compiler intrinsic yoki til atomic APIlari orqali ishlatish zarur.
Exception va interrupt modeli
ISA division by zero, invalid opcode, page fault va external interruptda protsessor qaysi privilegega o‘tishi, qaysi holatni saqlashi va qayerdan davom etishini belgilaydi. Precise exception oldingi buyruqlar commit, keyingilari commit qilinmagan ko‘rinishni beradi. Operatsion tizim trap frame orqali jarayon registerlarini saqlab, handlerdan keyin qaytaradi. Virtualizatsiya ayrim eventlarni hypervisorga trap qiladi, bu I/O intensiv workloadga qo‘shimcha xarajat keltirishi mumkin.
Deprecation va compatibility
ISA odatda eski binarylarni uzoq saqlaydi, lekin privileged yoki optional feature olib tashlanishi mumkin. OS CPU feature mask va minimum baseline orqali qo‘llovni boshqaradi. Container host kernel ISA sini bo‘lishadi, shuning uchun boshqa arxitektura image emulyatorsiz ishlamaydi.
Bog‘liq tushunchalar
ISA, Microarchitecture, Assembly language, ABI, SIMD, Machine code, CPU register