본문 바로가기
좋은 개발자가 되기위한 방법들

CPU의 명령어 처리방식

by chief_sac 2021. 8. 29.
반응형

 

 

개발을 하면서 많은 지식을 알아야하지만 CPU, 프로세서, 쓰레드등등 다양한 용어를 듣지만 제대로된 이해를 하지 못하고 그저 머리로만 상상하여서 컴퓨터에게 명령을 내었지만 제대로된 의미와 단어에대한 정리 그리고 그 구조에대해 정리하였다.

먼저 우리는 컴퓨터의 두뇌라고 불리는 CPU(Central Processing Unit)을 프로세서라고 표현하기도한다.

 

 

프로세서 간략설명


 

중앙처리장치라고 표현하는 CPU는 명령어를 수행하고 데이터를 처리하는 장치인데 연산장치, 제어장치,레지스터 등으로 구성이 되어있다.
  • 16비트, 32비트, 64비트 이런형식의 비트표기는 흔히 보이는데 비트가 클수록 성능이 좋다고 생각하면된다.
  • 프로세서의 구성은 아래 그림과같이 구성된다.

 

 

프로세스의 구성


  • 연산장치(ALU)
    • 연산장치는 자료를 처리하고 계산하는 장치이다.
    • 산술연산 즉 사칙연산(+,-,*,/)을 처리한다.
    • 논리연산 ( OR, AND, NOT)을처리한다.
  • 제어장치
    • 프로그램에 의해 주어지는 연산의 순서를 차례대로 실행한다.
    • 기억장치와 연산장치, 입출력 장치에서 제어 신호를 발생한다.
    • 이들 장치로부터 신호를 받아서 다음에 처리할 작업들을 제어한다.
  • 레지스터(Register)
    • 실행의 중간 결과나 적은 양의 자료를 임시로 저장하는 중앙처리 장치내에서 임시 기억장치를 말한다.
    • 데이터의 접근속도가 매우빠른 작은 수의 메모리 회로
    • 범용 레지스터와 특수 레지스터가 있다.

 

 

프로세서는 다양한 곳에 사용되는데

  • 3차원 그래픽 가속기 프로세서
  • 비디오 코덱 프로세서
  • 미디어 프로세서 - 음악 플레이
  • 통신용 프로세서
  • 일반제품용 칩과 주문형반도체(ASIC : Application Specific Integated Circuit)

또한 프로세서는 설계 방식에따라서 2가지로 분류되는데

 

 

프로세서 구분


 

  • CISC(Complex Instruction Set Computer)
    • 복잡하고 기능이 많은 명령어로 구성된 프로세서를 말한다.
    • 피요한 모든 명령어의 세트를 갖도록 설계해야한다.
    • 복합적인 명령을 가짐으로서 하위 호환성을 확보하계 구성한다.
    • 트랜지스터의 집적에있어서 효율성이 상대적으로 낮다
    • 전력소모량이 크며, 속도는 느린데 가격이 비싸다
    • 386, 486, 펜티엄등 PC에서 사용되는 CPU에 사용된다.
  • RISC(Reduced Instruction Set Computer)
    • CPU의 명령어를 최소화하여서 단순하게 제작한 프로세서
    • 하드웨어가 간단한 대신에 소프트웨어는 복잡하다
    • 하위 호환성이 상대적으로 부족하다
    • 전력 소모가 적고 속도가 빠른데 가격이 저렴하다
    • 멀티태스킹 기능이 가능하다
    • 모토롤라, 매킨토시, 서버나 워크스테이션에서 주로 사용된다.

 

프로그램의 실행과 명령어 처리가 주 업무인데 명령어가 입력되었을 때의 처리방식은 아래와 같다.

 

 

명령어 처리과정


  • 컴퓨터는 주 기억 장치에 기억되어 있는 명령어를 호출하는 패치과정을 수행하고 해독한다.
  • 해독된 결과에 따라서 자료를 이동하고 연산,입출력을 실행하는 방식이다.

 

 

 

  • 호출(Fatch) 사이클
    • 레지스터 PC에서 저장되어 있는 값에 해당하는 주 기억장치로 가서 데이터를 복사해서 레지스터 PC에 저장한다.
    • 명령어가 "JUMP" 경우, PC는 새로운 값
  • 해석(Decode) 사이클
    • 레지스터 IR로 가져온 기계어 비트열을 해석한다
    • 연산자의 유형에 따라 피연산자 필드를 적절히 나눈다.
  • 실행(Execute) 사이클
    • 레지스터 IR의 비트열에 해당하는 신호를 연산장치에 제공하고,범용 레지스터나 주기억장치에 보내서 기계어 명령어를 수행한다.

 

 

레지스터의 종류


 

 

  • 메모리 버퍼 레지스터(Memory Buffer Register) : 모든 자료가 거치게 되는 자료 출입용 레지스터
  • 메모리 어드레스 레지스터(Memory Address Reguster) : 기억 작치 내의 정보를 호출하기 위한 주소 저장용 레지스터
  • 명령어 레지스터(Instruction Register) : 현재 수행중인 명령어를 임시로 기억해두는 레지스터
  • 프로그램 카운터(Program Counter) : 다음에 실행될 명령어의 주소를 기억한다.
반응형