MMIO 반대말이 안떠올라서 저장 ㅋ


Memory-mapped I/O (not to be confused with memory-mapped file I/O) uses the same address bus to address both memory and I/O devices – the memory and registers of the I/O devices are mapped to (associated with) address values. So when an address is accessed by the CPU, it may refer to a portion of physical RAM, but it can also refer to memory of the I/O device. Thus, the CPU instructions used to access the memory can also be used for accessing devices. Each I/O device monitors the CPU's address bus and responds to any CPU access of an address assigned to that device, connecting the data bus to the desired device's hardware register. To accommodate the I/O devices, areas of the addresses used by the CPU must be reserved for I/O and must not be available for normal physical memory. The reservation might be temporary, such as with the Commodore 64 that does bank switching between its I/O devices and regular memory, or permanent.


Port-mapped I/O often uses a special class of CPU instructions designed specifically for performing I/O, such as the in and out instructions found on microprocessors based on the x86 and x86-64 architectures. Different forms of these two instructions can copy one, two or four bytes (outb, outw and outl, respectively) between the EAX register or one of that register's subdivisions on the CPU and a specified I/O port which is assigned to an I/O device. I/O devices have a separate address space from general memory, either accomplished by an extra "I/O" pin on the CPU's physical interface, or an entire bus dedicated to I/O. Because the address space for I/O is isolated from that for main memory, this is sometimes referred to as isolated I/O.


[링크 : https://en.wikipedia.org/wiki/Memory-mapped_I/O]

'이론 관련 > 컴퓨터 관련' 카테고리의 다른 글

tsl - test and set lock  (0) 2015.11.23
SNTP - Simple NTP  (0) 2015.11.12
pkzip 포맷  (0) 2015.04.17
wear leveling dynamic static(global)  (0) 2015.04.09
IrDA  (0) 2015.04.01
Posted by 구차니