[ 2024.10.08 TIL ] CPU와 메모리

박지영·2024년 10월 8일
1

Today I Learned

목록 보기
58/67

CPU(Central Processing Unit)

구성

산술논리 연산장치(ALU)

CPU (Central Processing Unit)의 핵심 부분 중 하나로서 산술 및 논리 연산을 수행하는 장치

  • 산술 연산

    • 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 산술 연산을 처리합니다. 이러한 연산은 CPU가 숫자를 계산하고 수학적 연산을 수행하는 데 필요
  • 논리 연산

    • 논리 연산자(AND, OR, NOT, XOR 등)를 사용하여 비트수준의 논리 연산을 수행
      프로그램의 제어 흐름을 조작하는 데 사용
  • 역할: 프로그램 내의 계산과 비교 작업을 처리하여, 결과를 CPU 내부의 레지스터에 저장하거나 메모리로 보낸다

제어부(CU)와 내부 버스

CPU 내부의 다른 장치와 컴퓨터 시스템의 나머지 부분(메모리, 입출력 장치 등)을 제어한다

  • 제어부(Control Unit)

    • 입출력장치 간의 통신을 제어하고 명령어들을 해석하여 데이터 처리 순서를 결정
  • 내부 버스

    •  CPU와 주기억 장치, 입출력 장치, 외부 기억 장치, 주변 장치, 통신 처리 장치 등의 제어부 사이를 연결하는 버스
  • 역할: 메모리와 입출력 장치 간의 데이터 이동을 관리한다

메모리 유닛

  • 레지스터

    • 매우 빠른 속도로 데이터를 임시 저장하는 작은 메모리 공간

    • 데이터 레지스터: ALU에서 사용되는 데이터나 결과 값을 저장

    • 주소 레지스터: 메모리 주소를 저장하여 특정 메모리 위치에 접근하는 데 사용

    • 명령어 레지스터 (Instruction Register): 현재 실행 중인 명령어를 저장

    • 프로그램 카운터 (Program Counter, PC): 다음에 실행할 명령어의 주소를 저장하는 레지스터

  • 캐시 메모리

    • CPU가 자주 사용하는 데이터를 임시로 저장하여 접근 속도를 빠르게 하는 메모리

    • L1 캐시: CPU 내부에 통합되어 있으며, 가장 빠르고 크기가 작다

    • L2 캐시: L1보다 크고, CPU 내부나 외부에 위치한다

    • L3 캐시: 일부 고성능 CPU에서 제공되며, L2보다 크고 느리지만 여전히 빠르다

  • 역할: 연산에 필요한 데이터나 주소를 빠르게 저장하고 전달함으로써, CPU의 연산 속도를 극대화한다

동작

  1. 명령어 인출 (Fetch): 제어 장치는 메모리에서 실행할 명령어를 가져옵니다.

  2. 명령어 해석 (Decode): 가져온 명령어를 해석하여 어떤 작업을 해야 할지 결정합니다.

  3. 명령어 실행 (Execute): ALU나 다른 장치를 사용하여 명령어를 실행합니다.

  4. 결과 저장 (Writeback): 연산 결과를 레지스터에 저장하거나 메모리에 기록합니다.

성능

  • 클럭

    • CPU 내부에서 일정한 주파수를 가지는 신호로, 이 신호로 모든 명령어가 동작

    • 1Hz면 1초에 한 번의 주기. 1기가 헤르츠라고 하면 1초에 1기가만큼 즉, 10억번의 명령어를 처리.

  • 코어

    • 중앙처리 장치 역할을 하는 블록

    • 멀티 코어들은 싱글 코어에 비해서 마치 여러 개의 CPU가 작동하듯이 많은 연산을 빠르게 병렬 처리한다

메모리

기본 개념

컴퓨터 메모리는 데이터를 일시적 또는 영구적으로 저장하는 장치

  • 주 기억 장치(Main Memory): CPU가 직접 접근할 수 있는 메모리로, 작업 중인 데이터와 프로그램을 저장한다

  • 보조 기억 장치(Secondary Storage): 영구적으로 데이터를 저장하며, 전원이 꺼져도 데이터가 유지된다

메모리 유형

주 기억 장치

  • RAM (Random Access Memory)

    • 임의 접근 메모리로, 데이터의 저장 위치에 관계없이 모든 위치에 동일한 속도로 접근할 수 있다

    • 종류:

      • DRAM (Dynamic RAM): 데이터 저장을 위해 주기적인 리프레시가 필요합니다. 용량 대비 비용이 저렴하지만 속도가 상대적으로 느리다

      • SRAM (Static RAM): 리프레시가 필요 없고, 더 빠르지만 비용이 비싸고 용량이 작다

    • 특징:

      • 휘발성(Volatile): 전원이 꺼지면 저장된 데이터가 사라진다

      • 빠른 속도: CPU와 직접적으로 데이터를 주고받기 때문에 속도가 매우 빠르다

  • ROM (Read-Only Memory)

    • 읽기 전용 메모리로, 제조 시 데이터가 기록되며 이후에는 변경할 수 없다

    • 종류:

      • PROM (Programmable ROM): 사용자가 한 번만 데이터를 기록할 수 있다
      • EPROM (Erasable PROM): 자외선을 이용해 데이터를 지우고 다시 기록할 수 있다
      • EEPROM (Electrically Erasable PROM): 전기적으로 데이터를 지우고 다시 기록할 수 있다
    • 특징:

      • 비휘발성(Non-volatile): 전원이 꺼져도 데이터가 유지된다

      • 느린 쓰기 속도: 주로 데이터를 읽는 용도로 사용된다

보조 기억 장치

  • 하드 디스크 드라이브 (HDD: Hard Disk Drive)
    • 자기 디스크를 사용하여 데이터를 저장하는 장치

    • 특징:

      • 높은 용량: 대용량 데이터를 저렴한 가격에 저장할 수 있다

      • 느린 접근 속도: 기계적인 움직임이 필요하므로 속도가 상대적으로 느리다

      • 비휘발성: 전원이 꺼져도 데이터가 유지된다

  • 솔리드 스테이트 드라이브 (SSD: Solid State Drive)
    • 플래시 메모리를 사용하여 데이터를 저장하는 장치

    • 특징:

      • 빠른 속도: 기계적인 움직임이 없기 때문에 데이터 접근 속도가 매우 빠르다

      • 내구성: 충격에 강하고, 소음이 적다

      • 비용: 용량 대비 가격이 HDD보다 높다

      • 비휘발성: 전원이 꺼져도 데이터가 유지된다

캐시 메모리

  • 캐시 메모리는 CPU와 주기억장치(RAM) 사이에 위치하여 데이터 접근 속도를 높이는 역할
    • 레벨(Level):

      • L1 캐시: CPU 내부에 통합되어 있으며, 가장 빠르고 작은 용량을 가진다

      • L2 캐시: CPU 내부 또는 외부에 위치하며, L1보다 크고 약간 느리다

      • L3 캐시: 여러 코어가 공유하는 경우가 많으며, L2보다 더 크지만 상대적으로 느리다

    • 특징:

      • 고속 접근: 자주 사용되는 데이터를 저장하여 CPU의 대기 시간을 줄인다

      • 비휘발성: 대부분 휘발성 메모리로, 전원이 꺼지면 데이터가 사라진다

가상 메모리

  • 가상 메모리는 주기억장치(RAM)와 보조기억장치(디스크)를 조합하여 사용하는 메모리 관리 기법

    • 기능:

      • 메모리 확장: 실제 RAM 용량을 초과하는 데이터를 디스크에 저장하여 실행할 수 있다

      • 프로세스 격리: 각 프로세스가 독립된 메모리 공간을 가지도록 하여 안정성을 높인다

    • 특징:

      • 페이징(Paging): 메모리를 고정된 크기의 페이지로 나누어 관리한다

      • 스와핑(Swapping): 필요에 따라 페이지를 RAM과 디스크 사이에서 이동시킨다

      • 단점: 디스크 접근 속도가 느려 성능 저하가 발생할 수 있다

메모리 주소 공간

주소

  • 메모리 내의 특정 위치를 식별하기 위한 고유한 식별자

주소 공간

  • 사용 가능한 모든 메모리 주소의 집합

  • 물리적 주소 공간 (Physical Address Space)

    • 실제 하드웨어 메모리(RAM)의 물리적 위치를 나타내는 주소들의 집합

    • 특징:

      • 컴퓨터의 메모리 모듈에 실제로 존재하는 주소

      • 주소의 범위는 시스템의 메모리 용량에 따라 결정

      • 예: 32비트 시스템에서는 최대 4GB(2³²)까지의 물리적 주소 공간을 가질 수 있다

  • 논리적 주소 공간 (Logical Address Space)

    • 프로그램이 실행될 때 사용하는 주소 공간으로, 프로그램 코드와 데이터가 논리적으로 배치된 주소의 집합

    • 특징:

      • 프로그램이 인식하는 주소로, 실제 물리적 주소와는 다를 수 있다

      • 운영 체제(OS)가 주소 변환(Address Translation)을 통해 논리적 주소를 물리적 주소로 매핑

      • 논리적 주소 공간의 크기는 프로그램이 사용할 수 있는 가상 메모리의 크기에 따라 결정

      • 예: 32비트 시스템에서는 논리적 주소 공간도 최대 4GB를 지원할 수 있지만, 실제로는 가상 메모리 관리 방식에 따라 달라질 수 있다

메모리 주소 지정과 용량

  • 메모리 주소 지정
    컴퓨터가 메모리 내의 특정 위치를 식별하고 접근하는 방법

    • 직접 주소 지정: CPU가 메모리의 실제 주소를 직접 지정하여 접근

    • 간접 주소 지정: 메모리 주소를 저장한 레지스터나 변수를 통해 간접적으로 접근

    • 인덱스 주소 지정: 인덱스 레지스터를 사용하여 배열과 같은 데이터 구조에 접근

  • 메모리 용량
    시스템이 동시에 처리할 수 있는 데이터의 양을 의미. 용량이 클수록 더 많은 프로그램과 데이터를 동시에 처리할 수 있다

    • 비트와 바이트: 메모리 용량은 주로 바이트 단위로 측정됩니다. 1 바이트는 8 비트로 구성

    • 단위: 킬로바이트(KB), 메가바이트(MB), 기가바이트(GB), 테라바이트(TB) 등이 사용

메모리의 역할

  • 데이터 저장과 접근

    • 메모리는 프로그램 실행 중 필요한 데이터를 저장하고 빠르게 접근할 수 있도록 한다

    • CPU는 메모리에 저장된 데이터를 읽고 쓰며, 이를 통해 프로그램이 원활하게 실행된다

  • 시스템 성능 향상

    • 빠른 메모리는 CPU의 대기 시간을 줄여 시스템의 전반적인 성능을 향상시킨다

    • 예를 들어, 캐시 메모리는 자주 사용되는 데이터를 저장하여 RAM에 접근하는 시간을 단축시킨다

  • 데이터 무결성과 안정성

    • 적절한 메모리 관리 기법은 데이터의 무결성을 유지하고, 시스템의 안정성을 보장한다

    • 가상 메모리는 메모리 공간을 효율적으로 관리하여 여러 프로세스가 안정적으로 실행되도록 한다

profile
신입 개발자

0개의 댓글