Wenn in einer Datenverarbeitungsanlage Speicherzellen in unregelmässiger Folge und für variable Dauer beansprucht werden, muss vor der Belegung einer solchen Speicherzelle eine freie Zelle gesucht werden. Dies ist möglich, indem in jeder
Zelle ein Bit, das sogenannte Belegungsbit, dazu benutzt wird, um anzuzeigen, ob die Zelle belegt ist oder nicht. Ist eine Zelle zu belegen, so wird eine Zelle nach der anderen abgefragt und jeweils das Belegungsbit geprüft, bis man auf eine Zelle stösst, bei der dieses Bit angibt, dass die Zelle noch frei ist. Dieses
Verfahren benötigt keine besonderen Schaltungen, ist jedoch sehr langsam. Der Suchvorgang benötigt weniger Zeit, wenn die Belegungsbits in einer Speicherzelle zusammengefasst und gemeinsam abgefragt werden. Noch schneller ist der Suchvor gang, wenn die Belegungsbits in einem jederzeit abfragbaren
Register zur Verfügung stehen.
Es ist eine Aufgabe der Erfindung, die Abfrage eines solchen Registers nach einer freien Speicherzelle in kürzest möglicher Zeit durchzuführen zu können.
Die erfindungsgemässe Einrichtung dient also zur Buchführung iiber die durch eine Steuerschaltung durchgeführte Belegung von Speicherzellen in einer datenverarbeitenden Anlage, wobei jeder Speicherzelle eine Binärstelle eines Belegungsregisters zugeordnet ist, die durch ihren Zustand den Belegungszustand der Speicherzelle anzeigt.
Die Einrichtung ist gekennzeichnet durch mindestens einen Zuordner, dessen Eingang mit dem Belegungsregister verbunden ist und dessen Ausgang anzeigt, welche die in einer vorgegebenen Reihenfolge erste, eine freie Speicherstelle anzeigende Binärstelle des Registers ist, und durch Mittel zur Übenragung dieser Anzeige auf die Steuerschaltung.
Eine Ausführungsform der erfindungsgemässen Einrichtung wird beispielsweise anhand der einzigen Figur erläutert.
In dieser Figur bezeichnet BR ein Belegungsregister mit n Stellen. Jeder Speicherzelle, die zu dem Speicherteil gehört, der in unregelmässiger Folge und Belegungsdauer benutzt wird, ist eine Binärstelle des Belegungsregisters zugeordnet. Ist andererseits auch jeder Stelle des Belegungsregisters nur eine Speicherzelle zugeordnet, so kann die Suche nach einer freien Speicherstelle in kürzester Zeit durchgeführt werden. Wenn aber mehr Speicherstellen als Registerstellen vorhanden sind, so ist es möglich, mehreren Speicherzellen eine Registerstelle zuzuordnen, indem der Speicherbereich in Gruppen zu n Stellen eingeteilt und jeder Gruppe ein Wort zu n Stellen zugeordnet wird. Eines dieser Worte ist im Register, die anderen sind in einer besonderen Zelle des Speichers niedergelegt.
Zunächst wird versucht, eine freie Zelle in der Gruppe zu finden, deren Belegungswort sich im Register befindet. Ist dieser Versuch erfolglos, wird das Belegungswort einer anderen Gruppe in das Register überführt und mit diesem Wort weitergearbeitet.
Z01 ist ein Zuordner, der an das Belegungsregister BR angeschlossen ist. Bei dieser Verbindung ist für jedes Bit eine Leitung zur Parallelübertragung vorgesehen, was dadurch angedeutet ist, dass die Leitung durch zwei parallele Striche wiedergegeben ist. Der Ausgang des Zuordners zeigt an, welches das erste Bit in einer vorgegebenen Reihenfolge ist, das eine freie Stelle anzeigt. Es sei angenommen, dass diese Anzeige dadurch erfolgt, dass das betreffende Bit list.
Hat das Belegungsregister n Stellen, welche mit a, b, c, d, e. . bezeichnet werden und bezeichnet der Ausgangszustand A, dass die erste, B, dass die zweite Stelle die erste 1 aufweist, usw. so ist
A=a, B=atb, C=ab'c, D=a'b'c'd usw.
Je nach der geforderten Einstellzeit des Zuordners kann dieser zwei- oder mehrstufig ausgeführt werden, wobei mit höherer Stufenzahl die Durchlaufzeit wächst und der Aufwand abnimmt.
Für einen solchen Zuordner sind viele Ausführungsformen bekannt. Er kann beispielsweise mittels Dioden aufgebaut sein und aus einem ein- oder mehrstufigen Decoder und einem Coder bestehen.
Z02 ist ein zweiter Zuordner, der dem ersten ähnlich, jedoch so geschaltet ist, dass er an seinem Ausgang die erste Stelle von rechts angibt, die eine 1 enthält. Beide Zuordner bezeichnen an ihrem Ausgang jeweils die gleiche Stelle des Belegungsregisters mit der gleichen Code-Kombination.
Durch Öffnen einer der Torgruppen TAG 1 oder TG2 kann entweder die Ausgangskombination des Zuordners TG1 oder die des Zuordners TG2 auf eine Transferstrasse STS zu einer in der Figur nicht dargestellten informationsverarbeitenden Einheit z. B. dem Zentralsteuerwerk der IDatenverarbeitungs anlage übertragen werden. Das Steuerwerk veranlasst dann die Übertragung der zu speichernden Information in die vom Zuordner angegebene Speicherstelle.
Gleichzeitig wird die Ausgangskombination zu einem Pufferregister PR und von dort zu einem Decoder DC1 übertragen, welcher die vom Zuordner abgegebene Codekombination in einen l-aus-n-Code umwandelt. Dieser dient dazu, die betreffende Stelle des Belegungsregisters BR von 1 auf 0 umzustellen, sodass die zugehörige Stelle des Speichers als besetzt gekennzeichnet ist. Diese Übertragung wird durch ein Signal auf den Eingang S des Decoders ausgelöst, sofern sie gewünscht ist.
Durch eine weitere Reihe von Eingängen zum Belegungsregister, welche vom zentralen Steuerwerk kommen und über einen Decoder DC2 an die 1-Eingänge des Belegungsregisters BR angeschlossen sind, können die einzelnen Stellen dieses Registers wieder auf 1 gestellt werden, wodurch angezeigt wird, dass die in den zugeordneten Speicherstellen enthaltene Information entweder = 0 ist oder nicht mehr gebraucht wird und dass die Zelle demnach als frei zu betrachten ist.
Das Öffnen und Schliessen der Torschaltungsgruppen TG1 oder TG2 DC1 geschieht durch Impulse PQRS, welche von einer Impulsgeberschaltung IG ausgehen, die ihrerseits durch das zentrale Steuerwerk in Tätigkeit gesetzt wird.
If memory cells are used in an irregular sequence and for a variable duration in a data processing system, a free cell must be searched for before such a memory cell is occupied. This is possible by adding in everyone
Cell a bit, the so-called occupancy bit, is used to indicate whether the cell is occupied or not. If a cell is to be occupied, one cell after the other is queried and the occupancy bit is checked in each case until one comes across a cell in which this bit indicates that the cell is still free. This
Method does not require any special circuitry, but is very slow. The search process requires less time if the allocation bits are combined in a memory cell and interrogated together. The search process is even faster if the assignment bits can be queried at any time
Register are available.
It is an object of the invention to be able to query such a register for a free memory cell in the shortest possible time.
The device according to the invention thus serves to keep records of the occupancy of memory cells in a data processing system carried out by a control circuit, each memory cell being assigned a binary digit of an occupancy register which, by its status, indicates the occupancy of the memory cell.
The device is characterized by at least one allocator, the input of which is connected to the occupancy register and the output of which indicates which is the first binary position of the register indicating a free memory position in a predetermined order, and means for transmitting this display to the control circuit.
An embodiment of the device according to the invention is explained, for example, with reference to the single figure.
In this figure, BR denotes an allocation register with n places. Each memory cell that belongs to the memory part that is used in irregular sequence and occupancy time is assigned a binary digit in the occupancy register. If, on the other hand, only one memory cell is assigned to each position in the occupancy register, the search for a free memory position can be carried out in the shortest possible time. However, if there are more memory locations than register locations, it is possible to assign a register location to several memory cells by dividing the memory area into groups of n locations and assigning a word to each group of n locations. One of these words is in the register, the others are in a special cell in the memory.
First, an attempt is made to find a free cell in the group whose assignment word is in the register. If this attempt is unsuccessful, the assignment word of another group is transferred to the register and work is continued with this word.
Z01 is an allocator that is connected to the allocation register BR. In this connection, a line for parallel transmission is provided for each bit, which is indicated by the fact that the line is represented by two parallel lines. The output of the allocator indicates which is the first bit in a predetermined sequence that indicates a free position. It is assumed that this display takes place in that the relevant bit list.
If the occupancy register has n positions, which start with a, b, c, d, e. . and the initial state A indicates that the first, B, that the second digit has the first 1, and so on
A = a, B = atb, C = ab'c, D = a'b'c'd etc.
Depending on the required setting time of the allocator, this can be carried out in two or more stages, with the higher the number of stages, the throughput time increases and the effort decreases.
Many embodiments are known for such an allocator. It can, for example, be constructed using diodes and consist of a single or multi-stage decoder and a coder.
Z02 is a second allocator, which is similar to the first, but switched in such a way that it indicates the first position from the right at its output that contains a 1. Both allocators designate the same position in the allocation register with the same code combination at their output.
By opening one of the gate groups TAG 1 or TG2, either the output combination of the assigner TG1 or that of the assigner TG2 can be transferred to a transfer line STS to an information processing unit, not shown in the figure. B. be transferred to the central control unit of the data processing system. The control unit then initiates the transfer of the information to be saved to the storage location specified by the allocator.
At the same time, the output combination is transferred to a buffer register PR and from there to a decoder DC1, which converts the code combination output by the allocator into an 1-out-of-n code. This is used to change the relevant position in the occupancy register BR from 1 to 0 so that the associated position in the memory is marked as occupied. This transmission is triggered by a signal on input S of the decoder, if required.
Through a further series of inputs to the allocation register, which come from the central control unit and are connected to the 1 inputs of the allocation register BR via a decoder DC2, the individual positions of this register can be set to 1 again, which indicates that the in the allocated memory locations is either = 0 or is no longer needed and that the cell is therefore to be regarded as free.
The gate circuit groups TG1 or TG2 DC1 are opened and closed by means of pulses PQRS, which emanate from a pulse generator circuit IG, which in turn is activated by the central control unit.