Advent of Computing - Episode 77 - Magnetic Memories

Episode Date: March 7, 2022

It's no secret, I'm a big fan of memory. Not only is memory crucial for the functioning of a computer, it's also plain weird. This episode we are looking at magnetic core memory; a technology that de...fined computing for more than two decades. We'll be talking about how it works, the impacts of ferrite, and the surprising controversy surrounding it's creation. Selected Sources: https://archive.org/details/bitsavers_datamation_31792007/page/n161/mode/2up - Datamation coverage of the patent disputes http://johngustafson.net/pubs/pub57/ABCPaper.htm - Recreation of ABC https://amhistory.si.edu/archives/AC0196_wang701029.pdf - Wang Oral History http://www.columbia.edu/cu/computinghistory/core.html - Diagrams and photos of magnetic cores

Transcript
Discussion (0)
Starting point is 00:00:00 What's the most important part of a computer? And I'll let you know that this isn't some kind of trick question. The answer isn't the users we met along the way. So how would you go about answering this? There's the snap answer that the processor is obviously what matters. That's where all the, well, computing happens. Thus, it has to be the most important component, right? Computing happens. Thus, it has to be the most important component, right? Or you go further afield and say that the real crux of computing comes down to input-output controllers. I mean, what's the
Starting point is 00:00:33 point of a computer if it can't take inputs and produce outputs? Without that, it's just a very expensive box. I could also see an argument for mass storage. The ability to retain data, to store information for long periods, is crucial to computing. It's on par with the importance of the written word for humans. While that's all well and good, I do have my own favored contender for this spot. I think memory is, by far, the most important and most crucial component of any computer. Now, I'll wait for the gasps to die down before I continue. This is partly from my perspective as a programmer. When you look through any code, it's really plain to see that most lines are dedicated to dealing with memory.
Starting point is 00:01:23 You assign variables, you manipulate data structures, you build up arrays. That's all information held in memory. In that sense, the processor is really just a tool for dealing with data somewhere in RAM. But I think this goes deeper. Nearly every computer since time immemorial has treated memory in the same way. From EDZAC on, you're given a pile of data organized into numbered locations. Each location holds a single number. We have over 70 years of an unbroken tradition here.
Starting point is 00:02:00 I think that speaks to something fundamental about memory. Computers have radically changed. Processors are totally different beasts in the 21st century. But our conception of memory has remained relatively constant. However, that's just how we think about and access memory. The underlying technology, what actually stores the bits. Well, that's a much more turbulent story. Welcome back to Advent of Computing. I'm your host, Sean Haas, and this is episode 77,
Starting point is 00:02:42 Magnetic Memories. Today, I'm going back to right or wrong that my past self made. Last year, I produced an episode called Mercury Memories that discussed delay line computer memory. Now, when I started to research for that episode, my outline had a different title. I had intended to discuss magnetic core memory using delay line memory as just an example leading up to the main topic. But you know how it can be sometimes. Things kind of got away from me. That episode ended up being all about Mercury
Starting point is 00:03:19 with no discussion of really anything magnetic. So I'm back to tackle magnetic core memory again, and this time I'm going to do my best to stay on topic. Historically speaking, computer memory is a bit of a strange beast. Well, maybe sometimes it's more of a bite. Anyway, once we figured out that logic elements could be used to construct computers, that was kinda it. We've basically stuck to that technology ever since. In total, there are two, maybe three actual hardware approaches that we've taken to
Starting point is 00:03:55 implement logic-based computers. You have your vacuum tubes, transistors, and to a lesser extent, some machines did use relays. And that's it. Survey done. Memory is a different story. Just to rattle off a list, we've tried ring counters, mercury and acoustic delay lines,
Starting point is 00:04:17 capacitor drums, magnetic drums, electrostatic tubes, magnetic ferrite cores, and finally, transistorized memory. That's really just a cursory list. Each entry has its own variations and subcategories. Designing and building a computer, yeah, that's hard. But it turns out that memory is another step up. Memory systems carry with them a very particular set of requirements that,
Starting point is 00:04:44 in all honesty, just suck to deal with. The way I see things, memory is the real heart of a computer. Sure, the processor is cool and all, but without memory, you're not getting anywhere. You want to have as much memory as possible, and you need it to be fast and reliable. is possible, and you need it to be fast and reliable. Each new technique that comes along has claimed to address at least one of these three main points, scale, speed, and reliability. All have had varying degrees of success. Magnetic core memory is somewhat unique in the roster because of its success and longevity. For a period of two or so decades, core memory was the default memory option. It was cheap and getting cheaper all the time. It was fully random access and, perhaps
Starting point is 00:05:35 strangest of all, it was non-volatile. Core memory was so stable that it retained its data even after the computer was shut off. Magnetic core memory also happens to function in a way that's not entirely dissimilar to magic. Well, it's magic if you don't know the physics going on. A plane of this memory is woven like a fine cloth, composed of insulated wires and tiny ferrite beads. It's one of the components of old mainframes that I think is truly beautiful. A plane of this memory held up to the light will actually shimmer. And to top it all off, it's what makes a computer actually work. I don't know, I just think that's so cool.
Starting point is 00:06:21 With that, I think it's time that we actually try to shatter some of this magic. We're going to be running down the history of magnetic core memory, how it works, why it was better than competition, and why it was developed in the first place. Best of all, we'll get into some of the controversy surrounding these sheets of shimmering copper and ceramic. To start with, we're going to need a quick brush-up on the purpose of computer memory. This might be a little bit of a review, especially for long-time listeners, but I promise it's worth the trouble. Fundamentally, memory is where a computer stores all the data it needs to operate on. To be 100% clear here, we're going to be sticking to the von Neumann architecture today,
Starting point is 00:07:05 so that means that memory is where code and data both live. Sorry, all the Harvard nerds out there. Memory is usually connected directly to a computer's processor, or at least there's a very short path between memory and processor. The computer's instruction set, the actual instructions you use to build up a program, most often revolve around manipulating that memory. If you write much assembly language, then you probably already know that most of your code is taken up by shuffling around bits in memory. That is exactly what I mean when I say that memory is the most critical part of a computer.
Starting point is 00:07:44 How a computer actually accesses memory can vary a little bit from machine to machine. In general, memory is broken up into addresses. Each chunk of memory, usually called a byte or a word, is given a numeric address. Addresses start at zero and work their way up from there. I'm saying a lot of mostly and usually's here because, especially early on, there was variance between computers, but that's the general rundown. Memory is important, it's wired directly into the computer's digital brain, and it's accessed address by address. The astute of you may have already drawn some conclusions from this description. The easiest is that you want memory access to be as fast as possible. If your computer
Starting point is 00:08:33 is going to spend most of its time reading and writing memory, then those access times will be the major bottleneck of the system. It's no good having a computer that can perform an addition in 10 milliseconds if it takes 100 milliseconds to read in a number from memory. That just means your computer takes 100 milliseconds or even more to add numbers. It could take a lot more depending on where all the numbers in question are. A corollary to this is the idea of random access. Nowadays, the word RAM and memory are pretty much synonymous, but you have to be careful with your language when you're dealing with the historic context. RAM stands for random access memory. Memory where you can access any address at any time, assumedly with each access
Starting point is 00:09:27 taking the same amount of time, regardless of the address you call up. Now, here's where things get tricky. RAM sounds like a spectrum, with RAM as the fanciest side of things. On the other end, we have sequential access memory. Those are memory devices that store data one bit after the other and only allow access in a set order. Tapes are one easy example to turn to. If you have a freshly rewound cassette, then it will start off playing the first song on the tape. To get to the final song, you have to either play or fast forward through an entire side of the cassette. The same holds true for digital tapes used with computers. You're in for a variable amount of
Starting point is 00:10:23 waiting depending on where your data is actually stored. Shift registers are a more memory-like example of the sequential end of the spectrum. These circuits will happily hold any number you pass them, but they only take one number at a time. What's worse, you can only get back one number at a time. These are usually implemented such that the first number in is the first number out the other side. So, once again, you end up having to wait for your data to come around. Delay lines, mercury or otherwise, are where we start seeing the spectrum truly forming. Once again, I highly recommend checking out my earlier episode on mercury-based memory. I think these are fascinating technologies. In short, a delay line works by, well,
Starting point is 00:11:13 delaying a signal down a line. In the case of mercury delay lines, data was bounced down a pipe filled with mercury as an acoustic wave. No matter how much I read, these will always be at least a little magical to me. On its own, a delay line is sequential memory. Data goes in, it comes out. You have to wait around for the right bits to come out. But here's where the strict black and white image of memory breaks down. There were usually two tricks pulled to make delay line memory practical. First, data was recirculated through the mercury tubes. Once a bit came to the end of the tube, it was read, amplified, and then pushed back through the tube's input. That's still sequential, but now you can wait around for a cycle. That's a small step up. The second trick
Starting point is 00:12:07 was that delay lines were usually grouped into banks. This was done in a way to minimize worst case access time. There are all kinds of schemes that were used, it's too much to get into here, but in general, lines were organized to make them as random access-like as possible. Actual data was then accessed by address, just like with any other type of memory. The conversion from addresses to waveforms was done by specialized hardware. This puts practical delay line memory systems somewhere between purely random access and purely sequential memory. Now, no matter how cool mercury delay lines seem, there were major issues with the technology. For one, it's just plain complicated to implement. You have to pull all these tricks
Starting point is 00:13:00 just to make it usable. There's also the little matter of toxicity to deal with. Mercury on its own isn't toxic, but the vapors are. And delay lines had to be held at a relatively high temperature to keep the acoustic properties constant. So, you know, it's a tube of hot mercury that isn't the safest thing in the world. Suffice to say that mercury delay lines weren't the pinnacle of computing technology. So what were some alternatives? In general, any kind of memory has to exploit some useful property that allows a material to hold information. In the case of delay lines, it takes time for a wave to propagate down their medium, so that property could be exploited to make longer-lasting forms of memory.
Starting point is 00:13:54 So if something can retain any kind of value for any amount of time, well, that might make a good starting point for memory. Acoustic lines are cool, but electromagnetism, now, that's really where it's at. Legally speaking, the first electronic digital computer was ABC, the At-Nassoff-Berry computer. It was designed in 1937, built in 1942, and, strangely enough, in the 70s, a court ruled that it was the first computer. So hey, who am I to argue with court-mandated history? The ABC was also the first computer to use electronic memory, and oh boy, this one is a doozy. The ABC was more of a primordial computer than anything. It was a device built for solving linear equations automatically. This was done using vacuum tubes and logic circuits, while the actual numbers being
Starting point is 00:14:52 worked on were held in memory. That memory was made up of a spinning drum studded with capacitors. This is the origin point for so-called drum memory. On the surface, that may sound a little wild. It honestly is, but the science here is sound and pretty cool. We're going to be doing some E&M, some electronics and magnetism here, so be warned. A capacitor is a simple device. It's just two conductive plates separated by a non-conductive membrane. If a voltage is applied to those two plates, the capacitor will charge up. One plate will get more negative compared to the other. Thus, you end up with a drop in voltage across
Starting point is 00:15:39 the plates. That difference will remain even after you stop supplying power. So, in practice, a capacitor will work like a tiny rechargeable battery. Fill it up, disconnect it, and then you can use it to unleash a quick jolt at your leisure. On its own, that sounds an awful lot like memory. Just say that, oh no, I got shocked by a capacitor is 1, and great, I did not get shocked is 0, and you're done. You now have a one-bit memory cell. A bit on its own isn't super useful, so you have to scale that up somehow. At Nassoff's solution was to arrange a bunch of capacitors on a drum.
Starting point is 00:16:23 Once again, this does sound a little non-obvious, but it actually makes for a pretty clean solution. This drum had 32 bands, each with 50 capacitors in them. Each of these capacitors was then connected to a contact on the surface of the drum. A set of brushes, one for each band, were tensioned against the drum, so as it spun, each capacitor would be contacted in turn. The result is that, with very careful timing, the ABC was able to access any capacitor on the drum. Each band represented a 50-bit number, so in practice, a full rotation let you read out each number that
Starting point is 00:17:06 was stored. The actual reading and writing was a bit more complicated, to say the least, but hey, that's memory. Storing a value here is the most simple operation. Just send out an electrical pulse to the proper brush while it's in contact with the proper capacitor. As long as the pulse is synchronized with the drum's rotation, then you're good. Reading is actually the weird operation here. You see, the read operation is destructive, meaning that reading the value of a bit changed that bit's value. The oh-no-I-got-shocked-by-a-capacitor state actually discharges the capacitor. With ABC to read a value, the computer attempts to make a discharge. If there was a pulse, in the earlier case if there was a oh-no-I-got-shocked,
Starting point is 00:18:01 then that bit had a value of 1. Otherwise, it had a value of 0. That means that reading alone would actually reset the entire drum down to a big fat 0, which isn't really good. That means you lose all your data. The trick was to immediately regenerate the capacitor. That's to say, if the bit was set to 1, then the capacitor would have to be immediately recharged. That's perfectly possible, you just have to be careful about the timing and you're good. This regeneration process actually had to be carried out regardless of what other memory operations happened. Capacitors will actually slowly lose their charge over time, so to keep data stored on the drum intact, they have to be regularly regenerated.
Starting point is 00:18:52 This worked just like a normal read. Get the value of each capacitor, then supply a little extra current as needed. Unsurprisingly, there are a lot of issues with this type of system. Unsurprisingly, there are a lot of issues with this type of system. There is a fantastic paper written by John Gustafson that covers a reconstruction of the ABC that was carried out at Iowa State University in the 1990s. The paper hit on a few major issues encountered when recreating this memory system. Synchronization between motor and brushes here is key, and was apparently difficult to attain. There is also a relatively high error rate. As Gustafsson puts it, quote, The likelihood of a one-bit error increases rapidly beyond about five equations in five unknowns. And this may be the source of the debate, did the Atnasoff-Berry computer ever work?
Starting point is 00:19:45 From hands-on experience, we can now give the answer, yes. But reliability problems prevented it from solving systems large enough to fill its memory. It was still much faster and more reliable than hand calculations, which is what Atnasoff had hoped to achieve. End quote. So, the ABC did have working memory, you just had to be a little bit careful about its integrity. I think my favorite part of Gustafsson's paper is his note that capacitor drum memory helped to make the ABC something of a death trap. This is something I never expected to hear. The computer was a totally experimental device.
Starting point is 00:20:26 This was very new, very raw and untested technology. It didn't have a fancy case, per se, and in some places it wasn't very well electrically insulated. Gustafsson points out that the machine ran mainly on pretty high voltage power. Vacuum tubes draw a lot of electrons just to work. Better still, there were large parts of the device that weren't properly shielded or covered. You could get a good jolt if you weren't careful. Now, to top it all off, we have the quickly spinning drum of doom. The capacitor contacts weren't flush with the drum's surface. That's something that I just assumed would be the case, but I assumed wrong. They were actually tiny studs
Starting point is 00:21:13 that stuck out a little bit. There was a cover over the drum, but it was removable. In practice, I'd imagine it was often off for testing and maintenance. Get too close and you'll get grabbed by the machine, then pulled in and given a shock for good measure. I think this is reason enough never to wear a tie around a computer. There is precedent. Believe it or not, that actually brings us up to a grand total of two dangers around early computer memory. You could get pulled into a
Starting point is 00:21:46 capacitor-based hand mangler, or maybe you could just receive a nice lungful of hot mercury vapors. Now, as awful and frustrating as the capacitor drum solution sounds, there are some good ideas here. Mainly, the spinning drum. I know that may not be where you thought I was going. A drum actually offers an interesting advantage. It gives a way to quickly sweep through a set of memory elements in a way to do that cyclically. This kind of access can be accomplished with circuits, but in the early era of computing, that would mean more vacuum tubes. That could be, early era of computing, that would mean more vacuum tubes. That could be, one, very expensive, and two, it could be delicate. Vacuum tubes aren't a perfect solution. There's a reason that we stopped using them. So a quick and easy step would be to ditch capacitors. And believe it or not,
Starting point is 00:22:39 there was already a solution in hand. As early as 1932, IBM had an alternative. This was a device called a magnetic drum. It was invented in Austria by an inventor named Gustav Tauchek. The device was patented, but as near as I can tell, didn't see any real use for a number of years. We don't see full application of magnetic drum memory until the 1950s and machines like the Harvard Mark III. As such, I'm going to jump us right into the design for those more common drums. In general, a magnetic drum operates in the same way as ABC's capacitor drum. The main difference is the medium and how bits are actually read and written. Instead of relying on capacitors, these drums were coated in a magnetizable medium. Chemically, this is similar
Starting point is 00:23:33 to the material used in cassette tapes. Instead of brushes, reed right heads were used. Once again, this is basically the same technology used by magnetic tapes. What brings this all together was a wonderful material called ferrite. What makes ferrite so special, you ask? Well, it has this interesting property known as hysteresis. In simple terms, hysteresis means that some observable property of a material is dependent on its previous state. That's nice and vague in general. This can be applied to a lot of materials and systems,
Starting point is 00:24:12 but for us today, we only care about magnetism. Now, that comes in a few different flavors. I told you, we're getting into the E&M world now. Ferromagnetic materials are able to form permanent magnetic fields. By introducing a ferromagnetic material to a strong enough magnetic field, you can magnetize that material. You basically bake in a new magnetic alignment. This is a really common and easily observed phenomenon. If you rub an iron nail on a magnet, the nail will become a weak magnet itself. That's just some good ol' Ian-Immon action.
Starting point is 00:24:54 The hysteresis here is the fact that ferromagnetic materials will retain their induced magnetic field. The nail doesn't start out being magnetic, but once you give it a little bit of inducing, it is. In other words, you can store information this way. That nail you just magnetized? Well, think of it as a single bit of memory that you just flipped. If we had enough interns with enough nails and magnets, in theory, we could construct a more stable form of computer memory. Of course, there are better options. For an example, look no further than magnetic tapes. Even an audio cassette will work.
Starting point is 00:25:38 A tape is just a long strip of some flexible material, usually plastic, that's been coated or embedded with some magnetizable material. The usual choice here is ferrite, a mix of iron 3 oxide and trace amounts of other metals. Now, this is where we hit some confusing terminology. I'm going to do my best to keep this as clear as possible. Ferrite isn't ferromagnetic. It's ferrimagnetic with an I. The technical difference has to do with how dipole moments are arranged at the atomic level, but that's more physics than we need to get into. In practice, the difference is this. Ferromagnetic materials can form permanent
Starting point is 00:26:27 magnets, while ferrimagnetic materials can be spontaneously magnetized. The example of a bunch of interns rubbing nails on magnets actually doesn't work for this exact reason. Once a ferromagnetic material becomes magnetized, that's kinda it. You have a magnet. There's no going back, at least not without a lot of energy. Ferrite and similar ferrimagnetic materials, on the other hand, can be flipped and flopped back and forth all you want, and the flipping and flopping is really easy. This is the core principle that makes a cassette tape work. The tape head, the part that reads and writes a tape, is a tiny electromagnet. It's actually a really specialized type of electromagnet.
Starting point is 00:27:17 Internally, the head is a broken toroid. It's a tiny donut with a nick cut out of one side. That broken segment is then filled with a non-magnetic material, like gold, for instance. A coil is then wound around the magnetic part of the toroid. When an electrical impulse is sent into that coil, the head will generate a magnetic field across the dimagnetic material. So you end up with a very directional electromagnet. It's something like a magnetic scalpel. Bringing that sharp point up to a tape will magnetize
Starting point is 00:27:54 just the region it's near. Crucially, adjacent regions on the tape are left unaffected. The reading process is a little more complicated. I mean, that's kind of been the theme of this episode so far. For this to make sense, I need to share a little bit more physics, so I'm going to give you a rule of thumb to keep in your head for the remaining part of this show. A changing magnetic field will generate an electric field around it, and a changing electric field will generate a magnetic field around it. Relativity applies here, so the change of the field just has to be relative to some observer. That's a rule that we can exploit, and in general it's just a good rule to know.
Starting point is 00:28:45 On a cassette tape, data is encoded as a series of differently magnetized regions. If you stand still and the tape's just sitting there, you got nothing. There's nothing going on. There's just some weird magnetic fields around. But if you watch as that tape spools past you, you would see a very small changing magnetic field. Put a tape head close enough, and it'll be able to pick up a small induced electric field. Thus, it's able to read data. In the case of a cassette tape, this would be audio data, but it can just as easily be digital.
Starting point is 00:29:25 That's the very basic rundown, so how can we turn this into memory? Once again, the ability to cyclically access data is key. Drop the tape, put the ferrite on a drum instead, and you're good to go. I'm serious here, that's pretty much how a magnetic drum works. The drum is coated in a layer of ferrite or some other ferrimagnetic material. The drum is then divided into bands that will be used to store data, with each band further subdivided into regions for each bit. The bands then each have their own head, which is, for all practical purposes, identical to the tape head I described earlier. Data is then accessed using the same kind of timing and synchronization that was
Starting point is 00:30:12 used in ABC. The mechanism of action here is a little more complicated, at least the physics gets more complicated, but magnetic drum memory has some major benefits over capacitor-based memory. drum memory has some major benefits over capacitor-based memory. Read operations are non-destructive. The head just checks for a change in magnetic flux. That means there's no bit flipping and no need to regenerate bits after a read operation. Better still, magnetic drum memory is non-volatile. Once set, a bit will hold its value until you write to it again. These drums never need a refresh. The other big plus here is that component costs are relatively low. You don't need thousands of capacitors, you just need a single drum with a good coat of paint. But of course, there are issues. All drum memory, no matter what it uses to actually store data, is still mechanical.
Starting point is 00:31:06 It relies on physical movement. And, say it with me, mechanical devices limit flexibility. It's a workable solution, sure, but it's not the best solution. We also have to contend with the fact that drum memory isn't 100% random access. We still aren't dealing with real RAM. You have to wait for the drum to spin to the right location to read the right bits. What if we could rebalance these pros and cons? What if we could drop the motion, keep the non-volatility, and somehow make it truly random access. The first big step away from this archaic spinning memory would take place in 1947 at Harvard. Dr. An Wang immigrated from Shanghai
Starting point is 00:31:55 to the United States after the Second World War. The doctor part happened very shortly thereafter when he graduated from Harvard with a PhD in applied physics. Now, there are a few routes to take after graduation. You can go into industry, become a professor yourself, join up with a research outfit, or become a research fellow. According to folklore, Wang had first tried to get a job in industry. He applied to work at Hughes Aircraft. IEEE put it this way in A Profile of the Good Doctor. After seeing the pile of security forms that Hughes Aircraft sent to him in reply to his job
Starting point is 00:32:33 inquiry, he walked across the Harvard campus to see if he could get a job in the Harvard Computational Laboratory. At the time, computers were still really new. I can't stress this enough. Just three or four years ago, Grace Hopper had been assigned to the same lab to program one of the world's first computers. So Wang didn't know much about computers. Very few people knew anything about computers. Digital machines were still primordial, just starting to become usable. They were in an early state of flux. When Wang entered the lab, Howard Aiken had already completed his work on the Mark I through III computers, and was laying out designs for the Mark IV. If anyone could be called the quote-unquote old guard in this field, Aitken was a prime candidate.
Starting point is 00:33:27 He had been there for the birth of the discipline. But computing was never a one-and-done kind of revolution. That's what I find so compelling about this early era of the field. Even after building three working machines, Aitken was an advocate for radical change. One of the biggest changes on the docket was memory. As Wang recalled in an interview with the Smithsonian Institute, quote, After I joined, then-Professor Aiken indicated, well, this was in the early stages of computer development. There's a magnetic device. Can you find a way we could store some information in a He continues,
Starting point is 00:34:11 But mechanical motion is not very good, so somehow nobody knew how to record and play back without mechanical motion. End quote. The Mark IV would initially use the magnetic drum memory that I've so carefully described. Despite its flaws, magnetic drums were a viable option. But its flaws were still very evident. So, in 1947, the freshly minted Dr. Wang had perhaps the most impactful project possible dropped on his lap. Luckily, he was more than up to the task.
Starting point is 00:34:48 Wang's breakthrough used the same principle that made magnetic drum memory work, just applied in a different way. A changing magnetic field will induce an electric field and vice versa. That and the fact that ferromagnetism has this strange hysteresis property. The actual starting point for Wang's work almost comes from left field. Given all these key hints at a solution, where would you begin? Maybe with a magnetic drum? Maybe with modifications to the pickup method? Well, Wang started with electrical transformers. Now, to be totally
Starting point is 00:35:28 fair, this isn't exactly left field if you're familiar with the innards of a standard transformer, and to be completely clear, we aren't talking about the robots. Those already have memory tucked away somewhere. An electrical transformer consists of a core, usually a squared-off donut of iron, and windings. The intended use of a transformer is to adjust voltages, you know, transform their value. Windings are just coils of wire that wrap around part of the transformer's core. Most often, you'll have an input and an output winding, each with a different number of turns. That ratio of turns dictates how the voltage changes across the transformer. It's all due to more complicated E&M that I'm not going to get us into, but I can't
Starting point is 00:36:18 confirm it's interesting. Hey, maybe you should go take some physics courses if you're interested in this kind of stuff. Anyway, that's the standard operation of a transformer. But that's boring. That's a snooze fest. Wang figured out how to break them in a really useful way. Large transformer cores are usually made from many thin plates of steel that are laminated together to make one big bulky core. Now, this is outside my area of understanding, but it sounds like these laminated cores act similar to a ferrimagnetic material. At least, Wang was able to use them as if they were ferrimagnetic. That is,
Starting point is 00:37:02 he could switch how they were magnetized. Wang took an ordinary transformer core and ran current through one of its windings. That was enough to magnetize the entire core. Now, there's something special going on here. The shape of these cores actually matters more than you might think. You've probably played with a bar magnet before. If not, I recommend it. Magnets are just kind of fun to mess with. Each end of a bar magnet has a polarity, positive or negative, and will be either attracted or repelled by another magnet depending on the other's polarity. Wang's transformer cores aren't bars, they're closed loops. The idea of polarity applies, but in a slightly different way. Once magnetized, a closed loop will have a polarity depending on the direction of the field it was exposed to.
Starting point is 00:37:56 The physics are relatively simple, but this is the kind of stuff that doesn't come across well in an audio medium. I wrote about a page of notes before I realized I was just giving an E&M lecture, so I'll link to some diagrams in the show notes if you want all the dirt. Basically, if you run a positive current down a transformer's winding, you'll induce a magnetic field in the transformer's core that points out from the core's center. If you run a negative current, you can switch the direction of the induced magnetic field, flopping the pole to point out the other side of the hole. We aren't necessarily talking about a very strong field here. What's more important is that the field is just strong enough to be observable. That's a write operation to one bit of memory, so we're halfway done. The read operation
Starting point is 00:38:49 is where things get tricky. Recall that for magnetic drum memory, this was accomplished by moving a magnetized region across a head. Wang's new memory was meant to be 100% stationary. So, was meant to be 100% stationary. So how can you tell that a core is magnetized without moving it? The trick was to just flip the bit another time. You just need a changing magnetic field relative to some detector. To read from his makeshift memory, Wang set up a secondary coil around the core. Then the primary coil would be driven to attempt to flip the core's magnetization. For this to make any sense, some conventions had to be in place. So let's just say that a positive current on the primary coil would set the core value to 1, while a negative current would set the value to 0.
Starting point is 00:39:42 0 would end up being used as the base state, for lack of a better term. So the flip was always towards the zero direction. Run a negative current on the primary coil, and if the core held a one, then the direction of its magnetization is flipped. That's a change in magnetic field. That induces an electric field in the secondary coil, one which can be easily observed. If the core held a zero, then there would be no flip, so no impulse on the secondary coil. That's how you can read a bit, but it's a destructive operation. If a core held a one, then it was just flipped back to a 0. That is no good. So Wang added in another step, a rewrite cycle. It's as simple as it sounds. If you read a bit with a
Starting point is 00:40:34 value of 1, then you need to immediately write a 1 to that bit. This is similar to the read-write cycle used on ABC's capacitor memory, but as near as I can tell, Wang didn't draw inspiration from Atnasoff. At this point, the ABC was still a mostly obscure machine. This basic setup, a core with two windings with a read-write cycle, worked surprisingly well. However, it was still a suboptimal solution. Transformer cores took a long time to magnetize, we're talking milliseconds. To us humans, that's not too long, but to a computer, that may as well have been an eternity. The lag time has to do with the material used, and also the amount of material. A one or two pound transformer core wasn't super well suited to
Starting point is 00:41:26 the task. It was relatively easy for Wang to start optimizing things. Once again, from the Smithsonian interview, quote, from then on, we could increase the speed by using smaller and smaller material, and the core is getting smaller and smaller so it can be faster, and using the ferrite material, you can make it even faster without current losses. End quote. Just like that, we have the root of magnetic core memory. But this isn't a complete solution. Wang had only solved part of the problem. We're up to the point of a handful of bits that are each fast and reliable stores of
Starting point is 00:42:06 data. The next step was how to arrange them to form memory. In the case of magnetic drums, the sensing mechanism was also how memory was arranged. But cores don't have that. They just kind of sit there with menacing magnetic fields waiting to be flipped. The solution Wang arrived at was to construct what he called a magnetic shift register. Now, this is a pretty simple route to take. Wang admits that there were already vacuum tube-based shift registers in use on the Harvard Mark IV. This new device simply replaced the tubes with these little ferrite donuts. If you want to be extra cool, then you can call them ferrite toroids. While this was cheaper and more reliable, this wasn't yet a revolutionary technology.
Starting point is 00:43:00 Shift registers are just another type of sequential access memory. There's no randomness about it. In 1949, Wang filed a patent application on his new magnetic core memory. There's no randomness about it. In 1949, Wang filed a patent application on his new magnetic core memory. The name is a little obtuse. He called it the Pulse Transfer Controlling Device. But the patent outlines this ferrite-based shift register that was in use with the Harvard Mark IV. At this point, Wang is talking about his new memory as a type of delay-line device. Now, that's the general rundown of how the core came to be. This is also the end of the reasonable part of our story. From here on out, we enter something of a twisting web of hearsay and patent law. You see, magnetic core memory has its own
Starting point is 00:43:46 controversies, primary of which is, who actually holds the rights to this technology? Who is the one true inventor of the core? Harvard wasn't the only computer game in town, although it was definitely a small field of players. MIT had its own project in this era, Whirlwind. It should come as no shock that memory was also of prime concern at MIT. The initial choice for Whirlwind was actually a device I haven't gotten into this episode called the Williams tube, and there's a good reason for that. This type of tube-based electrostatic memory isn't really connected to more magnetically-based systems. Essentially, a Williams tube used a phosphor-coated tube, something like a specialized CRT, to store bits.
Starting point is 00:44:38 The details are convoluted, but it was able to attain true random access by carefully steering the tube's cathode ray. The downside was that electrostatic tubes just were not reliable. They needed to be constantly adjusted. Like vacuum tubes, they had required operating temperatures, and they degraded with use. Not an ideal solution for the brain of a new machine. Dr. Jay Forrester was the researcher in charge of Project Whirlwind, and he would also take up the mantle of Tube Destroyer. By 1949, he was determined to find or build a better memory system. What I find interesting is that both Wang and Forrester were setting out to solve the same problem. A key difference is where each researcher started their project.
Starting point is 00:45:31 For Wang, it was all about finding a better memory element, a better way to store one bit and then working from there. For Forrester, the structure of memory was of prime concern. From an interview Forrester provided with the Concord Oral History Project, quote, Then there were the two-dimensional storage units that were mostly cathode ray tubes of varying design where you would store on the inside of a cathode ray tube dots that could be charged plus or minus and scanned and picked up again.
Starting point is 00:46:04 In general, those were rather unreliable and had a short life, but they were used. I began to think that if we had one-dimensional storage and two-dimensional storage, what's the possibility of a three-dimensional storage? End quote. The 2D vs. 3D distinction here mainly has to do with memory density, or at least, that's the big important factor. The tube-based memory that Forrester had been working with stored data, as he said, as a two-dimensional pattern. Each bit had some X and Y location on the surface of a phosphor tube. In addition to being unreliable, those
Starting point is 00:46:46 tubes were pretty bulky. To increase memory, you could add more tubes, but that only worked up to a point. The other way was to make larger tubes that could hold more bits. There was a pretty tight bound
Starting point is 00:47:02 on how dense the dots could be stored on the tube's face. And there was also an upper bound to how dense the dots could be stored on the tube's face, and there was also an upper bound to how large a tube could practically get. In the biz, we'd say that memory tubes weren't very scalable. So Forrester's immediate reaction was to look for a three-dimensional solution, some new memory system that could really just pack the bits in there. solution. Some new memory system that could really just pack the bits in there. His initial idea was sound, but would be based on some pretty lame technology. The first attempt was carried out using tiny neon lights as the basic memory element. These lights can display a hysteresis
Starting point is 00:47:38 effect depending on the gas used. The specifics here are key. You can easily construct a neon lamp that will strike, or turn on, at a given voltage and then stay struck until the supply voltage is dropped below some secondary value. Let's just call these points the on-level and the off-level for simplicity's sake. I'm a little done with technical terms right now. You can rig one of those lamps up to work as memory by supplying some constant background voltage above the off level. To write a 1, you just have to kick the voltage up to the on level momentarily. To write a 0, you drop the voltage below the off level just for a minute. Reading can be accomplished by measuring the current passing through a bulb. It pulls more current if it's struck. And there you go, that's
Starting point is 00:48:32 another example of one-bit memory. In Forrester's model, memory was broken up into planes, grids of one-bit memory elements. Planes were then stacked to make a full memory space. So each element had an x and y position within its plane, and the location of that plane in the stack gave a z position, hence three-dimensional memory. The cool part that made this all work had to do with those grids of one-bit memories. Essentially, these neon lamps were connected directly to the intersections of this wire grid. If you had, say, a 10x10 grid, then each wire in the X direction would connect all 10 bulbs in that line. The same is true for the Y direction. To strike a single lamp, all you had to do is send half the on voltage down the proper X wire,
Starting point is 00:49:29 and the other half of that voltage down the proper Y wire. The only place on the plane with enough power to actually strike a lamp will be at the intersection of those two lines, so you can freely turn on one lamp without disrupting the others. There were more complications to the system, specifically for reading, but what's important is this half-power scheme. It allowed Forrester, in theory, to scale up his memory design as much as he wanted. The next problem was that neon lights, while a workable solution,
Starting point is 00:50:02 just kinda sucked. From Forrester again, quote, Practically, it again would be slow, but more importantly, the characteristics of glow discharge change with temperature and age. And we never really tried to build a full system. We did tests on individual units, but on the whole, it didn't seem to be going anywhere and we didn't really pursue it. Things would change in 1949. When discussing Project Whirlwind with the Smithsonian Institute, Wang had this to say, quote, they don't even know the core existed. At the time, the memory was cathode ray tube, but I think Forrester or somebody at MIT had the idea of a matrix.
Starting point is 00:50:46 That is, by somehow, too high, too low, so they can select one out of a lot using neon. They don't know that magnetic materials exist. They heard of our development, they sent somebody over to talk about how do I read in and out of magnetic cores electronically, end quote. Wang goes on to explain that Forrester and another researcher from MIT came to visit the Harvard lab. The guests even signed in on a logbook when they arrived. This really sounds like a great example of synergy solving a bigger problem. Wang can't figure out how to structure his new memory for random access. Forrester can't figure out what memory element to use. A little friendly exchange solves an issue, right? Well, there wouldn't be a controversy if everything worked out like
Starting point is 00:51:39 I've described. Forrester holds that he didn't use Wang's work. According to the Concord Oral History, Forrester got the idea to use magnetic storage from work being done on magnetic amplifiers in Germany. Then, without outside intervention, the MIT lab converted that grain of an idea into magnetic core memory. But this gets weirder. The Concord interview was conducted in 1994 and has no mention of Wang or Harvard in relation to magnetic cores. There's another Forrester
Starting point is 00:52:14 interview in 1983 in IEEE. Similarly, it's devoid of reference to earlier magnetic core memory experiments. There, Forrester mentions the German TV transformer story yet again with a little more detail. I came upon an article by Albers Schoenberg about ceramic ferrite cores, which were then in use for television video circuit transformers. That particular article dealt with the difficulties of getting a linear material free of an open hysteresis loop, because the open hysteresis loop represented energy loss and, from the standpoint of ordinary transformer work, is undesirable. End quote. This is a nice story, a classic tale of invention. Forrester finds an academic article talking about issues another
Starting point is 00:53:05 researcher is having when using ferrite in transformers. Forrester then realizes that those exact problems would actually be a huge boon for his own research. It's nice and tidy, it even has some kind of morals about the importance of publishing on failed experiments. morals about the importance of publishing on failed experiments. But we can go deeper. We can get to the weird world of Wikipedia citations. So, just to be 100% transparent, I do read Wikipedia articles when I start an episode outline. In general, I use that as a jumping off point to get some initial sources. I don't have any shame in that because I don't just mindlessly ape Wikipedia. I get mindlessly angry at the website instead. Wikipedia in general is a great project, but its sourcing, well, it can be trash.
Starting point is 00:54:00 I can't count the number of links that are just dead or sources that are plain wrong or missing. I like to think that that frustration can help drive me deeper into my research pit where I actually get good sourcing and get good information. The other part here that really just drives me up a wall is Wikipedia's sourcing criteria. You see, not everything counts as a source to that website, which, fair enough, you gotta have standards. The main problem for me is Wikipedia doesn't like first-hand sources. Here's where that matters for core memory. Gordon Bell was one of the contributors to the Magnetic Core memory page. He was a researcher at Microsoft, and he knew Forrester from back in his MIT days.
Starting point is 00:54:52 At some point, he had added crucial details about Forrester's recollection of Wang's work. The source? A 2011 email chain that Bell converted to a PDF. That ended up being stricken from Wikipedia as a source, but the trail of crumbs remained. In that email, which I was able to track down, Forrester had this to say, I believe that the Wang use of cores did not have any influence on my development of random access memory. The Wang memory was expensive and complicated. As I recall, which may not be entirely correct, it used two cores per binary bit and was essentially a delay line that moved a bit forward. To the extent that I may have focused on it, the approach was not suitable So, we have a fun pile of options here.
Starting point is 00:55:53 The 2011 explanation particularly piqued my interest because it sounds really familiar. During the endless patent lawsuits over the ENIAC patents, John Mauchly, one of ENIAC's developers, had a similar line about Atnasoff's ABC. Prior to ever working on ENIAC, Mauchly had visited Atnasoff's lab and seen a demo of the ABC machine. He'd even stayed with Atnasoff in his home. off in his home. When the question about the origin of computing came up, Mauchly essentially said that yeah, he had seen the ABC, he'd seen it working, and he wasn't impressed, and his ideas on computing were solely his own. Has a familiar ring to it, huh? Also, did not hold up in court. Now, to be completely fair, Forrester's implementation of magnetic core memory was substantially unique.
Starting point is 00:56:48 Wang had initially made a better shift register, while Forrester would incorporate ferrite cores into his 3D memory design. Once again, our handy E&M rule of thumb made this possible. A changing electric field will induce a magnetic field and vice versa. Forrester used the same effect that Wang did, just with a different setup. Wang's memory used tiny coils of wire wrapped around each core. Forrester realized you didn't actually need little coils. You could just run a wire right through the center of each core. In the final plane, each core would have an X and a Y
Starting point is 00:57:26 wire, and then a so-called sense wire would run through the center of each toroid. Sending a pulse, a rapid change of electric field, down a wire will induce a magnetic field around that wire. So just use the same half-power selection trick as with the experimental neon memory, and boom, you have a plane of magnetic core memory. The sense wire took the place of Wang's secondary coil. A change in the magnetic field of any core in the plane would send an electric pulse down the sense wire. To read, just flip a bit at a known location and monitor the sense wire.
Starting point is 00:58:06 Simplicity itself. Forrester's version of Core was remarkable for a number of reasons. Firstly, it was totally random access. Nothing about this system is sequential. Once it's all wired up, you can ask your stack of donuts for a bit from any location, and that operation will take the same amount of time no matter which location you access. Even better, it doesn't move or wear out. That's kinda a big deal here. The actual part that stores memory is totally static. It's also not very sensitive to temperature, or lighting conditions, or humidity. Well, you know, up to a reasonable point. But we also get one other interesting property. Magnetic core memory is non-volatile. Once you throw data into core, it just stays there until
Starting point is 00:59:01 you overwrite it. Data stays in memory even when the machine is off. This is thanks to the properties of ferrite. It keeps magnetization without needing a refresh. In total, core memory is just better than any contemporary option. Whirlwind would be the first machine to use core, and from there it would become the standard. But that's not the end of the story. There's a weird coda here that I need to address. I said magnetic core is controversial, and so far I've just scratched
Starting point is 00:59:33 the surface of the controversy. Wang had patented his coil and ferrite shift registers. Forrester would eventually patent his grid and ferrite RAM. But there were at least two other patents in play. Just for completeness sake, there was some research into ferrite-based magnetic memory going on at RCA. However, I'm not going to pull us in that direction. The RCA patents start showing up in the 1950s, and they're essentially for the same memory system that Forrester designed. It adds a wrinkle to the story. All we need to know here is that RCA also claimed rights to the idea of core memory planes and filed patents for the technology in the 50s. Ultimately, it's one more hat in the ring, but it's not the weird one. Instead, I want to close out with another branch.
Starting point is 01:00:28 For this, I'm pulling information from a 1976 article in Datamation, simply titled, Anne Wang's Early Work in Core Memories. I haven't found any other place that summarizes this debacle very well, and the primary sourcing is all in court records that I really don't want to venture into. Anyway, Wang initially filed his patent in 1949. But the thing about the patent process is it takes time, and it can be interrupted. In this case, an outside party would try and stop Wang's patent. Enter Frederick Vihay.
Starting point is 01:01:09 A total mystery. And I really mean that. Vihay is an enigma outside of patents, court documents, and a scant handful of articles. There are a few reasons for this mysterious-ness. Vihay wasn't employed by some big company like IBM or RCA. He wasn't a researcher at some federal lab or a university. He was an employee of the Department of Public Works in Los Angeles, California. V-Hay only experimented with electronics in his spare time,
Starting point is 01:01:46 so he never had that built-in paper trail of more high-profile researchers. Exacerbating this is the fact that V. Hay tragically died in 1960, very early into the story of computer memory. As Datamation explains, V. Hay and his wife were driving through the Mojave Desert in California. Their car broke down and, eventually, Frederick decided he would try and go find help. He would die from exposure while walking through the desert. We don't have any interviews with V. Hay from the era, and we don't have any later accountings because he didn't live long enough past the disputes in question. Further, V. Hay sounds like he was a pretty clandestine operator to begin with. From Datamation,
Starting point is 01:02:44 another lawyer said that VJ had sworn him to secrecy on his work. When VJ died, press reports described him as a simple public works inspector who left $625,000 in savings account alone but was sworn to secrecy by the party that bought his secret inventions. End quote. Maybe VJ would have never talked about the finer details of his work. That said, there is the public paper trail to consider. V-Hay filed a patent in 1947 for a device he called the Electronic Relay Circuit. The name here obscures the actual mechanism.
Starting point is 01:03:20 V-Hay's machine was designed to store information about a relay's last state magnetically, specifically using the hysteresis properties of certain materials. We're talking about magnetic core memory. That alone is interesting. We have here what seems to be a fully independent invention of magnetic core. Even Forrester had to have some outside help, but it seems that V-Hay may have arrived at magnetic cores in total isolation. But hold on, because we have some more wrinkles to add in. Wang's patent application took years to be finalized. Now, the timeline here gets confusing for me. The patent was finally granted in 1955.
Starting point is 01:04:07 At least, that's the date on the published patent. Usually, this long of a process period means that there was some legal action involved. Datamation's article makes it sound like VH didn't get legally involved with the matter until 1956, but I think that's likely just some weird wording in the article. Rather, I'd bet that V-Hay had filed a patent interference case against Wang. Despite that, Wang would get his patent. Now, in 1956, IBM swooped in and outright bought Wang's core memory patent. Whatever legal issues came from that were now IBM's problem, at least by and large. So, with an approved patent and backing from IBM,
Starting point is 01:04:53 this means that Wang is the rightful core king, right? Well, not exactly. Legal disputes over the Wang and Vihe patents continued on through the decade, eventually ending in 1959. The results were largely in Wang's favor, but Vihe's patent retained some of its claims. After this conclusion, it was revealed that IBM had also bought Vihe's patent. What we get is a mess. Effectively, it didn't matter who won.
Starting point is 01:05:28 IBM was the winner, no matter the outcome. There's more than a pang of futility here. Forrester still had a patent application floating around for his implementation of Core. Battles between MIT and a few computer manufacturers would continue in court for a number of years. But no matter the outcome, Core memory was here to stay. The IBM 305 RAMAC mainframe ran off Core as early as 56, basically as soon as IBM could get its hands on a patent. By 1959, the PDP-1 launched with a chassis full of ferrite. Every year in between saw more magnetic machines. Core was the default now, no matter how many lawsuits were
Starting point is 01:06:14 filed. Alright, that closes out our discussion of magnetic core memory. I think this is one of those weird cases where the absolute origins of the technology remain ambiguous. We can say for sure that Dr. Wang independently invented the use of ferrite for storing data. We can also probably say that V. Hay invented the same thing in isolation. also probably say that V. Hay invented the same thing in isolation. Jay Forrester is left as the odd one out here, since whichever story you believe, he didn't come up with ferrite himself. That said, he did find a way to make ferrite memory practical. What's more clear is the effect magnetic core memory had. It was simply the best solution of the era. No moving parts meant it could be
Starting point is 01:07:06 driven faster and harder without degradation. It wasn't susceptible to environmental conditions, so it didn't need special heating or cooling. And perhaps best of all, it was 100% random access. No caveats, no focusing electron beams, and no waiting around. Magnetic core was just the superior choice. I've answered a lot of questions this episode, but I want to leave you with one unanswered question. We've seen the independent invention of technology before on the show. Pong is one surprising example that I can pull off the top of my head. There was also a small debacle around the independent invention of mouse-like pointing devices. But I think we're getting to something more fundamental when it comes to magnetic core memory. Wang and Vihei's
Starting point is 01:07:58 work took place scant years apart, and neither party knew of the other, not initially. In each case, magnetic hysteresis was key. Like I said, all computer memory has always revolved around finding useful properties of materials. I'll leave you with something to think about. Was magnetic core memory destined to happen? Was it inevitable? I don't know the answer to that, but I'd love to hear your thoughts. Anyway, thanks for listening to Advent of Computing. I'll be back in two weeks time with another piece of computing's past. And hey, if you like the show, there are a few ways you can support it. If you know someone else who'd be interested in the history of computing, then why not take a minute to share the show with them?
Starting point is 01:08:46 You can also rate and review on Apple Podcasts. And if you want to be a superfan, you can support the show directly through Advent of Computing merch or signing up as a patron on Patreon. Patrons get early access to episodes, polls for the direction of the show, and bonus content. You can find links to everything on my website, adventofcomputing.com. If you have any comments or suggestions for a future episode, then go ahead and shoot me a tweet. I'm at adventofcomp on Twitter. And as always, have a great rest of your day.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.