開啟主選單

求真百科

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

參考文獻