“혼자 공부하는 컴퓨터 구조+운영체제” 책을 기준으로 작성하였습니다.
개발자가 컴퓨터 구조를 알아야하는 이유
- 컴퓨터 구조를 이해하면 문제 해결 능력이 향상됨
- 컴퓨터 구조를 이해하면 문법만으로는 알기 어려운 성능/용량/비용을 고려하며 개발할 수 있다.
우리가 알아야 할 컴퓨터 구조 지식
- 컴퓨터가 이해하는 정보
- 컴퓨터의 네 가지 핵심 부품 에 대하여 알아야한다.
컴퓨터가 이해하는 정보
- 데이터 : 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보
- 명령어 : 데이터를 움직이고 컴퓨터를 작동시키는 정보
데이터는 명령어 없이는 아무것도 할 수 없는 정보 덩어리이다.
명령어는 컴퓨터를 작동시키는 정보이고, 데이터는 명령어를 위해 존재하는 일종의 재료
이러한 점에서 컴퓨터 프로그램은 ‘명령어들의 모음’으로 정의된다.
컴퓨터의 정의 : 명령어를 처리하는 기계이다.
컴퓨터의 4가지 핵심 부품
세상에는 다양한 종류의 컴퓨터가 존재한다. 아두이노, 라즈베리 파이와 같은 작은 컴퓨터부터 스마트폰, 노트북, 데스크톱, 서버 컴퓨터에 이르기까지 그 크기와 용도가 제각각이다.
모든 컴퓨터의 핵심 부품의 네가지는 중앙처리장치(CPU: Central Processing Unit), 주기억 장치(main memory), 보조기억 장치(secondary storage), 입출력장치(input/output(I/O) device)가 있습니다.
컴퓨터의 구성 요소
메모리
메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
→ 즉, 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 합니다.
⇒ 폰 노이만 구조 : 모든 프로그램은 메모리에 적재되어 실행되어야 한다.
컴퓨터가 빠르게 작동하기 위해서는 저장된 명령어와 데이터의 위치는 정돈되어 있어야 한다. 그래서 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 **주소(Address)**라는 개념이 사용됩니다.
해당 그림은 1번지와 2번지에 명령어, 3번지와 4번지에 데이터가 저장되어 있고, 5번지와 6번지에는 아무것도 저장되어 있지 않은 상태의 메모리를 표현한 예시임.
해당 그림은 쉽게 그림으로 나타낸 것일 뿐, 실제로는 명령어와 데이터는 모두 0과 1로 저장됩니다.
CPU
CPU는 컴퓨터의 두뇌입니다.
CPU는 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품
CPU의 내부 구성 요소에서의 중요한 요소는 산술논리연산장치(ALU : Arithmetic Logic Unit), 레지스터(register), 제어장치(CU : Control Unit)가 있습니다.
ALU
실제로 계산을 수행하는 유닛입니다. (계산기 라고 생각하면됨)
계산만을 위해 존재하는 부품, 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 수행
레지스터
CPU 내부의 작은 임시 저장 장치입니다. 프로그램을 실행하는 데 필요한 값들을 임시로 저장하는 역할을 합니다. CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다.
제어 장치(CU)
제어 신호(Control signal)라는 전기 신호를 내보내고 명령어를 해석하는 장치입니다.
제어 신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호입니다.
제어 신호 과정

1번지에 저장된 명령어를 읽어 들이기 위해 메모리에 ‘메모리 읽기’ 제어 신호를 보냄

- 메모리는 1번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장됨
- 제어장치는 읽어 들인 명령어를 해석한 뒤 3번지와 4번지에 저장된 데이터가 필요하다고 판단
- 제어장치는 3번지와 4번지에 저장된 데이터를 읽어 들이기 위해 메모리에 ‘메모리 읽기’ 제어 신호를 보냅니다.

- 메모리는 3번지와 4번지에 저장된 데이터를 CPU에 건네주고, 이 데이터들은 서로 다른 레지스터에 저장됨
- ALU는 읽어 들인 데이터로 연산을 수행합니다.
- 계산의 결괏값은 레지스터에 저장됩니다. 계산이 끝났다면 첫 번째 명령어의 실행은 끝납니다.

- 제어장치는 2번지에 저장된 다음 명령어를 읽어 들이기 위해 메모리에 ‘메모리 읽기’ 제어 신호를 보냅니다.

- 메모리는 2번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장됩니다.
- 제어장치는 이 명령어를 해석한 뒤 메모리에 계산 결과를 저장해야 한다고 판단함

- 제어 장치는 계산 결과를 저장하기 위해 메모리에 ‘메모리 쓰기’ 제어 신호와 함께 계산 결과인 220을 보냅니다. 메모리가 계산 결과를 저장하면 두 번째 명령어의 실행도 끝납니다.
보조 기억 장치
실행되는 프로그램의 명령어와 데이터가 메모리에 저장하고 CPU와의 상호작용으로 데이터와 명령어를 처리하지만, 치명적인 약점이 있다.
- 가격이 비싸고 저장 용량이 적다
- 전원이 꺼지면 저장된 내용을 잃는다
위의 이유 때문에 프로그램 자체는 비교적 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 보조 기억 장치에 저장된다.
입출력 장치
마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
관점에 따라서 보조 기억 장치도 입출력장치의 일종으로 볼 수 있다.
메인보드와 시스템 버스
핵심 부품(CPU, 주기억장치, 보조기억장치, 입출력장치)들은 모두 메인보드 라는 판에 연결됩니다.
메인보드에 연결된 부품들은 서로 정보를 주고 받을 수 있는데, 이는 메인보드 내부에 버스(bus)라는 통로, 즉 버스가 있다.
하지만 여러 버스 가운데 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 시스템 버스(System bus)입니다.
시스템 버스 종류
주소 버스(address bus) : 주소를 주고받는 통로
데이터 버스(data bus) : 명령어와 데이터를 주고받는 통로
제어 버스(control bus) : 제어 신호를 주고받는 통로
❕ CPU의 제어장치는 제어 버스(control bus)를 통해 제어 신호를 보냄
CPU가 메모리 속 명령어를 읽어 들이기 위해 제어장치에서 ‘메모리 읽기’ 라는 신호를 내보낸다면? → 사실 CPU는 메모리를 읽을 때 제어 신호만 내보내지 않는다.
- 제어 버스로 ‘메모리 읽기’ 제어 신호를 내보낸다.
- 주소 버스로 읽고자 하는 주소를 내보낸다.
- 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보냅니다.
핵심 포인트
- 컴퓨터가 이해하는 정보는 데이터와 명령어가 있다.
- 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다.
- CPU는 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품이다.
- 보조기억장치는 전원이 꺼져도 보관할 프로그램을 저장하는 부품이다.
- 입출력장치는 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품이다.
- 시스템 버스는 컴퓨터의 네 가지 핵심 부품들이 서로 정보를 주고 받는 통로이다.
Quiz!
답
컴퓨터가 이해하는 정보에는 명령어와 데이터가 있습니다.
답
- CPU
답
메모리
답
보조 기억 장치 = 보관할 프로그램 저장
메모리 = 실행되는 프로그램 저장
답
- 시스템 버스는 컴퓨터의 핵심 부품을 분리시키는 버스입니다.
→ 시스템 버스는 컴퓨터의 네 가지 핵심 부품이 서로 정보를 주고받는 통로이다.
“혼자 공부하는 컴퓨터 구조+운영체제” 책을 기준으로 작성하였습니다.
개발자가 컴퓨터 구조를 알아야하는 이유
- 컴퓨터 구조를 이해하면 문제 해결 능력이 향상됨
- 컴퓨터 구조를 이해하면 문법만으로는 알기 어려운 성능/용량/비용을 고려하며 개발할 수 있다.
우리가 알아야 할 컴퓨터 구조 지식
- 컴퓨터가 이해하는 정보
- 컴퓨터의 네 가지 핵심 부품 에 대하여 알아야한다.
컴퓨터가 이해하는 정보
- 데이터 : 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상과 같은 정적인 정보
- 명령어 : 데이터를 움직이고 컴퓨터를 작동시키는 정보
데이터는 명령어 없이는 아무것도 할 수 없는 정보 덩어리이다.
명령어는 컴퓨터를 작동시키는 정보이고, 데이터는 명령어를 위해 존재하는 일종의 재료
이러한 점에서 컴퓨터 프로그램은 ‘명령어들의 모음’으로 정의된다.
컴퓨터의 정의 : 명령어를 처리하는 기계이다.
컴퓨터의 4가지 핵심 부품
세상에는 다양한 종류의 컴퓨터가 존재한다. 아두이노, 라즈베리 파이와 같은 작은 컴퓨터부터 스마트폰, 노트북, 데스크톱, 서버 컴퓨터에 이르기까지 그 크기와 용도가 제각각이다.
모든 컴퓨터의 핵심 부품의 네가지는 중앙처리장치(CPU: Central Processing Unit), 주기억 장치(main memory), 보조기억 장치(secondary storage), 입출력장치(input/output(I/O) device)가 있습니다.
컴퓨터의 구성 요소
메모리
메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
→ 즉, 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 합니다.
⇒ 폰 노이만 구조 : 모든 프로그램은 메모리에 적재되어 실행되어야 한다.
컴퓨터가 빠르게 작동하기 위해서는 저장된 명령어와 데이터의 위치는 정돈되어 있어야 한다. 그래서 메모리에는 저장된 값에 빠르고 효율적으로 접근하기 위해 **주소(Address)**라는 개념이 사용됩니다.
해당 그림은 1번지와 2번지에 명령어, 3번지와 4번지에 데이터가 저장되어 있고, 5번지와 6번지에는 아무것도 저장되어 있지 않은 상태의 메모리를 표현한 예시임.
해당 그림은 쉽게 그림으로 나타낸 것일 뿐, 실제로는 명령어와 데이터는 모두 0과 1로 저장됩니다.
CPU
CPU는 컴퓨터의 두뇌입니다.
CPU는 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품
CPU의 내부 구성 요소에서의 중요한 요소는 산술논리연산장치(ALU : Arithmetic Logic Unit), 레지스터(register), 제어장치(CU : Control Unit)가 있습니다.
ALU
실제로 계산을 수행하는 유닛입니다. (계산기 라고 생각하면됨)
계산만을 위해 존재하는 부품, 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 수행
레지스터
CPU 내부의 작은 임시 저장 장치입니다. 프로그램을 실행하는 데 필요한 값들을 임시로 저장하는 역할을 합니다. CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 가지고 있다.
제어 장치(CU)
제어 신호(Control signal)라는 전기 신호를 내보내고 명령어를 해석하는 장치입니다.
제어 신호란 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호입니다.
제어 신호 과정

1번지에 저장된 명령어를 읽어 들이기 위해 메모리에 ‘메모리 읽기’ 제어 신호를 보냄

- 메모리는 1번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장됨
- 제어장치는 읽어 들인 명령어를 해석한 뒤 3번지와 4번지에 저장된 데이터가 필요하다고 판단
- 제어장치는 3번지와 4번지에 저장된 데이터를 읽어 들이기 위해 메모리에 ‘메모리 읽기’ 제어 신호를 보냅니다.

- 메모리는 3번지와 4번지에 저장된 데이터를 CPU에 건네주고, 이 데이터들은 서로 다른 레지스터에 저장됨
- ALU는 읽어 들인 데이터로 연산을 수행합니다.
- 계산의 결괏값은 레지스터에 저장됩니다. 계산이 끝났다면 첫 번째 명령어의 실행은 끝납니다.

- 제어장치는 2번지에 저장된 다음 명령어를 읽어 들이기 위해 메모리에 ‘메모리 읽기’ 제어 신호를 보냅니다.

- 메모리는 2번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장됩니다.
- 제어장치는 이 명령어를 해석한 뒤 메모리에 계산 결과를 저장해야 한다고 판단함

- 제어 장치는 계산 결과를 저장하기 위해 메모리에 ‘메모리 쓰기’ 제어 신호와 함께 계산 결과인 220을 보냅니다. 메모리가 계산 결과를 저장하면 두 번째 명령어의 실행도 끝납니다.
보조 기억 장치
실행되는 프로그램의 명령어와 데이터가 메모리에 저장하고 CPU와의 상호작용으로 데이터와 명령어를 처리하지만, 치명적인 약점이 있다.
- 가격이 비싸고 저장 용량이 적다
- 전원이 꺼지면 저장된 내용을 잃는다
위의 이유 때문에 프로그램 자체는 비교적 크기가 크고 전원이 꺼져도 저장된 내용을 잃지 않는 보조 기억 장치에 저장된다.
입출력 장치
마이크, 스피커, 프린터, 마우스, 키보드처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
관점에 따라서 보조 기억 장치도 입출력장치의 일종으로 볼 수 있다.
메인보드와 시스템 버스
핵심 부품(CPU, 주기억장치, 보조기억장치, 입출력장치)들은 모두 메인보드 라는 판에 연결됩니다.
메인보드에 연결된 부품들은 서로 정보를 주고 받을 수 있는데, 이는 메인보드 내부에 버스(bus)라는 통로, 즉 버스가 있다.
하지만 여러 버스 가운데 컴퓨터의 네 가지 핵심 부품을 연결하는 가장 중요한 버스는 시스템 버스(System bus)입니다.
시스템 버스 종류
주소 버스(address bus) : 주소를 주고받는 통로
데이터 버스(data bus) : 명령어와 데이터를 주고받는 통로
제어 버스(control bus) : 제어 신호를 주고받는 통로
❕ CPU의 제어장치는 제어 버스(control bus)를 통해 제어 신호를 보냄
CPU가 메모리 속 명령어를 읽어 들이기 위해 제어장치에서 ‘메모리 읽기’ 라는 신호를 내보낸다면? → 사실 CPU는 메모리를 읽을 때 제어 신호만 내보내지 않는다.
- 제어 버스로 ‘메모리 읽기’ 제어 신호를 내보낸다.
- 주소 버스로 읽고자 하는 주소를 내보낸다.
- 메모리는 데이터 버스로 CPU가 요청한 주소에 있는 내용을 보냅니다.
핵심 포인트
- 컴퓨터가 이해하는 정보는 데이터와 명령어가 있다.
- 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다.
- CPU는 메모리에 저장된 명령어를 읽어 들이고, 해석하고, 실행하는 부품이다.
- 보조기억장치는 전원이 꺼져도 보관할 프로그램을 저장하는 부품이다.
- 입출력장치는 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 부품이다.
- 시스템 버스는 컴퓨터의 네 가지 핵심 부품들이 서로 정보를 주고 받는 통로이다.
Quiz!
답
컴퓨터가 이해하는 정보에는 명령어와 데이터가 있습니다.
답
- CPU
답
메모리
답
보조 기억 장치 = 보관할 프로그램 저장
메모리 = 실행되는 프로그램 저장
답
- 시스템 버스는 컴퓨터의 핵심 부품을 분리시키는 버스입니다.
→ 시스템 버스는 컴퓨터의 네 가지 핵심 부품이 서로 정보를 주고받는 통로이다.