Jump to content

Командын багц

Википедиа — Чөлөөт нэвтэрхий толь
Команд

Командын багц (Lua error in Module:Lang at line 1169: attempt to index field 'engvar_sel_t' (a nil value).) гэдэг нь компьютерын програм хангамж болон техник хангамжийн ойлголцох хэсэг юм.Програм хангамж болон техник хангамж нь ойлголцож холбогдож ажилласнаар бие биедээ хөгжих боломжийг илүү олгодог.


Командын элемент

[засварлах | кодоор засварлах]
  • Үйлдлийн код (operation code)
  • Ашиглагдах операндуудын хаяг (Source operand reference)
  • Үйлдлийн үр дүнг хадгалах үүрийн хаяг (Result operand reference)
  • Уг командын дараа биелэх дараагийн командын хаяг (Next instruction reference)

Командын үндсэн алхмууд

[засварлах | кодоор засварлах]
  • РС регистрт дараагийн авчрах командын хаяг хадгалагдана.
  • РС-д заагдсан санах ойн байрлалаас процессор командыг авчирна.
  • РС-г нэмэгдүүлэнэ.
  • Командыг IR регистрт ачаална. Энэ регистрт тухайн мөчид биелэгдэх командын хаяг байна.
  • Командыг декодлоно

Энэ цикл нь хийж байгаа үйлдлээсээ хамаарч тодорхойлогдоно. Үйлдлийн төрлүүд нь:

  • Процессор, санах ой хоёрын хооронд дамжуулалт хийх
  • Процессор, оролт/гаралтын төхөөрөмж хоёрын хооронд дамжуулалт хийх
  • Өгөгдөл боловсруулах
  • Өгөгдөл дээр арифметик буюу логик үйлдэл хийх (нэмэх, хасах гэх мэт..)
  • Удирдлага – үйлдлүүдийн шулуун дарааллын хувьд гарч болох өөрчлөлт. (үсрэлт (jump), салбарлах (branch) гэх мэт..)

Команд биелүүлсний дараа тасалдалт үүссэн эсэхийг шалгана. Хэрэв үүссэн бол тухайн програмын ажиллаж байсан хэсгээ РС-д, өгөгдлөө CPU-ын регистрүүдэд хийгээд, РС-ыг тасалдалт боловсруулагч функцийг эхлүүлэхээр тохируулна. Уг тасалдалт боловсруулагч тасалдалтыг гүйцэтгэсний дараа РС, болон CPU регистрүүдээс өмнө ажиллаж байсан зүйлсээ сэргээн, тасалдсан байсан програмаа үргэлжлүүлнэ.Тухайн агшинд нэг л команд биелэгдэж байвал,энэ үед CPU бүрэн хүчин чадлаараа ашиглагдахгүй байна. Үүнийг instruction pipelining хийснээр арилгаж болдог. Энэ тохиолдолд өмнөх команд биелж дуусаагүй байхад дараагийн команд орж болдог. Энэ нь командыг урьдаар авчран, буферлэх замаар богино хугацаанд олон команд гүйцэтгэх боломж олгодог архитектур. 2 салангид үе шаттай. Нэг үед команд биелүүлж байхад, нөгөө нь санах ойн ашиглагдаагүй цикл ашиглан дараагийн командыг авчирч байдаг.

Командын урт нь командын утгаас хамаарч янз бүрийн урттай байж болдог. Personal computer, mainframes болон supercomputer-н процессорууд нь ихэвчлэн 8-64 битийн хооронд урттай командын багц ашигладаг. Хамгийн урт нь x86 дээрх команд багц энэ нь 15 байт буюу 120 бит юм. Харин RISC (Reduced Instruction Set Computing)-д тогтмол 4 байт буюу 32бит байдаг. Операндын хаягийн урт нь шууд хандах санах ойн хэмжээ болон хаягийг өгөх аргаас хамаардаг. Хэрэв үйлдлийн кодын уртыг 8 бит, хаягийн уртыг 14 бит гэж авбал, дээрх 4 хаяг агуулсан командын урт 64 бит болоход хүрнэ. Ийм урт командуудаас бүтсэн програмын хэмжээ ч ихсэх тул командын уртыг багасгах арга хэрэгтэй болсон. Командын уртыг регистрүүд ашиглан багасгадаг. Регистрүүд нь команд биелэгдэхэд шаардагдах хугацаа болон, програмын хэмжээг багасгах зориулалттай.