메모리 맵 입출력: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
잔글편집 요약 없음 |
잔글 →예 |
||
17번째 줄:
하지만 메모리 매핑 입출력은 어드레스와 데이터 버스를 무척 많이 사용하게 된다. 그래서 보통 메인 메모리에 접근하는 것보다 매핑된 장치에 접근하는 것이 더 느리다. 반면, 포트 매핑 입출력은 입출력용으로 할당된 버스를 사용할 경우 느리지 않다.
== 예 ==
[[8
이렇게 만들어지는 메모리 맵은 다음과 같다.
▲[[8-bit]] [[microprocessor]]로 구현된 간단한 시스템을 가정해보자. 해당 CPU는 16-bit 어드레스 라인을 가지고 있어서, 64[[kibibyte]] (KiB)의 메모리를 억세스할 수있다. 이러한 시스템에서, 어드레스 공간의 첫 32 KiB는 [[random access memory]] (RAM)에 할당되어 있고, 그 다음 16K는 [[read only memory]] (ROM)에 할당되어 있다. 그리고 나머지는 timer나 counter, video display chip, 오디오 발생 장치와 같은 다양한 장치들을 위해서 할당이 되어 있다고 하자. 연결된 장치(device)들은 자기들을 의미하는 주소에 대해서만 반응을 하고, 다른 주소들은 무시를 한다. 이런 것은 address decoding circuit이 하게 되고, 이런 식으로 시스템의 메모리 맵이 만들어진다.
<!-- border="1" cellpadding="1" cellspacing="0" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%" style="background: #ececec;" -->
줄 27 ⟶ 26:
{| class="wikitable"
|-
!
!
!
|-
!
|0000 - 7FFF
|32 KiB
|-
!일반 목적 입출력
|8000 - 80FF
|256
|-
!사운드 컨트롤러
|9000 - 90FF
|256
|-
!비디오 컨트롤러/텍스트 매핑 디스플레이 램
|A000 - A7FF
|2 KiB
|-
!
|C000 - FFFF
|16 KiB
|}
메모리 맵에 빈 공간들이 있다는
== 불완전한 어드레스 디코딩 ==
|