Multi-Core-Prozessor

Diagramm eines generischen Dual-Core-Prozessors mit CPU-Local Level-1-Caches und einem gemeinsam genutzten Cache auf der Stufe Level-2
Ein Intel Kern 2 Duo E6750 Dual-Core-Prozessor
Ein AMD Athlon x2 6400+ Dual-Core-Prozessor

A Multi-Core-Prozessor ist ein Computerprozessor auf einer einzigen Integrierter Schaltkreis mit zwei oder mehr separat Verarbeitungseinheiten, genannte Kerne, von denen jeder liest und ausführt Programmanweisungen.[1] Die Anweisungen sind normal CPU -Anweisungen (z. B. Hinzufügen, Verschieben von Daten und Zweig), aber der einzelne Prozessor kann gleichzeitig Anweisungen auf separaten Kernen ausführen, was die Gesamtgeschwindigkeit für Programme erhöht Multithreading oder andere Parallele Computing Techniken.[2] Hersteller integrieren die Kerne typischerweise in einen einzelnen integrierten Schaltkreis sterben (als Chip -Multiprozessor oder CMP bezeichnet) oder auf mehrere Stanze in einem einzigen Chippaket. Die derzeit in fast allen PCs verwendeten Mikroprozessoren sind Multi-Core.

Ein Multi-Core-Prozessor implementiert Multiprozessierung in einem einzigen physischen Paket. Designer können Kerne in einem Multi-Core-Gerät fest oder locker koppeln. Zum Beispiel können Kerne teilen oder nicht teilen Cachesund sie können umsetzen Nachrichtenübergang oder geteilte Erinnerung Kommunikationsmethoden zwischen Core. Verbreitet Netzwerktopologien Wird verwendet, um Kerne mitzumachen, umfassen Bus, Ringzweidimensional Gittergewebe, und Latte. Homogene Multi-Kern-Systeme umfassen nur identische Kerne; heterogen Multi-Core-Systeme haben Kerne, die nicht identisch sind (z. großen kleinen haben heterogene Kerne, die dasselbe teilen Befehlssatz, während AMD beschleunigte Verarbeitungseinheiten haben Kerne, die nicht denselben Anweisungssatz teilen). Genau wie bei Einzelprozessorsystemen können Kerne in Multi-Core-Systemen Architekturen implementieren, wie z. VLIW, Superscalar, Vektor, oder Multithreading.

Multi-Core-Prozessoren werden in vielen Anwendungsdomänen, einschließlich der Anwendungsdomänen, häufig verwendet allgemeiner Zweck, eingebettet, Netzwerk, digitale Signalverarbeitung (DSP) und Grafik (GPU). Die Kernzahl geht auf sogar Dutzende und für spezialisierte Chips über 10.000.[3] und in Supercomputer (d. h. Cluster von Chips) Die Anzahl kann über 10 Millionen gehen (und in ein Fall Bis zu 20 Millionen Verarbeitungselemente sind zusätzlich zu Hostprozessoren insgesamt insgesamt).[4]

Die durch die Verwendung eines Multi-Core-Prozessors gewonnene Leistungsverbesserung hängt sehr stark von der ab Software verwendete Algorithmen und ihre Implementierung. Insbesondere werden mögliche Gewinne durch den Anteil der Software eingeschränkt, die kann parallel laufen Gleichzeitig auf mehreren Kernen; Dieser Effekt wird durch beschrieben Amdahls Gesetz. Im besten Fall sogenannte peinlich parallel Probleme können beschleunigte Faktoren in der Nähe der Anzahl der Kerne oder sogar noch mehr realisieren, wenn das Problem so aufgeteilt ist, dass sie in die Cache (en) jedes Kerns passen, wodurch die Verwendung eines viel langsameren Hauptsystems des Hauptsystems vermieden wird. Die meisten Anwendungen werden jedoch nicht so viel beschleunigt Refactoring.[5]

Die Parallelisierung der Software ist ein erhebliches laufendes Thema der Forschung. Die Kointegration von Multiprozessoranwendungen bietet Flexibilität beim Design der Netzwerkarchitektur. Die Anpassungsfähigkeit innerhalb paralleler Modelle ist ein zusätzliches Merkmal von Systemen, die diese Protokolle nutzen.[6]

Terminologie

Die Begriffe Multi-Core und Zweikern am häufigsten beziehen sich auf eine Art von einer Art Zentrale Verarbeitungseinheit (CPU), werden aber manchmal auch auf angewendet Digitale Signalprozessoren (DSP) und System auf einem Chip (SOC). Die Begriffe werden im Allgemeinen nur verwendet, um sich auf Multi-Core-Mikroprozessoren zu beziehen, die auf dem hergestellt werden gleich Integrierter Schaltkreis sterben; Separate Mikroprozessor -Sterben im selben Paket werden im Allgemeinen mit einem anderen Namen bezeichnet, wie z. Multi-Chip-Modul. Dieser Artikel verwendet die Begriffe "Multi-Core" und "Dual-Core" für CPUs, die auf dem hergestellt wurden gleich Integrierter Schaltkreis, sofern nicht anders angegeben.

Im Gegensatz zu Multi-Core-Systemen der Begriff Multi-CPU Bezieht sich auf mehrere physikalisch separate Verarbeitungseinheiten (die häufig spezielle Schaltkreise enthalten, um die Kommunikation zwischeneinander zu erleichtern).

Die Begriffe Viele Kern und Massiv Multi-Core werden manchmal verwendet, um Multi-Kern-Architekturen mit einer besonders hohen Anzahl von Kernen zu beschreiben (Zehn bis Tausende[7]).[8]

Einige Systeme verwenden viele weicher Mikroprozessor Kerne auf einer einzigen platziert FPGA. Jeder "Kern" kann als "als" betrachtet werden "Halbleiter geistiges Eigentumskern"sowie ein CPU -Kern.

Entwicklung

Während sich die Fertigungstechnologie verbessert und die Größe einzelner Tore, physische Grenzen von Personen verringert, verringert Halbleiter-basierend Mikroelektronik sind zu einem großen Designanliegen geworden. Diese physikalischen Einschränkungen können zu erheblichen Problemen der Wärmeableitung und Datensynchronisationsprobleme führen. Verschiedene andere Methoden werden verwendet, um die CPU -Leistung zu verbessern. Etwas Parallelität auf Befehlsebene (ILP) Methoden wie z. Superscalar Pipelining sind für viele Anwendungen geeignet, sind jedoch für andere ineffizient, die schwer zu prägnantes Code enthalten. Viele Anwendungen sind besser geeignet zu Parallelität auf Fadenebene (TLP) Methoden und mehrere unabhängige CPUs werden üblicherweise verwendet, um den Gesamt -TLP eines Systems zu erhöhen. Eine Kombination aus erhöhtem verfügbarem Raum (aufgrund raffinierter Herstellungsprozesse) und der Nachfrage nach erhöhtem TLP führte zur Entwicklung von Multi-Core-CPUs.

Kommerzielle Anreize

Mehrere Geschäftsmotive fördern die Entwicklung von Multi-Kern-Architekturen. Über Jahrzehnte war es möglich, die Leistung einer CPU zu verbessern, indem der Bereich der integrierten Schaltung (IC) verkleinert wurde, wodurch die Kosten pro Gerät auf dem IC reduziert wurden. Alternativ könnten für denselben Schaltungsbereich mehr Transistoren im Design verwendet werden, was die Funktionalität insbesondere für erhöhte Komplexes Anweisungssatz Computing (CISC) Architekturen. Taktraten Auch in den Jahrzehnten des späten 20. Jahrhunderts um Größenordnungen erhöht, von mehreren Megahertz in den 1980er Jahren bis zu mehreren Gigahertz in den frühen 2000er Jahren.

Da sich die Rate der Taktgeschwindigkeitsverbesserungen verlangsamte, wurde eine erhöhte Verwendung des parallelen Computers in Form von Multi-Core-Prozessoren zur Verbesserung der Gesamtverarbeitungsleistung verfolgt. Auf demselben CPU -Chip wurden mehrere Kerne verwendet, was dann zu einem besseren Verkauf von CPU -Chips mit zwei oder mehr Kernen führen könnte. Zum Beispiel hat Intel einen 48-Core-Prozessor für die Forschung in Cloud Computing erstellt. Jeder Kern hat einen x86 die Architektur.[9][10]

Technische Faktoren

Seitdem haben Computerhersteller lange implementiert Symmetrische Multiprozessierung (SMP) entwirft mit diskreten CPUs, die Probleme in Bezug auf die Implementierung von Multi-Core-Prozessorarchitektur und die Unterstützung von Software sind bekannt.

Zusätzlich:

  • Die Verwendung eines bewährten Verarbeitungs-Core-Designs ohne architektonische Änderungen verringert das Designrisiko erheblich.
  • Für allgemeine Verarbeiter entsteht ein Großteil der Motivation für Multi-Core-Prozessoren durch stark verringerte Gewinne in der Prozessorleistung durch Erhöhung der Erhöhung der Verfahren Arbeitsfrequenz. Dies ist auf drei Hauptfaktoren zurückzuführen:[11]
    1. Das Speicherwand; Die zunehmende Lücke zwischen Prozessor und Speichergeschwindigkeiten. Dies drängt darauf, dass die Cache -Größen größer sind, um die Latenz des Speichers zu maskieren. Dies hilft nur insofern, dass die Speicherbandbreite nicht der Engpass in der Leistung ist.
    2. Das ILP -Wand; die zunehmende Schwierigkeit, genug zu finden Parallelität in einem einzigen Befehlsstrom um einen Hochleistungs-Single-Core-Prozessor zu beschäftigen.
    3. Das Power Wall; Der Trend, exponentiell erhöhte Leistung (und somit auch exponentiell erhöhte Wärme zu erzeugen) mit jeder faktoriellen Erhöhung der Betriebsfrequenz. Dieser Anstieg kann durch "gemindert werden"Schrumpfung"Der Prozessor, indem kleinere Spuren für dieselbe Logik verwendet werden. Power Wall stellt Fertigungs-, Systemdesign- und Bereitstellungsprobleme auf Speicherwand und ILP -Wand.

Um weiterhin regelmäßige Leistungsverbesserungen für allgemeine Verarbeiter zu liefern, wie Hersteller wie Intel und AMD haben sich an Multi-Core-Designs zugewandt und in einigen Anwendungen und Systemen niedrigere Herstellungskosten für eine höhere Leistung geopfert. Multi-Core-Architekturen werden entwickelt, aber auch die Alternativen. Ein besonders starker Anwärter auf etablierte Märkte ist die weitere Integration der peripheren Funktionen in den Chip.

Vorteile

Die Nähe mehrerer CPU -Kerne auf demselben Würfel ermöglicht das Cache -Kohärenz Schaltkreise mit einer viel höheren Taktrate als möglich, wenn die Signale außerhalb des Chips fahren müssen. Die Kombination von äquivalenten CPUs mit einer einzelnen Würfel verbessert die Leistung von erheblich Cache Snoop (Alternative: Bus schnüffeln) Operationen. Einfach gesagt, das bedeutet das Signale zwischen verschiedenen CPUs reisen kürzere Entfernungen und damit diesen Signalen degradieren weniger. Diese höherwertigen Signale ermöglichen es, dass mehr Daten in einem bestimmten Zeitraum gesendet werden, da einzelne Signale kürzer sein können und nicht so oft wiederholt werden müssen.

Angenommen, der Würfel kann physisch in das Paket passen, benötigen Multi-Core-CPU-Designs viel weniger gedruckte Leiterplatte (PCB) Platz als Multi-Chip-SMP-Designs. Außerdem verwendet ein Dual-Core-Prozessor etwas weniger Leistung als zwei gekoppelte Einzelkernprozessoren, hauptsächlich aufgrund der verringerten Leistung, die zum Antrieb von Signalen außerhalb des Chips erforderlich ist. Darüber hinaus teilen die Kerne einige Schaltkreise wie den L2 -Cache und die Schnittstelle zum Frontbus (FSB). In Bezug auf konkurrierende Technologien für den verfügbaren Siliziumstempelbereich kann das Multi-Core-Design bewährte CPU-Kernbibliotheksdesigns verwenden und ein Produkt mit einem geringeren Risiko eines Designfehlers produzieren, als ein neues breiteres Kerndesign zu entwickeln. Das Hinzufügen von mehr Cache leidet auch unter abnehmenden Renditen.

Multi-Core-Chips ermöglichen auch eine höhere Leistung bei niedrigerer Energie. Dies kann ein großer Faktor für mobile Geräte sein, die Batterien betreiben. Da jeder Kern in einer Multi-Kern-CPU im Allgemeinen energieeffizienter ist, wird der Chip effizienter als einen einzelnen großen monolithischen Kern. Dies ermöglicht eine höhere Leistung mit weniger Energie. Eine Herausforderung darin ist jedoch der zusätzliche Aufwand des Schreibens parallelen Code.[12]

Nachteile

Die Maximierung der Verwendung der von Multi-Core-Prozessoren bereitgestellten Rechenressourcen erfordert Anpassungen beides an die Betriebssystem (Betriebssystem) Support und vorhandene Anwendungssoftware. Die Fähigkeit von Multi-Core-Prozessoren, die Anwendungsleistung zu erhöhen, hängt auch von der Verwendung mehrerer Threads in Anwendungen ab.

Die Integration eines Multi-Core-Chips kann die Chipproduktionserträge senken. Es ist auch schwieriger, thermisch als Single-Core-Designs mit niedrigerer Dichte zu verwalten. Intel hat dieses erste Problem teilweise entgegengesetzt, indem er seine Quad-Core-Designs erstellt hat, indem zwei Dual-Core-Einrichtungen auf einem einzigen Würfel mit einem einheitlichen Cache kombiniert werden, weshalb zwei arbeitende Dual-Core-Stanzteile verwendet werden können, anstatt vier Kerne auf einem zu produzieren Single-Würfel und erfordert alle vier, um eine Quad-Core-CPU zu produzieren. Aus architektonischer Sicht können einzelne CPU -Konstruktionen letztendlich die Siliziumoberfläche besser nutzen als die Multiprozessierung von Kernen, sodass ein Entwicklungsverpflichtung für diese Architektur das Risiko der Veralterung besteht. Schließlich ist die RAW -Verarbeitungsleistung nicht die einzige Einschränkung für die Systemleistung. Zwei Verarbeitungskerne, die denselben Systembus und die Speicherbandbreite teilen, begrenzt den realen Leistungsvorteil. In einem Bericht von 2009 zeigte Dr. Jun Ni, dass, wenn ein einzelner Kern kurz davor ist, eine Memory-Bandwidth-Limited zu sein, und das Gehen zum Dual-Core möglicherweise 30% bis 70% verbessert. Wenn die Speicherbandbreite kein Problem ist, ist eine Verbesserung von 90% zu erwarten. jedoch, Amdahls Gesetz macht diese Behauptung zweifelhaft.[13] Es wäre möglich, dass eine Anwendung, die zwei CPUs verwendet hat, um bei einem einzigen Kern schneller zu laufen, wenn die Kommunikation zwischen dem CPUs der begrenzende Faktor wäre, der als mehr als 100% Verbesserung angesehen würde.

Hardware

Trends

Der Trend in der Prozessorentwicklung ging zu einer immer größeren Anzahl von Kernen zurück, da Prozessoren mit Hunderten oder sogar Tausenden von Kernen theoretisch möglich werden.[14] Darüber hinaus haben Multi-Core-Chips mit gemischtem mit Simultanes MultithreadingMemory-on-Chip und Spezialzweck "heterogen" (oder asymmetrische) Kerne versprechen weitere Leistung und Effizienzgewinne, insbesondere bei der Verarbeitung von Multimedia-, Erkennungs- und Netzwerkanwendungen. Zum Beispiel a großen kleinen Der Kern umfasst einen Hochleistungskern (als "groß" und einen Kern mit geringer Leistung ("klein"). Es gibt auch einen Trend zur Verbesserung der Energieeffizienz, indem sie sich auf die Leistung pro Watt mit fortschrittlicher Feinkorn- oder Ultra-Feinnahrung konzentrieren Leistungsmanagement und dynamisch Stromspannung und Frequenzskalierung (d.h. Laptop Computer und Tragbare Medienspieler).

Chips, die von Anfang an für eine große Anzahl von Kernen entwickelt wurden (anstatt sich aus einzelnen Kernkonstruktionen entwickelt zu haben), werden manchmal als als bezeichnet Manycore Entwürfe, die qualitative Unterschiede betonen.

Die Architektur

Die Komposition und das Gleichgewicht der Kerne in Multi-Core-Architektur zeigen eine große Vielfalt. Einige Architekturen verwenden ein konsequent wiederholtes Kerndesign ("homogen"), während andere eine Mischung aus verschiedenen Kernen verwenden, die jeweils für einen anderen optimiert sind. "heterogen"Rolle.

Wie mehrere Kerne implementiert und integriert werden, wirkt sich erheblich auf die Programmierkenntnisse des Entwicklers und die Erwartungen des Verbrauchers an Apps und Interaktivität im Vergleich zum Gerät aus.[15] Ein als Octa-Core beworbenes Gerät verfügt Wahrer Okta-Kern, oder ähnliches Styling, im Gegensatz zu lediglich zwei Sätzen von Quad-Cores mit festen Taktgeschwindigkeiten.[16][17]

Der Artikel "CPU-Designer debattiert Multi-Core Future" von Rick Merritt, EE Times 2008,[18] Enthält diese Kommentare:

Chuck Moore [...] schlug vor, dass Computer wie Mobiltelefone sein sollten, wobei eine Vielzahl von Spezialkernen verwendet werden, um modulare Software auszuführen, die von einer Programmierschnittstelle auf hoher Ebene geplant ist.

[...] ATSUSHI HASEGAWA, Senior Chief Engineer bei Renesas, allgemein vereinbart. Er schlug vor, dass die Verwendung vieler Spezialkerne durch das Handy ein gutes Modell für zukünftige Multi-Core-Designs ist.

[...] Anant Agarwal, Gründer und Geschäftsführer von Startup Tilera, nahm die gegnerische Sicht. Er sagte, dass Multi-Core-Chips homogene Sammlungen allgemeiner Kerne sein müssen, um das Softwaremodell einfach zu halten.

Softwareeffekte

Eine veraltete Version einer Anti-Virus-Anwendung kann einen neuen Thread für einen Scanprozess erstellen, während es sein GUI Der Thread wartet auf Befehle vom Benutzer (z. B. den Scan abbrechen). In solchen Fällen ist eine Multi-Kern-Architektur für die Anwendung selbst von geringem Nutzen, da der einzelnen Faden das gesamte schwere Heben und die Unfähigkeit, die Arbeit gleichmäßig über mehrere Kerne auszugleichen, übereinstimmen zu können. Das Programmieren von wirklich multitHhreades Code erfordert häufig eine komplexe Koordination von Threads und kann aufgrund der Verflechtung der Verarbeitung auf Daten, die zwischen Threads geteilt werden, leicht subtile und schwer zu findende Fehler einführen (siehe Thread-Safety). Infolgedessen ist ein solcher Code viel schwieriger zu debuggen als ein Einzel-Thread-Code, wenn er bricht. Aufgrund der relativen Seltenheit der Nachfrage auf Verbraucherebene nach maximaler Verwendung von Computerhardware gab es einen Mangel an Motivation für das Schreiben von Fadenanwendungen auf Verbraucherebene. Auch serielle Aufgaben wie die Dekodierung der Entropie -Codierung verwendete Algorithmen in Video -Codecs sind unmöglich zu parallelisieren, da jedes erzeugte Ergebnis verwendet wird, um das nächste Ergebnis des Entropie -Dekodierungsalgorithmus zu erstellen.

Angesichts der zunehmenden Betonung des Multi-Core-Chip-Designs, der sich aus den Problemen der Grabthermie und des Stromverbrauchs ergibt, die durch eine weitere signifikante Zunahme der Taktgeschwindigkeiten auftreten Die größte Einschränkung der Computerleistung in der Zukunft. Wenn Entwickler keine Software entwerfen können, um die von mehreren Kernen bereitgestellten Ressourcen vollständig auszunutzen, erreicht sie letztendlich eine unüberwindliche Leistungsobergrenze.

Der Telekommunikationsmarkt war einer der ersten, der ein neues Design der Verarbeitung paralleler DataPath-Paket-Paket-Paket erforderte, da diese Multiple-Core-Prozessoren für die DataPath und die Steuerebene sehr schnell übernommen wurden. Diese MPUs werden ersetzen[19] Die traditionellen Netzwerkprozessoren, die auf proprietärer Basis basierten Mikrocode oder Picocode.

Parallele Programmierung Techniken können direkt von mehreren Kernen profitieren. Einige existieren Parallele Programmiermodelle wie zum Beispiel Cilk Plus, OpenMP, OpenHMPP, Fastflow, Skandium, MPI, und Erlang Kann auf Multi-Core-Plattformen verwendet werden. Intel führte eine neue Abstraktion für die C ++ - Parallelität ein, die genannt wurde TBB. Andere Forschungsbemühungen sind die Codeplay -Siebsystem, Cray's Kapelle, Sonne Festungund IBMs X10.

Die Multi-Core-Verarbeitung hat sich auch auf die Fähigkeit der modernen Berechnungsoftwareentwicklung ausgewirkt. Entwicklerprogrammierung in neueren Sprachen könnte feststellen, dass ihre modernen Sprachen keine Multi-Kern-Funktionalität unterstützen. Dies erfordert dann die Verwendung von Numerische Bibliotheken Zugriff auf Code in Sprachen wie geschrieben wie C und Forran, die mathematische Berechnungen schneller ausführen als neuere Sprachen wie C#. Intel's MKL und AMDs ACML sind in diesen Muttersprachen geschrieben und nutzen die Multi-Core-Verarbeitung. Das Ausgleich der Anwendungsarbeitsbelastung zwischen Prozessoren kann problematisch sein, insbesondere wenn sie unterschiedliche Leistungsmerkmale haben. Es gibt verschiedene konzeptionelle Modelle, die mit dem Problem umgehen können, beispielsweise mit einer Koordinationssprache und Programmbaums (Programmierbibliotheken oder Funktionen höherer Ordnung). Jeder Block kann für jeden Prozessortyp eine andere native Implementierung haben. Benutzer programmieren einfach diese Abstraktionen und ein intelligenter Compiler wählt die beste Implementierung basierend auf dem Kontext aus.[20]

Verwaltung Parallelität Erfasst eine zentrale Rolle bei der Entwicklung paralleler Anwendungen. Die grundlegenden Schritte bei der Gestaltung paralleler Anwendungen sind:

Partitionierung
Die Verteilungsstufe eines Designs soll Möglichkeiten für eine parallele Ausführung aufdecken. Daher liegt der Fokus auf der Definition einer großen Anzahl kleiner Aufgaben, um eine feinkörnige Zersetzung eines Problems zu erhalten.
Kommunikation
Die durch eine Partition erzeugten Aufgaben sollen gleichzeitig ausgeführt werden, können jedoch im Allgemeinen nicht unabhängig ausgeführt werden. Die in einer Aufgabe durchgeführte Berechnung erfordert normalerweise Daten, die mit einer anderen Aufgabe verknüpft sind. Die Daten müssen dann zwischen Aufgaben übertragen werden, um die Berechnung zu ermöglichen. Dieser Informationsfluss ist in der Kommunikationsphase eines Designs angegeben.
Agglomeration
In der dritten Stufe bewegt sich die Entwicklung von der Zusammenfassung in Richtung Beton. Entwickler besuchen Entscheidungen, die in den Partitionierungs- und Kommunikationsphasen getroffen wurden, um einen Algorithmus zu erhalten, der auf einer Klasse von parallelen Computer effizient ausgeführt wird. Insbesondere die Entwickler überlegen, ob es nützlich ist, Aufgaben zu kombinieren oder zu agglomerieren, die durch die Teilungsphase identifiziert werden, um eine geringere Anzahl von Aufgaben zu liefern, die jeweils größer sind. Sie bestimmen auch, ob es sich lohnt, Daten und Berechnungen zu replizieren.
Kartierung
In der vierten und letzten Phase des Designs paralleler Algorithmen geben die Entwickler an, wo jede Aufgabe ausgeführt werden soll. Dieses Mapping-Problem entsteht nicht auf UniCessors oder auf gemeinsamen Memory-Computern, die eine automatische Aufgabenplanung liefern.

Andererseits auf der Serverseite, Multi-Core-Prozessoren sind ideal, da viele Benutzer gleichzeitig eine Verbindung zu einer Website herstellen und unabhängig haben Themen der Ausführung. Dies ermöglicht Webserver und Anwendungsserver, die viel besser sind Durchsatz.

Lizenzierung

Anbieter können eine Software "pro Prozessor" lizenzieren. Dies kann zu Unklarheiten führen, da ein "Prozessor" entweder aus einem einzelnen Kern oder aus einer Kombination von Kernen bestehen kann.

Eingebettete Anwendungen

Ein Eingebettetes System Auf einer Plug-in-Karte mit Prozessor, Speicher, Stromversorgung und externen Schnittstellen

Eingebettetes Computer arbeitet in einem Bereich der Prozessor -Technologie, der sich von der von "Mainstream" -PCs unterscheidet. Auch hier gelten die gleichen technologischen Antriebe in Richtung Multi-Core. In vielen Fällen ist die Anwendung eine "natürliche" Passform für Multi-Core-Technologien, wenn die Aufgabe leicht zwischen den verschiedenen Prozessoren partitioniert werden kann.

Darüber hinaus wurde eine eingebettete Software in der Regel für eine bestimmte Hardware -Version entwickelt, die Probleme von Software -Portabilität, Legacy -Code oder Unterstützung unabhängiger Entwickler weniger kritisch als bei PC oder Enterprise Computing. Infolgedessen ist es für Entwickler einfacher, neue Technologien einzusetzen, und infolgedessen gibt es eine größere Vielfalt an Multi-Core-Verarbeitungsarchitekturen und Lieferanten.

Netzwerkprozessoren

Ab 2010, Multi-Core Netzwerkprozessoren sind Mainstream geworden, mit Unternehmen wie wie Freescale Semiconductor, Cavium -NetzwerkeWinteGraa und Broadcom Alle Herstellungsprodukte mit acht Prozessoren. Für den Systementwickler besteht eine wichtige Herausforderung darin, alle Kerne in diesen Geräten auszunutzen, um die maximale Netzwerkleistung auf Systemebene zu erzielen, trotz der Leistungsbeschränkungen, Symmetrische Multiprozessierung (SMP) Betriebssystem. Unternehmen wie 6Wind Stellen Sie eine tragbare Paketverarbeitungssoftware zur Verfügung, die so gestaltet ist, dass die Netzwerkdatenebene in einer schnellen Pfadumgebung außerhalb des Betriebssystems des Netzwerkgeräts ausgeführt wird.[23]

Digitale Signalverarbeitung

Im digitale Signalverarbeitung Der gleiche Trend gilt: Texas Instrumente Hat die Drei-Kern-TMS320C6488 und Vier-Core TMS320C5441, Freizusagen Die MSC8144- und Six-Core-MSC8156 (und beide haben angegeben, dass sie an acht Kernnachfolgern arbeiten). Neuere Einträge sind die Storm-1-Familie von Stream Processors, Inc Mit 40 und 80 Allzweck -Alus pro Chip, alle in C als SIMD -Motor und programmierbar Picochip mit 300 Prozessoren auf einem einzigen Würfel, der sich auf Kommunikationsanwendungen konzentriert.

Heterogene Systeme

Im Heterogenes ComputerWenn ein System mehr als eine Art von Prozessor oder Kernen verwendet, werden Multi-Core-Lösungen immer häufiger: Xilinx Zynq Ultrascale+ MPSOC hat einen Quad-Core-Arm-Cortex-A53 und einen Dual-Core-Arm Cortex-R5. Softwarelösungen wie OpenAMP werden verwendet, um die Kommunikation zwischen den Prozessoren zu unterstützen.

Mobile Geräte können die verwenden Arm Big.Little die Architektur.

Hardware -Beispiele

Kommerziell

  • Adapteva Epiphany, eine vielkernige Prozessorarchitektur, die bis zu 4096 Prozessoren On-Chip ermöglicht, obwohl nur eine 16-Kern-Version kommerziell produziert wurde.
  • Aeroflex Gaisler Leon3, ein Multi-Kern Sparc das existiert auch in a Fehlertolerante Version.
  • AGEIA PhysX, ein Multi-Kern Physik -Verarbeitungseinheit.
  • Ambric AM2045, ein massiv paralleles Prozessorarray (336-Core) (MPPA)
  • AMD
    • Eine Serie, Dual-, Triple- und Quad-Core von beschleunigten Prozessoreinheiten (APU).
    • Athlon 64 fx und Athlon 64 x2 Einzel- und Dual-Core-Desktop-Prozessoren.
    • Athlon II, Dual-, Triple- und Quad-Core-Desktop-Prozessoren.
    • FX-Serie, Quad-, 6- und 8-Core-Desktop-Prozessoren.
    • Opteron, Single-, Dual-, Quad-, 6-, 8-, 12- und 16-Core-Server-/Workstation-Prozessoren.
    • Phänomen, Dual-, Triple- und Quad-Core-Prozessoren.
    • Phenom II, Dual-, Triple-, Quad- und 6-Core-Desktop-Prozessoren.
    • Sempron, Single-, Dual- und Quad-Core-Einstiegsprozessoren.[24]
    • Turion, Single- und Dual-Core-Laptop-Prozessoren.
    • Ryzen, Dual-, Quad-, 6-, 8-, 12-, 16-, 24-, 32- und 64-Core-Desktop-, Mobil- und eingebettete Plattformprozessoren.
    • EPYC, Quad-, 8-, 12-, 16-, 24-, 32- und 64-Core-Server- und eingebettete Prozessoren.
    • Radeon und Firestream Multi-Core GPU/Gpgpu (10 Kerne, 16 5-isue breit Superscalar Stream -Prozessoren pro Kern).
  • Analoge Geräte Schwarz BF561, ein symmetrischer Dual-Core-Prozessor
  • ARM Mpcore ist ein vollständig synthesizbarer Multi-Core-Container für ARM11 MPCORE und Arm Cortex-A9 mpcore Prozessorkerne, die für eingebettete und Unterhaltungsanwendungen für leistungsstarke Leistung bestimmt sind.
  • ASOCs Modemx, bis zu 128 Kerne, drahtlose Anwendungen.
  • Azul -Systeme
    • Vega 1, ein 24-Kern-Prozessor, der 2005 veröffentlicht wurde.
    • Vega 2, ein 48-Kern-Prozessor, veröffentlicht 2006.
    • Vega 3, ein 54-Kern-Prozessor, veröffentlicht 2008.
  • Broadcom Sibyte SB1250, SB1255, SB1455; BCM 2836 Quad-Core Arm SOC (ausgelegt für die Raspberry Pi 2)
  • Cadence -Designsysteme Tensilica XTensa LX6, erhältlich in einer Dual-Core-Konfiguration in espresssif-Systemen ESP32
  • Clearspeed
    • CSX700, 192-CORE-Prozessor, veröffentlicht 2008 (32/64-Bit-Schwimmpunkt; Integer Alu).
  • Cradle Technologies CT3400 und CT3600, beide Multi-Core-DSPs.
  • Cavium -Netzwerke Octeon, ein 32-Kern MIPS MPU.
  • Kohärentes logix HX3100 -Prozessor, ein 100-Kern-DSP/GPP-Prozessor.
  • Freescale Semiconductor Prozessoren der Qoriq -Serie, bis zu 8 Kerne, Macht ISA MPU.
  • Hewlett Packard PA-8800 und PA-8900, Zweikern Pa-risc Prozessoren.
  • IBM
    • Power4, ein Dual-Core Powerpc Prozessor, 2001 veröffentlicht.
    • Power5, ein Dual-Core-PowerPC-Prozessor, der 2004 veröffentlicht wurde.
    • Power6, ein Dual-Core-PowerPC-Prozessor, der 2007 veröffentlicht wurde.
    • Power7, ein 4,6,8-Core-Powerpc-Prozessor, der 2010 veröffentlicht wurde.
    • Power8, ein 12-Core-PowerPC-Prozessor, der 2013 veröffentlicht wurde.
    • Power9, ein 12- oder 24-Core-PowerPC-Prozessor, der 2017 veröffentlicht wurde.
    • Power10, ein 15- oder 30-Core-PowerPC-Prozessor, der 2021 veröffentlicht wurde.
    • Powerpc 970MP, ein Dual-Core-PowerPC-Prozessor, der im Apfel verwendet wird Power Mac G5.
    • Xenon, ein dreiköpfiger Kern, SMT-Capierbar, PowerPC -Mikroprozessor in der verwendet Microsoft Xbox 360 Spielkonsole.
    • Z10, ein Quad-Core Z/Architektur Prozessor, 2008 veröffentlicht.
    • Z196, ein Quad-Core-Z/Architektur-Prozessor, der 2010 veröffentlicht wurde.
    • ZEC12, ein Sechs-Core-Z/Architektur-Prozessor, der 2012 veröffentlicht wurde.
    • Z13, ein Acht-Core-Z/Architektur-Prozessor, der 2015 veröffentlicht wurde.
    • Z14, ein zehn Kern-Z/Architektur-Prozessor, der 2017 veröffentlicht wurde.
    • Z15, ein zwölf Core-Z/Architektur-Prozessor, der 2019 veröffentlicht wurde.
    • Telum, ein Acht-Core-Z/Architektur-Prozessor, der 2021 veröffentlicht wurde.

Frei

Akademisch

Benchmarks

Die Forschung und Entwicklung von Multicore -Prozessoren vergleicht häufig viele Optionen, und Benchmarks werden entwickelt, um solche Bewertungen zu unterstützen. Zu den bestehenden Benchmarks gehören Splash-2, Parsec und Cosmic für heterogene Systeme.[46]

Siehe auch

Anmerkungen

  1. ^ Digitale Signalprozessoren (DSPs) haben Multi-Core-Architekturen viel länger als hochwertige allgemeine Prozessoren verwendet. Ein typisches Beispiel für eine DSP-spezifische Implementierung wäre eine Kombination von a RISC CPU und ein DSP MPU. Dies ermöglicht das Design von Produkten, die einen allgemeinen Prozessor für Benutzeroberflächen und einen DSP für die Echtzeitdatenverarbeitung erfordern. Diese Art von Design ist häufig in Mobiltelefone. In anderen Anwendungen hat eine wachsende Anzahl von Unternehmen Multi-Core-DSPs mit einer sehr großen Anzahl von Prozessoren entwickelt.
  2. ^ Zwei Arten von Betriebssysteme können einen Dual-CPU-Multiprozessor verwenden: partitionierte Multiprozessing und Symmetrische Multiprozessierung (SMP). In einer partitionierten Architektur stapft jede CPU in getrennte Segmente des physischen Gedächtnisses und arbeitet unabhängig voneinander. In einem SMP -Betriebssystem arbeiten Prozessoren in einem gemeinsamen Bereich und führen Threads innerhalb des Betriebssystems unabhängig aus.

Verweise

  1. ^ Rouse, Margaret (27. März 2007). "Definition: Multi-Core-Prozessor". TechTarget. Archiviert von das Original am 5. August 2010. Abgerufen 6 März, 2013.
  2. ^ Schauer, Bryan. "Multicore -Prozessoren - eine Notwendigkeit" (PDF). Archiviert von das Original (PDF) Am 2011-11-25.
  3. ^ a b Smith, Ryan. "Nvidia kündigt die Geforce RTX 30 -Serie: Ampere für Gaming an, beginnend mit RTX 3080 & RTX 3090". www.anandtech.com. Abgerufen 2020-09-15.
  4. ^ "Sunway Taihulight - Sunway MPP, Sunway SW26010 260c 1,45 GHz, Sunway | Top500". www.top500.org. Abgerufen 2020-09-15.
  5. ^ Suleman, Aater (20. Mai 2011). "Was macht die parallele Programmierung schwierig?". Futurechips. Archiviert von das Original am 29. Mai 2011. Abgerufen 6 März, 2013.
  6. ^ Duran, A (2011). "OMPSS: Ein Vorschlag zur Programmierung heterogener Multi-Kern-Architekturen". Parallele Verarbeitungsbuchstaben. 21 (2): 173–193. doi:10.1142/s0129626411000151.
  7. ^ Schor, David (November 2017). "Der 2.048-Core-Pezy-SC2 stellt einen Green500-Rekord auf". Wikichip.
  8. ^ Vajda, András (2011-06-10). Programmieren vieler Kernchips. Springer. p. 3. ISBN 978-1-4419-9739-5.
  9. ^ Shrout, Ryan (2. Dezember 2009). "Intel zeigt einen 48-Core-X86-Prozessor als Single-Chip-Cloud-Computer". Archiviert Aus dem Original am 5. Januar 2016. Abgerufen 17. Mai, 2015.
  10. ^ "Intel enthüllt 48-Core Cloud Computing Silicon Chip". BBC. 3. Dezember 2009. Archiviert Aus dem Original am 6. Dezember 2012. Abgerufen 6 März, 2013.
  11. ^ Patterson, David A. "Zukunft der Computerarchitektur." Berkeley EECS Jährliches Forschungssymposium (BEARS), College of Engineering, UC Berkeley, USA. 2006.
  12. ^ Suleman, Aater (19. Mai 2011). "Fragen und Antworten: Sparen Sie Multicores Energie? Nicht wirklich". Archiviert von das Original am 16. Dezember 2012. Abgerufen 6 März, 2013.
  13. ^ Ni, Jun. "Aktivierung der Technologie des Multi-Core-Computers für die medizinische Bildgebung" (PDF). Archiviert von das Original (PDF) Am 2010-07-05. Abgerufen 17. Februar 2013.
  14. ^ Clark, Jack. "Intel: Warum ein 1.000-Kern-Chip machbar ist". ZDNET. Archiviert von das Original am 6. August 2015. Abgerufen 6. August 2015.
  15. ^ Kudikala, Chakri (27. August 2016). "Diese 5 Mythen über die Octa-Core-Telefone sind eigentlich wahr". Giz Bot.
  16. ^ "Mediateck startet MT6592 True Octa-Core Mobile Platform". Mediatek. 20. November 2013.
  17. ^ "Was ist ein Octa-Core-Prozessor". Samsung. Galaxy Smartphones laufen entweder auf Octa-Core (2,3 GHz Quad + 1,6 GHz Quad) oder Quad-Core (2,15 GHz + 1,6 GHz Dual) -Prozessoren
  18. ^ Merritt, Rick (6. Februar 2008). "CPU-Designer diskutieren Multi-Core-Zukunft". EE mal. Archiviert Aus dem Original am 14. November 2012. Abgerufen 6 März, 2013.
  19. ^ "Multicore Paket Processing Forum". Archiviert von das Original am 2009-12-21.
  20. ^ John Darlinton; Moustafa Ghanem; Yike Guo; Hing Wing to (1996). "Führungsressourcenorganisation für heterogene parallele Computing". Journal of High Performance Computing. 4 (1): 13–23. Citeseerx 10.1.1.37.4309.
  21. ^ Bright, Peter (4. Dezember 2015). "Windows Server 2016 wechselt pro Kern, nicht pro Socket, Lizenzierung". ARS Technica. Conde nast. Archiviert Aus dem Original am 4. Dezember 2015. Abgerufen 5. Dezember 2015.
  22. ^ Vergleichen: "Die Lizenzierung von Oracle Technology Products". OMT-Co Operations Management Technology Consulting GmbH. Archiviert vom Original am 2014-03-21. Abgerufen 2014-03-04.
  23. ^ "6Windgate -Software: Netzwerkoptimierungssoftware - SDN -Software - Steuerebene -Software | 6Wind".
  24. ^ "SEMPRON ™ 3850 APU mit Radeon ™ R3 -Serie | AMD". AMD. Archiviert Aus dem Original am 4. Mai 2019. Abgerufen 5. Mai 2019.
  25. ^ "Intel® Atom ™ Prozessor C -Serie -Produktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  26. ^ "Intel® Atom ™ Prozessor Z -Serie Produktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  27. ^ "Intel präsentiert Dual-Core-Celeron-Prozessoren". 11. Oktober 2007. archiviert von das Original am 4. November 2007. Abgerufen 12. November 2007.
  28. ^ "Intel® Celeron® -Prozessor J -Serie -Produktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  29. ^ "Produkte früher Yonah". ark.intel.com. Abgerufen 2019-05-04.
  30. ^ "Produkte früher Conroe". ark.intel.com. Abgerufen 2019-05-04.
  31. ^ "Produkte ehemals Kentsfield". ark.intel.com. Abgerufen 2019-05-04.
  32. ^ "Intel® Core ™ X-Serie-Prozessoren Produktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  33. ^ "Intel® Itanium® -Prozessor -Produktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  34. ^ "Intel® Pentium® Prozessor D -Serie -Produktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  35. ^ Zazaian, Mike (26. September 2006). "Intel: 80 Kerne bis 2011". Archiviert von das Original Am 2006-11-09. Abgerufen 2006-09-28.
  36. ^ Kowaliski, Cyril (18. Februar 2014). "Intel veröffentlicht 15-Core Xeon E7 V2-Prozessor". Archiviert vom Original am 2014-10-11.
  37. ^ "Intel Xeon -Prozessor E7 V3 Familie". Intel. Archiviert vom Original am 2015-07-07.
  38. ^ "Intel Xeon -Prozessor E7 V2 Familie". Intel. Archiviert vom Original am 2015-07-07.
  39. ^ "Intel Xeon -Prozessor E3 V2 Familie". Intel. Archiviert vom Original am 2015-07-07.
  40. ^ "Intel zeigt Xeon Platinum CPU mit bis zu 56 Kernen und 112 Fäden". Techspot. Abgerufen 2019-05-04.
  41. ^ PDF Herunterladen. "2. Gen Intel® Xeon® Skalierbare Prozessoren Brief". Intel. Abgerufen 2019-05-04.
  42. ^ "Intel® Xeon Phi ™ X100 Produktfamilienproduktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  43. ^ "Intel® Xeon Phi ™ 72x5 Prozessor -Familienproduktspezifikationen". ark.intel.com. Abgerufen 2019-05-04.
  44. ^ Cole, Bernard (24. September 2008). "40-Kernprozessor mit Forth-basierten IDE-Tools enthüllt".
  45. ^ Chacos, Brad (20. Juni 2016). "Treffen Sie Kilocore, einen 1000-Kern-Prozessor, der so effizient auf einer AA-Batterie ausgeführt wird.". PC Welt. Archiviert Aus dem Original am 23. Juni 2016.
  46. ^ "Kosmische heterogene Multiprozessor -Benchmark -Suite". Archiviert von das Original Am 2015-07-03.

Weitere Lektüre

  • Khondker S. Hasan, Nicolas G. Grounds, John K. Antonio (Juli 2011). Vorhersage von CPU-Verfügbarkeit eines Multi-Kern-Prozessors, der gleichzeitige Java-Threads ausführt.17. Internationale Konferenz über parallele und verteilte Verarbeitungstechniken und Anwendungen (PDPTA-11).Las Vegas, Nevada, USA.S. 551–557.{{}}: CS1 Wartung: Verwendet Autorenparameter (Link)
  • Khondker S. Hasan, John Antonio, Sridhar Radhakrishnan (Februar 2014). Ein neues zusammengesetztes CPU/Speichermodell zur Vorhersage der Effizienz der Multi-Core-Verarbeitung.Die 20. IEEE International Conference on High Performance Computer Architecture (HPCA-14) Workshop.Orlando, FL, USA. doi:10.13140/rg.2.1.3051.9207.{{}}: CS1 Wartung: Verwendet Autorenparameter (Link)

Externe Links