Hacker News new | ask | show | jobs
by figglesonrails 4390 days ago
Unification of storage and computing...what does that even mean? I get that having nearly unlimited, fast, persistent storage would be awesome, but that's not a conceptual merging of storage and computing -- but I definitely agree about the simplification.
2 comments

Because processors are now so many orders of magnitude faster than main memory a huge percentage of their transistors and complexity are allocated to things like caching, prefetch, and branch prediction.

Those features that are the only things saving modern processors from spending nearly all of their time doing nothing useful while they're waiting for data to be retrieved from main memory.

Look at a Core i7 CPU die, with the L1/L2/L3 cache circled. Understand that many of the remaining transistors are doing things like branch prediction, managing cache coherency, and prefetch and so forth.

  http://i.stack.imgur.com/4Z1nU.png
Now imagine that all of those resources could be doing actual processing instead of simply caching gobs of data that already resides in main memory.

That would be awesome.

Would this really be fast enough to do away with cache completely? A 100x speedup from main memory to L1 cache sounds pretty low, although I don't have any figures to back that up. If this is slower than L1 will there not be a major performance drop to the point we'd have to use at least some cache still?
Without knowing any of the details I'd guess that the processor would still benefit from some small amount of cache.
Well only one pool of data, no more registers, cache, hard drives etc. The storage will live next to the logic. What's more, memristors can act was logic units as well as storage, and do it interchangeably.
Well only one pool of data, no more registers, cache, hard drives etc. The storage will live next to the logic.

Even if all storage uses the same underlying persistence technology, access times will still depend on the distance between the data and the logic. If there are ALUs intertwingled with the storage, access times will still depend on how close the various pieces of data being worked on together are.

Parallel algorithms tend to lose performance as they get chattier and as node speed is lost to increase node count.

Storage living next to logic is effectively a miniaturized version of the "datacenter as a computer" or "warehouse-scale computer" setup that some places are using already. I seem to recall seeing whole books written on the additional complexities of writing software to take advantage of such an environment.

There will never be "only one pool of data". At a minimum, there will be "data in the physical thing that stays on the desk", "data in the physical thing that goes in my pocket", "data on such-and-such private network", and "data available over the Internet".

So, the program doesn't just run on the silicon it modifies the processor, you can increase buffers, add registers, modify the arithmetic units to use different algos and such like using a FPGA that can be adapted on the fly? You could execute a program by running it in place rather than streaming commands to a processing unit?!
In theory, yes, in addition it can also simulate neural networks natively. All kinds of new possibilities.