I am aware that multiprocessor systems often implement simultaneous multithreading in order to allow multiple threads to run on different CPUs. I am also aware that uni-core systems often implement temporal multithreading (fine-grained/preemptive or coarse-grained/cooperative) to allow for a more efficient use of the CPU through the use of context switches.
However, I am curious whether it is possible (or logical) to have a simultaneously multithreaded system also allow for the time-sharing between threads on each CPU, which is prevalent in temporal multithreading systems.