본문 바로가기

Dev/CS 컴퓨터사이언스

[혼공컴운/OS] CPU의 속도를 높이는 방법 | 클럭 | 멀티코어 | 멀티스레드 | 파이프라이닝 | 슈퍼스칼라 | OoOE | RISC | CISC

728x90
반응형

CPU의 속도를 높이려면 어떤 방법이 있을까?

  • 작업 속도의 단위(클럭)을 빠르게 한다!
    클럭 / 오버클럭
  • 명령어 인출 및 해석 부품(코어)의 수를 늘린다!
    멀티코어 프로세서
  • 하나의 코어가 여러 개의 명령어를 동시에 처리할 수 있도록 한다!
    멀티스레드 프로세서
  • 명령어 처리 파이프라인을 여러개 구성한
     슈퍼스칼라
  • 데이터 의존성 등이 없어서 대기할 필요가 없는 명령어는 먼저 처리해서, 최대한 파이프라인의 중단을 방지한다 → OoOE (비순차적 명령어 처리)
  • 명령어를 중복해서 실행할 수 있도록 한다!
    명령어 파이프라이닝
    • 데이터 위험: 데이터 간 의존성으로 인해 문제 발생 위험
    • 제어 위험: 불필요한 명령어를 미리 읽어올 위험
    • 구조 위험: 서로 다른 명령어가 동시에 같은 부품을 사용할 위험

저는 8코어 16스레드네요!

 

파이프라이닝 등을 잘 사용할 수 있는 명령어도 따로 있다고?!

  • ISA (Instructions Set Architecture)에 따라 다르다!
  • 대표적인 두 가지 ISA 비교분류 
    분류 CISC RISC
    명령어 종류 복잡하고 많다 (실사용은 20%) 단순하고 적다
    명령어 길이 가변적 고정적
    주소 지정방식 다양하다 제한되어 있다
    규격화 안됨
    수행 시간 여러 클럭을 거침 1클럭 내로 수행
    파이프라이닝 어려움 쉬움
    예시 x86-64 ARM
728x90
반응형