The Processor
프로세서와 인스트럭션 사이클
- 프로세서는 인스트럭션을 반복적인 사이클 구조로 처리함
- 각 인스트럭션은 서로 다르지만 기본 처리 흐름은 반복됨
- 인스트럭션이 메모리에 어떻게 저장되고 처리되는지 이해하는 게 핵심
Load 인스트럭션
- 메모리에서 데이터를 읽어서 레지스터에 저장하는 명령어
- 데이터이동익 때문에 ALU 연산과 다르게 메모리 접근이 필요함
- 따라서 실행 시간이 길어질 수 있음
Flip-Flop (플립플롭)
- 비트 단위 정보를 저장하는 회로
- 클럭의 상승 순간에 값이 저장됨
- 클럭 기반으로 동작함
- 클럭 주기가 시스템 속도를 결정함
클럭과 경주
- 경주를 하지 않으면 안정적
- 경주를 하면 신호가 언제 도착할지 예측이 어려움
- 그래서 동기식 설계를 사용함
즉, 예측 가능성이 중요함, 예측 가능성이 중요함
제어 신호
- 프로세서 내부 동작을 제어하기 위한 신호
- 어떤 연산을 할지, 어디에 저장할지를 결정
- 징리표로 표현 가능하지만 입력이 많으면 복잡해짐
- 입력이 6개라면 가능한 조합은 64개
- 실제로는 필요한 제어신호 개수만 추려서 설계함
데이터 경로에서 중요한 점
- PC 소스가 중요
- 어떤 부분이 진하게 동작하는지 구분해야 함
- 4비트 등 비트 폭도 설계에서 중요
클럭 사이클과 실행 시간
싱글 사이클
- 모든 인스트럭션을 한 사이클에 실행
- 가장 오래 걸리는 인스트럭션 기준으로 클럭 설정
단순하지만 비효율적
멀티 사이클
- 인스트럭션을 여러 단계로 나눔
- 각 단계가 짧아서 효율적
- 명령어마다 필요한 단계만 사용
평균 실행 시간 단축
파이프라이닝
- 서로 다른 단계가 동시에 실행 가능
- 최대 5개 인스트럭션이 겹쳐 실행 가능