ment. This is one of the most obvious reasons behind the success of the Linux operating system and for that reason, robust Linux support for the chosen hardware is key. Portfolio scalability. Well-written software scales from low-end to high-end deployments and thus allows for quick development of derivative projects. This is only relevant if scaled (up and down) products exist, or at least are presented as roadmap items by the device vendor. Price, power, and support are easily understood as decision points so no need to elaborate on these topics. Keep in mind that power consumption can be a make-or-break topic: active cooling (fans) can be a no-go for products deployed both inside (noise) and outside (ingress protection against moisture and dust as well as reliability concerns). Actively cooling devices consuming more than twenty Watts of power becomes costly. In the remainder of the discussion here, we focus on the "engineering-centric" analysis of implementation options: Instruction Set Architecture and relevant benchmarks for CPU and Memory bandwidth. We assume this to be used to establish a "short list" of device candi- dates that can be further evaluated to the soft metrics above. Instruction set options used to be multiple: Arm, MIPS, PowerPC/Power Architecture, x86, and other architectures have been used in embedded and server products alike. Nowadays, the bulk of new software development is done targeting Arm or x86 architectures, with RISC-V being the "hot newcomer" in the processor architecture market. Single instruction multiple data Especially relevant for the support of Digital Signal Processing algorithms is the support for a high-performance SIMD Instruction Set. Single Instruction Multiple Data (SIMD, Fig. 4-28) is Chapter 4 Hardware architecture choices Operation Operation Operation Operation Operation Operation Operation Operation FIGURE 4-28 Single instruction multiple data processing concept. a class of parallel computing that describes computers with multiple processing elements that perfor