Warning: fopen(111data/log202002280539.log): failed to open stream: No space left on device in /home/pde321/public_html/header.php on line 107

Warning: flock() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 108

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/pde321/public_html/header.php on line 113
VERFAHREN UND GERÄT ZUR KONTROLLE VON DATENTRANSFER ZWISCHEN SYNCHRONEM DRAM-TYP-SPEICHER UND EINEM SYSTEMBUS - Dokument DE69732377T2
 
PatentDe  


Dokumentenidentifikation DE69732377T2 22.12.2005
EP-Veröffentlichungsnummer 0001012687
Titel VERFAHREN UND GERÄT ZUR KONTROLLE VON DATENTRANSFER ZWISCHEN SYNCHRONEM DRAM-TYP-SPEICHER UND EINEM SYSTEMBUS
Anmelder Intel Corporation, Santa Clara, Calif., US
Erfinder DODD, M., James, Citrus Heights, US;
MALINOWSKI, Richard, El Dorado Hills, US
Vertreter Patentanwälte Hauck, Graalfs, Wehnert, Döring, Siemons, Schildberg, 80339 München
DE-Aktenzeichen 69732377
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 20.11.1997
EP-Aktenzeichen 979496056
WO-Anmeldetag 20.11.1997
PCT-Aktenzeichen PCT/US97/21589
WO-Veröffentlichungsnummer 0098029794
WO-Veröffentlichungsdatum 09.07.1998
EP-Offenlegungsdatum 28.06.2000
EP date of grant 26.01.2005
Veröffentlichungstag im Patentblatt 22.12.2005
IPC-Hauptklasse G06F 13/16

Beschreibung[de]
Gebiet der Erfindung

Die vorliegende Erfindung betrifft allgemein Datenübertragungen in einem Computersystem, und im Besonderen eine Speichersteuerungskonfiguration zur Unterstützung eines Speichers vom Typ Synchronous Dynamic Access Memory (SyncDRAM) bzw. synchroner dynamischer Direktzugriffsspeicher.

Beschreibung des Stands der Technik

Bei herkömmlichen Konfigurationen von Zentraleinheiten (CPU als englische Abkürzung von Central Processing Unit) hat die Geschwindigkeit, mit der Daten in der CPU übertragen werden, mit der Entwicklung der Architekturen mit reduziertem Befehlsvorrat (RISC als englische Abkürzung von Reduced Instruction Set Computers) schnell zugenommen, wobei dies durch die umfassende Nutzung der Pipeline-Verarbeitung sogar noch verstärkt wurde. Im Gegensatz zu der CPU-Entwicklung konzentrierte sich jedoch die Entwicklung verschiedener Speicherarten auf die Steigerung der Mediendichte, um die Kosten pro Bit des Speicherplatzes im Gegensatz zu der Speichergeschwindigkeit. Diese Disparität hat ein Ungleichgewicht in Bezug auf die erforderliche Speicherbandbreite für kleine kostengünstige Systeme erzeugt. Zur Überwindung dieses Problems wurde eine externe Verschachtelung bzw. Verschränkung zur Verbesserung der Speicherbandbreite eingesetzt, die sich jedoch als erfolglos erwies. Die externe Verschachtelung hat sich als weniger zu verwendende Option erwiesen, und zwar aufgrund der Verwendung asynchroner Schnittstellen, hoher Zeitsteuerungsfreiräume, höherer Datenraten und fehlender Register für Steuersignale, Adressen und Ein-/Ausgaben. Die Kosten für die externe Verschachtelung sind aufgrund der für eine bestimmte Bandbreite erforderlichen zusätzlichen Verbindungslogik und der Gesamtspeicherdichte ebenfalls hoch. Dieses Ungleichgewicht hat Speichereinheiten des Typs SDRAM bzw. SyncDRAM erforderlich gemacht.

SyncDRAMs bieten eine umfassende Speicherdichte in Verbindung mit einer kostengünstigen Speicherarchitektur mit hoher Bandbreite. Ferner können SyncDRAMs verschiedene Anwendungen bzw. Applikationen unterstützen, wie etwa Hauptspeicher, Peripheriegeräte, Grafiken und Video. SyncDRAMs sind für einen umfassenden Bereich von Anwendungen mit programmierbaren Merkmalen entwickelt, wie etwa Latenz, Burst-Länge und Burst-Typ. Sie können Einzelbank- oder Dualbank-Hochfrequenz- und leistungsarme Operationen unterstützen.

Ein wichtiges Merkmal von SyncDRAMs ist der direkte Zugriff auf mehrere Datenblöcke, die als "Bündel" bzw. "Bursts" bezeichnet werden. Die Burst-Länge bezeichnet die Anzahl der Wörter, die in einem entsprechenden Lese- oder Schreibzyklus gelesen bzw. geschrieben werden. Nach Vollendung eines Lese-Bursts weist der Ausgabebus eine hohe Impedanz auf. Die Burst-Länge auf 1, 2, 4 oder 8 Wörter oder eine ganze Seite programmierbar. Die Fähigkeit der CPU, auf diese Informationsbündel zuzugreifen, gibt der CPU Zugriff auf eine höhere Bandbreit des Speichers.

Der SyncDRAM arbeitet auf ähnliche Art und Weise wie dessen Vorgänger DRAM, ohne weiter entwickelte Merkmale. Im Gegensatz zu herkömmlichen DRAMs ist der SyncDRAM in der Lage, Datenbündel in einer Reihe von 0 bis 8 Wörtern in einem Zyklus vorzusehen, wobei er im Seitenmodus auch ein Bündel einer ganzen Seite an die Zieleinheit übertragen kann. In einer typischen Sequenz sendet ein Mikroprozessor in dem Computersystem eine Lese- oder Schreibanforderung über den Systembus an die Speichersteuerung. Die Speichersteuerung erzeugt ein Signal, das über den DRAM-Bus zur Ausführung an den SyncDRAM übermittelt wird. Nachdem der Befehl von dem SyncDRAM empfangen worden ist, fährt der SyncDRAM mit einer vorprogrammierten Sequenz zur Übertragung der Daten fort.

Der SyncDRAM muss in der Einschaltsequenz initialisiert werden, ähnlich herkömmlicher DRAMs, bevor Daten übertragen werden können. Während der Initialisierung muss die inter Takt- und Datenmaske des SyncDRAM aktiviert werden, um es zu vermeiden, dass Daten während der Sequenz in den SyncDRAM geschrieben werden. Es existiert für gewöhnlich eine Verzögerung von 100 ms, die alle durch den SyncDRAM verarbeiteten Befehle nach Beginn der Initiierungssequenz etwaige Befehle begibt. Wenn ein Befehl aktiviert wird, muss eine Chipfreigabe behauptet werden, so dass Befehle zur Ausführung durch den SyncDRAM anerkannt werden. In dem SyncDRAM entsprechen die ausgeführten Befehle der ansteigenden Flanke des internen Takts. Wenn ein Befehl an den SyncDRAM übermittelt wird ermöglicht es ein Taktfreigabesignal (CE), dass der SyncDRAM den Befehl empfängt und die Gültigkeit des nächsten Taktzyklus bestimmt. Wenn die Taktfreigabe hoch ist, ist die Anstiegsflanke des nächsten Takts gültig, ansonsten ist sie ungültig. Wenn die Taktanstiegsflanke ungültig ist, wird der interne Takt nicht aktiviert und Operationen in dem SyncDRAM ausgesetzt. Beim herkömmlichen Einsatz muss jedes Mal, wenn ein Befehl zur Datenübertragung an dem SyncDRAM behauptet wird, muss der Chip unter Verwendung der Chipauswahl und der Taktfreigabe in dem gleichen Takt initiiert werden, um eine Erkennung des Befehls durch den SyncDRAM zu ermöglichen.

Sobald der Chip initialisiert wird, mit gleichzeitiger Behauptung der Chipfreigabe- und Taktfreigabebefehle, kann die Datenübertragung beginnen. Wenn die Adresse gültig ist, kommt es zu einem Seitentreffer und der SyncDRAM steht danach zur Datenübertragung bereit. Die Seite wird danach für spezifische zu übertragende Daten indiziert. Wenn eine Adressanforderung ungültig ist, kommt es jedoch zu einem Seitenfehler und eine neue Seite muss geöffnet werden, um die angeforderten Daten entsprechend zu lokalisieren.

Gemäß der voreingestellten Burst-Rate wird eine Reihe von Wörtern danach als Reaktion auf eine Schreibanforderung oder von der SyncDRAM-Einheit als Reaktion auf eine Leseanforderung zu der SyncDRAM-Einheit übertragen. Wenn die Daten nicht für eine Übertragung bereit stehen, entweder in einer Lese- oder einer Schreibanforderung, überträgt der SyncDRAM weiter Daten, und zwar unabhängig von der Bereitschaft der Daten. Bei einer Leseanforderung werden Daten dauerhaft nach der Initiierung aus einer ersten Burst-Startadresse ausgelesen. Nach der ersten Übertragung des Worts von der Burst-Startadresse inkrementiert eine interne Adressinkrementiereinrichtung in dem SyncDRAM den Lesezähler zur Übertragung aufeinander folgender Wörter nach der Burst-Startadresse bis zu dem Ende der durch den DRAM voreingestellten Burst-Länge, ganz gleich, ob die Datenpfad-Steuereinrichtung bereit ist, Daten zu akzeptieren oder nicht.

Nachdem ein erstes Wort während einer Schreibsequenz in ähnlicher Weise an die Burst-Startadresse übertragen worden ist, inkrementiert eine interne Inkrementiereinrichtung die interne Adresse für den Empfang aufeinander folgender Wörter nach der Burst-Startadresse in folgenden Adressen, unabhängig davon, ob die Daten an der sendenden Vorrichtung bereit stehen oder nicht. Die Datenpfad-Steuereinrichtung bestimmt, ob die Daten übertragen werden.

Im Betrieb kann der SyncDRAM durch einen Befehl von einer Speichersteuereinheit als Reaktion auf eine Datenübertragungsanforderung von der CPU freigegeben werden. Der SyncDRAM reagiert mit einem Initiierungsprozess, der eine interne Speicherung einer Adresse aufweist, von der Daten gelesen oder an die Daten geschrieben werden. Jedes Mal, wenn ein Datenbündel bzw. ein Daten-Burst angefordert wird, muss der SyncDRAM die Initiierungssequenz durchlaufen, um auf die Adresse zuzugreifen, von der Daten gelesen oder an die Daten geschrieben werden. Die erforderliche Zeit zur Durchführung des Initiierungs- bzw. Startprozesses wirkt sich negativ auf die erforderliche Gesamtspeicherabrufzeit für einen Zugriff auf die Daten aus.

Demgemäß wäre es durch die Computerindustrie von großem Nutzen, die bereits heute effizienten SyncDRAM-Speicher noch schneller zu machen, indem die Zeit verringert wird, die erforderlich ist, um auf die SyncDRAMs zuzugreifen, indem die Zeit verringert wird, die benötigt wird, um den Datenabrufzyklus zu initiieren. Für den Fall, dass Daten nicht für eine Übertragung bereit stehen, erfordern herkömmliche Implementierungen eine zweite Anforderung für die Übermittlung an oder zum Lesen von Daten aus dem SyncDRAM, wenn die Daten bereit sind. Dies erfordert eine folgende Lese- oder Schreibanforderung, die eine Initialisierung des SyncDRAMs und das erneute Öffnen einer Seite erfordern.

Im Besonderen der Betrieb des Lesens aus dem SyncDRAM erfordert nicht nur das Initiieren des SyncDRAM, sondern auch das Öffnen einer bestimmten Seite sowie die Lokalisierung auf einer Seite, auf der sich spezielle Daten befinden. Die Eliminierung eines oder mehrerer Schritte des Leseprozesses würde den Lesebetrieb erheblich beschleunigen, so dass Daten schneller für das Computersystem zur Verfügung stehen. Wie dies ersichtlich ist, erreicht dies die vorliegende Erfindung in einem Ausführungsbeispiel auf eine einfache und elegante Art und Weise.

Ein in dem U.S. Patent US-A-5.587.961 offenbarter SyncDRAM bildet den vorkennzeichnenden Teil der gegenständlichen Ansprüche 3 und 4.

ZUSAMMENFASSUNG DER ERFINDUNG

Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.

Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung eine Steuereinheit gemäß dem gegenständlichen Anspruch 3.

Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung ein System gemäß dem gegenständlichen Anspruch 4.

Die vorliegende Erfindung sieht in einem Ausführungsbeispiel eine Schnittstelle und ein Verfahren für einen synchronen DRAM-Speicher (SyncDRAM) mit verbesserter Leistungsfähigkeit vor. In einem Ausführungsbeispiel wird der Lesebetrieb in einem SyncDRAM erheblich dadurch beschleunigt, dass auf den Schritt des Öffnens einer neuen Datenseite in einem SyncDRAM unter Verwendung eines spekulativen Leseverfahrens verzichtet wird. Dieses Ausführungsbeispiel ermöglicht das Öffnen einer Informationsseite in dem SyncDRAM mit einem Befehlsgenerator als Reaktion auf eine Datenanforderung. Ferner ist in der Vorrichtung eine spekulative Leselogik vorgesehen, um das Lesen von der Seite mit einer ungültigen Adresse fortzusetzen, bis eine zweite Leseanforderung erfolgt. Für den Fall, dass eine folgende Leseanforderung auftritt, die Daten anfordert, die auf der gleichen Seite wie bei der vorherigen Anforderung angeordnet sind, können die Daten indiziert und aus einer Position auf der Seite gelesen werden, ohne dass zuerst SCS# und SCAS# behauptet bzw. aktiviert werden. Dabei wird häufig der Schritt des Öffnens einer Seite aus dem Leseprozess ausgelassen, und im Lauf der Zeit kann dies Lesevorgänge des SyncDRAM insgesamt in einem Computersystem erheblich beschleunigen.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

In den Zeichnungen zeigen:

1 ein allgemeines Blockdiagramm eines Computersystems, das eine dem Stand der Technik entsprechende Speichersteuerung einsetzt;

2 ein allgemeines Blockdiagramm eines Computersystems, das eine Speichersteuerung und eine SyncDRAM-Schnittstelle gemäß einem Ausführungsbeispiel der vorliegenden Erfindung verwendet;

3 ein allgemeines Blockdiagramm einer Hauptspeicher-Steuereinheit und einer SyncDRAM-Schnittstelle gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;

4 ein Flussdiagramm zur Beschreibung der funktionalen Aspekte eines Ausführungsbeispiels der vorliegenden Erfindung; und

5 ein Zeitsteuerungsdiagramm, das die bei Leseanforderungen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung verwendeten Befehle.

GENAUE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS

Die Abbildungen der 2 bis 5 offenbaren verschiedene Ausführungsbeispiele der vorliegenden Erfindung zu Veranschaulichungszwecken. Der Fachmann wird erkennen, dass alternative Ausführungsbeispiele möglich sind, ohne dabei von den Grundsätzen der vorliegenden Erfindung abzuweichen, die durch die hierein beschriebenen und beanspruchten Strukturen und Verfahren veranschaulicht sind.

Vorgesehen sind gemäß der vorliegenden Erfindung ein Verfahren und eine Vorrichtung zur Steuerung der Datenübertragung zwischen einem Speicher vom Typ eines synchronen DRAM (SyncDRAM) und einem Systembus. Wie dies aus der Abbildung aus 1 am besten ersichtlich ist, kann ein herkömmliches Computersystem einen oder mehrere Mikroprozessoren 10 aufweisen, die mit dem Systembus 20 kommunizieren. Ein herkömmliches Computersystem umfasst ferner verschiedene Speicherbänke, die einen SyncDRAM-Speicher aufweisen können. Die Mikroprozessoren kommunizieren über die Speichersteuerung 14 mit dem SyncDRAM-Speicher 12. Die Speichersteuerung weist einen Datenpfad 16 auf, über den Daten von einem der Mikroprozessoren zu dem SyncDRAM 12 übertragen werden, und mit einer Datenpfad-Steuereinrichtung 18, die eine Schnittstelle zwischen dem Datenpfad 16, dem Systembus 20 und einem DRAM-Bus 22 vorsieht, der letztendlich mit dem SyncDRAM-Speicher 12 kommuniziert.

In einem in der Abbildung aus 2 veranschaulichten Ausführungsbeispiel er vorliegenden Erfindung arbeitet die hoch entwickelte Speichersteuerung 24 ähnlich wie herkömmliche Speichersteuerungen, mit einer vorgesehenen SyncDRAM-Schnittstelle 26, die spezielle Steuerungen während Lesezyklen zwischen dem Systembus 20 und dem SyncDRAM 12 vorsieht. Die SyncDRAM-Schnittstelle 26 kommuniziert gemäß der Abbildung mit der Datenpfad-Steuereinrichtung 18 und dem DRAM-Bus 22, wobei der DRAM-Bus 22 mit dem SyncDRAM 12 kommuniziert.

Nähere Einzelheiten der SyncDRAM-Schnittstelle 26 sind in der Abbildung aus 3 dargestellt. Die Schnittstelle 26 weist einen Befehlsgenerator 28 auf, der mit der Speichersteuereinheit 18 und dem DRAM-Bus 22 kommuniziert, eine Adressinkrementierungslogik 30, die mit der Speichersteuereinheit 18 kommuniziert, wobei der Befehlsgenerator 28, der DRAM-Bus 22 und ein Maskengenerator 32 mit der Datenpfad-Steuereinrichtung 18, der Adressinkrementierungslogik 30, dem Befehlsgenerator und dem DRAM-Bus 22 kommunizieren.

Der Befehlsgenerator 28 ist so konfiguriert, dass er Befehle zur Steuerung des SyncDRAM 12 aus 12 erzeugt, einschließlich der Befehle Zeilenadress-Strobe (RAS#), Spaltenadress-Strobe (CAS#) und Schreibfreigabe (WE#). Eine Chipfreigabe (CS#) in dem SyncDRAM wird bei herkömmlichen SyncDRAM-Konfigurationen intern gesteuert und bei jedem Datenzugriff auf den SyncDRAM aktiviert. In einem Ausführungsbeispiel der vorliegenden Erfindung wird CS# jedoch während Lesesequenzen extern in einem aktiv niedrigen Zustand gehalten. Dies ermöglicht das spekulative Lesen von Daten, wie dies nachstehend im Text näher beschrieben wird. Dabei handelt es sich um die Standardbefehle, die von SyncDRAMs in ihrer herkömmlichen Implementierung erkannt bzw. anerkannt werden. Diese Befehle sind denen von herkömmlichen DRAMs ähnlich, weisen jedoch zusätzliche Funktionen auf. In einem System, bei dem DRAMs und SyncDRAMs in einem einzelnen Computersystem in verschiedenen Speicherarten implementiert sind, können diese Befehle entsprechend durch SRAS#, SCAS#, SWE# und SCS# unterschieden werden, um die Befehle speziell einem SyncDRAM in dem System zuzuordnen.

Die SyncDRAM-Schnittstelle 26 weist ferner eine Adressinkrementierungslogik 30 auf, welche die in dem SyncDRAM während einem Burst inkrementierte interne Adresse verwaltet, indem die von der Hauptspeichersteuerung empfangene Adresse gespeichert wird. Diese Funktion wird nachstehend im Text näher beschrieben.

In der Zusammenfassung als Blockdiagramm aus 3 sind zwar die separaten Mechanismen der SyncDRAM-Schnittstelle dargestellt, wobei diese separaten Mechanismen aber auch unter Verwendung einer Logikschaltkreisanordnung in Form von Hardware sowie von Software implementiert werden können, und zwar bei einer Verwendung in Verbindung mit einem Mikroprozessor oder einer Steuereinheit. Vielen Fachleuten auf dem Gebiet der Computerentwicklung stehen zahlreiche Verfahren zur Implementierung von Logikschaltungen für einen Schnittstellenbetrieb mit einem SyncDRAM zur Verfügung. Die vorliegende Erfindung ist jedoch nicht auf eine bestimmte Konfiguration gemäß dem Umfang der nachstehenden Ansprüche beschränkt.

Die Einzelheiten des vorstehend beschriebenen Ausführungsbeispiels der vorliegenden Erfindung werden am besten durch Funktion gemäß der Darstellung in dem Flussdiagramm aus 4 beschrieben. Dieses Diagramm wird in Bezug auf die zwei Takt- bzw. Zeitsteuerungsdiagramme aus 5 beschrieben, welche bei einer Leseanforderung die in einem SyncDRAM ausgeführte Befehlsfolge im Verhältnis zurzeit zeigen.

In erstem Bezug auf die Abbildung aus 4 bestimmt die Speichersteuerung in der ersten Phase 35, ob der Zyklus bereit ist. In der zweiten Phase 36 wird bestimmt, ob ein SyncDRAM-Burst angefordert wird. Damit die Schnittstelle ansprechen kann, muss eine primäre Anforderung zuerst über das System übermittelt werden, um die Datenübertragung aus dem SyncDRAM-Speicher einzuleiten, wobei eine primäre Anforderung gelesen wird, oder wobei eine von einem Mikroprozessor in de System stammende Schreibanforderung über den Systembus und die Hauptspeichersteuereinheit übermittelt wird, um den SyncDRAM zu initiieren. Es ist wichtig darauf hinzuweisen, dass ein Burst auch nur ein Datenwort aufweisen kann. Wenn eine Bereitschaft gegeben ist, beginnt der Datenabrufprozess mit einer Chipfreigabe 37 und fährt daraufhin mit einer ersten Datenleseanforderung 38 aus dem Computersystem in die SyncDRAM-Schnittstelle fort. In dem nächsten Schritt 39 wird eine neue Seite geöffnet. In diesem Schritt werden die Chipauswahl (SCS#) und der Zeilenadress-Strobe (SRAS#) behauptet bzw. aktiviert und niedrig gehalten, und wobei der Spaltenadress-Strobe (SCAS#) deaktiviert und hoch gehalten wird. Dieser Schritt nimmt an, dass die Seitenadresse in dem SyncDRAM verfügbar und gültig ist. In dem nächsten Schritt 46 wird die nächste offene Seite, in der sich Daten befinden, indiziert. In diesem Schritt werden SCS# und SCAS# des Busses aktiviert und niedrig gehalten, während die Indexadresse an der Adresse MA zur Verfügung steht.

In dem nächsten Schritt 48 kann das System die verfügbaren Daten abtasten, wenn diese an dem Datenbus MD zur Verfügung stehen. Sobald die Daten durch das System abgetastet worden sind, hält der nächste Schritt 50 die Seite offen, während auf die nächste Adresse gewartet wird, indem SCS# und SCAS# niedrig aktiviert werden. Dies unterscheidet sich von herkömmlichen Anwendungen von SyncDRAMs, die für gewöhnlich SCS# und SCAS# pulsen, wenn eine Seite geöffnet wird. Dieses herkömmliche Verfahren setzt es voraus, dass SCS# und SCAS# nur dann behauptet bzw. aktiviert werden, wenn ein neuer Lesevorgang für die offene Seite initiiert wird. Die nächste Datenadresse wird in dem Schritt 52 empfangen.

Als nächstes erfolgt die Abfrage 54 zur Bestimmung, ob sich die neue Adresse für die neue Datenanforderung auf der gleichen Seite wie die vorherige Anforderung befindet. Wenn die nächste Adresse auf der gleichen offenen Seite wie die vorherige Anforderung erfolgt, indiziert die SyncDRAM-Schnittstelle gemäß der vorliegenden Erfindung einfach die gleiche Seite, indem SCS# und SCAS# niedrig gehalten werden, wenn die nächste Adresse an dem Adressbus MA zur Verfügung steht, indem zu dem Schritt 46 zurückgekehrt wird. Wenn sich die nächste Adresse hingegen nicht auf der gleichen Seite wie die vorherige Anforderung befindet, springt das System zu dem Schritt 39 zurück, um eine neue Seite zu öffnen, indem SCAS# deaktiviert und SCS# aktiviert und SRAS# niedrig gehalten wird. Die neue Seite öffnet sich, wenn die Seitenadresse an dem Adressbus MA zur Verfügung steht. Sobald der Zyklus endet, kehrt die Sequenz für einen neuen Zyklus zu dem Schritt 35 zurück.

In folgendem Bezug auf die Abbildung aus 5 ist ein Kontrast zwischen der Routing-Befehlsfolge gemäß dem Stand der Technik und der neuen Sequenz gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ersichtlich. Zum Zwecke der deutlichen Veranschaulichung wird im Sinne der vorliegenden Beschreibung angenommen, dass die Befehle aktiv niedrig geltend gemacht werden, was in dem Zeitsteuerungsdiagramm grafisch dargestellt ist, wobei sich die aktive niedrige Stufe auf einer Befehlslinie unterhalb der inaktiven Stufe auf der gleichen Zeitlinie befindet. Ferner zeigen die Takte die Anstiegsflanke jedes Signals an, das mit einem Speichertakt synchron ist. Schließlich setzen die Zeitsteuerungsdiagramme aus 5 voraus, dass das Taktfreigabesignal (CKE) während der Lesesequenz konstant behauptet wird.

Zuerst ist in Bezug auf die dem Stand der Technik entsprechende Sequenz 70 ersichtlich, dass es sich bei der ersten an der Taktnummer 1 auftretenden Stufe um eine Seitenöffnungsstufe handelt, wobei das Signal SCS# 72 und das Signal SRAS# 74 gemeinsam aktiv behauptet werden, wenn eine Adresse an dem Adressbus MA 76 zur Verfügung steht. Daten werden auf der offenen Seite des SyncDRAM indiziert, indem danach das Signal SCS# 72 gemeinsam mit dem Signal SCAS# 78 in dem Taktzyklus 4 behauptet wird. Wenn der Spaltenadress-Strobe jetzt auf die Daten zeigt, stehen die Daten an dem Takt 6 für das System zur Verfügung, um die Daten D0' abzutasten und zu lesen.

Wenn eine zweite Anforderung erfolgt und sich die Daten auf der gleichen Seite befinden, werden das Signal SCS# 72 und das Signal SCAS# 78 an der Taktnummer 8 erneut aktiv gepulst, was den zweiten Datenblock D1' an der Taktnummer 10 ergibt. Ebenso wie bei beiden Datenanforderungen stehen die Daten zur Abtastung durch das System zwei Taktzyklen nach der Behauptung des Signals SCS# 72 und des Signals SCAS# 78 zur Verfügung. Für die zweite Anforderung muss die Adresse für die Daten erneut an dem Adressbus MA 76 in Takt 8 zur Verfügung stehen, damit eine Seite in dem Takt 8 indiziert werden kann und damit Daten zwei Takte später an dem Datenbus MD 80 zur Verfügung stehen.

In folgendem Bezug auf die Sequenz 90 ist ersichtlich, dass die erste Seite auf die gleiche Art und Weise wie gemäß dem Stand der Technik offen ist. Wie gemäß dem Stand der Technik behaupten die neuen Informationen gemäß der vorliegenden Erfindung SCS# 92 in Verbindung mit SRAS# 94, während die Seitenadresse an dem Adressbus MA 96 zur Verfügung steht. Die Seite wird danach durch Behauptung des Signals SCS# 92 in Verbindung mit dem Signal SCAS# 96 indiziert, wenn die Indexadresse A0 in dem Taktzyklus 4 an dem Adressbus MA 98 zur Verfügung steht. Die Daten D0 stehen danach zwei Takte später an dem Datenbus 100 zur Abtastung durch das System zur Verfügung.

In dieser neuen Sequenz gemäß der vorliegenden Erfindung werden SCS# 92 und SCAS# 96 aktiv gehalten, indem sie so lange niedrig behauptet werden, bis eine neue Adresse an dem Adressbus MA 98 zur Verfügung steht. Die nächste Adresse A1, die in Takt 7 an dem Adressbus MA 98 zur Verfügung steht, sieht danach zwei Takte später bei Taktnummer 9 Daten an dem Datenbus MD 100 vor. Wie dies im Vergleich zu der dem Stand der Technik entsprechenden Sequenz ersichtlich ist, ist D1 jetzt einen Takt früher verfügbar als D1' in der dem Stand der Technik entsprechenden Sequenz 70. An dieser Stelle können Einsparungen erkannt werden, wenn sich die Indexadresse auf der gleichen Seite wie die vorher indizierte Adresse befindet.

Statistisch kann dies in bis zu 50% der Lesesequenzen in einem typischen System auftreten, was bei Speicherlesevorgängen zu einem hohen Maß an zeitlichen Einsparungen führt.

Wenn der spekulative Lesevorgang versucht wird und sich die nächste Adressanforderung auf Daten auf einer anderen Seite bezieht, muss ein Seitenfehler auftreten und eine neue Seite geöffnet werden. In diesem Fall wird das Signal SCS# 92 aktiv gehalten, und das Signal SRAS# 94 wird für den Zugriff auf eine neue Seite aktiv gepulst. Die nächste Adresse kann danach bei einem folgenden Takt indiziert werden, was zu Daten führt, die drei Takte nach dem vorherigen Datenlesevorgang auftreten. Dies ist genau das, was bei einer dem Stand der Technik entsprechenden Sequenz 70 im Falle eines Seitenfehlers auftreten würde.

Somit wird ein Takt eingespart, wenn ein Seitentreffer auftritt, bei dem zwei aufeinander folgende Adressen auf der gleichen Seite auftreten. Wenn hingegen ein Seitenfehler auftritt, bei dem sich zwei aufeinander folgende Adressen auf verschiedenen Seiten befinden, tritt kein Zeitverlust bei dem Abruf von Daten im Vergleich zu der dem Stand der Technik entsprechenden Sequenz 70 auf. Wenn mit anderen Worten ausgedrückt wird für denn Fall, dass aufeinander folgende Datenanforderungen für Daten auftreten, die sich auf einer gemeinsamen Seite in dem SyncDRAM befinden, ein Takt eingespart. Wenn im Gegensatz dazu aufeinander folgende Datenanforderungen für Daten auftreten, die sich auf verschiedenen Seiten befinden, ist nur ein Taktzyklus zum Abrufen der Daten erforderlich, wobei ein Zugriff auf die Daten in dem gleichen Zeitraum wie bei der dem Stand der Technik entsprechenden Sequenz 70 vorgesehen wird.

Aus der vorstehenden Beschreibung wird deutlich, dass die hierin offenbarte vorliegende Erfindung ein neuartiges und vorteilhaftes Verfahren sowie eine entsprechende Vorrichtung zur Steuerung der Datenübertragung zwischen einem Speicher vom Typ eines synchronen DRAM und einem Systembus vorsieht. Für den Fachmann auf dem Gebiet ist ersichtlich, dass die vorliegende Erfindung auch in anderen spezifischen Ausführungen ausgeführt werden kann, ohne dabei von den wesentlichen Merkmalen der Erfindung abzuweichen, und so dass das beschriebene Ausführungsbeispiel den Umfang der vorliegenden Erfindung nicht einschränkt. Die folgenden Ansprüche zeigen den Umfang der Erfindung an, und wobei alle Abänderungen im Sinne der Bedeutung und der Auslegung der Ansprüche deren Umfang entsprechen.


Anspruch[de]
  1. Verfahren zum Lesen von einem synchronen dynamischen Direktzugriffsspeicher (SDRAM), wobei das Verfahren folgendes umfasst:

    Öffnen einer Datenseite des SDRAM als Reaktion auf eine erste Leseanforderung;

    Lesen von Daten aus der geöffneten Seite als Reaktion auf die erste Leseanforderung;

    Offen halten der Datenseite vor der Entscheidung, ob eine zweite Leseanforderung Daten auf der geöffneten Seite oder auf einer anderen Seite betrifft;

    Entscheiden, ob die zweite Leseanforderung Daten auf der geöffneten Seite oder auf einer anderen Seite betrifft;

    Öffnen der anderen Seite und Lesen von Daten von der anderen Seite als Reaktion auf die zweite Anforderung, wenn die zweite Leseanforderung Daten auf der anderen Seite betrifft;

    Lesen von Daten von der geöffneten Seite als Reaktion auf die zweite Leseanforderung, wenn die zweite Leseanforderung Daten auf der geöffneten Seite betrifft;

    wobei das Offen halten der Datenseite ferner das Geltendmachen von Chipauswahl- und Spaltenadress-Strobe-Signalen und das Senden dieser Signale an den SDRAM durch eine SDRAM-Steuereinheit umfasst.
  2. Verfahren nach Anspruch 1, wobei eine spekulative Adresse zum anhaltenden Lesen von einer Seite mit einer ungültigen Adresse bis die zweite Leseadresse auftritt vorgesehen wird.
  3. Steuereinheit für einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), wobei die Steuereinheit folgendes umfasst:

    eine Schaltkreisanordnung (18), die so konfiguriert ist, dass eine Seite des SDRAM als Reaktion auf eine erste Leseanforderung geöffnet wird, gekennzeichnet durch:

    eine Schaltkreisanordnung (34), die so konfiguriert ist, dass sie die Datenseite offen hält, bevor entschieden wird, ob eine zweite Leseanforderung Daten auf der geöffneten Seite oder auf einer anderen Seite betrifft;

    eine Schaltkreisanordnung (26) zum Entscheiden, ob die zweite Leseanforderung Daten auf der geöffneten Seite oder auf der anderen Seite betrifft;

    wobei Chipauswahl- und Spaltenadress-Strobe-Signale von der SDRAM-Steuereinheit verwendet werden, um die Datenseite offen zu halten.
  4. System, das folgendes umfasst:

    einen Datenprozessor (10);

    einen synchronen dynamischen Direktzugriffsspeicher (SDRAM) (12);

    eine SDRAM-Steuereinheit (24), die folgendes umfasst:

    eine Schaltkreisanordnung (18), die so konfiguriert ist, dass eine Seite des SDRAM als Reaktion auf eine erste Leseanforderung von dem Datenprozessor geöffnet wird, gekennzeichnet durch:

    eine Schaltkreisanordnung (34), die so konfiguriert ist, dass sie die Datenseite offen hält, bevor entschieden wird, ob eine zweite Leseanforderung von dem Datenprozessor Daten auf der geöffneten Seite oder auf einer anderen Seite betrifft;

    wobei die SDRAM-Steuereinheit (24) ferner eine Schaltkreisanordnung umfasst, die so konfiguriert ist, dass sie entscheidet, ob die zweite Leseanforderung Daten auf der geöffneten Seite oder auf der anderen Seite betrifft;

    wobei die SDRAM-Steuereinheit Chipauswahl- und Spaltenadress-Strobe-Signale verwendet, um eine Seite des SDRAM zu öffnen, und wobei die SDRAM-Steuereinheit Chipauswahl- und Spaltenadress-Strobe-Signale verwendet, um die Seite offen zu halten.
  5. System nach Anspruch 4, wobei eine spekulative Adresseinrichtung (34) vorgesehen ist, um das Lesen von einer Seite mit einer ungültigen Adresse fortzuführen, bis die zweite Leseadresse auftritt.
Es folgen 5 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com