DE69024913T2 - Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung - Google Patents

Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung

Info

Publication number
DE69024913T2
DE69024913T2 DE69024913T DE69024913T DE69024913T2 DE 69024913 T2 DE69024913 T2 DE 69024913T2 DE 69024913 T DE69024913 T DE 69024913T DE 69024913 T DE69024913 T DE 69024913T DE 69024913 T2 DE69024913 T2 DE 69024913T2
Authority
DE
Germany
Prior art keywords
interrupt
data
controller
signal
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69024913T
Other languages
English (en)
Other versions
DE69024913D1 (de
Inventor
Michio Murai
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of DE69024913D1 publication Critical patent/DE69024913D1/de
Publication of DE69024913T2 publication Critical patent/DE69024913T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Programmable Controllers (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf einen programmierbaren Controller bzw. eine programmierbare Steuerungsvorrichtung und insbesondere auf einen programmierbaren Controller mit einer Unterbrechungssteuereinrichtung, um, wenn eine Vielzahl von parallelen Eingangs-/Ausgangsvorrichtungen (I/Os) Unterbrechungsverarbeitungsanforderungen erzeugen, eine Priorität einer Unterbrechungsverarbeitung von jeder I/O zu bestimmen und einen Unterbrechungsvektor zu erzeugen.
  • Ein herkömmliches Unterbrechungssteuerverfahren, das durch einen programmierbaren Controller durchgeführt wird, ist in Fig. 1 gezeigt.
  • Fig. 1 ist ein Blockdiagramm, das einen herkömmlichen programmierbaren Controller zeigt.
  • In Fig. 1 ist eine Zentraleinheit (CPU) 1 mit einem Speicher mit direktem Zugriff bzw. Randomspeicher (RAM) 3, einem Festspeicher (ROM) 5 und einer Basiseinheit 7 über einen internen Bus verbunden. Die CPU 1 führt ein Datenverarbeiten oder ein Unterbrechungsserviceverarbeiten für I/Os 9a, 9b und 9c durch.
  • Der RAM 3 hat eine Funktion als ein Hauptspeicher und wird zum Speichern verschiedener Daten verwendet. Der ROM 5 speichert Steuerprogramme, die durch die CPU 1 auszuführen sind. Die Basiseinheit hat die Vielzahl von I/Os 9a, 9b und 9c, die in einer Gänseblumenkette angeordnet sind, eine Schnittstellenschaltung 11 zum Verbinden der CPU 1 mit den I/Os 9a, 9b und 9c über eine Schnittstelle und einen Datenbus 13 zum Verbinden der I/Os 9a, 9b und 9c sowie die Schnittstellenschaltung 11. In diesem Fall hat die I/O 9a, die am engsten bei der CPU 1 liegt, die höchste Priorität. Die I/Os 9a, 9b und 9c sind mit der Schnittstellenschaltung 11 über eine Unterbrechungsanforderungsleitung 15 verbunden, welche eine ODER-verdrahtete Anordnung hat. Die Schnittstellenschaltung 11 hat einen Unterbrechungssignalcontroller 17 und ein ODER-Gatter 19.
  • Die Basiseinheit 7 ist weiterhin mit einer ausgedehnten Einheit 21 über einen ausgedehnten Bus CDATA verbunden. Es sei darauf hingewiesen, daß in Fig. 1 zur Vereinfachung der Darstellung lediglich eine ausgedehnte Einheit 21 gezeigt ist, jedoch eine Vielzahl von ausgedehnten Einheiten auf Gänseblümchenkettenweise angeschlossen werden kann. Die Basiseinheit 7, die am nächsten zur CPU 1 liegt, hat die höchste Priorität, und niedrigere Prioritäten werden sequentiell den ausgedehnten Einheiten zugeordnet. Ähnlich zu der Basiseinheit 7 hat die ausgedehnte Einheit 21 eine Vielzahl von I/Os 9a, 9b und 9c, einen Datenbus 13 und eine Unterbrechungsanforderungsleitung 15. Die ausgedehnte Einheit 21 umfaßt weiterhin eine Schnittstellenschaltung 23, die mit den I/Os 9a, 9b und 9c über den Datenbus 13 verbunden ist. Die Schnittstellenschaltung 23 hat einen Unterbrechungscontroller 25. Der Unterbrechungscontroller 25 sendet Unterbrechungsanforderungssignale IRP, die von den I/Os 9a, 9b und 9c eingespeist sind, über die Unterbrechungsanforderungsleitung 15 zu der Schnittstellenschaltung 11 der Basiseinheit 7. Daher sind das Unterbrechungsanforderungssignal IRP von der Basiseinheit 7 und das Unterbrechungsanforderungssignal IRP von der ausgedehnten Einheit 21 durch das ODER- Gatter 19 ODER-verknüpft, und das erhaltene Signal wird zu der CPU 1 als ein CPU-Unterbrechungsanforderungssignal 27 gespeist.
  • Wenn die CPU 1 das CPU-Unterbrechungsanforderungssignal 27 empfängt, gibt sie ein Unterbrechungsannahmesignal INTA an die Schnittstellenschaltung 11 aus. Der Unterbrechungssignalcontroller 17 erzeugt ein Bestätigungssignal INTAC an der Vorderflanke des ersten Unterbrechungsannahmesignal INTA. Wenn eine Unterbrechungsanforderung von der Basiseinheit 7 ausgegeben ist, liefert der Controller 17 ein aktives Unterbrechungsfreigabesignal BIEI an die erste I/O 9a und ein inaktives Einheitsunterbrechungsfreigabesignal CIEI an die ausgedehnte Einheit 21, um die Unterbrechungsanforderung von der Basiseinheit 7 mit der höheren Prioritätsordnung als diejenige der ausgedehnten Einheit 21 zu akzeptieren. Wenn die erste I/O 9a selbst eine Unterbrechungsanforderung ausgibt, liefert sie ein inaktives Unterbrechungsfreigabesignal BIEO an die zweite I/O 9b. Wenn die erste I/O 9a selbst keine Unterbrechungsanforderung ausgibt, liefert sie ein aktives Unterbrechungsfreigabesignal BIEO an die nächste Stufe. In der gleichen Weise wird das Unterbrechungsanforderungssignal sequentiell zu einer Unterbrechungsanforderungsquelle übertragen. Wenn ein aktives Unterbrechungsfreigabesignal an die Unterbrechungsanforderungsquelle übertragen wird, wird ein inaktives Unterbrechungsfreigabesignal BIEO an die I/Os nach der Anforderungsquelle ausgegeben.
  • Wenn keine Unterbrechungsanforderung von der Basiseinheit 7 ausgegeben wird, liefert der Unterbrechungssignalcontroller 17 ein aktives Einheitsunterbrechungsfreigabesignal CIEI an die ausgedehnte Einheit 21 synchron mit dem Bestätigungssignal INTAC. Als ein Ergebnis wird eine Unterbrechungsanforderung von der ausgedehnten Einheit 21 akzeptiert.
  • Die Schnittstellenschaltung 23 in jeder ausgedehnten Einheit 21 steuert Unterbrechungsanforderungen zwischen den ausgedehnten Einheiten 21 und Unterbrechungsanforderungen von den I/Os 9a, 9b und 9c in der ausgedehnten Einheit 21. Wenn der Unterbrechungscontroller 25 in der ausgedehnten Einheit 21 ein aktives Unterbrechungsfreigabesignal CIEI von der Basiseinheit 7 empfängt, liefert er ein I/O-Unterbrechungsfreigabesignal IEI an die erste I/O 9a. Wenn die erste I/O 9a selbst keine Unterbrechungsanforderung ausgibt, liefert sie ein Unterbrechungsfreigabesignal IEO an die zweite I/O 9b. Auf die gleiche Weise wird das Unterbrechungsfreigabesignal sequentiell zu einer I/O einer Unterbrechungsanforderungsquelle übertragen.
  • Fig. 2 ist ein Schaltungsdiagramm, das in Einzelheiten die I/O 9a der in Fig. 1 dargestellten Schnittstellenschaltung 23 zeigt. Es sei darauf hingewiesen, daß die Schaltungsanordnungen der anderen I/Os 9b und 9c die gleichen sind wie diejenige der I/O 9a. Die Fig. 3A bis 3H sind Zeitdiagramme, wobei Fig. 3A ein Zeitdiagramm ist, das ein Bestätigungssignal INTA zeigt, und Fig. 3B ein Unterbrechungsanforderungssignal IRP, Fig. 3C ein Unterbrechungsfreigabesignal CIEI für eine ausgedehnte Einheit, Fig. 3D ein Einheitsunterbrechungsfreigabesignal CIEO, Fig. 3E ein I/O-Unterbrechungsfreigabesignal IEI; Fig. 3F ein Verarbeitungsanforderungssignal INT, Fig. 3G ein Ausgangssignal IEO von einem UND-Gatter 206 und Fig. 3H Daten auf einem Datenbus 31 zeigen.
  • Wenn in Fig. 2 die I/O 9a, 9b oder 9c in der ausgedehnten Einheit 21 eine Unterbrechungsverarbeitungsanforderung an die CPU 1 ausgeben soll, setzt eine Unterbrechungsanforderungsschaltung 203 ein in Fig. 3F dargestelltes Verarbeitungsanforderungssignal INT zu einer Zeit T1 gemäß einem Unterbrechungsfaktor so, daß es niedrig aktiv ist. Das Verarbeitungsanforderungssignal INT wird von einem Ausgangspuffer 207 (offener Kollektor) ausgegeben, ODER-verdrahtet und auf einer Unterbrechungsanforderungsleitung 15 geliefert. Das Signal auf der Unterbrechungsanforderungsleitung 15 wird durch die CPU 1 als ein Unterbrechungsanforderungssignal IRP abgerufen (Fig. 3B). Wenn die CPU 1 das Unterbrechungsanforderungssignal IRP akzeptiert, liefert sie ein Unterbrechungsbestätigungssignal INTA (Fig. 3A) an den Unterbrechungscontroller 17 zu einer Zeit T2. Da die Unterbrechungsanforderung nicht von den I/Os 9a, 9b und 9c der Einheit einschließlich des Unterbrechungscontrollers 17 ist, liefert der Controller 17 ein Bestätigungssignal INTAC an den Unterbrechungscontroller 25 in der ausgedehnten Einheit 21. Wenn das Unterbrechungsanforderungssignal IRP aktiv ist, setzt der Unterbrechungscontroller 25 ein Einheitsunterbrechungsannahmesignal l23 in einen aktiven Zustand synchron mit dem Signal INTAC. Wenn zu dieser Zeit ein Einheitsunterbrechungsfreigabesignal CIEI (Fig. 3C) aktiv ist, setzt der Controller 25 ein I/O-Unterbrechungsfreigabesignal IEI (Fig. 3E) in einen aktiven Zustand und liefert das Freigabesignal an die I/O 9a, 9b oder 9c, die die Unterbrechungsanforderung ausgibt. Wenn in diesem Fall die I/O 9a beispielsweise das Unterbrechungsfreigabesignal IEI annimmt bzw. akzeptiert, wird eine Ausgabe eines Unterbrechungsfreigabesignales IEO (Fig. 3G) an die folgenden I/Os 9b und 9c abgeschaltet. Wenn die I/Os 9a, 9b und 9c gleichzeitig die Verarbeitungsanforderungssignale INT ausgeben, setzt der Controller 25 ein I/O-Unterbrechungsannahmesignal l25 in einen aktiven Zustand synchron mit dem Bestätigungssignal INTAC. Wenn das I/O-Unterbrechungsfreigabesignal IEI aktiv ist, setzt die I/O 9a die folgenden I/Os 9b und 9c in einen Unterbrechungsabschaltzustand zu einer Zeit T3 gemäß dem Ausgangssignal IEO (Fig. 3G) von dem UND-Gatter 206. Zusätzlich veranlaßt die I/O 9a ein UND-Gatter 205, einen Vektorgenerator 208 aktiv zu werden, um einen Unterbrechungsvektor (Fig. 3H) auf einem Datenbus auszugeben. Der Ausgangsvektor wird durch die CPU 1 zu einer Zeit T4 abgerufen.
  • Wenn jedoch in dem obigen herkömmlichen System die Vielzahl von I/Os 9a, 9b und 9c in der Einheit gleichzeitig die Unterbrechungsanforderungssignale IRP aktiv bezüglich der CPU 1 werden lassen, wird das I/O-Unterbrechungsfreigabesignal IEI aktiv synchron mit dem Bestätigungssignal INTAC gesetzt und sequentiell von der ersten I/O 9a übertragen. Für diesen Zweck müssen die I/Os nacheinander befestigt werden. Das heißt, wenn ein Schlitz, der eine I/O nicht befestigt, in einer Schaltung vorliegt oder eine Unterbrechungsfreigabesignalleitung nicht angeschlossen ist, kann ein Unterbrechungsfreigabesignal nicht zu einer Unterbrechungsanforderungsquelle gespeist werden, und das System ist aufgehalten.
  • Es ist eine Aufgabe der vorliegenden Erfindung, einen programmierbaren Controller vorzusehen, der jede I/O in einem beliebigen Schlitz befestigen kann und der ein System daran hindert, aufgehalten zu sein, selbst wenn ein Schlitz, der eine I/O nicht befestigt, in einer Schaltung vorhanden ist.
  • Es ist eine andere Aufgabe der vorliegenden Erfindung, einen programmierbaren Computer zu schaffen, der beliebig eine Unterbrechungspriorität für jede I/O setzen kann.
  • Die Erfindung ist im Patentanspruch 1 angegeben.
  • Um die obige Aufgabe der vorliegenden Erfindung zu lösen, ist ein programmierbarer Controller vorgesehen, mit: einer Vielzahl von parallelen I/O-Vorrichtungen, wobei jede I/O-Vorrichtung eine ihre Befestigungsstellung angebende Information als Unterbrechungsdaten ausgibt, einer Datenbuseinrichtung, die mit der Vielzahl von I/O-Vorrichtungen verbunden ist, wobei Bits, die die Datenbuseinrichtung bilden, in einer 1: 1-Entsprechung den I/O-Vorrichtungen zugewiesen sind, einer Unterbrechungsdatenverriegelungseinrichtung zum gleichzeitigen Annehmen der Unterbrechungsdaten von der Vielzahl von I/O-Vorrichtungen über die Datenbuseinrichtung und einer Unterbrechungsvektorgeneratoreinrichtung zum Erzeugen eines Unterbrechungsvektors durch Verwenden von Unterbrechungsdaten, die von den Unterbrechungsdaten gewählt sind, die durch die Verriegelungseinrichtung verriegelt sind, gemäß einer vorbestimmten Regel.
  • Gemäß der vorliegenden Erfindung sind Datenleitungen eines Datenbusses, der gewöhnlich in einem Datenaustausch zwischen einer CPU und I/Os verwendet wird, in einer 1:1-Entsprechung mit den I/Os verbunden. Jede I/O hat ihren eigenen Befestigungspositionsinformationsdetektor. Jede I/O sendet ein Unterbrechungsanforderungssignal zu der CPU über eine Unterbrechungsanforderungssignalleitung. Die CPU gibt ein Bestätigungssignal an einen Unterbrechungscontroller aus. Abhängig von dem Bestätigungssignal liefert der Unterbrechungscontroller ein Unterbrechungsinformationsfreigabesignal an jede I/O. Abhängig von dem Unterbrechungsinformationsfreigabesignal erfaßt der Befestigungspositionsinformationsdetektor von jeder I/O eine Befestigungsposition der I/O. Auf der Grundlage der Befestigungspositionsinformation setzt eine Bitausziehschaltung jeder I/O eine Datenleitung eines Datenbusses entsprechend der Befestigungsposition in einen aktiven Zustand. Als Ergebnis werden die Unterbrechungsinformationen von einer Vielzahl von I/Os gleichzeitig zu dem Unterbrechungscontroller gespeist und verriegelt.
  • Auf der Grundlage einer vorbestimmten Unterbrechungspriorität oder einer durch eine Prioritätssetzschaltung eingestellten Unterbrechungspriorität wählt der Unterbrechungscontroller Unterbrechungsdaten mit der höchsten Priorität von der Vielzahl von Unterbrechungsinformationen, erzeugt einen Unterbrechungsvektor und sendet den Vektor zu der CPU.
  • Gemäß der vorliegenden Erfindung können daher die I/Os in beliebige Schlitze eingeführt werden und brauchen nicht nacheinander darin eingeführt zu werden. Obwohl jede I/O einen Unterbrechungsvektor in einem herkömmlichen System erzeugt, liefert der Unterbrechungscontroller zusätzlich einen Unterbrechungsvektor für jede I/O bei der vorliegenden Erfindung. Daher kann die Priorität von jeder I/O durch die Prioritätssetzschaltung eingestellt werden, um einen Unterbrechungsvektor in einer beliebigen Unterbrechungsprioritätsordnung zu erzeugen.
  • Diese Erfindung kann vollständiger anhand der folgenden Detailbeschreibung im Zusammenhang mit den begleitenden Zeichnungen verstanden werden, in welchen:
  • Fig. 1 ein Blockdiagramm ist, das eine Anordnung eines herkömmlichen programmierbaren Controllers zeigt,
  • Fig. 2 ein Schaltungsdiagramm ist, das in Einzelheiten einen Unterbrechungscontroller und eine I/O, dargestellt in Fig. 1, zeigt,
  • Fig. 3A bis 3H Zeitdiagramm sind, die Signale zeigen, die in dem in Fig. 1 dargestellten programmierbaren Controller verwendet werden,
  • Fig. 4 ein Blockdiagramm ist, das ein Ausführungsbeispiel eines programmierbaren Controllers gemäß der vorliegenden Erfindung zeigt, wobei insbesondere ein Unterbrechungscontroller in Einzelheiten gezeigt ist,
  • Fig. 5 ein Blockdiagramm ist, das in Einzelheiten eine Eingabe/Ausgabe-Vorrichtung, die in Fig. 4 dargestellt ist, zeigt, und
  • Fig. 6A bis 6I Zeitdiagramme sind, die Signale zeigen, welche in dem in Fig. 4 dargestellten Unterbrechungscontroller und in der in Fig. 5 dargestellten Eingabe/Ausgabe- Vorrichtung verwendet sind, wobei Fig. 6A ein von jeder I/O ausgegebenes Unterbrechungsanforderungssignal IRP, Fig. 6B ein von einer CPU ausgegebenes Bestatigungssignal INTA, Fig. 6C ein von einer Schnittstellenschaltung 11 an eine ausgedehnte Einheit ausgegebenes Unterbrechungsfreigabesignal CIEI, Fig. 6D ein von einem Unterbrechungscontroller 25 ausgegebenes Einheitsunterbrechungsfreigabeausgangssignal CIEO, Fig. 6E eine von einem Prioritätscontroller 101 ausgegebene Befestigungspositionsinformation SLDAT, Fig. 6F ein von einem Zeittaktcontroller 107 ausgegebenes Unterbrechungsinformationsfreigabesignal IDEN, Fig. 6G Daten auf einem Datenbus 31, Fig. 6H ein von dem Zeittaktcontroller 107 ausgegebenes Unterbrechungserzeugungssignal IRSEL und Fig. 6I ein Lesegatterfreigabesignal RGEN zeigen.
  • Fig. 4 ist ein Blockdiagramm, das in Einzelheiten einen Unterbrechungscontroller eines programmierbaren Controllers gemäß der vorliegenden Erfindung zeigt. Obwohl eine CPU, ein ROM, ein RAM und dergleichen in Fig. 4 zur Vereinfachung der Darstellung nicht gezeigt sind, sind diese Teile auch in diesem Controller wie in dem in Fig. 1 dargestellten herkömmlichen programmierbaren Controller enthalten. Es sei darauf hingewiesen, daß in Fig. 4 die Bezugszeichen wie in Fig. 1 die gleichen Teile bezeichnen.
  • Zur Vereinfachung der Darstellung werden eine Anordnung und ein Betrieb unten beschrieben, indem ein Unterbrechungscontroller und eine I/O in einer ausgedehnten Einheit als ein Beispiel genommen werden, jedoch sind eine Anordnung und ein Betrieb einer Basiseinheit im wesentlichen gleich. Obwohl zusätzlich eine Vielzahl von Einheiten auch bei der vorliegenden Erfindung verbunden werden kann, ist sie zur Vereinfachung der Darstellung weggelassen.
  • I/Os 30a und 30b geben Unterbrechungsanforderungssignale IRP über eine Unterbrechungsanforderungsleitung 15 wie bei dem in Fig. 1 gezeigten herkömmlichen System ab. Ein Unterbrechungscontroller 10 ist mit den I/Os 30a und 30b über einen Datenbus 31 verbunden. Der Datenbus 31 hat 16 Bits, die in einer 1:1-Entsprechung den I/Os 30a und 30b zugewiesen sind. Bei diesem Ausführungsbeispiel kann daher eine Höchstzahl von 16 I/Os mit einer ausgedehnten bzw. erstreckten oder ausgefahrenen Einheit verbunden werden.
  • Eine Unterbrechungsdatenverriegelungsschaltung 100 besteht aus beispielsweise einem 16-Bit-Register und verriegelt gleichzeitig eine Unterbrechungsinformation auf dem Datenbus, d.h. eine Befestigungspositionsinformation eines Maximums von 16 I/Os. Der Ausgang von der Unterbrechungsdatenverriegelungsschaltung 100 ist mit dem Eingang eines Prioritätscontrollers 101 verbunden. Der Prioritätscontroller 101 empfängt weiterhin Prioritätsinformation von einer Prioritätseinstellschaltung 102, bestimmt Unterbrechungsdaten mit der höchsten Priorität unter der Vielzahl von Unterbrechungsdaten und gibt die Befestigungspositionsinformation an einen Vektorgenerator 104 aus. Der Vektorgenerator 104 erzeugt einen Unterbrechungsvektor auf der Grundlage der Befestigungspositionsinformation, die von dem Prioritätscontroller 101 ausgegeben ist, und einer Einheitszahl, die von einem Einheitszahlgenerator 103 ausgegeben ist. (Die Einheitszahl wird durch vier Bits gebildet. In diesem Ausführungsbeispiel kann daher ein Maximum von 16 Einheiten verbunden werden.) Der erzeugte Unterbrechungsvektor wird zu der CPU 1 über einen ausgedehnten Datenbus CDATA gespeist. Ein Puffer 106 ist ein Zweirichtungsbus, der in einem normalen Datenaustausch zwischen der CPU 1 und der I/O 30a verwendet wird. Ein Zeittaktcontroller 107 empfängt ein Lesesignal RD, ein Bestätigungssignal INTAC und ein Einheitswählsignal SEL und liefert ein Freigabesignal DEN und ein die Richtwirkung anzeigendes Signal DIR zu dem Puffer 106, ein Anforderungsverriegelungssignal IREQL zu der Unterbrechungsanforderungsverriegelungsschaltung 100 und ein Unterbrechungsinformationsfreigabesignal IDEN zu den I/Os 30a und 3db. Der Einheitszahlgenerator 103 ist in jeder Einheit (eine Basiseinheit und eine ausgedehnte Einheit) angeordnet, um eine Einheitszahl zu erzeugen, um die Einheit zu identifizieren; und besteht aus beispielsweise einem Addierer. Der Generator 103 setzt eine Einheitszahl, beispielsweise "0000" für eine Einheit am nächsten zu der CPU 1 und liefert Einheitszahlen, die sequentiell um Eins erhöht bzw. inkrementiert werden. Die Prioritätseinstellschaltung 102 setzt die höchste Priorität in einem Datum der Unterbrechungsdaten von einer Vielzahl von I/Os. Eine Information, die eine I/O mit Unterbrechungsdaten anzeigt, zu der die höchste Priorität zu setzen ist, wird von der CPU 1 zu der Prioritatseinstellschaltung 102 über den Zweirichtungspuffer 106 gespeist.
  • Fig. 5 ist ein Schaltungsdiagramm, das in Einzelheiten die I/Os 30a und 3db zeigt. In Fig. 5 liefert eine Unterbrechungsanforderungsschaltung 203 ein Unterbrechungsanforderungsverarbeitungssignal 24 abhängig von einem Unterbrechungsfaktor (beispielsweise dem Ende eines Verarbeitens der I/O 30a). Das Ausgangsunterbrechungsanforderungsverarbeitungssignal l24 wird zu der Unterbrechungsanforderungssignalleitung 15 über den Ausgangspuffer (offener Kollektor) 207 gespeist, mit einem Unterbrechungsanforderungsverarbeitungssignal von der anderen I/O 30b ODER-verdrahtet und dann zu der CPU 1 als ein Unterbrechungsanforderungssignal IRP gespeist. Das Unterbrechungsanforderungsverarbeitungssignal l24 wird auch zu einem Eingangsanschluß eines UND-Gatters 303 gespeist. Wenn das Unterbrechungsanforderungsverarbeitungssignal l24 von der Unterbrechungsanforderungsschaltung 203 ausgegeben und ein Unterbrechungsinformationsfreigabesignal IDEN von dem Zeittaktcontroller 107 geliefert wird, gibt das UND-Gatter 303 ein Freigabesignal an eine Bitausziehschaltung 302 ab.
  • Auf der Grundlage der Vier-Bit-Information, die von vier spezifischen Stiften ausgegeben ist, die einem Verbinder einer Mutterplatte zugeordnet sind, erfaßt ein I/O-Positionsdetektor 304 eine Positions- bzw. Lageinformation, die eine Befestigungsposition einer I/O anzeigt. Beispielsweise sind die obigen vier spezifischen Stifte mit der Masse derart verbunden, daß "0000" ausgegeben wird, wenn die Befestigungsstellung der 0-te Schlitz ist. Zusätzlich sind der erste bis dritte Stift der obigen vier Stifte mit der Masse verbunden, und der vierte Stift hiervon ist auf +5 V derart hochgezogen, daß "0001" ausgegeben wird, wenn eine I/O in einem ersten Schlitz befestigt ist. Auf diese Weise liefert der I/O-Positionsdetektor 304 eine "0000" bis "1111" anzeigende Positionsinformation bezüglich der 0-ten bis 15-ten Schlitze. Eine I/O Einheitsinternschaltung 301 wird in einem normalen Datenaustausch zwischen der CPU 1 und der I/O 30a verwendet. Da die Schaltung 301 nicht mit einer Unterbrechungsverarbeitung zugeordnet ist, wird ihre Detailbeschreibung ausgelassen.
  • Abhängig von dem Freigabesignal von dem UND-Gatter 303 liefert die Bitausziehschaltung 302 eine Befestigungspositionsinformation ihrer eigenen I/O auf dem Datenbus. In diesem Fall besteht die Bitausziehschaltung 302 aus beispielsweise einem Multiplexer und liefert ein Bit entsprechend der von dem I/O-Positionsdetektor 304 ausgegebenen Befestigungspositionsinformation. Wenn beispielsweise eine von dem I/O-Positionsdetektor 304 ausgegebene Information den Wert "0000" hat, so setzt die Bitausziehschaltung 302 ein Bit "0" auf eine lögische "1" und alle verbleibenden Bits auflogische "0" und liefert die Bits auf den Datenbus 31 als Unterbrechungsdaten. Wenn die von dem I/O-Positionsdetektor 304 ausgegebene Information "0001" ist, so setzt die Bitausziehschaltung 302 ein Bit "1" auf eine logische "1" und alle verbleibenden Bits auf eine logische "0" und liefert die Bits auf dem Datenbus 31.
  • Ein Betrieb dieses Ausführungsbeispiels mit der obigen Anordnung wird im folgenden anhand der in den Fig. 6A bis 6I dargestellten Flußdiagramme erläutert.
  • Es sei darauf hingewiesen, daß in der folgenden Beschreibung dieses Ausführungsbeispiels angenommen wird, daß ein Unterbrechungsanforderungssignal von einer ausgedehnten Einheit geliefert ist.
  • Abhangig von einer Erzeugung eines Unterbrechungsfaktors befiehlt die in Fig. 5 gezeigte I/O Einheitsinternschaltung 301 der Unterbrechungsanforderungsschaltung 203, ein Unterbrechungsverarbeitungsanforderungssignal auszugeben. Als ein Ergebnis liefert die Unterbrechungsanforderungsschaltung 203 ein Unterbrechungsverarbeitungsanforderungssignal l24 auf der Unterbrechungsanforderungsleitung 15 über den Ausgangspuffer 207 und zu einem Eingangsanschluß des UND-Gatters 303. Die Unterbrechungsverarbei tungsanforderungss ignale auf der Unterbrechungsanforderungsleitung 15 sind ODER- verdrahtet, und das erhaltene Signal wird zu der CPU 1 als ein Unterbrechungsanforderungssignal IRP (niedrig aktiv) gespeist, das in Fig. 6A gezeigt ist. Abhängig von diesem Unterbrechungsanforderungssignal IRP liefert die CPU 1 ein in Fig. 6B gezeigtes Bestätigungssignal INTA zu dem Unterbrechungscontroller 17 in der Basiseinheit 7. Da das Unterbrechungsanforderungssignal nicht von der Einheit einschließlich des Unterbrechungscontrollers 17 ausgegeben ist, bestimmt der Controller 17, daß das Bestätigungssignal für ein Unterbrechungsanforderungssignal von einer ausgedehnten Einheit ausgegeben ist und liefert ein in Fig. 6C gezeigtes Einheitsunterbrechungsfreigabesignal CIEI zu der folgenden ausgedehnten Einheit und das Bestätigungssignal INTAC zu dem Zeittaktcontroller 107 in dem Unterbrechungscontroller 10 in der ausgedehnten Einheit 21. Abhängig von dem Bestätigungssignal INTAC liefert der Zeittaktcontroller 107 ein inaktives Freigabesignal DEN, um den Puffer 106 abzuschneiden, und speist ein in Fig. 6F gezeigtes Unterbrechungsdatenfreigabesignal IDEN zu den I/Os 30a und 30b. Abhängig von dem Unterbrechungsdatenfreigabesignal IDEN liefert der I/O-Positionsdetektor 304 eine I/O Befestigungspositionsinformation zu der Bitausziehschaltung 302. In der Zwischenzeit liegt das Unterbrechungsdatenfreigabesignal an dem UND-Gatter 303. Da eine UND-Bedingung erfüllt ist, liefert das UND-Gatter 303 ein Freigabesignal zu der Bitausziehschaltung 302. Als ein Ergebnis liefert die Bitausziehschaltung 302 eine Bitinformation entsprechend der I/O- Befestigungspositionsinformation auf dem Datenbus 31 als eine in Fig. 6G gezeigte Unterbrechungsinformation. Da dann der Zeittaktcontroller 107 ein in Fig. 6H gezeigtes Anforderungsverriegelungssignal IREQL zu der Unterbrechungsdatenverriegelungsschaltung 100 liefert, verriegelt die Unterbrechungsdatenverriegelungsschaltung 100 die Unterbrechungsdaten auf dem Datenbus 31. Danach werden die durch die Unterbrechungsdatenverriegelungsschaltung 100 verriegelten Unterbrechungsdaten zu dem Prioritätscontroller 101 gespeist. Prioritätseinstelldaten werden auch-von der Prioritätseinstellschaltung 102 zu dem Prioritätscontroller 101 gespeist. Als ein Ergebnis liefert der Prioritätscontroller 101 ein inaktives Unterbrechungsfreigabesignal CIEO (Fig. 6D) zu der folgenden ausgedehnten Einheit. Zusätzlich wählt der Prioritätscontroller 101 Unterbrechungsdaten mit der höchsten Priorität entsprechend den Prioritätseinstelldaten und gibt die gewählten Daten zu dem Vektorgenerator 104 als Befestigungspositionsdaten (Schlitzvektor) SLTDAT, die in Fig. 6E gezeigt sind, ab.
  • Folglich erzeugt der Vektorgenerator 104 einen Unterbrechungsvektor einschließlich einer von dem Einheitszahlgenerator 103 ausgegebenen Einheitszahl und des Schlitzvektors von dem Prioritätscontroller 101. Die CPU 1 gibt ein Lesesignal RD zum Auslesen des Unterbrechungsvektors an den Zeittaktcontroller 107 ab. Abhängig von dem Lesesignal RD liefert der Zeittaktcontroller 107 ein Lesegatterfreigabesignal RGEN, das in Fig. 6I gezeigt ist, an den Vektorgenerator 104.
  • Der Prioritätscontroller 101 liefert auch ein Unterbrechungserzeugungssignal IRSEL zu einem UND-Gatter 105. Da ein aktives ausgedehntes Einheitsunterbrechungsfreigabesignal CIEI auch zu dem UND-Gatter 105 gespeist ist, wird eine UND-Bedingung erfüllt. Daher liefert das UND-Gatter 105 ein Vektordatenfreigabesignal VDEN zu dem Vektorgenerator 104. Abhängig von dem von dem Zeittaktcontroller 107 ausgegebenen Lesegatterfreigabesignal RÖEN und dem Datenfreigabesignal VDEN speist der Unterbrechungsvektorgenerator 104 den Unterbrechungsvektor zu der CPU 1 über den ausgedehnten Datenbus.
  • Wenn die CPU 1 den Unterbrechungsvektor empfängt, speist sie einen Befehl zu der durch den Unterbrechungsvektor bezeichneten Einheit über den Datenbus, so daß die Einheit die Unterbrechungsanforderung löscht. Die I/O-Einheitsinternschaltung 301 empfängt diesen Befehl und befiehlt der Unterbrechungsanforderungsschaltung 203, das Ausgeben des Unterbrechungsanforderungsverarbeitungssignales zu stoppen.
  • Es sei darauf hingewiesen, daß die vorliegende Erfindung nicht auf das obige Ausführungsbeispiel begrenzt ist. Beispielsweise bestimmt in dem obigen Ausführungsbeispiel der Prioritätscontroller 101 die Priorität der Unterbrechungsdaten auf der Grundlage der Prioritätsdaten von der Prioritätseinstellschaltung 102. Die Priorität kann jedoch auf der Grundlage fester Prioritätsdaten bestimmt werden.

Claims (6)

1. Programmierbarer Controller mit einer Zentraleinheit (CPU 5), die ein Unterbrechungsanforderungssignal (IRQ) empfangen und ein Unterbrechungsfreigabesignal (IDEN) ausgeben kann, einer mit der CPU verbundenen Schnittstellenschaltung (10), einer Vielzahl von parallelen I/O-Vorrichtungen, die über die Schnittstellenschaltung angeschlossen sind, und einem Datenbus (DATA BUS) zum Verbinden der Schnittstellenschaltung mit der Vielzahl von I/O- Vorrichtungen,
wobei jede der I/O-Vorrichtungen umfaßt:
eine Einrichtung zum Ausgeben eines Unterbrechungsanforderungssignales an die CPU,
eine Einrichtung (304) zum Erfassen einer Befestigungsposition der I/O-Vorrichtung, und
eine Einrichtung (301, 302, 303), um abhängig von dem Unterbrechungsfreigabesignal von der CPU eine Information, die eine Befestigungsposition anzeigt, auf der Grundlage der erfaßten Befestigungspositionsinformation zu erzeugen und die Information als eine Unterbrechungsinformation auszugeben, und
wobei die Schnittstelleneinrichtung umfaßt:
eine Einrichtung (100) zum Verriegeln der von der Vielzahl von I/O-Vorrichtungen über den Datenbus eingespeisten Unterbrechungsdaten,
eine Einrichtung (104) zum Erzeugen eines Unterbrechungsvektors durch Verwenden von Unterbrechungsdaten, die aus der Vielzahl von Unterbrechungsdaten gemäß einer vorbestimmten Regel ausgewählt sind, und
eine Einrichtung (CDATA) zum Einspeisen des erzeugten Unterbrechungsvektors in die CPU.
2. Controller nach Anspruch 1, dadurch gekennzeichnet, daß die Unterbrechungsvektor-Generatoreinrichtung einen Unterbrechungsvektor einer I/O-Vorrichtung mit der höchsten Priorität erzeugt.
3. Controller nach Anspruch 1, dadurch gekennzeichnet, daß den Datenbus bildende Datenleitungen in einer 1:1-Entsprechung den I/O-Vorrichtungen zugewiesen sind und jede I/O-Vorrichtung die Unterbrechungsdaten mittels einer dort zugewiesenen Datenleitung ausgibt.
4. Controller nach Anspruch 1, gekennzeichnet durch weiterhin eine Prioritätseinstelleinrichtung (102), die beliebig eine I/O-Vorrichtung einstellen kann, für die ein Unterbrechungsvektor früher als diejenigen für andere bezüglich der Unterbrechungsdaten von der Vielzahl von I/O-Vorrichtungen zu erzeugen ist.
5. Controller nach Anspruch 1, dadurch gekennzeichnet, daß die Vielzahl von I/O-Vorrichtungen eine einzige Einheit bildet und eine Vielzahl von Einheiten (4A, 4B) in hierarchischer Weise angeordnet und in einer Gänseblümchenkette verbunden sind.
6. Controller nach Anspruch 5, gekennzeichnet durch weiterhin eine Einheitsidentifikationsdatengeneratoreinrichtung (103) zum Identifizieren jedes Datums, wobei die Unterbrechungsdaten ein Einheitsidentifikationsdatum und eine Zwischeneinheitsbefestigungspositionsinformation umfassen.
DE69024913T 1989-10-30 1990-10-29 Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung Expired - Lifetime DE69024913T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1279645A JPH03142504A (ja) 1989-10-30 1989-10-30 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
DE69024913D1 DE69024913D1 (de) 1996-02-29
DE69024913T2 true DE69024913T2 (de) 1996-05-30

Family

ID=17613870

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69024913T Expired - Lifetime DE69024913T2 (de) 1989-10-30 1990-10-29 Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung

Country Status (5)

Country Link
US (1) US5430879A (de)
EP (1) EP0426081B1 (de)
JP (1) JPH03142504A (de)
KR (1) KR940000289B1 (de)
DE (1) DE69024913T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590338A (en) * 1993-07-23 1996-12-31 Dell Usa, L.P. Combined multiprocessor interrupt controller and interprocessor communication mechanism
JPH07105175A (ja) * 1993-10-08 1995-04-21 Nec Corp マイクロコンピュータ
US5671421A (en) * 1994-12-07 1997-09-23 Intel Corporation Serial interrupt bus protocol
US5812875A (en) * 1995-05-02 1998-09-22 Apple Computer, Inc. Apparatus using a state device and a latching circuit to generate an acknowledgement signal in close proximity to the request signal for enhancing input/output controller operations
US5819112A (en) * 1995-09-08 1998-10-06 Microsoft Corporation Apparatus for controlling an I/O port by queuing requests and in response to a predefined condition, enabling the I/O port to receive the interrupt requests
DE69726400T2 (de) * 1996-09-20 2004-08-26 Koninklijke Philips Electronics N.V. Festkörper-datenprozessor mit vielseitiger mehrquellen-unterbrechungsorganisation
US8239594B2 (en) * 2005-11-10 2012-08-07 Datacard Corporation Modular card issuance system and method of operation
JP4544348B2 (ja) * 2008-07-14 2010-09-15 ソニー株式会社 リモートコントローラ、画像信号処理装置および画像信号処理方法
KR102337098B1 (ko) * 2021-03-31 2021-12-09 남경건설(주) 균열제어형 친환경 초조강 시멘트 콘크리트 조성물 및 이를 이용한 도로의 보수시공방법
KR102337102B1 (ko) * 2021-03-31 2021-12-13 (주)화진건설 향상된 염해 및 동결융해 저항성을 갖는 초조강 시멘트 콘크리트 조성물 및 이를 이용한 도로의 보수시공방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3832692A (en) * 1972-06-27 1974-08-27 Honeywell Inf Systems Priority network for devices coupled by a multi-line bus
US4030075A (en) * 1975-06-30 1977-06-14 Honeywell Information Systems, Inc. Data processing system having distributed priority network
JPS5783839A (en) * 1980-11-13 1982-05-25 Hitachi Ltd Control system for interruption request priority
US4442502A (en) * 1981-03-30 1984-04-10 Datapoint Corporation Digital information switching system
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
US4494192A (en) * 1982-07-21 1985-01-15 Sperry Corporation High speed bus architecture
JPS5999521A (ja) * 1982-11-29 1984-06-08 Toshiba Corp インタフエ−ス回路
US4559595A (en) * 1982-12-27 1985-12-17 Honeywell Information Systems Inc. Distributed priority network logic for allowing a low priority unit to reside in a high priority position
US4745548A (en) * 1984-02-17 1988-05-17 American Telephone And Telegraph Company, At&T Bell Laboratories Decentralized bus arbitration using distributed arbiters having circuitry for latching lockout signals gated from higher priority arbiters
CA1218465A (en) * 1984-04-30 1987-02-24 Jerry D. Neal Communications controller board
US4914574A (en) * 1984-08-16 1990-04-03 Mitsubishi Denki Kabushiki Kaisha Data transmission apparatus having cascaded data processing modules for daisy chain data transfer
DE3688759T2 (de) * 1985-03-20 1994-01-05 Hitachi Ltd Ein-/Ausgabe-Steuerungssystem.
JPS61288251A (ja) * 1985-06-17 1986-12-18 Toshiba Corp プログラマプルコントロ−ラの割込ベクタ生成方法
US4724519A (en) * 1985-06-28 1988-02-09 Honeywell Information Systems Inc. Channel number priority assignment apparatus
US5101478A (en) * 1985-06-28 1992-03-31 Wang Laboratories, Inc. I/O structure for information processing system
JPS62226257A (ja) * 1986-03-27 1987-10-05 Toshiba Corp 演算処理装置
US4888684A (en) * 1986-03-28 1989-12-19 Tandem Computers Incorporated Multiprocessor bus protocol
US4972368A (en) * 1988-03-04 1990-11-20 Stallion Technologies, Pty. Ltd. Intelligent serial I/O subsystem
US5274781A (en) * 1988-07-25 1993-12-28 Allen-Bradley Company, Inc. Programmable controller module identification by interconnecting the input and output ports of a module in a predefined manner

Also Published As

Publication number Publication date
EP0426081B1 (de) 1996-01-17
US5430879A (en) 1995-07-04
EP0426081A2 (de) 1991-05-08
EP0426081A3 (en) 1991-12-18
KR940000289B1 (ko) 1994-01-14
KR910008586A (ko) 1991-05-31
JPH03142504A (ja) 1991-06-18
DE69024913D1 (de) 1996-02-29

Similar Documents

Publication Publication Date Title
DE69120586T2 (de) Rechnersystem mit synchronem Bus
DE69121382T2 (de) Emulator zur Emulation eines verbindungsloses Mikrokontroller und Mikrokontroller zur Verwendung in einem solchen Emulator
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE68925046T2 (de) Konfigurationssteuerungssystem
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE69305049T2 (de) Hochfrequenz- cmos-schaltung mit geringen verbrauch
DE2856483C2 (de)
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE3586421T2 (de) Anzeigegeraet.
DE69026479T2 (de) Datenprozessor mit Wartezustandsteuerungseinheit
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE4018505C2 (de)
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE19860650A1 (de) Chip-Satz-Speichersteuervorrichtung mit Datenausblend-Maskenfunktion
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
EP0014850A1 (de) Einrichtung zur Erweiterung des Standard-Makroinstruktionssatzes in einer Datenverarbeitungsanlage
DE69024913T2 (de) Programmierbare Steuerungsvorrichtung mit Unterbrechungssteuerungsgerät zur Prioritätsbestimmung von Unterbrechungsanforderungen von einer Vielzahl von Ein-/Ausgabeeinrichtungen und zur Unterbrechungsvektorerzeugung
DE69025524T2 (de) Vorrichtung und Verfahren zur Steuerung von Speicherzugriffsanforderungen in einem digitalen Datenverarbeitungssystem
DE69028498T2 (de) Datenübertragungssystem und -verfahren
DE3727017A1 (de) Synchronisiervorrichtung fuer prozessoren
DE3850808T2 (de) Erzeugung von Taktimpulsen.
DE3587446T2 (de) Signalverarbeitungsprozessor und hierarchische Multiverarbeitungstruktur mit mindestens einem solchen Prozessor.
DE2844295A1 (de) Verfahren und vorrichtung zur steuerung der datentransferrichtung auf einem datenbus
DE3789471T2 (de) Mikrocomputer.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)