DE3853613T2 - Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen. - Google Patents
Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen.Info
- Publication number
- DE3853613T2 DE3853613T2 DE3853613T DE3853613T DE3853613T2 DE 3853613 T2 DE3853613 T2 DE 3853613T2 DE 3853613 T DE3853613 T DE 3853613T DE 3853613 T DE3853613 T DE 3853613T DE 3853613 T2 DE3853613 T2 DE 3853613T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- data
- address
- register
- digital computer
- 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
Links
- 230000006870 function Effects 0.000 claims description 16
- 239000000758 substrate Substances 0.000 claims description 14
- 238000012360 testing method Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 7
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 238000013519 translation Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims 3
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 17
- 238000000034 method Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 238000007792 addition Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/261—Microinstruction address formation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
- G06F9/265—Microinstruction selection based on results of processing by address selection on input of storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Description
- Die Erfindung betrifft das Gebiet digitaler Mikrocomputer, die in einer einzigen integrierten Schaltung ausgeführt sind.
- Obwohl Mikrocomputer (die in einer integrierten Schaltung einen RAM und verschiedene zugeordnete Funktionen aufweisen, und zwar zusätzlich zur zentralen Verarbeitungseinheit selbst) auf dem Gebiet gut bekannt sind, hing der Prozeß der Ausführung solcher Vorrichtungen von der Herstellung von gebrauchsfertigen Standard-Produkten ab, welche die Bedürfnisse der Öffentlichkeit allgemein befriedigten. Die Architekturen, die solchen Vorrichtungen zugrundeliegen, wurden nicht so ausgelegt, um den Bedürfnissen bestimmter Benutzer angepaßt zu sein. Vielmehr wurden sie so ausgelegt, um optimal einen vorbestimmten Satz von Mikrobefehlen durchzuführen.
- Beispiele solcher Mikrocomputer umfassen den Intel 8031/8051, dessen Architektur in dem Kapitel 6 des 1984 Intel-Mikroregler- Handbuches (Bestell Nr. 210918-002) spezifiziert ist und den programmierbaren Einzelchip MOS-Computer, der in den US Patenten Nr. 4,153,933 und 4,306,163 offenbart ist. Aus dem, was man den Beschreibungen dieser Vorrichtungen entnehmen kann ( und all den anderen Mikro-Computer-Architekturen, die den Erfindern bekannt sind) ergibt sich klar, daß deren Architekturen starr und unflexibel sind. Die Speichergrößen für Codes und Daten, das Dekodieren und die Zeitsteuerung von Makroinstruktionen und selbst die verfügbaren peripheren Funktionen (wie Zeitgeber/Zähler und serielle Regler) sind alle vorherbestimmt und können nicht geändert werden.
- Dies ist in Hinblick auf den traditionsmäßigen Versuch der Mikrocomputer-Architektur-Auslegung nicht überraschend. Als eine allgemeine Regel befaßt sich der Mikrocomputer-Anwender nur mit dessen externem Interface - z.B. dem Mikrobefehlssatz und den Stiftdefinitionen, vielleicht noch mit der Zeitsteuerung, die erforderlich ist, um jeden Befehl auszuführen. Mit anderen Worten befaßt sich der Anwender lediglich mit solchen Operationen, die der Chip ausführt, jedoch nicht damit wie er diese Operationen ausführt.
- Somit bestehen frühere Mikrocomputer-Architekturen aus minimierten logischen Pfaden, die dafür ausgelegt sind, um die Ausführungsqualität der Vorrichtung für deren vorbestimmte Funktionen zu optimieren. Mit anderen Worten ist die Mikro-Achitektur nur mit einem angestrebten Ziel ausgelegt - Ausführen des spezifizierten Befehlssatzes so schnell wie möglich für einen gegebenen integrierten Schaltungsbereich. Es wird kein Gedanken an die Möglichkeit verschwendet, daß die gleiche Architektur erneut für eine geringfügig unterschiedliche (oder vielleicht merklich unterschiedliche) Anwendung wieder verwendet werden kann.
- Wie dies bei jeder "Standardvorrichtung" der Fall ist, würden viele Anwender es bevorzugen, eine Rolle bei dem Auslegungsprozeß selbst zu spielen und die Vorrichtung Kunden spezifisch auszulegen, damit sie für deren individuelle Anforderungen geeignet ist. Die Kürze der Auslegung eines Kunden spezifischen Mikrocomputers für jeden dieser Anwender ermöglicht es jedoch nicht sehr häufig, ein Verfahren zu realisieren, um Anwender mit einem Kunden spezifischen Mikrocomputer zu versehen, der deren individuellen Befürfnissen genügt.
- Ein zusätzliches Problem betrifft das Testen des auf dem Chip vorhandenen Speichers unabhängig von der CPU. Wenn ein gesamter Mikrocomputer (inklusive dem Speicher) in einer integrierten Schaltung hergestellt wird, so wird es ziemlich schwierig den Speicher unabhängig vom Rest der Schaltung zu testen.
- Ein Verfahren, um dieses Problem zu lösen, ist in dem US Patent Nr. 4,153,933 beschrieben, wonach spezielle Befehle ein Programm ROM veranlassen angezapft zu werden und zwar in einen internen Hauptbus hinein und unabhängig von der CPU Operation (speziell dem Programmzähler ). Dieses Verfahren verwendet jedoch immer noch den internen Hauptbus, was das Erfordernis der Auslegung einer speziellen Logik zum Adressieren des ROMs mit sich bringt. Diese zugeordnete Logik ist nicht kostenfrei und zwar sowohl hinsichtlich der Geschwindigkeit der normalen Ausführung als auch hinsichtlich des Silizium-Bereiches. Die der Auslegung der zugeordneten Logik zugeordneten Probleme verschlimmern sich noch merklich, wenn ein Verändern der Speichergrößen zugelassen werden soll (da mehrfache Sätze von zugeordneter Logik erzeugt werden müssen).
- Das, was die vorliegende Erfindung schafft ,ist eine Mikrocomputer-Architektur für allgemeine Zwecke, die ausreichend flexibel ist, um den individuellen Anwendern die Möglichkeit zu geben, beispielsweise Änderungen in der Definition der Makrobefehle zu spezifizieren oder einfach eine Zeitsteuerung auszuführen als auch hinsichtlich der Größe des eingebauten Speichers (sowohl für Daten als auch Codes). Jeder Anwender kann seine oder ihre spezifische Auslegung, die zugeordneten logischen Funktionen spezifizieren und kann solche Funktionen einfach in den Makrobefehlssatz einfügen, und zwar über die interne Mikrocomputer-Architektur.
- Dies wird dadurch erreicht, indem die Komponenten der Architektur verallgemeinert werden und zwar unter Beachtung der Flexibilität und Erweiterung, so daß dadurch bestimmte Typen von Zusätzen, Weglassungen und Modifikationen der Funktionalität in das Herz der Vorrichtung selbst eingefügt werden können, und zwar geradeso wie ein Zusatz zur integrierten Schaltung. Die Auslegung oder Konstruktion von Anwendungsspezifischen integrierten Schaltungen erfordert mehr als nur die Möglichkeit zu schaffen, daß der Anwender seine oder ihre spezifischen Auslegungslogik auf der gleichen integrierten Schaltung, auf der sich der Mikrocomputer befindet, mit einbezieht. Es muß auch für den Fall gesorgt werden, daß der Mikrocomputer und diese spezifische Auslegungslogik dann nicht länger einfach als externe Vorichtungen kommunizieren. Es muß Funktionalität wie auch Chip-Bereich oder Fläche auf der Architekturebene integriert werden.
- Anstatt beispielsweise die anwenderspezifischen zugeordneten logischen Funktionen mit Hilfe des traditionellen Verfahrens hinzuzufügen, wonach lediglich externe I/O Ports vorgesehen werden, werden diese Funktionen in die Mikroarchitektur auch durch Vorsehen einer Einrichtung mit eingeführt, um Register zu der internen Register-Datei des Mikrocomputers hinzuzufügen, die diesen zugewiesenen Funktionen zugeordnet sind. Diese Lösung schafft eine merklich größere Flexibilität und ermöglicht es dem Anwender die externe Gebrauchsvorrichtung zu manipulieren als ob diese in der Mikroarchitektur selbst enthalten wäre. Der Anwender braucht keine festen externen Speicherstellen spezifizieren (was das Lesen und Schreiben von Werten in andere knappe interne Register erforderlich macht) um einfache logische und arithmetische Operationen durchzuführen. Der Anwender erreicht somit eine Einsparung hinsichtlich Raum und Ausführung als auch hinsichtlich der Kosten der Programmauslegung.
- Es wird eine merkliche Flexibilität hinsichtlich der Definition des Mikrobefehlssatzes selbst erreicht. Da das Chip nicht mit zugewiesener "Rand"-Logik übersät ist, die dafür ausgelegt ist, um einen bestimmten Satz von vorbestimmten Mikrobefehlen zu optimieren, können einzelne Makrobefehle lediglich durch Neuschreiben von Mikrocodes modifiziert werden. Die Befehlsdekodier-und Ausführzeit kann ebenfalls in dieser Weiser modifiziert werden.
- Es können selbst vollständig neue Befehle einfach dadurch hinzugefügt werden, indem man einen zusätzlichen Mikrocode schreibt. Obwohl einige anwenderspezifische Mikrobefehle zusätzlich Zeit für die Ausführung erfordern können bzw. mehr als dies für vorbestimmte Mikrobefehle der Fall ist (da die Mikroarchitektur nur für vordefinierte Mikrobefehle optimiert ist), werden viele Anwender diesen Kompromiß hinsichtlich der Geschwindigkeit akzeptieren in Hinblick auf gewonnene Flexibilität der Auslegung der Anwender- spezifischen Mikrobefehle. Insgesamt gesehen besteht die Alternative entweder darin, den Standardteil vollständig fallen zu lassen oder den Anwender- spezifische Mikrobefehl zu definieren ,indem vordefinierte Mikrobefehle verbunden werden (bestimmt meistens ein langsamerer und kostenintensiverer Verlauf der Aktion).
- Ein anderes durch die FASMIC-Architektur angesprochenes Problem betrifft das Testen eines auf dem Chip befindlichen Speichers unabhängig von der CPU. Die Erfindung schafft einen Mechanismus, um einen Speicher auf dem Chip zu testen und zwar unabhängig von dem internen Bus (und damit von dem Rest der integrierten Schaltung), so daß dadurch eine Lösung geschaffen wird, die eine Standardspeicher-Adressierlogik verwendet und die merklichen Extrakosten der Erstellung der zugewiesenen Logik vermeidet, speziell dort, wo verfügbare Speichergrößen zugelassen sind (entsprechend den individuellen Anforderungen jedes Anwenders).
- Der Mechanismus selbst enthält eine "Abtastbahn-Schaltungsanordnung", die in einem anderen Schriftstück veröffentlicht worden ist. Siehe die Literaturstelle LSA2001 Silicon-Gate HCMOS Structured Array data sheet, Seiten 8-10, veröffentlicht von LSI Logic Corporation im März 1987 (im Detail unten erläutert).Dieser "Abtast-"Mechanismus wurde jedoch niemals zuvor in Zusammenhang mit einem Mikrocomputer verwendet, bei dem das Testen des Speichers unabhängig von dem internen Hauptbus (und damit dem Rest der CPU) von großer Bedeutung ist.
- Die US-A-4 001 788 und US-A-4 173 o41 offenbaren jeweils ein Pfad-Auffind-Mikroprogramm-Steuersystem und einen Hilfs-Mikrosteuermechanismus, die beide eine zentrale Prozessoreinheit enthalten, ferner einen Speicher mit wenigstens einer Nur-Lese- Einheit, einem Registersatz und optionalen Speichereinheiten gemäß einem wahlfreien Zugriff. Ferner zeigt die o.g. US-A-4 001 788, gegenüber welcher der Anspruch 1 abgegrenzt ist, spezieller, daß das Mikroprogramm-Steuersystem auch die Fähigkeit hat ,einen Zugriff zu externen Registern und einem externen Speicher durchzuführen.
- Zusammenfassend umfaßt die vorliegende Erfindung, wie sie in Anspruch 1 beansprucht wird, einen digitalen Computer auf einem einzelnen Substrat, mit einem bidirektionalen Datenbus; einem Speicher zur Daten-oder Codespeicherung, wobei der Speicher enthält: Ein oder mehrere Register zum temporären Speichern von Daten während des Betriebes des digitalen Computer; Mittel zum Adressieren des Speichers; eine zentrale Prozessoreinheit, welche Makrobefehle interpretiert und ausführt, wobei jeder Makrobefehl durch Umsetzmittel in eine Folge von Mikrobefehlen eingeordnet wird, wobei die zentrale Prozessoreinheit dadurch arithmetische und logische Operationen duchführt und mit dem Datenbus, dem Speicher und dem Adressierungsmittel gekoppelt ist, mit Mitteln zum Erzeugen der Speicheradresse außerhalb des Substrats sowie der Adresse der nächsten durch die zentrale Prozessoreinheit auszuführenden Makrobefehle, und mit einer Einrichtung zum Aufnehmen der Adressen der externen Vorrichtungsregister, die nicht auf dem Substrat gelegen sind, innerhalb des gleichen Adressenraumes, der von dem Speicher verwendet wird, wobei die genannten Mittel den gleichen Grad an direkter Manipulation der externen Register erlauben, als dies bei Registern erlaubt ist, die auf dem Substrat gelegen sind.
- Somit besteht das Wesentliche erfinderische Merkmal der vorliegenden Erfindung in der Miteinbeziehung der Adressen der externen Register in den internen Register-Adressenraum des Mikroreglers.
- Figur 1 veranschaulicht die Architektur des FASMIC Mikrocomputers, einer bevorzugten Ausführungsform der Erfindung;
- Figur 2 veranschaulicht die "Abtast-"Technik des Testens des Speichers auf dem Chip unabhängig von dem internen Bus: und
- Figur 3 veranschaulicht auf welche Weise anwenderspezifische zugewiesene logische Funktionen zu der Grund FASMIC-Architektur hinzugefügt werden.
- Die folgende Beschreibung zielt darauf ab, lediglich eine Veranschaulichung, jedoch keine Einschränkung zu bieten. Während die bevorzugte Ausführungsform der Erfindung beschrieben wird, sind andere Ausführungsformen (die unterschiedliche Befehlssätze verwenden, unterschiedliche Steuereinrichtungen oder bestimmte unterschiedliche zugewiesene logische Funktionen verwenden) in Hinblick auf die folgende Beschreibung offensichtlich.
- Die Erfindung ist in der Architektur des flexiblen ASIC-Mikrocomputers ("FASMIC"), wie in Figur 1 veranschaulicht, enthalten bzw. realisiert. Es sind zwei bestimmte Sätze von Registerblöcken enthalten, wobei der erste Block 1 der Register sowohl Bit-adressierbar ist als auch Byte-adressierbar ist und der zweite Block 2 der Register lediglich Byte-adressierbar ist. Obwohl diese Register in zwei bestimmten Blöcken in Figur 1 veranschaulicht sind, sind die Register in beiden Sätzen physikalisch in der gesamten Architektur dieses Chips vorhand (was ebenfalls in diesem Diagramm veranschaulicht ist). Der Zweck der Gruppierung dieser Register in die Blöcke 1 und 2 besteht einfach darin, den geeigneten Adressierungsmechanismus, der jedem Register zugeordnet ist, zu veranschaulichten.
- Alle Register in den Blöcken 1 und 2 sind sowohl intern, über einen Mikro-Code, als auch extern über Anwender-Makrobefehle zugänglich. Zusätzlich zu diesen Registern gemäß einem spezifischen Zweck, wird der Anwender auch mit einem Satz von Registern für allgemeine Zwecke versehen, die in dem "sratchpad" Daten RAM 3 enthalten sind. Zwei dieser Register für eine spezifische Aufgabe, die Register A und B (die mit dem Bezugszeichen 4 und 5 versehen sind), sind ebenfalls unter der ALU 6 gezeigt, die gut bekannte arithmetische und logische Operationen durchführt.
- Die zwei ALU Operanden sind in den Registern TP1 7 und TP2 8 gespeichert und es sind verschiedene Ergebnis-Flags der ALU- Operationen in dem PSW Register 9 gespeichert. Alle Register für spezielle Aufgaben als auch die ALU und der Daten-RAM 3 sind über den internen Bus 10 zugriffsfähig, von denen Informationen entweder gelesen oder eingeschrieben werden können.
- Diese spezifische Ausführungsform der FASMIC-Architektur wird durch eine Mikromaschine für allgemeine Zwecke gesteuert, die Steuersignale 11 generiert, die über die gesamte integrierte Schaltung verteilt werden. Diese Mikromaschine (microengine) enthält ein Befehlsregister (IR) 12, welches zu Beginn jeden Anwender-Makrobefehl hält, nachdem dieser von dem Programmspeicher aufgerufen worden ist.
- Dieser Makrobefehl wird über den Map-ROM 13 dekodiert, der jeden Makrobefehl in eine Startadresse (oder "Eintrittspunkt") in dem Mikrocode-ROM 14 auflistet. Das Map-ROM enthält lediglich eine Tabelle von Mikrobefehl-Eintrittsstellen und wird über Mikrobefehl-Opcodes adressiert. Einer oder mehrere Miktrobefehl- Opcodes liefert einen bestimmten Eintrittspunkt des ersten Mikrobefehls in der Folge der Mikrobefehle, der diese Gruppe der Mikrobefehle interpretiert.
- Es sei darauf hingewiesen, daß die Funktionalität von sowohl dem Map-ROM 13 als auch dem Mikrocode-ROM 14 in einfacher Weise manifestiert werden kann und zwar bei einer anderen Ausführungsform in entweder einem PLA oder rein in einer logischen Synthese (im Gegensatz zu einem ROM). Als allgemeine Regel macht es keinen Unterschied für den Anwender, auf welche Weise diese Funktionalität manifestiert wird, vorausgesetzt, daß eine präzise Funktionalität innerhalb einer spezifizierten Größe und Ausführungs-Grenzen ausgeführt wird. Die FASMIC-Architektur ist so ausgelegt, um eine merkliche Flexibilität dadurch zu ermöglichen, indem eine binäre Darstellung dieser Funktionalität beibehalten wird, so daß der Anwender die Möglichkeit erhält, eine bestimmte Manifestation (z.B.64K ROM) auszuwählen, um seiner oder Ihrer individuellen Räumlichkeit, Ausführung oder anderen Anforderungen angepaßt zu sein.
- In dem Mikrocode ROM sind Folgen von Mikrobefehlen vorhanden (die mehr im einzelnen im folgenden beschrieben werden sollen), die Steuersignale enthalten, die erforderlich sind, um bestimmte Makrobefehle zu interpretieren, wobei der Rest der Mikroarchitektur veranlaßt wird, geeignete Funktionen durchzuführen. Diese Steuersignale werden in Feldern organisiert, wobei jedes Feld eine bestimmte Funktion wiedergibt, wie beispielsweise lesen eines bestimmten Registers und setzen dessen Inhalte in den internen Bus. Diese Felder sind ferner in Festlängen-Mikrobefehlsformaten organisiert, von denen jedes einen Typ eines Mikrobefehls darstellt, der mehrere Felder der Steuersignale enthält. Jeder Mikrobefehl wird unmittelbar vor seiner Ausführung gespeichert und zwar in dem Mikrowort-Register (MWR) 15, von wo er mit Hilfe einer zusätzlichen Steuerlogik, die über die integrierte Schaltung verteilt ist, dekodiert wird.
- Die Reihenfolge, mit der die Mikrobefehle ausgeführt werden, wird über MUX 16 gesteuert, der gemäß einer Standardeinstellung einfach die Adressen zu dem nächsten sequentiellen Mikrobefehl inkrementiert (da die Folge der Mikrobefehle im allgemeinen für eine bestimmte Gruppe von einem oder mehreren Mikrobefehlen bekannt ist). Manchmal ist jedoch die Folgesteuerung bedingt - z.B. wenn ein bedingter Mikrocode-Sprung auftritt. In diesem Fall enthält ein bestimmtes Feld des früheren Mikrobefehls selbst die nächste Adresse (zu der gesprungen wird, wenn die Bedingung erfüllt worden isr), Nachdem schließlich die Folge von Mikrobefehlen, die eine bestimmte Gruppe von Mikrobefehlen interpretieren, ausgeführt worden ist, wird die nächste Adresse durch die Ausgangsgröße aus dem Map-ROM bestimmt, da diese Adresse von dem bestimmten Mikrobefehl abhängt, der als nächstes auszuführen ist.
- Somit bestimmt die MUX 16 die Adresse des nächsten auszuführenden Mikrobefehls, indem (1) die Adresse des früheren Mikrobefehls inkrementiert wird, (2) die Eintrittspunktadresse, die von dem Map-ROM erzeugt worden ist, verwendet wird, oder (3) die Sprungadresse verwendet wird, die in dem früheren Mikrobefehl (gespeichert in MWR) enthalten ist oder aus diesem generiert wurde. Die Adresse wird dann in dem Mikroadressen-Register (MAR) 17 gespeichert, welches den Mikrocode ROM direkt adressiert, wobei bewirkt wird, daß der an dieser Adresse vorhandene Mikrobefehl in das MWR geladen wird und dann ausgeführt wird.
- Während MUX 16 die Quelle der Adresse des nächsten auszuführenden Mikrobefehls bestimmt, bestimmt MUX 18 die Quelle der kodierten "Adresse" des Registers zu dem Zugriff erfolgen soll, (z.B. wenn ein Mikrobefehl oder eine Mikroinstruktion ein bestimmtes Register betätigt) und speichert dann diese kodierte Adresse in dem RAM/-register Adressenregister (RAR) 19.
- Die erste der drei möglichen Quellen für RAR ist der interne Bus 10, welcher die absolute Adresse des Registers enthält (oder der RAM-Stelle), welches bzw. welche durch den gerade ausgeführten Mikrobefehl selbst spezifiziert ist. Diese Steuersignale werden von dem MWR dekodiert und werden dann in den internen Bus eingeführt, wo sie dazu verwendet werden können, um ein bestimmtes Register (oder RAM-Stelle) auszuwählen, aus dem bzw. aus der Daten ausgelesen werden oder in welche Daten eingeschrieben werden. Zusätzliche Steuersignale bestimmen natürlich, ob MUX 18 diese oder eine der anderen zwei Quellen auswählt.
- Die zweite potentielle RAR-Quelle 20 bildet ebenfalls eine absolute Adresse, wird jedoch nicht von einem Mikrobefehl abgeleitet, sondern von einem laufend oder gerade ausgeführten Mikrobefehl. Diese Adresse ist aus drei Komponenten zusammengesetzt. Die höchstwertigen Bits der Adresse sind fest und zeigen den speziellen Versatz in dem Daten-RAR 3 an, welches für Register für allgemeine Zwecke reserviert ist. Die nächsten höchstwertigen Bits werden durch bestimmte Bits von PSW bestimmt, die anzeigen welche "Bank" der Register für allgemeine Zwecke in dem RAM gerade einen Zugriff erfährt. Schließlich spezifizieren bestimmte Bits des Mikrobefehls selbst, welches spezielle Register in der laufenden Bank der Daten-RAM-3-Register einen Zugriff erfährt .Diese drei Komponenten tragen zusammen dazu bei, um eine absolute Adresse in dem Daten-RAM 3 zu bilden, die, wenn sie durch MUX 18 gewählt wird, in den RAR geladen wird und dazu verwendet wird, das Daten-RAM-3-Register, welches einen Zugriff erfahren soll, zu adressieren.
- Die dritte mögliche RAR-Quelle 21 ist eine Adresse in dem Daten RAM 3, die über die folgenden indirekten Adressierungsmittel erhalten wird. Die Quelle 20 lädt die indirekte Adresse in RAR. Die Inhalte von RAR werden dann als ein Zeiger verwendet (die indirekte Adresse) und zwar in dem Daten RAM 3. Die Inhalte des Wortes an dieser Adresse in dem Daten-RAM 3 (die absolute Adresse) werden zur Quelle 21 in dem MUX 18, die, wenn sie ausgewählt wird, in RAR geladen wird.
- MUX 22 veranschaulicht konzeptmäßig, daß die Daten in dem Register, welches über RAR einen Zugriff erfährt, von einem Bit- adressierbaren Register für einen Spezialzweck erhalten werden, ferner einem Byte-adressierbaren Register für einen Spezialzweck oder einem Daten-RAM-Register für allgemeine Zwecke erhalten werden. Zusätzlich zum Adressieren der Register können beide Mikrobefehle oder Mikroinstruktionen einen Zugriff zu dem Off-Chip-Daten-RAM bewirken und zwar über den externen Port P2 23 und den Port PO 24. Das Stapelzeiger-Register (SP) 25 wird dazu verwendet, um einen gut bekannten Software-Mechanismus zu erstellen, um den Anwender-Speicher zu organisieren in dem Daten in einer Weise "zuletzt rein zuletzt raus" (LIFO) gesichert oder aufbewahrt werden. SP enthält die Adresse des "top"- (zuletzt rein, wenn der Stapel nach oben wächst) Punktes auf dem Stapel. Der externe Port P1 26 ist einfach ein Parallel- Port für allgemeine Zwecke.
- Die externen Ports P2 23 und PO 24 werden dazu verwendet, um einen Zugriff zu dem Off-Chip-Programm und einem Datenspeicher (RAM oder ROM) durchzuführen. Die Adresse (des nächsten auszuführenden Mikrobefehls) wird über die Ports P2 und PO gesendet; und sie wird in zwei physikalisch getrennten Komponenten berechnet -- eine für die höchstwertige Hälfte und die andere für die niedrigstwertige Hälfte der Adresse. Diese zwei Komponenten des "nächsten Mikrobefehl-Adressengenerierung"-Mechanismus sind praktisch identisch.
- Jeder enthält drei Register für einen speziellen Zweck (jeweils die hohen und niedrigen Hälften) : (1) der Datenzeiger (DPH 27 und DPL 28 ), der einen Versatz in dem internen Daten RAM enthält, (2) dem Programmzähler (PCH 29 und PCL 30), der die Adresse des nächsten Mikrobefehls enthält, und (3) ein internes Register (IH 31 und IL 32), welches normalerweise als temporäres Register verwendet wird, um den Programmzähler zu inkrementieren, um die Adresse des nächsten in der Reihenfolge kommenden Mikrobefehls, der auszuführen ist, zu erhalten.
- Es sei darauf hingewiesen, daß die hohe Komponente dieses Mechanismus einen Inkrementer/Dekrementer 33 enthält, während die niedrige Komponente einfach einen Inkrementer 34 enthält. Dieser Unterschied ergibt sich aufgrund der Tatsache, daß die niedrige Komponente relative Adressenverschiebungen unter Verwendung von ALU berechnet, wobei lediglich ein unbedeutenderes Inkrement oder Dekrement in der hohen Komponente übrig gelassen wird, welches in Hardwareform über den Inkrementer/Dekrementer 33 gehandhabt wird.
- Die MUX 35 und MUX 36 empfangen Steuersignale, welche bestimmen, welches der drei Register zugegriffen werden soll, um die Adresse zu generieren. Da diese Berechnung häufig komplex ist (sie erfordert beispielsweise ALU-Operationen), werden getrennte interne PD (Programmzähler und Datenzeiger) Busse PDH 37 und PDL 38 verwendet, um die Möglichkeit zu schaffen, Daten unter den Registern zu übertragen, die diesem Mechanismus zugeordnet sind, und auf den internen Bus zu geben, von welchem sie über die ALU manipuliert werden können. Die Pufferstufen 39 und 40 enthalten den gut bekannten logischen Mechanismus, der erforderlich ist, um sicher zu stellen, daß die Daten in richtiger Weise zwischen den PD-Bussen und dem internen Bus ohne irgendeinen Konflikt übertragen werden (da der interne Bus lediglich durch eine Quelle zu irgendeinem gegebenen Zeitpunkt "beherrscht" werden kann).
- Es wird somit die nächste Makrobefehlsadresse über diesen Mechanismus unter der Mikrocode-Steuerung berechnet beispielsweise durch Manipulieren der Daten in den PD-Bussen und dem internen Bus, unter Verwendung der ALU, um irgendwelche erforderlichen logischen und arithmetischen Operationen auszuführen. Die externen Daten RAM-Adressen werden ebenfalls über diesen Mechanismus berechnet.
- Die Adresse des nächsten auszuführenden Mikrobefehls wird ultimativ in den Prgrammadressenregistern( PARH 41 und PARL 42) gespeichert. Zusätzlich zum Aufnehmen der nächsten Mikroinstruktion oder Mikrobefehls aus dem Off-Chip-Speicher (über die externen Ports P2 und PO) kann ein Teil oder das gesamte Anwenderprogramm in dem optionalen Programm-ROM 43 auf dem Chip gespeichert werden. In jedem Fall führt dieser Mechanismus entweder zum Lesen oder zum Schreiben des externen Daten RAM's, oder zum Aufnehmen des nächsten Mikrobefehls (entweder von dem externen Speicher oder von dem ROM auf dem Chip), die dann in den internen Bus geladen wird und in IR, woraufhin dieser durch die Mikromaschine für allgemeine Zwecke, die oben beschrieben wurde, ausgeführt wird.
- Ferner enthält die Architektur auch einen Zeitsteuermechanismus 44 und bestimmte zugewiesene logische Funktionen (Zeitgeber/Zähler 45, Unterbrechungsmechanismus 46 und serielle Regler 47), von denen jede auf dem Gebiet gut bekannt ist und im Detail in dem Kapitel 6 des 1984 Intel Microcontroller Handbuchs (Bestell Nr. 210918-002) erläutert ist. Der externe Port P3 48 ermöglicht einen Zugriff zu diesen zugewiesenen Funktionen, welche die Erfindung nur am Rand berühren mit der Ausnahme der Adressierung der externen Register der Anwender spezifischen zugewiesenen logischen Funktionen (die innerhalb des Adressenraumes der internen Register in den Blöcken 1 und 2 mit enthalten sind).
- In Figur 2 ist ein getrennter Mechanismus veranschaulicht, der in die FASMIC-Architektur integriert ist, der das Testen des Speichers aus dem Chip ermöglicht und zwar ohne Verwendung des internen Busses. Es sei darauf hingewiesen, daß an Stelle in dem Speicher eine zugewiesene Speicheradress-Logik zu entwerfen, die Erfindung den Vorteil der "Abtast-"Technik verwendet, die oben angesprochen wurde, die bereits in Standardspeicherkomponenten ausgeführt ist.
- Der Speicher 1 selbst wird durch drei Sätze von Sperrschaltungen umgeben (Eingabesperrschaltungen 2, Adressensperrschaltungen 3 und Ausgabe-Sperrschaltungen 4) und zwar zusätzlich zu bestimmten Steuersignalen. Wenn das Zellen-Wählsignal (CS) 5 zurückgestellt ist (wobei der Speicher außer Bereitschaft gesetzt wird), können die seriellen Adressen-Bits (welche die zu testenden Daten adressieren, ob gelesen oder geschrieben) in die Adressen-Sperrschaltungen geladen werden (deren Weite oder Breite durch die RAM-Weite bestimmt ist, wobei ein Sperrglied pro Bit vorgesehen ist), und zwar indem der Eingab-Adressentakt (ICKADR) 6 getaktet wird. In ähnlicher Weise können Testdaten seriell in Eingabe-Sperrschaltungen eingegeben werden (eines pro Bit des Eingangs) und zwar durch Takten des Eingabe-Datentaktes (ICKDATA) 7.
- Durch Setzen von CS und des Schreibfreigabesignals ( WE) 8 (und Halten des internen Abtast-Taktsignals auf "niedrig"), werden die Testdaten, die bereits in die Eingabe-Sperrschaltungen eingetaktet worden sind, in den Speicher an den Adressen eingeschrieben, die an früherer Stelle in die Adressen-Sperrschaltungen eingetaktet worden sind. Die gleiche Prozedur wird verfolgt, um Testdaten aus dem Speicher zu lesen ausgenommen, daß WE zurückgestellt ist. Die Testdaten werden dann an die Eingänge der Ausgabe-Sperrschaltungen gelegt, wo sie gesperrt werden können und zwar durch einmaliges Eintakten des Ausgabedatentaktes (OCK) 9. Die Daten können dann seriell zugegriffen werden ,und zwar indem der Ausgang (OE) 10 freigegeben wird oder in Bereitschaft gesetzt wird, CS zurückgestellt wird (wobei der Speicher außer Bereitschaft gesetzt wird), und indem der interne Abtasttakt so lange eingetaktet wird, bis jedes Bit der Daten herausgeschoben worden ist.
- Auf diese Weise kann der Speicher über den Abtastmechanismus getestet werden, wobei lediglich die Eingabe-Ausgabe-und Adressen-Sperrschaltungen verwendet werden, die von dem Speicher selbst versorgt werden, so daß dadurch die Probleme vermieden werden, die sich aus der Verwendung des internen Busses ergeben, was die Erzeugung einer zugewiesenen Logik erforderlich machen würde.
- Wenn man Figur 3 betrachtet, soll man den Anwender bedenken, der wünscht eine bestimmte zugewiesene logische Vorrichtung zu der FASMIC Architektur hinzuzufügen, die niemals von den FASMIC Designern in Erwägung gezogen wurde -- z.B. eine DMA Vorrichtung. Traditionsgemäß kann ein solcher Anwender lediglich Zugriff erlangen zu FASMIC, die an den externen Ports vorgesehen ist, wie in Figur 1 veranschaulicht ist. Bei der FASMIC Architektur sind jedoch die von außen zugreifbaren Register dieser Vorrichtung in die Grundarchitektur mit einbezogen - d.h. sie sind in dem Satz der direkt Bit-adressierbaren oder Byte-adressierbaren Register enthalten.
- Die Bedeutung der Miteinbeziehung der externen Register der Vorrichtung in den internen Register-Adressenraum von FASMIC wird offensichtlich, wenn der Anwender Software schreibt, um FASMIC zu steuern. Es sei beispielsweise die allgemeine Aufgabe betrachtet, ein Bit in einem bestimmten Register zu setzen ("Register C") und zwar von der zugewiesenen logischen Vorrichtung, die in Figur 3 veranschaulicht ist (unter Verwendung von beispielsweise dem FASMIC Befehlssatz).
- In der FASMIC Architektur (da dieses externe Register innerhalb des internen Adressenraumes von FASMIC liegt) besteht das Programm nur noch aus einer Instruktion bzw. Befehl ("SETB C. 1"), welches das zweite niedrigstwertige Bit des Registers C setzt. Wenn jedoch das Register C nicht in den internen Adressenraum von FASMIC miteinbezogen war (wie dies bei allen Mikrocomputern der Fall ist, die den Erfindern bekannt sind) würde ein merklich längeres Programm erforderlich sein (welches aus fünf Makrobefehlen besteht, wie in Figur 3 veranschaulicht ist).
- Im Endergebnis müßte der Anwender sichern und ultimativ ein "scratch" Register wieder herstellen, um den Wert zu halten, der von dem externen Register C eingelesen worden ist (die Makrobefehle 1 und 5). Darüber hinaus müßte der Anwender die Inhalte des Registers C in dieses scratch Register bewegen (Makrobefehl 2) und, nach einem endgültigen Setzen des Bits (Makrobefehl 3) das Ergebnis zurück in das Register C bewegen (Makrobefehl 4).
- Die zusätzliche Länge dieses Programms veranschaulicht die Extraprogrammierung, die jedes Mal dann erforderlich ist, wenn ein externes Register manipuliert wird. Wenn die Register der Vorrichtung des Anwenders häufig zugegriffen werden, würde das Programm des Anwenders merklich langsamer sein und würde merklich mehr Raum belegen als das entsprechende Proramm, welches das FASMIC Verfahren verwendet.
- Solche klaren redundanten (und häufigen) Operationen wie das Zugreifen zu den externen Registern sind sehr viel effizienter, wenn sie intern gehandhabt werden anstatt den Anwender zu zwingen über einen verwirrenden und häufig mühsamen Verlauf die begrenzten scratch Register aufzusparen und wieder herzustellen als auch Daten zu bewegen (anstatt sich auf die wichtigen Datenmanipulations-Makrobefehle zu konzentrieren, die am Kern der meisten Computerprogramme liegen).
- Im Endergebnis entlastet die vorliegende Erfindung den Anwender durch Verallgemeinern der FASMIC Architektur, um also externe Register innerhalb des internen Register-Adressenraumes der Vorrichtung mit einzubeziehen, hinsichtlich der Notwendigkeit übermäßig viele "Datenbewegungs"-Befehle zu handhaben (die häufig einen unangemessenen Prozentsatz vieler Computerprogramme belegen) und befreit den Anwender davon sich auf eine bestimmte auf der Hand liegende Aufgabe zu konzentrieren, die die Verwendung von "Datenmanipulations"-Befehlen(oder Zahlen verschlingenden)Befehlen erforderlich macht.
- Anwender wünschen häufig den Makrobefehlssatz gebrauchsmäßig auszulegen, um für ihre individuellen Bedürfnisse geeignet zu sein. Die FASMIC Architektur macht eine solche gebrauchsspezifische Auslegung nicht nur möglich sondern auch extrem einfach.
- Es sei hier der Anwender in Betracht gezogen, dem der allgemeine (und gewöhnlich akzeptierbare ) "add with carry" (ADDC) Makrobefehl angeboten wird. Kurz gesagt addiert dieser Makrobefehl zwei Zahlen zusammen und setzt das Übertrag-Bit, wenn das Ergebnis einen Übertrag über das höchstwertige Bit des Ergebnisses verursacht hat. Was aber, wenn der bestimmte Anwender (aus irgendeinem Grund) eine modifizierte ADDC-Makroinstruktion bzw. Befehl fordert, der immer das Übertrag-Bit setzt? Virtuell existiert die gesamte Funktionalität bereits in der Maschine, die herkömmlichen Mikrocomputer lassen jedoch den Anwender ohne eine greifbare Lösung.
- Da nun aber FASMIC ausgelegt ist, um für solche Anforderungen speziell ausgelegt zu werden, braucht der Mikrocode lediglich geringfügig modifiziert zu werden. Anstelle den Übertragwert zu verwenden, der durch die Zusatzoperation in der ALU generiert wird, braucht der Mikrocode das Übertrags-Bit manchmal nur direkt nach der Zusatzoperation zu setzen. Diese geringfügige Änderung im Betrieb für einen Anwender ist möglich (ohne irgendwelche zusätzlichen Hardware-Änderungen), da die FASMIC Architektur in Hinblick auf diese Flexibilität ausgelegt ist.
- Es lassen sich zusätzliche Beispiele im Überfluß anführen. Der Anwender kann wünschen nicht lediglich einen existierenden Makrobefehl zu modifizieren, sondern einen vollständig neuen Makrobefehl hinzuzufügen. Erneut ,alles was erforderlich ist, ist eine neue Mikrocode-Sequence und der Zusatz von deren Eintrittspunkt in den Map-ROM. Eine Kompatibilität mit früheren Mikrobefehlssätzen ist ebenfalls möglich (selbst beim Ausführungszeitpunkt) und zwar einfach durch Vorsehen eines von einem Anwender betätigbaren Schalters, der bewirkt, daß die "kompatible" Mikroroutine ausgeführt wird anstatt der laufenden, häufig schnelleren Routine. Die niedrigere Geschwindigkeit schafft das, was häufig der erforderliche Grad an Kompatibilität ist.
- Kurz ausgedrückt kann eine klare signifikante Funktionalität dadurch erhalten werden, indem man den Anwender mit einer flexiblen Architektur versieht, die es ermöglicht, den Makrobefehlssatz gebrauchsspezifisch an die individuellen Anforderungen jedes Anwenders anzupassen.
Claims (8)
1. Digitaler Computer (Figur 1) auf einem einzigen Substrat,
mit:
einem bidirektionalen Datenbus (10);
einem Speicher zur Daten- oder Codespeicherung (1, 2, 3),
wobei der Speicher enthält:
ein oder mehrere Register (1, 2) zum temporären Speichern
von Daten während des Betriebes des digitalen Computers;
Mitteln (18-21) zum Adressieren des Speichers;
einer Zentraleinheit (6-9), die Makrobefehle interpretiert
und ausführt, wobei jeder Makrobefehl durch Umsetzungsmittel
(12,13) in eine Folge (14) von Mikrobefehlen eingeordnet (13)
wird, wobei die Zentraleinheit dadurch arythmethische und
logische Operationen durchführt und mit dem Datenbus, dem
Speicher und dem Adressierungsmittel gekoppelt wird;
Mitteln (27-42) zum Erzeugen der Speicheradresse außerhalb
des Substrats sowie der Adresse der nächsten durch die
Zentraleinheit auszuführenden Makrobefehle;
wobei der digitale Computer gekennzeichnet ist durch
Mittel zum Einfügen der Adressen von Externgeräteregistern,
die sich nicht auf dem Substrat befinden, in den gleichen
Adressraum, der für den Speicher benutzt wird, wobei die
Mittel den gleichen Grad der direkten Manipulation der
externen Register erlauben, der für die auf dem Substrat
befindlichen Register erlaubt ist.
2. Digitaler Computer nach Anspruch 1, ferner enthaltend:
ein Mittel (Figur 2) zum Testen des Speichers ohne
Unterbrechung des normalen Betriebes des Datenbusses, wobei
die Mittel enthalten:
eine oder mehrere Adresseneingabe-Rückführungsschaltungen
(3) zum Empfangen der Adresse in dem Speicher, in die Daten
geschrieben oder aus der Daten gelesen werden können, von
einer externen Quelle;
eine oder mehrere Dateneingabe-Rückführungsschaltungen (2)
zum Empfangen der Daten, die an die Adresse in dem Speicher
geschrieben werden können, von einer externen Quelle;
eine oder mehrere Datenausgabe-Rückführungsschaltungen (2)
zum Empfangen der an der Adresse in dem Speicher
gespeicherten Daten aus dem Speicher; und
Mittel zum Koppeln des Speichers mit den Adresseneingabe-
Rückführungsschaltungen, den
Dateneingabe-Rückführungsschaltungen und den Datenausgabe-Rückführungsschaltungen.
3. Digitaler Computer nach Anspruch 2, bei welchem das
Testmittel ferner Taktmittel (ICKADR, ICKDATA, OCK) zum Streuen
der seriellen Übertragung von Adressenbits zu den
Adresseneingabe-Rückführungsschaltungen, von Datenbits zu den
Dateneingabe-Rückführungsschaltungen und von Datenbits aus dem
Speicher zu den Datenausgabe-Rückführungsschaltungen
enthält.
4. Digitaler Computer nach Anspruch 1, bei welchem die
Zentraleinheit (6-9, 12-17) ferner Mittel zum Empfangen eines
oder mehrerer Signale aus einer außerhalb des Substrats
befindlichen Quelle enthält, wobei die Signale die Mittel
(12, 13) zum Empfangen und Einordnen der Makrobefehle in
eine Folge von Mikrobefehlen veranlassen, die Makrobefehle in
eine Folge von Mikrobefehlen einzuordnen, die von der
verschieden ist, die ausgewählt worden wäre, wenn das Signal
nicht empfangen worden wäre.
5. Digitaler Computer nach Anspruch 1, bei welchem die
Mittel (12,13) zum Empfangen und Einordnen der Makrobefehle
in einer Folge von Mikrobefehlen ferner enthalten:
einen Umsetzungsspeicher (13) zum Speichern der Adresse des
ersten auszuführenden Mikrobefehls in dem Mikrocodespeicher
(14), wobei der Umsetzungsspeicher von einem oder mehreren
Bits der Makrobefehle adressiert wird; und
Mittel zum Hinzufügen und Weglassen von Makrobefehlen aus
der Gruppe von durch den digitalen Computer ausführbaren
Befehlen und zum Ändern der durchgeführten Funktion, wenn
der Makrobefehl ausgeführt wird, wobei die Mittel den
Schritt des Modifizierens ausschließlich des Inhalts des
Umsetzungsspeichers und des Mikrocodespeichers ohne
Modifizierung einer zusätzlichen Logikschaltung auf dem Substrat
umfassen.
6. Digitaler Computer nach Anspruch 1, ferner enthaltend:
ein Speicher/Register-Adressregister (19); und
ein Multiplexiermittel (18) zum Auswählen des Inhalts des
Speicher/Register-Adressregisters aus zwei oder mehr
Quellen, wobei das Multiplexiermittel von Steuersignalen
gesteuert ist, die von einem oder mehreren Mikrobefehlen in
dem Mikrocodespeicher (14) erzeugt werden.
7. Digitaler Computer nach Anspruch 6, bei welchem die
Quellen des Multiplexiermittels umfassen:
Codierte Signale, die auf dem Substrat befindliche Register
oder Adressen in dem Speicher repräsentieren, in die Daten
geschrieben oder aus denen Daten gelesen werden; und
codierte Signale, die auf dem Substrat befindliche
Adresszeiger zu Wörtern in dem Speicher repräsentieren, deren
Inhalt Adressen in dem Speicher enthält, in die Daten
geschrieben oder aus denen Daten gelesen werden.
8. Digitaler Computer nach Anspruch 1, bei welchem die
Mittel (27-42) zum Erzeugen der Speicheradresse außerhalb
des Substrats und der Adresse des nächsten der durch die
Zentraleinheit (6-9, 12-17) auszuführenden Makrobefehle
enthalten:
ein Datenzeigeregister (27, 28), dessen Inhalt einen Bereich
im Datenspeicher außerhalb des Substrats adressiert, wo ein
oder mehrere aufeinanderfolgende Datenwörter gespeichert
sind;
ein Programmzählerregister (29, 30), dessen Inhalt einen
Bereich im Programmspeicher adressiert, wo ein oder mehrere
aufeinanderfolgende Makrobefehle gespeichert sind;
Mittel (33, 34) zum Erhöhen oder Erniedrigen des
Datenzeigerregisters zur Erleichterung der Erzeugung der Adresse im
Datenspeicher, in die Daten geschrieben oder aus der Daten
gelesen werden; und
Mittel (33, 34) zum Erhöhen oder Erniedrigen des
Programmzählerregisters zur Erleichterung der Erzeugung der Adresse
im Programmspeicher des nächsten durch den Computer
auszuführenden Makrobefehles.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/116,411 US4878174A (en) | 1987-11-03 | 1987-11-03 | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3853613D1 DE3853613D1 (de) | 1995-05-24 |
DE3853613T2 true DE3853613T2 (de) | 1995-08-24 |
Family
ID=22367030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3853613T Expired - Fee Related DE3853613T2 (de) | 1987-11-03 | 1988-11-02 | Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4878174A (de) |
EP (1) | EP0315275B1 (de) |
JP (1) | JP2651218B2 (de) |
KR (1) | KR890008699A (de) |
DE (1) | DE3853613T2 (de) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5187799A (en) * | 1988-05-17 | 1993-02-16 | Calif. Institute Of Technology | Arithmetic-stack processor which precalculates external stack address before needed by CPU for building high level language executing computers |
US5117487A (en) * | 1988-08-26 | 1992-05-26 | Kabushiki Kaisha Toshiba | Method for accessing microprocessor and microinstruction control type microprocessor including pointer register |
US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
JP3063006B2 (ja) * | 1989-02-08 | 2000-07-12 | インテル・コーポレーション | マイクロプログラムされるコンピュータ装置及びマイクロコードシーケンスメモリをアドレツシングする方法 |
US5092300A (en) * | 1991-01-31 | 1992-03-03 | Siemens Automotive L.P. | Plastic fuel rail end joint |
AU660011B2 (en) * | 1991-04-26 | 1995-06-08 | Nec Corporation | Method and system for fault coverage testing memory |
IT1251565B (it) * | 1991-09-10 | 1995-05-17 | Sgs Thomson Microelectronics | Procedimento di verifica delle memorie di un microcalcolatore programmato, mediante un microprogramma incorporato nello stesso microcalcolatore. |
US5262625A (en) * | 1991-11-15 | 1993-11-16 | Ncr Corporation | Multiple bar code decoding system and method |
US5245926A (en) * | 1992-03-11 | 1993-09-21 | United States Of America As Represented By The Secretary Of The Army | Generic electronic safe and arm |
ATE175043T1 (de) * | 1992-03-27 | 1999-01-15 | Siemens Ag | Integrierter mikroprozessor |
US5195343A (en) * | 1992-05-26 | 1993-03-23 | General Motors Corporation | Pusher apparatus for multi-axis tube bender |
US5426769A (en) * | 1993-08-26 | 1995-06-20 | Metalink Corp. | System and method for producing input/output expansion for single chip microcomputers |
US5758141A (en) * | 1995-02-10 | 1998-05-26 | International Business Machines Corporation | Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register |
WO1996034346A1 (en) * | 1995-04-28 | 1996-10-31 | Xilinx, Inc. | Microprocessor with distributed registers accessible by programmable logic device |
US6047361A (en) * | 1996-08-21 | 2000-04-04 | International Business Machines Corporation | Memory control device, with a common synchronous interface coupled thereto, for accessing asynchronous memory devices and different synchronous devices |
US7181484B2 (en) | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
US7599981B2 (en) | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
US7711763B2 (en) | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
US7162621B2 (en) | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US6605962B2 (en) | 2001-05-06 | 2003-08-12 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
US7076595B1 (en) | 2001-05-18 | 2006-07-11 | Xilinx, Inc. | Programmable logic device including programmable interface core and central processing unit |
US6798239B2 (en) | 2001-09-28 | 2004-09-28 | Xilinx, Inc. | Programmable gate array having interconnecting logic to support embedded fixed logic circuitry |
US7420392B2 (en) | 2001-09-28 | 2008-09-02 | Xilinx, Inc. | Programmable gate array and embedded circuitry initialization and processing |
US6781407B2 (en) | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US6996758B1 (en) | 2001-11-16 | 2006-02-07 | Xilinx, Inc. | Apparatus for testing an interconnecting logic fabric |
US6983405B1 (en) | 2001-11-16 | 2006-01-03 | Xilinx, Inc., | Method and apparatus for testing circuitry embedded within a field programmable gate array |
US6886092B1 (en) | 2001-11-19 | 2005-04-26 | Xilinx, Inc. | Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion |
US6976160B1 (en) | 2002-02-22 | 2005-12-13 | Xilinx, Inc. | Method and system for controlling default values of flip-flops in PGA/ASIC-based designs |
US6754882B1 (en) | 2002-02-22 | 2004-06-22 | Xilinx, Inc. | Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC) |
US6934922B1 (en) | 2002-02-27 | 2005-08-23 | Xilinx, Inc. | Timing performance analysis |
US7007121B1 (en) | 2002-02-27 | 2006-02-28 | Xilinx, Inc. | Method and apparatus for synchronized buses |
US7111217B1 (en) | 2002-02-28 | 2006-09-19 | Xilinx, Inc. | Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC) |
US6839874B1 (en) | 2002-02-28 | 2005-01-04 | Xilinx, Inc. | Method and apparatus for testing an embedded device |
US7187709B1 (en) | 2002-03-01 | 2007-03-06 | Xilinx, Inc. | High speed configurable transceiver architecture |
US7088767B1 (en) | 2002-03-01 | 2006-08-08 | Xilinx, Inc. | Method and apparatus for operating a transceiver in different data rates |
US7111220B1 (en) | 2002-03-01 | 2006-09-19 | Xilinx, Inc. | Network physical layer with embedded multi-standard CRC generator |
US6961919B1 (en) | 2002-03-04 | 2005-11-01 | Xilinx, Inc. | Method of designing integrated circuit having both configurable and fixed logic circuitry |
US6973405B1 (en) | 2002-05-22 | 2005-12-06 | Xilinx, Inc. | Programmable interactive verification agent |
US6772405B1 (en) | 2002-06-13 | 2004-08-03 | Xilinx, Inc. | Insertable block tile for interconnecting to a device embedded in an integrated circuit |
US7085973B1 (en) | 2002-07-09 | 2006-08-01 | Xilinx, Inc. | Testing address lines of a memory controller |
US7099426B1 (en) | 2002-09-03 | 2006-08-29 | Xilinx, Inc. | Flexible channel bonding and clock correction operations on a multi-block data path |
US7092865B1 (en) | 2002-09-10 | 2006-08-15 | Xilinx, Inc. | Method and apparatus for timing modeling |
US7421014B2 (en) | 2003-09-11 | 2008-09-02 | Xilinx, Inc. | Channel bonding of a plurality of multi-gigabit transceivers |
KR101503534B1 (ko) * | 2008-11-28 | 2015-03-17 | 삼성전자주식회사 | 가시광 통신 데이터를 송수신하는 장치 |
CN116737601B (zh) * | 2023-08-11 | 2023-11-17 | 深圳市航顺芯片技术研发有限公司 | 将外设寄存器扩展为***ram的方法、装置及存储介质 |
CN116909628B (zh) * | 2023-09-13 | 2023-12-26 | 腾讯科技(深圳)有限公司 | 直接内存访问***、数据搬运方法、设备及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1471528A (en) * | 1973-07-05 | 1977-04-27 | Pains Wessex Ltd | Smoke markers |
IT995722B (it) * | 1973-10-10 | 1975-11-20 | Honeywell Inf Systems Italia | Calcolatore microprogrammato a interior decore espansibile mediante riconoscimento e interpre tazione di codici di operazione aggiunti |
US3943495A (en) * | 1973-12-26 | 1976-03-09 | Xerox Corporation | Microprocessor with immediate and indirect addressing |
US3961251A (en) * | 1974-12-20 | 1976-06-01 | International Business Machines Corporation | Testing embedded arrays |
US4001788A (en) * | 1975-03-26 | 1977-01-04 | Honeywell Information Systems, Inc. | Pathfinder microprogram control system |
JPS51130138A (en) * | 1975-05-06 | 1976-11-12 | Panafacom Ltd | Data processing system for extended instructions |
US4093982A (en) * | 1976-05-03 | 1978-06-06 | International Business Machines Corporation | Microprocessor system |
US4173041A (en) * | 1976-05-24 | 1979-10-30 | International Business Machines Corporation | Auxiliary microcontrol mechanism for increasing the number of different control actions in a microprogrammed digital data processor having microwords of fixed length |
JPS5379341A (en) * | 1976-12-24 | 1978-07-13 | Hitachi Ltd | Instruction supplementation system |
JPS53139944A (en) * | 1977-05-13 | 1978-12-06 | Hitachi Ltd | Control system of direct memory access |
US4124890A (en) * | 1977-06-20 | 1978-11-07 | Vasenkov Alexandr A | Microprocessor computing system |
JPS5826584B2 (ja) * | 1979-05-21 | 1983-06-03 | 株式会社日立製作所 | デ−タ処理装置 |
US4291372A (en) * | 1979-06-27 | 1981-09-22 | Burroughs Corporation | Microprocessor system with specialized instruction format |
JPS56101250A (en) * | 1980-01-14 | 1981-08-13 | Toshiba Corp | Data processor |
US4403284A (en) * | 1980-11-24 | 1983-09-06 | Texas Instruments Incorporated | Microprocessor which detects leading 1 bit of instruction to obtain microcode entry point address |
US4450519A (en) * | 1980-11-24 | 1984-05-22 | Texas Instruments Incorporated | Psuedo-microprogramming in microprocessor in single-chip microprocessor with alternate IR loading from internal or external program memories |
-
1987
- 1987-11-03 US US07/116,411 patent/US4878174A/en not_active Expired - Lifetime
-
1988
- 1988-11-02 DE DE3853613T patent/DE3853613T2/de not_active Expired - Fee Related
- 1988-11-02 EP EP88202444A patent/EP0315275B1/de not_active Expired - Lifetime
- 1988-11-03 KR KR1019880014463A patent/KR890008699A/ko not_active Application Discontinuation
- 1988-11-04 JP JP63277547A patent/JP2651218B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE3853613D1 (de) | 1995-05-24 |
EP0315275A3 (en) | 1990-08-16 |
US4878174A (en) | 1989-10-31 |
JP2651218B2 (ja) | 1997-09-10 |
JPH0235523A (ja) | 1990-02-06 |
EP0315275A2 (de) | 1989-05-10 |
KR890008699A (ko) | 1989-07-12 |
EP0315275B1 (de) | 1995-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3853613T2 (de) | Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen. | |
DE1499722C2 (de) | Einrichtung zur Modifizierung von Informationswörtern | |
DE69230117T2 (de) | Verfahren und Gerät, die es Rechnerschaltkreisen ermöglichen, mit aktualisierten Versionen von Rechnersoftware zu funktionieren | |
DE2542740C2 (de) | Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung | |
DE69032342T2 (de) | Mikroprozessor und Verfahren zur Aufstellung seiner Peripheriefunktionen | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE2907181C2 (de) | Prozessor mit einem Befehlssatz-Modifizierregister | |
DE60217157T2 (de) | Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2540975A1 (de) | Multi-mikro-prozessor-einheit | |
DE3650165T2 (de) | Buszustandssteuerungsschaltung. | |
DE2910839A1 (de) | Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion | |
DE3689595T2 (de) | Datenverarbeitungssystem. | |
DE2555963A1 (de) | Einrichtung zur funktionsmodifizierung | |
DE2916658A1 (de) | Selbstprogrammierbarer mikroprozessor | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE4434529A1 (de) | Verfahren zum Verarbeiten eines Befehls mit Einsatzbedingung und Vorrichtung dazu | |
DE4429764C2 (de) | Zeitgebereinrichtung für einen Mikrocomputer | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE3121046C2 (de) | ||
DE3882425T2 (de) | Datenübertragungssteuerungsvorrichtung für Direktspeicherzugriff. | |
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
DE69132261T2 (de) | Rückwärts kompatibles Datenverarbeitungssystem | |
DE3410497A1 (de) | Rechneranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |