Jag läste RP1-dokumentationen så att du inte behöver göra det

Grundläggande om RP1 Titel Bild

En av de mest anmärkningsvärda funktionerna i den nya Raspberry Pi 5 är införandet av RP1 - det första egenutvecklade kiselchipet i en Raspberry Pi flaggskeppsprodukt. I den här artikeln vill jag gå igenom de viktigaste egenskaperna hos RP1 och berätta vad som gör det så revolutionerande.

Tyvärr kan den här artikeln inte motsvara en "Allt om RP1", eftersom de inte har släppt den fullständiga dokumentationen ännu.

Istället har de släppt en 90-sidigt utkast till datablad som går igenom några av grunderna för RP1.

Raspberry Pi 5-komponenter

Så låt oss börja med RP1:s historia.

Historia

RP1 är alltså det längst pågående interna kiselprojektet på Raspberry Pi. Det är därför det kallas "RP1“.

I tillkännagivandet av Raspberry Pi 5 skrev Eben Upton: "RP1 har utvecklats sedan 2016 och är med god marginal det längsta, mest komplexa och (med $15 miljoner) dyraste program som vi någonsin har genomfört här på Raspberry Pi."

Det är den längst pågående, mest komplexa, och dyraste program.

Det är dock inte det första egenutvecklade kisel som Raspberry Pi har släppt. För det måste du vända dig till RP2040, som är mikrokontrollern på Pico och Pico W. Så de lanserade RP2040 2021, även om programmet faktiskt startade senare.

Internt på Raspberry Pi kallade alla RP1 för "Projekt Y".

Så låt oss dyka in i vad RP1 handlar om.

Funktioner

Med tidigare modeller var i princip all I/O integrerad i huvudprocessorn.

Huvudidén bakom RP1 är alltså att separera I/O från huvudprocessorn - i det här fallet Broadcom BCM2712. Det är alltså en sydbrygga som tar över de allra flesta I/O-funktionerna för Raspberry Pi 5.

Detta har ett antal effekter - en av dem är att erbjuda mindre geometriprocesser för huvudprocessorn. BCM2712, som vi redan har berättat om, är tillverkad i 16nm processnoder.

Samtidigt är RP1 själv på 40nm processnoder.

Detta gör att huvudprocessorn kan fokusera på mer komplexa uppgifter.

BCM2712 tar alltså över de snabbaste gränssnitten, medan de långsammare gränssnitten lämnas åt RP1. Jag kommer att förklara det mer i nästa avsnitt.

Men de två chipen - RP1 och BCM2712 - arbetar tillsammans och ansluts via en PCIe 2.0-buss med fyra körfält. Det är en snabb anslutning, men det är oundvikligt att det finns en viss latens mellan de två.

PCIe-banorna mellan RP1 och BCM2712
PCIe-banorna mellan RP1 och BCM2712.

Låt oss gå över till de interna specifikationerna för RP1.

Jag har inkluderat en bild nedan av diagrammet för RP1 som referens.

RP1 innehåller alltså två processorkärnor baserade på Arm Cortex-M3-arkitekturen (Cortex M3 0 och Cortex M3 1 i de röda rutorna längst upp till vänster i diagrammet).

Det har också en DMA-kontroller med åtta kanaler, vilket gör att chipet kan hantera dataöverföringar för upp till åtta olika periferienheter samtidigt.

Chipet har tre integrerade PLL:er: 2 fraktionella N PLL för att generera oberoende video- och ljudklockor, och 1 heltals PLL för att generera systemklockor.

RP1 har också en analog-till-digital-omvandlare (ADC) med 12 bitars upplösning och fem ingångar för successiv approximation som arbetar med 500 kSPS, med fyra externa ingångar och en intern temperatursensor.

Om du tittar på diagrammet nedan ser du en gul ruta längst ned till vänster där det står "Shared SRAM 128bit 64kB) 4x 4kx32". Detta hänvisar till att det finns en 64kB del av minnet som är tillgängligt för både BCM2712 och RP1 bus masters.

Detta minne består av fyra separata block, som vart och ett består av 4 kilobyte och kan överföra data med 32 bitar åt gången.

Slutligen har RP1 timebase-generatorer som du kan konfigurera för att styra DMA. De är där främst för att öka DMA samt för att stabilisera GPIO-ingångshändelser.

Här är en bild av den interna arkitekturen i RP1 från databladet:

RP1:s arkitektur
Kredit: RP1 datablad.

På den bilden kan du alltså se hur RP1 fungerar i stort, men du kan också se vilka perifera funktioner den styr.

Perifera kontroller

Du kan se följande till höger, med början längst ner: GPIO, USB 3 PHY, USB 2 PHY, USB 3 PHY, USB 2 PHY, MIPI DPHY, MIPI DPHY, VDAC och RGMII.

RP1 styr alltså GPIO-stiften och deras tillhörande perifera gränssnitt: SPI, UART, I2C, PWM, I2S. Den styr också Delta Sigma PWM-ljudutgången, men du kan inte få typiskt analogt ljud, eftersom Raspberry Pi 5 inte har något ljuduttag.

Den styr även USB 2.0- och USB 3.0-portarna - varje värdkontroller hanterar en nedströms USB 2.0- och USB 3.0-port. Enligt databladet innebär detta att "varje nedströmsport har oberoende och obegränsad bandbredd"

Enligt Liam Fraser "[P]å grund av PCIe-länkens bandbredd bör vi kunna köra båda USB 3-portarna med full bandbredd." Detta är en enorm uppgradering från Raspberry Pi 4!

PCIe från RP1 till USB
Vilka vackra banor.

RP1 ansvarar för MIPI-transceivrarna, som är fyra körfält som stöder DSI och CSI-2.

Den har en 3-kanals video digital-till-analog omvandlare som stöder PAL/NTSC och VGA.

Och slutligen är det också RP1:s ansvar att kontrollera Gigabit Ethernet MAC.

Vid det här laget kanske du undrar över PIO. Tyvärr finns det en hel del information som vi helt enkelt inte har för tillfället, eftersom de inte har släppt all dokumentation för RP1.

Vad vi vet är att PIO-blocket i RP1 fungerar lite annorlunda än RP2040. Så även om det finns ett PIO-block med fyra tillståndsmaskiner (som RP2040), har det dubbla FIFO-djupet. Kolla in den här kommentaren från Luke Wren:

Så det är vad vi vet om perifera kontroller för närvarande.

Håll ögonen öppna, för med tiden kommer de definitivt att släppa en betydande mängd information om RP1.

Nackdelar

Vi har pratat om några av de coola sakerna med RP1, men det är inte bara en dans på rosor.

Det första är uppenbarligen att PIO på RP1 fungerar annorlunda än RP2040. Kolla in den här kommentaren från Phil:

En annan av nackdelarna med att separera I/O-controllern från huvudprocessorn är att man introducerar en viss latens.

Enligt databladet är denna latens "typiskt 1μs vid designlänkens bredd och hastighet", vilket kan vara ett problem "för applikationer som är beroende av snabba men lägliga skrivsekvenser, t.ex. bitbasade protokoll, eller applikationer som behöver svara snabbt på tillståndsändringen hos en pin".

Hur ser framtiden ut?

En av de stora frågorna är om Raspberry Pi kommer att sälja RP1 separat eller inte. Trots allt, de säljer RP2040 separat. I en kommentar för några dagar sedan hade Alasdair Allan på Raspberry Pi följande svar:

Det kan naturligtvis vara en undanflykt eller så kan det vara ett riktigt svar att vi inte ska förvänta oss en separat RP1. Med den frågan får framtiden utvisa.

Det skulle vara fantastiskt om de sålde RP1 separat, enligt min mening.

Ett av de mest intressanta alternativen har dock kommit från Jeff Geerling:

Kanske kommer Raspberry Pi att ge oss båda vid något tillfälle - ett separat RP1-chip och ett PCIe-kort!

Vi får vänta och se.

Tävling och nyhetsbrev

Vi vet hur frustrerande det är att behöva vänta till den 23 oktober på en Raspberry Pi 5.

Därför ville vi göra det möjligt för dig att leka med en så snart som möjligt.

Därför har vi skapat en tävling: Vad är det galnaste du kan hitta på för Raspberry Pi 5?

Raspberr Pi 5-tävling

Förutsatt att din idé inte förstör den kan du skicka din idé till oss så genomför vi den på vår - och skriver en artikel om den!

Vi tillkännager vinnaren här och på buyzero.de den 23 oktober.

Den vinnande idén (som bestäms av oss) kommer att vinna ett komplett Raspberry Pi 5-kit - inklusive ett 27 W USB-C Power Delivery (PD) nätaggregat, ett Raspberry Pi 5-fodral, ett SD-kort och en Raspberry Pi 5. Allt med fri frakt inom EU.

Andrapristagaren vinner en Raspberry Pi 5 med fri frakt inom EU.

Så se till att skicka in dina idéer - du kan gå till följande länk för mer information: VINN EN GRATIS RASPBERRY PI 5!

Slutsats

Så där har du det: det viktigaste om RP1.

Som jag betonade i början kan dock en del av denna information komma att ändras. Vi kommer att publicera en ny artikel när Raspberry Pi släpper mer permanent dokumentation.

Under tiden kan du läsa några av våra andra artiklar om Raspberry Pi 5:

Vill du se RP1 säljas separat? Eller kanske ett PCIe-kort som Jeff Geerling?

Låt oss veta i kommentarerna nedan!

1 Kommentar

  1. Renato den oktober 15, 2023 kl 5:36 e m

    Intressant att separera huvudprocessorn från alla perifericos de E/S i huvudchipet,
    quizas no desean vender por separado al RP1 por tener solo nucleos M3, y que tendrian que competir con nucleos M4 y M7

Lämna en kommentar