Hardware Register - Functionality

Functionality

Signals from a state machine to the register control when registers transmit to or accept information from other registers.

Sometimes the state machine routes information from one register through a functional transform, such as an adder unit, and then to another register that stores the results.

Typical uses of hardware registers include:

  • configuration and start-up of certain features, especially during initialization
  • buffer storage e.g. video memory for graphics cards
  • input/output (I/O) of different kinds
  • status reporting such as whether a certain event has occurred in the hardware unit.(Note for example a modem status register (MSR) or a line status register (LSR).)

Reading a hardware register in "peripheral units" — computer hardware outside the CPU — involves accessing its memory-mapped I/O address or port-mapped I/O address with a "load" or "store" instruction, issued by the processor. Hardware registers are addressed in words, but sometimes only use a few bits of the word read in to, or written out to the register.

Commercial design tools simplify and automate memory-mapped register specification and code generation for hardware, firmware, hardware verification, testing and documentation.

Because write-only registers make debugging almost impossible, lead to the read-modify-write problem, and also make it unnecessarily difficult for the Advanced Configuration and Power Interface (ACPI) to determine the device's state when entering sleep mode in order to restore that state when exiting sleep mode, many programmers tell hardware designers to make sure that all writable registers are also readable. However, there are some cases when reading certain types of hardware registers is useless. For example, a strobe register bit that generates a one cycle pulse into specialized hardware will always read logic 0.

Read more about this topic:  Hardware Register