ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES(1)

Tema 6: Diseño del procesador
 
     La unidad central de proceso (CPU) es un elemento esencial de cualquier computador ya que tiene como misión ejecutar las instrucciones de un programa. Las instrucciones se procesan de forma secuencial, leyéndose de posiciones consecutivas de memoria (tras ejecutar la instrucción que se encuentra en la dirección x se ejecuta la instrucción que está en la dirección x+1 y así sucesivamente). Este esquema que se conoce como secuenciamiento implícito sólo puede ser modificado mediante instrucciones de bifurcación o salto. En este tipo de instrucciones se debe especificar la dirección de la siguiente instrucción que se va a ejecutar o un mecanismo para calcularla.
 
     En este tema se estudia la unidad de control de un computador realizada con lógica cableada (se construye con puertas lógicas y su concepción obedece a las técnicas clásicas de diseño de circuitos secuenciales). En primer lugar se analiza el repertorio de instrucciones de los procesadores y se procede a una clasificación de los mismos según el número de direcciones que contenga el formato de sus instrucciones. Se describen los modos de direccionamiento de un computador que permiten calcular de forma no ambigua la dirección real o efectiva donde se encuentran los operandos de la instrucción y dónde hay que almacenar el resultado que produce.
 
     Se analiza de forma detallada el ciclo de ejecución de una instrucción. La ejecución de una instrucción siempre conlleva realizar la misma secuencia de pasos independientemente del repertorio de instrucciones específicas que posea el procesador y de los campos y modos de direccionamiento que se hayan definido. De forma genérica, el ciclo de ejecución de una instrucción se puede subdividir en cuatro fases: 1) Fase de búsqueda de la instrucción, 2) Fase de decodificación de la instrucción, 3) Fase de búsqueda de los operandos y 4) Fase de ejecución de la instrucción.
 
     Se presentan también las etapas que son necesarias para realizar de una forma sistemática el diseño de un procesador genérico con lógica cableada. Finalmente en la última sección del tema se procede a realizar el diseño de SIMPLE 1 que es un procesador elemental y académico que permite mostrar de forma sencilla los conceptos que se han ido introduciendo. El problema se especifica dando las características estructurales de SIMPLE1, un procesador ficticio extraordinariamente simplificado, cuya única finalidad es mostrar paso a paso su diseño con lógica cableada.
 
     Tema 7: Microprogramación
 
     La microprogramación se puede considerar, según la idea original expuesta por el prof. M.V. Wilkes de la Universidad de Cambridge en 1950, como un método sistemático para diseñar la unidad de control de cualquier sistema digital. sin embargo esta primera concepción de la microprogramación como un procedimiento diferente al tradicionalmente utilizado para el diseño de la uniadd de control con lógica cableada, ha evolucionado llegando a convertirse en una alternativa no sólo de diseño sino de realización.
 
     En la década de los 50 el concepto de la microprogramación sólo generó un relativo interés desde el punto de vista teórico. El principal motivo para este hecho estuvo en el alto coste que suponía su realización debido a la limitada tecnología de las memorias disponibles. En la mitad de la década de los 60 se produce un hecho fundamental para el desarrollo de la microprogramación, cuando el fabricante de computadores IBM la utiliza en la mayor parte de sus modelos de la serie 360, para el diseño de la unidad de control.
 
     En este tema se presentan los fundamentos de la microprogramación. En primer lugar se introduce el modelo original propuesto por M. Wilkes. A continuación se presentan las diferentes alternativas que se han propuesto para el diseño de una unidad de control microprogramada. El tema finaliza con dos ejemplos de diseño de unidad de control microprogramada: el multiplicador binario analizado en el tema 5 y SIMPLE2 que es un sencillo computador que dispone de una unidad de control microprogramable (ucÑUP).
 
Apéndice A: Componentes combinacionales
 
     Un circuito combinacional es un circuito lógico cuyos valores de salida están determinados en cualquier instante de tiempo únicamente por los valores aplicados a sus entradas, y por tanto son independientes de los estados anteriores de las mismas. Los circuitos combinacionales no nos permiten pues almacenar el estado de las entradas y utilizarlas posteriormente para tomar decisiones, es decir, son circuitos que no tienen memoria.
 
     La caraterística principal de un circuito combinacional es la función lógica que realiza. Esta función lógica describe el comportamiento del circuito pero no tiene por qué describir su estructura interna, por lo que es posible que existan diferentes circuitos lógicos que realizan la misma función. Los circuitos combinacionales tienen dos usos principales en los sistemas digitales:
 
     a) Transferencia de datos. Controlan el flujo de señales lógicas de una parte del sistema a otra.
 
     b) Procesamiento de datos. Transforman los datos realizando los cálculos necesarios.
 
     En este apéndice se consideran los principales componentes combinacionales que se emplean en la descripción a nivel de registro de un sistema digital: puertas de palabras, codificadores, decodificadores, multiplexores, demultiplexores y dispositivos lógicos programables.
 
     Aunque algunos de estos componentes ya se han introducido en los propios temas se exponen de forma conjunta con la finalidad de hacer el texto lo más autocontenido posible. No se consideran los circuitos sumadores, multiplicadores, comparadores y unidades aritmético-lógicas ya que a su estudio exclusivo se dedicó el tema 4.
 
Apéndice B: Introducción a los circuitos secuenciales
 
     Los circuitos combinacionales no nos permiten por si mismos resolver el problema de almacenar el valor que tienen las entradas en un instante y utilizarlas posteriormente para tomar dicisiones cuando modifiquen sus valores.
 
     En un circuito combinacional el valor de sus salidas depende únicamente del valor que hay presente en sus entradas. Por el contrario en un circuito secuencial las salidas en un instante cualquiera t depende no sólo del valor actual de sus entradas sino también de sus valores previos. Así pues, un circuito secuencial debe recordar cierta información acerca de los valores pasados de sus entradas. Esta propiedad de una gran generalidad a este tipo de circuitos y permite generar respuestas mucho más interesantes y complejas que las que produce un circuito combinacional.
 
     La unidad de control de un computador es un ejemplo de un circuito secuencial sofisticado, pero también son circuitos secuenciales dispositivos más sencillos como una máquina de expedición automática de billetes de tren. En una máquina de este tipo se introducen secuencialmente los billetes o monedas y el resultado de la operación no depende sól de lo último que se ha insertado sino también de lo previo. Con este amplio abanico de sistemas es necesario disponer de diferentes métodos de análisis y diseño. Los circuitos secuenciales tienen dos usos principales en los computadores:
 
     a) Como elementos de memoria. Almacenan la información mientras está siendo procesada.
 
     b) Como circuitos de control. Generan las señales de control necesarias para seleccionar y habilitar una secuencia de pasos en la transferencia o en el procesamiento de datos.
 
     Ambos circuitos, combinacionales y secuenciales, operando conjuntamente proporcionan todas las funciones de almacenamiento, transferencia, procesamiento y control necesarias en un sistema digital como es el computador.
 
     En este apéndice, en primer lugar se formaliza la noción de máquina secuencial y se introducen las ideas básicas que permiten modelar comportamientos con esta naturaleza. El concepto fundamental es el de estado de una máquina secuencial, que es toda la información que se necesita en cualquier instante de tiempo para poder conocer, dada la entrada en ese momento, cual será el valor de la salida.
 
Metodología
 
Se ha tratado de cuidar de manera muy especial los aspectos específicos de la enseñanza a distancia. Los conceptos se introducen de forma progresiva, de manera que el estudiante pueda ir avanzando a su propio ritmo. La gran cantidad de figuras y tablas que contiene el texto (más de 600) tienen como objetivo facilitar su estudio sin la ayuda directa de un profesor.
 
     La estructuración de todos los temas es uniforme. Todos contienen, además de las secciones específicas de desarrollo del tema, una sección de introducción en la que se exponen los objetivos a cubrir, una sección final de conclusiones en la que se resumen los conceptos introducidos en el tema y una sección de problemas con diferentes grados de dificultad.
 
Agradecimientos
 
Los autores expresan su agradecimiento más sincero a sus compañeros en los Departamentos de Inofrmática y Automática e Inteligencia Artificial de la UNED en los que vienen desarrollando en los últimos años su actividad universitaria por su apoyo en todo momento.
 
     Muy particularmente este agradecimiento queremos personalizarlos en los profesores del Departamento de Informática y Automática, Roberto Hernández Berlinches, Juan Carlos Lázaro Obensa, Sebastián Dormido Canto y Raquel Dormido Canto por la lectura crítica y cuidadosa que han hecho de este texto. Sus sugerencias y atinados comentarios han contribuido a mejorar notablemente muchos de los conceptos expuestos. El diseño de la portada del texto ha sido realizada por Juan Carlos Lázaro Obensa.
 
     Han aportado muchas ideas al texto original los profesores Ángel Pérez de Madrid Pablo y Pablo Ruipérez García que imparten la asignatura de Estructura y Tecnología de Computadores II a los alumnos de la Escuela de Informática de la UNED. También deseamos expresar nuestro agradecimiento a los alumnos de la Escuela de Ingenería Técnica Informática de la UNED Oscar Goetsch, Carlos Maltese Girón y Manuel Montealegre Sáncehz que han desarrollado el simulador de la unidad de control microprogramable uc(ÑU)P del computador SIMPLE2 bajo la supervisión del profesor Angel Pérez de Madrid Pablo.
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s