SORTOWANIE (przykład zastosowania DMA)

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Graficzny klient SVN graficzny klient SVN integrujący się z powłoką systemu dostępny tylko dla systemu Windows - do pobrania z
REALIZACJA REGULATORA PID W UKŁADZIE FPGA
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Wstęp do strumieni danych
Algorytmy sortowania i przeszukiwania
Mgr inż.Marcin Borkowski Podstawy Java Część II
Metody Sztucznej Inteligencji 2012/2013Zastosowania systemów rozmytych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Zastosowania.
Programowanie w języku C++. Jak napisać prosty program obliczeniowy lub grę komputerową? Zbigniew Nagórny Pracownia Komputerowa Wyższa Szkoła Humanistyczno-Przyrodnicza.
Algorytmy – różne przykłady
SCR 2008/2009 – informatyka rok 5. Edytor Wizualny - Agenda Przeznaczenie komponentu Funkcjonalność Opis działania.
Instrukcje strukturalne
Prowadzący: dr inż. Antoni Izworski Programowanie warstwy sieciowej
Wykład 2: Metody komutacji w sieciach teleinformatycznych
Sortowanie Zajęcia 13.
KONKURS WIEDZY O SZTUCE
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Support.ebsco.com EBSCOhost Wyszukiwanie złożone (z wieloma frazami) Szkolenie.
Jednostki pamięci komputera
Biblioteki i przestrzenie nazw
Systemy operacyjne Bibliografia:
PRZERWANIA, DMA, UART Orkiszewski Marcin
KOMPONENTY TYPU SLAVE Orkiszewski Marcin
TWORZENIE SYSTEMU NIOS II
SO – LAB3 Wojciech Pieprzyca
Praca dyplomowa inżynierska
Wstęp do geofizycznej dynamiki płynów. Semestr VI. Wykład
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Technologie informacyjne MCE Pudełko. Zakładanie strony internetowej Technologie informacyjne Marek Pudełko.
Jaki jest następny wyraz ciągu: 1, 2, 4, 8, 16, …?
Dyskretny szereg Fouriera
Jak korzystać z programu peer-to-peer Na przykładzie programu eMule.
Autor: Piotr Wojtowicz Opiekun naukowy referatu: dr inż. Cezary Worek
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Komputer a system komputerowy
import danych; sumy pośrednie; tabela przestawna; konsolidacja danych
Układy kombinacyjne cz.2
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Administracja serwerem bazy danych Oracle 11g Zarządzanie strukturą bazy danych Wykład nr 2 Michał Szkopiński.
ARCHTEKTURA KOMPUTERA
Sekwencyjne bloki funkcjonalne
Kalendarz 2011 Real Madryt Autor: Bartosz Trzciński.
KALENDARZ 2011r. Autor: Alicja Chałupka klasa III a.
Zasada działania komputera
Podstawy adresowania hostów w sieciach komputerowych
Plan prezentacji Zarys projektu Geneza tematu
Programowanie obiektowe – zastosowanie języka Java SE
Tanzania: między tradycją a nowoczesnością
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Lekcja 13 Strona 15. Lekcja 13 Strona 16 Lekcja 13 Strona 17 Vertical primary and secondary Tesla coil Jacobs ladder.
Nośniki informacji i akcesoria komputerowe
Kalendarz 2011r. styczeń pn wt śr czw pt sb nd
Innowacyjne metody napawania
Elementy zestawu komputerowego
Etapy uruchamiania systemu Pliki konfiguracyjne
(C) Jarosław Jabłonka, ATH, 5 kwietnia kwietnia 2017
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Przerzutniki bistabilne
Procesor, pamięć, przerwania, WE/WY, …
Kalendarz 2020.
Treści multimedialne - kodowanie, przetwarzanie, prezentacjaOdtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
dr Zofia Skrzypczak Wydział Zarządzania UW
C++ WYKŁAD 12 ( ) Własne biblioteki. S PIS TREŚCI Kompilacja i łączenie Moduły Biblioteki Biblioteka statyczna Biblioteka współdzielona Biblioteka.
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
TEMAT: Zapoznanie się z funkcja LICZNIKA w sterowniku Twido
Programowanie obiektowe – zastosowanie języka Java SE
TEMAT: Zapoznanie się z funkcja LICZNIKA w sterowniku Twido
Zapis prezentacji:

SORTOWANIE (przykład zastosowania DMA) Orkiszewski Marcin Koło Naukowe Układów Cyfrowych DEMAIN

Zadanie: Posortować liczby 128-bitowe w jak najkrótszym czasie. Liczby mogą się powtarzać. Liczba danych – 2^n (max. 4MB).

Algorytm sortujący: Jaki algorytm sortujący pasuje do układów FPGA ? Mergesort – rekurencyjne sklejanie uporządkowanych zbiorów. Sklejanie  łączenie strumieni.

Implementacja (1) SDRAM 8 MB (16 bit) 2x DMA 16 bit Komparator VHDL

Implementacja (1) – problemy… SDRAM 8 MB (16 bit) zbyt wąska szyna danych (dane 128-bitowe) wydłużone porównywanie (komparator musi gromadzić dane) jednoczesny odczyt z SDRAM przez dwa DMA (znaczne spowolnienie odczytu)

Implementacja (2) Algorytm rekurencyjny Tylko jedno DMA obsługujące SDRAM w danym momencie 2x DMA 128 bitowe (4x szybciej) Komparator 128 bitowy Algorytm rekurencyjny

Synchronizacja DMA_read pobiera dane z SDRAM i wypełnia pierwszą pamięć DMA_1 i DMA_2 wysyłają strumienie do komparatora DMA_RESULT odbiera posortowany strumień DMA_write zapisuje posortowane dane z drugiej pamięci do SDRAM

Merger128.vhd Dwa 128-bitowe porty wejściowe Obsługa sygnału waitrequest dla każdego portu (pod DMA) Zawiera 2 liczniki dla danych wejściowych (ustawiane przez CPU): Jeżeli oba liczniki większe od 0, to wystaw na wyjście większą liczbę z dwóch strumieni oraz pobierz kolejną do porównania Jeżeli licznik dla danego strumienia osiągnął zero, to wystawiaj na wyjście liczbę z drugiego strumienia Jeżeli oba liczniki osiągnęły 0, zacznij od początku.

Założenie projektu

Altera NIOS II Wymagane oprogramowanie: Quartus II v. 9.0 Nios IDE v. 9.0 Do pobrania na stronie www.altera.com

Uwaga! Katalogi, w których instalujemy oprogramowanie oraz w których zakładamy projekty: ! NIE MOGĄ zawierać spacji !

Uwaga! Unikać powtarzania nazw: - block diagram: <..>_project - SOPC: <..>_sopc - Nios IDE <..>_soft W razie problemów www.google.com

1. Otworzenie projektu Quartus II Project Restore Archived Project… Otworzenie archiwum projektu: Quartus II Project Restore Archived Project…

2. Kompilacja projektu Processing Start compilation - Wykorzystanie komórek logicznych - Wykorzystanie bloków pamięci

3. Załadowanie obrazu do układu Tools Programmer - Hardware Setup USB-Blaster Program/Configure Start - Czasami przydatne bywa włączenie zasilania  -

Programowanie

7. Założenie projektu (1/2) File New Project… Nios II C/C++ Application

7. Założenie projektu (2/2) Wskazanie obrazu systemu (.ptf): Select project template: Blank Project Name: szkolenie3_merger SOPC Builder System PTF File: ../szkolenie3_sopc.ptf Finish

8. Kompilacja biblioteki Prawy klawisz myszki na szkolenie3_merger_syslib Properties System Library Reduced device drivers Small C library itp.. Build Project

9. Dodanie plików źródłowych (C/C++) Prawy klawisz myszki na szkolenie3_merger Import… General File System szkolenie3_merger.h szkolenie3_functions.c szkolenie3_merger.c

10. Uruchomienie projektu Run Run… Nios II Hardware Main Project: szkolenie3_merger Target Connection: USB-Blaster Run

Program

Program Gdy DMA_1 skończy kopiować dane do komparatora, uruchom DMA_read, aby uzupełnić dane dla strumienia, następnie ponownie uruchom DMA_1 Gdy DMA_2 skończy kopiować dane do komparatora, uruchom DMA_read, aby uzupełnić dane dla strumienia, następnie ponownie uruchom DMA_2 Gdy DMA_RESULT wypełni pamięć wynikami, uruchom DMA_write, aby zapisać wyniki do SDRAM, następnie ponownie uruchom DMA_RESULT

Wnioski Dzięki zastosowaniu „wirtualnego” podziału pamięci (adresami) możemy jednocześnie sortować i odczytywać / zapisywać dane! Całe sterowanie sortowaniem polega na odpowiednim uruchamianiu poszczególnych DMA wraz z wyliczonymi nowymi adresami!

Porównanie szybkości działania MB

Materiały dostępne na stronie Koła http://demain.zpt.tele.pw.edu.pl/ Publikacje 1 XII 2009