- 컴퓨터 구성요소
- System Bus 종류
- Program
- Process
- 레지스터 존재 이유
- Memory
- HDD 특징
- SSD란
- FTL이란
- Processor 구성 요소
- CPU
- ISA
- Instruction 종류
컴퓨터 구성요소
- Processor
- Main Memory
- IO Module
- System bus
System Bus 종류
- Address Bus : 소스, 목적지 지정
- Data Bus : 데이터 전송
- Control Bus : R/W 같은 명령
Program
정의
Instruction과 Data의 집합
Disk에 Text와 Data가 저장되어 있는 이진 시퀀스이자 Passive Entity Program이 실행될 때 비로소 Process
**하나의 Program은 여러 개의 Process가 될 수 있음** (여러 User들이 같은 Program을 실행할 때)
Process
프로그램이 메모리로 적재되어 구동되는 것
정의
- 실행 가능한 Program이 Memory에 올라와서 실행시킬 수 있는 것
- 실행 시퀀스이자 Active Entity
- 현재 상태(Program + Stack)와 자원을 얼마나 사용하고 있는지, 명령을 실행하고 관리하는 Activity의 단위
기본 구성 요소
- Program Code
- 코드와 연관된 Data 집합
특성
- 실행 단위 ( Thread, Light Weight Process )
- 자원 소유권 단위 ( Process, Task )
레지스터 존재 이유
IO 처리 시간이 느리기 때문에 Memory Bus로의 접근을 최소화 하기 위해서
Memory
속도
Cache > Main Memory > Disk Memory 순으로 빠름
계층
Memory 계층이 높을 수록 빠르지만 비쌈
계층 목표
가장 낮은 수준의 메모리의 크기와 비용으로, 가장 높은 수준의 메모리의 속도를 가지는 것처럼 작동하는 가상 메모리를 제공하는 것
이를 달성하기 위해 Locality를 잘 활용해야 함
(차후 Cache에서 설명)
종류
SRAM
- Static RAM
- 6개의 트랜지스터가 1bit를 구성
- 가성비 비쌈
- 매우 빠름
- refresh 필요 X
DRAM
- Dynamic RAM
- 1개의 트랜지스터, 1개의 캐퍼시터로 1bit을 구성
- 가성비 쌈
- SRAM에 비해 느림
- refresh 필요
FLASH MEMORY
- Floating gate를 이용해서 구현
- 읽고 쓰는 속도 비대칭
- No in-place update (쓰려고 하는 섹터에 이미 데이터가 있었다면 수정 불가 => 지우고 써야 함)
- Non volatile( 전원 공급이 끊겨도 데이터 유지 )
flowchart TD; A(Memory) --> B(Non Volatile); A(Memory) --> C(Volatile); C(Volatile) --> D(SRAM); C(Volatile) --> E(DRAM); B(Non Volatile) --> F(Flash Memory);SRAM, DRAM 차이
구분 SRAM DRAM 1Bit 구성 6개 트랜지스터 1개 트랜지스터와 1개 캐퍼시터 용량 대비 가격 비쌈 쌈(상대적으로) 속도 빠름 느림(상대적으로) refresh 필요 유무 X O 휘발성 유무 O O Flash Memory 특징
- Floating gate를 이용해서 구현
- 읽고 쓰는 속도 비대칭
- No in-place update (쓰려고 하는 섹터에 이미 데이터가 있었다면 수정 불가 => 지우고 써야 함)
- 내구성 한계 (블럭마다 지우고 쓸 수 있는 횟수가 존재, 다 쓰면 해당 블럭 사용 불가 => 모든 블럭이 균등하게 유지되는게 좋음 => wear leveling)
- Non-Volatile (전원이 꺼져도 데이터가 유지됨)
HDD 특징
Hard Disk Drive
- 용량이 크다
- 충격에 약하다
- 느리다
SSD란
Flash Memory 기반으로 HDD처럼 사용하기 위해 FTL(Flash Translation Layer)로 Interface화 함
읽기 쓰기는 page 단위, 삭제는 block단위
Write amplication
FTL이란
host의 논리 주소를 ssd의 물리 주소로 변환
Processor 구성 요소
Algebra
Operator와 Operand의 집합 (연산자와 피연산자)
ALU
Arithmetic and Logical Unit : 수학적 계산을 처리하는 것
기타 레지스터들
CPU
정의
ALU를 포함한 Register와 Control Unit, Cache 등으로 Instruction을 수행하는 것
Memory에 올라온 Instruction을 처리하는 것특수 목적 레지스터
PC
Program Counter 다음 실행할 명령어의 주소를 가리킴
IR
Instruction Register
불러온 Instruction을 저장PSW
Program Status Word
프로그램의 상태 저장( kernel 모드인지, user 모드인지 등)MAR
Memory Address Register
불러올 메모리의 주소 저장MBR
Memory Buffer Register
메모리에서 가져온 값 저장
CPU 처리 단계
Fetch -> Execution -> Interrupt 체크의 반복
Fetch : 메모리로부터 IR 레지스터로 명령어를 가져다 놓는 것
ISA
Instrction Set Architecture
Instruction과 Machine State(Register, Memory)를 관리하는 프로그램에서 최하위 레벨의 API, 명령어 집합 구조
ISA마다 OPCode(명령어)와 Operand(피연산자)가 다르다
Instruction 종류
Data Processing
데이터를 처리하는 것
Control
if 문 등 분기 처리 하는 것
Processor-Memory
메모리에 접근하는 것
Processor-I/O
I/O에 접근하는 것