DE3687085T2 - Mit hoher geschwindigkeit arbeitende kellerschaltung fuer ein datenregister in einem mikrorechner. - Google Patents

Mit hoher geschwindigkeit arbeitende kellerschaltung fuer ein datenregister in einem mikrorechner.

Info

Publication number
DE3687085T2
DE3687085T2 DE8686303631T DE3687085T DE3687085T2 DE 3687085 T2 DE3687085 T2 DE 3687085T2 DE 8686303631 T DE8686303631 T DE 8686303631T DE 3687085 T DE3687085 T DE 3687085T DE 3687085 T2 DE3687085 T2 DE 3687085T2
Authority
DE
Germany
Prior art keywords
cpu
registers
data
memory
bit
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
DE8686303631T
Other languages
English (en)
Other versions
DE3687085D1 (de
Inventor
Kenji Yamada
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE3687085D1 publication Critical patent/DE3687085D1/de
Publication of DE3687085T2 publication Critical patent/DE3687085T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming 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)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Description

  • Die Erfindung betrifft eine mit hoher Geschwindigkeit arbeitende Keller- oder Stapelschaltung für ein Register in einem Einchip-Mikrorechner Ein Mikrorechner, der eine CPU (zentrale Prozessoreinheit) einen ROM (Nur-Lese-Speicher) einen RAM (Speicher mit wahlfreiem Zugriff) usw. auf einem Einzelchip umfaßt, überträgt Daten in jedem Teil unter Verwendung von gemeinsamen Busleitungen. Wenn eine Operation durch Übertragung von Daten aus dem RAM zu den internen Registern der CPU vorgenommen wird, wird der Prozeß in Übereinstimmung mit einem zuvor im ROM gespeicherten Befehl ausgeführt.
  • Ein solches Programm kann als eine Routine verriegelt werden, die gewöhnlich durch zahlreiche Befehle gebildet wird. Wird bei einem solchen Prozeß eine Hauptroutine in einer festgelegten Folge ausgeführt, muß, falls eine IRQ (Unterbrechungsanforderung) durch eine externe Quelle verursacht wird, wenn die Routine eine bestimmte Stufe ereicht, der Prozeß der Hauptroutine auf dieser Stufe unterbrochen und die IRQ-Routine mit Priorität bearbeitet werden. In diesem Fall ist, da die IRQ-Routine ebenfalls zahlreiche Register nutzt, ein Stapelprozeß erforderlich. D.h. der Inhalt der Register wird im Ausführungszustand einer bestimmten Hauptroutine in einen Bereich des RAM gesichert, der durch einen Stapelzeiger zugewiesen wird, und anschließend wird, nach Fertigstellung der Bearbeitung der IRQ-Routine, die Bearbeitung der Hauptroutine von einem Befehl wiederaufgenommen, der dem bestimmten Befehl folgt, und folglich wird der gesicherte Inhalt in die zuvor genutzten Register wiedereingespeichert.
  • Wenn - wie im herkömmlichen Stapelsystem - ein interner BUS verwendet wird, ist für jede Registerübertragung ein Zyklus erforderlich (es wird angenommen, daß die Anzahl der Bits des Registers dieselbe ist wie die Anzahl der Leitungen des Busses). Dies führt insofern zu einem Nachteil, daß, je größer die Zahl der Register ist, umso mehr Zeit für die Stapelung erforderlich ist. Eine ähnliche Situation tritt auf, wenn durch einen Rückkehrunterbrechungsbefehl (RTI) eine Rückkehr aus der Hauptroutine erfolgt.
  • Zur Verbesserung dieser Situation wurde ein System vorgeschlagen, bei dem Register, die ausschließlich für den Stapel verwendet werden, intern in der CPU vorgesehen sind. Da bei diesem System eine Datenstapelung für den RAM nicht notwendig ist, kann eine hohe Geschwindigkeit realisiert werden (die Stapelung kann durch einen Zyklus ausgeführt werden). Die ausschließlich für die Stapelung verwendeten Register sind jedoch zweckbestimmte Hardware und können somit nicht für das Speichern und Lesen willkürlicher Daten verwendet werden, wie das in einem RAM der Fall ist, und dementsprechend ist auch ihre Verwendung für einen anderen Zweck nicht möglich. Vor allem ist eine Verschachtelung durch die Kapazität der zweckbestimmten Register begrenzt, und folglich müssen für eine mehrstufige Verschachtelung mehrstufige zweckbestimmte Stapelspeicherregister vorgesehen sein. Das bedeutet, daß eine große Registerkapazität erforderlich ist und daß darüber hinaus, da diese Register nicht immer verwendet werden, ein großer Teil der Kapazität vergeudet wird.
  • In "Hochintegrierte Digitalschaltungen und Mikroprozessoren", H. Bernstein, Pflaum Verlag, München 1978, S. 239, 339-343, wird ein Mikroprozessor beschrieben, der eine CPU mit einer Vielzahl interner Register, einen RAM, eine Datenbusleitung, die zwischen der CPU und dem RAM vorgesehen ist, sowie ein Verbindungsteil zwischen dem RAM und den internen Registern der CPU umfaßt.
  • Im IBM Technical Disclosure Bulletin, Bd. 24, Nr. 7B, Dezember 1981, New York, S. 3896-3897, A. Blum, wird ein Prozessorchip eingehend beschrieben, der Mehrfachsätze von Mehrzweckregistern in eingebetteten Feldern auf dem Chip besitzt. Diese eliminieren lange Übertragungsvorgänge der Inhalte von Mehrzweckregistern zu den und von den Hauptspeicherbereichen bei Mehrprogrammaufgabenumschaltung.
  • Eine Aufgabe der vorliegenden Erfindung ist es, eine Parallelverarbeitung des Stapelspeichers vorzusehen Die erfindungsgemäße Vorrichtung wird in Anspruch 1 dargelegt.
  • Wenn also die Daten aus den internen Registern gestapelt werden, wird eine Wortleitung des Speichers ausgewählt und jedes Bit der Daten zur selben Zeit zu einer Speicherzellengruppe übertragen, die mit der Wortleitung über die erweiterte Bitleitung des Speichers verbunden ist.
  • Ausführungsformen der Erfindung werden nun unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen:
  • die Fig. 1A, 1B und 1C Diagramme zur Erläuterung des Betriebes eines herkömmlichen Einchip-Mikrorechners sind;
  • die Fig. 2A und 2B schematische Diagramme sind, die Merkmale eines erfindungsgemäßen Mikrorechners zeigen;
  • Fig. 3 ein Blockdiagramm ist, das Einzelheiten der Diagramme 2A und 2B zeigt;
  • Fig. 4 ein Blockdiagramm einer Ausführungsform der vorliegenden Erfindung ist;
  • Fig. 5 ein Blockdiagramm ist, das eine CPU der Fig. 3 im Detail zeigt;
  • Fig. 6 ein schematisches Diagramm ist, das im Detail ein Verbindungsteil zwischen internen Registern einer CPU und eines RAM von Fig. 4 zeigt;
  • Fig. 7 ein Ablaufdiagram zur Erläuterung des Vorgangs der Stapelung der Registerdaten ist; und
  • Fig. 8 ein Blockdiagramm einer anderen Ausführungsform der vorliegenden Erfindung ist.
  • Ein Mikrorechner, der eine CPU (zentrale Prozessoreinheit), einen ROM (Nur-Lese-Speicher), einen RAM (Speicher mit wahlfreiem Zugriff) usw. auf einem Einzelchip umfaßt, überträgt die Daten in jedem Teil durch Nutzung einer gemeinsamen Busleitung BUS, wie das in Fig. 1A gezeigt wird. D.h., wenn eine Operation durch das Übertragen von Daten aus einem RAM 2 in interne Register R&sub1;, R&sub2;, . . . einer CPU 1 ausgeführt wird, wird die Prozedur durch Ausgabe eines zuvor in einem ROM 3 gespeicherten Befehls durchgeführt. Wenn z. B. die Register R&sub1;, R&sub2; in der CPU 1 als Akkumulatoren A, B definiert werden und eine zusätzliche Operation A + B in einer arithmetisch-logischen Einheit (ALU) 4 in der CPU durchgeführt wird, wird das Programm davon im wesentlichen wie folgt ausgedrückt.
  • M&sub1; → A MOV
  • M&sub2; → B MOV
  • A + B → A ADD
  • Der erste Schritt zeigt, daß die Daten in der RAM- Adresse M&sub1; zum Akkumulator A verschoben (MOV) werden; der zweite Schritt zeigt in ähnlicher Weise, daß die Daten in der RAM-Adresse M&sub2; zum Akkumulator B verschoben werden; und der dritte Schritt zeigt, daß die Inhalte der Akkumulatoren A und B addiert (ADD) werden und das Ergebnis der Addition im Akkumulator A geschrieben wird.
  • Ein solches Programm kann als eine Routine verriegelt werden, die gewöhnlich durch zahlreiche Befehle gebildet wird. Wenn nun, wie in Fig. 1B gezeigt, eine Hauptroutine mit einer festgelegten Folge . . . , h, i, j, k, . . . ausgeführt wird, muß, falls eine IRQ (Unterbrechungsanforderung) aus einer externen Quelle empfangen wird, wenn die Folge die Stufe i erreicht, die Bearbeitung der Hauptroutine auf dieser Stufe unterbrochen und die IRQ-Routine mit Priorität bearbeitet werden. In diesem Fall ist, da die IRQ-Routine auch die Register R&sub1;, R&sub2;, . . . nutzt, der Stapelungsprozeß erforderlich, wie das in dem Beispiel der Fig. 1C gezeigt wird. D.h. der Inhalt der Register R&sub1;, R&sub2;, . . . wird im Zustand der Ausführung der Hauptroutine bis zum Befehl i in einen Bereich des RAM gesichert, der durch einen Stapelzeiger zugewiesen wird, und nach Fertigstellung der Bearbeitung der IRQ-Routine wird die Bearbeitung der Hauptroutine von dem Befehl wiederaufgenommen, der dem Befehl i folgt, und der gesicherte Inhalt kann in die Register R&sub1;, R&sub2;, . . . zurückgeführt werden.
  • Wie bereits erwähnt, wird in dem herkömmlichen Stapelungssystem der interne BUS für die Sicherung des Inhalts der Register R&sub1;, R&sub2;, . . . genutzt, und eine bestimmte Zeit eines Zyklus ist für jede Registerübertragung erforderlich (es wird angenommen, daß die Anzahl der Bitpositionen dieselbe ist wie die Anzahl der Leitungen des Busses). Dies bringt insofern einen Nachteil, daß, je größer die Zahl der Register ist, umso mehr Zeit für die Stapelung erforderlich ist. Fig. 1C zeigt den Stapelungsprozeß von n internen Registern R&sub1;-Rn entlang einer Zeitachse t, und die Stapelung aller Registerdaten wird von der Zeit an abgeschlossen, bei der eine IRQ bei einem n-ten Zyklus auftritt. Zu einer ähnlichen Prozedur kommt es, wenn durch eine Rückkehrunterbrechung RTI eine Rückkehr aus der IRQ-Routine erfolgt.
  • In der vorliegenden Erfindung wird eine Parallelbearbeitung des Stapels aus den internen Registern der CPU zum RAM unter Anwendung von vom RAM aus verlängerten Bitleitungen durchgeführt, welche eine spezielle Route bilden, die sich von den gemeinsamen Busleitungen unterscheidet.
  • Die Fig. 2A und 2B sind schematische Diagramme von Einzelheiten der vorliegenden Erfindung. Fig. 2A zeigt einen relevanten Teil einer CPU 11 und eines RAM 12, und Fig. 2B zeigt den Aufbau einer Speicherzelle in der CPU 11. In der Zeichnung sind BL und ein Paar der Bitleitungen, MC ist in dieser Ausführungsform eine statische Speicherzelle, R&sub0;, R&sub1;, . . . sind interne Register in der CPU 11, 14 ist eine arithmetisch-logische Einheit (ALU), und WL ist eine Wortleitung. Die Speicherzelle MC ist als ein Flipflop-Typ ausgebildet, in welchem die Inverter I&sub1; und I&sub2; querverbunden sind. Die Zelle ist über die Transfergates Q&sub1; und Q&sub2; mit den Bitleitungen BL bzw. verbunden. Wie in Fig. 2A gezeigt wird, ist jede Bitposition der internen Register R&sub0;, R&sub1;, . . . in der CPU 11 direkt verbunden (im Detail über ein in der Zeichnung nicht gezeigtes Gate) mit jedem Paar von Bitleitungen des Daten-RAM 12.
  • Fig. 3 ist ein Diagramm, das Einzelheiten der Fig. 2A zeigt. In dieser Ausführungsform wird ein Einchip-Mikrorechner als ein 8-Bit-Typ gestaltet, und ein 8-Bit-Datenbus (BUS) wird zwischen dem RAM 12 und der CPU 11 angeschlossen. Der RAM 12 wird in acht Bereiche D&sub0;-D&sub7; unterteilt.
  • Davon ausgehend, daß es 128 Paare von Bitleitungen BL, gibt, gibt es in jedem Bereich 16 Paare von Bitleitungen. Die 16 Paare von Bitleitungen sind über ein Ansteuerungsgatter (nicht gezeigt) und einen Decoder 15 mit einem Datenbus (BUS) verbunden, und da die acht Bereiche D&sub0;-D&sub7; jeweils als ein Bit ausgebildet sind, sind in dem vorgenannten Teil entsprechend acht Bits ausgebildet. In jedem Bereich läuft eine Vielzahl von Wortleitungen WL horizontal zu einem Reihendecoder 16, diese werden in der vertikalen Richtung von einer Vielzahl von Bitleitungen gekreuzt, und an jedem Kreuzungspunkt ist eine Speicherzelle MC angeordnet. Davon ausgehend, daß in der vorliegenden Ausführungsform ein Bit für jedes Paar von Bitleitungen vorgesehen ist, können die 16 internen 8-Bit-Register in der CPU 11 bereitgestellt werden. R&sub0;, R&sub1;, . . . , R&sub1;&sub5; kennzeichnen diese 16 Register in der CPU 11 oder jedes Bit davon, und b&sub7;, b&sub6;, . . . in der CPU 11 zeigen ein achtes Bit, ein siebentes Bit, . . . eines jeden Registers an. R&sub1; zeigt einen internen Bus in der CPU 11 an, wobei acht von diesen Bussen in diesem Beispiel vorgesehen sind. Ein Verbindungsteil des RAM 12 und ein gemeinsamer Bus BUS sind dieselben, wie sie gewöhnlich verwendet werden, doch in der vorliegenden Erfindung sind bei jedem Paar der Bitleitungen im RAM die Enden entgegengesetzt dem Verbindungsteil verlängert und über Gates G mit jeder Bitposition der internen Register in der CPU 11 verbunden. Demzufolge sind die CPU 11 und der RAM 12 auf dem Chip aneinander angrenzend, wie das in Fig. 3 gezeigt wird.
  • Die normale Datenübertragung zwischen der CPU 11 und dem RAM 12 erfolgt durch Nutzung der Busleitung BUS. Gates und Decoder, die durch die Ausgabe des Decoders gesteuert werden, existieren zwischen dem BUS und jedem Datenbitbereich des RAM 12, und nur ausgewählte 8-Bit-Leitungspaare sind mit dem 8-Bit-Bus BUS verbunden, während das Sichern und Wiedereinfangen der Daten der internen Register R&sub0;, R&sub1;, . . . , R&sub1;&sub5; direkt über den verlängerten Teil EBL der Bitleitungen ausgeführt wird, ohne über den gemeinsamen Bus BUS zu gehen. Beispielsweise werden die Datenbits b&sub7;, b&sub6;, . . . im Register R&sub0; über den verlängerten Teil EBL der Bitleitungen in den Bereichen D&sub7;, D&sub6;, . . . des RAM 12 gespeichert. Dies ist dasselbe für die anderen Register R&sub1;, R&sub2;, . . . , und demzufolge werden alle Bits der Bereiche D&sub7;-D&sub0; der Register R&sub0;-R&sub1;&sub5; gleichzeitig in den RAM 12 gesichert. Die gestapelte Position ist eine Speicherzellengruppe, verbunden mit einer Wortleitung, die durch einen Stapelzeiger ausgewählt wurde. Mit diesem Prozeß können die Daten in einer geringen Zahl von Zyklen ungeachtet der Zahl der internen Register in der CPU 11 gestapelt werden, und das ist insofern vorteilhaft, als eine tiefe Verschachtelung in Übereinstimmung mit der Zahl der Wortleitungen des RAM 12 vorgenommen werden kann.
  • Fig. 4 ist ein schematisches Diagramm, das eine Ausführungsform der vorliegenden Erfindung zeigt. In Fig. 4 werden dieselben Punkte wie in Fig. 3 durch dieselben Bezugsziffern und Symbole gezeigt. Ein Decoder (DEC) 16 wählt eine Wortleitung des RAM 12 aus, wobei die Eingabe des DEC während einer normalen Operation aus einem Adressenbus geliefert wird. Doch während einer Unterbrechung (IRQ) und eines Rückkehrunterbrechungsbefehls (RTI) wird die Eingabe für den DEC 16 von einem Hardware-Stapelzeiger (HSP) 18 auf die Adresse umgeschaltet. Für diesen Zweck wird ein Multiplexer (MPX) 19 genutzt und durch die Ausgabe eines CPU- Controllers (CPU CTL) 20 gesteuert. Ein Unterbrechungssteuerteil (INTR CTL) 21 bewirkt, daß der CPU CTL 20 arbeitet, wenn die Unterbrechung IRQ erfaßt wird. Wie gewöhnlich, ist ein Zeitgeber 22 usw. als eine periphere Schaltung vorgesehen.
  • Fig. 5 ist ein detailliertes Diagramm der CPU, in dem TIM - TPS interne Register sind. Unter diesen sind AS0- AS6 Akkumulatorstapel, IX und IY sind Indexregister, und die temporär verwendeten Register werden durch das Präfix T gezeigt. H, L und M bezeichnen hohe, niedere bzw. mittlere Register. Zusätzlich zu diesen internen Registern gibt es einen Programmzähler IP, einen Software-Stapelzeiger SSP und eine Inkrement/Dekrement-Schaltung INC/DEC, und diese Einheiten bestimmen die Position einer zu unterbrechenden Adresse. ADD ist ein Addierglied für die Adressenberechnung, ALU ist ein Operator im internen Register, und PSW ist ein Programmstatuswort.
  • Fig. 6 ist ein detailliertes Diagramm eines Verbindungsteils 10 zwischen dem internen Register in der CPU 11 und dem RAM 12, in dem die Inverter I&sub3;, I&sub4; ein Bit des internen Registers bilden. Ein Gate Q&sub3; für das Schreiben und ein Gate S&sub1; für das Lesen existieren zwischen diesem internen Register und dem internen Bus der CPU 11. Das Gate Q&sub3; ist ein Transistor, der sich einschaltet, wenn ein Schreibsignal W zum Zeitpunkt einer normalen Operation hochgesetzt (H) wird. Das Gate S&sub1; andererseits ist ein Inverterschalter, der sich einschaltet, wenn ein Lesesignal r zum Zeitpunkt einer normalen Operation auf H gestellt wird. Die Signale W und r werden von einem CPU-Rahmen 25 ausgegeben. Da jedoch der interne BUS in der CPU 11 durch die Register R&sub0;-R&sub1;&sub5; gemeinsam genutzt wird, kann jegliches Register durch ein Transfergate Q&sub4;, . . . ausgewählt werden. Demzufolge wird das Dekodiersignal für diesen Prozeß ebenfalls im CPU-Rahmen 25 gebildet. Das zugehörige Diagramm zeigt eine Funktion, die in einem herkömmlichen Einchip- Mikrorechner vorhanden ist. In dieser Ausführungsform jedoch werden ein durch die Gates Q&sub5;-Q&sub8; gebildetes Verbindungsteil 10 und ein Schalter S&sub2; hinzugefügt, so daß das interne Register in der CPU 11 direkt mit dem RAM 12 verbunden werden kann.
  • D.h. der Schreibbefehl aus dem RAM 12 an das interne Register in der CPU 11 (Wiedereinfangen von gesicherten Daten) wird so ausgeführt, daß der Inverter S&sub2; durch das Schreibsignal W eingeschaltet wird, und ein elektrisches Potential aus einer Bitleitung BL wird an ein Bit des Registers oder - genauer in dieser Ausführungsform - an den Eingang des Inverters I&sub3; angelegt. Zu diesem Zeitpunkt wird im RAM 12 die während der Unterbrechung ausgewählte Wortleitung WL wiederum ausgewählt, und eine Potentialdifferenz H, L wird dem Paar der Bitleitungen BL, entsprechend der Information aus einer mit der Wortleitung verbundenen Speicherzelle zugeführt. Demzufolge wird durch Addieren des Potentials von Bitleitung BL zu dem Bit aus dem Register über den Inverterschalter S&sub2; das Bit-Flipflop so eingestellt oder rückgestellt, daß das Wiedereinfangen der gesicherten Daten ausgeführt wird. Umgekehrt werden, wenn die Daten aus dem internen Register in der CPU 11 zum RAM 12 übertragen (gesichert) werden, die Gates Q&sub5; und Q&sub6; durch ein Signal R eingeschaltet und die Schalter Q&sub7; und Q&sub8; durch die komplementäre Ausgabe der Bits I&sub3; und I&sub4; des Registers gesteuert. Die Ausgabe von I&sub3; ist z. B. H, und die Ausgabe von I&sub4; ist L, der Transistor Q&sub8; schaltet sich ein, und der Transistor Q&sub7; schaltet sich aus. Dann wird die Bitleitung zu L, BL wird H, und in der Zelle MC in Fig. 2B wird die Ausgabe des Inverters I&sub2; zu H, und die Ausgabe von I&sub1; wird L. Somit ist der Inhalt der Register I&sub3;, I&sub4; in den RAM 12 gesichert. Wie bereits erwähnt, wird die zu sichernde Position durch die Wortleitung WL ausgewählt. Die Signale R und W werden zum Zeitpunkt der Sicherung ebenfalls in der CPU gebildet, und die auszuwählende Wortleitung wird durch den Stapelzeiger bestimmt. Der Inverter S&sub2; hat die Funktion eines Leseverstärkers, und die Schalter Q&sub7; und Q&sub6; haben die Funktion eines Schreibverstärkers.
  • Es ist nicht notwendig, eine besondere Beschleunigung der direkten Übertragung zwischen dem RAM 12 und dem internen Register in der CPU 11 zu veranlassen, weil eine Zeitspanne, gewöhnlich etwa 3 Zyklen, ab der Zeit der Unterbrechung bis zu der Zeit existiert, wenn der Stapel abgeschlossen ist. Betrachten wir z. B. die Ausführung eines Befehls A, wie das in einem Block 71 der Fig. 7 gezeigt wird, und dann die Ausführung des nächsten Befehls B, wie das in einem Block 72 gezeigt wird. Wenn die Unterbrechung auftritt, während der Befehl B ausgeführt wird, wie das in einem Block 73 der Fig. 7 gezeigt wird, ist es notwendig, H und L in der zu unterbrechenden Adresse zu verriegeln und anschließend den OP-Code des nächsten Befehls zu verriegeln, wie das im Block 73 gezeigt wird. Dies erfordert etwa drei Zyklen, und die Sicherung kann während dieser Zeit durchgeführt werden. Als nächstes werden die Befehle der Unterbrechungsroutine ausgeführt, wie das in einem Block 74 gezeigt wird. Danach werden die gesicherten Daten in die Register in der CPU verriegelt, wie das in einem Block 75 gezeigt wird, und ein Befehl C wird bewirkt, wie das in einem Block 76 gezeigt wird.
  • Fig. 8 zeigt eine weitere Ausführungsform der vorliegenden Erfindung. Der Grundgedanke dieser Ausführungsform ähnelt dem in Fig. 3 gezeigten. Der Unterschied zwischen diesen Ausführungsformen besteht darin, daß in Fig. 8 vier Decoder 30a-30d für 16 Bitleitungen vorgesehen sind, und die dekodierten Ausgaben der Decoder 30a-30d werden über vier Paare von Gates Ga-Gd vier internen Registern R&sub1;- R&sub4; zugeführt. Die Decoder werden durch den in Fig. 3 gezeigten Hardware-Stapelzeiger gesteuert. Die in Fig. 8 gezeigte Ausführungsform ist effektiv, wenn die Zahl der internen Register in der CPU 11 gering ist und der Bereich des RAM 12 effektiv genutzt werden kann.
  • Wie oben erwähnt, können in der vorliegenden Erfindung die Daten in den internen Registern in der CPU für den RAM durch Nutzung der Bitleitungen gesichert werden, so daß der Vorteil einer Übertragung zur Unterbrechungsroutine bei einer geringen Zahl von Zyklen und einer Rückkehr aus der Routine erzielt werden kann. Darüber hinaus kann ein Restbereich des RAM für den Stapelspeicher genutzt werden, und eine Verschachtelung kann demzufolge willkürlich durchgeführt werden, ohne die Kapazität des Registers für die Stapelung zu berücksichtigen.

Claims (4)

1. Ein Mikrorechner mit einer zentralen Prozessoreinheit (11) und einem Speicher mit wahlfreiem Zugriff (12), einer Vielzahl von internen Registern (R&sub0;, R&sub1;, . . . ) in der zentralen Prozessoreinheit, einer zwischen dem Speicher mit wahlfreiem Zugriff und der zentralen Prozessoreinheit vorgesehenen Datenbusleitung (BUS) für die Übertragung von Daten dazwischen und einem zwischen dem Speicher mit wahlfreiem Zugriff und vorerwähnten internen Registern vorgesehenen Verbindungsteil (10) für die Übertragung einer Vielzahl von Daten dazwischen, dadurch gekennzeichnet, daß der Mikrorechner auf einem Einzelchip vorgesehen ist, daß das Verbindungsteil zwischen den speziell verlängerten Bitleitungen (BL, ) der Speicherzellen des Speichers mit wahlfreiem Zugriff (12) und den jeweiligen Bitpositionen der vorerwähnten Register vorgesehen ist und auf diese Weise den Spaltendecoder (15) umgeht und daß die Zahl der Speicherzellen in jeder Wortleitung des Speichers mit wahlfreiem Zugriff (12) zumindest gleich der Gesamtzahl der Bits in vorerwähnten internen Registern ist, wodurch die gleichzeitige Übertragung von Daten zwischen allen vorerwähnten internen Registern und den mit einer ausgewählten Wortleitung des Speichers mit wahlfreiem Zugriff verbundenen Speicherzellen ermöglicht wird, ohne die Datenbusleitung (BUS) zu verwenden.
2. Ein Mikrorechner nach Anspruch 1, dadurch gekennzeichnet, daß das Verbindungsteil (10) ein Paar eines Schreibgates (Q&sub3;) und eines Lesegates (S&sub1;) für jede Bitleitung (BL, ) des Speichers (12) umfaßt, wobei ein Ende des Paares mit der Bitleitung des Speichers verbunden ist und das andere Ende des Paares mit jedem der internen Register, das dieselbe Zahl der Bitleitungen hat, und wobei das Schreibgate und das Lesegate durch ein Schreibsignal (W) bzw. ein Lesesignal (r) gesteuert werden.
3. Ein Mikrorechner nach Anspruch 1, dadurch gekennzeichnet, daß das Verbindungsteil (10) einen Decoder (30a-30d) für n Bitleitungen des Speichers umfaßt, wobei der Decoder Eingänge hat, die mit den n Bitleitungen des Speichers verbunden sind, ein respektives Paar der Gates (Ga-Gd) mit einem Schreibgate und einem Lesegate für jeden Ausgang eines jeden Decoders, wobei ein Ende des Paares mit dem Ausgang des Decoders verbunden ist und das andere Ende des Paares mit jedem der internen Register (R&sub1;-R&sub4;), die ein n-tel der Zahl der Bitleitungen haben, wobei das Schreibgate und das Lesegate durch ein Schreibsignal (W) bzw. ein Lesesignal (R) gesteuert werden.
4. Ein Mikrorechner nach Anspruch 2 oder Anspruch 3, dadurch gekennzeichnet, daß jedes Paar von Gates, das ein Schreibgate und ein Lesegate umfaßt, einen ersten Transistor (Q) und einen zweiten Transistor (Q&sub7;) umfaßt, die in Reihe zwischen einer ersten Bitleitung (BL) und Erde geschaltet sind, einen dritten Transistor (Q&sub6;) und einen vierten Transistor (Q&sub8;), die in Reihe zwischen einer zweiten Bitleitung ( ) und Erde geschaltet sind, einen Inverter (S&sub2;), verbunden zwischen der ersten Bitleitung (BL) und einem Anschluß des internen Registers in der CPU; dadurch gekennzeichnet, daß die Gates des zweiten und vierten Transistors mit einem Anschluß und einem entgegengesetzten Anschluß des internen Registers in der CPU (11) verbunden sind, daß bei der Übertragung von Daten aus dem RAM (12) zur CPU der Inverter eingeschaltet ist, so daß das Potential der ersten Bitleitung (BL) dem Register zugeführt wird, und daß bei der Sicherung von Daten aus der CPU zum RAM der erste und dritte Transistor eingeschaltet sind und die komplementären Ausgaben der Register den Gates des zweiten und vierten Transistors zugeführt werden.
DE8686303631T 1985-05-17 1986-05-13 Mit hoher geschwindigkeit arbeitende kellerschaltung fuer ein datenregister in einem mikrorechner. Expired - Fee Related DE3687085T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60105572A JPS61262922A (ja) 1985-05-17 1985-05-17 レジスタデ−タの高速スタツク回路

Publications (2)

Publication Number Publication Date
DE3687085D1 DE3687085D1 (de) 1992-12-17
DE3687085T2 true DE3687085T2 (de) 1993-03-18

Family

ID=14411235

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686303631T Expired - Fee Related DE3687085T2 (de) 1985-05-17 1986-05-13 Mit hoher geschwindigkeit arbeitende kellerschaltung fuer ein datenregister in einem mikrorechner.

Country Status (5)

Country Link
US (1) US4945469A (de)
EP (1) EP0202848B1 (de)
JP (1) JPS61262922A (de)
KR (1) KR900005553B1 (de)
DE (1) DE3687085T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63244393A (ja) * 1987-03-30 1988-10-11 Nec Corp 並列入出力回路を有する記憶装置
JPS643739A (en) * 1987-06-26 1989-01-09 Toshiba Corp Information processor
EP0454606A3 (en) * 1990-04-23 1993-08-11 International Business Machines Corporation Digital processor with a pipelined architecture permitting an improved concurrent processing of multiple applications
US5546343A (en) * 1990-10-18 1996-08-13 Elliott; Duncan G. Method and apparatus for a single instruction operating multiple processors on a memory chip
KR960001273B1 (ko) * 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
KR970008523B1 (ko) 1991-10-21 1997-05-24 가부시키가이샤 도시바 프로세서
US5473271A (en) * 1993-02-09 1995-12-05 Dallas Semiconductor Corporation Microprocessor output driver
JP2993342B2 (ja) * 1993-12-27 1999-12-20 日本電気株式会社 マイクロプロセッサの制御方法
JPH08212185A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp マイクロコンピュータ
US6058467A (en) * 1998-08-07 2000-05-02 Dallas Semiconductor Corporation Standard cell, 4-cycle, 8-bit microcontroller
KR100762264B1 (ko) 2005-06-14 2007-10-01 충남대학교산학협력단 지연 시간을 감소시키는 버스 매트릭스 구조

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602889A (en) * 1969-02-05 1971-08-31 Honeywell Inc Extended addressing for programmed data processor having improved register loading means
US3810114A (en) * 1971-12-29 1974-05-07 Tokyo Shibaura Electric Co Data processing system
FR121860A (de) * 1973-07-19
US4193127A (en) * 1979-01-02 1980-03-11 International Business Machines Corporation Simultaneous read/write cell
US4554645A (en) * 1983-03-10 1985-11-19 International Business Machines Corporation Multi-port register implementation
US4654780A (en) * 1984-06-05 1987-03-31 Burroughs Corporation Parallel register transfer mechanism for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes

Also Published As

Publication number Publication date
EP0202848B1 (de) 1992-11-11
JPS61262922A (ja) 1986-11-20
EP0202848A2 (de) 1986-11-26
US4945469A (en) 1990-07-31
KR860009341A (ko) 1986-12-22
EP0202848A3 (en) 1988-08-31
KR900005553B1 (ko) 1990-07-31
DE3687085D1 (de) 1992-12-17
JPH046981B2 (de) 1992-02-07

Similar Documents

Publication Publication Date Title
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE3688505T2 (de) Multiportspeichersystem.
DE3586377T2 (de) Halbleiterspeicheranordnung.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE3224034A1 (de) Mehrprozessorensystem
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE4207945C2 (de) Multiport-Speicher und Verfahren zum Entscheiden eines Zugriffskonflikts darin
DE3687085T2 (de) Mit hoher geschwindigkeit arbeitende kellerschaltung fuer ein datenregister in einem mikrorechner.
DE2130299B2 (de) Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage
CH620779A5 (de)
DE2224389A1 (de) Speichersystem
DE2756768A1 (de) Mikroprozessor-architektur
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
DE3687867T2 (de) Mikrorechner.
DE69102431T2 (de) Multiprozessor-system mit anteiliger nutzung eines speichers.
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE69429309T2 (de) Adressendekoder mit geringer Schaltungsgrösse und Adressbereicherweiterungsmöglichkeit
DE69229325T2 (de) Schaltung zur Detektierung der Position eines äussersten "1"-Bits in eine Binärzahl
DE3545937A1 (de) Mikroprozessor
DE4129133C1 (de)
DE19628039A1 (de) Speicheradressen-Steuerschaltung
DE3586789T2 (de) Mikrocomputer mit wenigstens einer ein-/ausgabeeinheit.

Legal Events

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