ZESZYTY NAUKOWE POLITECHNIKI ŚLĄSKIEJ
S e r ia « INFORMATYKA z . 8 Nr k o l . 882
_______ 1987
H a l i n a NOWAK P i o t r STRÓŻYNA
MIKROPROGRAMOWANIE SEGMENTOWYCH MIKROPROCESORÓW INTEL 3000 NA PRZYKŁADZIE STEROWNIKA TWARDYCH DYSKÓW
S t r e s z c z e n i e . W a r t y k u l e p r z e s t a w i o n o k r ó t k ą c h a r a k t e r y s t y k ę r o d z i n y m ik ro p ro c e s o ró w segmentowych INTEL 3000 ze sz oze gólnym uwz
g l ę d n i e n i e m j e d n o s t k i s t e r o w a n i a mikroprogramem. Po n a s z k ic o w a n iu k o n c e p o j i w y k o r z y s t a n i a r o d z i n y 3000 do k o n s t r u k c j i s t e r o w n i k a t w a r dych dysków p r z e d s t a w i o n o s t r u k t u r ę m ikroprogram u i f o rm a t m i k r o i n - s t r u k c j i . Szczegółowo omówiono problemy a d r e s o w a n ia m i k r o i n s t r u k c j i . Podana z o s t a ł y t a k ż e pewne p r a k t y c z n e uwagi i wskazówki p r o j e k t o w e . W końcowej c z ę ś c i p r a c y o p i s a n o n a r z ę d z i a t w o r z e n i a i u r u c h a m ia n i a m ikroprogram u s t e r o w n i k a tw ardyoh dysków.
t . Rodzin a m ik ro p ro c e so ro w a INTEL 3000
1 . 1 . Ogólna c h a r a k t e r y s t y k a r o d z i n y
S e r i a INTEL 3000, ozn a o za n a d a l e j w t e k ś o i e p r z e z 13000. Ci j a j odpowie
d n i k i p r o d u k c j i ZSRR i CSRS), s t a n o w i b i p o l a r n ą r o d z i n ę m ik r o p r o c e so ró w segmentowych f a n g . b i t - s l i c e ) [ 1 , 2 ] . W s k ł a d r o d z i n y wchodzą n a s t ę p u j ą c e e l e m e n ty :
1) J e d n o s t k a s t e r o w a n i a mikroprogramem 13001 - j e j zadaniem j e s t k o n t r o l a r e a l i z a c j i m ik ro p ro g ra m u , t j . w y z n a c z a n ie adresów k o l e j n y c h m i k r o l n - s t r u k o j i o r a z s t e r o w a n i e f l a g a m i .
2 ) Element p r z e t w a r z a j ą c y 13002 - w ykonujący o p e r a c j e a r y t m e t y c z n e , l o g i c z n e , p r z e s u n i ę c i a i p r z e s y ł y na 2 - b i t o w y c h słow aoh. Element p o s i a d a 3 m a g i s t r a l e w e j ś c i o w e , dwie w y jś c io w e , w e j ś c i a i w y j ę c i a p r z e n i e s i e ń . Wyposażony j e s t w 12 r e j e s t r ó w r o b o c z y c h . Łącząc u k ł a d 13002 można wykonywań o p e r a c j e na sło w a c h dowoln ej d ł u g o ś c i .
3 ) Sumator z jednoczesnym p r z e n i e s i e n i e m 13003 - 8 - b i t o w y .
4 ) J e d n o s t k a s t e r o w a n i a p r z e rw a n i a m i 13214 - p r z y j m u j e z g ł o s z e n i a na ośmiu poziom ach p r i o r y t e t o w y c h .
5) Buforowany r e j e s t r 8 - b i t o w y 13212.
6 ) Dwukierunkowe 4 - b i t o w e b u f o r y 13216 i 3226.
Ponadto f i r m a INTEL o f e r u j e dośó b o g a t y z e s t a w p a m i ę c i ROM (PROM i EPROM) i RAM.
W s z y s tk i e e le m e n ty r o d z i n y można w ł a tw y s p o s ó b ł ą c z y ć ze s o b ą . I c h budowa i sp o só b d z i a ł a n i a d a j ą b a r d z o duże m o ż liw o ś c i k o n s t r u k c j i u r z ą d ze ń c y fro w y c h p r z y w y k o r z y s t a n i u t e j s e r i i .
Do z a l e t układów budowanych w o p a r c i u o e le m e n ty r o d z i n y 13000 z a l i c z y ć n a l e t y j
- ł a t w o ś ć p r o j e k t o w a n i a i u r u c h a m i a n i a , - r e g u l a r n ą s t r u k t u r ę ,
- z m n i e j s z e n i e i l o ś c i w y k o rz y s ta n y c h elementów (o ok. 60-80% w porównaniu z t r a d y c y j n y m i u k ła d a m i TT1 SSI i MSI),
- zatnie j e ż e n i e p o b i e r a n e j mocy, - stosunkowo n i s k i e k o s z t y , - d użą a z y b k o ść d z i a ł a n i a , - d użą n ie z a w o d n o ś ć .
I s t o t n ą c e c h ą u r z ą d z e ń zbudowanych w o p a r c i u o m i k r o p r o c e s o r y s e r i i 13000 j e s t k o n i e c z n o ś ć i c h sa ikroprogram ow a nia. Zarówno o s t a t e c z n y f o r m a t m i k r o i n s t r u k c j l , j a k i sam m ikroprogre m m usi o k r e ś l i ć p r o j e k t a n t u r z ą d z e n i a . W t e n aposób o s i ą g a s i ę b a r d z o d u ż ą e l a s t y c z n o ś ć , j e d n a k ż e t w o r z e n i e m ikroprogram u p r z y b r a k u o d p o w ie d n ic h n a r z ę d z i wspomagających może być b a r d z o żmudnym i c z asochłonnym p ro c e s e m .
1 . 2 . J e d n o s t k a s t e r o w a n i a aikroproKramera
Generalnym zadaniem j e d n o s t k i s t e r o w a n i a mikroprogramem ( o o k w e n t e r a ) j e s t k o n t r o l a p r z e b i e g u r e a l i z a c j i m ikroprogra m u p o p r z e z wypracowywanie adre sów n a s t ę p n y c h m i k r o i n s t r u k c j l .
M ikroprogrem z a p i s a n y j e s t zw ykle w p a m ię o i s t a ł e j a d r e s o w a n e j b e z p o ś r e d n i o p r z e z s e k w e n t e r . Rysunek 1 . 1 . p r z e d s t a w i a schem at blokowy elem en
t u 13001.
Z na c z e n ie p o e z o z e g ó ln y o h j e g o końcówek j e s t n a e t ę p u j ą c e t SAg-MA^ - w y j ś c i e a d r e s u w i e r s z a p a m ię c i mlkroprogramów,
HAj-HA0 " " kolumny " "
PR2~PR0 - " r e j e s t r u wewnętrznego PR, VXj-¥Xą, SXySX0 _ w e j ś c i a in f o r m a c y jn e , PC^-FCg - w e j ś c i a s t e r o w a n i a f l a g a m i , F I - w e j ś c i e f l a g i ,
PO - w y j ś c i e "
LD - w e j ś c i e w stę pnego ła d o w a n ia a d r e s u m i k r o i n s t r u k c j l , ER - " o d blokow ują ce w y j ś c i a a d r e s u , f l a g i r e j e s t r u PR, ERA - ■" " " a d r e s u w i e r s z a ,
ACg-A - "e; s c i a o k r e ś l a j ą c e f u n k c j ę w y z n a c z a j ą c ą a d r e s n a s t ę p n e j ra lk r o - i n s t r u k i J>i ( s k o k ) ,
I3E - w y j ś c i e s t r o b u p r z e r w a ń < aktywne przy r e a l i z a c j i akoku JZR 1 5 ), 32_______________________________________________________ H. Howak, P. Stroźyna
Mlkroprogramowanie segmentowych mikroprocesorów.. 33
ERA
1SE .
LP
AC6tAC,5£
FC<
FC«ł
MAa^A) 4 \
HA3~MAę)
a\
BU FOK r----tri.... . buf oq A-DRET6U W l£RS2A KO L U M N Y
R E ^ E S T R , A D R E S U M l K R O I N Ó T R U K C ^ )
u k ł ad 6e u e r a c-]i
ADRESU UASTfPweg
H i K K O I M S T R U K C J I A A
rejestr
F L A G
1 BUFOR wijiaowr
rttfdzuTM«
F
} T
Regestr PR
Z J T
b u f o r
w t j k t o w y [ EN
X PR^PR^
El f=0 FCjFCt P^-EPiCi, 6X3A-SK<,
Rys. 1 . 1 . Schemat blokowy a e k w e n te ra 13001 F i g . 1 . 1 . A s t r u c t u r e o f 13001 s e ą u e n c e r
Opis e le m e n tu 13001 w n i n i e j s z e j p r a c y o g r a n i c z o n o do minimum n ie z b ę d n e g o do z r o z u m i e n i a c a ł o ś c i , n a t o m i a s t sz cz eg ó ło w e omówienie d z i a ł a n i a se kwen- t e r a można z n a l e ź ć w [1] .
1 . 3 . O r g a n i z a c j a p a m i ę c i m lkroprogranów
O r g a n i z a c j ę p a m ię c i mikroprogramów n a r z u c a f o r m a t słow a ad resowego gen erowanego p r z e z e le m e n t 13001. Adres ( 9 - b i t o w y ) s k ł a d a s i ę z dwóeb c z ę ś c i : 5 - b ito w e g o a d r e s u w i e r s z a (r z ę d u ) - b i t y MAg-MA^ i 4 -b ito w e g o a d r e s u kolumny - b i t y MA^-MAq. Przy o p i s i e f u n k c j i w y z n a c z a ją c y c h a d r e a n a s t ę p n e j r a i k r o i n s t r u k c j i (skoków ) o p e r u j e s i ę o d r ę b n i e adre sem w i e r s z a
o r s z kolumny. Zatem w w e r s j i podstawowej pam ięć mikroprogramów n a l e ż y t r a k t o w a ć j a k o m a tr y c ę s k ł a d a j ą c ą s i ę z 32 w i e r s z y i
1 6
kolumn. Każdy a d r e s komórki t a k i e j p a m i ę c i muei z a w i e r a ć dwie s k ła d o w e .34 H. Kowak, P. Stróżyna
Pojemność podstawowej p a m i ę c i C512 s ić w ) można zw ię k sz y ć d o d a j ą c zewnę
t r z n e u k ła d y a d r e s a c j i i dekodowania bloków o p o je m n o ś c i 512 komórek.
1 . 4 . G e n e r a c ja a d r e s u n a s t ę p n e j m i k r o l n a t r u k c j i
Adres n a s t ę p n e j m i k r o i n s t r u k c j i generowany j e s t p r z e z j e d n o s t k ę s t e r o w a n i a mikroprogramem ( e e k w e n t e r ) n a p o d s t a w i e t
- a d r e s u b i e ż ą c e j m i k r o i n s t r u k c j i , - b itó w s t e r u j ą c y c h skokami (ACg™AC0 ) ,
- pewnych sygnałó w s t a n u s e k w e n te ra ( s t a n u p r z e r z u t n i k ó w f l a g o r a z r e j e s t r u PR).
S tan l i n i i ACg - ACQ o k r e ś l a j e d n ą z 11 f u n k c j i skoku r e a l i z o w a n y c h p r z e z s e k w e n t e r . B i t y t e r e p r e z e n t u j ą kod f u n k c j i skoi^u o r a z j e j ar g u m e n t.
Zasady t w o r z e n i a a d r e s u n a s t ę p n e j m i k r o i n s t r u k c j i p r z e z s e k w e n t e r p rz y r e a l i z a c j i f u n k c j i skoków s ą d s ś ó z ł o ż o n e , n a l e ż y j e d n a k z w r ó c i ć uwagę na pewne p r a w i d ł o w o ś c i , a m ia n o w ic i e t
1. We w s z y s t k i c h sk o k a c h z w y ją t k ie m JZR a d r e s n a s t ę p n e j m i k r o i n s t r u k c j i j e s t f u n k c j ą a d r e s u b i e ż ą c e g o , zatem możliwy j e s t j e d y n i e skok "wzglę
d n y " , J e d y n i e JZR zapewnia sk o k do m i k r o i n s t r u k c j i o żądanym a d r e s i e w r z ę d z i e zerowym.
2. Z d an e j m i k r o i n s t r u k c j i n i e J e s t możliwy sko k do dow oln ie w ybranej m i k r o i n s t r u k c j i w ramach p a m i ę c i . Możliwo j e s t j e d y n i e p r z e j ś c i e do pewnej grupy m i k r o i n s t r u k c j i ś c i ś l e s p re c y z o w a n e j d l a k a ż d e j f u n k c j i skoku.
3 . S koki warunkowe p o z w a l a j ą n a r o z g a ł ę z i e n i a w m ik r o p ro g ra m ie w z a l e ż n o ś - o i od s ta n u *
- l i n i i w e jś c io w y c h s e k w e n te ra - p r z e r z u t n i k ó w w ew nętrznych u k ła d u
4 . Ładowanie r e j e s t r u PR odbywa s i ę p o d c z a s wykonywania skoku JPX.
5 . W c z a s i e r e a l i z a c j i skoku JCE odblokowywane s ą w y j ś c i a p r z e r z u t n i k ó w PRg-PR^. W y jśc ia t e mogą b y ć w y k o rz y s ta n e d o w olnie p r z e z k o n s t r u k t o r a . Adresy m i k r o i n s t r u k c j i wypracowywane s ą p r z e z s e k w e n te r z g o d n i e z f u n k c j ą skoku o k r e ś l o n ą p r z e z w e j ś c i a ACg - ACq, pod warunkiem, że w e j ś c i e ła d o w a n ia ID j e s t n ie a k t y w n e . W przeciwnym p rzy p a d k u do r e j e s t r u a d r e s u n a s t ę p n e j m i k r o i n s t r u k o j i s e k w e n t e r a wpisywany j e s t s t a n l i n i i SX i PX.
Poza tym w a r t o zauważyć, że b u f o r y w yjśc iow e adresów w i e r s z a i kolumny można zablokow ać ( s y g n a ła m i ERA i EU) i wymusić r ó w n o c z e ś n i e in n y a d r e s , z m i e n i a j ą c w t e n sp o só b s e k w e n c ję r e a l i z a c j i m ik ro p ro g ra m u .
O pisa ne powyżej mechanizmy t w o r z e n i a a d r e s u n a s t ę p ą e j m i k r o i n s t r u k c j i o ą d o ść skomplikowane i dowodzą, że a d r e s a e j a p o s z c z e g ó l n y c h m i k r o i n s t r u k - e j i w p r z y p a d k u w y k o r z y s t a n i a s e k w e n t e r a 13001 j e s t n i e ł a t w a . B i o r ą c pod uwagę, że p o s z c z e g ó l n e w e j ś c i a e le m e n tu mogą być zarówno s te r o w a n e b e z p o ś r e d n i o p r z e z m ik ro p ro g ra m , j a k t e ż wymuszane ja rz es dodatkowe u k ła d y
Mikroporogranowanle segmentowych mikroprocesorów.. i i
l o g i c z n e , z a s t o s o w a n i e s e k w e n te r a 13001 s tw a r z a p r o j e k t a n t o w i duże m o ż l i w o śc i wyboru r o z w i ą z a n i a .
1 . 5 . Format m i k r o i n s t r u k c j i
Zwykle w s ł o w i e m i k r o i n s t r u k c j i , n i e z a l e ż n i e od p r z e z n a c z e n i a u k ła d u m ik ro p ro g ra m iw an e g o , można w y ró ż n ić dwie c z ę ś c i !
- o p e r a c y j n ą ( s t e r u j ą c ą b e z p o ś r e d n i o u kładam i będącym i .pod k o n t r o l ą m i k r o - p r o g ra m u ) ,
- a d r e so w ą ("mającą wpływ na a d r e s n a s t ę p n e j m i k r o i n s t r u k c j i ) .
A n alo g icz n y p o d z i a ł można z a s to s o w a ć w p rzy p a d k u s c a l o n e g o s e k w e n t e r a 13001. J e d n a k ż e w y k o r z y s t a n i e elementów s e r i i 1300 n a r z u c a z g ó ry k o n i e c z n o ś ć u w z g l ę d n i e n i a w f o r m a c i e m i k r o i n s t r u k c j i pewnych p ó l w y n i k a j ą c y c h z
z a s a d y d z i a ł a n i a t y c h elementów. Oprócz p ó l " s t a ł y c h " z a w i e r a j ą c y c h m i k r o - o p e r a c j ę d l a układów
1 3 0 0 1
i1 3 0 0 2
p r o j e k t a n t może w z a l e ż n o ś c i od p o t r z e b p r z e w i d z i e ć w m i k r o i n s t r u k c j i dowolne p o l a dodatkowe. P o l a t e mogą s ł u ż y ć przykładow o do s t e r o w a n i a u k ła d a m i spoza r o d z i n y 13000. R o z s z e r z e n i a t e mogą d o ty c z y ć zarówno c z ę ś c i o p e r a o y j n e j , Ja k i a d r e s o w e j .Ogólny f o rm a t m i k r o i n s t r u k c j i d l a u r z ą d z e n i a zbudowanego w o p a r c i u o ele m e n ty s e r i i
1 3 0 0 0
p r z e d s t a w i o n y j e s t n a r y s .1
.2
.część
o p er a c y ] u a - ■*— c z ę ś ć ADCESOWA-F6tF* M y-r M tp FC3f FC<S
p o l a Z D E F I N I O W A N E
P R Z E Z P R O J E K T A N T A
ACg(-ACf
P O L A Z D E F IN IO W A N E
PRZEZ
PROJEKTANTA
Rys. 1 . 2 . Ogólny f o rm a t m i k r o i n s t r u k c j i d l a m ik r o p ro c e s o ró w 13000 F i g . 1 . 2 . A g e n e r a ł f o r m a t o f a m i o r o i n s t r u c t i o n f o r 13000 m i e r o p r o c e s -
s o r s
O z n a c z e n ia !
F g-? o - b i t y s t e r u j ą c e f u n k c j ą p r z e t w a r z a n i a e l e m e n tu
1 3 0 0 2
,H^-?4q - t z w . maska d l a e l e m e n tu
1 3 0 0 2
,FC^-FCg - b i t y s t e r u j ą c e f l a g a m i e l e m e n tu
1 3 0 0 1
, ACg-AC0
- " " skokami " "2
. M ikroprogram s t e r o w n i k a tw a r d y c h dysków2 . 1 . Konoepoja z a s t o s o w a n i a r o d z i n y IHTEŁ 3000 w s t e r o w n i k u tw a r d y c h dys
ków
K oncepcja w y k o r z y s t a n i a elementów s e r i i
1 3 0 0 0
do k o n s t r u k o j i s t e r o w n i k a tw a rd y c h dysków Ala m ik ro k o m p u tera ComPAK- 8
z o s t a ł a sz c z e g ó ło w o p r z e d s t a wiona w [3
] . E le m enty t e z o s t a ł y w y k o rz y s ta n e w n a s t ę p u j ą c y s p o s ó b :36 H. Nowak, P. Stróżyna
a ) 4 ele m e n ty p r z e t w a r z a j ą c e 13002 tw o r z ą 8 - b i t o w ą j e d n o s t k ę p r z e t w a r z a n i a ( "proce sor segjnentowy) , k t ó r e j zadaniem j e s t :
- p o ś r e d n i c z e n i e w p r z e s y ł a c h danych m iędzy u k ła dam i p e r y f e r y j n y m i , - p r z e t w a r z a n i e i n f o r m a c j i ,
- przechowywanie w a ż n i e j s z y c h danych w p a m i ę c i n o t a t n i k o w e j ( " r e j e s t r a c h r o b o c z y c h ) ,
- a d r e s a c j a p a m i ę c i b u f o r o w e j .
b ) S ekw ente r 13001 wraz z ele m e n ta m i w s p ó ł p r a c u j ą c y m i i p a m i ę c i ą m i k r o p r o gramu t w o r z ą mikroprogramowany u k ł a d s t e r o w a n i a całym u r z ą d z e n i e m . W ykorzystano p o n a d t o buforow ane r e j e s t r y 13212. W s z e lk ie u k ła d y p o ś r e d n i c z ą c e w t r a n s m i s j i między j e d n o s t k ą dyskową a s t e r o w n i k i e m , u k ła d y i n t e r f e j s u z mikrokomputerem CoaPAN-8 o r a z pam ięć buforow a s t a n o w i ą w s t e r o w n i ku g ru p ę układów p e r y f e r y j n y c h , a d re so w a n y ch mikroprogramowo.
2 . 2 . S t r u k t u r a m ik roprogram u
S te r o w n ik tw a r d y c h dysków od s t r o n y maszyny ComPAN w i d z i a n y j e s t j a k o u r z ą d z e n i e w ykonujące pewne e l e m e n t a r n e o p e r a c j e dyskowe (SEEK, SELECT, RESTORE l t d . [3] ) i n i c j o w a n e p r z e z oprogramowanie m ik r o k o m p u te r a . Każda z t y c h o p e r a c j i e l e m e n t a r n y c h r e a l i z o w a n a j e s t p r z e z o d r ę b n ą p r o c e d u r ę mikroprogram ową. Wybór p r o c e d u r y n a s t ę p u j e na p o d s t a w i e kodu o p e r a c j i e l e m e n t a r n e j w y sła n e g o p r z e z ComPAN-a do s t e r o w n i k a . W p ę t l i g łó w n e j mi
krop ro g ram u n a s t ę p u j e w prow adzenie kodu o p e r a c j i do s e k w e n t e r a i r o z g a ł ę z i e n i e do o d p o w ie d n i e j p r o c e d u r y . Ponadto w p ę t l i g łó w n e j u s t a w i a n e s ą w stę p n e w a r t o ś c i n i e k t ó r y c h danyc h d la m ik ro p r o g ra m u ,
W c z a s i e r e a l i z a c j i p r o c e d u r o p e r a c j i dyskowych p o w ta rz a n e s ą pewne se k w e n c je m i k r o i n s t r u k c j i , n p . s z u k a n i e s e k t o r a d l a o p e r a c j i z a p i s u 1 od
c z y t u danych l u b p o l a a d r e s o w e g o . P r z y j ę t o , że p o w t a r z a j ą c e s i ę f r a g n e n t y z o s t a n ą zorg a n iz o w a n e w podprogramy wywoływane p r z e z p r o c e d u r y .
W r e z u l t a c i e w yró ż n io n o n a s t ę p u j ą c e m ik ro p o d p ro g ra m y i - SZUKAJ SEKTORA,
- USTAW PARAMETRY BLOKU DANYCH, - SPRAWDŹ POLE ADRESOWE,
- ZAPIS NA DYSK, - ODCZYT Z DYSKU.
Rysunek 2 . 1 . p r z e d s t a w i a o g ó l n ą s t r u k t u r ę m ik ro p ro g ra m u s t e r o w n i k a . Wyróżniona z o s t a ł a m i k r o i n s t r u k c j a s t a r t o w a , od k t ó r e j z a c z y n a s i ę r e a l i z a c j a m ikroprogram u po i n i c j a c j i p r a c y s t e r o w n i k a .
Mlkroprogramowanie segmentowyeh mikroprocesorów.. 2 L
PtocEsmy o p e ra c ji l
ELEM EN- TłCNYCH
Ó Z . U K . A 3
S E K T O R A Z A P I S » M A D Y S K
--- — ----
Rys. 2 , 1 , Ogólna s t r u k t u r a m ikro programu s t e r o w n i k a tw a r d y c h dysków F i g . 2 . 1 . A g e n e r a ł s t r u c t u r e o f t h e h a r d d i s e c o n t r o ł l e r m ic ro p ro g ram
2 . 3 . P o w ia t m i k r o i n s t r u k c j i s t e r o w n i k a
Słowo m i k r o i n s t r u k c j i s te r o w n i k a tw a r d y c h dysków s k ł a d a s i ę z 40 h i tó w . Oprócz p ó l s t a ł y c h , w y n ik a j ą c y c h z z a s t o s o w a n i a r o d z i n y 13000, m ik ro - i n s t r u k c j a z a w i e r a p o l a dodatkow e . Z r e g u ł y sto s o w a n o m lkroprogram ow anie poziome ( p o l a kodow ane), z w y ją t k ie m k i l k u b itó w b ę d ą c y c h b e z p o ś r e d n i o s y g n a ła m i m i k r o e t e r u j ą e y m l .
Format m i k r o i n s t r u k c j i s t e r o w n i k a p r z e d s t a w i a t a b l i c a
2
.1
. Tablica 2.1 Format m i k r o i n s t r u k c j i s t e r o w n i k aOZNACZEHIE FUNKCJA
ozęśó o p e r a c y j na
M
7
-M0
maska d l a e le m e n tu 13002p o la s t a ł e
^ 6 _ ï 0 f u n k c j a p r z e t w a r z a n i a
1 3
Ó0 2
: c-V-FET s t e r o w a n i e f l a g a m i w e j . s e k w e n t e r a
1 3 0 0 1
s t e r o w a n i e f l a g a m i w y j.
s e k w e n te r a 13001 Gzçéâ a d r e
sowa
a c
6~A<^0
f u n k c j a skoku d l a 13ÓÓ1 a V ^ o s t e r o w a n i e m u l t i p l e k s e r a m iwaninku
p o la dodatkowe CZęŚĆ
o p e r a c y j n a
V ^ o a d r e s u k ł a d u p e r y f e r y j n e g o WR/RD z a p i s d o /o d o z y t z u k ła d u
p e r y f e r y j n e g o
38 H. Nowak. P. Stróżyna
od. t a b l i c y 2.1
1 2
5
4c z ę ś ć o p e r a c y j na
BLOK DAT/CRC
WG RG STROBE RESTORE
je d n o b ito w e s y g n a ły m i k r o s t r u j ą c e
p o l a dodatkowe
3 . S t e r o w a n i e mlkroprogramem
3 . 1 . Z a ł o ż e n i a i o g r a n i c z e n i a d la . j e d n o s t k i s t e r o w a n i a mlkroprogramem Z a s t o s o w a n ie s e k w e n t e r a 13001 d a j e t a k duże m o ż liw o ś c i k o n s t r u k t o r o w i , że Jednym z n a j w a ż n i e j s z y c h z a d a ń po a n a l i z i e problem u w ydaje s i ę o g r a n i c z e n i e do k i l k u t y l k o mechanizmów tw o r z e n i a a d r e s u n a s t ę p n e j m i k r o i n s t r u k - c j i i r e z y g n a c j a z p o z o s t a ł y c h . Pozwoli t o na u z y s k a n i e sto sunkowo p r z e j r z y s t e j s t r u k t u r y u r z ą d z e n i o w e j i u p r o s z c z e n i e s y n t e z y m ik ro p ro g ra m u .
W p r o j e k c i e s t e r o w n i k a tw ard y c h dysków p r z y j ę t o n a s t ę p u j ą c e z a ł o ż e n i a i z a s a d y s t e r o w a n i a mikroprogramerat
1
. W momencie i n i c j a c j i p r a c y s te r o w n i k a n a l e ż y zapew nló w p is a d r e s u m ik r o - i n s t r u k c j i s t a r t o w e j do r e j e s t r u adresowego m i k r o i n s t r u k c j i ele m e n tu 13001. Cel t e n można o s i ą g n ą ć j e d y n i e p o p r z e z w pis do s e k w e n te ra s t a n u l i n i i SX i PX sy gnałem ID. Sygnał ID b ę d z i e aktywny w c z a s i e z e ro w a n ia m ik ro k o m p u tera ComPAH, p rz y równoczesnym p o d a n iu a d r e s u 0 - 0 na w e j ś c i a PX i SX.2 . W c e l u u m o ż l i w i e n i a t e s t o w a n i a wyniku o p e r a c j i l o g i c z n y c h i a r y t m e t y c z nych w j e d n o s t k a c h p r z e t w a r z a n i a 13002 p o łą c z o n o w y j ś c i e f l a g i PO s e k w e n t e r a z w e jś c ie m p r z e n i e s i e n i a CI p r o c e s o ró w segmentowych 13002, a w y j ś o i e p r z e n i e s i e n i a CO z w e jś c ie m f l a g i P I e l e m e n tu 13001. P r z e w id u je s i ę w y k o r z y s t a n i e obu f l a g s e k w e n te r a CZ i C ).
3. T e s to w a n ie sygnałó w e t a n u s t e r o w n i k a CRRD, RRC, TRC, TRD, DATA, SECTOR, ATTEN) b ę d z i e odbywało s i ę mikroprogramowo p r z e z m o d y f i k a c j ę a d r e s u po d cz as wykonywania skoku JPX. Sygnały s t a n u wprowadzone z o s t a n ą po
p r z e z m u l t i p l e k s e r y na w e j ś c i a PX s t e r o w n i k a . D la z w i ę k s z e n i a o b s z a r u d o s tę p n e g o skokami JPX na Jedno z t e s t o w a n y c h w e j ś ć wprowadzi s i ę w y jś c i e PO s te ro w a n o mikroprogramowo.
Zrezygnowano z t e s t o w a n i a sygnałów s t a n u p r z e z p r z e r w a n i a , gdyż i c h i m p l e m e n ta c ja b y ła b y b a r d z i e j z ło ż o n a sp r z ę to w o i mikroprogramowo f n p . problem p a m i ę t a n i a ś l a d u i powrotu z p r z e r w a n i a ) , a p r z y j ę t e r o z w i ą z a n i e mik roprogram one j e s t d o s t a t e c z n i e s z y b k i e d l a z a p e w n ie n ia popraw nej p r a c y s t e r o w n i k a .
R e zy g n a cja z p r z e rw a ń s p r a w i ł a , że n i e w y k o r z y s t u j e s i ę b lo k a d y b u f o rów a d r e s u m i k r o i n s t r u k o j i sy g n a ła m i Elf i ERA o r a z w y j ś o i a ISE.
4 . Do w e j ś ć PX s e k w e n te r a doprowadzony z o s t a n i e kod o p e r a c j i e l e m e n t a r n e j wykorzystywany w m ik ro p ro g ra m ie do r o z g a ł ę z i e ń do p o s z c z e g ó l n y c h p r o c e d u r r e a l i z u j ą c y c h o p e r a c j e dyskowe, a t a k i e do powrotów z podprogramów.
Kod t e n wpisywany b ę d z i e do r e j e s t r u PR s e k w e n te r a p rzy wykonywaniu skoku JPX, a a d r e s będący f u n k c j ą kodu o p e r a c j i b ę d z i e generowany pod
c z a s skoku J P R . . Z uwagi na t a k i e p r z e z n a c z e n i e r e j e s t r u PR z r e z y g io w a - no z w y k o r z y s t a n i a , w y j ś ć PR^ - PRq.
5 . Podprogramy wywoływane b ę d ą skokami JZR, gdyż s ą t o je d y n e f u n k c j e z a p e w n i a j ą c e s k o k i b e z w z g lę d n e . P o n iew si s k o k i JZR p r z e k a z u j ą s t e r o w a n i e do r z ę d u 0 , w w i e r s z u tym um ie sz czone b ę d ą p o c z ą t k i w s z y s t k i c h podpro
gramów. Mikroprogramowy powrót do p ę t l i g łó w n e j odbywać s i ę b ę d z i e rów
n i e ż p o p r z e z skok JZR.
6. S ek w en te r 13001 n i e p o s i a d a wewnętrznego mechanizmu p a m i ę t a n i a i od
t w a r z a n i a ś l a d u . W y k o r z y s ta n ie pewnych m o ż liw o ś c i ele m e n tu 13001 wyeli*- minowało k o n i e c z n o ś ć w y k o r z y s t a n i a układów dodatkowych. Po skoku do podprogramu ś l a d n i e j e s t zapam iętywany w o g ó l e , a pow rót n a s t ę p u j e do m i k r o i n s t r u k c j i , k t ó r e j a d r e s j e s t f u n k c j ą zarówno wykonanego p o d p r o gramu, j a k i p r o c e d u r y w y w o ł u j ą c e j . P r z y j ę t o , że pow rót b ę d z i e r e a l i z o wany skokiem JPR-, k t ó r e g o argument o k r e ś l a a d r e s r z ę d u i j e s t z a l e ż n y od podprogram u, n a t o m i a s t a d r e s kolumpy równy j e s t kodowi o p e r a c j i d y s k o w e j, w k t ó r e j n a s t ę p u j e w y w o łan ie . Kod t e n p r z e d wywołaniem p o d p r o gramu wpisywany b ę d z i e do r e j e s t r u PR s e k w e n t e r a .
W p r z y p a d k u k o n i e c z n o ś c i pow tó rnego wywołania t e g o samego podprogramu w p r o c e d u r z e w y w o łu jąc ej n a s t ą p i w pis do r e j e s t r u PR c i ą g u b i t ó w r ó ż n e - go od kodu o p e r a c j i dyskow ej, a l e z a p e w n ia ją c e g o w łaś ciw y p o w ró t.
3 . 2 . P o ł ą c z e n i e s e k w e n te ra z u k ła d a m i w s p ó łp r a c u ją c y m i
Rysunek 3 . 1 . p r e z e n t u j e r o z w i ą z a n i e u r z ą d z e n io w e p o ł ą c z e n i a s e k w e n te ra 13001 z u k ła d a m i w s p ó ł p r a c u j ą c y m i . R oz w iąz anie t o j e s t s p r z ę t o w ą r e a l i z a c j ą z a ł o ż e ń omówionych w poprzednim p u n k c i e .
Kod o p e r a c j i e l e m e n t a r n e j wpisywany j e s t do r e j e s t r u RKOE w p ę t l i głów
n e j m ik ro p ro g ra m u . W y jśc ia RKOE podawane s ą b e z p o ś r e d n i o na w e j ś c i a SX s e k w e n t e r a . Ha w e j ś c i a PJ^ i PXg podawane s ą s y g n a ł y s t a n u s t e r o w n i k a po
p r z e z m u l t i p l e k s e r y warunku MX1 i MXg s t e r o w a n e w m ik r o p r o g ra m ie polem SP2 - SPQ. Ha w e j ś c i e s e k w e n t e r a ID, na w e j ś c i a b l o k u j ą c e m u l t i p l e k s e r ó w i n a w e j ś c i e z e r u j ą c e RKOE doprowadzono s y g n a ł z e r o w a n ia INI5?. W c z a s i e , gdy j e s t on aktyw ny, n a s t ę p u j e p r z e j ś c i e do m i k r o i n s t r u k o j i s t a r t o w e j .
Mikroprogramowanie ąegmentowych mikroprocesorów..._______________ 39
40 H. Nowak. P. Strożyna
E L E h tW H X 3 0 0 2
i t ^ d O W A H l A P E t Y -
PECIAMI)
Rys. 3 . 1 . P o ł ą c z e n i e s e k w e n te r a 13001 z e lem e n ta m i w s p ó łp r a c u ją c y m i F i g . 3 . 1 . 13001 s e q u e n c e r c o n n e c t i o n w i t h c o - o p e r a t i v e d e v i c e s
3 . 3 . Adresowanie m l k r o i n s t r u k c j i
Przy s y n t e z i e m ikroprogra m u d l a s t e r o w n i k a tw a r d y c h dysków n i e d y sp o nowano m ikroa sem blerem d l a INTELA 3000. A sem bler t a k i n i e z o s t a ł r ó w n i e ż p r z e z p r o j e k t a n t ó w s t e r o w n i k a n a p i s a n y ze w zglę du n a o g r a n i c z e n i a czasowe p r z y r e a l i z a c j i t e m a t u . Z o s t a ł o j e d y n i e s tw o r z o n e p r o s t e oprogramowanie pom ocnicze o p i s a n e w p . 4 . 2 , Cały c i ę ż a r r o z m i e s z c z e n i a m ikroprogram u w p a m i ę c i s p a d ł zatem n a j e g o a u t o ró w .
P r z y d z i e l a n i e adre sów m i k r o i n s t r u k c j o m w p a m i ę c i s t a ł e j mimo m nogości skoków s e k w e n t e r a , j e s t b a r d z o skom plikow ane. Stosunkowo duży z e s t a w f u n k c j i skoków p o z o r n i e s t w a r z a s z e r o k i e m o ż liw o ś c i a d r e s o w a n i a . Je d n a k ż e sz cz egółow o a n a l i z a p o s z c z e g ó l n y o h f u n k c j i u j a w n i a s z e r e g o g r a n i c z e ń , k t ó r e p r o j e k t a n t m usi pokonaó. W y n ik ają ono g łó w n ie z f a k t u , że z d a n e j M i k r o i n s t r u k c j i można sk o c z y ć j e d y n i e pod pewne a d r e s y ś c i ś l e u z a l e ż n i o n e od w y b ra n e j f u n k c j i s k o k u . N ie zawsze z a te m i s t n i e j e s k o k , k t ó r y p o z w o l i ł b y n a p r z e j ś c i e między dwiema do w o ln ie wybranymi komórkami p a m ię o i mikroprogrsm ów. T r u d n o ś c i t e r o s n ą wraz z e w zrostem o b s z a r u p a m i ę c i zajmo
wanego p r z e z m ik r o p ro g ra m . Cały m ik ro p ro g ra m s t e r o w n i k a tw a r d y c h dysków s k ł a d a s i ę z o k . 380 m i k r o i n s t r u k c j i ( o k . 74% o b s z a r u p a m i ę c i ) , w ię c r o z m i e s z c z e n i e t e g o m ikroprogra m u w p a m i ę c i n i e b y ło zadaniem t r y w ia l n y m .
Przy r o z m i e s z c z a n i u mikroprogramu n a l e ż y w z i ą ć pod uwagę, że p o s z c z e g ó ln e f u n k c j e skoku p r z e k a z u j ą s t e r o w a n i e do o k r e ś l o n y c h ob sz aró w , np.
do w i e r s z y lu b kolumn o ś c i ś l e sp recyzow anych a d r e s a c h . Przykładowo s k o k i warunkowe t e s t u j ą c e s t a n f l a g fJPL, JCF, JZF) powodują p r z e j ś c i e do j e d n e j z kolumn o num erach: 2, 3. 10 l u b 11. '•'/ m ikroprograir.ie s t e r o w n i k a tw a r d y c r dysków w y s t ą p i ł o b ard z o d u to skoków warunkowych. Konieczne b y ło w ięc z a rez e r w o w a n ie na w s t ę p i e komórek, do k t ó r y c h p r z e c h o d z i s i ę w wyniku s k o ków warunkowych, aby komórek t y c h n i e z a j ą ć p r z e z przypadkowe m i k r o i n - s t u k c j e , u n i e m o ż l i w i a j ą c tym samym r e a l i z a c j ę w s z y s t k i c h skoków warunko
wych.
Wprowadzono zatem z a s a d ę dedykowania pewnych p ó l p a m ię c i ok reślo n y m skokom, t j , re z e r w o w a n ia obszarów d la p o t r z e b p r z e k a z a n i a s t e r o w a n i a przy z a s t o s o w a n i u o k r e ś l o n e j f u n k c j i s k o k u . W p a m ię c i mikroprogramów w y ró ż n io no n a s t ę p u j ą c e p o l a dydykowane:
- kolumny 2 , 3, 10 i 11 d l a skoków JPL, JCP, JZP,
" 0 , 1, 4 , 5, 8 , 9 d l a skoków JPX, t e s t u j ą c y c h s y g n a ły s t a n u s t e r o w n i k a ,
- w i e r s z 0 ja k o w i e r s z początków podprogramów,
- " 3 " " " p r o c e d u r r e a l i z u j ą c y c h o p e r a c j e elemen
t a r n e ( w i e r s z t e n z o s t a ł w z a s a d z i e wybrany d o w o l n i e ) .
Ponauto w y ró ż n io n o 2 komórki s t a r t o w e m ikroprogram u ( o a d r e s a c h 0 - 0 i 0 - 1 ) . K o n ie c z n o ś ć w y o d r ę b n ie n ia dwóch komórek wynika z t e g o , że s t a n s y g n a ł u PO po d cz as z e r o w a n ia s t e r o w n i k a ( wymuszenia s y g n a ł u LD s e k w e n t e r a ) j e s t n i e o k r e ś l o n y - porównaj r y s . 3.1
Z uwagi na s p e c y f i c z n y mechanizm powrotów z podprogramów ( punkt 3 . 1 . 6 ) zarezerw owane r ó w n i e ż z o s t a ł o tz w . p o l e powrotów ś b l o k 5 x 4 kom órki) z a p e w n ia ją c e powrót z mikropodprogramów.
Aby u ł a t w i ć a d r e s o w a n ie i u z y s k a ć p r z e j r z y s t ą mapę m ikroprogram u c a ł ą pam ięć p o d z i e l o n o pomiędzy podprogramy i p r o c e d u ry o p e r a c j i dyskowych p r z y d z i e l a j ą c im pewną l i c z b ę w i e r s z y p a m ię c i (z w y ją t k ie m dwóch w i e r s z y z a r e z e rw o w a n y c h ). l i c z b a w i e r s z y b y ła p r o p o r c j o n a l n a do l i c z b y m i k r o i n a t r u k - c j i d a n e j p r o c e d u r y , a ś c i ś l e j do l i c z b y m i k r o i n s t r u k c j i z a w i e r a j ą c y c h s k o k i warunkowe, gdyż t a w i e l k o ś ć o k a z a ł a s i ę k r y t y c z n a z p u n k tu w id z e n ia z a j ę t o ś c i p a m i ę c i .
P o d z i a ł p a m ię c i mikroprogramów na. p o la dedykowane p r z e d s t a w i s s c h e m s tv - c z n i e r y s . 3 . 2 .
Po t a k dokonanym p o d z i a l e p a m ię c i p r z y s t ą p i o n o do p r z e d z i a ł u adresów p oszczególnym m i k r o i n s t r u k c j e m . Tym m i k r o i n s t r u k c jom, do k t ó r y c h p r z e c h o d z i s i ę skokami s p e c j a l n y m i , p r z y d z i e l o n o a d r e s y .z a r e z e r o w o w a n e u p r z e d n i o . N a to m ia s t w i n n 1 ch p r z y p a d k a c h w y k o rz y s ta n o s k o k i JCC. i JCR o r a z p o z o s t a ł e wolne a d r e s y z : s z a r u dedykowanego d a n e j p r o c e d u r z , Niemcżliwe> było
ś c i s ł e p r z e s t r z e g a n i e zajmowania w y łą c z n i e obszarów dedykowanych. S z c z e g ó l n i e pop raw k i wprowadzone na e t a p i e u r u c h a m i a n i a m ikroprogram u p r z y c z y n i ł y s i ę do pewnych zmian w p i e r w o t n i e z a ł o ż o n e j s t r u k t u r z e .
Mikroprogramowąnie segmentowych mikroprocesorów..._______________________ 4y
42 H. Nowak. P. Strużyna
Rys. 3 . 2 . Mapa p a m ię c i m ikroprogra m u s t e r o w n i k a tw ardyc hi dysków F i g , 3 , 2 . A map o f m ic ro p ro g r a m raemory f o r t h e h s r d d i s o c o n t r o l l e r
Ka z a k o ń c z e n i e n a l e ż y z a z n a c z y ć , że z powodu t r u d n o ś c i w b e z p o ś r e d n im p r z e j ś c i u do żądanego a d r e s u do m ikroprogram u wprowadzono p u s t e m i k r o i n - e t r u k c j e , k t ó r y c h zadaniem j e s t j e d y n i e p r z e k a z a n i e s t e r o w a n i a ("sk o k i).
Ka ry s u n k u 3 . 2 z i l u s t r o w a n o p r zy k ła d o w e s k o k i w p a m ię c i mikroprogramów p r z y r e a l i z a c j i j e d n e j z p r o c e d u r .
Mikroprogramowąnie segmentowych mikroprocesorów.. 43
4. U a r z e d z i a wspomagające mik roprogramowąnie
4 . 1 . J ę z y k i m ik roprogram ow ania
Od c z a s u w prowadzenia p r z e z Wilkeaa p o j ę c i a m ikroprogra m ow ania p o w s ta ło w i e l e n a r z ę d z i u ł a t w i a j ą c y c h t w o r z e n i e i u r u c h a m ia n i e mik roprogram ów.
P rz e d e w s z y s tk im n a l e ż ą do n i c h j ę z y k i m ikroprogram ow ania i i c h t r a n s l a t o r y . Głównymi p r z e s ł a n k a m i wprowadzenia t y c h języków b y ły s
- chęó u w o l n i e n i a m ik r o p r o g r a m i s t y od k o n i e c z n o ś c i p a m i ę t a n i a kodów b i n a r nych i u w z g l ę d n i a n i a sz cz eg ó łó w k o n k r e t n e j a r c h i t e k t u r y u r z ą d z e n i a m i - kroprogramowa n e g o ,
- d ą ż e n i e do m i n i m a l i z a c j i l i c z b y błędów w m i k r o p r o g r a m i e , - s k r ó c e n i e c z a s u s y n t e z y i u ru c h a m ia n i a m lkroprogra m u.
Podobnie j a k wśród języków p rogram ow ania, w y ró ż n ić można j ę z y k i m ik ro programowania na p o zio m ie p r z e s y łó w m i ę d z y r e j e s t r o w y c h ( m i k r o a s e m b l e r y ) , j ę z y k i wyższ ego r z ę d u i m e t a j ę z y k i , p o z w a l a j ą c e na z a d e k l a r o w a n i e s t r u k t u r y u r z ą d z e n i a , f o r m a t u m l k r o i n s t r u k c j i i t p . Do n a j b a r d z i e j r o z p o w s z e c h n io n y c h języków m ikroprogra m ow ania wyższego r z ę d u n a l e ż ą t SIHFL, MPL, EMPL, Sx , MPGL, MPGS, Pumpkin, CHAMIL i i n . [7, 8] . J ę z y k i t e s ą na o g ó ł maszynowo n i e z a l e ż n e , p o z w a l a j ą na p i s a n i e s t r u k t u r a l n y c h mikroprogramów i o p e r o w a n ie na danyc h sy m b o l ic z n y c h . S t r u k t u r a s t e r u j ą o a t y c h języków o p a r t a J e s t na s t r u k t u r a c h ję z y k ó w j ALGOL, PASCAL, P L / I .
P owszechnie s t o s u j e s i ę r ó w n i e ż a s e m b l e r y mikroprogramów. U m o ż liw ia ją one s y m b o l ic z n e w prow adzanie z a w a r t o ś c i p ó l kodowych i sy m b o l ic z n ą a d r e s a - o j ę . Zwykle je d e n w i e r e z program u źródłow ego odpowiada j e d n e j m i k r o i n s t r u - k o j i .
Coraz c z ę ś c i e j t r a n s l a t o r y języków m ik roprogram ow ania wyposaża s i ę w moduły s y m u l a c j i o r a z k o n t r o l i i d i a g n o s t y k i błędów. P r z y s p i e s z a t o z n a c z n i e p r o c e s t e s t o w a n i a i u r u c h a m i a n i a mikroprogramów.
I n a t e r e s u j ą o e p r z y k ł a d y języków m ik roprogram ow ania można z n a l e ź ć w [4, 5 , 6 ] .
4 . 2 . Wapomaganle m ik r o p r o g r a m i s t y s t e r o w n i k a tw a rd y c h dyaków.
4 . 2 . 1 . Programy usługow e
T w orz enie m ik ro p ro g ra m u d l a s t e r o w n i k a t w a r d y c h dysków h y ł o u ł a t w i o n e d z i ę k i p a k i e t o w i programów p om oc nicz ych, k t ó r e r e a l i z o w a ł y n a s t ę p u j ą c e f u n k c j e j
- s y m b o l ic z n e w prow adzanie m ik ro p ro g ra m u ,
- s o r t o w a n i e ź r ódłow e go z b i o r u m l k r o i n s t r u k c j i wg a d r e s ó w , - sy m b o lic z n y wydruk t r e ś o i m ik ro p r o g ra m u ,
- wydruk mapy z a j ę t o ś e i p a m i ę c i m ik ro p ro g ra m u , - g e n e r a o j a m ikroprogram u b i n a r n e g o .
44 H. Nowak, P. Strużyna
Program? t e n a p i s a n e z o s t a ł ? w ję z y k u CBASIC na s ? s t e m i e RTDS-8. W szyst
k i e program? z a p e w n i a j ą w?godn?, k o n w e r s a c ? j n ? t r y b p r a c ? . W y k o r z y s ta n ie i c h u w a ln ia p r o j e k t a n t a m ikroprogram u od k o n i e c z n o ś c i p a m i ę t a n i a b i n a r nych kodów m i k r o i n a t r u k c j i , pozwala na zn a cz n e z a o s z c z ę d z e n i e c z a s u i u n i k n i ę c i e •w i e l u b łę dów . U ła t w i a t a k ż e u z y s k a n i e d o k u m e n ta c ji m i k r o p r o gramu. Dodatkową z a l e t ą j e s t u m i e s z c z e n i e m ikroprogram u zarówno w p o s t a c i ź r ó d ł o w e j , j a k i wynikowej w p a m ię c i na d y sk a c h e l a s t y c z n y c h . B inarny kod wynikowy, generowany p r z e z oprogramowanie u słu g o w e , r e p r e z e n t u j e z a w a r t o ś ć p a m ię c i n ikroprogra m ów i s t a n o w i podstaw ę do zaprogram ow ania pam ię
c i PROM.
4 . 2 . 2 . S ym boliczne wprowadzanie m i k r o i n a t r u k c j i
Na k i l k a słów uwagi z a s ł u g u j e program s y m b o lic z n e g o wprowadzania m i k r o - i n s t r u k c j i , tw o r z ą c y z b i ó r źródło wy m ik r o p r o g ra m u . Program n i e j e s t w pełnym te g o słowa z n a c z e n i u asem blerem , gdyż c a ł y c i ę ż a r a d r e s a c j i m ik r o - i n s t r u k c j i musi w z ią ć na s i e b i e p r o j e k t a n t . U żytkownik wprowadza w odpo
w i e d z i na z a p y t a n i a programu k o l e j n e m i k r o i n s t u k c j e , p o d a j ą c i c h a d r e s i z a w a r t o ś ć k aż dego p o l a w s ł o w i e m i k r o i n s t r u k c j i - p o r . f o r m a t m i k r o i n s t r u k - c j i w t a b l i c y 2 . 1 . Bola PC, SP, PA o k r e ś l a n e s ą s y m b o l i c z n i e . Maska
T a b l i c a 4.1 P r z y k ł a d m i k r o i n s t r u k c j i w p o s t a c i sym
b o l i c z n e j O zn a c z e n ie p o l a m i k r o i n s t r u k c j i
P rzykładow a po
s t a ć s y m b o lic z n a
M PD
V po 6 , 1 , R5
PC3-PC2 HCZ
0 _k 1 O O PPO
AC J , 1
SP DAT
PA TRACK
WR/RD 0
BLOK t>.
DAT/CRC 0
WG 1
RG 1
STROBĘ 1
RESTORE 1
Mikroprogramowanle segmentowych mikroprocesorów...
ii
podawana j e s t w f o r m i e liozb.y s z e s n a s t k o w e j , n a t o m i a s t p o la J ednobito w e (BLOK, WR/RD, DAT/CRC, WG, RG, RESTORE,'STROBĘ) d e f i n i u j e s i ę za pomocą c y f r y b i n a r n e j ( 0 l u b 1 ) , W p o l u adresowym AC n a l e ż y podać s y m b o l ic z n ą nazwę skoku w ra z z Jego argumentem. W yjątek s t a n o w i p o l e ? g - P 0 o r k e ś l a j ą c e p r z e t w a r z a n i e elementów 13002, k t ó r e r o z b i t e J e s t na 3 p o d p o la z g o d n ie z opisem katalogowym [2] . W p o d p o la c h d e f i n i u j e s i ę l ic z b o w e kody grupy P i R o r a z nazwę je d n e g o z r e j e s t r ó w e l e m e n t u .
W t a b l i c y 4 . 1 . z a m ie s z c z o n o p rzy k ła d o w ą m i k r o i n s t r u k c j ę w p o s t a c i a k c e p to w a n e j p r z e z program wpro wadzania sy m b o l ic z n e g o .
Dodatkową f u n k c j ą o p i s a n e g o programu j e s t s p r a w d z e n i e , czy komórka o podanym p r z e z w p row adzającego a d r e s i e n i e z o s t a ł a J u ż w c z e ś n i e j z a j ę t a .
4 . 3 . U ru c h a m ia n ie m ikroprogram u
W t r a k c i e u r u c h a m ia n i a m ikroprogram u s t e r o w n i k a tw a rd y c h dysków z a s t o sowano n a s t ę p u j ą c e podstawowe ś r o d k i j
- z a s t ą p i o n o docelo we p a m ię c i PROM sz y b k im i p a m ię c ia m i EPROM, k t ó r y c h z a w a r t o ś ć mogła b y ć w i e l o k r o t n i e z m ie n i a n a ,
- do s t e r o w n i k a d o łą c z o n o u k ł a d p r a c y krokowej o r a z z a t r z y m a n i a na zadanym a d r e s i e m i k r o i n s t r u k c j i ,
- c a ł e słowo m i k r o i n s t r u k c j i wyprowadzono na dodatkową łą c z ó w k ę , w k t ó r e j p o d łą c z o n o p u l p i t uruchom ienio wy p o z w a la j ą c y nai
a ) o b s e r w a c j ę s t a n u sygnałó w m i k r o s t e r u j ą c y c h na . d io d a c h e l e k t r o l u m i n e s c e n c y j n y c h ,
b ) wymuszanie pewnych sy gna łów (po w y j ę c i u p a m ię c i mikroprogramów z p o d s t a w k i ) .
Po u r u c h o m i e n i u m ikroprogra m u p rzy z a s t o s o w a n i u wyżej w y s z c z e g ó ln io n y c h n a r z ę d z i o d łą c z o n o od s t e r o w n i k a u k ł a d p r a c y k r o k o w e j, a m ikroprogra m
" z a s z y t o " w p a m i ę c i a c h s t a ł y c h PROM.
5. Podsumowanie
5 . 1 . P r o p o z y c j a r o z s z e r z e n i a m o ż liw o ś c i wspomagania m i k r o p r o g r a m i s t y Oprogramowanie wspomagające p r a c ę p r o j e k t a n t s s t e r o w n i k a tw a r d y c h dy
sków można u d o s k o n a l i ć u z y s k u j ą c d a l s z e z m n i e j s z e n i e p r a c o c h ł o n n o ś c i i c z a s o c h ł o n n o ś c i m lk ro p ro g ra m o w an ia .
P i e r w s z ą p r o p o z y c j ą m o d y f i k a c j i j e s t u m o ż l i w i e n i e wprowadzania s y m b o l i
cznego w s z y s t k i c h p ó l m i k r o i n s t r u k c j i , a z w ła s z c z a p o l a s t e r o w a n i a p r z e tw a r z a n ie m p r o c e s o r a segmentowego- 13002. TT tym c e l u można p o s ł u ż y ć s i ę k atalo g o w y m i nazwami sy m b o licz n y m i m i k r o i n s t r u k c j i t e g o e l e m e n tu o r s z sym bolicznym i nazwami r e j e s t r ó w w ew nętrz nych nadanymi p r z e z p r o j e k t a n t a . Dodatkowym u ł a t w i e n i e m d l a m i k r o p r o g r a m i s t y b y ł a b y r e z y g n a c j a z k o n i e c z n o ś c i w prow adzania p ó l w p r z y p a d k u , gdy i c h s t a n o k r e ś l a o p e r a c j ę p u s t ą ( “no o p e r a t i o n " ) .
Naatępnym poważnym k rokiem b y ło b y p o w i e r z e n i e oprogramowaniu wspomaga-*
jąoemu z a d a n i a a u t o m a t y c z n e j a d r e s a o j i m i k r o i n s t r u k c j i . J e d n a k ż e z uwagi n a w i e l e o g r a n i c z e ń p r z y w y zn a cz an iu a d r e s u n a s t ę p n e j m i k r o i n s t r u k c j i
( p . 1 , 4 ) n i e b y ło b y t o z a d a n i e ł a t w e .
Po d o k o n a n iu powyższ ych r o z s z e r z e ń o tr z y m a lib y ś m y k l a s y c z n y m ikroa sem - b l e r . Kolejnym etapem m o d y f i k a c j i może być p r ć b a z u n i w e r a a l i z o w a n i a t a k i e go a s e m b l e r a w o e l u u n i e z a l e ż n i e n i a s i ę od k o n k r e t n e j s t r u k t u r y s p r z ę t o w e j . W tym p rz y p a d k u p r o j e k t a n t d e k l a r u j e fo rm a t m i k r o i n s t r u k c j i , o k r e ś l a nazwy s y m b o l ic z n e i przyporzą dkow a ne im w a r t o ś o i b i n a r n e . D e f i n i u j e zatem s y n - t a k t y k ę i sem antykę j ę z y k a m ikroprogra m ow ania . Program g e n e r u j ą c y m i k r o - program b i n a r n y w e d łu g r e g u ł podanych p r z e z u żytkow nika można o k r e ś l i ć mianem m e ta a s e m b l e r a m ikroprogra m u.
Oprogramowanie wspomagające w a r to ró w n i e ż w zboga cić o s y m u l a t o r poz
w a l a j ą c y na ś l e d z e n i e t o k u wykonywania m ikroprogra m u. N a le ż y p o n ad to z a uważyć, że b a r d z o dobrym n a rz ę d z ie m u r u c h a m ia n i a zarówno u r z ą d z e n i a , j a k i s t e r u j ą c e g o nim m ikroprogra m u b yłby układowy e m u la t o r INTELa 3000.
Z a g a d n i e n i a e m u l a c j i z o s t a ł y szczegółow o p r z e d s t a w i o n e w [9] .
5 . 2 . Uwagi końcowe
Z a s t o s o w a n ie elementów m ik ro p ro c e so ro w y c h r o d z i n y 13000 do budowy u r z ą d ze ń c y f r o w y c h n i e s i e w i e l e k o r z y ś c i f p . 1 . 1 ) . J e d n a k ż e w y k o r z y s t a n i e t e j r o d z i n y ma r ó w n i e ż pewne wady. Je d n ą z n i e l i c z n y c h , choć podstawowych j e s t d o ś ć skom plik ow ane m ik ro p ro g ra m o w an ie, z w ła s z c z a p r z y b r a k u o d p o w ie d n ic h n a r z ę d z i w spom a gają cyc h. S z c z e g ó ln e t r u d n o ś c i s t w a r z a a d r e s o w a n ie p o s z c z e g ó l n y c h m i k r o i n s t r u k c j i . S ekw enter 13001 n i e p r z e w i d u j e mechanizmu skoków d o /p o w r o tó w z podprogramów. Aby t o o s i ą g n ą ć t r z e b a angażować do
datkowe u k ła d y l o g i c z n e i s to s o w a ć dość wyszukane t e c h n i k i . Poza tyra wy
d a j e s i ę , że d ł u g o ś ć s ł o n a ele m e n tu p r z e t w a r z a n i a 13002 (2 b i t y ) j e a t z b y t k r ó t k a d l a typowych z a s to s o w a ń - t r z e b a za te m w y k o r z y s ta ć w i e l e t a k i c h elem e n tó w . Być może powyższe c z y n n i k i w p ły n ę ły na s to p n i o w e wycofywanie s i ę f i r m z a c h o d n i c h z p r o d u k c j i a i k r o p r o o s s o r ó w r o d z i n y 13000 ( w z g lę d n ie i c h o d p o w ie d n ik ó w ). K o n s t r u k t o r z y w y k o r z y s t u j ą p o w sze ch n ie i n n a s e r i e m ik r o p r o c e s o ró w b i p o l a r n y c h , np. AMD 2900. Rodzina t a , ł ą c z ą c z a l e t y s a g - aentow yoh m ik r o p r o c e s o ró w b i p o l a r n y c h , p o s i a d a t ę przewagę nad s e r i ą 13000, ż e a d r e s o w a n i e m i k r o i n s i r u k o j i j e s t z n a c z n i e p r o s t s z e ( s e k w e n c y j n e ) .
P r z e w id z ia n o t e ż m ożliw ość w y k o r z y s t a n i a mikroprogramów, k t ó r e nawet mogą być z a g n i e ż d ż a n e . P o n ad to e le m e n t p r z e t w a r z a j ą c y wykonuje o p e ra t)j e na s ło w a ch 4 - b l t o w y e h .
Bardzo c z ę s t o o s t a t e c z n y k s z t a ł t w i e l u u r z ą d z e ń p o w s t a ł y c h w naszym k r a j u j e a t wynikiem kompromisu pomiędzy z a m ie r z e n i a m i p r o j e k t a n t a a j e g o m o ż liw o ś c ia m i f n p , d o s t ę p n ą b a z ą e lem e n to w ą). Typowym p r z y k ła d e m t a k i e j
s y t u a c j i je B t w y k o rz y sty w an ie do k o n s t r u k c j i u r z ą d z e ń c y fro w y c h układów r o d z i n y 13000, d o s t ę p n e j w P o l s c e . Wydaje s i ę , że w n a j b l i ż s z y m o z a s i a
ele m e n ty t e j r o d z i n y będą s z e r o k o sto s o w a n e w t e c h n i c e c y f r o w e j . Dużym je d n a k optymizmem napawa f a k t c o r a z w i ę k s z e j d o a t ę p a o ś o i w k r a j u in n y c h
46 ; H. Nowak. P. Stróżyna
Hikroprogramowania segmentowych mikroprocesorów.. 47
s e r i i m ik r o p r o c e s o ró w segmentowych, c h o c i a ż b y wspomnianej s e r i i AMD 2900 produkowanej w k r a j a c h RWPG.
LITERATURA
[1] Rzymkowski K. j " M ik r o p r o c e s o r y " ROIRTE E n e r g e t y k i i E n e r g i i Atomowej, Warszawa 1979.
[2] S e r i e s | 3000 B i p o l a r M icrocom puter System . K a t a l o g f irm y INTEL, 1976.
[
3
] Rowak H . , S tr ó ż y n a P. : R e a l i z a c j a s t e r o w n i k a tw a rd y c h dysków z wyk o r z y s t a n i e m m ik r o p r o c e s o ró w segmentowych. Z e s z y ty Raukowe P o l i t e c h n i k i Ś l ą s k i e j , s . I n f o r m a t y k a , z . 8 , G liw ic e 1986.
[
4
] F i r t h R. R. s The Role o f iŚoftware T o o ls i n t h e Developem ent o f t h e ECLIPSE MV/8000 M ic ro c o d e , " S ig m ic ro R e w s l e t t e r " v o l . 11 n r 3 i 4 , 1 9 8 0.
[5] B a l l i e u G ., Lewi J . , Willems Y .D . : A Microprogramm ing Language a t R e g i s t e r T r a n s f e r L e v e l , " M i c r o p r o c e s s i n g and M icroprogram m ing" v o l . 8 n r 3, 4 , 5 , 1981.
[6] S k o r d a l a k i s E. j Towards a More F l e x i b l e M ic ro la n g u a g e f o r B i t - S l i c e d M ic ro c o m p u te rs , " M i c r o p r o c e s s i n g and M ic r o p r o g r a m m i n g " v o l . 7 ' n r 1, 1981.
[7] S i n t M. s A Survey o f Hig h L e v e l Languages f o r M icroprogramm ing, " S i g m ic ro N e w s l e t t e r " v o l . 11 n r . 3 , 4, 1980.
[8] B u s h e l l R . G . : H ig h e r L ev e l Languages f o r M icroprogram m in g, "Euromicro J o u r n a l " v o l . Rr 2, 1978.
R e c e n z e n t: d r i n ż . J e r z y Jaworow ski
Wpłynęło do R e d a k c j i 1 4 .0 6 .1 9 8 5
MHKPOnPOrPAMMKPOBAHME M H K P O I I O H E C C O P O B I N T E L
3000
H A [ I P H M E P E K O H T P O J U E E P A M A r H H T H H X H H C K O BP e 3 ¡0 m e
B d a i b e f l a H a K p a T K a a x a p a K i e p n c T H K a M H K p o n o p u e c c o p H o r o H a S o p a I N T E L
3000
c o O p a ą e H H e w B H H u a H H H H a M H K p o n p o r p a w M H o e y c T p o f t c i B O y n p a B J i e H u a n o c j i e o c k h -
s a K O H i j e n u H H H c n o j i b 3 0 B a H H f l H a ó o p a
13000
f l j ifl K O H C T p y K i x a n K O H T p o j u i e p a M a r H H T - H p c f l H C K O B , n p e ^ c r a B J i e n a c T p y m y p a M H K p o n p o r p a M M H h < $ o p M a i M H K p o K O M a H f l . P a c c M a T p H B a J o T c a i a K x e n p o Ó J i e M h i a f l p e c c a u H H M H K p o K O M a H f l . J l a H u u e i c o T o p u e n p a - K T H a e c K H e c o o S p a s c e H H H . h n p o e K T H u e c o B e r u . . B s a K A W H H i e . i b H o f i l u a o i b i p a e o T u o n H C a H H c p e f l c i B a p ą 3 p a 6 o T K H h c o B e p m e H C T i B O B a H H s j M H K p o n p o r p a M M H . ą j i a K O H T p o j u i e p a T B e p A b D C A H C K O B ,INTEL 3000 FAMILY OF BIT-SLICED MICROPROCESSORS MICROPROGRAMMING ON THE BASIS OF THE HARD DISC CONTROLLER
S u m m a r y
A b r i e f c h a r a c t e r i z a t i o n o f INTEL 3000 b i p o l a r b i t —o l i c e d m i c r o p r o c e s s o r f a m i l y was p r e s e n t e d i n t h e p a p e r . P a r t i c u l a r a t t e n t i o n was - p a i d t o m ic ro p ro g ram c o n t r o l u n i t . A f t e r h a v i n g o u t l i n e d t h e i d e a o f m aking u se o f t h e 3000 f a m i l y t o c o n s t r u c t a h a r d d i s o c o n t r o l l e r , a s t r u c t u r e o f m ic ro p ro g ram and a f o rm a t o f m i c r o i n s t r u c t i o n were d e s c r i b e d . Problems o f m i c r o i n s t r u c t i o n a d d r e s s i n g were d i s c u s s e d i n d e t a i l . Some p r a c t i o a l a d v i c e o f d e s i g n i n g a s w e l l a s r e m a rk s were s t a t e d t h e n . F i n a l l y , d e v e l o p ment m eth ods f o r t h e m ic ro p ro g ram o f t h e h a r d d i s c c o n t r o l l e r were shown.
48_______________________________________________________ H. Nowak. P. Stroivna