# Approximate Networking for Universal Internet Access
## 2 Approximate Networking Technologies
### Approximate Networking Hardware  
With physical limits beginning to stall the exponential growth of electronics, due to Moore's law and the Dennard's scaling, it seems to be the case that future hardware devices, and by extension future network switches and routers, will use approximate computing in one way or another. In terms of hardware support, networking in most end user devices (such as smartphones, tablets, laptops, and embedded devices such as smart TV) is implemented using application-specific integrated circuits (ASICs). These end-nodes are general purpose computing devices that have network-interface-cards (NICs) built in for connecting to networks. In contrast, we also have specialized networking devices (such as routers, switches, hubs, and firewalls) that function as the building blocks of networks; such devices have, in addition to NICs, also switching fabrics and use various techniques such as memory-based computing through ternary-content-addressable-memories (TCAMs). Networking devices also utilize a number of components: memory hierarchy of static RAM (SRAM), dynamic RAM (DRAM), non-volatile RAM (NVRAM), hardware parallelism (using ternary content addressable memory (TCAM)), multiplexers and demultiplexers, and counters, which are all amenable to approximate computing (as explained in [28]). Two principal components of network hardware are (1) the implementation of packet processing logic through combinational logic, and (2) memory based components. In _implementing combinational logic_, there are two approximating options. Firstly, the elementary building blocks of approximate adder and multiplier, which are typically implemented in arithmetic logic units and are used in counters, already have an approximate computing implementation that return impressive gains [28]. Such adders and counters can be used in implementing the set of counters maintained by the simple network management protocol (SNMP) that is implemented by all routers today. Secondly, the complex logic in a larger circuit can be replaced with an approximate, optimized, pseudo-equivalent circuit. When implementing _memory in networking devices_, approximation can be implemented at the level of SRAM, DRAM, and TCAMs. Approximate caches have been built that avoid cache misses by using approximation based on temporal and spatial correlation present in data stored in memory (this can be used to avoid expensive power-hungry access of DRAM). Furthermore, the power consumed in accessing DRAM can be reduced through refresh rate control using which the error/power tradeoff can be managed. \begin{table}
\begin{tabular}{p{85.4 pt} p{113.8 pt} p{113.8 pt} p{113.8 pt}} \hline
**Reference** & **Task** & **Brief Summary** & **How Approximation is Used to Increase Performance** \\ \hline
**Software** & & & \\ [PERSON] et al. [29] & Approximation-based Complex Framework & Introduces a compiler framework for practical approximate computing. & The approximation compiler framework substantially improves the end-to-end performance with little quality degradation. \\ [PERSON] et al. [30] & Language of Approximate Computing & Proposes a programming language model (flaer) for approximate computing & An approximate data type for low power consumption devices is proposed. \\ [PERSON] et al. [31] & Programmable Accelerator & Accelerate that uses approximate computing to get better performance and energy efficiency. & A general purpose approximate computing NPU saves 3\(\times\) more energy and speeds up the process by 2.3\(\times\). \\ [PERSON] et al. [52] & Multicast Forwarding & LIPSN incorporates Bloom filter properties for large scale topic-based Polish-Suscher systems. & Bloom filters reduce the forwarding table size, and increase multicast forwarding efficiency, at the cost of small file positives. \\ \hline \end{tabular}
\end{table} 
Table 1: A summary of sample work related the categories of approximate networking taxonomy. Figure 3: An (approximate) taxonomy of approximate networking concepts.