DE68920929T2 - Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. - Google Patents

Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.

Info

Publication number
DE68920929T2
DE68920929T2 DE68920929T DE68920929T DE68920929T2 DE 68920929 T2 DE68920929 T2 DE 68920929T2 DE 68920929 T DE68920929 T DE 68920929T DE 68920929 T DE68920929 T DE 68920929T DE 68920929 T2 DE68920929 T2 DE 68920929T2
Authority
DE
Germany
Prior art keywords
timer
register
channel
match
bus
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
DE68920929T
Other languages
English (en)
Other versions
DE68920929D1 (de
Inventor
Vernon B Goler
Stanley E Groves
John J Vaglica
Brian F Wilkie
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of DE68920929D1 publication Critical patent/DE68920929D1/de
Application granted granted Critical
Publication of DE68920929T2 publication Critical patent/DE68920929T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G04HOROLOGY
    • G04GELECTRONIC TIME-PIECES
    • G04G3/00Producing timing pulses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bus Control (AREA)
  • Electronic Switches (AREA)

Description

  • Die vorliegende Anmeldung steht in Bezug zu den folgenden, mit dem gleichen Datum eingereichten Europäischen Patentanmeldungen:
  • EP-A-0355462 (SC-00488A), betitelt "Dedicated Service Processor with Inter-Channel Communication Features";
  • EP-A-0355465 (SC-00492A), betitelt "Timer Channel with Match Recognition Features";
  • EP-A-0355363 (SC-00496A), betitelt Integrated Clrcuit Timer with Multiple Channels and Dedicated Service Processor", und
  • EP-A-0354998 (SC-00498A), betitelt "Timer Channel for use in a Multiple Channel Timer".
  • Erfindungsgebiet
  • Die vorliegende Erfindung betrifft im allgemeinen einen Zeitgeber mit Zugriff auf mehr als ein Zeitgeber-Referenzsignal. Im besonderen betrifft die Erfindung einen Zeitgeber mit der Fähigkeit, Eingabe- und Ausgabe-Zeitgeberfunktionen und Kombinationen davon mit Bezug auf jedes der vorhandenen Zeitgeber-Referenzsignale durchzuführen.
  • Hintergrund der Erfindung
  • Zeitgeber-Subsysteme zur Verwendung mit Datenprozessoren besitzen gewöhnlich Zugang zu mehr als einer Quelle von Zeitgeber-Referenzsignalen. Ein Beispiel ist der Mikrocomputer 8096, erhältlich von Intel Corporation, Santa Clara, California, wie z.B. von Horden I.: "Versatile microcontroller family works in low-cost and high performance applications", WESCON/87 Conference Record 31(198?) Los Angeles, Ca., USA, Seiten 1/4, 1-5 beschrieben. Der 8096 besitzt zwei Zeitgeber- Zählregister, die unabhängig getaktet werden, eines mit dem internen Systemtakt und das andere mit einem Signal, das an einem von zwei Eingangsstiften vorhanden ist. Ein anderes Beispiel ist der System Timing Controller Am9513, ein selbständiges Zeitgeber-Subsystem, erhältlich von Advanced Micro Devices, Sunnyvale, California. Der 9513 ist ein sehr flexibles Zeitgeber-Subsystem, das über fünf unabhängig getaktete Zählregister verfügt.
  • Zeitgeber-Subsystemen mit Mehrfachreferenz nach dem Stand der Technik hat es immer an einer bestimmten Flexibiltät gefehlt, die für einen Anwender solcher Subsysteme wünschwenswert ist. Beispielsweise können bei dem 8096 Eingabe-Zeitgeberfunktionen, bei denen die Zeit, bei der irgendein äußeres Ereignis in bezug auf ein Zeitgeber-Referenzsignal auftritt, registriert oder eingefangen wird, nur auf eines von zwei verfügbaren Zeitgeber-Referenzsignalen bezogen werden. Ausgabe- Zeitgeberfunktionen, die allgemein als übereinstimmungsfunktionen oder Ausgabevergleiche bezeichnet werden, können auf beide Zählregister in dem 8096 bezogen werden. Ähnlich ist bei dem 9513 jeder der fünf Zähler mit mehreren von den fünf Kanälen unveränderbar verbunden und kann nicht als Zeitgeberreferenz für diejenigen Kanäle benutzt werden, mit denen er nicht verbunden ist. Außerdem sehen die Kanalhardware des 8096 und des 9513 keine in Beziehung stehenden Eingabe- und Ausgabe- Zeitgeberfunktionen vor, z.B. eine Eingabeerfassung, die vom Auftreten oder Nichtauftreten eines übereinstimmungsereignisses abhängt.
  • Zusammenfassung der Erfindung
  • Es ist folglich eine Aufgabe der vorliegenden Erfindung, einen verbesserten Zeitgeberkanal zur Verwendung mit mehreren Zeitgeber-Referenzquellen zur Verfügung zu stellen.
  • Diese und andere Aufgaben und Vorteile der vorliegenden Erfindung werden durch einen Zeitgeber bereitgestellt, der auf wenigstens zwei Zeitgeber-Bezugssignale anspricht und umfaßt: ein Erfassungsregister; ein übereinstimmungsregister; eine erste Zeitgeber-Bezugsauswahleinrichtung, die eines der wenigstens zwei Zeitgeber-Bezugssignale auswählt; eine zweite Zeitgeber-Bezugsauswahleinrichtung, die eines der wenigstens zwei Zeitgeber-Bezugssignale auswählt; eine Erfassungslogikeinrichtung, die auf eine Eingabe in den Zeitgeber und auf die erste Zeitgeber-Bezugsauswahleinrichtung anspricht, um das Erfassungsregister mit einer Darstellung eines Wertes des von der ersten Zeitgeber-Bezugsauswahleinrichtung ausgewählten Zeitgeber-Bezugssignals zu laden, sowie eine übereinstimmungslogikeinrichtung, die auf den Inhalt des übereinstimmungsregisters und auf den Wert des von der zweiten Zeitgeber-Bezugsauswahleinrichtung ausgewählten Zeitgeber-Bezugssignals anspricht, um eine übereinstimmungsausgabe zu erzeugen, wenn eine vorbestimmte Beziehung zwischen dem Wert des von der zweiten Zeitgeber-Bezugsauswahleinrichtung ausgewählten Zeitgeber-Bezugssignals und dem Inhalt des übereinstimmungsregisters besteht.
  • Diese und andere Aufgaben und Vorteile der vorliegenden Erfindung werden für einen Fachmann in der Technik aus der folgenden ausführlichen Beschreibung in Verbindung mit den Zeichnungen ersichtlich.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist ein Blockschaltbild eines Ein-Chip-Mikrocomputers, von dem die bevorzugte Ausführung der vorliegenden Erfindung ein Teil ist;
  • Fig. 2A-2B bilden ein Diagramm, das den Speicherplan eines Zeitgebers veranschaulicht, der die bevorzugte Ausführung der vorliegenden Erfindung umfaßt;
  • Fig. 3 ist ein Blockschaltbild, das die Hauptkomponenten des Zeitgebers der bevorzugten Ausführung zeigt;
  • Fig. 4A-4D bilden ein detailliertes Blockschaltbild, das den Aufbau des Zeitgebers der bevorzugten Ausführung zeigt;
  • Fig. 5 ist ein detailliertes Blockschaltbild, das den Aufbau eines Zeitgeberkanals gemäß der bevorzugten Ausführung zeigt, und
  • Fig. 6 ist ein Zeitdiagramm, das verschiedene Zeitbeziehungen in der Zeitgebervorrichtung von Fig. 5 zeigt.
  • Beschreibung der bevorzugten Ausführung
  • Die Ausdrücke "Setzen" und "Negieren" sowie verschiedene grammatische Formen davon werden hierin benutzt, um Konfusion beim Umgang mit einer Mischung aus 'Hoch aktiv"- und "Tief aktiv"-Logiksignalen zu vermeiden. "Setzen" wird verwendet, um die übertragung eines Logiksignals oder Registerbits in seinen aktiven oder logisch wahren Zustand zu bezeichnen. "Negieren" wird verwendet, um die übertragung eines Logiksignals oder Registerbits in seinen inaktiven oder logisch unwahren Zustand zu bezeichnen.
  • Fig. 1 veranschaulicht einen Mikrocomputer, von dem eine bevorzugte Ausführung der Erfindung ein Teil ist. Der Mikrocomputer 10, der zur Herstellung als einzelne integrierte Schaltung gedacht ist, umfaßt eine zentrale Verarbeitungseinheit (CPU) 11, einen Intermodulbus (IMB) 12, eine serielle Schnittstelle 13, ein Speichermodul 14, einen Zeitgeber 15 und ein Systemintegrationsmodul (SIM) 16. Die CPU 11, die serielle Schnittstelle 13, der Speicher 14, der Zeitgeber 15 und das SIM 16 sind zum Zweck der Austauschens von Adressen, Daten und Steuerinformationen mit dem IMB 12 bidirektional verbunden. Außerdem ist der Zeitgeber 15 bidirektional mit dem Speicher 14 über einen Emulationsbus 17 verbunden, dessen Zweck aus der folgenden Erörterung deutlicher werden wird.
  • Die serielle Schnittstelle 13 und der Zeitgeber 15 sind jeweils mit einer Anzahl von Pins oder Steckverbindern zur Kommunikation mit Einrichtungen außerhalb des Mikrocomputers 10 verbunden. Außerdem ist das SIM 16 mit einer Anzahl von Pins gekoppelt, die einen äußeren Bus umfassen.
  • Der Zeitgeber 15, der die bevorzugte Ausführung der vorliegenden Erfindung umfaßt, ist ein relativ autonomes Modul. Zweck des Zeitgebers 15 ist es, alle von dem Mikrocomputer 10 verlangten Timingaufgaben mit möglichst geringer Intervention durch die CPU 11 auszuführen. Beispiele von Timingaufgaben, die von dem Mikrocomputer 10 verlangt werden können, sind der Zünd- und Einspritzzeitpunkt bei einem Kraftfahrzeug, die Verschlußzeit einer elektronischen Kamera und dergleichen. Während diese bevorzugte Ausführung der vorliegenden Erfindung den Zeitgeber 15 in den Kontext eines Mikrocomputers bringt, können die beschriebenen Prinzipien leicht auf andere Kontexte, einschließlich dem eines frei stehenden Zeitgebermoduls, angewandt werden.
  • Der Zeitgeber 15 ist imstande, sich auf zwei Taktquellen zu beziehen. Beide Taktquellen besitzen die Form von freilaufenden Zählerregistern, auf die als Zeitgeber-Zählregister #1 (TCR1) und Zeitgeber-Zählregister #2 (TCR2) Bezug genommen wird. TCR1 wird von einer internen Taktquelle gataktet, die mit dem Systemtakt von Mikrocomputer 10 in Beziehung steht. TCR2 wird entweder von einer externen Quelle, die dem Mikrocomputer 10 über einen Pin zugeführt wird, oder von der internen Quelle als durch das am Pin der externen Quelle erscheinende Signal torgesteuert getaktet.
  • Bei dieser bevorzugten Ausführung besitzt der Zeitgeber 15 sechzehn Zeitgeber- "Kanäle", wobei jeder seinen eigenen Anschlußpin hat. Zwei Grundarten von Zeitgeberereignissen sind von dem System der bevorzugten Ausführung wahrnehmbar: übereinstimmungsereignisse und Erfassungsereignisse. übereinstimmungsereignisse sind im wesentlichen Ausgabefunktionen und Erfassungsereignisse sind im wesentlichen Eingabefunktionen. Ein übereinstimmungsereignis tritt ein, wenn der Zählstand in einem der zwei Zeitgeber-Zählregister eine vorbestimmte Beziehung zu einem in einem Register in einem ausgewählten Zeitgeberkanal gespeicherten Wert aufweist. Ein Erfassungsereignis tritt ein, wenn ein vordefinierter übergang an dem mit einem der Zeitgeberkanäle verbundenen Pin ermittelt wird, der das "Einfangen" des momentanen Zählstandes von einem der Zeitgeber-Zählregister in ein Register in diesem Zeitgeberkanal auslöst. Weitere Details der Funktionen der verschiedenen Zeitgeberkanäle sind in der Beschreibung unten enthalten.
  • Die CPU 11 wird gelegentlich als die "Host"-CPU bezeichnet. In diesem Kontext arbeitet der Zeitgeber 15 unter Kontrolle der CPU 11, von der er für bestimmte Initialisierungs- und andere Funktionen abhängt. 0bwohl bei dieser bevorzugten Ausführung die Host-CPU auf der gleichen integrierten Schaltung resident ist wie der Zeitgeber 15, ist dies zur Implementierung der Prinzipien der vorliegenden Erfindung nicht erforderlich.
  • Bestimmte Merkmale des Zeitgebers 15 werden nur mit Verweis auf die Einzelheiten der Signale und Funktionen des IMB 12 klar verstanden werden. Die folgende Tabelle faßt daher diese Merkmale des IMB 12 zusammen. Der IMB 12 gleicht in vieler Hinsicht den Bussen bekannter Mikroprozessoren und Mikrocomputern, die von dem Zessionar der vorliegenden Erfindung erhältlich sind, und kann in diesem Kontext am besten verstanden werden. Die Signalrichtungen in der Tabelle sind hinsichtlich ihrer Funktion innerhalb der Zeitgebers 15 festgelegt. SIGNALNAME MNEMONISCH FUNKTION RICHTUNG Adreßbus 24 Bit Adreßbus Eingang Datenbus 16 Bit Datenbus mit Busgrößenbestimmung Eingang/Ausgang Funktionscode Indentifiziert CPU-Status und Adreßraum Modulplan MODMAP Zeigt Lage der Modulregister im Speicherplan der CPU an Takt CLOCK Hauptsystemtakt Zyklusstart Zelgt Beginn von IMB-Zyklus an Adreßstrobe Zeigt gültige Adresse an Datenstrobe Zelgt gültige Daten bei Schreibzyklus an Lesen/Schreiben WRITE Zeigt Typ von Buszyklus relativ zu Master an Transfergröße SIZ0-SIZ1 Zahl d. zu übertragenden restlichen Bytes Adreßbestätigung Durch gewähltes Slave modul geltend gemacht Ausgang Datentransferbestät. Slaveantwort, die Buszyklus abschließt Busfehler Beendet Buszyklus, wenn keine gültige Antwort erh. Aufgeben und Wiederholen RRT Bricht Busherrschaft Wiederholen RETRY Beendet Buszyklus und veranlaßt Wlederh. d. Zykl. Halt HALT Zelgt CPU-Halt infolge anorn. Zustands an SIGNALNAME MNEMONISCH FUNKTION RICHTUNG Haltepunktanforderung Fordert CPU auf, bei momentanem Buszyklus Haltepunkt einzusetzen Ausgang Haltepunkt-Bestätigung FREEZE CPU-Bestätigung der Debugmoduseingabe Eingang Systemrücksetzung "Weiche" Systemrücksetzung unter CPU-Steuerung Hauptrücksetzung "Harte" Rücksetzung unter externer Steuerung Unterbrechungsanforderungsebene Priorisierte Unterbrechungsanforderung an CPU Unterbrechungsentscheidung Unterbrechungsentscheidung-Identifizierungsleitungen Eingang/Ausgang Autovektor AVEC Gibt Autovektormerkmal während Unterbrechungsbestätigungszyklus frei Busanforderung Entscheidungssignale f. priorisierte Busherrschaft Bus Halten BLOCK Erlaubt moment. Busmaster, den Bus beizubehalten Testmodus Gibt Testmodus in allen Modulen frei IMB-Testleitungen freigeben Schaltet Funktion von IRQ1-IRQ7 auf Testleitungen
  • Diejenigen IMB-Signale, die in der Spalte "Richtung" mit Stern markiert sind, werden von dem Zeitgeber 15 nicht benutzt. Wie unten beschrieben wird, hat der Zeitgeber 15 eine Nur-Slave-Schnittstelle zu dem IMB 12 und verlangt daher die Verwendung bestimmter Signale nicht.
  • Gewisse andere Merkmale des Mikrocomputers 10 sind der Gegenstand der mitanstehenden US-A-5,084,814, 28.01.92. Die darin beanspruchte Er-Erfindung steht nicht in Bezug zu der vorliegenden Erfindung, außer durch den gemeinsamen Kontext der bevorzugten Ausführungen.
  • Aus der Sicht der CPU 11 existiert der Zeitgeber 15 als eine Anzahl von Plätzen in dem Speicherplan der CPU 11. Das heißt, die CPU 11 interagiert mit dem Zeitgeber 15 hauptsächlich, wenngleich nicht ausschließlich, durch Lesen und Schreiben der in diesen Speicherplätzen befindlichen Zeitgeberregister. Fig. 2A-2B zeigen die Stellen und Namen der Zeitgeberregister. Die Adressen sind in Hexadezimalform und Funktionscodebits sind in Binärform angegeben. Während einige dieser Register unten ausführlicher beschrieben werden mögen, wird die folgende Beschreibung die Funktion von jedem zusammenfassen. Es sollte beachtet werden, daß die Kurzbeschreibung unten aus der Sicht der Host-CPU erfolgt. Der Zugriff auf die verschiedenen Zeitgeberregister durch den Zeitgeber 15 mag der Beschreibung unten nicht folgen. Wo für die vorliegende Erfindung von Bedeutung, werden diese Details später beschrieben werden.
  • Das Modulkonfigurationsregister, das ausschließlich in dem Supervisoradreßraum der CPU 11 existiert (wie durch die Funktionscodebits 101 angezeigt), enthält sechs Bitfelder, die bestimmte Attribute des Zeitgebers 15 spezifizieren. Diese Attribute sind: die Unterbrechungsentscheidungs-ID, die Supervisor/Benutzer-Adreßraumstelle bestimmter anderer Register, ein Stoppbedingungsflag, ein Stoppsteuerbit, ein TCR2-Quellensteuerbit, ein Emulationsmodus-Steuerbit, ein TCR1-Vorteilersteuerbit und ein TCR2-Vorteilersteuerbit.
  • Das Mudultestregister enthält Bitfelder, die Aspekte eines Testmodusses des Zeitgebers 15 steuern, die für die vorliegende Erfindung nicht relevant sind.
  • Das Entwicklungsunterstützung-Steuerregister enthält eine Anzahl von Bitfeldern, die das Zusammenwirken des Zeitgebers 15 mit den Entwicklungsunterstützungszusätzen der CPU 11 bestimmen. Gleicherweise betrifft das Entwicklungsunterstützung-Statusregister nur den Status des Zeitgebers 15 in bezug auf diese Entwicklungsunterstützungszusätze. Diese Zusätze sind für die vorliegende Erfindung ohne Bedeutung. Weitere Einzelheiten über diese Entwicklungsunterstützungszusätze der CPU 11 können in der oben erwähnten US-A-5,084,814, 28.02.92 gefunden werden.
  • Das Unterbrechungsregister enthält zwei Bitfelder, die zwei Merkmale der von dem Zeitgeber 15 an die CPU 11 erzeugten Unterbrechungen festlegen. Ein Feld spezifiziert die vier höchstwertigen Bits des Unterbrechungsvektors für alle von dem Zeitgeber 15 erzeugten Unterbrechungen. Das andere Bitfeld spezifiziert eine Prioritätsstufe für alle von dem Zeitgeber 15 erzeugten Unterbrechungen. Es ist möglich, dieses Bitfeld zu setzen, um alle Unterbrechungen vom Zeitgeber 15 unwirksam zu machen, das Bitfeld so zu setzen, daß Unterbrechungen vom Zeitgeber 15 die höchste Prioritätsstufe in bezug auf die CPU 11 haben (d.h. eine nichtmaskierbare Unterbrechung), und dieses Bitfeld auf verschiedene Stufen zwischen diesen beiden Extremen zu setzen. Wie bekannt ist, wird die Unterbrechungspriorität von der CPU 11 benutzt, um die relative Priorität von Zeitgeberunterbrechungen in bezug auf andere Unterbrechungsquellen zu bestimmen.
  • Das Phasenunterbrechung-Freigaberegister enthält 16 1-Bit Felder, wobei ein Feld jedem der sechzehn "Kanäle" des Zeitgebers 15 entspricht. Jedes Bitfeld ermöglicht oder sperrt, abhängig von seinem Status, die Erzeugung von Unterbrechungen durch den Service-Prozessor des Zeitgebers 15 (s. die Erörterung von Fig. 3 unten), solange er den mit diesem Bitfeld verbundenen Kanal bedient.
  • Die vier Kanalgrundprogramm-Auswahlregister enthalten sechzehn 4-Bit Felder, die bestimmen, welche der sechzehn möglichen Grundprogramme, oder Zeitgeberprogramme, durch den Service-Prozessor innerhalb des Zeitgebers 15 auszuführen sind, wenn er einen einzelnen Kanal bedient. Jedes der sechzehn Bitfelder ist einem der sechzehn Zeitgeberkanäle zugeordnet. Die vier Bits in einem Feld werden als ein Teil einer Adresse benutzt, die einem Steuerspeicher in dem Service-Prozessor zugeführt wird, wenn der Prozessor beginnt, den diesem Feld zugeordneten Kanal zu bedienen. Die von dem Steuerspeicher als Antwort auf diese Adresse zurückgebrachten Daten werden als Einsprungstelle, oder Startadresse, für das auszuführende Grundprogamm verwendet, während dieser Kanal bedient wird. Der Steuerspeicher des Service-Prozessors kann bis zu 16 verschiedene Grundprogramme und bis zu 16 Einsprungstellen für jeden der 16 Kanäle enthalten (insgesamt 256 Einsprungstellen). Die Gesamtgröße des Steuerspeichers liegt fest, aber die Zuordnung zwischen dem Grundprogrammcode und den Einsprungstellen kann variieren. Das heißt, es ist möglich, weniger als die 256 Einsprungstellenspeicherplätze zu benutzen und die "überschüssige" Speicherkapazität zu verwenden, um mehr Grundprogrammcode aufzunehmen.
  • Die zwei Host-Sequenzregister können, abhängig von einem der Bitfelder in dem Modulkonfigurationsregister, entweder in den Supervisoroder den nicht-beschränkten Adreßräumen der CPU 11 vorhanden sein. Dies wird durch den Funktionscode X01 angezeigt, wobei X von dem SUPV- Bit in dem Modulkonfigurationsregister abhängt. Die Host-Sequenzregister enthalten sechzehn 2-Bit Felder, eines für jeden der sechzehn Zeitgeberkanäle. Die Host-Sequenzbitfelder stehen zur Benutzung durch ein auf dem Service-Prozessor ablaufendes Grundprogramm als Verzweigungsbedingungen zur Verfügung, werden davon aber nicht unbedingt benutzt. Das heißt, es ist möglich, den Befehlsfluß in einem Grundprogramm abhängig vom Status der zwei Host-Sequenzbits zu ändern.
  • Die zwei Host-Serviceanforderungsregister enthalten sechzehn 2-Bit Felder, eines für jeden Zeitgeberkanal. Durch Schreiben in das passende Bitfeld kann die Host-CPU einen der Zeitgeberkanäle zum Service durch den Service-Prozessor des Zeitgebers 15 einplanen. Da jeder Kanal zwei Bits in einem der Host-Serviceanforderungsregister besitzt, gibt es vier mögliche Werte pro Kanal. Es gibt drei verschiedene "Arten" von Diensten, die für jeden Kanal angefordert werden können, die drei der vier möglichen Werte entsprechen. Der vierte Wert zeigt an, daß kein Host-angeforderter Service zu planen ist. Die drei Werte, die eine Host-initiierte Serviceanforderung anzeigen, werden in einer Weise benutzt, die den oben beschriebenen Grundprogramm-Auswahlbits ähnlich ist. Die Host-Serviceanforderungsbits werden nicht direkt benutzt, um eine Einsprungadresse zu erhalten, sondern werden zusammen mit anderen Kanalzustandsbits codiert.
  • Die zwei Kanalprioritätsregister enthalten sechzehn 2-Bit Felder, eines für jeden Kanal. Jedes Bitfeld spezifiziert eine aus vier möglichen Prioritätsstufen für seinen zugeordneten Kanal. Diese Prioritätsstufe wird von einem Scheduler innerhalb des Service-Prozessors des Zeitgebers 15 benutzt, um zu bestimmen, welcher von verschiedenen konkurrierenden Kanälen zuerst zu bedienen ist. Die vier möglichen Prioritätsstufen sind: abgeschaltet, niedrig, mittel und hoch. Der Service-Scheduler weist die Resourcen des Service-Prozessors so zu, daß auch einem Kanal mit niedriger Priorität garantiert wird, innerhalb einer bestimmten Zeit Service zu erhalten. Jedem der Kanäle kann eine der vorhandenen Prioritätsstufen zugewiesen werden, und jede Kombination von Prioritätsstufen auf den sechzehn Kanälen ist zulässig.
  • Das Phasenunterbrechung-Statusregister enthält ein Bit für jeden der sechzehn Kanäle und ist dem oben erörterten Phasenunterbrechung-Freigaberegister zugeordnet. Wenn der Service-Prozessor bestimmt, daß eine Unterbrechung erzeugt werden sollte, während ein einzelner Kanal bedient wird, wird das Bit in dem Phasenunterbrechung-Statusregister, das diesem Kanal entspricht, gesetzt. Wenn das entsprechende Bit des Phasenunterbrechung-Freigaberegisters gesetzt ist, wird eine Unterbrechung erzeugt. Wenn nicht, bleibt das Statusbit gesetzt, aber es wird keine Unterbrechung an die Host-CPU erzeugt.
  • Das Linkregister enthält ein Bit für jeden der sechzehn Zeitgeberkanäle. Jedes Bit zeigt an, daß ein besonderer Typ von Serviceanforderung, eine Link-Serviceanforderung, geltend gemacht worden ist, um eine Serviceanforderung für den entsprechenden Kanal einzuleiten.
  • Das Servicegewährung-Latchregister enthält sechzehn 1-Bit Felder. Jedem Zeitgeberkanal ist eines dieser Felder zugeordnet. Wenn gesetzt, zeigt ein Bit dem Servicegewährung-Latchregister an, daß dem zugehörigen Kanal ein "Zeitkanal" zum Service durch den Service-Prozessor bewilligt worden ist. Die Bits in diesem Register werden von dem Scheduler innerhalb des Service-Prozessors im Verlauf der Zuweisung der Resourcen des Service-Prozessors verwendet.
  • Das Decodierte-Kanalnummerregister enthält ein 1-Bit Feld für jeden Zeitgeberkanal, das, wenn gesetzt, anzeigt, daß, wenn der Service- Prozessor zuletzt einen neuen Kanal zu bedienen begann, er den Kanal bedient hat, der in dem Decodierte-Kanalnummerregister angezeigt wird. Diese Kanalidentität bleibt konstant, auch wenn das gerade ausgeführte Grundprogramm eine "Kanal-Ändern" Funktion ausführt, die die Identität des tatsächlich von dem Service-Prozessor gesteuerten Kanals ändert.
  • Der Rest des Speicherplans des Zeitgebers 15, wie er von seiner Host- CPU gesehen wird, umfaßt eine Anzahl von Kanalparameterregistern. Jeder der sechzehn Zeitgeberkanäle besitzt sechs Parameterregister, die diesen zugeordnet sind. Wie unten ausführlicher beschrieben wird, werden die Parameterregister als gemeinsamer Arbeitsbereich benutzt, durch den die Host-CPU und der Zeitgeber 15 miteinander Information austauschen können.
  • Fig. 3 zeigt den Zeitgeber 15 vom Rest des Mikrocomputers 10 getrennt. Die Hauptfunktionselemente des Zeitgebers 15 kann man sich als einen Service-Prozessor 20, 16 Zeitgeberkanäle 21a-21p, auch mit CH0-CH15 bezeichnet, und eine Busschnittstelleneinheit (BIU) 22 umfassend vorstellen. Jeder Zeitgeberkanal ist mit einem einzelnen Pin des Mikro- Computers 10 verbunden. Kanal 0 ist mit Pin TP0 verbunden, Kanal 1 ist mit Pin TP1 verbunden usw. Wie bei Mikrocomputern üblich, ist es möglich, daß jeder dieser Pins zwischen dem Zeitgeber 15 und einigen anderen Funktionsmodulen des Mikrocomputers 10 "geteilt" wird, obwohl dies bei der hier beschriebenen bevorzugten Ausführung nicht der Fall ist.
  • Die Verbindungen zwischen dem Service-Prozessor 20 und den Kanälen 21a-21p umfassen einen Servicebus 23, einen Ereignisregister-(ER)-Bus 24, einen Zeitgeber-Zählregister #1 -(TCR1)-Bus 25, einen Zeitgeber- Zählregister #2 -(TCR2)-Bus 26 und eine Anzahl verschiedener Steuer-und Statusleitungen 27. Der Servicebus 23 wird von den Kanälen 21a- 21p benutzt, um den Dienst des Service-Prozessors 20 anzufordern. Der ER-Bus 24 wird verwendet, um den Inhalt der Ereignisreglster in jedem Kanal an den Service-Prozessor 20 zu leiten und um diese Register vom Service-Prozessor 20 zu laden. Die zwei TCR-Busse werden verwendet, um den momentanen Inhalt der zwei Zeitgeber-Zählregister, die sich innerhalb des Service-Prozessors 20 befinden, an die Kanäle 21a-21p zu übermitteln.
  • Die BIU 22 dient als eine Schnittstelle zwischen dem IMB 12 und dem Service-Prozessor 20. Die Details einer solchen Busschnittstelle sind für die vorliegende Erfindung ohne Bedeutung und sind in der Technik bekannt. Bei der bevorzugten Ausführung ist die BIU 22 eine "Nur- Slave"-Schnitstelle. Das heißt, der Zeitgeber 15 kann der Empfänger von über den IMB 12 übertragenen Informationen sein, kann aber keine Transfers auf dem IMB 12 einleiten.
  • Wie unten ausführlicher beschrieben wird, enthält der Service-Prozessor 20 einen Steuerspeicher. Der Steuerspeicher umfaßt eine Nurlesespeichereinheit, die die Befehle enthält, die von dem Service- Prozessor 20 ausgeführt werden. Bei der bevorzugten Ausführung wird diese als maskenprogrammierbares ROM implementiert. Wie ein Fachmann in der Technik einsehen wird, macht ein solcher Steuerspeicher die Entwicklung der in den Steuerspeicher zu programmierenden Software problematisch. Um dieses Problem anzusprechen, eine Emulationsschnittstelle 17 verbindet den Service-Prozessor 20 mit dem Speicher 14. Das heißt, der Service-Prozessor 20 ist imstande, in dem Speicher 14 gespeicherte Befehle anstelle der im Steuerspeicher enthaltenen Befehle auszuführen. Bei der bevorzugten Ausführung ist der Speicher 14 ein veränderbarer Speicher, wie z.B. ein Speicher mit wahlfreiem Zugriff (RAM). Die Emulationsschnittstelle 17 dient dem Zweck, einem Benutzer zu gestatten, Grundprogramme für den Service-Prozessor 20 zu schreiben, auszuführen und zu ändern. Einmal ganz fehlerfrei, könnten diese Grundprogramme in künftige Versionen des Steuerspeichers aufgenommen werden.
  • Eine externe Zeittaktquelle, die die Basis für den in TCR2 enthaltenen Zählwert bilden kann, ist an den Service-Prozessor 20 angeschlossen. Das oben beschriebene Bit in dem Modulkonfigurationsregister steuert, ob das TCR2 durch diese externe Taktquelle oder durch die interne Taktreferenz getaktet wird.
  • Im allgemeinen ist der Service-Prozessor 20 verantwortlich, hauptsächlich durch die Verwendung des ER-Busses 24 und der Steuerleitungen 27, die Kanäle 21a-24p zu konfigurieren, um vorbestimmte Timingaufgaben auszuführen. Die Kanäle 21a-21p führen diese Aufgaben wie befohlen aus und informieren von Zeit zu Zeit den Service-Prozessor 20 über das Eintreten von Ereignissen und dergleichen, indem sie Service anfordern. Der Serviceprozessor 20 ist verantwortlich, zu bestimmen, welche, wenn überhaupt eine, Aktion als Antwort auf eine Serviceanforderung von einem einzelnen Kanal vorzunehmen ist, und diesen Service einzuleiten. Der Service-Prozessor 20 ist wiederum von seiner Host-CPU (In diesem Fall CPU 11), um die auszuführenden Timing- funktionen zu identifizieren, und hinsichtlich bestimmter anderer Dienste abhängig, wie unten ausführlicher beschrieben wird. Der Servive-Prozessor 20 ist auch ausschließlich für die Einleitung von Unterbrechungsanforderungen an die Host-CPU verantwortlich. Bei der bevorzugten Ausführung wird diese Funktion durch die in dem Steuerspeicher des Service-Prozessors 20 residenten Programme gesteuert.
  • Die TCR1- und TCR2-Busse stehen jedem der sechzehn Kanäle ständig zur Verfügung und werden nach einem vorbestimmten Plan mit dem neuen Inhalt der jeweiligen Zeitgeber-Zählregister aktualisiert. Gleichermaßen kann jeder der sechzehn Kanäle zu jeder Zeit über den Servicebus 23 eine Serviceanforderung geltend machen. Der Service-Prozessor 20 steht jedoch bezüglich des ER-Busses 24 und der Steuer- und Statusleitungen 27 zu einer Zeit nur mit einem einzigen der sechzehn Kanäle in Verbindung. Lese- und Schreibvorgänge der Ereignisregister über den ER- Bus 24 und die verschiedenen Steuer- und Statussignale auf den Steuerund Statusleitungen 27 sind nur wirksam im bezug auf diesen einzigen Kanal, der augenblicklich von dem Service-Prozessor 20 bedient wird. Jeder Kanal muß bis zu dem erforderlichen Grad die ihm durch die Steuerleitungen 27 übermittelten Steuerinformationen speichern, um sie zu bewahren, während der Service-Prozessor andere Kanäle bedient.
  • Zusätzlich zu einer durch einen Kanal über den Servicebus 23 eingeleiteten Serviceanforderung reagiert der Service-Prozessor auf Serviceanforderungen, die von der Host-CPU initiiert werden. Durch Schreiben geeigneter Werte in die oben beschriebenen Host-Serviceanforderungsregister kann die Host-CPU die Planung des Services für jeden einzelnen Kanal einleiten. Außerdem kann der Service-Prozessor 20 selbst eine solche Planung durch den unten ausführlicher beschriebenen Link-Serviceanforderungsmechanismus einleiten.
  • Fig. 4A-4D, die in der in Fig. 4E gezeigten Weise verknüpft sind, zeigen den detaillierten Aufbau des Zeitgebers 15. Ganz allgemein zeigt Fig. 4A die Mikromaschine des Service-Prozessors 20 (Fig. 3), Fig. 4B zeigt die Ausführungseinheit des Service-Prozessors 20, Fig. 4C zeigt die Zeitgeberkanalhardware und ihre Verbindungen zum Rest der Vorrichtung und Fig. 4D zeigt die Busschnittstelle, die Register und den Service-Scheduler.
  • Zuerst auf Fig. 4A verweisend sind die Hauptfunktionskomponenten der Mikromaschine ein Prioritätscodierer 30, ein Inkrementierer 31, ein Rückkehradreßregister 32, ein Multiplexer 33, eine Multiplexersteuerung 34, ein Mikroprogrammzähler 35, ein ROM-Steuerspeicher 36, ein Multiplexer 37, ein Mikrobefehlsregister 38, ein Mikrobefehlsdecoder 39, ein Multiplexer 40, eine Verzweigungs-PLA 41 und eine Mehrzahl von Flagregistern 42. Im allgemeinen wird eine durch den Multiplexer 33 aus einer Mehrzahl von möglichen Quellen ausgewählte Mikrobefehlsadresse in den Mikroprogrammzähler 35 geladen und dann dem ROM-Steuerspeicher 36 zugeführt. Der durch diese Adresse ausgewählte Mikrobefehl wird von dem ROM-Steuerspeicher 36 über den Multiplexer 37 dem Mikrobefehlsregister 38 zur Verfügung gestellt. Der Decoder 39 decodiert dann den Inhalt des Mikrobefehlsregisters 38 und stellt nach Bedarf Steuersignale in allen Teilen des Service-Prozessors zur Verfügung.
  • Während der Mikrobefehlsdecoder 39 als eine einzige Einheit dargestellt ist, von dem Steuersignale in alle übrigen Teile des Zeitgebers verteilt werden, wird der Fachmann erkennen, daß es vorteilhaft sein kann, dieses Schema zu ändern. Da die Zahl der von dem Mikrobefehlsregister 38 ausgegebenen Bits kleiner ist als die Zahl der von der Decoderlogik 39 ausgegebenen Steuersignale, kann es vorteilhaft sein, den Ausgang von dem Mikrobefehlsregister 38 überall in dem Zeitgeber zu verteilen und mehrere verteilte Decoder an verschiedenen Stellen vorzusehen. Die Kompromisse zwischen eingesparter Signalführung und doppelter Decoderlogik sind komplexe Entwurfsentscheidungen, die von Fall zu Fall zu treffen sind.
  • Die oben erörterte Emulationsschnittstelle (Bezugszeichen 17 in Fig. 1 und 3) ist hier als eine Emulationsleitung 50, eine Speicherzyklusstartleitung 51, eine Mikrobefehlsadreßleitung 52 und eine Mikrobefehlsleitung 53 umfassend dargestellt. Wenn der Emulationsmodus in Kraft ist, wie durch den Status des Signals auf der Emulationsleitung 50 befohlen, wird das RAM 50 auf Adressen auf der Leitung 52 ansprechen, um Mikrobefehle auf der Leitung 53 zu erzeugen. Der Multiplexer 37 wählt diese Mikrobefehle anstelle von denjenigen, die von dem ROM-Steuerspeicher 36 geliefert werden, und stellt die von dem RAM erzeugten Mikrobefehle dem Mikrobefehlsregister 38 zur Verfügung. Der Status der Emulationsleitung 50 wird durch das Emulationsmodussteuerbit in dem Modulkonfigurationsregister gesteuert und befindet sich daher unter der Kontrolle der Host-CPU. Das Speicherzyklusstartsignal ist einfach ein von dem Systemtakt abgeleitetes Timingsignal.
  • Für den Fall, daß ein eingehendes Verständnis der Merkmale und der Funktion der in Fig. 4A gezeigten Mikromaschine zur Praxis der vorliegenden Erfindung erforderlich ist, wird Fig. 4A unten ausführlicher beschrieben. Auf Fig. 4B verweisend wird die Ausführungseinheit des Service-Prozessors beschrieben. Die Ausführungseinheit umfaßt zwei bidirektionale 16-Bit Busse: einen A-Bus 60 und einen B-Bus 61. Ein Ereignisregister-Transferregister 63 ist mit dem A-Bus 60 bidirektional verbunden. Gleichermaßen sind das Zeitgeber-Zählregister #1 64 und das Zeitgeber-Zählregister #2 65 mit dem A-Bus 60 bidirektional verbunden. Ein Dekrementierer 66 mit dem A-Bus 60 bidirektional verbunden. Ferner ist der Dekrementierer 66 geschaltet, um Steuereingänge von einer Dekrementierer-Steuerung 67 zu empfangen und um über Leitung 68 Ausgänge an die Multiplexersteuerung 34 und den Mikroprogrammzähler 35 von Fig. 4A zu liefern. Ein Schieberegister 69 ist bidirektional mit dem A-Bus 60 verbunden und ist geschaltet, um Ausgänge an den B-Bus 61 zu liefern. Das Schieberegister 69 ist geschaltet, um Eingänge von einem Schieber 70 zu empfangen. Der Schieber 70 ist bidirektional mit dem A-Bus 60 verbunden.
  • Der Schieber 70 ist ferner geschaltet, um Eingänge von einer arithmetischen Einheit (AU) 71 zu empfangen. Die AU 71 empfängt Eingänge von zwei Eingangs-Latchs Ain 72 und Bin 73. Die Latchs 72 und 73 sind geschaltet, um Eingänge von dem A-Bus 60 bzw. dem B-Bus 61 zu empfangen. Die AU 71 liefert eine Anzahl von Bedingungscodeausgängen an die Verzweigungs-PLA 41.
  • Ein Universal-Akkumulator (A) 74 ist bidirektional mit dem A-Bus 60 verbunden und ist geschaltet, um Ausgänge an den B-Bus 61 zu liefern. Ein Parameter-Vorladeregister 75 ist bidirektional mit dem A-Bus 60 verbunden und ist geschaltet, um Ausgänge an den B-Bus 61 zu liefern. Ferner ist das Parameter-Vorladeregister 75 geschaltet, um mittels der Leitung 76 Ausgänge an die Kanalsteuerhardware von Fig. 4C zu liefern. Das Register 75 ist auch bidirektional mit einem Multiplexer 77 verbunden.
  • Ein Daten-Eingangs/Ausgangspuffer-(DIOB) Register 78 ist bidirektional mit dem A-Bus 60 verbunden und ist geschaltet, um Ausgänge an den B- Bus 61 zu liefern. Das DIOB 78 ist auch bidirektional mit dem Multiplexer 77 verbunden. Ferner ist das DIOB 78 geschaltet, um Ausgänge an einen Multiplexer 79 zu liefern. Der Multiplexer 79 ist geschaltet, um Ausgänge an ein Parameter-RAM-Adreßregister 80 zu liefern.
  • Ein Multiplexer 85 ist geschaltet, um Eingänge von dem A-Bus 60 und von der Leitung 86 zu empfangen, die ihren Ursprung in dem Service- Scheduler von Fig. 4D hat. Der Ausgang von Multiplexer 85 wird einem Kanalregister 87 als Eingang zur Verfügung gestellt. Das Kanalregister 87 ist geschaltet, um über die Leitung 201 Ausgänge an den A- Bus 60 und über die Leitung 89 an die Kanalsteuerhardware von Fig. 4C zu liefern. Es ist mittels des Inhalts des Kanalregisters 87, daß die verschiedenen Steuersignale und ER-Buszyklen in der in Fig. 4C gezeigten Kanalsteuerhardware passend an den einzelnen Kanal, der gerade bedient wird, gerichtet werden. Wegen der Fähigkeit der dargestellten Vorrichtung, die Identität dieses Kanals während der Ausführung eines Serviceprogramms, oder Grundprogramms, zu verändern, wird der Inhalt des Kanalregisters 87 nicht immer dem Inhalt des oben mit Bezug auf Fig. 2A und 2B beschriebenen Decodierte-Kanalnummerregisters entsprechen. Das letztere Register enthält die Identität des Kanals, auf dem die Ausführung des augenblicklich ausführenden Grundprogramms begonnen wurde, während das Kanalregister 87 die Identität des Kanals enthält, an den augenblicklich Steuersignale gerichtet werden. Für den Fall, daß diese Unterscheidung zu einem Verständnis der vorliegenden Erfindung wichtig ist, wird sie unten ausführlicher beschrieben.
  • Ein Linkregister 88 ist geschaltet, um Eingänge von dem A-Bus 60 zu empfangen und Ausgänge an einen Decoder 89 zu liefern. Die vier Bits des Linkregisters 88 werden von dem Decoder 89 decodiert, um sechzehn Bits zu erzeugen, von denen jedes einem der Zeitgeberkanäle zugeordnet ist. Diese sechzehn Bits werden an die Verzweigungs-PLA 41 von Fig. 4A und über die Leitung 90 an den Service-Scheduler von Fig. 4D angelegt. Das Linkregister 88 stellt die Mittel zur Verfügung, mit denen der Service-Prozessor den Service für einen beliebigen Kanal unter Mikrobefehlssteuerung planen kann, indem er einfach die Identität des gewünschten Kanals in das Linkregister 88 schreibt. Das Linkregister 88 unterscheidet sich von dem oben mit Bezug auf Fig. 2A und 2B beschriebenen Linkregister. Das Linkregister 88 enthält die Identität des Registers, für das eine Link-Serviceanforderung, wenn vorhanden, durch den Service-Prozessor im Augenblick eingeleitet wird. Das oben mit Bezug auf Fig. 2A und 2B beschriebene Linkregister enthält einfach ein Flagbit für jeden Kanal, das anzeigt, daß eine Link-Serviceanforderung eingeleitet wurde, auf die aber noch nicht reagiert wurde.
  • Für den Fall, daß ein eingehendes Verständnis der Merkmale und der Funktion der in Fig. 4B gezeigten Ausführungseinheit zur Praxis der vorliegenden Erfindung erforderlich ist, wird Fig. 4B unten ausführlicher beschrieben.
  • Fig. 4C zeigt die Kanalhardware. Die Einzelkomponenten eines einzigen Kanals werden unten mit Verweis auf Fig. 5 beschrieben. Aus der Sicht des Restes des Zeitgebers erscheint die Kanalhardware als sechzehn Ereignisregister, hier ER0-ER15 bezeichnet, ein eins-aus-sechzehn Decoder 100 und ein Block aus Steuerlogik 101. Jeder TCR-Bus ist mit jedem der sechzehn Ereignisregister verbunden. Der ER-Bus, der eine bidirektionale Kommunikation mit dem ERT-Register 63 (Fig. 4B) zur Verfügung stellt, ist mit dem Decoder 100 verbunden. Dadurch können Werte zwischen einem beliebigen Ereignisregister und der in Fig. 4B gezeigten Ausführungseinheit übertragen werden. Wie ersichtlich ist, werden Zeitgeber-Zählwerte von der Ausführungseinheit an die Ereignisregister, um übereinstimmungsereignisse aufzustellen, und von dem Ereignisregister als Reaktion auf Erfassungsereignisse an die Ausführungseinheit übertragen.
  • Leitung 89 von dem Kanalregister 87 (Fig. 4B) ist mit der Steuerlogik 101 verbunden, um dieser den Kanal anzuzeigen, der gerade bedient wird. Die Steuerlogik 101 empfängt auch eine Mehrzahl von Eingängen, direkt und durch den Multiplexer 102, von dem Mikrobefehlsdecoder 39 (Fig. 4A). Außerdem liefert die Steuerlogik 101 Ausgänge an die Verzweigungs-PLA 41 (Fig. 4A). Schließlich stellt ein Servicebus 105 der Steuerlogik 101 eine Einrichtung zur übermittlung von Serviceanforderungen van den verschiedenen Kanälen an den Scheduler von Fig. 4D zur Verfügung. Die Funktion der Kanalhardware wird wiederum unten ausführlicher beschrieben.
  • Fig. 4D zeigt den Host-Schnittstellenteil des Zeitgebers. Wie oben dargestellt, liefert die BIU 22 die notwendige Nur-Slave-Schnittstelle zu IMB 12, die es der Host-CPU gestattet, auf die Register des Zeitgebers zuzugreifen. Die BIU 22 ist bidirektional mit einem RAM-Bus 110 verbunden und ist geschaltet, um Ausgänge an einen Parameter-RAM- Adreßbus 111 zu liefern. Der Rest der in Fig. 4D dargestellten Vorrichtung umfaßt den Scheduler 112, die Systemregister 113, das Parameter-RAM 114, die Grundprogramm-Auswahlregister 115 und die Host- Serviceanforderungsregister 116, die alle bidirektional mit dem RAM- Bus 110 verbunden sind.
  • Der Scheduler 112 umfaßt die Einrichtungen, mit denen den sechzehn Zeitgeberkanälen die Resourcen des Service-Prozessors zugewiesen werden. Wie gezeigt, kann man sich die zwei Kanalprioritätsregister, das Linkregister, das Dekodierte-Kanalnummeregister und das Servicegewährung-Latchregister (alle oben mit Verweis auf Fig. 2A und 2B beschrieben) als innerhalb des Schedulers 112 residierend vorstellen, und alle sind bidirektional mit dem RAM-Bus 110 verbunden.
  • Der Scheduler 112 empfängt ein einziges Eingabebit von dem Mikrobefehlsdecoder 39, das anzeigt, daß die Bedienung eines einzelnen Kanals vollendet worden ist. Dies leitet den Prozeß ein, durch den der Scheduler 112 bestimmt, welche der anstehenden Serviceanforderungen als nächste zu bedienen ist. Der Scheduler 112 liefert auch ein einziges Ausgabebit an den Mikrobefehlsdecoder 39, um anzuzeigen, daß momentan für keinen Kanal ein Service geplant ist, was man auch als einen "Warte"-Zustand bezeichnet.
  • Der Scheduler 112 empfängt Eingänge von einem Servicebus 120, die 48 Bits umfassen, die aus einer Zusammensetzung aus sechzehn Bits von der Leitung 105, sechzehn Bits von dem Decoder 89 über die Leitung 90 und sechzehn Bits von den Host-Serviceanforderungsregistern 116 gebildet werden. Diese 48 Bits bezeichnen diejenigen Kanäle, für die die Kanalhardware selbst augenblicklich Service anfordert, diejenigen Kanäle, für die augenblicklich mittels des Linkregisters 88 Service angefordert wird, und diejenigen Kanäle, für die mittels der Host-Serviceanforderungsregister 116 Service angefordert wird. Der Scheduler 112 nimmt diese Eingaben an, erwägt die relative Priorität der Kanäle, für die Service angefordert wird, wie durch die Werte in den Kanalprioritätsregistern dargestellt, und bestimmt, welcher Kanal als nächster zu bedienen ist. Ein 4-Bit Bezeichner des ausgewählten Kanals wird über die Leitung 86 unter anderem an den Multiplexer 85, die Grundprogramm-Auswahl register 115 und an die Host-Serviceanforderungsregister 116 ausgegeben.
  • Wie oben erwähnt, hat jeder Kanal vier Prioritätsstufen, die ihm Kraft der entsprechenden Bits in den Prioritätsregistern zugewiesen werden. Das Schema, nach dem der Scheduler 112 die Kanäle mit anstehenden Serviceanforderungen zur Bedienung einplant, stellt sicher, daß auch ein Kanal mit niedriger Priorität letztendlich Service erhalten wird. Dieses Merkmal ist wichtig, um sicherzustellen, daß keine Timingfunktionen wegen der zum Bedienen anderer Funktionen benötigten Zeit gänzlich verpaßt werden. Unter den Kanälen mit der gleichen Prioritätsstufe weist der Scheduler 112 den Service reihum zu.
  • Jede Gelegenheit für den Scheduler 112, einen neuen Kanal zum Service auszuwählen (d.h. wenigstens eine Serviceanforderung steht an und kein Kanal wird momentan bedient), wird als Zeitkanalgrenze bezeichnet. Das von dem Scheduler 112 benutzte Schema weist vier von sieben verfügbaren Zeitkanälen den Kanälen mit hoch eingestellter Priorität, zwei von sieben den Kanälen mit mittel eingestellter Priorität und einen von sieben den Kanälen mit niedriger Priorität zu. Die einzelne benutzte Sequenz ist: hoch, mittel, hoch, tief, hoch, mittel, hoch. Wenn kein Kanal der passenden Prioritätstufe während einer Zeitkanalgrenze eine Serviceanforderung anstehend hat, geht der Scheduler 112 zu der nächsten Prioritätsstufe entsprechend dem folgenden Schema: hoch-mittel- tief; mittel-hoch-tief, und tief-hoch-mittel.
  • Innerhalb des Schedulers 112 befindet sich ein Serviceanforderungs-Latch für jeden Kanal, das gesetzt wird, wann immer irgendeine Art von Serviceanforderung für diesen Kanal ansteht. Dieses Latch wird von dem Scheduler 112 gelöscht, wenn diesem Kanal ein Zeitkanal zugewiesen wird und kann erst wieder neu gesetzt werden, wenn der Service beendet worden ist. Dies beeinhaltet, daß keinem Kanal zwei aufeinanderfolgende Zeitkanäle zugewiesen werden können, es sei denn, es besteht ein Wartestatus zwischen den Zeitkanälen und von anderen Kanälen stehen keine Serviceanforderungen an.
  • Unter den Kanälen mit gleicher Priorität stellt der Scheduler 112 sicher, daß alle Kanäle, die Service anfordern, bedient werden, bevor einer von ihnen zweimal bedient wird. Der Kanal mit der niedrigsten Nummer in einer Gruppe von Kanälen gleicher Priorität wird zuerst bedient werden.
  • Natürlich sind andere Schemas zur Zuweisung der Priorität unter konkurrierenden Forderungen nach Zugang zu begrenzten Verarbeitungsresourcen bekannt und weichen stark voneinander ab. Viele andere solcher Schemas könnten durch das gerade beschriebene ersetzt werden. Das offenbarte Schema wird für Zeitgebersysteme als vorteilhaft erachtet, da es auch den Anforderern mit niedrigster Priorität die Bedienung garantiert.
  • Das Parameter-RAM 114 umfaßt 6 Parameterregister mit je 16 Bits für jeden der sechzehn Zeitgeberkanäle, ingesamt 196 Byte RAM. Das Parameter-RAM 114 hat "Zweifach-Zugriff" in dem Sinn, daß sowohl die Host- CPU als auch der Service-Prozessor Daten darin lesen und schreiben können, aber nur einer von ihnen zu einer Zeit Zugriff haben kann. Ein Adreßmultiplexer 122 und ein Datenmultiplexer 123 wählen aus, ob der Service-Prozessor oder die Host-CPU Zugang erlangt. Eine Schlichtungslogik, die hier nicht gezeigt wird, entscheidet hier tatsächlich, welcher mögliche Busmaster den Zugang erlangen wird. Der Adreßmultiplexer 122 empfängt über den RAM-Adreßbus 111 Adressen von dem Adreßregister 80 und von der BIU 22. Der Datenmultiplexer 123 ist bidirektional mit dem RAM-Bus 110 und dem Multiplexer 77 verbunden. Die Verfahren, nach denen durch den Service-Prozessor Adressen zum Zugreifen auf das Parameter-ROM 114 erzeugt werden, werden unten in dem Umfang, wie sie für die vorliegende Erfindung von Bedeutung sind, ausführlicher erörtert. Es sollte jedoch beachtet werden, daß Adressen entweder basierend direkt auf dem momentanen Inhalt des Kanalregisters 87 (s. Fig. 4B) oder basierend auf den durch Addition eines Versatzwerts modifizierten Inhalten erzeugt werden können. Diese Adressierungsmodi, bei denen die Parameter-RAM-Adresse relativ zu dem momentanen Kanal spezifiziert wird, bieten eine wesentlich erhöhte Flexibilität bei der Erzeugung von Grundprogrammen, die zur Ausführung durch den Service-Prozessor gedacht sind.
  • Ein anderer wichtiger Aspekt des Entwurfs des Parameter-RAM 114 beeinhaltet das Problem der Kohärenz. Wenn die Host-CPU dabei ist, verschiedene Parameter zur Benutzung z.B. durch Kanal 0 in das Parameter- RAM 114 zu schreiben, ist es wichtig, daß keine von dem Service-Prozessor ausgeführte Service-Routine in der Lage ist, diese Parameter zu benutzen, nachdem einige, aber nicht alle, geschrieben worden sind. Das gleiche Problem bei Mehrfach-Byte besteht in der umgekehrten Richtung; d.h.: Parameter, die von dem Service-Prozessor an die Host-CPU übertragen werden. Es gibt eine große Zahl verschiedener Verfahren zur Handhabung von Kohärenzproblemen, die in der Technik bekannt sind. Der Vollständigkeit halber wird das von der bevorzugten Ausführung benutzte Kohärenzschema nachstehend in zusammengefaßter Form beschrieben.
  • Eines der 16-Bit Wörter, die das Parameter-RAM 114 bilden, in diesem Fall das als Parameterregister 5 von Kanal 0 bestimmte Wort (s. Fig. 2B), wird zur Verwendung als Kohärenzdatensteuerregister (CDC) ausersehen. Bit 15 dieses Registers wird als ein Semaphor-Bit benutzt. Wann immer entweder der Service-Prozessor oder die Host-CPU auf das Parameter-RAM 114 zuzugreifen wünscht, wird zuerst das Semaphor-Bit geprüft und wenn es gesetzt ist, wird der Zugriff auf diejenigen Speicherplätze, die für den kohärenten Datentransfer benutzt werden, zurückgehalten, bis das Semaphor-Bit gelöscht ist. Wenn einer der möglichen Busmaster einen kohärenten Transfer einzuleiten wünscht, setzt er zuerst das Semaphor-Bit, führt dann den Transfer aus und löscht dann das Semaphor-Bit. Es bleibt den Programmierern überlassen, die Programme zur Ausführung durch sowohl die Host-CPU als auch den Service-Prozessor schreiben, dafür zu sorgen, daß dieses Schema durchgeführt wird.
  • Bit 14 ist als Modusbit ausersehen, das anzeigt, daß entweder 3 oder 4 Parameter (zu je 16 Bits) kohärent zu übertragen sind. Wenn 3 Parameter zu übertragen sind, dann werden die als Parameterregister 0-2 von Kanal 1 ausersehenen Wörter als die geschützten Speicherplätze verwendet. Wenn 4 Parameter zu übertragen sind, wird das Parameterregister 3 von Kanal 1 ebenfalls benutzt.
  • Weitere Einzelheiten des in der bevorzugten Ausführung verwendeten Kohärenzschemas sind hier nicht wichtig, da das Problem und viele seiner möglichen Lösungen den Fachleuten in der Technik bekannt ist.
  • Die Grundprogramm-Auswahlregister 115 umfassen die oben erörterten vier Kanalgrundprogramm-Auswahlregister. Diese Register sind bidirektional mit dem RAM-Bus 110 verbunden und empfangen von der Leitung 86 auch eine Eingabe, die den Kanal anzeigt, der bedient wird. Der Ausgang der Kanal grundprogramm-Auswahl register wird der Grundprogramm- Auswahllogik der Mikromaschine zur Verfügung gestellt.
  • Die Host-Serviceanforderungsregister 116 umfassen die zwei oben erörterten Host-Serviceanforderungsregister. Die Register 116 sind bidirektional mit dem RAM-Bus 110 verbunden und liefern einen 16-Bit Ausgang an den Servicebus 120. Wie oben erörtert, empfangen die Host- Serviceanforderungsregister 116 eine Eingabe von dem Scheduler 112, die den Kanal anzeigt, der augenblicklich bedient wird. Außerdem empfangen die Host-Serviceanforderungsregister 116 eine Eingabe von der Verzweigungs-PLA 41 und liefern dieser Ausgaben.
  • Die übrigen Register, die nicht anderswo in Fig. 40 dargestellt sind, werden einfach als Systemregister bezeichnet und sind als Block 113 dargestellt. Zu dieser Gruppe gehören die Host-Sequenzregister, die Eingaben an die Verzweigungs-PLA 41 liefern. Die anderen Register, wie das Mudulkonfigurationsregister, das Modultestregister und das Phasenunterbrechung-Freigaberegister liefern Ausgaben an in dieser Zeichnung nicht dargestellte Teile der Zeitgeberlogik, wie z.B. die Unterbrechungserzeugungslogik.
  • Soweit ein eingehendes Verständnis der Merkmale und der Funktion des in Fig. 40 gezeigten Host-Schnittstellen- und Schedulerteils zur Praxis der vorliegenden Erfindung erforderlich ist, wird Fig. 40 unten ausführlicher beschrieben.
  • Wie ersichtlich ist, kann die in Fig. 4A-4D gezeigte Vorrichtung möglicherweise nicht jede mögliche Logikstruktur eines so komplizierten Systems wie dem offenbarten enthalten. Die Gesamtstruktur und Funktion des offenbarten Zeitgebers wird jedoch einem Fachmann in der Technik aus der beschriebenen Vorrichtung ersichtlich sein.
  • In Fig. 5 ist die Steuerhardware eines einzigen Zeitgeberkanals dargestellt. Bei der bevorzugten Ausführung ist jeder der sechzehn Zeitgeberkanäle mit jedem anderen Zeitgeberkanal in jeder Beziehung identisch. Diese Eigenschaft, die ein wichtiges, als "Kanal-Orthogonalität" bezeichnetes, Systemmerkmal darstellt, schließt ein, daß jede Funktion, die von einem Kanal ausgeführt werden kann, auch von jedem anderen Kanal ausgeführt werden kann. Die in Fig. 5 gezeigte Hardware wird daher, außer für die unten besonders erwähnten Elemente, für jeden der sechzehn Zeitgeberkanäle der bevorzugten Ausführung dupliziert.
  • Das Ereignisregister 130 jedes Zeitgeberkanals umfaßt tatsächlich ein Erfassungsregister 131, ein übereinstimmungsregister 132 und einen "größer als oder gleich"-Komparator 133. Das Erfassungsregister 131 ist durch ein übertragungsgatter 134 mit dem ER-Bus verbunden, damit der Inhalt des Erfassungsregisters 131 auf den ER-Bus geladen werden kann. Das übereinstimmungsregister 132 ist durch das übertragungsgatter 135 bidirektional mit dem ER-Bus verbunden. Das Erfassungsregister 131 kann mittels des übertragungsgatters 136 entweder von dem TCR1- Bus oder dem TCR2-Bus geladen werden. Ein ähnliches übertragungsgatter 137 steuert, ob ein Eingang für den Komparator 133 der TCR1-Bus oder der TCR2-Bus ist. Der andere Eingang für den Komparator 133 ist immer das übereinstimmungsregister 132.
  • Am gegenüberliegenden Ende der in Fig. 5 gezeigten Vorrichtung ist der Pin 140, der diesem Zeitgeberkanal zugeordnet ist, mit einem Block der Pinsteuerlogik 141 verbunden. Die Pinsteuerlogik 141 ermittelt, ob der Pin 140 als ein Zeitgeber-Eingangspin oder als ein Zeitgeber-Ausgangspin konfiguriert ist. Wenn Pin 140 als ein Zeitgeber-Eingangspin konfiguriert ist, kann die Pinsteuerlogik 141 dazu gebracht werden, positiv gehende übergänge, negativ gehende übergänge oder beide übergänge zum Zweck der Auslösung eines Erfassungsereignisses zu erkennen. Wenn für Ausgang konfiguriert, kann die Pinsteuerlogik 141 programmiert werden, um beim Eintreten eines übereinstimmungsereignisses einen logisch hohen Pegel, einen logisch tiefen Pegel zu erzeugen oder Pegel umzuschalten. Ferner ist es möglich, jede ders drei oben erwähnten Möglichkeiten, ungeachtet, ob ein übereinstimmungsereignis eingetreten ist, zu erzwingen. Der Service-Prozessor besitzt die Kontrolle über die Pinsteuerlogik 141 durch den Statussteuereingang (mit dem der Pinstatus "erzwungen wird"), den Aktionssteuereingang (mit dem der zu ermittelnde übergang oder der erzeugte Pegel ausgewählt wird) und den Richtungssteuereingang (mit dem der Pin als "Eingang" oder "Ausgang" konfiguriert wird) und kann deren Status mit Hilfe des Statusausgangs überwachen.
  • Ein übergang-Ermittelt-Latch 145 ist geschaltet, um einen Eingang von der Pinsteuerlogik 141 zu empfangen. Wenn der spezifizierte übergang durch die Logik 141 an Pin 140 ermittelt worden ist, und wenn der Pin für Eingabe konfiguriert ist, wird das Latch 145 gesetzt. Das Latch 145 kann durch den Service-Prozessor unter Mikrocodesteuerung gelöscht, oder negiert, werden. Unter unten weiter beschriebenen betimmten Umständen ist das übergang-Ermittelt-Latch 145 dauernd negiert.
  • Ein übereinstimmung-Erkennungslatch 150 ist geschaltet, um einen Ausgang an die Pinsteuerlogik 141 zu liefern. Wenn der Inhalt des übereinstimmungsregisters 132 den Status eines ausgewählten TCR-Busses "trifft" und wenn andere logische Bedingungen erfüllt sind, wird das übereinstimmung-Erkennungslatch 150 gesetzt. Wenn dies eintritt und wenn Pin 140 für Ausgang konfiguriert ist, wird durch die Pinsteuerlogik 141 am Pin 140 der gewählte übergang erzeugt. Das übereinstimmung-Erkennungslatch 150 wird durch den Service-Prozessor unter Mikrocodesteuerung gelöscht.
  • Der Ausgang von übergang-Ermittelt-Latch 145 ist mit den Eingängen eines ersten ODER-Gatters 146 und eines ersten UND-Gatters 147 verbunden. Der andere Eingang von ODER-Gatter 146 ist der Ausgang von übereinstimmung-Erkennungslatch 150. Der Ausgang von ODER-Gatter 146 ist mit der Erfassungsereignislogik 148 verbunden. Die Erfassungsereignislogik 148 empfängt auch ein Steuersignal, das einen der zwei Zähler (Zeitbasissteuerung #2) angibt. Der Ausgang der Erfassungsereignislogik 148 ist mit dem übertragungsgatter 136 verbunden. Wenn der Ausgang des ODER-Gatters 146 aktiv wird, veranlaßt die Erfassungsereignislogik 148 das übertragungsgatter 136, den momentanen Wert des TCR1-Busses oder TCR2-Busses, abhängig von der Zeitbasissteuerung #2, in das Erfassungsregister 131 zu laden. Wie ersichtlich ist, kann ein Erfassungsereignis entweder durch eine übergangsermittlung oder durch ein übereinstimmungsereignis ausgelöst werden.
  • Der andere Eingang von UND-Gatter 147 ist ein Steuersignal MTSRE (Match/Transition Sercive Request Enable = übereinstimmung/übergang- Serviceanforderungsfreigabe), das sich unter der Steuerung des Service-Prozessors befindet. Der Ausgang von UND-Gatter 147 ist ein Steuersignal, bezeichnet als TDL (Transition Detect Latch = übergang- Ermittelt-Latch), und ist mit der Verzweigungs-PLA des Service-Prozessors verbunden und umfaßt auch einen Eingang eines zweiten ODER-Gatters 149. Den Ausgang von ODER-Gatter 149 kann man sich als das Serviceanforderungssignal für den dargestellten Kanal vorstellen.
  • Ein Eingang eines zweiten UND-Gatters 151 ist mit dem Ausgang von übereinstimmung-Erkennungslatch 150 verbunden, und ein zweiter Eingang ist mit dem MTSRE-Steuersignal verbunden. Der Ausgang von AND-Gatter 151 umfaßt ein Steuersignal, bezeichnet als MRL (Match Recognition Latch = übereinstimmung-Erkennungslatch), und ist mit der Verzweigungs-PLA des Service-Prozessors verbunden und ist auch ein Eingang in das ODER-Gatter 149.
  • Ein Eingang eines Inverters 162 ist mit dem MTSRE-Steuersignal verbunden, und ein Ausgang ist mit einem Eingang eines ODER-Gatters 163 verbunden. Der andere Eingang von ODER-Gatter 163 ist das Steuersignal von dem Service-Prozessor, das das übergang-Ermittelt-Latch 145 löscht. Der Ausgang von ODER-Gatter 163 ist mit dem Lösch-, oder Rücksetz-, Eingang von übergang-Ermittelt-Latch 145 verbunden.
  • Die zwei Eingänge zu ODER-Gatter 149 außer TDL und MRL sind die Ausgänge eines Host-Serviceanforderungslatchs 153 und eines Link-Serviceanforderungslatchs 154. Keines von diesen befindet sich physikalisch in der Zeitgeber-Kanalhardware, sondern man kann sie sich korrekter als in dem Scheduler residierend vorstellen. Der Ausgang von ODER- Gatter 149, das man sich auch als in dem Scheduler 112 von Fig. 40 residierend vorstellen kann, ist das Serviceanforderungssignal für diesen Kanal.
  • Der Ausgang eines dritten UND-Gatters 155 ist mit dem Eingang von übereinstimmung-Erkennungslatch 150 verbunden. Ein Eingang von UND- Gatter 155 ist der Ausgang eines Invertes 156, dessen Eingang mit dem Ausgang von übergang-Ermittelt-Latch 145 verbunden ist. Ein zweiter Eingang von UND-Gatter 155 ist der Ausgang eines übereinstimmung- Erkennung-Freigabelatchs 157, dessen Eingänge mit dem Ausgang von übereinstimmung-Erkennungslatch 150 und mit einem Ereignisregister- Schreibsteuersignal verbunden sind. Das ER-Schreibsteuersignal steuert auch das übertragungsgatter 135. Ein dritter Eingang von UND-Gatter 155 ist der Ausgang von Komparator 133. Ein vierter Eingang von UND- Gatter 155 ist der Ausgang eines NAND-Gatters 160.
  • Ein Eingang von NAND-Gatter 160 ist der Ausgang eines übereinstimmung- Freigabelatchs 161. Das übereinstimmung-Freigabelatch 161 wird von den sechzehn Zeitgeberkanälen gemeinsam benutzt, und man kann es korrekt nicht als in der Steuerhardware eines der Kanäle befindlich ansehen. Der andere Eingang von NAND-Gatter 160 ist ein Signal, das anzeigt, daß der dargestellte Kanal momentan von dem Service-Prozessor bedient wird (d.h. dieses Signal wird aus dem decodierten Ausgang von Kanalregister 87 von Fig. 4B gewonnen). Das übereinstimmung-Freigabelatch 161 wird durch ein Signal zu Beginn der Bedienung eines Kanals durch den Service-Prozessor gesetzt; d.h. bei jeder Zeitkanalgrenze. Daher ist der Vorgabestatus, daß übereinstimmungen für den Kanal, der gerade bedient wird, unterbunden werden. Wenn ein übereinstimmung-Freigabebit in der Einsprungstelle, oder anfänglicher Mikroprogramm-Zählerwert, für das Service-Programm für den Kanal, dem der Zeitkanal zugewiesen ist, gesetzt ist, wird das übereinstimmung-Freigabelatch 161 gelöscht. Das übereinstimmung-Freigabesignal von der Mikromaschine ist auch vorhanden, wann immer die Mikromaschine leerläuft, so daß übereinstimmungen für den Kanal, dessen Identität dem Inhalt des Kanalregisters 87 entspricht, nicht versehentlich unterbunden werden, während der Service-Prozessor leerläuft.
  • Die einzelnen Funktionen des übereinstimmung-Erkennungsfreigabelatchs 157 und des übereinstimmung-Freigabelatchs 161 werden unten weiter beschrieben, soweit sie für die vorliegende Erfindung relevant sind. Zusammenfassend dient jedoch das übereinstimmung-Erkennungsfreigabelatch 157 dazu, mehrfache übereinstimmungen mit einem einzigen übereinstimmungsregisterwert durch Unterbinden weiterer übereinstimmungen zu verhindern, bis das übereinstimmungsregister 132 von dem Service- Prozessor beschrieben wird, und das übereinstimmung-Freigabelatch 161 dient dazu, das Eintreten von übereinstimmungen auf dem Kanal, der momentan bedient wird, zu unterbinden, sofern solche übereinstimmungen nicht besonders durch das gerade ausgeführte Grundprogramm freigegeben werden.
  • Ein wichtiges Merkmal der gerade beschriebenen Kanalhardware ist die Art des Komparators 133. Wie oben beschrieben, ist er ein "größer als oder gleich"-Komparator. Diese logische Funktion wird leicht in der Vorstellung einer unendlichen Zahlenreihe, wie z.B. der Satz aus positiven Ganzzahlen, verstanden, ist aber weniger klar im Kontext der durch die Verwendung freilaufender Zähler endlicher Länge einbegriffenen Moduloarithmetik. Beide TCRs zählen Zeit als ob sie Uhren mit einem Zeiger wären. Die Perioden dieser Uhren hängen von der Frequenz ihrer taktenden Eingänge ab, aber beide besitzen in der bevorzugten Ausführung 216 bestimmte Zustände. Die Zustände reichen von 0000 (Hex) bis FFFF (Hex). Beide Zähler laufen einfach auf einen Zählwert von 0000 (Hex) über, wenn sie von einem Zählwert von FFFF (Hex) inkrementiert werden. Die begriffliche Schwierigkeit entsteht, wenn versucht wird, zu bestimmen, ob ein einzelner übereinstimmungsregisterwert größer ist als der momentane TCR-Wert (dem Uhrzeiger voraus) oder kleiner ist als der momentane TCR-Wert (dem Uhrzeiger hinterher), da in jedem Fall der TCR-Wert (der Uhrzeiger) den übereinstimmungsregisterwert letztendlich überholen und passieren wird. Die Definition des für den Komparator 133 gewählten "größer als oder gleich" ist wie folgt: die Hälfte des Zifferblattes, die dem Uhrzeiger unmittelbar vorangeht, wenn er umläuft, ist definiert als der momentanen Zeit voraus, und die andere Hälfte des Zifferblattes ist definiert als der momentanen Zeit hinterher. Genauer: wenn der übereinstimmungsregisterwert durch Addieren einer nicht-negativen Hexadezimalzahl kleiner als oder gleich 8000 (Hex) zu dem gewählten TCR-Wert (wobei die Addition gemäß der normalen Modulo FFFF-plus-1 (Hex) Arithmetik durchgeführt wird), erhalten werden kann, dann soll der gewählte TCR-Wert nicht größer als oder gleich dem übereinstimmungsregisterwert sein. Solange diese Beziehung wahr ist, wird von dem Komparator 133 kein Ausgang erzeugt. Wenn diese Beziehung unwahr ist, dann soll der gewählte TCR-Wert größer als oder gleich dem übereinstimmungsregisterwert sein, und der Komparator 133 setzt seinen Ausgang. Wenn ein übereinstimmungsregisterwert in das übereinstimmungsregister 132 geschrieben wird, so daß der gewählte TCR-Wert bereits größer als oder gleich dem übereinstimmungsregisterwert ist, wird der Komparator 133 seinen Ausgang sofort setzen. Dies ist wichtig, so daß eine Ausgabe von Pin 140, die von einer übereinstimmungsfunktion anzustoßen ist, die aber "verpaßt" wird, weil der Service-Prozessor den Vergleichswert "zu spät" in das übereinstimmungsregister 132 schreibt, spät ausgeführt, aber nicht gänzlich verpaßt werden wird.
  • Zeitgeber nach dem Stand der Technik verwenden generell einen "gleich"-Komparator, so daß die für den Zeitgeber geschriebene Software zuerst prüfen muß, ob der TCR-Wert nicht zu groß ist, bevor der übereinstimmungswert geschrieben wird. Die oben beschriebene Funktionalität des erfindungsgemäßen Zeitgeberkanals mi ldert dieses Problem.
  • Es ist möglich, die beschriebene "größer als oder gleich"-Vergleichsfunktion mit einem anderen Wert als 8000 (Hex) zu definieren. Diese Zahl wird in der bevorzugten Ausführung gewählt, weil 8000 (Hex) eine Hälfte des vollen Bereichs von FFFF (Hex) des verwendeten 16-Bit Zählers ist. Dies erzeugt tatsächlich ein "Fenster", dessen Größe der Hälfte des vollen Bereichs des TCR entspricht, in das übereinstim mungswerte geschrieben werden können, ohne eine sofortige Ausgabe zu erzeugen. Die einzelne Zahl, die für eine gegebene Anwendung gewählt wird, wird von dem vollen Bereich des verwendeten Zählers und von der Größe des gewünschten Fensters abhängen.
  • Ausführliche Beschreibung der Erfindung
  • Die Prinzipien der vorliegenden Erfindung können am besten aus einer Analyse der durch die Zeichnung von Fig. 5 dargestellten bevorzugten Ausführung verstanden werden. Die Merkmale der darin gezeigten Vorrichtung schließen die Fähigkeit ein, sowohl Eingabe- (Erfassungs) als auch Ausgabe- (übereinstimmungs) Zeitgeberfunktionen, die entweder auf TCR1 oder TCR2 bezogen sind, auszuführen, die Fähigkeit, eine auf beide TCR bezogene übereinstimmung durchzuführen, und als Reaktion auf das übereinstimmungsereignis automatisch eine auf beide TCR bezogene Erfassung durchzuführen, sowie die Fähigleit, eine Erfassungsfunktion mit einer gleichzeitig ablaufenden übereinstimmungsfunktion durchzuführen, um ein Zeitsperrenfenster zu erzeugen, mit dem der Service- Prozessor bestimmen kann, ob die Erfassungsfunktion spät eintrat.
  • Die gezeigte Kanalhardware ist angeordnet, um eine übereinstimmungsfunktion einfach durch Schreiben eines Wertes in das Erfassungsregister 132 durchzuführen, was durch den Service-Prozessor unter Mikrocode-Steuerung ausgeführt wird. Wenn als Reaktion auf die übereinstimmungsfunktion eine Ausgabe am Pin 140 gewünscht wird, wird die Pinsteuerlogik 141 konfiguriert, um als Reaktion auf den Ausgang des übereinstimmung-Erkennungslatchs 150 einen hohen oder einen tiefen Logikpegel zu erzeugen oder Logikpegel zu wechseln.
  • Die gezeigte Kanalhardware ist angeordnet, um eine Erfassungsfunktion durch Konfigurieren der Pinsteuerlogik 141 durchzuführen, um einen positiv gehenden übergang, einen negativ gehenden übergang oder beide zu ermitteln und das übergang-Ermittelt-Latch 145 als Reaktion darauf zu setzen.
  • Zwei mit Zeitbasissteuerung 1 und Zeitbasissteuerung 2 bezeichnete Steuersignale, die aus dem Service-Prozessor unter Mikrocode-Steuerung herrühren, bestimmen, welches TCR die Referenz für die übereinstimmungs- bzw. die Erfassungsfunktionen ist. Die Zeitbasissteuerung 1 bestimmt, welcher der TCR-Busse über das übertragungsgatter 137 mit dem Komparator 133 verbunden wird, und die Zeitbasissteuerung 2 bestimmt durch die Erfassungslogik 148, welcher TCR-Bus über das übertragungsgatter 136 mit dem Erfassungsregister 131 verbunden wird. Einmal während der Ausführung eines Initialisierungsgrundprogramms durch den Service-Prozessor gesetzt, bleiben diese Steuersignale gesetzt, bis der Service-Prozessor sie ändert. Der Serviceprozessor kann die Zeitbasissteuersignale für jeden der sechzehn Kanäle der bevorzugten Ausführung unabhängig steuern.
  • Die Bereitstellung von getrennten Zeitbasissteuersignalen für die Erfassungs- und übereinstimmungsfunktion erlaubt jeder Funktion, auf jede der zwei TCRs bezogen zu werden. Dieses Vermögen ist wesentlich flexibler als Zeitgeber-Sybsysteme nach dem Stand der Technik. Ferner bietet die Tatsache, daß beide Zeitgeber-Referenzsignale allen sechzehn Kanälen über die TCR-Busse in gleicher Weise zu Verfühung stehen, eine erhöhte Flexibilität gegenüber vorher bekannten Systemen.
  • Ein weiteres Merkmal der Vorrichtung von Fig. 5 ist die Fähigkeit, automatisch eine Erfassungsfunktion als Ergebnis eines übereinstimmungsereignisses durchzuführen. Der Ausgang des übereinstimmung-Erkennungslatchs 150 wird dem ODER-Gatter 146 als einer der Eingänge zur Verfügung gestellt. Da der Ausgang des ODER-Gatters 146 die Erfassungsereignislogik 148 steuert, ist ersichtlich, daß ein Setzen des übereinstimmung-Erkennungslatchs 150 automatisch die Erfassungsereignislogik 148 veranlssen wird, das Erfassungsregister 131 mit dem aktuellen Wert des ausgewählten TCR-Busses zu laden.
  • Fig. 6 zeigt ein Zeitdiagramm, das die Funktion der Vorrichtung von Fig. 5 während eines übereinstimmungsvorgangs veranschaulicht. Der von dem gesamten Zeitgebersystem benutzte Grundsystemtakt durchläuft tatsächlich zwei volle Perioden mit vier Phasen (T1, T2, T3 und T4) für jeden Mikrozyklus des Systems. Ein Mikrozyklus entspricht der Zeit, die der Service-Prozessor benötigt, um einen einzigen Mikrobefehl auszuführen. Für Zwecke der Kanalhardware wird eine Auflösungsperiode, die zwei Mikrozyklen entspricht, definiert. Diese Auflösungsperiode wird weiter in vier Auflösungszustände (RS1, RS2, RS3 und RS4) geteilt, deren Länge jeweils gleich einem ganzen Zyklus des System taktes ist. TCR1 und TCR2 werden beide während jedes RS1-Auflösungszustandes inkrementiert, und die Werte der TCR-Busse haben sich verändert, um die neuen TCR-Inhalte bei Beginn von RS2 widerzuspiegeln. Im allgemeinen werden übereinstimrnungsereignisse von den Zuständen RS2 und RS3 und Erfassungsereignisse von den Zuständen RS3 und RS4 abhängig gemacht.
  • Wie die mit "Komparator" bezeichnete Wellenform zeigt, wird der Ausgang des Komparators 133 während RS3 aktiv werden, um der Änderung des ausgewählten TCR-Busses auf einen Wert, der größer als oder gleich dem Inhalt des übereinstimmungsregisters 132 ist, zu folgen. Kurz danach, aber noch innerhalb von RS3, wird das übereinstimmung-Erkennungslatch 150 gesetzt, und jede Pinzustandsänderung, für die die Pinsteuerlogik programmiert worden ist, tritt ein. Die Erfassungsereignislogik 148 wird während RS3 und RS4 freigegeben, so daß ein Ausgang des ODER-Gatters 146, der vor dem Ende von RS4 auftritt, eine Erfassung des ausgewählten TCR-Wertes in das Erfassungsregister 131 auslösen wird. Da das übereinstimmung-Erkennungslatch 150 während RS3 gesetzt ist, wird das durch das übereinstimmungsereignis automatisch hervorgerufene Erfassungsereignis vor der nächsten Änderung der TCR-Werte eintreten. Die beschriebene Hardware ist daher imstande, ein übereinstimmungsereignis zu vollziehen und davon automatisch ein Erfassungsereignis auszulösen, das innerhalb der gleichen Auflösungsperiode wie das auslösende übereinstimmungsereignis eintreten wird. Diese Fähigkeit ist ein bedeutender Vorteil gegenüber vorher verfügbaren Zeitgebern, die das Eingreifen einer Host-CPU erfordern, um ein Eingabeereignis als Reaktion auf ein Ausgabeereignis zu veranlassen, und daher den gleichen Zustand des Zeitgeber-Referenzsignals, der die übereinstimmung verursachte, meistens nicht zuverlässig erfassen können.
  • Noch ein weiteres Merkmal der bevorzugten Ausführung ist die Fähigkeit, ein übereinstimmungsereignis zu benutzen, um dem Eintreten eines Erfassungsereignisses eine Zeitsperrenbedingung aufzuerlegen. Dazu benutzt man den Service-Prozessor zum Konfigurieren der Pinsteuerlogik 141, um einen einzelnen übergang zu ermitteln, und ferner, um einen Wert in das übereinstimmungsregister 132 zu schreiben. Daher werden sowohl die Erfassungs- als auch die übereinstimmungsfunktion freigegeben. Wenn der gewünschte übergang vor dem übereinstimmungsereignis ermittelt wird, wird das übereinstimmungsereignis durch den Ausgang des Inverters 156 über das UND-Gatter 155 gesperrt. Wenn der Service-Prozessor auf die von dem Erfassungsereignis erzeugte Service-Anforderung reagiert, wird daher nur eine übergang-Ermitteln- Service-Anforderung anstehen, wie durch die Zustände der Signale MRL und TDL angezeigt. Wenn jedoch das übereinstimmungsereignis zuerst eintritt, wird das MRL-Signal gesetzt, wenn der Service-Prozessor reagiert (das TDL-Signal kann in diesem Fall gesetzt sein oder nicht), um anzuzeigen, daß der gewünschte übergang nicht vor dem übereinstimmungsereignis aufgetreten ist. Das übereinstimmungsereignis dient daher als ein Zeitsperrenfenster für das Erfassungsereignis. Da die Signale MRL und TDL dem Service-Prozessor zur Verfügung stehen, bei der bevorzugten Ausführung als Verzweigungsbedingungen, kann der Service-Prozessor aus dem Zustand der Signale bestimmen, ob der gewünschte übergang dem übereinstimmungsereignis vorausging, und angemessen reagieren.
  • Die offenbarte Vorrichtung stellt gegenüber vorher verfügbaren Mehrfachreferenz-Zeitgebersubsystemen eine wesentlich verbesserte Flexibilität und Funktion zur Verfügung. Jede Zeitgeberfunktion kann auf jede der vorhandenen Zeitgeber-Referenzen in dem offenbarten System bezogen werden. Weiter können die auf jedem Kanal des offenbarten Systems zur Verfügung stehenden zwei Zeitgeberfunktionen miteinander verknüpft werden, wie es bei dem oben beschriebenen Zeitsperrenfenster der Fall ist.
  • Eine mögliche Modifikation der bevorzugten Ausführung beinhaltet das Ersetzen der oben beschriebenen zwei Register (Erfassung und übereinstimmung) durch ein einziges Register. Abhängig vom Aufbau der Kanalhardware ist es möglich, alle oben beschriebenen Funktionen mit einem einzigen physikalischen Register, das zwei Registern logisch gleichwertig ist, durchzuführen.
  • Während die vorliegende Erfindung mit Verweis auf eine einzelne Ausführung davon dargelegt und beschrieben worden ist, werden für den Fachmann verschiedene Modifikationen und Änderungen dazu sichtbar sein, die innerhalb des Umfangs der Ansprüche liegen.

Claims (5)

1. Zeitgeber (21a), der auf wenigstens zwei Zeitgeber-Bezugssignale (TCR1, TCR2) anspricht und umfaßt:
ein Erfassungsregister (131);
ein übereinstimmungsregister (132);
dadurch gekennzeichnet, daß der Zeitgeber weiter umfaßt:
eine erste Zeitgeber-Bezugsauswahleinrichtung (136), die eines der wenigstens zwei Zeitgeber-Bezugssignale auswählt;
eine zweite Zeitgeber-Bezugsauswahleinrichtung (137), die eines der wenigstens zwei Zeitgeber-Bezugssignale auswählt;
eine Erfassungslogikeinrichtung (145, 146, 148), die auf eine Eingabe in den Zeitgeber und auf die erste Zeitgeber-Bezugsauswahleinrichtung anspricht, um das Erfassungsregister mit einer Darstellung eines Wertes des von der ersten Zeitgeber-Bezugsauswahleinrichtung ausgewählten Zeitgeber-Bezugssignals zu laden, und
eine übereinstimmungslogikeinrichtung (133, 155, 150), die auf den Inhalt des übereinstimmungsregisters und auf den Wert des von der zweiten Zeitgeber-Bezugsauswahleinrichtung ausgewählten Zeitgeber-Bezugssignals anspricht, um eine übereinstimmungsausgabe zu erzeugen, wenn eine vorbestimmte Beziehung zwischen dem Wert des von der zweiten Zeitgeber-Bezugsauswahleinrichtung ausgewählten Zeitgeber-Bezugssignals und dem Inhalt des übereinstimmungsregisters besteht.
2. Zeitgeber nach Anspruch 1, bei dem:
die Erfassungslogikeinrichtung weiter auf die übereinstimmungsausgabe der übereinstimmungslogikeinrichtung anspricht, um das Erfassungsregister mit einer Darstellung eines Wertes des von der ersten Zeitgeber-Bezugsauswahleinrichtung ausgewählten Zeitgeber-Bezugssignals zu laden.
3. Zeitgeber nach Anspruch 1 oder 2, weiter umfassend:
eine Service-Anforderung-Logikeinrichtung (147, 151), die als Reaktion auf die Eingabe in den Zeitgeber ein erstes Service-Anforderungssignal und als Reaktion auf die übereinstimmungsausgabe ein zweites Service- Anforderungssignal erzeugt.
4. Zeitgeber nach Anspruch 1, 2 oder 3, weiter umfassend: einen Sockelstift (140), und
eine Sockelstift-Steuerlogikeinrichtung (141), verbunden mit der Erfassungslogikeinrichtung und der übereinstimmungslogikeinrichtung, die ein an dem Sockelstift eintretendes Ereignis ermittelt oder die Erfassungslogikeinrichtung anstößt oder auf die übereinstimmungsausgabe durch Erzeugen eines Ereignisses an dem Sockelstift anspricht.
5. Zeitgebersystem, umfassend:
eine Mehrzahl von Zeitgebern (21a-21p) nach einem der vorangehenden Ansprüche, sowie Einrichtungen (TCR1-BUS, TCR2-BUS), die jedem aus der Mehrzahl von Zeitgebern die wenigstens zwei Zeitgeber-Bezugssignale zuführen.
DE68920929T 1988-08-19 1989-07-27 Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. Expired - Fee Related DE68920929T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/234,103 US4942522A (en) 1988-08-19 1988-08-19 Timer channel with multiple timer reference features

Publications (2)

Publication Number Publication Date
DE68920929D1 DE68920929D1 (de) 1995-03-16
DE68920929T2 true DE68920929T2 (de) 1995-10-05

Family

ID=22879939

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68920929T Expired - Fee Related DE68920929T2 (de) 1988-08-19 1989-07-27 Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.

Country Status (5)

Country Link
US (1) US4942522A (de)
EP (1) EP0355463B1 (de)
JP (1) JPH0670774B2 (de)
KR (1) KR950012051B1 (de)
DE (1) DE68920929T2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233573A (en) * 1992-07-01 1993-08-03 Motorola Inc. Digital data processor including apparatus for collecting time-related information
US5325341A (en) * 1992-08-31 1994-06-28 Motorola, Inc. Digital timer apparatus and method
US5535376A (en) * 1993-05-18 1996-07-09 Motorola, Inc. Data processor having a timer circuit for performing a buffered pulse width modulation function and method therefor
JPH0763103A (ja) * 1993-08-23 1995-03-07 Nippondenso Co Ltd 内燃機関の燃料噴射制御装置
JP3323655B2 (ja) * 1994-07-27 2002-09-09 株式会社日立製作所 制御用処理装置及び1チップマイクロコンピュータ
US5812833A (en) * 1995-11-13 1998-09-22 Motorola, Inc. Timer bus structure for an integrated circuit
US5701421A (en) * 1995-11-13 1997-12-23 Motorola, Inc. Pin and status bus structure for an integrated circuit
US5721888A (en) * 1995-11-13 1998-02-24 Motorola, Inc. Performing flexible logical operations with timer channel outputs
US5729721A (en) * 1995-11-13 1998-03-17 Motorola, Inc. Timebase synchronization in separate integrated circuits or separate modules
US5732225A (en) * 1995-11-13 1998-03-24 Motorola Inc. Integrated circuit timer system having a global bus for transferring information between local buses
US5721889A (en) * 1995-11-13 1998-02-24 Motorola, Inc. Data transfer between integrated circuit timer channels
US5634045A (en) * 1995-11-13 1997-05-27 Motorola, Inc. Integrated circuit input/output processor having improved timer capability
US5631853A (en) * 1995-11-13 1997-05-20 Motorola Inc. Flexible configuration of timebases in a timer system
US5784627A (en) * 1996-01-24 1998-07-21 Advanced Micro Devices, Inc. Integrated timer for power management and watchdog functions
US5832255A (en) * 1996-03-22 1998-11-03 Sharp Microelectronics Technology, Inc. System and method for selecting a signal source to trigger a microprocessor counter/timer macro cell
US6282600B1 (en) * 1998-08-14 2001-08-28 International Business Machines Corporation Method and apparatus of resolving conflicting register access requests from a service processor and system processor
US6550015B1 (en) 1999-02-10 2003-04-15 Advanced Micro Devices Inc. Scalable virtual timer architecture for efficiently implementing multiple hardware timers with minimal silicon overhead
JP2008541017A (ja) * 2005-04-29 2008-11-20 ベックマン コールター インコーポレイテッド 側方流動蛍光免疫測定法
US20090208975A1 (en) * 2007-12-13 2009-08-20 Beckman Coulter, Inc. Device and methods for detecting a target cell
WO2014134033A1 (en) 2013-02-26 2014-09-04 Astute Medical, Inc. Lateral flow assay with test strip retainer
CN115728482A (zh) 2015-04-06 2023-03-03 Blu诊断有限公司 用于检测唾液样品中的分析物的检测装置及使用方法
US20230295274A1 (en) 2020-07-27 2023-09-21 Single Cell Technology, Inc. Anti-sars coronavirus-2 spike protein antibodies

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52113644A (en) * 1976-03-19 1977-09-22 Nec Corp Microprogram control unit
US4222103A (en) * 1978-09-25 1980-09-09 Motorola, Inc. Real time capture registers for data processor
US4326247A (en) * 1978-09-25 1982-04-20 Motorola, Inc. Architecture for data processor
JPS5699528A (en) * 1980-01-10 1981-08-10 Toshiba Corp Timer device of computer system
JPS60186939A (ja) * 1984-03-06 1985-09-24 Fujitsu Ltd タイマ機構
JPH06103507B2 (ja) * 1984-11-02 1994-12-14 株式会社日立製作所 パルス入出力プロセッサ及びそれを用いたマイクロコンピュータ

Also Published As

Publication number Publication date
KR900003719A (ko) 1990-03-26
EP0355463A2 (de) 1990-02-28
JPH02250119A (ja) 1990-10-05
US4942522A (en) 1990-07-17
DE68920929D1 (de) 1995-03-16
EP0355463A3 (en) 1990-11-07
KR950012051B1 (ko) 1995-10-13
JPH0670774B2 (ja) 1994-09-07
EP0355463B1 (de) 1995-02-01

Similar Documents

Publication Publication Date Title
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE68915074T2 (de) Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor.
DE68919018T2 (de) Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen.
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE3914265C2 (de)
DE3876780T2 (de) Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung.
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE3606211A1 (de) Multiprozessor-computersystem
DE3850387T2 (de) Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.
DE2755616C2 (de) Datenverarbeitungsanlage
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
CH619309A5 (de)
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE3650165T2 (de) Buszustandssteuerungsschaltung.

Legal Events

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