Content deleted Content added
Guy Harris (talk | contribs) Link the first occurrence of "personal computer(s)". |
Raveheart97 (talk | contribs) Decades Tags: Visual edit Mobile edit Mobile web edit |
||
(24 intermediate revisions by 15 users not shown) | |||
Line 1:
{{Short description|Microprocessor with more than one processing unit}}
{{See also|Multiprocessor system architecture}}
{{Redirect-distinguish|Dual Core
[[File:Dual Core Generic.svg|thumb|Diagram of a generic dual-core processor with CPU-local level-1 caches and a shared, on-die level-2 cache]]
[[File:E6750bs8.jpg|thumb|An Intel [[Core 2 Duo]] E6750 dual-core processor]]
[[File:Athlon64x2-6400plus.jpg|thumb|An AMD [[Athlon 64 X2|Athlon X2 6400+]] dual-core processor]]
A '''multi-core processor''' ('''MCP''') is a [[microprocessor]] on a single [[integrated circuit]] (IC) with two or more separate [[
A multi-core processor implements [[multiprocessing]] in a single physical package. Designers may couple cores in a multi-core device tightly or loosely. For example, cores may or may not share [[CPU cache|caches]], and they may implement [[message passing]] or [[shared memory|shared-memory]] inter-core communication methods. Common [[network topology|network topologies]] used to interconnect cores include [[bus network|bus]], [[ring network|ring]], two-dimensional [[mesh networking|mesh]], and [[crossbar switch|crossbar]]. Homogeneous multi-core systems include only identical cores; [[heterogeneous computing|heterogeneous]] multi-core systems have cores that are not identical (e.g. [[ARM big.LITTLE|big.LITTLE]] have heterogeneous cores that share the same [[Instruction set architecture|instruction set]], while [[AMD Accelerated Processing Unit]]s have cores that do not share the same instruction set). Just as with single-processor systems, cores in multi-core systems may implement architectures such as [[Very long instruction word|VLIW]], [[Superscalar processor|superscalar]], [[Vector processor|vector]], or [[Multithreading (computer architecture)|multithreading]].
Line 28 ⟶ 29:
The parallelization of software is a significant ongoing topic of research. Cointegration of multiprocessor applications provides flexibility in network architecture design. Adaptability within parallel models is an additional feature of systems utilizing these protocols.<ref>{{cite journal |last1=Duran |first1=A |title=Ompss: a proposal for programming heterogeneous multi-core architectures |journal=Parallel Processing Letters |date=2011 |volume=21 |issue=2|pages=173–193 |doi=10.1142/S0129626411000151 }}</ref>
In the consumer market, dual-core processors (that is, microprocessors with two units) started becoming commonplace on personal computers in the late 2000s.<ref>{{Cite web |title=Definition of dual core |url=https://www.pcmag.com/encyclopedia/term/dual-core |access-date=2023-10-27 |website=PCMAG |language=en}}</ref>
==Terminology==
Line 41 ⟶ 42:
==Development==
While manufacturing technology improves, reducing the size of individual gates, physical limits of [[semiconductor]]-based [[microelectronics]] have become a major design concern. These physical limitations can cause significant heat dissipation and data synchronization problems. Various other methods are used to improve CPU performance. Some ''[[instruction-level parallelism]]'' (ILP) methods such as [[superscalar]] [[instruction pipelining|pipelining]] are suitable for many applications, but are inefficient for others that contain difficult-to-predict code. Many applications are better suited to ''[[thread-level parallelism]]'' (TLP) methods, and multiple independent CPUs are commonly used to increase a system's overall TLP. A combination of increased available space (due to refined manufacturing processes) and the demand for increased TLP led to the development of multi-core CPUs.
===Early innovations: the Stanford Hydra project===
In the 1990s, [[Kunle Olukotun]] led the Stanford Hydra Chip Multiprocessor (CMP) research project. This initiative was among the first to demonstrate the viability of integrating multiple processors on a single chip, a concept that laid the groundwork for today's multicore processors. The Hydra project introduced support for thread-level speculation (TLS), enabling more efficient parallel execution of programs.
===Commercial incentives===
Line 69 ⟶ 73:
Maximizing the usage of the computing resources provided by multi-core processors requires adjustments both to the [[operating system]] (OS) support and to existing application software. Also, the ability of multi-core processors to increase application performance depends on the use of multiple threads within applications.
Integration of a multi-core chip can lower the chip production yields. They are also more difficult to manage thermally than lower-density single-core designs. Intel has partially countered this first problem by creating its quad-core designs by combining two dual-core ones on a single die with a unified cache, hence any two working dual-core dies can be used, as opposed to producing four cores on a single die and requiring all four to work to produce a quad-core CPU. From an architectural point of view, ultimately, single CPU designs may make better use of the silicon surface area than multiprocessing cores, so a development commitment to this architecture may carry the risk of obsolescence. Finally, raw processing power is not the only constraint on system performance. Two processing cores sharing the same system bus and memory bandwidth limits the real-world performance advantage
==Hardware==
===Trends===
The trend in processor development has been towards an ever-increasing number of cores, as processors with hundreds or even thousands of cores become theoretically possible.<ref>{{cite web|last1=Clark|first1=Jack|title=Intel: Why a 1,000-core chip is feasible|url=
Chips designed from the outset for a large number of cores (rather than having evolved from single core designs) are sometimes referred to as [[Manycore processor|manycore]] designs, emphasising qualitative differences.
===Architecture===
The composition and balance of the cores in multi-core architecture show great variety. Some architectures use one core design repeated consistently ("homogeneous"), while others use a mixture of different cores, each optimized for a different, "[[heterogeneous computing|heterogeneous]]" role.
How multiple cores are implemented and integrated significantly affects both the developer's programming skills and the consumer's expectations of apps and interactivity versus the device.<ref>{{cite web |url= https://www.gizbot.com/mobile/features/these-5-myths-about-the-octa-core-phones-are-actually-true-034569.html |website= Giz Bot |first= Chakri |last= Kudikala |date= Aug 27, 2016 |title= These 5 Myths About the Octa-Core Phones Are Actually True }}</ref> A device advertised as being octa-core will only have independent cores if advertised as ''True Octa-core'', or similar styling, as opposed to being merely two sets of quad-cores each with fixed clock speeds.<ref>{{cite press release |url= https://www.mediatek.com/news-events/press-releases/mediatek-launches-mt6592-true-octa-core-mobile-platform |title= MediaTek Launches MT6592 True Octa-Core Mobile Platform |date= November 20, 2013 |publisher= MediaTek |archive-url= https://web.archive.org/web/20201029195636/https://www.mediatek.com/news-events/press-releases/mediatek-launches-mt6592-true-octa-core-mobile-platform |archive-date= October 29, 2020 |url-status= dead}}</ref><ref>{{cite web |url= https://www.samsung.com/global/galaxy/what-is/octa-core-processor/ |title= What is an Octa-core processor |publisher= Samsung |quote= Galaxy smartphones run on either Octa-core (2.3GHz Quad + 1.6GHz Quad) or Quad-core (2.15GHz + 1.6GHz Dual) processors |archive-url=https://web.archive.org/web/20220117192737/https://www.samsung.com/global/galaxy/what-is/octa-core-processor/ |archive-date=January 17, 2022 |url-status=dead}}</ref>
The article "CPU designers debate multi-core future" by Rick Merritt, EE Times 2008,<ref>{{cite web|url=https://www.eetimes.com/CPU-designers-debate-multi-core-future/|title=CPU designers debate multi-core future|last=Merritt|first=Rick|publisher=[[EE Times]]|date=February 6, 2008|access-date=October 21, 2023}}</ref> includes these comments:
Line 95 ⟶ 99:
Given the increasing emphasis on multi-core chip design, stemming from the grave thermal and power consumption problems posed by any further significant increase in processor clock speeds, the extent to which software can be multithreaded to take advantage of these new chips is likely to be the single greatest constraint on computer performance in the future. If developers are unable to design software to fully exploit the resources provided by multiple cores, then they will ultimately reach an insurmountable performance ceiling.
The telecommunications market had been one of the first that needed a new design of parallel datapath packet processing because there was a very quick adoption of these multiple-core processors for the datapath and the control plane. These MPUs are going to replace<ref>{{cite web|url=http://multicorepacketprocessing.com/|title=Multicore Packet Processing Forum|url-status=usurped|archive-url=https://web.archive.org/web/20091221035434/http://www.multicorepacketprocessing.com/|archive-date=2009-12-21}}</ref> the traditional Network Processors that were based on proprietary [[microcode]] or [[picocode]].
[[Parallel programming]] techniques can benefit from multiple cores directly. Some existing [[parallel programming model]]s such as [[Cilk Plus]], [[OpenMP]], [[OpenHMPP]], [[Algorithmic skeleton#FastFlow|FastFlow]], Skandium, [[Message Passing Interface|MPI]], and [[Erlang (programming language)|Erlang]] can be used on multi-core platforms. Intel introduced a new abstraction for C++ parallelism called [[Threading Building Blocks|TBB]]. Other research efforts include the [[Sieve C++ Parallel Programming System|Codeplay Sieve System]], Cray's [[Chapel (programming language)|Chapel]], Sun's [[Fortress programming language|Fortress]], and IBM's [[X10 (programming language)|X10]].
Line 195 ⟶ 199:
** CSX700, 192-core processor, released in 2008 (32/64-bit floating point; Integer ALU).
* Cradle Technologies CT3400 and CT3600, both multi-core DSPs.
* [[Cavium Networks]] Octeon, a 32-core [[MIPS architecture|MIPS]] [[Manycore
* [http://www.coherentlogix.com/ Coherent Logix] [http://www.coherentlogix.com/products/hyperx-processors/ hx3100 Processor], a 100-core DSP/GPP processor.
* [[Freescale Semiconductor]] QorIQ series processors, up to 8 cores, [[Power ISA]] [[Manycore
* Hewlett-Packard [[PA-8800]] and [[PA-8900]], dual core [[PA-RISC]] processors.
* [[IBM]]
Line 230 ⟶ 234:
** [[Pentium]], single, dual-core, and quad-core processors for the entry-level market.<ref>{{Cite web|url=https://ark.intel.com/content/www/us/en/ark/products/series/91594/intel-pentium-processor-d-series.html|title=Intel® Pentium® Processor D Series Product Specifications|website=ark.intel.com|language=en|access-date=2019-05-04}}</ref>
** [[Teraflops Research Chip]] (Polaris), a 3.16 GHz, 80-core processor prototype, which the company originally stated would be released by 2011.<ref>{{cite web|url=http://techfreep.com/intel-80-cores-by-2011.htm|title=Intel: 80 Cores by 2011|last=Zazaian|first=Mike|date=September 26, 2006|url-status=dead|archive-url=https://web.archive.org/web/20061109031744/http://techfreep.com/intel-80-cores-by-2011.htm|archive-date=2006-11-09|access-date=2006-09-28}}</ref>
** [[Xeon]] dual-, quad-, 6-, 8-, 10-, 12-, 14-, 15-, 16-, 18-, 20-, 22-, 24-, 26-, 28-, 32-, 48-, and 56-core processors.<ref>{{cite web|url=http://techreport.com/news/26056/intel-releases-15-core-xeon-e7-v2-processor|title=Intel releases 15-core Xeon E7 v2 processor|last=Kowaliski|first=Cyril|date=February 18, 2014|url-status=live|archive-url=https://web.archive.org/web/20141011023442/http://techreport.com/news/26056/intel-releases-15-core-xeon-e7-v2-processor|archive-date=2014-10-11}}</ref><ref>{{cite web|url=http://ark.intel.com/products/family/78585/Intel-Xeon-Processor-E7-v3-Family|title=Intel Xeon Processor E7 v3 Family|publisher=[[Intel]]|url-status=live|archive-url=https://web.archive.org/web/20150707122129/http://ark.intel.com/products/family/78585/Intel-Xeon-Processor-E7-v3-Family|archive-date=2015-07-07}}</ref><ref>{{cite web|url=http://ark.intel.com/products/family/78584/Intel-Xeon-Processor-E7-v2-Family|title=Intel Xeon Processor E7 v2 Family|work=Intel® ARK (Product Specs) |publisher=Intel|url-status=live|archive-url=https://web.archive.org/web/20150707120021/http://ark.intel.com/products/family/78584/Intel-Xeon-Processor-E7-v2-Family|archive-date=2015-07-07}}</ref><ref>{{cite web|url=http://ark.intel.com/products/family/78580/Intel-Xeon-Processor-E3-v2-Family|title=Intel Xeon Processor E3 v2 Family|work=Intel® ARK (Product Specs) |publisher=Intel|url-status=live|archive-url=https://web.archive.org/web/20150707120142/http://ark.intel.com/products/family/78580/Intel-Xeon-Processor-E3-v2-Family|archive-date=2015-07-07}}</ref><ref>{{Cite web|url=https://www.techspot.com/news/79481-intel-announces-xeon-platinum-9200-series-cpus-up.html|title=Intel shows off Xeon Platinum CPU with up to 56 cores and 112 threads|website=TechSpot|date=2 April 2019 |language=en-US|access-date=2019-05-04}}</ref><ref>{{Cite web|url=https://www.intel.com/content/www/us/en/products/docs/processors/xeon/2nd-gen-xeon-scalable-processors-brief.html|title=2nd Gen Intel® Xeon® Scalable Processors Brief|last=PDF|first=Download|website=Intel|language=en|access-date=2019-05-04}}</ref>
** [[Intel MIC#Xeon Phi|Xeon Phi]] 57-, 60-, 61-, 64-, 68-, and 72-core processors.<ref>{{Cite web|url=https://ark.intel.com/content/www/us/en/ark/products/series/92649/intel-xeon-phi-x100-product-family.html|title=Intel® Xeon Phi™ x100 Product Family Product Specifications|website=ark.intel.com|language=en|access-date=2019-05-04}}</ref><ref>{{Cite web|url=https://ark.intel.com/content/www/us/en/ark/products/series/132784/intel-xeon-phi-72x5-processor-family.html|title=Intel® Xeon Phi™ 72x5 Processor Family Product Specifications|website=ark.intel.com|language=en|access-date=2019-05-04}}</ref>
* IntellaSys
Line 241 ⟶ 245:
** XLR, an eight-core, quad-threaded MIPS64 processor.
** XLS, an eight-core, quad-threaded MIPS64 processor.
* [[Samsung Electronics]]
** [[Samsung Exynos]]
* [[Nvidia]]
** [[GeForce 30 series|RTX 3090]] (
* [[Parallax Propeller|Parallax Propeller P8X32]], an eight-core [[microcontroller]].
* [[picoChip]] PC200 series 200–300 cores per device for DSP & wireless.
Line 285 ⟶ 291:
==Benchmarks==
The research and development of multicore processors often compares many options, and benchmarks are developed to help such evaluations. Existing benchmarks include SPLASH-2, PARSEC, and COSMIC for heterogeneous systems.<ref>{{cite web|url=
==See also==
Line 293 ⟶ 299:
* [[GPGPU]]
* [[Hyper-threading]]
* [[Manycore processor]]
* [[Multicore Association]]
* [[Computer multitasking|Multitasking]]
Line 311 ⟶ 317:
==Further reading==
* {{cite conference |author=Khondker S. Hasan |author2=Nicolas G. Grounds |author3=John K. Antonio |title=Predicting CPU Availability of a Multi-core Processor Executing Concurrent Java Threads|conference=17th International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA-11) |pages=551–557 |date=July 2011 |___location=Las Vegas, Nevada, USA |hdl=10657.1/2440}}
* {{cite conference |author=Khondker S. Hasan |author2=John Antonio |author3=Sridhar Radhakrishnan |date=February 2014 |title=A New Composite CPU/Memory Model for Predicting Efficiency of Multi-core Processing|conference=The 20th IEEE International Conference on High Performance Computer Architecture (HPCA-14) workshop|doi=10.13140/RG.2.1.3051.9207|___location=Orlando, FL, USA}}
Line 317 ⟶ 323:
* [http://www.makeuseof.com/tag/processor-core-makeuseof-explains-2/ "What Is a Processor Core?"]—MakeUseOf
* [https://web.archive.org/web/20110424130713/http://embedded-computing.com/embedded-moves-multicore "Embedded moves to multicore"]—''Embedded Computing Design''
* [https://spectrum.ieee.org/
* [http://www.slideshare.net/Talbott/architecting-solutions-for-the-manycore-future Architecting solutions for the Manycore future], published on Feb 19, 2010 (more than one dead link in the slide)
|