Totally wrong there, too. EachA CPU core has its own front-end which fetches&decodes the instruction-stream of whatever it's currentlyis only running one stream of instructions, if it isn't halted (a user-spaceasleep until the next interrupt, e.g. timer interrupt). Often that's a thread, but it could also be a kernel interrupt handler, or miscellaneous kernel code when user-space makes aif the kernel decided to do something other than just return to the previous thread after handling and interrupt or system call,.
With HyperThreading or other SMT designs, a kernel interrupt handlerphysical CPU core acts like multiple "logical" cores. The only difference from an OS perspective between a quad-core-with-hyperthreading (4c8t) CPU and a plain 8-core machine (8c8t) is that an HT-aware OS will try to schedule threads to separate physical cores so they don't compete with each other. An OS that didn't know about hyperthreading would just see 8 cores (unless you disable HT in the BIOS, then it would only detect 4).
The instructions areterm "front-end" refers to the part of a CPU core that fetches machine code, decodes the instructions, and issues them into the out-of-order part of the core. Each core has its own front-end, and it's part of the core as a whole. Instructions it fetches issuedare intowhat the CPU is currently running.
Inside the out-of-order part of the core, instructions (or uops) are dispatched to execution ports when their input operands are ready and it's only there that reordering happensthere's a free execution port. This doesn't have to exploithappen in program order, so instruction-level parallelism withinthis is how an OOO CPU can exploit the instruction-level parallelism within a single thread.
If you replace "core" with "execution unit" in your idea, you're close to correct. Yes, the CPU does distribute independent instructions/uops to execution units in parallel. (But there's a single threadterminology mix-up, since you said "front-end" when really it's the CPU's instruction-scheduler aka Reservation Station that picks instructions ready to execute).