In This Article
What is Core Memory?
The term core memory refers to the most standard type of memory in the form of Random Access Memory or RAM in a computer. This particular form of memory is usually made up of magnetic rings often referred to as cores. Therefore, the core memory in a computer is also called magnetic core memory.
These cores usually have wires that pass through them. This design helps them in detecting as well as selecting the contents of the core. The core memory in computers today is based on semiconductor technology.
- The core memory usually consists of a hard material that is magnetized especially in two directions that are normally represented by a binary bit of either 0 or 1.
- The design of the core memory allows a write to be subsequently followed after every read.
- The functionalities of the memory usually depend on the nonlinearities of the magnetic matter used in the rings and it stores information based on the direction of magnetization.
- Every bit is stored in the toroid as 0 and 1 that is accessed in each cycle of a plane or stacks that reads or writes the word in one cycle based on the square loop feature of the ferrite material of the toroids.
Understanding Core Memory in Computer
Core memory in a computer, also called the magnetic core memory or magnetic core storage, refers to that specific category of computer memory devices that is made up of a huge array of small torus.
Ideally, core memory is the older term which is synonymous with the system RAM mostly.
This is made up of a hard magnetic material. This material can be specifically magnetized in two specific directions.
These two directions are typically represented by a numeric value in a binary bit of either 0 or 1.
Typically, magnetic core memory refers simply to the central RAM of the system.
This is normally used to store all those programs that are running currently along with the data that is being worked on.
However, there was actually more to it.
Usually the term core memory refers to that particular kind of memory that was made up from tiny circular magnetic cores that resembled a doughnut, as said earlier.
All these cores were threaded in a square shaped matrix of wires.
Each one of these cores stored one single bit that was addressable individually for reading or writing through the row and column wire matrix along with a sense wire that was threaded through all of these cores.
This enabled it to detect the direction in which a selected core has been magnetized by judging its representation in either 0 or 1, as said earlier.
Core memory usually stores the values not only when the machine retains power or is on but can also retain it when the power of the memory system is down.
This is because it is a non-volatile memory. Every time the core is read, the value of it is reset to 0.
When this happens, the information is then stored in the immediate re-write cycle by the circuits in the memory system of the computer.
The fact that the core memory of a computer is magnetic, this had some significant issues such as being vulnerable to magnetic interference and its effects.
The core memory also needed making adjustments in different aspects such as:
- The drive currents
- The sense levels and
- The memory timing.
In addition to that, it also needed to use some heavy and time-consuming applications in order to diagnose any issues in the hardware of the core memory.
It is for all these reasons, fabricating a core memory is a very slow process and was quite an expensive one initially.
The basic concept of core memory was known from the early days of computer development where a square-shaped hysteresis loop was used for switching devices or storage with the help of magnetic materials.
It is believed that it is due to the understanding of transformers that has helped people to hone their knowledge regarding magnetic core memory.
This helped them to ensure switch-like performance and amplification while building a memory by using specific materials.
Typically, the magnetic core memory is specially designed in a way that ensures every read is immediately followed by a subsequent write.
This is because, as said earlier, after every read the content of the memory is lost or, in technical terms, all the bits are forced to 0 from 1.
Ideally, this specific aspect is what the computers started to take advantage of.
The hardware of the memory simply had to increment the value as quickly as possible after the read phase of every memory cycle.
To ensure this, the X/Y line coincident-current form is used in the core memory of the computer.
This consists of cores. These are actually a huge number of minute toroidal ferrimagnetic ceramic ferrites.
These are held together as a stack of layers often referred to as planes in a grid structure with the help of wires passing through the holes in the center of the cores.
In the early designs of core memory, there were four wires used for this purpose namely, X, Y, Inhibit, and Sense.
However, there was a slight change made in the design of the core memory later on in which the Sense and Inhibit wires were combined to create a Sense-Inhibit line.
Every core has a toroidal shape which is preferred because the magnetic path of the core is closed.
This means that there are no magnetic poles. This resulted in very little or no external flux.
The benefit of this design is that it allows packing the cores very tightly together but it did not result in any interaction in their magnetic fields.
Also, since there are no diagonal wires positioned alternately at 45 degrees as it was in the earlier core arrays, the cores can be packed more closely.
The functions of the magnetic core memory are typically based on the nonlinearities of the magnetic matter that is used to make the rings.
The cores store a bit of information and it entirely depends on the direction of magnetization.
As a matter of fact, the cores of the memory can be magnetized in either clockwise or in a counterclockwise direction.
Every time the core memory is accessed, it involves read and write cycles.
Typically, in a read cycle the contents of the memory is lost but in a write cycle the same is restored.
This means that, if the data has to be retained in the core memory then every read cycle should be followed by a subsequent write cycle.
In the period between 1950s to 1970s, there was a widespread use of magnetic core memory till the time semiconductor memory chips entered into the market and displaced it.
Ideally, the stable switching performance was a common and well known phenomenon in the field of electrical engineering.
And, the application of the same concept in the field of computers was therefore pretty immediate and efforts were being made right from the days of ENIAC in 1945 by J. Presper Eckert and Jeffrey Chuan Chu.
Then the first static magnetic memory was patented by robotics pioneer George Devol on 3 April 1946 which was refined further with five additional patents before being used in an industrial robot for the first time.
However, a completely developed core system was patented in 1947 and purchased later on by IBM in 1956.
Ideally, the final core system was developed on the basis of three other earlier developments, which is why fabricating it was a slow process.
One of these was the pulse transfer controlling device developed in 1949.
The other was the development of the coincident-current core memory sometime in the early 1950s that allowed storing 3D information.
And the third was the development of a distinctive core system with thin metal tubes that had ferrite bands wrapped around them.
All these key inventions resulted in the development of the magnetic core memory in 1951 and were commercialized quickly.
The working process of the magnetic core memory of a computer is entirely technical and therefore may be a bit complicated to understand for any average user.
As said earlier, stores one bit as 0 and 1 in the toroid. Each of these bits is accessed in each plane in each cycle.
Each of the stacks or planes on which the machine word is spread in an assortment of words manipulates every bit of every word in parallel.
This allows reading the entire word or writing in one cycle.
The cores of the memory typically depend on the square loop characteristic of the ferrite material used in making the toroids.
A magnetic field is created at the same time by the electric current in a wire passing through the core.
It is only when this magnetic field is more than a specific intensity or ‘select’ the change in magnetic polarity of the core will be allowed.
This is because such changes need one of the X lines and one of the Y lines to be driven with ‘half select’ or half the current while selecting a memory location.
At this stage when the X lines and Y lines cross and also a logical AND function is performed, a combined magnetic field will be generated which will result in such a change.
As for the other cores, only half the required field or ‘half-select’ will be seen by them. Or, they might see nothing at all.
When the current is driven in a specific direction through the wires, there is an induced field created which forces the selected magnetic flux of the core to circulate in one specific direction or the other.
This can be either clockwise or anticlockwise. Here one direction is a stored 0, and the other direction is a stored 1.
The reading process:
Now, when it comes to reading and writing the content in the memory, the pulse of the current in the Sense line is either high or low, depicted as 1 or 0, respectively.
However, it entirely depends on the original state of magnetization of the core.
While reading one bit of the core memory, the internal circuit attempts to flip it to the particular polarity that is allotted to the 0 state.
This is typically done by driving the selected and intersecting X and Y lines at that particular core.
However, the physical state of the core memory will be unaffected if the bit is already 0.
And, if the bit was 1 earlier, the core will change its magnetic polarity.
This change will result in an induced voltage pulse in the Sense line.
This induced voltage pulse in the Sense line will be detected after a delay.
This time is typically referred to as the access time of the core memory.
When such a pulse is detected on the Sense line, it signifies that the bit contained a 1 most recently.
In contrast, if there is no such pulse in the line, it would signify that the bit most recently contained a 0.
In terms of reading, since the bit contains a 0 immediately after a read phase which erases the content, the core memory access is therefore called a destructive read.
It is also called a destructive read because the core changes its polarity at the intersection of the X and Y lines, as said earlier.
That is why it needs to be recreated immediately.
The writing process:
While writing a bit of the core memory, the circuitry takes for granted that there has been a read phase and the bit in the core memory is in a 0 state.
In order to write a 1 bit, the X and Y lines that are selected are driven and the flow of current is in the opposite direction as it was during the read operation.
On the other hand, when a 0 bit needs to be written, there are two particular methods used.
The first method is very much the same as the reading process where the current flows in the original direction.
On the other hand, in the second method, a reverse logic is followed. This means that writing a 0 bit is actually inhibiting the writing of a 1 bit.
It requires an equal amount of current to be sent throughout the Inhibit line.
This, in turn lowers the net amount of current that flows through the particular core in order to half the selected current.
This actually slows down the change of polarity.
The memory cycle time in this case is equal to the access time as well as the time taken to rewrite.
Typically, the Inhibit line is used only during the writing process and the Sense wire is used only during the reading process.
It is for this reason the design in the core memory these days comes with the Sense line and the Inhibit line combined in a single wire.
This wire usually uses the circuitry of the memory controller when it needs to switch the task of the wire.
However, if too many cores are crossed by the Sense wire, a considerable amount of voltage can also be induced by the half select current across the entire line.
This particularly happens as a result of the superposition of the voltage in every single core.
This may result in a potential risk of misreading the limits of the lowest number of the Sense wire.
When the Sense wires need to be increased it will require more decode circuits.
Register memory was provided often with word line core memory which was also known as 2D and linear select.
In this particular type of core memory, there were typically three wires woven through each of the cores available on the plane. These are:
- Word read
- Word write and
- Bit sense or bit write.
In one or more word read lines the whole current is applied in order to clear or read words.
This not only cleared the selected cores but at the same time it also cleared any of the flip induced voltage pulses in the bit sense/write lines of them.
Normally, only a word read line was selected for reading but when it comes to clear, a number of word read lines may be selected and the bit sense/write lines may be ignored.
For writing words, the half current is used both to one or more word write lines as well as to each of the bit Sense or write lines for every bit that is to be set.
However in some other forms and designs the word write lines and word read lines were combined in a single wire.
This means that the resultant memory array only had two wires for every bit.
While writing words, a number of word write lines may be selected.
This in fact, offered a significant advantage in the performance over the X/Y line coincident-current.
This is because it allows clearing or writing several words by using the same value in one single cycle.
Any usual machine register set typically utilizes only a small plane of the core memory in spite of the fact that there were some exceptionally large memories built on the basis of this particular technology.
A typical example of this form of core memory is the Extended Core Storage or ECS auxiliary memory used in the CDC 6600.
It was typically up to two million 60-bit words.
There is another form of core memory. This is called the core rope memory which offers read-only storage.
In this particular form of memory the cores were usually used as transformers and typically consisted of more linear magnetic materials.
This means that there is no information actually stored in the individual cores magnetically.
Instead, every bit of the word had a single core to itself.
When a content of a given memory address was read, it produced a pulse of current in the wire in parallel to that specific address.
The wires in each of these addresses were threaded in two specific ways. One, it was through a core which indicated a binary 1, and two, around the outside of the core which indicated a binary 0.
However, the cores in this form of memory were physically quite larger as expected in comparison to the read-write core memory.
This specific form of memory was considered to be extremely reliable.
A good example of this form of memory is the one that the Apollo Guidance Computer was equipped with that was used during the NASA Moon landings.
There are some of the salient features of the magnetic core memory that are also worth knowing. These are:
In the older design of the core memory systems, especially those that were available in the 1980s, the cost was too high.
This is because at that time all supporting electronics along with the core array were typically fitted on one single PCB or Printed Circuit Board which was not more than 25 cm by 20 cm in size.
In these designs, the core array was usually mounted a couple of millimeters above the board and was protected with the help of a plastic or metal plate.
However, everything changed over time, including the design of the core memory.
One of the most significant features of the magnetic core memory includes its non-volatility.
This aspect is considered to be one of the biggest advantages of the core memory and its development.
This means that the contents stored in the memory is lost when the power is removed.
However, the memory controller has a special logic included in it which does not let the contents of the memory to be changed till the time the power supply returns to the usual value.
The core memory systems of the early years also had some specific characteristics that are significantly different from the one that you get today. For example:
- The performance of these core memory systems were approximately up to a clock rate of 1 MHz and
- The cycle times of these early memory systems were nearly 6 µs which dropped down to 1.2 µs by the early 1970s and to 600 ns or 0.6 µs by mid 1970s.
However, there were some exceptions such as the CDC 6600 that performed at a much higher level in its days with a memory cycle time of about 1.0 µs and with cores that needed only a half-select current of about 200 mA.
The core memory design later on was done keeping in mind the access times that needed to be reduced and the data rates or bandwidth that needed to be increased.
These are the aspects by which the modern core memory systems can be characterized along with the simultaneous use of several grids of core. Each of these cores can store one bit of a data word.
For example, the system may use 32 grids of core and in each of the cores there may be one single bit of the 32-bit word.
However, the memory controller can access the whole word of 32 bits with the help of only one read/write cycle.
Radiation and EMP resilience:
Another significant feature of these non-volatile core memory systems is that they are comparatively not affected by radiation and EMP or Electromagnetic Pulse.
This aspect offers a significant advantage in a few specific applications of computer such as:
- The industrial programmable controllers of the first generation
- Vehicles such as spacecrafts and fighter aircrafts and
- Other military applications.
All these features of the computer core memory systems helped them to maintain the contents in them even under drastic situations that these crafts may face such as plunging into the sea and disintegration.
In addition to that, the coercive force of the early core memory systems was very sensitive to temperature.
This means that the half-select current that may be proper at a specific level of temperature may not be proper at some different level of it.
Therefore, the memory controller was also included with a thermistor or a memory controller.
This particular tool helped in adjusting the levels of current accurately depending on the changes in the temperature.
This particular method in the core memory system was followed by the Digital Equipment Corporation in their PDP-1 computer as well as in all of the core memory systems that were used by DEC in all of their air-cooled computers in the PDP line.
There is also another proven way to handle temperature sensitivity of the core memory systems.
It is to put the stack of magnetic cores in an oven that is temperature controlled.
This practice was followed by IBM in the heated-air core memory of the IBM 1620 as well as in IBM 7090, IBM 7030, and the early IBM 7094s that was equipped with a heated-oil-bath core memory.
A reverse process was followed here. The core, instead of being cooled down, was heated up in order to meet its primary requirement – to reach a steady temperature.
This process however proved to be much cheaper and easier when it is needed to maintain a consistent temperature which will be much higher than the room temperature than being at or below it.
Hardware issue diagnosis:
This specific characteristic of the core memory is quite useful but it takes a lot of time to run a diagnostic program.
This is because these programs need to check every possibility in the worst case patterns rather than run a quick test simply to check whether or not every bit in the core memory holds a 1 or a 0.
And, therefore, it needed to run for several hours.
Moreover, most of the computers usually come with only one single core memory board.
This means that the diagnostic programs also needed to ‘move’ themselves around within the memory so that they could check each and every bit in it.
A lot of advanced tests may be required such as the ‘Schmoo test.’ The name of this test is quite interesting.
The name Schmoo stuck to it because the data plot of the test resembled the cartoon character named ‘Schmoo.’
In this particular test, modifications are made in the half-select currents along with the time taken to ‘strobe’ or test the Sense line.
If there were any errors found, it could be resolved very easily by tapping the printed board gently with the core array on a particular table.
This actually changed the position of the cores slightly along with the wires that run through them which fixed the issues.
However, the good news is that such processes are seldom needed to be followed due to the fact that the magnetic core memory systems are designed to be much more reliable in comparison to other components of the computer that you find today.
So, as it is clear from this article, the magnetic core memory of a computer is a very useful component which ensures that the overall performance of the computer is fast, high and consistent.
Now that you know its design, functions and characteristics, you know how exactly it does so.