I am learning about IO devices, and so far I have only seen examples of IO devices that have registers and no memory space. For example, this is a printer that have three registers and no memory space:

enter image description here

If you want to print a character, you would put the ASCII code of the character in the Data register.

But what if you want to print an entire page and not just one character, shouldn't the printer have some memory space that can hold an entire page? or is the printing of an entire page possible by sending the page to the printer device controller one character at a time?

Does all IO devices only have registers, or do some IO devices also have some memory space?


A device could have memory. For example, maybe it's a printer where you write an ASCII character to a data register, and the printer copies that character into a FIFO buffer in its own internal memory that you can't access directly.

A device could also have memory that you can access directly. A common example of this is video cards, where often the device's framebuffer is made directly accessible in the (CPU's) physical address space.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.