Untitled

인풋, 아웃풋 기기에 접근하는 방법에 대해서 배워볼껴!

임베디드 시스템에서 컴포넌트들은 네트워크 또는 버스라고 불리는 것을 통해서 소통하게 된다.

어떻게 버스 혹은 네트워크를 이용해서 io 기기에 접근할 수 있는 걸까?

그건 바로 memory mapped io 가 있기 때문에 io 레지스터를 마치 메모리 주소에 접근하는 것처럼 할 수 있기 때문이다. 그 결과, 이 레지스터는 오로지 Load 와 Store 로만 사용이 가능하다. 아 그니까 우리 실습용 컴의 메모리에 이 임베 기기의 레지스터가 하나하나 매핑이 되어있어서(network, bus 라는 것을 통해) 그 결과 우리가, 메모리에 접근을 하면 그 메모리 주소를 이용해서 기기에 접근이 가능해지는 것이구나!

그래서 메모리에 보면, external device 외부 장치 를 위한 메모리 영역이 따로 있어서 여기에 io 기기가 매핑되게 됨.

Untitled

io 디바이스도 interface 가 있어야 소통을할 수 있겠지? 하드웨어와 소프트웨어가. 여기서 interface 는 기기 하드웨어와 interconection network 사이의 서킷을 말해(아까 network bus 로 연결된다고 했지?)

그래서 이 인터페이스가 하는 역할이 뭐냐? 바로 데이터 교환하는 방법과 status 교환하는 거 그리고 control 정보 교환하는 기능을 제공을 해. 중요한 거는 data, status, control register 모두 load store 명령어로 접근이 가능하다는 점이야!

메모리에 매핑된 io 의 경우 소프트웨어에게 이 레지스터들을 마치 메모리에 있는 것처럼 볼 수 있게 하는 거지.

Untitled

Untitled

Untitled

Untitled