DE69518286T2 - Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister - Google Patents
Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-MeisterInfo
- Publication number
- DE69518286T2 DE69518286T2 DE69518286T DE69518286T DE69518286T2 DE 69518286 T2 DE69518286 T2 DE 69518286T2 DE 69518286 T DE69518286 T DE 69518286T DE 69518286 T DE69518286 T DE 69518286T DE 69518286 T2 DE69518286 T2 DE 69518286T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- pci
- signal
- address
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 claims description 25
- 230000002093 peripheral effect Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 14
- 239000003999 initiator Substances 0.000 claims description 6
- 230000001934 delay Effects 0.000 claims description 3
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 6
- 239000003990 capacitor Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 238000001994 activation Methods 0.000 description 3
- 208000033748 Device issues Diseases 0.000 description 2
- 101100005249 Escherichia coli (strain K12) ygcB gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 101150055191 cas3 gene Proteins 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 102000018813 CASP8 and FADD Like Apoptosis Regulating Protein Human genes 0.000 description 1
- 108010027741 CASP8 and FADD Like Apoptosis Regulating Protein Proteins 0.000 description 1
- 101100086437 Drosophila melanogaster Rap1 gene Proteins 0.000 description 1
- 101100247326 Mucor circinelloides f. lusitanicus RAS3 gene Proteins 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4054—Coupling between buses using bus bridges where the bridge performs a synchronising function where the function is bus cycle extension, e.g. to meet the timing requirements of the target bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Dram (AREA)
Description
- Die vorliegende Erfindung betrifft generell die Übertragung von Daten zwischen einer Speichereinheit und Peripherie-Komponenten in einem Computersystem. Insbesondere betrifft die Erfindung ein System zum Beschleunigen von Transaktionen zwischen dem Hauptspeicher und einer extern von einer zentralen Verarbeitungseinrichtung ("CPU") angeordneten Komponente. Insbesondere betrifft die Erfindung ein System zum Optimieren der Übertragung von Daten zwischen einer peripheren Master-Steuereinrichtung und dem Hauptspeicher.
- Die Übertragung von Daten zwischen dem Hauptspeicher und anderen Komponenten in einem Computersystem erfolgt generell in zwei Schritten. Erstens erzeugt die zugreifende Komponente auf dem Adress-Bus Signale, die die Adresse der gewünschten Speicherstelle repräsentieren. Beim nächsten oder bei folgenden Taktzyklen überträgt die Komponente tatsächlich Daten auf dem Daten-Bus zu oder von der adressierten Speicherstelle. Bei den meisten Computersystemen hängt die Anzahl der Taktzyklen, die für den Datenzugriff auf den Speicher erforderlich ist, von der auf den Speicher zugreifenden Komponente und der Geschwindigkeit der Speichereinheit ab.
- Die Geschwindigkeit der Speicherschaltung basiert auf zwei Zeitsteuerungsparametern. Der erste Parameter ist die Speicherzugriffszeit, bei der es aich um die minimale Zeit handelt, die von der Speicherschaltung benötigt wird, um eine Speicheradresse zu erstellen und Daten zu erzeugen oder Daten auf oder von dem Daten-Bus zu erfassen. Der zweite Parameter ist die Speicheirzykluszeit, bei der es sich um die minimale Zeit handelt, die zwischen zwei aufeinanderfolgenden Zugriffen auf die Speicherschaltung erforderlich ist. Für Schaltungen mit dynamischem Direktzugriffsspeicher ("DRAM"), die typischerweise zur Ausbildung des Hauptarbeitsspeichers des Computersystems verwendet werden, beträgt die Zykluszeit typischerweise das Doppelte der Zugriffszeit. DRAM-Schaltungen haben eine Zugriffszeit, die generell ungefähr im Bereich von 60-100 Nanosekunden liegt, und zwar bei Zykluszeiten von 120-200 Naosekunden. Die zusätzliche Zeit, die für aufeinanderfolgende Speicherzugriffe bei einer DRAM-Schaltung benötigt wird, ist deshalb erforderlich, weil die internen Speicherschaltungen zusätzliche Zeit zum Neuladen (oder "Vorladen") zwecks korrektren Erzeugens von Daten-Signalen benötigen. Somit kann ein Mikroprozessor, der mit 10 MHz läuft, nicht zwei Speicher zugriffe in unmittelbarer Aufeinanderfolge (oder in benachbarten Taktimpulsen) an dem gleichen 100-Nanosekunden-Chip durchführen, trotz der Tatsache, dass ein Taktimpuls in einem derartigen Mikroprozessor alle 100 Nanosekunden erzeugt wird. DRAM-Chips benötigen Zeit zur Stabilisierung, bevor auf die nächste Adresse in diesem Chip zugegriffen werden kann. Folglich muss in einer derartigen Situation der Mikroprozessor einen oder mehrere Schleifenzyklen durchführen, bevor er Zugriff auf die Daten in der DRAM-Schaltung erhalten kann. Typischerweise ist eine Speichersteuereinheit ("MCU").als Teil des Computersystems vorgesehen, um Zugriffe auf den DRAM-Hauptspeicher zu regeln.
- Zusätzlich zu den durch die Zugriffs- und Zyklus-Zeiten verursachten Verzögerungen benötigen DRAM-Schaltungen auch periodische Auffrisch-Zyklen, um die Integrität der gespeicherten Daten zu schützen. Diese Zyklen verbrauchen ungefähr 5 bis 10% der Zeit, die für Speicherzugriffe zur Verfügung steht, und verlangen typischerweise alle 4 Millisekunden 256 Auffrisch-Zyklen. Falls die DRAM-Schaltung nicht periodisch aufgefrischt wird, gehen die in der DRAM-Schaltung gespeicherten Daten verloren.
- Aufgrund dieser Beschränkungen ist ein mit DRAM-Schaltungen ausgebildeter Speicher nicht immer in der Lage, auf Speicherzugriffe innerhalb des Zeitintervalls zu reagieren, das durch die zentrale Verarbeitungseinheit ("CPU") oder die Peripherie-Master-Steuereinrichtung gewährt wird. In diesem Fall muss die externe Schaltung der CPU (oder der Peripherie-Master-Steuereinrichtung) mitteilen, dass zusätzliche Prozessor-Zyklen oder Wartezustände erforderlich sind, bevor die Daten aus dem Daten-Bus in den Speicher-Schaltungen gespeichert worden sind. Abgesehen davon, dass sie den Verarbeitungsvorgang der CPU verlangsamen, erfordern Wartezustände generell die Verwendung des CPU-Lokal-Busses, wodurch ein durch andere Systemschaltungen durchgeführter Zugriff auf den Bus eingeschränkt wird.
- Mit zunehmender Betriebsgeschwindigkeit des Prozessors und mit dem Aufkommen neuer Generationen von Prozessoren ist es vorteilhaft, Wartezustände zu minimieren, um die Leistungsfähigkeit dieser Prozessoren voll auszunutzen. Das Erzielen der höchstmöglichen Vorteile dieser neuen Generationen von Hochgeschwindigkeits-Prozessoren in Personal Computern ist jedoch besonders schwierig, da bei anderen Komponenten in dem System, wie z. B. dem DRAM-Hauptspeicher, Größen- und Leistungs-Beschränkungen bestehen. Bei speicherintensiven Anwendungen, wie z. B. denjenigen, bei denen technische oder wissenschaftliche Berechnungen oder computergestützte Design-Programme involviert sind, kann die Speicherzugriffszeit den Betrieb des Systems beträchtlich verzögern.
- Fig. 1 zeigt ein Blockschaltbild eines herkömmlichen Computersystems 10 gemäß der Beschreibung in Nadkarni et al., "Development of Digital's PCI Chip Sets and Evaluation Kit for the DEC chip 21064 Microprocessor", Digital Technical Journal, Vol. 6, Nr. 2, das einen Mikroprozessor oder eine zentrale Verarbeitungseinheit ("CPU") 12, einen mit der CPU 12 verbundenen CPU-Lokal-Bus 14, und eine Speichersteuereinrichtung 16 und eine Lokal-Bus-Peripherieeinrichtung 18 aufweist, die beide mit dem CPU-Lokal-Bus 14 verbunden sind. Ferner ist ein Systemspeicher 17 gezeigt, der mit der Speichersteuereinrichtung 16 durch einen Speicherbus 15 verbunden ist. Ferner ist ein PCI-Standard-Bus 20 mit dem CPU-Lokal-Bus 14 durch eine PCI-Bus-Brücke 22 verbunden. Es ist eine PCi-Peripherieeinrichtung 28 gezeigt, die mit dem PCI-Bus 20 verbunden ist. Die PCI-Peripherieeinrichtung kann eine PCI-Master- Steuereinrichtung aufweisen, die in der Lage ist, während PCI-Master-Zyklen die Verfügung über den PCI-Bus zu beanspruchen.
- Der Mikroprozessor 12 gemäß Fig. 1 kann einen Mikroprozessor des Modells 80486 aufweisen, und der CPU-Lokal-Bus 14 kann einen Lokal-Bus des Typs 80486 aufweisen. Der CPU-Lokal-Bus enthält einen Satz von Datenleitungen D[31 : 0], einen Satz von Adress-Leitungen A[31 : 0] und einen (nicht speziell gezeigten) Satz von Steuerleitungen. Die Details der verschiedenen Bus- Zyklen und -Protokolle des 80486-CPU-Lokal-Busses 14 werden hier nicht eingehend erläutert, da sie Fachleuten auf dem Gebiet gut bekannt sind und in zahlreichen Veröffentlichungen verfügbar sind. Die CPU 12, die Speichersteuereinrichtung 16 und die CPU-Bus-Brücke 22 sind traditionellerweise auf separaten IC-Schaltungs-Chips hergestellt worden. Seit kurzem hat sich jedoch bei Computersystemen ein Trend entwickelt, den CPU-Kern mit verschiedenen Peripherieeinrichtungen auf einem einzelnen Chip mit integriertem Prozessor zu kombinieren. Ein typisches Beispiel eines Chips mit integriertem Prozessor weist eine Bus-Brücke auf, die ein Hochieistungs-Interface zwischen einem internen CPU-Lokal-Bus und einem externen PCI-Bus bildet. Durch Schaffung eines Hochleistungs-Interface mit einem externen PCI-Bus können im Zusammenhang mit externen Datenübertragungen relativ hohe Leistungscharakteristiken erzielt werden.
- Die PCI-Bus-Brücke 22 bildet ein Standard-Interface zwischen dem CPU-Lokal- Bus 14 und dem PCI-Bus 20. Als solches organisiert die PCI-Bus-Brücke 32 die Übertragung von Daten-, Adress- und Steuersignalen zwischen den beiden Brücken. Der PCI-Bus 20 weist typischerweise einen Hochleistungs-Peripherie- Bus auf, der gemultiplexte Daten-/Adress-Leitungen enthält und Burst-Modus- Datenübertragungen stützt.
- Die Burst-Modus-Funktion ermöglicht ein Lesen oder Schreiben von bzw. in aufeinanderfolgende Speicherstellen mit hoher Geschwindigkeit, und zwar über Burst-Zyklen auf dem PCI-Bus. Der normale Vorgang zum Lesen oder Schreiben aus dem Speicher besteht darin, dass die CPU in einem ersten Taktzyklus die Adress-Signale auf dem Adress-Bus erzeugt und dann in dem folgenden Taktzyklus Daten zu oder aus dem Systemspeicher 17 übertragen werden. Da der Daten-Bus eine Breite von 32 Bit hat, können für jeweils zwei Taktzyklen insgesamt vier 8-Bit-Bytes durch die CPU gelesen oder geschrieben werden. Jeder Satz von vier 8-Bit-Bytes, der auf dem Daten-Bus übertragen wird, wird als ein "Doppel-Wort" bezeichnet. Im Burst-Modus können zusätzliche sequentielle Doppel-Worte während nachfolgender Taktzyklen ohne eingreifende Adress-Phasen übertragen werden. Beispielsweise können insgesamt vier Doppelworte unter Verwendung von nur fünf Taktzyklen in die CPU gelesen werden, da nur die Start-Adresse auf dem Adress-Bus ausgegeben wird, und anschließend das nächste Doppel-Wort von Daten während des zweiten Zyklus gelesen wird, das nächste Doppel-Wort von Daten während des dritten Zyklus, usw. Somit ermöglicht ein Betrieb im Burst-Modus relativ hohe Datenübertragungsraten.
- Wie erwähnt, kann die PCI-Peripherie-Steuereinrichtung 28 eine PCI-Master- Steuereinrichtung aufweisen. Gemäß herkömmlichen Techniken kann der PCi- Master die "Belegung" des PCI-Busses beanspruchen; so dass er die Transaktionen auf dem PCI-Bus 20 steuern kann. Wie ein Fachmann auf dem Gebiet erkennen wird, können mehrerer PCI-Master in dem Computersystem enthalten sein, von denen jeder die Belegung des PCI-Busses 20 beanspruchen kann. Der PCI-Master übermittelt seine Anforderung der Belegung des PCI- Busses 20 über eine Steuerleitung auf dem PCI-Bus 20 an die PCI-Brücke. Die PCI-Bus-Brücke bringt typischerweise die Eigentums-Anforderungen unter den verschiedenen PCI-Mastern, und unter den internen Mastern wie der CPU 12 und unter anderen internen Mastern in eine Rangfolge. Typischerweise wird jedem der verschiedenen Mastern ein Prioritäts-Rangstufe zugewiesen, um die Bus-Brücke 22 in ihrer Prioritätsbestimmung zu unterstützen.
- Die PCI-Brücke 22 kann entweder als PCI-Master oder als Lokal-Bus-Master arbeiten. Wenn die CPU 12 auf extern von dem IC-Prozessor angeordnete PCI- "Slaves" zugreift, arbeitet die PCI-Brücke als ein PCI-Master. Typischerweise belegt während dieser PCI-Master-Zyklen der PCI-Brücke 22 entweder die CPU 12 oder ein anderer Lokal-Bus-Master (wie z. B. die DMA-Steuereinrichtung) den CPU-Lokal-Bus 14, und die PCI-Brücke 22 belegt den PCI-Bus 20. Umgekehrt funktioniert für PCI-Extern-Master-Zugriffe auf am CPU-Lokal-Bus 14 befindliche Einrichtungen die PCI-Brücke als ein Slave oder Tarhet in bezug auf den externen Master, und funktioniert als ein Master des CPU-Lokal-Busses 14.
- Folglich erreicht, wenn ein PCI-Master (d. h. wie z. B. die Peripherieeinrichtung 28) die Belegung des PCI-Busses 20 erzielt und einen Zyklus initiiert, der einer an dem CPU-Lokal-Bus befindlichen Einrichtung wie z. B. der Speicher-Steuereinrichtung 16 entspricht, die PCI-Brücke die Belegung des Lokal-Busses 14: Während dieser Periode können die CPU 12 und die übrigen internen Master den Lokal-Bus 14 nicht benutzen. Dies kann beträchtliche Verzögerungen im System-Betrieb verursachen, da, wie oben erläutert, das Zugreifen auf Daten in dem Hauptspeicher 17 mindestens mehrere Taktzyklen benötigt, so dass andere System-Ressourcen wie z. B. die CPU 12 warten müssen, während auf die Daten von/zu dem externen Master zugegriffen wird. Dieses Problem wird durch die Tatsache verschärft, dass PCI-Master Daten möglicherweise nnit sehr langsamen Raten übertragen können und möglicherweise mehrere Doppel- Wörter durch die Ausführung einer Burst-Datenübertragung übertragen können. Folglich sind die Bandbreiten des CPU-Lokal-Busses und des Systemspeicher-Busses begrenzt, wenn PCI-Master in langsamer Weise auf den Systemspeicher zugreifen.
- Die oben angeführten Probleme werden zum Großteil gelöst, indem ein Computersystem geschaffen wird, das eine PCI-Brücke enthält, um den Daten- Zugriff von einer Peripherie-PCI-Master-Einrichtung auf den Hauptspeicher zu organisieren. Die PCI-Bus-Brücke konvertiert die von dem PCI-Master ausgeführten Burst-Speicher-Zyklen in einzelne Speicherzyklen auf einem CPU- Lokal-Bus. Die PCI-Brücke funktioniert zum Optimieren der Datenübertragung, indem sie die Speicheradresse der nächsten Daten-Transaktion auf dem CPU- Lokal-Bus in den Fällen steuert, in denen der PCI-Master nicht bereit ist, während eines Schreib-Zyklus Daten zu übertragen oder während eines Lese- Zyklus Daten zu empfangen. Eine Speichersteuereinheit ("CPU") empfängt die Speicher-Adresse von dem CPU-Lokal-Bus, stellt fest, dass sie sich innerhalb eines gültigen Speicherbereiches befindet, und dekodiert das Adress-Signal in ein Reihen-Adress-Signal und ein Spalten-Adress-Signal. Das Reihen-Adress- Signal wird zusammen mit dem passenden Reihen-Adress-Strobe-Signal (RAS) unmittelbar an den den DRAM-Speicher ausgegeben, um den Speicherbereich und die Seite des Speichers, auf die zugegriffen werden soll, anzugeben. Der DRAM-Speicher reagiert durch Öffnen der korrekten Seite des Speichers, so dass Vorladezeit und Zugriffszeit gespart werden, die andernfalls zum Öffnen der DRAM-Seite benötigt würden, falls die MCU warten müsste, bis der PCI- Master zum Zuführen oder Empfangen von Daten bereit wäre.
- Während der Periode, in der die PCI-Brücke darauf wartet, dass der PCI- Master Schreib-Daten zuführt, oder darauf wartet, das der PCI-Master angibt; dass er zum Empfangen von Lese-Daten bereit ist (nach der ersten Daten- Transaktion bei einem Burst-Schreib- oder Lese-Signal); gibt die PCI-Brücke an die MCU ein MEMWAIT-Signal aus, das angibt, dass die Daten nicht bereit sind, geschrieben oder gelesen zu werden. Während dieser MEMWAIT-Periode jedoch, und während die PCI-Brücke von dem Lokal-Bus belegt ist, verwendet die MCU das nächste Adress-Signal, um die korrekte Seite des Speichers zu öffnen, damit die nachfolgende Datenübertragung beschleunigt wird. Wenn die Daten mittels der PCI-Brücke aus dem Master empfangen werden (oder wenn der Master angibt, dass er zum Lesen von Daten bereit ist), deaktiviert die PCI-Brücke das MEMWAIT-Signal, und die CPU aktiviert das Spalten-Adress- Strobe-(CAS-)Signal, um die Datenübertragung durchzuführen.
- Im wesentlichen zur gleichen Zeit, in der sie das MEMWAIT-Signal aktiviert, und während die PCI-Brücke darauf wartet, dass der PCI-Master die nächsten Schreib-Daten sendet oder angibt, dass er bereit ist, die derzeit von der PCI- Brücke gehaltenen Daten zu lesen, steuert die PCI-Brücke das Lokal-Bus- Adress-Strobe ADS# derart, dass die nächste Daten-Transaktion begonnen wird, und steuert die Speicher-Adresse der nächsten Transaktion. Dadurch, dass der nächste Daten-Transaktions-Zyklus früher gestartet wird, indem die Adress- und Steuersignale ausgegeben werden, wird die MCU in die Lage versetzt, das Adress-Signal zu dekodieren und die DRAM-Seite zu öffnen, während die Master-Einrichtung sich gleichzeitig darauf vorbereitet, Daten zu empfangen oder zu steuern. Nachdem die DRAM-Seite offen ist und während das MEMWAIT-Signal aktiv ist, wird die MCU "heruntergedrosselt" oder vollführt Schleifenbewegungen durch einen Wartezustands-Zyklus, bis die PCI-Brücke die MEMWAIT-Leitung deaktiviert, um darauf zu verweisen, dass der PCI- Master bereit ist, die Datenübertragung abzuschließen.
- Wenn die MEMWAIT-Leitung durch die PCI-Brücke deaktiviert wird, dann führt die MCU eine "Hochdrosselung" des Speicherzugriffs durch und schließt den Zyklus ab, indem sie die BRDY#-Leitung aktiviert, während sie die DRAM-Seite offen lässt. Nachdem BRDY# aktiviert ist, startet die PCI-Brücke den nächsten Zyklus, indem sie ADS# aktiviert und die neue Adresse auf den CPU-Lokal-Bus steuert. Die PCI-Brücke aktiviert MEMWAIT, um den Speicherbus herunterzudrossseln, während die MCU die Adresse dekodiert und feststellt, ob der nächste Zugriff auf die gleiche DRAM-Seite oder den gleichen DRAM-Speicherbereich erfolgt. Während MEMWAIT aktiviert ist, wird der nächste Zugriff durchgeführt, indem die korrekte DRAM-Seite geöffnet wird.
- Während der Periode, in der MEMWAIT aktiviert ist, kann ein für jeden der Speicherbereiche des Systemspeichers ein Auffrisch-Zyklus durch einen System-Zeitgeber initiiert werden, um die DRAM-Schaltungen in diesem Zyklus aufzufrischen. Die MCU muss zunächst die adressierte Speicherstelle verriegeln, bevor der Auffrisch-Zyklus bedient wird. Nachdem das Auffrischen abgeschlossen ist, wird die vorherige Seite in dem Speicher wieder geöffnet, falls nicht zwischenzeitlich eine Adresse zu einer unterschiedlichen Seite empfangen worden ist.
- Weitere Aufgaben und Vorteile der Erfindung werden uas der folgenden detaillierten Beschreibung und anhand der zugehörigen Zeichnungen ersichtlich, die nur als Beispiel dienen:
- Fig. 1 zeigt ein funktionales Blockschaltbild eines herkömmlichen Computersystems, das eine PCI-Master-Einrichtung stützt;
- Fig. 2 zeigt ein funktionales Blockschaltbild des gemäß der bevorzugten Ausführungsform ausgebildeten Computersystems;
- Fig. 3A-3B zeigen Zeitsteuerungsdiagramme typischer Lese- und Schreib- Zyklen; und
- Fig. 4A-4E zeigen Zeitsteuerungsdiagramme der Arbeitsweise des Systems gemäß Fig. 2.
- Obwohl die Erfindung in Form verschiedenartiger Modifikationen und alternativer Formen ausgebildet sein kann, sind in den Zeichnungen als Beispiel spezielle Ausführungsformen der Erfindung gezeigt, die hier im folgenden detailliert beschrieben werden. Es versteht sich jedoch, dass die Zeichnungen und deren detaillierte Beschreibung die Erfindung nicht auf die bestimmte offenbarte Form beschränken sollen.
- Gemäß der nun zu erläuternden Fig. 2 weist ein Computersystem generell einen integrierten Prozessor ("IP") 50, einen externen PCI-Master 75, der über einen PCI-Bus 100 mit dem integrierten Prozessor 50 verbunden ist, und eine Hauptspeichereinheit 125 auf, die vorzugsweise DRAM-Schaltungen enthält, die durch einen Speicher-Bus 150 mit dem integrierten Prozessor 50 verbunden sind. Der integrierte Prozessor 50 enthält vorzugsweise einen CPU-Kern 60, einen mit dem CPU-Kern 60 verbundenen CPU-Lokal-Bus 65, eine PCI- Bus-Brücke 80, die zu einer Interface-Übertragung von Daten-, Adress- und Steuersignalen zwischen dem Lokal-Bus 65 und dem externen PCI-Bus 100 in der Lage ist, eine Speichersteuereinheit ("MCU") 90, einen Zeitgeber 85, und eine On-Chip-Peripherieeinrichtung 70. Vorzugsweise sind sämtliche der gezeigten Komponenten des integrierten Prozessors 50 auf einer einzelnen IC- Schaltung ausgebildet und in einem einzigen IC-Schaltungs-Pakte untergebracht.
- Bei der bevorzugten Ausführungsform ist in dem CPU-Kern 60 ein Mikroprozessor-Instruktions-Set vom Modell 80486 implementiert, und der CPU-Lokal- Bus 65 weist einen Lokal-Bus gemäß dem 80486-Stil auf. Somit enthält bei der bevorzugten Ausführungsform der CPU-Lokal-Bus 65 ein 32-Bit-Set von Daten-Leitungen D[31 : 0], ein 32-Bit-Set von Adress-Leitungen A[31 : 0], und ein (nicht speziell gezeigtes) Set von Steuerleitungen. Es versteht sich jedoch, dass der CPU-Kern auch zum Implementieren anderer Instruktions-Sets vom Mikroprozessor-Typ ausgebildet sein kann, ohne von den Prinzipien der vorliegenden Erfindung abzuweichen.
- Wie dem Fachmann auf dem Gebiet geläufig sein wird, ist die PCI-Bus-Brücke 80 vorzugsweise Teil einer (nicht speziell gezeigten) Bus-Interface-Einheit ("BIU") und bildet ein Standard-Interface zwischen dem CPU-Lokal-Bus 65 und dem PCI-Bus 100. Als solche organisiert die PCI-Bus-Brücke 80 die Übertragung von Daten-, Adress- und Steuersignalen zwischen dem CPU-Lokal-Bus 65 und dem PCI-Bus 100. Wie erwähnt, weist der CPU-Lokal-Bus 65 vorzugsweise einen Lokal-Bus von 80486-Typ auf, der, wie Fachleuten bekannt ist, separate Adress- und Datenleitungen enthält, während der PCI-Bus 100 mehrere gemultiplexte Adress-/Daten-Leitungen enthält. Somit funktioniert, wie dem Fachmann ersichtlich ist, die PCI-Bus-Brücke vorzugsweise derart, dass sie die 32-Bit-Adress-Leitungen A[31 : 0] des Lokal-Busses 65 über eine (nicht gezeigte) geeignete Multiplexereinheit mit den gemultiplexten Adress-/Daten-Leitun-. gen AD[31 : 0] auf dem PCI-Bus 100 verbindet. In ähnlicher Weise verbindet die PCI-Brücke 80 die 32-Bit-Datenleitungen D[31 : 0] des Lokal-Busses 65 mit den gemultiplexten Adress-/Daten-Leitungen AD[31 : 0] des PCI-Busses 100.
- Die PCI-Brücke 80 erzeugt ferner eine Anzahl von Steuersignalen, zu denen ADS#, R/W, M/IO, Byte-Aktivierungen (C/BEH), D/C und BLAST# gehören, die auf die Steuerleitungen des CPU-Lokal-Busses 65 gesteuert werden. Entsprehend der normalen Konvention ist das ADS# ein Adress-Strobe-Steuersignal, das derart funktioniert, dass es einen Lese- oder Schreib-Zyklus auf dem CPU- Lokal-Bus 65 initiiert. Die PCI-Brücke 80 erzeugt das ADS#-Signal für Bus- Zyklen, die Targets auf dem Lokal-Bus 65 haben. Das ADS#-Signal ist vorzugsweise ein im aktiven Low-Zustand befindliches Strobe-Signal. Die PCI- Brücke 80 erzeugt ferner als Reaktion auf den Status der C/BEH(0)-Leitung ein R/W-Signal auf dem PCI-Bus, um anzuzeigen, ob die Transaktion einen Lese- oder Schreib-Zyklus umfasst. Das M/IO zeigt den Speicher- oder I/O- Einrichtungen den Zyklus-Status an. Schließlich zeigt das BLAST#-Signal an, ob Daten in einem Burst-Modus oder in einzelnen Zugriffen auf dem Lokal-Bus übertragen werden. Gemäß der bevorzugten Ausführungsform überträgt die PCI-Brücke 80 auch ein MEMWAIT-Signal zu der Speichersteuereinheit ("MCU") 90 und empfängt das MEMHIT-Signal von dieser. Diese Signale können gemäß Fig. 2 über direkte elektrische Verbindungen zwischen der PCI- Brücke 80 und der MCU 90 übertragen werden, oder sie können über Steuerleitungen in dem CPU-Lokal-Bus 65 ausgegeben werden.
- Die PCI-Brücke 80 empfängt ferner RDY#/BRDY#-Steuersignale von Komponenten an dem CPU-Lokal-Bus, um den Abschluss eines durch diese Komponente durchgeführten Zyklus anzuzeigen. Beispielsweise gibt die Speichersteuereinrichtung 90 ein BRDY#-Signal aus, um anzuzeugen, dass sie Daten empfangen hat oder gerade Daten auf den Datenleitungen D[31 : 0] ausgibt. Auf der Seite des PCI-Busses 100 erzeugt die PCI-Brücke 80 ein TRDY# -Ausgangssignal, das vorzugsweise gemäß Fig. 2 durch eine Steuerleitung an den PCI-Master 75 übermittelt wird. In ähnlicher Weise empfängt die PCI-Brücke 80 vorzugsweise durch eine Steuerleitung zwischen dem PCI-Master 75 und dem integrierten Prozessor 50 ein IRDY# aus dem PCI-Master 75. Daten werden übertragen, wenn IRDY# und TRDY# beide aktiviert sind.
- Der interne CPU-Lokal-Bus 65 ist vorzugsweise ein Multi-Master-Bus, der in der Lage ist, mehrere Bus-Master zu stützen. Die CPU 60, die PCI-Brücke 80 und die Peripherieeinrichtung 70 (die z. B. eine Direkt-Speicherzugriffs-Steuereinrichtung aufweisen kann) können alle die Belegung des CPU-Lokal-Busses 65 beanspruchen. Die Belegung des internen Lokal-Busses 65 durch diese internen Master wird typischerweise durch die Bus-Interface-Einheit (BIU) oder einen (nicht speziell gezeigten) anderen Bus-Arbiter in eine Prioritätenfolge gebracht.
- Wie weiter unten im Zusammenhang mit der Arbeitsweise der vorliegenden Erfindung näher erläutert wird, kann die PCI-Brücke 80 als ein PCI-Master funktionieren. Wenn der integrierte Prozessor 50 auf externe PCI-"Slaves" zugreift, arbeitet die PCI-Brücke 80 in ähnlicher Weise wie andere externe PCI- Masters, indem sie den PCI-Bus belegt. Somit beansprucht, wenn der CPU- Kern 60 oder die Peripherieeinrichtung 70 die Belegung des CPU-Lokal-Bus 65 beanspruchen, die PCI-Brücke 80 vorzugsweise die Belegung des PCI-Busses 100, falls der Zyklus auf eine Einrichtung abzielt, die sich an dem PCI-Bus 100 befindet.
- Umgekehrt arbeitet in den Fällen, in denen ein externer PCI-Master Zugriff auf eine Einrichtung sucht, die sich an dem CPU-Lokal-Bus 65 befindet, die PCI- Brücke 80 als Slave oder Target für den externen PCI-Master. Die PCI-Brücke führt als Reaktion einen entsprechenden Zyklus auf dem CPU-Lokal-Bus 65 aus, um dadurch beispielsweise dem externen PCI-Master zu erlauben, Daten zu lesen und zu schreiben, die innerhalb des Systemspeichers 125 zugewiesen sind. Während dieser PCI-Master-Zyklen belegt somit ein externer PCI-Master den PCI-Bus 100, und die PCI-Brücke 80 belegt den Lokal-Bus 65. Wenn die PCI-Brücke 80 die Belegung des CPU-Lokal-Busses 65 anfordert, erzeugt sie ein HOLD-Request für die CPU 60, die der PCI-Brücke 80 ein Bestätigungssignal HLDA zurücksendet, wenn das Master-Verhältnis gewährt worden ist.
- Die Speichersteuereinrichtung 90 weist vorzugsweise eine vereinigte Steuereinheit auf, die einen Hochleistungs-32-Bit-Datenweg zu dem Hauptspeicher 125 stützt. Bei der bevorzugten Ausführungsform sorgt die Speichersteuereinrichtung für eine direkte Verbindung von 32-Bit-Speicherbereichen, die mittels Industriestandard-Modulen bis zu 256 MB an DRAM-Bereich stützen. Die MCU 90 steuert den Zugriff auf den Hauptspeicher 125 und stellt eine Verbindung mit dem CPU-Lokal-Bus 65 her, um für die CPU 60, die PCI-Brücke 80 und (generell bei 70 angedeutete) andere Speicherkomponenten einen Weg zum Speicher zu schaffen. Wie oben erwähnt, gibt gemäß den Prinzipien der vorliegenden Erfindung die MCU 90 vorzugsweise ein MEMHIT-Signal an die PCI- Brücke 80 aus und empfängt ein MEMWAIT-Signal von der PCI-Brücke. Die MCU 90 empfängt ferner ein Zeitsteuerungssignal von dem System-Zeitgeber 85.
- Wie Fig. 2 weiterhin zeigt, ist die MCU 90 mit dem Hauptspeicher 125 vorzugsweise durch einen Speicher-Bus 150 verbunden, der Adress-Leitungen MA[11 : 0], Speicher-Daten-Leitungen MD[31 : 0], Reihen-Adress-Strobe- ("RAS"-)Leitungen RAS#(3 : 0), Spalten-Adress-Strobe-("CAS"-)Leitungen CAS#(3 : 0) und eine Schreib-Aktivierungsleitung WEH enthält. Auf den Speicher-Adress-Leitungen MA[11 : 0] wird ein Adress-Signal übertragen, um für gemultiplexte und nicht gemultiplexte Einrichtungen die Stelle in dem Speicher zu wählen, auf die zugegriffen werden soll. Die Datenleitungen (MD31-MD0) sind Speicher-Datenbus-Leitungen zum Übertragen von Daten zu und von den DRAM-Schaltungen und, dem integrierten Prozessor 50 oder andern externen Einrichtungen mittels herkömmlicher Techniken. Das Schreib-Aktivierungssignal WEH zeigt an, ob der Speicherzugriff ein Schreib-Zyklus ist, und wird typischerweise dem W/R-Steuersignal auf dem CPU-Lokal-Bus entnommen.
- Entsprechend herkömmlichen Techniken weisen die Reihen-Adress-Strobe- (RAS-)Leitungen (RAS3#-RAS0#) vorzugsweise aktive Low-Ausgangssignale auf, die von den DRAM-Schaltungen verwendet werden, um für jeden DRAM- Speicherbereich die Reihen-Adress-Daten aus dem Speicher-Adlress-Bus MA[11 : 0] einzutakten. Bei der bevorzugten Ausführungsform ist jedem Speicherbereich eine RAS-Leitung zugeteilt. Bei der bevorzugten Ausführungsform, bei der vier DRAM-Speicherbereiche verwendet werden, sind vier RAS-Leitungen vorgesehen. In ähnlicher Weise sind vier Spalten-Adress-Strobe-(CAS-) Leitungen (CAS3#-CAS0#) als aktive Low-Ausgangssignale vorgesehen, die von den DRAM-Schaltungen verwendet werden, für jeden Speicherbereich der DRAM-Bytes die Spalten-Adress-Daten aus dem Speicher-Adress-Bus MA[11 : 0] eintzutakten, mit einem CAS pro Byte. Somit ist beispielsweise CAS3# das DRAM-Spalten-Adress-Strobe für das Byte 3 in jedem DRAM- Speicherbereich.
- Weiterhin gemäß Fig. 2 weist der Hauptspeicher 125 vorzugsweise DRAM- Schaltungen auf, die zu mehreren Speicherbereichen konfiguriert sind, wobei jeder Speicherbereich 32 Bit (oder 4 Byte) breit ist. Wie ein Fachmann auf dem Gebiet verstehen wird, ist jede der DRAM-Speicherbereiche typischerweise in "Seiten" unterteilt. Die Seiten-Größe hängt von der Größe der jeweiligen DRAM-Chips ab, die verwendet werden. Um den DRAM-Chips zu ermöglichen, mit weniger Konnektor-Stiften zu arbeiteten, wodurch die Anzahl von Chips reduziert wird, die auf der System-Platine angeordnet werden können, werden die DRAM-Chips auf gemultiplexte Weise adressiert; dies bedeutet, dass die Adresse jeder Speicherzelle in zwei Teilen übertragen wird. Die erste Hälfte der Adresse definiert die Reihen-Adresse, und die zweite Hälfte definiert die Spalten-Adresse. Bei der bevorzugten Ausführungsform sind die ersten zwölf Leitungen des Speicher-Adress-Busses MA(11 : 0) gemultiplexte Ausgänge und übermitteln während RAS-Signalen die Reihen-Adress-Stelle und während CAS-Signalen die Spalten-Adress-Stellen. Eine einzelne Speicherzelle wird somit durch eine Spalten-Adresse und eine Reihen-Adresse gewählt. Die herkömmliche Weise, in der die Reihen-Adressen und die Spalten-Adressen dem DRAM-Speicher zugeführt werden, ist in dem Schaubild der herkömmlichen Zeitgebung gemäß Fig. 3A und 3B gezeigt.
- Wie generell in Fig. 3A (Lese-Zyklus) und 3B (Schreib-Zyklus) gezeigt ist, wird die Reihen-Adresse an die Adress-Eingänge des DRAM-Speichers gesteuert, wenn die RAS-(Reihen-Adress-Strobe-)Steuerleitung aktiviert wird (d. h. das RAS in den Low-Zustand gesteuert wird). Dies taktet die Reihen-Adresse in einen internen Reihen-Adress-Haltespeicher. Die Reihen-Adresse muss für eine Periode (tASR) stabil sein, bevor RAS aktiviert wird, und für eine Periode (tRAS), nachdem RAS aktiviert wird. Die Adress-Eingänge werden dann zu der Spalten-Adresse geändert, und CAS (das Spalten-Adress-Strobe) wird aktiviert (CAS wird in den Low-Zustand gesteuert). CAS funktioniert auch als Ausgangs-Aktivierung, so dass jedes Mal, wenn CAS ausgegeben wird, der Dreizustands-Treiber an dem Daten-Ausgangsstift aktiviert wird. Die Zeit, zu der CAS aktiviert werden kann, wird durch die minimale RAS-bis-CAS-Verzögerungsperiode (tRCD) bestimmt. Die Daten sind verfügbar, nachdem die Zugriffszeiten von RAS (die als tRAC bezeichnet wird) und CAS (die als tCAC bezeichnet wird) beide erfüllt worden sind. Die Leistungsgrenze wird bestimmt durch die Zugriffszeit von RAS (kRAC). Ein weiterer Zeisteuerungsparameter, der für Speicherzugriffe kritisch ist, ist die RAS-Vorladezeit (tRP). Die /orladezeit (tRP) ist die Zeit, die die DRAM-Schaltung benötigt, um sich von dem vorherigen Zugriff zu erholen. In dem Moment, in dem Daten verfügbar sind, kann ein weiterer Zyklus nicht für die gleiche RAM-Einrichtung gestartet werden. Somit ist die Zykluszeit für dynamischen Speicher größer als die Zugriffszeit. Der Unterschied zwischen der Zugriffszeit und der Zykluszeit besteht in der Vorladezeit. Diese Zeitsteuerungscharakteristiken von DRAM-Schaltungen werden kritisch, wenn man den Versuch unternimmt, Speicher-Transaktionen zu beschleunigen.
- Wiederum gemäß Fig. 2 besteht ein weiterer wichtiger Faktor für den Betrieb des DRAM-Hauptspeichers 125 in dem Erfordernis, die DRAM-Schaltungen periodisch aufzufrischen. Wie der Fachmann auf dem Gebiet erkennen wird, wird in einer einzelnen DRAM-Schaltung typischerweise nur ein Transistor benötigt, um ein Daten-Bit zu speichern. Der Transistor funktioniert lediglich als ein Schalter, der eine kleine elektrische Ladung in einem Kondensator speichert.
- Die Größe der Ladung bestimmt, ob eine "Null" oder eine "Eins" gespeichert wird. Da bei sämtlichen Kondensatoren Lecks auftreten, wird die Ladung an dem Kondensator in dem DRAM-Chip als Ergebnis von Isolierer-Verlusten langsam abgeleitet. Schließlich würde dabei die Ladung an dem Kondensator vollständig abgeleitet, und der Speicher-Inhalt wäre verloren. Die Lösung dieses Problems besteht darin, die DRAM-Schaltungen zu lesen, bevor die Dasten verloren sind, und den DRAM-Chip erneut mit den gleichen Daten zu beschreiben. Dieser Vorgang wird als "Auffrischen" des DRAM bezeichnet.
- Die DRAM-Auffrisch-Rate wird vorzugsweise von dem System-Zeitgeber 85 abgeleitet. Bei der bevorzugten Ausführungsform wird ein "verborgenes" versetztes CAS vor-RAS-Auffrisch-Schema verwendet, so dass die meisten DRAM- Auffrisch-Zyklen die System-Leistung nicht beeinträchtigen. Um die für den Auffrisch-Zyklus erforderliche Periode weiter zu minimieren, führt die MCU 90 · vorzugsweise keinen Auffrisch-Zyklus an leeren Speicherbereichen aus (d. h. wenn keine DRAM-Schaltungen in einem bestimmten Speicherbereich des DRAM-Speichers vorhanden sind). Durch die versetzte Auffrischung wird ein plötzlicher Strombedarf reduziert, indem jeder Speicherbereich unabhängig aufgefrischt wird. Auf diese Weise wird der Speicherbereich 0 aufgefrischt, dann wird der Speicherbereich 1 aufgefrischt, usw. Die Periode, mit der die Auffrisch-Zyklen auftreten, wird durch den System-Zeitgeber 85 bestimmt. Das von dem Zeitgeber erzeugte Taktsignal hat vorzugsweise das Vierfacehder Standard-Frequenz (die 256 KHz beträgt), so dass alle 4 Mikrosekunden ein Auffrisch-Zyklus beginnt, wobei die effektive Auffrisch-Periode 256 Zyklen pro Millisekunde beträgt. Folglich kann der Zeitgeber verwendet werden, um innerhalb der Standard-Auffrisch-Periode von 4 Millisekunden sämtliche DRAM- Speicherbereiche unabhängig und nacheinander zu steuern, um 2256 Auffrisch-Zyklen auszuführen. Auf diese Weise empfängt jeder Speicherbereich Auffrisch-Zyklen Auffrisch-Zyklen mit der Standard-Rate von ungefähr 15,625 us, ohne dass irgendwelche Speicherbereiche gleichzeitig aufgefrischt werden. Entsprechend herkömmlichen Techniken wird ein Auffrisch-Zyklus initiiert, in dem das CAS vor der Anstiegsflanke des RAS aktiviert wird, was während normaler DRAM-Zugriffe nicht erfolgt.
- Der On-chip-Peripherie-Block 70 repräsentiert vorzugsweise verschiedene Peripherieeinrichtungen, die in dem integrierten Prozessor 50 implementiert werden können. Beispielsweise können Komponenten wie eine Direkt- Speicherzugriffs-Steuereinrichtung ("DMA") oder eine Interrupt-Steuereinrichtung als integraler Teil in dem Paket des integrierten Prozessors enthalten sein. Wie ein Fachmann auf dem Gebiet verstehen wird, können verschiedene Peripherieeinrichtungen als Teil des integrierten Prozessors 50 vorgesehen sein.
- Weiterhin anhand Fig. 2 werden im folgenden der PCI-Bus 100 und die PCI- Master-Einrichtung 75 detaillierter beschrieben. Der PCI-Bus 100 ist ein gemultiplexter Hochleistungs-32-Bit-Adress-/Daten-Bus mit Multi-Master-Funktionen, der in der Lage ist, mehrere PCI-Master zu stützen. Bei der bevorzugten Ausführungsform des Computer-Systems kann jeder PCI-Master die Steuerung des PCI-Busses anfordern, und wenn ihm die Belegung des Busses gewährt wird, kann er Zyklen für jede PCI-Target-Einrichtung erzeugen.
- Die gemultiplexten Adress-/Daten-Leitungen AD[31 : 0] und die Steuerleitungen des PCI-Busses 100 sind vorzugsweise mit der PCI-Brücke 80 und debn PCI-Peripherie-Komponenten wie z. B. dem PCI-Master 75 verbunden. Die Steuerleitungen enthalten vorzugsweise Befehls-/Byte-Aktivierungen, ein Zyklus-Rahmen-Signal, ein Target-Bereitschafts-Signal und ein Initiator-Bereitschafts-Signal. Die Befehls-/Byte-Aktivierungen (C/BE3#-C/BE0#) übertragen gemultiplexte Übertragungs-Befehls- und Byte-Aktivierungs-Daten auf den gleichen Leitungen. Die Befehls-/Byte-Aktivierungs-Leitungen C/BE[3-0]# definieren den Bus-Befehl während der Adress-Phase. Während einer Daten- Phase werden C/BE[3-0]# als Byte-Aktivierungen verwendet, die bestimmen, welche Byte-Bahnen bedeutungstragende Daten führen.
- Das Zyklus-Rahmen-Signal (FRAME#) ist ein aufrechterhaltenes Eingangs-/ Ausgangs-Signal, das vorzugsweise ein aktives Low-Signal aufweist, welches von einem PCI-Master gesteuert wird, um den Beginn und die Dauer einer Transaktion anzuzeigen. FRAME# wird somit aktiviert, um den Beginn einer Bus-Transaktion zu signalisieren. Wenn FRAME# deaktiviert wird, befindet sich die Transaktion in der abschließenden Daten-Phase. Es ist anzumerken, dass FRAME# an der gleichen Taktsignalflanke aktiviert werden muss, an der · FRAME# deaktiviert wird, um die letzte Daten-Phase zu markieren.
- Das Target-/Lokal-Bus-Bereitschaftssignal (TRDY#/LRDY#) weist ein aktives Low-Eingangssignal auf, das durch PCI- und Lokal-Bus-Targets gesteuert wird, um die Fähigkeit des Targets anzuzeigen, die aktuelle Daten-Phase abzuschließen. Das Initiator-Bereitschafts-Signal (IRDY#), das in Verbindung mit TRDY# verwendet wird, weist ein aktives Low-Signal auf, das die Fähigkeit eines PCI-Masters anzeigt, die aktuelle Daten-Phase abzuschließen. Während eines Schreib-Zyklus beispielsweise gibt IRDY# an, dass gültige Schreib-Daten auf AD[31-0] vorhanden sind.
- Weitere Merkmale zu dem PCI-Bus sind beschrieben in der Veröffentlichung "PCI Local Bus Specification", PCI Special Interest Group, Hillsboro, Oregon. Weiterhin anhand Fig. 2 wird im folgenden die Arbeitsweise der vorliegenden.
- Erfindung gemäß der bevorzugten. Ausführungsform beschrieben. Der PCI- Master 75· fordert die Belegung des PCI-Busses 100 an, indem er ein Request auf den PCI-Bus steuert. Die PCI-Brücke 80 gibt als Reaktion ein HOLD-Signal an die CPU 60 aus, um die Belegung des CPU-Lokal-Busses 60 anzufordern. Die CPU 60 gewährt die Belegung des Lokal-Busses 65, indem sie ein HLDA- Signal aktiviert, das seitens der PCI-Brücke 80 empfangen wird. Die PCI- Brücke 80 bestätigt dann, dass die PCI-Master-Einrichtung 75 den PCI-Bus 100 belegt, indem sie ein entsprechendes Bus-Gewährungs-Signal an dlie Master-Einrichtung 75 ausgibt.
- Bei Anforderung des FRAME#-Signals durch den PCI-Master 75 werden die gemultiplexten Adress-Daten-Leitungen AD[31 : 0] des PCI-Busses 100 durch den PCI-Master 75 mit einer gültigen Adresse gesteuert. Die PCI-Brücke 80 erfasst die Adresse und gibt sie auf dem CPU-Lokal-Bus 65 aus. Falls die Adresse einer Stelle in dem Speicher entspricht, gibt die MCU 90 ein MEMHIT- Signal an die PCI-Brücke 80 aus, die ihrerseits an den PCI-Master ein Einrichtungs-Wähl-Signal (DEVSEL#) ausgibt, um die Transaktion zu beanspruchen. Die Zyklus-Definitions-/Byte-Aktivierungs-Leitungen C/BE[3 : 0] des PCI-Buses 100 werden anschließend mit einem Zyklus-Status-opcode gesteuert, um anzuzeigen, dass es sich bei dem derzeitigen Zyklus um eine Schreib- (oder Lese-) Operation handelt. Gemäß der bevorzugten Ausführungsform wird das M/IO-Signal der PCI-Brücke von der C/BE[2]-Leitung des PCI-Busses her abgegriffen, und das Lese-/Schreib-Signal R/W der PCI-Brücke wird von der C/BE[0]-Leitung des PCI-Busses her abgegriffen. Anschließend (in einem Schreib-Zyklus) steuert der PCI-Master 75 die Daten, die er schreiben möchte, auf die AD-Leitungen des PCI-Busses 100 und aktiviert das IRDY#-Signal, um anzuzeigen, dass gültige Daten auf dem PCI-Bus vorhanden sind.
- Falls der von dem PCI-Master 75 initiierte Zyklus eine Burst-Modus-Operation ist, übermittelt der PCI-Master 75 eine Anfangs-Speicher-Adresse und steuert anschließend ein Daten-Signal auf den PCI-Bus 100. In aufeinanderfolgenden Zyklen steuert der PCI-Master 75 nur Daten-Signale auf den Bus 100, wobei vorausgesetzt wird, dass die Speicher-Adresse für jede nachfolgende Datenübertragung viermal inkrementiert werden muss.
- Auf die Burst-Übertragung von dem PCI-Master 75 hin erzeugt die PCI-Brücke 80 eine Abfolge von Rücken-an-Rücken-Speicher-Zyklen. Nachdem die CPU durch die PCI-Brücke angehalten worden ist, wird der Burst-Zyklus von dem PCI-Master 75 in eine Abfolge von Einzel-Zyklus-Datenübertragungen auf dem CPU-Lokal-Bus 65 umgesetzt, indem das BLAST#-Signal entsprechend herkömmlichen Techniken aktiviert gehalten wird. Gemäß den Prinzipien der vorliegenden Erfindung kann dann jeder der durch die PCI-Brücke 80 erfolgenden Einzel-Zugriffe auf den Hauptspeicher auf die Geschwindigkeit des PCI-Masters gedrosselt werden, ohne die Leistung zu beeinträchtigen, selbst wenn die Master-Einrichtung mit Höchstgeschwindigkeit läuft.
- Die Arbeitsweise der vorliegenden Erfindung unterscheidet sich in Abhängigkeit davon, ob die PCI-Brücke einen Schreib-Zyklus auf den Speicher oder einen Lese-Zyklus auf den Speicher durchführt. Im folgenden werden die Einzelheiten jedes dieser Zyklen beschrieben. Während einer Schreib-Transaktion wird der Burst-Zyklus von dem PGI-Master 75 durch die PCI-Brücke 80 in eine Sequenz von Einzel-Zyklus-Schreib-Zugriffen auf den CPU-Lokal-Bus 65 umgesetzt. Der PCI-Master steuert zuerst die Adresse der Stelle in dem Speicher, auf die er zugreifen möchte, auf die AD-Leitungen AD[31 : 0] des PCI-Busses. Die PCI-Brücke 80 steuert als Reaktion die Adresse auf den CPU-Lokal-Bus 65, und von der MCU 90 wird MEMHIT ausgegeben (falls ein Treffer auftritt). Dann wird das Einrichtungs-Wähl-Signal von der PCI-Brücke zurück an den PCI- Master ausgegeben. Die Daten werden durch den PCI-Master auf den PCI-Bus gesteuert (markiert durch IRDY#), und die Daten werden in der PCI-Brücke 80 haltegespeichert (markiert durch TRDY#). Nachdem die PCI-Brücke 80 die Adresse und die erste Daten-Information von dem PCI-Master 75 empfangen hat, beginnt die PCI-Brücke 80 ihren Zyklus auf dem CPU-Lokal-Bus 65 durch Aktivieren des ADS#-Signals und Steuern der Adress- und Daten-Signale auf den CPU-Lokal-Bus. Die MCU 90 fährt damit fort, die Daten an die spezifizierte Adresse im Speicher zu schreiben, und gibt auf dem CPU-Lokal-Bus 65 ein BRDY#-Steuersignal an die PCI-Brücke 80 aus, um anzuzeigen, dass sie das erste Doppel-Wort des Daten-Schreib-Zyklus empfangen hat.
- Für anschließende in den Speicher erfolgende Daten-Schreibvorgänge (während des Burst-Zyklus auf dem PCI-Bus) wird gemäß der vorliegenden Erfindung der Speicher "gedrosselt", indem MEMWAIT ausgegeben wird und die Speicher-Adresse des nächsten Doppel-Wortes von Daten an die MPU 90 ausgegeben wird, bevor das entsprechende Doppel-Wort aus dem PCI-Master 75 empfangen wird. Dies ermöglicht der MCU 90, schon vorzeitig die Seite im Speicher zu öffnen, in die die Daten geschrieben werden sollen. Folglich ist die MCU im wesentlichen in der Lage, "vorauszusehen", um festzustellen, wo der nächste Daten-Schreibvorgang erfolgen wird, und kann damit beginnen, auf diese Seite in dem Speicher zuzugreifen, bevor die Daten tatsächlich durch den PCI-Master 75 übertragen werden.
- Diese Fähigkeit zum Vorausschauen wird erzielt, indem die zweite und sämtliche nachfolgenden Datenübertragungen während des Burst-Zyklus unmittelbar nach dem Rückübertragen des BRDY#-Signals aus der MCU 90 gestartet werden. Nachdem sie das BRDY#-Signal aus der MCI 90 empfangen hat, aktiviert die PCI-Brücke 80 das TRDY#-Signal, um der PCI-Master-Einrichtung 75 mitzuteilen, dass das Target (d. h. die MCU) bereit ist oder die Daten-Schreib- Transaktion abgeschlossen hat. Bei dem nächsten Taktsignal kann der PCI- Master die zu schreibenden Daten steuern, falls er bereit ist, und er aktiviert IRDY#, um zu zeigen, dass gültige Daten auf die AD-Leitungen gesteuert werden. Falls jedoch der PCI-Master 75 langsam ist und die Daten noch nicht bereit zur Übermittlung sind, wird IRDY# durch den PCI-Master deaktiviert, um anzuzeigen, dass er keine gültigen Daten bereithält. Falls IRDY# in dem auf das Aktivieren von TRDY# folgenden Taktzyklus deaktiviert wird, fährt die PCI- Brücke 80 damit fort, das MEMWAIT-Signal an die MCU 90 auszugeben, wodurch die MCU daran gehindert wird, ungültige Daten zu schreiben. Es ist anzumerken, dass das MEMWAIT-Signal für mindestens einen Taktzyklus bedingungslos aktiviert wird. Zusätzlich zum Ausgeben des MEMWAIT-Signals steuert die PCI-Brücke 80 die Speicher-Adresse der nächsten Schreib-Stelle auf den CPU-Lokal-Bus 65 und aktiviert gleichzeitig das ADS#-Signal, was die MCU dazu veranlasst, das Adress-Signal haltezuspeichern. Die MCU aktiviert dann die korrekte Reihen-Adress-Strobe-(RAS-)Leitung, um dadurch zu ermöglichen, dass die Seite, an der die nächste Adresse angeordnet ist, in dem korrekten Speicherbereich im DRAM-Speicher geöffnet wird.
- Nachdem die PCI-Master-Einrichtung 75 bereit zum Steuern der Daten ist, was durch die Aktivuierung von IRDY' seitens des Masters markiert wird, werden die Daten aus dem PCI-Bus 100 über die PCI-Brücke 80 zu dem CPU-Lokal- Bus 65 übertragen, und das MEMWAIT-Signal wird durch die PCI-Brücke 80 deaktiviert. Die MPU 90 führt als Reaktion eine Haltespeicherung der Daten durch und aktiviert das Spalten-Reihen-Strobe-(CAS-)Signal, um die Übertragung abzuschließen. Als Ergebnis dieses Vorgangs ist es möglich, die RAS- Zugriffszeit (TRAC) einzusparen, falls sich die Adresse in einem unterschiedlichen Speicherbereich befunden hat, oder die Zugriffszeit für RAS (TRAC) plus der RAS-Vorladezeit (tRP), falls sich die Adresse auf einer unterschiedlichen Seite in dem gleichen DRAM-Speicherbereich befunden hat.
- Bei dem ersten Zyklus einer von dem PCI-Master 75 durchgeführten Burst- Lese-Transaktion hingegen startet der an dem System-Speicher 125 durchgeführte Zyklus, nachdem die Belegung sowohl des PCI-Busss 100 als auch des CPU-Lokal-Bus 65 erzielt worden ist. Der PCI-Master 75 zeigt den Zyklus an, indem er das FRAME#-Signal deaktiviert und die Adress-Leitungen des PCI- Busses 100 mit der Adresse der verlangten Daten steuert. Die PCI-Brücke 80 steuert im wesentlichen gleichzeitig die Adresse im Speicher, aus der gelesen werden soll. Die MCU 90 empfängt die Lese-Adresse und gibt das MEMHIT- Signal aus, falls die Adresse einer Adresse im Hauptspeicher 125 entspricht, und als Reaktion gibt die PCI-Brücke das DEVSEL#-Signal an den Master 75 aus. Der PCI-Master 75 führt die Transaktion fort, und die PCI-Brücke 80 gibt das Lokal-Bus-Strobe-Signal ADS# aus, wodurch die MCU 90 veranlasst wird, das Adress-Signal haltezuspeichern. Die MCU 90 fährt dann damit fort,, auf die Reihen und Spalten des Speichers zuzugreifen, und rückübermittelt dlie gültigen Daten, die durch das Ausgeben von BRDY# auf dem Lokal-Bus 65 markiert sind. Als Reaktion gibt die PCI-Brücke 80 ein TRDY#-Signal auf dem PCI- Bus 100 aus und startet unmittelbar den nächsten Lese-Zyklus für den Speicher.
- Falls der PCI-Master 75 IRDY# nicht als Reaktion auf das (oder vor dem) TRDY#-Signal ausgibt, wird der Lese-Zyklus gedrosselt, wobei die PCI-Brücke 80 MEMWAIT an die MCU 90 ausgibt. Während MEMWAIT ausgegeben wird, empfängt die MCU 90 die nächste Lese-Adresse von der PCI-Brücke 80 und dekodiert das Adress-Signal zu einer Reihen- und Spalten-Adresse. Die MCU 90 verwendet dann die Reihen-Adresse, die durch die Aktivierung der korrekten RAS-Leitung aktiv gemacht ist, um die Seite in dem Speicher zu öffnen, auf der sich die Lese-Adresse befindet. Bei der bevorzugten Ausführungsform steuert die MCU 90 auch die Daten auf den Speicher-Bus 150, indem sie die durch die korrekte CAS-Leitung aktivierte Speicher-Adresse ausgibt. Als Ergebnis werden die zu lesenden Daten auf den Lokal-Bus gesteuert, während MEMWAIT noch aktiviert ist.
- Wenn die PCI-Master-Einrichtung 75 IRDY# aktiviert und die erste Daten- Phase empfängt, findet der nächste Lese-Zyklus mit der Deaktivierung des MEMWAIT-Signals durch die PCI-Brücke 80 statt. Gemäß der bevorzugten Ausführungsform reagiert, falls die nächsten Daten auf den Lokal-Bus geladen worden sind, die MCU 90 unmittelbar mit einem BRDY#-Signal; und die PCI- Brücke 80 gibt das TRDY#-Signal aus, um dem PCI-Master anzuzeigen, dass die nächste Daten-Phase bereit ist, gelesen zu werden. Nach dem Ausgeben des TRDY#-Signals beginnt der PCI-Master unmittelbar den nächsten Zyklus durch Ausgeben von ADS# und Steuern der nächsten Lese-Adresse auf dem Lokal-Bus und Aktivieren von MEMWAIT.
- Die Prinzipien der vorliegenden Erfindung können auch während Auffrisch- Zyklen implementiert werden, um die Durchführung von Auffrisch-Zyklen zu ermöglichen, während MEMWAIT aktiviert ist. Falls eine Auffrisch-Anforderung an den gleichen DRAM-Speicherbereich ergeht, in dem die Seite offen ist, und während MEMWAIT aktiviert ist, startet die MCU 90 vorzugsweise den CASvor-RAS-Auffrisch-Zyklus, indem sie die CAS-Leitungen aktiv hält und die RAS-Leitung deaktiviert, um die Vorlade-Zyklen zu beginnen. Nachdem die Vorlade-Zyklen abgeschlossen sind, aktiviert die MCU 90 die RAS-Leitung, um den Auffrisch-Zyklus zu starten, bis die tRAS5-Zeit erfüllt ist, wobei zu diesem Zeitpunkt die RAS-Leitung deaktiviert wird, um die Vorlade-Zyklen erneut zu starten. Bei Abschluss der Vorlade-Zyklen öffnet die MCU 90 erneut die vorhe rige DRAM-Seite und fährt damit fort, den Speicher-Bus herunterzudrosseln, falls MEMWAIT noch aktiviert ist.
- Falls MEMWAIT während des Auffrisch-Zyklus deaktiviert wird, wartet die MCU 90 vorzugsweise, bis tRAS erfüllt ist, und deaktiviert die RAS-Leitung, um die Vorlade-Zyklen zu starten. Bei Abschluss der Vorlade-Zyklen öffnet die MCU 90 die vorherige DRAM-Seite und schließt den Speicher-Zugriff ab, nachdem sie BRDY# an der PCI-Brücke 80 aktiviert hat. Die DRAM-Seite bleibt dann offen, bis eine Auffrisch-Anforderung erfolgt, oder bis seitens eines anderen Masters ein nachfolgender Daten-Zugriff auf eine unterschiedliche DRAM-Seite erfolgt. Die in dieser Sequenz eingesparte Zeit ist die tRAS-Periode, indem die DRAM-Seite vorzeitig geöffnet wird, nachdem das Auffrischen abgesclhlossen ist.
- Falls die Auffrisch-Anforderung an einen unterschiedlichen DRAM-Speicherbereich ergeht, und während MEMWAIT aktiviert ist, deaktiviert die MCU 90 · vorzugsweise die derzeit aktive CAS-Leitung, um die aktuelle Seite zu schließen, während die CAS-Leitungen aktiv gehalten werden, und aktiviert unmittelbar die RAS-Leitung des neuen Speicherbereichs, um den Auffrisch-Zyklus zu starten. Die RAS-Leitung wird aktiv gehalten, bis die tRAS-Zeit erfüllt ist, wobei zu diesem Zeitpunkt die RAS-Leitung deaktiviert wird, um das Vorladen zu starten: Am Ende der Vorlade-Zyklen öffnet die MCU 90 die vorherige DRAM-Seite und fährt damit fort, den Speicher-Bus herunterzudrosseln, falls MEMWAIT noch aktiviert ist.
- Falls hingegen MEMWAIT während des Auffrisch-Zyklus deaktiviert wird, wartet die MCU vorzugsweise, bis tRAS erfüllt ist, und deaktiviert die RAS-Leitung, um die Vorlade-Zyklen zu starten. Bei Abschluss der Vorlade-Zyklen öffnet die MCU die vorherige DRAM-Seite und schließt den Speicher-Zugriff ab, nachdem sie BRDY# aktiviert hat. Die DRAM-Seite bleibt dann offen, bis eine Auffrisch- Anforderung erfolgt, oder bis seitens eines anderen Masters eine Speicher- Anforderung für eine unterschiedliche DRAM-Seite erfolgt. Wiederum ist einge sparte Zeit ist die tRAS-Periode, indem die DRAM-Seite vorzeitig geöffnet wird, nachdem das Auffrischen abgeschlossen ist.
- Zur weiteren Erleichterung des Verständnisses der Weise, in der das Protokoll gemäß der vorliegenden Erfindung implementiert wird, werden im folgenden Beispiele von Zeitsteuerungsdiagrammen erläutert. Fig. 4A-4E zeigen Zeitsteuerungsdiagramme zur Darstellung der Daten-, Adress- und Steuersignale bei Lese- und Schreib-Zyklen, die an unterschiedlichen Stellen im Hauptspeicher vorgenommen werden. In der unteren Reihe des Zeitsteuerungs-Diagramms ist der Zustand des DRAM-Speichers gezeigt, um das Verständnis dieser Diagramme zu erleichtern.
- Die zunächst zu erläuternde Fig. 4A zeigt einen gedrosselten Speicher-Lese- Zyklus in einer Situation, in der zwei aufeinanderfolgende Speicher-Zugriffe auf die gleiche Seite eines DRAM-Speicherbereiches im Hauptspeicher erfolgen. In dem Anfangszustand ist eine Seite in dem Speicher offen, wie durch den DRAMSTATE-Hinweis gezeigt, um auf einen vorherigen Speicher-Zugriff auf diese gleiche Seite zu verweisen. In dieser Anfangsperiode wird die RAS(1)-Leitung aktiviert, um anzuzeigen, dass auf den Speicherbereich 1 des DRAM-Speichers zugegriffen worden ist und eine Seite in diesem Speicherbereich geöffnet worden ist. Anschließend wird ein Schreib-Zyklus gestartet, indem die PCI-Brücke (1) das ADS#-Steuersignal in den Low-Zustand steuert, (2) das W/R-Signal im High-Zustand aktiviert, um einen Schreib-Zyklus anzugeben, und (3) die Adress- und Daten-Information auf dem Lokal-Bus auszugeben. Gemäß herkömmlichen Techniken aktiviert die MCU das BRDY#- Signal früh, in dem ersten T2-Zyklus, bevor der Speicher-Schreibvorgang seinen Zyklus tatsächlich abschließt. Kurz danach aktiviert die MCU die CAS(2)- Leitung, um den Daten-Schreib-Vorgang abzuschließen.
- Sobald die PCI-Brücke das BRDY#-Signal von der MCU empfängt, aktiviert sie das ADS#-Signal zum Starten des nächsten Zyklus, bei dem es sich um einen Lese-Zyklus handelt, wie daran erkennbar ist, dass die W/R-Leitung in den Low-Zustand gesteuert ist. Zur gleichen Zeit aktiviert die PCI-Brücke das MEMWAIT-Signal, um den Speicher-Bus herunterzudrosseln. Gemäß der bevorzugten Ausführungsform wird das Adress-Signal an die MCU übermittelt, während MEMWAIT aktiviert ist. Da die DRAM-Seite bereits offen ist, braucht die MCU keinen Vorgang zum Öffnen der Seite vorzunehmen, indem sie den Zustand der RAS-Leitungen in der Situation gemäß Fig. 4A ändert. Bei der bevorzugten Ausführungsform jedoch aktiviert die MCU die CAS-Leitung (in diesem Fall CAS(2)), um die zu lesenden Daten auf den Speicher-Bus und somit auf den Lokal-Bus zu steuern. Wenn MEMWAIT deaktivier ist, aktiviert die MCU BRDY#, um anzuzeigen, dass die Daten verfügbar sind, und die DRAM-Seite wird für den nächsten Zyklus offengelassen.
- Somit drosselt, falls sich die Adresse auf der gleichen DRAM-Seite befindet, die MCU 90 den Speicher-Bus 150 herunter, indem sie eine Schleife durch einen Wartezustands-Zyklus durchführt, bis MEMWAIT von der PCI-Brücke 90 deaktiviert wird oder bis eine Auffrisch-Zyklus-Anforderung ausgegeben wird. Wenn MEMWAIT deaktiviert ist, aktiviert die MCU 90 BRDY# und schließt den Speicher-Zugriff ab. Die DRAM-Seite bleibt dann offen, bis eine andere Master- Einrichtung eine Speicher-Anforderung für eine andere Seite ausgibt, oder bis eine Auffrisch-Anforderung erfolgt.
- In der nun zu erläuternden Fig. 4B ist ein gedrosselter Speicher-Schreib- Zyklus für die gleiche DRAM-Seite gezeigt. Wiederum ist in dem Anfangs- Zustand die DRAM-Seite offen, um auf einen vorherigen Zugriff auf diese Seite hinzuweisen. Anschließend aktiviert die PCI-Brücke das ADS#-Steuersignal, aktiviert das W/R-Signal, um einen Schreib-Zyklus anzuzeigen, und aktiviert die MEMWAIT-Leitung, um anzuzeigen, dass der PCI-Master nicht bereit ist, Daten zu übertragen. Während die MEMWAIT-Leitung aktiviert ist, und gemäß der bevorzugten Ausführungsform, fährt die PCI-Brücke damit fort, die Adresse des Schreib-Zyklus an die MCU zu steuern. Da jedoch die korrekte Seite bereits geöffnet wurde, wird der Zustand der RAS-Leitungen nicht geändert. Wenn das MEMWAIT-Signal durch die PCI-Brücke deaktiviert ist, aktiviert die MCU das BRDY#-Signal und schließt den Schreib-Zyklus ab, indem sie die korrekte CAS-Leitung (CAS(2)) aktiviert. Ein nachfolgender Lese-Zyklus ist in Fig. 4B ohne ein MEMWAIT-Signal gezeigt.
- In der nun zu erläuternden Fig. 4C ist ein gedrosselter Speicher-Schreib- Zyklus für eine unterschiedliche DRAM-Seite gezeigt. In dem Anfangs-Zustand ist die DRAM-Seite in dem Speicherbereich 3 von einem vorherigen Zugriff auf diese Seite her offen, wie an der Aktivierung von RAS(3) ersichtlich üst. Anschließend aktiviert die PCI-Brücke das ADS#-Steuersignal, während sie das W/R-Signal bw hält, um einen Lese-Zyklus anzuzeigen. Im wesentlichen zur gleichen Zeit aktiviert die PCI-Brücke das MEMWAIT-Signal, um anzuzeigen, dass die PCI-Master-Einrichtung noch nicht bereit ist. Daten zu empfangen. Gemäß der bevorzugten Ausführungsform steuert die PCI-Brücke die Adresse auf den Lokal-Bus, wo sie von der MCU empfangen wird. Die MCU dekodiert die Adresse und wechselt von dem DRAM-Speicherbereich 3 zu dem DRAM- Speicherbereich 2 und steuert dann die Reihen-Adress-Strobe-Leitung RAS(2) in den Low-Zustand, während sie RAS(3) in den High-Zustand steuert, um die dekodiere Reihen-Adresse in den Speicherbereich 2 zu steuern. Die MCIJ öffnet dann die korrekte DRAM-Seite in dem Speicherbereich 2 und fährt damit fort, die gewünschten Daten auf den. Speicher-Bus und somit auf den Lokal-Bus zu steuern, indem sie die vier CAS-Leitungen aktiviert. Wenn das MEMWAIT- Signal deaktiviert wird, um anzuzeigen, dass der PCI-Master bereit zum Empfangen der Daten ist, aktiviert die MCU das BRDY#-Signal, um anzuzeigen, dass der Lese-Zyklus durchgeführt worden ist.
- Falls somit die Adresse auf einen unterschiedlichen DRAM-Speicherbereich verweist, schließt die MCU die aktuelle DRAM-Seite des aktuellen Speicherbereichs, während MEMWAIT aktiviert wird und unmittelbar die DRAM-Seite des neuen Speicherbereichs öffnet (da keine RAS-Vorlade-Zyklus-Zeit existiert, weil auf einen unterschiedlichen DRAM-Speicherbereich zugegriffen wird). Die MCU drosselt dann den Speicher-Bus herunter, indem sie eine Schleife durch einen Wartezustands-Zyklus durchführt, bis MEMWAIT deaktiviert wird oder bis eine Auffrisch-Zyklus-Anforderung ausgegeben wird. Nachdem MEMWAIT deaktiviert ist, aktiviert die MCU BRDY# und schließt den Speicher-Zugriff ab. Die DRAM-Seite bleibt offen, bis ein Master eine nachfolgende Speicher-Anforderung für eine andere Seite ausgibt, oder bis eine Auffrisch-Anforderung empfangen wird. In dieser Sequenz wird die Zeit zum Zugreifen auf die DRAM- Seite (tRAC) eingespart, indem die Seite vordem Daten-Zugriff geöffnet wird.
- Fig. 4D zeigt einen gedrosselten Speicher-Lese-Zyklus für eine unterschiedliche Seite im Speicher. Die ersten beiden Zustände zeigen einen Schreib- Zyklus, gefolgt von einem Lese-Zyklus ohne ein MEMWAIT. Anschließend aktiviert die PCI-Brücke das ADS#-Steuersignal, während sie das W/R-Signal low hält, um einen Lese-Zyklus anzuzeigen. Während MEMWAIT aktiviert ist, steuert die PCI-Brücke die auf dem Lokal-Bus befindliche Adresse zu der MCU. Die MCU dekodiert die Adresse und öffnet die korrekte Seite im Speicher. Nachdem die Seite offen ist, aktiviert die MCU die CAS-Leitungen, um die Daten auf den Speicher-Bus und somit auf den Lokal-Bus zu steuern. Wenn das MEMWAIT-Signal deaktiviert wird, aktiviert die MCU das BRDY#-Signal, um anzuzeigen, dass der Lese-Zyklus abgeschlossen ist.
- Falls somit die Adresse auf eine unterschiedliche DRAM-Seite verweist, schließt die MCU die aktuelle DRAM-Seite und rückt auf einen Vorlade-Zustand. Nachdem das RAS-Vorladen abgeschlossen ist, öffnet die MCU 90 die DRAM-Seite und drosselt den Speicher-Bus 150 herunter, indem sie eine Schleife durch einen Wartezustands-Zyklus durchführt, bis MEMWAIT deaktiviert wird oder bis eine Auffrisch-Zyklus-Anforderung ausgegeben wird. Nachdem MIEMWAIT deaktiviert ist, aktiviert die MCU 90 BRDY# und schließt den Speicher-Zugriff ab, indem die CAS aktiviert, um einen Zugriff auf das bestimmte Byte der DRAM-Seite zu ermöglichen. Nachdem die Datenübertragung abgeschlossen worden ist, wird die DRAM-Seite offen gelassen, bis eine Auffrisch-Anforderung empfangen wird, oder bis eine andere Master-Einrichtung eine Speicher- Anforderung für eine andere Seite ausgibt. In dieser Sequenz wird die RAS- Vorlade-Zyklus-Zeit eingespart (tRP), und die Zeit zum Zugreifen auf die DRAM-Seite (tRAC) wird eingespart.
- Fig. 4E schließlich zeigt einen gedrosselten Speicher-Lese-Zyklus mit einem zwischenliegenden Auffrisch-Zyklus. Der Anfangs-Zustand gemäß Fig. 4E zeigt einen Schreib-Zyklus. Anschließend aktiviert die PCI-Brücke das ADS#- Steuersignal, steuert das W/R-Signal in den Low-Zustand und aktiviert gleichzeitig MEMWAIT, um anzuzeigen, dass der PCI-Master nicht bereit ist, die Daten zu empfangen. Die PCI-Brücke steuert die Adresse auf den Lokal-Bus, wo sie von der MCU empfangen und dazu verwendet wird, auf die gewünschte Seite im Speicher zuzugreifen. Die MCU aktiviert dann die korrekte Spalten- Adress-Strobe-Leitung CAS(2), um die Daten auf den Speicher-Bus zu steuern. Anschließend jedoch während MEMWAIT noch aktiviert ist, wird seitens der MCU eine Aufrisch-Anforderung empfangen. Während MEMWAIT noch aktiviert ist, fährt die MCU damit fort, den Auffrisch-Zyklus für den Speücherbereich durchzuführen, indem sie für diesen Speicherbereich CAS vor RAS aktiviert. Nachdem das Auffrischen abgeschlossen ist, öffnet die MCU wieder die korrekte Seite im Speicher, indem sie wieder RAS(1) aktiviert, und dann gibt die die Daten wieder gesteuert aus, indem sie CAS(2) aktiviert.
- In voller Kenntnis der obigen Offenbarung werden Fachleuten auf dem Gebiet zahlreiche Variationen und Modifikationen ersichtlich sein.
Claims (31)
1. Verfahren zum Optimieren der Datenübertragung zwischen einem
Systemspeicher (125) und einer PCI-Master-Einrichtung (75), wobei der PCI-
Master über einen PCI-Bus (100) mit einer PCI-Brücke (80) verbunden
ist, die Brücke an einem CPU-Lokal-Bus (65) angeordnet ist, und der
Systemspeicher über einen Speicher-Bus (150) mit einer
Speicher-Steuereinheit (90) verbunden ist, wobei die Speicher-Steuereinheit ebenfalls
an dem Lokal-Bus angeordnet ist, mit den folgenden Schritten:
(a) Beanspruchung der Belegung des PCI-Busses durch den PCI-Master;
(b) Steuern eines Adress-Signals auf dem PCI-Bus mittels des PCI-
Masters;
(c) Erzeugen eines Adress-Strobe-Signals auf dem Lokal-Bus durch die
PCI-Brücke und Steuern des Adress-Signals auf dem Lokal-Bus;
(d) Erzeugen eines Warte-Signals durch die PCI-Brücke zur Angabe der
Unmöglichkeit für den PCI-Master, die Daten-Phase der Transaktion
unmittelbar abzuschließen;
(e) Dekodieren des Adress-Signals durch die Speicher-Steuereinheit;
(f) Öffnen einer geeigneten Seite in dem Systemspeicher durch die
Speicher-Steuereinheit;
(g) Deaktivieren des Warte-Signals, und zwar auf einen Hinweis hin,
daß der PCI-Master bereit zum Abschließen der Daten-Phase ist;
und
(h) Abschließen der Daten-Transaktion durch die
Speicher-Steuereinheit.
2. Verfahren nach Anspruch 1, bei dem der Schritt des Öffnens der
geeigneten Speicher-Seite (Schritt f) die folgenden Schritte umfaßt:
(f) (1) Ausgeben eines Spalten-Adress-Signals an den Systemspeicher;
und
(f) (2)
Belegen einer geeigneten Reihen-Adress-Strobe-(RAS-) Leitung
zum Aktivieren des Reihen-Adress-Signals.
3. Verfahren nach Anspruch 2, bei dem die Schritte (f)(1) und (f)(2)
abgeschlossen werden, während das Warte-Signal aktiviert ist.
4. Verfahren nach Anspruch 3, bei dem die Speicher-Steuereinheit: ferner
die Spalten-Adresse ausgibt und ein geeignetes Spalten-Adress-Strobe-
Signal aktiviert, um während eines Lese-Zyklus, während das Warte-
Signal noch aktiviert ist, Daten aus dem Speicher heraus zu steuern.
5. Verfahren nach Anspruch 1, bei dem ein Auffrisch-Zyklus durchgeführt
wird, während das Warte-Signal aktiviert ist.
6. Verfahren nach Anspruch 1, bei dem der Schritt des Abschließens der
Daten-Transaktion (Schritt (h)) die folgenden Schritte umfaßt:
(h) (1) Ausgeben eines Spalten-Adress-Signals an den Speicher, während
das geeignete Spalten-Adress-Strobe-(CAS-)Signal aktiviert ist;
(h) (2) Aktivieren eines BRDY#-Signal an die PCI-Brücke.
7. Verfahren nach Anspruch 6, bei dem die PCI-Brücke auf das BRDY#-
Signal von der Speicher-Steuereinheit hin ein TRDY#-Signal an den PCI-
Master ausgibt.
8. Verfahren nach Anspruch 7, bei dem die PCI-Brücke ein MEMWAIT-Signal
ausgibt, falls der PCI-Master kein IRDY#-Signal auf das TRDY#-Signal hin
ausgibt.
9. Verfahren zum Optimieren der Datenübertragung zwischen einem
Systemspeicher (125) und einer PCI-Master-Einrichtung (75) während eines
Schreib-Zyklus, wobei der PCI-Master über einen PCI-Bus (100) mit einer
PCI-Brücke (80) verbunden ist, die Brücke an einem CPU-Lokal-Bus (65)
angeordnet ist, und der Systemspeicher über einen Speicher-Bus (150)
mit einer Speicher-Steuereinheit (90) verbunden ist, wobei die Speicher-
Steuereinheit ebenfalls an dem Lokal-Bus angeordnet ist, mit den
folgenden Schritten:
(a) Belegen des PCI-Busses durch den PCI-Master;
(b) Übertragen eines Burst-Zyklus mittels des PCI-Masters über den
PCI-Bus;
(c) seitens der PCI-Brücke, Empfangen eines ersten Adress-Signals und
eines ersten Daten-Signals aus dem Burst-Zyklus, und Belegen des
Lokal-Busses;
(d) Übertragen des ersten Adress-Signals und des ersten Daten-Signals
über den Lokal-Bus mittels der PCI-Brücke;
(e) mittels der Speicher-Steuereinheit, Schreiben des ersten Daten-
Signals an die dem ersten Adress-Signal entsprechende Adresse in
dem Speicher und Ausgeben eines Speicher-Bereitschafts-Signals an
die PCI-Brücke,
(f) Ausgeben eines Target-Bereitschafts-Signals aus der PCI-Brücke an
den PCI-Master auf das Bereitschafts-Signal von der Speicher-
Steuereinheit hin; und
(g) mittels der PCI-Brücke bei Nichtvorhandensein eines Initiator-
Bereitschafts-Signals aus dem PCI-Master, Erzeugen eines Warte-
Signals an die Speicher-Steuereinheit und Ausgeben eines zweiten
Adress-Signals an die Speicher-Steuereinheit.
10. Verfahren nach Anspruch 9, bei dem die Speicher-Steuereinheit auf den
Schritt (d) hin ein MEMHIT-Signal erzeugt, falls das erste Adress-Signal in
dem Systemspeicher vorhanden ist.
11. Verfahren nach Anspruch 9, ferner mit den folgenden Schritten:
(h) mittels der Speicher-Steuereinheit, Dekodieren des zweiten Adress-
Signals zum Erzeugen einer Reihen-Adresse und einer Spalten-
Adresse; und
(i) mittels der Speicher-Steuereinheit, Steuern der Reihen-Adresse des
zweiten Adress-Signals in den Speicher und Ausgeben eines Reihen-
Adress-Strobe-(RAS-)Signals an den Speicher, um eine geeignete
Seite in dem Speicher zu öffnen.
12. Verfahren nach Anspruch 11, ferner mit den folgenden Schritten:
(j) Deaktivieren des Warte-Signals auf ein Initiator-Bereitschafts-Signal
von dem PCI-Master hin, welches angibt, daß der PCI-Master ein
zweites Daten-Signal auf den PCI-Bus gesteuert hat;
(k) mittels der Speicher-Steuereinheit, Steuern der Spalten-Adresse des
zweiten Adress-Signals in den Speicher und Ausgeben eines
geeigneten Spalten-Adress-Strobe-(CAS-)Signals an den Speicher, um
das zweite Daten-Signal dahingehend zu aktivieren, daß es in den
Speicher geschrieben wird.
13. Verfahren nach Anspruch 9, bei dem ein Auffrisch-Zyklus an einem
Speicherbereich des Speichers vorgenommen wird, während das Warte-Signal
ausgegeben wird.
14. Verfahren nach Anspruch 13, bei dem der Auffrisch-Zyklus an dem
gleichen Speicherbereich des Speichers vorgenommen wird, in dem die Seite
offen ist.
15. Verfahren nach Anspruch 13, bei dem der Auffrisch-Zyklus an einem
unterschiedlichen Speicherbereich des Speichers als demjenigen
vorgenommen wird, in dem die Seite offen ist.
16. Verfahren nach Anspruch 13, bei dem der Auffrisch-Zyklus eine CAS-vor
RAS-Sequenz aufweist.
17. Verfahren nach Anspruch 13, bei dem jeder Speicherbereich des
Speichers unabhängig aufgefrischt wird.
18. Verfahren zum Optimieren der Datenübertragung zwischen einem
Systemspeicher (125) und einer PCI-Master-Einrichtung (75) während eines
Lese-Zyklus, wobei der PCI-Master über einen PCI-Bus (100) mit einer
PCI-Brücke (80) verbunden ist, die Brücke an einem CPU-Lokal-Bus (65)
angeordnet ist, und der Systemspeicher über einen Speicher-Bus (150)
mit einer Speicher-Steuereinheit (90) verbunden ist, wobei die Speicher-
Steuereinheit ebenfalls an dem Lokal-Bus angeordnet ist, mit den
folgenden Schritten:
(a) Belegen des PCI-Busses durch den PCI-Master;
(b) mittels des PCI-Masters, Übertragen einer ersten in dem Speicher -
auszulesende Adresse über den PCI-Bus;
(c) seitens der PCI-Brücke, Empfangen des ersten Adress-Signals und
Belegen des Lokal-Busses;
(d) mittels der PCI-Brücke, Übertragen des ersten Adress-Signals auf
dem Lokal-Bus;
(e) seitens der Speicher-Steuereinheit, Empfangen des ersten Adress-
Signals, Lesen eines dem ersten Adress-Signal entsprechenden
Daten-Signals in dem Speicher, Steuern des ersten Daten-Signals auf
den Lokal-Bus und Ausgeben eines Speicher-Bereitschafts-Signals
an die PCI-Brücke;
(f) mittels der PCI-Brücke, Ausgeben eines Target-Bereitschafts-Signals
an den PCI-Master auf das Bereitschafts-Signal von der Speicher-
Steuereinheit hin;
(g) mittels der PCI-Brücke bei Nichtvorhandensein eines Initiator-
Bereitschafts-Signals aus dem PCI-Master, Erzeugen eines Warte-
Signals an die Speicher-Steuereinheit und Ausgeben eines zweiten
Adress-Signals an die Speicher-Steuereinheit.
19. Verfahren nach Anspruch 18, bei dem die Speicher-Steuereinheit auf den
Schritt (d) hin ein MEMHIT-Signal erzeugt, falls das erste Adress-Signal in
dem Systemspeicher vorhanden ist.
20. Verfahren nach Anspruch 18, ferner mit den folgenden Schritten:
(h) mittels der Speicher-Steuereinheit, Dekodieren des zweiten Adress-
Signals zum Erzeugen einer Reihen-Adresse und einer Spalten-
Adresse; und
(i) mittels der Speicher-Steuereinheit, Steuern der Reihen-Adresse des
zweiten Adress-Signals in den Speicher und Ausgeben eines Reihen-
Adress-Strobe-(RAS-)Signals an den Speicher, um eine geeignete
Seite in dem Speicher zu öffnen.
21. Verfahren nach Anspruch 20, ferner mit dem folgenden Schritt:
(j) mittels der Speicher-Steuereinheit, Steuern der Spalten-Adrease des
zweiten Adress-Signals in den Speicher und Ausgeben eines
Spalten-Adress-Strobe-(CAS-)Signals an den Speicher, um ein der
zweiten Adresse entsprechendes zweites Daten-Signal auf den Lokal-Bus
zu steuern.
22. Verfahren nach Anspruch 21, ferner mit den folgenden Schritten:
(k) Deaktivieren des Warte-Signals auf ein Initiator-Bereitschafts-Signal
von dem PCI-Master hin, welches angibt, daß der PCI-Master bereit
zum Empfangen des ersten Daten-Signals ist;
(I) Ausgeben eines Speicher-Bereitschaftssignals aus der Speicher-
Steuereinheit;
(m) Ausgeben eines Target-Bereitschafts-Signals aus der PCI-Brücke an
den PCI-Master und Initiieren eines weiteren Lese-Zyklus.
23. Verfahren nach Anspruch 18, bei dem ein Auffrisch-Zyklus an einem
Speicherbereich des Speichers vorgenommen wird, während das Warte-
Signal ausgegeben wird.
24. System zum Optimieren von Speicherzugriffszeiten in einem Computer,
mit:
einem Systemspeicher (125) zum Speichern von Daten und zum Zugriff
auf die Daten;
einer mit dem Systemspeicher verbundenen Speicher-Steuereinheit (90)
zum Steuern von Zugriffen auf den Speicher;
einer PCI-Brücke (80), die mit der Speicher-Steuereinheit über einen
Lokal-Bus (65) verbunden ist;
einer Peripherie-PCI-Master-Einrichtung (75), die über einen PCI-Bus
(100) mit der PCI-Brücke verbunden ist, wobei die
PCI-Master-Einrichtung in der Lage ist, die Belegung des PCI-Busses zu beanspruchen, um
Daten-Transaktionen zu dem Systemspeicher abzuschließen; und wobei
die PCI-Brücke die Belegung des Lokal-Busses beansprucht, wenn der
PCI-Master die Belegung des PCI-Busses beansprucht; und
einem mit dem Lokal-Bus verbundenen CPU-Kern (60);
dadurch gekennzeichnet,
daß die PCI-Brücke ein Warte-Signal an die Speicher-Steuereinheit
ausgibt und im wesentlichen gleichzeitig die im Speicher befindliche Adresse
der nächsten Daten-Transaktion auf dem Lokal-Bus zu der Speicher-
Steuereinheit steuert, wenn die PCI-Master-Einrichtung den Abschluß der
Datenübertragung verzögert.
25. System nach Anspruch 24, bei dem die Speicher-Steuereinheit eine
geeignete Seite in dem Speicher öffnet, während das Warte-Signal
ausgegeben wird.
26. System nach Anspruch 25, bei dem der Systemspeicher bis zu vier
separate Speicherbereiche von DRAM-Chips aufweist.
27. System nach Anspruch 25, ferner mit einem System-Zeitgeber, um
ungefähr jede 15,625 us eine Auffrischungs-Anforderung zu erzeigen.
28. System nach Anspruch 27, bei dem ungefähr jede 15,625 us ein
Auffrischungs-Zyklus in jedem Speicherbereich erzeugt wird.
29. System nach Anspruch 28, bei dem die Auffrischungs-Zyklen in den vier
Speicherbereichen versetzt erfolgen.
30. System nach Anspruch 24, bei dem die PCI-Brücke das Warte-Signal in
einem Lese-Zyklus ausgibt, falls der PCI-Master kein Bereitschafts-Signal
ausgibt, wenn Daten auf den PCI-Bus gesteuert werden.
31. System nach Anspruch 24, ausgibt, bei dem die PCI-Brücke das Warte-
Signal nach Ausbleiben der Ausgabe eines Bereitschafts-Signals aus dem
PCI-Master ausgibt, nachdem die PCI-Brücke ein Bereitschafis-Signal
ausgibt und während ein Rahmen-Zyklus-Signal aktiviert bleibt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US26148694A | 1994-06-17 | 1994-06-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69518286D1 DE69518286D1 (de) | 2000-09-14 |
DE69518286T2 true DE69518286T2 (de) | 2001-02-22 |
Family
ID=22993516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69518286T Expired - Lifetime DE69518286T2 (de) | 1994-06-17 | 1995-06-07 | Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister |
Country Status (4)
Country | Link |
---|---|
US (1) | US5649161A (de) |
EP (1) | EP0692764B1 (de) |
AT (1) | ATE195381T1 (de) |
DE (1) | DE69518286T2 (de) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897667A (en) * | 1993-11-16 | 1999-04-27 | Intel Corporation | Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner |
US5933613A (en) * | 1995-07-06 | 1999-08-03 | Hitachi, Ltd. | Computer system and inter-bus control circuit |
JP2976850B2 (ja) * | 1995-07-13 | 1999-11-10 | 日本電気株式会社 | データ処理装置 |
US5918072A (en) * | 1995-09-18 | 1999-06-29 | Opti Inc. | System for controlling variable length PCI burst data using a dummy final data phase and adjusting the burst length during transaction |
US5748914A (en) * | 1995-10-19 | 1998-05-05 | Rambus, Inc. | Protocol for communication with dynamic memory |
US6810449B1 (en) | 1995-10-19 | 2004-10-26 | Rambus, Inc. | Protocol for communication with dynamic memory |
US6470405B2 (en) * | 1995-10-19 | 2002-10-22 | Rambus Inc. | Protocol for communication with dynamic memory |
GB2309559B (en) * | 1996-01-27 | 2000-01-26 | Motorola Israel Ltd | Microprocessor and system |
JPH09311812A (ja) * | 1996-05-24 | 1997-12-02 | Oki Electric Ind Co Ltd | マイクロコンピュータ |
US5844856A (en) * | 1996-06-19 | 1998-12-01 | Cirrus Logic, Inc. | Dual port memories and systems and methods using the same |
US5968144A (en) * | 1996-06-27 | 1999-10-19 | Vlsi Technology, Inc. | System for supporting DMA I/O device using PCI bus and PCI-PCI bridge comprising programmable DMA controller for request arbitration and storing data transfer information |
US5848275A (en) * | 1996-07-29 | 1998-12-08 | Silicon Graphics, Inc. | Compiler having automatic common blocks of memory splitting |
US5893917A (en) * | 1996-09-30 | 1999-04-13 | Intel Corporation | Memory controller and method of closing a page of system memory |
US5867645A (en) * | 1996-09-30 | 1999-02-02 | Compaq Computer Corp. | Extended-bus functionality in conjunction with non-extended-bus functionality in the same bus system |
US5854910A (en) * | 1996-10-21 | 1998-12-29 | Advanced Micro Devices, Inc. | Method for accessing control and status registers across a peer-peer bus |
US5898848A (en) * | 1996-10-21 | 1999-04-27 | Advanced Micro Devices, Inc. | Inter-chip bus structure for moving multiple isochronous data streams between integrated circuits |
US5805845A (en) * | 1996-10-21 | 1998-09-08 | Advanced Micro Devices, Inc. | Method for loading memory with program and data information from PC memory across a bridging bus |
US5832242A (en) * | 1996-10-21 | 1998-11-03 | Advanced Micro Devices, Inc. | Inter-chip bus with equal access between masters without arbitration |
US5848252A (en) * | 1996-11-05 | 1998-12-08 | Motorola, Inc. | Peripheral component interconnect gateway controller |
US5897659A (en) * | 1997-03-07 | 1999-04-27 | Advanced Micro Devices, Inc. | Modifying RAS timing based on wait states to accommodate different speed grade DRAMs |
US6327640B1 (en) | 1997-03-07 | 2001-12-04 | Advanced Micro Devices, Inc. | Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller |
US5907857A (en) * | 1997-04-07 | 1999-05-25 | Opti, Inc. | Refresh-ahead and burst refresh preemption technique for managing DRAM in computer system |
US5857082A (en) * | 1997-04-25 | 1999-01-05 | Intel Corporation | Method and apparatus for quickly transferring data from a first bus to a second bus |
US6266379B1 (en) | 1997-06-20 | 2001-07-24 | Massachusetts Institute Of Technology | Digital transmitter with equalization |
US5930482A (en) * | 1997-07-31 | 1999-07-27 | Advanced Micro Devices, Inc. | Transaction checking system for verifying bus bridges in multi-master bus systems |
US5913043A (en) * | 1997-07-31 | 1999-06-15 | Advanced Micro Devices, Inc. | State machine based bus bridge performance and resource usage monitoring in a bus bridge verification system |
US6154801A (en) * | 1997-07-31 | 2000-11-28 | Advanced Micro Devices, Inc. | Verification strategy using external behavior modeling |
US6226708B1 (en) * | 1997-08-18 | 2001-05-01 | Texas Instruments Incorporated | Method and system for efficiently programming non-volatile memory |
US6178477B1 (en) * | 1997-10-09 | 2001-01-23 | Vlsi Technology, Inc. | Method and system for pseudo delayed transactions through a bridge to guarantee access to a shared resource |
WO1999019805A1 (en) * | 1997-10-10 | 1999-04-22 | Rambus Incorporated | Method and apparatus for two step memory write operations |
US6401167B1 (en) * | 1997-10-10 | 2002-06-04 | Rambus Incorporated | High performance cost optimized memory |
US5956288A (en) * | 1997-12-22 | 1999-09-21 | Emc Corporation | Modular memory system with shared memory access |
US6484065B1 (en) * | 1997-12-29 | 2002-11-19 | Kawasaki Microelectronics, Inc. | DRAM enhanced processor |
US6199145B1 (en) * | 1998-02-27 | 2001-03-06 | Intel Corporation | Configurable page closing method and apparatus for multi-port host bridges |
US6784890B1 (en) * | 1998-03-02 | 2004-08-31 | Intel Corporation | Accelerated graphics port expedite cycle throttling control mechanism |
US5991833A (en) * | 1998-03-13 | 1999-11-23 | Compaq Computer Corporation | Computer system with bridge logic that reduces interference to CPU cycles during secondary bus transactions |
US6327253B1 (en) | 1998-04-03 | 2001-12-04 | Avid Technology, Inc. | Method and apparatus for controlling switching of connections among data processing devices |
US6141691A (en) * | 1998-04-03 | 2000-10-31 | Avid Technology, Inc. | Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements |
KR100297840B1 (ko) * | 1998-09-16 | 2001-10-26 | 전주범 | 케이블모뎀의호스트인터페이스방법 |
US6154803A (en) * | 1998-12-18 | 2000-11-28 | Philips Semiconductors, Inc. | Method and arrangement for passing data between a reference chip and an external bus |
FR2790892A1 (fr) * | 1999-03-12 | 2000-09-15 | Canon Kk | Procede et dispositif de controle de la synchronisation entre deux bus de communication serie d'un reseau |
US6286074B1 (en) | 1999-03-24 | 2001-09-04 | International Business Machines Corporation | Method and system for reading prefetched data across a bridge system |
US6449678B1 (en) | 1999-03-24 | 2002-09-10 | International Business Machines Corporation | Method and system for multiple read/write transactions across a bridge system |
US6502157B1 (en) | 1999-03-24 | 2002-12-31 | International Business Machines Corporation | Method and system for perfetching data in a bridge system |
US6425023B1 (en) | 1999-03-24 | 2002-07-23 | International Business Machines Corporation | Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests |
KR20010019127A (ko) * | 1999-08-25 | 2001-03-15 | 정선종 | 엠피씨860과 에스디알에이엠을 이용한 버스트 전송 지원 외부 버스 제어기 및 방법 |
DE69931160T2 (de) * | 1999-10-08 | 2006-09-28 | Hewlett-Packard Development Co., L.P., Houston | Gerät zur Verarbeitung von SONET oder SDH Rahmen auf einem PCI-Bus |
EP1091289B1 (de) | 1999-10-08 | 2004-05-26 | Hewlett-Packard Company, A Delaware Corporation | Anordnung zur verarbeitung von sonet- oder SDH-DS0-Rahmen zur Kanalzurordnung |
DE10019239B4 (de) * | 2000-04-18 | 2008-09-04 | Fujitsu Siemens Computers Gmbh | Datenverarbeitungseinrichtung mit einer Schaltungsanordnung zur Verbindung eines ersten Kommunikationsbusses mit einem zweiten Kommunikationsbus |
US6742064B2 (en) * | 2000-05-15 | 2004-05-25 | Goodrich Corp. | Programmable throttle circuit for each control device of a processing system |
US6675272B2 (en) | 2001-04-24 | 2004-01-06 | Rambus Inc. | Method and apparatus for coordinating memory operations among diversely-located memory components |
US8391039B2 (en) | 2001-04-24 | 2013-03-05 | Rambus Inc. | Memory module with termination component |
KR100396894B1 (ko) * | 2001-06-27 | 2003-09-02 | 삼성전자주식회사 | 버스 효율을 향상시키는 메모리 시스템 및 반도체 메모리장치와 상기 반도체 메모리 장치의 리프레쉬 방법 |
EP1316891B1 (de) * | 2001-12-03 | 2007-10-10 | Infineon Technologies AG | Datenübertragungseinrichtung |
DE10361059A1 (de) * | 2003-12-22 | 2005-07-28 | Micronas Gmbh | Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs |
US7424562B2 (en) * | 2004-03-01 | 2008-09-09 | Cisco Technology, Inc. | Intelligent PCI bridging consisting of prefetching data based upon descriptor data |
US7301831B2 (en) | 2004-09-15 | 2007-11-27 | Rambus Inc. | Memory systems with variable delays for write data signals |
US20090164689A1 (en) * | 2007-12-21 | 2009-06-25 | Unisys Corporation | Early response indication for data retrieval in a multi-processor computing system |
US20090327535A1 (en) * | 2008-06-30 | 2009-12-31 | Liu Tz-Yi | Adjustable read latency for memory device in page-mode access |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4462073A (en) * | 1978-11-08 | 1984-07-24 | Data General Corporation | Apparatus for fetching and decoding instructions |
US4918645A (en) * | 1987-09-17 | 1990-04-17 | Wang Laboratories, Inc. | Computer bus having page mode memory access |
US5335336A (en) * | 1988-03-28 | 1994-08-02 | Hitachi, Ltd. | Memory device having refresh mode returning previous page address for resumed page mode |
GB8808353D0 (en) * | 1988-04-09 | 1988-05-11 | Int Computers Ltd | Data processing system |
US4937791A (en) * | 1988-06-02 | 1990-06-26 | The California Institute Of Technology | High performance dynamic ram interface |
GB2234610B (en) * | 1989-08-02 | 1993-08-18 | Research Machines Ltd | Address mapping arrangement |
US5353423A (en) * | 1991-06-21 | 1994-10-04 | Compaq Computer Corporation | Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses |
US5379384A (en) * | 1992-06-05 | 1995-01-03 | Intel Corporation | Configuration data loopback in a bus bridge circuit |
US5392407A (en) * | 1992-12-24 | 1995-02-21 | Ncr Corporation | Multi-port processor with peripheral component interconnect port and rambus port |
US5396602A (en) * | 1993-05-28 | 1995-03-07 | International Business Machines Corp. | Arbitration logic for multiple bus computer system |
-
1995
- 1995-06-07 EP EP95303913A patent/EP0692764B1/de not_active Expired - Lifetime
- 1995-06-07 AT AT95303913T patent/ATE195381T1/de not_active IP Right Cessation
- 1995-06-07 DE DE69518286T patent/DE69518286T2/de not_active Expired - Lifetime
-
1996
- 1996-09-26 US US08/721,211 patent/US5649161A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0692764B1 (de) | 2000-08-09 |
DE69518286D1 (de) | 2000-09-14 |
EP0692764A1 (de) | 1996-01-17 |
ATE195381T1 (de) | 2000-08-15 |
US5649161A (en) | 1997-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69518286T2 (de) | Speicherübertragungsgeschwindigkeitsbegrenzung für PCI-Meister | |
DE69028066T2 (de) | Kombinierte synchrone und asynchrone Speichersteuerung | |
DE69124905T2 (de) | Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem | |
DE69322310T2 (de) | Busarchitektur für integrierten Daten/- und Videospeicher | |
DE19982871B4 (de) | Speichersystem mit jeweils einen Speichermodul-Controller enthaltenden Speichermodulen | |
DE69707688T2 (de) | Speichersteuerungseinheit zur optimalen ausführung von speichersteuerungsabfolgen zwischen verschiedenen speicherbanken | |
DE3887324T2 (de) | Speicheranordnung. | |
DE68910391T2 (de) | Verfahren zum Speicherdatenzugriff. | |
DE69904508T2 (de) | Auf warteschlangen basierte speichersteuerung | |
DE19681745B4 (de) | Verfahren zum Übergeben der Kontrolle des Zugriffs auf einen Hauptspeicher von einer Speichersteuereinrichtung auf eine weitere Steuereinrichtung und ein solches Verfahren ausführendes Computersystem | |
DE19882418B4 (de) | System einer quellensynchronen Schnittstelle zwischen Master- und Slave-Einrichtungen und zugehöriges Verfahren | |
DE69324926T2 (de) | Doppelte pufferungspeicherung zwischen dem speicherbus und dem expansionsbus eines rechnersystems | |
DE69906156T2 (de) | Mikroprozessorvorrichtung mit programmierbaren wartezuständen | |
DE19681716B4 (de) | Computersystem und Verfahren für ein Stromversorgungsmanagement | |
DE69032655T2 (de) | Seitenspeicher-Steuerschaltung | |
DE69523395T2 (de) | Datenprozessor mit gesteuertem Stoss-Speicherzugriff und Vorrichtung dafür | |
DE3889366T2 (de) | Interface für ein Rechnersystem mit reduziertem Befehlssatz. | |
DE3587116T2 (de) | Datenprozessor. | |
DE19983737B3 (de) | System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision | |
DE69229081T2 (de) | Mikroprozessor mit externem Speicher | |
DE69133500T2 (de) | DRAM Halbleitervorrichtung | |
DE69203842T2 (de) | Speichersteuerungsvorrichtung mit Snoop-Mechanismus. | |
DE19839570B4 (de) | Synchrones Halbleiterspeicherbauteil mit programmierbarer Latenzzeit | |
DE69316955T2 (de) | Rechenanlage mit synchronem, dynamischem Speicher | |
DE68923944T2 (de) | RAM mit doppelten Ein/Ausgängen. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: GLOBALFOUNDRIES INC. MAPLES CORPORATE SERVICES, KY |