2. Arytmetyka procesorów 16-bitowych stałoprzecinkowych



Podobne dokumenty
LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Arytmetyka binarna - wykład 6

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Pracownia Komputerowa wykład VI

Architektura komputerów

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Podstawy Informatyki

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Naturalny kod binarny (NKB)

Systemy zapisu liczb.

Teoretyczne Podstawy Informatyki

Zapis liczb binarnych ze znakiem

Cyfrowy zapis informacji

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Kod U2 Opracował: Andrzej Nowak

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

8. Realizacja projektowanie i pomiary filtrów IIR

Podstawy Informatyki dla Nauczyciela

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1-

Pracownia Komputerowa wykład V

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Arytmetyka liczb binarnych

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

1.1. Pozycyjne systemy liczbowe

Wprowadzenie do informatyki - ć wiczenia

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Arytmetyka stało i zmiennoprzecinkowa

Stan wysoki (H) i stan niski (L)

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Technologie Informacyjne

Rozdział 5. Przetwarzanie analogowo-cyfrowe (A C)

Teoria przetwarzania A/C i C/A.

Techniki multimedialne

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Pracownia Komputerowa wyk ad V

Wstęp do informatyki- wykład 1 Systemy liczbowe

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Metoda znak-moduł (ZM)

Technologie Informacyjne Wykład 4

Wprowadzenie do informatyki - ć wiczenia

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Kodowanie informacji. Kody liczbowe

1259 (10) = 1 * * * * 100 = 1 * * * *1

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Arytmetyka stałopozycyjna

Operacje arytmetyczne

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Przetworniki analogowe / cyfrowe (A/C) gły analogowymi kodowane sygnały cyfrowe Przetwarzanie dyskretyzacji sygnału w czasie próbkowaniu)

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

LICZBY ZMIENNOPRZECINKOWE

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

L6.1 Systemy liczenia stosowane w informatyce

Podstawy Informatyki

Typ szkoły: ZASADNICZA SZKOŁA ZAWODOWA Rok szkolny 2015/2016 Zawód: FRYZJER, CUKIERNIK, PIEKARZ, SPRZEDAWCA, FOTOGRAF i inne zawody.

1. Operacje logiczne A B A OR B

Wprowadzenie do programowania na procesorze sygnałowym

Filtry cyfrowe i procesory sygnałowe

Technika cyfrowa Układy arytmetyczne

Metrologia: obliczenia na liczbach przybliżonych. dr inż. Paweł Zalewski Akademia Morska w Szczecinie

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Kodowanie liczb całkowitych w systemach komputerowych

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Pracownia Komputerowa wyk ad VI

Wprowadzenie do informatyki - ć wiczenia

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Przykładowe pytania DSP 1

Architektura komputerów

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

METODY NUMERYCZNE. Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

Szybkie układy mnożące

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Pozycyjny system liczbowy

Systemy liczbowe używane w technice komputerowej

Wstęp do informatyki- wykład 2

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Szybkie układy mnożące

S Instrukcje rozszerzone oraz umożliwiające operacje na znakach i łańcuchach. Automatyka i mechatronika

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Transkrypt:

4. Arytmetyka procesorów 16-bitowych stałoprzecinkowych Liczby stałoprzecinkowe Podstawowym zastosowaniem procesora sygnałowego jest przetwarzanie, w czasie rzeczywistym, ciągu próbek wejściowych w ciąg próbek wyjściowych. Próbki wejściowe i wyjściowe są najczęściej 16-bitowe tak jak w procesorze TMS30C5515. Procesor TMX30C5515 jest procesorem stałoprzecinkowym 16- bitowym, co oznacza, że jest zaprojektowany do przetwarzania 16-bitowych operandów. W trakcie przetwarzania pośrednie wyniki mogą być liczbami innych formatów, ale wynik (ciąg próbek wyjściowych) musi być 16-bitowy. Kompilator języka C pozwala na posługiwanie się liczbami i działaniami zmiennoprzecinkowymi, jednak te działania złożone z wielu 16-bitowych działań stałoprzecinkowych wymagają wielu taktów zegara i szybko okazuje się, że procesor nie nadąża z ich wykonywaniem w przerwach między kolejnymi próbkami. W takiej sytuacji można zmniejszyć częstotliwość próbkowania, ale lepiej w przetwarzaniu sygnału ograniczyć się do działań stałoprzecinkowych. Arytmetykę zmiennoprzecinkową można wykorzystać na przykład do projektowania badanego układu przetwarzanie sygnału jest zatrzymywane, procesor oblicza nowe współczynniki filtrów po czym przetwarzanie sygnału jest wznawiane z nowymi współczynnikami. Działania jednostek obliczeniowych procesora TMX30C5515 są wykonywane na 16-bitowych liczbach typu całkowitego, ze znakiem lub bez. Liczbom całkowitym można przyporządkować różne formaty stałoprzecinkowe, w zależności od przyjętej pozycji przecinka dziesiętnego. Format stałoprzecinkowy zapisuje się w postaci Qa.b, gdzie a oznacza liczbę cyfr przed przecinkiem, b oznacza liczbę cyfr po przecinku. Liczby całkowite 16-bitowe ze znakiem i bez

5 znaku zapisywane są w formacie Q16.0. Wagi bitów w formacie Q16.0 podane są w tabeli 1. Tabela 1. Wagi bitów liczby w formacie Q16.0, a) liczba bez znaku, b) liczba ze znakiem 15 14 13 1 11 10 9 8 7 6 5 4 3 1 0 b 15 b 14 b 13 b 1 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b b 1 b 0 a) 15 14 13 1 11 10 9 8 7 6 5 4 3 1 0 b 15 b 14 b 13 b 1 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b b 1 b 0 Wartość liczby bez znaku zapisanej w formacie Q16.0 oblicza się wg wzoru b) x 15 14 0 16.0 b15 b14, () a wartość liczby ze znakiem zapisanej w formacie 16.0 oblicza się wg wzoru x 15 14 0 16.0 b15 b14. (3) W formacie 16.0 można zapisać liczby całkowite ze znakiem z zakresu od 3768 do 3767. Oprócz formatu 16.0 służącego do zapisu liczb całkowitych istnieje wiele formatów stałoprzecinkowych pozwalających zapisywać liczby wymierne, jednak praktyczne znaczenie ma głównie format Q1.15. Wagi bitów w formacie Q1.15 podane są w tabeli. Tabela. Wagi bitów liczby w formacie 1.15, a) liczba bez znaku, b) liczba ze znakiem 0-1 - -3-4 -5-6 -7-8 -9-10 -11-1 -13-14 -15 b 15 b 14 b 13 b 1 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b b 1 b 0 a)

6 0-1 - -3-4 -5-6 -7-8 -9-10 -11-1 -13-14 -15 b 15 b 14 b 13 b 1 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b b 1 b 0 Wartość liczby bez znaku zapisanej w formacie Q1.15 oblicza się wg wzoru b) x Q, (4) 0 1 1.15 b15 b14 a wartość liczby ze znakiem zapisanej w formacie Q1.15 oblicza się wg wzoru x Q. (5) 0 1 1.15 b15 b14 W formacie Q1.15 można zapisać liczby wymierne ze znakiem z zakresu od 1.0 do 0.99997 z rozdzielczością 0.0000305. Dodawanie i odejmowanie w formacie stałoprzecinkowym jest proste, pod warunkiem, że oba argumenty są w tym samym formacie. Jeśli oba argumenty są w tym samym formacie, wynik działania zachowuje format argumentów, a działanie jest wykonywane identycznie jak na liczbach całkowitych. Położenie przecinka dziesiętnego w żaden sposób nie wpływa na przebieg działania. Jedynym problemem przy dodawaniu i odejmowaniu jest potencjalne przepełnienie rejestru wyjściowego, które jest wykrywane w trakcie działania i może być uwzględnione w kolejnej instrukcji programu. Stałoprzecinkowe mnożenie nie wymaga zgodności formatu czynników, ale zwykle przyjmuje się, że czynniki mają zgodny format. Mnożenie dwóch 16- bitowych liczb całkowitych w formacie Q16.0 daje 3-bitowy wynik w formacie Q3.0, którego nie można zamienić na format czynników Q16.0 bez utraty najbardziej znaczących bitów. Mnożenie dwóch liczb w formacie Q1.15 daje 3-bitowy wynik w formacie Q.30, którego konwersję do formatu Q1.15 ułatwia fakt, że liczby ze znakiem

7 w formacie 1.15 mają zakres od 1.0 do 0.99997 i wynik mnożenia należy do tego zakresu za wyjątkiem mnożenia ( 1) ( 1) = 1. Wynik w formacie Q.30 można zmienić na format Q1.15 poprzez przesunięcie go o jeden bit w prawo (dokonując tym samym konwersji wyniku z formatu Q.30 na Q1.31), następnie pobierając 16 najbardziej znaczących bitów jako wynik mnożenia w formacie Q1.15. W działaniach stałoprzecinkowych może wystąpić przepełnienie, które w pewnych sytuacjach można wykorzystać, ale które częściej jest problemem z którym trzeba sobie jakoś radzić. W zależności od potrzeb w przetwarzaniu sygnałów można stosować dwie arytmetyki modularną i nasyceniową. Arytmetyka modularna W arytmetyce modularnej wynik wykraczający poza zakres liczb danego formatu zawija się z powrotem do tego zakresu, tak jakby liczby tworzyły pierścień. Przykładem może być dodawanie liczb w formacie Q1.15 ze znakiem oznaczone symbolem dane wzorem Działania w arytmetyce modularnej są łatwe w realizacji przez procesor, gdyż bity wychodzące poza zakres są po prostu pomijane. Arytmetyka modularna w cyfrowym przetwarzaniu sygnałów stosowana jest do generacji sygnałów okresowych. Arytmetyka nasyceniowa Przy przetwarzaniu sygnałów arytmetyka modularna może być przyczyną poważnych błędów. Na przykład, gdy suma dwóch próbek sygnału będzie równa 1,1 to w arytmetyce modularnej wynik zostanie zawinięty do 1,1 = 0.9 i błąd wartości próbki będzie równy, co zmieni charakter sygnału. Najmniejszy błąd wartości próbki wykraczającej poza zakres uzyska się przyjmując za jej wartość najbliższą granicę zakresu. Jeśli przez x oznaczyć wartość próbki, która może

8 wykroczyć poza zakres liczb formatu Q1.15, to w arytmetyce nasyceniowej jej wartość y zostanie sprowadzona do zakresu liczb Q1.15według wzoru 1 x, 1, 15, gdy x 1 gdy 1 x 1, gdy x 1. y (4) Programy cyfrowego przetwarzania sygnału projektuje się tak, aby nie występowało w nich niepożądane przepełnienie, ale nie zawsze udaje się całkowicie go uniknąć, wtedy mniejszym złem jest nasycenie niż zawinięcie wartości próbki. Przepełnienia można uniknąć zmniejszając poziom sygnału, ale niski pozom sygnału zmniejsza stosunek sygnału do szumu. Normalizacja Przy posługiwaniu się liczbami w formacie Q1.15 używane wartości należy unormować do zakresu [ 1, 1), dotyczy to próbek sygnału, współczynników filtrów, częstotliwości i innych parametrów. Programy do projektowania filtrów w tym MATLAB dostarczają wyniki w formacie Q1.15, w algorytmach generacji sygnałów występują unormowane częstotliwość i faza, funkcje biblioteki TMS30C55xx DSPLIB mają unormowane argumenty i wyniki.