CS

CPU, GPU, RAM

Hyeon_E 2023. 11. 6. 17:44

[ CPU ]

중앙 처리 장치 또는 CPU(central processing unit, central/main processor)라고 함

컴퓨터 시스템을 통제하고 프로그램의 연산을 실행, 처리하는 가장 핵심적인 컴퓨터의 제어 장치 혹은 그 기능을 내장한 칩

컴퓨터 안의 중앙 처리 장치(CPU)는 외부에서 정보를 입력받고 기억하고 컴퓨터 프로그램의 명령어를 해석하여 연산하고 외부로 출력하는 역할을 함

CPU는 컴퓨터 부품과 정보를 교환하면서 컴퓨터 시스템 전체를 제어하는 장치로 모든 컴퓨터의 작동과정이 CPU의 제어를 받기 때문에 컴퓨터의 두뇌에 해당한다고 볼 수 있음

실제의 CPU 칩엔 실행 부분뿐만 아니라 캐시 등의 부가 장치가 통합된 경우가 많음

 

CPU에는 MCU(Micro Control Unit, 마이크로프로세서와 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 컴퓨터)와 주변 장치(외부 확장 장치에 관한 IC, 직접회로)가 다 들어있는 Soc(System On Chip, 단일 칩 시스템 - 하나의 직접회로에 직접된 컴퓨터나 전자 시스템 부품)가 있음

주변 IC가 따로 달려 있을 경우 그것은 MCU라고 할 수 있음

 

CPU는 기계어로 쓰인 컴퓨터 프로그램의 명령어를 해석하여 실행하고 프로그램에 따라 외부에서 정보를 입력받아 이를 기억하고 연산하며 결과를 외부로 출력하며 컴퓨터 부품과 정보를 교환하면서 컴퓨터 전체의 동작을 제어

 

기본 구성으로는 CPU에서 처리할 명령어를 저장하는 역할을 하는 프로세서 레지스터, 비교, 판단, 연산을 담당하는 산술논리연산장치(ALU), 명령어의 해석과 올바른 실행을 위하여 CPU를 내부적으로 제어하는 제어부(control unit)와 내부 버스 등이 있음

 

▶ 연산

모든 CPU에서 메모리에 저장된 명령어들을 순서대로 불러와서 실행

CPU가 이 동작을 수행하기 위해서는 꺼내고, 해독하고, 실행하는 5단계가 필요함

마지막 단계에서 명령어를 실행하고난 이후에는 다시 이 다섯 단계의 명령 주기가 반복되며 프로그램 카운터의 변화된 위치에서 실행될 명령어를 불러오게 됨

 

인출

첫 번째 단계인 인출(Fetch)은 프로그램의 메모리에서 명령어를 불러오는 역할을 함

프로그램 내부의 명령어의 위치(주소)

 

해독

두 번째 단계인 해독(Decode)은 인출 단계에서 가져온 명령어를 해독하여 명령어 내의 데이터 정보와 연산 정보를 추출한 뒤, 중앙처리 장치 내의 각 장치에 적절한 제어신호를 보내 연산, 처리에 대한 준비를 하는 단계

 

실행

실행(Execute)은 명령어에서 추출한 두 데이터와 연산 정보를 이용해 실제로 연산을 하는 단계

연산이 끝난 결과는 곧바로 다음 명령어에서 사용될지, 그렇지 않을지에 따라 메모리 단계로 갈지, 라이트백 단계로 갈지 결정

 

메모리

네 번째 단계인 메모리(Memory)는 연산결과가 다음 명령어에 바로 사용되지 않는다면 결과를 메모리에 저장하는 것을 말함

 

라이트백

연산의 마지막 단계인 라이트백(Write-Back)은 이전 명령어의 연산 결과가 다음 명령어의 입력 데이터로 사용될 경우, 계산 결과를 레지스터에 다시 쓰는 것을 말함

 

▶ 설계와 구현

기본적인 CPU의 구조

  • 프로세서 레지스터: 처리할 명령어를 저장하는 역할
  • 산술 논리연산장치(ALU): 비교, 판단, 연산을 담당
  • 제어부(control unit) : 명령어의 해석과 올바른 실행을 위하여 CPU를 내부에서 제어
  • 내부 버스 등

CPU의 내장회로는 CPU가 수행할 수 있는 기본적인 연산들의 집합인 '명령어 집합'으로 이루어져 있음(Ex. 두 개의 숫자에 대한 가감연산 혹은 비교연산 같은 것)

각각의 기본 연산은 옵코드(opcode)라고 불리는 특정한 비트의 조합으로 나타내짐

모든 명령어의 실제 수학적인 연산은 CPU 내부의 산술논리장치(ALU, arithmetic logic unit)이라는 조합논리회로에서 담당 CPU는 대부분 산술논리장치가 연산을 수행하기 위한 명령어를 메모리로부터 불러오고 연산의 결과값을 저장하는 일을 함

메모리로부터 데이터를 불러오는 연산의 명령어 집합의 종류와 동작은 확연한 차이를 보임

 

▶ 성능

중앙 처리 장치의 성능은 크게 클럭(Clock) 속도와 코어 수로 결정

 

클럭

CPU에서 클럭이라고 하는 수치는 중앙 처리 장치 내부에서 일정한 주파수를 가지는 신호로 이 신호에 동기화되어서 중앙 처리 장치의 모든 명령어가 동작되게 됨(EX. 클럭 수가 3.0GHz이면 초당 30억 번의 명령어 처리를 할 수 있음)

따라서 클럭 주파수가 빠를수록 제한된 시간에 더 많은 명령을 처리할 수 있기에 더 좋은 성능의 중앙 처리 장치라고 할 수 있음

 

코어

중앙 처리 장치안의 코어의 수로도 성능의 차이가 남

코어는 중앙 처리 장치의 역할을 하는 블록으로 예전에는 한 개의 칩 안에는 한 개의 코어의 구조를 가진 싱글코어가 다수였지만 최근에는 한 개의 칩 안에 여러 개의 코어를 가지는 멀티코어 구조를 채택하고 있음

  • 싱글 코어
    • 하나의 코어로 이루어진 CPU
    • 일반적으로 멀티 코어에 비해 경비가 싸고 프로그래밍도 간단하지만 보수 작업이나 고장의 경우에는 시스템이 완전히 멈추고 수많은 작업을 잘 분산시키지 못해 멀티 코어에 비해 처리 속도가 느리다는 단점이 있음
  • 멀티 코어
    • 한 개의 칩 안에 여러 개의 연산을 처리할 수 있는 장치를 병렬적으로 연결한 멀티 코어 시스템을 통하여 더 좋은 성능의 중앙 처리 장치를 얻을 수 있게 됨
    • 하지만 프로그램을 작성할 때 멀티코어를 활용할 수 있도록 코딩해야 함. 그렇지 않으면 멀티코어 CPU라도 멀티코어를 활용 못할 수 있음
    • 1 - 싱글코어, 2 - 듀얼코어, 3 - 트리플 코어, 4 - 쿼드 코어, 6 - 헥사 코어, 6 - 옥타 코어, 10 - 데카 코어, 12 - 도 데카 코어, 16 - 헥사 데시멀 코어
    • 현재는 코어의 속도를 높이기 힘든 한계에 왔기 때문에 속도보다는 병렬성을 높이는 것에 집중하여 CPU 다이에 64개의 코어를 넣은 AMD EPYC 7742 서버용 CPU도 출시되었음

 

[ GPU ]

그래픽 처리 장치 또는 GPU(graphics processing unit)는 컴퓨터 시스템에서 그래픽 연산을 빠르게 처리하여 결과값을 모니터에 출력하는 연산 장치. VPU(visual processing unit)라고도 함

 

1990년대 중반까지만해도 3D 그래픽은 주로 CPU로 구현되었으나 게임 등의 수요가 높아짐에 딸라 더 빠르게 실시간 그래픽 처리가 필요하여 1999년 세계 최초의 GPU가 판매됨

▶ CPU와 차이

CPU는 인간의 뇌와 같음 CPU의 연산을 담당하는 연산장치(ALU)는 구조가 매우 복잡하고 각종 제어 처리를 담당함

그래서 명령어가 입력된 순서로 출력하는 직렬 처리 방식 및 복잡한 계산에 대한 빠른 처리가 가능함

그에 비해 GPU는 연산 장치(ALU)의 구조가 단순하고 작은 제어/캐시 영역을 가짐 또한 다수의 코어로 이루어져 있음

 

이러한 구조적인 특징으로 인해 여러 개의 코어를 동시에 병렬로 작동시켜 부동 소수점 연산 등 특정 단순 계산을 빠르게 할 수 있음

그렇기에 다량의 병렬연산이 필요한 3D 렌더링이나, 딥러닝, 블록체인 등에 GPU가 사용되고 있으며 연산을 가속해주기에 '가속기'라는 명칭으로 불리기도 함

 

▶ 그래픽 가속기

그래픽 처리 장치는 부동소수점 명령을 계산하는 그래픽 카드에 부착된 처리 장치

그래픽 가속기는 그래픽 렌더링에 흔히 쓰이는 특별한 수학 명령을 포함하는 맞춤식 마이크로칩을 갖추고 있음

이러한 마이크로칩이 효율적으로 동작하면 그래픽 가속기 또한 효율적으로 처리됨

이들은 주로 3차원 게임이나 고사양 3차원 렌더링에 주로 쓰임

그래픽 처리 장치는 수많은 그래픽 기본 기하 명령을 담고 있어 호스트 CPU를 통해 화면에 표시하는 것보다 훨씬 더 빠르게 그리기를 처리할 수 있음

최신 그래픽 처리 장치들은 픽셀 셰이더, 버텍스 셰이더, 수퍼샘플링, 색 공간 변환 등의 복잡하고 다양한 명령을 지원하며 디지털 영상의 재생을 가속하는 기능도 포함하고 있음

이 명령의 많은 부분은 개발자가 직접 다룰 수 있도록 프로그래밍 가능한 인터페이스를 가짐

또한 그래픽 처리 장치는 대량의 행렬과 벡터를 다루는 데 뛰어난 성능을 발휘하므로 이러한 연산을 많이 사용하는 응용 프로그램들은 그래픽 처리와 관련 없는 작업에도 그래픽 처리 하드웨어를 이용하기도 함

 

[ RAM ]

컴퓨터에서 랜덤 액세스 메모리(영어: random-access memory, rapid access memory, 임의 접근 기억 장치)

램(RAM)은 데이터를 기록할 수 있는 임시 기억 장치로 주기억장치(기억장치의 기억 내용을 임의로 읽거나 변경할 수 있는 기억 소자 )

주로 사용자가 작성한 프로그램이나 데이터를 기억시키며 주기억 장치 등에 널리 사용되고 있음

CPU를 도와 '명령'을 처리하는 것을 도와줌. 컴퓨터가 켜져 있는 동안의 활동(연산)들을 기억하고 있다가 그것이 필요할때 빠른 속도로 연산을 불러오는 역할을 함. 즉 CPU가 명령을 처리하는데 필요한 도구들을 미리 옆에서 들고 있어 주는 것

RAM 성능이 좋을수록 한번에 많은 프로그램을 프리징 현상(특정 프로그램이나 프로세스가 컴퓨터 리소스를 지나치게 많이 잡아먹는 것, 순간적으로 FPS가 급격하게 떨어지며 컴퓨터 화면이 마치 얼어붙는 것처럼 멈추거나 멈춰가는 현상) 없이 사용할 수 있음

반도체 회로로 구성되어 있으며 휘발성 메모리(전원이 꺼지면 기억된 내용이 지워짐)

RAM은 어느 위치에 저장된 데이터든지 접근(읽기 및 쓰기)하는 데 동일한 시간이 걸리는 메모리이기에 ‘랜덤(random, 무작위)’이라는 명칭이 붙여졌음 반면 하드 디스크, 플로피 디스크 등의 자기 디스크나 자기 테이프는 저장된 위치에 따라 접근하는 데 걸리는 시간이 다름

 

▶ 원리

디렘의 원리

축전기에 전기를 흘려 주면 충전되며 방전되는 시간이 느림

따라서 주기적으로 충전되어 있는 상태(리프레싱)를 유지해 주면 기억이 저장됨


디램의 동작 원리

디램은 작은 축전기에 전하를 충전시키거나 방전시켜 디지털(1/0) 신호를 기억하는 반도체소자

축전기에 전하가 충전된 상태를 '1'이라고 하며, 방전된 상태를 '0'

하지만 충전된 전하는 시간이 지남에 따라 여러 경로를 통해 소실됨

그렇기에 디램 소자는 기억된 데이터를 유지하기 위해 주기적으로 전하를 재충전시켜야 함

이를 메모리 리프레시(memory refresh)라고 함

 

▶ 종류

휘발성 메모리: 전원 공급이 중단되면 기억된 내용이 지워짐

  • 디램(DRAM, Dynamic Random Access Memory)
    • 데이터를 유지하기 위해 일정 시간마다 재생(refresh)해 주어야 하는 램
  • 에스램(SRAM, Static Random Access Memory)
    • 전원이 공급되는 동안 데이터가 유지되는 램. 일정 시간마다 재생해 주지 않아도 됨

비휘발성 메모리: 전원 공급이 끊어져도 기억된 내용은 지워지지 않음

  • 플래시 메모리(Flash Memory)
    • 값이 싸고 집적도가 높지만 느림
  • 에프램(FRAM, Ferroelectric Random Access Memory)
    • 디램과 비슷하지만 데이터를 유지하기 때문에 재생해 주지 않아도 됨
  • 피램(PRAM, Phase-change Random Access Memory)
    • 상변태를 하는 물질을 이용하여 저항차이로 데이터를 저장함
    • 디램에 비하여 전력소모가 매우 작은 장점이 있음

차세대 비휘발성 메모리

  • 저항변화 메모리(ReRAM, Resistive Random Access Memory)
    • 전압을 가해줬을 때 절연체층의 필라멘트 형성으로 인한 저항변화로 데이터를 저장
  • 자기저항 메모리(MRAM, Magnetoresistive Random Access Memory)
    • 전압을 가해줬을 때 스핀의 방향에 따른 자기 저항 효과로 데이터를 저장
  • 유기저항 메모리(PoRAM, Polymer Random Access Memory)
    • 전도성 저항 유기소재를 이용하여 데이터를 저장한다. 집적도가 높고 빠른 동작속도를 가지지만 수분에 약함
  • 나노플로팅게이트메모리(NFGM, Nano Floating Gate Memory) 기존 플래시 메모리의 플로팅 게이트를 나노 크기의 dot으로 바꾼 메모리로, 플로팅 게이트에 저장되는 전자에 따른 정전용량의 변화로 데이터를 저장


최근 램 사양

최근 PC에 사용되는 메모리 램은 DDR2 SDRAM, DDR3 SDRAM같은 DDR SDRAM계열

일반적으로 램은 메모리 저장 방식뿐만 아니라 같은 방식일지라도 클럭수의 속도가 다르면 함께 사용할 수 없거나 불안정할 수 있으나 최근 마더보드의 지원 성능에 따라 상호호환이 가능한 경우도 있을 수 있거나 2개 이상을 함께 사용해야 하는 경우도 있음 그러나 여전히 마더보드 차원에서 지원하는 클럭수를 초과해서는 사용할 수 없음