CPU 성능

augusstt·2022년 10월 17일
0

CS

목록 보기
2/11
post-thumbnail

이 글은 "혼자 공부하는 컴퓨터 구조 + 운영체제"를 읽고 이해한 내용을 복습하기 위해 작성하는 글입니다.

이미지 출처 : 혼자 공부하는 컴퓨터 구조 + 운영체제

CPU 성능

1. 설계기법

  1. 클럭

    • 첫번째 CPU성능을 올리는 요인

    • 주로 클럭속도(hz)는 CPU 속도 단위로 간주된다.

    • CPU는 일정한 클럭을 유지하는 것이 아니라 고성능을 요하는 순간에는 속도를 높히고 아닐때는 속도를 낮춘다.

    • 최대 클럭 속도를 강제로 더 끌어 올리는 것을 오버클럭킹(OverClocking)이라 한다.

  2. 코어(멀티코어)

    • 두번째 CPU성능을 올리는 요인
    • 코어 : 명령어를 실행하는 부품
      • CPU도 명령어를 실행하는 부품이 맞지만, 코어 또한 그러하다.

        따라서 CPU = 명령어를 실행하는 부품을 여러가지 포함하는 부품 이라고 보는 것이 적절하다.

    • 코어를 여러개 포함하는 CPU를 멀티코어 프로세서라고 한다.
      - 하지만 코어의 갯수와 CPU의 연산속도는 무조건적인 비례관계가 아니다.
  3. 스레드 (멀티 스레드)

    1. 하드웨어적 스레드
      • CPU에서 사용하는 "스레드"
      • 하나의 코어가 동시에 처리하는 명령어 단위
      • 하나의 코어가 동시에 처리하는 CPU를 멀티스레드 프로세서 라고 한다.
    2. 소프트웨어적 스레드
      • 하나의 프로그램에서 독립적으로 실행되는 단위
      • 1코어 1스레드 CPU로도 프로램의 여러 부분을 동시에 실행 가능
        스레드

2. 명령어 병렬 처리 기법

  • 명령어를 동시에 처리하여 CPU를 쉬지 않고 작동시키는 기법
  1. 명령어 파이프라인

    • 클럭단위로 나눈 명령어 처리 순서

      명령어 인출 > 명령어 해석 > 명령어 실행 > 결과 저장

    • 같은 단계가 겹치지만 않는다면, CPU는 각 단계를 동시에 실행 할 수 있다.
      명령어 처리

      • 위 사진 처럼 명령어들을 동시에 처리하는 기법을 명령어 파이프라인이라 한다.
    • 파이프 라인 위험

      • 특정 상황에서 성능 향상에 실패하는 경우
      1. 데이터 위험

        • 명령어 1의 연산 과정에 명령어 2의 결과값이 포함 된 경우, 명령어 2의 값이 도출되기 전엔 명령어 1의 결과값을 도출 할 수 없다.
      2. 제어 위험

      • 프로그램 카운터는 현재 실행 중인 명령어의 다음 주소로 갱신된다. 여기서 실행이 바뀌어 카운터 값에 변화가 생기면, 파이프라인에 미리 가져와 처리중이던 명령어들을 처리할 수 없다.
      1. 구조적 위험
  2. 슈퍼 스칼라

    • 여러개의 명령어 파이프 라인을 포함한 구조
      슈퍼스칼라
  3. 비순차적 명령어 처리

    • 명령어를 순차적으로 실행 하지 않고, 먼저 처리해도 무방한 명령어를 먼저 실행하는 기법

3. CISC, RISC

  1. CISC
    • Complex Instruction Set Computer
    • 복잡한 명령어 집합을 사용하는 컴퓨터(CPU)
    • 장점
      • 가변길이 명령어를 사용

        상대적으로 적은 수의 명령어 사용 > 컴파일된 프로그램의 크기가 작다.

    • 단점
      - 명령어가 복잡하고 다양하기 때문에, 크기와 실행시간이 일정치 않음
      - 때문에 파이프라인 사용이 힘들다.
  2. RISC
    • Reduced Instruction Set Computer
    • 짧고 규격화된 명령어(1클럭 내외) 사용
    • 고정길이 명령어 사용
      - 파이프라이닝에 최적화

차이

profile
https://augusstt-note.gitbook.io/aug-note 로 블로그 이전했습니다!

0개의 댓글