Gordon Moore became more famous because of his one casual statement, that was taken as a law. That law held good until recently. Moore's law was helpful for many computing companies to predict how fast their software would run after a signficant number of years, assuming that the particular software stands in the industry for that long.
Everything went fine, until one fine day, we found the mortality of Moore's Law. Suddenly all the programmers and processor designers started looking for alternate solutions. Programmers came up with multithreading and designers, with multi-core. Multithreading can be accomplished by running different threads on different processor cores.
Most of the processor design innovations first show up in digital signal processors and that is slowly taken into the building of microprocessors. Multi-core is not an exception. The technology in this field grows at a very fast rate. When we were all thinking that multi-core was cutting edge, "Inside DSP" magazine has reported that MIPS has come with a new DSP processor with a multithreaded licensible core, called MIPS 32 34K.
This has a single core with a built-in hardware support for switching between multiple threads. MIPS makes the rationale behind this multithreaded core with a reasonable claim that most of the time the processor is waiting idle for memory or IO. By switching between threads, the MIPS processor can use the otherwise idle cycles for doing some other useful operation. MIPS has reported that a 360MHz multithreaded processor could run 50% faster than a 400MHz single threaded processor. All these come with a small increase in the size of die.
MIPS 34K actually features five different "Thread Contexts" (TCs). Each TC has it own program counter, and register files. The processor can be tuned to switched between different thread for each and every clock cycle.
MIPS does not stop with that. It is also providing two virtual processing elements (VPEs). These VPEs have features to support OS, like look-aside buffer, etc. Meaning: at a time two operating systems can be run on a same processor. Mostly one will be an OS and the other an RTOS. That is, the same processor will run both Linux and VxWorks at the same time. MIPS also gives option to the system programmers to allocate different priorities between the two OS. Like quarter of the time is used up by Linux and the rest three-quarters are allocated to VxWorks.
But using all these is in the hands of the programmer. Programmers can only take advantage of the 34K’s multithreading capability if they write their code with multithreading in mind. This will add complexity to the software development process.
When Moore's law failed, programmers thought that the programs written so far won't run any faster than it does now. But the situation changed. This made designers think different. Innovation took place and the programmers are asked to think different to adapt to the changing environment. And the programmers did. The net effect is that we have a new system in hand. Now we know why the human race survived and dominated across different hurdles until their origin.