Opis charakterystyki architektury MPSoC

Wstęp

Ten dokument zawiera przegląd języka opisu architektury używanego w Projekt ALMA mający na celu opisanie rekonfigurowalnych architektur wieloprocesorowych typu System-on-Chip. Język opisu architektury ALMA (ADL) jest centralnym elementem zestawu narzędzi, który: jest używany przez wszystkie inne komponenty jako centralna baza danych do gromadzenia informacji o bieżących architektura docelowa. Jest używany jako dane wejściowe do podejścia ALMA i ma na celu archiwizację następujące cele:

  1. ADL definiuje abstrakcyjny opis sprzętu wielordzeniowego celu sprzętowego. Ten abstrakcyjne informacje są wykorzystywane do budowy wielordzeniowego środowiska symulacyjnego dla podstawowy cel sprzętowy.
  2. Dodatkowe cechy sprzętu wielordzeniowego, które będą używane podczas zdefiniowano kroki optymalizacji narzędzi ALMA.
  3. ADL jest kluczowym elementem podejścia ALMA, aby zagwarantować jego cel niezależność. W ramach projektu niezależność architektury demonstrują: ukierunkowany na dwie różne architektury. Poza tym podejście oparte na ADL umożliwia: zestaw narzędzi ALMA do obsługi innych architektur docelowych.
  4.  Umożliwia obsługę rekonfigurowalnych architektur, ponieważ umożliwia elastyczne kierowanie do wszystkich konfiguracje jednej architektury.

 Struktura dokumentu

Ten dokument jest zorganizowany w następujący sposób. Pierwszy rozdział zawiera przegląd formalnych opis języka opisu architektury oraz semantyki definiowania architektura. Następna sekcja zawiera opis ADL dwóch architektur używanych w ramach projekt ALMA. Czwarty rozdział dotyczy wykorzystania ADL w projekcie i jego integracji
do łańcucha narzędzi. Na koniec w ostatnim rozdziale podane są pewne wnioski dotyczące tego dokumentu.

Język opisu architektury

Język opisu architektury (ADL) można podzielić na dwa języki. Po pierwsze, tam to język znaczników tworzący drzewo danych, a na szczycie drzewa danych Architektura Opis Język jest zdefiniowany. Język znaczników lub język opisu danych (DDL) to służy do opisu ogólnych danych w strukturze drzewiastej. Dlatego ADL zyskuje elastyczność i
jest porównywalny z XML [1] lub JSON [2]. ADL jest następnie budowana na tym drzewie danych, tworząc stałe
struktury opisujące architekturę systemu.

 Opis danych

Język znaczników opisuje drzewo danych składające się ze skalarnych typów danych (string, Boolean, liczba całkowita, zmiennoprzecinkowa) jako węzły liści i typy danych kontenerów (wektor i obiekt) jako wewnętrzne węzły. Każdy węzeł wewnętrzny może zawierać nieograniczoną liczbę dzieci, do których odwołuje się liczby całkowite (wektor) lub łańcuchy (obiekt).

Typy danych

Skalarne typy danych

W ramach ADL dostępne są następujące skalarne lub proste typy danych: undef, bool, string, liczby całkowite i zmiennoprzecinkowe (zmiennoprzecinkowe). Najprostszym typem danych jest undef, który jest reprezentujący niezdefiniowany, ale istniejący węzeł liścia drzewa. Nie zaleca się używania undef. Działa jak operator dostępu.
może tworzyć niechciane węzły z nieokreślonym typem daty, od którego nie można odróżnić blok o typie danych undef. Niezdefiniowane węzły mogą również wystąpić, gdy używamy wektorów z określone indeksy.

Typy danych kontenerów

Aby reprezentować więcej niż tylko elementy skalarne w drzewie danych, to drzewo może zawierać kontenery.
Kontener może zawierać nieograniczoną liczbę elementów o różnych typach danych. Dziecko kontenera może być również kolejnym pojemnikiem. Dostępne są dwa rodzaje kontenerów, kontenery wektorowe i obiektowe, które różnią się między sobą wdrażanie i adresowanie ich elementów. Każdy element jest identyfikowany za pomocą klucza. A
Vector używa liczb całkowitych jako kluczy, a kontener obiektów używa łańcuchów do odwoływania się do nich
wartości. Mieszanie typów kluczy, łańcuchów i liczb całkowitych w jednym kontenerze, nie jest możliwe.

Pojemnik na wektory

Wektor jest kontenerem asocjacyjnym wykorzystującym liczby całkowite jako klucze. Wektor zaczyna się od indeks zero i jest tak duży, jak maksymalny użyty klucz. Tworzenie wektora z jednym elementem w indeks 10 spowoduje powstanie wektora składającego się z 11 elementów, w których elementy od 0 do 9 są niezdefiniowane. Wszystko elementy wewnątrz kontenera wektorów są sortowane w zależności od ich kluczy.

Pojemnik na obiekty

Obiekt jest kontenerem asocjacyjnym wykorzystującym ciągi jako klucze. W przeciwieństwie do wektora, obiekt kontener ma dokładnie taką wielkość, jaka jest ilość elementów, z których się składa. Elementy an kontener obiektów są sortowane w kolejności dodawania do kontenera.