DE4010384C2 - Verfahren zur Burst-Datenübertragung - Google Patents
Verfahren zur Burst-DatenübertragungInfo
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims description 24
- 238000000034 method Methods 0.000 title claims description 22
- 238000012546 transfer Methods 0.000 description 15
- 108050001922 30S ribosomal protein S17 Proteins 0.000 description 5
- 230000004913 activation Effects 0.000 description 5
- 101150083341 LOG2 gene Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- 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
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.
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).
(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).
(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.
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).
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.
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.
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.
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)
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 |
DE69122520T2 (de) * | 1990-01-31 | 1997-02-13 | Hewlett Packard Co | 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 |
US6446164B1 (en) * | 1991-06-27 | 2002-09-03 | Integrated Device Technology, Inc. | Test mode accessing of an internal cache memory |
JP2856591B2 (ja) * | 1991-06-27 | 1999-02-10 | 三菱電機株式会社 | マイクロコンピュータ、プログラム開発装置およびプログラム開発システム |
AU2476192A (en) * | 1991-08-16 | 1993-03-16 | Multichip Technology | High-performance dynamic memory system |
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)
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 |
EP0115097B1 (de) * | 1982-12-20 | 1987-06-03 | La Radiotechnique Portenseigne | Generator von Reihen von Zufallszahlen |
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 |
-
1989
- 1989-04-05 US US07/333,980 patent/US5131083A/en not_active Expired - Lifetime
-
1990
- 1990-02-14 GB GB9003353A patent/GB2230117B/en not_active Expired - Lifetime
- 1990-03-31 DE DE4010384A patent/DE4010384C2/de not_active Expired - Lifetime
- 1990-04-03 FR FR9004229A patent/FR2645666B1/fr not_active Expired - Lifetime
- 1990-04-05 JP JP08929890A patent/JP3180154B2/ja not_active Expired - Lifetime
-
1994
- 1994-10-20 HK HK112694A patent/HK112694A/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP3180154B2 (ja) | 2001-06-25 |
GB2230117B (en) | 1993-01-20 |
FR2645666B1 (fr) | 1994-05-06 |
FR2645666A1 (fr) | 1990-10-12 |
US5131083A (en) | 1992-07-14 |
GB2230117A (en) | 1990-10-10 |
DE4010384A1 (de) | 1990-10-11 |
HK112694A (en) | 1994-10-27 |
GB9003353D0 (en) | 1990-04-11 |
JPH02287752A (ja) | 1990-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4010384C2 (de) | Verfahren zur Burst-Datenübertragung | |
DE68918754T2 (de) | Datenverarbeitungsgerät mit selektivem Befehlsvorausholen. | |
DE69834739T2 (de) | Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren | |
DE69032783T2 (de) | CPU-Bussteuerschaltung | |
DE2819571C2 (de) | ||
DE3889366T2 (de) | Interface für ein Rechnersystem mit reduziertem Befehlssatz. | |
DE3687307T2 (de) | Computeranordnungen mit cache-speichern. | |
DE69906156T2 (de) | Mikroprozessorvorrichtung mit programmierbaren wartezuständen | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
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 | |
DE10056827A1 (de) | Duale Verwendung von Cache-Verbindungen | |
DE69119149T2 (de) | Struktur zur direkten Speicher-zu-Speicher-Übertragung | |
DE3502147A1 (de) | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung | |
DE3923253A1 (de) | Mikroprozessor | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE69027919T2 (de) | Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher | |
DE69230483T2 (de) | Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung | |
DE69030072T2 (de) | Schneller Durchschreib-Cache-Speicher | |
DE3587874T2 (de) | Protokolle für Terminal. | |
DE69315192T2 (de) | Datenverarbeitungssystem und -Verfahren mit einem erweitbaren Register | |
DE19652290C2 (de) | Mikrocomputer | |
DE3936339A1 (de) | Controller fuer direkten speicherzugriff | |
DE2948442C2 (de) | Digitalrechenanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |