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

Podobne dokumenty
Metody optymalizacji soft-procesorów NIOS

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

Architektura mikroprocesorów TEO 2009/2010

Język opisu sprzętu VHDL

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

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

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

Budowa komputera Komputer computer computare

Organizacja typowego mikroprocesora

Szkolenia specjalistyczne

Szyfry strumieniowe w układach programowalnych FPGA. Marcin Rogawski

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

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

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

Implementacja algorytmu szyfrującego

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

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Procesory firmy ARM i MIPS

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

Podstawy Techniki Mikroprocesorowej

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

Katedra Mikroelektroniki i Technik Informatycznych

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

Budowa Mikrokomputera

Architektura systemów komputerowych. Przetwarzanie potokowe I

Szkolenia specjalistyczne

WPROWADZENIE Mikrosterownik mikrokontrolery

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

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

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

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

Systemy na Chipie. Robert Czerwiński

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

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

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

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

Architektura Systemów Komputerowych

Projektowanie. Projektowanie mikroprocesorów

Opracował: Jan Front

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

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

Wykład 2. Mikrokontrolery z rdzeniami ARM

Sterowniki Programowalne (SP)

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

Politechnika Gdańska. Gdańsk, 2016

16. Taksonomia Flynn'a.

Architektura systemów komputerowych. dr Artur Bartoszewski

Analiza i Synteza Układów Cyfrowych

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

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

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

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

3.Przeglądarchitektur

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16

Laboratorium przedmiotu Technika Cyfrowa

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Wykład 4. Interfejsy USB, FireWire

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

Budowa systemów komputerowych

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

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Pamięci masowe. ATA (Advanced Technology Attachments)

MIKROKONTROLERY I MIKROPROCESORY

Kompilator języka C na procesor 8051 RC51 implementacja

PROJEKT Z BAZ DANYCH

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.

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura systemów komputerowych

Sterowniki programowalne Programmable Controllers. Energetyka I stopień Ogólnoakademicki. przedmiot kierunkowy

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

Architektura potokowa RISC

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Architektura komputera

E-E-A-1008-s6. Sterowniki PLC. Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

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

Elementy cyfrowe i układy logiczne

E-4EZA1-10-s7. Sterowniki PLC

ID1UAL1 Układy arytmetyczno-logiczne Arithmetic logic systems. Informatyka I stopień ogólnoakademicki stacjonarne

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

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Projektowanie Urządzeń Cyfrowych

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

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Budowa i zasada działania komputera. dr Artur Bartoszewski

ECTS - program studiów kierunku Automatyka i robotyka, Studia I stopnia, rok akademicki 2015/2016

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

Generowanie ciągów bitów losowych z wykorzystaniem sygnałów pochodzących z komputera

Architektura typu Single-Cycle

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

3.Przeglądarchitektur

Architektura Komputerów

Algorytmy i Struktury Danych

Transkrypt:

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Opiekun naukowy: dr inż. Paweł Tomaszewicz 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 1

Plan prezentacji Przykład: funkcja skrótu Whirlpool Instrukcje użytkownika Metody akceleracji soft-procesora NIOS Sof-procesor NIOS Akceleracja sprzętowa oprogramowania 2

Soft-procesor NIOS Softprocesor to nic innego jak model procesora opisanego w języku opisu sprzętu (HDL), zaimplementowany w układzie FPGA Źródło: NIOS II Custom Instruction User Guide, www.altera.com 32-bitowa architektura RISC (Reduced Instruction Set Computers) właściwości FPGA -> pozwala dowolnie konfigurować procesor Nie osiąga prędkości wykonywania zadań porównywalnych do typowych procesorów 3

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 4

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

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 6

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) PW, WEiTI, 7

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 } C2H Akcelerator sprzętowy Źródło: Automating Hardware Acceleration of Embedded Systems, www.altera.com 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. PW, WEiTI, 8

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 9

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! 10

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. operacja XOR) 11

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 12

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 13

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 14

Funkcja skrótu Whirlpool Autorzy: Vincenta Rijmena (szyfr AES!) oraz Paulo S.L.M. Barreto Stosowana w kryptografii Jak dotąd nikt jej nie złamał!!! Wiadomość wizytówka Zastosowania: sprawdzanie integralności wiadomości tworzenie podpisów elektronicznych ochrona przed przypadkowym lub celowym wprowadzeniem modyfikacji danych 15

Schemat blokowy realizacji skrótu Whirlpool Wiadomość 2 256 bitów Podział na bloki 512 bitów Kompresja i mieszanie bajtów Źródło: (książka) Programowalne Układy Przetwarzania Sygnałów i Informacji, praca pod redakcją prof. T. Łuby, WKŁ 16

Blok kompresji funkcji Whirlpool Źródło: (książka) Programowalne Układy Przetwarzania Sygnałów i Informacji, praca pod redakcją prof. T. Łuby, WKŁ Źródło: The Whirlpool Hashing Function strona domowa (www.larc.usp.br/~pbarreto/whirlpoolpage.html) Schemat rundy Warstwa podstawienia Dużo prostych ale INTENSYWNYCH oblicz Uwaga: wąskie gardła aplikacji 17

Prezentacja implementacji Płytka edukacyjna DE2-70 Źródło: DE2-70 board, www.altera.com 18

Implementacja Soft Warstwa programowa (program w C) Warstwa sprzętowa Padder Blok kompresji W operacje XOR void nonlin( ) void cyclic_permut( ) void lin_dif( ) H t 19

Implementacja Soft-Hard Warstwa programowa (program w C) Warstwa sprzętowa Padder Blok kompresji W definiowana funkcja definiowana funkcja definiowana funkcja definiowana funkcja operacje XOR void nonlin( ) void cyclic_permut( ) void lin_dif( ) H t 20

Wyniki porównania realizacji Soft Soft-Hard Czas realizacji: 38542303 µs =~ 38 s Zużycie zasobów: 6% (4,201/68,416) Czas realizacji: 2038434 µs =~ 2 s Zużycie zasobów: 8% (5,594/68,416) Czas realizacji (t) zużycie zasobów (r) (t) Ponad 18-krotne przyśpieszenie realizacji!!! Wydajność 1891% względem czystej programowej realizacji Wzrost zużycia zasobów o 25% (r) (t) (r) 21

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!!! 22