ES2334196A1 - Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados. - Google Patents

Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados. Download PDF

Info

Publication number
ES2334196A1
ES2334196A1 ES200900442A ES200900442A ES2334196A1 ES 2334196 A1 ES2334196 A1 ES 2334196A1 ES 200900442 A ES200900442 A ES 200900442A ES 200900442 A ES200900442 A ES 200900442A ES 2334196 A1 ES2334196 A1 ES 2334196A1
Authority
ES
Spain
Prior art keywords
reconfigurable
execution
unit
vector
operations
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.)
Granted
Application number
ES200900442A
Other languages
English (en)
Other versions
ES2334196B2 (es
Inventor
Jose Manuel Moya Fernandez
Alvaro Araujo Pinto
Octavio Nieto-Taladriz Garcia
David Fraga Aydillo
Juna-Mariano De Goyeneche Y Vazquez De Setas
Juan Carlos Vallejo Lopez
Pedro Malagon Marzo
Agustin Rubio Mingorance
Elena Romero Perales
Daniel Villanueva Gonzalez
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.)
Universidad Politecnica de Madrid
Original Assignee
Universidad Politecnica de Madrid
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 Universidad Politecnica de Madrid filed Critical Universidad Politecnica de Madrid
Priority to ES200900442A priority Critical patent/ES2334196B2/es
Publication of ES2334196A1 publication Critical patent/ES2334196A1/es
Application granted granted Critical
Publication of ES2334196B2 publication Critical patent/ES2334196B2/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead

Abstract

Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados. Dispositivo para la mejora de la seguridad de sistemas empotrados basados en microprocesador, de tipo reconfigurable y de bajo consumo, que permite la ejecución de operaciones vectoriales, y que comprende, al menos: (a) una primera unidad vectorial reconfigurable (1) diseñada como una ruta de datos segmentada con múltiples contextos configurables independientemente, y que comprende, al menos, tres etapas o bloques: (i) una primera etapa de decodificación (101) configurada para la obtención de la información de la operación y los operandos involucrados en la ejecución; (ii) una segunda etapa de ejecución (102) que a su vez comprende una pluralidad de unidades reconfigurables básicas conectadas en cascada; y (iii) una tercera etapa de salida (103); (b) una segunda unidad de carga y almacenamiento vectorial (2) integrada en la unidad de ejecución (3) de la ruta de datos principal (100).

Description

Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados.
El objeto de la presente invención es un dispositivo y un método para mejorar la seguridad de los microprocesadores en los sistemas empotrados, todo ello basado en una unidad vectorial reconfigurable. La presente invención se encuadra dentro del ámbito de los sistemas empotrados y es especialmente relevante en el campo de las redes de sensores.
Antecedentes de la invención
Diferentes aproximaciones como el Differential Power Analysis (Análisis de potencia diferencia, DPA) y sus variantes, que involucran muchos aspectos del diseño de sistemas, tanto HW (hardware) como SW (software), cifrado entre otros, ofrecen retos adicionales para los proyectos de ingeniería en sistemas empotrados, puesto que los riesgos de seguridad deben manejarse en distintos niveles de abstracción y no deben ser expuestos a niveles superiores. Algunas de las contramedidas propuestas incluyen la utilización de relojes aleatorios con objeto de introducir no-determinismo en el sistema [O. Kömmerling and M. G. Kuhn, "Design principles for tamper-resistant smartcard processors", in Proceedings of the USENIX Workshop on Smartcard Technology, Chicago, 10-11 May, 1999., 1999, pp. 9-20], enmascaramiento de los datos antes de operar con ellos para ocultar la información sensible, ver patente JP2000-66585, US 10/825,291 y US 10/851,123 [Publicado posteriormente en C. H. Gebotys, "A split-mask countermeasure for low-energy secure embedded systems", Trans. on Embedded Computing Sys., vol. 5, no. 3, pp. 577-612, 2006], uso de amplitudes de señal muy reducidas, y la introducción de ruido en las posibles medidas de potencia [T. S. Messerges, E. A. Dabbish, and R. H. Sloan, "Examining smartcard security under the threat of power analysis attacks", IEEE Trans. Comput., vol. 51, no. 5, pp. 541-552, 2002] [P. Kocher, J. Jaffe, and B. Jun, "Differential power analysis", Lecture Notes in Computer Science, vol. 1666, pp. 388-397, 1999]. Todas estas medidas sólo consiguen que sea necesario un mayor número de muestras para descubrir las claves, pero no eliminan el riesgo.
Recientemente [D. Hwang, K. Tiri., A. Hodjat, B.-C. Lai, S. Yang, P. Schaumont, and I. Verbauwhede, "AES-based security coprocessor IC in 0.18-\mum CMOS with resistance to differential power analysis side-channel attacks", IEEE Journal:of Solid-State Circuits, vol. 41, no. 4, pp. 781-792, April 2006] se ha propuesto la utilización de un estilo de lógica dinámica denominado wave dynamic differential logic (WDDL) junto con una técnica de rutado denominada rutado diferencial para combatir las técnicas de análisis de potencia diferencial (DPA). Por supuesto, el coste es un aumento significativo del área y el consumo (un orden de magnitud superior) y una pérdida significativa del rendimiento máximo (0,99 Gb/s frente a 3,89 Gb/s de la implementación estándar). La patente US/6654884 describe un método para mantener constante la distancia de Hamming con puertas especiales (lo que implica un mayor coste).
Lo que hace específica esta invención es la utilización de lógica reconfigurable para permitir que el hardware del dispositivo esté cambiando continuamente, lo que dificulta enormemente ataques basados en análisis de consumo o emisiones electromagnéticas. Esto permite que el dispositivo se defienda de estos ataques al mismo tiempo que mejora su rendimiento.
Por otro lado, a diferencia de otras unidades reconfigurables propuestas, la estructura en forma de ruta de datos segmentada hace que las comunicaciones sean muy locales. Al no existir líneas largas con muchas conexiones, las capacidades son menores y el consumo es menor.
Descripción de la invención
Como ha sido mencionado, los ataques a sistemas empotrados más comunes, incluyendo DPA (Differential Power Analysis) y sus variantes, se basan en el análisis estadístico de muchas capturas que pueden filtrar información de la clave (consumo, emisiones electromagnéticas, tiempos de ejecución, etc). Al considerar muchas capturas se elimina la dependencia que puede tener con los datos de entrada. El éxito del ataque se basa en que el dispositivo se comporta de la misma forma para todas esas capturas.
El dispositivo que se describe a continuación varía de forma aleatoria el propio hardware del dispositivo, utilizando la lógica reconfigurable para variar la implementación física de la ruta de datos, lo que determina en cada momento el patrón de consumo emisiones electromagnéticas, y tiempo de ejecución.
El dispositivo reconfigurable y de bajo consumo para la mejora de la seguridad de microprocesadores para sistemas empotrados, de forma básica comprende, al menos:
(a) una primera unidad vectorial reconfigurable diseñada como una ruta de datos segmentada con múltiples contextos configurables independientemente, y que está dividida en tres etapas:
(i)
una primera etapa de decodificación configurada para la obtención de la información de la operación y los operandos involucrados en la ejecución y que, a su vez, comprende, al menos:
-
una unidad de control configurada para controlar la ejecución en función de la información específica de cada operación que almacena en una memoria interna el software de soporte de ejecución;
-
un bloque de registros de propósito general configurados para almacenar los datos que se van cargando de la memoria principal y los resultados parciales de las operaciones de la primera unidad vectorial reconfigurable en ejecución;
(ii)
una segunda etapa de ejecución que a su vez comprende una pluralidad de unidades reconfigurables básicas conectadas en cascada; y
(iii)
una tercera etapa de salida configurada para llevar a cabo, al menos, dos operaciones:
-
una primera operación de preparación de la escritura de resultados intermedios al bloque de registros internos; y
-
una segunda operación de gestión de un buffer de salida para la escritura vectorial de resultados a la memoria principal.
(b) una segunda unidad de carga y almacenamiento vectorial integrada en la unidad de ejecución de la ruta de datos principal configurada para desacoplar la extracción de operandos de las operaciones vectoriales de la primera unidad vectorial reconfigurable de la operación normal de la ruta de datos principal.
\vskip1.000000\baselineskip
Puede pensarse que la variación de la implementación física de la ruta de datos reconfigurable sólo añade algo de ruido a las muestras y por tanto, al igual que ocurre cuando se introducen consumos adicionales aleatorios, sólo obliga a obtener más muestras para atacarlo. Sin embargo, cada bucle puede implementarse de múltiples formas en la unidad reconfigurable, de forma que incluso cambia el patrón de acceso a memoria. Por tanto, no es fácil saber qué dato se está procesando en cada momento. Por otro lado, el cambio de implementación no está sincronizado con el cambio de dato a cifrar, sino que puede producirse en cualquier momento durante la ejecución del bucle.
El problema de la lógica reconfigurable en sistemas empotrados es el elevado consumo que suele tener. Sin embargo, esto se debe en gran medida a las elevadas capacidades asociadas a las líneas largas de interconexión. Para reducir el consumo, la unidad reconfigurable propuesta restringe fuertemente el flujo de datos dentro de la unidad reconfigurable, de forma que las comunicaciones son muy locales y las capacidades mucho más reducidas.
La arquitectura reconfigurable que proponemos para el procesador del sistema empotrado la denominamos SORU (Stream Oriented Reconfigurable Unit o unidad vectorial reconfigurable), y está especialmente diseñada para soportar la auto-adaptación dinámica.
Existe un gran número de diseños de arquitecturas reconfigurables pero, hasta donde sabemos, ninguna es apta para este escenario de cambio constante porque la generación de la configuración de la lógica reconfigurable tiene un coste computacional muy elevado.
La arquitectura vectorial reconfigurable está basada en un procesador RISC de propósito general con una unidad vectorial reconfigurable dentro de la ruta de datos del procesador. Es este sentido es similar al procesador Nano, PRISC, DISC, Chimaera o Onechip98. Sin embargo, la unidad funcional reconfigurable está segmentada, con múltiples contextos de configuración por cada etapa, y con bloques reconfigurables de grano grueso, al estilo de
PipeRench.
A diferencia de otros diseños de procesadores reconfigurables, la unidad funcional reconfigurable es vectorial, utilizando la memoria principal para almacenar los vectores, y cuenta con un bloque de registros interno que puede ser utilizado para minimizar y homogeneizar los accesos a memoria. Incluye también una unidad de control sencilla que permite la ejecución de bloques completos sin la intervención de la ruta de datos principal.
RSVP es un coprocesador vectorial diseñado previamente con el objetivo de ofrecer una interfaz sencilla pero eficiente. SORU ha sido diseñado para ser más sencillo de usar para optimización dinámica y mucho más pequeño, ya que el objetivo principal no es aumentar el rendimiento, sino hacer posible una adaptación óptima de los recursos disponibles a los requisitos computacionales de cada momento, incluso para procesadores de baja gama.
Por otro lado, en el dispositivo permite implementar un método para aprovechar las características del dispositivo, a partir del código de un procesador escalar, caracterizado por las siguientes etapas: identificación de bucles, normalización de bucles, comprobación de la forma del bucle, los patrones de acceso a memoria y la posibilidad de implementar el cuerpo del bucle como instrucciones de la ruta de datos reconfigurable, estimación del beneficio de la vectorización y planificación del cuerpo del bucle.
Igualmente, se implementa un método para mejorar la resistencia a los ataques basados en análisis de consumo y emisiones electromagnéticas, basado en el dispositivo y el método anterior, así como una fase de generación de soluciones alternativas. Este método se caracteriza por cambiar en cada iteración, y de forma aleatoria, la implementación de un bucle de entre las pre-configuradas en el dispositivo reconfigurable. Además, en este método se generan implementaciones alternativas del cuerpo del bucle de forma dinámica.
A lo largo de la descripción y las reivindicaciones la palabra "comprende" y sus variantes no pretenden excluir otras características técnicas, aditivos, componentes o pasos. Para los expertos en la materia, otros objetos, ventajas y características de la invención se desprenderán en parte de la descripción y en parte de la práctica de la invención. Los siguientes ejemplos y dibujos se proporcionan a modo de ilustración, y no se pretende que sean limitativos de la presente invención. Además, la presente invención cubre todas las posibles combinaciones de realizaciones particulares y preferidas aquí indicadas.
Breve descripción de los dibujos
Fig 1. muestra el diagrama de bloques mostrando la integración de la unidad reconfigurable en una ruta de datos tipo MIPS, como parte integrante del dispositivo objeto de la presente invención.
Fig 2. muestra el diagrama representativo del método de vectorización, parte integrante del método objeto de la presente invención.
Realización preferente de la invención
La figura 1 muestra la estructura general de un prototipo de procesador que implementa la arquitectura propuesta. La unidad vectorial reconfigurable de SORU ha sido diseñada como una extensión a la etapa de ejecución de un procesador RISC, aunque es fácilmente adaptable a cualquier procesador RISC de propósito general.
El dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados de tipo reconfigurable y de bajo consumo para la ejecución de operaciones vectoriales en procesadores empotrados comprende, al menos:
(a) una primera unidad vectorial reconfigurable (1) diseñada en una ruta de datos segmentada con múltiples contextos configurables independientemente, y que consta de tres etapas:
(i)
una primera etapa de decodificación (101) configurada para la obtención de la información de la operación y los operandos involucrados en la ejecución y que, a su vez, comprende, al menos:
-
una unidad de control configurada para controlar la ejecución en función de la información específica de cada operación que almacena en una memoria interna (101a) el software de soporte de ejecución, bien una librería de bajo nivel comprendiendo el código de inicialización, bien un sistema operativo de tiempo real;
-
un bloque de registros de propósito general (101c) configurados para almacenar los datos que se van cargando de la memoria principal (104) y los resultados parciales de las operaciones de la primera unidad vectorial reconfigurable (1) en ejecución;
(ii)
una segunda etapa de ejecución (102) que a su vez comprende una pluralidad de unidades reconfigurables básicas conectadas en cascada; y
(iii)
una tercera etapa de salida configurada para llevar a cabo, al menos, dos operaciones:
-
una primera operación de preparación de la escritura de resultados intermedios al bloque de registros internos; y
-
una segunda operación de gestión de un buffer de salida para la escritura vectorial de resultados a la memoria principal (104);
(b) una segunda unidad de carga y almacenamiento vectorial (2) integrada en la unidad de ejecución (3) de la ruta de datos principal (100) configurada para desacoplar la extracción de operandos de las operaciones vectoriales de la primera unidad vectorial reconfigurable (1) de la operación normal de la ruta de datos principal (100);
\vskip1.000000\baselineskip
La etapa de ejecución de la unidad reconfigurable (102) está divida en 4 unidades reconfigurables básicas (BRU) conectadas en cascada. Cada BRU tiene 3 entradas de datos de 32 bits: el resultado de la BRU previa, un nuevo dato del bloque de registros interno y el último resultado calculado por esa BRU. El resultado de una operación de una BRU se almacena en un registro de la pipeline, de forma que pueda ser usado por la siguiente BRU en el siguiente ciclo de reloj. Este resultado intermedio también puede almacenarse en un registro del bloque de registros interno.
Internamente, cada BRU tiene varios contextos de configuración de los cuales sólo uno puede estar activo en cada instante. La configuración de estos contextos se puede realizar de forma dinámica, de acuerdo a las necesidades del programa. En nuestro caso, utilizamos esta característica para variar continuamente la implementación física de la ruta de datos, y por tanto el patrón de consumo.
La configuración de las BRUs se realiza invocando a la operación SCONF, que inicia una transferencia de un bloque de memoria principal a la memoria de configuración de una BRU inactiva.
Las diferentes configuraciones para operaciones de un ciclo (una BRU) pueden prepararse previamente y almacenarse en memoria externa. El compilador es el responsable de insertar el código de configuración para escribir los distintos contextos antes de que sean necesarios para la ejecución del programa. Por otro lado, el soporte de ejecución (ya sea sistema operativo o librerías de soporte) puede usar información dinámica para re-optimizar partes del programa utilizando contextos diferentes. Esto hace que las distintas implementaciones de los bucles de cifrado no tengan que estar prefijadas en tiempo de compilación, sino que se pueden instalar servicios de transformación de código que utilizan los sistemas empotrados en tiempo de ejecución.
El juego de instrucciones del procesador principal es necesario extenderlo con las siguientes operaciones: configuración de un contexto de una BRU (SCF), inicio de una carga vectorial (LV), inicio de almacenamiento vectorial (SV), movimiento de escalares entre la ruta de datos principal y la unidad reconfigurable (MOVI2S, MOVS2I), ejecución de operaciones SIMD en la unidad reconfigurable (SRE), y parada de la ruta de datos principal durante un número de ciclos o hasta que se produzca una interrupción (WAIT).
La arquitectura reconfigurable de la unidad vectorial reconfigurable hace su función como un coprocesador de un procesador escalar, pero, como hemos visto, su integración es mucho mayor que la de un coprocesador para obtener un mayor rendimiento y menor consumo.
El uso de lógica reconfigurable permite que la arquitectura sea independiente de la aplicación, proporcionando en cada caso los recursos necesarios para acelerar las operaciones críticas de dicha aplicación.
Para conseguir una mayor utilización de estos recursos, así como una mayor flexibilidad, la lógica reconfigurable de las BRUs es de baja granularidad, pudiendo reconfigurar dichos recursos a nivel de bit, de forma similar a como lo haría una FPGA o la unidad funcional reconfigurable Chimaera.
La estructuración de los recursos es otro aspecto fundamental. La definición de unidades funcionales o elementos preestablecidos dentro de la arquitectura, como ocurre en PipeRench y DART, facilita enormemente el proceso de rutado de los diseños en los recursos reconfigurables y favorece la reconfiguración dinámica de dichos recursos, así como el consumo del sistema.
La unidad reconfigurable no está provista de operaciones de control, tales como saltos, llamadas a subrutinas, etc. Su función es exclusivamente procesar datos. El procesador escalar es el encargado de toda esta lógica de control, incluyendo la carga de datos en la unidad reconfigurable, ponerla en funcionamiento y el guardado de datos.
La figura 2 describe el algoritmo seguido por el compilador para vectorizar los bucles de los algoritmos, es decir, para convertir los bucles internos en operaciones óptimas de la unidad vectorial reconfigurable. Una vez obtenida esta solución, se aplica un recocido simulado para la obtención de implementaciones alternativas. Sólo se almacenan aquellas implementaciones que sean óptimos de Pareto en el espacio tridimensional formado por memoria necesaria, eficiencia y consumo. Esta generación de implementaciones alternativas puede hacerse también en tiempo de ejecución y se transmiten al sistema empotrado, que puede descartar alguna de las implementaciones que ya tenía para reducir el uso de la memoria.
En el optimizador, cada bucle se divide en fragmentos que puedan implementarse como una única instrucción SIMD.
Cada bucle susceptible de ser transformado en una operación SIMD se transforma a la forma normalizada y el cuerpo del bucle se descompone en uno o más grafos dirigidos acíclicos (DAG). La escritura de resultados se asigna a la última etapa y el resto de los nodos se asigna con algoritmo ALAP (planificación tan tarde como sea posible) a los diferentes contextos que quedan libres, siempre teniendo en cuenta las restricciones de la arquitectura.
Los movimientos posibles para el recocido simulado que obtiene las implementaciones alternativas son: el orden de ejecución de los fragmentos del bucle (esto se aplica también a bucles externos), el intercambio de índices en bucles anidados, movimientos en la correspondencia de las operaciones sencillas en la unidad reconfigurable (siempre que se respeten las dependencias), cambios en la implementación de operaciones sencillas, reestructuración de los diagramas de flujo de datos del cuerpo del bucle (de forma que los resultados intermedios que se almacenan en el bloque de registros cambien).
La conmutación entre las diferentes implementaciones de un bucle se produce en función del valor mapeado en memoria de un generador de números aleatorios, que puede ser hardware o software. El compilador inserta las solicitudes de cambio, normalmente antes de cada operación SIMD.

Claims (5)

1. Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados de tipo reconfigurable y de bajo consumo para la ejecución de operaciones vectoriales en procesadores empotrados caracterizado porque comprende, al menos:
(a) una primera unidad vectorial reconfigurable (1) diseñada como una ruta de datos segmentada con múltiples contextos configurables independientemente, y que consta de tres etapas:
(i)
una primera etapa de decodificación (101) configurada para la obtención de la información de la operación y los operandos involucrados en la ejecución y que, a su vez, comprende, al menos:
-
una unidad de control configurada para controlar la ejecución en función de la información específica de cada operación que almacena en una memoria interna (101a) el software de soporte de ejecución;
-
un bloque de registros de propósito general (101c) configurados para almacenar los datos que se van cargando de la memoria principal (104) y los resultados parciales de las operaciones de la primera unidad vectorial reconfigurable (1) en ejecución;
(ii)
una segunda etapa de ejecución (102) que a su vez comprende una pluralidad de unidades reconfigurables básicas conectadas en cascada; y
(iii)
una tercera etapa de salida configurada para llevar a cabo, al menos, dos operaciones:
-
una primera operación de preparación de la escritura de resultados intermedios al bloque de registros internos; y
-
una segunda operación de gestión de un buffer de salida para la escritura vectorial de resultados a la memoria principal (104);
(b) una segunda unidad de carga y almacenamiento vectorial (2) integrada en la unidad de ejecución (3) de la ruta de datos principal (100) configurada para desacoplar la extracción de operandos de las operaciones vectoriales de la primera unidad vectorial reconfigurable (1) de la operación normal de la ruta de datos principal (100).
\vskip1.000000\baselineskip
2. Dispositivo de acuerdo con la reivindicación 1 donde el software de soporte de ejecución es una librería de bajo nivel comprendiendo el código de inicialización.
3. Dispositivo de acuerdo con la reivindicación 1 donde el software de soporte de ejecución es un sistema operativo de tiempo real.
4. Dispositivo de acuerdo con la reivindicación 1 donde la segunda etapa de ejecución (102) comprende cuatro unidades reconfigurables básicas.
5. Dispositivo de acuerdo con la reivindicación 1 y 4 donde cada una de dichas unidades reconfigurables básicas comprende, al menos, tres entradas de datos de 32 bits siendo estas tres entradas: el resultado de cada unidad reconfigurable previa, un nuevo dato del bloque de registro interno y el último resultado calculado por esa dicha unidad reconfigurable básica; siendo además dicho resultado de una operación en una unidad reconfigurable básica almacenado en un registro, de forma que pueda ser usado por la siguiente unidad reconfigurable básica en el siguiente ciclo de reloj.
ES200900442A 2009-02-17 2009-02-17 Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados Active ES2334196B2 (es)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ES200900442A ES2334196B2 (es) 2009-02-17 2009-02-17 Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES200900442A ES2334196B2 (es) 2009-02-17 2009-02-17 Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados

Publications (2)

Publication Number Publication Date
ES2334196A1 true ES2334196A1 (es) 2010-03-05
ES2334196B2 ES2334196B2 (es) 2011-02-09

Family

ID=41694824

Family Applications (1)

Application Number Title Priority Date Filing Date
ES200900442A Active ES2334196B2 (es) 2009-02-17 2009-02-17 Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados

Country Status (1)

Country Link
ES (1) ES2334196B2 (es)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050603A1 (en) * 2002-08-07 2007-03-01 Martin Vorbach Data processing method and device
US20080263323A1 (en) * 2007-04-13 2008-10-23 Mould Nick A Reconfigurable Computing Architectures: Dynamic and Steering Vector Methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050603A1 (en) * 2002-08-07 2007-03-01 Martin Vorbach Data processing method and device
US20080263323A1 (en) * 2007-04-13 2008-10-23 Mould Nick A Reconfigurable Computing Architectures: Dynamic and Steering Vector Methods

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
ARMANDO ASTARLOA, "{}Reconfiguración dinámica de sistemas modulares multi-procesador en dispositivos SoPC"{}, Tesis doctoral Mayo 2005. Páginas 45 y 46. <URL: http://det.bi.ehu.es/~apert/datos/TESIS\_armando\_050512.pdf> *
ARMANDO ASTARLOA, "Reconfiguración dinámica de sistemas modulares multi-procesador en dispositivos SoPC", Tesis doctoral Mayo 2005. Páginas 45 y 46. *
HAUCK, FRY, HOSLER y KAO, "{}The Chimaera Reconfigurable Functional Unit"{}; Universidad de Northwestern. IEEE Symposium on FPGAs for Custom Computing Machines, 1997. *
HAUCK, FRY, HOSLER y KAO, "The Chimaera Reconfigurable Functional Unit"; Universidad de Northwestern. IEEE Symposium on FPGAs for Custom Computing Machines, 1997. *
LEE, SINGH, LU, BAGHERZADEH y KURDAHI, "{}Design and Implementation of the Morphosys Reconfigurable Computing Processor"{}; Universidad de california; Publicación Journal of VLSI Signal Processing Systems, páginas 147-164; Marzo 2000. *
LEE, SINGH, LU, BAGHERZADEH y KURDAHI, "Design and Implementation of the Morphosys Reconfigurable Computing Processor"; Universidad de california; Publicación Journal of VLSI Signal Processing Systems, páginas 147-164; Marzo 2000. *
WILTON, LEONG, LUK y QUINTON, "{}A Synthesizable Datapath-Oriented Embedded FPGA Fabric"{} - 20.02.2007; figura 1. *
WILTON, LEONG, LUK y QUINTON, "A Synthesizable Datapath-Oriented Embedded FPGA Fabric" - 20.02.2007; figura 1. *

Also Published As

Publication number Publication date
ES2334196B2 (es) 2011-02-09

Similar Documents

Publication Publication Date Title
ES2933675T3 (es) Sistemas, métodos y aparatos para informática heterogénea
May et al. Non-deterministic processors
Narasiman et al. Improving GPU performance via large warps and two-level warp scheduling
US20160246602A1 (en) Path selection based acceleration of conditionals in coarse grain reconfigurable arrays (cgras)
Fritzmann et al. Towards reliable and secure post-quantum co-processors based on RISC-V
Karimi et al. A timing side-channel attack on a mobile gpu
Zhao et al. A lightweight isolation mechanism for secure branch predictors
Huang et al. Managing dynamic reconfiguration overhead in systems-on-a-chip design using reconfigurable datapaths and optimized interconnection networks
Taram et al. Mobilizing the micro-ops: Exploiting context sensitive decoding for security and energy efficiency
Sinharoy et al. Advanced features in IBM POWER8 systems
Cong et al. Optimization of interconnects between accelerators and shared memories in dark silicon
Cao et al. Streamline ring oram accesses through spatial and temporal optimization
Aweke et al. Øzone: Efficient execution with zero timing leakage for modern microarchitectures
Mert et al. Medha: Microcoded hardware accelerator for computing on encrypted data
Hammond et al. Evaluating the Marvell ThunderX2 server processor for HPC workloads
Gautschi et al. SIR10US: A tightly coupled elliptic-curve cryptography co-processor for the OpenRISC
Seuschek et al. Side-channel leakage models for RISC instruction set architectures from empirical data
Maene et al. Atlas: Application confidentiality in compromised embedded systems
Armanuzzaman et al. Byotee: Towards building your own trusted execution environments using fpga
ES2334196A1 (es) Dispositivo para la mejora de la seguridad de microprocesadores en sistemas empotrados.
Rutzig et al. A transparent and energy aware reconfigurable multiprocessor platform for simultaneous ILP and TLP exploitation
Chattopadhyay et al. Designing high-throughput hardware accelerator for stream cipher HC-128
US20230318802A1 (en) A computing platform for preventing side channel attacks
Rawat et al. Vector instruction set extensions for efficient computation of keccak
CN112906015B (zh) 一种基于硬件标签的内存敏感数据加密保护系统

Legal Events

Date Code Title Description
EC2A Search report published

Date of ref document: 20100305

Kind code of ref document: A1

FG2A Definitive protection

Ref document number: 2334196

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20110209