Միկրոկոդ

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Jump to navigation Jump to search

Միկրոկոդը (միկրոծրագիր) ծրագիր է, որը նախատեսված է պրոցեսորի հրամանների շարքը իրականացնելու համար։ Ինչպես նաև, երբ բարձր մակարդակի լեզվի մեկ հրաման փոխակերպվում է մեքենայական հրամանների շարքերի, միկրոկոդ օգտագործող պրոցեսորում յուրաքանչյուր մեքենայական հրաման իրականացվում է միկրոհրամանների շարքի տեսքով՝ միկրոծրագրի։

Միկրոկոդ օգտագործող համակարգերի մեծամասնությունը, այն հիմանկան հիշողությունում չի գտնվում, այլ հատուկ արագագործ հիշողությունում (англ. control store)։ Այդ հիշողությունը կարող է թողնել միայն կարդալ կամ կարդալ-գրել, վերջին դեպքում պրոցեսորի բեռնման ընթացքում միկրոկոդը կարող է բեռնվել հիմնական հիշողություն։ Միկրոկոդի փոփոխության հնարավորությունը թույլ է տալիս մշակել գտնված սխալները և ավելացնել նոր իրականացված հրամաններ։ Միկրոկոդը նաև հնարավորություն է տալիս կարգավորել համակարգիչների միկրոսխեմաները էմիլյացնելով այլ (որպես կանոն ավելի դժվար) ճարտարապետությունների (architecture) վրա։

Միկրոծրագրերը կազմված են միկրոհրամաններից, հաճախ կոչվում են էլեմենտար օպերացիաներ։ Միկրոհրամնները ղեկավարում են պրոցեսորով՝ ամենացածր մակարդակում։ Առանձին միրոհրամանը կարող է պարունակել ներքոնշյալ գործողությունները՝

  • Միացնել 1 ռեգիստը «Ա» թվաբանակն-տրամաբանական սարքի մուտքին (arithmetic logic unit (ALU))
  • Միացնել 7 ռեգիստրը «Բ» ԹՏՍ-ի մուտքին
  • Կարգավորել ԹՏՍ-ն օպրացիաներ իրականացնելու համար
  • Կարգավորել ԹՏՍ-ի մուտքի փոխանցումը 0-ի։
  • Պահել օպերացիայի արդյունքը ռեգիստր 8-ում
  • Թարմեցնել կոդի վիճակը ԹՏՍ-ի կարգավիճակի ֆլագի հետ («Բացասական», «զրո», «գերլցում», «փոխանցում»)
  • Տեղակայել միկրոհրամանի ցուցիչ nnn միկրոհրամանի համարով։

Որպեսզի մեկ միկրոհրամանը կարողանա այդ համարը նկարագրել, միկրոհրամանները հաճախ արվում են բավականչափ «ընդարձակ», օրինակ 56 բիթ կամ ավել։ Միկրոհրամանները, իրենց հերթին նախաձեռնեւմ են միկրոօպերացիաներ։ Դրանք հենց տվյալների համար էլեմենտար փոխարկումներն են, որպես օրինակ՝

  1. Ռեգիստրում պատճենել օպերանդը
  2. դնել 1 ֆլագ
  3. օպերանդը դնել շինայում
  4. ստեկի գագաթը 1-ով մեծացնել և այլն։

Հղումներ[խմբագրել | խմբագրել կոդը]