개인 공부/메모리

DRAM Operation, Memory Control & Memory Latency - 3

RyoTTa 2021. 6. 8. 15:18
반응형

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 등이 있지만 컨트롤러에 다른 요구사항을 부과할 수 있다.

SSD Controller

 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간 높은 대역폭

Modern DRAM Controller
Modern DRAM 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가 발생한다.

반응형