prima passata - person.dibris.unige.it€¦  · web viewthe british scene - edsac. citando il...

24
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

Upload: others

Post on 13-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

The British scene - EDSACCitando 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

Page 2: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

EDSAC : Electronic Delay Storage Automatic Calculator

Wilkes cerca di inventare il meno possibile e di usare la tecnologia disponibileRiesce 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 1949Operativa: 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 ....

2

Page 3: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

What the Papers Said

A Don Builds a Memory -- Daily Mail, October 1947Short, 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 1949The 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 1949On 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.

3

Page 4: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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

4

Page 5: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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ò alprimo computer usato in commercial data processing : LEO

LEO = Lyons Electronic Office operativo nell'autunno 1951Poi vennero LEO I, LEO II, LEO III, .... e la LEO Computers Ltd

Citando Robert L. Glass

publisher/editor of The Software Practitioner newslettereditor 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.

5

Page 6: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

EDSAC 1949 - dettagli tecnici

Dettagli sulla versione maggio 1949, in aggiunta a quanto inRandell : The origins of Digital Computers - Selected papers

Fonti: A Tutorial Guide to the EDSAC Simulator, by Martin Campbell-KellyThe 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 logicobasato su quello dell' EDVAC, come descritto nel Draft Reportin 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 bitsmultiplier da 35 bitmultiplicand da 35 bit

infatti i numeri (interi o fixed-point) lunghi erano di 35 bit, quindiACC poteva contenere il risultato esatto di una moltiplicazione

6

Page 7: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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

Interi: in complemento a 2short : 17 bit long : 35 (= 17+ 1 [inutilizzato ?] + 17) bit

Razionali: fixed point, modulo e segno, short / long come soprail punto, implicito, si trovava dopo il bit di segno, quindiil modulo M era : 0 <= M < 1ad esempio : - 0.25 ?10100000000000000

bit non usato, segno, moduloI 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 inutilizzabilebit 11 è detto spare bit; secondo me deve essere sempre 0bit 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 istruzioniT p S dove p è una locazione che non serve a nullaA k S

7

Page 8: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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 programmiIl 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 DecLetter 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

8

Page 9: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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

9

Page 10: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

Initial orders (versione 1949 nota come Initial Orders 1)

istruzione 0 : si auto distrugge ....istruzione 1 : vediamo poiistr 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 0cod 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 0cod 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

10

Page 11: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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, 30Per 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 istruzioneAllora, eseguendo Initial Ordersnella cella 31 va a finire la codifica di T n+1 Squando l'istruzione 27 produce T n+1 S in ACC, allora abbiamo finito il caricamento del programmae si deve passare ad eseguirlo ......e, infatti, l'istruzione G ... quando ACC=0 non saltadunque si passa ad eseguire l'istruzione 31 ....

11

Page 12: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

12

Page 13: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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 ComputerWilkes, 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”.

13

Page 14: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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 chiamantem-1 T s s è una locazione per spazzaturam A m l'istruzione si auto-copia in ACC ;

la codifica di A è 11100; quindi ACC risulta < 0m+1 G n jump to subroutine con ACC = codice(A m)m+2 ...... punto di ritorno

routine chiamataqui ACC = codice(A m)

n A k costruisce l'istruzione di ritornoquindi 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

14

Page 15: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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 passiThe 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-mortemsA 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 ...

15

Page 16: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

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 CheckingC7 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 CheckingThe 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 ....

16

Page 17: Prima Passata - person.dibris.unige.it€¦  · Web viewThe British scene - EDSAC. Citando il libro di Williams: costruzione del Colossus ====> competenze elettroniche ++ Draft Report

SUMMER SCHOOLBeginning 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.

17