Cortex-A9 w Cyclone V SoC: wielordzeniowe „serce” zestawu SoCrates, część 2

Układy System-on-Chip produkowane przez firmę Altera w ramach rodziny Cyclone V SoC wyposażono w rdzenie Cortex-A9MP (Cortex-A9MPCore), które opracowano z myślą o implementacji w szybkich, wielordzeniowych mikroprocesorach stosowanych w systemach embedded. W artykule przedstawiamy najważniejsze cechy i możliwości wybranych bloków peryferyjnych, stanowiących bezpośrednie otoczenie rdzeni.

W pierwszej części artykułu przedstawiliśmy budowę bloku HPS (Hard Processor System) zastosowanego w układach Cyclone V SoC wraz z podstawowym otoczeniem: kontrolerem ECC i systemem taktowania CPU i FPGA.

Pierwsza część artykułu jest dostępna pod adresem.

W tej części zajmiemy się pozostałymi ważnymi peryferiami, zaczniemy od układu zerującego, który jest potężnym sprzętowo kontrolerem specyficznych przerwań, wyposażonym – ze względu na bezpieczeństwo systemu bazującego na SoC – w rozbudowane mechanizmy hadshakingu oraz uzgadniania ciepłego zerowania z wybranymi blokami peryferyjnymi, a także wiele ścieżek zerowania, dzięki którym aplikacja użytkownika jest w stanie wykryć przyczynę restartu systemu. Schemat blokowy kontrolera przerwań pokazano na rysunku 9. Jednym z jego zadań jest zapobieżenie zgłoszeniu żądania zerowania CPU ze strony FPGA, przed prawidłowym skonfigurowaniem tej części układu.

 

 

Rys. 9. Schemat blokowy kontrolera przerwań wbudowanego w układy Cyclone V SoC

 

Kontroler zerowania obsługuje aż 8 źródeł zewnętrznych, które mają źródła zarówno w matrycy FPGA, interfejsie debugowania, nadzorcy napięcia zasilającego, zerowanie można także wymusić programowo, za pomocą odpowiedniego bitu w rejestrze sterującym. Kontroler zerowania generuje aż 43 sygnały wyjściowe, w grupach wydzielonych dla: rdzeni (CPU), peryferii, kanału DMA przeznaczonego do transmisji danych pomiędzy FPGA i HPS, a także mostków komunikacyjnych AXI.

 

Cortex-A9MP: wielordzeniowe „serce” zestawu SoCrates, część 2

 

Prezentowane w artykule układy Cyclone V SoC są „sercem” zestawu startowego EBV SoCrates, który opisaliśmy w artykule.

Na filmie poniżej przedstawiamy jego budowę i wyposażenie.

 

Kontroler zerowania rozróżnia trzy rodzaje zerowania:

– zimny, jednoznaczny z przywróceniem stanu HPS jak po włączeniu zasilania, w którym zerowane są wszystkie peryferia podlegające zerowaniu (we wszystkich wymienionych powyżej grupach jednocześnie),

– ciepły, który przywraca stan początkowy wszystkim peryferiom podlegającym debugowaniu, w tym HPS, służy do wyprowadzania SoC ze stanów „zawieszenia”,

– debug, który dotyczy wyłącznie „osprzętu” HPS wykorzystywanego do debugowania pracy tego bloku, służy do wymuszania powrotu tej części układu do stanu spoczynkowego (co może być przydatne w przypadku zawieszenia jego pracy).

Równie imponujące możliwości ma wbudowany w prezentowane układy system komunikacyjny, bazujący na architekturze NIC-301 (CoreLink Network Interconnect) firmy ARM. Jest to dwupoziomowy (L3 i L4) system magistral i przełączników (rysunek 10) działający w konfiguracji master-slave. Jak widać na schemacie blokowym, niektóre peryferia są dołączane bezpośrednio do przełącznika L3 jako urządzenia slave. Do ich dołączenia wykorzystano magistrale 32- lub 64-bitowe magistrale AXI, pozostałe peryferia są dołączone za pomocą magistral L4, których twórcy układów Cyclone V SoC zastosowali aż 5. Rdzenie CPU mają dostęp do przełącznika L3 za pomocą 64-bitowej magistrali AXI, taktowanej z częstotliwością równą połowie częstotliwości taktowania CPU.

 

Rys. 10. Schemat blokowy systemu komunikacyjnego dla danych, zastosowanego w HPS układów Cyclone V SoC

Rys. 10. Schemat blokowy systemu komunikacyjnego dla danych, zastosowanego w HPS układów Cyclone V SoC

 

Transakcje komunikacyjne prowadzone przez prezentowany system magistral i przełączników mogą być chronione, dzięki czemu ryzyko nieumyślnego zmodyfikowania przypadkowych rejestrów jest minimalne. Większość kanałów komunikacyjnych jest buforowana za pomocą dwukierunkowych pamięci FIFO, co zmniejsza czas zajętości magistral, zwłaszcza podczas komunikacji z wolniejszymi peryferiami (jak UART, I2C itp.).

 

Rys. 11. Schemat blokowy interfejsu komunikacyjnego zapewniającego wymianę danych pomiędzy HPS i FPGA

 

Wydzielonym zasobem komunikacyjnym jest interfejs służący do transferu danych pomiędzy HPS i FPGA (i odwrotnie), który składa się z dołączonych do przełącznika L3 trzech magistral AXI (rysunek 11). Dwie z nich umożliwiają transfer danych z HPS do FPGA (interfejs standard i light), jedna w drugą stronę (interfejs standard). Funkcjonalność interfejsu light jest nieco ograniczona w stosunku do standard, co polega m.in. na ustaleniu szerokości przesyłanego słowa danych na 32 bity oraz ograniczeniu obszaru adresowego do 2 MB. Ograniczenia te nie mają istotnego znaczenia w przypadku transferów mniejszych ilości danych, pozostawiając jednocześnie szybszy i bardziej elastyczny kanał komunikacyjny (standard) do dyspozycji aplikacji użytkownika.

 

Rys. 12. Schemat blokowy kontrolera pamięci SDRAM wbudowanego w układy Cyclone V SoC

 

Do pobrania

O autorze