CS

[CS] 하드웨어 - 컴퓨터구조

kinggoddino 2024. 7. 26.

CS (Computer Science, 컴퓨터 과학)

컴퓨터 구조 - 하드웨어 기본

내용

더보기

1. Mainboard (메인보드)

2. CPU(Central Processing Unit, 중앙처리장치)

2-1. CPU 주요 구성 요소

          -  ALU(Arithmetic Logic Unit, 산술논리장치)

          -  CU(Control Unit, 제어장치)

          -  Register(레지스터)

          -  Cache Memory(캐시메모리)

2-2. CPU 동작

          -  컴퓨터 언어 변환

          -  명령어 수행 단계

2-3. CPU 성능

          -  Clock(클럭)

          -  Core(코어)

3. GPU(Graphic Processing Unit, 그래픽처리장치)

3-1. GPU 특징

          -  그래픽 렌더링

          -  병렬처리

          -  AI 연산작업

          -  암호화 화폐

4. 주기억장치

4-1. RAM 주요 유형

          -  DRAM(동적메모리)

          -  SRAM(정적메모리)

5. 보조기억장치

5-1. 보조기억장치 주요 유형

          -  HDD(Hard Disk Drive)

          -  SSD(Solid State Drive)

          -  가상메모리(Virtual Memory)

6. 입력장치

7. 출력장치

 

▶ Mainboard (메인보드)

  • 컴퓨터 시스템의 중심. 모든 주요 하드웨가 연결되는 기판이다
  • CPU, GPU, 메모리 등이 메인보드를 통해 서로 데이터를 주고받음.
  • 전력 공급, 데이터 통신, 제어 신호 등을 관리함.
  • 제작사마다 슬롯(장치를 삽입하는 자리) 위치나 크기 색상은 다르다구 한다.

메인보드 기판

 

 

▶ CPU (Central Processing Unit, 중앙처리장치)

0. CPU

  • 컴퓨터의 두뇌! 모든 명령을 해석하고 실행함.
  • 하나의 CPU 칩에는 여러 개의 고성능 코어가 있음(다중코어). 각 코어는 독립적으로 작업을 수행할 수 있다. 박사님 몇명이서 일하는 거라구 생각하면 됨
  • CPU는 작업을 수행하는 동안 많은 전력을 소모하고 상당한 열을 발생시킴. 그래서 쿨러가 필수다.

CPU 칩

 

CPU 칩에 적혀있는 저 i9 가 코어 개수인가 보구나! 했는데 아니라고 함.

i9는 그냥 Intel의 CPU 제품 라인업에서 고성능 프로세서를 나타내는 브랜드 이름이고 성능에 따라 i3, i5, i7, i9 등으로 분류된다고 한다.

여기서 숫자가 홀수인 이유는 아무 이유가 없다.

일반적으로 숫자가 클수록 성능이 높고 기능이 많다고 한다.

확인해보니 내 컴퓨터는 i5. 별로 좋은건 아닌가봐

CPU 위치

메인보드에서 CPU 장착 위치는 이렇다구 함.

 

 

1. CPU의 주요 구성 요소

 

৹  ALU (Arithmetic Logic Unit, 산술 논리 장치)

 

- 사람의 우뇌에 해당함! 연산력 담당.

 

- 산술 연산 수행 : 덧셈, 뺄셈, 곱셈, 나눗셈 등

- 논리 연산 수행 : AND, OR, NOT, XOR 등

- 데이터를 계산/비교하여 특정 조건을 만족하는지 확인하는 등의 작업을 처리한다.

 

 

৹  CU (Control Unit, 제어 장치)

 

- 사람의 좌뇌에 해당함! 구성력 담당.

 

- 주기억 장치에 저장되어 있는 명령어를 순서대로 호출하여 해독한다.

- 제어신호를 발생시켜 컴퓨터의 각 장치를 동작하게 한다

- 필요한 데이터를 레지스터에서 가져와 ALU로 보내는 등의 작업을 수행한다.

 

 

৹  Register (레지스터)

 

- 사람의 오른손!  ALU를 도와줌 = 처리할 명령어를 저장함.

 

- CPU 내부의 고속 데이터 저장 공간.(빠른속도로 접근 가능)

- 연산 중간 결과, 명령어, 메모리 주소 등을 일시적으로 저장함.

- 보통 32비트나 64비트 크기이고 다양한 종류가 있다.

 

- 메모리 주소 레지스터(MAR, Memory Address Register)

   : 주기억장치에서 데이터를 읽거나 쓸 때 사용할 메모리 주소를 저장함.

 

- 프로그램 카운터 (PC, Program Counter)

   : 다음에 실행할 명령어의 메모리 주소를 저장.

 

- 명령어 레지스터 (IR, Instruction Register)

   : 현재 실행 중인 명령어를 저장.

 

- 메모리 버퍼 레지스터 (MBR, Memory Buffer Register)

   : 주기억장치에서 읽어온 데이터나 쓸 데이터를 임시로 저장

 

- 상태 레지스터(SR: Status Register)

   : 플레그 레지스터라고도 함. 연산 결과에 따른 상태 정보를 저장

     (ex 연산 결과가 0인지, 음수인지, 오버플로우가 발생했는지 등)

 

- 누산기 (AC, Accumulator)

   : 연산 결과를 임시로 저장함. 연산 과정에서 중간 값 보관

 

- 이게 끝이 아니라 이외에도 다양한 레지스터가 존재함

 

 

৹  Cache Memory (캐시메모리)

 

- 사람의 왼손! 처리속도를 높여줌.

 

- 여기서 말하는 캐시메모리는 L1(Level 1 Cache)를 말한다.

   L2 랑 L3 캐시메모리는 아래 주기억장치에서 나옴.

 

- 위치 : CPU 코어 내부에 직접 통합되어 있음.

- 크기 : L1, L2, L3 중에 젤 작음. 용량은 보통 수십 킬로바이트(KB) 정도.

- 속도 : 젤 빠름. 보통 CPU Clock(클럭) 속도와 동일하게 동작함. 클럭은 아래 나온다.

- 용도 : 가장 자주 사용하는 데이터를 저장해 빠르게 접근할 수 있게 함.

 

- 캐시 히트(Cache Hit)

   : CPU가 요청한 데이터가 캐시에 있는 경우.

     L1 → L2 L3 순으로 데이터를 뒤져서 캐시에서 바로 읽기 가능.

 

- 캐시 미스(Cache Miss)

   : CPU가 요청한 데이터가 캐시에 없는 경우.

     L3 까지 뒤져도 없으면 CPU는 데이터를 메인메모리에서 찾아 가져와야 된다.

 

 

2. CPU의 동작

 

  컴퓨터의 언어 변환

 

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

 

- 기계어

컴퓨터는 모든 데이터를 기계어 (0 과 1) 로 저장한다.

전류가 안흐를 때 0, 전류가 흐를 때 1

 

- 어셈블리어

기계어를 모스부호처럼 하드웨어적으로 CPU가 알아볼 수 있게 변환한 것

 

- 프로그래밍 언어

어셈블리어를 사람이 알아볼 수 있게 소프트웨어적으로 변환한것

 

 

৹  CPU의 명령어 수행 단계

 

인출 → 해독 → 실행 → 반영

 

- 명령어 인출

CU(control unit)가 메모리에서 이번에 수행할 명령어 정보를 갖고옴.

PC(Program Counter)가 다음 명령어의 주소를 가리키고, 읽어온 명령어를 IR(Instruction Register)에 저장함.

 

- 명령어 해독

인출된 명령어를 이해함. 명령어가 어떤 일을 해야하는 지 파악함.

Opcode(오피코드, Operation code)를 분석해 어떤 작업을 해야하는지 결정하고,

Opcode의 성격에 맞게 레지스터를 설정하고 준비함.

ex) 덧셈을 할지, 데이터 이동을 할지, 어떤 레지스터가 필요할 지 등

 

- 명령어 실행

해독된 명령어의 작업을 수행함.

메모리에서 데이터를 읽거나 쓰는 경우도 이 단계에서 이루어짐.

ex) 산술/논리 연산 요구였다면 ALU(Arithmetic Logic Unit)가 주체가 되어 수행함.

 

- 명령어 반영

실행 결과를 저장하고 다음 명령어를 준비함.

연산 결과를 AC( Accumulator)나 메모리 등 적절한 위치에 저장하고,

PC(Program Counter)를 업데이트 해서 다음 명령어를 가리키게 함.

명령어 수행의 한 사이클이 완료!

 


3. CPU의 성능

 

৹  Clock (클럭)

 

- CPU의 작동 속도를 조절하는 주기적인 전기 신호.

 

- 클럭 주파수

CPU가 1초당 처리할 수 있는 사이클 수. 단위는 Hz(헤르츠)

클럭 주파수가 빠를 수록 제한된 시간 내에 더 많은 명령을 처리할 수 있다.

클럭 속도나 데이터 전송 속도에서는 10진법 단위가 더 일반적이라고 한다.

그래서 1GHz는 1000의 3제곱, 즉 10억을 의미함.

ex) 4.5GHz 클럭 CPU는 1초당 45억 번의 명령어를 처리할 수 있음.

 

- 오버클럭(Overclocking)

CPU나 GPU 같은 프로세서의 작동 속도를 제조사에서 지정한 기본 속도보다 더 높게 설정하는 기술이다. 하드웨어의 성능을 향상시켜 더 빠른 작업 처리 속도를 얻을 수 있다. BIOS나 소프트웨어를 통해 클럭을 설정할 수 있음. but  전력 소비와 열 발생이 증가하기 때문에 부품 수명이 줄어들고 안정성에 문제가 생길 수 있다.

확인해보니까 내 컴퓨터는 기본 2.90GHz고 최대 4.30GHz 까지 높일 수 있는 것 같다. 생각보다 많이 높일 수 있네.


- 석영의 압전효과

석영은 결정에 전기장을 가하면 일정한 주파수의 진동을 발생시키는 압전 효과 특성을 갖고 있다.석영 결정의 크기와 형태에 따라 다르긴 하지만발생하는 진동은 매우 정밀하고 일정한 주파수를 가진다. 이 주파수를 클럭 발생기(clock generator)에 사용하여 클럭 신호를 생성하고, CPU 및 다른 부품들이 동기화된 속도로 동작할 수 있다.

오.. 안정성이랑 직결되는 부분인데 돌을 믿는거 보면 진동주파수가 엄청 정확한가보다.

 

 

৹  Core (코어)

 

- CPU 안에서 명령어를 처리하는 단위. (작업 처리 유닛)

 

- 싱글 코어

하나의 코어만을 가진 CPU. 한번에 하나의 작업에밖에 집중 못함 like me..

ex) 음악재생 하다가 웹 브라우저 열려고 하면 두 작업을 번갈아 처리하느라 둘 다 지연됨.

 

- 멀티 코어

현대 CPU는 여러개의 코어를 갖고 있음. 이를 멀티코어 프로세서라고 함.

여러개의 코어가 동시에 작동함으로써 많은 작업을 병렬로 처리할 수 있음.

ex) 듀얼코어(2), 쿼드코어(4), 헥사코어(6) 등

 

 

 

▶ GPU (Graphic Processing Unit, 그래픽처리장치)

  • GPU는 그래픽 렌더링을 담당하는 프로세서.
  • 원래 2D, 3D 그래픽을 빠르게 처리하기 위해 개발되었으나,
  • 최근에는 인공지능(AI)과 과학적 계산 등 다양한 분야에서 사용되는 중.

GPU 엔비디아꺼!
GPU 위치

메인보드에서 GPU 장착 위치는 이렇다구 함.

 

GPU 특징

 

৹  그래픽 렌더링

 

- 그래픽 렌더링 : 컴퓨터에서 2D 또는 3D 그래픽을 생성하는 과정.

- GPU의 본래 역할은 화면에 표시되는 이미지를 생성하는 거다. '그래픽' 카드니까.

- GPU 성능이 좋을수록 게임, 영화, 가상 현실(VR) 등에서 고해상도 그래픽과 부드러운 프레임을 제공함.

- 비디오를 재생하거나 실시간 스트리밍 등의 인코딩 및 디코딩 작업에서 빠른 처리 속도 제공.

 

- 인코딩(Encoding) : 원본 데이터를 압축해서 저장/전송이 쉽게 만드는 거

- 디코딩(Decoding) : 그 데이터를 다시 사용 가능한 원래 형태로 복원하는거

 

 

৹  병렬처리

 

- GPU는 대량의 작업을 처리하기 위해 병렬처리가 되어있음.

- 수천 개의 작은 코어가 있어서, 각각의 코어가 작은 연산을 동시에 할 수 있다.

- CPU가 박사 몇명이었다면 GPU는 나같은 학사나부랭이 수천명

- 연산 자체는 쉬운데, 연산해야 하는 양이 많을 때 GPU를 쓴다.

 

৹  AI 연산작업

 

- AI는 학습해야 하는 양은 많은데 연산 자체는 어렵지 않다. 그래서 GPU 씀.

- 이미지 인식이나 자연어 처리과 같은 작업에서 수많은 데이터를 빠르게 분석하고 학습하는 데 병렬처리가 유용함.

- CPU로는 오래걸리는 연산을 GPU가 빨리 처리할 수 있어서 딥러닝 모델을 학습시키는 데 주로 사용함.

 

৹  암호화 화폐

 

- 암호화 화폐(ex 비트코인,이더리움 등)의 채굴 과정에서도 GPU가 사용됨.

- 블록체인 네트워크의 안정성을 유지하기 위해 수학적 문제를 풀어야 하는데, 이 과정이 바로 채굴이고 매우 많은 연산을 필요로 함.

- GPU는 이 문제를 병렬로 빠르게 풀 수 있어서 채굴 작업에 유리함.

- 많은 사람들이 GPU를 사용해 암호화 화폐를 대신 채굴해주는 대신 보상을 받는 구조라고 함.

 

 

 

▶ 주기억장치 (Primary Storage)

  • 주로 RAM(Random Access Memory)를 말한다.
  • 현재 실행중인 데이터를 로드해 빠르게 접근할 수 있도록하는 장치.
  • 휘발성 메모리다. 전원 꺼지면 여기 저장됐던 데이터가 다 사라진다.
  • 선생님이 우리는 주기억장치가 아니라 보조기억장치가 되어야한다고 하셨다.
  • 주기억장치 용량이 클수록 더 많은 프로그램과 데이터를 동시에 실행할 수 있고, 다중작업(멀티태스킹) 능력도 향상됨.

RAM
RAM 위치
RAM 위치

메인보드에서 RAM 장착 위치는 이렇다구 함.

 

 

주기억장치 주요 유형

৹  DRAM 동적 메모리 (Dynamic Random Access Memory)

 

- 메인메모리

얘가 메인메모리다. 주기억장치라 하면 보통 DRAM을 말함.

현재 처리중인 데이터나 명령을 일시적으로 저장하는 메모리. 모든 프로그램은 실행되기 위해 메모리의 일부를 사용한다.

 

- 동작 원리

데이터를 저장하는 각 비트에 대해 transistor 1개 + capacitor 1개 사용함(각 셀은 한 비트의 데이터를 저장). capacitor는 전하를 저장하고, 이 전하의 유무가 비트 값(0 or 1)을 나타냄.

 

- 특징

capacitor는 시간이 지나면 자연스럽게 전하를 잃는다. 따라서 전원 공급 중에도 주기적으로 새로고침(refresh)을 해야 데이터를 유지할 수 있다. 이 새로고침 작업은 메모리 컨트롤러가 주기적으로 실행해줌.

 

- 용량 및 비용

DRAM은 상대적으로 단순한 구조 덕분에 높은 집적도(많은 데이터를 적은 공간에 저장)가 가능하다. 따라서 대용량 메모리에 적합하고 가격이 저렴함!

 

- 속도

보조기억장치(HDD)보다는 접근속도가 빠르고 SRAM 보다는 느리다.

 

 

৹  SRAM 정적 메모리 (Static Random Access Memory)

 

- 캐시메모리(Cache Memory)

위에 CPU 구성요소에 나왔던 캐시메모리는 L1(Level1) 이고,

여기서 말하는건 CPU와 별개로 구성된 L2, L3 캐시메모리다.

CPU와 DRAM 사이에 위치해서 둘 사이의 속도차이를 극복해준다.

어떻게 극복하냐면 DRAM에 있는 데이터를 L2, L3 캐시에 불러와 냅두고, CPU가 필요한 데이터를 DRAM이 아닌 L2, L3에서 먼저 찾도록 해주는 것.

 

- 동작 원리

각 비트를 저장하는 데 플립플롭(flip-flop)이라는 회로를 사용하고 이 회로는 여러개의 transistor로 구성됨. 플립플롭은 전원이 공급되는 한 비트가 안정적으로 유지된다.

 

- 특징

DRAM과 달리 전원이 공급되는 동안은 기록된 내용이 유지되기 때문에 새로고침이 필요없다.

 

- 용량 및 비용

플립플롭 회로는 더 많은 transistor를 필요로 한다. 따라서 SRAM은 동일한 공간에 DRAM에 비해 적은 데이터를 저장할 수 있고 비싸다.

 

- 속도

SRAM은 접근속도가 빨라서 주로 캐시메모리나 레지스터로 사용된다.

전원이 꺼지면 지워지지만 제일 빠르게 조회할 수 있는 고속의 임시 저장공간임

 

 

 

▶ 보조기억장치 (Secondary Storage)

  • 데이터를 영구적으로 저장하는 장치. 비휘발성. 전원이 꺼져도 데이터 살아있음!
  • 대용량 데이터 저장할 수 있고, RAM보다 속도가 느리고 저렴하다.
  • 운영체제 및 일반 프로그램들, 지워지면 안되는 데이터들이 저장되어 있음.

HDD / SSD
외장SSD / 내장 SSD

 

보조기억장치 주요 유형

৹  HDD (Hard Disk Drive, 하드디스크)

 

- 구조

위 그림에서 원판으로 보이는게 자기 디스크(플래터)다. 여기에 물리적으로 접근하여 데이터를 적재한다. 디스크가 회전하고 자기헤드가 데이터를 읽고 씀. 컴퓨터가 위이이에엥ㅇ 하는 소리가 이 동그라미가 돌아가는 소리다. 컴퓨터를 킬 때 운영체제 읽거나 데이터 읽을 때 디스크가 빠르게 회전하며 소리난다.

 

- 조각화(Fragmentation)

데이터가 디스크에 저장될 때 연속된 공간이 아닌 여러 위치에 나누어 저장되는 현상이다. 헤드가 플래터를 읽을 때 플래터 중앙에 있을 수록 찾기가 쉽고, 테두리쪽에 있을 수록 더 멀리 이동해야 하니까 접근 시간이 길다. 근데 데이터가 흩어져 있으면 헤드가 여러 위치를 이동해야해서 속도가 저하된다.

이 때 '디스크 조각 모음' 으로 정보를 한곳으로 모아주면 컴퓨터가 건강해진다. 파일 접근 시 헤드의 이동을 최소화 할 수 있기 때문이다.

 

- 물리적 작동

HDD는 우주에서는 못쓴다. 플래터는 회전할 때 공기 흐름에 의해 헤드가 플래터 표면 위를 떠다니는 매우 작은 간극(머리카락 두께의 몇 천분의 일)을 형성한다. 공기가 없으면 공기 쿠션이 형성되지 않으니 헤드가 플래터에 직접 닿아 데이터 손상 + 장치 고장을 초래할 수 있다. HDD는 물리적으로 작동하는 구조이다보니 미세한 충격에도 매우 예민하다.

 

- 장점

대용량 데이터 저장 가능. SSD 보다 저렴함. 안정적으로 데이터를 저장할 수 있음.

 

- 단점

속도가 SSD에 비해 느림. 충격에 민감하고 기계적인 부품이 많아 물리적 손상에 취약함.

 

- 용도

데이터 저장, 백업, 대용량 파일 보관 등.

 

 

৹  SSD (Solid State Drive, 에스에스디)

 

- 구조

플래시 메모리를 사용하여 데이터를 저장한다. 전기적인 방식으로 데이터를 읽고 쓰기 때문에 기계적인 부품이 없다.

 

- 장점

전기신호로 데이터 접근 속도가 매우 빠름. 기계적 부품이 없어 충격과 진동에 강함. 그래서 노트북, 태블릿 등의 휴대성이 중요한 장치에서 SSD가 사용됨. 물리적 동작이 없으니 발열도 적고 소음도 없다. 전력소비가 낮아서 배터리 구동 장치(ex노트북)에서 수명 연장시킬 수 있음.

장점만 많은 것 같은데 HDD 단점을 극복하기 위해 탄생한 보조기억장치가 SSD이기 때문에 당연하다.

 

- 단점

가격이 HDD보다 비쌈. 용량도 HDD보다 작음.

 

- 데이터 복구

SSD는 데이터 복구가 어렵다. 이유를 찾아봤는데 이유를 이해하기도 어렵다...TRIM 명령어가 어쩌고 Garbage Collection 어쩌고..암튼 데이터 복구가 어렵다. 근데 선생님 말씀을 들어보면 요즘 시대에 보안을 생각해 봤을 때, 데이터 복구가 어렵다 라는 점이 단점이라고 할 수만은 없을 것 같다.

 

- 용도

운영체제 설치, 프로그램 실행, 게임 로딩 등 속도가 중요한 작업.

 

 

৹  가상 메모리(Virtual Memory)

 

- 주기억장치(RAM)의 용량이 부족할 경우, 보조기억장치(HDD)의 일부를 메모리처럼 사용하는 기술.

- 운영체제가 주기억장치와 보조기억장치 사이의 데이터를 스왑(swap)하여 메모리 사용을 최적화함.

- 물리적 메모리가 부족할 때 프로그램이 계속 실행될 수 있도록 도움

- 실제 RAM보다 속도가 느리지만, 시스템의 안정성을 유지하는 데 도움

 

- 용도 : 대용량  프로그램 실행, 멀티태스킹 환경에서 메모리 부족 문제 해결

 

 

▶ 입력장치 (Input Devices)

  • 사용자가 컴퓨터에 데이터를 입력할 수 있는 장치
  • 이를 통해 사용자는 다양한 정보를 컴퓨터 시스템으로 전달할 수 있음
  • ex) 키보드, 마우스, 터치스크린, 마이크, 카메라, 스캐너, 게임 컨트롤러 등

▶ 출력장치 (Output Devices)

  • 컴퓨터가 처리한 정보를 사용자에게 전달하는 장치
  • 이를 통해 컴퓨터는 사용자에게 다양한 형태로 정보를 표현할 수 있음
  • ex) 모니터, 스피커, 프린터, 프로젝터, 헤드폰, 조명 등

입출력장치 포트

 

 

 

 

 


'CS' 카테고리의 다른 글

[CS] OOP 객체지향 프로그래밍  (0) 2024.07.30
[CS] 소프트웨어 설계  (0) 2024.07.29
[CS] 컴파일러/인터프리터/메모리영역  (0) 2024.07.28
[CS] 자료형/자료구조  (0) 2024.07.26
[CS] 운영체제  (0) 2024.07.26