DE69724463T2 - Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten - Google Patents

Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten Download PDF

Info

Publication number
DE69724463T2
DE69724463T2 DE69724463T DE69724463T DE69724463T2 DE 69724463 T2 DE69724463 T2 DE 69724463T2 DE 69724463 T DE69724463 T DE 69724463T DE 69724463 T DE69724463 T DE 69724463T DE 69724463 T2 DE69724463 T2 DE 69724463T2
Authority
DE
Germany
Prior art keywords
memory
access
control device
section
controller
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 - Fee Related
Application number
DE69724463T
Other languages
English (en)
Other versions
DE69724463D1 (de
Inventor
Manish Muthal
V. Nilesh SHAH
Kuljit Bains
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 DE69724463D1 publication Critical patent/DE69724463D1/de
Application granted granted Critical
Publication of DE69724463T2 publication Critical patent/DE69724463T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der Computersysteme. Im Besonderen betrifft die vorliegende Erfindung ein Computersystem, das einen Speichercontroller und einen Grafikcontroller einsetzt, die eine Speicherressource gemeinsam nuten.
  • STAND DER TECHNIK
  • Eine Vielzahl von Computersystemen mit einem Mikroprozessor verwendet einen Speichercontroller und einen Grafikcontroller. Der Speichercontroller steuert den Zugriff durch den Mikroprozessor und andere periphere integrierte Schaltungen auf den Systemspeicher. Der Grafikcontroller steuert das Anzeigen der durch den Mikroprozessor vorgesehenen Daten auf einem Anzeigebildschirm, wie etwa einer Kathodenstrahlröhre (CRT) unter Verwendung eines Rahmenpuffers. Sowohl der Systemspeicher als auch der Rahmenpuffer werden für gewöhnlich unter Verwendung von Arrays eines dynamischen RAM-Speichers (DRAM) implementiert. Bei einer Reihe dem Stand der Technik entsprechender Systeme weist der Speichercontroller einen exklusiven Zugriff auf den Systemspeicher auf, und der Grafikcontroller weist in ähnlicher Weise exklusiven Zugriff auf den Rahmenpuffer auf.
  • Zur Kostenreduzierung wurden bei einer Reihe von Computersystemen der Rahmenpuffer und der Systemspeicher in einem vereinheitlichten oder gemeinsamen Speicher integriert, wodurch Hersteller von Computereinrichtungen die Kosten dadurch senken können, dass kein separater Speicher für den Rahmenpuffer erforderlich ist. Die Integration des Rahmenpuffers und des Systemspeichers in einem gemeinsamen Speicher ist auch aus dem Grund wünschenswert, da dadurch ungenutzte Bereiche des Rahmenpuffers als Systemspeicher verwendet werden können, wenn der gesamte oder nur ein Teil des Rahmenpuffers nicht eingesetzt wird. Diese Effizienz kann nur schwer mit einem separaten Rahmenpuffer erreicht werden, der durch einen Grafikcontroller gesteuert wird.
  • Ein Beispiel für eine Computersystemarchitektur, bei der der Rahmenpuffer und der Systemspeicher in einer gemeinsamen Speicherressource realisiert werden, ist die Shared Memory Buffer Architecture (SMBA) (auch bekannt als Unified Memory Architecture (UMA)) der Intel Corporation, Santa Clara, Kalifornien, USA.
  • Eine gemeinsame Speicherarchitektur gemäß der vorstehenden Beschreibung wird durch das Vorsehen einer DRAM-Array implementiert, auf welche sowohl der Speichercontroller als auch der Grafikcontroller zugreifen können, wobei der zugeordnete Speicherraum der DRAM-Array auf den Systemspeicher und den Rahmenpuffer aufgeteilt sind. Bei einem derartigen Computersystem weist der Speichercontroller für gewöhnlich Zugriff auf den gesamten gemeinsamen Speicher auf, einschließlich des als Rahmenpuffer bezeichneten Bereichs. Wenn der Rahmenpuffer nicht erforderlich ist, so kann der Speichercontroller somit auf den als Rahmenpuffer designierten Speicherbereich zugreifen und diesen Speicherbereich als Systemspeicher nutzen. Da die DRAM-Array von dem Speichercontroller und dem Grafikcontroller gemeinsam genutzt wird, ist für gewöhnlich eine Arbitrierungseinheit (oder ein Arbiter) in den Computersystemen vorgesehen, welche die Konfiguration des gemeinsamen Speichers einsetzt, um den fairen und effizienten Zugriff auf die DRAM-Array sowohl durch den Speichercontroller als auch durch den Grafikcontroller zu gewährleisten.
  • In US-A-5,450,542 wird ein gemeinsamer Speicher offenbart, auf den unabhängig durch einen Grafikcontroller und einen Kern-Logikcontroller zugegriffen werden kann, wobei der gemeinsame Speicher als Grafikcontroller oder als Hauptspeicher fungiert. Das Bezugsdokument offenbart die programmierbare neue Zuweisung eines ungenutzten Bereichs eines Anzeigespeichers zur Systemspeichernutzung.
  • Während die Implementierung einer Konfiguration eines gemeinsamen Speichers eine Reihe von Kostenvorteilen schafft, leiden derartige Speicherkonfigurationen unter einer niedrigen Speicherbandbreite, da der gemeinsame Speicher nicht länger ist als eine dedizierte Ressource des Grafikcontrollers oder des Speichercontrollers. Während die Systemleistung bei der Ausführung von nicht grafikintensiven Anwendungen nicht signifikant beeinflusst wird, kann die Systemleistung deutlich leiden, wenn das Computersystem eine grafikintensive Anwendung wie etwa eine Multimediaanwendung ausführt. In diesen Fällen konkurrieren der Grafikcontroller und der Speichercontroller stark um den Zugriff auf den gemeinsamen Speicher. Ein Zugriff des Grafikcontrollers auf den gemeinsamen Speicher über einen längeren Zeitraum kann die Zugreifbarkeit auf den Systemspeicher durch den Speichercontroller um bis zu fünfzig Prozent verringern. Daraus resultiert, dass die Leistung des Computersystems erheblich leiden kann.
  • Die vorliegende Erfindung versucht die Leistungseinbußen zu adressieren, die aus einer Konfiguration eines gemeinsamen Speichers resultieren, wie dies vorstehend im Text beschrieben worden ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Computersystem gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung eine Schnittstellenanordnung gemäß dem gegenständlichen Anspruch 8.
  • Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 12.
  • Gemäß dem ersten Aspekt der Erfindung ist ein Computersystem vorgesehen, das einen Speichercontroller und einen Grafikcontroller aufweist. In einem Ausführungsbeispiel verwendet das Computersystem eine Shared Frame Buffer Architecture und weist somit einen gemeinsamen Speicher in Form einer Bank von DRAMs auf. Auf den gemeinsamen Speicher kann sowohl durch den Speicher- als auch durch den Grafikcontroller zugegriffen werden. Der gemeinsame Speicher weist mindestens eine gemeinsame DRAM-Zeile auf, in der eine Shared Frame Buffer (SFB) Apertur definiert ist. Eine Schnittstelle sieht selektiv Zugriff auf die SFB-Apertur über den Grafikcontroller oder den Speichercontroller vor. Dies erleichtert den gleichzeitigen Zugriff auf die SFB-Apertur durch den Grafikcontroller und auf die verbleibenden DRAM-Zeilen durch den Speichercontroller, wobei die Zugreifbarkeit auf mindestens eine gemeinsam genutzte DRAM-Zeile durch den Speichercontroller aufrechterhalten wird. Zur Verringerung der Wahrscheinlichkeit für eine Zugriffskonkurrenz auf die mindestens eine gemeinsam genutzte DRAM-Zeile ist die SFB- Apertur vorzugsweise an einem unteren Speicherplatz in dem gemeinsamen Speicher definiert.
  • Die Schnittstelle weist eine Selektorschaltung auf, wie zum Beispiel einen Multiplexer oder einen Q-Switch, wobei die Schaltung so gekoppelt ist, dass sie entsprechende Speicheradressierungs- und Steuersignale von dem Grafikcontroller und dem Speichercontroller über einen dedizierten Bus von jedem dieser Controller empfängt. Die Selektorschaltung ist selektiv derart funktionsfähig, dass entweder die Speicheradresse an die gemeinsam genutzte DRAM-Zeile vorsieht, in der die SFB-Apertur definiert ist, und wobei sie ferner selektiv Zugriff auf die gemeinsam genutzte DRAM-Zeile durch einen der Controller über einen Datenbus vorsieht. Die Selektorschaltung empfängt einen Steuereingang von einer Logikschaltung, welche bestimmt, ob eine von dem Speichercontroller empfangene Anforderung für einen Speicherzugriff eine Adresse in der mindestens einen gemeinsamen DRAM-Zeile oder eine Adresse in den verbleibenden DRAM-Zeilen betrifft.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung ist ein Verfahren vorgesehen, das einen gleichzeitigen Zugriff durch einen Grafikcontroller und einen Speichercontroller auf einen gemeinsamen Speicher vorsieht, wobei der gemeinsame Speicher einen ersten Speicherabschnitt und einen zweiten Speicherabschnitt aufweist. Der erste Speicherabschnitt, bei dem es sich um eine einzelne DRAM-Zeile handeln kann, weist eine Shared Frame Buffer (SFB) Apertur auf. Beim Empfang einer Anforderung für einen Zugriff auf eine erste Speicheradresse in dem ersten Speicherabschnitt von dem Grafikcontroller wird dem Grafikcontroller Zugriff auf den ersten Speicherabschnitt gewährt. Wenn eine Anforderung für einen Zugriff auf eine zweite Speicheradresse von dem Speichercontroller empfangen wird, wird bestimmt, ob sich die zweite Speicheradresse in dem ersten oder dem zweiten Speicherabschnitt des gemeinsamen Speichers befindet. Der Zugriff auf die zweite Speicheradresse wird dem Speichercontroller gewährt, wenn sich die zweite Speicheradresse in dem zweiten Speicherabschnitt befindet, um den gleichzeitigen Zugriff durch den Grafikcontroller und den Speichercontroller entsprechend auf die ersten und zweiten Speicherabschnitte zu ermöglichen. Wenn sich die zweite Speicheradresse im Gegensatz dazu in dem ersten Speicherabschnitt befindet, wird der Zugriff durch den Speichercontroller auf den ersten Speicherabschnitt verweigert, oder die konkurrierenden Anforderungen für einen Zugriff auf den ersten Speicherabschnitt durch die Grafik- und Speichercontroller wird einer Arbitrierungseinheit zur Arbitrierung zugeführt.
  • Weitere Merkmale der vorliegenden Erfindung werden aus den beigefügten Zeichnungen sowie aus der folgenden genauen Beschreibung deutlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist beispielhaft und ohne einzuschränken in den Abbildungen der anhängigen Zeichnungen veranschaulicht, in denen die gleichen Bestandteile mit den gleichen Bezugsziffern bezeichnet sind. Es zeigen:
  • 1 ein Blockdiagramm eines Computersystems, in dem die vorliegende Erfindung implementiert werden kann;
  • 2 ein Blockdiagramm eines Computersystems, das ein erstes Ausführungsbeispiel der vorliegenden Erfindung umfasst;
  • 3 ein Blockdiagramm eines Computersystems, das ein zweites Ausführungsbeispiel der vorliegenden Erfindung umfasst;
  • 4 ein Blockdiagramm eines Computersystems, das ein drittes Ausführungsbeispiel der vorliegenden Erfindung umfasst; und
  • 5 ein Flussdiagramm, das ein Verfahren für das Vorsehen eines gleichzeitigen Zugriffs durch erste und zweite Agenten auf einen gemeinsamen Speicher gemäß der vorliegenden Erfindung veranschaulicht.
  • GENAUE BESCHREIBUNG
  • Beschrieben werden ein Verfahren und eine Vorrichtung für einen gleichzeitigen Zugriff durch eine Mehrzahl von Agenten (Steuereinrichtungen) auf einen gemeinsamen Speicher. In der folgenden Beschreibung werden zum Zwecke der Erläuterung verschiedene spezielle Details ausgeführt, um ein umfassendes Verständnis der vorliegenden Erfindung vorzusehen. Für den Fachmann auf dem Gebiet ist es jedoch offensichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann.
  • In anfänglichem Bezug auf die Abbildung aus 1 ist in Form eines Blockdiagramms ein Computersystem 10 dargestellt, das als Hauptbestandteile einen Prozessor 12, einen Speichercontroller 14, einen Speicherarbiter 16, einen Grafikcontroller 18 und einen gemeinsamen Speicher 20 aufweist. Der Prozessor 12 führt verschiedene Befehle aus und ist mit einem Host-Bus 22 gekoppelt. Eine Busbrücke 24 erleichtert die Kommunikation zwischen dem Host-Bus 22 und einem peripheren Bus 26. Der periphere Bus 26 kann gemäß der Peripheral Components Interconnect (PCI) Local Bus Specification Revision 2.1, veröffentlicht am 1. Juni 1995, betrieben werden, wobei es sich bei der Busbrücke 24 um eine Host-to-PCI-Brücke handelt. Die Busbrücke 24 weist eine Datenwegeinheit 28 und einen Systemcontroller 30 auf. Der Speichercontroller 14 und die Speicherarbitrierungseinheit 16 sind in dem Systemcontroller 30 implementiert. In einem Ausführungsbeispiel umfasst die Datenwegeinheit 28 eine Datenwegeinheit 82438VX, und der Systemcontroller 30 umfasst einen Systemcontroller 82437VX, die beide von der Intel Corporation, Santa Clara, Kalifornien, USA, hergestellt werden. Der Speichercontroller 14 und die Speicherarbitrierungseinheit 16 müssen nicht in einem Systemcontroller implementiert werden, wobei sie vielmehr unabhängige Funktionseinheiten in dem Computersystem 10 darstellen können. Die Busbrücke 24 ist durch einen dedizierten Speicherbus 32 mit dem gemeinsamen Speicher 20 gekoppelt. Der Speicherbus 32 umfasst Steuer- und Adressierungsleitungen 32.1 und Datenleitungen 32.2. Im Besonderen umfassen durch den Speichercontroller auf den Leitungen 32.1 vorgesehene Steuersignale ein Schreibfreigabesignal (Write Enable Signal (WE)), ein Zeilenzugriffs-Strobesignal (Row Access Strobe Signal (RAS#)) und ein Spaltenadressierungs-Strobesignal (Column Address Strobe Signal (CAS#)). Der Speichercontroller 14 steuert ein Speicheradressierungssignal (Memory Address Signal (MA)) auf die Steuer- und Adressierungsleitungen 32.1. Daten werden auf den 64-Bit-Datenleitungen 32.1 zu und von dem gemeinsamen Speicher 20 übertragen. Der Grafikcontroller 18 ist in ähnlicher Weise über einen Bus 34 mit dem gemeinsamen Speicher 20 gekoppelt, der Steuer- und Adressierungsleitungen 34.1 umfasst, die mit den Steuer- und Adressierungsleitungen 32.1 des Speicherbusses 32 verbunden sind, und Datenleitungen 34.2, die in ähnlicher Weise mit den Datenleitungen 32.2 verbunden sind.
  • Der dargestellte gemeinsame Speicher 20 umfasst N Zeilen DRAM 20.1 bis 20.N, wobei jede DRAM-Zeile so gekoppelt ist, dass sie Steuer- und Adressierungssignale auf den Leitungen 32.1 des Speicherbusses 32 empfängt, und so dass sie Daten auf den Datenleitungen 32.2 des Speicherbusses 32 empfängt und ausgibt. Somit kann auf jede DRAM-Zeile entweder durch den Speichercontroller 14 oder den Grafikcontroller 18 zugegriffen werden, und zwar abhängig davon, welcher dieser Agenten den Speicherbus 32 steuert. Gemäß der Abbildung weist die DRAM-Zeile 20.N eine Apertur 25 des gemeinsamen Rahmenpuffers auf, wobei die Rahmenpufferapertur 25 zur Verwendung durch. den Grafikcontroller 18 vorgesehen ist. Die Rahmenpufferapertur 25 ist nahe dem oberen Bereich des Systemspeichers 20 mit einer Bindung an das Betriebssystem angeordnet, und der Speicher oberhalb des Rahmenpuffers 25 kann durch das Betriebssystem nie zugewiesen werden. Hiermit wird festgestellt, dass die Größe und die Position des Rahmenpuffers 25 in dem gemeinsamen Speicher 20 definiert und abhängig von den Anforderungen des Computersystems 10 modifiziert werden können. Hiermit wird festgestellt, dass nur eine einzige Anordnung von Steuer- und Adressierungsleitungen 32.1 und Datenleitungen 32.2 den gemeinsamen Speicher 20 mit den anderen Komponenten des Computersystems 10 über eine einzelne Anschlussschnittstelle verbindet.
  • Der Speichercontroller 14 ist so gekoppelt, dass er Speicherzugriffaufforderungen von einer Reihe von Komponenten in dem Computersystem 10 empfängt, wie etwa dem Prozessor 12, PCI-Mastern und Erweiterungsbusbrücken. Der Speichercontroller 14 kann danach als Reaktion auf derartige Speicherzugriffsanforderungen Daten aus dem gemeinsamen Speicher 20 lesen oder in diesen schreiben. Für einige Operationen, wie etwa DRAM-Auffrischung, erlangt der Speichercontroller 14 Zugriff auf alle Abschnitte des gemeinsamen Speichers 20. Für andere Operationen, wie etwa Speicherzugriffsanforderungen, muss der Speichercontroller 14 nur auf den Systemspeicherabschnitt zugreifen (d. h. den adressierbaren Speicher, der nicht der gemeinsamen Rahmenpufferapertur 25 in dem gemeinsamen Speicher 20 zugeordnet ist). Für wiederum andere Operationen muss der Speichercontroller 14 unter Umständen auf die gemeinsame Rahmenpufferapertur 25 zugreifen.
  • Der Grafikcontroller 18 greift auf die gemeinsame Rahmenpufferapertur 25 in dem gemeinsamen Speicher 20 zu, um darin Grafikdaten zu speichern, die letztlich auf einer Anzeigevorrichtung (nicht abgebildet) angezeigt werden sollen, wie etwa einer Kathodenstrahlröhre (CRT) oder einer Flüssigkristallanzeige (LCD), die bei 26 mit dem peripheren Bus gekoppelt ist. Der Grafikcontroller 18 ist mit dem peripheren Bus 26 gekoppelt und empfängt Grafiken, Daten und Befehle über den peripheren Bus 26. Die Grafiken, Daten und Befehle stammen von dem Prozessor 12 oder einer Reihe anderer Vorrichtungen oder Bauteile, die auf im Fach bekannte Art und Weise mit dem peripheren Bus 26 verbunden sind.
  • Hiermit wird festgestellt, dass sowohl der Grafikcontroller 18 als auch der Speichercontroller 14 über den einzelnen Speicherbus 32 auf den gemeinsamen Speicher 20 zugreifen. Die auch als "Speicherarbiter" bezeichnete Arbitrierungseinheit 16 ist vorgesehen, um den Zugriff auf den Speicherbus 32 durch den Speichercontroller 14 und den Grafikcontroller 18 zu koordinieren. Im Besonderen empfängt die Arbitrierungseinheit 16 Speicherzugriffsanforderungen sowohl von dem Speichercontroller 14 als auch von dem Grafikcontroller 18, bestimmt die relative Priorität der Zugriffsanforderungen und gewährt danach einem bestimmten Agenten oder einer bestimmten Vorrichtung abhängig von den relativen Prioritäten der Anforderungen Zugriff. In einem Ausführungsbeispiel wird dem Speichercontroller 14 die Standardsteuerung des Speicherbusses 32 für einen Zugriff auf den gemeinsamen Speicher 20 gewährt. Die Arbitrierungseinheit 16 ist so gekoppelt, dass sie ein Speicherbus-Anforderungssignal (MREQ#) über die Leitung 35 von dem Grafikcontroller 18 empfängt, wodurch der Arbitrierungseinheit 16 angezeigt wird, dass der Grafikcontroller 18 auf den Speicherbus 32 zugreifen möchte. Danach arbitriert die Arbitrierungseinheit 1 zwischen der Zugriffsanforderung des Grafikcontrollers 18 und konkurrierenden Zugriffsanforderungen von dem Speichercontroller 14. Wenn die Arbitrierungseinheit 16 danach bestimmt, dass dem Grafikcontroller 18 Zugriff auf den gemeinsamen Speicher 20 gewährt wird, sieht die Arbitrierungseinheit 16 auf der Leitung 36 ein Speicherbusgewährungssignal (MGNT#) vor. Ein Speicherarbitrierungsprotokoll, gemäß dem die Arbitrierungseinheit 16 funktionsfähig ist, wird in der U.S. Patentanmeldung 08/516,495 mit dem Titel "Method and Apparatus for Arbitrating Access Requests to a Shared Computer System Memory by a Graphics Controller and a Memory Controller", eingereicht am 17. August 1995 und auf den Zessionar der vorliegenden Erfindung übertragen, beschrieben.
  • Die in der Abbildung in dem Systemcontroller 30 vorgesehene Arbitrierungseinheit 16 kann ferner als separate Schaltung implementiert werden.
  • In dem vorstehend beschriebenen Computersystem 10 konkurrieren Zugriffsanforderungen von dem Grafikcontroller 18 mit Speicherzugriffsanforderungen von dem Speichercontroller 14, die wiederum von einer Reihe anderer Bauteile in dem Computersystem 10 stammen. Ferner ist es wichtig festzustellen, dass der Grafikcontroller 18 tatsächlich nur den Zugriff auf eine DRAM-Zeile 20.N erfordert, welche den gemeinsamen Rahmenpuffer 25 vorsieht. Für eine Umsetzung eines derartigen Zugriffs muss der Grafikcontroller 18 die Kontrolle über den einzigen Speicherbus 32 aufweisen. Wenn der Grafikcontroller 18 somit die Kontrolle über den Speicherbus 32 aufweist, wird verhindert, dass der Speichercontroller 14 Zugriffsanforderungen ausgibt, die aus dem Controller selbst stammen oder von einer Vorrichtung einer Reihe weiterer Vorrichtungen empfangen werden. Demgemäß können als Folge der verringerten Bandbreite, verursacht durch die Konfiguration des gemeinsamen Speichers, Systemleistungseinbußen auftreten.
  • Die Abbildung aus 2 zeigt ein Computersystem 210 zur Implementierung eines Verfahrens, das einen gleichzeitigen Zugriff durch mindestens zwei Agenten, wie etwa einen Speichercontroller 214 und einen Grafikcontroller 218, auf einen gemeinsamen Speicher 220 vorsieht. Zur besseren Veranschaulichung ist der gemeinsame Speicher 220 mit nur zwei Speicherabschnitten in Form der DRAM-Zeilen 220.1 und 220.2 dargestellt. Eine gemeinsame Rahmenpufferapertur 225 ist in der DRAM-Zeile 220.2 implementiert. Wie in dem vorstehend in Bezug auf die Abbildung aus 1 beschriebenen Computersystem umfasst das Computersystem 210 einen Prozessor 212, der mit einem Host-Bus 222 gekoppelt ist, der über eine Busbrücke 224 mit einem peripheren Bus 226 kommuniziert. Die Busbrücke 224 weist eine Datenwegeinheit 228 und einen Systemcontroller 230 auf, worin der Speichercontroller 214 und eine Speicherarbitrierungseinheit 216 implementiert werden können. Die Arbitrierungseinheit 216 empfängt Speicheranforderungssignale (MREQ#) über die Leitung 235 von dem Grafikcontroller 218 und gibt Speicherzugriffsgewährungssignale (MGNT#) auf der Leitung 236 aus.
  • Das Computersystem 210 umfasst ferner eine zwischen den gemeinsamen Speicher 220 und die Busbrücke 224 sowie den Grafikcontroller 218 gekoppelte Schnittstelle 240. Die Schnittstelle 240 ist mit dem Speicherbus 232 verbunden, der die Steuer- und Adressierungsleitungen 232.1 und die Datenleitungen 232.2 umfasst. Die Schnittstelle 240 ist ferner mit einem Rahmenpufferbus 234 gekoppelt, der Steuer- und Adressierungsleitungen 234.1 und Datenleitungen 234.2 umfasst. Die Schnittstelle 240 ist ferner durch zwei weitere Busse, d. h. die Busse 242 und 244 mit dem gemeinsamen Speicher 220 gekoppelt. Gemäß der Abbildung aus 2 ist der Bus 242 zur Adressierung und zum Vorsehen eines Zugriffs auf die DRAM-Zeile 220.2 dediziert, welche eine gemeinsame Rahmenpufferapertur 225 aufweist. Der Bus 244 sieht einen Zugriff auf die verbleibenden DRAM-Zeilen in dem gemeinsamen Speicher 220 vor, wobei es sich in dem veranschaulichten Beispiel um nur eine DRAM-Zeile 220.1 handelt.
  • In einem Ausführungsbeispiel umfasst die Schnittstelle 240 eine Selektoranordnung in Form eines Paars von Q-Switches 246.1 und 246.2. Der Q-Switch 246.2 ist so gekoppelt, dass er Eingaben von den Steuer- und Adressierungsleitungen 232.1 und 234.1 empfängt, und wobei der Q-Switch 246.1 mit den Datenleitungen 232.2 und 234.2 gekoppelt ist. Das Paar der Q-Switches wird durch ein auf der Leitung 248 durch den Systemcontroller 230 erzeugtes Signal geschaltet. Im Besonderen weist der Systemcontroller 230 die Logikschaltkreisanordnung 231 zur Prüfung der Speicherzugriffsanforderungen von dem Speichercontroller sowie zum Erzeugen entsprechender Signale auf der Leitung 248 auf, wie dies nachstehend näher beschrieben wird. Hiermit wird festgestellt, dass die Logikschaltkreisanordnung 231 in jeder beliebigen Funktionseinheit in dem Systemcontroller 230 vorgesehen oder außerhalb des Systemcontrollers 230 als unabhängige Funktionseinheit oder Schaltung realisiert werden kann. Die Logikschaltkreisanordnung 231 kann praktischerweise auch in der Schnittstelle 240 selbst vorgesehen sein.
  • Die Schnittstelle 240 erleichtert den gleichzeitigen Zugriff durch den Speichercontroller 214 und den Grafikcontroller 218 auf den gemeinsamen Speicher 220, wenn der Speichercontroller 214 den Zugriff auf einen Speicherplatz in einem ersten Abschnitt des gemeinsamen Speichers 220, nämlich die DRAM-Zeile 220.1 anfordert, und wenn der Grafikcontroller 218 den Zugriff auf einen Speicherplatz in einem zweiten Abschnitt des gemeinsamen Speichers 220 anfordert, nämlich die DRAM-Zeile 220.2. Wenn der Speichercontroller 214 einen Zugriff auf den Speicherplatz in dem DRAM 220.1 verlangt, werden die Switches 246.1 und 246.2 in der Schnittstelle 240 in einen ersten Zustand umgeschaltet, indem ein entsprechendes Signal auf der Leitung 248 vorgesehen wird, wobei das Signal durch die Logikschaltkreisanordnung 231 erzeugt wird, die in dem Systemcontroller 230 vorgesehen ist. Der Q-Switch 246.1 sieht einen Datenweg zwischen den Datenleitungen 244.2 und 232.2 vor, um eine Ausbreitung der Daten zwischen der Datenwegeinheit 28 und der DRAM-Zeile 220.1 zu ermöglichen. Der Speichercontroller 214 kann die DRAM-Zeile 220.1 über die Steuer- und Adressierungsleitung 244.2 adressieren. In ähnlicher Weise erzeugt der Q-Switch 246.2 einen Signalweg zwischen Steuer- und Adressierungsleitungen 234.1 und 242, so dass der Grafikcontroller 218 die DRAM-Zeile 220.2 steuern und auf diese zugreifen kann. Die Daten können danach über die Datenleitungen 234.2 zwischen der DRAM-Zeile 220.2 und dem Grafikcontroller 218 ausgebreitet werden. Auf diese Weise kann der Speichercontroller 214 während einem Zugriff des Grafikcontrollers 218 auf die DRAM-Zeile 220.2 gleichzeitig auf die DRAM-Zeile 220.1 zugreifen. Wenn der Speichercontroller 214 auf die DRAM-Zeile 220.1 zugreift, kann der Grafikcontroller 218 in ähnlicher Weise gleichzeitig auf die gemeinsame Pufferapertur 222 in der DRAM-Zeile 220.2 zugreifen.
  • Hiermit wird festgestellt, dass ein Abschnitt der DRAM-Zeile 20.2 Systemspeicher umfasst, und somit fordert der Speichercontroller 214 den Zugriff auf die DRAM-Zeile 220.2, und es können konkurrierende Anforderungen von dem Speichercontroller 216 und dem Grafikcontroller 218 für einen Zugriff auf die DRAM-Zeile 220.2 erzeugt werden. Danach führt die Arbitrierungseinheit 216 ein Arbitrierungsprotokoll aus und gewährt dem entsprechenden Controller Zugriff, indem die Q-Switches 246.1 und 246.2 in die entsprechenden Zustände versetzt werden. Somit wird kein gleichzeitiger Zugriff ermöglicht, da die Speicherzugriffsanforderungen von dem Grafikcontroller und dem Speichercontroller an die gleiche DRAM-Zeile 220.2 gerichtet sind. Hiermit wird festgestellt, dass die Q-Switches 246.1 und 246.2, die als unidirektionale oder bidirektionale Feldeffekttransistoren (FETs) implementiert werden können, durch jede andere geeignete Selektoreinrichtung ersetzt werden können, wie etwa durch Multiplexer oder Puffer mit drei Zuständen.
  • Die vorliegende Erfindung ist nicht auf einen gemeinsamen Speicher 220 beschränkt, der nur zwei DRAM-Zeilen aufweist. Die Abbildung aus 3 zeigt ein alternatives Ausführungsbeispiel der vorliegenden Erfindung. Der gemeinsame Speicher 320 eines Computersystems 310 weist N DRAM-Zeilen auf, wobei die gemeinsame Rahmenpufferapertur 325 in der DRAM-Zeile 320.N implementiert ist. Eine DRAM-Zeile kann unter Verwendung verschiedener Kombinationen von DRAM-Bänken implementiert werden. Zum Beispiel kann eine DRAM-Zeile einer Bank mit 8 MB oder zwei Bänken mit jeweils 4 MB entsprechen. In Anwendung der vorstehend in Bezug auf die Abbildung aus 2 beschriebenen Grundsätze wird hiermit festgestellt, dass eine Schnittstelle 340 so gekoppelt ist, das sie den gleichzeitigen Zugriff durch einen Grafikcontroller 318 auf die DRAM-Zeile 320.N und durch einen Speichercontroller 314 auf eine beliebige andere DRAM-Zeile in dem gemeinsamen Speicher 320 ermöglicht. Die Schnittstelle 340 betrachtet den gemeinsamen Speicher 320 folglich als in zwei Abschnitte unterteilt, nämlich die DRAM-Zeile 320.N, welche die gemeinsame Rahmenpufferapertur 322 aufweist, und die verbleibenden DRAM-Zeilen.
  • Die Abbildung aus 4 zeigt ein weiteres alternatives Ausführungsbeispiel der vorliegenden Erfindung, wobei das Computersystem 410 eine 128-Bit-Datenwegeinheit 428 aufweist, die so gekoppelt ist, dass sie Daten auf den 64-Bit-Datenleitungen 442.2 und 44.2 empfängt und überträgt, wodurch die zwei Q-Switches in einer Schnittstelleneinheit 440 überflüssig werden. Die Datenwegeinheit 428 ist so gekoppelt, dass sie ein Auswahlsignal 348 von dem Systemcontroller 430 empfängt, wodurch es ermöglicht wird, dass eine Datenwegeinheit 428 selektiv einen Datenweg zwischen einer externen Vorrichtung und entweder der DRAM-Zeile 420.N erzeugt, welche die gemeinsame Rahmenpufferapertur 422 aufweist, oder einer der anderen DRAM-Zeilen in dem gemeinsamen Speicher 420. Der gemeinsame Rahmenpuffer 422 muss ferner nicht im oberen Bereich des Systemspeichers angeordnet sein, wie dies in der Abbildung aus 4 dargestellt ist. Da Ladevorgänge und Zugriffe eines Betriebssystems häufig an Speicheradressen gerichtet sind, die sich im oberen Bereich oder in der Nähe des oberen Bereichs des Speichers befinden, ist es wünschenswert, den gemeinsamen Rahmenpuffer 422 an einem Speicherplatz unmittelbar oberhalb des DOS-Anwendungsbereichs in dem Speicher 420 anzuordnen. Durch die Positionierung des gemeinsam genutzten Rahmenpuffers 422 an einer unteren Stelle in dem Speicher 420 wird die Wahrscheinlichkeit reduziert, dass der Speichercontroller 414 und der Grafikcontroller 418 einen Zugriff auf die gleiche DRAM-Zeile anfordern. Demgemäß kann die erfindungsgemäße gleichzeitige Zugriffsfähigkeit umfassender umgesetzt werden.
  • Die vorstehend beschriebenen Ausführungsbeispiele waren auf das Schaffen eines gleichzeitigen Zugriffs auf einen gemeinsamen Speicher mit einem Shared Frame Buffer (SFB) durch einen Grafikcontroller und einen Speichercontroller ausgerichtet. Hiermit wird festgestellt, dass auch andere Puffer in einem gemeinsamen Speicher implementiert werden können, wie etwa ein sogenannter "Alpha-Puffer" und ein "Z-Puffer", welche Informationen über die Anzeige dreidimensionaler Grafiken aufweisen. Die Lehren der vorliegenden Erfindung können somit ausgeweitet werden, so dass sie das Vorsehen eines gleichzeitigen Zugriffs auf eine gemeinsame Speicherressource umfassen, welche die vorstehend genannten Puffer aufweisen. Ferner kann der gleichzeitige Zugriff für andere Arten von Steuereinheiten sowie für mehr als nur zwei Controller oder Agenten vorgesehen werden.
  • Hiermit wird festgestellt, dass der Shared Frame Buffer (SFB) nicht in einer einzigen DRAM-Zeile angeordnet sein muss, wie dies vorstehend beschrieben worden ist, vielmehr kann er auch fragmentiert und an einer Mehrzahl von DRAM-Zeilen angeordnet sein. In diesem Fall können die Lehren der vorliegenden Erfindung ausgeweitet werden, so dass ein gleichzeitiger Zugriff durch einen Grafikcontroller auf die DRAM-Zeilen vorgesehen wird, in der sich der SFB befindet, sowie durch den Speichercontroller auf die anderen DRAM-Zeilen.
  • Nachstehend wird in Bezug auf die Abbildungen der 5 und 6 ein Verfahren 510 beschrieben, wobei der gleichzeitige Zugriff durch erste und zweite Agenten, wie etwa durch einen Grafikcontroller und einen Speichercontroller, auf einen gemeinsamen Speicher vorgesehen wird. In dem Schritt 520 wird zuerst bestimmt, ob eine Zugriffsanforderung auf den gemeinsamen Speicher von einem Agenten, wie zum Beispiel von dem Grafikcontroller empfangen worden ist. Wenn keine Zugriffsanforderung empfangen worden ist, springt der Verfahrensablauf zu dem Schritt 505. Wenn jedoch eine Zugriffsanforderung auf den gemeinsamen Speicher von dem Grafikcontroller empfangen worden ist, so fährt das Verfahren mit dem Schritt 530 fort, in welchem die Verarbeitungslogik bestimmt, ob eine vorherige Anforderung von einem anderen Agenten, wie zum Beispiel dem Speichercontroller, empfangen worden ist. Wenn keine vorherige Anforderung von dem Speichercontroller empfangen worden ist, fährt das Verfahren mit dem Schritt 540 fort, und wobei der Speicherzugriff dem Grafikcontroller gewährt wird. Wenn die Verarbeitungslogik 530 in dem Schritt bestimmt, dass tatsächlich eine vorherige Speicherzugriffsanforderung von dem Speichercontroller empfangen worden ist, springt das Verfahren zu dem Schritt 550, in welchem bestimmt wird, ob die Zugriffsanforderung des Grafikcontrollers an eine Speicheradresse in der gleichen DRAM-Zeile gerichtet ist wie die Adresse von Speicherzugriffsanforderungen, die von dem Speichercontroller empfangen worden sind. Wenn die Speicherzugriffsanforderungen der entsprechenden Controller an Speicheradressen in der gleichen DRAM-Zeile gerichtet sind, fährt das Verfahren mit dem Schritt 560 fort, um zwischen den Zugriffsanforderungen zu arbitrieren. Nach Beendigung der Arbitrierung gewährt eine Arbitrierungseinheit in dem Schritt 540 entweder dem Grafikcontroller oder dem Speichercontroller Zugriff. Wenn in dem Schritt 550 bestimmt wird, dass sich die Zugriffsanforderung des Grafikcontrollers an einen Speicherplatz richtet, der sich nicht in der gleichen DRAM-Zeile befindet, wird alternativ in dem Schritt 570 beiden Controllern der gleichzeitige Zugriff auf den gemeinsamen Speicher gewährt.
  • Die vorliegende Erfindung sieht gegenüber dem Stand der Technik entsprechenden Computersystemen mit einem gemeinsamen Speicher eine Reihe von Vorteilen vor. Am wichtigsten ist die Tatsache, dass die vorliegende Erfindung die effektive Speicherbandbreite eines Computersystems mit einem gemeinsamen Speicher erhöht, indem der gleichzeitige Zugriff auf den gemeinsamen Speicher durch mindestens zwei Agenten ermöglicht wird, wie etwa einen Grafikcontroller und einen Speichercontroller. Die Gesamtsystemleistung ist somit mit der eines Computersystems mit einer dedizierten Speicherressource für jeden der anfordernden Agenten vergleichbar, wobei die Kostenvorteile durch einen gemeinsamen Speicher aufrechterhalten werden können. Erreicht wird dieser Vorteil durch eine Erhöhung der Granularität oder Auflösung, mit der Agenten auf eine gemeinsame Speicherressource zugreifen können. Somit wird eine Speicherzugriffskonkurrenz zwischen zwei Agenten auf die Konkurrenz in Bezug auf einzelne Speicherzeilen reduziert, im Gegensatz zu der Konkurrenz in Bezug auf den gesamten gemeinsamen Speicher. Die Fähigkeit der vorliegenden Erfindung, einen gemeinsamen Speicher bei niedrigerer Granularität vorzusehen, wird teilweise durch das Vorsehen separater Steuereingaben in erste und zweite Abschnitte des gemeinsamen Speichers erreicht. Im Besonderen wird gemäß der vorliegenden Erfindung das Vorsehen eines dedizierten Speicherbusses für eine DRAM-Zeile vorgeschlagen, die eine gemeinsame Pufferapertur aufweist, sowie eines dedizierten Speicherbusses für den Rest der DRAM-Zeilen. Ferner gewährleistet die vorliegende Erfindung eine vollständige 64-Bit-Schnittstelle mit dem gemeinsamen Speicher, ohne die Pin-Anzahl einer Datenwegeinheit zu erhöhen.
  • Die vorliegende Erfindung wurde vorstehend in Bezug auf spezielle Ausführungsbeispiele der Erfindung beschrieben. Es ist jedoch offensichtlich, dass verschiedene Modifikationen und Abänderungen möglich sind, ohne dabei von dem in den anhängigen Ansprüchen ausgeführten Umfang der Erfindung abzuweichen. Die Beschreibung und die Zeichnungen dienen somit Veranschaulichungszwecken und schränken die Erfindung nicht ein.

Claims (16)

  1. Computersystem, das folgendes umfasst: eine erste Steuereinrichtung (214) und eine zweite Steuereinrichtung (218); einen gemeinsamen Speicher (220), auf den die ersten und zweiten Steuereinrichtungen zugreifen können, wobei der gemeinsame Speicher einen ersten Speicherabschnitt (220.1) und einen zweiten Speicherabschnitt (220.2) aufweist, wobei mindestens ein Teilbereich des zweiten Speicherabschnitts Daten speichert, die ausschließlich der zweiten Steuereinrichtung zugeordnet sind; gekennzeichnet durch eine Schaltanordnung (246.1, 246.2) zum Vorsehen (i) eines ersten Datenwegs (232.2, 242) zwischen der ersten Steuereinrichtung und dem zweiten Speicherabschnitt in einem ersten Zustand, (ii) eines zweiten Datenwegs (232.2, 244.2) zwischen der ersten Steuereinrichtung und dem ersten Speicherabschnitt und (iii) eines dritten Datenwegs (234.2) zwischen der zweiten Steuereinrichtung und dem zweiten Speicherabschnitt (220.1) in einem zweiten Zustand, wobei sich die zweiten und dritten Datenwege unterscheiden und parallel vorgesehen sind, um den gleichzeitigen Zugriff auf die ersten und zweiten Speicherabschnitte durch die entsprechenden ersten und zweiten Speichereinrichtungen zu erleichtern, wenn sich die Schaltanordnung in dem zweiten Zustand befindet.
  2. Computersystem nach Anspruch 1, wobei die Schaltanordnung (246.1, 246.2) so gekoppelt ist, dass sie erste und zweite Speicheradressen entsprechend von den ersten und zweiten Steuereinrichtungen empfängt und selektiv derart funktionsfähig ist, dass die erste Speicheradresse in einem ersten Zustand an den zweiten Speicherabschnitt vorgesehen wird, und dass die zweite Speicheradresse in dem zweiten Zustand an den zweiten Speicherabschnitt vorgesehen wird.
  3. Computersystem nach Anspruch 2, mit einer Logikschaltung (230) zur Bestimmung, ob sich die von der ersten Steuereinrichtung empfangene erste Speicheradresse in dem ersten Speicherabschnitt befindet, und wobei die Schaltanordnung, wenn dies der Fall ist, so konfiguriert wird, dass sie in dem zweiten Zustand arbeitet.
  4. Computersystem nach Anspruch 1, wobei es sich bei der ersten Steuereinrichtung um einen Speichercontroller (214) handelt, und wobei es sich bei der zweiten Steuereinrichtung um einen Grafikcontroller (218) handelt.
  5. Computersystem nach Anspruch 1, wobei der gemeinsame Speicher (220) eine Mehrzahl von Zeilen eines Direktzugriffsspeichers (RAM) umfasst, und wobei der erste Speicherabschnitt eine erste Zeile RAM (220.1) umfasst, und wobei der zweite Speicherabschnitt eine zweite Zeile RAM (220.2) umfasst.
  6. Computersystem nach Anspruch 5, wobei die zweite Zeile RAM eine Rahmenpufferapertur (225) aufweist.
  7. Computersystem nach Anspruch 6, wobei die Rahmenpufferapertur in einem unteren Speicheradressbereich in dem gemeinsamen Speicher angeordnet ist.
  8. Schnittstellenanordnung für einen gemeinsamen Speicher, wobei der gemeinsame Speicher erste (220.1) und zweite (220.2) Speicherabschnitte aufweist, wobei die Schnittstelle folgendes umfasst: einen ersten Eingang, der so gekoppelt ist, dass er eine erste Speicheradresse von einer ersten Steuereinrichtung (214) empfängt; einen zweiten Eingang, der so gekoppelt ist, dass er eine zweite Speicheradresse von einer zweiten Steuereinrichtung (218) empfängt; gekennzeichnet durch einen Selektor (246.1, 246.2), der derart funktionsfähig ist, dass er die zweite Speicheradresse in einem ersten Zustand dem zweien Speicherabschnitt präsentiert, um den gleichzeitigen Zugriff durch die erste Steuereinrichtung (214) auf den ersten Speicherabschnitt (220.1) über einen ersten Zugriffsweg (232.2, 244.2) und durch die zweite Steuereinrichtung (218) auf den zweiten Speicherabschnitt (220.2) über einen zweiten Zugriffsweg (234.2) zu erleichtern, und so dass die erste Speicheradresse in einem zweiten Zustand selektiv dem zweiten Speicherabschnitt präsentiert wird, um den exklusiven Zugriff durch die erste Steuereinrichtung (214) auf mindestens den zweiten Speicherabschnitt (220.2) über einen dritten Zugriffsweg (232, 242) zu erleichtern, wobei die ersten und zweiten Zugriffswege unterschiedlich sind und parallel existieren, um den gleichzeitigen Zugriff zu erleichtern.
  9. Schnittstellenanordnung nach Anspruch 8, wobei der Selektor so gekoppelt ist, dass er durch eine Logikschaltkreisanordnung (230) zur Bestimmung betrieben werden kann, ob sich eine durch die erste Steuereinrichtung der Logikschaltkreisanordnung präsentierte Speicheradresse in dem ersten oder in dem zweiten Speicherabschnitt befindet.
  10. Schnittstellenanordnung nach Anspruch 8, wobei der Selektor einen ersten Schalter (246.2) aufweist, der so gekoppelt ist, dass er Adress- und Steuereingaben von der ersten und der zweiten Steuereinrichtung empfängt und selektiv derart funktionsfähig ist, dass die Adress- und Steuereingabe in einem zweiten Zustand von der ersten Steuereinrichtung an den zweiten Speicherabschnitt vorgesehen wird, und wobei diese in einem ersten Zustand des Selektors an den ersten Speicherabschnitt vorgesehen wird.
  11. Schnittstellenanordnung nach Anspruch 10, wobei der Selektor einen zweiten Schalter (246.1) aufweist, der so funktionsfähig ist, dass er selektiv Daten entweder von dem ersten oder dem zweiten Speicherabschnitt empfängt und an einen dieser übermittelt.
  12. Verfahren zur Erleichterung des gleichzeitigen Zugriffs durch erste und zweite Steuereinrichtungen (214, 218) auf einen gemeinsamen Speicher (220) über eine Speicherschnittstelle, wobei der gemeinsame Speicher erste und zweite Speicherabschnitte (220.1, 220.2) aufweist, wobei das Verfahren die folgenden Schritte umfasst: (a) Empfangen einer Speicherzugriffsanforderung von der ersten Steuereinrichtung; (b) Bestimmen, ob die Speicherzugriffsanforderung der ersten Steuereinrichtung an einen Speicherplatz in dem ersten oder dem zweiten Speicherabschnitt des gemeinsamen Speichers gerichtet ist; (c) Platzieren der Speicherschnittstelle in einem ersten Zustand, wenn die Speicherzugriffsanforderung der ersten Steuereinrichtung an einen Speicherplatz in dem ersten Speicherabschnitt gerichtet ist, wobei die Steuereinrichtung in diesem Zustand Zugriff auf den ersten Speicherabschnitt über einen ersten Zugriffsweg aufweist, und wobei die zweite Steuereinrichtung über einen zweiten Zugriffsweg auf den zweiten Speicherabschnitt zugreifen kann, wobei sich der erste und der zweite Zugriffsweg unterscheiden und parallel vorgesehen sind, um den gleichzeitigen Zugriff durch die erste und die zweite Steuereinrichtung auf die entsprechenden ersten und zweiten Speicherabschnitt zu erleichtern; und (d) Platzieren der Speicherschnittstelle in einem zweiten Zustand, wenn die Speicherzugriffsanforderung der ersten Steuereinrichtung an einen Speicherplatz in dem zweiten Speicherabschnitt gerichtet ist, wobei die erste Steuereinrichtung ausschließlichen Zugriff auf mindestens den zweiten Speicherabschnitt über einen dritten Zugriffsweg aufweist.
  13. Verfahren nach Anspruch 12, wobei nur der zweite Speicherabschnitt (220.2) des gemeinsamen Speichers durch die erste und die zweite Steuereinrichtung gemeinsam genutzt wird, und wobei das Verfahren die folgenden Schritte aufweist: Bestimmen, ob eine Speicherzugriffsanforderung auf einen Speicherplatz in dem zweiten Speicherabschnitt von der zweiten Steuereinrichtung aussteht, wenn die Speicherzugriffsanforderung der ersten Steuereinrichtung an einen Speicherplatz in dem zweiten Speicherabschnitt gerichtet ist; und Arbitrieren zwischen den Zugriffsanforderungen der ersten und zweiten Steuereinrichtungen, wenn eine Speicherzugriffsanforderung von der zweiten Steuereinrichtung aussteht.
  14. Verfahren nach Anspruch 12, wobei das Verfahren die folgenden Schritte aufweist: Empfangen einer Speicherzugriffsanforderung von der zweiten Steuereinrichtung (218) an einen Speicherplatz in dem zweiten Speicherabschnitt (220.2) des gemeinsamen Speichers; Bestimmen, ob die erste Steuereinrichtung (214) auf einen Speicherplatz in dem zweiten Speicherabschnitt zugreift; und Platzieren der Speicherschnittstelle in dem ersten Zustand, wenn die erste Steuereinrichtung nicht auf den zweiten Speicherabschnitt zugreift, und Gewähren eines Zugriffs der zweiten Steuereinrichtung auf den zweiten Speicherabschnitt, so dass die erste Steuereinrichtung gleichzeitig auf den ersten Speicherabschnitt zugreifen kann.
  15. Verfahren nach Anspruch 14, wobei das Verfahren den Schritt des Verweigerns des Zugriffs der zweiten Steuereinrichtung auf den zweiten Abschnitt aufweist, wenn die erste Steuereinrichtung auf einen Speicherplatz in dem zweiten Speicherabschnitt zugreift.
  16. Verfahren nach Anspruch 14, wobei das Verfahren den Schritt des Arbitrierens (216) zwischen den Zugriffsanforderungen der erste und der zweiten Steuereinrichtung aufweist, wenn die erste Steuereinrichtung auf einen Speicherplatz in dem zweiten Speicherabschnitt zugreift.
DE69724463T 1996-06-27 1997-06-13 Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten Expired - Fee Related DE69724463T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/672,099 US5815167A (en) 1996-06-27 1996-06-27 Method and apparatus for providing concurrent access by a plurality of agents to a shared memory
US672099 1996-06-27
PCT/US1997/010447 WO1997050042A1 (en) 1996-06-27 1997-06-13 A method and apparatus for providing concurrent access by a plur ality of agents to a shared memory

Publications (2)

Publication Number Publication Date
DE69724463D1 DE69724463D1 (de) 2003-10-02
DE69724463T2 true DE69724463T2 (de) 2004-07-08

Family

ID=24697142

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69724463T Expired - Fee Related DE69724463T2 (de) 1996-06-27 1997-06-13 Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten

Country Status (8)

Country Link
US (1) US5815167A (de)
EP (1) EP0972251B1 (de)
JP (1) JP3976342B2 (de)
KR (1) KR100317517B1 (de)
AU (1) AU3397697A (de)
DE (1) DE69724463T2 (de)
TW (1) TW358180B (de)
WO (1) WO1997050042A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058459A (en) * 1996-08-26 2000-05-02 Stmicroelectronics, Inc. Video/audio decompression/compression device including an arbiter and method for accessing a shared memory
TW360823B (en) * 1996-09-30 1999-06-11 Hitachi Ltd Data processor and graphic processor
US5941968A (en) * 1997-04-14 1999-08-24 Advanced Micro Devices, Inc. Computer system for concurrent data transferring between graphic controller and unified system memory and between CPU and expansion bus device
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
US6057862A (en) * 1997-07-01 2000-05-02 Memtrax Llc Computer system having a common display memory and main memory
JPH11120156A (ja) * 1997-10-17 1999-04-30 Nec Corp マルチプロセッサシステムにおけるデータ通信方式
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
US6091431A (en) * 1997-12-18 2000-07-18 Intel Corporation Method and apparatus for improving processor to graphics device local memory performance
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) * 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US6272584B1 (en) * 1998-09-10 2001-08-07 Compaq Computer Corporation System board with consolidated EEPROM module
WO2000052564A2 (en) * 1999-03-05 2000-09-08 Amulet Technologies, Llc Graphical user interface engine for embedded systems
US6601147B1 (en) * 1999-03-31 2003-07-29 International Business Machines Corporation Computer system and method for maintaining an integrated shared buffer memory in a group of interconnected hosts
EP1059586B1 (de) * 1999-06-09 2004-09-08 Texas Instruments Incorporated Verteilter Speicher mit programmierbarer Grösse
US6469703B1 (en) * 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6526462B1 (en) * 1999-11-19 2003-02-25 Hammam Elabd Programmable multi-tasking memory management system
US6774903B1 (en) * 2000-11-06 2004-08-10 Ati International Srl Palette anti-sparkle enhancement
US7038691B2 (en) * 2001-02-15 2006-05-02 Sony Corporation Two-dimensional buffer pages using memory bank alternation
US6768490B2 (en) * 2001-02-15 2004-07-27 Sony Corporation Checkerboard buffer using more than two memory devices
US7205993B2 (en) * 2001-02-15 2007-04-17 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using memory bank alternation
US6828977B2 (en) * 2001-02-15 2004-12-07 Sony Corporation Dynamic buffer pages
US7379069B2 (en) * 2001-02-15 2008-05-27 Sony Corporation Checkerboard buffer using two-dimensional buffer pages
US6992674B2 (en) * 2001-02-15 2006-01-31 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using state addressing
US6850241B2 (en) * 2001-02-15 2005-02-01 Sony Corporation Swapped pixel pages
US6765579B2 (en) * 2001-02-15 2004-07-20 Sony Corporation Pixel pages using combined addressing
US6831651B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Checkerboard buffer
US6831649B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Two-dimensional buffer pages using state addressing
US6831650B2 (en) * 2001-02-15 2004-12-14 Sony Corporation Checkerboard buffer using sequential memory locations
US6791557B2 (en) * 2001-02-15 2004-09-14 Sony Corporation Two-dimensional buffer pages using bit-field addressing
US6803917B2 (en) * 2001-02-15 2004-10-12 Sony Corporation Checkerboard buffer using memory bank alternation
US6801204B2 (en) * 2001-02-15 2004-10-05 Sony Corporation, A Japanese Corporation Checkerboard buffer using memory blocks
US6765580B2 (en) * 2001-02-15 2004-07-20 Sony Corporation Pixel pages optimized for GLV
US6795079B2 (en) * 2001-02-15 2004-09-21 Sony Corporation Two-dimensional buffer pages
US7088369B2 (en) * 2001-02-15 2006-08-08 Sony Corporation Checkerboard buffer using two-dimensional buffer pages and using bit-field addressing
US6622203B2 (en) * 2001-05-29 2003-09-16 Agilent Technologies, Inc. Embedded memory access method and system for application specific integrated circuits
ATE521040T1 (de) * 2001-06-11 2011-09-15 Zoran Microelectronics Ltd Ein spezialspeichergerät
US20030058368A1 (en) * 2001-09-24 2003-03-27 Mark Champion Image warping using pixel pages
US6965980B2 (en) * 2002-02-14 2005-11-15 Sony Corporation Multi-sequence burst accessing for SDRAM
US7185126B2 (en) * 2003-02-24 2007-02-27 Standard Microsystems Corporation Universal serial bus hub with shared transaction translator memory
US6959355B2 (en) * 2003-02-24 2005-10-25 Standard Microsystems Corporation Universal serial bus hub with shared high speed handler
US6874042B2 (en) * 2003-03-11 2005-03-29 Dell Products L.P. System and method for using a switch to route peripheral and graphics data on an interconnect
JP2005165592A (ja) * 2003-12-02 2005-06-23 Matsushita Electric Ind Co Ltd データ転送装置
JP2005222245A (ja) * 2004-02-04 2005-08-18 Renasas Northern Japan Semiconductor Inc プロセッサ
JP4500610B2 (ja) * 2004-07-07 2010-07-14 キヤノン株式会社 映像信号処理装置、メモリ制御方法、及びプログラム
US20060227759A1 (en) * 2004-09-14 2006-10-12 Bohm Mark R Peripheral Sharing USB Hub
US20060059293A1 (en) * 2004-09-14 2006-03-16 Henry Wurzburg Universal serial bus switching hub
US7433990B2 (en) * 2006-01-24 2008-10-07 Standard Microsystems Corporation Transferring system information via universal serial bus (USB)
US7523243B2 (en) * 2006-04-14 2009-04-21 Standard Microsystems Corporation Multi-host USB device controller
US7480753B2 (en) * 2006-04-27 2009-01-20 Standard Microsystems Corporation Switching upstream and downstream logic between ports in a universal serial bus hub
US20080005262A1 (en) * 2006-06-16 2008-01-03 Henry Wurzburg Peripheral Sharing USB Hub for a Wireless Host
KR100888427B1 (ko) * 2006-09-15 2009-03-11 엠텍비젼 주식회사 공유 메모리를 구비한 디지털 처리 장치 및 데이터 출력방법
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US20090063717A1 (en) * 2007-08-28 2009-03-05 Bohm Mark R Rate Adaptation for Support of Full-Speed USB Transactions Over a High-Speed USB Interface
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
KR101283482B1 (ko) * 2009-12-11 2013-07-12 한국전자통신연구원 Pci 익스프레스 프로토콜 처리 장치
US8397006B2 (en) * 2010-01-28 2013-03-12 Freescale Semiconductor, Inc. Arbitration scheme for accessing a shared resource
US8799532B2 (en) 2011-07-07 2014-08-05 Smsc Holdings S.A.R.L. High speed USB hub with full speed to high speed transaction translator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459846A (en) * 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
JPS5326539A (en) * 1976-08-25 1978-03-11 Hitachi Ltd Data exchenge system
US4980828A (en) * 1988-11-25 1990-12-25 Picker International, Inc. Medical imaging system including use of DMA control for selective bit mapping of DRAM and VRAM memories
US5450542A (en) * 1993-11-30 1995-09-12 Vlsi Technology, Inc. Bus interface with graphics and system paths for an integrated memory system
WO1995015528A1 (en) * 1993-11-30 1995-06-08 Vlsi Technology, Inc. A reallocatable memory subsystem enabling transparent transfer of memory function during upgrade

Also Published As

Publication number Publication date
US5815167A (en) 1998-09-29
TW358180B (en) 1999-05-11
DE69724463D1 (de) 2003-10-02
WO1997050042A1 (en) 1997-12-31
JP2001523361A (ja) 2001-11-20
KR100317517B1 (ko) 2002-02-19
EP0972251B1 (de) 2003-08-27
KR20000022251A (ko) 2000-04-25
JP3976342B2 (ja) 2007-09-19
EP0972251A4 (de) 2000-01-19
EP0972251A1 (de) 2000-01-19
AU3397697A (en) 1998-01-14

Similar Documents

Publication Publication Date Title
DE69724463T2 (de) Verfahren und gerät um einen gleichzeitigen zugriff von mehreren agenten auf einem gemeinsamen speicher zu gewährleisten
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE3438869C2 (de)
DE19860650B4 (de) Synchrone Halbleiter-Speichervorrichtung mit einer Chip-Satz-Speichersteuervorrichtung mit Datenausblend-Maskenfunktion
DE60036096T2 (de) Vorrichtung zur kommunikation zwischen mehreren funktionseinheiten in einer rechnerumgebung
DE102006062383B4 (de) Halbleiterspeicherelement und System für ein Halbleiterspeicherelement
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE3905478A1 (de) Verfahren und vorrichtung fuer die buszuweisung in einem computersystem
DE69333319T2 (de) Datenverarbeitungssystem mit synchronem, dynamischem Speicher in integrierter Schaltkreistechnik
DE112005002336T5 (de) Befehl, der unterschiedliche Operationen in unterschiedlichen Chips steuert
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE19847642A1 (de) PCI-PCI-Brücke
DE3043100C2 (de)
DE60036923T2 (de) Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung
DE10215362A1 (de) Integrierter Speicher mit einem Speicherzellenfeld mit mehreren Speicherbänken und Schaltungsanordnung mit einem integrierten Speicher
DE3943095A1 (de) Einrichtung und verfahren zum zuordnen verfuegbaren speicherraums zum systemspeicherraum in einem computersystem
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE3013064A1 (de) Pufferspeicher fuer die datenuebertragung
DE102005008778B4 (de) System und Verfahren zum Verändern einer Buskonfiguration
DE69729782T2 (de) Busarbiter
DE69827879T2 (de) Zeitmultiplexschema zur Verklemmungsauflösung in distribuierter Arbitrierung
DE102005010931A1 (de) Mehrtordirektzugriffsspeicher
DE10105627A1 (de) Mehrfachanschlussspeichereinrichtung
DE4206079A1 (de) Halbleiterspeichereinrichtung und datenleseverfahren hierfuer
DE19581540C2 (de) Hochgeschwindigkeits- Testmusterübertragungsvorrichtung für eine Halbleitertestvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806

8339 Ceased/non-payment of the annual fee