비동기 회로(asynchronous circuit)는 전역 클럭(clock) 신호를 사용하지 않고 동작하는 순차 디지털 논리회로이다. 클럭 신호의 타이밍에 따라 회로 전체가 동시에 상태를 전이하는 동기 회로(synchronous circuit)와 대조적으로, 비동기 회로는 각 구성 요소 간의 핸드셰이킹(handshaking) 방식을 통해 연산의 완료를 알리고 다음 동작을 진행한다. 이러한 핸드셰이킹은 요청(request) 신호와 응답(acknowledge) 신호를 주고받는 단순한 데이터 전송 프로토콜에 의해 규정된다.
기본 원리
비동기 회로에서는 입력 신호가 변화하면 별도의 클럭 펄스를 기다리지 않고 즉시 상태 전이가 시작된다. 회로의 동작 속도는 이론적으로 논리 게이트 및 기타 요소의 전파 지연(propagation delay)에 의해서만 제한된다. 각 기능 블록은 이전 단계의 연산이 완료되었음을 나타내는 완료 신호를 수신한 뒤에야 다음 연산을 시작한다.
동기 회로와의 차이
동기 회로는 발진기가 생성한 등간격의 클럭 펄스를 모든 구성 요소에 분배하여, 플립플롭이 클럭 에지에서만 상태를 변경하도록 한다. 이로 인해 회로 전체의 상태 변화가 동시에, 주기적으로 발생한다. 반면 비동기 회로는 이러한 전역 클럭 분배망이 필요 없다. 동기 회로에서 클럭 분배 지연으로 인해 발생하는 클록 스큐(clock skew) 문제는 회로가 대형화·복잡해질수록 설계의 주요 난점으로 작용하는데, 비동기 회로는 이러한 문제로부터 자유롭다는 장점이 있다.
장점
비동기 회로는 다음과 같은 이점을 지닌 것으로 알려져 있다.
- 동작 속도가 최악의 경우(worst-case) 전파 지연이 아니라 평균적인 경우(average-case)의 지연에 의해 결정되므로, 특정 연산이 예상보다 빨리 끝나면 즉시 다음 연산을 진행할 수 있다.
- 회로가 실제로 동작하는 부분만 전력을 소비하므로 전력 소비가 낮고, 대기 상태에서의 전력 소비가 거의 없다.
- 클럭 분배망이 필요 없어 대규모 시스템에서 모듈 간 통합이 용이하고, 온도나 전압 변화에 따라 동작 속도가 자연스럽게 적응한다.
- 전자기 간섭(EMI)이 상대적으로 낮다.
단점
- 동기 회로에 비해 설계가 어렵다. 두 입력 신호가 거의 동시에 도달할 때 미세한 전파 지연 차이에 따라 회로가 오동작할 수 있는 경쟁 조건(race condition) 문제에 취약하다.
- 핸드셰이킹을 구현하는 추가 논리로 인해 면적이 커질 수 있으며, 경우에 따라 동기 설계 대비 최대 두 배의 자원이 필요할 수 있다.
- 동기 회로에 비해 설계·검증 경험이 있는 인력이 적고, 전용 상용 EDA 도구가 부족하다.
- 테스트와 디버깅이 상대적으로 어렵다.
이론적 기반
비동기 회로의 이론적 기초는 1950년대 중반 데이비드 E. 멀러(David E. Muller)가 확립하였다. 이후 레이먼드 밀러(Raymond Miller)의 저서 《Switching Theory》를 통해 체계적으로 정리되었다. 비동기 설계에는 번들 데이터(bundled-data) 방식과 다중 레일(multi-rail) 방식 등 다양한 설계 스타일이 존재하며, 지연에 대한 가정 수준에 따라 지연 무관(delay-insensitive) 설계에서부터 국부적 지연 모델을 사용하는 방식까지 구분된다.
응용 및 사례
비동기 회로는 대부분의 상용 디지털 장치에서 널리 사용되는 동기 회로에 비해 상대적으로 제한적인 분야에서 사용되어 왔다. 그러나 연구와 상용화 측면에서 여러 사례가 존재한다. 1951년 ORDVAC은 최초의 비동기 컴퓨터로 알려져 있으며, ILLIAC II는 최초의 완전 비동기 프로세서 설계로 평가된다. 이후 캘리포니아 공과대학(Caltech)이 CAM(1988), MiniMIPS(1998), Lutonium 8051(2003) 등 여러 비동기 마이크로프로세서를 제작하였고, 1990년대 영국 맨체스터 대학의 AMULET 프로젝트는 ARM 명령어셋을 구현한 비동기 프로세서를 개발하였다. 2004년에는 에프슨(Epson)이 세계 최초의 유연한(flexible) 8비트 비동기 마이크로프로세서 ACT11을 개발하여, 구부러지는 기판 위에서 동작하는 칩의 구현 가능성을 보여주었다. 2014년에는 IBM이 시냅스(SyNAPSE) 프로그램의 일환으로 비동기 방식으로 동작하는 칩을 발표한 바 있다.
오늘날 완전한 비동기 시스템보다는, 동기 시스템의 일부 임계 부분에 비동기 회로를 적용하는 방식이 일반적이다. 특히 저전력이 요구되는 신호 처리 회로 등에서 비동기 방식이 활용된다. 비동기 회로는 디지털 논리 설계 분야에서 여전히 활발한 연구 영역으로 남아 있다.