DE4329336C2 - Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors - Google Patents
Einrichtung und Verfahren zur Identifizierung eines Computer-MikroprozessorsInfo
- Publication number
- DE4329336C2 DE4329336C2 DE4329336A DE4329336A DE4329336C2 DE 4329336 C2 DE4329336 C2 DE 4329336C2 DE 4329336 A DE4329336 A DE 4329336A DE 4329336 A DE4329336 A DE 4329336A DE 4329336 C2 DE4329336 C2 DE 4329336C2
- Authority
- DE
- Germany
- Prior art keywords
- microprocessor
- flag
- register
- family
- command
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Description
Die Erfindung betrifft eine Identifikationseinrichtung in
einem Mikroprozessor nach dem Oberbegriff des Anspruchs 1
sowie ein Verfahren zum Identifizieren eines Mikroprozessors
nach dem Oberbegriff des Anspruchs 6.
Während des Rechnerbetriebs ist die Identifizierung des
Prozessors in einem bestimmten Computersystem nützlich. Bei
der Initialisierung und bei Anfangsladeoperationen ist es
wichtig, den Mikroprozessor zu identifizieren, so daß
bestimmte Features von der Initialisierungssoftware
installiert werden können.
Außerdem kann es nützlich sein, während der Installation
oder während des Abarbeitens von Software den Mikroprozessor
zu identifizieren. Die Merkmale des Mikroprozessors, die der
Software verfügbar sind, hängen stark von der Familie und dem
Modell des Mikroprozessors ab. Sobald der Mikroprozessor
identifiziert ist, können diese Merkmale besser genutzt
werden.
Es kann nützlich sein, zusätzlich zur Familie und dem Mo
dell des Mikroprozessors die Version (Stepping) des Mikropro
zessors zu kennen. Eine "Stepping-ID" eines Mikroprozessors
identifiziert seine Version. Z. B. kann der Mikroprozessor in
mehreren verschiedenen Versionen hergestellt worden sein, wo
bei jede Version mit einer anderen Stepping-ID identifiziert
ist. Während der Zeit, in der ein Mikroprozessor hergestellt
wird, werden oft verschiedene Versionen eines Mikroprozessors
eingeführt, um Konstruktionsfehler (bugs) oder andere
Probleme, die in älteren Versionen aufgetreten sind, zu
korrigieren. Oft werden diese Fehler erst entdeckt, nachdem
ein Mikroprozessor in Produktion gegangen ist, wenn es zu
spät für eine Korrektur ist. Fehler können die Antwort des
Mikroprozessors auf bestimmte Befehle oder bestimmte
Befehlsfolgen beeinflussen. Es ist nützlich, die Stepping-ID
eines Mikroprozessors zu kennen, damit Befehle und Merkmale,
die von dem Fehler betroffen sind, nicht aktiviert werden.
Außerdem sind die Fehler bekannt, sobald ein Mikroprozessor
durch die Stepping-ID identifiziert wurde, und
Kompensationssoftware kann installiert werden. Soft
warefixierungen, die einen vorhandenen Fehler kompensieren,
werden oft "Umgehungen" genannt. Wenn es z. B. bekannt ist,
daß ein von einem "POP A" gefolgter "PUSH A" eine Ausnahme
erzeugt, besteht eine Lösung darin, einen "NOP" (keine
Operation) zwischen die beiden Befehle einzufügen.
Um den Mikroprozessor während der Initialisierung eines
Computers zu identifizieren, haben ältere Mikroprozessoren
einen Konstanten-ROM mit einem ID-Code, der beim
Betriebsstart in ein Register des Computer-Mikroprozessors
gelesen wird. Nach dem Lesen des ID-Codes wird der Inhalt des
Registers von der Initialisierungssoftware überschrieben. Der
Inhalt des Konstanten-ROM ist für alle anderen Zwecke nicht
verfügbar, z. T. wegen Kompatibilitätserfordernissen. Ein
Problem bei dieser Herangehensweise besteht darin, daß der
ID-Code nur während der Initialisierung und nicht zu jeder
anderen Zeit verfügbar ist.
In der GB 2 230 362 A ist eine Identifizierung von
Prozessoren beschrieben, bei der der Prozessor einen Speicher
mit Mikroprozessor-Identifikationsdaten enthält. Durch das
Auslesen des Speichers können die Eigenschaften des
Prozessors ermittelt werden. Das Auslesen geschieht jedoch
nicht durch den Prozessor selbst, sondern von außerhalb des
Prozessors.
Die DE-AS 17 74 040 beschreibt ein Verfahren zum
Bestimmen der an eine Datenverarbeitungsanlage
angeschlossenen, verschiedenen Ein-/Ausgabe-Einheiten. Hierfür
ist ein Art-Feststellungsbefehl vorgesehen, der dekodiert
wird, um eine Typ-Identifikation abzufragen, die
Informationen unterschiedlicher Art über die Ein-/Ausgabe-
Einheiten enthalten kann. Die Selbstidentifizierung eines
Mikroprozessors wird nicht beschrieben.
US-PS 4,167,779 beschreibt die Implementierung von
besonderen Befehlen in einem Prozessor, die für Test- und
Diagnosezwecke den Zugriff auf Register oder Speicher
erlauben, welche sonst durch allgemeine Programmbefehle nicht
zugänglich sind. Der interne Zustand von Registern des
Prozessors kann mittels eines solchen Spezialbefehls in ein
auslesbares Register übertragen werden. Bei den auslesbaren
Registern handelt es sich jedoch um dynamische Register und
nicht um Nur-Lese-Speicher, die Identifikationsdaten des
Mikroprozessors selbst enthalten.
Bekannte Identifikationsverfahren eines Mikroprozessors
basieren auf einer Fall-zu-Fall-, "ad hoc"-Lösung. Wenn bei
spielsweise ein erstes Modell ein bestimmtes Bit immer auf
Null setzt und das zweite Modell das bestimmte Bit auf Eins
setzt, dann kann dieses Bit zur Feststellung, ob der
Mikroprozessor zum ersten oder zum zweiten Modell gehört,
geprüft werden.
Die DE 36 24 373 C2 beschreibt ein solches Verfahren zum
Identifizieren eines Mikroprozessors, in dem das
Vorhandensein eines bestimmten Registers durch Schreiben in
und Lesen aus diesem Register festgestellt wird.
Um die Stepping-ID zu bestimmen, war oft eine
kompliziertere Herangehensweise erforderlich. Z. B. könnte
eine Programmschrittfolge ausgeführt werden, die das
Vorhandensein eines Fehlers erkennt und dabei den
Mikroprozessor als einen einer bestimmten Version (Stepping)
identifiziert. Eine Vielzahl an oft inkonsistenten Verfahren
zur Fehlerbestimmung wurde von den verschiedenen
Softwarefirmen entwickelt. Diese Verfahren, die für ältere
Mikroprozessorgenerationen entwickelt wurden, können falsche
Ergebnisse liefern, wenn sie für jüngere Generationen
verwendet werden.
Die Einführung neuer Familien und Modelle hat über die
Jahre dazu geführt, daß die einen installierten
Mikroprozessor identifizierende Software komplizierter und
zeitaufwendiger wurde. Die INTEL-x86-Mikroprozessorfamilie
umfaßt die 8086-, die 80286-, die Intel386TM("i386TM")- und
die Intel486TM(i486TM)-Mikroprozessorfamilien. Innerhalb
dieser Familien kann es zwei oder mehrere Modelle, wie
beispielsweise den "SXTM" oder den "DXTM" geben. Jedes Modell
kann drei, vier oder mehr Versionen haben, von denen jede
eine andere Stepping-ID hat.
Um die Familie, das Modell und die Stepping-ID in den
alten INTEL-x86-Mikroprozessoren zu identifizieren, werden
eine Reihe von Befehlen nacheinander ausgeführt.
Beispielsweise kann der Code zunächst feststellen, ob der
Mikroprozessor ein 8086-Mikroprozessor, ein 80286-
Mikroprozessor oder ein höherer Mikroprozessor ist. Nach dem
Ausschließungsprinzip würde er zunächst feststellen, daß es
kein 8086-Mikroprozessor war und deshalb der Mikroprozessor
zum Modell 80286 oder zu einem höheren gehören muß. Die
Operationsfolge dauert an und verbraucht oft eine hohe
Schrittanzahl und viel Zeit, bevor das genaue Modell und das
Stepping des Mikroprozessors bekannt sind. Dieser kompli
zierte Prozeß beansprucht viel Zeit eines Programmierers und
erfordert eine sorgfältige Implementierung. Außerdem sind die
Operationsfolgen im Hinblick auf die Identifizierung des Pro
zessors nicht ganz zuverlässig. Besonders bei zukünftigen Mi
kroprozessorgenerationen werden die Verfahren vielleicht
nicht wie erwartet funktionieren. Beispielsweise werden
Sequenzen, die sich in älteren Generationen auf zeitliche
Abläufe von Befehlen verlassen, bei zukünftig entwickelten
Generationen nicht die erwarteten Ergebnisse liefern.
Bei den jüngsten Mikroprozessoren war das "ad hoc"-
Verfahren zur Unterscheidung zwischen Mikroprozessoren
mangels wahrnehmbarer, zuverlässiger Unterschiede nicht
erfolgreich. Bezogen auf die INTEL-Mikroprozessoren wird es
schwierig oder sogar unmöglich sein, die "ad hoc"-Verfahren
zur Feststellung der Unterschiede zwischen einem i486TM-
Mikroprozessor und zukünftigen, z. Z. im Entwicklungsstadium
befindlichen Mikroprozessorfamilien zu verwenden.
Ein weiteres Problem bei der Identifizierung eines Mikro
prozessors und bei der Entwicklung eines Mechanismus' zur
Identifizierung eines Mikroprozessors stellt das
Kompatibilitätserfordernis dar. Computersoftwareverkäufer
bevorzugen oft, nur eine Version ihrer Software zu verkaufen.
Diese eine Version muß auf allen Mikroprozessorarten in einer
bestimmten Mikroprozessorfamilie oder Gruppe von Familien
laufen. Insbesondere ist es von großem Vorteil, wenn die für
eine der obigen INTEL-Mikroprozessorfamilien entwickelte
Software auf allen Mikroprozessoren in der Gruppe,
einschließlich noch nicht entwickelter
Mikroprozessoren, laufen kann. In anderen Worten, später ent
wickelte Software muß auf früher entwickelten
Mikroprozessoren laufen und früher entwickelte Software muß
auf später entwickelten Mikroprozessoren laufen. Wenn die
Software versucht, einen für diesen Mikroprozessor nicht
definierten Befehl zu verarbeiten, wird im allgemeinen eine
"unzulässige Opcode"-Ausnahme auftreten. Wenn diese Art der
Ausnahme auftritt, weiß der Mikroprozessor im allgemeinen
nicht, was zu tun ist, außer die gesamte, weitere Verarbeitung
anzuhalten.
Es wäre vorteilhaft, zur Identifizierung eines
Mikroprozessors und seiner Stepping-ID einen zuverlässigen
Befehl oder eine Befehlsfolge zu haben, der oder die nicht
auf "ad hoc"-Verfahren basiert. Solch ein Befehl oder eine
Befehlsfolge kann zur eindeutigen Bestimmung der auf dem
Mikroprozessor verfügbaren Merkmale verwendet werden.
Außerdem wäre es vorteilhaft, wenn diese Befehlsfolge bei
versuchsweiser Anwendung auf älteren
Mikroprozessorgenerationen ohne Implementierung dieses Be
fehls, folgenschwere Fehler (z. B. einen unzulässigen Opcode)
vermeiden würde, die sonst ein Programm zu einem vorzeitigen
Abbruch bringen würden.
Aufgabe der Erfindung ist es, eine
Identifikationseinrichtung und ein Identifizierungsverfahren
anzugeben, die bzw. das die Identifizierung eines
Mikroprozessors während des Betriebs in einer gegenüber
älteren Mikroprozessoren einer Mikroprozessorfamilie
kompatiblen Weise ermöglicht.
Diese Aufgabe wird erfindungsgemäß durch eine
Identifikationseinrichtung mit den Merkmalen des Anspruchs 1
bzw. ein Verfahren mit den Merkmalen des Anspruchs 6 gelöst.
Die Identifikationseinrichtung kann auf Abruf Informatio
nen, wie beispielsweise die Familien-, das Modell- und die
Stepping-ID des Mikroprozessors zur Verfügung stellen. Die
Merkmale direkt anzeigenden Informationen können auch
inbegriffen sein. Systemprogrammierer,
Anwendungsprogrammierer, Benutzer u. a. können aus der
Bereitstellung der Identifikationsinformationen profitieren.
Durch die spezielle Identifizierung des Mikroprozessors
liefert das Verfahren einen einfachen, zuverlässigen Weg zur
Bestimmung der verfügbaren, strukturellen Merkmale. Deshalb
können dem speziellen Mikroprozessor zugeordnete Merkmale
aktiviert und Programme oder Codefolgen zur Umgehung von
Fehlern installiert werden. Das Verfahren ist während des
Betriebs des Mikroprozessors jederzeit verfügbar, beispiels
weise während der Initialisierung der Systemsoftware, einer
Programminstallation oder während ein Programm abläuft. Für
Mikroprozessoren, in denen es implementiert ist, wird, im
Gegensatz zu bisher bekannten Verfahren, ein standardisiertes
Verfahren zur Identifikation des Mikroprozessors zur
Verfügung gestellt.
Das Identifikationssystem ist besonders nützlich, wenn es
in Mikroprozessorfamilien implementiert ist, deren
Entwicklung mit der Einführung neuer Modelle und Familien
ständig fortschreitet. Das Identifikationsverfahren kann
softwaremäßig programmiert werden und ist mit älteren
Familien genauso kompatibel wie mit jüngeren Familien, die
die Identifikationsschaltung implementieren. Mit anderen
Worten, die Identifikationssoftware kann angewendet werden,
ohne bei älteren Prozessoren, die das Identifikationssystem
und -verfahren nicht implementieren, eine Ausnahme
auszulösen. Außerdem können neuere Versionen von einigen der
älteren Modelle nachträglich mit der Identifikationsschaltung
ausgestattet werden, um die Identifikationsinformationen zur
Verfügung zu stellen. Das Identifikationssystem ist bei
Mehrmodus-Mikroprozessoren nützlich und kann aus jedem Modus
der Mikroprozessoroperation heraus benutzt werden. Das System
ist erweiterungsfähig, und bei zukünftigen Modellen kann die
Menge der ID-Informationen erhöht werden.
Die Identifikationseinrichtung enthält ein Register zum
Speichern und Lesen von Daten, Mikroprozessor-ID-Daten spei
chernde Nur-Lese-Speichermittel mit Datenfeldern zur
Identifizierung des Mikroprozessors, einen Decodierer zum
Empfang eines ID-Befehls, eine Steuerschaltung zur Ausführung
des von dem Decodierer empfangenen ID-Befehls und Mittel zum
Lesen der Mikroprozessor-ID-Daten aus den Nur-Lese-
Speichermitteln und zum Speichern derselben im Register. Die
Identifikationseinrichtung kann auch ein Lese/Schreib-
Speicherelement (Flag-Register) mit einem das Vorhandensein
der Steuerschaltung anzeigenden ID-Flag und einem Testmittel
zum Testen des ID-Flags aufweisen.
Das Nur-Lese-Speichermittel kann ein in dem
Mikroprozessor angeordnetes Prozessor-ID-Register zum Halten
der Mikroprozessor-ID-Daten umfassen. Alternativ können die
Mikroprozessordaten in einem Konstanten-ROM gespeichert sein,
der die Daten hält, die von im Mikrobefehlscode-ROM
gespeicherten Mikrobefehlscode-Befehlen verwendet werden. Die
Mikroprozessor-ID-Informationen werden vorzugsweise in dem
Prozessor-ID-Register gespeichert. Das ist ein spezielles
Register, das in nachfolgenden Modellen einfacher verändert
werden kann, als der Konstanten-ROM. Die Nur-Lese-
Speichermittel enthalten reservierte Bits mit zugeordneten
Plätzen, die aber nicht zur Aufnahme von Daten implementiert
sind. Die reservierten Bits sind zur Vermeidung von
Kompatibilitätsproblemen vorgesehen, denen man begegnen
könnte, wenn die Größe des Prozessor-ID-Registers in zu
künftigen Mikroprozessoren ausgedehnt würde. Die Datenfelder
in den Nur-Lese-Speichermitteln können ein die
Mikroprozessorfamilie anzeigendes Familienfeld, ein das
Mikroprozessormodell anzeigendes Modellfeld und ein die
Mikroprozessor-Fehler oder die Stepping-ID anzeigendes
Revisionsfeld umfassen.
In einer spezielleren Ausführungsform weist die Mikropro
zessoridentifikationseinrichtung einen oder mehrere
Universalregister zum Speichern und Lesen von Daten auf, ein
Mikroprozessor-ID-Speicherelement mit den Mikroprozessor
identifizierenden Datenfeldern, einen Decodierer zum
Befehlsempfang, ein Steuermittel zur Ausführung der vom
Decodierer empfangenen Befehle, einschließlich eines CPUID-
Befehls, ein Lese/Schreib-Speicherelement einschließlich
eines den CPUID-Befehl anzeigenden ID-Flags, ein Testprogramm
mit einer Befehlsfolge, die das ID-Flag testet und ein
Programm zur Lieferung des CPUID-Befehls.
Das Verfahren zur Identifizierung eines Mikroprozessors
umfaßt die Unterscheidung zwischen einem Mikroprozessor aus
einer ersten Gruppe und einem Mikroprozessor aus einer
zweiten Gruppe. Mikroprozessoren in der ersten Gruppe
implementieren einen Mikroprozessor-ID-Befehl nicht, aber
diejenigen in der zweiten Gruppe haben einen Mikroprozessor-
ID-Befehl. Das Verfahren umfaßt die Ausführung einer Flag-
Test-Befehlsfolge, die ein ID-Flag prüft, um festzustellen,
ob der Mikroprozessor zur ersten oder zur zweiten Gruppe
gehört. Das vermeidet die Erzeugung einer "unzulässigen
Opcode"-Ausnahme, die beim Versuch, den ID-Befehl auf einem
älteren Mikroprozessor auszuführen, der den CPUID-Befehl
nicht implementiert. Wenn die Ausführung der Flag-Test-
Befehlsfolge anzeigt, daß der CPUID-Befehl nicht
implementiert wurde, ist der Mikroprozessor als Mitglied der
ersten Gruppe identifiziert, und es werden Programmschritte
zur Vermeidung der CPUID-Befehlsausführung durchgeführt. Wenn
jedoch die Ausführung der Flag-Test-Befehlsfolge anzeigt, daß
der ID-Befehl implementiert wurde, dann ist der
Mikroprozessor als Mitglied der zweiten Gruppe identifiziert,
und das Programm erlaubt die Ausführung des CPUID-Befehls,
der den Inhalt des Mikroprozessor-ID-Speicherelements einem
Universalregister zur Verfügung stellt. Um Platz für zu
künftige Erweiterungen der Prozessor-ID-Daten zu lassen,
werden weitere Universalregister gelöscht, um Speicherraum
für zusätzliche ID-Daten zu schaffen.
Ein spezielleres, computerimplementiertes Verfahren zur
Identifizierung eines Mikroprozessors unterscheidet vor der
ID-Flag-Prüfung zunächst zwischen einem Basissatz von
Familien und einem fortgeschrittenen Satz von Familien. Der
Basissatz hat keine Bitstelle für das ID-Flag im Flag-
Register. Deshalb können alle Versuche zum Test des ID-Flags
eine "unzulässige Opcode"-Ausnahme erzeugen. Wenn der
Mikroprozessor als ein Mitglied des Basisfamiliensatzes
identifiziert ist, dann wird die Test-Flag-Befehlsfolge
genauso wie die Ausführung des CPUID-Befehls vermieden.
Danach können andere Tests durchgeführt werden, die zur
genaueren Identifizierung des Mikroprozessors geeignet sind.
Der fortgeschrittene Familiensatz hat eine Bitstelle für das
ID-Flag. Wenn der Mikroprozessor als ein Mitglied dieses
Satzes identifiziert ist, kann die Test-Flag-Befehlsfolge
ausgeführt werden, um zu unterscheiden, ob der Mikroprozessor
ein Mitglied der ersten oder der zweiten Gruppe ist, und der
CPUID-Befehl wird entsprechend ausgeführt.
Vorteilhafte Weiterbildungen der Erfindung sind in den
Unteransprüchen gekennzeichnet.
Im folgenden wird die Erfindung anhand von in der
Zeichnung dargestellten Ausführungsbeispielen erläutert. In
der Zeichnung zeigt:
Fig. 1 ein Blockschaltbild der Architektur eines
Mikroprozessors einschließlich eines
Mikroprozessor-ID-Registers zur Speicherung von
Identifikationsinformationen;
Fig. 2 ein Ablaufdiagramm der Verfahrensschritte zur Be
stimmung des Mikroprozessor-ID;
Fig. 3 ein Ablaufdiagramm, das in mehreren unterschiedli
chen Zusammenhängen die Identifikation des Mikropro
zessors und die Aktivierung der Merkmale zeigt;
Fig. 4 ein Ablaufdiagramm von Verfahrensschritten, die in
einem Mikroprozessor nach Eingang von Identifikati
onsinformationen auftreten können.
Es wird auf Fig. 1 Bezug genommen, in der ein Blockschalt
bild eines Mikroprozessors 10 und damit verbundene Software 12,
gezeigt sind. Der Mikroprozessor 10 enthält eine Vielzahl von
Registern einschließlich eines Lese/Schreib-Speicherelements 14
(Flag-Register). Das Flag-Register 14 enthält ein AC-Flag 16
und ein ID-Flag 18. Das AC-Flag 16 und das ID-Flag 18 sind vor
zugsweise Einzelbits in dem Flag-Register 14. Während der Ini
tialisierung wird das Flag-Register 14 typischerweise mit einem
für die Software und die Hardware speziellen Wert geladen. Der
Mikroprozessor 10 enthält auch ein erstes Universalregister 20
und ein zweites Universalregister 22. Die Register 20, 22 kön
nen in Mikroprozessoren gewöhnlich verwendete Standard-
Lese/Schreib-Register enthalten. Im allgemeinen sind das Flag-
Register 14 und die Universalregister 20, 22 für einen Program
mierer in Assembler-Sprache "sichtbar". Mit anderen Worten, ein
Programmierer kann in diese Register von jedem anderen Register
oder Speicher schreiben, oder er kann aus diesem Register in
jedes andere Register oder Speicher lesen. Diese Register kön
nen manipuliert werden, so daß ausgewählte Bits gelesen oder
geschrieben werden können. Die Daten in solchen Registern kön
nen als "maskierbar" bezeichnet werden. Der Mikroprozessor 10
kann außerdem eine Vielzahl von zusätzlichen Registern 24 ent
halten, die für Betriebszwecke des Prozessors verwendet werden
können.
Der Mikroprozessor 10 enthält auch ein Prozessor-ID-Spei
cherelement, beispielsweise ein Prozessor-ID-Register 30, in
welchem die Prozessor-ID-Information 31 codiert ist. Dieses ID-
Speicherelement ist für einen Programmierer nicht sichtbar;
d. h., das ID-Speicherelement kann nicht direkt manipuliert wer
den. Beispielsweise kann das ID-Speicherelement nicht direkt in
ein anderes ausgewähltes Register, außer in die Universalregi
ster 20, 22 eingelesen werden. Während der Herstellung eines
erfindungsgemäßen Mikroprozessors wird das Prozessor-ID-Regi
ster 30 auf dem Mikroprozessor 10 als Nur-Lese-Register ausge
bildet. In anderen Ausführungsformen kann die Prozessor-ID-In
formation 31 in einem Konstanten-ROM 33 (d. h. Nur-Lese-Speicher
für vom Mikrobefehlscode verwendete Daten) gespeichert werden.
Vorzugsweise ist sie in dem separaten Register 30 vorgesehen,
das aus Herstellungsgründen bei späteren Modellen einfacher
verändert werden kann als der Konstanten-ROM 33, der eine
dichte Struktur hat und schwierig zu verändern ist. In noch ei
nem anderen Ausführungsbeispiel kann das Prozessor-ID-Register
30 in mehreren Registern implementiert sein, so daß sich ID-In
formationen in verschiedenen Registern mit der gleichen Aufgabe
befinden.
Die in einem ID-Register 30 implementierte Prozessor-ID-In
formation 31 enthält ein Familienfeld 32, das die identifizier
te Mikroprozessorfamilie anzeigt. Unterschiedliche Familien un
terscheiden sich gewöhnlich durch grundsätzliche Architekturun
terschiede, die zusätzliche Merkmale für Anwendungsprogrammie
rer und Systemprogrammierer bieten. Das Prozessor-ID-Register
30 kann auch ein Modellfeld 34 enthalten, das das Mikroprozes
sormodell innerhalb der Familie anzeigende Daten enthält. Bei
spielsweise kennzeichnen in den INTEL-Mikroprozessoren die
Buchstaben "SXTM" und "DXTM" verschiedene Modelle in der glei
chen Mikroprozessorfamilie. Während unterschiedliche Familien
unterschiedliche Merkmale aufweisen, die sowohl Anwendungspro
grammierern als auch Systemprogrammierern auffallen, betreffen
die Unterschiede zwischen den Modellen eines Mikroprozessors
nur einen Systemprogrammierer.
Das Prozessor-ID-Register 30 enthält auch ein Revisionsfeld
36, das die Mikroprozessor-Stepping-ID anzeigenden Daten enthält.
Wenn ein Mikroprozessor hergestellt wird, wird er mit ei
ner bestimmten Stepping-ID identifiziert, die die Version des
Mikroprozessors angibt. Unterschiedliche Versionen sind auf
grund von Errata oder "Softwarefehlern" erforderlich, die oft
unerwartet auftreten und die Mikroprozessoroperation nachteilig
beeinflussen. Solche Errata können das ungünstige Ergebnis ei
nes Entwicklungsprozesses sein, der oft nicht alle Möglichkei
ten vorwegnehmen kann, oder es kann einfach ein Herstellungs
fehler sein, der die Mikroprozessoroperationen beeinträchtigt.
Diese Softwarefehler (bugs) können in späteren Modellen besei
tigt sein; jedoch können frühere Modelle noch in Benutzung
sein. Deshalb wird eine Stepping-ID implementiert, um zwischen
den unterschiedlichen Versionen des Mikroprozessors zu unter
scheiden. Im allgemeinen ist der Fehler nur für Systemprogram
mierer erkennbar; jedoch wird in manchen Fällen eine komplexe
Befehlsfolge, die von einem Anwendungsprogrammierer eingegeben
wird, auch ein Problem schaffen. Sobald ein Softwarefehler
identifiziert worden ist, werden Softwarefixierungen zur
"Umgehung" des Entwurffehlers entwickelt. Diese Programme wer
den oft als "Umgehung" oder "Umgehungsprogramme" bezeichnet.
Solche Programme sind üblich und nützlich, aber erfordern kom
plexe Befehlsfolgen, insbesondere für die hergestellten, frühe
sten Versionen eines Mikroprozessors.
Das Prozessor-ID-Register 30 kann in anderen Ausführungen
zusätzliche Felder umfassen, wie beispielsweise ein die Serien
nummer eines bestimmten Mikroprozessors angebendes Feld oder
andere zur Identifikation nützliche Informationen, wie bei
spielsweise ein Merkmalfeld 37, das das Vorhandensein besonde
rer Merkmale spezifiziert. Zur Anpassung zusätzlicher Felder,
die in Zukunft implementiert werden können, sind reservierte
Bits 38 in dem Prozessor-ID-Register 30 enthalten. Den reser
vierten Bits 38 ist keine Bedeutung oder kein Kennzeichen zuge
wiesen, solange sie nicht implementiert sind. Wenn Bits als re
serviert oder undefiniert markiert sind, ist es für die Kompatibilität
mit zukünftigen Prozessoren wichtig, daß die Software
diese Bits als Bits mit einer zukünftigen, bis dahin unbekann
ten Wirkung behandelt. Die Software sollte nicht von den reser
vierten Bits abhängen.
Mikroprozessor 10 enthält außerdem eine Steuereinheit 40.
Die Steuereinheit 40 enthält eine konventionelle Decodierschal
tung 41 zum Empfang und zur Entschlüsselung von Informationen.
Sie enthält außerdem eine Steuerlogik 42 zur Ausführung von vom
Decodierer 41 angelegten Befehlen. Die Steuerlogik verwendet
einen Mikrobefehlscode 43, um Befehle nach Bedarf auszuführen.
In dem bevorzugten Ausführungsbeispiel umfaßt der Mikrobefehls
code 43 auch den CPUID-Befehl-Mikrobefehlscode zur Ausführung
eines CPUID-Befehls, wie unten ausführlicher beschrieben wird.
In anderen Ausführungen kann die Schaltung zur Ausführung des
CPUID-Befehls ganz in der Steuerlogik 42 angeordnet sein.
Die in der Steuereinheit 40 ausgeführte Software, allgemein
durch die Programme 12 dargestellt, enthält ein Hauptprogramm
50 mit einer beliebigen Zahl von Programmen. Beispielsweise
kann das Hauptprogramm 50 ein Programm zur Initialisierung des
Betriebssystems, BIOS-Initialisierungssoftware oder Anwendungs
programme enthalten. Das Hauptprogramm 50 gibt Befehle an die
Steuereinheit 40 oder kann alternativ andere Programme auswäh
len, um Befehle an die Steuereinheit 40 zu geben. Diese Pro
gramme enthalten eine Prüf-Flag-Befehlsfolge 52 zum Prüfen des
ID-Flags 18 und einen CPUID-Befehl 54, der beispielsweise ein
Einfachbefehl sein kann. Die Programme 12 enthalten auch ein
leitende Testbefehle 56 zum Testen, ob der Mikroprozessor ein
Basismikroprozessor oder ein fortgeschrittener Mikroprozessor
ist. Nicht gezeigte, zusätzliche Programme können ebenfalls ver
fügbar sein.
Auf das Mikroprozessor-ID-Speicherelement wird mit einem
Mikroprozessor-CPUID-Befehl 54 zugegriffen. Der CPUID-Befehl 54
ist in einer entsprechenden Schaltung in der Steuereinheit 40
implementiert, die den Opcode des CPUID-Befehls 54 in dem Decodierer
erkennt und in der Steuerlogik 42 die geeigneten
Schritte ausführt, um die Identifikationsinformation 31 in dem
ID-Speicherelement an ein für einen Programmierer sichtbares
Universalregister 20, 22 anzulegen. Die Identifikationsinforma
tion 31 ist sodann dem Programmierer verfügbar und kann vom
Programmierer für jeden gewünschten Zweck manipuliert werden.
Beispielsweise kann er Daten von jedem Feld lesen, um die zu
dem identifizierten Mikroprozessor gehörenden Merkmale zu er
mitteln.
In einer Ausführungsform, in der die ID-Information in dem
Prozessor-ID-Register 30 gespeichert ist und der Mikrobefehls
code 43 den CPUID-Befehl-Mikrobefehlscode 44 enthält, ist eine
Mikrobefehlscodefolge enthalten, um den Inhalt des Prozessor-
ID-Registers 30 zu lesen und ihn in einem Universalregister,
wie z. B. das erste Universalregister 20 oder das zweite Univer
salregister 22, zu speichern. Abhängig von der Informations
menge in dem Prozessor-ID-Register 30 kann der Inhalt in mehr
als einem Universalregister gespeichert werden. Der Mikrobe
fehlscode 44 dient zur Spezifizierung der Register für den
CPUID-Befehl 54.
Um zu lesen oder der Steuereinheit 40 Richtungen zu geben,
kann eine Anwendungsprogrammierer-Schnittstelle 58 mit dem Mi
kroprozessor 10 gekoppelt werden. Die Schnittstelle 58 kann
beispielsweise zum Auslesen von in einem der Register 20, 22,
24 gespeicherten Informationen an ein Bildschirmgerät verwendet
werden. Ferner kann die Benutzer- oder Programmierer-Schnitt
stelle 58 eine Tastatur zum manuellen Zugriff auf den Inhalt
der Register 20, 22 und 24 umfassen.
Im folgenden wird auf Fig. 2 Bezug genommen, die ein compu
terimplementiertes Verfahren des bevorzugten Ausführungsbei
spiels zeigt. Um die Umgebung des Verfahrens zu beschreiben,
setzt ein Block 60 das Ziel, nämlich die Identifizierung eines
in einem Computer installierten Mikroprozessors. Der Mikropro
zessor kann ein Mitglied eines Basisfamiliensatzes oder eines
fortschrittlichen Familiensatzes sein. Alle Familien sind un
tereinander kompatibel, jedoch sind in den fortschrittlichen
Familien oft mehr Merkmale und mehr Befehle verfügbar als in
dem Basisfamiliensatz. Der einfache Familiensatz hat in dem
Flag-Register 14 keine Bitstelle für das ID-Flag 18, und des
halb wird jeder Versuch, das ID-Flag 18 zu testen, eine
"unzulässiger Opcode"-Ausnahme erzeugen. Der fortschrittliche
Familiensatz hat eine Bitstelle für das ID-Flag 18. In dem
fortschrittlichen Familiensatz gibt es zwei Gruppen: Eine erste
Gruppe, die keinen Prozessor-ID-Befehl hat, und eine zweite
Gruppe, die einen Prozessor-ID-Befehl implementiert. Der CPUID-
Befehl 54 ist nur in der zweiten Gruppe der fortschrittlichen
Familien verfügbar: Er ist weder in den einfachen Familien noch
in der ersten Gruppe der fortschrittlichen Familien verfügbar.
Wenn der Ablauf des CPUID-Befehls 54 in den Basisfamilien oder
in der ersten Gruppe der fortschrittlichen Familien versucht
wird, dann würde ein Versuch zur Ausführung eines CPUID-Befehls
54 ungünstigerweise eine "unzulässiger Opcode"-Ausnahme erzeu
gen und wahrscheinlich die Steuerung an ein Ausnahmehandha
bungsprogramm übertragen, das aller Wahrscheinlichkeit nach das
Programm beenden würde. Um die mögliche Erzeugung einer
"unzulässiger Opcode"-Ausnahme zu vermeiden, sind die folgenden
Schritte vorgesehen.
Im Ausführungsblock 62 wird die Testbefehlsfolge 56 ausge
führt zur Bestimmung, ob der Prozessor zum Basisfamiliensatz
oder zum fortschrittlichen Familiensatz gehört. Wie im Ent
scheidungsblock 64 gezeigt ist, geht die Operation im Block 66
weiter, wenn der Prozessor zum Basisfamiliensatz gehört. In
diesem Block werden nach Bedarf andere, konventionelle Tests
durchgeführt, um den Basisprozessor weiter zu identifizieren.
Wenn vor Beginn der Operation in Block 60 festgestellt wurde,
daß der Prozessor bereits ein Mitglied des fortschrittlichen
Familiensatzes ist, kann die Operation natürlich direkt zu
Block 68 springen, der prüft, ob der Prozessor den CPUID-Befehl
54 implementiert hat.
Wenn der Prozessor zu einem fortschrittlichen Familiensatz
gehört, wird von Block 64 die andere Richtung eingeschlagen und
ein weiterer Test, wie in Block 68 gezeigt, durchgeführt. Die
ser bestimmt, ob ein Prozessor einen Prozessor-ID-Befehl hat,
indem die Test-ID-Flag-Befehlsfolge 52 ausgeführt wird. Wenn,
wie im Entscheidungsblock 70 gezeigt wird, festgestellt wurde,
daß das ID-Flag 18 nicht gesetzt ist, dann wird - wie in Block
72 gezeigt - festgestellt, daß der Prozessor 10 zum fort
schrittlichen Familiensatz gehört, jedoch der CPUID-Befehl 54
nicht verfügbar ist, da er nicht implementiert wurde. Deshalb
muß der folgende CPUID-Befehl 54 nicht ausgeführt werden. Wenn
jedoch im Entscheidungsblock 70 festgestellt wird, daß das ID-
Flag 18 gesetzt wurde, dann ist der CPUID-Befehl 54 in dem Pro
zessor 10 implementiert. Deshalb wird der CPUID-Befehl 54 - wie
in Block 74 gezeigt - zum Auslesen der Prozessor-ID-Information
31 in ein Universalregister, wie z. B. die Register 20, 22 oder
24, ausgeführt. Auf diese Weise wurden die Familien-, Modell-
und Stepping-ID's des installierten Mikroprozessors identifi
ziert. Das Merkmalfeld 37 kann auch in ein anderes Register 20,
22, 24 ausgelesen werden, um die in dem Mikroprozessor verfüg
baren Merkmale weiter zu identifizieren. Für zukünftige Erwei
terungen kann der Inhalt des zweiten Universalregisters 22 ge
löscht werden, um zusätzliche Identifikationsdaten unterzubrin
gen, die in den reservierten Bits 38 (Fig. 1) oder an jedem an
deren Platz der in zukünftigen Modellen implementiert werden
kann, gespeichert werden.
In dem bevorzugten Ausführungsbeispiel wird der Inhalt der
zwei zusätzlichen Register, die in den anderen Registern 24
(Fig. 1) enthalten sein können, gelöscht, um eine Möglichkeit
für zukünftige Implementierungen vorzusehen. Im folgenden wer
den, wie in Block 76 gezeigt, zu dem Mikroprozessor gehörige
Merkmale aktiviert. Nicht funktionierende Merkmale werden
entaktiviert, und zugehörige Umgehungen werden aktiviert. Die
ses wird ausführlicher unter Bezugnahme auf Fig. 3 und 4 erläu
tert. Die Operation geht dann weiter.
Es wird wieder auf Fig. 2 Bezug genommen. Die folgende Be
schreibung beschreibt anhand der Intel-Familien einen beispiel
haften Basisfamiliensatz und die erste und zweite Gruppe des
fortschrittlichen Familiensatzes.
In einem Basisfamiliensatz, wie die Intel-Mikroprozessoren
mit den Nummern 80286 und darunter, existiert das ID-Bit 18
physikalisch nicht, da das EFLAG-Register, in dem es sich be
findet, kleiner als 16-Bit ist. Deshalb würde ein Versuch zur
Ausführung der ID-Teste-Bit-Befehlsfolge 52 in diesen Basisfa
milien wahrscheinlich einen unzulässigen Opcode erzeugen. Je
doch wurden in den fortschrittlichen Familien, wie beispiels
weise die i386-Mikroprozessorfamilie und die i486-Mikroprozes
sorfamilien, die EFLAG-Register auf 32-Bit vergrößert. Ein Teil
dieser Bits wurde für die Verwendung in späteren Modellen oder
Familien reserviert, und deshalb können die Bits nicht gesetzt
werden. Die reservierten Bits können zwar gelesen oder ge
schrieben werden, ohne eine Ausnahme zu erzeugen, aber sie wer
den immer den gleichen Wert ausgeben. Ein Versuch, ein reser
viertes Bit zu setzen, hat einfach keine Wirkung. Weil die re
servierten Bits physikalisch vorliegen, wird ein Versuch zur
Ausführung eines ID-Teste-Bit-Befehlsfolge in diesen fort
schrittlichen Familien keine Ausnahme erzeugen.
In dem bevorzugten Ausführungsbeispiel der Intel-Architek
tur ist das ID-Bit 18 in dem EFLAG-Register in einem Bit imple
mentiert, das ursprünglich in der i386-Mikroprozessorfamilie
und in der i486-Mikroprozessorfamilie reserviert war. Aus die
sem Grund wird die ID-Test-Bit-Befehlsfolge 52 bei Ausführung
in diesen Familien keine Ausnahme erzeugen. Außerdem wird die
Ausführung der ID-Test-Bit-Befehlsfolge 52 anzeigen, ob der
CPUID-Befehl 54 verfügbar ist oder nicht. Mikroprozessorfami
lien, wie die i386-Familie und die i486-Familie, in denen das
ID-Bit nicht implementiert ist, sind ein Beispiel für die
"erste Gruppe der fortschrittlichen Familien". Die Mikroprozes
soren, in denen das ID-Bit 18 implementiert ist, und die den
CPUID-Befehl 54 implementieren, sind ein Beispiel für die
"zweite Gruppe der fortschrittlichen Familien". Spätere Versio
nen der i386- und i486-Prozessoren, die nachfolgend hergestellt
wurden, können das ID-Bit 18 in Verbindung mit dem CPUID-Befehl
und einem Prozessor-ID-Register beinhalten. Diese später herge
stellten Mikroprozessoren wären Mitglieder der zweiten Gruppe.
Nun wird auf Fig. 3 Bezug genommen, die einen Ablauf zur
Darstellung der unterschiedlichen Verwendungen des hierin be
schriebenen Prozessoridentifikationsverfahrens zeigt. Links in
der Fig. 3 in einem Block 80, beim Betriebsstart von Operatio
nen, ist die Identifikation des Mikroprozessors 10 oft
hilfreich. Beispielsweise können Betriebsstartoperationen einen
BIOS-Code verwenden, der nach dem Einschalten der Stromversor
gung eines Mikroprozessors 10 abläuft. Danach wird, wie in
Block 82 gezeigt, der Mikroprozessor 10 identifiziert. Dann, in
Block 84, werden die Merkmale des Mikroprozessors festgestellt.
Später werden, wie in Block 86 gezeigt, für diesen Mikroprozes
sor geeignete Merkmale aktiviert, Umgehungsprogramme implemen
tiert und nicht funktionierende Merkmale nach Bedarf entakti
viert. Ein beispielhaftes Mikroprozessormerkmal, dessen Akti
vierung prozessorabhängig ist, und ein Umgehungsprogramm werden
weiter unten in der Beschreibung zu Fig. 4 erläutert.
Zusätzlich zu der Identifizierung eines Mikroprozessors 10
nach dem Betriebsstart kann es auch nützlich sein, den Mikro
prozessor zu identifizieren, wenn Bauelementtreiber für externe
Hardware initialisiert werden. Beispielsweise kann ein Drucker
treiber wissen oder identifizieren wollen, welcher Mikroprozes
sor ihn betreibt. In diesem Fall, würde die Operationsfolge 82,
84, 86 zur Identifikation des Mikroprozessors 10 ablaufen und
die zugehörigen Merkmale aktivieren. Die Bauelementtreiber
initialisierung ist in einem Block 90 dargestellt. Ferner kann
es beim Betriebssystem-Betriebsstart, wie in Block 92 gezeigt,
nützlich sein, den Mikroprozessor zu identifizieren und die
Merkmale, wie in den Blöcken 82, 84 und 86 dargestellt, zu ak
tivieren. In ähnlicher Weise kann, wie in Block 94 gezeigt, es
bei dem Betriebsstart von Anwendungsprogrammen nützlich sein,
den Mikroprozessor 10 zu identifizieren und die Merkmale, wie
in den Blöcken 82, 84 und 86 gezeigt, zu aktivieren.
Die Beispiele, einschließlich der Blöcke 80, 90, 92 und 94,
bei denen die Identifikation des Mikroprozessors 10 nützlich
ist, sollen nur die Anwendungsmöglichkeiten des beschriebenen
Identifikationsverfahrens veranschaulichen. Das Verfahren kann
zu jeder beliebigen Zeit während der Operation des Mikroprozes
sors verwendet werden. Beispielsweise kann die Identifikation
des Prozessors während der Programmoperation nützlich sein, um
zu ermitteln, ob ein bestimmter Befehl oder eine bestimmte Be
fehlsfolge verwendet werden kann oder nicht, oder ob andere Be
fehle ausgeführt werden sollen. In diesem Fall können die
Schritte 82, 84 und 86 zur Identifikation des Mikroprozessors
10 und zur Aktivierung der zugehörigen Merkmale durchgeführt
werden.
Es wird nun auf Fig. 4 Bezug genommen, in der ein Ablauf
zur Aktivierung von Merkmalen in dem bevorzugten Ausführungs
beispiel dargestellt ist, das einen Hochleistungsmikroprozessor
enthält. In Block 100 wird vorausgesetzt, daß der CPUID-Befehl
54 ausgeführt wurde und die ID-Information 31 in einem oder
mehreren Universalregistern verfügbar ist. In Block 100 wird
die Ausführung eines Programms zur Aktivierung der Merkmale ge
startet. In Schritt 102 werden das Familienfeld 32 und das Mo
dellfeld 34 eingelesen, um eine Anzeige über die architektoni
schen Möglichkeiten des Mikroprozessors zu liefern. Im nächsten
Schritt 104 werden die zu der angezeigten Familie und dem Mo
dell gehörigen Befehle aktiviert. In einem Schritt 106 wird
das Stepping-ID-Feld (das Revisionsfeld 36) eingelesen, um In
formationen bezüglich der auf der identifizierten Mikroprozesserversion
aufgetretenen Errata zu geben. In einem nächsten
Schritt 108 werden zur Kompensation der identifizierten Errata
Merkmale aktiviert, entaktiviert oder verändert. Dieser Schritt
108 kann die Installation von geeigneten Umgehungsprogrammen
umfassen. Auf diese Weise können die Möglichkeiten des Hochlei
stungsmikroprozessors optimal genutzt werden.
In den Schritten 102 und 104 wird der Mikroprozessor iden
tifiziert, und seine zugehörigen Befehle werden aktiviert. Bei
spielsweise implementiert ein verbesserter Intel-Mikroprozessor
einen Befehl mit der Syntax "RDMSR" zum Lesen aus einem mo
dellspezifischen Register. Im Betrieb nimmt der RDMSR-Befehl
den Wert eines modellspezifischen Registers, das in einem er
sten Universalregister spezifiziert ist (das "ecx"-Register)
und legt die Bits hoher Ordnung in einem zweiten Universalregi
ster (das "edx"-Register) und die Bits niedriger Ordnung in ei
nem dritten Universalregister (das "eax"-Register) ab. Ein
"WRMSR"-Befehl führt unter Verwendung des gleichen Registers
ein Schreiben vom modellspezifischen Register aus. Beispiele
modellspezifischer Register sind Testregister, wie beispiels
weise Cache-Testregister. In einem früheren Intel-Mikroprozes
sor, dem i486-Mikroprozessor, wurden diese Testregister über
einen separaten, zugeordneten "TR"-Befehl zugegriffen. Wenn ein
Programmierer auf diese Testregister zugreifen muß, muß er des
halb zunächst den Mikroprozessor identifizieren, und dann weiß
er, ob der RDMSR-Befehl ihm die benötigte Information geben
wird. Ist der Mikroprozessor als verbesserter Mikroprozessor
identifiziert, dann werden die RDMSR- und die WRMSR-Befehle ge
wählt. Wenn der Mikroprozessor jedoch als ein i486-Mikroprozes
sor identifiziert wird, dann werden die entsprechenden TR-Be
fehle gewählt.
In den Schritten 106 und 108 wird die Stepping-ID zur Ver
fügung gestellt und ein Programm zur Fehlerumgehung im Mikro
prozessor ausgelöst. Ein Beispiel eines Umgehungsprogramms
folgt im Zusammenhang mit einem Problem, das bei dem i386DX-Mikroprozessor
auftrat. In einem bestimmten Mikroprozessor kann
es viele solcher Fehler geben.
Unter bestimmten Bedingungen, wenn der POPA- oder POPAD-Be
fehl verwendet wird, arbeitet der i386DX-Mikroprozessor nicht
richtig. Der i386DX-Mikroprozessor korrumpiert nachteiliger
weise das EAX-Register, wenn entweder dem POPA- oder dem POPAD-
Befehl unmittelbar ein Befehl folgt, der ein Basisadressenregi
ster UND ein zusätzliches Register außer dem EAX oder AX als
Indexregister zur Bildung seiner effektiven Adresse benutzt.
Der folgende Abtastcode ist ein Beispiel für das Problem:
MOV EDX, 4
POPAD
MOV EBX, dword ptr [EDX + EBX.4].
POPAD
MOV EBX, dword ptr [EDX + EBX.4].
Der i386DX-Mikroprozessor blockiert den Ablauf, wenn auf
einen POPA(16-Bit-Version)-Befehl unmittelbar ein Befehl folgt,
der das EAX(32-Bit-Register) als ein Basis- oder Index-Register
zur Bildung seiner effektiven Adresse verwendet. Der folgende
Abtastcode ist ein Beispiel für das Problem:
MOV EAX, 4
POPA
MOV EBX, dword ptr [EAX].
POPA
MOV EBX, dword ptr [EAX].
Das EAX-Register wird abhängig von den obigen Bedingungen
einen undefinierten Wert enthalten, oder der Prozessor wird die
Ausführung abbrechen. Ein geeigneter Betrieb des Prozessors
kann nach der Ausführung dieser Folge bis zu einer Hardware-
Rücksetzung nicht garantiert werden. Diese Befehlsfolge kann in
den 86 realen, geschützten und virtuellen Betriebsweisen des
i386DX-Mikroprozessors auftreten.
Deshalb ist es wichtig, die obige Befehlsfolge nie auszu
führen. Eine nachweislich in allen Fällen erfolgreiche Umge
hungs-Codefolge besteht darin, einen NOP-Befehl nach jedem
POPA(D)-Befehl einzufügen. Beispiele sind unten gezeigt:
MOV EDX, 4
POPAD
NOP
MOV EBX, dword ptr [EDX + EBX.4]
POPAD
NOP
MOV EBX, dword ptr [EDX + EBX.4]
MOV EAX, 4
POPA
NOP
MOV EBX, dword ptr [EAX]
POPA
NOP
MOV EBX, dword ptr [EAX]
Es wird ein Identifikationsverfahren und eine Einrichtung
zur Verfügung gestellt, die keine "unzulässiger Opcode"-Aus
nahme erzeugen. Das Verfahren ist sowohl mit Basismikroprozes
soren als auch mit fortschrittlichen Mikroprozessoren kompati
bel. Wenn festgestellt wurde, daß ein Mikroprozessor fort
schrittlich ist, bestimmt das Verfahren, ob es sich um Mitglie
der der ersten Gruppe, die den ID-Befehl nicht implementieren
oder um Mitglieder der zweiten Gruppe handelt, die den ID-Be
fehl implementieren. Die Einrichtung kann in allen fortschritt
lichen Mikroprozessoren implementiert werden, um einem Program
mierer oder jedem, den die Information interessiert, eine
leichte Identifikation zu ermöglichen. Selbst wenn der Mikro
prozessor ursprünglich als ein Mitglied der ersten Gruppe der
fortschrittlichen Familie hergestellt wurde und deshalb den Mi
kroprozessor-ID-Befehl nicht implementiert hat, können spätere
Produktionen dieses Mikroprozessors die Identifikationseinrich
tung integrieren. Wenn der Mikroprozessor identifiziert wurde,
kann ein Programm die Mikroprozessormerkmale besser nutzen.
Insbesondere können zusätzliche Merkmale entsprechend den
größeren Möglichkeiten des Mikroprozessors aktiviert werden.
Auf diese Weise können die Möglichkeiten des Mikroprozessors
optimal und schnell genutzt werden.
Anhang 1 zeigt ein beispielhaftes Programm zur Unterschei
dung zwischen einem i386-Mikroprozessor, einem i486-Mikropro
zessor und einem verbesserten Mikroprozessor, von denen alle
gemäß den vorangegangenen Definitionen "fortschrittlich" sind.
Die i386- und i486-Mikroprozessoren fallen in die erste Gruppe,
weil sie ein 32-Bit-EFLAG-Register haben, aber keinen CPUID-Be
fehl 54 implementieren, und der verbesserte Mikroprozessor
fällt in die zweite Gruppe, weil er den CPUID-Befehl 54 imple
mentiert. Wenn der Prozessor als verbesserter Mikroprozessor
identifiziert wird, dann wird die Identifikationsinformation
zur Identifikation der Variablen, einschließlich der Stepping-
ID des Modells und der Familie übertragen.
Anhang 2 zeigt ein beispielhaftes Programm zur Unterschei
dung zwischen einem Basisprozessor und einem fortschrittlichen
Prozessor. Programmmäßig ausgedrückt, umfaßt ein Basisprozessor
die 80286- und die 8086-Mikroprozessorfamilien und ein fort
schrittlicher Prozessor die i386-Mikroprozessorfamilie. Wenn
das Programm feststellt, daß der Prozessor ein 80286- oder ein
8086-Mikroprozessor ist, dann ist der Prozessor ein Basispro
zessor. Wenn das Programm aber feststellt, daß der Prozessor
ein i386-Mikroprozessor ist, dann ist der Prozessor
"fortschrittlich" und kann tatsächlich ein i486-Mikroprozessor
oder Mitglied einer zukünftigen Familie sein. Anhang 2 ist ein
Beispiel eines "ad hoc"-Programms, das zur Bestimmung der Pro
zessorart verwendet wurde.
Claims (10)
1. Identifikationseinrichtung in einem Mikroprozessor
(10) zur Identifizierung des Mikroprozessors
mit einem Nur-Lese-Speicher (30) zum Speichern von Mi kroprozessor-Identifikations(ID)-Daten (31), der Mikro prozessoreigenschaften identifizierende Datenfelder (32, 34, 36) enthält;
mit einer Steuereinrichtung (40, 42), die mit dem Nur- Lese-Speicher (30), wenigstens einem Register (20, 22) und einem Decodierer (41) zum Decodieren eines Identifizier(ID)- Befehls (54) gekoppelt ist und eine ID-Befehls- Ausführungseinrichtung (44) aufweist, die beim Decodieren eines ID-Befehls die Mikroprozessor-ID-Daten (31) aus dem Nur-Lese-Speicher (30) liest und in das wenigstens eine Re gister (20, 22) speichert,
mit einem Flag-Register (14) mit einem das Vorhandensein der Steuereinrichtung (40) zum Ausführen eines ID-Befehls anzeigenden ID-Flag (18) und
mit einer Testeinrichtung zum Prüfen des ID-Flags.
mit einem Nur-Lese-Speicher (30) zum Speichern von Mi kroprozessor-Identifikations(ID)-Daten (31), der Mikro prozessoreigenschaften identifizierende Datenfelder (32, 34, 36) enthält;
mit einer Steuereinrichtung (40, 42), die mit dem Nur- Lese-Speicher (30), wenigstens einem Register (20, 22) und einem Decodierer (41) zum Decodieren eines Identifizier(ID)- Befehls (54) gekoppelt ist und eine ID-Befehls- Ausführungseinrichtung (44) aufweist, die beim Decodieren eines ID-Befehls die Mikroprozessor-ID-Daten (31) aus dem Nur-Lese-Speicher (30) liest und in das wenigstens eine Re gister (20, 22) speichert,
mit einem Flag-Register (14) mit einem das Vorhandensein der Steuereinrichtung (40) zum Ausführen eines ID-Befehls anzeigenden ID-Flag (18) und
mit einer Testeinrichtung zum Prüfen des ID-Flags.
2. Identifikationseinrichtung nach Anspruch 1, dadurch
gekennzeichnet, daß der Nur-Lese-Speicher ein Prozessor-ID-
Register (30) umfaßt.
3. Identifikationseinrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß die Mikroprozessor-ID-Daten
(31) in einem Konstanten-ROM gespeichert sind.
4. Identifikationseinrichtung nach einem der Ansprüche 1
bis 3, dadurch gekennzeichnet, daß die Datenfelder
(32, 34, 36) umfassen:
ein Familienfeld (32) zum Speichern von die Familie des Mikroprozessors anzeigenden Daten;
ein Modellfeld (34) zum Speichern von das Modell des Mi kroprozessors anzeigenden Daten und
ein Revisionsfeld (36) zum Speichern von die Version (Stepping) des Mikroprozessors anzeigenden Daten.
ein Familienfeld (32) zum Speichern von die Familie des Mikroprozessors anzeigenden Daten;
ein Modellfeld (34) zum Speichern von das Modell des Mi kroprozessors anzeigenden Daten und
ein Revisionsfeld (36) zum Speichern von die Version (Stepping) des Mikroprozessors anzeigenden Daten.
5. Identifikationseinrichtung nach einem der Ansprüche 1
bis 4, dadurch gekennzeichnet, daß ein Testprogramm (50) zum
Anlegen einer Befehlsfolge an den Decodierer (41) und an die
Steuereinrichtung (40, 42) vorgesehen ist,
wobei die Befehlsfolge Befehle zum Lesen des Flag-Registers (14) und zum Testen des ID-Flags (18) enthält, um festzustellen, ob in dem Mikroprozessor (10) die ID-Befehls- Ausführungseinrichtung (44) implementiert ist,
wobei das Testprogramm den ID-Befehl (54) an den Decodierer (41) und die Steuereinrichtung (42) anlegt, falls das Testprogramm feststellt, daß in dem Mikroprozessor (10) die ID-Befehls- Ausführungsreinrichtung (44) implementiert ist.
wobei die Befehlsfolge Befehle zum Lesen des Flag-Registers (14) und zum Testen des ID-Flags (18) enthält, um festzustellen, ob in dem Mikroprozessor (10) die ID-Befehls- Ausführungseinrichtung (44) implementiert ist,
wobei das Testprogramm den ID-Befehl (54) an den Decodierer (41) und die Steuereinrichtung (42) anlegt, falls das Testprogramm feststellt, daß in dem Mikroprozessor (10) die ID-Befehls- Ausführungsreinrichtung (44) implementiert ist.
6. Verfahren zum Identifizieren eines Mikroprozessors
(10), wobei:
- a) ein ID-Flag (18) in einem Flag-Register (14) abge fragt wird, wobei bei einem gesetzten ID-Flag der Mikropro zessor einer ersten Gruppe angehört, deren Mitglieder einen ID-Befehl abarbeiten können, und bei einem nicht gesetzten ID-Flag der Mikroprozessor einer zweiten Gruppe angehört, deren Mitglieder keinen ID-Befehl abarbeiten können,
- b) wenn im Schritt a) ein gesetztes ID-Flag festge stellt wurde, ein ID-Befehl ausgeführt wird, wobei den Mi kroprozessortyp anzeigende Mikroprozessor-ID-Daten aus einem ID-Speicher innerhalb des Mikroprozessors gelesen und in ein Mehrzweckregister geschrieben werden, und
- c) wenn im Schritt a) ein nicht gesetztes ID-Flag fest gestellt wurde, die Ausführung eines ID-Befehls vermieden wird.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet,
daß vor dem Abfragen eines ID-Flags festgestellt wird, ob der Mikroprozessor einer Basisfamilie oder einer fortge schritteneren Mikroprozessorfamilie angehört,
wobei die Mit glieder der Basisfamilie ein Basis-Flag-Register (14, 16) ohne ID-Flag aufweisen,
wobei die Mitglieder der fort geschritteneren Familie ein erweitertes Flag-Register mit einem ID-Flag aufweisen und
wobei die Schritte a) und b) vermieden werden, wenn der Mikroprozessor der Basisfamilie angehört.
daß vor dem Abfragen eines ID-Flags festgestellt wird, ob der Mikroprozessor einer Basisfamilie oder einer fortge schritteneren Mikroprozessorfamilie angehört,
wobei die Mit glieder der Basisfamilie ein Basis-Flag-Register (14, 16) ohne ID-Flag aufweisen,
wobei die Mitglieder der fort geschritteneren Familie ein erweitertes Flag-Register mit einem ID-Flag aufweisen und
wobei die Schritte a) und b) vermieden werden, wenn der Mikroprozessor der Basisfamilie angehört.
8. Verfahren nach Anspruch 6 oder 7, dadurch gekenn
zeichnet, daß die Mikroprozessor-ID-Daten (31) außerdem ver
wendet werden, um ein zu dem identifizierten Mikroprozessor
gehöriges Merkmal zu aktivieren.
9. Verfahren nach einem der Ansprüche 6 bis 8, dadurch
gekennzeichnet,
daß die Mikroprozessor-ID-Daten (31) Versi onsinformationen enthalten, die Fehler des Mikroprozessors verzeichnen und
daß die Versionsinformationen (36) zur Im plementierung von Umgehungsprogrammen für die Fehler verwen det werden.
daß die Mikroprozessor-ID-Daten (31) Versi onsinformationen enthalten, die Fehler des Mikroprozessors verzeichnen und
daß die Versionsinformationen (36) zur Im plementierung von Umgehungsprogrammen für die Fehler verwen det werden.
10. Verfahren nach einem der Ansprüche 6 bis 9, dadurch
gekennzeichnet,
daß die Mikroprozessor-ID-Daten ein die Mi kroprozessorfamilie kennzeichnendes Familienfeld (32) und ein den Mikroprozessortyp kennzeichnendes Modellfeld (34) umfassen,
daß das Familienfeld und das Modellfeld im Mehrzweckre gister (20) geprüft werden und
daß zu der Familie und dem Modell gehörige Merkmale des Mikroprozessors aktiviert werden.
daß die Mikroprozessor-ID-Daten ein die Mi kroprozessorfamilie kennzeichnendes Familienfeld (32) und ein den Mikroprozessortyp kennzeichnendes Modellfeld (34) umfassen,
daß das Familienfeld und das Modellfeld im Mehrzweckre gister (20) geprüft werden und
daß zu der Familie und dem Modell gehörige Merkmale des Mikroprozessors aktiviert werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/938,288 US5790834A (en) | 1992-08-31 | 1992-08-31 | Apparatus and method using an ID instruction to identify a computer microprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4329336A1 DE4329336A1 (de) | 1994-03-03 |
DE4329336C2 true DE4329336C2 (de) | 2002-11-28 |
Family
ID=25471217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4329336A Expired - Lifetime DE4329336C2 (de) | 1992-08-31 | 1993-08-31 | Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors |
Country Status (5)
Country | Link |
---|---|
US (5) | US5790834A (de) |
JP (2) | JP3905928B2 (de) |
KR (1) | KR100255549B1 (de) |
DE (1) | DE4329336C2 (de) |
GB (1) | GB2270176B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006008017A1 (de) * | 2006-02-21 | 2007-08-30 | Infineon Technologies Ag | Verfahren zum Herstellen und Verfahren zum Betreiben eines integrierten Halbleiterspeichers |
Families Citing this family (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790834A (en) * | 1992-08-31 | 1998-08-04 | Intel Corporation | Apparatus and method using an ID instruction to identify a computer microprocessor |
US5734872A (en) * | 1994-09-19 | 1998-03-31 | Kelly; Michael | CPU interconnect system for a computer |
US5933620A (en) * | 1996-03-28 | 1999-08-03 | Advanced Micro Devices, Inc. | Method and apparatus for serializing microprocessor identification numbers |
US5768499A (en) * | 1996-04-03 | 1998-06-16 | Advanced Micro Devices, Inc. | Method and apparatus for dynamically displaying and causing the execution of software diagnostic/test programs for the silicon validation of microprocessors |
US5860024A (en) * | 1996-04-15 | 1999-01-12 | Advanced Micro Devices, Inc. | Microprocessor with automatic name generation including performance indication |
US5946497A (en) * | 1996-05-17 | 1999-08-31 | Advanced Micro Devices, Inc. | System and method for providing microprocessor serialization using programmable fuses |
US5903742A (en) * | 1996-10-30 | 1999-05-11 | Texas Instruments Incorporated | Method and circuit for redefining bits in a control register |
US5807175A (en) * | 1997-01-15 | 1998-09-15 | Microsoft Corporation | Dynamic detection of player actuated digital input devices coupled to a computer port |
US6065113A (en) * | 1997-03-07 | 2000-05-16 | Texas Instruments Incorporated | Circuits, systems, and methods for uniquely identifying a microprocessor at the instruction set level employing one-time programmable register |
US5999860A (en) * | 1997-07-16 | 1999-12-07 | Ati Technologies, Inc. | Method and apparatus for optimizing digital processing |
US6112312A (en) * | 1998-03-10 | 2000-08-29 | Advanced Micro Devices, Inc. | Method for generating functional tests for a microprocessor having several operating modes and features |
KR100368333B1 (ko) * | 1998-03-27 | 2003-04-11 | 엘지전자 주식회사 | 회로제품의이력정보관리방법 |
US6654714B1 (en) * | 1998-05-22 | 2003-11-25 | Micron Technology, Inc. | Method and system for selecting compatible processors to add to a multiprocessor computer |
US6405311B1 (en) * | 1998-07-28 | 2002-06-11 | Compaq Computer Corporation | Method for storing board revision |
US6170056B1 (en) | 1998-09-09 | 2001-01-02 | At&T Corp. | Method and apparatus for identifying a computer through BIOS scanning |
US6360319B1 (en) * | 1999-01-04 | 2002-03-19 | Emc Corporation | Method and apparatus for storing and retrieving system revision information |
US6253076B1 (en) * | 1999-02-25 | 2001-06-26 | Ericsson Inc. | Manufacturing method for wireless communications devices employing potentially different versions of integrated circuits |
US6889299B1 (en) | 1999-04-27 | 2005-05-03 | Seiko Epson Corporation | Semiconductor integrated circuit |
US6813778B1 (en) * | 1999-08-16 | 2004-11-02 | General Instruments Corporation | Method and system for downloading and managing the enablement of a list of code objects |
KR100584150B1 (ko) * | 1999-11-30 | 2006-05-26 | 엘지전자 주식회사 | 통신 시스템에서 무선장치의 오류진단 방법 |
US7493497B1 (en) | 2000-02-03 | 2009-02-17 | Integrated Information Solutions | Digital identity device |
US7249247B2 (en) * | 2000-04-11 | 2007-07-24 | Microsoft Corporation | Common feature mode for microprocessors in a multiple microprocessor system |
US6792529B1 (en) * | 2000-04-11 | 2004-09-14 | Microsoft Corporation | Common feature mode for microprocessors in a multiple microprocessor system |
DE10028912A1 (de) * | 2000-06-10 | 2001-12-20 | Bosch Gmbh Robert | Herstellungsverfahren für ein elektronisches Gerät |
US6691235B1 (en) | 2000-07-27 | 2004-02-10 | International Business Machines Corporation | Automatic voltage regulation for processors having different voltage requirements and unified or split voltage planes |
GB2366012B (en) * | 2000-08-14 | 2002-08-14 | Sun Microsystems Inc | A computer system |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
GB2406416A (en) | 2000-10-31 | 2005-03-30 | Advanced Risc Mach Ltd | Describing an integrated circuit configuration |
US7316934B2 (en) * | 2000-12-18 | 2008-01-08 | Zavitan Semiconductors, Inc. | Personalized hardware |
US6728864B2 (en) * | 2001-01-31 | 2004-04-27 | International Business Machines Corporation | Identifying architecture and bit specification of processor implementation using bits in identification register |
US6738842B1 (en) * | 2001-03-29 | 2004-05-18 | Emc Corporation | System having plural processors and a uni-cast/broadcast communication arrangement |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US7376811B2 (en) * | 2001-11-06 | 2008-05-20 | Netxen, Inc. | Method and apparatus for performing computations and operations on data using data steering |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US7526422B1 (en) | 2001-11-13 | 2009-04-28 | Cypress Semiconductor Corporation | System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US20030126423A1 (en) * | 2001-12-28 | 2003-07-03 | Crossroads Systems, Inc. | Electronic branding technology |
US7036005B2 (en) * | 2001-12-31 | 2006-04-25 | Intel Corporation | Method and apparatus for modifying the contents of revision identification register |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7099818B1 (en) * | 2002-03-29 | 2006-08-29 | Cypress Semiconductor Corporation | System and method for automatically matching components in a debugging system |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US7171546B2 (en) * | 2002-05-23 | 2007-01-30 | Adams Phillip M | CPU life-extension apparatus and method |
US7779407B2 (en) * | 2002-05-29 | 2010-08-17 | Adams Phillip M | Computer-hardware, life-extension apparatus and method |
US7003656B2 (en) * | 2002-06-13 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Automatic selection of firmware for a computer that allows a plurality of process types |
US7161579B2 (en) | 2002-07-18 | 2007-01-09 | Sony Computer Entertainment Inc. | Hand-held computer interactive device |
US7623115B2 (en) | 2002-07-27 | 2009-11-24 | Sony Computer Entertainment Inc. | Method and apparatus for light input device |
US7646372B2 (en) * | 2003-09-15 | 2010-01-12 | Sony Computer Entertainment Inc. | Methods and systems for enabling direction detection when interfacing with a computer program |
US8797260B2 (en) | 2002-07-27 | 2014-08-05 | Sony Computer Entertainment Inc. | Inertially trackable hand-held controller |
US8019121B2 (en) * | 2002-07-27 | 2011-09-13 | Sony Computer Entertainment Inc. | Method and system for processing intensity from input devices for interfacing with a computer program |
US8686939B2 (en) | 2002-07-27 | 2014-04-01 | Sony Computer Entertainment Inc. | System, method, and apparatus for three-dimensional input control |
US9393487B2 (en) | 2002-07-27 | 2016-07-19 | Sony Interactive Entertainment Inc. | Method for mapping movements of a hand-held controller to game commands |
US9474968B2 (en) | 2002-07-27 | 2016-10-25 | Sony Interactive Entertainment America Llc | Method and system for applying gearing effects to visual tracking |
US8313380B2 (en) | 2002-07-27 | 2012-11-20 | Sony Computer Entertainment America Llc | Scheme for translating movements of a hand-held controller into inputs for a system |
US8570378B2 (en) | 2002-07-27 | 2013-10-29 | Sony Computer Entertainment Inc. | Method and apparatus for tracking three-dimensional movements of an object using a depth sensing camera |
US7760248B2 (en) | 2002-07-27 | 2010-07-20 | Sony Computer Entertainment Inc. | Selective sound source listening in conjunction with computer interactive processing |
GB2391339A (en) * | 2002-07-30 | 2004-02-04 | Nec Technologies | Digital IC revision identification using a register |
US9682319B2 (en) | 2002-07-31 | 2017-06-20 | Sony Interactive Entertainment Inc. | Combiner method for altering game gearing |
US9003376B2 (en) * | 2002-08-09 | 2015-04-07 | Texas Instruments Incorporated | Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US7231552B2 (en) * | 2002-10-24 | 2007-06-12 | Intel Corporation | Method and apparatus for independent control of devices under test connected in parallel |
JP3736525B2 (ja) * | 2002-12-25 | 2006-01-18 | ソニー株式会社 | 半導体集積回路装置および回路基板 |
US7015795B2 (en) * | 2002-12-30 | 2006-03-21 | Potomac Photonics, Inc. | Self-identifying integrated circuits and method for fabrication thereof |
US7363237B1 (en) * | 2002-12-31 | 2008-04-22 | Adams Phillip M | Enforcement process for correction of hardware and software defects |
US9177387B2 (en) | 2003-02-11 | 2015-11-03 | Sony Computer Entertainment Inc. | Method and apparatus for real time motion capture |
US6996785B1 (en) | 2003-04-25 | 2006-02-07 | Universal Network Machines, Inc . | On-chip packet-based interconnections using repeaters/routers |
US8072470B2 (en) | 2003-05-29 | 2011-12-06 | Sony Computer Entertainment Inc. | System and method for providing a real-time three-dimensional interactive environment |
US10279254B2 (en) | 2005-10-26 | 2019-05-07 | Sony Interactive Entertainment Inc. | Controller having visually trackable object for interfacing with a gaming system |
US9573056B2 (en) | 2005-10-26 | 2017-02-21 | Sony Interactive Entertainment Inc. | Expandable control device via hardware attachment |
US8287373B2 (en) * | 2008-12-05 | 2012-10-16 | Sony Computer Entertainment Inc. | Control device for communicating visual information |
US8323106B2 (en) | 2008-05-30 | 2012-12-04 | Sony Computer Entertainment America Llc | Determination of controller three-dimensional location using image analysis and ultrasonic communication |
US7287153B1 (en) * | 2004-01-14 | 2007-10-23 | Advanced Micro Devices, Inc. | Processing of processor performance state information |
US7663689B2 (en) * | 2004-01-16 | 2010-02-16 | Sony Computer Entertainment Inc. | Method and apparatus for optimizing capture device settings through depth information |
US7546394B1 (en) | 2004-03-19 | 2009-06-09 | Xilinx, Inc. | Management of configuration data by generating a chain description data set that specifies an order of configuration chain for multi-device systems |
US7685327B1 (en) * | 2004-03-19 | 2010-03-23 | Xilinx, Inc. | Identification of multi-device systems |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US8286125B2 (en) * | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US8547401B2 (en) | 2004-08-19 | 2013-10-01 | Sony Computer Entertainment Inc. | Portable augmented reality device and method |
US20060047939A1 (en) * | 2004-09-01 | 2006-03-02 | International Business Machines Corporation | Method and apparatus for initializing multiple processors residing in an integrated circuit |
JP2006099411A (ja) * | 2004-09-29 | 2006-04-13 | Oki Electric Ind Co Ltd | ソフトウェアの使用制限方法 |
US7308571B2 (en) * | 2004-10-06 | 2007-12-11 | Intel Corporation | Overriding processor configuration settings |
US20080313384A1 (en) * | 2004-10-25 | 2008-12-18 | Ralf Angerbauer | Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units |
ATE426204T1 (de) * | 2004-10-25 | 2009-04-15 | Bosch Gmbh Robert | Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausfuhrungseinheiten |
US20060179330A1 (en) * | 2005-01-27 | 2006-08-10 | Ziarnik Gregory P | Apparatus and method for ensuring power compatibility between a system board and a processing device |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US7370190B2 (en) * | 2005-03-03 | 2008-05-06 | Digimarc Corporation | Data processing systems and methods with enhanced bios functionality |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
CN101313570A (zh) * | 2005-11-29 | 2008-11-26 | 汤姆森特许公司 | 用于使得数字内容安全的方法和装置 |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
USRE48417E1 (en) | 2006-09-28 | 2021-02-02 | Sony Interactive Entertainment Inc. | Object direction using video input combined with tilt angle information |
US8781151B2 (en) | 2006-09-28 | 2014-07-15 | Sony Computer Entertainment Inc. | Object detection using video input combined with tilt angle information |
US8310656B2 (en) | 2006-09-28 | 2012-11-13 | Sony Computer Entertainment America Llc | Mapping movements of a hand-held controller to the two-dimensional image plane of a display screen |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
US9652210B2 (en) * | 2007-08-28 | 2017-05-16 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US8250354B2 (en) * | 2007-11-29 | 2012-08-21 | GlobalFoundries, Inc. | Method and apparatus for making a processor sideband interface adhere to secure mode restrictions |
CN101458639B (zh) * | 2007-12-11 | 2010-12-01 | 英业达股份有限公司 | 中央处理器类型识别电路及中央处理器类型识别方法 |
US8542907B2 (en) | 2007-12-17 | 2013-09-24 | Sony Computer Entertainment America Llc | Dynamic three-dimensional object mapping for user-defined control device |
US8289324B1 (en) | 2007-12-17 | 2012-10-16 | Nvidia Corporation | System, method, and computer program product for spatial hierarchy traversal |
US8502819B1 (en) | 2007-12-17 | 2013-08-06 | Nvidia Corporation | System and method for performing ray tracing node traversal in image rendering |
CN102016877B (zh) | 2008-02-27 | 2014-12-10 | 索尼计算机娱乐美国有限责任公司 | 用于捕获场景的深度数据并且应用计算机动作的方法 |
US8368753B2 (en) * | 2008-03-17 | 2013-02-05 | Sony Computer Entertainment America Llc | Controller with an integrated depth camera |
US7904460B2 (en) * | 2008-04-23 | 2011-03-08 | Microsoft Corporation | Determining computer information from processor properties |
US7831816B2 (en) * | 2008-05-30 | 2010-11-09 | Globalfoundries Inc. | Non-destructive sideband reading of processor state information |
US8006082B2 (en) * | 2008-09-29 | 2011-08-23 | Intel Corporation | Dynamically reconfiguring platform settings |
US8166207B2 (en) | 2008-09-29 | 2012-04-24 | Intel Corporation | Querying a device for information |
US8527657B2 (en) | 2009-03-20 | 2013-09-03 | Sony Computer Entertainment America Llc | Methods and systems for dynamically adjusting update rates in multi-player network gaming |
US8342963B2 (en) | 2009-04-10 | 2013-01-01 | Sony Computer Entertainment America Inc. | Methods and systems for enabling control of artificial intelligence game characters |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US8393964B2 (en) * | 2009-05-08 | 2013-03-12 | Sony Computer Entertainment America Llc | Base station for position location |
US8142288B2 (en) * | 2009-05-08 | 2012-03-27 | Sony Computer Entertainment America Llc | Base station movement detection and compensation |
US8150902B2 (en) | 2009-06-19 | 2012-04-03 | Singular Computing Llc | Processing with compact arithmetic processing element |
US8555036B1 (en) | 2010-05-17 | 2013-10-08 | Nvidia Corporation | System and method for performing predicated selection of an output register |
US8564589B1 (en) | 2010-05-17 | 2013-10-22 | Nvidia Corporation | System and method for accelerated ray-box intersection testing |
US20150370564A1 (en) * | 2014-06-24 | 2015-12-24 | Eli Kupermann | Apparatus and method for adding a programmable short delay |
KR102179237B1 (ko) * | 2016-01-22 | 2020-11-16 | 주식회사 소니 인터랙티브 엔터테인먼트 | 하위 호환성을 위한 cpuid 스푸핑 |
US10699362B2 (en) * | 2016-06-23 | 2020-06-30 | Intel Corporation | Divergent control flow for fused EUs |
WO2018213636A1 (en) | 2017-05-17 | 2018-11-22 | Google Llc | Performing matrix multiplication in hardware |
US10877751B2 (en) * | 2018-09-29 | 2020-12-29 | Intel Corporation | Spoofing a processor identification instruction |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1774040B2 (de) * | 1967-03-27 | 1975-04-17 | Burroughs Corp., Detroit, Mich. (V.St.A.) | Übertragungssystem für digitale Daten zwischen einer Datenverarbeitungsanlage und mindestens einer Ein/Ausgabe-Einheit |
US4167779A (en) * | 1978-03-10 | 1979-09-11 | Digital Equipment Corporation | Diagnostic apparatus in a data processing system |
GB2230362A (en) * | 1989-04-14 | 1990-10-17 | Smiths Industries Plc | Identifying processors |
DE3624373C2 (de) * | 1985-07-18 | 1991-03-21 | Diesel Kiki Co., Ltd., Tokio/Tokyo, Jp |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5835287B2 (ja) * | 1978-12-28 | 1983-08-02 | 富士通株式会社 | 計算装置 |
US4779188A (en) * | 1983-12-14 | 1988-10-18 | International Business Machines Corporation | Selective guest system purge control |
JPS60171540A (ja) * | 1984-02-15 | 1985-09-05 | Nec Corp | 集積回路 |
JPS60225959A (ja) * | 1984-04-25 | 1985-11-11 | Ascii Corp | 複合機能cpu |
JPS62247275A (ja) * | 1986-03-31 | 1987-10-28 | Ando Electric Co Ltd | インサ−キツトエミユレ−タのcpu識別回路 |
US4974191A (en) * | 1987-07-31 | 1990-11-27 | Syntellect Software Inc. | Adaptive natural language computer interface system |
US5426767A (en) * | 1987-08-03 | 1995-06-20 | Compaq Computer Corporation | Method for distinguishing between a 286-type central processing unit and a 386-type central processing unit |
US4866769A (en) * | 1987-08-05 | 1989-09-12 | Ibm Corporation | Hardware assist for protecting PC software |
US4930065A (en) * | 1987-08-20 | 1990-05-29 | David Computer Corporation | Automatic data channels for a computer system |
US4970640A (en) * | 1987-08-28 | 1990-11-13 | International Business Machines Corporation | Device initiated partial system quiescing |
US5084814A (en) * | 1987-10-30 | 1992-01-28 | Motorola, Inc. | Data processor with development support features |
US5121486A (en) * | 1987-11-20 | 1992-06-09 | Hitachi, Ltd | Network control system for dynamically switching a logical connection between an identified terminal device and an indicated processing unit |
US4967346A (en) * | 1988-03-14 | 1990-10-30 | Advanced Micro Devices, Inc. | Universal microprocessor interface circuit |
US5113518A (en) * | 1988-06-03 | 1992-05-12 | Durst Jr Robert T | Method and system for preventing unauthorized use of software |
US4967345A (en) * | 1988-06-23 | 1990-10-30 | International Business Machines Corporation | Method of selecting least weight routes in a communications network |
JPH0240753A (ja) * | 1988-07-22 | 1990-02-09 | Internatl Business Mach Corp <Ibm> | 情報処理システムを自動的に構成するためのシステム |
US5163145A (en) * | 1989-04-25 | 1992-11-10 | Dell Usa L.P. | Circuit for determining between a first or second type CPU at reset by examining upper M bits of initial memory reference |
US5144551A (en) * | 1989-05-19 | 1992-09-01 | Compaq Computer Corporation | Computer memory management method utilizing segmentation and protection techniques |
WO1991019244A1 (en) * | 1990-06-04 | 1991-12-12 | 3Com Corporation | Method for optimizing software for any one of a plurality of variant architectures |
GB9018991D0 (en) * | 1990-08-31 | 1990-10-17 | Ncr Co | Work station with timing independant interface units |
US5287531A (en) * | 1990-10-31 | 1994-02-15 | Compaq Computer Corp. | Daisy-chained serial shift register for determining configuration of removable circuit boards in a computer system |
US5214652A (en) * | 1991-03-26 | 1993-05-25 | International Business Machines Corporation | Alternate processor continuation of task of failed processor |
US5551012A (en) * | 1991-04-22 | 1996-08-27 | Acer Incorporated | Single socket upgradeable computer motherboard with automatic detection and socket reconfiguration for inserted CPU chip |
US5640537A (en) * | 1991-11-20 | 1997-06-17 | Apple Computer, Inc. | Apparatus for causing a computer system to respond to emulated user interaction in the absence of actual user interaction |
KR950002162B1 (ko) * | 1992-02-12 | 1995-03-14 | 삼성전자주식회사 | Cpu 로직의 자동 절환 장치 |
US5790834A (en) * | 1992-08-31 | 1998-08-04 | Intel Corporation | Apparatus and method using an ID instruction to identify a computer microprocessor |
-
1992
- 1992-08-31 US US07/938,288 patent/US5790834A/en not_active Expired - Lifetime
-
1993
- 1993-02-26 US US08/023,916 patent/US5958037A/en not_active Expired - Lifetime
- 1993-08-27 GB GB9317872A patent/GB2270176B/en not_active Expired - Lifetime
- 1993-08-31 JP JP23731093A patent/JP3905928B2/ja not_active Expired - Lifetime
- 1993-08-31 DE DE4329336A patent/DE4329336C2/de not_active Expired - Lifetime
- 1993-08-31 KR KR1019930017142A patent/KR100255549B1/ko not_active IP Right Cessation
-
1995
- 1995-06-28 US US08/496,259 patent/US5671435A/en not_active Expired - Lifetime
- 1995-12-19 US US08/574,622 patent/US5675825A/en not_active Expired - Lifetime
-
1996
- 1996-05-07 US US08/644,678 patent/US5794066A/en not_active Expired - Lifetime
-
2005
- 2005-09-22 JP JP2005275267A patent/JP4723965B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1774040B2 (de) * | 1967-03-27 | 1975-04-17 | Burroughs Corp., Detroit, Mich. (V.St.A.) | Übertragungssystem für digitale Daten zwischen einer Datenverarbeitungsanlage und mindestens einer Ein/Ausgabe-Einheit |
US4167779A (en) * | 1978-03-10 | 1979-09-11 | Digital Equipment Corporation | Diagnostic apparatus in a data processing system |
DE3624373C2 (de) * | 1985-07-18 | 1991-03-21 | Diesel Kiki Co., Ltd., Tokio/Tokyo, Jp | |
GB2230362A (en) * | 1989-04-14 | 1990-10-17 | Smiths Industries Plc | Identifying processors |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006008017A1 (de) * | 2006-02-21 | 2007-08-30 | Infineon Technologies Ag | Verfahren zum Herstellen und Verfahren zum Betreiben eines integrierten Halbleiterspeichers |
Also Published As
Publication number | Publication date |
---|---|
US5958037A (en) | 1999-09-28 |
KR100255549B1 (ko) | 2000-05-01 |
GB2270176B (en) | 1996-01-03 |
US5794066A (en) | 1998-08-11 |
US5671435A (en) | 1997-09-23 |
GB9317872D0 (en) | 1993-10-13 |
JP3905928B2 (ja) | 2007-04-18 |
JPH0749855A (ja) | 1995-02-21 |
DE4329336A1 (de) | 1994-03-03 |
US5675825A (en) | 1997-10-07 |
JP2006053943A (ja) | 2006-02-23 |
US5790834A (en) | 1998-08-04 |
KR940004462A (ko) | 1994-03-15 |
GB2270176A (en) | 1994-03-02 |
JP4723965B2 (ja) | 2011-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4329336C2 (de) | Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors | |
DE69027164T2 (de) | Ladeverfahren und Ladegerät für ein Rechnersystem | |
DE69616917T2 (de) | Datenprozessor mit eingebauter Emulationsschaltung | |
DE69512485T2 (de) | Fehlerbeseitigungs- und Systemverwaltungsunterbrechung | |
DE3853613T2 (de) | Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen. | |
DE19882696B4 (de) | Speichertransaktionen auf einem Bus geringer Leitungsanzahl | |
DE69621493T2 (de) | Hardwareunterstützung zur schnellen Emulation von nicht-implementierten Befehlen | |
DE69032342T2 (de) | Mikroprozessor und Verfahren zur Aufstellung seiner Peripheriefunktionen | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE69904189T2 (de) | Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern | |
DE69714472T2 (de) | Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung | |
DE69627814T2 (de) | System zum bereitstellen eines bios für den hauptrechner | |
DE69903629T2 (de) | Prüfung der funktionsfähigkeit eines gerätetreibers | |
DE60224774T2 (de) | Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit | |
DE3856067T2 (de) | Datenprozessor mit einer Unterbrechungsfunktion | |
DE69623146T2 (de) | Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor | |
DE69519070T2 (de) | Datenprozessor mit Haltepunktschaltung | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE60100848T2 (de) | Virtuelles rom für geräte-aufzählung | |
DE4313594A1 (de) | Mikroprozessor | |
DE4026911A1 (de) | Computersystem | |
DE112009000344T5 (de) | Zugriffsrechte auf eine Speicher-Map | |
DE3751108T2 (de) | Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden. | |
DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
EP0104635A2 (de) | Verfahren und Anordnung zum Prüfen eines digitalen Rechners |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 1/00 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right | ||
R071 | Expiry of right |