본문 바로가기
Computer Architecture/Processor

Processor의 구조 - 3. Clock 과 Critical Path(임계경로)

by FastBench 2024. 11. 10.
반응형

- 프로세서 시리즈 모아보기 -

https://microelectronics.tistory.com/112

 

기본적인 ISA 동작 방식을 모르면 이해하기 어렵습니다.

 

1. 프로세서와 클럭

  • 클럭 신호는 프로세서의 속도를 결정하는 중요한 요소로, 다양한 상태 요소의 업데이트를 동기화한다.
  • 일반적으로 클럭이 빠를수록 프로세서가 더 빠르지만, 설계에서 가장 느린 경로가 전체 속도를 제한한다.

2. 프로세서 구성 요소에서의 클럭 연결

  • 프로그램 카운터: 클럭 신호가 들어가며, 매 클럭 사이클마다 다음 프로그램 카운터 값으로 업데이트된다.
  • 레지스터 파일: 데이터 쓰기 시 레지스터 파일이 클럭 엣지에서 업데이트되므로 클럭 신호가 필요하다.
  • 데이터 메모리: 데이터를 쓰기 위해 클럭 신호가 들어가며, 클럭 엣지에서 데이터가 저장된다.
  • instruction memory: 쓰기가 필요하지 않아 클럭 신호가 들어가지 않는다.

3. addi 명령어의 동작 과정

3.1 프로그램 카운터 업데이트

  • addi 명령어가 실행되기 전에 이미 다음 프로그램 카운터 값이 계산되어 입력 단자에서 대기하고 있다.
  • 클럭의 상승 엣지(rising edge)가 발생하면, 대기 중이던 다음 프로그램 카운터 값이 현재 프로그램 카운터로 설정된다. (출력으로 나와서 instruction memory 로 전달된다는 의미)
  • 즉, 클럭이 상승 엣지에서 ‘딱’ 치는 순간, 프로그램 카운터의 새로운 값이 설정되며, 이후 순차적으로 명령어를 로드하고 실행하는 흐름이 시작된다.

3.2 명령어 로드 및 처리

  • 프로그램 카운터가 업데이트된 후, 이 값이 instruction memory로 전달된다.
  • instruction memory 에서는 프로그램 카운터의 값에 해당하는 addi 명령어를 decode 레지스터 파일과 사인 확장기로 전달한다.
  • 레지스터 파일에서는 명령어에 명시된 소스 레지스터의 값을 읽어내어 이후 연산을 위한 준비 상태가 된다. 사인 확장기는 addi 명령어의 즉시 값(immediate)을 확장하여 ALU로 전달한다.

3.3 ALU 처리

  • 클럭 상승 엣지에서 시작된 연산이 다음 클럭 엣지에 도달하기 전까지 ALU에서 덧셈 연산을 수행한다.
  • ALU는 레지스터 파일에서 읽은 값과 사인 확장기의 값을 더한 결과를 생성하고, 이 결과는 다시 레지스터 파일에 저장될 준비를 마친다.
  • 중요한 것은 이 덧셈 연산이 클럭이 다시 ‘딱’ 치는 순간에 맞춰 완전히 완료되어야 한다는 점이다. 즉, 이 과정은 다음 클럭 상승 엣지 전까지 모든 작업을 마쳐야 한다.

3.4 다음 명령어 준비

반응형
  • ALU 연산이 진행되는 동안 프로그램 카운터는 다음 명령어를 준비하기 위해 +4 연산을 수행하여 다음 명령어의 주소를 계산한다.
  • 이 새로운 프로그램 카운터 값은 프로그램 카운터 입력 단자에 전달되어 대기하고 있다가, 다음 클럭 상승 엣지에서 현재 프로그램 카운터 값으로 설정될 준비가 된다.
  • 이렇게 다음 명령어 주소가 미리 계산되고 대기함으로써, 클럭 신호에 따라 연속적으로 명령어가 실행될 수 있게 된다.

3.5 결과 저장 및 반복

  • 다음 클럭 상승 엣지가 도달하면, ALU에서 계산한 값이 레지스터 파일에 기록된다.
  • 동시에, 대기 중이던 프로그램 카운터의 새로운 값이 프로그램 카운터로 설정된다.
  • 이러한 동작이 매 클럭 엣지마다 반복되면서 명령어가 순차적으로 실행되며 프로세서가 계속 동작하게 된다.

4. Logic paths 와 Delays

프로세서의 경로를 따라 각 요소의 작업 시간이 필요하며, 모든 경로의 총합이 클럭 신호보다 빨라야 다음 명령어로 넘어갈 수 있다.

예시:

  • 명령어 메모리 접근: 20ns
  • 사인 확장기: 10ns
  • ALU 계산: 45ns
  • 가장 느린 경로(예: 100ns)가 전체 클럭 속도를 결정하는 임계 경로(critical path)가 된다.

클럭 속도는 임계 경로에 의해 제한되며, 임계 경로를 단축하여 클럭 속도를 높일 수 있다.

예시에서, 임계 경로의 100ns 지연을 기준으로 최대 클럭 속도는 10MHz로 설정된다.

 

결론

프로세서의 클럭 속도는 내부 구성 요소들이 명령어를 처리하는 경로 중 가장 시간이 오래 걸리는 경로, 즉 임계 경로(critical path)에 의해 결정되며, 이 임계 경로의 지연 시간을 줄이지 않는 한 프로세서의 성능은 그 이상으로 향상될 수 없다. 따라서, 임계 경로의 작업 시간을 최적화하고 줄여나감으로써 클럭 속도를 높여 더 빠른 명령어 처리 속도와 전반적인 프로세서 성능 향상을 이룰 수 있다.

 

Reference

반응형

댓글