Ho letto la documentazione di RP1, quindi non dovete farlo voi.

Elementi essenziali di RP1 Titolo immagine

Una delle caratteristiche più notevoli del nuovo Raspberry Pi 5 è l'inclusione di RP1, il primo chip di silicio progettato internamente su un prodotto di punta di Raspberry Pi. In questo articolo, desidero illustrare gli elementi essenziali dell'RP1 e spiegarvi cosa lo rende così rivoluzionario.

Purtroppo questo articolo non può essere l'equivalente di un "Tutto su RP1", perché non hanno ancora rilasciato la documentazione completa.

Invece, hanno rilasciato un Bozza di scheda tecnica di 90 pagine che illustra alcuni dei fondamenti di RP1.

Componenti del Raspberry Pi 5

Iniziamo quindi con la storia di RP1.

La storia

RP1 è il progetto di silicio interno più longevo di Raspberry Pi. Ecco perché si chiama "RP1“.

Nell'annuncio di Raspberry Pi 5, Eben Upton ha scritto: "In fase di sviluppo dal 2016, RP1 è con un buon margine il programma più lungo, più complesso e (con $15 milioni) più costoso che abbiamo mai intrapreso qui a Raspberry Pi".

È il più longevo, più complesso, e più costoso programma.

Tuttavia, non è il primo silicio sviluppato internamente che Raspberry Pi ha rilasciato. Per questo bisogna rivolgersi all'RP2040, che è il microcontrollore del Pico e del Pico W. Quindi hanno lanciato l'RP2040 nel 2021, anche se il programma è iniziato più tardi.

All'interno di Raspberry Pi, tutti si riferivano all'RP1 come al "Progetto Y".

Vediamo quindi di scoprire le caratteristiche dell'RP1.

Caratteristiche

Nei modelli precedenti, tutti gli I/O erano integrati nel processore principale.

L'idea principale dell'RP1 è quella di separare gli I/O dal processore principale, in questo caso il Broadcom BCM2712. Si tratta quindi di un southbridge che si occupa della stragrande maggioranza delle funzioni di I/O per Raspberry Pi 5.

Questo ha una serie di effetti, uno dei quali è l'offerta di processi a geometria ridotta per il processore principale. Il BCM2712, come abbiamo già detto, si trova su nodi di processo da 16 nm.

Nel frattempo, lo stesso RP1 si trova su nodi di processo da 40 nm.

In questo modo il processore principale può concentrarsi su compiti più complessi.

Quindi, il BCM2712 si occupa delle interfacce più veloci, lasciando le interfacce più lente all'RP1. Lo spiegherò meglio nella prossima sezione.

Ma i due chip - RP1 e BCM2712 - lavorano insieme e si collegano tramite un bus PCIe 2.0 a 4 corsie. È una connessione veloce, ma c'è inevitabilmente una certa latenza tra i due.

Le corsie PCIe tra RP1 e BCM2712
Le corsie PCIe tra RP1 e BCM2712.

Passiamo alle specifiche interne dell'RP1.

Di seguito ho inserito un'immagine dello schema dell'RP1 come riferimento.

L'RP1 contiene quindi due core di processore basati sull'architettura Arm Cortex-M3 (Cortex M3 0 e Cortex M3 1 nelle caselle rosse in alto a sinistra del diagramma).

È inoltre dotato di un controller DMA a otto canali, che consente al chip di gestire i trasferimenti di dati per un massimo di otto periferiche diverse contemporaneamente.

Il chip incorpora tre PLL integrati: 2 PLL frazionali-N per la generazione di clock video e audio indipendenti e 1 PLL intero per la generazione di clock di sistema.

L'RP1 dispone anche di un convertitore analogico-digitale (ADC) a cinque ingressi con risoluzione di 12 bit e funzionamento a 500kSPS, con quattro ingressi esterni e un sensore di temperatura interno.

Se si osserva il diagramma sottostante, si noterà un riquadro giallo in basso a sinistra con la dicitura "Shared SRAM 128bit 64kB) 4x 4kx32". Questo si riferisce al fatto che c'è una porzione di memoria di 64kB accessibile sia dal BCM2712 che dai master del bus RP1.

Questa memoria ha quattro blocchi separati, ognuno dei quali è composto da 4 kilobyte e comprende trasferimenti di dati di 32 bit alla volta.

Infine, l'RP1 dispone di generatori di timebase che possono essere configurati per il ritmo del DMA. Questi generatori servono principalmente a scandire il ritmo del DMA e a stabilizzare gli eventi di ingresso GPIO.

Ecco l'immagine dell'architettura interna dell'RP1 tratta dal datasheet:

In questa immagine si può vedere il funzionamento generale dell'RP1, ma anche quali funzioni periferiche controlla.

Controlli periferici

A destra è possibile vedere i seguenti elementi, a partire dal basso: GPIO, USB 3 PHY, USB 2 PHY, USB 3 PHY, USB 2 PHY, MIPI DPHY, MIPI DPHY, VDAC e RGMII.

Quindi, RP1 controlla i pin GPIO e le interfacce periferiche associate: SPI, UART, I2C, PWM, I2S. Controlla anche l'uscita audio Delta Sigma PWM, ma non è possibile ottenere il tipico audio analogico, perché Raspberry Pi 5 non dispone di un jack audio.

Controlla anche le porte USB 2.0 e USB 3.0: ogni controller host gestisce una porta USB 2.0 e USB 3.0 a valle. Come si legge nella scheda tecnica, ciò significa che "ogni porta a valle dispone di una larghezza di banda indipendente e non limitata".

Secondo Liam Fraser, "grazie alla larghezza di banda del collegamento PCIe, dovremmo essere in grado di far funzionare entrambe le porte USB 3 con la massima larghezza di banda". Si tratta di un enorme miglioramento rispetto al Raspberry Pi 4!

PCIe da RP1 a USB
Che bei vicoli.

L'RP1 è responsabile dei ricetrasmettitori MIPI, che sono quattro corsie che supportano DSI e CSI-2.

È dotato di un convertitore video digitale-analogico a 3 canali che supporta PAL/NTSC e VGA.

Infine, è anche responsabilità dell'RP1 controllare il MAC Gigabit Ethernet.

A questo punto, potreste chiedervi cosa sia il PIO. Purtroppo, al momento non disponiamo di molte informazioni, perché non è stata rilasciata tutta la documentazione per l'RP1.

Ciò che sappiamo è che il blocco PIO nell'RP1 funziona in modo leggermente diverso dall'RP2040. Quindi, pur essendoci un blocco PIO con quattro macchine a stati (come nell'RP2040), la profondità della FIFO è doppia. Date un'occhiata a questo commento di Luke Wren:

Ecco cosa sappiamo al momento dei controlli periferici.

Rimanete sintonizzati, perché con il passare del tempo verranno sicuramente rilasciate molte informazioni sull'RP1.

Aspetti negativi

Abbiamo parlato di alcuni aspetti interessanti dell'RP1, ma non è tutto rose e fiori.

Ovviamente, la prima cosa è che il PIO su RP1 funziona in modo diverso rispetto a RP2040. Si veda questo commento di Phil:

Un altro aspetto negativo della separazione del controller I/O dal SoC principale è l'introduzione di una certa latenza.

Secondo la scheda tecnica, questa latenza è "tipicamente di 1μs alla larghezza e alla velocità del collegamento progettato", il che potrebbe essere un problema "per le applicazioni che si basano su sequenze di scrittura rapide ma tempestive, ad esempio i protocolli bit-bashed, o le applicazioni che devono rispondere rapidamente al cambiamento di stato di un pin".

Cosa ci riserva il futuro?

Uno dei grandi interrogativi è se Raspberry Pi venderà o meno RP1 separatamente. Dopo tutto, vendono RP2040 separatamente. In un commento di qualche giorno fa, Alasdair Allan di Raspberry Pi ha dato la seguente risposta:

Naturalmente, potrebbe trattarsi di una deviazione o di una vera e propria risposta che non dovremmo aspettarci un RP1 separato. Con questa domanda, quindi, solo il tempo ce lo dirà.

Sarebbe fantastico se vendessero l'RP1 separatamente, secondo me.

Una delle alternative più interessanti viene però da Jeff Geerling:

Forse Raspberry Pi ci darà entrambe le cose prima o poi: un chip RP1 separato e una scheda PCIe!

Dovremo aspettare e vedere.

Concorso e newsletter

Sappiamo quanto sia frustrante dover attendere fino al 23 ottobre per avere un Raspberry Pi 5.

Per questo volevamo che foste in grado di giocare con uno di essi il prima possibile.

Abbiamo quindi indetto un concorso: Qual è la cosa più folle che potete inventarvi per Raspberry Pi 5?

Concorso Raspberr Pi 5

A condizione che la vostra idea non lo distrugga, potete inviarci la vostra idea e noi la applicheremo alla nostra - e scriveremo un articolo al riguardo!

Annunceremo il vincitore qui e su buyzero.de il 23 ottobre.

L'idea vincente (determinata da noi) si aggiudicherà un kit Raspberry Pi 5 completo, comprendente un alimentatore USB-C Power Delivery (PD) da 27W, una custodia per Raspberry Pi 5, una scheda SD e un Raspberry Pi 5. Il tutto con spedizione gratuita nell'UE.

Il secondo classificato vincerà un Raspberry Pi 5 con spedizione gratuita nell'UE.

Non dimenticate quindi di inviare le vostre idee: per ulteriori informazioni, visitate il seguente link: VINCERE UN RASPBERRY PI 5 GRATIS!

Conclusione

Ecco quindi gli elementi essenziali di RP1.

Come ho sottolineato all'inizio, alcune di queste informazioni possono cambiare. Ci assicureremo di pubblicare un nuovo articolo quando Raspberry Pi rilascerà una documentazione più definitiva.

Nel frattempo, non dimenticate di dare un'occhiata ad altri articoli su Raspberry Pi 5:

Volete che la RP1 sia venduta separatamente? O forse una scheda PCIe come quella di Jeff Geerling?

Fateci sapere nei commenti qui sotto!

1 commento

  1. Renato in Ottobre 15, 2023 il 5:36 pm

    è interessante separare il processore principale da tutti i perifericos di E/S del chip principale,
    quizas no desean vender por separado al RP1 por tener solo nucleos M3, y que tendrian que competir con nucleos M4 y M7

Lascia un commento