DE2419522A1 - PROCEDURE AND ARRANGEMENT FOR DIVISION OF ONE OR MORE UNUSED AREAS OF A MEMORY CONNECTED TO A COMPUTER - Google Patents
PROCEDURE AND ARRANGEMENT FOR DIVISION OF ONE OR MORE UNUSED AREAS OF A MEMORY CONNECTED TO A COMPUTERInfo
- Publication number
- DE2419522A1 DE2419522A1 DE19742419522 DE2419522A DE2419522A1 DE 2419522 A1 DE2419522 A1 DE 2419522A1 DE 19742419522 DE19742419522 DE 19742419522 DE 2419522 A DE2419522 A DE 2419522A DE 2419522 A1 DE2419522 A1 DE 2419522A1
- Authority
- DE
- Germany
- Prior art keywords
- length
- blocks
- address
- area
- block
- 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.)
- Pending
Links
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
- G06F12/023—Free address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Description
Anmelder: Honeywell Information Systems Inc.Applicant: Honeywell Information Systems Inc.
200 Smith Street200 Smith Street
Waltham, Mass. 02154Waltham, Mass. 02154
V. St. A.V. St. A.
Verfahren und Anordnung zur Unterteilung eines oder mehrerer nicht, benutzter Bereiche eines mit einem Rechner verbundenen Speichers Method and arrangement for subdividing one or more unused areas of a memory connected to a computer
Die Erfindung bezieht sich generell auf eine Datenverarbeitungsanlage und insbesondere auf die wirksame Ausnutzung von freien Speicherbereichen in einem Speicher eines Digitalrechners.The invention relates generally to a data processing system and in particular the effective use of free memory areas in a memory a digital computer.
Wenn ein Digitalrechner zu benutzen ist, wird er zuerst mit verschiedenen Programmen und/oder einer Information geladen, die in dem mit dem Rechner verbundenen Speicher vorhanden sein muß. Wenn das Laden der Programme, etc. erfolgt, werden die betreffenden Programme, etc. gewöhnlich nicht fortlaufend in dem Speicher untergebracht. Demgemäß bilden sich verschiedene Lücken oder freie Speicherbereiche aus, die in dem Fall, daß sie nicht ausgenutzt werden, zuWhen a digital computer is to be used, it is first provided with various programs and / or information loaded, which must be available in the memory connected to the computer. When loading the programs, etc. occurs, the relevant programs, etc. are usually not continuously accommodated in the memory. Accordingly various gaps or free memory areas form, which in the event that they are not used, to
9 845/08599 845/0859
unausgenutzten Speicherbereichen führen. Es ist bekannt, die Adressen dieser Bereiche oder Lücken in einer Tabelle aufzubewahren, die ebenfalls in dem Speicher untergebracht sein kann. Während des Programmablaufs bzw. Laufs oder der Verarbeitung durch den Digitalrechner ist es jedoch häufig erforderlich, daß gewisse Programme einen bestimmten minimalen Speicherplatz benötigen, um eine später benötigte Information kurzzeitig zu speichern. Dies bedeutet, daß es während des Ablaufs irgendeines bestimmten Rechnerprogramms erforderlich sein kann, einen 8-Wort-Block zur Verfügung zu haben, um eine bestimmte Information für ein bestimmtes Programm oder einen 32- oder 64-Wort-Block, etc. sicherzustellen. Die verschiedenen freien Bereiche oder Lücken, die aus dem ursprünglichen Laden derartiger Programme und/oder einer Information hervorgegangen sind, führen gewöhnlich zu verschiedenen Y/ortlängenbereichen, die eine große Länge haben können, d.h. eine große Anzahl von"Worten enthalten können, und die demgemäß nicht zu einer wirksamen Ausnutzung dieser Bereiche führen, wenn sie durch ein bestimmtes Programm aufgerufen werden. Derartige Programme können daher nichts weiter benötigen als lediglich eine kleine Anzahl von Wortspeicherplätzen in dem Speicher zu irgendeinem bestimmten Zeitpunkt, und demgemäß sollte lediglich eine begrenzte Anzahl derartiger Speicherplätze bei Bedarf zugeordnet werden. Wenn z.B. die Bereiche jeweils ein Minimum von hundert Worten enthalten und wenn das den bestimmten Bereich anfordernde Programm lediglich 10 oder 15 Worte benötigt, dann geht eine erhebliche Größe des Speicherbereichs verloren, da das betreffende Programm, welches den betreffenden freien Bereich ausnutzt, tatsächlich für seinen bestimmten Zweck den gesamten Bereich annehmen muß. Somit wird bei dem betreffenden Beispiel lediglich eine geringe Menge von Worten benutzt, und die übrigen Worte in dem betreffenden Bereich sind nicht ausgenutzt.lead to unused memory areas. It is known the addresses of these areas or gaps in a table to keep, which can also be housed in the memory. During the program sequence or run or the Processing by the digital computer, however, it is often necessary that certain programs have a certain minimum Need storage space to temporarily store information that will be required later. This means it An 8-word block may be required during the execution of any particular computer program to have certain information for a certain program or a 32- or 64-word block, etc. to be ensured. The various free areas or gaps that resulted from the initial loading of such programs and / or a piece of information usually lead to different Y / ortlength ranges that have a great length can have, i.e., contain a large number of "words, and accordingly fail to make effective use of them these areas result when they are called by a specific program. Such programs can therefore need nothing more than just a small number of word storage locations in memory to any one specific point in time, and accordingly only a limited number of such memory locations should be allocated if necessary will. For example, if the areas each contain a minimum of a hundred words and if that is the specific one The program requesting the area only needs 10 or 15 words, then a considerable size of the memory area goes lost, because the program in question, which uses the free area in question, is actually for its for a specific purpose. Thus, in the example in question, there is only a small one Amount of words is used, and the remaining words in the relevant area are not used.
409845/0859409845/0859
Es sind, verschiedene Versuche unternommen worden, um jeden derartiger nicht benutzter oder freier Bereiche, die sich nach der anfänglichen Ladung von Programmen und/oder einer Information in den Speicher ergeben, auszunutzen, und zwar durch Unterteilung derartiger Bereiche in Blöcke einer vorgegebenen Wortlänge. Bei der Unterteilung dieser Bereiche in vorgegebene Blocklängen wird jedoch ein Randbereich in derartigen derart unterteilten freien Bereichen gebildet, was zu einem unausgenutzten Rechnerspeieher führt. Ferner werden derartige Versuche, die Bereiche in Blöcke zu unterteilen, gewöhnlich während der Zeit unternommen, während der die Verarbeitung durch den Rechner ausgeführt wird. Dies führt während einer derartigen Verarbeitung zu einer Organisationszeit, wodurch sich das System verlangsamt.Various attempts have been made to each such unused or free areas that become apparent after the initial loading of programs and / or a Information in the memory result to be used by dividing such areas into blocks of a predetermined Word length. When these areas are subdivided into predetermined block lengths, however, an edge area is made into such free areas divided in this way are formed, which leads to an unused computer memory. Further such attempts to divide the areas into blocks are usually made during the time during that the processing is carried out by the computer. During such processing, this leads to an organization time causing the system to slow down.
Der Erfindung liegt demgemäß die Aufgabe zu Grunde, eine Programmvorbereitungseinrichtung für die Zuordnung von freien Speicherbereichen eines mit einem Rechner verbundenen Speichers/, derart, daß die Initialisierung zu einer wirksamen Unterteilung derartiger freier Bereiche in Blöcken verschiedener Wortlängen führt und dadurch den Umfang an nicht benutzten Speicherbereichen während der durch den Rechner ausgeführten Verarbeitung auf einen minimalen Viert herabsenkt.The invention is accordingly based on the object of providing a program preparation device for the assignment of free memory areas of a memory connected to a computer /, in such a way that the initialization becomes an effective Subdivision of such free areas in blocks of different word lengths leads and thereby the scope unused memory areas to a minimum during the processing carried out by the computer lowers.
Gelöst wird die vorstehend aufgezeigte Aufgabe erfindungsgemäß durch e_.ie Programmvorbereitungseinrichtung zur Unterteilung verschiedener nicht benutzter Bereiche oder Lücken in einem mit einem Rechner verbundenen Speicher, welche Lücken sich aus dem Laden verschiedener Programme und/oder Informationen in den Speicher ergeben, wobei die betreffenden Bereiche oder Lücken in Blöcke verschiedenerThe above-mentioned object is achieved according to the invention by e_.ie program preparation device for Subdivision of various unused areas or gaps in a memory connected to a computer, which gaps result from loading different programs and / or information into the memory, with the relevant areas or gaps in blocks of different
409845/0859409845/0859
Wortlängen unterteilt werden und dadurch eine maximale und wirksamste Ausnutzung derartiger freier Speicherbereiche erreicht ist, so daß ein minimaler Speicherplatz unausgenutzt bleibt. Die Programmvorbereitungseinrichtung arbeitet grundsätzlich in zwei Schritten. Im ersten Schritt werden die verschiedenen Lücken unterteilt, die in einem ersten Bereich des Speichers enthalten sind; in dem zweiten Schritt wird ein zweiter Bereich des Speichers unterteilt, und zwar in Abhängigkeit von den Anforderungen des Systems. Der zweite Schritt der Programmvorbereitungseinrichtung gemäß der Erfindung wird außerdem dazu herangezogen, die bereits aus den freien Bereichen oder Lücken unterteilten Blöcke in noch kleinere Blocklängen zu unterteilen, um, sofern möglich, der maximalen Anforderung des Systems zu genügen. Das Endergebnis ist, z.B. für ein drei Blocklängen benötigendes System, eine Zuordnung in dem Ausmaß, welches zumindest die minimal bezeichnete Anzahl der jeweiligen Blocklänge ermöglicht, und ferner in dem Ausmaß, das den maximalen Umfang der durch das System bezeichneten jeweiligen Blocklänge ermöglicht. Die Programmvorbereitungseinrichtung unterteilt jede Lücke in die maximale Anzahl von langen Blücken, und ferner unterteilt sie die Randbereiche der freien Bereiche, die nicht in dieser Art unterteilt sind, in noch schmalere Blöcke auf, so daß die maximale Anzahl von langen, mittleren und kurzen Blöcken in jedem freien Bereich oder in jeder Lücke in dem Speicher erzeugt wird.Word lengths are divided and thereby a maximum and most effective utilization of such free memory areas is reached, so that a minimal amount of memory remains unused. The program preparation facility basically works in two steps. The first step is to subdivide the various gaps that are in a first area of memory are included; In the second step, a second area of the memory is subdivided, depending on the requirements of the system. The second step of the program preparation setup According to the invention, the already subdivided from the free areas or gaps is also used To divide blocks into even smaller block lengths in order to meet the maximum requirements of the system, if possible suffice. The end result is, e.g. for a system requiring three block lengths, an assignment to the extent that which allows at least the minimum specified number of the respective block length, and also to the extent that which enables the maximum extent of the respective block length specified by the system. The program preparation facility divides each gap into the maximum number of long blocks, and further divides the edge areas of the free areas that are not subdivided in this way into even narrower blocks, so that the maximum number of long, medium and short blocks in each free area or gap in the memory is produced.
An Hand von Zeichnungen wird die Erfindung nachstehend bespielsweise näher erläutert.The invention is explained in more detail below, for example, with reference to drawings.
409845/0859409845/0859
Figuren 1 bis 4 zeigen verschiedene Zustände des in Verbindung mit der vorliegenden Erfindung benutzten Speichers beim Betrieb durch die Programmvorbereitungseinrichtung gemäß der Erfindung.Figures 1 to 4 show different states of the in connection memory used with the present invention in operation by the program preparation means according to the invention.
Fig. 5 zeigt eine Pool-Parametertabelle, welche Informationen bezüglich der verschiedenen Blöcke festhält, die durch die Programmvorbereitungseinrichtung bzw. das Einleitungsprogramm gemäß der Erfindung erzeugt worden sind. Fig. 6 zeigt eine einen freien Speicher oder "Kern"-Bereich anzeigende Tabelle, welche die Adressen der durch die Programmvorbereitungseinrichtung gemäß der Erfindung zuzuordnenden verschiedenen Bereiche in dem Speicher angibt. Fig. 7 zeigt die Unterteilung einer typischen Lücke oder eines typischen Bereichs durch die Programmvorbereitungseinrichtung gemäß der Erfindung.Fig. 5 shows a pool parameter table, which information with respect to the various blocks created by the program preparation device or the introductory program according to the invention. Figure 6 shows a free memory or "core" area A table showing the addresses of the by the program preparation facility indicates various areas in the memory to be allocated according to the invention. Fig. 7 shows the division of a typical gap or a typical area by the program preparation device according to the invention.
Figuren 8 bis 15 zeigen in Flußdiagrammen die Arbeitsweise der Programmvorbereitungseinrichtung gemäß der Erfindung.FIGS. 8 to 15 show in flow charts the mode of operation of the program preparation device according to the invention.
Im folgenden werden bevorzugte Ausführungsformen der Erfindung näher erläutert. Fig. 1 zeigt einen Speicher, der gemäß der Erfindung sozusagen voreinzustellen ist. Der Speicher ist in eine Vielzahl von Sektoren 0 bis X unterteilt, die jeweils eine gleiche Wortlänge haben können. In dem Speicher sind bereits Programme in Bereichen 10 geladen, die durch von rechts nach links unten laufende Schrägschraffuren angedeutet sind. Zwischen diesen Bereichen 10, in denen Programme gespeichert sind, existieren Lücken oder freie Speicher- oder "Kern"-Bereiche 12. Diese freien Kernbereiche sind jene Bereiche, die in Wortblöcke unterteilt werden und die demgemäß in Übereinstimmung mit der vorliegenden Erfindung voreingestellt werden. Die zur Ausführung der Initialisierung dienenden Software-Routinen .sind in demPreferred embodiments of the invention are explained in more detail below. Fig. 1 shows a memory that is to be preset according to the invention, so to speak. Of the Memory is divided into a large number of sectors 0 to X, each of which can have the same word length. In Programs are already loaded in the memory in areas 10, which are indicated by diagonal hatching running from right to left at the bottom are indicated. There are gaps or free spaces between these areas 10 in which programs are stored Memory or "core" areas 12. These free core areas are those areas that are divided into blocks of words and which are accordingly preset in accordance with the present invention. The one to run software routines used for initialization are included in the
40 9 8 45/085940 9 8 45/0859
Speicher enthalten, und zwar beginnend am Speicherplatz 14 und fortlaufend bis zum Beginn der freie Speicherbereiche bzw.' freie "Kern"-Bereiche anzeigenden Tabelle 16, die im folgenden auch nur kurz als FCAT-Tabelle 16 bezeichnet werden wird. Die Lücken 12 sind ferner zwischen den verschiedenen Routinen des Binleitungsprogramms vorhanden, und zwar beginnend an dem Speicherplatz 14 bis zu der Oberseite der FCAT-Tabelle 16 hin. Die FCAT-Tabelle 16 enthält, wie dies insbesondere in Fig.6 gezeigt ist, die Startadresse und die Endadresse der jeweiligen Lücken 12. Dort braucht kein besonderer Befehl von dem Speicherplatz der betreffenden Lückeninformation in der FCAT-Tabelle 16 enthalten zu sein. So braucht z.B. die obere Lücke in Fig. 1 nicht der obere Eingang bzw. Eintrag des freien Kernbereiches zu sein, wie dies in Fig. 6 veranschaulicht ist. Die freie Kernbereiche angebende Tabelle enthält ferner ein Markierungswort, welches den letzten Speicherplatz in der FCAT-Tabelle 16 anzeigt. Durchläuft man die FCAT-Tabelle, so zeigt sich, daß ein nicht benutzter freier "Kern" oder Bereich 18 vorhanden ist, der vom Ende der FCAT-Tabelle 16 zum Anfang des angegebenen Endes des Speichers 16 festgelegt ist. Das bezeichnete Ende des Speichers 20 kann dasselbe sein wie das tatsächliche physikalische inde des Speichers 22; dieser Zustand braucht jedoch nicht notwendigerweise vorzuliegen. Der zwischen den Stellen 20 und 22 liegende Bereich braucht daher nicht bezeichnet zu werden. Die Forderung nach einer solchen Unterscheidung kann jedoch z. B. dann entstehen, wenn der Wunsch vorhanden sein sollte, über einen Bereich in dem Speicher zum Zwecke des Festhaltens einer gewissen kritischen Information zu verfügen.Contain memory, starting at memory location 14 and continuing up to the beginning of the free memory areas respectively.' Table 16 showing free "core" areas, which are also referred to below as FCAT table 16 for short will. The gaps 12 also exist between the various routines of the inline program beginning at location 14 up to the top of the FCAT table 16. The FCAT table 16 contains, as shown in particular in FIG is shown, the start address and the end address of the respective gaps 12. There no special command from the memory space is needed the relevant gap information to be contained in the FCAT table 16. For example, the upper gap in Fig. 1 is unnecessary to be the upper entry of the free core area, as illustrated in FIG. 6. The free core areas The table specifying also contains a marker word which indicates the last storage location in the FCAT table 16. Runs through If one looks at the FCAT table, it is found that there is an unused free "core" or area 18 which is used by the End of FCAT table 16 is set to the beginning of the specified end of memory 16. The designated end of the store 20 can be the same as the actual physical inde the memory 22; however, this condition does not necessarily have to be present. The one between positions 20 and 22 The lying area therefore does not need to be designated. The requirement for such a distinction can, however z. B. arise when the desire should exist, over an area in the memory for the purpose of recording to have some critical information at their disposal.
Es sei ferner darauf hingewiesen, daß keine besondere Beziehung zwischen den verschiedenen Lücken und Programmen zu den verschiedenen Sektoren besteht und daß die Adressen vom Sektor 0 zum Sektor χ numerisch größer werden.It should also be noted that there is no particular relationship between the various loopholes and programs to the different sectors and that the addresses from sector 0 to sector χ increase numerically.
A098A5/0859A098A5 / 0859
— '7 —- '7 -
Um die verschiedenen Lücken 12 sowie die zusätzlichen Speicherbereiche wie die Speicherbereiche 16 und 18, wirksam auszunutzen, ist es, wie oben ausgeführt, erforderlich, die Lücken in verschiedene Blocklängen zu unterteilen. Dabei ist es wünschenswert, über unterschiedliche Blocklängen zu verfügen, und zwar z.B. in Abhängigkeit von den veränderten Anforderungen der verschiedenen Programme, die zu verarbeiten sind. Somit kann es z.B. erwünscht sein, über einen 32-Wort-Block, einen i6-¥ort-Block und einen 8-Wort-Block zu verfügen; diese Wortblöcke stehen zueinander entsprechend dem Verhältnis von Zweierpotenzen in Beziehung. Eine geringere oder größere Anzahl von unterschiedlichen Blocklängen kann ebenfalls erwünscht sein. Zum Zwecke der Veranschaulichung werden jedoch die verschiedenen Lücken 12 zunächst so behandelt, daß sie die drei zuvor erwähnten Blocklängen enthalten.Around the various gaps 12 as well as the additional To make effective use of memory areas such as memory areas 16 and 18, it is necessary, as stated above, to divide the gaps into different block lengths. It is desirable to have different block lengths to have, for example, depending on the changed requirements of the various programs that are to be processed. For example, it may be desirable to have a 32-word block, an i6- ¥ ort block and a 8-word block available; these word blocks are related to each other corresponding to the ratio of powers of two in relationship. A lesser or greater number of different Block lengths may also be desirable. However, for the purpose of illustration, the various Gaps 12 are initially treated so that they contain the three aforementioned block lengths.
Durch die vorliegende Erfindung und während der ersten Phase der Erfindung werden die Lücken 12 zwischen dem Beginn des Sektors 0 und dem Beginn der Einleitungsprogrammroutinen 14 in Wortblöcke unterteilt. Dies ist in Fig. 2 gezeigt, wobei die Lücken 12 zwischen dem Sektor 0 und der Speicherstelle 14 unterteilt sind, was durch die von links nach rechts unten verlaufende Schrägschraffur dargestellt ist. Gemäß den Systemanforderungen muß eine Spezifikation bezüglich der Anzahl der Blöcke und der jeweils benötigten Länge bzw. Größe getroffen werden, und zwar sowohl das Minimum als auch das Maximum. Wie noch erläutert werden wird, kann die minimale Anzahl der benötigten Blöcke z.B. zu der Anzahl der Blöcke in Beziehung stehen, die erforderlich sind, um die Einleitungsprogrammroutine zu verarbeiten. Die maximale Anzahl der Blöcke steht z.B. zu der Anzahl der Blöcke in Beziehung, die möglicherweise während des Durch-Through the present invention and during the first phase of the invention, the gaps 12 between the beginning of sector 0 and the beginning of the initial program routines 14 divided into word blocks. This is in Fig. 2 with the gaps 12 between the sector 0 and the memory location 14 being divided by those from the left diagonal hatching running down to the right is shown is. According to the system requirements, a specification regarding the number of blocks and the required Length or size are taken, both the minimum and the maximum. As will be explained later e.g. the minimum number of blocks required may be related to the number of blocks required to process the introductory routine. The maximum number of blocks is, for example, related to the number of Blocks in relationship that may occur during
409845/0859409845/0859
laufs oder der Verarbeitung der verschiedenen Programme benötigt werden, die mit Hilfe des Rechners verwendet werden. Demgemäß können auch während der Phase 1 für den Fall, daß die minimalen Anforderungen nach der Unterteilung der Lücken in der aus Fig. 2 ersichtlichen Weise nicht erfüllt sein sollten, sodann, wie dies in Fig. 3 gezeigt ist, die Lücken und Bereiche 16 und 18 unterteilt werden, und zwar beginnend vom Start der Einleitungsprogrammroutinen 14 aus. In Fig. 3 ist tatsächlich gezeigt, daß lediglich die Bereiche 16 und 18 gemäß der vorliegenden Erfindung unterteilt sind. Es dürfte jedoch einzusehen sein und wird noch insbesondere ersichtlich werden, daß die Lücken 12 unter den Einleitungsprogrammroutinen unterteilt sein können und daß die FCAT-Tabelle 16 nicht unterteilt oder voreingestellt zu werden braucht. Sollte es, um ein Beispiel zu geben und noch auf Fig. 3 Bezug zu nehmen, erwünscht sein, die Einleitungsprogrammroutinen festzuhalten bzw. sicherzustellen, so würden die Lücken 12 unter derartigen Routinen zuerst unterteilt werden. Sollte es ferner gefordert sein, die Stelle der verschiedenen Lücken 12 beizubehalten, so würde eine Entscheidung dahingehend erfolgen, die FCAT-Tabelle 1 6 nicht zu unterteilen. Sollten die obigen beiden Entscheidungen bejahend ausfallen, nämlich dahingehend, daß die Einleitungsprogrammroutinen aufbewahrt bzw. gesichert werden und daß die FCAT-Tabelle aufbewahrt wird, so würden demgemäß am Ende der Phase 1 des Betriebs der vorliegenden Erfindung die unter den Einleitungsprogrammroutinen gezeigten Lücken 12 unterteilt werden, und der vom Ende der freie Kernbereiche anzeigenden Tabelle 16 beginnende und zu dem bezeichneten Ende des Speichers 20 hin laufende Bereich 18 würde ebenfalls voreingestellt oder unterteilt werden. Wie in Fig. 3 dargestellt und als Beispiel angenommen, waren je-running or processing the various programs that are used with the help of the calculator. Accordingly, during phase 1 for the Case that the minimum requirements for the subdivision of the gaps in the manner shown in FIG. 2 are not met should then, as shown in Fig. 3, the gaps and areas 16 and 18 are divided, and although starting from the start of the initial program routines 14 the end. In Fig. 3 it is actually shown that only the regions 16 and 18 are divided according to the present invention are. It should be understood, however, and will in particular be seen that the gaps 12 under the initiation program routines and that the FCAT table 16 is not subdivided or preset needs to become. Should it be desired, to give an example and still refer to Fig. 3, To maintain or ensure the initiation program routines, there would be gaps 12 under such routines be divided first. Should it also be required to keep the position of the various gaps 12, so a decision would be made not to subdivide FCAT table 16. Should make the above two decisions turn out in the affirmative, namely to the extent that the initial program routines are kept or saved and that the FCAT table is retained, then at the end of phase 1 of the operation of the present Invention, the gaps 12 shown under the introductory program routines can be divided, and that from the end of the free The table 16 beginning with the core areas and running to the designated end of the memory 20 would also be preset or subdivided. As shown in Fig. 3 and taken as an example, each
409845/0859409845/0859
doch die Antworten zu den beiden obigen Fragen, daß weder die Tabelle 16 noch die Einleitungsprogrammroutinen 14 aufzubewahren bzw. zu sichern waren. Demgemäß zeigt sich am Ende der Phase 1, wie dies in Fig. 3 veranschaulicht ist, daß von der Oberseite der FCAT-Tabelle bis zu dem bezeichneten Ende des Speichers 20 hin eine Unterteilung in Übereinstimmung mit den Prinzipien der vorliegenden Erfindung vorliegt. Ist die Phase 1 abgeschlossen und nimmt man an, daß die Minimalbedingungen noch nicht erfüllt sind, so läuft nach einem Zwischenzeitbereich der Initiierung beispielsweise des Betriebs der Systemsoftware, die in dem System enthalten sein kann - wodurch das System für die Verarbeitung der Programme vorbereitet ist - die Phase 2 ab, gemäß der die Einleitungsprogrammroutinen unterteilt werden, wenn die Entscheidung dahingeht, daß diese nicht aufzubewahren bzw. zu sichern sind. Dies ist in Fig. 4 wie in Fig. 3 durch von links nach rechts unten laufende Schräglinien dargestellt, Es dürfte einzusehen sein, daß die Einleitungsprogrammroutine gleichzeitig mit der Erzeugung von Wortblöcken aus dem Bereich in dem Speicher verarbeitet werden kann, der aus den Einleitungsprogrammroutinen gebildet ist.however, the answers to the above two questions state that neither Table 16 nor the initiation program routines 14 to be kept or to be secured. Accordingly, at the end of phase 1, as illustrated in FIG. 3, that from the top of the FCAT table to the designated end of the memory 20 a subdivision in correspondence is in accordance with the principles of the present invention. Is phase 1 completed and it is assumed that The minimum conditions have not yet been met, for example, the initiation runs after an interim period the operation of the system software that may be included in the system - enabling the system for processing of the programs is prepared - phase 2, according to which the introductory program routines are divided, if the decision is that these are not to be kept or secured. This is done in Fig. 4 as in Fig. 3 oblique lines running from left to right below, it should be understood that the initial program routine can be processed simultaneously with the generation of word blocks from the area in the memory that consists of the Introductory program routines is formed.
Während der Unterteilung der verschiedenen Lücken 12 und der anderen Bereiche, enthaltend z.B. die Programmvorbereitungsroutinen bzw. Einleitungsprogrammroutinen, die FCAT-Tabelle 16 und den Bereich 18, ist es erforderlich, eine Information bezüglich der Anzahl der Blöcke und ihrer Lagen, die derart unterteilt worden sind, zu speichern. Um eine derartige Information festzuhalten, wird eine Pool-Parametertabelle entsprechend der in Fig. 5 gezeigten Tabelle verwendet. Die Pool-Parametertabelle enthält drei Segmente, und zwar einen für jede Blocklänge, wie z.B. fürDuring the subdivision of the various gaps 12 and the other areas including, for example, the program preparation routines or initial program routines, the FCAT table 16 and the area 18, it is necessary to store information relating to the number of blocks and their positions which have thus been divided. Around to hold such information becomes a pool parameter table corresponding to that shown in FIG Table used. The pool parameter table contains three segments, one for each block length, such as for
845/0859845/0859
die 32-Wort-, 16-Wort- und 8-Wort-Blocklängen. ¥ie angedeutet, enthält jedes Segment eine Blocklängeninformation, die festliegt. Außerdem enthält jedes Segment die erste Blockadresse und die letzte Blockadresse für die verschiedenen zugeordneten Blöcke. Die Blöcke selbst'enthalten Anschlußadressen. Zu Beginn der Initialisierung des Speichers wird die Information für den ersten Block und den letzten Block zu Null gemacht. Für den ersten Block der bestimmten Blocklänge, die gebildet oder unterteilt wird, sind die erste Block- und die letzte Blockinformation gleich, da lediglich ein Block insoweit zugeordnet worden ist. Wenn der nächste Block zugeordnet wird, dann wäre dies der letzte Block, und die Anschlußadresse würde in dem ersten Block enthalten sein. Die Pool-Parametertabelle enthält ferner eine Information bezüglich der Anzahl der zugeordneten Blöcke und bezüglich der Anzahl der verfügbaren Blöcke; diese Zahlen sind zu Beginn der Einleitungsprogrammroutinen beide auf Null zurückgesetzt. Diese beiden zuletzt erwähnten Blöcke werden während des Initialisierungsprozesses des Speichers erhöht und/oder vermindert. Nachdem der Speicher vollständig voreingestellt ist, wird die Nummer der Blöcke, denen eine Information zugeordnet ist, gewissermaßen eingefroren, und die Nummer der für eine Information verfügbaren Blöcke wird erhöht oder vermindert, und zwar wie die verwendete besondere Blocklänge, d.h. zugeordnet oder freigegeben. Die Pool-Parametertabelle enthält ferner eine Information, die spezifiziert wird, bevor die Einleitungsprogrammroutinen verarbeitet werden, line derartige Information bleibt fest liegen; sie enthält die minimale Anzahl von Blöcken, die von dem System benötigt werden, und die maximale Anzahl von Blöcken, die von dem System benötigt werden. Auch hier wird diese gesamte Information für jede Blocklänge in den dargestelltenthe 32-word, 16-word, and 8-word block lengths. ¥ ie indicated, each segment contains block length information that is fixed. Also, each segment contains the first Block address and the last block address for the various allocated blocks. The blocks themselves contain connection addresses. At the beginning of the initialization of the memory, the information for the first block and the last Block made to zero. For the first block of the particular block length that is formed or divided are the the first block information and the last block information are the same, since only one block has been assigned in this respect. if the next block is allocated, this would be the last block and the port address would be in the first Block to be included. The pool parameter table also contains information relating to the number of assigned Blocks and the number of blocks available; these numbers are at the beginning of the initiation routines both reset to zero. These last two blocks are used during the initialization process of the memory increased and / or decreased. After the memory is completely preset, the number of the blocks to which an item of information is assigned, so to speak frozen, and the number of the information item available blocks is increased or decreased as the particular block length used, i. assigned or released. The pool parameter table also contains information that is specified before the initiation routines are processed, such information remains fixed; it contains the minimum number of blocks required by the system and the maximum number of blocks the required by the system. Here, too, all of this information is shown for each block length in the
409845/0859409845/0859
drei Segmenten wiederholt.repeated three segments.
Nunmehr sei zu den Routinen oder Programmen gemäß Figuren 8 bis 15 übergegangen. Diese Routinen können in einem digitalen Allzweckrechner, wie z.B. dem Honeywell 716-Minirechner, verarbeitet werden. In Fig. 8 ist der Prozessablauf für die Phase 1 der Einleitungsprogrammroutinen der vorliegenden Erfindung gezeigt. Nachdem die Phase 1 eingeführt ist, werden, wie oben ausgeführt, die zugeordneten Blöcke und die verfügbaren Blöcke sowie die erste und letzte Blockinformation auf Null gebracht. Anschließend werden die in der FCAT-Tabelle 16 aufgeführten Bereiche in Übereinstimmung mit der Routine unterteilt, wie sie insbesondere in Fig. 9 veranschaulicht ist und wie sie nachstehend erläutert werden wird. Daraufhin wird eine Überprüfung vorgenommen, um festzustellen,, ob die minimalen Speicheranforderungen in Übereinstimmung mit den Spezifikationen in der Pool-Parametertabelle erfüllt sind. Die Routine für eine derartige Prüfung wird insbesondere im Zusammenhang mit Fig. 11 aufgezeigt. Wenn genügend Speicherplatz für die Erfüllung der minimalen Anforderungen vorhanden ist, dann kommt die Routine zum Ende und der Speicher, wie im Zusammenhang mit Fig. 2 aufgezeigt, wird demgemäß unterteilt. Eine Ausnahme hiervor besteht möglicherweise und zusätzlich dann, wenn die Einleitungsprogrammroutinen zu sichern wären. Dann können auch die unter derartigen Routinen enthaltenen Lücken 12 aufgeteilt sein. Wenn die minimalen Speicheranforderungen nicht erfüllt sind, wird der übrige Teil des Speichers unterteilt, und zwar entweder vom Beginn oder vom Ende der FCAT-Tabelle 16 aus, wobei diese Unterteilung in Übereinstimmung damit erfolgt, ob eine derartige Tabelle 16 zu erhalten oder nicht zu erhalten ist.We now proceed to the routines or programs according to FIGS. 8 to 15. These routines can be used in a digital general purpose computer, such as the Honeywell 716 mini computer, are processed. In FIG. 8, the process flow for phase 1 of the initiation program routines is the present invention shown. After phase 1 was introduced is, as stated above, the allocated blocks and the available blocks as well as the first and last Block information brought to zero. Then the areas listed in the FCAT table 16 are in agreement with the routine as particularly illustrated in Fig. 9 and as explained below will be. A check is then made to see if the minimum memory requirements are met in accordance with the specifications in the pool parameter table. The routine for one Such a test is shown in particular in connection with FIG. If there is enough space for the If the minimum requirements are met, then the routine comes to an end and the memory, as related shown with Fig. 2 is divided accordingly. An exception to this is possibly and additionally then when the initial program routines were to be saved. Then the routines contained under such routines can also be used Be divided into gaps 12. If the minimum memory requirements are not met, the remainder of the Memory divided, either from the beginning or from the end of the FCAT table 16, this subdivision is made in accordance with whether or not such a table 16 is to be obtained.
409845/0859409845/0859
Die Art und Weise, in der die in der FCAT-Tabelle 16 -aufgeführten Bereiche unterteilt werden, wird nunmehr im Zusammenhang mit dem Flußdiagraaim gemäß Fig. 9 erläutert» Nach der Adressierung der FCAT-Tabelle 16 wird die Startadresse des ersten Bereiches oder der ersten Lücke, die in der Tabelle 16 enthalten ist, überprüft, um festzustellen,, ob es' sich dabei um das Markierungswort handelt oder nicht. Handelt es sich dabei um das Markierungswort, •so legt dies fest, daß die Routine gemäß Fig„ 9 beendet ist und daß daher eine Ausgabe stattfindet. Handelt es sich bei der betreffenden Adresse nicht um das Markierungswort, so wird die betreffende Startadresse aufbewahrt;, und zwar in einem ersten Speicherplatz, der mit Tem-Wort 1 bezeichnet ist. Nach Erlangung und Speicherung der Endadresse desselben Bereichs oder derselben Lücke, für die die Startadresse erhalten ist, erfolgt eine Bestimmung dahingehend, ob die Endadresse gegebenenfalls die Adresse für den Start der Einleitungsprogrammroutinen 14 ist oder auf diese Adresse folgt. Wenn die Antwort nein lautet, dann wird der bestimmte Bereich in Übereinstimmung mit der Routine gemäß Fig. 10 unterteilt, wie nachstehend erläutert wird. Nachdem die Routine gemäß Fig. 10 verarbeitet ist, wird der nächste Eintrag in der FCAT-Tabelle 16 adressiert, und die Sub-Routine gemäß Fig. 9 läuft im allgemeinen an» Dies bedeutet z»B., daß das Markierungswort im Hinblick auf die Startadresse für den nächsten Eintrag, etc» überprüft wird, bis tatsächlich sämtliche Lücken oder Bereiche in Übereinstimmung mit der Eoutine gemäß Figo 10 unterteilt sind. Wenn die Endadresse irgendeines Bereiches der Bereiche in der Speicharstelle 14 enthalten ist oder dies, jerjcolgt, dann erfolgt eine Feststellung dahingehend, ob die Einleitungsprogrammroutinen zu bewahren sind oder nicht. Wenn dieThe manner in which the areas listed in the FCAT table 16 are subdivided will now be explained in connection with the flow diagram according to FIG Gap contained in Table 16 is checked to see if it is the tag word or not. If this is the marker word, this defines that the routine according to FIG. 9 has ended and that an output therefore takes place. If the address in question is not the marker word, then the start address in question is saved, namely in a first memory location, which is designated with Tem word 1. After the end address of the same area or the same gap for which the start address has been obtained has been obtained and stored, a determination is made as to whether the end address is the address for starting the initial program routines 14, if any, or follows this address. If the answer is no, then the specified area is divided in accordance with the routine of Fig. 10 as will be explained below. After the routine according to FIG. 10 has been processed, the next entry in the FCAT table 16 is addressed, and the sub-routine according to FIG starting address for the next entry, etc "is checked, are divided up actually all gaps or areas in accordance with the Eoutine of FIG o 10th If the end address of any one of the areas is contained in the storage location 14, or this is jerjcolgt, then a determination is made as to whether or not the initial program routines are to be preserved. If the
409845/0859409845/0859
Sinleitungsprogrammroutinen zu bewahren bzw. zu sichern sind; was bedeutet, daß die Antwort ja lautet, dann werden die Lücken oder Bereiche 12 unter den Einleitungsprogrammroutinen ebenfalls in Übereinstimmung mit der Routine gemäß Figo 10 unterteilt, und zwar in ähnlicher Weise, wie die Lücken oberhalb des Speicherplatzes 14 unterteilt wurden. Wenn die Einleitungsprogrammroutinen nicht zu sichern bzw. bewahren sind, dann wird der nächste Eintrag in die FCAT-Tabelle 16 adressiert. Demgemäß wird nach Feststellung des Markierungswortes die Routine gemäß Fig. 9 zum Ende kommen. Damit sind die Lücken 12 vom Sektor 0 bis zur Oberseite der FCAT-Tabelle 16 in Abhängigkeit von den Forderungen des Systems unterteilt worden. Ferner sowie in Abhängigkeit von den Forderungen des Systems sind gegebenenfalls die Lücken 12 unter den Einleitungsprogrammroutinen nicht derart unterteilt worden.To preserve or secure the initiation program routines are; which means the answer is yes then will the gaps or areas 12 among the initiation routines also in accordance with the routine of FIG Figo 10 divided, in a similar manner to how the gaps above the memory location 14 were divided. If the initial program routines are not to be saved or preserved, then the next entry in the FCAT table is 16 addressed. Accordingly, after the marking word has been determined, the routine according to FIG. 9 will come to an end. This means that the gaps 12 from sector 0 to the top of the FCAT table 16 are dependent on the requirements of the System has been subdivided. Furthermore, and depending on the requirements of the system, the Gaps 12 among the initiation routines have not been so divided.
Wie angedeutet, enthält die Routine gemäß Fig. 9 einen Unterteilungsalgorithmus oder Unterteilungsroutinen, wie sie in Fig» 10 gezeigt sind, die nunmehr erläutert wird. Die Routine gemäß Fig. 10 wird dazu benutzt, jede Lücke 12 in die maximale Anzahl von großen Blocklängen zu unterteilen, gefolgt von der maximalen Anzahl von mittleren Blocklängen (16-Wort-BlocMängen) und der maximalen Anzahl von kleinen Blocklängen in dem übrigen Platz. Grundsätzlich wird jeder Bereich oder jede Lücke unterteilt, z.B. in die genannten drei Gruppen. Bezugnehmend auf Fig. 7 sei bemerkt, daß die Grundgruppe oder die erste Gruppe 5:4, die am Punkt 30 beginnt und am Punkt 32 endet, die raaximale Anzahl von langen Blöcken enthält, in die die Lücke oder der Bereich unterteilt sein kann. Im vorliegenden Beispiel sind drei lange Blöcke (32 Worte) vorhanden, wie dies durchAs indicated, the routine of FIG. 9 includes one Subdivision algorithm or routines as shown in Figure 10, which will now be discussed. The routine of FIG. 10 is used to subdivide each gap 12 into the maximum number of large block lengths, followed by the maximum number of medium block lengths (16-word block lengths) and the maximum number of small block lengths in the remaining space. Basically, each area or each gap is subdivided, e.g. into the ones mentioned three groups. Referring to Fig. 7, it should be noted that the basic group or the first group 5: 4, which occurs on Point 30 begins and ends at point 32, which contains the maximum number of long blocks into which the gap or the area can be divided. In the present example there are three long blocks (32 words) as shown by
409845/0859409845/0859
Blöcke dargestellt ist, die durch die gestrichelten Linien getrennt sind. Die Gruppe 34 ist die erste unterteilte Gruppe» Die Gruppe 34 beginnt an der Stelle bzw. an dem Speicherplatz 3O9 die bzw„ der ausgewählt worden ist, um die Gruppe 34 an einem geeigneten Speicherplatz zu beginnen«, Dadurch vereinfacht sich die Verarbeitung der Adressen, die die bestimmten Blöcke kennzeichnen. Die Art und Weise, in der der Speicherplatz 30 ausgewählt ists ist in Fig. 10 durch den Block 28 dargestellt. Durch Auffinden des Speicherplatzes 30, und zwar unter Heranziehung der im Block 28 angegebenen Formel, ist es möglich, die Adresse des ersten Wortes irgendeines Blockes durch UND-mäßige Verknüpfung der Adresse irgendeines Wortes des bestimmten Blockes mit dem Zweierkomplement der Blocklänge zu erhalten» Die Gruppe 36, die an der Speicherstelle bzw. dem Speicherplatz 30 endet und die mit der Startadresse des bestimmten Bereiches beginnt, sowie die Gruppe 38, die mit dem Speicherplatz 32 beginnt und die mit der Endadresse des bestimmten Bereiches endetj sind kleiner als die größte Blocklänge» Dies bedeutet, daß die Gruppen 36 und 38 weniger als 32 Worte enthalten. Durch die in Fig. 10 dargestellten Routinen sowie nach der Unterteilung der Gruppe 34 wird die Gruppe 26 in die maximalen mittleren Blocklängen und in die maximalen kleinen Blocklängen unterteilt. Daraufhin wird derselbe Prozess für die Gruppe 38 fortgesetzt.Blocks are shown separated by the dashed lines. The group 34 is the first divided Group "The group 34 begins at the site or on the space 3O 9, or" has been selected, the group 34 to start at an appropriate memory location "Thus, the processing of the addresses is simplified that identify the particular blocks. The manner in which the memory location is selected for 30 seconds is shown in Fig. 10 by the block 28. By finding the memory location 30 using the formula given in block 28, it is possible to obtain the address of the first word of any block by ANDing the address of any word of the particular block with the two's complement of the block length "The group 36, which ends at the memory location or memory location 30 and which begins with the start address of the specific area, as well as the group 38, which begins with memory location 32 and which ends with the end address of the specific area, are smaller than the largest block length »This means that groups 36 and 38 contain fewer than 32 words. By means of the routines shown in FIG. 10 and after the subdivision of the group 34, the group 26 is subdivided into the maximum medium block lengths and the maximum small block lengths. The same process then continues for group 38.
Nunmehr sei besonders auf Fig. 10 Bezug genommen. Wach Eingabe der unterteilten Routine ist die Startadresse definiert als N, und die Sndadresse ist definiert als M. Darüber hinaus sind die Wortspeicherplätze tem 3 und tem 4 auf Null zurückgestellt, und S ist definiert als die größte gebildete Blocklänge. Dies bedeutet, daß S gleich der maximalen Blocklänge oder gleich der 32-Wort-Blocklänge entsprechendReference is now made particularly to FIG. Awake input of the divided routine, the start address is defined as N and the end address is defined as M. In addition the word storage locations tem 3 and tem 4 are reset to zero, and S is defined as the largest formed Block length. This means that S is equal to the maximum block length or the 32-word block length accordingly
409845/0859409845/0859
dem gegebenen Beispiel ist. Nachdem diese Definitionen gegeben sind, ist der Speicherplatz 30 durch, den Block 28 definiert. Dem Speicherplatz 30 ist der Buchstabe J gleichgesetzt , der ausgedrückt in Zahlen auf der Oktalbasis gleich der Startadresse zuzüglich der Anzahl von Worten in der größten Blocklänge (S) abzüglich eins ist. Sämtliche Größen v/erden UND-mäßig mit dem Zweierkomplement von S (minus S) verknüpft. Demgemäß ist dem Speicherplatz 30 (J) der Buchstabe K gleichgesetzt. Somit ist K gleich die Adresse des Speicherplatzes 30. Die nächste Frage, die von der Routine gestellt wirdj ist in dem Block 40 dargestellt. Gemäß diesem Block wird die Frage gestellt, ob die größte Blocklänge S tatsächlich in den Bereich untergebracht werden kann. Wenn K + S größer ist als M (die Endadresse), dann kann somit die größte Blocklänge nicht in den Bereich untergebracht werden. Unter der Annahme, daß K + S nicht größer ist als M, würde die Antwort nein lauten. Dies folgt aus dem angenommenen Beispiel. Demgemäß wird irgendeine bekannte Routine eingeführt, wobei die sich auf den ersten Block beziehende Information, beginnend am Speicherplatz 30, in den Speicher und insbesondere in die Pool-Parametertabelle eingeführt wird. Somit wird die Information bezüglich des ersten Blockes, des letzten Blockes, der Anzahl verfügbarer Blöcke, etc. aktualisiert. Nachdem die Routine des Blockes 42 verarbeitet ist, wird K gleich der Definition K + S gesetzt. Demgemäß ist K nunmehr im Speicherplatz 31 (Fig. 7).the given example is. After these definitions are given, the memory location 30 is defined by the block 28. The memory location 30 is equated with the letter J , which, expressed in numbers on the octal basis, is equal to the start address plus the number of words in the largest block length (S) minus one. All quantities are linked by AND with the two's complement of S (minus S). Accordingly, memory location 30 (J) is equated with the letter K. Thus, K is equal to the address of memory location 30. The next question posed by the routine j is shown in block 40. According to this block, the question is asked whether the largest block length S can actually be accommodated in the area. If K + S is greater than M (the end address), then the largest block length cannot be accommodated in the area. Assuming K + S is not greater than M, the answer would be no. This follows from the assumed example. Accordingly, some known routine is introduced whereby the information relating to the first block is introduced into the memory and in particular into the pool parameter table beginning at memory location 30. Thus the information regarding the first block, the last block, the number of available blocks, etc. is updated. After the routine of block 42 has been processed, K is set equal to the definition K + S. Accordingly, K is now in storage location 31 (FIG. 7).
Mit nunmehr auf den Speicherplatz 31 zeigendem K wird wieder die im Block 41 sich ergebende Frage beantwortet. Unter der Annahme, daß die Antwort nein lautet, wird die Routine des Blockes 42 verarbeitet, und die Pool-Parametertabelle wird aktualisiert, usw., bis der dritte Block inWith K now pointing to memory location 31, the question arising in block 41 is answered again. Assuming the answer is no, the routine of block 42 is processed and the pool parameter table is processed is updated, and so on until the third block in
409845/0869409845/0869
der Gruppe 34 bei dein in Fig. 7 veranschaulichten Beispiel verarbeitet worden ist. Im nächsten Zyklus lautet die Antwort zur Frage des Blockes 40 ja, An dieser Stelle wird über den Block 44 die Frage gestellt, ob K gleich J ist. ,Der Buchstabe K ist an dieser Stelle gleich dem Speicherplatz 32, und der Buchstabe K ist gleich dem Speicherplatz Wenn demgemäß K gleich J ist und wenn demgemäß die Antwort ja lautet, bedeutet dies, daß ein großer Block niemals gebildet wurde. In dem Beispiel wurde jedoch ein Block gebildet, und K ist nicht gleich J. Somit lautet die Antwort des Blockes 44 nein, und demgemäß wird die Frage in dem Block 45 gestellt, nämlich ob der Speicherplatz Tem 3 gleich Null ist. Durch die Routine gemäß Fig. 10 wurde der Speicherplatz Tem 3 auf Null gesetzt; demgemäß lautet die Antwort zu der Frage des Blockes 45 zu diesem Zeitpunkt ja. Auf das betreffende Antwortsignal hin erfolgt eine Definition, und die Information wird derart abgespeichert, daß K im Speicherplatz Tem 3 und M im Speicherplatz Tem 4 abgespeichert sind. Da K dem Speicherplatz 32 entspricht und da M der Sndadresse entspricht, sind somit die Start- und Stopadressen der Gruppe 38 in den Speicherplätzen Tem 3 bzw. Tem 4 festgehalten. An dieser Stelle wird M gleich J gesetzt.of group 34 in the example illustrated in FIG has been processed. In the next cycle the answer is yes to the question of block 40. At this point the question is asked via block 44 whether K is equal to J. , The letter K at this point is the same as the memory location 32, and the letter K is the same as the memory location Accordingly, if K equals J, and accordingly if the answer is yes, it means that a large block is never formed became. In the example, however, a block has been formed and K is not equal to J. So the answer is of block 44 no, and accordingly the question is asked in block 45, namely whether the memory location Tem 3 is the same Is zero. The memory location Tem 3 was set to zero by the routine according to FIG. 10; accordingly is the answer yes to the question of block 45 at this point in time. In response to the response signal in question, a definition is made, and the information is stored in such a way that K is stored in memory location Tem 3 and M in memory location Tem 4 are. Since K corresponds to memory location 32 and since M corresponds to the end address, the start and Stop addresses of group 38 in storage locations Tem 3 or Tem 4 recorded. At this point, M is set equal to J.
Wenn M gleich J ist, bedeutet dies, daß M nunmehr dem Speicherplatz 30 entspricht und daß, wie noch ersichtlich werden wird, die nächste Operation darin besteht, die Gruppe 36 zu unterteilen, und zwar beginnend mit der Startadresse und endend mit dem Speicherplatz 30. Der Block 46 wird sodann eingeführt, und die Frage wird gestellt, ob eine kleinere Blocklänge gebildet wird oder nicht. Bei dem vorliegenden Beispiel lautet die Antwort ja, daIf M is equal to J, this means that M now corresponds to memory location 30 and that, as will be seen later the next operation is to subdivide group 36 starting with the starting address and ending with memory location 30. Block 46 is then introduced and the question is asked whether a smaller block length is formed or not. In this example, the answer is yes, there
409845/0859409845/0859
nämlich tatsächlich 16- und 8-Wort-Blocklängen vorhanden sind. Auf die Antwort hin wird S auf die nächst kleinere Blocklänge gesetzt, und die Verarbeitung der Unterteilung von Blöcken für mittlere Blocklängen wird in gleicher Weise wiederholt wie für die großen Blöcke. Damit wird der Block wieder eingeführt, und die Gruppe 36 wird in mittlere Blocklängen unterteilt. Da die Gruppe 36 weniger als 32 Wörter haben muß, könnte, wie ersichtlich ist, nicht mehr als eine mittlere Blocklänge in der Gruppe 36 gebildet werden. Nachdem die Gruppe in die mittlere Blocklänge unterteilt ist, kann, wie ferner hervorgeht, kein größerer Bereich als ein kleiner Block vorhanden sein. Dies bedeutet, daß in der Gruppe 36 der 8-Wort~Block gebildet wird. Somit wird der Vorgang wie für große und mittlere Blöcke für den kleinen Block wiederholt, bis die Antwort zum Block 46 hin nein lautet. In diesem Fall wird die Frage beantwortet, ob der Speicherplatz Tem 3 eine Null gespeichert hatte oder nicht. Da der Speicherplatz Tem 3 auf K gesetzt war, so daß die Startadresse und die Stopadresse der Gruppe 38 gesichert werden konnte, lautet die Antwort nein. Demgemäß werden die Speicherplätze Tem 3 und Tem 4 auf N bzw. M gesetzt, so daß nunmehr die Gruppe 38 unterteilt wird.namely actually 16 and 8 word block lengths available are. In response to the response, S is set to the next smaller block length and the processing of the subdivision of blocks for medium block lengths is repeated in the same way as for the large blocks. This becomes the block reintroduced, and group 36 is in medium block lengths divided. Since group 36 must have fewer than 32 words, as can be seen, could not be more than one average block length in group 36 can be formed. After the group is divided into the average block length, As can also be seen, there may be no larger area than a small block. This means that in of group 36 the 8-word block is formed. Thus the process becomes like for large and medium blocks for the small one Block repeats until the answer to block 46 is no. In this case the question is answered whether the Storage location Tem 3 had a zero stored or not. Since the storage location Tem 3 was set to K, so that the Start address and stop address of group 38 saved the answer is no. Accordingly, the storage locations Tem 3 and Tem 4 are set to N and M, respectively, so that now the group 38 is subdivided.
Die Speicherplätze Tem 3 und Tem 4 werden unmittelbar auf Null gesetzt, und S wird auf die größte Blocklänge gesetzt; dies ist der 32-Wort-Block. Wenn die Frage des Blockes jedoch bejahend beantwortet wird, wird J gebildet, da nämlich die Gruppe 38 weniger als 32 Worte haben muß. Sodann ist die Antwort im Block 44 bezüglich J gleich K gegeben durch ja, womit man zum Block 46 gelangt. S wird auf die kleinere Blocklänge gesetzt. Dies stellt allem Anschein nach nutzlos verbrauchte Zeit dar; es dürfte jedoch ersicht-The storage locations Tem 3 and Tem 4 are immediately set to zero, and S is set to the largest block length; this is the 32 word block. However, if the question in the block is answered in the affirmative, J is formed, namely da group 38 must have less than 32 words. The answer in block 44 is then given with respect to J equals K by yes, which brings you to block 46. S is set to the smaller block length. That seems to be the case after uselessly wasted time; however, it should be evident
409845/0859409845/0859
lieh sein, daß die Einführung einer- Routine, die diese eine -kurze Anforderung zum Übergang auf die nächst kleinere Blocklänge umgeht, tatsächlich das Programm vereinfacht.lent that the introduction of a routine that bypasses this one -short request to transition to the next smaller block length actually simplifies the program.
Ist S nunmehr gleich die mittlere Blocklänge, so wird wieder J gebildet, und die Gruppe 38 wird in derselben Weise unterteilt wie die Gruppe 36 unterteilt wurde. Wenn die Antwort zu dem Block 46 hin schliei31ich nein lautet« dürfte ersichtlich sein., daß die Antwort von dem Block 48 her Ja lautet. Demgemäß kommt die Routine gemäß Fig. 10 zum Ende.If S is now equal to the mean block length, then J is formed again, and group 38 is in the same Subdivided the way group 36 was subdivided. If the answer to block 46 finally is no « it should be apparent that the response from block 48 her yes is. Accordingly, the routine of FIG. 10 comes to the end.
Aus der Routine gemäß Figo 10 dürfte somit ersichtlich sein, daß die erste Gruppe 34 in die maximale Anzahl von großen Blöcken unterteilt worden ist und daß die beiden Gruppen 36 und 38 vor bzw. nach der Gruppe 34 gebildet worden sind. Dabei hat jede der Gruppen 36 und 38 eine geringere Anzahl von Worten als in dem großen Block enthalten ist. Auf die Unterteilung der Gruppe 34 hin dürfte ersichtlich sein, daß die Gruppe 36 dann derart unterteilt wird, daß maximal ein mittlerer Block und ein kleiner Block unterteilt werden. Auf die Unterteilung der Gruppe 36 in Blöcke dürfte ersichtlich sein, daß die Routine gemäß Fig. 10 dann dazu herangezogen wird, die Gruppe 38 in derselben Weise zu unterteilen, in der die Gruppe 36 unterteilt worden ist. Schließlich kommt die Routine zum Ende.From the routine according to FIG. 10 it should thus be evident that the first group 34 is in the maximum number of large blocks and that the two groups 36 and 38 are formed before and after the group 34, respectively have been. Each of the groups 36 and 38 has a smaller number of words than contained in the large block is. On the subdivision of the group 34 it should be apparent that the group 36 then subdivides in this way is that at most a middle block and a small block are divided. On the division of the group 36 in blocks it should be evident that the routine according to FIG. 10 is then used to generate the group 38 in the same way that group 36 has been divided. Finally the routine comes to an end.
Sind die in der FCAT-Tabelle 16 angegebenen Bereiche derart unterteilt, so wird eine Überprüfung vorgenommen, um festzustellen, ob minimale Speicheranforderungen erfüllt worden sind« Die zur Vornahme dieser Prüfung dienendeAre the ranges given in FCAT table 16 so divided, a check is made to see if it meets minimum memory requirements have been «The one used to carry out this test
4098^5/08594098 ^ 5/0859
Routine ist in Einzelheiten speziell in Fig. 11 dargestellt. Bezugnehmend auf Fig. 11 sei bemerkt, daß nach Eingabe der Prüfungs-Minimalanforderungs-Routine ein Überschußzähler, der in dem Speicher enthalten ist, gelöscht \tfird. Der Überschußzähler bzw. die Überschußzählung wird im folgenden erläutert werden. Nachdem der Überschußzähler gelöscht ist, wird die Adresse des größten gebildeten Blockes in der Pool-Parametertabelle erhalten. Bine bezeichnete Adresse wird somit der erste Block für die große Blocklänge sein. Die Anzahl der zugeordneten Blöcke, die ebenfalls in der Pool-Parametertabelle enthalten ist, wird sodann zu der Überschußzählung hinzuaddiert. Daraufhin wird die erforderliche minimale Anzahl von Blöcken von der Überschußzählung oder in diesem Fall von der Anzahl der zugeordneten Blöcke subtrahiert. Sodann erfolgt eine Feststellung dahingehend, ob das Ergebnis negativ ist oder nicht. Ist das Ergebnis negativ, so bedeutet dies, daß die minimalen Anforderungen nicht erfüllt worden sind. Wenn demgemäß die Ant\/ort auf die Frage, ob das Ergebnis negativ ist, ja lautet, wird die Routine gemäß Fig. 11 ausgeführt, da nämlich nicht genügend Blöcke in den bereits unterteilten Bereichen vorhanden sind, um den minimalen Anforderungen zu genügen.The routine is shown in detail specifically in FIG. Referring to Fig. 11, it should be noted that after Entering the test minimum requirement routine clears an excess counter contained in memory \ tfird. The surplus counter or the surplus count is will be explained below. After the excess counter is cleared, the address of the largest is formed Block in the pool parameter table. Bine is the first block for the large address Be block length. The number of allocated blocks, which is also contained in the pool parameter table, is then added to the excess count. The minimum number of blocks required will then be taken from the Surplus count or in this case subtracted from the number of blocks allocated. Then one follows Determine whether the result is negative or not. If the result is negative, this means that the minimum requirements have not been met. If accordingly the answer to the question whether the result is negative, is yes, the routine of FIG. 11 is executed, namely because there are not enough blocks in the already subdivided areas are available in order to meet the minimum requirements.
An dieser Stelle sei tatsächlich darauf hingewiesen, daß die Entscheidung, ob genügend Speicherplatz vorhanden ist, für die Erfüllung der minimalen Anforderungen, wie dies in Fig. 8 angedeutet ist, tatsächlich in Fig. 11 speziell gezeigt ist. Wenn demgemäß die Antwort in Fig. 11 zur Frage, ob das Ergebnis negativ ist, ja lautet, dann entspricht dies der in Fig. 8 angegebenen Frage. Demgemäß wird der Speicher von der FCAT-Tabelle 16, und zwarAt this point it should actually be pointed out that the decision whether there is enough storage space is for the fulfillment of the minimum requirements, as indicated in FIG. 8, actually in FIG. 11 specifically is shown. Accordingly, if the answer in Fig. 11 to the question of whether the result is negative is yes, then corresponds to this is the question given in FIG. Accordingly, the memory of the FCAT table becomes 16, namely
409845/0859409845/0859
entweder von deren Anfang oder von deren Ende, in Übereinstimmung mit den Anforderungen des Systems bis zum Speicherende unterteilt. Wenn die Antwort auf die Frage, ob das Ergebnis negativ ist, gemäß Fig. 11 nein lautet, dann wird der Überschußzähler auf das Ergebnis eingestellt. Wenn an dieser Stelle und in dem Beispiel die Anzahl der zugeordneten Blöcke gleich 23 ist und wenn die geforderte minimale Anzahl von Blöcken gleich 20 ist, dann ist die Überschußzählung bzw. Überzählung gleich 3. Dies ist gleich dem Ergebnis, wie es in Fig. 11 veranschaulicht ist. Dieses Ergebnis für die größeren Blöcke der 32-Wort-Länge wird demgemäß in dem Speicher gespeichert. Wenn dies die kleinste gebildete Blocklänge war, würde das Programm zum Ende kommen. Da jedoch noch zusätzliche kleinere Blocklängen gebildet werden, multipliziert die Routine gemäß Fig. 11 die Überschußzählung oder das Ergebnis mit dem Divisionsparameter für den großen Block.either from its beginning or from its end, in accordance with the requirements of the system up to End of storage divided. If the answer to the question of whether the result is negative is no according to FIG. 11, then the excess counter is set to the result. If at this point and in the example the Number of allocated blocks is 23 and if the required minimum number of blocks is 20, then the overcount is equal to 3. This is equal to the result as illustrated in FIG is. This result for the larger blocks of 32 word length is accordingly stored in memory. If this was the smallest block length formed, the program would come to an end. However, there are additional If smaller block lengths are formed, the routine of FIG. 11 multiplies the excess count or the result with the division parameter for the large block.
Der Divisionparameter für die jeweilige Blocklänge wird dadurch bestimmt, daß die Anzahl der Worte in der Blocklänge, für die der Divisionsparameter zu berechnen ist, durch die Anzahl der Worte in der nächstkleinsten gebildeten Blocklänge dividiert wird. Bei dem angenommenen Beispiel wäre der Divisionsparameter für die 32-Wort-Blocklänge 2, und der Divisionsparameter für die 16-Wort-Blocklänge wäre Der Divisionsparameter für die 8-Wort —Blocklänge wäre Wären lediglich 32-Wort-Blocklängen und eine 8-Block- Wortlänge zu bilden, so wäre der Divisionsparameter für die 32-Wort-Blocklänge 4, und für die 8-Wort-Blocklänge wäre er 0. Der Divisionsparameter kann vorzugsweise in der Pool-Parametertabelle gespeichert und aus dieser auf das Auftreten der Routine gemäß Fig. 11 hin abgeholt werden.The division parameter for the respective block length is determined by the fact that the number of words in the block length, for which the division parameter is to be calculated, by the number of words in the next smallest formed block length is divided. In the assumed example, the division parameter for the 32-word block length would be 2, and would be the division parameter for the 16 word block length The division parameter for the 8-word block length would be only 32-word block lengths and an 8-block word length the division parameter for the 32-word block length would be 4, and for the 8-word block length it would be er 0. The division parameter can preferably be saved in the pool parameter table and transferred from this to the Occurrence of the routine according to FIG. 11 can be picked up.
409845/0859409845/0859
Gemäß dem angenommenen Beispiel, bei dem die Überschuß-Zählung gleich 3 ist, wird die nächste Überschußzählung bzw. Überzählung, die gleich dem Ergebnis gesetzt wird, dreimal 2 oder 6. Ist das neue Srgebnis bestimmt, so wird die Adresse des Pool-Parametereintrags für die nächst kleinere gebildete Blocklänge ermittelt, und die Routine wird wieder in der dargestellten Weise abgewickelt.bzw. verarbeitet, und zwar unter Heranziehung des Ergebnisses von 6 z.B., bis die Antwort auf die Frage, ob es sich um die kleinste gebildete Blocklänge handelt, "ja" lautet und die Routine gemäß Fig. 11 abgeschlossen wird. Wenn die Antwort auf die Frage, ob das Ergebnis negativ ist, ja lautet, dann würde der Bereich vom Beginn oder Ende der FCAT-Tabelle 16 bis zum Ende des bezeichneten Speichers unmittelbar in Übereinstimmung mit der Routine gemäß Fig. aufgeteilt werden.According to the assumed example where the surplus count is 3, the next surplus count becomes or overcounting, which is set equal to the result, three times 2 or 6. If the new result is determined, then the address of the pool parameter entry is determined for the next smaller block length formed, and the routine is again carried out in the manner shown. processed using the result of 6, for example, until the answer to the question whether it is the smallest block length formed is "yes" and the routine of FIG. 11 is terminated. If the If the answer to the question whether the result is negative is yes, then the range would be from the beginning or the end of the FCAT table 16 to the end of the designated memory immediately in accordance with the routine according to FIG. be divided.
Mit Eintreten in den letzten Teil der Phase 1 lautet die erste zu beantwortende Frage, wie dies Fig. 12 zeigt, ob die Einleitungsprogrammroutinen aufzubewahren sind. Wenn die betreffenden Routinen aufzubewahren sind, wird die Adresse des ersten Wortes außerhalb der FCAT-Tabelle 16 abgeholt und in dem Speicherbereich gespeichert, der mit Tem 1 bezeichnet ist. Daraufhin wird die Adresse des angegebenen Speicherendes abgeholt und in dem Speicherbereich gespeichert, der als Speicherbereich Tem 2 bekannt ist. Die beiden nunmehr in derartigen Speicherplätzen gespeicherten Adressen schließen den nicht benutzten freien Speicher- oder "Kern"-Bereich 18 ein. In Übereinstimmung mit der Routine gemäß Fig. 10 wird dieser Bereich unterteilt, und demgemäß wird die Pool-Parametertabelle aktualisiert. Ist der Speicher bis zu dem angegebenen Speicherende hin unterteilt, so wird dies angezeigt, undWhen entering the last part of phase 1, the first question to be answered, as shown in FIG. 12, is whether the introductory program routines are to be retained. If the routines in question are to be retained, the Address of the first word outside of the FCAT table 16 is fetched and stored in the memory area marked with Tem 1 is designated. The address of the specified end of memory is then fetched and stored in the memory area known as the Tem 2 storage area. The two are now stored in such memory locations Addresses include the unused free memory or "core" area 18. In accordance with the routine of Fig. 10, this area is divided, and accordingly the pool parameter table becomes updated. If the memory is divided up to the specified end of the memory, this is displayed, and
A09845/0859A09845 / 0859
das Programm kommt zum Ende.the program comes to an end.
Wenn die Einleitungsprogrammroutinen nicht aufzubewahren sind, wird die erste Adresse der FCAT-Tabelle. 16 abgeholt, und zwar an Stelle der ersten Adresse nach der FCAT-Tabel-Ie 16. Demgemäß wird der Speicher vom Beginn der FCAT-Tabelle 16 bis zu dem angegebenen Speicherende in ähnlicher Weise unterteilt, in der der Bereich 18 unterteilt wurde, woraufhin die Routine gemäß Fig. 12 zum Ende kommt.If the initial program routines are not to be retained, the first address of the FCAT table becomes. 16 picked up, in place of the first address after the FCAT table Ie 16. Accordingly, the memory becomes similar from the beginning of the FCAT table 16 to the specified memory end Manner in which the area 18 was divided, whereupon the routine of FIG. 12 comes to an end.
Demgemäß dürfte ersichtlich sein, daß während der Phase 1 der gemäß der Erfindung ausgeführten Speicherinitialisierung die Pool-Parametertabelle aktualisiert worden ist, und zwar während der Initialisierung der Lücken oberhalb der Einleitungsprogrammroutinen, und in Abhängigkeit davon, ob die Einleitungsprograinmroutinen aufzubewahren sind, erfolgt auch eine Initialisierung der Lücken unter den Einleitungsprograinmroutinen. Ferner erfolgt eine Initialisierung des übrigen Teiles des Speichers, einschließlich der FCAT-Tabelle 16, in Abhängigkeit davon, ob die FCAT-Tabelle aufzubewahren ist oder nicht, und außerdem wird der Bereich 18 unterteilt. Somit verfolgt das System gemäß der Erfindung die Anzahl der der jeweiligen Blocklänge zugeteilten Blöcke und bestimmt, ob die minimalen Speicheranforderungen erfüllt sind oder nichto Auf die Beendigung der Phase 1 hin ist eine Zwischenphase eingeführt, wodurch den Einleitungsprogrammroutinen ermöglicht sein kann, eine ansonsten "tote" Maschine zu initialisieren, so daß sich ein Betriebssystem ergibt. Dies heißt, daß während einer derartigen Zwischenperiode das System derart vorbereitet oder initialisiert wird, daß es bereit wird, um die verschiedenen Programme und/oder Informationen zu verarbeiten. Wach dieser Zwischen-Accordingly, it should be apparent that during phase 1 of the memory initialization carried out according to the invention, the pool parameter table was updated during the initialization of the gaps above the initial program routines, and an initialization also takes place depending on whether the initial program routines are to be retained the gaps under the preamble routine. Furthermore, the remaining part of the memory, including the FCAT table 16, is initialized depending on whether the FCAT table is to be retained or not, and the area 18 is also divided. Thus, according to pursue the system of the invention, the number of the respective block length allocated blocks and determines whether the minimum memory requirements are satisfied or not the termination of Phase 1 is o On towards an intermediate phase introduced, whereby the introduction program routines may be allowed, otherwise a "dead "To initialize the machine so that there is an operating system. This means that during such an intermediate period the system is prepared or initialized in such a way that it becomes ready to process the various programs and / or information. Awake this intermediate
409845/0859409845/0859
periode wird die Phase 2 der Operation vorliegender Erfindung eingeführt.During the period, phase 2 of the operation of the present invention is introduced.
In Fig. 13 ist die Routine der Phase 2 gezeigt. Während der Phase 2 können die Systeme sowohl die verschiedenen Programme und/oder die Information verarbeiten als auch gleichzeitig eine weitere Initialisierung hervorrufen, wie dies im folgenden erläutert wird. Die Art und Weise, in der eine derartige gleichzeitige Operation stattfinden kann, wird weiter unten noch erläutert. Generell besteht die Aufgabe der Phase 2 darin, eine Unterteilung vorzunehmen, und zwar irgendwo vom Start der Einleitungsprogrammroutinen 14 beginnend bis zum Speicherende hin. Dies erfolgt in Abhängigkeit davon, ob dies während der Phase durchgeführt wurde. Außerdem werden während der Phase 2 die Blöcke aufgeteilt, um die maximalen Anforderungen des Systems zu erfüllen, wie sie in der Pool-Parametertabelle bezeichnet sind. Ist somit die Phase 2 eingeführt, so lautet die erste Frage, ob der Bereich von der FCAT-Tabelle 16 bis zum Speicherende hin unterteilt worden ist. Wenn die Antwort des Blockes 60 ja lautet, dann lautet die nächste Frage im Block 62, ob die Einleitungsprograminroutinen aufzubewahren sind. Wenn die Antwort nein lautet, holt die Routine gemäß Fig. 13 die Adresse des ersten Wortes des Initialisierungsbereichs ab und speichert sie in dem Speicherplatz Tem 1. Ferner holt die betreffende Routine die Adresse des Wortes unmittelbar vor der FCAT-Tabelle 16 ab und speichert sie in dem Speicherplatz Tem2. Dieser Bereich wird dann in Übereinstimmung mit der Routine gemäß Fig. 10 unterteilt, woraufhin die Routine des Blockes 64 eingeführt wird. Die Routine des Blockes 64 ist im einzelnen in Fig. 14 gezeigt; sie betrifft die Aufteilung der Blöcke zur Erfüllung der maximalen An-The routine of phase 2 is shown in FIG. During phase 2, the systems can use both the different Process programs and / or the information as well as cause a further initialization at the same time, as explained below. The manner in which such simultaneous surgery takes place can be explained further below. In general, the task of phase 2 is to make a subdivision, namely somewhere from the start of the initial program routines 14 beginning to the end of the memory. this depends on whether this was done during the phase. In addition, during phase 2 split the blocks to meet the maximum requirements of the system as specified in the pool parameter table are designated. Once phase 2 has been introduced, the first question is whether the range from the FCAT table 16 has been divided up to the end of the memory. If the answer to block 60 is yes, then it is next question in block 62 whether the primer routine are to be kept. If the answer is no, the routine of Fig. 13 gets the address of the first Word of the initialization area and stores it in the memory location Tem 1. It also fetches the relevant Routine from the address of the word immediately before the FCAT table 16 and stores it in the storage location Tem2. This area is then divided in accordance with the routine of FIG. 10, whereupon the routine of the Block 64 is introduced. The routine of block 64 is shown in detail in FIG. 14; it concerns them Division of the blocks to meet the maximum
409845/0859409845/0859
forderungen des Systems. Der Block 64 kann auch in verschiedenen anderen Wegen eingeführt werden. Wenn z.B. die Antwort des Blockes 62 ja lautet, wird unmittelbar in den Block 64 eingetreten. Wenn die Antwort des Blockes 60 nein gelautet hat, wird im Block 66 dieselbe Frage gestellt wie im Block 62, nämlich, ob die Einleitungsprogrammroutinen aufzubewahren sind. Wenn die Antwort ja lautet, wird der Bereich von der FCAT-Tabelle 16 zu dem bezeichneten Speicherende hin in Übereinstimmung mit der Routine gemäß Fig. unterteilt, woraufhin in den Block 64 eingetreten wird. Wenn die Antwort des Blockes 66 nein lautet,'werden das erste Wort und das letzte Wort des in den Einleitungsprogrammroutinen enthaltenen Bereiches in den Speicherplätzen Tem bzw. Tem 2 gespeichert, und dieser Bereich wird in Übereinstimmung mit der Routine gemäß Fig. 12 unterteilt. Daraufhin wird in den Block 64 eingetreten. Nachdem die Blöcke in Übereinstimmung mit der Routine gemäß Fig. 14 aufgeteilt sind, kommt die Phase 2 zum Ende.requirements of the system. The block 64 can also be in different other ways are introduced. For example, if the answer to block 62 is yes, the Block 64 entered. If the answer in block 60 was no, the same question is asked in block 66 as in block 62, namely, whether the initiation routines are to be retained. If the answer is yes, it will Area from the FCAT table 16 to the designated end of the memory in accordance with the routine according to FIG. whereupon block 64 is entered. If the answer to block 66 is no, 'will be the first Word and the last word of the area contained in the initial program routines in the memory locations Tem and Tem 2, respectively, and this area is divided in accordance with the routine of FIG. Thereupon block 64 is entered. After the blocks are divided in accordance with the routine of FIG phase 2 comes to an end.
Nunmehr sei auf die in Fig. 14 dargestellte Routine Bezug genommen, gemäß der die Adresse für den Poöl-Parameter-· tabelleneintrag der größten gebildeten Blocklänge festgestellt wird. Ist diese Adresse bestimmt, so wird die für diese Blocklänge oder diesen Pool zugeordnete Anzahl von Blöcken in der Pool-Parametertabelle festgestellt. Wenn die Anzahl der zugeordneten Blöcke gleich der maximal geforderten Anzahl in Übereinstimmung mit der^ Pool-Parametertabelle oder größer als diese Zahl ist, dann Y^rd.die Frage gestellt, ob dies die kleinste Blocklänge ist,"d.h·; die 8-tvort-Blocklänge. Wenn die Antwort ja lautet, kommt die Routine zum Ende. Lautet die Antwort jedoch nein, so wird die Adresse des Pool-Parametertabelleneintrags für dieReference is now made to the routine shown in FIG. 14, according to which the address for the Poöl parameter- · table entry of the largest block length formed is determined. If this address is determined, the for this block length or the number of blocks allocated to this pool is determined in the pool parameter table. if the number of allocated blocks equal to the maximum required number in accordance with the ^ pool parameter table or greater than this number, then Y ^ rd. asked whether this is the smallest block length, "i.e.; the 8-tvort block length. If the answer is yes, this will come Routine to the end. However, if the answer is no, the address of the pool parameter table entry for the
409845/0869409845/0869
nächst kleinere Blocklänge festgestellt, und der Vorgang wird wiederholt. Wenn die Anzahl der zugeordneten Blöcke nicht gleich der maximal geforderten Anzahl oder nicht größer als diese Anzahl ist, wird .die Frage gestellt, ob ein wesentlich größerer Block vorliegt. Lautet die Antwort ja, so wird der Block in Übereinstimmung mit der Routine gemäß Fig. 15 aufgeteilt, woraufhin die Routine gemäß Fig.i4 selbst wieder im Zyklus abläuft. Wenn kein wesentlich größerer Block vorhanden ist, kommt die Routine gemäß Fig. 15 zum Ende, und zwar für den Fall, daß es sich um die kleinste Blocklänge von 8-Worten gehandelt hat, oder der nächst kleinere Block wird adressiert, und die Routine gemäß Fig. 14 wird wiederholt. Wenn die Aufteilungsroutine gemäß Fig. 15 verarbeitet wird, wird, wie ersichtlich sein dürfte, die Anzahl der zugeordneten Blöcke und die Anzahl der verfügbaren Blöcke für den jeweiligen bestimmten Pool oder die jeweilige Blocklänge in Übereinstimmung mit der ausgeführten Operation gesteigert oder vermindert.the next smaller block length is determined and the process is repeated. If the number of blocks allocated is not equal to the maximum required number or not greater than this number, the question is asked whether there is a much larger block. If the answer is yes, the block becomes in accordance with the routine divided according to FIG. 15, whereupon the routine according to FIG runs itself back in the cycle. If there is no substantially larger block, the routine of FIG. 15 comes to End, in the event that it is the smallest block length of 8 words, or the next smaller blocks are addressed and the routine of Figure 14 is repeated. If the splitting routine according to Fig. 15 is processed, as will be seen, the number of blocks allocated and the number of the available blocks for the particular pool or the respective block length in accordance with the performed operation increased or decreased.
Bezugnehmend auf Fig. 15 sei demgemäß bemerkt, daß nach Eintritt in die Aufteilungsroutine im Block 70 gefragt wird, ob der bezeichnete Pool leer ist. Der bezeichnete Pool ist der Pool der gerade aufgeteilten Blocklängen. Im Beispiel werden die größten Blöcke oder 32-Wort-Blöcke zuerst behandelt; demgemäß ist der bezeichnete Pool jener der gebildeten größten Blöcke. Im Hinblick auf den Block 72 sei bemerkt, daß der gegenwärtige Pool der Pool oder die Blocklänge der nächst kleineren gebildeten Größe ist. In dem Beispiel, in dem 32-Wort-Blöcke, 16-Wort-Blöcke und 8-Wort-Blöcke vorkommen, wäre demgemäß bei Aufteilung der 32-Wort-Blöcke der gebräuchliche Block öder Pool der 16-Wort-Block, während bei Aufteilung derAccordingly, referring to FIG. 15, it should be noted that block 70 is asked to enter the splitting routine whether the designated pool is empty. The designated pool is the pool of the block lengths just divided. In the example, the largest blocks or 32-word blocks are treated first; accordingly, the designated pool is that of the largest blocks formed. With regard to block 72, it should be noted that the current pool is the pool or is the block length of the next smaller formed size. In the example in which 32-word blocks, 16-word blocks and 8-word blocks occur, would be divided accordingly the 32-word blocks the common block or the pool the 16-word block, while the
409.845/0859409.845 / 0859
24Ί952224Ί9522
16-Wort-Blöcke der gebräuchliche Block oder Pool der 8-Wort-Block wäre. Wenn somit die Antwort des Blockes 70 ja lautet, kommt die Routine gemäß Fig. 15 zum Schluß zurück zur Fig. 14, bis tatsächlich die letzte kleinste Blocklänge angezeigt ist. Daraufhin kommt die Routine gemäß· Fig. 14 zum Ende. Venn, die Antwort des Blockes 70 gemäß Fig. 15 nein lautet, dann wird ein Block aus diesem bestimmten Pool von' Blöcken herausgenommen; die großen Blöcke und die Anschlußadresse für Blöcke, die zuvor mit dem herausgenommenen Block verbunden sind, werden aktualisiert. 16-word blocks would be the common block or pool would be the 8-word block. Thus, if the answer to block 70 is yes, the routine of FIG. 15 finally comes back to FIG. 14 until the last smallest block length is actually displayed. Then, the routine of Fig. 14 comes to an end. If the answer to block 70 of Figure 15 is no, then a block is removed from that particular pool of blocks; the large blocks and the terminal address for blocks previously associated with the removed block are updated.
In Übereinstimmung mit den Herausnehmen eines Blockes aus dem Pool der großen Blöcke werden die die verfügbaren Blöcke und die zugeordneten Blöcke betreffenden Zählungen bzw. Zählerstellungen der Pool-Parametertabelle vermindert. Ist die Pool-Parametertabelle in geeigneter Weise aktualisiert, so wird der gerade aus der großen Gruppe von Blöcken herausgetrennte Block in Blöcke der nächst kleinsten gebildeten Größe unterteilt. Unter der Annahme, daß die nächst kleinste gebildete Größe die Hälfte der Größe des vorliegenden Blockes ist, werden sodann zwei derartige Blöcke erzeugt; die Startadressen dieser beiden Blöcke werden gespeichert. Ist diese Division ausgeführt, so wird im Block 74 gefragt, ob diese Blöcke, die unterteilt worden sind, die geforderte Größe haben. Wenn die Antwort ja lautet, werden die beiden Blöcke mit dem gebrauchten Pool oder den gebrauchten Blöcken verbunden, d~h. mit der Pool-Parametertabelle, die der Größe der gerade geteilten Blöcke entspricht., Demgemäß wird die Adresse des letzten Blockes in der Pool-Parametertabelle, wie gefordert, aktualisiert. Ferner wird die Pool-Parametertabelle dadurch aktualisiert,In accordance with the removal of a block from the pool of large blocks, those become available Blocks and the assigned blocks are reduced in counts or counter settings in the pool parameter table. If the pool parameter table has been updated in a suitable manner, then the one just becomes out of the large group of blocks The separated block is divided into blocks of the next smallest formed size. Assuming that the The next smallest formed size is half the size of the present block, there are then two such blocks Blocks generated; the start addresses of these two blocks are saved. If this division is carried out, then asked in block 74 whether these blocks that have been subdivided are of the required size. If the answer is yes the two blocks will be connected to the used pool or blocks, i.e. with the pool parameter table, which corresponds to the size of the blocks just divided., Accordingly, the address of the last block becomes in the pool parameter table updated as required. Furthermore, the pool parameter table is updated by
409845/0859409845/0859
daß die die in Frage kommenden verfügbaren Blocklängen betreffende Zählerstellung und die die zugeordneten Blocklängen betreffende Zählerstellung um die Anzahl der verbundenen Blöcke erweitert v/ird. "V/enn somit z.B. mit einem zu unterteilenden 32-Wort-Block begonnen wird, dann würde der 16-Wort-Blοcklängeneintrag in die Pool-Parametertabelle aktualisiert werden, und zwar hinsichtlich ihres letzten Blockeintrags sowie hinsichtlich der Anzahl der zugeordneten und verfügbaren Blöcke. Ist dies erfolgt, so kommt die Routine gemäß Fig. 14 zum Ende.that the counter position relating to the available block lengths in question and that of the assigned block lengths The relevant counter position is expanded by the number of connected blocks. "V / enn thus e.g. with a 32-word block to be divided is started, then would be the 16-word block length entry in the pool parameter table updated, namely with regard to their last block entry and with regard to the number of allocated and available blocks. Once this has taken place, the routine according to FIG. 14 comes to an end.
Hat die Antwort des Blockes 74 nein gelautet, was bedeutet, daß die Blocke nicht von der geforderten Größe sind, wie z.B. in dem Fall, daß mit 32-Wort-Blöcken begonnen worden ist und daß zusätzliche 8-Y/ört-Blöcke erwünscht sind, so würde man in den Block 72 eintreten und mit Ausnahme eines Blockes sämtliche dieser Blöcke mit dem gebrauchten Pool verbinden und die Schlangenanfänge aktualisieren. Dies heißt in dem gerade erwähnten Beispiel, daß ein 16-Wort-BIock mit dem Eintrag in die Pool-Parametertabelle für die i6-\iort-Bio cklänge verbunden würde und daß einer der 16-Wort-Blöcke nicht verbunden würde. Nachdem dies ausgeführt ist, wird der Eintrag der die verfügbaren Blöcke betreffenden Zählerstellung und der die zugeordneten Blöcke betreffenden Zählerstellung, z.B. für die 16-Wort-Blöcke, durch die Anzahl der derart verbundenen Blöcke erweitert. Demgemäß würde eine solche Information in Bezug auf derartige Zählersteilungen jeweils um 1 vergrößert werden. Der nicht verbundene Block würde sodann in die Blöcke der nächst kleinsten Größe unterteilt werden, die zu bilden ist, das sind zwei 8-Vort-Blöcke. Die Pool-Parametertabelle würde demgemäß aktualisiert werden, wie dies oben angegeben ist.If the answer of block 74 was no, which means that the blocks are not of the required size, such as e.g. in the event that 32-word blocks were started and that additional 8-Y / loc blocks are desired, so one would enter block 72 and with the exception of one Blockes connect all of these blocks with the used pool and update the queue beginnings. this means in the example just mentioned that a 16-word block would be connected to the entry in the pool parameter table for the i6- \ iort-Biocklänge and that one of the 16-word blocks would not be connected. After this is done, the entry is made regarding the available blocks Counter setting and the counter setting relating to the assigned blocks, e.g. for the 16-word blocks the number of blocks connected in this way is expanded. Accordingly, such information would be related to such Counter increments can be increased by 1 each time. Not that connected block would then be divided into the next smallest size blocks to be formed, the are two 8-forward blocks. The pool parameter table would be updated accordingly as indicated above.
409845/08 6409845/08 6
Diese Schleife der Routine enthält den Block 72; sie wäre ferner zweckmäßig in jenen Fällen z.B., in denen ein 64-Wort-Block-Eintrag vorlage und nicht der Wunsch bestünde nach einem 32-Wort-Block-Sintrag, sondern nach einem aufzuteilenden 16-Wort-Block. Somit kommt die Routine gemäß Fig. 15 zum Ende; sie hat zu zwei nächst kleineren Blocklängen für die Zwecke der Pool-Parametertabelle geführt. Wie in Fig. 14 gezeigt, wiederholt sich dieser Vorgang für jede Blocklänge, wenn eine derartige Blocklänge, in typischer Weise die größte Blocklänge, tatsächlich einen Überschuß an Blöcken aufweist. Somit werden die im Überschuß vorhandenen Blocklängen in Übereinstimmung mit der Routine gemäß Fig.15 aufgeteilt, bis die maximalen Anforderungen bezüglich der nächst kleinsten Blocklänge erfüllt sind. Dies setzt sich fort für den Fall, daß Blöcke verfügbar sein sollten, bis die Anzahl der 8-Wort-Blocklängen ebenfalls die maximalen Anforderungen erfüllt. In Übereinstimmung mit Fig. 15 ist noch zu bemerken, daß in dem Fall, daß keine weiteren Blöcke vorhanden sein sollten, die Antwort des Blockes 70 ja lautet und die Aufteilungsroutine zum Ende kommt. Die Phase 2 wird schließlich beendet, wenn die kleinste Blocklänge, d.h. die 8-Wort-Blocklänge, in Übereinstimmung mit der Routine gemäß Fig. 14 ermittelt wird.This loop of the routine includes block 72; It would also be useful in those cases, for example, in which a 64-word block entry was present and there is no wish after a 32-word block entry, but after one to be divided 16-word block. Thus, the routine comes in accordance Fig. 15 towards the end; it has led to two next smaller block lengths for the purposes of the pool parameter table. As shown in Fig. 14, this process is repeated for each block length, if such a block length, more typically Way the largest block length, actually has an excess of blocks. Thus, the excess Block lengths are divided in accordance with the routine of FIG. 15 until the maximum requirements with regard to the next smallest block length are met. This continues in the event that blocks should be available until the number of 8-word block lengths is also the maximum Requirements fulfilled. In accordance with FIG. 15, it should also be noted that in the event that no further Blocks should be present, the answer of block 70 is yes and the splitting routine comes to an end. the Phase 2 is finally ended when the smallest block length, i.e. the 8-word block length, is in accordance with the routine of FIG. 14 is determined.
Wie oben ermähnt, kann die Phase 2 des Betriebs,der vorliegenden Erfindung gleichzeitig mit der Verarbeitung der verschiedenen Programme und/oder der Information beibehalten werden» die im Speicher gespeichert sein kann. Erreicht wird dies dadurch, daß nicht jeder achte Wortspeicherplatz in dem Speicherbereich benutzt wird, der die Einleitungsprogrammroutinen speichert. Der erste derartige Speicherplatz, der nicht benutzt wird, würde dem SpeicherplatzAs warned above, phase 2 of the operation, the present Invention maintained simultaneously with the processing of the various programs and / or information »which can be stored in memory. This is achieved by the fact that not every eighth word memory location is used in the memory area which stores the initiation program routines. The first such storage space, which is not used would take up the storage space
409845/Ü859409845 / Ü859
entsprechen, der sich in Übereinstimmung mit der Formel des Blockes 28 der in Fig. 10 gezeigten Routine ergeben würde. Somit könnten die lüinleitungsprogrammroutinen bzw. Programmvorbereitungsroutinen ablaufen, während der eine derartige Routine enthaltende !Bereich unterteilt wird, und zwar einfach dadurch, daß die Schlangenköpfe oder Anschlußadressen in jedem vierten derartiger nicht benutzter Speicherplätze für den 32-Wort-Block, in jedem zweiten nicht benutzten Speicherplatz für den i6-urort-Block und in jedem nicht benutzten Speicherplatz derartiger nicht benutzter Speicherplätze für die 8-Wort-Blöcke untergebracht werden. Sind die Anschlußadressen in die in Frage kommenden Wortspeicherplätze eingefügt, die in dem Speicherbereich enthalten sind, der die Programmeinleitungsroutine speichert, so können die Routinen selbst ablaufen, und zwar sogar während der Unterteilung des diese Routinen enthaltenden Speicherbereichs und/oder nach der Unterteilung des betreffenden Speicherbereichs. Wenn die Blöcke benutzt werden müssen, die aus'dem die Programmeinleitungsroutinen speichernden Speicherbereich gebildet sind, so werden die Routinen einfach mit der neuen Information übergeschrieben, wodurch der spezielle Teil der Programmeinleitungsroutinen zerstört ist.which would result in accordance with the formula of block 28 of the routine shown in FIG. Thus, the initial program routines or program preparation routines could run while the area containing such a routine is subdivided, simply by the fact that the queue headers or connection addresses in every fourth such unused memory location for the 32-word block are not used in every second space for the i6-u r ort-block and in any unused space such unused memory locations for the 8-word blocks are housed. If the connection addresses are inserted into the word memory locations in question, which are contained in the memory area that stores the program initiation routine, the routines can run themselves, even during the subdivision of the memory area containing these routines and / or after the subdivision of the relevant memory area . If the blocks which are formed from the memory area storing the program initiation routines have to be used, the routines are simply overwritten with the new information, whereby the special part of the program initiation routines is destroyed.
Durch die vorliegende Erfindung werden also Lücken oder freie Speicherbereiche, die nach dem Laden eines mit einem Rechner verbundenen Speichers durch verschiedene Rechnerprogramme und/oder Informationen gebildet sind, in eine Vielzahl von unterschiedlichen v/ortlängen oder Blocklängen unterteilt, um derartige freie Bereiche während des Ablaufs oder der Verarbeitung durch ein den Rechner und den Speicher enthaltendes System wirtschaftlicher auszunutzen. Der Speicher enthält einen ersten festgelegten Bereich zurThe present invention therefore eliminates gaps or free memory areas that are filled with a Computer-connected memory are formed by various computer programs and / or information in a Variety of different v / ortlengths or block lengths subdivided to such free areas during the running or processing by the computer and the memory system containing the system to be used more economically. The memory contains a first specified area for
4 09845/0854 09845/085
Speicherung derartiger Programme, wodurch sich eine Vielzahl von Lücken oder freien Bereichen ergibt, und einen zweiten festgelegten Bereich zur Speicherung der jüinleitungsroutinen gemäß der Erfindung, was ebenfalls zu einer Vielzahl von Lücken führt, üinefreie Speicher- oder "Kenr'-Bereiche anzeigende Tabelle gibt die Adressen der verschiedenen Lücken an; diese Tabelle ist- zusätzlich zu den insgesamt nicht ausgenutzten großen Speicherbereichen ebenfalls in dem Speicher enthalten. Die Programmvorbereitungseinrichtung gemäß der Erfindung arbeitet grundsätzlich in zwei Stufen. Zum ersten werden die verschiedenen Lücken unterteilt, z.B. in lange, mittlere und kurze Wortbläcke, und sodann erfolgt eine Unterteilung der Lücken unter den Einleitungsroutinen und/oder der Binleitungsroutinen selbst und/oder der die freie Speicherbereiche angebenden Tabelle und/oder eines derartigen nicht benutzten großen Speicherbereiches, und zwar in Abhängigkeit von den Anforderungen des Systems. Ferner werden in Abhängigkeit von minimalen und maximalen Anforderungen des Systems die die maximalen Anforderungen des Systems übersteigenden Wortblöcke irgendeiner bestimmten Länge in kleinere Blöcke unterteilt, um nämlich in dem möglichen Ausmaß die angegebene maximale Menge an Blöcken für die jeweilige Blocklänge bereitzustellen.Storage of such programs, which results in a large number of gaps or free areas, and one second defined area for storing the initiation routines according to the invention, which also leads to a large number of gaps, free memory or "Kenr" areas indicating table gives the addresses of the various gaps; this table is in addition to the overall unused large memory areas are also contained in the memory. The program preparation facility according to the invention basically works in two stages. First, the various gaps are subdivided, e.g. into long, medium and short word blocks, and then the gaps under the preamble routines are subdivided and / or the routing routines themselves and / or the table indicating the free memory areas and / or one such unused large memory area, depending on the requirements of the system. Furthermore, depending on the minimum and maximum requirements of the system, the maximum requirements word blocks of any given length exceeding the system are divided into smaller blocks, namely in the possible Extent to provide the specified maximum number of blocks for the respective block length.
Claims (1)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US35382073A | 1973-04-23 | 1973-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2419522A1 true DE2419522A1 (en) | 1974-11-07 |
Family
ID=23390709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19742419522 Pending DE2419522A1 (en) | 1973-04-23 | 1974-04-23 | PROCEDURE AND ARRANGEMENT FOR DIVISION OF ONE OR MORE UNUSED AREAS OF A MEMORY CONNECTED TO A COMPUTER |
Country Status (5)
Country | Link |
---|---|
JP (1) | JPS5014237A (en) |
CA (1) | CA1014671A (en) |
DE (1) | DE2419522A1 (en) |
FR (1) | FR2226705B1 (en) |
GB (1) | GB1431163A (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2225135C3 (en) * | 1971-05-26 | 1987-10-22 | General Electric Co., Schenectady, N.Y. | Cutting insert |
CH540990A (en) * | 1971-07-07 | 1973-08-31 | Battelle Memorial Institute | Method for increasing the wear resistance of the surface of a cutting tool |
JPS5823468B2 (en) * | 1975-07-07 | 1983-05-16 | 松下電器産業株式会社 | Method for manufacturing wear-resistant thin film |
JPH03260047A (en) * | 1990-03-09 | 1991-11-20 | Agency Of Ind Science & Technol | Thermal spraying material having wear resistance at high temperature and its production |
GB9113469D0 (en) * | 1991-06-21 | 1991-08-07 | Anamartic Ltd | Data storage management systems |
US6247105B1 (en) * | 1996-06-20 | 2001-06-12 | Sun Microsystems, Inc. | Externally identifiable descriptor for standard memory allocation interface |
-
1974
- 1974-01-22 CA CA190,689A patent/CA1014671A/en not_active Expired
- 1974-04-15 JP JP4109174A patent/JPS5014237A/ja active Pending
- 1974-04-22 FR FR7413901A patent/FR2226705B1/fr not_active Expired
- 1974-04-23 DE DE19742419522 patent/DE2419522A1/en active Pending
- 1974-04-23 GB GB1766474A patent/GB1431163A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
FR2226705B1 (en) | 1978-04-21 |
CA1014671A (en) | 1977-07-26 |
FR2226705A1 (en) | 1974-11-15 |
JPS5014237A (en) | 1975-02-14 |
GB1431163A (en) | 1976-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3784387T2 (en) | DEVICE AND METHOD FOR THE PARALLEL MANAGEMENT OF FREE STORAGE AREAS. | |
DE2431379C3 (en) | Data processing device | |
EP0703534B1 (en) | Computer memory management system | |
DE3741953A1 (en) | MULTIPROCESSOR SYSTEM AND METHOD FOR DISTRIBUTING WORK LOAD IN SUCH A | |
DE3416939A1 (en) | METHOD FOR CONTROLLING OPERATING DEVICES | |
DE2055784A1 (en) | Data processing system | |
DE69208789T2 (en) | Sorting method | |
DE3726192A1 (en) | STACK CONTROL | |
DE69615606T2 (en) | Memory allocation that maintains order through several piles | |
DE2218839C3 (en) | Device for assigning memory addresses to a group of data elements | |
DE2133638C3 (en) | Method for operating an adaptive system made up of adaptive data processing units connected in cascade and suitable for non-linear data processing | |
DE3507584C2 (en) | ||
DE2419522A1 (en) | PROCEDURE AND ARRANGEMENT FOR DIVISION OF ONE OR MORE UNUSED AREAS OF A MEMORY CONNECTED TO A COMPUTER | |
DE69031361T2 (en) | Clock signal generator system | |
DE102018125090A1 (en) | Data processing method and programmable logic controller | |
DE2558417A1 (en) | DATA PROCESSING SYSTEM | |
DE1285218B (en) | Data processing system | |
DE69123319T2 (en) | Image data processing device | |
DE3640355A1 (en) | METHOD FOR DETERMINING THE PERIOD OF A LANGUAGE PARAMETER AND ARRANGEMENT FOR IMPLEMENTING THE METHOD | |
DE69815656T2 (en) | Computer system with a multiple jump instruction pointer and procedure | |
DE2259726A1 (en) | METHOD FOR OPTIMIZING A SEMI-CONDUCTOR CIRCUIT | |
EP0925540B1 (en) | Method of synchronization | |
DE3784189T2 (en) | DEVICE AND METHOD FOR CONTROLLING THE ERASE OF A STORAGE AREA. | |
EP0284605B1 (en) | Software tool for automatic production of a logical function diagram | |
WO2005093580A1 (en) | Garbage collection for smart cards |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OHJ | Non-payment of the annual fee |