DRAM Refresh
DRAM은 시간이 지남에 따라 DRAM 내부의 커패시터의 전류가 누출됨
Memory Controller는 해당 전류 누출을 복원하기 위해 주기적으로 Row를 Read해야한다.
Activate + Precharge each row every N ms
Typical N = 64ms
성능에 미치는 영향
Refresh중 Bank unavailable
Long pause times : 모든 Row를 Burst로 Refresh하면 64ms마다 refresh가 끝날때 까지 DRAM을 사용할 수 없다.
Burst Refresh : 모든 Row가 즉시 Refresh한다.
Distributed Refresh : 각 Row가 일정한 간격으로 서로 다른시간에 Refresh
Downsides of DRAM Refresh
Energy consumption: Each refresh consumes energy
Performance degradation: DRAM rank/bank unavailable while refreshed
QoS/predictability impact: (Long) pause times during refresh
Refresh rate limits DRAM density scaling
Memory Controllers
Long Latency Memory 는 제어해야하는 유사한 특성을 가지고 있습니다.
이번 설명에서는 DRAM을 예로하지만 다른 유형의 메모리를 위한 컨트롤러를 설계에서도 스케쥴링 및 컨트롤이 유사하다.
Flash Memroy, PCM, STT-MRAM 등이 있지만 컨트롤러에 다른 요구사항을 부과할 수 있다.
DRAM Types
DRAM에는 다양한 목적에 최적화된 다양한 인터페이스를 가진 유형이 존재한다.
Commodity: DDR, DDR2, DDR3, DDR4, …
Low power (for mobile): LPDDR1, …, LPDDR5, …
High bandwidth (for graphics): GDDR2, …, GDDR5,
Low latency: eDRAM, RLDRAM, …
3D stacked: WIO, HBM, HMC, …
기본 Microarchitecture는 동일하다.
Flexible memory controller는 다양한 DRAM 유형을 지원할 수 있다.(대신 컨트롤러가 복잡하게 될 수 있다)
DRAM Controller : Functions
DRAM의 올바른 작동 보장 (Refresh and timing)
DRAM chip의 Timing을 준수하며 DRAM request 서비스
제약 : 리소스 충돌(뱅크, 버스. 채널), Read/Write Latency 최소화
요청을 DRAM 명령 시퀀스로 변환
Buffer 및 Schedule 관리 (Reordering, row-buffer, bank, rank, bus management)
전력 및 발열 관리(Turn on/off DRAM chips, manage power modes)
DRAM Controller의 위치
In chipset : 다양한 DRAM 유형을 시스템에 연결할 수 있는 Flexible, CPU Chip의 Power density 감소
On CPU chip : Main Memory Access Latency 감소, Core-Controller간 높은 대역폭
DRAM Scheduling Policy I
FCFS(First Com First Served)
Oldest request first
FR-FCFS(First Ready, FCFS)
1. Row-hit first
2. Oldest first
Goal : Row buffer hist rate를 증대 -> DRAM throughput을 최대화
실제로 Scheduling은 command level에서 수행된다.
Column commands(read/write)가 Row commands(acitvate/precharge)보다 우선순위가 높음
각 그룹안에서 오래된 명령이 새로운 명령보다 우선순위가 높다.
DRAM Scheduling Policy II
Scheduling policy는 Request prioritization order 이다.(요청 우선 순위)
우선순위는 아래를 기반으로 할 수있다.
Request age
Row buffer hit/miss status
Request type (prefetch. read, write)
Requestor type (load miss or store miss)
Request ciriticality
Oldest miss in the core?
How many inst in core are dependent on it?
Will it stall the processor?
Interference caused to other cores
Row Buffer Management Policy
Open Row
Access후 Row를 Open 상태로 둔다.
+ 다음 Access에서 동일한 Row -> Row hit
-- 다음 Access에 다른 Row -> Row conflict, wasted energy
Closed Row
Access후 Row를 Close한다. (Request Buffer에 있는 Request가 동일한 행을 필요하지 않는 경우)
+ 다음 Access에 다른 Row -> Avoid a Row confict
-- 다음 Access에서 동일한 Row - > Extra avtivate latency
Adaptive policy
Bank에 대한 다음 Access가 동일한 Row에 있을지 여부를 예측한다.
DRAM Power Management
DRAN chip에는 Power Mode가 존재한다.
Idea : Chip에 Access하지 않을때 Power down
Power state
Active(highest power)
All bank idle
Power-down
Self-refresh (lowest power)
Tradeoff : State 전환으로 인한 Chip에 Access할 수 없는 Latency가 발생한다.
'개인 공부 > 메모리' 카테고리의 다른 글
Memory Controller Policy (0) | 2021.06.10 |
---|---|
MSHRs(Miss Status Holding Register) (1) | 2021.06.10 |
DRAM Operation, Memory Control & Memory Latency - 2 (0) | 2021.06.07 |
DRAM Operation, Memory Control & Memory Latency - 1 (2) | 2021.06.07 |
메모리 타이밍 (0) | 2021.03.09 |