Przeczytałem dokumentację RP1, więc nie musisz tego robić

Podstawy RP1 Obraz tytułowy

Jedną z najbardziej godnych uwagi cech nowego Raspberry Pi 5 jest włączenie RP1 - pierwszego samodzielnie zaprojektowanego układu krzemowego we flagowym produkcie Raspberry Pi. W tym artykule chciałbym omówić najważniejsze cechy RP1 i powiedzieć, co czyni go tak rewolucyjnym.

Niestety, ten artykuł nie może być odpowiednikiem "Wszystko o RP1", ponieważ nie wydano jeszcze pełnej dokumentacji.

Zamiast tego wypuścili 90-stronicowy projekt arkusza danych który omawia niektóre z podstaw RP1.

Komponenty Raspberry Pi 5

Zacznijmy więc od historii RP1.

Historia

RP1 to najdłużej działający wewnętrzny projekt krzemowy Raspberry Pi. Dlatego też nosi nazwę "RP1“.

W zapowiedzi Raspberry Pi 5, Eben Upton napisał: "Rozwijany od 2016 roku, RP1 jest z dużym marginesem najdłużej trwającym, najbardziej złożonym i (za $15 milionów) najdroższym programem, jaki kiedykolwiek podjęliśmy w Raspberry Pi".

To najdłużej działający, najbardziej złożonyoraz najdroższy program.

Nie jest to jednak pierwszy opracowany wewnętrznie krzem, który Raspberry Pi wypuściło. W tym celu należy zwrócić się do RP2040, który jest mikrokontrolerem w Pico i Pico W. Tak więc uruchomili RP2040 w 2021 roku, mimo że program faktycznie rozpoczął się później.

Wewnętrznie w Raspberry Pi wszyscy nazywali RP1 "Projektem Y".

Przejdźmy więc do tego, czym jest RP1.

Cechy

W poprzednich modelach w zasadzie wszystkie wejścia/wyjścia były zintegrowane z głównym procesorem.

Główną ideą RP1 jest więc oddzielenie I/O od głównego procesora - w tym przypadku Broadcom BCM2712. Jest to więc mostek południowy, który przejmuje zdecydowaną większość funkcji I/O dla Raspberry Pi 5.

Ma to wiele skutków - jednym z nich jest oferowanie procesów o mniejszej geometrii dla głównego procesora. BCM2712, jak już wspomnieliśmy, jest wykonany w procesie 16 nm.

Tymczasem sam RP1 znajduje się w 40 nm węźle procesowym.

Dzięki temu główny procesor może skupić się na bardziej złożonych zadaniach.

Tak więc BCM2712 przejmuje najszybsze interfejsy, pozostawiając wolniejsze interfejsy dla RP1. Wyjaśnię to bardziej szczegółowo w następnej sekcji.

Oba układy - RP1 i BCM2712 - współpracują ze sobą i łączą się za pośrednictwem 4-pasmowej magistrali PCIe 2.0. Jest to szybkie połączenie, ale nieuniknione są pewne opóźnienia między nimi.

Pasy PCIe pomiędzy RP1 i BCM2712
Pasy PCIe między RP1 i BCM2712.

Przejdźmy teraz do wewnętrznych specyfikacji RP1.

Poniżej zamieściłem zdjęcie schematu RP1 w celach informacyjnych.

Tak więc RP1 zawiera dwa rdzenie procesora oparte na architekturze Arm Cortex-M3 (Cortex M3 0 i Cortex M3 1 w czerwonych polach w lewym górnym rogu diagramu).

Posiada również ośmiokanałowy kontroler DMA, który pozwala układowi zarządzać transferami danych dla maksymalnie ośmiu różnych urządzeń peryferyjnych jednocześnie.

Układ zawiera trzy zintegrowane PLL: 2 ułamkowe N PLL do generowania niezależnych zegarów wideo i audio oraz 1 całkowity PLL do generowania zegarów systemowych.

RP1 posiada również pięciowejściowy przetwornik analogowo-cyfrowy (ADC) o rozdzielczości 12 bitów, działający z częstotliwością 500kSPS, z czterema wejściami zewnętrznymi i jednym wewnętrznym czujnikiem temperatury.

Jeśli spojrzysz na poniższy schemat, zauważysz żółte pole w lewym dolnym rogu z napisem "Shared SRAM 128bit 64kB) 4x 4kx32". Odnosi się to do faktu, że istnieje część pamięci o pojemności 64 kB dostępna zarówno dla magistrali BCM2712, jak i RP1.

Pamięć ta ma cztery oddzielne bloki, z których każdy składa się z 4 kilobajtów i zawiera transfery danych po 32 bity na raz.

Wreszcie, RP1 ma generatory podstawy czasu, które można skonfigurować do tempa DMA. Służą one przede wszystkim do przyspieszania DMA, a także do stabilizacji zdarzeń wejściowych GPIO.

Oto zdjęcie wewnętrznej architektury RP1 z arkusza danych:

Tak więc na tym zdjęciu widać ogólnie, jak działa RP1, ale można również zobaczyć, które funkcje peryferyjne kontroluje.

Sterowniki peryferyjne

Po prawej stronie widać następujące elementy, zaczynając od dołu: GPIO, USB 3 PHY, USB 2 PHY, USB 3 PHY, USB 2 PHY, MIPI DPHY, MIPI DPHY, VDAC i RGMII.

RP1 steruje więc pinami GPIO i powiązanymi z nimi interfejsami peryferyjnymi: SPI, UART, I2C, PWM, I2S. Kontroluje również wyjście audio Delta Sigma PWM, ale nie można uzyskać typowego analogowego dźwięku, ponieważ Raspberry Pi 5 nie ma gniazda audio.

Kontroluje również porty USB 2.0 i USB 3.0 - każdy kontroler hosta zarządza portem USB 2.0 i USB 3.0. Zgodnie z arkuszem danych oznacza to, że "każdy port downstream ma niezależną i niezakłóconą przepustowość"

Według Liama Frasera, "[B]ez względu na przepustowość łącza PCIe, powinniśmy być w stanie uruchomić oba porty USB 3 z pełną przepustowością". To ogromny postęp w stosunku do Raspberry Pi 4!

PCIe od RP1 do USB
Jakie piękne ścieżki.

RP1 jest odpowiedzialny za nadajniki-odbiorniki MIPI, które składają się z czterech ścieżek obsługujących DSI i CSI-2.

Posiada 3-kanałowy przetwornik cyfrowo-analogowy wideo, który obsługuje PAL/NTSC i VGA.

I wreszcie, RP1 jest również odpowiedzialny za kontrolowanie Gigabit Ethernet MAC.

W tym momencie możesz zastanawiać się nad PIO. Niestety, w tej chwili nie mamy wielu informacji na ten temat, ponieważ nie udostępniono jeszcze całej dokumentacji dla RP1.

Wiemy natomiast, że blok PIO w RP1 działa nieco inaczej niż w RP2040. Tak więc, chociaż istnieje jeden blok PIO z czterema maszynami stanu (jak RP2040), ma on podwójną głębokość FIFO. Sprawdź ten komentarz od Luke'a Wrena:

Oto, co obecnie wiemy o kontrolerach peryferyjnych.

Bądź na bieżąco, ponieważ w miarę upływu czasu z pewnością ujawnią znaczną ilość informacji na temat RP1.

Wady

Rozmawialiśmy już o niektórych fajnych rzeczach w RP1, ale nie jest to całkowicie usłane różami.

Oczywiście pierwszą rzeczą jest to, że PIO na RP1 działa inaczej niż RP2040. Sprawdź ten komentarz od Phila:

Kolejną wadą oddzielenia kontrolera I/O od głównego SoC jest wprowadzenie pewnej ilości opóźnień.

Zgodnie z arkuszem danych, opóźnienie to wynosi "typowo 1 μs przy projektowanej szerokości łącza i prędkości", co może stanowić problem "dla aplikacji, które polegają na szybkich, ale terminowych sekwencjach zapisu, np. protokołach bit-bashed lub aplikacjach, które muszą szybko reagować na zmianę stanu pinu".

Co przyniesie przyszłość?

Jednym z głównych pytań jest to, czy Raspberry Pi będzie sprzedawać RP1 osobno. W końcu, sprzedają RP2040 oddzielnie. W komentarzu sprzed kilku dni Alasdair Allan z Raspberry Pi udzielił następującej odpowiedzi:

Oczywiście może to być defraudacja lub prawdziwa odpowiedź, że nie powinniśmy spodziewać się osobnego RP1. W związku z tym pytaniem tylko czas pokaże.

Moim zdaniem byłoby fantastycznie, gdyby sprzedawali RP1 osobno.

Jedna z najciekawszych alternatyw pochodzi jednak od Jeffa Geerlinga:

Być może Raspberry Pi da nam w pewnym momencie jedno i drugie - oddzielny chip RP1 i płytkę PCIe!

Będziemy musieli poczekać i zobaczyć.

Konkurs i biuletyn

Wiemy, jak frustrujące jest czekanie na Raspberry Pi 5 do 23 października.

Dlatego chcieliśmy umożliwić ci zabawę z nim tak szybko, jak to możliwe.

Zorganizowaliśmy więc konkurs: Jaką najbardziej szaloną rzecz można wymyślić dla Raspberry Pi 5?

Konkurs Raspberry Pi 5

Pod warunkiem, że twój pomysł go nie zniszczy, możesz wysłać nam swój pomysł, a my wprowadzimy go w życie - i napiszemy o nim artykuł!

Zwycięzcę ogłosimy tutaj i na stronie buyzero.de 23 października.

Zwycięski pomysł (określony przez nas) wygra pełny zestaw Raspberry Pi 5 - w tym zasilacz USB-C Power Delivery (PD) 27 W, obudowę Raspberry Pi 5, kartę SD i Raspberry Pi 5. Wszystko z bezpłatną wysyłką na terenie UE.

Zdobywca drugiego miejsca wygra Raspberry Pi 5 z bezpłatną wysyłką na terenie UE.

Zachęcamy więc do nadsyłania pomysłów - więcej informacji można znaleźć pod poniższym linkiem: WYGRAJ DARMOWE RASPBERRY PI 5!

Wniosek

A więc masz to: najważniejsze elementy RP1.

Jak jednak podkreśliłem na początku, niektóre z tych informacji mogą ulec zmianie. Z pewnością opublikujemy nowy artykuł, gdy Raspberry Pi wyda bardziej stałą dokumentację.

W międzyczasie zapoznaj się z innymi naszymi artykułami na temat Raspberry Pi 5:

Czy RP1 ma być sprzedawany osobno? A może płyta PCIe, jak Jeff Geerling?

Daj nam znać w komentarzach poniżej!

Komentarzy: 1

  1. Renato październik 15, 2023 o 5:36 pm

    Interesujące jest oddzielenie głównego procesora od wszystkich peryferiów E/S głównego chipa,
    quizas no desean vender por separado al RP1 por tener solo nucleos M3, y que tendrian que competir con nucleos M4 y M7

Pozostaw komentarz