Memristors in silicon promising for dense, fast memory
bbc.co.uk
bbc.co.uk
To be honest this idea worries me a little. The performance advantage of small and local data structures is one of the main natural forces that encourages software to be small and simple. Software tends to grow over time, both in size and complexity, especially when more people are involved. Unchecked I fear that there would be no natural counterbalance to this tendency.
Put another way, I'm actually a bit glad that Eclipse is horribly slow, because it's an easy-to-observe symptom of the fact that it's a horribly complex stack of software. If software like Eclipse could get by with acceptable performance because it had fast access to vast swaths of memory, it would be that much harder for an upstart competitor in this space (like Light Table) to be disruptive, because Eclipise would perform well enough that competing on speed doesn't impress.
I'm probably oversimplifying a bit, but I do think it generally good for programmers when simpler software also has better performance naturally.
But even if Memristors could be as fast as SRAM, could you out enough of it close enough to the CPU that it truly flattens the memory hierarchy completely? This is where I hit the limits of my knowledge of computer architecture.
As far as complexity: there will always be costs to complexity in terms of agility and reliability. And using less compact data structures often leads to less complex code, anyway.
Yes, but I worry about a world where only the programmers bear the cost of the complexity. If reduced complexity does not benefit the user, it becomes harder to justify time spent on reducing complexity.
> And using less compact data structures often leads to less complex code, anyway.
I disagree, unless you're talking about extreme cases like fancy structure packing. More compact data structures mean less program state. Less program state means less complicated state changes and less redundancy.
Litmus test: if your program has entered a bad state, how much data do you have to inspect to discover what the inconsistency is? And how much code do you have to inspect to figure out how it happened?
It is the users who pay the ultimate price of complexity. Unreliable, expensive software with long release cycles cost them money, time and happiness. A company that does not realize this is doomed. It doesn't matter if the unreliable software runs fast.
As a counter argument, when you are not restricted by performance, you can utilize your memory more effectively to remove complexity from your software.
Well, there's also plenty of times where a more compact data structure can lead to less complex code.
That being said this theoretical limit might not be the main bottleneck right now. Parallelism can also bypass this limit since not all information needs to be processed at the same location.
Not necessarily. Memristors were shown to be capable of performing logical operations [1]. Given that, one can imagine computations migrating through the circuit to stay physically as close as possible to the data thereby eliminating the need for caches.
[1] http://www.nature.com/nature/journal/v464/n7290/full/nature0...
The bottom line was that it was buildable but there were a lot of challenges with the way compilers and what not generated code (or not) for these sorts of systems. I think a couple of projects at Umich and UCB got funded but I don't know if they produced any results.
I dunno what the current capabilities are of compilers for these cell-like architectures, but I recall that there were (still?) serious problems getting good performance out of the PS3 due to the difficulty of it's programming model. I'd hope they've advanced the state of the art some though.
My (entirely naive) brain screams MPI, but I don't know how well that would work in practice.
Another problem is write endurance. RRAM is expected to have be able to take many orders of magnitude more writes before failing than Flash, but its still limited. The fact that you have layers of SRAM cache between it and the processor buffering against repeated writes to the same location is why I'd still be comfortable using it as main memory. Otherwise you could get an infinite loop that could actually damage the memory.
So it's like in Minecraft when you can't make a redstone design any more compact because of limitations in the rules of redstone adjacency.
The joke, of course, is that (if memory serves) modern computers actually use the Harvard architecture- not Von Neumann.
"You do realize that John von Neumann spent the last 10 years of his life singlehandedly developing a theory of computing based on cellular automata? The computer you're reading this blog rant on was his frigging prototype! He was going to throw it out and make a better one! And then he died of cancer, just like my brother Dave did, just like so many people with so much more to give and so much more life to live. And we're not making headway on cancer, either, because our computers and languages are such miserable crap."
http://steve-yegge.blogspot.com.br/2006/03/moores-law-is-cra...
[1]http://hopefullyintersting.blogspot.com/2011/12/resistive-ra...
Listen to Williams' main talk on YouTube. I'm pretty sure they've sorted out how to manufacture memristor-based RAM -- and are licensing the process out already.
I think a simple SiO layer, which is what this newest memristor tech is based on, could be super cheap.
Even if you can't build "big memristors", you could just parallel thousands of them in a single package. Then, they would start being approachable.
Besides, tiny capacitance hasn't stopped anyone from using the likes of varicaps, and huge inductance never stopped anyone from using an inductor. They have their place.
I, for one, want to see a discrete Memristor in all shapes and sizes. If we don't try it, and don't experiment with it, we might be shutting out 1/4 of all electronics.
Luckily, a lot of electronics companies do feel their responsibility as educators. That's why we have samples (I'll teach you to use my chip, and if you become an important circuit designer you'll use my chips in your designs), that's why we have lots of antiquated chips still in production (stuff like OTAs which is of interest only to miniscule hobbyist groups), that's why we can still buy devices in units.
I'm looking forward to it.
See http://www.stanford.edu/class/ee380/fall-schedule-20112012.h... .