The British scene edsac




Дата канвертавання19.04.2016
Памер97.77 Kb.

The British scene - EDSAC


Citando il libro di Williams:

  • costruzione del Colossus ====> competenze elettroniche ++

  • Draft Report su EDVAC (1945) + Moore School Lectures (1946)

===> schema di von Neumann, ulteriori tecnologie,...

  • 3 progetti (principali): Cambridge Univ., Manchester Univ, NPL (ACE)

meno faraonici di quelli americani (EDVAC, IAS machines)

i primi due completati prima di quelli americani

(NPL - ACE : vedi appunti su Turing)

Mentre negli USA lottavano ancora con l'hardware, a Cambridge e Manchester litigavano già col software
This resulted in an early British lead in the design of software systems and, in at least one or two areas, allowed British firms to produce certain hw advancements which where not incorporated in the American commercial computers for several years.

Questione: arrivò prima Cambridge o Manchester ?



  • Manchester arrivò prima ad una "macchinetta" funzionante, la Baby

  • Cambridge arrivò prima ad un computer funzionante: EDSAC


UML, Wilkes ed una notte insonne




  • UML = University Mathematical Laboratory

  • Wilkes : direttore dell'UML a partire dal 1945

  • maggio 1946: L.J.Comrie visita Cambridge con una copia del Report di von Neumann; in assenza di fotocopiatrici, Wilkes passa una notte a leggere il report ....

  • estate 1946: Wilkes partecipa alle Moore School Lectures

  • al ritorno .... inizia il progetto EDSAC


EDSAC : Electronic Delay Storage Automatic Calculator

Wilkes cerca di inventare il meno possibile e di usare la tecnologia disponibile

Riesce a far funzionare delle delay-lines acustiche a mercurio.
Non è un manager e inizia con pochi soldi, sperando in bene ...

non ha mai voluto rivelare il costo finale, limitandosi a dire che


..... era meno di 1 000 000 $ ....
J. Lyons & Co (té, caffé, biscotti, ciambelle,...)

avendo problemi a tenere la contabilità e sperando nel "futuro computer" decide di finanziarlo .....

Prima dimostrazione dell' EDSAC: Maggio 1949

Operativa: circa 8 mesi dopo e rimase tale fino al 1956

Dettagli hw e sw della versione maggio 1949 :

"The EDSAC Demonstration",


Report of a Conference on High-Speed Calculating Machines (1949)

ristampato in Randell 67 : The origins of Digital Computers .....

vedremo ....

What the Papers Said


A Don Builds a Memory -- Daily Mail, October 1947

Short, dapper [ = very neat in appearance and quick in movements ]

Dr. M.V. Wilkes, director of the Cambridge mathematical laboratory and ex-wartime radar backroom boy, is in charge of the calculator ... He told me yesterday:

“The brain will carry out mathematical research. It may make sensational discoveries in engineering, astronomy, and atomic physics. It may even solve economic and philosophic problems too complicated for the human mind. There are millions of vital questions we wish to put to it.”



New Brain Stores Orders -- - Daily Telegraph, June 1949

The world’s most advanced electronic calculator, one of the so-called mechanical minds, was recently completed at Cambridge University mathematical laboratory.

Yesterday the joint designers, Mr. M.V. Wilkes and Mr. W. Renwick, gave me a preview of “Edsac” (electronic delay storage automatic calculator).

It has a 3,500-valve “brain” weighing about a ton. ...

A team of 10 have been assembling “Edsac’s” 120 racks of valves, covering a floor area of about 500 square feet, since early in 1946.

Mechanical Brain -- - The Star, June 1949

On the top floor of a rather drab building in a narrow Cambridge back street is an apparatus which seems to consist chiefly of a vast number of valves set in grey painted racks. ...

this weird array of wires and valves is a “mechanical brain.”

It has just been completed and it is the most advanced in the world. It is probably the major scientific marvel of 1949 and although until now we have lagged behind America in mechanical brains this one puts us streets ahead ...



This is how it works.

  • First Mr Wilkes fed a strip of paper punched with holes into a “ticker-tape” machine.

  • As the paper ticked through ... miniature television screens showed a row of green blobs ...

  • then almost instantaneously a teleprinter nearby began to print rows of figures.

  • That was all. There were no dramatic sparks, no dramatic flashes ...

There are not enough “brains” to go around at the moment, but a dozen would probably be sufficient for the whole country ...

The future? The “brain” may one day come down to our level and help with our income-tax and book-keeping calculations.

But this is speculation and there is no sign of it so far.

==========================================


EDSAC anni '50


Miglioramenti nella versione successiva (1950):

  • set di istruzioni piu' ricco

  • main e routines rilocabili, linkate a load- time,...

  • programma di bootstrap per il load, di sole 40 istruzioni: prodigio di programmmazione dovuto a David. J. Wheeler

  • Wheeler jump: per chiamata a subroutine (ma senza usare stack)

  • ricca libreria di subroutines

>>>>>>> vedremo poi ....



SIMULATORI : http://www.dcs.warwick.ac.uk/~edsac/

Il primo libro di programmazione (primo ad essere pubblicato ...):

Wilkes, Wheeler, Gill (1951):

The preparation of programs for an electronic digital computer

LEO : té e computers

J. Lyons & Co aveva finanziato l' EDSAC... e poi volle averne uno ...

Nell'estate del '49, iniziò una reingegnerizzazione dell' EDSAC che portò al

primo computer usato in commercial data processing : LEO

LEO = Lyons Electronic Office operativo nell'autunno 1951

Poi vennero LEO I, LEO II, LEO III, .... e la LEO Computers Ltd

Citando


Robert L. Glass

publisher/editor of The Software Practitioner newsletter


editor emeritus of Elsevier’s Journal of Systems and Software.

COMMUNICATIONS OF THE ACM, Vol. 48, No. 3, March 2005



The earliest business applications software was developed in 1951. ...

Who were these astoundingly early pioneers?

It won’t surprise computing historians that it was a company in England ....

But it may very well surprise everyone that it was an English company called J. Lyons (whose business was tea, tea shops, ice cream, and cakes) ....... .

That computer later came to be called the LEO, and it was a business production version of the EDSAC computer developed at Cambridge Univ.

The programs created by J. Lyons weren’t what you’d think of as traditional small-business-specific applications. There was transaction data processing, of course, ..... There were also sales and inventory programs…



But there was more.

  • Results o those transactions were compared to pre-set standards, forecasts, and budgets.

  • Variances were identified and dealt with by specifically assigned lower-level managers.

  • What-if explorations requested by senior management could also be undertaken via the software.

The result was a real-time approach to management information processing coupled with a decision support system .....

What Lyons produced all those years ago is similar to contemporary Business Process Analysis and Reengineering work that forms so much of what is now considered avant-garde.


EDSAC 1949 - dettagli tecnici


Dettagli sulla versione maggio 1949, in aggiunta a quanto in

Randell : The origins of Digital Computers - Selected papers

Fonti: A Tutorial Guide to the EDSAC Simulator, by Martin Campbell-Kelly

The EDSAC Simulator - Program Documentation, Univ. of Warwick

========================

Glossario


  • electronic machine working in the scale of two : usa il sistema binario

  • ultrasonic tanks for storage: delay lines a mercurio

  • short tanks : piu' o meno, registri

  • order = istruzione / comando

  • initial orders = programma di bootstrap, loader

Schema logico

basato su quello dell' EDVAC, come descritto nel Draft Report

in sintesi, 5 componenti:


  • Input : paper tape reader

  • Output : teleprinter (e monitors per sorvegliare)

  • Store : 1024 parole da 18 bit (32 tanks da 32 parole)

Nota: I / O collegato direttamente allo Store (vedi istruzioni I ed O )

  • Control, che include Program Counter (Sequence Control Tank) : 10 bit

Instruction Register (Order Tank) : 17/18 bit

  • ALU, che include 3 "registri"

ACC (accumulatore) da 71 bits

multiplier da 35 bit

multiplicand da 35 bit

infatti i numeri (interi o fixed-point) lunghi erano di 35 bit, quindi

ACC poteva contenere il risultato esatto di una moltiplicazione

Parola: 18 bit, ma il primo era inutilizzabile per motivi tecnici

quindi : 17 bit



Interi: in complemento a 2

short : 17 bit long : 35 (= 17+ 1 [inutilizzato ?] + 17) bit



Razionali: fixed point, modulo e segno, short / long come sopra

il punto, implicito, si trovava dopo il bit di segno, quindi

il modulo M era : 0 <= M < 1

ad esempio : - 0.25 ?10100000000000000



bit non usato, segno, modulo

I calcolo complessi, quindi richiedevano di scalare ...

(si doveva capire dove andava veramente piazzata la virgola ...)

Formato istruzioni: formato fisso, 17 bit, single operand


17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

???

op code - 5 bit

0

10 bit per indirizzo operando

L/S

bit 17 è quello inutilizzabile

bit 11 è detto spare bit; secondo me deve essere sempre 0

bit 0 specifica la lunghezza dell'operando: 1 = Long, 0 = Short

Istruzioni / orders


  • C n collate : AND logico bit a bit

  • 2 operazioni di STORE (U e T) ma nessuna di LOAD

per ottenere ACC <--- [ cella k - short ] servono 2 istruzioni

T p S dove p è una locazione che non serve a nulla

A k S


  • le istruzioni di shift sono le piu' strane ....

The shift instructions probably gave more trouble to users than any others. This was because, to simplify the engineering,

the number of shift positions was given not by the value of the address field of the instruction but by the position of the rightmost bit [=1] in the instruction word.

Thus the instruction L 8 S caused the contents of the accumulator to be shifted 5 places left, and not 8 places, as you might expect.

Infatti: codifica di L 8 S ...... 1000 0



Average instruction times:

1.5 ms, although multiplication was longer and took 6 ms;

I/O times were determined by the basic speeds of the peripheral equipment.

Codifica dei programmi

Il programma, scritto su carta, in linguaggio simbolico (es T 17 S, ....)

veniva trasferito su nastro di carta usando una apposita macchina:

battendo su una tastiera, tipo macchina da scrivere, la macchina perforava il nastro, quindi eseguiva la conversione da simbolico in binario



Character Codes

notare che la codifica NON è unica !! es: W e 2 hanno lo stesso codice




Perforator

Teleprinter

Binary

Dec

Letter shift

Figure shift

Letter shift

Figure shift

 

 

P

0

P

0

00000

0

Q

1

Q

1

00001

1

W

2

W

2

00010

2

E

3

E

3

00011

3

R

4

R

4

00100

4

T

5

T

5

00101

5

Y

6

Y

6

00110

6

U

7

U

7

00111

7

I

8

I

8

01000

8

O

9

O

9

01001

9

J

 

J

 

01010

10

Pi

 

Figure shift

01011

11

S

 

S

"

01100

12

Z

 

Z

+

01101

13

K

 

K

(

01110

14

Erase

 

Letter shift

01111

15

Blank Tape

 

(no effect)

10000

16

F

 

F

$

10001

17

Theta

 

Carriage return

10010

18

D

 

D

;

10011

19

Phi

 

Space

10100

20

H

+

H




10101

21

N

-

N

,

10110

22

M

 

M

.

10111

23

Delta

 

Line feed

11000

24

L

 

L

)

11001

25

X

 

X

/

11010

26

G

 

G

#

11011

27

A

 

A

-

11100

28

B

 

B

?

11101

29

C

 

C

:

11110

30

V

 

V

=

11111

31

Initial orders (versione 1949 nota come Initial Orders 1)

istruzione 0 : si auto distrugge ....

istruzione 1 : vediamo poi

istr 2+3 : modo standard di effettuare un go-to (goto 6)

le locazioni da 0 a 3 nel seguito diventano spazio di lavoro !!!

istr. 4: P 1 S codifichiamola indicando solo i 17 bit usati :
00000 0 0000000001 0

cod per P spare addr - 10 bits Short


Letto come numero intero è +2 e come fixed point è 2-15

istr. 5: P 5 S analoga a 4
00000 0 0000000101 0 che come intero è +10

istr. 1: H 2 S carica in multiplicator la codifica dell'istruzione 2, cioè
00101 0 0000000000 0

cod per T addr : 0 Short


Letto come numero fixed point è + .0101 = 5/16 = 10/32

istr. da 6 a 10

  • T 0 S poichè ACC= 0, azzera la destinazione, cella 0

  • I 0 S carica l'op-code nei 5 bit meno significativi della cella 0

  • A 0 S store in ACC; secondo me riempiendo i 17 bit alti

  • R 16 S shift a destra di 6 posizioni;

ora in ACC, partendo da sinistra,

abbiamo 12+6 bit che sono 0 e poi l'op-code



  • T 0 L i 35 bit alti dell'ACC vanno nelle celle 0 e 1 (in che ordine ????)

...... Lasciamo al lettore il piacere di decifrare le istruzioni da 11 a 24

che portano ad avere ACC = codice dell'istruzione letta .....

nota: le istr. 13 e 14 controllano se si è arrivati alla fine, leggendo S/L



istr. 25: inizialmente è T 31 S

con effetto store istruzione letta in cella 31 .......

successivamente conterrà T 32 S T 33 S T 34 S .....

istr. 26, 27, 78;


  • A 25 S in ACC, che era stato azzerato, si mette codice istruzione 25

  • A 4 S sommiamo ad ACC il codice dell'istr.4: 00000000000000010

quindi si va a sommare 1 alla parte indirizzo dell'istruzione 25

  • U 25 S si aggiorna l'istruzione 25 senza azzerare ACC

istr. 29, 30

Per capire bisogna sapere che, per convenzione,



la prima istruzione dei programmi che venivano caricati doveva essere T n+1 S

dove n era la locazione in cui andava a finire l'ultima istruzione

Allora, eseguendo Initial Orders

nella cella 31 va a finire la codifica di T n+1 S

quando l'istruzione 27 produce T n+1 S in ACC,

allora abbiamo finito il caricamento del programma

e si deve passare ad eseguirlo ......

e, infatti, l'istruzione G ... quando ACC=0 non salta

dunque si passa ad eseguire l'istruzione 31 ....

Miglioramenti all' EDSAC (anni 50)


Initial Orders 2.

Once the Cambridge group began programming using the first form of the initial orders in the spring of 1949, their limitations soon became apparent.



The worst feature by far was that addresses in instructions had to be coded in absolute form: this meant, for example, that if an extra instruction had to be inserted in a program then the addresses in many of the branch instructions would need to be altered. ....

Another problem was that the lack of a relocation facility meant it was difficult to organize a subroutine library effectively.

Quindi : il nuovo set di istruzioni permette di scrivere (in qualche modo) codice rilocabile e la nuova routine Initial Order esegue il load di main e routines

The task of devising a new set of initial orders was given by Wilkes to David Wheeler, then a research student and later Professor of Computer Science at Cambridge.



What he produced was the forerunner of the modern assembler.

The new programming system was later described in

The Preparation of Programs for an Electronic Digital Computer

Wilkes, Wheeler and Gill, 1951.



This famous book .... established the programming culture of the early 1950s, which is still to some extent embodied in the assembly systems and subroutine libraries of today’s computers.

When designing the new initial orders, one of the constraints that Wheeler had was that, for engineering reasons, the initial orders were limited to being just 42 instructions long.

But even so, their power was quite astonishing and at the time they were justly celebrated as “the leading example of programming virtuosity”.

Wheeler jump


Chiamata a subroutine usando il Wheeler jump (EDSAC 1950 +)

qui trascuro la parte ong/short operand

locazione istruzione commento

===============================================================================

k rr costante rr permanente (vedi sotto)

....................................

.......................................

routine chiamante

m-1 T s s è una locazione per spazzatura

m A m l'istruzione si auto-copia in ACC ;

la codifica di A è 11100; quindi ACC risulta < 0

m+1 G n jump to subroutine con ACC = codice(A m)

m+2 ...... punto di ritorno



routine chiamata

qui ACC = codice(A m)

n A k costruisce l'istruzione di ritorno

quindi codice(A m) + rr = codice(G m+2)

n+1 T p metti instruzione di ritorno nel punto di uscita p

....................................

.......................................

p punto di uscita; qui va a finire G m+2

perche` ci sia il salto bisogna che si arrivi in p con ACC negativo

The EDSAC subroutine library


The EDSAC subroutine library began to take shape from autumn '49 ....

Subroutines were classified by a letter indicating the group to which they belonged (eg. D for division, P for printing, etc.)

Eventually the library grew to contain nearly a hundred subroutines.

Debugging: getting programs right


By June 1949 ... I was trying to get working my first non-trivial program, which was for the numerical integration of Airy’s differential equation.

It was on one on my journeys between the EDSAC room and the punching equipment that “hesitating at the angles of the stairs”

the realization came over me that

a good part of the remainder of my life was going to be spent in finding the errors in my own programs.

M.V. Wilkes, Memoirs, 1985, p. 145



Funzionamento a passi

The EDSAC was controlled by five push buttons:

Start, Stop, Clear, Reset, and Single E.P.

whose purpose is self-evident except for the last.

The Single E.P. button caused a single instruction to be obeyed, which enabled a program to be executed one instruction at a time.

Post-mortems

A post-mortem - known in the United States as a terminal dump -

was the process of printing out a region of the memory after the execution of a program had been terminated.

A questo punto uno esaminava il dump, per capire cos'era successo ...



Checking Routines

The EDSAC pioneered the technique of interpretive trace routines .....

they were called “checking” routines.

Checkin routines were invented by the late Stanley Gill - the third author of Wilkes, Wheeler and Gill; he was then a research student and was later Professor of Computing Science at Imperial College, University of London.



The idea of a trace routine is that, instead of obeying the orders of a program directly by the control circuits of the computer, they are obeyed by an interpretive program or simulator. It is then possible to print out diagnostic information - ie. a trace - while the program is being executed.

There were several checking subroutines in the EDSAC library .....

Subroutine C7 is useful for checking control errors,

while C10 is most useful for checking numerical errors.



C7: Sequence Checking

C7 prints out the order-code letter of each instruction as it is obeyed.

This enables the flow of the program to be checked against the program manuscript ....

A particularly attractive feature of C7 is that it only interprets code from sections of the memory designated by the programmer......



C10: Numerical Checking

The C10 subroutine helps to trace numerical errors by printing the contents of the accumulator (as a long fraction) every time the user program executes a T-order.

Thus the printout will contain all the intermediate results computed in the program.

...............

Frankly, the C10 subroutine is quite painful to use, and it was used very much as a last resort when a numerical calculation would not give exactly the right results.

Numerical errors on the EDSAC could be extraordinarily stubborn ....



SUMMER SCHOOL

Beginning in 1950, the Mathematical Laboratory at Cambridge organized Summer Schools in programming for people inside the University and for other universities and industry.

The course was of a fortnight’s duration and during that period students were expected to write and get running some simple programs on the EDSAC.

Programs 1 to 5 below were all Summer School problems. They were all small, though not trivial, problems; for example they generally need to make use of the subroutine library, and sometimes scaling is required.

The remaining problems are more challenging......

.......................................

2 Read a sequence of 20 long fractions from the input tape and print the sum of their squares. (Note: Use subroutine R1.)

........................................

10 Highland Dancer



A demonstration program, now lost, displayed an animation of a highland dancer on the main-memory monitor tube. Write a program to produce an entertaining animation.

Bibliography

  • M. Campbell-Kelly, “Programming the EDSAC: Early Programming Activity at the University of Cambridge”, Annals of the History of Computing 2 (1980) pp. 7-36. (discusses the later development of EDSAC programming and includes a full bibliography)

  • M. Campbell-Kelly, “The Airy Tape: An Early Chapter on the History of Debugging”, Annals of the History of Computing 14 (1992), pp. 18-28.

  • M. V. Wilkes, Memoirs of a Computer Pioneer, MIT Press, 1985.
    (very readable ..... invaluable for understanding the EDSAC milieu)

  • M. V. Wilkes, D. J. Wheeler and S. Gill, The Preparation of Programs for an Electronic Digital Computer, 1951, Addison-Wesley.
    Reprinted as Vol. 1 of the Charles Babbage Institute Reprint Series for the History of Computing, MIT Press 1982. (out of print)

  • D. J. Wheeler, “The EDSAC Programming Systems”, Annals of the History of Computing 14 (1992), pp. 34-40.



База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка