DE112017006932B4 - Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm - Google Patents

Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm Download PDF

Info

Publication number
DE112017006932B4
DE112017006932B4 DE112017006932.7T DE112017006932T DE112017006932B4 DE 112017006932 B4 DE112017006932 B4 DE 112017006932B4 DE 112017006932 T DE112017006932 T DE 112017006932T DE 112017006932 B4 DE112017006932 B4 DE 112017006932B4
Authority
DE
Germany
Prior art keywords
address
simulation
function
original
unit
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.)
Active
Application number
DE112017006932.7T
Other languages
English (en)
Other versions
DE112017006932T5 (de
Inventor
Shohei Koyama
Daisuke Ogawa
Masakatsu TOYAMA
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112017006932T5 publication Critical patent/DE112017006932T5/de
Application granted granted Critical
Publication of DE112017006932B4 publication Critical patent/DE112017006932B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Simulationseinrichtung (100) zum Ausführen einer Simulation eines Programms, enthaltend eine erste Funktion (10) und eine zweite Funktion (20), die zueinander ähnlich sind, wobei die Simulationseinrichtung umfasst:eine Adresseninformationsspeichereinheit (142), 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 (120), um, als eine Originaladresse (111), 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 (121) einzustellen; undeine Bewertungseinheit (130), um Cache-Simulation auf die Verarbeitungsadresse auszuführen, und auszuwerten, ob diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist.

Description

  • 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.

Claims (6)

  1. Simulationseinrichtung (100) zum Ausführen einer Simulation eines Programms, enthaltend eine erste Funktion (10) und eine zweite Funktion (20), die zueinander ähnlich sind, wobei die Simulationseinrichtung umfasst: eine Adresseninformationsspeichereinheit (142), 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 (120), um, als eine Originaladresse (111), 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 (121) einzustellen; und eine Bewertungseinheit (130), um Cache-Simulation auf die Verarbeitungsadresse auszuführen, und auszuwerten, ob diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist.
  2. Simulationseinrichtung (100) nach Anspruch 1, wobei: die Simulationseinrichtung umfasst: eine Anweisungsausführungseinheit (110), um, als eine Anweisungsadresse (11), eine Adresse einer Anweisung zum Ausführen einer nächsten Simulation an die Adressenumordnungseinheit (120) auszugeben, und die Adressenumordnungseinheit die Anweisungsadresse als die Originaladresse (111) erwirbt.
  3. Simulationseinrichtung (100) nach Anspruch 1 oder 2, wobei die Adressenumordnungseinheit (120) einen Offsetwert aus der ersten Startadresse für die Originaladresse (111) berechnet, wenn die Originaladresse zwischen der ersten Startadresse und der ersten Endadresse ist, eine Adresse, die durch Hinzufügen des Offsetwerts zur zweiten Startadresse als eine Umordnungsadresse erhalten wird, berechnet und die Umordnungsadresse als die Verarbeitungsadresse (121) einstellt, wenn die Umordnungsadresse kleiner ist als die zweite Endadresse.
  4. Simulationseinrichtung (100) nach Anspruch 3, wobei die Adressenumordnungseinheit (120) die zweite Endadresse als die Verarbeitungsadresse (121) einstellt, wenn die Umordnungsadresse gleich ist wie oder größer ist als die zweite Endadresse.
  5. Simulationsverfahren (610) einer Simulationseinrichtung (100) zum Ausführen einer Simulation einer ersten Funktion (10) und einer zweiten Funktion (20), die zueinander ähnlich sind, wobei die Simulationseinrichtung eine Adresseninformationsspeichereinheit (142) umfasst, 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; Simulationsverfahren, umfassend: durch eine Adressenumordnungseinheit (120), Erwerben, als eine Originaladresse (111), einer Adresse einer Anweisungsabfolge zum Ausführen einer Simulation, Bestimmen, ob die Originaladresse zwischen der ersten Startadresse und der ersten Endadresse ist unter Verwendung der Adresseninformationen, Umordnen der Originaladresse zu zwischen der zweiten Startadresse und der zweiten Endadresse, wenn die Originaladresse zwischen der ersten Startadresse und der ersten Endadresse ist, und Einstellen einer umgeordneten Adresse als eine Verarbeitungsadresse (121); durch eine Bewertungseinheit (130), Ausführen von Cache-Simulation auf die Verarbeitungsadresse, und Bewerten, ob diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist.
  6. Simulationsprogramm (620) einer Simulationseinrichtung (100) zum Ausführen einer Simulation eines Programms, enthaltend eine erste Funktion (10) und eine zweite Funktion (20), die zueinander ähnlich sind, wobei die Simulationseinrichtung eine Adresseninformationsspeichereinheit (142) umfasst, 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, zueinander zugeordnet sind; das Simulationsprogramm eine Simulationseinrichtung, die ein Computer ist, veranlasst, auszuführen: einen Adressenumordnungsprozess, um, als eine Originaladresse (111), 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 ein Verarbeitungsadresse (121) einzustellen; und einen Bewertungsprozess, um Cache-Simulation auf die Verarbeitungsadresse auszuführen, und zu bewerten, ob diese ein Cache-Treffer ist oder ein Cache-Fehltreffer ist.
DE112017006932.7T 2017-02-28 2017-02-28 Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm Active DE112017006932B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/007943 WO2018158846A1 (ja) 2017-02-28 2017-02-28 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム

Publications (2)

Publication Number Publication Date
DE112017006932T5 DE112017006932T5 (de) 2019-10-10
DE112017006932B4 true DE112017006932B4 (de) 2021-06-10

Family

ID=63371217

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017006932.7T Active DE112017006932B4 (de) 2017-02-28 2017-02-28 Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm

Country Status (4)

Country Link
US (1) US20190369997A1 (de)
JP (1) JP6545417B2 (de)
DE (1) DE112017006932B4 (de)
WO (1) WO2018158846A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6981087B2 (ja) * 2017-08-03 2021-12-15 富士通株式会社 情報処理装置、方法、及びプログラム
US11334349B2 (en) * 2019-09-19 2022-05-17 Dell Products L.P. Removing feature flag-related codebase from applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002875A (en) * 1996-10-16 1999-12-14 Nec Corporation Method for the reduction of instruction cache miss rate using optimization data from trace data profiles
US20050204351A1 (en) * 2002-11-18 2005-09-15 James Jiang Dynamic addressing (DA) using a centralized DA Manager
US20070250827A1 (en) * 2006-04-20 2007-10-25 Kabushiki Kaisha Toshiba Apparatus for supporting program development, and operation method for the apparatus
US20150286203A1 (en) * 2014-04-04 2015-10-08 Abb Ag System and method for an optimized operation of real-time embedded solutions in industrial automation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098148A (en) * 1997-05-29 2000-08-01 International Business Machines Corporation Storage and access of data using volume trailer
JP2003316612A (ja) * 2002-04-25 2003-11-07 Fujitsu Ltd 縮小プログラム自動作成装置
US7596681B2 (en) * 2006-03-24 2009-09-29 Cirrus Logic, Inc. Processor and processing method for reusing arbitrary sections of program code
US10261793B2 (en) * 2011-12-16 2019-04-16 International Business Machines Corporation Instruction predication using instruction address pattern matching
JP2014142682A (ja) 2013-01-22 2014-08-07 Mitsubishi Electric Corp メモリアドレス管理システム及びプログラム
JP6273733B2 (ja) * 2013-09-20 2018-02-07 富士通株式会社 演算処理装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002875A (en) * 1996-10-16 1999-12-14 Nec Corporation Method for the reduction of instruction cache miss rate using optimization data from trace data profiles
US20050204351A1 (en) * 2002-11-18 2005-09-15 James Jiang Dynamic addressing (DA) using a centralized DA Manager
US20070250827A1 (en) * 2006-04-20 2007-10-25 Kabushiki Kaisha Toshiba Apparatus for supporting program development, and operation method for the apparatus
US20150286203A1 (en) * 2014-04-04 2015-10-08 Abb Ag System and method for an optimized operation of real-time embedded solutions in industrial automation

Also Published As

Publication number Publication date
JP6545417B2 (ja) 2019-07-17
WO2018158846A1 (ja) 2018-09-07
JPWO2018158846A1 (ja) 2019-07-18
US20190369997A1 (en) 2019-12-05
DE112017006932T5 (de) 2019-10-10

Similar Documents

Publication Publication Date Title
DE112005001277B4 (de) Verfahren und Vorrichtung zum Vektorisieren mehrerer Eingabebefehle
DE3854546T2 (de) Verfahren und Gerät zur Programmablaufmessung.
DE112016006297T5 (de) Testfall-Erzeugungsvorrichtung und Testfall-Erzeugungsprogramm
GB2390793A (en) Visual interface for software testing
EP2318962A1 (de) Verfahren und vorrichtung zum bestimmen von anforderungsparametern an mindestens eine physische hardwareeinheit
DE102005037855A1 (de) System und Verfahren zum Speichern von Benutzerdaten in einer Partitionsdatei oder zum Verwenden einer Partitionsdatei, die Benutzerdaten enthält
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
DE102012224363A1 (de) Informationsverarbeitungssystem mit Hardware- und Softwarevorablesezugriff
DE112017006932B4 (de) Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm
DE112018007096T5 (de) Verfahren und vorrichtung zur software-visualisierung, sowie software-visualisierungsprogramm
DE112018003585T5 (de) Deduplizierung eines bandlaufwerkspeichers
DE102012217315A1 (de) Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung
DE102013202060A1 (de) Beschleunigung von Speicherdurchlaufsequenzen während einer Simulation
DE112019002778T5 (de) Simulationsvorrichtung, simulationsverfahren und elektronische steuereinheitsvorrichtung
DE112019000382T5 (de) GANZZAHLIGER MULTIPLIKATOR MIT MEHRFACHER GENAUIGKEIT DURCH MATRIX-MATRIX-MULTIPLIKATIONEN UNTER VERWENDUNG EINES 16-BIT-FLIEßKOMMA-MULTIPLIKATORS
DE102013022258A1 (de) Kontextumschaltung für Granulatität eines kooperativen Strang-Arrays während einer Haftstellenbehandlung
DE102007004362A1 (de) Verfahren und Vorrichtung zum automatischen Formatieren von Daten basierend auf einem Beste-Übereinstimmung-Testergebnistyp
DE69838343T2 (de) Ein system unmd verfahren für fallenaddressenerfassung für fehlerisolation
DE102020118022A1 (de) Erzeugen verschiedener traces für grafikprozessorcode
DE102012221253B4 (de) Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür
EP2321729B1 (de) Verfahren und vorrichtung zum analysieren einer ausführung eines vorgegebenen programmablaufs auf einem physischen rechnersystem
DE112015002752T5 (de) Durchführung und Kommunikation von Blechmetall-Simulationen unter Einsatz einer Kombination von Faktoren
DE102007041691A1 (de) Datenträgermigrationsprogramm, -verfahren, und -system
DE102015114721B4 (de) Verfahren, Gerät und System zur Datenverarbeitung
DE102016221968A1 (de) Integration von Vorzeichenerweiterungen für Ladevorgänge

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0011340000

Ipc: G06F0012080000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final