fbpx
Wikipedia

Microcódigo

Un microcódigo o microprograma El microcódigo es una capa de instrucciones a nivel de hardware que implementan instrucciones de código de máquina de nivel superior o secuenciación de máquina de estado interna en muchos elementos de procesamiento digital. El microcódigo normalmente reside en una memoria especial de alta velocidad

Historia

En 1947, el diseño del MIT Whirlwind introdujo el concepto de un microprograma como una forma de simplificar el diseño de la computadora y avanzar más allá de los métodos ad hoc. Generalmente el almacén de control es una matriz de diodos: una red bidimensional, donde una dimensión acepta "pulsos de tiempo de control" del reloj interno de la CPU, y la otra se conecta a señales de control en puertas y otros circuitos. Un registro de desplazamiento"distribuidor secuencial de pulsos" toma los pulsos generados por el reloj de la CPU y los divide en pulsos de tiempo separados, cada uno de los cuales activa una fila diferente de la red. Cuando la fila está activada, activa las señales de control conectadas a ella. Descrito de otra manera, las señales transmitidas por el registro de desplazamiento se reproducen de forma secuencial. En un microprograma, sin embargo, la ejecución es corta y se repite continuamente. En 1951, Maurice Wilkes mejoró este concepto al agregar la ejecución condicional , un concepto similar a un condicional en el software de computadora. Su implementación inicial consistía en un par de matrices: la primera generaba señales a la manera del almacén de control MIT Whirlwind, mientras que la segunda matriz seleccionaba qué fila de señales (la palabra de instrucción del microprograma, por así decirlo) invocar en el siguiente ciclo. Los condicionales se implementaron proporcionando una forma en que una sola línea en el almacén de control podría elegir entre las alternativas en la segunda matriz. Esto condicionó las señales de control a la señal interna detectada. Wilkes acuñó el término microprogramación para describir esta característica y distinguirlo de un simple microprograma.

El diseño de microprocesadores de propósito general conoce dos técnicas que conducen a una clasificación de éstos en dos grupos:

  • Los microprocesadores con uso del Firmware son aquellos que tienen una unidad de control específicamente diseñada sobre el silicio (red de diodos) para un juego de instrucciones concreto.
  • Los microprocesadores "microprogramados": aquellos que tienen una unidad de control que implementa un juego de instrucciones basado en el contenido de una memoria modificable.

En los primeros años de la "era del silicio", el diseño de microprocesadores cableados resultaba enormemente costoso debido a que son muy complejos y no existían herramientas adecuadas para diseñar y verificar la corrección de los diseños.

Por este motivo, era habitual que los microprocesadores fueran gobernados por un microprograma, mucho más sencillo de diseñar. Una vez creada una unidad de control microprogramada, era posible replicarla en todos los modelos de microprocesador. La única diferencia entre unos y otros radicaba en el microprograma utilizado.

Hoy día la microprogramación ha desaparecido prácticamente por completo. Esto se debe a los siguientes factores:

  • Ahora existen herramientas avanzadas para diseñar complejas unidades de control con millones de transistores litografiados. Estas herramientas prácticamente garantizan la ausencia de errores de diseño.
  • Las unidades de control cableadas tienen un rendimiento significativamente mayor que cualquier unidad microprogramada, resultando más competitivas.

En qué consiste

Un microprograma es una secuencia de datos binarios o microinstrucciones que representan señales eléctricas internas de la unidad de control de un microprocesador.

Unas pocas de estas microinstrucciones implementan una instrucción completa del microprocesador. Por ejemplo, la instrucción "sumar dos registros" esencial en cualquier microprocesador, se implementa mediante la activación y desactivación de un conjunto reducido de señales eléctricas en el banco de registros y la unidad aritmético-lógica (ALU). En concreto, el microprograma de esta instrucción significaría:

  • Activar las señales de selección de registro en modo lectura como primer operando de la ALU.
  • Activar las señales de selección de registro en modo lectura como segundo operando de la ALU.
  • Activar las señales de selección de operador para que corresponda a la suma en la ALU.
  • Esperar unos ciclos de reloj hasta que la operación esté completada.
  • Activar la señal de escritura en el registro acumulador.

Concepto general de la microinstrucción

La microinstrucción es una palabra binaria con tantos bits como señales de control existan en el microprocesador. Generalmente no son múltiplos de ocho bits porque no existe ninguna necesidad de alineamiento. Un bit a "cero" indica que la señal no debe activarse. Un bit a "uno" indica lo contrario.

Los bits de una microinstrucción se organizan, conceptualmente, en campos. Cada campo representa un conjunto de señales eléctricas relacionadas entre sí.

Este es un ejemplo (ficticio) de formato de microinstrucción:

 bit: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17  +-----------+-----------+-----------+-----------------+ campo: registro registro operación salto siguiente operando 1 operando 2 ALU instrucción 

Este ejemplo tiene cuatro campos. Los bits 00 a 03 permiten seleccionar un registro como operando de la ALU. Tratándose de 4 bits, se puede seleccionar uno de 2^4 = 16 registros del microprocesador. Los bits 04 a 07 son análogos para el segundo operando. Los bits 08 a 11 indican el tipo de operación aritmética que debe realizar la unidad aritmético-lógica (suma, resta, multiplicación, etc.). El último campo, bits 12 a 15, indican cuál es la siguiente microinstrucción. Se trata de un desplazamiento (positivo o negativo) que hace saltar hacia atrás o hacia delante.

Multiplexación

Existen algunos campos que nunca se utilizan simultáneamente. Por ejemplo, el campo operación de la unidad aritmético-lógica y una dirección de memoria. Para ahorrar memoria, es posible utilizar el mismo conjunto de bits para campos distintos. Así, una microinstrucción puede tener formatos diferentes. El formato a utilizar se distingue mediante algún bit adicional. Ejemplo:

 bit: "0" 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18  +--+-----------+-----------+-----------+-----------------+ campo: registro registro operación salto siguiente  operando 1 operando 2 ALU instrucción bit: "1" 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18  +--+-----------+-----------------------+--+--------------+ campo: registro dirección de memoria op salto siguiente  operando 1   instrucción 

El primer bit distingue qué formato se está utilizando. El segundo formato correspondería a instrucciones de transferencia con memoria (lectura o escritura).

Implementación

 

Una unidad de control microprogramada consiste esencialmente en "microprocesador dentro del microprocesador", y consta de elementos análogos aunque mucho más simplificados:

  • Una memoria de programa. Suele ser una pequeña memoria de solo lectura (ROM) que incluye todo el microprograma.
  • Un "micro-contador de programa": registro que indica cual es la microinstrucción en curso.
  • Una "micro unidad de salto condicional/incondicional": permite modificar el micro-contador de programa.
  • Un "registro de micro-instrucción": contiene la microinstrucción en curso.
  • Un demultiplexor, en caso de que existan campos multiplexados.
  • Un Contador de programa (Program Counter PC), que permite ejecutar instrucciones de forma secuencial.
  • Una unidad de salto condicional/incondicional: permite modificar el Contador de programa.
  • Una señal de reloj: sincroniza la ejecución de las instrucciones.

Fuentes

https://es.xcv.wiki/wiki/Microcode#History

Véase también

  •   Datos: Q175869
  •   Multimedia: Microcode

microcódigo, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, junio, 2011, microcódigo, microprograma, microcódigo, capa, instrucciones, nivel, hardware, implementan, instrucciones, código, máquina, nivel. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 12 de junio de 2011 Un microcodigo o microprograma El microcodigo es una capa de instrucciones a nivel de hardware que implementan instrucciones de codigo de maquina de nivel superior o secuenciacion de maquina de estado interna en muchos elementos de procesamiento digital El microcodigo normalmente reside en una memoria especial de alta velocidadIndice 1 Historia 2 En que consiste 3 Concepto general de la microinstruccion 3 1 Multiplexacion 4 Implementacion 5 Fuentes 6 Vease tambienHistoria EditarEn 1947 el diseno del MIT Whirlwind introdujo el concepto de un microprograma como una forma de simplificar el diseno de la computadora y avanzar mas alla de los metodos ad hoc Generalmente el almacen de control es una matriz de diodos una red bidimensional donde una dimension acepta pulsos de tiempo de control del reloj interno de la CPU y la otra se conecta a senales de control en puertas y otros circuitos Un registro de desplazamiento distribuidor secuencial de pulsos toma los pulsos generados por el reloj de la CPU y los divide en pulsos de tiempo separados cada uno de los cuales activa una fila diferente de la red Cuando la fila esta activada activa las senales de control conectadas a ella Descrito de otra manera las senales transmitidas por el registro de desplazamiento se reproducen de forma secuencial En un microprograma sin embargo la ejecucion es corta y se repite continuamente En 1951 Maurice Wilkes mejoro este concepto al agregar la ejecucion condicional un concepto similar a un condicional en el software de computadora Su implementacion inicial consistia en un par de matrices la primera generaba senales a la manera del almacen de control MIT Whirlwind mientras que la segunda matriz seleccionaba que fila de senales la palabra de instruccion del microprograma por asi decirlo invocar en el siguiente ciclo Los condicionales se implementaron proporcionando una forma en que una sola linea en el almacen de control podria elegir entre las alternativas en la segunda matriz Esto condiciono las senales de control a la senal interna detectada Wilkes acuno el termino microprogramacion para describir esta caracteristica y distinguirlo de un simple microprograma El diseno de microprocesadores de proposito general conoce dos tecnicas que conducen a una clasificacion de estos en dos grupos Los microprocesadores con uso del Firmware son aquellos que tienen una unidad de control especificamente disenada sobre el silicio red de diodos para un juego de instrucciones concreto Los microprocesadores microprogramados aquellos que tienen una unidad de control que implementa un juego de instrucciones basado en el contenido de una memoria modificable En los primeros anos de la era del silicio el diseno de microprocesadores cableados resultaba enormemente costoso debido a que son muy complejos y no existian herramientas adecuadas para disenar y verificar la correccion de los disenos Por este motivo era habitual que los microprocesadores fueran gobernados por un microprograma mucho mas sencillo de disenar Una vez creada una unidad de control microprogramada era posible replicarla en todos los modelos de microprocesador La unica diferencia entre unos y otros radicaba en el microprograma utilizado Hoy dia la microprogramacion ha desaparecido practicamente por completo Esto se debe a los siguientes factores Ahora existen herramientas avanzadas para disenar complejas unidades de control con millones de transistores litografiados Estas herramientas practicamente garantizan la ausencia de errores de diseno Las unidades de control cableadas tienen un rendimiento significativamente mayor que cualquier unidad microprogramada resultando mas competitivas En que consiste EditarUn microprograma es una secuencia de datos binarios o microinstrucciones que representan senales electricas internas de la unidad de control de un microprocesador Unas pocas de estas microinstrucciones implementan una instruccion completa del microprocesador Por ejemplo la instruccion sumar dos registros esencial en cualquier microprocesador se implementa mediante la activacion y desactivacion de un conjunto reducido de senales electricas en el banco de registros y la unidad aritmetico logica ALU En concreto el microprograma de esta instruccion significaria Activar las senales de seleccion de registro en modo lectura como primer operando de la ALU Activar las senales de seleccion de registro en modo lectura como segundo operando de la ALU Activar las senales de seleccion de operador para que corresponda a la suma en la ALU Esperar unos ciclos de reloj hasta que la operacion este completada Activar la senal de escritura en el registro acumulador Concepto general de la microinstruccion EditarLa microinstruccion es una palabra binaria con tantos bits como senales de control existan en el microprocesador Generalmente no son multiplos de ocho bits porque no existe ninguna necesidad de alineamiento Un bit a cero indica que la senal no debe activarse Un bit a uno indica lo contrario Los bits de una microinstruccion se organizan conceptualmente en campos Cada campo representa un conjunto de senales electricas relacionadas entre si Este es un ejemplo ficticio de formato de microinstruccion bit 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 campo registro registro operacion salto siguiente operando 1 operando 2 ALU instruccion Este ejemplo tiene cuatro campos Los bits 00 a 03 permiten seleccionar un registro como operando de la ALU Tratandose de 4 bits se puede seleccionar uno de 2 4 16 registros del microprocesador Los bits 04 a 07 son analogos para el segundo operando Los bits 08 a 11 indican el tipo de operacion aritmetica que debe realizar la unidad aritmetico logica suma resta multiplicacion etc El ultimo campo bits 12 a 15 indican cual es la siguiente microinstruccion Se trata de un desplazamiento positivo o negativo que hace saltar hacia atras o hacia delante Multiplexacion Editar Existen algunos campos que nunca se utilizan simultaneamente Por ejemplo el campo operacion de la unidad aritmetico logica y una direccion de memoria Para ahorrar memoria es posible utilizar el mismo conjunto de bits para campos distintos Asi una microinstruccion puede tener formatos diferentes El formato a utilizar se distingue mediante algun bit adicional Ejemplo bit 0 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 campo registro registro operacion salto siguiente operando 1 operando 2 ALU instruccion bit 1 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 campo registro direccion de memoria op salto siguiente operando 1 instruccion El primer bit distingue que formato se esta utilizando El segundo formato corresponderia a instrucciones de transferencia con memoria lectura o escritura Implementacion Editar Una unidad de control microprogramada consiste esencialmente en microprocesador dentro del microprocesador y consta de elementos analogos aunque mucho mas simplificados Una memoria de programa Suele ser una pequena memoria de solo lectura ROM que incluye todo el microprograma Un micro contador de programa registro que indica cual es la microinstruccion en curso Una micro unidad de salto condicional incondicional permite modificar el micro contador de programa Un registro de micro instruccion contiene la microinstruccion en curso Un demultiplexor en caso de que existan campos multiplexados Un Contador de programa Program Counter PC que permite ejecutar instrucciones de forma secuencial Una unidad de salto condicional incondicional permite modificar el Contador de programa Una senal de reloj sincroniza la ejecucion de las instrucciones Fuentes Editarhttps es xcv wiki wiki Microcode HistoryVease tambien EditarArquitectura de CPU CPU Microprocesador Unidad de control Unidad aritmetico logica Unidad de punto flotante Unidad de gestion de memoria Unidad de ejecucion Registro hardware Datos Q175869 Multimedia MicrocodeObtenido de https es wikipedia org w index php title Microcodigo amp oldid 136736100, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos