Programming/CS

[CS] 컴퓨터 구조의 큰 그림

gaing 2024. 9. 23. 16:46

컴퓨터가 이해하는 두 가지 정보

데이터

데이터는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 말한다. 컴퓨터와 주고받는 정보 또는 내부에 저장된 정보를 데이터라 통칭하기도 한다.

명령어

명령어는 컴퓨터를 실질적으로 움직이는 정보를 말한다. 쉽게 말해 컴퓨터는 결국 명령어를 처리하는 기계이며, 데이터는 명령어를 위한 일종의 재료라고 할 수 있다.

예제. 1과 2를 더하라

  • '1'과 '2' → 데이터
  • '1과 2를 더하라' → 명령어

컴퓨터의 네 가지 핵심 부품

컴퓨터의 종류


세상에는 다양한 종류의 컴퓨터가 있다. 라즈베리파이, 아두이노와 같은 작은 컴퓨터부터 스마트폰, 노트북, 데스크톱, 서버 컴퓨터에 이르기까지 그 크기와 용도도 제각각이다.

하지만 컴퓨터의 종류를 막론하고 컴퓨터를 이루는 핵심 부품은 크게 다르지 않다. 컴퓨터의 핵심 부품은 중앙처리장치(CPU), 주기억장치(memory), 보조기억장치(secondary storage), 입출력장치(I/O device)가 있다.

이 네 가지 부품의 역할만 이해하고 있어도 컴퓨터의 작동 원리를 대체적으로 파악할 수 있다.


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

CPU는 컴퓨터의 두뇌와도 같은 부품이다. 메모리에 저장된 명령어를 읽어 들이고, 읽어들인 명령어를 해석하고, 실행하는 장치이다.

쉽게 컴퓨터의 두뇌라고 말했듯 우리가 공부를 많이 하면 머리가 아픈 것처럼 CPU도 일을 많이 하면 열이 발생하는데 그래서 선풍기처럼 생긴 팬을 장착한다. 메인보드 내 CPU의 위치는 보통 이 팬 아래에 위치하는 경우가 대다수이다.

CPU의 내부 구성 부품

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

ALU는 쉽게 말해 계산기이다. 계산만을 위해 존재하는 부품이며, 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 도맡아 수행한다.

제어장치(Control Unit, CU)

제어장치는 제어 신호라는 전기 신호를 내보내고 동시에 명령어를 해석하는 장치이기도 하다. 여기서 제어 신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호이다.

레지스터(Register)

레지스터는 CPU 내부의 작은 임시 저장 장치이다. 프로그램을 실행하는 데 필요한 값들을 임시로 저장한다. CPU 내에 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다.

메모리

현재 실행되는 프로그램(프로세스)의 명령어와 데이터를 저장하는 부품이다. 즉, 어떤 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 한다.

 

메모리 주소

메모리에는 주소라는 개념이 있다. 내가 원하는 명령어와 데이터가 현재 메모리 내 어디에 저장되어 있는지 위치를 특정하기 위해 사용하는 개념이다. 메모리에 저장된 값의 위치는 주소로 알 수 있다.

보조기억장치

USB, SD카드, CD롬, 하드디스크 SSD 등 대용량으로 저장할 수 있는 장치이다.

보조기억장치가 필요한 이유

메모리(RAM)라고 하는 하드웨어는 보조기억장치에 비해 값이 비싸고, 전원이 꺼지면 저장된 내용을 잃는 휘발성 저장장치이다.

이에 메모리보다 크기가 크고 전원이 꺼져도 내용을 잃지 않는 메모리를 보조할 저장 장치가 필요하게 되었는데, 이 저장 장치가 보조기억장치이다.

입출력장치

키보드, 마우스, 마이크, 모니터, 프린터 등 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 의미한다.


메인보드와 시스템 버스

지금까지 설명한 컴퓨터의 핵심 부품들은 모두 메인보드라는 판에 연결된다. 메인보드는 마더보드(mother board)라고도 부른다. 메인보드에는 여러 컴퓨터 부품을 부착할 수 있는 슬롯과 연결 단자가 있다.

메인보드에 연결된 부품들은 서로 정보를 주고받을 수 있는데, 이는 메인보드 내부에 버스(bus)라는 통로가 있기 때문이다. 컴퓨터 내부에는 다양한 종류의 통로, 즉 버스가 있다. 여러 버스 가운데 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 시스템 버스(system bus)이다.

시스템 버스의 내부 구성

시스템 버스는 주소 버스, 데이터 버스, 제어 버스로 구성되어 있다. 주소 버스(address bus)는 주소를 주고받는 통로, 데이터 버스(data bus)는 명령어와 데이터를 주고받는 통로, 제어 버스(control bus)는 제어 신호를 주고받는 통로이다.


주저리

나 진짜 3년이라는 시간 동안 뭘 배운 거지? (휴학 포함하면 4년인데 ...) 프로그래밍 언어도 겨우 기초만 할 수 있을 정도인데 컴퓨터 구조랑 네트워크 쪽은 정말 하나도 모르겠어서 늦었지만 지금부터라도 차근차근 공부해보려고 한다.

근로 덕분에 억지로라도 이른 시간에 일어나서 돈 받으면서 공부하니까 도움이 되는 거 같긴 하다. 실은... 생각한 것보다 너무 사무적인 분위기라 눈치가 보이기도 하고, 아무리 근로가 꿀이라지만 나도 공부보단 일을 더 우선시하고 싶긴 하지만 평상시에 일이 딱히 없어서 말이지... 실제로 근로 담당 선생님들께서 할 게 없다고 하시니 ...

아무튼 일 없을 땐 이렇게 개인 시간 잘 활용해서 졸업하기 전까지 컴퓨터 구조나 네트워크 등 IT 관련 기본 지식들은 탄탄하게 쌓고 졸업할 수 있기를 바란다.