DE112006003358B4 - Verteilung von Speicherzugriffsanforderungen - Google Patents

Verteilung von Speicherzugriffsanforderungen Download PDF

Info

Publication number
DE112006003358B4
DE112006003358B4 DE112006003358.1T DE112006003358T DE112006003358B4 DE 112006003358 B4 DE112006003358 B4 DE 112006003358B4 DE 112006003358 T DE112006003358 T DE 112006003358T DE 112006003358 B4 DE112006003358 B4 DE 112006003358B4
Authority
DE
Germany
Prior art keywords
memory
memory access
access
page
request
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.)
Active
Application number
DE112006003358.1T
Other languages
English (en)
Other versions
DE112006003358T5 (de
Inventor
Steven J. Kommrusch
Brett A. 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
MediaTek 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 MediaTek Inc filed Critical MediaTek 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

Images

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

Landscapes

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

Abstract

Ein Verfahren umfasst das Empfangen einer ersten Speicherzugriffsanforderung von einer ersten Einrichtung (116, 118, 120) wahrend 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.

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 der US 5 822 772 A wird ein Verfahren zum Neuordnen einer Reihenfolge von Speicherzugriffen, um effizient mit „Page Misses“ umgehen zu können, und eine Speichersteuerung, welche vier getrennte Speicherbefehls-Queues aufweist, beschrieben. Mit Hilfe der verschiedenen Befehls-Queues, welche durch eine Auswahllogik ausgewählt werden, können Zeilen- und Spaltenadressen durch Befehle angewiesen werden, die in getrennten Befehls-Queues gespeichert sind, sodass im Wesentlichen passive (idle) Taktzyklen vermieden werden können
  • In der DE 103 92 278 T5 wird ein Verfahren zur Steuerung von Speicherzugriffen mit Hilfe einer Vorhersageeinrichtung für bereits geöffnete DRAM-Seiten beschrieben, wobei insbesondere DRAM-Zugriffe priorisiert werden, von denen vorhergesagt wird, dass sie auf gleiche DRAM-Seiten bezogen sind.
  • In der US 6 145 065 A wird ein Verfahren für einen Speicherzugriff durch mehrere Prozessoren basierend auf einem Priorisierungsschema das den Zugriff der Prozessoren, die gleichzeitig eine Zugriffsanfrage stellen, regelt.
  • In der US 6 088 772 A werden ein Verfahren und eine Vorrichtung zum Ordnen von Speicherzugriffsanforderungen beschrieben.
  • In der US 2002 / 0 188 811 A1 wird eine Technik zum Vermitteln und Auswählen einer Zugriffsanforderung von mehreren Bewerbern an einen geteilten Speicher beschrieben.
  • 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 DRAMs 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 einem 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.
  • Figurenliste
  • 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 gemäß Anspruch 1 bereitgestellt.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein System gemäß Anspruch 5 bereitgestellt.
  • 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 Speicherzugnffsanforderungen 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 Einnchtung 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, Indikator1 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 Seitenoffnen 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.

Claims (8)

  1. Verfahren zum Verarbeiten von Speicherzugriffsanforderungen mit: Empfangen einer ersten Speicherzugriffsanforderung von einer ersten Einrichtung (116) durch eine Zugriffsverteileinheit (106, 108), die mit der ersten Einrichtung über einen ersten Anforderungspfad verbunden ist, 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 durch die Zugriffsverteileinheit während eines zweiten Intervalls nachfolgend zu dem ersten Intervall; Empfangen einer dritten Speicherzugriffsanforderung von einer zweiten Einrichtung (118) durch die Zugriffsverteileinheit, die mit der zweiten Einrichtung über einen zweiten Anforderungspfad verbunden ist, während des zweiten Intervalls; und vorrangiges Auswahlen der zweiten Speicherzugriffsanforderung gegenüber der dritten Speicherzugriffsanforderung durch die Zugriffsverteileinheit 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, und Zuführen der ausgewählten Speicherzugriffsanforderung durch die Zugriffsverteileinheit an eine Speichersteuerung (122), die mit dem Mehrseitenspeicher verbunden ist, das ferner umfasst: Speichern von Speicherzugriffsanforderungen in einer dritten Einrichtung (120); und vorrangiges Auswählen durch die Zugriffsverteileinheit 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; und sequentielles Zuführen der ausgewählten gespeicherten Speicherzugriffsanforderungen zu dem Mehrseitenspeicher durch die Zugriffsverteileinheit.
  2. Verfahren nach Anspruch 1, das ferner umfasst: Auswahlen durch die Zugriffsverteileinheit einer vierten Speicherzugriffsanforderung von einer dritten Einrichtung (120), die mit der Zugriffsverteileinheit über einen dritten Anforderungspfad verbunden ist, zur Zuführung zu dem Mehrseitenspeicher für ein drittes Intervall; vorrangiges Auswahlen durch die Zugriffsverteileinheit 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; und Zuführen durch die Zugriffsverteileinheit der ausgewählten einen oder mehreren Zugriffsanforderungen zu dem Mehrseitenspeicher für jedes Intervall von einem oder mehreren direkt dem dritten Intervall folgenden Intervallen.
  3. Verfahren nach Anspruch 1, das ferner umfasst: Speichern von Speicherzugriffsanforderungen in einer dritten Einrichtung (120); und vorrangiges Auswählen durch die Zugriffsverteileinheit 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; und sequentielles Zuführen der ausgewählten gespeicherten Speicherzugriffsanforderungen zu dem Mehrseitenspeicher durch die Zugriffsverteileinheit.
  4. 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.
  5. System zum Verarbeiten von Speicherzugriffsanforderungen mit: einer Zugriffsverteileinheit (106, 108), die mit einem Mehrseitenspeicher (104) verbunden ist, eine Speichersteuerung (122), die mit dem Mehrseitenspeicher verbunden ist, eine erste Einrichtung, die mit der Zugriffsverteileinheit (106, 108) über einen ersten Anforderungspfad verbunden ist, eine zweite Einrichtung, die mit der Zugriffsverteileinheit (106, 108) über einen zweiten Anforderungspfad verbunden ist, wobei die Zugriffsverteileinheit ausgebildet ist, um: eine erste Speicherzugriffsanforderung von der ersten Einrichtung (116) 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 der zweiten Einrichtung (118) während des zweiten Intervalls zu empfangen; 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, und die ausgewählte Speicherzugriffsanforderung an die Speichersteuerung (122) zu liefern, wobei das System weiterhin eine dritte Einrichtung umfasst, die mit der Zugriffsverteileinheit (106, 108) über einen dritten Anforderungspfad verbunden ist, und 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, und sequentiell die ausgewählten gespeicherten Speicherzugriffsanforderungen dem Mehrseitenspeicher zuzuführen.
  6. System nach Anspruch 5, das weiterhin eine dritte Einrichtung umfasst, die mit der Zugriffsverteileinheit (106, 108) über einen dritten Anforderungspfad verbunden ist, und wobei die Zugriffsverteileinheit ferner ausgebildet ist, um: eine vierte Speicherzugriffsanforderung von einer dritten Einrichtung (120) zur Zuführung zu dem Mehrseitenspeicher für ein drittes Intervall auszuwählen; 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, und die eine oder mehreren ausgewählten Zugriffsanforderungen dem Mehrseitenspeicher für jedes Intervall von einem oder mehreren direkt dem dritten Intervall folgenden Intervallen zuzuführen.
  7. System nach Anspruch 6, 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, und sequentiell die ausgewählten gespeicherten Speicherzugriffsanforderungen dem Mehrseitenspeicher zuzuführen.
  8. System nach Anspruch 5, das weiterhin eine dritte Einrichtung umfasst, die mit der Zugriffsverteileinheit (106, 108) über einen dritten Anforderungspfad verbunden ist, und wobei die Zugriffsverteileinheit ferner ausgebildet ist, um: Speicherzugriffsanforderungen, die in einer dritten Einrichtung (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, und sequentiell die ausgewählten gespeicherten Speicherzugriffsanforderungen dem Mehrseitenspeicher zuzuführen.
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 US7426621B2 (en) 2005-12-09 2005-12-09 Memory access request arbitration
US11/297,856 2005-12-09
PCT/US2006/046877 WO2007067739A1 (en) 2005-12-09 2006-12-08 Memory access request arbitration

Publications (2)

Publication Number Publication Date
DE112006003358T5 DE112006003358T5 (de) 2008-10-02
DE112006003358B4 true 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 京セラドキュメントソリューションズ株式会社 メモリマスタデバイス
US8572322B2 (en) * 2010-03-29 2013-10-29 Freescale Semiconductor, Inc. Asynchronously scheduling memory access requests
US8560796B2 (en) * 2010-03-29 2013-10-15 Freescale Semiconductor, Inc. Scheduling memory access requests using predicted memory timing and state information
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
CN104067309A (zh) * 2011-12-28 2014-09-24 英特尔公司 流水线化的图像处理序列发生器
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 超威半导体(上海)有限公司 存储器控制器中的刷新方案

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6088772A (en) 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
US6145065A (en) 1997-05-02 2000-11-07 Matsushita Electric Industrial Co., Ltd. Memory access buffer and reordering apparatus using priorities
US20020188811A1 (en) 2001-05-31 2002-12-12 Ma James H. Arbitration and select logic for a shared memory
DE10392278T5 (de) 2002-02-21 2005-04-14 Intel Corporation, Santa Clara Verfahren und Vorrichtung zur Speicherzugangssteuerung

Family Cites Families (14)

* 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ポートメモリ
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
EP1412864A1 (de) * 2001-07-18 2004-04-28 Koninklijke Philips Electronics N.V. Vorrichtung und verfahren für einen nichtflüchtigen speicher in einem multiprozessorgerät
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20020188811A1 (en) 2001-05-31 2002-12-12 Ma James H. Arbitration and select logic for a shared memory
DE10392278T5 (de) 2002-02-21 2005-04-14 Intel Corporation, Santa Clara Verfahren und Vorrichtung zur Speicherzugangssteuerung

Also Published As

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

Similar Documents

Publication Publication Date Title
DE112006003358B4 (de) Verteilung von Speicherzugriffsanforderungen
DE69724463T2 (de) Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69823180T2 (de) Speicherzugangsschutz
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE60205231T2 (de) Vorrichtung und verfahren zur effizienten zuteilung von speicherbandbreite in einem netzwerkprozessor
DE3606211A1 (de) Multiprozessor-computersystem
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE69114321T2 (de) Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE4307565A1 (de) Flexible Adressierung für DRAMS
DE69021687T2 (de) Verfahren und Vorrichtung zur Zählung von Ereignissen unter Verwendung eines flüchtigen Speichers.
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE602004012310T2 (de) Speicherschnittstelle für systeme mit mehreren prozessoren und einem speichersystem
DE19714681B4 (de) Speichersteuergerät
DE60036923T2 (de) Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung
DE60131984T2 (de) Arbitrierungsvorrichtung
DE102014212671A1 (de) Direktspeicherzugriff-Steuereinrichtung
DE3013064C2 (de) Schaltungsanordnung zur Übertragung von Bitgruppen zwischen einer von mehreren peripheren Einheiten und einem Pufferspeicher
DE60029167T2 (de) Arbiter und Arbitrierungsverfahren
DE60009817T2 (de) Gemeinsamen Speicher verteilende Multiprozessorvorrichtung

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