Study/컴퓨터구조, MicroProcessor

[컴퓨터 구조] 01 - 프로세서 아키텍쳐, 메모리, 명령어

도엔 2025. 2. 2. 13:27
728x90

1. 프로세서

  1. 프로세서란?
    • 명령어(Instruction)를 해석하고 실행하는 장치
    • 기본적으로 입력/출력 장치(I/O), 메모리, 연산 장치(ALU), 제어 장치(Control Unit)로 구성됨
    • ISA (Instruction Set Architecture, 명령어 집합 구조): 프로세서가 실행할 수 있는 명령어의 집합을 정의함.
  2. 주요 구성 요소
    • PC (Program Counter): 현재 실행할 명령어의 주소를 저장
    • IR (Instruction Register): 현재 실행 중인 명령어를 저장
    • ALU (Arithmetic Logic Unit): 산술 및 논리 연산을 수행
    • Registers: 연산을 위한 임시 데이터 저장 공간
    • Memory Interface: 명령어 및 데이터를 메모리와 교환하는 역할

-

2. 메모리 구조 및 데이터 저장 방식

  1. 메모리의 역할
    • 데이터를 저장하고, CPU가 필요할 때 불러와 사용
    • 비트(bit) 단위로 정보를 저장하지만, 실제 연산은 바이트(byte) 또는 워드(word) 단위로 수행됨
    • 메모리는 주소(address)로 구분되며, 각각의 바이트에 고유한 주소가 할당됨
  2. 메모리의 종류
    • SRAM (Static RAM): 6개의 트랜지스터로 구성된 셀, 빠르지만 가격이 비싸고 용량이 작음, 전원이 공급되는 한 데이터를 유지할 수 있음.
    • DRAM (Dynamic RAM): 커패시터를 사용, 저렴하고 집적도가 높지만 주기적인 refresh 필요
    • Flash Memory: 플로팅 게이트 트랜지스터 사용, 비휘발성 메모리, 데이터를 오래 저장할 수 있음. 높은 밀도로 데이터를 저장할 수 있어 대용량 저장에 적합
  3. 메모리 계층 구조
    • 캐시 메모리 (Cache Memory): CPU 내부에 있으며, 속도가 빠르지만 용량이 작음
    • 주기억장치 (Main Memory, RAM): 실행 중인 프로그램과 데이터를 저장
    • 보조기억장치 (Secondary Storage): HDD, SSD 같은 대용량 저장 장치

-

3. 명령어와 실행 과정

  1. 명령어의 구조
    • 프로세서는 명령어(Instruction)를 해석하여 실행함
    • 명령어는 일반적으로 연산 코드(Opcode) + 오퍼랜드(Operands)로 구성됨
    • 32비트 프로세서에서는 하나의 명령어가 32비트로 표현됨
  2. 기본 명령어 종류
    • Load: 메모리에서 데이터를 읽어와 레지스터에 저장
    • Store: 레지스터 데이터를 메모리에 저장.- Operate: ALU를 사용하여 연산 수행 (예: ADD, SUB)
  3. 명령어 실행 과정 (Fetch-Decode-Execute 사이클)
    • Fetch (가져오기): PC가 가리키는 주소에서 명령어를 가져와 IR에 저장
    • Decode (해석): IR의 내용을 분석하여 어떤 연산을 수행할지 결정
    • Execute (실행): ALU에서 연산을 수행하고 결과를 저장
    • PC 업데이트: 다음 명령어의 주소를 설정.
  4. 명령어 실행 예제 (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. 주소 지정 방식 및 데이터 저장

  1. 주소 지정 방식 (Addressing Mode)
    • 데이터를 메모리에서 가져오거나 저장하는 방법을 정의
    • 레지스터 직접 방식, 즉시 값 방식, 메모리 직접 방식 등 여러 가지 방식이 있음
  2. 데이터 저장 단위
    • 메모리는 바이트 단위로 관리되지만, 프로세서는 보통 워드(word) 단위로 처리함
    • 32비트 프로세서에서는 1 워드 = 4 바이트
    • 다음 명령어의 주소는 현재 주소 + 4의 방식으로 증가함

-

5. 프로그램 실행과 흐름 제어

  1. 직선적 실행 (Straight-Line Execution)
    • 기본적으로 명령어는 순차적으로 실행됨
    • PC(Program Counter)가 다음 명령어의 주소를 자동으로 증가시키면서 실행
  2. 분기 (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).
  3. 반복문 (Loop) – 일정 횟수 반복 실행
    • 특정 조건이 만족될 때까지 반복 실행
    • 예제: 리스트의 모든 숫자 더하기
    • LOOP: LOAD R2, A ADD R4, R4, R2 SUB R3, R3, #1 BGT R3, #0, LOOP
    • R3 값이 0이 될 때까지 LOOP 블록을 반복 실행.

-

6. 프로세서 아키텍처 (RISC vs. CISC)

  1. RISC (Reduced Instruction Set Computer, 단순 명령어 집합 컴퓨터)
    • 명령어가 간단하고 고정된 길이 (32비트)
    • 연산을 수행하기 전에 반드시 데이터를 레지스터로 로드해야 함 (Load/Store Architecture)
    • 예) ARM, MIPS
  2. CISC (Complex Instruction Set Computer, 복잡한 명령어 집합 컴퓨터)
    • 명령어가 복잡하고 길이가 가변적
    • 하나의 명령어로 여러 작업을 수행 가능
    • 예) x86 (Intel, AMD 프로세서에서 사용됨)

-

7. 추가 개념 – 컴퓨터 성능 및 발전

  1. 컴퓨터 성능 요소
    • 프로세서의 속도 (클럭 속도, GHz)
    • 메모리 접근 시간 (Cache, RAM 속도)
    • 명령어 집합 설계 (ISA의 효율성)
    • 병렬 처리 (멀티코어, 파이프라이닝, SIMD, MIMD)
  2. 프로세서 발전 역사
    • Intel 4004 (1971): 최초의 4비트 마이크로프로세서
    • Intel 8086 (1978): 16비트 CPU, x86 아키텍처의 시작
    • Intel 80386 (1985): 최초의 32비트 x86 프로세서
    • ARM Cortex 프로세서: 모바일 및 임베디드 시스템에서 주로 사용됨

-

  • 정리
    • 프로세서의 기본 원리와 메모리 구조를 이해하는 것이 중요함
    • 명령어 실행 과정과 프로그램 흐름 제어 방식 (분기, 반복) 익히기
    • RISC와 CISC의 차이점과 현대 프로세서 아키텍처 이해하기
728x90
반응형