A processor reduces wasted cycle time resulting from stalling and idling, and
increases
the proportion of execution time, by supporting and implementing both vertical
multithreading and horizontal multithreading. Vertical multithreading permits overlapping
or "hiding" of cache miss wait times. In vertical multithreading, multiple hardware
threads share the same processor pipeline. A hardware thread is typically a process,
a lightweight process, a native thread, or the like in an operating system that
supports multithreading. Horizontal multithreading increases parallelism within
the processor circuit structure, for example within a single integrated circuit
die that makes up a single-chip processor. To further increase system parallelism
in some processor embodiments, multiple processor cores are formed in a single
die. Advances in on-chip multiprocessor horizontal threading are gained as processor
core sizes are reduced through technological advancements.