DE69615987T2 - Integrierte Schaltung mit programmierbarer Bus-Konfiguration - Google Patents

Integrierte Schaltung mit programmierbarer Bus-Konfiguration

Info

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
Application number
DE69615987T
Other languages
English (en)
Other versions
DE69615987D1 (de
Inventor
Michael Richard Betker
Trevor Edward Little
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of DE69615987D1 publication Critical patent/DE69615987D1/de
Application granted granted Critical
Publication of DE69615987T2 publication Critical patent/DE69615987T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/177Initialisation 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

    Hintergrund der Erfindung Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das programmierbare Konfigurieren einer integrierten Schaltung zur Verwendung mit einem Bus.
  • Beschreibung des Standes der Technik
  • 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.
  • Zusammenfassung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Detaillierte Beschreibung
  • 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:
  • Beispiel
  • 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.
DE69615987T 1995-11-20 1996-11-12 Integrierte Schaltung mit programmierbarer Bus-Konfiguration Expired - Fee Related DE69615987T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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