字幕表 動画を再生する 英語字幕をプリント We have here an emulator for the Cambridge EDSAC. It is a lot more user-friendly on this screen than it would have been initially when, remember, you are dealing with five hole paper tape. That's what your program went in on Your answers came back out on five-hole paper tape, which it was your job to put through a teleprinter machine, which chattered away, read your tape, and printed out the answers. Fortunately we have the printed out answers shown in front of us. Here is the standard display of this emulator, so handily written by our friend Martin Campbell-Kelly from the University of Warwick. You can download this for yourself, it's free to use, and just play with it to your heart's content. And it's very nice to have the opportunity to play with a really genuine early first-generation computer. >> Sean: We've been talking about John von Neumann or Johnny von Neumann >> DFB: Call me Johnny! >> Sean: Call me Johnny. Yeah! So EDSAC's being built in Cambridge? But how does it end up getting connected to von Neumann? Is that what we're going? >> DFB: Yes, that's right. It's the other way around of course - that the person who built EDSAC, Maurice Wilkes, exact contemporary of Alan Turing. Both got first-class degrees in mathematics. He was the one, Maurice Wilkes, who went to John Von Neumann's Summer School, in 1946, at the University of Pennsylvania, [in] the Moore School of Engineering. Poor old Maurice had such difficulties with raising the money, with getting his passport straight and all sorts of other issues, that he actually arrived four weeks late, for a six-week course! One has to remember, of course, in those days, it was not straightforward. You were talking about ships, you know, going via Iceland, and heaven knows where, and train journeys to finish off, down to Pennsylvania. But anyway, I think he must have had - what was the technology? - Roneo'd or Cyclostyled notes - when he got there. He got copies of the notes and was able to follow exactly what was going on, learned about the proposed von Neumann architecture, knew that there was going to be this thing called EDVAC - being built in Pennsylvania and he and all the other participants were more or less I think, invited to go off, do your own thing, support the cause of general purpose, binary-based, digital computers; all electronic, not electromechanical - for the inner electronics. And, in fact, it's worth saying something about this whole business about "What did it cost you to be all electronic in those days"? I would remind you that Tommy Flowers' decision, with Max Newman, to build Colossus out of thermionic valves - that's vacuum tubes for those of you still in North America ! - it did cost you. Yes, you could switch them on and switch them off. You could use them as logic elements. But boy did they consume electricity! And then, of course, you have to have air conditioning to get rid of the heat that they'd produced! All the time what held things up was you wanted to use them as switching elements, but you really paid the price in terms of power consumption. So Tommy Flowers and his special purpose Colossus machine - six kilowatts. EDSAC, now being rebuilt in Cambridge (correction: at Bletchley Park) The EDSAC rebuild should go live this coming summer, 2018. Watch out for that. A good time to visit the National Museum of Computing which is co-located on the Bletchley Park site. Power consumption of EDSAC? 11 kilowatts. For comparison: power consumption of ENIAC the gunnery-trajectory special-purpose computer 1946, University of Pennsylvania, USA. I bet you can't remember the number, Sean! It's horrifying! >> Sean: 20? >> DFB: 150 kilowatts! All of that using thermionic valves for the logic elements inside your computer yes that could certainly be done. The big problem was memory. There was really no obvious technology for memory. You get round it on the Colossus machine by saying well your data, which you want to remember, just cycles around on a continuous loop [of paper tape] The program - well that's easy, that's not on tape because that is such a special purpose machine you key in the program on switches - uniselectors - so your memory there (for your data) was paper tape. But if you didn't want paper tape whizzing round at 30 miles an hour what other options were available to you? And the answer is - not many. And as we'll find out, on EDSAC, with Maurice Wilkes coming out of a radar background, he knew that in the early days of radar, when pulses came along - and these are interesting pulses could it be an approaching German bomber - you wanted to not only get hold of the pulse but to hang on to it, and remember it, so you could analyze its shape and so on And the way they did that is the most amazing technology. It's called mercury delay lines. The bleep pulse that you get was put, basically, through a little loudspeaker so it went "bleep". But instead of transmitting through air, so you could hear it, it was transmitted down a column of mercury. Why? Because sound travels a lot slower in mercury than it does in air and at the other end there was a microphone, at the other end of your tube, which heard the bleep and displayed it on an oscilloscope screen for you. But then recycled it - took it back to the start of the mercury tube and sent it down again so you had a continuously circulating system that showed you what your pulses were and the idea was to use that same technology to represent the 0s and 1s in computer memory, which they did. It was not very satisfactory, in so many ways, but you just had to do your best. >> Sean: Presumably it deteriorate didn't it, this sound ... ? >> DFB: No, because when you detected it, at the other end, you amplified it before you fed it back again. So you could keep the purity of the pulse going for as long as you wanted to. That was the idea. So, the story continues. Maurice Wilkes came back to England and in a testament, really, to Cambridge's being fairly well-heeled and to their faith in Maurice and to their need to be at the forefront of all this stuff, they - by "they" I mean the University and the Mathematics Department at Cambridge - agreed to bankroll Maurice to build one of these new-fangled machines provided that when it was completed it could offer a service to the University. This is very different to what happened in most of the universities, where electronics engineers were just allowed to build systems where you [the engineers] just played with them, and didn't really offer a computing service to the community at all. They were just pure research machines. Maurice found himself a very good hardware engineer called Bill Renwick who was just excellent. You had to have this. You had to have a real devoted electronics engineer, who knew what they were doing, to get all of this working. When you look at it you've got this box - it's hardware, you've got to get it working. You've got to get instructions in it; you've got to make it work but you need a software person. And you need the world's first ever system-software person - and they'd better be good! Somehow these people seem to come along, as and when they're needed, I can never understand quite why. And the answer at Cambridge was a really talented person - who I did know but rather slightly - called David - David Wheeler. We can now say that as part of the celebrations this summer, when the EDSAC rebuild is switched on and works perfectly(!) ... To go along with that a very good friend of ours on Computerphile, Professor Martin Campbell-Kelly, developed an emulation of EDSAC and how it works. So, rather than talking in abstract about EDSAC let's get stuck in and run some programs on EDSAC and see what you're up against with a very genuine first-generation machine where you will program in the crudest and most brain damaging form of assembler you can imagine. And you've got to get it right. It is not easy to debug EDSAC programs. It can be done but you know it's hardcore stuff. You want to be a pioneer? This is what you get! I think what I'll do is first of all, just for fun, let's run some programs and get the feeling for how nice it is to mess about, even on a very early machine like that. For those of you interested afterwards what is of great computer science technical interest is: how on earth do you boot this thing up so it can read in your program? In other words it's not got a BIOS - it's far too early for that. But what was the equivalent of the BIOS? What was it that got you started? That you had to have there even to be able to read in a paper tape - well that's called Initial Orders - we'll do those later. For the moment we'll just accept that Initial Orders version 2 is the one that is relevant here. And I've used Initial Orders to load in a program that was written by an early pioneer called Sandy Douglas. Here's his name A. S. Douglas If I load in that program now by "Start". Here and this really is EDSAC but this was an oscilloscope screen. This is the so called `display' of the Long Tank, with a long tank of mercury which held roughly a kiloword - 1024 18-bit memory words were held in mercury. So it's like 1K words, a few Kbytes, that was your limit. OK, so once you got used to reading these oscilloscope screens - and remember this oscilloscope screen is not the memory itself it's `peeping' at the memory by having a little monitor, as it were, checking the pulses in the mercury tank and displaying them on the oscilloscope. And remember and give thanks for the fact that this LOADING PLEASE WAIT "EDSAC / User first Dial 0/1", now comes back at you, courtesy of Martin [Campbell-Kelly] in a clearly visible screen. In the good old days it would probably have come back to you on paper tape, or something, and you would have to go and print it off to get your results. But this is pretty well interactive. On this dial here, on the console, do we want EDSAC to go first or User to go first? Well, the game we're playing here is one known in the US and elsewhere as tic-tac-toe, known in the UK as noughts and crosses. But simple. I think everybody knows the rules and I think everybody pretty well knows that if you play optimally it's always a draw. >> Sean: I have a feeling there's a Numberphile [video] on it somewhere ... >> DFB: There must be a Numberphile on it somewhere Yes, you can always force a draw so should we do ... first of all we'll take the lead and force a draw? So EDSAC or User first? Well, we'll say User first so I dial 1. Now, let's what see what happens. Oh! look at that! The cathode-ray tube display has been altered by the program to actually show the grid that we're going to play tic-tac-toe on. And because it's me, the User first, it's now saying, to me, `dial my move'. Now, here's the key at the top [of the display]. Look, 9 8 7 6 5 4 3 2 1. Those are the areas on the tic-tac-toe board and, as we all know I think, optimal strategy is to grab the centre one first of all, yeah, and then EDSAC's responded by putting a 0 in at the top left. I'm going to respond by - knowing it's a number - to dial in 7. Now I should ... you think that's a slow response? Was EDSAC really that slow? Hmm! that is six times faster than EDSAC was. I've calibrated it. This emulator on this machine seems terribly slow but it's running six times faster than EDSAC did. Right at the very end I may allow myself, if you want to be shocked and horrified, to click the thing, up here, that says "Real Time". That will slow it down so that it really is as slow as EDSAC was ... >> Sean: Why don't we do that now? >> DFB: Let's do that now ... >> Sean: After you make your move let's see how slowly there Would there have been one of those dials .... that looks like an old telephone dial? >> DFB: It is an old telephone dial. And I think that was there for diagnostic purposes on the actual EDSAC, yes. We're trying to win this aren't we ? 9 8 7 6 isn't it? I put an X in there Otherwise the wretched machine's gonna win. Was that slower? >> Sean: Oh yes! >> DFB: I think it was, But look it's blocked me there. It's doing the right thing. So I put in an X at 8. There we go. >> Sean: It's definitely slower. >> DFB: Definitely slower, And good old Sandy's program has already told me, it's a drawn game. So let's load up from the library .. ah! Conway! OK, well I think we all know about Conway's game of "Life"? There are these sets of dots and there are various rules about a dot in the middle either been overcrowded - with too many dots around it - or getting all lonely and out on a limb, and dying off. But in the middle, if it's just got the right number of friends then they breed and they spawn off more things. It was a very popular invention by John Conway in ... was it the 70s or the 80s ? ... somewhere around there. And everybody was playing Life using pencil and paper methods, or using computers latterly of course. Now this [program] was not written actually at the time of EDSAC's unveiling in 49 - because `Life' hadn't been invented (!) But somebody, later on, with this simulator in in mind, and in view, has actually written Conway's `Life' to display here for us. So let us load this thing in. It's by Ian Gillman, written in 1998, and the rule is on this emulator, for those of you that download it, the program you are displaying is the one that will get loaded, and run, when you press `Start'. So just keep your program windows in the correct order, one on top of another, and the one at the top is the one that will load. So, we'll load it up with Start Takes quite a while to load things. It's quite a complicated program. Ah! now, it's started calculating now. This is the initial configuration; it warns you here [that] each generation takes about five EDSAC minutes. Now I have not put it onto real EDSAC slow time. I've put it on to six times faster simulator time. Again, all according to Conway's rules it will ... Look! It's gone! It's changed; new generation. So, I think my rule is about right. It is roughly 5 to 6 times faster here, because it's taking around about a minute. I just daren't put it onto real time EDSAC >> Sean: We'd run out of tape >> DFB: We'd run out of tape! But anyway so >> Sean: I can see a clock on the right that looks like it's going a bit fast is that .... >> DFB: I think that's trying to show you genuine EDSAC time. So, if on this simulator it's 5 or 6 times faster than real EDSAC would be it's therefore making the clock go six times faster, I think, to show you how many elapsed minutes it would have taken on EDSAC >> Sean: Down at the bottom there I can see a lot of flickering and flashing that's all the calculation? >> DFB: That's all the calculation. This is showing you - see, look - you've got a multiplier register in your CPU, you've got the thing you're multiplying by; you've got the answer which comes out in the accumulator. Even modern chips have an accumulator for your current arithmetical answer. Right? The SVT here is showing you the address of the current instruction and the actual bit pattern for the current instruction, that has been decoded and executed, is shown in the so-called order tank. So, that's the instruction register; that's the pointer telling you where from memory you've taken that instruction and it's a pretty minimal CPU. The thing we notice here is there are virtually no general-purpose registers, which is what you're given in a modern CPU. So I think that's a pretty good one actually to illustrate with. We can stop it off now. So I hope this has convinced a fair number of you - particularly those of you very keen on history of computing and low-level programming in general - that it's a testament really to the very spartan architecture of EDSAC - you know, cut everything down to the bare minimum; get it working; it's got to give a service. And that means that it has stood the test of time. It's worth rebuilding. People could finally ease relatively easy to do a good emulator for it and that in a sense has made it worthwhile to rebuild at Bletchley Park. So you can be part of this. Get hold of Martin's emulator. Enjoy yourself. Write ultra-low level programs for EDSAC. Oh! and remember when you're doing it that the actual pseudo-tape you type up in the end although on these program listings you're allowed to put comments on - because you're a weak human who needs to remind yourself of why you're doing that - when you actually key in the tape itself that backs this up there must be no comments, no extraneous characters, only white-space is permitted. So there you are, anyway enjoy yourselves. And the next video is basically saying how on earth do we get this thing to boot ?!