 Core Multiplexing Technology would allow for a process to be split into multiple threads at compilation time and execution time by the introduction of speculative multithreading.Much in the same way a branch predictor allows for a processor to speculate on the outcome of a branch operation without actually performing the operation, speculative multithreading allows for the processor to speculate deeper, executing entire branches of code on an additional core.Most of the implementation is done in software, with the compiler rearranging code to take better use of a multithreaded platform, which allows Simultaneous multithreading (SMT) and Multicore systems (or a combination of the two) to take advantage of the technology.