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   

 

 

 

 

 

 

 

 

 

 

 

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 

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 









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” – 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> 








































 
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.