DE19721685A1 - Bottle necking detection method for multi-processor computer system cache memories - Google Patents
Bottle necking detection method for multi-processor computer system cache memoriesInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring 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
Description
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.
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.
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.
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.
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)
- - 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.
- 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.
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)
| 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 |
-
1997
- 1997-05-23 DE DE19721685A patent/DE19721685B4/en not_active Expired - Fee Related
Patent Citations (1)
| 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 |