求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

ArmHelium技术指南查看源代码讨论查看历史

跳转至: 导航搜索

来自 孔夫子网 的图片

ArmHelium技术指南》,副标题:Cortex-M系列处理器的矢量运算扩展,出版社: 机械工业出版社,ISBN:9787111738718。

截至2022年,机械工业出版社年出版新书近2700种,年引进和输出版权总量近800种,产品横跨科技出版、教育出版、大众出版三大板块,覆盖机械、电工电子、汽车、建筑、计算机、经管、心理[1]、生活、科普、艺术设计、文创等十多个专业领域,以及高等教育[2]职业教育、技能教育等不同教育层次。

内容简介

本书首先介绍了Helium的基本概念,包括单指令多数据(SIMD)、矢量处理、浮点和定点数据表示以及饱和运算等。然后,将指令集分解为几部分进行详细探讨,包括流水线结构、预测和分支处理、数据处理及内存访问等。此外,还介绍了Cortex-M55等Helium核心技术的编码机制,包括编译、调试和优化。zui后,介绍了如何实现DSP和ML工作负载。

目录

译者序

前言

第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

第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

参考文献