DE2418034C3 - Circuit arrangement for managing memory segments - Google Patents

Circuit arrangement for managing memory segments

Info

Publication number
DE2418034C3
DE2418034C3 DE19742418034 DE2418034A DE2418034C3 DE 2418034 C3 DE2418034 C3 DE 2418034C3 DE 19742418034 DE19742418034 DE 19742418034 DE 2418034 A DE2418034 A DE 2418034A DE 2418034 C3 DE2418034 C3 DE 2418034C3
Authority
DE
Germany
Prior art keywords
address
memory
register
segment
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE19742418034
Other languages
German (de)
Other versions
DE2418034B2 (en
DE2418034A1 (en
Inventor
Klaus Dr.rer.nat. 5205 St Augustin; Kluge Werner Dr.rer. nat. 5060 Bensberg-Refrath Berkling
Original Assignee
Gesellschaft für Mathematik und Datenverarbeitung mbH Bonn, 5205 St Augustin
Filing date
Publication date
Application filed by Gesellschaft für Mathematik und Datenverarbeitung mbH Bonn, 5205 St Augustin filed Critical Gesellschaft für Mathematik und Datenverarbeitung mbH Bonn, 5205 St Augustin
Priority to DE19742418034 priority Critical patent/DE2418034C3/en
Priority to GB14285/75A priority patent/GB1499184A/en
Priority to US05/568,129 priority patent/US4024507A/en
Publication of DE2418034A1 publication Critical patent/DE2418034A1/en
Publication of DE2418034B2 publication Critical patent/DE2418034B2/en
Application granted granted Critical
Publication of DE2418034C3 publication Critical patent/DE2418034C3/en
Expired legal-status Critical Current

Links

Description

1 ö LO41 ö LO4

von Datensammelschicncn A' (/ι — I :())und X (n — I :0). welchen / und D zugeordnet sind in der Formof data collection files A '(/ ι - I :()) and X (n - I: 0). which / and D are assigned in the form

XU) = IH) Vi)(Z)
XH) = ( /(O V DH)
XU) = IH) Vi) (Z)
XH) = (/ (OV DH)

Die Datcnsammelschienen .V(Z) und XH) sind mil der Dekodierlogik in der üblichen Weise verbunden, so daß in Abwesenheit von »dont care« — Bedingungen D(O = 0 für alle ι eine einzelne Zelle MEM(I) adressiert ist.The data busbars V (Z) and XH) are connected to the decoding logic in the usual way, so that in the absence of "don't care" conditions D (O = 0 for all ι a single cell MEM (I) is addressed.

Ist D von der FormIs D of the form

Dk = D k =

0 für ii-l > i > k 0 for ii-l >i> k

1 für k- I > i > O.1 for k- I> i > O.

worin k ein Bit vorbestimmter Wertigkeit von η möglichen Bits ist — dann existiert ein Block von 2k fortlaufenden Adressen in den Grenzen I4 und /,.. deren Binärkodes durch die Gleichungenwhere k is a bit of predetermined significance of η possible bits - then there is a block of 2 k consecutive addresses in the limits I 4 and /, .. their binary codes by the equations

( /(/) für /i-l > i > k
/,(0 = 13)
(/ (/) for / il >i> k
/, (0 = 13)

0 für k- I > / > 0.0 for k- I>/> 0.

/(O fur Ji-I > / > k
1 für k - 1 > ( > 0
/ (O for Ji-I>/> k
1 for k - 1>(> 0

gegeben ist, der gleichzeitig aktiviert werden kann.is given, which can be activated at the same time.

Um diese Methode des blockweisen Adressierens auf den Algorithmus zum Suchen von Folgen unbesetzter Speicherplätze anwenden zu können, muß ein beliebig angeordnetes Segment MEM(I1: Iv) in solche Blöcke unterteilt und eine Strategie für deren schrittweises Abfragen entwickelt werden.In order to be able to apply this method of block-wise addressing to the algorithm for searching for sequences of unoccupied memory locations, an arbitrarily arranged segment MEM (I 1 : I v ) must be subdivided into such blocks and a strategy developed for their step-by-step interrogation.

1st g das höchste Bit, in welchem sich die Binärkodes von IL und J17 unterscheiden, z. B. IL (n-1 :g + I) = Iv(n-]:g+l). aber Iv(g) = 1; IL(g) = 0, dann definiert g eine Segmentadresse /s der BinärformIf g is the highest bit in which the binary codes of I L and J 17 differ, e.g. B. I L (n-1: g + I) = I v (n -]: g + l). but I v (g) = 1; I L (g) = 0, then g defines a segment address / s in binary form

[IAi) fur n — 1 > ι > g [IAi) for n - 1>ι> g

/s(0 = (4) / s (0 = (4)

[0 g- 1 > / > 0[0 g- 1> /> 0

mit folgenden Merkmalen: /s teilt das Speicherzustandsregister MEM(1L:I0) in ein unteres Segmentwith the following features: / s divides the memory status register MEM (1 L : I 0 ) into a lower segment

50 = MEM (I1: Is - 1) und in ein oberes Segment50 = MEM (I 1 : I s - 1) and into an upper segment

51 = MEM(I3A1,). /s-i und /s sind obere und untere Grenzen von zwei gleichzeitig adressierbaren BlöckenBO = MEM (Is-2e:Is- l)undßl = MEM (/s:Js + 29-l) der Größe 29.51 = MEM (I 3 A 1 ,). / s -i and / s are upper and lower limits of two simultaneously addressable blocks BO = MEM (I s -2 e : I s - l) and ßl = MEM (/ s : J s + 2 9 -l) of size 2 9 .

Da Iv < Is + 29 - 1 und IL > /s - 29, ist die Adresse /„ und auch das Segment Sl in den Block Bl und die Adresse IL und das Segment SO in den Block BO eingeschlossen.Since I v <I s + 2 9 - 1 and I L > / s - 2 9 , the address / "and also the segment S1 are included in the block B1 and the address I L and the segment SO in the block BO.

Das blockweise Adressieren innerhalb des oberen Segments Sl oder innerhalb des unteren Segmentes SO des Speicherzustandsregisters MEM ergibt sich aus folgendem. Liegt die Adresse I11 in der oberen Hälfte BIl von BlockBl, so ist das BItJ1Jg-I) des Adreßkodes logisch 1, anderenfalls logisch 0.Addressing in blocks within the upper segment S1 or within the lower segment SO of the memory status register MEM results from the following. If the address I 11 is in the upper half BIl of BlockBl, then the BItJ 1 Jg-I) of the address code is logic 1, otherwise logic 0.

Andererseits bedeutet die Bedingung I0 (g - 1) = K daß die untere Hälfte B10 von B1 zum blockweisen Abfragen ansteht, wenn Ιυ in BIl liegt, denn BIO ist vollständig in dem Segment Sl enthalten. Der Block B 10 kann über die Adresse /t. erreicht werden. In diesem Fall muß das Bit I1 (g-l) als logisch 0 interpretiert und »dont care« states D(O = 1 für Ä - 2 > / > 0 [ζ. B. für alle Bits rechts von der Stelle (g — I)] benutzt werden.On the other hand, the condition I 0 (g − 1) = K means that the lower half B10 of B1 is available for interrogation in blocks if Ι υ is in BI1, because BIO is completely contained in segment S1. The block B 10 can be accessed via the address / t . can be achieved. In this case the bit I 1 (gl) must be interpreted as logical 0 and "don't care" states D (O = 1 for - 2>/> 0 [ζ. B. for all bits to the right of the position (g - I )] to be used.

Die Bedingung I1. (g — I) = 0 zeigt, daß im oberen Segment Sl kein Block der Größe 2S~' existiert.The condition I 1 . (g - I) = 0 shows that there is no block of size 2 S ~ 'in the upper segment S1.

Liegt die Adresse /; in der unteren Hälfte BOO von Ö0. dann ist das Bit /,(,?— 1) auf logisch 0 gesetzt,If the address is / ; in the lower half BOO of Ö0. then the bit /, (,? - 1) is set to logic 0,

ίο so daß die obere Hälfte BOl des Blocks BO zum blockweisen Adressieren in dem unteren Segment SO ansteht.ίο so that the upper half BOl of the block BO to block-wise addressing is pending in the lower segment SO.

Ist der Block zu adressieren, muß /,_(g—1) auf logisch 1 gesetzt werden unter gleichzeitigem Setzen von »dont care« states D(i) = 1 für g-2 > ι > 0.If the block is to be addressed, /, _ (g-1) must be set to logical 1 while simultaneously setting "don't care" states D (i) = 1 for g-2>ι> 0.

Die Bedingung /, (g — 1) = 1 zeigt, daß im unterenThe condition /, (g - 1) = 1 shows that in the lower

Segment SO ein Block der Größe 29^1 nicht existiert.Segment SO a block of size 2 9 ^ 1 does not exist.

Dieses Schema wird nacheinander auf alle BitsThis scheme is applied sequentially to all bits

g — 1 > ι > 0 der Adressen I1, und /, angewandt und die gesamte Blockstruktur des Segmentes MEM (I1- XA1 + 1) bestimmt. Z1-I und IL+\ liegen immer unter der oberen Grenze Z1- bzw. über der unteren Grenze I1 eines Blockes. Zum ordnungsgemäßen Einschließen von I1- und /, in die Blockstruktur müssen deshalb die Adressen I1 + I und /, - 1 untersucht werden. g - 1>ι> 0 of the addresses I 1 , and /, applied and the entire block structure of the segment MEM (I 1 - XA 1 + 1) determined. Z 1 -I and I L + \ are always below the upper limit Z 1 - or above the lower limit I 1 of a block. In order to properly include I 1 - and /, in the block structure, the addresses I 1 + I and /, - 1 must therefore be examined.

Das Blockdiagramm der Speicherverwaltungseinheit MMU, die nach dem an Hand der Fig. 1 erläuterten Prinzip arbeitet, ist in F i g. 2 dargestellt. Die Speicherverwaltungseinheit enthält eine arithmetisch-logische Funktionseinheit und Datensammelleitungen, die jeweils für /1 Bits ausgelegt sind, wobei η durch eine Arbeitsspeicherkapazität von 2" adressierbaren Speicherzellen bestimmt ist.The block diagram of the memory management unit MMU, which operates according to the principle explained with reference to FIG. 1, is shown in FIG. 2 shown. The memory management unit contains an arithmetic-logic functional unit and data bus lines which are each designed for / 1 bits, where η is determined by a working memory capacity of 2 "addressable memory cells.

Das Steuerwerk CONTR führt abhängig von den Zuständen der Status Flip-Flops STATl einen der Modes SEARCH. ERASE, ERBAS, WRITE aus oder durchläuft eine Warteschleife.The control unit CONTR executes one of the SEARCH modes depending on the states of the status flip-flops STATl. ERASE, ERBAS, WRITE or goes through a waiting loop.

Der Mode SEARCH bearbeitet eine Speicherplatzanforderung durch simultanes Absuchen der Speicherzustandsregisters MEM und des Basisadressen markierungsregisters BAS nach einem nur mit »0« besetzten Segment vorgegebener Länge; der Mode ERASE bearbeitet eine Speicherplatzrückgäbe durch Rückgeben eines vorgegebenen, fortlaufend mit »l« besetzten Segmentes in MEM auf »0«. Der Mode ERBAS sucht bei der Rückgabe eines Speichersegmentes übriggebliebene Basis-Adressen (markiert durch eine »1« in der korrespondierenden Zelle in BAS) auf und veranlaßt die Freigabe des korrespondierenden Speichersegmentes. Der Mode WRITE markiert Basis-Adressen durch Einschreiben einer »1« in die entsprechende Zelle in B/IS.
Die arithmetisch-logische Funktionseinheit 1 führt die entsprechenden Mikroprogramme aus.
The SEARCH mode processes a memory space request by simultaneously searching the memory status register MEM and the base address marking register BAS for a segment of a given length that is only occupied by "0"; the ERASE mode processes a memory location return by returning a specified segment in MEM that is continuously filled with "1" to "0". When a memory segment is returned, the ERBAS mode searches for the remaining base addresses (marked by a "1" in the corresponding cell in BAS) and causes the corresponding memory segment to be released. The WRITE mode marks base addresses by writing a »1« in the corresponding cell in B / IS.
The arithmetic-logic functional unit 1 executes the corresponding microprograms.

In zwei 1-Bit Direkt-Zugriffs-Speichern, dem Speicherzustandsregister MEM und dem Basisadressenmarkierungsregister BAS, deren Operationsmode (Schreiben/Lesen) durch die vom Steuerwerk CONTR gesetzten Status-Flip-Flops STA T 2 bestimmt wird, sind Informationen über den Zustand der Speicherzellen gespeichert.In two 1-bit direct access memories, the memory status register MEM and the base address marking register BAS, the operation mode (writing / reading) of which is determined by the status flip-flops STA T 2 set by the control unit CONTR, there is information about the status of the memory cells saved.

Das Steuerwerk CONTR kann sowohl durch Ringzähler als auch durch einen Read-Only Mikropro-The control unit CONTR can be used both by means of a ring counter and a read-only micropro-

grammspeicher realisiert werden. Es arbeitet in Wechselwirkung mit dem Status-Flip-Flpps STATi, übei die der Austausch von SteuerinTormation mit dei Zentraleinheit CPU erfolgt und interne Steuerinfor-gram memory can be implemented. It works in interaction with the status flip-flops STATi, through which control information is exchanged with the central processing unit CPU and internal control information

609 642/30£609 642 / £ 30

Z4 1 öZ4 1 ö

mation abgespeichert wird. Demnach sind die Siatus-Flip-Flops 5'7.4Tl gruppiert in eine erste Gruppe, die von der Zentraleinheit CPU gesetzt und von der Speicherverwaltungseinheit MMU abgefragt wird, in eine /weite Gruppe, die von der MMU geset/t und von der CPL abgefragt wird und in eine dritte Gruppe, die von der MMU sowohl gesetzt als auch abgefragt wird.mation is saved. Accordingly, the Siatus flip-flops 5'7.4Tl are grouped into a first group, which is set by the central unit CPU and queried by the memory management unit MMU , in a / wide group, which is set by the MMU and queried by the CPL and in a third group that is both set and queried by the MMU.

Liste aller Status-Flip-Flops STATl und deren
Funktion
List of all status flip-flops STATl and their
function

a) Durch die CPL abfragbare S7',4 7'la) S7 ', 4 7'l that can be queried by the CPL

BSY - (Busy): die MMU ist mit der Abwicklung eines Mikroprogramms beschäftigt, das nur durch einen H'R/TE-Mode unterbrochen werden kann. BSY - (Busy): the MMU is busy processing a microprogram that can only be interrupted by an H'R / TE mode.

«70 = (W1VfL' Ready for Data Take Over): die MMU ist in einem Zustand, in dem Daten oder Instruktionen von der CPU angefordert werden.«70 = (W 1 VfL 'Ready for Data Take Over): the MMU is in a state in which data or instructions are being requested from the CPU.

RDB = {MMU Ready to Deliver Base Adrcssl: die MMU ist im Zustand eines beendeten SEARCH-Modes und hat eine Basis-Adresse fiir die CPL1. RDB = {MMU Ready to Deliver Base Adrcssl: the MMU is in the state of a completed SEARCH mode and has a base address for the CPL 1 .

MCS =r' (Memory Cycle Stealing): die MMU benötigt einen Arbeitsspeicherzugriff. MCS = r '(Memory Cycle Stealing): the MMU requires access to the main memory.

SiVF = (String Notot Found): ein Speichersegment der geförderten Länge ist nicht vorhanden. SiVF = (String Notot Found): a memory segment the conveyed length does not exist.

b) Durch die MMU abfragbare .ST.4 7'1b) The MMU queryable .ST.4 7'1

CPL' = Die CPL' hat einen Auftrug Tür die MMU. CPL '= The CPL' has an order door the MMU.

SRH = Das Mikroprogramm SEARCH ist aktiviert. SRH = The SEARCH microprogram is activated.

ERA = Das MP ERASE ist aktiviert. ERA = The MP ERASE is activated.

ERB - Das MP ERBAS ist aktiviert.
WRT = Der Mode WRITE »stiehlt« von der MMU einen Zyklus zum Setzen von BAS.
ERB - The MP ERBAS is activated.
WRT = The WRITE mode "steals" a cycle for setting BAS from the MMU.

BLO — (Base Adress Left Over): die Abarbeitung mindestens einer durch Segment-Freigabe übriggebliebenen Basisadresse steht an. BLO - (Base Address Left Over): the processing of at least one base address left over by the segment release is pending.

Von diesen Status-FF werdenFrom these status FF will be

WRT durch die CPL' gesetzt und zurückgesetzt. WRT set and reset by the CPL '.

CPL und SRW durch die CPU gesetzt und durch die MMU zurückgesetzt.CPL and SRW set by the CPU and reset by the MMU.

ERB und BLO durch die MMU gesetzt und zurückgesetzt. ERB and BLO set and reset by the MMU.

ER.4 entweder von der CPL' oder von der MMU gesetzt, aber nur von der MMU zurückgesetzt.ER.4 set either by the CPL 'or by the MMU , but only reset by the MMU.

Über eine zweite Gruppe von Status-FF IST.4T2) setzt das Steuerwerk die für den jeweiligen Mode notwendige Ansteuerung der Speicher MEM und BAS ab, die für die Dauer des Modes aufrechterhalten wird.Via a second group of status FF IST.4T2), the control unit sends the activation of the memories MEM and BAS necessary for the respective mode, which is maintained for the duration of the mode.

Die Funktionen dieser Status-FF sind The functions of this status FF are

MMA = (MEM Access); der Speicher MEM wird MMA = (MEM Access); the memory MEM becomes

adressiert im Lese-Mode.
BSA = (B^AS Access); der Speicher BAS wird
addressed in read mode.
BSA = (B ^ AS Access); the memory BAS becomes

adressiert im Lese-Mode.
MMW = (MEM. WRITE); falls MMA gesetzt ist,
addressed in read mode.
MMW = (MEM. WRITE); if MMA is set,

wird MEM beschrieben.is described in MEM.

BSW = (BAS WRITE); falls BSA gesetzt ist. wird BAS beschrieben. BSW = (BAS WRITE); if BSA is set. is described in BAS.

Zur Steuerung des Mikroprogrammablaufs übernimmt das Steuerwerk CONTR noch eine Reihe von Signalen aus der arithmetisch-logischen Einheit 1, die diverse Registerzustande identiliziercn und zur konditionellen Verzweigung der MP dienen.
Die arithmetisch-logische Funktionseinheit I ist funktionell gegliedert in eine Addierschaltung 2, in der alle arithmetischen Operationen zur Vorbereitung des Algorithmus zum Suchen von Folgen unbesetzter Speicherplätze (String-Search-Algorithmus) ausgeführt werden, sowie eine Zeigerschallung 3. die die Ausführung des String-Scarch-Algorithmus. d. h. insbesondere das block weise Adressieren der Register MEM und S.4S übernimmt. Schnittstelle für die Addierschaltung und die Zeigerschaltung ist das Speichcradreß-Register MAR.
To control the microprogram sequence , the control unit CONTR also takes over a series of signals from the arithmetic-logic unit 1, which identify various register states and are used for the conditional branching of the MP .
The arithmetic-logic functional unit I is functionally divided into an adder circuit 2, in which all arithmetic operations to prepare the algorithm for searching for sequences of unoccupied memory locations (string search algorithm) are carried out, as well as a pointer sound 3. which enables the execution of the string Scarch algorithm. ie in particular the block-wise addressing of the registers MEM and S.4S takes over. The interface for the adding circuit and the pointer circuit is the memory address register MAR.

Die Addierschaltung 2 besteht aus dem logischen Addierwerk ADD, den allgemeinen Registern RO, Rl. R2. R3, deren Inhalt dem rechten Eingang des Addierwerkes zugeführt wird, dem Addierer-Puffer-Register (Adder Output Latches AOL) sowie dem Adreßregister A7.4R als Akkumulator. Der Inhalt vom ;V/.4R kann dem linken Eingang des Addierwerkes ADD direkt zugeführt werden. Die Register RO. Rl. R2. R3 werden über die Datensammelleitung 4 {DATABUS) entweder vom Puffer-Register BLF oder vom Addierer-Pufferregister AOL beschrieben. The adder circuit 2 consists of the logical adder ADD, the general registers RO, Rl. R2. R3, the content of which is fed to the right input of the adder, the adder buffer register (adder output latches AOL) and the address register A7.4R as an accumulator. The content of; V / .4R can be fed directly to the left input of the adder ADD. The registers RO. Rl. R2. R3 are written to via the data bus 4 (DATABUS) either from the buffer register BLF or from the adder buffer register AOL .

Die Zeigerschaltung 3 erzeugt aus dem Inhalt des Speicher-Adreß-Registers MAR mit Hilfe des in dem Schieberegister SPR geführten Zeigers die in den Speicherregistern MEM bzw: B.4S wirksam werdenden Adressen und führt selbsttätig die Abtastung der Datenblöcke aus.
Der Inhalt des Schieberegisters SPR wird über
The pointer circuit 3 uses the content of the memory address register MAR to generate the addresses which become effective in the memory registers MEM or B.4S with the aid of the pointer in the shift register SPR and automatically scans the data blocks.
The content of the shift register SPR is over

die Datensammelleitung PBUS dem Register MAR sowie den logischen Netzwerken EOR. D und COMP simultan zugeführt. Gemäß dem angegebenen String-Search-Algorithmus wird die Zeigerposition SPRk dazu benutzt, im Mode ERBAS das Bit MAR{k) jethe data bus PBUS to the register MAR and the logical networks EOR. D and COMP fed simultaneously. According to the specified string search algorithm, the pointer position SPR k is used in the ERBAS mode, the bit MAR {k) je

4c nach Bedarf auf logisch 1 oder logisch 0 zu setzen; mit der Dont care Logik D die dont care Zustande Dk zu erzeugen, den Zustand D = 0: d. h. die Zeigerposition k = 0 zu identifizieren und dem Steuerwerk CONTR zuzuführen, um die Beendigung einer Seg-4c to be set to logic 1 or logic 0 as required; using the don't care logic D to generate the don't care states D k , the state D = 0: ie to identify the pointer position k = 0 and to supply it to the control unit CONTR in order to terminate a segment

ment-Abfrage zu indizieren; über das logische Netzwerk EOR das Adreß-Bit MAR(k) logisch zu invertieren und gleichzeitig über EOR den Inhalt von MAR mit dem der Zeigerposition koinzidenten Bit auszulesen und dem Steuerwerk CONTR zur Aus-Wertung zu übertragen, und im Vergleicher COMP einen Vergleich der Zeigerposition SPRk mit dem Inhalt des Grenzwertregisters G, in dem das die zwei Segmente Sl und SO von Speicherplätzen trennende Bit g gespeichert ist, vorzunehmen und ein entspre-index ment query; to logically invert the address bit MAR (k) via the logical network EOR and at the same time to read out the content of MAR with the bit coincident with the pointer position via EOR and to transmit it to the control unit CONTR for evaluation, and a comparison of the pointer position in the comparator COMP SPR k with the content of the limit value register G, in which the bit g separating the two segments S1 and SO from memory locations is stored, and a corresponding

chendes Sieuer-Signal an das Steuenverk CONTR abzugeben.Send the appropriate Sieuer signal to the control unit CONTR .

Um im Extremfall den gesamten Adreßraum mit »dont care«-Zuständen überdecken zu können, wie es z. B. am Beginn des Modes ERBAS erforderlich wird, um festzustellen, ob eine übriggebliebene Basis-Adresse existiert) müssen sowohl das Schieberegister SPR als auch die Dalensammelleitung Pß US zwischen SPR und dem logischen Netzwerk D auf w + 1 Bits dimensioniert sein, d.h. SPR(Om) und PBUS(Q:n). In order to be able to cover the entire address space with "dont care" states in extreme cases , as is the case e.g. B. is required at the beginning of the ERBAS mode to determine whether a remaining base address exists) both the shift register SPR and the dale bus line Pß US between SPR and the logical network D must be dimensioned to w + 1 bits, i.e. SPR ( Om) and PBUS (Q: n).

Die Adressierlogik ADRL erzeugt aus von den logischen Netzwerken EOR und D erzeugten Signal-Mustern gemäß Gleichung (1) die den Adreß-Leitungen X und X in den jeweiligen Adreß-DekodierernThe addressing logic ADRL generates the address lines X and X in the respective address decoders from signal patterns generated by the logic networks EOR and D in accordance with equation (1)

der Speicher MEM und IiAS zuzuführenden Signale. Auf den Leitungen All) werden die Adreß-Bits [MARH) ® SPRH) mit den dont care states DH). und auf den Leitungen .Yl/) werden die invertierten Adreß-Bits [MAR[I) - SPRlI) mit DH) ODER-vcrknüpft. signals to be supplied to the memory MEM and IiAS. The address bits [MARH) ® SPRH) with the dont care states DH) are on the lines All). and on the lines n .Yl /) the inverted address bits [MAR [I) - SPRlI) are ORed with DH) .

Falls der.Mode WRITE anliegt ld h. HR/ 1». wird die oben angeführte Adresse blockiert und statt dessen die Datensammelleitung 4 \DAIABLS) auf A und X in der Form Al/)' DA T Alii S Π), ίο .Yd')* DATABUS[Ii durchgeschaltet, wodurch eine um der ("PL' über den / 0-Puffer Bi I ausgegebene Basis-Adresse direkt in dem Speicherregister IiAS markiert werden kann.If the mode WRITE is present ld h. HR / 1 ». the above address is blocked and instead the data bus line 4 \ DAIABLS) to A and X in the form Al /) ' DA T Alii S Π), ίο .Yd') * DATABUS [Ii , whereby one around the (" PL 'can be marked directly in the memory register IiAS via the / 0 buffer Bi I output base address.

Die in Fi g. 3 dargestellte exklusive ODER-Schal- '5 tung EOR bewirkt die für den String-Search-Algorithmus notwendige Invertierung des Bits A des Adreßregisters MAR. das mil der Zeigerposilion A zusammenfällt. Gleichzeitig wird der Inhalt von AMRlA) dem Steuerwerk "(TOΛ 7 R als BRANCH-Bedingung zugeführt, die entscheidet, ob die Position A einen Speicherregisterzugriff erfordert oder ohne Aktion übersprungen wird.The in Fi g. 3 shown exclusive OR circuit EOR causes the necessary for the string search algorithm inversion of the bit A of the address register MAR. which coincides with pointer position A. At the same time, the content of AMRlA) is supplied to the control unit "(TOΛ 7 R as a BRANCH condition, which decides whether position A requires a memory register access or is skipped without any action.

Beide Funktionen werden nach F i g. 3 realisiert durch eine NAND-Gatter-Schaltung für die exklu- ;5 sive ODER-Funktion. die gleichzeitig EOR H) = MARU) θ SPR[i) und "am Ausgang i 1 des ersten NAND-Gaiters (10) ein Signal MARU)- SPR[i) erzeugt: letzteres wird durch einen unmittelbarfolgenden Inverter 12 komplementiert zu MARH) ■ SPR (I). Eine solche Schaltung existiert für jede Binärstelle I.Both functions are shown in FIG. 3 realized by a NAND gate circuit for the exclusive ; 5 sive OR function. which simultaneously EOR H) = MARU) θ SPR [i) and "at the output i 1 of the first NAND gate (10 ) generates a signal MARU) - SPR [i) : the latter is complemented by an immediately following inverter 12 to MARH) ■ SPR (I). Such a circuit exists for every binary digit I.

Steht der Zeiger in Position I = A. dann ist gemäß der Definition des Inhaltes des Schieberegisters SPR der Ausgang EOR (A) - MAR (A). aber Tür alle I == A gilt EORU) = MAR[I). Alle Ausgänge EORHl werden der Adressierlogik ADRL zugeführt.If the pointer is in position I = A. then, according to the definition of the content of the shift register SPR, the output is EOR (A) - MAR (A). but door all I == A applies EORU) = MAR [I). All outputs EORHl are fed to the addressing logic ADRL.

Die Signale MAR'U) ■ SPR H) werden für alle Binärstellen I über eine Schutzdiode 13 auf einer Sammelschiene 14 zusammengeführt und dort logisch summiert zu ,,^1 The signals MAR'U) ■ SPR H) are brought together for all binary digits I via a protective diode 13 on a busbar 14 and there logically summed to ,, ^ 1

^ .YMR(il ■ SPRU). ^ .YMR (il ■ SPRU).

ι = 0 ι = 0

Da nur SPR(A) = 1. liegt auf der Sammelschiene genau das Signal MAR \k) an. das zur Interpretation dem Steuerwerk CONTR zugeführt wird.Since only SPR (A) = 1. is exactly the signal MAR \ k) on the busbar. which is fed to the control unit CONTR for interpretation.

Die in F i g. 4 dargestellte »dont care«-Logik D erzeugt aus der Zeigerstellung A des Schieberegisters SPR die für die Blockadressierung benötigten »dont care« states, die der Adressierlogik ADRL zusammen mit den Ausgängen von EOR zugeführt werden. Gemäß Definition in Gleichung (2) müssen alle D(i) rechts von der Zeigerstellung k ein Signal logisch 1The in F i g. The “don't care” logic D shown in Figure 4 generates the “don't care” states required for block addressing from the pointer position A of the shift register SPR, which are fed to the addressing logic ADRL together with the outputs of EOR. According to the definition in equation (2), all D (i) to the right of the pointer position k must have a logical 1 signal

führen, während I) (A) selbst sowie alle /Ju) links von /.MA) ein Signal logisch 0 führen. Dies wird erreicht durch eine Kaskade von NOR-NAND-Gattern. die die Ausgänge des Schieberegisters SPR (I) mit den Ausgängen der jeweils vorangehenden Kaskadenslulen zusammenführen. Dadurch führen die Ausgänge aller Kaskadenstufen, die der Stufe A folgen, logisch 1. alle davoiliegeiiden Kaskadenstufenausgänge logisch 0. Von den Ausgängen der Kaskadensiufcn können demnach die D(I) direkt abgegriffen werden.lead, while I) (A) itself and all / Ju) to the left of /.MA) carry a logic 0 signal. This is achieved by a cascade of NOR-NAND gates. which merge the outputs of the shift register SPR (I) with the outputs of the respective preceding cascade columns. As a result, the outputs of all cascade levels following level A are logically 1. All of the cascade level outputs are logically 0. The D (I) can therefore be tapped directly from the outputs of the cascade levels.

Der Ausgang des letzten Kaskadcnglicdcs ist logisch 0. falls eine Zeigerposilion SPR(A) = 1 existiert, aber logisch 1. falls der Zeiger nach links (A > ii-l) oder rechts (A < 0) aus .S'PR herauswandert. Der letztere Fall (nur dieser tritt auf bei fehlerfreier Operation der Speichcrvervvaltungseinheil MMU) indiziert das F.nde einer Segmentbearbeitung (vgl. Algorithmus), weshalb der letzte Kaskadenausgang dem Steuerwerk CONTR zugeführt wird.The output of the last Kaskadcnglicdcs is logically 0. if a pointer position SPR (A) = 1 exists, but logically 1. if the pointer wanders out of S'PR to the left (A> ii-1) or right (A <0). The latter case (only this occurs with error-free operation of the memory management unit MMU) indicates the end of segment processing (see algorithm), which is why the last cascade output is fed to the control unit CONTR.

Die aus einer NAND-Logik bestehende Vergleichsschaltung COMP stellt fest, ob die Zeigerstellung SPRk mit dem Inhalt des Registers G übereinstimmt. Zu diesem Zweck werden die EOR-Terme SPRU) Θ CtU) für alle 0 < ί < » - 1 gebildet und auf einer Sammelschine logisch summiert. Da gemäß Definition sowohl SPR als auch G nur genau ein Bit enthalten das logisch 1 ist. wird nur für den Fall SPR(A) = G (A) die Sammelschiene auf logisch 0 gesetzt, in allen anderen Fällen fühn sie logisch 1. Die Position SPR(A) = G(A) bewirkt im Steuerwerk CONTR die Umkehrung der Zeigcrlaufriehtung. The comparison circuit COMP , which consists of a NAND logic, determines whether the pointer position SPR k matches the content of the G register. For this purpose, the EOR terms SPRU) Θ CtU) are formed for all 0 <ί <»- 1 and logically summed up on a bus bar. Since, according to the definition, both SPR and G contain exactly one bit that is logical 1. is just in case SPR (A) = G (A) set the bus to logic 0, in all other cases they fühn logic 1. The position SPR (A) = G (A) results in the control unit CONTR reversing the Zeigcrlaufriehtung.

Die Adressierlogik ADRL nach F i g. 5 verknüpft die in EOR produzierte effektive Adresse I1.,, = M AR © SPR gemäß Gleichung (1) mit den «dom carc<· states D und führt den Adreßleitungen A. A' den jeweiligen Adreßdekodiercr der Speicher MEM und BAS zu. Für den H'R/7'E-Mode ist außerdem die schnell..- Einspeisung einer von der CPL' gelieferten Basis-Adresse in X und X bei gleichzeitiger Blockierung der von EOR und D erzeugten Adresse möglich.The addressing logic ADRL according to FIG. 5 links the effective address I 1. ,, = M AR © SPR produced in EOR according to equation (1) with the dom carc <· states D and supplies the address lines A. A 'with the respective address decoders of the memories MEM and BAS . For the H'R / 7'E mode, it is also possible to ...- feed a base address supplied by the CPL 'into X and X while simultaneously blocking the address generated by EOR and D.

Die Adressierlogik ADLR führt die folgenden logischen Verknüpfungen aus:The ADLR addressing logic performs the following logical operations:

XU) = WRT ■ DATABUSU) XU) = W RT ■ D ATABUSU)

+ WRT (EOR(O + D U)- XU) = WRT DATABUSU) + WR T (EOR (O + D U) - XU) = WRT DA TABUS U)

+ WRT (EORU) + DU). + WRT (EORU) + DU).

d.h. mit WRT (szeliefert durch das entsprechende STATLS-Flip-Flop) wird der DATABUS auf A'. X durchgeschaltet, und mit WRT, d. h. für jeden anderen Mode der Speichervcrwaltungseinheit MMU. wird die Adresse gemäß Gleichung (1) gebildet.ie with WRT (supplied by the corresponding STA TLS flip-flop) the D ATABUS is set to A '. X switched through, and with WRT, i. H. for any other mode of the memory management unit MMU. the address is formed according to equation (1).

Hierzu 4 BIaU Zeichnungen4 BIaU drawings

.!,'Sf&isüfe.!, 'Sf & isüfe

Claims (7)

Patentansprüche:Patent claims: L SchaJtungsanordnung zum Verwalten des Arbeitsspeichers einer Rechenanlage, also sowohl zum Aufsuchen eines unbesetzten Speichersegmentes, dessen Länge L, gemessen in der Anzahl der unmittelbar aufeinanderfolgenden Adressen, mindestens die von dem anfordernden Programm geforderte Länge L0 besitzt, zur Einordnung dieses Segmentes unter die besetzten Segmente und übergabe seiner Basisadresse an das Programm, als auch zur Freigabe eines Speichersegmentes durch Angabe seiner Basisadresse und Segmentlänge, dessen Vereinigung mit sich anschließenden unbesetzten Segmenten sowie zur gesonderten Verwaltung derjenigen besetzten Adressen des Arbeitespeichers, unter denen Basisadressen, d. h., Zeiger auf andere besetzte Sneichersegmente. abgespeichert sind, dadurch gekennzeichnet, daß in einem ersten Einbit-Direktzugriffsspeicher, dem Speicherzustandsregister (MEM). das jeder Adresse des Arbeitsspeichers genau ein Bit zuordnet, eine besetzte Arbeitsspeicheradresse durch eine »!«und eine unbesetzte Adresse durch eine»O«markiert ist, daß in einem zweiten Einbit-Direktzugriffsspeicher, dem Basisadressenmarkierungsregister (BAS), das jeder Adresse des Arbeitsspeichers genau ein Bit zuordnet, jede besetzte Arbeitsspeicheradresse, unter der eine Basisadresse abgespeichert ist. durch eine»1«, jede andere besetzte oder unbesetzte Adresse durch eine »0« markiert ist, daß die Zustande im ersten und zweiten Einbit-Direktzugriffsspeicher (MEM. BAS) durch Mikroprogramme Suchen, Löschen. Löschen Basisadresse sowie eine extern gesteuerte Betriebsart Schreiben Basisadresse abfragbar und veränderbar sind, daß das Mikroprogramm Suchen nach Auslösung durch einen externen Befehl und Übergabe einer Segmentlänge L0 beginnend an einer beliebigen Adresse simultan den ersten und zweiten Einbit-Direktzugriffsspeicher (MEM. BAS) nach einem zusammenhängenden, in beiden Speichern mit»O«markierten Segment der Länge L0 absucht, durch Addieren von L0 zu der Anfangsadresse und schrittweises Abfragen der Registerinhalte von dieser neuen Adresse aus in Richtung monoton abnehmender Adressen, daß vor Abfragen von L0 Adressen dieser Abfragevorgang an der höchsten Adresse unter der im Speicherzu-Standsregister (MEM) oder im Basisadressenmarkierungsregister (BAS) eine »I« steht abgebrochen wird, daß zu dieser Adresse L0 addiert und der Abfragevorgang von dieser neuen Adresse in gleicher Weise wieder aufgenommen wird, und daß dieser Vorgang so lange wiederholt wird, bis entweder ein Segment der Länge L0 gefunden ist und alle zu diesem Segment gehörenden Bits im Speicherzustandsregister (MEM) auf»!« gesetzt werden und die niedrigste Adresse des Segmentes (io dem anfragenden Programm als Basisadresse zur Verfügung gestellt wird oder ein Segment der Länge L0 nicht gefunden und eine Fehlmeldung abgegeben wird, daß die extern gesteuerte Betriebsart Schreiben Basisadresse simultan mildem Laden einer Basisadresse unter einer Adresse des Arbeitsspeichers das entsprechende Bit im Basisadressenmarkierungsregister (BAS) auf »I« setzt, daß das Mikroprogramm Löschen nach Übergabe einer Basisadresse und einer Segmentlunge die entsprechenden Bits des Speicherzustandsregisters [MEM). beginnend an der um die Segment lunge erhöhten Basisadresse und in der Reihenfolge monoton abnehmender Adressen, von »1 k<-auf»0« setzt und damit automatisch mit sich unmittelbar anschließenden, im Speicherzustandsregister [MEM) mit »0« markierten Segmenten vereinigt, daß das Mikroprogramm Löschen Basisadresse die nach Ausführung von Löschen möglicherweise freigesetzten Basisadressen aufsucht, also Zustände, die durch eine »0« im Speicherzustandsregister (MEM) und eine »1« im Basisadressenmarkierungsregister [BAS) unter der gleichen Adresse gekennzeichnet sind, daß es diese in der Reihenfolge monoton abnehmender Adressen in der Weise abarbeitet, daß das Mikroprogramm Löschen jedes der Segmente, auf die diese Basisadressen zeigen, löscht und die Markierungen im Basisadressenmarkierungsregister [BAS) von »I« auf »0« setzt, daß die Mikroprogramme Suchen, Löschen, Löschen Basisadresse einen schnellen Blockadressierungsmechanismus benutzen und in der Dekodierlogik der Einbitsspeicher [MEM, DAS) jedes Adreßbit über_ eine erste und eine zweite Adreßleitung |Λ\ X) einfuhren und die erste auf»l« und die zweite auf »0« gesetzt ist. wenn das Adreßbit »1« ist. und umgekehrt die eiste auf»0« und die zweite auf»l« gesetzt ist, wenn das Adreßbit »0« ist, und beide auf»!« gesetzt sind, wenn das Adreßbit unberücksichtigt bleibt, also der Block von Adressen angesprochen wird, die in allen berücksichtigten Bits übereinstimmen und in dem alle Adreßkombinationen bezüglich der unberücksichtigten Bits auftreten, daß zur Ausführung des Blockadressierungsmechanismus in einem Vorwärts-Rückwärtsschieberegister (SPR) ein Zeiger dadurch gekennzeichnet ist, daß nur eine Bitposition auf »1« und alle anderen auf »0« gesetzt sind, daß ein angeschlossenes erstes logisches Netzwerk (ZJ), das jeder Binärstelle des Schieberegisters einen Ausgang zuordnet, an allen Ausgängen rechts von dem im Schieberegister (SPR) auf »1« gesetzten Bits die Signale »1« und alle anderen Ausgänge die Signale »0« führen, daß über die Ausgänge des ersten logischen Netzwerkes (D) und eine Adressierlogik [ADRL) an beide einer Binärstelle zugehörigen Eingänge (X, X) der Dekodierlogik der Einbit-Direktzugriffsspeicher [MEM. BAS) eine »!«angelegt ist. die mit den auf»I«gesetzten Ausgängen des ersten logischen Netzwerkes (D) korrespondieren, daß den verbleibenden Binärstellen der Dekodierlogik der Inhalt der korrespondierenden Binärstellen eines Adreßregisters (MAR) über ein zweites logisches Netzwerk (EOR) und über die Adressierlogik (ADRL) zugeführt wird, daß mit Hilfe dieser Einrichtungen ein Speichersegment mit vorgegebener oberer und unterer Adresse sequentiell in Richtung abnehmender Adressen derart blockweise adressiert ist, daß zunächst die höchste Binärstelle, in der sich diese beiden Adressen unterscheiden, festgestellt und in einem Grenzwertregister (G) gespeichert wird, daß die um »!«erhöhte obere Segmentadresse in das Adreßregister (MAR) geladen und gleichzeitig der Zeiger in dem Schieberegister (SPR) L circuit arrangement for managing the main memory of a computer system, i.e. both for searching for an unoccupied memory segment whose length L, measured in the number of immediately consecutive addresses, has at least the length L 0 required by the requesting program, for classifying this segment among the occupied segments and transfer of its base address to the program, as well as to release a memory segment by specifying its base address and segment length, its combination with subsequent unoccupied segments and for the separate management of those occupied addresses of the working memory under which base addresses, i.e. pointers to other occupied memory segments. are stored, characterized in that in a first one-bit random access memory, the memory status register (MEM). the each address of the memory exactly one bit assigns an occupied memory address by a "!" and an unoccupied address is marked by a "O", that in a second one-bit random access memory, the base address tag register (BAS), which each address of the memory exactly assigns a bit to each occupied memory address under which a base address is stored. by a "1", every other occupied or unoccupied address is marked by a "0" that the states in the first and second one-bit random access memory (MEM. BAS) by microprograms search, delete. Delete base address as well as an externally controlled operating mode write base address can be queried and changed that the microprogram searches for triggering by an external command and transfer of a segment length L 0 starting at any address simultaneously the first and second one-bit random access memory ( MEM.BAS) for a contiguous, marked in both memories with the "O" segment of length L 0 scans, by adding L 0 to the start address and stepwise visits to the register contents of this new address in the direction of monotonously decreasing addresses that, prior visits of L 0 addresses this polling operation at the highest address under which there is an "I" in the memory status register (MEM) or in the base address marking register (BAS), an "I" is aborted, that L 0 is added to this address and the query process from this new address is resumed in the same way, and that this process is repeated until either one segment of length L 0 has been found and all bits belonging to this segment in the memory status register (MEM) are set to "!" and the lowest address of the segment (io is made available to the requesting program as a base address or a segment of length L 0 is not found and an error message is issued that the externally controlled operating mode write base address simultaneously mildly loading a base address under an address in the main memory sets the corresponding bit in the base address marking register (BAS) to "I", that the microprogram delete after transferring a base address and a segment lung the corresponding Memory Status Register [MEM] bits. starting at the base address increased by the segment lung and in the order of monotonically decreasing addresses, from "1 k" to "0" and thus automatically combined with the immediately following segments marked with "0" in the memory status register [MEM) that the microprogram delete base address searches for the base addresses that may have been released after the execution of delete, i.e. states that are identified by a "0" in the memory status register (MEM) and a "1" in the base address marking register [BAS) under the same address, so that these are in the Processes the sequence of monotonically decreasing addresses in such a way that the deletion microprogram deletes each of the segments to which these base addresses point and sets the markings in the base address marker register [BAS) from "I" to "0", that the microprograms search, delete, delete Base address use a fast block addressing mechanism and in the decoding logic the one-bit memory [MEM, DAS) introduce each address bit via a first and a second address line | Λ \ X) and the first is set to "1" and the second to "0". when the address bit is "1". and vice versa, the first is set to "0" and the second to "1" if the address bit is "0", and both are set to "!" if the address bit is ignored, i.e. the block of addresses is addressed which coincide in all considered bits and in which all address combinations occur with regard to the unconsidered bits, that for the execution of the block addressing mechanism in a forward-backward shift register (SPR) a pointer is characterized in that only one bit position is set to "1" and all others to "0" are set that a connected first logical network (ZJ), which assigns an output to each binary digit of the shift register, the signals “1” at all outputs to the right of the bit set to “1” in the shift register (SPR) and all other outputs the signals "0" lead that via the outputs of the first logic network (D) and an addressing logic [ADRL) to both inputs (X, X) of the decoding logic belonging to a binary digit of the Ei nbit random access memory [MEM. BAS) a "!" Is created. which correspond to the outputs of the first logical network (D) set to "I", so that the remaining binary digits of the decoding logic are supplied with the content of the corresponding binary digits of an address register (MAR) via a second logical network (EOR) and via the addressing logic (ADRL) is that with the help of these devices a memory segment with a predetermined upper and lower address is sequentially addressed in blocks in the direction of decreasing addresses in such a way that first the highest binary digit in which these two addresses differ is determined and stored in a limit value register (G), that the upper segment address increased by »!« is loaded into the address register (MAR) and at the same time the pointer in the shift register (SPR) auf die äußerste rechte Binarstelle gesetzt und ■ on dort schrittweise nach links verschoben vsird. bis er auf die im Grenzweriregister (Gl ge-,peicherte Binarstelle trifft, daü bei jedem dieser Schritte das mit dem Zeiger im Schieberegister < \SPR) koinzidierende Bit im Adreßregister IΛ/4/ϊι abgefragt wird, daß immer dann, wenn dieses Bit auf»l« gesetzt ist. eine Adressierung der Einhitspeicher (Α/£Λ/. HASi mit den in der Adressierlogik [ADRL) gebildeten Eingangssignalen für die "o Dekodierlogik durchgeführt wird, wobei das mit dem Zeiger zusammenfallende Bit des Adreßregisters (AMR) im /weiten logischen Net/werk [EOR) invertiert wird, daß eine»0« ohne Adressierung überfangen wird. daß. nachdem der Zei- i> ger auf die im Grenzwertregister (Cl gespeicherte Binärstel;e trifft, die um ·>\" verminderte untere Adresse des Segmentes im Adreßregister (AMi?) geladen wird und daß diese Adresse von dem schrittweise nach rechts bewegten Zeiger abgefragt wird, daß einC'O'im Ad.eßregister (AMRl mit dem zweiten logischen Netzwerk (EORI logisch in eine »1« verwandelt wird und eine Adressierung bewirkt, während eine »1« übergangen wird, daß dieser Vorgang beendet ist, wenn entweder der Zeiger auf die äußerste rechte Position zurückkehrt, oder wenn der Vorgang anderweitig abgebrochen wird, daß eine Gruppe von Statusflipflops (STM72) angibt, ob nur einer oder beide der Einbitspeicher (AiEA/, BAS) adressiert wird. und ob die Inhalte der Speicherregister gelesen oder geschrieben werden, daß eine arithmetisch logische Funktionseinheit (1) alle Adreßberechnungen sowie das Setzen von Anfangszuständen vornimmt und daß eine Steuereinheit (COMTR) die Ablaufsteuerung der Mikroprogramme fur alle Vorgänge übernimmt und daß eine erste Gruppe von extern und/oder intern gesetzten Statusflipflops [STATl) die Mikroprogramme auslöst.is set to the rightmost binary place and ■ is shifted there step by step to the left. until it encounters the binary digit stored in the limit value register (Gl, so that with each of these steps the bit coinciding with the pointer in the shift register < \ SPR) is queried in the address register IΛ / 4 / ϊι, that whenever this bit occurs "L" is set. an addressing of the unit memory (Α / £ Λ /. HASi with the input signals formed in the addressing logic [ADRL) for the "o decoding logic is carried out, the bit of the address register (AMR) coinciding with the pointer in the / wide logical network [ EOR) is inverted, that "is flashed 0" without addressing that after the newspaper i> ger to the stored in the limit register (Cl Binärstel;.. true e, the order ·> \ "reduced lower address of the segment in the address register ( AMi?) Is loaded and that this address is queried by the pointer, which is moved step-by-step to the right, that a C'O'in the address register (AMRl with the second logical network (EORI is logically converted into a "1" and causes addressing, while a "1" is ignored, indicating that this process is ended if either the pointer returns to the rightmost position, or if the process is otherwise aborted, that a group of status flip-flops (STM72) indicates whether only one or both of the single-bit memories (AiEA /, BAS) are addressed. and whether the contents of the memory registers are read or written, that an arithmetic logic functional unit (1) carries out all address calculations and the setting of initial states and that a control unit (COMTR) takes over the sequence control of the microprograms for all processes and that a first group of external and / or internally set status flip-flops [STATl) which triggers the microprograms. 2. Schaltungsanordnung nach Anspruch 1. dadurch gekennzeichnet, daß die Addierschaltung (2) im wesentlichen aus einem logischen Addierwerk (ADD), einer Gruppe von allgemeinen Registern (RO. Rl. R2, R3), deren Ausgänge auf einen ersten von zwei Eingängen des Addierwerkes (.4DD) schaltbar sind und deren Eingänge über eine Datensammelleitung (4) von einem Pufferregister (BUF) beschreibbar sind und einem dem Addierwerk (.4DD) nachgeschalteten Addierer-Pufferregister (AOL) besteht, dem das eine aktuelle Adresse 1 enthaltende Adreßregister (MAR) nachgeschaltet ist, dessen Inhalt auf einen zweiten Eingang des Addierwerkes (ADD) direkt zurückgeführt ist. '2. Circuit arrangement according to claim 1, characterized in that the adder circuit (2) consists essentially of a logic adder (ADD), a group of general registers (RO. Rl. R2, R3), the outputs of which to a first of two inputs of the Adding unit (.4DD) are switchable and the inputs of which can be written to via a data bus (4) from a buffer register (BUF) and an adder-buffer register (AOL) connected downstream of the adder (.4DD), to which the address register ( MAR) , the content of which is fed back directly to a second input of the adder (ADD). ' 3. Schaltungsanordnung nach Anspruch 1 und 2. dadurch gekennzeichnet, daß die Zeigerschaltung (3) im wesentlichen besteht aus dem Vorwärts-Rückwärts-SchieberegistvT (SPR) mit einem Zeiger der Form3. Circuit arrangement according to claim 1 and 2, characterized in that the pointer circuit (3) consists essentially of the forward-backward shift register (SPR) with a pointer of the form 1 für k = ι 1 for k = ι SPRk = SPR U) =SPR k = SPR U) = IoIo für/, = /,for /, = /, dem zweiten logischen Netzwerk (EOR), dem ersten louischen Netzwerk (D) zum blockweiscn Adressieren aufeinanderfolgender Bits im Speicher/ustandsregister [MEM) und im Basisndresscnmarkierungsregisiei lß.4i>) und einem Vergleicher [COMP). die über eine Dalensummcllcilung (PBLSi dem Schieberegister [SPR) nachgeschallet sind, sowie dem Grenzwertregister (Gl. in dem die Binarsielie d urch "I" markiert ist. an der sich die obere von der unteren Grenzadresse eines Speichersegmentes im höchstmöglichen Bn unterscheidet, und der Adressierlogik (.4DRLl. die aus \ on dem zweiten logischen Netzwerk (EOR I und dem ersten logischen Netzwerk (D) erzeugten Signalmustern den Adreßleitungen (.Y. Λ') des Speicherzustandsregisters (AfEM) und des Basisadressenmarkierungsregisters (ß,4S) Signale zuführen.the second logical network (EOR), the first logical network (D) for block-wise addressing of successive bits in the memory / status register [MEM) and in the base address marking register (4) and a comparator [COMP). which are resounded via a dale summation (PBLSi to the shift register [SPR) , as well as the limit value register (equation in which the binary code is marked by "I") at which the upper and lower limit address of a memory segment differs in the highest possible Bn, and Addressing logic (.4DRLl. The signal patterns generated from the second logical network (EOR I and the first logical network (D)) to the address lines (.Y. Λ ') of the memory status register (AfEM) and the base address marking register (ß, 4S) . 4. Schaltungsanordnung nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß das erste logische Netzwerk (D) aus einer Kaskadenschaltung von NOR-NAND-Gattern (17. 18) besteht, welche die Ausgange SPR[i) des Schieberegisters [SPR) mit den Ausgängen SPRd+Ii einer vorangehenden Kaskadenstufe verbinden, wobei von den 11 Ausgangen des ersten logischen Netzwerkes (D) diejenigen mit einer niederen Wertigkeit als der Zeigereingang D (i:l des Schieberegisters iSPR) auf logisch 1 und der Zeigereingang D(A;) und alle Ausgänge D(i) von höherer Wertigkeit als der Zeigereingang D(A;) auf logisch U gesetzt sind und der Ausgang der letzten Kaskadenstufe zum Indizieren des Endes einer Segmentbearbeitung auf das Steuerwerk (CONTR) geschaltet ist.4. Circuit arrangement according to one or more of claims 1 to 3, characterized in that the first logical network (D) consists of a cascade connection of NOR-NAND gates (17, 18) which the outputs SPR [i) of the shift register [ SPR) with the outputs SPRd + Ii of a preceding cascade stage, whereby of the 11 outputs of the first logical network (D) those with a lower significance than the pointer input D (i: l of the shift register iSPR) to logical 1 and the pointer input D ( A;) and all outputs D (i) of higher significance than the pointer input D (A;) are set to logic U and the output of the last cascade stage is switched to the control unit (CONTR) to indicate the end of segment processing. 5. Schaltungsanordnung nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß in dem Vergleicher [COMP) der Inhalt des Grenzwertregisters (G) mit der Zeigcrstellung k des Schieberegisters (SPR) verglichen und bei Erreichen der Identität ein Steuersignal an das Steuerwerk (CONTR) abgegeben und dadurch die Schieberichtung des Schieberegisters umgekehrt wird.5. Circuit arrangement according to one or more of claims 1 to 3, characterized in that in the comparator [COMP) the content of the limit value register (G) is compared with the pointer setting k of the shift register (SPR) and, when the identity is reached, a control signal is sent to the control unit (CONTR) and thereby the shift direction of the shift register is reversed. b. Schaltungsanordnung nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß das zweite logische Netzwerk (EOR) für jede der η Binärstellen aus einer NAND-Gatter-Schaitung für die exklusive ODER-Funktion besteht, die am Ausgang (16) des letzten NAND-Gatters(lS) ein erstes Signal (EORd) ® SPRU) und gleichzeitig am Ausgang (11) des ersten NAND-Gatters (10) ein zweites Signal Af AR U)- SPR (i) erzeugt, daß ein dem ersten NAND-Gatter (10) unmittelbar nachgeschalteter Inverter (12) das zweite Signal zu einem Signal MARU) ■ SPR (i) komplementiert und daß jeder der Ausgänge der η Inverter (12) über eine Schutzdiode (13) auf eine Sammelschiene (14) geschaltet ist. b. Circuit arrangement according to one or more of Claims 1 to 5, characterized in that the second logic network (EOR) for each of the η binary digits consists of a NAND gate circuit for the exclusive OR function which is at the output (16) of the last NAND gate (IS) a first signal (EORd) ® SPRU) and at the same time at the output (11) of the first NAND gate (10) a second signal Af AR U) - SPR (i) generated that a the first NAND -Gate (10) immediately downstream inverter (12) the second signal to a signal MARU) ■ SPR (i) complemented and that each of the outputs of the η inverter (12) is connected to a busbar (14) via a protective diode (13) . 7. Schaltungsanordnung nach einem oder mehreren der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß jeder der Signaleingänge (16, 19' für die Signale EOR (i) und DU) der Adressierlogik (ADRL) auf zwei NOR-Gatter (20, 21) ge führt ist. wobei der Eingang (16) für die Signale EORU) über einen Inverter (22) auf das NOR Gatter (21) des Einganges (19) für die Signale DU) geschaltet ist und die NOR-Gatter (20. 21 über Inverter (23, 24) in einer NAND-Logik mi dem Signal des Einganges DATABUSU) logiscl7. Circuit arrangement according to one or more of claims 1 to 6, characterized in that each of the signal inputs (16, 19 'for the signals EOR (i) and DU) of the addressing logic (ADRL) to two NOR gates (20, 21) is performed. wherein the input (16) for the signals EORU) is connected via an inverter (22) to the NOR gate (21) of the input (19) for the signals DU) and the NOR gate (20. 21 via inverter (23, 24) in a NAND logic with the signal of the input DATABUSU) logiscl C τ ι \j \j C τ ι \ j \ j verknüpft sind und durch ein Schreibsjgnal WRl oder WRT die Ausgänge X (ι) und X (ι) in vorbestimmter Weise angesteuert werden.linked s ind and the outputs X (ι) and X (ι) are controlled in a predetermined manner by a write signal WR1 or WRT. Die Erfindung betriffi eine Schaltungsanordnung gemäß Oberbegriff des Anspruches 1.The invention relates to a circuit arrangement according to the preamble of claim 1. In bekannten Rechenanlagen beruht die Verwaltung des Arbeitsspeichers auf einer linearen Liste (vgl. zum Beispiel D. E. K η u t h, »The Art of Computer Programming«, Addison-Weslay Verlag, New York, Vol. 1,1968, S. 435 bis 455), die im Arbeitsspeicher selbst gespeichert ist. Die Elemente dieser Liste enthalten im wesentlichen die Länge L freier Speichersegmente und je einen Zeiger A, der die unterste Adresse des jeweiligen Segmentes markiert. Der Inhalt dieser Liste wird durch Unterprogramme des Betriebssystems verwaltet, indem Speichersegmente vorbestimmter Länge an Programme übergeben oder nicht mehr benötigte Speichersegmente wieder in die Liste der verfügbaren eingearbeitet werden.In known computer systems, the administration of the main memory is based on a linear list (cf. for example DE K η uth, "The Art of Computer Programming", Addison-Weslay Verlag, New York, Vol. 1.1968, pp. 435 to 455) which is stored in the main memory itself. The elements of this list essentially contain the length L of free memory segments and a pointer A each, which marks the lowest address of the respective segment. The content of this list is managed by subroutines of the operating system by transferring memory segments of a predetermined length to programs or by incorporating memory segments that are no longer required into the list of available ones. Ein wesentlicher Nachteil dieses bekannten Verfahrens besteht darin, daß die entsprechenden Unterprogramme nicht nur Listen durchsuchen, sondern bei jedem Schritt auch zeitaufwendige Adressenrechnungen ausführen müssen; außerdem wird beim Prolog und Epilog für jeden Unterprogrammaufruf wertvolle Prozessorzeit verbraucht.A major disadvantage of this known method is that the corresponding subroutines not only search through lists, but also time-consuming address bills at every step have to perform; also becomes valuable for each subroutine call in the prologue and epilogue Processor time used up. Der Erfindung liegt die Aufgabe zugrunde, die Zentraleinheit des Rechners von Aktionen, die durch die Verwaltung seines Arbeitsspeichers notwendig sind, weitgehend zu entlasten und dadurch kostenintensive Rechnerzeit für Benutzerprogramme zusätzlich bereitzustellen.The invention is based on the object of the central unit of the computer of actions carried out by the management of its main memory are necessary to largely relieve the burden and thus cost-intensive Provide additional computer time for user programs. Diese Aufgabe wird erfindungsgemäß durch die im Anspruch 1 gekennzeichneten Merkmale gelöst.According to the invention, this object is achieved by the features characterized in claim 1. Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.Further developments of the invention are characterized in the subclaims. Die mit der Erfindung erzielten Vorteile bestehen insbesondere darin, daß eine wesentliche Vereinfachung des Betriebssystems erreicht wird, daß der Prozeß der Speicherverwaltung parallel zum normalen Programm der Zentraleinheit und weitgehend unabhängig von dieser abläuft und daß wertvolle Rechenzeit und Arbeitsspeicherkapazität eingespart wird. The advantages achieved with the invention consist particularly in the fact that a substantial simplification of the operating system is achieved that the process of storage management runs parallel to the normal program of the central unit and largely independent of the latter and that valuable computing time and memory capacity is saved. Ein Ausfuhrungsbeispiel der Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher beschrieben. Es zeigt An exemplary embodiment of the invention is shown in the drawing and is described in more detail below. It shows Fig.l eine schematische Darstellung des Speicherzustandsregisters MEM der Speicherverwaltungseinheit mit Organisations- und Abfrageschema,Fig.l is a schematic representation of the memory status register MEM of the memory management unit with organization and query scheme, F i g. 2 ein Blockschaltbild der Speicherverwaltungseinheit MMU, F i g. 2 shows a block diagram of the memory management unit MMU, F i g, 3 ein logisches Netzwerk EOR in dem das mit der Zeigerstellung koinzidierende Bit einer Adresse invertiert und gleichzeitig gelesen werden kann.Fig. 3 shows a logical network EOR in which the bit of an address that coincides with the pointer position can be inverted and read at the same time. Fig. 4 ein logisches Netzwerk D zum Erzeugen von »dont care« states,4 shows a logical network D for generating "don't care" states, F i g. 5 eine Adressierlogik ADRL. F i g. 5 an addressing logic ADRL. Das Speicherzustandsregister MEM ist mit einem Organisations- und Abfrageschema in Fig. 1 schematisch dargestellt. Es repräsentiert N = 2" = 25 = 32 freie (logisch 0) und besetzte (logisch 1) Arbeitsspeicherplälze mit den Adressen /(O bis N-I) und soll z. B. auf eine zusammenhängende Folge von zwölf freien Speicherplätzen abgesucht werden. In dem ersten Segment, das die Speicherplätze 1 bis 12 einschließt, wird der Speicher MEM ausgehend vomThe memory status register MEM is shown schematically in FIG. 1 with an organization and query scheme. It represents N = 2 "= 2 5 = 32 free (logic 0) and occupied (logic 1) work memory locations with the addresses / (O to NI) and is to be searched for a contiguous sequence of twelve free memory locations, for example. In the first segment, which includes the memory locations 1 to 12, is the memory MEM based on ίο Speicherplatz 12 nach unten abgesucht. Der Speicherplatz 9 ist jedoch besetzt, 1(9) = 1, so daß hier die mit fallenden Adressen ablaufende Abtastung abgebrochen wird. Nach einem Vorwärtssprung um zwölf Speicherplätze zu der Adresse / (21), welcheίο memory location 12 searched downwards. The memory location 9 is occupied, however, 1 (9) = 1, so that here the scanning running with decreasing addresses is aborted. After jumping forward by twelve memory locations to the address / (21), which '5 die oberste Adresse des nächsten abzufragenden Segmentes ist, beginnt die Abtastung dort von neuem. Der Suchvorgang endet bei /L(13), der kleinsten Adresse. Die neun Speicherplätze des zweiten Segmentes ergeben mit den drei Speicherplätzen des'5 is the top address of the next segment to be interrogated, the scanning starts again there. The search process ends at / L (13), the smallest address. The nine memory locations of the second segment and the three memory locations of the jo ersten Segmentes die gesuchte Folge von zwölf unbesetzten, einander benachbarten Speicherplätzen. Die dieser Folge vorangehende höchste Adresse eines besetzten Speicherplatzes ist /fc = / (9), die Basisadresse der gesuchten Folge von Speicherplätzen ist V1 = Ih+\ = /.(10).jo first segment the searched sequence of twelve unoccupied, adjacent memory locations. The highest address of an occupied memory location preceding this sequence is / fc = / (9), the base address of the sequence of memory locations sought is V 1 = I h + \ = /.(10). Eine weitere wesentliche Reduzierung der Zahl der Testschritte zum Auffinden einer vorbestimmten Folge freier Speicherplätze wird durch blockweises Adressieren des Registers MEM durch »dont care« states erreicht, die mit der Adresse / in eine Adreßdekodierlogik für das Speicherzustandsregister MEM eingegeben werden. Das Prinzip der Adressierung mit »dont care« states beruht darauf, daß eine oder mehrere Binärstellen in einem vorgegebenen Adreßcode logisch sowohl als»0«als auch als »1« interpretiert werden. Dadurch werden alle nur bezüglich dieser — durch die »dont care« states identifizierten — Binärstellen unterscheidbaren Adressen simultan aktiviert. Bei dem in F i g. 1 dargestellten Beispiel eines Speicherzustandsregisters MEM ist z. B. für . η = 5 /(3): 00011 und /(19): 10011.A further substantial reduction in the number of test steps for finding a predetermined sequence of free memory locations is achieved by addressing the register MEM block by block using "don't care" states, which are entered with the address / in an address decoding logic for the memory status register MEM . The principle of addressing with "don't care" states is based on the fact that one or more binary digits in a given address code are logically interpreted as both "0" and "1". As a result, all addresses that can only be distinguished with regard to these binary digits identified by the "dont care" states are activated simultaneously. In the case of the FIG. 1 shown example of a memory status register MEM is z. B. for. η = 5 / (3): 00011 and / (19): 10011. Die Adressen /(3) und /(19) unterscheiden sich also nur durch den logischen Zustand ihres höchsten Bits n. Wird dieses Bit interpretiert als ein »dont care« Bit d und bleibt es deshalb bei beiden Adressen unberücksichtigt, so können beide Adressen gleichzeitig aktiviert werden.The addresses / (3) and / (19) only differ in the logical state of their highest bit n. If this bit is interpreted as a "dont care" bit d and is therefore ignored for both addresses, both addresses can be used at the same time to be activated. In Fig. 1 ist für die 25 = 32 Speicherplätze ein Schema für deren Adressen im Binärkode angegeben,In Fig. 1, a scheme for their addresses in binary code is given for the 2 5 = 32 memory locations, in dem ausgehend von einem Punkt A nach unten gerichtete Äste der Verzweigung mit logisch 0 und nach oben gerichtete Äste mit logisch 1 zu interpretieren sind. Beim Durchlaufen dieses Schemas von Punkt A zu einem der 2" Speicherplätze ergibt diesein which, starting from a point A , branches of the branch pointing downwards are to be interpreted with logic 0 and branches pointing upwards with logic 1. When going through this scheme from point A to one of the 2 "memory locations , this results Interpretation die binärkodierte Adresse / dieses Speicherplatzes, z.B. Speicherplätze 16 1(16): 10000 oder Speicherplatz 15 I (15): 0 1111. Interpretation of the binary-coded address / this memory location, e.g. memory locations 16 1 (16): 10000 or memory location 15 I (15): 0 1111. Aus diesem Schema folgt, daß die Speicherplätze in Blöcken BO (0 bis 15) und Bl (1*6 bis 31) undFrom this scheme it follows that the memory locations in blocks BO (0 to 15) and Bl (1 * 6 to 31) and Unterblöcken BOO (0 bis 7), BOl (8 bis 15) BIO (16 bis 23), BH (24 bis 31) und BOOO (0 bis 3), BOOl (4 bis 7), BOlO (8 bis 11), BOH (12 bis 15), BlOO (16 bis 19), BlOl (20 bis 23), BIlO (24 bis 27), BHl (28 bis 31) usw. durch Einfügen entsprechender »dont care«Sub-blocks BOO (0 to 7), BOl (8 to 15) BIO (16 to 23), BH (24 to 31) and BOOO (0 to 3), BOOL (4 to 7), BOlO (8 to 11), BOH (12 to 15), BlOO (16 to 19), BlOl (20 to 23), BIlO (24 to 27), BHl (28 to 31) etc. by inserting the appropriate »dont care« Bits d adressiert werden können.Bits d can be addressed. Der Binärkode einer Adresse / ist /(n—1:0); D(n-l:0) ist von 2" — N möglichen »dont care« states. Der Adressendekodierer enthält zwei SätzeThe binary code of an address / is / (n-1: 0); D (nl: 0) is one of 2 "- N possible"don't care "states. The address decoder contains two sentences
DE19742418034 1974-04-13 1974-04-13 Circuit arrangement for managing memory segments Expired DE2418034C3 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE19742418034 DE2418034C3 (en) 1974-04-13 Circuit arrangement for managing memory segments
GB14285/75A GB1499184A (en) 1974-04-13 1975-04-08 Circuit arrangement for monitoring the state of memory segments
US05/568,129 US4024507A (en) 1974-04-13 1975-04-14 Arrangement for monitoring the state of memory segments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19742418034 DE2418034C3 (en) 1974-04-13 Circuit arrangement for managing memory segments

Publications (3)

Publication Number Publication Date
DE2418034A1 DE2418034A1 (en) 1975-10-23
DE2418034B2 DE2418034B2 (en) 1976-02-19
DE2418034C3 true DE2418034C3 (en) 1976-10-14

Family

ID=

Similar Documents

Publication Publication Date Title
DE2630323C3 (en) Data storage device with a main memory, an auxiliary memory and a look-ahead logic
DE2317870C2 (en) Circuit arrangement for controlling the data transmission between the main memory and at least one I / O device in a digital data processing system
DE2459006C2 (en) Device for forming an absolute address in a data processing system
DE2515696C2 (en) Data processing system
DE69738188T2 (en) METHOD AND APPARATUS FOR INCREASED ACCURACY IN THE BRANCHING FORECAST IN A SUPERSCALAR MICROPROCESSOR
DE1499182C3 (en) Data storage system
DE2417795C2 (en) Data processing system
CH650600A5 (en) CENTRAL PROCESSOR UNIT OF A DATA PROCESSING SYSTEM WITH OPERATION CODE EXTENSION REGISTER.
DE2714805A1 (en) DATA PROCESSING SYSTEM
DE3102150A1 (en) &#34;CIRCUIT ARRANGEMENT WITH A CACHE STORAGE FOR A CENTRAL UNIT OF A DATA PROCESSING SYSTEM
DE2725718A1 (en) PROCESSING SYSTEM WITH MULTIPLE VIRTUAL ADDRESS SPACES
DE2054835A1 (en) Processor for an information processing system and an operating method for this processor
DE1928202B2 (en) Device for the creation of statistical data on the operational sequence of program-controlled data processing systems
DE2750721A1 (en) INPUT / OUTPUT SYSTEM
DE2424931A1 (en) DATA PROCESSING SYSTEM, IN PARTICULAR MICROPROGRAM DATA PROCESSING UNIT WITH PARALLEL COMMAND STREAMS FOR MULTIPLE LEVELS OF SUB COMMAND RESERVES
DE2339741A1 (en) ARRANGEMENT FOR THE FORMATION OF A RELATIVE ADDRESS FOR A MEMORY
DE1524102B2 (en) ELECTRONIC DATA PROCESSING MACHINE CONSTRUCTED FROM COMPONENTS
DE2054947A1 (en) Address preparation device and method and memory access request device for an information processing system
DE1285219B (en) Control unit for the execution of subroutines
DE2458096C2 (en) Device for loading micro-programs in a micro-programmable data processing system
DE1499206B2 (en) COMPUTER SYSTEM
DE2418034C3 (en) Circuit arrangement for managing memory segments
DE2425380C2 (en) Data processing system for the parallel execution of processing operations
DE2440390A1 (en) ELECTRONIC CALCULATOR
EP1543411B1 (en) Processor with explicit information on information to be secured in sub-program branches