Lec19 - Memory Controller

한국어판 강의자료 · 42쪽
1쪽
p.1CSED503 고급 컴퓨터 구조 – 강의 19
  • 메모리 장치 및 컨트롤러
  • 김광선
  • 컴퓨터공학과, POSTECH
  • 2021 가을학기
  • 면책사항: 본 강의의 많은 슬라이드는 David Brooks, Mark Brehob, Thomas Wenisch 교수님의 자료를 바탕으로 수정함
2쪽
p.2DRAM: 동적 랜덤 액세스 메모리
  • SRAM보다 더 높은 밀도
  • 1비트: 1트랜지스터 및 1커패시터 (1T1C)
  • 단일 bit line(비트 라인)
  • 비트는 capacitor(커패시터)에 저장된 전하로 표현
  • 파괴적 READ(리드): 읽기 시 내용이 지워짐
  • → 각 액세스 후 데이터를 복원해야 함
  • 액세스 없이도 전하가 천천히 누출됨
  • word line(워드 라인)
  • bit line(비트 라인)
  • capacitor(커패시터)
  • 현대 DRAM의 trench capacitors(트렌치 커패시터)
  • access transistor(액세스 트랜지스터)
3쪽
p.3DRAM 셀의 비유
  • 전기적 전하 → 물
  • capacitor(커패시터) → 물탱크
  • 출처: [W. Shin et al., HPCA’14]
4쪽
p.4DRAM 셀 어레이
5쪽
p.5precharge(프리차지) 및 row activation(로우 활성화)
  • sense amplifier(센스 증폭기): 전압 차이를 감지하고 VDD 또는 GND로 증폭
  • precharge(프리차지)
  • row activation(로우 활성화)
  • 출처: [W. Shin et al., HPCA’14]
6쪽
p.6기초: 액세스 프로세스 (1/5)
  • (1) 버스 전송 (메모리 컨트롤러에 요청 전송)
  • 최근 CPU에서는 메모리 컨트롤러가 온칩에 통합됨
7쪽
p.7기초: 액세스 프로세스 (2/5)
  • (2) precharge(프리차지) 및 row activation(로우 활성화)
  • 이 단계는 'row activation(로우 활성화)'라고 불림
  • row(로우): 종종 '페이지'라고 불림 – 가상 메모리 페이지와 혼동하지 말 것
  • 그 후, column access(컬럼 액세스) 명령과 동시에, row buffer(로우 버퍼) 데이터가 어레이에 복원됨
8쪽
p.8기초: 액세스 프로세스 (3/5)
  • (3) column access(컬럼 액세스)
  • 데이터가 로우 버퍼(센스 증폭기)에 로드된 후, 추가적인 row activation(로우 활성화) 없이 동일한 로우에 대한 다수의 column access(컬럼 액세스)가 가능함 ('row hit(로우 히트)')
9쪽
p.9기초: 액세스 프로세스 (4/5)
  • (4) 데이터 전송
10쪽
p.10기초: 액세스 프로세스 (5/5)
  • (5) 버스 전송 (CPU로 응답을 전송하기 위해)
11쪽
p.11DRAM 타이밍 파라미터 예시
  • 각 DRAM 작업은 JEDEC 표준에 명시된 일련의 타이밍 파라미터를 따름
  • 그림 출처: D. Lee et al., "Tiered-latency DRAM: A low latency and low cost DRAM architecture," HPCA’13
12쪽
p.12DRAM: burst access(버스트 액세스)
  • 각 READ/WRITE 명령은 여러 단어를 전송할 수 있음 (DDR3에서는 8개)
  • 단일 클럭 사이클에 전송되는 단어 수를 주의 깊게 관찰할 것
  • 더블 데이터 레이트 (DDR)
  • 크레딧: J. Leverich, Stanford
  • burst length(버스트 길이) = 8
13쪽
p.13DRAM 동작에 대한 보다 자세한 설명
  • 출처: D. Lee et al., "Tiered-latency DRAM: A low latency and low cost DRAM architecture," HPCA’13
14쪽
p.14기초: 물리적 구성
  • 각 bank(뱅크)별로 구성됨
  • 일반적인 DRAM은 2개 이상의 bank(뱅크)를 가짐
  • ECC (옵션)
  • DIMM: 듀얼 인라인 메모리 모듈
15쪽
p.15DIMM, rank(랭크), bank(뱅크) …
16쪽
p.16DRAM: bank(뱅크)
  • DRAM 칩은 여러 bank(뱅크)로 구성될 수 있음
  • 주소 = (뱅크 x, 로우 y, 컬럼 z)
  • bank(뱅크)는 독립적으로 작동하지만, 명령, 주소, 데이터 핀을 공유함
  • 각 bank(뱅크)는 서로 다른 로우를 활성화할 수 있음
  • 다른 bank(뱅크) 간에 ACTIVATE와 PRECHARGE 지연을 겹쳐 사용할 수 있음
  • (예: bank(뱅크) 0에 READ를 수행하는 동안 뱅크 1에 ACTIVATE(액티베이트))
  • → "bank-level parallelism(뱅크 수준의 병렬성)"
  • row buffer(로우 버퍼)
  • 로우 0
  • row buffer(로우 버퍼)
  • 로우 1
  • bank(뱅크) 0
  • bank(뱅크) 1
  • 출처: J.Leverich, Stanford
17쪽
p.17DRAM: bank-level parallelism(뱅크 수준의 병렬성)
  • 다른 bank(뱅크)에서 동시에 DRAM 액세스를 가능하게 함
  • 메모리 액세스 지연을 감소시키고 효율성을 향상시킴
  • 출처: J.Leverich, Stanford
18쪽
p.1864바이트(512비트) 캐시 라인 하나 읽기
  • 슬라이드 출처: Prof. Kayvon Fatahalian 및 Randy Bryant
  • 64비트 메모리 버스
  • (각 DRAM 칩에서 8비트씩)
  • 모든 DRAM 칩에 동일한 주소가 제공됨
19쪽
p.1964바이트(512비트) 캐시 라인 읽기
  • 현대 DRAM은 연속된 여러 컬럼을 버스트 모드로 전송하는 기능을 지원한다.
  • 여기서는 64비트 버스, burst length(버스트 길이) 8 → 512비트를 사용한다.
  • 슬라이드 출처: Prof. Kayvon Fatahalian 및 Randy Bryant
20쪽
p.20refresh(리프레시)
  • capacitor(커패시터)에 저장된 전하가 천천히 누출된다.
  • 오랜 시간이 지나면 값이 변경될 수 있다.
  • 메모리 컨트롤러는 각 로우를 주기적으로 refresh(리프레시)하여 전하를 복원해야 한다.
  • 각 로우를 N 밀리초마다 활성화한다.
  • 일반적인 N = 64 ms.
  • 고온에서는 더 짧은 refresh(리프레시) 주기가 필요하다 (예: DDR3에서 T > 85 ℃일 경우 32 ms).
  • refresh(리프레시)의 문제점:
  • energy(에너지) 소비: 각 refresh(리프레시) 명령은 에너지를 소모한다.
  • 성능 저하: refresh(리프레시) 중에는 DRAM rank(랭크)/bank(뱅크)에 접근이 불가능하다.
  • QoS/예측 가능성 영향: refresh(리프레시) 중 긴 일시정지 발생.
  • refresh(리프레시) 빈도는 DRAM 용량 확장의 한계를 결정한다.
21쪽
p.21refresh(리프레시) 모드
22쪽
p.22DRAM refresh(리프레시) 오버헤드
  • 더 높은 용량(더 많은 로우) → 더 높은 refresh(리프레시) 오버헤드(에너지 및 빈도).
  • tRFC: 각 refresh(리프레시) 명령이 소요되는 시간.
  • tREFI: refresh(리프레시) 명령을 얼마나 자주 발행해야 하는지.
  • 출처: J. Mukundan et al., ISCA’13
  • 출처: J. Liu et al., ISCA’12
  • 2x, 4x 모드: 한 번의 refresh(리프레시) 명령당 처리하는 로우 수가 적다.
23쪽
p.23All-Bank refresh(올뱅크 리프레시) vs. Per-Bank refresh(퍼뱅크 리프레시)
  • All-Bank refresh(올뱅크 리프레시): 일반적인 DRAM(DDRx, LPDDRx)에서 사용.
  • refresh(리프레시) 중에는 전체 rank(랭크)에 접근이 불가능하다.
  • Per-Bank refresh(퍼뱅크 리프레시): 모바일 DRAM(LPDDRx)에서 사용.
  • bank(뱅크) 간에 refresh(리프레시)를 병렬로 수행할 수 있다.
  • All-Bank refresh(올뱅크 리프레시)보다 tRFC가 짧다.
  • 더 자주 refresh(리프레시)해야 한다 (tREFI가 짧다).
  • 타임라인:
  • bank(뱅크) 0: refresh(리프레시) → 리프레시
  • bank(뱅크) 1: refresh(리프레시) → 리프레시
  • bank(뱅크) 간에 엇갈리게 수행하여 전력 소모를 제한.
  • 읽기 요청: 읽기 → 읽기 → 읽기 → 읽기
  • 슬라이드 수정: K. Chang et al., HPCA’14
24쪽
p.24DRAM controller(DRAM 컨트롤러): 기능
  • DRAM의 정확한 동작 보장 (리프레시 및 타이밍).
  • DRAM 요청을 처리하면서 DRAM 칩의 타이밍 제약을 준수한다.
  • 제약 조건: 리소스 충돌 (뱅크, 버스, 채널), 최소 쓰기-읽기 지연 (즉, 쓰기 후 바로 읽기 불가).
  • 요청을 DRAM 명령 시퀀스로 변환한다.
  • 요청을 버퍼링하고 스케줄링하여 고성능 및 QoS를 확보한다.
  • 재정렬, row buffer(로우 버퍼), bank(뱅크), rank(랭크), 버스 관리.
  • DRAM의 energy(에너지) 소비 및 열 관리를 관리한다.
  • DRAM 칩의 전원 켜기/끄기, power modes(전력 모드) 관리.
25쪽
p.25현대의 DRAM controller(DRAM 컨트롤러)
26쪽
p.26DRAM 스케줄링 정책 (I)
  • FCFS (선착순 우선)
  • 가장 오래된 요청을 먼저 처리
  • FR-FCFS (먼저 준비된 것 우선 선착순)
  • 1. row buffer(로우 버퍼) 히트를 우선 처리
  • 2. 가장 오래된 요청을 우선 처리
  • 목표: row buffer hit rate(로우 버퍼 히트율)을 최대화 → DRAM throughput(DRAM 처리량)을 최대화
  • 실제로 스케줄링은 명령 수준에서 이루어짐
  • • 컬럼 명령(리드/라이트)은 로우 명령(액티베이트/프리차지)보다 우선순위가 높음
  • • 각 그룹 내에서 오래된 명령이 더 최근의 명령보다 우선순위가 높음
27쪽
p.27DRAM 스케줄링 정책 (II)
  • 스케줄링 정책은 요청의 우선순위 순서를 정하는 것
  • 우선순위는 다음 기준에 따라 결정될 수 있음
  • • 요청의 나이
  • • row buffer(로우 버퍼) 히트/미스 상태
  • • 요청 유형(프리패치, READ(리드), 라이트)
  • • 요청자 유형(로드 미스 또는 스토어 미스)
  • • 요청의 중요도
  • • 코어 내에서 가장 오래된 미스인가?
  • • 해당 요청에 의존하는 코어 내 명령어는 몇 개인가?
  • • 프로세서를 정지시킬 것인가?
  • • 다른 코어에 미치는 간섭 (예: 공정성)
28쪽
p.28row buffer(로우 버퍼) 관리 정책
  • 요청 큐가 비어 있을 때 현재 활성화된 로우에 대해 어떻게 처리할 것인가?
  • open row(오픈 로우): 접근 후 로우를 열어둠
  • (+) 다음 접근이 같은 로우를 필요로 할 가능성 → row hit(로우 히트)
  • (−) 다음 접근이 다른 로우를 필요로 할 가능성 → 로우 충돌 (+precharge(프리차지) 지연), 낭비된 energy(에너지)
  • closed row(클로즈드 로우): 접근 후 로우를 닫음
  • (+) 다음 접근이 다른 로우를 필요로 할 가능성 → 로우 충돌 방지
  • (−) 다음 접근이 같은 로우를 필요로 할 가능성 → 추가적인 액티베이트 지연
  • adaptive policies(적응형 정책): 다음 bank(뱅크) 접근이 같은 로우일지 예측하고 그에 따라 행동
29쪽
p.29open row(오픈 로우) vs. closed row(클로즈드 로우) 정책
  • 정책: open row(오픈 로우)
  • 첫 번째 접근: 로우 0
  • 다음 접근: 로우 0 (row hit(로우 히트))
  • 다음 접근에 필요한 명령: READ(리드)
  • 첫 번째 접근: 로우 0
  • 다음 접근: 로우 1 (로우 충돌)
  • 다음 접근에 필요한 명령: precharge(프리차지) + 액티베이트 로우 1 + READ(리드)
  • 정책: closed row(클로즈드 로우)
  • 첫 번째 접근: 로우 0
  • 다음 접근: 로우 0 (로우 클로즈드)
  • 다음 접근에 필요한 명령: 액티베이트 로우 0 + READ(리드) + precharge(프리차지)
  • 첫 번째 접근: 로우 0
  • 다음 접근: 로우 1 (로우 클로즈드)
  • 다음 접근에 필요한 명령: 액티베이트 로우 1 + READ(리드) + precharge(프리차지)
30쪽
p.30왜 DRAM controller(DRAM 컨트롤러)는 설계하기 어려운가?
  • 정확성을 위해 DRAM 타이밍 제약을 준수해야 함
  • DRAM에는 50개 이상의 타이밍 제약이 존재함
  • tWTR: 라이트 명령을 발행한 후 READ(리드) 명령을 발행하기 전에 기다려야 하는 최소 사이클 수
  • tRC: 동일한 bank(뱅크)에 대해 두 개의 연속된 액티베이트 명령 사이에 있어야 하는 최소 사이클 수
  • …
  • 다양한 자원을 추적하여 충돌을 방지해야 함
  • 채널, bank(뱅크), rank(랭크), 데이터 버스, 주소 버스, row buffer(로우 버퍼)
  • DRAM refresh(리프레시)를 처리해야 함
  • 전력 소비를 관리해야 함
  • 성능 및 QoS 최적화 필요 (제약 조건이 존재하는 상황에서)
  • 재정렬은 간단하지 않음
  • 공정성과 QoS 요구사항이 스케줄링 문제를 복잡하게 만듦
31쪽
p.31DRAM 전력 관리
  • DRAM 칩은 power modes(전력 모드)를 가짐
  • 개념: 칩에 접근하지 않을 때 전력을 끄기
  • 전력 상태:
  • - 액티브 (가장 높은 전력)
  • - 모든 bank(뱅크) 비활성
  • - power-down(파워다운)
  • - 셀프 리프레시 (가장 낮은 전력)
  • 상호 간 전환 시에는 칩에 접근할 수 없는 지연이 발생함
32쪽
p.32memory bandwidth(메모리 대역폭) 및 지연 추세
  • memory latency(메모리 지연)은 거의 일정함
  • 1
  • 10
  • 100
  • 1999
  • 2003
  • 2006
  • 2008
  • 2011
  • 2013
  • 2014
  • 2015
  • 2016
  • 2017
  • DRAM 개선 (로그 스케일)
  • 용량
  • 대역폭
  • 지연
33쪽
p.33DRAM 장치 추세
  • 출처: Ishwar Bhati 등, DRAM refresh(리프레시) 메커니즘, 패널티 및 트레이드오프. IEEE Trans. Comput. 65, 1 (2016년 1월)
  • MT/s (초당 메가 전송 수) – 클럭 주파수는 아님, 데이터 전송률임
34쪽
p.34HBM: high-bandwidth memory(고대역폭 메모리)
  • 1개의 베이스 로직 다이 + 스택당 최대 8개의 DRAM 다이
  • DIMM 기반보다 훨씬 높은 대역폭
  • NVIDIA V100에서 4개의 HBM 스택으로 900 GB/s
  • Xeon에서 6개의 DDR4 채널(DIMM)로 131 GB/s
  • energy(에너지) 소비 감소
  • ~DDR4 대비 1/4x energy(에너지)/비트
  • 출처: D.U Lee, SK hynix, ISSCC 2014
  • 항목
  • 목표
  • # of Stack
  • 4(Core) + 1(Base)
  • Ch./Slice
  • 2
  • Total Ch.
  • 8
  • IO/Ch.
  • 128
  • Total IO
  • 1024 (=128 x 8)
  • Address/CMD
  • 듀얼 CMD (로우, 컬럼)
  • Data Rate
  • DDR
  • microbump array(마이크로범프 어레이)
35쪽
p.35storage-class memory(SCM)(스토리지 클래스 메모리)
  • 새로운 종류의 데이터 저장/메모리 장치
  • 여러 기술이 최고의 SCM이 되기 위해 경쟁 중
  • phase-change memory (PCM)(상변화 메모리), resistive RAM(저항성 RAM), FeRAM, MRAM, 개선된 플래시 등
  • SCM은 다음을 모호하게 만듦:
  • - 메모리 (빠름, 비쌈, volatile(휘발성))
  • - 저장장치 (느림, 저렴, non-volatile(비휘발성))
  • SCM의 특징/요구사항:
  • - non-volatile(비휘발성)
  • - 짧은 접근 시간 (~DRAM과 유사): 읽기/쓰기/지우기 시간 <200 ns (메모리용) 또는 <1μs (저장용)
  • - 1초당 100,000회 이상의 읽기 I/O 작업 가능
  • - 비트당 저렴한 비용 (~디스크와 유사)
  • - 10⁹ ~ 10¹²회 쓰기/지우기 사이클 수명
  • - 고체 상태, 이동 부품 없음
36쪽
p.36Storage-Class memory (SCM)(스토리지 클래스 메모리)의 필요성
  • 1.E+00
  • 1.E+01
  • 1.E+02
  • 1.E+03
  • 1.E+04
  • 1.E+05
  • 1.E+06
  • 1.E+07
  • 1.E+08
  • 레지스터
  • L1 캐시
  • L2 캐시
  • L3 캐시
  • DRAM
  • 플래시
  • (NVMe)
  • 플래시
  • (SATA)
  • HDD
  • 정규화된 지연 (로그 스케일)
  • ~2x
  • ~3x
  • ~7x
  • ~3x
  • ~1.5x
  • ~80x
  • ~1500x
  • 1.E+00
  • 1.E+01
  • 1.E+02
  • 1.E+03
  • 1.E+04
  • 1.E+05
  • 1.E+06
  • 1.E+07
  • 1.E+08
  • 레지스터 L1 캐시 L2 캐시 L3 캐시 DRAM
  • SCM
  • (DIMM)
  • SCM
  • (NVMe)
  • 플래시
  • (NVMe)
  • 플래시
  • (SATA)
  • HDD
  • 정규화된 지연 (로그 스케일)
  • ~2x
  • ~3x
  • ~7x
  • ~3x
  • ~1.5x
  • ~80x
  • ~1500x
  • ~4x
  • ~40x
  • ~9x
  • 현재 메모리 계층
  • 미래 메모리 계층 (SCM 포함)
37쪽
p.37PCM: 상변화 메모리
  • 상변화 물질을 사용하며, 이 물질은 결정 상태(저저항) 또는 비정질 상태(고저항) 중 하나의 물리적 상태를 가진다.
  • DRAM에 비해 장점:
  • - 더 높은 용량(밀도)
  • - non-volatile(비휘발성)
  • - refresh(리프레시)가 필요 없어 대기 전력이 낮음
  • DRAM에 비해 단점:
  • - 더 높은 지연: ~4-15배 DRAM(특히 쓰기 시)
  • - 더 높은 접근 energy(에너지): ~2-50배 DRAM(특히 쓰기 시)
  • - 낮은 내구성(셀은 약 10⁷회 쓰기 후 고장)
  • Intel 3D XPoint 메모리는 phase-change memory (PCM)(상변화 메모리)로 여겨진다.
  • - DIMM당 최대 512 GB
  • - Intel Optane DIMM
  • 출처: Qureshi 등, ISCA’09
38쪽
p.38PCM 동작
  • RESET: 큰 전류 펄스가 하전극 근처의 PCM을 녹여 비정질 상태로 만든다.
  • SET: medium current(중간 전류) 펄스가 물질을 기록(결정화)한다.
  • READ: 낮은 전류 펄스를 통해 저항 상태를 측정한다.
39쪽
p.39multilevel PCM(다중레벨 PCM)
  • 비정질화 수준을 조절함으로써 저항을 아날로그 방식으로 조절할 수 있다.
  • 단일 장치 내에서 다중레벨 데이터 저장이 가능 → 더 밀도 높은 데이터 저장
40쪽
p.40STT-MRAM: spin-transfer torque(스핀 전달 토크) magnetic RAM(자기 RAM)
  • 자기 터널 접합(MTJ)을 사용 → 1T-1MTJ
  • 비휘발성 메모리
  • cell size(셀 크기)와 access latency(액세스 지연)은 SRAM과 DRAM 사이에 있다.
  • SRAM과/또는 DRAM의 부분적 대체로 사용될 수 있다.
  • word line(워드 라인) 2 'on' 상태:
  • - V = Vdd, V = 0 → 자화가 평행 방향으로 전환
  • - free layer(자유층): 자화가 쉽게 변경됨
  • - reference layer(기준층): 안정된 자화(변경하기 어려움)
  • word line(워드 라인) 2 'on' 상태:
  • - V = -Vdd, V = 0 → 자화가 반평행 방향으로 전환
  • - 0 쓰기(저저항)
  • - 1 쓰기(고저항)
  • 출처: Mattias Borg
41쪽
p.41메모리 장치 비교
  • 기술
  • data retention(데이터 보존 시간)
  • 내구성(사이클)
  • 에너지 (fJ/bit)
  • 속도
  • 크기 (F²)
  • SRAM
  • N/A
  • >10¹⁶
  • 10
  • 1 ns
  • 120
  • STT-MRAM
  • >10년
  • 10¹⁰-¹²
  • 10-100
  • >10 ns
  • 6-20
  • DRAM
  • 수십 ms
  • >10¹⁶
  • >1000
  • 10 ns
  • 6-10
  • PCM
  • >10년
  • 10⁹
  • 1000
  • 50-500 ns
  • 4-19
  • 출처: Mattias Borg 및 기타
42쪽
p.42질문?
  • 추천 독서:
  • - 교재 2.2장
단축키
Ctrl K · s자료 검색
[ ]이전·다음 강의
Space영상 재생·정지
j k다음·이전 section
n p다음·이전 slide
b강의 목록 접기·펴기
t맨 위
/강의 검색
Esc닫기