메모리 계층 구조
CPU 코어는 1 ns에 수십 개의 연산을 할 수 있지만, DRAM에서 데이터 하나를 가져오는 데는 80 ns 안팎이 걸린다. SSD는 그보다 천 배, 하드디스크는 다시 백 배 느리다. 빠르면서 크고 싸기까지 한 메모리는 없다. 그래서 컴퓨터는 작고 빠른 메모리부터 크고 느린 메모리까지 여러 층을 쌓아 두고, 자주 쓰는 데이터를 위층에 두는 방식으로 이 간극을 메운다. 이 장은 책 전체의 지도다. 각 층이 어떤 소자로 만들어지고 왜 그 자리에 있는지, 그리고 AI 시대에 왜 메모리가 성능의 병목이 되었는지를 수치와 함께 살펴본다.
- 폰 노이만 구조에서 메모리의 역할과 비트·바이트·주소, 휘발성/비휘발성의 의미를 설명할 수 있다.
- 레지스터–SRAM 캐시–DRAM/HBM–SSD–HDD 계층의 지연·대역폭·용량·비트당 가격을 자릿수 수준으로 기억한다.
- 시간·공간 지역성과 캐시 라인의 원리를 이해하고, 접근 패턴에 따른 히트/미스를 예측할 수 있다.
- AMAT 식으로 다단 캐시의 평균 접근 시간을 계산할 수 있다.
- 대역폭과 지연을 구분하고, 리틀의 법칙으로 필요한 동시 요청 수를 추정할 수 있다.
- 메모리 월과 루프라인 모델로 AI 추론이 왜 메모리 대역폭에 묶이는지 설명할 수 있다.
컴퓨터에서 메모리의 역할
오늘날 거의 모든 컴퓨터는 1945년 폰 노이만이 EDVAC 보고서에서 정리한 저장 프로그램 방식(Stored-program, von Neumann Architecture)을 따른다. 핵심은 단순하다. 명령어와 데이터를 같은 메모리에 저장하고, 프로세서는 메모리에서 명령어를 하나 읽고(fetch), 해석하고(decode), 필요한 데이터를 읽어 계산한 뒤(execute), 결과를 다시 메모리에 쓴다. 이 순환이 초당 수십억 번 반복된다.
CPU가 아무리 빨라도 계산할 재료가 제때 도착하지 않으면 기다릴 수밖에 없다. 이것이 이 책 전체를 관통하는 질문이다. 메모리는 얼마나 빨리, 얼마나 많이, 얼마나 싸게, 얼마나 오래 비트를 붙잡아 둘 수 있는가?
비트, 바이트, 주소
메모리의 최소 단위는 0 또는 1을 담는 비트(bit)다. 물리적으로 비트는 커패시터의 전하(DRAM, 4장), 교차 결합 인버터의 상태(SRAM, 3장), 절연막에 갇힌 전자(NAND, 8장), 자성층의 방향(MRAM, 12장) 등으로 표현된다. 8비트를 묶은 바이트(byte)마다 고유 번호인 주소(address)가 붙는다. 이것을 바이트 주소 지정이라 한다.
주소가 \(n\)비트면 \(2^n\)개의 바이트를 가리킬 수 있다. 32비트 주소는 4 GiB가 한계였기 때문에 오늘날의 PC와 서버는 64비트 주소를 쓴다(실제 x86-64 가상 주소는 48비트 또는 57비트만 사용). 용량 단위는 10진(1 GB = 10⁹ B)과 2진(1 GiB = 2³⁰ B ≈ 1.074 × 10⁹ B)이 섞여 쓰이는데, 메모리 칩은 관례상 2진(“16Gb DRAM” = 2³⁴ 비트), SSD·HDD 용량 표기는 10진이다.
휘발성과 비휘발성
전원을 끄면 내용이 사라지는 메모리를 휘발성(Volatile), 남아 있는 메모리를 비휘발성(Non-volatile)이라 한다. SRAM은 전원이 있는 동안만 상태를 유지하고, DRAM은 전원이 있어도 커패시터 전하가 새기 때문에 64 ms(고온에서는 32 ms)마다 리프레시해야 한다(5장). 반면 NAND 플래시는 절연막에 갇힌 전자가 수년 동안 빠져나가지 않는다. JEDEC 규격상 소비자용 SSD는 전원 없이 30°C에서 최소 1년 데이터를 보존해야 한다. 대신 쓰기가 느리고 횟수에 한계가 있다(8장). 이처럼 모든 메모리는 속도·밀도·보존·내구성 사이에서 무언가를 포기한다.
관례적으로 CPU가 주소로 직접 읽고 쓰는 휘발성 영역(캐시, DRAM)을 메모리, 운영체제가 블록 단위 입출력으로 다루는 비휘발성 영역(SSD, HDD)을 스토리지라 부른다. CXL 메모리 확장이나 영구 메모리처럼 경계가 흐려지는 기술도 있지만, 이 구분은 계층을 이해하는 좋은 출발점이다.
메모리 계층 피라미드
빠른 메모리는 셀이 크고(비트당 트랜지스터가 많고) 칩 안에 가까이 있어야 하므로 비싸고 작다. 싼 메모리는 셀이 작고 밀도가 높지만 멀리 있고 느리다. 이 트레이드오프를 한 장에 그리면 메모리 계층(Memory Hierarchy) 피라미드가 된다.
아래 표는 각 층의 대표 수치다. 제품과 세대에 따라 두세 배씩 차이가 나지만, 중요한 것은 자릿수다. 레지스터와 테이프의 지연 차이는 약 \(10^{11}\)배, 즉 11자리에 이른다.
| 층 | 소자 | 지연 | 대역폭 | 용량 | 비트당 가격 |
|---|---|---|---|---|---|
| 레지스터 | 플립플롭/레지스터 파일 | ~0.2–0.3 ns (1 사이클) | 수 TB/s /코어 | 수 KB /코어 | — |
| L1 캐시 | SRAM (6T/8T) | ~1 ns (4–5 사이클) | ~0.5–1 TB/s /코어 | 32–64 KB /코어 | 다이 면적 환산 ~$100s/GB (추정) |
| L2 캐시 | SRAM | ~3–5 ns | ~0.3 TB/s /코어 | 1–2 MB /코어 | |
| L3 캐시 | SRAM | ~10–20 ns | ~0.1–0.2 TB/s /코어 | 32–96 MB (공유) | |
| DRAM (DDR5) | 1T1C DRAM | ~70–100 ns | 채널당 ~45 GB/s (DDR5-5600) | 16 GB – 수 TB | ~$2–5/GB (2024, 변동 큼) |
| HBM3E | 적층 DRAM + TSV | ~100 ns+ (DRAM 코어) | 스택당 ~1.2 TB/s | 스택당 24–36 GB | DDR5의 수 배 (추정) |
| SSD (NVMe) | 3D NAND (TLC/QLC) | ~50–100 µs (4K 랜덤 읽기) | ~7–14 GB/s (PCIe 4/5 ×4) | 1 TB – 100 TB+ | ~$0.05–0.1/GB |
| HDD | 자기 디스크 | ~5–10 ms | ~0.2–0.3 GB/s | ~20–30 TB | ~$0.015–0.02/GB |
| 테이프 (LTO-9) | 자기 테이프 | 수십 s (장착·탐색) | ~0.4 GB/s | 18 TB /카트리지 | ~$0.005/GB |
지연 수치가 ns, µs, ms, s로 흩어져 있어 감이 잘 오지 않는다. 1 ns를 1초로 늘려 사람의 시간으로 바꿔 보자.
| 동작 | 실제 지연 | 1 ns = 1초라면 |
|---|---|---|
| 레지스터 읽기 (1 사이클 @ 4 GHz) | 0.25 ns | 눈 한 번 깜빡임 (0.25초) |
| L1 캐시 히트 | 1 ns | 1초 — 책상 위 메모지를 보는 시간 |
| L2 캐시 히트 | 4 ns | 4초 — 서랍을 여는 시간 |
| L3 캐시 히트 | 15 ns | 15초 — 옆 책장에서 책을 꺼내는 시간 |
| DRAM 접근 | 80 ns | 1분 20초 — 옆 사무실에 다녀오기 |
| NVMe SSD 랜덤 읽기 | 80 µs | 약 22시간 — 하루 |
| HDD 탐색 | 8 ms | 약 3개월 — 한 계절 |
| 테이프 장착·탐색 | ~50 s | 약 1600년 — 신라 시대부터 지금까지 |
CPU 입장에서 DRAM 접근은 “1분 넘게 손 놓고 기다리기”이고, 디스크 접근은 “석 달 휴가”다. 그래서 운영체제는 디스크를 기다리는 동안 다른 프로세스로 전환하고, CPU 하드웨어는 DRAM을 기다리는 동안 비순차 실행과 프리페치로 다른 일을 찾는다. 아래 시뮬레이터에서 각 층을 눌러 네 가지 지표를 로그 눈금으로 비교해 보자.
계층 피라미드 탐색기 (로그 눈금)
SRAM 셀은 트랜지스터 6개로 약 0.02 µm²(3 nm급 공정 고밀도 셀), DRAM 셀은 트랜지스터 1개와 커패시터 1개로 0.0013 µm² 안팎(1b급)이다. 같은 면적에 DRAM이 대략 10배 이상 많은 비트를 담는다. NAND는 셀을 200단 넘게 수직으로 쌓고 셀당 3~4비트를 저장해 비트당 면적을 DRAM의 수십 분의 1로 줄였다. 대신 SRAM은 로직 공정 그대로 CPU 옆에 붙일 수 있어 가장 빠르다. 빠름은 가까움과 단순한 읽기에서, 쌈은 작은 셀과 적층에서 나온다.
지역성과 캐시 라인
작은 캐시가 큰 메모리의 속도를 흉내 낼 수 있는 이유는 프로그램이 메모리를 고르게 쓰지 않기 때문이다. 이를 참조 지역성(Locality of Reference)이라 하며 두 종류가 있다.
- 시간 지역성(Temporal Locality): 방금 쓴 데이터는 곧 다시 쓰일 가능성이 높다. 반복문 안의 명령어, 누적 변수, 스택 변수가 그렇다.
- 공간 지역성(Spatial Locality): 방금 쓴 주소 근처가 곧 쓰일 가능성이 높다. 배열 순회, 순차 명령어 실행, 구조체 필드 접근이 그렇다.
for (i=0; i<N; i++) sum += a[i];를 실행할 때의 메모리 접근을 주소–시간 평면에 찍은 모식도. 명령어와 sum은 좁은 주소를 반복해서(시간 지역성), 배열은 주소를 조금씩 올라가며(공간 지역성) 접근한다. 배열 원소 16개(4 B × 16 = 64 B)가 한 캐시 라인에 들어가므로 첫 원소에서 미스가 나면 나머지 15개는 히트다.캐시는 이 두 성질을 이용한다. 한 번 가져온 데이터를 한동안 보관해 시간 지역성을 살리고, 요청한 바이트 하나가 아니라 주변 64바이트를 묶은 캐시 라인(Cache Line, Block)을 통째로 가져와 공간 지역성을 살린다. 64바이트는 우연이 아니다. DDR5 서브채널(32비트 폭)이 버스트 길이 16으로 한 번에 보내는 양이 정확히 32비트 × 16 = 64바이트다(6장). Apple M 시리즈처럼 128바이트 라인을 쓰는 설계도 있다.
주소를 쪼개는 법: 태그 · 인덱스 · 오프셋
가장 단순한 직접 사상 캐시(Direct-mapped Cache)는 주소를 세 필드로 나눈다. 라인 크기가 \(L\) 바이트, 라인 수가 \(S\)개라면
미스에는 세 종류가 있다(3C 분류). 처음 접근해서 어쩔 수 없는 강제 미스(Compulsory), 캐시 전체 용량보다 작업 집합이 커서 생기는 용량 미스(Capacity), 용량은 남는데 같은 인덱스로 몰려 서로 쫓아내는 충돌 미스(Conflict). 충돌 미스는 한 인덱스에 여러 라인을 둘 수 있는 집합 연관 구조로 줄이는데, 이는 3장에서 SRAM 어레이와 함께 다룬다. 아래 시뮬레이터에서 접근 패턴에 따라 히트율이 어떻게 달라지는지 직접 보자.
접근 패턴과 직접 사상 캐시
C 언어의 2차원 배열은 행 우선(row-major)으로 저장된다. a[i][j]를 j 안쪽 루프로 돌면 순차 접근이지만, i 안쪽 루프로 돌면 한 행 길이만큼의 스트라이드 접근이 된다. 1024×1024 float 행렬이라면 스트라이드가 4 KiB여서 거의 매번 미스가 나고, 같은 계산이 수 배 느려진다. 알고리즘의 연산 수가 같아도 메모리 접근 순서가 성능을 좌우한다.
히트율과 평균 메모리 접근 시간
캐시 성능은 평균 메모리 접근 시간(AMAT, Average Memory Access Time) 하나로 요약할 수 있다. 모든 접근은 일단 캐시를 확인하는 데 \(t_{hit}\)이 들고, 미스가 난 비율 \(m\)만큼은 아래층에서 가져오는 벌칙 \(t_{miss}\)를 추가로 치른다.
이 예에서 히트율 95%라는 좋은 성적에도 평균 시간은 L1 히트의 5배다. 미스 벌칙이 히트 시간의 80배나 되기 때문에 미스율 몇 %가 성능을 지배한다. 히트율을 95%에서 99%로 올리면 AMAT는 5 ns에서 1.8 ns로 준다. 그래서 캐시를 여러 층으로 쌓아 미스 벌칙 자체를 줄인다.
다단 캐시에서는 “아래층 미스 벌칙” 자리에 다시 아래층의 AMAT가 들어가는 재귀 구조가 된다.
다단 캐시 AMAT 계산기
L1을 그냥 크게 만들면 되지 않을까? SRAM 어레이가 커지면 워드라인·비트라인이 길어지고 태그 비교 대상이 늘어 히트 시간이 길어진다. L1 히트 시간은 파이프라인의 모든 load 명령에 더해지므로 1 사이클만 늘어도 전체 성능이 떨어진다. 그래서 L1은 32~64 KB에 4~5 사이클로 억제하고, 용량은 L2·L3가 맡는다. AMD의 3D V-Cache처럼 SRAM 다이를 수직으로 쌓아 L3를 64 MB 늘리면서 지연 증가를 몇 사이클로 막는 기술도 등장했다.
대역폭과 지연, 그리고 리틀의 법칙
메모리 성능에는 전혀 다른 두 축이 있다. 지연(Latency)은 요청 하나를 보내고 첫 데이터가 돌아올 때까지의 시간(ns), 대역폭(Bandwidth)은 단위 시간당 옮길 수 있는 데이터 양(GB/s)이다. 고속도로에 비유하면 지연은 서울–부산 주행 시간, 대역폭은 차로 수 × 제한 속도로 결정되는 시간당 통과 차량 수다. 차로를 늘려도 부산까지 걸리는 시간은 줄지 않는다.
큐잉 이론의 리틀의 법칙(Little's Law, 1961)은 안정된 시스템에서 평균적으로 시스템 안에 머무는 개체 수 \(L\)이 도착률 \(\lambda\)와 평균 체류 시간 \(W\)의 곱이라는 것이다. 메모리에 적용하면 다음과 같다.
코어 하나가 동시에 추적할 수 있는 L1 미스는 수십 개 수준이다(미스 상태 처리 레지스터, MSHR/fill buffer 수). 그래서 단일 스레드는 DRAM 대역폭을 다 쓰지 못하고, 여러 코어가 함께 요청하거나 하드웨어 프리페처가 미리 요청을 띄워야 대역폭이 찬다. GPU는 반대 극단이다. 지연이 수백 ns인 HBM에서 수 TB/s를 뽑으려면 수만 개의 요청이 떠 있어야 하는데, GPU는 수만 개의 스레드를 번갈아 실행하며 이를 채운다. GPU는 지연을 줄이는 대신 병렬성으로 지연을 숨기는 기계다.
리틀의 법칙: 동시 요청 수와 달성 대역폭
메모리 월: 벌어지는 속도 격차
1980년부터 2000년대 초까지 마이크로프로세서 성능은 해마다 25~50% 이상 빨라졌지만, DRAM의 접근 지연은 해마다 약 7% 개선에 그쳤다. DRAM은 용량(밀도)을 늘리는 데 집중했고, 셀을 읽는 물리 과정(비트라인 충전, 센싱, 프리차지 — 5장)은 크게 빨라지지 않았기 때문이다. 1995년 울프와 매키는 이 격차가 계속 벌어지면 결국 프로세서 성능이 메모리에 막힐 것이라며 이를 메모리 월(Memory Wall)이라 불렀다.
그 뒤 단일 코어 성능 증가가 둔화되면서 지연 격차는 더 벌어지지 않았지만, 병목은 대역폭으로 옮겨 갔다. 멀티코어와 GPU·AI 가속기의 연산 능력이 폭발적으로 늘어난 반면 메모리 대역폭 증가는 그에 못 미친다. 한 분석(Gholami 외, 2024)에 따르면 지난 20여 년간 서버 하드웨어의 최대 FLOPS는 2년마다 약 3.0배, DRAM 대역폭은 약 1.6배, 칩 간 인터커넥트 대역폭은 약 1.4배 늘었다.
메모리 월 그래프 (로그 눈금)
AI 시대의 병목: 파라미터를 읽는 시간
대형 언어 모델(LLM)이 토큰 하나를 생성할 때(디코드 단계)는 모든 가중치를 한 번씩 읽어 곱셈-누산을 한다. 파라미터가 \(P\)개면 연산은 약 \(2P\) FLOP, 읽는 데이터는 \(P \times b\) 바이트(\(b\): 파라미터당 바이트)다. 배치 크기 1이면 바이트당 연산이 \(2/b\), FP16에서는 1 FLOP/B에 불과하다. 700억(70B) 파라미터 모델을 FP16으로 두면 140 GB이고, HBM3를 쓰는 H100 SXM(~3.35 TB/s)도 이를 한 번 읽는 데 약 42 ms가 걸린다. 연산기가 아무리 빨라도 초당 약 24 토큰이 상한이다.
이 관계를 일반화한 것이 루프라인 모델(Roofline Model)이다. 커널의 연산 강도 \(I\)(FLOP/바이트)에 따라 도달 가능한 성능이 메모리 대역폭 지붕과 연산 지붕 중 낮은 쪽으로 결정된다.
LLM 디코드 루프라인 계산기
70B FP16 모델의 가중치 140 GB는 HBM3 80 GB를 단 H100 한 장에 들어가지 않는다. 게다가 긴 문맥을 처리하면 토큰마다 쌓이는 KV 캐시가 수십 GB에 이를 수 있다. 그래서 가속기 한 개에 붙는 HBM 용량(H200 141 GB, B200 약 180 GB)과 여러 칩을 잇는 인터커넥트 대역폭이 대역폭만큼 중요해졌다. 메모리를 연산기 옆이나 안으로 옮기는 PIM·CXL 같은 시도는 12장에서 다룬다.
메모리 종류 지도와 이 책의 구성
지금까지 계층의 “위치”를 보았다면, 이제 각 층을 채우는 “소자”를 정리해 보자. 반도체 메모리는 크게 휘발성과 비휘발성으로 나뉘고, 각각 셀 구조에 따라 다시 갈라진다.
아래 표는 주요 메모리의 특성을 한눈에 비교한 것이다. 셀 크기는 공정의 최소 선폭 \(F\)(feature size)의 제곱을 단위로 쓰는 F² 표기를 쓴다. 예를 들어 DRAM의 6F²는 워드라인 피치 2F × 비트라인 피치 3F 격자를 뜻한다. 셀 크기가 작을수록 같은 면적에 비트를 많이 담는다.
| 종류 | 셀 크기 | 읽기 | 쓰기 | 내구성 (쓰기 횟수) | 휘발성 | 주 용도 |
|---|---|---|---|---|---|---|
| SRAM | ~120–150 F² | <1 ns | <1 ns | 사실상 무제한 (>10¹⁶) | 휘발 | 레지스터 파일, 캐시 |
| DRAM | 6 F² (4F² 개발 중) | ~10–15 ns (셀) | ~10–15 ns | >10¹⁶ | 휘발 (리프레시) | 주기억장치, HBM |
| NAND 플래시 | 4 F² (평면) · 3D는 비트당 <1 F² | ~20–60 µs (페이지) | ~0.2–2 ms (페이지) | SLC ~10⁵, TLC ~10³, QLC ~수백 | 비휘발 | SSD, 모바일 저장장치 |
| NOR 플래시 | ~10 F² | ~50–100 ns (랜덤) | ~µs (워드) | ~10⁵ | 비휘발 | 펌웨어, 코드 실행(XIP) |
| STT-MRAM | ~6–50 F² | ~10 ns | ~10–30 ns | ~10¹⁰–10¹⁵ | 비휘발 | 임베디드 NVM, 캐시 후보 |
| PCM | ~4–20 F² | ~50–100 ns | ~100 ns–1 µs | ~10⁸–10⁹ | 비휘발 | 스토리지 클래스 메모리 |
| ReRAM | ~4–12 F² | ~10–100 ns | ~10–100 ns | ~10⁶–10⁹ | 비휘발 | 임베디드 NVM, 인메모리 연산 |
| FeRAM / FeFET | ~6–40 F² | ~50 ns | ~50 ns | ~10¹⁰–10¹⁴ | 비휘발 | 저전력 MCU, 차세대 후보 |
신흥 메모리 수치는 연구·제품마다 편차가 매우 크므로 자릿수 참고용이다. 표를 보면 “모든 칸에서 이기는” 메모리가 없다는 사실이 분명해진다. SRAM은 빠르지만 크고, DRAM은 작고 빠르지만 휘발성이며, NAND는 가장 싸고 남아 있지만 느리고 닳는다. 이것이 계층이 존재하는 근본 이유이며, 이 책은 각 소자를 물리(2장)에서 시작해 회로, 어레이, 인터페이스, 시스템 순으로 쌓아 올린다.
① 2장에서 MOSFET 스위치, 누설, 전하 저장, 터널링의 물리를 익힌다. ② 3~7장은 휘발성 메모리: SRAM 셀과 캐시, DRAM 셀과 타이밍, DDR·LPDDR·GDDR 인터페이스, HBM 적층. ③ 8~10장은 비휘발성 메모리: NAND 셀, 3D NAND, SSD 컨트롤러. ④ 11~13장은 공통 주제: 신뢰성과 ECC, 차세대 메모리와 PIM·CIM, 메모리 시스템 설계. 각 장의 시뮬레이터에서 이 장에서 본 지연·대역폭·용량 수치가 어디서 나오는지 확인하게 될 것이다.
핵심 정리
- 폰 노이만 구조에서 명령어와 데이터는 같은 메모리에 있고, CPU–메모리 통로의 속도가 전체 성능을 제한한다(폰 노이만 병목). 메모리는 바이트 단위 주소로 접근하며, 휘발성(SRAM·DRAM)과 비휘발성(NAND 등)으로 나뉜다.
- 메모리 계층은 레지스터(~0.25 ns) → L1/L2/L3 SRAM(1~20 ns) → DRAM/HBM(~80~120 ns) → SSD(~50~100 µs) → HDD(~ms) → 테이프(~수십 s)로, 층마다 지연·용량이 자릿수로 달라지고 비트당 가격은 반대로 준다.
- 1 ns를 1초로 늘리면 DRAM 접근은 1분 20초, SSD 읽기는 하루, HDD 탐색은 석 달이다. 이 간극을 캐시·프리페치·비순차 실행·문맥 전환이 숨긴다.
- 캐시는 시간 지역성(재사용)과 공간 지역성(인접 접근)을 이용한다. 64 B 캐시 라인 단위로 옮기며, 주소는 태그·인덱스·오프셋으로 나뉜다. 미스는 강제·용량·충돌로 분류된다.
- \(AMAT = t_{hit} + m\cdot t_{miss}\). 미스 벌칙이 히트 시간의 수십 배이므로 미스율 몇 %가 성능을 좌우하고, 다단 캐시는 미스 벌칙을 재귀적으로 줄인다.
- 대역폭과 지연은 다른 축이다. 리틀의 법칙에 따라 최대 대역폭을 쓰려면 대역폭 × 지연 / 요청 크기만큼의 요청이 동시에 떠 있어야 한다. CPU는 수십, GPU는 수만 개의 동시 요청으로 대역폭을 채운다.
- 메모리 월: 프로세서 성능이 DRAM 지연 개선보다 훨씬 빨리 늘어 격차가 천 배 이상으로 벌어졌고, 오늘날에는 연산(FLOPS) 대비 메모리 대역폭 부족이 병목이다.
- LLM 디코드(배치 1)는 연산 강도 ~1 FLOP/B의 메모리 바운드 작업이라 토큰/s 상한 ≈ 메모리 대역폭 / 가중치 바이트다. 그래서 HBM의 대역폭·용량, 양자화, 배치가 AI 성능을 결정한다.
확인 퀴즈
1. 다음 중 지연이 짧은 순서대로 올바르게 나열한 것은?
2. L1 히트 시간 1 ns, L1 미스율 10%, 미스 벌칙 60 ns일 때 AMAT는?
3. 4바이트 int 배열을 순차 접근한다. 캐시 라인이 64 B이고 배열이 캐시보다 훨씬 크다면 히트율은 약 얼마인가?
4. 메모리 지연이 100 ns이고 목표 대역폭이 128 GB/s다. 요청 크기가 64 B라면 동시에 진행 중이어야 하는 요청 수는?
5. 대역폭 4 TB/s인 가속기에서 40B 파라미터 모델을 FP8(1 B/파라미터)로 배치 1 디코드할 때 토큰/s의 상한에 가장 가까운 것은?
6. 다음 설명 중 옳지 않은 것은?