컴퓨터 구조는 무엇일까?
컴퓨터 구조
--
컴퓨터 구조는
컴퓨터 시스템의 설계와 동작 원리에 대한 것으로
하드웨어와 소프트웨어가 어떻게 상호작용하는지에 대한 이해를 돕는다.
컴퓨터 구조에 대한 지식은 크게 두 가지다.
- 컴퓨터가 이해하는 정보
- 컴퓨터의 네 가지 핵심 부품
--
컴퓨터가 이해하는 정보
--
컴퓨터는 0과 1로 표현된 정보만을 이해할 수 있다.
0과 1로 표현된 정보에는 크게 두 종류가 있다.
- 데이터 (Data)
- 명령어 (Instructions)
데이터는
컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상 등 정적인 정보를 의미한다.
즉, 컴퓨터가 처리해야 할 정보나 자료를 의미하고
이러한 데이터는 0과 1로 이루어진 이진수(binary)로 저장되고 처리된다.
(컴퓨터와 주고받는 정보나 컴퓨터에 저장된 정보를 가리킬 때 편하게 데이터라고 통칭한다.)
명령어는
컴퓨터가 수행해야 할 작업을 지시하는 명령을 의미한다.
CPU가 데이터를 어떻게 처리할지를 정의하며,
역시 0과 1로 이루어진 이진수(binary) 형태로 저장된다.
(명령어들은 CPU의 ISA(Instruction Set Architecture)에 의해 정의된다.)
--
컴퓨터의 4가지 핵심 부품
--
컴퓨터의 종류는 매우 다양하다.
- 아두이노
- 라즈베리 파이
- 스마트폰
- 노트북
- 테스트탑
- 서버용 컴퓨터
컴퓨터 종류는 다양하지만
해당 컴퓨터를 이루는 핵심 부품들은 크게 다르지 않다.
컴퓨터의 핵심 부품
- 중앙 처리 장치 (CPU, Central Processing Unit)
- 주 기억 장치 (Main Memory)
- 보조 기억 장치 (Secondary Storage)
- 입출력 장치 (I/O Devices)
주 기억 장치 (Main Memory)는
크게 RAM (Random Access Memory)과 ROM (Read Only Memory)이 존재한다.
메모리라고 부르는 것은 일반적으로 RAM을 지칭한다.
즉, 주 기억 장치는 일반적으로 RAM이라고 생각해도 무방하다.
위의 4가지 부품의 역할만 이해하고 있으면
대부분의 컴퓨터 작동 원리를 파악할 수 있다.
컴퓨터 핵심 부품 구조
--
메모리
--
메모리는
현재 실행되고 있는 프로그램의 명령어와 데이터를 저장하는 부품이다.
즉, 프로그램이 실행되려면 반드시 메모리가 필요하고 해당 메모리에 저장되어야 한다.
컴퓨터가 빠르게 동작하기 위해서는
메모리 속에 명령어와 데이터가 중구난방으로 배치되어 있으면 안 된다.
(저장된 명령어와 데이터의 위치는 정돈되어 있어야 한다.)
이를 해결하기 위해 메모리는 "주소"라는 개념이 사용된다.
(메모리에 저장된 값을 빠르고 효율적으로 접근하기 위해)
위 그림은 메모리를 쉽게 이해하기 위해 표현된 그림으로
실제로는 위 그림처럼 저장되지 않는다.
정리
- 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어 있어야 한다.
- 메모리에는 현재 실행 중인 프로그램의 명령어와 데이터를 저장한다.
- 메모리에 저장된 값의 위치는 주소로 알아낼 수 있다.
--
CPU
--
CPU는
컴퓨터의 두뇌라고 생각하면 되며,
메모리에 저장된 명령어를 읽고, 해석하고 실행하는 부품이다.
CPU 내부 구성 중에 가장 중요한 3가지
- 산술 논리 연산장치 (ALU, Arithmetic Logic Unit)
- 레지스터 (Register)
- 제어장치 (CU, Control Unit)
ALU는
계산만을 위해 존재하는 부품으로
컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 수행한다.
(간단하게 계산기라고 생각하면 된다.)
레지스터는
CPU 내부의 작은 임시 저장 장치로
프로그램을 실행하는 데 필요한 값들을 임시로 저장한다.
(CPU 내부에는 여러 개의 레지스터가 존재하고 각각 다른 이름과 역할을 가지고 있다.)
제어장치는
제어 신호(Control Signal)라는 전기 신호를 보내고 명령어를 해석하는 장치다.
ex)
CPU가 메모리에 저장된 값을 읽고 싶을 경우 = 메모리를 향해 "메모리 읽기"라는 제어 신호를 보냄
CPU가 메모리에 어떠한 값을 저장하고 싶을 경우 = 메모리를 향해 "메모리 쓰기"라는 제어 신호를 보냄
제어 신호는
컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호다.
간단한 흐름 보기
1. 제어장치는 메모리 0x001에 저장된 명령어를 읽기 위해 해당 메모리에 "메모리 읽기" 제어 신호 보냄
2.
(1) 메모리는 0x001에 저장된 명령어를 CPU에 전달해 주고, 해당 명령어는 레지스터에 저장된다.
(2) 제어장치는 읽어 들인 명령어를 해석한 뒤 0x003과 0x004의 데이터가 필요하다고 판단 (제어장치로 다시 이동)
(3) 제어장치는 0x003과 0x004에 저장된 데이터를 읽기 위해 "메모리 읽기" 제어 신호 보냄
3.
(1) 메모리는 0x003과 0x004에 저장된 데이터를 CPU에게 전달해 주고, 해당 데이터들은 서로 다른 레지스터에 저장된다.
(2) ALU는 읽어 들인 데이터로 연산을 수행한다.
(3) 계산의 결괏값은 레지스터에 저장된다.
명령어에 대한 명령을 모두 수행했으므로 해당 명령어의 실행은 끝난다.
4. 제어장치는 0x002에 저장된 명령어를 읽기 위해 해당 메모리에 "메모리 읽기" 제어 신호를 보낸다.
5.
(1) 메모리는 0x002에 저장된 명령어를 CPU에게 전달해 주고, 해당 명령어는 레지스터에 저장된다.
(2) 제어장치는 해당 명령어를 해석한 뒤 메모리에 계산 결과를 저장해야 한다고 판단
(3) 제어장치는 계산 결과를 저장하기 위해 해당 메모리에 "메모리 쓰기" 제어 신호와 함께 계산 결과를 전달
명령어에 대한 명령을 모두 수행했으므로 해당 명령어의 실행은 끝난다.
정리
- CPU는 메모리에 저장된 값을 읽고, 해석하고, 실행하는 장치다.
- CPU 내부에는 ALU, 레지스터, 제어장치가 존재한다.
- ALU는 계산하는 장치
- 레지스터는 임시 저장 장치
- 제어장치는 제어 신호를 발생시키고 명령어를 해석하는 장치다.
--
보조기억장치
--
보조기억장치와 주기억장치는 다르다.
주기억장치는
실행되는 프로그램의 명령어와 데이터를 저장한다고 했지만,
휘발성 메모리로 전원이 꺼지면 저장된 내용이 사라진다.
그리고 저장 용량도 적으면서 가격도 비싸다.
하지만 속도가 매우 빠르므로,
CPU의 성능을 최대한으로 활용할 수 있어 프로그램 실행 속도에 직접적인 영향을 미친다.
그리고 주기억장치에 저장된 데이터는 CPU가 즉시 접근이 가능하여 실행 중인 프로그램의 효율성을 높인다.
보조기억장치는
비휘발성 메모리로 전원이 꺼져도 저장된 내용들은 사라지지 않는다.
그리고 저장 용량도 크면서 상대적으로 가격도 싸다.
하지만 속도가 주기억장치에 비해 상대적으로 느리기 때문에 프로그램 실행 속도에 직접적인 영향을 미친다.
정리
주 기억 장치
- 속도가 매우 빠름
- 속도가 빠르기 때문에 CPU의 성능을 최대한으로 활용 가능
- 해당 메모리에 저장된 데이터는 CPU가 즉시 접근이 가능함
- 휘발성 메모리로 전원이 꺼지면 모든 데이터가 사라짐
- 저장 용량이 적으므로 많은 데이터 저장이 불가능
- 용량 대비 가격이 비쌈
보조 기억 장치
- 비휘발성 메모리로 전원이 꺼져도 데이터가 사라지지 않음
- 대용량 저장 공간을 가지고 있음
- 용량 대비 가격이 상대적으로 저렴함
- 주 기억 장치보다 상대적으로 속도가 느림
보조기억장치의 종류
- 하드 디스크 (HDD)
- SSD
- USB
- DVD
- CD-ROM
--
입출력 장치
--
입출력 장치는
모니터, 키보드, 스피커, 마우스처럼 컴퓨터 외부에서 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 의미한다.
그러면 보조기억장치에서 USB, 외장하드 등 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환할 수 있는 장치는?
이 또한 입출력 장치라고도 볼 수 있다.
다만 모니터, 마우스와 같이 일반적인 입출력장치에 비해
메모리를 보조한다는 특별한 기능을 수행하는 입출력장치라고 볼 수 있다.
특정 보조기억장치와 입출력장치를 "컴퓨터 주변에 붙어있는 장치"라고 생각하여
"주변장치"라고 통칭하기도 한다.
--
메인보드와 시스템 버스
--
위에 설명한 컴퓨터 부품들은 모두 "메인보드"라는 판에 연결된다.
(메인보드(Main Board)를 마더보드(Mother Board)라고도 부른다.)
메인보드에 연결된 부품들은
서로 정보를 주고받을 수 있는데,
이는 메인보드 내부에 버스(bus)라는 통로가 존재하기 때문이다.
컴퓨터 내부에는 다양한 종류의 통로(버스)가 존재하지만
이 중에서 4가지 핵심 부품들을 연결하는 가장 중요한 버스가 시스템 버스(System bus)다.
시스템 버스 구성
- 주소 버스 (address bus)
- 데이터 버스 (data bus)
- 제어 버스 (control bus)
상황에 따라 알맞은 버스를 이용하는 과정 예시
- 제어 버스를 통해 "메모리 읽기" 제어 신호를 전달
- 주소 버스를 통해 "읽고자 하는 주소"를 전달
- 데이터 버스를 통해 "CPU가 요청한 주소에 있는 내용"을 전달
--
'CS > 컴퓨터 구조' 카테고리의 다른 글
[CPU 동작 원리] 레지스터 종류 (0) | 2024.08.24 |
---|---|
[CPU 작동 원리] ALU와 제어장치 (0) | 2024.08.23 |
[명령어] 명령어의 구조 ( 연산 코드, 오퍼랜드, 주소 지정 방식 ) (0) | 2024.08.22 |
[명령어] 고급 언어와 저급 언어 ( 컴파일, 인터프리터 ) (0) | 2024.08.21 |
데이터 (0과 1로 문자, 숫자를 표현하기) (0) | 2024.08.20 |