Software-defined radio (SDR) facilitates innovation in various wireless protocol designs and deployments. In SDR, a lot of conventional radio hardware components are replaced by efficient software components such as modulators-demodulators, mixers, filters, and many other signal processing capabilities. In existing works and platforms for SDR programming, the low-level codes require manual optimizations that affect the ease and flexibility of programming. In this situation, this work proposes Ziria, a new high-level programming language for SDR. As claimed, this work is probably the first to design a high-level programming language for SDR that can concisely capture and optimize for reconfigurations of pipelines in the physical (PHY) layer.
Ziria is designed with domain-specific abstractions. This is suitable for wireless protocols programming in SDR with reconfigurable pipelines and an efficient compilation scheme. The compilation supports limited coarse-grained pipeline parallelism and generates efficient executables for use on commodity central processing units (CPUs). Ziria implements a novel algorithm for vectorization that optimizes the data widths of components in processing pipelines in the PHY layer. This has been shown to provide a combined 10 to 100 times speedup over baseline, amplifying the effects of other optimizations.
In the main body of this paper, first the description of programming in Ziria explains stream programming abstractions, which can compose two types of computations together: stream transformers (with input and output streams) and stream computers (with input and output streams, and also additional control value return). Then, the compositions of control path and data path are described. This description is followed by a Wi-Fi receiver pipeline example and a detailed description of Ziria pipeline execution. Second, the vectorization transformation is described in detail, which is the main optimization in the Ziria compiler. The designed decentralized vectorization algorithm identifies sets of feasible vectorizations for transformers and computers in a top-down fashion, and then composes feasible vectorization candidates together in a bottom-up fashion. Finally, some other type- and semantics-preserving optimizations by Ziria are also described. This involves static scheduling optimizations and lookup table generation.
Ziria has been demonstrated with an implementation of the rate-compliant PHY layer for Wi-Fi 802.11a/g. Ziria framework performance is evaluated on various digital signal processing (DSP) algorithms belonging to standard Wi-Fi transceivers. It also often showed to outperform hand-tuned C++ implementations on commodity CPUs of existing works in SDR.
Overall, this is a great work of very high quality for the SDR platform and language. Relevant readers are highly encouraged to read this work. The compiler, test suite, and Wi-Fi implementations of this work are also publicly available in the GitHub repository (reference [1] in paper).