Metody optymalizacji soft-procesorów NIOS

Podobne dokumenty
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Szkolenia specjalistyczne

Architektura mikroprocesorów TEO 2009/2010

Architektura Systemów Komputerowych

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Język opisu sprzętu VHDL

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Algorytmy dla maszyny PRAM

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Organizacja typowego mikroprocesora

Architektura typu Single-Cycle

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Budowa Mikrokomputera

Programowanie Niskopoziomowe

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

Architektura potokowa RISC

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Procesory w FPGA H D L. dr inż. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Politechnika Gdańska. Gdańsk, 2016

Specyfika projektowania Mariusz Rawski

Architektura komputerów

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Kurs Zaawansowany S7. Spis treści. Dzień 1

16. Taksonomia Flynn'a.

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Budowa komputera Komputer computer computare

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Przetwarzanie potokowe pipelining

Architektura komputerów

WPROWADZENIE Mikrosterownik mikrokontrolery

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Procesory firmy ARM i MIPS

dr hab. Joanna Jędrzejowicz Podstawy informatyki i komputeryzacji Gdańska Wyższa Szkoła Humanistyczna

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Kod U2 Opracował: Andrzej Nowak

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

Architektura komputerów

3.Przeglądarchitektur

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Magistrala systemowa (System Bus)

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Projektowanie systemów za pomocą języków wysokiego poziomu ESL

Architektura komputerów

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Szkolenia specjalistyczne

Projektowanie. Projektowanie mikroprocesorów

LEKCJA TEMAT: Współczesne procesory.

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Algorytmy i Struktury Danych

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Pod o z d ia i ł a r yn y k n u k u ( 2004 r.). źródło: Gartner 3

Szybkie układy mnożące

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Automatyzacja procesu tworzenia sprzętowego narzędzia służącego do rozwiązywania zagadnienia logarytmu dyskretnego na krzywych eliptycznych

Kompilator języka C na procesor 8051 RC51 implementacja

Programowanie procesorów graficznych GPGPU

Logiczny model komputera i działanie procesora. Część 1.

Szyfry strumieniowe w układach programowalnych FPGA. Marcin Rogawski

8. MAGISTRALE I GNIAZDA ROZSZERZEŃ. INTERFEJSY ZEWNĘTRZNE.

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Szybkie układy mnożące

Architektura Systemów Komputerowych

Architektura mikroprocesorów z rdzeniem ColdFire

Wykład 2. Mikrokontrolery z rdzeniami ARM

Opracował: Jan Front

3.Przeglądarchitektur

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

Architektura komputera

Metody Metody, parametry, zwracanie wartości

Architektura Komputerów

2. Code Composer Studio v4 zintegrowane środowisko projektowe... 41

Wykład 3: Implementacja programów wbudowanych

Architektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Architektura systemów komputerowych. Moduł kontrolera

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Szablony funkcji i szablony klas

Energooszczędne programowanie

Prezentacja systemu RTLinux

Architektura komputerów, Informatyka, sem.iii. Sumatory

Implementacja algorytmu szyfrującego

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Transkrypt:

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

Cel prezentacji Akceleracja sprzętowa do wspomagania rozwiązań programowych w soft-procesorach NIOS Zawsze trzeba wiedzieć na czym nam zależy!!! Przykład realizacji

Sprzętowa akceleracja normalnie, procesory wykonują instrukcje sekwencyjnie ograniczona wydajność wyniesiony program do warstwy sprzętowej jest przetwarzany znacznie szybciej możliwe wykonywanie równoległych zadań zastosowanie: skomplikowane lub intensywne obliczenia/operacje

NIOS metody akceleracji Funkcje definiowane przez użytkownika (Custom Instructions) Peryferia definiowane przez użytkownika (Custom Peripherals) Kompilator C-to-Hardware Systemy wieloprocesorowe

Funkcje użytkownika realizowane w ramach logiki procesora rozszerzają zbiór funkcji procesora max 32 konfigurowalność procesora NIOS umożliwia integrację funkcji bezpośrednio z jednostką arytmetyczno-logiczną (ALU) max 32 jeden procesor NIOS do 256 definiowanych funkcji sprzętowych. max 32 max. 32-bitowa architektura Źródło: NIOS II Custom Instruction User Guide, www.altera.com

Peryferia użytkownika poza granicami procesora połączone z NIOS za pomocą szyny Avalon Nios II CPU Peryferium Użytkownika (Custom Peripheral) Arbiter Arbiter Program Memory Data Memory Data Memory Źródło:www.ALTERA.com Korzyści: - równoległa praca z procesorem - brak kontroli CPU - dowolna architektura i liczba peryferiów (ograniczone wielkością układu FPGA)

Kompilator C-to-Hardware d_transform (int *t, int *p) { } setup code for (i = 0; i < Buf_Size; i++) { } loop overhead *t = transform (*p); t++; p++; exit code Źródło: Automating Hardware Acceleration of Embedded Systems, www.altera.com C2H Akcelerator sprzętowy automatyczne generowanie akceleratorów sprzętowych (definiowanych peryferiów) nie wymagana specjalistyczna wiedza z zakresu projektowania Wada - automatyka -> większe zużycie zasobów FPGA.

Systemy wieloprocesorowe Dziel i rządź - rozbijanie dużych projektów (aplikacji/systemów) na mniejsze zadania upraszcza pisanie, debugowanie oraz zarządzanie kodem i całym projektem. Korzyści: - mniejsze zadania - uproszczone zarządzanie projektem - równoległość procesów na poziomie procesorów oraz w obrębie każdego z osobna Wada: - metoda wymaga użycia dużych lub wielu układów FPGA Źródło: Scale System Performance, www.altera.com

Architektura Definiowanych Funkcji Wyróżniamy cztery typy funkcji definiowanych przez użytkownika Kombinacyjne Wielocyklowe Rozszerzone Wyposażone w wewnętrzny plik rejestru Źródło: NIOS II Custom Instruction User Guide, www.altera.com Najwyżej 32-bitowa architektura!

Funkcje Kombinacyjne Źródło: NIOS II Custom Instruction User Guide, www.altera.com najprostszy typ definiowanych funkcji sprzętowych posiada prostą logikę zdolną wykonać zadanie w jednym cyklu zegarowym (np. operacje przesuwania bitów)

Funkcje Wielocyklowe logika wymagająca więcej niż jeden cykl zegara wymagane sygnały sterujące logiką Źródło: NIOS II Custom Instruction User Guide, www.altera.com

Funkcje Rozszerzone funkcja wielocyklowa z dodatkowym wejściem, służącym jako selektor Źródło: NIOS II Custom Instruction User Guide, www.altera.com Selektor umożliwia zaimplementowanie do 256 różnych operacji wewnątrz pojedynczej logiki definiowanej funkcji rozszerzonej

Funkcje z wewnętrznym plikiem rejestru Źródło: NIOS II Custom Instruction User Guide, www.altera.com wielocyklowa funkcja wyposażona w wbudowany plik rejestru wymagany sygnał sterujący rejestrem

Realizacja Największy Wspólny Dzielnik (NWD) Algorytm NWD w ANSI C Konfiguracja systemu SoPC Dla 32-bitowych liczb w najgorszym przypadku 65535 pętli!

NWD - Funkcje użytkownika Dana A (32-bity) Dana B (32-bity) Wynik (32-bity) Sygnały dla funkcji wielocyklowej

NWD - Funkcje użytkownika [32 bity] Wynik = CI_NWD(danaA, danab); - automatycznie generowane makro - proste wywoływanie i synchronizacja [64 i więcej bitów] Wynik = CI_NWD(n, danaa, danab); - selektor n umożliwia stworzenie rozszerzonej funkcji Custom Instruction

NWD - Funkcje użytkownika Dana A (32-bity) Dana B (32-bity) Selektor n (do 8 bitów) (NWD) Wynik (32-bity) Sygnały dla funkcji wielocyklowej If n = 0: 32-bitowa wersja NWD If n = 1: 64-bitowy NWD; ładowanie danej A If n = 2: 64-bitowy NWD; ładowanie danej B; zwrot 32-bitowej części wyniku If n = 3: 64-bitowy NWD; zwrot ostatnich 32-bitów

NWD - Funkcje użytkownika

NWD - Peryferia użytkownika - akcelerator o dużym potencjale - wymaga dodatkowej logiki arbitrażowej - wymaga synchronizacji

Peryferia użytkownika - Altera udostępnia schematy dla logiki arbitrażowej - wymagana wiedza z zakresu systemu systemu połączeń wewnątrz systemu SoPC (szyna Avalon architektura i transakcje) - Program kontrolny i synchronizujący (sterownik) - HAL

NWD - Wyniki - Test każdej z realizacji był przeprowadzony na danych o łącznej wielkości 3MB - Należy pamiętać, że ze względu na charakter algorytmu NWD wyniki zależą również od obliczanych liczb Realizacja Zużyte zasoby FPGA #LC Czas obliczeń [s] NIOS Software 4408 (13%) 0.65 NIOS Custom Instructions 4909 (15%) 0.1 (6,5 x szybciej) NIOS Custom Component 5597 (17%) 0.01 (65 x szybciej)

Wnioski Akceleratory sprzętowe rozwiązań programowych znacznie zwiększają wydajność projektowanych systemów Wraz z implementacją kolejnych sprzętowych akceleratorów, rośnie zużycie zasobów układu Projektowanie systemów z wykorzystaniem akceleratorów wymaga przemyślenia kosztorysu czasu do ilości potrzebnych zasobów Zawsze trzeba wiedzieć na czym nam zależy!!!

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011