Microprogramacion
Enviado por marlinabreu • 24 de Octubre de 2012 • 1.781 Palabras (8 Páginas) • 521 Visitas
Contenido
1.- Microprogramación
2.- Pipeline
3.- Introducción a la arquitectura de los microprocesadores
4.- Jerarquía y rendimiento de la memoria
5.- Sistemas RICS y CISC
1.- Microprogramación
La microprogramación (Maurice Wilkes) es un método de diseño de la lógica de un procesador central.
Vamos a transformar la CPU de la máquina elemental en una máquina microprogramada. Vamos a reemplazar la Unidad de Control (cableada) de la máquina elemental por una Unidad de Control microprogramada. El esquema general puede verse en la figura. La ejecución de cada macroinstrucción, como también el ciclo de búsqueda, son realizados por los microprogramas residentes en la micro-ROM. La dirección de la primera microinstrucción a ejecutar, es proporcionada por el código de operación de la macroinstrucción, es decir será alguna de las 16 primeras posiciones. Cada microinstrucción está compuesta de 45 bits, divididos en seis campos:
Acción, Test, Envíe, Reciba, Falso, Éxito.
Esquema de la Maquina Elemental Microprogramada
Unidad de Control Microprograda
2.- Pipeline
Este procesamiento está basado en la idea que la Unidad de Control extrae una instrucción y la dirige a la unidades funcionales para su ejecución, mientras la Unidad de Control procede a extraer la próxima instrucción y la envía a las unidades funcionales. Así sucesivamente hasta que todas las unidades funcionales estén ocupadas. Esta estrategia general parte del hecho que el tiempo para extraer una instrucción es casi siempre mayor que el necesario para ejecutarla e implica diseñar la CPU con varias unidades de procesamiento
En la figura se presenta un ejemplo de Pipeline. Consiste en cinco procesadores dentro de la CPU dedicados a funciones específicas. En la TABLA se observa el proceso. En el primer ciclo se procede a buscar la instrucción 1, en el segundo ciclo se decodifica la instrucción 1 y se busca la instrucción 2, y así sucesivamente. La instrucción S, representa un salto, se observa que en el ciclo 4 no se procede a buscar la próxima instrucción ya que hasta no ejecutar la anterior, no se sabe cual es. Teniendo en cuenta que estadísticamente se verifica que las instrucciones de salto representan aproximadamente el 30 % del programa, el incremento de velocidad que podría lograrse con el pipeline (un factor de cinco en este caso) se ve reducido en el porcentaje indicado. Vale entonces la pena estudiar los tipos de saltos posibles a fin de disminuir el porcentaje.
Existen tres categorías de saltos:
• saltos incondicionales.
• saltos condicionales.
• saltos iterativos.
Una forma de disminuir el porcentaje (penalización por salto) es ejecutar la próxima instrucción sin considerar el posible salto. En este caso si el salto no se produce nada se ha perdido y se continua el proceso. Si el salto se produce, entonces deben eliminarse las instrucciones actualmente en línea y volver a comenzar. Se infiere que para que esta técnica sea posible, habrá que dotar al procesador de registros auxiliares que salven el contexto del sistema al momento del salto, de forma tal de restituirlos en el caso que el salto se produzca. Por otro lado esta técnica no es eficaz para el caso de los saltos incondicionales ya que estos se producen siempre.
Otra técnica utilizada es la predicción de la dirección del salto. Existen dos clases de predicciones: las estáticas (al momento de la compilación) y las dinámicas (al momento de la ejecución). En el primer caso el Compilador estima una dirección para cada una de las instrucciones de salto que genera. Por ejemplo, los saltos iterativos lo más probable es que el salto se produzca al inicio de la iteración, en los incondicionales siempre es posible estimar la dirección, en los condicionales es posible suponer una probabilidad de ocurrencia de la condición y en función de ella estimar la dirección más probable. En el segundo caso el microprograma construye una tabla de saltos y guarda en un registro el comportamiento de los mismos a fin de decidir cual es la dirección de la próxima instrucción mas probable; esto requiere agregar hardware. Con la utilización de estas técnicas se ha logrado reducir el porcentaje a un 10 %.
3.- Introducción a la arquitectura de los microprocesadores
Con la aparición de las computadoras personales (PC) y la reducción en el costo de las mismas, el microprocesador se convirtió en uno de los dispositivos electrónicos más importantes en la historia de la electrónica.
Básicamente, un microprocesador es un circuito electrónico de muy alta escala de integración, capaz de realizar una infinidad de tareas de forma repetitiva a velocidades muy altas. Esto se logra por medio de la lógica dictada por un conjunto de instrucciones que el microprocesador interpreta y ejecuta y que recibe el nombre de programa.
Desde su aparición en 1971 el microprocesador ha sufrido una gran cantidad de cambios, todos ellos hacia el lado de aumentar su capacidad y velocidad de procesamiento. Para poder utilizar todo el potencial que encierra un microprocesador, es necesario conocer y comprender su lenguaje natural, esto es: el lenguaje ensamblador. Importancia del lenguaje ensamblador
El lenguaje ensamblador es la forma más básica de programar un microprocesador para que éste sea capaz de realizar las tareas o los cálculos que se le requieran. El lenguaje ensamblador es conocido como un lenguaje de bajo nivel, esto significa que nos permite controlar el 100 % de las funciones de un microprocesador, así como los periféricos asociados a éste. A diferencia de los lenguajes de alto nivel, por ejemplo "Pascal", el lenguaje ensamblador no requiere de un compilador, esto es debido a que las instrucciones en lenguaje ensamblador son traducidas directamente a código binario y después son colocadas en memoria para que el microprocesador las tome directamente.
Aprender a programar
...