Using multiple cores is not a new approach in either embedded or enterprise computing. The aspect that is new is the rising pervasiveness of multiple cores. In the past, embedded applications used multiple cores in a configuration where each core had a dedicated purpose. In the enterprise world, multiple cores were limited to high-end servers, and specialized parallel computers. Now, both industries are considering the use of multiple cores to increase computing performance in mainstream platforms without large increases in power consumption.

But, what does it really mean to discuss a “multicore” design? The general term has many different specific meanings. This paper reviews the different types of multicore architectures, discusses operating system and programming approaches, and gives some examples of multicore technology available today. The purpose of this overview is to provide some familiarity with the terms and concepts discussed in multicore design.