A Minicomputer Numbercruncher

always be put into a well defined state, it cannot harm the RC4000 as it ... computer. The RCH000 uses five instructions to control the minicomputer: ...
1 downloads 0 Views 831KB Size
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.