[ 컴퓨터구조 ] 2. Memory

THIST·2024년 7월 15일

저번시간에 우린 컴퓨터의 간단한 구조 및 개요를 살펴보았다.

이번 시간에는 Memory에 대해서 강의를 시작해보려고 한다.

2.1 Memory란?

메모리는 크게 다음과 같은 특징을 지니고 있다.

  1. 메모리에는 프로그램이 실행될 때 (실행 중인 프로그램을 프로세스라고 함) 프로그램이 포함되어 있으며, 실행되지 않는 프로그램은 일반적으로 하드디스크에 저장되게 된다.

  2. 실행 중인 프로그램 또는 프로세스는 변수, 파일 및 기타 리소스와 같은 다양한 유형의 데이터에 액세스해야 한다.
    이러한 데이터는 일반적으로 RAM에 저장되어 CPU가 프로그램 실행 중에 빠르게 액세스할 수 있도록 해준다.

  3. PC 메모리는 일반적으로 DRAM (Dynamic Random Access Memory) 칩으로 구성되게 된다.

개인 컴퓨터(PC) 메모리인 RAM과 같은 것들은 일반적으로 DRAM(Dynamic Random Access Memory) 칩을 사용하여 구성되게 된다.

DRAM은 휘발성 메모리 유형으로, 빠른 읽기 및 쓰기 액세스를 가능하게 하므로 CPU가 빠르게 액세스해야 하는 데이터 및 프로그램을 저장하는 데 적합합니다.

랜덤 액세스(Random Access)?

  • 말 그대로 Random하게 접근한다는 의미로, 물리적으로 위치한 곳과 상관없이 메모리의 어떤 위치든지 거의 동일한 시간에 액세스할 수 있다는 것을 의미한다.

반대로 하드 디스크는 순차 액세스(Sequential Access)이다.

하드 디스크는 일반적으로 데이터를 읽거나 쓰려면 데이터가 물리적으로 저장된 위치로 읽기/쓰기 헤드를 이동해야 하며, 데이터의 물리적 위치에 따라 다양한 시간이 걸릴 수 있게 된다.

2.2 컴퓨터 메모리의 종류 (Types of Computer Memory)

빠르고 강력한 중앙 처리 장치(CPU)는 성능을 극대화하기 위해 대용량 데이터를 빠르고 쉬운 엑세스를 필요로 한다.

CPU가 필요한 데이터에 액세스할 수 없으면 말 그대로 멈추고 기다려야 한다.
현대 CPU는 약 1 기가헤르츠의 속도로 동작하며, 초당 수십 억 바이트의 대량 데이터를 처리할 수 있다.

이런 메모리를 대량으로 사용하는 것은 대부분의 사람들이 감당할 수 없을 정도로 많은 비용이 들게 된다.

그래서, 컴퓨터 디자이너들은 이 비용 문제를 "계층 구조화 메모리"를 사용하여 해결을 하였다.

즉 소량의 비싼 메모리를 사용하고 더 저렴한 메모리의 대량 사용으로 보완하는 방법이다.

그림을 보면 피라미드형 구조를 볼 수 있는데, 이는 각각의 트레이드오프관계를 계층화 시킨것이다.

비용, 속도, 용량순으로 비교를 해보자.

비용: 보조기억장치(HDD) < 주기억장치(RAM) < 캐시(Cache) < 레지스터(Register)
속도: 보조기억장치(HDD) < 주기억장치(RAM) < 캐시(Cache) < 레지스터(Register)
용량: 보조기억장치(HDD) > 주기억장치(RAM) > 캐시(Cache) > 레지스터(Register)

이제 각각 뭐하는 놈들인지 알아보도록 하자.

1. 레지스터 (Registers)

레지스터는 CPU 내부에 내장된 가장 빠른 메모리로, 매우 소량의 데이터를 저장한다.
또한, 레지스터는 CPU의 핵심 부분 중 하나로, 프로세서가 즉시 접근할 수 있는 데이터와 명령어를 저장한다.

역할: 레지스터는 CPU가 현재 수행 중인 연산에 필요한 데이터를 임시로 저장한다.
속도: 매우 빠르며, CPU의 클럭 속도와 일치하여 최상의 성능을 제공해준다.
용량: 매우 적은 용량을 가지며, 일반적으로 몇 바이트에서 수십 바이트 수준이다.

2. 캐시 (Cache)

캐시 메모리는 CPU와 주기억장치(RAM) 사이에 위치하여, 자주 사용되는 데이터를 저장함으로써 데이터 접근 시간을 줄여준다. 캐시는 여러 레벨(L1, L2, L3)로 나뉘며,

각 레벨은 CPU에 대한 접근 속도와 용량에 따라 차이가 존재한다.

L1 캐시
CPU 내부에 위치하며, 가장 빠른 메모리이다.
용량은 일반적으로 2KB ~ 64KB 사이
CPU가 가장 빈번하게 사용하는 데이터를 저장하여 성능을 향상시켜준다.

L2 캐시
L1 캐시의 상위 계층으로, CPU 근처에 위치한다.
용량은 일반적으로 256KB ~ 2MB 사이이다.
L1 캐시에 비해 약간 느리지만, 더 많은 데이터를 저장할 수 있다.

L3 캐시
여러 CPU 코어가 공유하는 캐시이다.
용량은 수 MB에서 수십 MB에 달한다.
L1, L2 캐시보다 느리지만, 주기억장치보다 빠르다.

3. 주기억장치 (Main Memory)

주기억장치, 흔히 RAM(Random Access Memory)으로 불리는 이 메모리는 실행 중인 프로그램과 데이터를 저장한다.

역할: 현재 실행 중인 프로그램과 그 프로그램이 처리하는 데이터를 저장하여 CPU가 빠르게 접근할 수 있도록 한다.
속도: 캐시보다 느리지만, 보조기억장치보다 빠르다.
용량: 일반적으로 수 GB에서 수십 GB에 달한다.
특징: 전원이 꺼지면 데이터가 사라지는 휘발성 메모리이다.

4. 보조기억장치 (Secondary Storage)

보조기억장치는 데이터를 영구적으로 저장하는 데 사용됩니다. 하드디스크(HDD)와 솔리드 스테이트 드라이브(SSD)가 대표적인 예이다.

하드디스크 (Hard Disk Drive, HDD)

  • 자기 플래터와 기계적 암을 사용하여 데이터를 읽고 쓴다.
  • 용량이 크고 가격이 저렴하지만, 속도가 느리다.
  • 데이터는 트랙과 섹터로 나뉘어 저장된다.

솔리드 스테이트 드라이브 (Solid State Drive, SSD)

  • 플래시 메모리 칩을 사용하여 데이터를 저장한다.
  • HDD보다 빠르며, 기계적 부품이 없어 충격에 강하다.
  • 용량은 일반적으로 수백 GB에서 수 TB에 달한다.

2.3 데이터 보관 방법 (A Safe Place for Data)

1. Volatile Main Memory (휘발성 주 메모리)

  • 주 메모리는 컴퓨터의 RAM(Random Access Memory)을 가리킨다.
  • 이 메모리는 전원이 꺼지거나 컴퓨터가 재부팅되면 저장된 데이터와 명령을 잃어버린다.
  • 주로 프로그램이 실행될 때 데이터를 일시적으로 저장하는 데 사용되며, 빠른 액세스를 제공해준다.

2. Non-volatile Secondary Memory (비휘발성 보조 메모리)

  • 비휘발성 보조 메모리는 주 메모리와 달리 데이터를 전원이 꺼져도 보존하는 메모리를 가리킨다.
  • 주로 데이터를 장기 저장 및 백업 용도로 사용되게 된다.
  • 주요 비휘발성 보조 메모리 유형으로는 magnetic disk(자석 디스크), flash memory(플래시 메모리), optical disk(CD-ROM, DVD) 등이 있다.

3. Magnetic Disk (자석 디스크)

  • 자석 디스크는 회전하는 디스크 표면에 자료를 자석으로 기록하는 기술을 사용한다.
  • 이 디스크는 컴퓨터의 하드 디스크로 사용되며, 데이터를 비휘발성으로 저장한다.
  • 대용량 데이터 저장 및 빠른 액세스를 위해 주로 사용된다.

4. Flash Memory (플래시 메모리)

  • 플래시 메모리는 반도체 기술을 사용하여 데이터를 저장하는 메모리이다.
  • 주로 USB 드라이브, SSD(Solid State Drive) 등의 형태로 사용되며, 전원이 꺼져도 데이터를 보존해준다.
  • 빠른 데이터 액세스 및 내구성이 특징이다.

5. Optical Disk (광학 디스크 - CD-ROM, DVD)

  • 광학 디스크는 레이저 빛을 사용하여 데이터를 읽고 쓰는 디스크이다.
  • CD-ROM, DVD 등이 있으며, 주로 데이터 및 미디어 파일을 저장하는 데 사용된다.
  • 데이터의 안전한 보관과 고용량 저장이 가능하다.

2.4 컴퓨터의 데이터 처리 과정

1. 코드 실행 단계

  • 프로그램 코드는 하드 디스크나 다른 저장 장치에서 읽혀서 RAM(Random Access Memory)으로 적재되게 된다.

  • 코드가 RAM에 적재되면 CPU는 이 코드를 실행한다.
    CPU는 코드와 데이터를 연산기(예: 중앙 처리 장치, CPU)까지 가져와야 한다.

2. 캐시 메모리 사용

  • 코드나 데이터가 처음으로 CPU에 필요할 때, RAM에서 읽어오는 것보다 캐시에서 읽어오는 것이 빠르다.

3. 레지스터로의 전달

  • CPU의 레지스터(Register)는 CPU 내부에 있는 작고 빠른 메모리 셀입니다. 레지스터는 CPU가 직접 액세스할 수 있으며, 레지스터를 통해 CPU는 연산을 수행하고 결과를 저장한다.

  • 캐시에서 데이터나 코드가 필요할 때, CPU는 해당 데이터를 레지스터로 가져와 연산을 수행한다.

4. ALU(산술 논리 장치)에서 연산

  • ALU는 CPU의 핵심 부분 중 하나로, 산술 및 논리 연산을 수행한다. CPU는 ALU를 사용하여 코드나 데이터를 연산하고 원하는 결과를 생성한다.

  • ALU는 주로 레지스터의 데이터에 직접 접근하여 연산을 수행한다. 이렇게 하면 데이터의 빠른 처리와 연산 결과의 빠른 반환이 가능하다.

여기서 모르는 단어 및 용어는 차차 강의하면서 배워보도록 하자.

profile
하고 싶은 개발을 지향하는 삶을 추구합니다:D

0개의 댓글