DE3427428A1 - Method and device for controlling block transfer for a buffer memory - Google Patents
Method and device for controlling block transfer for a buffer memoryInfo
- Publication number
- DE3427428A1 DE3427428A1 DE19843427428 DE3427428A DE3427428A1 DE 3427428 A1 DE3427428 A1 DE 3427428A1 DE 19843427428 DE19843427428 DE 19843427428 DE 3427428 A DE3427428 A DE 3427428A DE 3427428 A1 DE3427428 A1 DE 3427428A1
- Authority
- DE
- Germany
- Prior art keywords
- block
- buffer
- blocks
- buffer memory
- address
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/10—Indexing scheme relating to groups G06F5/10 - G06F5/14
- G06F2205/108—Reading or writing the data blockwise, e.g. using an extra end-of-block pointer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Verfahren und Vorrichtung zur Blocktransfer- Method and device for block transfer
steuerung für einen Pufferspeicher Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Blocktransfersteuerung für einen Pufferspeicher, der ein Duplikat von in einem Hauptspeicher einer Datenverarbeitungsvorrichtung stehenden Daten speichert. Control for a buffer store The invention relates to a method and a block transfer control device for a buffer memory having a Duplicate of those in a main memory of a data processing device Saves data.
Herkömmliche, eine hierarchische Struktur aufweisende Datenverarbeitungsvorrichtungen, enthalten einen verhältnismäßig langsamen Hauptspeicher großer Kapazität und einen sehr schnellen Pufferspeicher geringer Kapazität, wobei ein Duplikat von im Hauptspeicher stehenden, gerade benötigten Daten im Pufferspeicher gehalten wird. Dadurch wird die effektive Verarbeitungsgeschwindigkeit erheblich erhöht. Figur 1 zeigt das Verhältnis zwischen einem solchen Hauptspeicher und einem Pufferspeicher. Die Ziffer 100 bezeichnet in Figur 1 einen Hauptspeicher, 200 einen Pufferspeicher und 300 ein Pufferspeicheradreßfeld, das weiter unter erläutert wird. Der Pufferspeicher 200 ist in 0 bis 255 Spalten eingeteilt, die jeweils zwei Blöcke, nämlich zwei Reihen aufweisen. Beispielsweise enthält ein Block 16 Byte, wobei 16-Byte-Daten aus dem Hauptspeicher 100 sequentiell in den Pufferspeicher 200 eingespeichert werden können. Der Hauptspeicher 100 ist ebenfalls in gleichviel Spalten wie der Pufferspeicher 200 eingeteilt. Die Anzahl der in jeder Spalte des Hauptspeichers 100 enthaltenen Blöcke wird jedoch beim Hauptspeicher 100 durch dessen Speicherkapazität bestimmt, wobei Daten eines beliebigen Blocks darin in irgendeiner der zwei Reihen einer entsprechenden Spalte des Pufferspeichers 200 gespeichert werden. Das Pufferspeicheradreßfeld 300 dient zum Registrieren von Adressen im Hauptspeicher, so daß diese die Position der im Pufferspeicher 200 gespeicherten Daten angeben. Dieses Adreßfeld 300 ist ebenfalls wie der Pufferspeicher 200 in 256 Spalten und zwei Reihen eingeteilt, und ein jeweiliger Eingang zum Adreßfeld 300 entspricht einem jeweiligen Block des Pufferspeichers 200.Conventional data processing devices with a hierarchical structure, contain a relatively slow main memory and a large capacity very fast low capacity buffer memory, with a duplicate of in main memory existing, currently required data is held in the buffer memory. This will the effective processing speed increases significantly. Figure 1 shows the relationship between such a main memory and a buffer memory. The number 100 denotes in FIG. 1 a main memory, 200 a buffer memory and 300 a buffer memory address field, which is explained further below. The buffer memory 200 is in 0 to 255 columns divided, each having two blocks, namely two rows. For example A block contains 16 bytes, with 16-byte data from main memory 100 being sequential are stored in the buffer memory 200 can. The main memory 100 is also divided into the same number of columns as the buffer memory 200. the However, the number of blocks contained in each column of the main memory 100 becomes in the main memory 100 determined by its storage capacity, with data one any block therein in any of the two rows of a corresponding column of the buffer memory 200 can be stored. The buffer address field 300 is used to register addresses in main memory so that they match the position of the im Specify data stored in the buffer memory 200. This address field 300 is also like the buffer memory 200 divided into 256 columns and two rows, and one each The input to the address field 300 corresponds to a respective block of the buffer memory 200
Die mit einem Pufferspeicher ausgerüstete Datenverarbeitungsvorrichtung sucht auf eine Hauptspeicherzugriffsanforderung hin eine durch die Zugriffsanforderung gekennzeichnete Zugriffsadresse im Pufferspeicheradreßfeld. Als Ergebnis der Suche kann die Datenverarbeitungsvorrichtung das gewünschte Datum, falls dieses im Pufferspeicher existiert, aus diesem holen.The data processing device equipped with a buffer memory searches for one through the access request in response to a main memory access request marked access address in the buffer memory address field. As a result of the search the data processing device can specify the desired date, if this is in the buffer memory exists, get out of this.
Falls jedoch das gewünschte Datum nicht im Pufferspeicher vorhanden ist, führt die Datenverarbeitungsvorrichtung einen Blocktransfer aus und überträgt die einem Block entsprechenden Daten, die eine Zugriffseinheit des Pufferspeichers darstellen, vom Hauptspeicher zum Pufferspeicher, die darin abgespeichert werden.However, if the desired date is not available in the buffer memory is, the data processing apparatus performs block transfer and transfers the data corresponding to a block that one access unit of the buffer memory represent, from the main memory to the buffer memory, which are stored in it.
Gleichzeitig sendet die Datenverarbeitungsvorrichtung die gewünschten Daten zur anfordernden Einrichtung. Der Blocktransferüberhang gibt die Verschlechterung der Leistung aufgrund des zu dieser Zeit stattfindenden Blocktransfers an und wird durch das Produkt einer Größe NIBR (Not in Buffer Ratio), die eine Wahrscheinlichkeit, daß das gewünschte Datum im Pufferspeicher nicht vorhanden ist darstellt, mit der für den Blocktransfer benötigten Zeitdauer wie folgt ausgedrückt: Blocktransferüberh ang = NIBR x Blocktransferzeitdauer Die Größe NIBR kann durch ein sehr schnelles Eintragen der verwendeten Daten in den Pufferspeicher reduziert werden, und die Blocktransferzeitdauer kann durch Reduzierung der Blockgröße verringert werden. Durch sorgfältige Auslegung der Blockgröße als Eintragseinheit für den Pufferspeicher kann somit der Wert der obigen Gleichung reduziert werden.At the same time, the data processing device sends the desired Data on the requesting institution. The block transfer overhang gives the deterioration the performance due to the block transfer taking place at this time by the product of a quantity NIBR (Not in Buffer Ratio), which is a probability that the desired date does not exist in the buffer memory with which The time required for the block transfer is expressed as follows: Block transfer overh ang = NIBR x block transfer time The size NIBR can be increased by a very fast entry of the data used in the buffer memory can be reduced, and the block transfer time can be reduced by reducing the block size will. By carefully designing the block size as an entry unit for the buffer memory the value of the above equation can thus be reduced.
Herkömmliche Computer neigen dazu, die Maschinenzyklusdauer im Vergleich mit der Zugriffszeit des Hauptspeichers stark zu verringern, wodurch die mittlere Befehlsausführungszeitdauer ohne die verschiedenen Überhangszeiten zu betrachten, geringer wird. Trotz dieser Tendenz erhöht sich das Verhältnis der Blocktransferüberhangszeit zur mittleren Befehlsausführungszeit einschließlich der Überhangszeit, da bislang fast keine Maßnahmen zur Reduzierung der Blocktransferüberhangszeit ergriffen wurden. Zur Leistungssteigerung eines Computers ist deshalb die Verringerung der Blocktransferüberhangszeitdauer des Pufferspeichers eine wichtige Aufgabe.Conventional computers tend to compare the machine cycle times with the access time of the main memory to decrease sharply, thus reducing the mean Command execution time without considering the various hangover times, becomes less. Despite this tendency, the ratio of the block transfer overhead time increases at the mean command execution time including the slack time, since so far almost no measures were taken to reduce the block transfer overhead time. Therefore, in order to improve the performance of a computer, it is important to decrease the block transfer hangover time of the buffer memory is an important task.
Es ist deshalb Aufgabe der Erfindung, zur Lösung der obengenannten Probleme die Blocktransferüberhangszeit des Pufferspeichers zu verringern, um die Leistung des Computers zu steigern.It is therefore an object of the invention to solve the above Problems reducing the block transfer overhead time of the buffer memory in order to avoid the Increase computer performance.
Allgemein werden Zugriffsanforderungen zum Hauptspeicher in die folgenden drei Arten eingeteilt: 1. Befehlsauslesen, 2. Operandendaten auslesen 3. Operandendaten einschreiben.In general, requests for access to the main memory are set out in the following divided into three types: 1. read out command, 2. read out operand data, 3. operand data enroll.
Die obengenannten Zugriffe haben folgende Merkmale.The above-mentioned accesses have the following characteristics.
Weil die Anforderungen zum Befehlsauslesen kontinuierlich nacheinander für einen Adreßbereich des Speichers ausgegeben werden, bis ein Verzweigungsbefehl auftritt, ist die Verringerung des Werts NIBR durch die Übertragung möglichst vieler Befehle in den Pufferspeicher bei einem Blocktransfern möglich, wodurch sich die Blocktransferüberhangszeit möglicherweise verkürzt, auch wenn die Blockstransferzeit im einzelnen etwas länger wird.Because the requests for command readout are continuous one after the other are output for an address area of the memory, until a Branch instruction occurs, the decrease in the NIBR value is due to the transfer as many commands as possible in the buffer memory with a block transfer possible, which may reduce the block transfer overhead time even if the Block transfer time is a little longer in detail.
Eine Vergrößerung der Blöcke beim Befehlsauslesen ist deshalb vorteilhaft.It is therefore advantageous to enlarge the blocks when reading out commands.
Bei der Operandendatenausleseanforderung kann auch, wenn viele Daten bei einem Blocktransfer in den Pufferspeicher übernommen werden, der NIBR-Wert im Vergleich mit einer Erhöhung der Blocktransferzeit nicht reduziert werden, obwohl dies von der Befehlsart, die auszuführen ist, abhängt. Deshalb ist beim Operandendatenauslesen die Verringerung der Blockgröße vorteilhaft.In the operand data readout request, if there is a lot of data are transferred to the buffer memory during a block transfer, the NIBR value in Compared to an increase in block transfer time it did not decrease, though this depends on the type of command to be executed. Therefore, when reading out operand data reducing the block size is beneficial.
Folgendes ergibt sich für das Einschreiben von Operandendaten im Falle des "store-in"-Systems, das sich neuerdings durchsetzt, obwohl es vom Speichersystem des Pufferspeichers abhängt. Das "store-in"-System überträgt, falls der Pufferspeicher den erforderlichen Schreibbereich nicht aufweist, zuerst die im Puffer stehenden Daten eines entsprechenden Blocks und schreibt dann die neuen Daten in denselben Block des Pufferspeichers ein. In diesem System werden jedoch durch den Blocktransfer eingeschriebenen Daten nicht häufig verwendet, so daß im wesentlichen der Blocktransfer der Einschreib-Datenlänge genügt (die Einschreib-Datenlänge ist zumeist 8 Byte oder kleiner). Eine Erhöhung der Blockgröße erhöht auch die Blocktransferzeitdauer, so daß sich auch die Blocktransferüberhangszeitdauer erhöht. Deshalb ist beim Einschreiben von Operandendaten eine Verringerung der Blockgröße vorteilhaft.The following is found for writing operand data in the case the "store-in" system, which has recently been gaining ground, although it is from the storage system of the buffer memory. The "store-in" system transfers if the buffer memory does not have the required write area, first those in the buffer Data of a corresponding block and then writes the new data in the same Block of the buffer memory. In this system, however, the block transfer written data is not used frequently, so that essentially the block transfer the write-in data length is sufficient (the write-in data length is usually 8 bytes or smaller). Increasing the block size also increases the block transfer time, see above that the block transfer hangover time also increases. That is why it is with registered mail of operand data, a reduction in the block size is advantageous.
Die obiger Ausführungen zeigen, daß im Falle des Befehlsauslesens die Blockgröße des Pufferspeichers erhöht werden sollte, wohingegen beim Auslesen und Einschreiben von Operandendaten die Blockgröße kleiner werden sollte.The above shows that in the case of command readout the block size of the buffer memory should be increased, whereas when reading out and writing operand data, the block size should become smaller.
Zur Lösung der obigen Aufgabe weist die erfindungsgemäße Blocktransfersteuervorrichtung eine Vorrichtung auf, die getrennt vom gewöhnlichen Blocktransfer, bei dem nur ein Block zum Pufferspeicher übertragen wird, n-Blöcke beim Blocktransfer überträgt.To achieve the above object, the block transfer control device according to the invention a device that is separate from ordinary block transfer, in which only one Block is transferred to the buffer memory, transfers n blocks during block transfer.
Die Erfindung wird im folgenden-anhand der Zeichnung näher beschrieben. Es zeigen: Fig. 1 einander gegenübergestellt einen Hauptspeicher, einen Pufferspeicher und ein Pufferspeicheradreßfeld; Fig. 2 ein Blockschaltbild eines Ausführungsbeispiels der Erfindung; und Fig. 3 den Betrieb der in Figur 2 dargestellten Steuerschaltung.The invention is described in more detail below with reference to the drawing. 1 shows a main memory, a buffer memory, compared to one another and a buffer address field; 2 shows a block diagram of an exemplary embodiment the invention; and FIG. 3 shows the operation of the control circuit shown in FIG.
Figur 2 zeigt ein Blockschaltbild eines Ausführungsbeispiels einer Blocktransfersteuervorrichtung gemäß der Erfindung. Bei diesem Ausführungsbeispiel enthält der Pufferspeicher so wie in Figur 1 dargestellt, 256 Spalten und zwei Reihen, und ein Block enthält 16 Byte. Bei diesem Ausführungsbeispiel wird getrennt vom gewöhnlichen Blocktransfer im Falle einer Befehlsausleseanforderung eine Anforderung zur Übertragung von zwei Blöcken (32 Byte) ausgegeben (entsprechend n = 2).Figure 2 shows a block diagram of an embodiment of a Block transfer control device according to the invention. In this embodiment contains the buffer memory as shown in Figure 1, 256 columns and two rows, and one block contains 16 bytes. In this embodiment is separated from ordinary block transfer in the case of an instruction read request, a request for the transmission of two blocks (32 bytes) output (corresponding to n = 2).
In Figur 2 sind Pufferadreßfelder , die dem in Figur 1 dargestellten Adreßfeld 300 entsprechen, mit 10 - 13 bezeichnet.In FIG. 2, buffer address fields are similar to that shown in FIG Address field 300, labeled 10-13.
Die Eingänge von 256 Spalten dieses Adreßfeldes sind in zwei Arten, nämlich geradzahlige und ungeradzahlige Eingänge eingeteilt. Dieses Adreßfeld weist auf: einen Bereich (BD 0 0) 10, der die ungeradzahligen Eingänge der Reihe 0 aufweist, einen Bereich (Bl) 0 1) 11, der die geradzahligen Eingänge der Reihe 1 aufweist, einen Bereich (BD 1 0) 12, der die ungeradzahligen Eingänge der Reihe 0 aufweist, und einen Bereich (BD 1 1) 13, der die ungeradzahligen Eingänge der Reihe 1 aufweist.The inputs of 256 columns of this address field are of two types, namely, even-numbered and odd-numbered inputs are divided. This address field has on: an area (BD 0 0) 10, which has the odd-numbered inputs of row 0, a Area (Bl) 0 1) 11, which has the even-numbered inputs of row 1, a Area (BD 1 0) 12, which has the odd-numbered inputs of row 0, and an area (BD 1 1) 13, which has the odd-numbered inputs of row 1.
Es ist somit deutlich, daß der Aufbau des Pufferspeichers genauso wie der des Pufferadreßfeldes ist. Wenn eine Zugriffsanforderung zum Hauptspeicher empfangen wird, speichert ein Adreßregister 1 eine zum Suchen eines jeweiligen Bereichs der Bereiche 10 - 13 nötige Zugriffsadresse. Das Adreßregister 1 besteht aus 32 Bitstellen. Die Spalte ist durch die Bitstellen 20 - 27 des Registers 1 gekennzeichnet. Die geradzahlige Spalte ist gekennzeichnet, wenn das 27. Bit "0" ist. Die ungeradezahlige Spalte ist gekennzeichnet, wenn diese Bitstelle eine "1" enthält.It is thus clear that the structure of the buffer memory is the same like that of the buffer address field. When a request to access the main memory is received, an address register 1 stores one for searching each area the areas 10 - 13 required access address. The address register 1 consists of 32 Bit positions. The column is identified by bit positions 20 - 27 of register 1. The even-numbered column is identified when the 27th bit is "0". The odd one Column is marked if this bit position contains a "1".
Die jeweiligen Ausgänge der Adreßfeldbereiche 10 - 13 werden Vergleichern 14 - 17 eingegeben. Genauso werden die höchsten Bitstellen 0 - 19 des Ausgangs des Adreßregisters 1 jeweils den Vergleicher 14 - 17 eingegeben. Die Bitstellen 20 - 26 des Adreßregisters 1 dienen zur Adressierung der Adreßfeldbereiche 12 und 13, die die ungeradzahligen Eingänge jeder Spalte enthalten. Gleichzeitig werden die Bitstellen 20 - 26 und das 27. Bit des Adreßregisters 1 einem Addierer 5 eingegeben und darin miteinander addiert. Ein Ausgang des Addierers 5 dient zur Adressierung der Adreßfeldbereiche 10 und 11, die die geradzahligen Einträge jeder Spalte enthalten.The respective outputs of the address field areas 10-13 are comparators 14 - 17 entered. The highest bit positions 0 - 19 of the output of the Address register 1 entered the comparators 14-17. The bit positions 20 - 26 of the address register 1 are used to address the address field areas 12 and 13, which contain the odd-numbered entries of each column. At the same time, the Bit positions 20 - 26 and the 27th bit of the address register 1 are input to an adder 5 and added together in it. An output of the adder 5 is used for addressing the address field areas 10 and 11 which contain the even-numbered entries of each column.
Die genannten vier Vergleicher 14 bis 17 erzeugen jeweils Ausgangssignale (Nichtkoinzidenz-Signale) 18, 19, 20 und 21, die 1 sind, wenn die jeweiligen Vergleichsergebnisse keine Koinzidenz ergeben. Die Nichtkoinzidenz-Signale 18 und 20 werden einem ODER-Glied 22 und die Nichtkoinzidenz-Signale 19 und 21 einem ODER-Glied 23 eingegeben. Wenn das Suchergebnis für die geradzahligen Eingänge des Pufferadreßfeldes angibt, daß sowohl unter den Null-Zeilenadressen als auch unter den 1-Zeilenadressen im Pufferspeicher kein gewünschtes Datum existiert, geht ein Ausgangssignal 24 des ODER-Glieds 22 auf "1". Wenn dagegen das Suchergebnis für die ungeradzahligen Eingänge des Pufferadreßfeldes angibt, daß sowohl die Null-Zeilen als auch 1-Zeilen Adressen des Pufferspeichers kein gewünschtes Datum enthalten, geht ein Ausgangssignal 25 des ODER-Glieds 23 auf "1". Die Signale 24 und 25 werden einer Steuerschaltung 27 eingegeben. Außerdem wird der Steuerschaltung 27 das 27. Bite des Adreßregisters 1 und ein Signal 26 eingegeben,, das "1" ist, wenn ein Zweiblocktransfer angefordert wird. Wenn das Ergebnis der Suche für das Pufferadreßfeld angibt, daß im Pufferspeicher kein gewünschtes Datum existiert, setzt die Steuerschaltung 27 eines von zwei Signalen 28 bzw. 29 auf "1". Durch das "1"-Signal 28 wird ein Ein-Blocktransfer und durch das "l"-Signal 29 ein Zwei-Blocktransfer abhängig von den Zuständen des Signals 26 und des der Steuerschaltung 27 zugeführten Adreßbits 27 des Adreßregister 1, angefordert. Die Signal 28 und 29 werden dem Hauptspeichert zugesendet.The four mentioned comparators 14 to 17 each generate output signals (Non-coincidence signals) 18, 19, 20 and 21 which are 1 when the respective comparison results no coincidence result. The non-coincidence signals 18 and 20 become an OR gate 22 and the non-coincidence signals 19 and 21 are input to an OR gate 23. if the search result for the even-numbered inputs of the buffer address field indicates that both under the zero line addresses and under the 1 line addresses There is no desired date in the buffer memory, an output signal 24 of the OR gate 22 to "1". If, on the other hand, the search result for the odd-numbered inputs of the buffer address field indicates that both the zero-line and 1-line addresses of the buffer memory do not contain a desired data item, an output signal 25 goes of the OR gate 23 to "1". The signals 24 and 25 are sent to a control circuit 27 entered. In addition, the control circuit 27 becomes the 27th bit of the address register 1 and input a signal 26 which is "1" when a two-block transfer is requested will. If the result of the search for the buffer address field indicates that in the buffer memory no desired date exists, the control circuit 27 sets one of two signals 28 or 29 to "1". The "1" signal 28 is a one-block transfer and through the "1" signal 29 is a two-block transfer depending on the states of the signal 26 and the address bit 27 of the address register 1 fed to the control circuit 27, requested. The signals 28 and 29 are sent to the main memory.
Nachfolgend wird der Betrieb des Ausführungsbeispiels von Figur 2 beschrieben. Sobald eine Zugriffsanforderung zum Hauptspeicher vorliegt, wird eine in der Anforderung enthaltene Zugriffsadresse in das Adreßregister 1 gesetzt, um die Suche im Pufferadressfeld durchzuführen. Gleichzeitig wird das Signal 26 durch eine geeignete Einrichtung, wie ein Mikroprogramm, womit das Auslesensunter Interpretation des Befehls und das Auslesen und die Ausführung der Operanden gesteuert wird, aus- oder eingeschaltet und der Steuerschaltung 27 eingegeben. Als Beispiel einer Zugriffsanforderung zum Hauptspeicher wird das Befehlsauslesen beschriebe-n. Die obige Beschreibung zeigte, daß die zu übertragende Blocklänge beim Befehlsauslesen möglichst groß sein sollte. Beim Befehisauslesen wird deshalb gemäß dem vorliegenden Ausführungsbeispiel der Transfer zweier Blöcke angefordert. Im Falle des Auslesens von Operandendaten soll dagegen die Transferblocklänge klein sein. Deshalb wird gemäß dem vorliegenden Ausführungsbeispiel beim Auslesen von Operandendaten wie gewöhnlich der Transfer eines einzigen Blockes angefordert.The operation of the embodiment of FIG described. As soon as there is a request to access the main memory, a The access address contained in the request is set in the address register 1 in order to perform the search in the buffer address field. At the same time, the signal 26 is through a suitable device, such as a microprogram, with which reading-out under interpretation of the command and the readout and execution of the operands is controlled, or turned on and input to the control circuit 27. As an example of an access request the command readout is described for the main memory. The above description showed that the block length to be transmitted when reading out commands should be as large as possible should. When reading out commands, therefore, according to the present exemplary embodiment the transfer of two blocks requested. In the case of reading out operand data should against it the transfer block length must be small. Therefore, according to the present embodiment when reading out operand data as usual the transfer of a single block requested.
Durch die Mikroprogrammsteuerung oder eine andere geeignete Einrichtung wird in diesem Fall das Signal 26 ausgeschaltet.By the microprogram control or some other suitable device the signal 26 is switched off in this case.
Die Adreßfeldbereiche 12 und 13, die die ungeradzahligen Spalteneingänge jeder Reihe des Pufferadreßfeldes enthalten, werden direkt durch die Bitstellen 20 - 26 des Adreßregisters 1 adressiert. Andererseits werden die Adressfeldbereiche 10 und 11, die die geradzahligen Spalteneingänge jeder Reihe enthalten, durch die im Addierer 5 ausgeführte Addition der Bitstellen 20 - 26 mit der Bitstelle 27 des Adressregisters 1 adressiert.The address field areas 12 and 13, which are the odd-numbered column inputs each row of the buffer address field are indicated directly by the bit positions 20 - 26 of address register 1 are addressed. On the other hand, the address field areas 10 and 11, which contain the even numbered column entries of each row, through the addition of bit positions 20-26 carried out in adder 5 with bit position 27 of the Address register 1 addressed.
Wir nehmen nun einen Fall an, daß die Bitstellen 20 - 27 des Adressregisters 1 "0 0 0 0 1 1 1 0 ~ (Spalte 14) sind. In diesem Fall ergibt 0 0 0 0 1 1 1 + 0 = 0 0 0 0 1 1 1, so daß in den Adreßfeldbereichen 10 und 11 die Spalte 14 (geradzahlig), die den der Zugriffsadresse entsprechenden Block enthält, durch die Adresse "0 0 0 0 1 1 1 " adressiert wird. Gleichzeitig wird die Adreßinformation "0 0 0 0 1 1 1 " der Bitstellen 20 - 26 des Adressregister 1 direkt den Adreßfeldbereichen 12 und 13 eingegeben und die Spalte 15 (ungeradzahlig) adressiert, in der der dem durch die Zugriffsadresse angegebenen Block folgende Block steht.We now assume a case that bit positions 20-27 of the address register 1 "0 0 0 0 1 1 1 0 ~ (column 14). In this case, 0 0 0 0 1 1 1 + 0 = 0 0 0 0 1 1 1, so that in the address field areas 10 and 11 column 14 (even-numbered), which contains the block corresponding to the access address, by the address "0 0 0 0 1 1 1 "is addressed. At the same time, the address information" 0 0 0 0 1 1 1 "of bit positions 20-26 of address register 1 directly to address field areas 12 and 13 entered and column 15 (odd number) addressed, in which the the access address specified block is in the following block.
Danach betrachten wir den Fall, wo die Bitstellen 20 - 27 des Registers 1 ~0 0 0 0 1 1 1 1 " (Spalte 14) sind. In diesem Falle wird in den Adreßfeldbereichen 12 und 13 die Spalte 15 (ungeradzahlig) durch die Adreßinformation "0 0 0 0 1 1 1 " der Bitstellen 20 - 26 adressiert, in der ein der Zugriffsadresse entsprechender Block steht. Gleichzeitig werden die Adreßfeldbereiche 10 und 11 mit der Adreßinformation "0 0 0 1 0 0 0 adressiert, da die Addition 0 0 0 0 1 1 1 + 1 = 0 0 0 1 0 0 0 ergibt. Deshalb wird die Spalte 16 (geradzahlig) adressiert, in der der Block steht, der dem Block der durch die Zugriffsadresse angegeben ist, folgt.Then we consider the case where the bit positions 20-27 of the register 1 ~ 0 0 0 0 1 1 1 1 "(column 14). In this case, in the address field areas 12 and 13 column 15 (odd) with the address information "0 0 0 0 1 1 1 "of the bit positions 20-26, in which a Block stands. At the same time, the address field areas 10 and 11 with the address information "0 0 0 1 0 0 0 addressed, since the addition results in 0 0 0 0 1 1 1 + 1 = 0 0 0 1 0 0 0. Therefore the column 16 (even numbered) is addressed, in which the block is located, the the block indicated by the access address follows.
Die durch die Bitstellen 20 - 27 des Adreßregisters 1 angegebenen Inhalte werden von den Adreßfeldbereichen 10 - 13 für jede Zeile ausgelesen und jeweils den Vergleichern 14 -17 eingegeben. Die Vergleicher 14 - 17 vergleichen die Ausgänge der Adreßfeldbereiche 10 - 13 mit den Ausgängen der Bitstellen 1 bis 19 des Adreßregisters 1. Wenn eine Koinzidenz nicht vorliegt, setzen die Vergleicher 14 - 17 ihre Ausgangssignale 18 - 21 auf "1". Das ODER-Glied 22 oderiert die Ausgangssignale 18 und 20, und das ODER-Glied 23 oderiert die Ausgangssignale 19 und 21. Die Ausgangssignale 24 und 25 der ODER- Glieder 22 und 23 werden jeweils der Steuerschaltung 27 eingegeben. Die Steuerschaltung 27 erhält außerdem das Signal 26, das die zu transferierende Blocklänge angibt und das Bit 27 des Adreßregisters 1.Those indicated by bit positions 20-27 of address register 1 Contents are read out from the address field areas 10-13 for each line and entered in each of the comparators 14-17. Compare comparators 14-17 the outputs of the address field areas 10 - 13 with the outputs of the bit positions 1 to 19 of the address register 1. If there is no coincidence, the comparators set 14-17 their output signals 18-21 to "1". The OR gate 22 ored the output signals 18 and 20, and the OR gate 23 or the output signals 19 and 21. The output signals 24 and 25 of the OR gates 22 and 23 are input to the control circuit 27, respectively. The control circuit 27 also receives the signal 26, which is to be transferred Block length and bit 27 of address register 1.
Figur 3 zeigt den Betrieb der Steuerschaltung 27 in Form einer Tabelle, in der "0" angibt, daß beide Signale 28 und 29 "Aus" sind und in der "1" angibt, daß das Signal 28 "Ein" ist und daß das Signal 29 "Aus" ist. "2" gibt an, daß beide Signale 28 und 29 "Ein" sind. Dem Fachmann ist klar, daß die Steuerschaltung 27 mittels gewöhnlicher logischer Schaltglieder realisiert werden kann.Figure 3 shows the operation of the control circuit 27 in the form of a table, in which "0" indicates that both signals 28 and 29 are "off" and in which "1" indicates that the signal 28 is "on" and that the signal 29 is "off". "2" indicates both Signals 28 and 29 are "on". It is clear to those skilled in the art that the control circuit 27 can be realized by means of ordinary logic switching elements.
Wir nehmen zuerst an, daß eine Befehlsauslese-Anforderung ausgegeben wird und das Signal 26 für den Blocktransfer auf "1" gesetzt wird, um vom Hauptspeicher den Transfer zweier Blöcke anzufordern. Wenn die Bitstellen 20 - 27 des Adreßregisters 1 beispielsweise "0 0 0 0 1 1 1 1 " sind, ist das Adreßbit 27 "1". Mit dieser Bedingung und wenn das Signal 26 "1" ist, was die Anforderung zum Transfer zweier Blöcke vom Hauptspeicher darstellt, wird der Betrieb der Steuerschaltung 27 in vier Fälle abhängig von den Werten der Signale 24 und 25, die die Vergleichsergebnisse angeben, eingeteilt: Im ersten Fall sind die beiden Signale 24 und 25 im Aus-Zustand (z.B.00) Dann ergibt sich in der Tabelle in Figur 3 der entsprechende Wert "0". Dies bedeutet, daß das Ergebnis der Suche im Pufferadreßfeld mittels der Zugriffsadresse und mittels der Adresse, die den dem durch die Zugriffsadresse angegebenen Block folgenden Block angibt , offenbart, daß der gewünschte Block im Pufferspeicher steht. Da hier kein Blocktransfer nötig ist, werden das Signal 28, das einen gewöhnlichen Blocktransfer anfordert und das Signal 29, das einen Zwei-Blocktransfer anfordert, im "Aus"-Zustand dem Hauptspeicher zugesendet Im zweiten Fall ist das Signal 24 im "Aus"-Zustand und das Signal 25 im "Ein"-Zustand und aus der Tabelle in Figur 3 ergibt sich der Wert "1". Dieser gibt an, daß dem Hauptspeicher nur eine Ein-Blockanforderung zugesendet wird. Dies stellt nämlich den Fall dar, daß der durch die Zugriffsadresse gekennzeichnete Block nicht im Pufferspeicher steht.We first assume that an instruction read request has been issued and the signal 26 for the block transfer is set to "1" in order to receive from the main memory request the transfer of two blocks. When bit positions 20-27 of the address register 1 are for example "0 0 0 0 1 1 1 1", the address bit 27 is "1". With this condition and when the signal 26 is "1", which is the request to transfer two blocks from the Represents main memory, the operation of the control circuit 27 becomes dependent in four cases divided by the values of signals 24 and 25, which indicate the comparison results: in the In the first case, the two signals 24 and 25 are in the off state (e.g. 00) Then results In the table in FIG. 3, the corresponding value is "0". This means that the Result of the search in the buffer address field using the access address and using the Address which is the block following the block specified by the access address indicates that the desired block is in the buffer memory. There is no If a block transfer is necessary, the signal 28, which is an ordinary block transfer requests and the signal 29 requesting a two-block transfer in the "off" state sent to the main memory In the second case, the signal 24 is in the "off" state and the signal 25 in the "on" state and the table in FIG. 3 results in the Value "1". This indicates that only a one-block request has been sent to main memory will. This represents the case that the identified by the access address Block is not in the buffer memory.
Dies zeigt jedoch an, daß der gewünschte Block dem durch die Zugriffsadresse im Pufferspeicher angegebenen Block folgt. Dem Hauptspeicher wird somit durch das Setzen des Signals 28 in den "Ein"-Zustand und das Setzen des Signals 29 in den "Aus"-Zustand die Anforderung zum Ein-Blocktransfer zugesendet. However, this indicates that the desired block corresponds to the access address The block specified in the buffer memory follows. The main memory is thus assigned by the Setting the signal 28 to the "on" state and setting the signal 29 to the "Off" status, the request for the one-block transfer is sent.
Im dritten Fall ist das Signal 24 im "Ein"-Zustand und das Signal 25 im ~Aus"-Zustand, und aus der Tabelle in Figur 3 ergibt sich der entsprechende Wert "0". Dies heißt, daß die Suche mittels der Adresse, die den dem durch die Zugriffsadresse angegebenen Block folgenden Block angibt, ergibt , daß im Pufferspeicher der gewünschte Block nicht existiert. Dies bedeutet jedoch andererseits, daß im Pufferspeicher der gewünschte Blocke unter der Zugriffsadresse existiert. Aus diesem Grunde ist kein Blocktransfer nötig und die Signale 28 und 29 werden in den "Aus"-Zustand gesetzt.In the third case, the signal 24 is in the "on" state and the signal 25 in the "off" state, and the table in FIG. 3 shows the corresponding one Value "0". This means that the search by means of the address, that of the one by the access address specified block indicates the following block, shows that the desired Block does not exist. However, this means, on the other hand, that in the buffer memory the desired block exists under the access address. This is why no block transfer necessary and signals 28 and 29 are set to the "off" state.
Im vierten Fall sind beide Signale 24 und 25 im ~Ein"-Zustand, und aus der Tabelle in Figur 3 ergibt sich der Wert "2" Dies bedeutet, daß die Suche im Pufferadreßfeld mittels der Zugriffsadresse und mittels der den folgenden Block angebenden Adresse jeweils ergibt, daß im Pufferspeicher kein gewünschter Block vorhanden ist. Aus diesem Grunde wird ein Zwei-Blocktransfer vom Hauptspeicher angefordert, wozu sowohl das Signal 28, das den gewöhnlichen Blocktransfer anfordert und das Signal 29, das den Zwei-Blocktransfer anfordert, in den "Ein"-Zustand gesetzt werden.In the fourth case, both signals 24 and 25 are in the "on" state, and the table in FIG. 3 results in the value "2". This means that the search in the buffer address field by means of the access address and by means of the following block The address given in each case shows that there is no desired block in the buffer memory is available. For this reason, a two-block transfer is requested from the main memory, including both the signal 28 that requests the usual block transfer and the Signal 29 requesting the two-block transfer must be set to the "on" state.
Wir nehmen nun den Fall an, daß eine Operandendatenauslese-Anforderung vorhanden ist und daß beim Blocktransfer das Signal 26 im "Aus"-Zustand bleibt, wodurch vom Hauptspeicher der gewöhnliche Blocktransfer angefordert wird.Wieder nehmen wir an, daß die Bitstellen 20 - 27 des Adreßregisters 1 " 0 0 0 01 1 1 1 " sind. Dann ist das Adreßbeit 27 "1".We now assume the case that an operand data readout request is present and that the signal 26 remains in the "off" state during the block transfer, as a result of which the normal block transfer is requested from main memory. Again let us assume that the bit positions 20 - 27 of the address register 1 "0 0 0 01 1 1 1 ". Then the address part 27 is" 1 ".
Auf die Bedingung , daß das Adreßbit 27 = 1 und das Signal 26 ~Aus" ist, kann der Betrieb der Steuerschaltung 27 in derselben Weise abhängig von den Werten der Vergleichssignale 24 und 25 in vier Fälle eingeteilt werden. Drei Fälle sind jedoch dieselben wie sie oben beschrieben wurden, wo das Signal 26 im "Ein"-Zustand ist, mit Ausnahme des Falls, wo beide Vergleichssignale 24 und 25 im "Ein"-Zustand sind.On the condition that the address bit 27 = 1 and the signal 26 ~ Off " is, the operation of the control circuit 27 may be in the same manner depending on the Values of the comparison signals 24 and 25 are divided into four cases. Three cases however, are the same as described above where the signal 26 is in the "on" state is, except for the case where both comparison signals 24 and 25 are in the "on" state are.
Dann ergibt sich aus der Tabelle in Figur 3 der Wert "1". Dies bedeutet, daß die Suche im Pufferadreßfeld mittels der Zugriffsadresse und mittels der Adresse, die den Block angibt, der dem durch die Zugriffsadresse gekennzeichneten Block folgt, ergibt , daß kein gewünschter Block im Pufferspeicher existiert. Dessen ungeachtet wird eine Ein-Blocktransfer-Anforderung dem Hauptspeicher zugesendet, indem das Signal 28 das den gewöhnlichen Blocktransfer anfordert, in den "Ein"-Zustand gesetzt wird und das Signal 29, das den Zwei-Blocktransfer anfordert, in den "Aus"-Zustand gesetzt wird.The table in FIG. 3 then gives the value "1". This means, that the search in the buffer address field by means of the access address and by means of the address, which specifies the block that follows the block identified by the access address, shows that there is no desired block in the buffer memory. Nevertheless a one-block transfer request is sent to main memory by using the Signal 28 requesting ordinary block transfer is set to the "on" state and the signal 29 requesting the two-block transfer is in the "off" state is set.
Auf diese Weise kann die Anzahl zu übertragender Blöcke gesteuert werden, wenn der Blocktransfer ausgeführt wird.In this way, the number of blocks to be transmitted can be controlled when the block transfer is performed.
Dieses Ausführungsbeispiel ermöglicht bei der Ausführung des Blocktransfers, wenn bis zum Auftreten eines Sprungsbefehls ein kontinuierlicher Speicherbereich beim Auslesen der Befehle benötigt wird die Übertragung von zwei Blöcken bei jedem Block -transfer. Im Vergleich mit einem Fall, wo derselbe Block in zwei Teilblöcke eingeteilt wird, so daß die zwei Teilblöcke gleichzeitig übertragen werden, ist jeweils die vom Empfang einer Blocktransferanforderung vom Hauptspeicher bis zum Start des Auslesens der gewünschten Daten aus dem Hauptspeicher aufgelaufene Zeit halbiert. Da außerdem im Pufferspeicher aufeinanderfolgende Blöcke, die schnell hintereinander verwendet werden, gespeichert sind, kann der NIBR-Wert ebenfalls reduziert werden. Zusätzlich verkürzt sich die Blocktransferzeit, da beim Auslesen von Operandendaten nur ein einziger Block übertragen wird.This embodiment enables when executing the block transfer, if a continuous memory area until a jump command occurs When reading out the commands, the transmission of two blocks is required for each Block transfer. Compared with a case where the same block is divided into two sub-blocks is divided so that the two sub-blocks are transmitted simultaneously each from the receipt of a block transfer request from the main memory to the Start of reading out the desired data from the main memory, accumulated time halved. In addition, since there are consecutive blocks in the buffer that quickly used one after the other, the NIBR value can also be saved be reduced. In addition, the block transfer time is shortened because it is read out only a single block of operand data is transferred.
Die Eintragungen im Pufferadreßfeld sind bei dem obigen Ausführungsbeispiel in die zwei Gruppen mit den als geradzahlig und als ungeradzahlig bezeichneten Eingängen eingeteilt. Bei einem nötigen Blocktransfer wird eine Transferanforderung für einen oder zwei Blöcke ausgegeben. Allgemein kann jedoch der Pufferspeicher und das Pufferadreßfeld in n-Teile eingeteilt werden. Wenn dann sequentiell benachbarten Spalten Adressen verschiedener Feldbereiche (nämlich durch Zuordnung der Spaltenadressen in verschachtelter Form zugeordnet werden, kann eine Anforderung zur Übertragung von maximal Blöcken zum Pufferspeicher ausgegeben werden. Durch ein anderes Zugriffsverfahren zum Pufferadreßfeld können auch dieselben Funktionen ohne das Verschachtelungsverfahren realisiert werden.The entries in the buffer address field are in the above exemplary embodiment into the two groups with the inputs labeled even and odd assigned. If a block transfer is necessary, a transfer request for a or two blocks output. In general, however, the buffer memory and the buffer address field can be divided into n-parts. If then sequentially adjacent columns addresses different field areas (namely by assigning the column addresses in nested Form can be assigned a request for the transfer of a maximum of blocks output to the buffer memory. By another access method to the buffer address field the same functions can also be realized without the nesting method.
Bei dem anhand des beschriebenen Ausführungsbeispiels erläuterten Blocktransfer erhöht sich die zu transferierende Blocklänge, falls eine Befehlsausleseanforderung vorliegt, während die Blocklänge im Falle einer Operandenausleseanforderung verringert ist. Die vorliegende Erfindung ist jedoch nicht auf dieses Verfahren beschränkt Erfindungsgemäß wird bei der Ausführung des B-locktransfers die Anzahl der zu transferierenden Blöcke abhängig von der Zugriffsart zum Hauptspeicher geändert, wodurch sich sowohl der NIBR-Wert als auch die Blocktransferzeitdauer verringern. Die vorliegende Erfindung weist somit den Vorteil auf, daß sie die Blocktransferüberhangzeit für den Pufferspeicher verringert und die Leistung dees Computers steigert.In the case of the explained with the aid of the exemplary embodiment described Block transfer increases the block length to be transferred, if there is an instruction read request, while the block length in the case of an operand read request is decreased. However, the present invention is not limited to this method According to the invention, the number of the blocks to be transferred changed depending on the type of access to the main memory, thereby reducing both the NIBR and the block transfer time. The present invention thus has the advantage of eliminating the block transfer hangover time for the buffer memory and increases the performance of the computer.
Claims (3)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58137243A JPS6027967A (en) | 1983-07-27 | 1983-07-27 | Block transfer control system of buffer storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
DE3427428A1 true DE3427428A1 (en) | 1985-02-14 |
Family
ID=15194112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19843427428 Withdrawn DE3427428A1 (en) | 1983-07-27 | 1984-07-25 | Method and device for controlling block transfer for a buffer memory |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPS6027967A (en) |
DE (1) | DE3427428A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1482402A2 (en) * | 2003-05-27 | 2004-12-01 | Micronas GmbH | Fill level capture in a buffer |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60175143A (en) * | 1984-02-21 | 1985-09-09 | Nec Corp | Microprogram control device |
JP2690593B2 (en) * | 1990-04-11 | 1997-12-10 | 甲府日本電気株式会社 | Information processing device |
JPH0520188A (en) * | 1991-07-10 | 1993-01-29 | Nec Corp | Cache controller |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4363095A (en) * | 1980-12-31 | 1982-12-07 | Honeywell Information Systems Inc. | Hit/miss logic for a cache memory |
-
1983
- 1983-07-27 JP JP58137243A patent/JPS6027967A/en active Pending
-
1984
- 1984-07-25 DE DE19843427428 patent/DE3427428A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4363095A (en) * | 1980-12-31 | 1982-12-07 | Honeywell Information Systems Inc. | Hit/miss logic for a cache memory |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1482402A2 (en) * | 2003-05-27 | 2004-12-01 | Micronas GmbH | Fill level capture in a buffer |
EP1482402A3 (en) * | 2003-05-27 | 2006-03-29 | Micronas GmbH | Fill level capture in a buffer |
Also Published As
Publication number | Publication date |
---|---|
JPS6027967A (en) | 1985-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68920419T2 (en) | Method and arrangement for a powerful DRAM control. | |
DE2617408C3 (en) | Memory module for a data processing device with a memory hierarchy | |
DE2227882C2 (en) | Virtual storage arrangement | |
DE60037174T2 (en) | BUFFER SYSTEM FOR EXTERNAL MEMORY ACCESS | |
DE3909896C2 (en) | ||
DE1956604C3 (en) | Data processing system | |
DE2350884C2 (en) | Address translation unit | |
DE3588009T2 (en) | Device and method for reconfiguring a memory in a data processing arrangement. | |
DE69028153T2 (en) | Cache miss prediction method and apparatus | |
DE2310631C3 (en) | Storage hierarchy for a data processing system | |
DE4022885C2 (en) | Method for moving storage areas and hierarchy storage system | |
DE68924719T2 (en) | Device and method for executing a subroutine in a data processing system with block switching. | |
DE69122520T2 (en) | Multiple bus system memory architecture | |
DE3588061T2 (en) | Memory access control system and method for an information processing device. | |
DE2054830A1 (en) | Information processing system with word-structured memory and method for accessing such a memory | |
DE69227740T2 (en) | Processing arrangement for dynamic address translation in a data processing system | |
DE3851241T2 (en) | Storage arrangement. | |
DE3214230C2 (en) | Memory arrangement with multiple access lines | |
DE3343348A1 (en) | ARRANGEMENT FOR DATA TRANSFER BETWEEN SEVERAL PROCESSORS AND A MEMORY | |
DE68924945T2 (en) | Cache arrangement. | |
DE69031529T2 (en) | Memory control system | |
DE69025782T2 (en) | Register bank switching | |
DE3427428A1 (en) | Method and device for controlling block transfer for a buffer memory | |
DE69321544T2 (en) | Semiconductor memory device | |
DE69808700T2 (en) | Cache memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8125 | Change of the main classification |
Ipc: G06F 12/08 |
|
8130 | Withdrawal |