개인 공부/논문

Hybrid2: Combining Caching and Migration in Hybrid Memory Systems

RyoTTa 2021. 2. 16. 20:05
반응형

Abstract

 Hybrid2의 필요성

  -3D-stacked MemoryOff chip DRAM으로 구성된 시스템을 위함

  -기존에는 DRAM Cache 혹은 Flat address space 방식으로 사용되었음

  -메모리 용량 및 데이터 전송 Cost의 절충을 위한 Hybrid 방식을 구성

 

Intro

 문제점

  -컴퓨터 시스템의 성능은 대부분 Memory hierarchy 구조에 의해 좌우

  -높은 대역폭:적은 용량을 가진 3D-stacked DRAMNear Memory, 낮은 대역폭:많은 용량을 가진 일반 DRAMFar Memory

 

  -NMDRAM cache로 사용될 때, 메모리 시스템에서 NM용량은 무시

  -NMFlat address space로 사용될 때, Swap으로 인한 오버헤드 증가

  -공통적으로 캐시라인 및 마이그레이션 블록이 작을수록 메타데이터의 크기가 증가(Tag Array Remapping Table)

 

 제안

  -3D stacked DRAM의 작은 부분을 cache로 사용, 나머지를 Flat address space로 사용한다.

  -Tag Array또한 On chip NM에 위치하여 빠른 액세스 시간, Migration에 필요한 Remapping metadataCache 역할로 확장

  -요청된 모든 데이터는 DRAM cachecopy, DRAM cache에서 제거될 때 NM or FM 마이그레이션 결정

  -DRAM cacheFlat address space는 논리적 분할

 

Related Work

 DRAM Cache

  -작은 캐시라인은 Tag Overhead가 높지만 캐시공간을 효율적이게 사용

  -큰 캐시라인은 Tag Overhead가 낮지만 Over fetching 현상이 나타난다.

  -Off chip DRAM의 대역폭은 Processor의 접근보다 대부분 Cache miss, writeback에서만 사용된다.

 

 Data Migration

  -3D stacked DRAM을 시스템이 직접적으로 사용할 수 있어 높은 대역폭과 용량의 이점을 가지게 된다.

  -초기에는 HW적 지원으로 구성했지만, OS에 기능을 추가해 Remapped data를 추적 할 때 page table을 사용할 수 있게 되었다. 하지만 Working set 변화에 대한 민감도가 저하되었다.

 

Motivation and Design

 Motivation

  -CacheMigration의 큰 차이점은 메모리 공간을 그대로 사용한다는 점

  -MigrationCache와 다르게 Copy가 아닌 Swap을 해야함

  -Coarse Granularity는 공간 지역성이 좋지만, Over fetching 문제가 있다.

  -Finer Granularity는 대역폭을 효과적으로 사용하지만 Metadata overhead 가 존재한다.

  -공격적인 Migration은 과도한 트래픽을 발생시킬 수 있으며, 덜 공격적인 Migration은 적시를 놓칠 수 있다.

  -Cache에서는 Tag, Migration에서는 주소변환을 사용하기 때문에 성능저하 유도

  -Max Perf는 작은 캐시라인이 더 높은 성능에 대한 기회를 놓칠 수 있다는 것을 나타낸다.

  -Min Perf는 큰 캐시라인이 Over fetching으로 인한 성능이 저하될 수 있음을 나타낸다.

 

 Design choice

  -Migration을 위한 3D DRAM의 대부분의 공간을 Flat address space로 사용, 대부분의 공간을 메모리로 사용가능

  -Cache를 위한 3D DRAM의 작은 부분을 사용하면 캐시 이점 확보 가능, Working set 변화에 따라 빠른 대응 가능

 

  -작은 캐시라인을 가져 큰 캐시라인의 부정적은 성능 영향을 방지

  -DRAM cache sector화 하여 sector단위로 Migration한다. 따라서 메타데이터 오버헤드를 줄이고 Cache miss시 요청된 Cache lineCopy한다.

  -Cache 공간과 Migration 공간의 데이터 이동은 Relocate가 필요하지 않아야 한다. CacheMigration에 필요한 Metadata를 위한 통합 메커니즘을 제공

 

Proposed Technic

 Overview

  -작은 Sectored DRAM Cache를 가진다. TagOn chip에 유지되며, Data 부분은 NM의 상대적으로 작은 부분에 유지된다.

  -DataCache line 단위(e.g. 64B)Fetch, TagSector 단위(e.g. 2KB)로 유지한다.

  -메모리 액세스시 DRAM cache Tag가 확인되고 miss일 때 섹터에 대한 new entryDRAM cache에 할당.

  -실제 DataNM or FM에 있으며 FM에 있는 경우에만 Cache에 대한 New entry를 할당

 

  -NMDRAM Cache Tag에 있는 Pointer를 사용해 CacheFlat address space를 논리적으로 분할한다. 이를 통해 NM에 있는 SectorDRAM cache Tag에 간단히 연결가능 하고, 캐시 된 FM SectorCopy한 캐시라인을 이동하지 않고 NM으로 마이그레이션이 가능하다.

  -DRAM Cache Tag Array는 메모리 세그먼트의 재매핑된 주소를 저장하여 Remapping table의 캐시 역할을 한다.

 

 eXtended Tag Array

  -XTADRAM Cache에 대한 모든 Tag를 가지고 있는 On chip Tag Array

  -Set associative 방식으로 Cache 구성, Dirty Flag가 있는 다중 섹터에 대한 항목 유지

  -Tag, Cache StateSector화된 Cache에 필요한 필드, CounterPointer는 추가 항목

  -NM 포인터는 set/way 방법에 따라 할당된 NM위치를 가리킨다.

  -FM 포인터는 해당 SectorNM으로 Migration 되지 않았을 때 FM의 물리적 위치를 가리켜 Remap tablelookup하지 않도록 한다.

 

 Memory space layout and metadata

  -NM, FM에 대한 all to all remapping을 지원한다.

  -Remap TableInverted Remap Table을 유지한다.

  -FM 포인터를 통해 DRAM Cache에 현재 있는 FM SectorRemap Table 항목에 대한 Cache 역할을 한다.

  -Free FM stackFM에서 NM으로 MigrationSector의 위치이다. , FM에서 사용 가능한 sector의 위치를 저장한다.

 

 Memory access path

  -1. XTA Hit, XTASector에 대한 항목이 있더라도 요청된 캐시라인은 NM에 있거나 FM에 있다.

  -1.a. XTA Hit/Cache line hit, 요청된 캐시라인이 NM에 존재한다. SectorNM or FM에 존재한다. 두 경우모두 NM Pointer를 사용해 캐시라인에 접근 가능하다.

  -1.b. XTA Hit/Cache line miss, 요청된 캐시라인이 NM에 존재하지 않는다. , Sector에 대한 항목은 있지만 캐시라인이 유효하지 않다. 이것은 SectorFM에 존재하고 일부 캐시라인만 DRAM Cache Fetch된 것을 의미한다. 따라서, FM Pointer를 사용해 Cache line을 읽고 NM Pointer를 사용해 해당 위치에 기록한다.

 

  -2. XTA Miss, XTA에 요청된 Sector와 일치하는 항목이 존재하지 않는다. 요청된 SectorNM or FM에 있다. 메모리 시스템에서 Sector위치를 찾기 위해 Processor Physical sector address를 사용해 NMRemap table을 액세스한다. 찾았다면 NM or FM 여부에 관계없이 해당 Sector에 대한 entryXTA에 할당된다.

  -1.a. XTA Miss/Sector in NM, SectorNM에 있음을 나타낸다. , 모든 캐시라인이 NM에 이미 존재하고 XTA의 항목만 업데이트 한다.

  -1.a. XTA Miss/Sector in FM, SectorFM에 있음을 나타낸다. NM에 공간을 할당하고 요청된 캐시라인을 FM에서 할당받은 NM으로 Copy해야한다. 이후 XTA는 새로운 Sector로 업데이트 한다.

 

 Allocating NM

  -NMnew sector를 할당하려면 NM에 존재하는 SectorFM으로 Migration한다.

  -1. NM에서 victim을 선택한다. 2. FM에서 Free sector를 확인한다. 3.데이터를 NM으로부터 FM으로 Copy한다. 4. Remapping Structure를 업데이트한다.

  -Victim을 선택할 때 DRAM Cache로 사용되지 않는 NM Sector를 선택해야 한다. , 자주 사용되는 SectorDRAM Cache에 있을 가능성이 높기 때문이다.

  -FM에서 NM으로 Migration되는 경우 해당 FM위치를 Free sector stack에 추가한다.

 

 DRAM cache evictions

  -LRU 방식을 사용한다.

  -이미 NM으로 MigrationSectorDRAM cache에서 제거하는 경우 데이터 이동이 필요하지 않으며, 재 매핑 테이블은 NM으로 마이그레이션 되었을 때 업데이트 되었다.

  -SectorFM에 있을 때, Migration Decision을 사용해 NM or FM으로 Evict한다. NM으로 Migration하려면 Invalid cache lineCopy하여 NM에 저장하고 재매핑 테이블을 업데이트한다. FM으로 Evict하려면 모든 Dirty Cache lineFM으로 Writeback 한다.

 

 Migration Decision

  -해당 Migration으로 인한 FM Access 오버헤드를 감당할 수 있는지 확인한다.(Counter사용)

  -CounterSectorMigration하는데 필요한 추가 FM Access보다 작다면 FM위치로 Evict된다.

  -만약 Counter가 크다면, DRAM cache set에서 가장 많이 AccessSector가 있는지 검사한후 많다면 NM으로 Migration한다.

반응형