Registras (procesoriaus): Skirtumas tarp puslapio versijų

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Ištrintas turinys Pridėtas turinys
Vezhlys (aptarimas | indėlis)
S kat
Lot-bot-as (aptarimas | indėlis)
S Kai kurių rašybos, skyrybos, wiki ar kitų klaidų taisymas
Eilutė 1: Eilutė 1:
'''Registras''' - tai specializuota [[Atmintis (kompiuterio)|atminties]] ląstelė, esanti [[Procesorius|procesoriuje]]. Būna dviejų rūšių registrai:
'''Registras''' - specializuota [[Atmintis (kompiuterio)|atminties]] ląstelė, esanti [[Procesorius|procesoriuje]]. Būna dviejų rūšių registrai:
* Programuojami - tokie, kurie pasiekiami komandomis, jie naudojami, kaip pagrindinis einamosios atminties elementas, naudojamas procesoriaus komandų.
* Programuojami - tokie, kurie pasiekiami komandomis, jie naudojami, kaip pagrindinis einamosios atminties elementas, naudojamas procesoriaus komandų.
* Pagalbiniai - jų turinys iš viso nepasiekiamas arba pasiekiamas tik netiesiogiai, jie naudojami, vykdant komandas, pvz., komandų [[Skaitliukas (procesoriaus)|skaitliukas]], [[Vėliavėlė (procesoriaus)|vėliavėlės]].
* Pagalbiniai - jų turinys iš viso nepasiekiamas arba pasiekiamas tik netiesiogiai, jie naudojami, vykdant komandas, pvz., komandų [[Skaitliukas (procesoriaus)|skaitliukas]], [[Vėliavėlė (procesoriaus)|vėliavėlės]].

16:28, 28 lapkričio 2006 versija

Registras - specializuota atminties ląstelė, esanti procesoriuje. Būna dviejų rūšių registrai:

  • Programuojami - tokie, kurie pasiekiami komandomis, jie naudojami, kaip pagrindinis einamosios atminties elementas, naudojamas procesoriaus komandų.
  • Pagalbiniai - jų turinys iš viso nepasiekiamas arba pasiekiamas tik netiesiogiai, jie naudojami, vykdant komandas, pvz., komandų skaitliukas, vėliavėlės.

Programuojami registrai būna skirstomi į dvi rūšis:

  • Bendros paskirties registrai - komandose nurodomi tiesiogiai
  • Akumuliatoriai - komandose naudojami pagal nutylėjimą

Bendros paskirties registrai, savo ruožtu, kartais skirstomi į:

  • Universalius - visiems darbams tinkamus
  • Duomenų registrus - nenaudojamus adresacijai, o tik manipuliavimui duomenimis
  • Adresų registrus - skirtus adresavimui:

Skirtingai nuo įprastos atminties, registrai yra neatskiriama procesoriaus dalis, daugumos paplitusių procesorių komandos leidžia manipuliuoti tik duomenimis, esančiais registruose. Tipišku atveju, procesorius perkelia duomenis iš atminties į registrą, atlieka su duomenimis tam tikrus veiksmus, o paskui perkelia duomenis atgal į atmintį:

# Įsivaizduojamo supaprastinto procesoriaus, turinčio bendros paskirties registrus, programa
MOVB REG0, 0000h       # Į registrą REG0 perkeliamas baitas, esantis atminties adresu 0000
MOVB REG1, 0001h       # Į registrą REG1 perkeliamas baitas, esantis atminties adresu 0001
ADD REG0, REG1         # Prie REG0 turinio pridedamas REG1 turinys, rezultatas patenka į REG0
MOVB 0002h, REG0       # Baitas, esantis REG0, perkeliamas į atmintį, adresu 0002

Procesoriai, kurie leidžia komandose nurodyti aritmetines operacijas, nenurodant registro, priskiriami CISC grupei: šiuose proceosriuose viena komanda faktiškai atlieka kelias operacijas, kuriose dalyvauja nenurodomi, bet faktiškai panaudojami registrai:

# Įsivaizduojamo supaprastinto CISC procesoriaus, turinčio bendros paskirties registrus, programa
MOVB 0002h, 0000h      # Perkelti ląstelės 0000 turinį į 0002, faktiškai atliekami veiksmai:
 # MOVB REG0, 0000h      # 0000 turinys perkeliamas į registrą
 # MOVB 0002h, REG0      # registro turinys perkeliamas į 0002
ADDB 0002h, 0001h      # Prie ląstelės 0000 turinio pridėti 0001 turinį, faktiškai atliekami veiksmai:
 # MOVB REG0, 0002h      # 0002 turinys perkeliamas į registrą REG0
 # MOVB REG1, 0001h      # 0001 turinys perkeliamas į registrą REG1
 # ADD REG1, REG0        # registrų turinys sudedamas
 # MOVB 0002h, REG1      # registro turinys perkeliamas adresu 0002

Akivaizdu, kad nors faktiniai skaičiavimai tie patys, vietoje keturių veiksmų tenka atlikti 6 (procesoriaus efektyvumas mažesnis), tačiau jiems užrašyti tereikia 2 komandų (programuoti paprasčiau).

RISC procesorių efektyvumas didinamas, dar labiau apribojant komandų darbo su atmintimi bei konstantomis galimybes, neretai net negalima perkeldinėti duomenų tiesiogiai iš registro į atmintį ir atvirkščiai, tačiau bendras procesoriaus efektyvumas nuo to tik padidėja. Tam, kad registrai būtų panaudojami efektyviau, jie jungiami į tam tikrus masyvus, vadinamus registrų langais.

Procesorių architektūrų skirstymas taip pat paremtas registrų panaudojimu (eilės tvarka, nuo primityvių iki išvystytų architektūrų):