目 录 译者序 序 前言 第1章 绪论 / 1 1.1 Helium简介 / 2 1.2 Armv8.1-M架构 / 3 1.3 对比其他Arm SIMD/DSP 特性 / 6 1.3.1 Helium对比Neon / 7 1.3.2 Helium对比可伸缩矢量 扩展 / 8 1.3.3 Helium对比Cortex-M的 DSP特性 / 9 1.3.4 Helium对比专用DSP / 9 1.4 Helium用例 / 10 1.5 问题 / 10 第2章 SIMD/矢量处理器概论 / 11 2.1 SIMD/矢量处理 / 11 2.2 浮点数和定点数 / 12 2.2.1 饱和运算 / 15 2.2.2 定点和浮点DSP / 15 2.2.3 Helium浮点格式 / 16 2.2.4 C数据类型和原语 / 16 2.3 问题 / 17 第3章 Helium架构 / 18 3.1 Helium基础概念 / 18 3.1.1 Helium寄存器 / 20 3.1.2 通道 / 21 3.1.3 矢令块和节拍 / 22 3.1.4 指令示例 / 23 3.2 Helium矢量处理 / 24 3.3 低开销分支扩展 / 25 3.4 尾部预测 / 27 3.5 Helium指令集 / 29 3.5.1 指令集基础 / 29 3.5.2 指令修饰符 / 31 3.5.3 指令形态 / 32 3.6 问题 / 33 第4章 数据处理指令 / 34 4.1 算术运算 / 34 4.1.1 加法和减法 / 34 4.1.2 **值 / 38 4.1.3 移位 / 40 4.1.4 逻辑操作 / 46 4.1.5 *小值和*大值 / 47 4.1.6 格式转换和舍入 / 50 4.1.7 位计数 / 52 4.1.8 元素反转 / 53 4.2 乘法运算 / 54 4.2.1 乘法指令 / 54 4.2.2 乘加指令 / 57 4.2.3 复数运算指令 / 65 4.2.4 定点复数乘法运算 / 68 4.3 数据移动 / 68 4.4 比较和预测 / 73 4.5 问题 / 79 第5章 内存访问指令 / 80 5.1 矢量加载和存储 / 80 5.2 离散-聚合 / 81 5.3 交织和解交织加载/存储 / 87 5.4 问题 / 90 第6章 Helium分支、标量和其他指令 / 91 6.1 低开销分支扩展 / 91 6.2 Armv8.1-M标量指令 / 94 6.2.1 条件执行 / 94 6.2.2 通用寄存器移位 / 97 6.3 其他指令 / 100 6.4 问题 / 101 第7章 Helium编程 / 102 7.1 编译器和工具 / 102 7.1.1 Arm Compiler 6 / 103 7.1.2 GCC Helium功能 / 104 7.1.3 Helium CPU内核的调试、 跟踪、剖析 / 104 7.2 Helium编程方式 / 105 7.3 矢量库 / 105 7.4 自动矢量化 / 106 7.4.1 使用矢量化编译器 / 107 7.4.2 面向自动矢量化编程 / 109 7.4.3 自动矢量化示例 / 111 7.5 Helium原语函数 / 112 7.5.1 原语编程 / 113 7.5.2 原语预测 / 115 7.5.3 原语点积示例 / 117 7.5.4 原语离散-聚合示例 / 120 7.5.5 原语尾部处理 / 121 7.5.6 原语函数工作流 / 122 7.6 Helium汇编代码 / 123 7.6.1 内联汇编代码 / 123 7.6.2 内联汇编示例 / 125 7.6.3 原生汇编语言函数 / 127 7.7 从其他架构移植DSP 代码 / 127 7.8 Helium底层代码 / 128 7.8.1 使能Helium / 128 7.8.2 检测Helium / 129 7.8.3 异常处理 / 129 7.9 问题 / 132 第8章 性能和优化 / 133 8.1 代码剖析和性能评估 / 133 8.1.1 Helium性能计数器和 比率 / 134 8.1.2 嵌入式跟踪宏单元 / 140 8.2 性能考量 / 141 8.3 性能和Cortex-M内存系统 / 141 8.3.1 缓存 / 142 8.3.2 紧耦合内存 / 143 8.4 双矢令块微架构的性能考量 / 144 8.5 性能示例 / 145 8.6 问题 / 148 第9章 DSP基础 / 149 9.1 矩阵运算 / 149 9.1.1 矩阵乘法 / 149 9.1.2 矩阵转置 / 151 9.2 傅里叶变换 / 153 9.2.1 傅里叶变换简介 / 153 9.2.2 快速傅里叶变换 / 153 9.2.3 FFT示例 / 155 第10章 DSP滤波 / 157 10.1 卷积 / 157 10.2 滤波器 / 158 10.2.1 FIR滤波器简介 / 158 10.2.2 FIR滤波器示例 / 159 第11章 应用示例 / 161 11.1 图像处理 / 161 11.2 加密 / 165 11.2.1 大数算术 / 165 11.2.2 多项式乘法 / 167 第12章 神经网络和机器学习 / 175 12.1 神经网络简介 / 176 12.1.1 卷积神经网络 / 177 12.1.2 循环神经网络 / 178 12.2 CMSIS-NN / 179 12.2.1 CMSIS-NN优化 / 180 12.2.2 CMSIS-NN Helium优化 / 181 12.3 微控制器TensorFlow Lite / 182 12.3.1 用于微控制器和CMSIS-NN 的TensorFlow Lite / 183 12.3.2 模型转换 / 183 12.3.3 在Helium Cortex-M CPU 上部署模型 / 184 12.3.4 关键字检测示例 / 184 12.4 针对Helium转换神经网络 / 186 12.5 经典机器学习 / 189 参考答案 / 191 扩展阅读 / 193