내용으로 건너뛰기

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

잔글
잔글 (→‎예)
이제 비디오 컨트롤러의 네 번째 레지스터가 화면의 바탕색을 지정하는데 쓰인다고 하자. CPU는, 일반적으로 메모리에 기록하는 명령을 이용해서, A003이라는 메모리 위치에 값을 기록하여 배경색을 지정할 수있다. 이와 같은 방법을 이용해서, 비디오 컨트롤러의 특별한 램 공간에 문자를 써서, 화면에 글자를 표현할 수 있다. [[비트맵|비트맵 디스플레이]을 사용할 수 있도록 만든 저렴한 [[램]]이 나오기 전까지는, 이런 식의 캐릭터 셀 방식을 이용해서 표시하는 것이 보통이었다. ([[텍스트 사용자 인터페이스]] 참조)
 
== 불완전한 어드레스주소 디코딩 ==
장치가 어드레스를주소를 완전히 디코딩할 수도 있고, 아니면 불완전하게 디코딩할 수도 있다.
* 완전히 디코딩을 할 경우 [[주소 버스]]의 모든 라인을 검사하게 되는데, CPU가 매핑되지 않은 메모리 영역에 접근하면 오픈 [[데이터 버스]] 상태를 야기한다.
* 불완전한 디코딩, 혹은 부분 디코딩이라고 하는 방법은 주소 일부분을 검사하는, 더 간단하고 대체적으로 단순한 로직을논리를 사용한다. 이러한 간단한 디코딩 회로는 장치가 여러 개의 다른 어드레스에 반응을 할 수 있게 하거나, 메모리 맵의 다른 곳들에 해당 장치의 가상본을 효과적으로 만들 수 있게 도와 준다. 이 때, 이 가상본들은 모두 똑같은 실제 장치를 가리키게 된다. 그러므로 보통은 이러한 방식을 쓴다고 하여 특별히 좋을 것은 없다. 다만, 디코더를 단순하게 만들 수 있다는 장점이 있다. 보통 디코딩하는 그 로직논리 자체는 프로그래밍으로 짤 수 있기 때문에, 시스템이 필요에 따라 메모리 맵을 다시 설정할 수 있다.
 
== 참고 문서 ==