>>52424914 The 'core' doesn't always utilise its full resources, so you can use some of them while waiting for others. this is possible with out of order execution.
Say, your core 1 is waiting for a floating point calculation to finish, you have unused ALUs, memory paths, etc. hyper threading uses some of the core resources while they are free. it is (in theory) almost as good as two actual cores. in practice, it's not as good, every jump fucks up your predictions
Well, to put things into perspective, consider what a superscalar processor does. It takes multiple instructions operating on different data, and executes them simultaneously or out of order. Can you add eax + ebx and mov rsi into rdi at the same time? Of course you can! So given that each core has multiple arithmetic units for dealing with superscalar architectures, it stands to reason that one should be able to process multiple threads using those multiple arithmetic units, at a possible cost of single threads getting less superscalar action.
"But what about registers?" you may ask. Surely, there's going to be conflicts between a core sharing registers between multiple threads, yes? Again, this is where we bring in the nice thing about superscalars... they can have multiple sets of registers. Intel's CPUs actually have hundreds of them... it's just that from the programmer's perspective, one can only see 16 at a time. In reality, the processor can take multiple branches simultaneously, operating on multiple sets of registers, and then chuck out one set once the time for branching comes.
One of my professors gave a lecture on this very topic a few days ago. The complexity put into CPUs these days is pretty fucking fascinating.
Thread replies: 12 Thread images: 1
Thread DB ID: 424713
All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the shown content originated from that site. This means that 4Archive shows their content, archived. If you need information for a Poster - contact them.
If a post contains personal/copyrighted/illegal content, then use the post's [Report] link! If a post is not removed within 24h contact me at email@example.com with the post's information.