Resumen
Method and synchronization device and parallel execution of trace instructions on a segmented RISC processor. The invention consists of a device whose internal structure, based on a segmented processor, eliminates the overload of execution time introduced by the code instrumentation used to measure the execution time in the worst case. For this, the device uses a specific instruction code for the instrumentation, which is interpreted as the trace rating of the instruction that precedes it, and which allows to identify univocally the moment of execution of said instruction. The proposed device executes in parallel, and in a synchronized manner, each trace instruction with the instruction to draw that precedes it, and conditions said execution to be completed, without being affected by bubbles, the execution of the instruction to be drawn. (Machine-translation by Google Translate, not legally binding)
Reivindicaciones
1. REIVINDICACIONES 1. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, caracterizado porque comprende: • una etapa de búsqueda de instrucciones (100), que a su vez comprende: o un módulo de cálculo de la dirección de la instrucción (101); y, o módulo de búsqueda de las instrucciones con doble puerto de lectura (102); • una etapa de decodificación duplicada (103); • unpipeline-traza(113) para el procesado únicamente de instrucciones de traza; • un registro de salida (123) para la traza; • una ruta de datos que a su vez comprende un conjunto de multiplexores (109, 110, 116, 119); • un controlador de la ruta de datos (104), que a su vez comprende unas entradas (105) y unas salidas (106) que controlan los multiplexores (109, 110, 116, 119), la carga en unos registros asociados las distintas etapas (107, 108, 114, 115, 117, 118, 120, 121) y el registro de salida (123) para la traza; donde el controlador de la ruta de datos (104) está configurado para determinar, en función del estado de dicho controlador (104) y del valor de las entradas (105) en dicho controlador, el valor de las salidas (106) que son enviadas a los multiplexores (109, 110, 116 y 119) de la ruta de datos de tal forma que una instrucción de traza se ejecuta de forma sincronizada con la instrucción que la precede, haciéndose efectiva dicha ejecución durante la última etapa (121) delpipelinede traza (113). 2. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 1, caracterizado porque el controlador comprende las siguientes secuencias de instrucciones: • S1: corresponde a pares Instrucción-Traza (301- 302, 303-304 y 305-306) en los que las instrucciones a ser trazadas (301, 303 y 305) siempre se cargan en el elemento “INSTRUCCIÓN N” (107), mientras las instrucciones correspondientes de traza (302, 304 y 306) se cargan en el elemento “INSTRUCCIÓN N+1” (115); • S2: corresponde a una secuencia de instrucciones (401, 402, 403 y 404) que no son trazadas, de forma en los elementos "INSTRUCCIÓN N” (114) e "INSTRUCCIÓN N+1” (115) siempre se cargan instrucciones; • S3: corresponde a dos pares Instrucción-Traza (502- 503 y 504-505) en los que las instrucciones de traza (503 y 505) se cargan en ciclos sucesivos (500 y 510) en el elemento "INSTRUCCIÓN N 1” (107), mientras las instrucciones a trazar (502 y 504) se cargan en esos mismos ciclos en el elemento "INSTRUCCIÓN N+1” (108). 3. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 2, caracterizado porque el dispositivo de procesamiento ejecuta la secuencia S1 durante dos ciclos de reloj, T (300) y T+1 (307); de tal forma que las instrucciones almacenadas en unas direcciones X+1 (302), X+3 (304) y X+5 (306), son las instrucciones de traza de las instrucciones que las preceden, ubicadas, respectivamente, en unas direcciones X (301), X+2 (303) y X+4 (305). 4. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 2, caracterizado porque el dispositivo de procesamiento ejecuta la secuencia S2 en la que durante dos ciclos no se cargan instrucciones de traza; de tal forma que durante el primer ciclo T (400) se detecta que las dos instrucciones que están cargadas en la etapa de decodificación (403 y 404) no son de traza, y por tanto las señales "N_ES_TRAZA” (129) y "N_1_ES_TRAZA” (130) valen ambas "0” ; y, en el ciclo T 1 (408) el controlador se encuentra en el estado denominado "INSTR PENDIENTE” (202), en el que la instrucción pendiente (404) ubicada en la segunda unidad de decodificación (108) se dirige hacia la "etapa 3” delpipelinede instrucciones del procesador (114). 5. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 2, caracterizado porque el dispositivo de procesamiento ejecuta la secuencia S3: en el ciclo T (500) el valor de la señal "N_ES_TRAZA” (129) es "1” , mientras que "N_1_ES_TRAZA” (130) vale "0”, y el valor de la señal de multiplexación "SEL_TR_P4” (133) es "2”, de tal forma que se habilita una ruta donde la instrucción de traza (503) se sincroniza con la ejecución de la instrucción a trazar (502); en el ciclo T+1 (510), se ubica la instrucción de traza (503) en la etapa 4 delpipelinede traza (118). En el ciclo T(500), además, la señal de multiplexación "SEL_PIPE_TRAZA” (132) toma el valor 0, con el fin de que en el ciclo T+1 (510) se encuentre un cero (507) en la etapa 3 delpipelinede traza (115). 6. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 1, caracterizado porque el dispositivo de procesamiento durante un ciclo "T”, detecta una burbuja en la etapa 3 delpipelinede instrucciones (114), de tal forma que el controlador fija la ruta que carga un "0” en las etapas 3 (115) y 4 (118) delpipeline-traza (113) y una dirección de salto "Z” (600) se enruta hacía el registro de entrada de la etapa de búsqueda (139), de tal forma que la detección de la burbuja en la etapa 3 se corresponde con la puesta a "1” de la señal "BURBUJA_P3" (125) y de la señal "BURBUJA" (122). 7. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 6, caracterizado porque el controlador controla: la ruta hacia la etapa 3 (115) asignando "0” a la señal "SEL_PIPE_TRAZA" (132); la ruta hacia la etapa 4 (118) asignando un "0” a la señal "SEL_TR_P4" (133); y la carga del registro de entrada de la etapa de búsqueda (139) activando la señal "LD_DIR" (137) y enrutando la dirección "Z" (600) hacía dicho registro (139) asignando un "0” a la señal "SEL_DIR" (138). 8. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 1, caracterizado porque el dispositivo de procesamiento durante un ciclo "T”, detecta una burbuja en la etapa 4 delpipelinede instrucciones (117), de tal forma el controlador fija la ruta que carga un "0” en las etapas 3 (115), 4 (118) y 5 (121) delpipeline-traza(113) y la dirección de salto "Z” (600) se enruta hacia el registro de entrada de la etapa de búsqueda ( 139), de tal forma que la detección de la burbuja en la etapa 4 se corresponde con la puesta a "1” de la señal "BURBUJA_P4" (126) y de la señal "BURBUJA" (122). 9. Un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza, según la reivindicación 8, caracterizado porque el controlador controla: la ruta hacia la etapa 3 delpipeline-traza(115) asignando "0” a la señal "SEL_PIPE_TRAZA" ( 132); la ruta hacia la etapa 4 (118) asignando un “0” a la señal "SEL_TR_P4" (133); la ruta hacia la etapa 5 (121) se controla asignando un “0” a la señal "SEL_TR_P5" (134); y, la carga del registro de entrada de la etapa de búsqueda (139) activando la señal "LD_DIR" (137) y enrutando la dirección "Z" (600) hacía dicho registro (139) asignando un 0 a la señal "SEL_DIR" ( 138). 10. Un procesador RISC, “Computador con Conjunto de Instrucciones Reducidas” , caracterizado porque comprende un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza según una cualquiera de las reivindicaciones anteriores. 11. Un método de procesamiento en paralelo de instrucciones de programa e instrucciones de traza que, ejecutado sobre un dispositivo de procesamiento en paralelo de instrucciones de programa e instrucciones de traza definido en cualquiera de las reivindicaciones 1 a 9, procesa de forma paralela una instrucción y una instrucción de traza.