Core Memory Upgrade For Arduino

Linux programs, when they misbehave, produce core dumps. The reason they have that name is that magnetic core memory was the primary storage for computers back in the old days and many of us still refer to a computer’s main memory as “core.” If you ever wanted to have a computer with real core memory you can get a board that plugs into an Arduino and provides it with a 32-bit core storage. Of course, the Arduino can’t directly run programs out of the memory and as designer [Jussi Kilpeläinen] mentions, it is “hilariously impractical.” The board has been around a little while, but a recent video shined a spotlight on this retro design.

Impractical or not, there’s something charming about having real magnetic core memory on a modern CPU. The core plane isn’t as dense as the old commercial offerings that could fit 32 kilobits (not bytes) into only a cubic foot. We’ll leave the math about how much your 8-gigabyte laptop would have to grow to use core memory to you.

Honestly, this is purely a novelty, but we do miss core memory somewhat. It was inherently nonvolatile. You could turn the computer off, turn it back on, and everything was just how you left it. Sure, it was peculiar that reading a bit also destroyed it, but many of the old computers had the write after read cycle built into the CPU architecture so that it wasn’t a big deal.

If you want to look at how it was to repair a big core system, we looked at that earlier. Surprisingly, though, this isn’t the first Arduino core memory rig we’ve seen.

47 thoughts on “Core Memory Upgrade For Arduino

      1. More capacity or physically larger?

        My dad had a core card out of an IBM S/360 or 1401 — beads appeared to be the same size as those in the image, but the wires were thinner and the bead spacing was much denser. Would not want to be the person fixing a broken sense wire there…

          1. More likely megaword, most computers then had thier storage in terms of the native word size.

            Ie the PDP8 often has 32k word of memory… which is actually 48k bytes.

          2. No, cb88 it was bytes, I was there. It doesn’t change the point I was making that it was very expensive compared to the roughly 1p/Mb we pay now. That’s 50 years of progress for you.

  1. People forget that there were computer hobbyists before the Altair 8800 and the like. Not many, but they existed. There was the Amateur Computer Society that roped some in . They’d scrounged up old systems, were building from scratch (using transistor or logic ICs), maybe just dreaming. Often they didn’t have a computer, they had a pile of part or boards and were working towards building or repairing a computer. So there would have been core memory there.

    The November 1972 issue of “73” had an article about building a computer, not a construction article but a mapping of what was involved. Core memory was a key part, just a few years later that wasn’t in the picture. And if you look at the surplus ads around that time, you could buy core memory. Not a lot of it and maybe not practical for home use (surplus was surplus, it was up to the buyer to make use if it, selling it didn’t require that it be practical), but it was there. Most readers wouldn’t have any use for it, but it was there.

    Michael

    1. One of my favorite articles from Kilobaud magazine was the profile they did of Don Tarbell and his computer he built back before the 8800. Some years later, he bought an EPROM programmer from the company I was working for at the time and had called for some presale question. Being one of 3 engineers in the company, he wound up talking to me and I was like “Don Tarbell? Are you THE Don Tarbell?” He was clearly amused or bemused that I knew who he was and was asking him all these questions about his machine.

      Oh wow, here’s the article on page 132: https://archive.org/details/kilobaudmagazine-1977-05

      I think I have the paper copy somewhere. I don’t know if I have all my old kilobauds but I know I have some of them.

  2. Years ago when I was on the team doing the operating system for the nation’s first multi-state online banking system, they sent me out to our factory in California because they could get me a whole shift in the middle of the night with a computer system big enough. Next to the big system in a pond of light in the middle of the gigantic dark factory was a metal stand with what appeared to be a small rug, but looking closer, it was tiny “cores” of ferrite woven together just as the diagrams above. Came close to knocking it over as a rushed to tend to a misbehaving tape drive.

    Blast from the veeeery long ago past.

  3. Finally a project that uses VHDL instead of Verilog.
    Verilog equals America
    VHDL equals the rest of the world

    I love the irony that the CPLD has 32 macro cells to interface to a 32 bit core memory

      1. I can see where your coming from as a have done the early languages like [FORTRAN, COBOL, Pascal, LISP]… look LISP in an array! the mind boggles.

        But both VHDL and Verilog are definition languages and not programming languages. VHDL is definitive whereas Verilog can be ambiguous.

        I see a lot of programing like coding in HDLs now and that not a great issue with VHDL as it will synthesize to the same thing anyway but it is an error prone technique with Verilog.

    1. My company (an ARM SoC vendor) uses SystemVerilog and SystemC to do high-level synthesis. I’m on the architecture validation side (software) but as far as I know there isn’t equivalent tools for VHDL. Although modules can be done in VHDL and pulled into a SystemVerilog project, our ability to do simulation for the software developers is more limited for those modules.

      If making an ASIC to license in European markets is the goal, then VDHL all the way. For US markets VHDL can be fine if you’re selling something pre-packaged and won’t need much tinkering. VHDL is preferred for US government contracts as well, but I prefer working in the free-wheeling private sector.

  4. I you had ever had to re-knit a core memory module, you would never ever think of building one again. I’ve done it and its no fun at all. It is a cool learning tool that gives some idea of how a memory would work.

    1. Now, there’s a skill that’s probably not used very often today.
      But, like COBOL programming, when someone needs a core array repaired, you can kinda name your own price :-)

  5. Nice project! This is a technology that I’ve wanted to work with for awhile. It may not have the capabilities of modern technologies, but the physicality of it lends itself to art. If I could get a grant to implement it, there is a project that I’ve been working on that would attempt to weave the core memory like mycelium and use as a shared memory storage, which could be accessed by nodes distributed across it, like mushrooms, and light up.

  6. Guys! Have you heard of FRAM? or “Ferroelectric RAM”? It’s basically microscopic core store.

    It’s not massively expensive either, 1Mbit is about £10/$12. I’ve used it in my geiger counter project to store frequently re-written data, the chip i used is the CYPRESS FM24V10, which is I2C and works down to about 2V, can be used in place of standard 24 series I2C eeprom’s too.

    The Wiki on Ferroelectric RAM is quite interesting and worth a read, mentions the destructive read process necessitating the Write after Read architecture.

    1. FRAM? This is ferroelectric, so there is some similarity in the operational concept, but I see it as closer to DRAM, with some special dielectric materials. When you look for the modern equivalent of core memory you have to look for MRAM.

      1. Yea, I see what you’re saying, but the main caveat is that FRAM is completely non-volatile, DRAM requires power and constant refreshing every so often (typically 65ms) or the data is lost.

        Do you have any examples of MRAM devices? I’d be interested to see one.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.