DE112006003358T5 - Verteilung von Speicherzugriffsanforderungen - Google Patents

Verteilung von Speicherzugriffsanforderungen Download PDF

Info

Publication number
DE112006003358T5
DE112006003358T5 DE112006003358T DE112006003358T DE112006003358T5 DE 112006003358 T5 DE112006003358 T5 DE 112006003358T5 DE 112006003358 T DE112006003358 T DE 112006003358T DE 112006003358 T DE112006003358 T DE 112006003358T DE 112006003358 T5 DE112006003358 T5 DE 112006003358T5
Authority
DE
Germany
Prior art keywords
memory access
memory
access request
page
interval
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.)
Granted
Application number
DE112006003358T
Other languages
English (en)
Other versions
DE112006003358B4 (de
Inventor
Steven J. Fort Collins Kommrusch
Brett A. Longmont Tischler
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.)
MediaTek Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE112006003358T5 publication Critical patent/DE112006003358T5/de
Application granted granted Critical
Publication of DE112006003358B4 publication Critical patent/DE112006003358B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

Verfahren mit:
Empfangen einer ersten Speicherzugriffsanforderung von einer ersten Einrichtung (116, 118, 120) während eines ersten Intervalls, wobei die erste Speicherzugriffsanforderung auf eine erste Seite eines Mehrseitenspeichers zugreifen soll;
Empfangen einer zweiten Speicherzugriffsanforderung von der ersten Einrichtung während eines zweiten Intervalls nachfolgend zu dem ersten Intervall;
Empfangen einer dritten Speicherzugriffsanforderung von einer zweiten Einrichtung (116, 118, 120) während des zweiten Intervalls; und
vorrangiges Auswählen der zweiten Speicherzugriffsanforderung gegenüber der dritten Speicherzugriffsanforderung zum Zuführen zu dem Mehrseitenspeicher, wenn eine Angabe anzeigt, dass von der zweiten Speicherzugriffsanforderung erwartet wird, dass diese auf die erste Seite des Mehrseitenspeichers zugreift.

Description

  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft im Allgemeinen die Verarbeitung von Speicherzugriffsanforderungen.
  • Hintergrund der Erfindung
  • Speichersteuerungen werden häufig in Verarbeitungssystemen eingesetzt, um den Zugriff auf Speicherressourcen für Einrichtungen zu steuern, die Daten in einem Speicher ablegen wollen oder Daten aus einem Speicher abrufen wollen. In konventionellen Systemen werden Speicherzugriffsanforderungen zu einer Speichersteuerung auf Grundlage gewisser festgelegter Prioritäten zugeführt. Die Auswahl für die Speicherzugriffsanforderungen auf der Grundlage lediglich eines festgelegten Prioritätsschemas kann jedoch häufig zu beträchtlichen Einbußen in seitenbasierten Speichern führen, wie etwa in dynamischen Speichern mit wahlfreiem Zugriff (DRAM). Typischerweise wird eine Verzögerung hervorgerufen, wenn eine andere Seite eines DRAM's angesprochen wird auf Grund des Prozesses, der zum Schließen der vorhergehenden Seiten und zum Öffnen der nächsten Seite erforderlich ist. Ein häufiges Hin- und Herspringen in eine Speicher tritt typischerweise bei einem festgelegten Prioritätsschema auf, wodurch sich häufig ein „hartes Eingreifen" im Speicher ergibt und wodurch folglich eine deutliche Gesamtverzögerung bei Speicherzugriffsanforderungssequenzen auftritt. Dieses Problem ist insbesondere in Speicher mit doppelter Datenrate (DDR) ausgeprägt auf Grund der höheren Datenrate pro Befehlszyklus.
  • Folglich ist eine verbesserte Technik zum Verarbeiten von Speicherzugriffsanforderungen vorteilhaft.
  • Kurze Beschreibung der Zeichnungen
  • Der Zweck und die Vorteile der vorliegenden Offenbarung werden für den Fachmann angesichts der folgenden detaillierten Beschreibung in Verbindung mit den angefügten Zeichnungen deutlich, wobei in den Zeichnungen gleiche Bezugszeichen gleiche Elemente kennzeichnen, und wobei:
  • 1 eine Blockansicht ist, die ein beispielhaftes Verarbeitungssystem unter Anwendung einer Seitenspeicherzugriffsanforderungsverteilungstechnik gemäß zumindest einer Ausführungsform der vorliegenden Offenbarung gezeigt ist;
  • 2 eine Flussdiagrammansicht ist, in der ein beispielhaftes Verfahren zur dauerhaften Seitenspeicherzugriffsanforderungsverteilung gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung darstellt;
  • 3 eine Flussdiagrammansicht ist, in der eine beispielhafte Ausführungsform des Verfahrens aus 2 auf der Grundlage eines Mehrfach-Ringauswahlschemas gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung gezeigt ist;
  • 4 eine Flussdiagrammansicht ist, in der eine beispielhafte Ausführungsform des Verfahrens aus 2 auf der Grundlage zuvor ausgewählter Speicherzugriffsanforderungen gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung dargestellt ist;
  • 5 und 6 Flussdiagramme sind, die eine beispielhafte Implementierung des Verfahrens aus 2 auf der Grundlage von gepufferten Speicherzugriffsanforderungen gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung darstellen; und
  • 7 eine Blockansicht einer beispielhaften Speicherzugriffsverteilungs- bzw. Entscheidungseinheit gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung zeigt.
  • Detaillierte Beschreibung der Zeichnungen
  • Die folgende Beschreibung soll ein grundlegendes Verständnis der vorliegenden Offenbarung ermöglichen, indem eine Anzahl spezieller Ausführungsformen und Details angegeben werden, die die Entscheidungsfindung für die Auswahl bzw. Verteilung von Speicherzugriffsanforderungen betreffen. Es ist jedoch zu beachten, dass die vorliegende Offenbarung nicht auf diese speziellen Ausführungsformen und Details eingeschränkt ist, die lediglich beispielhafter Natur sind. Des weiteren ist zu beachten, dass der Fachmann im Lichte der bekannten Systeme und Verfahren den Verwendungszweck der vorliegenden Offenbarung für die beabsichtigten Zwecke und deren Vorteile in einer beliebigen Anzahl alternativen Ausführungsformen einrichten kann, wobei dies von speziellen Gestaltungsanforderungen und anderen Notwendigkeiten abhängt.
  • Gemäß einem Aspekt der vorliegenden Offenbarung wird ein Verfahren bereitgestellt. Das Verfahren umfasst das Empfangen einer ersten Speicherzugriffsanforderung von einer ersten Einrichtung während eines ersten Intervalls. Die erste Speicherzugriffsanforderung dient dazu, auf eine erste Seite eines Mehrseitenspeichers zuzugreifen. Das Verfahren umfasst ferner das Empfangen einer zweiten Speicherzugriffsanforderung von der ersten Einrichtung während eines zweiten Intervalls nach dem ersten Intervall und das Empfangen einer dritten Speicherzugriffsanforderung von einer zweiten Einrichtung während des zweiten Intervalls. Das Verfahren umfasst ferner das vorrangige Auswählen der zweiten Speicherzugriffsanforderung gegenüber der dritten Speicherzugriffsanforderung zur Abarbeitung in dem Mehrfachseitenspeicher, wenn ein Indikator bzw. eine Angabe anzeigt, dass erwartet wird, dass die zweite Speicherzugriffsanforderung auf die erste Seite des Mehrfachseitenspeichers zugreift.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein System bereitgestellt. Das System umfasst eine Zugriffsverteilungs- bzw. Auswahleinheit, die mit einem Mehrfachseitenspeicher verbunden ist. Die Zugriffsverteilungseinheit bzw. Zugriffsauswahleinheit ist ausgebildet, eine erste Speicherzugriffsanforderung von einer ersten Einrichtung während eines ersten Intervalls zu empfangen, wobei die erste Speicherzugriffsanforderung auf eine erste Seite eines Mehrfachseitenspeichers zugreifen soll, wobei die Einrichtung ferner ausgebildet ist, eine zweite Speicherzugriffsanforderung von der ersten Einrichtung während eines zweiten Intervalls nach dem ersten Intervall zu empfangen und eine dritte Speicherzugriffsanforderung von einer zweiten Einrichtung während des zweiten Intervalls zu empfangen. Die Verteilungseinheit ist des weiteren ausgebildet, vorzugsweise die zweite Speicherzugriffsanforderung gegenüber der dritten Speicherzugriffsanforderung zur Weiterleitung an den Mehrfachseitenspeicher auszuwählen, wenn ein Indikator anzeigt, dass von der zweiten Speicherzugriffsanforderung erwartet wird, dass diese auf die erste Seite des Mehrfachseitenspeichers zugreift.
  • 1 zeigt ein beispielhaftes Verarbeitungssystem 100 unter Anwendung einer Seitenwiederholzugriffsverteilung gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. In dem dargestellten Beispiel umfasst das System 100 ein System auf einem Chip (SoC) 102 (beispielsweise einen integrierten Prozessor), das mit einem seitenbasierten Speicher 104 mit mehreren Seiten (beispielsweise ein DDR-DRAM) verbunden ist. Das SoC 102 umfasst eine „Nordverteilungseinheit bzw. Auswahleinheit" 106, eine „Südverteilungseinheit" 108 und mehrere Einrichtungen bzw. Einheiten. Die mehreren Einrichtungen können beispielsweise eine Anzeigesteuerung 110, eine allgemeine Verarbeitungseinheit GPU (die häufig auch als eine zentrale Recheneinheit bezeichnet wird), ein Sicherheitsmodul 114, eine periphere Komponentenverbindungs-(PCI)Steuerung 116, einen Videoprozessor 118, eine Brücke (MCP) und eine Speichersteuerung 122 aufweisen.
  • In dem dargestellten Beispiel wählt die Südverteilungseinheit 108 zwischen Speicherzugriffsanforderungen, die von einer oder mehreren der Einrichtungen 116, 118 und 120 (über beispielsweise Anforderungspfade 136, 138 bzw. 140) zugeführt werden und leitet die ausgewählte Speicherzugriffsanforderung für jedes Speicherzugriffsintervall an die Nordverteileinheit 106 weiter. Die Nordverteileinheit 106 selektiert wiederum zwischen Speicherzugriffsanforderungen aus, die von einer oder mehreren der Einrichtungen 110, 112 und 114 bereitgestellt werden (über beispielsweise Anforderungspfade 102, 122 bzw. 134), sowie aus der ausgewählten Speicherzugriffsanforderung, die von der Südverteileinheit 108 bereit gestellt wurde. Die Speicherzugriffsanforderung, die von der Einheit 106 ausgewählt wird, wird dann der Speichersteuerung 122 zusammen mit Daten, die mit der ausgewählten Speicherzugriffsanforderung verknüpft sind (etwa Schreibdaten), zugeführt. Die Speichersteuerung 122 verarbeitet dann die bereitgestellte Zugriffsanforderung, um Daten in die bezeichnete Speicherstelle(n) des Speichers 104 einzuladen oder Daten daraus auszulesen.
  • In mindestens einer Ausführungsform wird in der Verteileinheit 106 und/oder der Verteileinheit 108 eine oder mehrere der Verteilungs- bzw. Auswahltechniken verwendet, wie sie hierin beschrieben sind, um eine Speicherzugriffsanforderung so auszuwählen, dass die Häufigkeit von Seitenwechseln in dem Speicher 104 verringert wird. Das Auswahlschema, das durch die Verteileinheiten 106 und 108 angewendet wird, kann beispielsweise die Auswahl einer speziellen Speicherzugriffsanforderung auf der Grundlage einer Angabe beinhalten, dass die ausgewählte Speicherzugriffsanforderung vermutlich auf die gleiche Speicherseite zugreift wie die Speicherzugriffsanforderung, die für das vorhergehende Intervall ausgewählt war. In einer Ausführungsform kann diese Angabe auf einem Vergleich zumindest eines Teils der Adresse, die mit der vorhergehend ausgewählten Speicherzugriffsanforderung verknüpft ist, mit dem entsprechenden Teil der Adressen einer oder mehrerer anhängiger Speicherzugriffsanforderungen beruhen. Im Falle, dass der Vergleich angibt, dass von einer speziellen anhängigen Speicherzugriffsanforderung erwartet wird, dass diese auf die gleiche Speicherseite wie die vorhergehende Speicherzugriffsanforderung zugreift, wird diese spezielle anhängige Speicherzugriffsanforderung vorrangig zur Bearbeitung während des Speicherzugriffsintervalls ausgewählt. Der Begriff „vorrangig" bei der Verwendung im Zusammenhang mit einer Speicherzugriffsanforderungsauswahl bezeichnet eine Speicherzugriffsanforderungsauswahl, in der angenommen wird, dass alle anderen bedeutsamen Parametern im Wesentlichen gleich sind. Wenn beispielsweise eine einzelne Speicherzugriffsanforderung eine höhere Priorität als eine andere besitzt, wird in Fällen, in denen die Priorität der entscheidende Faktor ist, die Speicherzugriffsanforderung mit der höheren Priorität ausgewählt, selbst wenn die Auswahl der Speicherzugriffsanforderung mit der geringeren Priorität im Hinblick auf andere Parameter vorteilhafter wäre.
  • In einer Ausführungsform führen eine oder beide Verteileinheiten 106 und 108 diesen Vergleich aus. Beispielsweise können eine oder beide Verteileinheiten 106 und 108 eine Teilmenge der signifikantesten Bits (MSB's) der Adresse, die mit der unmittelbar zuvor bearbeiteten Speicherzugriffsanforderung verknüpft ist, (beispielsweise ADDRP[MSBn:MSBn-x]) in einem Register oder einer anderen Speicherstelle (nicht gezeigt) speichern, und die Einrichtungen 130, 132, 134, 136, 138 und 140 können eine entsprechende Teilmenge der signifikantesten Bits (MSB's) der Speicheradresse, die mit ihrer Speicherzugriffsanforderung (beispielsweise ADDRi[MSBn:MSBn-x] für die Einrichtung) als Adresseneingaben 150, 152, 154, 156, 158 und 160 entsprechend bereitstellen. Eine oder beide Verteileinheiten 106 und 108 können dann die Adresseneingaben im Hinblick auf den gespeicherten Adressenwert bearbeiten, um eine Speicherzugriffsanforderung zu ermitteln, von der erwartet wird, dass sie auf die gleiche Speicherseite wie die verarbeitete Speicherzugriffsanforderung zugreift. In einer weiteren Ausführungsform kann der Vergleich der Adressenbereiche durch die Einrichtungen durchgeführt werden, und jede Einrichtung kann ein Signal als Indikator bzw. Angabe dafür bereitstellen, ob die Speicherzugriffsanforderung, die von der Einrichtung bereitgestellt wird, vermutlich auf die gleiche Speicherseite zugreift wie die zuvor bearbeitete Speicherzugriffsanforderung.
  • In vielen Fällen besteht eine hohe Wahrscheinlichkeit, dass eine aktuelle Speicherzugriffsanforderung von einer Einrichtung auf die gleiche Seite des Speichers zugreift wie die unmittelbar vorhergehende Zugriffsspeicheranforderung von der gleichen Einrichtung. Folglich wählen in einer Ausführungsform eine oder beide Verteileinheiten 106 und 108 vorzugsweise aus den Speicherzugriffsanforderungen so aus, dass Speicherzugriffsanforderungen aufeinanderfolgend von der gleichen Einrichtung ausgewählt werden, falls diese verfügbar sind, bis eine maximal vorgegeben Anzahl an sequenziellen Speicherzugriffsanforderungen erreicht ist. Somit kann durch das aufeinanderfolgende Auswählen von Speicherzugriffsanforderungen von der gleichen Einrichtung die Häufigkeit der Seitenwechsel in dem Speicher 104 auf Grund der größeren Wahrscheinlichkeit des Zugreifens auf die gleichen Speicherseiten verringert werden, was sich aus der sequenziellen Verarbeitung von Speicherzugriffsanforderungen von der gleichen Einrichtung ergibt.
  • In ähnlicher Weise können in einer Ausführungsform eine oder beide Verteileinheiten 106 und 108 ein Auswahlschema auswählen, wodurch Speicherzugriffsanforderungen von den Einrichtungen gespeichert werden, bis die Anzahl der Speicherzugriffsanforderungen von einer speziellen Einrichtung mit einer vorbestimmten Anzahl übereinstimmt oder diese übersteigt und/oder bis die Datenmenge (beispielsweise Lesedaten für Lesezugriffe oder Schreibdaten für Schreibzugriffe), die mit den gespeicherten Speicherzugriffsanforderungen von einer speziellen Einrichtung verknüpft sind, einen vorbestimmten Schwellwert erreichen oder übersteigen. Wenn die vorbestimmte Anzahl an Anforderungen erreicht ist und/oder der vorbestimmte Datenschwellwert für die gespeicherten Zugriffsanforderungen einer speziellen Einrichtung erreicht ist, kann die Verteileinheit einige oder alle der gespeicherten Zugriffsanforderungen zur Verarbeitung während aufeinanderfolgender Speicherzugriffsintervalle auswählen. Da Speicherzugriffsanforderungen von der gleichen Einrichtung häufig auf die gleiche Speicherseite zugreifen, ist die aufeinanderfolgende Verarbeitung einer oder mehrerer Speicherzugriffsanforderungen von einer Einrichtung geeignet, die Häufigkeit von Seitenwechseln zu reduzieren, wodurch auch die Verzögerung bei der Bearbeitung von Seitenzugriffsanforderungen verringert wird.
  • In einer Ausführungsform werden die Speicherzugriffsanforderungen von den Einrichtungen in den Verteileinheiten 106 und 108 gepuffert, bis die vorbestimmte Anzahl an Anforderungen erreicht ist und/oder der vorbestimmte Datenschwellwert erreicht ist.
  • Wie beispielhaft gezeigt ist, kann die Verteileinheit 108 einen Puffer 164 aufweisen, um die vorbestimmte Anzahl an Speicherzugriffsanforderungen von der PCI-Steuerung 116 zu speichern. Wenn der Speicher 164 voll ist, kann die Verteileinheit 108 vorzugsweise eine oder alle der gespeicherten Speicherzugriffsanforderungen aus dem Puffer 164 für die sequenzielle Verarbeitung auswählen. In einer alternativen Ausführungsform enthalten eine oder mehrere der Einrichtungen Puffer (beispielsweise den Puffer 162 der GPU 112), um Speicherzugriffsanforderungen zu speichern. In diesem Falle können die Einrichtungen den Verteileinheiten 106 und 108 mitteilen, wenn die gespeicherten Zugriffsanforderungen die vorbestimmte Anzahl an gespeicherten Zugriffsanforderungen und/oder die vorbestimmte Datenschwellwertmenge erreicht haben. In Reaktion darauf kann die entsprechende Verteileinheit vorrangig eine oder mehrere der gespeicherten Speicherzugriffsanforderungen der das signalerzeugenden Einrichtung für die aufeinanderfolgende Verarbeitung auswählen.
  • 2 zeigt ein beispielhaftes Verfahren 200 zur Auswahl zwischen Speicherzugriffsanforderungen derart, dass Speicherseitenwechsel verringert werden, wie dies gemäß zumindest einer Ausführungsform der vorliegenden Offenbarung realisiert ist. In Block 202 wird eine Speicherzugriffsanforderung an einer Verteileinheit (beispielsweise die Verteileinheit 106 und 108 in 1) von jeder von einer oder mehreren Einrichtungen empfangen. Im Block 204 prüft die Verteileinheit die Prioritäten, wenn welche vorhanden sind, die mit den empfangenen Speicherzugriffsanforderungen verknüpft sind. Beispielsweise kann einer Speicherzugriffsanforderung aus der GPU 112 (1) eine höhere Priorität als einer Speicherzugriffsanforderung aus der Anzeigesteuerung 110 (1) auf Grund von Zeitablauf- oder Leistungserfordernissen zugeordnet sein. Im Falle, dass es lediglich eine einzelne empfangene Speicherzugriffsanforderung gibt, die eine höhere Priorität als die verbleibenden empfangenden Speicherzugriffsanforderungen besitzt, kann diese einzelne Speicherzugriffsanforderung mit höherer Priorität im Block 206 zur Weiterleitung an eine Speichersteuerung (beispielsweise die Speichersteuerung 122 in 1) zur Verarbeitung während des aktuellen Speicherzugriffsintervalls oder eines künftigen Speicherzugriffsintervalls ausgewählt werden.
  • Im Falle, dass mehrere Speicherzugriffsanforderungen der höchsten Prioritätsebene unter den empfangen Speicherzugriffsanforderungen vorhanden sind, wählt in einer Ausführungsform die Verteileinheit diejenige Speicherzugriffsanforderung aus, von der erwartet wird, dass diese auf die gleiche Speicherseite zugreift wie die Speicherzugriffsanforderung, die für das vorhergehende Speicherzugriffsintervall im Block 208 ausgewählt wurde. Die ausgewählte Speicherzugriffsanforderung wird dann der Speichersteuerung zur Verarbeitung zugeleitet. Das Auswahlverfahren 200 kann im Schritt 210 für das nächste Speicherzugriffsintervall wiederholt werden.
  • In den 3 bis 6 sind beispielhafte Ausführungsformen der vorrangigen Speicherzugriffsauswahl im Block 208 des Verfahrens 200 aus 2 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung dargestellt. Eine Speicherzugriffsverteileinheit kann eine beliebige dieser beispielhaften Implementierungen anwenden oder Kombinationen davon, ohne von dem Schutzbereich der vorliegenden Offenbarung abzuweichen.
  • Wie in 3 gezeigt ist, kann eine Implementierung der Speicherzugriffsanforderungswahl mit Vorrang im Block 208 enthalten, so dass bestimmt wird, ob ein Indikator von einer Einrichtung angibt, dass von der aktuellen Anforderung aus der Einrichtung erwartet wird, dass diese auf die gleiche Speicherseite wie die Speicherzugriffsanforderung zugreift, die während des vorhergehenden Speicherzugriffsintervalls ausgewählt wurde, wie es durch den Block 302 gezeigt ist. Wie dies zuvor erläutert ist, kann die Angabe auf einem Vergleich einer Teilmenge der Adresse, die mit einer Speicherzugriffsanforderung verknüpft ist, mit der entsprechenden Adressenteilmenge der zuvor ausgewählten Speicherzugriffsanforderung beruhen. Im Falle, dass es eine derartige Angabe gibt, wird die Speicherzugriffsanforderung aus der Einrichtung, die mit der Angabe verknüpft ist, im Block 304 zur Weiterleitung an eine Speichersteuerung zur Bearbeitung im Block 304 ausgewählt. Im Falle, dass keine derartige Angabe bzw. kein derartiger Indikator vorhanden ist, kann die Verteileinheit eine Speicherzugriffsanforderung für die Verarbeitung auswählen, wobei ein anderes Schema verwendet wird, etwa eine Ringauswahl, wie dies im Block 306 der Fall ist.
  • Tabelle 1 zeigt eine beispielhafte Sequenz von Speicherzugriffsintervallen unter Anwendung einer Speicherzugriffsauswahl, wie sie mit Bezug zu 3 beschrieben ist. In dem dargestellten Beispiel wird eine Einrichtung A mit Priorität 0 und einer Angabe für eine aufeinanderfolgende Auswahl drei mal vorrangig gegenüber einer Einrichtung mit Priorität 0 und einmal vor einer Einrichtung mit Priorität 1 ausgewählt. Tabelle 1
    Intervall Einrichtung A Einrichtung B Einrichtung C Auswahl
    0 0, Indikator keine Anforderung keine Anforderung A
    1 0, Indikator 0 keine Anforderung A
    2 0, Indikator 0 keine Anforderung A
    3 0, Indikator 0 keine Anforderung A
    4 0, Indikator 0 keine Anforderung B
    5 0, Indikator keine Anforderung keine Anforderung A
    6 keine Anforderung keine Anforderung keine Anforderung keine
    7 0, Indikator keine Anforderung keine Anforderung A
    8 0, Indikator 1 keine Anforderung A
    9 0, Indikator 1 1 3 C
  • Wie in 4 gezeigt ist, beinhaltet eine weitere Implementierung der Speicherzugriffsanforderungsauswahl mit Vorrang im Block 208 das Bestimmen, ob eine Speicherzugriffanforderung von der gleichen Einrichtung, die mit der Speicherzugriffsanforderung verknüpft ist, die für das vorhergehende Speicherzugriffsintervall ausgewählt ist, verfügbar ist, wie dies im Block 402 gezeigt ist. Wenn keine derartige Speicherzugriffsanforderung verfügbar ist, wird im Block 404 eine Speicherzugriffsanforderung ausgewählt unter Anwendung einer Vielzahl von Schemata, etwa durch Ringauswahl. Ansonsten wird eine Gesamtzahl der Häufigkeiten, mit der eine Speicherzugriffsanforderung von der Einrichtung der Reihe nach für die unmittelbar vorhergehenden Speicherintervalle ausgewählt war, mit einer vorbestimmten maximalen Anzahl verglichen (beispielsweise ein Maximum an zwei Intervallen oder vier Intervallen). In dem Falle, dass die vorbestimmte maximale Anzahl nicht überschritten wird, wird die Speicherzugriffsanforderung von der Einrichtung im Block 408 für die Verarbeitung durch die Speichersteuerung ausgewählt. Ansonsten wird der Zählwert für die Einrichtung im Block 410 zurückgesetzt (beispielsweise auf Null) und die Speicherzugriffsanforderung aus einer anderen Anrichtung kann unter Anwendung eines weiteren Schemas im Block 404 ausgewählt werden. Es sei beispielsweise angenommen, dass die vorbestimmte maximale Anzahl 4 beträgt und die Speicherzugriffsanforderungen aus der Einrichtung für die letzten zwei Zugriffsintervalle ausgewählt waren, so dass in diesem Falle die aktuelle Speicherzugriffsanforderung aus der Einrichtung im Block 408 gewählt werden kann, da die Gesamtzahl der Speicherzugriffsanforderungen aus der Einrichtung, die in der vorhergehenden Sequenz aus Speicherzugriffsintervallen ausgewählt war, kleiner ist als die vorbestimmte maximale Anzahl. Wenn jedoch die Speicherzugriffsanforderungen aus der Einrichtung für die letzten vier Speicherzugriffsintervalle ausgewählt waren und die vorbestimmte maximale Anzahl vier Intervalle beträgt, dann kann die Zählerzahl, die dieser Einrichtung entspricht, im Block 410 zurückgesetzt werden, und es wird eine Speicherzugriffsanforderung aus einer anderen Einrichtung im Block 404 gewählt.
  • In einer Ausführungsform wird die aufeinanderfolgende Auswahl von Speicherzugriffsanforderungen aus der gleichen Einrichtung unterbrochen, wenn eine Speicherzugriffsanforderung mit höherer Priorität von einer weiteren Einrichtung empfangen wird. In anderen Ausführungsformen kann die aufeinanderfolgende Auswahl von Speicherzugriffsanforderungen aus der gleichen Einrichtung vorrangig gegenüber einer Speicherzugriffsanforderung mit höherer Priorität aus einer anderen Einrichtung ausgeführt werden. Ferner kann die vorbestimmte maximale Anzahl an wiederholten Auswahlen in Abhängigkeit der Priorität der Speicherzugriffsanforderung aus einer weiteren Einrichtung variieren.
  • Tabelle 2 zeigt eine beispielhafte Sequenz aus Speicherzugriffsintervallen unter Anwendung einer Speicherzugriffsverteilung bzw. Auswahl, wie sie mit Bezug zu 4 beschrieben ist. In dem dargestellten Beispiel kann jede Einrichtung zwei mal nacheinander ausgewählt werden, bevor eine weitere Einrichtung mit der gleichen Priorität ausgewählt wird. Das sich ergebende Anforderungsauswahlmuster verringert typischerweise die Anzahl der Vorgänge zum Seitenöffnen und zum Seitenschließen im Vergleich zu konventionellen Auswahlverfahren. Tabelle 2
    Intervall Einrichtung A Priorität Einrichtung B Priorität Einrichtung C Priorität Einrichtung D Priorität Einrichtung E Priorität konventionelle Auswahl verbesserte Auswahl
    0 0 2 2 0 keine Anforderung Einrichtung B Einrichtung B
    1 0 2 2 1 keine Anforderung Einrichtung C Einrichtung B
    2 0 2 2 1 keine Anforderung Einrichtung B Einrichtung C
    3 0 2 2 0 keine Anforderung Einrichtung C Einrichtung C
    4 0 keine Anforderung keine Anforderung 0 keine Anforderung Einrichtung A Einrichtung A
    5 0 keine Anforderung keine Anforderung 0 keine Anforderung Einrichtung D Einrichtung A
    6 0 keine Anforderung keine Anforderung 0 keine Anforderung Einrichtung A Einrichtung D
    7 0 2 2 0 keine Anforderung Einrichtung B Einrichtung B
    8 0 2 2 0 keine Anforderung Einrichtung C Einrichtung B
    9 0 2 2 0 keine Anforderung Einrichtung B Einrichtung C
    10 0 2 2 0 3 Einrichtung E Einrichtung E
  • Wie in 5 gezeigt ist, beinhaltet eine weitere Implementierung der vorrangigen Speicherzugriffsanforderungsauswahl im Block 208 das Bestimmen, ob eine Anzahl gespeicherter Zugriffsanforderungen von den Einrichtungen einen vorbestimmten Schwellwert im Block 502 erreicht oder übertrifft. Wenn nicht, wird im Block 504 eine Speicherzugriffsanforderung von den Einrichtungen unter Anwendung beispielsweise einer Ringauswahl oder eines anderen Auswahlschemas ausgewählt. Ansonsten werden im Block 506 einige oder alle der gespeicherten Speicherzugriffsanforderungen der Speichersteuerung durch die Verteileinheit zur Verarbeitung während aufeinanderfolgender Speicherzugriffsintervalle zugeführt.
  • Tabellen 3 und 4 zeigen entsprechend eine konventionelle Sequenz aus Speicherzugriffen und eine beispielhafte Sequenz aus Speicherzugriffsintervallen unter Anwendung einer Speicherzugriffsverteilung, wie sie mit Bezug zu 5 beschrieben ist. In dem dargestellten Beispiel der Tabelle 4 kann jede Einrichtung zwei Speicherzugriffanforderungen speichern, bevor sie ausgewählt wird. Das resultierende Anforderungsmuster, das durch die Tabelle 4 dargestellt ist, führt mit hoher Wahrscheinlichkeit zu weniger Vorgängen zum Seitenöffnen und zum Seitenschließen im Vergleich zu konventionellen Techniken, wie sie durch die Tabelle 3 gezeigt sind, wodurch insgesamt die Verzögerung in der Bearbeitung verringert. Tabelle 3 (Stand der Technik)
    Intervall Einrichtung A Einrichtung B Einrichtung C konventionelle Auswahl
    0 keine Anforderung keine Anforderung keine Anforderung keine
    1 0 keine Anforderung keine Anforderung A
    2 keine Anforderung 1 keine Anforderung B
    3 keine Anforderung keine Anforderung keine Anforderung keine
    4 0 keine Anforderung keine Anforderung A
    5 keine Anforderung keine Anforderung 3 C
    6 keine Anforderung 1 keine Anforderung B
    7 0 keine Anforderung keine Anforderung A
    8 keine Anforderung keine Anforderung keine Anforderung keine
    9 0 keine Anforderung 3 C
    Tabelle 4
    Intervall Einrichtung A Einrichtung B Einrichtung C verbesserte Auswahl
    0 keine Anforderung keine Anforderung keine Anforderung keine
    1 keine Anforderung keine Anforderung keine Anforderung keine
    2 keine Anforderung keine Anforderung keine Anforderung keine
    3 0 keine Anforderung keine Anforderung A
    4 0 keine Anforderung keine Anforderung A
    5 keine Anforderung 1 3 C
    6 keine Anforderung 1 keine Anforderung B
    7 keine Anforderung 1 keine Anforderung B
    8 0 keine Anforderung keine Anforderung A
    9 0 keine Anforderung 3 C
  • Wie ähnlich in 6 gezeigt ist, beinhaltet eine weitere Implementierung der vorrangigen Speicherzugriffsanforderungsauswahl im Block 208 das Bestimmen, ob die Lesedaten oder Schreibdaten, die durch die gespeicherten Speicherzugriffsanforderungen aus einer der Einrichtungen repräsentiert sind, einen vorbestimmten Datenschwellwert im Block 602 erreichen oder überschreiten. Wenn dies nicht der Fall ist, wird im Block 604 eine Speicherzugriffsanforderung aus den Einrichtungen unter Anwendung von beispielsweise einer Ringauswahl oder einem anderen Auswahlschema ausgewählt. Ansonsten werden im Block 606 einige oder alle der gespeicherten Speicherzugriffsanforderungen der Speichersteuerung durch die Verteileinheit zur Verarbeitung während aufeinanderfolgender Speicherzugriffsintervalle zugeführt.
  • 7 zeigt eine beispielhafte Verteileinheit 700 zur Implementierung einer oder mehrerer Auswahltechniken, wie sie hierin offenbart sind gemäß einer anschaulichen Ausführungsform der vorliegenden Offenbarung. Wie gezeigt, beinhaltet die Verteileinheit 700 ein Anforderungsauswahlmodul 702, ein Indikator- bzw. Angabeanalysemodul 704, Multiplexer 706 und 708 und Register 710, 712, 714, 716, 718 und 720. Die Module 702 und 708 können in Software, Hardware, Firmware oder Kombinationen davon eingerichtet sein. Das Register 710 speichert einen Wert, der die Einrichtung kennzeichnet, die mit der Speicherzugriffsanforderung, die für das vorhergehende Speicherzugriffsintervall ausgewählt war, verknüpft ist. Das Register 710 speichert einen Wert, der die maximale Anzahl angibt, mit der Speicherzugriffe nacheinander von einer gleichen Einrichtung ausgewählt werden können, und das Register 714 speichert einen Wert, der die Zahl der Speicherzugriffsanforderungen angibt, die nacheinander in den unmittelbar vorhergehenden Speicherzugriffsintervallen ausgewählt waren. Das Register 716 speichert einen Wert, der für einen vorbestimmten Datenschwellwert repräsentativ ist, der mit den gepufferten Speicherzugriffsanforderungen verknüpft ist, und das Register 718 speichert einen Wert, der eine vorbestimmte Anzahl an Zugriffsanforderungen angibt, die mit einem Speicherzugriffsanforderungspuffer verknüpft sind. Das Register 720 speichert einen Wert, der eine Speicheradresse repräsentiert, die mit der Speicherzugriffsanforderung verknüpft ist, die für das vorhergehende Speicherzugriffsintervall ausgewählt war. Die Werte eines oder mehrerer der Register 712, 714, 716 und 718 können einstellbar sein, um das Speicherzugriffsanforderungsverteilungsschema, das durch die Verteileinheit 700 eingesetzt wird, durch spezielle Eigenschaften der Funktionsweise des Bauelements (beispielsweise SoC 102 aus 1) anzupassen.
  • Im Betrieb werden eine oder mehrere Speicherzugriffsanforderungen A bis D (von Einrichtungen A bis D) am Multiplexer 708 empfangen. Auf der Grundlage einer Eingabe aus dem Indikatoranalysemodul 704 und/oder auf der Grundlage der Werte aus einem oder mehreren der Register 710, 712, 714, 716, 718 und 720 bestimmt das Anforderungsauswahlmodul 702, welche der Speicherzugriffsanforderungen A bis D für das Zuleiten zu einer Speichersteuerung auszuwählen sind und liefert ein entsprechendes Auswahlsignal 722 zu dem Multiplexer 708, um den Multiplexer 708 anzuweisen, die ausgewählte Speicherzugriffsanforderung als Ausgangssignal 724 für den Empfang durch die Speichersteuerung auszuwählen.
  • In einer Ausführungsform, wie dies mit Bezug zu 4 erläutert ist, wählt das Anforderungsauswahlmodul 702 vorrangig die Speicherzugriffsanforderung aus, die mit der Einrichtung verknüpft ist, die durch das Register 710 bezeichnet wird (d. h. dem Register, das der Speicherzugriffanforderung zugeordnet ist, die für das vorhergehende Speicherzugriffsintervall ausgewählt war) und erhöht den Zählerwert im Register 714, sofern der Zählerwert im Register 714 nicht die maximale Anzahl erreicht oder überschreitet, die durch den Wert im Register 712 repräsentiert ist. Ansonsten wird der Zählerwert zurückgesetzt und es wird ein anderes Auswahlschema, etwa eine Ringauswahl, eingesetzt.
  • In einer weiteren Ausführungsform, wie dies mit Bezug zu den 5 und 6 beschrieben ist, wählt das Anforderungsauswahlmodul 702 vorrangig eine oder mehrere gespeicherte Zugriffsanforderungen von einer Einrichtung aus, wenn die Gesamtzahl der gespeicherten Speicherzugriffsanforderungen einen Schwellwert erreicht und übersteigt, der durch den Wert im Register 718 repräsentiert ist, oder wenn die Gesamtmenge der Daten, auf die durch die gespeicherten Speicherzugriffsanforderungen zugegriffen werden soll, den vorbestimmten Datenschwellwert, der durch den im Register 716 gespeicherten Wert repräsentiert ist, erreicht oder übersteigt.
  • Wie ferner mit Bezug zu 3 erläutert ist, wählt in einer Ausführungsform das Anforderungsauswahlmodul 702 vorrangig eine Speicherzugriffsanforderung von einer Einrichtung auf der Grundlage einer Angabe aus, die repräsentiert, ob von der Speicherzugriffsanforderung erwartet wird, dass diese auf die gleiche Speicherseite zugreift wie die Speicherzugriffsanforderung, die für das vorhergehende Speicherzugriffsintervall ausgewählt ist. Beispielsweise empfängt der Multiplexer 706 Indikatoren bzw. Angaben A bis D von den Einrichtungen A bis D. In einer Ausführungsform repräsentieren die Angaben A bis D eine gewisse Anzahl der signifikantesten Bits der Speicheradressen, die mit den entsprechenden Speicherzugriffsanforderungen A bis D verknüpft sind. Das Anforderungsauswahlmodul 702 liefert ein Auswahlsignal 726 zu dem Multiplexer 706, um wieder das Zuführen einer der Angaben A bis D zu dem Indikatoranalysemodul 704 auswählen. Das Indikatoranalysemodul 704 vergleicht die ausgewählte Angabe (beispielsweise die Speicheradressenteilmenge) mit dem Speicheradressenwert, der in dem Register 720 abgelegt ist (der die Speicheradresse repräsentiert, der der zuvor ausgewählten Speicherzugriffsanforderung zugeordnet ist), um zu bestimmen, ob von der entsprechenden Speicherzugriffsanforderung erwartet wird, dass diese auf die gleiche Speicherseite wie die zuvor ausgewählte Speicherzugriffsanforderung zugreift. Wenn dies so erwartet wird, liefert das Indikatoranalysemodul 704 das Auswahlsignal 728 zu dem Anforderungsauswahlmodul 702, um anzugeben, welche Speicherzugriffsanforderung von welcher Einrichtung vermutlich auf die gleiche Speicherseite wie die zuvor ausgewählte Speicherzugriffsanforderung zugreift. In Reaktion darauf liefert das Anforderungsauswahlmodul 702 das entsprechende Auswahlmodul 722 zu dem Multiplexer 708, um die entsprechende Speicherzugriffsanforderung zur Weiterleitung an die Speichersteuerung als Ausgangssignal 724 auszuwählen.
  • Andere Ausführungsformen, Anwendungen und Vorteile der vorliegenden Offenbarung werden für den Fachmann angesichts der Beschreibung und der Praktizierung der hierin offenbarten Lehre offensichtlich. Die Beschreibung und die Zeichnungen sollten lediglich als anschaulich betrachtet werden und der Schutzbereich der Offenbarung ist folglich lediglich durch die folgenden Patentansprüche und deren Äquivalente festgelegt.
  • Zusammenfassung
  • Ein Verfahren umfasst das Empfangen einer ersten Speicherzugriffsanforderung von einer ersten Einrichtung (116, 118, 120) während eines ersten Intervalls. Die erste Speicherzugriffsanforderung dient dazu, um auf eine erste Seite eines Mehrseitenspeichers (104) zuzugreifen. Das Verfahren umfasst ferner das Empfangen einer zweiten Speicherzugriffsanforderung von der ersten Einrichtung während eines zweiten Intervalls, das auf das erste Intervall folgt, und umfasst das Empfangen einer dritten Speicherzugriffsanforderung von einer zweiten Einrichtung (116, 118, 120) während des zweiten Intervalls. Das Verfahren umfasst ferner das vorrangige Auswählen der zweiten Speicherzugriffanforderung während der dritten Speicherzugriffsanforderung zur Zuführung zu dem Mehrseitenspeicher, wenn eine Angabe angibt, dass von der zweiten Speicherzugriffsanforderung erwartet wird, dass diese auf die erste Seite des Mehrseitenspeichers zugreift.

Claims (10)

  1. Verfahren mit: Empfangen einer ersten Speicherzugriffsanforderung von einer ersten Einrichtung (116, 118, 120) während eines ersten Intervalls, wobei die erste Speicherzugriffsanforderung auf eine erste Seite eines Mehrseitenspeichers zugreifen soll; Empfangen einer zweiten Speicherzugriffsanforderung von der ersten Einrichtung während eines zweiten Intervalls nachfolgend zu dem ersten Intervall; Empfangen einer dritten Speicherzugriffsanforderung von einer zweiten Einrichtung (116, 118, 120) während des zweiten Intervalls; und vorrangiges Auswählen der zweiten Speicherzugriffsanforderung gegenüber der dritten Speicherzugriffsanforderung zum Zuführen zu dem Mehrseitenspeicher, wenn eine Angabe anzeigt, dass von der zweiten Speicherzugriffsanforderung erwartet wird, dass diese auf die erste Seite des Mehrseitenspeichers zugreift.
  2. Verfahren nach Anspruch 1, das ferner umfasst: Auswählen einer vierten Speicherzugriffsanforderung von einer dritten Einrichtung (116, 118, 120) zur Zuführung zu dem Mehrseitenspeicher für ein drittes Intervall; vorrangiges Auswählen einer oder mehrerer Zugriffsanforderungen von der dritten Einrichtung zur Zuführung zu dem Mehrseitenspeicher für jedes Intervall eines oder mehrerer Intervalle, die unmittelbar auf das dritte Intervall folgen, wobei eine Gesamtzahl an Intervallen, die vorrangig ausgewählt ist, kleiner ist als eine vorbestimmte Anzahl an Intervallen.
  3. Verfahren nach Anspruch 1, das ferner umfasst: Speichern von Speicherzugriffsanforderungen in einer dritten Einrichtung (108); und vorrangiges Auswählen der gespeicherten Speicherzugriffsanforderungen für das aufeinanderfolgende Zuführen zu dem Mehrseitenspeicher, wenn eine Anzahl gespeicherter Speicherzugriffsanforderungen größer oder gleich ist als eine vorbestimmte Anzahl an Speicherzugriffsanforderungen.
  4. Verfahren nach Anspruch 1, das ferner umfasst: Speichern von Speicherzugriffsanforderungen in einer dritten Einrichtung (108); und vorrangiges Auswählen der gespeicherten Speicherzugriffsanforderungen für das aufeinanderfolgende Zuführen zu dem Mehrseitenspeicher, wenn eine Datenmenge, auf die durch die gespeicherten Speicherzugriffsanforderungen zuzugreifen ist, größer oder gleich ist als eine vorbestimmte Datenmenge.
  5. Verfahren nach Anspruch 1, wobei die Angabe eine erste Teilmenge der signifikantesten Bits einer Adresse, die mit der zweiten Speicherzugriffsanforderung verknüpft ist, enthält und wobei von der zweiten Speicherzugriffsanforderung erwartet wird, dass diese auf die erste Seite zugreift, wenn die erste Teilmenge der signifikantesten Bits gleich ist zu einer entsprechenden Teilmenge der signifikantesten Bits einer Adresse, die mit der ersten Speicherzugriffsanforderung verknüpft ist.
  6. System mit: einer Zugriffsverteileinheit (106, 108), die mit einem Mehrseitenspeicher (104) verbunden ist, wobei die Zugriffsverteileinheit ausgebildet ist, um: eine erste Speicherzugriffsanforderung von einer ersten Einrichtung (116, 118, 120) während eines ersten Intervalls zu empfangen, wobei die erste Speicherzugriffsanforderung auf eine erste Seite eines Mehrseitenspeichers zugreift; eine zweite Speicherzugriffsanforderung von der ersten Einrichtung während eines zweiten Intervalls nachfolgend zu dem ersten Intervall zu empfangen; eine dritte Speicherzugriffsanforderung von einer zweiten Einrichtung (116, 118, 120) während des zweiten Intervalls zu empfangen; und vorrangig die zweite Speicherzugriffsanforderung gegenüber der dritten Speicherzugriffsanforderung zur Zuführung zu dem Mehrseitenspeicher auszuwählen, wenn eine Angabe angibt, dass von der zweiten Speicherzugriffsanforderung erwartet wird, dass sie auf die erste Seite des Mehrseitenspeichers zugreift.
  7. System nach Anspruch 6, wobei die Zugriffsverteileinheit ferner ausgebildet ist, um: eine vierte Speicherzugriffsanforderung von einer dritten Einrichtung (116, 118, 120) zur Zuführung zu dem Mehrseitenspeicher für ein drittes Intervall auszuwählen; und vorrangig eine oder mehrere Speicherzugriffsanforderungen von der dritten Einrichtung zur Zuführung zu dem Mehrseitenspeicher für jedes Intervall eines oder mehrerer Intervalle, die unmittelbar auf das dritte Intervall folgen, auszuwählen, wobei eine Gesamtzahl von Intervallen, die vorrangig ausgewählt sind, kleiner ist als eine vorbestimmte Anzahl an Intervallen.
  8. System nach Anspruch 7, wobei die Zugriffsverteileinheit ferner ausgebildet ist, um: Speicherzugriffsanforderungen, die in einer vierten Einrichtung (110, 112, 114) gespeichert sind, vorrangig für das aufeinanderfolgende Zuführen zu dem Mehrseitenspeicher auszuwählen, wenn eine Datenmenge, auf die von den gespeicherten Zugriffsanforderungen zugegriffen wird, größer oder gleich ist als eine vorbestimmte Datenmenge.
  9. System nach Anspruch 6, wobei die Zugriffsverteileinheit ferner ausgebildet ist, um: Speicherzugriffsanforderungen, die in einer dritten Einrichtung (116, 118, 120) gespeichert sind, vorrangig für das sequenzielle Zuführen zu dem Mehrseitenspeicher auszuwählen, wenn eine Anzahl gespeicherter Speicherzugriffsanforderungen größer oder gleich ist zu einer vorbestimmten Anzahl an Speicherzugriffsanforderungen.
  10. System nach Anspruch 6, wobei die Zugriffsverteileinheit ferner ausgebildet ist, um: vorrangig Speicherzugriffsanforderungen, die in einer dritten Einrichtung gespeichert sind, für das sequenzielle Zuführen zu dem Mehrseitenspeicher auszuwählen, wenn eine Datenmenge, auf die durch die gespeicherten Zugriffsanforderungen zugegriffen werden sollen, größer oder gleich ist als eine vorbestimmte Datenmenge.
DE112006003358.1T 2005-12-09 2006-12-08 Verteilung von Speicherzugriffsanforderungen Active DE112006003358B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/297,856 2005-12-09
US11/297,856 US7426621B2 (en) 2005-12-09 2005-12-09 Memory access request arbitration
PCT/US2006/046877 WO2007067739A1 (en) 2005-12-09 2006-12-08 Memory access request arbitration

Publications (2)

Publication Number Publication Date
DE112006003358T5 true DE112006003358T5 (de) 2008-10-02
DE112006003358B4 DE112006003358B4 (de) 2022-08-04

Family

ID=37865831

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006003358.1T Active DE112006003358B4 (de) 2005-12-09 2006-12-08 Verteilung von Speicherzugriffsanforderungen

Country Status (8)

Country Link
US (1) US7426621B2 (de)
JP (1) JP2009518753A (de)
KR (1) KR20080075910A (de)
CN (1) CN101326504B (de)
DE (1) DE112006003358B4 (de)
GB (1) GB2446997B (de)
TW (1) TW200728983A (de)
WO (1) WO2007067739A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353317B2 (en) * 2004-12-28 2008-04-01 Intel Corporation Method and apparatus for implementing heterogeneous interconnects
JP5261993B2 (ja) * 2007-06-15 2013-08-14 富士通セミコンダクター株式会社 ディスプレイ制御回路およびディスプレイ装置
TWI385634B (zh) * 2008-04-02 2013-02-11 Novatek Microelectronics Corp 用於一液晶顯示器控制器之微處理器裝置及相關方法
US8266393B2 (en) * 2008-06-04 2012-09-11 Microsoft Corporation Coordination among multiple memory controllers
JP5380322B2 (ja) * 2010-02-17 2014-01-08 京セラドキュメントソリューションズ株式会社 メモリマスタデバイス
US8560796B2 (en) * 2010-03-29 2013-10-15 Freescale Semiconductor, Inc. Scheduling memory access requests using predicted memory timing and state information
US8572322B2 (en) * 2010-03-29 2013-10-29 Freescale Semiconductor, Inc. Asynchronously scheduling memory access requests
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
JP2015508528A (ja) * 2011-12-28 2015-03-19 インテル・コーポレーション パイプライン化された画像処理シーケンサ
US8751830B2 (en) * 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
WO2014147769A1 (ja) * 2013-03-19 2014-09-25 富士通株式会社 制御装置、デバイスアクセス方法、デバイスアクセスプログラム及び情報処理装置
GB2522653A (en) 2014-01-31 2015-08-05 Ibm Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system
TWI553483B (zh) * 2014-10-13 2016-10-11 瑞昱半導體股份有限公司 處理器及存取記憶體的方法
US10684969B2 (en) 2016-07-15 2020-06-16 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces
US10402937B2 (en) 2017-12-28 2019-09-03 Nvidia Corporation Multi-GPU frame rendering
CN110729006B (zh) 2018-07-16 2022-07-05 超威半导体(上海)有限公司 存储器控制器中的刷新方案

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
JPH0660008A (ja) * 1992-08-07 1994-03-04 Hitachi Cable Ltd 2ポートメモリ
US5822772A (en) 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US6145065A (en) * 1997-05-02 2000-11-07 Matsushita Electric Industrial Co., Ltd. Memory access buffer and reordering apparatus using priorities
US6088772A (en) * 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
GB9719047D0 (en) 1997-09-08 1997-11-12 Sgs Thomson Microelectronics Arbitration system
JPH11165454A (ja) * 1997-12-04 1999-06-22 Canon Inc 画像処理装置及び画像処理システム
JPH11194995A (ja) * 1997-12-26 1999-07-21 Mitsubishi Electric Corp Dram内蔵マイクロプロセッサ及びdram内蔵マイクロプロセッサのデータ転送方法
US6052756A (en) * 1998-01-23 2000-04-18 Oki Electric Industry Co., Ltd. Memory page management
JP2002049580A (ja) * 2000-08-02 2002-02-15 Mitsubishi Electric Corp バス管理装置、バス使用要求送信装置、バス管理方法、及びバス使用要求送信方法
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US6625700B2 (en) * 2001-05-31 2003-09-23 Sun Microsystems, Inc. Arbitration and select logic for accessing a shared memory
CN1237459C (zh) * 2001-07-18 2006-01-18 皇家菲利浦电子有限公司 多处理器设备中的非易失性存储器装置和方法
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7035984B2 (en) * 2001-12-31 2006-04-25 Intel Corporation Memory arbiter with grace and ceiling periods and intelligent page gathering logic
US6799257B2 (en) 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US6880028B2 (en) * 2002-03-18 2005-04-12 Sun Microsystems, Inc Dynamic request priority arbitration
JP4344163B2 (ja) * 2002-04-17 2009-10-14 パナソニック株式会社 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
US7404047B2 (en) * 2003-05-27 2008-07-22 Intel Corporation Method and apparatus to improve multi-CPU system performance for accesses to memory

Also Published As

Publication number Publication date
US7426621B2 (en) 2008-09-16
DE112006003358B4 (de) 2022-08-04
US20070136545A1 (en) 2007-06-14
WO2007067739A1 (en) 2007-06-14
CN101326504B (zh) 2012-04-25
KR20080075910A (ko) 2008-08-19
GB0811767D0 (en) 2008-07-30
JP2009518753A (ja) 2009-05-07
GB2446997B (en) 2010-11-10
TW200728983A (en) 2007-08-01
CN101326504A (zh) 2008-12-17
GB2446997A (en) 2008-08-27

Similar Documents

Publication Publication Date Title
DE112006003358B4 (de) Verteilung von Speicherzugriffsanforderungen
DE3805107C2 (de)
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
DE4307565C2 (de) Flexible Adressierung für DRAMS
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE602004008911T2 (de) Verfahren und system um die reihenfolge von paketen mit hilfe eines zwischenspeichers zu gewährleisten
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE3201768A1 (de) Job-verarbeitungsverfahren
DE112006000341T5 (de) System mit einem Cache-Speicher und Verfahren zum Zugreifen
DE3013064C2 (de) Schaltungsanordnung zur Übertragung von Bitgruppen zwischen einer von mehreren peripheren Einheiten und einem Pufferspeicher
DE60131984T2 (de) Arbitrierungsvorrichtung
DE60009817T2 (de) Gemeinsamen Speicher verteilende Multiprozessorvorrichtung
DE19714681A1 (de) Hauptspeichersteuergerät
DE60210748T2 (de) System und Verfahren zum Verbinden von Rahmendaten durch das Einfügen von Bestimmungsfeldern in Steuerblöcke
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE2233193C3 (de) Stapel-Speichersystem
DE4114053A1 (de) Computersystem mit cachespeicher
EP1079307A1 (de) Verfahren zum Betrieb eines Speichersystems sowie Speichersystem
DE3923872A1 (de) Schaltungsanordnung zum steuern des zugriffs auf einen speicher
DE102006007258B4 (de) Speicheradressenerzeugungsschaltkreis und Speichersteuereinheit
DE102008000649B4 (de) Speicher-Verwaltungsvorrichtung und Verfahren für diese
DE102005010931A1 (de) Mehrtordirektzugriffsspeicher
DE10027845B4 (de) Submodul für die Kontrolle einer Datenwarteschlange
DE102008001739A1 (de) Verfahren zum Steuern eines Zugriffs auf Bereiche eines Speichers aus mehreren Prozessen heraus und Kommunikations-Modul mit einem Nachrichten-Speicher zur Realisierung des Verfahrens
DE19951878A1 (de) Zentrale Verarbeitungseinheit und System mit einer Vorabruf-Warteschlange und einem Befehls-Cache

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

8128 New person/name/address of the agent

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER,

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, US

Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

Owner name: MEDIATEK INC., TW

Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE

Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE

R081 Change of applicant/patentee

Owner name: MEDIATEK INC., TW

Free format text: FORMER OWNER: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, CA, US

R082 Change of representative

Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE

R016 Response to examination communication
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013160000

Ipc: G06F0013180000

R018 Grant decision by examination section/examining division
R020 Patent grant now final