DE69615987T2 - Integrierte Schaltung mit programmierbarer Bus-Konfiguration - Google Patents
Integrierte Schaltung mit programmierbarer Bus-KonfigurationInfo
- Publication number
- DE69615987T2 DE69615987T2 DE69615987T DE69615987T DE69615987T2 DE 69615987 T2 DE69615987 T2 DE 69615987T2 DE 69615987 T DE69615987 T DE 69615987T DE 69615987 T DE69615987 T DE 69615987T DE 69615987 T2 DE69615987 T2 DE 69615987T2
- Authority
- DE
- Germany
- Prior art keywords
- bus
- integrated circuit
- data
- processor
- address
- 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
- 230000015654 memory Effects 0.000 claims description 44
- 238000000034 method Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 2
- 239000004020 conductor Substances 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Semiconductor Integrated Circuits (AREA)
- Microcomputers (AREA)
- Information Transfer Systems (AREA)
Description
- Die vorliegende Erfindung betrifft das programmierbare Konfigurieren einer integrierten Schaltung zur Verwendung mit einem Bus.
- Als integrierte Schaltungen (integrated circuit = IC) ausgebildete Prozessoren, die beispielsweise Mikroprozessoren, Mikrocontroller oder digitale Signalprozessoren sind, übertragen üblicherweise Adressen und Daten zu und von externen Einheiten über Mehrleitungsbusse. Diese Busse umfassen bei Datenbussen üblicherweise 8, 16, 32 oder 64 Leitungen und bei Adressbussen etwa 20 bis 30 Leitungen abhängig von der Speichergröße. Die Anzahl der Leiter in einem Bus wird als Busbreite (bus "width") bezeichnet. In vielen Fällen sind der Datenbus und der Adressbus getrennt. In anderen Fällen werden die Adressen im Zeitmultiplex mit den Daten auf denselben Busleitungen übertragen. Es ist in manchen Fällen angestrebt, dass ein Prozessor ein Interface für mehr als eine Busbreite aufweist. Beispielsweise kann ein Mikrocontroller ein Interface für einen Datenbus mit 8 Leitungen in einem Billigsystem oder alternativ ein Interface für einen Datenbus mit 16 Leitungen in einem höherwertigen System aufweisen. Allerdings ist es üblicherweise erforderlich den Prozessor vor dem Hochlaufen des Systems zu informieren mit welcher Art von Bus er kommunizieren (engl.: to interface) muss, um fehlerhafte Daten und/oder unkorrekte Anweisungen, die zu einem Systemfehler führen können, zu vermeiden.
- Das Konfigurieren des Prozessors derart, dass er mit dem gewählten Bustyp kommunizieren kann, wurde durch die Verwendung von Anschlüssen integrierter Schaltungen, die mit einer Spannungsquelle hoher oder niedriger Spannung (VDD oder VSS) verbunden sind, erreicht. Allerdings erfordert diese Technik üblicherweise zusätzliche Anschlüsse integrierter Schaltungen, die keinem anderen Zweck dienen. Es ist auch bekannt, dass Prozessoren dazu konfiguriert werden können, externe Pull-Up- oder Pull-Down-Transistoren zu verwenden, die an Anschlüsse angeschlossen sind, die einer Doppelnutzung dienen. Beispielsweise können die Anschlüsse während einer anfänglichen Konfigurationsperiode während des Systemstarts abgetastet werden und nach der anfänglichen Konfigurationsperiode dann als Eingangs- oder Ausgangsanschlüsse verwendet werden. Allerdings erfordert diese Technik Platz für die Konfigurationswiderstände auf der Leiterplatte. Derartiger Raum wird wertvoller, da höhere Packungsdichten und verschiedene Flip- Chip-Technologien zu einem geringeren Leiterabstand führen. Zusätzlich kann die Verwendung externer Widerstände das Testen der Schaltung auf der Leiterplatte, beispielsweise über JTAG (IEEE-Standard 1149.1) komplizieren und zu einem Leistungsverlust führen), während das System aktiv ist. Es ist auch bekannt, eine anfängliche Konfigurationsperiode zum Einstellen der Kontrollsignalmodi zu verwenden; z. B. aktive Logik "high" oder alternativ aktive Logik "low".
- Der Leser wird auf die GB-A-2095009 verwiesen.
- Eine Vorrichtung und ein Verfahren in Übereinstimmung mit der Erfindung sind in den Ansprüchen 1 bzw. 11 angegeben.
- Wir haben eine Technik zum Konfigurieren eines integrierten Prozessors entwickelt, so dass dieser mit externen Bussen verschiedener Typen kommunizieren kann. Konfigurationsdaten werden in einem Speicher, üblicherweise einem nichtflüchtigen Speicher, gespeichert und zu dem Prozessor während einer Konfigurationsperiode übertragen. Die Konfigurationsperiode liegt üblicherweise während der anfänglichen Einschaltsequenz, kann aber auch zu anderen Zeitpunkten auftreten.
- Fig. 1 zeigt veranschaulichend ein System, das die erfindungsgemäße Technik anwendet.
- Fig. 2 zeigt Konfigurationsdaten, die in ein Befehlswort eingebettet sind, das dazu verwendet werden kann, die erfindungsgemäße Technik auszuführen.
- Die Fig. 3 bis 5 zeigen Ausführungsbeispiele von Schaltungsanordnungen, die zum Ausführen der erfindungsgemäßen Technik verwendet werden können.
- Die folgende detaillierte Beschreibung betrifft einen konfigurierbaren Prozessor und ein System, das den Prozessor umfast. Während einer Konfigurationsperiode werden gespeicherte Konfigurationsdaten zu dem Prozessor übertragen und dazu verwendet, den Prozessor dahingehend zu konfigurieren, mit einem Bus einer gegebenen Busbreite zu kommunizieren. Die Konfigurationsdaten können in einem Nur-Lese-Speicher (read-only memory = ROM), einem elektrisch löschbaren Nur-Lese-Speicher (electrically erasable read-only memory = EEPROM), oder verschiedenen Arten von programmierbaren Nur-Lese-Speichern (programmable read-only memory = PROM), die es erlauben, dass die Daten bei dem anfänglichen Hochlaufen geholt werden, gespeichert werden. Die Konfigurationsdaten können alternativ beispielsweise in einem batteriegepufferten CMOS-Speicher, einem ferroelektrischen Speicher oder verschiedenen Arten magnetischer Speicher gespeichert werden. Alle derartigen Speicher werden im Folgendem als "nichtflüchtig" bezeichnet, da sie ihre gespeicherten Informationen sogar behalten, wenn die Systemspannung abgeschaltet wird. In vielen Fällen ist der Konfigurationsspeicher ein Bauteil, das auch für andere Zwecke erforderlich ist. Daher sind keine zusätzlichen Bauteile erforderlich, um die Erfindung auszuführen. Zudem sind üblicherweise auch keine zusätzlichen IC-Anschlüsse ("Pins") erforderlich.
- Fig. 1 zeigt ein veranschaulichendes Ausführungsbeispiel der Erfindung. Eine integrierte Schaltung umfasst einen Prozessor, der einen Bus-Controller 101 aufweist. Der Prozessor ist an einen 8-Bit-Speicher 102 und an einen 16-Bit-Speicher 103 angeschlossen. Der Prozessor 100, der bei diesem Ausführungsbeispiel ein Mikrocontroller ist, umfasst 24 Adressanschlüsse, die an den Adressbus 104 angeschlossen sind, Steueranschlüsse, die an Steuerleitungen 105 angeschlossen sind, und 16 Datenanschlüsse, die an den Datenbus 106 angeschlossen sind. Der Adressbus 104 umfasst einen ersten Abschnitt 107, der die Adressleitungen 23 bis 1 umfasst, und einen zweiten Abschnitt 108, der die Adressleitung 0 umfasst. Der 8-Bit- Speicher 102 ist über die Leitung 111 an die niedrigste Adressleitung 108 (ADDR [0]) und über Leitungen 112 an wenigstens einige der höheren Adressleitungen in dem Busabschnitt 107 angeschlossen. Der 16-Bit-Speicher 103 ist über Leitungen 113 an wenigstens einige der höheren Adressleitungen in dem Busabschnitt 107 aber nicht an die Leitung 108 (ADDR [0]) angeschlossen. Der Datenbus umfasst einen ersten 8-Bit- Abschnitt 109, der die Datenleitungen 0 bis 7 umfasst, und einen zweiten 8-Bit-Abschnitt 112, der die Datenleitungen 8 bis 15 umfasst. Die Daten-Eingangs-/Ausganganschlüsse des 8- Bit-Speichers 102 sind über Leitungen 114 an den Busabschnitt 109 angeschlossen, und die Daten- Eingangs-/Ausschlüsse des 16-Bit-Speichers 103 sind über Leitungen 115 bzw. 116 an die Busabschnitte 109 und 110 angeschlossen. Die Steuerleitungen 117 und 118 stellen ein allgemeines Lese-/Schreibsignal und ein getrenntes Chipfreigabesignal für die Speicher 102 bzw. 103 zur Verfügung. Der Bus-Controller nutzt das Chipfreigabesignal CE0 um in dem dargestellten Fall den 16-Bit-Speicher 103 als Konfigurationsspeicher auszuwählen. Allerdings kann auch der 8-Bit-Speicher 102 durch CE1 als Konfigurationsspeicher bei einer alternativen Ausführungsform ausgewählt werden. Eine Steuerleitung in dem Steuerbus 118 kann auch ein "Freigabesignal für ein oberes Byte" ("byte enable high" signal) ( ) liefern, und die Adress-/Steuerleitung 120 liefert ein "Freigabesignal für ein unteres Byte" ("byte enable low" signal) ( ) an den 16-Bit-Speicher 103, um ein unabhängiges Schreiben in die oberen und unteren 8-Bit-Untereinheiten zu ermöglichen.
- Es folgt nun eine veranschaulichende Ausführungsform der Funktion der erfindungsgemäßen Technik, wobei auch andere Funktionen und Schaltungsanordnungen möglich sind. Nach dem Systemstart (system power-up) (oder alternativ bei einem Rücksetzen des Systems) gibt der Prozessor eine anfängliche Abrufanweisung für Daten, z. B. vier Byte aus. Dieser Abruf kann ein Scheinabruf (Dummy Fetch) sein, bei dem zurückgegebene Werte nachfolgend durch den Prozessor verworfen und nicht als gültige Befehle verwendet werden. Allerdings unterteilt der Bus-Controller 101, der sich ursprünglich in einem 8-Bit-Modus befindet, die Übertragungen in 8-Bit-Abrufe und benutzt wenigstens ein Bit des ersten gelesenen Byte um die Busgrößeneinstellung in seinem Konfigurationsregister 119 zu ändern. Nachdem der Scheinabruf beendet ist, wird der Prozessor einen tatsächlichen Abruf an die Position des Rücksetzvektors (reset vector) ausgeben. Dieser tatsächliche Abruf wird dann durch die Bus-Steuerlogik geeignet bearbeitet, die sich dann in dem korrekten 8- oder 16-Bit-Modus befindet. Die Prozessoranweisungen sind beispielsweise entweder 16-Bit oder 32-Bit lang, was durch den Wert des niederwertigsten Bits (Bit 0) der Anweisung angegeben wird. Viele 16-Bit- Anweisungen besitzen 32-Bit-Äquivalente, so dass es möglich ist, das Befehlsgrößen-Bit (instruction size bit) (Bit 0) als das variable Bit, welches die benötigte Busgröße angibt, zu verwenden. Dies impliziert, dass der erste "Schein"-Abruf und der zweite "tatsächliche Abruf" an dieselbe Speicheradresse gerichtet sein kann, was den Entwurf vereinfacht.
- Mittels der erfindungsgemäßen Technik kann mehr als 1 Bit in einfacher Weise initialisiert werden. Dies wird verständlicher anhand des folgenden BEISPIELS:
- Der Konfigurationsabruf benutzt 3 Bit, alle aus dem ersten Byte (siehe Fig. 2) des Konfigurationsabrufes von Adresse 0, das von dem Bus 109 empfangen wird. Jedes dieser Bits korrespondiert zu einem Bit in dem Konfigurationsregister 119, welches vor dem Konfigurationsabruf (beispielsweise bei einem Zurücksetzen) überall auf "0" gesetzt ist. Der Prozessor gibt seinen ersten Abruf nach dem Konfigurationsabruf an die Adresse 0X000000 (in hexadezimaler Notation) aus und beginnt danach normal Befehle auszuführen. Daher sind in diesem Fall die Konfigurations-Bits Teil einer gültigen Anweisung an Adresse 0. Fig. 2 zeigt die zum Einstellen des Registers 119 verwendeten Bits wie folgt:
- Hit 7 bestimmt die Datenbreite des durch CE0 ausgewählten Speichers: 0 = 8 Bit, 1 = 16 Bit.
- Bit 5 bestimmt die physikalische Größe des Datenbusses: 0 = 8 Bit, 1 = 16 Bit.
- Bit 4 bestimmt, ob ein gegebener IC-Anschluss ( /DATA OUT) wie folgt verwendet wird: 0 = verwende den gegebenen Anschluss als allgemeinen Eingang/Ausgang; 1 = verwende den gegebenen Anschluss als .
- Man beachte, dass bei einem physikalischen Bus von 8 Bit die anderen 8 Anschlüsse der integrierten Schaltung als Eingangs- /Ausgangsanschlüsse für allgemeine Zwecke verwendet werden können. Es ist für Fachleute offensichtlich, dass ein 8-Bit- Zugriff auf eine 8-Bit-Einheit mittels eines einzigen Zugriffes durchgeführt werden kann, aber dass ein 16-Bit-Zugriff zwei separate Zugriffe auf eine 8-Bit-Einheit erfordert.
- Wie oben erwähnt, sind die 3 Hit in ein gültiges Befehlswort eingebettet. In dem dargestellten Fall ist dies eine 16-Bit- Anweisung für einen Sprung im Fall des Vorliegens einer wahren Bedingung ("jump if true"), wobei die oben erwähnten Bits 4, 5 und 7 in dem Distanzfeld (displacement field) eingebettet sind. Allerdings wird bei einem Zurücksetzen das Sprungbedingungs-Flag (jump condition flag) in dem Programm-Status- Befehl gelöscht, so dass der Sprung tatsächlich nicht ausgeführt wird. Wenn es angestrebt ist, sogar mehr Bits als oben dargestellt in dem ersten Abruf zu initialisieren, dann kann der Scheinabruf auf eine andere vordefinierte Position, als der Adresse des Zurücksetzvektors, gerichtet sein. Daher müssen die durch den Scheinabrufs abgerufenen Bits nicht Teil eines tatsächlichen Befehlswortes sein. Dies ermöglicht, dass viele zusätzliche Steuerregister während des Hochfahrens (start up) initialisiert werden. Auch, wenn die oben erwähnte Konfigurationsperiode üblicherweise während einer Systemhochfahr-Phase erfolgt, sind andere Zeitpunkte möglich. Beispielsweise kann das Einfügen einer Einsteck-Schaltungskarte (plug-in circuit card), die eine gegebene Busbreite aufweist, die Konfigurationsperiode auslösen, um dem System dadurch zu ermöglichen, mit Schaltungskarten, die unterschiedliche Busbreiten aufweisen, zu kommunizieren.
- Die Schaltungsanordnung, die in dem Bus-Controller zum Konfigurieren des Prozessors zur Verwendung mit einer gegebenen physikalischen Busgröße (z. B. mit 8 oder 16 Leitern) verwendet werden kann, ist in Fig. 3 dargestellt. Dargestellte Logikgatter sind Beispiele einzelne Einheiten in dem Mehrleitungsbus und sind im Folgenden im Singular bezeichnet. Die Leitungen werden abhängig davon, wie es geeignet ist, als einzelne Leitungen oder Busse bezeichnet. Diese Schaltungsanordnung wählt aus, ob 8 Anschlüsse ("Pins") der integrierten Schaltung als allgemeine Eingangs-/Ausgangspins oder alternativ als Teil des in Fig. 1 dargestellten Datenbusses verwendet werden. Das Busgrößen-Konfigurationsbit (Hit 5 in obigem Beispiel) wird auf die Leitung 301 gegeben, die an den Steuereingang des Multiplexers 302 und einen Eingang des ODER- Gatters 303 angeschlossen ist. Wenn das Busgrößen- Konfigurationsbit "1" ist, befindet sich die Leitung 301 auf einem High-Pegel und wählt den internen Bus 304 für die Verbindung zu dem multiplexierten Ausgangsbus 306, dem Inverter 307, dem dreistufigen Ausgangpuffer 309 und der externen Busleitung 311 aus. Wenn sich die Leitung 301 auf einem High- Pegel befindet und die Schreibleitung 317 aktiviert ist (High), befindet sich der Ausgang des UND-Gatters auf einem High-Pegel. Dadurch befindet sich der Ausgang des ODER- Gatters 303 auf einem High-Pegel und legt eine hohe Spannung an die Steuerleitung CL 310 des Ausgangspuffers und dadurch einen niedrigen Spannungspegel an die komplementäre Steuerleitung CLB 308 an und gibt dadurch den Ausgangspuffer 309 frei. Wenn das Bussgrößen-Konfigurationsbit "0" ist, befindet sich die Leitung auf einem Low-Pegel und wählt Daten der parallelen Anschlüsse (Bits 7 - 0) an Leitung 301 aus, die an den externen Bus 311 angelegt werden.
- Die Richtung des Datenflusses (Eingabe oder Ausgabe) für jedes Bit eines parallelen Anschlusses in Fig. 3 wird wie folgt abhängig davon bestimmt, welcher Leiter des Busses 312 sich auf einem High-Pegel befindet: Wenn sich die Leitung 301 auf einem Low-Pegel befindet, befindet sich der Ausgang des Inverters 315 auf einem High-Pegel und ermöglicht, dass die Spannung in einer gegebenen Richtung an der Steuerleiterung 312 das UND-Gatter 316 passiert und die Spannung an einer Leitung des Busses 310 steuert. Eine Leitung für einen hohen Spannungspegel an Bus 310 aktiviert den zugehörigen Puffer 309 und steuert dadurch die zugehörigen externen Bus- Leitungen 311 als Ausgang an. Ein Leiter für einen niedrigen Spannungspegel an Bus 310 versetzt den zugehörigen Puffer 309 in einen Zustand mit einem hohen Ausgangswiderstand (tristate) und ermöglicht somit, dass die zugehörige externe Bus- Leitung 311 über den Eingangspuffer 313 als Eingang dient.
- Oben wurde eine Anordnung des Prozessors beschrieben, der mit Datenbussen unterschiedlicher Breiten kommuniziert. Allerdings können auch andere Controller-Schaltungen zum Steuern der Konfiguration des Adressbusses verwendet werden. Beispielsweise ist es in der Speichertechnik bekannt, ein "Byte- Freigabe"-Signal (BE) zu verwenden, um ein gegebenes Byte in einem Speicher, der eine Datenbreite von zwei oder mehr Byte umfasst, zu adressieren. Beispielsweise kann ein -Signal dazu verwendet werden, das niedrigere Byte in einem Speicher, der 16 Datenleitungen umfasst ("16-Bit-Speicher"), zu adressieren. In ähnlicher Weise kann ein -Signal dazu verwendet werden, das obere Byte zu adressieren. Die Verwendung dieser Signale wird gesteuert durch die Bits 4 und 7 in dem oben angegebenen Beispiel, und die Steuerschaltung kann mit Multiplexern in analoger Weise zu der Schaltungsanordnung von Fig. 3 ausgeführt werden. Der Adressbus stellt dann 23 Adressbits A [23:21] zur Verfügung, wobei und durch separate Leitungen (z. B. 105, 108) in dem beispielhaften Fall mit 24 Leitern zur Verfügung gestellt werden. Andererseits stellen bei anderen Speichertypen, z. B. einem Speicher, der 8 Datenleitungen ("8-Bit-Speicher") aufweist, alle der Adressbus- Leitungen (107, 108) Adressbits, d. h. A[23:0], bei dem beispielhaften Adressbus mit 24 Bits zur Verfügung.
- Eine geeignete Schaltungsanordnung zum Auswählen, ob A0 (Adresse 0) oder einem Speicher zugeführt wird, ist in Fig. 4 gezeigt. Der interne Adressbus 401, der die Adressbits A[23:0] trägt, wird in Adressbus 402, der die Adressbits A[23:1] bereitstellt, und die Adressleitung 403, die das Bit A[0] trägt, unterteilt. Die Leitung 403 ist an einen Eingang des Multiplexers 404 angeschlossen. Das interne -Signal auf Leitung 405 wird an den anderen Eingang des Multiplexers 404 geliefert. Der Multiplexer 404 wird gesteuert durch die Leitung 406, die "0" ist, wenn auf einen 8-bit-Speicher zugegriffen wird, oder die "1" ist, wenn auf einen 16-bit- Speicher zugegriffen wird, und legt entweder A[0] oder alternativ an die Leitung 407.
- Eine Schaltungsanordnung, die für die Auswahl geeignet ist, ob zugeführt wird, ist in Fig. 5 dargestellt. Das Freigabesignal an Leitung 501 wird dazu verwendet, den Multiplexer 502 zu steuern, der das -Signal auf der Eingangsleitung 503 und ein Daten-Ausgangssignal auf der Eingangsleitung 504 empfängt. Die Multiplexer-Ausgangsleitung 505 liefert das ausgewählte Signal an den Inverter 506 und den Tristate-Ausgangspuffer 507. Das Freigabesignal für BE1 wird auch einem Eingang des ODER-Gatters 508 zugeführt, welches ein "Bit 9"-Richtungssteuerungssignal an Leitung 509 empfängt. Wenn die BE1-Freigabe einen High-Pegel ("1") annimmt, legt das ODER-Gatter 508 ein High-Signal auf die Puffer- Steuerleitung 510. Zusätzlich wird ein komplementäres (Low) Signal an die Puffersteuerleitung 511 angelegt, so dass der Tristate-Puffer 507 freigegeben wird, das -Signal an Leitung 512 anzulegen. Wenn das BE1-Freigabesignal sich auf einem Low-Pegel befindet ("0"), wird das Datenausgangs-Signal an Leitung 504 des parallelen Anschlusses durch den Multiplexer 502 ausgewählt und somit an den Tristate-Puffer 507 angelegt. Der Puffer 507 ist dann gesteuert durch das "Bit 9"- Richtungssteuerungssignal an Leitung 509, die an den Eingang des ODER-Gatters 508 angeschlossen ist. Wenn sich die Leitung 509 auf einem High-Pegel befindet, befindet sich die Leitung 510 auf einem High-Pegel (und die Leitung 511 auf einem Low- Pegel) wie zuvor, so dass das Datenausgangssignal durch den Puffer 507 an die Leitung 512 gelegt wird. Man beachte, wenn das "Bit 9"-Richtungssteuerungssignal an Leitung 509 auf einem Low-Pegel ("0") ist, dann legt das ODER-Gatter 508 ein Low-Signal an die Puffersteuerleitung 510 (und ein komplementäres High-Signal wird an die Leitung 511 angelegt), so das die der Puffer 507 den Ausgangszustand mit hohem Widerstand annimmt. Dies ermöglicht, dass Leitung 512 als Eingangsleitung für andere Einheiten (nicht dargestellt) der integrierten Schaltung dient.
- Die veranschaulichende Schaltungsanordnung gemäß der Fig. 3, 4 und 5 zeigt, wie IC-Anschlüsse für zwei Zwecke mittels der erfindungsgemäßen Technik verwendet werden können. Allerdings kann eine Vielzahl anderer Logik-Schaltungen zur Implementierung dieser Funktionen verwendet werden. Man beachte auch, dass obwohl das obige Ausführungsbeispiel mit separaten Adress- und Datenbussen dargestellt wurde, die vorliegende Technik auch auf multiplexierte Adress-/Datenbusse angewendet werden kann, wie dies für einen Fachmann offensichtlich ist. Zusätzlich zu der oben gezeigten Konfiguration der Daten- und Adressbusse kann die Erfindung auch für andere Konfigurationszwecke verwendet werden. Beispielsweise kann die Polarität (aktiv "high" oder aktiv "low") der Adressleitungen, Steuerleitungen und/oder Datenleitungen durch die erfindungsgemäße Technik eingestellt werden. Die Steuersignal-Modi können ebenfalls eingestellt werden, beispielsweise, ob Lese- /Schreib- und Chipauswahlsignale verwendet werden, bei einer Kommunikation mit Motorola-Mikroprozessoren, oder ob alternativ Lese- und Schreibsignale verwendet werden, bei einer Kommunikation mit Intel-Miroprozessoren. Einige oder alle der genannten Möglichkeiten können zusätzlich oder anstelle der oben beschrieben Daten- und Adressbusse verwendet werden. Alle Parameter, die zum Konfigurieren einer integrierten Schaltung mittels der erfindungsgemäßen Technik verwendet werden könne, werden als "Konfigurationsinformation" angesehen.
- Während eine Vielzahl von Konfigurationen mittels der erfindungsgemäßen Technik durchgeführt werden können, sollten sich die Daten in dem Konfigurationsspeicher selbst in einer Form befinden, die durch den Bus-Controller während der Konfigurationsphase verwendet werden können. Nach Abschluss der hierin beschriebenen Konfigurationsphase ist der Prozessor in der integrierten Schaltung konfiguriert für einen normalen Betrieb hinsichtlich einer Kommunikation mit einem oder mehreren externen Bussen. Danach können andere Konfigurationen durchgeführt werden, beispielsweise das, was Fachleute üblicherweise als "Boot-Sequenzen" bezeichnen.
Claims (20)
1. Integrierte Schaltungsanordnung mit einem Prozessor (100)
und einer vorgegebenen Anzahl von Anschlüssen, die für eine
Kommunikation mit einem externen Bus (101, 106) eines
ausgewählten Typs konfiguriert sein können,
dadurch gekennzeichnet, dass die integrierte Schaltung
weiterhin einen Bus-Controller (119) aufweist zum Bereitstellen
einer anfänglichen Adresse für einen externen Speicher (103)
über den externen Bus während einer Bus-Konfigurationsperiode
und zum Abrufen einer Bus-Konfigurationsinformation von dem
externen Speicher über den externen Bus, wobei das Abrufen
eine geringere Anzahl von Anschlüssen als die vorgegebene
Anzahl nutzt, und zum Konfigurieren der integrierten Schaltung
derart, das der Prozessor über den externen Bus Daten
übermitteln kann.
2. Integrierte Schaltung nach Anspruch 1, bei der der
Controller die Bus-Konfigurationsinformation während eines
anfänglichen Abrufs, der nicht zu einem durch den Prozessor
ausgeführten Befehl führt, abruft.
3. Integrierte Schaltung nach Anspruch 1, bei der der
Controller die Bus-Konfigurationsinformation während eines
anfänglichen Abrufes, der auch ein durch den Prozessor
ausgeführtes Befehlswort abruft, abruft.
4. Integrierte Schaltung nach einem der vorangehenden
Ansprüche, bei der der Speicher ein nichtflüchtiger Speicher ist.
5. Integrierte Schaltung nach einem der vorangehenden
Ansprüche, bei der die Bus-Konfigurationsperiode aus dem Hochlaufen
der integrierten Schaltung resultiert.
6. Integrierte Schaltung nach einem der vorangehenden
Ansprüche, bei der die Bus-Konfigurationsperiode aus dem
Zurücksetzen der integrierten Schaltung resultiert.
7. Integrierte Schaltung nach einem der vorangehenden
Ansprüche, bei der das Konfigurieren das Auswählen der Anzahl von
Datenanschlüssen, über welche die integrierte Schaltung mit
dem Bus kommuniziert, umfasst.
8. Integrierte Schaltung nach einem der vorangehenden
Ansprüche, bei der das Konfigurieren das Auswählen der Anzahl von
Adress-Bits, mit welchen die integrierte Schaltung mit dem
Bus kommuniziert, umfasst.
9. Integrierte Schaltung nach einem der vorangehenden
Ansprüche, bei der die Anschlüsse multiplexierte
Adress-/Datenanschlüsse enthalten.
10. Integrierte Schaltung nach einem der Ansprüche 1 bis 8,
bei der die Anschlüsse separate Adressanschlüsse und
Datenanschlüsse enthalten.
11. Verfahren zum Konfigurieren einer integrierten Schaltung,
die einen Prozessor und eine vorgegebene Anzahl von
Anschlüssen, die zur Kommunikation mit einem externen Bus eines
ausgewählten Typs konfiguriert sein können, aufweist,
gekennzeichnet durch das Bereitstellen einer anfänglichen
Adresse an einen externen Speicher über den externen Bus und
Abrufen von Bus-Konfigurationsinformationen von dem externen
Speicher über den externen Bus während einer
Bus-Konfigurationsperiode, wobei das Abrufen eine geringere Anzahl von
Anschlüssen als die vorgegebene Anzahl nutzt, und Konfigurieren
der integrierten Schaltung derart, dass der Prozessor Daten
über den Bus übermitteln kann.
12. Verfahren nach Anspruch 11, bei dem das Abrufen die Bus-
Konfigurationsinformation während eines anfänglichen
Abrufens, dass nicht zu einem durch den Prozessor ausgeführten
Befehl führt, abruft.
13. Verfahren nach Anspruch 11, bei dem das Abrufen die Bus-
Kofigurationsinformation während einer anfänglichen
Abrufperiode, die auch ein durch den Prozessor ausgeführtes
Befehlswort abruft, abruft.
14. Verfahren nach einem der Ansprüche 11 bis 13, bei dem der
Speicher ein nichtflüchtiger Speicher ist.
15. Verfahren nach einem der Ansprüche 11 bis 14, bei dem die
Bus-Konfigurationsperiode aus dem Hochlaufen der integrierten
Schaltung resultiert.
16. Verfahren nach einem der Ansprüche 11 bis 14, bei dem die
Bus-Konfigurationsperiode aus dem Rücksetzen der integrierten
Schaltung resultiert.
17. Verfahren nach einem der Ansprüche 11 bis 16, bei dem das
Konfigurieren das Auswählen der Anzahl von Datenanschlüssen,
über welche die integrierte Schaltung mit dem Bus
kommuniziert, umfasst.
18. Verfahren nach einem der Ansprüche 11 bis 17, bei dem das
Konfigurieren das Auswählen der Anzahl von Adressbits, mit
welchen die integrierte Schaltung mit dem Bus kommuniziert,
umfasst.
19. Verfahren nach einem der Ansprüche 11 bis 18, bei dem die
Anschlüsse multiplexierte Adress-/Datenanschlüsse umfassen.
20. Verfahren nach einem der Ansprüche 11 bis 18, bei dem die
Anschlüsse separate Adress- und Datenanschlüsse umfassen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/559,868 US5909557A (en) | 1995-11-20 | 1995-11-20 | Integrated circuit with programmable bus configuration |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69615987D1 DE69615987D1 (de) | 2001-11-22 |
DE69615987T2 true DE69615987T2 (de) | 2002-04-25 |
Family
ID=24235386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69615987T Expired - Fee Related DE69615987T2 (de) | 1995-11-20 | 1996-11-12 | Integrierte Schaltung mit programmierbarer Bus-Konfiguration |
Country Status (4)
Country | Link |
---|---|
US (1) | US5909557A (de) |
EP (1) | EP0774713B1 (de) |
JP (1) | JP3811231B2 (de) |
DE (1) | DE69615987T2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10394291B4 (de) * | 2003-08-29 | 2012-10-11 | Lantiq Deutschland Gmbh | Datenschalter und Kommunikationssystem, das diesen Datenschalter verwendet |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10326224A (ja) * | 1997-05-27 | 1998-12-08 | Nec Corp | ディジタル・シグナル・プロセッサ |
US6624761B2 (en) | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
US6233632B1 (en) * | 1999-01-07 | 2001-05-15 | Vlsi Technology, Inc. | Optimizing peripheral component interconnect transactions in a mixed 32/64-bit environment by eliminating unnecessary data transfers |
US6604158B1 (en) | 1999-03-11 | 2003-08-05 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
US6601104B1 (en) | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
DE19952034A1 (de) * | 1999-10-28 | 2001-05-10 | Infineon Technologies Ag | Verfahren zum Initialisieren oder Konfigurieren einer elektrischen Schaltung |
US6625727B1 (en) * | 1999-11-23 | 2003-09-23 | Motorola, Inc. | Apparatus and method for configuring a data processing system by retrieving a configuration value from storage device using reset vector and configuring parameters after reset |
US6748457B2 (en) | 2000-02-03 | 2004-06-08 | Realtime Data, Llc | Data storewidth accelerator |
US8692695B2 (en) | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US9143546B2 (en) | 2000-10-03 | 2015-09-22 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US7417568B2 (en) | 2000-10-03 | 2008-08-26 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US7386046B2 (en) | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
GB0105609D0 (en) * | 2001-03-07 | 2001-04-25 | Nec Technologies Uk Ltd | Configuration of features of a digital processing device |
US6845444B2 (en) | 2001-08-23 | 2005-01-18 | Silicon Integrated Systems Corp. | Method and apparatus for reducing strapping devices |
US20030097510A1 (en) * | 2001-11-20 | 2003-05-22 | Francis Joseph | System-On-Chip architecture that utilizes FeRAM and re-configurable hardware |
KR100466980B1 (ko) * | 2002-01-15 | 2005-01-24 | 삼성전자주식회사 | 낸드 플래시 메모리 장치 |
KR100468761B1 (ko) * | 2002-08-23 | 2005-01-29 | 삼성전자주식회사 | 분할된 시스템 데이터 버스에 연결되는 메모리 모듈을구비하는 반도체 메모리 시스템 |
US7366872B2 (en) * | 2003-12-30 | 2008-04-29 | Intel Corporation | Method for addressing configuration registers by scanning for a structure in configuration space and adding a known offset |
CN101031900A (zh) * | 2004-07-30 | 2007-09-05 | 皇家飞利浦电子股份有限公司 | 可适应可变外部存储器的大小和字节存储顺序的数据处理设备 |
US8832341B2 (en) | 2011-09-27 | 2014-09-09 | International Business Machines Corporation | Dynamically determining a primary or slave assignment based on receiving a power signal from the cable at the port of a device |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4272829A (en) * | 1977-12-29 | 1981-06-09 | Ncr Corporation | Reconfigurable register and logic circuitry device for selective connection to external buses |
US4519028A (en) * | 1981-02-17 | 1985-05-21 | Digital Equipment Corporation | CPU with multi-stage mode register for defining CPU operating environment including charging its communications protocol |
US4940909A (en) * | 1989-05-12 | 1990-07-10 | Plus Logic, Inc. | Configuration control circuit for programmable logic devices |
US5361365A (en) * | 1989-11-06 | 1994-11-01 | Sharp Kabushiki Kaisha | Microprocessor for selectively performing cold and warm starts |
US5175831A (en) * | 1989-12-05 | 1992-12-29 | Zilog, Inc. | System register initialization technique employing a non-volatile/read only memory |
EP0433818B1 (de) * | 1989-12-19 | 1998-11-11 | 3Com Corporation | Konfigurationsverfahren für eine Rechnerbus-Adapterkarte ohne Brücken oder Schalter |
JPH03204016A (ja) * | 1989-12-29 | 1991-09-05 | Nippon Steel Corp | カード型ic実装ボード |
US5671355A (en) * | 1992-06-26 | 1997-09-23 | Predacomm, Inc. | Reconfigurable network interface apparatus and method |
US5428748A (en) * | 1992-09-24 | 1995-06-27 | National Semiconductor Corporation | Method and apparatus for automatically configuring a computer peripheral |
EP0619546A1 (de) * | 1993-04-05 | 1994-10-12 | Motorola, Inc. | Programmierbare Speichersteuerungsvorrichtung und Verfahren zu ihren Konfigurierung |
US5414380A (en) * | 1993-04-19 | 1995-05-09 | Motorola, Inc. | Integrated circuit with an active-level configurable and method therefor |
JPH0736858A (ja) * | 1993-07-21 | 1995-02-07 | Hitachi Ltd | 信号処理プロセッサ |
US5594874A (en) * | 1993-09-30 | 1997-01-14 | Cirrus Logic, Inc. | Automatic bus setting, sensing and switching interface unit |
US5623687A (en) * | 1995-06-26 | 1997-04-22 | Motorola | Reset configuration in a data processing system and method therefor |
-
1995
- 1995-11-20 US US08/559,868 patent/US5909557A/en not_active Expired - Lifetime
-
1996
- 1996-10-22 JP JP27926296A patent/JP3811231B2/ja not_active Expired - Fee Related
- 1996-11-12 EP EP96308169A patent/EP0774713B1/de not_active Expired - Lifetime
- 1996-11-12 DE DE69615987T patent/DE69615987T2/de not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10394291B4 (de) * | 2003-08-29 | 2012-10-11 | Lantiq Deutschland Gmbh | Datenschalter und Kommunikationssystem, das diesen Datenschalter verwendet |
Also Published As
Publication number | Publication date |
---|---|
EP0774713A1 (de) | 1997-05-21 |
DE69615987D1 (de) | 2001-11-22 |
US5909557A (en) | 1999-06-01 |
JPH09153025A (ja) | 1997-06-10 |
JP3811231B2 (ja) | 2006-08-16 |
EP0774713B1 (de) | 2001-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69615987T2 (de) | Integrierte Schaltung mit programmierbarer Bus-Konfiguration | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE3876780T2 (de) | Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung. | |
DE4329336C2 (de) | Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors | |
US4694394A (en) | Microprocessor system having a multiplexed address/data bus which communicates with a plurality of memory and input/output devices including TTL output gates | |
DE3486085T2 (de) | Zentrale Verarbeitungseinheit für einen Digitalrechner. | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE102004057756B4 (de) | USB-Steuerungseinrichtung mit OTG-Steuerungseinheit | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE4418892C2 (de) | Mikrocomputer | |
DE3515802C2 (de) | ||
DE69423077T2 (de) | Steuerungsvorrichtungen für nichtflüchtige Speicheranordnungen | |
DE69525129T2 (de) | Verfahren und Datenprozessor zum durchsichtigem Betrieb in einem Hintergrundmodus | |
DE10231956A1 (de) | Verfahren und Vorrichtung zur systeminternen Programmierung durch einen gemeinsamen Verbindungspunkt von programmierbaren logischen Bauelementen auf mehreren Schaltungsplatinen eines Systems | |
DE69315192T2 (de) | Datenverarbeitungssystem und -Verfahren mit einem erweitbaren Register | |
DE2533737A1 (de) | Datenprozessor | |
DE68927306T2 (de) | Emulationssystem, fähig zur Anpassung an Mikrorechner mit verschiedenen On-Chip-Speicherkapazitäten | |
DE3911721C2 (de) | ||
DE69429309T2 (de) | Adressendekoder mit geringer Schaltungsgrösse und Adressbereicherweiterungsmöglichkeit | |
DE102004012279B3 (de) | Verfahren und Vorrichtung zum Speicherselbsttest von eingebetteten Speichern in Halbleiterchips | |
DE19652290C2 (de) | Mikrocomputer | |
DE69034165T2 (de) | Mikroprozessor mit einer Vielzahl von Buskonfigurationen | |
DE102021101458A1 (de) | Master- und Slave-Prozessoren zum Konfigurieren von Subsystemen | |
DE69734910T2 (de) | Verfahren zur Identifizierung eines Peripheriegerätes in einem Halbleitergerät | |
DE68926541T2 (de) | Adressenmodifizierungsschaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |