DE68918754T2 - Datenverarbeitungsgerät mit selektivem Befehlsvorausholen. - Google Patents

Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.

Info

Publication number
DE68918754T2
DE68918754T2 DE68918754T DE68918754T DE68918754T2 DE 68918754 T2 DE68918754 T2 DE 68918754T2 DE 68918754 T DE68918754 T DE 68918754T DE 68918754 T DE68918754 T DE 68918754T DE 68918754 T2 DE68918754 T2 DE 68918754T2
Authority
DE
Germany
Prior art keywords
signal
address
bus
generating
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE68918754T
Other languages
English (en)
Other versions
DE68918754D1 (de
Inventor
Ralph Murray Begun
Patrick Maurice Bland
Mark Edward Dean
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68918754D1 publication Critical patent/DE68918754D1/de
Application granted granted Critical
Publication of DE68918754T2 publication Critical patent/DE68918754T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Datenverarbeitungsgerät mit selektivem Befehlsvorausholen
  • Hintergrundinformationen zum 80386, seinen Eigenschaften und seiner Verwendung in Mikrocomputersystemen mit Cachespeichersubsystemen sind in "Introduction to the 80386", April 1986, und im 80386 Hardware Reference Manual (1986) beschrieben. Die Eigenschaften und die Betriebsleistung des 82385 sind in der Publikation "82385 High Performance 32-Bit Cache Controller" (1987) beschrieben. Alle diese Publikationen werden von der Intel Corporation produziert.
  • Bei Mikrocomputersystemen, wie auch bei anderen Computersystemen, ist die Arbeitsgeschwindigkeit ein wichtiges Kriterium, das in den meisten Fällen gegen die Kosten des Systems abgewogen werden muß. Viele Funktionen, die zuerst eingeführt wurden, um die Arbeitsgeschwindigkeit bei Großrechnern und Minicomputern zu steigern, setzen sich nun auch bei Mikrocomputersystemen durch. Zu ihnen zählen Cachespeichersubsysteme und Pipeline-Operationen, wobei letztere das Befehlsvorausholen erfordern. Bei älteren Systemen hatte der Begriff Pipelining auch die Mitbedeutungen Serialität und Timing, doch bei kleineren Systemen wie den obengenannten und im Sprachgebrauch der Hersteller dieser Systeme beschränkt sich die Bedeutung heute auf das Befehlsvorausholen.
  • Bei einigen Mikrocomputersystemen (zum Beispiel bei Systemen, die den Mikroprozessor 80386 verwenden) stellen Pipeline- Operationen eine attraktive Betriebsmöglichkeit dar. Bei 80386/82385-Mikrocomputersystemen liefert die Cachesteuerungseinheit 82385 das Signal Nächste Adresse (NA), das, so wird empfohlen, einem entsprechenden Eingang am 80386 zugeleitet wird. Dadurch kann der 82385 dem 80386 noch vor dem Abschluß eines gegebenen Buszyklus das NA-Signal geben, damit der 80386 Informationen (Daten, Adressen und/oder Steuerungsinformationen) für den nächsten Betriebszyklus ausgeben kann. Das Timing ist, in Verbindung mit angeschlossenen Komponenten, so arrangiert, daß, wenn eine Cacheoperation die gegebene Operation ist, die Informationen für die gegebene Operation bereits vom Cachespeicher angenommen werden und daher die Veränderung der vom 80386 ausgegebenen Informationen, damit sie dem nächsten Zyklus entsprechen, nicht die Operation stört, die gerade abgeschlossen wird. Dies gilt auch für Situationen, in denen eine Cache-Miss-Bedingung aufgetreten ist, bei der eine Referenz auf den Hauptspeicher anstelle des Cachespeichers erforderlich ist, da der Zugriff auf den Hauptspeicher über verriegelte Puffer erfolgt, die daher Informationen speichern, die die gegebene Operation betreffen.
  • Der 80386 verfügt auch über die Möglichkeit, mit einer sogenannten dynamischen Busgröße zu operieren. Der 80386 ist nominell eine 32-Bit-Maschine, d. h. die Breite des Datenbusses beträgt 32 Bit. Der 80386 kann jedoch auch mit 16-Bit-Geräten (Geräten, die nur 16 Datenbits übertragen) arbeiten, indem er auf ein Signal BS16 reagiert, das dem 80386 zugeleitet wird, um ihm das Vorhandensein eines 16-Bit- Gerätes mitzuteilen. Das Signal BS16 ist für den 80386 wichtig, wenn er eine 32-Bit-Operation durchgeführt hat. Natürlich kann das 16-Bit-Gerät nicht in einem Arbeitsgang die 32 Datenbits übertragen, die der 80386 generieren und/oder annehmen kann. Dadurch ist eine zweite Operation (ein zweiter Zyklus) erforderlich, und der 80386 reagiert auf das Signal BS16, automatisch den nächsten, notwendigen, Zyklus zu generieren.
  • Damit dieser Operationstyp erfolgreich ist, wenn der 82385 vorhanden ist, muß der 82385 Informationen darüber haben, welcher Art das an der Operation beteiligte Gerät ist, damit das NA-Signal an den 80386 nicht unbedacht erzeugt wird. Wie in den genannten Intel-Publikationen beschrieben, benötigt der 82385 Geräteinformationen zum Beginn eines Zyklus, während der 80386 Geräteinformationen noch wesentlich später im Zyklus annehmen und berücksichtigen kann.
  • Bei manchen Mikrocomputersystemen wird diese Einschränkung akzeptiert, indem die Adresse eines Gerätes mit dessen Größe korreliert wird, so daß zum Beispiel alle 32-Bit-Geräte in einem ersten vorbestimmten Adreßbereich liegen und alle 16- Bit-Geräte in einem zweiten, unterschiedlichen Adreßbereich. Durch dieses Verfahren kann dann die Größe eines Gerätes anhand seiner Adresse bestimmt werden.
  • Bei Systemen, die flexibel genug sein müssen, um eine Vielzahl von Geräten in einer großen Bandbreite von Adreßbereichen zu finden, ist diese Beschränkung dagegen nicht einzuhalten. Eine Klasse solcher Systeme sind diejenigen, die den IBM Micro-ChannelTM-Bus verwenden.
  • In vielen Systemen, auch in Systemen des obengenannten Typs, gibt ein Gerät seine Größe zurück, wenn es adressiert wird. Da der 82385 jedoch verlangt, daß die Information über die Gerätegröße am Beginn eines Buszyklus verfügbar ist, besteht bei Systemen, bei denen diese Information erst später im Zyklus verfügbar ist, die Möglichkeit eines unbedachten NA- Signals.
  • Es ist daher ein Ziel der vorliegenden Erfindung, eine Vorrichtung in einem Computersystem bereitzustellen, welche das NA-Signal selektiv steuert, so daß es nur unter den angemessenen Umständen an den Mikroprozessor geleitet wird. Unter anderen Umständen wird verhindert, daß das NA-Signal den Mikroprozessor erreicht. Indem verhindert wird, daß das NA-Signal den Mikroprozessor erreicht, werden zugleich Pipeline-Operationen verhindert, d. h. es wird verhindert, daß Informationen für einen nächsten Zyklus generiert werden, bevor ein gegebener Zyklus abgeschlossen ist. Bei dieser flexiblen Steuerung des NA-Signals kann das Mikrocomputersystem jetzt mit dynamischen Busgrößen arbeiten, d. h. es kann jetzt mit Geräten unterschiedlicher Größe arbeiten, ohne daß zu Beginn des Zyklus Informationen über die Größe des Gerätes vorliegen, mit dem gearbeitet werden soll.
  • Cachefähige Geräte, d. h. Geräte, die Daten erzeugen, die gecached, also in einem Cachespeicher zwischengespeichert werden können, sind zwangsläufig 32-Bit-Geräte. Alle derartigen Geräte haben Adressen (genauer: Etiketten), die die Cachefähigkeit anzeigen. Alle anderen Geräte (ob 32-Bit- Geräte oder nicht) haben Adressen, die anzeigen, daß die von ihnen generierten Informationen nicht im Cache zu finden sind. Die Steuerung des NA-Signals hängt zum Teil von der Cachefähigkeit ab. Da jedes cachefähige Gerät ein 32-Bit- Gerät ist, stellt sich die Frage unbedachter NA-Signale bei der Arbeit mit cachefähigen Geräten nicht. Außerdem stellt sich bei einem Cache-Hit auch nicht die Frage, ob das NA- Signal angemessen ist, da nur cachefähige Geräte (32-Bit- Geräte) zu einem Cache-Hit führen. Ein wichtiges Element bei der Zulassung von dynamischen Busgrößen und Pipeline- Operationen ist also, daß das NA-Signal daran gehindert wird, den 80386 zu erreichen, wenn eine Adresse an ein nicht cachefähiges Gerät gegeben wird.
  • Wenn sich im Laufe eines gegebenen Zyklus (bei dem das NA- Signal verhindert wurde) herausstellt, daß das Gerät ein 32- Bit-Gerät ist, wird der Zyklus normal beendet (ohne Pipelining). Wenn sich dagegen im Laufe des Zyklus herausstellt, daß das Gerät ein 16-Bit-Gerät ist (und der Zyklus ein 32-Bit-Zyklus ist), dann generiert der Mikroprozessor den zusätzlich erforderlichen Zyklus. Diese Operation ist für die Cachesteuerungseinheit vollkommen transparent, d. h. sie ist nicht an der Steuerung des zweiten der beiden Zyklen beteiligt. Wenn sich das Gerät, mit dem gearbeitet wird, schließlich als 8-Bit-Gerät herausstellt, dann "sieht" der Mikroprozessor ein 16-Bit-Gerät, so daß er genauso arbeitet, wie es für den Fall beschrieben wurde, daß das Gerät ein 16-Bit-Gerät ist. Er "sieht" mit anderen Worten ein 16-Bit-Gerät, so daß nach dem Abschluß des ersten Zyklus (bei dem er darüber informiert wird, daß er mit einem 16-Bit- Gerät arbeitet) ein zweiter Zyklus generiert wird. Allerdings konvertiert eine andere Logik - nicht nur für die Cachesteuerungseinheit, sondern auch für den Mikroprozessor transparent - jeden der 16-Bit-Zyklen des Mikroprozessors in zwei 8-Bit-Zyklen. In dem Fall also, daß ein 32-Bit-Zyklus sich an ein 8-Bit-Gerät richtet, ist die Cachesteuerungseinheit nicht an der Operation beteiligt, der Mikroprozessor generiert zwei 16-Bit-Zyklen, und eine andere Logik bearbeitet jede der 16-Bit-Mikroprozessorzyklen, um zwei 8-Bit-Zyklen zu generieren.
  • Gemäß der Erfindung wird daher ein Datenverarbeitungsgerät nach Anspruch 1 und ein Verfahren zum Betrieb eines Datenverarbeitungssystems nach Anspruch 7 bereitgestellt.
  • Im folgenden wird nun exemplarisch und unter Bezugnahme auf die beiliegenden Zeichnungen ein Ausführungsbeispiel der Erfindung beschrieben und mit Beispielen für den Stand der Technik kontrastiert, wobei:
  • Fig. 1 eine dreidimensionale Gesamtansicht eines typischen Mikrocomputersystems ist, das die vorliegende Erfindung beinhalten kann;
  • Fig. 2 ein detailliertes Blockdiagramm einer Mehrheit der Komponenten eines Mikrocomputersystems ist, das die vorliegende Erfindung beinhaltet;
  • Fig. 3 ein genaueres Blockdiagramm als Fig. 2 ist, das die vom Hersteller empfohlenen Verbindungen zwischen dem Mikroprozessor und der Cachesteuerungseinheit zeigt und das zu verstehen hilft, warum eine derartige Anordnung nicht mit dynamischen Busgrößen zu vereinbaren ist;
  • Fig. 4 ein genaueres Blockdiagramm, ähnlich wie Fig. 3, ist, aber die Anwendung der vorliegenden Erfindung illustriert, die sowohl das Sequentialisieren von Pipeline-Befehlen als auch dynamische Busgrößen zuläßt;
  • Fig. 5 ein weiteres genaues Blockdiagramm des Gerätes ist, das die Konvertierung von 16-Bit- zu 8-Bit-Zyklen erledigt; und
  • Figs. 6 und 7 ein Timing-Diagramm und ein Blockdiagramm des Signalspeichers DL und seines Steuerungssignals LEDMA (Latch Enable from DMA, Signalspeicher-Freigabe von DMA) sind, die illustrieren, wie das synchrone DMA-Subsystem an den (mit einem anderen Takt arbeitenden) lokalen CPU-Bus angeschlossen ist, um mögliche Konflikte auf dem Systembus 250 zu vermeiden.
  • Fig. 1 zeigt ein typisches Mikrocomputersystem, in dem die vorliegende Erfindung eingesetzt werden kann. Wie dargestellt umfaßt das Mikrocomputersystem 10 eine Anzahl von Komponenten, die miteinander verbunden sind. Im einzelnen ist eine Systemeinheit 30 an einen Monitor 20 (zum Beispiel eine konventionelle Bildschirmanzeige) angeschlossen, den sie auch steuert. Die Systemeinheit 30 ist auch mit Eingabegeräten wie der Tastatur 40 und der Maus 50 verbunden. Ein Ausgabegerät wie etwa ein Drucker 60 kann ebenfalls an die Systemeinheit 30 angeschlossen sein. Zuletzt kann die Systemeinheit 30 ferner ein oder mehrere Disketten- bzw. Plattenlaufwerke wie zum Beispiel das Diskettenlaufwerk 70 umfassen. Wie nachstehend beschrieben reagiert die Systemeinheit 30 auf Eingabegeräte wie die Tastatur 40 und die Maus 50 sowie Eingabe/Ausgabe-Geräte wie das Diskettenlaufwerk 70 zur Bereitstellung von Signalen zur Steuerung von Ausgabegeräten wie dem Monitor 20 und dem Drucker 60. Natürlich ist dem Fachmann klar, daß andere und konventionelle Komponenten ebenfalls an die Systemeinheit 30 angeschlossen werden können, um mit ihr zu interagieren. In dieser Anordnung umfaßt das Mikrocomputersystem 10 (wie nachstehend noch näher beschrieben wird) ein Cachespeichersubsystem, so daß ein lokaler CPU-Bus vorhanden ist, der einen Prozessor, eine Cachesteuerungseinheit und einen Cachespeicher, der selbst wiederum über einen Puffer an einen Systembus angeschlossen ist, miteinander verbindet. Der Systembus ist verbunden mit und interagiert mit den I/O-Geräten wie Tastatur 40, Maus 50, Diskettenlaufwerk 70, Monitor 20 und Drucker 60. Darüber hinaus kann die Systemeinheit 30 auch einen dritten Bus mit Micro-ChannelTM-Architektur zum Anschluß zwischen dem Systembus und anderen Eingabe/Ausgabe-Geräten umfassen.
  • Fig. 2 ist ein Blockdiagramm einer oberen Ebene, das die verschiedenen Komponenten eines typischen Mikrocomputersystems gemäß der vorliegenden Erfindung zeigt. Ein lokaler CPU-Bus 230 (mit Daten-, Adreß- und Steuerungskomponenten) erlaubt den Anschluß eines Mikroprozessors 225 (zum Beispiel eines 80386), einer Cachesteuerung 260 (die eine Cachesteuerungseinheit 82385 enthalten kann) und eines Cachespeichers 255 mit wahlfreiem Zugriff. Ebenfalls an den lokalen CPU-Bus 230 angeschlossen ist ein Puffer 240. Der Puffer 240 selbst wiederum ist an den Systembus 250 angeschlossen, der ebenfalls Daten-, Adreß- und Steuerungskomponenten umfaßt. Der Systembus 250 erstreckt sich zwischen dem Puffer 240 und einem weiteren Puffer 253. Der Systembus 250 ist außerdem an ein Bussteuerungs- und Timing-Element 265 und eine DMA-Steuerungseinheit 325 angeschlossen. Ein Zuteilungssteuerungsbus 340 verbindet das Bussteuerungs- und Timing-Element 265 und ein zentrales Zuteilungselement 335. Der Hauptspeicher 350 ist ebenfalls an den Systembus 250 angeschlossen. Der Hauptspeicher umfaßt ein Speichersteuerungselement 351, einen Adreßmultiplexer 352 und einen Datenpuffer 353. Diese Elemente sind jeweils mit den Speicherelementen 360 bis 364 verbunden, wie in Fig. 2 dargestellt.
  • Ein weiterer Puffer 254 ist zwischen dem Systembus 250 und einem Planarbus 270 angeschlossen. Der Planarbus 270 umfaßt Adreß-, Daten- bzw. Steuerungskomponenten. Entlang dem Planarbus 270 sind verschiedene I/O-Adapter und andere Komponenten angeschlossen, wie etwa der Anzeigeadapter 275 (der zur Steuerung des Monitors 20 dient), eine Uhr 280, zusätzlicher Speicher mit wahlfreiem Zugriff 285, ein RS232- Adapter 290 (für serielle I/O-Operationen), ein Druckeradapter 295 (der zur Steuerung des Druckers 60 verwendet werden kann), ein Timer 300, ein Diskettenadapter 305 (der mit dem Diskettenlaufwerk 70 zusammenarbeitet), eine Unterbrechungssteuerungseinheit 310 und ein Nur-Lese-Speicher 315.
  • Der Puffer 253 (an einer Seite an den Systembus 250 angeschlossen) ist an der anderen Seite an die Micro- ChannelTM-Steckplätze 401 des Micro-ChannelTM-Busses 320 angeschlossen. Der Bus 320 kann Geräte unterschiedlicher Größe unterstützen, darunter 32-Bit-Geräte, 16-Bit-Geräte und 8-Bit-Geräte. Dargestellt ist ein typisches Speichergerät 331, das an den Bus 320 angeschlossen ist. Einer der Vorteile dieses Busses besteht darin, daß er dem Benutzer die Flexibilität gewährt, nach Belieben unterschiedliche Geräte in die verschiedenen Steckplätze zu stecken. Das Mischen dieser Geräte und ihr Vorkommen in verschiedenen Steckplätzen verhindert eine starre Adressierungszuweisung und ist ein Hauptgrund für die Notwendigkeit der vorliegenden Erfindung. Ohne die vorliegende Erfindung könnte das hier beschriebene Mikrocomputersystem 80386/82385 entweder überhaupt keine Pipeline-Operationen verwenden, oder es würde aufgrund unbedachter oder unangemessener Pipeline-Operationen fehlerhaft arbeiten.
  • Fig. 3 zeigt ausgewählte Verbindungen zwischen dem 80386 und dem 82385, die sich auf die Erzeugung und Verwendung des Signals Nächste Adresse (NA) beziehen, wie sie vom Hersteller empfohlen werden. Im einzelnen wird die Schnittstelle zwischen dem lokalen CPU-Bus 230 und dem Systembus 250 von dem Puffer 240 gebildet, dessen Komponenten einen Steuerungspuffer DL (für Daten) und AL (für Adressen) umfassen. Wie in Fig. 3 gezeigt ist die Datenkomponente des lokalen CPU-Busses (CPULBD) ein Eingabe/Ausgabe-Anschluß für den DL auf der Seite des lokalen CPU-Busses. Ebenso ist die Datenkomponente SBD des Systembusses 250 der Eingabe/Ausgabe- Anschluß zu DL auf der Seite des Systembusses 250. Der Puffer DL wird von seinen Eingangssignalen LDSTB, BT/R und DOE gesteuert. LDSTB speichert Daten in DL, und DOE gibt den Ausgang von DL frei. Die Richtung, aus der Eingaben akzeptiert werden (lokaler CPU-Bus 230 oder Systembus 250) und in die Ausgaben geleitet werden (Systembus 250 oder lokaler CPU-Bus 230) wird von BT/R bestimmt. Ebenso hat die Adreßkomponente des Puffers AL einen Eingang von der Adreßkomponente des lokalen CPU-Busses (CPULBA) her und einen Ausgang zu der Adreßkomponente des lokalen Systembusses 250 (SBA). Auf ähnliche Weise wird die AL-Komponente des Puffers von ihren zwei Steuerungssignalen BACP und BAOE gesteuert, die erstere speichert Adreßinformationen aus CPULBA in AL, und die letztere aktiviert den Ausgang, d. h. zum Systembus 250. Die Steuerungssignale LDSTB, DOE, BACP und BAOE werden durch den 82385 bereitgestellt.
  • Die Adreßkomponente CPULBA des lokalen CPU-Busses 230 entspringt beim 80386, und die Datenkomponente CPULBD des lokalen CPU-Busses 230 entspringt/endet beim 80386.
  • Der 82385 verwendet bei der Erzeugung des NA-Signals zwei zusätzliche Signale, X16 und NCA. Das Signal X16 zeigt an, ob das Gerät, mit dem operiert wird, ein 16-Bit- oder ein 32- Bit-Gerät ist. Eine Quelle des Signals X16 ist der lokale Busadressendecodierer (LBAD, Local Bus Address Decoder). Darüber hinaus empfiehlt der Hersteller, daß das Signal BS16 an das Signal X16 geknüpft wird. Das Signal BS16 wird dem 80386 eingegeben, um dem 80386 anzuzeigen, ob die Größe des Gerätes, mit dem operiert wird, 16 Bit oder 32 Bit beträgt.
  • Eine Quelle des Signals BS16 ist ein Geräteadressendecodierer wie etwa MAD. MAD stellt den Adressendecodierer eines beliebigen Gerätes dar, das an den Systembus 250 oder an jeden anderen mit diesem gekoppelten Bus, wie zum Beispiel an den Bus 270 oder 320, angeschlossen ist. Wenn ein Gerät wie etwa MAD seine Adresse auf einer Busadreßkomponente wie MA erkennt, gibt es das Signal BS16 zurück, das in Abhängigkeit davon, ob das Gerät ein 16-Bit- oder ein 32-Bit-Gerät ist, entweder hoch oder niedrig ist.
  • NCA (Non Cacheable Address, nicht cachefähige Adresse) ist eine weitere Eingabe an den 823385, die anzeigt, ob eine angegebene Adresse eine cachefähige Adresse ist. Eine cachefähige Adresse ist definiert als eine Adresse für ein Gerät, das zu dem Cachesubsystem kompatibel ist und daher ein 32-Bit-Gerät ist. Dieses Signal wird von dem Cacheadressendecodierer (CAD, Cache Address Decoder) mit Hilfe einer Eingabe aus der Adreßkomponente des lokalen CPU- Busses 230 generiert. Der Hersteller schlägt vor, daß ein Abschnitt des Speichers anhand dieser Eingabe an den 82385 als nicht cachefähig reserviert wird.
  • Die in Fig. 3 dargestellte empfohlene Architektur sorgt für effektive Pipeline-Operationen (mit Hilfe des NA-Signals) unter jedem der folgenden Umstände:
  • 1) wenn alle Geräte, die an den Systembus 250 oder einen an diesen gekoppelten Bus angeschlossen sind, 32-Bit-Geräte sind oder
  • 2) wenn die Geräte, die an den Systembus 250 oder einen an diesen gekoppelten Bus angeschlossen sind, 32-Bit- oder 16- Bit-Geräte sein können, solange das Signal X16 am Beginn eines beliebigen Buszyklus verfügbar ist.
  • Wenn das Signal X16 am Beginn eines gegebenen Buszyklus verfügbar ist, bestimmt der 82385 anhand dieser Information, ob das NA-Signal angemessen ist, und wenn es nicht angemessen ist, wird es nicht generiert. Wenn der 80386 daher mit einem 32-Bit-Gerät operiert, wird das NA-Signal im Normalfall vor dem Abschluß eines gegebenen Zyklus generiert, um eine Pipeline-Operation zu veranlassen. Wenn das Gerät aber andererseits ein 16-Bit-Gerät ist, dann wird das NA-Signal nicht generiert, so daß der 80386 den zweiten Zyklus generieren kann, der für den ordnungsgemäßen Betrieb mit einem 16-Bit-Gerät notwendig ist.
  • Die Architektur mancher Bussubsysteme (wie etwa des Micro- ChannelTM-Busses) ermöglicht jedoch das Mischen von 8-Bit-, 16-Bit- und 32-Bit-Geräten. Da das Signal BS16 erst eine gewisse Zeit später zurückgegeben wird, nachdem das typische Gerät MAD seine Adresse auf dem Bussubsystem erkannt hat, wird es nicht so früh generiert, daß der 82385 es bei der Entscheidung, ob das NA-Signal generiert werden soll, noch berücksichtigen kann. Daher ist der 82385 aufgrund seiner Besonderheiten insbesondere bei der Generierung des NA- Signals zu Bussystemen inkompatibel, die eine Flexibilität haben, wie sie der Micro-ChannelTM-Bus aufweist.
  • Fig. 4 ist ein Blockdiagramm ähnlich wie Fig. 3, das jedoch zum Einsatz gemäß der vorliegenden Erfindung abgeändert ist. Vor der Beschreibung des Betriebs des in Fig. 4 dargestellten Gerätes wird eine Reihe von Unterschieden zwischen Fig. 3 und Fig. 4 beschrieben.
  • Ein großer Unterschied besteht darin, daß die Ausgaben X16 und NA des 82385 nicht mehr verwendet werden. Außerdem wird zwischen dem 82385 und dem 80386 ein neues Logikelement CL zwischengeschaltet. Das Logikelement CL generiert das Signal CPUNA (das das ungenutzte Signal NA vom 82385 ersetzt). Die Logikeinheit CL spricht auf das Signal NCA von dem CADR und das Signal BADS vom 82385 an. Das Signal BADS (Bus Address Status, Busadreßstatus) ist ein Signal, das von dem 82385 generiert wird, wenn eine gültige Adresse für den lokalen Adreßbus verfügbar ist. Diese Ausgabe des 82385 hat drei Zustände, wenn der 82385 nicht die Steuerung des lokalen Busses innehat und liefert in deren Abwesenheit außerdem einen Hinweis auf einen Cache-Miss. Das Logikelement CL hat darüber hinaus eine Eingabe BW/R, die angibt, ob ein Systembuszyklus ein Lese- oder ein Schreibzyklus ist. Wie noch beschrieben wird, wird BW/R zwar in einem Ausführungsbeispiel der Erfindung genutzt, ist jedoch kein wesentliches Signal.
  • Der Decodierer CADR empfängt außer seinen Eingaben von den Bits A17-A26 und A31 des CPULBA programmierbare Cachefähigkeits-Bits (PCB, Programmable Cacheability Bits). In einem tatsächlich gebauten Ausführungsbeispiel repräsentiert das erste dieser drei Bits eine Entscheidung, das Cachen von ROM-Platz zuzulassen. Ein zweites Bit ermöglicht es dem Decodierer CADR, je nach der decodierten Information das Signal NCA zu geben oder aber alle Zugriffe für nicht cachefähig zu erklären, d. h. unabhängig von der angegebenen Adresse auf dem CPULBA das Signal NCA zu geben. Das dritte Bit schließlich gibt in einem Zustand an, daß der Adreßraum zwischen 0 und 8 Megabyte cachefähig ist und der Adreßraum zwischen 8 und 16 Megabyte nicht cachefähig ist. In dem anderen Zustand gibt das Bit an, daß der ganze Adreßraum im Bereich von 0 bis 16 Megabyte cachefähig ist. Auf Wunsch kann der Effekt dieses Bits multipliziert werden, indem der Status der ersten 16 Megabyte einfach auf die nachfolgenden 16-Megabyte-Bereiche reflektiert wird. Natürlich ist die Verwendung dieser besonderen (oder anderer) Indikatoren der Cachefähigkeit für die Erfindung nicht wesentlich. Wichtig ist jedoch, den CADR so zu arrangieren, daß er schnell seine Eingaben decodieren und das Signal NCA generieren kann. In einem tatsächlich gebauten Ausführungsbeispiel war das Timing-Fenster für die Erzeugung von NCA aus gültigen Adressen auf dem CPULBA sehr kurz und lag in der Größenordnung von zehn Nanosekunden.
  • Ein weiterer großer Unterschied zwischen Fig. 3 und Fig. 4 liegt darin, daß das typische Gerät MAD nun nicht ein einzelnes Signal BS16 generiert (wie es in Fig. 3 der Fall ist), sondern zwei Signale, CS32 und CS16. Dadurch kann sich das MAD als 32-Bit-, 16-Bit- oder 8-Bit-Gerät identifizieren. Das Signal CS32 wird einem Flipflop FF eingegeben, der nun dazu dient, das Signal BS16 zu generieren, das sich in einem Zustand befindet, wenn das MAD ein 32-Bit-Gerät ist, und in einem anderen Zustand, wenn das MAD ein 8-Bit- oder ein 16- Bit-Gerät ist. Wenn weder CS32 noch CS16 von dem Gerät generiert werden, dann handelt es sich bei dem Gerät standardmäßig um ein 8-Bit-Gerät.
  • Die logischen Gleichungen, auf die oben Bezug genommen wurde, sind nachstehend wiedergegeben. In diesem Material haben die Symbole folgende Bedeutung:
  • Symbol Definition
  • / Negation := Ein registrierter Term, gleich
  • = Ein kombinatorischer Term, gleich
  • & Logisch UND
  • + Logisch ODER
  • Logische Gleichungen
  • /BT2:=BUSCYC385 & PIPECYC385 & /BADS & CLK & BT2 (1)
  • + BUSCYC385 & /PIPECYC385 & BADS & CLK & NACACHE & BT2
  • + MISS1 & /BUSCYC385 & /BADS & /(BW/R) & CLK & NCA & /BREADY
  • + /MISS1 & /BREADY & /BUSCYC385 & CLK & /BT2 & BREADY & NACACHE
  • + /CLK & /BT2
  • /BUSCYC385:=BUSCYC385 & /BADS & CLK (2)
  • + BUSCYC385 & /PIPECYC385 & CLK
  • + BUSCYC385 & /BT2 & CLK
  • + /BUSCYC385 & BREADY
  • + /BUSCYC385 & /CLK
  • /CPUNA:=/MISS1 & CLK & CPUNA & /NACACHE (3)
  • + /MISS1 & CLK & CPUNA & /BREADY & /BUSCYC385
  • + /CPUNA & /CLK
  • + /CPUNA & /MISS1 & CLK
  • + /CPUNA & CLK & BREADY
  • + /CPUNA & BUSCYC385 & NACACHE & CLK
  • /MISS1:=MISS1 & BUSCYC385 & CPUNA & /BADS & /(BW/R) & CLK & NCA (4)
  • + MISS1 & /BUSCYC385 & /BADS & /(BW/R) & CLK & NCA & /BREADY
  • + /MISS1 & /CLK
  • + /MISS1 & BREADY
  • /PIPECYC385:=PIPECYC385 & /BADS & /BUSCYC385 & CLK & /BREADY (5)
  • + PIPECYC385 & /MISS1 & BT2 & /BUSCYC385 & CLK & /BREADY
  • + /PIPECYC385 & /CLK
  • In den obigen logischen Gleichungen werden folgende Signale beschrieben oder in den zitierten Intel-Publikationen erwähnt:
  • BADS
  • BREADY
  • (BW/R) wird tatsächlich als BW/R bezeichnet; die Klammer soll darauf hinweisen, daß der gesamte Term ein einziges Signal ist
  • CLK
  • (W/R) wird tatsächlich als W/R bezeichnet; die Klammer soll darauf hinweisen, daß der gesamte Term ein einziges Signal ist
  • BADS weist im aktiven Zustand auf eine Adresse auf dem lokalen Bus 230 hin. BREADY ist ein Bereitschaftssignal vom Systembus 250 an den lokalen CPU-Bus 230. BW/R definiert einen Schreib- oder Lesevorgang auf dem Systembus 250. CLK ist ein Prozessortaktsignal, das mit dem Prozessor 225 phasengleich ist. (W/R) ist das konventionelle Lese- oder Schreibsignal für den lokalen CPU-Bus 230.
  • Die Gleichungen (1) bis (5) definieren:
  • BT2
  • BUSCYC385
  • CPUNA
  • MISS1
  • PIPECYC385
  • anhand der definierten Signale, der in den genannten Intel- Publikationen beschriebenen oder erwähnten Signale sowie NCA und NACACHE. BT2 reflektiert den Zustand des Systembusses 250. Der Zustand BT2 ist ein Zustand, der in den genannten Intel-Publikationen definiert ist.
  • BUSCYC385 reflektiert ebenfalls den Zustand des Systembusses 250. Es ist hoch für die Buszustände BTI, BT1, BT1P und niedrig für die Buszustände BT2, BT2P und BT2I. (Dies sind wiederum Buszustände, die in den genannten Intel- Publikationen erwähnt werden.)
  • CPUNA ist ein Signal an den 80386, das Pipeline-Operationen zuläßt. Dies ist das Signal, das das Signal NA vom 82385 ersetzt.
  • MISS1 ist aktiv, indem es den ersten Zyklus in einem Doppelzyklus zur Behandlung von 64-Bit-Lesevorgängen auf cachefähigen Geräten definiert.
  • PIPECYC385 ist während BTIP aktiv (eines Buszustands, der in den genannten Intel-Publikationen erwähnt wird).
  • NCA ist ein Signal, das durch Decodieren der Adreßkomponente auf dem lokalen CPU-Bus 230 erzeugt wird und einen nicht cachefähigen Zugriff reflektiert, wenn es aktiv ist. Die Cachefähigkeit wird anhand einer Etikettenkomponente (A31 bis A17) und programmierbarer Informationen bestimmt, die definieren, welche Etiketten (wenn überhaupt) sich auf cachefähige im Gegensatz zu nicht cachefähigen Adressen beziehen.
  • NACACHE ist ein Signal, das dem Signal BNA ähnelt. BNA ist ein vom System generiertes Signal, das eine nächste Adresse vom lokalen CPU-Bus 230 anfordert, und wird in den genannten Intel-Publikationen erwähnt. NACACHE unterscheidet sich von BNA nur dadurch, daß BNA für einen 32K-Cache erstellt wird, während NACACHE für einen 64K-Cache erstellt wird. Solange der Cachespeicher 32K groß ist, wie in den Intel- Publikationen genannt, könnte das hier erwähnte NACACHE- Signal durch das BNA-Signal ersetzt werden.
  • Überprüft man die Gleichung 3, finden sich die gesetzten Terme in den Zeilen 1 und 2. Der Term auf Zeile 1 weist auf eine Pipeline-Operation hin. /MISS1 verweist auf eine 32-Bit- Operation (wird noch beschrieben), und daher ist CPUNA angemessen. Der Term in Zeile 2 ist ein Zyklus, der vorzeitig ohne Pipelining endet, z. B. /BREADY. In der Gleichung 4 sind die Terme in den Zeilen 1 und 2 die gesetzten Terme. Beide hängen von NCA ab.
  • Fig. 5 ist ein detailliertes Blockdiagramm einer Vorrichtung, die zu dem Puffer und Decodierer 267 (zum Bus 270 gehörend) und dem Puffer 253 (zu einem Micro-ChannelTM-Bus 320 gehörend) gehört. Wie bereits beschrieben wurde, liefert die Vorrichtung in Fig. 4 zwei 16-Bit-Zyklen, wenn 32-Bit-Zyklen zu 8- oder 16-Bit-Geräten geleitet werden, und zwar in einer Weise, die für den 82385 transparent ist. Die Vorrichtung in Fig. 5 dient zur Generierung von zwei 8-Bit-Zyklen für jeden 16-Bit-Zyklus, der zu einem 8-Bit-Gerät geleitet wird, in einer Weise, die für den 80386 transparent ist.
  • Im einzelnen umfaßt die Vorrichtung eine Steuerungslogik CLA, einen Sequentialisierer S und einen gesteuerten Koppler ALS, der ausgewählte Datenleitungen mit anderen Datenleitungen koppelt. Im einzelnen können unter der Steuerung des Signals DIR und /G, wie in Fig. 5 gezeigt, die unteren acht Bits (D0- D7) mit dem zweiten 8-Bit-Segment (D8-D15) gekoppelt werden. Ferner wird die Richtung der Übertragung (von links nach rechts oder umgekehrt) ebenfalls durch DIR gesteuert.
  • Im einzelnen werden in jedem 16-Bit-Zyklus, der von dem 80386 generiert wird, Daten auf den unteren 16 Bits des Datenbusses plaziert. Um einen von dem 80386 generierten 16-Bit-Zyklus in zwei 8-Bit-Zyklen für den angemessenen MAD zu konvertieren, zwingt die in Fig. 5 gezeigte Hardware die 16-Bit-Operation, für das 8-Bit-Gerät MAD wie zwei 8-Bit-Operationen auszusehen, während die zwei 8-Bit-Zyklen für den 80386 wie ein einzelner 16-Bit-Zyklus aussehen.
  • Die Steuerungslogik CLA führt eine Decodierfunktion für die Konvertierungszyklussteuerung durch. Sie erkennt, wann ein Konvertierungszyklus erfolgen muß, und steuert die Signale GATE 245 und DIR 245 des ALS, die die unteren acht Bits des Datenbusses mit einem zweiten 8-Bit-Segment des Datenbusses verbinden. Die logischen Gleichungen für CLA sind unten aufgeführt. Sobald die Konvertierungszyklusbedingungen erkannt wurden, aktiviert das Signal DATACONV die Sequenz. Wenn das Signal CS16 inaktiv ist, signalisiert es das Vorhandensein eines 8-Bit-Gerätes und somit die Notwendigkeit einer Konvertierung. Wenn es aktiv ist, weist das Signal CS16 auf ein 16- oder 32-Bit-Gerät hin. Q1 wird in der Sequenz verwendet, um das Ende der ersten Hälfte des Konvertierungszyklus anzuzeigen. Die Signale DATACONV und Q1 werden dem Sequentialisierer S eingegeben. Der Sequentialisierer S erfüllt zwei Funktionen. Die eine besteht darin, den 80386 nicht vor dem Beginn der zweiten Zyklushälfte in Bereitschaft zu halten. ARDYEN wird auf logisch 1 gesteuert, um dem 80386 zu signalisieren, daß der Zyklus nicht beendet werden soll. Der Sequentialisierer stimuliert auch das Ende eines 8-Bit-Zyklus am Beginn eines zweiten. ALTALE taktet eine logische 1 auf die A0- Adreßleitung und veranlaßt einen Neustart des Wartezustandsgenerators. CMTLOFF veranlaßt, daß das aktive Befehlssignal inaktiv und dann wieder aktiv wird, um das Ende eines Zyklus und den Beginn eines anderen zu stimulieren. CONVA0 dient als Eingabe für den A0-Adreßsignalspeicher, um A0 für die zweite Hälfte des Konvertierungszyklus auf eine logische 1 zu zwingen.
  • Der abgeschlossene 16-zu-8-Bit-Konvertierungszyklus entspricht in Zeit und Funktion zwei aufeinanderfolgenden 8- Bit-Zyklen.
  • Die oben erwähnten und in Fig. 5 dargestellten Signale sind wie folgt definiert:
  • MEMCS16 Auswahl eines 16-Bit-Speicher-Gerätes
  • (I/OCS16) Auswahl eines 16-Bit-I/O-Gerätes. Die Klammer deutet an, daß der Ausdruck sich auf ein einzelnes Signal bezieht.
  • AEN1, AEN2 Adreßfreigaben von DMA-Steuerungseinheiten
  • MEMR, MEMW, IOR, IOW CPU-Befehlssignale
  • XBHE Bus-Hoch-Freigabe. Gibt an, wann Daten auf einem oberen 8-Bit-Segment des Datenbusses erscheinen sollen.
  • XA0 Unterste Adreßbestelleitung
  • Q1 Ausgabe des Wartezustandsgenerators (2. Statusausgabe)
  • D0-D7 Unterstes 8-Bit-Segment des Datenbusses
  • D8-D15 Zweites 8-Bit-Segment des Datenbusses
  • ARDYEN Asynchrone Bereitschaftsfreigabe für 82284. Fügt Wartezustände im Konvertierungszyklus HINZU, um die Generierung von zwei 8-Bit-Zyklen zu ermöglichen.
  • ALT ALE (aktiv bei H-Pegel) Anderer Adreßsignalspeicher. Benutzer taktet A0 auf eine logische 1 und startet den Wartezustandsgenerator für die zweite 8-Bit-Übertragung neu.
  • CONV.A0 (aktiv bei H-Pegel) Konvertierungszyklus A0. Liefert eine logische 1 an den A0- Adreßsignalspeicher, so daß A0 sich für den zweiten 8-Bit-Zyklus inkrementiert.
  • CNTLOFF Steuerung aus. Schaltet das aktive Befehlssignal für drei Takte aus, um das Ende des einen 8-Bit- Zyklus und den Beginn des zweiten 8-Bit-Zyklus zu simulieren. CNTLOFF dient auch dazu, den unteren Datenbus (während eines Lesezyklus) bei der ersten 8-Bit-Übertragung an die CPU zu leiten.
  • Logische Gleichungen
  • /GATE 245:= MEMCS16 & AEN1 & AEN2 & /MEMR & /XBHE & XA0 (6)
  • + MEMCS16 & AEN1 & AEN2 & /MEMW & /XBHE & XA0
  • + (I/OCS16) & AEN1 & AEN2 & /IOR & /XBHE & XA0
  • + (I/OCS16) & AEN1 & AEN2 & /IOW & /XBHE & XA0
  • + /AEN1 & /MEMCS16 & /XBHE & /IOR
  • + /AEN1 & /MEMCS16 & /XBHE & /MEMR
  • /D1R245:= /AEN1 & /MEMR (7)
  • + AEN1 & AEN2 & /XBHE & /MEMW
  • + AEN1 & AEN2 & /XBHE & /IOW
  • /DATA CONV:=MEMCS16 & AEN1 & AEN2 & /MEMR & Q1 & /XBHE & /XA0 (8)
  • + MEMCS16 & AEN1 & AEN2 & /MEMW & Q1 & /XBHE & /XA0
  • + (I/OCS16) & AEN1 & AEN2 & /IOR & Q1 & /XBHE & /XA0
  • + (I/OCS16) & AEN1 & AEN2 & /IOW & Q1 & /XBHE & /XA0
  • Fig. 7 zeigt ein Detail des Signalspeichers DL, die Dateneingabe/ausgabeverbindungen zwischen dem Systembus 250 und dem lokalen CPU-Bus 230 sowie das Steuerungssignal LEDMA. Fig. 6 setzt das Signal LEDMA in Beziehung zu anderen Signalen auf dem lokalen CPU-Bus 230 (im oberen Drittel von Fig. 6, gekennzeichnet mit der Legende "Signale auf dem lokalen Bus des 82385 bei 25 MHz"), zu Signalen auf dem Bus 320 für Zusatzeinrichtungen (gekennzeichnet durch den Hinweis "Micro-ChannelTM") und Signalen auf dem Systembus 250 (im unteren Drittel, gekennzeichnet durch die Legende "DMA- Signale"). Wie im oberen Drittel von Fig. 6 angegeben ist der lokale CPU-Bus 230 ein synchron getakteter Bus. (Die Takte CPUCLK 2 und CPUCLK verhalten sich zueinander wie angegeben.) Der mittlere Teil (der den Hauptteil von Fig. 6 umfaßt) zeigt einen einzelnen Zyklus auf dem lokalen CPU-Bus 230. Der Beginn des Zyklus wird durch die vertikale Linie ganz links angedeutet, das Ende des Zyklus durch die vertikale Linie ganz rechts. Wie in Fig. 6 im mittleren Drittel gezeigt, werden bei einem Zyklus, der sich über den Systembus 250 bis zu dem Bus 320 erstreckt, die Befehlssignale SS0* und SS1* aktiv (L-Pegel), sobald ein Zyklus auf dem lokalen CPU-Bus 230 begonnen hat. Kurz darauf wird eine Adresse in dem Puffer 253 (bezeichnet mit ADL*) gespeichert. Daraufhin wird das Signal CMD* ebenfalls aktiv (L-Pegel). Dieser Punkt definiert den Beginn des DMA-Zyklus auf dem Systembus 250 und dem Bus 320 für Zusatzeinrichtungen. Dies wird angedeutet durch die Verlängerung der dritten vertikalen Linie (von links), die sich in das untere Drittel von Fig. 6 hinein fortsetzt. Kurz nach dem Beginn des DMA-Zyklus werden die Signale DMAS0 und DMAS1 aktiv (L-Pegel). Wie in Fig. 6 zu sehen ist, verändert das Signal DMARDY* daraufhin seinen Zustand. Beim nächsten Übergang in DMARDY* (zum L-Pegel) werden die benötigten Daten auf dem Systembus 250 gefunden. Daher verändert das Signal LEDMA seinen Zustand (Übergang zum H-Pegel). Dies bewirkt, daß die Daten auf dem Systembus 250 in dem Signalspeicher DL gespeichert werden. Derselbe Übergang, der zu der Zustandsveränderung von LEDMA geführt hat, wirkt sich auch auf BREADY* aus (angezeigt durch den Pfeil in Fig. 6). Sobald, mit anderen Worten, DMARDY* mit L-Pegel erfaßt wird, sind die benötigten Daten bereits in dem Signalspeicher DL gespeichert, und der DMA-Kanal hat den Bus 250 freigegeben. Wie in Fig. 6 gezeigt führt somit der Übergang in DMARDY* zu einem Übergang in BREADY*. Beim nächsten darauf folgenden Übergang von BT2 zum H-Pegel kann der CPU-Zyklus gefahrlos enden. (Dies ist in Fig. 6 die vertikale Linie ganz rechts.) Wie in Fig. 6 gezeigt führt die Beendigung des CPU-Zyklus zu einer Zustandsveränderung bei CMD* (auf dem Micro-ChannelTM- Bus 320) und wirkt sich auch auf die Freigabe von LEDMA aus, da die CPU 225 bei der Beendigung des Zyklus die Daten aus dem Signalspeicher DL akzeptiert hat.
  • Das Obengesagte verdeutlicht, daß vor der Beendigung des CPU- Zyklus und als Voraussetzung für die Beendigung des CPU- Zyklus die Beendigung des DMA-Zyklus stattfindet. Dies garantiert, daß bei der Einleitung eines folgenden Zyklus durch die CPU (rechts der vertikalen Linie ganz rechts in Fig. 6) der DMA-Zyklus bereits beendet ist und daher der Bus frei von allen Daten ist, die eventuell während des DMA- Zyklus zu ihm geleitet wurden. Die Erfindung bietet somit eine Anpassung zwischen dynamischen Busgrößen (die die Flexibilität ermöglichen, die für den Micro-ChannelTM-Bus 320 notwendig sind) und Pipeline-Operationen durch die ausgewählte Generierung von CPUNA zur angemessenen Zeit. Wie bereits angedeutet hängt CPUNA einerseits von der Entdeckung eines cachefähigen Zugriffs ab, wenn CPUNA vor dem Abschluß des laufenden Zyklus erzeugt wird. Andererseits wird das Pipelining zurückgehalten, wenn wenn ein nicht cachefähiger Zugriff entdeckt wird, d. h. CPUNA wird erst gegeben, wenn der Systembus 250 angibt, daß der Zyklus abgeschlossen ist (BREADY gegeben wird).
  • Gleichzeitig erfolgt eine Anpassung zwischen dem synchronen DMA-Mechanismus und dem synchronen (aber von einem anderen Takt gesteuerten) lokalen CPU-Bus über den Puffer DL. Während der DMA-Zyklus durch den lokalen CPU-Bus 230 eingeleitet wird, endet der Zyklus auf dem lokalen CPU-Bus 230 erst nach der Beendigung des DMA-Zyklus.

Claims (7)

1. Ein Datenverarbeitungsgerät, umfassend
eine Befehlsausführungseinheit (225, 80386) mit einer gegebenen Bitbreite,
ein asynchrones Mittel (225, 80386) zur Generierung der nächsten Adresse, das in der Lage ist, wenn es aktiviert ist, die Adresse des nächsten Befehls zu generieren, der von der Befehlsausführungseinheit während der Ausführung des derzeit ausgeführten Befehls benötigt wird, wodurch Befehle vorgeholt werden können,
ein Mittel (240, DL, AL) zum Anschluß der Ausführungseinheit an adressierbare Systemkomponenten von gleicher und/oder geringerer Bitbreite, wobei sich die Systemkomponentenadressen innerhalb eines bestimmten festgelegten Bereichs von Systemkomponentenadressen ausschließlich auf Komponenten mit derselben Bitbreite wie die der Ausführungseinheit beziehen,
ein Mittel (CL) zur Generierung eines Signals Nächste Adresse (CPUNA) als Funktion der Ausführung des derzeit ausgeführten Befehls zur Freigabe des Mittels zur Generierung der nächsten Adresse und
ein Mittel (CADR) zur Generierung eines Steuerungssignals (NCA), wenn die Ausführung eines Befehls, der sich auf eine Adresse außerhalb des festgelegten Bereichs bezieht, erkannt wird, wobei das Gerät dadurch gekennzeichnet ist, daß
als Reaktion auf ein derartiges Steuerungssignal das Mittel zur Generierung eines Signals Nächste Adresse inhibiert wird.
2. Ein Gerät nach Anspruch 1, bei dem die Befehlsausführungseinheit und das Adressengenerierungsmittel zwei Einheiten innerhalb eines Mikroprozessors (225, 80386) sind, wobei der Mikroprozessor an ein Cachespeichersubsystem angeschlossen ist, das eine Cachesteuerungseinheit (260, 82385) und einen Cachespeicher (255) mit der gegebenen Bitbreite umfaßt, und zwar durch einen lokalen Bus (230) mit der gegebenen Bitbreite, der auch an einen Systembus (250) angeschlossen ist, der mit den adressierbaren Systemkomponenten verbunden ist, wobei das Cachespeichersubsystem Daten nur bei diesen Systemkomponenten innerhalb des festgelegten Adreßbereichs cacht, wobei das Mittel, das das Signal Nächste Adresse generiert, zwischen der Cachesteuerungseinheit und dem Adressengenerierungsmittel angeschlossen ist.
3. Ein Gerät nach Anspruch 2, bei dem das Mittel (CL), das das Signal Nächste Adresse generiert, in Abwesenheit jeglicher Aktion des Mittels zur Generierung eines Steuerungssignals freigegeben wird durch ein Signal (BADS) von der Cachesteuerungseinheit, das anzeigt, daß es auf dem lokalen Bus keine gültige Adresse gibt, und durch ein Signal (BNA) vom System, das anzeigt, daß eine nächste Adresse von dem lokalen Bus benötigt wird.
4. Ein Gerät nach Anspruch 3, bei dem das Mittel zur Generierung eines Steuerungssignals einen Adressendecodierer umfaßt, der an die Adreßleitungen (CPULBA) des lokalen Busses angeschlossen ist, um festzustellen, ob eine Adresse auf diesem Bus innerhalb des festgelegten Bereichs liegt, und als Reaktion auf die Feststellung, daß sie nicht in diesem Bereich liegt, ein Signal (NCA) erzeugt, um das Mittel (CL) zu deaktivieren, das das Signal Nächste Adresse generiert.
5. Ein Gerät nach Anspruch 4, bei dem das Mittel zur Generierung eines Steuerungssignals auch auf ein vom System generiertes Signal (NACACHE) reagiert, das anzeigt, daß die auf dem lokalen Bus angegebene Adresse
- selbst wenn sie innerhalb des festgelegten Bereichs liegt - nicht cachefähig ist, um ein Signal zur Deaktivierung des Mittels zu generieren, das das Signal Nächste Adresse generiert.
6. Ein Gerät nach Anspruch 5, bei dem der Mikroprozessor auf ein Signal (CS32, BS16) reagiert, das anzeigt, daß eine adressierte Systemkomponente die halbe Bitbreite des Mikroprozessors aufweist, um einen doppelten Ausführungszyklus zu programmieren, wobei eine Logik (CLA, S, ALS) bereitgestellt wird, die auf Signalkombinationen (CS16) reagiert, die anzeigen, daß eine adressierte Systemkomponente ein Viertel der Bitbreite des Mikroprozessors aufweist, um den Ausführungszyklus wieder zu verdoppeln, und zwar transparent für den Mikroprozessor.
7. Ein Verfahren zum Betrieb eines Datenverarbeitungssystems, umfassend eine Befehlsausführungseinheit (225, 80386) mit einer gegebenen Bitbreite, ein asynchrones Mittel (225, 80386) zur Generierung der nächsten Adresse, das in der Lage ist, wenn es aktiviert ist, die Adresse des nächsten Befehls zu generieren, der von der Befehlsausführungseinheit während der Ausführung des derzeit ausgeführten Befehls benötigt wird, wodurch Befehle vorgeholt werden können, und ein Mittel (240, DL, AL) zum Anschluß der Ausführungseinheit an adressierbare Systemkomponenten von gleicher und/oder geringerer Bitbreite, wobei das Verfahren umfaßt:
Zuweisen von Systemkomponentenadressen innerhalb eines festgelegten Bereichs ausschließlich an Komponenten mit derselben Bitbreite wie die der Ausführungseinheit,
Generieren eines Signals Nächste Adresse (CPUNA) als Funktion der Ausführung des derzeit ausgeführten Befehls zur Freigabe der frühzeitigen Generierung der nächsten Adresse und daher des Befehlsvorholens, und
Generieren eines Steuerungssignals (NCA), wenn die Ausführung eines Befehls hinsichtlich einer Adresse außerhalb des festgelegten Adreßbereichs entdeckt wird,
wobei das Verfahren dadurch gekennzeichnet ist, daß
als Reaktion auf die Generierung eines solchen Steuerungssignals die Generierung des Signals Nächste Adresse inhibiert wird.
DE68918754T 1988-05-26 1989-05-25 Datenverarbeitungsgerät mit selektivem Befehlsvorausholen. Expired - Fee Related DE68918754T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/198,894 US5125084A (en) 1988-05-26 1988-05-26 Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller

Publications (2)

Publication Number Publication Date
DE68918754D1 DE68918754D1 (de) 1994-11-17
DE68918754T2 true DE68918754T2 (de) 1995-04-27

Family

ID=22735315

Family Applications (2)

Application Number Title Priority Date Filing Date
DE3914265A Granted DE3914265A1 (de) 1988-05-26 1989-04-29 Steuerung des fliessbandbetriebs in einem dynamische busanpassung anwendenden mikrocomputersystem
DE68918754T Expired - Fee Related DE68918754T2 (de) 1988-05-26 1989-05-25 Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE3914265A Granted DE3914265A1 (de) 1988-05-26 1989-04-29 Steuerung des fliessbandbetriebs in einem dynamische busanpassung anwendenden mikrocomputersystem

Country Status (25)

Country Link
US (1) US5125084A (de)
EP (1) EP0343988B1 (de)
JP (1) JPH0623960B2 (de)
KR (1) KR930002321B1 (de)
CN (1) CN1009589B (de)
AR (1) AR242671A1 (de)
AT (1) ATE112869T1 (de)
AU (1) AU615055B2 (de)
BE (1) BE1002768A4 (de)
BR (1) BR8902393A (de)
CA (1) CA1313274C (de)
DE (2) DE3914265A1 (de)
DK (1) DK169492B1 (de)
ES (1) ES2063818T3 (de)
FI (1) FI95175C (de)
FR (1) FR2632090A1 (de)
GB (2) GB8904921D0 (de)
HK (1) HK11492A (de)
IT (1) IT1230207B (de)
MX (1) MX173139B (de)
MY (1) MY104738A (de)
NL (1) NL8901326A (de)
NO (1) NO174788B (de)
SE (1) SE8901307L (de)
SG (1) SG110691G (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2504206B2 (ja) * 1989-07-27 1996-06-05 三菱電機株式会社 バスコントロ―ラ
CA2023998A1 (en) * 1989-11-13 1991-05-14 Thomas F. Lewis Apparatus and method for guaranteeing strobe separation timing
US5517626A (en) * 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
JP3215105B2 (ja) * 1990-08-24 2001-10-02 富士通株式会社 メモリアクセス装置
GB9018992D0 (en) * 1990-08-31 1990-10-17 Ncr Co Internal bus for work station interfacing means
US5274763A (en) * 1990-12-28 1993-12-28 Apple Computer, Inc. Data path apparatus for IO adapter
CA2060820C (en) * 1991-04-11 1998-09-15 Mick R. Jacobs Direct memory access for data transfer within an i/o device
GB2256296B (en) * 1991-05-31 1995-01-18 Integrated Device Tech Multiplexed status and diagnostic pins in a microprocessor with on-chip caches
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5630163A (en) * 1991-08-09 1997-05-13 Vadem Corporation Computer having a single bus supporting multiple bus architectures operating with different bus parameters
JP2599539B2 (ja) * 1991-10-15 1997-04-09 インターナショナル・ビジネス・マシーンズ・コーポレイション 直接メモリ・アクセス装置及びルック・アヘッド装置
JP2836321B2 (ja) * 1991-11-05 1998-12-14 三菱電機株式会社 データ処理装置
US5317712A (en) * 1991-12-19 1994-05-31 Intel Corporation Method and apparatus for testing and configuring the width of portions of a memory
JPH07504773A (ja) * 1992-03-18 1995-05-25 セイコーエプソン株式会社 マルチ幅のメモリ・サブシステムをサポートするためのシステム並びに方法
US5307475A (en) * 1992-06-29 1994-04-26 The United States Of America As Represented By The Secretary Of The Navy Slave controller utilizing eight least/most significant bits for accessing sixteen bit data words
US5313593A (en) * 1992-09-17 1994-05-17 International Business Machines Corp. Personal computer system with bus noise rejection
JPH0827773B2 (ja) * 1992-10-23 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データ経路を使用可能にする方法、装置およびデータ処理システム
JP3369227B2 (ja) * 1992-11-09 2003-01-20 株式会社東芝 プロセッサ
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
JPH07210537A (ja) * 1993-12-10 1995-08-11 Advanced Micro Devicds Inc コンピュータシステム
US5835960A (en) * 1994-01-07 1998-11-10 Cirrus Logic, Inc. Apparatus and method for interfacing a peripheral device having a ROM BIOS to a PCI bus
US5548733A (en) * 1994-03-01 1996-08-20 Intel Corporation Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system
US5784579A (en) * 1994-03-01 1998-07-21 Intel Corporation Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth
US5842041A (en) * 1994-05-20 1998-11-24 Advanced Micro Devices, Inc. Computer system employing a control signal indicative of whether address is within address space of devices on processor local bus
JP3153078B2 (ja) * 1994-09-09 2001-04-03 日本電気株式会社 データ処理装置
JP2630271B2 (ja) * 1994-09-14 1997-07-16 日本電気株式会社 情報処理装置
US5890216A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Apparatus and method for decreasing the access time to non-cacheable address space in a computer system
US5758188A (en) * 1995-11-21 1998-05-26 Quantum Corporation Synchronous DMA burst transfer protocol having the peripheral device toggle the strobe signal such that data is latched using both edges of the strobe signal
US6504854B1 (en) 1998-04-10 2003-01-07 International Business Machines Corporation Multiple frequency communications
US6725348B1 (en) * 1999-10-13 2004-04-20 International Business Machines Corporation Data storage device and method for reducing write misses by completing transfer to a dual-port cache before initiating a disk write of the data from the cache
JP3857661B2 (ja) * 2003-03-13 2006-12-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、プログラム、及び記録媒体
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US8825962B1 (en) 2010-04-20 2014-09-02 Facebook, Inc. Push-based cache invalidation notification
CN113514408B (zh) * 2021-06-28 2024-06-11 杭州谱育科技发展有限公司 具有校正功能的臭氧检测装置及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4016541A (en) * 1972-10-10 1977-04-05 Digital Equipment Corporation Memory unit for connection to central processor unit and interconnecting bus
US4314334A (en) * 1977-08-30 1982-02-02 Xerox Corporation Serial data communication system having simplex/duplex interface
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US4503534A (en) * 1982-06-30 1985-03-05 Intel Corporation Apparatus for redundant operation of modules in a multiprocessing system
US4649476A (en) * 1983-10-31 1987-03-10 Motorola, Inc. Microcomputer having an internal address mapper
JPS6240555A (ja) * 1985-08-16 1987-02-21 Fujitsu Ltd プリフエツチ制御方式
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
US4933845A (en) * 1987-09-04 1990-06-12 Digital Equipment Corporation Reconfigurable bus
CA1315011C (en) * 1987-09-28 1993-03-23 Paul R. Culley System for fast selection of non-cacheable address ranges using programmed array logic
CA1314104C (en) * 1987-09-28 1993-03-02 Paul R. Culley Executing code from slow rom on high speed computer compatible with slower speed computers

Also Published As

Publication number Publication date
AU615055B2 (en) 1991-09-19
AU3409989A (en) 1989-11-30
KR890017604A (ko) 1989-12-16
BE1002768A4 (fr) 1991-06-04
EP0343988A2 (de) 1989-11-29
HK11492A (en) 1992-02-21
IT8920648A0 (it) 1989-05-25
FI95175B (fi) 1995-09-15
ES2063818T3 (es) 1995-01-16
DE3914265C2 (de) 1992-01-09
CN1037976A (zh) 1989-12-13
DK169492B1 (da) 1994-11-07
DK189489D0 (da) 1989-04-19
KR930002321B1 (ko) 1993-03-29
JPH02146645A (ja) 1990-06-05
MX173139B (es) 1994-02-02
AR242671A1 (es) 1993-04-30
SE8901307L (sv) 1989-11-27
GB2219110B (en) 1991-02-20
EP0343988A3 (de) 1991-01-30
EP0343988B1 (de) 1994-10-12
BR8902393A (pt) 1990-01-16
NO891584D0 (no) 1989-04-18
GB8904921D0 (en) 1989-04-12
NO891584L (no) 1989-11-27
NO174788C (de) 1994-07-13
JPH0623960B2 (ja) 1994-03-30
NL8901326A (nl) 1989-12-18
IT1230207B (it) 1991-10-18
CN1009589B (zh) 1990-09-12
GB8912018D0 (en) 1989-07-12
CA1313274C (en) 1993-01-26
DE68918754D1 (de) 1994-11-17
FR2632090A1 (fr) 1989-12-01
SG110691G (en) 1992-02-14
MY104738A (en) 1994-05-31
SE8901307D0 (sv) 1989-04-11
DK189489A (da) 1989-11-27
GB2219110A (en) 1989-11-29
NO174788B (no) 1994-03-28
ATE112869T1 (de) 1994-10-15
FI891787A (fi) 1989-11-27
FI891787A0 (fi) 1989-04-14
FI95175C (fi) 1995-12-27
US5125084A (en) 1992-06-23
DE3914265A1 (de) 1989-11-30

Similar Documents

Publication Publication Date Title
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE68926936T2 (de) Vorrichtung und Technik für Burstprogrammierung
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE69124905T2 (de) Datenverarbeitungsvorrichtung zur dynamischen Zeiteinstellung in einem dynamischen Speichersystem
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE69028066T2 (de) Kombinierte synchrone und asynchrone Speichersteuerung
DE68910391T2 (de) Verfahren zum Speicherdatenzugriff.
DE3887324T2 (de) Speicheranordnung.
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE68927492T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten
DE69032812T2 (de) Vorrichtung und Verfahren zur parallelen Verarbeitung
DE4010384C2 (de) Verfahren zur Burst-Datenübertragung
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69710515T2 (de) Verfahren und Vorrichtung zur Bestimmung von Wartezuständen auf einer Zyklusbasis in einem Datenverarbeitungssystem
DE69333319T2 (de) Datenverarbeitungssystem mit synchronem, dynamischem Speicher in integrierter Schaltkreistechnik
DE2944419C2 (de)
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE2755616A1 (de) Asymmetrischer multiprozessor
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE68922545T2 (de) Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen.
DE3850514T2 (de) Cachespeicher mit Treffervorhersagelogik.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee