비동기식 사이클 시간: 완료 신호로 마이크로 연산을 이어가는 설계

비동기식 사이클 시간이 완료 신호와 핸드셰이크로 마이크로 연산을 제어하는 방식, 성능 특성, 설계 기법을 정리한다.

2026-08-14 · 최초 발행 2025-12-25

연산이 끝난 시점에 다음 단계로 넘기는 방식

비동기식 사이클 시간은 마이크로 연산마다 서로 다른 실행 시간을 두고, 고정 클럭이 아니라 완료 신호에 따라 다음 동작을 시작하는 방식이다. 빠른 연산을 느린 연산의 사이클에 맞춰 기다릴 필요가 없으므로 성능과 효율을 높일 수 있다. 반면 각 연산의 완료를 확인하고 전체 회로의 안정성을 검증해야 하므로 설계 난이도는 높다.

각 마이크로 연산은 독립적인 실행 시간을 가지며, 완료 신호가 다음 단계의 시작 조건이 된다. 이 구조에서는 불필요한 대기 시간을 제거할 수 있다.

마이크로 연산 시작연산 수행완료 검출완료 신호 발생다음 연산 시작빠른 연산: 3ns즉시 완료중간 연산: 8ns8ns 완료느린 연산: 15ns15ns 완료

완료 신호가 만드는 자체 타이밍

자체 타이밍(Self-Timed) 회로에서는 이전 연산의 완료가 다음 연산을 시작시키는 트리거가 된다. 연산이 끝나면 완료 신호가 발생하고, 각 블록은 실제로 필요한 시간만 사용해 독립적으로 동작한다.

다음 블록완료 신호연산 블록요청 신호다음 블록완료 신호연산 블록요청 신호시작 요청연산 수행 (가변 시간)완료 신호다음 연산 시작완료 확인

명령어 실행을 예로 들면, 각 마이크로 연산이 끝나는 즉시 다음 연산으로 이어진다.

마이크로 연산 실행 시간 대기 시간
IR ← M[PC] 20ns 0ns
PC ← PC + 1 3ns 0ns
명령어 해독 5ns 0ns
R1 ← M[AR] 22ns 0ns
R2 ← R2 + R1 8ns 0ns

총 실행 시간은 20 + 3 + 5 + 22 + 8 = 58ns다.

동기 고정식에서 사이클이 22ns라면 22 × 5 = 110ns가 필요하며, 이는 89% 더 느리다. 동기 가변식(2클래스)은 약 80ns로, 38% 더 느리다.

신호 교환 방식에 따른 차이

2-Phase 핸드셰이크

2-phase 핸드셰이크는 신호의 전이 자체에 의미를 둔다. Request와 Acknowledge의 상승 또는 하강 변화가 데이터 전송과 수신 확인을 나타낸다.

수신측송신측수신측송신측Request ↑ (데이터 전송)Acknowledge ↑ (수신 확인)Request ↓ (준비)Acknowledge ↓ (대기)

Request는 데이터 전송 요청이고, Acknowledge는 데이터 수신 확인이다. 신호 변화로 의미를 전달하므로 빠른 통신에 적합하며 2단계만 필요하다.

4-Phase 핸드셰이크

4-phase 핸드셰이크는 신호값 0 또는 1을 기준으로 상태를 구분한다. 전송과 확인 뒤에 두 신호를 다시 리셋하는 과정을 거친다.

수신측송신측수신측송신측Request = 1 (데이터 전송)Acknowledge = 1 (수신 확인)Request = 0 (리셋)Acknowledge = 0 (리셋 확인)

더 확실한 동기화를 제공하지만 4단계가 필요해 2-phase보다 느리다. 대부분의 비동기 회로에서는 이 방식을 사용한다.

성능 이득과 설계 부담이 함께 생긴다

비동기식 회로는 각 연산이 최소 시간만 사용하므로 전형적인 경우의 성능을 최적화할 수 있다. 대기 시간이 없고 공정 변화에 자동 적응하며, 블록별로 독립 동작하는 모듈화에도 유리하다.

그 대가로 타이밍 분석과 검증은 매우 어려워진다. 완료 검출 회로가 추가돼 면적 오버헤드가 생기며, 예측하기 어려운 타이밍 때문에 테스트도 복잡하다. 비동기 설계 도구는 제한적이고 레이스 조건과 메타스테이블리티도 다뤄야 한다.

항목 동기식 비동기식
설계 난이도 낮음 매우 높음
성능 중간~높음 최고
전력 효율 중간 높음
타이밍 예측 쉬움 어려움
검증 표준 도구 특수 도구
면적 기본 크다 (핸드셰이크 회로)

완료 검출과 합의 소자

완료 검출 회로는 실제 연산 경로와 같은 지연을 갖는 더미 회로를 이용한다. 더미 회로의 완료를 실제 연산 완료의 보장으로 사용하고, 약간의 여유 시간을 추가해 안정성을 확보한다.

Muller C-Element는 모든 입력이 동일한 값일 때만 출력을 바꾸는 합의 소자다. 핸드셰이크 회로에서 부분 완료를 막는 역할을 한다.

입력 AC-Element입력 B출력A=1, B=1출력 = 1A=0, B=0출력 = 0A≠B출력 유지

파이프라인 비동기 회로에서는 각 단계가 핸드셰이크로 독립 동작한다. 단계마다 속도가 달라도 동작할 수 있고, 병목 단계가 전체 처리량을 결정한다. 데이터에 따라 달라지는 실행 시간에도 자동으로 적응한다.

비동기식 사이클 시간은 완료 신호를 통해 고정 클럭의 대기 시간을 없애는 설계다. 특수한 응용 분야나 초고성능 설계에서는 성능과 전력 효율의 이점이 크지만, 이를 얻기 위해서는 완료 검출과 핸드셰이크, 검증 복잡도를 함께 감당해야 한다.

비동기식 회로사이클 시간컴퓨터구조핸드셰이크완료 검출