The human brain is the best computer conceived. Eventually, they will start harvesting human brains for use as CPUs, suspended in a protein slurry. GPUs will be segments of peoples lobes and sensory cortex'! Its will be like The Matrix in reverse. Code will be suspended in a collective human brain cluster/consciousness. Eventually, we will starting interfacing with the network like in the matrix until we just start permanently integrating our beings in to the mass. And some day, the world will just be covered in one huge super brain. Good Times!
The human brain has one noticeable advantage compared to a computer. Computers need seperate processing elements for the permanent storage(HDD/SDD etc.), temporary storage(RAM/Caches), and the actual processing part. Human brain has the storage part and the processing part unified.
It's like a CPU sitting on top of a HDD capacity memory that runs at speeds of on-die cache. The idea of stacked on-die DRAM is an evolution to the idea.
Based on the thermal limitation of the silicon process technology I think clockspeeds will remain at the 4GHz level.
I think entry level chips will contain 16 cores, mid level 32 cores, and the xtreme processors will have 64 or possibly even 128 cores.
I don't think we'll see differentiation based on core count alone. From my point of view there are three classes of programs(and everything in between):
1. Single threaded application(very hard to multi-thread)
2. Multi-threaded application with moderate(limited) scaling, uses elements of multi-threading performance and single threading similarly.
3. Heavily and easily multi-threaded application, like GPUs for graphics
In order to satisfy the demands of all three, there must be a different way. Big, fast clocked scalar cores are good for single thread. Multiple cores with lots of bandwidth and good scaling is good for multi-thread.
Answer: Hetereogenous cores. CPUs that contain small numbers of big fast cores and large numbers of small cores.
And Intel had a glimpse of that.
Spring IDF 2005, Platform 2015:
http://www.anandtech.com/cpuch...howdoc.aspx?i=2368&p=2
I predict Haswell(the tock after Sandy Bridge) and the derivative/shrink will be the last, multiple large core CPU. From then on, we go onto the idea of a hetereogenous multi-core with small cores and large cores combined together.
But we gotta think of it in a software programmers way first. They won't transisition from moderately sized 8-10 cores one day to 1 huge core and 30 tiny cores the next day. The transition CPU is on the link. The CPU that will transition will have:
2-3 large cores
10 small cores
Large cores for software case #1, where the code is largely single threaded and extremely difficult to parallelize. 2-3 of that large cores for software case #2, where a good mix of single threaded performance and multi-threaded performance is needed. Software case #3 will work well with 10 small cores where the code is very parallelizable.
Inherently, there will be apps that will need ultimate single thread performance. With the mix of multi-threaded apps and the ever insatiable demand for single thread performance, only hetereogenous cores can offer both. Eventually, for most of the software case #2, I believe programmers will find a way to make them fit better for multi-thread so they can all run super fast on the many tiny cores.