DE102013104198A1 - Multi-CPU-System und Computersystem mit demselben - Google Patents

Multi-CPU-System und Computersystem mit demselben Download PDF

Info

Publication number
DE102013104198A1
DE102013104198A1 DE102013104198A DE102013104198A DE102013104198A1 DE 102013104198 A1 DE102013104198 A1 DE 102013104198A1 DE 102013104198 A DE102013104198 A DE 102013104198A DE 102013104198 A DE102013104198 A DE 102013104198A DE 102013104198 A1 DE102013104198 A1 DE 102013104198A1
Authority
DE
Germany
Prior art keywords
cache
cpu
power
controller
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102013104198A
Other languages
English (en)
Inventor
Hoi Jin Lee
Young Min Shin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102013104198A1 publication Critical patent/DE102013104198A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Multi-CPU-Datenverarbeitungssystem (100), das Folgendes aufweist: einen Multi-CPU-Prozessor (103), der Folgendes aufweist: eine erste CPU (110, 110-1, 110-2), welche mit wenigstens einem ersten Kern (111, 113), einem ersten Cache (133, 143) und einem ersten Cache Controller (115) konfiguriert ist, welcher konfiguriert ist, um auf den ersten Cache (133, 143) zuzugreifen; und eine zweite CPU (120, 120-1, 120-2), welche mit wenigstens einem zweiten Kern (121, 123) und einem zweiten Cache Controller (125) konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten Cache (130, 140) zuzugreifen, wobei der erste Cache (133, 143) aus einem gemeinsam benutzten Abschnitt des zweiten Cache (130, 140) konfiguriert ist.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldung Nr. 10-2012-0048455 , welche am 8. Mai 2012 eingereicht wurde, deren Offenbarung hierin in ihrer Gesamtheit durch Bezugnahme mit eingebunden ist.
  • Technisches Gebiet
  • Ausführungsformen des vorliegenden erfinderischen Konzepts beziehen sich auf ein Multi-Zentralverarbeitungseinheit(CPU = Central Processing Unit)-System; insbesondere auf ein Multi-CPU-System, welches einen Level-2(L2)-Cache aufweist, welcher durch zwei CPUs gemeinsam benutzt wird, und ein Computersystem mit demselben.
  • Diskussion des Standes der Technik
  • Da Betriebsfrequenzen einer CPU höher werden, nimmt eine Leistungsaufnahme der CPU zu. Eine dynamische Frequenz- und Spannungs-Skalierung (DVFS = Dynamic Frequency and Voltage Scaling) ist eine Technik, welche verwendet wird, um eine CPU-Betriebsfrequenz und -Leistungsaufnahme zu optimieren.
  • In einem Multi-CPU-System, kann ein gemeinsames Benutzen von CPU-Ressourcen, wie beispielsweise eines Cache, eine Chipdichte erhöhen und eine Leistungsaufnahme verringern; die Gegenleistung jedoch kann in erhöhten Vorgängen und Operationen, beispielsweise zum Aufrechterhalten der Cache-Kohärenz, bestehen.
  • Beispielsweise werden, wenn ein Cache durch mehr als eine CPU gemeinsam benutzt wird, Daten-Spül- bzw. Data-Flushing und -Schnüffel bzw. -Snooping-Operationen benötigt, wenn die Verwendung des gemeinsam benutzten Cache einer CPU zu einer anderen CPU geschaltet wird. Die zusätzlichen Flushing- und Snooping-Operationen können eine Vorgangslatenz erhöhen und die Gesamt-Performance bzw. Gesamtleistungsfähigkeit des Multi-CPU-Systems beeinflussen.
  • KURZFASSUNG
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist ein Multi-CPU-Datenverarbeitungssystem vorgesehen, das Folgendes aufweist: Einen Multi-CPU-Prozessor, der Folgendes aufweist: Eine erste CPU, welche mit wenigstens einem ersten Kern, einem ersten L2-Cache und einem ersten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf den ersten L2-Cache zuzugreifen; und eine zweite CPU, welche mit wenigstens einem zweiten Kernt und einem zweiten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten L2-Cache zuzugreifen, wobei der erste L2-Cache aus einem gemeinsam benutzten Abschnitt des zweiten L2-Cache konfiguriert ist.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das System weiterhin eine gemeinsam benutzte Schaltung auf, welche konfiguriert ist, um Daten zu dem ersten L2-Cache von entweder dem ersten Cache-Controller oder dem zweiten Cache-Controller basierend auf einem Auswahlsignal zuzuführen, wobei die gemeinsam benutzte Schaltung einen Multiplexer, welcher konfiguriert ist, um eine Dateneingabe zu dem ersten L2-Cache auszuwählen, und einen Demultiplexer aufweist, welcher konfiguriert ist, um aus dem ersten L2-Cache gelesene Daten zu passieren, um sie basierend auf dem Auswahlsignal zu dem ersten Cache-Controller oder dem zweiten Cache-Controller auszugeben.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das System weiterhin eine Leistungsmanagement-Einheit auf, welche konfiguriert ist, um Steuersignale auszugeben, um unabhängig das An- und Abschalten der ersten CPU und der zweiten CPU und dem ersten L2-Cache zu steuern, wobei die Leistungsmanagement-Einheit weiterhin konfiguriert ist, um wahlweise die Leistung zwischen der ersten CPU ausschließlich des ersten L2-Cache und der zweiten CPU zu schalten, während eine Leistung auf dem ersten L2-Cache aufrechterhalten wird.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts sind der erste L2-Cache und die gemeinsam benutzte Schaltung in einem ersten SoC eingebettet, und die erste CPU ausschließlich des ersten L2-Cache ist in einem zweiten SoC eingebettet.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist die erste CPU ausschließlich des ersten L2-Cache in einer ersten Leistungsdomäne verkörpert, die zweite CPU ausschließlich des ersten L2-Cache ist in einer zweiten Leistungsdomäne verkörpert, und der erste L2-Cache ist in einer dritten Leistungsdomäne verkörpert, wobei jede Leistungsdomäne unabhängig steuerbar ist.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das System weiterhin einen Interfaceblock bzw. Schnittstellenblock auf, welcher konfiguriert ist, um den Multi-CPU-Prozessor mit einer Speichervorrichtung, einer Anzeigevorrichtung und einem drahtlosen Interfaceblock bzw. Schnittstellenblock zu koppeln.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist das System in einem von einem Smartphones, einem Laptops oder einem Tablet-Computer verkörpert.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist ein Multi-CPU-Datenverarbeitungssystem vorgesehen, das Folgendes aufweist: eine erste CPU, welche mit wenigstens einem ersten Kern, einem ersten L2-Cache und einem ersten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf Daten von dem ersten L2-Cache zuzugreifen; und eine zweite CPU, welche mit wenigstens einem zweiten Kern und einem zweiten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf Daten von einem zweiten L2-Cache zuzugreifen, wobei der erste L2-Cache aus einem gemeinsam benutzten Abschnitt des zweiten L2-Cache konfiguriert ist, wobei die erste CPU ausschließlich des ersten L2-Cache in einem ersten Chip (Die) verkörpert ist und die zweite CPU in einem zweiten Chip (Die) verkörpert ist.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das System weiterhin eine gemeinsam benutzte Schaltung auf, welche konfiguriert ist, um Daten von dem ersten L2-Cache zu dem ersten L2-Cache-Controller oder dem zweiten L2-Cache-Controller basierend auf einem Auswahlsignal auszugeben, wobei die gemeinsam benutzte Schaltung innerhalb des zweiten Chips verkörpert ist, wobei Steuersignal-Leitungen für die gemeinsam benutzte Schaltung Silizium-Durchkontaktierungen (TSVs = Through Silicon Vias) aufweisen, welche eine Verbindung zwischen dem ersten Chip und dem zweiten Chip bilden, und ein Datenzugriff auf/von dem ersten L2-Cache durch die erste CPU durch TSVs getätigt wird.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts sind der L1-Cache und der L2-Cache auf einem gemeinsamen Substrat verkörpert und wenigstens eine Adressleitung ist sowohl dem L1-Cache als auch dem L2-Cache gemeinsam.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das System weiterhin eine Leistungsmanagement-Einheit auf, welche konfiguriert ist, um Leistung wahlweise an die erste und die zweite Leistungsdomäne anzulegen, während sie die dritte Leistungsdomäne eingeschaltet bzw. mit Leistung versorgt aufrechterhält.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist ein Verfahren zum Verarbeiten von Daten unter Verwendung eines Multi-CPU-Prozessors vorgesehen, das Folgendes aufweist: Ein Zugreifen auf einen ersten L2-Cache durch eine erste CPU über einen ersten Cache-Controller; und ein Zugreifen auf einen zweiten L2-Cache durch eine zweite CPU über einen zweiten Cache-Controller, wobei der erste L2-Cache aus einem gemeinsam benutzten Abschnitt des zweiten L2-Cache konfiguriert ist.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das Verfahren ein Multiplexen einer Dateneingabe zu dem zweiten L2-Cache von entweder der ersten CPU oder der zweiten CPU basierend auf einem Auswahlsignal auf.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das Verfahren ein Schalten einer Cache-Zugriffsoperation von der ersten CPU zu der zweiten CPU ohne Flushing oder Snooping des ersten L2-Cache auf.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das Verfahren weiterhin ein Schalten einer Cache-Zugriffsoperation von der zweiten CPU zu der ersten CPU und ein Durchführen einer Spül- bzw. Flushing- oder Schnüffel- bzw. Snooping-Operation auf einem nicht gemeinsam benutzten Abschnitt des zweiten L2-Cache auf.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das Verfahren weiterhin ein Zugreifen entweder auf den L1-Cache oder den L2-Cache über eine gemeinsame Adressleitung auf.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist das Verfahren weiterhin ein Koppeln des Prozessors mit einer Speichervorrichtung, einer Anzeige und einem drahtlosen Interfaceblock bzw. Schnittstellenblock auf.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist eine tragbare Computervorrichtung vorgesehen, die Folgendes aufweist: eine erste CPU, welche mit wenigstens einem ersten Kern, einem ersten L2-Cache und einem ersten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf den ersten L2-Cache zuzugreifen; und eine zweite CPU, welche mit wenigstens einem zweiten Kern und einem zweiten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten L2-Cache zuzugreifen, wobei der erste L2-Cache aus einem gemeinsam benutzten Abschnitt des zweiten L2-Cache konfiguriert ist.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts weist die Vorrichtung weiterhin einen drahtlosen Transceiver auf, welcher konfiguriert ist, um Daten drahtlos zu übermitteln bzw. zu senden und zu empfangen.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist ein Prozessor vorgesehen, der Folgendes aufweist: eine erste CPU, welche mit wenigstens einem ersten Kern, einem ersten L2-Cache und einem ersten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf den ersten L2-Cache zuzugreifen; eine zweite CPU, welche mit wenigstens einem zweiten Kern und einem zweiten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten L2-Cache zuzugreifen, wobei der zweite L2-Cache in einer Speicherkapazität größer ist als der erste L2-Cache; einen Multiplexer, welcher konfiguriert ist, um Daten zu dem ersten L2-Cache von entweder dem ersten Kern über den ersten Cache-Controller oder dem zweiten Kern über den zweiten Cache-Controller basierend auf einem Auswahlsignal zu passieren; und einen Demultiplexer, welcher konfiguriert ist, um Daten von dem ersten L2-Cache zu entweder dem ersten Kern über den ersten Cache-Controller oder dem zweiten Kern über den zweiten Cache-Controller basierend auf dem Auswahlsignal zu passieren, wobei der erste L2-Cache aus einem gemeinsam benutzten Abschnitt des zweiten L2-Cache konfiguriert ist, und der L1-Cache und der L2-Cache auf einem gemeinsamen Substrat verkörpert sind.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist ein Multi-CPU-Datenverarbeitungssystem vorgesehen, das Folgendes aufweist: einen Multi-CPU-Prozessor, der Folgendes aufweist: Eine erste CPU, welche mit wenigstens einem ersten Kern, einem ersten L2-Cache und einem ersten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf den ersten L2-Cache zuzugreifen; eine zweite CPU, welche mit wenigstens einem zweiten Kern und einem zweiten Cache-Controller konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten L2-Cache zuzugreifen, wobei der erste L2-Cache aus einem gemeinsam benutzten Abschnitt des zweiten L2-Cache konfiguriert ist; eine Leistungsmanagement-Einheit, welche konfiguriert ist, um wahlweise entweder eine oder beide der ersten CPU und der zweiten CPU und den ersten L2-Cache mit Leistung zu versorgen; und einen Speichercontroller, welcher konfiguriert ist, um einen Speicherzugriff auf und von dem Multi-CPU-Prozessor über einen Datenbus zu steuern.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und/oder andere Aspekte des vorliegenden erfinderischen Konzepts werden deutlicher und leichter aus der folgenden Beschreibung der Ausführungsformen zusammengenommen in Verbindung mit den beigefügten Zeichnungen anerkannt werden, in welchen:
  • 1A ein schematisches Blockschaltbild eines Multi-Zentralverarbeitungseinheits(CPU = Central Processing Unit)-Systems gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts ist;
  • 1B ein Blockschaltbild eines Computersystems ist, welches das Multi-CPU-System der 1A aufweist;
  • 2 ein schematisches Blockschaltbild eines Level-2(L2)-Cache ist, welcher in einer zweiten CPU der 1A integriert ist;
  • 3 ein Blockschaltbild ist, welches Leistungsdomänen der Multi-CPU der 1A veranschaulicht;
  • 4A und 4B eine beispielhafte Ausführungsform einer CPU-Skalierung der Multi-CPU der 1A veranschaulichen;
  • 5 ein Flussdiagramm eines CPU-Skalierungsvorgangs gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts ist;
  • 6A, 6B, 6C und 6D eine andere beispielhafte Ausführungsform einer CPU-Skalierung der Multi-CPU der 1A veranschaulichen;
  • 7 ein Flussdiagramm eines anderen CPU-Skalierungsvorgangs gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts ist;
  • 8A und 8B schematische Blockschaltbilder eines Multi-CPU-Systems gemäß einer anderen beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts sind;
  • 9 ein Blockschaltbild einer Board-Anordnung gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts ist;
  • 10 eine Computerplattform gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts ist;
  • 11 ein Computersystem ist, welches ein Multi-CPU-System gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts aufweist; und
  • 12 ein Flussdiagramm eines Verfahrens zum Herstellen des Multi-CPU-Systems gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts ist.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist ein schematisches Blockschaltbild eines Multi-Zentralverarbeitungseinheits(CPU = Central Processing Unit)-Systems gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts.
  • Bezug nehmend auf 1A weist ein Multi-CPU-System 100 einen Systembus 101, eine Multi-CPU 103 und einen Speichercontroller 105 auf. Hier kann das Multi-CPU-System 100 in einem Ein-Chip-System (SoC = System on Chip) verkörpert sein. Beispielsweise kann das Multi-CPU-System 100 durch Verwenden einer einzigen Maske verkörpert sein.
  • Eine Multi-CPU 103 kann eine erste CPU 110 und eine zweite CPU 120 aufweisen. Gemäß einer beispielhaften Ausführungsform kann die Multi-CPU 103 weiterhin eine Leistungsmanagement-Einheit (PMU = Power Management Unit) 150 aufweisen.
  • Zur Zweckmäßigkeit der Erklärung ist die Multi-CPU 103, welche zwei CPUs 110 und 120 aufweist, in 1A veranschaulicht; das vorliegende erfinderische Konzept kann jedoch auf eine Multi-CPU, welche mehr als zwei CPUs aufweist, angewandt werden.
  • Die erste CPU 110 kann wenigstens einen ersten CPU-Kern 111 und 113 und einen ersten Level 2(L2)-Cache Controller 115 aufweisen. Demzufolge kann die erste CPU 110 in einer Multi-Kern-CPU verkörpert sein. Der wenigstens eine erste CPU-Kern 111 und 113 kann einen Level 1(L1)-Cache aufweisen (nicht gezeigt), beispielsweise einen Befehls-Cache und einen Daten-Cache. Der wenigstens eine erste CPU-Kern 111 und 113 können weiterhin eine Peripherieschaltung zum Kommunizieren mit dem ersten Level 2(L2)-Cache Controller 115 aufweisen.
  • Der erste L2-Cache Controller 115 kann weiterhin einen ersten Interfaceblock bzw. Schnittstellenblock 117 aufweisen, welcher mit einem Bussystem 101 durch einen ersten Kommunikationskanal CH1 koppelt.
  • Die zweite CPU 120 kann wenigstens einen zweiten CPU-Kern 121 und 123, einen zweiten L2-Cache Controller 125 und wenigstens einen L2-Cache 130 und 140 aufweisen. Demzufolge kann die zweite CPU 120 in einer Multi-Kern-CPU verkörpert sein. Der wenigstens eine zweite CPU-Kern 121 und 123 kann einen L1-Cache (nicht gezeigt) aufweisen, beispielsweise einen Befehls-Cache und einen Daten-Cache. Der wenigstens eine zweite CPU-Kern 121 und 123 kann weiterhin eine Peripherieschaltung zum Kommunizieren mit dem zweiten L2-Cache Controller 125 aufweisen.
  • Der zweite L2-Cache Controller 125 kann einen zweiten Interfaceblock bzw. Schnittstellenblock 127 aufweisen, welcher mit dem Systembus 101 durch einen zweiten Kommunikationskanal CH2 koppelt.
  • Hier können der erste L2-Cache Controller 115 und der zweite L2-Cache Controller 125 in getrennten Strukturen verkörpert sein, unabhängig arbeiten und mit dem Systembus 101 getrennt über Kommunikationskanäle CH1 und CH2 kommunizieren.
  • Jede der ersten CPU 110 und der zweiten CPU 120 weist einen korrespondierenden L2-Cache zusätzlich zu einem entsprechenden L1-Cache auf. Ein L2-Cache ist ein Daten-Cache und ist typischerweise größer in der Kapazität und der Größe als ein L1-Cache. Für Zwecke der Veranschaulichung der vorliegenden Ausführungsform wird auf die „erste” Gruppe von Komponenten bzw. Bestandteilen, wie beispielsweise die erste CPU 110, den ersten L2-Cache Controller 115 und den ersten L2-Cache Bezug genommen als die „kleine” Gruppe – kleine CPU 110, kleiner L2-Cache Controller 115 usw. Auf die „zweite” Gruppe von Komponenten bzw. Bestandteilen wie beispielsweise die zweite CPU 120, den zweiten L2-Cache Controller 125 und den zweiten L2-Cache wird Bezug genommen als die „große” Gruppe – große CPU 120, großer L2-Cache Controller usw. Die erste CPU 110 weist einen L2-Cache 133 und 143 auf. Die zweite CPU 120 weist einen L2-Cache 130 und 140 auf. Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts, wie es in 1A gezeigt ist, wird der erste (kleine) L2-Cache 133 und 143 funktional durch sowohl die erste CPU 110 als auch die zweite CPU 120 gemeinsam benutzt. In anderen Worten gesagt kann auf den ersten L2-Cache 133 und 143 durch entweder die erste CPU 110 oder die zweite CPU 120 zugegriffen werden. Hier bedeutet „Zugriff” eine Operation, welche für eine Schreiboperation oder eine Leseoperation notwendig ist. Weiterhin ist der erste (kleine) L2-Cache 133 und 143 ein Teil des zweiten (großen) L2-Cache 131 und 141. Beispielsweise kann der kleine L2-Cache aus einem Abschnitt des großen L2-Cache gebildet sein, beispielsweise kann der große L2-Cache eine 2 MB Speichervorrichtung sein und der kleine L2-Cache kann aus einem 25%-Abschnitt des großen L2-Cache mit einer 512 KB Kapazität, welche durch die kleine und die große CPU gemeinsam benutzt wird, gebildet sein.
  • Auf den nicht gemeinsam benutzte Abschnitt 131 und 141 des zweiten L2-Cache 130 und 140 (beispielsweise 1,5 MB der 2 MB Speichervorrichtung) kann nur durch die zweite CPU 120 über den zweiten L2-Cache Controller 125 zugegriffen werden.
  • Der zweite L2-Cache Controller 125 kann auf den gesamten L2-Cache 130 und 140 einschließlich den gemeinsam benutzten L2-Cache 133 und 143 und den nicht gemeinsam benutzten L2-Cache 131 und 141 zu derselben Zeit zugreifen. Auf den gemeinsam benutzten L2-Cache 133 und 143 kann jedoch nicht durch den ersten L2-Cache Controller 115 und den zweiten L2-Cache Controller 125 zu derselben Zeit zugegriffen werden.
  • Die Leistungsmanagement-Einheit PMU 150 ist konfiguriert, um wahlweise Leistung auf die kleine CPU 110 und/oder die große CPU 120 unter Verwendung von Steuersignalen CTR1 und CTR2 und/oder einem Auswahlsignal SEL, basierend auf wenigstens einem eines ersten Anzeigesignals IND1, welches von der ersten CPU 110 ausgegeben wird und eines zweiten Anzeigesignals IND2, welches von der zweiten CPU 120 ausgegeben wird, anzuwenden.
  • Jedes Anzeigesignal IND1 und IND2 kann der PMU 150 durch den Systembus 101 zugeführt bzw. zur Verfügung gestellt werden. Die Signale SEL, CTR1 und CTR2 können ein oder mehrere Steuermodus-Signale aufweisen.
  • Basierend auf den ersten Steuersignalen CTR1 kann die erste CPU 110 eine Leistungsversorgung und/oder einen Reset unabhängig durch eine Leistungsdomäne steuern. Basierend auf den zweiten Steuersignalen CTR2 kann die zweite CPU 120 eine Leistungsversorgung und/oder einen Reset unabhängig durch eine Leistungsdomäne steuern.
  • Zusätzlich können die erste CPU 110 und die zweite CPU 120 eine CPU-Skalierung, d. h. ein Schalten zwischen CPUs 110 und 120 in Antwort auf ein Auswahlsignal SEL steuern.
  • Obwohl die Struktur, wie sie in 1A beschrieben ist, und Operationen in Verbindung damit in Verbindung mit L2-Caches beschrieben worden sind, kann ein Fachmann bereitwillig anerkennen, dass die gleiche Struktur und die gleichen Operationen auf unterschiedliche Level-Caches, beispielsweise ein Level 3(L3)-Cache anwendbar sind.
  • Beispielsweise wird ein Funktionsblock, welcher in der zweiten CPU 120 verkörpert ist, durch jede einer CPU 110 und einer CPU 120 gemeinsam benutzt, beispielsweise ein L2-Cache oder ein L3-Cache. Wenn der Funktionsblock ein L3-Cache ist, kann jeder L2-Cache Controller durch einen L3-Cache Controller ersetzt sein.
  • Jede CPU 110 und 120 kann mit dem Speichercontroller 105 durch jeden Kommunikationskanal CH1 und CH2 und den Systembus 101 kommunizieren. Der Speichercontroller 105 kann auf einen Speicher, beispielsweise einen Hauptspeicher, welcher mit einem Multi-CPU-System verbunden ist, zugreifen.
  • Zur Zweckmäßigkeit der Erklärung ist jedes Element 101 und 105 in 1A außerhalb der Multi-CPU 103 veranschaulicht; jedes Element 101 und 105 jedoch kann innerhalb der Multi-CPU 103 verkörpert sein.
  • 1B ist ein Blockschaltbild eines Computersystems, welches das Multi-CPU-System, welches in 1A veranschaulicht ist, aufweist.
  • Bezug nehmend auf 1B kann das Computersystem das Multi-CPU-System 100 und einen Speicher 107 aufweisen. Wie obenstehend beschrieben ist, kann der Speichercontroller 105 eine Datenkommunikation zwischen dem Multi-CPU-System 100 und dem Speicher 107 steuern oder koppeln.
  • 2 ist ein Blockschaltbild eines gemeinsam benutzten L2-Cache und einer gemeinsam benutzten Schaltung gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts.
  • Wie in den 1A und 2 veranschaulicht ist, weist ein L2-Cache 130 einen dedizierten Bereiche 131, welcher ein nicht gemeinsam benutzter Bereich ist, und einen gemeinsam benutzten Bereich 133 auf. Zusätzlich weist ein L2-Cache 140 einen dedizierten Bereich 141 und einen gemeinsam benutzen Bereich 143 auf. Da L2-Cache 130 und 140 im Wesentlichen die gleiche Struktur haben, sind die Beschreibungen des L2-Cache 130 gleichermaßen auf den L2-Cache 140 anwendbar. Da der gemeinsam benutzte Bereich 133 oder 143 aus einem Abschnitt des L2-Cache 130 oder 140 konfiguriert ist, benutzt der gemeinsam benutzte Bereich auch wenigstens eine Adressleitung des L2-Cache 130 oder 140 gemeinsam.
  • Wie obenstehend beschrieben ist, kann auf den dedizierten Bereich 131 nur durch den zweiten L2-Cache Controller 125 zugegriffen werden, und auf den gemeinsam benutzten Bereich 133 kann wahlweise durch einen des ersten L2-Cache Controller 115 und des zweiten L2-Cache Controllers 125 basierend auf einem Auswahlsignal SEL zugegriffen werden.
  • Die gemeinsam benutzte Schaltung weist einen ersten Selektor bzw. Wähler 160 und einen zweiten Selektor 161 auf. Gemäß einer Ausführungsform ist die gemeinsam benutzte Schaltung innerhalb der großen CPU 120 aber außerhalb des gemeinsam benutzten Bereich 133 angeordnet. Gemäß einer alternativen Ausführungsform können der erste Selektor 160 und der zweite Selektor 161 innerhalb des gemeinsam benutzten Bereichs 133 verkörpert sein. Gemäß der vorliegenden Ausführungsform ist der erste Selektor 160 in einem Multiplexer verkörpert, und der zweite Selektor 161 ist in einem Demultiplexer verkörpert. Gemäß einer alternativen Ausführungsform kann die gemeinsam benutzte Schaltung den ersten Selektor 160 aufweisen, aber nicht den zweiten Selektor 161.
  • Wenn der erste L2-Cache Controller 115 versucht, auf den gemeinsam benutzten Bereich 133 zuzugreifen, überträgt der erste Selektor 160 erste Zugriffssignale ACC1, welche von dem ersten L2-Cache Controller 115 ausgegeben werden, an einen Eingabeport bzw. Eingabeanschluss IN1 des gemeinsam benutzten Bereichs 133 in Antwort auf ein Auswahlsignal SEL.
  • Für eine Schreiboperation durch die erste (kleine) Gruppe schreibt der erste L2-Cache Controller 115 Daten in den gemeinsam benutzten Bereich 133, die ersten Zugriffssignale ACC1 (beispielsweise Daten- und Steuersignale, welche zum Schreiben der Daten in eine Speicherzellanordnung 133-1 notwendig sind) werden an den ersten Eingabeanschluss IN1 durch den ersten Selektor 160 übertragen.
  • Für eine Leseoperation durch die erste Gruppe liest der erste L2-Cache Controller 115 Daten, welche in dem gemeinsam benutzten Bereich 133 gespeichert sind, die ersten Zugriffssignale ACC1 (beispielsweise Steuersignale, welche zum Lesen der Daten aus der Speicherzellanordnung 133-1 notwendig sind) werden durch den ersten Selektor 160 zu dem ersten Eingabeanschluss IN1 übertragen und Daten, welche von einem ersten Ausgabeport bzw. Ausgabeanschluss OUT1 des gemeinsam benutzten Bereichs 133 ausgegeben werden, werden zu dem ersten L2-Cache Controller 115 durch den zweiten Selektor 161 übertragen.
  • In einer Ausführungsform, welche den zweiten Selektor 161 nicht aufweist, kann eine Datenausgabe von dem ersten Ausgabeanschluss OUT1 direkt an den ersten L2-Cache Controller 115 übertragen werden.
  • Für einen Zugriff auf den gemeinsam benutzten Bereich 133 durch die zweite (große) Gruppe, beispielsweise L2-Cache Controller 125 überträgt der erste Selektor 160 zweite Zugriffssignale ACC2, welche von dem zweiten L2-Cache Controller 125 ausgegeben werden, zu dem ersten Eingabeanschluss IN1 in Antwort auf ein Auswahlsignal SEL.
  • Beispielsweise werden, wenn der zweite L2-Cache Controller 125 Daten in den gemeinsam benutzten Bereich 133 schreibt, die zweiten Zugriffssignale ACC2 (beispielsweise Daten und Steuersignale, welche zum Schreiben von Daten in die Speicherzellanordnung 133-1 notwendig sind) zu dem ersten Eingabeanschluss IN1 durch den ersten Selektor 160 übertragen.
  • Wenn der zweite L2-Cache Controller 125 Daten liest, welche in dem gemeinsam benutzten Bereich 133 gespeichert sind, werden die zweiten Zugriffssignale ACC2 (beispielsweise Steuersignale, welche zum Lesen der Daten aus der Speicherzellanordnung 133-1 notwendig sind) zu dem ersten Eingabeanschluss IN1 durch den zweiten Selektor 161 übertragen, und Daten, welche durch den ersten Ausgabeanschluss OUT1 ausgegeben werden, werden zu dem zweiten L2-Cache Controller 125 durch den zweiten Selektor 161 übertragen.
  • In einer Ausführungsform, welche den zweiten Selektor 161 nicht aufweist, kann eine Datenausgabe von dem ersten Ausgabeanschluss OUT1 direkt an den zweiten L2-Cache Controller 125 übertragen werden.
  • Wenn der zweite L2-Cache Controller 125 Daten in den dedizierten Bereich 131 schreibt, werden dritte Zugriffssignale ACC3, welche von dem zweiten L2-Cache Controller 125 ausgegeben werden (beispielsweise Daten- und Steuersignale, welche zum Schreiben der Daten in die Speicherzellanordnung 133-1 notwendig sind) einem zweiten Eingabeanschluss IN2 des dedizierten Bereichs 131 zugeführt.
  • Wenn der zweite L2-Cache Controller 125 Daten liest, welche in dem dedizierten Bereich 131 gespeichert sind, werden die dritten Zugriffssignale ACC3 (beispielsweise Steuersignale, welche zum Lesen der Daten aus der Speicheranordnung 133-1 notwendig sind) direkt an den zweiten Eingabeanschluss IN2 übertragen, und Daten, welche durch den zweiten Ausgabeanschluss OUT2 des dedizierten Bereichs 131 ausgegeben werden, werden direkt zu dem zweiten L2-Cache Controller 125 übertragen.
  • Es kann gesehen werden, dass die gemeinsam benutzte Schaltung eine Struktur vorsieht, welche einen fehlerhaften Datenzugriff zu/von dem gemeinsam benutzten L2-Cache durch entweder den kleinen oder den großen L2-Cache Controller verhindert.
  • 3 ist ein Blockschaltbild der Multi-CPU der 1, welche in Verbindung mit einer Veranschaulichung der Allozierung und Steuerung von Leistungsdomänen verwendet wird. Bezug nehmend auf die 1 und 3 weist die erste CPU 110 Leistungsdomänen 111, 113 und 115 auf. Jedes von ersten Steuersignalen CTR1-1 bis CTR1-3 (insgesamt „CTR1”) wird jeder der Leistungsdomänen 111, 113 und 115 zugeführt.
  • Gemäß jedem der ersten Steuersignale CTR1-1, CTR1-2 und CTR1-3 kann eine Leistung, welche jeder der Leistungsdomänen 111, 113 und 115 zur Verfügung gestellt wird, und/oder ein Reset jeder der Leistungsdomänen 111, 113 und 115 unabhängig gesteuert werden. Zusätzlich kann, wenn ein erster Interfaceblock 117 als eine zusätzliche Leistungsdomäne definiert ist, ein zusätzliches Steuersignal dem ersten Interfaceblock 117 zur Verfügung gestellt werden bzw. zugeführt werden. Das zusätzliche Steuersignal kann in den ersten Steuersignalen CTR1 enthalten sein.
  • Die zweite CPU 120 weist Leistungsdomänen 121, 123, 125, 131, 133, 141 und 143 auf. Jedes der zweiten Steuersignale CTR2-1 bis CTR2-5 (insgesamt „CTR2”) wird jeder der Leistungsdomänen 121, 125, 123, 131 und 141 zugeführt.
  • Gemäß jedem der zweiten Steuersignale CTR2-1 bis CTR2-5 kann eine Leistung, welche jeder der entsprechenden Leistungsdomänen 121, 125, 123, 131, 133 und 141 zugeführt wird, und/oder ein Reset jeder der Leistungsdomänen unabhängig gesteuert werden.
  • Zusätzlich kann, wenn ein zweiter Interfaceblock 127 als eine zusätzliche Leistungsdomäne definiert ist, ein zusätzliches Steuersignal dem zweiten Interfaceblock 127 zugeführt werden. Das zusätzliche Steuersignal kann in den zweiten Steuersignalen CTR2 enthalten sein.
  • Die Domäne des gemeinsam benutzten L2-Cache 133 und 143 ist unabhängig durch Steuersignale CTR3-1 und CTR3-2 steuerbar. Gemäß einer alternativen Ausführungsform können die CTR3-1 und CTR3-2 Signale entweder mit bzw. in CTR1 oder CTR2 integriert sein.
  • Die 4A und 4B zeigen CPU-Skalierungsvorgänge von einer kleinen CPU 110 zu einer großen CPU 120 gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts.
  • In einem Multi-CPU-Datenverarbeitungssystem, welches CPUs hat, welche in den Größen und Leistungsfähigkeiten unterschiedlich sind, kann eine Peak-Leistungsfähigkeit durch eine Skalierungsverwendung unter den CPUs erreicht werden. Beispielsweise kann bei einer niedrigen Arbeitslast die kleine CPU 110 als eine leistungsgetriebene CPU verwendet werden, welche bei den höchsten Millionen von Befehlen pro Sekunde pro Milliwatt (MIPS/mW = Millions of Instructions per Second per Milliwatt) für eine optimierte Leistungsverwendung arbeitet. Bei einer hohen Arbeitslast kann die CPU 120 als eine Performance-getriebene bzw. Leistungsfähigkeits-getriebene CPU verwendet werden, welche bei einer Peak-Leistungsfähigkeit arbeitet, obwohl sie weniger MIPS/mW hat.
  • Hier bedeutet CPU-Skalierung eine Operation des Schaltens von der kleinen CPU 110 zu der großen CPU 120 oder von der großen CPU 120 zu der kleinen CPU 110 bei derselben Betriebsspannung. Das heißt, die CPU-Skalierung kann eine Arbeitslast-Leistungsfähigkeit nach einer Leistungsaufnahme, beispielsweise MIPS/mW ändern, oder sie kann eine Energiemenge, welche zum Ausführen eines CPU-Befehls notwendig ist, ohne Ändern einer Spannung ändern.
  • Bezug nehmend auf 4A ist die kleine CPU 110 im Betrieb gezeigt, mit Leistungsdomänen 111, 113 und 115 (einschließlich 117, falls benötigt) in einem eingeschalteten Zustand POWER ON, und jede Leistungsdomäne 121 bis 125, 131 und 141 (einschließlich 127, falls benötigt) der großen CPU 120 ist in einem abgeschalteten Zustand POWER OFF. Die Leistungsdomänen 133 und 144, welche den gemeinsam benutzten L2-Cache bedienen, sind auch POWER ON. Der erste L2-Cache Controller 115 kann auf wenigstens einen gemeinsam benutzten Bereich 133 und 143 durch jeden Selektor 160 und 161 zugreifen.
  • Wenn die Arbeitslast der kleinen CPU 110 zunimmt, kann ein Skalieren auf die große CPU 120 erwünscht sein. Um von der kleinen CPU zu der großen CPU zu skalieren, überträgt ein erster Kern 111 der ersten CPU 110 ein erstes Anzeigesignal IND1 zu der PMU 150 durch den ersten Kommunikationskanal CH1 und den Systembus 101, um eine CPU-Skalierung oder ein CPU-Schalten von der kleinen CPU 110 zu der großen CPU 120 durchzuführen.
  • Die PMU 150 gibt erste Steuersignale CTR1, zweite Steuersignale CTR2 und ein Auswahlsignal SEL in Antwort auf ein erstes Anzeigesignal IND1 aus. Demzufolge wird die Leistung, welche an jede der Leistungsdomänen 111, 113 und 115 angelegt wird, in Antwort auf jedes der ersten Steuersignale CTR1 abgeschaltet und die kleine CPU 110 hält den gegenwärtigen Job bzw. die gegenwärtige Aufgabe an.
  • Zu derselben Zeit wird die Leistung, welche auf jede der Leistungsdomänen 121, 123, 125, 131 und 141 der großen CPU 120 angewandt wird, angeschaltet, und die große CPU 120 beginnt den Betrieb für den Job in Antwort auf jedes der zweiten Steuersignale CTR2-1 bis CTR2-5.
  • Wenigstens ein gemeinsam benutzter Bereich 133 und 143 kann als eine Teilmenge von L2-Cache 130 oder 140 der großen CPU 120 verwendet werden. Der oben beschriebene Skalierungsvorgang von der kleinen CPU 110 zu der großen CPU 120 benötigt keine Snooping-Operation.
  • Darüber hinaus muss die große CPU 120 keinen Kaltstart für jeden L2-Cache 130 und 140 durchführen. Wenigstens ein dedizierter Bereich 132 und 141 von wenigstens einem L2-Cache 130 und 140 kann zusammen mit den Leistungsdomänen 121, 123 und 125 in einem READY-Zustand sein.
  • Während der CPU-Skalierung von der kleinen CPU 110 zu der großen CPU 120 wird Leistung, welche wenigstens einen gemeinsam benutzten Bereich 133 und 143 zugeführt wird, AN (ON) gehalten. Zusätzlich wird während des CPU-Skalierens von der kleinen CPU 110 zu der großen CPU 120 jeder Selektor 160 und 161 geschaltet, so dass der zweite L2-Cache Controller 125 auf wenigstens einen gemeinsam benutzten Bereich 133 und 143 durch jeden Selektor 160 und 161 zugreifen kann.
  • Demzufolge ist die Struktur, welche die große CPU 120 gemäß dieser Ausführungsform des erfinderischen Konzepts aufweist, für eine optimale Leistungsfähigkeit unmittelbar nach dem CPU-Skalieren oder CPU-Schalten konfiguriert.
  • Wie in 4B veranschaulicht ist, ist gerade nach dem CPU-Skalieren von der kleinen CPU 110 zu der großen CPU 120 jede Leistungsdomäne der kleinen CPU 110 in einem abgeschalteten Zustand POWER OFF und jede Leistungsdomäne 121 bis 125, 131 und 141 der großen CPU 120 ist in einem angeschalteten Zustand POWER ON. Leistung, welche gemeinsam benutzten Bereichen 133 und 143 zur Verfügung gestellt wird, wird auf AN (ON) gehalten.
  • In dem Fall des Multi-CPU-Systems 100, welches eine Snooping-Operation nicht unterstütz, spült die kleine CPU 110 Daten, welche in wenigstens einem gemeinsam benutzten Bereich 133 und 143 gespeichert sind (beispielsweise Daten, welche keinen Fehlerkorrektur-Code (ECC = Error Correction Code) aufweisen) durch den Kanal CH1, den Bus 101 und den Speichercontroller 105 zu dem Speicher 107. Danach kann die große CPU 120 Daten, welche in den Speicher 107 gespeichert sind, durch den Speichercontroller 105, den Bus 101 und den Kanal CH2 lesen. Die große CPU kann einen ECC zu den gelesenen Daten hinzufügen und die Daten mit hinzugefügtem ECC in wenigstens einem gemeinsam benutzten L2-Cache 133 und 143 speichern.
  • 5 ist ein Flussdiagramm zum Erklären eines CPU-Skalierungsvorgangs. Bezug nehmend auf die 1A bis 5 wird eine CPU-Skalierung von der kleinen CPU 110 zu der großen CPU 120 durch die kleine CPU 110, welche ein Skaliersignal IND1 (S110) ausgibt, initiiert; die PMU 150 schaltet die Leistungsdomänen der kleinen CPU 110 ab, schaltet die Leistungsdomänen der großen CPU 120 an, hält aber die Leistungsdomänen des gemeinsam benutzten L2-Cache 133 und 143 (S120) an; und ein Betrieb der kleinen CPU 110 wird gestoppt und ein Betrieb der großen CPU 120 wird ohne eine Snooping-Operation (S130) gestartet.
  • Gemäß einer beispielhaften Ausführungsform kann, wenn die kleine CPU 110 Daten, welche in dem wenigstens einen gemeinsam benutzten Bereich 133 und 143 gespeichert sind, zu dem Speicher 107 überträgt, die große CPU 120 die Daten, welche in dem Speicher 107 gespeichert sind, auslesen, wenn es notwendig ist.
  • Die 6A bis 6D veranschaulichen CPU-Skalierungsvorgänge von der großen CPU 120 zu der kleinen CPU 110.
  • Bezug nehmend auf die 1A bis 3 und 6A bis 6D ist, wenn die große CPU 120, wie in 6A veranschaulicht arbeitet, jede Leistungsdomäne 111, 113 und 115 der kleinen CPU in einem abgeschalteten Zustand POWER OFF und jede Leistungsdomäne 121, 123, 125, 131, 133, 141 und 143 der großen CPU 120 ist in einem angeschalteten Zustand POWER ON. Hier kann der zweite L2-Cache Controller 125 entweder auf einen oder beide gemeinsam benutzte Bereiche 133 und 143 zugreifen.
  • Für eine CPU-Skalierung von der großen CPU 120 zu der kleinen CPU 110 gibt ein erster Kern 121 der großen CPU 120 ein zweites Anzeigesignal IND2 an die PMU 150 durch einen zweiten Kommunikationskanal CH2 und den Systembus 101 aus.
  • Die PMU 150 gibt erste Steuersignale CTR1, ein zweites Steuersignal CTR2 und ein Auswahlsignal SEL in Antwort auf das zweite Anzeigesignal IND2 aus.
  • Jeder Selektor 160 und 161 bildet einen Kommunikationskanal zwischen den wenigstens einen gemeinsam benutzten Bereich 133 und 143 und den zweiten L1-Cache Controller 115 in Antwort auf ein Auswahlsignal SEL.
  • Wie in 6B veranschaulicht ist, wird jede Leistungsdomäne 111 bis 115 der kleinen CPU 110 in einen eingeschalteten Zustand POWER ON in Antwort auf jedes der ersten Steuersignale CTR1 versetzt, und jede Leistungsdomäne 121 bis 125, 130 und 140 der großen CPU 120 verweilt in einem eingeschalteten Zustand POWER ON in Antwort auf jedes der zweiten Steuersignale CTR2. Die Leistungsdomänen für den bzw. zu dem gemeinsam benutzten L2-Cache 133 und 143 werden mit dritten Steuersignalen CTR3 angeschaltet gehalten.
  • Hier werden Daten von wenigstens einer von Leistungsdomänen 121 bis 125 der großen CPU 120 zu wenigstens einem L2-Cache 130 und 140 aktualisiert und die große CPU 120 führt eine Flushing-Operation an wenigstens einem dedizierten Bereich 131 und 141 durch, während sie eine Snooping-Operation durch einen zweiten Kommunikationskanal CH2 durchführt. Daten von der Flushing-Operation können zu dem Speicher 107 durch den Kanal CH2, den Bus 101 und den Speichercontroller 105 übertragen werden.
  • Wie in 6C veranschaulicht ist, wird jede Leistungsdomäne 121 und 123 der großen CPU 120 in einen abgeschalteten Zustand POWER OFF in Antwort auf jedes von entsprechenden Steuersignalen unter den zweiten Steuersignalen CTR2 verbracht, während eine Flushing-Operation durchgeführt wird.
  • Wenn die Flushing-Operation vollendet ist, wird jede Leistungsdomäne 125, 131 und 141 der großen CPU 120 in einen angeschalteten Zustand POWER OFF in Antwort auf jedes von entsprechenden Steuersignalen unter den zweiten Steuersignalen CTR2, wie in 6D veranschaulicht ist, verbracht. Demzufolge kann, wenn das CPU-Skalieren vollendet ist, der erste L2-Cache Controller 115 der kleinen CPU 110 auf wenigstens einen gemeinsam benutzten Bereich 133 und 143 durch jeden Selektor 160 und 161 zugreifen.
  • Wie in den 6A bis 6D veranschaulicht ist, wird die Leistung, welche den gemeinsam benutzten Bereich 133 und 143 zugeführt wird, mit Steuersignalen CTR3 während des CPU-Skalierens angeschaltet gehalten.
  • Zusätzlich führt der wenigstens eine gemeinsam benutzte Bereich 133 und 143 keine Snooping-Operation durch den zweiten Kommunikationskanal CH2 während des CPU-Skalierens durch. Das heißt, der wenigstens eine gemeinsam benutzte Bereich 133 und 143 wird physikalisch durch jede CPU 110 und 120 gemeinsam benutzt, so dass ein Bereich, in dem eine Snooping-Operation durchgeführt wird, abnimmt.
  • 7 ist ein Flussdiagramm zum Erklären des CPU-Skalierens, welches in 6 veranschaulicht ist. Bezug nehmend auf die 6 und 7 initiiert die große CPU 120 eine Skalierungs-Operation durch ein Ausgeben eines Anzeigesignals IND2 (S210); die PMU 150 schaltet die Domänen der kleinen CPU 110 (S220) an. Die große CPU 120 kann eine Snooping-Operation nur auf wenigstens einem dedizierten Bereich 131 und 141 durchführen, und die Leistung für die CPU-Kerne 121 und 123 wird abgeschaltet (S230); wenn das Snooping vollendet ist, wird die Leistung für die Domänen 131, 141, 125 und 127 (der Rest der großen CPU 120) abgeschaltet (S240); und ein Arbeitsobjekt CPU wird von der großen CPU 120 zu der kleinen CPU 110 (S250) geändert.
  • 8 ist ein schematisches Blockschaltbild des Multi-CPU-Systems gemäß einer anderen beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts. Bezug nehmend auf 8 weist das Multi-CPU-System eine erste CPU 110-1 und eine zweite CPU 120-1 auf. 8 veranschaulicht eine Vorderansicht auf das Multi-CPU-System und 8B veranschaulicht eine Draufsicht auf das Multi-CPU-System.
  • Wie in den 8A und 8B veranschaulicht ist, ist die erste CPU 110-1 auf die zweite CPU 120-1 gestapelt.
  • Die erste CPU 110-1 und die zweite CPU 120-1 können in verschiedenen Chips verkörpert sein. Der gemeinsam benutzte L2-Cache-Bereich 133 und 143 ist in der zweiten CPU 120-1 verkörpert. Auf diesen geteilten Bereich kann durch die erste CPU 110-1 durch elektrische Durchkontaktierungen bzw. elektrische Vias (beispielsweise Silizium-Durchkontaktierungen (TSVs = Through Silicon Vias) zugegriffen werden. Gemäß der vorliegenden Ausführungsform weist der Chip 110-1, welcher die Komponenten der CPU 110 verkörpert, seinen eigenen L2-Cache nicht auf. Anstelle dessen ist der gesamte L2-Cache 130 und 140 der großen CPU 120 in dem Chip 120-1 angeordnet, und ein gemeinsam benutzter Abschnitt (133) und (143) des L2-Cache, welcher physikalisch im Chip 120-1 angeordnet ist, wird durch sowohl durch die kleine CPU 110 als auch die große CPU 120 verwendet.
  • Eine Struktur der ersten CPU 110-1 weist die Struktur der ersten CPU 110 der 1A auf, und die Struktur der zweiten CPU 120-1 weist die Struktur der zweiten CPU 120 der 1A auf. Hier kann eine PMU, welche der PMU 150 der 1A entspricht, auch in der zweiten CPU 120-1 verkörpert sein. In einer solchen Ausführungsform können Steuersignale, welche mit der PMU assoziiert sind, wie beispielsweise CTR1, auch über einen der TSVs verbunden werden.
  • 9 ist ein Blockschaltbild einer Board-Anordnung gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts. Bezug nehmend auf 9 weist eine Board-Anordnung 200 eine erste CPU 110-2, eine zweite CPU 120-2, wenigstens einen gemeinsam benutzten Bereich 133 und 143, die PMU 150, einen Bus 210 und einen Speicher 220 auf.
  • Bezug nehmend auf die 1A, 8A, 8B und 9 kann wenigstens ein gemeinsam benutzter Bereich 133 und 143 getrennt von der ersten CPU 110-2 und der zweiten CPU 120-2 verkörpert sein.
  • Mit Ausnahme des wenigstens einen gemeinsam benutzten Bereichs 133 und 143 hat die erste CPU 110 der 1A im Wesentlichen dieselbe Struktur und denselben Betrieb bzw. dieselben Operationen wie die erste CPU 110-2 der 9, und die zweite CPU 120 der 1A hat im Wesentlichen dieselbe Struktur und denselben Betrieb wie die zweite CPU 120-2 der 9.
  • Der erste L2-Cache Controller 115 oder ein erster Interfaceblock 117 können mit einem Bus 210 durch einen ersten Kommunikationskanal CH1 kommunizieren. Der zweite L2-Cache Controller 125 oder ein zweiter Interfaceblock 127 können mit dem Bus 210 durch einen zweiten Kommunikationskanal CH2 kommunizieren.
  • Jeder erste Kommunikationskanal CH1 und zweite Kommunikationskanal CH2 kann in einem elektrischen Kommunikationskanal oder in einem optischen Kommunikationskanal verkörpert sein. Jeder L2-Cache Controller 115 und 125 kann wahlweise auf den wenigstens einen gemeinsam benutzten Bereich 133 und 143 zugreifen.
  • 10 ist eine Computerplattform gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts. Bezug nehmend auf 10 kann eine Computerplattform 300 in einer elektronischen Vorrichtung wie ein Computersystem verwendet werden. Die elektronische Vorrichtung kann in einem Personal Computer (PC) einer tragbaren Vorrichtung, einer mobilen Vorrichtung oder einem digitalen Fernseher bzw. digitalem TV verkörpert sein.
  • Eine tragbare Vorrichtung kann in einem Laptop-Computer oder einem Tablet-PC verkörpert sein. Eine mobile Vorrichtung kann in einem Mobiltelefon, einem Smartphone, einem persönlichen digitalen Assistenten (PDA = Personal Digital Assistant), einem Enterprise Digital Assistant (EDA), einer digitalen Fotokamera, einer digitalen Videokamera, einem tragbaren Multimedia-Player (PMP = Portable Multimedia Player), einer persönlichen Navigationsvorrichtung oder einer tragbaren Navigationsvorrichtung (PND = Personal Navigation Device), einer tragbaren Spielekonsole oder einem e-Buch verkörpert sein.
  • Die Computerplattform 300 weist das Multi-CPU-System 100, einen Interfaceblock bzw. Schnittstellenblock 320 und einen Speicher 330 auf. Gemäß einer beispielhaften Ausführungsform kann die Computerplattform 300 weiterhin wenigstens einen eines drahtlosen Interfaceblocks 340 und einer Anzeige 350 aufweisen.
  • Das Multi-CPU-System 100 kann mit dem Speicher 330, dem drahtlosen Interfaceblock 340 oder der Anzeige 350 durch den Interfaceblock 320 kommunizieren.
  • Der Interfaceblock 320 weist einen oder mehrere Schaltungsblöcke auf, welche verschiedene Interface- bzw. Schnittstellen-Steuerfunktionen durchführen können. Die Steuerfunktionen weisen eine Speicherzugriffssteuerung, eine Grafiksteuerung, eine Eingabe-/Ausgabe-Interface-Steuerung oder eine Drahtlos-Netzwerk-Zugriffssteuerung auf.
  • Jeder der Schaltungsblöcke kann in einem zusätzlichen unabhängigen Chip, einem Teil des Multi-CPU-Systems 100 oder innerhalb des Multi-CPU-Systems 100 verkörpert sein.
  • Der Speicher 330 kann Daten zu oder von dem Multi-CPU-System 100 über den Interfaceblock 320 übertragen oder empfangen.
  • Der drahtlose Interfaceblock 340 kann die Computerplattform 300 mit einem drahtlosen Netzwerk, beispielsweise einem mobilen Kommunikationsnetzwerk oder einem drahtlosen Lokalbereichs-Netzwerk (LAN = Local Area Network) über eine Antenne verbinden.
  • 11 ist eine beispielhafte Ausführungsform eines Computersystems, welches eine Multi-CPU-System gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts aufweist. Bezug nehmend auf 11 kann ein Computersystem 400 in einem PC, einem Datenserver, einem Laptop-Computer oder einer tragbaren Vorrichtung verkörpert sein.
  • Das Computersystem 400 kann das Multi-CPU-System 100, eine Leistungsquelle 420, den Speicher 430, Eingabe-/Ausgabe-Anschlüsse bzw. -Ports 440, eine Erweiterungskarte 450, eine Netzwerkvorrichtung 460 und eine Anzeige 470 aufweisen. Gemäß einer beispielhaften Ausführungsform kann das Computersystem 400 weiterhin ein Kameramodul 480 aufweisen.
  • Das Multi-CPU-System 100 kann einen Betrieb wenigstens eines von Elementen 420 bis 480 steuern. Die Leistungsquelle 420 kann eine Betriebsspannung für wenigstens eines von Elementen 103 und 430 bis 480 zur Verfügung stellen.
  • Der Speicher 430 kann in einem flüchtigen Speicher oder einem nichtflüchtigen Speicher verkörpert sein. Gemäß einer beispielhaften Ausführungsform kann ein Speichercontroller, welcher eine Datenzugriffs-Operation für den Speicher 430, beispielsweise eine Leseoperation, eine Schreiboperation (oder eine Programmieroperation) oder eine Löschoperation steuern kann, in das Multi-CPU-System 100 integriert oder eingebaut sein. Gemäß einer anderen beispielhaften Ausführungsform kann der Speichercontroller zusätzlich zwischen dem Multi-CPU-System 100 und dem Speicher 430 verkörpert sein.
  • Die Eingabe-/Ausgabe-Anschlüsse 440 bedeuten Anschlüsse, welche Daten zu dem Computersystem 400 übertragen können oder eine Datenausgabe von dem Computersystem 400 zu einer externen Vorrichtung übertragen.
  • Beispielsweise können die Eingabe-/Ausgabe-Anschlüsse 440 wenigstens einen eines Anschlusses zum Verbinden bzw. Anschließen einer Zeigevorrichtung wie einer Computermaus, einem Anschluss zum Verbinden eines Druckers oder einen Anschluss zum Verbinden eines USB-Laufwerks haben.
  • Die Erweiterungskarte 450 kann in einer Secure Digital(SD)-Karte oder einer Multimedia-Karte (MMC = Multimedia Card) verkörpert sein. Gemäß einer beispielhaften Ausführungsform kann die Erweiterungskarte eine Subscriber Identification Module(SIM)-Karte oder eine Universal Subscriber Identification Module(USIM)-Karte sein.
  • Die Netzwerkvorrichtung 460 kann eine Vorrichtung bedeuten, welche das Computersystem 400 mit einem verdrahteten Netzwerk oder einem drahtlosen Netzwerk verbinden kann. Die Anzeige 470 kann Daten anzeigen, welche von dem Speicher 430, den Eingabe-/Ausgabe-Anschlüssen 440, der Erweiterungskarte 450 oder der Netzwerkvorrichtung 460 ausgegeben werden.
  • Das Kameramodul 480 bedeutet ein Modul, welches eine optische Abbildung in eine elektrische Abbildung umwandeln kann. Demzufolge kann eine elektrische Bildausgabe von dem Kameramodul 480 in dem Speicher 430 oder der Erweiterungskarte gespeichert werden. Zusätzlich kann eine elektrische Bildausgabe von dem Kameramodul 480 gemäß einer Steuerung des Multi-CPU-Systems 100 durch die Anzeige 470 angezeigt werden.
  • Das Multi-CPU-System 100 ist als ein Element jedes Computersystems 300 oder 400 in den 10 und 11 veranschaulicht; das Multi-CPU-System 100 kann jedoch durch eine Multi-CPU 103 oder eine Board-Anordnung 200 gemäß einer beispielhaften Ausführungsform ersetzt werden. In diesem Fall kann eine Struktur jedes Computersystems 300 oder 400 angemessen für die Multi-CPU 103 oder die Board-Anordnung 200 geändert werden.
  • 12 ist ein Flussdiagramm zum Erklären eines Verfahrens zum Herstellen des Multi-CPU-Systems gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts. Bezug nehmend auf die 1A und 12 wird ein Halbleitersubstrat vorbereitet bzw. bereitgestellt (S310). Die erste CPU 110, welche den ersten L2-Cache Controller 115 aufweist, welcher mit wenigstens einem von ersten CPU-Kernen 111 und 113 verbunden ist, und die zweite CPU 120, welche den zweiten L2-Cache Controller 125 aufweist, welcher mit wenigstens einem von zweiten CPU-Kernen 121 und 123 verbunden ist, werden auf dem Halbleitersubstrat gebildet (S320).
  • In einem Überlapp-Bereich 133 und 143 zwischen der ersten CPU 110 und der zweiten CPU 120 wird ein gemeinsam benutzter L2-Cache, auf welchen wahlweise durch den ersten L2-Cache Controller 115 und den zweiten L2-Cache Controller 125 zugegriffen werden kann, gebildet.
  • Auf dem Halbleitersubstrat werden ein Systembus 101, ein erster Kommunikationskanal CH1 zwischen dem Systembus 101 und dem ersten Cache Controller 115, und ein zweiter Kommunikationskanal CH2 zwischen dem Systembus 101 und dem zweiten Cache Controller 125 gebildet. Gemäß einer beispielhaften Ausführungsform können ein Schritt S310 und ein Schritt S320 zu derselben Zeit oder zu unterschiedlichen Zeiten ausgeführt werden.
  • Wie in 8 veranschaulicht ist, können, nachdem die erste CPU 110-1 und die zweite CPU 120-1 in verschiedenen Chips oder Dies gebildet sind, diese durch vertikale elektrische Durchkontaktierungen (TEVs = Vertical Electrial Vias) miteinander verbunden werden, so dass gemeinsam benutzte Komponenten wie beispielsweise ein insam benutzter Abschnitt des L2-Cache 133 und 143 gebildet werden.
  • Das gemeinsame Benutzen eines L2-Cache gemäß einer beispielhaften Ausführungsform des vorliegenden erfinderischen Konzepts verringert die physikalische Größe des Multi-CPU-Systems; es verringert eine übermäßige Arbeitsbelastung einer Snooping-Operation; und es beseitigt einen Kaltstart des L2-Cache.
  • Obwohl Ausführungsformen des vorliegenden erfinderischen Konzepts gezeigt und beschrieben wurden, wird es durch Fachleute anerkannt werden, dass Änderungen in diesen Ausführungsformen getätigt werden können, ohne von den Prinzipien und dem Gedanken des allgemeinen erfinderischen Konzepts abzuweichen, dessen Umfang in den beigefügten Ansprüchen und deren Äquivalenten definiert.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2012-0048455 [0001]

Claims (27)

  1. Multi-CPU-Datenverarbeitungssystem (100), das Folgendes aufweist: einen Multi-CPU-Prozessor (103), der Folgendes aufweist: eine erste CPU (110, 110-1, 110-2), welche mit wenigstens einem ersten Kern (111, 113), einem ersten Cache (133, 143) und einem ersten Cache Controller (115) konfiguriert ist, welcher konfiguriert ist, um auf den ersten Cache (133, 143) zuzugreifen; und eine zweite CPU (120, 120-1, 120-2), welche mit wenigstens einem zweiten Kern (121, 123) und einem zweiten Cache Controller (125) konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten Cache (130, 140) zuzugreifen, wobei der erste Cache (133, 143) aus einem gemeinsam benutzten Abschnitt des zweiten Cache (130, 140) konfiguriert ist.
  2. System (100) nach Anspruch 1, weiterhin aufweisend eine gemeinsam benutzte Schaltung, welche konfiguriert ist, um Daten zu dem ersten Cache (133, 143) von entweder dem ersten Cache Controller (115) oder dem zweiten Cache Controller (125) basierend auf einem Auswahlsignal zuzuführen.
  3. System (100) nach Anspruch 1, weiterhin aufweisend eine Leistungsmanagement-Einheit (150), welche konfiguriert ist, um Steuersignale auszugeben, um das Anschalten und Abschalten unter der ersten CPU (110, 110-1, 110-2), der zweiten CPU (120, 120-1, 120-2) und dem ersten Cache (133, 143) unabhängig zu steuern.
  4. System (100) nach Anspruch 3, wobei die Leistungsmanagement-Einheit (150) weiterhin konfiguriert ist, um wahlweise eine Leistung zwischen der ersten CPU (110, 110-1, 110-2) ausschließlich des ersten Cache (133, 143) und der zweiten CPU (120, 120-1, 120-2) zu schalten, während die Leistung auf dem ersten Cache (133, 143) aufrechterhalten wird.
  5. System (100) nach Anspruch 2, wobei der erste Cache (133, 143) und die gemeinsam benutzte Schaltung in einem ersten Ein-Chip-System eingebettet sind und die erste CPU (110, 110-1, 110-2) ausschließlich des ersten Cache (133, 143) in einem zweiten Ein-Chip-System eingebettet ist.
  6. System (100) nach Anspruch 5, wobei die erste CPU (110, 110-1, 110-2) ausschließlich des ersten Cache (133, 143) in einer ersten Leistungsdomäne verkörpert ist, die zweite CPU (120, 120-1, 120-2) ausschließlich des ersten Cache (133, 143) in einer zweiten Leistungsdomäne verkörpert ist, und der erste Cache (133, 143) in einer dritten Leistungsdomäne verkörpert ist, wobei jede Leistungsdomäne unabhängig steuerbar ist.
  7. Multi-CPU-Datenverarbeitungssystem (100), das Folgendes aufweist: eine erste CPU (110, 110-1, 110-2), welche mit wenigstens einem ersten Kern (111, 113), einem ersten Cache (133, 143) und einem ersten Cache Controller (115) konfiguriert ist, welcher konfiguriert ist, um auf Daten von dem ersten Cache (133, 143) zuzugreifen; und eine zweite CPU (120, 120-1, 120-2), welche mit wenigstens einem zweiten Kern (121, 123) und einem zweiten Cache Controller (125) konfiguriert ist, welcher konfiguriert ist, um auf Daten von einem zweiten Cache (130, 140) zuzugreifen, wobei der erste Cache (133, 143) aus einem gemeinsam benutzten Abschnitt des zweiten Cache (130, 140) konfiguriert ist, wobei die erste CPU (110, 110-1, 110-2) ausschließlich des ersten Cache (133, 143) in einem ersten Chip verkörpert ist und die zweite CPU (120, 120-1, 120-2) in einem zweiten Chip verkörpert ist.
  8. System (100) nach Anspruch 7, weiterhin aufweisend eine gemeinsam benutzte Schaltung, welche konfiguriert ist, um Daten von dem ersten Cache (133, 143) zu dem ersten Cache Controller (115) oder dem zweiten Cache Controller (125) basierend auf einem Auswahlsignal auszugeben, wobei die gemeinsam benutzte Schaltung innerhalb des zweiten Chip verkörpert ist.
  9. System (100) nach Anspruch 8, wobei Steuersignal-Leitungen für die gemeinsam benutzte Schaltung Silizium-Durchkontaktierungen (TSVs) aufweisen, welche eine Verbindung zwischen dem ersten Chip und dem zweiten Chip herstellen.
  10. System (100) nach Anspruch 7, wobei ein L1-Cache und der erste Cache (133, 143) auf einem gemeinsamen Substrat verkörpert sind.
  11. System (100) nach Anspruch 7, wobei wenigstens eine Adressleitung sowohl einem L1-Cache als auch dem ersten Cache (133, 143) gemeinsam ist.
  12. System (100) nach Anspruch 7, wobei die erste CPU (110, 110-1, 110-2) ausschließlich des ersten Cache (133, 143) in einer ersten Leistungsdomäne angeordnet ist, die zweite CPU (120, 120-1, 120-2) ausschließlich des ersten Cache (133, 143) in einer zweiten Leistungsdomäne angeordnet ist, und der erste Cache (133, 143) in einer dritten Leistungsdomäne angeordnet ist.
  13. System (100) nach Anspruch 12, weiterhin aufweisend eine Leistungsmanagement-Einheit (150), welche konfiguriert ist, um wahlweise Leistung an die erste und die zweite Leistungsdomäne anzulegen, während sie die dritte Leistungsdomäne mit Leistung versorgt aufrechterhält.
  14. System (100) nach Anspruch 7, wobei das System in einem von einem Smartphone, einem Laptop oder einem Tablet-Computer verkörpert ist.
  15. System (100) nach Anspruch 7, wobei der erste Cache (133, 143) einer von einem L2- oder einem L3-Cache ist.
  16. Verfahren zur Datenverarbeitung unter Verwendung eines Multi-CPU-Prozessors (103), das Folgendes aufweist: ein Zugreifen auf einen ersten Cache (133, 143) durch eine erste CPU (110, 110-1, 110-2) über einen ersten Cache Controller (115); ein Zugreifen auf einen zweiten Cache (130, 140) durch eine zweite CPU (120, 120-1, 120-2) über einen zweiten Cache Controller (125), wobei der erste Cache (133, 143) aus einem gemeinsam benutzten Abschnitt des zweiten Cache (130, 140) konfiguriert ist; und ein Schalten einer Cache Zugriffsoperation von der ersten CPU (110, 110-1, 110-2) zu der zweiten CPU (120, 120-1, 120-2) ohne ein Flushing des ersten Cache (133, 143).
  17. Verfahren nach Anspruch 16, weiterhin aufweisend ein Multiplexen einer Dateneingabe zu dem zweiten Cache (130, 140) von entweder der ersten CPU (110, 110-1, 110-2) oder der zweiten CPU (120, 120-1, 120-2) basierend auf einem Auswahlsignal.
  18. Verfahren nach Anspruch 16, weiterhin aufweisend ein Schalten einer Cache-Zugriffsoperation von der ersten CPU (110, 110-1, 110-2) zu der zweiten CPU (120, 120-1, 120-2) ohne Snooping.
  19. Verfahren nach Anspruch 16, weiterhin aufweisend ein Schalten einer Cache-Zugriffsoperation von der zweiten CPU (120, 120-1, 120-2) zu der ersten CPU (110, 110-1, 110-2) und ein Durchführen einer Flushing-Operation an einem nicht gemeinsam benutzten Abschnitt des zweiten Cache (130, 140).
  20. Verfahren nach Anspruch 16, weiterhin aufweisend ein Schalten einer Cache-Zugriffsoperation von der zweiten CPU (120, 120-1, 120-2) zu der ersten CPU (110, 110-1, 110-2) und ein Durchführen einer Snooping-Operation an einem nicht gemeinsam benutzten Abschnitt des zweiten Cache (130, 140).
  21. Prozessor, der Folgendes aufweist: eine erste CPU (110, 110-1, 110-2), welche mit wenigstens einem ersten Kern (111, 113), einem ersten Cache (133, 143) und einem ersten Cache Controller (115) konfiguriert ist, welcher konfiguriert ist, um auf den ersten Cache (133, 143) zuzugreifen; eine zweite CPU (120, 120-1, 120-2), welche mit wenigstens einem zweiten Kern (121, 123) und einem zweiten Cache Controller (125) konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten Cache (130, 140) zuzugreifen, wobei der zweite Cache (130, 140) in der Speicherkapazität größer ist als der erste Cache (133, 143); einen Multiplexer, welcher konfiguriert ist, um Daten zu dem ersten Cache (133, 143) von entweder dem ersten Kern (111, 113) über den ersten Cache Controller (115) oder dem zweiten Kern (121, 123) über den zweiten Cache Controller (125) basierend auf einem Auswahlsignal zu passieren; und einen Demultiplexer, welcher konfiguriert ist, um Daten von dem ersten Cache (133, 143) zu entweder dem ersten Kern (111, 113) über den ersten Cache Controller (115) oder dem zweiten Kern (121, 123) über den zweiten Cache Controller (125) basierend auf dem Auswahlsignal zu passieren.
  22. Prozessor nach Anspruch 21, wobei der erste Cache (133, 143) aus einem gemeinsam benutzten Abschnitt des zweiten Cache (130, 140) konfiguriert ist.
  23. Multi-CPU-Datenverarbeitungssystem (100), das Folgendes aufweist: einen Multi-CPU-Prozessor (103), der Folgendes aufweist: eine erste CPU (110, 110-1, 110-2), welche mit wenigstens einem ersten Kern (111, 113), einem ersten Cache (133, 143) und einem ersten Cache Controller (115) konfiguriert ist, welcher konfiguriert ist, um auf den ersten Cache (133, 143) zuzugreifen; eine zweite CPU (120, 120-1, 120-2), welche mit wenigstens einem zweiten Kern (121, 123) und einem zweiten Cache Controller (125) konfiguriert ist, welcher konfiguriert ist, um auf einen zweiten Cache (130, 140) zuzugreifen, wobei der erste Cache (133, 143) aus einem gemeinsam benutzten Abschnitt des zweiten Cache (130, 140) konfiguriert ist; eine Leistungsmanagement-Einheit (150), welche konfiguriert ist, um wahlweise Leistung entweder einer oder beiden der ersten CPU (110, 110-1, 110-2) und der zweiten CPU (120, 120-1, 120-2) und dem ersten Cache (133, 143) zuzuführen; und einen Speichercontroller, welcher konfiguriert ist, um einen Speicherzugriff auf und von dem Multi-CPU-Prozessor (103) über einen Datenbus zu steuern.
  24. System (100) nach Anspruch 23, wobei die Leistungsmanagement-Einheit (150) weiterhin konfiguriert ist, um Steuersignale auszugeben, um das Anschalten und Abschalten der ersten CPU (110, 110-1, 110-2) und der zweiten CPU (120, 120-1, 120-2) unabhängig zu steuern, während eine Leistung auf dem ersten Cache (133, 143) aufrechterhalten wird.
  25. System (100) nach Anspruch 23, wobei die erste CPU (110, 110-1, 110-2) ausschließlich des ersten Cache (133, 143) in einer ersten Leistungsdomäne angeordnet ist, die zweite CPU (120, 120-1, 120-2) ausschließlich des ersten Cache (133, 143) in einer zweiten Leistungsdomäne angeordnet ist, und der erste Cache (133, 143) in einer dritten Leistungsdomäne angeordnet ist.
  26. System (100) nach Anspruch 25, wobei die Leistungsmanagement-Einheit (150) weiterhin konfiguriert ist, um wahlweise eine Leistung zwischen der ersten Leistungsdomäne und der zweiten Leistungsdomäne anzuschalten, während eine Leistung auf der dritten Leistungsdomäne aufrechterhalten wird.
  27. System (100) nach Anspruch 23, wobei das System in einem von einem Smartphone, einem Laptop oder einem Tablet-Computers verkörpert ist.
DE102013104198A 2012-05-08 2013-04-25 Multi-CPU-System und Computersystem mit demselben Pending DE102013104198A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120048455A KR101858159B1 (ko) 2012-05-08 2012-05-08 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
KR10-2012-0048455 2012-05-08

Publications (1)

Publication Number Publication Date
DE102013104198A1 true DE102013104198A1 (de) 2013-11-14

Family

ID=49475645

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013104198A Pending DE102013104198A1 (de) 2012-05-08 2013-04-25 Multi-CPU-System und Computersystem mit demselben

Country Status (6)

Country Link
US (2) US8949534B2 (de)
JP (1) JP5905408B2 (de)
KR (1) KR101858159B1 (de)
CN (1) CN103389961B (de)
DE (1) DE102013104198A1 (de)
TW (1) TWI601065B (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014051545A1 (en) * 2012-09-25 2014-04-03 Arijit Raychowdhury Digitally phase locked low dropout regulator
DE102013106699B3 (de) * 2013-06-26 2014-02-27 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem mit einem Abwesenheitsmodus
KR20150050135A (ko) * 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
CN103823712B (zh) * 2014-03-17 2017-05-10 杭州华三通信技术有限公司 一种多cpu虚拟机系统的数据流处理方法和装置
KR102164099B1 (ko) * 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US20150370707A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated Disunited shared-information and private-information caches
JP6074463B2 (ja) * 2015-07-01 2017-02-01 株式会社東芝 プロセッサシステム、メモリ制御回路およびメモリシステム
FR3043476B1 (fr) * 2015-11-05 2018-09-28 Dolphin Integration Systeme et procede de gestion d'alimentation
US9871020B1 (en) 2016-07-14 2018-01-16 Globalfoundries Inc. Through silicon via sharing in a 3D integrated circuit
JP6740456B2 (ja) * 2016-08-01 2020-08-12 ティーエスヴイリンク コーポレイション 多重チャネルキャッシュメモリおよびシステムメモリデバイス
US10248457B2 (en) 2016-08-10 2019-04-02 International Business Machines Corporation Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task
US10275280B2 (en) 2016-08-10 2019-04-30 International Business Machines Corporation Reserving a core of a processor complex for a critical task
US10223164B2 (en) 2016-10-24 2019-03-05 International Business Machines Corporation Execution of critical tasks based on the number of available processing entities
US10248464B2 (en) 2016-10-24 2019-04-02 International Business Machines Corporation Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex
US10147464B1 (en) * 2017-06-20 2018-12-04 Apple Inc. Managing power state in one power domain based on power states in another power domain
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
CN108170255B (zh) * 2018-01-24 2020-07-03 苏州国芯科技股份有限公司 一种控制装置
CN110688331B (zh) * 2018-07-05 2021-08-17 珠海全志科技股份有限公司 一种SoC芯片及读取数据的方法
KR20210063724A (ko) 2019-11-25 2021-06-02 에스케이하이닉스 주식회사 메모리 시스템
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120048455A (ko) 2010-11-05 2012-05-15 구기승 릴 포장 카세트

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6434672B1 (en) 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
EP1182559B1 (de) 2000-08-21 2009-01-21 Texas Instruments Incorporated Mikroprozessor
JP2004179442A (ja) * 2002-11-28 2004-06-24 Renesas Technology Corp マルチチップモジュール
US7349285B2 (en) * 2005-02-02 2008-03-25 Texas Instruments Incorporated Dual port memory unit using a single port memory core
US8028131B2 (en) * 2006-11-29 2011-09-27 Intel Corporation System and method for aggregating core-cache clusters in order to produce multi-core processors
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
US8527709B2 (en) * 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US7827357B2 (en) * 2007-07-31 2010-11-02 Intel Corporation Providing an inclusive shared cache among multiple core-cache clusters
US8433851B2 (en) 2007-08-16 2013-04-30 International Business Machines Corporation Reducing wiring congestion in a cache subsystem utilizing sectored caches with discontiguous addressing
US8131941B2 (en) * 2007-09-21 2012-03-06 Mips Technologies, Inc. Support for multiple coherence domains
JP2010003042A (ja) * 2008-06-19 2010-01-07 Koyo Electronics Ind Co Ltd マルチcpuシステムおよびプログラマブルコントローラ
US20110238925A1 (en) 2008-10-02 2011-09-29 Dan Robinson Cache controller and method of operation
KR101017068B1 (ko) 2008-11-25 2011-02-25 서울대학교산학협력단 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법
JP2010180156A (ja) * 2009-02-05 2010-08-19 Chiba Univ 1,2−ジオールからの低級飽和アルデヒド製造方法
US8793686B2 (en) * 2011-06-08 2014-07-29 Microsoft Corporation Operating system decoupled heterogeneous computing
US9158693B2 (en) * 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120048455A (ko) 2010-11-05 2012-05-15 구기승 릴 포장 카세트

Also Published As

Publication number Publication date
JP5905408B2 (ja) 2016-04-20
US9606920B2 (en) 2017-03-28
TWI601065B (zh) 2017-10-01
US8949534B2 (en) 2015-02-03
JP2013235576A (ja) 2013-11-21
CN103389961A (zh) 2013-11-13
KR20130125039A (ko) 2013-11-18
CN103389961B (zh) 2017-10-27
KR101858159B1 (ko) 2018-06-28
TW201403465A (zh) 2014-01-16
US20150143048A1 (en) 2015-05-21
US20130304992A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
DE102013104198A1 (de) Multi-CPU-System und Computersystem mit demselben
DE60132817T2 (de) Datenverarbeitungssystem und datenprozessor
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE2523372C3 (de) Eingabe-/Ausgabe-Anschlußsteuereinrichtung
DE112009004900T5 (de) Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
DE112007000443B4 (de) Vorrichtung mit einer gemeinsamen Schnittstelle fiir mehrere Prozessorkerne und Verfahren zur Steuerung der Kommunikation derselben mit einer damit gekoppelten Verbindung
DE102020103570A1 (de) Host-definierte bandbreitenzuweisung für ssd-aufgaben
DE112017001471T5 (de) Mehrebenen-speichermanagement
DE112013003255T5 (de) Managementmechanismus für fehlerhafte Blöcke
DE102013110085A1 (de) Host zum Steuern einer nicht-flüchtigen Speicherkarte, System mit demselben sowie Verfahren zum Betreiben des Hosts und des Systems
DE102014113923B4 (de) Teilnehmeridentitätsmoduldaten-Routingvorrichtungen, Verfahren zum Routing von Teilnehmeridentitätsmoduldaten, Steuerschaltungen, und Verfahren zum Steuern einer Änderung eines Routings
DE102013106154A1 (de) Speichersystem und Ein-Chip-System mit linearer Adress-Remapping-Logik
DE102008030205A1 (de) Speichermatrix auf mehr als einem Die
DE102017119470A1 (de) Elektronische Vorrichtung, die einen Bypass-Pfad zu einer indirekt verbundenen Speichervorrichtung unter in Reihe geschalteten Speichervorrichtungen bereitstellt, darin enthaltene Speichervorrichtung, Computersystem mit demselben, und Verfahren des Kommunizierens damit
DE102019112628A1 (de) Dimm für speicherkanal mit hoher bandbreite
DE102008008196A1 (de) Speicherkarte, Speichersystem und Verfahren zum Betreiben eines Speichersystems
DE102016206170B4 (de) Serielle draht-debug-brücke
DE112012006070B4 (de) Speichergerät, das auf Gerätebefehle zur Betriebssteuerung reagiert
DE102018005759A1 (de) Verbinden von beschleunigerressourcen unter verwendung einesswitches
DE102019120264A1 (de) System und Verfahren zum Bereitstellen einer konfigurierbaren Speichermedienschnittstelle
DE102019112613A1 (de) Dimm mit hoher bandbreite
DE112016002891T5 (de) Eine skalierbare Kreuzschienenvorrichtung und ein Verfahren zum Anordnen von Kreuzschienenschaltungen
DE102012202174A1 (de) Mikrocomputer
DE102020132758A1 (de) Leistungsfähigkeits-konfigurierbare nichtflüchtige speichermenge
DE102013108041B4 (de) Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013160000

Ipc: G06F0012080600