Mikroprocesor - nie zawsze znaczy to samo_1.pdf

(236 KB) Pobierz
"Mikroprocesor" nie zawsze znaczy to samo
P O D Z E S P O Ł Y
„Mikroprocesor”
nie zawsze znaczy to samo
Zaczniemy od bana³u: technika mikroprocesorowa
opanowa³a juø niemal wszystkie dziedziny øycia. Bana³
drugi: zdecydowana wiÍkszoúÊ elektronikÛw ma na swoim
koncie choÊby najprostsze opracowania mikroprocesorowe.
Bana³ trzeci: wiÍkszoúÊ z†nich (nas) zna tylko jedn¹ lub
co najwyøej dwie ich rodziny, s¹dz¹c przy tym czÍsto, øe
ich budowa jest zgodna z†powszechnie obowi¹zuj¹cymi
zwyczajami i†stanowi niepodwaøalny standard.
Na koniec wstÍpu nie-bana³: rÛønorodnoúÊ dostÍpnych na
rynku rozwi¹zaÒ i†pomys³owoúÊ ich konstruktorÛw s¹
doprawdy imponuj¹ce, co powoduje, øe wspÛ³czesny
konstruktor nie powinien pozwoliÊ sobie na marazm
i†tkwienie w†ciep³ej ìdolinceî przyzwyczajeÒ. Postaramy
siÍ nieco w†tym pomÛc.
Von Neumann vs Harvard
W†historycznie najstarszych proto-
plastach wspÛ³czesnych komputerÛw,
opartych g³Ûwnie na technologii prze-
kaünikowej, stosowana by³a najbar-
dziej oczywista koncepcja architekto-
niczna, w†ktÛrej przetwarzane dane
oraz ci¹g rozkazÛw - tworz¹cy pro-
gram - by³y rozdzielone i†przechowy-
wane na odrÍbnych noúnikach infor-
macji. Przyk³adowo w†najbardziej doj-
rza³ej konstrukcji Niemca Konrada
Zusego ( fot. 1 ) V4 ( Versuchsmodell 4 )
z†1945 roku program by³ umieszczo-
ny na perforowanej taúmie filmowej
(ze wzglÍdu na jej wiÍksz¹ trwa³oúÊ
mechaniczn¹ niø taúmy papierowej)
i†z†niej kolejno by³y wczytywane
i†wykonywane instrukcje. Miejscem
przechowywania przetwarzanych da-
nych by³y 1024 rejestry przekaüniko-
Elektronika Praktyczna 12/2003
55
32658849.008.png
P O D Z E S P O Ł Y
10 sekund. Mimo tego
MARK-I by³ przez wiele lat
bardzo intensywnie wyko-
rzystywany, g³Ûwnie w†ame-
rykaÒskim programie atomo-
wym, pracuj¹c czÍsto po 24
godziny na dobÍ. Rozwi¹za-
nia konstrukcyjne stosowa-
ne w maszynach przekaüni-
kowych by³y pierwowzorem
wspÛ³czesnego modelu
architektonicznego, w ktÛ-
rym pamiÍci programu i da-
nych s¹ rozdzielone fizycz-
nie (czyli maj¹ oddzielne
magistrale i/lub sygna³y
steruj¹ce) oraz logicznie
(obs³ugiwane s¹ rÛønymi
instrukcjami). O tego typu
komputerach czy mikrokon-
trolerach mÛwi siÍ, øe maj¹
architekturÍ harwardzk¹,
wszakøe tylko wtedy, gdy
Rys. 3. Schemat blokowy komputera o architekturze
harwardzkiej
Fot. 1. Konrad Zuse przy
jednym ze swoich kompu−
terów
ra zaproponowa³ genialny
matematyk amerykaÒski po-
chodzenia wÍgierskiego,
John von Neumann. W ma-
szynie von Neumanna za-
rÛwno program, jak i dane
umieszczone s¹ w jednej
tylko, wspÛlnej pamiÍci. Te
dwa rodzaje informacji staj¹
siÍ wobec tego fizycznie
nierozrÛønialne, a ich iden-
tyfikacja nastÍpuje jedynie
poprzez miejsce, w ktÛrym
z†za³oøenia przeznaczo-
nym dla danych. Pozwala
to na dynamiczn¹
(ìw†bieguî) wymianÍ frag-
mentÛw†programu pod-
czas normalnej pracy
komputera, ³atwe jest teø
uruchamianie i†testowanie
nowych programÛw. Nie
ma ograniczenia na objÍ-
toúÊ kaødego z†blokÛw pa-
miÍci, istnieje tylko ogra-
niczenie globalne wynika-
j¹ce z†ca³kowitej pojem-
noúci pamiÍci. W†tej sa-
mej pamiÍci moøna albo
umieúciÊ wiÍkszy pro-
gram, operuj¹cy na nie-
wielkiej liczbie danych,
albo teø mniejszy program
i†duøo danych.
- Sta³e programowe (np.
tablica z†generatorem zna-
kÛw alfanumerycznych,
definiuj¹cym kszta³t zna-
kÛw na wyúwietlaczu)
mog¹ byÊ bez øadnych
problemÛw umieszczane
i†odczytywane (a†takøe
czasami modyfikowane)
z†pamiÍci programu przy
wykorzystaniu standardo-
wych rozkazÛw.
- W†najbardziej klasycznej
formie rejestry obs³uguj¹ce
urz¹dzenia wejúcia/wyjúcia
mog¹ byÊ traktowane jak
normalne komÛrki pamiÍ-
ci, z†pe³n¹ dostÍpnoúci¹
wszystkich rozkazÛw
i†trybÛw adresowania jed-
nostki centralnej.
- Budowa systemu, z†poje-
dynczymi magistralami
we o†d³ugoúci 32 bitÛw kaø-
dy. Maszyna Zusego po
wielu wojennych i†powo-
jennych perypetiach juø ja-
ko Z4 ( fot. 2 ) trafi³a do
Szwajcarii, gdzie j¹ z†powo-
dzeniem eksploatowano aø
do lat szeúÊdziesi¹tych.
Rozwi¹zania konstrukcyj-
ne zastosowanego przez Zu-
sego by³y efektywne tylko
w†powolnych urz¹dzeniach
przekaünikowych, w†ktÛrych
czas realizacji rozkazu by³
porÛwnywalny, czy teø na-
wet d³uøszy, od czasu
wczytywania go z†mecha-
nicznego noúnika. W†najbar-
dziej znanym i†pierwszym
w†USA komputerze przekaü-
nikowym MARK-I, zbudo-
wanym na Uniwersytecie
Harvarda i†oddanym do eks-
ploatacji w†1944 roku, czas
wykonania dodawania
2†liczb wynosi³ jedn¹ trze-
ci¹ sekundy, a†dzielenia aø
Klasyczne architektury komputerów
Komputery, w których pamięci programu
i danych są rozdzielone fizycznie (czyli mają
oddzielne magistrale i/lub sygnały sterujące)
oraz logicznie (obsługiwane są różnymi
instrukcjami) są nazywane komputerami
o architekturze harvardzkiej.
Z kolei architektura von Neumanna
charakteryzuje się tym, że zarówno program,
jak i dane umieszczone są w jednej, wspólnej
pamięci.
z†obu pamiÍciami moøliwa
jest rÛwnoczesna komunika-
cja. Koncepcja taka jest
obecnie czÍsto spotykana,
chociaø, poza niew¹tpliwy-
mi zaletami, wykazuje takøe
pewne wady.
W 1945 roku zupe³nie no-
watorsk¹ strukturÍ kompute-
we wspÛlnej pamiÍci s¹
umieszczone, a wiÍc przez
adres. W pocz¹tkowym
okresie idea von Neumanna
by³a doúÊ trudna realizacyj-
nie, wymagaj¹c znacznej
pojemnoúci pamiÍci, nieco
pÛüniej jednak dziÍki
swoim niew¹tpliwym zale-
tom opanowa³a na wiele lat
technikÍ komputerow¹. Tym
niemniej od kilku lat daje
siÍ zaobserwowaÊ doúÊ
wyraüne odejúcie od kla-
sycznej wersji koncepcji
von Neumanna oraz zwrot
w kierunku architektury
harwardzkiej.
Jakie s¹ wobec tego naj-
waøniejsze cechy kaødego
z††rozwi¹zaÒ?
Fot. 2. Komputer Z4
Von Neumann
- Program moøe byÊ
umieszczony (i†urucho-
miony) w†dowolnym ob-
szarze pamiÍci, takøe
Rys. 4. Schemat blokowy
komputera o architekturze
von Neumanna
56
Elektronika Praktyczna 12/2003
32658849.009.png 32658849.010.png 32658849.011.png 32658849.001.png 32658849.002.png
 
P O D Z E S P O Ł Y
obs³uguj¹cymi obie pa-
miÍci, staje siÍ zdecydo-
wanie prostsza, a†uk³ady
scalone maj¹ mniej wy-
prowadzeÒ.
- Wykonanie pojedynczego
rozkazu wymaga zwykle
wykonania kilku operacji
na pamiÍci.
wskazuje, czÍúÊ operacyjna
okreúla rodzaj operacji, jak¹
ma dany rozkaz wykonaÊ
(np. dodanie dwÛch argu-
mentÛw albo przes³anie za-
wartoúci jednej z†komÛrek
pamiÍci do innej). Liczba
stosowanych w†praktyce
operacji nie jest zbyt duøa,
rzÍdu kilkudziesiÍciu, i†bez
problemÛw da siÍ zakodo-
waÊ na niewielkiej liczbie
bitÛw. Pojedynczy bajt, czy-
li uporz¹dkowanych 8†bi-
tÛw, wystarcza zazwyczaj
z†zapasem. Rozkazy dzia³aj¹
jednak na jakichú argumen-
tach i†w†wyniku ich realiza-
cji powstaj¹ wyniki (argu-
menty i†wyniki nosz¹ na-
zwÍ operandÛw). Wieloargu-
mentowe operacje zawsze
moøna sprowadziÊ do ci¹gu
operacji co najwyøej dwuar-
gumentowych, dlatego, ze
wzglÍdu na d¹ønoúÊ do
maksymalnej prostoty przy
zachowaniu dostatecznej
uniwersalnoúci, niezmiernie
rzadko (ale jednak) spotyka-
ne s¹ instrukcje operuj¹ce
na liczbie argumentÛw
wiÍkszej od dwÛch. Tak
wiÍc w†najbardziej ogÛlnym
przypadku rozkaz powinien
zawieraÊ kod operacji KO
( rys. 5 ) oraz adresy wszyst-
kich operandÛw, a†zatem
adres pierwszego argumentu
AS1, adres drugiego argu-
mentu AS2 oraz adres ko-
mÛrki pamiÍci, do ktÛrej
naleøy wys³aÊ wynik AD.
Takie maszyny nazywane
s¹ trzyadresowymi. Nawia-
sem mÛwi¹c, istnieje jesz-
cze bardziej ogÛlna struktu-
ra rozkazu, zawieraj¹ca ko-
lejne pole adresowe: adres
komÛrki pamiÍci programu,
z†ktÛrej ma zostaÊ pobrany
i†wykonany nastÍpny roz-
kaz. Koncepcja taka naleøy
na razie do egzotycznych.
Powszechnie s¹ stosowane
raczej znacznie prostsze
maszyny sekwencyjne,
a†wiÍc takie, w†ktÛrych na-
Harvard
- D³ugoúci s³owa pamiÍci
programu i†danych mog¹
byÊ i†zazwyczaj bywaj¹
rÛøne - np. dane s¹ 8-bi-
towe, a†s³owo pamiÍci
programu 16-bitowe.
- Istnieje potencjalna moøli-
woúÊ rÛwnoczesnej komu-
nikacji jednostki centralnej
z†obu pamiÍciami.
To w³aúnie ta ostatnia za-
leta nabiera ostatnio decy-
duj¹cego znaczenia. Jeøeli
konstrukcja jednostki cent-
ralnej pozwala na odczyt
nowego rozkazu z†pamiÍci
programu jeszcze podczas
transferu operandÛw nie-
zbÍdnego dla realizacji po-
przedniej instrukcji, wyko-
nanie programu jest zdecy-
dowanie szybsze, szczegÛl-
nie, gdy kompletny rozkaz
mieúci siÍ w†pojedynczym
s³owie pamiÍci. Wada zwi¹-
zana z†niemoønoúci¹ prze-
chowywania sta³ych i†tablic
w†pamiÍci programu bywa
eliminowana przez wprowa-
dzenie specjalnych rozka-
zÛw przenoszenia danych,
operuj¹cych na pamiÍci
programu.
W†praktyce czÍsto spoty-
kane s¹ architektury miesza-
ne, niebÍd¹ce øadn¹ z†po-
przednich w†stanie ìczys-
tymî. Typowym przyk³adem
jest mikrokontroler 8051.
Maszyny jedno-,
dwu- oraz
trzyadresowe i†tryby
adresowania
Kaødy rozkaz komputera
musi zawieraÊ kompletny
zestaw informacji pozwala-
j¹cy na jego poprawn¹ in-
terpretacjÍ i†wykonanie. In-
formacje te dzieli siÍ na
dwie zasadnicze czÍúci:
czÍúʆoperacyjn¹ i†czÍúÊ ad-
resow¹. Jak sama nazwa
Rys. 5. Format rozkazu
trzyadresowego i jego
pola informacyjne
Elektronika Praktyczna 12/2003
57
32658849.003.png
P O D Z E S P O Ł Y
stÍpny w†kolejnoúci realiza-
cji rozkaz pobierany jest po
prostu z†nastÍpnej komÛrki
pamiÍci programu - dodat-
kowy adres staje siÍ wtedy
zbÍdny (wyj¹tek stanowi¹
tylko specjalne rozkazy sko-
kÛw). Warto jednak zauwa-
øyÊ, øe w†systemach wielo-
procesorowych odejúcie od
sekwencyjnoúci pozwala na
wyraüne poprawienie efek-
tywnoúci realizacji ca³ego
programu, jednakøe kosztem
zdecydowanego powiÍksze-
nia trudnoúci w†tworzeniu
oprogramowania. Maszyny
trzyadresowe pozwalaj¹ na
uzyskanie zwartego progra-
mu, w†szczegÛlnoúci niemal
zbÍdne staje siÍ stosowanie
instrukcji przenoszenia da-
nych. Wykazuj¹ jednak is-
totn¹ wadÍ - czÍúÊ adreso-
wa staje siÍ bardzo d³uga,
rozkaz zajmuje w†pamiÍci
duøo miejsca, a†jego skom-
pletowanie i†wykonanie po-
ch³ania sporo czasu. Wyjaú-
niÊ to moøe przyk³ad pros-
tego hipotetycznego mikro-
procesora trzyadresowego,
o†8-bitowym s³owie pa-
miÍciowym i†16-bitowym
adresie. Pojedynczy rozkaz
dwuargumentowy musi
sk³adaÊ siÍ z†7†bajtÛw
(1†bajt to kod operacji,
a†6†bajtÛw to 3†adresy), jego
pobranie wymaga zatem
7†dostÍpÛw do pamiÍci. Do
jego wykonania jest jeszcze
konieczny odczyt 2†argu-
mentÛw oraz zapis wyniku
do pamiÍci, czyli dodatko-
we 3†cykle komunikacji
z†pamiÍci¹ - razem aø 10.
Z†tego powodu maszyny 3-
adresowe spotykane s¹ bar-
dzo rzadko wúrÛd prostych
mikroprocesorÛw, stanowi¹
natomiast naturalne rozwi¹-
zane w†duøych maszynach,
w†ktÛrych ca³y, d³ugi roz-
kaz mieúci siÍ w†jednym
lub co najwyøej 2†s³owach
pamiÍciowych.
Aby skrÛciÊ czÍúÊ adreso-
w¹, moøna zmniejszyÊ licz-
bÍ pÛl adresowych, ograni-
czyÊ w†jakiú sposÛb ich
d³ugoúÊ albo teø zastosowaÊ
oba rozwi¹zania rÛwnoczeú-
nie. Najproúciej usun¹Ê
trzeci adres (wyniku). W†re-
zultacie wynik jest transfe-
rowany do domyúlnego,
z†gÛry okreúlonego miejsca.
NajczÍúciej jest wpisywany
w†miejsce jednego z†argu-
mentÛw powoduj¹c†tym sa-
mym jego zniszczenie. Zwy-
czajowo jest to pierwszy
z†argumentÛw, ale spotyka-
ne s¹ teø rozwi¹zania,
w†ktÛrych argument zastÍ-
powany wynikiem moøna
wybieraÊ. W†takiej sytuacji
poza kodem operacji i†dwo-
ma adresami argumen-
tÛw†w†rozkazie musi poja-
wiÊ siÍ ta dodatkowa infor-
UsuniÍcie kolejnego pola
adresowego z†rozkazu pro-
wadzi do maszyny jednoad-
resowej, w†ktÛrej w†rozka-
zie wskazaÊ moøna tylko
jeden z†argumentÛw opera-
cji. ZarÛwno drugi argu-
ment jak i†wynik musz¹
byÊ adresowane w†sposÛb
domyúlny (implikowany).
W†tym celu wprowadza siÍ
specjalny, wyrÛøniony re-
jestr zwi¹zany z†jednostk¹
arytmetyczno-logiczn¹, zwa-
ny akumulatorem, ktÛry za-
wiera drugi argument ope-
racji i†do ktÛrego wpisywa-
ny jest wynik po jej wyko-
maj¹ jednak przy tym nie-
zaprzeczaln¹ zaletÍ - s¹
bardzo proste, a†przez to
i†tanie. Pewn¹, doúÊ wyraü-
n¹ poprawÍ funkcjonalnoú-
ci moøna uzyskaÊ, jeøeli is-
tnieje moøliwoúÊ wyboru
umieszczania wyniku albo
w†akumulatorze, albo
w†miejscu adresowanego
argumentu. Takie mikropro-
cesory nazywane bywaj¹
pÛ³toraadresowymi. Przy-
k³adem mog¹ byÊ tu mikro-
kontrolery PIC. Z†kolei
doúÊ typowym przyk³adem
mikrokontrolera jednoadre-
sowego z†nieznacznym od-
chyleniem w†stronÍ pÛ³to-
raadresowoúci jest '51.
Inn¹ moøliwoúÊ ograni-
czenia d³ugoúci czÍúci adre-
sowej rozkazu stwarza skra-
canie pÛl adresowych, przy
zachowaniu oczywistej zasa-
dy jednoznacznego wskazy-
wania po³oøenia operandu
w†pamiÍci. Osi¹ga siÍ to
poprzez stosowanie rÛønych
trybÛw adresowania.
Najbardziej oczywistym
trybem adresowania jest
adresowanie bezpoúrednie
( rys. 6 ), w†ktÛrym pole ad-
resowe rozkazu zawiera po
prostu adres operandu. Jed-
n¹ z†wad tego trybu, poza
d³ugoúci¹†pola adresowego,
jest fakt, øe adres ten jest
sta³y i†nie moøna go w†pro-
gramie zmieniaÊ (nie moøe
byÊ zatem wyliczany). Jeøe-
li - przyk³adowo - naleøy
zwiÍkszyÊ o†jeden zawar-
toúÊ 100 kolejnych komÛrek
pamiÍci, to w†takim trybie
adresowania naleøy w†pro-
gramie 100-krotnie umieú-
ciÊ instrukcjÍ inkrementa-
Symetria i ortogonalność jednostki
centralnej
Przez symetrię rozumiane jest równoupraw−
nienie wszystkich rejestrów jednostki
centralnej i ich dostępność dla wszystkich
funkcji.
Ortogonalność to dostępność wszystkich
zaimplementowanych w danej jednostce
centralnej trybów adresowania we wszystkich
instrukcjach i dla wszystkich operandów.
macja, nazywana modyfika-
torem adresu. OgÛlnie rzecz
ujmuj¹c, modyfikator adresu
determinuje sposÛb inter-
pretacji przez jednostkÍ
centraln¹ czÍúci adresowej
rozkazu. Maszyny dwuadre-
sowe pod wzglÍdem funk-
cjonalnym s¹ niemal rÛw-
nowaøne trzyadresowym,
przy wyraünie krÛtszej czÍú-
ci adresowej. Jest to obec-
nie najczÍúciej stosowane
rozwi¹zanie w†mikroproce-
sorach i†mikrokontrolerach
úredniej, ale jednak nie naj-
wyøszej klasy.
naniu. D³ugoúÊ rozkazu
ulega radykalnemu skrÛce-
niu, ale w†programie poza
rozkazami zwi¹zanymi bez-
poúrednio z†realizacj¹ algo-
rytmu obliczeÒ pojawiaj¹
siÍ bardzo liczne rozkazy
transferu operandÛw po-
miÍdzy akumulatorem i†pa-
miÍci¹. Powoduje to wzrost
stopnia komplikacji progra-
mu, powiÍksza jego roz-
miar i†wyd³uøa czas wyko-
nania, a†intensywnie wyko-
rzystywany akumulator
tworzy w¹skie ìgard³oî.
Maszyny jednoadresowe
Rys. 6. Adresowanie bezpośrednie Rys. 7. Adresowanie pośrednie
58
Elektronika Praktyczna 12/2003
32658849.004.png 32658849.005.png
 
P O D Z E S P O Ł Y
cji, za kaødym razem ope-
ruj¹c¹ na innym adresie.
Aø siÍ prosi, aby pojedyn-
cz¹ instrukcjÍ powtarzaÊ
w†pÍtli 100 razy, zmienia-
j¹c przy tym wraz z†kolej-
nymi obiegami pÍtli adres
argumentu. Czas wykonania
takiego fragmentu programu
co prawda siÍ nie zmniej-
szy (a nawet wyraünie po-
wiÍkszy), ale program bÍ-
dzie zawiera³ tylko kilka
instrukcji zamiast stu.
Wyliczanie adresu ope-
randu umoøliwia adresowa-
nie poúrednie ( rys. 7 ),
w†ktÛrym pole adresowe
rozkazu nie zawiera bezpo-
úrednio adresu operandu,
a†jest jedynie poúrednim
wskaünikiem miejsca,
w†ktÛrym tego adresu nale-
øy poszukiwaÊ (jest to wiÍc
jakby adres adresu). Miejs-
cem tym moøe byÊ pamiÍÊ
(rzadziej, raczej w†rozwi¹-
zaniach wyøszej klasy) albo
wyrÛøniony rejestr jednost-
ki centralnej. W†tym ostat-
nim, dominuj¹cym w†pros-
tych mikroprocesorach
przypadku, uzyskuje siÍ
przy okazji radykalne
zmniejszenie d³ugoúci pola
adresowego, bo rejestrÛw
s³uø¹cych do adresowania
poúredniego jest zazwyczaj
niewiele i†do ich rozrÛønie-
nia wystarcza kilka bitÛw.
W†mikrokontrolerach '51 do
adresowania poúredniego 8-
bitowego s³uø¹ wy³¹cznie
rejestry R0 i†R1 (pole adre-
sowe skraca siÍ zatem do
jednego bitu), a†do adreso-
wania 16-bitowego przezna-
czono tylko jeden rejestr
DPTR (pole adresowe
w†ogÛle znika, ale pozosta-
je oczywiúcie modyfikator
adresu!). W†PIC-ach do ad-
resowania poúredniego
przeznaczono tylko jeden
rejestr-fantom. W†AVR-ach
s¹ to trzy pary rejestrÛw X,
Y, Z. W†MSP430 kaødy
z†rejestrÛw moøe byÊ
wskaünikiem adresowym.
Z†punktu widzenia progra-
misty im wiÍcej istnieje re-
jestrÛw†do adresowania po-
úredniego, tym lepiej.
Z†punktu widzenia kon-
struktora mikroprocesora
jest dok³adnie odwrotnie.
Adresowanie poúrednie
znalaz³o bardzo szerokie za-
stosowanie w†technice kom-
puterowej i†ma liczne od-
miany. Moøe teø byÊ ³¹czo-
ne z†innymi trybami adreso-
wania, w†szczegÛlnoúci
wzglÍdnym. Zalet¹ - poza
moøliwoúci¹ wyliczania ad-
resu - jest krÛtkie pole ad-
resowe rozkazu. Jeøeli rejes-
try adresowe maj¹ wystar-
czaj¹c¹ d³ugoúÊ, to moøliwe
jest zaadresowanie dowolnej
komÛrki pamiÍci. Wad¹ jest
to, øe†do rejestru naleøy
Elektronika Praktyczna 12/2003
59
32658849.006.png 32658849.007.png
Zgłoś jeśli naruszono regulamin