Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "SORTOWANIE (przykład zastosowania DMA) Orkiszewski Marcin Orkiszewski Marcin Koło Naukowe Układów Cyfrowych DEMAIN."— Zapis prezentacji:

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

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

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

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

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

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

7 7

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

9 9 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): 1.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 2.Jeżeli licznik dla danego strumienia osiągnął zero, to wystawiaj na wyjście liczbę z drugiego strumienia 3.Jeżeli oba liczniki osiągnęły 0, zacznij od początku.

10 10 Założenie projektu

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

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

13 Uwaga! Unikać powtarzania nazw: Unikać powtarzania nazw: - block diagram: _project - SOPC: _sopc - Nios IDE _soft W razie problemów W razie problemów 13

14 Otworzenie archiwum projektu: Quartus II Project Quartus II Project Restore Archived Project… Otworzenie projektu

15 15

16 16

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

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

19 19 Programowanie

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

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

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

23 23

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

25 Run Run… Nios II Hardware MainProject: szkolenie3_merger Target Connection: USB-Blaster Run Run Uruchomienie projektu

26 26 Program

27 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_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_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 Gdy DMA_RESULT wypełni pamięć wynikami, uruchom DMA_write, aby zapisać wyniki do SDRAM, następnie ponownie uruchom DMA_RESULT 27

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

29 29

30 30 Porównanie szybkości działania MB

31 1 XII 2009 Materiały dostępne na stronie Koła Publikacje


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

Podobne prezentacje


Reklamy Google