반응형

개인 공부/메모리 9

DMA(Direct Memory Access)

DMA의 정의 DMA는 특정한 HW 시스템(Hard-disk, GPU 등)이 CPU와 독립적으로 주 시스템 메모리(RAM)에 Access 할 수 있도록 하는 컴퓨티 시스템의 기능이다. CPU는 상태, 제어정보만을 교환하고 직접적인 데이터 전송은 DMA Controller가 버스를 제어하고 I/O와 메모리간에 교환한다. 등장 배경 DMA와 반대되는 개념으로 PIO(Programed Input/Output)이 존재한다. HW 시스템들 사이에 전송되는 모든 데이터가 CPU를 거쳐가는 방식이다. PIO를 보완하기위해 인터럽트, DMA등이 고안되었다. 인터럽트 방식은 PIO방식보다는 효율적이지만 I/O를 위한 상태, 제어정보, 데이터 전송을 위해 CPU의 많은 개입이 필요하기 때문에 오버헤드가 발생한다. 최근 고..

Memory Controller Policy

FCFS(Firs Come First Served) 각 Read/Write가 실행 된 후 Page가 Close된다. 가장 오래된 Request가 먼저 처리된다. Read/Write Request를 모두 보유할 수 있는 하나의 Queue를 가진다. FRFCFS(First Ready First Come First First Served) Bank에서의 Row buffer hit이 가능한 Request를 이전 Request를 포함한 다른 Request보다 우선적으로 처리한다. Row buffer hit request가 존재하지 않는다면 가장 오래된 Request부터 처리한다. Read/Write Request를 를 모두 보유할 수 있는 하나의 Queue를 가진다. FRFCFS-WQF(First Ready Fi..

MSHRs(Miss Status Holding Register)

MSHRs(Miss Status Holding Register) "Miss Buffer"라고도 불린다. 즉 CPU가 실행하기 위한 데이터가 Cache에 존재하지 않은 Miss 상태일때, 필요한 데이터를 하위 메모리 계층에서 가져와야 한다. 이러한 과정에서 CPU stall을 방지하기 위해 MSHRs를 사용하게 된다. 미해결 Cache miss를 Track한다. 누락된 Cache Block을 참조하는 Pending Load/Store Access를 Tracking 한다. Fields of a single MSHR Valid Bit Cache block address (incoming accesses와의 match를 판단하기 위해) Control/Status bits (Prefetch, issued to m..

DRAM Operation, Memory Control & Memory Latency - 3

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 DRA..

DRAM Operation, Memory Control & Memory Latency - 1

Review : DRAM Subsystem Organization Channel, DIMM, Rank, Chip, Bank, Row/Column, Cell The DRAM subsystem 2개의 Memory Channel, 각 Channel 별 2개의 DIMM Breaking down a DIMM DIMM의 양면 으로 나뉜 Rank(Rank0, Rank1), 각 Rank는 8개의 Device(Chip)으로 구성, 각 Chip은 8bit를 출력 Rank 동일 Channel에 같은 Addr/Cmd를 입력후 CS 를 통해 Channel을 Mux한다. Breaking down a Rank 각 Rank는 64bit를 출력함, 위에서 보듯 8개의 Chip이 각각 8bit를 출력 Breaking down a Chi..

메모리 타이밍

Refresh : DRAM이 Idle일때 Memory cell을 이루고있는 Capacitor에서전하가 채워져 있는 상황(논리 1의 상태)을 유지하고 있을 때, 방전에 의하여 채워진 전하가 조금씩 소진되므로, 이를 보상하기 위하여 주기적으로 재충전 시키는 것. Precharge : Refresh가 Idle일때의 전하 방전을 보상하기 위한 주기적인 충전과정이라고 한다면, Precharge는 데이터 read시 감쇄되는 전하(destructive read)를 보상하기 위하여 read후 재충전하는 과정을 의미함. CAS(Columm Assress Strobe) Latency (tCL/tCAS): 줄여서 CAS Latency, 더욱 줄여 "CL" 이라 부르는 값. CAS 대기 시간. 명령이 메모리로 전송 된 후 응..

메모리 기초

SRAM = Static RAM 전원이 공급되면 데이터는 유지 DRAM = Dynamic RAM 만약 아무것도 하지않는다면 데이터 손실 SRAM: 6T per bit 일반적인 고속 CMOS 기술로 구현 DRAM: 1T per bit (+1 capacitor) Density에 최적화된 DRAM process DRAM의 Low-Level Organization은 SRAM과 유사하다. Read의 경우 매우 파괴(Destructive)적이며, Read에 의해 내용이 지워진다. Row buffer는 Read Data를 유지한다. - Row buffer의 Data를 DRAM Row라고 한다 - 종종 Page 라고 불리운다. (Virtual Memory의 Page와 혼동) - Block Read는 항상 Row buf..

반응형