Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
1
Państwowa Wyższa Szkoła Zawodowa
w Elblągu
Technika Cyfrowa i Mikrokomputery – lab. NR 11
Procesor 8086
Procesor ADSP 21065L
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
2
PROCESOR 8086
Procesor 8086 został zaprezentowany przez firmę INTEL już w 1976 r. Był pierwszym
procesorem 16-bitowym o wielkiej na ówczesne czasy przestrzeni adresowej 1MB. W
dziesięć lat później, kiedy rynek został opanowany przez 8-bitowe systemy PC, INTEL
zaprojektował procesor 8088 będący odpowiednikiem 8086, ale mogący współpracować z
magistralami 8-bitowymi. Ten hybrydowy procesor umożliwiał pracę oprogramowania
wykorzystującego rejestry 16-bitowe, mogące mieć dostęp do pamięci do 1MB i to za cenę
systemu 8-bitowego. Procesor 8088 stał się sercem systemów PC i PC XT. Częstotliwość
zegara wynosiła w pierwszych modelach 4.77MHz w późniejszych 4.77/8MHz, a w ostatnich
modelach 10MHz.
ARCHITEKTURA MIKROPORCESORA 8086
Mikroprocesor 8086 składa się z dwóch współpracujących zespołów, działających
równocześnie:
√ zespołu wykonawczego EU (execution unit),
√ zespołu łącza z magistralą systemową BIU (bus interface unit).
ZESPÓŁ WYKONAWCZY EU
Zespół wykonawczy EU zawiera blok arytmetyczno – logiczny ALU wraz z rejestrem
znaczników FR (flag register), blok rejestrów ogólnego przeznaczenia i blok sterowania. Blok
ALU dołączony jest do magistrali wewnętrznej mikroprocesora, z której pobiera argumenty
operacji, a także wysyłany jest na nią wynik operacji. Ponadto może się na tej magistrali
pojawić zawartość rejestru znaczników.
15
8
7
0
-
-
-
-
OF DF IF TF SF ZF -
AF -
PF -
CF
Rejestr znaczników mikroprocesora 8086
Rejestr znaczników w tym mikroprocesorze jest 9-bitowy, a znaczenie występujących w nim
bitów jest następujące:
-
CF (znacznik przeniesienia) – przyjmuje wartość 1, gdy powstaje przeniesienie w
wyniku wykonania operacji arytmetycznej,
-
PF (znacznik parzystości) – przyjmuje wartość 1, gdy liczba „jedynek” w wyniku
operacji jest parzysta,
-
AF (znacznik przeniesienia połówkowego) – przyjmuje wartość 1, gdy powstaje tzw.
przeniesienie pomocnicze, między 3. i 4. bitem,
-
ZF (znacznik zera) – przyjmuje wartość 1, gdy wynik operacji jest równy 0,
-
SF (znacznik znaku) – przyjmuje wartość 1, gdy wynik operacji jest liczbą ujemną,
-
TF (znacznik pułapki) – ustawiany jest za pomocą odpowiedniego bitu w słowie stanu
programu,
-
IF (znacznik przerwań) – stanem 1 informuje o zezwoleniu na przyjęcie przerwania,
-
DF (znacznik kierunku) – informuje o zwiększaniu lub zmniejszaniu o 1 zawartości
rejestrów indeksowych SI i DI,
-
OF (znacznik nadmiaru) – przyjmuje wartość 1, gdy podczas obliczeń w kodzie U2
następuje przekroczenie zakresu.
Blok rejestrów ogólnego przeznaczenia składa się z czterech par rejestrów ośmiobitowych,
które są dostępne również jako 4 rejestry 16-bitowe oraz z czterech rejestrów 16-bitowych:
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
3
AX AH
AL
rejestr akumulatora
BX BH
BL
rejestr bazowy
CX CH
CL
rejestr zliczający
DX DH
DL
rejestr danych
SP
wskaźnik stosu (stack pointer)
BP
wskaźnik bazy (base pointer)
SI
rejestr adresu operandu źródłowego (source index)
DI
rejestr adresu przeznaczenia (destination index)
Rejestry ogólnego przeznaczenia mikroprocesora 8086
Jednostka arytmetyczno – logiczna odpowiada za realizację operacji arytmetycznych i
logicznych.
ZESPÓŁ ŁĄCZA Z MAGISTRALĄ SYSTEMOWĄ BIU
Zadaniem tej jednostki jest zapewnienie odpowiedniej komunikacji z bezpośrednim
otoczeniem mikroprocesora oraz przyspieszenie jego pracy. Przyspieszenie to uzyskano w
wyniku nałożenia procesów pobierania i wykonywania rozkazów. W skład bloku BIU
wchodzą:
ü blok rejestrów segmentowych,
ü licznik rozkazów,
ü sumator,
ü układ kolejki rozkazów,
ü układ sterowania.
Celem rozdzielenia obszarów przeznaczonych dla programu, danych i stosu wprowadzono
mechanizm segmentacji. Mikroprocesor zawiera cztery rejestry segmentowe, w których
przechowywane są adresy początków segmentów. Zawartości tych rejestrów wraz z adresem
efektywnym, obliczanym przez procesor, w zależności od trybu adresowania, stanowią adresy
fizyczne pamięci. Taki sposób adresowania ułatwia relokację programów i danych.
W mikroprocesorze 8086 są rozróżnione 4 logiczne obszary pamięci. Każdemu z nich
przypisany jest jeden rejestr segmentowy:
Ø CS (code segment) – rejestr adresu segmentu programu,
Ø DS (data segment) – rejestr adresu segmentu danych,
Ø SS (stack segment) – rejestr adresu segmentu stosu,
Ø ES (extra segment) – rejestr adresu segmentu dodatkowego.
Długość każdego segmentu wynosi 64 kB, dlatego adres wewnętrzny w segmencie, nazywany
dalej przesunięciem, jest 16-bitowy. Rejestry segmentowe mają również długość 16 bitów.
Wskazują one adres fizyczny początku segmentu w przestrzeni adresowej pamięci o
pojemności 1 MB. Taka przestrzeń adresowa wymaga 20-bitowego adresu. Adres początku
segmentu powstaje poprzez złożenie 16 bitów zawartości rejestru segmentowego i zer na
czterech najmniej znaczących pozycjach. Stąd segmenty mogą być rozmieszczone w pamięci
w dowolny sposób, ale z kwantem co 16 bajtów, począwszy od adresu 00000h i skończywszy
na FFFF0h.
Obliczenie adresu fizycznego odbywa się przez zsumowanie 16-bitowego przesunięcia i 20-
bitowego słowa złożonego z zawartości jednego z 4 rejestrów segmentowych oraz zer
na 4 najmniej znaczących pozycjach.
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
4
SS
ES
DS
CS
PAMIĘĆ
segment
dodatkowy
segment
programu
segment
danych
segment
stosu
1 MB
0MB
64 kB
64 kB
64 kB
64 kB
rejestry
segmentowe
mikroprocesor
adres fizyczny pamiêci
p
r
z
e
s
u
n
i
ê
c
i
e
15 rejestr segmentowy
0
adres początku segmentu
0 0 0 0
15 0
+
przesunięcie
19
0
= adres fizyczny pamięci
Wyznaczanie adresu fizycznego pamięci z wyk. rejestru segmentowego
Źródło przesunięcia jest różne dla różnych segmentów: dla segmentu kodu programu jest nim
licznik rozkazów PC, dla segmentu stosu – wskaźnik stosu SP, a dla segmentu danych jest to
wartość wynikająca z trybu adresowania i obliczana przez zespół EU na podstawie kodu
rozkazu i zawartości odpowiednich rejestrów bloku EU.
Licznik rozkazów IP (instruction pointer) lub PC (programm counter) jest rejestrem, w
którym przechowywany jest adres komórki pamięci, w której znajduje się następny do
wykonania rozkaz.
Sumator ma za zadanie obliczenie adresu fizycznego komórki pamięci lub układu we/wy,
z którym ma nastąpić wymiana danych.
Wspomniane nałożenie procesów pobierania i wykonywania rozkazów stało się możliwe
dzięki zastosowaniu kolejki rozkazów, która w czasie, gdy zespół wykonawczy zajęty jest
wykonywaniem wcześniej pobranego rozkazu, pobiera następny rozkaz i zapisuje go w
sześciobajtowej kolejce. Po wykonaniu rozkazu zespół wykonawczy pobiera następny rozkaz
ale nie z pamięci, a z kolejki rozkazów, dzięki czemu nie ma potrzeby oczekiwać na odczyt
pamięci.
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
5
FAZY CYKLU ROZKAZU I MIKROOPERACJE
Załóżmy, że rozkazy omawianego procesora są dwuargumentowe, pobierają argument
źródłowy i docelowy i umieszczają wynik w argumencie docelowym. Ogólnie cykl rozkazu
można podzielić na następujące cztery fazy:
1) Faza pobrania rozkazu z pamięci (ang. fetch)
2) Faza pobrania adresu pośredniego z pamięci
3) Faza pobrania argumentów i wykonania
4) Faza przerwania
Wśród nich faza pobrania adresu pośredniego z pamięci występuje tylko w rozkazach o trybie
adresowania pośrednim pamięci, natomiast faza przerwania dotyczy skoku do podprogramu
obsługi sytuacji wyjątkowych.
Każda faza składa się z jednego lub kilku cykli maszynowych. Jest to ciąg stanów realizujący
jednokrotny dostęp do magistrali (a przez nią do pamięci) w celu odczytu lub zapisu jednostki
danych. Liczba cykli maszynowych jakie są wymagane zależy od liczby jednostek danych,
jakie mają być przetransferowane, długości tych danych i jednostki transferu (jaka długość
danej jest przesyłana za jednym razem). Jeżeli np. mamy rozkaz 16b, a magistralę i pamięć 8
bitową, to w fazie pobrania rozkazu należy wykonać dwa cykle maszynowe realizujące
transfer kolejno dwóch bajtów. Jeżeli magistrala jest 32b i rozkazy 32b, to można je pobrać w
jednym cyklu maszynowym.
Cykl maszynowy składa się z kilku stanów procesora. Każdy z nich trwa dokładnie jeden cykl
zegara i zawiera jedną elementarną operację wykonywaną przez procesor. Nazywamy ją
mikrooperacją. Zatem
Cykl rozkazu dzieli się na mikrooperacje, wykonywane w jednym takcie zegara.
Układy (bloki) procesora są tak dobrane i połączone, aby dało się efektywnie realizować
wszystkie mikrooperacje niezbędne w cyklach
wszystkich rozkazów danego procesora. Rodzaj i kolejność mikrooperacji jest sterowana
przez jednostkę sterującą (CU). W CU
mamy mikroprogram którego kolejne mikroinstrukcje są poleceniami
wykonania jednej mikrooperacji.
Jeżeli procesor ma możliwość wykonywania w danym cyklu tylko
jednej mikrooperacji, wówczas jeden wynik otrzymujemy do pewną liczbę taktów zegara. Jest
to dosyć powolne działanie procesora. Lepiej jest, jeśli bloków procesora jest tyle i są one
połączone
tak, że na łączących je magistralach nie występują konflikty jednoczesnego dostępu.
Wówczas mogą one pracować jednocześnie i niezależnie wykonywać kilka różnych
mikrooperacji. Zapewnia to przyspieszenie wykonania cyklu rozkazu, czyli zwiększenie
liczby wyników przypadających średnio na jeden cykl zegara.
Typ wymaganych mikrooperacji zależy od konkretnych zasobów procesora, tj. rejestrów i
innych układów w jakie jest wyposażony procesor.
MODEL ZASOBÓW PROCESORA
Dla wyjaśnienia mikrooperacji i zasad sterowania nimi przez mikroprogram przyjmijmy
pewien model zasobów procesora. Jest to model prosty, pokazany na rys., w którym
wszystkie zasoby są dołączone do dwóch magistral wewnętrznych: magistrali danych i
adresowej. W tego rodzaju architekturze mikrooperacje obliczenia adresu i mikrooperacje
przesyłania danych mogą być wykonywane równocześnie, ale mikrooperacje wykorzystujące
tę samą magistralę muszą być wykonywane sekwencyjnie. W systemie tym można w sposób
przejrzysty zilustrować, z jakich typowych mikrooperacji powinien składać się cykl rozkazu.
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
6
Na rysunku strzałkami zaznaczono ścieżki przepływu danych i adresu. Przy ścieżkach
zaznaczono otwierające je sygnały sterujące Ci (C1, C2, C3, itd.)generowane przez jednostkę
sterującą (CU). Model ten obejmuje:
1) Magistrale wewnętrzne:
•
Wewnętrzną magistralę danych
•
Wewnętrzną magistralę adresową
2) Zespół rejestrów roboczych, a w nim:
•
Rejestr akumulatora AX (zapis C15, odczyt C1,C16),
•
Rejestr uniwersalny BX (zapis – C5, odczyt – C4,C27),
•
Przesuwnik buforem wejściowym P złożonym z PL i PH (zapis sygnałem C13, odczyt
sygna³em C14, rodzaj i wielkość przesunięcia sterowana sygnałem C12)
3) Zespół przetwarzania rozkazu, a w nim:
•
Rejestr rozkazu IR (zapis - C8, odczyt pola natychmiastowego -C19, zapis pola
natychmiastowego - C20)
•
Dekoder rozkazu DI (uruchamianie dekodowania C23),
4) Zespół adresowania
•
Generator adresu AG (ustawianie trybu adresowania C26)
•
Rejestry segmentowe RS
•
Wskaźnik programu IP z układem zwiększania (zapis - C6, odczyt - C7, zwiększenie o 1 –
C21)
•
Wskaźnik stosu SP z układem zwiększania/ zmniejszania (zapis – C17, odczyt – C18,
modyfikacja – C24, rodzaj modyfikacji – C25)
5) Zespół wykonawczy:
•
Bufor argumentu pierwszego X (zapis – C9)
•
Bufor argumentu drugiego Y (zapis – C10)
•
Układ arytmetyczno-logiczny ALU (sterowanie – C22)
•
Rejestr znaczników EFLAGS (ustawiany i odczytywany przez ALU)
6) Zespół sterujący:
•
Jednostka sterująca CU (generuje sygnały Ci),
•
Sygnały sterujące przepływem danych przez procesor: C1-C21
7) Zespół magistrali systemowej:
•
Rejestr adresowy pamięci MAR (zapis - C1),
•
Rejestr buforowy pamięci MBR (zapis - C2, odczyt - C3),
•
Pamięć i urządzenia wejścia / wyjścia
•
Sygnały sterujące pamięcią i urządzeniami wejścia-wyjścia: MW - zapis w pamięci, MR -
odczyt z pamięci, IOW - zapis na port, IOR - odczyt z portu.
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
7
Schemat przepływu danych i sterowań w prostym modelu procesora jednomagistralowego
Oto ciąg mikrooperacji wchodzących w skład typowych faz cyklu rozkazu. Wyjaśniając
rozkład cyklu rozkazu na mikrooperacje zakładamy, że:
•
Mikrooperacja trwa jeden takt zegara procesora i jest wykonywana przez jeden blok
procesora (rejestr, układ).
•
niektóre mikrooperacje z uwagi na konflikt zasobów (użycie tej samej magistrali lub
bloku) nie mogą być wykonane jednocześnie. Inne są bezkonfliktowe i będą wykonywane
w tym samym takcie procesora.
•
Długość rozkazu i danych jest równa słowu transferowanemu po szynie danych z pamięci
tak, że pobranie rozkazu i danej odbywa się w jednym cyklu maszynowym.
•
Dekodowanie rozkazu wymaga jednego taktu zegara procesora.
•
Pamięć zwraca daną na szynę danych w następnym takcie procesora po wystawieniu
adresu, zatem jest to trafienie danej w szybkiej pamięci podręcznej połączonej z
procesorem szybką magistralą lokalną taktowaną zegarem procesora.
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
8
ROZKŁAD CYKLU ROZKAZU NA MIKROOPERACJE
Rozpatrzymy szczegółowo 3 fazy cyklu rozkazu: pobranie rozkazu,
pobrania adresu pośredniego i wykonania. Mikrooperacje wchodzące w skład faz zestawione
są w tabelach, podając kolejno: numer taktu zegara, symbol mikrooperacji, opis i sygnały
sterujące, które muszą przyjąć poziom aktywny (typowo niski), aby mikrooperacja została
zrealizowana.
1. Faza pobrania rozkazu (1 cykl maszynowy, 4 takty zegara)
Faz pobrania rozkazu w 1 cyklu maszynowym zajmującym 4 takty zegara przedstawione są w
Tablicy rozłożoną na mikrooperacje.
Przebiegi czasowe tej fazy przedstawione są tym rysunku :
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
9
W takcie T1 pierwszym zboczem zegara następuje przesłanie adresu rozkazu z PC do MAR.
Wówczas z pewnym opóźnieniem adres ten pojawia się na szynie adresowej. Wystawienie
rozkazu przez pamięć będzie opóźnione w stosunku do tej chwili o około 1 takt (czas dostępu
do pamięci).
W takcie T2 pierwszym zboczem zostaje ustawiony impuls odczytu MR i zwiększony stan
rejestru PC, drugim zboczem następuje odczytanie pokazanych na rysunku sygnałów
zewnętrznych sterujących procesorem, np. RESET (inicjalizacja procesora), INT (żądanie
przerwania). Pod koniec tego taktu na szynie danych pojawi się wystawiony przez pamięć
rozkaz.
W takcie T3 pierwszym zboczem rozkaz zostaje odczytany z szyny i przesłany do IR. Przed
końcem tego taktu zanika sygna³ MR i rozkaz na szynie danych.
Takt T4 jest przeznaczony na zdekodowanie rozkazu (sygnał C23). Wtedy też z szyny
adresowej zdejmowany jest adres.
Tego rodzaju 4-taktowy cykl maszynowy jest spotykany, np. w komputerach PC. W praktyce
szyna adresu i danych bywa multipleksowana. Wówczas taktowanie przebiega jak pokazano
na rysunku 2gim W środku taktu T1 adres zostaje zapisany w rejestrze zatrzaskowym pamięci
(ang. Address Latch) zboczem opadającym pomocniczego impulsu zezwalającego ALE i na
początku taktu T2 zdjęty z szyny. Pod koniec taktu T2 na tą sama szynę pamięć wystawia już
odczytany rozkaz
2. Faza pobrania argumentów i wykonania
Niech rozkaz pobrany w omówionej powyżej fazie pobrania będzie
rozkazem dodawania. Rozpatrzymy najprostszy tryb rejestrowy: do zawartości rejestru AX
dodajemy zawartość rejestru BX, a wynik umieszczamy w rejestrze AX:
ADD AX , BX
Fazę te pokazuje poniższa Tablica. Nie wymaga ona cyklu maszynowego i składa się z 3
mikrooperacji wykonania, które mogą być wykonane w 3 taktach zegara: załadowanie
argumentu 1, załadowanie argumentu drugiego, dodawanie i załadowanie wyniku zgodnie z
poprzednia tabelą.
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
10
Nieco bardziej skomplikowany będzie cykl wykonania, jeżeli rozkaz zawiera tryb pośredni
rejestrowy dostępu do argumentu, np. do zawartości rejestru AX dodamy zawartość komórki
pamięci o adresie zapisanym w rejestrze BX, a wynik umieścimy w AX:
ADD [BX] , AX
Fazę wykonania przedstawia poniższa tablica. Faza ta wymaga 6 taktów i 2 cykli
maszynowych: 3 taktów pobrania argumentu z pamięci do rejestru BX (1 cykl maszynowy) i
3 taktów dodawania i zapisu wyniku (1 cykl maszynowy).
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
11
Procesor ADSP 21065L
Procesor sygnałowy (ang. Digital Signal Processor, procesor DSP) oznacza klasę
specjalizowanych procesorów do cyfrowej obróbki sygnałów. Charakteryzują się
rozdzielonymi pamięciami programu i danych, możliwością równoczesnego odczytu
instrukcji i danych, sprzętowym dostosowaniem do wykonywania operacji najczęściej
występujących przy przetwarzaniu sygnałów (filtracji FIR i IIR, transformacji Fouriera,
korelacji wzajemnej) i potokowym przetwarzaniem instrukcji.
Zastosowanie procesorów sygnałowych
1. obróbka dźwięku:
•
korektory
•
efekty specjalne (echo, pogłos, dodawanie głębi),
•
filtracja
•
usuwanie echa (ang. echo cancellation) (telefony komórkowe, łączność
cyfrowa)
2. przetwarzanie dźwięku:
•
-
zniekształcanie
•
-kodowanie (CD, MP3, telefon i radio cyfrowe)-rozpoznawanie mowy
•
-synteza mowy
•
-systemy aktywnego wyciszania (słuchawki obsługi technicznej lotnisk,
dźwięk transformatora energetycznego, hałas wentylatora w komputerze PC,
...) „szyk mikrofonów”)
3. obróbka obrazu:
•
-regulacja parametrów (barwa, nasycenie, kontrast)-„obraz w obrazie”
•
-korektory
•
-przechwytywanie i zatrzymywanie
4. przetwarzanie obrazu:
•
-kodowanie/kompresja (JPG, DIVX)
•
-rozpoznawanie obrazów (medycyna, „oczy” robotów)-synteza obrazu (w
prostszych systemach graficznych)
5. sterowanie maszyn elektrycznych:
•
-wieloosiowe frezarki i tokarki numeryczne
•
-nowoczesny napęd pojazdów elektrycznych
•
-roboty przemysłowe
6. inne:
•
-układy sztucznej inteligencji
•
-autopilot
•
-układy sterowania ruchu robotów
•
-aparatura medyczna
•
-kontrola poprawności działania procesów przemysłowych
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
12
Elementy procesora sygnałowego
•
układy arytmetyczno-logiczne ALU dostosowane do szybkiego wykonywania działań
typu mnożenie i dodawanie (jednostka Multiple and Accumulate MACC)
•
operowanie na sygnałach rzeczywistych (stało lub zmiennoprzecinkowych)
•
mechanizmy nasycania wyniku, zaokrąglania
•
mechanizmy do szybkiego indeksowania wektorów (tablic) i macierzy
•
szybka jednostka przesuwająca bity (Shifter) głównie procesory stałoprzecinkowe
•
elementy wejścia i wyjścia (I/O): przetworniki analogowo/cyfrowe i
cyfrowo/analogowe, szybkie interfejsy szeregowe,
•
szybka pamięć typu Harvard
•
sprawna jednostka przetwarzająca (CPU) - często zwielokrotnione jednostki ALU
Procesor ADSP-21065L
Firma Analog Devices opracowała procesor sygnałowy rodziny SHARC. ADSP-
21065L to procesor 32-bitowy ogólnego przeznaczenia oferowany w cenie zaledwie
10 USD. Ze względu na niską cenę jest stosowany między innymi w takich
aplikacjach czasu rzeczywistego, jak systemy antykolizyjne w samochodach, cyfrowy
sprzęt audio oraz systemy rozpoznawania mowy w komputerach. Jest dwukrotnie
szybszy od innych oferowanych obecnie 32-bitowych procesorów DSP, niezależnie od
ich ceny, i trzykrotnie szybszy od procesorów DSP w tym przedziale cenowym.
Szybkość
obliczeniowa
ADSP-21065L
wynosi
180
milionów
operacji
zmiennoprzecinkowych na sekundę i 60 milionów operacji stałoprzecinkowych, a
przepustowość
obwodów
wejścia/wyjścia
sięga
240Mb/s.
Procesory sygnałowe rodziny SHARC są unikalne pod względem dużej szybkości
wykonywania zarówno operacji stało- jak i zmiennoprzecinkowych. Niska cena ADSP-
21065L umożliwia stosowanie go również w dziedzinie komunikacji, gdzie dotychczas
ze względów cenowych były powszechnie wykorzystywane 16-bitowe procesory DSP.
Poprzednie modele procesorów SHARC były szeroko stosowane w infrastrukturze
telekomunikacyjnej, systemach rozpoznawania mowy, profesjonalnym sprzęcie audio,
przetwarzaniu
obrazów
oraz
automatyce
i
robotyce.
ADSP-21065L zawiera dwa porty szeregowe ogólnego przeznaczenia, port
I2C obsługujący osiem kanałów w urządzeniach audio/wideo, 544kb konfigurowalnej
pamięci (16k słów 32-bitowych), 10 kanałów bezpośredniego dostępu do pamięci
(DMA), dwa timery umożliwiające pracę w trybie capture i modulację PWM oraz 12
programowalnych linii wejścia/wyjścia. Wbudowany interfejs SDRAM dodatkowo
obniża koszty systemu umożliwiając bezpośrednią współpracę z rozpowszechnionymi
obecnie pamięciami tego typu. Zewnętrzna przestrzeń adresowa wynosi 64M słów
32-bitowych.
(
)
0
1
[ ]
N
i
i
i
y k
w
x w
=
=
+ ⋅
∑
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
13
ADSP-21065L pracuje z napięciem zasilania 3,3V i jest wytwarzany w 208-
wyprowadzeniowej obudowie PQFP.
Architektura procesora SHARC
Jednostka obliczeniowa procesora
Jednostka obliczeniowa procesora z rodziny SHARC ADSP –21065L posiada rejestr
mogący zapamiętać szesnaście słów 40 – bitowych . do rejestru tego podłączone są układy:
-
ALU
-
Układ szybkiego rejestru przesuwnego krążącego (barrel shifter –
przesuwanie bitów lewo/prawo, modyfikacja wartości bitów )
-
mnożnik
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
14
ALU (arithmetic and logical unit) - Jednostka arytmetyczno-logiczna to części procesora
prowadząca proste operacje na liczbach całkowitych.
Typowe ALU ma dwa wejścia odpowiadające parze argumentów i jedno wyjście na wynik.
Operacje jakie prowadzi to:
•
operacje logiczne AND, OR, NOT, XOR
•
dodawanie
•
często też, odejmowanie, negacja liczby, dodawanie z przeniesieniem,
zwiększanie/zmniejszanie o 1
•
przesunięcia bitowe o stałą liczbę bitów, czasem też o zmienną liczbę
•
dość często mnożenie i czasem dzielenie/modulo
Przyczyną dla której operacje te grupuje się w ALU jest to, że bramek logicznych
potrzebnych do zaimplementowania wszystkich operacji z zestawu: dodawanie (z
przeniesieniem i bez), odejmowanie (z przeniesieniem i bez), negacja liczby zwiększanie i
zmniejszanie o 1, AND, OR, NOT, XOR jest niewiele trudniejsze od zaimplementowania
samego dodawania. Mnożenie jest już droższe, a dzielenie jest bardzo drogie w porównaniu
do tych operacji.
Klasyczne procesory zawierały jedno ALU. Procesory o architekturze superskalarnej
zawierają kilka ALU, i mogą ich używać jednocześnie. Często ALU te są nieidentyczne – np.
z trzech ALU wszystkie potrafią wykonywać podstawowe operacje (dodawanie, odejmowanie
i logiczne), a jedynie jedno potrafi mnożyć i dzielić. Taki procesor w jednym cyklu może
wykonać np. 1 mnożenie i 2 dodawania, nie może natomiast wykonać 2 mnożeń. Jest to
uzasadnione, ponieważ typowy program wykonuje o wiele więcej dodawań (często
niejawnych dla programisty, np. przy wyliczaniu adresu pola obiektu na podstawie adresu
obiektu czy dostępu do n-tej zmiennej na stosie) niż mnożeń, a dodanie mnożenia mocno
komplikuje ALU.
Mnożenie zmiennoprzecinkowe z jednoczesnymi operacjami ALU
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
15
Procesory firmy Analog Devices posiadają możliwość wykonywania operacji
zmiennoprzecinkowych bez potrzeby instalacji dodatkowych układów. Procesor potrafi
dokonywać operacje np. dodawania na liczbach zmiennoprzecinkowych o różnych
rozmiarach.
Flagi operacji arytmetyczno logicznych:
rejestr ASTATx/y
• ALU result zero or floating-point underflow. Bit 0 (AZ)
• ALU overflow. Bit 1 (AV) - przepełnienie
• ALU result negative. Bit 2 (AN) – wynik negatywny
• ALU fixed-point carry. Bit 3 (AC) – operacja stało-przecinkowa
• ALU X input sign for ABS, Mant operations. Bit 4 (AS) – sygnał wejściowy dla operacji
ABS i Mant
• ALU floating-point invalid operation. Bit 5 (AI) – niewłaściwa operacja zmienno-
przecinkowa
• Last ALU operation was a floating-point operation. Bit 10 (AF) – ostatnia operacja
jednostki LAU była typu zmienno-przecinkowego
• Compare Accumulation register results of last 8 compare operations. Bits 31-24 (CACC) -
Porównują wyniki zgromadzone z ostatnich 8 porównań
Flagi operacji arytmetyczno logicznych:
rejestr STKx/y
Flagi, które mogą zostać tylko ustawione przez ALU (kasowane przez program)
• ALU floating-point underflow. Bit 0 (AUS) – opróżnienie operacji zmienno-przecinkowej
• ALU floating-point overflow. Bit 1 (AVS) - przepełnienie operacji zmienno-przecinkowej
• ALU fixed-point overflow. Bit 2 (AOS) - opróżnienie operacji stało-przecinkowej
• ALU floating-point invalid operation. Bit 5 (AIS) - przepełnienie operacji
stało-przecinkowej
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
16
Podstawowe operacje ALU
Instrukcja
ASTAT x,y Status
Flagi
STKY x,y
Status flagi
Ustawiony punkt
A
Z
A
V
A
N
A
C
A
S
A
I
A
F
C
A
C
C
A
U
S
A
V
S
A
O
S
A
I
S
Rn=Rx+Ry
Rn=Rx-Ry
Rn=Rx+Ry+CI
Rn=Rx-Ry+CI-1
Rn=(Rx+Ry)/2
COMP(Rx, Ry)
COMPU(Rx, Ry)
Rn=Rx+CI
Rn=Rx+CI-1
Rn=Rx+1
Rn=Rx-1
Rn=-Rx
Rn=ABS Rx
Rn=PASS Rx
Rn=Rx AND Ry
Rn=Rx OR Ry
Rn=Rx XOR Ry
Rn=NOT Rx
Rn=MIN (Rx, Ry)
Rn=MAX (Rx, Ry)
Rn=CLIP Rx BY Ry
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
0
0
0
*
*
*
*
*
*
0
0
0
0
0
0
0
0
*
*
*
*
*
*
*
*
*
*
*
*
0
*
*
*
*
*
*
*
*
*
*
*
*
*
0
0
*
*
*
*
*
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
*
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-
-
-
-
-
*
*
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
**
**
**
**
-
-
-
**
**
**
**
**
**
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
„0” – flaga zostanie skasowana
„*” – skasowana lub ustawiona (w zależności od wyniku )
„**” – może zostać ustawiona lecz nie skasowana
„ – ”– bez zmian
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
17
Zakresy wyników mnożenia stałoprzecinkowego ALU
Szesnastkowo
Maksymalna liczba
MRF2
MRF1
MRF0
Niecałkowita
(dodatnia)
0000
7FFF FFFF
FFFF FFFF
Niecałkowita (ujemna)
FFFF
8000 0000
0000 0000
Całkowita (dodatnia)
0000
0000 0000
7FFF FFFF
Całkowita (ujemna)
FFFF
FFFF FFFF
8000 0000
Bez znakowa
niecałkowita
0000
FFFF FFFF
FFFF FFFF
Bez znakowa
całkowita
0000
0000 0000
FFFF FFFF
Generator adresu danych
(Data Addres Generator) DAG
Państwowa Wyższa Szkoła Zawodowa w Elblągu
Technika Cyfrowa i Mikrokomputery
dr inż. Stanisław Witkowski – materiał roboczy
18
Generator Adresu danych jest to układ który generuje tymczasowy adres dla danych które
są przesyłane pomiędzy pamięcią a rejestrami a procesorach DSP. Układ pomaga w przesyle
bloków danych pomiędzy buforami.
Barrel-Shifter
Flagi ASTAT x,y
Instrukcja
SZ
SV
SS
Rn=LSHIFT Rx BY Ry
Rn=LSHIFT Rx BY <data8>
Rn=Rn OR LSHIFT Rx BY Ry
Rn=Rn OR LSHIFT Rx BY <data 8>
Rn=ASHIFT Rx BY Ry
Rn=ASHIFT Rx BY <data8>
Rn=Rn OR ASHIFT Rx BY Ry
Rn=Rn OR ASHIFT Rx BY <data 8>
Rn=ROT Rx BY Ry
Rn=ROT Rx BY <data8>
Rn=BCLR Rx BY Ry
Rn=BCLR Rx BY <data 8>
Rn=BEST Rx BY Ry
Rn=BEST Rx BY <data 8>
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
0
0
*
*
*
*
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Opis Funkcji :
LSHIFT (logical shift) - oznacza przesunięcie logiczne, to znaczy przesunięcie, w którym
brakujące bity uzupełnia się zerami.
ASHIFT (arithmetic shift) – przesunięcie arytmetyczne
ROT – przesunięcie
BCLR – Zamienia bity na wartość 0
Procesor ADSP 21065L jest procesorem z rodziny SHARC, jest to procesor DSP
wyspecjalizowany w obróbce sygnałów cyfrowych. Jest to układ 32 bitowy
zmiennoprzecinkowy posiadający wydajność na poziomie 180 milionów operacji
zmiennoprzecinkowych na sekundę i 60 milionów operacji stałoprzecinkowych. Jest
to idealne narzędzie mające zastosowanie poczynając od sterowania oświetleniem a
skończywszy na automatycznym sterowaniu całymi liniami produkcyjnymi. Układ ten
dzięki swojej niezawodności a także elastyczności jest także idealnym układem do
nauki programowania procesorów.