1.1컴퓨터 하드웨어
컴퓨터 하드웨어의 구성 요소와 기능에 관하여
TL;DR
1. 컴퓨터의 논리와 구조
지난 100년간, 컴퓨터의 각 부분이 어떻게 생겼으며 어떻게 만들어졌는지는 크게 변화했지만, 컴퓨터가 어떻게 구성되었고 어떻게 일하며 어떻게 연결되는지는 크게 변하지 않았다. 즉, 물리적 구조는 바뀌었지만 논리적 구조는 그대로이다.
완성된 장치가 범용 컴퓨터 기계가 되려면 연산, 기억, 제어, 운영자와의 연결을 담당하는 주요 기관을 포함해야 한다. - 존 폰 노이만, 1946 -
위의 원리는 오늘날의 컴퓨터에도 적용되어 아래의 폰 노이만 아키텍쳐를 따라 컴퓨터가 구성된다.

초창기 컴퓨터는 스위치를 설치하고 전선을 연결하여 데이터를 전송하고 신호를 처리하는 방식으로 프로그래밍을 하였다. 하지만 이 방식은 컴퓨터에 다른 일을 시키려면 스위치를 조작하고 전선을 다른 위치로 옮겨 꽂아야해서 비효율적이었다. 폰 노이만은 데이터를 저장하는 공간인 메모리에 프로그램 명령어도 함께 저장하는 방식을 제안했는데, 이러면 컴퓨터에 다른 작업을 시킬 때 프로그램만 교체하면 되어 효율적이다.
다만, 명령어에 접근할 때나 데이터에 접근할 때나 모두 메모리라는 공동 공간에 있는 값을 순차적으로 읽고 쓰는 구조이기 때문에 메모리에 병목 현상이 생길 수 밖에 없고, 이러한 한계를 극복하기 위해 최근에는 하버드 아키텍처나 뉴로모픽 컴퓨팅 등의 시도가 등장하였다.
2. 프로세서 속도와 심장 박동수
프로세서(processor)는 컴퓨터의 두뇌로 종종 비유되며, CPU(Central Processing Unit) 라고도 불린다. 프로세서는 아래의 작업들을 수행한다.
- 산술 연산
- 데이터를 이리저리 옮김
- 다른 구성 요소의 작업을 제어
프로세서의 속도는 1초에 수행할 수 있는 연산, 또는 명령어의 개수를 측정하여 표현된다. 예를 들어, 초당 1번 연산 시의 속도는 1Hz인데, 오늘날 컴퓨터는 일반적으로 수십억 Hz(GHz) 단위로 작동한다. 이 속도는 CPU 클럭(Clock Pulse) 속도라고도 부른다.
주기억장치(primary memory) 는 프로세서가 현재 작업중인 데이터를 저장하고, 그 프로세서가 데이터로 무엇을 해야하는지 알려주는 명령어도 저장한다. 이 방식 덕에, 프로세서에게 다른 작업을 시키려면 초창기 컴퓨터처럼 전선을 옮겨 꽂거나 할 필요가 없이 명령어만 바꿔도 된다. 즉, 손쉽게 다른 프로그램을 실행할 수 있게 된다.
- 컴퓨터가 실행되는 동안 정보를 저장할 장소 제공
- 워드, 포토샵, 브라우저 등 현재 활성화된 프로그램의 명령어 및 편집 중인 문서, 사진, 재생중인 음악 등도 저장
- 또, 애플리케이션 여러개를 동시에 실행할 수 있도록 배후에서 작동하는 운영체제의 명령어도 저장
주기억장치는 RAM(Random Access Memory)라고도 부르는데, 왜냐하면 프로세서가 정보에 접근할 때 메모리의 어느 위치에 저장되어있든 같은 속도로 접근할 수 있기 때문이다.
일반적으로 메모리 용량이 클수록 컴퓨팅 속도가 더 빠르다. 왜냐하면, 충분한 메모리 용량이 있을 시 프로그램을 실행할 때 필요한 데이터와 명령어가 모두 메모리에 상주하게 되어 CPU가 디스크(아래에 나올, 접근 속도가 다소 느린 보조기억장치)보다 빠르게 데이터에 접근해 읽고 쓸 수 있기 때문이다.
또, 메모리 용량이 부족하면 시스템은 일부 데이터를 임시로 보조기억장치로 이동(디스크 스와핑)하게 되는데, 이 과정은 속도가 느리기 때문에 충분한 메모리 용량이 있다면 이 과정을 거치지 않아도 된다.
한편, 주기억장치는 정보 저장 용량이 한정적이며 전원이 꺼지면 내용이 사라진다는 점에서 이후 살펴볼 보조기억장치의 도움을 필요로 한다.

3. HDD와 SDD의 차이
보조기억장치(Secondary Storage)는 전원이 꺼져도 정보를 유지한다.
보조기억장치에는 HDD(Hard Disk Drive)와 SSD(Solid State Drive) 두 종류가 있다.
- HDD : 자기 디스크. 회전하는 금속 표면에 있는 자성 물질의 미세한 영역이 자성을 띠는 방향을 설정하여 정보를 저장한다.
- SSD : Flash Memory를 사용, 전원이 꺼져 있어도 개별 소자에 전하(charge)를 유지하는 회로에 정보가 전하 형태로 저장된다. HDD보다 더 빠르고 가볍고 안정적이며, 떨어뜨려도 고장이 덜 나고 전력을 더 적게 사용한다는 장점이 있다. 가격이 좀 더 비싸지만 이점이 커서 노트북에서는 SSD가 자기 디스크를 거의 대체했다.

컴퓨터 하드웨어에는 앞서 살펴본 장치들 외에도 입출력 장치가 있다.
- 입력 : 마우스, 키보드, 터치스크린, 마이크, 카메라…
- 출력 : 디스플레이, 프린터, 스피커 등
4. 가로세로 1cm 프로세서 칩

컴퓨터의 전자 회로는 데이터를 처리하고 저장하며 외부와 상호작용하는 데 필요한 전기적 신호를 생성, 제어, 증폭하는 역할을 한다.
전자 회로를 구성하기 위해선 프로세서와 메모리 같은 부품을 기판에 장착하고, 기판 반대쪽에 전선(bus)을 인쇄해 부품들을 연결한다. 전자 회로는 아래의 몇 가지 기본 소자가 매우 많이 모여 만들어진다.
- 트랜지스터(transistor)
- 스위치이다. 즉, 전압의 제어를 받아 전류를 켜거나 끄는 역할을 수행한다.
- 전류 흐름 제어를 통해 AND, OR, NOT등 아래의 논리 게이트를 구성한다.
- 논리 게이트(logic gate)
- 한 개나 두 개의 입력 값을 바탕으로 하나의 출력값을 계산한다.
- 전압이나 전류 같은 입력 신호를 이용하여 출력 신호를 제어한다. 출력 신호 또한 전압이나 전류이다.
- 논리 게이트들이 필요한 만큼 적절한 방식으로 연결되어 다양한 계산이 가능해진다.
- 집적 회로(IC, Integrated Circuit)
- 칩(Chip, Microchip) 이라고도 한다.
- 논리 게이트는 이 집적 회로에서 만들어진다.
- 모든 소자와 배선이 단일 평면(얇은 실리콘 판) 위에 들어가 있다.
- 개별 부품/재래식 전선이 없는 회로를 만들기 위해 제조된 것으로 개별 부품으로 만들어진 회로보다 훨씬 작고 견고하다.

즉, 컴퓨터의 전자 회로는 기본 소자인 트랜지스터부터 시작해 논리 게이트, 집적 회로, 그리고 마이크로프로세서에 이르기까지 다양한 구성 요소들이 유기적으로 결합되어 정보 처리를 할 수 있도록 만든 부품이다.
마이크로프로세서(MPU)란, CPU 기능을 하나의 집적회로 칩에 구현한 것을 말한다. 과거에는 CPU의 각 기능이 여러 개의 개별 IC 칩으로 분리되어 구현되기도 했지만, 오늘날의 마이크로프로세서는 기술의 발전 덕에 대부분의 기능을 단일 칩에 집적하여 제작된다. 마이크로프로세서는 CPU뿐만 아니라 GPU(Graphics Processing Unit), DSP(Digital Signal Processor)도 포함한다. 여기에 캐시 메모리, 주기억장치, 외부기기 입출력 제어 장치까지 포함되면 마이크로컨트롤러(Microcontroller)로 분류한다.
마이크로컨트롤러는 특정 제어나 단순 작업을 수행하는 임베디드 시스템에서 주로 사용되는데, 키오스크, 내비게이션, 세탁기, 냉장고 등은 필요없는 기능을 최대한 제거하고 필수적인 기능만 남겨 안정적인 동작을 보장해야하기 때문에 프로세서와 메모리, 입출력 버스 등 컴퓨팅 요소들이 다 있지만 비교적 단순하고 저렴한 장치이다.
5. 50년 넘게 유지된 무어의 법칙
무어의 법칙이란, 일정한 크기의 집적회로에 들어갈 수 있는 트랜지스터의 수가 2년(또는 18개월)마다 2배가 된다는 법칙이다.
이 말은 2년마다 컴퓨팅 성능이 2배로 증가한다는 의미인데, 꽤 오래 지속 되어왔지만 이제는 현실적으로 지켜지지 않는다. 무어의 법칙은 한동안 반도체 산업에서 목표를 설정하기 위한 가이드라인이 되었으나, 이제는 칩이 너무 빨라져 열을 너무 많이 발생시켜 지켜질 수 없게 되었다.
프로세서는 칩 하나에 코어 여럿을 배치함으로(듀얼 코어 등) 더 많은 트랜지스터를 활용한다. 즉, 개별 코어의 실행속도가 빨라지기보단 장착 가능한 코어의 개수가 늘면서 성능이 향상되는 것이다.
6. 요약
20세기 컴퓨터과학의 위대한 통찰은, 오늘날의 디지털 컴퓨터, PC 등의 논리적 속성 또는 기능적 속성은 모두 같다는 것이다.
👨💻 개인탐구
GPU(Graphics Proceessing Unit)
GPU(그래픽 처리장치) 란, 주로 영상과 이미지를 빠르게 처리하기 위해 설계된 전용 프로세서이다.

GPU는 수백에서 수천 개의 작은 연산 코어를 내장하고 있어, 동시에 많은 데이터를 병렬로 처리할 수 있다. 이에 이미지 렌더링, 3D 그래픽 연산, 그리고 인공지능이나 과학 계산 등 대규모 병렬 처리가 필요한 작업에 최적화되어 있다.
CPU와 비교하면, CPU가 복잡한 제어 흐름과 직렬 처리를 담당한다면, GPU는 반복적이고 병렬적인 계산을 빠르게 처리하는 역할을 하여 전체 시스템의 성능 향상에 기여한다.
DSP(Digital Signal Processor)
실시간으로 디지털 신호들을 처리하도록 설계된 특수 목적의 프로세서로, 오디오, 영상, 통신, 레이더 등의 분야에서 입력된 아날로그 신호를 디지털화한 후, 필터링, 변환, 압축 등의 복잡한 수학 연산을 빠르게 수행할 수 있도록 설계되었다. DSP는 특히 곱셉-누산 연산에 최적화되어 있어, 디지털 필터나 FFT(고속 푸리에 변환) 같은 알고리즘에서 반복적으로 필요한 연산을 신속하게 처리할 수 있다.
반도체(Semiconductor)
도체(에너지를 전해주는 물질)와 절연체(전기 부도체, 즉 전기가 통하지 않는 물질) 사이의 물질로, 전류의 흐름을 세밀하게 제어할 수 있는 특징이 있다.

주로 실리콘이나 게르마늄 같은 원소로 이루어지며, 온도 변화나 불순물(도핑)의 첨가에 따라 전기 전도성이 크게 달라진다. 이 특징을 이용해, 미세한 불순물을 추가하는 도핑 과정을 통해 반도체 내 전자나 정공의 농도를 조절해 원하는 전기적 특성을 구현하여 다양한 반도체 소자를 만든다.
예를 들면 반도체 소자의 한 종류인 다이오드(Diode) 는 전류가 한 방향으로만 흐르도록 제어할 수 있어, 빛이 들어올 때 전류가 흐르도록 하는 광다이오드 등의 용도로 쓰인다.
또다른 반도체 소자의 한 종류인 트랜지스터는 Transfer와 Resistor의 합성어로, 전기의 흐름을 제어하여 정보를 처리한다. 트랜지스터에는 보통 발이 3개 달려있는데, 가운데의 발이 스위치 역할을 해서 이 곳에 전기신호를 보내 양 옆에 달린 발이 연결되기도, 끊기기도 한다. IC칩에 쓰이는 트랜지스터는 실리콘 기판 위에 절연층을 만들고, 빛을 이용해 원하는 패턴을 만든 후(photolithography) 이온을 주입(doping)해서 p형 / n형 영역을 만든다. 이후 게이트 전극을 형성하기 위해 폴리실리콘이나 금속을 증착하고, 다시 포토리소그래피와 식각 공정을 거쳐 정밀하게 패턴화한다. 이후 소스와 드레인을 연결하는 금속 배선을 추가한다.
메모리 반도체는 데이터를 저장하는 기능을 수행하는 반도체로, DRAM, SRAM, 플래시 메모리 등이 있다.
- DRAM(Dynamic Random Access Memory) : 주로 컴퓨터의 주기억장치(RAM)으로 사용되며, 상대적으로 느리지만 높은 집적도와 낮은 비용이 장점이다.
- SRAM(Static Random Access Memory) : CPU 캐시 메모리 등 빠른 응답 속도가 요구되는 곳에 사용되며, 속도가 빠르지만 낮은 집적도와 높은 제조 비용이 단점이다.
- 플래시 메모리 : 데이터 저장을 위해 쓰이는 메모리로, USB 드라이브, SSD, 메모리 카드 등 장기 데이터 저장 용도로 사용된다. 읽기 속도는 빠르지만, 쓰기 속도가 비교적 느리며 대용량 저장이 가능하고 비용이 효율적이다.
비메모리 반도체는 데이터 저장이 아닌, 연산, 제어, 신호 처리, 전력 관리 등 다양한 역할을 수행하는 반도체 소자이다. 마이크로프로세서, 로직 칩, 아날로그 IC 등이 여기에 해당된다.
ROM과 펌웨어
ROM(Read-Only Memory)는 읽기 전용 메모리로, 데이터를 영구적으로 저장하도록 설계된 비휘발성 메모리이다. 최근에는 플래시 메모리 형태로 많이 사용된다. (반)영구적으로 저장해야 할만큼 중요한 데이터가 뭐가 있는지 궁금할 수 있는데, 바로 시스템의 부트 코드나 펌웨어와 같이 기기의 기본 동작에 필요한 중요 데이터가 있다.
펌웨어(Firmware)는 하드웨어의 기본 동작을 제어하는 소프트웨어이다. 기기 부팅, 하드웨어 초기화, 기본 기능 제어 등 하드웨어 동작을 직접 제어하는데 사용되기에 지워지면 안된다. 플래시메모리에 저장되어 제조사에 의해 업데이트될 수 있다.
SoC
SoC(System On a Chip)은 하나의 칩 위에 컴퓨터의 여러 핵심 구성 요소를 통합한 집적 회로이다. 즉, 개별 부품들이 여러 개의 칩에 나뉘어 있던 기존의 시스템과 달리 CPU, GPU, 메모리, 입출력 장치 등 다양한 기능이 단일 칩에 집적 된 것이다.
다양한 기능이 하나의 칩에 집적되어 있어, 시스템 크기를 줄이고 전력 소비를 최적화할 수 있다. 이에 휴대성과 저전력이 중요한 스마트폰, 태블릿, 웨어러블 기기, 사물인터넷(IoT) 장치 등에 주로 사용된다. Qualcomm Snapdragon, Apple A 시리즈, M 시리즈, Samsung Exynos 등이 대표적인 SoC이다.

앞서 언급한 마이크로컨트롤러와의 차이는, 마이크로컨트롤러가 주로 특정 제어나 단순 작업을 수행하는 임베디드 시스템에서 주로 사용된다면 SoC는 훨씬 다양한 기능을 포함하여 스마트폰, 태블릿, IoT 기기 등에서 전반적인 기능을 담당할 수 있다. 즉, 마이크로컨트롤러는 SoC의 한 형태로 볼 수 있다.