EMB_90

EMBEDDED 90 • NOVEMBRE • 2023 37 biettivo di sostituire i core DSP di livello medio basso che vengono aggiunti esternamente per eseguire l’e- laborazione direttamente sul microcontrollore prin- cipale. Anziché limitarsi al porting della tecnologia Neon, gli sviluppatori di Helium l’hanno progettata da zero per tenere conto delle dimensioni sempre più piccole dei chip e per supportare un maggior numero di tipi di dati e un set di istruzioni maggiore di quel- lo di Neon, come le istruzioni LOB (Low-Overhead Branches) e predicate. Helium si basa su 8 registri vettoriali, riutilizzando i normali registri FPU come registri vettoriali, ciascuno a 128-bit. He lium si pone l’obiettivo di migliorare sostanzial- mente le prestazioni dei comuni kernel AI/ML e DSP eliminando alcuni “colli di bottiglia” prestazionali ricorrenti e aggiungendo una varietà di funzionalità che includono: Ov erlapping pipeline: Helium è costituito da 8 regi- stri vettoriali, di lunghezza 128-bit, dove ogni quarto è identificato dal nome “beat” (dimensione 32-bit). Per consentire una maggiore efficienza di elaborazione, la tecnologia Helium sfrutta il concatenamento vet- toriale per eseguire parallelamente pipeline sovrap- poste del vettore di carico (load vector) e del vettore di MAC, come mostrato nella figura 1. In ogni ciclo di clock, le pipeline sovrapposte eseguono le istruzio- ni MAC sul “beat” precedentemente caricato mentre caricano il successivo “beat”. Cortex-M85 utilizza un data path a 64-bit detto “dual beat”, per 2 cicli da 128- bit. Questo processo di sovrapposizione è conosciuto come esecuzione “beatwise”. [1][2] Og ni beat può essere ulteriormente suddiviso ed ela- borare diversi tipi di dato in modo efficiente, per ciclo di clock, come segue: • 2x Q31/int32 • 4x Q15/int16 • 8x Q7/int8 • 2x fp32 • 4x fp16 Ti pi di dato: per consentire al CM85 di essere im- piegato in un ampio range di applicazioni, Helium supporta un’ampia gamma di tipi di dato vettoriale, come segue [1]: • Ve ttore intero/virgola fissa a 8 bit, ampiamente utilizzato nei modelli ML quantizzati e solitamen- te non disponibile nei DSP di livello medio-basso • Ve ttore intero/virgola fissa a 16 bit • Ve ttore intero/virgola fissa a 32 bit • Ve ttore a virgola mobile a mezza precisione a 16 bit, utilizzato nella pre-elaborazione di dati in tempo reale, come le applicazioni di rilevamento; consente il mantenimento di un intervallo dina- mico elevato, con la metà dei requisiti di elabo- razione. Questa funzionalità è unica dei core CM con architettura M8.1 • Ve ttore a virgola mobile a precisione singola a 32 bit • He lium supporta anche nativamente l’elabora- zione di valori complessi per numeri interi e in virgola mobile, in modo efficiente, utile per l’ela- borazione del segnale (per esempio, per FFT) Mi glioramento della “branch prediction” (predi- zione delle diramazioni)/ ottimizzazione dei loop: come menzionato prima, la tecnologia Helium ag- Fig. 1 – Esecuzione “Beatwise” nella tecnologia Helium MCUs | HARDWARE

RkJQdWJsaXNoZXIy Mzg4NjYz