DE4010384C2 - Verfahren zur Burst-Datenübertragung - Google Patents

Verfahren zur Burst-Datenübertragung

Info

Publication number
DE4010384C2
DE4010384C2 DE4010384A DE4010384A DE4010384C2 DE 4010384 C2 DE4010384 C2 DE 4010384C2 DE 4010384 A DE4010384 A DE 4010384A DE 4010384 A DE4010384 A DE 4010384A DE 4010384 C2 DE4010384 C2 DE 4010384C2
Authority
DE
Germany
Prior art keywords
data
bus
microprocessor
address
burst
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE4010384A
Other languages
English (en)
Other versions
DE4010384A1 (de
Inventor
John H Crawford
Edward T Grochowski
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE4010384A1 publication Critical patent/DE4010384A1/de
Application granted granted Critical
Publication of DE4010384C2 publication Critical patent/DE4010384C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

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

Description

Die Erfindung bezieht sich auf ein Verfahren zum Betrei­ ben eines Mikroprozessors nach dem Oberbegriff des Anspruchs 1 sowie ein Mikroprozessorsystem nach dem Oberbegriff des Anspruchs 5.
Bei dem gattungsgemäßen Verfahren werden Daten in einem Burst-Format übertragen in einem Mikroprozessor und insbe­ sondere in der Busschnittstelleneinheit eines Mikroprozes­ sors, der als Intel 80486-Mikroprozessor bekannt ist. Der Mikroprozessor Intel 80486 ist eine verbesserte Version des 80386-Mikroprozessors. Er enthält einen internen 32-Bit- Datenbus; Einzelheiten des Busses für den 80386-Mikroprozes­ sor sind aus zahlreichen Veröffentlichungen bekannt. Der 80386-Prozessor weist ebenfalls eine chipeigene Speicherma­ nagementeinheit auf. Diese Einheit liefert die Adressierung beispielsweise zu einem Cachespeicher, DRAMs, Massenspeicher usw. Der in der vorliegenden Anmeldung beschriebene Prozes­ sor weist außerdem einen chipeigenen Cachespeicher sowie eine chipeigene Gleitkommaeinheit auf.
Viele Mikroprozessoren sind in der Lage, bei Busanforde­ rungen, die mehr als einen einzigen Datenzyklus benötigen, Bündelzyklen - im folgenden "Burstzyklus" genannt - anstelle von normalen Zyklen zu akzeptieren. Ein Burst-Zyklus über­ trägt mehrere Datenbytes über den Bus während eines langen Speicherzyklus. So findet beispielsweise die Übertragung ei­ ner 128-Bit-Dateninformation über einen 32-Bit-Bus norma­ lerweise in vier Gruppen mit jeweils vier Bytes statt. Die Anfangsadresse (z. B. das erste Byte) wird vom Prozessor zur Berechnung der restlichen Adressen für die nachfolgenden Da­ tenbytes verwendet.
Zwar ist das Grundkonzept von Burstzyklusübertragungen im Stande der Technik bekannt; das Interesse richtet sich auf den wirksamsten Weg der Reihenfolge der übertragenen Da­ ten. Die Burst-Reihenfolge bezieht sich auf die Wahl der Adressen für die Folge von mehreren Datenzyklen. Eine in der Vergangenheit verwendete naheliegende Wahl bestand darin, die Daten sequentiell ausgehend von Null anzuordnen. Bei dem oben angegebenen Beispiel würde eine sequentielle von Null ausgehende Burst-Reihenfolge zunächst das 32-Bit-Doppelwort (auch d-Wort genannt) übertragen, das sich an der Adresse 0 befindet. Die nächsten Übertragungen wären die d-Worte an den Adressen 4, 8 und 12 in dieser Reihenfolge.
Eine andere frühere Lösung bestand darin, daß zunächst das d-Wort übertragen wurde, welches der Benutzer sofort be­ arbeiten wollte. Danach wird die Adresse inkrementiert, wobei in der Cache-Zeile (cache line) umgelaufen (wrap- around) wird. Dieser Vorschlag ist als Umlauf-Burst- (Nibblemodus) -Übertragungsverfahren (wrap-around burst (nibble mode)) bekannt. Nimmt man an, daß der Benutzer auf das d-Wort 3 (d-Wort 3 stellt die 32-Bit-Dateneinheit an der Adresse 12 dar, z. B. d-Worte 0-3 entsprechen den Adressen 0, 4, 8 und 12) zuzugreifen wünscht, so wäre die empfangene Burst-Reihenfolge 12, 0, 4, 8. In anderen Worten, die gewünschte Dateneinheit wird zuerst übertragen, und die restlichen Dateneinheiten werden reihum in sequentieller Reihenfolge übertragen. Während das an der Adresse 12 befindliche d-Wort sofort aufgerufen wird, werden die restlichen d-Worte, z. B. 0, 4, 8 zum Füllen der Cache-Zeile benötigt, obwohl sie anfangs nicht aufgerufen worden sind.
Das Umlauf-Burst-Verfahren hat einen wesentlichen Vor­ teil gegenüber dem Burst-von-0-Verfahren, da es zunächst das 32-Bit-d-Wort mit den von der internen CPU bezeichneten Daten aufruft und danach das Burst mit dem Rest der Cache- Zeile zum Füllen des Cache vervollständigt. Ein wesentlicher Nachteil besteht jedoch darin, daß das Umlauf-Burst-Verfah­ ren für eine optimale Kopplung einer 32-Bit-CPU mit einem 64-Bit-Speicherbus ungeeignet ist.
Zum Stande der Technik wird weiterhin auf die US-PS′n 4 570 220; 4 447 878; 4 442 484; 4 315 308 und 4 315 310 hingewiesen.
Aufgabe der vorliegenden Erfindung ist es, ein Verfahren anzugeben, das beide bekannten Verfahren verbessert und eine rasche und wirksame Methode zur Datenübertragung zu einem ausgerichteten Bereich eines Hauptspeichers zur Verfügung stellt.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 bzw. ein Mikroprozessorsystem mit den Merk­ malen des Anspruchs 5 gelöst.
Die Erfindung ist auf ein verbessertes Verfahren zur Burst-Datenübertragung zwischen einem externen Speicher/Bus der Zeilenlänge L und einem Mikroprozessor mit einem Daten­ bus der Breite W gerichtet, wobei L und W in Bits bemessen sind. Eine erfindungsgemäße Burst-Reihenfolge ermöglicht zu­ nächst den Zugriff auf die relevante Dateneinheit und füllt den restlichen Teil der Cache-Zeile nach einer vorgegebenen Formel. Die Folgen von restlichen Adressen werden dadurch erzeugt, daß die Anfangsadresse (d. h. die als erste zuge­ griffene relevante Dateneinheit) mit einem Bitmuster exklu­ siv-ODER-verknüpft wird, welches von 0 bis zur Burst-Länge ganzzahlig zählt. Vor der Exklusiv-ODER-Verknüpfung wird das Bitmuster um LOG₂(W/8) Bitposition nach links verschoben. Alternativ kann die Folge von restlichen Adressen durch Exklusiv-ODER-Verknüpfung der Anfangsadresse mit der Größe (i*(W/8)) gebildet werden, wobei i wiederum ein von 0 bis zur Burst-Länge (die Burst-Länge kann mathematisch als ((L/W)-1) geschrieben werden) zählendes Bitmuster darstellt. Ein Merkmal der Erfindung besteht darin, daß die Folge von Adressen der Burst-Sequenz für eine Zeile der Länge L auch das Präfix oder den ersten Teil einer neuen Burst-Sequenz darstellt, welche bei der Anfangsadresse für eine Leitung einer Länge von L*2i beginnt. Ein zusätzliches Merkmal ermöglicht dem Benutzer die Anpassung an verschiedene Busgrößen. Angegeben wird ein Beispiel, bei dem ein 32-Bit- CPU-Bus mit einem 64-Bit-Speicherbus gekoppelt ist.
Die neue Burst-Reihenfolge unterstützt die Verbindung einer 32-Bit-CPU mit einem 64-Bit-Speicherbus. Zusätzlich zu der breitbandigen Übertragung beim Füllen von Cache-Zeilen hat die Burst-Reihenfolge gemäß vorliegender Erfindung Vorteile in Systemen mit breiteren Bussen und längeren Zeilengrößen. Diese Vorteile werden nachfolgend in der Beschreibung erläutert.
Weiterbildungen der Erfindung sind in den Unteransprü­ chen gekennzeichnet.
Im folgenden wird die Erfindung anhand eines in der Zeichnung veranschaulichten Beispiels näher erläutert. In der Zeichnung zeigen:
Fig. 1 ein allgemeines Blockschaltbild mit den den Mikroprozessor ausmachenden verschiedenen Teilen;
Fig. 2 ein Blockschaltbild der Bus-Interfaceeinheit des Mikroprozessors;
Fig. 3 Kurven für einen Basis-Burstzyklus, wobei die Reihenfolge der Adressen gezeigt ist;
Fig. 4 Kurven eines unterbrochenen Burstzyklus; und
Fig. 5 einen unterbrochenen Burstzyklus mit einer Ring-Reihenfolge von Adressen.
Im folgenden wird ein Verfahren zur Burst-Datenübertra­ gung für einen Mikroprozessor beschrieben. Dabei werden zahlreiche Einzelheiten, beispielsweise die spezielle Zahl von Bytes usw. angegeben, um die Erfindung leichter verständlich zu machen. Es ist jedoch für den Fachmann klar, daß die Erfindung ohne diese Einzelheiten realisiert werden kann. In anderen Fällen sind bekannte Schaltungen nicht im einzelnen gezeigt, um die Erfindung nicht mit unnötigen Einzelheiten zu belasten.
Der Mikroprozessor, in welchem das Bündel-Übertragungsverfah­ ren nach der Erfindung durchgeführt wird, ist als allgemeines Blockschaltbild in Fig. 1 gezeigt. Der Mikroprozessor weist eine Bus-Interfaceeinheit 10 auf, die mit einem externen 32-Bit-Datenbus 30 und zusätzlich mit einem Adreßbus 31 und einigen anderen Steuerleitungen gekoppelt ist, wie weiter unten anhand Fig. 2 beschrieben wird. (zu beachten ist, daß der Begriff "Daten" generell zur Bezeichnung von Informationen verwendet wird, die über den Datenbus übertragen werden. Diese Informationen können Befehle, Konstanten, Hinweise, Zeiger, usw. enthalten.) Die Interfaceeinheit 10 ist über Adreß- und Datenbusse mit einem Cachespeicher-Steuergerät 12 gekoppelt. Das Steuergerät 12 steuert den Zugriff auf den Cachespeicher 11. Das Steuergerät ist mit einer Adreßerzeugereinheit 14 gekoppelt; eine Seitenbildungseinheit 13 ist ebenfalls zwi­ schen der Adreßerzeugereinheit 14 und dem Cache-Steuergerät 12 eingebunden. Zur Erleichterung des Verständnisses sei angenom­ men, daß die Adreßerzeugerheit die gleiche wie diejenige in dem im Handel erhältlichen Intel 80386 ist.
Die spezielle Konfiguration eines Cachespeichers 11 und eines Cache-Steuergeräts 12 sind für das Verständnis der vorliegen­ den Erfindung nicht wesentlich. Der Signalfluß zwischen dem Steuergerät 12 und der Interfaceeinheit 10 wird in Verbindung mit Fig. 2 nur insoweit erläutert, wie er für das Verständnis der Erfindung erforderlich ist.
Innerhalb des Mikroprozessors werden Befehle an die Befehls­ decodiereinheit 15 angelegt. Die Decodiereinheit arbeitet mit einem Steuergerät 19, in welchem Mikrocodeinstruktionen ge­ speichert sind. Das Steuergerät 19 liefert Folgen von Steuer­ signalen für den Mikroprozessor. Die Befehlsdecodiereinheit 15 ist mit dem Steuergerät 19 gekoppelt; die Ausgänge vom Steuer­ gerät 19 sind mit allen anderen Einheiten des Mikroprozessors gekoppelt. Die Dateneinheit 18 ist eine arithmetische Logik­ einheit (ALU), welche ALU-Funktionen ähnlich denjenigen des Intel 80386 ausführt.
Der Mikroprozessor weist außerdem eine Fließpunkteinheit 17 zur Durchführung von Fließpunktrechnungen auf. Die genaue Ausbildung der Einheit 17 ist für die Erfindung unkritisch, wenn auch die für die Einheit 17 und den Cachespeicher 11 erforderlichen Blockübertragungen die Konzipierung der vorlie­ genden Erfindung ausgelöst haben.
Das Ausführungsbeispiel des Mikroprozessors gemäß Fig. 1 ist mit bekannten MOS-Bauelementen realisierbar, insbesondere mit Hilfe der Komplementär-MOS-Technologie (CMOS-Technologie). Taktfrequenzen von 25 MHz und mehr sind mit derzeitiger MOS- Technologie möglich.
Die Hauptkomponenten der Bus-Interfaceeinheit 10 gemäß Fig. 1 sind in Fig. 2 zwischen den gestrichelten Geraden 53 und 54 gezeigt. Das Cache-Steuergerät 12 steht mit der Interfaceein­ heit 10 über den Buszykluspuffer 45 in Verbindung. Alle Spei­ cheradressen, verschiedene Steuersignale und alle in den ex­ ternen Speicher einzugebenden Daten werden über den Puffer 45 zur Einheit 10 übertragen. Einlaufende Daten (Lesedatenweg) werden über die Interfaceeinheit 10 direkt zum Cache-Steuerge­ rät 12 übertragen.
Die Ausgangsdaten des Puffers 45 werden an den Schreibpuffer 41 angelegt. Dieser Puffer ist "4 tief" und ermöglicht daher, daß Daten vom Puffer 45 für vier CPU-Zyklen in einer der vier Stufen des Puffers 41 zwischengespeichert werden. Der Ausgang des Puffers 41 steht in direkter Verbindung mit dem Datenbus 30. Ebenfalls im Puffer 41 gespeichert und in jeder der vier Stufen gespeicherten Daten zugeordnet sind Signale, welche die Speicheradresse darstellen, Speicherzyklustyp und Länge. Die den Buszyklustyp darstellenden Signale usw. werden vom Deco­ dierer 44 über Leitungen 46 zum Puffer 41 sowie zum Buszyklus­ multiplexer und Decodierer 42 übertragen.
Der Buszyklusmultiplexer und Decodierer 42 wählt entweder die Adreßsignale, Bustypsignale usw. (i) vom Puffer (Leitungen 38) oder (ii) direkt vom Puffer 45 (Leitungen 39) und Leitungen 46. Der Ausgang des Multiplexers und Decodierers 42 ist mit dem Latch 43 gekoppelt. Der Ausgang des Latchs liefert die Adreßsignale (30 Adreßbits und 4 Bits (Byteaktivierungssigna­ le)) auf Bus 31 und Steuerleitungen für den Speicher auf Lei­ tungen 32.
Vier Bits aus dem Puffer 45 werden zum Buszyklusdecodierer 44 übertragen, um den Typ des Buszyklus anzugeben. Diese Bits geben bis zu sechzehn verschiedene Typen von Buszyklen an, beispielsweise Speicherlese-, Speicherschreib-, I/O-Lese/- Schreib-, Vorausholen, Verzweigen, verriegeltes Lesen, verrie­ geltes Schreiben, Schreiben nicht beendet, interner Emulator (Lesen oder Schreiben) und Lesen und Schreiben nach Seitenbil­ dungseinheit 13. Die Buszyklustypbits werden im Decodierer 44 decodiert und zur Steuerung beispielsweise des Multiplexers 42 und zur Lieferung gewisser Ausgangssignale, wie des "Blast"- Signals, wie weiter unten erörtert wird, verwendet.
Das Bussteuergerät 49 erhält ein Buszyklusanforderungssignal auf der Leitung 55 zusätzlich zu einigen anderen Eingangssi­ gnalen, die nachfolgend beschrieben werden. Das Bussteuergerät liefert Steuersignale auf Leitungen 57 an verschiedene Schal­ tungen in der Businterfaceeinheit 10, einschließlich dem Bus­ zyklusdecodierer 44, dem Buszyklusmultiplexer und Decodierer 42, dem Latch 43 und dem Puffer 41. Das Bussteuergerät arbei­ tet als gewöhnliche Zustandsmaschine.
Der Buszyklusdecodierer liefert das Blastsignal (burst last, mitunter als auch Lastsignal bezeichnet). Dieses Signal (aktiv niedrig) zeigt an, daß eine Mikroprozessor-Datenanforderung (Eingang oder Ausgang) beim nächsten Bereitschaftssignal auf den Leitungen 27 oder 28 bedient wird.
Die Haupteingänge und -ausgänge zwischen externen Schaltungen und der Bus-Interfaceeinheit sind in Fig. 2 entlang der unter­ brochenen Geraden 54 gezeigt. Der Datenbus 30 ist ein 32-Bit­ bidirektioneller Bus. Alle 32 Leitungen dieses Busses bedin­ gen in typischer Ausführung eine Verbindung zur externen Schaltung. Der Mikroprozessor liefert eine Speicheradresse auf den Adreßbus 31. Diese Adresse besteht aus 30 Adreßsignalbits und vier Byte-Aktivierungsbits. Die drei Speichersteuerleitun­ gen 32 bezeichnen Lese/Schreib-Befehle für den Speicher, Ein­ gabe/Ausgabe und Daten bzw. Steuerung (beispielsweise Voraus­ holen aus dem Speicher bzw. Datenlesen). Der Adreßstatus (ADS) ist ein aktiv niedriges Signal auf der Leitung 22, das angibt, daß die Adresse auf dem Bus 31 gültig ist.
Die Speicherzyklusanforderungen vom Mikroprozessor machen das Lesen aus dem oder Schreiben in den Speicher von 32 Datenbits erforderlich (größere Übertragungen als die einem Cachespei­ cher zugeordneten Übertragungen werden weiter unten erörtert). In einigen Fällen kann der Speicher auf einen 8-Bit- oder 16-Bit-Bus beschränkt sein. In diesem Falle liefert der Spei­ cher ein geeignetes Signal auf Leitungen 34 oder 35. Das Si­ gnal auf Leitung 35 (Busgröße 8) zeigt an, daß die Übertragung mit acht Bits bedient wird, während das Signal auf der Leitung 34 (Busgröße 16) angibt, daß die Anforderung mit 16-Bit-Über­ tragungen bedient wird. Leitungen 34 und 35 sind mit dem Bus­ zyklusdecodierer 44 gekoppelt, und ihre Verwendung insbesonde­ re bei der Erzeugung des Blast-Signals auf der Leitung 29 wird weiter unten beschrieben.
Wie erwähnt, weist der Mikroprozessor einen chipeigenen Cache­ speicher auf. Gewisse Daten sind zur Speicherung innerhalb des Cachespeichers bestimmt. Eine externe Schaltung prüft die vom Mikroprozessor kommenden Adressen und bestimmt, ob eine spezi­ elle Adresse in den zur Speicherung im Cachespeicher vorgese­ henen Adreßraum fällt. Dies geschieht generell für Befehle, Konstante usw. und nicht für Daten, die aufgeteilt sind. Wenn die externe Schaltung feststellt, daß die angeforderten Daten "cachefähig" sind, d. h. im Cachespeicher gespeichert werden sollten, so wird das KEN-Signal (aktiv niedrig) auf der Lei­ tung 36 zurückgeführt. Dieses Signal wird an den Decodierer 44 angelegt und dient zur Erzeugung des Blast-Signals.
Die Eingabe auf der Leitung 23 ist ein gewöhnliches "Halt-"Si­ gnal, und die Ausgabe auf Leitung 24 ist eine Haltebestäti­ gung. Das Eingangssignal auf der Leitung 25 (Adressenhalte) zeigt an, daß der externe Bus sofort gefloatet werden soll. Dies geschieht zur Verhinderung einer Systemblockierung mit anderen Einrichtungen auf dem Bus. Leitung 26 liefert einen externen Adreßstatus (EADS). Leitungen 27 und 28 erhalten ein Bereitschaftssignal und ein "Burst"-Bereitschaftssignal. Diese Signale werden auch an den Buszyklusdecodierer 44 angelegt.
Bündelordnung
Bei Bündel- bzw. Burstanforderungen, die mehr als einen einzi­ gen Datenzyklus erforderlich machen, kann der beschriebene Mikroprozessor Burstzyklen anstelle von normalen Zyklen akzep­ tieren. In diesen wird eine neue Dateneinheit bei jedem Takt in den 80486-Prozessor eingeblendet, und nicht bei maximal jedem zweiten Takt für Nicht-Burstzyklen. Zusätzlich fallen die Adressen der Dateneinheiten in Burstzyklen alle in diesel­ be 16-Byte-Ausrichtzone (entsprechend einer internen 80486-Cachelinie), und die Adresse der nachfolgenden Übertra­ gungen kann auf einfache Weise von externer Hardware, gegeben durch die laufende Adresse, berechnet werden. Diese kombinie­ ren und ermöglichen die Bildung eines externen Speichersy­ stems, welches eine 486 interne Cachelinie rasch füllen kann. Wie oben gesagt, ermöglicht die Erfindung einem Programmierer, eine von dem aktuellen Befehl benötigte Dateneinheit so rasch wie möglich, d. h. als erster Teil einer Bündelübertragung, zu gewinnen. Die restlichen Dateneinheiten in der Cachelinie (cache line) werden in einer Weise gewonnen, die für eine Busbreite kleiner als die Cachelinelänge optimal ist.
In Systemen auf der Basis der 80486-CPU muß ein Speichersystem mit zwei verzahnten 32-Bit-Speicherbänken aufgebaut werden, die auf einen einzigen 32-Bit-Datenbus heruntergemultiplext werden, um die Ein-Takt-Burstzeitgabe für maximale Busband­ breite zu erfüllen. Dies bedeutet, daß das Speichersystem tatsächlich ein 64-Bit-Speicher ist, der zur Übertragung auf die 80486-CPU-Datenstifte heruntergemultiplext wird. Die Bün­ delordnung bzw. -reihenfolge der Erfindung wird für diese Konfiguration dadurch optimiert, daß sie beide Teile einer 64-Bit-Umgebung des Speichers (die relevanten d-Worte aus beiden 32-Bit-Speicherbänken) vor dem Zugriff auf die nächste 64-Bit-Nachbarschaft überträgt.
Diese Erleichterung der Verbindung einer 32-Bit-CPU auf einen 64-Bit-Speicher/Bus ist in zwei Dimensionen zu verallgemei­ nern. Einerseits erlaubt sie den Anschluß einer CPU mit einer Busbreite = W an irgendeinen Speicher/Bus einer Breite = (2n).W, wobei n eine ganzzahlige Größe ist. Das obige Bei­ spiel illustriert dieses Phänomen, bei dem W = 32 und n = 1. Zweitens ermöglicht sie den Anschluß einer CPU mit einer Lei­ tungs- bzw. Liniengröße = L an einen Speicher/Bus mit Leitun­ gen bzw. Linien der Größe = (2m).W, wobei m wiederum eine ganzzahlige (möglicherweise andere) Größe ist.
Die Bündelordnung nach der Erfindung trägt auch ungleiche Linien bzw. Leitungslängen, da bei einer vorgegebenen, festen Busbreite (z. B. 32 oder 64 Bits) die Bündelfolge für eine Leitung einer vorgegebenen Länge stets der erste Teil der Bündelfolge für irgendeine längere Leitungslänge ist (in der Annahme, daß Leitungsgrößen in der Potenz von 2 sind).
Beispielsweise erzeugt die Bündelordnung zum Aufrufen einer Adresse von 24 mod 32 (z. B. 24, 56, 88 . . . ) auf einem 32-Bit­ -Bus die Adreßfolgen für eine 16-Byte-Leitung und eine 32-Byte-Leitung (die Fortsetzung für die 32-Byte-Leitung ist in Klammern gezeigt). Die obere Zeile zeigt die Dezimaladresse (modulo 32), während die untere Zeile die Adresse in Binärform zeigt.
Ein ähnliches Beispiel gilt für die Bezugnahme auf 4 mod 32:
Aus diesen Beispielen kann eine mathematische Formulierung der Bündeladreßerzeugung als Funktion der Leitungslänge L und Busbreite W abgeleitet werden.
Ai = A₀ ⊕ (i« LOG₂ (W/8)) wobei i = 0, 1, . . . (L/W)-1.
Wie aus der obigen Gleichung zu sehen ist, wird die Reihe oder Folge von Adressen durch Exklusiv-ODER-Verknüpfung der Ur­ sprungsadresse A₀ mit einem Muster gebildet, welches von 0 bis zur Bündellänge (= L/W)-1) zählt. Vor der Exklusiv-ODER- Operation (d. h. (⊕) wird das Bitmuster nach links verscho­ ben (d. h. "«") um einen Wert, der gleich LOG₂(W/8) ist, wobei W und L in Bits, nicht Bytes, gemessen werden und Adres­ sen Byte-Adressen sind. Es ist klar, daß der Divisor "8" in der obigen Formel auf der Verwendung einer Byte-Adressierung basiert. Wenn anstelle von Bytes vom Prozessor Worte adres­ siert werden, so sollte ein alternativer Divisor (z. B. "16") eingesetzt werden. In dem zuletzt genannten Beispiel wäre W = 32 und L 128, so daß die Folge von Adressen durch Exklusiv- ODER-Verknüpfung von A₀ mit der von 0 bis 3 (oder 7) ausge­ henden, nach links (d. h. "«") um LOG₂ (4) 2 verschobenen Folge gebildet wird:
00000, 00100, 01000, 01100, (10000, 10100, 11000, 11100).
Alternativ kann die gleiche Bündelordnung durch den folgenden Algorithmus erreicht werden:
Ai = A₀ ⊕ (i · (W/8)).
Unter Verwendung dieses Algorithmus wird die aufgerufene An­ fangsadresse (z. B. A₀) Exklusiv-ODER-verknüpft mit dem Pro­ dukt aus der Bitmusterfolge (z. B. i 0, 1, . . . (L/W)-1) und der Menge (W/8). Es ist klar, daß beide Algorithmen zu identischen Bündelfolgen führen. Aus diesen Formeln wird klar, daß bei einer vorgegebenen Busbreite W die Folge von Adressen zur Bündel-Bildung einer Leitung der Länge L das Präfix der Folge von Adressen zur Bündel-Bildung einer Leitung der Länge = L.2i ist. Daher hat die Erfindung den Vorteil, daß sie dem Benutzer das Mischen und gegenseitige Anpassen unterschiedli­ cher Leitungsgrößen ermöglicht. Anstelle von vorgegebenen 128 Bits kann der Programmierer ein System einarbeiten, das 128, 256, 512, 1024 usw. Bitleitungen hat, wobei die Datenübertra­ gung über den Bus immer noch glatt abläuft. Dies gelingt, da die Bündelordnung bzw. -reihenfolge für eine kurze Leitung das Präfix der Bündelordnung oder -reihenfolge einer langen Lei­ tung ist, wie dies oben erläutert worden ist. Die Möglichkeit der Mischung und Anpassung unterschiedlicher Leitungsgrößen ist extrem wichtig, da es keinen festen Standard für Spei­ cher/Busleitungsgrößen auf dem Gebiet der Mikroprozessortech­ nik gibt.
Um zu zeigen, daß diese Bündelfolge Speicher/Busse unter­ schiedlicher Breite problemlos zu koppeln geeignet ist, muß man die Formel erweitern, um die in einem einzigen Zyklus übertragenen Adressen zu identifizieren. Zu diesem Zweck wird die Notation einer Folge von Bytes pro Übertragung verwendet. Diese "Bereichserweiterung" findet in den durch die vorherge­ hende Notation "verschobenen" Bits statt, da sie beide der Busbreite entsprechen. Der Bereich wird durch die Notation Niedrigadresse . . . Hochadresse angegeben, wobei Niedrigadresse die Adresse des ersten Byte in der Übertragung und Hochadresse die Adresse des letzten Byte in der Übertragung ist und alle Bytes zwischen Niedrigadresse und Hochadresse an der Übertra­ gung teilnehmen. Im Falle eines 32-Bit-Bus würde dies bezeich­ net als Bereich bbb00 . . . bbb11, übertragen durch einen einzigen Datenzyklus auf einem 32-Bit-Bus. Unter Verwendung des vorher­ gehenden Beispiels eines 32-Bit-Busses und einer 128-Bit(256- Bit)-Leitung ergeben sich die folgenden Sequenzen:
00000 . . . 00011 , 00100 . . . 00111, 01000 . . . 01011, 01100 . . . 01111
(10000 . . . 10011 , 10100 . . . 10111 , 11000 . . . 11011 , 11100 . . . 11111).
Unter Verwendung eines 64-Bit-Busses und einer 128-Bit(256- Bit)-Leitung ergibt sich die Folge:
00000 . . . 00111, 01000 . . . 01111,
(10000 . . . 10111, 11000 . . . 11111).
Dies erklärt den Hauptvorteil des neuen Verfahrens zur Erzeu­ gung eines Datenbündels in einem Mikroprozessorsystem, der darin besteht, daß das Verfahren Gemische aus Leitungslängen und Busgrößen natürlich angleicht. Verschiedene Leitungslängen werden in einfacher Weise angeglichen, da die Bündelfolge, beginnend an irgendeiner Adresse A₀ für eine vorgegebene Leitungslänge L, das Präfix (d. h. der erste Teil) der Bündel­ folge für die an derselben Adresse für eine beliebige Lei­ tungslänge ist, die gleich einer Potenz von 2.L(=L.2i) be­ ginnende Sequenz ist.
Wie in dem letzten Beispiel veranschaulicht, werden unter­ schiedliche Busbreiten leicht gekoppelt, da die Folge für einen schmalen Bus den von einem breiteren Bus übertragenen Datenbereich einschließt. Ein Bus der Breite W verwendet die ersten vier Zyklen zum Aufnehmen des Datenbereichs in einem Bus der Breite 4W, und ein Bus der Breite 2W verwendet zwei Zyklen zum Aufnehmen derselben Daten, wobei jeder Zyklus des 2W-Bus Daten in einem Zyklus aufnimmt, die der Bus der Breite W in zwei Zyklen aufnimmt.
Burstzyklen
Die Implementierung von Burstzyklen unter Verwendung des Burst- bzw. Bündel-Ordnungsverfahrens nach der vorstehenden Beschreibung geschieht über den Burst-Fertig (BRDY#)Stift. (Das # dient zur Kennzeichnung dafür, daß das Signal aktiv niedrig ist.) Dieser Stift zeigt ein Burst-Fertig-Signal für den beschriebenen Mikroprozessor an. Bei allen Zyklen, die nicht Bündel-betrieben werden können, z. B. unterbrochene Be­ stätigung und Halt, hat dieser Stift den gleichen Effekt auf den 80486-Prozessor wie der normale Fertig(RDY#)-Stift. Bei Rücklauf in Abhängigkeit von einem Burst-fähigen Zyklus erwar­ tet der Mikroprozessor, daß das externe Speichersystem eine Bündelübertragung durchführt. Wenn sowohl BRDY# als auch RDY# in demselben Takt rücklaufen, wird BRDY# ignoriert.
Der schnellstmögliche Burstzyklus bedingt zwei Takte für die zum Prozessor zurückzuführende erste Dateneinheit, worauf weitere Dateneinheiten in jedem Takt zurückgeführt werden. Burstzyklen brauchen nicht bei jedem Takt Daten zurückzulei­ ten. Der Mikroprozessor wird nur Daten in den Chip einblenden, wenn entweder RDY# oder BRDY# aktiv sind. Daher braucht BRDY# nicht in jedem Takt bei Bündel-(Burst)-Operationen erzeugt zu werden. Während jedes Teils der Bündelübertragung zeigt der BLAST#-Stift an, ob das Bündel bei dem nächsten Fertigsignal endet. Der Mikroprozessor treibt BLAST# in demjenigen Takt auf ein inaktives Niveau, in welchem BRDY# zurückgeführt wird, um anzuzeigen, daß mehr Datenzyklen zum Komplettieren des Bündels erforderlich sind. Wenn BLAST# in demjenigen Takt aktiv ge­ trieben wird, in dem BRDY# rückgeführt wird, wurde die Bündel­ übertragung beendet, und der Mikroprozessor gibt entweder einen neuen Buszyklus aus, oder der Buszyklus geht in Leer­ lauf. Da das BLAST#-Ausgangssignal eine Funktion des Cache-Ak­ tivierungssignals (KEN#) ist und die Busgrößenstifte BS8# und BS16# im vorhergehenden Takt abgetastet wurden, ist BLAST# nicht gültig im ersten Takt des Buszyklus und wird nur im zweiten und in nachfolgenden Takten abgetastet, wenn RDY# oder BRDY# rückgeführt wird.
Wenn ein Lese- oder Vorausholsignal initiiert wird, liefert der beschriebene Mikroprozessor die Adresse für die angefor­ derten Daten. Wenn der 80486-Prozessor einen Zyklus in eine Cachefüllung (cache fill) umsetzt, sollte, wie oben beschrie­ ben wurde, die erste rücklaufende Dateneinheit der vom Mikro­ prozessor ausgesendeten Adresse entsprechen, mit der Ausnahme, daß alle Byte-Aktivierungssignale dann als aktiv genommen werden sollten. Dies gilt unabhängig davon, ob das externe System auf die Folge von normalen Buszyklen oder mit einem Burstzyklus antwortet.
Ein Beispiel für die Ordnung von Bündel-Adressen, wie sie im vorhergehenden Abschnitt beschrieben wurden, ist in Fig. 3 gezeigt. Die vertikalen Linien 80 bis 85 stellen diejenigen Zeitpunkte dar, an denen interne Taktgabesignale auftreten, (z. B. 25 MHz). Die Kurve für ADS# zeigt, daß nach dem Zeit­ punkt 80 der Mikroprozessor ein Signal auf die Leitung 22 gibt, welches das Vorhandensein einer neuen Adresse auf dem Adreßbus 31 anzeigt. Die Adreßsignale sind so gezeigt, daß die neuen Adreßsignale entsprechend dem Übergang 86 gültig wer­ den.
Zu beachten ist, daß im Falle von Fig. 3 der Cache-Aktivie­ rungsstift (KEN#) zum Zeitpunkt 81 vor dem ersten BRDY# aktiv niedrig gesetzt wird. Dies hat den Effekt des Umsetzens des externen Datenzyklus in eine Mehrfachdatenzyklus-Cachefüllung. Wenn Wartezustände auftreten, erlaubt der Mikroprozessor meh­ rere Zustandsänderungen von KEN# vor dem ersten Fertig (entwe­ der RDY# oder BRDY#), solange sie vor dem Takt vor dem ersten Fertig zurückgehen.
Daten von der Anfangsadresse A₀ werden in den Mikroprozessor zum Zeitpunkt 82 eingeblendet, wenn BRDY# aktiv niedrig ist. Der BRDY#-Stift zeigt an, daß das externe System in Abhängig­ keit von einem Lesesignal gültige Daten auf den Datenstiften zur Verfügung stellt oder daß das externe System die Mikropro­ zessordaten in Abhängigkeit von einer Schreibanforderung ange­ nommen hat. Die anderen Dateneinheiten, die zum Füllen des Cache benutzt werden, werden zu den Zeitpunkten 83, 84 und 85 übertragen. Die Bündelanordnung, die zur Datenübertragung im Mikroprozessor verwendet wird, ist unten in Tabelle 1 gezeigt. Wenn die erste Adresse beispielsweise 104 war, sind die näch­ sten drei Adressen im Bündel 100, 10C und 108 (unter Verwen­ dung der Hexadezimalnotation).
Tabelle 1
Die in Tabelle 1 gezeigten Sequenzen gleichen Systeme mit 64-Bit-Bussen ebenso wie die Systeme mit 32-Bit-Bussen an. Die Folge gilt für alle Bündel unabhängig davon, ob der Zweck des Bündels das Füllen einer Cache-Leitung, eine 64-Bit-Leseopera­ tion oder eine Vorausholoperation ist. Wenn BS8#/BS16# zurück­ geführt wird, beendet der Mikroprozessor zunächst die Übertra­ gung des aktuellen d-Worts vor dem Weiterrücken zum nächsten d-Wort. Daher hat ein BS16#-Bündel zur Adresse 4 die folgende Ordnung: 4-6-0-2-C-E-8-A.
Einige Speichersysteme sind möglicherweise nicht in der Lage, mit Burstzyklen in der durch Tabelle 1 definierten Ordnung zu antworten. Um solche Systeme einzubinden, ermöglicht der be­ schriebene Mikroprozessor die Unterbrechung eines Burstzyklus zu beliebigen Zeiten. In diesem Falle erzeugt der Mikroprozes­ sor automatisch einen anderen normalen Buszyklus (auf den das externe System mit einem anderen Burstzyklus antworten kann) um die Datenübertragung zu beenden. Diese Operation wird als unterbrochener Burstzyklus bezeichnet. Ein Beispiel eines solchen Zyklus ist in Fig. 4 gezeigt.
Im folgenden wird auf Fig. 4 Bezug genommen. Um einen unter­ brochenen Burstzyklus an den Mikroprozessor zu signalisieren, braucht das System nur RDY# anstelle von BRDY# zurückzu­ schicken. Dies ist gezeigt zum Zeitpunkt 93, wo RDY# aktiv niedrig und BRDY# nicht rücklaufgültig ist. Zu beachten ist, daß nach dem Zurückschicken von RDY# zum Mikroprozessor dieser sofort einen anderen ADS# initiierten Buszyklus erzeugt, da BLAST# anzeigt, daß die Datenübertragung noch nicht beendet ist. Zu beachten ist ferner, daß KEN# für den ersten Datenzy­ klus des zweiten Teils der Übertragung nicht als aktiv zurück­ geschickt zu werden braucht. Dies liegt daran, daß der Zyklus bereits in eine Cachefüllung durch den ersten vom Mikroprozes­ sor erzeugten Zyklus umgesetzt worden ist. Zu beachten ist ferner, daß in diesem Beispiel und in Fig. 4 die erste Hälfte und die zweite Hälfte der Übertragung selbst Bündelübertragun­ gen einer Länge von jeweils zwei Datenzyklen sind. Eine Konse­ quenz der Unterbrechungs-Bündelübertragungen ist, daß dadurch das Vorhersagen der nächsten Adresse etwas verwickelt wird.
Ein Beispiel einer solchen Ordnung ist in Fig. 5 gezeigt. Während des Cacheleitungsfüllens gibt der Mikroprozessor dann, wenn er Adresse 104 anfordert und das System RDY# (zum Zeit­ punkt 102 in Fig. 5) zurückschickt, eine neue Anforderung an die Adresse 100 aus (durch Ausgabe von ADS#). ADS# wird neu angelegt am Übergang 107. Wenn das System BRDY# zurückschickt, wird die Adresse 10C vom Mikroprozessor angefordert/erwartet. Daher ist die richtige Ordnung bzw. Reihenfolge bestimmt durch den ersten Zyklus in der Übertragung entsprechend der die Bündelordnung betreffenden vorstehenden Erörterung. Dieser braucht nicht der erste Zyklus im Bündel zu sein, wenn das System RDY# mit BRDY# mischt. Externe Hardware kann den ersten Zyklus in einer Übertragung durch Feststellung des Zustandes von BLAST# während des vorhergehenden Zyklus unterscheiden. Dies ist natürlich nur dann notwendig, wenn externe Hardware RDY mit BRDY zu mischen wünscht und ihre eigenen Bündeladres­ sen erzeugt, da der Prozessor die richtige Adresse stets für alle Teile des Bündels liefert.
Burstzyklen können auch als 8- oder 16-Bitzyklen zurückge­ schickt werden, wenn BS8# oder BS16# aktiv sind. In diesem Falle würde der Burstzyklus auf 16 Datenzyklen gestreckt. Die Folge von Adressen ist die gleiche wie in dem Fall, daß Burst­ zyklen nicht zurückgeschickt werden, und die Daten werden vom Mikroprozessor auf denselben Datenleitungen erwartet, als ob die Daten in einem Burstzyklus nicht zurückgeschickt würden. Zu beachten ist ferner, daß eine einzige 32-Bit-cacheunfähige Mikroprozessor-Leseoperation in den Mikroprozessor als vier 8-Bit-Daten-Burstzyklen eingelesen werden könnte. In ähnlicher Weise könnte eine einzige 32-Bit 486-Schreiboperation als vier 8-Bit-Burstdatenzyklen geschrieben werden. (Bündel-Schreibope­ rationen können nur auftreten, wenn BS8# oder BS16# ansteht.)

Claims (5)

1. Verfahren zum Betreiben eines Mikroprozessors mit einem internen Bus einer Breite von W Bits, der an einen externen Bus gekoppelt ist, wobei der externe Bus an eine Übertragung eines Datenwortes mit einer Länge von L Bits angepaßt ist und wobei das Datenwort eine Mehrzahl von Dateneinheiten, beispielsweise Bytes, aufweist, bei dem die Mehrzahl von Dateneinheiten in einem Burst-For­ mat von dem externen Bus zu dem internen Bus übertragen wird, dadurch gekennzeichnet,
daß eine erste Adresse A₀ von dem Mikroprozessor zum Zu­ greifen auf eine erste Dateneinheit des Datenwortes ausgegeben wird; und
daß eine Sequenz von die verbleibenden Dateneinheiten des Datenwortes repräsentierenden verbleibenden Adressen Ai erzeugt wird, wobei die Sequenz der verbleibenden Adressen Ai entsprechend der Formel Ai=A₀⊕(i * (W/8))erzeugt wird, wobei i=1, 2, . . . ((L/W)-1)) ist, L und W ganze Zahlen sind und ⊕ eine Exklusiv-ODER-Operation zwischen zwei Binärzahlen symbolisiert.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Sequenz der verbleibenden Adressen Ai einen Präfix einer Burst-Sequenz darstellt, die an der ersten Adresse eines Daten­ wortes von der Länge von L*2i Bits beginnt, wobei i eine ganze Zahl ist.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeich­ net, daß der Mikroprozessor einen internen Cache-Speicher mit einer Datenwortlänge von L Bits aufweist und daß dieses Daten­ wort des internen Cache-Speichers mit Daten gefüllt wird, die unter Verwendung der Sequenz der ersten (A₀) und der verblei­ benden Adressen (Ai) übertragen worden sind.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch ge­ kennzeichnet, daß die Sequenz der verbleibenden Adressen Ai in einem außerhalb des Mikroprozessors angeordneten Adressengene­ rator erzeugt wird.
5. Mikroprozessorsystem mit einem Mikroprozessor mit einem internen Bus einer Breite von W Bits, der an einen externen Bus gekoppelt ist, wobei der externe Bus an eine Übertragung eines Datenwortes mit einer Länge von L Bits angepaßt ist und wobei das Datenwort eine Mehrzahl von Dateneinheiten, beispielsweise Bytes, aufweist, bei dem die Mehrzahl von Dateneinheiten in einem Burst-For­ mat von dem externen Bus zu dem internen Bus übertragen wird, dadurch gekennzeichnet, daß eine Einrichtung vorgesehen ist, die
eine erste Adresse A₀ von dem Mikroprozessor zum Zugreifen auf eine erste Dateneinheit des Datenwortes ausgibt; und
eine Sequenz von die verbleibenden Dateneinheiten des Da­ tenwortes repräsentierenden verbleibenden Adressen Ai erzeugt, wobei die Sequenz der verbleibenden Adressen Ai entsprechend der Formel Ai=A₀⊕(i * (W/8))erzeugt wird, wobei 1=1, 2, . . . ((L/W)-1)) ist, L und W ganze Zahlen sind und ⊕ eine Exklusiv-ODER-Operation zwischen zwei Binärzahlen symbolisiert.
DE4010384A 1989-04-05 1990-03-31 Verfahren zur Burst-Datenübertragung Expired - Lifetime DE4010384C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/333,980 US5131083A (en) 1989-04-05 1989-04-05 Method of transferring burst data in a microprocessor

Publications (2)

Publication Number Publication Date
DE4010384A1 DE4010384A1 (de) 1990-10-11
DE4010384C2 true DE4010384C2 (de) 1995-11-02

Family

ID=23305046

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4010384A Expired - Lifetime DE4010384C2 (de) 1989-04-05 1990-03-31 Verfahren zur Burst-Datenübertragung

Country Status (6)

Country Link
US (1) US5131083A (de)
JP (1) JP3180154B2 (de)
DE (1) DE4010384C2 (de)
FR (1) FR2645666B1 (de)
GB (1) GB2230117B (de)
HK (1) HK112694A (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5255378A (en) * 1989-04-05 1993-10-19 Intel Corporation Method of transferring burst data in a microprocessor
GB8915422D0 (en) * 1989-07-05 1989-08-23 Apricot Computers Plc Computer with cache
EP0440452B1 (de) * 1990-01-31 1996-10-09 Hewlett-Packard Company Vielfachbus-Systemspeicherarchitektur
JP2502403B2 (ja) * 1990-07-20 1996-05-29 三菱電機株式会社 Dma制御装置
GB9019001D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station including a direct memory access controller and interfacing means to microchannel means
EP0473804A1 (de) * 1990-09-03 1992-03-11 International Business Machines Corporation Ausrichten von Linienelementen zur Übertragung von Daten vom Speicher zum Cache
IT1241318B (it) * 1990-11-19 1994-01-10 Olivetti & Co Spa Dispositivo di indirizzamento di memoria
JP2856591B2 (ja) * 1991-06-27 1999-02-10 三菱電機株式会社 マイクロコンピュータ、プログラム開発装置およびプログラム開発システム
US6446164B1 (en) * 1991-06-27 2002-09-03 Integrated Device Technology, Inc. Test mode accessing of an internal cache memory
ATE185631T1 (de) * 1991-08-16 1999-10-15 Cypress Semiconductor Corp Dynamisches hochleistungsspeichersystem
US5386579A (en) * 1991-09-16 1995-01-31 Integrated Device Technology, Inc. Minimum pin-count multiplexed address/data bus with byte enable and burst address counter support microprocessor transmitting byte enable signals on multiplexed address/data bus having burst address counter for supporting signal datum and burst transfer
US5345573A (en) * 1991-10-04 1994-09-06 Bull Hn Information Systems Inc. High speed burst read address generation with high speed transfer
GB2260628A (en) * 1991-10-11 1993-04-21 Intel Corp Line buffer for cache memory
JP2744154B2 (ja) * 1991-10-24 1998-04-28 株式会社東芝 バスシステム
US5809531A (en) * 1992-09-21 1998-09-15 Intel Corporation Computer system for executing programs using an internal cache without accessing external RAM
US7248380B1 (en) * 1992-12-18 2007-07-24 Unisys Corporation Adjusting subline address for burst transfer to/from computer memory
US5515496A (en) * 1992-12-24 1996-05-07 Apple Computer, Inc. Computer system with direct manipulation interface and method of operating same
US5586297A (en) * 1994-03-24 1996-12-17 Hewlett-Packard Company Partial cache line write transactions in a computing system with a write back cache
US5784590A (en) * 1994-06-29 1998-07-21 Exponential Technology, Inc. Slave cache having sub-line valid bits updated by a master cache
US5651138A (en) * 1994-08-31 1997-07-22 Motorola, Inc. Data processor with controlled burst memory accesses and method therefor
US5644788A (en) * 1994-10-28 1997-07-01 Cyrix Corporation Burst transfers using an ascending or descending only burst ordering
US5754825A (en) 1995-05-19 1998-05-19 Compaq Computer Corporation Lower address line prediction and substitution
US5835970A (en) * 1995-12-21 1998-11-10 Cypress Semiconductor Corp. Burst address generator having two modes of operation employing a linear/nonlinear counter using decoded addresses
US5692202A (en) * 1995-12-29 1997-11-25 Intel Corporation System, apparatus, and method for managing power in a computer system
US5765190A (en) * 1996-04-12 1998-06-09 Motorola Inc. Cache memory in a data processing system
KR100190379B1 (ko) * 1996-11-06 1999-06-01 김영환 쓰기 사이클의 성능 향상을 위한 프로세서
JPH11203860A (ja) 1998-01-07 1999-07-30 Nec Corp 半導体記憶装置
US6081853A (en) * 1998-03-03 2000-06-27 Ip First, Llc Method for transferring burst data in a microprocessor
US6178467B1 (en) 1998-07-07 2001-01-23 International Business Machines Corporation Microprocessor system requests burstable access to noncacheable memory areas and transfers noncacheable address on a bus at burst mode
US6513107B1 (en) * 1999-08-17 2003-01-28 Nec Electronics, Inc. Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
DE102004046429B4 (de) * 2004-09-24 2014-05-22 Infineon Technologies Ag Schnittstellen-Einrichtung
JP2007172008A (ja) * 2005-12-19 2007-07-05 Sony Corp 情報処理システム、受信装置、およびプログラム
US9818170B2 (en) * 2014-12-10 2017-11-14 Qualcomm Incorporated Processing unaligned block transfer operations
KR20220162543A (ko) * 2021-06-01 2022-12-08 에스케이하이닉스 주식회사 메모리 장치, 반도체 시스템 및 데이터 처리 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4447878A (en) * 1978-05-30 1984-05-08 Intel Corporation Apparatus and method for providing byte and word compatible information transfers
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4306287A (en) * 1979-08-31 1981-12-15 Bell Telephone Laboratories, Incorporated Special address generation arrangement
US4315310A (en) * 1979-09-28 1982-02-09 Intel Corporation Input/output data processing system
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
DE3371947D1 (en) * 1982-12-20 1987-07-09 Radiotechnique Sa Generator of random number sequences
US4570220A (en) * 1983-11-25 1986-02-11 Intel Corporation High speed parallel bus and data transfer method
US4799199A (en) * 1986-09-18 1989-01-17 Motorola, Inc. Bus master having burst transfer mode
US4816997A (en) * 1987-09-21 1989-03-28 Motorola, Inc. Bus master having selective burst deferral

Also Published As

Publication number Publication date
JP3180154B2 (ja) 2001-06-25
FR2645666B1 (fr) 1994-05-06
DE4010384A1 (de) 1990-10-11
GB2230117A (en) 1990-10-10
GB2230117B (en) 1993-01-20
GB9003353D0 (en) 1990-04-11
FR2645666A1 (fr) 1990-10-12
US5131083A (en) 1992-07-14
HK112694A (en) 1994-10-27
JPH02287752A (ja) 1990-11-27

Similar Documents

Publication Publication Date Title
DE4010384C2 (de) Verfahren zur Burst-Datenübertragung
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE2819571C2 (de)
DE3914265C2 (de)
DE3146356C2 (de) Vorrichtung zur Steuerung der Übertragung von Gerätesteuerinformation in einem Datenendgerät
DE2953861C2 (de)
DE69625486T2 (de) Speichersteuerung zur nicht sequentiellen ausführung von schreibbefehlen
DE1499722B1 (de) Einrichtung zur modifizierung von informationswoertern
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE60211452T2 (de) DMA-Übertragung von Daten und Prüfinformation zu und von einem Datenspeicherungsgerät
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE3502147A1 (de) Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung
DE2556624A1 (de) Schaltungsanordnung zur asynchronen datenuebertragung
DE3923253A1 (de) Mikroprozessor
DE3043653A1 (de) Datenverarbeitungsanlage
DE2533737A1 (de) Datenprozessor
DE69034246T2 (de) Gerät zur Verarbeitung von Grafikdaten
DE19652290C2 (de) Mikrocomputer
EP0075714B1 (de) Onchip Mikroprozessorcachespeicher und Verfahren zu seinem Betrieb
DE19782017B4 (de) Verfahren und Computersystem zur Durchführung einer Burst-Leseoperation eines Bus-Masters aus einem Systemspeicher
DE4114053A1 (de) Computersystem mit cachespeicher
DE19842677A1 (de) Speicherzugriff-Steuerschaltung
DE4135031C2 (de) Eingabe/Ausgabe-Einrichtung und Verfahren zum Betreiben einer Eingabe/Ausgabe-Einrichtung
DE2349253C3 (de) Rechnersystem
EP1407348B1 (de) Verfahren zum ansteuern einer zentralen verarbeitungseinheit für eine adressierung bezüglich eines speichers und controller

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition