ES2332765B1 - MICROPROCESSOR SYSTEM WITH RECONFIGURABLE CABLE CONTROL UNIT, AND METHOD FOR OPERATING A MICROPROCESSOR. - Google Patents
MICROPROCESSOR SYSTEM WITH RECONFIGURABLE CABLE CONTROL UNIT, AND METHOD FOR OPERATING A MICROPROCESSOR. Download PDFInfo
- Publication number
- ES2332765B1 ES2332765B1 ES200802227A ES200802227A ES2332765B1 ES 2332765 B1 ES2332765 B1 ES 2332765B1 ES 200802227 A ES200802227 A ES 200802227A ES 200802227 A ES200802227 A ES 200802227A ES 2332765 B1 ES2332765 B1 ES 2332765B1
- Authority
- ES
- Spain
- Prior art keywords
- control unit
- microprocessor
- instruction
- data
- reconfiguration
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
Sistema microprocesador con unidad de control cableada reconfigurable, y método para operar un microprocesador.Microprocessor system with control unit reconfigurable wiring, and method to operate a microprocessor.
La invención se refiere a un sistema microprocesador que comprende un microprocesador que comprende un camino de datos (1) y una unidad de control (2) cableada. El sistema está configurado para, como respuesta a una instrucción de reconfiguración (200), reconfigurar la unidad de control, de manera que la unidad de control,The invention relates to a system microprocessor comprising a microprocessor comprising a data path (1) and a wired control unit (2). He system is configured to, in response to an instruction of reconfiguration (200), reconfigure the control unit, so that the control unit,
- antes de recibir dicha instrucción de reconfiguración, está configurada para que el microprocesador procese instrucciones de un programa compilado para una primera arquitectura de procesador, y- before receiving such instruction from reconfiguration, is configured so that the microprocessor process instructions from a compiled program for a first processor architecture, and
- después de recibir dicha instrucción de reconfiguración, se reconfigure para quedar configurada para que el microprocesador procese instrucciones de un programa compilado para una segunda arquitectura de procesador, distinta de la primera arquitectura de procesador.- after receiving such instruction from reconfiguration, reconfigured to be configured so that the microprocessor process instructions from a compiled program to a second processor architecture, different from the first processor architecture
Description
Sistema microprocesador con unidad de control cableada reconfigurable, y método para operar un microprocesador.Microprocessor system with control unit reconfigurable wiring, and method to operate a microprocessor.
La invención se engloba en el campo de los microprocesadores.The invention is included in the field of microprocessors
En la actualidad la mayor parte de los microprocesadores de propósito general están construidos siguiendo la arquitectura denominada RISC (Reduced Instruction Set Computer). En este tipo de arquitectura, la cantidad de diferentes instrucciones que puede ejecutar el procesador ha sido reducida para simplificar el diseño del procesador.At present most of the General purpose microprocessors are built following the architecture called RISC (Reduced Instruction Set Computer). In this type of architecture, the amount of different instructions that the processor can execute has been reduced to simplify the design of the processor.
Básicamente, un procesador RISC comprende dos partes diferenciadas, a saber, la unidad de control y el camino de datos.Basically, an RISC processor comprises two differentiated parts, namely the control unit and the path of data.
- El camino de datos comprende todo el hardware necesario para realizar las tareas que demanda cada instrucción ensamblador o código máquina, incluyendo la unidad aritmético-lógica (ALU: "Arithmetic-Logic Unit") encargada de realizar cálculos, la memoria de instrucciones que contiene el programa a ejecutar, la memoria de datos que contiene los datos con los que opera el programa/procesador, registros (por ejemplo, organizados en un banco de registros), así como una gran cantidad de otros elementos, incluyendo sumadores, desplazadores, multiplexores, etc.- The data path comprises all the hardware necessary to perform the tasks required by each instruction assembler or machine code, including the unit arithmetic-logic (ALU: "Arithmetic-Logic Unit") responsible for performing calculations, the instruction memory that contains the program to run, the data memory that contains the data with which operates the program / processor, records (for example, organized in a bank of records), as well as a lot of others elements, including adders, shifters, multiplexers, etc.
- Por otra parte, la unidad de control (CU: "Control Unit") se encarga de recibir las instrucciones del programa contenidas en la memoria de instrucciones y generar las señales de control necesarias para que el camino de datos realice las operaciones necesarias para ejecutar dichas instrucciones.- On the other hand, the control unit (CU: "Control Unit") is responsible for receiving instructions from the program contained in the instruction memory and generate the control signals necessary for the data path to perform the operations necessary to execute these instructions.
Existen diversas formas de implementar físicamente una unidad de control, siendo las más habituales la unidad de control cableada ("hardwired") y la microprogramada ("microprogrammed").There are several ways to implement physically a control unit, the most common being the hardwired and microprogrammed control unit ("microprogrammed").
- La unidad de control cableada tiene una configuración básicamente rígida. Mediante circuitos lógicos se interpreta la instrucción y se generan las salidas de control hacia el camino de datos.- The wired control unit has a basically rigid configuration. Through logic circuits, interprets the instruction and control outputs are generated towards The data path
- La unidad de control microprogramada contiene en su interior una serie de microinstrucciones que se encargan de detallar los pasos de bajo nivel que debe ejecutar el camino de datos para ejecutar la instrucción.- The microprogrammed control unit contains inside a series of microinstructions that are responsible for detail the low level steps that the path of data to execute the instruction.
Generalmente, la unidad de control cableada es mucho más rápida y eficiente en consumo de recursos (área de silicio) y es por tanto la más comúnmente usada en procesadores RISC. Sin embargo, la unidad de control microprogramada dota de mayor flexibilidad al sistema ya que es posible cambiar el microprograma para corregir errores, añadir soporte para nuevas instrucciones o incluso cambiar toda la codificación del juego de instrucciones convirtiendo virtualmente el microprocesador en otro diferente. De esta manera se puede, por ejemplo, cambiar las microinstrucciones contenidas en una unidad de control microprogramada para que el microprocesador, en lugar de ejecutar código o programas compilados para una determinada arquitectura de procesador (por ejemplo, para PowerPC, MIPS, Intel x86, SPARC, ARM, Alpha, etc.) pueda ejecutar programas compilados para otro tipo de arquitectura. Lógicamente, esto hace que el procesador sea mucho más flexible.Generally, the wired control unit is much faster and more efficient in resource consumption (area of silicon) and is therefore the most commonly used in processors RISC However, the microprogrammed control unit provides greater flexibility to the system since it is possible to change the microprogram to correct errors, add support for new instructions or even change the entire game coding of instructions virtually turning the microprocessor into another different. In this way you can, for example, change the microinstructions contained in a control unit microprogrammed so that the microprocessor, instead of running code or programs compiled for a given architecture of processor (for example, for PowerPC, MIPS, Intel x86, SPARC, ARM, Alpha, etc.) can run compiled programs for other types of architecture. Logically, this makes the processor much more flexible.
Esta flexibilidad de las unidades de control microprogramadas ha sido explotada para diseñar procesadores que puedan ejecutar juegos de instrucciones de diferentes arquitecturas (es decir, programas compilados para diferentes arquitecturas de procesador) únicamente modificando el microprograma. Esto es posible debido a las grandes similitudes existentes entre los juegos de instrucciones de las diferentes arquitecturas, de tal forma que es posible ejecutar todos estos diferentes juegos de instrucciones sobre el mismo camino de datos sin apenas modificaciones. En la práctica puede haber alguna instrucción de un juego de instrucciones que no se pueda ejecutar sobre un determinado camino de datos originalmente configurado para otra arquitectura de procesador; por lo tanto, puede ser conveniente, para mayor flexibilidad, que el camino de datos disponga del hardware adicional para ejecutar esa instrucción. Por lo tanto, para disponer de una flexibilidad máxima el procesador debe tener un camino de datos que contenga el conjunto de hardware necesario para ejecutar el mayor número posible de juegos de instrucciones diferentes sin modificaciones. Es decir, puede tratarse de un camino de datos que representa un "superconjunto" de los caminos de datos de diferentes procesadores, por ejemplo, de los diferentes procesadores RISC.This flexibility of control units microprogrammed has been exploited to design processors that can execute instruction sets of different architectures (i.e. programs compiled for different architectures of processor) only by modifying the microprogram. This is possible due to the great similarities between instruction sets of the different architectures, of such way it is possible to run all these different games of instructions on the same data path without just modifications. In practice there may be some instruction from a instruction set that cannot be executed on a certain data path originally configured for another processor architecture; therefore, it may be convenient, for greater flexibility, that the data path has the additional hardware to execute that instruction. Thus, to have maximum flexibility the processor must have a data path that contains the necessary hardware set to run as many instruction sets as possible Different without modifications. That is, it can be a data path representing a "superset" of the data paths of different processors, for example, of different RISC processors.
US-A-2004/0133770 (Pappalardo, et al.) describe un procesador que comprende dos unidades de control, una cableada (con las ventajas que ello implica en cuanto a rapidez y consumo de recursos) y otra microprogramada (con las ventajas que ello implica en cuanto a flexibilidad). Por lo tanto, el microprocesador puede adaptarse a programas compilados para otras arquitecturas (distintas de las que originalmente se han previsto al diseñar la unidad de control cableada) modificando la programación de la unidad de control microprogramada. Por lo tanto, en un principio, se combinan las ventajas de ambos tipos de unidad de control, aunque con la desventaja de tener que disponer de dos unidades de control, lo cual implica una mayor cantidad de hardware, con las desventajas que ello implica en cuanto a, por ejemplo, el uso de superficie.US-A-2004/0133770 (Pappalardo, et al .) Describes a processor comprising two control units, one wired (with the advantages that this implies in terms of speed and resource consumption) and another microprogrammed (with the advantages that this implies in terms of flexibility). Therefore, the microprocessor can be adapted to programs compiled for other architectures (other than those originally planned when designing the wired control unit) by modifying the programming of the microprogrammed control unit. Therefore, initially, the advantages of both types of control unit are combined, although with the disadvantage of having to have two control units, which implies a greater amount of hardware, with the disadvantages that this implies in as for, for example, the use of surface.
WO-A-2007/015258 (Gopi, et al.) hace referencia a una unidad de control configurable. Para ello, se ha previsto un juego de instrucciones con cierta capacidad de configuración. Para ciertas aplicaciones puede ser interesante cambiar el comportamiento de algunas instrucciones y para ello cada instrucción tiene un campo con atributos que cambia la respuesta de la unidad de control a dicha instrucción. La unidad de control interpreta dichos atributos y ejecuta esa instrucción de forma diferente en función del atributo. Es decir, el juego de instrucciones presenta unos campos especiales que son capaces de modificar algunas propiedades de esa unidad de control, como por ejemplo el tiempo que la instrucción tarda en ejecutarse. Esta funcionalidad está soportada por un hardware adicional en la unidad de control.WO-A-2007/015258 (Gopi, et al .) Refers to a configurable control unit. For this, an instruction set with a certain configuration capacity is planned. For certain applications it may be interesting to change the behavior of some instructions and for this each instruction has a field with attributes that changes the response of the control unit to that instruction. The control unit interprets these attributes and executes that instruction differently depending on the attribute. That is, the instruction set has special fields that are capable of modifying some properties of that control unit, such as the time it takes for the instruction to execute. This functionality is supported by additional hardware in the control unit.
Un primer aspecto de la invención se refiere a un sistema microprocesador que comprende un microprocesador que comprende:A first aspect of the invention relates to a microprocessor system comprising a microprocessor that understands:
(i) un camino de datos que comprende, al menos, una unidad aritmético-lógica, registros, una memoria de instrucciones configurada para contener instrucciones de un programa que el microprocesador debe ejecutar, y una memoria de datos configurada para contener datos con los que pueda operar el programa; y(i) a data path that includes at least an arithmetic-logical unit, records, a instruction memory configured to contain instructions from a program that the microprocessor must execute, and a memory of data configured to contain data with which the Program; Y
(ii) una unidad de control configurada para recibir instrucciones de programa de la memoria de instrucciones y para generar señales de control y aplicarlas al camino de datos de manera que se realicen, en el camino de datos, operaciones de acuerdo con las instrucciones de programa; esta unidad de control es una unidad de control cableada.(ii) a control unit configured for receive program instructions from the instruction memory and to generate control signals and apply them to the data path of so that, in the data path, operations of according to the program instructions; this control unit It is a wired control unit.
De acuerdo con la invención, el sistema está configurado para, como respuesta a una instrucción de reconfiguración contenida en las instrucciones de programa, reconfigurar la unidad de control, de manera que la unidad de control,According to the invention, the system is configured for, in response to an instruction from reconfiguration contained in the program instructions, reconfigure the control unit, so that the unit of control,
- que antes de recibir dicha instrucción de reconfiguración estaba configurada para que el microprocesador procese instrucciones de un programa compilado para una primera arquitectura de procesador,- that before receiving such instruction from reconfiguration was configured so that the microprocessor process instructions from a compiled program for a first processor architecture,
- después de recibir dicha instrucción de reconfiguración se reconfigure para quedar configurada para que el microprocesador procese instrucciones de un programa compilado para una segunda arquitectura de procesador, distinta de la primera arquitectura de procesador.- after receiving such instruction from reconfiguration is reconfigured to be configured so that the microprocessor process instructions from a compiled program to a second processor architecture, different from the first processor architecture
De esta manera, se consigue combinar la flexibilidad de los microprocesadores con unidad de control microprogramada con la rapidez y bajo consumo de los microprocesadores con unidad de control cableada. Es decir, se consigue un sistema que combina lo mejor de ambos conceptos. Por lo tanto, se puede, cuando sea conveniente, cambiar la configuración lógica de la unidad de control para que el microprocesador, que antes estaba configurado para procesar instrucciones de un programa compilado para una arquitectura de procesador, pase a estar configurado para procesar, correctamente, instrucciones de un programa compilado para otra arquitectura de procesador. Ejemplos de arquitecturas de procesador son: PowerPC, MIPS, Intel x86, SPARC, ARM, Alpha, etc.In this way, you can combine the flexibility of microprocessors with control unit microprogrammed with the speed and low consumption of microprocessors with wired control unit. I mean, I know Get a system that combines the best of both concepts. For the so, you can, when convenient, change the settings logic of the control unit so that the microprocessor, which before it was set to process instructions of a program compiled for a processor architecture, become configured to process, correctly, instructions from a compiled program for another processor architecture. Examples Processor architectures are: PowerPC, MIPS, Intel x86, SPARC, ARM, Alpha, etc.
Por ejemplo:For example:
1) En la arquitectura MIPS la instrucción de suma se codifica de la siguiente forma:1) In the MIPS architecture the instruction of sum is encoded as follows:
add, rt,rs,rd
\hskip0.3cmrt=rs+rdadd, rt, rs, rd
\ hskip0.3cmrt = rs + rd
donde rt es el registro destino (r1, r2, r3) y rs,rd son los registros fuente.where rt is the destination register (r1, r2, r3) and rs, rd are the records source.
Se codifica como:It is coded as:
"000000 rs rd rt 00000 100000""000000 rs rd rt 00000 100000 "
(estando rs,rt y rd codificados con 5 bits)(being rs, rt and rd encoded with 5 bits)
siendo por tanto la operación "add r3=r2+rl" como sigue:being therefore the operation "add r3 = r2 + rl "as follows:
"000000 00001 00010 00011 00000 100000""000000 00001 00010 00011 00000 100000 "
2) En la arquitectura ARM la misma instrucción se codifica de la siguiente forma:2) In the ARM architecture the same instruction It is encoded as follows:
"add Rd = Rn + Rm""add Rd = Rn + Rm"
"1111 00 0 0100 0 Rn Rd 00000000 Rm""1111 00 0 0100 0 Rn Rd 00000000 Rm "
Por tanto "add r3=r2+rl" sería:Therefore "add r3 = r2 + rl" would be:
"1111 00 0 0100 0 0011 0010 00000000 0001""1111 00 0 0100 0 0011 0010 00000000 0001 "
Por tanto, la "reconfiguración" de la unidad de control desde "compatibilidad" con MIPS a "compatibilidad" con ARM implica que si la unidad de control, antes de recibir la instrucción de reconfiguración, emitía un determinado conjunto de señales como respuesta aTherefore, the "reconfiguration" of the control unit from "compatibility" with MIPS to "compatibility" with ARM implies that if the control unit, before receiving the reconfiguration instruction, it issued a certain set of signals in response to
"000000 00001 00010 00011 00000 100000","000000 00001 00010 00011 00000 100000 ",
después de la "reconfiguración" debe generar las mismas señales de control como respuesta aafter the "reconfiguration" must generate the same control signals in response to
"1111 00 0 0100 0 0010 0010 00000000 0001"."1111 00 0 0100 0 0010 0010 00000000 0001 ".
La invención puede servir como base para muchas aplicaciones interesantes, por ejemplo:The invention can serve as the basis for many Interesting applications, for example:
- Ejecución de código de diferentes microprocesadores (es decir, de código compilado para diferentes "arquitecturas" de microprocesador). Se puede modificar la unidad de control al arrancar el microprocesador y a partir de entonces utilizarlo para un determinado tipo de código compilado, sin modificar la configuración durante la operación del microprocesador.- Code execution of different microprocessors (i.e. compiled code for different "architectures" of microprocessor). You can modify the control unit when starting the microprocessor and from then use it for a certain type of compiled code, without changing the settings during the operation of the microprocessor.
- "Virtualización": La virtualización permite ejecutar código generado para otro procesador sobre una máquina diferente (es decir, sobre una máquina que en un principio no presenta la arquitectura correspondiente al código). Se puede estar ejecutando código de las dos (o más) maquinas (es decir, compilado para las dos -o más- arquitecturas) secuencialmente durante un mismo ciclo o período de funcionamiento del microprocesador, cambiando entre uno y otro. Con la invención resulta posible modificar, en tiempo de ejecución, la unidad de control, de tal forma que ambos códigos se ejecuten de forma nativa sobre el procesador sin apenas perdida de rendimiento (salvo la pérdida debida a la reprogramación o reconfiguración de la unidad de control). En este caso puede ser necesario implementar un mecanismo que detenga la ejecución de instrucciones (y opcionalmente para vaciar el camino de datos y/o atender todas las interrupciones pendientes) mientras se lleva a cabo la reconfiguración (de manera que cualquier instrucción sea procesada por la "arquitectura" que corresponda).- "Virtualization": Virtualization allows to execute code generated for another processor on a different machine (that is, on a machine that initially does not present the architecture corresponding to the code). It can be executing code of the two (or more) machines (that is, compiled for the two -or more- architectures) sequentially during the same cycle or period of operation of the microprocessor, switching between one and the other. With the invention it is possible to modify, at runtime, the unit of control, so that both codes are executed natively on the processor with hardly any loss of performance (except the loss due to reprogramming or reconfiguration of the unit of control). In this case it may be necessary to implement a mechanism that stops the execution of instructions (and optionally to empty the data path and / or attend all pending interruptions) while the reconfiguration (so that any instruction is processed for the "architecture" that corresponds).
- Aleatorización del juego de instrucciones: Por motivos de seguridad y para prevenir ataques DPA en sistemas con altos requerimientos de seguridad, puede ser interesante cambiar cada cierto tiempo la codificación del juego de instrucciones para evitar que un atacante pueda averiguar qué programa está ejecutando el microprocesador (o qué datos está procesando), analizando el consumo energético del mismo. (El ataque DPA -Differential Power Analysis- consiste en analizar el consumo del procesador para "adivinar" que instrucciones está ejecutando; cambiando la codificación del juego de instrucciones su consumo también varía, haciendo más difícil este tipo de ataque).- Randomization of the instruction set: By security reasons and to prevent DPA attacks on systems with high security requirements, it may be interesting to change from time to time the coding of the instruction set for prevent an attacker from finding out what program he is running the microprocessor (or what data it is processing), analyzing the energy consumption of it. (The DPA-Differential Power attack Analysis- is to analyze the processor consumption for "guess" what instructions you are executing; changing the coding of the instruction set its consumption also varies, making this type of attack more difficult).
El sistema puede comprender una memoria que contenga al menos dos conjuntos de datos indicativos de respectivas configuraciones lógicas de la unidad de control. Además, el sistema puede comprender un dispositivo reconfigurador configurado para, como respuesta a la instrucción de reconfiguración, modificar la configuración de la unidad de control de acuerdo con los datos de uno de dichos conjuntos de datos.The system may comprise a memory that contain at least two sets of data indicative of respective logical configurations of the control unit. In addition, the system can comprise a configured reconfiguring device to, in response to the reconfiguration instruction, modify the configuration of the control unit according to the data of one of said data sets.
La unidad de control puede estar implementada en un dispositivo de lógica programable. Ejemplos de dispositivos de lógica programable son: FPGA (Field Programmable Gate Array), PLD (Programmable Logic Device), CPLD (Complex Programmable Logic Device), PAL (Programmable Array Logic), y GAL (Generic Array Logic). Alternativamente, la unidad de control puede está implementada en un circuito ASIC ("Application Specific Integrated Circuit") que comprende al menos una parte de lógica reconfigurable correspondiente a la unidad de control.The control unit may be implemented in A programmable logic device. Examples of devices Programmable logic are: FPGA (Field Programmable Gate Array), PLD (Programmable Logic Device), CPLD (Complex Programmable Logic Device), PAL (Programmable Array Logic), and GAL (Generic Array Logic) Alternatively, the control unit may be implemented in an ASIC circuit ("Application Specific Integrated Circuit ") comprising at least one part of logic reconfigurable corresponding to the control unit.
El sistema puede estar configurado para cambiar la configuración de la unidad de control repetitivamente para, durante un período de funcionamiento, operar con programas compilados para diferentes arquitecturas, con el fin de dificultar un análisis de la operación del microprocesador a partir de un análisis del consumo energético del sistema (y, por lo tanto, para dificultar "ataques DPA", tal y como se ha indicado más arriba).The system may be configured to change the control unit configuration repeatedly for, during a period of operation, operate with programs compiled for different architectures, in order to make it difficult an analysis of the operation of the microprocessor from a analysis of the energy consumption of the system (and, therefore, to hinder "DPA attacks", as indicated more above).
El sistema puede estar configurado para realizar cambios de la configuración de la unidad de control repetitivamente para, durante un período de funcionamiento, operar con programas compilados para diferentes arquitecturas, realizándose dichos cambios de forma aleatoria o pseudoaleatoria. La "aleatorización" se puede referir a la frecuencia con la que se realizan los cambios de configuración y/o a los momentos en los que se producen los cambios de configuración, y/o a cuál será la nueva configuración que se selecciona, entre las diferentes configuraciones disponibles (por ejemplo, en una memoria del sistema). Es decir, el momento en el que se produce el cambio de configuración se puede determinar de forma aleatoria (o pseudoaleatoria), y/o la configuración a la que se cambia puede ser elegida de forma aleatoria (o pseudoaleatoria). Este aspecto de la invención puede tener aplicaciones interesantes en, por ejemplo, el campo de la seguridad.The system may be configured to perform control unit configuration changes repeatedly to, during a period of operation, operate with compiled programs for different architectures, performing such changes randomly or pseudorandomly. The "randomization" can refer to the frequency with which configuration changes are made and / or at times when which configuration changes occur, and / or what the new configuration that is selected, among the different available settings (for example, in a memory of the system). That is, the moment in which the change of settings can be determined randomly (or pseudorandom), and / or the configuration to which it is changed can be chosen at random (or pseudorandom). This aspect of the invention may have interesting applications in, for example, the security field.
Otro aspecto de la invención se refiere a un método para operar un microprocesador (por ejemplo, del tipo descrito más arriba), cuyo microprocesador comprende:Another aspect of the invention relates to a method of operating a microprocessor (for example, of the type described above), whose microprocessor comprises:
un camino de datos que comprende, al menos, una unidad aritmético-lógica, registros, una memoria de instrucciones configurada para contener instrucciones de un programa que el microprocesador debe ejecutar, y una memoria de datos configurada para contener datos con los que pueda operar el programa; ya data path that comprises at least one arithmetic-logic unit, records, a memory of instructions set to contain instructions from a program that the microprocessor must execute, and a data memory configured to contain data with which the Program; Y
una unidad de control configurada para recibir instrucciones de programa de la memoria de instrucciones y para generar señales de control y aplicarlas al camino de datos de manera que se realicen, en el camino de datos, operaciones de acuerdo con las instrucciones de programa, siendo la unidad de control una unidad de control cableada.a control unit configured to receive program instructions in the instruction memory and for generate control signals and apply them to the data path of so that, in the data path, operations of according to the program instructions, being the unit of control a wired control unit.
De acuerdo con la invención, el método comprende los pasos deAccording to the invention, the method comprises the steps of
como respuesta a una instrucción de reconfiguración contenida en las instrucciones de programa, reconfigurar la unidad de control, de manera que la unidad de controlin response to an instruction from reconfiguration contained in the program instructions, reconfigure the control unit, so that the unit of control
- pase de estar configurada para que el microprocesador procese instrucciones de un programa compilado para una primera arquitectura de procesador,- pass to be configured so that the microprocessor process instructions from a compiled program to a first processor architecture,
- a estar configurada para que el microprocesador procese instrucciones de un programa compilado para una segunda arquitectura de procesador, distinta de la primera arquitectura de procesador.- to be configured so that the microprocessor process instructions from a compiled program to a second processor architecture, different from the first processor architecture
Lo que se ha dicho más arriba con respecto al sistema de la invención también aplica al método, mutatis mutandis.What has been said above with respect to the system of the invention also applies to the method, mutatis mutandis .
El paso de reconfigurar la unidad de control se puede realizar accediendo a datos indicativos de configuración lógica de la unidad de control. Estos datos pueden estar alojados en una memoria en la que están alojados al menos dos conjuntos de datos indicativos de respectivas configuraciones lógicas de la unidad de control. Por ejemplo, como respuesta a la instrucción de reconfiguración, se puede acceder a uno de dichos conjuntos de datos (por ejemplo, accediendo a una posición de memoria indicada en la instrucción de reconfiguración) y, mediante un dispositivo hardware (por ejemplo), se puede reconfigurar la unidad de control de acuerdo con dicho conjunto de datos.The step of reconfiguring the control unit is can be done by accessing indicative configuration data Logic of the control unit. This data can be hosted in a memory in which at least two sets of data indicative of respective logical configurations of the control unit. For example, in response to the instruction of reconfiguration, one of said sets of data (for example, accessing a memory location indicated in the reconfiguration instruction) and, using a device hardware (for example), the control unit can be reconfigured according to said data set.
La reconfiguración se puede realizar sobre una unidad de control implementada en un dispositivo de lógica programable, o sobre una unidad de control implementada en un circuito ASIC que comprende al menos una parte de lógica reconfigurable correspondiente a la unidad de control.Reconfiguration can be performed on a control unit implemented in a logic device programmable, or over a control unit implemented in a ASIC circuit comprising at least one part of logic reconfigurable corresponding to the control unit.
El método puede comprender el paso de reconfigurar repetitivamente (por ejemplo, de forma aleatoria o pseudoaleatoria, en cuanto a los momentos en los que se reconfigura y/o en cuanto a cuál será la nueva configuración) la unidad de control para que el microprocesador opere, en diferentes momentos de un periodo de, funcionamiento del microprocesador, con programas compilados para diferentes arquitecturas de microprocesador.The method may comprise the step of reconfigure repeatedly (for example, randomly or pseudorandom, as for the moments in which it is reconfigured and / or as to what the new configuration will be) the unit of control for the microprocessor to operate, at different times of a period of operation of the microprocessor, with programs compiled for different microprocessor architectures.
El método puede comprender el paso de, como respuesta a la instrucción de reconfiguración pero antes reconfigurar la unidad de control, terminar el procesamiento de instrucciones recibidas antes de la recepción de la instrucción de reconfiguración, por ejemplo, para garantizar que cada instrucción sea procesada por la "arquitectura" que le corresponda.The method may comprise the step of, as response to the reconfiguration instruction but before reconfigure the control unit, finish processing instructions received before receiving the instruction from reconfiguration, for example, to ensure that each instruction be processed by the "architecture" that corresponds to it.
Otro aspecto de la invención se refiere al uso de un dispositivo según lo que se ha descrito más arriba, para dificultar un análisis de la operación del microprocesador a partir de un análisis del consumo energético del sistema (algo que puede servir para dificultar "ataques DPA").Another aspect of the invention relates to the use of a device as described above, to hinder an analysis of the operation of the microprocessor from of an analysis of the energy consumption of the system (something that can serve to hinder "DPA attacks").
De la misma manera, otro aspecto de la invención se refiere al uso del método descrito, con el fin de dificultar un análisis de la operación del microprocesador a partir de un análisis del consumo energético del sistema.In the same way, another aspect of the invention refers to the use of the described method, in order to hinder a microprocessor operation analysis from a analysis of the energy consumption of the system.
Para complementar la descripción y con objeto de ayudar a una mejor comprensión de las características de la invención, de acuerdo con un ejemplo preferente de realización práctica de la misma, se acompaña como parte integrante de la descripción, un juego de figuras en el que con carácter ilustrativo y no limitativo, se ha representado lo siguiente:To complement the description and in order to help a better understanding of the characteristics of the invention, according to a preferred embodiment practice thereof, is accompanied as an integral part of the description, a set of figures in which with illustrative character and not limiting, the following has been represented:
La figura 1.- Muestra una vista esquemática de un sistema de acuerdo con una posible realización de la invención.Figure 1.- Shows a schematic view of a system according to a possible realization of the invention.
La figura 2.- Muestra una vista esquemática de un dispositivo reconfigurador y su relación con una memoria principal y con la unidad de control del sistema.Figure 2.- Shows a schematic view of a reconfiguring device and its relation to a memory main and with the system control unit.
La figura 3.- Muestra un flujograma que refleja una posible forma de llevar a cabo el método de la invención.Figure 3.- Shows a flowchart that reflects a possible way of carrying out the method of the invention.
En la figura 1 se refleja, de forma esquemática, una realización preferida de la invención, con un microprocesador que comprende un camino de datos 1 (que puede ser convencional) comprendiendo un contador de programa 11 (que lleva la cuenta de cual es la próxima instrucción del programa a ejecutar), memoria (cache) de instrucciones 12, banco de registros 13, unidad aritmético-lógica 14, memoria (cache) de datos 15, multiplexores 16 (sólo se ha ilustrado uno), etc. Por otra parte, el microprocesador comprende una unidad de control 2 cableada. La unidad de control genera, como respuesta a las instrucciones que recibe de la memoria de instrucciones 12, señales que se aplican al camino de datos 1 para realizar las operaciones correspondientes. Todo esto es convencional y no se considera necesario describirlo aquí con más detalle.Figure 1 shows, schematically, a preferred embodiment of the invention, with a microprocessor which comprises a data path 1 (which can be conventional) comprising a program counter 11 (which keeps the account of which is the next instruction of the program to execute), memory (cache) of instructions 12, bank of records 13, unit arithmetic-logic 14, data cache (cache) 15, 16 multiplexers (only one illustrated), etc. On the other hand, The microprocessor comprises a wired control unit 2. The control unit generates, in response to the instructions that receives from the instruction memory 12, signals that are applied to the data path 1 to perform the corresponding operations. All this is conventional and it is not considered necessary to describe it. here in more detail.
El sistema comprende también una memoria 3, a continuación denominada "memoria principal", algo que también es convencional en este tipo de sistemas.The system also comprises a memory 3, a continuation called "main memory", something that also It is conventional in this type of systems.
Ahora bien, de acuerdo con la invención, esta memoria principal 3 incluye juegos o conjuntos de datos indicativos de configuraciones lógicas diferentes de la unidad de control 2, en el sentido de que dependiendo de si la unidad de control 2 está configurada de acuerdo con uno u otro de dichos conjuntos de datos, el microprocesador (es decir, el conjunto de unidad de control 2 y camino de datos 1) puede procesar, correctamente, instrucciones de un programa compilado para una u otra arquitectura de procesador.Now, according to the invention, this main memory 3 includes sets or indicative data sets of different logical configurations of control unit 2, in the sense that depending on whether the control unit 2 is configured according to one or other of said data sets, the microprocessor (i.e. the control unit assembly 2 and data path 1) can process instructions correctly a compiled program for one or another architecture of processor.
Por otra parte, el sistema incluye un elemento, subsistema o dispositivo reconfigurador 4 que también puede actuar como respuesta a las instrucciones que llegan desde la memoria de instrucciones. Al recibir (de forma directa o indirecta, por ejemplo, como en la figura 2, a través de la unidad de control 2) una instrucción determinada, que a continuación denominamos "instrucción de reconfiguración", el dispositivo reconfigurador accede a la memoria principal (por ejemplo, a una posición en la memoria principal indicada por la "instrucción de reconfiguración"; esta posición puede estar indicada en un campo de la "instrucción de reconfiguración") y accede allí a uno de los mencionados "conjuntos de datos", para luego acceder a la unidad de control y provocar una reconfiguración de la misma, de acuerdo con dicho conjunto de datos.On the other hand, the system includes an element, subsystem or reconfiguring device 4 that can also act in response to the instructions that arrive from the memory of instructions. Upon receiving (directly or indirectly, by example, as in figure 2, through the control unit 2) a given instruction, which we call next "reconfiguration instruction", the device reconfigurator accesses main memory (for example, a position in main memory indicated by the "instruction of reconfiguration "; this position may be indicated in a field of the "reconfiguration instruction") and access one of the mentioned "data sets", then access the control unit and cause a reconfiguration of it, of agreement with said data set.
Para ello, la unidad de control está implementada sobre hardware de lógica reconfigurable, por ejemplo, sobre un dispositivo FPGA (Field Programmable Gate Array), PLD (Programmable Logic Device), CPLD (Complex Programmable Logic Device), PAL (Programmable Array Logic) o GAL (Generic Array Logic), o sobre un ASIC (Application Specific Integrated Circuit) que comprende al menos una parte de lógica reconfigurable.To do this, the control unit is implemented on reconfigurable logic hardware, for example, on an FPGA (Field Programmable Gate Array) device, PLD (Programmable Logic Device), CPLD (Complex Programmable Logic Device), PAL (Programmable Array Logic) or GAL (Generic Array Logic), or on an ASIC (Application Specific Integrated Circuit) which comprises at least a part of reconfigurable logic.
La figura 2 refleja esquemáticamente cómo el dispositivo reconfigurador 4, que puede estar implementado con hardware y comprender un controlador de bus, es capaz de conectarse al bus 5 del sistema y leer datos de la memoria principal 3. Por ejemplo, como respuesta a una "instrucción de reconfiguración" 200, la unidad de control 2 (implementada sobre hardware de lógica configurable 21) genera, en adición a (o en lugar de) las señales de control 201 que aplica al camino de datos 1, una señal o instrucción 202 indicativa de que debe producirse una reconfiguración de la unidad de control, acompañada por (o incluyendo) una indicación 202A de la posición en la memoria principal 3 donde empieza el conjunto de datos que define la nueva configuración de la unidad de control 2. Como respuesta a dicha señal o instrucción 202, el dispositivo reconfigurador 4 accede, a través del bus 5, a la memoria principal 3, lee allí el conjunto de datos que definen la nueva configuración de la unidad de control, y vuelca dicha nueva configuración en la lógica programable 21, a través de una puerta de reconfiguración 22. Por ejemplo, en el caso de un dispositivo FPGA del fabricante Xilinx®, esto se puede hacer a través de su puerta ICAP (Internal Configuration Access Port). Es decir, "volcando" la nueva configuración correspondiente al conjunto de datos obtenido en la memoria principal 3 (en la posición o área indicada por la instrucción de reconfiguración 200), se modifica la "arquitectura" del microprocesador y, por lo tanto, puede quedar configurado para procesar un nuevo tipo de programas compilados.Figure 2 schematically reflects how the reconfiguring device 4, which may be implemented with hardware and understand a bus controller, is able to connect to system bus 5 and read data from main memory 3. By example, in response to a "reconfiguration instruction" 200, control unit 2 (implemented on logic hardware configurable 21) generates, in addition to (or instead of) the signals control 201 that applies to data path 1, a signal or instruction 202 indicating that a reconfiguration of the control unit, accompanied by (or including) an indication 202A of the memory location main 3 where the data set that defines the new one begins configuration of the control unit 2. In response to said signal or instruction 202, the reconfiguring device 4 accesses, to via bus 5, to main memory 3, read the set of data defining the new configuration of the control unit, and dump said new configuration into programmable logic 21, to through a reconfiguration gate 22. For example, in the case of an FPGA device from the manufacturer Xilinx®, this can be done through its ICAP (Internal Configuration Access Port) door. Is say, "dump" the new configuration corresponding to data set obtained in main memory 3 (in position or area indicated by the reconfiguration instruction 200), modify the "architecture" of the microprocessor and, therefore therefore, it can be configured to process a new type of compiled programs
La figura 3 refleja, esquemáticamente, cómo se puede implementar la invención.Figure 3 reflects, schematically, how You can implement the invention.
Tanto la unidad de control 2 como el dispositivo de reconfiguración 4 están continuamente buscando nuevas instrucciones a su entrada, a donde las instrucciones llegan desde la memoria de instrucciones 12 con el ritmo que marca el contador de programa 11. Una vez que se detecta una nueva instrucción (paso 100), ésta se decodifica (paso 101) y se comprueba (paso 102) si se trata de una "instrucción de reconfiguración". Si no se trata de una "instrucción de reconfiguración", la unidad de control ejecuta (paso 103) la instrucción de forma convencional, y el procesador pasa a buscar la siguiente instrucción.Both control unit 2 and the device of reconfiguration 4 are continually looking for new instructions at your entrance, where the instructions come from instruction memory 12 with the rhythm marked by the counter program 11. Once a new instruction is detected (step 100), this is decoded (step 101) and checked (step 102) if it is a "reconfiguration instruction". If it's not treated of a "reconfiguration instruction", the control unit execute (step 103) the instruction in a conventional manner, and the processor goes on to look for the next instruction.
Ahora bien, si se trata de una instrucción de reconfiguración, el microprocesador pasa a ejecutar las interrupciones pendientes (paso 104) y a vaciar el camino de datos (paso 105), y el dispositivo de reconfiguración (en el paso 106 que puede ejecutarse después, antes o a la vez con los pasos 104-105) lee (el conjunto de datos indicativo de) la nueva configuración de la unidad de control 2 de la memoria principal 4 y vuelca (en el paso 107, que preferiblemente se realice después del paso 105) dicha nueva configuración en la unidad de control 2, quedando la misma por lo tanto reconfigurada.Now, if it's an instruction from reconfiguration, the microprocessor goes on to execute the pending interruptions (step 104) and empty the data path (step 105), and the reconfiguration device (in step 106 that can be executed later, before or at the same time with the steps 104-105) reads (the data set indicative of) the new configuration of memory control unit 2 main 4 and dump (in step 107, which is preferably perform after step 105) said new configuration in the control unit 2, remaining the same therefore reconfigured
Básicamente, el funcionamiento podría ser el siguiente:Basically, the operation could be the next:
- El procesador está ejecutando un juego de instrucciones determinado contenido en la memoria de instrucciones 12. Dentro de ese juego de instrucciones existe una instrucción de reconfiguración y que básicamente sirve para "activar" el dispositivo de reconfiguración 4 (implementado en hardware) e indicarle la posición de la memoria principal 3 en la que comienza el conjunto de datos que corresponde a la nueva configuración de la unidad de control 2.- The processor is running a game of instructions given in the instruction memory 12. Within that set of instructions there is an instruction of reconfiguration and that basically serves to "activate" the reconfiguration device 4 (implemented in hardware) e tell you the location of main memory 3 where it starts the data set that corresponds to the new configuration of the control unit 2.
- Cuando se ejecute dicha instrucción el procesador (unidad de control 2 y camino de datos 1) termina todo lo que está haciendo hasta ese punto, atendiendo todas las interrupciones pendientes y vaciando el camino de datos. (Como es sabido, las interrupciones en el sistema funcionan para atender eventos externos. Por ejemplo, cuando se pulsa una tecla en el procesador se activa una interrupción y se salta a una posición de memoria preestablecida para ese evento donde se encuentra el programa que hay que ejecutar en caso de que se pulse dicha tecla. Cuando se quiere reconfigurar la unidad de control para, básicamente, convertir la "arquitectura" del procesador en otra, aparte de cambiar el juego de instrucciones puede ser necesario cambiar la numeración de las interrupciones y la posición de memoria a la que hay que saltar cuando se produce el evento correspondiente. Esto se puede hacer modificando una tabla, que puede estar junto a la unidad de control.) De esta manera se deja el procesador en un estado conocido sin nada pendiente de tal forma que al reiniciarlo con la nueva configuración de la unidad de control, no queden instrucciones codificadas de otra manera (es decir, correspondientes a la "arquitectura" anterior) por ejecutar. Si se cambia la configuración de la unidad de control y quedan eventos externos por atender -que lanzan interrupciones en el procesador- puede haber un riesgo de que se puedan mezclar instrucciones correspondientes a configuraciones -o "arquitecturas"- diferentes. Por eso puede ser conveniente dejar el procesador en un estado en el que no tenga nada de trabajo pendiente (y en caso de que el camino de datos esté segmentado, algo que es habitual, se termina de procesar todas las instrucciones anteriores a la instrucción de reconfiguración).- When this instruction is executed on processor (control unit 2 and data path 1) ends all what you are doing up to that point, attending all pending interruptions and emptying the data path. (How is it known, interruptions in the system work to address external events For example, when a key is pressed on the processor activates an interrupt and jumps to a position of preset memory for that event where the program to be executed in case this key is pressed. When you want to reconfigure the control unit to, basically convert the "architecture" of the processor into another, apart from changing the instruction set can be it is necessary to change the numbering of the interruptions and the position from memory to which to jump when the event occurs correspondent. This can be done by modifying a table, which may be next to the control unit.) This way it is left the processor in a known state with nothing pending in such a way that when you restart it with the new configuration of the unit control, there are no instructions coded otherwise (it is say, corresponding to the "architecture" above) by run. If the control unit setting is changed and external events remain to be attended - which launch interruptions in the processor - there may be a risk that they can be mixed instructions corresponding to configurations -o "architectures" - different. That's why it can be convenient leave the processor in a state where it has no work pending (and in case the data path is segmented, something that is usual, it finishes processing all the instructions prior to the reconfiguration instruction).
- Una vez parado el procesador, el elemento reconfigurador 4 comienza a leer de la memoria principal 3 la nueva configuración de la unidad de control y a reconfigurar dicha unidad de control sobre el hardware reconfigurable correspondiente.- Once the processor is stopped, the element reconfigurator 4 starts reading from main memory 3 the new configuration of the control unit and to reconfigure said unit control over the corresponding reconfigurable hardware.
En este texto, la palabra "comprende" y sus variantes (como "comprendiendo", etc.) no deben interpretarse de forma excluyente, es decir, no excluyen la posibilidad de que lo descrito incluya otros elementos, pasos etc.In this text, the word "understand" and its variants (such as "understanding", etc.) should not be interpreted excluding, that is, they do not exclude the possibility that the described include other elements, steps etc.
Por otra parte, la invención no está limitada a las realizaciones concretas que se han descrito sino abarca también, por ejemplo, las variantes que pueden ser realizadas por el experto medio en la materia (por ejemplo, en cuanto a la elección de materiales, dimensiones, componentes, configuración, etc.), dentro de lo que se desprende de las reivindicaciones.On the other hand, the invention is not limited to the specific embodiments that have been described but encompasses also, for example, the variants that can be made by the average expert in the field (for example, in terms of choice of materials, dimensions, components, configuration, etc.), within what follows from the claims.
Claims (17)
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
\newpage\ newpage
\vskip1.000000\baselineskip\ vskip1.000000 \ baselineskip
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200802227A ES2332765B1 (en) | 2008-07-28 | 2008-07-28 | MICROPROCESSOR SYSTEM WITH RECONFIGURABLE CABLE CONTROL UNIT, AND METHOD FOR OPERATING A MICROPROCESSOR. |
PCT/ES2009/000396 WO2010018254A1 (en) | 2008-07-28 | 2009-07-27 | Microprocessor system including a reconfigurable hardwired control unit and method for operating a microprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200802227A ES2332765B1 (en) | 2008-07-28 | 2008-07-28 | MICROPROCESSOR SYSTEM WITH RECONFIGURABLE CABLE CONTROL UNIT, AND METHOD FOR OPERATING A MICROPROCESSOR. |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2332765A1 ES2332765A1 (en) | 2010-02-11 |
ES2332765B1 true ES2332765B1 (en) | 2010-10-27 |
Family
ID=41591763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES200802227A Active ES2332765B1 (en) | 2008-07-28 | 2008-07-28 | MICROPROCESSOR SYSTEM WITH RECONFIGURABLE CABLE CONTROL UNIT, AND METHOD FOR OPERATING A MICROPROCESSOR. |
Country Status (2)
Country | Link |
---|---|
ES (1) | ES2332765B1 (en) |
WO (1) | WO2010018254A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600845A (en) * | 1994-07-27 | 1997-02-04 | Metalithic Systems Incorporated | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
-
2008
- 2008-07-28 ES ES200802227A patent/ES2332765B1/en active Active
-
2009
- 2009-07-27 WO PCT/ES2009/000396 patent/WO2010018254A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600845A (en) * | 1994-07-27 | 1997-02-04 | Metalithic Systems Incorporated | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
Also Published As
Publication number | Publication date |
---|---|
ES2332765A1 (en) | 2010-02-11 |
WO2010018254A1 (en) | 2010-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8429379B2 (en) | Reconfigurable microprocessor configured with multiple caches and configured with persistent finite state machines from pre-compiled machine code instruction sequences | |
EP2669807B1 (en) | Processor resource and execution protection methods and apparatus | |
KR970004513B1 (en) | Data processor having two modes of operation | |
JP4619288B2 (en) | Processing action masking in data processing system | |
JP5668143B2 (en) | Debugging data processing equipment | |
ES2677709T3 (en) | Dynamic multi-thread enablement | |
CN101261577A (en) | Microprocessor and method of storing data in the microprocessor | |
KR100462951B1 (en) | Eight-bit microcontroller having a risc architecture | |
WO2008115822A1 (en) | Data pointers with fast context switching | |
KR20140113585A (en) | Instruction emulation processors, methods, and systems | |
ES2396800T3 (en) | Enhanced microprocessor or microcontroller | |
KR20100101090A (en) | Enhanced microprocessor or microcontroller | |
ES2617318T3 (en) | Configurable logic cells | |
BRPI1005543A2 (en) | Rotation instructions that complete execution without reading the carry flag | |
EP3329361B1 (en) | Vector operand bitsize control | |
US20230205621A1 (en) | Out-of-bounds recovery circuit | |
TWI335532B (en) | Computer having dynamically-changeable instruction set in real time | |
ES2350501T3 (en) | CONFIGURABLE FUSE MECHANISM TO IMPLEMENT MICROCODE PATCHES. | |
ES2332765B1 (en) | MICROPROCESSOR SYSTEM WITH RECONFIGURABLE CABLE CONTROL UNIT, AND METHOD FOR OPERATING A MICROPROCESSOR. | |
TW201241742A (en) | System, apparatus, and method for segment register read and write regardless of privilege level | |
US20030097546A1 (en) | Reconfigurable processor | |
IL131839A (en) | Method for reducing code size using programmable delay slots | |
ES2318448T3 (en) | EXECUTION OF A PROGRAM THROUGH A VIRTUAL MACHINE. | |
JPH0475137A (en) | data processing equipment | |
US10324723B2 (en) | Systems and methods for processing both instructions and constant values from a memory of a digital processor accessed by separate pointers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EC2A | Search report published |
Date of ref document: 20100211 Kind code of ref document: A1 |
|
FG2A | Definitive protection |
Ref document number: 2332765B1 Country of ref document: ES |
|
GD2A | Contractual licences |
Effective date: 20151021 |