Procesor 8086

background image

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






background image

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:

background image

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.

background image

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.

background image

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.

background image

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.




background image

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.

background image

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 :


background image

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ą.




background image

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).






background image

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


background image

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

=

=

+ ⋅

background image

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


background image

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















background image

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










background image

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












background image

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































background image

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.


Wyszukiwarka

Podobne podstrony:
procesor 8086
Procesor 8086, POLITECHNIKA wydział E kierunek I, ARCHITEKTURA SYSTEMOW KOMPUTEROWYCH
Procesor 8086
architektura procesora [1] materialy 8086 1
MIKROPRO, Mikroprocesory 8086 i 8088 nale˙˙ do jednych z pierwszych 16-to bitowych procesor˙w. Ich l
W4 Proces wytwórczy oprogramowania
WEWNĘTRZNE PROCESY RZEŹBIĄCE ZIEMIE
Proces tworzenia oprogramowania
Proces pielęgnowania Dokumentacja procesu
19 Mikroinżynieria przestrzenna procesy technologiczne,
4 socjalizacja jako podstawowy proces spoeczny
modelowanie procesˇw transportowych
Proces wdrazania i monitoringu strategii rozwoju

więcej podobnych podstron