Written by David Tebbutt, Personal Computer World 12/80 - scanned

CRAM

Followers of our series `Gateways to logic' may remember a passing reference to Granny's red flannel nightie. This reminded David Tebbutt of a fearsome device he encountered many years ago...

Derrick Daine's description of a binary selection box (`Gateways to Logic', PCW Oct 1980) reminded me of a similar technique used in the early sixties on large mainframe computers. In those days mass data storage tended to be on magnetic drums or magnetic tape. The disadvantage of a drum was that it couldn't be exchanged, so as the database grew the only option was to increase the number of drums. The advantage of a drum was that each track possessed its own read/write heads so access to data was never more than the time taken for a single drum revolution. The disadvantage of a magnetic tape was that to access a single record it was necessary to pass over all the records between the previous position and the new record. Many system design courses spent a large proportion of their time describing how files should be designed and manipulated to minimise the effect of this problem. In the end the answer was to sort records into the same sequence for each of the tapes being processed and then to run the program, pulling the records in order and skipping over those not required. Effective but slow and tedious.

In the late fifties someone in NCR had the bright idea of a card-based Random Access Memory device (CRAM) which combined the rapid access of the drum with the high volume, exchangeable storage offered by tape. The 6cwt CRAM unit simulated a drum by wrapping a sheet of magnetic material around a revolving capstan and exchanging one sheet for another under program control. The sheets, or cards as they were called, were made of mylar material coated on one side with carbon to help dissipate static electricity and on the other with a magnetic oxide covered with wax. Each card measured about 3 1/4in x 14in x .005in and was supplied in a `deck' varying in content between 128 and 384 cards. Each card could be imagined as a number of strips of magnetic tape laid side by side along the length of the card. The number of tracks varied according to the method of data recording, parallel encoding having seven tracks and serial either 56 or 144.

At the top of each card was a series of notches which, according to their shape, represented a binary O or 1. In this way a card containing eight notches could be made to represent any value between O and 255 - a familiar fact to most PCW readers. This then gave the programmer the ability to address any individual card regardless of its physical location within the pack. Some later packs contained 384 cards, achieved by having nine slots but only using eight of them - slot eight being zero whenever slot nine had a value of 1.

As mentioned earlier, the data were arranged in either serial or parallel form on the face of the card depending on the particular CRAM model concerned. In the early days data were held on eight bit wide tracks, six bits for data, one for parity and one for `clocking' and each card contained seven such tracks. Later models recorded data on 56 or 144 single bit tracks in 14-bit `words'. Clocking on these models was automatic and parity was taken care of by two of the 14 bits, i.e. six bits plus one parity bit, twice.

In this way the largest and most recent CRAM deck was capable of holding 145,041,408 data characters. Not bad for an exchangeable fast access device, huh?

It worked through an amazing combination of rotating rods, revolving drums, raceways and vacuums. The deck of cards was held at its edges by a pair of rods called gating rods. These fitted nicely into notches cut into the sides of each card. While the deck was held thus, a series of selection rods were rotated in the notches at the top of the card deck. Each slot contained a single rod which positioned itself either to the slot's left or right. Perhaps I should digress slightly at this point to explain that every slot started off life with two flanges. In the card number encoding process one of these flanges was removed depending on whether a binary 0 or 1 was to be coded. This left one flange either to the right or the left of the slot.

Now, returning to the selection rods, once these had positioned themselves then the gating rods were released, allowing any cards to fall which were not supported by at least one of the selection rods. With any luck only one card could be released - the card called for by the programmer. It wasn't unknown for people to make mistakes when punching up the slots, or for flanges to tear, in which case a `double drop' would occur, causing much aggravation for all concerned. A `hanger' alarm would sound if a card failed to reach the capstan within a reasonable time. This could be the result of a jam or a missing card.

On a good day, though, only one card would drop, thus beginning a very interesting journey. It would fall (courtesy of gravity in the earlier models but assisted by 'accelerator rollers' in later models) into the drop ramp which would guide the leading edge of the card to the rapidly spinning aluminium capstan. Now the capstan was a curious affair because it revolved around a series of fixed internal chambers which either contained a vacuum or ambient air pressure. To enable these chambers to operate on the card the capstan was perforated.

The card was sucked to the capstan at the foot of the drop ramp, thus enabling it to pick up to the capstan's rotational speed of 380in per second. When the card reached the read/write head area the chamber was at ambient pressure but the read/write head assembly contained its own vacuum chamber thus pulling the card back to the capstan. The choice left now was either to allow the card to continue for another revolution with the capstan, or for it to be replaced on the selection rods. This was easily accomplished by making the next chamber either a vacuum or ambient pressure, which caused the card to fly off up the `raceway' over the top of the entire assembly and back onto the selection rods. The card was always replaced at the right hand side of the deck which didn't cause any selection problems - it just meant that the cards were never in any particular physical sequence.

As time went by the design changed but the basic principles remained the same. Things like movable read/write heads allowed more data to be packed on the cards but without significantly increasing access times. This was because the heads could be moved while the card was dropping. On that particular model 36 heads could be moved to four different positions, allowing 144 tracks per card.

Anyone who ever worked with CRAM remembers it with affection and tall stories abound. My particular favourite is that NCR was so keen to prevent imitations that it tried to patent the use of gravity to feed cards to the drum. Whether this is true or not, the fact is that the like of CRAM hasn't been seen anywhere else and it was soon overtaken by disk storage. In its time, though, it had much to offer and was an ingenious solution to the problems of its day.