El microprogramar (es decir microcódigo del de la escritura) es un método que puede ser empleado para ejecutar las instrucciones de máquina en una CPU relativamente fácilmente, a menudo usar menos hardware que con otros métodos. Es un sistema de las rutinas muy detalladas y rudimentarias del bajo-nivel que los controles y ordenan las acciones necesarias para ejecutar (realizarse) instrucciones particulares, a veces también de descifrarlas (interpretar). Una instrucción de máquina ejecutada por una serie de las microinstrucciones del es así libremente comparable a cómo un intérprete ejecuta una declaración del idioma de alto nivel usar una serie de instrucciones de máquina.

El microcódigo es escrito normalmente por el ingeniero de la CPU durante la fase de diseño. No es significado generalmente para ser visible o cambiable por un programador normal, no incluso un programador de la asamblea, una de las razones que son que el microcódigo (por diseño) se puede cambiar dramáticamente con una nueva generación de Microarchitecture . El código automático conserva a menudo la compatibilidad hacia atrás . El microcódigo se ha utilizado a menudo para dejar un del microarchitecture emular a otro, generalmente más de gran alcance, arquitectura.

Algunos vendedores de hardware, especialmente IBM, también utilizan el microcódigo término como sinónimo para los soportes lógico inalterable, independientemente de si ejecuta realmente microprogramar de un procesador. Incluso el soporte lógico inalterable simple, tal como el que está usado en una impulsión dura, se describe a veces como microcódigo. Tal uso no se discute aquí.

Descripción

Los elementos que componen un microprograma existen en un nivel conceptual más bajo que un programa de aplicación normal. Cada elemento es distinguido por el " micro" prefijo para evitar la confusión: microinstrucción, microassembler, microprogrammer, microarchitecture, etc.

El microcódigo no reside generalmente en el de memoria principal, sino en una memoria de alta velocidad especial, llamó el almacén de control . Puede ser que sea el la memoria de lectura/grabación inalterable de o. En el 3ultimo caso el microcódigo sería cargado en el almacén de control de un cierto otro medio de almacenaje como parte de la inicialización de la CPU, y podría ser alterado para corregir insectos en el sistema de instrucción, o para ejecutar nuevas instrucciones de máquina.

Los microprogramas consisten en series de microinstrucciones. Estas microinstrucciones controlan la CPU en un nivel muy fundamental de trazado de circuito del hardware. Por ejemplo, una sola microinstrucción típica pudo especificar las operaciones siguientes:

conecta el registro 1 con el " A" lado ALU
Conectar el registro 7 con el " B" lado ALU
Fijar el ALU para realizar la adición del dos-complemento
Fijar los ALU llevan la entrada a cero
Almacenar el valor del resultado en el registro 8
Poner al día el " condicionar el codes" con las banderas del estado de ALU (" Negative", " Zero", " Overflow", y " Carry")
Microjump al nnn de MicroPC para la microinstrucción siguiente

Para controlar simultáneamente las características de todo el procesador en un ciclo, la microinstrucción es a menudo tan ancha como 56 pedacitos. Los microprogramas se diseñan y se optimizan cuidadosamente para la ejecución posible más rápida, puesto que un microprograma lento rendiría una instrucción de máquina lenta que alternadamente causaría todos los programas usar esa instrucción de ser lenta.

La razón de microprogramar

El microcódigo fue desarrollado original como método más simple de desarrollar la lógica de control para una computadora. Los sistemas de instrucción de la CPU eran inicialmente " " atado con alambre difícilmente - ;. Cada instrucción de máquina (agregar, cambiar de puesto, movimiento) fue ejecutada directo con el trazado de circuito. Esto proporcionó funcionamiento rápido, pero como los sistemas de instrucción crecieron más complejos, los sistemas de instrucción hard-wired llegaron a ser más difíciles de diseñar y de eliminar errores.

El microcódigo alivió ese problema permitiendo que los ingenieros de diseño de la CPU escriban un microprograma para ejecutar una instrucción de máquina algo que el trazado de circuito para él. Incluso tarde en el proceso de diseño, microcódigo podría ser cambiado fácilmente, mientras que difícilmente - las instrucciones atadas con alambre no podrían. Esto facilitó grandemente diseño de la CPU y llevó a sistemas de instrucción más complejos.

Otra ventaja del microcódigo era la puesta en práctica de instrucciones de máquina más complejas. En los años 60 con el final de los 70, mucho la programación fue hecha en el de lenguaje de ensamblaje, un equivalente simbólico de las instrucciones de máquina. El el más abstracto y de alto nivel la instrucción de máquina, mayor es la productividad del programador. La última extensión de esto era " Language" de alto nivel directo ejecutable; diseños. En estos cada declaración de un idioma de alto nivel tal como PL/I sería ejecutada enteramente y directo por microcódigo, sin la compilación. El proyecto de sistemas futuro de IBM y el procesador del Fountainhead de Data General eran ejemplos de esto.

El microprogramar también ayudado para aliviar el problema de la anchura de banda de la memoria. Durante los años 70, las velocidades de la CPU crecieron más rápidamente que velocidades de la memoria. Técnicas numerosas de la aceleración tales como transferencia de bloque de memoria, pre-fetch de la memoria y escondrijos de niveles múltiples ayudados para reducir esto. Instrucciones de máquina al menos de alto nivel (hechas posibles por microcódigo) ayudadas más lejos. Pocas instrucciones de máquina más complejas requieren menos anchura de banda de la memoria. Por ejemplo las operaciones completas en conjuntos de caracteres se podían hacer como sola instrucción de máquina, así evitando búsquedas de instrucciones múltiples.

Las arquitecturas usar esto se acercan incluyeron el System/360 de IBM y el VAX, los sistemas de Digital Equipment Corporation de instrucción cuyo fueron ejecutados por microprogramas complejos. El acercamiento de usar sistemas de instrucción microcódigo-ejecutados cada vez más complejos más adelante fue llamado CISC .

Otras ventajas

Los microprogramas de un procesador funcionan encendido un más primitivo, arquitectura total diversa y mucho más hardware-oriented que las instrucciones de asamblea visibles a los programadores normales. En la coordinación con el hardware, el microcódigo ejecuta la arquitectura programador-visible. El hardware subyacente no necesita tener una relación fija a la arquitectura visible. Esto permite ejecutar una arquitectura de sistema de instrucción dada en una gran variedad de micro-arquitecturas subyacentes del hardware.

El hacer tan es importante si la compatibilidad de programa binaria es una prioridad. Los programas previamente existentes de esa manera pueden funcionar en el hardware total nuevo sin requerir la revisión y la recompilación. Al menos puede haber una pena del funcionamiento para este acercamiento. Las compensaciones entre la compatibilidad hacia atrás del uso contra funcionamiento de la CPU son discutidas caliente por los ingenieros de diseño de la CPU.

IBM System/360 tiene una arquitectura de 32 bits con 16 registros de fines generales, pero la mayor parte de las puestas en práctica System/360 utilizan realmente el hardware que ejecutó un microarchitecture subyacente mucho más simple; por ejemplo, System/360 el modelo 30 tenía trayectorias de datos de 8 bits a la unidad (ALU) de la lógica aritmética y de memoria principal y haber ejecutado los registros de fines generales en una unidad especial de la memoria de base de la alto-velocidad, y System/360 el modelo 40 tenía las trayectorias de datos de 8 bits al ALU y trayectorias de datos de 16 bits a de memoria principal y también ejecutadas los registros de fines generales en una unidad especial de memoria de base de la alto-velocidad. El modelo 50 y el modelo 65 tenían trayectorias de datos de 32 bits llenas y ejecutaron los registros de fines generales en circuitos más rápidos del transistor. De esta manera, el microprogramar permitió a IBM diseñar muchos modelos System/360 con hardware substancialmente diverso y atravesar una amplia gama del coste y del funcionamiento, mientras que los hacía todos arquitectónico compatibles. Esto redujo dramáticamente la cantidad de software del sistema único que tuvo que ser escrita para cada modelo.

Un acercamiento similar fue utilizado por Digital Equipment Corporation en su familia del VAX de computadoras. Un procesador de 32 bits TTL conjuntamente con microcódigo favorable ejecutó inicialmente la arquitectura programador-visible. Versiones posteriores del VAX utilizaron diversos microarchitectures, con todo la arquitectura programador-visible no cambió.

El microprogramar también redujo el coste de cambios del campo a los defectos correctos (el desinsecta en el procesador; un insecto podía ser fijado a menudo substituyendo una porción del microprograma algo que por los cambios que eran hechos a la lógica del hardware y atándola con alambre.

Historia

En 1947, el diseño del torbellino del MIT introdujo el concepto de un almacén de control como manera de simplificar diseño de la computadora y de moverse más allá de métodos ad hoc del . El almacén de control era un enrejado de dos dimensiones: una dimensión aceptó el " controlar el pulses" del tiempo; del reloj interno de la CPU, y del otro conectado con las señales de control en las puertas y otros circuitos. Un " distributor" del pulso; tomaría los pulsos generados por el reloj de la CPU y los rompería para arriba en ocho pulsos separados del tiempo, que activarían una diversa fila del enrejado. Cuando la fila fue activada, activaría las señales de control conectadas con ella.

Describió otra manera, las señales transmitidas por el almacén de control se están jugando como un rodillo del piano de jugador . Es decir, son controladas por una secuencia de palabras muy amplias construidas de los pedacitos y son " played" secuencialmente. En un almacén de control, sin embargo, el " song" es el cortocircuito y repetido continuamente.

En el Mauricio Wilkes 1951 realzó este concepto agregando la ejecución condicional, un concepto del relacionado con un condicional en los programas informáticos. Su puesta en práctica inicial consistió en un par de matrices, las señales generadas primer una de la manera del almacén de control del torbellino, mientras que la segunda matriz seleccionó que fila de las señales (la palabra de instrucción del microprograma, como si fuera) de invocar en el ciclo siguiente. Conditionals fue ejecutado proporcionando una manera que una sola línea en el almacén de control podría elegir de alternativas en la segunda matriz. Esto hizo las señales de control condicionales en la señal interna detectada. Wilkes acuñó microprogramar del término para describir esta característica y para distinguirla de un almacén de control simple.

Ejemplos de sistemas microprogramados

La mayoría de los modelos de la serie de IBM System/360 fueron microprogramados: * El modelo 25 era único entre los modelos System/360 al usar los octetos de la tapa 16k de almacenaje de base para llevar a cabo el almacenaje de control para el microprograma. Los 2025 utilizaron un microarchitecture de 16 bits con siete palabras de control (o microinstrucciones).
* el modelo 30, el modelo más lento de la línea, utilizó un microarchitecture de 8 bits con solamente algunos registros de hardware; todo que el programador consideró fue emulada por el microprograma.
* el modelo 40 utilizó 56 palabras de control del pedacito. La caja 2040 ejecuta el procesador principal System/360 y el canal múltiplex (el procesador de la entrada-salida).
* el modelo 50 tenía dos datapaths internos que funcionaron paralelamente: un datapath de 32 bits usado para las operaciones aritméticas, y una trayectoria de datos de 8 bits usada en algunas operaciones lógicas. El almacén de control utilizó 90 microinstrucciones del pedacito.
* el modelo 85 tenía la búsqueda de instrucciones separada (Yo-unidad) y ejecución (E-unidad) para proporcionar alto rendimiento. La Yo-unidad es hardware controlado. La E-unidad se microprograma con 108 palabras de control del pedacito. Los procesadores PDP-11 de Digital Equipment Corporation, a excepción del PDP-11/20, fueron microprogramados.
El " de Burroughs B700; microprocessor" los opcodes ejecutados del uso-nivel usar secuencias de microinstrucciones de 16 bits almacenadas en de memoria principal, cada uno de éstos eran una operación de la colocar-carga o trazado a un solo " de 56 pedacitos; nanocode" instrucción almacenada en memoria de acceso único en la lectura. Esto permitió que el hardware comparativamente simple actuara como un regulador periférico de la unidad central o fuera empaquetado como computadora independiente.
El B1700 de Burroughs fue ejecutado con hardware radical diverso incluyendo de memoria principal pedacito-direccionable pero tenía una organización de múltiples capas similar.
En común con mucho otro el motor analítico del de Charles Babbage complejo de los dispositivos mecánicos los bancos usados de las levas para controlar cada operación, es decir tenía un almacén de control inalterable. Como tales que merece ser reconocido como la primera computadora microprogramada que se diseñará, incluso si todavía no se ha observado en hardware.
Las unidades del vector VU0 y VU1 en Sony Playstation 2 son microprogramables; de hecho, VU1 era el solamente accesible vía el microcódigo para el primer varias generaciones del SDK.

Puesta en práctica

Cada microinstrucción en un microprograma proporciona los pedacitos que controlan los elementos funcionales que interno componen una CPU. La ventaja sobre una CPU hard-wired es que el control interno de la CPU se convierte en una forma especializada de un programa de computadora. El microcódigo transforma así un desafío electrónico complejo del diseño (el control de una CPU) en un desafío programado menos-complejo.

Para aprovecharse de esto, las computadoras fueron divididas en varias piezas:

Un Microsequencer escogió la palabra siguiente del almacén de control . Un secuenciador es sobre todo un contador, pero generalmente también tiene cierta manera de saltar a una diversa parte del almacén de control dependiendo de un ciertos datos, generalmente datos del registro de instrucción y siempre una cierta parte del almacén de control. El secuenciador más simple es apenas un registro cargado de algunos pedacitos del almacén de control.

Un sistema del registro es una memoria rápida que contiene los datos de la unidad central de proceso. Puede incluir el contador de programa, el puntero de pila, y otros números que no sean fácilmente accesibles al programador del uso. El sistema de registro triple-se vira hacia el lado de babor a menudo, es decir, dos registros se pueden ser leídos, y un tercero escribir al mismo tiempo.

Un la unidad aritmética y de lógica realiza los cálculos, generalmente adición, negación lógica, un cambio correcto, y lógico Y. Realiza a menudo otras funciones, también.

Puede también haber un registro de dirección de memoria y los datos de la memoria colocan, usado para tener acceso a la memoria interna principal .

Junto, estos elementos forman un " Unidad de ejecución . " La mayoría de las CPU modernas tienen varias unidades de ejecución. Incluso las computadoras simples tienen generalmente una unidad para leer y para escribir memoria, y otra para ejecutar código del usuario.

Estos elementos se podían comprar a menudo juntos como sola viruta. Esta viruta vino en una anchura fija que formaría una “rebanada” a través de la unidad de ejecución. Éstos eran conocidos como “ virutas de la rebanada pedacito ”. La familia AMD Am2900 es uno de los ejemplos más conocidos de los elementos de la rebanada de pedacito.

Las partes de las unidades de ejecución, y las unidades de ejecución ellos mismos son interconectadas por un paquete de alambres llamados un autobús .

Los programadores desarrollan microprogramas. Las herramientas básicas son software: Un Microassembler permite que un programador defina la tabla de pedacitos simbólicamente. Un programa del simulador ejecuta los pedacitos in the same way as la electrónica (esperanzadamente), y permite que mucho más libertad elimine errores del microprograma.

Después de que se concluya, y se pruebe extensivamente el microprograma, se utiliza a veces como la entrada a un programa de computadora que construya lógica para presentar los mismos datos. Este programa es similar a ésos usados para optimizar un arsenal de lógica programable . Ningún programa de computadora sabido puede producir lógica óptima, pero incluso la lógica bastante buena puede reducir sumamente el número de transistores del número requerido para un almacén de control de la ROM. Esto reduce el coste y la energía usados por una CPU.

El microcódigo se puede caracterizar como el horizontal o vertical. Esto se refiere sobre todo a si cada microinstrucción controla directo los elementos de la CPU (microcódigo horizontal), o requiere descifrar subsecuente por la lógica combinacional antes de hacer tan (microcódigo vertical). Por lo tanto cada microinstrucción horizontal es más ancha (contiene más pedacitos) y ocupa más espacio de almacenaje que una microinstrucción vertical.

Microcódigo horizontal

El microcódigo horizontal se contiene típicamente en un almacén de control bastante ancho, no es infrecuente que cada palabra sea 56 pedacitos o más. En cada señal de un reloj del secuenciador una palabra del microcódigo se lee, se descifra, y se utiliza para controlar los elementos funcionales que componen la CPU.

En una puesta en práctica típica una palabra del microprograma horizontal abarca a grupos bastante firmemente definidos de pedacitos. Por ejemplo, un arreglo simple pudo ser:

Microcódigo vertical

En microcódigo vertical, se codifica cada microinstrucción -- es decir, los campos del pedacito pueden pasar con la lógica combinatoria intermedia que alternadamente genera las señales de control reales para los elementos internos de la CPU (ALU, registros, etc. En cambio, con microcódigo horizontal el pedacito se coloca produce directo las señales de control. El microcódigo por lo tanto vertical requiere longitudes de instrucción más pequeñas y menos almacenaje, pero requiere más hora de descifrar, dando por resultado un reloj más lento de la CPU.

Algunos microcódigos verticales son apenas los de lenguaje de ensamblaje de una computadora convencional simple que esté emulando a una computadora más compleja. Esta técnica era popular en la época PDP-8 . Otra forma de microcódigo vertical tiene dos campos:

Almacenes de control escribibles

Algunas computadoras fueron construidas usar " microcode" escribible; -- algo que almacenando el microcódigo en la ROM o la lógica hard-wired, el microcódigo fue almacenado en un RAM llamado un almacén de control escribible del o el WCS . Muchas de estas máquinas eran prototipos de laboratorio experimentales, pero había también las máquinas comerciales que utilizaron microcódigo escribible, tal como sitios de trabajo tempranos de Xerox, el VAX 8800 (" de la DEC ; Nautilus") familia, el Symbolics l y G-máquinas, y un número de puestas en práctica de Sistema/370 de IBM . Muchas más máquinas ofrecieron almacenes de control writeable usuario-programables como opción ( incluyendo 2100 del HP y los miniordenadores PDP-11/60 de la DEC. WCS ofreció varias ventajas incluyendo la facilidad de remendar el microprograma y, para ciertas generaciones del hardware, el acceso más rápido que las ROM podrían proporcionar. WCS Usuario-programable permitió que el usuario optimizara la máquina para los propósitos específicos.

Una CPU que utiliza microcódigo toma generalmente varios ciclos de reloj para ejecutar una sola instrucción, un ciclo de reloj para cada paso en el microprograma para esa instrucción. Algunos procesadores del CISC incluyen las instrucciones que pueden tardar un tiempo muy largo para ejecutar. Tales variaciones interfieren con el estado latente de la interrupción y, cuál es lejos más importante en sistemas modernos, la can¢ería .

Microcódigo contra VLIW y el RISC

La tendencia del diseño hacia procesadores pesadamente microcodificados con instrucciones complejas comenzó en el principios de los 60 y continuó hasta áspero los a mediados de los años ochenta. En ese punto la filosofía de diseño del RISC comenzó a llegar a ser más prominente. Esto incluyó los puntos:
Las instrucciones complejas de las demostraciones del análisis del

se utilizan raramente, por lo tanto los recursos de la máquina dedicados a ellas se pierden en gran parte.
La programación se ha movido en gran parte lejos de nivel de la asamblea, así que es no más de mérito proporcionar las instrucciones complejas por razones de la productividad.
Los recursos de la máquina dedicados a las instrucciones complejas raro-usadas se utilizan mejor para apresurar el funcionamiento de instrucciones más simples, de uso general.
Las instrucciones microcodificadas complejas que requieren muchos, los ciclos de reloj diversos son difíciles de canalizar para el funcionamiento creciente.
Sistemas de instrucción más simples permiten la ejecución directa por el hardware, evitando la pena del funcionamiento de la ejecución microcodificada.

debe ser mencionado que hay los counter-points también :
Las instrucciones complejas en puestas en práctica pesadamente microcodificadas pueden no tomar recursos mucho adicionales de la máquina (excepto espacio del microcódigo); por ejemplo, el mismo ALU es de uso frecuente calcular un direccionamiento efectivo tan bien como computando el resultado de los operandos reales.
Las instrucciones No-RISC, es decir implicando los operandos directos de la memoria son utilizados con frecuencia por los recopiladores modernos, incluso inmediatos de apilar (es decir resultado de la memoria) operaciones aritméticas se emplean comúnmente. Aunque tales operaciones de memoria, a menudo con las codificaciones diversas de la longitud (es decir el " CISC" las características), son más difíciles de canalizar, él siguen siendo completamente factibles, ejemplificado claramente por el Intel 486, el Cyrix 6x86, el etc.
Las instrucciones No-RISC intrínsecamente realizan más trabajo por la instrucción (en promedio), y también se codifican normalmente alto, por lo tanto proporcionan una mejores densidad del código y así mejor uso de los memorias ocult0es limitados.
" moderno; CISC" puestas en práctica, especialmente el X86, instrumento la mayoría de las instrucciones y todo el " de los modos de dirección; en hardware" ; el microcódigo todavía se utiliza sin embargo, para algún realmente complejo, o mismo el special, instrucciones (tales como CPUID ), así como para " interno; housekeeping".

Mucho diseñan a los procesadores RISC y VLIW para ejecutar cada instrucción (mientras está en el escondrijo) en un solo ciclo. Esto es muy similar a la manera que las CPU con microcódigo ejecutan una microinstrucción por ciclo. Los procesadores VLIW tienen instrucciones que se comporten como microcódigo horizontal muy amplio, aunque las instrucciones de VLIW no tengan típicamente como control de grano fino sobre el hardware como microcódigo. Los procesadores del RISC pueden tener instrucciones que parezcan microcódigo vertical estrecho.

Ver también

Soportes lógico inalterable
Unidad de control
Autómata finito
Microsequencer
Microassembler
Almacén de control
Unidad de ejecución
Unidad de la lógica aritmética
Unidad de la coma flotante
Tubería de la instrucción
Superscalar
Microarchitecture
Diseño de la CPU

.

  • Zenithic
  • Legislative district of Baguio City
    Random links:Værløse | Toro europeo común | Shizuka Arakawa | Steve Abbott | Letňany

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">