Maixduino : processeur RISC-V K210
Salut.
Le kit Maixduino de Sipeed est équipé d'un processeur RISC-V développé par la société chinoise Canaan et appelé K210 (K pour Kendryte).
Ce processeur est basé sur une architecture de jeu d'instructions (Instruction Set Architecture) libre RISC-V. Le projet RISC-V est intéressant car c'est un projet de matériel libre (open hardware) que peut implanter tout un à chacun. On vous dit bien sûr quoi faire mais pas comment le faire.
Il existe à l'heure actuelle peu de processeurs RISC-V hardcores et qui supportent Linux en plus. On peut citer :
- Le processeur SiFive U540 de la société SiFive qui est le premier processeur hardcore supportant Linux comportant 4+1 cœurs RISC-V 64 bits.
- Le processeur Kendryte K210 comportant 2 cœurs RISC-V 64 bits et un processeur d'Intelligence Artificielle (IA) et supportant Linux et FreeRTOS.
- Le microcontrôleur GD32V de la société GigaDevice.
Il existe aussi des implantations en tant que processeurs softcores. On peut citer :
- Le projet LowRISC. On a un processeur RISC-V 64 bits. Le projet LowRISC peut tourner sur une carte FPGA Nexys 4 DDR ou A7 de Digilent et supporte Linux.
La codification d'un processeur RISC-V est normalisée. Le préfixe est RV (pour RISC-V) suivi de 32, 64 ou
128 selon la taille du processeur puis suivi de I ou E (pour Embedded). Exemple : RV32I, RV64I...
Le préfixe est suivi d'une ou plusieurs lettres décrivant les extensions rajoutées :
- M : Standard Extension for Integer Multiplication and Division
- A : Standard Extension for Atomic Instructions
- F : Standard Extension for Single-Precision Floating-Point
- D : Standard Extension for Double-Precision Floating-Point
- G : raccourci pour MAFD
- Q : Standard Extension for Quad-Precision Floating-Point
- C : Standard Extension for Compressed Instructions. Instructions courtes sur 16 bits
Par exemple, le microcontrôleur GD32V est un RISC-V RV32IMAC. Le processeur K210 est un RISC-V RV64IMAFDC ou de façon plus concise un RISC-V RV64GC.
Le processeur K210 possède les fonctionnalités suivantes :
Le processeur K210 vise des applications d'IA et de traitement du son :
- Détection d'objets
- Classification d'images
- Détection et reconnaissance de visages
- Obtention de la taille et des coordonnées d'une cible en Temps Réel
- Détection de l'orientation d'une source de son
- Reconnaissance de la voix
- ...
Le processeur K210 contient différents périphériques :
- 2 coeurs RISC-V RV64GC à 400 MHz
- 1 processeur KPU (Knowledge Processor Unit) pour l'IA et accélérateur de calcul pour un réseau de neurones convolutionnel CNN
- 1 processeur APU (Audio Processor Unit) pour le traitement du son
- 1 accélérateur pour les transformées de Fourier rapides FFT et IFFT sur 64, 128, 256 ou 512 points
- Accélérateurs pour le chiffrement SHA256 et AES128, AES192 et AES256
- 8 Mo de SRAM
- Transferts DMA
- Périphériques divers : UART, GPIO, SPI, I²C, I²S, WDT, TIMER, RTC...
- JTAG
- ...
Des kits de développement sont disponibles pour le processeur K210 :
- Kit Kendryte KD2333 de Canaan. Ne semble plus disponible
- Kit Maixduino de Sipeed pour 23,90 USD
- Kit MaixCube de Sipeed pour 24,90 USD
- Kit Maix Go de Sipeed pour 40,90 USD
- Kit Maix Bit Suit de Sipeed pour 20,90 USD
Il faut noter que la société Sipeed a intégré le processeur K210 dans un module qu'elle a développé : le module Maix-I.
Le module Maix-I ou M1 intègre outre le processeur K210 16 Mo de mémoire Flash et une interface Wifi (M1w à 8,90 USD) ou non (M1 à 7,90 USD). Il permet de réaliser plus facilement sur propre circuit PCB.
La figure suivante montre le module M1.
++