DE112006001542T5 - Verfahren, Vorrichtung und System für posted write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle - Google Patents

Verfahren, Vorrichtung und System für posted write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle Download PDF

Info

Publication number
DE112006001542T5
DE112006001542T5 DE112006001542T DE112006001542T DE112006001542T5 DE 112006001542 T5 DE112006001542 T5 DE 112006001542T5 DE 112006001542 T DE112006001542 T DE 112006001542T DE 112006001542 T DE112006001542 T DE 112006001542T DE 112006001542 T5 DE112006001542 T5 DE 112006001542T5
Authority
DE
Germany
Prior art keywords
data
memory
write
machine
control logic
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.)
Ceased
Application number
DE112006001542T
Other languages
English (en)
Inventor
Randy B. Beaverton Osborne
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112006001542T5 publication Critical patent/DE112006001542T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

Verfahren mit den Schritten
– Empfangen von in einen Speicher zu schreibenden Daten;
– Speichern der Daten in einem Schreib-Zwischenspeicher; und
– Empfangen einer unabhängigen Meldung zum Schreiben der Daten an eine Speicheradresse.

Description

  • GEBIET DER ERFINDUNG
  • Allgemein betreffen Ausgestaltungen der vorliegenden Erfindung das Gebiet von Speicher und insbesondere ein Verfahren, eine Vorrichtung und ein System für Posted Write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle.
  • HINTERGRUND DER ERFINDUNG
  • Sowie die Rechenleistung von Prozessoren steigt, steigt auch das Bedürfnis für schnellere Datenübertragungen bei Speichervorrichtungen. Zusätzlich zum Verbessern der Speicherbandbreite, ist es nützlich, die Effizienz zu verbessern, mit der die Speicherbandbreite verwendet wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird in den Figuren der beiliegenden Zeichnungen beispielhaft und nicht einschränkend dargestellt, in denen ähnliche Bezugszeichen ähnliche Elemente anzeigen und in denen:
  • 1 ein Blockdiagramm einer beispielhaften elektronischen Vorrichtung ist, die in Übereinstimmung mit einer beispielhaften Ausgestaltung der Erfindung zum Ausführen eines Zwischenspeicheragenten geeignet ist;
  • 2 ein Blockdiagramm einer beispielhaften Zwischenspeicheragenten-Architektur in Übereinstimmung mit einer beispielhaften Ausgestaltung der Erfindung ist;
  • 3 ein Flussdiagramm eines beispielhaften Verfahrens für Posted Write Buffering in Übereinstimmung mit einer beispielhaften Ausgestaltung der Erfindung ist; und
  • 4 ein Blockdiagramm eines beispielhaften Speichermediums ist, das Inhalt aufweist, der, wenn darauf von einer Vorrichtung zugegriffen wird, die Vorrichtung zum Ausführen einer oder mehrerer Aspekte einer oder mehrerer Ausgestaltungen der Erfindung veranlasst.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung sind zum Zweck der Erklärung zahlreiche spezielle Details angegeben, um ein vollständiges Verständnis der Erfindung zu ermöglichen. Es wird jedoch für den Fachmann ersichtlich sein, dass Ausgestaltungen der Erfindung ohne diese speziellen Details ausgeführt werden können. In anderen Fällen sind Strukturen und Vorrichtungen in der Form eines Blockdiagramms dargestellt, um zu vermeiden, dass die Erfindung unverständlich wird.
  • In der gesamten Beschreibung bedeutet die Bezugnahme auf „ein Ausführungsbeispiel", dass ein besonderes Merkmal, eine besondere Struktur oder eine Eigenschaft, die in Verbindung mit dem Ausführungsbeispiel beschrieben ist, in wenigstens einem Ausführungsbeispiel der vorliegenden Erfindung beinhaltet ist. Daher bezieht sich das Auftreten des Satzteils „in einem Ausführungsbeispiel" an verschiedenen Orten in der gesamten Beschreibung nicht notwendigerweise auf dasselbe Ausführungsbeispiel. Weiterhin können die bestimmten Merkmale, Strukturen oder Eigenschaften in jeder geeigneten Weise in einer oder mehreren Ausgestaltungen kombiniert sein.
  • 1 ist ein Blockdiagramm einer beispielhaften elektronischen Vorrichtung, die zum Ausführen eines Zwischenspeicheragenten in Übereinstimmung mit einer beispielhaften Ausgestaltung der Erfindung geeignet ist. Die elektronische Vorrichtung 100 ist gedacht, jedes einer großen Vielzahl von traditionellen und nicht-traditionellen elektronischen Vorrichtungen, Laptops, Desktops, Mobiltelefonen, drahtlosen Kommunikationsteilnehmereinheiten, drahtlosen Kommunikationstelefonie-Infrastrukturelementen, Personal Digital Assistants, Set-Top Boxes oder jede andere elektrische Vorrichtung darzustellen, die von den Lehren der vorliegenden Erfindung Nutzen ziehen würden. In Übereinstimmung mit der dargestellten beispielhaften Ausgestaltung kann die elektronische Vorrichtung 100 einen oder mehrere Prozessoren 102, eine Speichersteuerung 104, einen Zwischenspeicheragenten 106, Systemspeicher 108, Posted Write Buffer 110, eine Schreib-Schnittstelle 112, eine Lese-Schnittstelle 114, eine Eingabe/Ausgabe-Steuerung 116, eine Netzwerksteuerung 118, und Eingabe/Ausgabe Gerät(e) 120 aufweisen, die wie in 1 gezeigt, miteinander verbunden sind. Der Zwischenspeicheragent 106, der im Folgenden vollständiger beschrieben werden wird, kann in elektronischen Vorrichtungen von größerer oder weniger großer Komplexität verwendet werden, als der in 1 dargestellten. Ebenso können die innovativen Eigenschaften des Zwischenspeicheragenten 106, die im Folgenden näher beschrieben werden, in jeder Kombination von Hardware und Software ausgestaltet sein.
  • Prozessor(en) 102 können eine große Vielfalt von Steuerlogik darstellen, einschließlich, aber nicht auf eine oder mehrere davon begrenzt, einen Mikroprozessor, eine Programmable Logic Device (PLD), eine Programmable Logic Array (PLA), einen Application Specific Integrated Circuit (ASIC), einen Mikrocontroller und Ähnliches, obwohl die vorliegende Erfindung in dieser Hinsicht nicht begrenzt ist.
  • Die Speichersteuerung 104 kann jede Art von Chipsatz oder Steuerlogik darstellen, die den Systemspeicher 108 mit den anderen Komponenten der elektronischen Vorrichtung 100 koppelt. In einer Ausgestaltung kann die Verbindung zwischen Prozessor(en) 102 und Speichersteuerung 104 als Front-Side Bus bezeichnet werden. In einer anderen Ausgestaltung kann die Speichersteuerung 104 als North Bridge bezeichnet werden.
  • Der Speicheragent 106 kann eine Architektur haben, wie sie in größerem Detail mit Bezug auf 2 beschrieben ist. Der Zwischenspeicheragent 106 kann auch eine oder mehrere Verfahren zum Speichern von Speichereinträgen durchführen, wie etwa das in größerem Detail mit Bezug auf 3 beschriebene Verfahren. Obwohl als Bestandteil der Speichersteuerung 104 gezeigt, kann der Zwischenspeicheragent 106 auch Bestandteil einer anderen Komponente sein, zum Beispiel des/der Prozessor(en) oder der Eingabe/Ausgabe-Steuerung 116, oder kann als Software oder einer Kombination von Hardware und Software ausgeführt sein.
  • Der Systemspeicher 108 kann jede Art von Speichervorrichtung(en) darstellen, die zum Speichern von Daten und Anweisungen verwendet werden, die von Prozessoren 102 verwendet wurden oder verwendet werden. Obwohl die Erfindung diesbezüglich nicht darauf beschränkt ist, wird der Systemspeicher 108 üblicherweise aus Dynamic Random Access Memory (DRAM) bestehen. In einer Ausgestaltung kann der Systemspeicher 108 aus Rambus DRAM (RDRAM) bestehen. In einer anderen Ausgestaltung kann der Systemspeicher 108 aus Double Data Rata Synchronous DRAM (DDRSDRAM) bestehen. Die vorliegende Erfindung ist jedoch auf die hier genannten Beispiele von Speichern nicht begrenzt.
  • Posted Write Buffer 110 stellt einen relativ kleinen Speicher dar, der zum temporären Speichern von Daten verwendet wird, bevor diese an ihre Zieladresse entlassen (geschrieben) werden. Der Posted Write Buffer 110 kann indiziert sein, so dass ein bestimmter Dateneintrag entlassen werden kann, unabhängig von der Reihenfolge, in der er empfangen wurde. In einer Ausgestaltung speichert der Posted Write Buffer 110 auch die Adresse(n), an die die Daten schließlich entlassen werden. Der Posted Write Buffer 110 kann eine Steuerlogik enthalten, um unter anderem einen Zwischenspeicherzeiger zurückzusetzen und zu pflegen, um Daten an Speicherorte einzugeben, und um Daten an Speichervorrichtungen auszugeben.
  • Die Schreib-Schnittstelle 112 stellt eine unidirektionale Schnittstelle dar, durch die Daten und Befehle an den Systemspeicher 108 gesendet werden. In einer Ausgestaltung ist die Schreib-Schnittstelle 112 eine serielle Schnittstelle. In einer anderen Ausgestaltung ist die Schreib-Schnittstelle 112 eine parallele Schnittstelle.
  • Die Lese-Schnittstelle 114 stellt eine unidirektionale Schnittstelle dar, über die Daten vom Systemspeicher 108 gelesen werden. In einer Ausgestaltung ist die Lese-Schnittstelle 114 eine serielle Schnittstelle. In einer anderen Ausgestaltung ist die Lese-Schnittstelle 114 eine Parallelschnittstelle.
  • Die Eingabe/Ausgabe (Input/Output; I/O) Steuerung 116 kann jede Art von Chipsatz oder Steuerlogik darstellen, die I/O Vorrichtung(en) 120 mit den anderen Komponenten der elektronischen Vorrichtung 100 koppelt. In einer Ausgestaltung kann die I/O Steuerung 116 als South Bridge bezeichnet werden. In einer anderen Ausgestaltung kann die I/O Steuerung 116 mit der Peripheral Component Interconnect (PCI) ExpressTM Basisspezifikation, Revision 1.0a, PCI Special Interest Group, veröffentlicht 15. April 2003, übereinstimmen.
  • Die Netzwerksteuerung 118 kann jede Art von Vorrichtung darstellen, die es der elektronischen Vorrichtung 100 ermöglicht, mit anderen elektronischen Vorrichtungen oder Geräten zu kommunizieren. In einer Ausgestaltung kann die Netzwerksteuerung 118 dem The Institute of Electrical and Electronics Engineers, Inc. (IEEE) 802.11b Standard entsprechen (genehmigt 16. September 1999, Anlage zur ANSI/IEEE Std 802.11, Ausgabe 1999). In einer anderen Ausgestaltung kann die Netzwerksteuerung 118 eine Ethernet Netzwerk Schnittstellenkarte sein.
  • Die Eingabe/Ausgabe (I/O) Vorrichtung(en) können jede Art von Vorrichtung, Peripheriegerät oder Komponente darstellen, die eine Eingabe bereitstellt oder Ausgaben von der elektronischen Vorrichtung 100 verarbeitet.
  • 2 ist ein Blockdiagramm einer beispielhaften Zwischenspeicheragenten-Architektur in Übereinstimmung mit einer beispielhaften Ausgestaltung der Erfindung. Wie gezeigt, kann der Zwischenspeicheragent 106 eine oder mehrere von Steuerlogik 202, Speicher 204, Steuerung Schnittstelle 206 und Zwischenspeichermaschine 208 aufweisen, die, wie in 2 gezeigt, verbunden sind. Die Übereinstimmung mit einem Aspekt der vorliegenden Erfindung, der im Folgenden vollständig entwickelt wird, kann der Zwischenspeicheragent 206 eine Zwischenspeichermaschine 208 beinhalten, die eine oder mehrere Datendienste 210, Tabellendienste 212 und/oder Entlassungsdienste 214 umfasst. Es sollte bemerkt werden, dass, obwohl als Anzahl von ungleichen funktionalen Blöcken dargestellt, eine oder mehrere der Elemente 202 bis 214 in einem oder in mehreren multi-funktionalen Blöcken kombiniert werden können. Ähnlich kann die Zwischenspeichermaschine 208 mit weniger funktionalen Blöcken, d.h. nur mit Tabellendiensten 212, ausgeführt sein, ohne sich vom Geist und Umfang der vorliegenden Erfindung zu lösen und kann als Hardware, Software, Firmware oder jeder Kombination davon umgesetzt sein. Diesbezüglich sind der Zwischenspeicheragent 106 im Allgemeinen und die Zwischenspeichermaschine 208 im Besonderen lediglich eine beispielhafte Ausführung eines Aspekts der vorliegenden Erfindung illustrierend. Wie hier verwendet kann der Zwischenspeicheragent 106 in Hardware, Software, Firmware und/oder jeder Kombination davon umgesetzt sein.
  • Der Zwischenspeicheragent 106 hat die Befähigung, Daten an einen Posted Write Buffer zu senden, eine Tabelle von Daten im Posted Write Buffer zu pflegen und Daten vom Posted Write Buffer an eine Speicheradresse zu entlassen. In einer Ausgestaltung kann der Zwischenspeicheragent 106 dem Posted Write Buffer 110 den Speicherort mitteilen, der zum Speichern der Daten verwendet werden soll. In einer anderen Ausgestaltung können der Zwischenspeicheragent 106 und der Posted Write Buffer 110 einen gemeinsamen Algorithmus verwenden, um zu bestimmen, welcher Speicherort zum Speichern der Daten verwendet wird, ohne dass es notwendig ist, den Ort zu kommunizieren.
  • Wie hier verwendet, bietet die Steuerlogik 202 die logische Schnittstelle zwischen dem Zwischenspeicheragenten 106 und der elektronischen Host Vorrichtung 100. In dieser Hinsicht kann die Steuerlogik eine oder mehrere Aspekte der Zwischenspeicheragenten 106 verwalten, um eine Kommunikationsschnittstelle für die elektronische Vorrichtung 100 bereitzuhalten, z.B. über die Speichersteuerung 104. Die Steuerungslogik 202 kann auch den Zwischenspeicheragenten 106 aktivieren, um zu bestimmen, ob eine bestimmte Speicheradresse geschrieben (entlassen) werden kann und ob eine Lesetransaktion temporär die Möglichkeit zum Schreiben an bestimmte Speichervorrichtungen blockiert.
  • Gemäß einem Aspekt der vorliegenden Erfindung, obwohl die Ansprüche nicht derart beschränkt sind, kann die Steuerlogik 202 die Ressourcen der Zwischenspeichermaschine 208 selektiv aufrufen. Als Teil eines beispielhaften Verfahrens für Posted Write Buffering, wie in größerem Detail in Bezug auf 3 beschrieben, kann die Steuerlogik 202 die Datendienste 210 selektiv aufrufen, die Daten an einen Posted Write Buffer senden können. Die Steuerlogik 202 kann auch die Tabellendienste 212 selektiv aufrufen oder die Dienste 214 entlassen, wie in größerem Detail mit Bezug auf 3 erklärt ist, um eine Datentabelle im Posted Wirte Buffer zu pflegen, oder um Daten vom Posted Write Buffer an eine Speicheradresse zu entlassen. Wie hier verwendet, ist beabsichtigt, dass die Steuerlogik 202 jedes einer großen Vielzahl von im Stand der Technik bekannten Steuerlogiken darstellt und als solches als Mikroprozessor, als Mikrocontroller, als Field Programmable Gate Array (FPGA), als Application Integrated Circuit (ASIC), als Programmable Logic Device (PDL) etc. ausgeführt sein kann. In einigen Ausgestaltungen ist beabsichtigt, dass die Steuerlogik 202 Inhalt darstellt (zum Beispiel Softwareanweisungen, etc.), der wenn ausgeführt, die Merkmale der hier beschriebenen Steuerlogik 202 umsetzt.
  • Es ist beabsichtigt, dass der Speicher 204 eine große Vielfalt von Speichervorrichtungen und/oder dem Stand der Technik bekannten Systemen darstellt. Gemäß einer beispielhaften Ausgestaltung, obwohl die Ansprüche hierauf nicht begrenzt sind, kann der Speicher 204 flüchtige und nicht-flüchtige Speicherelemente aufweisen, möglicherweise Random Access Memory (RAM) und/oder Read Only Memory (ROM). Beispielsweise kann der Speicher 204 zum Speichern einer Tabelle zum Darstellen der im Posted Write Buffer 110 gespeicherten Daten verwendet werden.
  • Die Steuerungsschnittstelle 206 stellt einen Pfad bereit, über den der Zwischenspeicheragent 106 mit der Speichersteuerung 104 kommunizieren kann. Der Zwischenspeicheragent 106 verwendet diese Schnittstelle zum Empfangen von Daten, die an den Speicher geschrieben werden sollen und zum Senden der Daten und Befehle entlang der Schreib-Schnittstelle 112 an den Systemspeicher 108.
  • Wie oben vorgestellt, kann die Zwischenspeichermaschine 208 von der Steuerlogik 202 selektiv aufgerufen werden, um Daten an einen Posted Write Buffer zu senden, eine Datentabelle im Posted Write Buffer zu pflegen oder Daten vom Posted Write Buffer an eine Speicheradresse zu entlassen. In Übereinstimmung mit der dargestellten beispielhaften Umsetzung aus 2 ist die Zwischenspeichermaschine 208 eine oder mehrere von Datendiensten 210, Tabellendiensten 212 und Entlassungsdiensten 214 umfassend abgebildet. Obwohl als Anzahl von voneinander getrennten Elementen dargestellt, werden die Fachleute anerkennen, dass ein oder mehrere der Elemente 210214 der Zwischenspeichermaschine 208 kombiniert werden können, ohne sich vom Umfang und Geist der vorliegenden Erfindung zu lösen.
  • Datendienste 210, wie oben vorgestellt, können den Zwischenspeicheragenten 106 mit der Fähigkeit zum Senden von Daten an einen Posted Write Buffer bereitstellen. In einer beispielhaften Ausgestaltung können die Datendienste 210 die Adresse, an die die Daten letztendlich entlassen werden, mit den Daten, die temporär im Posted Write Buffer 110 gespeichert werden sollen, senden. In einer anderen Ausgestaltung kann ein Daten- Übertragungsblock, der an den Posted Write Buffer 110 gesendet wurde, einen Bit-Vektor zum Anzeigen des Zwischenspeichereintrags, in den die Daten gespeichert werden sollen, anzeigen. Alternativ kann der Bit-Vektor weggelassen werden, wenn ein gemeinsamer Algorithmus vorhanden ist, durch den die Tabellendienste 212 und der Posted Write Buffer 110 den Zwischenspeichereintrag, in den die Daten gespeichert werden sollen, vorher kennen. Der Daten-Übertragungsblock kann ein Byte von Daten oder eine Serie von Bytes aufweisen, um der Eintragungsgröße des Posted Write Buffer 110 oder des Schreibprotokolls für den Systemspeicher 108 zu entsprechen.
  • Wie oben vorgestellt, können die Tabellendienste 212 den Zwischenspeicheragenten 106 mit der Fähigkeit zum Pflegen einer Datentabelle im Posted Write Buffer bereitstellen. In einer beispielhaften Ausgestaltung können die Tabellendienste 212 eine Tabelle im Speicher 204 pflegen, die dieselben Daten wie der Posted Write Buffer 110 enthält. In einer anderen Ausgestaltung kann die im Speicher 204 gepflegte Tabelle einen Teilsatz der im Posted Write Buffer 110 gespeicherten Daten enthalten oder kann die im Speicher 204 gepflegte Tabelle einen Teilsatz der im Posted Write Buffer 110 gespeicherten Daten enthalten oder kann die Speicheradressen, die mit den Daten, die im Posted Write Buffer 110 indiziert sind, assoziiert sind, enthalten. Die Tabellendienste 212 können einen Algorithmus mit dem Posted Write Buffer 110 teilen, um zu bestimmen, in welchem Zwischenspeichereintrag ein bestimmter Datensatz gespeichert werden wird. In einem Ausführungsbeispiel kennen sowohl die Tabellendienste 212 als auch der Posted Write Buffer 110 die Größe des Posted Write Buffers 110, den Zwischenspeichereintrag, in dem der erste Datensatz nach einem Reset gespeichert wird und das Verfahren zum Auswählen folgender Zwischenspeichereinträge. Ein beispielhaftes Verfahren zum Auswählen folgender Zwischenspeichereinträge würde das Verwenden des ersten unbenutzten Eintrags sein.
  • Entlassungsdienste 214, wie oben vorgestellt, können den Zwischenspeicheragenten 106 mit der Fähigkeit zum Entlassen von Daten aus dem Posted Write Buffer an eine Speicheradresse ausstatten. In einer Ausgestaltung können die Entlassungsdienste 214 einen Column Access Strobe (CAS) Befehl an eine Speicheradresse des Systemspeichers 108 gemeinsam mit einem Bit Vektor senden, der dem Dateneintrag in dem Posted Write Buffer 110, der entlassen werden soll, entspricht. In einem anderen Ausführungsbeispiel können die Entlassungsdienste 214 nur den Bit Vektor senden, der dem Dateneintrag im Posted Write Buffer 110, der entlassen werden soll, entsprechen, wobei der Posted Write Buffer 110 die Speicheradresse enthält, an die die Daten entlassen werden.
  • 3 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Posted Write Buffering in Übereinstimmung mit einer beispielhaften Ausgestaltung der Erfindung. Es wird für den Fachmann leicht ersichtlich sein, dass obwohl die folgenden Handlungen als ein sequentieller Prozess beschrieben werden, viele der Handlungen parallel oder gemeinsam ausgeführt werden können. Zusätzlich kann die Reihenfolge der Handlungen geändert werden, ohne sich vom Wesen der Ausgestaltungen der Erfindung zu lösen.
  • Mit Ausnahme einer beispielhaften Umsetzung beginnt das Verfahren 300 mit den Datendiensten 210, die aufgerufen werden, um Speicherschreibdaten an den Posted Write Buffer 110 zu senden (302). In einer beispielhaften Ausgestaltung können die Daten von der Netzwerksteuerung 118 empfangen werden. In einer anderen Ausgestaltung können die Daten vom Prozessor 102 bereitgestellt werden.
  • Als nächstes kann der Zwischenspeicheragent 106 die Tabellendienste 212 aufrufen, um einen Tabelleneintrag zu erzeugen (304). In einer beispielhaften Ausgestaltung verfolgen die Tabellendienste 212 die an den Posted Write Buffer 110 gesendeten Daten und die Adressen, an die Daten geschrieben werden.
  • Als nächstes kann die Steuerungslogik 202 entscheiden, ob die Daten im Posted Write Buffer entlassen werden können (306). In einer Ausgestaltung würde eine Lesetransaktion aus einer besonderen Speicherbank das gleichzeitige Auftreten des Schreibens in diese Speicherbank verhindern. Auf der Adresse, an die diese Daten geschrieben werden, basierend, kann die Steuerungslogik 202 bestimmen, ob die Daten entlassen werden können.
  • Wenn die Daten nicht entlassen werden können, kann die Steuerungslogik 202 selektiv die Sendedienste 210 oder die Entlassungsdienste 214 zum Senden oder Entlassen anderer Daten aufrufen (308). In einer beispielhaften Ausgestaltung sind die Sendedienste 210 selektiv aufgerufen, andere Daten, die temporär im Posted Write Buffer 110 gespeichert werden sollen, wenn keine anderen Daten da sind, die entlassen werden können, zu senden. In einer anderen Ausgestaltung werden die Entlassungsdienste 214 selektiv aufgerufen, um andere Daten, die im Posted Write Buffer 110 gespeichert sind, zu entlassen, wenn keine ungenutzten Zwischenspeichereinträge vorhanden sind.
  • Wenn die Daten entlassen werden können, kann die Steuerungslogik 202 die Entlassungsdienste 214 und die Tabellendienste 212 selektiv aufrufen, um Daten und Update-Tabelleneinträge zu entlassen (310). In einem Ausführungsbeispiel weisen die Entlassungsdienste 214 einen Bit Vektor auf, der den Daten im Posted Write Buffer 110, die als Teil eines CAS Datenübertragungsblocks, der die geeignete Speichervorrichtung zum Speichern der Daten vorbereitet, entlassen werden soll, entspricht. Die Tabellendienste 212 können den Eintrag löschen, der mit den entlassenen Daten assoziiert ist, so dass dieser wiederverwendet werden kann.
  • 4 stellt ein Blockdiagramm eines beispielhaften Speichermediums dar, das Inhalt aufweist, der, wenn darauf von einer Vorrichtung zugegriffen wird, die Vorrichtung veranlasst, eine oder mehrere Ausgestaltungen der Erfindung umzusetzen, zum Beispiel den Zwischenspeicheragenten 106 und/oder das dazugehörige Verfahren 300. In dieser Hinsicht enthält das Speichermedium 400 den Inhalt 402 (zum Beispiel Anweisungen, Daten oder jede Kombination davon), der, wenn ausgeführt, die Vorrichtung zum Umsetzen einer oder mehrerer Aspekte des Zwischenspeicheragenten 106, der oben beschrieben wurde, umzusetzen.
  • Das maschinenlesbare (Speicher-)Medium 400 kann aufweisen, ist aber nicht darauf begrenzt, Floppy-Disketten, optische Scheiben, CD-Roms und magneto-optische Scheiben, Roms, Rams, EPROMs, EEPROMs, Magnet- oder optische Karten, Flash Speicher oder andere Daten von Medien/maschinenlesbaren Medium, die zum Speichern elektronischer Anweisungen geeignet sind. Darüber hinaus kann die vorliegende Erfindung auch als Computerprogrammprodukt geladen werden, wobei das Programm von einem ferngesteuerten Computer an einen anfragenden Computer mittels Datensignalen übertragen werden kann, die in einer Trägerwelle oder anderen sich ausbreitenden Medien über eine Kommunikationsverbindung (zum Beispiel ein Modem, Funk oder Netzwerkverbindung) verkörpert sind.
  • Viele der Verfahren sind in ihrer grundlegendsten Form beschrieben, aber Handlungen können hinzugefügt oder aus jedem der Verfahren gestrichen werden und Informationen können hinzugefügt oder aus jeder der beschriebenen Nachrichten entfernt werden, ohne den grundlegenden Schutzbereich der Erfindung zu verlassen. Jede Anzahl von Veränderungen des erfinderischen Konzepts wird als innerhalb des Umfangs und des Wesens der vorliegenden Erfindung angesehen. Unter diesem Gesichtspunkt sind die besonderen beispielhaften Ausgestaltungen nicht vorgesehen, die Erfindung einzuschränken, sondern sie lediglich zu illustrieren. Daher soll der Umfang der vorliegenden Erfindung nicht durch die besonderen Beispiele, die oben bereitgestellt sind, bestimmt werden, sondern nur durch die eindeutige Sprache der sich anschließenden Ansprüche.
  • ZUSAMMENFASSUNG
  • In einigen Ausgestaltungen werden ein Verfahren, eine Vorrichtung und ein System für Posted Write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle vorgestellt. Diesbezüglich wird ein Speicheragent zum Senden von Daten an einen Posted Write Buffer und zum Senden einer unabhängigen Meldung an den Speicher zum Schreiben der Daten an eine Adresse eingeführt. Andere Ausgestaltungen werden ebenso offenbart und beansprucht.

Claims (22)

  1. Verfahren mit den Schritten – Empfangen von in einen Speicher zu schreibenden Daten; – Speichern der Daten in einem Schreib-Zwischenspeicher; und – Empfangen einer unabhängigen Meldung zum Schreiben der Daten an eine Speicheradresse.
  2. Verfahren nach Anspruch 1, gekennzeichnet durch Schreiben der Daten an die Speicheradresse in einer anderen Reihenfolge als der beim Empfangen der Daten.
  3. Verfahren nach Anspruch 1, gekennzeichnet durch Empfangen der Daten über einen unidirektionalen Bus.
  4. Verfahren nach Anspruch 1, gekennzeichnet durch Empfangen eines Zwischenspeicherindex, in dem die Daten zu speichern sind.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Speichern der Daten in einem Zwischenspeicher das Speichern der Daten in einem vorbestimmten Zwischenspeicherindex aufweist.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Empfangen einer Meldung zum Schreiben der Daten an eine Speicheradresse das Empfangen eines Column Access Strobe (CAS) Befehls mit dem Zwischenspeicherort der Daten, die in den Speicher geschrieben werden sollen, umfasst.
  7. Elektronische Vorrichtung mit: – einem Prozessor zum Verarbeiten von Daten; – einem Speicher zum Speichern von Daten; – einer Netzwerksteuerung zum Kommunizieren von Daten; und – einer Zwischenspeichermaschine, die mit der Netzwerksteuerung, dem Speicher und dem Prozessor verbunden ist, wobei die Zwischenspeichermaschine eingerichtet ist, Daten an den Speicher zu senden und eine unabhängige Meldung an den Speicher zu senden, um die Daten an eine Adresse zu schreiben.
  8. Elektronische Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die Zwischenspeichermaschine eine Tabelle zum Verfolgen der in einem Schreibzwischenspeicher des Speichers gespeicherten Daten führt.
  9. Elektronische Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die Zwischenspeichermaschine eingerichtet ist, einen Bit-Vektor zu senden, um anzuzeigen, welcher Dateneintrag aus einem Zwischenspeicher in den Speicher ausscheidet.
  10. Elektronische Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass die Zwischenspeichermaschine eingerichtet ist, einen Zwischenspeichereintrag zu bestimmen, der vom Speicher zum temporaren Speichern der Daten verwendet werden wird.
  11. Speichermedium, das einen Inhalt aufweist, der, wenn er auf einer darauf zugreifenden Maschine ausgeführt wird, die darauf zugreifende Maschine veranlasst, Daten an einen Posted Write Buffer in einer Speichereinrichtung zu senden und eine unabhängige Meldung zu senden, um die Daten in den Speicher auszuscheiden.
  12. Speichermedium nach Anspruch 12, gekennzeichnet durch Inhalt, der, wenn er auf einer darauf zugreifenden Maschine ausgeführt wird, die darauf zugreifende Maschine veranlasst, basierend auf einem gemeinsamen Algorithmus einen Speichereintrag zu bestimmen, der von der Speichervorrichtung verwendet werden wird, um die Daten temporar zu speichern.
  13. Speichermedium nach Anspruch 11, gekennzeichnet durch Inhalt, der, wenn er auf einer darauf zugreifenden Maschine ausgeführt wird, die darauf zugreifende Maschine veranlasst, die Daten aus dem Posted Write Buffer in einer anderen Reihenfolge als der, in der die Daten gesendet wurden, auszuscheiden.
  14. Speichermedium nach Anspruch 11, gekennzeichnet durch Inhalt, der, wenn er auf einer darauf zugreifenden Maschine ausgeführt wird, die darauf zugreifende Maschine veranlasst, die Daten von der Speichereinrichtung zu lesen, bevor die zwischengespeicherten Daten an die Speichereinrichtung ausgeschieden werden.
  15. Speichermedium nach Anspruch 11, wobei der Inhalt zum Senden einer unabhängigen Meldung zum Ausscheiden der Daten an den Speicher Inhalt aufweist, der, wenn er auf einer darauf zugreifenden Maschine ausgeführt wird, die darauf zugreifende Maschine veranlasst, einen Column Access Strobe (CAS) Befehl mit dem Zwischenspeicherindex der an den Speicher auszuscheidenden Daten zu senden.
  16. Vorrichtung mit: – einer Prozessorschnittstelle; – unidirektionalen Speicher Schreib- und Lese-Schnittstellen; und – einer Steuerlogik, die mit den Prozessor und den unidirektionalen Speicher Lese- und Schreib-Schnittstellen verbunden ist, wobei die Steuerlogik Daten aus der Speicher-Schreib-Schnittstelle, die in einem Zwischenspeicher temporär gespeichert werden sollen, sendet und eine unabhängige Meldung aus der Speicher-Schreib-Schnittstelle zum Schreiben der Daten an eine Speicheradresse sendet.
  17. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, dass die Steuerlogik eine Tabelle zum Verfolgen der aus der Speicher Schreibschnittstelle gesendeten Daten, basierend auf einem mit einer Speichereinrichtung gemeinsam verwendeten Algorithmus führt.
  18. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, dass die Steuerlogik im Wesentlichen zum Beschleunigen des Speicherlesens über die Speicher-Lese-Schnittstelle durch Ausscheiden von Daten an den Speicher, die mit der Leseaktivität kollidieren, eingerichtet ist.
  19. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, dass die Steuerlogik zum Senden von Column Access Strobe (CAS) Befehlen aus der Speicher Schreib-Schnittstelle einschließlich eines Zwischenspeicherindex der Daten, die an die Speicheradresse ausgeschieden werden sollen, eingerichtet ist.
  20. Vorrichtung mit: – einer Speichervorrichtung; – zwei unidirektionalen Schnittstellen; – einem Zwischenspeicher und – einer mit der Speichervorrichtung, den unidirektionalen Schnittstellen und dem Zwischenspeicher verbundenen Steuerlogik, wobei die Steuerlogik zum temporären Speichern empfangener Daten im Zwischenspeicher und zum Schrei ben der Daten an die Speichervorrichtung als Antwort auf eine empfangene unabhängige Meldung eingerichtet ist.
  21. Vorrichtung nach Anspruch 20, gekennzeichnet durch eine Steuerlogik, die basierend auf einem gemeinsam mit einer Speichersteuerung genutzten Algorithmus, zum Bestimmen eines zum temporären Speichern zu verwendenden Zwischenspeicherindex eingerichtet ist.
  22. Vorrichtung nach Anspruch 20, dadurch gekennzeichnet, dass die Steuerlogik zum Ausscheiden der Daten aus dem Zwischenspeicher an die Speichereinrichtung in einer anderen Reihenfolge als der, in der die Daten empfangen wurden, eingerichtet ist.
DE112006001542T 2005-06-30 2006-06-29 Verfahren, Vorrichtung und System für posted write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle Ceased DE112006001542T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/173,658 2005-06-30
US11/173,658 US20070005868A1 (en) 2005-06-30 2005-06-30 Method, apparatus and system for posted write buffer for memory with unidirectional full duplex interface
PCT/US2006/025752 WO2007005698A2 (en) 2005-06-30 2006-06-29 Method, apparatus and system for posted write buffer for memory with unidirectional full duplex interface

Publications (1)

Publication Number Publication Date
DE112006001542T5 true DE112006001542T5 (de) 2008-05-08

Family

ID=37188752

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006001542T Ceased DE112006001542T5 (de) 2005-06-30 2006-06-29 Verfahren, Vorrichtung und System für posted write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle

Country Status (7)

Country Link
US (1) US20070005868A1 (de)
JP (1) JP2008547139A (de)
KR (1) KR20080016681A (de)
DE (1) DE112006001542T5 (de)
GB (1) GB2441081A (de)
TW (1) TWI344083B (de)
WO (1) WO2007005698A2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281101B2 (en) * 2008-12-27 2012-10-02 Intel Corporation Dynamic random access memory with shadow writes
US8713248B2 (en) * 2009-06-02 2014-04-29 Nokia Corporation Memory device and method for dynamic random access memory having serial interface and integral instruction buffer
KR101639672B1 (ko) * 2010-01-05 2016-07-15 삼성전자주식회사 무한 트랜잭션 메모리 시스템 및 그 동작 방법
KR20150111937A (ko) 2013-01-30 2015-10-06 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 비휘발성 메모리 기록 메커니즘
WO2016115737A1 (en) 2015-01-23 2016-07-28 Hewlett-Packard Development Company, L.P. Aligned variable reclamation
JP6356624B2 (ja) * 2015-03-23 2018-07-11 東芝メモリ株式会社 メモリデバイスおよび情報処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590310A (en) * 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
JPH07129456A (ja) * 1993-10-28 1995-05-19 Toshiba Corp コンピュータシステム
GB2285524B (en) * 1994-01-11 1998-02-04 Advanced Risc Mach Ltd Data memory and processor bus
TW388982B (en) * 1995-03-31 2000-05-01 Samsung Electronics Co Ltd Memory controller which executes read and write commands out of order
AU9604698A (en) * 1997-10-10 1999-05-03 Rambus Incorporated Method and apparatus for two step memory write operations
AU5877799A (en) * 1998-09-18 2000-04-10 Pixelfusion Limited Apparatus for use in a computer system
US6640292B1 (en) * 1999-09-10 2003-10-28 Rambus Inc. System and method for controlling retire buffer operation in a memory system
US6496905B1 (en) * 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
US6591349B1 (en) * 2000-08-31 2003-07-08 Hewlett-Packard Development Company, L.P. Mechanism to reorder memory read and write transactions for reduced latency and increased bandwidth
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US6941425B2 (en) * 2001-11-12 2005-09-06 Intel Corporation Method and apparatus for read launch optimizations in memory interconnect

Also Published As

Publication number Publication date
WO2007005698A2 (en) 2007-01-11
TWI344083B (en) 2011-06-21
GB0722947D0 (en) 2008-01-02
WO2007005698A3 (en) 2007-08-02
US20070005868A1 (en) 2007-01-04
JP2008547139A (ja) 2008-12-25
GB2441081A (en) 2008-02-20
KR20080016681A (ko) 2008-02-21
TW200710649A (en) 2007-03-16

Similar Documents

Publication Publication Date Title
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE69031658T2 (de) Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz
DE60115795T2 (de) Adaptiver Wiederholungsmechanismus
DE102018113447A1 (de) Speichervorrichtung zum Koppeln mit einem Host und Verfahren zum Betreiben des Hosts und der Speichervorrichtung
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102006035870A1 (de) Halbleiterspeicher mit gemeinsam genutzter Schnittstelle
DE112006001542T5 (de) Verfahren, Vorrichtung und System für posted write Buffer für Speicher mit unidirektionaler Vollduplex-Schnittstelle
DE3439302A1 (de) Speichersteuerungsvorrichtung
DE69123987T2 (de) Stossbetrieb für Mikroprozessor mit externem Systemspeicher
DE69031297T2 (de) Eingabewarteschlange für Speichersubsysteme
DE102013114256A1 (de) Systeme und Verfahren zur Beibehaltung der Informationskohärenz
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE102006035869A1 (de) Dualtor-Halbleiterspeicher
DE112012006227T5 (de) Remotezugriff auf den direkten Speicher mit reduzierter Latenzzeit
DE10219621A1 (de) Schnelle Prioritätsbestimmungsschaltung mit rotierender Priorität
DE102006036837A1 (de) Datenspeicherverwaltungsverfahren und -system
DE10393803T5 (de) Verfahren und Vorrichtung zum Bestimmen einer Seitenverwaltungsimplementierung bei dynamischem Speicher mit wahlfreiem Zugriff
DE68925336T2 (de) Datenverarbeitungsvorrichtung mit Cache-Speicher
DE19714681B4 (de) Speichersteuergerät
DE69030072T2 (de) Schneller Durchschreib-Cache-Speicher
DE102019112291A1 (de) Verbessertes speicherungsmodell für ein computersystem mit persistentem systemspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection