+ 한국항공대학교 길현영 교수님의 컴퓨터구조론 과목 내용을 정리한 글입니다.
컴퓨터(시스템)의 기본 구성
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장치 간에 데이터를 이동한다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
[Computer Architecture] 명령어 집합 구조 (0) | 2023.09.18 |
---|---|
[Computer Architecture] 컴퓨터의 성능 (1) | 2023.09.10 |
[Computer Architecture] 컴퓨터의 발전 (종류) (2) | 2023.09.09 |
[Computer Architecture] 컴퓨터의 발전 (역사) (2) | 2023.09.04 |
[Computer Architecture] 컴퓨터 정보의 표현과 저장 (2) | 2023.09.04 |