Slashdot Mirror


Thanks For the Memories: Touring the Awesome Random Access of Old (hackaday.com)

szczys writes: The RAM we use today is truly amazing in all respects: performance, reliability, price; all have been optimized to the point you can consider memory a solved problem. Equally fascinating is the meandering path that we've taken over the last half century to get here. Drums, tubes, mercury delay lines, dekatrons, and core memory. They're still as interesting as the day electrons first ran through their circuits. Perhaps most amazing is the cost and complexity, both of which make you wonder how they ever manage to be used in production machines. But here's the clincher: despite being difficult and costly to manufacture, they were all very reliable.

22 of 89 comments (clear)

  1. DRAM by johnsmithperson123 · · Score: 3, Insightful

    I suspect we may be nearing the end of DRAM, though only time will tell. DRAM is old and really a bottleneck these days, something is likely going to replace it. At the very least in the next few years the form factors will change from DIMMs to perhaps HBM stacked on-die and fiberoptic DIMMs. At least that would be my next guess, anyway.

    1. Re:DRAM by drinkypoo · · Score: 2, Interesting

      At the very least in the next few years the form factors will change from DIMMs to perhaps HBM stacked on-die and fiberoptic DIMMs.

      We don't need fiberoptic links for memory because it is not inconvenient to provide a very broad path between the CPU and the RAM. They would provide literally no benefit.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:DRAM by phishybongwaters · · Score: 4, Interesting

      Yes and no, if you are thinking about your computer or single server sitting beside you. If you are thinking of next gen data centers and virtualized servers, being able to supply a bus to RAM over a fiber link is very interesting. Think of a server component or appliance you install into a rack, then fiber link to your Hosts to supply more ram. There is a limit to the amount of ram slots on a server, a physical limit. Fiber links would open up the ability to have external ram that doesn't actually need a slot. Fiberlinks take considerably less space. And if this was an option, I suspect you'd have a fiber trunk coming from the host. This could actually be genius.

    3. Re:DRAM by Anonymous Coward · · Score: 4, Interesting

      Optical interconnection is very efficient and good fidelity and low interference, but ease of manufacturing complex interconnection and creating multiple permanent connections is still lacking, compared to electric/metal. In addition to that, drivers/receivers are bulky and dissipate too much power. Before photonics can replace electronics, there'll have to be a revolution in miniaturisation and low power for fiber drivers/receivers, as well as analogue mass production technological processes to board etching and component soldering of today.

    4. Re:DRAM by serviscope_minor · · Score: 3, Informative

      Yes and no, if you are thinking about your computer or single server sitting beside you. If you are thinking of next gen data centers and virtualized servers, being able to supply a bus to RAM over a fiber link is very interesting.

      Infiniband essentially already does this: it's a high speed, low latency interconnect which provides remote memory access and works over copper or fiber. It's only moderately low latency though, since the speed of light is limited.

      Every meter gives 3 nanoseconds of latency, more like 4 because the signals are sub-luminal in speed. You won't have to have a long cable before you add a serious latency penalty compared to local RAM. That's never mind the protocol and networking overhead, which for infiniband (which is designed for low latency for supercomputers) is still 500ns, dwarfing the RAM latency.

      There have in fact been systems made to essentuially build virtual machines with distributed memory like this. The trouble is they suck beause the code is written assuming fast access to RAM.

      Big supercomputer codes which essentially have to deal with this all the time use MPI, so they can know about the high latency (i.e. 500nS) transfers and schedule them long in advance.

      --
      SJW n. One who posts facts.
  2. Look ahead by samuel.progin · · Score: 4, Interesting

    Saying that a problem is solved is risky. Remember that the physics was solved shortly before Einstein et all! The future might reshape our perception, with for instance RAM and ROM convergence: https://en.wikipedia.org/wiki/...

  3. Its Cosmic by Anonymous Coward · · Score: 2, Interesting

    One thing we have forgotten about is the impact (literally) of cosmic rays on memory cells. The old core planes were not very sensitive to the effect of an alpha particle from space zipping through the little donuts and changing values. But solid state RAM certainly was. In the old days, funny things would occasionally happen as a result of cells having their stored values flipped from 0 to 1 or back. These were rare random events that became more frequent as the amount of memory and its density grew. High reliability machines like servers used error correcting memory (ECC) that added a few extra bits so a change could be detected when the cell was read and hopefully recovered. The source of the problem is still there.. and so is ECC memory.

    1. Re:Its Cosmic by EmagGeek · · Score: 5, Informative

      Alpha Particles from space do not penetrate the building that the computer is in, nor the computer case, nor the plastic package of the memory devices themselves.

      Alpha particle bit errors are caused by alpha particle emissions within the memory cell itself, as there is a minute amount of radioactive material in all semiconductor devices, including memory.

      However, radiation-induced bit errors are seldom actually caused by package alpha particle emissions. The more likely space-related culprit is neutron flux. It has been found that DRAM bit error rates increase dramatically with altitude, and that solar events increase the rates further.

      Fun stuff.

    2. Re:Its Cosmic by kheldan · · Score: 2

      As I recall, if the memory itself was packaged in ceramic rather than plastic, there was potentially a higher error rate from that particular source, because of the greater chance of radioactive material in the ceramic used.

      --
      Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
  4. Uhh whaaaa? by Dunbal · · Score: 3, Funny

    But here's the clincher: despite being difficult and costly to manufacture, they were all very reliable.

    That was kind of built into the design spec. The guy who build unreliable memory (you know, the one who came up with the Alzheimer Machine) - well he went bankrupt pretty quick right alongside the guy who invented a horseless carriage that only needed a horse half the time.

    --
    Seven puppies were harmed during the making of this post.
    1. Re:Uhh whaaaa? by hey! · · Score: 4, Interesting

      On the other hand the relationship between a system's reliability and the reliability of the system's components isn't one-to-one. You can build unreliable systems out of reliable components, and more surprisingly, you can build reliable systems out of unreliable components. That latter principle is the basis for the Internet, which provides end-to-end communication that is more reliable than any of the possible paths between those endpoints.

      Every component is unreliable to some degree; as it becomes increasingly reliable it moves from unusable, to something you can work around, to something whose potential failure you can ignore in many applications.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  5. Re:Solved Problem?!?!?? by BitZtream · · Score: 3, Informative

    slower than even the slowest CPU cache.

    CPU cache IS MEMORY, so how can it be slower than itself?

    And before I quote the rest of your trash and make you look stupid, lets point out the most important fact here:

    You can have RAM that runs as fast as CPU cache, you just can't afford it.. That CPU with 12MB of CPU cache is mostly expensive BECAUSE OF THE 12MB OF CACHE. and the difficulty in getting that much RAM to operate reliably at those speeds results in low yields, and increased consumer cost.

    Even assuming we use the entire ~12MB of L3 cache as instruction cache (which is impossible really unless those instructions don't require any data access, which is utterly implausible), any modern CPU can blow through that in much less time than it takes a DDRx memory controller to set up a RAS.

    Did you seriously imply that a Xeon CPU can blow throw 12MB of instruction cache in the amount of time it takes to do one complex instruction? That IS what you said. Which takes what? 40 clock cycles total, in the extreme worst case? (on anything with a 12MB cache which are going to all be high end/fast chips). So you're claiming that in 40 clock cycles it can empty a 12MB cache ... No. In 40 clock cycles ... it can load EXACTLY 40 registers with data from cache ASSUMING IT DOESN'T DO ANYTHING ELSE. So awesome, you just loaded 320 bytes of RAM into CPU registers ... and didn't use it for anything at all.

    Do a BSR or BSF on 64 bit number takes 16 clock cycles all by itself!

    The one and only thing slower than memory access is disk access, and even there we are closing the gap. Memory has not gotten appreciably faster in a decade, unless of course you ask marketing people.

    DDR3's base rate is 800MT/s. DDR4's base rate is 2133MT/s ... yea, 2.5x is not appreciably faster or anything.

    The one and only thing slower than memory access is disk access, and even there we are closing the gap.

    Awe thats cute, you think SSDs are somewhere near RAM speeds. Just because SSDs are ridiculously fast at some things compared to spinning rust doesn't make them magically fast. We've had disks on arrays capable of saturating CPU bandwidth for years too.

    This is literally the stupidest thing I've seen posted on Slashdot in a long time, since at least yesterday!

    If you're referring to your post, then yes, I agree. It is pretty fucking stupid.

    Do you know what DDR means? It means DOUBLE data rate. Twice as fast. (not really, but close enough for hand grenades). Do you have any idea what DDR2 did on top of that? And 3 ... and 4 ...

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  6. Overhaul the whole architecture by ArchieBunker · · Score: 2

    Read up on what IBM did for their AS/400 architecture. Very brilliant work.

    --
    Only the State obtains its revenue by coercion. - Murray Rothbard
  7. not neutrons, it's cosmic rays by Anonymous Coward · · Score: 5, Informative

    The bit flips aren't due to neutrons, but to other high energy particles (cosmic rays).
    And modern memory design tolerates this quite well (on chip EDAC, for instance).

    But that's not the dominant source of errors any more. It's more things like electrical noise (signal integrity is another term). As you reduce the size of the device holding a single bit, you're starting to get down to where the thermal noise is a significant fraction of the "signal" (i.e. the presence or absence of charge in that bit storage).

  8. Drum Memory by T.E.D. · · Score: 2

    I've heard some really interesting stories about Drum memory.

    Since you had to wait for your desired read/write location to rotate under the head, and since this was back in the CISC era when the execution time of every instruction was known and published, developers would "optimize" their memory accesses by placing their data on the drum in the exact spot that each byte would be under the head when the instruction to read or write it was processed.

    Even more interestingly, at least one platform made use of this architecture by using an assembly language that effectively had a goto at the end of every instruction. That way you could scatter your code on the drum to perform the same optimization.

    I saw another story about early rotating-drum systems being put on USN ships. Supposedly the first time they tried to turn at sea the navigators discovered the hard way that the designers failed to account for the gyroscopic property of having a large rotating metal drum on board...

  9. Re:Difficult? by vtcodger · · Score: 3, Interesting

    Apparently back in the day, core memory actually was a bit difficult to manufacture. Back in the 1960s, they wired the cores by hand and that apparently required quite a bit of manual dexterity. The first digital computer I ever saw was SWAC at UCLA (https://en.wikipedia.org/wiki/SWAC_(computer)). 256 37 bit words of Cathode Ray Tube memory. I have no real idea how it worked, but I recall that on days when it chose to work, there were a bunch of CRTs displaying an 8x8 matrix of zeros and ones. The professor in charge of the thing told us in his rather thick European accent that they were trying to augment the CRT memory with core, but that so far his graduate student(s) hadn't been able to thread the core wires well enough.

    --
    You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  10. Re:Solved Problem?!?!?? by radarskiy · · Score: 2

    "Random Access Memory (RAM) can only access one memory address at once. "

    Random Access Memory can access memory randomly. The term includes no prior restraint on the number of ports. Internal caches are (typically) specifically SRAM, where you will note the "RAM" portion of the acronym.

    "If you tried to use it for CPU cache, you would have to store the address of each cached word (collection of bytes) along with the value"

    Caches already store the address of each cached word. This is the Tag RAM. Although once you are in the CPU you are typically operation on a portion of the address since the CPU internally can only access a portion of the address space at once. This portion is the Tag.

  11. Re:Difficult? by toonces33 · · Score: 2

    I actually have some core memory sitting in a box. I have no recollection now many bits, but it isn't all that many. When you (carefully) remove the cover, you see how small the individual elements are. The stories I heard back at the time were of Asian women with small fingers threading the wires through these things by hand.

  12. Re:Difficult? by GerryGilmore · · Score: 3, Interesting

    Yep, I can verify that. Worked for Data General and the original Nova series used all core memory. The "core stacks" arrived in Mass from Asia and were then mounted on the memory card itself. Took the cover off of a dead one one time and it looked like velcro until I got it under a magnifying lamp. Even then, I was amazed at the dexterity it must take!

  13. Re:Difficult? by NixieBunny · · Score: 2

    I have a 2" diameter jar with half a megabit of core memory, but it's not strung yet. They are extra-tiny cores. My coworker saved the core from a PDP-11 computer, I think it's 16k bytes. One board for the cores, one for the driver circuits.

    --
    The determined Real Programmer can write Fortran programs in any language.
  14. Re:My first computer, ever.. by Tablizer · · Score: 2

    built on perfboard, and had 256B (yes, not a typo: 256 bytes) of static RAM memory...When you're writing everything in machine code, it's amazing how much you can get done.

    TFA: from the book "Build Your Own Working Digital Computer" in 1968. The main program storage was an oatmeal container covered in foil...

    One oatmeal container oughtta be enough for anyone. -Gill Bates

  15. Re:Difficult? by RogerWilco · · Score: 2

    There's a video in the linked article that shows how core memory is made, and it is indeed a finicky manual process manipulating things to small for even pliers.

    --
    RogerWilco the Adventurous Janitor