ES2313349T3 - Composiciones de trazas de datos para un circuito integrado de memorias multiples. - Google Patents

Composiciones de trazas de datos para un circuito integrado de memorias multiples. Download PDF

Info

Publication number
ES2313349T3
ES2313349T3 ES05748092T ES05748092T ES2313349T3 ES 2313349 T3 ES2313349 T3 ES 2313349T3 ES 05748092 T ES05748092 T ES 05748092T ES 05748092 T ES05748092 T ES 05748092T ES 2313349 T3 ES2313349 T3 ES 2313349T3
Authority
ES
Spain
Prior art keywords
data
memory
address
integrated circuit
access
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
ES05748092T
Other languages
English (en)
Inventor
Johnny K. John
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2313349T3 publication Critical patent/ES2313349T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • 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
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56008Error analysis, representation of errors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318505Test of Modular systems, e.g. Wafers, MCM's
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

Un circuito integrado (100) que comprende: una pluralidad de memorias (126a, 126b); y un módulo de traza (140) operativo para formar paquetes de trazas de datos, caracterizado porque cada memoria de la pluralidad de memorias (126a, 126b) es accesible de forma independiente y el medio de rastreo forma los paquetes de trazas de datos para los accesos de memoria de la pluralidad de memorias, incluyendo cada paquete de trazas de datos una dirección y datos para acceso de memoria a una memoria concreta y un identificador de memoria de la memoria concreta.

Description

Composiciones de trazas de datos para un circuito integrado de memorias múltiples.
Antecedentes I. Campo
La presente invención se refiere en general a circuitos integrados, y más específicamente a técnicas para comprimir trazas de datos y direcciones para probar y depurar un circuito integrado con múltiples memorias.
II. Antecedentes
La mejora continua en la tecnología de fabricación de circuitos integrados (CI) ha permitido que se fabriquen más circuitos integrados y más complicados para diferentes aplicaciones. Por ejemplo, un dispositivo tipo sistema-en-chip (SOC) puede incluir un microprocesador, una memoria, y otras unidades de proceso, todos ellos incluidos en un único circuito integrado. El microprocesador puede realizar varias funciones y/o controlar las unidades de proceso. Las unidades de proceso pueden estar diseñadas para realizar tareas de cálculo específicas. La memoria puede almacenar códigos y datos para el microprocesador y unidades de proceso. La integración de todos estos bloques de circuito en un único circuito integrado reduce el coste y mejora la fiabilidad.
Un aspecto importante del desarrollo de un circuito integrado es la prueba y depuración de los distintos bloques de circuito dentro del circuito integrado. Una técnica normalmente usada para depurar un circuito integrado es el rastreo en tiempo real, que incluye rastreo de programas/instrucciones y el rastreo de datos. Rastreo de programas se refiere a la captura de líneas de código ejecutadas por los procesadores en el circuito integrado, y el rastreo de datos hace referencia a la captura de datos a los que acceden los procesadores. El rastreo en tiempo real proporciona a un usuario/desarrollador la capacidad de capturar y visualizar instrucciones y datos a los que se ha accedido en el circuito integrado a velocidad de procesado. Esto ayuda al usuario/desarrollador a encontrar fallos del hardware y/o código tales como, por ejemplo, fallos oscuros que sólo se producen en situaciones en las que hay una interacción impredecible entre el hardware y el código.
La capacidad de rastreo en tiempo real se proporciona normalmente mediante un módulo de traza y un puerto de traza incluidos en el circuito integrado. El módulo de traza normalmente incluye filtros configurables y lógica de activación que permiten que el usuario/desarrollador seleccione qué instrucciones y datos capturar e informar. La información capturada a menudo se comprime y después se vehicula mediante un puerto de traza a una herramienta de análisis localizada en la memoria externa. Convencionalmente, el módulo de traza sólo soporta rastreo de datos de una única memoria o una memoria de datos unificados dentro del circuito integrado. El documento EP1139220 desvela un componente de prueba-depuración de un SOC generalmente de acuerdo con la técnica anterior descrita, que tiene un módulo de traza de datos y un puerto de traza que están incluidos en el circuito integrado, pero no desvela ninguna técnica particularmente adecuada para SOC con múltiples memorias.
Resumen
Se describen en el presente documento técnicas para realizar el rastreo de datos en un circuito integrado con múltiples memorias incluidas. Estas técnicas realizan el rastreo de datos separadamente para cada memoria de forma que se puede conseguir un mayor grado de compresión de las trazas de datos capturados en el rastreo. Por lo general, las trazas de datos pueden incluir direcciones y datos de memoria valores de contadores de programa, referencia temporal, y cualquier otra información que pueda ser útil para probar y depurar el circuito integrado. Las trazas de datos de cada memoria se identifican adecuadamente según un identificador de memoria asignado a dicha memoria.
Una forma de realización proporciona un circuito integrado con múltiples memorias y un módulo de traza. Cada memoria es accesible independientemente de las demás memorias, y las memorias múltiples pueden ser accesibles en paralelo. El módulo de traza forma paquetes de trazas de datos de los accesos de memoria de las memorias múltiples, un paquete de trazas de datos para cada acceso de memoria. Cada paquete de trazas de datos incluye una dirección y/o datos para un acceso de memoria de una memoria concreta y un identificador de memoria para dicha memoria.
En una forma de realización, el módulo de traza incluye múltiples unidades de captura de datos, un generador de corrientes de trazas, y un tampón. Se proporciona a cada memoria una unidad de captura de datos. Cada unidad de captura de datos incluye un registro de dirección, un comparador de dirección, un compresor de dirección, un compresor de datos, y un empaquetador. El registro de dirección almacena una dirección de un acceso de memoria anterior de la memoria asociada. El comparador de dirección compara una dirección de un acceso de memoria actual de la memoria asociada frente a la dirección almacenada en el registro. El compresor de dirección realiza la compresión del acceso de memoria actual, según la salida del comparador de dirección, y genera un compresor desarrollado para encontrar direcciones erróneas para el acceso de memoria actual. El compresor de datos realiza la compresión de datos para el acceso de memoria actual. El empaquetador forma un paquete de trazas de datos para el acceso de memoria actual de la memoria asociada. El generador de corriente de trazas recibe paquetes de trazas de datos procedentes de las múltiples unidades de captura de datos y genera una corriente de trazas de datos conteniendo dichos paquetes. El tampón
almacena la corriente de trazas de datos y proporciona las trazas de datos a la memoria externa cuando se activa.
Cada paquete de trazas de datos puede incluir (1) un campo para el identificador de memoria, (2) un campo de dirección de tamaño variable, (3) al menos un campo indicador del tamaño del campo de dirección, (4) un campo de datos de tamaño variable, (5) un campo indicador del tamaño del campo de datos, y (6) posiblemente otros campos. Se describen a continuación varios formatos de empaquetado. Cada paquete de trazas de datos puede incluir (1) una dirección no comprimida, comprimida o nula, (2) datos no comprimidos, comprimidos o nulos, y (3) otra información tal como el identificador de memoria.
El circuito integrado puede incluir adicionalmente uno o más procesadores de señal digital (DSP), microprocesadores, controladores, y así sucesivamente. Las memorias múltiples se pueden usar para almacenar datos para el o los DSP(s).
Varios aspectos y formas de realización de la invención se describen con más detalle a continuación.
\vskip1.000000\baselineskip
Breve descripción de los dibujos
Las características y naturaleza de la presente invención resultarán más evidentes a partir de la descripción detallada definida a continuación cuando se toma en conjunto con los dibujos en los que caracteres de referencia iguales se identifican de forma correspondiente en todos ellos, y en los que:
La Fig.1 muestra un circuito integrado con múltiples memorias incluidas y teniendo capacidad de rastreo para prueba y depuración;
La Fig. 2 muestra un diagrama de bloques de un módulo de traza;
La Fig. 3A muestra datos de accesos para un circuito integrado convencional con una única memoria;
La Fig. 3B ilustra una técnica de compresión de dirección para rastreo de datos;
La Fig. 3C muestra datos de accesos para un circuito integrado con múltiples memorias;
La Fig. 4 muestra un diagrama de bloques de las trazas de una unidad de captura de datos para un DSP;
Las Figs. 5A a 5D muestran cuatro formatos de ejemplo de paquetes de trazas de datos; y
La Fig. 6 muestra un procedimiento para realizar el rastreo de datos para un circuito integrado con múltiples (por ejemplo, tres) memorias accesibles de manera independiente.
\vskip1.000000\baselineskip
Descripción detallada
El término "de ejemplo" que se usa en el presente documento "sirve como ejemplo, caso o ilustración". Cualquier forma de realización o diseño descrito en el presente documento como "de ejemplo" no debe tomarse necesariamente como preferido o ventajoso sobre otras formas de realización o diseños.
La Fig. 1 muestra un diagrama de bloques de un circuito integrado 100 con múltiples memorias incluidas y con capacidad de rastreo para prueba y depuración. El circuito integrado 100 incluye múltiples procesadores y controladores incluidos como un microprocesador 110, un procesador de señal digital (DSP) 120, y un controlador de acceso directo a memoria (DMA) 130. El microprocesador 110 realiza el procesado general del circuito integrado 100 y puede implementarse con un conjunto reducido de instrucciones de computación (RISC) o algún otro tipo de microprocesador. DSP 120 es un procesador especializado específicamente diseñado para realizar operaciones matemáticas muy rápidamente. DSP 120 puede incluir varias unidades de proceso tales como unidades multiplicador-acumulador (MAC), unidades lógicas aritméticas (ALU), y así sucesivamente. El controlador DMA 130 maneja intercambios de datos a alta velocidad en tiempo real entre DSP 120 y otras unidades de proceso externas al circuito integrado 100. Por simplicidad, las interconexiones entre el microprocesador 110, DSP 120, y el controlador DMA 130 no se muestran en la Fig. 1. En general, el circuito integrado 100 puede incluir cualquier número y cualquier tipo de procesadores y controladores.
El microprocesador 110 implementa una arquitectura "Harvard", que usa memoria de instrucciones 114 y memoria de datos 116 diferenciada para almacenar instrucciones y datos, respectivamente. Un controlador de memoria 112 proporciona al microprocesador 110 las instrucciones y datos necesarios y datos de las memorias 114 y 116. DSP 120 implementa una arquitectura "super-Harvard" que usa memoria de instrucciones 124 diferenciada para almacenar instrucciones y múltiples memorias de datos 126a a 126c para almacenar datos. Las memorias 126a, 126b, y 126c se denominan también memorias de datos A, B, y C, respectivamente. Un controlador de memoria 122 proporciona al DSP 120 las instrucciones y datos necesarios de las memorias 124 y 126. El controlador DMA 130 también interactúa con el controlador de memoria 122 para intercambios de datos. En general, los procesadores y controladores del circuito integrado 100 pueden implementar cualquier tipo de arquitectura de memoria. Más aún, el circuito integrado 100 puede incluir cualquier número de memorias.
Cada memoria en el circuito integrado 100 es una memoria independiente que puede accederse individualmente para almacenar/recuperar instrucciones/datos. Cada memoria se gestiona mediante un controlador de memoria asociado. Cada memoria puede denominarse también como banco de memoria, una memoria caché, o con cualquier otra terminología. Convencionalmente, un circuito integrado incluye una única memoria o una memoria unificada para almacenar datos. La memoria de datos única pude accederse típicamente para obtener un número concreto de (por ejemplo, cuatro) bytes de datos a la vez. Múltiples memorias de datos se pueden usar para obtener beneficios variados tales como, por ejemplo, operación en paralelo, rendimiento de memoria más elevado, y mayor flexibilidad de almacenamiento. Por ejemplo, se pueden almacenar diferentes tipos de datos en diferentes memorias, y un DSP puede usar las memorias diferenciadas para conseguir cargas paralelas de diferentes tipos de datos. Las memorias de datos múltiples se diferencian de una memoria unificada en que estas múltiples memorias de datos pueden usar unidades de generación de direcciones independientes, buses de memoria independientes, instrucciones pueden realizar datos de accesos paralelos de las memorias diferenciadas, anchuras de datos independientes, y así sucesivamente.
El circuito integrado 100 incluye además un módulo de traza 140, un puerto de traza 142, y un puerto JTAG (grupo conjunto de actividades de prueba) 138, que colectivamente proporcionan capacidades de prueba y depuración del circuito integrado. El módulo de traza 140 incluye varios bloques de circuito y registros que se usan para monitorizar los buses internos del microprocesador 110, DSP 120, y del controlador DMA 130, como se describe más adelante. El módulo de traza 140 puede capturar información respecto del estado de los procesadores 110 y 120 y controlador 130 para facilitar la prueba y depuración del circuito integrado 100. El módulo de traza 140 puede capturar adicionalmente la información de manera "no intrusiva", es decir, sin añadir perturbación al rendimiento de los procesadores y controlador de forma que dichas unidades puedan operar a máxima velocidad. El módulo de traza 140 proporciona la información capturada en forma de corriente de trazas de datos mediante el puerto de traza 142. El puerto JTAG 138 se usa para configurar el módulo de traza 140 y posiblemente los procesadores y controlador del circuito integrado. Por simplicidad, las interconexiones entre el puerto JTAG 138 y los procesadores y controlador no se muestran en la Fig. 1.
Una herramienta de análisis 190 interactúa con un circuito integrado 100 mediante un módulo de interfaz 180. La herramienta de análisis 190 puede ser un sistema computerizado, un analizador lógico y así sucesivamente, y puede implementarse mediante hardware, software, o una combinación de los mismos. Un usuario/desarrollador que está probando o depurando el circuito integrado 100 puede configurar el módulo de traza 140 mediante la herramienta de análisis 190, módulo de interfaz 180, y el puerto JTAG 138. El usuario/desarrollador puede, mediante el puerto de traza 142 y el módulo de interfaz 180, recibir la corriente de trazas de datos que contiene información capturada mediante el módulo de traza 140. El usuario/desarrollador puede visualizar y analizar la información capturada usando la herramienta de análisis 190.
La Fig. 2 muestra un diagrama de bloques de una forma de realización del módulo de traza 140. El módulo de traza 140 incluye tres unidades de captura de trazas de datos 210a, 210b, y 210c para el microprocesador 110, DSP 120, y el controlador DMA 130, respectivamente, un generador de corriente de trazas 250, y un tampón 260. Cada unidad de captura de trazas de datos 210 captura trazas de datos para un respectivo procesador o controlador y proporciona paquetes de trazas de datos, como se describe más adelante.
El generador de corriente de trazas 250 recibe paquetes de trazas de datos procedentes de todas las unidades de captura de trazas de datos 210 y genera una corriente de trazas de datos que contiene estos paquetes. Esta corriente única de trazas de datos transporta así trazas de datos de instrucciones y accesos a memoria de todas las memorias del circuito integrado 100. El tampón 260 almacena las trazas de datos procedentes del generador de corriente de trazas 250 y proporciona las trazas de datos almacenados cuando se activa. El tampón 260 puede estar lleno de trazas de datos según los siguientes mecanismos de activación:
\bullet Traza tras emparejamiento - el tampón 260 comienza a llenarse con trazas de datos una vez se ha recibido el paquete de activación;
\bullet Traza antes de emparejamiento - el tampón 260 se llena continuamente con trazas de datos hasta recepción del paquete activador; y
\bullet Traza en centro - el tampón 260 se llena continuamente con trazas de datos hasta recepción del paquete activador y después se llena con un número específico de entradas de trazas de datos tras recepción del paquete activador.
En general, el diseño del módulo de traza puede depender de varios factores tales como, por ejemplo, el número y tipo de procesadores y controladores incluidos en el circuito integrado, las memorias asociadas con estos procesadores y controladores, las capacidades deseadas de depuración, y así sucesivamente.
La Fig. 3A muestra una secuencia de datos de accesos 310 de ejemplo para un circuito integrado convencional con una única memoria. Cada dato de acceso está asociado con una dirección de memoria y los datos correspondientes a dicha dirección. Para rastreo de datos, el módulo de traza recibe tanto la dirección como los datos para cada acceso de memoria, captura la información pertinente, y genera un paquete de trazas de datos para el acceso de memoria. El módulo de traza realiza típicamente compresión de la dirección y/o datos con el fin de reducir la cantidad de información a incluir en el paquete de trazas de datos.
La Fig. 3B ilustra una técnica de compresión de dirección usada a menudo para rastreo de datos. Esta técnica de compresión de dirección está basada en la asunción de que accesos consecutivos a memorias se realizan a menudo a localizaciones de memoria cercanas entre sí. En este caso, la dirección de cada acceso de memoria puede diferir de la dirección de un acceso de memoria anterior en sólo un pequeño número de orden inferior o bits menos significativos. Se usa un registro de dirección para almacenar la dirección del último acceso de memoria. La dirección del acceso de memoria actual se compara con la dirección almacenada para el último acceso de memoria, y sólo se incluyen en el paquete de trazas de datos los bits de orden inferior en la dirección actual que se diferencian de los de la dirección almacenada (en lugar de la dirección actual completa).
Para facilidad de implementación, el paquete de trazas de datos puede diseñarse para transportar un cierto número de bits de dirección (por ejemplo, 5, 12, o 18 bits de dirección, para un diseño de ejemplo de paquete de trazas de datos descrito más adelante). En este caso, se incluye en el paquete de trazas de datos el menor número posible de bits de dirección según el número de bits de orden inferior que son diferentes. Por ejemplo, si tres bits de orden inferior de dirección son diferentes, entonces el paquete de trazas de datos incluiría cinco bits de orden inferior de dirección para el ejemplo de diseño indicado anteriormente. En efecto, la dirección de compresión se cuantiza a 5, 12, o 18 bits dependiendo del número de bits de orden inferior que son diferentes. El uso de un único registro para almacenar la dirección del último acceso de memoria proporciona adecuado rendimiento de compresión de dirección para un circuito integrado con una única memoria.
La Fig. 3C muestra una secuencia de datos de acceso 330 de ejemplo para un circuito integrado con múltiples memorias (por ejemplo, para el circuito integrado 100 con tres memorias de datos 126a, 126b, y 126c). Las memorias múltiples pueden ser accesibles en paralelo, por ejemplo, para encontrar o almacenar datos de una simple instrucción DSP, que puede incluir múltiples operaciones aritméticas y/o lógicas. Los datos de acceso para cada memoria se asocian con una dirección de memoria y los correspondientes datos en dicha dirección. Puesto que las memorias múltiples pueden ser accesibles de manera independiente, las direcciones de estas memorias puede que no estén próximas entre si o estar correlacionadas de alguna manera. En este caso, usando un único registro de dirección para almacenar una única dirección de memoria para compresión de dirección de memorias múltiples proporcionaría poco rendimiento de compresión si las direcciones de estas memorias difieren ampliamente. Como ejemplo, las direcciones actuales de las memorias A, B, y C pueden ser 100, 5000, y 10000, respectivamente. Si está disponible un registro de dirección, entonces este registro almacenaría inicialmente la dirección de la memoria A de 100, que a continuación se usa para la compresión de la dirección de la memoria B de 5000, que a continuación se usa para la compresión de la dirección de la memoria C de 10000, que a continuación se usa para la compresión de la dirección de la memoria A para el siguiente acceso de memoria, y así sucesivamente. Como puede verse, el rendimiento de compresión de dirección puede ser pobre usando un único registro de dirección para memorias múltiples.
Se pueden usar múltiples registros de dirección para obtener rendimiento mejorado de compresión de dirección en un circuito integrado con múltiples memorias. Un registro de dirección se usa con cada memoria, y cada registro almacena la dirección del último acceso de memoria para su memoria asociada. La dirección del acceso de memoria actual de cada memoria se compara con la dirección almacenada en el registro de dicha memoria. Para el ejemplo anterior, los registros A, B, y C almacenarían direcciones de 100, 5000, y 10000, respectivamente, para los actuales accesos de memoria de las memorias A, B, y C, respectivamente. Para el siguiente acceso de memoria, la dirección de la memoria A se compararía con la dirección almacenada en el registro A, la dirección de la memoria B se compararía con la dirección almacenada en el registro B, y la dirección de la memoria C se compararía con la dirección almacenada en el registro C. Si se realizan accesos consecutivos a memoria para cada una de estas memorias múltiples a localizaciones de memoria próximas entre sí, que es la asunción básica usada en el circuito integrado de memoria única, entonces se puede conseguir buen rendimiento de compresión de dirección en el circuito integrado con múltiples memorias.
La Fig. 4 muestra un diagrama de bloques de una forma de realización de una unidad de captura de trazas de datos 210b para DSP 120. La unidad 210b incluye tres unidades de captura de datos 410a, 410b, y 410c para memorias de datos 126a, 126b, y 126c, respectivamente, y una unidad de captura de instrucciones 412 para la memoria de instrucciones 124. Cada unidad de captura de datos 410 incluye una unidad de compresión 420, un empaquetador 430, y un filtro 440.
En la unidad de captura de datos 410a de la memoria de datos 126a, una unidad de compresión 420a recibe una dirección y los correspondientes datos (que se denominan como memA_direcc y memA_datos, respectivamente) de un acceso de memoria actual a la memoria 126a. La dirección actual, memA_direcc, se almacena en un registro de dirección 422a y también proporciona a un comparador de dirección 424a. El comparador 424a recibe también una dirección almacenada procedente del registro 422a de un acceso de memoria anterior a una memoria de datos 126a, compara la dirección actual con la dirección almacenada, y proporciona el resultado de la comparación a un compresor de dirección 426a. El compresor de dirección 426a determina el número de bits de orden inferior de dirección en la dirección actual que son diferentes de los de la dirección almacenada y el número mínimo (N) de bits de dirección a incluir en el paquete de trazas de datos para el actual acceso de memoria. Se puede derivar también la compresión de dirección. El compresor de dirección 426a proporciona a un empaquetador 430a una dirección comprimida que contiene N bits de orden inferior en la dirección actual o la dirección actual no comprimida.
Un compresor de datos 428a realiza compresión de los datos del actual acceso de memoria. La compresión de los datos se puede realizar de diferentes maneras. Por ejemplo, se pueden eliminar los ceros iniciales de los datos. Como otro ejemplo, los datos del acceso de memoria actual pueden compararse con los datos del anterior acceso de memoria, de manera similar como para la compresión de direcciones, y sólo se envía la diferencia. Algunos otros ejemplos incluyen (1) eliminación de todos los ceros de los datos y (2) restringir la anchura de los datos a 8 bits, 16 bits, u otro número predeterminado de bits, dependiendo de un conocimiento anterior de los datos a rastrear, por ejemplo, mediante selección del usuario. También se puede derivar la compresión de datos. El compresor de datos 428a proporciona datos comprimidos o sin comprimir al empaquetador 430a.
El empaquetador 430a recibe las direcciones comprimidas o no comprimidas procedentes del compresor de dirección 426a y los datos comprimidos o no comprimidos datos procedentes del compresor de datos 428a. El empaquetador 430a forma un paquete de trazas de datos para el actual acceso de memoria a la memoria 126a, como se describe más adelante. Un filtro 440a proporciona filtrado controlado por el usuario para el rastreo de datos de forma que se pueda minimizar la cantidad de trazas de datos a enviar a la memoria externa. Por ejemplo, el rastreo sólo se puede realizar (1) para memorias de acceso en un intervalo de direcciones específico, (2) si se cumplen algunas condiciones específicas, y/o (3) según algunos otros criterios. El filtro 440a proporciona trazas de datos filtrados para la memoria 126a (por ejemplo, paquetes de trazas de datos que cumplen los criterios de filtrado).
La Fig. 4 muestra una forma de realización específica de una unidad de captura de datos 410a para la memoria 126a. Las otras dos unidades de captura de datos 410b y 410c realizan compresión de direcciones y datos, empaquetamiento y filtración para accesos de memoria a las memorias 126b y 126c, respectivamente. La unidad de captura de instrucciones 412 puede implementarse de igual o diferente forma que la unidad de captura de datos 410.
En general, la compresión, empaquetamiento y compresión de direcciones y datos se puede realizar de diferentes formas, y posiblemente en un orden diferente al que se muestra en la Fig. 4. Por ejemplo, el filtrado se puede realizar antes de la compresión. Como se muestra en la Fig. 4, se usan tres registros de dirección 422a, 422b, y 422c diferentes para almacenar los últimos accesos de memoria a las memorias de datos 126a, 126b, y 126c, respectivamente. Esto permite la compresión de dirección independiente de las tres memorias de datos.
La Fig. 4 muestra un diseño en el que una unidad de captura de datos 410 independiente se usa para capturar trazas de datos para cada memoria de datos. Una única unidad de captura de datos puede capturar también trazas de datos para todas las memorias de datos, por ejemplo, en una división de tiempo multiplexada (TDM). Esta única unidad de captura de datos puede realizar compresión de dirección independientemente para cada una de las memorias de datos mediante (1) uso de un registro independiente para almacenar la dirección del acceso de memoria anterior para cada memoria y (2) comparar la dirección del actual acceso de memoria de cada memora con la dirección almacenada de dicha memoria.
Las Figs. 5A a 5D muestran cuatro formatos de ejemplo de un paquete de trazas de datos. Estos formatos de ejemplo son para un diseño específico en el que (1) una dirección completa contiene 18 bits, (2) datos completos o no comprimidos para una dirección de memoria dada contiene 32 bits, y (3) están disponibles tres memorias de datos. Un paquete de trazas de datos en uno de los cuatro posibles formatos se puede formar para cada acceso de memoria de una memoria de datos dada.
La Fig. 5A muestra un formato de paquete 502 para una dirección completa. El formato 502 contiene 8 bytes. El byte 0 lleva (1) un campo de 4 bit que contiene un valor binario de "0010" que indica un paquete de trazas de datos, (1) un campo DS de 2 bit que indica el tamaño del campo de datos en el paquete, y (3) un campo de 2 bit que contiene un valor binario de "10" para indicar un paquete de trazas de datos. Para esta forma de realización, un paquete de trazas de datos se indica mediante un valor de "0010" para el campo de 4 bit y un valor de "10" para el campo de 2 bit inmediatamente a la derecha. Se pueden usar otros motivos de bits y/u otros medios para indicar un paquete de trazas de datos. En una forma de realización, el campo DS contiene un valor binario de "00", "01", "10", o "11" para un tamaño de campo de datos de 0 byte, 1 byte, 2 bytes, o 4 bytes, respectivamente. Se pueden usar los valores binarios de "00", "01", y "10" en el campo DS para los datos comprimidos, y se puede usar el valor binario de "11" para los datos no comprimidos. El Byte 1 lleva (1) un campo de 1 bit que contiene un valor binario de "1" para indicar que se incluye otro bit de dirección en el paquete, (2) un campo de dirección de 5 bit que contiene los 5 bits de orden inferior de la dirección (es decir, bits de dirección 0 a 4), y (3) un campo de 2 bit que indica la memoria de datos concreta a la que pertenece el paquete. En una forma de realización, el campo MB contiene un valor binario de "00", "01", nuestro "10" para la memoria de datos A, B, o C, respectivamente. El campo MB lleva así un identificador de memoria de la memoria de datos específica a la que se accede.
El byte 2 lleva (1) un campo de 1 bit que contiene un valor binario de "1" para indicar que se incluye en el paquete otro bit de dirección y (2) un campo de dirección de 7 bits que contiene los siete bits de orden intermedio de la dirección (es decir, bits de dirección 5 a 11). El byte 3 lleva (1) un campo de 2 bit que contiene un valor binario de "00" y (2) un campo de dirección de 6 bit que contiene los 6 bits de orden superior de la dirección (es decir, bits de dirección 12 a 17). En este ejemplo, DS = 11, y los bytes 5 a 8 llevan un campo de datos de 4 bits para los datos en la dirección indicada.
La Fig. 5B muestra un formato de paquete 504 para una dirección parcial de 12 bits. El formato 504 contiene 7 bytes. Los bytes 0 y 1 del formato 504 son iguales a los bytes 0 y 1 del formato 502 de la Fig. 5A. El byte 2 lleva (1) un campo de 1 bit que contiene un valor binario de "0" para indicar que no se incluyen en el paquete más bytes de dirección y (2) un campo de dirección de 7 bit que contiene los 7 bits de orden medio de la dirección. En este ejemplo, DS = 11, y los bytes 3 a 6 llevan un campo de datos de 4 bytes.
La Fig. 5C muestra un formato de paquete 506 para una dirección parcial de 5 bit. El formato 506 contiene 6 bytes. El byte 0 del formato 506 es el mismo que el byte 0 del formato 502 de la Fig. 5A. El byte 1 lleva (1) un campo de 1 bit que contiene un valor binario de "0" para indicar que ya no se incluyen en el paquete más bytes de dirección, (2) un campo de dirección de 5 bit que contiene loa 5 bits de orden inferior de la dirección, y (3) el campo MB de 2 bits. En este ejemplo, DS= 11, y los bytes 2 a 5 llevan un campo de datos de 4 byte.
La Fig. 5D muestra un formato de paquete 508 para cuando no hay dirección. El formato 508 también contiene 6 bytes. El byte 0 del formato 508 es igual que el byte 0 del formato 502 de la Fig. 5A. El byte 1 lleva (1) un campo de 1 bit que contiene un valor binario de "0" para indicar que ya no se incluyen en el paquete más bytes de dirección, (2) un campo de 5 bit que contiene un valor binario de "00000" para indicar que no se incluye una dirección en el paquete de trazas de datos, y (3) el campo MB de 2 bit. En este ejemplo, DS = 11, y los bytes 2 a 5 llevan un campo de datos de 4 bit.
Para formatos de paquete 502, 504, 506 y 508, un valor binario de "1" en el bit más significativo (más a la izquierda) de un byte de dirección indica que se incluye otro byte de dirección en el paquete. También se pueden usar otros mecanismos para indicar el tamaño de la dirección en el paquete de trazas de datos, y esto queda dentro del alcance de la invención.
Las Figs. 5A a 5D muestran cuatro formatos de ejemplo para el paquete de trazas de datos. El concepto general descrito en las Figs. 5A a 5D puede extenderse para cubrir otros diseños con direcciones y datos de otros tamaños, para cualquier número de memorias de datos, y así sucesivamente. En general, se puede definir cualquier número de formatos de paquete. Cada formato de paquete puede incluir cualquier número y tipo de campos, y cada campo puede incluir cualquier número de bits. Los campos también se pueden disponer de manera diferente a la disposición mostrada en las Figs. 5A a 5D. El paquete de trazas de datos incluye un mecanismo para iniciar la memoria o banco de memoria específico a la que pertenece el paquete. Si un campo designado se usa para indicar la memoria de datos, como se muestra en las Figs. 5A a 5D, entonces el tamaño de este campo se puede determinar según el número de memorias de datos en el circuito integrado. El paquete de trazas de datos incluye también un mecanismo (por ejemplo, un bit designado en cada bite de dirección) para indicar el tamaño de la dirección incluida en el paquete.
Haciendo referencia de nuevo a las Figs. 1 y 2, el generador de corriente de trazas 250 genera una corriente de trazas de datos conteniendo los paquetes de trazas de datos procedentes de todas las unidades de captura de trazas de datos 210. Cada paquete de trazas de datos contiene un campo con un identificador de memoria para la memoria específica a la que pertenece el paquete. Un descompresor de trazas de la herramienta de análisis 190 puede demultiplexar los paquetes de trazas de datos en la corriente de trazas de datos en múltiples subcorrientes, una subcorriente para cada memoria, según los identificadores de memoria incluidos en dichos paquetes.
La Fig. 6 muestra un diagrama de flujo de un proceso 600 para realizar rastreo de datos en un circuito integrado con múltiples (por ejemplo, tres) memorias accesibles de forma independiente. Inicialmente, la memoria a la que se accede se identifica y denota como la memoria X, dónde X puede ser A, B, o C para el ejemplo de diseño mostrado en las Figs. 1 y 4 (bloque 610).
Para el rastreo de datos de la memoria X, se recupera una dirección almacenada de un acceso de memoria anterior a la memoria X a partir del registro de dirección X usado para la memoria X (bloque 620). Una dirección actual para un acceso de memoria actual a la memoria X se almacena en paralelo en el registro de dirección X (bloque 622). La dirección actual se compara con la dirección almacenada para la memoria X, por ejemplo, realizando una operación exclusiva -OR (XOR) en las dos direcciones (bloque 624). Se puede realizar la compresión de dirección sobre la dirección actual, según el resultado de la comparación, para obtener una dirección comprimida para el acceso de memoria a la memoria X (bloque 626). La compresión de datos puede realizarse también para el actual acceso de memoria a la memoria X (bloque 628). Se forma un paquete de traza de datos para el actual acceso de memoria a la memoria X (bloque 630). Este paquete de trazas de datos incluye (1) un identificador de memoria para la memoria X, (2) una dirección completa, comprimida o nula para el actual acceso de memoria, y (3) datos comprimidos, no comprimidos o nulos para el actual acceso de memoria.
El procesamiento en bloques de 620 a 630 puede realizarse por separado para cada memoria, por ejemplo, mediante la unidad de captura de datos asignada a dicha memoria. Una corriente de trazas de datos se genera con los paquetes de trazas de datos para los accesos de memorias de todas las memorias (bloque 632). La corriente de trazas de datos se tampona y suministra a la memoria externa cuando se activa (bloque 634).
Las técnicas de rastreo de datos descritas en el presente documento permiten la compresión eficaz de trazas de datos en un circuito integrado con múltiples memorias. Dicho circuito integrado puede tener una o más DSP insertas, como se muestra en la Fig. 1. Una DSP típicamente usa múltiples memorias de datos para mayor capacidad de acceso a datos, usa instrucciones de longitud variable, y a menudo ejecuta bucles cerrados por ejemplo, para filtros digitales). Las técnicas de rastreo de datos descritas en el presente documento pueden usarse con ventaja para depurar un circuito integrado con una o más DSP insertas.
En general, las técnicas de rastreo de datos descritas en el presente documento pueden usarse en cualquier circuito integrado con múltiples memorias. Dicho circuito integrado puede incluir uno o más microprocesadores insertos, una o más DSP, y/u otros controladores (por ejemplo, como se muestra en la Fig. 1). Los circuitos integrados con múltiples memorias se usan habitualmente en dispositivos inalámbricos de comunicación (por ejemplo, teléfonos móviles), asistentes digitales personales (PDA), y otros dispositivos electrónicos. Las técnicas de rastreo de datos descritas en el presente documento se pueden usar también para diferentes aplicaciones finales, tal como comunicación inalámbrica, computación, trabajo en red, y así sucesivamente.
Las técnicas de rastreo de datos descritas en el presente documento se pueden implementar en hardware, firmware, o una combinación de los anteriores. Para una implementación en hardware, las unidades usadas para soportar el rastreo de datos (por ejemplo, módulo de traza 140, puerto de traza 142, y puerto JTAG 138) se pueden implementar con hardware que tenga incluido un circuito integrado, una aplicación específica de circuito integrado (ASIC), un dispositivo de procesado de señal digital (DSPD), un dispositivo lógico programable (PLD), una matriz de pasarela lógica programable (FPGA), y así sucesivamente. El rastreo de datos también se puede realizar basándose o junto con códigos firmware que realicen las funciones descritas en el presente documento. Los códigos Firmware se pueden almacenar en una memoria (por ejemplo, la memoria 124 en la Fig. 1) y ejecutarse en un procesador o unidad de proceso (por ejemplo, módulo de traza 140).
La anterior descripción de las formas de realización descritas se proporciona para permitir que cualquier persona experta en la técnica realice o use la presente invención. Se pueden realizar varias modificaciones de las formas de realización que serán fácilmente evidentes para los expertos en la técnica, y los principios genéricos definidos en el presente documento se pueden aplicar a otras formas de realización sin separarse del ámbito de la invención. Así, no se pretende que la presente invención se limite a las formas de realización mostradas en el presente documento sino que se acuerda un alcance consistente con la invención desvelada en el presente documento.

Claims (29)

1. Un circuito integrado (100) que comprende:
una pluralidad de memorias (126a, 126b); y
un módulo de traza (140) operativo para formar paquetes de trazas de datos,
caracterizado porque cada memoria de la pluralidad de memorias (126a, 126b) es accesible de forma independiente y el medio de rastreo forma los paquetes de trazas de datos para los accesos de memoria de la pluralidad de memorias, incluyendo cada paquete de trazas de datos una dirección y datos para acceso de memoria a una memoria concreta y un identificador de memoria de la memoria concreta.
2. El circuito integrado (100) de la reivindicación 1, en el que el módulo de traza (140) incluye una pluralidad de unidades de captura de datos (410a, 410b), una unidad de captura de datos (410) para cada una de la pluralidad de memorias (126a, 126b), cada unidad de captura de datos operativa para formar paquetes de trazas de datos para memorias de acceso de la memoria asociada con la unidad de captura de datos.
3. El circuito integrado (100) de la reivindicación 2, en el que el módulo de traza (140) incluye además un generador de corriente de trazas (250) operativo para generar una corriente de trazas de datos que contiene paquetes de trazas de datos procedentes de la pluralidad de unidades de captura de datos.
4. El circuito integrado (100) de la reivindicación 2, en el que cada unidad de captura de datos (410) incluye medios para almacenar (422) una dirección de un acceso de memoria anterior a la memoria asociada, y medios para comparar (424) una dirección de un acceso de memoria actual de la memoria asociada con la dirección almacenada en el registro.
5. El circuito integrado (100) de la reivindicación 4, en el que cada unidad de captura de datos incluye además medios para generar (426) una dirección comprimida para el acceso de memoria actual de la memoria asociada según una salida del medio de comparación (424), y en el que el paquete de trazas de datos del acceso de memoria actual incluye la dirección comprimida.
6. El circuito integrado (100) de la reivindicación 4, en el que cada unidad de captura de datos es operable para omitir la dirección del acceso de memoria actual de la memoria asociada procedente del paquete de trazas de datos para el actual acceso de memoria.
7. El circuito integrado (100) de la reivindicación 2, en el que cada unidad de captura de datos incluye un compresor de datos operativo para comprimir datos de un acceso de memoria actual a la memoria asociada, y en el que el paquete de trazas de datos del acceso de memoria actual incluye los datos comprimidos.
8. El circuito integrado (100) de la reivindicación 7, en el que el compresor de datos es operativo para eliminar los ceros iniciales o bits iniciales de signo en los datos del acceso de memoria actual.
9. El circuito integrado (100) de la reivindicación 2, en el que cada unidad de captura de datos incluye medios para formar (430) un paquete de trazas de datos para un acceso de memoria actual a la memoria asociada, incluyendo el paquete de trazas de datos la dirección y datos del acceso de memoria actual a la memoria asociada y el identificador de memoria de la memoria asociada.
10. El circuito integrado (100) de la reivindicación 1, en el que cada paquete de trazas de datos incluye un campo para el identificador de memoria.
11. El circuito integrado (100) de la reivindicación 1, en el que cada paquete de trazas de datos incluye un campo de dirección de tamaño variable.
12. El circuito integrado (100) de la reivindicación 11, en el que cada paquete de trazas de datos incluye al menos un campo indicador del tamaño del campo de dirección.
13. El circuito integrado (100) de la reivindicación 1, en el que cada paquete de trazas de datos incluye un campo de datos de tamaño variable.
14. El circuito integrado (100) de la reivindicación 1 y comprende al menos tres memorias de acceso independiente (126a, 126b, 126c).
15. El circuito integrado (100) de la reivindicación 1, que comprende además:
un procesador de señal digital (120) operativamente asociado a la pluralidad de memorias (126a, 126b).
16. El circuito integrado (100) de la reivindicación 15, en el que la pluralidad de memorias es operativa para almacenar datos para el DSP.
17. El circuito integrado (100) de la reivindicación 1, en el que la pluralidad de memorias es accesible en paralelo mediante una instrucción.
18. El circuito integrado (100) de la reivindicación 1, en el que los medios para formar paquetes de trazas de datos incluyen medios para comprimir de manera independiente las direcciones de las memorias de acceso de cada memoria.
19. El circuito integrado (100) de la reivindicación 1, que comprende además:
una pluralidad de registros (422a, 422b), un registro para cada memoria (126), cada registro operativo para almacenar una dirección de un acceso de memoria anterior a una memoria asociada con el registro; un comparador (424) operativo para comparar una dirección de un acceso de memoria actual de una memoria seleccionada con la dirección almacenada en el registro de la memoria seleccionada, siendo la memoria seleccionada una de la pluralidad de memorias;
y
un compresor de dirección (426) operativo para generar una dirección comprimida para el acceso de memoria actual de la memoria seleccionada según resultado de comparación procedente el comparador.
20. El circuito integrado (100) de la reivindicación 19, que comprende además:
un empaquetador (430) operativo para formar un paquete de trazas de datos para el acceso de memoria actual de la memoria seleccionada, incluyendo el paquete de trazas de datos la dirección comprimida y los datos del actual acceso de memoria de la memoria seleccionada.
21. El circuito integrado (100) de la reivindicación 20, que comprende además:
un compresor de datos operativo para comprimir datos del acceso de memoria actual a la memoria seleccionada, y en el que el paquete de trazas de datos del acceso de memoria actual de la memoria seleccionada incluye los datos comprimidos.
22. El circuito integrado (100) de la reivindicación 19, que comprende además:
un procesador de señal digital (120) acoplado operativamente a la pluralidad de memorias, y en el que la pluralidad de memorias es operable para almacenar datos para el DSP.
23. El circuito integrado (100) de la reivindicación 19, en el que una dirección completa incluye F bits de dirección, y en el que la dirección comprimida se representa por una de las S posibles representaciones, siendo S inferior a F, y cada representación está asociada con un número diferente de bits de dirección.
24. Un procedimiento para realizar rastreo de datos en un circuito integrado (100) con múltiples memorias de acceso independiente (126a, 126b), que comprende:
formar un primer paquete de trazas de datos de un acceso de memoria a una primera memoria dentro del circuito integrado (100), incluyendo el primer paquete de trazas de datos una primera dirección y datos del acceso de memoria de la primera memoria y un primer identificador de memoria de la primera memoria; y
formar un segundo paquete de trazas de datos para un acceso de memoria de una segunda memoria dentro del circuito integrado (100), incluyendo el segundo paquete de trazas de datos una segunda dirección y datos para el acceso de memoria de la segunda memoria y un segundo identificador de memoria para la segunda memoria.
25. El procedimiento de la reivindicación 24, en el que la formación de un primer paquete de trazas de datos incluye almacenar una dirección de un acceso de memoria anterior de la primera memoria, y comparar la primera dirección con la dirección almacenada.
26. El procedimiento de la reivindicación 25, en el que la formación de un primer paquete de trazas de datos incluye además generar una dirección comprimida para el acceso de memoria de la primera memoria según una salida del comparador, y en el que el primer paquete de trazas de datos incluye la dirección comprimida.
27. El procedimiento de la reivindicación 24, en el que la formación de un primer paquete de trazas de datos incluye comprimir datos para el acceso de memoria de la primera memoria, y en el que el primer paquete de trazas de datos incluye los datos comprimidos para la primera memoria.
28. El procedimiento de la reivindicación 24, que comprende además: generar una corriente de trazas de datos conteniendo el primer y segundo paquetes de trazas de datos.
29. El procedimiento de la reivindicación 24, en el que la formación de un primer paquete de trazas de datos incluye
almacenar una dirección de un acceso de memoria anterior para cada una de las primera y segunda memorias del circuito integrado (100);
comparar una dirección para un acceso de memoria actual a una memoria seleccionada frente a la dirección almacenada de la memoria seleccionada, siendo la memoria seleccionada una de la pluralidad de memorias; y comprendiendo además
generar una dirección comprimida para el actual acceso de memoria de la memoria seleccionada basándose en el resultado de la comparación.
ES05748092T 2004-05-11 2005-05-11 Composiciones de trazas de datos para un circuito integrado de memorias multiples. Active ES2313349T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US843971 1997-04-17
US10/843,971 US7702964B2 (en) 2004-05-11 2004-05-11 Compression of data traces for an integrated circuit with multiple memories

Publications (1)

Publication Number Publication Date
ES2313349T3 true ES2313349T3 (es) 2009-03-01

Family

ID=34969664

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05748092T Active ES2313349T3 (es) 2004-05-11 2005-05-11 Composiciones de trazas de datos para un circuito integrado de memorias multiples.

Country Status (9)

Country Link
US (1) US7702964B2 (es)
EP (2) EP1745489B1 (es)
JP (1) JP4885849B2 (es)
AT (2) ATE409944T1 (es)
CA (1) CA2565989A1 (es)
DE (2) DE602005010070D1 (es)
ES (1) ES2313349T3 (es)
RU (1) RU2347288C2 (es)
WO (1) WO2005112040A1 (es)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285617A (ja) * 2005-03-31 2006-10-19 Fujitsu Ltd データ処理装置、データ処理方法、およびコンピュータ読み取り可能な記憶媒体
US8250542B1 (en) 2006-01-03 2012-08-21 Altera Corporation Method and apparatus for performing trace data compression
JP4846493B2 (ja) * 2006-09-05 2011-12-28 富士通セミコンダクター株式会社 デバッグシステム及びデバッグ回路
US20080155351A1 (en) * 2006-10-03 2008-06-26 Broadcom Corporation Method for combining multiple trace sources in an embedded system
US7477999B2 (en) 2006-10-26 2009-01-13 Samplify Systems, Inc. Data compression for a waveform data analyzer
DE102007006508B4 (de) * 2007-02-09 2012-11-15 Texas Instruments Deutschland Gmbh Mikrocontroller mit Speicher-Trace-Modul
US7840781B1 (en) * 2007-04-04 2010-11-23 Xilinx, Inc. Circuit arrangement for profiling a programmable processor connected via a uni-directional bus
JP2009042815A (ja) * 2007-08-06 2009-02-26 Renesas Technology Corp 半導体集積回路及びデバッグシステム
US7818629B2 (en) * 2007-10-03 2010-10-19 Broadcom Corporation Multiple winner arbitration
US7913033B2 (en) * 2007-10-09 2011-03-22 Micron Technology, Inc. Non-volatile memory device having assignable network identification
US8001428B2 (en) * 2007-10-29 2011-08-16 Arm Limited Packing trace protocols within trace streams
US8055950B2 (en) * 2008-01-11 2011-11-08 Arm Limited Method and apparatus for improved timing for trace synchronization
US9223677B2 (en) * 2008-06-11 2015-12-29 Arm Limited Generation of trace data in a multi-processor system
WO2010113674A1 (ja) * 2009-03-30 2010-10-07 日本電気株式会社 情報処理システム、情報圧縮装置、情報復元装置、情報処理方法及びそのプログラム
US8176366B2 (en) * 2009-04-03 2012-05-08 Arm Limited Trace synchronization
US8990633B2 (en) * 2009-04-21 2015-03-24 Freescale Semiconductor, Inc. Tracing support for interconnect fabric
JP5499700B2 (ja) * 2009-12-25 2014-05-21 日本電気株式会社 情報圧縮装置、情報復元装置、情報圧縮方法、情報復元方法、及びその処理プログラム
US8250243B2 (en) * 2010-06-24 2012-08-21 International Business Machines Corporation Diagnostic data collection and storage put-away station in a multiprocessor system
DE102010047718A1 (de) * 2010-10-07 2012-04-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Formatieren und Vorauswählen von Trace Daten
US8825922B2 (en) * 2011-04-18 2014-09-02 Infineon Technologies Ag Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
DE102011107936B4 (de) * 2011-07-19 2015-07-23 Texas Instruments Deutschland Gmbh Halbleitervorrichtung und Verfahren für die Ablaufverfolgung elnes Speichers einer Halbleitervorrichtung
WO2013101251A1 (en) * 2011-12-31 2013-07-04 Intel Corporation Real time instruction tracing compression of ret instructions
GB2500441B (en) 2012-07-09 2014-03-05 Ultrasoc Technologies Ltd Data prioritisation in a debug architecture
US8935577B2 (en) 2012-08-28 2015-01-13 Freescale Semiconductor, Inc. Method and apparatus for filtering trace information
US9021311B2 (en) 2012-08-28 2015-04-28 Freescale Semiconductor, Inc. Method and apparatus for filtering trace information
US10503661B2 (en) * 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US9542298B2 (en) * 2014-07-08 2017-01-10 International Business Machines Corporation Reducing resource overhead in verbose trace using recursive object pruning prior to string serialization
US9524227B2 (en) * 2014-07-09 2016-12-20 Intel Corporation Apparatuses and methods for generating a suppressed address trace
US10089212B2 (en) 2015-07-20 2018-10-02 Toshiba Memory Corporation Memory system, information processing system, and host device outputting debugging information through a host interface
US20180054374A1 (en) * 2016-08-19 2018-02-22 Andes Technology Corporation Trace information encoding apparatus, encoding method thereof, and readable computer medium
KR20180054364A (ko) 2016-11-15 2018-05-24 삼성전자주식회사 트레이스 데이터를 생성하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
JP6901685B2 (ja) * 2017-10-04 2021-07-14 富士通株式会社 生成プログラム、生成方法、及び情報処理装置
US11914499B2 (en) * 2021-10-29 2024-02-27 Stmicroelectronics Application Gmbh Systems and methods for preparing trace data
CN117724664A (zh) * 2024-02-18 2024-03-19 芯来智融半导体科技(上海)有限公司 数据写入方法、装置、设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9622685D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therewith
JPH1124959A (ja) * 1997-07-02 1999-01-29 Hewlett Packard Japan Ltd マイクロプロセッサのトレース情報出力方法
JP3019922B2 (ja) * 1997-06-30 2000-03-15 日本電気株式会社 トレースデータ削減方式
JP3583937B2 (ja) * 1998-12-28 2004-11-04 富士通株式会社 情報処理装置
US6345295B1 (en) * 1999-01-22 2002-02-05 International Business Machines Corporation Conducting traces in a computer system attachment network
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6665816B1 (en) 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
DE60118089T2 (de) 2000-03-02 2006-10-05 Texas Instruments Incorporated, Dallas Abtastschnittstelle mit Zeitmultiplexmerkmal zur Signalüberlagerung
JP3796111B2 (ja) * 2000-11-10 2006-07-12 株式会社ルネサステクノロジ データプロセッサ
US6775798B2 (en) 2001-11-28 2004-08-10 Lsi Logic Corporation Fast sampling test bench
JP2003263337A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ
GB2389931B (en) * 2002-06-07 2005-12-14 Advanced Risc Mach Ltd Generation of trace elements within a data processing apparatus
US7017093B2 (en) 2002-09-16 2006-03-21 Lsi Logic Corporation Circuit and/or method for automated use of unallocated resources for a trace buffer application
US7302616B2 (en) * 2003-04-03 2007-11-27 International Business Machines Corporation Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory
US7149933B2 (en) * 2003-08-07 2006-12-12 Arm Limited Data processing system trace bus
US7069176B2 (en) * 2003-08-07 2006-06-27 Arm Limited Trace source correlation in a data processing apparatus

Also Published As

Publication number Publication date
ATE409944T1 (de) 2008-10-15
EP2012324B1 (en) 2011-03-02
RU2347288C2 (ru) 2009-02-20
DE602005026732D1 (de) 2011-04-14
ATE500592T1 (de) 2011-03-15
JP2007537547A (ja) 2007-12-20
EP1745489A1 (en) 2007-01-24
EP1745489B1 (en) 2008-10-01
EP2012324A1 (en) 2009-01-07
US7702964B2 (en) 2010-04-20
US20050268177A1 (en) 2005-12-01
JP4885849B2 (ja) 2012-02-29
DE602005010070D1 (de) 2008-11-13
WO2005112040A1 (en) 2005-11-24
RU2006143663A (ru) 2008-06-20
CA2565989A1 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
ES2313349T3 (es) Composiciones de trazas de datos para un circuito integrado de memorias multiples.
ES2678413T3 (es) Procedimiento y sistema de alineación de trazas entre subprocesos para un procesador de subprocesos múltiples
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
US8707127B2 (en) Configurable source based/requestor based error detection and correction for soft errors in multi-level cache memory to minimize CPU interrupt service routines
ES2909742T3 (es) Aceleradores de hardware configurables
EP1893985A2 (en) Packet processor and filter apparatus and methods
CN106547518A (zh) 用于加速器的低等待时间调用的装置和方法
CN107111572B (zh) 用于避免死锁的方法和电路
TW201303587A (zh) 用於在快閃記憶體介質控制器中處理儲存在快閃記憶體記憶體的頁中的中繼資料的方法、裝置及快閃記憶體記憶體系統
JP2011511986A (ja) プロセッサ
US9372947B1 (en) Compacting trace data generated by emulation processors during emulation of a circuit design
CN110554852A (zh) 数据拼接结构、方法及其片上实现
ES2725800T3 (es) Sistema y procedimiento para determinar una dirección de un elemento dentro de una tabla
GB2371641A (en) Direct Memory Access (DMA) controller for circular buffers
ES2318448T3 (es) Ejecucion de un programa mediante una maquina virtual.
US20110219212A1 (en) System and Method of Processing Hierarchical Very Long Instruction Packets
RU2013106793A (ru) Способ и устройство для проверки основной памяти процессора
JP2013015985A (ja) マルチコアプロセッサのすべてのプロセッサコアの実行トレースダンプが可能なsocデバイス
Uzelac et al. Hardware-based data value and address trace filtering techniques
Clark Trace-based hardware control flow signature checking
WO2023036076A1 (zh) 一种软件监测方法以及相关装置
JP4222843B2 (ja) テスト機能付き集積回路
JP2004272897A (ja) パリティー検査を利用して命令モード切り換えを行なうプロセッサ及び方法
JP2000267876A (ja) エミュレータ及びマイクロコンピュータ
Aguirre Modular Injection System and Sampling Template (MISST) Design Report