개인 공부/메모리

DRAM Operation, Memory Control & Memory Latency - 2

RyoTTa 2021. 6. 7. 19:46
반응형

Latency Components : Basic DRAM Operation

  CPU -> Controller Transfer time

    Controller latency

      Queuing, scheduling delay

      Access converted to basic commands

 

  Controller -> DRAM Trasfer time

    DRAM bank latency

      Simple CAS(cloumn address strobe) if row is "open" OR

      RAS (row address strobe) + CAS if array precharged OR

      PRE + RAS + CAS (wortst case)

  

  DRAM - > Controller Transfer time

    Bus lantency(BL)

   

  Controller to CPU Transfer time

 

Multiple Bank(Interleaving) and Channels

위, Single Bank. 아래, Multiple Bank(assuming no conficts)

  Multiple Banks

   Concurrent DRAM Access를 가능하도록 함

   주소내의 Bits가 주소의 위치가 어떤 Bank에 있는지 나타낸다.

 

  Multiple independent channels serve the same purpose

    그러나 별도의 Data Bus가 존재한다.

    Bus의 대역폭이 증가한다.

 

  더 높은 Concurrency를 가지려면 Bank Conflicts, Channel Conflict를 피해야 한다.

 

  Address에서 Bank/Channel Index를 Select/Randomize 하는 방법

    Low order bits는 더 많은 Entropy를 가진다.

    Randomizing hash functions(i.e XOR of diff address bits)

 

 

Address Mapping (Single Channel)

  Single-Chaneel 시스템은 8 byte memory bus를 가진다. (64bit)

   2GB, 8 Banks, 16K row, 2K columns per bank

 

  Row interleaving

    연속적인 Bank에 연속적인 Row

    파이프라인 방식으로 서비스되는 연속된 캐시블록에 대한 Access가 가능하다.

 

  Cache block interleaving

    연속적인 bank에 연속적인 Cache block, 64byte의 Cache block

    연속적인 Cache block에 대한 Access는 병렬적으로 서비스 가능하다.

 

Bank Mapping Randomization

  DRAM 컨트롤러는 주소 매핑을 무작위로 지정할 수 있다.
   가능성을 줄인다,

 

Virtual -> Physical Mapping

  OS는 DRAM에서 주소가 매핑되는 위치에 영향을 준다.

  OS는 Virtual Page가 매핑되는 Bank/Channel/Rank에 영향을 줄 수있다.

 

More on Reducing Bank Conflicts

  Subarray-Level Parallelism

 

  하나의 Bank는 64개의 Subarray로 구분 가능하고 Logical row-buffer가 존재한다.

(https://users.ece.cmu.edu/~omutlu/pub/salp-dram_isca12.pdf)

 

 

반응형