I was wondering how everyone feels chip makers will tackle multithreaded processing in the future. Intel started by letting a second thread use the idle portions of a core (hyper threading), AMD followed by adding a second core (CMP). Now we are seeing a merging of the two philosophies, where some of the core is shared, and some resources are dedicated to each thread (CMT).
I can see this third method really expand in the future, to the point where there are odd numbers of each type of resource in a module, depending on the percentage of the type of work you expect the module to do. (Say 3 FPU's, 8 ALU's, 4 AGU's, etc.) Where a single "module" would run a multitude of threads at once.
Seeing how early we are in this whole mess, I am somewhat excited to think of what kinds of twists the designs can have in the future. I know how I would take it, but I wonder what others think will be the path forward for the different companies?
I wouldn't limit each module (core if you are talking Intel, but that is just semantics at this point) to just two threads at once. If one portion of the processor is used 1/4 as often as other portions of the processor (and is relatively large or has some other non-trivial penalty for being there unused), I would make four (4) threads share that one resource, not two (2). Of course this would be very application specific, so the optimizations will be interesting for these general purpose processors (I wonder where they will optimize most, and what kinds of applications will see detriments).
I can see this third method really expand in the future, to the point where there are odd numbers of each type of resource in a module, depending on the percentage of the type of work you expect the module to do. (Say 3 FPU's, 8 ALU's, 4 AGU's, etc.) Where a single "module" would run a multitude of threads at once.
Seeing how early we are in this whole mess, I am somewhat excited to think of what kinds of twists the designs can have in the future. I know how I would take it, but I wonder what others think will be the path forward for the different companies?
I wouldn't limit each module (core if you are talking Intel, but that is just semantics at this point) to just two threads at once. If one portion of the processor is used 1/4 as often as other portions of the processor (and is relatively large or has some other non-trivial penalty for being there unused), I would make four (4) threads share that one resource, not two (2). Of course this would be very application specific, so the optimizations will be interesting for these general purpose processors (I wonder where they will optimize most, and what kinds of applications will see detriments).
