10
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
A Minicomputer Numbercruncher A. LINDGÅRD, P. GRAAE SORENSEN, and J. OXENBOLL Chemistry Laboratory III, H. C. Orsted Institutet, University of Copenhagen, Universitetsparken 5, DK-2100 København Ο
Due t o t h e l o w p r i c e o f s m a l l m i n i c o m p u t e r confi g u r a t i o n s t h e y h a v e become v e r y p o p u l a r i n c o m p u t e r i z e d instrumentation f o r c h e m i s t r y and p h y s i c s . L a r g e s c a l e s c i e n t i f i c c o m p u t i n g has not been much influenced by this, but h a s m o s t l y b e e n done on l a r g e c o m p u t e r s . An example o f use o f a monoprogrammed minicomputer for quantum chemistry is found at B e r k e l e y ( M i l l e r and S c h a e f e r , 1973), but the c o n f i g u r a t i o n w i t h plenty of main memory, backing store etc. i s not t y p i c a l f o r m i n i c o m p u t e r s y s t e m s . On t h e o t h e r h a n d t h e s m a l l s t a n d alone systems are not s u i t e d for program development due t o t h e l a c k o f p o w e r f u l p e r i p h e r a l s . O n l y interpre ters like BASIC can be used with a r e a s o n a b l e turn around time for program development, and BASIC is certainly not s u i t e d f o r a n y t h i n g but s m a l l programs. A problem with the l a r g e machines i s that they are very expensive for jobs having large cpu-time require ments. Monte-Carlo calculations in statistical m e c h a n i c s c a n o f t e n r e q u i r e weeks o f c p u - t i m e , but do n o t r e q u i r e much b a c k i n g s t o r e o r u s e o f p e r i p h e r a l s . Considering these cpu-bound problems i t became clear that a dedicated minicomputer with a reasonable amount of fast s t o r e w o u l d be s u f f i c i e n t t o do t h e s e type of c a l c u l a t i o n s at a very low cost, the only problem being how t o d e v e l o p p r o g r a m s a n d g e t d a t a i n and o u t o f t h e m e m o r y . At t h e H . C . 0 r s t e d I n s t i t u t e t h e r e was a n e e d f o r h a n d l i n g p r o b l e m s i n s t a t i s t i c a l m e c h a n i c s and c h e m i c a l k i n e t i c s r e q u i r i n g weeks t o m o n t h s of cpu-time. Core requirements for these jobs are low. These jobs c o u l d o f c o u r s e r u n on o u r medium s i z e m u l t i p r o g r a m m e d RC4000 computer ( B r i n c h Hansen, 1967), but not i n a r e a s o n a b l e 127 Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
MINICOMPUTERS AND LARGE
128
SCALE
COMPUTATIONS
way. E i t h e r o t h e r u s e r s w o u l d h a v e p r o b l e m s getting a decent turnaround time for their computational jobs, and t h e RC+000 w o u l d be l e s s a t t r a c t i v e f o r d o i n g s m a l l j o b s l i k e e d i t i n g , c o m p i l i n g and r u n n i n g s m a l l p r o g r a m s from a t e r m i n a l , or the t u r n a r o u n d time for the time c o m s u m i n g j o b w o u l d h a v e b e e n so l o n g t h a t i t c o u l d n o t have been r e a l i z e d .
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
System
design.
The purpose of the s y s t e m i s t o make l o n g c p u bound c o m p u t a t i o n s f e a s i b l e . Typically a program will run f o r a few h o u r s b e f o r e i t n e e d s a t t e n t i o n f r o m t h e RCH000 f o r s t o r i n g away d a t a . The p r o g r a m w i l l t h e n go on making a new c o m p u t a t i o n . T h i s c y c l e may c o n t i n u e for weeks. From t h e p o i n t o f v i e w of the minicomputer the RC*+000 is a backing s t o r e . T h e c o m p u t e d d a t a may be s t o r e d by an RC4000 control program on the backing store ie. t h e d i s c . The f i n a l s e c u r i t y o f t h e d a t a is a s s u r e d by t h e s e c u r i t y dump o f t h e w h o l e b a c k i n g s t o r e on a m a g n e t i c t a p e , w h i c h i s done o n c e e v e r y d a y .
Selecting
the
minicomputer.
The p r i m a r y c r i t e r i a u s e d i n s e l e c t i n g the minicomputer for this project were p r o c e s s i n g r a t e , i n s t r u c t i o n r e p e r t o i r e and c o s t . I t was d e c i d e d t h a t h a r d w a r e multiply/divide was essential for most applications, but that floating p o i n t a r i t h m e t i c w o u l d be u s e d i n a few c a s e s o n l y . It was expected that a l a r g e amount o f p r o c e s s i n g t i m e w o u l d be u s e d f o r b i t m a n i p u l a t i o n and memory addressing, and an a d v a n c e d a d d r e s s i n g scheme w i t h e a s y u s e of i n d e x r e g i s t e r s was important. The Texas Instrument 980A was selected as a r e a s o n a b l e compromise between the abovementioned r e q u i r e m e n t s . F o r i n s t a n c e , the s h i f t i n s t r u c t i o n can h a n d l e a v a r i a b l e number o f p o s i t i o n s a n d t h e h a r d w a r e multiply/divide i s not too d i f f i c u l t t o use f o r multilength i n t e g e r a r i t h m e t i c . F u r t h e r , the p r o t e c t i o n system of the TI980A was considered as an a d v a n t a g e . Software support from the manufacturer was not considered, b e c a u s e we a l r e a d y h a v e a general assembler for any m i n i c o m p u t e r and m i c r o c o m p u t e r , and p r o g r a m d e v e l o p m e n t s h o u l d n o t be done on t h e m i n i c o m p u t e r .
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
10.
LiNDGARD E T A L .
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
Connecting
the
A Minicomputer dumber cruncher minicomputer
to
the
129
RC4000.
The minicomputer may be c o n n e c t e d e i t h e r a s an independent machine h a v i n g a t e r m i n a l f o r the u s e r and only using the RC4000 as b a c k i n g s t o r e , o r as a s l a v e c o m p u t e r c o m p l e t e l y c o n t r o l l e d by t h e R C 4 0 0 0 , with no other peripherals. We favor t h e l a s t s o l u t i o n as it makes h a r d w a r e and s o f t w a r e s i m p l e r , A slave computer i s l i k e any o t h e r c o m p l e t e l y c o n t r o l l e d p e r i p h e r a l . The difference is t h a t a g e n e r a l purpose minicomputer can do v e r y c o m p l e x d a t a t r a n s f o r m a t i o n s while other perip h e r a l s g e n e r a l l y can n o t . The minicomputer should not h a v e any character oriented peripherals connected. Character input/output requires a lot of software. I f a t e r m i n a l had b e e n c o n n e c t e d , u s e r s would f u r t h e r m o r e have felt inclined to use the minicomputer f o r d e v e l o p i n g , e d i t i n g and a s s e m b l i n g o f p r o g r a m s . T h i s r e q u i r e s a command interp r e t e r and some p r o g r a m t o d e t e r m i n e w h e t h e r t h i s could be done locally or involve the RC4000. We would c e r t a i n l y u s e t h e same command l a n g u a g e on t h e m i n i c o m puter as on t h e RC^OOO, w h i c h i m p l i e s t h a t we h a d t o d e v e l o p a l o t o f s o f t w a r e . I t i s much s i m p l e r t o force the u s e r t o u s e t h e RC4000 f o r e d i t i n g , a s s e m b l i n g and l o a d i n g p r o g r a m s and h a v e no conventional peripherals on t h e m i n i c o m p u t e r , A slave computer is simple to h a n d l e . It can a l w a y s be p u t i n t o a w e l l d e f i n e d s t a t e , i t c a n n o t harm t h e RC4000 as i t c a n n o t do a n y t h i n g on i t s own b u t has t o a s k t h e RC^OOO t o do i t , by s e n d i n g a s i g n a l . The
TI980A
controller.
Communication between the RC4000 a n d t h e T I 9 8 0 A t a k e s p l a c e v i a t h e l o w - s p e e d and t h e h i g h - s p e e d (DMA) data c h a n n e l s o f t h e RC*+000 , b u t o n l y v i a t h e DMA p o r t o f t h e T I 9 8 0 A . B e s i d e s t h e DMA c a p a b i l i t y , this port has an instruction controlled o u t p u t f e a t u r e and an i n t e r r u p t i n p u t . T h e s e f e a t u r e s made i t e a s y to build the TI980A i n t e r f a c e , b e c a u s e i t was o n l y n e c e s s a r y to i m p l e m e n t one p e r i p h e r a l d e v i c e to the minicomputer, n a m e l y RC^OOO t h r o u g h t h e DMA p o r t . The interface can l o g i c a l l y be d i v i d e d i n t o two p a r t s , a c o n t r o l s y s t e m and a DMA d a t a t r a n s f e r system. In t h e c o n t r o l s y s t e m t h e T I 9 8 0 A i s connected to the instruction controlled low-speed data c h a n n e l of the RC4000 and f u n c t i o n s as a s l a v e computer. The RCH000 uses f i v e i n s t r u c t i o n s to c o n t r o l the m i n i c o m p u t e r : 1) reset, 2) stop, 3) s t a r t , 4) s i n g l e instruction e x e c u t i o n a n d 5) i n t e r r u p t . I m p l e m e n t a t i o n of the first
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
130
MINICOMPUTERS AND LARGE
SCALE
COMPUTATIONS
f o u r i n s t r u c t i o n s i s p e r f o r m e d by c o n n e c t i n g t h e o u t p u t o f t h e RC4000 c o n t r o l l e r t o t h e f r o n t panel board of the minicomputer and t h e n s i m p l y s i m u l a t i n g t h e front p a n e l s w i t c h e s . The i n t e r r u p t i n s t r u c t i o n i s connected t o t h e DMA p o r t . The DMA s y s t e m c o n t r o l s t h e d a t a t r a n s f e r s between the two c o m p u t e r s . A word i s l o a d e d f r o m t h e memory o f one c o m p u t e r t h r o u g h i t s DMA p o r t , stored temporarily in a one word b u f f e r , and t h e n t h e s e c o n d c o m p u t e r i s r e q u e s t e d t o s t o r e t h i s word i n i t s memory t h r o u g h its DMA port. In one RC4000 24 b i t word o n l y one 16 b i t T I 9 8 0 A word i s s t o r e d . No a t t e m p t h a s b e e n made t o make a more e f f i c i e n t p a c k i n g , because i t would complicate b o t h s o f t w a r e and h a r d w a r e . The DMA t r a n s f e r c a n o n l y be i n i t i a l i z e d by t h e RC4000, w h i c h has f o u r i n s t r u c t i o n s f o r this purpose: 1) load the RC4000 a d r e s s c o u n t e r f o r i n p u t , 2) l o a d t h e RC4000 a d r e s s counter for output, 3) load the TI980A adress counter and 4) load t h e word number c o u n t e r . E x e c u t i o n of the l a s t i n s t r u c t i o n a l s o starts the data transfer, which is now c o n t r o l l e d by t h e interface. The a u t o m a t i c t r a n s f e r i n s t r u c t i o n (ATI) of the minicomputer is used for a c t i v a t i n g the i n s t r u c t i o n c o n t r o l l e d o u t p u t a t t h e DMA p o r t . T h i s instuction is normally used to initialize a DMA t r a n s f e r to a peripheral device ( e . g . a d i s c ) when t h e m i n i c o m p u t e r i s used i n a stand alone system. Here the output is used for a low s p e e d c o m m u n i c a t i o n f r o m t h e T I 9 8 0 A t o the RC4000. The DMA p o r t does not have an input f e a t u r e , so l o w - s p e e d c o m m u n i c a t i o n t h e o p p o s i t e way i s not implemented. The A T I i n s t r u c t i o n c a n l o a d two 16 b i t TI980A words to p e r i p h e r a l r e g i s t e r s , and sends at t h e same t i m e an i n t e r r u p t t o t h e R C 4 0 0 0 . T h i s c a n r e a d the two r e g i s t e r s by s e n s e i n s t r u c t i o n s . The r e m a i n i n g b i t s w h i c h c a n be r e a d by a s e n s e i n s t r u c t i o n a r e used for status. Software.
for
The communication and c o n t r o l s o f t w a r e d e v e l o p e d t h i s p r o j e c t c o n s i s t s of the f o l l o w i n g p r o g r a m s : 1. A h a n d l e r as a part of the RC4000 monitor (Brinch Hansen, 1973) which together with a process d e s c r i p t i o n i s the peripheral process "ti980a". 2. I n i t i a l i s a t i o n code i n the RC4000. T h i s i s o n l y e x e c u t e d at system r e s t a r t i n the RC4000. 3. A monitor in the TI980A. This includes a h a n d l e r f o r t h e RC4000 known as " r c 4 0 0 0 " .
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
10.
LINDGARD
A Minicomputer "Numbercruncher
ET AL.
131
The T I 9 8 0 A m o n i t o r p r o v i d e s a c o n t r o l a n d c o m m u n i c a t i o n s t r u c t u r e s i m i l a r t o t h a t o f t h e RC4000 m o n i t o r . The T I 9 8 0 A u s e r a r e a a n d r e g i s t e r f i l e dump i s c o n c e p t u a l l y a p r o c e s s s i m i l a r to the i n t e r n a l p r o c e s s of the RC4000 m o n i t o r ( B r i n c h H a n s e n , 1 9 7 3 ) . The process it may c o m m u n i c a t e w i t h i s t h e p e r i p h e r a l p r o c e s s " r c H O O O " (see figure 1) a n d i t d o e s so u s i n g a m e s s a g e buffer t e c h n i q u e e q u i v a l e n t t o t h a t i n t h e RC4000 s y s t e m . T h u s m u l t i b u f f e r i n g of i n p u t / o u t p u t i s a built-in feature. The structure a l l o w s us t o i m p l e m e n t m u l t i p r o g r a m m i n g on t h e T I 9 8 0 A w i t h o u t c h a n g i n g e x t e r n a l c o n v e n t i o n s and with a r e l a t i v e l y small e f f o r t i n software development.
Communication
in
the
TI980A.
When t h e T I 9 8 0 A u s e r p r o g r a m w a n t s the attention of t h e RC4000 u s e r p r o g r a m i t s e n d s a m e s s a g e . T h i s i s d o n e by c a l l i n g a p r o c e d u r e " s e n d message". A buffer within the T I 9 8 0 A m o n i t o r i s s e l e c t e d and t h e m e s s a g e i s c o p i e d from the u s e r program t o the message buffer. The buffer address is returned to the TI980A u s e r p r o g r a m . The l a t t e r may s e n d a new m e s s a g e o r may wait for an answer t o t h e m e s s a g e s e n d ( s e e f i g u r e 2b f o r an e x a m p l e ) . C a l l i n g t h e T I 9 8 0 A m o n i t o r p r o c e d u r e " w a i t a n s w e r " d e l a y s t h e T I 9 8 0 A u s e r p r o g r a m u n t i l t h e RCH000 has s e n t an a n s w e r b a c k t o t h e T I 9 8 0 A . T h e a n s w e r from the RC4000 a r r i v e s i n t h e same m e s s a g e b u f f e r as u s e d by " s e n d m e s s a g e " a n d i s c o p i e d by " w a i t answer" into
TMX
TI980A interface
Figure 1. Structure of a simple job using the TI980A showing the communication and control paths. Rectangular boxes are interface hardware; circles are peripheral processes.
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
132
MINICOMPUTERS AND LARGE
SCALE
COMPUTATIONS
an answer a r e a i n t h e T I 9 8 0 A u s e r p r o g r a m . The T I 9 8 0 A user program can c a l l the TI980A monitor to examine w h e t h e r an a n s w e r has a r r i v e d .
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
Communication
in
the
RC4000.
When the RC4000 user program has loaded and started t h e T I 9 8 0 A , t h e T I 9 8 0 A u s e r p r o g r a m may s e n d a message t o the h a n d l e r t e l l i n g t h e h a n d l e r t o queue up the message buffer until a message a r r i v e s from the T I 9 8 0 A u s e r p r o g r a m . When i t arrives the message is copied from the TI980A to the s e l e c t e d message buffer i n t h e R C 4 0 0 0 . The RCH000 u s e r program will get the T I 9 8 0 A m e s s a g e c o p i e d i n t o i t s a n s w e r a r e a by e x e c u t i n g wait answer. An a n s w e r t o t h e m e s s a g e f r o m t h e T I 9 8 0 A c a n be s e n d by t h e RC4000 u s e r by e x e c u t i n g a new " s e n d message", "wait answer" s e q u e n c e , (see f i g u r e 2a). Control. The RC4000 u s e r p r o g r a m i s an o p e r a t i n g s y s t e m f o r t h e T I 9 8 0 A u s e r p r o g r a m . I t c a n do block input/output t o t h e u s e r a r e a a t any t i m e . I t c a n s t a r t and s t o p t h e T I 9 8 0 A u s e r p r o g r a m and when f i n i s h e d r e m o v e t h e T I 9 8 0 A user program. T h i s i s done by s e n d i n g m e s s a g e s t o t h e h a n d l e r . The T I 9 8 0 A u s e r p r o g r a m a n d even the TI980A monitor can do nothing to harm t h e RCHOOO a n d t h e a c t i v i t i e s t h e r e i n . The c o n t r o l b o t h i n h a r d w a r e a n d i n s o f t w a r e i s e x c l u s i v e to the RC4000. Survival. F o r l o n g t e r m c o m p u t a t i o n s , i t w o u l d be c o n v e n i e n t if the minicomputer could survive most kinds of troubles in the host system, i r r e s p e c t i v e of whether t h e y a r e c a u s e d by h a r d w a r e m a l f u n c t i o n i n g or by new d e v e l o p m e n t o f hardware and b a s i c s o f t w a r e . In hardware the TI980A i s p r o t e c t e d a g a i n s t the R C 4 0 0 0 . The c o m m u n i c a t i o n channel is separated both from t h e RCH000 d a t a c h a n n e l s a n d f r o m t h e T I 9 8 0 A d a t a c h a n n e l t h r o u g h two c o n t r o l l e r s . The TI980A can run even when there i s no power on t h e c o n t r o l l e r i n t h e RC*+000. I n t h e d e s i g n o f t h e T I 9 8 0 A m o n i t o r and t h e RCH000 h a n d l e r i t was p o s s i b l e t o d e s i g n a safe strategy to keep the TI980A g o i n g i n d é p e n d a n t o f system deadstarts i n t h e R C H 0 0 0 . T h i s i s d o n e by h a v i n g a copy of all state variables in both the TI980A m o n i t o r and t h e RC4000 p e r i p h e r a l p r o c e s s . A t s y s t e m d e a d s t a r t in the
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
LiNDGARD E T A L .
A Minicomputer Ν umber cruncher
133
rcusercomm 1 27 4 76 1 begin 2 comment r c 4 0 0 0 u s e r p r o g r a m f o r c o n t r o l a n d 3 communication with t i 9 8 0 a ; 4 integer i ; 5 i n t e g e r a r r a y M,A(1: 8 ) , i m a g e ( 1 : 256 ) , r e g i s t e r ( 1 : 9 ) ; 6 6 comment f e t c h t r a n s l a t e d t i u s e r p r o g r a m f r o m d i s ^ 7 careaproc(); 8 M ( l ) : = 3 s h i f t 12; comment i n p u t o p e r a t i o n ; 9 M(2 ) : = f i r s t a d d r ( i m a g e ) ; 10 M(3):=M(2)+2*256-2; 11 M ( 4 ) : = l ; comment r e l a t i v e segment f o r c o d e ; 12 waitanswer(sendmessage(,M),A); 13 comment t h e t i u s e r p r o g r a m i s now i n image; 14 14 comment r e s e r v e t i 9 8 0 a a n d move code t o t i 9 8 0 a ; 15 reserveproc(,0); 16 M ( l ) : = 5 s h i f t 12; comment output; 17 comment M(2) a n d M(3) a r e u n c h a n g e d ; 18 M(4):=0; comment f i r s t a d d r e s s i n t i 9 8 0 ; 19 w a i t a n s w e r ( s e n d m e s s a g e ( < : t i 9 8 0 a : > , M ) , A ) ; 20 20 comment s e t r e g i s t e r s a n d s t a r t t i 9 8 0 a ; 21 r e g i s t e r ( 8 ) : = r e g i s t e r ( 9 ) : = 0 ; 22 comment T I p r o g r a m c o u n t e r : = T I s t a t u s r e g i s t e r : = 0 ; 23 M ( l ) : = 5 s h i f t 12+2; comment s e t r e g i s t e r s a n d s t a r t ; 24 M ( 2 ) : = f i r s t a d d r ( r e g i s t e r ) ; 25 w a i t a n s w e r ( s e n d m e s s a g e ( < : t i 9 8 0 a : > , M ) , A ) ; 26 26 comment w a i t f o r 5 m e s s a g e s a n d g e n e r a t e a n s w e r s ; 27 f o r i : = l s t e p 1 u n t i l 5 do b e g i n 28 M ( l ) : = 1 4 s h i f t 12; comment w a i t m e s s a g e ( < : t i 9 8 0 a :>) ; 29 waitanswer(sendmessage(,M), A); 30 comment a message h a s a r r i v e d , g e n e r a t e an a n s w e r ; 31 M ( l ) : = 1 0 s h i f t 12; comment s e n d a n s w e r ( < : t i 9 8 0 a :>); 32 M ( 2 ) : = A ( 2 ) ; comment c o p y T I b u f f e r a d d r e s s ; 33 waitanswer(sendmessage(,M), A ); 34 end l o o p ; 35 35 comment r e m o v e p r o g r a m a n d r e l e a s e t i 9 8 0 a ; 36 M ( l ) : = 1 6 s h i f t 12; 37 w a i t a n s w e r ( s e n d m e s s a g e ( < : t i 9 8 0 a : > , M ) , A ) ; 38 end algol
end
15
Figure 2a. Model operating system written in the ALGOL6 dialect (Lauesen, 1969). The program reads the translated TI980A user program from the RC4000 backing store and moves it to the user area of the Τ1980A (lines 6-19). The Τ1980A register file is loaded and the minicomputer started (lines 20-25). A number of messages and answers are exchanged (lines 26-34). The minicomputer is released (lines 35-37).
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
MINICOMPUTERS
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
134
AND LARGE
SCALE
COMPUTATIONS
RC4000 the initialization code reads the state v a r i a b l e s from the TI980A monitor into the RC4000 peripheral process. Loading the TI98&A m o n i t o r i s a p r i v i l e g e d o p e r a t i o n which a normal user cannot execute . The major problem that arises when h a n d l i n g a s u r v i v a l problem l i e s in the multiprogrammed RC4000 computer. A f t e r d e a d s t a r t o n l y t h e p e r s o n who h a s l a s t r e s e r v e d t h e T I 9 8 0 A s h o u l d be allowed to control it again, if a TI980A user program is r u n n i n g . The reservation scheme is extended a s f o l l o w s . When t h e TI980A i s f r e e , any RC4000 process may r e s e r v e the TI980A. T h e name o f t h e r e s e r v i n g p r o c e s s i s moved t o the TI980A m o n i t o r . At system d e a d s t a r t it is copied from the TI980A monitor i n t o the p e r i p h e r a l p r o c e s s . O n l y a n RC4000 process with the same name as the original réserver c a n now r e s e r v e the T I 9 8 0 A . The d i s a d v a n t a g e o f t h i s scheme i s that the RCH000 user p r o c e s s e x p l i c i t l y has t o r e l e a s e the t i 9 8 0 a process. A user can take advantage of the automatic p r o c e s s start up facility in one of the o p e r a t i n g systems (Graae S^rensen and L i n d g â r d , 1 9 7 3 ) . T h e RCH000 user program can e a s i l y examine the s t a t e o f the TI980A and t h e p r o g r a m t h e r e i n , m a k i n g t h e c o d i n g o f an start up mechanism r e l a t i v e l y easy. f f
How
to use the
t f
TI980A.
In figure 2a is given a s i m p l e example o f an o p e r a t i n g RC4000 a l g o l program and in figure 2b a TI980A a s s e m b l y l a n g u a g e p r o g r a m . The o p e r a t i n g p r o g r a m fetches t h e a s s e m b l e d c o d e as g e n e r a t e d by t h e g e n e r a l a s s e m b l e r ( B a n g , 1 9 7 4 ) . The TI980A i s l o a d e d with the program after reservation has taken place and t h e TI980A u s e r program i s s t a r t e d . The TI980A u s e r program and t h e RC4000 user program exchange a number of messages. F i n a l l y t h e RC4000 u s e r p r o g r a m r e l e a s e s t h e TI980A. The c o n t r o l m o d e l p r o g r a m i n f i g u r e 2a i s a short program and it is easy to extend i t to a r e a l i s t i c c o n t r o l p r o g r a m by i n c l u d i n g some i n p u t / o u t p u t a n d t e s t of t h e c o m m u n i c a t i o n s . Such a program w i l l only be a few p a g e s l o n g a n d r a t h e r t r i v i a l t o w r i t e . The T I 9 8 0 A m o d e l p r o g r a m i n f i g u r e 2b i s v e r y s h o r t . I t h a s i n d e e d b e e n t h e s c o p e o f t h e d e s i g n t o make l i f e e a s y f o r the programmer when h a n d l i n g c o m m u n i c a t i o n s . A s s e m b l y l a n g u a g e c o d i n g s h o u l d be k e p t a t a m i n i m u m . A l t h o u g h the communication p r i m i t i v e s looks d i f f e r e n t i n the TI980A t h e y work b a s i c l y t h e same way a s i n t h e R C 4 0 0 0 . I n a n
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
LINDGARD E T A L .
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
10.
A Minicomputer"Νumbercruncher
135
tiuser 0 0 rep : ldx=message ; trap 3 ; send m e s s a g e ( < : r c 4 0 0 0 : > m e s s a g e ) ; 1 ste bufferaddress; bufferaddress:= 2 3 3 comment c o m p u t a t i o n s and/or other communications 3 may t a k e p l a c e h e r e ; 3 3 ldx=answer 3 lde bufferaddress 4 wait answer(bufferaddress.answer); 5 trap 4 6 bru rep goto r e p ;
7 7 8 14 20
bufferaddress: message :
Figure 2b.
0 0,r. 0,r.
message a r e a answer a r e a
Model program for the TI980A showing how to communicate with the RC4000
RC4000 assembly language have been t h e same.
program,
the
comments
would
Discussion. Starting out with the model operating system (figure 2a) i t i s a r a t h e r t r i v i a l task to write an o p e r a t i n g system f o r a s p e c i f i c application. The system has a l r e a d y been s u c c e s f u l l y used to solve scientific problems in statistical mechanics ( R o t n e a n d H e i l m a n n , 1976) f o r p o l y m e r s on a g r i d . The c o s t p e r r u n i s v e r y low compared with the cost on a large, fast machine c o n s i d e r i n g the dif ference in speed. The stability of the system is extremely good. The T I 9 8 0 A h a s n o t f a i l e d a t l e a s t i n the p a s t y e a r . The t o t a l h a r d w a r e d e v e l o p m e n t c o s t i s a r o u n d h a l f the p r i c e of the minicomputer. The basic software d e v e l o p m e n t c o s t was a r o u n d two p e r s o n m o n t h s . Acknowledgement.
The g r a n t from S t a t e n s N a t u r v i d e n s k a b e l i g e F o r s k n i n g s r â d to p u r c h a s e the TI980A i s gratefully acknowledged. Jorgen Bang designed and implemented the g e n e r a l a s s e m b l e r . H e i n r i c h B j e r r e g a a r d implemented the basic software.
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.
136
MINICOMPUTERS AND LARGE SCALE COMPUTATIONS
Abstract.
Downloaded by UNIV OF MASSACHUSETTS AMHERST on May 19, 2018 | https://pubs.acs.org Publication Date: June 1, 1977 | doi: 10.1021/bk-1977-0057.ch010
The low price of minicomputers makes them attractive for timeconsuming jobs which are only cpu-bound, like Monte Carlo simulations. At the H. C. Ørsted Institute a minicomputer with 12 k main memory has been connected to the multiprogrammed RC4000 computer. A l l program development is done on the RC4000 and so is the control of the minicomputer. Literature cited.
Bang,
J.,
(1974), Report 74/15, Datalogisk
Institut,
København. Brinch Hansen, P. (1967), Bit 7 191-199 Brinch Hansen, P. (1973), Operating Systems Principles, Prentice-Hall, Englewood C l i f f s , N. J . Graae Sørensen, P. and Lindgård, A. (1973), Computers in Chemical Research and Ed. Hadzi, Elsevier, Amsterdam. Lauesen, S. (1969), ALGOL5 User's Manual, RCSL 55-D42 Regnecentralen, København. Miller, W.H. and Schaefer, H.F. (1973), Quarterly Reports, Department of Chemistry, University of California, Berkeley, California. Rotne, J . and Heilmann, O.J. (1976), Proc. VIIth International Congress on Rheology, Gothenburg.
Lykos; Minicomputers and Large Scale Computations ACS Symposium Series; American Chemical Society: Washington, DC, 1977.