Jishu Reading is a reading column launched by the Jishu Community. The Jishu Reading column regularly recommends books and technical management books in the fields of embedded systems, artificial intelligence, the Internet of Things, cloud computing, security, and semiconductors, and organizes community book donation activities and author webinars to facilitate reader interaction. We welcome you to follow Jishu Reading (https://aijishu.com/books).
Book Overview
Please note that prior knowledge of Cortex-M processors, basic DSP theory, and a foundation in C language and Arm assembly language is required to read this book.
Book Features
-
Professional reference book on Arm Helium technology.The book is authored by experts in Arm processors, providing readers with professional theoretical learning of Arm Helium technology.
-
Clear themes and strong practicality.The book has clear themes, making it easy for readers to learn. It also introduces the encoding mechanisms of processor cores with Helium capabilities, such as Arm Cortex-M55, and how to implement DSP and ML workloads.
Author Profile
Translator Profiles
Table of Contents Overview
-
Chapter 1 Introduction
-
1.1 Introduction to Helium -
1.2 Armv8.1-M Architecture -
1.3 Comparison with Other Arm SIMD/DSP Features
-
1.3.1 Helium vs. Neon -
1.3.2 Helium vs. Scalable Vector Extension -
1.3.3 Helium vs. Cortex-M DSP Features -
1.3.4 Helium vs. Dedicated DSP
-
1.4 Helium Use Cases -
1.5 Questions
-
Chapter 2 Introduction to SIMD/Vector Processors
-
2.1 SIMD/Vector Processing -
2.2 Floating Point and Fixed Point
-
2.2.1 Saturation Operations -
2.2.2 Fixed Point and Floating Point DSP -
2.2.3 Helium Floating Point Format -
2.2.4 C Data Types and Primitives
-
2.3 Questions
-
3.1 Basic Concepts of Helium -
3.1.1 Helium Registers -
3.1.2 Channels -
3.1.3 Vector Blocks and Beats -
3.1.4 Instruction Examples -
3.2 Helium Vector Processing -
3.3 Low Overhead Branch Extension -
3.4 Tail Prediction -
3.5 Helium Instruction Set -
3.5.1 Basics of the Instruction Set -
3.5.2 Instruction Modifiers -
3.5.3 Instruction Forms -
3.6 Questions
-
Chapter 4 Data Processing Instructions
-
4.1 Arithmetic Operations -
4.1.1 Addition and Subtraction -
4.1.2 Absolute Value -
4.1.3 Shifting -
4.1.4 Logical Operations -
4.1.5 Minimum and Maximum Values -
4.1.6 Format Conversion and Rounding -
4.1.7 Bit Counting -
4.1.8 Element Reversal -
4.2 Multiplication Operations -
4.2.1 Multiplication Instructions -
4.2.2 Multiply-Add Instructions -
4.2.3 Complex Number Operation Instructions -
4.2.4 Fixed Point Complex Multiplication -
4.3 Data Movement -
4.4 Comparison and Prediction -
4.5 Questions
-
Chapter 5 Memory Access Instructions
-
5.1 Vector Load and Store -
5.2 Discrete-Aggregate -
5.3 Interleaved and De-Interleaved Load/Store -
5.4 Questions
-
Chapter 6 Helium Branch, Scalar, and Other Instructions
-
6.1 Low Overhead Branch Extension -
6.2 Armv8.1-M Scalar Instructions -
6.2.1 Conditional Execution -
6.2.2 General Register Shifting -
6.3 Other Instructions
-
Chapter 7 Helium Programming
-
7.1 Compilers and Tools -
7.1.1 Arm Compiler 6 -
7.1.2 GCC Helium Features -
7.1.3 Debugging, Tracing, and Profiling Helium CPU Cores -
7.2 Helium Programming Methods -
7.3 Vector Libraries -
7.4 Automatic Vectorization -
7.4.1 Using Vectorizing Compilers -
7.4.2 Programming for Automatic Vectorization -
7.4.3 Automatic Vectorization Examples -
7.5 Helium Primitive Functions -
7.5.1 Primitive Programming -
7.5.2 Primitive Prediction -
7.5.3 Primitive Dot Product Example -
7.5.4 Primitive Discrete-Aggregate Example -
7.5.5 Primitive Tail Handling -
7.5.6 Primitive Function Workflow -
7.6 Helium Assembly Code -
7.6.1 Inline Assembly Code -
7.6.2 Inline Assembly Examples -
7.6.3 Native Assembly Language Functions -
7.7 Porting DSP Code from Other Architectures -
7.8 Helium Low-Level Code -
7.8.1 Enabling Helium -
7.8.2 Detecting Helium -
7.8.3 Exception Handling -
7.9 Questions
-
Chapter 8 Performance and Optimization
-
8.1 Code Profiling and Performance Evaluation
-
8.1.1 Helium Performance Counters and Ratios -
8.1.2 Embedded Trace Macrocell
-
8.2 Performance Considerations -
8.3 Performance and Cortex-M Memory System
-
8.3.1 Cache -
8.3.2 Tight Coupling Memory
-
8.4 Performance Considerations for Dual Vector Block Microarchitecture -
8.5 Performance Examples -
8.6 Questions
-
Chapter 9 Basics of DSP
-
9.1 Matrix Operations -
9.1.1 Matrix Multiplication -
9.1.2 Matrix Transposition -
9.2 Fourier Transform -
9.2.1 Introduction to Fourier Transform -
9.2.2 Fast Fourier Transform -
9.2.3 FFT Example
-
Chapter 10 DSP Filtering
-
10.1 Convolution -
10.2 Filters -
10.2.1 Introduction to FIR Filters -
10.2.2 FIR Filter Example
-
Chapter 11 Application Examples
-
11.1 Image Processing -
11.2 Encryption -
11.2.1 Large Number Arithmetic -
11.2.2 Polynomial Multiplication
-
Chapter 12 Neural Networks and Machine Learning
-
12.1 Introduction to Neural Networks -
12.1.1 Convolutional Neural Networks -
12.1.2 Recurrent Neural Networks -
12.2 CMSIS-NN -
12.2.1 CMSIS-NN Optimization -
12.2.2 CMSIS-NN Helium Optimization -
12.3 TensorFlow Lite for Microcontrollers -
12.3.1 TensorFlow Lite for Microcontrollers and CMSIS-NN -
12.3.2 Model Conversion -
12.3.3 Deploying Models on Helium Cortex-M CPUs -
12.3.4 Keyword Detection Example -
12.4 Converting Neural Networks for Helium -
12.5 Classical Machine Learning
Book Purchase
Arm Helium Extension Technology Classroom
-
Helium Technology Lecture | Overcoming the Impact of Amdahl’s Law -
Helium Technology Lecture | Using Circular Buffers -
Helium Technology Lecture | Sudoku, Registers, and the Power of Belief -
Helium Technology Lecture | Why Not Directly Use Neon?
Reprinted from | Jishu Community
Copyright belongs to the original author, if there is any infringement, please contact for deletion
END
关于安芯教育
安芯教育是聚焦AIoT(人工智能+物联网)的创新教育平台,提供从中小学到高等院校的贯通式AIoT教育解决方案。
安芯教育依托Arm技术,开发了ASC(Arm智能互联)课程及人才培养体系。已广泛应用于高等院校产学研合作及中小学STEM教育,致力于为学校和企业培养适应时代需求的智能互联领域人才。