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
  • ...
Les spécifications du processeur K210 sont disponibles ici (fichier kendryte_datasheet_20181011163248_en.pdf).

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.

++
Vus : 593
Publié par Eddy33 : 81