DE69633166T2 - Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration - Google Patents

Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration Download PDF

Info

Publication number
DE69633166T2
DE69633166T2 DE69633166T DE69633166T DE69633166T2 DE 69633166 T2 DE69633166 T2 DE 69633166T2 DE 69633166 T DE69633166 T DE 69633166T DE 69633166 T DE69633166 T DE 69633166T DE 69633166 T2 DE69633166 T2 DE 69633166T2
Authority
DE
Germany
Prior art keywords
bus
signal
peripheral circuits
signals
communicating
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
DE69633166T
Other languages
English (en)
Other versions
DE69633166D1 (de
Inventor
Warren Ralph HAINES
Craig Dan O'NEILL
C. Stephen PRIES
B. Kent WATERSON
S. David WEINMAN
J. Michael SHAY
Helen Jianhua PANG
R. Daniel HERRINGTON
J. Brian MARLEY
R. John GUNTHER
Mario Nemirovsky
Alexander Perez
A. James COLGAN
J. Robert DIVIVIER
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
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 National Semiconductor Corp filed Critical National Semiconductor Corp
Application granted granted Critical
Publication of DE69633166D1 publication Critical patent/DE69633166D1/de
Publication of DE69633166T2 publication Critical patent/DE69633166T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft integrierte Schaltkreise, die eine Zentralverarbeitungseinheit und eine Anzahl von peripheren Schaltungsfunktionen enthalten, und insbesondere solche integrierten Schaltkreise, in denen die Zentralverarbeitungseinheit und die peripheren Schaltungsfunktionen sowohl untereinander als auch mit externen Schaltungsfunktionen kommunizieren.
  • 2. Beschreibung des Standes der Technik
  • Aufgrund des Bedarfs für eine Abwärtskompatibilität mit älteren Generationen ist der x86 einer der komplexesten Befehlssatz-Architektur-(CISC)Mikroprozessoren. Der große und komplexe i486 weist beispielsweise über 400 Befehle auf, die implementiert werden müssen, um die Abwärtskompatibilität mit den x86-Prozessoren der älteren Generationen aufrechtzuerhalten. Eine solche Komplexität hat zu wenig kompatiblen Prozessoren oder Steuereinheiten geführt, die zur Verwendung in eingebetteten Steueranwendungen geeignet sind, z. B. einfach in der Konstruktion, klein in der Größe und niedrig in den Kosten. Folglich wäre es erwünscht, einen Prozessor oder eine Steuereinheit zu haben, der bzw. die x86-kompatibel und dennoch für kostengünstige eingebettete Steueranwendungen geeignet ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein integrierter Schaltkreis gemäß der vorliegenden Erfindung umfasst mehrere Schaltungen und Funktionen, die mehrere interne Signalbusse gemäß einem verteilten Buszugriff und einer Steuerentscheidung gemeinsam nutzen. Dies sorgt für das Erzielen einer maximalen Leistung von den Schaltungsfunktionen, sowohl innerhalb als auch außerhalb eines solchen integrierten Schaltkreises, auf die am häufigsten zugegriffen wird, während dennoch für das Erzielen einer hohen Leistung von internen und externen Schaltungsfunktionen gesorgt wird, auf die weniger häufig zugegriffen wird.
  • Ein integrierter Schaltkreis (IC) mit mehreren Schaltungsfunktionen und Signalbussen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung umfasst drei Signalbusse, einen Satz von Hauptsteuereinheiten und zwei Sätze von Peripherieschaltungen. Der erste Signalbus dient zum Übertragen eines ersten Satzes von Bussignalen innerhalb des IC, der zweite Signalbus dient zum Übertragen eines zweiten Satzes von Bussignalen innerhalb des IC und der dritte Signalbus dient zum Koppeln mit einer externen Schaltung und zum Übertragen eines dritten Satzes von Bussignalen zwischen dem IC und einer solchen externen Schaltung. Die Hauptsteuereinheiten sind mit dem ersten Signalbus gekoppelt und dienen zum selektiven Zugreifen auf den ersten Signalbus und zum Steuern der Übertragung des ersten Satzes von Bussignalen. Ein Satz von Peripherieschaltungen ist mit dem ersten, dem zweiten und dem dritten Signalbus gekoppelt und dient zum selektiven Kommunizieren mit den Hauptsteuereinheiten über den ersten Signalbus und den ersten Satz von Bussignalen, zum selektiven Zugreifen auf den zweiten Signalbus und zum Steuern der Übertragung des zweiten Satzes von Bussignalen und zum selektiven Zugreifen auf den dritten Signalbus und zum Steuern der Übertragung des dritten Satzes von Bussignalen. Der andere Satz von Peripherieschaltungen ist mit dem zweiten Signalbus gekoppelt und dient zum selektiven Kommunizieren mit dem ersten Satz von Peripherieschaltungen über den zweiten Signalbus und den zweiten Satz von Bussignalen.
  • Ein integrierter Schaltkreis (IC) mit mehreren Schaltungsfunktionen, die durch mehrere Signalbusse miteinander verbunden sind und diese gemäß einem verteilten Buszugriff und einer Steuerentscheidung gemeinsam nutzen, gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung umfasst einen Satz von Signalbussen, einen Satz von Hauptsteuereinheiten und zwei Sätze von Peripherieschaltungen. Die Signalbusse dienen zum Übertragen eines Satzes von Bussignalen. Die Hauptsteuereinheiten sind mit einer ersten Teilmenge der Signalbusse gekoppelt und dienen zum Kommunizieren miteinander und dementsprechend zum Feststellen, welcher von diesen zu einem Hauptbus mit Zugriff auf einen und Steuerung eines ersten der Signalbusse wird, und dementsprechend zum Steuern der Übertragung einer ersten Teilmenge der Bussignale. Ein Satz von Peripherieschaltungen ist mit der ersten Teilmenge und einer zweiten Teilmenge der Signalbusse gekoppelt. Diese Peripherieschaltungen dienen zum Kommunizieren miteinander und dementsprechend zum Feststellen, welche von diesen mit dem Hauptbus kommuniziert und Zugriff auf einen und die Steuerung eines zweiten der Signalbusse erlangt, und dementsprechend zum Kommunizieren mit dem Hauptbus und zum Steuern der Übertragung einer zweiten Teilmenge der Bussignale. Der andere Satz von Peripherieschaltungen ist mit einer dritten Teilmenge der Signalbusse gekoppelt. Diese anderen Peripherieschaltungen dienen zum Kommunizieren miteinander und dementsprechend zum Feststellen, welche von diesen Zugriff auf einen dritten der Signalbusse erlangt, und dementsprechend zum Übertragen einer dritten Teilmenge der Bussignale.
  • Ein Mikroprozessor, der Befehle zum Verarbeiten von Daten gemäß periodischen Zyklen eines Mikroprozessor-Systemtakts ausführt, umfasst eine Ausführungsstufe, eine Decodierstufe und eine Einspeicherstufe. Die Ausführungsstufe nimmt auf Befehle und Operanden Bezug, die beim Ausführen von Befehlen verwendet werden, führt die Befehle aus, um Ergebnisse zu erzeugen, und berechnet Speicheradressen, die beim Abrufen der Befehle und Operanden aus dem Speicher und beim Schreiben von Ergebnissen in den Speicher verwendet werden. Die Decodierstufe ruft Befehle ab, auf die durch die Ausführungsstufe Bezug genommen wird, decodiert die abgerufenen Befehle in eine Form, die von der Ausführungsstufe verwendet werden kann, und liefert die decodierten Befehle zur Ausführungsstufe. Die Einspeicherstufe schreibt die Ergebnisse in den Speicher an den Speicheradressen, die von der Ausführungseinheit berechnet werden.
  • In einem weiteren Ausführungsbeispiel umfasst ein Mikroprozessor, der Befehle zum Verarbeiten von Daten gemäß periodischen Zyklen eines Mikroprozessor-Systemtakts ausführt, eine Ausführungsstufe, eine Decodierstufe und eine Einspeicherstufe. Die Ausführungsstufe umfasst eine Ausführungseinheit, die Mikrocodebefehle und Operanden verwendet, um Rechen- und logische Operationen durchzuführen, um Ergebnisse zu erzeugen, und die Speicheradressen berechnet, die beim Abrufen der Befehle und Operanden und beim Schreiben der Ergebnisse in den Speicher verwendet werden. Die Ausführungsstufe umfasst ferner eine Registerdatei, die Operanden speichert, die von der Ausführungseinheit verwendet werden, und die auf festgelegte Speicherleseadressen reagiert, indem sie einen Operanden aus einer Registerdatei-Speicherstelle entsprechend der festgelegten Speicherleseadresse liefert, und die auf eine festgelegte Speicherschreibadresse reagiert, indem sie einen Operanden in einer Registerdatei-Speicherstelle entsprechend der festgelegten Speicherschreibadresse speichert. Die Decodierstufe umfasst eine Vorabrufeinheit, die Befehle aus dem Speicher abruft, eine Decodiereinheit, die die abgerufenen Befehle in eine Form decodiert, die von der Ausführungseinheit verwendet werden kann, und eine Mikroprogrammsteuerbaustein-Einheit, die eine Folge von einem oder mehreren Mikrocodebefehlen entsprechend einem Decodierbefehl liefert. Die Einspeicherstufe umfasst eine Busschnittstelleneinheit, die auf eine externe Speicherleseadresse reagiert, indem sie entweder einen Befehl oder einen Operanden entsprechend der externen Speicherleseadresse aus einem Speicher außerhalb des Mikroprozessors abruft, und die auf eine externe Speicherschreibadresse reagiert, indem sie ein Ergebnis entsprechend der externen Speicherschreibadresse in einem Speicher außerhalb des Mikroprozessors speichert.
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden nach Betrachten der folgenden ausführlichen Beschreibung der Erfindung und der zugehörigen Zeichnungen verstanden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Funktionsblockdiagramm eines integrierten Schaltkreises, der eine Schaltungsarchitektur gemäß der vorliegenden Erfindung implementiert.
  • 2A ist ein Funktionsblockdiagramm der Architektur eines integrierten Schaltkreises gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 2B ist ein ausführlicheres Funktionsblockdiagramm der Architektur von 2A, wie in dem integrierten Schaltkreis von 1 implementiert.
  • 3A und 3B stellen zusammen einen Ablaufplan einer verteilten Entscheidung unter der Zentralverarbeitungseinheit, der DMA-Steuereinheit, der DRAM-Steuereinheit, der Busschnittstelleneinheit und der PCMCIA-Steuereinheit von 1 zum Steuern von Transaktionen auf den Bussen gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung dar.
  • 4 ist ein Funktionsblockdiagramm der Architekturimplementierung für die Zentralverarbeitungseinheit des integrierten Schaltkreises von 1.
  • 5 ist ein Funktionsblockdiagramm der logischen Implementierung für die Zentralverarbeitungseinheit des integrierten Schaltkreises von 1.
  • 6 ist ein Ablaufdiagramm, das die ALS-Signalwellenform darstellt.
  • 7 ist ein Ablaufdiagramm, das die Beziehung zwischen der NSF-Anzeige und den IXSTAT- und IXQUAL-Zustandssignalen darstellt, wenn ein Befehl springt.
  • 8 ist eine schematische Darstellung der Installation eines Emulatorprozessorchips als Aufsteckelement über einem Produktionszielbauelement.
  • 9 ist ein Ablaufdiagramm, das die Deaktivierung eines montierten Prozessors bei vorhandener ICE darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Mit Bezug auf 1 enthält ein IC 10, in dem die vorliegende Erfindung implementiert wurde, eine Anzahl von in diesen integrierten Funktionen, einschließlich einer Zentralverarbeitungseinheit (CPU) 12, einer Direktspeicherzugriffs-(DMA)Steuereinheit 14, einer Steuereinheit 16 für einen dynamischen Direktzugriffsspeicher (DRAM), einer Busschnittstelleneinheit (BIU) 18, einer PCMCIA-Steuereinheit 20, einem parallelen ECP-Anschluss 22 und einer Flüssigkristallanzeigen-(LCD)Steuereinheit 24 plus einer Anzahl von anderen Peripherieschaltungen, wie gezeigt. Wie nachstehend genauer erörtert, kommunizieren solche Funktionselemente 12, 14, 16, 18, 20, 22, 24 über einen oder mehrere Signalbusse 50, 52, 54 untereinander und mit externen Funktionselementen (nicht dargestellt), die mit den externen Anschlüssen des IC 10 verbunden sind.
  • Mit Bezug auf 2A kann eine Schaltungsarchitektur gemäß einem Ausführungsbeispiel der vorliegenden Erfindung folgendermaßen zusammengefasst werden. Die Architektur wird um eine Struktur mit drei Bussen gegründet. Die Hauptgeräte steuern alle den Bus mit höchster Leistung an (lokaler CPU-Bus). Nur die Peripheriegeräte, auf die am häufigsten zugegriffen wird und die am häufigsten verwendet werden, sind mit diesem Bus verbunden. Dies ermöglicht, dass die Verwendung solcher Peripheriegeräte optimiert wird und die Leistung des Systems maximiert wird. Unter Verwendung dieser Struktur mit drei Bussen kann die Gesamtleistung des IC in dem System optimiert werden, während dem Systementwickler die Flexibilität des Hinzufügens von zusätzlichen externen Peripheriegeräten für eine größere Systemfunktionalität gestattet wird.
  • Ein zweiter interner peripherer Bus mit hoher Leistung ist auch vorgesehen, um Peripheriegeräte im IC, auf die am nächsthäufigsten zugegriffen wird und die am nächsthäufigsten verwendet werden, zu unterstützen. Auf diese Peripheriegeräte am internen peripheren Bus wird mit geringfügig langsameren Geschwindigkeiten als auf die Peripheriegeräte am lokalen CPU-Bus zugegriffen. Da auf diese internen Peripheriegeräte des peripheren Busses weniger häufig zugegriffen wird als auf jene am lokalen CPU-Bus, bleibt die Gesamtleistung des Systems hoch, indem die Peripheriegeräte mit höchster Leistung auf den lokalen CPU-Bus mit äußerst hoher Leistung und alle anderen internen Peripheriegeräte auf den internen peripheren Bus mit hoher Leistung abgesondert werden.
  • Der dritte Bus in der Architektur ist der externe periphere Bus mit mittlerer Leistung. Dieser Bus unterstützt (ein) externe(s) Peripheriegerät(e), das (die) vom Systementwickler hinzugefügt wird (werden). Dieser Bus ermöglicht einem Systementwickler die Flexibilität, externe Peripheriegeräte hinzuzufügen, wenn auch die Zugriffe auf solche Peripheriegeräte mit mäßigeren Geschwindigkeiten stattfinden.
  • Wie nachstehend genauer erörtert, umfasst die Architektur drei physikalische Busse, die fünf logischen Bussen entsprechen. Die Architektur verteilt auch die Entscheidungs- und Zyklussteuerlogik in fünf separate Blöcke innerhalb der Konstruktion. Die Entscheidungs- und Zyklussteuerlogik in jedem der separaten Blöcke führt eindeutige Aufgaben durch, die, wenn sie zusammen arbeiten, effizient das Hauptgerät, das den Buszugriff durchführt, die Art des Zugriffs, der angefordert wird, und den physikalischen (und logischen) Bus, auf dem der Zyklus ablaufen soll, festlegen.
  • Mit Bezug auf 2B ist für die vorstehend erörterte Schaltungsarchitektur, wie in dem IC 10 von 1 implementiert, der erste physikalische (und logische) Bus der synchrone lokale CPU-Bus 50 für mehrere Hauptgeräte mit äußerst hoher Leistung. Von einem Architekturgesichtspunkt kann der lokale CPU-Bus 50 durch eine beliebige Anzahl von Bushauptgeräten angesteuert werden (was diesen Bus zu einem Mehrfachhauptbus macht). Vor dem Ansteuern des lokalen CPU-Busses 50 muss zuerst ein Bushauptgerät sich für den lokalen CPU-Bus 50 entscheiden und dessen Steuerung erlangen. In dem IC 10 von 1 befinden sich zwei Bushauptgeräte, nämlich die CPU 12 und die DMA-Steuereinheit 14. Die CPU 12 ist das Standardbushauptgerät und behält die Steuerung des lokalen CPU-Busses 50 jederzeit, außer wenn die DMA-Steuereinheit 14 die Steuerung anfordert, woraufhin die CPU 12 der DMA-Steuereinheit 14 bei ihrer ersten vernünftigen Gelegenheit, z. B. nach Beendung der Ausführung der aktuellen CPU-Bustransaktionssequenz, die Steuerung des lokalen CPU-Busses 50 gewährt. Nach dem Erlangen der Steuerung des lokalen CPU-Busses 50 behält die DMA-Steuereinheit 14 die Steuerung bis zu einem solchen Zeitpunkt, zu dem sie ihre Anforderung für fortgesetzte Herrschaft aufhebt, woraufhin die CPU 12 ihre Steuerung des lokalen CPU-Busses 50 wieder aufnimmt.
  • Die CPU 12 kann als "primäres Hauptgerät" des lokalen CPU-Busses 50 und die DMA-Steuereinheit 14 als "alternatives Hauptgerät" betrachtet werden. Die Architektur unterstützt ein "primäres Hauptgerät" und eine unbegrenzte Anzahl von "alternativen Hauptgeräten".
  • Der lokale CPU-Bus 50 ist synchron, was bedeutet, dass alle Signale auf dem Bus als nur in Bezug auf das Taktsignal des Busses gültig betrachtet werden. In dem IC 10 von 1 sind alle Signale nur in bezug auf die steigende Flanke des Takts für den lokalen CPU-Bus 50 gültig. Ferner wird der lokale CPU-Bus 50 als mit einer äußerst hohen Leistung arbeitend betrachtet, da der Bus in der Lage ist, einen Zugriff pro Taktperiode durchzuführen, was der theoretischen maximalen Leistung eines synchronen Busses entspricht.
  • Um die Betriebsfrequenz des lokalen CPU-Busses 50 zu maximieren, ist nur eine geringe Anzahl der synchronen Peripheriegeräte mit höchster Leistung mit diesem verbunden. Diese zwei Peripheriegeräte sind die DRAM-Steuereinheit 16 und die BIU 18. Die DRAM-Steuereinheit 16 führt alle Zugriffe auf den stark genutzten DRAM-Systemspeicher (nicht dargestellt) durch, während die BIU 18 einen internen, asynchronen, peripheren Bus 52 mit hoher Leistung und einen externen, asynchronen, peripheren Bus 54 mit mäßiger Leistung bereitstellt.
  • Sowohl die DRAM-Steuereinheit 16 als auch die BIU 18 empfangen einen Zugriff auf den lokalen CPU-Bus 50 gleichzeitig und beide Blöcke 16, 18 beginnen, die Art des Zyklus und sein Ziel festzustellen. Architektonisch muss entweder die DRAM-Steuereinheit 16 oder die BIU 18 oder beide die letztliche Feststellung durchführen, welcher der zwei Blöcke 16, 18 den Zugriff durchführt. In dem IC 10 von 1 nimmt die DRAM-Steuereinheit 16 den Zyklus entweder an oder weist ihn zurück. Die BIU 18 nimmt alle von der DRAM-Steuereinheit 16 zurückgewiesenen Zyklen an und weist alle von der DRAM-Steuereinheit 16 angenommenen Zyklen zurück.
  • Wenn die DRAM-Steuereinheit 16 den Zugriff, der auf dem lokalen CPU-Bus 50 angefordert wird, durchführt, tut sie dies durch Zugreifen auf einen externen DRAM (nicht dargestellt), der mit dem IC 10 über die Stifte des gemeinsam genutzten externen Busses 54 gekoppelt ist. Diese Stifte des gemeinsam genutzten externen Busses 54 bilden den zweiten physikalischen Bus, aber, wie der Name andeutet, werden diese Stifte von mehreren logischen Bussen gemeinsam genutzt. Wenn die DRAM-Steuereinheit 16 diese Stifte des gemeinsam genutzten externen Busses 54 steuert, ist der logische Bus zu diesem Zeitpunkt der externe DRAM-Schnittstellenbus.
  • Wie vorstehend angemerkt, nimmt die BIU 18 alle Zugriffe auf den lokalen CPU-Bus 50 an, die von der DRRM-Steuereinheit 16 zurückgewiesen werden. Wenn die PCMCIA-Steuereinheit 20 aktiviert wird, sendet die BIU 18 den Zugriff zur PCMCIA-Steuereinheit 20, bevor versucht wird, irgendeinen anderen Zugriff durchzuführen. Wenn die PCMCIA-Steuereinheit 20 den Zugriff annimmt, dann vollendet die PCMCIA-Steuereinheit 20 den Zugriff durch Erzeugen der entsprechenden Signale an den Stiften des gemeinsam genutzten externen Busses 54. Dies ist der zweite logische Bus (PCMCIA-Kartenschnittstellenbus), der in den einzelnen physikalischen Satz von Stiften des gemeinsam genutzten externen Busses 54 multiplexiert wird.
  • Wenn die PCMCIA-Steuereinheit 20 den Zugriff zurückweist oder wenn die PCMCIA-Steuereinheit 20 nicht aktiviert wird, dann stellt die BIU 18 fest, ob der Zugriff auf ein internes Peripheriegerät oder ein externes Peripheriegerät vorliegt. Die BIU 18 führt diese Feststellung auf der Basis dessen durch, welche internen Peripheriegeräte zur Aktivierung programmiert wurden, der Adresse(n), an der (denen) sich solche aktivierten internen Peripheriegeräte befinden, und der Adresse des aktuellen Zugriffs.
  • Wenn die BIU 18 feststellt, dass der Zugriff auf ein internes Peripheriegerät stattfindet, erzeugt die BIU 18 einen Zugriff auf den asynchronen, internen peripheren Bus 52, um den Zugriff durchzuführen. Der asynchrone, interne, periphere Bus 52 mit hoher Leistung bildet den dritten physikalischen Bus der Architektur und den vierten logischen Bus der Architektur.
  • Wenn die BIU 18 andererseits feststellt, dass ein Zugriff auf den externen peripheren Bus 54 stattfindet, führt die BIU 18 diesen Zugriff durch Erzeugen der entsprechenden Signale an den Stiften des gemeinsam genutzten externen Busses 54 durch. Dies ist der fünfte logische Bus, der der Architektur zugeordnet ist. Zugriffe, die nicht auf irgendwelche der chipinternen Peripheriegeräte stattfinden, führen immer zu einem Zugriff auf den externen peripheren Bus an den Stiften des gemeinsam genutzten externen Busses 54.
  • Um effizientere Datenübertragungen durchzuführen, führt die DMA-Steuereinheit 14 schließlich Systemspeicherzugriffe über den lokalen CPU-Bus 50 (wie vorstehend beschrieben) durch, während auch der Beginn und das Ende dieser Zugriffe mit Zugriffen mit den die DMA anfordernden Bauelementen über eine direkte Verbindung mit und in Zusammenarbeit mit der BIU 18 überlappen. Die die DMA anfordernden Bauelemente können sich entweder am internen peripheren Bus 52 (wie z. B. die ECP-Steuereinheit 22 oder die LCD-Steuereinheit 24) oder am externen peripheren Bus 54 befinden.
  • Mit Bezug auf 3A und 3B zusammen kann die verteilte Entscheidung unter der CPU 12, der DMA-Steuereinheit 14, der DRAM-Steuereinheit 16, der BIU 18 und der PCMCIA-Steuereinheit 20 besser verstanden werden. Während des anfänglichen Systemzustands 200, z. B. nach dem Systemhochfahren oder -rücksetzen, wird die CPU 12 initialisiert und Leerlaufzyklen werden auf dem lokalen CPU-Bus 50 durchgeführt. Die nächste Operation 202 ist eine Entscheidung hinsichtlich dessen, ob eine CPU-Zugriffssequenz in Gang ist. Wenn nicht, ist die nächste Operation 204 eine Feststellung, ob die DMA-Steuereinheit 14 angefordert hat, ein Bushauptgerät zu sein. Wenn nicht, ist die nächste Operation 206 eine Entscheidung, ob ein CPU-Buszyklus ansteht. Wenn nicht, besteht die nächste Operation 208 darin, einen weiteren Leerlaufzyklus auf dem lokalen CPU-Bus 50 mit der CPU 12 in der Steuerung zu verarbeiten. Diese Leerlaufzyklusoperation 208 wird solange wiederholt, wie keine Anforderung von der DMA-Steuereinheit 14 für die Steuerung des Busses 50 empfangen wird und kein CPU-Buszyklus ansteht.
  • Wenn eine CPU-Zugriffssequenz in Gang war, tritt das System in einen Zustand 210 ein, in dem die CPU 12 die Steuerung des lokalen CPU-Busses 50 hat. Wenn eine DMA-Bushauptgeräteanforderung von der DMA-Steuereinheit 14 von der CPU 12 empfangen wurde, wird ebenso eine Operation 212 durchgeführt, in der die CPU 12 die Steuerung des lokalen CPU-Busses 50 der DMA-Steuereinheit 14 gewährt und das System in einen Zustand 214 eintritt, in dem nun die DMR-Steuereinheit 14 die Steuerung des lokalen CPU-Busses 50 hat.
  • Die nächste Operation 216 ist eine Entscheidung, die von der DRAM-Steuereinheit 16 durchgeführt wird, ob der Zyklus ein DRAM-Zyklus ist. wenn ja, besteht die nächste Operation 218 darin, eine DRAM-Zugriffssequenz an den Stiften des gemeinsam genutzten externen Busses 54 durchzuführen. Wenn nicht, ist die nächste Operation 220 eine Entscheidung, die in Zusammenarbeit von der BIU 18 und der PCMCIA-Steuereinheit 20 durchgeführt wird, ob der Zyklus ein PCMCIA-Zyklus ist. Wenn ja, besteht die nächste Operation 222 darin, eine PCMCIA-Zugriffssequenz an den Stiften des gemeinsam genutzten externen Busses 54 durchzuführen. Wenn nicht, ist die nächste Operation 224 eine Entscheidung von der BIU 18, ob der Zyklus ein interner Zyklus ist. Wenn ja, besteht die nächste Operation 226 darin, eine Zugriffssequenz auf den internen peripheren Bus durchzuführen, während ein Leerlaufzyklus an den Stiften des gemeinsam genutzten externen Busses 54 durchgeführt wird. Wenn nicht, besteht die nächste Operation 228 darin, einen Zugriff auf den externen peripheren Bus 54 an den Stiften des gemeinsam genutzten externen Busses 54 durchzuführen.
  • Nach jeder dieser Zugriffsoperationen 218, 222, 226, 228 ist die nächste Operation 230 eine Entscheidung, ob die CPU 12 die Steuerung des lokalen CPU-Busses 50 hat. Wenn ja, wird der vorangehende Prozess beginnend mit der Operation 202, die feststellt, ob eine CPU-Zugriffssequenz in Gang ist, wiederholt. Wenn nicht, besteht die nächste Operation 232 darin, festzustellen, ob mehr DMA-Zyklen abgearbeitet werden sollen. Wenn ja, fährt das System mit dem Zustand 214 fort oder tritt erneut in diesen ein, in dem der lokale CPU-Bus 50 von der DMA-Steuereinheit 14 gesteuert wird. Wenn nicht, besteht die nächste Operation 208 darin, einen Leerlaufzyklus auf dem lokalen CPU-Bus 50 mit der CPU 12 in der Steuerung durchzuführen.
  • Daher demonstriert die Basisarchitektur des IC 10 eine Steuerkonstruktion mit verteilter Entscheidung und verteiltem Zugriff für mehrere Bushauptgeräte für den Zweck, die Leistung von den Peripheriegeräten, auf die am häufigsten zugegriffen wird, zu maximieren, während dennoch eine hohe Leistung von den chipinternen Peripheriegeräten, auf die weniger häufig zugegriffen wird, bereitgestellt wird und eine mäßige Leistung für einen Zugriff auf chipexterne Peripheriegeräte aufrechterhalten wird.
  • Wie nachstehend genauer erörtert, ist die CPU 12 ein 32-Bit-Prozessor mit einem Befehlssatz, der mit dem Standard-Intel486-Prozessor kompatibel ist. Seine Leistung ist hauptsächlich durch die Taktgeschwindigkeit, die Anzahl von Taktzyklen pro Befehl und die Anzahl von ausgeführten Befehlen festgelegt. Die Zieltaktfrequenz war in einem großen Ausmaß durch Herstellungseinschränkungen, typische Anwendungsanforderungen und die Implementierungsstrategie vorbestimmt, dazu war die Anzahl von ausgeführten Befehlen durch die Verwendung der x86-Befehlssatzarchitektur (ISA) eingeschränkt. Der Fokus zum Erhöhen der Leistung war daher die Anzahl an Taktzyklen, die im Durchschnitt für jeden Befehl erforderlich waren, d. h. Takte pro Befehl (CPI).
  • Folglich war die CPU-Architektur dazu ausgelegt, Befehle in der geringsten Anzahl von Taktzyklen auszuführen. Eine dreistufige Pipeline wird verwendet, die die Anzahl von Überbrückungen, Sperren und die Chipgröße verringert. Dies verringert auch den Sprungnachteil, wenn ein bedingter Sprung durchgeführt wird. Die Takte pro Befehl für alle Befehle, deren Optimierung angestrebt wird, wurden dann auf der Basis dieser Architektur abgeschätzt und eine zusätzliche Logik wurde in der Architektur ausgeführt, um diese Zahlen zu erhalten.
  • Mit Bezug auf 4 verwendet die Architektur der CPU 12 eine dreistufige Pipeline unter Verwendung einer mikroprogrammierten Steuerung. Die drei primären Stufen der Pipeline sind die Decodier- 70, die Ausführungs- 72 und die Einspeicher- 74 Stufe. Die Einspeicherstufe 74 ist ferner in zwei Unterstufen 74a, 74b unterteilt. Die zweite Unterstufe 74b wird nur für einige der Speicherzugriffe verwendet. Für Operationen von Register zu Register sind nur drei Stufen erforderlich. Daher funktioniert die Pipeline hauptsächlich mit diesen drei Stufen 70, 72, 74.
  • Die Decodierstufe 70 enthält nominal die Decodiereinheit 100, fungiert jedoch als mehr als nur der Befehlsdecodierer. Diese Stufe 70 umfasst auch den Vorabrufpuffer 102, den Befehlscache 104 und den Mikroprogrammsteuerbaustein 106. Der Vorabrufpuffer 102 ist 16 Bytes breit und ist als Zwei-Etagen-Einheit 102a, 102b ausgelegt. Die Vorabrufeinheit 102 versucht, den Befehlsdecodierer 100 mit allen Bytes des Befehls, den er derzeit decodiert, welcher bis zu 15 Bytes lang sein kann, vollständig beliefert zu halten. Die Vorabrufeinheit 102 koppelt mit dem Befehlscache 104. Die Vorabrufeinheit 102 versucht, vor dem Decodierer 100 abzurufen. Dieser Vorgriffsmechanismus verbessert die Leistung signifikant.
  • Der Befehlscache 104 enthält 1K Bytes, die als direkt abgebildet mit einer Zeilengröße von acht Bytes organisiert sind. Der Befehlscache 104 horcht auf dem Bus, um veraltete Daten aufgrund eines selbstmodifizierenden Codes zu vermeiden. (Dies ist ein weiteres Beispiel der durch Leistung gesteuerten Methode für die Konstruktion der CPU 12.) Da das meiste des Zielanwendungscodes klein ist, ergibt ein Cache von 1K eine signifikante Leistungsverbesserung und das Implementieren eines größeren Caches war nicht wesentlich. Dies verringert die Fläche und daher die Kosten des Chips 10. Da viele der Zielanwendungen von einem Festwertspeicher (ROM) aus ablaufen, wird auch eine signifikante Leistungssteigerung erhalten.
  • Der Decodierer 100 ist in der Lage, die einfachen Befehle in einem einzelnen Zyklus zu decodieren. Präfixe und komplexe Befehle brauchen mehr als einen Zyklus zum Decodieren. Der Mikroprogrammsteuerbaustein 106 übernimmt dann und durchschreitet den Mikrocode für die Befehle. Das meiste des Mikrocodes ist ein einzelner Zyklus, abgesehen von den komplexen Befehlen, einschließlich derjenigen, die den Schutzmechanismus des i486 unterstützen. Sowohl der Decodierer 100 als auch der Mikroprogrammsteuerbaustein 106 verwenden Logikkonstruktionen, die Leistung und Fläche sparen.
  • Die Ausführungsstufe 72 ruft nicht nur Operanden ab und führt die Befehle aus, sondern berechnet auch die Speicheradressen. Die x86-Architektur weist einen segmentierten Adressenraum mit vielen komplexen Adressierungsbetriebsarten auf, um auf diesen Adressierungsraum zuzugreifen. Der segmentierte Speicherplatz bedeutet, dass, um die physikalische Adresse zu erhalten, die tatsächlich auf dem Bus läuft, mindestens eine Addition durchgeführt werden muss, jene der Segmentbasis und des Versatzes innerhalb eines solchen Segments. Dies wird durch die Berechnung des Segmentversatzes, der bis zu drei weitere Teile aufweisen kann: Basis; Index; und Verschiebung, weiter verkompliziert. Da die Berechnung der gesamten Adresse, die aus allen diesen Teilen besteht, in einem einzelnen Zyklus aufwändig wäre, wurden die vorherrschenden Fälle optimiert, d. h. diejenigen mit nur einem skalierten Index und einer Verschiebung oder einer Basis und einer Verschiebung. Die Ausführungseinheit 108 ist in der Lage, die gesamte Adressenberechnung in einem einzelnen Zyklus durchzuführen, d. h. sie kann zwei Adressenadditionen in demselben Zyklus durchführen. Auch eine Segmentgrenzprüfung wird an diesem Punkt durchgeführt, um Segmentüberläufe zu verhindern. Die so berechnete lineare Adresse (dies ist auch die physikalische Adresse) wird zu einer Buseinheit (nachstehend genauer erörtert) für die Verteilung an die externe Welt gesandt. Diese Konstruktion ermöglicht die Ausführung von häufig verwendeten Lade-, Speicher-, Einspeicher- und Entnahmebefehlen in einem einzelnen Zyklus.
  • Die Ausführungsstufe 72 beinhaltet auch die Architekturregisterdatei 110 und die Schutzlogikmechanismen 112. Die Registerdatei 110 löst die Quellen- und Zielinformation für alle Operationen in der Ausführungsstufe 72 auf. Sie ermöglicht auch das Überbrücken von Ergebnissen entweder von der Ausgabe der Arithmetik- und Logikeinheit (ALU) 114 oder von einer Ladeoperation aus dem Speicher. Dies hilft, Pipelineblasen aufgrund von Datenabhängigkeiten zu verringern. Der volle i486-Schutzmechanismus wurde abgesehen von der Unterstützung der Virtual86-Betriebsart implementiert und die meisten der i486-Ausnahmen wurden abgesehen von jenen implementiert, die als bedeutungslos für die Zielanwendungen erachtet wurden.
  • Die Einspeicherstufe 74 umfasst eine Buseinheit 116, eine Fehlersucheinheit 118 und eine Register-Einspeicherlogik 120. In dieser Stufe 74 wird der Speicherzugriff eingeleitet und beendet und die Registerdatei 110 wird aktualisiert. Die zweite Einspeicherunterstufe 74b ermöglicht, dass eine unabhängige Registeroperation außerhalb der Reihenfolge vollendet wird, während ein Speicherschreibzugriff noch ansteht. Der Speicherzugriff wird pipelineverarbeitet, was ermöglicht, dass bei jedem Zyklus eine neue Lese/Schreib-Operation eingeleitet wird. (Bei einer anfänglichen Implementierung mit 25 MHz ergibt dies einen Speicherzugriff in einem einzelnen Zyklus; daher verbessert ein Datencache die Leistung nicht signifikant.) Mit Bezug auf 5 ist die CPU 12 in 11 Blöcke unterteilt, um die Komplexität der Konstruktion zu verringern: Vorabrufeinheit 102; Decodiereinheit 100; Mikroprogrammsteuerbaustein 106; Registerdateieinheit 110; Ausführungseinheit 108; Schutzlogikeinheit 112; Ausnahmelogikeinheit 130; Fehlersuchlogikeinheit 118; Buseinheit 116; globale Steuereinheit 132; und Befehlscache 104.
  • Die Vorabrufeinheit 102 besteht aus zwei 8-Byte-Registern 102a, 102b (4), die entweder vom Befehlscache 104 oder direkt vom Speicher gefüllt werden. Die Decodiereinheit 100 erhält den Befehl von der Vorabrufeinheit 102 und verarbeitet sie, um die Eintragsmicrocodeadresse für den Befehl, die Registeradressen, unmittelbare Werte, Verschiebungswerte und eine Segmentinformation zu erzeugen. Der Decodierer 100 erzeugt auch eine Information für einige der Ausnahmen und wird auch verwendet, um den Fall der nicht-implementierten Befehle zu bearbeiten, d. h. x86-Befehle, die nicht in der CPU 12 implementiert werden.
  • Der Mikroprogrammsteuerbaustein 106 steuert das Durchschreiten des Befehlsmikrocodes. Er erzeugt die nächste Mikrocodeadresse und konsultiert den Mikrocode-ROM. Die Mikro-ROM-Adresse kann von verschiedenen Stellen kommen: vom Decodierer 100, wenn ein neuer Befehl gestartet wird; vom Mikrocode, wenn der derzeitige Befehl nicht beendet ist; oder von der Ausnahmelogik 130 im Fall von Ausnahmen.
  • Die Registerdateieinheit 110 liest die Operanden, löst die Überbrückungen auf, erzeugt Konstanten und richtet Operanden aus. Die Architekturregister und die Selektoren (d. h. die Segmentnachschlageregister) werden in diesem Block implementiert. Die Architekturregisterdatei weist doppelte Lese- und Schreibanschlüsse auf. Da auf die Register entweder als einzelnes Byte, als Wort (zwei Bytes) oder als Doppelwort (vier Bytes) zugegriffen werden kann, sind die doppelten Lese- und Schreibanschlüsse in dieser Registerdatei 110 komplex. Die doppelten Schreibanschlüsse optimieren Ladebefehle und die gleichzeitige Durchführung von Befehlen.
  • Die Ausführungseinheit 108 weist zwei Hauptfunktionen auf. Eine besteht darin, alle Rechen- und Logikoperationen durchzuführen. Für diese Funktion weist die Ausführungseinheit 108 eine Arithmetik- und Logikeinheit 114 (4) und einen Bitstellenverschieber auf. Die zweite Funktion ist die Adressenberechnung (Erzeugung linearer Adressen) und die Grenzprüfung. Diese Einheit 108 berechnet den Adressenversatz und die lineare Adresse und führt die Grenzprüfung in einem einzelnen Zyklus durch.
  • Die Buseinheit 116 ist die Schnittstelle für die CPU 12 zum lokalen CPU-Bus 50. Sie implementiert einen 32-Bit-Adressenbus und aufgrund von Gehäuseanschlussstift-Begrenzungen einen 16-Bit-Datenbus. (Dies ist kein ernsthafter Engpass, da die Zielbetriebssysteme und -anwendungen 16 Bit sind.) Ein wichtiges Merkmal dieser Einheit 116 ist die Fähigkeit, einen Pipelinespeicherzugriff zu unterstützen, wenn ein Speicherzugriff eingeleitet wird, bevor der vorherige beendet ist. In dieser Betriebsart ist der externe DRAM in Seiten unterteilt, die typischerweise 4K Bytes lang sind. Solange der Zugriff innerhalb einer Seite im DRAM stattfindet, kann Lesen und Schreiben aus dem bzw. in den Speicher in einem einzelnen Zyklus aufrechterhalten werden. wenn ein Seitenverfehlen stattfindet, werden drei Zyklen durchgeführt, um diesen Zugriff durchzuführen. Zugriffe auf einen statistischen Direktzugriffsspeicher (SRAM) und ROM werden auch mit Wartezuständen und Nicht-Pipeline-Speicherzugriffen unterstützt.
  • Die globale Steuereinheit 132 ist die Überwachungseinrichtung der gesamten Architektur. Diese Einheit 132 steuert das Durchschreiten der Befehlspipeline. Sperren, die Steuerung der Ausnahmeverarbeitung und das Prozessorabschalten werden auch von dieser Einheit 132 bearbeitet. Die Ausnahmelogik 130 priorisiert und löst alle Ausnahmen und externen Unterbrechungen auf. Dies umfasst die Softwareunterbrechungen, arithmetischen Ausnahmen, Ausnahmen der geschützten Betriebsart und alle anderen Fehler und Programmunterbrechungen. Die Schutzlogikeinheit 112 ist für den in der Intel486-Implementierung definierten Schutzmechanismus verantwortlich. Die Implementierung der vier Ebenen des Schutzes und der Unterstützung für alle von diesem Mechanismus 112 erzeugten Ausnahmen wird bereitgestellt. Diese Einheit 112 ist für die Implementierung der segmentierten Speicherarchitektur des i486 erforderlich.
  • Die Fehlersuchlogik 118 umfasst alle Fehlersuchregister und implementiert die Befehls- und Datenunterbrechungspunkte. Die Fehlersuchlogik 118 implementiert zusammen mit der Buseinheit 116 auch die Anforderungen für die Unterstützung einer externen schaltungsinternen Emulation (ICE).
  • Der vorstehend beschriebene integrierte Schaltkreis kann auch mit einem Prozessorkern versehen sein, der Merkmale umfasst, die eine schaltungsinterne Emulation (ICE) unterstützen. In der Erörterung, die folgt, hinsichtlich der wahlweisen ICE-Merkmale des Prozessors wird die folgende Terminologie verwendet:
  • Takt: Der Takt, auf den in dieser ganzen Beschreibung Bezug genommen wird, ist zum Systemtakt-Ausgangssignal SYSCLK logisch äquivalent, von dem wiederum angenommen wird, dass es zum chipinternen "CPU-Takt"-Signal funktional äquivalent ist. Die chipinterne Implementierung kann aus Gründen der Laufzeitverzögerung ein anderes Signal verwenden.
  • ICE-Betriebsart gegen normale Betriebsart: Dies ist die Unterscheidung zwischen einem Bauelement, das ein Teil eines ICE-Systems ist, und einem, das ein Teil eines Anwendungssystems ist. Ein Bauelement in der ICE-Betriebsart stellt mehr Eingangs/Ausgangs-Signalstifte bereit.
  • ICE-Ausnahmebetriebsart gegen normale Ausnahmebetriebsart: Wenn sich ein Bauelement in der ICE-Betriebsart befindet, kann der Fehlersuchregistersatz in die ICE-Ausnahmebetriebsart gesetzt werden, indem ein IM-Bit gesetzt wird. Dies ermöglicht die Verwendung der Fehlersuchregister und des ICEBP-Befehls, um zur ICE-Systemüberwachungseinrichtung zu springen.
  • Unterbrechungsbetriebsart gegen Laufbetriebsart: Dies ist die Unterscheidung zwischen dem Abarbeiten eines ICE-Überwachungsprogramms und einem Laufcode, der zur Anwendung gehört. In die Unterbrechungsbetriebsart wird nur durch die ICE-Ausnahme und nicht durch die Unterbrechung 1 (die Fehlersuch-Programmunterbrechung) eingetreten.
  • ICE-Abbildung gegen Benutzerabbildung: Diese Abbildungen sind identisch. Die ICE-Überwachungseinrichtung läuft in demselben Adressierungsraum wie der Benutzercode, aber in einem Bereich (80000000 -- 83FFFFFF), der nur für die ICE-Verwendung reserviert ist.
  • Überlagerungs- gegen Zielspeicher: Der für den Benutzer sichtbare Speicher kann entweder im Zielschaltungsspeicher physikalisch vorhanden sein oder kann innerhalb des ICE-Systems emuliert werden (Überlagerung). Aufgrund der Tatsache, dass die DRAM-Steuereinheit immer aktiv ist, muss der Überlagerungsspeicher einen Seitenmodus-DRAM emulieren, wenn er in den Adressierungsraum des DRAM abgebildet wird.
  • Ein schaltungsinterner Emulatorprozessor gemäß der vorliegenden Erfindung wird vorzugsweise monolithisch gepackt und stellt ICE-zweckorientierte Signalstifte bereit, die im vorstehend beschriebenen Prozessor nicht vorgesehen sind, welchen die ICE emulieren soll. Der Chip des Emulatorprozessors ist jedoch vorzugsweise zum Zielprozessor identisch.
  • Tabelle 1 beschreibt die Signale, die während der "Emulatorbetriebsart" des schaltungsinternen Emulatorprozessors geliefert werden. Wie in Tabelle 1 beschrieben, wird die Emulatorbetriebsart durch Aktivieren eines Signals am ICEMODE-Eingangssignalstift beim Systemzurücksetzen ausgewählt. Wenn nicht ein Signal am ICEMODE-Eingangssignalstift beim Systemrücksetzen aktiviert wird, sind Signale, die an den zweckorientierten ICE-Ausgangssignalstiften geliefert werden, unbestimmt und alle ICE-Merkmale auf dem Chip werden deaktiviert. Die ausgewählte Betriebsart bleibt bis zum nächsten Mal, wenn das Bauelement zurückgesetzt wird, in Kraft.
  • TABELLE 1: EMULATOR-ZWECKORIENTIERTE SIGNALSTIFTE
    Figure 00230001
  • Figure 00240001
  • Figure 00250001
  • Figure 00260001
  • Figure 00270001
  • Figure 00280001
  • Figure 00290001
  • TABELLE 2: AUFGEZÄHLTE BUSSTATUSZUSTÄNDE
    Figure 00290002
  • Zwei Bits werden zu den Fehlersuchregistern des Prozessors hinzugefügt, um ICE-Umgebungen zu unterstützen:
    IM Bit 12 des Registers DR7
    BI Bit 12 des Registers DR6
  • Das Setzen des IM-Bits des Fehlersuchregisters verursacht, dass Unterbrechungspunkte vielmehr die ICE-Ausnahme (d. h. Überwachungscode) als eine Unterbrechung, die von einem vom Benutzer gelieferten Code abgearbeitet wird, auslösen. Während IM = 1, löst auch der ICEBP-Befehl (ein Software-TRAP-Befehl) die ICE-Ausnahme anstelle einer Unterbrechung, die von einem vom Benutzer gelieferten Code abgearbeitet wird, aus.
  • Das IM-Bit wird durch ein Chiprücksetzen auf Null zurückgesetzt, ungeachtet dessen, ob die ICE-Betriebsart oder die normale Betriebsart für das ganze Bauelement ausgewählt ist. Es muss durch eine Softwarehandlung auf eine "1" gesetzt werden.
  • Das BI-Bit wird in der ICE-Betriebsart durch die Hardware gesetzt, sobald ein extern erzeugter Unterbrechungspunkt (am BPREQ-Stift signalisiert) eine der Ursachen für eine ICE-Ausnahme ist. Das BI-Bit wird durch eine Softwarehandlung gelöscht.
  • 6 stellt den Zeitablauf des ALS-Signals dar. Wie in 6 gezeigt, ist ALS ein auf einen hohen Pegel gehender Impuls, der sich zum Zwischenspeichern von Adressen an seiner steigenden Flanke eignet. Die abfallende Flanke sollte normalerweise nicht verwendet werden, da sich die Adresse simultan mit dieser ändern kann. ALS wird synchron mit allen gültigen Adressen auf dem chipexternen Bus präsentiert.
  • Der Hauptzweck der NSF-, IXSTAT- und IXQUAL-Signale besteht darin, zu ermöglichen, dass die chipexterne Hardware der linearen Adresse folgt, auf die durch den aktuellen EIP-(Befehlszeiger)Wert verwiesen wird, während die Ausführung vor sich geht. Dies wird in der aggressiven Verfolgungsbetriebsart durch Laden eines chipexternen linearen EIP-("LEIP")Registers vom Adressenbus, sobald eine nicht-sequentielle Abruf anzeige (NSF) gegeben wird, und durch Hinzufügen des Inhalts des IXQUAL-Werts zum LEIP-Register in einem beliebigen Taktzyklus, wenn sich IXSTAT auf einem hohen Pegel befindet, durchgeführt. Bei Sprungbefehlen und in Ausnahmedienst-Mikrocodesequenzen ist jedoch eine IXSTAT-Anzeige vorhanden, die anders bearbeitet werden muss.
  • Das in 7 bereitgestellte Ablaufdiagramm stellt die Beziehung zwischen der NSF-Anzeige und den IXSTAT- und IXQUAL-Zustandssignalen dar, wenn ein Befehl springt. Man beachte, dass die NSF-Rnzeige zu oder vor dem Zeitpunkt auftritt, zu dem der Sprungbefehl anzeigt, dass er austritt (IXSTAT = 1). Wenn eine NSF-Anzeige zu sehen ist, muss nicht zugelassen werden, dass die zugehörige Anzeige IXSTAT = 1 den LEIP inkrementiert. Das Inkrementieren des LEIP zu diesem Zeitpunkt würde einen schlechten Wert erzeugen, indem die Länge des Sprungbefehls zur Zieladresse addiert wird. Im Fall des Ausnahmedienstes ist der Längenwert, der präsentiert wird, wenn IXSTAT = 1, undefiniert.
  • Trotz der Tatsache, dass das IXSTAT-Signal unter diesem Umstand nicht verwendet werden sollte, um den LEIP-Wert zu inkrementieren, liefert es dennoch eine wertvolle Information. Es ist möglich, dass einige Sprungbefehle fehlerbehaftet sind, nachdem sie eine NSF signalisiert haben. In diesem Fall ist die Anwesenheit oder Abwesenheit des Zustands IXQUAL = 1 eine zuverlässige Anzeige dessen, ob der Befehl beendet wurde, bevor die Ausnahme ergriffen wird.
  • Der BHE-Stift folgt allen Adressen ungeachtet der adressierten Stellen. Dies stellt keine Änderung zwischen der ICE-Betriebsart und der normalen Betriebsart dar.
  • Die IOR- und IOW-Freigabesignale werden für alle E/A-Zugriffe, interne sowie externe, aktiviert.
  • Es wird zugelassen, dass die Eingangssignale ICEMODE und BPREQ mit einer Haltezeit von null relativ zur Zwischenspeicherflanke von SYSCLK präsentiert werden.
  • Der Emulatorunterstützungsprozessor wird in der Benutzerhardware (z. B. einer Produktionsplatine) mittels einer Klemme über einem existierenden, montierten Chip installiert, wie in 8 schematisch dargestellt. Dieser Chip wird deaktiviert, wobei alle Stifte schweben, so dass der Emulatorunterstützungsprozessor in der ICE das System ansteuern kann. wie in 9 gezeigt, wird dies durch Ansteuern von zwei Stiften während des Rücksetzens durchgeführt: die Signale TEST und SA0. Der normale Rücksetzzustand von SA0 ist niedrig; wenn jedoch der TEST-Stift auf niedrig gesetzt wird, während das PWGOOD-Signal auf einem niedrigen Pegel liegt (d. h. während sich der Chip im Rücksetzzustand befindet), versucht der Chip, SA0 mit einem schwachen Bauelement auf einen hohen Pegel zu bringen. Wenn SA0 extern auf einem niedrigen Pegel gehalten wird (durch den entsprechenden Stift des ICE-Bauelements), schweben alle anderen Stifte sofort. Nach dem Ende des Rücksetzens (wobei PWGOOD auf hoch schaltet), wird der schwebende Zustand dauerhaft gemacht und der schwache Treiber an SA0 wird auch abgeschaltet, was bewirkt, dass er ebenso schwebt. Dieser Zustand bleibt bis zum nächsten Rücksetzen in Kraft. (Dieses Schema impliziert, dass in irgendeiner anderen Testbetriebsart die Ausgangssignale zwischen dem Zeitpunkt, zu dem TEST auf einen niedrigen Pegel gebracht wird, und dem Zeitpunkt, zu dem SA0 ansteigt, kurz schweben.
  • In einem beliebigen System, das das Anfügen eines ICE-Systems ermöglicht, wird auch nicht zugelassen, den TEST-Stift direkt mit Vcc zu verbinden.
  • Die dokumentierten Merkmale der Fehlersuchregister, wie für die '486-Architektur definiert, sind vollständig im Emulatorprozessor implementiert.
  • Es besteht keine Absicht, irgendwelche frei laufenden Zeitgeber durch eine Hardwarewirkung beim Auftreten der ICE-Ausnahme zu stoppen. Die Zeitüberwachung wird durch eine Sperre an NMI unterstützt.
  • Der ICE-abgebildete Raum soll nicht vom normalen benutzerabgebildeten Raum getrennt sein. Der ICE-abgebildete Speicher belegt alle Adressen, die aus 100000 (binär) in den höchstwertigen 6 Bits der 32-Bit-Adresse (Adressen 80000000-83FFFFFF hex) bestehen. Die benutzerprogrammierbaren Chipansteuerungen müssen niemals so programmiert werden, dass sie auf diesen Adressenbereich reagieren, aber es befindet sich keine Hardware auf dem Chip, um zu verhindern, dass dies passiert. Es ist die Verantwortung der Entwicklungssoftware, hier niemals Speicher zuzuweisen. Es ist die Verantwortung des ICE-Systems, den Versuch eines Benutzers zu erkennen, auf diesen Raum zuzugreifen, anders als durch Auslösen der ICE-Ausnahme.
  • Es wird auch angenommen, dass der ICE-abgebildete Raum 16 Bit breit ist, wenn die ICE-Betriebsart aktiviert ist. Das CS16-Signal wird für Zugriffe innerhalb dieses Raums ignoriert. Während Zugriffen auf Stellen im ICE-Abbild wird die ISA-artige Speicherzeitsteuerung verwendet. wenn sich das Bauelement in der ICE-Betriebsart befindet, kann die Software auf ein Register an der E/A-Adresse EF5Fh zugreifen, welches ICE-Betriebsart-Zeitsteuerregister genannt wird. Wenn sich das Bauelement nicht in der ICE-Betriebsart befindet, hat dieses Register keine Wirkung und kann nicht gelesen oder beschrieben werden.
  • Das folgende sind die Definitionen der Bits innerhalb des Betriebsart-Zeitsteuerregisters:
    I_CD Bit 3. ICE-Befehlsverzögerung, dieses Bit legt fest, ob eine Befehlsverzögerung Zugriffen auf den ICE-Speicheradressenbereich (80000000h-83FFFFFFh) zugeordnet ist. Rücksetzzustand ist "1".
    I_WS2-0 Bits 2-0. ICE-Wartezustandsbits 2-0, diese Bits legen die Anzahl von Wartezuständen fest, die Zugriffen auf den ICE-Speicheradressenbereich (80000000h-83FFFFFFh) zugeordnet sind. Rücksetzzustand ist "111" (7 Wartezustände).
    Reserviert Bits 4-7. Reserviert: keine Änderungen an diesen Bits vornehmen.
  • Wenn der DRAM für den RAM im ICE-Abbildraum verwendet wird, dann ist eine chipexterne DRAM-Steuereinheit erforderlich.
  • Zwei Betriebsarten sind zum Erfassen des Ablaufs der Programmausführung definiert: Aggressive und nicht-aggressive Betriebsart.
  • In der aggressiven Betriebsart wird jedes Mal, wenn ein Sprung durchgeführt wird, die Zieladresse (an SA25--SA1 und ODD) zum Bus in Verbindung mit dem NSF-Signal und dem ALS-Freigabeimpuls gesandt. Jedes Mal, wenn ein Befehl die Ausführung beendet, zeigen außerdem die Signale IXSTAT und IXQUAL an, um wie viele Bytes die Ausführungsadresse vorzuschieben ist. Durch Betrachten dieser Signale kann das ICE-System eine Protokollierung in fast Echtzeit durchführen. Diese Betriebsart wird "aggressives Protokoll" genannt, da sie die höchstmögliche Zuverlässigkeit der Protokollmeldung mit geringem Aufwand in Echtzeitleistung garantiert: wenn ein Befehl zu einer cachegespeicherten Adresse springt, muss er warten, bis der chipexterne Bus verfügbar wird, so dass die Zieladresse gemeldet werden kann. Außerhalb einer ICE-Umgebung würde er nicht warten.
  • Um in tatsächlicher Echtzeit zu laufen, kann die nicht-aggressive Protokollierungsbetriebsart ausgewählt werden: in dieser Betriebsart wartet die NSF-Anzeige nicht, bis der Bus bei einem Befehlscachetreffer verfügbar wird und somit wird nicht garantiert, dass Sprünge die Zieladresse an den SA-Stiften präsentieren.
  • Um den ICE-Überwachungscode im ICE-abgebildeten Speicher auszuführen, ist es erforderlich, eine ICE-Ausnahme zu erhalten. Die ICE-Ausnahme ist die Ausnahme mit höchster Priorität. Sie wird ausgelöst, wenn sich das Bauelement in der ICE-Betriebsart befindet und der BPREQ-Stift aktiviert ist. (Ansonsten hat die Aktivierung des BPREQ-Stifts keine Wirkung.) Wenn sich die Fehlersuchregister in der ICE-Ausnahmebetriebsart befinden (DR7-Bit IM = 1), verursacht außerdem die Ausführung des ICEBP-Befehls (Operationscode F1 hex) oder irgendeines durch die Fehlersuchregister ausgelösten Unterbrechungspunkts oder die einstufige Programmunterbrechung (vom TF-Bit im EFLAGS-Register) eine ICE-Ausnahme.
  • Wenn die Fehlersuchregister nicht für die ICE-Ausnahmebetriebsart konfiguriert sind, lösen der ICEBP-Befehl und die Fehlersuchregister die Fehlersuch-Programmunterbrechung aus: Unterbrechung 1. Der Zustand des Bits 12 des DR6-Registers zeigt an, ob das BPREQ-Signal die Ursache für die ICE-Ausnahme ist.
  • Das IM-Bit beeinflusst den Befehl INT 1 mit zwei Bytes nicht (welcher in allen Fällen die Unterbrechung 1 auslöst), und beeinflusst auch keinen der anderen INT-Befehle, einschließlich "INT 3" (der ein Software-"Programmunterbrechungs"-Befehl ist). Es beeinflusst auch nicht die Funktion des BPREQ-Stifts, der in allen Fällen die ICE-Ausnahme erzeugt.
  • Von dem Punkt an, an dem der Emulator beginnt, die ICE-Ausnahme abzuarbeiten, bis zu dem Zeitpunkt, zu dem das ICE-Überwachungsprogramm die Programmsteuerung an den Benutzercode (RSM, nachstehend) zurückgibt, wird weder eine andere ICE-Ausnahme noch irgendeine nicht-maskierbare Unterbrechung (NMI) erkannt. Irgendeine NMI-Anforderung wird intern anstehend gehalten und wird beim Austritt in die Laufbetriebsart abgearbeitet. Irgendwelche zusätzlichen BPREQ-Anforderungen sollen durch eine chipexterne Schaltung anstehend gehalten werden, bis eine BPREQ-Bestätigung (von der ICE-Überwachungseinrichtung) zu sehen ist; dies tritt auch nicht bis zum Austritt zum Benutzercode auf.
  • Vorzugsweise deaktiviert das ICE-Überwachungsprogramm das Zeitüberwachungsmerkmal beim Eintritt und reaktiviert die Zeitüberwachung vor der Rückkehr in die Laufbetriebsart und arbeitet diese ab. Dadurch sind Zeitüberwachungsereignisse nicht wahrscheinlicher als in einer Nicht-ICE-Umgebung.
  • Beim Auftreten der ICE-Ausnahme wird der gesamte Maschinenzustand in einer ICE-Speicherauszugstabelle beginnend mit der Adresse 80000000 hex gespeichert. Man beachte, dass eine Information zuerst beginnend mit der Adresse 80000100 zwischengespeichert wird und dann zu 80000000 zurückkommt. Werte werden in Einheiten von 32-Bit-Doppelworten gespeichert und werden mit Nullfüllung rechtsbündig gemacht, wenn sie nicht das ganze Doppelwort belegen. Der Inhalt von Schattenregistern wird in zwei Dworten gespeichert, vorzugsweise in einem Format, das dem Format eines Speichersegmentdeskriptors ähnelt.
  • Nach dem Zwischenspeichern des Maschinenzustands wird der Prozessorkern in einen Zustand gebracht, der dem Rücksetzen ähnelt, außer dass das EIP-Register mit dem Wert 83FFFFF0 geladen wird. In diesem Zustand werden alle internen Schattenregister auf einen Basiswert von Null und die maximale Segmentlänge (4 GBytes) gesetzt. Der Prozessor wird auch in die USE32-Betriebsart für den Code gesetzt.
  • Wenn das BPREQ-Eingangssignal während des Austritts aus dem Rücksetzen aktiviert wird, geschieht der vorstehend beschriebene Dienst unmittelbar nach der normalen Rücksetzverarbeitung. Vorzugsweise wird das BPREQ-Signal nicht entfernt, bis die IXSTAT/IXQUAL-Signale bestätigen, dass in die ICE-Ausnahme eingetreten wurde.
  • In der Unterbrechungsbetriebsart können Verweise auf benutzerabgebildete Speicherdaten oder Code Standardbefehle verwenden, da die Speicherräume nicht getrennt sind. Der Code im ICE-Abbild ist nicht cachefähig; daher modifiziert die Ausführung des Codes in der Unterbrechungsbetriebsart den Befehlscache nicht, wenn nicht Unterbrechungen zurück in den Benutzercode von der Überwachungseinrichtung des ICE-Systems zugelassen werden. Das Horchen auf dem Bus fährt fort, um jegliche Cacheleitung ungültig zu machen, auf die ein Schreiben in der Unterbrechungsbetriebsart durchgeführt wird. Es ist nicht erforderlich, den Cache beim Eintritt in die Unterbrechungsbetriebsart ungültig zu machen.
  • Um in die Laufbetriebsart zurückzugelangen, veranlasst die Überwachungseinrichtung, dass der Prozessor einen Befehl RSM (Operationscode 0F, AA hex) ausführt, der bewirkt, dass die Architekturregister und Schattenregister der CPU aus der ICE-Speicherauszugstabelle geladen werden. Die Ausführung fährt dann von dem Punkt an fort, der durch die wiederhergestellten EIP- und CS-Abbildungen angegeben wird. Temporäre Register werden überhaupt nicht wiederhergestellt.
  • Wenn der RSM-Befehl in der Laufbetriebsart ausgeführt wird, verursacht er eine Programmunterbrechung "ungültiger Befehl".
  • Verschiedene weitere Modifikationen und Veränderungen an der Struktur und am Betriebsverfahren dieser Erfindung sind für Fachleute ersichtlich, ohne vom Schutzbereich der Erfindung abzuweichen. Obwohl die Erfindung in Verbindung mit speziellen bevorzugten Ausführungsbeispielen beschrieben wurde, sollte es selbstverständlich sein, dass die Erfindung, wie beansprucht, nicht unangemessen auf solche speziellen Ausführungsbeispiele begrenzt werden sollte. Es ist vorgesehen, dass die folgenden Ansprüche den Schutzbereich der vorliegenden Erfindung festlegen und dass Strukturen und Verfahren innerhalb des Schutzbereichs dieser Ansprüche und ihrer Äquivalente dadurch erfasst werden.

Claims (19)

  1. Vorrichtung mit einem integrierten Schaltkreis (IC) mit einer Vielzahl von Schaltungsfunktionen und einer Vielzahl von Signalbussen, wobei der IC umfasst: einen ersten Signalbus zum Übertragen einer ersten Vielzahl von Bussignalen innerhalb des IC; einen zweiten Signalbus zum Übertragen einer zweiten Vielzahl von Bussignalen innerhalb des IC; einen dritten Signalbus zum Koppeln mit einer externen Schaltung und zum Übertragen einer dritten Vielzahl von Bussignalen zwischen dem IC und der externen Schaltung; eine Vielzahl von mit dem ersten Signalbus gekoppelten Hauptsteuereinheiten zum selektiven Zugreifen auf den ersten Signalbus und zum Steuern der Übertragung der ersten Vielzahl von Bussignalen; eine erste Vielzahl von mit dem ersten, dem zweiten und dem dritten Signalbus gekoppelten Peripherieschaltungen zum selektiven Kommunizieren mit der Vielzahl von Hauptsteuereinheiten über den ersten Signalbus und die erste Vielzahl von Bussignalen, zum selektiven Zugreifen auf den zweiten Signalbus und zum Steuern der Übertragung der zweiten Vielzahl von Bussignalen und zum selektiven Zugreifen auf den dritten Signalbus und zum Steuern der Übertragung der dritten Vielzahl von Bussignalen; und eine zweite Vielzahl von mit dem zweiten Signalbus gekoppelten Peripherieschaltungen zum selektiven Kommunizieren mit der ersten Vielzahl von Peripherieschaltungen über den zweiten Signalbus und die zweite Vielzahl von Bussignalen.
  2. Vorrichtung nach Anspruch 1, wobei der erste Signalbus einen synchronen Signalbus umfasst.
  3. Vorrichtung nach Anspruch 1, wobei der zweite Signalbus einen asynchronen Signalbus umfasst.
  4. Vorrichtung nach Anspruch 1, wobei der dritte Signalbus einen asynchronen Signalbus umfasst.
  5. Vorrichtung nach Anspruch 1, wobei die Vielzahl von Hauptsteuereinheiten ferner zum Kommunizieren miteinander und dementsprechend zum Feststellen, welche von diesen Zugriff auf den ersten Signalbus und die Steuerung der Übertragung der ersten Vielzahl von Bussignalen erlangt, dient.
  6. Vorrichtung nach Anspruch 1, wobei die Vielzahl von Hauptsteuereinheiten eine Zentralverarbeitungseinheit (CPU) und eine Direktspeicherzugriffs-(DMA)Steuereinheit umfasst.
  7. Vorrichtung nach Anspruch 1, wobei die erste Vielzahl von Peripherieschaltungen zum Kommunizieren miteinander und dementsprechend zum Feststellen, welche von diesen Zugriff auf den zweiten Signalbus und die Steuerung der Übertragung der zweiten Vielzahl von Bussignalen erlangt, dient.
  8. Vorrichtung nach Anspruch 1, wobei die erste Vielzahl von Peripherieschaltungen zum Kommunizieren miteinander und dementsprechend zum Feststellen, welche von diesen Zugriff auf den dritten Signalbus und die Steuerung der Übertragung der dritten Vielzahl von Bussignalen erlangt, dient.
  9. Vorrichtung nach Anspruch 1, wobei die erste Vielzahl von Peripherieschaltungen eine Steuereinheit für einen dynamischen Direktzugriffsspeicher (DRAM) und eine Busschnittstelleneinheit (BIU) umfasst.
  10. Vorrichtung nach Anspruch 1, wobei die zweite Vielzahl von Peripherieschaltungen eine PCMCIA-Steuereinheit umfasst.
  11. Vorrichtung nach Anspruch 1, wobei die zweite Vielzahl von Peripherieschaltungen ferner zum Koppeln und Kommunizieren mit einer Vielzahl von anderen Schaltungen außerhalb des IC dient.
  12. Vorrichtung mit einem integrierten Schaltkreis (IC) mit einer Vielzahl von Schaltungsfunktionen, die durch eine Vielzahl von Signalbussen miteinander verbunden sind und gemäß einem verteilten Buszugriff und einer Steuerentscheidung diese gemeinsam nutzen, wobei der IC umfasst eine Vielzahl von Signalbussen zum Übertragen einer Vielzahl von Bussignalen; eine Vielzahl von mit einem ersten Teil der Vielzahl von Signalbussen gekoppelten Hauptsteuereinheiten zum Kommunizieren miteinander und dementsprechend zum Feststellen, welcher von diesen zu einem Hauptbus mit Zugriff auf einen und Steuerung eines ersten der Vielzahl von Signalbussen wird, und dementsprechend zum Steuern der Übertragung eines ersten Teils der Vielzahl von Bussignalen; eine erste Vielzahl von mit dem ersten Teil und einem zweiten Teil der Vielzahl von Signalbussen gekoppelten Peripherieschaltungen zum Kommunizieren miteinander und dementsprechend zum Feststellen, welche von diesen mit dem Hauptbus kommuniziert und Zugriff auf einen und die Steuerung eines zweiten der Vielzahl von Signalbussen erlangt, und dementsprechend zum Kommunizieren mit dem Hauptbus und zum Steuern der Übertragung eines zweiten Teils der Vielzahl von Bussignalen; und eine zweite Vielzahl von mit einem dritten Teil der Vielzahl von Signalbussen gekoppelten Peripherieschaltungen zum Kommunizieren miteinander und dementsprechend zum Feststellen, welche von diesen Zugriff auf einen dritten der Vielzahl von Signalbussen erlangt, und dementsprechend zum Übertragen eines dritten Teils der Vielzahl von Bussignalen.
  13. Vorrichtung nach Anspruch 12, wobei einer des zweiten Teils der Vielzahl von Signalbussen zum Koppeln mit einer externen Schaltung und zum Kommunizieren mit dieser über eine Vielzahl von externen Bussignalen dient und wobei eine der ersten Vielzahl von Peripherieschaltungen ferner zum Kommunizieren mit einer der zweiten Vielzahl von Peripherieschaltungen und dementsprechend zum Steuern der Übertragung eines vierten Teils der Vielzahl von Bussignalen und der Vielzahl von externen Bussignalen dient.
  14. Vorrichtung nach Anspruch 12, wobei einer der Vielzahl von Signalbussen einen synchronen Signalbus umfasst.
  15. Vorrichtung nach Anspruch 12, wobei einer der Vielzahl von Signalbussen einen asynchronen Signalbus umfasst.
  16. Vorrichtung nach Anspruch 1, wobei die Vielzahl von Hauptsteuereinheiten eine Zentralverarbeitungseinheit (CPU) und eine Direktspeicherzugriffs-(DMR)Steuereinheit umfasst.
  17. Vorrichtung nach Anspruch 12, wobei die erste Vielzahl von Peripherieschaltungen eine Steuereinheit für einen dynamischen Direktzugriffsspeicher (DRAM) und eine Busschnittstelleneinheit (BIU) umfasst.
  18. Vorrichtung nach Anspruch 12, wobei die zweite Vielzahl von Peripherieschaltungen eine PCMCIA-Steuereinheit umfasst.
  19. Vorrichtung nach Anspruch 12, wobei die zweite Vielzahl von Peripherieschaltungen ferner zum Koppeln und Kommunizieren mit einer Vielzahl von anderen Schaltungen außerhalb des IC dient.
DE69633166T 1995-05-26 1996-05-16 Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration Expired - Fee Related DE69633166T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US45150395A 1995-05-26 1995-05-26
US451503 1995-05-26
PCT/US1996/007099 WO1996037854A2 (en) 1995-05-26 1996-05-16 Integrated circuit with multiple functions sharing multiple internal signal buses according to distributed bus access and control arbitration

Publications (2)

Publication Number Publication Date
DE69633166D1 DE69633166D1 (de) 2004-09-23
DE69633166T2 true DE69633166T2 (de) 2005-08-18

Family

ID=23792487

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69633166T Expired - Fee Related DE69633166T2 (de) 1995-05-26 1996-05-16 Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration

Country Status (5)

Country Link
US (2) US5774684A (de)
EP (2) EP0776504B1 (de)
KR (1) KR100403405B1 (de)
DE (1) DE69633166T2 (de)
WO (1) WO1996037854A2 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2976850B2 (ja) * 1995-07-13 1999-11-10 日本電気株式会社 データ処理装置
US5968155A (en) * 1995-08-23 1999-10-19 Sun Microsystems, Inc. Digital gate computer bus
JP3743789B2 (ja) * 1996-10-24 2006-02-08 株式会社ルネサステクノロジ メモリとプロセサとが同一チップ上に形成されたマイクロコンピュータ
JPH10214201A (ja) * 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
US5978866A (en) * 1997-03-10 1999-11-02 Integrated Technology Express, Inc. Distributed pre-fetch buffer for multiple DMA channel device
US6189140B1 (en) 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
US6108738A (en) * 1997-06-10 2000-08-22 Vlsi Technology, Inc. Multi-master PCI bus system within a single integrated circuit
US6128728A (en) 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
GB2329049B (en) * 1997-09-09 2002-09-11 Advanced Risc Mach Ltd Apparatus and method for identifying exceptions when debugging software
TW406229B (en) * 1997-11-06 2000-09-21 Hitachi Ltd Data process system and microcomputer
US6105125A (en) * 1997-11-12 2000-08-15 National Semiconductor Corporation High speed, scalable microcode based instruction decoder for processors using split microROM access, dynamic generic microinstructions, and microcode with predecoded instruction information
US6009261A (en) * 1997-12-16 1999-12-28 International Business Machines Corporation Preprocessing of stored target routines for emulating incompatible instructions on a target processor
US6041380A (en) * 1998-01-21 2000-03-21 Micron Electronics, Inc. Method for increasing the number of devices capable of being operably connected to a host bus
US6263389B1 (en) 1998-01-21 2001-07-17 Micron Technology, Inc. Apparatus for increasing the number of loads supported by a host bus
US6073200A (en) * 1998-01-27 2000-06-06 Vlsi Technology, Inc. System having processor monitoring capability of an integrated circuits buried, internal bus for use with a plurality of internal masters and a method therefor
EP0935195A2 (de) 1998-02-06 1999-08-11 Analog Devices, Inc. Integrierte Schaltung mit hochauflösendem Analog-Digital-Wandler, einem Mikrokontroller und hochdichtem Speicher und einem Emulator dafür
US6701395B1 (en) 1998-02-06 2004-03-02 Analog Devices, Inc. Analog-to-digital converter that preseeds memory with channel identifier data and makes conversions at fixed rate with direct memory access
US6289300B1 (en) 1998-02-06 2001-09-11 Analog Devices, Inc. Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
US6385689B1 (en) 1998-02-06 2002-05-07 Analog Devices, Inc. Memory and a data processor including a memory
US6145100A (en) * 1998-03-04 2000-11-07 Advanced Micro Devices, Inc. Debug interface including timing synchronization logic
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6563922B1 (en) * 1998-08-28 2003-05-13 Teltronics, Inc. Arbitration mechanism
US6467009B1 (en) * 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
US6330645B1 (en) 1998-12-21 2001-12-11 Cisco Technology, Inc. Multi-stream coherent memory controller apparatus and method
US6618777B1 (en) 1999-01-21 2003-09-09 Analog Devices, Inc. Method and apparatus for communicating between multiple functional units in a computer environment
US6609169B1 (en) 1999-06-14 2003-08-19 Jay Powell Solid-state audio-video playback system
US6449672B1 (en) * 1999-07-21 2002-09-10 Apple Computer, Inc. PCI device arbiter
US6671836B1 (en) * 1999-09-23 2003-12-30 Rambus Inc. Method and apparatus for testing memory
US6851047B1 (en) 1999-10-15 2005-02-01 Xilinx, Inc. Configuration in a configurable system on a chip
GB2366006B (en) 1999-12-23 2004-06-30 St Microelectronics Sa A computer system with debug facility
GB2365546B (en) * 1999-12-23 2004-02-18 St Microelectronics Sa A computer system with two debug watch modes
GB2362729B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
GB2362968B (en) 1999-12-23 2003-12-10 St Microelectronics Sa Computer system with debug facility
GB2362730B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Computer register watch
US6519670B1 (en) * 2000-02-04 2003-02-11 Koninklijke Philips Electronics N.V. Method and system for optimizing a host bus that directly interfaces to a 16-bit PCMCIA host bus adapter
US6721840B1 (en) 2000-08-18 2004-04-13 Triscend Corporation Method and system for interfacing an integrated circuit to synchronous dynamic memory and static memory
US6754760B1 (en) 2000-08-21 2004-06-22 Xilinx, Inc. Programmable interface for a configurable system bus
US6518787B1 (en) 2000-09-21 2003-02-11 Triscend Corporation Input/output architecture for efficient configuration of programmable input/output cells
US7139848B1 (en) 2000-12-08 2006-11-21 Xilinx, Inc. DMA protocol extension for packet-based transfer
US7036033B1 (en) * 2001-01-04 2006-04-25 3Pardata, Inc. Disk enclosure with multiplexers for connecting 12C buses in multiple power domains
US6725364B1 (en) 2001-03-08 2004-04-20 Xilinx, Inc. Configurable processor system
TWI223138B (en) * 2001-07-11 2004-11-01 Faraday Tech Corp Device and method for detecting micro-processor execution performance
US7107374B1 (en) 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
WO2003029997A1 (en) * 2001-09-27 2003-04-10 Koninklijke Philips Electronics N.V. Bus system and bus interface
US7305469B2 (en) * 2001-12-18 2007-12-04 Ebay Inc. Prioritization of third party access to an online commerce site
US7570651B2 (en) * 2004-06-16 2009-08-04 Siamack Haghighi High-performance reconfigurable interconnect for concurrent operation of multiple systems
US7461190B2 (en) * 2005-08-11 2008-12-02 P.A. Semi, Inc. Non-blocking address switch with shallow per agent queues
US8875798B2 (en) * 2009-04-27 2014-11-04 National Oilwell Varco, L.P. Wellsite replacement system and method for using same
EP2372490A1 (de) * 2010-03-31 2011-10-05 Robert Bosch GmbH Schaltungsanordnung für ein Datenverarbeitungssystem und Verfahren zur Datenverarbeitung
DE102010003521A1 (de) * 2010-03-31 2011-10-06 Robert Bosch Gmbh Modulare Struktur zur Datenverarbeitung
US8806093B2 (en) * 2010-04-01 2014-08-12 Intel Corporation Method, apparatus, and system for enabling a deterministic interface
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic
US10198849B1 (en) * 2017-10-26 2019-02-05 Advanced Micro Devices, Inc. Preloading translation and data caches using on-chip DMA engine with fast data discard
WO2020160369A1 (en) 2019-01-31 2020-08-06 General Electric Company Battery charge and discharge power control in a power grid
US11782838B2 (en) 2020-08-14 2023-10-10 Advanced Micro Devices, Inc. Command processor prefetch techniques

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
JPH02103482A (ja) * 1988-10-13 1990-04-16 Matsushita Graphic Commun Syst Inc 集積回路装置
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5204953A (en) * 1989-08-04 1993-04-20 Intel Corporation One clock address pipelining in segmentation unit
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
US5259006A (en) * 1990-04-18 1993-11-02 Quickturn Systems, Incorporated Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like
KR910018909A (ko) * 1990-04-20 1991-11-30 미다 가쓰시게 데이타처리장치 및 그것을 사용한 시스템개발장치
EP0466550B1 (de) * 1990-06-29 1998-11-18 Digital Equipment Corporation Umwandlung der Befehle von internen Prozessorregistern in I/O-Adressraum
US5226047A (en) * 1990-10-03 1993-07-06 Chips And Technologies, Inc. In-circuit emulation of a microprocessor mounted on a circuit board
US5321828A (en) * 1991-06-07 1994-06-14 Step Engineering High speed microcomputer in-circuit emulator
US5241631A (en) * 1991-08-23 1993-08-31 Nec Technologies, Inc. Personal computer having a local bus interface to a video circuit
US5189319A (en) * 1991-10-10 1993-02-23 Intel Corporation Power reducing buffer/latch circuit
EP0545581B1 (de) * 1991-12-06 1999-04-21 National Semiconductor Corporation Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
US5254888A (en) * 1992-03-27 1993-10-19 Picopower Technology Inc. Switchable clock circuit for microprocessors to thereby save power
US5542058A (en) * 1992-07-06 1996-07-30 Digital Equipment Corporation Pipelined computer with operand context queue to simplify context-dependent execution flow
US5396634A (en) * 1992-09-30 1995-03-07 Intel Corporation Method and apparatus for increasing the decoding speed of a microprocessor
JP3524110B2 (ja) * 1992-11-06 2004-05-10 株式会社ルネサステクノロジ マイクロコンピュータシステム
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5574892A (en) * 1993-06-30 1996-11-12 Intel Corporation Use of between-instruction breaks to implement complex in-circuit emulation features
US5440747A (en) * 1993-09-27 1995-08-08 Hitachi America, Ltd. Data processor with control logic for storing operation mode status and associated method
US5404473A (en) * 1994-03-01 1995-04-04 Intel Corporation Apparatus and method for handling string operations in a pipelined processor
US5619726A (en) * 1994-10-11 1997-04-08 Intel Corporation Apparatus and method for performing arbitration and data transfer over multiple buses
US5619728A (en) * 1994-10-20 1997-04-08 Dell Usa, L.P. Decoupled DMA transfer list storage technique for a peripheral resource controller
US5630102A (en) * 1994-12-19 1997-05-13 Intel Corporation In-circuit-emulation event management system

Also Published As

Publication number Publication date
EP0776504B1 (de) 2004-08-18
US5857094A (en) 1999-01-05
US5774684A (en) 1998-06-30
KR970705087A (ko) 1997-09-06
WO1996037854A3 (en) 1997-08-07
EP1343076A2 (de) 2003-09-10
DE69633166D1 (de) 2004-09-23
EP1343076A3 (de) 2004-02-25
EP0776504A2 (de) 1997-06-04
WO1996037854A2 (en) 1996-11-28
KR100403405B1 (ko) 2004-03-30

Similar Documents

Publication Publication Date Title
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE60222402T2 (de) Verfahren und system zur spekulativen ungültigkeitserklärung von zeilen in einem cachespeicher
DE69631778T2 (de) Flexible implementierung eines systemverwaltungsmodus in einem prozessor
DE112005003098B4 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE60103414T2 (de) Cpu, die auf ein erweitertes registerset in einem erweiterten registermodus zugreift und entsprechendes verfahren
DE69434728T2 (de) Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE112010004971T5 (de) Ein System, Verfahren und eine Vorrichtung für einen Cache-Flush eines Seitenbereichs und TLB Invalidierung eines Bereichs von Einträgen
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE69817170T2 (de) Emulation von unterbrechungsmechanismus in einem multiprozessorsystem
DE112017001825T5 (de) Prozessoren, verfahren, systeme und instruktionen zum atomischen speichern von daten, die breiter als eine nativ unterstützte datenbreite sind, in einem speicher
DE102010053088A1 (de) Sammeln und Streuen mehrerer Datenelemente
DE112004002267T5 (de) Ruhezustandsmechansimus für virtuelles Multithreading
DE102015002582A1 (de) Architekturübergreifendes Kompatibilitätsmodul, um zuzulassen, dass ein Codemodul einer Architektur ein Bibliotheksmodul einer anderen Architektur verwendet
DE112004001854T5 (de) System und Verfahren zur Handhabung von Sonderinstruktionen in einem Prozessor auf Grundlage eines Cache-Speichers mit Ablaufverfolgung
DE10393727T5 (de) Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code
DE19506734A1 (de) Computersystem und Verfahren zum Aufrechterhalten der Speicherkonsistenz in einer Busanforderungswarteschlange
DE102005032949A1 (de) Verfahren und Vorrichtung zum Implementieren von Speicherordnungsmodellen mit Ordnungsvektoren
DE69634624T2 (de) Vorrichtung zur Ereignisverwaltung
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE4417068A1 (de) Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System
DE102009050983A1 (de) Eine Technik, um Interrupts in einem Computersystem zu kommunizieren
DE202010018020U1 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE112011103210T5 (de) Ein auf der Klasse und dem Inhalt von Instruktionen basierendes Energiemanagement für einen Prozessor

Legal Events

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