"메모리 맵 입출력"의 두 판 사이의 차이

편집 요약 없음
잔글 (r2.7.1) (로봇이 더함: fa:ورودی/خروجی حافظه‌ای)
{{다른 뜻|컴퓨터 포트||입출력 포트에 대한 일반적인 의미}}
'''메모리 맵 입출력'''(Memory-mapped I/O, MMIO)는 [[마이크로프로세서]]([[CPU]])가 입출력 장치를 [[액세스 (마이크로프로세서)|액세스]]할 때, 입출력과 메모리의 [[주소 공간]]을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식이다. 따라서 전체 메모리의 주소공간에 입출력 장치의 메모리나 [[레지스터]]를 메모리로 취급하여 전체 메모리의 일부분으로 특정영역에 할당하여 배치하는 방식이다. 입출력 장치의 메모리 주소가 나누어져 있지 않기 때문에 액세스할 때는 메모리와 같은 주소공간이므로 같은 기계어 코드로 수행한다.
'''메모리 맵 입출력'''(Memory-mapped I/O, MMIO)과 '''포트 입출력'''은 [[컴퓨터]] 안의 [[중앙 처리 장치|CPU]]와 [[주변 장치]] 사이에서 [[입출력]]을 수행하는 두 가지의 상호 보완적인 방법이다. 또, 보통 [[메인프레임 컴퓨터]]에서 보통 채널이라고 불리는 입출력만 전담하는 프로세서를 사용하는 방법도 있다. 이러한 전담 프로세서는 자신만의 명령어를 가지고 이를 수행한다.
'''메모리 맵 입출력'''(Memory-mapped입출력과 I/O, MMIO)과 '''포트 입출력'''은입출력은 [[컴퓨터]] 안의 [[중앙 처리 장치|CPU]]와 [[주변 장치]] 사이에서 [[입출력]]을 수행하는 두 가지의 상호 보완적인 방법이다. 또, 보통 [[메인프레임 컴퓨터]]에서 보통 채널이라고 불리는 입출력만 전담하는 프로세서를 사용하는 방법도 있다. 이러한 전담 프로세서는 자신만의 명령어를 가지고 이를 수행한다.
 
메모리 맵 입출력([[메모리 맵 파일]] 입출력과 혼동하지 말 것.)은 메모리와 입출력 장치 접근을 위해, 같은 [[주소 버스]]를 이용한다. 그리고 메모리에 접근하기 위한 CPU 명령어는 장치에 접근하는 데에도 쓰인다. 입출력 장치를 처리하려면 CPU의 주소 공간 중 일부가 입출력을 위해 할당되어야 하는데, 이렇게 할당하는 것은 일시적일 수도 있고 ([[코모도어 64]] 컴퓨터는 입출력 장치와 일반적인 메모리를 [[뱅크 스위칭|뱅크 스위치]]할 수 있었다.), 아니면 영구적일 수도 있다. 각 입출력 장치는 CPU의 주소 버스를 감시하고 있다가, CPU가 장치를 위해 할당한 메모리 공간에 접근하면 이에 반응를 보낸다. 그리고 [[데이터 버스]]를 의도한 장치의 [[하드웨어 레지스터]]에 연결해 준다.