background image

 

 

Procesory sygnałowe

Wykład 3 

Architektura procesora 

ADSP-21065L

Dr inż. Robert 
Wielgat

background image

 

 

Podstawowe parametry 

techniczne procesora ADSP-

21065L

ADSP 21065L

Częstotliwość zegara 

systemowego

66 MHz

Długość cyklu maszynowego

15 ns

Szybkość wykonywania 

operacji 

zmiennoprzecinkowych

132 MFLOPS, Max 198 MFLOPS

Czas wykonywania 
1024 punktowej FFT

279 μs

Czas mnożenia macierzy 
[3x3]*[3x1], [4x4]*[4x1]

136 ns, 242 ns

Czas wykonywania dzielenia

91 ns

Rozmiar wewnętrznej pamięci 

RAM

544 Kbit

background image

 

 

Cechy procesora ADSP-21065L

• Konfigurowalna

 dwu-portowa pamięć wewnętrzna 544 Kbit 

• Możliwość zaadresowania 256 MB pamięci zewnętrznej w 
organizacji 32-bitowej

• Moc obliczeniowa 198 MFLOPS (operacje zmiennoprzecinkowe 
na słowach 32-bitowych) i 198 MOPS (operacje 
stałoprzecinkowe na słowach 32-bitowych)

• Zintegrowany interfejs SDRAM

• Dwa dwukierunkowe porty szeregowe

• 16 kanałowy tryb przesyłu I2S

• Dwa timery z opcjami PWM oraz przechwytywania zdarzeń

• 12 programowalnych Wejść/Wyjść

• 10 kanałów DMA

• Bezpośrednie podłączenie do innych procesorów ADSP-
21065L

• Asembler kompatybilny z wszystkimi procesorami typu SHARC 

• Napięcie zasilania 3.3 V, Obudowa MQFP 208-końcówek,

background image

 

 

Architektura super Harward

Port 

zewnętrz

ny

Port 

zewnętrz

ny

Jądro 

procesor

a

Jądro 

procesor

a

Dwuportowa 

pamięć 

wielodostępna

Dwuportowa 

pamięć 

wielodostępna

Procesor urządeń 

we/wy

oraz

kontroler DMA

Procesor urządeń 

we/wy

oraz

kontroler DMA

System 

magistrali

System 

magistrali

background image

 

 

Schemat blokowy ADSP-

21065L

background image

 

 

Charakterystyka 

architektury procesora 

ADSP-21065L

1. Jądro procesora DSP,

2. Dwu-portowy dostęp do pamięci (rozkazy, dane)

3. Zewnętrzny port do dołączenia pamięci zewnętrznej 

oraz urządzeń WE/WY. Rozmiar 64Mx32 bity (24 bitowy 
adres)

4. Procesor WE/WY oraz kontroler DMA 

Procesor WE/WY zawierający układ sterujący oraz 
dwa porty szeregowe mogące pracować z pełną 
częstotliwością procesora (maksymalny transfer 
danych 30 Mbit/s). Porty mogą pracować w jednym z 
trzech trybów pracy: standardowym, I

2

S, TDM.

10-kanałowy kontroler DMA. Transfer DMA 
obejmujący zarówno dane jak i kody instrukcji jest 
możliwy pomiędzy pamięcią wewnętrzną RAM, 
zewnętrzną pamięcią RAM, portem szeregowym i 
urządzeniami peryferyjnymi

background image

 

 

Jądro procesora ADSP-

21065L

background image

 

 

Jądro procesora ADSP-

21065L

Timer 1

Timer 1

Timer 2

Timer 2

Pamięć 

podręczna 

(cache) 

instrukcji

32 x 48 bitów

Pamięć 

podręczna 

(cache) 

instrukcji

32 x 48 bitów

Generator 

adresu 1 (DAG 

1) 

8 x 4 x 32

Generator 

adresu 1 (DAG 

1) 

8 x 4 x 32

Generator 

adresu 2 (DAG 

2)

8 x 4 x 32

Generator 

adresu 2 (DAG 

2)

8 x 4 x 32

Sekwenter 

programowy

Sekwenter 

programowy

Rejestr 

Magistral 

(PX)

Rejestr 

Magistral 

(PX)

Mnożarka

Mnożarka

Zbiór 

rejestrów 

16 x 40 bitów

Zbiór 

rejestrów 

16 x 40 bitów

Shifter

Shifter

ALU

ALU

Jednostki obliczeniowe

32

24

40

48

DMA Bus

PMA Bus

DMD Bus

PMD Bus

background image

 

 

Jednostki obliczeniowe

Mnożarka

Mnożarka

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Shifte

r    

Shifte

r    

ALU

ALU

40

48

DMD Bus

PMD Bus

MR

2

MR

2

MR

1

MR

1

MR

0

MR

0

background image

 

 

Jednostki obliczeniowe 

w ADSP-21065L

Jednostka arytmetyczno-logiczna (ALU).

 Realizuje 

stadardowe operacje arytmetczne i logiczne na 
liczbach stało- i zmienno-przecinkowych.

Mnożarka (ang. Multiplier).

 Realizuje operacje 

mnożenia stało- i zmienno- przecinkowego oraz 
podwójne operacje typu mnożenie/dodawanie i 
mnożenie/odejmowanie.

Shifter.

 Realizuje wszelkiego rodzaju operacje na 

bitach (przesuwanie, rotacja, ekstrakcja itp.)

Jednostki obliczeniowe przechowują operandy 

wejściowe i wyniki obliczeń w 10- portowym 
zbiorze rejestrów.

background image

 

 

Jednostki obliczeniowe – 

zbiór rejestrów

Mnożarka

Mnożarka

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Shifte

r    

Shifte

r    

ALU

ALU

40

48

DMD Bus

PMD Bus

MR

2

MR

2

MR

1

MR

1

MR

0

MR

0

background image

 

 

Jednostki obliczeniowe – zbiór 

rejestrów

Zawiera dwie grupy 16 rejestrów: pierwotnych i wtórnych.

Szerokość danych w każdym z rejestrów jest równa 40 bitów.

32-bitowe dane zawsze są wyrównywane do lewej. W trakcie 
odczytu danej procesor ignoruje osiem mniej znaczących 
bitów. Podczas zapisu ustawia natomiast osiem zer.

Dostęp do zbioru rejestrów przez magistrale danych: PM i DM 
odbywa się w jednym cyklu.

Dane przesyłane pomiędzy zbiorem rejestrów a magistralami 
danych: PM i DM są zawsze 40-bitowe.

Transfer danych pomiędzy zbiorem rejestrów a 48-bitową 
magistralą danych PM uwzględnia 40 bardziej znaczących 
bitów. Osiem mniej znaczących bitów jest ustawianych na 
zero.

Jeżeli na operand i wynik operacji przeznaczy się ten sam 
rejestr odczyt następuje w pierwszej połowie cyklu, natomiast 
zapis w drugiej.

Jeżeli w tym samym cyklu występuje kilka żądań zapisu do 
jednego rejestru, to realizowany jest zapis danej ze źródła o 
najwyższym priorytecie (DM lub rejestry uniwersalne, PM, 
ALU, Mnożarka, Shifter).

background image

 

 

Jednostki obliczeniowe – 

jednostka arytmetyczno-

logiczna

Mnożarka

Mnożarka

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Shifte

r    

Shifte

r    

ALU

ALU

40

48

DMD Bus

PMD Bus

MR

2

MR

2

MR

1

MR

1

MR

0

MR

0

background image

 

 

Jednostki obliczeniowe – 

jednostka arytmetyczno-

logiczna

Jednostka arytmetyczno-logiczna (ALU) realizuje następujące 

operacje:

Stało- i zmiennoprzecikowe:

 dodawanie, odejmowanie, 

podwójne dodawanie/odejmowanie, średnia.

Zmienno-przecinkowe:

 binarny logarytm, skalowanie, 

mantysa.

Stało-przecinkowe:

 dodawanie z przeniesieniem, odejmowanie 

z pożyczką, inkrementacja, dekrementacja

Logiczne:

 AND, OR, XOR, NOT

Funkcje:

 ABS, przejścia, Min, Max, Clip, porównanie

Konwersja danych

Odwrotność, odwrotność pierwiastka kwadratowego.

Wszystkie operacje realizowane przez ALU zwracają 

jeden wynik

 z 

wyjątkiem:

1. Operacji podwójnego dodawania/odejmowania: zwraca 

dwa 

wyniki

2. Operacji porównania: 

nie zwraca wyniku

, a jedynie modyfikuje 

flagi.

background image

 

 

Jednostki obliczeniowe – 

mnożarka

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Shifte

r    

Shifte

r    

ALU

ALU

40

48

DMD Bus

PMD Bus

Mnożarka

Mnożarka

MR

2

MR

2

MR

1

MR

1

MR

0

MR

0

background image

 

 

Jednostki obliczeniowe – 

mnożarka

Mnożarka wykonuje operacje mnożenia na liczbach 

stało- i zmienno przecinkowych oraz operacje 
mnożenia z akumulacją

Stałoprzecinkowe instrukcje mnożarki operują na 

danych 32 bitowych i dają rezultat 80 bitowy. 
Dotyczy to liczb ułamkowych i naturalnych bez i 
ze znakiem.

Zmiennoprzecinkowe instrukcje mnożarki operują na 

danych 32 i 40-bitowych i dają rezultat 
odpowiednio 32 i 40-bitowy.

background image

 

 

Jednostki obliczeniowe – 

mnożarka

Do wybranego rejestru ze zbioru rejestrów są zapisywane 

bity 63-32 wyniku ułamkowego oraz bity 31-0 wyniku 
naturalnego. 
8 najstarszych bitów w rejestrze jest wypełnianych 
zerami

background image

 

 

Jednostki obliczeniowe – 

shifter

Mnożarka

Mnożarka

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Zbiór 

rejestrów

10-portowy

 

16 x 40 

bitów

Shifte

r    

Shifte

r    

ALU

ALU

40

48

DMD Bus

PMD Bus

MR

2

MR

2

MR

1

MR

1

MR

0

MR

0

background image

 

 

Jednostki obliczeniowe – 

shifter

background image

 

 

Jednostki obliczeniowe – 

shifter

background image

 

 

Jednostki obliczeniowe – 

shifter

background image

 

 

Wyjątki obsługiwane 

przez ADSP-21065L

background image

 

 

Rejestry ASTAT i STKY

background image

 

 

Rejestr ASTAT – flagi 

generowane przez ALU

AZ - wynik zerowy lub niedomiar (ang. Underflow) w 
operacji zmiennoprzecinkowej

AV - przepełnienie (ang. Overflow)

AN - ujemny wynik operacji

AC - przeniesienie w operacji stałoprzecinkowej

AS - znak operandu X w jednostce ALU (rozkazy ABS, 
MANT)

AI - niedozwolona operacja zmiennoprzecinkowa

AF - ostatnią operacją w jednostce ALU była operacja 
zmiennoprzecinkowa

CACC (0-7) - Akumulacyjny rejestr porównań ( wyniki 8 
ostatnich rozkazów porównań)

background image

 

 

Rejestr ASTAT – flagi 

generowane przez pozostałe 

urządzenia

MN - ujemny wynik operacji z mnożarki 

MV - przepełnienie (ang. Overflow) mnożarki 

MU - niedomiar (ang. Underflow) w wyniku z mnożarki

MI - niedozwolona operacja zmiennoprzecinkowa w 
mnożarce

SV – przepełnienie (ang. overflow) shiftera lub bity po 
lewej stronie MSB 

SZ - wynik zerowy z shiftera

SS – znak operandu wejściowego w shifterze

BTF – flaga testująca bity rejestrów systemowych (ang. 
Bit Test Flag) wykorzystywana np. w operacji XOR

FLG (0-3) – flagi uniwersalne służące do komunikacji z 
urządzeniami zewnętrznymi

background image

 

 

Rejestr STKY – opis wybranych 

flag

AUS – niedomiar z operacji zmiennoprzecinkowej w ALU

AVS – przepełnienie z operacji zmiennoprzecinkowej w 
ALU

AOS - przepełnienie z operacji stałoprzecinkowej w ALU

AIS - niedozwolona operacja zmiennoprzecinkowa w  ALU

MOS - przepełnienie z operacji stałoprzecinkowej w 
mnożarce

MVS – przepełnienie z operacji zmiennoprzecinkowej w 
mnożarce

MUS – niedomiar z operacji zmiennoprzecinkowej w 
mnożarce

MIS - niedozwolona operacja zmiennoprzecinkowa w  
mnożarce

background image

 

 

Operacje wielofunkcyjne

background image

 

 

Literatura

1. Analog Devices, ADSP-21065L SHARC

®

 DSP. User’s 

Manual, USA, 2003. (Rozdziały: „Preface”, 
„Introduction”, „Computation Units”)

Dokumentację można pobrać ze strony 

http://

www.analog.com

2. Jacek Augustyn, „Asemblery μC51, ADSP-21065L 

SHARC”, Wydawnictwa Naukowo-Dydaktyczne PWSZ 
w Tarnowie, Wyd. IGSMiE PAN, Kraków 2006, 
Rozdział 9


Document Outline