-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf eine Simulationseinrichtung, ein Simulationsverfahren und ein Simulationsprogramm. Die vorliegende Erfindung bezieht sich insbesondere auf eine Simulationseinrichtung, ein Simulationsverfahren und ein Simulationsprogramm zum Simulieren von Programmausführung bei der Entwicklung einer eingebetteten Einrichtung.
-
Hintergrund zum Stand der Technik
-
Jüngste eingebettete Einrichtungen nutzen Hochleistungsprozessoren, und sind somit durch Funktionen, wie Caching oder bedingte Verzweigungen, stark beeinflusst. Die Implementierung von Software, die solche Funktionen effizient nutzt, erfüllt die Hardwareleistung, die von einem Benutzer erwartet wird. Falls hingegen Software implementiert wird, die solche Funktionen nicht vollständig nutzen kann, kann die von einem Benutzer erwartete Hardwareleistung nicht erfüllt werden. Daher ist es notwendig, die Verarbeitung von Software zu erkennen, die eine Leistungsbeeinträchtigung verursacht, und zu einer Software zu verbessern, die die Funktionen der Hardware effizient nutzen kann.
-
Die Patentliteratur 1 offenbart eine Technik zur Leistungsmessung, wenn Daten auf einem Speicher unter Verwendung eines Leistungsbewertungssimulators umgeordnet werden.
-
Referenzliste
-
Patentliteratur
-
Patentliteratur 1:
JP 2014-142682 A
-
US 6002875 A beschreibt ein Verfahren zum Reduzieren von Befehls-Cache-Fehlern umfassend: einen Schritt des Erzeugens von Funktionsprofilen potenzieller Cache-Fehler, einen Schritt des Berechnens von Funktionsaktivitäten und deren Aufteilung in Nicht-Null-Aktivitätsfunktionen und Null-Aktivitätsfunktionen sowie einen Schritt des Zuweisens aller Nicht-Null-Aktivitätsfunktionen zum Cache Speicherplatz, einen Schritt zum Zuordnen der Nicht-Null-Aktivitätsfunktionen vom Cache-Speicherplatz zum Speicherbereich, und einen Schritt zum Zuordnen der Null-Aktivitätsfunktionen, um Zuordnungslücken im Speicherbereich zu füllen.
-
US 2015/0286203 A1 beschreibt ein System und eine Methode für den optimierten Betrieb von Echtzeitsteuerungsanwendungen. Das System und Verfahren, das zum Identifizieren und Verarbeiten wiederkehrender Codesequenzen in Steueranwendungen konfiguriert ist, um die Ausführungszeit von Steueranwendungen zu quantifizieren, wobei für jede Einrichtungs- und / oder Steueranwendung eine Zeitdatendatenstruktur erzeugt wird, um die Ausführungszeit von Steueranwendungen zu bestimmen Industrielle Automatisierung, Bestimmen der Ausführungszeiten von Steuerungsanwendungen basierend auf wiederkehrenden Codesequenzen, die automatisch aus einer Reihe von Trainingsanwendungen extrahiert und / oder in der jeweiligen Anwendung identifiziert werden, Automatisieren von Testdaten, um ihre Zielausführungszeiten zur Verfeinerung des Timings zu bestimmen Datenstruktur, Zerlegen der Struktur der jeweiligen Steueranwendung in Codesequenzen, für die die erstellte Datenzeitstruktur und das Zeitmodell jeweils Ausführungszeitschätzungen liefern, und Bestimmen mindestens einer Schätzung für die Best-Case-Ausführungszeit und / oder die Worst-Case Ausführungszeit der Steuerungsanwendung.
-
US 2007/0250827 A1 beschreibt eine Programmentwicklungsunterstützungsvorrichtung zum Erzeugen, Anzeigen und Bearbeiten der Abschnittsortung einer Funktion und der Speicherortung eines Abschnitts manuell oder automatisch umfassend: eine Funktion, die eine Informationseingabeeinheit aufruft, die konfiguriert ist, um die Aufrufbeziehung einer Funktion aus einer Quelldatei zu extrahieren; eine Eingabeeinheit für die Verbindungskonfigurationsdatei, die konfiguriert ist, um Lokalisierungsinformationen für einen absoluten Abschnitt aus einer Konfigurationsdatei zu extrahieren, die beim Verknüpfen verwendet wird; eine Abschnittsbearbeitungseinheit, die konfiguriert ist, um die Funktion in einem verschiebbaren Abschnitt und einem absoluten Abschnitt zu platzieren; eine Ausgabeeinheit für die Funktion zum Auffinden von Konfigurationsdateien, die konfiguriert ist, um die Ortungsinformationen über die Funktion als Konfigurationsdatei zum Auffinden von Funktionen auszugeben; und eine Verbindungskonfigurationsdatei-Ausgabeeinheit, die konfiguriert ist, um die Lokalisierungsinformationen auf dem verschiebbaren Abschnitt und dem absoluten Abschnitt auszugeben.
-
US 2005/0204351 A1 beschreibt eine dynamische Adressierung (DA), die einen zentralen DA-Manager verwendet, um Funktionsaufrufe, globale Variablen und konstante Variablenreferenzen zwischen Komponenten des Softwarecodes zu verwalten. Der DA-Manager wird beim Verknüpfen der Komponenten generiert und zusammen mit dem Code in den Speicher des Clientgeräts geladen. Referenzen von einer Komponente zur anderen werden zusammen mit der Adresse jeder Komponente im DA Manager gespeichert. Der DA Manager fungiert während der Ausführung der Software als zentraler Router, der Komponenten verbindet, sodass Referenzen von einer Komponente zur anderen über den DA Manager anstatt direkt zwischen den Komponenten weitergelei tet werden. Daher werden Änderungen an einer Komponente während Dateiaktualisierungen, die zu Speicherortänderungen der Komponente im Speicher führen, vom DA-Manager aufgezeichnet, wodurch die Integrität der Verweise auf die im Code vorhandene Komponente erhalten bleibt.
-
Zusammenfassung der Erfindung
-
Technisches Problem
-
In der Patentliteratur 1 ist es nicht möglich, bei der Standardisierung von überlappenden Codes eine effiziente Leistungsbewertung durchzuführen. Die Durchführung von Software-Refaktorisierung, um die Leistung zu verbessern, und die Standardisierung von überlappenden Codes erfordert Arbeitsstunden, um eine Datenreferenzbeziehung oder eine Funktionsschnittstelle zu ändern. Die überlappenden Codes beziehen sich auf Anweisungscodes von Funktionen, die ähnliche Verarbeitung durchführen. Wenn es keine Leistungssteigerung durch Refaktorisierung gibt, werden die für das Refaktorisieren benötigten Arbeitsstunden verschwendet.
-
Die vorliegende Erfindung stellt eine Simulationseinrichtung bereit, die in der Lage ist, Leistung beim virtuellen Standardisieren von überlappenden Codes zu bewerten.
-
Lösung des Problems
-
Die Probleme des Standes der Technik werden gelöst durch die Simulationseinrichtung nach Anspruch 1 sowie das Simulationsverfahren nach Anspruch 5 und das Simulationsprogramm nach Anspruch 6. Die jeweiligen abhängigen Ansprüche geben vorteilhafte Weiterbildungen der vorliegenden Erfindung an.
-
Eine Simulationseinrichtung zum Ausführen einer Simulation eines Programms, das eine erste Funktion und eine zweite Funktion enthält, die zueinander ähnlich sind, gemäß der vorliegenden Erfindung, umfasst:
- eine Adresseninformationsspeichereinheit, um Adresseninformationen zu speichern, in denen eine erste Startadresse, die eine Startadresse einer Anweisungsabfolge der ersten Funktion ist, eine erste Endadresse, die eine Endadresse einer Anweisungsabfolge der ersten Funktion ist, eine zweite Startadresse, die eine Startadresse einer Anweisungsabfolge der zweiten Funktion ist, und eine zweite Endadresse, die eine Endadresse einer Anweisungsabfolge der zweiten Funktion ist, einander zugeordnet sind;
- eine Adressenumordnungseinheit, um als eine Originaladresse, eine Adresse einer Anweisungsabfolge zum Ausführen einer Simulation zu erwerben, zu bestimmen, ob die Originaladresse zwischen der ersten Startadresse und der ersten Endadresse ist unter Verwendung der Adresseninformationen, die Originaladresse zu zwischen der zweiten Startadresse und der zweiten Endadresse umzuordnen, wenn die Originaladresse zwischen der ersten Startadresse und der ersten Endadresse ist, und eine umgeordnete Adresse als eine Verarbeitungsadresse einzustellen; und
- eine Bewertungseinheit, um Cache-Simulation auf die Verarbeitungsadresse auszuführen, und auszuwerten, ob diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist.
-
Vorteilhafte Wirkungen der Erfindung
-
Die Simulationseinrichtung gemäß der vorliegenden Erfindung führt Simulation eines Programms, enthaltend eine erste Funktion und eine zweite Funktion, die zueinander ähnlich sind, aus. Eine Adresseninformationsspei chereinheit speichert Adresseninformationen, in denen: eine erste Startadresse, die eine Startadresse einer Anweisungsabfolge der ersten Funktion ist; eine erste Endadresse, die eine Endadresse einer Anweisungsabfolge der ersten Funktion ist; eine zweite Startadresse, die eine Startadresse einer Anweisungsabfolge der zweiten Funktion ist; und eine zweite Endadresse, die eine Endadresse einer Anweisungsabfolge der zweiten Funktion ist, einander zugeordnet sind; Eine Adressenumordnungseinheit ordnet eine Originaladresse um zu zwischen der zweiten Startadresse und der zweiten Endadresse als eine Verarbeitungsadresse, wenn die Originaladresse zwischen der ersten Startadresse und der ersten Endadresse ist. Eine Bewertungseinheit führt Cache-Simulation auf die Verarbeitungsadresse aus, um zu bewerten, ob diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist. Daher ist es gemäß der Simulationseinrichtung der vorliegenden Erfindung möglich, die Leistung zu bewerten, wenn überlappende Codes vor der Refaktorisierung eines Programms virtuell standardisiert werden, und das Auftreten von nicht notwendiger Refaktorisierung zu unterdrücken.
-
Figurenliste
-
- 1 ist ein Konfigurationsdiagramm einer Simulationseinrichtung 100 gemäß einer ersten Ausführungsform.
- 2 ist eine Konfigurationsansicht von Adresseninformationen 421 gemäß der ersten Ausführungsform.
- 3 ist ein Flussdiagramm eines Simulationsprozesses S100 eines Simulationsverfahrens 610 und eines Simulationsprogramms 620 gemäß der ersten Ausführungsform.
- 4 ist ein Flussdiagramm eines Adressenumordnungsprozesses S20 gemäß der ersten Ausführungsform.
- 5 ist ein Konfigurationsdiagramm einer Simulationseinrichtung 100 gemäß einer Modifikation der ersten Ausführungsform.
-
Beschreibung der Ausführungsformen
-
Erste Ausführungsform.
-
Beschreibung der Konfiguration
-
Eine Konfiguration einer Simulationseinrichtung 100 gemäß der vorliegenden Ausführungsform wird unter Bezugnahme auf 1 erläutert. Die Simulationseinrichtung 100 gemäß der vorliegenden Ausführungsform führt Simulation eines Programms 200, enthaltend eine erste Funktion 10 und eine zweite Funktion 20, die zueinander ähnlich sind, aus. Die erste Funktion 10 und die zweite Funktion 20, die zueinander ähnlich sind, werden auch als überlappende Codes bezeichnet. Die Simulationseinrichtung 100 kann Leistung bewerten, wenn die überlappenden Codes virtuell standardisiert werden.
-
Die überlappenden Codes beziehen sich auf eine Vielzahl von Funktionen, die ähnliche Verarbeitung durchführen. In der vorliegenden Ausführungsform wird die erste Funktion 10 auch als eine zu standardisierende Funktion 101 bezeichnet, die eine Funktion eines Standardisierungsziels ist. Zudem wird die zweite Funktion 20 auch als eine Standardisierungszielfunktion 201 bezeichnet, die eine Funktion eines Standardisierungsziels ist.
-
Die Bewertung von Leistung durch virtuelles Standardisieren bedeutet, Cache-Simulation durchzuführen, um zu bestimmen, ob diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist, unter der Annahme, dass die zu standardisierende Funktion 101 auf die Standardisierungszielfunktion 201, die eine Funktion eines Standardisierungsziels ist, standardisiert wurde.
-
Wie in 1 dargestellt, ist die Simulationseinrichtung 100 ein Computer.
-
Die Simulationseinrichtung 100 umfasst Hardware, wie einen Prozessor 910, eine Speichereinrichtung 920, eine Eingabeschnittstelle 930 und eine Ausgabeschnittstelle 940. Die Speichereinrichtung 920 umfasst einen Speicher 921 und eine Hilfsspeichereinrichtung 922.
-
Die Simulationseinrichtung 100 umfasst eine Anweisungsausführungseinheit 110, eine Adressenumordnungseinheit 120, eine Bewertungseinheit 130 und eine Speichereinheit 140 als funktionale Komponenten. Die Speichereinheit 140 umfasst eine Anweisungsspeichereinheit 141 und eine Adresseninformationsspeichereinheit 142. Die Adresseninformationsspeichereinheit 142 speichert Adresseninformationen 421.
-
Jede Funktion der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 ist durch Software realisiert.
-
Die Speichereinheit 140 ist durch den Speicher 921 realisiert. Zudem kann die Speichereinheit 140 nur durch die Hilfsspeichereinrichtung 922 oder durch den Speicher 921 und die Hilfsspeichereinrichtung 922 realisiert sein. Die Speichereinheit 140 kann durch irgendein Verfahren realisiert sein.
-
Der Prozessor 910 ist mit anderen Teilen von Hardware über eine Signalleitung verbunden und steuert diese anderen Teile von Hardware. Der Prozessor 910 ist eine integrierte Schaltung (IC), die arithmetische Verarbeitung durchführt. Bestimmte Beispiele des Prozessors 910 umfassen eine zentrale Verarbeitungseinheit (CPU), einen Digitalsignalprozessor (DSP) und eine Grafikverarbeitungseinheit (GPU).
-
Der Speicher 921 ist eine Speichereinrichtung, die Daten vorübergehend speichert. Bestimmte Beispiele des Speichers 921 sind ein statischer Direktzugriffsspeicher (SRAM) und ein dynamischer Direktzugriffsspeicher (DRAM).
-
Die Hilfsspeichereinrichtung 922 ist eine Speichereinrichtung, die Daten speichert. Ein bestimmtes Beispiel der Hilfsspeichereinrichtung 922 ist eine Festplatte (HDD). Darüber hinaus kann die Hilfsspeichereinrichtung 922 ein tragbares Speichermedium sein, wie beispielsweise eine Secure-Digital-(SD, eingetragene Marke)-Speicherkarte, ein Compact Flash(CF), ein NAND Flash, eine flexible Platte, eine optische Platte, eine Compact Disk, eine Blu-Ray-(eingetragene Marke)-Disk oder eine Digital Versatile Disk (DVD).
-
Die Eingabeschnittstelle 930 ist ein Anschluss, der mit Eingabeeinrichtungen, wie einer Maus, einer Tastatur und einem Berührungsfeld, verbunden ist. Insbesondere ist die Eingabeschnittstelle 930 ein Universal-Serial-Bus-(USB)-Anschluss. Es ist darauf hinzuweisen, dass die Eingabeschnittstelle 930 ein Anschluss sein kann, der mit einem Local Areal Network (LAN) verbunden ist. Die Eingabeschnittstelle 930 erwirbt das Programm 200 und übergibt dieses an die Anweisungsausführungseinheit 110.
-
Die Ausgabeschnittstelle 940 ist ein Anschluss, der mit einem Kabel einer Anzeigeeinrichtung, wie einer Anzeige, zu verbinden ist. Insbesondere ist die Ausgabeschnittstelle 940 ein USB-Anschluss oder ein High-Definition-Multimedia-Schnittstelle-(HDMI)-(eingetragene Marke)-Anschluss. Insbesondere ist die Anzeige eine Flüssigkristallanzeige (LCD).
-
Die Hilfsspeichereinrichtung 922 speichert ein Programm zum Realisieren jeder Funktion der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130. Das Programm zur Realisierung jeder Funktion der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 wird auch als ein Simulationsprogramm 620 bezeichnet. Das Programm wird in den Speicher 921 geladen, vom Prozessor 910 gelesen und durch den Prozessor 910 ausgeführt. Zudem speichert die Hilfsspeichereinrichtung 922 ein OS. Zumindest ein Teil des OS ist durch die Hilfsspeichereinrichtung 922 in den Speicher 921 geladen. Der Prozessor 910 führt das Simulationsprogramm 620 aus, während das OS ausgeführt wird.
-
Die Simulationseinrichtung 100 kann nur einen Prozessor 910 enthalten oder kann eine Vielzahl von Prozessoren 910 enthalten. Eine Vielzahl von Prozessoren 910 können das Programm zur Realisierung jeder Funktion der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 zusammenwirkend ausführen.
-
Informationen, Daten, Signalwerte und Variablenwerte, die ein Ergebnis jeder Verarbeitung der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 anzeigen, werden in der Hilfsspeichereinrichtung 922 oder dem Speicher 921 der Simulationseinrichtung 100 oder einem Register oder einem Cache-Speicher im Prozessor 910 gespeichert.
-
Das Programm zur Realisierung jeder Funktion der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 kann in einem tragbaren Speichermedium gespeichert sein. Insbesondere ist das tragbare Aufzeichnungsmedium eine magnetische Platte, eine flexible Platte, eine optische Platte, eine Compact Disk, eine Blu-ray-(eingetragene Marke)-Disk und eine Digital Versatile Disk (DVD).
-
Es ist darauf hinzuweisen, dass ein Simulationsprogrammprodukt ein Speichermedium und eine Speichereinrichtung ist, in der das Simulationsprogramm 620 aufgezeichnet ist. Das Simulationsprogrammprodukt bezieht sich darauf, was mit einem computerlesbaren Programm zu laden ist, unabhängig vom Aussehen.
-
Beschreibung der Funktion
-
Die Anweisungsausführungseinheit 110 wandelt einen Anweisungscode eines Prozessors einer Simulationszielmaschine in einen Anweisungscode eines Prozessors einer Maschine um, die Simulation ausführt, das heißt, die Simulationseinrichtung 100, und führt den umgewandelten Anweisungscode aus. Hier wird die Simulationszielmaschine auch als eine Zielmaschine bezeichnet. Zudem wird die Simulationszielmaschine auch als eine Ziel-CPU bezeichnet. Zudem wird eine Maschine, die Simulation ausführt, auch als eine Host-Maschine bezeichnet. Der Prozessor der Maschine, die Simulation ausführt, wird auch als eine Host-CPU bezeichnet.
-
Das heißt, die Anweisungsausführungseinheit 110 wandelt einen Anweisungscode der Ziel-CPU der Zielmaschine in einen Anweisungscode einer Host-CPU der Host-Maschine um, und führt den umgewandelten Anweisungscode aus. Die Anweisungsausführungseinheit 110 wird auch als eine Anweisungseinstellungssimulator-(ISS)-Anweisungsausführungseinheit bezeichnet.
-
Die Anweisungsspeichereinheit 141 speichert Informationen von Software, die in der Simulation zu verwenden ist. Die Anweisungsspeichereinheit 141 erwirbt von der Anweisungsausführungseinheit 110 eine Anweisungsadresse, die eine Adresse eines Anweisungscodes ist, der durch die Anweisungsausführungseinheit 110 als nächstes auszuführen ist, und übergibt einen in der erworbenen Anweisungsadresse aufgezeichneten Anweisungscode an die Anweisungsausführungseinheit 110.
-
Unter Bezugnahme auf 2 wird eine Konfiguration der Adresseninformationen 421 gemäß der vorliegenden Ausführungsform erläutert.
-
Die Adresseninformationsspeichereinheit 142 speichert die Adresseninformationen 421, in denen: eine erste Startadresse t_start, die eine Startadresse einer Anweisungsabfolge der zu standardisierenden Funktion 101 ist; eine erste Endadresse t_end, die eine Endadresse einer Anweisungsabfolge der zu standardisierenden Funktion 101 ist; eine zweite Startadresse trans, die eine Startadresse einer Anweisungsabfolge der Standardisierungszielfunktion 201 ist; und eine zweite Endadresse trans_end, die eine Endadresse einer Anweisungsabfolge der Standardisierungszielfunktion 201 ist, einander zugeordnet sind;
-
In den Adresseninformationen 421 sind die zweite Startadresse trans und die zweite Endadresse trans_end der Standardisierungszielfunktion 201 entsprechend der ersten Startadresse t_start und der ersten Endadresse t_end der zu standardisierenden Funktion 101 eingestellt. Die Adresseninformation 421 sind mit Zeilen der Anzahl der zu standardisierenden Funktionen 101 versehen. Die Adresseninformationen 421 werden auch als eine Adressenumordnungstabelle bezeichnet.
-
Die Adressenumordnungseinheit 120 erwirbt eine Anweisungsadresse von der Anweisungsausführungseinheit 110 als eine Originaladresse 111 und ordnet die Originaladresse 111 um in eine Verarbeitungsadresse 121. Die Adressenumordnungseinheit 120 ordnet die Originaladresse 111 um in die Verarbeitungsadresse 121 auf der Grundlage von den Adresseninformationen 421 und gibt die Verarbeitungsadresse 121 an die Bewertungseinheit 130 aus.
-
Die Bewertungseinheit 130 simuliert eine Funktion eines Anweisungs-Cache. Durch die Eingabe einer Anweisungsadresse bestimmt die Bewertungseinheit 130, ob oder ob nicht ein Anweisungscode der Anweisungsadresse im Anweisungs-Cache gespeichert ist. Die Tatsache, dass der Anweisungscode der eingegebenen Anweisungsadresse im Anweisungs-Cache gespeichert ist, wird als ein Cache-Treffer bezeichnet, während die Tatsache, dass der Anweisungscode im Anweisungs-Cache nicht gespeichert ist, als ein Cache-Fehltreffer bezeichnet wird. Die Bewertungseinheit 130 führt Cache-Simulation auf die eingegebene Anweisungsadresse aus, um zu bestimmen, ob ober ob nicht diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist. Die Bewertungseinheit 130 führt Cache-Simulation auf die aus der Adressenumordnungseinheit 120 ausgegebene Verarbeitungsadresse 121 aus, um zu bestimmen, ob ober ob nicht diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist. Die Bewertungseinheit 130 wird auch als ein Anweisungs-Cache-Model bezeichnet. Das Ausführen der Cache-Simulation bedeutet hier einen Prozess des Berechnens eines entsprechenden Index für die eingegebene Adresse auf der Grundlage von einer Cachegröße, einer Zeilenlänge und der Anzahl der Weisen, Bestimmens, ob Zieldaten im Cache vorhanden sind auf der Grundlage des berechneten Indexes, und des Zurückgebens des Bestimmungsergebnisses.
-
Beschreibung des Betriebs
-
Unter Bezugnahme auf 3 wird der Simulationsprozess S100 des Simulationsverfahrens 610 und das Simulationsprogramm 620 gemäß der vorliegenden Ausführungsform erläutert. Der Simulationsprozess S100 umfasst einen Anweisungsausführungsprozess S10, ein Adressenumordnungsprozess S20 und einen Bewertungsprozess S30 (Cache-Simulationsprozess)
-
<Anweisungsausführungsprozess S10>
-
In Schritt S11 gibt die Anweisungsausführungseinheit 110, als eine Anweisungsadresse 11, eine Adresse einer Anweisung, für die die Simulation als nächstes auszuführen ist, an die Adressenumordnungseinheit 120 aus. Zudem gibt die Anweisungsausführungseinheit 110 die Anweisungsadresse 11 an die Anweisungsspeichereinheit 141 der Speichereinheit 140 aus.
In Schritt S12 erwirbt die Anweisungsspeichereinheit 141 von der Anweisungsausführungseinheit 110 eine Anweisungsadresse, und übergibt einen durch die Anweisungsadresse angegebenen Anweisungscode an die Anweisungsausführungseinheit 110.
-
<Adressenumordnungsprozess S20>
-
In Schritt S13 erwirbt die Adressenumordnungseinheit 120 die Anweisungsadresse 11 als die Originaladresse 111 von der Anweisungsausführungseinheit 110. Die Adressenumordnungseinheit 120 bezieht sich auf die Adresseninformationen 421 der Speichereinheit 140 und bestimmt, ob oder ob nicht ein durch die Originaladresse 111 angegebener Anweisungscode in der zu standardisierende Funktion 101 enthalten ist.
-
Wenn der durch die Originaladresse 111 angegebene Anweisungscode in der zu standardisierende Funktion 101 enthalten ist, geht die Adressenumordnungseinheit 120 weiter zu Schritt S14. Wenn der durch die Originaladresse 111 angegebene Anweisungscode in der zu standardisierende Funktion 101 nicht enthalten ist, geht die Adressenumordnungseinheit 120 weiter zu Schritt S15.
-
In Schritt S14 ordnet die Adressenumordnungseinheit 120 die Originaladresse 111 um in eine Adresse, angebend einen Anweisungscode der Standardisierungszielfunktion 201, und gibt diesen als die Verarbeitungsadresse 121 aus.
-
<Bewertungsprozess S30>
-
In Schritt S15 führt eine Bewertungseinheit 130 Cache-Simulation auf die aus der Adressenumordnungseinheit 120 ausgegebene Anweisungsadresse 121 aus, um zu bestimmen, ob ober ob nicht diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist.
-
Unter Bezugnahme auf 4 wird der Adressenumordnungsprozess S20 gemäß der vorliegenden Ausführungsform im Detail erläutert.
-
Im Adressenumordnungsprozess S20 erwirbt die Adressenumordnungseinheit 120 als die Originaladresse 111 eine Adresse einer Anweisungsabfolge zum Ausführen der Simulation und bestimmt, ob die Originaladresse 111 zwischen der ersten Startadresse t_start und der ersten Endadresse t_end ist unter Verwendung der Adresseninformationen 421. Wenn die Originaladresse 111 zwischen der ersten Startadresse t_start und der ersten Endadresse t_end ist, ordnet die Adressenumordnungseinheit 120 die Originaladresse 111 um zu zwischen der zweiten Startadresse trans und der zweiten Endadresse trans_end, und stellt die umgeordnete Adresse als die Verarbeitungsadresse 121 ein.
-
In Schritt S21 bestimmt die Adressenumordnungseinheit 120, ob oder ob nicht die Originaladresse 111 in einem Adressenbereich der zu standardisierenden Funktion 101 enthalten ist. Insbesondere bestimmt die Adressenumordnungseinheit 120, ob oder ob nicht die Originaladresse 111 eine Adresse zwischen von v_start0, das die erste Startadresse t_start der zu standardisierenden Funktion 101 ist, bis v_end0, das die erste Endadresse t_end der zu standardisierenden Funktion 101 ist, unter Verwendung der Adresseninformationen 421.
-
Wenn die Originaladresse 111 im Adressenbereich der zu standardisierenden Funktion 101 enthalten ist, geht die Adressenumordnungseinheit 120 weiter zu Schritt S22. Wenn die Originaladresse 111 im Adressenbereich der zu standardisierenden Funktion 101 nicht enthalten ist, beendet Adressenumordnungseinheit 120 den Prozess.
-
In Schritt S22, wenn die Originaladresse 111 zwischen der ersten Startadresse t_start und der ersten Endadresse t_end ist, berechnet die Adressenumordnungseinheit 120 einen Offsetwert, der von der ersten Startadresse t_start für die Originaladresse 111 abweicht Insbesondere berechnet die Adressenumordnungseinheit 120 einen Wert von v_start0 bis zur Originaladresse 111 als den Offsetwert-Abweichung, mit v_start0, welche die erste Startadresse t_start ist, als eine Referenz.
-
In Schritt S23 berechnet die Adressenumordnungseinheit 120 eine Adresse, die erhalten wird durch Hinzufügen der Offsetwert-Abweichung zur zweiten Startadresse trans, als eine Umordnungsadresse addr'. Insbesondere fügt die Adressenumordnungseinheit 120 die Offsetwert-Abweichung zu start0 hinzu, welche die zweite Startadresse trans ist, um die Umordnungsadresse addr' zu erhalten. Die Adressenumordnungseinheit 120 ordnet die Originaladresse 111 um zu einer Adresse, für die angenommen wird, dass sich deren Originaladresse 111 verändern wird, wenn die Funktion standardisiert wird, durch Hinzufügen der Offsetwert-Abweichung zur zweiten Startadresse trans der Standardisierungszielfunktion 201.
-
In Schritt S24 bestimmt die Adressenumordnungseinheit 120, ob oder ob nicht die Umordnungsadresse addr' in einem Adressenbereich der Standardisierungszielfunktion 201 enthalten ist. Insbesondere bestimmt die Adressenumordnungseinheit 120, ob oder ob nicht die Umordnungsadresse addr' kleiner ist als end0, welche die zweite Endadresse trans_end der Standardisierungszielfunktion 201 ist.
-
Wenn die Umordnungsadresse addr' kleiner ist als die zweite Endadresse trans_end, in Schritt S26, gibt die Adressenumordnungseinheit 120 die Umordnungsadresse addr' als die Verarbeitungsadresse 121 aus und beendet den Prozess.
-
Wenn die Umordnungsadresse addr' gleich wie oder größer ist als die zweite Endadresse trans_end, in Schritt S25, gibt die Adressenumordnungseinheit 120 die zweite Endadresse trans_end als die Verarbeitungsadresse 121 aus. Das heißt, die Adressenumordnungseinheit 120 schneidet zu oder ändert die Umordnungsadresse addr' zu end0, welche die zweite Endadresse trans_end ist.
-
Weitere Konfiguration
-
In der vorliegenden Ausführungsform sind Funktionen der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 durch Software realisiert. Als eine Modifikation können allerdings Funktionen der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 durch Software realisiert sein.
-
Unter Bezugnahme auf 5 wird eine Konfiguration einer Simulationseinrichtung 100 gemäß einer Modifikation der vorliegenden Ausführungsform erläutert.
-
Wie in 5 gezeigt, umfasst die Simulationseinrichtung 100 Hardware, wie eine Verarbeitungsschaltung 909, eine Eingabeschnittstelle 930 und eine Ausgabeschnittstelle 940.
-
Die Verarbeitungsschaltung 909 ist eine dedizierte elektronische Schaltung zur Realisierung von Funktionen der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 sowie der Speichereinheit 140, wie vorstehend beschrieben. Insbesondere ist die Verarbeitungsschaltung 909 eine einzelne Schaltung, eine Verbundschaltung, ein programmierter Prozessor, ein parallelprogrammierter Prozessor, eine logische IC, ein GA, eine ASIC oder ein FPGA. GA ist eine Abkürzung für Gate-Array. ASIC ist eine Abkürzung für Anwendungsspezifische Integrierte Schaltung. FPGA ist eine Abkürzung für Feldprogrammierbares Gate-Array.
-
Die Funktionen der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 können durch eine Verarbeitungsschaltung 909 realisiert sein oder können auf eine Vielzahl von Verarbeitungsschaltungen 909 verteilt realisiert sein.
-
Als eine weitere Modifikation können die Funktionen der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 durch eine Kombination von Software und Hardware realisiert sein. Das heißt, einige Funktionen der Simulationseinrichtung 100 können durch dedizierte Hardware realisiert sein und die anderen Funktionen können durch Software realisiert sein.
-
Der Prozessor 910, die Speichereinrichtung 920 und die Verarbeitungsschaltung 909 der Simulationseinrichtung 100 werden kollektiv als „Verarbeitungsschaltkreis“ bezeichnet. Das heißt, in irgendeiner der Konfigurationen der in 1 und 5 gezeigten Simulationseinrichtung 100 können die Funktionen der Anweisungsausführungseinheit 110, der Adressenumordnungseinheit 120 und der Bewertungseinheit 130 und der Speichereinheit 140 durch die Verarbeitungsschaltkreis realisiert sein.
-
Beschreibung der Wirkung der vorliegenden Ausführungsform
-
In der Simulationseinrichtung 100 gemäß der vorliegenden Ausführungsform, wenn eine eingegebene Originaladresse die zu standardisierende Funktion anzeigt, ordnet die Adressenumordnungseinheit die Originaladresse um zu zwischen der Anfangsadresse und der Endadresse der Standardisierungszielfunktion. Dann führt die Bewertungseinheit Cache-Simulation auf die umgeordnete Adresse durch, um zu bestimmen, ob ober ob nicht diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist. Daher ist es gemäß der Simulationseinrichtung 100 gemäß der vorliegenden Erfindung möglich, die Leistung zu bewerten, indem überlappende Codes vor der Refaktorisierung von Software virtuell standardisiert werden. Daher ist es gemäß der Simulationseinrichtung 100 gemäß der vorliegenden Erfindung möglich, Verschwendung von Arbeitsstunden, die zur Refaktorisierung erforderlich sind, zu unterdrücken.
-
In der Simulationseinrichtung 100 gemäß der vorliegenden Ausführungsform werden auf der Grundlage von einem Verarbeitungsergebnis eines statischen Analysewerkzeugs, das überlappende Codes in Software erfasst, Leistungsinformationen in einem Fall des Standardisierens des erfassten überlappenden Codes gemessen. Daher ist es gemäß der Simulationseinrichtung 100 gemäß der vorliegenden Erfindung möglich, die Leistung durch virtuelles Standarisieren von überlappenden Codes effizienter zu bewerten.
-
In der ersten Ausführungsform bildet jeder Teil der Simulationseinrichtung 100 die Simulationseinrichtung 100 als einen unabhängigen funktionalen Block. Allerdings kann ohne Einschränkung der vorstehend erläuterten Ausführungsform irgendeine Konfiguration der Simulationseinrichtung 100 angenommen werden. Irgendein funktionaler Block der Simulationseinrichtung 100 kann angenommen werden, vorausgesetzt, dass die in der vorstehenden Ausführungsform erläuterten Funktionen realisiert werden können. Die Simulationseinrichtung 100 kann mit irgendeiner anderen Kombination oder irgendeiner Blockkonfiguration dieser funktionalen Blöcke konfiguriert sein.
-
Weiterhin kann die Simulationseinrichtung 100 ein System sein, das durch eine Vielzahl von Einrichtungen anstelle von einer einzigen Einrichtung gebildet ist.