I pulled out one of my holy relicsa 3-lb, 13-kbit bit core array acquired from a surplus shop in 1971. A few days after high-school graduation, I hitchhiked with a pal to Boston (those were kinder, gentler days) to find treasures in the disorganized depths of a surplus shop.
Was it our long hair? Maybe the fact that we were warned three times to get off the New Jersey Turnpike had something to do with it. Somehow, Gary and I found ourselves in a New Jersey jail cell, busted for hitching. The police, expecting to find a stash of drugs in our backpacks, were surprised to discover my 13 kbits of core instead.
"What's this?" the chief growled. I timidly tried to convince him it was computer memory. These were the days when computers cost millions and were tended by an army of white-robed technicians, not hitchhiking hippie freaks. The cops looked dubious but could find nothing to dispute my story. They eventually let us go, and I was still clutching the memory.
A few years later, I experienced an eerie echo of this incident when I lived in a Volks-wagen microbus. The local constabulary, sure that I was running contraband, stopped me in a remote Maine town on my way back from Canada. They found a 6501: the first low-cost microprocessor chip. MOS Technology amazed the electronics world when it released this part, the predecessor of the 6502 of Apple II fame, for only $20. I just had to have one, though I just tossed the part in the glove compartment. Here, too, the officers were unaware of the pending microprocessor revolution and were equally disbelieving of my story about "a computer on a chip." Sure, kid.
Coming back to the present, I showed my employee the core matrix. You know how teen-agers are; she didn't believe a word I said. "Come on, that big thing only stores 13 kbits? It's bigger than my whole computer," she noted, disdainfully, as if I were a Stone Age man showing off my cave-painting technology to a Corel whiz. Looking closer, I realized that 10 of the cores covered an area approximately the same size as a 64-Mbit DRAM die. How things have changed!
My college had a Univac 1108, a $10 million mainframe that serviced all of the university's students. We upgraded the machine, adding 256k words (36 bits each) of additional core memory, at a cost of $500,000. The core featured a 750-nsec cycle time and was the size of several refrigerators. For months, until Univac's engineers got the bugs out, leaning on the box was sure to cause bit dropouts. The bit dropouts almost always crashed the system and drove users into an uproar, especially during final's week when projects were due. The machine simultaneously serviced some 500 users, yet had only 768k words of memory, much less than in one of today's laptops. A 6-ft-long drum memory stored approximately 50 megabytes. The 1108's claim to fame was instruction execution in less than a microsecond, a claim that pales next to today's Pentiums, with few tens of nanoseconds for a price that approaches nothing.
No one dreamed of PCs. Sure, a few stories circulated about the surplus deal of the century, where a clever person picked up an old 7094 for a pittance. Few could afford the electricity, let alone the astronomical air-conditioning costs, required for running such a monster.
IBM's 7094 was a wildly successful mainframe. My school had one, for a while, until it was replaced by the Univac. Core was so expensive that the entire system, the computer that ran a 40,000 student campus, had but a pathetic 64 kwords, with no disk storage. Programs wrote temporary information to tape, keeping a room full of drives whirring constantly. There was no security of which to speak. One of our great delights was running a program that searched for teachers' programs on the input tape, always with the hope of finding grades that could be, uh, "debugged." Eventually, the university wised up and bought an additional Univac with no student accounts or dial-in lines, which ran all of the grading and billing software.
Throughout this period, core was the only random-access read/write memory in common use. It wasn't until the very late '60s that even the smallest MOS memory chips became available. Each core was, and still is, a ferrite bead, perhaps the size of a small "o" on this page. Four wires ran through the center of each corefour wires tediously hand strung by Asian women, who, no doubt, worked for a pittance.
Cores are tiny magnets, each remembering just one bit of information. The trick is to flip the magnetic field of the cores. One direction is a "one"; the opposite field indicates a "zero."
As we know from basic electromagnetics, a changing voltage creates a magnetic field, just as a change in a magnetic field induces a voltage. The wires running inside of the ferrite beads create the fields that flip the direction of magnetization, writing a zero or a one. They also sense the magnetic field, so the computer can read the stored data.
Two of the wires organize the core into an x-y matrix. The core plane is an array of vertical and horizontal wires with a bead at each intersecting node. You can change the state of a bit by sending half the required power down the x and y axes. What a simple addressing scheme! As the bit changes state, it induces a positive or negative pulse in a third wire that runs through all of the cores in a plane. Sensitive amplifiers convert the positive or negative signal to a corresponding zero or one.
Because the amplifiers detect nothing unless the core changes state, reads are destructive. You've got to toggle the bit and then write the data back in on each and every read cycle. It sounds terribly primitive until we think about the awful things we do to keep modern DRAM alive.
Before microprocessors quite caught on, the instrumentation company where I worked embedded Data General Nova minicomputers into products. The Nova used core arranged in a 32k3 16-bit array. The memory was non-volatile, remembering even when there was no power applied.
We regularly left the Nova's boot loader in a small section of core. My fingers are still callused from flipping those toggle switches tens of thousands of times, jamming the binary boot loader into core each time a program crashed so badly it overwrote these instructions.
For some reason, these Nova memories suffered a variety of ills. Core was expensive, around $2000 for 32k words, a lot of money in 1974 dollars. A local shop repaired damaged memory, somehow restringing cores as needed and tuning the sense amplifiers and drive electronics.
As we worked through these reliability issues, my boss, who was the best digital designer I've ever met, related tales of how some military and space projects actually employed core as logic devices. In a former job, he designed systems composed of strands of core strung together in odd patterns to create computational elements. I remember being just as incredulous at his stories as my teen-age employee is at mine.
Yesterday I read of a new ferromagnetic technology that NEC is coupling to DRAMs for increased memory density. Is magnetic memory soon to make a comeback in a new guise?
Just as core memory itself is an anachronism, so is the concept of the core dump. Who has the energy to examine a binary memory image anymore? Surely, if core dumping is to be a useful debugging methodology, at least some sort of symbolic information should be included in the dump.
Unfortunately, Unix continues to litter our drives with sendmail.core, httpd.core, and other binary images each a snapshot of the death throes of a program. I'll set my teen-age employee looking for a way to disable the dumps. Perhaps twenty years on, she'll regale a new generation with her stories of the bad old days of computers, before brain implants supplanted keyboards, when people were not yet integrated into the global-data-processing network.