What is so "Random" as in Random Access Memory? And what is that "core" as in core dump?

What is so "Random" as in Random Access Memory? And what is that "core" as in core dump?

Let me explain this for you, and the answers are actually related. To understand this, we need to rewind the tape to World War II, just when Adolf had declared war on US of A, something which might have seemed like a mighty fine idea at the time but which in the end actually was not. What happened when US entered the war was that they needed firing tables for the tanks, and guns and what have you not, and these were difficult to produce manually, as was the case then, so a project was started to produce said tables used what was to become the world first cmputer that has some kind of resemblence to what todays computers look like, the ENIAC. Not that there weren't computers before ENIAC, like Atanasoffs ABC, the Colossus built by Alan Turing and Zuses machines built in germany and some more and of a similar design. But it was the ENIAC that inspired the so-call Von Neumann architecture from John von Neumann (although some claim it was Presbert Eckert that actually created most of it).

Anyway, said computer, with it's around 18.000 tubes and loads or wiring, switches and stuff, also needed some memory. The lead engineer for getting ENIAC running was Presper Eckert, who when the project started in 1943 was 24 years old when the construction of ENIAC started. Before ENIAC Eckert had been involved with Radar research and had come into contact with mercury-based acoustic delay lines. This is an odd contraption where you have mercury in a tube, you then add a device on one end that can produce an acoustic signal to travel thrugh the mercury and later be picked up at the other end. Due to the signal traveling slowly through the delay line, the presence of the signal is "remembered" while it is traveling through the mercury. If you then feed back the "output" of the tube back to the input, you have a device that can act as a memory. If you insert multiple pulses at predefined intervals you can "store" data in this device.

What would you think about using this thing as a memory for your new shiny android phone? Nah, that would be difficult. And when you think about it, even excluding the complexity of physical constructions and the limited amount of data that it can hold, there is one more difficult aspect. If you insert a pulse into the tube and you later want to know if that pulse was there or not, you have to wait for said pulse, or absence of it, to present itself in the feedback loop about to be feed back. This is different from todays RAM, where you just check the memory location for the data you want to check, there is no waiting.

Mercury acoustic delay lines was not the only oddball memory device used in the early years of computing, another common one was drum memory. These days drum memory is often mistaken for being secondary memory, like hard drives, and an odd aspect of drum memory was that it was used as both. Drum machines, as they were called, were relatively popular low-end computers in the 1950's, as they were reasonably powerful and low priced, but they were also awfully slow and programming them was not for the faint hearted. If you were really good at programming a drum memory machine you laid out your data in memory in such as way so that when you have read one item and wanted to read the next, you were at a point when this data was available to be read from the drum, i.e. your program chad to compansate for the drum rotational speed.

There were many other types of memory invented and put to use in the computers of the 1950's, but computer makers were still on the outlook for the optimal memory device so that computers can be made powerful enough to solve important world problems, such as distributing images of cute cats around the globe. One interesting contraption that came into use for a while was the Williams Tube memory. This is a seriously odd thing and whoever came up with the idea (possible someone called Williams. Or Tube) had likely overdosed on some prescription drugs (actually they hadn't, they were seriously smart). Whatever the case, the Williams Tube actually worked. The idea behind the Williams Tube was that an old schoold TV tube was used as memory, then each dot on the tube was a "bit" (that was not a term invented back then) and each bit could be read by a light sensitive device. Again, you had to sweep the screen and refresh it for it to work, but the light in a "bit" stayed on long enough. There are two important things with this type of memory, one is that if you think about it, in difference to the mercury acoustic delay line, you don't have to wait for a signal, the state of all "bits" are always displayed, so this is actually Random Access Memory (it is considered being the first RAM). The WIllams Tube actually invented by two British Engineers, you know the kind of engineer that consider oil leaks in cars being a good thing and excels at designing electical installations that cause immediate death if you do anything ever so slightly wrong, like turning on the lights. Before I am done with the WIlliams Tube it also goes without saying that another advantage of the Williams Tube was that when it was not being used as computer memory it would show reruns of Downton Abbey.

The Williams Tube was used for a while, but then the Americans came along and made things boring again by inventing the colour TV and "Perry Mason" (starring Raymond Burr). No wait, that is not what they did. No, the US defence started investing in a flight simulator called Whirlwind, and initially this was to have an analog computer but soon this changed to instead using a digital computer (This was no big success as it lacked the ability to run Facebook, although Doom was OK). The digital computer in Whirdwind also needed some memory and even though Random Access Memory was on the wish-list for the project, the Willams Tube was just too unreliable (also, it is rumoured that it leaked oil) so Jay Forrester, who was part of the team, invented a Random Access Memory system of his own, just like any engineer looking to build a computer would do. This memory system used magnetic ferrite cores (see illustration at the top) where two wires would activate a code and a third would write (magnetize / demagnetize) of read the state of said core. This was ingenious really and this technology was in use way into the 1970's.

The ferrite cores at the base of this type of memory meant that it got the name "core memory" and this in turn game name to what happens when a program fails miserably and you want to know what was in memory when then happened, you create a "core dump".

So Random in RAM is there because at first memory access really wasn't random. Random is here used in the sense that a program can read any data any time and not in the sense that the data that is read is "random" (unless it is a British computer, which will also leak oil). And the core dump is called just that as the memory that was dumped was "core memory".

/Karlsson

In the 90s I visited the Ericsson factory in ?stersund, where they still produced core memories as spare parts for old telephone switches!

I think that the way how cpu divides memory into 4k blocks could be better done. Look at how logical volumes has changed from a bitmap approach to start-end approach, which makes both access faster and also been able to utilize storage better. If such changes will be performed than the memory could be stored more in sequences. There was an university in UK that tried change this on an open powerpc with great result. The scan time was reduced and this waste of cpu could be used for other purposes. Thanks for sharing

Sylvain Arbaudie

// performance and problem-solving minded data architect // jack of all MariaDB trades (and master of a few) // my posts reflect my personal views // praise the Omnissiah //

9 个月

Thanks a lot for that piece of knowledge. I love it.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了