The digital signal processing capability of a processor has also become a very important indicator to measure its performance. When we select chips, we often use parameters such as DMIPS and MFLOPS to measure computing processing capabilities as key factors, and even become the decisive factor in some projects that require stringent signal processing capabilities. (Note, hehe, to save you from going to Google Baidu: DMIPS is millions of integer operations per second, and MFLPS is millions of floating-point operations per second. For those of us who are engaged in single-chip microcomputers, I hope you will remember these two parameters) Having said the general direction, hehe, let's turn to the specific direction. In the embedded field, the requirements for signal processing have shifted from dedicated processors to hybrid microcontrollers. People often expect a chip to provide excellent digital signal control while providing flexibility for effective other processing operations. Therefore, in February last year, ARM released the Cortex-M4 core, which provides solutions for digital signal control, which is our legendary DSC. It has taken a leading position in the field of low-power digital signal microcontrollers. Here, we have to praise ARM's keen market orientation and business opportunity capture. Simply put, M4 is equivalent to M3+DSP instructions, hehe. If we use an official statement about cortex-M4, it is "the Cortex-M4 processor perfectly combines efficient signal processing capabilities and many unparalleled advantages of the Cortex-M series processors, including low power consumption, low cost and ease of use, designed to meet the needs of emerging and flexible solutions", which is official enough, hehe. The Cortex-M4 core has a single-clock cycle multiplication and accumulation (MAC) unit, optimized single instruction multiple data (SIMD) instructions, saturation operation instructions and an optional single-precision floating-point unit (FPU), so it is not an exaggeration to say that it is a simple DSC. After finishing the conversation, ARM changed its name to FSL. Wow, I am advertising for these two companies. Haha. Not long after ARM released the M4 core, Freescale released the industry's first Kinetis series MCU for Cortex-M4 in June. They acted quickly enough. 90nm process, up to 150MHz main frequency, rich peripherals, etc., created Kinetis. Among the 7 members of the Kinetis family (Kinetis X will be added next year, I mentioned it in an article, haha), K10, K20, K60, K70 have optional single-precision floating-point units. Below I will briefly talk about some features of the Cortex-M4 DSP. Pay attention, I have to post pictures again, hehe~
Figure 1. The core architecture of Cortex-M4. Its ARMv instruction set is ARMv7E-M. Pay attention, this is not the ARM7 we always talk about. The instruction set and the core are not the same thing, hehe. (1) For digital signal processing, the saturation algorithm is a very important function (if you have not heard of the saturation algorithm, you can go to Google to search for it. Haha, you need to make up for it). The above figure, from left to right, is the original waveform signal, the standard CPU algorithm (look, it is completely distorted. This is because the overflow after saturation causes an operational error, resulting in serious distortion), and the DSP instruction with the saturation algorithm (it can be seen that the overflow part is at most filtered out, and the rest is normal). You can see the effect, haha. Our Cortex-M4 core belongs to the third type. Awesome, isn't it? (2) Data types supported by the Cortex-M4 core. The fixed-point data M4 supports 8-bit, 16-bit, 32-bit and 64-bit, and the floating-point data supports 8-bit, 16-bit and 32-bit. (3) Some DSP instructions supported by the Cortex-M4 core, including saturation instructions (mentioned above), multiply-add instructions (MAC, single cycle), and single instruction multiple data instructions (SIMD). (4) Algorithm support, including filtering algorithms (the most commonly used FIR and IIR algorithms), conversion between domains (frequency to time domain, time domain to frequency, etc., FFT, DCT, etc.), closed-loop control, etc. Of course, after introducing these features, what everyone is most concerned about is how to use it. Haha, don't worry, the Cortex-M4 processor is fully supported by the Cortex Microcontroller Software Interface Standard (CMSIS). At the same time, ARM is expanding CMSIS and will add a C compiler that supports the Cortex-M4 extended instruction set (this is a blessing for our C enthusiasts, haha, after all, although assembly language is better in optimization, it is too difficult to remember), and ARM is also perfecting a DSP optimization library, which includes digital filtering algorithms and other basic functions, such as mathematical calculations, trigonometric calculations, and control functions. Digital filtering algorithms will also be able to be used in conjunction with filter design tools and design toolkits (such as MATLAB and LabVIEW). Of course, this is all later. I haven't actually used it in specific applications, so I can't give you too much reference. I look forward to the answers and sharing of experts in this regard, haha~ But in the end, although Cortex-M4 has a DSP extended instruction set, it only has simple DSP features, and the gap is still very large compared to those powerful dedicated DSP chips. However, after all, the market positioning is different, and we can't expect it to give us too much DSP enjoyment. For projects that are sensitive to DSP functions, this chip is not a good choice. However, for some simple motor control and cost-sensitive projects, pay attention, this should be a good choice~ The attachment is a DSP design document about Kinetis based on Cortex-M4 sent by IAR company a few days ago. The introduction in it is richer than what I said, and it is all in English (oh, the importance of English is reflected again, haha). However, it is only part 1, and the other part part 2 is not available. When I find it, I will upload it to this blog or start another one. It seems that part 2 will be an example of DSP application of motor drive. Haha, look forward to it~ The latest addition (2011.12.24) is part 2 of IAR's official DSP design document based on Cortex-M4 (analyzing the DSP application of M4 with motor drive as an example). Now part 1+part 2 are complete. This is a complete DSP design solution. Those who are interested can take a look.