728x90
1. 프로세서
- 프로세서란?
- 명령어(Instruction)를 해석하고 실행하는 장치
- 기본적으로 입력/출력 장치(I/O), 메모리, 연산 장치(ALU), 제어 장치(Control Unit)로 구성됨
- ISA (Instruction Set Architecture, 명령어 집합 구조): 프로세서가 실행할 수 있는 명령어의 집합을 정의함.
- 주요 구성 요소
- PC (Program Counter): 현재 실행할 명령어의 주소를 저장
- IR (Instruction Register): 현재 실행 중인 명령어를 저장
- ALU (Arithmetic Logic Unit): 산술 및 논리 연산을 수행
- Registers: 연산을 위한 임시 데이터 저장 공간
- Memory Interface: 명령어 및 데이터를 메모리와 교환하는 역할
-
2. 메모리 구조 및 데이터 저장 방식
- 메모리의 역할
- 데이터를 저장하고, CPU가 필요할 때 불러와 사용
- 비트(bit) 단위로 정보를 저장하지만, 실제 연산은 바이트(byte) 또는 워드(word) 단위로 수행됨
- 메모리는 주소(address)로 구분되며, 각각의 바이트에 고유한 주소가 할당됨
- 메모리의 종류
- SRAM (Static RAM): 6개의 트랜지스터로 구성된 셀, 빠르지만 가격이 비싸고 용량이 작음, 전원이 공급되는 한 데이터를 유지할 수 있음.
- DRAM (Dynamic RAM): 커패시터를 사용, 저렴하고 집적도가 높지만 주기적인 refresh 필요
- Flash Memory: 플로팅 게이트 트랜지스터 사용, 비휘발성 메모리, 데이터를 오래 저장할 수 있음. 높은 밀도로 데이터를 저장할 수 있어 대용량 저장에 적합
- 메모리 계층 구조
- 캐시 메모리 (Cache Memory): CPU 내부에 있으며, 속도가 빠르지만 용량이 작음
- 주기억장치 (Main Memory, RAM): 실행 중인 프로그램과 데이터를 저장
- 보조기억장치 (Secondary Storage): HDD, SSD 같은 대용량 저장 장치
-
3. 명령어와 실행 과정
- 명령어의 구조
- 프로세서는 명령어(Instruction)를 해석하여 실행함
- 명령어는 일반적으로 연산 코드(Opcode) + 오퍼랜드(Operands)로 구성됨
- 32비트 프로세서에서는 하나의 명령어가 32비트로 표현됨
- 기본 명령어 종류
- Load: 메모리에서 데이터를 읽어와 레지스터에 저장
- Store: 레지스터 데이터를 메모리에 저장.- Operate: ALU를 사용하여 연산 수행 (예: ADD, SUB)
- 명령어 실행 과정 (Fetch-Decode-Execute 사이클)
- Fetch (가져오기): PC가 가리키는 주소에서 명령어를 가져와 IR에 저장
- Decode (해석): IR의 내용을 분석하여 어떤 연산을 수행할지 결정
- Execute (실행): ALU에서 연산을 수행하고 결과를 저장
- PC 업데이트: 다음 명령어의 주소를 설정.
- 명령어 실행 예제 (A + B = C 연산)
- 프로세서는 메모리에서 데이터를 직접 연산하지 않음
- 먼저 데이터를 레지스터로 로드(LOAD) 한 후, 연산을 수행하고 결과를 다시 메모리에 저장(STORE)
LOAD R2, A ; 메모리 위치 A에서 데이터를 읽어와 R2에 저장
LOAD R3, B ; 메모리 위치 B에서 데이터를 읽어와 R3에 저장
ADD R4, R2, R3 ; R2와 R3의 값을 더해 R4에 저장
STORE R4, C ; R4의 값을 메모리 위치 C에 저장
-
4. 주소 지정 방식 및 데이터 저장
- 주소 지정 방식 (Addressing Mode)
- 데이터를 메모리에서 가져오거나 저장하는 방법을 정의
- 레지스터 직접 방식, 즉시 값 방식, 메모리 직접 방식 등 여러 가지 방식이 있음
- 데이터 저장 단위
- 메모리는 바이트 단위로 관리되지만, 프로세서는 보통 워드(word) 단위로 처리함
- 32비트 프로세서에서는 1 워드 = 4 바이트
- 다음 명령어의 주소는
현재 주소 + 4
의 방식으로 증가함
-
5. 프로그램 실행과 흐름 제어
- 직선적 실행 (Straight-Line Execution)
- 기본적으로 명령어는 순차적으로 실행됨
- PC(Program Counter)가 다음 명령어의 주소를 자동으로 증가시키면서 실행
- 분기 (Branching) – 조건에 따른 실행 흐름 변경
- 특정 조건에 따라 실행할 명령어를 변경하는 기능
- 예제)
if (x > 10) then A; else B;
- 조건이 참이면 A를 실행하고, 거짓이면 B를 실행 - 사용되는 분기 명령어: BEQ (Branch if Equal), BNE (Branch if Not Equal), BGT (Branch if Greater Than), BLT (Branch if Less Than).
- 반복문 (Loop) – 일정 횟수 반복 실행
- 특정 조건이 만족될 때까지 반복 실행
- 예제: 리스트의 모든 숫자 더하기
LOOP: LOAD R2, A ADD R4, R4, R2 SUB R3, R3, #1 BGT R3, #0, LOOP
- R3 값이 0이 될 때까지 LOOP 블록을 반복 실행.
-
6. 프로세서 아키텍처 (RISC vs. CISC)
- RISC (Reduced Instruction Set Computer, 단순 명령어 집합 컴퓨터)
- 명령어가 간단하고 고정된 길이 (32비트)
- 연산을 수행하기 전에 반드시 데이터를 레지스터로 로드해야 함 (Load/Store Architecture)
- 예) ARM, MIPS
- CISC (Complex Instruction Set Computer, 복잡한 명령어 집합 컴퓨터)
- 명령어가 복잡하고 길이가 가변적
- 하나의 명령어로 여러 작업을 수행 가능
- 예) x86 (Intel, AMD 프로세서에서 사용됨)
-
7. 추가 개념 – 컴퓨터 성능 및 발전
- 컴퓨터 성능 요소
- 프로세서의 속도 (클럭 속도, GHz)
- 메모리 접근 시간 (Cache, RAM 속도)
- 명령어 집합 설계 (ISA의 효율성)
- 병렬 처리 (멀티코어, 파이프라이닝, SIMD, MIMD)
- 프로세서 발전 역사
- Intel 4004 (1971): 최초의 4비트 마이크로프로세서
- Intel 8086 (1978): 16비트 CPU, x86 아키텍처의 시작
- Intel 80386 (1985): 최초의 32비트 x86 프로세서
- ARM Cortex 프로세서: 모바일 및 임베디드 시스템에서 주로 사용됨
-
- 정리
- 프로세서의 기본 원리와 메모리 구조를 이해하는 것이 중요함
- 명령어 실행 과정과 프로그램 흐름 제어 방식 (분기, 반복) 익히기
- RISC와 CISC의 차이점과 현대 프로세서 아키텍처 이해하기
728x90
반응형