An idea I had on a cpu, hard to explain

Okay, I'll try my best to explain this. I'm not exactly too savvy on how cpus function so here goes;

 

From my understanding the standard cpu works one thread per core. So if an application or game wants to take advantage of an 8-core it needs to split it's work in 8 threads, right? From what I understand Intel's Hyper threaded cpus make it so instead of 1 core = 1 thread, it's 1 core = 2 threads. That would make a 4 core emulate an 8 core. Also, whenever an application, or game, only uses 4 of those cores it would perform better than a standard 8 core because it would use the 4 physical cores to their full potential, since no more threads are being used. Amd would lack a bit because it would have 4 unused cores, while intels would use all of it's resources. 

This is just me guessing on how it all works.

Following that train of thought I had an idea. What if instead of making a cpu that uses 2 threads per core, but make one that has the ability to take one thread and divide it among every core. So you could use every resource the cpu has to offer. For example. Since most videogames use 4 cores right now. And I'm using an fx 8350, which has 8. That means there are 4 unused cores. What if the threads were split to use all the cores. So 2 cores would process one thread, so all 8 cores would be working the 4 threads. If the game was optimized for 2 cores then the cpu would use 4 cores per thread. 

I'm not sure if I'm conveying this well enough for you guys but there it is. I just want to know if that's hypothetically possible, or if it's been done before. 

Sorry if I sound like an Idiot

 

Wouldn't that effectively make it a single core CPU though? So it wouldn't be able to multi task as well as it would with 4 threads.

Well, I'm not saying to use all the cores like one core. What i mean is that the cpu can dynamically change it's saetting for optimal performance. So it can emulate a 4 core, and 2 core by using more than one core per thread. 

http://en.wikipedia.org/wiki/Thread_(computing)

http://en.wikipedia.org/wiki/Parallel_computing

http://en.wikipedia.org/wiki/Hyper-threading

From what I understand, threads can't be broken down into smaller parts. The only way to process things faster would be to process more threads every clock cycle. And that's the premise of hyperthreading.

Damn. Guess not. Was just bringing it up for the sake of learning something. 

Hey, I went and learnt what a thread actually is. I just like to play devil's advocate. 

Actually, what if certain cores are manufactured to be able to both act as a single core when instructed to. Turning 2 cores into 1 core. Dong the exact opposite of hyper threading, to accomplish the same thing in reverse. So if there are cores 1 through 8. 1 and 2 are made to be able to emulate one core etc

So do I lol i'm just brainstorming and i can't let this drop for some reason

 

For every core there will always be at least one thread. At the end  of the day, your 8350 is a fantastic CPU, and honestly, even if something like this could be done, the weak cores would becomeme the bottleneck.

I guess the only real world example of anything like this is older single core CPUs that extended performance by adding stages to the processor. Basically just splitting the workload into smaller pieces for the CPU to speed through so you can do multiple things while only having a single thread. 

The reason I'm saying this is cause while i really do enjoy my 8350, games need to be optimized to use it. The problem doesn't happen as much with intel cpu's because its inherently a 4 core. So it can just use the 4 physical cores to their full potential. 

This would make it so the cpu is self optimized, and not have to rely on the developers of the application, or game, considered 8 core cpus. Using 2-4 cores on an 8 core is a huge bottleneck since theyre not too powerful on their own.

thats basically what became hyper threading. What I'm suggesting is making multiple cores act as one

If the 8350 were properly utilised it would perform as well as a 4790k in most things.

You could in theory share more resources between two cores, but  not merge threads. Like I said, for every core there must be a single thread.

I'm well aware of that. But what makes the intel perform better is cause the the way the cores a designed. I'm just giving an alternative design that could accomplish the same thing. Intel cpus still perform well weather they use more or less than 4 cores. While amd's performance drops if the application doesnt use them all. just look at how planetside 2 was until they optimized it. Applications wouldnt need to get optimized if they had a sort of fail safe, where the cpu would be able to dynamicaly change the way it's being used to fit the load

So instead of merging threads, just make the cores physically designed to be able to combine in a way. Where they would act as one core and let everything else handle itself as it normally would. 

I forgot where I read/heard this(maybe here at teksyndicate? Maybe I dreamt it?):  Is there already software out there to split the threads into multiple threads? Or is there software being created to possibly achieve this?

it's not really possible, really what hyperthreading is, is just really, really fast task switching, each core only really processes one thread at a time, but it's very good at switching tasks.

Well, thanks for the advise guys. It was just a thought anyways. I figured there would be a way to merge cores to act as 1

That isn't exactly what became hyper threading, since the core that has the hyperthread is still a multi-stage RISC/CISC core. Hyper threading is another pipeline of information that leads to the actual core, so that information can be cued up faster and leave no latency between bits. 

Maybe a better example is pipelining in older GPUs. You have 16 processor pipelines addressed as a single unit and all putting out a single product (i.e. a frame on the screen). That seems closer to what you were trying to describe.