Skip to main content
QUICK REVIEW

[논문 리뷰] Allowing Software Developers to Debug HLS Hardware

Jeffrey Goeders, Steven J. E. Wilton|arXiv (Cornell University)|2015. 08. 27.
Embedded Systems Design Techniques참고 문헌 13인용 수 8
한 줄 요약

이 논문은 소프트웨어 개발자가 고수준 합성(HLS)으로 생성된 하드웨어를 익숙한 소프트웨어 디버깅 기법을 사용해 디버깅할 수 있도록 해주는 디버깅 프레임워크를 제시한다. 하드웨어 신호를 소스 코드 변수에 매핑하고 단계별 실행 시각화를 가능하게 함으로써, 소프트웨어 개발과 하드웨어 구현 간의 의미적 격차를 해소하여 LegUp HLS 도구체계에서 하드웨어 전문가가 아닌 이들에게 접근성을 크게 향상시킨다.

ABSTRACT

High-Level Synthesis (HLS) is emerging as a mainstream design methodology, allowing software designers to enjoy the benefits of a hardware implementation. Significant work has led to effective compilers that produce high-quality hardware designs from software specifications. However, in order to fully benefit from the promise of HLS, a complete ecosystem that provides the ability to analyze, debug, and optimize designs is essential. This ecosystem has to be accessible to software designers. This is challenging, since software developers view their designs very differently than how they are physically implemented on-chip. Rather than individual sequential lines of code, the implementation consists of gates operating in parallel across multiple clock cycles. In this paper, we report on our efforts to create an ecosystem that allows software designers to debug HLS-generated circuits in a familiar manner. We have implemented our ideas in a debug framework that will be included in the next release of the popular LegUp high-level synthesis tool.

연구 동기 및 목표

  • 소프트웨어 개발자의 관점에서 HLS로 생성된 하드웨어 설계를 디버깅하는 데 도전하는 데 목적이 있다.
  • 고수준 소프트웨어 코드와 병렬적, 게이트 수준의 하드웨어 구현 간의 의미적 격차를 해소하는 데 목적이 있다.
  • 소프트웨어 엔지니어가 분석, 디버깅, 최적화를 모두 접근할 수 있는 디버깅 생태계를 조성하는 데 목적이 있다.
  • 유저 친화적인 디버깅 인터페이스를 LegUp HLS 도구에 통합하여 원활한 워크플로우 통합을 이루는 데 목적이 있다.
  • 소스 코드의 구조에 맞춰 단계별 실행 추적과 신호 시각화를 가능하게 하는 데 목적이 있다.

제안 방법

  • 하드웨어 신호를 고수준 소스 코드 변수에 매핑하여 의미적 맥락을 유지하는 데 목적이 있다.
  • 하드웨어 설계의 단계별 실행을 지원하는 디버깅 인터페이스를 구현하는 데 목적이 있다.
  • 소스 코드 라인과 관련된 클록 사이클 간의 신호 변화를 시각화하는 데 목적이 있다.
  • 표준 소프트웨어 디버깅 워크플로우와 호환되는 디버깅 프레임워크를 LegUp HLS 도구에 통합하는 데 목적이 있다.
  • 소스 수준의 주석을 사용해 하드웨어 신호와 소프트웨어 구성요소를 연계하는 데 목적이 있다.
  • 伝통적인 소프트웨어 디버거와 유사한 브레이크포인트 및 변수 검사 기능을 지원하는 데 목적이 있다.

실험 결과

연구 질문

  • RQ1하드웨어 설계에 익숙지 않은 소프트웨어 개발자가 하드웨어 디버깅을 어떻게 쉽게 접근할 수 있을까?
  • RQ2복잡하고 병렬적인 하드웨어 동작을 순차적 소프트웨어 논리로 되돌리기 위해 필요한 추상화 수준은 무엇인가?
  • RQ3HLS 도구의 디버깅 워크플로우를 기존의 소프트웨어 개발 관행과 어떻게 일치시킬 수 있을까?
  • RQ4합성된 하드웨어에서 효과적인 신호 추적과 시각화를 가능하게 하는 메커니즘은 무엇인가?
  • RQ5HLS 도구체계에 디버깅 기능을 통합할 때 성능이나 사용성에 영향을 주지 않으면서 어떻게 실현할 수 있을까?

주요 결과

  • 제안된 디버깅 프레임워크는 하드웨어 신호를 소스 코드 변수에 성공적으로 매핑하여 직관적인 탐색과 검사를 가능하게 했다.
  • 프레임워크는 단계별 실행 추적을 지원하여 개발자가 클록 사이클 간의 신호 변화를 소스 코드 라인과 연계해 관찰할 수 있도록 했다.
  • LegUp에의 통합을 통해 소프트웨어 개발자가 브레이크포인트와 변수 검사와 같은 익숙한 디버깅 패러다임을 사용할 수 있게 되었다.
  • 하드웨어 분석 중 소스 코드의 논리적 흐름을 유지함으로써 소프트웨어 개발자의 인지 부담을 감소시켰다.
  • 실제 HLS 도구체계에서 프레임워크의 실현 가능성과 사용성은 입증되었으며, 개발자 생산성을 향상시켰다.
  • 이러한 접근은 HLS에서 소프트웨어 개발과 하드웨어 구현 간의 의미적 격차를 효과적으로 해소한다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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