Embedded System에서 자주 나오는 용어 중에 하나가 Synchronous냐, Asynchronous냐 하는 말이 많이 나옵니다. 그 말의 정의가 참으로 애매 모호하여, 이번 기회에 바로 잡고 지나가야 한다는 일종의 의무감이 불끈 솟아 오릅니다.
그 말의 정의를 다시 한번 곱 씹어 보면,
Synchronous : MCU clock 과 동기가 맞는다.
Asynchronous : MCU clock과 동기가 맞지 않는다.
이건 무슨 소리냐, CPU가 Data를 왔다 갔다 보내고 받는데 사용되는 clock과 박자를 맞추느냐 아니냐의 헛소리죠. 참 말도 어렵게 지었네요. 뭐, 어쨌거나 쉽게 구별할 수 있는 방법은 Synchronous와 Asynchronous의 Device 차이는 MCU로부터 Device로 clock이 붙어 있느냐 아니냐로 구분할 수 있겠습니다. Clock 신호가 붙어 있으면 Synchronous, 아니면 Asynchronous라고 보면 되겠네요. 뭐 간단하죠. 동작으로는 어떤 차이를 보이느냐 하면, Synchronous는 burst하게 MCU가 clock에 맞추어 Data를 보내면 그 clock에 맞추어 Data를 되돌려 주시는 식으로 곧바로 반응을 합니다. 그러니까 메모리로 따지면 burst로 (쭉 연결해서 마구~) 읽기가 가능해 집니다. 그런데, Asynchronous는 신호를 입력하면 (Bus에 특별히 약속된 신호를 넣어주면) 지가 안쪽에서 뭔가 뽁작 거린 후 (Wait State라고 불리우는 시간이 필요하다. 응답할 때까지의 지연시간이죠) 그 응답을 돌려줍니다. 그러다 보니, 뭔가 latency가 발생하게 되고 그 응답을 받을 때 까지 MCU가 기다려야 되는 일이 빈번하게 발생하게 되지요.
Synchronous의 경우에는 MCU clock과 연동되어 박자를 맞추고 있으니까 MCU와 제때에 Data를 원활하게 주고 받을 수 있지만 Asynchronous의 경우에는 그렇지 못한 경우도 발생합니다요. 그렇다고 해서 Asynchronous가 무조건 느리고 나쁜 것이 아니라, 그때그때 더 적당한 interface가 있는 거니까 서로 다른 종류의 access 방법이라고 보시면 됩니다.
Asynchronous이면서 Synchronous인 척 하는 트릭도 있어요. Wait을 없앤 건데요. Page모드라는 것이 Asynchronous의 경우에 burst를 흉내 낸 경우인 거죠. Asynchronous Memory의 경우 Address를 날리고 앞의 Address는 가만 냅두고 하위 주소만 요동쳐 주면 wait state없이 연달아서 Data를 돌려주는 방식을 말합니다. 가짜 synchronous라고 보믄 되지요.
동기화 (Synchronization)에 대한 얘기. 이건 네트웍쪽에서 사용하는 동기화라는 말에 대한 정의인데, 한번 들어보세요. 정보를 전송할 때 송신하는 쪽에서는 전송매체를 통해 한번에 한 비트씩 정보를 보내게 되는데 수신쪽에서는 각 비트의 시작과 끝을 판별하여 적당한 타이밍으로 회선을 샘플링하여 각 비트의 값을 읽어 내야 하죠. 송신 측에서 전송한 데이터의 각 비트를 수신측에서 정확하게 수신이 가능해야 하는데 송신측과 수신측의 시간이 절대 같을리가 없기 때문에 적당한 방법을 이용해서 이런 Synchronization이라는 걸 해야 한다구요. 이때 적당한 방법이라는 게 참으로 모호한데, 요떄 나오는 말이 동기식과 비동기식이라는 용어입죠. 송신측과 수신측의 Clock을 동기화 하는 방법으로 동기식은 송신기가 하나의 기준 클럭에 보조를 맞추어 동작하고, 비동기식 전송은 송수신기가 별도의 독립적인 클럭 신호를 이용하여 데이트 비트열의 송신과 수신을 하게 된다구요. - 아, 가슴에 와닿지 않는군요 -
어쨌든 간에, 송신하는 쪽은 MCU, 수신하는 쪽은 Peripheral Device 쪽이라고 치면 (양방향이긴 하지만, 보통은 이런 Data의 흐름이라서요) 전송매체를 Bus로 치고, 그렇다면 위의 예와 비스므리하게 연결되지요? 그래서 동기식은 계속 Synchronization이 되어 있기 때문에 대용량 전송에 적합하고, 비동기식은 그렇지 않기 때문에 불규칙적이면서도 작은 Size의 Data에 적합하다고나 할까요. 라는 말입니다요.
댓글