본 글은 책 "혼자 공부하는 컴퓨터 구조+운영체제" 을 읽고 정리한 내용입니다.
컴퓨터 구조를 공부해야 하는 이유가 뭘까?
- 컴퓨터 구조를 이해하면 문제 해결 능력이 향상됨
- 프로그래밍 언어 문법만으로 알기 어려운 성능/용량/비용을 고려하며 개발할 수 있음
컴퓨터 구조의 큰 그림
컴퓨터 구조 지식은 크게 2가지
- 컴퓨터가 이해하는 정보
- 컴퓨터의 4가지 핵심 부품
컴퓨터가 이해하는 정보
- 0과 1로 표현된 정보만을 이해하는데 크게 2가지 종류
- 데이터
- 명령어
컴퓨터의 4가지 핵심 부품
- 중앙처리장치 (CPU: Central Processing Unit)
- 주기억장치 (Main memory, RAM)
- 보조기억장치 (Secondary storage)
- 입출력장치(input/output(I/O) device)
- 가장 큰 사각형이 메인보드
- 메인 보드 안에 시스템 버스(양방항 수직 화살표)가 있음
- CPU 내부에는 산술논리연산 장치(ALU), 제어장치 와 여러 레지스터가 있음
- CPU는 메인보드 내 시스템 버스와 연결되어 있음
- 메모리는 메인보드 내 시스템 버스와 연결되어 있음
- 보조기억장치는 메인 보드 내 시스템 버스와 연결되어 있음
- 모니터, 키보드, 마우스 등은 메인보드 내 시스템 버스와 연결되어있고 이들을 입출력장치라고 부름
⇒ 컴퓨터의 4가지 핵심 부품은 메인보드 내의 시스템 버스를 통해 모두 연결되어 있음
메모리
- 현재 실행되는 명령어와 데이터를 저장하는 부품
- 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 함
- 컴퓨터가 빠르게 작동하기 위해서는 메모리 속 명령어와 데이터가 중구난방으로 저장되어 있으면 안되고 정돈되어있어야 함
→ 주소라는 개념이 사용됨
- 1/2번지에 명령어
- 3/4번지에 데이터
- 5/6번지에 아무것도 저장되어 있지 않음
CPU
- 메모리에 저장된 명령어를 읽어 들이고, 해석하고 실행
- 내부 구성요소는 크게 3가지
- 산술논리연산장치(ALU, Arithmetic Logic Unit) : 쉽게 말해 계산기
- 레지스터 (Register): 내부의 작은 임시 저장 장치
- 제어장치 (CU, Control Unit)
- Control signal이라는 전기 신호를 내보고 명령어를 해석하는 장치
ex) CPU가 메모리에 어떤 값을 저장하고 싶을 땐 메모리를 향해 메모리 쓰기라는 제어 신호를 보냄
예시를 통한 CPU를 구성하는 세가지 부품의 역할
- 제어장치는 1번지에 저장된 명령어를 읽어 들이기 위해 메모리에 “메모리 읽기” 제어 신호 전송
2. 메모리는 1번지에 저장된 명령어를 CPU에 건네주고 이 명령어는 레지스터에 저장됨.
제어 장치는 읽어 들인 명령어를 해석한 뒤 3번지와 4번지에 저장된 데이터가 필요하다고 판단.
제어장치는 3/4번지에 저장된 데이터를 읽어 들이기 위해 메모리에 “메모리 읽기” 제어 진호를 전송
3. 메모리는 3/4 번지에 저장된 데이터를 CPU에 건내주고 각각 다른 레지스터에 저장됨.
ALU는 읽어 들인 데이터로 연산을 수행. 계산의 결과값을 레지스터에 저장. 계산이 끝났다면 첫번째 명령어의 실행은 끝남
4. 제어장치는 2번지에 저장된 다음 명령어를 읽어 들이기 위해 메모리에 “메모리 읽기”제어 신호를 보냄
5. 메모리는 2번지에 저장된 명령어를 CPU에 건네주고, 이 명령어는 레지스터에 저장됨. 제어장치는 이 명령어를 해석한 뒤 메모리에 계산 결과를 저장해야 한다고 판단
6. 제어 장치는 계산 결과를 저장하기 위해 메모리에 “메모리 쓰기” 제어 신호와 함께 220을 보냄. 메모리가 계산 결과를 저장하면 두번째 명령어의 실행도 끝남.
정리
- CPU는 메모리에 저장된 값을 읽고/해석/실행하는 장치
- CPU 내부에는 ALU, 레지스터, Control Unit이 있음
- ALU : 계산하는 장치
- 레지스터 : 임시 저장 자잋
- Control Unit: 제어 신호를 발생시키고 명령어를 해석하는 장치
보조기억장치
- 메모리는 프로그램의 명령어와 데이터를 저장하지만 2가지 치명적인 단점 존재
- 가격이 비싸 저장 용량이 적음
- 전원이 꺼지면 저장된 내용을 잃음
⇒ 보조기억장치의 필요. 보관할 프로그램을 저장
종류
- SSD, HDD, USB 메모리
입출력장치
- 마이크, 스피커, 프린터, 마우스, 키보드 처럼 컴퓨터 외부에 연결되어 내부와 정보를 교환
메인보드와 시스템 버스
메인보드
- 컴퓨터의 핵심 부품들은 모두 메인보드 판에 연결됨
- 여러 컴퓨터 부품을 부착할 수 있는 슬롯과 연결단자가 있음
시스템버스
- 메인보드에 연결된 부품들은 버스라는 통로를 통해 정보를 주고 받음
- 컴퓨터의 4가지 핵심 부품을 연결하는 가장 중요한 버스
시스템버스 구성
- 주소 버스: 주소를 주고 받는 통로
- 데이터 버스: 명령어와 데이터를 주고 받는 통로
- 제어 버스: 제어 신호를 주고 받는 통로
- CPU 구성요소 중 제어 장치(Control Unit)는 제어 버스를 통해 제어 신호를 보냄
CPU 작동 예시를 통한 시스템 버스 이해
- CPU가 메모리 속 명령어를 읽어 들이기 위해 제어장치에서 “메모리 읽기”라는 신호를 보낼 때
- 실제로는 제어버스로 “메모리 읽기” 제어 신호
- 주소 버스로 읽고자 하는 주소를 보냄
메모리에 어떤 값을 저장하는 경우
- CPU는 데이터 버스를 통해 메모리에 저장할 값
- 주소버스를 통해 저장할 주소
- 제어 버스를 통해 “메모리 쓰기” 제어 신호를 보냄
참고
1. 책 "혼자 공부하는 컴퓨터 구조+운영체제"
2. 유튜브 "혼자 공부하는 컴퓨터 구조 + 운영체제"