동기 가변식 사이클 시간과 마이크로 연산 분류

동기 가변식 사이클 시간의 클래스별 타이밍 배정 방식, 다중 클럭 도메인 제어와 동기화 설계상의 특성을 정리한다.

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

가장 느린 마이크로 연산에 전체 시간을 맞추지 않는 방식

동기 가변식 사이클 시간은 실행 시간이 유사한 마이크로 연산을 클래스별로 묶고, 클래스마다 별도의 마이크로 사이클 타임을 배정하는 구조다. 모든 연산을 하나의 고정된 주기에 맞추는 방식에서 생기는 낭비를 줄이되, 비동기 방식만큼 복잡한 제어를 요구하지 않는 균형점에 해당한다.

이 방식에서도 기준은 마스터 클럭이다. 차이는 연산의 성격과 실행 시간에 따라 사용할 타이밍을 나눈다는 데 있다.

모든 마이크로 연산실행 시간 측정클래스 1빠른 연산(3-5ns)클래스 2중간 연산(6-9ns)클래스 3느린 연산(10-15ns)사이클 타임 = 5ns사이클 타임 = 9ns사이클 타임 = 15ns

실행 시간과 하드웨어 자원으로 나누는 클래스

실행 시간을 기준으로 나누면 각 클래스는 해당 범위의 최댓값에 맞춘 사이클 타임을 사용한다.

클래스 연산 유형 실행 시간 사이클 타임 예시
Class 1 단순 전송 3-5ns 5ns 레지스터 복사, 즉시값 로드
Class 2 산술/논리 6-9ns 9ns 덧셈, 뺄셈, AND, OR
Class 3 복잡 연산 10-15ns 15ns 곱셈, 나눗셈, 시프트
Class 4 메모리 접근 20-30ns 30ns 메모리 읽기/쓰기

하드웨어 자원으로도 같은 구분을 설명할 수 있다. 내부 레지스터만 쓰는 연산은 빠른 그룹에, ALU를 경유하는 연산은 중간 그룹에 속한다. 메모리 버스를 사용하거나 여러 단계가 필요한 연산은 더 느린 그룹으로 분류된다.

클래스별 클럭을 선택해 연산을 진행한다

마스터 클럭은 PLL 또는 분주기를 거쳐 각 클래스에 필요한 주파수의 클럭으로 나뉜다. 이때 클래스마다 독립적인 클럭 도메인이 생기므로, 다른 클래스의 연산으로 넘어갈 때는 도메인 간 동기화가 필요하다.

마스터 클럭PLL/분주기클럭 1(200MHz)클럭 2(111MHz)클럭 3(67MHz)클럭 4(33MHz)Class 1 연산Class 2 연산Class 3 연산Class 4 연산

제어 유닛은 먼저 마이크로 연산의 클래스를 식별하고, 그 클래스에 대응하는 클럭 신호를 선택한다. 선택된 주기 안에서 연산을 실행한 뒤 완료를 기다리고 다음 단계로 진행한다.

아래와 같이 전송, 덧셈, 곱셈이 이어지는 경우 각 연산은 서로 다른 클래스의 타이밍을 사용한다.

"Class 3 (15ns)""Class 2 (9ns)""Class 1 (5ns)""제어 유닛""Class 3 (15ns)""Class 2 (9ns)""Class 1 (5ns)""제어 유닛""R1 ← R2 (전송)""5ns 실행""R1 ← R1 + R2 (덧셈)""9ns 실행""R1 ← R1 × R2 (곱셈)""15ns 실행"

이 시나리오의 총 실행 시간은 5 + 9 + 15 = 29ns다. 동기 고정식에서는 15 + 15 + 15 = 45ns가 필요하며, 55% 더 느리다.

효율과 제어 복잡도가 함께 늘어난다

빠른 연산에 느린 연산의 주기를 강제하지 않으므로 고정식보다 효율적이다. 연산별로 적절한 시간을 할당할 수 있고, 클래스별 타이밍이 일정하다는 점에서 실행 시간을 예측하기도 쉽다. 비동기식에 비해서는 설계가 단순하다.

반면 고정식보다 제어 로직은 복잡해진다. 여러 클럭 도메인을 관리해야 하고, 클래스 전환에는 동기화 지연이 뒤따른다. 같은 클래스 안에서는 여전히 가장 긴 실행 시간을 기준으로 주기가 정해지므로, 클래스 내부의 시간 낭비도 남는다.

동기 가변식다중 클럭 도메인클럭 분주기 필요도메인 동기화하드웨어 복잡도클래스 비효율같은 클래스 내에서는여전히 시간 낭비

분류 기준을 설계에 반영하는 방법

클래스 수가 적으면 2-3개 수준에서 클럭 관리와 설계가 단순해지지만 성능 개선 폭은 제한된다. 5개 이상으로 세분화하면 성능과 자원 활용은 높아질 수 있으나 제어와 동기화 오버헤드가 커진다.

분류는 실제 프로그램에서 마이크로 연산 빈도를 프로파일링하는 데서 시작한다. 이어 실행 시간 분포를 히스토그램으로 파악하고, 유사한 시간대를 클러스터링해 후보 클래스를 만든다. 여러 분류안을 성능 시뮬레이션으로 비교한 뒤 성능과 복잡도의 트레이드오프에 맞춰 결정한다.

클럭 도메인 사이의 데이터 전송에는 FIFO 버퍼를 사용할 수 있다. 완료 신호를 주고받는 핸드셰이크와 메타스테이블리티 방지를 위한 동기화 플립플롭도 클래스 전환을 다루는 수단이 된다.

동기 가변식사이클 시간마이크로연산클럭 도메인컴퓨터구조