1. 폰 노이만의 저장 프로그램
- 폰 노이만의 저장 프로그램(Stored Program)
1.1. 프로그램 내장 방식
-
개념
- 폰 노이만이 고안한 방식으로, 메모리에 데이터뿐만 아니라 프로그램(명령어)도 함께 저장하는 방식이다.
-
작동 원리
- 중앙처리장치(CPU)가 메모리에서 필요한 자료와 명령어를 가져와 순차적으로 실행한다.
-
장점
- 이전의 에니악(ENIAC) 처럼 작업 때마다 전기 회로를 물리적으로 바꿀 필요 없이, 메모리에 저장된 프로그램만 교체하면 된다.
1.2. 명령어 형식
- 명령어(Instruction) 형식
- 구성: 연산 부분(Opcode, 기능) + 피연산 부분(Operand, 데이터 주소)
- 16비트 구성 예시: 4비트(연산 종류) + 12비트(메모리 주소 또는 레지스터)
1.3. 저급 언어
-
기계어(Machine Language)
- 컴퓨터가 직접 이해하는 0과 1로 구성된 언어
-
어셈블리어(Assembly Language)
- 기계어를 사람이 이해하기 쉬운 기호(ADD, LDA, HLT 등)로 1:1 대응시킨 언어
2. 다양한 기억장치
2.1. 주기억장치의 구조
-
주소(Address)
- 메모리 저장소는 바이트 단위로 고유 식별 주소를 가진다.
- (워드 단위: 32비트 또는 64비트)
-
버스(Bus)
- CPU와 메모리, 입출력 장치 간의 데이터 전달 통로
- (주소 버스, 자료 버스, 제어 버스)
2.2. RAM
- RAM(Random Access Memory)
- 특징: 임의 접근 가능, 소멸성(Volatile, 전원 꺼지면 데이터 삭제), 읽기/쓰기 가능
- 종류
- DRAM(Dynamic RAM)
- 전원이 있어도 주기적 재충전 필요, 주로 주기억장치(SDRAM)로 사용
- SRAM(Static RAM)
- 전원 연결 시 데이터 유지, 속도가 빠름, 주로 캐시 메모리로 사용
- DRAM(Dynamic RAM)
2.3. ROM
- ROM(Read Only Memory)
- 특징: 읽기 전용, 비소멸성(Non-volatile)
- 종류
- Mask ROM(수정 불가)
- PROM(1회 기록)
- EPROM(자외선/X선으로 삭제 후 기록)
2.4. BIOS와 POST
-
BIOS
- 부팅을 위한 펌웨어, 전원 인가 시 하드웨어 점검(POST) 수행
-
POST
- 하드웨어 이상 유무 확인 후 이상 없으면 OS를 RAM에 로드
2.5. 캐시 메모리
- 캐시 메모리(Cache Memory)
- 목적: CPU(빠름)와 주기억장치(상대적으로 느림) 사이의 속도 차이 해결
- 특징: 고가/고속의 SRAM 사용, L1/L2 캐시 등이 있음
2.6. 버퍼
- 버퍼(Buffer)
- 목적: 속도 차이가 나는 두 장치 간의 효율적 처리를 위한 임시 저장 공간
- (주로 입출력 장치와 프로세서 사이)
- 목적: 속도 차이가 나는 두 장치 간의 효율적 처리를 위한 임시 저장 공간
2.7. 보조기억장치
-
HDD(Hard Disk Drive)
- 대용량, 비소멸성
- 헤드와 디스크(플래터)를 이용한 방식
-
SSD(Solid State Drive)
- 플래시 메모리 기반
- HDD 대비 고속, 저전력, 무소음, 내구성 우수
-
기타
- 외장하드, USB 메모리(휴대성, 플래시 메모리 기반)
2.8. 저장장치의 계층 구조
-
속도, 용량, 비용의 상관관계에 따라 계층화
-
계층
- 레지스터(CPU 내부, 가장 빠름)
- → 캐시 메모리(SRAM)
- → 주기억장치(DRAM)
- → 보조기억장치(HDD/SSD, 대용량)
3. 중앙처리장치(CPU)
3.1. 주요 구성 요소
-
연산장치(ALU)
- 산술 및 논리 연산 수행
- 누산기(AC)와 데이터 레지스터(DR) 등을 이용
-
제어장치(Control Unit)
- 명령어를 해석하고 각 장치에 신호를 보내 작업을 제어(인간의 뇌와 유사)
- 해독기(Decoder)와 제어기로 구성
-
레지스터(Register)
- CPU 내부의 초고속 임시 기억장소
-
버스
- 내부 자료 전달 경로
3.2. 주요 레지스터 종류
-
DR(Data Register)
- 피연산자 저장
-
AR(Address Register)
- 주소 기억
-
AC(Accumulator)
- 연산 결과 임시 저장
-
IR(Instruction Register)
- 현재 수행 중인 명령어 저장
-
PC(Program Counter)
- 다음에 실행할 명령어의 주소 저장
4. 프로그램 실행 과정
4.1. 명령어 처리 과정
- 주기억장치 → 레지스터로 명령어/자료 전송 → CPU 처리 → 결과 주기억장치 전송
4.2. 기계 주기
- 기계 주기(Machine Cycle)
- 인출(Fetch): PC가 가리키는 주소의 명령어를 가져와 IR에 저장 (PC 값 증가)
- 해독(Decode): 제어장치가 명령어를 해석
- 실행(Execute): 각 구성 요소에 작업 지시 및 연산 수행
4.3. 실행 예시
두 정수의 합 구하기
-
고급 언어
C <- A + B
-
저급 언어 처리
LDA A: 메모리 A의 값을 누산기(AC)로 가져옴ADD B: 메모리 B의 값을 가져와 AC 값과 더함STA C: AC의 결과값을 메모리 C 주소에 저장HLT: 종료
5. 마이크로프로세서
5.1. 성능 결정 요소
-
자료 버스 폭
- CPU가 한 번에 처리할 수 있는 데이터 크기(워드 크기)
- 레지스터 크기와 비례 (예: 64비트 프로세서).
- 병목 현상: 레지스터는 큰데 버스 폭이 좁으면 성능 저하 발생
-
클럭 속도(Hz)
- 초당 진동 횟수, 연산 속도와 비례
-
병렬 처리
- 멀티 코어 등을 이용해 여러 명령어 동시 실행
5.2. 마이크로프로세서의 발전
-
인텔(Intel)
- 4004(최초) → 8088(IBM PC) → 펜티엄(64비트 버스) → 코어 i시리즈
-
무어의 법칙
- 마이크로 칩의 처리 능력(저장 용량)은 18개월마다 2배로 증대된다.
- (최근엔 물리적 한계로 인해 성능보다는 효율/기능 중심으로 변화)
5.3. 프로세서 분류
| 구분 | CISC(Complex Instruction Set) | RISC(Reduced Instruction Set) |
|---|---|---|
| 특징 | 복잡하고 많은 명령어 집합 (100-250개) | 축소된 명령어 집합, 단순한 구조 |
| 대표 예 | 인텔 x86 계열 (PC) | ARM, PowerPC (스마트폰, 워크스테이션) |
| 명령어 | 가변 길이, 복잡한 연산 가능 | 고정 길이, 단순 명령 |
| 장점 | 적은 수의 명령어로 프로그램 작성 가능 | 명령어 처리 속도가 매우 빠름 (파이프라이닝 유리) |
| 단점 | 회로 복잡, 발열/전력 소모 많음, 비쌈 | 코드 양이 많아질 수 있음 |