DE112014000336T5 - Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip - Google Patents

Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip Download PDF

Info

Publication number
DE112014000336T5
DE112014000336T5 DE112014000336.0T DE112014000336T DE112014000336T5 DE 112014000336 T5 DE112014000336 T5 DE 112014000336T5 DE 112014000336 T DE112014000336 T DE 112014000336T DE 112014000336 T5 DE112014000336 T5 DE 112014000336T5
Authority
DE
Germany
Prior art keywords
core
scout
parent
parent core
shared cache
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
DE112014000336.0T
Other languages
English (en)
Inventor
Brian Robert Prasky
Christopher Anthony Krygowski
Chung-Lung Kevin Shum
Fadi Yusuf Busaba
Steven Carlough
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112014000336T5 publication Critical patent/DE112014000336T5/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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • 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
    • G06F2212/622State-only directory, i.e. not recording identity of sharing or owning nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

Auf einem Chip mit mindestens einem Scout-Kern, mindestens einem übergeordneten Kern und einem gemeinsam genutzten Cachespeicher, der gleichermaßen durch den mindestens einen Scout-Kern und den mindestens einen übergeordneten Kern verwendet wird, wird durch den Scout-Kern ein Vorablesezugriffscode zum Überwachen des übergeordneten Kerns ausgeführt. Der Vorablesezugriffscode wird unabhängig von dem übergeordneten Kern ausgeführt. Der Scout-Kern stellt auf der Grundlage der Überwachung des übergeordneten Kerns fest, dass in dem übergeordneten Kern mindestens ein vorgegebenes Datenmuster vorgekommen ist. Von dem Scout-Kern wird eine Vorablesezugriffsanforderung zu dem gemeinsam genutzten Cachespeicher gesendet. Die Vorablesezugriffsanforderung wird auf der Grundlage des mindestens einen vorgegebenen Musters gesendet, das durch den Scout-Kern erkannt wurde. Ein durch die Vorablesezugriffsanforderung gekennzeichneter Datensatz wird durch den gemeinsam genutzten Cachespeicher an den übergeordneten Kern gesendet.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein Mehrkern-Chips mit einem übergeordneten Kern und einem Scout-Kern und insbesondere einen Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip.
  • HINTERGRUND DER ERFINDUNG
  • Die Leistungssteigerung von Einzelthread-Prozessoren stößt aufgrund des Energieverbrauchs für den Einzelthread-Betrieb an ihre Grenzen. Eine Verdoppelung des Energieverbrauchs für einen Prozessor infolge höherer Frequenzen und/oder Funktionsmerkmale liefert nicht notwendigerweise eine Leistungssteigerung, die den höheren Energieverbrauch übertrifft oder diesem gleich kommt. Das liegt an einer deutlichen Verschlechterung des Verhältnisses von Leistungssteigerung zur Zunahme des Energieverbrauchs. Zur Leistungssteigerung von Chips können beträchtliche Anteile der zur Verfügung stehenden Energie für zusätzliche Kerne auf einem Chip verwendet werden. Durch gemeinsames Nutzen von Cachespeichern und des Hauptspeichers wird einerseits verhindert, dass die Leistungssteigerung gleich der relativen Zunahme der Anzahl von Kernen ist, jedoch kann andererseits die Leistungssteigerung durch Erhöhen der Anzahl von Kernen auf dem Chip eine stärkere Leistungssteigerung/Energieeinsparung bewirken als lediglich eine Leistungssteigerung eines Einzelkern-Prozessors.
  • Gemäß einem Ansatz zur Steigerung der Einzelthread-Leistung kann ein zweiter Kern auf demselben Chip wie ein primärer oder übergeordneter Kern als Scout-Kern verwendet werden. Genauer gesagt, der Scout-Kern kann zum Vorablesezugriff auf Daten von einem gemeinsam genutzten Cachespeicher in den privaten Cachespeicher eines übergeordneten Kerns verwendet werden. Dieser Ansatz ist besonders dann von Vorteil, wenn im übergeordneten Kern ein Cachespeicherfehltreffer auftritt. Zu einem Cachespeicherfehltreffer kommt es, wenn bei der Suche nach einer vorgegebenen Datenzeile ein Verzeichnis des übergeordneten Kerns durchsucht werden muss und die angeforderte Cachespeicherzeile nicht vorhanden ist. Ein typischer Ansatz zum Finden der fehlenden Cachespeicherzeile besteht darin, eine Abrufoperation auf einer höheren Ebene des Cachespeichers auszulösen. Der Scout-Kern stellt einen Mechanismus bereit, der zum Vorablesezugriff auf Daten verwendet wird, die vom übergeordneten Kern benötigt werden.
  • Es wird darauf hingewiesen, dass sich verschiedene Programme unterschiedlich verhalten, sodass ein Vorablesezugriffsalgorithmus oder -ansatz möglicherweise nicht immer die Latenzzeit für das Zugreifen auf den Cachespeicherinhalt verbessert. Gemäß einem Ansatz zum Vorablesezugriff auf Daten für den übergeordneten Kern kann ein relativ kleiner und einfacher Algorithmus bereitgestellt werden, bei dem es sich um eine Schrittzählroutine handelt, um auf der Grundlage einer zwischen aufeinander folgenden Cachespeicherfehltreffern beobachteten Schrittweite spekulativ vorab auf Daten zuzugreifen. Zum Erfassen komplexerer Muster wird zusätzliche Hardware benötigt, die komplexer und von den Abmaßen her größer sein und eine größere Leistungsaufnahme aufweisen kann. In Bezug auf die Kompromisse zwischen Datendurchsatz, Latenzzeit und Leistungsaufnahme für den Chip kann jedoch der Aufwand an speziell zugeschnittener Hardware zum Vorablesezugriff auf Daten auf den einzelnen Kern beschränkt werden. Außerdem kann der zum Überwachen und Erkennen von Cachespeicherfehltreffern benötigte Bereich und Speicherplatz zu groß sein, um hierfür ausschließlich Hardware zu verwenden.
  • KURZDARSTELLUNG
  • Aspekte der Erfindung beinhalten ein Verfahren, ein System und ein Computerprogrammprodukt zum Vorablesezugriff auf Daten auf einem Chip, der mindestens einen Scout-Kern, mindestens einen übergeordneten Kern und einen gemeinsam genutzten Cachespeicher aufweist, der gleichberechtigt zwischen dem mindestens einen Scout-Kern und dem mindestens einen übergeordneten Kern genutzt wird. Ein Vorablesezugriffscode wird zum Überwachen des übergeordneten Kerns durch den Scout-Kern ausgeführt. Der Vorablesezugriffscode wird unabhängig von dem übergeordneten Kern ausgeführt. Der Scout-Kern stellt auf der Grundlage der Überwachung des übergeordneten Kerns fest, dass in dem übergeordneten Kern ein vorgegebenes Datenmuster vorgekommen ist. Von dem Scout-Kern wird eine Vorablesezugriffsanforderung an den gemeinsam genutzten Cachespeicher gesendet. Die Vorablesezugriffsanforderung wird auf der Grundlage des mindestens einen durch den Scout-Kern erkannten vorgegebenen Musters gesendet. Ein durch die Vorablesezugriffsanforderung angezeigter Datensatz wird durch den Scout-Kern zu dem übergeordneten Kern gesendet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Nunmehr werden Ausführungsformen der Erfindung lediglich beispielhaft unter Bezug auf die beiliegenden Zeichnungen beschrieben, wobei:
  • 1 Mehrkern-Chips gemäß einer Ausführungsform darstellt;
  • 2 den zentralen Verarbeitungs-(CP-)Chip gemäß einer Ausführungsform darstellt;
  • 3 einen CP-Chip gemäß einer anderen Ausführungsform darstellt;
  • 4 einen CP-Chip gemäß noch einer weiteren Ausführungsform darstellt;
  • 5 einen Ablaufplan zum Veranschaulichen eines Verfahrens zum Vorablesezugriff auf Daten für einen übergeordneten Kern durch einen Scout-Kern gemäß einer Ausführungsform darstellt; und
  • 6 ein Computerprogrammprodukt gemäß einer Ausführungsform veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Eine Ausführungsform zum Vorablesezugriff auf Daten für einen übergeordneten Kern durch einen Scout-Kern in einem Mehrkern-Chip wird offenbart. Gemäß einer beispielhaften Ausführungsform enthält der Mehrkern-Chip mindestens einen übergeordneten Kern, mindestens einen Scout-Kern und einen gemeinsam genutzten Cachespeicher. Der Scout-Kern überwacht die Aktivität des übergeordneten Kerns auf mindestens einen Typ durch den übergeordneten Kern erzeugter vorgegebener Muster hin und ermittelt, ob eine Vorablesezugriffsanforderung von dem Scout-Kern zu dem gemeinsam genutzten Cachespeicher gesendet werden soll. Nach dem Empfangen der Vorablesezugriffsanforderung von dem Scout-Kern werden die durch die Vorablesezugriffsanforderung angeforderten Daten zu dem übergeordneten Kern gesendet. Die durch die Vorablesezugriffsanforderung angeforderten Daten werden nicht durch den Scout-Kern, sondern nur durch den übergeordneten Kern akzeptiert. Der Scout-Kern überwacht den übergeordneten Kern auf verschiedene Typen vorgegebener Datenmuster hin, die in dem übergeordneten Kern vorkommen. Einige Typen speziell auf den Kern zugeschnittener Hardware-Vorablesezugriffseinheiten hingegen, die gegenwärtig verfügbar sind, sind nur in der Lage, den übergeordneten Knoten auf eine vorgegebene Teilmenge von Datenmustern hin zu überwachen. Ferner ist der Scout-Prozessor aufgrund des Umfangs der durch die Scout-Kern-Vorablesezugriffseinheit mehrfach verwendeten Hardware in der Lage, mehr Daten als eine typische Hardware-Vorablesezugriffseinheit zu analysieren.
  • 1 veranschaulicht ein Beispiel eines Datenverarbeitungssystems 10 gemäß einer Ausführungsform. Das Datenverarbeitungssystem 10 enthält mindestens einen zentralen Verarbeitungs-(CP-)Chip 20. Bei der in 1 gezeigten beispielhaften Ausführungsform sind drei CP-Chips 20 dargestellt, jedoch sollte klar sein, dass ebenso auch eine beliebige Anzahl von CP-Chips 20 verwendet werden kann. Jeder CP-Chip 20 tauscht Daten mit einem gemeinsam genutzten Cachespeicher 22 und einem Systemspeicher 24 aus.
  • Gemäß den 1 bis 2 enthält jeder CP-Chip 20 mehrere Kerne 30 zum Lesen und Ausführen von Anweisungen. Bei der in 2 gezeigten beispielhaften Ausführungsform enthält beispielsweise jeder CP-Chip 20 einen übergeordneten Kern 32 und einen Scout-Kern 34, es ist jedoch klar, dass ebenso auch eine beliebige Anzahl von Kernen 30 verwendet werden kann, und in den 3 bis 4 sind alternative Ausführungsformen des CP-Chips veranschaulicht. Gemäß 2 enthält jeder Kern 30 auch einen entsprechenden I-Cachespeicher 40 und einen D-Cachespeicher 42. Gemäß der in 2 gezeigten beispielhaften Ausführungsform enthält jeder der Kerne 30 nur einen Ebene-1-(L1-)Cachespeicher, jedoch ist klar, dass die Kerne 30 bei verschiedenen Ausführungsformen desgleichen auch einen Ebene-2-(L2-)Cachespeicher enthalten können. Jeder Kern 30 ist funktionell mit einem gemeinsam genutzten Cachespeicher 50 verbunden. Bei der in 2 gezeigten Ausführungsform handelt es sich bei dem gemeinsam genutzten Cachespeicher 50 um einen L2-Cachespeicher, jedoch ist klar, dass es sich bei dem gemeinsam genutzten Cachespeicher 50 gleichermaßen auch um einen Ebene-3-(L3-)Cachespeicher handeln kann.
  • Ein Datenrückgabebus 60 ist zwischen dem übergeordneten Kern 32 und dem gemeinsam genutzten Cachespeicher 50 und ein Datenrückgabebus 62 zwischen dem Scout-Kern 34 und dem gemeinsam genutzten Cachespeicher 50 bereitgestellt. Der übergeordnete Kern 32 wird mit dem gemeinsam genutzten Cachespeicher 50 durch einen Abrufanforderungsbus 64 verbunden, über den Daten von dem übergeordneten Kern 32 zu dem gemeinsam genutzten Cachespeicher 50 gesendet werden. Der Scout-Kern 34 wird mit dem gemeinsam genutzten Cachespeicher 50 durch einen Abrufüberwachungsbus 66 verbunden, über den der Scout-Kern 34 den gemeinsam genutzten Cachespeicher 50 überwacht. Zwischen dem Scout-Kern 34 und dem gemeinsam genutzten Cachespeicher 50 ist ein Abrufanforderungsbus 68 angeordnet, um verschiedene Abrufanforderungen von dem Scout-Kern 34 zu dem gemeinsam genutzten Cachespeicher 50 zu senden. Der Abrufanforderungsbus 68 kann auch für typische Abrufoperationen verwendet werden wie der Abrufanforderungsbus 64. Ein solches Abrufen ist zum Laden eines Vorablesezugriffscodes in den Scout-Kern 34 möglicherweise erforderlich, falls zum Analysieren weitere Daten geladen werden müssen, wenn die zu analysierenden Daten nicht komplett in den lokalen Daten-Cachespeicher 42 passen und/oder der Vorablesezugriffscode nicht komplett in den lokalen Anweisungsspeicher 40 passt.
  • Bei der in 2 gezeigten Ausführungsform dient der gemeinsam genutzte Cachespeicher 50 als Knotenpunkt oder Verbindungsglied, sodass der Scout-Kern 34 den übergeordneten Kern 32 überwachen kann. Der Scout-Kern 34 überwacht den übergeordneten Kern 32 auf mindestens ein vorgegebenes Datenmuster hin, das in dem übergeordneten Kern 32 vorkommt. Genauer gesagt, der Scout-Kern 34 führt den Vorablesezugriffscode aus, der zum Überwachen des übergeordneten Kerns 32 verwendet wird. Durch den Vorablesezugriffscode wird ermittelt, ob in dem übergeordneten Kern 32 ein oder mehrere vorgegebene Datenmuster vorgekommen sind, und auf der Grundlage des ermittelten Datenmusters eine Abrufanforderung an den gemeinsam genutzten Cachespeicher 50 gesendet. Außerdem wird der Vorablesezugriffscode unabhängig von allen durch den übergeordneten Kern 32 ausgeführten Codes ausgeführt. Der Scout-Kern 34 speichert generell den Vorablesezugriffscode auf dem im Scout-Kern 34 befindlichen L1-I-Cachespeicher 40.
  • Bei dem vorgegebenen Datenmuster kann es sich um eine Inhaltsanforderung handeln, die den übergeordneten Kern 32 verlässt (z. B. eine Anforderung nach einer vorgegebenen Cachespeicherzeile, die in dem I-Cachespeicher 40 und einem D-Cachespeicher 42 des übergeordneten Kerns 32 nicht vorliegt), oder alternativ um eine Prüfpunktadresse des übergeordneten Kerns 32. Zum Beispiel kann der übergeordnete Kern 32 eine Speicheradresse entweder vom I-Cachespeicher 40 oder vom D-Cachespeicher 42 abrufen. Wenn der I-Cachespeicher 40 oder der D-Cachespeicher 42 eine vom übergeordneten Kern 32 angeforderte vorgegebene Cachespeicherzeile nicht enthält, hat sich ein Cachespeicherfehltreffer ereignet. Der Scout-Kern 34 erkennt den Cachespeicherfehltreffer, indem er den übergeordneten Kern 32 durch den gemeinsam genutzten Cachespeicher 50 über den Abrufüberwachungsbus 66 überwacht. Gemäß einer Ausführungsform ermittelt der Scout-Kern 34, ob sich der Cachespeicherfehltreffer im I-Cachespeicher 40 oder im D-Cachespeicher 42 (oder in einem beliebigen anderen Typ von Cachespeicher im übergeordneten Kern 32, in dem ein Cachespeicherfehltreffer auftritt) ereignet hat. Nach einem Erkennen eines Cachespeicherfehltreffers kann ein Vorablesezugriff auf eine zukünftig fehlende Cachespeicherzeile durch den Scout-Kern 34 über den Abrufanforderungsbus 68 an den gemeinsam genutzten Cachespeicher 50 gesendet werden. Gemäß einem Ansatz kann der Scout-Kern 34 eine Prüfung durchführen, um zu ermitteln, ob die betreffende Cachespeicherzeile in dem Cachespeicher des übergeordneten Kerns 32 (z. B. im I-Cachespeicher 40 oder im D-Cachespeicher 42) gespeichert ist. Wenn die betreffende Cachespeicherzeile in dem übergeordneten Kern 32 vorliegt, braucht auf die Daten, die sich bereits in dem Cachespeicher des übergeordneten Kerns 32 befinden, nicht mehr vorab zugegriffen zu werden.
  • Gemäß einem anderen Ansatz kann die Prüfpunktadresse des übergeordneten Kerns 32 zwischen dem übergeordneten Kern 32 und dem Scout-Kern 34 über den gemeinsam genutzten Cachespeicher 50 übermittelt werden. Bestimmte Prüfpunktadressen können für vorgegebene Ereignisse repräsentativ sein. Bei dem vorgegebenen Ereignis kann es sich zum Beispiel um eine Aufräumfunktion oder einen Kontextwechsel handeln. Gemäß einer beispielhaften Ausführungsform kann die Prüfpunktadresse einer vorgegebenen Cachespeicherzeile entweder im I-Cachespeicher 40 oder im D-Cachespeicher 42 des übergeordneten Kerns 32 zugehörig sein, jedoch sollte klar sein, dass die Prüfpunktadresse nicht unbedingt einer vorgegebenen Vorabrufadresse zugehörig sein muss. Der Scout-Kern 34 überwacht den übergeordneten Kern 32, und nach Beenden des vorgegebenen Ereignisses sendet der Scout-Kern 34 eine Vorablesezugriffsanforderung an den gemeinsam genutzten Cachespeicher 50, um eine dem vorgegebenen Ereignis zugehörige Cachespeicherzeile zu übernehmen.
  • Nach dem Empfangen der Vorablesezugriffsanforderung von dem Scout-Kern 34 sendet der gemeinsam genutzte Cachespeicher 50 die durch die Vorablesezugriffsanforderung angeforderten Daten über den Datenrückgabebus 60 zu dem übergeordneten Kern 32. Der gemeinsam genutzte Cachespeicher 50 sendet die durch die Vorablesezugriffsanforderung angeforderten Daten als Funktion der Vorablesezugriffsanforderung an den übergeordneten Kern 32. Die durch die Vorablesezugriffsanforderung angeforderten Daten werden nicht durch den Scout-Kern 34, sondern nur durch den übergeordneten Kern 32 akzeptiert.
  • Gemäß einem Ansatz teilt der Scout-Kern 34 dem übergeordneten Kern 32 mit, dass im Auftrag des übergeordneten Kerns 32 ein Vorablesezugriff getätigt wurde. Alternativ teilt der gemeinsam genutzte Cachespeicher 50 gemäß einem anderen Ansatz nach dem Senden der durch die Vorablesezugriffsanforderung angeforderten Daten ebenfalls dem übergeordneten Kern 32 mit, dass im Auftrag des übergeordneten Kerns 32 ein Vorabruf getätigt wurde. Somit teilt der Scout-Kern 34 dem gemeinsam genutzten Cachespeicher 50 mit, wie die durch die Vorablesezugriffsanforderung angeforderten Daten weitergeleitet und auf dem übergeordneten Kern 32 gespeichert werden sollen, so als hätte der übergeordnete Kern 32 die Vorablesezugriffsanforderung selbst ausgelöst (obwohl nicht der übergeordnete Kern 32 selbst, sondern der Scout-Kern 34 die Vorablesezugriffsanforderung getätigt hatte). Somit werden die durch die Vorablesezugriffsanforderung angeforderten Daten in dem I-Cachespeicher 40 oder in dem D-Cachespeicher 42 des übergeordneten Kerns 32 gespeichert.
  • 3 ist eine alternative Darstellung eines CP-Chips 124 mit einem einzigen Scout-Kern 134, jedoch mindestens zwei übergeordneten Kernen 132. Zu beachten ist, dass in 3 zwar zwei übergeordnete Kerne 132 dargestellt sind, jedoch gleichermaßen auch eine beliebige Anzahl mehrerer übergeordneter Kerne 132 verwendet werden kann. Bei der in 3 gezeigten Ausführungsform sind zwischen den übergeordneten Kernen 132 und dem gemeinsam genutzten Cachespeicher 150 ein Datenrückgabebus 160 und zwischen dem Scout-Kern 134 und dem gemeinsam genutzten Cachespeicher 150 ein Datenrückgabebus 162 bereitgestellt. Für jeden der übergeordneten Kerne 132 ist ein Abrufanforderungsbus 164 bereitgestellt, wobei der Abrufanforderungsbus 164 die übergeordneten Kerne 132 mit dem gemeinsam genutzten Cachespeicher 150 verbindet. Ein Abrufüberwachungsbus 166 verbindet den Scout-Kern 134 mit dem gemeinsam genutzten Cachespeicher 150. Zwischen dem Scout-Kern 134 und dem gemeinsam genutzten Cachespeicher 150 ist ein Abrufanforderungsbus 168 angeordnet, um von dem Scout-Kern 134 verschiedene Vorablesezugriffsanforderungen zu dem gemeinsam genutzten Cachespeicher 150 zu senden.
  • 4 ist eine alternative Darstellung eines CP-Chips 224 mit mindestens zwei Scout-Kernen 234 und einem übergeordneten Kern 232. Zu beachten ist, dass in 4 zwar zwei Scout-Kerne 234 dargestellt sind, jedoch gleichermaßen auch mehrere (z. B. mehr als zwei) Scout-Kerne 232 verwendet werden können. Bei der in 4 gezeigten Ausführungsform ist zwischen dem übergeordneten Kern 232 und dem gemeinsam genutzten Cachespeicher 250 ein Datenrückgabebus 260 bereitgestellt. Für jeden der Scout-Kerne 234 ist ein Datenrückgabebus 262 bereitgestellt, der zum Verbinden eines der Scout-Kerne 234 mit dem gemeinsam genutzten Cachespeicher 250 dient. Ein Abrufanforderungsbus 264 verbindet den übergeordneten Kern 232 mit dem gemeinsam genutzten Cachespeicher 250. Für jeden der Scout-Kerne 234 ist ein Abrufüberwachungsbus 266 bereitgestellt, der zum Verbinden eines der Scout-Kerne 234 mit dem gemeinsam genutzten Cachespeicher 250 dient. Für jeden der Scout-Kerne 234 ist ein Abrufanforderungsbus 268 bereitgestellt, der zum Verbinden eines der Scout-Kerne 234 mit dem gemeinsam genutzten Cachespeicher 250 dient.
  • Gemäß der in 4 gezeigten Ausführungsform kann jeder der Scout-Kerne 234 den übergeordneten Kern 232 auf ein anderes vorgegebenes Datenmuster hin überwachen. Gemäß einem Ansatz kann zum Beispiel einer der Scout-Kerne 234 das Verhalten eines L1-I-Cachespeichers 240 des übergeordneten Kerns 232 überwachen und analysieren, während der andere Scout-Kern 234 das Verhalten eines L1-D-Cachespeichers 242 des übergeordneten Kerns 232 überwachen und analysieren kann. Somit können innerhalb eines bestimmten Zeitraums zusätzliche Daten überwacht und analysiert werden.
  • 5 ist ein Ablaufplan eines Verfahrens 300 zum Vorablesezugriff auf Daten für den übergeordneten Kern 32 durch den Scout-Kern 34, das im Folgenden erörtert wird. Bezug nehmend auf die 1 bis 5 startet das Verfahren 300 in Block 302, wo der Scout-Kern 34 den übergeordneten Kern 32 über den gemeinsam genutzten Cachespeicher 50 überwacht. Dann kann das Verfahren mit Block 304 fortfahren.
  • In Block 304 überwacht der Scout-Kern 34 den übergeordneten Kern 32 auf das vorgegebene Datenmuster hin, das in dem übergeordneten Kern 32 vorkommt. Gemäß der obigen Erörterung kann es sich bei dem vorgegebenen Datenmuster entweder um eine Inhaltsanforderung, die den übergeordneten Kern 32 verlässt (z. B. eine Anforderung nach einer vorgegebenen Cachespeicherzeile, die entweder im I-Cachespeicher 40 oder im D-Cachespeicher 42 des übergeordneten Kerns 32 nicht vorliegt), oder alternativ um eine Prüfpunktadresse handeln. Wenn das vorgegebene Datenmuster nicht erkannt wird, kann das Verfahren 300 zu Block 302 zurückkehren. Wenn das vorgegebene Datenmuster erkannt wird, kann das Verfahren mit Block 306 fortfahren.
  • In Block 306 sendet der Scout-Kern 34 die Vorablesezugriffsanforderung an den gemeinsam genutzten Cachespeicher 50. Gemäß der obigen Erörterung kann es sich bei der Vorablesezugriffsanforderung zum Beispiel um einen Vorablesezugriff auf die fehlende Cachespeicherzeile handeln, die durch den Scout-Kern 34 an den gemeinsam genutzten Cachespeicher 50 gesendet wurde. Dann kann das Verfahren 300 mit Block 308 fortfahren.
  • In Block 308 wird dem übergeordneten Kern 32 mitgeteilt, dass im Auftrag des übergeordneten Kerns 32 ein Vorablesezugriff getätigt wurde. Dann kann das Verfahren 300 mit Block 310 fortfahren.
  • In Block 310 sendet der gemeinsam genutzte Cachespeicher 50 die durch die Vorablesezugriffsanforderung angeforderten Daten über den Datenrückgabebus 60 zu dem übergeordneten Kern 32. Der gemeinsam genutzte Cachespeicher 50 sendet die durch die Vorablesezugriffsanforderung angeforderten Daten als Funktion der Vorablesezugriffsanforderung zu dem übergeordneten Kern 32. Gemäß einer Ausführungsform werden die Blöcke 308 und 310 gleichzeitig ausgeführt. Dann kann das Verfahren 300 beendet werden.
  • Dem Fachmann ist einsichtig, das ein oder mehrere Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demzufolge können ein oder mehrere Aspekte der vorliegenden Erfindung die Form einer kompletten Hardwareausführungsform, einer kompletten Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereint, die hierin sämtlich allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet werden können. Außerdem können ein oder mehrere Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darauf gespeicherten computerlesbaren Programmcode verkörpert ist.
  • Es kann eine beliebige Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich, ohne darauf beschränkt zu sein, um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine beliebige geeignete Kombination derselben handeln. Als einzelne Beispiele (eine nicht erschöpfende Aufzählung) für das computerlesbare Speichermedium kommen infrage eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
  • Gemäß einem in 6 gezeigten Beispiel enthält ein Computerprogrammprodukt 600 zum Beispiel ein oder mehrere Speichermedien 602, wobei die Medien materiell und/oder nichtflüchtig sein können, zum Speichern eines computerlesbaren Programmcodemittels oder einer Programmcodelogik 604 auf denselben, um einen oder mehrere Aspekte von hierin beschriebenen Ausführungsformen bereitzustellen oder zu ermöglichen.
  • Ein Programmcode, der erzeugt und auf einem materiellen Medium (darunter, ohne darauf beschränkt zu sein, elektronische Speichermodule (RAM), Flash-Speicher, Compact Discs (CDs), DVDs, Magnetbänder und dergleichen) gespeichert wird, wird oft als „Computerprogrammprodukt” bezeichnet. Das Medium des Computerprogrammprodukts ist üblicherweise durch einen Verarbeitungsschaltkreis lesbar, das vorzugsweise in einem Computersystem zum Ausführen des Computerprogrammprodukts durch den Verarbeitungsschaltkreis dient. Ein solcher Programmcode zum Beispiel kann unter Verwendung eines Compilers oder Assemblers erzeugt werden, um Anweisungen zusammenzustellen, die bei Ausführung Aspekte der Erfindung realisieren.
  • Zu den oben beschriebenen technischen Auswirkungen und Vorteilen des Datenverarbeitungssystems 10 gehört das Entwickeln eines Programms, das durch den L1-I-Cachespeicher 40 des Scout-Kerns 34 ausgeführt werden kann. Der Scout-Kern 34 kann den übergeordneten Kern 32 auf verschiedene Typen vorgegebener Datenmuster überwachen, die in dem übergeordneten Kern 32 vorkommen. Bestimmte Typen von gegenwärtig verfügbaren Hardware-Vorablesezugriffseinheiten hingegen können den übergeordneten Kern 34 nur auf ein vorgegebenes Muster hin überwachen. Außerdem kann die Anzahl der Datenmuster, die durch den Scout-Prozessor 34 überwacht und analysiert werden können, relativ größer sein als die einer gegenwärtig verfügbaren Hardware-Vorablesezugriffseinheit, da der gesamte L1-D-Cachespeicher 42 des Scout-Prozessors 34 zum Speichern der zu analysierenden Daten verwendet werden kann.
  • Die hierin verwendeten Begriffe dienen zum Beschreiben einzelner Ausführungsformen und nicht zur Einschränkung auf die Ausführungsformen. Die hierin verwendeten Einzahlformen „ein”, „eine” und „der, die, das” sollen gleichermaßen auch die Mehrzahlformen beinhalten sofern nicht aus dem Zusammenhang anderes hervorgeht. Ferner ist klar, dass die Begriffe „weist auf” und/oder „aufweisend” bei Verwendung in dieser Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder Hinzukommen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder deren Gruppen ausschließen.
  • Die jeweiligen Strukturen, Materialien, Aktionen und Entsprechungen aller Mittel oder Schritte zuzüglich Funktionselemente in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zum Ausführen der Funktion in Kombination mit anderen ausdrücklich beanspruchten Elementen beinhalten. Die Beschreibung der Ausführungsformen ist zur Veranschaulichung und Beschreibung vorgelegt worden, erhebt jedoch nicht den Anspruch auf Vollständigkeit oder Einschränkung auf die Ausführungsformen in der offenbarten Form. Dem Fachmann sind viele Modifikationen und Varianten offensichtlich, ohne vom Schutzumfang oder Wesensgehalt der Ausführungsformen abzuweichen. Die Ausführungsformen wurden gewählt und beschrieben, um die Grundgedanken und die praktische Anwendung bestmöglich zu erläutern und anderen Fachleuten das Verständnis der Ausführungsformen mit verschiedenen Modifikationen zu ermöglichen, die jeweils für den vorgesehenen Verwendungszweck geeignet sind.
  • Ein Computerprogrammcode zum Ausführen von Operationen für Aspekte der Ausführungsformen kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann komplett auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Fall kann der ferne Computer durch einen beliebigen Typ von Netzwerk, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte von Ausführungsformen werden oben unter Bezugnahme auf Ablaufpläne und/oder schematische Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Anweisungen eines Computerprogramms umgesetzt werden können. Diese Anweisungen eines Computerprogramms kann einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zugeführt werden, um eine Maschine derart zu erzeugen, dass die durch den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktionen/Aktionen erzeugen.
  • Diese Anweisungen des Computerprogramms können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlassen kann, in einer bestimmten Weise derart zu funktionieren, dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktionen/Aktionen enthält.
  • Die Anweisungen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Folge auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführender Arbeitsschritte zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktionen/Aktionen bereitstellen.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen. Demgemäß kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt repräsentieren, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Dabei ist zu beachten, dass bei einigen alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge auftreten können. Zum Beispiel können zwei nacheinander gezeigte Blöcke je nach vorgesehener Funktionalität in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Zu beachten ist auch, dass jeder Block der Blockschaubilder und/oder des Ablaufplans oder Kombinationen von Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.

Claims (20)

  1. Computersystem zum Vorablesezugriff auf Daten, wobei das System aufweist: einen Chip, der aufweist: mindestens einen auf dem Chip befindlichen Scout-Kern; mindestens einen auf dem Chip befindlichen übergeordneten Kern; und einen gemeinsam genutzten Cachespeicher, der gleichberechtigt zwischen dem mindestens einen Scout-Kern und dem mindestens einen übergeordneten Kern genutzt wird, wobei sich der gemeinsam genutzte Cachespeicher auf dem Chip befindet und das System zum Ausführen eines Verfahrens konfiguriert ist, wobei das Verfahren aufweist: Ausführen eines Vorablesezugriffscodes durch den mindestens einen Scout-Kern zum Überwachen des mindestens einen übergeordneten Kerns, wobei der Vorablesezugriffscode unabhängig von dem mindestens einen übergeordneten Kern ausgeführt wird; Feststellen durch den mindestens einen Scout-Kern auf der Grundlage der Überwachung des mindestens einen übergeordneten Kerns, dass mindestens ein vorgegebenes Datenmuster in dem mindestens einen übergeordneten Kern vorgekommen ist; Senden einer Vorablesezugriffsanforderung von dem mindestens einen Scout-Kern zu dem gemeinsam genutzten Cachespeicher, wobei das Senden auf dem Feststellen beruht; und Senden eines durch die Vorablesezugriffsanforderung angezeigten Datensatzes durch den gemeinsam genutzten Cachespeicher zu dem mindestens einen übergeordneten Kern.
  2. Computersystem nach Anspruch 1, das ferner ein Mitteilen an den mindestens einen übergeordneten Kern aufweist, dass die Vorablesezugriffsanforderung im Auftrag des mindestens einen übergeordneten Kerns getätigt wurde.
  3. Computersystem nach Anspruch 1 oder 2, wobei der mindestens eine Scout-Kern dem gemeinsam genutzten Cachespeicher mitteilt, wie die durch Vorablesezugriffsanforderung angeforderten Daten weitergeleitet und in einem Cachespeicher gespeichert werden sollen, der sich in dem mindestens einen übergeordneten Kern befindet.
  4. Computersystem nach einem der vorhergehenden Ansprüche, wobei der Chip mindestens zwei übergeordnete Kerne enthält, die jeweils Daten mit dem gemeinsam genutzten Cachespeicher austauschen.
  5. Computersystem nach einem der vorhergehenden Ansprüche, wobei der Chip mindestens zwei Scout-Kerne enthält, die Daten mit dem gemeinsam genutzten Cachespeicher austauschen, und wobei die Scout-Kerne den mindestens einen übergeordneten Kern jeweils auf ein anderes vorgegebenes Datenmuster hin überwachen.
  6. Computersystem nach einem der vorhergehenden Ansprüche, wobei der mindestens eine Scout-Kern den mindestens einen übergeordneten Kern über einen Abrufüberwachungsbus überwacht, wobei der Abrufüberwachungsbus den mindestens einen Scout-Kern mit dem gemeinsam genutzten Cachespeicher verbindet.
  7. Computersystem nach einem der vorhergehenden Ansprüche, wobei es sich bei dem mindestens vorgegebenen Datenmuster um einen Cachespeicherfehltreffer handelt, der sich in einem Cachespeicher ereignet, der sich in dem mindestens einen übergeordneten Kern befindet.
  8. Computersystem nach einem der Ansprüche 1 bis 6, wobei es sich bei dem mindestens einen vorgegebenen Datenmuster um eine Prüfpunktadresse des mindestens einen übergeordneten Kerns handelt.
  9. Computerprogrammprodukt zum Vorablesezugriff auf Daten auf einem Chip mit mindestens einem Scout-Kern, mindestens einem übergeordneten Kern und einem gemeinsam genutzten Cachespeicher, der gleichberechtigt zwischen dem mindestens einen Scout-Kern und dem mindestens einen übergeordneten Kern genutzt wird, wobei das Computerprogrammprodukt aufweist: ein materielles Speichermedium, das durch einen Verarbeitungsschaltkreis lesbar ist und in dem Anweisungen zur Ausführung durch den Verarbeitungsschaltkreis gespeichert sind, um ein Verfahren durchzuführen, das aufweist: Ausführen eines Vorablesezugriffscodes durch den mindestens einen Scout-Kern zum Überwachen des mindestens einen übergeordneten Kerns, wobei der Vorablesezugriffscode unabhängig von dem mindestens übergeordneten Kern ausgeführt wird. Feststellen durch den mindestens einen Scout-Kern auf der Grundlage der Überwachung des mindestens einen übergeordneten Kerns, dass in dem mindestens einen übergeordneten Kern mindestens ein vorgegebenes Datenmuster vorgekommen ist; Senden einer Vorablesezugriffsanforderung von dem mindestens einen Scout-Kern zu dem gemeinsam genutzten Cachespeicher, wobei das Senden auf dem Feststellen beruht; und Senden eines durch die Vorablesezugriffsanforderung angezeigten Datensatzes durch den gemeinsam genutzten Cachespeicher zu dem mindestens einen übergeordneten Kern.
  10. Computerprogrammprodukt nach Anspruch 9, das ferner ein Mitteilen an den mindestens einen übergeordneten Kern aufweist, dass die Vorablesezugriffsanforderung im Auftrag des mindestens einen übergeordneten Kerns getätigt wurde.
  11. Computerprogrammprodukt nach Anspruch 9 oder 10, wobei der mindestens eine Scout-Kern dem gemeinsam genutzten Cachespeicher mitteilt, wie die durch Vorablesezugriffsanforderung angeforderten Daten weitergeleitet und in einem Cachespeicher gespeichert werden sollen, der sich in dem mindestens einen übergeordneten Kern befindet.
  12. Computerprogrammprodukt nach einem der Ansprüche 9 bis 11, wobei der Chip mindestens zwei übergeordnete Kerne enthält, die jeweils Daten mit dem gemeinsam genutzten Cachespeicher austauschen.
  13. Computerprogrammprodukt nach einem der Ansprüche 9 bis 12, wobei der Chip mindestens zwei Scout-Kerne enthält, die Daten mit dem gemeinsam genutzten Cachespeicher austauschen, und wobei die Scout-Kerne den mindestens einen übergeordneten Kern jeweils auf ein anderes vorgegebenes Datenmuster hin überwachen.
  14. Computerprogrammprodukt nach einem der Ansprüche 9 bis 13, wobei der mindestens eine Scout-Kern den mindestens einen übergeordneten Kern über einen Abrufüberwachungsbus überwacht, wobei der Abrufüberwachungsbus den mindestens einen Scout-Kern mit dem gemeinsam genutzten Cachespeicher verbindet.
  15. Computerprogrammprodukt nach einem der Ansprüche 9 bis 14, wobei es sich bei dem mindestens einen vorgegebenen Datenmuster um einen Cachespeicherfehltreffer handelt, der in einem Cachespeicher auftritt, der sich in dem mindestens einen übergeordneten Kern befindet.
  16. Computergestütztes Verfahren zum Vorablesezugriff auf Daten auf einem Chip mit mindestens einem Scout-Kern, mindestens einem übergeordneten Kern und einem gemeinsam genutzten Cachespeicher, der gleichberechtigt zwischen dem mindestens einen Scout-Kern und dem mindestens einen übergeordneten Kern genutzt wird, wobei das Verfahren aufweist: Ausführen eines Vorablesezugriffscodes durch den mindestens einen Scout-Kern zum Überwachen des mindestens einen übergeordneten Kerns, wobei der Vorablesezugriffscode unabhängig von dem mindestens einen übergeordneten Kern ausgeführt wird; Feststellen durch den mindestens einen Scout-Kern auf der Grundlage der Überwachung des mindestens einen übergeordneten Kerns, dass das mindestens eine vorgegebene Datenmuster in dem mindestens einen übergeordneten Kern vorgekommen ist; Senden einer Vorablesezugriffsanforderung von dem mindestens einen Scout-Kern zu dem gemeinsam genutzten Cachespeicher, wobei das Senden auf dem Feststellen beruht; und Senden eines durch die Vorablesezugriffsanforderung angezeigten Datensatzes durch den gemeinsam genutzten Cachespeicher zu dem mindestens einen übergeordneten Kern.
  17. Verfahren nach Anspruch 16, das ferner ein Mitteilen an den mindestens einen übergeordneten Kern aufweist, dass die Vorablesezugriffsanforderung im Auftrag des mindestens einen übergeordneten Kerns getätigt wurde.
  18. Verfahren nach Anspruch 16 oder 17, wobei der mindestens eine Scout-Kern dem gemeinsam genutzten Cachespeicher mitteilt, wie die durch die Vorablesezugriffsanforderung angeforderten Daten weitergeleitet und in einem Cachespeicher gespeichert werden sollen, der sich in dem mindestens einen übergeordneten Kern befindet.
  19. Verfahren nach einem der Ansprüche 16 bis 18, wobei der Chip mindestens zwei übergeordnete Kerne enthält, die Daten mit dem gemeinsam genutzten Cachespeicher austauschen.
  20. Verfahren nach einem der Ansprüche 16 bis 19, wobei der Chip mindestens zwei Scout-Kerne enthält, die Daten mit dem gemeinsam genutzten Cachespeicher austauschen, und wobei die Scout-Kerne den mindestens einen übergeordneten Kern jeweils auf ein anderes vorgegebenes Datenmuster hin überwachen.
DE112014000336.0T 2013-03-05 2014-02-13 Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip Pending DE112014000336T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/785,377 US9116816B2 (en) 2013-03-05 2013-03-05 Prefetching for a parent core in a multi-core chip
USUS-13/785,377 2013-03-05
PCT/IB2014/058955 WO2014136003A1 (en) 2013-03-05 2014-02-13 Prefetching for parent core in multi-core chip

Publications (1)

Publication Number Publication Date
DE112014000336T5 true DE112014000336T5 (de) 2015-09-17

Family

ID=51489358

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014000336.0T Pending DE112014000336T5 (de) 2013-03-05 2014-02-13 Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip

Country Status (6)

Country Link
US (2) US9116816B2 (de)
JP (1) JP6320431B2 (de)
CN (1) CN104981786B (de)
DE (1) DE112014000336T5 (de)
GB (1) GB2525831B (de)
WO (1) WO2014136003A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9116816B2 (en) * 2013-03-05 2015-08-25 International Business Machines Corporation Prefetching for a parent core in a multi-core chip
US10013344B2 (en) * 2014-01-14 2018-07-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhanced SSD caching
US10678736B2 (en) * 2015-09-25 2020-06-09 Intel Corporation Extending multichip package link off package
GB2544474B (en) 2015-11-16 2020-02-26 Advanced Risc Mach Ltd Event triggered programmable prefetcher
CN107783911B (zh) * 2016-08-31 2021-06-08 华为技术有限公司 一种数据过滤方法及终端设备
CN108763011B (zh) * 2018-03-27 2021-09-07 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) SoC芯片核数检测方法、装置、系统及存储介质
CN113342709B (zh) * 2021-06-04 2023-02-21 海光信息技术股份有限公司 在多处理器系统中访问数据的方法和多处理器系统
CN114217861A (zh) * 2021-12-06 2022-03-22 海光信息技术股份有限公司 数据处理方法及装置、电子装置和存储介质
CN114297098A (zh) * 2021-12-31 2022-04-08 上海阵量智能科技有限公司 芯片的缓存系统、数据处理方法、设备、存储介质及芯片

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470427B1 (en) 1999-11-09 2002-10-22 International Business Machines Corporation Programmable agent and method for managing prefetch queues
US7502910B2 (en) * 2003-01-28 2009-03-10 Sun Microsystems, Inc. Sideband scout thread processor for reducing latency associated with a main processor
US8230422B2 (en) 2005-01-13 2012-07-24 International Business Machines Corporation Assist thread for injecting cache memory in a microprocessor
US7950012B2 (en) 2005-03-16 2011-05-24 Oracle America, Inc. Facilitating communication and synchronization between main and scout threads
US7590805B2 (en) 2005-12-29 2009-09-15 Intel Corporation Monitor implementation in a multicore processor with inclusive LLC
US7730263B2 (en) 2006-01-20 2010-06-01 Cornell Research Foundation, Inc. Future execution prefetching technique and architecture
US7509481B2 (en) 2006-03-03 2009-03-24 Sun Microsystems, Inc. Patchable and/or programmable pre-decode
JP2008015668A (ja) * 2006-07-04 2008-01-24 Toyota Infotechnology Center Co Ltd タスク管理装置
JP4945200B2 (ja) * 2006-08-29 2012-06-06 株式会社日立製作所 計算機システム及びプロセッサの制御方法
US20080141268A1 (en) 2006-12-12 2008-06-12 Tirumalai Partha P Utility function execution using scout threads
US7975107B2 (en) 2007-06-22 2011-07-05 Microsoft Corporation Processor cache management with software input via an intermediary
US7962314B2 (en) 2007-12-18 2011-06-14 Global Foundries Inc. Mechanism for profiling program software running on a processor
US8775778B2 (en) 2008-02-01 2014-07-08 International Business Machines Corporation Use of a helper thread to asynchronously compute incoming data
US8707016B2 (en) 2008-02-01 2014-04-22 International Business Machines Corporation Thread partitioning in a multi-core environment
JP2009258984A (ja) * 2008-04-16 2009-11-05 Toshiba Corp 情報処理装置およびロード制御方法
US9672019B2 (en) 2008-11-24 2017-06-06 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
JP2010217992A (ja) 2009-03-13 2010-09-30 Mitsubishi Electric Corp キャッシュ制御装置及びキャッシュ制御方法及びキャッシュ制御プログラム
US8195888B2 (en) 2009-03-20 2012-06-05 Empire Technology Development Llc Multiprocessor cache prefetch with off-chip bandwidth allocation
US8407707B2 (en) 2009-05-18 2013-03-26 Lsi Corporation Task queuing in a network communications processor architecture
US8176349B2 (en) 2009-04-30 2012-05-08 Hewlett-Packard Development Company, L.P. Look-ahead processor for signaling suitable non-idle performance state for main processor
US8752008B2 (en) 2009-09-02 2014-06-10 Advanced Micro Devices, Inc. Lightweight service based dynamic binary rewriter framework
US8443151B2 (en) 2009-11-09 2013-05-14 Intel Corporation Prefetch optimization in shared resource multi-core systems
US8904114B2 (en) 2009-11-24 2014-12-02 Empire Technology Development Llc Shared upper level cache architecture
US8341357B2 (en) 2010-03-16 2012-12-25 Oracle America, Inc. Pre-fetching for a sibling cache
US8453161B2 (en) 2010-05-25 2013-05-28 International Business Machines Corporation Method and apparatus for efficient helper thread state initialization using inter-thread register copy
US9116816B2 (en) * 2013-03-05 2015-08-25 International Business Machines Corporation Prefetching for a parent core in a multi-core chip

Also Published As

Publication number Publication date
CN104981786B (zh) 2018-07-20
GB201516351D0 (en) 2015-10-28
US20150019820A1 (en) 2015-01-15
US9128852B2 (en) 2015-09-08
US9116816B2 (en) 2015-08-25
JP2016509320A (ja) 2016-03-24
US20140258640A1 (en) 2014-09-11
GB2525831B (en) 2016-03-23
CN104981786A (zh) 2015-10-14
GB2525831A (en) 2015-11-04
JP6320431B2 (ja) 2018-05-09
WO2014136003A1 (en) 2014-09-12

Similar Documents

Publication Publication Date Title
DE112014000336T5 (de) Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip
DE102012215216B4 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE102007006190B4 (de) Techniken zur Verwendung von Speicher-Attributen
DE69826418T2 (de) Anordnung zum Abtasten mehrerer Instruktionen in einer Prozessorpipeline
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112017006806T5 (de) Datenflussverzögerungen in einer daten-streaming-anwendung verringern
DE102007009909B4 (de) Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
DE112013001421T5 (de) Auf Richtlinien beruhendes Verwalten von Speicherfunktionen in Datenreplikationsumgebungen
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE102013205069A1 (de) Erhöhte effizienz bei inline-deduplizierungen
DE112008003457T5 (de) Mechanismus zum operativen Analysieren von Programmsoftware, die auf einem Prozessor abgearbeitet wird
DE112011104596T5 (de) Systeme, Vorrichtungen und Verfahren für ein Hardware- und Softwaresystem zum automatischen Zerlegen eines Programms in mehrere parallele Threads
DE102006048115A1 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112012004629T5 (de) Dynamischer Speicheraffinitätsanpasser auf Prozess/Objektebene
DE102007052180A1 (de) Verfahren, Rechnersystem und Computerprogrammprodukt
DE112013007300T5 (de) Speichersysteme mit adaptiver Löschcode-Generierung
DE112008004014T5 (de) Analysieren von Serverkopien von Clientdateien
DE112013002995T5 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
DE102014114108A1 (de) Prozessleitsysteme und -verfahren
DE112010004530T5 (de) Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten
DE202017106569U1 (de) Analyse grossangelegter Datenverarbeitungsaufträge

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence