[설문조사 사이트 테스트]
이름 :
점넷(.Net)
분류 전체보기 (176)
점넷공간 (38)
COMPUTER (1)
.NET (29)
DB (36)
SCRIPT (3)
MarkUp & CSS (3)
OS (7)
IT Story (52)
Information (7)
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2009. 3. 31. 00:55

모든 입출력 장치들은 I/O Port를 거쳐야만 공유 메모리 영역을 사용 할 수있다.

그러나 모니터는 다른 입출력 장치와는 다르게 메모리와 직접 연결되어 사용된다.

이 말을 그림으로 표현하면 아래와 같다.

 

 



모니터는 가로 80자 세로 25줄을 표현한다.
: 2000개의 문자를 사용한다.

문자가 1Byte면 글자는 총 2KB가 된다.

그렇다고 모니터 전용 메모리 영역이 2KB는 아니다.
속성으로 2KB를 더가지며
4KB가 된다.

문자당 속성은 1Byte(8Bit)이며  배경색 4Bit와 전경색(글자색) 4Bit로 구성된다.




모니터 전용 메모리는 하나가 아니라 여러 개가 존재한다.

왜냐면 페이지 단위로 버퍼처럼 사용하기 위함이다.

I/O가 특정 메모리 영역을 전용으로 사용하는 것을

MMIO(Memory Mapped I/O)라 한다.

 


MMIO (Memory Mapped I/O)
는 쉽게 설명하자면 특정 메모리 영역과 I/O가 하나가 된다고 생각하면 된다.

, 설정된 영역의 메모리 공간은 다른 의미로는 사용할 수 없으며 오직 연결된 I/O에서만 사용이 가능하다.

예를 들어 모니터가 MMIO 되어있으면 해당 메모리 영역에 내용은 별도의

모니터로 보내는 명령 없이 메모리에 있는 내용이 화면에 출력된다.

 


예제)  MMIO 영역에 데이터 입력

 

콜솔 화면을 띄워보자(실행 – CMD)

C:\> DEBUG (엔터)

-EB800:0200 41 49 42 57 43 82 44 55 45 91 (엔터)

-Q(엔터)

 

[결과]

 

 

[해설]

E : 메모리 영역에 입력

B800 : 모니터 전용 메모리 영역

0200 : 200번째 문자 위치에서 시작

1번째 41 : 알파벳 A

2번째 49 : 4 = 배경색, 9 = 글자색

3번째 42 : 알파벳 B

4번째 57 : 5 = 배경색, 7 = 글자색

5번째 43 : 알파벳 C

6번째 82 : 8 = 배경색, 2 = 글자색

7번째 44 : 알파벳 D

8번째 55 : 5 = 배경색, 5 = 글자색

9번째 45 알파벳 E

10번째 91 : 9 = 배경색, 1 = 글자색

Q : 종료

 

위의 예제를 실행하면 결과와 같은 내용이 보여질 것이다.

이는 B800(모니터 전용 메모리 영역)에 데이터를 입력한 것이다.

메모리에 데이터를 넣었을 뿐 화면에 출력 하라는 명령은 하지 않았다.

그러나 입력이 되는 순간 화면에 나타나는 것을 확인할 수 있다.

다음으로 8번째 속성을 보면 배경색과 글자색이 동일한 값을 가지고 있다.

그러므로 화면에는 ‘D’ 라는 글자가 보이지 않는다.

 

이번 이야기는 개발하는데 큰영향을 가져오지는 않는다.

하지만 이런 부분도 존재 한다는 걸 알려주고 싶다.