📌 CPU
: 기억,해석,연산,제어라는 4대 주요 기능을 하는 컴퓨터의 가장 핵심적인 중앙 처리 장치

✔️ 구성 요소
- ALU(Arithmetic Logic Unit)
: 각종 산술 연산과 논리 연산을 수행하는 회로들로 이루어진 하드웨어 모듈
: 가산기, 보수기, 누산기, 기억 레지스터, 데이터 레지스터 등으로 구성
- Control Unit
: 컴퓨터의 제어를 담당하며 IODevice, Memory, ALU등의 동작을 제어
: 구현 방식으로 고정 배선제어(Hardwired), Micro Program 방식이 있음
- Register set
: 내부에 위치한 기억 장치
: CPU에서 Memory로 이동하는 시간을 단축해 빠르게 데이터를 처리할 수 있게 해주는 장치
<레지스터의 종류>
더 자세한 내용 : 레지스터(Register)
-> PC(Program Counter) : 다음 실행할 명령어 주소를 가리키는 레지스터
-> IR(Instruction Register) : 현재 수행 중에 있는 명령어 부호를 저장하고 있는 레지스터
-> 누산기(ACC, Accumulator) : 데이터 일시 보관 레지스터 / 산술 및 논리 연산의 결과를 임시로 기억하는 레지스터
-> MAR(Memory Address Register)
: CPU가 메모리 참조하기 위해 보관하는 데이터 주소를 가진 레지스터
-> MBR(Memory Buffer Register)
: CPU가 메모리로부터 읽거나 저장 할 데이터 자체를 보관하는 레지스터
✔️ 명령어 수행 과정
: CPU 가 하나의 명령(Operation)을 처리하는 과정

1. 읽기(Fetch Instruction, FI)
- 실행할 명령어를 메모리에서 읽어 CPU로 가져옴
PC가 가리키는 주소 → MAR
MAR에 적힌 주소를 메모리(Memory)에서 읽어 → MBR
MBR에 있는 명령어 → IR 저장
다음 명령어를 가리키도록 PC 주소값 증가
2. 해석(Decode Instruction, DI)
- IR에 저장된 인출한 명령어를 해석을 해서 해당 명령어에 포함된 데이터를 가져오고 이 명령어(ex.10h)를 해독하는 과정
- 여기서 "인출한 명령어에 포함된 데이터를 가져온다" 를 CPU 명령어 구조로 파악하자면
- 실제로 메모리에는 명령어 메모리, 주소 메모리를 따로 가지고 있지는 않음. 그냥 하나의 메모리에 명령어와 필요한 주소 데이터, 즉 인자(Argument)를 작성 해놓음 (= 기본적으로 하나의 명령은 opcode + argument(operand) 구조)
- 그러면 실제로 이 부분은 아래 빨간 네모 박스처럼 RAM(메모리)에 저장되어 있음

- 위 그림에서 LOD A라는 명렁과 01h라는 주소가 00111110(OpCode)와 00000001(Operand, argument)처럼 2진수로 표현될 것임
- 이것을 16진수로 표현하면 3E, 01로 표현되며, RAM에 순차적으로 저장되어 있음
3. 실행(Execute Instruction, EI)
- 명령어 실행
- MBR의 데이터와 ACC(Accumulator)의 데이터로 연산 후, ACC(Accumulator)에 저장
4. 기록(Write Back, WB)
✔️ 명령어 처리 방식
1. CISC (Complex Instruction Set Computer)
: 하나의 기능에 해당하는 하나의 명령이 있는 개념
- 여러 사이클로 명령어를 처리
- 많은 명령어가 메모리를 참조하는 처리 방식
- 파이프라이닝의 사용이 어려움
- 복잡한 마이크로 프로그램 구조를 갖고 있음
RISC (Reduced Instruction Set Computer)
: 컴퓨터 내부적으로 사용하는 명령어 세트를 단순화 시켜서 처리하는 형태의 구조
: 단순한 명령을 조합해서 하나의 기능을 수행
- 하나의 사이클로 명령어를 처리
- 메모리 Load / Store 명령만 처리하는 방식
- 파이프라이닝, 슈퍼스칼라의 사용이 가능
- 복잡한 컴파일러 구조를 갖고 있음
📌 메모리
: 기억장치로서 컴퓨터에서 데이터를 일시적으로 또는 영구적으로 보존하는 장치
✔️ 종류
: 주 기억 장치(RAM, ROM) 와 보조 기억장치(HDD SSD)
⭐️ 주 기억 장치 (RAM, ROM)
-
RAM
1) SRAM (Static RAM)
- CPU 안에 포함되어 캐시 메모리라고도 함
- CPU와 DRAM의 속도 차이를 극복하기 위해 CPU와 DRAM 사이에 존재하는 고속 기억 장치
- 캐시 메모리 : 시간적, 공간적 지역성을 기반으로 가까운 미래에 접근될 확률이 높은 데이터를 미리 보관하는 것
- 전기가 남아있는 한 재생을 하지 않아도 메모리가 날아가지 않음
2) DRAM (Dynamic RAM)
- 흔히 말하는 메인메모리
- SRAM보다 속도는 느리지만 집적도를 높이기 쉬워 메모리 용량이 크고 SRAM보다 상대적으로 저렴
- 축전기(capacitor)로 이루어져있는 소자의 집합체
- 각각의 축전기가 담고 있는 전자의 수에 따라 전기신호를 1과 0으로 나타내는데, 축전기가 시간이 지나면 방전되기 때문에 일정 시간마다 재충전하여 데이터를 재생시켜야 함
- 메모리 자체에 지속적인 전기를 소모하고, 전기가 약해지면 순간적으로 데이터가 날아감
-
ROM
- 메인보드에 작은 부품으로, 내용을 읽을 수는 있어도 쓰기가 불가능한 메모리
- 비휘발성 메모리
- 공장에서 생산될 때 납땜되어 출하되기 때문에, 입출력을 처리하는 바이오스 등의 변경 가능성이 없는 소프트웨어를 기억시키는데 사용
⭐️ 보조 기억 장치 (SSD, HDD)
- SSD
- 플래시 메모리(SSD, USB)
- 데이터를 영구적으로 저장하는 비휘발성 대용량 기억장치
- 물리적인 디스크를 고속으로 회전시켜 데이터를 저장하는 장치
- 디스크에 물리적으로 저장하기 때문에 충격에 약하며, 소음이 발생
- HDD
- 자기 디스크(HDD, FDD)
- 반도체를 이용하여 데이터를 저장하는 기억장치
- HDD와 다르게 전기적으로 데이터를 저장하기 때문에 속도도 월등히 빠르고 소음 발생 X
- 가격은 좀 높지만, 전력 소모도 적고 소형화가 가능하여 최근에 많이 사용되고 있는 보조기억장치

📌 IO
- Input/Output의 약자로 컴퓨터에게 있어 인간의 오감과 같은 역할을 함
- Input : 마우스, 키보드, 카메라 등
- Output : 모니터, 스피커, 프린터 등
- In/Out : 네트워크, 저장매체 등
- CPU, 메모리 등 요소간에 Bus를 통해서 연결됨
- But, 병목현상이 일어날 수 있는 문제점에 최근엔 고속 시리얼 통신을 이용하기도 함
📌 Bus
- 시스템 내외부 모듈 사이에 데이터 전송을 위한 통신 링크 규약
- 병렬 직렬 연결 모두 가능
✔️ 장점 & 단점
- 장점
- 새로운 노드 추가가 용이
- 표준 규격의 범용성과 낮은 연결 비용
- 단점