sabato 3 febbraio 2018

HiFive Unleashed

Dopo le mazzate di Meltdown e Spectre che ci hanno fatto capire che i processori Intel sono inaffidabili da almeno vent'anni (caduto il mito della Memoria Protetta, c'è solo da voltar pagina) e che ci hanno dimostrato che alla Intel o sono dei cialtroni che per vent'anni non si sono accorti di bug così seri, oppure li hanno mantenuti apposta per far felici le agenzie di spionaggio - l'unica risposta ragionevole è rassegnarsi a cambiare completamente architettura e a diffidare degli standard chiusi.

Dunque diamo il benvenuto all'architettura Risc-V il cui standard è open e gratuito (e verificabile da chiunque), grosso modo già utilizzabile anche se alcune decisioni "politiche" (come le conditional move) sono ancora incerte.
Ricordiamo che le decisioni "politiche" sui processori commerciali sono sempre state di tipo commerciale anche se agli opposti estremi (come il grado di compatibilità coi precedenti modelli). Gli autori dello standard Risc-V hanno dimostrato che letteralmente tutte le architetture esistenti contengono idiosincrasie e scelte sbagliate dettate da politiche aziendali del momento (per esempio, quando alla SPARC si accorsero che Java sugli Intel andava più veloce, dovettero inventarsi anche loro l'i-cache invalidation per il JIT).
L'architettura Risc-V (si pronuncia risk-five) è in tre versioni: a 32 bit (RV32, idealmente solo per i microcontroller) e 64 bit (RV64, per desktop e altro), entrambe con formato istruzione fisso a 32 bit, e a 128 bit (RV128, ancora in fase di finalizzazione). Lo standard prevede diverse estensioni:
  • I: istruzioni "intere" (versione base dell'architettura)
  • M: include anche istruzioni di moltiplicazione e divisione
  • A: include istruzioni "atomiche" (non interrompibili, necessarie per implementare multitasking e simili)
  • F: include istruzioni floating point 32 bit ("single precision")
  • D: include istruzioni floating point 64 bit ("double precision")
  • G: include tutto il gruppo IMAFD
  • C: include supporto per istruzioni compresse (16 bit anziché 32) 
Altre estensioni sono attualmente in sviluppo ma non ancora finalizzate:
  • Q: istruzioni floating point a 128 bit ("quad precision")
  • L: istruzioni floating point "decimali" (nuovo formato)
  • B: istruzioni di bit-manipulation aggiuntive (ancora in sviluppo)
  • T: memoria transazionale (ancora in fase di sviluppo)
  • P: istruzioni packed (single instruction multiple data, ancora in sviluppo)
Piaccia o no, il futuro è quello (cominciamo allora a familiarizzare con le sigle).

Ecco il primo computer Risc-V che si candiderebbe ad essere il mio prossimo server:
  • HiFive Unleashed
  • CPU 1.5 GHz con quattro core classe RV64GC più un quinto core classe RV64IMAC (cioè senza floating point) da utilizzare per i driver delle periferiche
  • RAM: 8 Gb DDR4 ECC
  • storage: uno slot microSD
  • EEPROM: 32 Mb (per lanciare il boot da microSD)
  • alimentazione a 12V (supporrei 1.5A, non dice quanto consuma)
Il supporto Linux è completo (kernel, librerie, compilatori, ecc.) e all'assenza di un'interfaccia disco si può supplire con un NAS. (Nota: dato che non vantano porte USB, quella in alto a sinistra è probabilmente finta).
In consegna da marzo-giugno. Seguiranno poi versioni con USB e uscita video.

Ovviamente la mazzata è sul prezzo: 999 dollari. Come tutte le novità, il prezzo è spaventoso perché non c'è ancora in giro qualche produttore di modem o stampanti che ne ordini qualche milione di pezzi (cosa che abbasserà drasticamente i costi di produzione).

2 commenti:

  1. Avevo scritto anche un disassembler per Risc-V (non ancora pubblicato), perché il modo migliore di imparare un assembler è... scrivere un disassembler.

    RispondiElimina