Core Rope Memory Built and Explained - F-J's Physics - Video 169

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
welcome back to the home lab and today I've got a really interesting demonstration and build to show you what we're going to look at is a really retro form of computer memory we're going to look at core rope memory [Music] so if you know a little bit about this sort of thing you might have noticed there's been a real Resurgence in interest in sort of retro forms of computer memory and particularly the types of memory that we used in the Apollo Mission and the guidance computer that they used and that computer used a very special form of memory called core rope memory curious Mark if you've seen his truly amazing stuff on YouTube he actually has some modules and with his team he shows how they work and how they actually did their job in the moon landings anyway what I thought we'd do today is have a look at how core rope memory works and try and explain the principles behind it why it was used for the moon missions and of course we need to build some Electronics to demonstrate how it works so counting away next to me here is my little cool rope memory circuit that I built to try and demonstrate how it works and the cores are here and I'll explain what they are and what they're made out of in a minute the memory is really interesting um this is sort of software that's actually Hardware in other words the data that's in memory is not the cores themselves but the data is actually these wires that either go through the center of a core or go around it and you can set this up so a wire going through a core can be indicative of a binary one and a wire missing a core can be indicative of a bit that's set to zero so what I've done is I've built a little circuit here that has some code stored in the ROM memory okay and I've got a little circuit here that makes the memory work that displays result of the memory and also addresses each bit of memory so we can actually get the data out of it so what we'll do now is we'll have a look at the principles of how core rote memory works so the key to understanding how this memory works and where it got its name from is it's built using some little rings of ferrite so that's iron powder that's sort of centered together to make a little ring and you can make these really quite large so here's a large one this is the size that I used for my demonstration but in the real computers we've got to get the scale right the way down really small so the little ferrite toroids or cores are so tiny you can really only see them with a hand lens or a microscope now just before we get into this in depth um I uh often call this rope core memory it's actually called core rope memory but the reason I call it rope core memory is it's a type of core memory that involves wires going through all these little ferrite rings so when you lie out on the table it can look like a rope and I do that to not confuse it with Magnetic core memory which are these kind of core planes and in fact these don't have the memory density that a core rope memory has um so what I'm saying is if I say rope core memory it's really my way of differentiating it from magnetic core memory so let's get started and explain how this thing works so I built a little core rope memory uh system here and it's a lot simpler than the one that went to the moon the Apollo guidance computer system um it does explain the sort of principle but if you're into that sort of Technology um you'll see that the one that was used for the Apollo guidance computer was rather more complicated they had uh rather more wires going through these cores and all sorts of different currents but we've got to start somewhere so I've built a fairly simple one to demonstrate the working principles so what did I want to do well I wanted to write some code into the core rope memory that would light up a seven segment display so the code that I needed was uh binary ones and notes that were going to tell me which segments of the seven segment display to turn on and if you know about these but I'll explain it later they light up by having different segments lit up so I have to light up these two LEDs and these two LEDs to get the number one and I have to keep all the other LEDs off so I've done them in pairs as a normal seven segment display would be so we've got the top row of the high side on this side the low side across the bottom this bit this bit and across so that's seven segments and what I needed to do was I needed to write some code into the memory that would know which LEDs to light up to create which number and then once I've got that code in the memory I then need to address those places in memory with a circuit here and what I I've done is I've set it up to address in order but it's actually addressing the data locations in reverse order so it's counting down which I thought would be quite a good sort of space sort of thing so now let's have a closer look at how we store the data in this bit of the memory so for a seven segment display that's going to count down from nine eight seven six five four three two one zero you've got ten different states there so that's one to nine and the zero and um to display it if you remember the seven segment display needs to light up uh correctly seven different parts uh depending on what number that we're showing Eight's my favorite because you just light up all of the seven segments so I can light up some of the segments or for eight I need to light up all of them which is seven of them so I need a binary word that has seven bits in it so uh this computer uses a seven bit word so here's the first bit the second bit the third the fourth later on in the build I had uh this is the fifth sixth and seventh and I made a mistake to make the wires go easily through these it's the first second third fourth fifth sixth seventh bit so I had to take it all apart and fix this part swap these two um around so if I want to um light up on the 77 display the number eight to do that I'm going to have to light up all seven segments so my binary word is going to be on on on on on on in other words seven ones in a string now think about that carefully that's not what one one one Etc is in binary it's just I've coded this so uh each of these lights up one segment of the seven segment display now we've got a seven bit word and we need to display 10 numbers so that's all nine including the naught so we need 10 lines of code now finally I'm addressing those in reverse order but I could use a circuit here that addresses them in any order I want so the code is hardwired here into the course and then this part can address whatever line or address space that we want so let's have a little bit of a closer look at how I've coded this so to code core rope memory you get one go at it and if you make a mistake and it isn't noticed uh in the production stage then that memory module becomes useless unless you can avoid um using uh that one line of code so the way it's coded is if we pass a wire through the center of the core that core will register a one or a binary on if a wire comes outside of the corner you might see the yellow wire here misses this first chord okay that means that that will record a zero so what you basically do is you lace wires in and out of the cores and every word will consist of one wire that takes a route through some cores and not through others so um I think it's pretty clear that if we want a whole string of ones we send the wire right the way through the whole lot if for some reason we want a string of zeros in our word we have a wire that just bypasses all the cores so you get the idea and you could go through a core not through a core through a core not through a call so that'd be one zero one zero Etc so the code is hardwired into the cause so what we need to look at now is how does it transfer that data out onto the data bus in the case to my seven segment display here so I'll just turn it on again um for some reason that I haven't worked out um the top two LEDs can be a bit dim at times but they are actually working so how does it actually do that because if you don't know about these things you'll notice that if wires are going through cause and over cause they're not electrically connected so there's actually no electrical connection at all between the data that you've stored in the memory and the output phase the connection is entirely magnetic so to explain how this works and how the cores work you need to know a little bit about electromagnetism and it's really useful if you know a little bit about Transformers you might want to watch my video on how Transformers work but to cut a long story short Transformers and these cores behave like little Transformers have two coils on them they have a primary coil and a secondary coil so the primary coil is actually the single wires that either go through a core or completely miss it in other words come outside it and the secondary coil is the red wire that you can see wound and that goes out onto the data bus it shows the data that we actually want so um to get these to pass data from the single wire out onto the data bus we need to magnetically connect between the two now if you know a little bit about Transformers if you put DC in a wire it will not create a changing magnetic field in that wire with no changing magnetic field that won't be picked up by this secondary coil so you won't generate an EMF in it you won't generate a voltage you can't drive any current it doesn't work okay so what I've got here is a circuit that creates a very high frequency AC signal so if we pass AC through one of these wires if it's going through the middle of a core it will have a changing magnetic field that changing magnetic field will induce a voltage in the secondary that's the red wires that voltage can drive a current and switch on some LEDs so the long tool and the short of it is that the cores act like little Transformers and if you think about it they have to be AC and secondly if a one misses a core even if it's got AC going through it and therefore a changing magnetic field that can't be picked up by the cause secondary winding so that will record a zero so in many ways it's a whole series of Transformers that have one turn on the primary and in my case I think it's about 35 or so turns on the secondary so if they pick up an AC pulse they output data as a one and if they don't pick up an AC pulse they output data as a zero okay so now for a quick explanation of all the electronics we've got here and it's not as difficult as you think so don't worry so clearly we've got nine volt power supply then I've got a 555 timer here ticking away seconds and the red LED shows it ticking away put into a decade counter and a decade count is fairly simple every time you put a pulse on it it switches off all the data pins on it bar one of them then when it gets the next pulse it moves the next data pin and the next so basically you get the first pin switching on then the second then the third then the fourth so it's a bit like counting up or counting down um as those pins become live I feed them into a Darlington driver I needed two of them because um these didn't have enough pins on them and a Darlington driver just creates a little bit more current um that then goes into a series of 10 transistors and those transistors uh switch on every time they get a pulse from the Darlington drivers so you'll get the first one switching on then switching off then the next one switching on Switching off so it'll slowly count through the transistors from naught to nine so we've basically got a series of electronic switches here that are switching on in order the first the second the third the fourth the fifth those can be used to switch on the first data line the second data line the third one in other words address the memory here and I'm addressing it in sort of reverse order the next thing is um how do we get the AC on these cores well fed into the transistors is another little circuit here it's the one with the blue LED 555 timer again and this one is operating at a very high frequency I think it was about 60 plus kilohertz and so that's producing an AC signal and that AC signal is fed to all of the transistors but will only pass through the one that's switched on by the decade counter so we get AC signals in turn passing through each of these data lines up through the lines that pass through the cause and so if the first data line is switched on we've got AC going through all of this some cores will pick up the AC some won't if the wires are on the outside and that will light up the appropriate segments on the seven segment display so we've got slow counting that addresses each memory line each memory space and then we've got high frequency AC which is used along those lines to create the signal that the secondary on each little core can pick up and finally um I'm sure you know if you know about Transformers but you might say well why do you need the cores in the first place well to create a really tight and really strong magnetic field it's always a good idea to build your Transformer my coils or your little coils onto something that will become magnetic as well so that will make the magnetic field stronger and more compact so we need less wires and less turns so that's why the little cores are here but the crucial thing is they mustn't stay magnetic as soon as the AC signal goes or if the a signals AC signal is going up and down they must magnetize demagnetize magnetize demagnetize and that's one of the main differences between core rope memory and magnetic core memory so well done on following that and I hope you've got a good understanding of how the circuit works now if that's all too much then just skip to the end of the video and I'll say goodbye and thank you for watching but what I'm going to do now is I'm actually going to show you the circuit diagram very quickly that I invented that I then built to make this circuit and then what I'll do is I'll show you how I actually put it together all the stages of trial and things working and not working to get the circuit finally working and then you'll see the build process right up to the end stage when we've actually got the whole thing built so um come and have a look at the circuit diagram and then why not stay with me and see the build process okay so let's now have a quick look at the circuit and don't worry if you don't understand circuit diagrams that much I'll break it down and simplify blocks so this is the circuit that provides the high frequency AC that will cause the cause to actually pick up the data so what we need is some power coming in then we need a 555 timer that's set up with the right components to tick very rapidly around 60 kilohertz the output from that 555 timer goes to the blue LED so you could see that was on it's actually flashing but so fast you can't see it and then what it does is it is wired directly to all of the wires going through the cores so that's 10 different wires going through the cores but no current can pass through the core wires the primary unless the transistor is switched on so each wire at the other end has a transistor I've just drawn one here but there'll be 10 transistors and each of those transistors is switched on in time from a decade counter it's another circuit that I haven't drawn here and if the transistor is switched on a current will flow through the primary and will register that line of code so that specific word as soon as the transistor switches off no current will flow through that particular wire so it doesn't read that line of code so that's the high frequency end now let's look at how we address each area in memory okay so now let's look at the circuit that addresses each memory space in time so we've got the power supply we've got another 555 timer set up with components to make it tick slowly to tick every second and I've got a variable resistor here that can vary how rapidly it ticks its output goes to a red LED here and that's the one you could see that was going flash flash flash then into the decade counter so that's the 4017 chip and what that will do is it will switch on this pin then that one then that one then that one in order get all the way down to nine so that's ten different pins and then go back again that then feeds into our Darlington driver I needed two of those because there aren't enough pins so I've drawn one here and the second one there and that just creates a little bit more current that can then turn on each individual Transformer so we've got uh 10 data lines coming out here address lines more correctly and we'll have 10 transistors I've only drawn one and if that transistor turns on we'll have a current AC current coming from our AC circuit going through our specific wire that we're addressing that's going through the seven cores and then that will be onto the core's secondary winding and that secondary winding will pick up that changing AC in the primary and we'll switch on the bits of the seven segment display that we want indicated then of course it goes to the next wire and the next one and the next one so it goes to all 10 wires in turn so it can light up the 10 numbers on the seven segment display in order and I've got it wired back to front so it counts down so it goes nine eight seven six five four three two one zero so with a circuit diagram sorted I started the build process and I'm always modifying the actual circuit diagram as I build because I find things work and things don't work so I always start off by breadboarding every little bit of the circuit so the first thing to do was to build uh the decade counter bit so I built that on breadboard and got it counting and I've got it counting at a one second rate so I was happy with that and I was happy that the Darlington arrays worked and I was happy that the transistors were beginning to switch the next job then was to play with a high frequency side and it took me ages and ages firstly winding the little cores and working out if one wire was going to pass through because we always use one wire on uh core rope memory um how many turns I needed on the secondary and I think I um got about I think it was about 35 or something like that it was a pretty tedious process winding red wire around each one of these and I knew I needed seven of them because I needed a seven bit word for each bit of the seven segment display so once I'd done that it was a case of playing with the other 555 timer to get an AC signal that would definitely work and cause the cause to magnetize and demagnetize so I played with a range of frequencies and finally came up with a frequency of around um 60 kilohertz maybe a little bit higher and that seemed to work quite nicely because what it meant was that if I put a 60 kilohertz signal on the data wire going through a core the core would pick up that AC signal and there was enough voltage generated enough induced EMF to light the LEDs and the interesting thing about the LEDs of course I know they're DC devices but of course if we're feeding AC to them directly they're just flashing very rapidly they're going on off on off they're missing the negative part of the cycle so um after the secondary part of the Transformer core winding it's straight to the LEDs there's no other electronics needed there was enough voltage to light the LEDs I've got some really interesting waveforms as well now those who are really good with these sort of circuits will go crumbs why didn't you design it this way or that way I was just messing around of an evening and I was just interested to see what would happen and I think it's probably due to a bit of inductance or something but the waveform will go got on the oscilloscope was really interesting and it was useful to have an oscilloscope to make sure that I could actually see there was an AC signal that it was high frequency and that it was pulsing um on and off when the decade counter counted so a lot of breadboarding and then slowly but surely I transfer those to circuit boards and these circuit boards I've used quite a lot they have a sort of grid on one side and then some copper pads on the back that I can solder onto finally these the sort of two circuits I built a connecting board and then I put the whole lot just onto a perspex sheet and actually I'm I'm really quite pleased with the result so now for the rather fun and somewhat tedious bit of actually putting the code into the Rope core memory so what I decided I wanted this one to do was to have code in it that makes it count down from nine a bit of a sort of um countdown or sort of launch indicator so uh this seven segment display I've built here um what I want it to do is to go nine eight seven six five four three two one zero now if you remember from my massive seven segment display um video um a seven segment display is made up of seven different sections which can be addressed independently and normally you've got one LED for each section but I've used two here and typically the top row is called a then B then C then D then e then F then G you can sort of see one I've drawn here so the first thing I want this to indicate is nine now for the number nine to show on a seven segment display we need all the segments lit up apart from this one here so that one there so a b c d e is gonna be off so a is on B C D E is off and f and g will be on so um I've just put some labels here on each of the cores and if you can remember each of the cores is wired to one of the segments as indicated on the labels so from the truth table what I'm going to have to do is I'm going to have to make sure that a comes on B comes on C comes on D comes on E doesn't come on f and g do come on so the way to do that is to take a wire and thread it through a through b through C through D not through e so the Y is going to come over the top or out of the way through F and through G and then that will be hard wired in so if ever you address that line if ever you sort of get the computer to ask what piece of data is on that wire it will always be one one one one zero one one in other words the wire will miss the E core and therefore will not end okay a voltage in the sort of winding of this and therefore e will be off so if you got the hang of that you can see I've got a truth table here and the truth table indicates what wiring am I going to have to do for each number that I want coded in the Rope core memory um so just to pick another couple of examples if I want the number one to be hardwired in on a particular wire which we could address at any time I'm just choosing to address them in order then we only need B and C on so y would come through b through C and would miss out a d e f and g so would never light those LEDs and all I've got to do now is put 10 wires into the system from these contacts I've made here which are going to be addressed one at a time and make sure that each wire does the right line of either going through a core and making that a one or a bit equal to one or missing the core and making it a zero so now to wire the whole thing up and to do that normally you just use enameled wire or just wire of any old color and it looks like a sort of bird's nest of wire everywhere but I thought for fun I would actually wire it with wires that were color coded with the number that we wanted so if you know the um sort of international resistor and capacitor color coding system Zero's black one is brown um two is red three is orange etc etc so I'll use those words to wire up each of the numbers so you can see which number they're actually trying to light up but of course it's not the color of wire that makes a difference it's whether the wire goes through a core or around it registering a one or a zero on our rope core memory okay so let's do the zero first I don't know why I've chosen zero first but it's probably because the black was there so for zero I've got to go through a b c d e f but not g so we're not going to light up that middle one there to make a zero so so um I'm not too worried about how neat this looks um not such a bad one to do this so through a through b through C through D now because it's an AC signal obviously because these are like little Transformer coils it doesn't matter actually um too much um how the wire goes through whether it goes through from the left or from the right so here I am wondering whether I've cut off a piece of wire that's um long enough for this I think it is trying to talk and do this at the same time gosh is that possible so what have we not going to go through we've not got to go through G so uh we'll go over the top of G through e and through F and then come back to the line that drives that um Port there from the little board here so if I cut the wire off and put it in there we've now coded uh one one one one one one one zero into our rope core memory and that never mind what we do with the rest of the electronics that remains coded so um that's why this memory retains the coding you've put into it even if it's been switched off for years and years and years and I actually Wonder uh what's happened with the Apollo rope core memory that still will contain its wiring so will still contain the code it had when it was first built okay so there we go um that is zero uh coded into our rope core memory now let's do all the other numbers okay so there we go that's uh zero one and two wired up and I just hope I've got them through the right course but we'll find out fairly soon it's really tempting I really want to turn it on now and and test it and that's actually a good thing to do um to see that I haven't made any mistakes but I think I'm going to leave it right until the end when I've um wired all of them up and then switch on see how we've got on and respect to um the sort of girls and women who did this uh back in the day for the Apollo missions um it was nearly always women and um sort of young women at that period of time um I suppose because they were considered to be very reliable and very very Deft with their fingers and hands or it may just been a sort of um a bit of an unfair division of labor sort of thing uh but they were obviously putting through hundreds and hundreds of wires um not just the 10 that I'm doing and the other thing that was really important uh was that all the wires were wrapped up and um really rigid and with a bit of flexibility to make sure that they be um safe in a launch configuration with the whole thing being shaken and vibrated but mine I'm just going to leave them um sort of open and looped around like this I think um there's no point in tying them all down neatly there's one other thing that's worth saying rope core memory so um I can see the core I can see that we've permanently memorized bits in these calls but where's the Rope bit well the Rope bit's really clever that if I extended these brown wires to the seven segment display and put the seven segment display on a completely different board then we'd have wires going through the cores and we'd have wires uh from each of the sort of secondary windings on the course going off to the seven segment display so the whole thing would just be held together with wires so in other words it would look like a string of sort of beads A String of Pearls they often referred to in other words a rope with beads on it with wires coming in which is for the sort of primary side and wires coming out which is the secondary side and then you could bend that and twist it and fit it into the shaped box that you wanted and then normally they potted it in so poured in a kind of resin to keep it all in place so about an hour later and we've done uh zero one two three four five and six the blue and I just wanted to show you at this stage before it's completely wired up one of the wonderful things about rope core memory is that you can actually visibly see the programming in it now I know that's obvious if you've been following what I'm saying but if you have a look at where we've got to now the blue blue down here which is six and the green there which is five don't need to light up section B on the seven segment display so this one here and on the truth table you can see that four five and six and we have a zero so um you can actually see the wire Miss core B so you can visibly see the fact that a zero don't light up is coded into this section and the wires do thread through a c and d so you can see that you definitely need to light those up so I think it's wonderful that you can actually visibly see the code it's not buried somewhere in Silicon it's actually a physical thing wired into the Rope core memory okay so here's the one I've been looking forward to for a while it's eight and eight dead easy to do because you have to light up all seven segments on the seven segment display to make an eight so uh the wire just goes through all the cores and um whilst I've been doing this I've noticed I've made a few mistakes and I sort of managed to sort them out but um I wonder whether the uh women who made these things back in the day for the Apollo launches whether they ever made any mistakes uh I think their work was checked and double checked because obviously they couldn't afford any errors so let's get eight wired up and then one more to go and then we're ready to test it okay so that's eight done uh the one that goes through every single course so that was fairly easy to do and I'm reminded and I forgot to say that of course you have to specify uh your course correctly because if you do more and more programming and have more and more lines you might run out of space through the center of each core so I think I'm yeah I'm okay here there's plenty of room um so that just reminds me to wire up nine and then we fully programmed our rope core memory so I do hope you enjoyed that video on core rope memory and you understand a little bit more about how it works if you do you're some of the way to understanding how the memory worked in the Apollo guidance computer anyway this was a fun build and I enjoyed doing it um took me it didn't take too long actually a few nights and I always build things in modules I'm sure I'll be doing another thing a bit like this at some stage and maybe if you're interested I should do a video on magnetic core memories sometime anyway thanks for staying with me I'll be making another video soon and I look forward to seeing you then seven seven six five five four three two one zero [Music] foreign [Music] mm-hmm
Info
Channel: Anthony Francis-Jones
Views: 36,344
Rating: undefined out of 5
Keywords: Anthony Francis-Jones, Anthony Francis Jones, FJ, F-J, FJ's Physics, F-J's Physics, FJs Physics, F-Js Physics, Fun experiments, home experiments, Wrekin, Wrekin College, GCSE, A Level, A Level Physics, GCSE Physics, Ideas for school physics experiments, Physics Experiments, Ideas for physics experiments, Apollo missions, Apollo Guidance Computer, AGC, Rope Core Memory, Core Memory, Electronics projects
Id: WBHdNpAC7X4
Channel Id: undefined
Length: 37min 6sec (2226 seconds)
Published: Tue May 09 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.