본문 바로가기

KNU_study/마이크로프로세서

마이크로프로세서(15) I/O interface

728x90
반응형

 


Memory interface에 대한 내용이 궁금하다면 여기를 클릭 !!
 
 

1. Review : Memory interface

 
메모리는 D flipflop를 사용한다. 
참고로 이번 챕터에서 공부할 I/O는 latch 혹은 버퍼를 사용한다. 
 

 
 

2. I/O interface

 
공간이 모자랄 수 있기 때문에 
address bus와 control bus를 결합해서 enable신호를 준다. 
-> 둘 다 1일 때만 신호를 흐르게 한다.
 

 
 

3. INPUT 포트와 OUTPUT 포트

 
<INPUT 포트> 
active low로 동작한다. 
 

인풋 포트의 좌측에는 마이크로프로세서가, 우측에는 인풋 디바이스가 연결된다.

 
인풋 포트 00H를 enable시키면 다음 그림과 같다. 그 아래 그림은 비용 절감이라는 장점이 있는 버전이다. 
 

오류 ㅎㅎ ㅠㅠ : input 포트는 NAND 게이트로 연결되어야 함

 오류 ㅎㅎ ㅠㅠ : input 포트는 NAND 게이트로 연결되어야 함, 그리고 output이 아니라 input임 ㅠㅠㅠ


-> 주소를 4개 가지는 방법은 다음과 같다.
    이런 경우엔 00H, 01H, 02H, 03H를 같이 쓴다. 
 
<OUTPUT 포트>
active high로 동작한다. 
 

 
-> OUTPUT 포트에 관한 기본적인 모델이다.

    이걸 쓰면, 28개의 address bus를 사용할 수 있다. --> 너무 많다 !!

    그래서 256개의 address bus를 사용하는 대신, control bus를 거기에 사용하자. (아래 그림 참고)
 

 
-> 이 버퍼는 00H, 01H, 02H, 03H 4개를 같이 사용한다. address bus를 빼버렸음에도 동작한다. 
    이를 합치면 다음과 같이 요약할 수 있다. (아래 그림 참고)
 

 
-> 마무리로, 예제를 풀어보자. 42H, 52H, 62H, 72H를 같이 사용하는 OUTPUT 포트를 그리시오.
 

 
 

4. 38 decoder로 나타낸 INPUT 포트, OUTPUT 포트 

 
<예제1>
아래의 경우에 어떻게 설계해야 할까? 

IN 05H	
OUT 06H

 
-> I/O mapped I/O를 사용하여 설계하자. 
 

IO/M을 다른 곳으로 옮겨, 깔끔하게 설계한 경우

 
<예제2>
아래의 경우에 어떻게 설계해야 할까? 

IN FFF0H	
OUT FFF1H

 
-> memory mapped I/O를 사용하여 설계하자.
 

IO/M을 다른 곳으로 옮겨, 깔끔하게 설계한 경우

 
 

result I/O mapped I/O Memory mapped I/O
주소 8bits 16bits
control IOR, IOW MEMR, MEMW
명령어 IN, OUT Memory 관련 명령어
(ex) LDA, STA

 

728x90
반응형