[go: up one dir, main page]

DE69230117T2 - Verfahren und Gerät, die es Rechnerschaltkreisen ermöglichen, mit aktualisierten Versionen von Rechnersoftware zu funktionieren - Google Patents

Verfahren und Gerät, die es Rechnerschaltkreisen ermöglichen, mit aktualisierten Versionen von Rechnersoftware zu funktionieren

Info

Publication number
DE69230117T2
DE69230117T2 DE69230117T DE69230117T DE69230117T2 DE 69230117 T2 DE69230117 T2 DE 69230117T2 DE 69230117 T DE69230117 T DE 69230117T DE 69230117 T DE69230117 T DE 69230117T DE 69230117 T2 DE69230117 T2 DE 69230117T2
Authority
DE
Germany
Prior art keywords
hardware
version
software
computer
optimal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69230117T
Other languages
English (en)
Other versions
DE69230117D1 (de
Inventor
Chris Malachowsky
Bruce Mcintyre
Guy Moffat
Curtis Priem
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69230117D1 publication Critical patent/DE69230117D1/de
Application granted granted Critical
Publication of DE69230117T2 publication Critical patent/DE69230117T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf Computerschaltungen und insbesondere auf Verfahren und Einrichtungen, die es einer neue Merkmale implementierenden neuen Version einer Architektur ermöglichen, sowohl alte als auch neue Versionen einer Software für diese Architektur abzuarbeiten.
  • Hintergrund der Erfindung
  • Wenn Computerschaltungen konstruiert werden, werden ihnen bestimmte Merkmale gegeben. Die Konstrukteure wissen, daß diese Merkmale oftmals hinter dem zurückbleiben, was die Konstrukteure zu implementieren wünschen. Wegen der Zeit- oder Kosteneinschränkungen jedoch oder weil es nicht bekannt ist, ob das Produkt ein ökonomischer Erfolg werden wird, werden nicht sämtliche Merkmale aufgenommen, die sich die Konstrukteure vorstellen. Solche fortgelassenen Merkmale werden oftmals bei späteren Versionen der Hardware implementiert. Auf eine sehr ähnliche Weise werden neue Merkmale oftmals in eine Computer-Hardware aufgenommen, wenn die Benutzer nach solchen Merkmalen nachfragen, wenn Verfahren zum Implementieren der Merkmale entdeckt werden und wenn die Mittel zum Verwirklichen der Merkmale erreichbar sind. Aus irgendeinem dieser Gründe und aus weiteren Gründen durchläuft ein erfolgreiches Hardware-Design oftmals eine Reihe von Versionen, wobei spätere Versionen beträchtlich mehr Merkmale bieten als frühere. Wenn eine erste Version einer speziellen Architektur für eine Computerausrüstung erscheint, werden erste Versionen von Software geschrieben, um von den Merkmalen, die die Hardware implementiert, Gebrauch zu machen. Wenn spätere Versionen der Hardware mit zusätzlichen Merkmalen freigegeben werden, werden neue Versionen der Software ebenfalls freigegeben, um von diesen neueren Merkmalen Gebrauch zu machen. Üblicherweise versuchen die Hardware-Konstrukteure ihre Hardware mit sämtlichen vorhergehenden Versionen der Software kompatibel zu machen, so daß frühere Versionen der Software auf den jüngeren Hardware-Versionen laufen können. Wenn dies nicht ausgeführt werden kann, muß die Hardware auf noch zu entwickelnde Software warten, bevor signifikante Verkäufe auftreten werden. Manchmal ist diese Kompatibilität wegen der Art, in der die verschiedenen Versionen der Hardware konfiguriert worden sind, nicht möglich. Es ist bekannt, daß das Fehlen der Rückwärtskompatibilität exzellente Produkte zu ökonomischen Fehlleistungen werden ließ.
  • Auf eine ähnliche Weise versuchen bei jeder späteren Version einer Software, die von Merkmalen der späteren Hardware Gebrauch macht, die Programmierer, diese Software kompatibel mit früheren Versionen der Hardware zu machen, so daß die Software auf früheren Maschinen laufen kann und einen breiteren Markt hat. Manchmal ist dies nicht möglich, und der Markt für die Software ist auf wenige neue Maschinen eingeschränkt, welche den Markt erreicht haben.
  • Eine bekannte Anordnung zum Bestimmen der Eignung einer Version eines Bauelements wird in den Patent Abstracts of Japan, Band 14, Nr. 66 (p-1003), 7. Februar 1990, entsprechend JP-A-1287738 (TOSHIBA), 20. November 1989, erörtert.
  • Zusammenfassende Darstellung der Erfindung
  • Es ist folglich eine Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Einrichtung bereitzustellen, um zu sichern, daß neue Versionen einer Hardware kompatibel mit Versionen einer Software sind, die für ältere Versionen der Hardware geschrieben wurden.
  • Es ist eine weitere, speziellere Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Einrichtung bereitzustellen, durch welche die spezielle Version einer Software bestimmt werden kann und die Hardware so konfiguriert werden kann, daß sie mit der speziellen Version der Software laufen kann.
  • Diese und andere Aufgaben der vorliegenden Erfindung werden verwirklicht bei einer Einrichtung, wie sie im Anspruch 1 beansprucht ist, zum Sichern der Kompatibilität von Versionen von Software, die für eine spezielle Computer- Hardware-Architektur hergestellt sind, die ein Hardware-Versionsregister, Mittel zum Bereitstellen einer Anzeige einer Version der Hardware, die zum Betreiben einer speziellen Version der Software benutzt wird, ein Software-Versionsregister, Mittel zum Bereitstellen einer Anzeige einer Version der Hardware, für welche die ablaufende Software konstruiert worden ist, Mittel zum Vergleichen der Anzeige der Version von Hardware und der Anzeige der Version der Hardware, für welche die ablaufende Software konstruiert worden ist, auf die Ergebnisse des Vergleichs ansprechende Mittel zum Einstellen von Standards und zum Freigeben einer Schaltung in der Hardware, sofern die Hardware neuer als die Software ist, und auf die Ergebnisse des Vergleichs ansprechende Mittel zur Veranlassung der Software, auf die Hardware nur für diejenigen Funktionen Bezug zu nehmen, die sie in der Lage ist zu implementieren, und diejenigen Funktionen zu emulieren, die nicht in der Hardware vorhanden sind, so daß die Version der Software richtig auf der Version der Hardware abläuft, aufweist. Ein dieser Einrichtung entsprechendes Verfahren ist in Anspruch 4 beansprucht. Anspruch 5 definiert eine alternative Einrichtung.
  • Diese und andere Aufgaben und Merkmale der Erfindung sind besser durch Bezugnahme auf die folgende detaillierte Beschreibung zusammen mit den Zeichnungen zu verstehen, wobei in den Zeichnungen auf gleiche Elemente durch gleiche Bezugszeichen in den verschiedenen Ansichten Bezug genommen wird.
  • Kurzbeschreibung der Zeichnungen
  • Fig. 1 ist eine Darstellung, die beim Ausführen der vorliegenden Erfindung benutzte Register veranschaulicht.
  • Fig. 2 ist ein Ablaufdiagramm, das das Verfahren gemäß der vorliegenden Erfindung veranschaulicht.
  • Bezeichnungen und Terminologie
  • Einige Abschnitte der folgenden detaillierten Beschreibung werden anhand von symbolischen Darstellungen von Operationen an Datenbits innerhalb eines Computerspeichers präsentiert. Diese Beschreibungen und Darstellungen sind diejenigen Mittel, die von Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um auf effektivste Weise das Wesen ihrer Arbeit anderen Fachleuten mitzuteilen. Die Operationen sind solche, die physikalische Bearbeitungen physikalischer Größen erfordern. Üblicherweise, aber nicht notwendigerweise, nehmen diese Größen die Form elektrischer oder magnetischer Signale an, die gespeichert, übertragen, kombiniert, verglichen oder auf andere Weise bearbeitet werden können. Gelegentlich hat es sich hauptsächlich aus Gründen der allgemeinen Verwendung als geeignet herausgestellt, auf diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen oder dergleichen Bezug zu nehmen. Es sei jedoch daran erinnert, daß all diese und ähnliche Bezeichnungen den richtigen physikalischen Größen zugeordnet sein sollen und bloß auf diese Größen angewendete Bezeichnungen sind.
  • Darüber hinaus werden die durchgeführten Bearbeitungen oftmals mit Begriffen, wie beispielsweise Addieren oder Vergleichen bezeichnet, welche üblicherweise den durch einen menschlichen Bediener ausgeführten geistigen Operationen zugeordnet sind. Keinerlei derartige Fähigkeiten eines menschlichen Bedieners sind bei irgendeiner der hier beschriebenen Operationen, welche Teil der vorliegenden Erfindung bilden, erforderlich, und sie sind in den meisten Fällen auch nicht erwünscht; die Operationen sind Maschinenoperationen. Nützliche Maschinen zum Durchführen der Operationen gemäß der vorliegenden Erfindung umfassen digitale Mehrzweckcomputer oder andere ähnliche Einrichtungen. In sämtlichen Fällen sei an den Unterschied zwischen den Verfahrensoperationen beim Betreiben eines Computers und dem Verfahren der Berechnung selbst erinnert. Die vorliegende Erfindung bezieht sich auf eine Einrichtung und auf Verfahrensschritte zum Betreiben eines Computers bei der Verarbeitung elektrischer oder anderer (z. B. mechanischer, chemischer) physikalischer Signale, um andere gewünschte physikalische Signale zu erzeugen.
  • Detaillierte Beschreibung der Erfindung
  • Damit ein Software-Programm in der Lage ist, die verschiedenen Merkmale eines Teils einer Computer-Hardware zu nutzen, muß das Programm die spezielle Version der Hardware verstehen, mit welcher sie sich befaßt. Um dies auszuführen, ordnen eine Reihe von Herstellern ein Register in der Hardware an, welches bei Anforderung eine Hardware-Versions-Nummer liefert. Im allgemeinen sind diese Register fest verdrahtete Nur-Lese-Register, welche durch ein Kommando von der Software gelesen werden können. Die in dem Hardware-Versionsregister enthaltenen Daten zeigen das spezielle Teil der Hardware und die Version dieser Hardware an.
  • Das Vorsehen eines derartigen Registers gestattet es einer neuen Version einer Software, die Hardware-Versionsanzeige zu lesen und in Übereinstimmung mit der Funktionalität der Version der verfügbaren Hardware auszuführen. D. h., die die Version der Hardware, auf welcher sie läuft, erfassende Software kann nur solche Funktionen ausführen, die für einen Betrieb auf dieser Hardware angepaßt sind. Wie zu erkennen ist, ist dies sehr nützlich, weil die Software so strukturiert sein kann, daß sie nicht versucht, Funktionen auszuführen, welche nicht auf älterer Hardware ablaufen und welche bewirken könnten, daß die Hardware fehlerhaft arbeitet.
  • Andererseits wird dann, wenn eine ältere Version von Software entwickelt wurde, um auf einer gegenüber der verwendeten Hardware älteren Version der Hardware zu laufen, ein Lesen einer neueren Hardware-Versions-Nummer, über welche die alte Software keine Kenntnis hat, keine Informationen bereitstellen, durch welche die Software auf die neuere Version angepaßt werden kann. Die ältere Software ist nicht in der Lage, irgendwelche Kenntnisse von Funktionen zu haben, welche in der neueren Hardware implementiert sein könnten.
  • Darüber hinaus kann dann, wenn eine neue Version der Hardware gegenüber älteren Versionen derart geändert wurde, daß sie unrichtig auf solche Kommandos antwortet, die von einer Software, die für einen Ablauf auf den älteren Versionen konstruiert worden ist, ausgegeben werden, die neue Hardware-Version nicht diese ältere Software abarbeiten; und der Markt für die Hardware kann signifikant reduziert werden. Da die Implementierung neuer Hardware-Merkmale bei einer Beibehaltung der Software-Kompatibilität manchmal sehr schwierig ist, ist sie auch oftmals ziemlich teuer. Jedoch bemühen sich Hardware-Konstrukteure üblicherweise sehr, die Kompatibilität wegen der Ökonomie des Verkaufs ihrer Hardware auf einem größeren Markt beizubehalten.
  • Es ist klar, daß deshalb, weil frühere Versionen der Software nicht wissen können, welche Änderungen in neueren Versionen der Hardware implementiert werden, es nur in der neueren Hardware möglich ist, daß irgendeine Anpassung für eine Kompatibilität mit älteren Versionen der Software vorgesehen werden kann.
  • Es wurde eine einfache und elegante Lösung des Problems gefunden. Indem in sämtlichen Versionen der Hardware ein Register zur Verfügung gestellt wird, in welchem eine Software-Versionsnummer gespeichert wird, kann ein Vergleich der Software-Versionsnummer mit der Hardware-Version, die in dem Hardware-Versionsregister fest verdrahtet ist, durchgeführt werden. Diese Software-Versionsnummer ist ein von der Software zur Verfügung gestellter Wert, welcher die Version der Hardware anzeigt, für die diese Software geschrieben wurde. In Abhängigkeit davon, ob die Software oder die Hardware später entwickelt wurde, gestattet der Vergleich, daß diejenigen. Merkmale der Hardware, für welche die Software entworfen wurde, implementiert werden, und andere Merkmale, welche fehlerhaft antworten könnten, gesperrt werden.
  • Wenn beispielsweise die Software eine neue Version ist, die auf einer älteren Hardware-Version abläuft, zeigt ein Vergleich durch die Software, daß die Versionsnummer in dem Software-Versionsregister größer als die in dem Hardware- Versionsregister ist. Diese Differenz zeigt an, welche Merkmale der Software nicht in der Hardware implementiert sind und folglich nicht auf dieser Hardware ablaufen können. Dieser Vergleich veranlaßt die Software, an die alte Version der Hardware, auf welcher sie abläuft, angepaßt zu werden, indem bestimmte Aufrufe auf neue Hardware-Funktionen, die auftreten würden, wenn die Software auf der neueren Hardware ablaufen würde, eliminiert werden.
  • Die Software kann dies ausführen, indem sie veranlaßt, daß Werte gespeichert werden, um anzuzeigen, daß bestimmte Hardware-Operationen nicht ablaufen sollen. In solch einem Falle stellt die Software Prozesse zur Verfügung zum Emulieren solcher Operationen der Hardware, welche nicht Teil der älteren Hardware sind, welche aber als Merkmale der neueren Software enthalten sind. Wenn dann der Vergleich ausgeführt wird, erkennt die Software, daß die Funktionen nicht in der Hardware ausgeführt werden können, so daß sie nicht die Funktionen in Hardware versucht. Statt dessen überträgt die Software immer dann, wenn eine der Funktionen versucht wird, zu einem Software-Prozeß, welcher die fehlende Hardware- Funktion emuliert.
  • Sofern es sich bei der Software um eine neue Version handelt, die auf einer alten Hardware-Version läuft, hat der Vergleich der Versionsnummern keinen Einfluß auf die Hardware-Operation. Die Hardware fährt einfach damit fort, sämtliche der Funktionen zur Verfügung zu stellen, die sie stets bereitstellt. Für sämtliche erforderlichen Einstellungen sorgt die neue Software.
  • Wenn andererseits die Hardware eine neuere Version ist, während es sich bei der Software um eine ältere Version handelt, bewirkt der Vergleich, daß die Hardware sich selbst so konfiguriert, daß sie so erscheint, als wäre sie diejenige Hardware, welche die ältere Software zu sehen erwartet. Die Hardware führt dies aus, indem sie diejenigen neuen Funktionen deaktiviert, welche die ältere Software nicht abarbeiten kann. Typischerweise wird dies ausgeführt, indem Zustände gesetzt und eine Logik in der Hardware verwendet wird, um diese neueren Hardware-Funktionen zu deaktivieren. Wenn die Hardware eine neuere Version ist, während es sich bei der Software um eine ältere Version handelt, hat der Vergleich keinen Einfluß auf den Betrieb der älteren Software; sie läuft einfach so, als würde sie üblicherweise auf der älteren Version der Hardware, für die sie geschrieben wurde, ablaufen.
  • Wenn schließlich die Software eine Version ist, die speziell für die bestimmte Version der Hardware entworfen wurde, so daß die Werte in den beiden Registern gleich sind, so hat der Vergleich weder Einfluß auf die Hardware noch auf die Software. Jede läuft auf ihre typische Weise, in der sie erwartungsgemäß laufen sollen.
  • Fig. 1 veranschaulicht ein Paar von Registern 10 und 12. Das Register 10 kann ein Nur-Lese-Register sein, das fest verdrahtet ist, um einen Wert eines speziellen Teils der Hardware zu speichern, wenn die Stromversorgung an die Hardware angelegt wird. Dieser Wert kann die Version der Hardware anzeigen. Beispielsweise sind vier Bitpositionen im Register 10 vorgesehen, wie es in Fig. 1 veranschaulicht ist, so daß 16 einzelne Versionen angezeigt werden können. Das Register 12 andererseits kann verwendet werden, um einen Wert zu speichern, der von einer bestimmten Version eines Softwareteils zur Verfügung gestellt wird. Wiederum sind vier Bitpositionen vorgesehen, so daß 16 Versionen der Software gespeichert werden können. Bei dem bevorzugten Ausführungsbeispiel der Erfindung zeigt der Wert die Version der Hardware an, für welche die Software geschrieben wurde. Andererseits könnte der Wert eine aktuelle Version der Software anzeigen, und es könnte eine Nachschlagetabelle vorgesehen sein, um anzuzeigen, welche Funktionen von welcher Software zur Verfügung gestellt werden.
  • Jeder der in den Registern 10 und 12 gespeicherten Werte wird zu einer Hardware-Vergleichsschaltung 14 übertragen. Die Hardware umfaßt eine Schaltung zum Ausführen des Vergleichs unter Verwendung eines Komparators. Wenn die Hardware eine neuere Version als diejenige ist, für welche die Software erstellt wurde, so verwendet die Hardware diesen Vergleich, um Signale zu erzeugen (beispielsweise unter Verwendung einer Zustandsmaschine oder einer kombinatorischen Logik), die Standardwerte einstellen und bestimmte Funktionen deaktivieren, so daß die Hardware für die Software so erscheint, als wäre sie die Hardware, für welche diese Software erstellt wurde. Die Ergebnisse des Vergleichs sind in der Figur durch die verschiedenen Ausgangssignale aus dem Komparator 14 veranschaulicht. Wenn die Hardware eine ältere Version ist als diejenige, für welche die Software geschrieben wurde, so arbeitet die Hardware einfach auf ihre normale Weise.
  • In einem Fall, in welchem die Software für eine Version der Hardware konstruiert wurde, die neuer ist als die verfügbare Hardware, liest die Software die Werte in dem Register 10. Wenn sie erkennt, daß sie für eine spätere Hardware geschrieben worden ist, so deaktiviert die Software sämt liche ihrer Operationen, welche die ältere Hardware nicht ausführen kann und zeigt an, daß diese Funktionen statt dessen in Software emuliert werden sollen. Wenn die Software erfaßt, daß die Hardware-Version neuer ist als die Version, für welche sie geschrieben wurde, führt sie einfach ihre normalen Funktionen aus.
  • In jedem Fall gestattet die Anordnung, daß eine beliebige Version der Software auf einer beliebigen Version der Hardware läuft, welche die zwei Register umfaßt.
  • Es ist insbesondere erwünscht, daß das zum Halten der Software-Versionsnummer verwendete Register eines ist, welches sowohl gelesen, als auch während der Programmieroperation geschrieben werden kann. Wenn beispielsweise diese Hardware-Schaltung eine Grafikbeschleunigerschaltung ist, die zum Anzeigen der Ausgabe von Programmen auf einem Computerausgabedisplay verwendet werden soll, so kann eine solche Schaltung eine Reihe von Anwendungsprogrammen gleichzeitig in einer Reihe von Fenstern auf der Anzeige anzeigen. Einige dieser Anwendungsprogramme können in der Lage sein, bestimmte Merkmale der Hardware zu verwenden, während es sein kann, daß andere Programme dies nicht können. Beispielsweise können bestimmte Programme (neue Programme) in der Lage sein, doppelt gepuffert zu werden, um ein Einzelbildzerreißen (frame tearing) zu eliminieren, während andere Programme (alte Programme) dies nicht können. Es ist nützlich, daß die Hardware in der Lage ist, jedesmal dann die Merkmale, für welche jedes Programm angepaßt ist, zu implementieren, wenn die Hardware zum Betreiben dieses Programms umschaltet. Um dies auszuführen, muß der Wert der Software- Version änderbar sein, wenn sich das abgearbeitete Programm ändert; und der Vergleich muß mit jeder Änderung ausgeführt werden.
  • Bei einem bevorzugten Ausführungsbeispiel der Erfindung wird dies ausgeführt, indem die Hardware aufgefordert wird, einen neuen Vergleich jedesmal dann auszuführen, wenn ein neuer Wert in das Software-Versionsregister geschrieben wird. Jedesmal dann, wenn die Software von der Hardware Gebrauch macht, ist das erste, was sie dann ausführt, in das Software-Versionsregister zu schreiben, um den Vergleich zu erzwingen. Gleichzeitig liest die Software das Hardware-Versionsregister, so daß die Software sich selbst konfigurieren kann. Auf diese Weise erzwingt jedes einer Reihe von Programmen, die auf einem bestimmten Teil der Hardware ablaufen, den Vergleich bei jeder Verwendung und macht die Hardware und die Software in richtiger Weise kompatibel.
  • Fachleute werden erkennen, daß bestimmte Hardware Register erfordern wird, die viel größer sind, als die in Fig. 1 veranschaulichten. Beispielsweise kann ein zentraler Prozessor, welcher eine Unzahl von Programmen abarbeiten kann, ein Register erfordern, das ausreichend groß ist, um Herstelleridentifikationen ebenso wie Versionsnummern aufzunehmen. Andererseits wird ein Teil der Hardware, welche mit nur einem einzigen Programm in seinen verschiedenen Versionen funktionieren kann, diese Möglichkeit nicht erfordern.
  • Fig. 2 ist ein Ablaufdiagramm, das die Schritte der oben beschriebenen Operation veranschaulicht, durch welche Software in ihren verschiedenen Versionen kompatibel mit verschiedenen Versionen eines bestimmten Teils der Hardware gemacht wird. Der Prozeß beginnt typischerweise beim Einschalten der Hardware, wo am Schritt 20 eine Hardware-Versionsnummer in einem Hardware-Versionsregister verfügbar wird. Beim Schritt 22 schreibt das gerade abgearbeitete Programm eine Software-Versionsnummer in ein Software-Versionsregister. Beim Schritt 24 wird ein Vergleich der Werte in dem Hardware-Versionsregister und in dem Software-Versionsregister ausgeführt. Beim Schritt 26 werden dann, wenn die Hardware eine neuere Version ist als diejenige, für welche die Software geschrieben wurde, von der Hardware die verschiedenen Standardwerte so eingestellt, daß sie so erscheint, als wäre sie diejenige Version der Hardware, für welche das Pro gramm geschrieben wurde. Alternativ wird dann, wenn der Vergleich zeigt, daß die Software neuer ist, die Software Aufrufe zu der Hardware für diejenigen neuen Funktionen deaktivieren, welche nicht in der älteren Hardware implementiert sind, und anzeigen, daß diese Funktionen durch Software-Prozesse implementiert werden müssen, wie es in Schritt 28 gezeigt ist. Wenn jedoch das Hardware-Versionsregister und das Software-Versionsregister gleich sind, dann müssen keine Änderungen an der Software oder der Hardware ausgeführt werden.

Claims (5)

1. Ein System zum Sichern der Kompatibilität von Versionen von Software, die für eine bestimmte Computer-Hardware-Architektur hergestellt wurde, aufweisend: Mittel (20) zum Liefern einer Anzeige einer Hardware-Version, die verwendet wird, um eine bestimmte Software-Version zu betreiben; Mittel (22) zum Liefern einer Anzeige einer optimalen Hardware-Version für die bestimmte Software, die abgearbeitet wird, wobei die optimale Hardware-Version eine Hardware ist, für die die Software-Version entworfen wurde; Mittel (24) zum Vergleichen der Anzeige der Hardware-Version und der Anzeige einer optimalen Hardware-Version; wobei die Anordnung gekennzeichnet ist durch:
auf die Ergebnisse des Vergleichs ansprechende Mittel (26) zum Sperren von Schaltungen in der Computer-Hardware, sofern die Hardware-Version neuer ist als die optimale Hardware-Version; und
auf die Ergebnisse des Vergleichs ansprechende Mittel (28) zum Bewirken, daß die Software nur für solche Funktionen auf die Hardware Bezug nimmt, die sie implementieren kann, und zum Emulieren derjenigen Funktionen, die sich nicht in der Hardware befinden, so daß die Version der Software korrekt auf der Version der Hardware abläuft.
2. Eine Anordnung zum Sichern der Kompatibilität von Versionen von Software, die für eine bestimmte Computer- Hardware-Architektur hergestellt wurde, nach Anspruch 1, bei welcher die Mittel (20) zum Liefern einer Anzeige einer Hardware-Version, die zum Betreiben einer bestimmten Software-Version benutzt wird, ein erstes Register (10) zum Speichern der Anzeige umfassen, und bei welcher die Mittel (22) zum Liefern einer Anzeige einer optimalen Hardware-Version für die bestimmte Software, die abgearbeitet wird, ein zweites Register (12) zum Speichern der Anzeige umfassen.
3. Eine Anordnung zum Sichern der Kompatibilität von Versionen von Software, die für eine bestimmte Computer- Hardware-Architektur hergestellt wurde, nach Anspruch 2, bei welcher das erste Register (10) einen fest-verdrahteten nur- Lese-Speicher umfaßt, und bei welcher das zweite Register (12) zum Speichern der Anzeige während beliebiger Operationen beschrieben und gelesen werden kann.
4. Ein Verfahren zum Sichern der Kompatibilität von Versionen von Software, die für eine bestimmte Computer- Hardware-Architektur hergestellt wurde, aufweisend die Schritte des Lieferns einer Anzeige einer Hardware-Version, die zum Betreiben einer bestimmten Software-Version benutzt wird (20); des Lieferns einer Anzeige einer optimalen Hardware-Version für die bestimmte Software-Version (22), wobei die optimale Hardware-Version eine bestimmte Hardware-Version ist, für welche die Software-Version, die abläuft, entwickelt worden ist; des Vergleichens der Anzeigen der Hardware-Version und der optimalen Hardware-Version (24); wobei das Verfahren gekennzeichnet ist durch:
ein Sperren der Schaltungen (26, 28) in der bestimmten Computer-Hardware in Abhängigkeit von den Ergebnissen des Vergleichs der Anzeigen, sofern die Hardware-Version neuer als die optimale Hardware-Version ist, und ein Veranlassen der Software, auf die bestimmte Computer-Hardware für nur diejenigen Funktionen Bezug zu nehmen, die die bestimmte Computer-Hardware implementieren kann, und diejenigen Funktionen, die nicht in der bestimmten Computer-Hardware sind, zu emulieren, so daß die bestimmte Software-Version korrekt auf der Version der Hardware abläuft.
5. Ein System zum Sichern der Kompatibilität von Versionen von Software, die für ein bestimmtes Computer-Hardware-System hergestellt wurde, wobei die Anordnung aufweist:
ein Computer-Hardware-Systems, wobei das Computer-Hardware- System eine Hardware-Versionsnummer aufweist, wobei das Com puter-Hardware-System aufweist: ein Hardware-Versionsregister (10), wobei das Hardware-Versionsregister (10) die Hardware-Versionsnummer speichert; ein Software-Versionsregister (12); ein Computerprogramm, das auf dem Computer- Hardware-System abgearbeitet wird, wobei das Computerprogramm eine optimale Hardware-Versionsnummer aufweist, die eine bestimmte Hardware-Versionsnummer anzeigt, für welche das Computerprogramm entwickelt wurde, wobei das Computerprogamm die optimale Hardware-Versionsnummer in dem Software-Versionsregister (12) speichert, wobei das Computerprogramm das Hardware-Versionsregister (10) liest und die Hardware-Versionsnummer mit der optimalen Hardware-Versionsnummer vergleicht, wobei dann, wenn die optimale Hardware-Versionsnummer größer als die Hardware-Versionsnummer ist, die Anordnung gekennzeichnet ist dadurch:
daß das Computerprogramm jegliche Bezugnahmen auf eine erste Untermenge von Funktionen eliminiert, die nicht in dem Computer-Hardware-System mit der Hardware-Versionsnummer verfügbar sind;
das Computerprogramm eine zweite Untermenge von Funktionen, die nicht in dem Computer-Hardware-System mit der Hardware-Versionsnummer verfügbar sind, emuliert; und
daß eine Vergleichsschaltung (14) in dem Computer- Hardware-System vorgesehen ist, wobei die Vergleichsschaltung (14) die Hardware-Versionsnummer in dem Hardware-Versionsregister (10) mit der optimalen Hardware-Versionsnummer vergleicht, die in dem Software-Versionsregister (12) gespeichert ist, wobei die Vergleichsschaltung (14) die Computer-Hardware so konfiguriert, daß Merkmale eliminiert werden, die nicht in der durch die optimale Hardware-Nummer definierten bestimmten Hardware-Version vorhanden sind, sofern die Hardware-Version größer als die optimale Hardware-Versionsnummer ist.
DE69230117T 1991-06-17 1992-06-17 Verfahren und Gerät, die es Rechnerschaltkreisen ermöglichen, mit aktualisierten Versionen von Rechnersoftware zu funktionieren Expired - Fee Related DE69230117T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US71667291A 1991-06-17 1991-06-17

Publications (2)

Publication Number Publication Date
DE69230117D1 DE69230117D1 (de) 1999-11-18
DE69230117T2 true DE69230117T2 (de) 2000-06-15

Family

ID=24878952

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69230117T Expired - Fee Related DE69230117T2 (de) 1991-06-17 1992-06-17 Verfahren und Gerät, die es Rechnerschaltkreisen ermöglichen, mit aktualisierten Versionen von Rechnersoftware zu funktionieren

Country Status (5)

Country Link
US (1) US5577232A (de)
EP (1) EP0519695B1 (de)
JP (1) JP3227542B2 (de)
KR (1) KR100292005B1 (de)
DE (1) DE69230117T2 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950002162B1 (ko) * 1992-02-12 1995-03-14 삼성전자주식회사 Cpu 로직의 자동 절환 장치
JPH07295911A (ja) * 1994-04-20 1995-11-10 Canon Inc データ処理装置およびネットワークシステム
US6452629B1 (en) * 1995-03-15 2002-09-17 Canon Kabushiki Kaisha System for installing image sensing program
JP3671543B2 (ja) * 1996-09-10 2005-07-13 ソニー株式会社 データ伝送方法、データ送信装置、データ受信装置のパラメータ設定方法、データ受信装置及びデータ伝送システム
DE19703894B4 (de) * 1997-02-03 2004-08-19 Robert Bosch Gmbh Verfahren zum Steuern eines Heizgerätes
US5978916A (en) * 1997-11-25 1999-11-02 International Business Machines Corporation Method, system and computer program product for updating region-dependent software using a common update module for multiple regions
US6615344B1 (en) * 1999-09-03 2003-09-02 Infineon Technologies North America Corp. System and method for tracking selectively enabling modules used in an integrated processor using a tracking register providing configuration information to an external pin
US6754848B1 (en) * 1999-09-30 2004-06-22 International Business Machines Corporation Method, system and program products for operationally migrating a cluster through emulation
US6452599B1 (en) * 1999-11-30 2002-09-17 Ati International Srl Method and apparatus for generating a specific computer hardware component exception handler
US6658659B2 (en) * 1999-12-16 2003-12-02 Cisco Technology, Inc. Compatible version module loading
TW501045B (en) * 2000-03-03 2002-09-01 Sony Computer Entertainment Inc Entertainment device and computer system having exchangeability
JP3964142B2 (ja) * 2000-08-15 2007-08-22 株式会社ソニー・コンピュータエンタテインメント エミュレート装置及び部品、情報処理装置、エミュレーション方法、記録媒体、プログラム
DE10110949A1 (de) * 2001-03-07 2002-09-26 Siemens Ag Automatisierte Versions-Analyse von zu einer Softwareapplikation gehörenden Softwarekomponenten
US6968183B2 (en) 2001-11-02 2005-11-22 Telefonaktiebolaget Lm Ericsson (Publ) Determining a multi-module dependent parameter at a telecommunication node
WO2003050997A1 (en) 2001-12-13 2003-06-19 Sony Computer Entertainment Inc. Methods and apparatus for secure distribution of program content
CN100558033C (zh) 2001-12-21 2009-11-04 索尼计算机娱乐公司 用于安全分配程序内容的方法和装置
US7036005B2 (en) * 2001-12-31 2006-04-25 Intel Corporation Method and apparatus for modifying the contents of revision identification register
US20030167334A1 (en) * 2002-03-04 2003-09-04 Mark Henry Butler Provision of content to a client device
US7065560B2 (en) * 2002-03-12 2006-06-20 Hewlett-Packard Development Company, L.P. Verification of computer program versions based on a selected recipe from a recipe table
US20030191870A1 (en) * 2002-04-02 2003-10-09 Dominic Duggan Method and apparatus for updating software libraries
US6892320B1 (en) * 2002-06-03 2005-05-10 Sun Microsystems, Inc. Method and apparatus for providing multiple-version support for highly available objects
US7100032B2 (en) * 2002-06-28 2006-08-29 Intel Corporation Method and apparatus for identifying hardware compatibility and enabling stable software images
US7363237B1 (en) * 2002-12-31 2008-04-22 Adams Phillip M Enforcement process for correction of hardware and software defects
US20040193609A1 (en) * 2003-03-26 2004-09-30 Sony Corporation Master content directory service server for providing a consolidated network-wide content directory
US20050055352A1 (en) * 2003-09-08 2005-03-10 Sony Corporation Content directory and synchronization bridge
US20050060370A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Version based content distribution and synchronization system and method
US20050060578A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Method of and system for authentication downloading
US7925790B2 (en) * 2003-09-17 2011-04-12 Sony Corporation Middleware filter agent between server and PDA
US7735000B2 (en) * 2003-09-25 2010-06-08 Sony Corporation Information and content exchange document type definitions to support content distribution
JP3915808B2 (ja) * 2003-09-26 2007-05-16 オムロン株式会社 プログラマブルコントローラおよびプログラマブルコントローラシステムならびにcpuユニット
US8689113B2 (en) 2004-01-22 2014-04-01 Sony Corporation Methods and apparatus for presenting content
US20050165941A1 (en) * 2004-01-22 2005-07-28 Edward Eytchison Methods and apparatuses for streaming content
US20050262337A1 (en) * 2004-05-24 2005-11-24 Siemens Vdo Automotive Corporation Method and device for determining flash software compatibility with hardware
JP4578366B2 (ja) * 2004-09-20 2010-11-10 株式会社ソニー・コンピュータエンタテインメント ソフトウエアアプリケーションを配布する方法および装置
JP4334521B2 (ja) * 2004-09-20 2009-09-30 株式会社ソニー・コンピュータエンタテインメント シングルプロセッサシステムにおいてソフトウエアプログラムの実行を可能にする方法
JP2006099411A (ja) * 2004-09-29 2006-04-13 Oki Electric Ind Co Ltd ソフトウェアの使用制限方法
US7506336B1 (en) * 2005-06-29 2009-03-17 Emc Corporation System and methods for version compatibility checking
US7783878B2 (en) * 2006-04-28 2010-08-24 Nokia Corporation Methods for decoupling hardware settings from software
JP5368878B2 (ja) * 2009-05-25 2013-12-18 キヤノン株式会社 情報処理装置、製造装置及びデバイス製造方法
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
CN104978224B (zh) * 2015-07-06 2018-11-20 张兆琦 一种面向多硬件平台的应用程序管理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590556A (en) * 1983-01-17 1986-05-20 Tandy Corporation Co-processor combination
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
US4677548A (en) * 1984-09-26 1987-06-30 Honeywell Information Systems Inc. LSI microprocessor chip with backward pin compatibility and forward expandable functionality
JPS6226535A (ja) * 1985-07-22 1987-02-04 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション プログラム内の変換テ−ブルの修正方法
US4763242A (en) * 1985-10-23 1988-08-09 Hewlett-Packard Company Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility
EP0275448A1 (de) * 1986-12-23 1988-07-27 Siemens Aktiengesellschaft Verfahren zur Inbetriebnahme eines programmgesteuerten modular aufgebauten Kommunikationssystems
CA1269177A (en) * 1987-03-13 1990-05-15 Claude Jean Champagne System for maintaining the hardware-software compatibility of modular communication systems
JPH01287738A (ja) * 1988-05-16 1989-11-20 Toshiba Corp マイクロコンピュータ応用装置
US4979106A (en) * 1988-08-29 1990-12-18 Amdahl Corporation Customization of a system control program in response to initialization of a computer system
EP0393290B1 (de) * 1989-04-19 1995-08-16 International Business Machines Corporation Anordnung zur Speicher- und Peripherie-Bausteinauswahl

Also Published As

Publication number Publication date
JPH05204617A (ja) 1993-08-13
DE69230117D1 (de) 1999-11-18
KR100292005B1 (ko) 2001-09-17
EP0519695B1 (de) 1999-10-13
JP3227542B2 (ja) 2001-11-12
US5577232A (en) 1996-11-19
EP0519695A2 (de) 1992-12-23
KR930001057A (ko) 1993-01-16
EP0519695A3 (en) 1993-09-22

Similar Documents

Publication Publication Date Title
DE69230117T2 (de) Verfahren und Gerät, die es Rechnerschaltkreisen ermöglichen, mit aktualisierten Versionen von Rechnersoftware zu funktionieren
DE3853613T2 (de) Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69209538T2 (de) Automatische Konfiguration einer Einheit für koppelbare Rechner
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE3881414T2 (de) Datenverarbeitungssystem mit einer steckbaren optionellen Karte.
DE69609608T2 (de) Vorrichtung und verfahren zur unterbrechungszuweisung
DE3852257T2 (de) Anwenderprogramm-Schnittstelle für Vollbild-Eingabe/Ausgabe.
DE69027164T2 (de) Ladeverfahren und Ladegerät für ein Rechnersystem
DE69129645T2 (de) Verfahren und Anordnung zur Unterstützung der Anzeige und Entfernung von Fenstern
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
DE2648229A1 (de) Einschaltkreis als urlader fuer digitalrechner
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE69509024T2 (de) Emulator mit Detektierungsmechanismus eines illegalen Zugriffs auf ein Spezialregister
DE3751108T2 (de) Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden.
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE69315192T2 (de) Datenverarbeitungssystem und -Verfahren mit einem erweitbaren Register
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE102004012516A1 (de) Computersystem zur elektronischen Datenverarbeitung
DE19626972A1 (de) Verfahren und Vorrichtung zur vorläufigen Freigabe für die Anwendung eines von einer elektronischen Kassette geschützten Programms
DE69518781T2 (de) Stromverwaltungseinheiten für Rechnersysteme
DE1799012C3 (de) Registereinrichtung zur Erleichterung des Wechsels von Teilprogrammen und Teilprogrammschritten in einem elektronischen Rechner
DE69528824T2 (de) Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher
DE68925771T2 (de) Emulatorsystem für eine Anzeige
DE2609698C2 (de) Elektronischer Rechner

Legal Events

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