DE69027017T2 - Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner - Google Patents
Anordnung und Verfahren zur Speicherverwaltung in einem MikrorechnerInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 9
- 238000013500 data storage Methods 0.000 claims description 29
- 238000007726 management method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000013479 data entry Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File 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
- 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.
- 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.
- 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.
- 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.
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)
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)
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カード |
-
1990
- 1990-01-31 US US07/472,055 patent/US5414826A/en not_active Expired - Lifetime
- 1990-11-27 DE DE69027017T patent/DE69027017T2/de not_active Expired - Fee Related
- 1990-11-27 EP EP90312891A patent/EP0439920B1/de not_active Expired - Lifetime
-
1991
- 1991-01-31 JP JP3031890A patent/JPH04213129A/ja active Pending
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 |