메모리 맵 입출력: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
잔글 메모리 매핑 입출력을(를) 메모리 맵 입출력(으)로 옮기면서 넘겨주기를 덮어 씀: 전문자료 참조하여 올바른 이름으로 수정합니다. |
잔글 주소 버스라는 말은 쓰입니다. 국어사전에도 나온 말입니다. |
||
2번째 줄:
'''Memory-mapped I/O (MMIO, 메모리 매핑 입출력)'''과 '''포트 입출력'''은 [[컴퓨터]] 안의 [[중앙 처리 장치|CPU]]와 [[주변 장치]] 사이에서 [[입출력]]을 수행하는 두 가지의 상호 보완적인 방법이다. 또, 보통 [[메인프레임 컴퓨터]]에서 보통 채널이라고 불리는 입출력만 전담하는 프로세서를 사용하는 방법도 있다. 이러한 전담 프로세서는 자신만의 명령어를 가지고 이를 수행한다.
Memory-mapped I/O([[메모리 매핑 파일]] 입출력과 혼동하지 말 것.)는 메모리와 입출력 장치 접근을 위해, 같은 [[
포트 매핑 입출력은 입출력을 수행하기 위해 특별히 고안된 CPU 명령어를 사용한다. 이 방식은 보통 [[인텔 마이크로 프로세서|인텔 마이크로 프로세서들]]에서 구현된다. 인텔 프로세서에는 IN과 OUT이라는 명령어가 있는데, 이것은 입출력 장치에 1 바이트를 읽고 쓰기 위한 것이다. 또한 입출력 장치는 일반적인 메모리 공간과 별도로, 독립된 주소 공간을 가진다. 이러한 것은 CPU의 물리적 인터페이스에서, 특별히 준비된 입출력 핀을 이용해서 구현되거나, 아니면 입출력 전담으로 쓰이는 [[컴퓨터 버스|버스]]를 이용해서 구현된다.
15번째 줄:
메모리 매핑 입출력을 사용하는 장점은, 포트 입출력을 구현할 때 필요한 부수적인 복잡성이 없어지기 때문에, CPU는 내부 로직이 덜 필요하고, 그러므로 더 저렴하고, 더 빠르고, 더 쉽게 CPU를 만들 수 있다는 것이다. 바로 이 점은 [[RISC]]가 추구하는 바와 그 노선을 따르는 것이고, 이런 방식은 [[임베디드 시스템]]을 구현할 때 장점으로 작용한다. [[16비트]] CPU 구조가 없어지고, [[32비트]]와 [[64비트]] 구조로 대치되어 감에 따라, 입출력 장치를 위해 메모리 맵 일부를 확보해 놓는 것은 더 이상 문제가 되지 않는다.{{출처|날짜=2007년 10월}} <!-- 하위 호환성은 어떨까?... 문제가 되지 않겠는가? --> 그리고 장치를 어드레싱하기 위해서 일반적인 메모리 명령어를 사용한다는 것은 메모리뿐 아니라 입출력을 위해서도 모든 CPU 어드레싱 모드가 다 지원된다는 것을 의미한다.
하지만 메모리 매핑 입출력은
== 예 ==
58번째 줄:
장치가 주소를 완전히 디코딩할 수도 있고, 아니면 불완전하게 디코딩할 수도 있다.
* 완전히 디코딩을 할 경우 [[주소 버스]]의 모든 라인을 검사하게 되는데, CPU가 매핑되지 않은 메모리 영역에 접근하면 오픈 [[데이터 버스]] 상태를 야기한다.
* 불완전한 디코딩, 혹은 부분 디코딩이라고 하는 방법은 주소 일부분을 검사하는, 더 간단하고 대체적으로 단순한 논리를 사용한다. 이러한 간단한 디코딩 회로는 장치가 여러 개의 다른
== 참고 문서 ==
|