Live data from Hacker News

HP plans to release first memristor, alternative to flash and SSDs in 18 months

nextbigfuture.com

31–40 of 55 posts

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#31
post #30
post #28

Enlarge the data bus and...are we finally finding a way out of the von Neuman architecture?

Is the Von Neumann architecture related to the data bus?

It operates by pushing data back and forth across it. Backus argued that that "Von Neumann bottleneck" of not being able to access program and data at the same time ought to be done away with somehow in his "Can Programming Be Liberated From The Von Neumann Style" http://www.stanford.edu/class/cs242/readings/backus.pdf

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#32
post #30

Earlier quoted context omitted.

Is the Von Neumann architecture related to the data bus?

It operates by pushing data back and forth across it. Backus argued that that "Von Neumann bottleneck" of not being able to access program and data at the same time ought to be done away with somehow in his "Can Programming Be Liberated From The Von Neumann Style" http://www.stanford.edu/class/cs242/readings/backus.pdf

I... wish I understood. I'm just a lowly Blub programmer.

An executable is often less than 1MB, and certainly always less than 100MB. In contrast, a 14GB video game still loads pretty quickly, and the data that goes across the bus per frame is often a couple orders of magnitude larger than the program executable itself.

I know I'm missing something obvious...

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#33
post #32

Earlier quoted context omitted.

It operates by pushing data back and forth across it. Backus argued that that "Von Neumann bottleneck" of not being able to access program and data at the same time ought to be done away with somehow in his "Can Programming Be Liberated From The Von Neumann Style" http://www.stanford.edu/class/cs242/readings/backus.pdf

I... wish I understood. I'm just a lowly Blub programmer. An executable is often less than 1MB, and certainly always less than 100MB. In contrast, a 14GB video game still loads pretty quickly, and the data that goes across the bus per frame is often a couple orders of magnitude larger than the program executable itself. I know I'm missing something obvious...

The Von Neumann architecture refers to the idea of a computer that has a CPU with a separate memory which stores both programs and data (as pretty much all computers do today). In this type of system the bus between memory and CPU becomes a bottleneck. A non-Von-Neumann architecture might look more like the brain, which doesn't have a CPU at all, but instead colocates processing with memory, eliminating the "memory bus" bottleneck and enabling massive parallelism.

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#34
post #32

Earlier quoted context omitted.

It operates by pushing data back and forth across it. Backus argued that that "Von Neumann bottleneck" of not being able to access program and data at the same time ought to be done away with somehow in his "Can Programming Be Liberated From The Von Neumann Style" http://www.stanford.edu/class/cs242/readings/backus.pdf

I... wish I understood. I'm just a lowly Blub programmer. An executable is often less than 1MB, and certainly always less than 100MB. In contrast, a 14GB video game still loads pretty quickly, and the data that goes across the bus per frame is often a couple orders of magnitude larger than the program executable itself. I know I'm missing something obvious...

Modern computers are extremely fast, and can still do tremendous amounts of computations despite the limitations of the Von Neumann architecture. But make no mistake, the Von Neumann bottleneck is a serious and fundamental problem. The CPU has to spend a lot of effort shuttling data back and forth. Worse yet, it has to spend a lot of time waiting on data (swapping to/from disk, for example). Even when you're CPU is at 100% utilization the vast majority of cycles are spent doing nothing but waiting. That has huge ramifications, affecting everything from performance to power efficiency, etc.

Consider a typical snippet of CPU's life. The next instruction is read from memory, it tells the CPU to move a value from memory into a register. The next instruction after that is read from memory, it tells the CPU to move a different value from memory into a different register. The next instruction is read from memory, it tells the CPU to do some operation with the values in those two registers. The next instruction is read from memory, it tells the CPU to test whether the result from the previous instruction is 0, if it was then jump to a specific address. Since it was the CPU fetches the next instruction from that location in memory. And so on. It only takes following this process for a little while to see how tedious it is. We've managed to significantly improve it by adding fast local memory caches to the CPU but even if the memory operated at the speed of the CPU it would still be inefficient.

Now, imagine if instead of megabytes of low latency cache you have gigabytes. Now, imagine if instead of having a low latency cache at all the processor is directly wired to the RAM as if the RAM was just a large collection of registers. Instead of "fetch me X, fetch me Y, add X + Y, put the result back to Z" all of that could be a single CPU instruction. Moreover, it would be far, far rarer for the CPU to be waiting for data merely due to local latency. This would improve the effective computing power and power efficiency of CPUs by several orders of magnitude. The impact it would have on computing is truly mind boggling.

Let me express it in a different way. Imagine if your cell phone had the same raw computing power as a top of the line GPU does today, with the same battery life and with the same transistor count and clock speed on the CPU, just with a different architecture and different RAM.

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#35
post #32

Earlier quoted context omitted.

I... wish I understood. I'm just a lowly Blub programmer. An executable is often less than 1MB, and certainly always less than 100MB. In contrast, a 14GB video game still loads pretty quickly, and the data that goes across the bus per frame is often a couple orders of magnitude larger than the program executable itself. I know I'm missing something obvious...

Modern computers are extremely fast, and can still do tremendous amounts of computations despite the limitations of the Von Neumann architecture. But make no mistake, the Von Neumann bottleneck is a serious and fundamental problem. The CPU has to spend a lot of effort shuttling data back and forth. Worse yet, it has to spend a lot of time waiting on data (swapping to/from disk, for example). Even when you're CPU is a…

I think... Maybe... I'm getting it. Kind of. Probably not.

By wiring the CPU directly to the RAM, to use your metaphor, then we can entirely bypass the ASM stage of "a program" (but then what is a program if not a sequence of instructions?) and therefore we may better predict which data our program needs at runtime? Thereby caching that data more effectively than the random access patterns of Von Neumann?

Basically, instead of "accessing a pointer causes its data to be cached into L1", it would be... Well, I have no idea. Something else?

Here are my points of confusion, sorry:

1) in this non-Neumann paradigm, there will still be "data", in the traditional sense, right? (Or is "everything a program"?)

2) then... There will surely still be "caches" for that data, yeah? (Or is that what I'm missing? But without caches, I don't understand how it could be faster.)

But yeah, I don't want to waste anyone's time... certainly not anyone of your guys' caliber. Don't feel compelled/obligated to reply or anything. :)

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#36
post #6
post #2

The article mentions both 18 months and summer 2013. That's not entirely consistent.

It's an estimate not an exact length of time. 18 months takes us to April 2013, so maybe they rounded April into "summer" or maybe they rounded 20 months to the nearest .5 of a year. Or maybe they class April as summer anyway. It's not like those two times are way different.

Well summer is December to February, so April is a fair way off...

Perhaps they could do away with the stupid idea altogether and say 2nd quarter 2013 if they can't be more specific.

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#37
post #14

Watch HP research's Stanley Williams describe the memristor and what they are working towards in more detail on YouTube: http://www.youtube.com/watch?v=bKGhvKyjgLY&sns=em

I watched the whole 47 minutes of that talk on youtube, and it is actually really good. I have no qualifications in this field, but the talk is full of challenging ideas. You can skip reading the article.

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#38
post #35

Earlier quoted context omitted.

Modern computers are extremely fast, and can still do tremendous amounts of computations despite the limitations of the Von Neumann architecture. But make no mistake, the Von Neumann bottleneck is a serious and fundamental problem. The CPU has to spend a lot of effort shuttling data back and forth. Worse yet, it has to spend a lot of time waiting on data (swapping to/from disk, for example). Even when you're CPU is a…

I think... Maybe... I'm getting it. Kind of. Probably not. By wiring the CPU directly to the RAM, to use your metaphor, then we can entirely bypass the ASM stage of "a program" (but then what is a program if not a sequence of instructions?) and therefore we may better predict which data our program needs at runtime? Thereby caching that data more effectively than the random access patterns of Von Neumann? Basically,…

Nope, still missing it.

When you wire the RAM to the CPU you don't need a cache. Imagine you have a billion or even a trillion registers, or more. That's a non-Von Neumann architecture. You're not shuffling data around on buses, the data is directly connected to the CPU.

Look at the example I gave again. Consider a simple addition command. The first CPU instruction says "take the word at this memory address, and move it to a register", the second does the same with a different address, the third adds the two values in the registers, the fourth then puts the result back in some other memory location. But what if there's no difference between the memory and registers? Instead you just have one instruction that says: add the values at these two locations, put the result at this other location. Now you've replaced 4 clock ticks with one clock tick. More than that, you save however many clock ticks it would have taken on average for the data to get to / from main memory (sometimes cached, sometimes not). Such an architecture would mean that you only have to wait on things you really have to wait on, like network and device latency, etc.

The structure of programs need not be terribly different per say, it can still be a sequence of instructions in memory. There are other non-Von Neumann architectures which would work differently (such as neural networks), but those are even more complicated.

Re: HP plans to release first memristor, alternative to flash and SSDs in 18 months

#40
post #39

The bad side-effects of this memory technology: you can't just power-off your computer to hide your current activity; decrypted passwords in memory still will be readable after shutoff.

This is silly. Just because memory is non volatile storage doesn't mean the OS can't do reasonable things like clearing out some state as it goes to sleep.
Post reply on HN