Care este diferența dintre un registru și un flip-flop?


Răspunsul 1:

Aștept să fie un registru mai mare de 1 bit (să zicem, 64 sau 32 sau poate 16 sau 8 biți), iar un flip-flop să fie de doar 1 bit.

De asemenea, există cel puțin 4 tipuri diferite de flip-flops care diferă în modul în care setați și citiți înapoi. „SR” pentru set / reset, „JK” pentru set / reset, dar cu un comportament mai complet definit, „D” pentru întârziere sau date și „T” pentru comutare.

În ceea ce privește registrele, modul în care sunt setate și citite biți nu sunt acestea. Vă interesează mai mult ce este setarea și / sau citirea înapoi a biților. Cel mai de bază registru ar putea stoca și memora biți, la fel cum ați putea face cu un set de flip-flops. Dar multe registre pot face mai mult. De exemplu, un registru de acumulatori poate adăuga intrarea la biții existenți din registru. Un alt tip de registru poate fi scris numai și poate determina o operațiune în altă parte a sistemului. Și totuși, alte registre pot fi doar citite, reprezentând starea de ceva interesat de cititor, de exemplu, temperatura sistemului.


Răspunsul 2:

Un registru ESTE un flip-flop la nucleul său.

Mai exact, un D-flip-flop în majoritatea cazurilor. Există unele situații în care nu este atât de simplu: registrul de ieșire pe un GPIO poate fi operat ca un flip-flop S / R pentru a permite doar setarea sau doar ștergerea biților. (Majoritatea MCU-urilor actuale acceptă acest lucru.) Există de obicei un acces D-FF la flip flop, astfel încât să puteți seta și șterge registrul.

Pentru comoditatea programatorului, un registru se face de obicei la aceeași adresă pentru a scrie FF și a citi valoarea acestuia. Pentru registrele de bază (acumulator, r0-r15, registru de index și așa mai departe), registrele sunt adresate direct de instrucțiune, mai degrabă printr-o adresă de registru separată.

Unele MCU au permis chiar accesarea registrelor în spațiul cu adrese de memorie. Iirc, 8051 a făcut asta și a permis de fapt să selecteze maparea registrelor pe diferite blocuri de registre de memorie.)


Răspunsul 3:

un registru (cel puțin ceea ce știu ca registru) este un set de biți. (în funcție de procesor cât de mult va avea).

un flip flop este doar un bit hardware (și nici măcar disponibil în mod necesar pe computer poate fi intern, poate face parte dintr-un sistem).

cel mai mult sigur că un registru are o mulțime de flip-uri interne. (sau cel puțin un fel de similare, nu sunt sigur dacă mai sunt așa intern).

deoarece flip flop-ul este în mod normal definit pentru a fi realizat cu porți logice pentru a putea ține și a nu se schimba decât dacă este schimbat extern 0 sau 1 (în mod normal va fi 0 volt sau aproximativ 5 sau 12 sau 3 volt în funcție de sistemul care va fi în mod normal vcc).