[운영체제] Memory Mapped I/O 와 I/O Mapped I/O란?

Memory Mapped I/O란?

Memory Mapped I/O는 마이크로프로세서(CPU)가 입출력 장치를 접근할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식이다.  -위키피디아-

 

즉, Memory Mapped I/O는 disk block을 메모리의 페이지에 매핑시켜준다. 따라서 CPU는 파일을 메모리에서 접근 가능하게 된다. 이를 통해 CPU는 read() 혹은 write()등의 System call을 사용하지 않고 메모리에 data를 읽고 쓰는 것처럼 사용 가능하다.

 

Memory Mapped I/O의 특징은 다음과 같다.

 

1. 메모리의 일부 공간을 I/O 포트에 할당한다.

2. 많은 프로세스가 하나의 파일을 메모리에서 공유하는 것이 가능해진다. 

3. RISC, 임베디드 시스템에서 주로 사용한다 (ex : ARM, MIPS, PowerPC)

4. LOAD 나 STORE 명령을 통해 접근 가능하다.

5. 컴파일러의 최적화를 방지하기 위해 I/O 영역 변수는 volatile로 선언해야 한다.

6. 메인 메모리에 접근하는 것보다 매핑한 장치에 접근하는 것이 느리다.

7. CPU 내부 로직이 덜 필요하고 더 저렴하고 빠르고 쉬운 CPU 설계가 가능하다 ( RISC가 추구하는 바)

8. 별도의 하드웨어 신호 핀을 두지 않고 Address Line에 따라 분기하여 접근한다.

9. 하드웨어 구성이 간단하지만 주소나 데이터 버스를 많이 사용하게 된다.

 

 

참고 : RISC란?

 

[컴퓨터 아키텍처] CISC란? RISC란? CISC와 RISC 차이

CISC (Complex Instruction Set Computer) CISC란 연산에 처리되는 복잡한 명령어 집합을 수백 개 이상 탑재하고 있는 프로세서이다. 인텔 계열의 모든 프로세서는 CISC 프로세서이다. CISC는 다음과 같은 특징

code-lab1.tistory.com

 

 

I/O Mapped I/O란?

I/O Mapped I/O는 메모리와 입출력의 주소 공간을 분리하여 접근 하는 방식이다. -위키피디아-

I/O Mapped I/O는 Memory Mapped I/O와 다르게 메모리와 입출력의 주소 공간을 분리한다. 

 

I/O Mapped I/O 특징은 다음과 같다.

 

1. 입출력 장치에 접근하기 위한 명령어가 따로 필요하다.

2. 메모리에 대한 접근과 I/O에 대한 접근이 다른 것으로 간주된다.

3. 주로 Intel 계열에서 사용된다.

4. Addressing 능력이 제한된 CPU에서 메모리 주소 영역 전체를 사용할 수 있기 때문에 효과적이다.

5. 범용성이 넓어 입출력 장치 추가/삭제가 자유로운 PC 환경에서 주로 사용한다.

6. 프로세서의 칩셋에 별도의 신호 핀을 두어 I/O 명령을 전달한다.

7. 별도의 회로 설계가 필요하여 하드웨어 구성이 복잡하다.

 

 

 


참고

1.https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EB%A7%B5_%EC%9E%85%EC%B6%9C%EB%A0%A5

2. https://do-rang.tistory.com/76

3. http://jidum.com/jidums/view.do?jidumId=467 

4.https://ko.wikipedia.org/wiki/%EC%9E%85%EC%B6%9C%EB%A0%A5_%EB%A7%B5_%EC%9E%85%EC%B6%9C%EB%A0%A5

 

반응형

댓글

Designed by JB FACTORY