[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

EP0978048A1 - Bus coupler between a system bus and a local bus in a multiple processor data processing system - Google Patents

Bus coupler between a system bus and a local bus in a multiple processor data processing system

Info

Publication number
EP0978048A1
EP0978048A1 EP97926974A EP97926974A EP0978048A1 EP 0978048 A1 EP0978048 A1 EP 0978048A1 EP 97926974 A EP97926974 A EP 97926974A EP 97926974 A EP97926974 A EP 97926974A EP 0978048 A1 EP0978048 A1 EP 0978048A1
Authority
EP
European Patent Office
Prior art keywords
bus
register
intervention
system bus
buffer
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
Application number
EP97926974A
Other languages
German (de)
French (fr)
Inventor
Michael Belhazy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Technology Solutions GmbH
Original Assignee
Wincor Nixdorf International GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wincor Nixdorf International GmbH filed Critical Wincor Nixdorf International GmbH
Publication of EP0978048A1 publication Critical patent/EP0978048A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port

Definitions

  • the method and the arrangement relate to the organization of multi-computer systems with a system bus common to several modules and bus systems local to the modules.
  • the object of the invention is to reduce the effort for the treatment of such conflicts. This object is achieved in that the data from the write register are not transmitted directly to the system bus, but rather directly to the system bus via the local bus and the intervention register. This reduces the effort in that the write register supplies the data to the intervention register in the same way via the local bus as the processors, so that no difference is visible from the perspective of the intervention register.
  • Fig. 1 shows a modular multiprocessor computing system with two bus couplers and
  • FIG. 1 shows a modular multi-computer system with a system bus 10, a plurality of processor modules 13a, 13c and one of several possible memory modules 11 and other modules on the system bus, for example an I / O module 12.
  • Each processor module 13a, 13c contains a bus system 14a, 14c which is local to the module and to which one or more processors 16a..d are connected via buffer memories 17a..d. This connection is shown in functional form as a series connection of buffer memory 17a..d and processor 16a..d, without this being intended to restrict the actual implementation. Is located between the local bus 14a, 14c and the system bus 10 Each module has a bus coupler 15a, 15c which implements the signal protocols and in particular carries out the protocols for maintaining cache coherence.
  • the read register 23 is used when e.g. the processor 16a requests a data word which is not in its cache 17a (nor in the neighboring cache 17b on the same local bus 14a).
  • the corresponding cache line, which contains the data word, is then requested by the coupler 15a on the system bus 10 and, when it arrives, is first buffered in the reading register 23 in order to then be transferred to the requesting cache 17a by means of the internal bus 14a.
  • protocols are preferably used on the system bus in which other address or data phases can be inserted between the address phase and the associated data phase.
  • the cache line is therefore first transferred to the intervention register 21 by means of the internal bus 14a and thereupon transmitted to the receiver by means of the data phase on the system bus 10 belonging to the triggering address phase.
  • the registers 21, 22 and 23 are usually been necessary because of the internal bus 14 and the system are constructed differently 1 0th
  • the internal bus 14a can certainly transmit a cache line of 64 bytes at the same time, because an internal bus of 512 lines on a circuit board designed using multilayer technology is technically controllable.
  • smaller data widths for example 64 bits, are common.
  • only a lower speed is usually possible on the system bus because this is limited not only by the poor electrical properties of the plugs, but also by the relatively long lines determined by the size of the rear wall.
  • decoupling of the bus systems via registers is expedient.
  • a cache line is also referred to as a block and in particular the amount of data that can be transmitted in parallel on the system bus is referred to as a subblock.
  • a sub-block swap is used.
  • the sub-block is not transmitted in the order of the ascending addresses of the data words, but starting with the data word requested in each case, which can also be in the middle of a block.
  • Such address-swapped subblocks can be entered in the intervention register 21 and in the 23 appear, but not in the write register, whose transfer to the main memory is a storage operation, which can take place in any order as well as in canonical order.
  • a local bus 14a, 14c creates additional cases of conflict in cache coherence.
  • this or its processor 16a has issued a cache line via the internal bus 14a, 14c with the aim of entering this cache line into the main memory 11 ⁇ write back.
  • the coupler 15a thus tries to assign the system bus with a corresponding address cycle in order to use the system bus 10 to write the content of the write register into the Main memory 11 to transfer.
  • the invention uses the observation that the intervention register 21 already has this device and, furthermore, is mostly not occupied.
  • An additional data path 25 is therefore introduced from the write register to the internal bus 14a, and the content of the write register is transferred to the intervention register by means of the internal bus and from there to the system bus with the correct subblock exchange.
  • the main memory 11 is shown in the description as a logical unit. It can be realized by one or more memory modules connected to the system bus. Alternatively or additionally, memory can also be present on the processor modules 13a, 13c, which from the point of view of the other modules behaves like an independent memory 11.
  • An expansion can also take place in such a way that a plurality of intervention registers or a plurality of intervention registers are present and the control thereby permits an additional parallel work in that a further intervention register is filled via the internal bus, while the first still contains its data via the system bus transmits.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

A process and device are disclosed for implementing an intervention-supporting coherence protocol for buffer memories in multiple processor data processing equipment. A bus coupler (15a, 15c) reproduces the coherence protocol of a system bus (10) in a local bus (14a, 14c). When an intervention concerns a buffer line located in the write register (22), the bus coupler (15a, 15c) transfers the buffer line from the write register (22) to the intervention register (21) by means of the local bus (14a, 14c).

Description

BUSKOPPLER ZWISCHEN EINEM SYSTEMBUS UND EINEM LOKALEN BUS IN EINEM MEHRPROZESSOR¬ DATEN VER ARBEITUNGSSYSTEMBUS COUPLER BETWEEN A SYSTEM BUS AND A LOCAL BUS IN A MULTI-PROCESSOR DATA PROCESSING SYSTEM
Technisches GebietTechnical field
Das Verfahren und die Anordnung betreffen die Organisation von Mehrrechnersystemen mit einem mehreren Moduln gemein¬ samen Systembus und zu den Moduln lokalen Bussystemen.The method and the arrangement relate to the organization of multi-computer systems with a system bus common to several modules and bus systems local to the modules.
Stand der TechnikState of the art
Zur Verbesserung der Systemleistung besitzen Mehrrechner¬ systeme Pufferspeicher an jedem Prozessor, üblicherweise als 'Cache' bezeichnet. Zur Vereinfachung der Programmie- rung wird durch verschiedene, beispielsweise in Buch "Computer Architecture - A Quantitative Approach" von J.L. Hennessy und D.A. Patterson, San Franzisco 1995, beschrie¬ bene und als Cache-Kohärenz bezeichnete Maßnahmen sicher¬ gestellt, daß trotz der Datenkopien in den Pufferspeichern ein jederzeit einheitlicher, konsistenter Zugriff auf den gesamten Speicher des Mehrrechnersystems erreicht wird.To improve the system performance, multi-computer systems have buffer memories on each processor, usually referred to as a 'cache'. To simplify the programming, various methods, for example in the book "Computer Architecture - A Quantitative Approach" by J.L. Hennessy and D.A. Patterson, San Franzisco 1995, measures described and referred to as cache coherence ensure that, despite the data copies in the buffer memories, uniform, consistent access to the entire memory of the multicomputer system is achieved at all times.
In solchen, weiter unten ausführlicher dargestellten Mehr- rechersystemen mit einer Hierarchie von Bussystemen sind zusätzliche Zwischenspeicher (Register) für einzelne Cache-Zeilen sinnvoll, die jedoch wiederum in Konflikt mit den Cache-Inhalten treten können. Insbesondere der Fall, daß Daten in einem Schreibregister wie Daten aus einem In- terventionsregister auf den Systembus übertragen werden müssen, verlangt den ensprechenden Schaltungsaufwand für beide Register.In such multicomputer systems with a hierarchy of bus systems, which are described in more detail below, additional buffers (registers) are useful for individual cache lines, which, however, can in turn conflict with the cache contents. In particular, the case in which data in a write register, such as data from an intervention register, must be transferred to the system bus, requires the corresponding circuitry for both registers.
Aufgabe der Erfindung ist es, den Aufwand für die Behand¬ lung von solchen Konflikten zu reduzieren. Diese Aufgabe wird dadurch gelöst, daß die Daten aus dem Schreibregister nicht direkt auf den Systembus, sondern über den lokalen Bus und das Interventionsregister in¬ direkt auf den Systembus übertragen werden. Dadurch wird der Aufwand reduziert, indem das Schreib-Register die Daten in der gleichen Art über den lokalen Bus an das Interventionsregister liefert wie die Prozessoren, so daß aus Sicht des Interventionsregisters kein Unterschied sichtbar ist.The object of the invention is to reduce the effort for the treatment of such conflicts. This object is achieved in that the data from the write register are not transmitted directly to the system bus, but rather directly to the system bus via the local bus and the intervention register. This reduces the effort in that the write register supplies the data to the intervention register in the same way via the local bus as the processors, so that no difference is visible from the perspective of the intervention register.
Kurzbeschreibung der ZeichnungenBrief description of the drawings
Es zeigenShow it
Fig. 1 ein modulares Mehrprozessor-Rechensystem mit zwei Buskopplern undFig. 1 shows a modular multiprocessor computing system with two bus couplers and
Fig. 2 Interventions- , Schreib- und Lese-Register aus einem der Buskoppler.Fig. 2 intervention, write and read registers from one of the bus couplers.
Detaillierte Beschreibung eines AusführungsbeispielsDetailed description of an embodiment
Fig. 1 zeigt ein modulares Mehrrechner-System mit einem Systembus 10, mehreren Prozessor-Moduln 13a, 13c und einem von mehreren möglichen Speichermoduln 11 sowie sonstigen Moduln am Systembus, beispielsweise einem E/A-Modul 12.1 shows a modular multi-computer system with a system bus 10, a plurality of processor modules 13a, 13c and one of several possible memory modules 11 and other modules on the system bus, for example an I / O module 12.
Jeder Prozessor-Modul 13a, 13c enthält einen zu dem Modul lokales Bussystem 14a, 14c, an welches ein oder mehrere Prozessoren 16a..d über Pufferspeicher 17a..d angeschlos¬ sen sind. Dieser Anschluß ist in funktionaler Form als Se- rienschaltung von Pufferspeicher 17a..d und Prozessor 16a..d dargestellt, ohne daß hierdurch die tatsächliche Implementierung beschränkt werden soll. Zwischen dem loka¬ len Bus 14a, 14c und dem Systembus 10 befindet sich auf jedem Modul ein Buskoppler 15a, 15c, welcher die Signal- Protokolle umsetzt und insbesondere die Protokolle für den Erhalt der Cache-Kohärenz durchführt.Each processor module 13a, 13c contains a bus system 14a, 14c which is local to the module and to which one or more processors 16a..d are connected via buffer memories 17a..d. This connection is shown in functional form as a series connection of buffer memory 17a..d and processor 16a..d, without this being intended to restrict the actual implementation. Is located between the local bus 14a, 14c and the system bus 10 Each module has a bus coupler 15a, 15c which implements the signal protocols and in particular carries out the protocols for maintaining cache coherence.
Hierzu werden gewöhnlich, wie in Fig. 2 angedeutet, drei Zwischenregister, nämlich das Interventionsregister 21, das Schreibregister 22 und das Leseregister 23 verwendet. Das Leseregister 23 wird benutzt, wenn z.B. der Prozessor 16a ein Datenwort anfordert, welches nicht in seinem Cache 17a (und auch nicht im benachbarten Cache 17b am selben lokalen Bus 14a) vorhanden ist. Die entsprechende Cache- Line, die das Datenwort enthält, wird dann von dem Koppler 15a auf dem Systembus 10 angefordert und beim Eintreffen zunächst im Leseregister 23 zwischengespeichert, um danach mittels des internen Bus 14a an den anfordernden Cache 17a übertragen zu werden.For this purpose, as indicated in FIG. 2, three intermediate registers, namely the intervention register 21, the write register 22 and the read register 23, are usually used. The read register 23 is used when e.g. the processor 16a requests a data word which is not in its cache 17a (nor in the neighboring cache 17b on the same local bus 14a). The corresponding cache line, which contains the data word, is then requested by the coupler 15a on the system bus 10 and, when it arrives, is first buffered in the reading register 23 in order to then be transferred to the requesting cache 17a by means of the internal bus 14a.
Sofern eine Cache-Line in dem Cache 17a verdrängt wird und über den Systembus 10 in den Hauptspeicher 11 zurückge¬ schrieben werden muß, wird diese zunächst in dem Schreib¬ register 22 zwischengespeichert und sodann über den Systembus 10 übertragen.If a cache line in the cache 17a is displaced and must be written back to the main memory 11 via the system bus 10, this is first temporarily stored in the write register 22 and then transmitted via the system bus 10.
Abgesehen von sehr einfachen Kohärenz-Protokollen ist die Möglichkeit vorgesehen, daß die einzige gültige Kopie ei¬ ner Cache-Line sich in einem der Cache-Speicher, z.B. 17a, befindet und nicht im Hauptspeicher 11. Fordert ein Pro- zessor, z.B. 16c in dem Modul 13c, ein Datum aus einer Cache-Line im Modul 13a an, so übernimmt der Modul 13a den Datentransfer auf dem Systembus 10 anstelle des Hauptspei¬ chers 11. Dieses wird als 'Intervention' bezeichnet. Hier¬ bei werden bevorzugt Protokolle auf dem Systembus verwen- det, bei denen zwischen der Adressphase und zugehöriger Datenphase andere Adress- oder Datenphasen eingeschoben werden können. In Reaktion auf eine notwendige Interventi¬ on wird daher die Cache-Line zunächst in das Interventi¬ onsregister 21 mittels des internen Bus 14a übertragen und daraufhin mittels der zu der auslösenden Adressphase gehö¬ rigen Datenphase auf dem Systembus 10 an den Empfänger übermittelt.Apart from very simple coherence protocols, the possibility is provided that the only valid copy of a cache line is in one of the cache memories, for example 17a, and not in the main memory 11. If a processor, for example 16c in the module 13c, a date from a cache line in the module 13a, the module 13a takes over the data transfer on the system bus 10 instead of the main memory 11. This is referred to as 'intervention'. In this case, protocols are preferably used on the system bus in which other address or data phases can be inserted between the address phase and the associated data phase. In response to a necessary intervention, the cache line is therefore first transferred to the intervention register 21 by means of the internal bus 14a and thereupon transmitted to the receiver by means of the data phase on the system bus 10 belonging to the triggering address phase.
Die Register 21, 22 und 23 sind gewöhnlich schon deshalb notwendig, weil der interne Bus 14a und der Systembus 10 unterschiedlich aufgebaut sind. Insbesondere kann der in¬ terne Bus 14a durchaus eine Cache-Line von 64 Byte gleich¬ zeitig übertragen, weil ein interner Bus von 512 Leitungen auf einer in Multilayer-Technik ausgeführten Leiterplatte technisch beherrschbar ist. Für einen Systembus mit steck- baren Moduln sind geringere Datenbreiten, z.B. 64 Bit, üb¬ lich. Insbesondere ist meist auf dem Systembus nur eine geringere Geschwindigkeit möglich, weil diese nicht nur durch die schlechten elektrischen Eigenschaften der Stek- ker, sondern auch durch die durch die Größe der Rückwand bestimmeten relativ langen Leitungen begrenzt ist. Um da¬ her bei vorgegebener Frequenz auf der Rückwand die Fre¬ quenz auf dem interen Bus frei wählen zu können, ist eine Entkopplung der Bussysteme über Register zweckmäßig. Beim Übertragen der Daten von den Registern auf den Systembus oder umgekehrt findet also beispielsweise eine Umwandlung von Raum- nach Zeitmultiplex oder umgekehrt statt. Hierbei wird auch eine Cache-Line als Block und insbesondere die auf dem Systembus parallel übertragbare Datenmenge als Subblock bezeichnet.The registers 21, 22 and 23 are usually been necessary because of the internal bus 14 and the system are constructed differently 1 0th In particular, the internal bus 14a can certainly transmit a cache line of 64 bytes at the same time, because an internal bus of 512 lines on a circuit board designed using multilayer technology is technically controllable. For a system bus with plug-in modules, smaller data widths, for example 64 bits, are common. In particular, only a lower speed is usually possible on the system bus because this is limited not only by the poor electrical properties of the plugs, but also by the relatively long lines determined by the size of the rear wall. In order to be able to freely select the frequency on the internal bus for a given frequency on the rear wall, decoupling of the bus systems via registers is expedient. When the data is transferred from the registers to the system bus or vice versa, for example, a conversion from space to time division multiplexing or vice versa takes place. Here, a cache line is also referred to as a block and in particular the amount of data that can be transmitted in parallel on the system bus is referred to as a subblock.
Um bei einer von einem Cache bewirkten Datenanforderung die Wartezeit bis zum Eintreffen des zuerst benötigten Da¬ tenwortes aus einer Cache-Line zu reduzieren, wird dabei eine Subblock-Vertauschung benutzt. Hierbei wird der Sub- block nicht in der Reihenfolge aufsteigender Adressen der Datenworte übertragen, sondern beginnend mit dem jeweils angeforderten Datenwort, welches auch in der Mitte eines Blocks liegen kann. Derart adress-vertauschte Subblöcke können in dem Interventions-Register 21 und im Leseregi- ster 23 erscheinen, jedoch nicht im Schreibregister, des¬ sen Übertragung in den Hauptspeicher ja eine Ablage- Operation ist, die in beliebiger, als auch in kanonischer Reihenfolge, erfolgen kann.In order to reduce the waiting time for a data request caused by a cache until the first required data word from a cache line arrives, a sub-block swap is used. In this case, the sub-block is not transmitted in the order of the ascending addresses of the data words, but starting with the data word requested in each case, which can also be in the middle of a block. Such address-swapped subblocks can be entered in the intervention register 21 and in the 23 appear, but not in the write register, whose transfer to the main memory is a storage operation, which can take place in any order as well as in canonical order.
Durch die Einführung eines lokalen Busses 14a, 14c entste¬ hen zusätzliche Konfliktfälle bei der Cache-Kohärenz. Ins¬ besondere kann der Fall eintreten, daß durch eine Verdrän¬ gung in dem Cache 17a dieser bzw. sein Prozessor 16a eine Cache-Line über den internen Bus 14a, 14c ausgegeben hat mit dem Ziel, diese Cache-Line in den Hauptspeicher 11 zu¬ rückzuschreiben. Mit Ende der Übertragung auf dem internen Bus 14a ist damit nur die Kopie in dem Schreib-Puffer 22 die einzig gültige im System. (Andernfalls hätte das Kohä¬ renz-Protokoll gar kein Zurückschreiben in den Hauptspei- eher bestimmt.) Der Koppler 15a versucht also, den System¬ bus mit einem entsprechenden Adresszykluε zu belegen, um den Inhalt des Schreib-Registers mittels des Systembus 10 in den Hauptspeicher 11 zu übertragen. Bevor dieses ge¬ lingt, kann jedoch ein anderer Prozessor Daten aus genau dieser Cache-Line anfordern, die daher aus dem Write- Buffer 22 erfüllt werden müssen. Die Schaltung des Kopp¬ lers ist jedoch darauf ausgelegt, derartige Anfragen aus dem Intervention-Register 21 zu erfüllen. Abgesehen von der wenig effizienten Lösung, die Anfrage abzubrechen in der Hoffnung, daß bis zur ihrer Wiederholung die Schrei¬ boperation erfolgt sein könnte, müssen also die Daten aus dem Write-Puffer auf den Systembus 10 übertragen werden. Dies scheint auf den ersten Blick problemlos möglich zu sein, da der Write-Puffer 22 ohnehin eine Datenverbindung 24 zum Systembus hat.The introduction of a local bus 14a, 14c creates additional cases of conflict in cache coherence. In particular, the case may occur that, by means of a displacement in the cache 17a, this or its processor 16a has issued a cache line via the internal bus 14a, 14c with the aim of entering this cache line into the main memory 11 ¬ write back. At the end of the transmission on the internal bus 14a, only the copy in the write buffer 22 is the only valid one in the system. (Otherwise, the coherence protocol would have determined no writing back to the main memory.) The coupler 15a thus tries to assign the system bus with a corresponding address cycle in order to use the system bus 10 to write the content of the write register into the Main memory 11 to transfer. Before this succeeds, however, another processor can request data from precisely this cache line, which must therefore be fulfilled from the write buffer 22. However, the coupling of the coupler is designed to fulfill such requests from the intervention register 21. Apart from the inefficient solution of terminating the request in the hope that the write operation could have taken place until it is repeated, the data from the write buffer must therefore be transferred to the system bus 10. At first glance, this seems to be possible without any problems, since the write buffer 22 has a data connection 24 to the system bus anyway.
In der praktischen Durchführung stellt sich jedoch ein Problem insofern heraus, als die Daten in dem Schreibre¬ gister nunmehr mit Subblock-Vertauschung auf den Systembus gegeben werden müssen, obwohl dies beim Schreiben nicht notwendig wäre. Das Schreibregister müßte also um einen Multiplexer erweitert werden, der die gewünschte Subblock- Vertauschung bei der Übertragung auf den Systembus bewir¬ ken kann.In practice, however, a problem arises in that the data in the write register must now be transferred to the system bus with sub-block exchange, although this is not the case when writing would be necessary. The write register would therefore have to be expanded by a multiplexer, which can effect the desired sub-block exchange when it is transferred to the system bus.
Die Erfindung benutzt die Beobachtung, daß das Inter¬ ventions-Register 21 diese Einrichtung bereits besitzt und fernerhin meistens nicht belegt ist. Daher wird ein zu¬ sätzlicher Datenpfad 25 vom Schreibregister zum internen Bus 14a eingeführt und der Inhalt des Schreibregisters mittels des internen Busses in das Intervention-Register und von dort mit richtiger Subblock-Vertauschung auf den Systembus übertragen.The invention uses the observation that the intervention register 21 already has this device and, furthermore, is mostly not occupied. An additional data path 25 is therefore introduced from the write register to the internal bus 14a, and the content of the write register is transferred to the intervention register by means of the internal bus and from there to the system bus with the correct subblock exchange.
Obwohl diese Lösung auf den ersten Blick ungünstig und aufwendig erscheint, hat sie sich als sehr einfach durchführbar und effizient herausgestellt. Eine Inter¬ vention, bei der sich die Daten im Schreibregister statt in einem Cache 17a..d befinden, bleibt in der gesamten Steuerung des Intervention-Registers 21 unverändert und reduziert damit in wesentlichem Umfang die Komplexität der Steuerung gegenüber den bisherigen Lösugen. Es muß lediglich die zusätzliche Datenverbindung 25 anstelle des bezogenen Cache 17a..d aktiviert werden, um die Daten auf den internen Bus zu legen. Dabei ist zu beachten, daß bei einer Intervention ein Cache 17a..d ohnehin die Daten als vollständige Cache-Line auf den internen Bus legt. Dieser neue Datenpfad 25 ist weniger aufwendig als ein Multiplexer, der die Daten in veränderter Reihenfolge auf den Systembus legt, und wird durch den Gewinn wegen des geringeren Steuerungsaufwands mehr als aufgewogen. Da der Systembus durch die geringere Bandbreite in der Regel mehr Datenzyklen benötigt als der interne Bus, um eine gesamte Cache-Line zu übertragen, wirkt sich der Umweg über den internen Bus nicht wesentlich verzögernd aus. Fernerhin ist das Schreibregister durch die Übertragung ins Intervention-Register wieder frei geworden.Although this solution appears to be unfavorable and complex at first glance, it has proven to be very easy to carry out and efficient. An intervention in which the data is in the write register instead of in a cache 17a..d remains unchanged in the entire control of the intervention register 21 and thus significantly reduces the complexity of the control compared to the previous solutions. It is only necessary to activate the additional data connection 25 instead of the related cache 17a..d in order to put the data on the internal bus. It should be noted that in the event of an intervention, a cache 17a..d places the data as a complete cache line on the internal bus anyway. This new data path 25 is less complex than a multiplexer, which places the data in a different order on the system bus, and is more than offset by the gain due to the lower control effort. Since the system bus generally requires more data cycles than the internal bus to transmit an entire cache line due to the lower bandwidth, the detour via the internal bus does not have a significant delay. Furthermore the write register has become free again by transferring it to the intervention register.
Der Hauptspeicher 11 ist in der Beschreibung als eine lo¬ gische Einheit dargestellt. Er kann durch einen oder meh- rere an den Systembus angeschlossene Speichermoduln reali¬ siert sein. Alternativ oder zusätzlich kann auch auf den Prozessor-Moduln 13a, 13c Speicher vorhanden sein, der sich aus Sicht der jeweils anderen Moduln wie ein eigen¬ ständiger Speicher 11 verhält.The main memory 11 is shown in the description as a logical unit. It can be realized by one or more memory modules connected to the system bus. Alternatively or additionally, memory can also be present on the processor modules 13a, 13c, which from the point of view of the other modules behaves like an independent memory 11.
Auch kann eine Erweiterung dahingehend stattfinden, daß mehrere Interventionsregister oder mehrere Interventions¬ register vorhanden sind und die Steuerung dadurch eine zu¬ sätzliche Parallelarbeit erlaubt, indem ein weiteres In¬ terventionsregister über den internen Bus gefüllt wird, während das erste noch seine Daten über den Systembus überträgt. An expansion can also take place in such a way that a plurality of intervention registers or a plurality of intervention registers are present and the control thereby permits an additional parallel work in that a further intervention register is filled via the internal bus, while the first still contains its data via the system bus transmits.

Claims

Patentansprüche claims
1. Anordnung in Mehrprozessor-Datenverarbeitungsgeräten mit einem Interventionen umfassenden Kohärenzprotokoll für Pufferspeicher (Cache, 17a..d) und den Merkmalen: - ein Buskoppler (15a, 15c) verbindet einen Systembus (10) mit mindestens einem lokalen Bus (14a, 14c) , an den Prozessoren (16a..d) mit Pufferzeilen enthalten¬ den Pufferspeichern (17a..d) angeschlossen sind,1. Arrangement in multiprocessor data processing devices with a coherence protocol for buffers (cache, 17a..d) and the features: - a bus coupler (15a, 15c) connects a system bus (10) with at least one local bus (14a, 14c) , to the processors (16a..d) with buffer lines containing buffers (17a..d) are connected,
- der Buskoppler (15a, 15c) umfaßt Einrichtungen, die das Kohärenzprotokoll von dem Systembus (10) auf den lokalen Bus (14a, 14c) abbilden und die je minde¬ stens ein Interventionsregister (21) und mindestens ein Schreibregister (22) für Pufferzeilen enthal¬ ten, welche jeweils mit dem lokalen Bus (16a..d) le- send und dem Systembus (10) schreibend verbunden sind, dadurch gekennzeichnet, daß- The bus coupler (15a, 15c) comprises devices which map the coherence protocol from the system bus (10) to the local bus (14a, 14c) and which each have at least one intervention register (21) and at least one write register (22) for buffer lines contain, which are each connected to the local bus (16a..d) and the system bus (10) in writing, characterized in that
- das Schreibregister (22) zusätzlich mit dem lokalen Bus (14a, 14c) derart verbunden ist, daß der Inhalt des Schreibregisters (22) bei einer den Inhalt des Schreibregisters betreffenden Intervention in das Interventionsregister (21) übertragbar ist.- The write register (22) is additionally connected to the local bus (14a, 14c) in such a way that the content of the write register (22) can be transferred to the intervention register (21) in the event of an intervention relating to the content of the write register.
2. Betriebsverfahren für ein Interventionen umfassendes Kohärenzprotokoll für Pufferspeicher (Cache, 17a..d) in Mehrprozessor-Datenverarbeitungsgeräten, mit den Merkmalen:2. Operating method for an interventions-comprehensive coherence protocol for buffer memories (cache, 17a..d) in multiprocessor data processing devices, with the features:
- ein Buskoppler (15a, 15c) bildet das Kohärenzproto¬ koll auf einem Systembus (10) auf einen lokalen Bus- A bus coupler (15a, 15c) forms the coherence protocol on a system bus (10) on a local bus
(14a, 14c) ab, an den Prozessoren (16a..c) mit Puf- ferzeilen enthaltenden Pufferspeichern (17a..d) an¬ geschlossen sind,(14a, 14c) from which processors (16a..c) with buffer memories (17a..d) containing buffer lines are connected,
- der Buskoppler (15a, 15c) enthält ein Interventions- register (21) , in das Pufferzeilen auf Veranlassung des Buskopplers (15a, 15c) von einem Pufferspeicher (17a..c) über den lokalen Bus (14a, 14c) übertragen und sodann auf den Systembus (10) übertragen werden,- The bus coupler (15a, 15c) contains an intervention register (21) into the buffer lines on request the bus coupler (15a, 15c) is transferred from a buffer memory (17a..c) via the local bus (14a, 14c) and then transferred to the system bus (10),
- der Buskoppler (15a, 15c) enthält ein Schreibregi- ster (22) , in welches ein Pufferspeicher (17a..c) auf Veranlassung seines Prozessors (16a.. c) eine Pufferzeile schreibt mit der Bestimmung, über den Systembus 10 in den Hauptspeicher übertragen zu wer¬ den, dadurch gekennzeichnet, daß- The bus coupler (15a, 15c) contains a write register (22), into which a buffer memory (17a..c) writes a buffer line upon request of its processor (16a .. c) with the determination via the system bus 10 in the Main memory to be transferred, characterized in that
- in dem Fall, daß über den Systembus eine Pufferzeile angefordert wird, welche sich in dem Schreibregister (22) befindet, diese aus dem Schreibregister (22) über den lokalen Bus (14a, 14c) in das Interventi- onsregister (21) übertragen wird. - In the event that a buffer line is requested via the system bus, which is located in the write register (22), this is transferred from the write register (22) via the local bus (14a, 14c) into the intervention register (21) .
EP97926974A 1996-06-13 1997-06-04 Bus coupler between a system bus and a local bus in a multiple processor data processing system Withdrawn EP0978048A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19623668 1996-06-13
DE19623668A DE19623668C1 (en) 1996-06-13 1996-06-13 Buffer memory arrangement for multi-processor data processing device
PCT/DE1997/001119 WO1997048055A1 (en) 1996-06-13 1997-06-04 Bus coupler between a system bus and a local bus in a multiple processor data processing system

Publications (1)

Publication Number Publication Date
EP0978048A1 true EP0978048A1 (en) 2000-02-09

Family

ID=7796889

Family Applications (1)

Application Number Title Priority Date Filing Date
EP97926974A Withdrawn EP0978048A1 (en) 1996-06-13 1997-06-04 Bus coupler between a system bus and a local bus in a multiple processor data processing system

Country Status (5)

Country Link
US (1) US6295477B1 (en)
EP (1) EP0978048A1 (en)
JP (1) JP2000512407A (en)
DE (1) DE19623668C1 (en)
WO (1) WO1997048055A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827391B2 (en) * 2007-06-26 2010-11-02 International Business Machines Corporation Method and apparatus for single-stepping coherence events in a multiprocessor system under software control

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
JPH04230549A (en) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> Multilevel cache
GB2260628A (en) * 1991-10-11 1993-04-21 Intel Corp Line buffer for cache memory
US5519839A (en) * 1992-10-02 1996-05-21 Compaq Computer Corp. Double buffering operations between the memory bus and the expansion bus of a computer system
DE69323861T2 (en) * 1993-01-25 1999-10-07 Bull Hn Information Systems Italia S.P.A., Pregnana Milanese Multiprocessor system with shared memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9748055A1 *

Also Published As

Publication number Publication date
JP2000512407A (en) 2000-09-19
US6295477B1 (en) 2001-09-25
WO1997048055A1 (en) 1997-12-18
DE19623668C1 (en) 1997-10-16

Similar Documents

Publication Publication Date Title
DE3588009T2 (en) Device and method for reconfiguring a memory in a data processing arrangement.
DE69519926T2 (en) METHOD AND DEVICE FOR COMPLYING WITH TRANSACTION CONTROL AND FOR SUPPORTING DELAYED REPLIES IN A BUS BRIDGE
DE3751426T2 (en) Bus interface circuit for digital data processor.
DE60026539T2 (en) INPUT / OUTPUT ADDRESS TRANSLATION IN A BRIDGE NEAR THE LOCAL IN / OUT BUS
DE69132652T2 (en) Rechnerdatenleitweglenkungssystem
DE69130203T2 (en) Consistent packet-switched memory bus for multiprocessors with shared memory
DE69130106T2 (en) Arbitration of packet-switched buses, including buses from multiprocessors with shared memory
DE3688505T2 (en) MULTIPORT STORAGE SYSTEM.
DE69327387T2 (en) Post-write control circuit coupled to a packet switched bus for a cache control circuit
DE69834739T2 (en) COMPARING DATA BETWEEN DIFFERENT LADDERS OPERATING ON DIFFERENT FREQUENCIES
DE69223304T2 (en) Arbitration lockout method and apparatus for a remote bus
DE69708933T2 (en) ADDRESS TRANSLATION IN COMPUTER BUS BRIDGE DEVICES
DE69825915T2 (en) METHOD AND DEVICE FOR SWITCHING SOURCE SYNCHRONOUS CLOCK / - AND JOINT-TACT DATA TRANSMISSION MODES IN A MULTI-AGENT TRANSMISSION SYSTEM
DE69230211T2 (en) Integrated memory, administrative procedures and resulting information system
EP0013737A1 (en) Multilevel storage hierarchy for a data processing system
DE69123987T2 (en) Push operation for microprocessor with external system memory
DE19722803A1 (en) Circuit for moving data between remote memories and a computer containing this circuit
DE112008002273T5 (en) Optimum solution for controlling data channels
DE69119149T2 (en) Structure for direct memory-to-memory transfer
DE3502147A1 (en) Data processing system with improved buffer memory control
DE69724732T2 (en) Remote atomic operation and device for performing the operation
DE69326705T2 (en) Method and arrangement for determining the command sequence in a data processing system
DE69629331T2 (en) System and method for providing a flexible storage hierarchy
EP0477595A2 (en) Cache memory device with m bus connections
DE4114053A1 (en) COMPUTER SYSTEM WITH CACHE MEMORY

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19981204

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB

17Q First examination report despatched

Effective date: 20000922

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: FUJITSU SIEMENS COMPUTERS GMBH

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20020308