From Single CPU to Multicore Systems
Tatjana R. Nikolic, Goran S. Nikolic, Bojan R. Dimitrijevic, Mile K Stojčev · 2022 57th International Scientific Conference on Information, Communication and Energy Systems and Technologies (ICEST) · 2022
Contemporary microprocessors are one of the more complex digital systems designed by humans. Today's microprocessor chips contain several different building blocks including processor, memory and interface logic. Thanks to Gordon Moore [4] prediction, that the transistor density will double every 18 months, and Dennard scaling [8], who pointed out that transistor power density remains constant as physical dimensions of MOSFET's become smaller, the microprocessor clock speed permanently increased up to 2003 year. However, augmentation of the CPU clock frequency cannot exceed some limits due to significant increment in power dissipation and consequently the amount of heating. Having this fact in mind, the microprocessor manufacturers have designed new types of microprocessors, referred to as multi- and many-core processors. Multicore technology has become ubiquitous today, with most personal and embedded computers. The hardware structure of computers that are based on multi-/many-core concept requires involving of parallel programming. By using this approach, the following two benefits are evident, the first one deals with achievement of scalable computer performance while the second with the possibility of large-scale data processing. But now, the skill to create efficient parallel programs requires from programmers a solid understanding of new computational principles, algorithms, and programming software tools. This article may be of help to a reader with aim to understand both the architecture of modern microprocessor systems and their programming starting from single to multicore.