Kas yra instrukcijų registras?

Kalbant apie kompiuterio aparatinę įrangą, komandų registras yra kompiuterio ar kito įrenginio centrinio procesoriaus (CPU) elementas, turintis programavimo komandą, kuri bus vykdoma kito laikrodžio ciklo pradžioje, kaip padiktuoja kitos laikrodžio dalys. CPU. Kiti procesoriaus elementai, pvz., komandų dekoderis, remiasi komandų registru, kad saugotų šią informaciją, kad ją būtų galima iššifruoti, išspręsti ir galiausiai įvykdyti. Naudojant kai kurių tipų mikroprocesorių architektūrą, gali būti daugiau nei vienas komandų registras, todėl vienu metu galima apdoroti kelias komandas, suformuojant surinkimo linijos logikos stilių, vadinamą konvejeriu. Paprastai nauji nurodymai komandų registrui pateikiami per kitą procesoriaus dalį, žinomą kaip programos skaitiklis, kuri atlieka labai panašią paskirtį, tačiau gali pereiti prie kitos komandos, kol vykdoma komandų registre saugoma informacija.

Registras yra mikroprocesoriaus arba grandinės plokštės fizinių jungiklių serija, kurią galima įjungti arba išjungti, todėl kiekvienas jungiklis yra lygus bitui. Kai keli jungikliai, dar vadinami skląsčiais, yra susieti, jie gali saugoti dvejetainius duomenis, pvz., skaičius, kuriuos galima paversti atminties adresais arba instrukcijų kodais. CPU komandų registre gali būti vykdomos komandos adresas kompiuterio atmintyje arba, siekiant efektyvumo, jame gali būti ir pati komanda. Ši informacija perduodama registrui per kitą registrą, žinomą kaip programos skaitiklis, kuris daugeliu atvejų pereina į kitą komandą, kuri turi būti vykdoma perdavus esamą komandą.

Instrukcijų tipai, kuriuos apdoroja registrai, paprastai yra žemo lygio surinkimo kalbos komandos, kurios galiausiai paverčiamos mašininiu kodu arba baitų kodu. Tai labai skiriasi nuo instrukcijų aukštesnio lygio programavimo kalbomis, nes surinkimo instrukcijos veikia labai mažu, tiesioginiu mastu. Vienas iš pavyzdžių yra aukšto lygio kodo eilutė, kuri sudeda du skaičius ir išsaugo rezultatus kintamajame, kuriam išreikšti reikia tik vienos aukšto lygio kodo eilutės. Kai kodas sukompiliuojamas, užduočiai atlikti gali būti sugeneruota keliolika ar daugiau instrukcijų, o kiekviena instrukcija yra kažkas paprastos, pavyzdžiui, kompiuterio laisvosios kreipties atminties (RAM) ir paslaugų registro reikšmių maišymas.

Kai komandų registras nurodo komandą, ji perduodama komandų dekoderiui, kad komandą būtų galima konvertuoti į mašinos kodą. Nuorodos į atminties vietas, kuriose gali būti kintamieji ar kita informacija, yra išspręstos ir ta informacija kartais įtraukiama į kitus registrus. Galiausiai bus įvykdyta tikroji instrukcija. Per šį laiką CPU padidins programos skaitiklį, kad nurodytų kitą komandą, kuri bus saugoma komandų registre, kad procesas galėtų kartotis, kol bus vykdoma visa programa.