[go: up one dir, main page]

DE19721685A1 - Bottle necking detection method for multi-processor computer system cache memories - Google Patents

Bottle necking detection method for multi-processor computer system cache memories

Info

Publication number
DE19721685A1
DE19721685A1 DE19721685A DE19721685A DE19721685A1 DE 19721685 A1 DE19721685 A1 DE 19721685A1 DE 19721685 A DE19721685 A DE 19721685A DE 19721685 A DE19721685 A DE 19721685A DE 19721685 A1 DE19721685 A1 DE 19721685A1
Authority
DE
Germany
Prior art keywords
addresses
cache
address translation
absolute
memory
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.)
Granted
Application number
DE19721685A
Other languages
German (de)
Other versions
DE19721685B4 (en
Inventor
Dirk Twiehaus
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
Siemens Nixdorf Informationssysteme AG
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 Siemens Nixdorf Informationssysteme AG filed Critical Siemens Nixdorf Informationssysteme AG
Priority to DE19721685A priority Critical patent/DE19721685B4/en
Publication of DE19721685A1 publication Critical patent/DE19721685A1/en
Application granted granted Critical
Publication of DE19721685B4 publication Critical patent/DE19721685B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The method involves determining bottlenecks in cache memories of computers with several processors which operate with a address translation of virtual into absolute addresses by use of an address translation table. The processors are connected respectively with a cache memory, using absolute addressing, whereby the cache memories access via a bus system, a common memory. A logging device connected with the bus system records the addresses on the bus system along with control information, triggered through a combinations of predetermined control signals. The address translation tables of affected processors are stored at the beginning of an analysis process, and at least the absolute addresses of the accesses on the buffer memories are recorded by the logging device. The address translation tables of affected processors are stored at the end of the recording in the same manner as at the beginning, and the recorded absolute addresses are processed in such way, that solely those absolute addresses are converted into virtual addresses, which have a corresponding entry in the tables.

Description

Technisches GebietTechnical field

Die Erfindung betrifft ein Verfahren zur Bestimmung von Engpässen, wie sie bei Pufferspeichern in Computersyste­ men, insbesondere solche mit mehreren Prozessoren und ge­ meinsamem Speicher, auftreten.The invention relates to a method for determining Bottlenecks, such as those in buffer memories in computer systems men, especially those with multiple processors and ge shared memory.

Stand der TechnikState of the art

Bei Hochleistungs-Rechnersystemen wird vor jeder Zen­ traleinheit ein Pufferspeicher (CACHE) vorgesehen, um den Zugriff auf den relativ langsamen Hauptspeicher scheinbar zu beschleunigen. Dabei wird benutzt, daß mit Zugriff auf eine Speicherstelle mit hoher Wahrscheinlichkeit auf die­ se oder eine benachbarte recht bald noch mehrere erfol­ gen. Dieser Effekt wird Lokalität des Zugriffs genannt.When it comes to high-performance computer systems, every Zen Traleinheit a buffer memory (CACHE) provided to the Apparently access to the relatively slow main memory to accelerate. It uses that with access to a location with high probability on the se or a neighboring one will soon have more success This effect is called the locality of the access.

Dabei besteht der Cache aus einer Anzahl von Einträgen, die als Cache-Zeilen (cache line) bezeichnet werden und mehreren, aufeinanderfolgende Speicherworten entsprechen. Zu jedem gepuffertem Speicherwort wird auch dessen Adres­ se gespeichert, so daß bei jedem Zugriff entschieden wer­ den kann, ob die gespeicherten Daten gültig sind. Übli­ cherweise erhalten die Cache-Zeilen einen Alterungs-Zähler, so daß eine neue Cache-Zeile diejenige ersetzt, die am längsten nicht benutzt wurde. The cache consists of a number of entries, which are referred to as cache lines and correspond to several successive memory words. The address of each buffered memory word is also added se saved so that it is decided with each access can whether the stored data is valid. Usual the cache lines are given an aging counter, so that a new cache line replaces the one that has not been used for a long time.  

Besonders wirksam ist ein Cache, wenn mehrere Prozesse gemeinsame Datenbereiche verwenden, weil diese dann so häufig referiert werden, daß sie im Cache verbleiben. Dies trifft insbesondere für das Betriebssystem zu, des­ sen Teile natürlichweise einer gemeinsamen Benutzung durch die Anwendungsprogramme unterliegen.A cache is particularly effective when there are multiple processes use common data areas because this is how it works are often cited that they remain in the cache. This is especially true for the operating system that parts of course a common use subject to application programs.

Andererseits wird die Leistung eines solchen Systems we­ sentlich reduziert, wenn der als Verdrängung bezeichnete Prozeß des Auslagerns einer Cache-Zeile zugunsten einer neuen überwiegt. Dieses unerwünschte Verhalten wird, wenn es gehäuft auftritt, auch als "thrashing" bezeichnet. Der dabei auftretende Effekt, daß das gewünschte Datenelement nicht im Cache vorhanden ist, sondern aus dem Hauptspei­ cher geholt werden muß, wird üblicherweise als "cache miss" bezeichnet.On the other hand, the performance of such a system will we considerably reduced if the one designated as repression Process of swapping out a cache line in favor of one new predominates. This unwanted behavior will, though it occurs frequently, also known as "thrashing". Of the effect that occurs that the desired data element is not in the cache, but from the main menu must be fetched is usually called "cache miss ".

Es sind Programme bekannt, die absichtlich "thrashing" herbeiführen, um über die dadurch bewirkte signifikant verlängerte Laufzeit die Cache-Größe per Software zu be­ stimmen. Umfaßt beispielsweise ein Cache 128 Zeilen à 64 Bytes, so wird das Programm eine Tabelle von mehr als 128 Zeilen à 64 Bytes anlegen, aber immer nur das erste Byte einer Zeile benutzen, da die üblichen Cache-Speicher im­ mer nur ganze Cache-Zeilen verwalten. Solange das Pro­ gramm in einer Schleife weniger als 128 Zeilen dieser Ta­ belle zyklisch benutzt, werden alle diese in den Cache-Spei­ cher geladen und bleiben dort erhalten. Werden jedoch mehr als 128 Zeilen zyklisch benutzt, so verdrängt jede Benutzung eine Cache-Zeile, so daß die Leistung um bei­ spielsweise den Faktor fünf reduziert wird. Programs are known to intentionally "thrash" induce to be significant about the effects of this extended runtime to cache size via software voices. For example, a cache contains 128 lines of 64 Bytes, the program will have a table of more than 128 Create lines of 64 bytes each, but only the first byte line because the usual cache memory in only manage entire cache lines. As long as the pro grams in a loop less than 128 lines of this Ta belle used cyclically, all of these are stored in the cache memory cher loaded and remain there. However cyclically used more than 128 lines, so each displaces Use a cache line, so performance at for example, the factor five is reduced.  

Es ist jedoch umgekehrt erstrebenswert, die Effekte von "thrashing" möglichst zu vermeiden. Zu diesem Zweck wer­ den Einrichtungen verwendet, die die Verdrängungen verur­ sachenden Adressen aufzeichnen und für eine Auswertung zur Verfügung stellen.However, it is desirable to reverse the effects of Avoid "thrashing" if possible. For this purpose who the institutions that cause the repressions record relevant addresses and for evaluation provide.

Für die in neueren Prozessoren integrierten Caches sind Diagnoseeinrichtungen vorgesehen, die die Anzahl der "cache misses" pro Prozeß aufgezeichnen können. Damit kann dann zumindest der verursachende Prozeß identifi­ ziert werden und dieser dann durch weitere, meist gedank­ liche, Analyse diagnostiziert und ggf. verbessert werden. Ein Hilfsmittel hierzu wird auch als "profiling" bezeich­ net, bei dem über einen Zeitgeber das zu untersuchende Programm regelmäßig unterbrochen wird und der Stand des Befehlszählers notiert wird, um herauszufinden, an wel­ chen Stellen das Programm am häufigsten verweilt, weil diese Stellen häufig mit den Stellen koinzidieren, bei denen "thrashing" verursacht wird. Diese Methoden liefern jedoch lediglich Hinweise, an Hand derer das Programm ge­ danklich analysiert werden kann und durch probeweise Ver­ änderung eine Verbesserung versucht werden kann, die je­ doch immer nur auf das zu analysierende Programm allein bezogen sind.For the caches integrated in newer processors Diagnostic devices provided the number of Can record "cache misses" per process. In order to can then at least identify the causative process be adorned and this by further, mostly thought liche analysis can be diagnosed and improved if necessary. An aid to this is also referred to as "profiling" net, with which to be examined via a timer Program is interrupted regularly and the status of Command counter is noted to find out to which The most frequent part of the program is because these posts often coincide with the posts at which is caused by "thrashing". These methods deliver however, only information that the program uses thankfully can be analyzed and by trial Ver change an improvement can be tried that ever but always only on the program to be analyzed are related.

Es sind ferner Hardware-Einrichtungen bekannt, die die Hardware-Vorgänge in einem System zu erfassen erlauben und im Folgenden als "Logger" bezeichnet werden. Hierzu sind insbesondere die als Logik-Analysatoren bekannten Einrichtungen verwendbar; es können aber auch spezielle Geräte hierzu eingerichtet werden, deren Eigenschaften sich aus der Beschreibung ergeben. Mit diesen könnten auch die Adressen ermittelt werden, die zu einem "cache miss" führen. Da es sich allerdings um Speicher-Adressen handelt und die Zentraleinheit heute überwiegend über Adressumsetzung verfügt, die einer virtuellen Program­ madresse auch während der Laufzeit andere absolute Spei­ cheraddressen zuordnen kann, erscheint es aussichtslos, mittels eines Logik-Ahalysators hier verwertbare Informa­ tion bereitstellen zu können. Dies gilt umso mehr, wenn mehrere Cache-Speiche über ein Bussystem mit einem ge­ meinsamen Speicher verbunden sind, weil die Adressüber­ setzungstabellen in jeder Zentraleinheit unterschiedlich sind und zu unterschiedlichen Zeiten verändert werden.Hardware devices are also known which Allow hardware processes to be recorded in a system and hereinafter referred to as "loggers". For this are, in particular, those known as logic analyzers Facilities usable; but it can also be special Devices for this are set up, their properties  arise from the description. With these could the addresses are also determined which lead to a "cache miss ". However, since these are memory addresses acts and the central unit today mainly about Address translation has a virtual program madresse other absolute storage also during the term can assign addresses, it seems hopeless Informa usable here by means of a logic analyzer to be able to provide. This applies all the more if multiple cache memory over a bus system with a ge shared memory because the addresses are over settlement tables different in each central unit and are changed at different times.

In der Patentschrift US 5,630,097 wird ein Verfahren be­ schrieben, mit dem eine Ursache von Leistungsverlusten, die durch ungünstige Verwendung des Cache entstehen, ver­ mieden werden können. Hierzu wird zunächst der Cache der­ art erweitert, daß eine Anzahl von Adressen von dem Cache-Mechanismus ausgeschlossen wird. Diese Adressen werden bestimmt, indem ein permanent vorhandener Zusatz die einen "cache miss" verursachenden Adressen durch "sampling" aufzeichnet und dem Betriebssystem zur Verfü­ gung stellt. Diese Einrichtung dient dabei dazu, einen speziellen Fall zu kompensieren, der insbesondere bei "direct mapped" Caches gehäuft auftritt und durch dynami­ sche Neuzuordnung von virtuellen zu absoluten Adressen entschärft werden kann. Da die Einrichtung permanent vor­ handen ist und vom Betriebssystem bedient wird, kann die­ ses auch mitführen, wie lange welche Zuordnung von virtu­ ellen zu absoluten Adressen und umgekehrt gültig ist und die Einträge der Diagnoseeinrichtung entsprechend bewer­ ten. Allerdings werden hierdurch nur die Folgen einer speziellen Variante von Engpässen in ihrer Wirkung redu­ ziert.A method is described in US Pat. No. 5,630,097 wrote, with a cause of performance loss, that arise from unfavorable use of the cache, ver can be avoided. To do this, the cache of the art expanded that a number of addresses from that Cache mechanism is excluded. These addresses are determined by a permanent addition the addresses causing a "cache miss" "sampling" records and available to the operating system supply. This facility serves one to compensate for a special case, in particular with "direct mapped" caches occur frequently and through dynami Reallocation of virtual to absolute addresses can be defused. Because the establishment is permanent is available and operated by the operating system, the ses also keep track of how long virtu  ellen to absolute addresses and vice versa is valid and rate the entries of the diagnostic device accordingly However, this only results in the consequences of one special variant of bottlenecks in their effect redu graces.

Im Verlaufe der Erprobung der nachfolgend beschriebenen Erfindung wurde ein Effekt diagnostiziert, der abstrakt bereits als "false sharing bekannt ist, dessen Diagnose als Ursache von Leistungseinbußen bei Cache-Speichern je­ doch bislang so nicht bekannt war.In the course of testing the ones described below Invention was diagnosed with an effect that was abstract already known as "false sharing, its diagnosis as the cause of cache performance degradation ever but was previously unknown.

Wie oben bereits dargestellt, ist die gemeinsame Benutzung von Speicherbereichen durch mehrere Prozesse auf dersel­ ben CPU anzustreben, da der Cache hierbei seine volle Wirkung entfaltet. Dies gilt auch, wenn zwei verschiedene Prozesse zwar dieselbe Cache-Zeile benutzen, aber völlig getrennte Daten, z. B. ausschließlich das erste und das letzte Byte einer solchen Zeile, solange beide Prozesse auf derselben Zentraleinheit ablaufen bzw. auf Zen­ traleinheiten, die denselben Cache verwenden.As already shown above, sharing is of memory areas through multiple processes on the same ben CPU to strive for, since the cache is its full Effect. This also applies if two different ones Processes use the same cache line, but completely separate data, e.g. B. only the first and that last byte of such a line as long as both processes run on the same central unit or on Zen central units that use the same cache.

Anders jedoch liegt der Fall, wenn zwei Prozesse diesel­ ben Daten verwenden, aber auf getrennten Zentraleinheiten ablaufen, die auch getrennte Caches verwenden. Dann muß bei jeder Alteration des Zugriffs die Cache-Zeile in den jeweils anderen Cache geladen werden. Aus diesem Grunde sind die Betriebssysteme so ausgelegt, daß Prozesse mit gemeinsamem Speicher möglichst auf derselben Zentralein­ heit ablaufen. The situation is different if two processes are diesel Use data, but on separate central processing units that also use separate caches. Then must with each alteration of the access the cache line in the each other cache are loaded. For this reason the operating systems are designed so that processes with shared memory if possible on the same central unit run out.  

Anders liegt der Fall, wie mit Hilfe der Erfindung dia­ gnostiziert wurde, beim "false sharing". Dadurch, daß die Prozesse getrennte Speicherbereiche umfassen, wird das Betriebssystem diese durchaus verschiedenen Prozessoren zuordnen und die Leistung des Systems beeinträchtigen. Weitere Erläuterungen sind weiter unten in der Beschrei­ bung dargestellt.The situation is different, as with the aid of the invention was diagnosed with "false sharing". Because the Processes include separate storage areas, that will Operating system these quite different processors assign and affect the performance of the system. Further explanations are given below in the description exercise.

Aufgabe der Erfindung ist es daher, ein Verfahren anzuge­ ben, mit dem Engpässe bei der Cache-Benutzung in Mehrpro­ zessorsystemen mit mehreren Cache-Speichern aufgedeckt werden können.The object of the invention is therefore to provide a method ben, with the bottlenecks in the cache use in Mehrpro processor systems with multiple cache memories uncovered can be.

Beschreibung der ErfindungDescription of the invention

Entgegen der prinzipiell richtigen Annahme, daß ein Rück­ schluß von absoluten Adressen auf die zugehörigen Pro­ gramme im nachhinein nicht zuverlässig ist, verwendet die Erfindung einen Logger, der an das Bussystem angeschlos­ sen ist, das die Cache-Speicher mit dem Hauptspeicher koppelt. Dieser Logger registriert die Adressen, die zu einem Datentransfer von dem Hauptspeicher oder einem an­ deren Cache führen. Sinnvollerweise wird auch mit aufge­ zeichnet, welcher Cache Auslöser für diesen Transfer war. Zu Beginn und am Ende der Aufzeichnung werden die Adress­ umsetzungs-Tabellen des Betriebssystems abgespeichert und nur diejenigen Adressen verwendet, die in beiden Tabellen gleiche Zuordnung haben.Contrary to the basically correct assumption that a return conclusion of absolute addresses on the associated Pro is not reliable afterwards, uses the Invention a logger connected to the bus system sen that is the cache memory with the main memory couples. This logger registers the addresses to a data transfer from or to the main memory keep their cache. It makes sense to also include records which cache was the trigger for this transfer. At the beginning and at the end of the recording the addresses implementation tables of the operating system are saved and only those addresses used in both tables have the same assignment.

Er ergibt sich dabei, daß eine große Anzahl von häufig zu "cache misses" führenden Adressen in beiden Adressum­ setzungs-Tabellen dieselbe Zuordnung haben und daher zu identifizierbaren Programmteilen führen.It results in a large number of times too "cache misses" leading addresses in both addressum  Settlement tables have the same assignment and therefore too lead identifiable parts of the program.

Es handelt sich also um ein Verfahren zur Bestimmung von Engpässen bei Pufferspeichern in Rechnern mit mehreren Zentraleinheiten und gemeinsamem Speicher, wobei eine Adressübersetzung von virtuellen in absolute Adressen in den Zentraleinheiten stattfindet, vor Beginn und nach En­ de einer Meßperiode die Adressumsetzungstabellen ausge­ lesen werden, während einer Meßperiode die Zugriffe auf den gemeinsamen Speicher mit absoluten Adressen aufge­ zeichnet und nach Ende der Meßperiode lediglich die ab­ soluten Adressen in virtuelle Adressen umgesetzt werden, die in beiden Adressumsetzungstabellen gleich sind.It is therefore a method for determining Bottlenecks in buffer memories in computers with several Central processing units and shared memory, one Address translation from virtual to absolute addresses in the central units takes place, before the start and after En de the address translation tables from a measurement period will be read during a measurement period shared memory with absolute addresses signs and after the end of the measurement period only the real addresses are converted into virtual addresses, which are the same in both address translation tables.

Kurzbeschreibung der ZeichnungenBrief description of the drawings

Es zeigtIt shows

Fig. 1 ein Blockschaltbild eines Rechnersystems, auf dem die Erfindung durchgeführt werden kann. Fig. 1 is a block diagram of a computer system on which the invention can be carried out.

Ausführungsbeispiel der ErfindungEmbodiment of the invention

In Fig. 1 ist ein Rechnersystem dargestellt, bei dem zwei Zentraleinheiten 11a, 11b über ein Bussystem 10 mit zwei Speichermoduln 20a, 20b gekoppelt sind. Die Anzahl der Zentraleinheiten und Speichermoduln kann dabei nach den Einsatzanforderungen gewählt werden; es ist auch möglich, nur lediglich einen Speichermodul zu verwenden. Die An­ zahl der Zentraleinheiten beträgt mindestens zwei.In Fig. 1, a computer system is shown in which two central processing units 11 a, 11 b via a bus system 10 with two storage modules 20 a, b are coupled to 20. The number of central units and memory modules can be selected according to the application requirements; it is also possible to use only one memory module. The number of central units is at least two.

Jede Zentraleinheit 11a, 11b besteht aus mindestens einem Prozessor 12a, 12b, einer Adressumsetzungseinrichtung 13a, 13b und einem Pufferspeicher 14a, 14b, üblicherweise als "Cache" bezeichnet. Es ist ohne weiteres möglich, daß die Adressumsetzung 13a, 13b in den jeweiligen Prozessor integriert ist, und daß mehr als ein Prozessor auf einen gemeinsamen Cache arbeiten. Ein Cache speichert mehr als ein Byte oder Wort, sondern immer eine ganze Reihe, Cache-Line genannt, von z. B. 64 Byte, und umfaßt z. B. 128 Cache-Zeilen.Each central unit 11 a, 11 b consists of at least one processor 12 a, 12 b, an address conversion device 13 a, 13 b and a buffer memory 14 a, 14 b, usually referred to as "cache". It is easily possible that the address conversion 13 a, 13 b is integrated in the respective processor and that more than one processor work on a common cache. A cache stores more than one byte or word, but always a whole row, called a cache line, of e.g. 64 bytes, and includes e.g. B. 128 cache lines.

Die Cache-Speicher verwenden ein Verfahren zur Daten-Kohärenz, mit dem sichergestellt ist, daß die Cache-Spei­ cher transparent sind, d. h. daß sich das Gesamtsy­ stem, abgesehen von der schnelleren Ausführung, so ver­ hält, als ob die Cache-Speicher nicht vorhanden seien. Beispielsweise wird bei Anforderung eines Bytes oder Da­ tenwortes eine gesamte Cache-Zeile aus einem der beiden Speicher 20a, 20b angefordert und im jeweiligen Cache 14a, 14b abgelegt. Fordert danach ein Prozeß auf einer der anderen Prozessoren ein Byte derselben Adresse an, so wird die Speicheranforderung meist von dem Cache befrie­ digt, der dieses Byte gepuffert hat.The cache uses a method of data coherence, which ensures that the cache is transparent, ie that the overall system, apart from the faster execution, behaves as if the cache is not are present. For example, when a byte or data word is requested, an entire cache line is requested from one of the two memories 20 a, 20 b and stored in the respective cache 14 a, 14 b. If a process then requests a byte of the same address on one of the other processors, the memory request is usually satisfied by the cache that has buffered this byte.

Wie oben dargelegt, bewirkt ein häufigeres Nachladen eines Cache aus einem anderen oder dem Speicher eine wesentli­ che Leistungseinbuße. Um diesen Effekten auf die Spur zu kommen, wird wie folgt vorgegangen:
An den Bus 10 wird ein Logger 30 angeschlossen. Dieser ist mit den Daten-, Adress- und Steuerleitungend des Bus­ systems 10 verbunden. Durch Programmierung des Loggers wird festgelegt, welche Signalzustände auf den Steuerlei­ tungen eine Speicherung von Eingangssignalen, hier denen auf den Adressleitungen, bewirken soll. Indem diese Pro­ grammierung so eingerichtet wird, daß Speicheranforderun­ gen seitens eines Cache selektiert werden, werden alle Anfragen von Cache-Lines protokolliert. Dabei werden aus­ gewählt Steuerleitungszustände mit aufgezeichnet, aus de­ nen beispielsweise ermittelt werden kann, welche Zen­ traleinheit 11a, 11b die Anforderung gestellt hat, und ob es sich um einen Lese- oder Schreibzugriff handelt. Je nach verwendetem Bussystem kann diese Information auch auf den Datenleitungen erscheinen, oder es können keine getrennten Daten- und Adressleitungen vorhanden sein. Durch den Logger, der einen größeren, nicht gezeigten Speicher, enthält, werden also die ausgewählten Adress­ worte zusammen mit der weiteren Information in eben die­ sem Speicher abgelegt. Dieser Speicher ist in der Lage, die anfallenden Daten mit der maximalen, auf dem Bus auf­ laufenden Geschwindigkeit abzulegen. Weniger günstig, aber auch möglich, wenn der Speicher nicht ausreicht, ist eine Aufzeichnung in Stichproben, bei beispielsweise nur jeder sechzehnte auslösende Transfer tatsächlich gespei­ chert wird.
As stated above, reloading a cache from another memory or the memory more often results in a significant performance penalty. To track down these effects, proceed as follows:
A logger 30 is connected to the bus 10 . This is connected to the data, address and control line end of the bus system 10 . Programming the logger determines which signal states on the control lines should cause storage of input signals, here those on the address lines. By setting up this programming so that memory requests from a cache are selected, all requests from cache lines are logged. In this case, selected control line states are also recorded, from which, for example, it can be determined which central unit 11 a, 11 b has made the request and whether it is a read or write access. Depending on the bus system used, this information may also appear on the data lines or there may be no separate data and address lines. The logger, which contains a larger memory, not shown, stores the selected address words together with the other information in this memory. This memory is able to store the data at the maximum speed running on the bus. Less favorable, but also possible if the memory is insufficient, is a recording in random samples, for example when only every sixteenth triggering transfer is actually saved.

Die Speicherung kann von einem Programm, welches in einer der Zentraleinheiten 11a, 11b abläuft, ausgelöst werden. Dies kann entweder über eine speziell hierzu eingerichte­ te Signalleitung oder, bevorzugt, durch ein Auslöse-Muster, beispielsweise den Zugriff auf eine bestimmte, sonst nicht verwendete absolute Adresse, erreicht werden.The storage can be triggered by a program that runs in one of the central units 11 a, 11 b. This can be achieved either via a signal line specially set up for this purpose or, preferably, by means of a trigger pattern, for example access to a specific, otherwise unused absolute address.

Bevor das Programm die Speicherung auslöst, stellt es ei­ ne Kopie der Adressumsetzungstabellen aller Prozessoren, die bei der Analyse berücksichtigt werden sollen, auf ei­ nem (nicht gezeigten) Massenspeicher sicher. Diese Opera­ tion ist von System zu System unterschiedlich und hängt davon ab, ob diese Tabellen in der Adressumsetzung selbst abgelegt sind, ob das Betriebssystem für Verwaltungszwec­ ke eine Kopie führt, die auch verwendbar ist, oder in dem Speicher, der dann meist mit über den Cache geführt ist, ablegt. Auf jeden Fall besteht diese Tabelle aus minde­ stens drei Spalten; der absoluten Adresse, wie sie dem Cache präsentiert wird, der virtuellen Adresse im Adress­ raum eines Prozesses und eine Angabe über den Prozeß selbst. In der Regel, insbesondere in Betriebssystemen, deren Namen auf -ix endet, wird jedem Prozeß eine fort­ laufende Nummer zugeordnet, welche erst nach etlichen Stunden Betriebszeit wiederverwendet wird. Zusätzlich werden die Informationen über die bezogenen Prozesse si­ chergestellt, die beispielsweise Diagnoseinformation wie Symboltabellen u.ä. enthalten.Before the program triggers the storage, it sets up ne copy of the address translation tables of all processors, that are to be taken into account in the analysis on ei nem (not shown) mass storage safely. This opera tion differs from system to system and depends depend on whether these tables in the address translation itself are stored whether the operating system for administrative purposes ke keeps a copy that can also be used, or in which Memory, which is then mostly carried over the cache, discards. In any case, this table consists of at least at least three columns; the absolute address, like the one Cache is presented, the virtual address in the address space of a process and an indication of the process itself. Usually, especially in operating systems, whose name ends in -ix, each process becomes one Sequential number assigned, which only after several Hours of operation is reused. In addition the information about the related processes is si which, for example, diagnostic information such as Symbol tables and the like contain.

Danach wird die Aufzeichnung mit dem Logger 30 gestartet; entweder manuell oder per Signal. Ist die Aufzeichnung beendet, werden erneut die Addressumsetzungstabellen in der gleichen Art wie vor Beginn der Aufzeichnung abgespei­ chert. Sodann kann die Information aus dem Logger 30 auf einen Rechner, bevorzugt den Rechner, auf dem die Adres­ sumsetzungstabellen abgelegt sind, übertragen. Diese Ope­ ration ist zeitunkritisch, da die Adressumsetzungstabelle und sonstige Verwaltungsinformation bereits sicherge­ stellt ist. Alle diese Daten können sicherlich auch auf einen anderen Rechner übertragen und dort ausgewertet werden, wenn dies zweckmäßig ist, um beispielsweise wei­ tere Messungen durchführen zu können.Then the recording is started with the logger 30 ; either manually or by signal. When the recording is finished, the address conversion tables are saved again in the same way as before the recording started. The information from the logger 30 can then be transferred to a computer, preferably the computer on which the address conversion tables are stored. This operation is not time-critical since the address translation table and other administrative information is already ensured. All of this data can certainly also be transferred to another computer and evaluated there if this is expedient, for example in order to be able to carry out further measurements.

In einem nächsten Schritt werden die abgespeicherten Adressumsetzungstabellen zusammengeführt. Hierbei werden zunächst die vor Beginn der Messung ermittelten zu einer zusammengeführt, indem die Nummer des Prozessors hinzuge­ fügt und aus den vielen per-Prozessor-Tabellen eine ein­ zige mit jetzt (mindestens) vier Spalten, nämlich Abso­ lutadress, virtuelle Adresse, Prozeßnummer und Prozes­ sornummer, erzeugt wird, die bevorzugt nach Absolutadres­ se sortiert ist.In a next step, the saved ones Address translation tables merged. Here are first the one determined before the start of the measurement merged by adding the processor number inserts and one from the many per-processor tables tens with now (at least) four columns, namely Abso Lutadress, virtual address, process number and processes serial number is generated, which is preferred according to absolute addresses is sorted.

Die dadurch entstehenden beiden Adresstabellen von vor und nach der Aufzeichnung werden nun derart gemischt, daß nur in beiden identische Zeilen verwendet werden. Damit bleibt zwar nur Information über solche Prozesse übrig, die während der Messung weder erzeugt noch beendet noch im Speicher verschoben wurden. Dies sind jedoch, wie die Erprobung der Erfindung gezeigt hat, überwiegend die im folgenden Schritt benötigten Zeilen.The resulting two address tables from before and after recording are mixed in such a way that can only be used in both identical lines. In order to only information about such processes remains, which neither created nor ended nor during the measurement have been moved in memory. However, these are like that Testing of the invention has shown, mainly that in following step required lines.

Der folgende Schritt besteht darin, die Aufzeichnung des Loggers 30 nach Absolutadressen zu sortieren und eine Ta­ belle zu erzeugen, in der zu jeder Absolutadresse die Häufigkeit des Auftretens und die weiteren Angaben, ins­ besondere die Unterscheidung in Schreib- und Leseopratio­ nen sowie die verursachende Zentraleineheit, notiert sind. Dies kann im übrigen möglicherweise bereit vom Log­ ger durchgeführt werden, damit dieser eine große Menge aufzeichnen kann, und hängt von dessen Ausstattung ab.The next step consists in sorting the recording of the logger 30 according to absolute addresses and generating a table in which the frequency of occurrence and the further details, in particular the distinction between read and write options and the causing central unit, for each absolute address , are noted. Incidentally, this can possibly be done by the logger so that it can record a large amount, and depends on its equipment.

Die von dem Logger bereitgestellte Tabelle und die ge­ mischte Tabelle der Adressübersetzung werden nunmehr zu einer Ergebnistabelle gemischt, indem für gleiche Abso­ lutadressen die jeweiligen Spalteneinträge zusammenge­ führt werden; die Absolutadresse könnte entfallen und wird lediglich zum besseren Verständnis durch den die Ta­ belle auswertenden Fachmann mitgeführt. Diese Tabelle kann nunmehr ausgewertet werden, indem sie beispielsweise primär nach Häufigkeit und sekundär nach Prozeßnummer sortiert wird. Damit werden diejenigen Prozesse mit ihrer virtuellen Adresse aufgeführt, die besonders häufig zu einer das System ausbremsenden Speicheranforderung ge­ führt haben. Im übrigen kann mittels gegebenenfalls vor­ handenen Diagnoseinformation das betroffene Unterprogramm und die darin relative Adresse ermittelt und mit aufge­ führt werden.The table provided by the logger and the ge mixed table of address translation are now too a result table mixed by for equal Abso lutadressen the respective column entries be led; the absolute address could be omitted and is only for better understanding by the Ta belle evaluating expert carried. this table can now be evaluated, for example by primarily by frequency and secondarily by process number is sorted. With this, those processes with their virtual address listed which is particularly common too a memory request slowing down the system have leads. Otherwise, if necessary, before available diagnostic information the affected subroutine and determined the relative address in it and added it leads.

Es ergab sich, daß eine große Anzahl von signifikanten Hinweisen zu analysieren war. Unter anderem wurde ein Fall gefunden, in dem mehrere Prozesse die gleiche Cache-Line benutzten, um, durch Unterbrechungen im Millisekunden-Takt gesteuert, einen Zeitzähler mitzuführen. Das "false sharing" war nicht beabsichtigt und sollte durch Auffül­ len der verwendeten Datenstruktur auf die Größe einer Cache-Line vermieden werden. Seitdem wurde jedoch die Größe der Cache-Line verdoppelt, ohne die Software anzu­ passen. Dieser Effekt konnte durch das angegebene Verfah­ ren in relativ kurzer Zeit gefunden und damit auch vor­ beugend beseitigt werden. Vorbeugend insofern, als die betroffene Komponente in dem System gar nicht aktiv be­ nutzt wurde, sondern lediglich das System unnötig ver­ langsamte. Bei aktueller Benutzung wären wiederum neue Engpässe aufgetreten, die den eigentlich erwarteten Lei­ stungsgewinn der neuen Generation von Rechnern mit der doppelt so langen Cache-Line nicht in voller Höhe hätten wirksam werden lassen.It turned out that a large number of significant Notes was to be analyzed. Among other things, became a case found in which multiple processes share the same cache line used to, by interruptions in milliseconds controlled to carry a time counter. The "false sharing "was not intended and should be done through replenishment the data structure used to the size of a Avoid cache line. Since then, however  Cache line size doubled without turning on the software fit. This effect could be achieved through the specified procedure found in a relatively short time and thus also before be eliminated by bending. Preventive insofar as the affected component in the system is not active at all was used, but only unnecessarily used the system slowed. With current use there would be new ones Bottlenecks occurred that were actually expected lei performance gain of the new generation of computers with the twice as long cache line would not have been in full take effect.

Claims (2)

1. Verfahren zur Bestimmung von Engpässen bei Puffer­ speichern in Rechenanlagen mit mehreren Prozessoren, die mit einer Adressübersetzung mittels einer Adress­ übersetzungstabelle von virtuellen in absolute Adres­ sen arbeiten und die jeweils mit einem Pufferspei­ cher, absolute Adressen benutzend, verbunden sind, welche Pufferspeicher über ein Bussystem auf einen gemeinsamen Speicher zugreifen, mit den Merkmalen:
  • - ein Logger, welcher die Adressen auf dem Bussystem zusammen mit Steuerinformation, ausgelöst durch vorbestimmte Kombinationen von Steuersignalen, auf­ zuzeichnen vermag, ist mit dem Bussystem verbunden,
  • - zu Beginn eines Analysevorgangs werden die Adress­ übersetzungstabellen der betroffenen Prozessoren abgelegt,
  • - danach werden mittels des Loggers zumindest die ab­ soluten Adressen der Zugriffe der Pufferspeicher aufgezeichnet,
  • - zum Ende der Aufzeichnung werden die Adressüberset­ zungstabellen der betroffenen Prozessoren in glei­ cher Art wie zu Beginn abgelegt,
  • - sodann werden die von dem Logger aufgezeichneten absoluten Adressen dahingehend bearbeitet, daß für lediglich diejenigen die absolute Adresse in virtu­ elle Adressen umgesetzt wird, deren Einträge in den abgelegten Adressübersetzungstabellen gleich sind.
1. A method for determining bottlenecks in buffers in computer systems with multiple processors that work with an address translation using an address translation table from virtual to absolute addresses and that are each connected to a buffer memory using absolute addresses, which buffer memory is connected via a Access the bus system to a common memory with the features:
  • a logger, which can record the addresses on the bus system together with control information, triggered by predetermined combinations of control signals, is connected to the bus system,
  • - at the beginning of an analysis process, the address translation tables of the processors concerned are stored,
  • - then the logger is used to record at least the absolute addresses of the accesses to the buffer memory,
  • at the end of the recording, the address translation tables of the processors concerned are stored in the same manner as at the beginning,
  • - Then the absolute addresses recorded by the logger are processed such that the absolute address is converted into virtual addresses for only those whose entries in the stored address translation tables are the same.
2. Verfahren nach Anspruch 1, wobei zu den absoluten Adressen auch ein den anfordernden Pufferspeicher be­ zeichnendes Kennzeichen und die Art des Zugriffs auf­ gezeichnet werden.2. The method according to claim 1, wherein to the absolute Addresses also be the requesting buffer sign and the type of access to be drawn.
DE19721685A 1997-05-23 1997-05-23 Determination of bottlenecks in buffer tanks Expired - Fee Related DE19721685B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19721685A DE19721685B4 (en) 1997-05-23 1997-05-23 Determination of bottlenecks in buffer tanks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19721685A DE19721685B4 (en) 1997-05-23 1997-05-23 Determination of bottlenecks in buffer tanks

Publications (2)

Publication Number Publication Date
DE19721685A1 true DE19721685A1 (en) 1998-12-03
DE19721685B4 DE19721685B4 (en) 2006-04-13

Family

ID=7830329

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19721685A Expired - Fee Related DE19721685B4 (en) 1997-05-23 1997-05-23 Determination of bottlenecks in buffer tanks

Country Status (1)

Country Link
DE (1) DE19721685B4 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630097A (en) * 1991-06-17 1997-05-13 Digital Equipment Corporation Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630097A (en) * 1991-06-17 1997-05-13 Digital Equipment Corporation Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses

Also Published As

Publication number Publication date
DE19721685B4 (en) 2006-04-13

Similar Documents

Publication Publication Date Title
DE69228380T2 (en) METHOD FOR INCREASING THE DATA PROCESSING SPEED IN A COMPUTER SYSTEM
DE68924306T2 (en) Multi-processor computer arrays with shared memory and private caches.
DE69127992T2 (en) Microprocessor for inserting a bus cycle to provide information for an emulation
DE3909896C2 (en)
DE69434473T2 (en) Processor interface chip for dual microprocessor system
DE3724317C2 (en)
DE69432314T2 (en) CACHE STORAGE WITH SPLIT LEVEL
DE69114333T2 (en) Computer with the ability to execute several commands at the same time.
DE69229667T2 (en) SIMULATED CACHE ASSOCIATIVITY
DE68923863T2 (en) I / O cache storage.
DE3852695T2 (en) Multiprocessor system with multiple memories.
DE19526007A1 (en) Horizontally partitioned instruction cache
DE2939411C2 (en) Data processing system with virtual memory addressing
DE10113191B4 (en) Speculative preprocessing of data in a processor system with a disorderly execution
DE19526008A1 (en) Vertically partitioned primary instruction cache
DE3911721C2 (en)
DE69130626T2 (en) Method for managing a cache memory device
DE69027919T2 (en) Arrangement and method for supporting access to I / O devices through large, directly mapped data cache memories
DE4114053A1 (en) COMPUTER SYSTEM WITH CACHE MEMORY
DE69429503T2 (en) Translation mechanism for input / output addresses
DE3832758C2 (en) Method for addressing a write-back virtual cache
DE19721685A1 (en) Bottle necking detection method for multi-processor computer system cache memories
WO2001052069A2 (en) Memory access method and a circuit arrangement
DE69400628T2 (en) Method and device for monitoring the data of a computer
DE102009009172A1 (en) Mapping addresses of a program code and addresses of data in a memory

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: FUJITSU SIEMENS COMPUTERS GMBH, 81739 MUENCHEN, DE

8120 Willingness to grant licences paragraph 23
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee