Q1 . RISC 와 CISC를 구분
CPU 설계 철학의 두 가지 큰 범주는 RISC 와 CISC로 구분이 가능하다.
범주안에 CPU 아키텍처는 CPU가 데이터를 처리하고 명령어를 실행하는 방식을 정의하는 설계 구조를 의미합니다.
CPU가 명령어를 해석하는 방식의 차이가 있기 때문에, 어셈블리어가 달라진다.
1 . CISC ( Complex Instruction Set Computing )
- 복잡한 명령어 세트를 사용하며, 한 명령어가 여러 작업을 수행할 수 있는 특징이 있습니다.
- x86은 CISC 기반의 대표적인 아키텍처로 주로 PC, Server에 사용됩니다.
- AMD, Intel은 CISC 설계의 대표적인 회사
- 장점 : 복잡한 작업을 적은 수의 명령어로 수행할 수 있어 소스 코드가 간결할 수 있습니다.
- 단점 : 명령어가 복잡하기 때문에 디코딩 과정에서 시간이 더 걸릴 수 있고, 전력 소모가 많으며 설계가 복잡합니다.
2 . RISC ( Reduced Instruction Set Computing )
- 단순한 명령어 세트를 사용하며, 명령어당 수행해야 할 작업을 줄여 처리 속도를 높이는 특징이 있습니다.
- ARM은 RISC 기반의 대표적인 아키텍처로 주로 스마트폰, IOT 기기, 태블릿에 사용됩니다
- Apple M1/M2 칩에도 사용됩니다.
- 장점 : 명령어가 단순하여 디코딩이 빠르고 에너지 효율이 좋습니다. 설계가 간단하여 비용이 낮아집니다.
예 ) x86 ADD 명령어
ADD [memory], register 는 메모리에서 값을 읽고, 레지스터의 값과 더한 후 다시 메모리에 저장하는 작업을 한번에 수행
- 명령어를 가져오는 (Instruction Fetch) 하는 작업 : cpu 는 PC (프로그램 카운터) 레지스터에 저장된 주소를 기반으로 명령어를 읽어옵니다. 읽어온 명령어는 CPU 내부에 명령어 캐시에 저장되어 효율적으로 재사용 됩니다
- 명령어 디코딩
- 명령어 실행
- 메모리 접근
- 결과 쓰기
Q2 . CPU 와 GPU 의 차이를 설명
1 . CPU
- Control unit ( 제어 유닛 ) : 명령어의 실행을 제어
- ALU : 산술 및 논리 연산을 수행
- Register : 데이터와 명령어를 임시로 저장
- 작업의 순차 처리에 최적화
2 . GPU
- 수만은 ALU ( 병렬 연산 장치 ) : 단순 계산을 병렬로 수행
- 메모리 : 데이터 병렬 처리를 위한 대량 데이터 저장
- 다수의 ALU를 포함하여 병렬 처리에 최적화
- 딥러닝은 주로 행렬 곱셈과 같은 대량의 수학적 연산으로 이루어짐, 이러한 연산은 독립적이므로 병렬처리가 가능
- GPU는 전력 대비 연산 성능 (FLOPS/Watt) 이 높아 대규모 연산에서 효율적
Q3 . TCP 혼잡 윈도우 ( Congestion Window ) 의 크기 변화 설명
TCP ( Transmission Control Protocol ) 은 인터넷에서 데이터를 신뢰성 있게 전달하기 위해 사용하는 전송 계층 프로토콜
TCP는 데이터의 정확성과 순서를 보장하기 위해 설계되었으며, HTTP, FTP, 이메일 같은 다양한 애플리케이션이 TCP 위에서 작동