Registrele hardware

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În electronica digitală și în special în procesarea digitală, un registru hardware stochează biți de informații, astfel încât toți biții să fie scrise sau citite simultan. Registrele hardware care se află într-o unitate centrală de procesare ( CPU ) sunt numite registre de procesor . În sprijin, există semnale provenite de la o mașină de stat și direcționate către registru, care controlează când acesta din urmă poate transmite informații către alte registre sau poate accepta informații de la acestea. Uneori, aceste mașini de stare direcționează informații dintr-un registru printr-o transformare funcțională, cum ar fi o unitate de însumare sau Adder (electronică) și apoi către un alt registru care stochează rezultatul.

Utilizările tipice ale unui registru hardware includ configurarea și inițializarea anumitor caracteristici, memorii tampon , cum ar fi memoria video pe plăci grafice , diverse dispozitive de intrare / ieșire (I / O) și mașină de înregistrare a stării, cum ar fi când apare un eveniment hardware specific.

Citirea registrelor hardware rezidente în unitățile periferice, în general , toate componentele hardware externe CPU, implică faptul că accesul se face printr - o memorie mapate I / O tehnica de adresare - I / O mapate pe adresele de memorie - sau Port - I / O mapat - I / O mapat la adrese rezervate pentru porturile I / O; accesul are loc cu instrucțiuni de încărcare - încărcare - sau memorare - stocare - activate de procesor.
Registrele hardware sunt adresate folosind semnalele generate de procesor, dar se poate întâmpla ca nu toate semnalele să fie utilizate de fapt. În plus, accesul are loc în funcție de dimensiunea de biți a cuvântului cu care funcționează procesorul, dar este posibil ca doar o parte din acești biți să aibă un sens real.

Registrele de semnalizare au aceeași interfață ca registrele hardware normale, dar în loc să stocheze date, declanșează o acțiune de fiecare dată când sunt scrise (sau, mai rar, citite).

Registrele sunt de obicei măsurate prin numărul de biți pe care îl pot conține, de exemplu „registre pe 8 biți” sau „registre pe 16 biți”. Aceste registre pot fi implementate într-o varietate de moduri, inclusiv bănci de registre, SRAM standard, flip-flop-uri simple sau memorie de mare viteză care se află în nucleul procesorului.

În plus față de registre care sunt direct accesibile pentru programatori și care pot fi citite și scrise de software, multe cipuri au registre interne care sunt utilizate pentru mașini și conducte de stare interne.

Există programe comerciale de proiectare, cum ar fi Socrates Bitwise [1] ale Duolog Technologies, care simplifică și automatizează pasul de specificare a registrelor mapate de memorie și generarea de cod pentru producția de siliciu de hardware , firmware , verificare hardware , proceduri de testare și documentație. [2] , [3] , [4]

SPIRIT IP-XACT și DITA SIDSC XML definesc formate XML standard pentru registre mapate de memorie. [5] , [6] , [7]

Datorită faptului că registrele numai în citire sau numai în scriere fac depanarea aproape imposibilă [8] , [9] , mulți programatori necesită proiectanți hardware pentru a se asigura că toate registrele care pot fi scrise sunt, de asemenea, lizibile. Cu toate acestea, există cazuri în care citirea anumitor tipuri de jurnale este inutilă. De exemplu, un bit, conținut într-un registru de semnalizare, care activează un impuls către un hardware specializat, va fi apoi întotdeauna citit cu o valoare nulă.

Înregistrări hardware în microcontrolere

Un microcontroler este un cip care cuprinde un procesor și un set de periferice, cum ar fi porturile seriale, sincrone și asincrone, porturile I / O digitale și convertoarele analog-digital (ADC). Principala metodă prin care CPU gestionează perifericele este de a opera pe registrele hardware pe care le pun la dispoziția lor.
Registrele hardware sunt împărțite în 3 categorii principale:

  • registre de control
  • registre de stare
  • jurnale de date

Registrele de control au funcția de a seta funcționarea unui anumit dispozitiv înainte ca acesta să fie activat pentru a-și îndeplini sarcina. De exemplu, registrele de control ale unui port serial vă permit să setați rata de transmisie (de ex. 38400), numărul de biți (7 sau 8), prezența bitului de paritate și calculul acestuia (par, impar, întotdeauna 1 sau întotdeauna 0), funcționarea semnalelor externe suplimentare (RTS, CTS, DSR, DTR) etc.
În cele din urmă, registrele de control vă permit să activați perifericul sau o subsecțiune a acestuia: de exemplu, pentru un port serial puteți avea dispozitive separate pentru secțiunea receptor și secțiunea emițător.
Un registru de control unic îndeplinește de obicei mai multe funcții, deoarece este împărțit în biți singuri sau grupuri de mai mulți biți care, stabiliți corespunzător, selectează o anumită operație sau activează o anumită secțiune a perifericului.
Acest tip de registre pot fi scrise, așa cum s-a descris deja, sau citite, pentru a verifica setările reale ulterior.

Registrele de stare, pe de altă parte, sunt utilizate de periferic, în timpul funcționării sale active, pentru a informa CPU-ul care este starea sa curentă, adică ce operații a finalizat sau este în curs de desfășurare sau așteaptă comenzi de la CPU sau, în cele din urmă, că așteaptă date din lumea exterioară.
De exemplu, un port serial folosește registrele de stare pentru a raporta faptul că a finalizat recepția unei date sau că și-a finalizat transmiterea sau că operațiunile au condus la o eroare (eroare de paritate la recepție, eroare pentru linie ocupat în transmisie etc.).
Și aici, un singur registru este de obicei împărțit în mai mulți biți, sau grupuri de biți, care raportează mai multe informații care urmează să fie decodate de CPU pentru a decide asupra continuării acțiunilor.
În mod normal, acest tip de registre sunt citite numai (de către CPU); în plus, actul de citire poate implica și efecte suplimentare, cum ar fi resetarea unei părți a semnalelor furnizate de periferic. De exemplu, citirea unui registru de stare al unui port serial poate reseta mesajele de eroare care erau prezente în acest registru: aceasta este pentru a reporni perifericul dintr-o situație inițială corectă. Scrierea pe aceste registre, pe de altă parte, nu are efecte specifice asupra perifericului, cu excepția faptului că uneori actul de scriere are efectul de a șterge semnalele, așa cum am văzut deja.

În cele din urmă, registrele de date au funcția de a furniza perifericului datele care urmează să fie procesate (operația de scriere de către CPU pe registrul de date periferic), sau de a recupera datele puse la dispoziție de periferic (operația de citire). Deoarece aceste registre pot fi scrise numai sau citite numai, se întâmplă în multe cazuri că același registru este utilizat pentru cele două funcții. De exemplu, un port serial folosește același registru atât pentru trimiterea cât și pentru primirea datelor.

Notă

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT