[컴퓨터구조론] 메모리

티라노·2025년 5월 14일

컴퓨터구조론

목록 보기
13/18

Locality 원칙

Temporal locality(일시적 로컬리티)
어떤 데이터가 한 번 접근되었다면 짧은 시간 내에 다시 접근될 가능성이 높다. 예시로는 반복문이 있다.

Spatial locality(공간적 로컬리티)
어떤 데이터가 한 번 접근되었다면, 근처의 데이터도 곧 접근될 가능성이 높다. 예시로는 배열이 있다.

Locality를 따르면 좋은 이유
메모리는 성능과 가격에 따라 어느 정도 한계를 가진다. 이 때 locality 원칙을 따르면 빠르고 효율적인 메모리 접근이 가능하다.


메모리 계층 구조

메모리에는 계층 구조가 있다. CPU에 가까울수록 계층 숫자가 작다. 또한 CPU에서 멀어질수록 용량이 큰 메모리이고 접근 시간이 길다.

Hit
데이터가 상위 메모리에 존재하는 경우 접근에 성공하는 것을 말한다.

Miss
데이터가 상위 메모리에 존재하지 않는 경우 낮은 level의 메모리에서 데이터를 가져온다.

데이터를 가져올 때는 block 이라는 단위를 통한다.

메모리의 특성

접근 시간GB당 가격
SRAM0.5-2.5ns$500-$1000
DRAM50-70ns$3-$6
SSD5,000-50,000ns$0.06-$0.12
HDD5,000,000-20,000,000ns$0.01-$0.02

Ideal memory
SRAM의 접근 시간을 가지고 HDD의 용량과 가격을 가지는 디스크이다.
실질적으로 이런 메모리는 제작할 수 없지만 가상 환경에서 가장 이상적인 메모리를 가정할 때 ideal memory를 적용한다.

SRAM

  • CPU 사이클 타임과 거의 근접하는 접근 시간을 가지고 있다.
  • CPU 프로세서 칩 안에 들어가 있다.
  • 1비트 당 6-8개의 트랜지스터가 필요하다.

예를 들어 2M x 16 SRAM이라고 하면 엔트리가 2M개, 21개의 address line(2M = 2^21), 16-bit 넓이라는 뜻이다.

DRAM

  • 1개의 트랜지스터가 1개의 비트를 저장한다.
  • 주기적으로 리프레시를 해주어야 한다.

DRAM의 리프레시
DRAM은 전기적인 구조 때문에 데이터가 점점 모호해진다. 1인 경우 0.9, 0.8, ..., 0인 경우 0.1, 0.2, ...
따라서 주기적으로 맞는 값으로 맞춰줘야 하는데 이 점에서 성능적인 패널티가 발생한다.

  • 여러 개의 Row로 구성된 Bank 라는 단위가 존재한다.

  • DRAM에서는 배열 단위로 데이터에 접근하기 때문에 연속된 데이터를 사용할 때 유리하다.

  • DDR(double data rate) DRAM
    rising edge와 falling edge 모두에서 데이터를 가져오는 DRAM이다. 속도가 증가하지만 구현이 복잡해진다.

  • QDR(quad data rate) DRAM
    input과 output 모두 double data rate로 구현한 DRAM이다.


Memory wall

메모리 접근 속도가 성능을 결정하는 벽으로써 작용하는 현상을 말한다.

이 때 메모리에 한 번 접근할 때 가져오는 데이터 양을 많게 하거나, 빠르게 데이터를 접근해서 request 시간을 조금씩 겹치게 하여 총 접근 시간을 줄이는 방법 등으로 성능을 개선할 수 있다.

메모리 대역폭 개선

  • 메모리 접근 오버헤드가 크기 때문에 한 번 접근할 때마다 많은 데이터를 가져오면 효율이 좋다.
  • 메모리를 여러 개 두고 접근 시간을 조금씩 중첩해서 총 접근 시간을 줄일 수 있다. 이런 기법을 memory interleaving 이라고 한다.

DRAM의 성능에 영향을 미치는 요소들

  • Row buffer
    여러 개의 word를 한 번에 들고 올 수 있는 버퍼이다.
  • Synchronous DRAM
    연속된 주소에서 데이터를 가져올 때 매번 주소 요청을 보내지 않고 한 번에 쭉 가져올 수 있다.
  • DRAM banking
    여러 개의 DRAM에 동시에 요청을 보낸다.

플래시 스토리지

하드디스크보다 비용이 비싸다.
디스크보다 100~1000배 정도 빠르고, 용량 대비 크기가 작고 전력 소모도 적다.

하지만 내구성이 안 좋아서 접근이 잦으면 금방 마모된다.
수명 문제 때문에 메인 메모리로는 쓰기 어렵다.

디스크 스토리지

디스크와 데이터를 읽는 arm으로 이루어진 스토리지이다.
디스크 회전을 통해 데이터를 가져오기 때문에 속도가 느린 편이다.

0개의 댓글