FIFTY YEARS OF MICROPROCESSOR EVOLUTION: FROM SINGLE CPU TO MULTICORE AND MANYCORE SYSTEMS

Goran Nikolic, Bojan Dimitrijević, Tatjana Nikolić, Mile Stojčev

DOI Number
https://doi.org/10.2298/FUEE2202155N
First page
155
Last page
186

Abstract


Nowadays microprocessors are among the most complex electronic systems that man has ever designed. One small silicon chip can contain the complete processor, large memory and logic needed to connect it to the input-output devices. The performance of today's processors implemented on a single chip surpasses the performance of a room-sized supercomputer from just 50 years ago, which cost over $ 10 million [1]. Even the embedded processors found in everyday devices such as mobile phones are far more powerful than computer developers once imagined. The main components of a modern microprocessor are a number of general-purpose cores, a graphics processing unit, a shared cache, memory and input-output interface and a network on a chip to interconnect all these components [2]. The speed of the microprocessor is determined by its clock frequency and cannot exceed a certain limit. Namely, as the frequency increases, the power dissipation increases too, and consequently the amount of heating becomes critical. So, silicon manufacturers decided to design new processor architecture, called multicore processors [3]. With aim to increase performance and efficiency these multiple cores execute multiple instructions simultaneously. In this way, the amount of parallel computing or parallelism is increased [4]. In spite of mentioned advantages, numerous challenges must be addressed carefully when more cores and parallelism are used.

This paper presents a review of microprocessor microarchitectures, discussing their generations over the past 50 years. Then, it describes the currently used implementations of the microarchitecture of modern microprocessors, pointing out the specifics of parallel computing in heterogeneous microprocessor systems. To use efficiently the possibility of multi-core technology, software applications must be multithreaded. The program execution must be distributed among the multi-core processors so they can operate simultaneously. To use multi-threading, it is imperative for programmer to understand the basic principles of parallel computing and parallel hardware. Finally, the paper provides details how to implement hardware parallelism in multicore systems.


Keywords

Microprocessor, Pipelining, Superscalar, Multicore, Multithreading

Full Text:

PDF

References


D. Patterson and J. Hennessy, Computer Architecture: A Quantitative Approach, 6th Ed., Morgan Kaufmann, 2017.

J.-L. Baer, Microprocessor Architecture: From Simple Pipelines to Chip Multiprocessors, Cambridge University Press, 2009.

Y. Solihin, Fundamentals of Parallel Multicore Architecture, Chapman & Hall/CRC, 2015.

R. Kuhn and D. Padua, Parallel Processing, 1980 to 2020", Morgan & Claypool, 2021.

M. Stojčev, Microprocessor architectures I part, in serbian, Elektronski fakultet Niš, 2004

B. Parhami, Computer Architecture: From Microprocessors to Supercomputers, Oxford University Press, 2005

Semiconductor Industry Association, International Technology Roadmap for Semiconductors (ITRS), 2013 edition, 2013

K. Olukotun, L. Hammond, and J. Laudon, Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency, Morgan & Claypool, 2007

R. V. Mehta, K. R. Bhatt and V. V. Dwivedi, "Multicore Processor Challenges – Design Aspects", J. Emerg. Technol. Innov. Res. (JETIR), vol. 8, no. 5, pp. C171-C174, May 2021.

A. Gonzalez, F. Latorre and G. Magklis, Processor Microarchitecture: An Implementation Perspective, Morgan & Claypool, 2011.

M. Stojčev and P. Krtolica, Computer systems: Principle of digital systems, in serbian, Elektronski fakultet Niš i Prirodno-matematički fakultet Niš, 2005.

"Microprocessor Chronology", av.at. https://en.wikipedia.org/wiki/Microprocessor_chronology, last access 28.03.2022.

M. Stojčev, Contemporary 16-bit microprocessors, Vol. I, in serbian, Naučna knjiga, Beograd, 1988.

M. Stojčev, Contemporary 16-bit microprocessors, Vol. II, in serbian, Naučna knjiga, Beograd, 1988.

M. Stojčev, Contemporary 16-bit microprocessors, Vol. III, in serbian, Naučna knjiga, Beograd, 1988.

M. Stojčev, RISC, CISC and DSP processors, in serbian, Elektronski fakultet Niš, 1997.

M. Stojčev, Branislav Petrović, Architectures and programming microcomputer systems based on processor family 80x86, in serbian, Elektronski fakultet Niš, 1999.

D. Patterson and J. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 5th Ed., Morgan Kaufmann, 2014.

Y. Etsion, "Computer Architecture Out-of-order Execution", av.at. https://iis-people.ee.ethz.ch/~gmichi/asocd/addinfo/Out-of-Order_execution.pdf, last access 28.03.2022.

"Superscalar Processors", av. at. https://www.cambridge.org/core/terms, last access. 28.03.2022.

M. Stojčev and T. Nikolić, Pipeline processing and scalar RISC processor, in serbian, Elektronski fakultet Niš, 2012.

M. Stojčev and T. Nikolić, Superscalar and VLIW processors, in serbian, Elektronski fakultet Niš, 2012 .

Philips Semiconductors, Introduction to VLIW Computer Architecture, av. at. https://www.isi.edu/~youngcho/cse560m/vliw.pdf. Last access 28.03.2022

N. P. Jouppi and D. W. Wall, "Available Instruction Level Parallelism for Superscalar and Superpipelined Machines", WRL Research Report 89/7, av. at. https://www.hpl.hp.com/techreports/Compaq-DEC/WRL-89-7.pdf, last access 28.03.2022

C. E. Kozyrakis and D.A. Patterson, "Scalable Vector Processors for Embedded System", IEEE Micro, vol. 23, no. 6, pp. 36– 45, Nov.-Dec. 2003.

E. Aldakheel, G. Chandrasekaran and A. Kshemkalyani, "Vector Procesors", av. at. https://www.cs.uic.edu/~ajayk/c566/VectorProcessors.pdf, last access 29.03.2022

C. Lomont, "Introduction to Intel® Advanced Vector Extensions", av. at. https://hpc.llnl.gov/sites/default/files/intelAVXintro.pdf, last access 29.03.2022.

M. Stojčev, E. Milovanović and T. Nikolić, Multiprocessor systems on chip, in serbian, Elektronski fakultet Niš, 2012.

J. L. Lo and S. J. Eggers, "Improving Balanced Scheduling with Compiler Optimizations that Increase Instruction-Level Parallelism", av. at. https://homes.cs.washington.edu/~eggers/Research/bsOpt.pdf, last access 29.03.2022.

S. Akhter and J. Roberts, Multi-Core Programming, Intel Press, 2006.

G. Koch, "Intel’s Road to Multi-Core Chip Architecture", av. at. http://www.intel.com/cd/ids/developer/asmo-na/eng/220997.htm

G. Koch, "Transitioning to multi-core architecture", av.at. www.intel.com/cd/ids/developer/asmo-na/eng/recent /221170.htm, last access 29.03.2022.

M. Brorsson, "Multi-core and Many-core Processor Architectures", Chapter 2 in Programming Many-Core Chips, Ed. A. Vajda, Springer, 2011.

M. Zahran, Heterogeneous Computing: Hardware and Software Perspectives, ACM Books #26, 2019.

M. Mitić, M. Stojčev and Z. Stamenković, "An Overview of SoC Buses", in Embedded Systems Handbook, Digital Systems and Aplications, Ed. V. Oklobdzija, Chapter 7, 7.1- 7.16, CRC Press, Boca Raton, 2008.

J. Rehman, "Advantages and disadvantages of multi-core processors", av. at https://www.itrelease.com/2020/07/advantages-and-disadvantages-of-multi-core-processors/, last access 29.03.2022

J. Shun, Shared-Memory Parallelism Can Be Simple, Fast, and Scalable, Morgan & Claypool Pub., 2017

T. Ungerer, B. Rogic and J. Silc, "Multithreaded Processors", Comput J., vol. 45, no. 3, pp. 320–348, 2002.

A. Silberschatz, G. Gagne and P. B. Galvin, "Multithreaded Programming", Chapter 4 in Operating System Concepts, 8th Ed., John Wiley, 2009.

DifferenceBetween.com, "Difference Between Multithreading and Multitasking", av.at. https://www.differencebetween.com/difference-between-multithreading-and-vs-multitasking/, last access 29.03.2022.

TechDifferences, "Difference Between Multitasking and Multithreading in OS", av. at. https://techdifferences.com/difference-between-multitasking-and-multithreading-in-os.html, last access 29.03.2022

tutorialspoint, "Multi-Threading Models", av.at https://www.tutorialspoint.com/multi-threading-models, last access 22.03.2022

Wikipedia, "List of Intel Core i7 Processors", av. at https://en.wikipedia.org/wiki/List_of_Intel_Core_i7_processors, last access 29.03.2022

M. Nemirovsky and D. M. Tullsen, Multithreading Architecture, Morgan & Claypool, 2013.

O. Mutlu, "Computer Architecture: Multithreading", av. at. https://rmd.ac.in/dept/ece/Supporting_Online_%20Materials/5/CAO/unit5.pdf, last access 22.03.2022

N. Manjikian, "Implementation of Hardware Multithreading in a Pipelined Processor", In Proceedings of the IEEE North-East Workshop on Circuits and Systems, 2006, pp. 145–148.

P. Manadhata, and V. Sekar, "Simultaneous Multithreading”, av. at https://www.cs.cmu.edu/afs/cs/academic/class/15740-f03/www/lectures/smt.pdf, last access 29.03.2022

Intel, "Products formerly Nehalem EP", av. at

https://ark.intel.com/content/www/us/en/ark/products/codename/54499/products-formerly-nehalem-ep.html, last access 29.03.2022

K. Hwang and Z. Xu, Scalable Parallel Computing: Technology, Architecture, Programming, McGraw-Hill, 1998.

D. Malkhi, Concurrency: The Works of Leslie Lamport, ACM Books #29, 2019.

CS4/MSc Parallel Architectures, "Lect. 2: Types of Parallelism", av. at https://www.inf.ed.ac.uk/teaching/courses/pa/Notes/lecture02-types.pdf, last access 29.03.2022

Chapter 3: "Understanding Parallelism", av. at

https://courses.cs.washington.edu/courses/cse590o/06au/LNLCh-3-4.pdf, last access 29.03.2022

J. Owens, "Data Level Parallelism", av. at https://www.ece.ucdavis.edu/~jowens/171/lectures/dlp3.pdf. Last access 29.03.2022

A. A. Freitas, S. H. Lavington, "Data Parallelism, Control Parallelism, and Related Issues", in Mining Very Large Databases with Parallel Processing, Springer, 2000.

E. I. Milovanović, T. R. Nikolić, M. K. Stojčev and I. Ž. Milovanović, "Multi-functional Systolic Array with Reconfigurable Micro-Power Processing Elements", Microelectron. Reliab., vol. 49, no. 7, pp. 813–820, July 2009.

C. Severance and K. Dowd, High Performance Computing, Connexions, Rice University, Houston, Texas, 2012.

G. Nikolić, M. Stojčev, Z. Stamenković, G. Panić and B. Petrović, "Wireless Sensor Node with Low-Power Sensing", Facta Univ. Ser.: Elec. Energ., vol. 27, no 3, pp. 435–453, Sept. 2014.

T. Nikolić, M. Stojčev, G. Nikolić and G. Jovanović, "Energy Harvesting Techniques In Wireless Sensor Networks", Facta Univ. Ser.: Aut. Cont. Rob., vol. 17, no. 2, pp. 117-142, Dec. 2018.

G. E. Moore. "Cramming More Components onto Integrated Circuits", Electronics, vol. 38, no. 8, pp. 114–117, April 1965.

R. H. Dennard, F. H. Gaensslen and K. Mai, "Design of Ion-Implanted MOSFET’s with Very Small Physical Dimensions", IEEE J. Solid-State Circuits, vol. 9, no. 5, pp. 256–268, Oct. 1974.

S. Naffziger, J. Warnock and H. Knapp. "When Processors Hit the Power Wall", In Proceedings of the IEEE International Solid-State Circuits Conference (ISSCC), 2005, pp. 16–17.

S. Borkar and A. A. Chien, "The Future of Microprocessors", Commun. ACM, vol. 54, no. 5, pp.67–77, May 2011.

M. D. Hill and M. R. Marty, "Amdahl’s Law in the Multicore Era", IEEE Comput. Mag., vol. 41, no.7, pp. 33–38, July 2008.


Refbacks

  • There are currently no refbacks.


ISSN: 0353-3670 (Print)

ISSN: 2217-5997 (Online)

COBISS.SR-ID 12826626