컴퓨터 구성요소: 하드웨어와 소프트웨어
컴퓨터 구조는 컴퓨터 시스템의 기본적인 구조와 동작원리를 배우는 이론입니다.
컴퓨터 시스템
컴퓨터 시스템은 크게 하드웨어(Hardware)와 소프트웨어(Software)로 구분할 수 있습니다. 하드웨어는 컴퓨터 시스템이 작동하는데 필요한 물리적 구성 요소이고 소프트웨어는 컴퓨터 동작 방법을 지시하는 명령어 집합입니다.
컴퓨터 정보 처리 방식
컴퓨터는 0과 1로 표현된 정보만을 이해할 수 있습니다. 따라서 컴퓨터에 입력되는 정보는 크게 데이터(Data), 명령어(Instruction) 두 가지 종류로 나눌 수 있습니다.
- 데이터(Data)
- 컴퓨터가 이해하거나 표현해야 하는 정보
- 숫자, 이미지, 동영상 등과 같은 정적인 정보를 의미
- 명령어(Instruction)
- 컴퓨터가 특정 동작을 수행시키는 작은 단위
- 명령어는 동작코드와 오퍼랜드로 구성
- 동작코드(Op-code): 각 명령어의 실행 동작을 구분하여 표현
- 오퍼랜드(Operand): 명령어의 실행에 필요한 자료나 실제 자료의 저장 위치를 의미
하드웨어
컴퓨터의 핵심 부품으로는 총 4가지인 CPU(중앙처리장치), Memory, 보조기억장치, 입출력장치(I/O)가 있습니다. 이들은 시스템 버스로 연결되어 있으며 시스템 버스는 데이터와 명령 제어 신호를 각 장치로 실어나르는 역할을 합니다.
CPU(중앙처리장치)
컴퓨터 시스템의 동작을 제어하고 데이터 처리를 수행하는 장치로서, 입력장치에서 데이터를 입력받아 처리한 후 출력장치와 기억장치로 데이터를 전달합니다. CPU의 내부 구성 요소는 크게 산술/논리 연산 장치(ALU)와 제어 장치, 레지스터, 내부버스로 나눌 수 있습니다.
이 중 레지스터는 CPU가 처리하는 명령어를 반드시 저장하는 장치로, 레지스터 값만 잘 관찰하면 프로그램이 어떻게 실행되는지 가장 낮은 단계에서 파악할 수 있기 때문에 중요한 역할을 합니다.
- 연산장치(ALU): 산술연산(사칙연산)과 논리연산(참과 거짓 판단)을 수행하는 장치
- 제어장치(CU): CPU 내부에서 일어나는 모든 작업 통제 및 관리
- 레지스터(Register): 연산 중간 값, 명령어 등 일시적으로 저장하는 임시 기억 장치
- 내부버스(Internal Bus): CPU 내부의 구성요소 간 데이터 전달과 연결을 위한 경로
Memory
프로그램이 실행되려면 해당 프로그램의 명령어와 데이터가 메모리에 저장되어야 합니다. 이때 메모리 내에서 저장된 정보의 위치를 나타내는 개념이 주소입니다. 주소를 통해 원하는 메모리 위치에 접근하여 값을 저장하거나 읽어올 수 있습니다. 하지만 메모리는 휘발성 저장장치로 전원이 꺼지면 저장된 내용이 사라집니다. 또한 가격이 비싸고 저장 단위당 비용이 크다는 단점이 있습니다.
- 메모리 종류
- RAM(Random Access Memory)
- 주기억장치로, 컴퓨터에서 현재 실행 중인 프로그램과 데이터를 저장하는데 사용
- 휘발성 메모리이므로 전원이 꺼지면 저장된 내용 사라짐
- 컴퓨터에서 작업을 처리하는 동안 빠르게 데이터를 읽고 쓸 수 있음
- ROM(Read-Only Memory)
- 주기억장치에 속하지만 읽기 전용으로 설계되어 있으며 주로 시스템의 기본적인 동작을 수행하는 프로그램을 저장
- 비휘발성 메모리로 전원이 꺼져도 저장된 내용이 사라지지 않으며 일반적으로 내용이 변경 불가
- RAM(Random Access Memory)
보조기억장치
메모리는 휘발성 저장장치로, 컴퓨터의 전원이 꺼지면 저장된 모든 정보가 사라집니다. 이를 보조하기 위해 보조기억장치를 사용합니다. 보조기억장치는 비휘발성 저장장치로, 전원이 꺼져도 저장된 정보가 사라지지 않습니다. 메모리가 현재 실행중인 프로그램을 저장한다면 보조기억장치는 프로그램을 보관하는 역할을 합니다. 다만, 유의할 점은 CPU가 보조기억장치에 저장된 프로그램을 직접 실행할 수 없다는 점입니다. 프로그램을 실행하려면 보조기억장치에서 프로그램을 메모리로 복사한 후 실행해야 합니다.
- 보조기억장치 종류
- 자기 디스크
- 원판 표면의 철 입자의 방향(N/S극)으로 0과 1을 표현
- 디스크 드라이브는 자기 디스크로부터 데이터를 읽는 주변 장치를 의미
- 자기 디스크에는 플로피 디스크(FDD)와 하드 디스크(HDD)가 포함
- 광 디스크
- 빛의 반사를 이용하여 자료를 읽어내는 저장 매체
- 1세대 CD, 2세대 DVD, 3세대 블루레이 디스크가 있으며, 차세대 디스크로는 테라 디스크와 HVD 등이 해당
- 플래시 메모리
- 전자적으로 데이터를 지우고 쓸 수 있는 비휘발성 메모리로 충격에 강하여 휴대용 기기에 널리 사용
- USB, SSD가 해당하며 SSD는 HDD와 달리 디스크, 헤더와 같은 기계적 장치는 빠졌지만 저전력, 저소음, 저중량이라는 특징
- 자기 디스크
입출력장치(I/O)
컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 주고받는 장치입니다.
- 입력장치: 외부에서 컴퓨터로 데이터를 입력하는 역할
- ex. 마우스, 키보드, 마이크
- 출력장치: 컴퓨터가 처리한 결과를 외부 사용자에게 전달하는 역할
- ex. 모니터, 프린트, 스피커
메인보드(Main Board)
위의 핵심부품들을 포함해 여러 컴퓨터 부품들과 연결되는 판으로 연결하기 위한 슬롯과 연결 단자들이 존재합니다. 마더보드(Mother Board)라고도 불립니다. 연결된 부품들은 메인보드 내부의 버스라는 통로를 통해 서로 정보를 교환할 수 있습니다.
시스템 버스(System Bus)
버스(Bus)는 컴퓨터 부품 간의 데이터 전송 경로입니다. 다양한 종류의 버스가 존재하며 그 목적에 따라 나눠집니다.
- 주소버스(Add Bus)
- 기억장치의 주소 또는 입출력 장치의 포트번호 전달
- 중앙처리장치가 기억장치나 입출력장치로 데이터를 전달하는 통로이기 때문에 단방향 버스
- 데이터 버스(Data Bus)
- 중앙처리장치와 기타 장치 사이에서 데이터를 전달하는 역할
- 기억장치와 입출력장치의 명령어와 데이터를 중앙처리장치로 보내거나 중앙처리장치의 연산 결과를 기억장치와 입출력장치로 보내는 양방향 버스
- 제어 버스(Control Bus)
- 중앙처리장치가 기억장치나 입출력장치에 제어 신호를 전달하는 통로
- 제어 신호에는 기억장치 읽기 및 쓰기, 버스 요청 및 승인, 인터럽트 요청 및 승인, 클락, 리셋 등 해당
- 읽기 동작과 쓰기 동작을 모두 수행하기 때문에 양방향 버스
소프트웨어
컴퓨터가 일을 처리할 수 있도록 만들어진 명령어들의 집합입니다.
- 시스템 소프트웨어
- 사용자가 컴퓨터를 효율적으로 사용하기 위해 여러 컴퓨터 시스템에서 공통적으로 필요한 프로그램
- 운영 체제, 컴파일러, 어셈블러, 링커 등 해당
- 응용 소프트웨어
- 응용 분야에서 특정 목적을 위해 사용하는 프로그램
- 워드프로세서, 스프레드시트, 웹브라우저 등이 해당