Wat is het verschil tussen een register en een flip-flop?


Antwoord 1:

Ik zou verwachten dat een register meer dan 1 bit is (zeg 64 of 32 of misschien 16 of 8 bits), en een flip-flop slechts 1 bit.

Er zijn ook ten minste 4 verschillende soorten flip-flops die verschillen in de manier waarop u de status instelt en leest. "SR" voor instellen / resetten, "JK" voor instellen / resetten maar met meer volledig gedefinieerd gedrag, "D" voor vertraging of gegevens, en "T" voor schakelen.

Met registers is het niet van belang hoe de bits worden ingesteld en gelezen. Je geeft meer om welke instelling en / of het teruglezen van de bits DOET. In het meest eenvoudige register kunnen bits worden opgeslagen en opgeroepen, net zoals bij een set flip-flops. Maar veel registers kunnen meer doen. Een accumulatorregister kan bijvoorbeeld de invoer toevoegen aan de bestaande bits in het register. Een ander type register kan alleen-schrijven zijn en een bewerking elders in het systeem veroorzaken. En nog andere registers kunnen alleen-lezen zijn, wat de status weergeeft van iets waar de lezer in geïnteresseerd is, bijvoorbeeld de systeemtemperatuur.


Antwoord 2:

Een register IS in wezen een flip-flop.

In het bijzonder een D-flip-flop in de meeste gevallen. Er zijn enkele situaties waarin het niet zo eenvoudig is: het uitgangsregister op een GPIO kan worden gebruikt als een S / R flip-flop om alleen het instellen of alleen het wissen van bits toe te staan. (De meeste huidige MCU's ondersteunen dit.) Er is meestal nog steeds een D-FF-toegang tot de flip flop, zodat u het register kunt instellen en wissen.

Voor het gemak van de programmeur wordt een register meestal naar hetzelfde adres gemaakt om naar de FF te schrijven en de waarde ervan te lezen. Voor de kernregisters (accumulator, r0-r15, indexregister, enzovoort), worden de registers rechtstreeks door de instructie geadresseerd in plaats van via een afzonderlijk registeradres.

Sommige MCU's stonden zelfs de toegang toe tot de registers in de geheugenadresruimte. Iirc, de 8051 deed dat en stond het selecteren van de toewijzing van de registers aan verschillende blokken geheugenregisters toe.)


Antwoord 3:

een register (althans wat ik een register ken) is een verzameling bits. (afhankelijk van de processor hoeveel zal hebben).

een flip flop is slechts een hardware-bit (en zelfs niet noodzakelijk beschikbaar op de computer kan intern zijn, kan deel uitmaken van een systeem.

meestal zeker dat een register veel interne flip-flops heeft. (of op zijn minst een soort vergelijkbaar, niet zeker of ze intern nog steeds zo zijn).

omdat de flip flop normaal is gedefinieerd om te worden gemaakt met logische poorten om te kunnen vasthouden en niet te veranderen, tenzij extern een 0 of 1 wordt gewijzigd (normaal gesproken zal dit een 0 volt of ongeveer 5 of 12 of 3 volt zijn, afhankelijk van het systeem dat normaal gesproken vcc).