Arm Helium技術指南:Cortex-M系列處理器的矢量運算擴展

Marsh, Jon 譯者 張湘楠//曹凱//常玲浩//梅濟東

商品描述

本書是學習ArmHeliumMVE技術的理想指南。
Helium為微控制器帶來了令人興奮的新功能,使複雜的數位訊號處理或機器學習應用程式能夠在廉價、低功耗的裝置上運作。
本書首先從易於理解的層面介紹了Helium的基本概念,包括單指令多資料(SIMD)、向量處理、浮點和定點資料表示以及飽和運算等。
然後,將指令集分解為幾個部分進行詳細探討,包括管線結構、預測和分支處理、資料處理及記憶體存取等主題。
此外,也介紹了Cortex-M55等Helium核心技術的編碼機制,包括編譯、除錯和最佳化。
本書的結尾是重要部分,介紹如何實現DSP和ML工作負載。
閱讀本書的前提是具備Cortex-M處理器和基本DSP理論知識以及C語言和Arm彙編語言基礎。

目錄大綱

譯者序

前言
第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
第44章資料處理指令/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 FFTFT範例/155
第10章DSP濾波/157
10.1 卷積/157
10.2 濾波器/158
10.2.1 FIR濾波器簡介/158 10.2.2 FIR濾波器/158 10.2.1 FIR濾波器簡介/158
10.2.2 FIR濾波器範例/159
第11章應用範例/161 11.2.2 FIR濾波器範例/159第11章應用範例/161
11.1 影像處理/161/
1611/161 加密/165
11.2.1 大數算術/165
11.2.2 多項式乘法/167
第12章神經網路與機器學習/175
12.1 神經網路簡介/176
12.1.1 卷積神經網路/177
12.1.2 循環神經網路/178
12.22.22. -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
參考答案