Advent of Computing - Episode 77 - Magnetic Memories
Episode Date: March 7, 2022It'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)
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
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.
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.
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,
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
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
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,
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,
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
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.
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,
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.
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
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
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
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,
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
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
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.
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
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
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.
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
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,
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.
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?
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.
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
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
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,
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
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,
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.
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.
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
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.
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
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.
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.
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
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.
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
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
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.
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,
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.
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
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
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,
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.
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
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.
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
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
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
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.
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
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.
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.
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.
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
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
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
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
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,
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,
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.
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
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
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
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.
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.
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.
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.
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
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.
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
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
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.
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.
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,
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,
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.
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.
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,
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.
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
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
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
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?
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.