[컴퓨터과학] Computer 기초 - CPU 구조 & Memory 계층 구조

Kyung Jae, Cheong·2024년 11월 1일
post-thumbnail

Computer 기초 - CPU & Memory 구조

1. 메모리 계층 이해하기

메모리 계층속도, 용량, CPU와의 거리 등에 따라 메모리를 단계별로 나눈 구조입니다.

  • CPU에 가까운 메모리일수록 속도가 빠르고 용량이 적습니다.
  • 멀리 있는 메모리일수록 속도는 느리지만 대용량 데이터를 저장할 수 있습니다.

1.1 메모리 계층의 단계

  1. 레지스터: CPU 내부에 위치한 가장 빠른 메모리로, 연산에 필요한 데이터를 즉각적으로 저장하고 불러옵니다. 용량은 매우 작습니다.
  2. 캐시 메모리 (L1, L2, L3): 캐시는 CPU와 주 메모리(RAM) 사이에 위치하여 자주 사용하는 데이터를 저장하고 CPU가 빠르게 접근할 수 있도록 돕습니다. L1이 가장 작고 빠르며, L3는 크지만 상대적으로 느립니다.
  3. 주 메모리(RAM): 프로그램 실행과 데이터 저장의 작업 공간으로, 캐시보다 용량이 크고 접근 속도는 느립니다.
  4. 보조 기억장치(SSD/HDD): 장기적인 데이터 저장에 사용되는 장치로, RAM보다 속도는 느리지만 매우 큰 용량을 제공합니다.

1.2 메모리 계층별 Access Time (처리 속도)

  • Register : 1 cycle
  • Cache
    • L1 : 2 cycle
    • L2 : 10 cycle
    • L3 : 40 cycle
  • Memory(RAM) : 200 cycle
  • Storage
    • SSD : 10 us
    • HDD : 10 ms

2. CPU의 기본 구조

CPU는 명령어 실행과 데이터 흐름을 관리하는 핵심 구성 요소를 포함하고 있습니다.

  • PC (프로그램 카운터): 다음에 실행할 명령어의 주소를 가리킵니다.
  • IR (명령어 레지스터): 가장 최근에 인출한 명령어를 저장합니다.
  • ACC (누산기): 산술 및 논리 연산 중 일시적으로 데이터를 저장합니다.
  • MAR (메모리 주소 레지스터): 메모리에서 데이터를 가져올 주소를 저장합니다.
  • MBR (메모리 버퍼 레지스터): 메모리에서 읽거나 메모리에 쓸 데이터를 임시로 저장합니다.

폰 노이만 구조 (Von Neumann Architecture)

폰 노이만 구조코드데이터동일한 메모리 공간에 저장하는 구조입니다. 주요 구성 요소는 다음과 같습니다:

  • 컨트롤러 유닛(CU): 명령어의 순서와 분기를 관리합니다.
  • ALU(산술 논리 연산 장치): 산술 및 논리 연산을 수행합니다.

3. CPU의 실행 흐름

CPU는 단계별로 명령을 처리하여 프로그램을 실행합니다. 기본 실행 흐름은 다음과 같습니다.

3.1 기본 실행 단계

  1. 명령어 인출(Instruction Fetch): PC가 가리키는 주소에서 다음 명령어를 가져옵니다.
  2. 명령어 해독(Instruction Decode): 명령어를 해석하고 필요한 데이터를 메모리에서 가져옵니다.
  3. 명령어 실행(Instruction Execute): 명령어가 요구하는 작업을 수행합니다.
  4. 결과 저장(Write Back): 연산 결과를 레지스터나 메모리에 저장합니다.

3.2 파이프라인 처리로 성능 향상

현대 CPU는 파이프라인 구조를 사용하여 각 단계가 겹치도록 처리함으로써 여러 명령어를 동시에 실행할 수 있습니다.

파이프라인 단계

  • IF (명령어 인출): 다음 명령어를 가져옵니다.
  • ID (명령어 해독): 명령어를 해석하여 필요한 작업을 파악합니다.
  • OF (오퍼랜드 인출): 연산에 필요한 데이터를 가져옵니다.
  • EX (실행): 연산이나 논리 작업을 수행합니다.
  • SR (결과 저장): 연산 결과를 저장합니다.

이와 같은 중첩 실행을 통해 CPU는 효율성을 높이고, 대기 시간을 줄여 처리량을 극대화할 수 있습니다.

  • 다만, 실행 순서에 따른 데이터 의존성으로 인해 데이터 해저드(Data Hazard)가 발생할 수 있어 최적화가 필요합니다.
    • 데이터 해저드는 이전 명령어의 결과를 다음 명령어가 필요로 하는 경우 발생하는 문제입니다.

4. 명령어 집합 구조 - RISC vs. CISC

명령어 집합 구조(ISA)는 CPU가 수행할 수 있는 명령어 세트를 정의하며, 대표적으로 RISCCISC가 있습니다.

  1. CISC (Complex Instruction Set Computer): 복합 명령어다양한 작업을 수행할 수 있지만, 명령어 길이가 길고 복잡하여 CPU 회로가 복잡해집니다.

    • CISC는 복잡한 명령어로 인해 프로그램이 간결해지지만, 명령어 실행 속도가 느려질 수 있습니다.
  2. RISC (Reduced Instruction Set Computer): 단순 명령어를 사용해 짧고 빠른 실행을 목표로 하며, 효율적이고 예측 가능한 성능을 제공합니다.

    • RISC는 명령어가 단순하여 빠르게 실행되지만, 같은 작업을 위해 더 많은 명령어가 필요할 수 있습니다.

예시:

  • CISC CPU: 인텔(Intel) 프로세서.
  • RISC CPU: ARM 프로세서(모바일 및 IoT 기기에서 주로 사용).

5. Direct Memory Access (DMA)

DMA(Direct Memory Access)CPU의 개입 없이 메모리와 주변 장치 간 데이터 전송을 처리하는 기술입니다.

5.1 DMA의 작동 방식

CPU가 모든 데이터 전송을 직접 관리하지 않도록 DMA 컨트롤러가 이를 담당합니다.

  1. 데이터 전송 시작: CPU가 전송을 요청하고, DMA 컨트롤러작업을 위임합니다.
  2. 독립적인 데이터 전송: DMA 컨트롤러데이터 이동을 관리하며, CPU는 다른 명령어 실행을 이어갈 수 있습니다.
  3. 전송 완료 알림: 데이터 전송이 완료되면 DMACPU인터럽트를 보내 진행 상황을 업데이트합니다.

5.2 DMA의 장점

  • 효율성 증대: CPU가 데이터 전송을 직접 처리하지 않으므로 명령어 실행에 집중할 수 있습니다.
  • 지연 시간 감소: 데이터 전송과 명령어 실행이 동시에 이루어져 빠른 처리 속도를 지원합니다.

5.3 입출력 장치와 데이터 통신

입출력 장치(I/O Devices)는 키보드, 프린터, 네트워크 카드와 같은 주변 장치를 포함하며, 메인보드의 시스템 버스(System Bus)를 통해 CPU와 데이터를 주고받습니다.

  • 이때 Direct Memory Access (DMA)는 입출력 장치와 메모리 간 데이터 전송에서 CPU의 개입을 줄여 시스템 성능을 향상시킵니다.

마무리

이번 포스팅에서는 CPU의 기본 구조명령어 실행 흐름, 메모리 계층의 역할과 DMA에 대해 다루었습니다. 이러한 요소는 CPU가 효율적으로 작동하고 다양한 작업을 원활하게 수행할 수 있도록 하는 핵심 요소들입니다.

이후 포스팅부터는 운영체제(OS)를 중심으로 Process, Scheduling, Thread, Virtual Memory, File System, 등에 대해서 다루어 보도록 하겠습니다.

  • 운영체제는 CPU와 메모리 자원을 효율적으로 관리하고, 여러 프로세스가 동시에 실행될 수 있도록 하는 중요한 역할을 합니다.
profile
일 때문에 포스팅은 잠시 쉬어요 ㅠ 바쁘다 바빠 모두들 화이팅! // Machine Learning (AI) Engineer & BackEnd Engineer (Entry)

1개의 댓글

comment-user-thumbnail
2025년 3월 17일

우와 감사합니다 책 보는데 빠진 내용이 너무 많아서 이해 안갔거든요

답글 달기