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

내용 삭제됨 내용 추가됨
Chobot (토론 | 기여)
잔글 로봇이 바꿈: pt:E/S mapeada em memória
잔글편집 요약 없음
4번째 줄:
메모리 맵 입출력([[메모리 맵 파일]] 입출력과 혼동하지 말 것.)은 메모리와 입출력 장치 접근을 위해, 같은 [[주소 버스]]를 이용한다. 그리고 메모리에 접근하기 위한 CPU 명령어는 장치에 접근하는 데에도 쓰인다. 입출력 장치를 처리하려면 CPU의 주소 공간 중 일부가 입출력을 위해 할당되어야 하는데, 이렇게 할당하는 것은 일시적일 수도 있고 ([[코모도어 64]] 컴퓨터는 입출력 장치와 일반적인 메모리를 [[뱅크 스위칭|뱅크 스위치]]할 수 있었다.), 아니면 영구적일 수도 있다. 각 입출력 장치는 CPU의 주소 버스를 감시하고 있다가, CPU가 장치를 위해 할당한 메모리 공간에 접근하면 이에 반응를 보낸다. 그리고 [[데이터 버스]]를 의도한 장치의 [[하드웨어 레지스터]]에 연결해 준다.
 
포트 맵 입출력은 입출력을 수행하기 위해 특별히 고안된 CPU 명령어를 사용한다. 이 방식은 보통 [[인텔 마이크로 프로세서마이크로프로세서|인텔 마이크로 프로세서들마이크로프로세서들]]에서 구현된다. 인텔 프로세서에는 IN과 OUT이라는 명령어가 있는데, 이것은 입출력 장치에 1 바이트를 읽고 쓰기 위한 것이다. 또한 입출력 장치는 일반적인 메모리 공간과 별도로, 독립된 주소 공간을 가진다. 이러한 것은 CPU의 물리적 인터페이스에서, 특별히 준비된 입출력 핀을 이용해서 구현되거나, 아니면 입출력 전담으로 쓰이는 [[컴퓨터 버스|버스]]를 이용해서 구현된다.
 
한 장치의 [[직접 메모리 접근]] (Direct Memory Access, DMA)은 그러한 CPU와 장치 사이의 통신 방식에 영향을 받지 않는다. 특히 메모리 맵에 영향을 받지 않는다. DMA가 CPU를 통하지 않고, 메모리와 장치 사이에 직접 통신하기 때문이다.