View
217
Download
1
Category
Preview:
Citation preview
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 do 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
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.
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
Wykrywacze radaru Sprzęt cyfrowy audio/TV Syntezatory muzyczne Zabawki edukacyjne Modele zdalnie sterowane
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
Architektura von Neumanna to pierwszy rodzaj architektury komputera, opracowanej w 1945 roku. Cechą charakterystyczną tej architektury jest to, że dane przechowywane są wspólnie z instrukcjami, co sprawia, że są kodowane w ten sam sposób. Cechy charakterystyczne: pamięć komputerowa przechowuje dane programu oraz
instrukcje programu, każda komórka pamięci ma unikatowy identyfikator nazywany jej adresem
jednostka centralna jest odpowiedzialna za pobieranie danych i instrukcji z pamięci oraz ich sekwencyjne przetwarzanie, a także za wykonywanie podstawowych operacji arytmetycznych.
Super Harvard Architecture (dual memory, instruction cache, I/O controller)
Harvard Architecture (dual memory)
Von Neumann Architecture (single memory)
Program
Memory
instructions
and
secondary
data
CPU Data
Memory
data only Instruction
Cache
I/O
Controller
data
PM address bus DM address bus
PM data bus DM data bus
Program
Memory
instructions
only
CPU
Data
Memory
data only
PM address bus DM address bus
PM data bus DM data bus
Memory
data and
instructions
CPU
address bus
data bus
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
Recommended