Hårdvaruregister

Inom digital elektronik , särskilt datoranvändning , är hårdvaruregister kretsar som vanligtvis består av flip-flops , ofta med många egenskaper som liknar minne , till exempel:

  • Möjligheten att läsa eller skriva flera bitar samtidigt, och
  • Använda en adress för att välja ett visst register på ett sätt som liknar en minnesadress .

Deras utmärkande egenskap är dock att de också har speciella hårdvarurelaterade funktioner utöver det vanliga minnet. Så, beroende på synvinkel, är hårdvaruregister som ett minne med ytterligare hårdvarurelaterade funktioner; eller, minneskretsar är som hårdvaruregister som bara lagrar data.

Hårdvaruregister används i gränssnittet mellan mjukvara och kringutrustning . Programvaran skriver dem för att skicka information till enheten och läser dem för att få information från enheten. Vissa hårdvaruenheter inkluderar även register som inte är synliga för programvara för internt bruk.

Beroende på deras komplexitet kan moderna hårdvaruenheter ha många register. Standard integrerade kretsar dokumenterar vanligtvis sina externt exponerade register som en del av deras elektroniska komponentdatablad .

Funktionalitet

Typiska användningar av hårdvaruregister inkluderar:

  • konfiguration och uppstart av vissa funktioner, särskilt under initialisering
  • buffertlagring t.ex. videominne för grafikkort
  • input/output (I/O) av olika slag
  • statusrapportering såsom om en viss händelse har inträffat i hårdvaruenheten, till exempel ett modemstatusregister eller ett linjestatusregister.

Att läsa ett hårdvaruregister i "perifera enheter" - datorhårdvara utanför CPU:n - involverar åtkomst till dess minnesmappade I/O -adress eller portmappade I/O -adress med en "load" eller "store"-instruktion, utfärdad av processorn. Hårdvaruregister adresseras i ord, men använder ibland bara några få bitar av ordet som läses in i eller skrivs ut till registret.

Kommersiella designverktyg förenklar och automatiserar minneskartad registerspecifikation och kodgenerering för hårdvara , firmware , hårdvaruverifiering , testning och dokumentation.

Register kan vara läs/skriv, skrivskyddad eller skrivskyddad.

Skrivbara register undviks i allmänhet. De är lämpliga för register som orsakar en övergående åtgärd när de skrivs men som inte lagrar några beständiga data som ska läsas, till exempel ett "återställ ett perifert register". De kan vara det enda alternativet i konstruktioner som inte har råd med grindar för den relativt stora logikkretsen och signalrouting som behövs för återläsning av registerdata, som Atari 2600- spelkonsolens TIA -chip. Men skrivbara register gör felsökning svårare och leder till läs-modifiera-skriv- problemet så läs-/skrivregister är att föredra. På datorer gjorde skrivbara register det svårt för Advanced Configuration and Power Interface ) att bestämma enhetens tillstånd när den går in i viloläge för att återställa det tillståndet när det lämnar viloläget,

Registrera sorter

Hårdvaruregistren inuti en central processing unit (CPU) kallas processorregister .

Stroberegister har samma gränssnitt som vanliga hårdvaruregister, men istället för att lagra data utlöser de en åtgärd varje gång de skrivs till (eller, i sällsynta fall, läses från). De är ett sätt att signalera .

Register mäts normalt av antalet bitar de kan hålla, till exempel ett " 8-bitars register" eller ett " 32-bitars register".

Designers kan implementera register på en mängd olika sätt, inklusive:

Förutom de "programmerare-synliga" registren som kan läsas och skrivas med mjukvara, har många chips interna mikroarkitektoniska register som används för tillståndsmaskiner och pipelining ; till exempel registrerat minne .

Standarder

SPIRIT IP-XACT och DITA SIDSC XML definierar standard XML-format för minnesmappade register.

Se även