[go: up one dir, main page]

DE3501569C2 - Datenverarbeitungseinrichtung - Google Patents

Datenverarbeitungseinrichtung

Info

Publication number
DE3501569C2
DE3501569C2 DE3501569A DE3501569A DE3501569C2 DE 3501569 C2 DE3501569 C2 DE 3501569C2 DE 3501569 A DE3501569 A DE 3501569A DE 3501569 A DE3501569 A DE 3501569A DE 3501569 C2 DE3501569 C2 DE 3501569C2
Authority
DE
Germany
Prior art keywords
memory
signal
data processing
processing device
access
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
DE3501569A
Other languages
English (en)
Other versions
DE3501569A1 (de
Inventor
Kozo Matsumoto
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.)
Canon Inc
Original Assignee
Canon 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
Priority claimed from JP705884A external-priority patent/JPS60151760A/ja
Priority claimed from JP705784A external-priority patent/JPS60151759A/ja
Application filed by Canon Inc filed Critical Canon Inc
Publication of DE3501569A1 publication Critical patent/DE3501569A1/de
Application granted granted Critical
Publication of DE3501569C2 publication Critical patent/DE3501569C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Measurement Of Unknown Time Intervals (AREA)
  • Dram (AREA)

Description

Die Erfindung bezieht sich auf eine Datenverarbeitungseinrichtung, deren Zentraleinheit auf eine Mehrzahl von Speichereinrichtungen mit jeweils unterschiedlichen Zugriffszeiten zugreifen kann.
Dabei kann eine derartige Datenverarbeitungseinrichtung beispielsweise einen Aufbau aufweisen, wie er in Fig. 1 gezeigt ist.
Demgemäß enthält eine Datenverarbeitungseinrichtung 1, z. B. ein Heimcomputer, eine Zentraleinheit (ZE) 101 und einen internen Speicher 102 mit einem Festspeicher (ROM) zur Speicherung eines Steuerprogramms sowie einem RAM. Ein Wartesignalerzeuger 103 liefert auf einer Leitung 104 ein Wartesignal, um zeitweise einen Speicherzugriff durch die ZE 101 zu unterdrücken.
Wenn die ZE 101 auf den internen Speicher 102 zugreift, so bringt der Wartesignalerzeuger 103 die ZE dazu, eine vorbestimmte Zeitspanne, die von einer Zugriffszeit des verwendeten Speichers abhängig ist, zu warten.
Ein Ergänzungsspeicher 2 als ROM- oder RAM-Kassette umfaßt einen externen Speicher 201 mit einem ROM oder RAM. Dabei verwendet der externe Speicher 201 Speicherelemente, die die gleiche oder eine kürzere Zugriffszeit wie der interne Speicher 102 haben, und der Wartesignalerzeuger 103 veranlaßt die ZE 101 für die gleiche vorgegebene Zeitspanne zu warten, wenn die ZE 101 auf den externen Speicher 201 zugreift, wie beim Zugriff auf den internen Speicher 102. Somit wird durch Ankoppeln der Kassette 2 an die Datenverarbeitungseinrichtung die Gesamtfunktion des Systems so erweitert, als ob die Kapazität des internen Speichers 102 vergrößert würde. Dieses hat jedoch den Nachteil, daß die Zugriffszeit des externen Speichers 201 in der Kassette 2 gleich der Zugriffszeit des internen Speichers 102 der Datenverarbeitungseinrichtung oder kürzer als diese Zugriffszeit sein muß.
Um dieses Problem zu beseitigen, kann zwar die Wartezeit für die ZE ausreichend lang angesetzt werden, so daß Kassetten mit Speicherelementen mit unterschiedlichen Zugriffszeiten nach Wahl verwendet werden können. In diesem Fall ist jedoch, wenn eine Kassette mit Speicherelementen von kurzer Zugriffszeit verwendet wird, eine unnötig lange Wartezeit für den externen Speicher erforderlich.
Eine weitere Anpassungsmöglichkeit der Datenverarbeitungseinrichtung an unterschiedliche Zugriffszeiten ist aus der US-Firmenzeitschrift "AmZ 8000 Family Reference Manual", Advanced Micro Devices Inc., 1979, S. 16-19, bekannt. Dort ist eine Zentraleinheit gezeigt, bei der zum Zugriff auf eine Speichereinrichtung entsprechend dem erforderlichen Zugriffszyklus eine feste Anzahl von Wartezyklen programmierbar ist. Erforderlich für eine derartige Zugriffssteuerung ist aber ein eigens dafür konstruierter Baustein, der zudem eine Vielzahl von möglichen Warte-Zeitspannen entsprechend den jeweiligen Zugriffszyklen der Speichereinrichtungen gespeichert halten muß.
Zudem ist aus der US 4,093,982 ein Mikroprozessorsystem mit einer Zentraleinheit zum Durchführen einer Datenverarbeitung bekannt, wobei dort eine Anpassung an unterschiedliche Speicherzugriffszeiten anhand einer Beeinflussung des Systemtaktes erfolgt. Genauer wird dort zum Verzögern der Operation der Zentraleinheit der Systemtakt bei einer Speicher-Zugriffsanforderung abgeschaltet und nach Abschluß des Zugriffszyklus wieder gestartet. Mithin läßt sich eine hohe Unabhängigkeit des Systems von unterschiedlichen Zugriffszeiten externer und interner Speichervorrichtungen erzielen. Allerdings arbeitet das System nicht unter Berücksichtigung der bzw. unabhängig von den unterschiedlichen Speichervorrichtungen mit den verschiedenen Zugriffszeiten und erfordert zudem einen hohen Schaltungsaufwand.
Demgegenüber liegt der Erfindung die Aufgabe zugrunde, eine Datenverarbeitungseinrichtung gemäß dem Oberbegriff des Patentanspruchs 1 derart weiterzubilden, daß auf eine einfache Weise eine Anpassung an verschiedene Speichervorrichtungen mit unterschiedlichen Zugriffszeiten ermöglicht ist.
Diese Aufgabe wird durch die im kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale gelöst.
Vorteilhafte Weiterbildungen sind Gegenstand der Unteransprüche.
Die Erfindung wird nachstehend anhand von Ausführungsbeispielen unter Bezugnahme auf die Zeichnung näher beschrieben. Es zeigen
Fig. 1 ein Blockdiagramm einer herkömmlichen Datenverarbeitungseinrichtung,
Fig. 2 einen schematischen Längsschnitt durch einen mit einer erfindungsgemäßen Datenverarbeitungseinrichtung ausgerüsteten Laserdrucker,
Fig. 3 ein Blockdiagramm einer erfindungsgemäßen Datenverarbeitungseinrichtung gemäß einem Ausführungsbeispiel, und
Fig. 4 und 5 Blockdiagramme einer erfindungsgemäßen Datenverarbeitungseinrichtung gemäß weiteren Ausführungsbeispielen.
Der in Fig. 2 gezeigte Laserstrahldrucker umfaßt eine Belichtungsvorrichtung 21 mit einem Abtast- und Laserstrahlgerät, eine Entwicklungsvorrichtung 22, die eine auf einer lichtempfindlichen Walze 23 gefertigte latente Abbildung sichtbar macht, und eine Papierkassette 24, von der eine Papierzufuhrrolle 5 Papierblätter, und zwar eines nach dem anderen, einer Transportwalze 6 zuführt. Durch eine Ausrichtklinke 7 wird das von der Transportwalze 6 herangeführte Papier zeitweise angehalten, um die Projektion des Laserstrahls und die Drehung der lichtempfindlichen Walze 23 mit der Papierzufuhr zu synchronisieren. Von einer Förderrolle 8 wird das Papier in die Übertragungs- oder Transferstation 9 eingebracht. Die auf das Papier übertragene Tonerabbildung wird in der Fixierstation 10 fixiert, worauf das Papier in eine Stapeleinrichtung 11 ausgetragen wird. Ferner weist der Laserstrahldrucker einen mit einem ROM versehenen entfernbaren Hilfsspeicher 12 als Zeichengenerator auf.
Bei dem in dieser Weise aufgebauten Laserstrahldrucker wird ein Zeitablauf einer Folge von Tätigkeiten, wie die Papierförderung und das Entwickeln, durch einen Folgeregler 13 gesteuert.
Ein Bildverarbeitungsprozessor 14 dient dazu, ein von einem übergeordneten (nicht gezeigten) Computer abgegebenes Codesignal in ein Bildsignal umzusetzen. Der Laserstrahl wird durch ein vom Bildprozessor 14 erzeugtes Binärsignal an- und abgeschaltet. Der Bildprozessor 14 hat einen Schriftzeichenspeicher, der eine Vielzahl von Schriftarten in Form von Bild- oder Mustersignalen enthält, und er greift auf den Schriftzeichenspeicher durch ein eingegebenes Codesignal zu, um ein entsprechendes Bildsignal auszulesen. Der Zeichengenerator (Hilfsspeicher) 12 wird zur Erzeugung eines Bildsignals benutzt, das anders ist als die im Bildprozessor 14 gespeicherte Schriftart (Bildsignale). Das Bildsignal im Zeichengenerator 12 wird vom Bildprozessor 14 durch Anlegen eines Codesignals an diesen ausgelesen. Die noch zu beschreibende Kassette 4 (s. Fig. 3-5) entspricht dem Zeichengenerator 12, und die Datenverarbeitungseinrichtung 3 (s. Fig. 3-5) ist im Bildprozessor 14 enthalten.
Bei dem in Fig. 3 gezeigten ersten Ausführungsbeispiel gemäß der Erfindung sind eine Datenverarbeitungseinrichtung und eine an dieser entfernbar angebrachte Kassette 4 vorhanden. Wenngleich das in Fig. 3 nicht gezeigt ist, so können mit der Datenverarbeitungseinrichtung 3 ein übliches Tastenfeld und ein Sichtgerät verbunden werden. Die Datenverarbeitungseinrichtung 3 umfaßt eine ZE 301 und einen internen Speicher 302 mit einem RAM und einen ROM zur Verwendung durch die ZE 301. Ein gemeinsamer Speicherbus 303 der ZE 301 ist eine Sammelleitung zur Übertragung von Daten und Adressensignalen. Eine zweite Einstellschaltung 304 dient zur Einstellung einer Zugriffszeit des internen Speichers 302. Einer voreinstellbaren Zählschaltung 305 wird ein Anfangszählwert von einem Paralleldaten- Eingangsanschluß D eingegeben. Ein einen RAM oder ROM umfassender Halbleiterspeicher 401 ist in der Kassette 4 und diese an der Datenverarbeitungseinrichtung 3 lösbar angebracht. Eine erste Einstellschaltung 402 stellt eine Zugriffszeit des externen Halbleiterspeichers 401 ein. Einem voreinstellbaren Zähler 403 wird von einem Paralleldaten- Eingangsanschluß D ein Anfangszählwert eingegeben.
Die obige Schaltungsanordnung arbeitet in der folgenden Weise. Die ZE 301 greift auf den internen Speicher 302 jedesmal zu, wenn sie einen Befehl ausführt. Wenn die ZE 301 in gleichartiger Weise auf den externen Halbleiterspeicher 401 zugreift, dann wird der Inhalt dieses Speichers abgerufen. Auf welchen der Speicher die ZE 301 zugreift, wird durch ein Adressensignal auf dem gemeinsamen Speicherbus 303 bestimmt. Üblicherweise wird dem externen Halbleiterspeicher eine höhere Adresse zugeordnet. Demzufolge arbeitet die Dateiverarbeitungseinrichtung 3 auch dann richtig, wenn die Kassette 4 nicht befestigt bzw. abgenommen ist. Wenn ein besonders großes Programm ausgeführt werden soll oder wenn die Zahl an Typen bzw. Zeichen der Schriftarten vergrößert werden soll, wird die Kassette 4 an der Datenverarbeitungseinrichtung 3 befestigt. Die elektronische Verbindung zwischen der Datenverarbeitungseinrichtung 3 und der Kassette 4 wird durch eine (nicht gezeigte) Steckverbindung hergestellt. Wenn die Kassette 4 nicht befestigt ist, dann haben der gemeinsame Datenbus 303 und die Signalleitung 404, die das Ausgangssignal des Zählers 403 überträgt, eine hohe Impedanz. Der Bussignalpegel der Datenverarbeitungseinrichtung 3 wird von diesem Gerät gesteuert. Der gemeinsame Datenbus 303 wird von einer Dreizustandsvorrichtung betrieben, die Signalleitung 404 wird so beeinflußt, daß sie, wenn kein externes Signal an ihr liegt, auf dem logischen Pegel "1" ist. Unter dieser Bedingung ist demzufolge das Signal auf der Leitung 404 immer auf dem logischen "1"-Pegel.
Die zweite Einstellschaltung 304 in der Datenverarbeitungseinrichtung 3 erzeugt dagegen immer ein vorbestimmtes digitales Signal, dessen Inhalt von der Zugriffszeit des internen Speichers 302 bestimmt und durch ein Komplement von mehreren Maschinentakten der ZE 301 gehalten wird. Die zweite Einstellschaltung 304 erzeugt immer einen Binärcode, der logische Pegel von "1" und "0" enthält, und kann einen Mikrodip-Schalter, einen Leitercodierchip od. dgl. umfassen. Dasselbe gilt auch für die erste Einstellschaltung 402. Der Ausgang der zweiten Einstellschaltung 304 wird dem Paralleldaten-Eingangsanschluß D des Zählers 305 über die Leitung 306 zugeführt. Andererseits wird der Maschinentakt von der ZE 301 dauernd an den Takteingabeanschluß C des Zählers 305 über die Leitung 307 gelegt. Ein Zählungsfreigabesignal wird vom internen Speicher 302 über die Leitung 308 dem Zählungsfreigabeanschluß E des Zählers 305 zugeführt. Das die Zählung freigebende Signal nimmt den logischen Wert "1" an, wann immer die ZE 301 mit ihrem Zugriff auf den internen Speicher 302 beginnt, d. h., wann immer das Adressensignal auf dem gemeinsamen Speicherbus 303 den internen Speicher 302 adressiert, wird dessen Inhalt entschlüsselt, um ein Auswahlfreigabesignal des internen Speichers 302 zu erzeugen, und das Zählungsfreigabesignal wird synchron mit einem vorbestimmten Zeit- oder Taktsignal auf den logischen Pegel "1" eingestellt. Das gilt sowohl für einen Lese- als auch für einen Schreibzyklus für den internen Speicher 302.
Über den Paralleldaten-Eingangsanschluß D wird mit dem Anstieg des Zählungsfreigabesignals der Zähler voreingestellt, der anschließend hoch zählt, bis das höchstwertige Bit des Zählers 305 den logischen Pegel "1" annimmt. Bis das höchstwertige Bit des Zählers 305 diesen Pegel "1" annimmt, wird ein Ausgang mit dem logischen Pegel "0" an einen Eingangsanschluß eines ODER-Gatters 310 mit negativer Eingangslogik von einem Ausgangsanschluß O über eine Leitung 309 gelegt, während ein invertierter Ausgang oder ein logischer Pegel "1" dem Warteeingang W der ZE 301 zugeführt wird. Unter dieser Bedingung ist die ZE 301 in einem Wartezustand. Wenn schließlich das höchstwertige Bit des Zählers 305 den logischen Pegel "1" annimmt, so beendet der Zähler sein weiteres internes Zählen, und die logische "1" wird dem ODER-Gatter 310 über den Ausgangsanschluß O und die Leitung 309 zugeführt. Da der Pegel der logischen "1" immer an den anderen Eingangsanschluß des ODER-Gatters 310 gelegt wird, wird nun der invertierte logische Pegel "0" dem Warteeingang W der ZE 301 zugeführt und damit der Wartezustand beendet.
Bei diesem Vorgehen kann das Wartesignal auf der Leitung 311 als ein Signal angesehen werden, das auf den Pegel der logischen "1" zur Zeit der Anfangseinstellung des Zählers 305 (also zur Zeit des Beginns des Speicherzugriffs) eingestellt und nach dem Verstreichen der vorbestimmten Zeitspanne durch das Zählen des Zählers 305 auf den logischen "0"-Pegel zurückgestellt wird. Der Wartebetrieb der ZE 301 erfolgt nur während der Zeit, in der das Wartesignal auf dem logischen Pegel "1" ist. Unter Verwendung der Wartezeit verzögert die ZE 301 einen Auftastimpuls für ein Schreiben oder Lesen am internen Speicher 302. Am Ende von einem Speicherzugriffszyklus auf den internen Speicher 302 wird das Zählungsfreigabesignal auf der Leitung 308 auf den logischen "0"-Pegel zurückgesetzt. Wenn erneut ein Speicherzugriff durch die ZE 301 vorgenommen wird, so wird der obige Vorgang wiederholt.
Die Arbeitsweise des externen Halbleiterspeichers 401 in der Kassette 4 ist zu der oben beschriebenen Arbeitsweise gleichartig. Die erste Einstellschaltung 402 erzeugt ständig ein vorbestimmtes digitales Signal, dessen Inhalt durch die Zugriffszeit des externen Halbleiterspeichers 401 bestimmt ist und durch ein Komplement von mehreren Maschinentakten der ZE 301 gehalten wird. Der Ausgang der ersten Einstellschaltung 402 wird an den Paralleldaten- Eingangsanschluß D des Zählers 403 über die Leitung 406 gelegt. Wenn die Kassette 4 mit der Datenverarbeitungseinrichtung 3 verbunden ist, so wird der Maschinentakt von der ZE 301 über die Leitung 307 dem Takteingabeanschluß C des Zählers 403 zugeführt. Ein Zählungsfreigabesignal vom externen Halbleiterspeicher 401 wird an den Zählungsfreigabeanschluß E des Zählers 403 von der Leitung 405 her gelegt, und dieses Signal nimmt den logischen "1"-Pegel an, wann immer die ZE 301 mit einem Zugriff auf den externen Halbleiter 401 beginnt. Das bedeutet, daß, wann immer das Adressensignal auf dem gemeinsamen Speicherbus 303 den externen Halbleiterspeicher 401 adressiert, dessen Inhalt entschlüsselt wird, um ein Auswahlfreigabesignal des externen Speichers 401 zu erzeugen, wobei das Zählungsfreigabesignal synchron mit einem vorbestimmten Zeitsignal von der ZE 301 auf den logischen Pegel "1" gesetzt wird. Die anschließende Arbeitsweise ist zu derjenigen der Datenverarbeitungseinrichtung 3 gleichartig. Das Wartesignal auf der Leitung 311 wird zur Zeit der Anfangseinstellung des Zählers 403 auf den logischen Pegel "1" gesetzt und nach dem Verstreichen einer vorgegebenen Zeitspanne durch das Zählen des Zählers 403 auf den logischen "0"-Pegel zurückgesetzt. Das Hoch-Pegelsignal (logische "1") wird immer an die Leitung 309 gelegt, und somit wird nur während der Periode des Wartesignals mit dem logischen "1"-Pegel auf der Leitung 311 der Wartevorgang in der ZE 301 ermöglicht.
In Übereinstimmung mit einer bevorzugten Arbeitsweise der erläuterten Ausführungsform ist die Zugriffszeit des externen Halbleiterspeichers 401 länger als diejenige des internen Speichers 302. Das bedeutet, daß der externe Halbleiterspeicher 401 Speicherelemente mit einem langen Speicherzugriffszyklus verwendet. Demzufolge ist die Zeitspanne, während der das Wartesignal auf der Leitung 311 den logischen "1"-Pegel einnimmt, länger, wenn auf den externen Halbleiterspeicher 401 zugegriffen wird, als bei einem Zugriff auf den internen Speicher 302. Die ZE 302 leistet keinen besonderen Beitrag zur Erzeugung und Steuerung des Wartesignals von unterschiedlichen Zeitlängen, sie braucht nur auf den internen Speicher 302 oder den externen Halbleiterspeicher 401 in Übereinstimmung mit der vorstehend beschriebenen Durchführungsprozedur zuzugreifen.
Gemäß einer anderen bevorzugten Arbeitsweise der Erfindung ist die Zugriffszeit des externen Halbleiterspeichers 401 kürzer als diejenige des internen Speichers 302. Das bedeutet, daß der externe Halbleiterspeicher Speicherelemente verwendet, die einen kurzen Speicherzugriffszyklus haben. Auch in diesem Fall braucht die ZE 301 nur auf den internen oder externen Speicher 302 bzw. 401 in Übereinstimmung mit der Durchführungsprozedur des Programms zuzugreifen. Weil hierbei die erste Einstellschaltung 402 die Einstellung hält, die eine Erzeugung eines Wertigkeitssignals gegenüber dem internen Speicher 302 von kürzerer Dauer bewirkt, wird auf den internen wie auch auf den externen Speicher 302 und 401 mit jeweils optimaler Zugriffszeit zugegriffen.
Die Datenverarbeitungseinrichtung in der vorbeschriebenen Ausführungsform kommt in der folgenden Weise zur Verwendung. Wenn nur die Datenverarbeitungseinrichtung 3 in Gebrauch und die Kassette 4 nicht angeschlossen ist, dann ist kein invertiertes Signal des vom Zähler 403 über die Leitung 404 an das ODER-Gatter 310 gelegten Wartesignals vorhanden, dieser Pegel wird immer zur logischen "1" hin beeinflußt. Wenn die ZE 301 auf den internen Speicher 302 zugreift, so wartet die ZE 301 für eine vom Einstellausgang der zweiten Einstellschaltung 304 bestimmte Zeitspanne. Wenn die Kassette 4 angeschlossen ist, dann wartet die ZE 301 für eine geeignete, von den Ausgängen der Einstellschaltungen 304 oder 402 bestimmte Zeit, falls die ZE 301 auf den internen Speicher 302 oder den externen Halbleiterspeicher 401 zugreift. Demzufolge kann die ZE 301, wie unterschiedlich auch immer die Zugriffszeiten der im internen und externen Speicher 302 sowie 401 verwendeten Speicherelemente sein mögen, mit der optimalen Wartezeit bei beiden Speichern lesen oder schreiben. Wenn eine andere (nicht gezeigte) Kassette 4′, die Speicherelemente mit einer unterschiedlichen Zugriffszeit verwendet, als externer Halbleiterspeicher 401′ angeschlossen wird, dann kann die ZE 301 mit der optimalen Zugriffszeit in Übereinstimmung mit der Einstellung in einer (nicht gezeigten) Einstellschaltung 402′ den internen Speicher 302 oder den externen Halbleiterspeicher 401′ lesen oder beschreiben.
Bei dem oben beschriebenen Ausführungsbeispiel werden die invertierten Signale der Wartesignale unterschiedlicher Zeitlängen durch das ODER-Gatter 310 verknüpft und dessen Ausgang der ZE 301 zugeführt.
Ein weiteres Ausführungsbeispiel gemäß der Erfindung ist in Fig. 4 gezeigt, wobei zu Fig. 3 gleiche Elemente mit gleichen Bezugszahlen versehen sind. Anstatt das ODER-Gatter 310 von Fig. 3 zu verwenden, kommt hier ein Leitungswähler 312 zum Einsatz, der eines der Eingangssignale von einer Mehrzahl von Leitungen, die die Leitungen 309, 404 usw. umfassen, durch ein von der ZE 301 auf einer Leitung 313 zugeführtes Auswahlsignal auswählt. Die ZE 301 kann im voraus im Leitungswähler 312 die Auswahlsignale speichern, die den Einsatz des internen Speichers 302, des externen Halbleiterspeichers 401 oder, wenn vorhanden, des parallelgeschalteten (nicht gezeigten) externen Halbleiterspeichers 401′ kennzeichnen, und auf einen der Speicher entsprechend der gewählten Leitung zugreifen. In diesem Fall besteht keine Notwendigkeit für eine Entschlüsselungsfunktion, mit der das Adressensignal auf dem Speicherbus 303 entschlüsselt und das Zählungsfreigabesignal je nach Speicher entweder auf die Leitung 308 oder 405 gelegt wird. Demzufolge werden in diesem Fall, auf welchen Speicher die ZE 301 auch immer Zugriff nimmt, alle Zähler 305, 403 . . . gestartet. Da der Leitungswähler 312 nur das einem der Speicher zugehörige Wartesignal auswählt, kann jedoch auf jeden Speicher mit einer optimalen Zugriffszeit, wie im Fall des Ausführungsbeispiels gemäß Fig. 3, Zugriff genommen werden.
Wenn bei den Ausführungsbeispielen gemäß Fig. 3 und 4 mehrere Kassetten mit externen Halbleiterspeichern von unterschiedlichen Kennwerten parallelgeschaltet werden, so wird die Zahl der Eingangsanschlüsse des ODER-Gatters 310 oder des Leitungswählers 312 erhöht, so daß die von den jeweiligen Kassetten zugeführten Wartesignale in richtiger Weise dem Warteeingang W der ZE 301 zugeführt werden. Somit kann auf alle Speicher mit der optimalen Zugriffszeit zugegriffen werden.
Ein weiteres Ausführungsbeispiel gemäß der Erfindung ist in Fig. 5 dargestellt, wobei zu vorher erwähnten Elementen gleiche ebenfalls mit denselben Bezugszahlen bezeichnet sind.
Gemäß Fig. 5 ist an der Datenverarbeitungseinrichtung 3 lösbar eine Kassette 4 angebracht, und mit der Datenverarbeitungseinrichtung 3 kann ein (nicht gezeigtes) Tastenfeld sowie Sichtgerät verbunden sein. Die Datenverarbeitungseinrichtung 3 umfaßt eine ZE 301, einen internen Speicher 302 mit einem ROM und RAM zur Verwendung durch die ZE 301, einen gemeinsamen Speicherbus 303 für die ZE 301, der eine Sammelleitung zur Übertragung von Daten und Adressen ist, und eine zweite Einstellschaltung 304 zur Einstellung einer Zugriffszeit des internen Speichers 302. Ein Vergleicher 314 vergleicht die Größen einer digitalen, den Eingangsanschlüssen A und B zugeführten Information und liefert an seinem Ausgang C ein Vergleichsergebnis. Ein Datenwähler 315 wählt eine der digitalen Informationen, die seinen Anschlüssen A sowie B zugeführt werden in Übereinstimmung mit einem Pegel eines einem Auswahleingangsanschluß S zugeführten Signals aus und gibt die ausgewählte Digitalinformation an seinem Ausgang C ab. An einem voreinstellbaren Zähler 316 wird über einen Paralleldaten-Eingangsanschluß D ein Anfangszählwert eingestellt. Ein einen RAM oder ROM aufweisender externer Halbleiterspeicher 401 ist lösbar am internen Speicher 302 angebracht. Eine erste Einstellschaltung 402 stellt eine Zugriffszeit des externen Halbleiterspeichers 401 ein.
Die Schaltung mit diesem Aufbau arbeitet in der folgenden Weise. Die ZE 301 greift üblicherweise auf den internen Speicher 302 jedesmal zu, wenn sie einen Befehl ausführt. Wenn die ZE 301 in gleichartiger Weise den externen Halbleiterspeicher 401 adressiert, dann wird dessen Inhalt ausgelesen. Auf welchen der beiden Speicher die ZE 301 Zugriff nimmt, wird durch den Inhalt der Adresse auf dem gemeinsamen Speicherbus 303 bestimmt. Üblicherweise sind höhere Adressen dem externen Halbleiterspeicher 401 zugeordnet. Demzufolge arbeitet die Datenverarbeitungseinrichtung auch dann in der richtigen Weise wenn die Kassette 4 nicht befestigt bzw. angeschlossen ist. Falls ein besonders großes Programm ausgeführt oder die Anzahl der Schriftartzeichen erhöht werden soll, dann wird jedoch die Kassette 4 mit der Datenverarbeitungseinrichtung 3 verbunden, und diese Verbindung wird als Steckverbindung hergestellt. Wenn die Kassette 4 nicht verbunden ist, dann haben die Sammelleitung des Speicherbus 303 und der Einstellspeisebus 407, der den Ausgang der ersten Einstellschaltung 402 überträgt, eine hohe Impedanz. Die Datenverarbeitungseinrichtung 3 steuert unter dieser Bedingung die Bussignalpegel. Beispielsweise wird der gemeinsame Speicherbus 303 von einer Dreizustandsvorrichtung betrieben, und der Einstellspeisebus 307 wird zu einem logischen "0"-Pegel hin beeinflußt, falls an den Bus nicht ein externes Signal gelegt wird. Demzufolge ist in diesem Zustand die Angabe auf dem Einstellspeisebus 407 gleich "0". Andererseits erzeugt die zweite Einstellschaltung 304 in der Datenverarbeitungseinrichtung 3 ständig eine vorbestimmte Digitalinformation, deren Inhalt durch die Zugriffzeit des internen Speichers 302 bestimmt wird, und sie hält mehrere Maschinentakte der ZE 301. Die zweite Einstellschaltung 304 liefert ständig einen logische "1" und "0"-Pegel enthaltenden Binärcode, und sie kann auch einen Mikrodip-Schalter oder einen Leiterkodierchip umfassen, was auch für die erste Einstellschaltung 402 gilt.
Der Ausgang der zweiten Einstellschaltung 304 wird den Eingängen A des Vergleichers 314 und des Datenwählers 315 durch den Einstellspeisebus 317 zugeführt. Andererseits wird die Einstellung der ersten Einstellschaltung 402 durch die Zugriffsbezugszeit des externen Halbleiterspeichers 401 bestimmt, und ihr Ausgang wird an die anderen Eingangsanschlüsse B des Vergleichers 314 sowie des Datenwählers 315 gelegt. Der Vergleicher 314 vergleicht die Größenwerte der den Eingängen A sowie B zugeführten Daten und erzeugt einen Ausgang mit dem logischen Pegel "1" an seinem Anschluß C, wenn A < B ist. Der Datenwähler 315 selektiert die Eingangsdaten am Eingang A zum Ausgang C, wenn das Auswahleingangssignal auf dem einen logischen Pegel ist, und selektiert die Daten am Eingang B zum Ausgangsanschluß C, wenn das Auswahleingangssignal auf dem anderen logischen Pegel ist. Demzufolge wird, wenn die Einstellung in der ersten Einstellschaltung 402 größer ist als diejenige in der zweiten Einstellschaltung 304, der Ausgang vom Datenwähler 315 derjenige der ersten Einstellschaltung 402 sein. Das bedeutet, daß die Zugriffszeit des externen Halbleiterspeichers 401 länger ist als diejenige des internen Speichers 302. Wenn dagegen die Einstellung in der ersten Einstellschaltung 402 geringer ist als diejenige in der zweiten Einstellschaltung 304, dann wird die Einstellung der Schaltung 304 vom Datenwähler 315 ausgegeben. Dieser Zustand tritt ein, wenn der externe Halbleiterspeicher 401 Speicherelemente mit kurzer Zugriffszeit verwendet oder wenn die Kassette 4 von der Datenverarbeitungseinrichtung 3 entfernt wird.
Der Zähler 316 erzeugt ein der ZE 301 unter der Steuerung eines Signals von dieser zuzuführendes Wartesignal. Der Maschinentakt der ZE 301 wird ständig an einen Takteingabeanschluß C des Zählers 316 über eine Leitung 311 gelegt. Ein Zählungsfreigabesignal von der ZE 301 wird einem Zählungsfreigabeanschluß E des Zählers 307 über eine Leitung 318 zugeführt. Das Zählungsfreigabesignal wird auf einen logischen "1"-Pegel gesetzt, wann immer die ZE 301 mit ihrem Zugriff zum Speicher beginnt. Die Daten am Dateneingabeanschluß D des Zählers 316 werden zu diesem am Anstieg des Zählungsfreigabesignals voreingestellt, und der Zähler 316 wird anschließend abwärts gezählt, bis alle Bits des Zählers 316 den logischen "0"-Pegel annehmen. Wenn das geschehen ist, dann ist ein Entschlüsselungsausgang bzw. Übertragungssignal auf der logischen "1" und wird dem Warteeingang W der ZE 301 durch den Ausgangsanschluß O und die Leitung 311 zugeführt. Am Anstieg des Wartesignals auf den logischen "1"-Pegel wird das Zählungsfreigabesignal auf der Leitung 318 auf den "0"-Pegel zurückgesetzt, und die anschließende Zählung wird verhindert. Bei diesem Vorgehen kann das Wartesignal als ein Signal angesehen werden, das auf den logischen "0"-Pegel zur Zeit der Anfangseinstellung des Zählers 316 (zur Zeit des Beginns des Speicherzugriffs) zurückgesetzt und dann nach Verstreichen der vorgegebenen Zeitspanne durch die Zählung des Zählers wieder auf den logischen "1"-Pegel gesetzt wird. Der Wartevorgang in der ZE 301 wird nur während der logischen "0"-Pegelperiode des Wartesignals ermöglicht. Die ZE 301 verzögert unter Verwendung der Wartezeit einen Auftastimpuls zum Lesen oder Schreiben am Speicher.
Üblicherweise arbeitet ein statischer RAM- oder ROM-Speicher dann richtig, wenn auf ihn in bezug auf seine Zugriffszeit langsamer zugegriffen wird. Dasselbe trifft für einen dynamischen RAM-Speicher unter der Voraussetzung, daß er in geeigneter Weise aktualisiert wird, zu. Demzufolge kann, selbst wenn die Zugriffsbezugszeit des externen Halbleiterspeichers 401 länger ist als diejenige des internen Speichers 302, auf beide Speicher mit der Zugriffszeit des externen Halbleiterspeichers 401 zugegriffen werden.
Die Datenverarbeitungseinrichtung gemäß diesem Ausführungsbeispiel kann in der folgenden Weise zur Anwendung kommen. Wenn nur die Datenverarbeitungseinrichtung 3 verwendet und die Kassette 4 nicht angeschlossen wird, so existiert das von der ersten Einstellschaltung 402 dem Vergleicher 305 zugeführte Einstellsignal nicht, dieses Signal ist "0". Demzufolge wartet, wenn die ZE 301 auf den internen Speicher Zugriff nimmt, die ZE für eine vom Ausgang der zweiten Eintellschaltung 304 bestimmte Zeitspanne. Wenn die Kassette 4 angeschlossen ist, dann wartet die ZE 301 für eine Zeitspanne, die dem längeren der Ausgänge der Einstellschaltungen 304 und 402 entspricht, wenn die ZE 301 auf den internen oder externen Speicher 302 bzw. 401 Zugriff nimmt. Demzufolge kann die ZE 301, gleichgültig welche unterschiedlichen Speicherelemente mit welchen verschiedenartigen Zugriffszeiten im internen Speicher 302 sowie im externen Halbleiterspeicher 401 zur Anwendung kommen, in geeigneter und richtiger Weise an beiden Speichern mit derselben Wartezeit in Übereinstimmung mit der längeren Zugriffszeit lesen oder schreiben. Wenn eine weitere (nicht gezeigte) Kassette 4′, die andere Speicherelemente mit einer unterschiedlichen Zugriffszeit aufweist, als ein externer (nicht gezeigter) Halbleiterspeicher 401′ angeschlossen wird, so kann die ZE 301 am internen Speicher 302 und am externen (nicht gezeigten) Halbleiterspeicher 401′ in Übereinstimmung mit einem Eintellausgang einer (nicht gezeigten) Einstellschaltung 402′ in richtiger Weise lesen oder schreiben.
Bei dem oben erläuterten Ausführungsbeispiel sind der Vergleicher 314, der die Größenwerte der Wartezeiten für die Ze 301 vergleicht und die zugeordneten Schaltkreise in die Datenverarbeitungseinrichtung 3 einbezogen. Alternativ können sie in der Kassette 4 angeordnet sein, und der Einstellausgang der zweiten Einstellschaltung 304 kann der Kassette 4 über eine lös- oder entfernbare Einrichtung zugeführt werden, so daß das Wartesignal von der Kassette 4 der ZE 301 übermittelt wird.
Wenn mehrere Hilfsspeicher parallelgeschaltet sind, werden alle der vielen Einstellausgänge der Wartezeiten, die für den internen Speicher 302 und die vielen parallelgeschalteten externen Halbleiterspeicher erforderlich sind, verglichen, so daß die Wartezeit für die ZE 301 optimal gesteuert wird. In diesem Fall werden beispielsweise drei Einstellausgänge A, B und C zu zwei Datensätzen (A, B), (B, C) und (C, A) gruppiert, sie werden parallel durch eigene Vergleicher verglichen und die Vergleichsausgänge dieser werden durch eine logische Verknüpfung (Gatter) kombiniert, um ein Maximum von einem der drei Einstellausgangsdaten A, B und C zu ermitteln.

Claims (3)

1. Datenverarbeitungseinrichtung (3) mit einer Zentraleinheit (301), die einen Warteeingang (W) aufweist, der zum Verzögern einer Operation der Zentraleinheit (301) ein Wartesignal empfängt;
einer Verzögerungs-Steuereinrichtung (305, 403; 314-316) zum Ausgeben des Wartesignals an den Warteeingang (W) der Zentraleinheit (301);
einem internen Speicher (302), auf den die Zentraleinheit (301) zugreift; und
einem externen Halbleiterspeicher (401) mit zum internen Speicher (302) unterschiedlichen Zugriffszeiten, der in einer abnehmbaren Kassette (4) angeordnet ist,
dadurch gekennzeichnet, daß
die Kassette (4) eine erste Einstellschaltung (402) enthält, die die Zugriffszeit des jeweiligen externen Halbleiterspeichers (401) bestimmt; und
die Verzögerungs-Steuereinrichtung (305, 403; 314-316) im Falle des Zugriffs auf den externen Halbleiterspeicher (401) das Wartesignal auf der Grundlage der der Zugriffszeit entsprechenden Daten der ersten Einstellschaltung (402) ausgibt, wodurch die Operation der Zentraleinheit (301) um eine der Zugriffszeit des externen Halbleiterspeichers (401) der angeschlossenen Kassette entsprechende Zeitspanne verzögert wird, und
im Falle des Zugriffs auf den internen Speicher (302) die der Zugriffszeit entsprechenden Daten von einer zweiten Einstellschaltung (304) innerhalb der Datenverarbeitungseinrichtung (3) an die Verzögerungs-Steuereinrichtung (305, 403; 314-316) gelangen.
2. Datenverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der externe Halbleiterspeicher (401) Schriftzeichendaten speichert und die Zentraleinheit (301) eine Bildverarbeitung durchführt.
3. Datenverarbeitungseinrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Verzögerungs-Steuereinrichtung (305, 403; 314-316) einen Zähler (311) zum Zählen der die Zentraleinheit verzögernden Zeitspanne aufweist.
DE3501569A 1984-01-20 1985-01-18 Datenverarbeitungseinrichtung Expired - Lifetime DE3501569C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP705884A JPS60151760A (ja) 1984-01-20 1984-01-20 システム電子機器
JP705784A JPS60151759A (ja) 1984-01-20 1984-01-20 システム電子機器

Publications (2)

Publication Number Publication Date
DE3501569A1 DE3501569A1 (de) 1985-07-25
DE3501569C2 true DE3501569C2 (de) 1996-07-18

Family

ID=26341303

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3501569A Expired - Lifetime DE3501569C2 (de) 1984-01-20 1985-01-18 Datenverarbeitungseinrichtung

Country Status (2)

Country Link
US (2) US4956804A (de)
DE (1) DE3501569C2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02235156A (ja) * 1989-03-08 1990-09-18 Canon Inc 情報処理装置
JP2762138B2 (ja) * 1989-11-06 1998-06-04 三菱電機株式会社 メモリコントロールユニット
JPH03288926A (ja) * 1990-04-05 1991-12-19 Canon Inc 画像出力装置
US5440693A (en) * 1990-07-19 1995-08-08 International Business Machines Corp. Personal computer with drive identification
DE69233510T2 (de) * 1991-03-01 2006-02-02 Advanced Micro Devices, Inc., Sunnyvale Ausgangspuffer für Mikroprozessor
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
US5509138A (en) * 1993-03-22 1996-04-16 Compaq Computer Corporation Method for determining speeds of memory modules
JP3490131B2 (ja) * 1994-01-21 2004-01-26 株式会社ルネサステクノロジ データ転送制御方法、データプロセッサ及びデータ処理システム
JP2757765B2 (ja) * 1994-02-28 1998-05-25 富士ゼロックス株式会社 ファクシミリ装置
JP2945862B2 (ja) * 1995-12-15 1999-09-06 アタカ工業株式会社 ダクト内サンプリング装置
US5999921A (en) * 1997-04-30 1999-12-07 Pitney Bowes Inc. Electronic postage meter system having plural clock system providing enhanced security
JP3929116B2 (ja) * 1997-07-04 2007-06-13 富士通株式会社 メモリサブシステム
DE10019239B4 (de) * 2000-04-18 2008-09-04 Fujitsu Siemens Computers Gmbh Datenverarbeitungseinrichtung mit einer Schaltungsanordnung zur Verbindung eines ersten Kommunikationsbusses mit einem zweiten Kommunikationsbus
US7259588B2 (en) * 2003-07-29 2007-08-21 Lexmark International Inc. Tri-state detection circuit for use in devices associated with an imaging system
US7246252B1 (en) * 2003-12-31 2007-07-17 Xilinx, Inc. Delay compensation
KR100560950B1 (ko) * 2004-04-20 2006-03-14 주식회사 하이닉스반도체 반도체 소자의 대기 신호 생성 회로
US8325433B2 (en) * 2011-01-19 2012-12-04 Lsi Corporation Systems and methods for reduced format data processing

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US30671A (en) * 1860-11-20 Adjustable table
US3629862A (en) * 1969-09-17 1971-12-21 Bell Telephone Labor Inc Store with access rate determined by execution time for stored words
US4014006A (en) * 1973-08-10 1977-03-22 Data General Corporation Data processing system having a unique cpu and memory tuning relationship and data path configuration
FR2253432A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4091446A (en) * 1975-01-24 1978-05-23 Ing. C. Olivetti & C., S.P.A. Desk top electronic computer with a removably mounted ROM
GB1540923A (en) * 1975-12-01 1979-02-21 Intel Corp Programmable single chip mos computer
US4034352A (en) * 1976-02-20 1977-07-05 The United States Of America As Represented By The Secretary Of The Army Phase control of clock and sync pulser
US4332008A (en) * 1976-03-09 1982-05-25 Zilog, Inc. Microprocessor apparatus and method
US4093982A (en) * 1976-05-03 1978-06-06 International Business Machines Corporation Microprocessor system
GB1505603A (en) * 1976-07-07 1978-03-30 Ibm Data processing systems
GB1561961A (en) * 1977-04-20 1980-03-05 Int Computers Ltd Data processing units
IT1091633B (it) * 1977-12-30 1985-07-06 Olivetti C Ing E C Spa Dispositivo per la gestione del l accesso diretto alla memoria di un calcolatore
US4258430A (en) * 1978-02-08 1981-03-24 Tyburski Robert M Information collection and storage system with removable memory
JPS54109872A (en) * 1978-02-17 1979-08-28 Hitachi Ltd Pla system of electronic type multifunction watch
JPS5582359A (en) * 1978-12-18 1980-06-21 Toshiba Corp Microprogram test unit
USRE30671E (en) 1979-07-09 1981-07-07 Texas Instruments Incorporated Microprocessor system having high order capability
JPS5644919A (en) * 1979-09-21 1981-04-24 Canon Inc Control board
JPS5764895U (de) * 1980-10-03 1982-04-17
JPS5778286A (en) * 1980-10-31 1982-05-15 Nippon Kogaku Kk <Nikon> Electronic camera
JPS57101957A (en) * 1980-12-17 1982-06-24 Hitachi Ltd Storage control device
US4414664A (en) * 1981-02-23 1983-11-08 Genrad, Inc. Wait circuitry for interfacing between field maintenance processor and device specific adaptor circuit
US4370665A (en) * 1981-04-27 1983-01-25 The Mead Corporation Paper transport for a printer test unit
US4494196A (en) * 1981-05-19 1985-01-15 Wang Laboratories, Inc. Controller for peripheral data storage units
US4532587A (en) * 1981-08-26 1985-07-30 Texas Instruments Incorporated Single chip processor connected to an external memory chip
US4484330A (en) * 1982-03-08 1984-11-20 At&T Bell Laboratories Majority vote circuit
US4589073A (en) * 1982-05-05 1986-05-13 Dorman Smith Switchgear Limited Apparatus for determining prospective short circuit current
US4509120A (en) * 1982-09-30 1985-04-02 Bell Telephone Laboratories, Inc. Variable cycle-time microcomputer
JPS5969766A (ja) * 1982-10-14 1984-04-20 Sharp Corp 複写機の同期調整方法
US4587633A (en) * 1982-11-10 1986-05-06 Wang Laboratories, Inc. Management communication terminal system
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
US4596004A (en) * 1983-09-14 1986-06-17 International Business Machines Corporation High speed memory with a multiplexed address bus
CA1256498A (fr) * 1986-02-19 1989-06-27 Jean Auger Appareil universel de detection de defectuosites dans des systemes a microprocesseur

Also Published As

Publication number Publication date
DE3501569A1 (de) 1985-07-25
US5572706A (en) 1996-11-05
US4956804A (en) 1990-09-11

Similar Documents

Publication Publication Date Title
DE3501569C2 (de) Datenverarbeitungseinrichtung
DE3300261C2 (de)
DE69127241T2 (de) Programmierbare Schaltung zur Leistungsverminderung in einer programmierbaren logischen Schaltung
DE2829550C2 (de)
DE3844033C2 (de) Speicherschaltung für ein Mikroprozessorsystem
DE2928488A1 (de) Speicher-subsystem
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE2933474C2 (de)
DE3852562T2 (de) Datenschreibverfahren für EEPROM.
DE69432380T2 (de) Parallelschnittstelle und Datenübertragungssystem für Drucker mit dieser Schnittstelle
DE2727876B2 (de) Steuereinrichtung mit einem Mikroprozessor
DE3049774C2 (de)
DE3130145C2 (de) Eingabe/Ausgabe-Schnittstellensteuereinrichtung
DE3836831C2 (de) Drucker für Simplex- und Duplex-Druck
DE3148099C2 (de) Anordnung zum Erkennen einer Digitalfolge
DE19900251B4 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE3639609C2 (de)
DE2736573C2 (de) Verfahren und Anordnung zur Herstellung von Kopien
DE60211239T2 (de) Lebensverlängernde Schaltung für nichtflüchtigen Speicher und Bilderzeugungsgerät
DE3736334A1 (de) Druckgeraet
DE69031361T2 (de) Taktsignalgeneratorsystem
DE2609698C2 (de) Elektronischer Rechner
DE69227148T2 (de) Time-Sharing-Datenübertragungsanordnung
DE3705864A1 (de) Integrierte schaltungskarte fuer eine datenverarbeitungseinrichtung
DE1499742A1 (de) Steuerbare Speicherzugriffsvorrichtung fuer Speichereinrichtungen von Datenverarbeitungsanlagen mit Multiprogrammverarbeitung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 13/16

D2 Grant after examination
8364 No opposition during term of opposition