PL2807562T3

Modifying run-time-instrumentation controls from a lesser-privileged state

Abstract

Embodiments of the invention relate to modifying run-time-instrumentation controls (MRIC) from a lesser-privileged state. The MRIC instruction is fetched. The MRIC instruction includes the address of a run-time-instrumentation control block (RICCB). The RICCB is fetched based on the address included in the MRIC instruction. The RICCB includes values for modifying a subset of the processor's run-time-instrumentation controls. The subset of run-time-instrumentation controls includes a runtime instrumentation program buffer current address (RCA) of a runtime instrumentation program buffer (RIB) location. The RIB holds run-time-instrumentation information of the events recognized by the processor during program execution. The values of the RICCB are loaded into the run-time-instrumentation controls. Event information is provided to the RIB based on the values that were loaded in the run-time-instrumentation control.

Term

6.4 yearsto projected expiry

Projected expiry 1 March 2033, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

1 claim: 1 independent, 0 dependent

  1. 1
    Claims Zastrzeżenia patentowe 1. A computer-implemented method for performing changes in actuator controls, MRIC (600), instructions from a program operating in a less-privileged processor state, MRIC instructions for setting only a subset of control instrumentation controls placed in the register, where all mentioned actuator controls can be entered by privileged loading of actuator instrumentation, LRIC, instruction executed in the pre-privileged processor state, the method comprising:1. Sposób realizowany komputerowo dla wykonywania zmieniania wysterowań instrumentacji wykonawczej, MRIC (600), instrukcji z programu działającego w stanie mniej-uprzywilejowanym procesora, instrukcji MRIC do ustawiania jedynie podzbioru wysterowań instrumentacji wykonawczej umieszczonych w rejestrze, gdzie wszystkie wspomniane wysterowania instrumentacji wykonawczej mogą zostać wprowadzone przez uprzywilejowane załadowanie wysterowań instrumentacji wykonawczej, LRIC, instrukcji wykonywanej w stanie-uprzywilejowanym procesora, przy czym sposób obejmuje: downloading (702, 802) of the MRIC instruction, which MRIC instruction contains the address of the executive instrumentation control block, RICCB (900);retrieving (808), by the processor, of this RICCB, where RICCB contains a number of actuator instrumentation values, to modify said subset of control inputs of this processor, where a subset of actuator controls contains the current address of the performance instrumentation buffer, RCA (1006), buffer position an executive instrumentation program, RIB, where the RIB is used to store information on performance instrumentation for events identified by this processor during program execution;pobieranie (702, 802) instrukcji MRIC, która to instrukcja MRIC zawiera adres bloku sterującego instrumentacji wykonawczej, RICCB (900);pobieranie (808), przez procesor, tego RICCB, gdzie RICCB zawiera liczne wartości wysterowań instrumentacji wykonawczej, do modyfikowania wspomnianego podzbioru wysterowań instrumentacji wykonawczej tego procesora, gdzie podzbiór wysterowań instrumentacji wykonawczej zawiera bieżący adres bufora programowego instrumentacji wykonawczej, RCA (1006), położenia bufora programu instrumentacji wykonawczej, RIB, przy czym RIB służy do przechowywania informacji o instrumentacji wykonawczej dla zdarzeń rozpoznanych przez ten procesor podczas wykonywania programu;introducing (706), these numerous values ​​for controlling the performance instrumentation;by using these introduced numerous values ​​to provide information about the event of performance instrumentation to the RIB;wprowadzanie (706), tych licznych wartości do wysterowań instrumentacji wykonawczej;przez wykorzystywanie tych wprowadzonych licznych wartości w celu dostarczenia informacji o zdarzeniu instrumentacji wykonawczej do RIB;obtaining a value-dependent model for at least one of many values uzyskiwanie uzależnionej od modelu wartości dla co najmniej jednej z licznych wartości RICCB;and the introduction of this model-dependent value as an updated value for the control of the performance instrumentation. RICCB;oraz wprowadzanie tej uzależnionej od modelu wartości jako wartości zaktualizowanej do wysterowań instrumentacji wykonawczej . 2. Sposób według zastrzeżenia 1, obejmujący ponadto powodowanie wyjątku, w oparciu o jedno, lub większą liczbę z poniższych: The method of claim 1, further comprising causing an exception based on one or more of the following: determine if the address in the MRIC (600) instruction is equal to the limit of the double word;and determining if RICCB (900) can be obtained from the address contained in the MRIC manual. ustalenia, czy adres w instrukcji MRIC (600) nie zrównuje się z granicą słowa podwójnego;oraz ustalenia, czy RICCB (900) nie może zostać pobrane spod adresu zawartego w instrukcji MRIC. 3. A method according to any of the preceding claims, further comprising: determining whether one or more RICCBs (900) are valid, wherein the determination further comprises any of: 3. Sposób według dowolnego z poprzednich zastrzeżeń, obejmujący ponadto: ustalanie, czy jedna lub większa liczba wartości RICCB (900) są ważne, gdzie to ustalanie obejmuje ponadto dowolne spośród: determining that the execution instrument bit S (904) indicates that execution of the MRIC instruction (600) from the preprofessional state is not allowed;determining that the actuator controls are invalid;and determining that performance instrumentation is not included. ustalania, że bit S (904) instrumentacji wykonawczej wskazuje, że wykonywanie instrukcji MRIC (600) ze staniu mniej-uprzywilejowanego jest niedozwolone;ustalania, że wysterowania instrumentacji wykonawczej są nieważne;oraz ustalania, że instrumentacja wykonawcza nie jest włączona. 4. Sposób według dowolnego z poprzednich zastrzeżeń, w którym liczne z wartości należących do RICCB (900) zawierają ponadto jedno, lub większą liczbę z poniższych: wysterowanie dla zarządzania szczegółami próbkowania danych instrumentacji wykonawczej ;The method according to any one of the preceding claims, wherein the plural of values ​​belonging to the RICCB (900) further comprises one or more of the following: control for managing the sampling details of the given runtime instrumentation;control for managing the details of executive instrumentation data collection;control for managing the details of executive instrumentation data collection;control for managing the details of executive instrumentation data reporting to the software buffer;wysterowanie dla zarządzania szczegółami zbierania danych instrumentacji wykonawczej;wysterowanie dla zarządzania szczegółami zbierania danych instrumentacji wykonawczej;wysterowanie dla zarządzania szczegółami raportowania danych instrumentacji wykonawczej do bufora programowego;control for failure detection instruction cache management;control for managing data cache miss detection;control for managing the size detection of the reporting group;wysterowanie dla zarządzania wykrywania chybień pamięci podręcznej instrukcji;wysterowanie dla zarządzania wykrywania chybień pamięci podręcznej danych;wysterowanie dla zarządzania wykrywania rozmiaru grupy raportującej;control for managing the current address within the output software buffer in which the next reporting group is stored;wysterowanie dla zarządzania bieżącym adresem w obrębie wyjściowego bufora programowego, w którym jest przechowywana następna grupa raportująca;controls for managing the detection of collection of branching-in-kind, return-type and forward-type data;and controls for managing the detection of branch data collection that has been correctly or incorrectly provided and made or not. wysterowań dla zarządzania wykrywaniem zbierania danych dotyczących rozgałęzień w rodzaju-wywołania, w rodzaju-powrotu, oraz w rodzaju-przekazania;oraz wysterowań dla zarządzania wykrywania zbierania danych o rozgałęzieniach, które zostały prawidłowo lub nieprawidłowo przewidziane i dokonane lub niedokonane. 5. Sposób według dowolnego z poprzednich zastrzeżeń, w którym instrukcja MRIC (600) jest określona dla pierwszej architektury komputerowej, a pobieranie i analizowanie składniowe jest wykonywane przez drugi procesor alternatywnej architektury komputerowej, przy czym pobieranie i analizowanie składniowe przez drugi procesor obejmuje: The method according to any of the preceding claims, wherein the MRIC instruction (600) is determined for the first computer architecture, and the syntax picking and analysis is performed by the second processor of the alternative computer architecture, wherein the second processor download and parsing includes: recognition of the software routine for emulating the execution of MRIC instructions on the first computer architecture;and performing the MRIC instruction with the help of this program procedure. rozpoznawanie procedury programowej dla emulowania wykonywania instrukcji MRIC na pierwszej architekturze komputerowej;oraz wykonywanie instrukcji MRIC z pomocą tej procedury programowej. 6. Sposób według dowolnego z poprzednich zastrzeżeń, w którym żadne wartości w wysterowaniach instrumentacji wykonawczej nie są aktualizowane jeżeli zostanie napotkany błąd. A method according to any of the preceding claims, wherein no values ​​in the actuator controls are updated if an error is encountered. 7. A computer system for performing modifications of performance instrumentation, MRIC (600), instructions from a program operating in a less-preferred state of the processor, MRIC instructions for setting only a subset of control instrumentation controls placed in the register, in which all mentioned actuator controls can be introduced by the control executive instrumentation for introducing a privileged, LRIC, instruction executed in a preferential state of the processor, whereby the system includes: 7. System komputerowy do wykonywania modyfikowania wysterowań instrumentacji wykonawczej, MRIC (600), instrukcji z programu działającego w mniejuprzywilejowanym stanie procesora, instrukcji MRIC do ustawiania jedynie podzbioru wysterowań instrumentacji wykonawczej umieszczonych w rejestrze, w którym wszystkie wspomniane wysterowania instrumentacji wykonawczej mogą zostać wprowadzone przez wysterowania instrumentacji wykonawczej wprowadzania uprzywilejowanego, LRIC, instrukcji wykonywanej w stanie uprzywilejowanym procesora, przy czym system obejmuje: a computer processor containing an executive instrumentation module, where the executive instrumentation module has the ability to: download the MRIC instruction, where the MRIC instruction contains the address of the executive instrumentation control block, RICCB (900);procesor komputerowy zawierający moduł instrumentacji wykonawczej, gdzie moduł instrumentacji wykonawczej ma możliwość: pobierania instrukcji MRIC, gdzie instrukcja MRIC zawiera adres bloku sterującego instrumentacji wykonawczej, RICCB (900);RICCB download, where the RICCB contains a number of execution instrumentation control values ​​for modifying said subset of control inputs of the computer processor performance instrumentation, wherein a subset of executory instrumentation controls includes the current address of the performance instrumentation buffer, RCA (1006), the position of the raffle program buffer, RIB, buffer The RIB is used to store information about executive instrumentation events recognized by the computer processor during program execution;pobierania RICCB, gdzie RICCB zawiera liczne wartości wysterowań instrumentacji wykonawczej dla modyfikowania wspomnianego podzbioru wysterowań instrumentacji wykonawczej procesora komputerowego, przy czym podzbiór wysterowań instrumentacji wykonawczej zawiera bieżący adres bufora programowego instrumentacji wykonawczej, RCA (1006), położenia bufora programowego instrumentacji wykonawczej, RIB, gdzie bufor RIB służy do przechowywania informacji o zdarzeniach instrumentacji wykonawczej rozpoznanych przez procesor komputerowy podczas wykonywania programu;introducing these numerous values ​​into the control of performance instrumentation;the use of these numerous introduced values ​​for providing information on RIB implementation events;wprowadzania tych licznych wartości do wysterowań instrumentacji wykonawczej;wykorzystywania tych licznych wprowadzonych wartości dla dostarczania informacji o zdarzeniach instrumentacji wykonawczej do RIB;obtaining a limited value-dependent model for at least one of the many values ​​belonging to the RICCB (900);and the introduction of this model-dependent limited value as the updated value for the control of the performance instrumentation. uzyskiwania uzależnionej od modelu ograniczonej wartości dla co najmniej jednej z tych licznych wartości należących do RICCB (900);oraz wprowadzania tej uzależnionej od modelu ograniczonej wartości jako wartości zaktualizowanej do wysterowań instrumentacji wykonawczej . 8. A system as claimed, further capable of causing an exception, based on one or more of the following: 8. System według zastrzeżenia, zdolny ponadto do powodowania wyjątku, w oparciu o jedno, lub większą liczbę z poniższych: determine if the address in the MRIC (600) instruction is equal to the limit of the double word;and determining if RICCB (900) can be obtained from the address contained in the MRIC manual. ustalenia, czy adres w instrukcji MRIC (600) nie zrównuje się z granicą słowa podwójnego;oraz ustalenia, czy RICCB (900) nie może zostać pobrane spod adresu zawartego w instrukcji MRIC. 9. System według zastrzeżenia albo 7 albo 8, ponadto zdolny do: ustalania, tego czy jedna lub większa liczba wartości RICCB (900) jest ważna, gdzie to ustalanie obejmuje ponadto dowolne spośród: 9. The system of claim 7 or 8, further being capable of: determining whether one or more RICCBs (900) is valid, wherein the determination further includes any of: determining that the execution instrumentation bit S indicates that the instruction is being executed ustalania, że bit S instrumentacji wykonawczej wskazuje, że wykonywanie instrukcji MRIC from a preferential state is not allowed;MRIC ze staniu mniej-uprzywilejowanego jest niedozwolone;determining that the actuator controls are invalid;and determining that performance instrumentation is not included. ustalania, że wysterowania instrumentacji wykonawczej są nieważne;oraz ustalania, że instrumentacja wykonawcza nie jest włączona. 10. System według dowolnego z zastrzeżeń od 7 do 9, w którym liczne z wartości RICCB (900) zawierają ponadto jedno, lub większą liczbę spośród: wysterowania dla zarządzania szczegółami próbkowania danych instrumentacji wykonawczej ;The system according to any one of claims 7 to 9, wherein the plurality of RICCBs (900) further comprises one or more of: a control for managing the sampling details of the given runtime instrumentation;controls for managing the details of executive instrumentation data collection;wysterowania dla zarządzania szczegółami zbierania danych instrumentacji wykonawczej ;control for managing the details of executive instrumentation data reporting to the software buffer;wysterowania dla zarządzania szczegółami raportowania danych instrumentacji wykonawczej do bufora programowego;control for managing instruction cache miss detection;controls for managing data cache miss detection;controls for managing the size detection of the reporting group;wysterowania dla zarządzania wykrywania chybień pamięci podręcznej instrukcji;wysterowania dla zarządzania wykrywania chybień pamięci podręcznej danych;wysterowania dla zarządzania wykrywania rozmiaru grupy raportującej;controls for managing the detection of the current address within the output program buffer in which the next reporting group is stored;controls for managing the detection of collection of branching-in-kind, return-type and forward-type data;and controls for managing the detection of branch data collection that has been correctly or incorrectly provided and made or not. wysterowania dla zarządzania wykrywania bieżącego adresu w obrębie wyjściowego bufora programowego, w którym jest przechowywana następna grupa raportująca;wysterowań dla zarządzania wykrywania zbierania danych dotyczących rozgałęzień w rodzaju-wywołania, w rodzaju-powrotu, oraz w rodzaju-przekazania;oraz wysterowań dla zarządzania wykrywania zbierania danych o rozgałęzieniach, które zostały prawidłowo lub nieprawidłowo przewidziane i dokonane lub niedokonane. 11. System według dowolnego z zastrzeżeń 7 do 10, w którym instrukcja MRIC (600) jest określona dla pierwszej architektury komputerowej, a pobieranie i analizowanie składniowe jest wykonywane przez drugi procesor alternatywnej architektury komputerowej, przy czym pobieranie i analizowanie składniowe przez drugi procesor obejmuje: The system according to any one of claims 7 to 10, wherein the MRIC instruction (600) is determined for the first computer architecture, and the syntax picking and analysis is performed by the second processor of the alternative computer architecture, wherein the second processor download and parsing includes: recognition of the software routine for emulating the execution of MRIC instructions on the first computer architecture;and performing the MRIC instruction with the help of this program procedure. rozpoznawanie procedury programowej dla emulowania wykonywania instrukcji MRIC na pierwszej architekturze komputerowej;oraz wykonywanie instrukcji MRIC z pomocą tej procedury programowej. 12. System według dowolnego z zastrzeżeń 7 do 11, w którym żadne wartości w wysterowaniach instrumentacji wykonawczej nie są aktualizowane jeżeli zostanie napotkany błąd. 12. The system according to any of claims 7 to 11, wherein no values ​​in the actuator controls are updated if an error is encountered. 13. A product in the form of a computer program for performing modifications of executive instrumentation controls, MRIC instructions, which product in the form of a computer program includes: 13. Produkt w postaci programu komputerowego do wykonywania modyfikowania wysterowań instrumentacji wykonawczej, instrukcji MRIC, który to produkt w postaci programu komputerowego obejmuje: a computer-readable medium that can be read by the processing system 15 and storing the instructions to be executed by the processing system to carry out the method according to any one of claims 1 to 6. czytelny dla komputera nośnik, który może być odczytywany przez układ przetwarzający 15 i przechowujący instrukcje do wykonania przez układ przetwarzający w celu przeprowadzenia sposobu według któregokolwiek z zastrzeżeń 1 do 6. [Fig. 6] [Fig. 6] 600 600 FIG. 6 r / 1014 / YJJ / / J 7) ł 10101012-Tm0461 1020/1024/1028 lOBO 1032 [Fig. 10] FIG. 6 r /1014/Y J J / / J 7 )ł 10101012-Tm0461 1020/1024/ 1028 lOBO 1032 [Fig. 10] Bieżący adres (RCA) bufora programowego instrumentacji wykonawczej The current address (RCA) of the performance instrumentation program buffer FIG. 10 FIG. 10 Słowo Word 1000 1000 RGS RGS 103 103 1039 1039 1044 1044 1008 1008 1034 1034 1036 1036 Scaling factor (SF) Współczynnik skalujący (SF) 1040 1040 1002 1002 Pierwotny adres (ROA) bufora programowego instrumentacji wykonawczej The original address (ROA) of the performance instrumentation program buffer 1004 1004 Ograniczający adres (RLA) bufora programowego instrumentacji wykonawczej Restrictive address (RLA) of execution instrumentation buffer Counting the remaining time interval of the remaining sample (RSIC) 1042 Zliczanie odstępu czasowego pozostałej próbki (RSIC) 1042 8 9 1011 121314 1617181920 222324 2728 31 [Fig. 12] 8 9 1011 121314 1617181920 222324 2728 31 [Fig. 12] 1200 1200 1202 1202 1204 1204 1206 1206 FIG. 12 FIG. 12 1208 1208