초록
내장형 신호처리 시스템의 상당 수는 스트리밍(streaming) 어플리케이션의 특성을 지니고 있다. 데이터플로우(dataflow) 계산모델을 이용하면 스트리밍 프로그래밍 패러다임을 손쉽게 표현할 수 있다. 데이터플로우 계산모델에서는 프로그램의 병렬성이 드러나므로 멀티코어를 위한 병렬 프로그램으로의 컴파일 과정 또한 용이해진다. 우리는 내장형 신호처리 시스템의 스트리밍 특성을 데이터플로우 계산모델에 기반하여 표현하기 위한 언어 확장으로서 SPEX(Signal Processing Extension)을 제안하고자 한다. SPEX는 기존의 명령형언어(imperative language)상에 스트리밍 프로그램밍 패러다임을 표현할 수 있게 한다. SPEX 언어 확장은 매개변수 데이터플로우 계산모델(parameterized dataflow)에 기반하고 있으며, 이를 위해 몇몇의 키워드를 기존의 C++ 언어 더하는 방식으로 이루어져 있다. 본 논문에서는 하나의 필터내에서의 스트리밍 계산 특성 및 필터 간의 스트리밍 데이터 전달을 표현하는 SPEX의 기능에 초점을 맞추고자 한다.
Many DSP systems are streaming applications in which streams of data constantly flow through a set of filters. Dataflow programming paradigm is one of effective methods for representing these streaming applications. Dataflow programming model explicitly exposes parallelisms within an application, which helps compiling of the application onto a multicore platform. We propose SPEX(Signal Processing Extension), a language extension to a standard imperative language based on the parameterized dataflow model. Parameterized dataflow model is a kind of dataflow model that can express a modest fashion of dynamism contrary to the synchronous dataflow that can represent only static dataflow. SPEX facilitates characterizing an application written in conventional imperative languages such C/C++ as a streaming application. SPEX is comprised of a few keywords augmented to the conventional C++ syntax for representing dataflow paradigm. SPEX also restricts the syntax and semantics of C++ in order to fit the program within a certain streaming programming category. In this paper, we focus on the capability of SPEX in representing streaming computations within filters and streaming communications among filters.