5 ms·
Examining the core memory module inside a vintage IBM 1401 mainframe
- larrys 11y agoWhat I'd like to see is a "Show HN: I built a working core memory".
- detaro 11y agoI've seen several DIY projects in the past that used core memory -> should be google-able.
- gattilorenz 11y agoa very recent one: http://hackaday.com/2015/08/31/core-memory-for-the-hard-core http://hackaday.com/2015/08/31/core-memory-for-the-hard-core
- tajen 11y agoIt seems to be all copper. How come one wire doesn't conduct to all other wires?
- TheLoneWolfling 11y agoIt's magnet wire. It may appear to be all-copper, but it is in fact coated with an insulator. (It's often called enameled wire, but it really generally is a polymer coating)
- kens 11y agoSomeone built a working one-bit core memory: https://sites.google.com/site/wayneholder/one-bit-ferrite-core-memory https://sites.google.com/site/wayneholder/one-bit-ferrite-co... But more impressive is the 32-bit core memory shield for Arduino: http://www.corememoryshield.com/report.html http://www.corememoryshield.com/report.html
- timonoko 11y agoYou could buy 16-word ROM, which copied bootstrap to core automagigally. But we had no money for such luxuries, and we had to program it manually from front panel switches almost everyday.
- joelberman 11y agoIIRC you could push a button and it would automatically read a card into locations 1 through 80 and start executing at location 1. First instruction had to be a set word mark (, i thing) because instructions were variable length and needed a word mark to denote the end. I also seem to remember that 4K meant 4,000 not 4096. Long time ago and we all danced a happy dance when the 1401 came in to replace our 407 accounting machine with its plugboards. Well not everyone. Some were afraid of the new machine and certain that the time was still not right.
- kens 11y agoYour description of the IBM 1401 startup sequence is absolutely right. I'll fill in some details since it's a strange process. There's no operating system at all: pressing the load button on the card reader causes one card to be read into memory and the first instruction executed. The first few cards in a program deck have special loader initialization code. As you say, the first instruction is "write two word marks", making the next two instructions executable. The next few instructions are more "write two word marks" instructions, until there enough word marks in place to run a few other instructions, which clear memory and load the next card. The cards for the program to be executed have program code on the left half and loader code on the right half. That is, each card has code to move its program code into the right place in memory, add necessary word marks, and then load the next card. This code is running from the reader buffer (locations 1 through 80). The final card jumps to the location in memory to start execution. TL;DR: Since the IBM 1401 doesn't have an operating system, when loading a program from cards, each card also contains the code to load itself into memory. And yes, 4K of memory is 4000 characters, not 4096, because it's a decimal machine, not a binary machine.
- tajen 11y ago
- JoeAltmaier 11y agoI have one or two of those planes in a drawer somewhere. After all this time, the ferrite cores are cracking and half-round bits litter the bottom of the drawer.
- DanBC 11y agoYou can buy the ferrite beads. Re-looming such a thing would be "fun".
- salgernon 11y agoPossibly more interesting would be to attempt to read the data still there - it is non-volatile, after all.
- JoeAltmaier 11y agoI'm guessing: 1's and 0's. Remember a plane was a bitslice through a word.
- Vexs 11y agoTo quote DwarfFortress, !!FUN!!. It would be neat to do though. wonder if you could make one work like an i2c eeprom chip, have it act as a drop-in replacement. Or rather, an "add jumper wires and put in a box outside of it replacement."
- joezydeco 11y agoThe IBM 1401 was pretty exotic for it's time, but there was a more common product using toroid memory even earlier than the 1401. Seeburg's line of jukeboxes from 1955 onward used this mysterious system called TORMAT, which essentially was a 160-bit toroid memory device (for a jukebox that held 160 selections). Bits were flipped on as you paid for choices and the loading arm seeked the next record by checking the bits in memory. This also had the positive side-effect of people selecting the same record not resulting in multiple plays, since you were flipping on a bit that was already flipped. https://www.flippers.com/Seeburg-tormat.html https://www.flippers.com/Seeburg-tormat.html The TORMAT was used up until 1974, when it was replaced with silicon-based memory.
- Animats 11y agoIBM later developed looms capable of weaving core memory planes automatically, and the price started to drop. Not every far. Around 1970, a megabyte of core memory cost about a million dollars.
- kens 11y agoIf you're interested in the machines IBM used to weave cores, see: http://ibm-1401.info/IBMCoreArraysIEEEMagnetics1969.pdf http://ibm-1401.info/IBMCoreArraysIEEEMagnetics1969.pdf One interesting thing they did was to thread extra cores onto each wire so they could crush the bad cores and still have enough to continue. (They would test after wiring one direction, before wiring the second direction.)
- DennisP 11y agoNeat...My dad was a customer engineer for IBM. He took me to work in the early 1970s, and one of the things he showed me was a memory cabinet that looked just like that.
- chiph 11y agoThe first system I worked on in the USAF had 512 bytes of core memory¹. But it only used 320 of them, as the system was hard-coded to 80-columns (for both punch-card and printer). Since it was fully duplex, it had 2 send and 2 receive buffers of 80 characters each. It would flip the role of the buffers as they became full or empty. I once had to replace the core memory array when one bit went bad. By pure bad luck, it was in one of the first few columns where the end-of-message sequence was expected, and the bad ferrite meant the system got hung up waiting for an EOM that was never detected. Bad donut. No message. ;/ ¹ https://c1.staticflickr.com/1/40/109018526_8edb26b499_b.jpg https://c1.staticflickr.com/1/40/109018526_8edb26b499_b.jpg
- yoz 11y agoSince nobody's mentioned it yet: If you want a musical accompaniment to this piece, try Jóhann Jóhannsson's amazing "IBM 1401: A User's Manual" http://ausersmanual.org/ http://ausersmanual.org/ Listen to part 1 here: https://www.youtube.com/watch?v=tBw_wSoVQrY https://www.youtube.com/watch?v=tBw_wSoVQrY
- cbd1984 11y agoThe 1401 wasn't a mainframe. It was a smaller computer designed to replace unit-record systems and was, in fact, sometimes used as a mainframe peripheral. The mainframe of the era was something in the 7000 or 700 series, I think.
- kens 11y agoLinguistic arguments are somewhat pointless, but IBM disagrees with you: http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/mainframe/ http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/mainfra... The IEEE also disagrees: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5406338 http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5406338