DE20122578U1 - Page hint indication transfer circuit for page mode memory system, transmits page hint indication during initiated operation - Google Patents

Page hint indication transfer circuit for page mode memory system, transmits page hint indication during initiated operation Download PDF

Info

Publication number
DE20122578U1
DE20122578U1 DE20122578U DE20122578U DE20122578U1 DE 20122578 U1 DE20122578 U1 DE 20122578U1 DE 20122578 U DE20122578 U DE 20122578U DE 20122578 U DE20122578 U DE 20122578U DE 20122578 U1 DE20122578 U1 DE 20122578U1
Authority
DE
Germany
Prior art keywords
page
hint indication
transaction
memory controller
memory
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.)
Expired - Lifetime
Application number
DE20122578U
Other languages
German (de)
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.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/665,981 external-priority patent/US6526483B1/en
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE20122578U1 publication Critical patent/DE20122578U1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Landscapes

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

Abstract

Processors (12A,12B) and L2 cache (14), transmit a page hint indication during an initiated operation. The page hint indication indicates whether a page addressed by the operation is to be kept open or closed. Independent claims are also included for the following: (a) Memory controller; (b) Page hint indication transfer system; (c) Recorded medium storing page hint indication transfer program.

Description

Hintergrund der ErfindungBackground of the invention

1. Gebiet der Erfindung1st area the invention

Die Erfindung bezieht sich auf das Gebiet von Speicher-Systemen und insbesondere auf den seitenweisen Betrieb bzw. den Seitenmodus von Speichersystemen.The The invention relates to the field of memory systems and in particular, the page mode or page mode of storage systems.

2. Beschreibung des Standes der Technik2. Description of the state of the technique

Speicher-Systeme enthalten typischerweise dynamische Speicher mit wahlfreiem Zugriff (DRAM) vom einen oder anderen Typ. DRAM können asynchrone DRAM umfassen, synchrone DRAM (SDRAM), SDRAM mit doppelter Datenrate (DDR SDRAM), SyncLink DRAM (SLDRAM), Rambus-DRAM (RDRAM) etc. Im Allgemeinen sind DRAM-Speicher in einer Matrix von Speicherstellen aufgebaut, die in Reihen und Spalten angeordnet sind. Um auf eine bestimmte Speicherstelle in dem DRAM Zugriff zu erhalten (z.B. zum Lesen oder Schreiben), empfängt der DRAM eine Reihen-Adresse, welche die Reihe auswählt, in der sich die Speicherstelle befindet, und eine Spalten-Adresse, welche die Spalte auswählt, in der sich die Speicherstelle befindet. Jede Speicherstelle kann in der Lage sein, ein oder mehr Bits zu speichern. Die Reihen- und Spalten-Adressen werden typischerweise auf einen Satz von Adressen-Leitungen gemultiplext. Auf diese Weise kann auf eine DRAM-Speicherstelle zugegriffen werden durch Übertragen der Reihen-Adresse auf den Adressen-Leitungen und anschließendes Übertragen der Spalten-Adresse auf den Adressen-Leitungen.Memory Systems typically contain dynamic random access memory (DRAM) of one type or another. DRAM may include asynchronous DRAM, synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), SyncLink DRAM (SLDRAM), Rambus DRAM (RDRAM) etc. In general DRAM memories are built in a matrix of memory locations, which are arranged in rows and columns. To be on a specific Memory location in the DRAM (e.g., for reading or writing), receives the DRAM selects a row address which selects the row in where the location is, and a column address, which selects the column, in which the storage location is located. Each location can to be able to store one or more bits. The series and Column addresses are typically on a set of address lines multiplexed. This way, you can access a DRAM location accessed by transfer the row address on the address lines and then transmitting the column address on the address lines.

Um eine verkürzte Wartezeit bzw. Verzögerung ("latency") zu ermöglichen, wenn auf mehrere Speicherstellen in der gleichen Reihe nacheinander zugegriffen wird, unterstützen die meisten DRAMs einen seitenweisen Betrieb bzw. Seitenmodus. Beim Seitenmodus wird die Reihen-Adresse an den DRAM und danach die Spalten-Adresse der ersten Speicherstelle übertragen, auf die zugegriffen werden soll. Um auf weitere Speicherstellen in derselben Reihe zuzugreifen, werden dann die Spalten-Adressen der weiteren Speicherstellen übermittelt, ohne die Reihen-Adresse erneut zu übertragen. Dadurch kann auf die weiteren Speicherstellen in einer kürzeren Zeit zugegriffen werden, als auf die anfängliche Speicherstelle, da die Reihen-Adresse nicht jedes Mal erneut übertragen werden muss. Die durch eine Reihen-Adresse ausgewählten Speicherstellen werden hier als eine "Seite" bezeichnet. Das Halten der Seite im ausgewählten bzw. geöffneten Zustand, so dass lediglich Spalten-Adressen verwendet werden, um auf andere Speicherstellen in derselben Seite zuzugreifen, wird als Offenhalten der Seite bezeichnet, und das Deselektieren der Reihe, so dass eine neue Reihen-Adresse für den Zugriff auf eine andere Speicherstelle übertragen werden kann, wird als Schließen der Seite bezeichnet. DRAMs, wie zum Beispiel SDRAMs beinhalten Bänke von Reihen und Spalten. In solchen DRAMs kann die Seite aus einer Reihe innerhalb einer Bank bestehen. Eine Seite wurde hier zwar unter Bezugnahme auf DRAMs beschrieben, eine Seite kann sich aber auch auf Speicherstellen in irgendeinem Speicher beziehen, die eine Speicherstelle für einen Zugriff in Abhängigkeit von einer Reihen-Adresse und einer Spalten-Adresse selektiert.Around a shortened one Waiting time or delay to allow ("latency") when multiple memory locations in the same row are accessed sequentially will support Most DRAMs perform page mode or page mode. In page mode is the row address to the DRAM and then the column address of the first Transfer memory location, to be accessed. To more storage locations in the same row, then the column addresses of the transmitted to further storage locations, without retransmitting the row address. This can be up the more memory locations are accessed in a shorter time, than on the initial one Location because the row address does not retransmit every time must become. The memory locations selected by a row address are referred to here as a "page". The Keep the page in the selected one or opened State, so only column addresses are used to accessing other locations in the same page is called Keeping the page open, and deselecting the row, giving a new row address for accessing another one Transfer storage location can be, is called closing the page designates. DRAMs, such as SDRAMs include Benches of Rows and columns. In such DRAMs, the page can be out of a row within a bank. One page was indeed under here Reference to DRAMs described a page may as well refer to memory locations in any memory which is a memory location for one Access dependent selected from a row address and a column address.

Der Seitenmodus ist jedoch nicht ohne Nachteil. Der Seitenmodus wird insbesondere durch das Halten der Seite innerhalb des DRAM im selektierten Zustand gehemmt. Bei asynchronen DRAMs wird die Reihe selektiert durch Aktivieren eines Reihen-Adressen-Impuls-Signals (RAS) und Senden der Reihen-Adresse auf den Adressen-Leitungen. Bei synchronen DRAMs wird ein Aktivierungsbefehl zusammen mit der Reihen-Adresse an den DRAM übertragen. In Abhängigkeit von der Reihen-Adresse liest der DRAM die Seite in eine temporäre Speicherstelle, die mit dem DRAM-Speicher gekoppelt ist (beispielsweise dem Leseverstärker, der zum Lesen der Daten in den Speicherstellen oder in einer anderen getakteten Speichervorrichtung verwendet wird). Die Seite verbleibt so lange in dem temporären Speicher wie die Seite geöffnet ist (z.B. so lange wie das Adressen-Impuls-Signal RAS in einem asynchronen DRAM aktiviert bleibt oder bis in einem synchronen DRAM ein Befehl gesendet wird, die Reihe zu schließen). Dadurch wird, wenn ein Zugriff auf eine Speicherstelle in einer anderen Seite erfolgen soll, der Zugriff verzögert, während die vorhergehende Seite geschlossen wird (durch ein „Deassert"-Adressen-Impuls-Signal RAS oder durch Senden des Befehls, die Seite zu schließen). Die verlaufende Zeit, während die vorangehende Seite geschlossen wird, verlängert die Verzögerung für diesen Zugriff im Vergleich dazu, wenn die Seite mit der Vervollständigung des vorgehenden Zugriffs geschlossen worden wäre.Of the However, page mode is not without its disadvantage. The page mode becomes in particular by holding the page within the DRAM in the selected state inhibited. For asynchronous DRAMs, the row is selected by activating a row address strobe signal (RAS) and sending the row address on the address lines. For synchronous DRAMs, an activation command is used together with the Transfer row address to the DRAM. Dependent on from the row address, the DRAM reads the page into a temporary memory location, which is coupled to the DRAM memory (for example, the sense amplifier, the for reading the data in the memory locations or in another clocked one Storage device is used). The page stays that way in the temporary Memory like the page opened is (for example, as long as the address pulse signal RAS in an asynchronous DRAM remains active or sent a command in a synchronous DRAM will close the series). This will, when accessing a memory location in a other side, the access is delayed while the previous page is closed (by a "Deassert" address pulse signal RAS or by sending the command to close the page). The running time while the closed previous page, extends the delay for this Access compared to when the page with the completion the previous access would have been closed.

Typischerweise sind Speicher-Controller so konfiguriert, um einen Seitenmodus zu ermöglichen oder zu deaktivieren, und können auf unterschiedliche Strategien für den Seitenmodus programmiert werden. Die existierenden Mechanismen erlauben jedoch keine Feinzugriffs-Steuerung darüber, ob eine Seite, die mit einem bestimmten Speicherzugriff korrespondiert, in geöffnetem Zustand beibehalten werden soll oder nicht. Dadurch werden Seiten regelmäßig geschlossen, auch wenn es vorteilhaft. wäre, diese im geöffneten Zustand zu halten, und die Seiten werden regelmäßig in geöffnetem Zustand gehalten, auch wenn es vorteilhaft wäre, diese zu schließen.typically, Memory controllers are configured to enter a page mode allow or to disable, and can be programmed to different strategies for the page mode. However, the existing mechanisms do not allow fine-access control about that, whether a page that corresponds to a specific memory access in open State should be maintained or not. This will become pages regularly closed, even if it is advantageous. would, these in the open Condition, and the pages are regularly kept open, too if it were beneficial to close this.

Zusammenfassung der ErfindungSummary the invention

Die oben genannten Probleme werden zum überwiegenden Teil gelöst durch ein System mit einem Agent und einem Speicher-Controller, wie hier beschrieben. Der Agent kann Transaktionen initiieren, die auf einen Speicher gerichtet sind, an den der Speicher-Controller gekoppelt ist (der Speicher kann z.B. eine Art von DRAM sein). Speicher-Transaktionen können eine Seiten-Hinweis-Angabe enthalten. Die Seiten-Hinweis-Angabe wird während der Transaktion durch den Agent übermittelt und kann einen Hinweis enthalten, ob die durch die Transaktion adressierte Seite offengehalten oder geschlossen werden soll. In anderen Worten kann die Angabe einen Hinweis durch den Agent hinsichtlich des Schließens oder des Offenhaltens der Seite darstellen. Ein Agent kann anzeigen, dass die Seite offengehalten werden soll, wenn eine zusätzliche Transaktion oder Transaktionen innerhalb der gleichen Seite des Speichers wahrscheinlich sind (z.B. wenn der Agent selbst zusätzliche Transaktionen innerhalb derselben Seite übermittelt oder übermitteln wird). In solchen Fällen kann der Agent mittels der Seiten-Hinweis-Angabe anzeigen, dass die betreffende Seite geöffnet bleiben soll. Die zusätzlichen Transaktionen können Seitenmodus-Hinweis-Verzögerungen erfahren. In anderen Fällen kann der Agent anzeigen, dass die Seite geschlossen werden soll. Zusätzliche Transaktionen oder Seiten können die für das Schließen der Seite erforderliche Verzögerung nicht erfahren, wenn die Seite in Reaktion auf den Seiten-Hinweis geschlossen wird. Dadurch kann in dem System aufgrund des effizienteren Einsatzes des Seitenmodus eine Verringerung der gesamten Speicher-Verzögerung realisiert werden.The above problems are solved by the majority a system with an agent and a memory controller as described herein. The agent can initiate transactions that are in memory to which the memory controller is coupled (the Memory can e.g. a kind of DRAM). Memory transactions can include a page hint indication. The page hint is during the transaction is submitted by the agent and may contain an indication of whether the one addressed by the transaction Page to be kept open or closed. In other words the indication may be an indication by the agent regarding closing or of keeping the page open. An agent can show that the page should be kept open if an additional Transaction or transactions within the same page of the Memory are likely (e.g., if the agent itself is additional Transmit or transmit transactions within the same page becomes). In such cases the agent can use the page hint indication to indicate that the page in question remains open should. The additional Transactions can cause page mode hint delays Experienced. In other cases the agent can indicate that the page should be closed. additional Transactions or pages can the for the closing the page required delay Do not learn if the page in response to the page hint is closed. This can be due to the more efficient in the system Using the page mode realized a reduction in the total memory delay become.

Der Speicher-Controller kann eine Seiten-Hinweis-Angabe empfangen. Beim Zugreifen auf die Speicherstelle(n) in dem Speicher in Reaktion auf die Speicher-Transaktion, kann der Speicher-Controller in Abhängigkeit von der Seiten-Hinweis-Angabe die Seite im geöffneten Zustand beibehalten oder schließen. Auf diese Weise wird eine Feinzugriffs-Steuerung zur Verfügung gestellt darüber, welche Seiten in geöffnetem Zustand bleiben und welche Seiten geschlossen werden. Das heißt, dass jeder Agent auf der Basis von Transaktion zu Transaktion entscheiden kann, ob bestimmte Seiten geöffnet bleiben sollen oder geschlossen werden sollen. Da der anfragende Agent über Informationen verfügen kann, ob zusätzliche Transaktionen für diese Seite wahrscheinlich sind, und eine entsprechende Seiten-Hinweis-Angabe übermitteln kann, können Seiten häufiger geöffnet bleiben, wenn es vorteilhaft ist, dies zu tun und die Seiten können häufiger geschlossen werden, wenn es vorteilhaft ist, dies zu tun.Of the Memory controller can receive a page hint indication. At the Accessing the memory location (s) in the memory in response on the store transaction, The memory controller may page depending on the page hint indication in the open Maintain or close state. In this way, a fine-access control is provided about that, which pages in open State and which pages are closed. It means that Each agent will decide on a transaction-by-transaction basis can see if certain pages remain open should or should be closed. Because the requesting agent has information can have, whether additional Transactions for this page is likely, and submit a corresponding page hint indication can, can Pages more often open stay if it is beneficial to do so and the pages can be closed more frequently if it is beneficial to do so.

Allgemein formuliert wird ein System betrachtet, das einen Agent und einen Speicher-Controller umfasst. Der Agent ist so konfiguriert, dass er eine erste Transaktion initiiert und eine Seiten-Hinweis-Angabe während der ersten Transaktion übermittelt. Die Seiten-Hinweis-Angabe zeigt an, ob eine durch die erste Transaktion adressierte Seite geöffnet bleiben soll oder nicht. Der Speicher-Controller ist zum Empfangen der Seiten-Hinweis-Angabe gekoppelt und so konfiguriert, dass er die Seite in einem an den Speicher-Controller gekoppelten Speicher in Abhängigkeit von der Seiten-Hinweis-Angabe geöffnet halten kann.Generally formulated is considered a system that has an agent and a Memory controller includes. The agent is configured to he initiates a first transaction and a page hint indication while the first transaction. The page hint indication indicates whether one by the first transaction addressed page opened should stay or not. The memory controller is to receive the page hint indication coupled and configured so that it fits the page in one of the Memory controller coupled memory depending on the page hint indication keep it open can.

Außerdem wird ein Agent beschrieben. Der Agent umfasst einen Schaltkreis, der so konfiguriert ist, dass er eine erste Transaktion initiiert und eine Seiten-Hinweis-Angabe während der ersten Transaktion übermittelt. Die Seiten-Hinweis-Angabe zeigt an, ob eine durch die erste Transaktion adressierte Seite geöffnet bleiben soll oder nicht.In addition, will an agent described. The agent includes a circuit that is configured to initiate a first transaction and a page hint while the first transaction. The page hint indication indicates whether one by the first transaction addressed page opened should stay or not.

Darüber hinaus wird ein Speicher-Controller betrachtet, der eine Wartereihe und einen daran gekoppelten Schaltkreis umfasst. Die Wartereihe ist eingerichtet, um eine erste Transaktion und eine zu der ersten Transaktion korrespondierende Seiten-Hinweis-Angabe zu empfangen. Die Seiten-Hinweis-Angabe zeigt an, ob eine durch die erste Transaktion adressierte Seite geöffnet bleiben soll oder nicht. Der Schaltkreis ist so konfiguriert, dass er mit einem durch die erste Transaktion adressierten Speicher kommuniziert, wobei der Schaltkreis konfiguriert ist, um die Seite in Abhängigkeit von der Seiten-Hinweis-Angabe wahlweise geöffnet zu halten.Furthermore Consider a memory controller that has a queue and comprises a circuit coupled thereto. The queue is set up, a first transaction and one corresponding to the first transaction Side Note specification to recieve. The page hint indication indicates whether a through the first transaction addressed page should remain open or not. The circuit is configured to go with one through the first transaction addressed memory communicates with the Circuit is configured to the side in dependence from the page hint indication optionally kept open.

Es wird ferner eine Vorrichtung beschrieben, wobei eine erste Transaktion und eine korrespondierende Seiten-Hinweis-Angabe empfangen werden. Die Seiten-Hinweis-Angabe zeigt an, ob eine durch die erste Transaktion adressierte Seite geöffnet bleiben soll oder nicht. Die Seite wird in Reaktion auf die Seiten-Hinweis-Angabe wahlweise im geöffneten Zustand gehalten.It Furthermore, a device is described, wherein a first transaction and a corresponding page hint indication. The Side Note specification indicates whether a page addressed by the first transaction stay open should or not. The page will be in response to the page hint indication optionally in the open Condition kept.

Kurze Beschreibung der ZeichnungenShort description the drawings

Andere Aufgaben und Vorteile der Erfindung werden aus der folgenden Beschreibung offenbar unter Bezugnahme auf die beigefügten Zeichnungen, wobei:Other Objects and advantages of the invention will become apparent from the following description apparently with reference to the accompanying drawings, in which:

1 ist ein Blockdiagramm einer Ausführungsform eines Systems. 1 Figure 10 is a block diagram of one embodiment of a system.

2 ist ein Blockdiagramm einer Ausführungsform eines Adressen-Abschnitts eines in 1 gezeigten Bus. 2 is a block diagram of one embodiment of an address portion of an in 1 shown bus.

3 ist ein Blockdiagramm einer Ausführungsform eines Speicher-Controllers. 3 Figure 12 is a block diagram of one embodiment of a memory controller.

4 ist ein Flussdiagramm, das den Betrieb einer Ausführungsform eines in 3 gezeigten Kanal-Steuerungs-Schaltkreises während der Bearbeitung einer Transaktion zeigt. 4 FIG. 4 is a flowchart illustrating the operation of one embodiment of an in 3 shown channel control circuit during processing of a transaction.

5 ist ein Flussdiagramm, das den Betrieb einer Ausführungsform eines DMA-Agent zeigt. 5 FIG. 10 is a flowchart showing the operation of one embodiment of a DMA agent. FIG.

6 ist ein Flussdiagramm, das den Betrieb einer Ausführungsform eines Prozessor-Agent zeigt. 6 FIG. 10 is a flowchart illustrating the operation of one embodiment of a processor agent. FIG.

7 ist ein Blockdiagramm einer Ausführungsform eines Agent. 7 is a block diagram of one embodiment of an agent.

8 ist ein Blockdiagramm einer Ausführungsform eines Datenträger-Mediums. 8th FIG. 10 is a block diagram of one embodiment of a data carrier medium. FIG.

Die vorliegende Erfindung kann in alternativen Ausführungsformen dargestellt werden sowie unterschiedlichen Modifikationen unterzogen werden, so dass besondere Ausführungsformen der Erfindung nur als Beispiel in den Zeichnungen gezeigt und nachfolgend im Detail beschrieben werden. Es ist jedoch selbstverständlich, dass die Zeichnungen und die detaillierte Beschreibung nicht dazu dienen soll, die vorliegende Erfindung auf diese bestimmten beschriebenen Ausführungsformen zu beschränken, sondern nach der gegenteiligen Intention sämtliche Modifikationen, Äquivalenten und Alternativen abzudecken, die unter den Erfindungsgedanken fallen und innerhalb des Schutzbereichs der vorliegenden Erfindung liegen, wie er durch die beigefügten Ansprüche definiert ist.The The present invention may be illustrated in alternative embodiments as well as undergo various modifications, so that special embodiments the invention shown only as an example in the drawings and below will be described in detail. It is self-evident that the drawings and the detailed description are not to serve, the present invention described in this particular embodiments to restrict, but according to the contrary intention, all modifications, equivalents and to cover alternatives that fall under the inventive concept and are within the scope of the present invention, as he is attached by the claims is defined.

Detaillierte Beschreibung der bevorzugten AusführungsformenDetailed description of the preferred embodiments

Überblick über das SystemOverview of the system

In 1 ist ein Blockdiagramm einer Ausführungsform eines System 10 gezeigt. Es sind auch andere Ausführungsformen möglich und werden betrachtet. Bei der in 1 gezeigten Ausführungsform umfasst das System 10 Prozessoren 12A12B, einen L2-Cache 14, einen Speicher-Controller 16, ein Paar von Eingabe/Ausgabe (I/O)-Brücken 20A20B sowie Eingabe/Ausgabe-Schnittstellen 22A22D. Das System 10 kann einen Bus 24 zum Verbinden der verschiedenen Komponenten des Systems 10 umfassen. Wie in 1 dargestellt, kann der Bus 24 insbesondere Entscheidungs-Leitungen 28 umfassen, einen Adressen-Bus 30, Antwort-Leitungen 32, einen Daten-Bus 34 und eine Zeitsignal-Leitung oder Zeitsignal-Leitungen 36. Wie in 1 dargestellt, ist jeder der Prozessoren 12A12B, der L2-Cache 14, der Memory-Controller 16 und die Eingabe/Ausgabe-Brücken 20A20B an den Bus 24 gekoppelt. Dadurch kann bei der dargestellten Ausführungsform jeder der Prozessoren 12A12B, der L2-Cache 14, der Speicher-Controller 16 und die Eingabe/Ausgabe-Brücken 20A20B ein Agent auf dem Bus 24 sein. Insbesondere kann jeder Agent an die Zeitsignal-Leitungen) 36 und die Leitungen innerhalb des Bus 24 gekoppelt sein, welche die Signale tragen, die der betreffende Agent abtastet. und/oder treibt. Die Eingabe/Ausgabe-Brücke 20A ist an die Eingabe/Ausgabe-Schnittstellen 22A22B gekoppelt und die Eingabe/Ausgabe-Brücke 20B ist an die Eingabe/Ausgabe-Schnittstellen 22C22D gekoppelt. Der L2-Cache 14 ist an den Speicher-Controller 16 gekoppelt, der seinerseits an einen Speicher 26 gekoppelt ist.In 1 is a block diagram of one embodiment of a system 10 shown. Other embodiments are possible and contemplated. At the in 1 In the embodiment shown, the system comprises 10 processors 12A - 12B , an L2 cache 14 , a memory controller 16 , a pair of input / output (I / O) bridges 20A - 20B as well as input / output interfaces 22A - 22D , The system 10 can a bus 24 for connecting the various components of the system 10 include. As in 1 shown, the bus can 24 in particular decision lines 28 include, an address bus 30 , Answer lines 32 , a data bus 34 and a time signal line or time signal lines 36 , As in 1 represented is each of the processors 12A - 12B , the L2 cache 14 , the memory controller 16 and the input / output bridges 20A - 20B to the bus 24 coupled. Thereby, in the illustrated embodiment, each of the processors 12A - 12B , the L2 cache 14 , the memory controller 16 and the input / output bridges 20A - 20B an agent on the bus 24 be. In particular, each agent can be connected to the time signal lines) 36 and the wires inside the bus 24 be coupled, which carry the signals that the agent in question scans. and / or drives. The input / output bridge 20A is to the input / output interfaces 22A - 22B coupled and the input / output bridge 20B is to the input / output interfaces 22C - 22D coupled. The L2 cache 14 is to the memory controller 16 coupled, in turn, to a memory 26 is coupled.

Allgemein ausgedrückt können die Agenten an den Transaktionen auf dem Bus 24 partizipieren. Der hier verwendete Begriff "Agent" bezieht sich auf eine Vorrichtung, die in der Lage ist, auf dem Bus zu kommunizieren. Der Agent kann ein anfragender Agent sein, wenn der Agent in der Lage ist, Transaktionen auf dem Bus zu initiieren, und der Agent kann ein antwortender Agent sein, wenn der Agent in der Lage ist, auf Transaktionen zu antworten, die von einem anfragenden Agent initiiert wurden. Ein bestimmter Agent kann die Fähigkeit besitzen, sowohl ein anfragender Agent als auch ein antwortender Agent zu sein. Ferner stellt eine "Transaktion" eine Kommunikation auf den Bus dar. Die Transaktion kann einen Adressen-Transfer und optional einen Daten-Transfer beinhalten. Transaktionen können sowohl Lese-Transaktionen (Transfer von Daten von dem antwortenden Agent an den anfragenden Agent) als auch Schreib-Transaktionen (Transfer von Daten von dem anfragenden Agent an den antwortenden Agent) sein. Transaktionen können ferner unterschiedliche Kohärenz-Befehle beinhalten, die einen Transfer von Daten beinhalten können oder nicht.Generally speaking, the agents can participate in the transactions on the bus 24 participate. The term "agent" as used herein refers to a device capable of communicating on the bus. The agent may be a requesting agent when the agent is capable of initiating transactions on the bus, and the agent may be a responding agent when the agent is able to respond to transactions made by a requesting agent were initiated. A particular agent may have the ability to be both a requesting agent and a responding agent. Further, a "transaction" represents communication on the bus. The transaction may include an address transfer and optionally a data transfer. Transactions can be both read transactions (transfer of data from the answering agent to the requesting agent) and write transactions (transfer of data from the requesting agent to the answering agent). Transactions may also include different coherency commands, which may or may not involve a transfer of data.

Transaktionen auf den Bus. 24 können auf Speicherstellen in dem Speicher 26 ("Speicher-Transaktionen") gerichtet sein. Der Speicher-Controller 16 ist der antwortende Agent für die Speicher-Transaktionen, sofern die Speicher-Transaktionen nicht den L2-Cache 14 betreffen, wobei in diesem Fall der L2-Cache 14 der antwortende Agent sein kann. Bei anderen Ausführungsformen kann auch kein L2-Cache 14 vorgesehen sein und der Speicher-Controller 16 kann der antwortende Agent für alle Speicher-Transaktionen sein.Transactions on the bus. 24 can access memory locations in the memory 26 ("Storage Transactions"). The memory controller 16 is the answering agent for the memory transactions unless the memory transactions are the L2 cache 14 In this case, the L2 cache 14 the answering agent can be. In other embodiments, no L2 cache can also be used 14 be provided and the memory controller 16 can be the answering agent for all storage transactions.

Speicher-Transaktionen können eine Seiten-Hinweis-Angabe umfassen. Die Seiten-Hinweis-Angabe kann durch den anfragenden Agent während der Transaktion übermittelt werden und ein Hinweis dafür sein, ob die durch die Transaktion adressierte Seite geöffnet bleiben oder geschlossen werden. Mit anderen Worten kann die Seiten-Hinweis-Angabe ein Hinweis durch den anfragenden Agent hinsichtlich des Schließens oder des Offenhaltens der Seite sein. Beispielsweise kann ein Agent anzeigen, dass die Seite geöffnet bleiben soll, wenn eine zusätzliche Transaktion oder Transaktionen innerhalb derselben Seite des Speichers wahrscheinlich sind. Ein anfragender Agent kann beispielsweise mehrere Transaktionen durchführen, um auf einen Datenblock zuzugreifen, der größer ist als die Datenmenge, die in einer Transaktion übertragbar ist, und kann dadurch bald die zusätzlichen. Transaktionen durchführen, um auf den gesamten Datenblock zuzugreifen. Ein anfragender Agent kann eine Wartereihe von ausgehenden Transaktionen beinhalten, und der anfragende Agent kann die Wartereihe überprüfen; um festzustellen, ob sich in der Wartereihe zusätzliche Transaktionen befinden, welche dieselbe Seite betreffen, wie eine bereits initiierte Transaktion. Ein anfragender Agent kann sich in einem Zustand befinden, in dem es wahrscheinlich ist, dass zusätzliche Transaktionen derzeit nicht in der Wartereihe aufgereiht werden (z.B. ein Prozessor stellt fest, dass er sich in einer Schleife befindet und dadurch bei nachfolgenden Iterationen der Schleife Transaktionen zu nahegelegenen Adressen erzeugt werden). Bei irgendeinem dieser oder anderen Fällen kann der anfragende Agent über die Seiten-Hinweis-Angabe anzeigen, dass die Seite geöffnet bleiben soll: Die zusätzlichen Transaktionen erfahren dann keine durch den Seitenmodus bedingte Verzögerungen. In anderen Fällen kann der Agent anzeigen, dass die Seite geschlossen werden soll. Wenn die Seite in Reaktion auf diesen Hinweis geschlossen wird, erfahren zusätzliche Transaktionen auf andere Seiten eine für das Schließen der Seite erforderliche Verzögerung: Aufgrund der effizienteren Anwendung des Seitenmodus, kann das System 10 eine Verringerung der gesamten Speicher-Verzögerung realisieren.Memory transactions may include a page hint indication. The page hint indication may be transmitted by the requesting agent during the transaction and may indicate whether the page addressed by the transaction is left open or closed. In other words, the page hint indication may be an indication by the requesting agent regarding the closing or keeping open of the page. For example, an agent may indicate that the page should remain open when An additional transaction or transactions within the same page of the store are likely. For example, a requesting agent may perform multiple transactions to access a data block that is larger than the amount of data that is transferable in a transaction, and may soon become the additional. Perform transactions to access the entire data block. A requesting agent may include a queue of outgoing transactions, and the requesting agent may check the queue; to determine if there are any additional queues in the queue that are related to the same page as an already initiated transaction. A requesting agent may be in a state where it is likely that additional transactions will not currently be queued (eg, a processor finds itself in a loop and thereby proximate transactions on subsequent iterations of the loop Addresses are generated). In any of these or other cases, the requesting agent may indicate, through the page hint indication, that the page should remain open: the additional transactions will not experience any page mode delays. In other cases, the agent may indicate that the page should be closed. If the page is closed in response to this alert, additional transactions to other pages will experience a delay to close the page: due to the more efficient use of page mode, the system may 10 realize a reduction of the total memory delay.

Der Speicher-Controller 16 kann die Seiten-Hinweis-Angabe empfangen. Beim Zugreifen auf die Speicherstelle(n) in Reaktion auf die Speicher-Transaktion kann der Speicher-Controller 16 die Seite in Reaktion auf die Seiten-Hinweis-Angabe schließen oder in dem geöffneten Zustand beibehalten. Auf diese Weise wird eine Feinzugriffs-Steuerung bereitgestellt, welche Seiten offen zu halten sind und welche Seiten zu schließen sind. Das heißt, dass jeder anfragende Agent auf der Basis von Transaktion zu Transaktion anzeigen kann, ob bestimmte Seiten offengehalten oder geschlossen werden sollen. Da der anfragende Agent Informationen darüber haben kann, ob eine zusätzliche Transaktion zu der betreffenden Seite wahrscheinlich ist oder nicht, und eine entsprechende Seiten-Hinweis-Angabe übermitteln kann, können Seiten häufiger offengehalten werden, wenn es vorteilhaft ist, dies zu tun, und Seiten können häufiger geschlossen gehalten werden, wenn es vorteilhaft ist, dies zu tun.The memory controller 16 can receive the page hint indication. When accessing the memory location (s) in response to the memory transaction, the memory controller may 16 close the page in response to the page hint indication or keep it in the open state. In this way, a fine access control is provided which pages to keep open and which pages to close. That is, each requesting agent can indicate, on a transaction-by-transaction basis, whether certain pages should be kept open or closed. Since the requesting agent may have information about whether an additional transaction to the page in question is likely or not and may provide a corresponding page hint indication, pages may be more frequently kept open if it is beneficial to do so, and pages can be kept closed more frequently if it is beneficial to do so.

In einer Ausführungsform kann die Seiten-Hinweis-Angabe während der Adressen-Phase der Transaktion übermittelt werden. Bei anderen Ausführungsformen kann die Seiten-Hinweis-Angabe während der Daten-Phase oder zu irgendeinem anderen Zeitpunkt in der Transaktion übermittelt werden. Bei einer Ausführungsform kann die Seiten-Hinweis-Angabe ein Signal sein, das bestätigt "asserted" werden kann, um die Seite anzuzeigen, die geöffnet bleiben soll. Das Signal kann "deasserted" werden, um anzuzeigen, dass die Seite geschlossen werden soll. In anderen Ausführungsformen kann der Seiten-Hinweis in die Befehls-Signale auf dem Bus 24 codiert werden (z.B. die während der Adressen-Phase übermittelten Befehls-Signale) oder in irgendeiner anderen geeigneten Form von dem anfragenden Agent an den Speicher-Controller 16 übermittelt werden.In one embodiment, the page hint indication may be communicated during the address phase of the transaction. In other embodiments, the page hint indication may be communicated during the data phase or at some other time in the transaction. In one embodiment, the page hint indication may be a signal that can be asserted to indicate the page that is to remain open. The signal may be deasserted to indicate that the page should be closed. In other embodiments, the page hint may be in the command signals on the bus 24 encoded (eg, the command signals transmitted during the address phase) or in any other suitable form from the requesting agent to the memory controller 16 be transmitted.

Der Bus 24 kann ein geteilter Transaktions-Bus sein, wie in der dargestellten Ausführungsform. Ein geteilter Transaktions-Bus trennt die Adressen- und Daten-Abschnitte jeder Transaktion und erlaubt es, den Adressen-Abschnitt (bezogen auf die Adressen-Phase und den Daten-Abschnitt (bezogen auf die Daten-Phase) unabhängig voneinander zu übermitteln bzw. zu bearbeiten. Bei der dargestellten Ausführungsform wird der Adressen-Bus 30 und der Daten-Bus 34 (unter Verwendung von Signalen auf den Ausgleichs-Leitungen 28) unabhängig voneinander abgearbeitet. Jede Transaktion beinhaltet sowohl Adressen als auch Daten und beinhaltet dadurch einen Ausgleich für den Adressen-Bus 30, eine Adressen-Phase auf dem Adressen-Bus 30, einen Ausgleich für den Daten-Bus 34, und eine Daten-Phase auf dem Daten-Bus 34. Zusätzlich können kohärente Transaktionen eine Antwort-Phase auf den Antwort-Leitungen 32 zum Kommunizieren von Kohärenz-Informationen nach der Adressen-Phase beinhalten. Weiter unten werden zusätzliche Details bezüglich einer Ausführungsform des Bus 24 angegeben. Das Bus-Zeitsignal CLK auf der/den Zeitsignal-Leitungen 36 definiert den Zeitsignal-Zyklus für den Bus 24.The bus 24 may be a shared transaction bus, as in the illustrated embodiment. A shared transaction bus separates the address and data portions of each transaction and allows the address portion (related to the address phase and the data portion (related to the data phase) to be independently transmitted In the illustrated embodiment, the address bus becomes 30 and the data bus 34 (using signals on the equalization lines 28 ) processed independently. Each transaction includes both addresses and data, thereby balancing the address bus 30 , an address phase on the address bus 30 , compensation for the data bus 34 , and a data phase on the data bus 34 , Additionally, coherent transactions may have a response phase on the response lines 32 for communicating coherency information after the address phase. Further below, additional details regarding an embodiment of the bus will be provided 24 specified. The bus time signal CLK on the time signal lines 36 defines the time signal cycle for the bus 24 ,

Der Bus 24 kann als Leitung ausgebildet sein. Der Bus 24 kann irgendeine geeignete Signal-Technik verwenden. Beispielsweise kann in einer Ausführungsform die differenzielle Signal-Technik für eine Signal-Übermittlung mit hoher Geschwindigkeit verwendet werden. In anderen Ausführungsformen kann eine andere Signal-Technik verwendet werden (z.B. TTL, CMOS, GTL, HSTL etc.).The bus 24 can be designed as a line. The bus 24 can use any suitable signal technique. For example, in one embodiment, the differential signal technique may be used for high speed signal transmission. In other embodiments, a different signal technique may be used (eg, TTL, CMOS, GTL, HSTL, etc.).

Die Prozessoren 12A12B können für irgendeine Architektur von Instruktions-Sätzen ausgebildet sein und Programme ausführen, die gemäß dieser Architektur von Instruktions-Sätzen geschrieben sind. Exemplarische Instruktions-Satz-Architekturen können die MEPS-Instruktions-Satz-Architektur beinhalten (einschließlich des MIPS-3D und der MIPS MDMX-anwendungsspezifischen Erweiterungen), die IA-32- oder IA-64-Instruktions-Satz-Architekturen von Intel Corp. entwickelt, die PowerPC-Instruktions-Satz-Architektur, die Alpha-Instruktionssatz-Architektur, die ARM-Instruktions-Satz-Architektur oder irgendeine andere Instruktions-Satz-Architektur.The processors 12A - 12B may be designed for any instruction set architecture and execute programs written in instruction sets according to this architecture. Exemplary instruction set architectures may include the MEPS instruction set architecture (including the MIPS-3D and the MIPS MDMX application-specific extensions), the Intel Corp. IA-32 or IA-64 instruction set architectures. developed the PowerPC-In construction set architecture, the Alpha Instruction Set Architecture, the ARM Instruction Set Architecture or any other Instruction Set Architecture.

Der L2-Cache 14 ist ein Hochgeschwindigkeits-Cache-Speicher. Der L2-Cache 14 wird als "L2" bezeichnet, da die Prozessoren 12A12B Caches mit dem internen Level 1 ("L1") unterstützen. Wenn Ll-Caches in den Prozessoren 12A12B nicht enthalten sind, kann der L2-Cache 14 ein L1-Cache sein. Wenn ferner Cache-Speicher unterschiedlicher Level in den Prozessoren 12A12B enthalten sind, kann der L2-Cache 14 ein Cache höheren Levels sein als L2. Der L2-Cache 14 kann irgendeine Organisation benutzen, einschließlich der direkten Abbildung, dem assoziativen Satz und der vollständig assoziativen Organisationen. In einer bestimmten Ausführungsform kann der L2-Cache 14 ein 512-Kbyte-4-Wege Assoziativ-Satz-Cache sein mit 32 Bit-Cache-Leitungen. Ein Assoziativ-Satz-Cache ist ein in multiplen Sätzen angeordneter Cache, wobei jeder Satz zwei oder mehr Einträge aufweist. Ein Abschnitt der Adresse (der "Index") wird verwendet, um einen dieser Sätze zu selektieren (das heißt jedes Kodieren des Index selektiert einen unterschiedlichen Satz). Die Einträge in dem selektierten Satz sind dazu geeignet, die Cache-Leitung zu speichern, auf welche die Adresse zugreift. Jeder der Einträge innerhalb des Satzes wird bezeichnet als ein "Weg" des Satzes. Der Bereich der Adresse, der nach der Entfernung des Index (und des Offset innerhalb der Cache-Leitung) verbleibt, wird als "Kennzeichen" bezeichnet und ist in jedem Eintrag gespeichert, um die Cache-Leitung in diesem Eintrag zu identifizieren. Die gespeicherten Kennzeichen werden mit dem korrespondierenden Kennzeichen-Abschnitt der Adresse einer Speicher-Transaktion verglichen, um festzustellen, ob die Speicher-Transaktion den Cache trifft oder verfehlt, und wird verwendet, um den Weg zu selektieren, auf dem der Treffer erfasst wird (wenn ein Treffer detektiert wird).The L2 cache 14 is a high-speed cache memory. The L2 cache 14 is called "L2" because the processors 12A - 12B Support caches with internal level 1 ("L1"). If ll caches in the processors 12A - 12B not included can be the L2 cache 14 be an L1 cache. Also, if cache levels of different levels in the processors 12A - 12B may contain the L2 cache 14 be a higher level cache than L2. The L2 cache 14 can use any organization, including direct mappings, associative sentences and fully associative organizations. In a particular embodiment, the L2 cache may be 14 be a 512 kbyte 4 way associative sentence cache with 32 Bit cache lines. An associative set cache is a multi-sentence cache, each set having two or more entries. A portion of the address (the "index") is used to select one of these sentences (that is, each coding of the index selects a different sentence). The entries in the selected set are suitable for storing the cache line accessed by the address. Each of the entries within the sentence is referred to as a "way" of the sentence. The portion of the address remaining after the removal of the index (and the offset within the cache line) is referred to as a "tag" and is stored in each entry to identify the cache line in that entry. The stored tags are compared with the corresponding tag portion of the address of a memory transaction to determine if the memory transaction hits or misses the cache, and is used to select the path on which the hit is detected (if a hit is detected).

Der Speicher-Controller 16 ist konfiguriert, um auf den Speicher 26 in Reaktion auf die Speicher-Transaktionen zuzugreifen, die auf dem Bus 24 empfangen werden. Der Speicher-Controller 16 empfängt ein Treffer-Signal vom L2-Cache 14, und wenn in dem L2-Cache 14 ein Treffer für eine Speicher-Transaktion detektiert wird, antwortet der Speicher-Controller 16 nicht auf diese Memory-Transaktion. Wenn durch den L2-Cache 14 eine Verfehlung festgestellt wird, oder die Speicher-Transaktion nicht durch den Cache zu bearbeiten ist, kann der Speicher-Controller 16 auf den Speicher 26 zugreifen, um eine Lese- oder Schreib-Operation durchzuführen. Der Speicher-Controller 16 kann ausgebildet sein, um auf irgendeinen aus der Vielzahl von Speichertypen zuzugreifen. Beispielsweise kann der Speicher-Controller 16 für synchrone dynamische Speicher mit wahlfreiem Zugriff (SDRAM) und insbesondere für SDRAM mit doppelter Datenrate (DDR) ausgebildet sein. Alternativ kann der Speicher-Controller ausgebildet sein für DRAM, Rambus DRAM (RDRAM), SRAM oder irgendeine andere geeignete Speichervorrichtung.The memory controller 16 is configured to access the memory 26 in response to the memory transactions that are on the bus 24 be received. The memory controller 16 receives a hit signal from the L2 cache 14 , and if in the L2 cache 14 a hit for a memory transaction is detected, the memory controller responds 16 not on this memory transaction. If through the L2 cache 14 If a misconduct is detected or the memory transaction can not be processed by the cache, the memory controller may 16 on the memory 26 access to perform a read or write operation. The memory controller 16 may be configured to access any of the plurality of memory types. For example, the memory controller 16 be designed for synchronous dynamic random access memory (SDRAM) and in particular for double data rate (DDR) SDRAM. Alternatively, the memory controller may be configured for DRAM, Rambus DRAM (RDRAM), SRAM, or any other suitable memory device.

Die Eingabe/Ausgabe-Brücken 20A20B verbinden eine oder mehrere Eingabe/Ausgabe-Schnittstellen (z.B. Eingabe/Ausgabe-Schnittstellen 22A22B für die Eingabe/Ausgabe-Brücke 20A und die Eingabe/Ausgabe-Schnittstellen 22C22D für die Eingabe/Ausgabe 20B) mit dem Bus 24. Die Eingabe/Ausgabe-Brücken 20A20B können dazu dienen, die elektrische Ladung auf den Bus 24 zu reduzieren, wenn mehr als eine Eingabe/Ausgabe-Schnittstelle 22A22B durch diese Eingabe/Ausgabe-Brücke überbrückt wird. Generell führt die Eingabe/Ausgabe-Brücke 20A Transaktionen auf dem Bus 24 für die Eingabe/Ausgabe-Schnittstellen 22A22B durch und leitet die an eine Eingabe/Ausgabe-Schnittstelle 22C22D gerichteten Transaktionen von dem Bus 24 an die Eingabe/Ausgabe-Schnittstelle 22C22D weiter. In einer Implementierung kann die Eingabe/Ausgabe-Brücke 20A eine Brücke zu einer PCI-Schnittstelle (z.B. Eingabe/Ausgabe-Schnittstelle 22A) und zu einer "Lightning-Data-Transport (LTD)"-Eingabe/Ausgabe-Struktur sein, die von Advanced Micro Devices Inc. entwickelt wurde (z.B. die Eingabe/Ausgabe-Schnittstelle 22B. Andere Eingabe/Ausgabe-Schnittstellen können durch die Eingabe/Ausgabe-Brücke 20B überbrückt sein. Andere Implementierungen können irgendeine Kombination von Eingabe/Ausgabe-Schnittstellen unter Verwendung irgendeiner Kombination von Eingabe/Ausgabe-Brücken überbrücken. Die Eingabe/Ausgabe-Schnittstellen 22A22D können einen oder mehrere serielle Schnittstellen beinhalten, Personal Memory Computer Card International Association (PCMCIA)-Schnittstellen, Ethernet-Schnittstellen (z.B. Media Access Control Level Interfaces), Peripheral Component Interconnect (PCI)-Schnittstellen, LDT-Schnittstellen etc.The input / output bridges 20A - 20B connect one or more input / output interfaces (eg input / output interfaces) 22A - 22B for the input / output bridge 20A and the input / output interfaces 22C - 22D for input / output 20B ) by bus 24 , The input / output bridges 20A - 20B can serve the electric charge on the bus 24 reduce if more than one input / output interface 22A - 22B is bridged by this input / output bridge. Generally, the input / output bridge performs 20A Transactions on the bus 24 for the input / output interfaces 22A - 22B and forwards the to an input / output interface 22C - 22D directed transactions from the bus 24 to the input / output interface 22C - 22D further. In one implementation, the input / output bridge 20A a bridge to a PCI interface (eg, input / output interface 22A) and a "Lightning Data Transport (LTD)" input / output structure developed by Advanced Micro Devices Inc. (eg, the input I / O interface 22B , Other input / output interfaces may be through the input / output bridge 20B be bridged. Other implementations may bridge any combination of input / output interfaces using any combination of input / output bridges. The input / output interfaces 22A - 22D may include one or more serial ports, Personal Memory Computer Card International Association (PCMCIA) interfaces, Ethernet interfaces (eg, Media Access Control Level Interfaces), Peripheral Component Interconnect (PCI) interfaces, LDT interfaces, etc.

Es ist festzustellen, dass das System 10 und insbesondere die Prozessoren 12A12B, der L2-Cache 14, der Speicher-Controller 16, die Eingabe/Ausgabe-Schnittstellen 22A22B, die Eingabe/Ausgabe-Brücken 20A20B und der Bus 24 in einem einzigen integrierten Schaltkreis integriert sein können, wie zum Beispiel als eine „system on a chip configuration". Der Speicher 26 kann auch in einer weiteren Konfiguration integriert sein. Alternativ kann eine oder mehrere Komponenten als separate integrierte Schaltkreise implementiert sein oder sämtliche Komponenten können je nach Bedarf als separate integrierte Schaltkreise implementiert sein. Es kann jeder Integrationsgrad verwendet werden.It should be noted that the system 10 and in particular the processors 12A - 12B , the L2 cache 14 , the memory controller 16 , the input / output interfaces 22A - 22B , the input / output bridges 20A - 20B and the bus 24 may be integrated into a single integrated circuit, such as a "system on a chip configuration." The memory 26 can also be integrated in another configuration. Alternatively, one or more components may be implemented as separate integrated circuits, or all components may be implemented as separate integrated circuits as needed. Any degree of integration can be used.

Es ist festzustellen, dass, obwohl in der dargestellten Ausführungsform ein geteilter Transaktions-Bus mit separatem Ausgleich für den Adressen- und Daten-Bus verwendet wird, andere Ausführungsformen mit nicht-geteilten Transaktions-Bussen mit einem einzigen Ausgleich für Adressen und Daten und/oder ein geteilter Transaktions-Bus verwendet werden kann, bei dem der Daten-Bus nicht explizit ausgeglichen wird. Je nach Wahl des Designs kann entweder ein zentrales Ausgleichs-Schema oder ein verteiltes Ausgleichs-Schema verwendet werden. Es ist festzustellen, dass, obwohl 1 Eingabe/Ausgabe-Schnittstellen 22A22D darstellt, die über die Eingabe/Ausgabe-Brücken 20A20B an den Bus 24 gekoppelt sind, andere Ausführungsformen ein oder mehrere Eingabe/Ausgabe-Schnittstellen umfassen können, die direkt an den Bus 24 gekoppelt sind, falls gewünscht.It should be noted that although in the dar embodiment, a split transaction bus with separate balance for the address and data bus is used, other embodiments with non-shared transaction buses with a single address and data balance and / or a shared transaction bus may be used, where the data bus is not explicitly balanced. Depending on the design choice, either a central compensation scheme or a distributed compensation scheme can be used. It should be noted that, though 1 Input / output interfaces 22A - 22D represents that over the input / output bridges 20A - 20B to the bus 24 coupled, other embodiments may include one or more input / output interfaces directly to the bus 24 coupled, if desired.

In 2 ist ein Blockdiagramm gezeigt, das exemplarisch Signale darstellt, wie sie auf dem Adressen-Bus 30 liegen können. Andere Ausführungsformen sind möglich und werden betrachtet. Bei der dargestellten Ausführungsform beinhaltet der Adressen-Bus 30 Adressen-Leitungen, die verwendet werden, um die Adresse der Transaktion (Addr[39:5]) bereitzustellen und ein Satz von Bytes (A_BYEN[31:0]) ermöglicht es anzuzeigen, welche Bytes auf dem Daten-Bus 34 während der Transaktion gelesen oder geschrieben werden, und ein Befehl (A_CMD[2:0]) wird verwendet, um die durchzuführende Transaktion (Lesen, Schreiben etc.) anzuzeigen, eine Transaktions-ID (A_ID[9:0]) wird verwendet, um die Transaktion zu identifizieren, ein Satz von Attributen (A_ATTR[n:0]) sowie ein Seiten-Hinweis-Signal (A_PAGE_HINT).In 2 a block diagram is shown exemplifying signals as they appear on the address bus 30 can lie. Other embodiments are possible and contemplated. In the illustrated embodiment, the address bus includes 30 Address lines that are used to provide the address of the transaction (Addr [39: 5]) and a set of bytes (A_BYEN [31: 0]) allows to indicate which bytes on the data bus 34 are read or written during the transaction, and a command (A_CMD [2: 0]) is used to indicate the transaction to be performed (read, write, etc.), a transaction ID (A_ID [9: 0]) is used to identify the transaction, a set of attributes (A_ATTR [n: 0]) and a page hint signal (A_PAGE_HINT).

Die Transaktions-ID kann verwendet werden, um die Adressen- und Daten-Phasen der Transaktion zu verbinden. Insbesondere kann der antwortende Agent den auf der Transaktions-ID gelieferten Wert als die Transaktions-ID für die Daten-Phase verwenden. Dementsprechend kann die Transaktions-ID ein Kennzeichen für die Transaktion sein. Ein Abschnitt der Transaktions-ID ist ein Agent-Identifizierer, der den anfragenden Agent identifiziert. Der Agent-Identifizierer kann beispielsweise auf den Bits 9:6 der Transaktions-ID liegen. Jeder Agent ist einem unterschiedlichen Agent-Identifizierer zugeordnet.The Transaction ID can be used to handle the address and data phases to join the transaction. In particular, the answering one Agent the value supplied on the transaction ID as the transaction ID for the Use data phase. Accordingly, the transaction ID a license plate for to be the transaction. A section of the transaction ID is a Agent identifier that identifies the requesting agent. The agent identifier may be on bits 9: 6 of the transaction ID, for example. Each agent is associated with a different agent identifier.

Der Satz von Attributen kann jeden Satz von zusätzlichen Attributen beinhalten, der in der Adressen-Phase übermittelt werden sollen. Beispielsweise können die Attribute einen Cache-Fähigkeits-Indikator umfassen, der anzeigt, ob die Transaktion in einem Cache innerhalb des anfragenden Agents verarbeitet werden kann oder nicht, einen Kohärenz-Indikator, der anzeigt, ob die Transaktion kohärent durchzuführen ist oder nicht, und einen Cachefähigkeits-Indikator für den L2-Cache 14. Je nach Bedarf können andere Ausführungsformen mehr, weniger oder andere Attribute verwenden.The set of attributes may include any set of additional attributes to be transmitted in the address phase. For example, the attributes may include a cache capability indicator indicating whether or not the transaction can be processed in a cache within the requesting agent, a coherency indicator indicating whether the transaction is coherent or not, and a Cache capability indicator for the L2 cache 14 , As needed, other embodiments may use more, fewer, or different attributes.

Das Seite-Hinweis-Signal kann verwendet werden, um die Seite-Hinweis-Angabe für die Transaktion zu übermitteln. Das Signal kann "asserted" werden, um anzuzeigen, dass die Seite geöffnet bleiben soll, und das Signal kann "deasserted" werden, um anzuzeigen, dass die Seite geschlossen werden soll, oder umgekehrt. Dadurch kann das Seite-Hinweis-Signal unter mehreren mit dem Bus 24 gekoppelten Agenten aufgeteilt werden. Ein Signal wird generell als bestätigt bzw. "asserted" definiert, wenn es auf einem niedrigen Spannungsniveau ist ("active low") oder wenn es auf einem hohen Spannungsniveau liegt ("active high"). Bei unterschiedlichen Signalen kann ein Signal für eine Differenz zwischen unterschiedlichen Signalpaaren bestätigt bzw. "asserted" werden und für andere Differenzen "deasserted" werden. Wie oben erwähnt, können andere Ausführungsformen die Seite-Hinweis-Angabe in die Befehls-Signale (A_CMD) codieren. Andere Ausführungsformen können die Seite-Hinweis-Angabe in die Attribute (A_ATTR) codieren.The page hint signal may be used to convey the page hint indication for the transaction. The signal may be "asserted" to indicate that the page should remain open, and the signal may be "deasserted" to indicate that the page is about to be closed, or vice versa. This allows the page-hint signal to be among several with the bus 24 be split coupled agents. A signal is generally defined as asserted when it is at a low voltage level ("active low") or when it is at a high voltage level ("active high"). In the case of different signals, a signal for a difference between different signal pairs can be confirmed or "asserted" and "deasserted" for other differences. As mentioned above, other embodiments may encode the page hint indication into the command signals (A_CMD). Other embodiments may encode the page hint indication into the attributes (A_ATTR).

Speicher-ControllerMemory controller

In 3 ist ein Blockdiagramm einer Ausführungsform des Speicher-Controllers 16 gezeigt. Andere Ausführungsformen sind möglich und werden betrachtet. Bei der in 3 gezeigten Ausführungsform beinhaltet der Speicher-Controller 16 eine Transaktions-Wartereihe 40 sowie Kanal-Steuer-Schaltkreise 42A42B. Die Transaktions-Wartereihe 40 ist zum Kommunizieren an den Bus 24 gekoppelt und ist an die Kanal-Steuerungs-Schaltkreise 42A42B gekoppelt. Jeder der Kanal-Steuerungs-Schaltkreise 42A42B ist an den betreffenden Speicherkanal 44A44B gekoppelt. Der Kanal-Steuerungs-Schaltkreis 42A umfasst ein Konfigurations-Register 46A sowie einen Offene-Seite-Puffer 48A ("open page buffer"). Dementsprechend umfasst der Kanal-Steuerungs-Schaltkreis 42B ein Konfigurations-Register 46B und einen Offene-Seite-Puffer 48B ("open Page buffer").In 3 FIG. 10 is a block diagram of one embodiment of the memory controller. FIG 16 shown. Other embodiments are possible and contemplated. At the in 3 In the embodiment shown, the memory controller includes 16 a transaction queue 40 and channel control circuits 42A - 42B , The transaction queue 40 is to communicate with the bus 24 and is connected to the channel control circuits 42A - 42B coupled. Each of the channel control circuits 42A - 42B is to the relevant memory channel 44A - 44B coupled. The channel control circuit 42A includes a configuration register 46A and an open-side buffer 48A ("open page buffer"). Accordingly, the channel control circuit includes 42B a configuration register 46B and an open-side buffer 48B ("open page buffer").

Die Transaktions-Wartereihe 40 enthält mehrere Einträge, wobei jeder Eintrag konfiguriert ist, um zu einer Transaktion korrespondierende Informationen zu speichern. Die Transaktions-Wartereihe 40 kann einen Steuerungs-Schaltkreis umfassen, der Einträge zu den auf dem Bus 24 initiierten Speicher-Transaktionen veranlasst. Die Transaktions-Wartereihe 40 nimmt die Transaktions-Information für die Speicher-Transaktionen von dem Bus 24 in die zugewiesenen Einträge auf. In 3 werden zum Beispiel mehrere Felder für die beiden exemplarischen Einträge innerhalb der Transaktions-Wartereihe 40 dargestellt. Die Felder beinhalten ein Gültigkeits-Bit, die Adresse der Transaktion, das Befehls-Feld, die Seite-Hinweis-Angabe, die Transaktions-ID der Transaktion, die Daten für die Transaktion und das Daten-Gültigkeits-Bit. Andere Ausführungsformen können für jede Transaktion unterschiedliche, zusätzliche oder alternative Informationen speichern.The transaction queue 40 contains several entries, each entry being configured to store information corresponding to a transaction. The transaction queue 40 may include a control circuit that has entries to those on the bus 24 initiated memory transactions. The transaction queue 40 takes the transaction information for the memory transactions from the bus 24 in the assigned entries. In 3 For example, there will be multiple fields for the two exemplary entries within the transaction queue 40 shown. The fields include a validity bit, the address of the transaction, the command field, the page hint indication, the transaction i ons-ID of the transaction, the data for the transaction and the data validity bit. Other embodiments may store different, additional, or alternative information for each transaction.

Der Steuerungs-Schaltkreis in der Transaktions-Wartereihe 40 weist die Transaktionen zu einem der Kanal-Steuerungs-Schaltkreise 42A42B für den Zugriff auf den Speicher 26 zu. Bei der dargestellten Ausführungsform ist der Speicher 26 in zwei Abschnitte unterteilt, auf die durch unterschiedliche Kanäle 44A44B zugegriffen wird. Andere Ausführungsformen können mehr oder weniger Kanäle aufweisen. Der Bereich der Speicher-Adresse ist über nicht-gezeigte Konfigurations-Register auf die Kanäle abgebildet (und kann auf mehrere auf einem Kanal ausgewählte Chips abgebildet sein, etc.). Auf der Basis der Adresse der Transaktion kann der Steuerungs-Schaltkreis dadurch feststellen, welchem Kanal-Steuerungsschaltkreis 42A42B die Transaktion zugewiesen wurde.The control circuit in the transaction queue 40 directs the transactions to one of the channel control circuits 42A - 42B for accessing the memory 26 to. In the illustrated embodiment, the memory is 26 divided into two sections, through which different channels 44A - 44B is accessed. Other embodiments may include more or fewer channels. The area of the memory address is mapped to the channels via non-shown configuration registers (and may be mapped to multiple chips selected on a channel, etc.). Based on the address of the transaction, the control circuit can thereby determine which channel control circuit 42A - 42B the transaction has been assigned.

Der Kanal-Steuerungs-Schaltkreis 42A42B empfängt die Transaktions-Schnittstellen mit dem Speicher, der an den entsprechenden Speicher-Kanal gekoppelt ist, und führt das durch die Transaktion spezifizierte Lesen oder Schreiben durch. Generell kann die Bildung einer Schnittstelle mit dem Speicher das Übermitteln der Reihen-Adresse, das Übermitteln der Spalten-Adresse und das Übermitteln oder Empfangen von Daten umfassen. Zusätzlich kann der Kanal-Steuerungs-Schaltkreis 42A42B die durch die Transaktion adressierte Seite geöffnet halten oder die Seite schließen. Hier wird eine Seite als durch eine Transaktion "adressiert" bezeichnet, wenn die Reihen-Adresse der Transaktion mit der Reihen-Adresse der entsprechenden Seite übereinstimmt. Der Kanal-Steuerungs-Schaltkreis 42A42B empfängt die zu der Transaktion entsprechende Seiten-Hinweis-Angabe und kann auf der Grundlage der Seiten-Hinweis-Angabe die Seite im geöffneten Zustand halten oder die Seite schließen.The channel control circuit 42A - 42B receives the transaction interfaces with the memory coupled to the corresponding memory channel and performs the read or write specified by the transaction. In general, the formation of an interface with the memory may include transmitting the row address, transmitting the column address, and transmitting or receiving data. In addition, the channel control circuit 42A - 42B keep the page addressed by the transaction open or close the page. Here, a page is said to be "addressed" by a transaction if the row address of the transaction matches the row address of the corresponding page. The channel control circuit 42A - 42B receives the page hint indication corresponding to the transaction and, based on the page hint indication, can keep the page open or close the page.

Bei einer Ausführungsform können die Kanal-Steuerungs-Schaltkreise 42A42B mit einer Seitenmodus-Policy (über die Konfigurations-Register 46A46B) programmierbar sein. Die verfügbaren Seitenmodus-Policys beinhalten eine Hinweis-Policy, bei der die in der Transaktion mitgelieferte Seiten-Hinweis-Angabe verwendet wird, um festzustellen, ob die Seite geöffnet bleiben oder geschlossen werden soll. Nach Bedarf können andere Seitenmodus-Policys implementiert werden, bei denen die Seiten-Hinweis-Angabe verwendet werden kann oder nicht. Beispielsweise kann in einer Ausführungsform eine Seite-Schließen-Policy und eine Policy zum Überprüfen der CAS-Zeit (Spalten-Adressen-Impuls-Zeit) implementiert werden. Bei der Seite-Schließen-Policy wird die Seite nach jeder Transaktion geschlossen und die Seiten-Hinweis-Angabe wird nicht verwendet. Bei der Policy zum Überprüfen der CAS-Zeit des Spalten-Adressen-Impulses (CAS) überprüft der Kanal-Steuerungs-Schaltkreis 42A42B die Transaktions-Wartereihe 40 zu dem Zeitpunkt, an dem die Spalten-Adresse der Transaktion zu übermitteln ist, um festzustellen, ob sich für dieselbe Seite eine weitere Transaktion in der Wartereihe befindet. Wenn das der Fall ist, kann die Seite offengehalten werden. Andernfalls kann die Seite geschlossen werden. Die Policy zum Überprüfen der CAS-Zeit kann die Seiten-Hinweis-Angabe nicht verwenden. Andererseits kann die Policy zum Überprüfen der CAS-Zeit die Seiten-Hinweis-Angabe verwenden, um festzustellen, dass die Seite geöffnet bleiben soll, wenn sich für dieselbe Seite keine Transaktionen in der Wartereihe befinden, aber die Seiten-Hinweis-Angabe anzeigt, dass die Seite geöffnet bleiben soll.In one embodiment, the channel control circuits 42A - 42B with a page mode policy (via the configuration tab 46A - 46B ) be programmable. The available page mode policies include a hint policy that uses the page hint information provided in the transaction to determine if the page should be left open or closed. As required, other page mode policies may be implemented where the page hint indication may or may not be used. For example, in one embodiment, a page-closing policy and a policy for checking the CAS time (column address-pulse-time) may be implemented. The page-closing policy closes the page after each transaction and does not use the page hint. The column address pulse (CAS) CAS time check policy checks the channel control circuitry 42A - 42B the transaction queue 40 at the time that the column address of the transaction is to be transmitted to determine if there is another transaction in queue for the same page. If that is the case, the page can be kept open. Otherwise, the page can be closed. The policy for checking the CAS time can not use the page hint. On the other hand, the CAS time check policy may use the page hint indication to determine that the page should remain open if there are no transactions in the queue for the same page, but the page hint indication indicates that the page should remain open.

Bei einer Ausführüngsform können auf jedem Speicher-Kanal Mehrfach-Chip-Setektoren unterstützt werden. Die Chip-Selektoren können an unterschiedliche Speicher-Chips oder -Module gekoppelt sein (z.B. dual in Reihenverbindung mit Speicher-Modulen oder DIMMs) und können die Chips oder Module in Reaktion auf eine bestimmte Speicher-Transaktion selektieren. Die in den Konfigurations-Registern 46A46B programmierte Seitenmodus-Policy kann für jede Chip-Auswahl eine separate Policy beinhalten, sodass die Policy auf der Basis einer Chip-Auswahl variieren kann (das heißt, eine Chip-Auswahl kann einer Seitenmodus-Policy zugeordnet werden, während eine andere Chip-Auswahl einer unterschiedlichen Seitenmodus-Policy zugeordnet werden kann, etc.). Zusätzlich können die Seitenmodus-Policys für jeden Kanal durch zweckmäßiges Programmieren der entsprechenden Konfigurations-Register 46A46B unterschiedlich sein. Die Konfigurations-Register 46A46B sind grundsätzlich über Software zugänglich (z.B. auf den Prozessoren 12A12B ausgeführte Instruktionen), sodass sie durch Software programmiert werden können. Beispielsweise können die Konfigurations-Register 46A46B auf bestimmte Adressen innerhalb des auf dem Bus 24 verfügbaren Adressen-Bereichs abgebildet werden, und die Lade- und Speicher-Instruktionen an diese Adressen können verwendet werden, um auf den Konfigurations-Registern 46A46B zu lesen und zu schreiben.In one embodiment, multiple chip selectors may be supported on each memory channel. The chip selectors may be coupled to different memory chips or modules (eg, dual in series with memory modules or DIMMs) and may select the chips or modules in response to a particular memory transaction. The in the configuration registers 46A - 46B programmed page mode policy may include a separate policy for each chip selection so that the policy may vary based on a chip selection (ie, one chip selection may be assigned to a page mode policy, while another chip selection may be one) different page mode policy can be assigned, etc.). In addition, the page mode policies for each channel can be programmed by appropriately programming the appropriate configuration registers 46A - 46B be different. The configuration registers 46A - 46B are basically accessible via software (eg on the processors 12A - 12B executed instructions) so that they can be programmed by software. For example, the configuration registers 46A - 46B to certain addresses within the on the bus 24 available address range and the load and store instructions to these addresses can be used to access the configuration registers 46A - 46B to read and write.

Die Kanal-Steuerungs-Schaltkreise 42A42B können die Offene-Seite-Puffer 48A48B verwenden, um die Seiten ausfindig zu machen, die derzeit auf dem entsprechenden Speicher-Kanälen 44A44B geöffnet sind. Die Offene-Seite-Puffer 48A-48B können für jeden Speicher-Abschnitt einen Puffer-Eintrag enthalten, die gleichzeitig eine offene Seite haben können (z.B. jede Bank einer Chip-Auswahl oder jede Chip-Auswahl in Abhängigkeit von der Konfiguration). Jeder Eintrag kann anzeigen, ob eine Seite geöffnet ist oder nicht, und kann die Seite anzeigen (z.B. durch Speichern der Reihen-Adresse). Vor der Ausführung einer Aktivität entsprechend einer Transaktion auf dem Speicher-Kanal 44A44B, kann der Kanal-Steuerungs-Schaltkreis 42A42B den Offene-Seite-Puffer 48A-48B überprüfen, um festzustellen, ob die Seite bereits geöffnet ist. Wenn das der Fall ist, kann der Kanal-Steuerungs-Schaltkreis 42A42B mit der Übertragung der Spalten-Adresse der Transaktion fortfahren (z.B. mit einem Lese- oder Schreib-Befehl in einem SDRAM oder durch Bestätigen des Spalten-Adressen-Impulses (CAS) in einem asynchronen DRAM), ohne Übertragung der Reihen-Adresse der Transaktion. Wenn die Seite nicht bereits geöffnet ist und eine andere Seite in dem Speicher geöffnet ist, auf die zugegriffen werden soll (z.B. in derselben Bank und Chip-Auswahl für SDRAM oder in derselben Chip-Auswahl für einen asynchronen DRAM), dann schließt der Kanal-Steuerungs-Schaltkreis 42A42B die offene Seite und fährt anschließend mit dem Übertragen der Reihen-Adresse der Transaktion fort. Wenn die Seite nicht bereits geöffnet ist, aber der Speicher, auf den zugegriffen werden soll, noch keine geöffnete Seite hat, dann fährt der Kanal-Steuerungs-Schaltkreis 42A42B mit dem Übertragen der Reihen-Adresse der Transaktion fort. Wenn der Kanal-Steuerungs-Schaltkreis 42A42B die Seite nach einer Transaktion geöffnet hält, dann aktualisiert der Kanal-Steuerungs-Schaltkreis 42A42B den Offene-Seite-Puffer 48A mit der Reihen-Adresse der Transaktion.The channel control circuits 42A - 42B can use the open-side buffers 48A - 48B use to locate the pages currently on the corresponding memory channels 44A - 44B are open. The open-side buffers 48A-48B For each memory section, a buffer entry may be included which may simultaneously have an open page (eg, each bank of a chip selection or each chip selection depending on the configuration). Each entry can indicate if one Page is open or not, and can display the page (eg by saving the row address). Before executing an activity corresponding to a transaction on the memory channel 44A - 44B , the channel control circuit 42A - 42B the open-side buffer 48A-48B Check to see if the page is already open. If that is the case, the channel control circuit 42A - 42B continue to transfer the column address of the transaction (eg, with a read or write command in an SDRAM or by asserting the column address strobe (CAS) in an asynchronous DRAM) without transferring the row address of the transaction. If the page is not already open and another page is open in the memory to be accessed (eg in the same bank and chip select for SDRAM or in the same chip select for an asynchronous DRAM), then the channel closes. control circuit 42A - 42B the open page and then proceed to transfer the row address of the transaction. If the page is not already open, but the memory to be accessed does not yet have an open page, then the channel control circuit will move 42A - 42B with transferring the row address of the transaction. When the channel control circuit 42A - 42B keeps the page open after a transaction, then updates the channel control circuit 42A - 42B the open-side buffer 48A with the row address of the transaction.

Wenn zusätzlich zum Schließen von Seiten in demselben Speicher-Abschnitt eine weitere Seite geöffnet werden soll, können die Kanal-Steuerungs-Schaltkreise 42A42B auch aus anderen Gründen Seiten schließen. Beispielsweise wenn in dem Speicher-Abschnitt eine Auffrischung des Speicherinhalts bzw. ein "refresh" durchgeführt werden soll, kann die Seite für diesen Speicher-Abschnitt geschlossen werden.If, in addition to closing pages in the same memory section, another page is to be opened, the channel control circuits may 42A - 42B also close sides for other reasons. For example, if a refresh of the memory contents or a "refresh" is to be performed in the memory section, the page for this memory section can be closed.

Es ist zu bemerken, dass bei Ausführungsformen, die einen L2-Cache 14 verwenden, die Transaktions-Wartereihe 40 konfiguriert werden kann, um eine Transaktion zu annullieren, wenn ein L2-Treffer-Signal vom L2-Cache 14 während der Transaktion bestätigt wird. Einige Ausführungsformen können ein Interventions-Protokoll für kohärente Transaktionen verwenden, wobei ein kohärenter Agent die Daten auf den Bus 24 für eine Transaktion liefert, wenn der kohärente Agent ein ausreichendes Verfügungsrecht über die Daten besitzt (z.B. ein modifiziertes oder exklusives).. In solchen Ausführungsformen kann die Transaktions-Wartereihe 40 konfiguriert werden, um eine Transaktion zu annullieren, wenn ein Kohärenz-Agent die Daten liefern soll.It should be noted that in embodiments having an L2 cache 14 use the transaction queue 40 can be configured to cancel a transaction if an L2 hit signal from the L2 cache 14 during the transaction is confirmed. Some embodiments may use a coherent transaction intervention protocol wherein a coherent agent puts the data on the bus 24 for a transaction when the coherent agent has sufficient control over the data (eg, a modified or exclusive). In such embodiments, the transaction queue 40 be configured to cancel a transaction when a coherency agent is to deliver the data.

4 zeigt ein Flussdiagramm, das den Betrieb einer Ausführungsform eines Kanal-Steuerungs-Schaltkreises 42A42B für die Feststellung darstellt, ob eine Seite während eines Speicher-Zugriffs für eine Transaktion geöffnet bleiben soll oder nicht. Andere Ausführungsformen sind möglich und werden betrachtet. Während die in 4 gezeigten Blöcke zum leichteren Verständnis in einer bestimmten Reihenfolge dargestellt sind, kann auch irgendeine andere geeignete Reihenfolge verwendet werden. Ferner können einige Blöcke parallel durch kombinatorische logische Schaltkreise in den Kanal-Steuerungs-Schaltkreisen 42A42B ausgeführt werden. 4 FIG. 12 is a flowchart illustrating the operation of one embodiment of a channel control circuit. FIG 42A - 42B for determining whether or not a page should remain open during a memory access for a transaction. Other embodiments are possible and contemplated. While the in 4 For ease of understanding, blocks shown in a particular order may also be used, any other suitable order may be used. Further, some blocks may be connected in parallel by combinatorial logic circuits in the channel control circuits 42A - 42B be executed.

Das Flussdiagramm in 4 stellt allgemein die Feststellung dar, ob eine Seite geöffnet. bleiben soll oder nicht. Diese Feststellung kann zu jeder Zeit vorgenommen werden, beispielsweise können einige Ausführungsformen die Feststellung zu einem Zeitpunkt machen, an dem die Spalten-Adresse für den Speicher-Zugriff entsprechend der Transaktion zu übertragen ist. Dieser Zeitpunkt kann für SDRAM-Speicher geeignet sein, da eine Seite mit einem Selbst-Vorspannungs-Befehl ("auto precharge command") als Teil des Lese- oder Schreib-Befehls geschlossen werden kann, mit dem die Spalten-Adresse übertragen wird. Es können auch Seiten mit einem expliziten Vorspannungs-Befehl geschlossen werden, der unabhängig von einem Lese- oder Schreib-Befehl gesendet wird, wie das vorgenommen wird, wenn eine Seite geöffnet bleiben und später geschlossen werden soll, um eine andere Seite zu öffnen oder den Speicherinhalt des entsprechenden Speicher-Abschnitts aufzufrischen ("refresh"). Bei asynchronen DRAMs kann die Seite durch "deassert" des RAS-Signals geschlossen werden. Andere günstige Zeitpunkte während des Speicher-Zugriffs, die für das Feststellen geeignet ist, ob die Seite geöffnet bleiben oder die Seite geschlossen werden soll, kann den Anfang des Speicher-Zugriffs beinhalten (wenn die Transaktion an den Kanal-Steuerungs-Schaltkreis 42A42B geleitet wird) etc.The flowchart in 4 Generally, it is the determination of whether a page is open. should stay or not. This determination may be made at any time, for example, some embodiments may make the determination at a time when the column address for memory access is to be transmitted according to the transaction. This timing may be suitable for SDRAM memory because a page may be closed with a self-precharge command as part of the read or write command used to transmit the column address. It is also possible to close pages with an explicit bias command sent independently of a read or write command, as is done when one page is left open and later closed to open another page To refresh the memory contents of the corresponding memory section ("refresh"). For asynchronous DRAMs, the page can be closed by deasserting the RAS signal. Other favorable times during the memory access, which is suitable for determining whether the page should remain open or the page should be closed, may include the beginning of the memory access (if the transaction is to the channel control circuit 42A - 42B is directed) etc.

Der Kanal-Steuerungs-Schaltkreis 42A42B kann feststellen, ob die Seitenmodus-Policy in dem Konfigurations-Register 46A46B der Seiten-Hinweis-Policy entspricht, bei der die in der Transaktion enthaltene Seiten-Hinweis-Angabe verwendet wird, um festzustellen, ob die Seite geöffnet bleiben oder geschlossen werden soll (Entscheidungsblock 50). Wenn die Seitenmodus-Policy nicht der Seiten-Hinweis-Policy entspricht, kann der Kanal-Steuerungs-Schaltkreis 42A42B auf der Basis der selektierten Policy (Block 52) feststellen, ob die Seite geöffnet bleiben soll oder ob die Seite zu schließen ist.The channel control circuit 42A - 42B can determine if the page mode policy is in the configuration tab 46A - 46B is the page hint policy, which uses the page hint specified in the transaction to determine if the page should be left open or closed (decision block 50 ). If the page mode policy does not conform to the page hint policy, the channel control circuit may 42A - 42B based on the selected policy (Block 52 ) determine whether the page should remain open or whether the page should be closed.

Wenn die Seitenmodus-Policy der Seiten-Hinweis-Policy entspricht, überprüft der Kanal-Steuerungs-Schaltkreis 42A42B die Seiten-Hinweis-Angabe von der entsprechenden Transaktion, um festzustellen, ob die Seite geöffnet bleiben oder geschlossen werden soll (Entscheidungsblock 54). Wenn die Seiten-Hinweis-Angabe anzeigt, dass die Seite geöffnet bleiben soll, hält der Kanal-Steuerungs-Schaltkreis 42A42B die Seite in geöffnetem Zustand (Block 56). Wenn die Seiten-Hinweis-Angabe anzeigt, dass die Seite geschlossen werden soll, wird die Seite geschlossen (Block 58).If the page mode policy matches the page hint policy, the channel control circuit will check 42A - 42B the page hint indication of the appropriate transaction to determine if the page remains open or to be closed (decision block 54 ). If the page hint indication indicates that the page should remain open, the channel control circuit will stop 42A - 42B the page in the opened state (block 56 ). If the page hint indication indicates that the page should be closed, the page will be closed (block 58 ).

In 5 ist ein Flussdiagramm gezeigt, das den Betrieb eines exemplarischen Agents zum Ermitteln einer Seiten-Hinweis-Angabe für eine Transaktion darstellt. Die Seiten-Hinweis-Angabe in der dargestellten Ausführungsform kann insbesondere ein Signal sein, das bestätigt bzw. "asserted" wird, um anzuzeigen, dass die Seite geöffnet bleiben soll, und das "deasserted" wird, um anzuzeigen, dass die Seite geschlossen werden soll. Wie oben erwähnt, können andere Ausführungsformen die Seiten-Hinweis-Angabe auf andere Weise übertragen, wobei ein Flussdiagramm ähnlich dem in 5 gezeigten Flussdiagramm verwendet werden kann. Der exemplarische Agent in 5 führt eine Reihe von Transaktionen für einen direkten Speicher-Zugriff (DMA) durch. Der Agent kann eine DMA-Maschine sein oder beispielsweise eine der Eingabe/Ausgabe-Brücken 20A20B, welche die DMA-Transaktionen von einer Vorrichtung an eine Eingabe/Ausgabe-Schnittstelle 22A22D weiterleitet. Andere Ausführungsformen sind möglich und werden betrachtet. Bei der in 5 gezeigten Ausführungsform sind mehrere Blöcke zum leichteren Verständnis in einer bestimmten Reihenfolge dargestellt. Es kann jedoch auch irgendeine andere Reihenfolge verwendet werden. Ferner können die Blöcke parallel durch kombinatorische, logische Schaltkreise innerhalb des Agents ausgeführt werden.In 5 FIG. 3 is a flowchart illustrating the operation of an exemplary agent for determining a page hint indication for a transaction. Specifically, the page hint indication in the illustrated embodiment may be a signal that is asserted to indicate that the page is to remain open and that is deasserted to indicate that the page is being closed should. As noted above, other embodiments may otherwise transfer the page hint indication, with a flowchart similar to that of FIG 5 shown flowchart can be used. The exemplary agent in 5 performs a number of direct memory access (DMA) transactions. The agent may be a DMA engine or, for example, one of the input / output bridges 20A - 20B directing the DMA transactions from a device to an input / output interface 22A - 22D forwards. Other embodiments are possible and contemplated. At the in 5 In the embodiment shown, several blocks are shown in a particular order for ease of understanding. However, any other order may be used. Further, the blocks may be executed in parallel by combinatorial logic circuits within the agent.

Wenn die Transaktion die letzte in einer Reihe von Transaktionen ist, mit der eine bestimmte Seite adressiert wird (Entscheidungsblock 60), dann kann der Agent die Transaktion mit dem "deasserted" Seiten-Hinweis-Signal übermitteln (Block 62). Im allgemeinen beinhaltet eine Serie von Transaktionen in einem DMA fortlaufende Adressen. Deshalb kann eine Untermenge der Reihe von Transaktionen eine bestimmte Seite adressieren, gefolgt von einer weiteren Untermenge von Transaktionen, die eine andere Seite betreffen. Dementsprechend kann es vorteilhaft sein, die Seite zu schließen, wenn die letzte zu dieser Seite adressierte Transaktion übertragen wurde, um die Verzögerung zu verringern, wenn sich die neu adressierte Seite in dem gleichen Speicher-Abschnitt befindet (oder um die Verzögerung für einige andere Transaktionen zu verringern, welche diesen Speicher-Abschnitt betreffen). Es ist festzustellen, dass der Agent zur Ausführung der Entscheidung in Block 60 über die Information verfügt, welcher Teil der Transaktions-Adressen verwendet wird, um die Reihen-Adresse zu bilden. Bei Bedarf ist in anderen Ausführungsformen die Entscheidung des Blocks 60 nicht enthalten, und kann dadurch das Seiten-Hinweis-Signal für jede Transaktion in dem direkten Speicher-Zugriff (DMA) in dem Entscheidungsblock 64 bestätigen, wie nachfolgend beschrieben wird.If the transaction is the last in a series of transactions addressing a particular page (decision block 60 ), then the agent can transmit the transaction with the "deasserted" page hint signal (block 62 ). In general, a series of transactions in a DMA include consecutive addresses. Therefore, a subset of the series of transactions may address a particular page, followed by another subset of transactions that affect another page. Accordingly, it may be advantageous to close the page if the last transaction addressed to this page has been transmitted to reduce the delay if the newly addressed page is in the same memory section (or the delay for some other transactions to reduce, which concern this memory section). It should be noted that the agent to execute the decision in block 60 has the information about which part of the transaction addresses is used to form the row address. If necessary, in other embodiments, the decision of the block 60 not contain, and thereby the page hint signal for each transaction in the direct memory access (DMA) in the decision block 64 confirm as described below.

Wenn die Transaktion die letzte Transaktion des direkten Speicher-Zugriffs DMA (Entscheidungsblock 64) ist, kann der Agent die Transaktion mit dem "deasserted" Seiten-Hinweis-Signal übermitteln (Block 62). Da die Transaktion die letzte Transaktion ist, kann dem Agent keine Information vorliegen, ob irgendwelche zusätzlichen Transaktionen dieselbe Seite adressieren. Deshalb kann es vorteilhaft sein, die Seite zu schließen, um eine Verzögerung für andere Transaktionen zu verringern, welche diesen Speicher-Abschnitt betreffen.If the transaction is the last transaction of direct memory access DMA (decision block 64 ), the agent can transmit the transaction with the "deasserted" page hint signal (block 62 ). Since the transaction is the last transaction, the agent can not have any information as to whether any additional transactions are addressing the same page. Therefore, it may be advantageous to close the page to reduce delay for other transactions involving this memory section.

Wenn die Transaktion nicht die letzte Transaktion des direkten Speicher-Zugriffs DMA ist (und optional nicht die letzte Adresse in der aktuellen Seite ist), kann der Agent die Transaktion mit dem bestätigten Seiten-Hinweis-Signal übermitteln (Block 66). In diesem Fall liegt dem Agent die Information zusätzlicher Transaktionen vor, welche dieselbe Seite betreffen, und es kann deshalb vorteilhaft sein, die Seite geöffnet zu halten, um die Verzögerung für diese zusätzlichen Transaktionen zu verringern.If the transaction is not the last transaction of direct memory access DMA (and optionally not the last address in the current page), the agent may transmit the transaction with the acknowledged page hint signal (block 66 ). In this case, the agent has the information of additional transactions concerning the same page, and it may therefore be advantageous to keep the page open in order to reduce the delay for these additional transactions.

6 zeigt ein Flussdiagramm, das den Betrieb eines weiteren exemplarischen Agents zum Bestimmen der Seiten-Hinweis-Angabe für eine Transaktion darstellt. Bei der dargestellten Ausführungsform kann die Seiten-Hinweis-Angabe ein Signal sein, das bestätigt bzw. "asserted" wird, um anzuzeigen, dass die Seite geöffnet bleiben soll, und "deasserted" wird, um anzuzeigen, dass die Seite geschlossen werden soll. Wie oben erwähnt, können andere Ausführungsformen die Seiten-Hinweis-Angabe auf andere Weise übermitteln, und es können ähnliche Flussdiagramme, wie das in 6 gezeigte Flussdiagramm, verwendet werden. Der in 6 gezeigte exemplarische Agent kann ein Prozessor-Agent (z.B. Prozessoren 12A oder 12B in 1) sein. je nach Bedarf können andere Arten von Agenten eine ähnliche Betriebsweise verwenden. Bei der in 6 dargestellten Ausführungsform sind mehrere Blöcke zum leichteren Verständnis in einer bestimmten Reihenfolge dargestellt. Es kann jedoch auch eine andere Reihenfolge verwendet werden. Ferner können die Blöcke parallel durch einen kombinatorischen, logischen Schaltkreis innerhalb des Agents ausgeführt werden. 6 FIG. 12 is a flowchart illustrating the operation of another exemplary agent for determining the page hint indication for a transaction. FIG. In the illustrated embodiment, the page hint indication may be a signal that is asserted to indicate that the page should remain open and be deasserted to indicate that the page should be closed. As mentioned above, other embodiments may convey the page hint indication in other ways, and flowcharts similar to those in FIG 6 shown flow chart used. The in 6 The exemplary agent shown may be a processor agent (eg, processors 12A or 12B in 1 ) be. as needed, other types of agents may use a similar mode of operation. At the in 6 In the illustrated embodiment, several blocks are shown in a particular order for ease of understanding. However, a different order may be used. Further, the blocks may be executed in parallel by a combinatorial logic circuit within the agent.

Ein Prozessor-Agent kann eine Wartereihe für Transaktionen umfassen, die auf den Bus 24 zu übermitteln sind. Der Prozessor-Agent kann die Wartereihe überprüfen, um festzustellen, ob sich weitere Transaktionen in der Wartereihe befinden, welche dieselbe Seite adressieren (Entscheidungsblock 70). Wenn sich zusätzliche Transaktionen in der Wartereihe befinden, kann die Transaktion mit dem bestätigten ("asserted") Seiten-Hinweis-Signal übermittelt werden (Block 72). Beispielsweise kann der Prozessor-Agent die Ergebnisse aus der Überprüfung der Wartereihe verwenden, wobei in dem Zeitsignal-Zyklus durch den Prozessor-Agent die Entscheidung gewonnen wird, die Adressen-Phase der Transaktion durchzuführen, um das Seiten-Hinweis-Signal zu bestätigen ("assert") oder zu "deassert" das Seiten-Hinweis-Signal.A processor agent may include a queue for transactions that are on the bus 24 to be transmitted. The processor agent can check the queue to see if there are more transactions in the queue that are addressing the same page (decision block 70 ). If additional transactions are in the queue, the transaction can be confirmed with the transmitted ("asserted") page hint signal (block 72 ). For example, the processor agent may use the results of the check queue, and in the time signal cycle, the processor agent decides to perform the address phase of the transaction to confirm the page hint signal (" assert ") or" deasserts "the page hint signal.

Ein Prozessor-Agent kann auch konfiguriert sein, um festzustellen, ob ein sich wiederholendes Muster von Transaktionen wahrscheinlich ist. Beispielsweise kann ein Prozessor-Agent feststellen, dass er sich in einer Schleife eines Codes befindet, wodurch zusätzliche Transaktionen für dieselbe Seite(n) wie die aktuellen Transaktionen wahrscheinlicher sind, als wenn keine Schleife ausgeführt würde. Wenn der Prozessor-Agent ein sich wiederholendes Muster von Transaktionen feststellt (Entscheidungsblock 74), dann kann der Prozessor-Agent die Transaktion mit dem bestätigten Seiten-Hinweis-Signal übermitteln (Block 72), selbst wenn sich keine anderen Transaktionen für dieselbe Seite als die Transaktion in der Wartereihe befinden. In anderen Fällen kann der Prozessor-Agent die Transaktion mit dem "deasserted" Seiten-Hinweis-Signal übermitteln (Block 76).A processor agent may also be configured to determine if a repeating pattern of transactions is likely. For example, a processor agent may discover that it is in a loop of code, which makes additional transactions for the same page (s) as the current transactions more likely than if no loop were executed. When the processor agent detects a repeating pattern of transactions (decision block 74 ), then the processor agent can transmit the transaction with the acknowledged page hint signal (block 72 ) even if there are no other transactions on the same page as the transaction in the queue. In other cases, the processor agent may transmit the transaction with the deasserted page hint signal (Block 76 ).

Während die 5 und 6 die Verwendung der Seiten-Hinweis-Angabe durch bestimmte Agenten darstellen, kann ein beliebiger Agent die Seiten-Hinweis-Angabe auch auf irgendeine andere geeignete Weise verwenden.While the 5 and 6 may represent the use of page hint indication by certain agents, any agent may also use the page hint indication in any other suitable manner.

7 ist ein Blockdiagramm eines exemplarischen Agents 80. Andere Ausführungsformen sind möglich und werden betrachtet. Bei der in 7 dargestellten Ausführungsform beinhaltet der Agent 80 eine Transaktions-Wartereihe 82, die an einen Bus-Schnittstellen-Schaltkreis 84 gekoppelt ist. Der Bus-Schnittstellen-Schaltkreis 84 ist seinerseits an den Bus 24 gekoppelt. 7 is a block diagram of an exemplary agent 80 , Other embodiments are possible and contemplated. At the in 7 The embodiment includes the agent 80 a transaction queue 82 connected to a bus interface circuit 84 is coupled. The bus interface circuit 84 is in turn to the bus 24 coupled.

Die Transaktions-Wartereihe 82 kann allgemein die Transaktionen speichern, die durch den Agent 80 auf dem Bus 24 zu initiieren sind. Die Transaktions-Wartereihe 82 kann die Transaktionen empfangen, die durch den Agent 80 intern generiert werden (z.B. ein Prozessor-Agent kann Transaktionen in Reaktion auf das Ausführen von Lade- und Speicher-Instruktionen generieren), oder die Transaktions-Wartereihe 82 kann die Transaktionen von einer anderen externen Quelle empfangen (z.B. eine Eingabe/Ausgabe-Brücke 20A20B kann Transaktionen von Vorrichtungen empfangen, die mit Eingabe/Ausgabe-Schnittstellen 22A-22D) verbunden sind.The transaction queue 82 can generally store the transactions made by the agent 80 on the bus 24 to initiate. The transaction queue 82 can receive the transactions made by the agent 80 generated internally (eg, a processor agent may generate transactions in response to the execution of load and store instructions), or the transaction queue 82 can receive the transactions from another external source (eg an input / output bridge) 20A - 20B can receive transactions from devices connected to input / output interfaces 22A - 22D ) are connected.

Der Bus-Schnittstellen-Schaltkreis 84 umfasst den Schaltkreis zum Kontaktieren des Bus 24. Der Bus-Schnittstellen-Schaltkreis 84 kann insbesondere Transaktionen auf den Bus übertragen, die das Bestätigen oder Deklarieren ("assertion" oder "deassertion") des Seiten-Hinweis-Signals während der Adressen-Phase der Transaktionen umfasst.The bus interface circuit 84 includes the circuit for contacting the bus 24 , The bus interface circuit 84 In particular, it may transmit transactions to the bus that involve asserting or declaring ("assertion" or "deasserting") the page hint signal during the address phase of the transactions.

8 zeigt ein Blockdiagramm eines Träger-Mediums 300 mit einer Datenbank, die das System 10 repräsentiert. Allgemein ausgedrückt, kann ein Träger-Medium Speicher-Medien umfassen, wie z.B. magnetische oder optische Medien, Disk oder CD-ROM, flüchtige oder nicht-flüchtige Speicher-Medien, wie z.B. RAM (z.B. SDRAM, RDRAM, SRAM etc.), ROM etc., sowie Übertragungs-Medien oder Übertragungs-Signale, wie z.B. elektrische, elektromagnetische oder digitale Signale, die über ein Kommunikations-Medium befördert werden, wie z.B. ein Netzwerk und/oder drahtlose Verbindung. 8th shows a block diagram of a carrier medium 300 with a database containing the system 10 represents. Generally speaking, a carrier medium may include storage media such as magnetic or optical media, disk or CD-ROM, volatile or non-volatile storage media such as RAM (eg, SDRAM, RDRAM, SRAM, etc.), ROM etc., as well as transmission media or transmission signals, such as electrical, electromagnetic or digital signals carried over a communication medium, such as a network and / or wireless connection.

Im Allgemeinen kann die Datenbank des Systems 10, die sich auf dem Träger-Medium 300 befindet, eine Datenbank sein, die durch ein Programm gelesen werden kann und direkt oder indirekt verwendet wird, um die Hardware zu fabrizieren, die das System 10 umfasst. Die Datenbank kann beispielsweise eine Verhaltens-Level-Beschreibung oder eine Register-Transfer-Level-Beschreibung (RTL-Beschreibung ("behavioral-level description" oder "register-transfer level") der Hardware-Funktionalität in einer höheren Programmiersprache ("high level design language (HDL)") sein, wie z.B. Verflog oder VHDL. Die Beschreibung kann durch ein Synthese-Werkzeug gelesen werden, das die Beschreibung zusammensetzen kann, um eine Netzliste ("netlist") zu erzeugen, die eine Liste von Steuerelementen aus einer Synthese-Bibliothek umfasst. Die Netzliste enthält einen Satz von Steuerelementen, die auch die Funktionalität der Hardware repräsentiert, die das System 10 umfasst. Die Netzliste kann anschließend platziert und geleitet werden, um einen Datensatz zu erzeugen, der die geometrischen Gestaltungen beschreibt, die auf die Masken anzuwenden sind. Anschließend können die Masken in unterschiedlichen Schritten zur Herstellung von Halbleitern verwendet werden, um einen Halbleiter-Schaltkreis oder Halbleiter-Schaltkreise entsprechend dem System 10 zu erzeugen. Nach Bedarf kann die Datenbank auf dem Träger-Medium 300 alternativ die Netzliste sein (mit oder ohne Synthese-Bibliothek).In general, the database of the system 10 that are on the carrier medium 300 is a database that can be read by a program and used, directly or indirectly, to fabricate the hardware that makes up the system 10 includes. The database may include, for example, a behavior level description or a register transfer level (RTL) description ("behavioral-level description" or "register-transfer level") of the hardware functionality in a high-level programming language ("high level The description can be read by a synthesis tool that can assemble the description to produce a netlist that contains a list of controls from a The Netlist contains a set of controls that also represents the functionality of the hardware that the system provides 10 includes. The netlist may then be placed and routed to produce a dataset describing the geometric shapes to be applied to the masks. Subsequently, the masks may be used in different steps to fabricate semiconductors to form a semiconductor circuit or semiconductor circuits according to the system 10 to create. As needed, the database can be on the carrier medium 300 alternatively be the netlist (with or without synthesis library).

Während das Träger-Medium 300 eine Repräsentierung des Systems 10 enthält, können andere Ausführungsformen je nach Bedarf eine Repräsentierung irgendeines Bereichs des Systems enthalten, einschließlich irgendeiner Kombination aus einem Agent, einem Speicher-Controller, einem Bus, Speicher etc.While the carrier medium 300 a representation of the system 10 As desired, other embodiments may include representation of any portion of the system as needed, including any combination of agent, memory controller, bus, memory, etc.

Mit dem vollständigen Studium der vorliegenden Offenbarung sind für den Fachmann in der betreffenden Technologie zahlreiche Variationen und Modifikationen offensichtlich. Es ist beabsichtigt, dass die folgenden Ansprüche so zu interpretieren sind, dass sie alle solche Variationen und Modifikationen einbeziehen.With the full study of the present disclosure, those skilled in the art will appreciate technology involved numerous variations and modifications. It is intended that the following claims be interpreted to embrace all such variations and modifications.

Claims (15)

Schaltkreis, der so konfiguriert ist, dass er eine erste Operation initiiert, wobei der Schaltkreis so konfiguriert ist, dass während der ersten Operation eine Seiten-Hinweis-Angabe übermittelt wird, wobei die Seiten-Hinweis-Angabe anzeigt, ob eine durch die erste Operation adressierte Seite geöffnet bleiben soll oder nicht.Circuitry that is configured to be initiated a first operation, with the circuit configured is that while the first operation is sent a page hint indication, the page hint indication indicates whether a page addressed by the first operation should remain open or not. Schaltkreis nach Anspruch 1, wobei die Seiten-Hinweis-Angabe ein Signal ist.The circuit of claim 1, wherein the page hint indication a signal is. Schaltkreis nach Anspruch 1, wobei der Schaltkreis so konfiguriert ist, dass die Seiten-Hinweis-Angabe während einer Adressen-Phase der ersten Operation übermittelt wird.Circuit according to claim 1, wherein the circuit is configured so that the page hint indication during a Address phase of the first operation is transmitted. Speicher-Controller, der so gekoppelt ist, eine Seiten-Hinweis-Angabe mit einer ersten Operation zu empfangen, wobei die Seiten-Hinweis-Angabe anzeigt, ob eine durch die erste Operation adressierte Seite geöffnet bleiben soll oder nicht, wobei der Speicher-Controller konfiguriert ist, die Seite, die mit dem Speicher-Controller gekoppelt ist, in Abhängigkeit von der Seiten-Hinweis-Angabe wahlweise geöffnet zu halten.Memory controller that is so coupled, a page hint indication received with a first operation, with the page hint indication indicates whether a page addressed by the first operation remains open should or not, where the storage controller is configured, the page that is coupled to the storage controller, depending on the page hint indication optionally open to hold. Speicher-Controller nach Anspruch 4, umfassend einen Konfigurations-Register, der konfiguriert ist, eine Seitenmodus-Policy zu speichern, wobei der Speicher-Controller konfiguriert ist, die Seite ferner in Abhängigkeit von der Seitenmodus-Policy wahlweise geöffnet zu halten.A memory controller according to claim 4, comprising a Configuration registers, which is configured to store a page mode policy where the memory controller is configured, the page also depending to be kept open by the page mode policy. Speicher-Controller nach Anspruch 5, wobei die Seitenmodus-Policy eine erste Policy umfasst, bei der das wahlweise Offenhalten der Seite durch die Seiten-Hinweis-Angabe bestimmt wird, und die Seitenmodus-Policy zumindest eine zweite Policy umfasst, bei der das wahlweise Offenhalten der Seite nicht durch die Seiten-Hinweis-Angabe bestimmt wird.The memory controller of claim 5, wherein the page mode policy a first policy in which the optional keep open the Page is determined by the page hint indication, and the page mode policy includes at least a second policy in which the optional keep open the page is not determined by the page hint indication. Speicher-Controller nach Anspruch 6, wobei die zweite Policy darin besteht, die Seite zu schließen.The memory controller of claim 6, wherein the second Policy is to close the page. Speicher-Controller nach Anspruch 7, wobei die zweite Policy darin besteht, die Seite wahlweise offen zu halten in Abhängigkeit von den Operationen, die durch den Speicher-Controller zu einem Zeitpunkt empfangen werden, an dem eine Spalten-Adresse entsprechend der ersten Operation an den Speicher übermittelt wird.The memory controller of claim 7, wherein the second Policy is to keep the page optional depending on from the operations made by the memory controller to one Receive time at which a column address accordingly the first operation is sent to the memory. Speicher-Controller nach Anspruch 4, wobei der Speicher-Controller konfiguriert ist, die Seite zu schließen, wenn die Seiten-Hinweis-Angabe anzeigt, dass die Seite geschlossen werden soll.The memory controller of claim 4, wherein the memory controller is configured to close the page when the page hint indication indicates that the page should be closed. Speicher-Controller nach Anspruch 4, wobei der Speicher-Controller konfiguriert ist, die Seite geöffnet zu halten, wenn die Seiten-Hinweis-Angabe anzeigt, dass die Seite geöffnet bleiben soll.The memory controller of claim 4, wherein the memory controller configured, the page is open to hold when the page hint indication indicates that the page open should stay. System umfassend: eine Schaltung nach einem der Ansprüche 1–3; und einen Speicher-Controller nach einem der Ansprüche 4–10.System comprising: a circuit after one the claims 1-3; and one A memory controller according to any one of claims 4-10. System gemäß Anspruch 11 ferner umfassend einen zweiten Schaltkreis, wobei der Schaltkreis gekoppelt ist, um die Seiten-Hinweis-Angabe während der ersten Operation bereitzustellen, und der zweite Schaltkreis gekoppelt ist, um die Seiten-Hinweis-Angabe während einer zweiten durch den zweiten Schaltkreis initiierten Operation bereitzustellen.System according to claim 11 further comprising a second circuit, wherein the circuit is coupled to the page hint indication during the first operation provide, and the second circuit is coupled to the Page hint indication during a second operation initiated by the second circuit provide. Schaltkreisdefinierender Mechanismus mit einer oder mehreren Datenbanken, die einen oder mehrere Schaltkreise gemäß einem der Ansprüche 1–3 oder den Speicher-Controller gemäß einem der Ansprüche 4–10 repräsentieren.Circuit-defining mechanism with one or several databases containing one or more circuits according to a of claims 1-3 or the memory controller according to a the claims 4-10 represent. Schaltkreisdefinierender Mechanismus nach Anspruch 13, wobei die eine oder mehrere Datenbanken eine oder mehrere Netzlisten beinhalten, die den Schaltkreis oder den Speicher-Controller repräsentieren.Circuit-defining mechanism according to claim 13, wherein the one or more databases comprise one or more netlists that represent the circuit or the memory controller. Speicher-Medium, das den schaltkreisdefinierenden Mechanismus gemäß Anspruch 13 enthält.Memory medium that defines the circuit Mechanism according to claim 13 contains.
DE20122578U 2000-09-20 2001-09-20 Page hint indication transfer circuit for page mode memory system, transmits page hint indication during initiated operation Expired - Lifetime DE20122578U1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US665981 2000-09-20
US09/665,981 US6526483B1 (en) 2000-09-20 2000-09-20 Page open hint in transactions
EP01308009A EP1191444A1 (en) 2000-09-20 2001-09-20 Page open hint in transactions

Publications (1)

Publication Number Publication Date
DE20122578U1 true DE20122578U1 (en) 2006-06-01

Family

ID=36590889

Family Applications (1)

Application Number Title Priority Date Filing Date
DE20122578U Expired - Lifetime DE20122578U1 (en) 2000-09-20 2001-09-20 Page hint indication transfer circuit for page mode memory system, transmits page hint indication during initiated operation

Country Status (1)

Country Link
DE (1) DE20122578U1 (en)

Similar Documents

Publication Publication Date Title
DE19982871B4 (en) Memory system with memory modules each containing a memory module controller
DE10345383B4 (en) Bank address mapping according to a bank holding time in dynamic random access memories
DE60215417T2 (en) Network circuit
DE60308150T2 (en) ADDRESS ROOM, BUS SYSTEM, STORAGE CONTROL AND SETUP SYSTEM
DE102007050864B4 (en) Method and apparatus for communicating command and address signals
DE19983737B3 (en) System for reordering commands issued by a memory controller to memory devices preventing collision
DE60115795T2 (en) Adaptive repetition mechanism
DE60118622T2 (en) USER CONFIGURABLE ON-CHIP STORAGE SYSTEM
DE112005002336T5 (en) Command that controls different operations in different chips
DE102006043311A1 (en) storage system
DE19983745B9 (en) Use of page label registers to track a state of physical pages in a storage device
DE112008001679T5 (en) Cache memory with configurable associativity
DE102006029287A1 (en) DRAM chip device communicating with flash memory chip and such a device comprehensive multi-chip interconnection
DE102007036547A1 (en) Semiconductor memory unit for use in portable communication system, has interface unit with semaphore and mail box areas, in which processors are accessed in memory region to provide interface function for communication between processors
DE102004033445A1 (en) Integrated circuit device has interface to convert advanced microcontroller bus architecture format into interface format e.g. static RAM format compatible to access resources of slave chip by master chip, according to request
DE19855645A1 (en) Method and arrangement for operating a random access memory
DE10393803T5 (en) A method and apparatus for determining page management implementation on dynamic random access memory
DE102008050308A1 (en) Method and apparatus for memory access optimization
DE102006035869A1 (en) Dual port semiconductor memory
DE10219623A1 (en) System and method for memory decision using multiple queues
DE112012004926B4 (en) Memory sharing among processors
DE102004027121A1 (en) A multi-bank chip compatible with a controller designed for a smaller number of banks, and a method of operation
DE112004000694B4 (en) A method and apparatus for improving multi-CPU system performance for memory accesses
DE69816464T2 (en) DEVICE AND METHOD FOR COMPENSATING TIME DELAYS OF FACILITIES
DE19908618A1 (en) Common cache memory in multiprocessor system

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20060706

R150 Term of protection extended to 6 years

Effective date: 20060601

R151 Term of protection extended to 8 years

Effective date: 20071011

R152 Term of protection extended to 10 years

Effective date: 20091014

R071 Expiry of right
R071 Expiry of right