Adam Korzeniewski [email protected] p. 732 ... · Komputer (elektroniczna maszyna...

32
Adam Korzeniewski [email protected] p. 732 - Katedra Systemów Multimedialnych

Transcript of Adam Korzeniewski [email protected] p. 732 ... · Komputer (elektroniczna maszyna...

Adam Korzeniewski [email protected] p. 732 - Katedra Systemów Multimedialnych

Komputer (elektroniczna maszyna cyfrowa) jest to maszyna programowalna. Maszyna programowalna ma dwie cechy: Reaguje w ściśle określony sposób na każdą z instrukcji (dla

każdego komputera istnieje zbiór instrukcji) Jest w stanie wykonać program, czyli wykonać instrukcje w

zadanej kolejności

Zakres zastosowań komputerów jest bardzo duży. Najbardziej ogólnie zastosowania komputerów to dwa obszary: manipulacja danymi obliczenia matematyczne

Manipulacja

danymi

Obliczenia

matematyczne

Typowe

zastosowania

Główne

operacje

przenoszenie danych BA

testowanie wartości thenBAif

głównie operacje logiczne głównie operacje arytmetyczne

mnożenie CBA

dodawanie CBA

Edytory tekstu,

zarządzanie bazami danych,

arkusze kalkulacyjne,

itd.

Obliczenia naukowe,

symulacje inżynierskie,

cyfrowe przetwarzanie sygnałów,

itd.

Komputer ogólnego przeznaczenia składa się z: Jednostki centralnej (CPU – Central Processor Unit). Jest to zasadnicza

część komputera, jego serce, w którym są wykonywane instrukcje Pamięci, która pozwala komputerowi przynajmniej na pewien czas

magazynować dane i programy. Pamięci masowej, która pozwala komputerowi przechowywać w sposób

trwały ogromną liczbę danych. W szczególności są to tzw. dyski twarde. Urządzeń wejściowych. W szczególności jest to klawiatura i mysz

elektroniczna, które pozwalają wprowadzać dane i instrukcje do komputera.

Urządzenia wyjściowe. W szczególności jest to monitor ekranowy i drukarka, które pozwalają wyprowadzać wyniki obliczeń.

Mikroprocesor (w skrócie μP) jest synonimem (zwłaszcza dla komputera PC) jednostki centralnej (CPU – Central Processor Unit) wykonanej w postaci krzemowego chipu (monolitycznego układu scalonego) o powierzchni od Xcm2 do 1mm2 w cenie od 3$ do 300$. Już zakres podanych wartości wskazuje jak różne mogą być mikroprocesory, np. 32-bitowe lub 64-bitowe. Każdy komputer zawiera najmniej jeden mikroprocesor. Trzy właściwości charakteryzują mikroprocesor: Zbiór instrukcji, które mikroprocesor może wykonać Liczba bitów przetwarzanych w jednej instrukcji Częstotliwość zegara w MHZ decydująca o tym ile instrukcji na

sekundę może wykonać mikroprocesor

CPU Np. pamięć

Np. I/O porty

Mikroprocesor

Mikrokontroler jest krzemowym chipem (monolitycznym układem scalonym o dużej skali integracji) zawierającym oprócz CPU inne składniki, zwłaszcza kontrolery, składające się na miniaturowy komputer. Kontrolerem nazywamy urządzenie, które steruje transmisją danych z komputera do lub z urządzenia peryferyjnego. Mikrokontroler składa się zazwyczaj z CPU, RAM, ROM, I/O portów, zegara.

CPU

Pamięć

I/O porty

Mikrokontroler

Procesor sygnałowy (ang. Digital Signal Processor) jest mikroprocesorem zoptymalizowanym do cyfrowego przetwarzania sygnałów, ich detekcji i generowania. Cechy charakterystyczne: zdolność do przetwarzania sygnałów w czasie

rzeczywistym oddzielne pamięci programu i danych (architektura

harwardzka) możliwość jednoczesnego odczytu instrukcji i danych

Cechy charakterystyczne: zdolność wykonywania operacji superskalarnych, głównie

sprzętowym dostosowaniem do obliczania sumy iloczynów, jako operacji najczęściej wykonywanej w cyfrowym przetwarzaniu sygnałów ( filtry FIR, IIR, transformacja FFT, korelacja, autokorelacja)

potokowe przetwarzanie instrukcji (ang. pipelining)

Pierwszym procesorem sygnałowym był Intel 2920 wyprodukowany w 1979 r. Obecnie powszechnie stosowane, znajdują się np. w każdym telefonie komórkowym, każdym odtwarzaczu MP3. Rynek procesorów sygnałowych w przybliżeniu podwaja się co 2-3 lata.

Stale rosnąca powszechność procesorów sygnałowych jest ściśle związana z wypieraniem analogowego przetwarzania sygnałów na rzecz cyfrowego przetwarzania sygnałów.

Duża precyzja, stąd duża przewidywalność systemów cyfrowych

Stałość w funkcji temperatury i starzenia się Kontrolowane akumulowanie się szumów Koszt hardwaru mało zależny od stopnia

złożoności Łatwa modyfikacja systemu (poprzez zmianę

programu)

Łatwa symulacja systemu Łatwiejsze znalezienie błędów, stąd krótki

czas stworzenia systemu Prostsze urządzenia (mniejszy koszt i większa

niezawodność) Możliwość wykonywania takich operacji na

sygnale, które są niemożliwe lub niepraktyczne w systemie analogowym

Konieczność spełnienia założeń twierdzenia o próbkowaniu

Niedogodny kształt widma sygnałów cyfrowych

Ograniczony zakres dynamiczny Szum kwantowania Błędy zaokrągleń

Filtry cyfrowe Splot Korelacja Przekształcenie Hilberta Szybka transformata Fouriera Filtry adaptacyjne Okienkowanie Generowanie sygnałów

Obrót 3D Transmisja obrazów Kompresja obrazów Sztuczny wzrok, widzenie robotów Rozpoznawanie wzorców (ang. pattern

recognition) Homomorficzne przetwarzanie Mapy cyfrowe Animacja

Analiza widmowa Generowanie funkcji Przetwarzanie sygnałów sejsmicznych Analiza stanów przejściowych Pętle fazowe PLL

Poczta głosowa Wokodery (ang. vocoding), kodowanie mowy Rozpoznawanie głosu Weryfikacja rozmówcy Wzbogacanie mowy i dźwięku Synteza mowy Mówienie tekstu

Sterowanie dyskiem Sterowanie serwomechanizmem Sterowanie robotem Sterowanie drukarką laserową Sterowanie silnikiem

Utajnienie połączeń telekomunikacyjnych Radar Sonar Przetwarzanie obrazów Nawigacja Naprowadzanie pocisków

Sterowanie silnikiem Analiza wibracji Hamulce antypoślizgowe Adaptacyjne sterowanie jazdą Nawigacja GPS Komendy głosowe Autonomiczne pojazdy

Wykrywacze radaru Sprzęt cyfrowy audio/TV Syntezatory muzyczne Zabawki edukacyjne Modele zdalnie sterowane

Robotyka Sterowanie numeryczne Monitorowanie linii wysokiego napięcia Zabezpieczenia dostępu

Aparaty słuchowe Monitorowanie pacjenta Ultrasonografia Tomografia Narzędzia diagnostyczne Protetyka Monitorowanie zanieczyszczeń, zapachów

Eliminowanie echa Transkodery ADPCM (Adaptive Differential

Pulse Code Modulation) Stacje przekaźnikowe Zwielokrotnienie kanałów Adaptacyjne korektory DTMF (Dual-Tone Multi-Frequency), tonowe

wybieranie numerów telefonicznych Szyfrowanie FAX Telefonia komórkowa Wideokonferencje

Wykonanie programu komputerowego, to wykonanie sekwencji instrukcji. Instrukcję można przedstawić jako 5 bloków (stopni), każdy wykonywany w 1 cyklu zegara. Bloki oznaczymy literami F, D, E, A, S (pierwsze litery nazw w języku angielskim).

pobranie

instrukcji

z pamięci

(ang. instruction

fetch)

dekodowanie

instrukcji

(ang. instruction

decode)

wykonanie

instrukcji

(ang. instruction

execute)

otwarcie

dostępu

do pamięci

(ang. memory

access)

zapisanie

wyniku

wykonania

instrukcji

(ang. store,

write back)

ALUF D

E

SA

W zwykłym (niepotokowym) przetwarzaniu najpierw wykonuje się bloki pierwszej instrukcji, następnie drugiej instrukcji, itd. Wyniki wykonania kolejnych instrukcji są zapisywane co 5 cykli zegara.

Przetwarzanie niepotokowe

Clock cycle

Instr. 1

1 2 3 4 5 6 7 8 9

1F

2F

1D

2D

1S1E

2E

1A

Instr. 2 2A 2S

10

Procesor sygnałowy ma logikę przystosowaną do wykonywania wszystkich bloków jednocześnie, dzięki czemu jest możliwe przetwarzanie potokowe. Począwszy od 5-go cyklu zegara wykonywanych jest 5 bloków jednocześnie, każdy dla innej, kolejnej instrukcji. Wyniki S1, S2, ... są dostępne w kolejnych cyklach zegara (5-tym, 6-tym, itd.), a nie po co 5-tym cyklu zegara, jak to było w przetwarzaniu niepotokowym.

Potencjalnie jest możliwe 5-cio krotne zwiększenie prędkości obliczeń. Niestety trzeba z góry przewidzieć sytuacje konfliktowe, hazard (w literaturze naukowej wymienia się kilkadziesiąt takich sytuacji). Na przykład w przypadku instrukcji skoku, w najgorszym przypadku trzeba wycofać instrukcje, które następowały po instrukcji skoku i rozpocząć zapełnianie potoku od adresu, do którego nastąpił skok.

Przetwarzanie potokowe

Clock cycle

Instr. 1

1 2 3 4 5 6 7 8 9

1F

2F

3F

1D

2D

3D

1E

2E

3E

4E

5E

4D

5D

4F

5F

10

Instr. 2

Instr. 3

Instr. 5

Instr. 4

1A 1S

2A

3A

4A

5A

2S

3S

4S

5S

Instr. 6

6F 6D 6E 6A 6S