Improving mass perfor ce Bubble memories can now compete equally with floppy discs for microprocessor working storage. M W Eisele describes how a I Mbit bubble memory can be implemented into a microprocessor-based system Description of how a bubble memory operates is given, and the increases in bubble densities since the mid 1970s are outlined. The advantages of the bubble memory over the floppy disc drive are weighed up. The conclusion made is that for 'working storage'-software compilation, operating system utilities, system interface functions etc. - - the bubble memory is best, whereas for 'archival storage'--system initialization, software distribution, out-of-system storage etc. - - the floppy disc is still superior. Implementation of an Intel 71101 Mbit bubble memory is described using a purpose-built controller which provides the hardware interface with a TTL-level microprocessor bus. Modification of the floppy disc operating system to take into account the bubble memory is also shown.
Michael W Eisele is the bubble memory product marketing manager at the nonvolatile memory division of Intel Corporation, USA. He graduated with a BA in ' chemistry from the University of Colorado, USA, in 1973. He then obtained an MBA (in 1980) from the University of New Hampshire, USA. Eisele has five years of ~ industry experience in the definition and marketing of new memory products, including EPROM, E2pROM, nonvolatile RAM and bubble memory.
J
microsystems
bubblememory
operatingsystem
Advances in the density, cost effectiveness and ease of integration of bubble memories can allow designers of personal computers, terminals, typewriters, controllers and other similar systems to improve the mass storage facility within these products. Two floppy disc drives are now common in these products for editing, rearranging, changing and storing both data and software. By combining a bubble memory and floppy discs, improvements to the mass storage system can be enjoyed.
BUBBLE M E M O R I E S Bubble memory is a solid-state, non-volatile read/write memory that relies on magnetic domains or 'bubbles' to store data. A magnetic bubble memory stores data in the form of cylindrical magnetic domains in a thin film of magnetic material. The presence of a domain or bubble is interpreted as a binary I, and absence of a Intel Corporation (UK) Ltd, Pipers Way, Swindon SN3 1RJ, UK
domain is a 0. Bubbles are created from electrical signals by a bubble generator within the memory and reconverted to electrical signals by an internal detector. Externally the memory is TTL compatible. An external rotating magnetic field propels these cylindrical domain bubbles through the film. Metallic: patterns of chevrons deposited on the film steer the domains in the desired directions. !n these respects, magnetic bubble memories are serial, high-density storage devices like electromechanical disc memories. However, in a disc, the stored bits are stationary on a moving medium, whereas in the l,~agnetic bubble memory the medium is stationary and the bits move. In the absence of power, the stored bits are held intact by the presence of permanent magnets, contained within the memory's shielded package (see Figure I).
BUBBLE M E M O R Y DEVELOPMENTS Semiconductor memory has been outpaced by developments in bubble densities. In the mid 1970s 256 Kbit
0141-9331/84/08430-05 $03.00 © 1984 Butterworth & Co. (Publishers) Ud 430
microprocessor:~ and microsystems
Shield~ Permanent magnet ~
compilation or assembly, operating system utilities, data copying, data look-up tables, or other microprocessor system interface functions. 'Archival storage' functions, such as system initialization, software distribution or out-of-system storage, depend on the mass storage interface with the external world. These are significantly different mass storage functions which require different memory features.
"-~. ~
Coil
Working storage
; [~
Bubble
substrate Permanent magnet
Figure 1. Bubble memory package devices appeared; 1979 sawthe introduction of 1 Mbit chips and there are now 4 Mbit chips available. A 1 Mbit (1 28 Kbyte) bubble chip provides about the same storage capacity as a single-sided singledensity 51/4-in floppy disc. The new 4 Mbit chips (512 Kbyte) each provide about the same capacity as a double-sided double-density 51/4-in floppy. With read or write average access times under 100 ms and high density, bubble memory is thus a commendable solidstate mass storage memory for microprocessor-based systems. The acceptance of bubble memory and the production experience of bubble suppliers has allowed the per bit cost of bubble memory to decline over the last four years. Like other solid-state semiconductor memories, bubble memory follows 'learning curve' trends for both cost and increased density. System interface of bubble memories has been simplified by the availability of VLSI support circuits that take care of 'bubble housekeeping'. Interfacing bubble memory to a microprocessor-based system requires data parallel-to-serial conversion for writing to or reading from the bubble. In addition, the TTL level signals of the system must be converted to the appropriate magnetic storage, either by creating (writing) or detecting (reading) bubbles. Present-day bubble subsystems require the system designer only to communicate via software commands with a bubble memory controller. The contr~:l!p: is the interface between the memory subsystem and the equipment it serves. It does the serial-to-parallel data conversion and generates all timing signals required by the other support circuits in the bubble memory subsystem. The other support ICs provide the additional formatting, sensing, drive current and automatic error correcting functions needed to complete the bubble subsystem. Consequently, the microprocessor system interface has been simplified for bubble memory to a level similar to any system peripheral device.
MASS STORAGE FUNCTIONS Mass storage provides a variety of functions in microprocessor-based systems. It is useful to describe those functions in two parts (Figure 2). First, the 'working storage' function, which facilitates the system's performance via interaction with the system RAM or execution memory, takes care of activities such as software
vol 8 no 8 october 1984
There are three main requirements for working storage in microprocessor based systems • it must always work • throughput should be maximized so as not to limit system performance • small size is needed as microprocessor-based systems become more compact. Bubble memory is a highly reliable working storage. A complete Intel 1 M b i t bubble subsystem, including controller and ICs, has a mean time before failure of 340 000 h at 55~C under continuous use. Floppy discs, like tyres on a road, suffer wear every time they are used and typical reliability for a 51/4-in drive at room temperature is 8000-10 000 h. Bubble memory greatly improves data integrity. A 51/4-in disc drive has typical data error rates of 10-1 3 at room conditions. Bubble memory, on the other hand, employs automatic error correction built into the support ICs and achieves data error rates 1000 times b e t t e r - - u p to 10-16 typical error rate at room temperature. System throughput depends on both the access time and data rates of the mass storage device. But in applications of truly random mass storage access or where operating systems are structured to maximize storage space by employing noncontiguous files, access time becomes the dominating feature for system throughput. Bubbles are about five times faster than a disc for a random access. When system processing overhead is added (not dependent on the particular mass storage) bubbles typically result in a doubled memory provides superior reliability, performance tions, assemblies or file transfers, compared with the same tasks executed from a floppy disc source. Large capacity in a small amount of space characterizes bubble memory. A complete 1 Mbit bubble memory subsystem, including controller and support ICs, will fit in a 1 0 0 m m × 100mm area. Bubble memory can often fit on the same board as the microprocessor, allowing system size to be reduced, or facilitating other enhancements. For the working storage functions of a mass storage system, bubble memory provides superior reliability, performance and compactness, compared with other media.
M'o'°pr°oe's°r-I based : system
.i
.Z'2L
I=
=
I
External
I
Working I ~u,~u=I 'Archival'I environment storage • ' storage L
Figure 2. Mass storage functions. Working storage involves compilation assemblies, utilities copying, look-up tables and the operating system; archival storage involves physical I/(3, software distribution and out-of-system data storage.
431
I
the c o m m a n d status or p a r a m e t r i ( / d a t a iegisters. ~ c o m m a n d register is used to issue instructions such as read or write bubble m e m o r y data while the status register provides information a b o u t the completion (.)~ termination of c o m m a n d s and the :'220's readiness to transfer d a t a The parametric registers contain ~ set of flags and parameters that determine exactly how the 7220 wili respond to a software c o m m a n d . The data register is actuaJly a 40 byte FIFO to buffer the tbning differences b e t w e e n the 7110 b u b b l e m e m o r y and a host p~o. cessor, tn order to transfer data to o~ from the bubbie subsystem, the host processor must ioad the parametric registers followed by read or write b u b b l e m e m o r y
Archival storage
Many microcomputer systems need a convenient physical interface to the outside world. A removable cheap storage media allows easy data collection and storage. Software distribution on disc is inexpensive and easily reproduced. All of these factors make a floppy disc the ideal archival storage for m i c r o processor-based systems. There is no single ideal mass storage medium but the best systems can take advantage of both bubble memory for working storage and floppy disc for archival storage.
I M P L E M E N T I N G A BUBBLE M E M O R Y
,':ommand. The 7220 bubble memory con;_~otle~ provides ll~e user with three different modes of data transfer
Since bubble memories are accessed via software commands to a bubble controller, both hardware and software considerations are necessary when implementing bubble memory in a design (eg usingthe Inte17110 1 Mbit bubble memory with the 7220 bubble memory controller). The purpose is to implement bubble memory where the bubble operates as a second disc: drive in the disc operating system to improve overall system performance (as shown in Figure 3).
• direct memory access (DMA) • interrupt driven • polled 1/O In the DMA's data transfer mode, the 7220 operates in conjunction with a DMA controller using the DRQ (data request) and DACK (data acknowledge) lines for handshaking. With the help of a DMA controller, the 7220 transfers the data to and frorn the host pro(esso~'s memory, Once the data transfer begins, program intervention is not required until the entire data transfer has been completed, tn the interrupt mode, the 7220 along with an interrupt controller (such as Intel's 8259) uses the DRQ (data request) line to initiate a data transfer. The DRQ line becomes active when the 7220 is ready to send or receive a burst of data. A typical data burst is 22 contiguous bytes for an interrupt,-driven interface. A set of software drivers are also necessary to service the interrupts to coordinate the transfer of data between
Bubble hardware interface Key to any bubble memory interface is the bubble memory controller. The 7220 controller provides a complete interface to a TTL level microprocessor bus which allows the designer freedom from the intricate timing and waveforms necessary to support a bubble memory subsystem. A block diagram of the 7220 bubble memory controller is presented in Figure 4. The 7220 interface circuitry consists of one 8-bit bidirectional port which provides access to internal registers. The address line A0 is used to select either
i Boo, i
i
system EPROM
I
I
i
°"P'av''MI,[ '
Microprocessor
controller
I
I i
L_
1
RA
Microcomputer bus DMA controller
I
Serial peripheral interface
I I c'e,ro°,a,r ! ! !
Keyboard
Figure 3. 432
7220 memory bubble controller
I
Bubble memory subsystem
Typical desktop microcomputer system block diagram
Disc ] controller
L
1 Disc drive
i
microprocessors and microsystems
[
PWR.FAIL RESET RESET.OUT
Power fail abort and reset
1
select FSA logic
[
II
I
Bubble signal decoder
Internal data bus (8 bit)
-
-
WAIT _
-
-
DET.ON
-
-
-
Sequencer
ERR.FLG
-
-
-
-
-
-
V CC
Control bus
Ground
I I I [~~,,x~Xx~,X,,~,~/i
D8
~ x [~
I
~
~
Do- D 7
A O ~ CS--
l
W R ~
DMA and interrupt logic
DACK DRQ
i
INT
C/D C L K
[ | Magnetic | bubble memory addressingand RAMI°gic
~ | ... /
Status register commandregister parametricregisters
1L i
System bus interface
RD--
Figure 4.
-
IM.A IM.B REP.EN BOOT.EN SWAP.EN BOOT.SW.EN SHIFT.CLK SYNC
I1
DIO
I
/3USRD
Block diagram of the 7220 bubble memory controller
the 7220 and the memory associated with a host processor. One advantage to the interrupt mode is multitasking. Since the host processor is only servicing the 7220 during data transfers, dead time between data transfers can be used for other processor tasks. A polled mode interface reads the 7220 status register to determine when to transfer I byte of data. Of all the interface modes, polled I/O is the simplest configuration to implement. No special hardware or external controllers are necessary to interface the 7220 with a microprocessor. The major portion of a polled mode design is the software. Just as in the interrupt mode, a set of software drivers are required to read and write data to the 7220. Larger systems can be built from the basic components (Figure 5).A single 7220 bubble memory controller can control up ~oeight bubble memory subsystems simultaneously. For extended systems, multiple 7220s and additional bubble subsystems can be used. OPERATING
SYSTEM
CONSIDERATIONS
Integrating bubble memory into an existing disc
vol 8 no 8 october 1984
operating system necessitates making the operating system aware of the bubble's presence. In operating systems with a structured BIOS, the BIOS is expanded to include capability for the bubble memory controller and bubble subsystem. The existing BIOS runs the current peripherals in the system. The new operating system adds calls to communicate with the bubble subsystem. A simplified operating system map is presented in Figure 6. A new jump table is installed which points to the new primitives needed for the bubble memory: initialize, abort, read page, write page etc. The new operating system must keep track of whether the original disc or bubble memory is selected. If the bubble is selected, the new BIOS routines perform requested functions. If the disc or another peripheral is selected, the commands passed to bubble operating system primitives are developed from specific combinations of commands to the bubble memory controller. The 7220 bubble memory controller command set consists of 16 commands selected by a 4-bit command code. Commands are written to the controller's command port. Table 1 lists the available commands. The most commonly used commands are
433
P
mmmm
m
m
m m m
m
Bu0be,memor< y
> >
¢
I I I I L
m m ~
m
m
f
I I I I I I
controller (7220- 1)
m
>I
Coi1(7250) predrives
1
Driver transistor ] assembly (7254 x 2)
Formatter sense amplifier (7242)
<
1 Mbit magnetic bubble memory unit (7110)
li> Current pulse generator (7230)
>
To additional subsystems
Figure 5. Block diagram of the 1 Mbit (128 kbyte) magnetic bubble memory system (the 7220-1 controller can be used for 1-8 subsystems) abort, initialize, read bubble data and write bubble data. Commands used only for diagnostic purposes are read bootloop register, write bootloop register, write bootloop register masked and write bootloop. A typical operating system driver for bubble memory can be written in 1 kbyte.
)
_i Floppydisc
Floppy disc
BDOS Table 1.
D3
D2
BIOS
7220 commands
D2
D1
Command name
New bubble memory BIOS
Original jump
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
434
0 0 0 0 I I I 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 I 1 0 0 1 1 0 0 1 1
0 1 0 1 0 I 0 1 0 1 0 1 0 1 0 1
Write bootloop register masked Initialize Read bubble data Write bubble data Read seek Read bootloop register Write bootloop register Write bootloop Read FSA status Abort Write seek Read bootloop Read corrected data Reset FIFO MBM purge Software reset
table
-%
I
I 1 I i t t l i J
Newjump table
BDOS
i Original disc operating system
BDOS
i
Modified disc operating system
Figure 6. Bubble drivers included in the modified disc operating system
microprocessors and microsystems