본문 바로가기

컴퓨터 구조의 큰 그림

@9ky02025. 5. 11. 21:54

컴퓨터가 이해하는 정보

프로그램을 개발하기 위해 C++, 자바, 파이썬과 같은 프로그래밍 언어로 소스 코드를 작성하지만, 정작 컴퓨터는 이를 직접 이해하지 못한다. 컴퓨터가 이해할 수 있는 정보는 데이터와 명령어이다. 우리가 작성한 소스 코드는 내부적으로 컴퓨터가 이해할 수 있는 데이터와 명령어의 형태로 변환된 뒤 실행된다.

 

일반적으로 사용되는 명령어 생김새는 다음과 같다. 수행할 동작과 수행할 대상으로 이루어져 있다.

더하라. 1과 2를
출력하라. "hello world"를
USB 메모리에 저장하라. cat.jpg를

데이터는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 의미한다. 컴퓨터와 주고받는 정보 내지 저장된 정보 그 자체를 데이터라 통칭하기도 한다. 위의 '1', '2'와 같은 숫자나 "hello world"같은 문자열, 'cat.jpg'라는 파일명 모두 데이터다. 데이터는 있는 그대로의 정보를 말하고, 명령어는 이 데이터를 활용하는 정보임을 알 수 있다. 즉 데이터는 명령어에 종속적인 정보이며, 명령의 대상이자, 명령어의 재료이다.

 

컴퓨터는 기본적으로 0과 1만 이해할 수 있으므로 데이터와 명령어 또한 0과 1로 이루어져 있다. 즉 0과 1만으로 다양한 숫자(정수, 실수)와 문자 데이터를 표현하며, 이를 활용해 명령어를 실행한다. 명령어를 실행하는 주체가 컴퓨터의 CPU이다. CPU의 종류에 따라 실행 가능한 세부적인 명령어 종류와 처리 양상이 달라질 수 있지만, 큰 틀에서 보면 CPU 종류와 무관하게 공통적으로 활용되는 명령어는 어느 정도 정해져있다.

컴퓨터의 핵심 부품

1. CPU

AMD 라이젠 9000 시리즈 CPU

정보를 읽어 들이고, 해석하고, 실행하는 부품이다. 사람의 두뇌에 해당한다고 볼 수 있다.

  • 산술논리연산장치(ALU: Arithmetic and Logic Unit): 사칙 연산, 논리 연산과 같은 연산을 수행할 회로로 구성되어 있는 계산기. CPU가 처리할 명령어를 실질적으로 연산하는 요소
  • 제어장치(CU: Control Unit): 명령어를 해석해 부품을 작동시키기 위한 제어 신호를 내보내는 장치. CPU가 메모리를 향해 제어 신호를 보내면 메모리를 작동시킬 수 있고, 입출력장치를 향해 신호를 보내면 해당 장치를 작동시킬 수 있다.
  • 레지스터(register): CPU 내부에 있는 작은 임시 저장장치. 데이터와 명령어를 처리하는 과정의 중간값을 저장한다. CPU 내부에는 각기 다른 이름과 역할을 가진 여러 개의 레지스터가 존재한다.

2. 메모리와 캐시 메모리

삼성 DDR5-4800 16GB 램

메인 메모리(주기억장치) 역할을 하는 하드웨어는 RAM과 ROM 2가지가 존재하는데, 일반적으로 (메인) 메모리라는 용어는 RAM을 지칭한다.

CPU가 읽어 들이고, 해석하고, 실행하는 모든 정보는 어딘가에 저장되어 있어야 하는데, 그 역할을 메모리가 수행한다. 즉, 메모리는 현재 실행 중인 프로그램을 구성하는 데이터와 명령어를 저장하는 부품이다. 반대로 말하면 프로그램이 실행되려면 그 프로그램을 이루는 데이터와 명령어가 메모리에 저장되어 있어야 한다는 것을 의미한다.

CPU가 메모리에 접근할 때 컴퓨터가 빠르게 작동하기 위해서는 메모리 속 데이터와 명령어가 정돈된 상태로 저장되어 있어야 한다. 이때 사용되는 개념이 주소다. 즉 CPU가 원하는 정보로 접근하기 위해 주소가 필요하다.

1번지와 2번지에는 명령어, 3번지와 4번지에는 데이터, 5번지와 6번지에는 아무것도 저장되어 있지 않은 메모리

메모리(RAM)는 전원이 공급되지 않을 때 저장하고 있는 정보가 지워지는 휘발성 저장장치로, 메모리에 저장된 정보는 컴퓨터 전원이 꺼지면 모두 삭제된다.

CPU와 메모리 사이에 반드시 하나 이상의 캐시 메모리가 존재하는데, 캐시 메모리는 CPU가 조금이라도 더 빨리 메모리에 저장된 값에 접근하기 위해 사용하는 저장장치다. 빠른 메모리 접근을 보조하는 저장장치로, 캐시 메모리는 CPU 안팎으로 위치하며 여러 종류가 있다.

3. 보조기억장치

컴퓨터 전원이 꺼지면 저장된 정보를 모두 잃는 메모리를 보조하기 위해, 전원이 꺼져도 저장된 정보가 사라지지 않는 보조기억장치를 사용한다.

대표적인 보조기억장치 SSD, HDD

메모리가 현재 실행 중인 프로그램을 저장한다면, 보조기억장치는 보관할 프로그램을 저장한다고 할 수 있다. CPU는 보조기억장치에 저장된 프로그램을 메모리에 복사한 뒤 실행시킨다.

4. 입출력장치

컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 입출력장치라 한다. 마우스, 키보드, 마이크 등은 입력장치이고 스피커, 모니터, 프린터 등은 출력장치이다.

Apple Magic Keyboard, Magic Mouse, HomePod, Studio Display

참고로 보조기억장치가 컴퓨터 내부와 정보를 주고받는 방식이 입출력장치와 크게 다르지 않아, 이 둘을 묶어 주변장치라 통칭하기도 한다.

5. 메인보드와 버스

위에서 얘기한 핵심 부품들은 메인 보드라 부르는 기판에 연결된다. 메인보드에 연결된 부품들은 각자의 역할을 수행하기 위해 서로 정보를 주고받는다. 이 때 각 컴퓨터 부품들이 정보를 주고받는 통로를 버스(bus)라 부른다. 이 중 핵심 부품들을 연결하는 통로는 특별히 시스템 버스라 부른다. 사람의 척추와 비슷하다고 볼 수 있다.

참고: 저장장치의 계층 구조

저장장치들은 일반적으로 다음과 같은 명제를 따른다.

  1. CPU와 가까운 저장장치는 빠르고, 멀리 있는 저장장치는 느리다.
  2. 속도가 빠른 저장장치는 용량이 작고, 가격이 비싸다.

앞서 언급한 저장장치들을 CPU와 가까운 순으로 나열하면 '레지스터 -> 캐시 메모리 -> 메모리 -> 보조기억장치' 순서다. 이 저장장치들은 CPU와의 거리, 용량, 성능을 기준으로 아래와 같은 계층적 구조를 가진다. 이를 '저장장치 계층 구조'라 부른다.

메모리 계층 구조

'Computer Science > Computer Architecture' 카테고리의 다른 글

컴퓨터가 이해하는 정보  (2) 2025.06.01
9ky0
@9ky0 :: Hello, 9ky0!

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차