[컴퓨터구조] 1.컴퓨터의 구성
컴퓨터 시스템
컴퓨터 시스템은 개념적으로는 다음 3가지로 구성되었다고 볼 수 있다:
- 하드웨어
- 소프트웨어
- 펌웨어
1. 하드웨어(hardware)
전기적인 신호로 구성된 정보 즉, 데이터를 이동하거나 처리하는 물리적인 실체를 의미한다. 외관과 용도 막론하고 컴퓨터를 이루는 핵심 부품은 크게 다르지 않다. 주로 CPU, 기억장치, 주변장치(CPU와 메모리를 제외한 나머지)로 구성된다. 각 구성요소들은 시스템 버스로 연결되어 있으며, 하드웨터의 품질은 컴퓨터의 정보 처리 능력을 결정한다.

1.1 하드웨어 구성요소
01. CPU(Central Processing Unit)
모든 컴퓨팅 장치의 두뇌 역할을 한다. 운영체제 및 애플리케이션을 시행하는데 필요한 모든 컴퓨팅 작업을 처리한다. CPU는 메모리에서 명령을 가져와 필요한 작업을 수행한 다음 출력을 다시 메모리로 보낸다.
CPU의 발전
과거에는 CPU가 여러 개의 부품으로 나누어져서 작동했다. 마이크로프로세서 기술이 발전하면서, 이런 역할을 모두 하나의 작은 칩(IC) 안에 넣을 수 있게 되었다.
결과적으로 컴퓨터가 작아지면서 책상에 올려놓을 수 있는 크기의 개인용 컴퓨터를 개발할 수 았었다. 1970년대 후반과 1980년대 초반에 등장한 Apple II나 IBM PC 같은 초기 개인용 컴퓨터의 출현으로 이어졌다.
현대의 프로세서는 마트폰 및 태블릿과 같은 모바일 디바이스들이 등장하면서 전력 효율성이 중요해졌다. 따라서 이를 위한 저전력 및 에너지 효율적인 CPU를 개발하고 있다.
CPU의 구성요소
제어장치
명령 처리를 관리하고 CPU 내부 및 다른 컴퓨터의 구성요소들 간의 데이터 흐름을 조정한다.
즉, 컴퓨터 시스템의 각 구성 요소들이 올바르게 동작하도록 필요한 작업을 다른 CPU 구성 요소에 지시하는 역할을 한다. 지시하는 과정은 다음과 같다:
1️. 명령어 가져오기(Fetch) : 메모리에서 프로그램의 명령어를 하나씩 가져온다.
2️. 명령어 해석(Decode) : 그 명령이 무엇을 의미하는지 해석한다.
⇒ 이를 명령어 사이클이라고 한다.
3️. 명령 실행(Execute) : 명령에 따라 CPU와 다른 장치들에게 어떤 작업을 해야 할지 지시한다. 예 ) 데이터 이동, 계산 수행
4️. 결과 저장 : 실행 결과를 다시 메모리에 저장하거나 다음 작업으로 넘긴다.
→ 제어장치가 이 과정들을 지휘한다고 보면된다.
또한, 제어 장치는 클럭 신호를 받아 그 신호에 맞춰 명령어 처리의 각 단계를 동기화 한다.
클럭신호란 ?
CPU 안에서 일정한 속도로 반복적으로 발생하는 전기적 신호이다. 시계가 ‘틱, 톡’하는 것처럼, “틱틱”하는 리듬을 일정한 간격으로 제공하면서 컴퓨터가 작업을 언제 시작하고, 언제 끝낼지를 알려주는 역할을 한다.
컴퓨터는 위에 말한 4가지 과정을 거쳐 명령을 처리하는데, 제어장치는 그 단계들이 클럭 신호에 맞춰 정확한 순서로 실행되도록 조율하는 역할을 한다.
예를 들어, 클럭 신호가 ‘틱’ 할 때 명령어를 가져오고, ‘톡’ 할 때 그 명령어를 해석한다.
클럭의 속도
◦ 클럭 신호의 속도는 주파수로 표현되는데, 주파수는 1초에 클럭이 몇 번 진동하는지를 나타낸다. 이를 헤르츠(Hz)단위로 측정하며, CPU에서 실행할 수 있는 초당 명령 수를 결정한다. 1GHz 는 1초에 10억번의 클럭 사이클이 발생한다는 의미이다.
◦ 주파수가 높을수록, 클럭 신호의 속도가 빠르다는 의미이며, 이는 더 많은 명령을 빠르게 처리할 수 있다.
연산장치(ALU, Arithmetic Logic Unit)
컴퓨터의 수학적 계산과 논리적 연산을 처리하는 장치이다.
- 기본 산술 연산
더하기, 빼기, 곱하기, 나누기 - 논리 연산(AND, OR, NOT)
두 값이 같은지(=), 더 큰지(>) 혹은 더 작은지(<)를 비교하거나 AND, OR, NOT과 같은 논리 연산을 처리한다. - 비트연산
두 값의 이진수 형태를 비교한다.
레지스터(Register)
CPU 내부에 있는 소형 고속 저용량 저장 장치이다. CPU가 데이터를 처리할 때 필요한 정보를 일시적으로 저장하는 역할을 한다.
특징
레지스터는 CPU와 바로 연결되어 있어 메모리에 접근하여 데이터를 불러오는 것보다 훨씬 빠른 속도로 데이터에 접근할 수 있다. 하지만 빠른 속도를 위해 용량이 매우 작으며, 보통 몇 비트에서 수십 비트 정도의 데이터만 저장할 수 있다.
주요 레지스터 종류
데이터 레지스터 : 연산장치가 연산을 수행할 때 필요한 숫자나 정보를 저장한다.
명령어 레지스터(IR, Instructioin Register) : 현재 실행 중인 명령어를 저장한다. CPU는 IR에서 명령을 읽고 해석한다.
주소 레지스터(MAR, Memory Address Register) : 메모리에서 데이터을 읽어오거나 데이터를 쓸(write) 때, 해당 메모리의 주소를 저장한다.
누산기(ACC, Accumulator) : 특수 레지스터로 연산장치가 계산을 끝낸 결과를 누산기에 저장한다.
CPU 내부 버스

CPU 내부에서 데이터를 주고 받는 연결통로이다. 즉, CPU 내부의 여러 부품들이 서로 소통할 수 있게 해주는 고속 통신로이다. 실제로는 여러 개의 전성 또는 회로로 이루어져있다. 버스가 얼마나 빠르게 데이터를 전달할 수 있느냐에 따라 CPU 처리속도가 결정된다.
-
데이터 버스(Data Bus)
실제 데이터를 전달하는 통로이다. CPU가 메모리에 접근할 때, 데이터를 주고받는 통로가 이 데이터 버스이다. [양방향] -
주소 버스(Address Bus)
메모리나 입출력 장치의 주소를 전달한다. 앞서 MAR에서 잠깐 언급했듯, CPU는 메모리에서 필요한 데이터를 읽거나 쓴다. 이 때 그 데이터 저장된 위치가 필요한데, 이 주소 버스가 CPU가 어디로 가야할 지 알려주는 역할을 한다. [일방향] -
제어 버스(Control Bus)
명령어와 상태 신호를 전달한다. CPU가 다른 장치과 통신할 때, 데이터와 주소만 주고는 것이 아니라 무엇을 할지에 대한 정보도 필요하다. 예를 들어, 데이터를 읽을 지, 쓸 지 혹은 장치가 준비가 된 상태인지 등을 제어버스를 통해 전달한다. [양방향]
02. 주기억장치란(Main Memory)
데이터를 저장하고 필요한 정보를 CPU가 빠르게 접근할 수 있도록 해주는 장치로 크게 RAM(Random Access Memory)과 ROM(Read Only Memory)이 있다. 메모리라는 용어는 보통 RAM를 지칭한다.
RAM(Random Access Memory)
휘발성 메모리로 CPU가 데이터를 즉시 처리할 수 있도록 임시로 저장하는 곳이다.
특징
- 휘발성: 전원이 꺼지면 데이터가 사라짐
- 고속 접근: CPU가 빠르게 데이터에 접근 가능
- 임시 저장: 현재 실행 중인 프로그램과 데이터를 저장
종류
- SRAM(Static RAM): 빠르고 안정적이지만 비싸고 용량이 작음 (캐시 메모리로 사용)
- DRAM(Dynamic RAM): 상대적으로 느리지만 저렴하고 용량이 큼 (주 메모리로 사용)
ROM(Read Only Memory
비휘발성 메모리로, 컴퓨터가 부팅될 때 필요한 기본적인 시스템 정보를 저장하는 장치이다.
특징
- 비휘발성: 전원이 꺼져도 데이터가 유지됨
- 읽기 전용: 일반적으로 데이터를 수정할 수 없음
- 시스템 부팅: BIOS/UEFI와 같은 펌웨어 저장
종류
- PROM: 한 번만 프로그래밍 가능
- EPROM: 자외선으로 삭제 후 재프로그래밍 가능
- EEPROM: 전기적으로 삭제 및 재프로그래밍 가능
03. 보조 기억장치(Secondary Memory)란?
앞서 언급한 주기억장치는 휘발성 메모리로 전원이 꺼지면, 데이터가 사라지고. 가격이 비싸기에 용량이 작다. 이를 보완하여 용량이 크고, 비휘발성인 저장 장치를 만들었는데, 이를 보조기억장치라고 한다.
종류
HDD(Hard Disk Drive): 자기 디스크를 이용한 전통적인 저장장치
SSD(Solid State Drive): 플래시 메모리를 이용한 고속 저장장치
CD-ROM/DVD/Blu-ray: 광학 디스크 저장장치
USB 드라이브: 휴대용 플래시 저장장치
04. 입출력장치
컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치를 의미한다.
입출력 장치 종류에는 :
- 마이크
- 스피커
- 프린터
- 마우스
- 키보드
QUESTION
Q. 보조기억장치도 컴퓨터 외부에 연결되어 있으면서 내부와 정보를 교환하는데, 그렇다면 보조기억장치도 입출력장치라고 할 수 있지 않나요?
A. 보조기억장치와 입출력장치를 ‘컴퓨터 주변에 붙여있는 장치’라는 의미에서 주변장치라 통칭하기도 한다. “보조기억장치는 입출력장치에 비해 메모리를 보조하는 역할을 수행한다.”정도로 이해하자!
2. 소프트웨어(Software)
컴퓨터 하드웨어가 작동하도록 명령을 내리는 프로그램과 데이터의 집합이다. 쉽게 말해서 컴퓨터를 움직이게 하는 설계도이자 명령어이다.
시스템 소프트웨어 (System Software)
운영체제와 같이 하드웨어를 관리하고 다른 소프트웨어가 동작할 수 있도록 환경을 제공한다.
ex) Windows, macOS, Linux, Android
응용 소프트웨어 (Application Software)
사용자가 특정 작업을 수행하도록 도와주는 소프트웨어이다.
ex) 웹 브라우저(Chrome), 워드 프로세서(MS Word), 게임, 메신저 등
미들웨어 (Middleware)
시스템 소프트웨어와 응용 소프트웨어 사이에서 데이터를 연결하고 호환성을 제공하는 소프트웨어이다.
ex) 데이터베이스 미들웨어, 메시지 큐
3.펌웨어
하드웨어의 동작을 제어하는 소프트웨어로, 하드웨어 내부에 내장되어 있다. 소프트웨어와 하드웨어의 중간 역할을 수행하여 하드웨어와 소프트웨어가 원활하게 동작할 수 있도록 돕는다. 하드웨어 초기화, 제어, 보안 강화 등의 기능을 담당하며, 플래시 메모리에 저장되어 업데이트를 통해 기능을 개선할 수 있다.
스마트폰 펌웨어
ex) 카메라, 센서, 배터리 등 하드웨어 장치를 제어하고 운영체제와 연동한다.
가전 제품
ex) TV, 세탁기, 전자레인지 등에서는 펌웨어가 기능을 제어하고 UI 화면을 표시한다.