CPU, 메모리, I/O 디바이스 통신

마이크로프로세서

2020. 2. 18. 00:23

1. 주소 디코딩

CPU와 메모리, IO장치는 데이터버스를 통해 데이터를 통신한다. 그러나 만약 10개의 장치가 연결되어있으면 10개의 데이터 버스가 필요한데, 그러면 너무 많은 선을 연결해야한다. 때문에 이들은 버스를 공유하여 사용한다. 때문에 동시에 한개의 장치만 CPU와 통신할 수 있으며, CPU가 다른장치와 통신할 때 주소를 지정하면 해당 주소를 가진 장치만 데이터버스를 이용할 수 있도록 회로를 구성한다. 이를 주소 디코딩이라 하고, 해당 회로를 주소 디코더라고한다. (통신할 장비의 주소 찍기)

 

2. 메모리 데이터 교환

메모리에서 데이터를 읽어들일 때 CPU는 주소버스를 통해 메모리 위치를 지정하고, 주소디코더에 의해 해당 메모리는 데이터 버스에 데이터를 보낸다. CPU는 데이터 버스의 데이터를 읽게된다. 메모리에 데이터를 쓸 때는 CPU는 메모리의 위치를 주소버스로 지정하고, 데이터버스에 데이터를 보낸다. 메모리는 데이터버스의 데이터를 받아 저장한다.

 

3. I/O mapped I/O

CPU와 I/O장치의 데이터 교환역시 데이터버스와 주소버스를 사용하는데, 이때는 메모리와 동일한 데이터버스와 주소버스를 사용하기 때문에, 현재 통신하는 장치가 메모리인지 IO장치인지 구별하기 위해 또 하나의 신호선을 사용한다. 이렇게 I/O장치와 메모리의 주소를 구분하여 사용하는 입출력장치를 I/O mapped I/O라고 한다.

 

4. Memory mapped I/O

IO장치이지만 CPU 입장에서는 결국 주어진 주소에 데이터를 쓰기/읽기 한다는 점에서 메모리와 별 차이가 없다 .때문에 IO장치와 메모리의 주소를 구분하지 않고 메모리 주소범위의 일정부분에 I/O장치의 주소를 할당하여 사용하는 것을 Memory mapped I/O라고 한다.

 

5. Reference

 

마이크로 프로세서 및 실습 Ⅰ

마이크로 프로세서 및 실습

www.kocw.net

'마이크로프로세서' 카테고리의 다른 글

ATmega128 컨트롤러의 특징  (0) 2020.04.21
2진수와 16진수 표현법  (0) 2020.02.18
메모리 접근 구조 (폰노이만, 하버드)  (0) 2020.02.18
Bus (버스)  (0) 2020.02.18
ROM (Read Only Memory)  (0) 2020.02.18
RAM (Random Access Memory)  (0) 2020.02.18
Word (기본단위)  (0) 2020.02.18