1 819
pakeitimų
Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
S (ESM pervadino puslapį Registrai į Procesoriaus registrai) |
|||
| 1 eilutė: | 1 eilutė: | ||
'''Procesoriaus registrai''' - tokia esminė [[procesorius|procesoriaus]] dalis - specialios atminties ląstelės, su kuriomis tiesiogiai atliekami skaičiavimai ir į kurias tiesiogiai išsaugomi visokie duomenys. Beveik jokiam normaliam naudotojui visiškai nežinoma, kas tai yra per daiktas, tačiau registrus puikiai žino visi, kas bent kažkiek moka programuoti [[asembleris|asembleriu]], nes dauguma veiksmų būna būtent su registrais. | '''Procesoriaus registrai''' - tokia esminė [[procesorius|procesoriaus]] dalis - specialios atminties ląstelės, su kuriomis tiesiogiai atliekami skaičiavimai ir į kurias tiesiogiai išsaugomi visokie duomenys. Beveik jokiam normaliam naudotojui visiškai nežinoma, kas tai yra per daiktas, tačiau registrus puikiai žino visi, kas bent kažkiek moka programuoti [[asembleris|asembleriu]], nes dauguma veiksmų būna būtent su registrais. | ||
'''Registras''' - tam tikra speciali atminties ląstelė, esanti [[procesorius|procesoriuje]] ir tiesiogiai naudojama procesoriaus vykdomoms operacijoms. Skirtingai nuo [[operacinė atmintis|operacinės atminties]], kuri būna adresuojama (t.y., naudojami atminties ląstelių numeriai), registras yra ne adresuojamas, o įvardinamas, t.y., jis turi nuosavą pavadinimą, pvz., R1, R2, R3, R4 ar AX, BX, CX, DX ar EAX, EBX, ECX, EDX ar dar kokį nors, kokį tam tikri procesoriaus kūrėjai sugalvojo. Tokie pavadinimai naudojami, programuojant [[asembleris|asembleriu]]. | |||
Registrai yra viena iš kelių svarbiausių kompiuterio atminties rūšių - viena yra būtent registrai, o kita - tai [[operacinė atmintis]]. Aišku, dar kartais būna koks nors [[stekas]], bet paprastai šiais laikais jo niekas beveik nenaudoja, o dar būna [[registrų langai]], bet jie yra išties tie patys registrai, tik sugrupuoti į didesnes grupes. | Registrai yra viena iš kelių svarbiausių kompiuterio atminties rūšių - viena yra būtent registrai, o kita - tai [[operacinė atmintis]]. Aišku, dar kartais būna koks nors [[stekas]], bet paprastai šiais laikais jo niekas beveik nenaudoja, o dar būna [[registrų langai]], bet jie yra išties tie patys registrai, tik sugrupuoti į didesnes grupes. | ||
| 7 eilutė: | 9 eilutė: | ||
Pagal savo paskirtį registrai gali būti skirstomi į kokias penkias rūšis: | Pagal savo paskirtį registrai gali būti skirstomi į kokias penkias rūšis: | ||
* Universalūs duomenų registrai, su kuriais daromi bet kokie skaičiavimai | * Universalūs duomenų registrai, su kuriais daromi bet kokie skaičiavimai | ||
* Specializuoti registrai, skirti konkretiems skaičiavimų operandams ir rezultatams, t.y., akumuliatoriai | * Specializuoti duomenų registrai, skirti konkretiems skaičiavimų operandams ir rezultatams, t.y., akumuliatoriai | ||
* Adresų registrai, kurie saugo [[operacinė atmintis|operacinės atminties]] adresus - t.y., [[rodyklės|rodykles]] arba [[pointeriai|pointerius]] | * Adresų registrai, kurie saugo [[operacinė atmintis|operacinės atminties]] adresus - t.y., [[rodyklės|rodykles]] arba [[pointeriai|pointerius]] | ||
* Universalūs registrai, kurie gali būti naudojami ir kaip duomenų, ir kaip adresų registrai | * Universalūs registrai, kurie gali būti naudojami ir kaip duomenų, ir kaip adresų registrai | ||
* Specializuoti registrai, kurie atlieka kokias nors papildomas funkcijas, pvz., saugo segmento adresą, steko adresą, kokį nors vykdymo statusą ar dar ką nors neaiškaus | * Specializuoti vykdymo registrai, kurie atlieka kokias nors papildomas funkcijas, pvz., saugo segmento adresą, steko adresą, kokį nors vykdymo statusą ar dar ką nors neaiškaus | ||
Kartais išskiriamos ir specializuotos registrų rūšys: | |||
* Akumuliatoriai - tai tie registrai, kurie yra skirti tam tikroms operacijoms - jų įvedimui ir rezultatų gavimui. Naudojami dažniausiai primityviuose [[8 bitai|8 bitų]] procesoriuose. | |||
* Adresų registrai - dažniausiai nenaudojami įprastoms skaičiavimo operacijoms, o naudojami darbui su [[operacinė atmintis|operacine atmintimi]] - juose esantis skaičius reiškia operacinės atminties adresą, kuris gali būti panaudotas veiksmams su atitinkamą adresą turinčia atminties ląstele - žodžiu, tiesiog [[rodyklės]] | |||
* Steko registrai - iš esmės, adresų registrai, tačiau suveikiantys su tokiomis operacijomis, kaip PUSH ar PULL, kurios pakrauna į [[stekas|steką]] duomenis ar juos iš steko iškrauna | |||
* Skaitliukai - prie tam tikrų operacijų vienetu paaugantys registrai, naudojami pvz., kai reikia kokių nors ciklų | |||
Registrai yra labai svarbūs, kai kalbame apie [[procesorių architektūra|procesorių architektūrą]], nes pagrindinai pagal registro dydį nusakoma ir tai, kiek bitų ta architektūra yra: jei dauguma registrų yra 8 bitų dydžio, tai čia bus [[8 bitai|8 bitų]] architektūra, o jei dauguma registrų yra 16 bitų - tai bus [[16 bitų]] architektūra, o jei dauguma bus 32 bitų - tai bus [[32 bitai|32 bitų]] architektūra, o jei bus 64 bitų registrai - tai bus [[64 bitai|64 bitų]] architektūra. | Registrai yra labai svarbūs, kai kalbame apie [[procesorių architektūra|procesorių architektūrą]], nes pagrindinai pagal registro dydį nusakoma ir tai, kiek bitų ta architektūra yra: jei dauguma registrų yra 8 bitų dydžio, tai čia bus [[8 bitai|8 bitų]] architektūra, o jei dauguma registrų yra 16 bitų - tai bus [[16 bitų]] architektūra, o jei dauguma bus 32 bitų - tai bus [[32 bitai|32 bitų]] architektūra, o jei bus 64 bitų registrai - tai bus [[64 bitai|64 bitų]] architektūra. | ||
| 16 eilutė: | 24 eilutė: | ||
Vėlgi, jei registrai bus specializuoti ir skirtingos operacijos vyks su skirtingais registrais - tai bus architektūra su akumuliatoriais (dažniausiai tai primityvios 8 bitų architektūros). Jei registrai bus universalūs - tai bus architektūra su bendros paskirties registrais. Jei bus labai daug skirtingų operacijų su registrais - tai bus [[CISC]] architektūra. | Vėlgi, jei registrai bus specializuoti ir skirtingos operacijos vyks su skirtingais registrais - tai bus architektūra su akumuliatoriais (dažniausiai tai primityvios 8 bitų architektūros). Jei registrai bus universalūs - tai bus architektūra su bendros paskirties registrais. Jei bus labai daug skirtingų operacijų su registrais - tai bus [[CISC]] architektūra. | ||
Jei registrų bus daug, jie apjungti į grupes ir bus bendros operacijos, skirtos visos krūvos registrų pakrovimui į [[operacinė atmintis|operacinę atmintį]] ar atvirkščiai, o dar bus ir persijungimo tarp tų registrų grupių operacijos - tai reikš, kad turime [[RISC]] architektūrą. | Jei registrų bus daug, jie apjungti į grupes ir bus bendros operacijos, skirtos visos krūvos registrų pakrovimui į [[operacinė atmintis|operacinę atmintį]] ar atvirkščiai, o dar bus ir persijungimo tarp tų registrų grupių operacijos - tai reikš, kad turime [[RISC]] architektūrą. RISC procesoriuose registrų skaičius būna padaromas labai didelis ir jie gauna tam tikrų savybių, netiesiogiai panašių į registro adresavimą. Tokia registrų grupė vadinama [[registrų langas|registrų langu]]. Štai tada būna, pvz., 16, 32 ar dar koks nors skaičius registrų, kuriuos vienu veiksmu galima išmesti į operacinę atmintį ar iš jos pakrauti. Kartu su tokiais registrais gali būti naudojamos ir vektorinės komandos, kur viena komanda vienodus veiksmus atlieka su ištisa registrų seka. | ||
Skirtingos [[procesorių architektūros]] turi labai skirtingus registrų rinkinius, ir daugiausiai per registrus ir skiriasi. Padoresniuose procesoriuose dauguma atvejų naudojami bendros paskirties registrai, kur su tuo pat registru priklausomai nuo veiksmo, galima daryti ką tau reikia - ar duomenis saugoti, ar veiksmus atlikti, ar atmintį adresuoti. | |||
pakeitimų