-
ALLGEMEINER
STAND DER TECHNIK
-
Die vorliegende Erfindung betrifft
das Prüfen und
Austesten integrierter Schaltungen und insbesondere die Verwendung
von Schaltkreisen zum Austesten auf einem Chip in ASICs, wie zum
Beispiel Systeme auf einem Chip.
-
Durch den anhaltenden Fortschritt
auf dem Gebiet der Halbleitertechnologie und insbesondere der Halbleiterherstellung
können
immer mehr Schaltkreise auf einer einzigen integrierten Schaltung
planiert werden. Dadurch kann man eine zunehmende Anzahl von Funktionen
auf einer einzigen integrierten Schaltung anordnen. Eine Vielzahl
von Funktionen, die bisher über
mehrere integrierte Schaltungen, die auf einer Leiterplatte (PCB-printed
circuit board) angebracht sind, verteilt waren, können deshalb
nun in einer einzigen integrierten Schaltung zusammengefaßt werden.
Eine solche integrierte Schaltung wird häufig als „System auf einem Chip" (SOC-System
on a chip) bezeichnet. Die schnelle Entwicklung und Kommerzialisierung
solcher SOCs führt
zu neuen Problemen für
den SOC-Programmierer, den Systementwicklungsingenieur oder den
Systemintegrationsingenieur. Ein solches Problem ist die Entwurfsvalidierung
und das Austesten von Programmen entweder in Firmware oder in Software,
die auf dem SOC ablaufen sollen.
-
Häufig
enthält
ein SOC die Funktionen einer als „eingebetteter Prozessor"
bezeichneten integrierten Schaltung. In der Vergangenheit waren
eingebettete Prozessoren häufiger
in Form getrennter integrierter Schaltungen auf PCBs anzutreffen.
Eingebettete Prozessoren sind Mikroprozessoren, die häufig zur
Steuerung von Vorrichtungen und zur Durchführung anderer Aufgaben, für die eine
kostspieligere Vielzweck-CPU nicht angemessen ist, verwendet werden.
Der anhaltende Fortschritt auf dem Gebiet der Halbleitertechnologie
hat die Grenzen zwischen eingebetteten Prozessoren und Vielzweckpro zessoren
verwischt. Die Verwendung eingebetteter Prozessoren hat zu ähnlichen
Problemen beim Prüfen und
Austesten von Programmen geführt
wie sie nun im Bezug auf SOCs auftreten. Es wurden vielfältige Werkzeuge
entwickelt, um Programme auf eingebetteten Prozessoren effizient
zu debuggen. Ein solches Werkzeug ist der Logikanalysierer, bei
dem es sich um ein Vielzweckwerkzeug handelt, das, wenn es an den
Hauptbus eines eingebetteten Prozessors und an verschiedene andere
Anschlüsse
angeschlossen wird, eine passive Datensammlung im Bezug auf die Leistungsfähigkeit
von Software auf einem eingebetteten Prozessor bereitstellen kann.
Ein Anschluß ist in
diesem Zusammenhang ein von einer integrierten Schaltung ausgehender
Verbindungsdraht. Ein anderes Werkzeug ist ein Emulator in der Schaltung,
ein prozessorspezifisches Werkzeug, das die Funktion des Zielprozessors
emuliert und dabei Zugang zu Informationen über die Leistungsfähigkeit
des auf dem emulierten Prozessor laufenden Programms ermöglicht.
Außerdem
kann der Emulator in der Schaltung den Typ und die Art von Informationen,
zu denen er Zugang liefert, ändern.
Außerdem
ermöglicht
der Emulator in der Schaltung eine Änderung des Zustands des eingebetteten
Prozessors (zum Beispiel könnten
Registerwerte auf bestimmte Weise und unabhängig verändert werden). In jedem Fall
erzeugen diese verschiedenen Werkzeuge Daten bezüglich der Ausführung eines
Programms auf einem Prozessor.
-
Ein anderer Ansatz beim Austesten
eingebetteter Prozessoren besteht darin, Emulationsschaltungen in
den Prozessor zu integrieren oder einzubetten (die sogenannte „Onchip-Emulation"). Dieser Ansatz
wird mittlerweile häufiger
verwendet, da eingebettete Prozessoren immer höhere Verarbeitungsgeschwindigkeiten
und Registerbreiten erreicht haben, wodurch die benötigte Ausgangsbandbreite
zunimmt. Diese Art von Emulation kann als ein Onchip-Debug-System
(System zum Austesten auf dem Chip) bezeichnet werden (im folgenden
OCDS). Ein OCDS besteht aus Schaltungen zur Überwachung des Zustands eines
eingebetteten Prozessors, um den Zustand eines eingebetteten Prozessors
zu konfigurieren und um mit einem externen Test-Werkzeug zu kommunizieren. Das externe
Test-Werkzeug ist häufig
mit einem Hostcomputer verbunden, auf dem Austest-Software abläuft, und
wirkt als ein Übersetzer
zwischen dem OCDS und einem Hostcomputer, wie zum Beispiel einem
PC.
-
Es wird angemerkt, daß der „Zustand"
eines Mikroprozessors sein Zustand ist, der im Hinblick auf den
Inhalt seiner Register, internen Flags, lokalen Speicher usw. gegeben
ist. Ähnlich
ist der Zustand eines Registers oder eines anderen Speichers sein
Zustand, der den darin gespeicherten Wert umfasst.
-
Es wurden vielfältige Protokolle und Standards
bezüglich
eingebetteter Prozessoren festgelegt, die Parameter für OCDSe
festlegen. Der Standard der Joint Test Action Group, der als „JTAG"
bezeichnet wird, ist der IEEE-Standard für Grenzabtastungen (IEEE 1149.1).
Unter anderem legt er die Parameter zum Prüfen einer Reihe von Eingangs-/Ausgangsregistern
durch eine Menge eigener Prüfpins fest.
JTAG ist die Standardschnittstelle zum Senden von Befehlen und zum
Durchführen
eines Datenaustauschs mit eingebetteten Prozessoren. JTAG ist eine
relativ einfache aber vergleichsweise langsame Schnittstelle, die
bei 10 MHz etwa 10 MBit/s Informationen austauscht. Sie wird häufig auch
im Kontext anderer Schnittstellen verwendet, um Testbedingungen
einzurichten, Steuerbefehle zu senden und dergleichen.
-
Ein anderer Schnittstellenstandard
für OCDSe
ist der Standard Nexus 5001 für
eine globale eingebettete Prozessor-Debug-Schnittstelle (IEEE-ISTO 5001). Dieser
Schnittstellenstandard erlaubt eine wesentlich höhere Bandbreite, und zwar die
Bandbreite, die notwendig ist, um sogenannte „Trace-Informationen" (oder Informationen zur
Ablaufüberwachung,
siehe unten) zu behandeln, die mit einer hohen Rate von z.B. 100–200 MHz
ausgegeben werden können.
Von Nexus 5001 gibt es eine Anzahl verschiedener Versionen, die
verschiedene Ebenen der Steuerung und des Zugriffs des Zielprozessors
anrufen.
-
Der einfachste Fall des Standards
Nexus 5110 kann unter Verwendung einer JTAG-Schnittstelle implementiert
werden. Die höhere
Bandbreite des Standards Nexus 5001 wird häufig nur dazu implementiert,
Daten aus einem eingebetteten Prozessor auszulesen, obwohl die Bandbreite
bidirektional angewandt werden kann.
-
Es gibt andere Standards zur Implementierung
eines OCDS in einem eingebetteten Prozessor. Bestimmte Hersteller
eingebetteter Prozessoren erzeugen und warten einen proprietären Standard
für ihre
Prozessoren. Dies ist zum Beispiel bei der Firma ARM® der
Fall.
-
Zu den Fähigkeiten, die ein OCDS eines
eingebetteten Prozessors aufweisen sollte, um ein Programm auszutesten,
gehört
die Fähigkeit,
Informationen zur Ablaufüberwachung
zu sammeln. Trace-Informationen umfassen Informationen zur Abfolgeüberwachung
des Programms, wie zum Beispiel Zeitstempel und Verzweigungsnachrichten.
Das externe Test-Werkzeug und/oder der Hostcomputer können mit
diesen Informationen zur Abfolgeüberwachung des
Programms den Programmfluß rekonstruieren. Eine
andere Art von Informationen zur Ablaufüberwachung, die von dem OCDS
gesammelt werden sollten, sind Informationen zur Abfolgeüberwachung
von Daten. Die Informationen zur Abfolgeüberwachung von Daten umfassen
eine Liste von Lese- und Schreibzugriffen (Werte und Speicherstellen)
auf den Speicher, die durch den eingebetteten Prozessor durchgeführt werden.
-
Das OCDS kann außerdem in der Lage sein, spezifische
Ereignisse in dem Zielprozessor zu überwachen. Zu solchen Ereignissen
gehören
Unterbrechungspunkte und Überwachungspunkte.
Unterbrechungspunkte oder Überwachungspunkte
sind bestimmte Bedingungen, auf die das OCDS den eingebetteten Prozessor überwacht.
Wenn eine bestimmte Bedingung auftritt (z.B. ist der Wert eines
bestimmten Registers gleich einer Spezifikation), dann wird entweder
der Betrieb des eingebetteten Prozes- sors angehalten (ein Unterbrechungspunkt)
oder es erfolgt ein Hinweis, daß die
Bedingung aufgetreten ist (Überwachungspunkt).
Das OCDS sollte solche Ereignisinformationen sammeln. Vorzugsweise
kann das OCDS auch den Typ oder die Menge der als Ergebnis eines Überwachungspunkts
gesammelten Informationen zur Ablaufüberwachung ändern. Zu den weiteren Fähigkeiten
eines OCDS kann die Fähigkeit zum
Prüfen
und potentiell zum Verändern
des Werts in jedem einzelnen Register des eingebetteten Prozessors
sowie anderer Speicherstellen in dem eingebetteten Prozessor gehören.
-
In der Vergangenheit konnte ein eingebetteter
Prozessor eine der vielen integrierten Schaltungen auf einem PCB
sein. Obwohl die oben besprochenen Austest-Techniken auf den eingebetteten Prozessor
(als eine getrennte integrierte Schaltung) angewandt werden können, hatten
die anderen integrierten Schaltungen des PCBs bisher noch keine OCDS-Fähigkeiten.
Statt dessen wurden andere Prüfungen
an der Leiterplatte durchgeführt,
um die Funktionsfähigkeit
der anderen integrierten Schaltungen zu prüfen und Testinformationen aus
den anderen integrierten Schaltungen zu erhalten. Diese Prüfungen waren
notwendig, damit das PCB als Ganzes der Prüfung und dem Austesten unterzogen
werden konnte. Man beachte, daß das
Prüfen
gewöhnlich
in der Entwurfsphase eines Projekts stattfindet, während das
Austesten während
der Implementierungsphase stattfindet. Alle diese Prüfungen zum
Austesten mehrerer Chips auf einer PCB sehen sich demselben Problem
gegenüber – Extrahieren
von Informationen aus Chips, die gewöhnlich keine besondere Vorkehrungen
zum Exportieren oder Ausgeben von Zustandsinformationen aufweisen.
Häufig
verbindet und überwacht
eine zum Austesten eines PCBs verwendete Prüfung die vielen Leitungen,
die jeden Chip des PCBs verbinden. Dadurch können die Eingangs- und Ausgangssignale
des Chips überwacht
werden. Mit zunehmender Anzahl von Chips nimmt die Anzahl der die
Chips mit dem Rest des PCBs verbindenden Leitungen proportional
zu. Die Ausgabe von Informationen aus dem PCB heraus, die zur Überwachung
und zum Austesten des PCBs notwendig ist, kann deshalb auch je nach
Bedarf zunehmen, so daß ein
solches Prüfen
zum Austesten von PCBs durchführbar
ist.
-
Wie bereits erwähnt, werden die vielfältigen Funktionen
die von mehreren integrierten Schaltungen auf einem PCB durchgeführt werden,
nun auf einem SOC integriert. Eine dieser Funktionen ist die eines
eingebetteten Prozessors. Eine Funktion auf einem SOC kann dadurch
beschrieben werden, dass sie von einer Funktionseinheit oder einen
Kern von Schaltkreisen durchgeführt
wird. Die Funktionen eines eingebetteten Prozessors können also
durch einen Prozessorkern durchgeführt werden. Dieser Prozessorkern
von Schaltkreisen auf einem SOC wird häufig eine kleinere Anzahl von
Anschlüssen,
die für seine
Verwendung zugeteilt sind, aufweisen als wenn die äquivalente
Funktion durch einen Prozessor als eine getrennte integrierte Schaltung
durchgeführt werden
würde.
Eine Vergrößerung der
Anzahl von Anschlüssen
vergrößert die
Herstellungskosten. Deshalb sind für Prüfzwecke weniger Anschlüsse verfügbar und
Onchip-Debugging-Systeme werden noch wichtiger. Ein SOC, das einen
Prozessorkern verwendet, weist Onchip-Debugging-Systemen somit wertvolle Chipfläche zu.
Solche Onchip-Debugging-Systeme, die gemäß Standards wie zum Beispiel
Nexus 5001 entworfen werden, verwenden dann eine bestimmte Anzahl
von Anschlüssen
zum Prüfen.
Die Implementierung eines solchen Onchip-Debugging-Systems für einen
Verarbeitungskern in einem SOC verhindert, daß die Aktivität eines Programms
in dem Verarbeitungskern verborgen bleibt, und ermöglicht dem
Programmierer, die Validierung, Prüfung und das Austesten des
Entwurfs durchzuführen.
-
Ein SOC mit einem Prozessorkern enthält jedoch
auch andere Schaltungskerne. Wenn die Funktionen solcher anderer
Schaltungskerne von getrennten integrierten Schaltungen auf einer
PCB durchgeführt
werden, ist das oben erwähnte
passive Datensammeln bei Tests des PCBs für Austest-Zwecke ausreichend.
Wie bei dem Prozessorkern sind jedoch auch bei den anderen Schaltungskernen
gewöhnlich proportional
weniger Anschlüsse verfügbar, als
wenn ihre äquivalente
Funktion als eine getrennte integrierte Schaltung durchgeführt werden
würde,
aufgrund der zunehmenden Aufwendungen solcher Anschlüsse im Hinblick
auf Kosten und Chipfläche.
Folglich bleibt Prozeßaktivität in diesen
anderen Schaltungskernen vor dem SOC-Entwickler oder Programmierer „verborgen"
(z.B. ist weniger zugänglich),
wenn immer weniger Anschlüsse
oder Leitungen oder andere Punkte zur Überwachung verfügbar werden.
Statt dessen verbleiben Informationen, die zwischen den integrierten
Schaltungen auf einer PCB ausgetauscht worden wären, nun in der integrierten
Schaltung eines SOC und sind deshalb nicht für die Detektion durch einen
Programmierer durch die zuvor beschriebenen Verfahren verfügbar.
-
Folglich wird in der Technik eine
neue Vorrichtung und/oder ein neues Verfahren zum effizienten Validieren
und Austesten eines SOC benötigt.
-
KURZE DARSTELLUNG
DER ERFINDUNG
-
Gemäß einem oder mehreren Aspekten
der vorliegenden Erfindung wird eine integrierte Schaltung bereitgestellt,
die mindestens einen Prozessorkern enthält. Die integrierte Schaltung
enthält
außerdem
mindestens eine Prozessoremulatorschaltung, die an den mindestens
einen Prozessorkern angekoppelt ist und betreibbar ist, um Informationen
bereitzustellen, die Prozeßaktivität angeben,
die dem mindestens einen Prozessorkern zugeordnet ist. Die integrierte
Schaltung enthält
außerdem
mindestens einen anderen Kern. Die integrierte Schaltung enthält außerdem mindestens
eine andere Emulatorschaltung, die an den mindestens einen anderen
Kern angekoppelt ist und betreibbar ist, um Informationen bereitzustellen,
die Prozeßaktivität angeben,
die dem mindestens einen anderen Kern zugeordnet ist. Die integrierte
Schaltung enthält
außerdem
eine Emulationsschnittstellenschaltung, die an die mindestens eine
Prozessoremulatorschaltung und die mindestens eine andere Emulatorschaltung
angekoppelt ist. Die Emulatorschaltung ist be treibbar, um die jeweiligen
Informationen zu empfangen, die die Prozeßaktivität angeben, die dem mindestens
einen Prozessorkern und dem mindestens einen anderen Kern zugeordnet
ist.
-
In einem anderen Aspekt der vorliegenden Erfindung
enthält
die obige integrierte Schaltung ein gemeinsames Bezugstaktsignal.
Die Prozessoremulatordatensignale umfassen Timinginformationen aus dem
gemeinsamen Bezugstaktsignal. Die anderen Emulatordatensignale umfassen
Timinginformationen aus dem gemeinsamen Taktsignal.
-
Gemäß einem weiteren Aspekt der
vorliegenden Erfindung wird ein System zum Austesten integrierter
Schaltungen bereitgestellt. Das System enthält ein Test-Werkzeug und eine
integrierte Schaltung als Ziel. Die integrierte Schaltung enthält mindestens
einen Prozessorkern. Die integrierte Schaltung enthält außerdem mindestens
eine Prozessoremulatorschaltung, die an den mindestens einen Prozessorkern
angekoppelt ist und betreibbar ist, um Informationen bereitzustellen,
die Prozeßaktivität angeben,
die dem mindestens einen Prozessorkern zugeordnet ist. Die integrierte
Schaltung enthält
außerdem
mindestens einen anderen Kern. Die integrierte Schaltung enthält außerdem mindestens
eine andere Emulatorschaltung, die an den mindestens einen anderen
Kern angekoppelt ist und betreibbar ist, um Informationen bereitzustellen,
die Prozeßaktivität angeben,
die dem mindestens einen anderen Kern zugeordnet ist. Die integrierte
Schaltung enthält
außerdem
eine Emulationsschnittstellenschaltung, die an die mindestens eine
Prozessoremulatorschaltung, die mindestens eine andere Emulatorschaltung
und das Test-Werkzeug angekoppelt ist. Die Emulationsschnittstellenschaltung
ist betreibbar, um die jeweiligen Informationen zu empfangen, die
die Prozeßaktivität angeben,
die dem mindestens einen Prozessorkern und dem mindestens einen
anderen Kern zugeordnet ist, und die jeweiligen Informationen an
das Test-Werkzeug auszugeben.
-
Gemäß einem weiteren Aspekt der
vorliegenden Erfindung wird ein erweiterter Schaltungskern auf einer
integrierten Schaltung bereitgestellt. Der erweiterte Schaltungskern
enthält
einen Nicht-Prozessor-Kern und eine Emulatorschaltung. Die Emulatorschaltung
ist an den Nicht-Prozessor-Kern angekoppelt und ist betreibbar,
um die Datensignale des Nicht-Prozessor-Kerns zu erzeugen, die Informationen
enthalten, die Prozeßaktivität angeben,
die dem Nicht-Prozessor-Kern zugeordnet ist.
-
Gemäß einem weiteren Aspekt der
vorliegenden Erfindung wird ein Test-Werkzeug bereitgestellt. Das
Test-Werkzeug enthält
eine Empfangsschaltung, die betreibbar ist, um die Datensignale
der Emulationsschnittstellenschaltung zu empfangen, einschließlich Informationen,
die Prozeßaktivität in mindestens
einem Prozessorkern angeben, und Informationen, die Prozeßaktivität in mindestens
einem anderen Kern angeben. Das Test-Werkzeug enthält außerdem eine Übersetzungsschaltung,
die betreibbar ist, um die Datensignale der Emulationsschnittstellenschaltung
in vom Host lesbare Datensignale umzuwandeln. Das Test-Werkzeug
enthält
außerdem
eine Sendeschaltung, die betreibbar ist, um die vom Host lesbaren
Datensignale zu senden.
-
Gemäß einem weiteren Aspekt der
vorliegenden Erfindung wird eine Emulationsschnittstellenschaltung
auf einer integrierten Schaltung bereitgestellt. Die Emulationsschnittstellenschaltung
enthält eine
erste Schaltung, die betreibbar ist, um Informationen zu empfangen,
die Wirkaktivität
anzeigen, die dem mindestens einen Prozessorkern auf der integrierten
Schaltung zugeordnet ist. Die Emulationsschnittstellenschaltung
enthält
außerdem
eine zweite Schaltung, die betreibbar ist, um Informationen zu empfangen,
die Wirkaktivität
anzeigen, die dem mindestens einen anderen Kern auf der integrierten Schaltung
zugeordnet ist.
-
Gemäß einem weiteren Aspekt der
vorliegenden Erfindung wird ein Verfahren zum Austesten eines auf
einer integrierten Schaltung wirkenden Programms bereitgestellt.
Das Verfahren umfaßt
das Erkennen von Informationen, die Prozeßaktivität in einem Prozessorkern anzeigen,
mit einer Prozessoremulatorschaltung. Das Verfahren umfaßt außerdem das
Erkennen von Informationen, die Prozeßaktivität in dem anderen Kern anzeigen,
mit der anderen Emulatorschaltung. Das Verfahren umfaßt außerdem das
Zuführen
der Informationen, die Prozeßaktivität in einem
Prozessorkern anzeigen, zu einer Emulationsschnittstellenschaltung.
Das Verfahren umfaßt außerdem das
Zuführen
der Informationen, die Prozeßaktivität in dem
anderen Kern anzeigen, zu der Emulationsschnittstellenschaltung.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockschaltbild einer integrierten Schaltung gemäß einem
oder mehreren Aspekten der vorliegenden Erfindung.
-
1A ist
ein Blockschaltbild eines Systems gemäß einem oder mehreren Aspekten
der vorliegenden Erfindung.
-
2 ist
ein Blockschaltbild einer ausführlicheren
alternativen Ausführungsform
einer integrierten Schaltung gemäß einem
oder mehreren Aspekten der vorliegenden Erfindung.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Unter Bezugnahme auf die Zeichnung,
bei der gleiche Bezugszahlen gleiche Elemente angeben, ist in 1 ein Blockschaltbild einer
integrierten Schaltung 100 gezeigt. Die integrierte Schaltung 100 ist
vorzugsweise ein SOC, zum Beispiel eine anwendungsspezifische integrierte
Schaltung (ASIC) Die integrierte Schaltung 100 enthält vorzugsweise
mehrere Kerne von Schaltkreisen (z.B. die Schaltungskerne 102, 106 und/oder
andere, nicht gezeigte). Einige der einem SOC-Entwickler verfügbaren Arten von Kernen werden
später
ausführlicher
besprochen. Die Schaltungskerne werden vorzugswei se ausgewählt und
( unter Verwendung von „Anpasslogik")
miteinander gekoppelt, um das SOC zu erzeugen. Solche von ASICs
und anderen SOCs verwendeten Schaltungskerne können auch als Funktionseinheiten,
Makrokomponenten der Systemebene, Makrofunktionen, Funktionsblöcke, Makrozellen,
Funktionszellen, Baublöcke
der Systemebene oder vielen anderen ähnlichen Begriffen bezeichnet
werden. Jeder dieser Begriffe bezieht sich auf eine getrennte Gruppe
von Schaltungen,die einer besonderen Funktion oder Funktionen zugeordnet
ist.
-
Vorzugsweise enthält die integrierte Schaltung 100 einen
Prozessorkern 102, mindestens einen anderen Kern 106 und
eine Emulationsschnittstellenschaltung 110. Der Prozessorkern 102 enthält vorzugsweise
eine erste Emulatorschaltung 104 (oder ist dieser zugeordnet),
die betreibbar ist, um Zugang zu der Funktionsweise des Prozessorkerns 102 bereitzustellen
(z.B. auf Prozeßaktivität zuzugreifen,
die ansonsten nicht überwachbar
wäre).
Die erste Emulatorschaltung 104 liefert auf einem ersten Emulatordatenkanal 112 Datensignale
bezüglich
des Zustands oder der Funktionsweise des Prozessorkerns 102.
Als Alternative können
Informationen über den
Datenfluß aus
der Emulationsschnittstellenschaltung 110 über einen
ersten Steuerkanal 114 zu den ersten Emulationsschaltung 104 weitergeleitet werden.
-
Vorzugsweise kann die erste Emulatorschaltung 104 Zugang
zu dem Prozessorkern 102 und somit verschiedene Arten und
Mengen von Daten über den
ersten Datenkanal 112 für
die Emulationsschnittstellenschaltung 110 bereitstellen.
Die Emulationsschnittstellenschaltung 110 ist vorzugsweise
betreibbar, um zu bewirken, daß die
erste Emulatorschaltung 104 die Art und die Menge der in
dem Prozessorkern 102 überwachten
Prozeßaktivität und somit die
Art und die Menge der über
den ersten Datenkanal 112 zu der Emulationsschnittstellenschaltung 110 weitergeleiteten
Daten ändert.
Als Beispiel kann die Emulationsschnittstellenschaltung 110 bewirken,
daß die
erste Emulatorschaltung 104 wesentlich mehr Informationen
oder weniger Informationen über
die Prozesse in dem Prozessorkern 102 überwacht und weiterleitet.
-
Die erste Emulatorschaltung 104 ist
außerdem
vorzugsweise betreibbar, um den Zustand und die Funktionsweise des
Prozessorkerns 102 gemäß Steuersignalen,
die über
den ersten Emulatorsteuerkanal 114 empfangen werden, zu
verändern.
Vorzugsweise liefert die Emulationsschnittstellenschaltung 110 die
Emulationssteuersignale über
den ersten Emulatorsteuerkanal 114 und empfängt die
Datensignale, die den Zustand der ersten Emulatorschaltung 104 angeben.
-
Zwar hängt der spezifische Inhalt
der durch die erste Emulatorschaltung 104 bereitgestellten
Datensignale zum großen
Teil von dem spezifischen Typ des verwendeten Prozessorkerns 102 ab,
es wird jedoch gemäß der Erfindung
bevorzugt, daß die
Datensignale Informationen enthalten, die sich für das Prüfen, die Entwurfsvalidierung,
das Austesten usw. eignen. Zum Beispiel kann die erste Emulatorschaltung 104 der
Emulationsschnittstellenschaltung 110 Informationen zur
Abfolgeüberwachung
des Programms und der Daten aus dem Prozessorkern 102 liefern. Außerdem kann
die erste Emulatorschaltung 104 Datensignale liefern, die
Informationen bezüglich
eines oder mehrerer Register in dem Prozessorkern 102 enthalten,
und zwar vorzugsweise Informationen, die das Prüfen, die Entwurfsvalidierung,
das Austesten usw. betreffen. Zum Beispiel kann die Emulatorschaltung 104 Datensignale
bereitstellen, die den Zustand eines oder mehrerer Register in dem
Prozessorkern 102 enthalten. Diese durch die Datensignale
aus der erste Emulatorschaltung 104 bereitgestellten Informationen
können
betrachtet werden, einen Teil des Zustands des Prozessorkerns 102 oder
den gesamten Zustand anzugeben.
-
Die erste Emulatorschaltung 104 reagiert vorzugsweise
auf die über
den Emulatorsteuerkanal 114 aus der Emulationsschnittstellenschaltung 110 empfangenen
Steuersignale. Wiederum hängt
der spezifische Inhalt der Steuersignale wahrscheinlich von dem
Typ des verwendeten Prozessorkerns 102 ab. Die durch die
erste Emulatorschaltung 104 über den ersten Emulatorsteuerkanal 114 empfangenen Steuersignale
können
jedoch Änderungen
sowohl in der ersten Emulatorschaltung 104 als auch in
dem Prozessorkern 102 verursachen. Bei einer bevorzugten
Ausführungsform
können
die Steuersignale bewirken, daß die
erste Emulatorschaltung 104 den Prozessorkern 102 auf
bestimmte Ereignisse, wie zum Beispiel Überwachungspunkte oder Unterbrechungspunkte, überwacht,
oder die Menge oder den Typ der gesammelten Informationen zur Ablaufüberwachung ändert. Wenn
die erste Emulatorschaltung 104 solche Steuersignale empfangen
kann, können Emulationsdatensignale,
die durch die Emulationsschnittstellenschaltung 110 über den
ersten Emulatordatenkanal 112 empfangen werden, Informationen bezüglich bestimmter
Ereignisse, wie zum Beispiel Unterbrechungspunkte und Überwachungspunkte, enthalten.
-
Bei einer anderen Ausführungsform
können die
Steuersignale bewirken, daß die
erste Emulatorschaltung 104 den Zustand von Schaltungen
in dem Prozessorkern 102 ändert. Bei einer weiteren Ausführungsform
können
die Steuersignale bewirken, daß die
erste Emulatorschaltung 104 den Zustand von Registern in
dem Prozessorkern 102 ändert.
Außerdem
können
die Steuersignale bewirken, daß die erste
Emulatorschaltung 104 den Zustand der Speicherstellen in
dem Prozessorkern ändert.
Wenn die erste Emulatorschaltung 104 solche Steuersignale empfängt, werden
Emulationsdatensignale, die durch die Emulationsschnittstellenschaltung 110 über den
ersten Emulatordatenkanal 112 empfangen werden, Informationen
bezüglich
des Zustands solcher Speicherstellen enthalten.
-
Der andere Kern 106 enthält vorzugsweise eine
zweite Emulatorschaltung 108 (oder ist dieser zugeordnet),
die Zugang zu der Funktionsweise des anderen Kerns 106 bereitstellen
kann. Der andere Kern 106 ist kein Prozessorkern. Die zweite
Emulatorschaltung 108 stellt vorzugsweise Zugang zu den Schaltungen
und Funktionen in dem anderen Kern 106 bereit, um das Prüfen, die
Entwurfsvalidierung, das Austesten usw. zu ermöglichen. Zu diesem Zweck führt die
zweite Emulatorschaltung 108 vorzugsweise der Emulationsschnittstellenschaltung 110 auf
einem zweiten Emulatordatenkanal 116 Datensignale zu. Der
spezifische Inhalt der durch die zweite Emulatorschaltung 108 bereitgestellten
Datensignale wird abhängig
von dem spezifischen Typ des verwendeten anderen Kerns 106 unterschiedlich sein.
Aufgrund der großen
Anzahl möglicher
anderer Kerne 106 ist der Schwankungsbereich sehr groß. Wenn
es sich bei dem anderen Kern 106 zum Beispiel hauptsächlich um
analoge Schaltkreise handelt, dann könnte die zweite Emulationsschaltung 108 Informationen
darüber
liefern, wann die Spannung eines bestimmten Punkts einen programmierten
Pegel überschreitet.
Wenn es sich bei dem anderen Kern 106 hauptsächlich um
digitale Logikschaltkreise handelt, kann er als finite Zustandsmaschine
betrachtet werden, und die zweite Emulatorschaltung 108 kann Informationen
bezüglich
des Zustands des anderen Kerns liefern. Die Informationen dienen
ungeachtet des Typs des anderen Kerns 106 vorzugsweise
zum Prüfen,
für die
Entwurfsvalidierung, für
das Austesten usw.
-
Die zweite Emulatorschaltung 108 reagiert vorzugsweise
auf die über
einen zweiten Emulatorsteuerkanal 118 aus der Emulationsschnittstellenschaltung 110 empfangenen
Steuersignale. Der spezifische Inhalt der Steuersignale wird wahrscheinlich von
dem Typ des verwendeten anderen Kerns 106 abhängen. Die über den
zweiten Emulatorsteuerkanal 118 durch die zweite Emulatorschaltung 108 empfangenen
Steuersignale können
jedoch Änderungen
sowohl in der anderen Emulatorschaltung 108 als auch in
dem anderen Kern 106 verursachen. Bei einer bevorzugten
Ausführungsform
können
die Steuersignale bewirken, daß die
andere Emulatorschaltung 108 den anderen Kern 106 auf
spezifische Ereignisse, wie zum Beispiel Überwachungspunkte oder Unterbrechungspunkte, überwacht,
oder die Menge und Art der gesammelten Informationen zur Ablaufüberwachung ändert. Wenn
die andere Emulatorschaltung 108 solche Steuersignale empfängt, können Emulationsdatensignale,
die von der Emulati onsschnittstellenschaltung 110 über den
zweiten Emulatordatenkanal 116 empfangen werden, Informationen
bezüglich
spezifizierter Ereignisse, wie zum Beispiel Unterbrechungspunkte
und Überwachungspunkte,
sowie solche Informationen zur Ablaufüberwachung enthalten.
-
Durch die Emulationsschaltung 110 bereitgestellte
Steuersignale können
außerdem
bewirken, daß die
zweite Emulatorschaltung 108 eine Änderung der Funktionsweise
des anderen Kerns 106 bewirkt. Zu solchen Änderungen
der Funktionsweise kann zum Beispiel eine Veränderung der Zustände (oder
Werte) in Registern in dem anderen Kern 106 zählen. Die
zweite Emulatorschaltung 108 kann außerdem der Emulationsschnittstellenschaltung 110 Zustandsinformationen über sich
selbst zuführen.
-
Der Prozessorkern 102 und
der andere Kern 106 werden wahrscheinlich aufgrund verschiedener Architekturen
verschiedene Befehle aufweisen. Wenn die Befehlssätze jedoch ähnlich genug
sind, oder anders gesagt, die beiden Prozessoren als Zustandsmaschinen
modelliert werden können,
die ähnlich
genug sind, dann kann die Steuerung der Befehle und Interpretationen
hauptsächlich
in der Emulationsschnittstellenschaltung 110 verankert
sein. Dies ist wünschenswert,
da dadurch Chipfläche
gespart wird. In einem allgemeineren Rahmen, in dem die Modelle
der Zustandsmaschinen der beiden Prozessoren 102 und 106 sehr
unterschiedlich sind, wird jedoch der Großteil der Informationen und
der Logik, die zum Befehlen und Interpretieren von Signalen zu und
von dem anderen Kern 106 notwendig sind, in der Emulatorschaltung 108 vorliegen.
-
Die Aktivitäten des Prüfens, der Entwurfsverifizierung,
des Austestens usw. werden vorzugsweise durch Schaltungen außerhalb
der integrierten Schaltung 100 beeinflußt. Zu diesem Zweck enthält die Emulationsschnittstellenschaltung 110 vorzugsweise
einen Port 120, durch den Eingangs-/Ausgangs-(E/A)Informationen
zu/von außerhalb
der integrierten Schal tung 100 geleitet werden. Die E/A-Informationen
bewirken vorzugsweise, daß die
Emulationsschnittstellenschaltung 110 die Steuersignale sowohl
zu der ersten Emulatorschaltung 104 als auch der zweiten
Emulatorschaltung 108 sendet. Ähnlich werden die Datensignale
sowohl der ersten Emulatorschaltung 104 als auch der zweiten
Emulatorschaltung 108 vorzugsweise von der Emulationsschnittstellenschaltung 110 durch
den Port 120 als Teil der E/A-Informationen bereitgestellt.
Wie bereits oben erwähnt,
hängt die
Menge der durch die Emulationsschnittstellenschaltung 110 durchgeführten Bearbeitung
von den Emulatorschaltungen 104 und 108 ab. Die
Emulationsschnittstellenschaltung 110 wird jedoch mindestens
Informationen komprimieren, Nachrichten senden bzw. empfangen und
wählen, welche
Daten gesendet werden sollen.
-
1A zeigt
das Onchip-Debugging-System der integrierten Schaltung 100,
das wirksam an außerhalb
der integrierten Schaltung 100 angeordnete Schaltungen
angekoppelt ist. Es ist die integrierte Schaltung 100,
sowie der Port 120 gezeigt. Der Port 120 ist an
das Test-Werkzeug 130 angeschlossen. Das Austest-Werkzeug 130 enthält Schaltkreise,
die zur Bildung einer Schnittstelle mit der Emulationsschnittstellenschaltung 110 notwendig
sind. Als Beispiel kann das Test-Werkzeug 130 die Schaltkreise enthalten,
die für
eine Kommunikation gemäß den durch
die Standards JTAG und Nexus 5001 dargelegten Protokollen notwendig
sind. Das Test-Werkzeug kann weitere Funktionen enthalten, um einen Programmierer
oder Systemarchitekten zu unterstützen. Zu solchen Funktionen
kann die zeitliche Ordnung und Anzeige von Informationen zur Ablaufüberwachung
des Programms und Daten sowie von Ereignisinformationen aus der
Emulationsschnittstellenschaltung 110 gehören. Als
Alternative kann ein Teil dieser Funktionen von einem PC oder einer
anderen an das Test-Werkzeug 130 angeschlossenen Vielzweck-Datenverarbeitungsvorrichtung übernommen
werden.
-
Der Ausdruck „zeitliche Ordnung", der in
der vorliegenden Beschreibung verwendet wird, soll die Ordnung von
Informations stücken
gemäß einem
jedem Stück
zugeordneten Zeitstempel bedeuten. Durch eine solche zeitliche Ordnung
können
Informationen in jeder beliebigen zeitlichen Reihenfolge aus dem
SOC 100 herausfließen,
und wenn alle Informationsstücke
durch Zeitstempelung zum entsprechenden Zeitpunkt mit einem Bezugstakt
synchronisiert wurden, außerhalb
des SOC umgeordnet werden. Die Verwendung eines Bezugstakts zur
Zeitstempelung eines beliebigen Informationsstücks zum Austesten vor der Ausgabe
aus dem SOC ermöglicht dem
Entwickler, keine eigene Chipfläche
für Schaltkreise
aufzuwenden, um die Informationsstücke in dem SOC geordnet zu
halten, und nicht die vergrößerte Bandbreite
berücksichtigen
zu müssen,
die erforderlich wäre,
um die intern zeitlich geordneten Informationen zu verschieben und
auszugeben.
-
Vorteilhafterweise ermöglichen
es die erste Emulatorschaltung 104, die zweite Emulatorschaltung 108 und
die Emulatorschnittstellenschaltung 110 einem SOC-Entwickler
oder -Programmierer, den Prozessorkern 102 und/oder den
anderen Kern 106 unter Verwendung der Emulationsschnittstellenschaltung 110 zu
prüfen,
zu bewerten und/oder auszutesten. Unter anderem wird also eine zusätzliche Testmöglichkeit
des anderen Kerns 106 geschaffen, ohne daß zusätzliche
Schnittstellenschaltkreise erforderlich sind. Da die Emulationsschnittstellenschaltung 110 auf
jeden Fall für
die erste Emulatorschaltung 104 verwendet werden würde, werden
tatsächlich
die Grundfläche
der integrierten Schaltung und die Herstellungskosten verringert.
Die Benutzung einer einzigen Schnittstellenschaltung 110 sowohl
für den
Prozessorkern 102 als auch für den anderen Kern 106 ermöglicht außerdem die
Verwendung eines einzigen Ports 120 sowohl für den Prozessorkern 102 als
auch für
den anderen Kern 106. Vorteilhafterweise muß also die
Anzahl von Anschlüssen,
die speziell dem Prüfen
eines SOC zugeordnet werden muß,
mit der Anzahl anderer verfügbarer
Kerne nicht erhöht
werden.
-
Es sei bemerkt, daß die einem
Entwickler verfügbare
Anzahl von Kernen (die zum Beispiel in einer ASIC-Bibliothek aufgelistet
sind) zur Entwicklung eines SOC beträchtlich ist. Beispiele sind
etwa Prozessorkerne, wie zum Beispiel die wohlbekannten ARM Prozessorkerne
(Advanced Risk Machine), Speicherkerne, wie zum Beispiel RAM-Speicherkerne
(darunter die vielen verschiedenen Varianten von RAM), ROM-Speicherkerne,
Flash-Speicherkerne, PROM-Kerne, darunter EPROM- und EEPROM-Kerne und andere
Speicherkerne. Zu anderen in ASIC-Bibliotheken verfügbaren Kernen gehören Kerne
für digitale
Signalverarbeitung. Diese sind in vielen verschiedenen Varianten
erhältlich.
Weitere Arten von Kernen, die in ASIC-Bibliotheken verfügbar sind, sind Multimedia-Kerne,
die das Codieren oder Decodieren spezifischer Formate von Medien
ermöglichen.
Multimedia-Kerne sind zum Beispiel JPEG-Kerne, Motion-JPEG-Kerne,
MPEG-Decodierungskerne, MP3-Kerne und andere Medienkerne. Darüber hinaus
verfügbare
Kerne in ASIC-Bibliotheken
sind Kerne, die eine Vernetzung ermöglichen. Solche Kerne ermöglichen
Ethernet-Vernetzung, TCP/IP-Vernetzung
und/oder jedes beliebige andere übliche
Schnittstellenprotokoll zur Vernetzung. Da SOCs analoge Schaltkreise
(anstelle von digitaler Logik) verwenden können, sind in ASIC-Bibliotheken auch
fertige analoge Kerne verfügbar,
um beliebige der vielen Funktionen durchzuführen, für die sie gegenüber digitalen
Logikkernen von Vorteil sind.
-
Solche SOCs sind SOCs für „gemischte
Signale", die sowohl analoge als auch digitale Signale enthalten.
Häufig
sind die Kerne selbst Kerne für
gemischte Signale. Zum Beispiel erfordert ein Überwachen des Ausgangssignals
einer analogen Schaltung einen Analog/Digital-Umsetzer (ADC). Alternativ
wird bei Benutzung eines digitalen Signals zur Steuerung einer analogen
Schaltung ein Digital/Analog-Umsetzer erforderlich.
-
Jeder der oben erwähnten Kerne
kann mit Schaltungen zur Onchip-Emulation ausgestattet werden, um
Onchip-Debugging-Systeme
zu ermöglichen.
Eine Emulationsschaltung kann also zur Durchführung der Prüfung, Entwurfsvalidierung
und des Austestens von Programmen und/oder Schaltungsfunktionen
in jedem dieser Kerne verwendet werden. Die Möglichkeit, die Informationen
aus dem Prozessorkern 102 und dem mindestens einen anderen
Kern 106 durch die gemeinsame Emulationsschnittstellenschaltung 110 gemäß der Erfindung
zu sammeln und zu steuern, vereinfacht den Austest- und Entwurfsvalidierungsprozeß für das gesamte SOC
und durch Erweiterung auch für
ein gesamtes PCB, auf der das SOC angebracht werden kann.
-
Ein Fachmann erkennt, daß die oben
beschriebene Ausführungsform
auf mehrere Prozessorkerne und mehrere andere Kerne erweitert werden
kann. Vorteilhafterweise kann die Emulationsschnittstellenschaltung
weiterhin von den mehreren Emulatorschaltungen, die dem mehr als
einem Prozessorkern und dem mehr als einem anderen Kern zugeordnet
sind, gemeinsam verwendet werden.
-
Bei einer anderen Ausführungsform
wird der ersten Emulatorschaltung 104 und der zweiten Emulatorschaltung 108 ein
Bezugstaktsignal zugeführt. Die
erste Emulatorschaltung 104 und die zweite Emulatorschaltung 108 sind
vorzugsweise betreibbar, um Timinginformationen aus dem Bezugstaktsignal
in das Datensignal aus dem Prozessorkern 102 bzw. das Datensignal
aus dem anderen Kern 106 einzufügen. Als Beispiel kann die
erste Emulatorschaltung 104 betreibbar sein, um zugeordnete
Timinginformationen mit Informationen zur Abfolgeüberwachung
des Programms, Informationen zur Abfolgeüberwachung von Daten und Ereignisinformationen
in die Datensignale aus dem Prozessorkern 102 einzufügen. Ähnlich kann
die zweite Emulatorschaltung 108 betreibbar sein, um Timinginformationen
den Informationen zur Abfolgeüberwachung
des Programms, den Informationen zur Abfolgeüberwachung von Daten und den
Ereignisinformationen in den Datensignalen aus dem anderen Kern 106 zuzuordnen.
Die Zuordnung von Timinginformationen zu den jeweiligen Datensignalen
kann als „Zeitstempelung"
bezeichnet werden, da sie bestimmten Datenstücken eine gegebene Zeit zu weist.
Eine solche Zeitstempelung durch ein Bezugstaktsignal synchronisiert
die vielen verschiedenen Datenstücke
aus Datensignalen aus dem Prozessorkern 102 und Datensignalen
aus dem anderen Kern 106, so daß sie später zeitlich geordnet werden
können.
-
Bei einer bevorzugten Ausführungsform
ist das Bezugstaktsignal das Signal, das entweder durch den Takt
des Prozessorkerns 102 oder den Takt des anderen Kerns 106 bereitgestellt
wird. Bei einer besonders bevorzugten Ausführungsform ist das Bezugstaktsignal
das Signal des schnellsten Takts der Kerne. Bei einer weiteren Ausführungsform liefert
ein Bezugstakt auf dem SOC unabhängig
von den Takten der Kerne das Bezugstaktsignal.
-
Bei einer weiteren Ausführungsform
kann das Austest-Werkzeug 130 eine Schaltung enthalten, die
zur zeitlichen Ordnung der jeweiligen zeitgestempelten Datensignale
betreibbar ist. Vorzugsweise kann das Austest-Werkzeug 130 eine
Schaltung enthalten, die betreibbar ist, um folgendes zeitlich zu ordnen:
die Informationen zur Abfolgeüberwachung des
Programms, Informationen zur Abfolgeüberwachung von Daten und Ereignisinformationen
aus der ersten Emulatorschaltung 104, abgeleitet aus dem Betrieb
des Prozessorkerns 102, und die Informationen zur Abfolgeüberwachung
des Programms, Informationen zur Abfolgeüberwachung von Daten und Ereignisinformationen
aus der zweiten Emulatorschaltung 108, die aus dem Betrieb
des anderen Kerns 106 abzuleiten sind.
-
Bei einer weiteren Ausführungsform
kann der Hostcomputer, wie zum Beispiel ein PC, Schaltkreise und/oder
Software bereitstellen, die betreibbar sind, um die jeweiligen zeitgestempelten
Datensignale zeitlich zu ordnen. Bei einer weiteren Ausführungsform
enthält
die Emulationsschnittstellenschaltung 110 vorzugsweise
Schaltungen, die betreibbar sind, um die jeweiligen zeitgestempelten
Datensignale zeitlich zu ordnen. Die über den ersten Emulatordatenkanal 112 bereitgestellten Datensignale
können zugeordnete
Timinginformationen enthalten, und die über den zweiten Datenkanal 116 bereitgestellten Datensignale
können
zugeordnete Timinginformationen enthalten. Die Software-Zeitordnungsfunktion kann
die jeweiligen Datensignale nach Zeit ordnen und solche zeitlich
geordneten Informationen durch den Port 120 zu dem Austest-Werkzeug 130 senden.
-
Eine alternative Ausführungsform
der vorliegenden Erfindung ist als Teil eines Systems in 2 gezeigt. 2 ist ein vereinfachtes Blockschaltbild eines
Festplattensystems 201. Dieses Festplattensystem enthält eine
Kopf-Testplatten-Baugruppe 202 und
ein IC 204 zur Leistungs-und Bewegungssteuerung, die wirksam
an die integrierte Schaltung (HDD-IC) 200 der Festplattensteuerung
angekoppelt sind. Das HDD-IC 200 ist betreibbar, um eine
Festplatte zu steuern. Das HDD-IC 200 ermöglicht Lese- und
Schreibzugriff zu den Informationen, die der Kopf-Testplatten-Baugruppe 202 verfügbar sind.
-
Vorzugsweise enthält das HDD-IC 200 einen Prozessorkern 206,
einen Lese-/Schreibkanal 210, eine Plattensteuerung 212 und
ein Emulationsschnittstellenmodul 216. Der Prozessorkern 206 liefert
die Funktionen eines Mikroprozessors. Der Prozessorkern 206 ist
wirksam an Programm- und Variablenspeicher 208 angekoppelt
gezeigt. Vorzugsweise enthält
der Programm- und Variablenspeicher 208 das Programm, das
auf dem Prozessorkern 206 laufen soll, und die Variablen,
die durch das Programm in dem Prozessorkern 206 erzeugt
und verändert werden.
Als Al-ternative
kann der Prozessorkern 206 als diesen Speicher als integralen
Bestandteil enthaltend betrachtet werden. Der Prozessorkern 206 ist außerdem wirksam
durch den Bus 215 an das IC 204 zur Leistungs-und
Bewegungssteuerung angekoppelt. Das IC 204 zur Leistungs-und
Bewegungssteuerung liefert dem Prozessorkern 206 spezialisierte Steuerinformationen.
Der Prozessorkern 206 enthält die dritte Emulatorschaltung 207 (oder
ist dieser zugeordnet). Vorzugsweise ist die Funktionsweise der dritte
Emulatorschaltung 207 ähnlich
wie bei der zuvor beschriebenen ersten Emulatorschaltung 104.
-
Die Plattensteuerung 212 ist
ein Schaltungskern, der betreibbar ist, um Steuersignale zur Steuerung
einer Kopfplattenbaugruppe, wie zum Beispiel der Kopf-Testplatten-Baugruppe 202,
zu liefern. Vorzugsweise ist die Plattensteuerung 212 wirksam
an den Pufferspeicher 214 angekoppelt. Vorzugsweise stellt
der Pufferspeicher 214 Pufferraum für durch die Plattensteuerung 212 fließende Daten
bereit. Die Plattensteuerung 212 enthält die vierte Emulatorschaltung 213 (oder
ist dieser zugeordnet). Vorzugsweise ist die Funktionsweise der
vierten Emulatorschaltung 213 ähnlich wie bei der zuvor beschriebenen
zweiten Emulatorschaltung 108.
-
Der Lese-/Schreibkanal 210 ist
ein Schaltungskern, der betreibbar ist, um Eingangs-/Ausgangskommunikationsfähigkeiten
bereitzustellen. Der Lese-/Schreibkanal 210 ist wirksam
an die Kopf-Testplatten-Baugruppe 202 angekoppelt gezeigt.
Vorzugsweise enthält
der Lese-/Schreibkanal 210 die fünfte Emulatorschaltung 211 (oder
ist dieser zugeordnet). Die fünfte
Emulatorschaltung 211 ist vorzugsweise der bereits beschriebenen
zweiten Emulatorschaltung 108 ähnlich. Vorzugsweise sind der
Prozessorkern 206, der Lese-/Schreibkanal 210 und
die Plattensteuerung 212 wirksam an den Bus 215 angekoppelt.
-
Bei einem Beispiel für den normalen
Betrieb eines solchen Festplattensystems 201 wird ein Programm
auf dem Prozessorkern 206 ausgeführt. Das Programm ist vorzugsweise
in dem Speicher 208 gespeichert. Die von dem Programm erzeugten
und manipulierten Variablen werden vorzugsweise auch in dem Speicher 208 gespeichert.
Das Programm bewirkt, daß der
Prozessorkern 206 das Festplattensystem 201 betreibt.
Der Prozessorkern 206 ist betreibbar, um der Plattensteuerung 212 über den
Bus 215 Steuersignale zuzuführen. Diese Steuersignale können u.a.
bewirken, daß die
Plattensteuerung 212 die Kopf-Testplatten-Baugruppe 202 betreibt,
um zu bewirken, daß Daten gelesen
und geschrieben werden. Es gibt mehrere Kombinationen der Kernbenutzung,
die die Plattensteuerung 212 bei der Erzeugung von Signalen
unterstützen
können.
Ein Entwickler wird jedoch häufig
versuchen, jedwede Last auf dem Prozessorkern zu minimieren, wodurch über das
grundlegende Problem eines Mangels jeglicher zentralisierter Steuerungslogikschaltkreise
hinausgehende Entwurfsprobleme weiter verkompliziert werden. Bei
einer Ausführungsform
kann der Prozessorkern 206 Informationen aus dem IC 204 zur
Leistungs-und Bewegungssteuerung anfordern und empfangen. Solche
Informationen sind betreibbar, um den Prozessorkern 206 bei
der Erzeugung von Steuersignalen, die der Plattensteuerung 212 zugeführt werden
sollen, zu unterstützen.
Die von der Plattensteuerung 212 zum Betrieb der Kopf-Testplatten-Baugruppe 202 bereitgestellten
Steuersignale werden vorzugsweise durch das IC 204 zur
Leistungs-und Bewegungssteuerung oder den Lese- und Schreibkanal 210 übertragen.
Vorzugsweise führt
der Lese-/Schreibkanal 210 diese Steuersignale aus der Plattensteuerung 212 der
Kopf-Testplatten-Baugruppe 202 zu.
Vorzugsweise empfängt
der Lese/Schreibkanal 210 Daten aus der Kopf-Testplatten-Baugruppe 202.
Der Lese-/Schreibkanal 210 sendet diese Daten über den
Datenbus (nicht gezeigt) zu der Plattensteuerung 212. Vorzugsweise können diese
Daten in einem Pufferspeicher 214 gepuffert werden. Vorzugsweise
können
diese gepufferten Daten durch einen nicht gezeigten Kommunikationskanal
aus der integrierten Schaltung 200 ausgegeben werden.
-
Das oben beschriebene Programm ermöglicht die
Eingabe und Ausgabe von Daten aus der Kopf-Testplatten-Baugruppe 202.
Ein solches Programm kann Aktivität auf dem Prozessorkern 206, der
Plattensteuerung 212 und dem Lese-/Schreibkanal 210 aufweisen.
Das HDD-IC 200 enthält
ein Emulationsschnittstellenmodul 216, um eine Onchip-Emulation
zu ermöglichen.
Vorzugsweise liefert die dritte Emulatorschaltung 207 auf
dem Emulatordatenkanal 218 Datensignale bezüglich der
Funktionsweise des Prozessorkerns 206. Die dritte Emulatorschaltung 207 ist
vorzugsweise betreibbar, um den Zustand und die Funktionswei se des
Prozessorkerns 206 gemäß über den
Emulatorsteuerkanal 219 empfangenen Steuersignalen zu verändern. Vorzugsweise
hat die Emulatorschnittstellenschaltung 216 die Emulationssteuersignale über den
Emulatorsteuerkanal 219 bereitgestellt und empfängt die
Emulationsdatensignale über
den Emulatordatenkanal 218.
-
Zwar hängt der spezifische Inhalt
der von der dritten Emulatorschaltung 207 bereitgestellten
Datensignale zum großen
Teil von dem spezifischen Typ des verwendeten Prozessorkerns 206 ab,
es wird jedoch gemäß der Erfindung
bevorzugt, daß die
Datensignale Informationen enthalten, die sich für das Prüfen, die Entwurfsvalidierung,
das Austesten usw. eignen. Zum Beispiel sind die auf dem Datenkanal 218 bereitgestellten
Datensignale den auf dem Emulatordatenkanal 112 bereitgestellten
Datensignalen ähnlich. Ähnlich sind
die von der Emulationsschnittstellenschaltung 216 über den
Emulationssteuerkanal 219 bereitgestellten Steuersignale
den über
den Emulatorsteuerkanal 114 bereitgestellten Steuersignalen ähnlich.
-
Die vierte Emulatorschaltung 213 gibt
vorzugsweise Zugang zu den Schaltungen und ihren Funktionen in der
Plattensteuerung 212, um das Prüfen, den Entwurf, die Validierung,
das Austesten usw. zu erleichtern. Zu diesem Zweck liefert die Emulatorschaltung 213 vorzugsweise
Datensignale auf dem Emulatordatenkanal 220 an die Emulationsschnittstellenschaltung 216.
Der spezifische Inhalt der durch die dritte Emulatorschaltung 213 gelieferten Datensignale
hängt zum
großen
Teil von dem spezifischen Typ der verwendeten Plattensteuerung 212 ab. Ähnlich gibt
die fünfte
Emulatorschaltung 211 Zugang zu den Schaltungen und Funktionen
in dem Lese-/Schreibkanal 210, um das Prüfen, den
Entwurf, die Validierung, das Austesten usw. zu erleichtern. Zu diesem
Zweck liefert die fünfte
Emulatorschaltung 211 Datensignale auf dem Emulatordatenkanal 222 an
die Emulationsschnittstellenschaltung 216. Wiederum hängt der
spezifische Inhalt der von der fünften
Emulatorschaltung 211 bereitgestellten Datensignale zum
großen
Teil von dem spezifischen Typ des verwendeten Lese-/Schreibkanals 210 ab.
-
Zum Beispiel enthalten sowohl die
Plattensteuerung 212 als auch der Lese-/Schreibkanal 210 oft
eine Mischung von analogen Schaltkreisen und digitalen Schaltkreisen,
wobei letztere als Zustandsmaschine beschreibbar sind. Somit können die
vierte Emulatorschaltung 213 und die fünfte Emulatorschaltung 211 in
der Lage sein, analoge Schaltkreise zum Beispiel auf Schwellenvariablen
zu überwachen
und dann die Informationen zu der Emulationsschnittstellenschaltung 216 weiterzuleiten.
Außerdem
können die
vierte Emulatorschaltung 213 und die fünfte Emulatorschaltung 211 in
der Lage sein, auf Zustände
zu überwachen
und Informationen bezüglich
dieser Zustände
zu der Emulationsschnittstellenschaltung 216 weiterzuleiten.
-
Die Aktivitäten des Prüfens, des Entwurfs, der Validierung,
des Austestens usw. werden vorzugsweise durch Schaltungen außerhalb
des HDD-IC 200 beeinflußt. Zu diesem Zweck enthält die Emulatorschnittstellenschaltung 216 vorzugsweise einen
Port 224, durch den Eingangs-/Ausgangs-(E/A-)Informationen
zu/von außerhalb
der integrierten Schaltung 200 geleitet werden. Die E/A-Informationen
bewirken vorzugsweise, daß die
Emulatorschnittstellenschaltung 216 die Steuersignale zu der
dritten Emulatorschaltung 207, der vierten Emulatorschaltung 213 und
der fünften
Emulatorschaltung 211, sendet. Ähnlich werden die Datensignale aus
der dritten Emulatorschaltung 207, der vierten Emulatorschaltung 213 und
der fünften
Emulatorschaltung 211 vorzugsweise aus der Emulationsschnittstellenschaltung 216 durch
den Port 224 als Teil der E/A-Informationen bereitgestellt.
Der Port 224 kann mit einem Test-Werkzeug verbunden sein, das
dem Test-Werkzeug 130 ähnlich
ist.
-
Das HDD-IC 200 ist ein Beispiel
für ein
SOC. Bisher waren der Prozessorkern 206, der Lese-/Schreibkanal 210 und
die Plattensteuerung 212 jeweils unabhängige integrierte Schaltungen auf
einem PCB. Wenn die verschiedenen Schaltungskerne auf einer einzigen
integrierten Schaltung 200 integriert werden, wird die
Entwurfsvalidierung, das Prüfen
und das Austesten des auf dem Prozessorkern 206 und über dem
Rest der Schaltungskerne ablaufenden Programms wesentlich schwieriger.
Die Prozeßaktivität auf der
Plattensteuerung 212 und dem Lese/Schreibkanal 210 wäre dem Programmierer wahrscheinlich
verborgen. Vorteilhafterweise kann bei der vorliegenden Ausführungsform
der Erfindung das Emulationsschnittstellenmodul 216 Datensignale zum
Prüfen
und Austesten aus der Emulatorschaltung 211 und der vierten
Emulatorschaltung 213 des Lese/Schreibkanals 210 bzw.
der Plattensteuerung 212 empfangen und außerdem dieselben
Emulatorschaltungen 211 und 213 konfigurieren.
Durch diesen Zugriff auf Informationen und Steuerung wird das Austesten
eines Programms auf einem SOC wesentlich einfacher. Außerdem ist
vorteilhafterweise der Port 224 ein einziger Zugriffsport
aus einem Test-Werkzeug zu den oben erwähnten Informationen und der
oben erwähnten
Steuerung.
-
Obwohl die Erfindung hier mit Bezug
auf besondere Ausführungsformen
beschrieben wurde, versteht sich, daß diese Ausführungsformen
lediglich die Prinzipien und Anwendungen der vorliegenden Erfindung
veranschaulichen. Es versteht sich deshalb, daß zahlreiche Modifikationen
an den Ausführungsbeispielen
vorgenommen werden können
und daß andere
Anordnungen konzipiert werden können, ohne
vom Gedanken und Umfang der vorliegenden Erfindung abzuweichen,
der durch die angefügten Ansprüche definiert
wird.