컴퓨터 개론 (3강 - 2020.03.21)
컴퓨터의 구조
컴퓨터 시스템의 기본 구조
-
하드웨어 : 전자회로와 그 밖의 물리적인 장치로 구성 (CPU, RAM, ROM, Main Board…)
-
소프트웨어 : 하드웨어를 활용할 수 있는 기본적인 프로그램과 기술
- 시스템 소프트웨어 (운영 체제) : 컴퓨터를 효율적으로 운영하여 제어하기 위한 프로그램
- 응용 소프트웨어 : 특정 분야의 업무를 처리하기 위한 어플리케이션 (한글, 파워포인트)
-
펌웨어 : 하드웨어를 제어하는 가장 기본적인 프로그램 (부팅시 보는 BIOS 같은 것들)
컴퓨터의 내부 구조
: 중앙처리장치를 중심으로한 자료 신호와 명령 신호를 나타냄
-
입력 장치 (Input unit)
-
중앙처리장치 (Central Processing Unit)
- 연산장치 (Arithmetic logic unit) : 프로그램 지령에 의거해 산술연산과 논리연산등을 실행
- 제어장치 (Control unit) : 각 시점에서 실행해야 할 동작을 지시, 데이터의 흐름 제어
-
출력장치 (Output unit)
-
주기억장치 (Main memory) : 프로그램과 프로그램에 필요한 데이터, 실행 결과 데이터 등을 기억 (RAM)
-
보조기억장치 (Auxiliary memory) : 주기억장치는 전기신호가 들어와야 저장이 가능하므로,
주기억장치가 동작하지 않을때도 데이터를 기억해야기위해 존재
Stored Program : 폰노이만에 의해 고안되었으며, 메모리에 자료와 프로그램이 함께 저장된다.
중앙처리장치(CPU)
- 메모리에서 필요한 자료를 이용 (양방향 교환)
- 저장된 명령어를 순차적(Sequential)으로 실행
CPU <=> RAM Memory Address <- HDD(SSD) (OS에 의해 관리)
메모리에서 연산장치로 이동되는 순서
메모리 (명령어) -> Fetch 입출력 버스 (I/O Bus)
-> 버스 인터페이스 -> 컨트롤 유닛 -> ALU (연산장치)
명령어 (Instructioin)
연산 부분 (Operation part)
- 부분은 명령어가 수행해야 할 기능을 의미하는 코드
피연산 부분 (Operand part)
- 연산에 참여하는 자료를 의미하는 코드
명령어가 16비트로 구성될 때
15~12 Opcode (ADD)
11~0 Address (피연산자 1의 주소)
명령어 종류
명령어 | 구문형식 | 기능 |
---|---|---|
ADD | ADD A | 피연산자의 자료 A와 레지스터의 자료를 더하는 명령어 |
LDA | LDA B | 피연산자의 자료 B를 레지스터에 가져오는 명령어 |
STA | STA C | 레지스터의 내용을 피연산자 C에 저장하는 명령어 |
HLT | HLT | 컴퓨터를 종료하는 명령어 |
기억장치
주기억장치
- 메모리라고도 하며, 작업 내용인 프로그램 명령어와 프로그램에서 이용할 자료를 저장하는 장치
주소
- 메모리의 저장소는 주소(Address)를 이용하여 각각 바이트 단위로 고유하게 식별
- 여러 레지스터들이 존재하여 저장, 삭제등을 수행한다.
- 자료는 주로 워드 단위로 주기억장치와 중앙처리장치 사이를 이동한다. (워드는 OS에 따라 차이가 있다.)
버스
- 관련 자료 전달 경로
[ 주소 (address) ] [ 실제 메모리 ]
00000000 [ ]
00000004 [ ] <- 주소버스, 자료버스, 제어버스 -> 중앙처리장치나 다른 주변장치
00000008 [ ]
...
메모리의 종류
-
RAM
- SRAM
- DRAM
- PSRAM
- SDRAM
- DDR RAM
-
ROM
- MASK ROM
- PROM
- EPROM
- EEPROM
- UVEPROM
-
Flash 메모리
-
비메모리 (CPU, GPU)
RAM
- Random Access Memory, 임의 접근 메모리
- 전기가 휘발되면 소멸되는 소멸성 (volatile) 기억장치 (전원인가여부에 따라 휘발여부 결정)
- 쓰기와 읽기의 두 회로가 있어서 정보의 쓰기와 읽기가 가능
- 워드 작업하다가 하드에 저장안하면 날아가는게 다 RAM에서 작업되는 상태이기 때문.. (물론 과거이야기)
DRAM
: 동적 RAM
- 전원이 연결된 상태에서 일정한 주기마다 전기적으로 재충전 필요 (변압기)
- 주기억장치로 주로 사용 (SDRAM)
SRAM
: 정적 RAM
- 전원만 연결되어 있으면 정보가 지워지지 않는 기억장치
- 캐쉬 메모리 (Cache memory)에 주로 사용
ROM
- 읽기 전용 메모리, Read Only Memory
- 비 소멸성(nonvolatile) 메모리
- 읽기만 가능한 메모리
- Mask ROM, PROM (Programable ROM), EPROM (Erase Programable ROM), EEPROM (Electronic Erase Programable ROM)
- 기계 특성 정보와 컴퓨터가 전원공급을 받아 처음 수행해야 할 바이오스(BIOS : Basic Input/Output System) 프로그램 저장에 사용
Flash 메모리
- 메모리 셀들의 한 부분이 섬광(flash)처럼 단 한 번의 동작으로 지워질 수 있는 메모리
- RAM과 ROM의 장점을 가진 메모리
- 소비전력이 작은 비소멸성 메모리
- 정보의 입출력도 자유로워 카메라, 게임기등.. 널리 이용되는 기억장치
- 바이트 단위가 아닌 블록 단위의 주소 지정이 가능하며 쓰기 시간도 오래 걸림
캐시 메모리
- CPU에 비해 상대적으로 주변기기의 속도가 매우 느림
- 주기억장치와 CPU의 속도 차이를 해결하기 위해 등장
- 캐시 메모리는 메인 메모리보다 대개 약 10배이상 빠르다.
- 저장 속도가 빠르고 고가인 SRAM을 이용
캐시의 종류
[CPU (레지스터)]
<- [Level-1] 캐시
- [Level-2] 캐시
-> 주기억장치
<- 디스크 캐시
-> 디스크 저장 장치
메인 메모리 : 모든 캐시에 원하는 내용이 없을 때 접근 L1 캐시 : CPU Core와 소통하며, 가장 작고 빠르다. L2 캐시 : 상위 레벨 캐시의 내용을 모두 담고 있음 (중간 용량, 중간속 도) L3 캐시 : L2 캐시에서 쫓겨난 내용들을 담고 있음 (가장 큰 용량, 가장 느린 속도)
SSD라는 요즘에는 HDD와 메모리가 결함된 형태로 속도가 개선되어 나온 장치들도 있다. (메모리는 아님)
중앙처리장치
- 메모리에 저장된 프로그램과 자료를 이용하여 실제 작업을 수행하는 회로 장치
- 연산장치 : 자료의 연산을 수행
- 제어장치 : 컴퓨터의 작동을 제어
- 레지스터 : 연산에 필요한 자료를 임시로 저장
- 버스 : 자료버스, 제어버스
CPU 코어
- 명령어 실행에 필요한 CPU 내부의 핵심 하드웨어 (슈퍼스칼라) 모듈
- 각 CPU 코어는 시스템 버스와 캐쉬 공유
- 각 코어는 독립적으로 프로그램 실행
멀티 코어 프로세스
- 여러 개의 CPU 코어들을 하나의 칩에 포함시킨 프로세서
- 듀얼 코어 : 코어 2개, 쿼드 코어 : 코어 4개
- 코어가 크면 클수록 빠르지만, 열발생하고 집약하기 어려움이 있어서 비싸다.
연산장치 (Arithmetic and Logic Unit)
- 더하기, 빼기, 나누기, 곱하기 등의 산술연산
- NOT, AND, OR, XOR 등의 논리 연산을 수행하는 회로
레지스터의 이용
-
중앙처리장치의 임시기억장소인 누산 레지스터 (Accumulator)와 자료 레지스터(Data Register)에
저장된 자료를 연산에 참여할 피연산자로 이용 -
결과는 다시 누산 레지스터에 저장되어 필요하면 주기억장치에 저장되거나 다른 연산에 이용
-
예 AC <- AC + DR
제어장치
- 산술 및 논리 연산에 요구되는 작업을 연속적으로 수행하는 신호를 보냄으로써
연산장치와 레지스터가 명령을 수행하게 하는 장치
레지스터
- 중앙처리장치 내부에서 연산에 필요한 자료를 잠시 저장하기 위한 임시 기억장소
- 중앙처리장치는 컴퓨터가 명령을 수행하는 과정을 처리하기 위해 여러 개의 레지스터를 가짐
레지스터 심볼 | 레지스터 이름 | 기능 |
---|---|---|
DR | 자료 레지스터 (Data Register) | 연산에 필요한 피연산자를 저장하는 레지스터 |
AR | 주소 레지스터 (Address Register) | 현재 접근할 기억장소의 주소를 기억하는 레지스터 |
AC | 누산 레지스터 (Accumulator Register) | 연산장치의 입출력 데이터를 임시적으로 기억하는 레지스터 |
IR | 명령어 레지스터 (Instruction Register) | 현재 수행중인 명령어를 저장하고 있는 레지스터 |
PC | 프로그램 카운터 (Program Counter) | 다음에 실행할 명령어의 메모리 주소가 저장된 레지스터 |
TR | 임시 레지스터 (Temporary Counter) | 임시로 자료를 저장하는 레지스터로 범용레지스터라고도 부름 |
PC, 프로그램 카운터는 꼭 기억하기
기계주기
추출
-> 해독
-> 실행
추출 : 메모리에서 실행할 명령어를 추출
해독 : 명령 레지스터의 내용 해독
실행 : 명령 레지스터의 연산 실행
명령어 사이클
- 인출 사이클 (fetch cycle) : 주기억장치(RAM)으로부터 데이터 불러옴
- 실행 사이클 (execution cycle) : 읽어온 데이터 실행
- 간접 사이클 (indirect cycle) : 외부의 데이터를 불러오거나 하는 작업을 수행 (필요시)
- 간접 사이클 (interrupt cycle) : 잠시 하던일을 멈추고 다시 돌아갔다 옴
명령어 실행
[ 제어장치 ] [ 산술논리연산 장치 ]
인출(주기억장치: RAM) -> 해독 -> 처리 -> 저장(주기억장치: RAM)
명령어 인출 (Instruction fetch)
명령어 해독 (Instruction decode)
데이터 인출 (Data fetch)
데이터 처리 (Data processing)
데이터 저장 (Data store)
마이크로프로세서
-
여러 요인으로 마이크로프로세서의 성능이 결정됨
-
사이클 당 연산수 (클락수) : 1초당 진동의 반복 횟수를 재는 단위 (Hz)
(클럭소도와 연산 속도는 비레한다.)
(프로세서는 하나의 명령어를 특정 수의 클럭 사이클에서 실행할 수 있기 때문임) -
자료 버스의 폭 : 연산장치와 레지스터 등과 같은 CPU의 내부 구성 요소 간에 자료를 전달하는 통로의 비트 수
(자료 버스 폭은 마이크로프로세서의 워드 크기와 비례함)
(CPU 안에서 돌면 내부버스, 밖에서 돌면 외부 버스로 불림) -
레지스터의 수와 크기
-
코어 수
-
캐시 메모리 크기
무어의 법칙
- 마이크로 칩의 처리 능력은 18개월마다 2배로 증대된다.
- 마이크로프로세서의 성능은 약 18~24개월마다 2배로 증가한다.
메트칼프의 법칙
- 통신 네트워크의 가치는 참여자(접속 시스템) 수의 제곱에 비례한다.
명령어에 따른 프로세서 분류
- 복합 명령어 집한 컴퓨팅 계열 (CISC) : PC (범용)
- 축소 명령어 집합 컴퓨팅 계열 (RISC) : Play Station (전용)
CISC
-
명령어의 구조가 복잡하고 100~250개의 다양한 명령어를 제공
-
인텔의 80x86 계열과 모토롤라의 680x0 계열의 프로세서
-
복잡한 연산을 하나의 명령어로 처리하려는 의도에서 시작
-
CISC의 명령어는 복잡한 연산을 수행하기 위해 다양한 길이를 가지며
메모리의 자료를 직접 참조하는 연산도 많이 제공 -
장점
- 복잡한 프로그램을 적은 수의 명령어로 구성
-
단점
- 복잡한 명령어의 실행을 위한 복잡한 회로가 이용되므로 생산가가 비쌈
- 전력소모가 많아 열이 많이 발생
RISC
-
명령어의 수가 적고 그 구조도 단순함
-
레지스터 내부에서 모든 연산이 수행되며 메모리의 참조는 제한적임
-
상대적으로 레지스터가 많음
-
몀령어는 고정 길이이며 쉽게 해독이 되는 명령어 형식
-
1988년 중반 애플의 매킨토시에 장착된 모토로라의 PowerPC에서 처음
구현된 RISC 프로세서는 이후 Sun, HP, NEC의 워크스테이션 컴퓨터 -
장점
- 전체적으로는 RISC 프로세서는 CISC 프로세서보다 수행속도가 빠름
- 하나의 명령어가 단순하여 그 처리속도가 매우 빠름
-
단점
- 하나의 프로그램을 수행하려면 RISC 프로세서는 CISC보다 많은 명령어를 실행해야 함
CISC | 구분 | RISC |
---|---|---|
많고 복잡한 명령어 구조 | 명령어 구조 | 적고 단순한 명령어 구조 |
100~250개로 명령어 수가 많음 | 명령어 세트의 크기 | 레지스터 기반의 명령어들로서 명령어 수가 적음 |
가변 형식: 명령어당 16~64 비트 | 명령어 형식 | 고정 형식: 32비트 |
복잡함: 12~24개 | 주소 지정 모드 | 간단함: 3~5개 |
적은 레지스터: 8~24개 정도 느린 처리 속도 높은 호환성 |
레지스터 | 많은 레지스터: 32~192개 빠른 처리 속도 낮은 호환성 |
제어 메모리(ROM) 사용 | CPU 제어 방식 | 하드 와이어드(Hard-wirds) 방식 사용 |
명령어 파이프라이닝
- CPU 프로그램 처리속도를 높이기 위해 CPU 내부 하드웨어를 여러 단계로 나누어 병행 처리하도록 하는 기술
- 명령어 수행과 다음 명령어 인출을 동시에 수행
- 2단계 명령어 파이프라인
- 4단계 명령어 파이프라인
- 6단계 명령어 파이프라인
- 파이프라인에 의한 속도 향상
병렬 처리 시스템
- 처리 능력이 뛰어난 컴퓨터 시스템의 구현 방법
- 고성능의 단일 프로세서를 이용하여 시스템을 구성
- 다수의 프로세서를 사용하여 많은 연산을 동시에 수행하는 시스템을 구성
- 다수의 프로세서가 동시에 정보를 처리하는 것을 병렬 처리
- 단일 명령어 흐름, 단일 데이터 흐름
- 단일 명령어 흐름, 다중 데이터 흐름
- 다중 명령어 흐름, 단일 데이터 흐름
- 다중 명령어 흐름, 다중 명령어 흐름
마이클플린의 분류법
단일 명령어 흐름, 단일 데이터 흐름
- 하나의 명령어로 하나의 데이터를 처리하는 구조로서, 폰 노이만 구조에 해당
- 단일 처리기 시스템
단일 명령어 흐름, 다중 데이터 흐름
- 하나의 명령어로 다수의 데이터를 처리하는 구조
- 다중 처리기 시스템
- 백터 프로세서나 배열 프로세서 시스템
다중 명령어 흐름, 단일 데이터 흐름
- 다수의 처리장치들이 동일한 데이터에 대해 서로 다른 연산(명령어)을 실행하는 구조
- 파이프라인 구조와 결함 허용 시스템
다중 명령어 흐름, 다중 명령어 흐름
- 독립적으로 동작하는 다수의 처리장치들이 서로 다른 데이터에 대해 상이한 명령어를 동시에 처리하는 구조
- 공유 메모리 시스템과 분산 메모리 시스템