DE68922784T2 - Mehrfachbus-Mikrorechnersystem mit Busarbitrierung. - Google Patents

Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.

Info

Publication number
DE68922784T2
DE68922784T2 DE68922784T DE68922784T DE68922784T2 DE 68922784 T2 DE68922784 T2 DE 68922784T2 DE 68922784 T DE68922784 T DE 68922784T DE 68922784 T DE68922784 T DE 68922784T DE 68922784 T2 DE68922784 T2 DE 68922784T2
Authority
DE
Germany
Prior art keywords
bus
arbitration
signal
system bus
preempt
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
DE68922784T
Other languages
English (en)
Other versions
DE68922784D1 (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 DE68922784D1 publication Critical patent/DE68922784D1/de
Application granted granted Critical
Publication of DE68922784T2 publication Critical patent/DE68922784T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/28Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 for polarising
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B21/00Projectors or projection-type viewers; Accessories therefor
    • G03B21/54Accessories
    • G03B21/56Projection screens
    • G03B21/60Projection screens characterised by the nature of the surface
    • G03B21/604Polarised screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Optics & Photonics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf eine Busarbitrierung in einem Mehrfachbus-Mikrorechner.
  • Hintergrundinformationen zum 80386-Mikroprozessor, seinen Eigenschaften und seiner Verwendung in Mikrorechnersystemen einschließlich Cachespeicher-Subsystemen werden in den Veröffentlichungen der Intel Corporation mit dem Titel "Introduction to the 80386", April 1986, und dem 80386 Hardware-Referenzhandbuch (1986) beschrieben. Die Eigenschaften und die Arbeitsleistung des 82385 Cache-Controllers werden in der Veröffentlichung der Intel Corporation mit dem Titel "82385 High Performance 32-Bit Cache Controller" (1987) beschrieben.
  • New Electronics, Band 20, Nr. 7, März 1987, Seiten 30-33, beschreibt die Verwendung eines 80386-Prozessors und eines 82385-Cachecontrollers in einem Doppelbus-Mikrorechnersystem.
  • Mikrorechnersysteme mit einem Cache-Subsystem unterscheiden sich in ihrer Architektur beträchtlich von Mikrorechnersystemen ohne Cache-Subsysteme. Mikrorechnersysteme mit einem Cache-Subsystem arbeiten als Doppelbuseinrichtungen. Genauer gesagt existiert in Mikrorechnersystemen mit einem Cache- Subsystem ein erster Bus (genannt CPU lokaler Bus), der die CPU, den Cachespeicher und die Cachesteuerung miteinander verbindet. Weitere Einrichtungen sind an einen anderen Bus (Systembus) gekoppelt. Solche weiteren Einrichtungen sind beispielsweise der Hauptspeicher, Ein- und Ausgabegeräte und Zusatzgeräte. Zusätzlich zu den zuvor angeführten Einrichtungen kann der Systembus ebenfalls an die Cachesteuerung gekoppelt werden.
  • Das Cache-Subsystem nimmt normalerweise dem Systembus einen großen Teil an Speicherzugriffen ab, die im Fall eines fehlenden Cache-Subsystems vom Systembus ausgeführt werden müßten. Das heißt, in dem Maße wie die CPU vom Cachespeicher Informationen erhalten kann, benötigt die CPU für diesen speziellen Zyklus keinen Zugriff auf den Systembus. Entsprechend können andere Einrichtungen während derselben Zeit den Systembus für andere Arbeiten verwenden. Es wird erwartet, daß dies in einer beträchtlichen Reduzierung der von der CPU verwendeten Systembuszyklen resultiert. Normalerweise ist die Cachesteuerung sowohl an den Systembus als auch an den CPU lokalen Bus gekoppelt, und eine der Funktionen der Cachesteuerung besteht darin, die Arbitrierungsüberwachung zu überwachen, die in den Einzelbussystemen von der CPU überwacht worden war.
  • Ein verfügbarer Cachecontroller, der 82385, hat die Fähigkeit, sowohl im Master- als auch im Slave-Modus zu arbeiten. Wird der 82385 im Master-Modus betrieben und überwacht dieser die Arbitrierungsüberwachung, gibt es für die CPU keinen Mechanismus mehr, der nach den Systembus-Ressourcen greift.
  • Entsprechend ist es ein vorrangiges Ziel der vorliegenden Erfindung, einen Mechanismus bereitzustellen, bei dem eine CPU in einem Mehrfachbus-Mikrorechnersystem mit einem Cachesteuerungselement zur Überwachung der Arbitrierungsüberwachung auf die Systembus-Ressourcen zugreifen kann, die vom Arbitrierungsmechanismus verteilt werden.
  • Die Arbitrierungsüberwachung reagiert auf Arbitrierungsanforderungssignale, die von einer Mehrzahl an Einrichtungen komßend gemeinsam gekoppelt werden. Wenn die Arbitrierungsüberwachung erkennt, daß eine oder mehrere Einrichtungen die gemeinsame Ressource angefordert haben, dann signalisiert sie den Anfang einer Arbitrierungsperiode durch Änderung des Zustands eines Leiters (dem ARB/GRANT), auf den durch alle Einrichtungen ein Zugriff möglich ist. Wenn diese Einrichtungen den sich ändernden Zustand des Leiters erkennen, weil der Beginn einer Arbitrierungsperiode signalisiert wird, dann erzeugen diese Einrichtungen Signale, die ihren jeweiligen Prioritätsstufen entsprechen und eine Mehrzahl an Arbitrierungsleitern treiben, die für diese Funktionen mit diesen Signalen bestimmt sind. Die Verbindung zwischen der Mehrzahl der Einrichtungen und den Arbitrierungsleitern ist so angeordnet, daß die Leiter den Prioritätswert der Schaltung mit der höchsten Priorität, die die Arbitrierungsleiter treibt, annehmen. Durch Vergleich des Prioritätswerts auf den Arbitrierungsleitern mit ihrem eigenen Prioritätswert kann auf diese Weise jede Einrichtung erkennen, ob es eine Einrichtung mit einer höheren Priorität gibt, die Zugriff auf den Bus wünscht. Am Ende einer vorbestimmten Arbitrierungsperiode ändert der ARB/GRANT/-Leiter seinen Status. Dadurch beginnt die Grant-Periode, während der die Einrichtung, deren Prioritätswert derjenige Prioritätswert auf den Arbitrierungsleitern war, die Steuerung der gemeinsamen Ressource annimmt, um einen Buszyklus zu initiieren.
  • Darüber hinaus gibt es einen weiteren Leiter, der für ein PREEMPT-Signal bestimmt ist, das erzeugt werden kann, um eine Einrichtung, die Zugriff auf die Systemressource erhalten hat, zu zwingen, ihren Zugriff zu beenden. Daher muß eine Einrichtung, die Zugriff auf die Systemressource erhalten hat und bei Erkennen eines bestätigten Preempt diese Ressource verwendet, eine ordnungsgemäße Beendigung ihrer Verwendung der Systemressource initiieren. Wenn die Einrichtung, die auf diese Weise belegt wird, ihre Verwendung der gemeinsamen Ressource beendet, beginnt die Arbitrierungsüberwachung mit einer neuen Arbitrierungsperiode, wie dies oben beschrieben wurde.
  • In Mikrorechnersystemen mit einem Cache-Subsystem sind die CPU-Zyklen, die auf den Cache zugreifen (und daher keinen Zugriff auf den Systembus benötigen), Zyklen von minimaler Dauer oder Null-Wartestatus-Zyklen. Wenn die CPU-Zyklen über dieses Minimum hinausgehen, signalisieren sie CPU-Anforderungen für den Systembus. Diese CPU-Zyklen, die länger sind als die minimale Dauer, signalisieren der CPU, daß der Systembus, die gemeinsame Ressource, benötigt wird.
  • In Übereinstimmung mit der vorliegenden Erfindung wird die CPU mit dem Mittel, ein PREEMPT-Signal zu erzeugen, bereitgestellt, das jede Einrichtung, die über den Arbitrierungsmechanismus Zugriff zum Bus erhalten hat, befähigt, diesen Zugriff zu beenden, wie bereits beschrieben wurde. Wie an späterer Stelle noch beschrieben werden wird, wird die Erzeugung des PREEMPT durch die CPU gesteuert, indem ein CPU-Zyklus erkannt wird, der länger ist als ein für eine Cacheadresse benötigter Zyklus.
  • Die Verwendung der Systemressource durch die CPU ist jedoch so eingerichtet, daß so viel Zeit wie möglich eingespart wird. Wenn also eine Einrichtung, die über eine Arbitrierung Zugriff zum Bus erhalten hat, ein Preempt erkennt und eine ordnungsgemäße Beendigung ihres Buszugriffs initiiert, signalisiert sie ihre Beendigung der Verwendung des Busses. Die Arbitrierungsüberwachung reagiert auf diese Anzeige mit der Erzeugung einer neuen Arbitrierungsperiode. Wenn die CPU die Einrichtung war, die das Preempt erzeugt hat, um die Freigabe des Busses anzufordern, reagiert diese anders auf den Beginn einer Arbitrierungsperiode als jede andere Einrichtung, die einen Buszugriff versucht. Zu Beginn einer Arbitrierungsperiode setzt jede der anderen Einrichtungen, die den Zugriff auf den Bus versucht, ihren Prioritätswert auf die Arbitrierungsleiter. Die CPU greift in diesen Prozeß nicht ein; mit dem Beginn der Arbitrierungsperiode erst beginnt die CPU, den Bus zu verwenden.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung, das tatsächlich konstruiert wurde, ist die minimale Arbitrierungsperiode 300 Nanosekunden lang. Ein Null-Wartestatus-Buszyklus ist jedoch weniger als 300 Nanosekunden lang. Entsprechend kann, wann immer die CPU belegt und so Zugriff auf den Systembus erlangt, die CPU gleichzeitig mit dem Arbitrierungsprozeß einen Zyklus vervollständigen.
  • In Übereinstimmung mit der vorliegenden Erfindung wird ein Mehrfachbus-Mikrorechnersystem bereitgestellt, bestehend aus einem Prozessor, einem Cache-Subsystem und einem Cachespeicher mit beliebigem Zugriff, die durch einen CPU lokalen Bus miteinander verknüpft sind, einem Systembus, einer Mehrzahl anderer funktionaler Einheiten, die an den Systembus gekoppelt sind, und einem Mittel, das den genannten CPU lokalen Bus und den genannten Systembus miteinander koppeln, wobei das genannte Cache-Subsystem weiterhin an den genannten Systembus gekoppelt ist und auf Anforderung den Systembus freigibt, charakterisiert durch eine Arbitrierungsüberwachung, die an den genannten Systembus angeschlossen ist und die genannte Freigabe des genannten Systembusses vom genannten Cache-Subsystem anfordert, und dadurch, daß der genannte Systembus eine Mehrzahl an Leitern umfaßt, die zur Arbitrierung des Zugriffs auf den genannten Systembus zur Begrenzung der Dauer des genannten Zugriffs bei Empfang des genannten Preempt-Signals dienen, und durch eine Preempt-Signalquelle mit Eingaben, die auf einen CPU lokalen Buszyklus reagieren, der länger ist als eine minimale Dauer, um ein Preempt-Signal auf dem genannten Systembus zu bestätigen.
  • Es folgt eine beispielhafte Beschreibung eines Ausführungsbeispiel der vorliegenden Erfindung unter Verweis auf die folgenden Begleitzeichnungen:
  • Figur 1 ist eine Gesamtansicht eines typischen Mikrorechnersystems, das die vorliegende Erfindung verwenden kann;
  • Figur 2 ist ein detailliertes Blockdiagramm der Mehrzahl der Komponenten eines typischen Mikrorechnersystems, das die vorliegende Erfindung verwenden kann;
  • Figur 3 stellt dar, wie die Arbitrierungsüberwachung und die CPU in Übereinstimmung mit einem Einzelbus-Mikrorechnersystem verbunden sind;
  • Figur 4 stellt dar, wie die Arbitrierungsüberwachung, die CPU und die Cachesteuerung in Übereinstimmung mit der vorliegenden Erfindung verbunden sind;
  • Figur 5 stellt den Apparat dar, der zur CPU gehört und zur Erzeugung eines Preempt-Signals dient;
  • Figur 6 stellt die Logik dar, die zur CPU gehört und zur Erzeugung eines Signals CPUREQ dient, das zur Erzeugung eines Preempt-Signals durch die CPU verwendet wird;
  • Figur 7 ist ein Timing-Diagramm, das mehrere Arbitrierungsund Grant-Zyklen darstellt, von denen einer durch eine generische Einrichtung Zugriff zum Systembus und von denen ein ande- rer Zugriff zum Systembus durch die CPU über ein PREEMPT- Signal ermöglicht.
  • Figur 8 zeigt das Verhältnis zwischen der zentralen Arbitrierungsüberwachung 335 und den Arbitoren 336, die zu anderen Einrichtungen gehören;
  • Figur 9 und 10 bilden zusammen ein Blockdiagramm einer Arbitrierungsüberwachung 335; und
  • Figur 11 ist ein Timing-Diagramm zur Beschreibung der Arbeitsweise von Figur 8.
  • Figur 1 zeigt ein typisches Mikrorechnersystem, in dem die vorliegende Erfindung verwendet werden kann. Gemäß Darstellung umfaßt das Mikrorechnersystem 10 mehrere Komponenten, die miteinander verbunden sind. Im einzelnen ist eine Systemeinheit an einen Bildschirm 20 (wie beispielsweise eine herkömmliche Videoanzeige) gekoppelt und dient für diesen als Treiber. Die Systemeinheit 30 ist ebenfalls an Eingabegeräte wie beispielsweise eine Tastatur 40 und eine Maus 50 angeschlossen. Ein Ausgabegerät wie beispielsweise ein Drucker 60 kann ebenfalls an die Systemeinheit 30 angeschlossen werden. Schließlich kann die Systemeinheit 30 ein oder mehrere Plattenlaufwerke wie beispielsweise das Plattenlaufwerk 70 umfassen. Wie nachfolgend beschrieben wird, reagiert die Systemeinheit 30 auf Eingabegeräte wie beispielsweise die Tastatur 40 und die Maus 50, und Ein- und Ausgabegeräte wie beispielsweise das Plattenlaufwerk 70 zur Bereitstellung von Signalen, um Ausgabegeräte wie beispielsweise den Bildschirm 20 und den Drucker 60 zu treiben. Natürlich ist dem Fachmann auf diesem Gebiet bewußt, daß andere und herkömmliche Komponenten zur Interaktivität ebenfalls an die Systemeinheit 30 angeschlossen werden können. In Übereinstimmung mit der vorliegenden Erfindung umfaßt das Mikrorechnersystem 10 (wie nachfolgend noch ausführlicher beschrieben werden wird) ein Cachespeicher-Subsystem, so daß es einen CPU lokalen Bus gibt, der mit einem Prozessor verbunden ist, sowie eine Cachesteuerung und einen Cachespeicher, der selbst über einen Puffer an einen Systembus gekoppelt ist. Der Systembus ist mit den Einund Ausgabegeräten wie beispielsweise der Tastatur 40, der Maus 50, dem Plattenlaufwerk 70, dem Bildschirm 20 und dem Drucker 60 interaktiv verbunden. Des weiteren kann die Systemeinheit 30 in Übereinstimmung mit der vorliegenden Erfindung auch einen dritten Bus enthalten, der eine Micro-Channel- Architektur (Micro Channel ist ein Warenzeichen der International Business Machines Corporation) zur interaktiven Verbindung zwischen dem Systembus und anderen Ein- und Ausgabegeräten umfaßt.
  • Figur 2 ist ein Blockdiagramm auf hoher Ebene, das die verschiedenen Komponenten eines Doppelbus-Mikrorechnersystems darstellt. Ein CPU lokaler Bus 230 (bestehend aus Daten, Adressen und Steuerkomponenten) ermöglicht die Verbindung eines Mikroprozessors 225 (wie beispielsweise ein 80386), einer Cachsteuerung 260 (die einen 82385 Cachecontroller enthalten kann) und eines Cachespeichers mit beliebigem Zugriff 255. An den CPU lokalen Bus 230 ebenfalls gekoppelt ist ein Puffer 240. Der Puffer 240 ist selbst mit dem Systembus 250 verbunden, der ebenfalls Adressen, Daten und Steuerkomponenten umfaßt. Der Systembus 250 erstreckt sich zwischen dem Puffer 240 und einem weiteren Puffer 253.
  • Der Systembus 250 ist ebenfalls an eine Bussteuerung und ein Timing-Element 265 und einen DMA-controller 325 angeschlossen. Ein Arbitrierungssteuerbus 340 koppelt die Bussteuerung und das Timing-Element 265 sowie die Arbitrierungsüberwachung 335. Der Hauptspeicher ist ebenfalls an den Systembus 250 angeschlossen. Der Hauptspeicher umfaßt ein Speichersteuerelement 351, einen Adressenmultiplexer 352 und einen Datenpuffer 353. Diese Elemente sind mit den Speicherelementen 361 bis 364 interaktiv verbunden, wie dies in Figur 2 dargestellt ist.
  • Ein weiterer Puffer 267 ist zwischen dem Systembus 250 und einem planaren Bus 270 gekoppelt. Der planare Bus 270 umfaßt Adressen, Daten bzw. Steuerkomponenten. Entlang des planaren Busses 270 gekoppelt sind mehrere Ein- und Ausgabeadapter und weitere Komponenten wie beispielsweise der Bildschirmadapter 275 (der verwendet wird, um den Bildschirm 20 zu treiben), ein Taktgeber 280, zusätzlicher Speicher mit beliebigem Zugriff 285, ein RS-232-Adapter 290 (der für serielle Ein- und Ausgabeoperationen verwendet wird), ein Druckeradapter 295 (der verwendet werden kann, um den Drucker 60 zu treiben), ein Timer 300, ein Diskettenadapter 305 (der mit dem Plattenlaufwerk 70 kooperiert), ein Interrupt-Controller 310 und der Nur- Lese-Speicher 315. Der Puffer 253 stellt eine Schnittstelle zwischen dem Systembus 250 und einem optionalem Bus wie beispielsweise dem Micro-Channel-Bus 320 bereit, was durch die Micro-Channel-Buchsen dargestellt ist. Geräte wie beispielsweise der Speicher 331 können an den Bus 320 gekoppelt werden.
  • Die Figuren 8 bis 11 dienen zur Beschreibung des Arbitrierungsmechanismus. Wir betrachten Figur 8. Beschrieben wird das Verhältnis zwischen der Arbitrierungsüberwachung 335 und einer lokalen Arbitereinheit 336, die für alle lokalen Arbitereinheiten repräsentativ ist. Wenn ein Gerät im allgemeinen Zugriff auf den Systembus 250 wünscht, um Daten zu übertragen, empfängt eine lokale Arbitereinheit 336 ein Anforderungssignal vom jeweiligen Gerät, zu dem diese Arbitereinheit gehört. Dieses Anforderungssignal wird in ein /PREEMPT-Signal umgewandelt, das durch den lokalen Arbiter erzeugt wird, und über die /PREEMPT-Leitung des Arbitrierungsbusses zur Arbitrierungsüberwachung 335 und jedem der lokalen Arbiter übertragen. Im speziellen Ausführungsbeispiel der vorliegenden Erfindung wird darauf hingewiesen, daß die /PREEMPT-Leitungen in einer OR- Operation zusammengefaßt werden; daher ist es für die Arbitrierungsüberwachung 335 unerheblich, welches Gerät die Anforderung erzeugt. Die Arbitrierungsüberwachung 335 erzeugt das ARB/GRANT/-Signal zu einem geeigneten Zeitpunkt, der durch das HLDA und +REFRESH-Speichersignal von einem Refresh-Controller (nicht dargestellt) bestimmt wird, der dem Fachmann auf diesem Gebiet bekannt ist, auf ein /PREEMPT-Signal von einem oder mehreren der lokalen Arbiter 336. HLDA ist ein Signal des Paares HLDA und HRQ (oder HOLD), das in einem Einzelbussystem zwischen der Arbitrierungsüberwachung 335 und der CPU ausgetauscht wurde. In Doppelbussystemen befinden sich diese Signale zwischen der Arbitrierungsüberwachung und dem Cachecontroller, was an 260 in Figur 2 dargestellt ist.
  • Sobald ein beliebiges Gerät den Systembus 250 verwenden möchte, erzeugt es ein Anforderungssignal und sendet dieses an den jeweiligen lokalen Arbiter 336, der dann ein /PREEMPT- Signal über der /PREEMPT-Leitung des Arbitrierungsbusses erzeugt. Wenn der Bus danach zu einem geeigneten Zeitpunkt verfügbar wird, wie dies durch das HOLD- und das +REFRESH- Signal vom Refresh-Controller festgestellt wird, erzeugt die Arbitrierungsüberwachung 335 den +ARB-Status des ARB/GRANT/- Signals über dem Arbitrierungsbus und sendet diesen zu jedem der lokalen Arbiter 336. Bei Vorhandensein des +ARB-Status treibt jeder der lokalen Arbiter 336, der Zugriff auf den Systembus 250 wünscht, seine Prioritätsstufe auf entsprechende Leitungen ARB0-ARB3 des Arbitrierungsbusses. Danach vergleicht jeder der lokalen Arbiter, der Zugriff auf den Systembus 250 wünscht, seine angegebene Prioritätsstufe mit der Prioritätsstufe auf dem Arbitrierungsbus und versucht nicht länger den Zugriff auf den Bus, wenn seine Prioritätsstufe niedriger ist als diejenige, die auf den Arbitrierungsbus getrieben wurde.
  • Am Ende des Arbitrierungszyklus versucht also nur noch derjenige lokale Arbiter mit der höchsten Prioritätsstufe während des Arbitrierungszyklus den Zugriff auf den Bus und gewinnt dadurch die Steuerung über den Bus, wenn der GRANT/-Status von der Arbitrierungsüberwachung 335 über die ARB/GRANT/-Leitung empfangen wird.
  • Wir betrachten nun die Figuren 9 und 10. Eine ausführlichere Schaltungsbeschreibung der Arbitrierungsüberwachung 335 werden hier dargestellt. Die Arbitrierungsüberwachung 335 umfaßt eine modifizierte Johnson-Klingel-Timing-Kette, bestehend aus den Zählern 31 bis 34 und OR-Gatter 35, OR-Gatter 36, NAND-Gatter 37, Inverter 38 und OR-Gatter 39. Ausgehend von der Annahme, daß der Bus in einem Leerlaufzustand beginnt, wobei die CPU 225 den Bus "besitzt", ihn jedoch nicht verwendet, wird die Schaltungsoperation in Verbindung mit der Timing-Tabelle von Figur 11 nachfolgend beschrieben. Im zuvor genannten Zustand ist ARB/GPANT/ dann aktiv niedrig, und die Arbitrierungsprioritätsstufen ARB0 bis ARB3 haben alle den Wert eins. Die modifizierte Johnson-Klingel-Timing-Kette wird durch das OR- Gatter 36 und das NAND-Gatter 37 vom +HLDA-Signal zurückgesetzt gehalten. Wenn ein Gerät Zugriff auf den Bus benötigt, wird das /PREEMPT-Signal aktiviert. Gemäß Darstellung in Figur 10 resultiert die Tatsache, daß das /PREENPT-Signal aktiv wird, darin, daß die Ausgänge des Gatters ebenfalls positiv werden, wodurch das Signal PROCESSOR HOLD REQUEST (+PROC HRQ) dargestellt wird. Das Signal +ARB0 bis +ARB3 und ein Signal +GRANT werden ebenfalls in das OR-Gatter von Figur 10 eingegeben, um zu gewährleisten, daß die CPU 225 Busübertragungen durch andere Geräte nicht beeinträchtigt. Das Signal +PROC HRQ führt dazu, daß +HLDA deaktiviert wird, was wiederum dazu führt, daß das Rücksetzungssignal (das vom OR-Gatter 36 ausgegeben wird) aus den Zählern 31 bis 34 entfernt wird. Es wird darauf hingewiesen, daß die Eingaben -S0, -S1, -CMD und -BURST inaktiv sein müssen, damit +HLDA die zurückgesetzten Signale aus den bereits erwähnten Zählern 31 bis 34 entfernen kann, wie dies in Figur 11 dargestellt ist. Das Signal -S0 stellt den WRITE-Zyklus dar, und das Signal -S1 stellt den READ-Zyklus dar. Das Signal -CMD wird durch den derzeitigen Bus-Master eine angegebene Dauer nach -S0 oder -S1 erzeugt. Während der READ-Zyklen weist -CMD das Slave-Gerät an, READ-Daten auf den Bus zu plazieren, und während der WRITE-Zyklen wird -CMD zur Validierung von WRITE-Daten aktiviert.
  • Beim nächsten Taktimpuls (20 MHz), nachdem +HLDA deaktiviert wurde, wird der Ausgang des Zählers 31 eingestellt, was dazu führt, daß der Ausgang des OR-Gatters 39 hoch wird (+ARB), wodurch eine Arbitrierungs-Timingperiode angezeigt wird. Der Ausgang des OR-Gatters 39 bleibt hoch, bis der Ausgang des Zählers 33 eine kurze Zeit, nachdem der Ausgang des Zählers 34 hoch wird, niedrig wird. Dadurch wird ein Timing-Impuls von 300 Nanosekunden für das Signal ARB/GRANT erzeugt. Der Ausgang von Zähler 34 bleibt eingestellt, bis das Gerät entweder durch Aktivierung von -S0 oder von -S1 einen Buszyklus beginnt. Der Ausgang wird danach neu eingestellt, und die Zähler 31 bis 34 sind bereit, am Ende des derzeitigen Buszyklus ein neues Timing zu beginnen. Wenn kein Gerät einen Busdienst anfordert, kehrt der Bus in den Leerlaufzustand zurück und die Steuerung wird wieder dem Prozessor übertragen. HLDA wird reaktiviert und der Bus ist nun für Prozessoroperationen verfügbar.
  • Figur 3 zeigt die interaktive Verbindung zwischen einer 80386 CPU wie beispielsweise dem Mikroprozessor 225 und der Arbitrierungsüberwachung 335 in einem Einzelbus-Mikrorechnersystem. Das Ausgangssignal ARB/GRANT/ von der Überwachung ist das Signal, das definiert, ob der Arbitrierungsmechanismus im Arbitrierungsstatus (während dem Geräte, die Zugriff auf die Systemressource wünschen, ihre Prioritätsstufe auf die Arbitrierungsleiter plazieren) oder in einer Grant-Phase sind (in der das Gerät, das Zugriff auf die gemeinsame Ressource erhält, diese Ressource für die Ausschließung anderer Geräte verwenden kann, die möglicherweise einen Zugriff versucht haben). Ein weiteres Eingangssignal an die Arbitrierungsüberwachung 335 ist das PREEMPT-Signal, das bereits beschrieben wurde. Der Eingang an die Arbitrierungsüberwachung 335, der durch ARB[0-3] dargestellt ist, ist der Arbitrierungsleiter, die während der Arbitrierungsphase von Geräten getrieben werden, die Zugriff mit ihren eigenen Prioritätsstufen versuchen. Die Ein- und Ausgangsverbindungen auf der linken Seite der Arbitrierungsüberwachung 335 zeigen ihre interaktive Verbindung mit dem 80386 in einem typischen Einzelbus-Mikrorechnersystem. Die Signale HLDA und HRQ (die manchmal als HCLD bezeichnet werden, sind Handshake-Mechanismen, mit denen die Arbitrierungsüberwachung 335 Zugriff auf die Systemressource anfordern können, mit dem Ziel, den 80386 (HRQ) auszuschlie- ßen. Wenn der 80386 (HLDA) anerkennt, dann kann die Arbitrierungsüberwachung 335 den Zugriff zur Ressource verteilen. In Einzelbus-Mikrorechnersystemen kann die CPU nicht für sich selbst belegen. Dadurch entsteht die unerwünschte Möglichkeit, daß die CPU durch ein Gerät, das platzen darf, aus der gemeinsamen Ressource ausgesperrt werden kann.
  • Figur 4 ist ein Blockdiagramm, das ausgewählte interaktive Verbindungen in einem Doppelbus-Mikrorechnersystem zeigt, welches die 80386 CPU und einen 82385 Cachecontroller verwendet. Die Ein- und Ausgabeverbindungen auf der rechten Seite der Arbitrierungsüberwachung 335 in Figur 4 sind mit denen in Figur 3 identisch werden daher nicht mehr beschrieben. Der wichtige Punkt, der in Figur 4 dargestellt ist, besteht darin, daß die Überwachung der Arbitrierungsüberwachung 335 nun durch den 82385 Cachecontroller implementiert wird, da genau an dieses Element die Signale HRQ und HLDA angeschlossen werden. Abgesehen von einigen anderen Anordnungen könnte dann die 80386 CPU aus der Verwendung der gemeinsamen Ressource ausgefroren werden. Die vorliegende Erfindung stellt diesen anderen Mechanismus bereit und tut dies zum größten Teil, ohne andere Geräte zu beeinträchtigen, die auf die gemeinsame Ressource zugreifen.
  • Die Figuren 5 und 6 stellen zusammen dar, wie das Signal CPREEMPT und sein Vorgänger CPUREQ erzeugt werden.
  • Wir betrachten zunächst Figur 6. Die Logik darin kann als Bestandteil der Cachesteuerung 260 betrachtet werden. Die Logik wird bereitgestellt, um das Signal CPUREQ zu erzeugen, das als Steuersignaleingabe an den Steuerteil des Puffers 240 betrachtet werden kann. Das Steuersignal CPUREQ wird aus den Eingängen entwickelt, die links dargestellt sind, darunter /BUSYCYC 386, READYI, CLK, RESET und /(/M/IO & A31). Letzteres Signal ist die dekodierte Adresse für den Coprozessor. Die Signale BUSYCYC 386, READYI und /(/M/IO & A31) sind aktive niedrige Signale, so daß beispielsweise, wenn der Flip-Flop 601 eingestellt wird (durch eine hohe Eingabe an seinem D- Eingang), seine Ausgabe hoch ist und das Signal CPUREQ niedrig (aktiv) ist. Zusätzlich zum Flip-Flop 601 enthält die Logik von Figur 6 ein OR-Gatter 602, drei AND-Gatter 603-605 und die Inverter 606-608.
  • Im wesentlichen erkennen die Eingänge an das AND-Gatter 603 einen 80386-Zyklus, der sich über den Nullwartestatus hinaus erstreckt, und der nicht gleichzeitig ein Zyklus ist, der dem Koprozessor zugeteilt ist. Sobald der Zustand erkannt ist, wird der Flip-Flop 601 eingestellt und kann nur mit einer Taktdauer CLK2 zurückgesetzt werden, wenn dieser Zustand zu Ende ist. Die Gatter 604 und 605 werden bereitgestellt, um das Flip-Flop 601 zurückzusetzen, wenn CLK hoch ist und READYI niedrig (aktiv) ist. Dieser Zustand tritt auf, wenn ein CPU- Buszyklus abgeschlossen ist.
  • Ein CPU lokaler Buszyklus, der sich über einen Nullwartestatus hinaus erstreckt (und der ebenfalls kein einem Koprozessor zugeordneter Zyklus ist), ist ein Zyklus, der Zugriff auf den Systembus erfordert. Entsprechend wird das CPUREQ unter diesen Umständen aktiv, das heißt, es wird niedrig. Die Wirkung dieses Signals wird in Figur 5 gezeigt.
  • Figur 5 zeigt Logik, die zum Systembus 250 gehört. Gemäß Abbildung in Figur 5 besitzt das Steuerelement des Puffers 240 eine Ausgabe CPUREQ (die vom selben wie dem in Figur 6 gezeigten Signal getrieben wird). Das CPUREQ ist eine Eingabe an ein Gatter 501, dessen Ausgabe /CPREEMPT in Wirklichkeit ein Preempt-Signal ist, das vom 80386 erzeugt wurde. Wie aus der Darstellung in Figur 5 ersichtlich ist, ist das Signal CPREEMPT an den PREEMPT-Leiter gekoppelt, der einer der Eingänge an die Arbitrierungsüberwachung 335 (siehe Figur 3 oder 4) ist. Das Signal /CPREEMPT wird durch die in Figur 5 dargestellte Logik einschließlich der Gatter 501-503 erzeugt. Eine zweite Eingabe an das Gatter 501 ist die Ausgabe von Gatter 503, von dem eine Eingabe das Signal ARB/GRANT/ (die mit der Ausgabe der Arbitrierungsüberwachung 335 identisch ist). Die andere Eingabe ist ENCPUPREEMPT. Letztere ist eine Ausgabe des 80386. Wenn dieses Signal inaktiv ist, hindert es /CPREEMPT daran, jemals aktiv zu werden. Wenn also ENCPUPREEMPT inaktiv ist, kann der 80386 nicht belegen. ENCPUPREEMPT kann durch einen vom Benutzer einstellbaren Schalter oder einen Softwareschalter gesteuert werden, abhängig von den Anforderungen anderer Systemgeräte und/oder Soft- Ware. Unter normalen Umständen ist ENCPUPREEMPT aktiv, wodurch der 80386 in der Lage ist, zu belegen. Wenn das ARB/GRANT/ anzeigt, daß sich der Arbitrierungsprozeß in der Grant-Phase befindet (und ENCPUPREEMPT aktiv ist), dann ist die Ausgabe des Gatters 503 aktiv. Eine aktive Ausgabe des Gatters 503 zusammen mit einem aktiven CPUREQ ermöglicht die Erzeugung eines aktiven /CPREEMPT. Das Gatter 503 verhindert die Erzeugung eines aktiven /CPREEMPT während der Arbitrierungsphase, und ermöglicht lediglich ein aktives /CPREEMPT während der Grant-Phase des Arbitrierungsprozesses. Das Gatter 502 wird zur Überwachung des Status der Arbitrierungsleiter verwendet und verhindert die Erzeugung eines aktiven /CPREEMPT, wenn alle Leiter (aktiv) hoch sind, wodurch angezeigt wird, daß andere Geräte nicht für den Bus arbitrieren, das heißt, die CPU besitzt die gemeinsame Ressource.
  • Entsprechend kann durch die in den Figuren 5 und 6 dargestellte Logik für Zyklen auf dem CPU lokalen Bus, die nicht für den Koprozessor bestimmt sind und die über eine minimale Dauer (Nullwartestatus) hinaus reichen, die CPU belegen und tut dies, wenn der Arbitrierungsmechanismus in seiner Grant- Phase ist. Die Auswirkung dieser Belegung wird nachfolgend in Verbindung mit den Figuren 7A-7E beschrieben.
  • Die Figuren 7A-7E stellen folgendes dar:
  • 1) Verwendung des Systembusses durch ein Burst-Gerät (a-d),
  • 2) Belegung dieses Geräts durch ein typisches Gerät unter Verwendung des Signals PREEMPT (b-h),
  • 3) Einnahme des Busses durch die CPU unter Verwendung des Signals /CPREEMPT (k-o), und
  • 4) gleichzeitig mit der Verwendung des Busses durch die CPU, Arbitrierung zur Verwendung des Busses durch ein anderes Gerät (m).
  • Zum Zweck der Darstellung werde angenommen, daß ein Burst- Modusgerät die Steuerung des Systembusses übernommen hat, wie dies (a) in Figur 7D dargestellt ist. Wenn ein anderes Gerät entlang des Systembusses PREEMPT (b) bestätigt, vervollständigt das Burst-Gerät, das derzeit die Steuerung ausführt, seine derzeitige Übertragung, wie dies (c) in Figur 7C dargestellt ist. Bei der Beendigung der derzeitigen Übertragung entfernt das Burst-Gerät, das die Steuerung des Systembusses aufgibt, sein Burst-Signal von der Burst-Linie, wie dies an (d) in Figur 7D dargestellt ist. Dieses Burst-Gerät nimmt nicht am nächsten Arbitrierungszyklus teil. Die Arbitrierungsüberwachung 335 plaziert daraufhin das Signal ARB/GRANT/ in den ARB-Status (e) in Figur 7A. Derselbe Übergang stellt den Beginn eines anderen Arbitrierungszyklus dar und die Arbitrierung für den Systembus beginnt an (f) in Figur 78. Nachdem das Signal ARB/GRANT/ niedrig ist, wird die Steuerung des Systembusses dem neuen Gerät überlassen, wie dies an (g) in Figur 7A dargestellt ist. Das neue Gerät, das die Steuerung des Systembusses übernommen hat, entfernt daraufhin sein Signal PREEMPT auf das Signal PREEMPT hin, wie dies an (h) in Figur 7E dargestellt wird.
  • Einige Zeit später bestätigt im Beispiel der Figuren 7A-7E und basierend auf den Bedingungen, die auf dem CPU lokalen Bus 230 wiedergegeben werden, die CPU das Signal /CPREEMPT, was in PREEMPT (k) in Figur 7E wiedergegeben wird. Wie bereits beschrieben wurde, resultiert dies in einem neuen Arbitrierungszyklus, der gemäß der Darstellung an (1) in Figur 7A beginnt. Der Arbitrierungszyklus, wie in Figur 7A dargestellt, erstreckt sind von (l-o). Während dieses Arbitrierungszyklus verwendet die CPU den Systembus, und am Beginn dieses Zyklus nimmt die CPU die Bestätigung seines Signals PREEMPT (n) in Figur 7E zurück. Während die CPU den Systembus verwendet, arbitrieren andere Geräte, die einen Zugriff auf den Systembus wünschen, für diese Ressource, beginnend bei (m) in Figur 7B. Am Ende des CPU-Zyklus, wenn die Verwendung des Systembusses (o) abgeschlossen ist, ist eine neue Arbitrierung abgeschlossen, so daß unmittelbar danach ein beliebiges anderes Gerät (wenn ein solches den Zugriff auf den Systembus versucht hat) diese Ressource während der Dauer, die an (o) in Figur 7A beginnt, verwenden kann.
  • Das Signal /CPREEMPT ist nur dann aktiv, wenn sich ein CPU- Buszyklus über eine vorbestimmte Dauer hinweg erstreckt (beispielsweise über einen Nullwartestatus). Während der Arbitrierungsphase (ARB/GRANT/hoch) wird die CPU-Cachesteuerung 260 aus dem Haltstatus gelöst, indem die Arbitrierungsüberwachung 335 HRQ fallen läßt und die Möglichkeit erhält, einen oder mehrere Zyklen zu durchlaufen.
  • Die Beendigung eines CPU-Zyklus, die die Möglichkeit hat, den Systembus unter Verwendung des PREEMPT-Mechanismus zu verwenden, wird erkannt, wenn READYI aktiv und CLK hoch ist. Durch die Logik von Figur 6 wird unter diesen Bedingungen das Flip- Flop 601 zurückgesetzt und CPUREQ wird inaktiv.
  • Die Logikgleichungen, auf die oben bezug genommen wurde, werden unmittelbar nachfolgend reproduziert. In dieser Aufführung besitzen die Symbole folgende Bedeutung: Symbol Definition Negation ein registrierter Term, gleich ein kombinatorischer Term, gleich logisch AND logisch OR Logiksignale Arbitrierungsanforderungen Arbitrierungs-Grant Dekodierte math. Koprozessoradresse Siehe Figur Programmierbares Bit zur Aktivierung oder Deaktivierung der Möglichkeit der CPU, /CPREEMPT zu erzeugen. Definiert in den anhängigen Anmeldungen, dieser Anmeldung in dem Maße modifiziert, es von /CPREEMPT erzeugt werden kann. Logikgleichungen
  • In den vorangegangenen Logikgleichungen werden die folgenden Signale beschrieben oder in den zitierten Intel-Veröffentlichungen angeführt:
  • ADS
  • BADS
  • BRDYEN
  • BREADY
  • (BW/R) bezeichnet als BW/R, die Klammern zeigen an, daß der gesamte Term ein Signal darstellt
  • CLK
  • READYO
  • RESET
  • WBS
  • (W/R) bezeichnet als WIR, die Klammern zeigen an, daß der gesamte Term ein Signal darstellt
  • Wenn ADS aktiv ist, zeigt es eine gültige Adresse auf dem CPU lokalen Bus 230 an. Wenn BADS aktiv ist, zeigt es eine gültige Adresse auf dem Systembus 250 an. BRDYEN ist eine Ausgabe des 82385, die ein Vorläufer der Signale READY ist. BREADY ist ein READY-Signal vom Systembus 250 zum CPU lokalen Bus 230. BW/R definiert ein Write oder Read des Systembusses 250. CLK ist ein Prozessortaktsignal, das mit dem Prozessor 225 in Phase ist. READYO ist eine weitere Ausgabe des 82385 in der Reihe der Ready-Signale. Die Bedeutung von RESET ist eindeutig. WBS zeigt den Zustand des Write-Puffers an. (W/R) ist das herkömmliche Write- oder Read-Signal für den CPU lokalen Bus 230.
  • Die Gleichungen (1) - (11) definieren:
  • BREADY385
  • BT2
  • BUFWREND
  • BUSCYC385
  • BUSCYC386
  • CPUNA
  • LEAB
  • MISS1
  • PIPECYC385
  • PIPECYC386
  • CPUREADY
  • bezüglich der definierten Signale, die in der zitierten Intel- Veröffentlichung und NCA, NACACHE, READY0387 und RDY387PAL beschriebenen oder angeführten Signale.
  • BREADY385 ist ein Signal wie BREADY, das in einer tatsächlich konstruierten Ausführung so modifiziert wurde, daß ein 64K- Cache untergebracht werden konnte. Im Fall eines 32K-Caches (laut Empfehlung des Herstellers) kann BREADY anstelle von BREADY385 verwendet werden.
  • BT2 gibt den Status des Systembusses 250 wieder. Der Status BT2 ist ein Status, der in den zitierten Intel-Veröffentlichungen definiert ist.
  • BUFWREND stellt das Ende eines gepufferten Schreibzyklus dar.
  • BUSCYC385 gibt ebenfalls den Status des Systembusses 250 wieder. Es ist hoch für die Busstati BTI, BT1, BTIP und niedrig für die Busstati BT2, BT2P und BT2I (auch hierbei handelt es sich um Busstati, die in den zitierten Intel-Veröffentlichungen definiert sind).
  • BUSCYC386 ist während der Stati TI, T1, T1P, T2I des CPU lokalen Busses hoch und während T2 niedrig. Es ist auch für T2P niedrig, wenn nicht T2I zuerst auftaucht.
  • CPUNA ist ein Signal an den 80386, das eine Pipeline-Operation ermöglicht.
  • LEAB ist die Verriegelungsaktivierung (in den Puffer 240) für postierte Write-Operationen.
  • MISS1 ist aktiv und definiert den ersten Zyklus in einem Doppelzyklus zur Behandlung und Weitergabe von 64 Bitleseoperationen an cachefähige Geräte.
  • PIPECYC385 ist aktiv während BTLP (dies ist ein Busstatus, der in den zitierten Intel-Veröffentlichungen angeführt wird).
  • PIPECYC386 ist niedrig während des Status TIP des CPU lokalen Busses 230.
  • CPUREADY ist die Ready-Eingabe an den 80386.
  • NCA ist ein Signal, das durch Dekodierung der Adreßkomponente auf dem CPU lokalen Bus 230 erzeugt wird, um, wenn aktiv, einen nicht cachefähigen Zugriff wiederzugeben. Die Cachefähigkeit wird bestimmt durch eine Tag-Komponente (A31 bis A17) und durch programmierbare Informationen, die definieren, welche Tags, 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 systemerzeugtes Signal, das vom CPU lokalen Bus 230 eine nächste Adresse anfordert und in den zitierten Intel-Veröffentlichungen referenziert ist. NACACHE unterscheidet sich von BNA lediglich in der Tatsache, daß BNA für 32K Cache erzeugt wurde, während NACACHE für einen 64K-Cache erzeugt wurde. Solange der Cache-Speicher 32K ist, wie dies in den Intel-Veröffentlichungen angegeben ist, könnte das hier angeführte Signal NACACHE durch das Signal BNA ersetzt werden.
  • READYO387 ist die fertige Ausgabe des 80387 math. Koprozessors.
  • RDY387PAL ist eine Ausgabe externer Logik, die dann verwendet wird, wenn kein 80387 math. Koprozessor installiert ist, um eine durch dieses Fehlen bedingte Beeinträchtigung von Systemoperationen zu verhindern.
  • Daher ist ersichtlich, daß durch die Anwendung der vorliegenden Erfindung in einem Doppelbus-Mikrorechnersystem unter Verwendung eines 80386-Prozessors und eines 82385-Cachecontrollers der Prozessor unter bestimmten Bedingungen die Möglichkeit hat, für die Verwendung des Systembusses unter bestimmten Umständen zu belegen. Bei lokalen Buszyklen, die über eine vorbestimmte Dauer hinaus gehen, kann der Prozessor, unter der Bedingung, daß es andere Benutzer gibt, die den Zugriff auf die Ressource versuchen, und daß die option Preempt aktiviert wurde (ENCPUPREEMPT), /CPREEMPT bestätigen. Wenn jedoch das Preempt wirksam wird (wie dies dem Prozessor durch die Arbitrierungsüberwachung signalisiert wird), dann treten gleichzeitig zwei Ereignisse auf. Das erste Ereignis ist, daß der Prozessor auf den Systembus zugreift. Dieser Zugriff kann keine anderen möglichen Busbenutzer beeinträchtigen, da während der Dauer des Prozessorzugriffs andere Benutzer, die einen Zugriff versuchen, sich in einer Arbitrierungsphase befinden. Daher können gleichzeitig mit dem Zugriff auf den Systembus durch den Prozessor andere Benutzer nach der Verwendung des Busses durch den Prozessor für Zugriff auf die Grant-Phase arbitrieren. Entsprechend hat der Prozessor unter Verwendung der vorliegenden Erfindung die Möglichkeit, den Systembus auch dann zu verwenden, wenn andere Benutzergeräte gleichzeitig den Zugriff auf den Bus versuchen. Durch Überlagerung der Verwendung des Busses durch den Prozessor mit der Arbitrierungsphase (in die andere Geräte eingetreten sind), werden die Auslastung und die Leistung des Busses verbessert.

Claims (6)

1. Ein Mehrfachbus-Mikrorechnersystem, bestehend aus einem Prozessor (225), einem Cache-Subsystem (260) und einem Cachespeicher mit beliebigem Zugriff (255), die durch einen CPU lokalen Bus (230) miteinander verknüpft sind, einem Systembus (250), einer Mehrzahl anderer funktionaler Einheiten (275, 280, 285, 290, 295, 300, 305, 310, 315), die an den Systembus (250) gekoppelt sind, und einem Mittel (240), das den genannten CPU lokalen Bus (230) und den genannten Systembus (250) miteinander kop- peln, wobei das genannte Cache-Subsystem weiterhin an den genannten Systembus gekoppelt ist und auf Anforderung den Systembus freigibt, charakterisiert durch eine Arbitrierungsüberwachung (335), die an den genannten Systembus (250) angeschlossen ist und die genannte Freigabe des genannten Systembusses vom genannten Cache-Subsystem anfordert, und dadurch, daß der genannte Systembus (250) eine Mehrzahl an Leitern umfaßt, die zur Arbitrierung des Zugriffs auf den genannten Systembus (250) durch wenigstens einige der genannten Mehrzahl anderer funktionaler Einheiten, wobei einer der Leiter dazu dient, ein Preempt-Signal zu tragen, das an jeder funktionalen Einheit mit Zugriff auf den Systembus effektiv ist, und zur Begrenzung der Dauer des genannten Zugriffs bei Empfang des genannten Preempt-Signals dient, und durch eine Preempt-Signalquelle (501, 502, 503) mit Eingaben, die auf einen CPU lokalen Buszyklus reagieren, der länger ist als eine minimale Dauer, um ein Preempt-Signal auf dem genannten Systembus (250) zu bestätigen
2. Ein Mehrfachbus-Mikrorechnersystem gemäß Anspruch 1, wobei die genannte Arbitrierungsüberwachung (335) eine Quelle eines Arbitrierungs-Grant-Signals (ARB/GRANT), ein Mittel, das beim genannten Preempt-Signal eine Arbitrierungsphase vorbereitet, ein Mittel zur Initiierung einer Arbitrierungsphase bei einem Signal, das die Beendigung der derzeitigen Verwendung des Busses durch einen Busbenutzer darstellt, und ein Mittel (HRQ) zur Signalisierung einer neuen Arbitrierungsphase an den genannten Prozessor umfaßt.
3. Ein Mehrfachbus-Mikrorechnersystem gemäß Anspruch 2, wobei der genannte Prozessor auf die genannte Signalisierung (HRQ) von der genannten Arbitrierungsüberwachung (335) reagiert, indem er eine neue Arbitrierungsphase darstellt, während das genannte Preempt-Signal bestätigt wird, so daß es unmittelbar darauf auf den genannten Systembus (250) zugreifen kann.
4. Ein Mehrfachbus-Mikrorechnersystem gemäß allen vorherigen Ansprüchen, wobei die genannte Preempt-Signalquelle (501, 502, 503) des weiteren auf ein programmierbares Signal (ENCPUPREEMPT) reagiert, um die Erzeugung des genannten Preempt-Signals in einem Status des genannten programmierbaren Signals zu ermöglichen, und die Erzeugung des genannten Preempt-Signals zu verhindern, wenn sich das genannte programmierbare Signal in einem weiteren Status befindet.
5. Ein Mehrfachbus-Mikrorechnersystem gemäß allen vorherigen Ansprüchen, des weiteren bestehend aus einem optionalen Funktionsbus (320), der durch den genannten Systembus (250) und das genannte Mittel zur Kopplung an den genannten CPU lokalen Bus (230) gekoppelt ist, wobei Geräte, die an den genannten optionalen Funktionsbus gekoppelt sind, für den Zugriff auf den genannten Systembus arbitrieren können und auf das genannte Preempt-Signal von der genannten Preempt-Signalquelle reagieren, um bei Empfang des genannten Preempt-Signals einen Buszugriff zu beenden.
6. Ein Mehrfachbus-Mikrorechnersystem gemäß allen vorherigen Ansprüchen, in dem die genannte Mehrzahl an Leitern einen Arbitrierungs-Grant-Leiter umfaßt, der ein Arbitrierungssignal trägt, um eine Arbitrierungsphase zur Arbitrierung eines Zugriffs unter einer Mehrzahl an Geräten aufzubauen, wenn sich das genannte Signal in einem Status befindet, sowie eine Grant-Phase zur Verwendung des Systembusses durch dasjenige Gerät, das die genannte Arbitrierungsphase gewinnt, und in dem die genannte CPU ein Mittel für den Zugriff auf den genannten Systembus in der unmittelbar nach der Bestätigung des genannten Preempt-Signals folgenden Arbitrierungsphase umfaßt.
DE68922784T 1988-05-26 1989-03-03 Mehrfachbus-Mikrorechnersystem mit Busarbitrierung. Expired - Fee Related DE68922784T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/198,895 US5129090A (en) 1988-05-26 1988-05-26 System bus preempt for 80386 when running in an 80386/82385 microcomputer system with arbitration

Publications (2)

Publication Number Publication Date
DE68922784D1 DE68922784D1 (de) 1995-06-29
DE68922784T2 true DE68922784T2 (de) 1995-11-30

Family

ID=22735319

Family Applications (2)

Application Number Title Priority Date Filing Date
DE68922784T Expired - Fee Related DE68922784T2 (de) 1988-05-26 1989-03-03 Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE3909948A Granted DE3909948A1 (de) 1988-05-26 1989-03-25 Mikrocomputersystem mit mehrfachbus und buszuteilung

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE3909948A Granted DE3909948A1 (de) 1988-05-26 1989-03-25 Mikrocomputersystem mit mehrfachbus und buszuteilung

Country Status (23)

Country Link
US (1) US5129090A (de)
EP (1) EP0343770B1 (de)
JP (1) JPH0623970B2 (de)
CN (1) CN1010808B (de)
AT (1) ATE123162T1 (de)
AU (1) AU611287B2 (de)
BE (1) BE1002405A4 (de)
BR (1) BR8902388A (de)
CA (1) CA1317682C (de)
DE (2) DE68922784T2 (de)
DK (1) DK189889A (de)
ES (1) ES2072895T3 (de)
FI (1) FI96145C (de)
FR (1) FR2632096B1 (de)
GB (1) GB2219176A (de)
HK (1) HK23696A (de)
IT (1) IT1230191B (de)
MX (1) MX171578B (de)
MY (1) MY111733A (de)
NL (1) NL8901282A (de)
NO (1) NO176038C (de)
NZ (1) NZ228785A (de)
SE (1) SE8901306L (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111424A (en) * 1987-05-01 1992-05-05 Digital Equipment Corporation Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfer
US5034883A (en) * 1987-05-01 1991-07-23 Digital Equipment Corporation Lockhead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers
FR2642246B1 (fr) * 1988-12-30 1991-04-05 Cit Alcatel Procede de deblocage d'un systeme multiprocesseurs multibus
KR930002316B1 (ko) * 1989-05-10 1993-03-29 미쯔비시덴끼 가부시끼가이샤 버스제어방법 및 화상처리 장치
US5293493A (en) * 1989-10-27 1994-03-08 International Business Machines Corporation Preemption control for central processor with cache
CA2038012A1 (en) * 1990-03-14 1991-09-15 Hideki Shimizu Oxide superconductor lamination and method of manufacturing the same
US5086427A (en) * 1990-04-09 1992-02-04 Unisys Corporation Clocked logic circuitry preventing double driving on shared data bus
JP4733219B2 (ja) * 1990-06-04 2011-07-27 株式会社日立製作所 データ処理装置およびデータ処理方法
KR950004202B1 (ko) * 1990-06-14 1995-04-27 인터내셔날 비지네스 머신즈 코포레이션 직접 접근 저장 기억 장치를 퍼스널 컴퓨터에 조립하기 위한 장치 및 방법
EP0472274A1 (de) * 1990-08-24 1992-02-26 International Business Machines Corporation Datenverarbeitungsvorrichtung mit Steckern für Systemkomponente
US5218681A (en) * 1990-08-31 1993-06-08 Advanced Micro Devices, Inc. Apparatus for controlling access to a data bus
GB9018993D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station interfacing means having burst mode capability
DE69123665T2 (de) * 1990-08-31 1997-07-10 Advanced Micro Devices Inc Integrierte digitale Verarbeitungsvorrichtung
GB9018991D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station with timing independant interface units
GB9019022D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station or similar data processing system including interfacing means to microchannel means
ATE137038T1 (de) * 1990-08-31 1996-05-15 Advanced Micro Devices Inc Übertragungssteuerungssystem für einen rechner und peripheriegeräte
GB9019001D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station including a direct memory access controller and interfacing means to microchannel means
JPH04141757A (ja) * 1990-10-03 1992-05-15 Fujitsu Ltd バス制御方式
US5195089A (en) * 1990-12-31 1993-03-16 Sun Microsystems, Inc. Apparatus and method for a synchronous, high speed, packet-switched bus
US5249297A (en) * 1991-04-29 1993-09-28 Hewlett-Packard Company Methods and apparatus for carrying out transactions in a computer system
US5537600A (en) * 1991-05-28 1996-07-16 International Business Machines Corporation Personal computer with alternate system controller
EP0516323A1 (de) * 1991-05-28 1992-12-02 International Business Machines Corporation Persönliche Rechnersysteme
US5392417A (en) * 1991-06-05 1995-02-21 Intel Corporation Processor cycle tracking in a controller for two-way set associative cache
CA2067599A1 (en) * 1991-06-10 1992-12-11 Bruce Alan Smith Personal computer with riser connector for alternate master
US5255373A (en) * 1991-08-07 1993-10-19 Hewlett-Packard Company Decreasing average time to access a computer bus by eliminating arbitration delay when the bus is idle
US5630163A (en) * 1991-08-09 1997-05-13 Vadem Corporation Computer having a single bus supporting multiple bus architectures operating with different bus parameters
CA2068010C (en) * 1991-08-30 1996-10-22 Robert Chih-Tsin Eng Alternate master bursting data rate management techniques for use in computer systems having dual bus architecture
US5581731A (en) * 1991-08-30 1996-12-03 King; Edward C. Method and apparatus for managing video data for faster access by selectively caching video data
US5430860A (en) * 1991-09-17 1995-07-04 International Business Machines Inc. Mechanism for efficiently releasing memory lock, after allowing completion of current atomic sequence
JPH05210977A (ja) * 1991-10-15 1993-08-20 Internatl Business Mach Corp <Ibm> メモリ・リフレッシュ制御装置
US5301282A (en) * 1991-10-15 1994-04-05 International Business Machines Corp. Controlling bus allocation using arbitration hold
US5371872A (en) * 1991-10-28 1994-12-06 International Business Machines Corporation Method and apparatus for controlling operation of a cache memory during an interrupt
US5237695A (en) * 1991-11-01 1993-08-17 Hewlett-Packard Company Bus contention resolution method for network devices on a computer network having network segments connected by an interconnection medium over an extended distance
US5548762A (en) * 1992-01-30 1996-08-20 Digital Equipment Corporation Implementation efficient interrupt select mechanism
US5555382A (en) * 1992-04-24 1996-09-10 Digital Equipment Corporation Intelligent snoopy bus arbiter
US5420985A (en) * 1992-07-28 1995-05-30 Texas Instruments Inc. Bus arbiter system and method utilizing hardware and software which is capable of operation in distributed mode or central mode
US5471585A (en) * 1992-09-17 1995-11-28 International Business Machines Corp. Personal computer system with input/output controller having serial/parallel ports and a feedback line indicating readiness of the ports
JP3057934B2 (ja) * 1992-10-30 2000-07-04 日本電気株式会社 共有バス調停機構
US5699540A (en) * 1992-11-16 1997-12-16 Intel Corporation Pseudo-concurrent access to a cached shared resource
US5500946A (en) * 1992-11-25 1996-03-19 Texas Instruments Incorporated Integrated dual bus controller
CA2116826C (en) * 1993-03-11 1998-11-24 Timothy J. Sullivan Data processing system using a non-multiplexed, asynchronous address/data bus system
US5528765A (en) * 1993-03-15 1996-06-18 R. C. Baker & Associates Ltd. SCSI bus extension system for controlling individual arbitration on interlinked SCSI bus segments
JP3474646B2 (ja) * 1994-09-01 2003-12-08 富士通株式会社 入出力制御装置及び入出力制御方法
KR0155269B1 (ko) * 1995-01-16 1998-11-16 김광호 버스 중재방법 및 그 장치
US5692211A (en) * 1995-09-11 1997-11-25 Advanced Micro Devices, Inc. Computer system and method having a dedicated multimedia engine and including separate command and data paths
US5845097A (en) * 1996-06-03 1998-12-01 Samsung Electronics Co., Ltd. Bus recovery apparatus and method of recovery in a multi-master bus system
US6560712B1 (en) * 1999-11-16 2003-05-06 Motorola, Inc. Bus arbitration in low power system
US6842813B1 (en) 2000-06-12 2005-01-11 Intel Corporation Method and apparatus for single wire signaling of request types in a computer system having a point to point half duplex interconnect
US6877052B1 (en) * 2000-09-29 2005-04-05 Intel Corporation System and method for improved half-duplex bus performance
US7007122B2 (en) * 2002-11-27 2006-02-28 Lsi Logic Corporation Method for pre-emptive arbitration
US7107375B2 (en) * 2003-05-13 2006-09-12 Lsi Logic Corporation Method for improving selection performance by using an arbitration elimination scheme in a SCSI topology
US7543093B2 (en) 2004-08-30 2009-06-02 Shanghai Magima Digital Information Co., Ltd. Method and system for stream burst data transfer
DE102008000031B4 (de) * 2008-01-10 2014-07-10 Koenig & Bauer Aktiengesellschaft Verfahren zur Kontrolle einer Anordnung von an Formzylindern einer Druckmaschine angeordneten Druckformen

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481580A (en) * 1979-11-19 1984-11-06 Sperry Corporation Distributed data transfer control for parallel processor architectures
US4402040A (en) * 1980-09-24 1983-08-30 Raytheon Company Distributed bus arbitration method and apparatus
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
DE3278891D1 (en) * 1981-06-05 1988-09-15 Ibm I/o controller with a dynamically adjustable cache memory
US4451883A (en) * 1981-12-01 1984-05-29 Honeywell Information Systems Inc. Bus sourcing and shifter control of a central processing unit
US4578782A (en) * 1983-08-26 1986-03-25 Motorola, Inc. Asynchronous memory refresh arbitration circuit
US4631660A (en) * 1983-08-30 1986-12-23 Amdahl Corporation Addressing system for an associative cache memory
US4742454A (en) * 1983-08-30 1988-05-03 Amdahl Corporation Apparatus for buffer control bypass
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
JPS61117650A (ja) * 1984-11-13 1986-06-05 Nec Corp バス制御方式
US4941088A (en) * 1985-02-05 1990-07-10 Digital Equipment Corporation Split bus multiprocessing system with data transfer between main memory and caches using interleaving of sub-operations on sub-busses
US4794523A (en) * 1985-09-30 1988-12-27 Manolito Adan Cache memory architecture for microcomputer speed-up board
US4949301A (en) * 1986-03-06 1990-08-14 Advanced Micro Devices, Inc. Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs
US4811215A (en) * 1986-12-12 1989-03-07 Intergraph Corporation Instruction execution accelerator for a pipelined digital machine with virtual memory

Also Published As

Publication number Publication date
GB2219176A (en) 1989-11-29
FI891786A (fi) 1989-11-27
NZ228785A (en) 1991-04-26
SE8901306L (sv) 1989-11-27
DE3909948C2 (de) 1990-05-31
GB8904919D0 (en) 1989-04-12
US5129090A (en) 1992-07-07
ES2072895T3 (es) 1995-08-01
BE1002405A4 (fr) 1991-01-29
AU3409789A (en) 1989-11-30
DK189889A (da) 1989-11-27
FR2632096A1 (fr) 1989-12-01
NO176038B (no) 1994-10-10
CN1037982A (zh) 1989-12-13
MY111733A (en) 2000-12-30
FI96145B (fi) 1996-01-31
FI891786A0 (fi) 1989-04-14
FI96145C (fi) 1996-05-10
NL8901282A (nl) 1989-12-18
BR8902388A (pt) 1990-01-16
EP0343770B1 (de) 1995-05-24
DK189889D0 (da) 1989-04-19
DE68922784D1 (de) 1995-06-29
ATE123162T1 (de) 1995-06-15
NO891585L (no) 1989-11-27
CN1010808B (zh) 1990-12-12
AU611287B2 (en) 1991-06-06
HK23696A (en) 1996-02-16
SE8901306D0 (sv) 1989-04-11
NO176038C (no) 1995-01-18
IT1230191B (it) 1991-10-18
FR2632096B1 (fr) 1991-09-20
MX171578B (es) 1993-11-08
JPH0623970B2 (ja) 1994-03-30
JPH0218657A (ja) 1990-01-22
EP0343770A3 (en) 1990-11-22
NO891585D0 (no) 1989-04-18
DE3909948A1 (de) 1989-11-30
EP0343770A2 (de) 1989-11-29
IT8920626A0 (it) 1989-05-24
CA1317682C (en) 1993-05-11

Similar Documents

Publication Publication Date Title
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE3853574T2 (de) Steuerung von Benutzerantworten in einem Übertragungsbus.
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE69021594T2 (de) Hochgeschwindigkeitsdatenübertragung auf einem Rechnersystembus.
DE3650036T2 (de) Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung.
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE69632634T2 (de) Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
DE3688763T2 (de) Mehrfachport-Übertragungsadaptiervorrichtung.
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE3914265C2 (de)
DE3850585T2 (de) Datenverarbeitungssystem mit Überlappung von Buszyklusoperationen.
DE69031506T2 (de) Verfahren und Gerät zur Anwendungsbeschränkung eines asynchronen Bus mit verteilter Zugriffssteuerung
DE69018100T2 (de) Datenübertragung über Busadressleitungen.
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE69634182T2 (de) Direktspeicherzugriffssteuerung mit programmierbarer Zeitsteuerung
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE4018481C2 (de)
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE8804104U1 (de) Digitalrechner mit programmierbarer DMA-Steuerung
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem &#34;pended bus&#34;.
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau

Legal Events

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