Un microprocesor pe 64-biți pentru aplicații IoT de largă utilizare

by Electronica Azi

Sistemele moderne devin din ce în ce mai complexe și necesită arhitecturi de procesare diverse pentru a gestiona sarcinile de lucru. Integrarea învățării automate (Machine Learning – ML) și a inteligenței artificiale (AI) la marginea rețelei (edge), adesea în sisteme care rulează Linux®, sporește și mai mult complexitatea proiectului final. Aplicațiile critice din punct de vedere al siguranței, cele de control al sistemelor și cele de securitate au nevoie atât de flexibilitatea oferită de Linux, cât și de determinismul sistemelor în timp real pentru controlul hardware-ului. Această combinație stimulează cererea pentru sisteme multi-hart, în care mai multe fire de execuție hardware (“harts”, în terminologia RISC-V®) permit executarea simultană a unor sarcini diferite.

SMP și AMP: flexibilitate și determinism

Arhitecturile de multiprocesare simetrică (SMP – Symmetric Multiprocessing) oferă flexibilitatea necesară pentru rularea unor sisteme de operare avansate, dar adesea nu pot asigura performanța deterministă necesară aplicațiilor în timp real. În schimb, multiprocesarea asimetrică (AMP – Asymmetric Multiprocessing) permite optimizarea în funcție de cerințele fiecărei sarcini, prin izolarea sarcinilor de lucru între unități de procesare distincte, deși această abordare poate fi mai complexă de implementat. Pentru a răspunde acestei provocări, Microchip a utilizat un cluster verificat de fire de execuție hardware RISC-V (“harts”) într-un singur CPU coreplex – un complex de procesare care grupează mai multe hart-uri – rezultând o arhitectură de cip care oferă capabilități AMP pentru o gamă largă de aplicații industriale și de AI la marginea rețelei (edge AI).

Linux și timp real pe aceeași platformă

Microprocesorul PIC64GX integrează un procesor compatibil cu Linux, cu mai multe “hart-uri” (fire de execuție hardware), într-un singur complex de procesare coerent cu subsistemul de memorie, permițând combinarea sistemelor deterministe în timp real cu sistemul de operare Linux într-un singur cluster de procesoare. Această arhitectură permite utilizarea multiprocesării asimetrice (AMP) în aplicații de largă utilizare din domeniul viziunii industriale și al AI la marginea rețelei (edge AI), simplificând dezvoltarea codului care poate rula sub un sistem de operare în timp real, sub Linux sau direct pe hardware, fără sistem de operare (bare metal).

Determinism pentru sarcinile critice

În sistemele de procesare și control în timp real, AMP permite dezvoltatorilor să aloce unități de procesare dedicate sarcinilor sensibile la timp, asigurând performanțe previzibile și menținând o latență redusă. Planificarea proceselor în Linux se realizează, de regulă, fără constrângeri stricte de timp real, ceea ce poate conduce la latențe de întrerupere semnificative și imprevizibile. AMP permite sarcinilor de lucru cu cerințe stricte de timp real să utilizeze un sistem de operare în timp real (RTOS) pentru funcțiile critice de control, menținând, în același timp, funcțiile la nivel de aplicație care rulează sub Linux pe un alt nucleu.

Deși memoriile cache sporesc performanța, ratările de cache (cache misses) pot provoca variații ale timpului de execuție și latențe imprevizibile, conducând la un comportament nedeterminist. Microprocesorul PIC64GX evită această problemă permițând contextelor în timp real să ruleze în memoria LIM (Loosely Integrated Memory), configurată pentru a asigura un acces determinist și pentru a elimina nedeterminismul asociat memoriei cache. Astfel pot fi implementate fluxuri de procesare eficiente, în special pentru sarcinile de lucru din domeniul AI și al învățării automate, reducând la minimum timpii de procesare.

Un cluster RISC-V pentru aplicații complexe

Sistemul se bazează pe un nucleu de procesor E51 RV64IMAC pe 64-biți, cu o frecvență de operare de 600 MHz, care funcționează ca monitor de sistem. Acesta dispune de un subsistem de memorie de 16 KiB cu funcție SECDED (corectarea erorilor pe un singur bit și detectarea erorilor pe doi biți), configurabil fie ca memorie cache L1 de instrucțiuni cu două căi, fie ca memorie de instrucțiuni strâns integrată (ITIM – Instruction Tightly Integrated Memory), precum și de o memorie de date strâns integrată de 8 KiB (DTIM – Data Tightly Integrated Memory) și de o unitate de protecție a memoriei fizice (PMP – Physical Memory Protection).

Însă inima sistemului o constituie complexul de procesare a aplicațiilor, alcătuit din patru nuclee U54 RV64GC pe 64-biți, cu o frecvență maximă de operare de 600 MHz, fiecare oferind o performanță de 3,1 CoreMark/MHz și 1,7 DMIPS/MHz. Acesta utilizează același cluster de procesoare ca FPGA-ul PolarFire® SoC, oferind astfel un subsistem multinucleu fiabil și verificat, precum și un ecosistem de instrumente bine stabilit. Cel de-al cincilea nucleu, E51, gestionează funcțiile de monitorizare ale cipului, dar poate fi utilizat și pentru executarea directă a sarcinilor în timp real sau fără sistem de operare (bare metal).

Arhitectură de memorie flexibilă și protejată

Subsistemul de memorie L1 al fiecărui nucleu U54 include o memorie cache de instrucțiuni de 32 KiB, cu asociativitate pe 8 căi, care poate fi configurată opțional pentru a oferi 28 KiB de memorie de instrucțiuni strâns integrată (ITIM), precum și o memorie cache de date de 32 KiB, cu asociativitate pe 8 căi. În plus, fiecare nucleu dispune de o unitate de protecție a memoriei fizice (PMP – Physical Memory Protection) și de o unitate de gestionare a memoriei (MMU – Memory Management Unit). Subsistemul de memorie include, de asemenea, o memorie L2 flexibilă de 2 MiB, cu mai multe moduri de acces, un controler de memorie integrat compatibil cu diferite tipuri de memorie DDR, o unitate de protecție a memoriei (MPU – Memory Protection Unit) și memorie nevolatilă integrată, utilizată inclusiv pentru pornirea securizată.

Memorie flexibilă pentru acces determinist

Matricea de magistrale CPU cu coerență a memoriei cache și subsistemul flexibil de memorie L2 de 2 MiB reprezintă elemente esențiale pentru funcționarea AMP. Memoria L2 cu funcție de corecție a erorilor poate fi configurată ca memorie cache asociativă pe seturi, cu 16 căi, ca memorie LIM (Loosely Integrated Memory) pentru acces determinist sau în modul de memorie scratchpad coerentă (Coherent Scratchpad Memory), destinat schimbului de mesaje partajate între hart-uri.

Un controler de memorie DDR4/LPDDR4 integrat, pe 36-biți și cu funcție de corecție a erorilor, suportă DDR4 la 1,6 Gbps și un spațiu de adresare de 8 GiB. Subsistemul include, de asemenea, o unitate de protecție a memoriei (MPU – Memory Protection Unit) și o memorie nevolatilă integrată de 128 KiB (eNVM – embedded Non-Volatile Memory) utilizată pentru pornire. Această arhitectură permite o configurare complet flexibilă la pornire, prin alocarea hart-urilor fie sarcinilor în timp real, fie rulării sistemului Linux, beneficiind în același timp de suportul memoriei cache L2.

Implementarea AMP

În terminologia RISC-V, unitățile de procesare sunt denumite fire de execuție hardware sau “harts”, iar fiecare hart din microprocesorul PIC64GX reprezintă un context de execuție independent, capabil să ruleze propriul sistem de operare sau sarcini de lucru bare metal. Clusterul de aplicații cu patru hart-uri poate fi configurat pentru a rula până la două contexte software independente. Fiecărui context i se pot aloca un sistem de operare propriu, regiuni de memorie și resurse hardware. Mecanismele hardware de separare împiedică accesul unui context la resursele alocate celuilalt, iar tentativele de acces nepermise pot fi detectate și gestionate de Hart Software Services (HSS). Hart-ul de monitorizare E51 este dedicat rulării firmware-ului HSS.

HSS funcționează ca bootloader de etapă zero, monitor de sistem și furnizor de servicii de execuție pentru aplicații. Acesta asigură configurarea inițială a sistemului, inițializarea memoriei DDR și inițializarea/configurarea hardware-ului. HSS rulează în principal pe hart-ul E51, în timp ce pe fiecare U54 rulează un set restrâns de funcționalități la nivelul modului privilegiat Machine (M-mode). Acesta pornește unul sau mai multe contexte prin încărcarea imaginii software a aplicației (payload) din mediul de pornire, care poate fi memoria NVM integrată pe cip. HSS furnizează, totodată, servicii de execuție la nivel de platformă / Supervisor Execution Environment (SEE) pentru nucleele sistemelor de operare. De asemenea, suportă pornirea securizată și joacă un rol important în asigurarea partiționării și izolării hardware a contextelor AMP.

Configurarea și comunicarea între contexte

HSS este utilizat și pentru configurarea complexului cu patru hart-uri. De exemplu, acesta poate fi configurat astfel încât Linux să ruleze pe trei dintre hart-urile U54, iar sistemul de operare în timp real Zephyr® să ruleze pe hart-ul U54 rămas. Perifericele pot fi alocate oricăruia dintre cele două contexte.

Un cadru software cu standard deschis, denumit Open Asymmetric Multiprocessing (OpenAMP), furnizează componentele necesare dezvoltării aplicațiilor pentru sistemele AMP. Printre elementele sale cheie se numără Remote Processor Messaging (RPMsg), utilizat pentru comunicația între contexte software independente, și componenta Remote Processor (remoteProc), care asigură gestionarea ciclului de viață al procesorului și al firmware-ului asociat. Împreună, aceste mecanisme facilitează distribuirea sarcinilor de lucru între cele două contexte AMP și comunicarea eficientă dintre acestea.

Sfaturi legate de proiectare

Sarcinile de lucru AMP permit realizarea unor proiecte avansate și implică mai multe componente software care funcționează împreună. Prin partiționarea hardware, AMP permite sarcinilor de lucru cu niveluri diferite de criticitate (mixed-criticality workloads) să îndeplinească cerințele și constrângerile specifice funcționării în timp real.

Dezvoltatorii trebuie să acorde o atenție deosebită hărții și arhitecturii memoriei microprocesorului PIC64GX, metodelor de comunicație RPMsg și RPMsg-Lite, precum și alocării resurselor, inclusiv atribuirea exclusivă a anumitor regiuni de memorie și/sau periferice unui anumit context.

Aplicațiile trebuie să dispună de un canal de comunicație bine definit între contexte, utilizând RPMsg prin intermediul memoriei partajate și stabilind clar structura și conținutul mesajelor transmise. Sarcinile trebuie partiționate astfel încât volumul de lucru să fie împărțit eficient în segmente gestionabile, care pot fi executate de diferitele unități de procesare. Fiecărui hart trebuie să îi fie alocate resurse de memorie suficiente, iar transferul de date între hart-uri trebuie redus la minimum pentru a diminua latența comunicațiilor și a maximiza paralelismul. HSS funcționează ca monitor de sistem și raportează erorile de magistrală, erorile ECC și excepțiile fatale întâlnite de hart-urile U54.

Periferice

În ceea ce privește perifericele, familia de microprocesoare multi-hart PIC64GX include controlere MAC Gigabit Ethernet pentru conectivitate de mare viteză, precum și interfețe USB 2.0 OTG și SD/SDIO 5.1 pentru carduri MMC. Sunt disponibile două interfețe CAN 2.0, cinci UART-uri multimodale, două interfețe SPI și două I²C, precum și un controler de memorie flash Quad SPI cu suport pentru execuție directă din memorie (XIP – Execute-in-Place). De asemenea, este integrat un port PCIe® Gen 2 de tip Root Port, configurabil x1 sau x4.

Securitate

În sistem sunt integrate diverse funcții de securitate pentru a asigura o protecție robustă împotriva amenințărilor. Funcția PUF duală integrată (Physically Unclonable Function) constituie baza unei rădăcini hardware de încredere (root of trust) pentru protejarea cheilor criptografice, împreună cu 56 KiB de memorie nevolatilă securizată (sNVM) și 128 KiB de memorie nevolatilă integrată (eNVM) pe cip.

Arhitectura include, de asemenea, detectoare integrate pentru tentativele de manipulare neautorizată și mecanisme de contracarare, verificări de integritate pentru blocurile de memorie sNVM și eNVM, precum și protecție împotriva atacurilor de analiză diferențială a consumului de putere (DPA – Differential Power Analysis), care pot fi utilizate pentru obținerea cheilor criptografice.

Aplicații

Procesoarele PIC64GX sunt destinate sistemelor embedded de calcul pe o singură placă, controlului motoarelor, procesării în timp real, sistemelor de viziune și aplicațiilor AI/ML. De exemplu, microprocesorul PIC64GX poate fi utilizat pentru agregarea datelor provenite de la senzori și pentru inferență AI, prin rularea unui sistem de operare în timp real într-un context dedicat.

Senzorii pot fi conectați cu ușurință la microprocesorul PIC64GX prin intermediul unor interfețe precum SPI și I²C. Sistemul de operare în timp real poate procesa apoi datele provenite de la senzori, iar interfețe de comunicație precum UART sau CAN pot fi utilizate pentru transmiterea datelor brute sau a informațiilor rezultate în urma procesării, în funcție de cerințele aplicației și de procesarea realizată la marginea rețelei (edge computing).

Pentru sarcinile de viziune computerizată din sistemele embedded, un context Linux separat poate asigura identificarea și clasificarea obiectelor, precum și transmisia video prin interfețe precum Ethernet, toate acestea pe același cip, valorificând capabilitățile AMP. Această abordare permite realizarea unor soluții mai compacte și mai eficiente din punct de vedere al costurilor pentru aplicații industriale sau medicale.

Instrumente

Utilizarea AMP în aplicațiile industriale bazate pe AI devine din ce în ce mai complexă, iar microprocesorul PIC64GX beneficiază de un ecosistem de instrumente care include sisteme de compilare și dezvoltare pentru Linux, sisteme de operare în timp real (RTOS) open-source, VxWorks și soluții oferite de alți furnizori pentru dezvoltarea sistemelor critice din punct de vedere al siguranței. Extensiile MPLAB® oferă opțiuni de configurare și facilitează migrarea de la alte procesoare Microchip. Acestea includ suport pentru Hart Software Services (HSS), pentru care este disponibil codul-sursă al bootloader-ului de etapă zero și al monitorului de sistem.

Este disponibil suport upstream în cadrul ecosistemului Zephyr RTOS și al pachetului de suport pentru placă (BSP – Board Support Package) Linux bazat pe Yocto Project®. Un sistem de build Linux bazat pe Buildroot utilizează kernelul Linux4Microchip, iar începând cu versiunea 2024.10 a platformei software este disponibil și suport pentru Ubuntu® Linux. Acesta include driverele necesare, inclusiv cele pentru perifericele utilizate în dezvoltare. Instrumentele, componentele software și informațiile asociate pot fi găsite în proiectul PIC64GX găzduit pe GitHub: https://github.com/pic64gx

Clusterul face parte din ecosistemul Mi-V deja consacrat, care beneficiază, printre altele, de suport pentru instrumentele Lauterbach și Ashling. Sistemul include funcții de depanare JTAG și câte zece mecanisme hardware de declanșare pentru fiecare CPU, configurabile ca puncte de întrerupere (breakpoints) sau puncte de monitorizare (watchpoints), precum și contoare de performanță.

Concluzie

Microprocesoarele PIC64GX au fost proiectate special pentru implementarea AMP în aplicații embedded inteligente la marginea rețelei, cu niveluri diferite de criticitate. Un cluster robust și verificat, alcătuit din patru nuclee RISC-V pe 64-biți într-un singur coreplex, poate fi configurat în mod securizat la pornire pentru a rula simultan un sistem de operare în timp real și un sistem Linux.

Această arhitectură permite, în special, realizarea unui lanț eficientizat de procesare a imaginilor, care combină inferența AI cu performanța deterministă în timp real. Datorită unui ecosistem matur și bine susținut de instrumente, microprocesorul PIC64GX permite dezvoltatorilor de sisteme embedded să abordeze cu încredere aplicații complexe din domeniile industrial, AI/ML și de procesare în timp real, simplificând dezvoltarea și reducând timpul necesar lansării pe piață.

Autor: Venki Narayanan, Director of Marketing – FPGA Business Unit
Microchip Technology

 

 

Glosar de termeni

AMP (Asymmetric Multiprocessing) – Multiprocesare asimetrică; arhitectură în care diferite nuclee sau hart-uri pot rula sisteme de operare și sarcini independente, optimizate pentru cerințe diferite.

SMP (Symmetric Multiprocessing) – Multiprocesare simetrică; arhitectură în care mai multe unități de procesare partajează același sistem de operare și aceleași resurse.

Hart (Hardware Thread) – Context independent de execuție hardware în arhitectura RISC-V, capabil să execute propriul flux de instrucțiuni.

Coreplex – Complex de procesare care grupează mai multe hart-uri/nuclee și resursele asociate într-o arhitectură coerentă.

RTOS (Real-Time Operating System) – Sistem de operare în timp real, proiectat pentru executarea predictibilă a sarcinilor cu cerințe stricte de timp.

Bare metal – Execuția software-ului direct pe hardware, fără intervenția unui sistem de operare.

LIM (Loosely Integrated Memory) – Mod de utilizare a memoriei care asigură acces determinist, evitând variațiile de latență asociate memoriei cache.

ITIM / DTIM – Memorii strâns integrate dedicate instrucțiunilor, respectiv datelor, care permit acces rapid și predictibil.

HSS (Hart Software Services) – Firmware Microchip care asigură pornirea sistemului, configurarea hardware, monitorizarea și serviciile de execuție pentru hart-uri.

OpenAMP – Cadru software open-source destinat dezvoltării și comunicației între contexte independente într-un sistem AMP.

RPMsg – Mecanism de mesagerie utilizat pentru comunicația între procesoare sau contexte software prin memorie partajată.

PUF (Physically Unclonable Function) – Funcție hardware care exploatează variațiile fizice unice ale unui cip pentru generarea și protejarea informațiilor criptografice.

S-ar putea să vă placă și

Adaugă un comentariu