본문 바로가기
Embedded System/Embedded Recipes

1.13 Bus Transfer Mechanism

by 리미와감자 2022. 8. 9.

1.13 Bus Transfer Mechanism

  • Bus란?

  실생활에서 Bus란 승객들을 태우고 이동하는 교통수단을 말한다. 하지만, 임베디드시스템에서 Bus는 승객이 사람이 아니라 데이터가 된다. 이 데이터는 여럿이 될 수 없고, Bus에는 한 종류의 데이터만 탈 수 있다.

 

  Bus란 정보 공유를 위해 각 장치들 사이에서 공유하는 선들의 집합을 의미한다. 특정 시점에서 시간을 멈추면 Bus 위에는 그 때 Bus에 탈 수 있도록 허가받은 신호들만 보이게 된다. 예를 들어, A와 B 사이에 wire를 연결한 뒤 A에서 B로 Data를 전송하면, 전기 신호는 빛의 속도와 비슷하니 Data가 이동한다기 보다는 A에서 보낸 Data가 wire위에 떠있다고 하는 것이 더 옳은 표현이다.

 

  결국 Bus System은 특정 Clock에서 한가지 종류의 신호만 존재하게 되고, 시간이 지나면서 다른 종류의 신호들이 번쩍하면서 생겼다가 사라졌다 하는 것이다.

 

  Bus로 통신할 필요가 있는 회로들을 엮어 놓으면 시간에 따라 통신할 필요가 있는 것들이 Bus Line에 떠있게 된다.

 

A가 떠있고, B가 떠있고,, Bus의 승객이 계속 바뀐다.

 

  Bus Bandwidth란 단위시간 당 얼마나 많은 Data들이 번쩍일 수 있는지를 의미한다. 위와 같은 경우는 Clock 주파수가 1Hz인 경우이다.

 

  • 아비터(Arbiter)란?

  임베디드시스템에서 아비터는 Bus System에서 신호등 역할을 한다. 즉, 어떤 신호가 Bus에서 번쩍할지 정해주는 역할을 하는 것이다.

 

 

  위의 그림은 Mux를 이용하여 Register끼리의 통신 통로로서의 Bus이다. 예를 들어, S1와 S0가 모두 0이면 Mux의 0번 Port들이 Enable되어 Register A가 Bus를 독점한다. 만약, S1와 S0이 각각 0과 1이면 1번 Mux의 1번 Port들이 Enable되어 Register B가 Bus를 독점하게 된다.

 

 S1 S0 Enabled Port Register
0 0 0 A
0 1 1 B
1 0 2 C
1 1 3 D

진리표는 위와 같다.

 

  이렇게 S1, S0같은 Select Pin을 아비터라는 신호등이 알고리즘 Policy에 의거하여 사용권을 부여한다. CPU 내부에서는 이런 일을 CU가 담당하고 있지만, Bus를 사용하려는 주체가 Register가 아닌 CPU 외부인 경우는 아비터가 담당하게 된다.

 

  Bus에는 주소 Bus, 데이터 Bus, 제어 및 상태 Bus 크게 3가지 종류의 Bus가 있다.

 

- 주소 Bus : 현재 MCU가 Access하려는 주소. MCU에서 나오는 단방향 신호.

- 데이터 Bus : 양방향으로서 Data를 주거나 받을 수 있음.

- 제어 및 상태 Bus : MCU가 참조하려는 상태에 관한 정보. 단방향/양방향 모두 가능.

 

1. Bus란 장치(IP)간에 통신할 때 데이터가 이동(번쩍)하는 wire를 의미하며, 번쩍할 때 한 종류의 데이터만 존재 가능하다.
2. 아비터(Arbiter)는 Bus의 신호등 역할을 하여 누가 Bus를 점유할지 결정한다.
3. Bus에는 주소 Bus, 데이터 Bus, 제어 및 상태 Bus 크게 3가지가 있다.

 

 

아래 주소에서 더 자세하게 확인할 수 있습니다.

http://recipes.egloos.com/4974269

 

Bus Transfer Mechanism

Bus 는 여러명의 승객을 태우고 운송을 하는 수단을 말한다고 합니다. 원래 omnibus라는 승합마차라는 말에서 왔다고 하는데, 결국엔 운송을 담당하는 수단을 의미합니다만, 실은 우리가 다룰 버스

recipes.egloos.com

 

'Embedded System > Embedded Recipes' 카테고리의 다른 글

1.15 Memory의 선정과 XIP  (2) 2022.08.10
1.14 Timing 그리고 Spec 읽기  (2) 2022.08.10
1.12 Clock이란?  (2) 2022.08.08
1.11 Register(레지스터)  (0) 2022.07.26
1.10 IC 기본  (1) 2022.07.25

댓글