본문 바로가기

Computer Science/Computer Architecture

[Computer Architecture] 컴퓨터의 기본 구성

+ 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다.

컴퓨터(시스템)의 기본 구성

1. 사용자 (user)

 

2. 응용 소프트웨어 (application software)

 

- 예) 사무용, 그래픽용, 멀티미디어용, 게임용, 통신 및 네트워크 용 등

 

- 특정 목적을 갖는다. (앱, 프로그램)

 

3. 시스템 소프트웨어 (system software)

 

- 예) mac, windows, ios, android 등

 

- 컴퓨터 하드웨어를 움직이는 소프트웨어이다.

(응용 소프트웨어보다 컴퓨터 하드웨어에 더 가까이, 직접적으로 제어가 가능하다.)

 

- 응용 소프트웨어를 실행하기 위한 플랫폼 역할을 한다. (하드웨어와 응용 소프트웨어 사이에서 역할 수행)

=> 각 응용프로그램에서 공통적인 기능을 제공한다.

 

4. 하드웨어 (hardware) 


소프트웨어 (SW)

1. 좁은 의미: 컴퓨터가 일을 처리하기 위해 컴퓨터가 이해할 수 있는 언어로 작성한 명령어들의 집합

 

- '컴퓨터'라는 기계를 움직여 의미있는 일을 하게 할 수 있는 방법이다.

 

- 정보, 데이터의 이동 및 처리 방법(종류, 순서, 시간) 등을 지정한다.

 

2. 넓은 의미: 프로그램 + 데이터 + 관련 문서


하드웨어 (HW)

- 정보/데이터의 전송 및 처리가 실제 일어나는 물리적인 실체

 

1. 중앙처리장치 (Central Processing Unit: CPU)

- 프로세서(processor)라고도 불린다.

 

- 컴퓨터 시스템에 부착된 모든 장치(HW)의 동작을 제어하고 명령을 실행한다. (뇌)

 

- 제어장치 + 연산장치 + 레지스터 + CPU 내부버스(내부 장치들 사이의 통로)로 이루어져 있다.

(레지스터는 CPU안에 존재하는 메모리이다.)

 

- 메모리에서 명령어를 가지고 와서 + 명령어대로 실행하는 작업을 빠르게 반복한다. (Fetch + Execution)

 

- 예) 펜티엄 듀얼 코어 프로세서, 쿼드 코어 옵테론 등

 

2. 기억장치

1) 주기억장치 (Main Memory)

- CPU 가까이에 위치하여, CPU가 처리할 프로그램과 데이터를 일시적으로 저장한다.

 

- 반도체 기억장치 칩들로 구성되어있다.

 

- 주기억장치 = 교수님의 책상 (워크스페이스): 지금 작업을 할 때 필요한 것을 올려둔다

 

RAM(Random Access Memory) <=> Sequence Access: 연속적으로 접근해야한다.

- CPU가 처리할 명령어를 저장한다. 고속 액세스가 가능하다. (바로 접근이 가능하다.)

- 전원 공급이 중단되면 기억된 내용이 지워지므로, 일시적 저장만 가능하다. (휘발성, Volatile Memory)

 

ROM(Read-Only Memory)

- 데이터를 읽을 수만 있는 비휘발성 메모리이다. (수정이 불가하다.)

- 전원 공급이 중단되어도 기록된 내용이 보관된다. 

- 전원이 꺼졌을 때 없어지면 안되는 시스템 프로그램(예: Booting)을 전자회로에 기록한다.

   Booting: 보조기억장치에 저장된 OS를 주메모리에 올리는 과정 

- 전원을 켰을 때, CPU가 수행할 명령어가 저장되어있어야 하는 주메모리 RAM은 비어있다. 

   => ROM에 Bootloader (Bootstrap loader)란 프로그램을 저장해놓는다. (Firmware)

      (또는 BIOS를 ROM에 저장하여 HDD에 있는 Bootloader를 실행하기도 한다.)

 

- 예) RAM, ROM, DDR, SDRAM 등

 

2) 보조기억장치 (auxiliary storage device)

- 2차 기억장치 (secondary memory)로 읽기/쓰기 속도가 느리다.

 

- 저장 밀도가 높고, 비트 당 가격이 낮다.

 

- 영구 저장이 가능하다.

 

- 예) 하드 디스크, 플래시 메모리(횟수 제한 존재), CD-ROM 등

3. 입출력장치 ( I/O 장치)

- 사용자와 컴퓨터간의 대화를 위한 입력 및 출력 장치이다.

 

- 입력장치 예) 키보드, 마우스 등

- 출력장치 예) 프린터, LCD 모니터, 스피커 등

+ 유/무선 통신 네트워크 인터페이스 장치

 

4. 기타

- 예) 전원공급장치, 냉각 송풍기 등


컴퓨터 시스템의 개념적 구성 요소 (기능)

- 명령어, 데이터의 흐름: INPUT (입력) => [STORAGE (저장) <=> PROCESSING (처리)] => OUTPUT (출력)

 

- 장치의 흐름: 입력장치 -> memory => processor =>  출력장치

 

- 저장과 처리는 함께 빠르게 일어난다.


시스템 버스 (System Bus)

- CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로이다.

=> 실세계의 차량 도로에 비유가 가능하다. (버스의 전기신호 선 수 = 차선 수)

 

- 이진 시스템(binary system): 시스템 버스에서 전기가 지나가면 1,  지나가지 않으면 0로 표현한다.

 

1. 주소 버스 (address bus)

- CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합이다.

 

- 주소 선의 수는 CPU와 접속될 수 있는 최대 기억장치 용량을 결정한다.

- 예) 주소 버스의 비트 수가 16bit라면, 최대 2의 16제곱 개의 기억 장소의 주소 지정이 가능하다.

=> 주소값의 범위: 0 ~ 2의 16제곱 - 1

- 예) 주소 버스의 비트 수가 3bit일 때, 주소 하나의 크기가 2Byte라면 메모리 총 용량은 16Byte이다.

 

2. 데이터 버스 (data bus)

- CPU가 기억장치 혹은 I/O 장치와의 사이에 (주소 버스가 가진 주소 정보안의) 데이터를 전송하기 위한 신호 선들의 집합이다.

 

- 데이터 선의 수는 CPU가 한 번에 전송할 수 있는 비트 수를 결정한다.

- 예) 데이터 버스 폭이 16비트라면, CPU와 기억장치 간의 데이터 전송은 한 번에 16비트씩 가능하고, 2의 16제곱까지의 값을 나타낼 수 있다. 

 

3. 제어 버스 (control bus)

- CPU가 시스템 내의 각종 요소들의 동작 제어를 위한 신호 선들의 집합이다.

 

- 예) 기억장치 읽기/쓰기 신호 (Memory Read/Write), I/O 읽기/쓰기 신호 (I/O Read/Write), 인터럽트 신호 (Interrupt), 버스 제어 신호 (Bus Control) 등


CPU의  명령어 사이클

CPU가 한 개의 명령어를 실행하는 데 필요한 전체 처리 과정을 말한다.

 

- CPU가 프로그램 실행을 시작하는 순간부터 전원을 끄거나 회복 불가능한 오류가 발생하여 중단될 때까지 반복한다. 

 

- 2개의 부사이클(subcycle)로 분리되어있다.

 

인출 사이클 (fetch cycle)

- CPU가 억장치(메인 메모리)로부터 명령어를 읽어오는 단계이다.

 

실행 사이클 (execution cycle)

- CPU가 명령어를 해독하고 실행하는 단계이다.

 

- 인출 사이클보다 작업량이 더 많기 때문에 오늘날 컴퓨터는 실행 사이클을 다수의 단계로 분할한다.

 

1. 전송 연산

- CPU 내 레지스터와 메모리 사이에 데이터를 교환한다.

예) 적재(Load), 저장(Store)

 

2. 처리 연산

- 산술논리장치를 사용하여 데이터를 조작한다.

예) 산술연산, 논리연산, 데이터형식 변환 연산 등

 

3. 제어 연산

- 프로그램의 실행 순서를 제어한다.

예) 순차, 무조건 분기(조건과 관계없이 이동), 조건 분기(조건에 따라 이동). 프로시져 호출/복귀, 인터럽트

 

4. 입출력 연산 (전송 연산으로 볼 수 있다.)

- CPU 내 레지스터와 I/O장치 간에 데이터를 이동한다.