Читать книгу Multi-Processor System-on-Chip 2 - Liliana Andrade - Страница 26
1.3.3. Pseudo-code
ОглавлениеObserving only the equation, a naive programmer could see the modulo load operation on g [.] and get stuck or try to write % for modulo in their C code, hoping that the compiler could deal with it. Fortunately for us, we have drawn the processing graph and can infer the processing required and how to circumvent the modulo operation altogether.
Figure 1.8. Visualization of time-domain GFDM filtering
Figure 1.9. GFDM pseudo-code
GFDM filtering consists of three mutually independent “for” loops (shown in Figure 1.9)15. Since the loops are mutually independent, they can be interchanged freely, which effectively changes the processing order to the programmer’s desire. Again, naively, we could think that the order does not matter as long as the “job gets done”, but, as we will see in section 1.5, the loop order has a notable impact on memory and processor utilization when using a vector machine. However, before we discuss different loop orders, we need to investigate fixed-point precision requirements, i.e. bit-lengths required to achieve acceptably low quantization error based on the 4G and 5G standard specification.