A device register is a programmable area on an electronic device that provides information a programmer can use to install and use the device with an operating system or additional piece of equipment. This allows devices to communicate information with each other for the purpose of completing user-assigned tasks. For instance, a programmer with a tablet computer can plug it into her desktop and ask the two to synch their data to update all files on both computers. The device register makes this possible.
Devices usually have several dedicated registers to perform different functions. One important register is data-related. If the user wants to be able to read and write data, he needs to know where to direct it. The data register provides information about how much space is available and what is on the device. Through this, it is possible to move information on the device or to transfer it. A smart phone, for instance, might transfer driving directions to another device for convenience.
Another type of device register is the control and status register. This allows the programmer to execute commands and also provides feedback. In the example of a user synching a tablet computer and a desktop, this register is responsible for flashing the message that a synch is in progress, for example. If the programmer tries to access the device it will return an error because it is busy. Likewise, if there is a problem with the piece of equipment and it cannot complete the transfer, the status register will indicate that something is wrong.
Each device register provides information about the logical address of the device so an operating system or other piece of equipment can find it. The programmer may be able to manually code this, or an operating system can perform the programming. When a photographer plugs a digital camera into a computer to pull the pictures off the memory card, for instance, the computer will interact with the camera's device register to get the necessary information and set up the transfer. This allows anyone to use peripheral devices without needing programming skills.
If something goes wrong with the device register, it can create errors. Devices may return inaccurate information about their data or could permanently hang in a “busy” or “error” status mode. These issues may be fixable by a programmer who can access the register. The user could also need to replace components and reprogram the register.