Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Orkiszewski Marcin.

Podobne prezentacje


Prezentacja na temat: "Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Orkiszewski Marcin."— Zapis prezentacji:

1 Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego
Orkiszewski Marcin

2 Założenia projektowe:
Wykorzystanie automatu synchronicznego Wpisywanie danych w postaci liczb 16-bitowych Przechowywanie danych w wewnętrznych rejestrach układu

3 Algorytm mnożenia: A B C D * v x y z Az Bz Cz Dz Ay By Cy Dy
Ax Bx Cx Dx + Av Bv Cv Dv

4 Opis algorytmu: A ∙ B = (a1 ∙ a2 ∙ a3 ∙ a4) ∙ (b1 ∙ b2 ∙ b3 ∙ b4)

5 Opis algorytmu: Akumulator[31..0] = a4 ∙ b4,
Akumulator[48..16] = a3 ∙ b4 + Akumulator[31..16], Akumulator[49..16] = a4 ∙ b3 + Akumulator[48..16], Akumulator[64..32] = a3 ∙ b3 + Akumulator[49..32], Akumulator[65..32] = a2 ∙ b4 + Akumulator[64..32], Akumulator[66..32] = a4 ∙ b2 + Akumulator[65..32], Akumulator[80..48] = a1 ∙ b4 + Akumulator[65..48], Akumulator[81..48] = a4 ∙ b1 + Akumulator[80..48], Akumulator[82..48] = a2 ∙ b3 + Akumulator[81..48], Akumulator[83..48] = a3 ∙ b2 + Akumulator[82..48], Akumulator[96..64] = a1 ∙ b3 + Akumulator[83..64], Akumulator[97..64] = a3 ∙ b1 + Akumulator[96..64], Akumulator[98..64] = a2 ∙ b2 + Akumulator[97..64], Akumulator[ ] = a1 ∙ b2 + Akumulator[98..80], Akumulator[ ] = a2 ∙ b1 + Akumulator[ ], Akumulator[ ] = a1 ∙ b1 + Akumulator[ ].

6 Opis algorytmu: Wykonywanie operacji na podzielonych danych umożliwia sekwencyjną realizację algorytmu. Akumulacja danych w jednym rejestrze zmniejsza liczbę potrzebnych zasobów (wymagana odpowiednia kolejność dodawań). Zastosowanie mniejszych układów mnożących i sumujących. Możliwość wykonywania kilku operacji w jednym takcie zegara. Możliwość wykonywania operacji już podczas wpisywania danych.

7 Realizacja:

8 Realizacja: Wersja 1: wykonywanie jednego mnożenia i sumowania
w jednym stanie automatu automat 19-to stanowy (4 stany przeznaczone na wpis danych) 8 rejestrów 16-to bitowych 1 rejestr 128-to bitowy mnożenia i dodawania wykonywane asynchronicznie

9 Symulacja: FFFFFFFFFFFFFFFF ∙ FFFFFFFFFFFFFFFF
= FFFFFFFFFFFFFFFE

10 Realizacja: Działa !! Wyniki kompilacji (dla układu Cyclone II):
36,28 MHz 2559 LE's uuuu…..

11 Realizacja: Wersja 2: jak poprzednio
mnożenia i dodawania wykonywane synchronicznie (16 multiplikatorów) 89.53 MHz 1292 LE's lepiej….

12 Realizacja: Wersja 3: obliczenia wykonywane w zależności od stanu następnego (next_state) 130,89 MHz 1288 LE's szybciej…

13 Realizacja: Wersja 4: automat jako multiplekser
1 multiplikator, 1 sumator! 155,62 MHz 427 LE's !!

14 Symulacja: Błędne wpisywanie danych (?)

15 Realizacja: Opóźnienia wynikają ze zbyt długiego czasu wpisywania danych tSU Wersja 5 : rejestr przed multiplekserem wejściowym Wersja 6: dane wpisywane poprzez rejestr przesuwający (co 16 bitów)

16 Realizacja: LE’s CLK (MHz) tSU (ns) 425 165,02 4,551 431 167,14 4,771
Rejestr przesuwający BALANCED 425 165,02 4,551 Rejestr przesuwający AREA 431 167,14 4,771 Demultiplekser za rejestrem wejściowym 446 165,73 4,728 Demultiplekser przed rejestrem wejściowym 427 155,62 4,983

17 Inna realizacja: automat 5 stanowy (4 stany wpis danych, 1 stan obliczeń) układ mnożący 128 bitów x 128 bitów 260 MHz 828 LE's

18 Podsumowanie: LE’s CLK (MHz) Wersja 1 2559 36,28 Wersja 2 1292 89.53
1288 130,89 Wersja 4 427 155,62 Wersja 5 446 165,73 Wersja 6 BALANCED 425 165,02 Wersja 6 AREA 431 167,14 Mnożenie 128 x128 828 260


Pobierz ppt "Mnożenie dwóch liczb 64-bitowych przy zastosowaniu automatu synchronicznego Orkiszewski Marcin."

Podobne prezentacje


Reklamy Google