Computer Science

CPU의 기본적인 구성 및 동작

jwkane 2024. 3. 19. 23:25

CPU의 구성 


1. 우뇌(연산력) = 산술 논리 연산장치 ALU (Arthmetic Logic Unit)

  • 논리 연산 수행
  • 디지털 회로

명령어와 데이터 정보를 토대로 소요시간을 연산하고 수행하는 부분인것같다


2. 좌뇌(구성력) = 제어부와 내부버스 CU (Control Unit)

  • 명령어 실행하는 순서 제어 / 스케쥴링
  • 주기억 장치에 저장된 명령어 순서대로 호출,해독
  • 제어 신호 발생시켜 컴퓨터 각 장치 동작유도 
    #내부버스
  • 기억, 연산, 제어 기능을 실현하기위해
  • CPU / 주기억 장치 / 입출력 장치 / 외부 기억 장치 / 주변 장치 / 통신 처리 장치
    사이를 연결하는 버스

제어부라는 말 그대로 명령어가 순서대로 실행되도록 하는(스케쥴링) 각 장치들의 동작을 제어하는 곳인것같다


3. 오른손  (레지스터) = 레지스터 처리할 명령어 저장(도구를 드는손 메인)

레지스터란?
● 고속 메모리
● 프로세서에 위치
● 극소량의 데이터, 처리 중인 중간 결과와도 같은 프로세서가 바로
사용 할 수있는 데이터를 담고있는 영역
● 컴퓨터구조에 따라 크기,종류 다양함
● 용도에 따라 범용 레지스터 특수목적 레지스터로 구분됨
#범용 레지스터 : 연산 시 필요한 데이터,연산결과 임시 저장
#특수 목적 레지스터 : 특별한 용도로 사용 

목적에 따른 레지스터 종류
● 메모리 주소 레지스터(MAR) : 읽고 쓰기 위한 주기억 장치의 주소를 저장한다.
● 프로그램 카운터(PC) : 다음에 수행할 명령어의 주소를 저장.
● 명령어 레지스터(IR) : 현재 실행 중인 명령어를 저장
● 메모리 버퍼 레지스터(MBR) : 주기억장치에서 읽어온 데이터나 
                              저장할 데이터를 임시로 저장
● 누산기(AC,ACCUMULATEOR) : 연산 결과를 임시로 저장

레지스터는 처리할 명령어들이 데이터를 담는 영역인것같다

4. 왼손  (캐시 메모리) = 캐시 메모리 처리속도를 높여준다

 

L1캐시메모리의 역할은 단독 역할보다 보조의 느낌이 강한것 같다.

레지스터라던지 CPU의 처리속도를 높여주는 부분인것같다.

 

 

 

 

CPU의 동작

  •  컴퓨터는 모든 데이터를 기계어(0,1)로 저장
  • 기계어를 모스부호처럼 하드웨어적으로 CPU가 알아볼 수 있게 변환한게 "어셈블리어"
  • "어셈블리어"를 사람이 알아볼 수 있게 소프트웨어적으로 변환한게 "프로그래밍언어

기계어(저장 공간) -> 어셈블리어(CPU) -> 프로그래밍 언어(사람)

※우리가 다룰 데이터(재료)와 명령어(레시피)는 모두 저장공간에 저장되어 있음

 

 

CPU가 명령어를 읽고 수행하는 동작

 

  1. 명령어 인출 : CU가 이번에 수행할 명령어 정보를 가져옴 / 주문정보,레시피 가져옴
  2. 명령어 해독 : 보통 opcode라고하는 명령어 코드를 인출하고
                           opcode 성격에 맞게   레지스터 준비  / 레시피에 맞게 요리도구 준비
  3.  실행        : 해독된 명령어 수행 
                       ex) 산술/논리 관련 연산이라고 하면 ALU가 주체로 실행 / 요리 진행
  4. 반영        : 이 명령어의 수행결과를 반영, 수행 한사이클 끝 / 수령대로 전달

정리하면

CU(제어부)에서 수행할 명령어 정보를 가져와서  CPU가 알아 볼 수있게 어셈블리어로 변환하고

처리할 데이터에 따라 레지스터(해당 데이터 처리에 알맞는 명령어)를 준비한 뒤 데이터를 처리하며 

L1 캐시메모리가 전반적인 처리속도를 높이는 데에 관여하는 방식인것같다.

 

오늘의 배운점

 

어셈블리어가 CPU가 알아볼 수 있는 것을 처음 알게 되었고

CPU 큰 틀에 데이터 처리에 대해 알게되었다.

코드(명령)를 통해 컴퓨터에게 명령을 내리고

출력을 받는 이 구조에 대해 알고나니 

코딩이라는것에 대해 더더욱 신기함과 흥미를 느꼈다.