Design challenges for realization of the advantages of embedded multi-core processors

Ronald Goodman, Scott E. Black · 2008

The computer industry is undergoing a continuing paradigm shift from ever increasingly faster single-core processor systems to the hyper-threaded and multi-core systems that we are seeing today. To continue leveraging the advantage of these systems, the programmers must also undergo a paradigm shift in the way that they design and develop software for these systems. The availability of additional cores and threads does not in itself guarantee increased performance, and in some cases may actually impede it. Concurrency, a software term for using resources at the same time, is the most important factor in achieving optimum performance in today's computing systems. Multi-core systems provide parallelism in addition to concurrency by providing additional processing elements (CPUs) that allow multiple threads to run simultaneously. This comes at a cost though, because the threads must be synchronized with the overall program flow. This paper discusses the reasoning behind the successful design of a multiprocessor program, the relationship between multi-core architectures and program performance, and provides several techniques for implementing synchronization and coordination methods without any special tools or packages.

Read the paper · More papers on PaperTik