DE69027017T2 - Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner - Google Patents

Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner

Info

Publication number
DE69027017T2
DE69027017T2 DE69027017T DE69027017T DE69027017T2 DE 69027017 T2 DE69027017 T2 DE 69027017T2 DE 69027017 T DE69027017 T DE 69027017T DE 69027017 T DE69027017 T DE 69027017T DE 69027017 T2 DE69027017 T2 DE 69027017T2
Authority
DE
Germany
Prior art keywords
data
pointer
data block
memory
new
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
DE69027017T
Other languages
English (en)
Other versions
DE69027017D1 (de
Inventor
Philip Garcia
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69027017D1 publication Critical patent/DE69027017D1/de
Publication of DE69027017T2 publication Critical patent/DE69027017T2/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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

    1. Gebiet der Erfindung
  • Die vorliegende Erfindung ist ein System und ein Verfahren für die effiziente Zuweisung von Speicher und für den effizienten Zugriff auf einen Speicher in einem Mikrocomputer.
  • 2. Verwandte Technik
  • Bei jedem modernen Computersystem spielen Verwaltungsverfahren zum Speichern von Daten eine Schlüsselrolle für den effizienten Betrieb des Computers. Da die Computersysteme komplexer werden, werden Speicherverwaltungsschemen immer wichtiger. Sowohl die Geschwindigkeit des zugreifens auf die Daten als auch die effiziente Verwendung von verfügbarem Speicher sind kritische Faktoren, die berücksichtigt werden müssen, wenn derartige Schemen entwickelt werden.
  • In Situationen, in denen die Anzahl und Größe einzelner Dateneinträge unbekannt ist, erlaubt ein vielseitiges Speicherverwaltungsschema, daß das Computersystem den wertvollen Speicher möglichst klug ausnützt. Dies ist besonders bei Schemen der Fall, die mit der Datenerfassung einhergehen. Ein Beispiel eines derartigen Schemas ist ein Computerprogramm, welches die in einem Geschäft gemachten Einkäufe aufzeichnen kann. Ein Benutzer könnte Daten in das Programm eingeben, die sich auf jeden gekauften Posten, den Namen des Postens, den Namen des Kunden und ebenfalls auf eine Anzahl optionaler Punkte, wie z.B. eine Kreditkartennummer, welche ausgefüllt werden können oder nicht, beziehen. Es wird angemerkt, daß die Größe und Anzahl von Dateneinträgen unter Umständen nicht vorher bestimmt werden kann. Es würde verschwenderisch sein, einen großen Speicherbetrag für jeden möglichen Eintrag vor dem Eintragen der Daten zuzuweisen, und wenn optionale Felder nicht verwendet werden, würde es verschwenderisch sein, überhaupt irgendeinen Speicher zuzuweisen. Sobald die Daten eingegeben worden sind, ist es ebenfalls von entscheidender Bedeutung, daß die Daten schnell wiedergewonnen werden können.
  • Beim Finden einer Lösung für dieses Speicherverwaltungsproblem wurden mehrere verschiedene Schemen entworfen, um einen Speicher effizient zu verwalten. Zwei herkömmliche Schemen existieren, wobei eines die Verwendung einer Tabelle und das andere die Verwendung einer verknüpften Liste mit sich bringt.
  • Das Tabellenschema zum Speicherverwalten umfaßt die Zuweisung von zwei festen Bereichen, welche eine Zeigertabelle und ein Datenbereich sein sollen. Vor dem Speichern von Daten wird durch eine Speicherverwaltungsroutine ein fester Speicherbetrag zur Verwendung durch die Zeigertabelle und den Datenbereich zugewiesen. Wenn Speicher für die Speicherung von Daten benutigt wird, werden die Daten in den als nächstes verfügbaren Speicherblock geschrieben, wobei ein Zeiger innerhalb der Zeigertabelle die Adresse dieses Datenblocks erhält. Die Adresse, die sich auf den darauffolgenden Datenblock bezieht, wird dann berechnet und zurückgehalten. Wenn eine Abfrage nach einem speziellen Datenblock auftritt, muß lediglich die Zeigertabelle durchgesucht werden, um die Adresse des abgefragten Datenblocks zu finden.
  • Das Problem beim Verwenden der Tabelle besteht jedoch darin, daß die Zeigertabelle und der Datenbereich vor dem Speichern beliebiger Daten zugewiesen werden müssen. Daher müssen eine bestimmte Anzahl von Zeigern und eine feste Anzahl von Raum für den Datenbereich zugewiesen werden. Dies bedeutet, daß nicht genug Zeiger vorhanden sein werden, wenn beispielsweise Raum für hundert Zeiger zugewiesen worden ist, und es sich zeigt, daß mehr als hundert Datenblöcke gespeichert werden müssen. Es tritt ferner ein Problem auf, wenn nur ein paar sehr große Datenblöcke zugewiesen werden. In diesem Fall werden nur ein paar Zeiger verwendet, wobei der Speicher, in dem die restlichen nicht-verwendeten Zeiger gespeichert sind, verschwendet sein wird.
  • Ein weiteres herkömmliches Schema der Speicherzuweisung, welches Speicher effizienter als eine Tabelle zuweist, ist als eine verknüpfte Liste bekannt. Bei diesem Schema wird ein reservierter Abschnitt jedes zugewiesenen Datenblockes statt des Vorhandenseins einer Tabelle zum Halten von Zeigern für jeden Datenblock als ein Zeiger auf den nächsten Datenblock, der verwendet werden soll, verwendet. Somit wird nur ein Zeiger zugewiesen, wenn ein neuer Datenblock erzeugt wird. Als Beispiel dieser Methodologie weist der erste Block einen Zeiger auf, welcher auf den zweiten zugewiesenen Block zeigt, wenn zwei Datenblöcke existieren, welche zugewiesen worden sind. Wenn der zweite Block der letzte zuzuweisende Datenblock war, dann zeigt der Zeiger in diesem Datenblock auf die nächste verfügbare Datenspeicherposition. Auf diese Art und Weise kann ein Softwareprogramm der Verknüpfung von Blöcken von Daten folgen, bis der gewünschte Block erhalten wird.
  • Der Nachteil des Schemas mit verknüpfter Liste besteht jedoch darin, daß eine lange Zeit benctigt wird, um den erwünschten Datenblock zu finden. wenn der erwünschte Datenblock beispielsweise am Ende einer langen verknüpften Liste von Datenblöcken ist, dann muß die Softwareanwendung, die nach diesem Datenblock sucht, die gesamte Länge der verknüpften Liste durchlaufen, bevor sie die erwünschten Daten erhält.
  • Zusammengefaßt weisen beide herkömmlichen Speicherzuweisungsschemen (Tabelle und verknüpfte Liste) Mängel auf. Die Tabelle benötigt Zeiger und verschwendet Speicherplatz, wogegen die verknüpfte Liste Speicher-effizienter ist, die Datenwiedergewinnung jedoch oft langsamer ist.
  • Davon ausgehend realisierte der Erfinder, daß ein Speicherverwaltungssystem benötigt wurde, welches effizient (im Hinblick auf den Raum) Speicher zuweisen kann, wie es der Fall bei einer verknüpften Liste ist, und welches ferner die Fähigkeit aufweist, erwünschte Datenblöcke wie im Fall der Tabelle schnell zu finden.
  • Die Nachteile der oben erwähnten herkömmlichen Schemen führten den Erfinder dahin, ein System und ein Verfahren zum Verwalten von Speicher in einem Mikrocomputer zu erfinden, bei dem Speicher mit der Effizienz einer verknüpften Liste zugewiesen wird, und bei dem Daten mit der Geschwindigkeit einer Tabelle wiedergewonnen werden.
  • Die US-A-3 924 245 offenbart ein System, bei dem Informationen von zwei Kategorien (z.B. zwei verschiedene Typen eines Mikroprogramm-Materials) in jeweilige Stapel in einen Speicher geschrieben werden, wobei die Stapel von getrennten Basisadressen zueinander fortschreiten, während ihnen Informationen hinzugefügt werden. Auf diese Art und Weise verwenden die beiden Kategorien von Informationen denselben Speicherraum gemeinsam, wobei der Raum auf eine effiziente Art und Weise ausgenützt wird, während sequenzielle Adressen innerhalb der beiden Kategorien bewahrt werden. Ein Stapel weist bezüglich des anderen eine Priorität auf. Dies wird erreicht, indem alle Informationen im Stapel mit niedriger Priorität entfernt werden, wenn nicht genug Raum vorhanden ist, um neue Informationen zu dem Stapel mit höherer Priorität hinzuzufügen.
  • Merkmale der Erfindung sind durch die Ansprüche 1 und 4 definiert.
  • Während des Betriebs der vorliegenden Erfindung wird eine Zeigertabelle dynamisch zugewiesen, wobei an einem Ende eines gegebenen Datenspeicherbereichs begonnen wird. Die Zeiger innerhalb dieser Zeigertabelle zeigen jeweils zu einem zugewiesenen Datenblock oder zu der Position der nächsten verfügbaren Datenspeicherposition.
  • Der Zeiger, der zu der nächsten verfügbaren Datenspeicherposition zeigt, zeigt anfänglich auf das andere Ende des Datenspeicherbereiches, von dem die Zeigertabelle zugewiesen worden ist. Während Datenblöcke in den Datenspeicherbereich geschrieben werden, wachsen die Zeigertabelle und die Datenblöcke aufeinander zu, wobei sie dies fortsetzen können, bis ihr fortgesetztes Wachstum andernfalls bewirken würde, daß sie sich überlappen.
  • Wenn eine Abfrage nach dem Schreiben eines Datenblockes in den Speicherbereich auftritt, erhält die vorliegende Erfindung von der Zeigertabelle den Zeiger, der auf die nächste verfügbare Datenspeicherposition zeigt, wobei sie überprüft, um sicherzustellen, daß das Schreiben der Datenblöcke nicht bewirken wird, daß sich der Datenblock und die Zeigertabelle überlappen. Wenn keine überlappung vorhanden ist, wird der Datenblock geschrieben. Anschließend wird ein neuer Zeiger zugewiesen werden, der die Position enthält, auf die der nlgchste Datenblock geschrieben werden soll. Diese Position ist die nächste verfügbare Datenspeicherposition und befindet sich neben dem vorher geschriebenen Datenblock.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Verschiedene Ziele, Merkmale und damit einhergehende Vorteile der vorliegenden Erfindung kinnen besser gewürdigt werden, wenn dieselbe bezugnehmend auf die folgende detaillierte Beschreibung der vorliegenden Erfindung besser verstanden wird, wenn sie in Verbindung mit den beigefügten Zeichnungen betrachtet wird. Es zeigen:
  • Fig. 1 ein Diagramm auf hoher Ebene der Umgebung der vorliegenden Erfindung.
  • Fig. 2 ein Diagramm auf hoher Ebene einer Speicherkonfiguration, die durch die vorliegende Erfindung erzeugt ist.
  • Fig. 3 ein Diagramm auf niederer Ebene einer Speicherkonfiguration, die durch die vorliegende Erfindung erzeugt ist.
  • Fig. 4 ein bevorzugtes Ausführungsbeispiel der Umgebung der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Die vorliegende Erfindung ist ein System und ein Verfahren für die effiziente Zuweisung von Speicher und den effizienten Zugriff auf einen Speicher in einem Mikrocomputer. Insbesondere ist die Erfindung eine Speicherzuweisungsroutine zum effizienten Verwalten von Speicher in einem Mikrocomputer 100 (in Fig. 1 gezeigt) oder in einer Steuerung, indem eine effiziente Zuweisung von Speicher erlaubt wird und indem die schnelle Wiedergewinnung von Daten, die in demselben gespeichert sind, ermöglicht wird.
  • Bei einem bevorzugten Ausführungsbeispiel läuft die vorliegende Erfindung allgemein in der Computerumgebung, wie sie durch Fig. 1 gezeigt ist. Aus Fig. 1 ist zu sehen, daß die vorliegende Erfindung (welche bei einem Ausführungsbeispiel eine Speicherzuweisungsroutine 114 ist) vorzugsweise Teil eines größeren Computerprogramms 112 ist. Dieses Computerprogramm 112 kann eine Standard-Softwareanwendung sein, oder sie könnte Teil des Betriebssystems oder des BIOS (BIOS = Basic Input/Output System = Basis-Eingabe/Ausgabe-System) des Mikrocomputers 10 sein.
  • Die Art und Weise, auf die die Speicherzuweisungsroutine 114 und die Computerumgebung aufeinander einwirken, kann am besten aus dem vorliegenden Beispiel gesehen werden. Wenn ein Benutzer und das Computerprogramm 112 aufeinander einwirken, gibt der Benutzer Daten von einem Eingabegerät 102 ein. Die Daten werden dann zu einem Puffer 104 gesendet, welcher die selben speichert. Eine zentrale Verarbeitungseinheit (CPU; CPU = Central Processing Unit) 108 wird alarmiert, daß Daten vorhanden sind, die von dem Puffer gelesen werden sollen, wonach dieselbe diese Daten liest. Die Speicherzuweisungsroutine 114 weist einen Platz innerhalb eines Datenspeicherbereiches 116 zu und leitet die CPU 108 an, die Daten über einen Bus 106 zu dem Datenspeicherbereich 116 zu senden. Auf diese Art und Weise wird die Speicherzuweisungsroutine 114 tatsächlich durch die Eingabe von Daten von einem Benutzer über ein Eingabegerät 102 eingeleitet. Natürlich könnte ein Computerprogramm 112 ebenfalls geschrieben sein, um Daten automatisch zu erzeugen, welche dann durch die Speicherzuweisungsroutine 114 gespeichert werden würden, oder es kann auch eine bestimmte Kombination mit dem obigen vorhanden sein.
  • Die vorliegende Erfindung ist zur Verwendung in einem Computersystem gedacht, bei dem es nicht bekannt ist, wieviele verschieden große Blöcke von Daten abgerufen werden sollen, und bei dem die Geschwindigkeit des Zugriffs auf die Daten wichtig ist. Folglich wird die vorliegende Erfindung nachfolgend bezugnehmend auf Fig. 2 beschrieben.
  • Fig. 2 zeigt schematisch einen Datenspeicherbereich 116, welcher für die Speicherung von Daten verwendet werden soll. Dieser Datenspeicherbereich 116 kann der gesamte freie Speicher innerhalb des Mikrocomputers 100 (in Fig. 1 gezeigt) oder ein kleinerer Abschnitt desselben sein. Tatsächlich können mehrere Datenspeicherbereiche 116 eingestellt und einer zu einem Zeitpunkt verwendet werden.
  • Allgemein wird eine Zeigertabelle durch die Speicherzuweisungsroutine 114 zugewiesen, indem an einem Ende des Datenspeicherbereichs 116 begonnen wird. Diese Zeigertabelle 206 enthält Zeiger, welche auf Datenblöcke innerhalb eines Datenfeldes 204 zeigen. Diese Datenblöcke werden zugewiesen, indem bezüglich der Zeigertabelle an dem anderen Ende des Datenspeicherbereichs 116 begonnen wird. Der Abschnitt mit variabler Länge des Datenspeicherbereichs 116, in dem die Datenblöcke gespeichert sind, wird hier als ein Datenfeld 204 bezeichnet. Somit ist zu sehen, daß das Datenfeld 204 und die Zeigertabelle 206 aufeinander zuwachsen, während neue Einträge hinzugefügt werden.
  • Immer wenn ein neuer Datenblock innerhalb des Datenfeldes 204 durch die Speicherzuweisungsroutine 114 zugewiesen wird, wird ferner ein neuer Zeiger in der Zeigertabelle 206 zugewiesen. Der Inhalt dieses neuen Zeigers zeigt auf die Adresse des Beginns, von dem aus der nächste Datenblock in dem verfügbaren Speicher starten wird (d.h. derselbe zeigt auf die nächste verfügbare Datenspeicherposition) Somit werden jeder Zeiger in der Zeigertabelle 106 und jeder Datenblock dynamisch zugewiesen. Daher ist es unnötig, speziell irgendeinen Speicher für die Zeigertabelle 206 oder für ein Datenfeld 204 von vornherein zuzuweisen.
  • Das oben erwähnte Speicherverwaltungsschema liefert eine bedeutsame Flexibilität darin, daß es Daten ohne Rücksicht auf die Art und Weise ihrer Eingaben effizient handhaben kann. Es kann beispielsweise der Fall sein, daß alle Datenblöcke eine minimale Größe aufweisen, daß ihre Anzahl jedoch sehr groß ist. Dies erzeugt einen Zeiger für jeden Datenblock. In einem solchen Fall ermöglicht es die vorliegende Erfindung, daß Zeiger zugewiesen werden, bis der Datenspeicherbereich 116 vollständig gefüllt ist (d.h. die Zeigertabelle und das Datenfeld würden sich andererseits überlappen). Da es möglich ist, daß Datenblöcke keine Daten in sich enthalten (und daß sie leer sind, wie nachfolgend beschrieben ist), kann eine Zeigertabelle tatsächlich wirksam den gesamten Datenspeicherbereich 116 verbrauchen.
  • Wenn nur ein Datenblock zugewiesen werden soll, welcher fast den gesamten Datenspeicherbereich 116 in Anspruch nimmt, ist dies auf ähnliche Weise ebenfalls möglich. In beiden Fällen wird kein Speicher verschwendet und eine Suche nach irgendeinem Datenblock kann schnell zum Erfolg gebracht werden. Somit kann die vorliegende Erfindung einen Datenblock so schnell lokalisieren, wie es bei einem Standardtabellenschema der Fall ist, wobei sie ferner bezüglich des Raums so effizient ist, wie eine verknüpfte Liste.
  • Eine detailliertere Beschreibung der vorliegenden Erfindung wird nachfolgend bezugnehmend auf Fig. 3 gegeben. Vor dem Zuweisen eines Datenblocks liest die vorliegende Erfindung zuerst eine Speicheradresse, die in einem Freier-Zeiger-Index enthalten ist. Diese Speicheradresse zeigt auf den nächsten verfügbaren Zeiger, der verwendet werden soll (welcher bei einer vorherigen Datenblockzuweisung eingestellt worden ist).
  • Die vorliegende Erfindung liest dann den Inhalt dieses nächsten verfügbaren Zeigers, der in Fig. 3 als (Zeiger nit gezeigt ist. Der Zeiger n enthält die Adresse des nächsten freien Datenblocks (des Datenblocks n). Eine Überprüfung wird dann durchgeführt, um zu bestimmen, ob die Zuweisung des neuen Datenblocks und eines neuen Zeigers darin resultieren würde, daß sich das Datenfeld 204 und die Zeigertabelle 206 überlappen. Wenn nicht genug Datenspeicherbereich 116 für die Erzeugung des neuen Datenblocks und des Zeigers übrig ist, dann erfolgt als Ergebnis eine Fehlernachricht. Wenn ein genügender Bereich übrig ist, wird ein Datenblock erzeugt, der eine Speicheradresse aufweist, die an dem Datenblock n beginnt.
  • Wenn der Datenblock vollständig geschrieben worden ist, wird die Adresse davon erhalten, welche der Beginn eines darauffolgenden Datenblocks (als Datenblock n+1 gezeigt) sein würde. Diese Adresse wird dann in der nächsten verfügbaren Zeigerposition (Zeiger nl) plaziert, wobei der Freier-Zeiger- Index aktualisiert wird, um auf den Zeiger n+1 zu zeigen. Wenn der Datenblock ein leerer Datenblock ist (die Situation, welche nachfolgend beschrieben ist), dann muß die Adresse des Beginns des nächsten Datenblocks nicht aktualisiert werden.
  • Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfindung wird nachfolgend bezugnehmend auf ein spezifisches Beispiel seiner Verwendung beschrieben. In der Vergangenheit wurden Konfigurationseinstellungen von Mikrocomputern durch Umschalten von Konfigurationsschaltern innerhalb des Mikrocomputers manuell eingestellt. Weitere Konfigurationseinstellungen wurden durch Einstellen von Konfigurationsdateien innerhalb des allgemeinen Speicherbereiches des Mikrocomputers eingestellt. Während Mikrocomputer entworfen worden sind, um nicht-flüchtige Speicherbereiche für Konfigurationsinformationen aufzuweisen, welche durch den Benutzer im allgemeinen nur einmal eingestellt werden, nützen neuere Computer dieses Konzept vollständiger aus. Beispiele für Informationen innerhalb eines derartigen Speicherbereichs umfassen den Typ der Hardware in einem Einsteckplatz des Mikrocomputers (d.h. die an einer Rückwand 412 angebracht ist, wie es in Fig. 4 gezeigt ist) und welche Abschnitte des reservierten Speichers schattiert werden sollen.
  • Die oben angemerkte Verwendung der vorliegenden Erfindung besonders bezugnehmend auf Konfigurationsinformationen von Hardware, die an der Rückwand 412 angebracht ist, wird nun bezugnehmend auf Fig. 4 beschrieben. Bezugnehmend auf Fig. 4 ist die vorliegende Erfindung, die durch 114 gezeigt ist, Teil des BIOS 402 des Mikrocomputers 100. Wenn irgendeines der Hardwaregeräte innerhalb eines Einsteckplatzes an der Rückwand 412 (hierin nachfolgend als Karten 408 bezeichnet) zu der Rückwand 412 hinzugefügt werden, muß ein Benutzer ein Konf igurations-Dienstprogramm ausführen. Dies bewirkt, daß die Speicherzuweisungsroutine 114 Konfigurationsinformationen in einen CMOS-Speicher 406 (CMOS Complementary Metal Oxide Semiconductor = komplementäre Metall-Oxid-Halbleiter- Technik) schreibt, die den Typ der Karte anzeigen, die an der Rückwand 412 plaziert worden ist. Die Konfigurationsinformationen werden durch die Speicherzuweisungsroutine 114 gemäß dem oben erwähnten Schema in den Speicher geschrieben.
  • Wenn der leere Einsteckplatz 418 leer bleiben soll, dann wird bei dem Ausführungsbeispiel des vorliegenden Beispiels ein leerer Block mit einem Zeiger in der Art einer Platzmarkierung erzeugt werden, der anzeigt, daß die Konfigurationsinformationen dorthin gehen würden, falls später eine Karte eingefügt werden sollte.

Claims (7)

1. Ein Computersystem mit folgenden Merkmalen:
einem Datenspeicherbereich (116) mit einem ersten Ende und einem zweiten Ende;
einer Zuweisungseinrichtung (114) zum dynamischen Zuweisen von Zeigern in einer Zeigertabelle (206), die an dem ersten Ende des Datenspeicherbereichs (116) beginnt, und zum dynamischen Zuweisen von Datenblöcken innerhalb eines Datenfeldes (204), das an dem zweiten Ende des Datenspeicherbereichs (116) beginnt;
bei dem die Zuweisungseinrichtung vor dem Zuweisen eines Datenblocks die Adresse des nächsten zu verwendenden verfügbaren Zeigers liest, welcher bei der vorherigen Datenblockzuweisung eingestellt worden ist, und dann den Inhalt des nächsten verfügbaren Zeigers liest;
bei dem die Zuweisungseinrichtung, welche auf den nächsten verfügbaren Zeiger anspricht, dann überprüft, ob das Zuweisen eines weiteren Datenblocks in dem Datenfeld (204) dazu führen würde, daß das Datenfeld (204) die Zeigertabelle (206) überlappt, und die Zuweisung des weiteren Datenblocks in dem Datenfeld (204) verhindert, wenn derselbe anderenfalls die Zeigertabelle (206) überlappen würde; und
bei dem die Zuweisungseinrichtung immer dann einen neuen Zeiger zuweist, wenn ein neuer Datenblock dem Datenfeld (204) zugewiesen wird, wobei der neue Zeiger auf die nächste verfügbare Datenposition in dem Datenfeld (204) für den nächsten zu speichernden Datenblock zeigt, wodurch das Datenfeld (204) und die Zeigertabelle (206) aufeinander zuwachsen.
2. Das System gemäß Anspruch 1, bei dem der Datenspeicherbereich (116) einen CMOS-Speicher aufweist.
3. Das System gemäß Anspruch 1, bei dem die Zeigertabelle einen Freier-Zeiger-Index aufweist, der eine Adresse eines Datenzeigers in der Zeigertabelle (206) mit der nächsten verfügbaren Datenspeicherposition enthält.
4. Ein Verfahren zum Zuweisen und Verwalten eines Speichers in einem Computersystem, wobei der Speicher einen Datenspeicherbereich (116) mit einem ersten und einem zweiten Ende aufweist, mit folgenden Schritten:
(a) dynamisches Zuweisen von Zeigern in eine Zeigertabelle (206), die an dem ersten Ende des Datenspeicherbereichs (116) beginnt, und dynamisches Zuweisen von Datenblöcken innerhalb eines Datenfeldes (204), das an dem zweiten Ende des Datenspeicherbereichs (116) beginnt;
(b) vor dem Zuweisen eines Datenblocks, Lesen der Adresse des nächsten zu verwendenden verfügbaren Zeigers, der bei der vorherigen Datenblockzuweisung eingestellt worden ist, und dann Lesen des Inhalts des nächsten verfügbaren Zeigers;
(c) Überprüfen, ob das Zuweisen eines weiteren Datenblocks in dem Datenfeld (204) dazu führen würde, daß sich das Datenfeld (204) und die Zeigertabelle (206) überlappen, und Verhindern des Zuweisens des weiteren Datenblocks in dem Datenfeld (204), wenn derselbe andernfalls die Zeigertabelle (206) überlappen würde; und
(d) Zuweisen eines neuen Zeigers immer dann, wenn ein neuer Datenblock dem Datenfeld (204) zugewiesen wird, wobei der neue Zeiger auf die nächste verfügbare Datenposition in dem Datenfeld (204) für den nächsten zu speichernden Datenblock zeigt, wodurch das Datenfeld (204) und die Zeigertabelle (206) aufeinander zuwachsen.
5. Das Verfahren gemäß Anspruch 4, bei dem der neue Datenblock in einen nicht-flüchtigen CMOS-Speicher geschrieben wird.
6. Das Verfahren gemäß Anspruch 4, das den Schritt des Zugreifens auf einen Freier-Zeiger-Index aufweist, der eine Adresse eines Datenzeigers in der Datenzeigertabelle (206) mit der verfügbaren Datenspeicherposition enthält.
7. Das Verfahren gemäß Anspruch 4, bei dem das Schreiben des neuen Datenblocks derart ist, daß die neuen Datenblöcke eine Länge von Null aufweisen.
DE69027017T 1990-01-31 1990-11-27 Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner Expired - Fee Related DE69027017T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/472,055 US5414826A (en) 1990-01-31 1990-01-31 System and method for memory management in microcomputer

Publications (2)

Publication Number Publication Date
DE69027017D1 DE69027017D1 (de) 1996-06-20
DE69027017T2 true DE69027017T2 (de) 1996-09-19

Family

ID=23874023

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69027017T Expired - Fee Related DE69027017T2 (de) 1990-01-31 1990-11-27 Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner

Country Status (4)

Country Link
US (1) US5414826A (de)
EP (1) EP0439920B1 (de)
JP (1) JPH04213129A (de)
DE (1) DE69027017T2 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
DE4308556A1 (de) * 1993-03-18 1994-09-22 Pietzsch Automatisierungstech Bedienplatz für Fahrzeuge oder Arbeitsgeräte
JPH07110784A (ja) * 1993-10-14 1995-04-25 Fujitsu Ltd 追加形式レコード格納方法及び装置
US5579452A (en) * 1994-09-29 1996-11-26 Xerox Corporation Method of managing memory allocation in a printing system
US6901433B2 (en) * 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5742797A (en) * 1995-08-11 1998-04-21 International Business Machines Corporation Dynamic off-screen display memory manager
US5956509A (en) * 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5950231A (en) * 1996-11-25 1999-09-07 Northern Telecom Limited Memory manager system
US5960452A (en) * 1996-12-23 1999-09-28 Symantec Corporation Optimizing access to multiplexed data streams on a computer system with limited memory
US5900001A (en) * 1997-04-23 1999-05-04 Sun Microsystems, Inc. Method and apparatus for optimizing exact garbage collection using a bifurcated data structure
US5903899A (en) * 1997-04-23 1999-05-11 Sun Microsystems, Inc. System and method for assisting exact Garbage collection by segregating the contents of a stack into sub stacks
US7305451B2 (en) * 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US6912716B1 (en) * 1999-11-05 2005-06-28 Agere Systems Inc. Maximized data space in shared memory between processors
US7610442B2 (en) 2002-12-24 2009-10-27 Lg Electronics Inc. Dual journaling store method and storage medium thereof
KR101107288B1 (ko) * 2003-12-17 2012-01-20 엘지전자 주식회사 다중 분할된 플래시 메모리 장치 및 분할된 메모리에데이터를 저장하기 위한 이중 저널링 저장방법
US7225209B2 (en) * 2003-11-06 2007-05-29 International Business Machines Corporation Computer-implemented method for allocating new additional area for the dataset in storage based on the size of the new additional area wherein if the new area number does not exceed clipping threshold, the size of a new additional area being greater than the size of each previously allocated additional area of the dataset
US7529904B2 (en) * 2004-03-31 2009-05-05 International Business Machines Corporation Storing location identifier in array and array pointer in data structure for write process management
US7523284B1 (en) * 2004-08-10 2009-04-21 American Megatrends, Inc. Method and apparatus for providing memory management within a system management mode
KR100755702B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 동작방법
KR100755700B1 (ko) 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
WO2014033606A2 (en) * 2012-08-31 2014-03-06 Pradeep Varma Systems and methods of memory and access management
KR20210039185A (ko) * 2019-10-01 2021-04-09 에스케이하이닉스 주식회사 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1441816A (en) * 1973-07-18 1976-07-07 Int Computers Ltd Electronic digital data processing systems
US4511964A (en) * 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
US4757438A (en) * 1984-07-12 1988-07-12 Texas Instruments Incorporated Computer system enabling automatic memory management operations
US4989137A (en) * 1984-07-12 1991-01-29 Texas Instruments Incorporated Computer memory system
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
JP3015377B2 (ja) * 1988-08-26 2000-03-06 株式会社東芝 Icカード

Also Published As

Publication number Publication date
EP0439920A3 (en) 1992-01-15
US5414826A (en) 1995-05-09
EP0439920A2 (de) 1991-08-07
DE69027017D1 (de) 1996-06-20
JPH04213129A (ja) 1992-08-04
EP0439920B1 (de) 1996-05-15

Similar Documents

Publication Publication Date Title
DE69027017T2 (de) Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner
DE3151745C2 (de)
DE68925412T2 (de) Dateisystem
DE69526751T2 (de) Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen
DE69533193T2 (de) Paralleles verarbeitungssystem zum durchlaufen einer datenbank
DE69636761T2 (de) Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum
DE69525531T2 (de) Dataverarbeitungssystem mit ringförmiger Warteschlange in einem Seitenspeicher
DE1499182C3 (de) Datenspeichersystem
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE3855213T2 (de) Datenbanksystem und Verfahren für den gleichzeitigen Satzzugriff mit Hilfe eines Baumstrukturindexes
DE69231113T2 (de) Speicherverfahren für bibliographische Information über Daten aus einer endlichen Textquelle, und insbesondere Dokumentverbuchungen zur Verwendung in einem Suchsystem für Ganztextdokumente
DE2415900A1 (de) Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen
DE2226382A1 (de) Datenverarbeitungsanlage
DE69700557T2 (de) Einrichtung und Verfahren um eine Dateinummer während einer Betriebsunterbrechung in einem client-server Netzwerk, abzubilden
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69432064T2 (de) Dateidaten-Speicherung auf Festplatte in vielfacher Darstellung
DE3855494T2 (de) Abfragevorrichtung und -methode
DE2912073C2 (de)
DE3441640A1 (de) Streifenfeldspeichercontroller
DE69327391T2 (de) Informationssystem und Verfahren zur Pufferspeicherverwaltung
DE2221442A1 (de) Assoziativspeicher
DE3852432T2 (de) Befehlssteuerungsvorrichtung für ein Computersystem.
DE69031324T2 (de) Inhaltsadressierbarer Speicher
DE3688737T2 (de) Kontextadressierbarer umlaufspeicher.
DE2062164A1 (de) Verfahren zur Erzeugung eines mehr stufigen Index für gespeicherte Daten einheiten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE),

8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee