CPU와 메모리

구현하다·2022년 10월 31일
0

CS

목록 보기
5/5
post-thumbnail

CPU (Central Processing Unit)

컴퓨터 내부 프로그램의 명령어를 해석하고 연산처리를 하여 외부에 출력하는 역할을 맡고 있는 CPU는 컴퓨터에 없어서는 안 될, 사람으로 치면 두뇌에 해당하는 장치로 중앙 처리 장치라고도 한다.
컴퓨터의 성능은 CPU에 의해 결정된다고 볼 수 있는데, 이때 중요하게 여기는 요소에는 코어, 스레드, 클럭이 있다.

Core

코어는 CPU의 핵심적인 역할을 수행해내는 중심부 역할을 한다. 이 코어에서 모든 연산을 처리한다. 즉 코어의 개수가 많을 수록 일을 수행하는 로봇이 많다고 생각 할 수 있다.
코어가 하나인 경우 단일코어(싱글코어)라고 하며, 그 이상의 경우 멀티 코어라는 개념으로 각각의 명칭은 아래 표를 통해 자세히 살펴보자.

참고 사이트 : https://crone.tistory.com/423

Thread

원래 한개의 코어는 1스레드로서 한가지 일 만 할 수 있었지만, 한개의 코어를 2쓰레드로 나눔으로써 두가지 작업을 동시에 할 수 있게 만든 기술이다. SMT 혹은 하이퍼스레딩 이라고도 한다.

SMT는 Simultaneous Multi Threading(동시 멀티스레딩)의 약자로, 말 그대로 여러 개의 스레드들이 동시에 동작하는 멀티스레딩이다.
학계나 업계에서는 이미 1960년대 IBM의 ACS-360 프로젝트 시절부터 이 용어로 사용되고 있었으나, 2000년대 이후 인텔의 ‘하이퍼스레딩’이라는 상표명이 발표되면서 일반 사용자들에게는 하이퍼스레딩으로 더 많이 알려져 있다.
참고 사이트 : https://computasha.github.io/CS-cpu-core-thread/

Clock

클럭이란 CPU의 속도를 나타내는 대표적인 단위로, 1초당 어느정도의 작업 처리가 가능한지를 나타내는 수치이다. 단위는 기가헤르츠(GHz)로 표기하며, 이 숫자가 클 수록 빠르다.



그렇다면 어떤 CPU를 고르면 될까?


이처럼 컴퓨터의 속도는 클럭과 코어, 스레드에 의해 결정된다.

멀티코어와 스레드의 개념이 나오기 전에는 클럭이 가장 중요하다고 여겨져왔지만, CPU를 일정 속도 이상까지 끌어 올리면 발열이 생기는 등의 물리적 문제가 발생하여, 멀티코어와 같은 개념이 나왔다.

하지만 무조건 코어가 높다고 해서 해당 자원을 모두 활용 할 수 있는 것은 아니다. 코어 환경을 잘 이용하려면 프로그램도 이를 고려하여 여러개의 코어를 사용 할 수 있도록 프로그래밍 되어야 한다. 따라서 어떤 용도로 사용하는지에 따라 그에 맞는 CPU를 결정하는 것이 중요하다.



메모리

컴퓨터로 어떤 일을 하기 위해 데이터를 임시 또는 영구적으로 보관할 수 있는 공간이 필요한데, 이런 공간을 기억장치 또는 메모리라고 한다. 기본적으로 주 기억 장치와 보조 기억 장치로 나뉜다.

주 기억 장치

내부 기억 장치라고도 하며 컴퓨터 내부에서 현재 CPU가 처리하고 있는 내용을 저장한다.
비교적 용량이 크고 처리 속도가 빠르다.

  • RAM (Random Access Memory)
    CPU의 명령에 의해 기억된 장소에 직접 접근하여 읽고 쓰기가 가능하다. 하지만 전원이 꺼지면 모든 내용이 지워지는 휘발성 메모리 이다.
  • ROM (Read Only Memory)
    한번 데이터를 기록하면 내용을 바꿀 수 없고, 읽을 수 만 있다. 전원이 꺼져도 기억된 데이터는 지워지지 않는 비휘발성 메모리 이다.

보조 기억 장치

외부 기억 장치라고도 하며 물리적으로 연결되어 있는 기억장치로, 주 기억 장치보다는 느리지만, 데이터를 영구적으로 보관할 수 있는 장치이다.

  • HDD(Hard Disk Dreiver), SSD(Solid State Driver), USB, CD, 플로피 디스크 등이 있다.

메모리의 속도와 용량

(빠름/용량이 큼) CPU > Cache Memory > 주기억장치 > 가상기억장치 > 보조기억장치 (느림/용량이 작음)
위와 같은 순서로 속도는 빠르고 용량은 커진다.
메모리의 속도와 용량은 반비례한다고 볼 수 있다.

profile
Frontend Developer 😊

0개의 댓글