
Memory on cylindrical magnetic domains. Part 1. Principle of work

Photo from the collection of the author
1. History
Bubble memory, or memory on cylindrical magnetic domains, is a non-volatile memory developed by Bell Labs in 1967 by Andrew Bobeck. Studies have shown that small cylindrical magnetic domains form in single-crystal thin films of ferrite and garnet, when a sufficiently strong magnetic field is directed perpendicular to the film surface. By changing the magnetic field, you can move these bubbles. Such properties make magnetic bubbles an ideal tool for building a sequential storage of bits, like a shift register, in which the presence or absence of a bubble in a certain position means zero or a single bit value. The bubble diameter is tenths of a micron, one chip can store thousands of data bits. For example, In the spring of 1977, Texas Instruments first introduced the 92304-bit chip on the market. This memory is non-volatile, which makes it look like a magnetic tape or disk, but since it is solid state and does not contain moving parts, it has greater reliability than a tape or disk, does not require maintenance, and also has much smaller dimensions and weight , and can be used in portable devices.
The original inventor of bubble memory, Andrew Bobek, proposed a “one-dimensional” version of the memory, in the form of a thread on which a thin strip of ferromagnetic material is wound. Such a memory was called "twistor", and was even produced in series, but was soon replaced by a "two-dimensional" version.
You can familiarize yourself with the history of the creation of bubble memory in [1-3].
2. The principle of action
Here I ask you to forgive me, I am not a physicist, so the presentation will be very approximate.
Some materials (for example, gadolinium-gallium garnet) have the property of being magnetized in only one direction, and if a constant magnetic field is applied along this axis, the magnetized regions will form something like bubbles, as shown in the figure below. Each bubble is only a few microns in diameter.
Suppose we have a thin, on the order of 0.001 inch, crystalline film of such a material deposited on a non-magnetic, for example, glass, substrate.

It's all about the magic bubbles. Picture on the left - there is no magnetic field, picture on the right - the magnetic field is directed perpendicular to the film surface.
If on the surface of a film of such a material a pattern of magnetic material is formed, for example, permalloy, an iron-nickel alloy, then the bubbles will be magnetized to the elements of this pattern. Typically used are T-shaped or V-shaped patterns.
A single bubble can be formed by a magnetic field of 100-200 Oersted, which is applied perpendicular to the magnetic film and is created by a permanent magnet, and a rotating magnetic field formed by two coils in the XY directions allows you to move domain bubbles from one magnetic “island” to another, like this shown in the figure. After a fourfold change in the direction of the magnetic field, the domain moves from one island to the next.

All this allows us to consider the CMD device as a shift register. If we form bubbles at one end of the register and detect them at the other, then we can launch a certain pattern of bubbles in a circle and use the system as a storage device, reading and writing bits at certain points in time.
The advantages and disadvantages of memory on the CMD follow from here: the advantage is non-volatility (as long as the perpendicular field created by the permanent magnets is applied, the bubbles will not disappear and will not move from their positions), and the disadvantage is the long access time, because To access an arbitrary bit, you need to scroll the entire shift register to the desired position, and the longer it is, the more cycles it will take.

The pattern of magnetic elements on a magnetic tape CMD.
The creation of a magnetic domain is called in English "nucleation", and consists in the fact that a current of several hundred milliamps is applied to the winding for a time of about 100 ns, and a magnetic field is created perpendicular to the film and opposite to the field of the permanent magnet. This creates a magnetic “bubble” - a cylindrical magnetic domain in the film. The process, unfortunately, is highly dependent on temperature, the write operation may fail if a bubble does not form, or several bubbles form.
Several techniques are used to read data from the film.
One non-destructive reading method is to detect a weak magnetic field of a cylindrical domain using a magnetoresistive sensor.
The second way is destructive reading. The bubble is diverted to a special generation / detection track in which the bubble is destroyed by magnetizing the material in the forward direction. If the material was magnetized in the opposite direction, that is, a bubble was present, this will cause a greater current in the coil, and this is detected by the electronic circuit. After that, the bubble must be regenerated on a special recording track.

However, if the memory is organized as a single continuous array, then it will have two major drawbacks. Firstly, the access time will be very long. Secondly, the only defect in the chain will lead to the complete inoperability of the entire device. Therefore, they make a memory organized in the form of one main track, and many subordinate tracks, as shown in the figure.

Bubble memory with one continuous track

Bubble memory with master / slave tracks
This memory configuration can not only greatly reduce access time, but also allows the release of memory devices containing a number of defective tracks. The memory controller must take them into account and bypass them during read / write operations.
The figure below shows a section of the "chip" of bubble memory.

You can also read about the principle of action of bubble memory in [4, 5].
3. Intel 7110
Intel 7110 - module of bubble memory, MBM (magnetic-bubble memory) with a capacity of 1 MB (1048576 bits). It is he who is depicted on the KDPV. 1 megabit is a capacity for storing user data, taking into account redundant tracks, the full capacity is 1310720 bits. The device contains 320 loops with a capacity of 4096 bits each, but only 256 of them are used for user data, the rest is a reserve for replacing “beaten” tracks and for storing redundant error correction code. The device has the architecture of the "main track-subordinate tracks" (major track-minor loop). Information about active tracks is contained in a separate boot track (bootstrap loop). On the KDPV you can see the hexadecimal code printed directly on the module. This is a map of “beaten” tracks, 80 hexadecimal digits represent 320 data tracks,
You can read the original documentation for the module in [7].
The device has a case with a two-row arrangement of terminals and is mounted without soldering (in the socket).
The structure of the module is shown in the figure:

The memory array is divided into two “half sections” (half sections), each of which is divided into two “quarters” (quads), each quarter has 80 subordinate tracks. The module contains a plate with magnetic material located inside two orthogonal windings that create a rotating magnetic field. To do this, triangular-shaped current signals are supplied to the windings, offset 90 degrees relative to each other. The assembly of the plate and the windings is placed between the permanent magnets and placed in a magnetic screen, which closes the magnetic flux generated by the permanent magnets and shields the device from external magnetic fields. The plate is placed at an angle of 2.5 degrees, which creates a small bias field directed along the inclination. This field is negligible compared to the field of coils, and does not interfere with the movement of bubbles during operation of the device, but shifts the bubbles to fixed positions relative to the permalloy elements when the device is turned off. The strong perpendicular component of the permanent magnets supports the existence of bubble magnetic domains.

The module contains the following nodes:
- Memorizing tracks. Directly those tracks from permalloy elements that hold and direct the bubbles.
- Replication generator. Serves for replication of the bubble, which is constantly present at the generation site.
- Input track and exchange nodes. The generated bubbles move along the input track. Bubbles move to one of 80 subordinate tracks.
- Output track and replication node. Bubbles are subtracted from data tracks without breaking them. The bubble is divided into two parts, and one of them is sent to the output track.
- Detector. Bubbles from the output track fall into the magnetoresistive detector.
- Boot track. The boot track contains information about active and inactive data tracks.
Below we will consider these nodes in more detail. You can also read the description of these nodes in [6].
Bubble generation

To generate a bubble, at the very beginning of the input track there is a conductor curved in the form of a tiny loop. A current pulse is applied to it, which creates a stronger magnetic field in a very small region than the field of permanent magnets. The pulse creates a bubble in this place, which remains constant, supported by a constant magnetic field, and circulates along the permalloy element under the action of a rotating magnetic field. If we need to write a unit to memory, we give a short pulse to the conducting loop, and as a result two bubbles are born (indicated in the picture as Bubble split seed). One of the bubbles rushes by a rotating field along the permalloy track, the second remains in place and quickly acquires its original size. Then it moves to one of the subordinate tracks, and changes places with a bubble, which circulates in it. He, in turn, reaches the end of the input track and disappears.
Bubble exchange

The exchange of bubbles occurs when a rectangular current pulse is applied to the corresponding conductor. There is no separation of the bubble into two parts.
Reading data

Data is sent to the output track by replicating it, and continues to circulate in its track after reading. Thus, the non-destructive reading method is implemented in this device. For replication, the bubble is directed under the oblong permalloy element, under which it stretches. There is also a loop-shaped conductor on top, if a current pulse is applied to the loop, the bubble will split into two parts. The current pulse consists of a short section with a large current strength in order to divide the bubble into two parts, and a longer section with a lower current strength, in order to direct the bubble to the output track.
At the end of the exit track is a bubble detector, a magnetoresistive bridge made of permalloy elements that form a long chain. When a magnetic bubble falls under a permalloy element, its resistance changes, and a potential difference of several millivolts appears at the output of the bridge. The shape of permalloy elements is selected so that the bubble moves along them, at the end it falls on a special "guard" tire and disappears.
Redundancy
The device contains 320 tracks, each of 4096 bits. Of these, 272 are active, 48 are spare, inactive.
Boot Loop
The device contains 320 data tracks, of which 256 are intended for storing user data, the rest may be malfunctioning or may serve as spare ones to replace the malfunctioning ones. One additional track contains information about the use of data tracks, 12 bits per track. When power is supplied to the system, it must be initialized. During the initialization process, the controller must read the boot track, and write the information from it to the special register of the formatting chip / current sensor. Then the controller will use only active tracks, and inactive will be ignored, and they will not be recorded.
Data Warehouse - Structure
From the user's point of view, data is stored in 2048 pages of 512 bits each. 256 bytes of data, 14 bits of the error correction code and 2 unused bits are stored in each half of the device.
Error correction
Errors can be detected and corrected using a current sensor chip that contains a 14-bit code decoder that corrects a single burst error in each block of 270 bits (including the code itself). The code is appended to the end of each 256-bit block. The correction code can be used or not used, at the request of the user, the code check can be turned on or off in the controller. If the code is not used, all 270 bits can be used for user data.
Access time
The magnetic field rotates at a frequency of 50 kHz. The average access time to the first bit of the first page is 41 ms, which is half the time required to complete the cycle on the track plus the time it takes to exit the track.
320 active and spare tracks are divided into four parts with 80 tracks each. Such an organization reduces access time. Quarters are addressed in pairs: each pair of quarters contains even and odd bits of the word, respectively. The device contains four input tracks with four initial bubbles, and four output tracks. The output tracks use two detectors; they are organized in such a way that two bubbles from two tracks at the same time never fall into one detector. Thus, four bubble streams are multiplexed and converted into two bit streams and stored in the current sensor chip registers. There, the contents of the registers are again multiplexed and through the serial interface it enters the controller.
In the second part of the article, we will examine in more detail the circuitry of the bubble memory controller.
4. References
The author found in the darkest corners of the network and saved for you a ton of useful technical information on memory on the CMD, its history and other related aspects:
1. https://old.computerra.ru/vision/621983/ - Two memories of engineer Bobek
2 . https://old.computerra.ru/vision/622225/ - Two memories of engineer Bobek (part 2)
3. http://www.wikiwand.com/en/Bubble_memory - Bubble memory
4. https: // cloud. mail.ru/public/3qNi/33LMQg8Fn Adaptation of Magnetic Bubble Memory Standard in a Microcomputer Environment
5. https://cloud.mail.ru/public/4YgN/ujdGWtAXf - Texas Instruments TIB 0203 Bubble Memory
6.https://cloud.mail.ru/public/4PRV/5qC4vyjLa - Memory Components Handbook. 1983. intel
7. https://cloud.mail.ru/public/4Mjv/41Xrp4Rii 7110 1-Megabit Bubble Memory