CPU

Solf·2023년 6월 30일

컴퓨터 구조

목록 보기
2/3

CPU는 컴퓨터의 가장 기본구성이 되는 장치이다.

CPU의 기본 구성

  • 산술논리 연산장치(ALU, Arithmetic and Logic Unit): 데이터를 연산하는 장치
    데이터의 사칙연산같은 산술연산과 and or과 같은 논리연산 수행
  • 제어장치(control unit): 명령을 내리는 장치
  • 레지스터(register): cpu내부에서 바로 사용할 수 있도록 존재하는 메모리
    계산의 중간값 임시저장이나 작업 진행을 위해 필요한 정보를 저장

레지스터의 종류

<일반 레지스터>

  • 데이터 레지스터(DR, data register) : 메모리에서 가져온 데이터를 임시보관 시 사용
  • 주소 레지스터(AR, address register) : 데이터 또는 명령어가 저장된 메모리의 주소 저장

<특수 레지스터>

  • 프로그램 카운터(PC, program counter) or 명령어 포인터 : 다음으로 실행해야할 명령어 주소를 저장
  • 명령어 레지스터(IR, instruction register) : 현재 실행중인 명령어 저장
  • 메모리 주소 레지스터(MAR, memory address register) : 메모리에서 데이터를 가져오거나 반대로 메모리로 데이터를 보낼 때 주소를 지정하는데 사용
  • 메모리 버퍼 레지스터(MBR, memory buffer register): 메모리에서 가져온 데이터나 메모리로 옮겨갈 데이터를 임시로 저장한다.

버스의 종류

버스 : 신호가 오가는 길
cpu는 주변 장치와 메모리간 통신을 위해 3가지 시스템 버스(FSB)를 활용한다.

<시스템 버스 FSB>

  • 제어 버스(control bus) : 다음에 어떤 작업을 할지 지시하는 제어신호가 오감
  • 주소 버스(address bus) : 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지 알려주는 위치정보가 오감
  • 데이터 버스(data bus) : 제어버스가 작업을 알려주고 주소버스가 위치를 전달하면 데이터버스가 실제 데이터를 실어 전달한다.

CPU bit

CPU는 64bit와 32bit를 볼 수 있다.(요즘엔 모두 64bit를 활용한다)
이는 버스의 대역폭을 의미하며 한번에 전달할 수 있는 데이터의 최대 크기이다.
레지스터의 크기, 산술논리 연산장치, 버스의 크기(대역폭) 모두 cpu의 bit에 맞춰 제작된다.
따라서 메모리 주소 범위또한 비트에 맞춰지는데 컴퓨터의 최대 메모리 크기가 32bit의 경우 0~2^32번지 즉 2^32B(약 4GB)가 된다. 64bit컴퓨터의 경우 2^64B(약 16,777,216TB)로 현대엔 대부분 64bit cpu를 사용하게 되었다.

인터럽트

CPU가 입출력을 모두 기다리면 그동안 연산은 손해를 보게 된다. 즉 이를 입출력관리자에게 맡긴다. 입출력관리자는 입출력이 끝나면 인터럽트(interrupt)을 cpu에게 보내 종료됐을음을 알린다. 입출력관리자는 직접 메모리 접근 권한(DMA)을 가진다. 즉 CPU 관여없이 작업을 완료할 수 있도록 한 것이다.

기존에 DMA는 별도의 메모리에 접근해 CPU와 작업영역을 별개로 했다. 그러나 이는 이중작업이 필요하기에 메모리 맵 입출력(MMIO) 방식을 활용하게 되었다.
이는 가상의 경계를 만들고 메모리의 일부만을 입출력 작업영역으로 사용한다.

멀티코어

하나의 CPU칩에 핵심기능을 가진 코어를 여러개 만들어 둔 것이다.(물리적으로 병렬연산이 가능하게 한 것)

profile
CS/Software Engineer

0개의 댓글