[go: up one dir, main page]

DE68923433T2 - Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen. - Google Patents

Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.

Info

Publication number
DE68923433T2
DE68923433T2 DE68923433T DE68923433T DE68923433T2 DE 68923433 T2 DE68923433 T2 DE 68923433T2 DE 68923433 T DE68923433 T DE 68923433T DE 68923433 T DE68923433 T DE 68923433T DE 68923433 T2 DE68923433 T2 DE 68923433T2
Authority
DE
Germany
Prior art keywords
field
rom
address
instruction codes
group
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
DE68923433T
Other languages
English (en)
Other versions
DE68923433D1 (de
Inventor
Gregory Frederick Bush
Don Steven Keener
Jeanne Ellen Morel
Richard W Voorhees
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68923433D1 publication Critical patent/DE68923433D1/de
Application granted granted Critical
Publication of DE68923433T2 publication Critical patent/DE68923433T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • G06F12/0661Configuration or reconfiguration with centralised address assignment and decentralised selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Television Signal Processing For Recording (AREA)

Description

  • Die vorliegende Erfindung betrifft die Anordnung des ROM-Codes im Speicher eines Computersystems.
  • Viele bekannte Computersysteme werden in Form einer Grundeinheit verkauft, die vom Kunden erweitert werden kann. Die Systemarchitektur kann beispielsweise mehrere über einen Bus miteinander verbundene Kartensteckplätze in einer Art Gehäuse enthalten. Ein solches Computersystem, die Grundeinheit, kann einen oder mehrere leere Kartensteckplätze enthalten. Das Computersystem kann erweitert werden, indem eine geeignete Erweiterungskarte in einen leeren Steckplatz eingesetzt wird. Die Eigenschaften vieler dieser Erweiterungskarten sind zumindest teilweise durch die Software definiert, die in einem Festwertspeicher gespeichert ist. Diese Software wird im folgenden als ROM-Code bezeichnet. Eine der notwendigen Voraussetzungen für die effektive Nutzung einer solchen Erweiterungskarte ist, daß das System als ganzes auf den ROM-Code zugreifen kann. Typischerweise stellt die Systemarchitektur einen Nur-Lese-Speicherbereich für den ROM-Code des Gesamtsystems zur Verfügung. Dieser Nur-Lese-Speicherbereich ist nicht erweiterbar, d.h., unabhängig von der Zahl der Erweiterungskarten muß deren gesamter ROM-Code sowie der ROM-Code des Grundsystems in diesen Bereich passen.
  • Ein Beispiel für ein solches ausbaufähiges Computersystem wird von der International Business Machines Corp. hergestellt und unter dem Warenzeichen PS/2 vertrieben. Diese Computerfamilie verfügt über ein Konfigurationsdienstprogramm, das automatisch bestimmte Funktionen ausführen kann, die für den Einsatz von zusätzlich eingebauten Erweiterungskarten notwendig sind. Eine der vom Konfigurationsdienstprogramm ausgeführten Funktionen ist es, den ROM-Code der Erweiterungskarte(n) so im ROM-Speicherbereich anzuordnen, daß kein Konflikt mit bereits vorhandenem ROM- Code, der sich bereits im Speicherbereich befindet, und mit dem ROM-Code auf anderen Erweiterungskarten, entsteht. Das Konfigurationsdienstprogramm ordnet den ROM-Code in der Regel einem oder mehreren 8K-Segmenten des ROM-Speicherbereichs zu.
  • Die Bezeichnung "anordnen" in dieser Patentanmeldung bedeutet nicht, daß ROM-Code physisch verschoben wird; der ROM-Code ist physisch in einer Speichereinheit auf der Erweiterungskarte gespeichert. Der Begriff "anordnen" bedeutet, daß dem ROM-Code eine Adresse zugeordnet wird, d.h., daß ein Abbild des ROM-Codes im ROM-Speicherbereich erstellt wird.
  • Da der Nur-Lese-Speicherbereich für den ROM-Code begrenzt ist, ist es wichtig, diesen Speicherbereich möglichst effizient zu nutzen.
  • Nach dem bisherigen Stand der Technik war der ROM-Code an einer Speichergrenze angeordnet, deren Adresse ein ganzzahliges Vielfaches des Teils des Speicherbereichs war, der für die Kapazität des ROM benötigt wurde (nicht der Bereich für den ROM-Code). Wenn beispielsweise der ROM-Code bis zu 16K Speicherplatz belegte, wurde dieser ROM-Code in einem 16K-ROM gespeichert und begann im ROM-Speicherbereich an einer Adresse, die ein ganzzahliges Vielfaches von 16K ist. Es liegt auf der Hand, daß angesichts des begrenzten Speicherplatzes die Notwendigkeit, den ROM-Code an einer solchen Position anzuordnen, zu einer wenig effizienten Ausnutzung des ROM-Speicherbereichs führen konnte. Ein konkretes Beispiel: Angenommen, der ROM-Speicherbereich war auf 128K begrenzt; in diesem Fall gab es nur acht mögliche Speicherpositionen für eine 16K-ROM-Code-Block. Wenn beispielsweise ROM-Speicherplatz ab der Adresse 24K verfügbar war, konnte der Bereich von 24K bis 32K ungenutzt bleiben, und die 16K ROM- Code wurden an der 32K-Adreßgrenze angeordnet und belegten dann die Adressen von 32K bis 48K. Wenn die 16K ROM-Code hingegen an der Adresse 24K angeordnet werden könnte, so könnte der Adreßbereich von 24K bis 40K belegt werden.
  • Ferner sollten Erweiterungskarten zwar die freie Wahl der Speicherposition für den ROM-Code erlauben, es gibt jedoch auch Karten, bei denen sich der ROM-Code an bestimmten Adressen im ROM- Speicherbereich befinden muß. Es liegt auf der Hand, daß diese Tatsache das Problem weiter verschärft, weil es so noch wahrscheinlicher wird, daß Segmente des Speicherbereichs nur schwer oder gar nicht genutzt werden können.
  • Allgemein war die Anordnung des ROM-Code nach dem Stand der Technik auf Adressen beschränkt, die ganzzahlige Vielfache der ROM-Größe, oder anders ausgedrückt, gerade Vielfache der halben ROM-Größe, sind. Grenzen, die auf ungerade Vielfache der halben ROM-Größe entfallen, konnten nicht genutzt werden.
  • Zusammenfassung der Erfindung
  • Demnach ist es ein Ziel der vorliegenden Erfindung, diese künstliche Beschränkung aufzuheben und die Anordnung des ROM-Codes an solchen Grenzen im vorgesehenen ROM-Speicherbereich ermöglichen, die halbzahlige Vielfache der ROM-Größe sind, d.h., es sollten sowohl gerade als auch ungerade Vielfache der halben ROM-Größe nutzbar sein.
  • Ein anderes Ziel der vorliegenden Erfindung ist es, das obige Ziel ohne zusätzliche schaltungsbedingte Verzögerung bei der Adressierung zu erreichen, was sonst erforderlich wäre, um dieses Problem zu lösen.
  • Bei dieser Erfindung wird die Anordnung, in welcher der ROM-Code auf der Erweiterungskarte gespeichert ist, geändert. Während in der Vergangenheit der ROM-Code nur in einer einzigen Version im Nur-Lese-Speicher (ROM) der Erweiterungskarte gespeichert war, wird der ROM-Code bei der vorliegenden Erfindung in zwei verschiedenen Versionen im Speicher der Erweiterungskarte gespeichert; eine Version wird in einem ersten Feld gespeichert und eine zweite in einem zweiten Feld. In einer ersten Version ist der ROM-Code genau so gespeichert wie es auch in der Vergangenheit der Fall war. Zu Beschreibungszwecken wird im folgenden der ROM-Code als aus einem ersten und einem zweiten Segment bestehend dargestellt, wobei ein erstes Feld des auf der Erweiterungskarte gespeicherten ROM-Codes im ersten Segment gespeichert ist und direkt darauf das zweite Segment folgt. Die Erweiterungskarte gemäß der vorliegenden Erfindung enthält den ROM-Code jedoch auch noch in einem anderen oder zweiten Feld. In diesem zweiten Feld geht das zweite Segment des ROM-Codes dem ersten Segment voraus.
  • Zum Ausbau eines Computersystems verwendete Erweiterungskarten nach dem Stand der Technik, wie sie oben beschrieben wurden, enthalten mindestens ein Mehrbitregister. Das Mehrbitregister wird vom Konfigurationsdienstprogramm verwendet, und in diesem Mehrbitregister wird eine numerische Größe gespeichert, die auf ein bestimmtes Segment des ROM-Speicherbereichs hinweist, in dem der ROM-Code der Erweiterungskarte angeordnet oder abgebildet wird. Der Inhalt des Registers wird als Eingangsinformation eines Adreßdecoders auf der Erweiterungskarte verwendet, so daß bei der Adressierung einer Speicherregion innerhalb des ROM- Speicherbereichs, der dem ROM-Code auf der Erweiterungskarte zugeteilt ist, der Adreßdecoder anspricht und der entsprechende ROM-Code aus dem Speicher der Erweiterungskarte ausgelesen wird. Bei der vorliegenden Erfindung ist der Adreßdecoder in einigen Punkten abgewandelt. Erstens ist ein Addierglied mit einem Eingang vom Mehrbitregister vorhanden. Der Ausgang des Addierglieds ist mit dem Adreßdecoder sowie mit der Adressierungsschaltung für den Speicher, der den ROM-Code enthält, gekoppelt. Das Addierglied ist so aufgebaut, daß es eine Ausgabe erzeugt, die gleich eins plus dem Registerinhalt ist. Der Adreßdecoder ist so abgewandelt, daß er nicht nur auf das Register anspricht, sondern auch auf die Ausgabe des Addierglieds. Schließlich wird das niedrigstwertige Bit des Registers verwendet, um zwischen zwei verschiedenen Feldern im Speicher der Erweiterungskarte, die den ROM-Code enthalten, auszuwählen.
  • Hier ist ein konkretes Beispiel hilfreich. Angenommen, die Erweiterungskarte braucht 16K ROM-Code und das Register auf der Erweiterungskarte ist vier Bit lang, so daß 15 der 16 möglichen Positionen innerhalb der 128K ROM-Speicher ausgewählt werden können. Es gibt nur 15 Positionen, da die 16. Position bei der Adresse 120K beginnt, die nicht mehr genügend Platz für die 16K ROM-Code bietet. Der Registerinhalt wird als Seitenauswahlbits bezeichnet. Da 16K ROM-Code angeordnet werden, ist es nicht ausreichend, nur auf der ausgewählten 8K-Seite zu decodieren. Auch die nächste 8K-Seite muß ausgewählt werden können. Diese Voraussetzung wird durch das Addierglied erfüllt.
  • Wie werden die Adressen nach einer erfolgreichen Decodierung angepaßt, so daß der richtige ROM-Code gelesen wird? Wenn die für den ROM-Code ausgewählte Grenze eine 16K-Grenze ist, gibt es keine Probleme. Ist die ausgewählte Grenze jedoch ein ungerades Vielfaches von 8K (also keine 16K-Grenze), so hat das Adreßbit A13 die falsche Polarität. Anders ausgedrückt, bei der Erhöhung der Adressen von einem ungeraden Vielfachen von 8K aus ändert das Adreßbit 13 nach der Hälfte des 16K-Speicherbereichs seinen Zustand und adressiert das darauffolgende Speicherbyte nicht.
  • Dieses Problem kann mit Hilfe des niedrigstwertigen Seitenauswahlbits behoben werden. Dieses Bit gibt an, ob eine gerade oder eine ungerade 8K-Grenze ausgewählt wurde. Da die Polarität des Adreßbits A13 bei ungeraden Grenzen (anders als bei geraden Grenzen) umgekehrt wird, kann dieses Bit über ein EXKLUSIV-ODER- Glied mit dem niedrigstwertigen Seitenauswahlbit gekoppelt werden, so daß seine Polarität nur umgekehrt wird, wenn eine ungerade Seite ausgewählt wurde. Ein Nachteil dieser Lösung ist die unerwünschte Verzögerung, mit der die Adresse dem Speicher auf der Erweiterungskarte, der den ROM-Code enthält, übergeben wird. Eine Alternative, bei der dieser Nachteil nicht auftritt, besteht darin, in einem anderen Feld eine zweite Version des ROM- Code zu speichern. Diese zweite Version bzw. das andere Feld enthält genau den gleichen ROM-Code wie das erste Feld, nur erfolgt die Übergabe des ROM-Codes in einer anderen Reihenfolge. Damit der falschen Polarität des Adreßbits A13 Rechnung getragen wird, wird der ROM-Code in zwei Segmente aufgeteilt. Wenn der ROM-Code an einer geraden Grenze liegt, wird das erste Feld verwendet, in dem das erste Segment des ROM-Codes dem zweiten vorausgeht. Bei einer ungeraden 8K-Grenze wird das zweite Feld des Speichers, in dem der ROM-Code gespeichert ist, ausgewählt. Im zweiten Feld steht das zweite Segment des ROM-Codes vor dem ersten. Auf diese Weise wird bei der Auswahl eines ungeraden ganzzahligen Vielfachen einer 8K-Grenze und der inkrementellen Adreßerhöhung im abgebildeten Adreßraum das zweite Segment des zweiten Feldes richtig adressiert, wenn das Adreßbit A13 seinen Zustand ändert.
  • Kurzbeschreibung der Zeichnungen
  • Die vorliegende Erfindung wird im folgenden ausführlicher beschrieben, so daß Fachleute anhand dieser Beschreibung und der beigefügten Zeichnungen ein solches System nachbauen und benutzen können.
  • Fig. 1 ist eine schematische Darstellung eines typischen Mikrocomputersystems, in dem die vorliegende Erfindung Anwendung finden kann.
  • Fig. 2 ist eine schematische Darstellung des ROM-Speicherbereichs eines solchen Mikrocomputersystems.
  • Fig. 3 und 4 zeigen die Positionen im ROM-Speicherbereich des Computersystems aus Fig. 1, an denen der ROM-Code des Speichers 123 abgebildet werden kann.
  • In Fig. 5 und 6 ist der Inhalt des ROM einer Erweiterungskarte nach dem Stand der Technik bzw. nach der vorliegenden Erfindung dargestellt.
  • Fig. 7 ist eine Detailzeichnung eines Teils des Adressierungsmechanismus 121 gemäß der vorliegenden Erfindung.
  • Fig. 8 ist eine schematische Darstellung eines anderen Teils des Adressierungsmechanismus 121, bestehend aus einem Addierglied und dessen Verbindung mit dem Register 122, in dem die Seitenauswahlbits gespeichert sind.
  • Ausführliche Beschreibung der bevorzugten Ausführungsbeispiele
  • Fig. 1 ist ein schematisches Blockdiagramm eines typischen erweiterungsfähigen Computersystems. Das Computersystem enthält eine CPU 100, die über einen Mehrelementebus 130 mit mehreren Komponenten wie z.B. der repräsentativen Komponente 110 verbunden ist. Das Element 120 stellt eine Erweiterungskarte oder eine ähnliche Komponente dar, die in einen leeren Steckplatz im Gehäuse des Computersystems eingesetzt werden kann, um die Funktionen des Computersystems zu erweitern. Auf der Erweiterungskarte 120 können sich zahlreiche Komponenten befinden; zur Beschreibung der vorliegenden Erfindung ist in Fig. 1 jedoch eine Erweiterungskarte mit einem Speicher 123 dargestellt, in dem der ROM-Code gespeichert ist. Die Erweiterungskarte 120 enthält ein Mehrbitregister 122, in das beim Konf igurieren die Seitenauswahlbits geschrieben werden, anhand derer der im Speicher 123 gespeicherte ROM-Code in dem ROM-Speicherbereich des Computersystems angeordnet oder abgebildet wird. Schließlich enthält die Erweiterungskarte 120 eine Adressierungsschaltung 121, in die bei der Konfigurierung der entsprechende Inhalt des Registers 122 geschrieben wird, und die nach der Konfigurierung in Verbindung mit dem Inhalt des Registers 122 und anderen Informationen, die von einem Element von Bus 130 an den Adreßspeicher 123 übergeben werden, funktioniert. Bevor nun die Funktionsweise der genannten Elemente der Erweiterungskarte 120 erläutert wird, werden anhand der Figuren 2 bis 6 die verschiedenen Möglichkeiten, den ROM-Code im Speicher 123 anzuordnen, beschrieben.
  • Fig. 2 soll den ROM-Speicherbereich in dem in Fig. 1 dargestellten Computersystem darstellen. In dem bereits genannten Beispiel stellt das PS/2 128K ROM-Speicherplatz zwischen den Adreßgrenzen C0000 (hexadezimal) und DFFFF zur Verfügung. Dieser Speicherbereich kann so aufgefaßt werden, daß er 16 Seiten, nämlich P1 bis P16, jeweils mit einer Länge von 8K, enthält. Von diesen 16 Seiten liegt die Hälfte (P2, P4 usw.) auf einer ungeraden 8K-Grenze. Die andere Hälfte der Segmente (P1, P3 usw.) liegen auf einer geraden 8K-Grenze. Angenommen, es sollen 16K ROM-Code aus dem Speicher 123 angeordnet werden, dann gibt es nur 15 (nicht 16) mögliche Positionen. An der letzten Position, Seite 16, können 16K ROM-Code nicht angeordnet werden, da nur 8K Platz vorhanden sind. Jede andere Grenze (die Grenzen P1 bis P15) kann für die Anordnung eines 16K-Blocks ROM-Code verwendet werden.
  • Wenn eine gerade 8K-Grenze (P1, P3 usw.) ausgewählt wird, nehmen die 16K ROM-Code die in Fig. 3 gezeigte Position ein, eine Grenze n*8K, wobei n eine gerade ganze Zahl (0 bis 14) ist. Werden die 16K ROM-Code hingegen auf einer ungeraden Grenze (P2, P4 bis P14) angeordnet, nimmt der Speicher 123 aus Gründen, auf die später noch näher eingegangen wird, die in Fig. 4 dargestellte Konfiguration ein, wobei n eine ungerade ganze Zahl (1 bis 13) ist.
  • In Fig. 5 ist der Inhalt des Speichers, in dem sich der ROM-Code auf einer typischen Erweiterungskarte nach dem Stand der Technik befindet, dargestellt. Zum Zweck der Beschreibung ist dieser ROM-Code in die Segmente 10 und 20 aufgeteilt. Diese Aufteilung dient jedoch ausschließlich dem Vergleich zwischen dem Stand der Technik und der vorliegenden Erfindung.
  • Fig. 6 hingegen zeigt den Inhalt des Speichers 123 bei der vorliegenden Erfindung. Der Inhalt des Speichers 123 ist in die Felder 1 und 2 aufgeteilt. In Feld 1 ist der ROM-Code genauso gespeichert wie in einem Speicher nach dem Stand der Technik. In Feld 2 sind die Felder des ROM-Codes jedoch in anderer Reihenfolge gespeichert. Der ROM-Code wurde nämlich in zwei Segmente, Segment 10 und Segment 20, aufgegliedert. In Feld 1 werden diese Segmente so gespeichert, daß das erste Segment 10 dem zweiten Segment 20 vorausgeht. In Feld 2 dagegen ist der ROM-Code so gespeichert, daß Segment 20 vor Segment 10 steht. Ansonsten sind die Segmente 10 und 20 von Feld 2 mit den Segmenten 10 und 20 von Feld 1 und mit den Segmenten 10 und 20 des ROM-Code 124 nach dem Stand der Technik identisch.
  • In Fig. 8 ist ein Addierglied abgebildet, das aus Gründen, auf die weiter unten noch eingegangen wird, in der Adressierungsschaltung 121 eingesetzt wird. Die Eingangsdaten des Addierglieds aus Fig. 8 und die Seitenauswahlbits RS0 bis RS3 kommen vom Register 122. Die Ausgabe des Addierglieds besteht aus alternativen Seitenauswahlbits RS0P bis RS3P, die unabhängig vom Eingangswert immer einen um eins höheren Wert haben als der Eingangswert. Das Addierglied besteht aus den UND-Gliedern A2 und A4 bis A7, den NICHT-Gliedern I1 bis I3 und den ODER-Gliedern 01 bis 03.
  • In Fig. 8 ist auch die logische Schaltung zur Entwicklung des Signals ROSENA (ROS Enable). Wie der Zeichnung zu entnehmen ist, unterscheidet sich ROSENA von RSENA nur dadurch, daß alle Seitenauswahlbits RS0 bis RS3 den Wert 1 haben (so daß das 15. Segment an der Grenze DE000 ausgewählt wird). Wie bereits beschrieben ist das 15. Segment kein zulässiges Segment für die Anordnung eines 16K-Blocks ROM-Code. Entsprechend wird bei der Auswahl des 15. Segments ROSENA durch das UND-Glied A1 unterdrückt.
  • Fig. 7 zeigt eine andere Komponente der Adressierungsschaltung 121. Die in Fig. 7 dargestellte Schaltung aktiviert den Speicher 123, wenn eine geeignete Adresse im Adreßteil von Adreßbus 130 vorliegt. Bei der Schaltung in Fig. 7 sind, abgesehen von der Art, in der ROSENA entwickelt wird (wie in Fig. 8 dargestellt), die Glieder A8, O13 und ihre Eingangswerte an das Glied O14 ganz konventionell, ebenso wie die Glieder O4 bis O7 und A9. Der Adreßmechanismus ist durch die Hinzufügung der Glieder O8 bis O12, A10 und die Verwendung der Ausgabe von O12 als Eingabe an O14 anstelle der Verwendung der Ausgabe von A9 abgewandelt. Genauer aktivieren die Glieder O4 bis O7 das Glied A9, wenn die Adresse im Adreßteil von Bus 130 sich auf der Seite befindet, die durch den Inhalt von Register 122, d.h. RSo bis RS3, ausgewählt ist.
  • Die vorliegende Erfindung unterscheidet sich von bisherigen Verfahren durch die Verwendung der Glieder O8 bis O12 sowie A10. Die Glieder O8 bis O11 aktivieren das Glied A10, wenn im Adreßteil von Bus 130 eine Adresse steht, die sich auf der Seite befindet, die auf die durch den Inhalt des Registers 122, d.h. RS0 bis RS3, gekennzeichnete Seite folgt.
  • Wenn der ROM-Code auf der Erweiterungskarte auf eine gerade 8K- Grenze abgebildet wird, hat das niedrigstwertige Bit der Seitenauswahlbits in Register 122, RS0, den Wert 0. Dieses Bit wird zur Auswahl des ersten Feldes, d.h. Feld 1, des Speichers 123 verwendet (siehe Fig. 8 und Fig. 1). Wenn im Adreßteil von Bus 130 eine Adresse steht, die sich auf der durch die Seitenauswahlbits bezeichneten 8K-Seite befindet, so sprechen die Glieder O4 bis O7 an und Glied O14 erzeugt ein aktives ULRSG-Signal (Un-Latched ROM Select Good) zur Aktivierung des Speichers 123, sofern die anderen Bedingungen stimmen. Durch die Kombination der Adresse im Adreßteil von Bus 130 und dem niedrigstwertigen Bit von Register 122 wird das erste Feld des Speichers 123 adressiert, und jedes Byte im ersten Segment 10 kann adressiert werden. Wenn die Adresse, die im Adreßteil von Bus 130 steht, über den ersten 8K-Block des ROM-Code hinausgeht, sprechen die Glieder O8 bis O11 sowie A10 an, um ULRSG aktiv zu halten, und ein Byte im Segment 20 (von Feld 1) wird adressiert. Auf diese Weise ist durch die Abbildung oder Anordnung des ROM-Code auf einer geraden 8K-Grenze der ROM-Code im wesentlichen gleich adressierbar wie nach dem Stand der Technik.
  • Die vorliegende Erfindung ist besonders nützlich, wenn das niedrigstwertige Seitenauswahlbit (RS0) im Register 122 den Wert 1 hat, d.h., wenn eine ungerade 8K-Grenze ausgewählt wurde.
  • Wenn das erste Adreßbyte in diesem Bereich im Adreßteil von Bus 130 steht, hat das Bit A13 den Wert 1, und die Glieder O4 bis O7 sprechen an, so daß auch Glied A9 anspricht und ein aktives ULRSG erzeugt wird (unter den gleichen Bedingungen). Wenn das niedrigstwertige Bit von Register 122 aktiv ist, wird Feld 2 des Speichers 123 adressiert, und das ausgelesene Speicherbyte ist das erste in Segment 10. Angenommen, die Adresse im Adreßteil von Bus 130 wird stetig erhöht, so wird irgendwann das letzte Byte in Segment 10, Feld 2, adressiert. Wenn die Adresse im Bus nochmals erhöht wird, ändert sich der Wert von A13 von 1 in 0. Jetzt sprechen die Glieder O4 bis O7 sowie A9 nicht mehr an. Andererseits werden jetzt die Glieder O8 bis O11 aktiviert, so daß A10 anspricht und ULRSG auf diese Weise aktiv bleibt.
  • Wenn der ROM-Code auf eine ungerade 8K-Grenze abgebildet wird, beginnt die Adressierung entsprechend bei Feld 2 in Segment 10, und bei der schrittweisen Erhöhung der Adressen steigt die Adresse im Speicher 123 bis Speichersegment 10 von Feld 2 an. Nachdem die Bytes in Segment 10 von Feld 2 adressiert worden sind, ist das erste Byte in Segment 20 von Feld 2 an der Reihe. Danach werden bei der weiteren Erhöhung der Adresse die übrigen Bytes in Segment 20 von Feld 2 adressiert.
  • In der vorliegenden Beschreibung wurde bisher dargelegt, wie mit der vorliegenden Erfindung der ROM-Code einer Erweiterungskarte im ROM-Speicherbereich eines Computersystems angeordnet oder abgebildet werden kann. Dies ist eine typische Beschreibung für das Anwendungsgebiet der Erfindung; die Erfindung ist jedoch nicht auf Erweiterungskarten beschränkt. Ein typisches Computersystem enthält neben den Erweiterungskarten (die mit dem Grundsystem erworben worden sein können, aber nicht müssen), eine System- oder Steuerplatine. Diese Platine enthält in der Regel die CPU, einen ROM-Speicher, ein Adressierungselement usw. Die vorliegende Erfindung kann auf der System- oder Steuerplatine auf genau die gleiche Weise benutzt werden wie bei einer Erweiterungskarte. Bei der Verwendung der Erfindung auf der System- oder Steuerplatine kann der im ROM-Speicher der Platine gespeicherte ROM-Code auf die gleiche Weise und mit den gleichen Vorteilen im ROM-Speicherbereich des Computersystems angeordnet oder abgebildet werden wie der ROM-Code auf einer Erweiterungskarte.

Claims (5)

1. Eine Anordnung für ein Computersystem mit
einem ROM-Speicher mit zwei adressierbaren Feldern (Feld 1, Feld 2), wobei
in einem ersten adressierbaren Feld (Feld 1) die ROM-Befehlscodes für die Komponente fortlaufend gespeichert sind, wobei diese fortlaufende Reihenfolge eine erste Gruppe 10 von Befehlscodes, gefolgt von einer zweiten Gruppe 20 von Befehlscodes umfaßt;
in einem zweiten adressierbaren Feld (Feld 2) die gleichen Befehlscodes in umgekehrter Reihenfolge gespeichert sind, wobei diese umgekehrte Reihenfolge die zweite Gruppe 20 von Befehlscodes, gefolgt von der ersten Gruppe 10 von Befehlscodes umfaßt;
ferner mit einem programmierbaren Adreßregister 122, in das durch andere Komponenten des Personal-Computer-Systems ein gerader oder ungerader Code (RS0) geschrieben werden kann, sowie
mit einer Adreßlogik (A1 bis A10, O1 bis O14, I1 bis I3), die auf den Code des programmierbaren Adreßregisters und auf Signale am Adreßbus des Computersystems zur Erzeugung von Adreßsignalen für den ROM-Speicher reagiert, wobei die Adreßsignale entweder das erste oder das zweite adressierbare Feld adressieren, je nachdem, ob der Code im programmierbaren Register gerade oder ungerade ist.
2. Eine Anordnung gemäß Anspruch 1, die auf einer Erweiterungskarte implementiert ist, die in das Computersystem eingesteckt werden kann.
3. Eine Anordnung gemäß Anspruch 1 oder 2, bei der die Position der ersten Gruppe von Befehlscodes im zweiten adressierbaren Feld bezüglich des Anfangs des zweiten adressierbaren Feldes der Position der zweiten Gruppe von Befehlscodes im ersten adressierbaren Feld bezüglich des Anfangs des ersten adressierbaren Feldes entspricht.
4. Ein Verfahren zur Initialisierung und Adressierung eines ROM- Speichers eines Computersystems, der ROM-Befehlscodes zur Einfügung in einen programmierbaren Abschnitt eines ROM-Speicherbereichs des Computersystems enthält, wobei das Verfahren folgende Schritte umfaßt:
a) Speichern der ROM-Befehlscodes in zwei verschiedenen Feldern (Feld1, Feld 2) des ROM-Speichers, wobei
i) ein erstes Feld (Feld 1) ROM-Befehlscodes in einer vorgegebenen fortlaufenden Reihenfolge enthält, bei der auf eine erste Gruppe 10 von Befehlscodes eine zweite Gruppe 20 von Befehlscodes folgt, und
ii) ein zweites Feld (Feld 2) identische ROM-Befehlscodes in umgekehrter Reihenfolge enthält, so daß auf die zweite Gruppe 20 von Befehlscodes die erste Gruppe 10 von Befehlscodes folgt;
b) Speichern einer ROM-Segmentkennung (RS0), die ein ROM- Segment für die ROM-Befehlscodes bezeichnet, in einem programmierbaren Register, wobei die Segmentkennung entweder ein erstes oder ein zweites Merkmal aufweist und
c) falls die Segmentkennung das erste Merkmal aufweist, das erste Feld adressiert, und falls die Segmentkennung das zweite Merkmal aufweist, das zweite Feld adressiert.
5. Ein Verfahren wie in Anspruch 4, das außerdem folgenden Schritt umfaßt:
Abwandlung der Adreßeingangssignale in einer Adreßänderungslogik (A1 bis A10, O1 bis O14, I1 bis I3), so daß die Adressierungssignale nur dann erzeugt werden, wenn die Segmentkennung das zweite Merkmal aufweist.
DE68923433T 1988-12-09 1989-11-30 Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen. Expired - Fee Related DE68923433T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/281,612 US4979148A (en) 1988-12-09 1988-12-09 Increasing options in mapping ROM in computer memory space

Publications (2)

Publication Number Publication Date
DE68923433D1 DE68923433D1 (de) 1995-08-17
DE68923433T2 true DE68923433T2 (de) 1996-03-07

Family

ID=23078043

Family Applications (2)

Application Number Title Priority Date Filing Date
DE68923433T Expired - Fee Related DE68923433T2 (de) 1988-12-09 1989-11-30 Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.
DE3940302A Granted DE3940302A1 (de) 1988-12-09 1989-12-06 Erweiterung der moeglichkeiten, rom code dem speicherbereich eines computers zuzuordnen

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE3940302A Granted DE3940302A1 (de) 1988-12-09 1989-12-06 Erweiterung der moeglichkeiten, rom code dem speicherbereich eines computers zuzuordnen

Country Status (14)

Country Link
US (1) US4979148A (de)
EP (1) EP0372841B1 (de)
JP (1) JPH0743669B2 (de)
KR (1) KR920005289B1 (de)
CN (1) CN1014839B (de)
AR (1) AR245832A1 (de)
AU (1) AU623457B2 (de)
BR (1) BR8906348A (de)
CA (1) CA2000009C (de)
DE (2) DE68923433T2 (de)
GB (1) GB2225884A (de)
MY (1) MY108517A (de)
NZ (1) NZ231639A (de)
PH (1) PH26617A (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5282172A (en) * 1991-02-22 1994-01-25 Vlsi Technology, Inc. Look-ahead circuit for fast decode of bankselect signals in EMS systems
US6397262B1 (en) 1994-10-14 2002-05-28 Qnx Software Systems, Ltd. Window kernel
CA2118201C (en) * 1994-10-14 2003-02-04 Patrick M. Hayden Photon windowing kernel
US5895480A (en) * 1995-10-10 1999-04-20 Holtek Microelectronics, Inc. Method of and means for accessing an address by respectively substracting base addresses of memory integrated circuits from an access address
EP0769746A1 (de) * 1995-10-20 1997-04-23 Symbios Logic Inc. Speichereinrichtung und Zugriffsverfahren dafür
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6757900B1 (en) 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US6763453B2 (en) * 2000-12-28 2004-07-13 Intel Corporation Security on hardware loops
US7380250B2 (en) 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7493397B1 (en) 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6944797B1 (en) 2001-06-07 2005-09-13 Microsoft Corporation Method and system for tracing
US6915454B1 (en) 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
US7162723B2 (en) * 2001-06-29 2007-01-09 Microsoft Corporation ASP.NET HTTP runtime
US7594001B1 (en) 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US7216294B2 (en) 2001-09-04 2007-05-08 Microsoft Corporation Method and system for predicting optimal HTML structure without look-ahead
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US7574653B2 (en) 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US7596782B2 (en) 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US7464386B2 (en) 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US7530058B2 (en) 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
US8156448B2 (en) 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3440615A (en) * 1966-08-22 1969-04-22 Ibm Overlapping boundary storage
US3921144A (en) * 1971-05-18 1975-11-18 Ibm Odd/even boundary address alignment system
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
US4374411A (en) * 1980-02-14 1983-02-15 Hayes Microcomputer Products, Inc. Relocatable read only memory
US4378591A (en) * 1980-12-31 1983-03-29 Honeywell Information Systems Inc. Memory management unit for developing multiple physical addresses in parallel for use in a cache memory
US4363095A (en) * 1980-12-31 1982-12-07 Honeywell Information Systems Inc. Hit/miss logic for a cache memory
US4443847A (en) * 1981-02-05 1984-04-17 International Business Machines Corporation Page addressing mechanism
DE3148761C2 (de) * 1981-12-09 1985-08-22 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zum Adressieren unterschiedlicher Speichereinheiten in einem Mikrorechnersystem
US4507731A (en) * 1982-11-01 1985-03-26 Raytheon Company Bidirectional data byte aligner
US4649471A (en) * 1983-03-01 1987-03-10 Thomson Components-Mostek Corporation Address-controlled automatic bus arbitration and address modification
US4630230A (en) * 1983-04-25 1986-12-16 Cray Research, Inc. Solid state storage device
CA1213068A (en) * 1983-04-26 1986-10-21 Tandy Corporation Expandable mapped memory control
US4485457A (en) * 1983-05-31 1984-11-27 Cbs Inc. Memory system including RAM and page switchable ROM
US4675808A (en) * 1983-08-08 1987-06-23 American Telephone And Telegraph Company At&T Bell Laboratories Multiplexed-address interface for addressing memories of various sizes
NZ209664A (en) * 1983-09-29 1987-05-29 Tandem Computers Inc Memory board address assignments: automatic reconfiguration
JPS60251403A (ja) * 1984-05-28 1985-12-12 Hitachi Ltd デジタル処理装置
DE3586557D1 (de) * 1984-10-26 1992-10-01 Ibm Datenverarbeitungsvorrichtung mit festem adressraum und variablem speicher.
US4744053A (en) * 1985-07-22 1988-05-10 General Instrument Corp. ROM with mask programmable page configuration
US4740916A (en) * 1985-12-19 1988-04-26 International Business Machines Corporation Reconfigurable contiguous address space memory system including serially connected variable capacity memory modules and a split address bus
US4761736A (en) * 1986-01-02 1988-08-02 Commodore Business Machines, Inc. Memory management unit for addressing an expanded memory in groups of non-contiguous blocks
GB2203869B (en) * 1987-04-17 1991-10-23 Apple Computer Computer resource configuration method and apparatus

Also Published As

Publication number Publication date
AU4609089A (en) 1990-06-14
EP0372841A3 (de) 1991-06-12
JPH02201669A (ja) 1990-08-09
DE68923433D1 (de) 1995-08-17
US4979148A (en) 1990-12-18
GB2225884A (en) 1990-06-13
EP0372841B1 (de) 1995-07-12
GB8927950D0 (en) 1990-02-14
NZ231639A (en) 1992-03-26
JPH0743669B2 (ja) 1995-05-15
MY108517A (en) 1996-10-31
AR245832A1 (es) 1994-02-28
KR920005289B1 (ko) 1992-06-29
CN1014839B (zh) 1991-11-20
CA2000009A1 (en) 1990-06-09
AU623457B2 (en) 1992-05-14
CN1043401A (zh) 1990-06-27
KR910012925A (ko) 1991-08-08
PH26617A (en) 1992-08-19
DE3940302A1 (de) 1990-06-13
EP0372841A2 (de) 1990-06-13
BR8906348A (pt) 1990-08-21
DE3940302C2 (de) 1993-02-25
CA2000009C (en) 1994-02-01

Similar Documents

Publication Publication Date Title
DE68923433T2 (de) Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.
DE68922975T2 (de) Speichereinheit mit zwei Toren.
DE2646162C3 (de) Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers
DE69828564T2 (de) Kombinierter nichtflüchtiger programm-/datenspeicher für gleichzeitiges lesen von programmen und schreiben von daten
DE69326175T2 (de) Daten-Reprogrammierungsverfahren in einem EEPROM und in einer EEPROM-Karte
DE2364408A1 (de) System zur erstellung von schaltungsanordnungen aus hochintegrierten chips
DE2813128A1 (de) Mikroprogrammspeicher
EP0500973B1 (de) EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
DE69819961T2 (de) Nichtflüchtige Halbleiterspeicheranordnung
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE69429309T2 (de) Adressendekoder mit geringer Schaltungsgrösse und Adressbereicherweiterungsmöglichkeit
DE69714532T2 (de) Synchrone Halbleiterspeichervorrichtung mit Makrobefehlsspeichern und Ausführungsverfahren dafür
DE2117581B2 (de) Einrichtung zur Adressenprüfung
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE3586789T2 (de) Mikrocomputer mit wenigstens einer ein-/ausgabeeinheit.
DE10105627B4 (de) Mehrfachanschlussspeichereinrichtung, Verfahren und System zum Betrieb einer Mehrfachanschlussspeichereinrichtung
DE10252059B3 (de) Verfahren zum Betreiben einer Speicheranordnung
EP1332501A2 (de) Speicherverwaltungslogik zur erweiterten nutzung von festwertspeichern
DE69431338T2 (de) Datenverarbeitungssystem mit Busbreite-Wechselfunktion
DE69025268T2 (de) Schaltungsanordnung zur erweiterten Adressierung
WO2002099650A2 (de) Verfahren zur verwaltung eines speichers einer chipkarte
DE102004005290B3 (de) Verfahren und Vorrichtung zur Absicherung von Daten in einem nichtflüchtigen Datenspeicher
DE10206554B4 (de) Teletext-Anordnung mit einem programmierbaren externen Programmspeicher
DE10128752A1 (de) Verfahren zur Ablage von Daten in einen Speicherbaustein

Legal Events

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