1. 빠른 cpu를 위한 설계 기법

클럭

컴퓨터 부품은 클럭 신호에 맞춰 움직인다. 클럭속도가 빠르게 반복되면 그만큼 cpu 성능이 좋은거다. 클럭 속도는 1초에 몇 번 반복되는지 헤르츠로 표기한다. 최대 클럭 속도를 강제로 더 끌어올릴때를 오버 클럭킹이라고 한다.

코어와 멀티코어

cpu의 코어와 스레드 수를 늘리는 것도 cpu의 성능을 높이는 방법이다. 명령어를 실행하는 부품을 코어 라고 하고 코어를 여러 개 포함하고 있는 cpu를 멀티코어 cpu 또는 멀티코어 프로세서 라고 한다. 그렇다고 코어를 늘린다고 연산 처리가 빨라지는 것은 아니다. 중요한 것은 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐이고 그에 따라서 연산 속도는 크게 달라진다.

스레드와 멀티스레드

스레드는 cpu에서 사용되는 하드웨어적 스레드가 있고 프로그램에서 사용되는 소프트웨어적 스레드가 있다. 하드웨어적 스레드는 하나의 코어가 동시에 처리하는 명령어를 실행하는 단위이고 스프트웨어적 스레드는 하나의 프로그램에서 독립적으로 실행되는 단위이다.

멀티스레드 프로세서

하나의 코어로 여러 명령어를 동시에 처리하는 cpu

2. 명령어 병렬 처리 기법

명령어 병렬 처리 기법

  1. 명령어 파이프라인
  2. 슈퍼스칼라
  3. 비순차적 명령어 처리

명령어 파이프라인

  1. 명령어 처리 과정
    1. 명령어 인출
    2. 명령어 해석
    3. 명령어 실행
    4. 결과 저장
  2. 각 단게를 동시에 실행할 수 있어서 효율적이다.
  3. 특정 상황에서는 성능 향상에 실패하는 경우가 있다.(파이프라인 위험)
    1. 제어 위험 - 분기 등으로 인한 프로그램 카운터의 갑작스러운 변화에 의해 발생한다.
    2. 데이터 위험 - 명령어 간 데이터 의존성에 의해 발생한다.
    3. 구조적 위험(자원 위험) - 서로 다른 명령어가 동시에 ALU, 레지스터 등과 같은 cpu부품을 사용하려할때 발생한다.