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: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?
Can an IO device have some memory space or can it only have registers?
hardware;io;computer architecture
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.