Skip to main content
QUICK REVIEW

[논문 리뷰] Buddy-RAM: Improving the Performance and Efficiency of Bulk Bitwise Operations Using DRAM

Vivek Seshadri, Donghyuk Lee|arXiv (Cornell University)|2016. 11. 30.
Parallel Computing and Optimization Techniques참고 문헌 36인용 수 54
한 줄 요약

Buddy-RAM는 센스 앰프의 아날로그 동작과 트리플 레일 액티베이션을 활용하여 DRAM 내부에서 기능적으로 완전한 대량 비트단위 연산(AND, OR, NOT)을 수행할 수 있는 새로운 메커니즘을 제안한다. 이로 인해 기존 방법 대비 10.9X–25.6X 높은 처리량과 25.1X–59.5X 낮은 에너지 소비를 달성하였으며, 데이터 집약적 워크로드에서 실제 응용 프로그램(예: 데이터베이스 쿼리 및 세트 연산)에서 최대 7.0X의 성능 향상을 보였다.

ABSTRACT

Bitwise operations are an important component of modern day programming. Many widely-used data structures (e.g., bitmap indices in databases) rely on fast bitwise operations on large bit vectors to achieve high performance. Unfortunately, in existing systems, regardless of the underlying architecture (e.g., CPU, GPU, FPGA), the throughput of such bulk bitwise operations is limited by the available memory bandwidth. We propose Buddy, a new mechanism that exploits the analog operation of DRAM to perform bulk bitwise operations completely inside the DRAM chip. Buddy consists of two components. First, simultaneous activation of three DRAM rows that are connected to the same set of sense amplifiers enables us to perform bitwise AND and OR operations. Second, the inverters present in each sense amplifier enables us to perform bitwise NOT operations, with modest changes to the DRAM array. These two components make Buddy functionally complete. Our implementation of Buddy largely exploits the existing DRAM structure and interface, and incurs low overhead (1% of DRAM chip area). Our evaluations based on SPICE simulations show that, across seven commonly-used bitwise operations, Buddy provides between 10.9X---25.6X improvement in raw throughput and 25.1X---59.5X reduction in energy consumption. We evaluate three real-world data-intensive applications that exploit bitwise operations: 1) bitmap indices, 2) BitWeaving, and 3) bitvector-based implementation of sets. Our evaluations show that Buddy significantly outperforms the state-of-the-art.

연구 동기 및 목표

  • 현대 시스템에서 메모리 대역폭 제약로 인한 대량 비트단위 연산의 성능 저하 문제를 해결한다.
  • 비트 벡터를 프로세서와 주 메모리 간에 대량으로 이동시켜 비트단위 연산을 수행하는 데 발생하는 비효율성을 해결한다.
  • 기존 하드웨어 구성 요소를 활용해 DRAM 내부에서 고처리량, 저에너지 비트단위 연산을 가능하게 한다.
  • 표준 DRAM 아키텍처와 인터페이스에 쉽게 통합될 수 있는 저비용이고 실용적인 솔루션을 설계한다.
  • 다양한 데이터 집약적 워크로드에서 제안된 메커니즘이 적용 가능하고 성능상의 이점을 보임을 입증한다.

제안 방법

  • 동일한 센스 앰프 어레이를 공유하는 세 개의 DRAM 레일을 동시에 활성화하여 비트단위 다수결 기능을 구현하고, 레일의 초기 상태를 제어함으로써 AND 및 OR 연산을 구현한다.
  • 각 센스 앰프 내부에 내장된 인버터를 활용하여 이중접점 2T-1C 셀을 두 개의 인버터 입력에 연결함으로써 비트단위 NOT 연산을 수행한다.
  • RowClone와의 통합을 통해 Buddy-AND/OR 및 Buddy-NOT 컴포넌트를 결합하여 모든 비트단위 연산에 대한 기능적 완전성을 확보한다.
  • 주소 버스와 디코더의 전체 복제를 피하기 위해, 삼중 레일 활성화를 서브어레이당 사전 정의된 세 레일로 제한하여 면적과 제어 복잡도를 최소화한다.
  • 공정 변동에 대한 신뢰성을 확보하기 위해 SPICE 시뮬레이션을 수행하여 다양한 공정 컨디션에서 정상 작동함을 검증한다.
  • 기존 메모리 컨트롤러 및 시스템 소프트웨어에 영향을 최소화하기 위해 표준 DRAM 명령어와 인터페이스를 사용하여 후행 호환성을 유지한다.

실험 결과

연구 질문

  • RQ1기존 아날로그 회로를 활용해 추가 면적 또는 전력 오버헤드 없이 DRAM 내부에서 비트단위 연산을 효율적으로 수행할 수 있는가?
  • RQ2센스 앰프의 본질적 아날로그 동작을 어떻게 활용하여 레일 수준에서 AND, OR, NOT과 같은 논리 연산을 수행할 수 있는가?
  • RQ3비트단위 연산을 DRAM 내부에서 수행할 경우, 외부 처리 대비 성능 및 에너지 효율성 향상은 어느 정도인가?
  • RQ4데이터베이스 쿼리, 세트 연산, DNA 서열 분석과 같은 다양한 워크로드에서 제안된 메커니즘이 어떻게 확장 가능한가?
  • RQ5기존 DRAM 아키텍처에 최소한의 수정으로 얼마나 잘 통합될 수 있는가?

주요 결과

  • Buddy-RAM는 최신 SIMD 기반 베이스라인 대비 일곱 가지 일반적인 비트단위 연산에서 최대 10.9X에서 25.6X의 높은 원시 처리량을 달성한다.
  • 비트단위 연산에 대한 에너지 소비는 기존 방법 대비 25.1X에서 59.5X까지 감소한다.
  • 비트맵 인덱스를 사용한 데이터베이스 쿼리는 Buddy-RAM 가속화로 인해 6.0X의 성능 향상을 보였다.
  • Buddy-RAM를 사용할 경우, 빠른 데이터베이스 스캔 기법인 BitWeaving는 다양한 스캔 파라미터에서 평균 7.0X의 속도 향상을 기록했다.
  • 교집합, 합집합, 차집합과 같은 세트 연산은 기존 구현 대비 3.0X의 성능 향상을 보였다.
  • DRAM 칩에 대한 면적 오버헤드가 오직 1%에 불과하여 저비용이며 실용적인 구현 가능성을 입증했다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.