Universidad Nacional Experimental de la Fuerza Armada Ncleo - Delta Amacuro. INFORME RESUMEN DISEO DEL COMPUTADOR Facilitador: Integrantes: C.I.: Ing. Emil Ramirez Jimnez, Edward 16.698.651 Jimnez, Joseidys 20.127.592 Tucupita, Octubre, 2014 Instrucciones de computador. Se denomina instruccin en informtica al conjunto de datos insertados en una secuencia estructurada o especfica que el procesador interpreta y ejecuta. es una especificacin que detalla las instrucciones que una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un diseo particular de una CPU. El trmino describe los aspectos del procesador generalmente visibles a un programador, incluyendo los tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y las interrupciones, entre otros aspectos. Los tipos de instruccin permitidos estn definidos y determinados dentro de cada plataforma en el conjunto de instrucciones (en ingls ISA, instruction set architecture), que tambin determina los registros de origen y destino de la CPU, y en ocasiones un dato inmediato (aquellos que son especificados explcitamente en la instruccin). Estas instrucciones del computador son las que determinan el funcionamiento de la CPU que las ejecuta. La CPU puede realizar una diversidad de funciones, que son el reflejo de la variedad de las instrucciones definidas para dicha CPU. El programador tiene un repertorio de instrucciones como medio para controlar la CPU. Instrucciones de transferencia de datos: en este tipo de instrucciones, se transfieren datos desde una localizacin a otra. Los pasos que se siguen para realizarlo son: 1. Determinacin de las direcciones de origen y destino de memoria. 2. Realizacin de la transformacin de la memoria real. 3. Comprobacin de la cach 4. Inicio del proceso de lectura/escritura en la memoria. Instrucciones aritmticas: pueden implicar transferencia de datos antes y/o despus. Realizan operaciones aritmticas de las que se encarga la ALU. Se pueden clasificar en de 1 operando (valor absoluto, negacin) y 2 operandos (suma, resta). Instrucciones lgicas: al igual que las aritmticas, la ALU se encarga de realizar estas operaciones, que en este caso son de tipo lgico. Instrucciones de conversin: similares a las aritmticas y lgicas. Pueden implicar lgica especial para realizar la conversin. Instrucciones de transferencia de control: actualizan el contador de progrmas (PC). Administran las llamadas/retornos a las subrutinas, el paso de parametro y el enlazado Instrucciones de E/S (entrada/salida): administran los comandos de entrada/salida. Si hay un mapa de memoria de entrada/salida, determina la direccin de este mapa. Las instrucciones de Entrada y Salida. Este grupo de instrucciones forma un caso especial dentro de las instrucciones privilegiadas, principalmente porque accesan a dispositivos que estn compartidos por ejemplo puertos y discos duros, por mencionar algunos dispositivos. Existen dos mtodos generales para manejar este tipo de instrucciones. Dependiendo del tipo de MMV que se implante es la estrategia que se sigue para manejar las instrucciones privilegiadas de entrada y salida. El primer mtodo consiste en dejar que se ejecuten las instrucciones y utilicen los dispositivos fsicos que requieran (esta opcin es muy adecuada para los MMV de tipo I). El segundo mtodo es simular su comportamiento con los recursos del sistema operativo anfitrin (esta tcnica la utilizan los dems tipos de MMV y CSIM). Para implantar la primera tcnica se requiere que el MMV corra en el mayor nivel de privilegio (que proporcione el procesador) y as ejecute las instrucciones privilegiadas.Para implantar la segunda tcnica, Rosenblum y Varadarajan [14] proponen atacar estas instrucciones planteando que un sistema operativo es, a final de cuentas, un programa con estradas y salidas (como se muestra en la figura 1.4). Figura 1.4: Interacciones de Entrada y Salida de un Sistema Operativo. Las fuentes de las entradas y salidas para un sistema operativo incluyen excepciones y traps que llegan desde el modo de usuario (como son llamados al sistema, fallas de pgina, errores matemticos, etc.), interrupciones y DMA de los dispositivos. Las salidas de un sistema operativo controlan el MMU, el contenido de la memoria de usuario, y la entrada y salida a los dispositivos. El hardware se puede simular utilizando servicios proporcionados por un sistema operativo de propsito general, aunque lo que se obtiene en la interfaz de hardware es diferente a lo que obtiene de un sistema operativo. Los sistemas operativos modernos proporcionan un nivel de funcionalidad capaz de emular los servicios del hardware con una velocidad aceptable. Para tener una simulacin completa de un ncleo, es necesario proporcionarle una comunicacin con los dispositivos de E/S simulados. Las formas en que un SO accesa a los dispositivos de E/S son: El SO utiliza instrucciones de carga y almacenamiento para transmitir y recibir comandos y datos de los dispositivos Los dispositivos utilizan el DMA para leer y escribir a la memoria especificada por una instruccin. Los dispositivos utilizan interrupciones para notificar al CPU condiciones interesantes. La primera tcnica se realiza usando instrucciones de carga y almacenamiento a direcciones de memoria que se marcan para que no se utilicen por el cach. Es posible implementar estas solicitudes de carga y almacenamiento marcando esta direcciones de memoria como invlidas. Entonces una seal atrapa las operaciones y se simula el flujo correcto de informacin con el simulador de E/S. El DMA se implanta permitiendo el acceso de los dispositivos simulados al archivo de memoria fsica del simulador. El dispositivo puede implantar las operaciones de lectura y escritura a DMA leyendo y escribiendo a este archivo. Las interrupciones se implantan haciendo que los dispositivos enven una seal al proceso que tiene al simulador del hardware en ejecucin. El simulador del hardware atrapa la seal y la convierte en una interrupcin, la cual se enva a los manejadores de interrupcin del Sistema Operativo. Las interrupciones y ciclo de instruccin. Cuando se utilizan interrupciones el procesador puede ejecutar instrucciones mientras una operacin de E/S esta en proceso, una interrupcin no es mas que la alteracin de la secuencia, cuando dicho tratamiento termina, la ejecucin concluye, para tratar alas interrupciones se agrega un ciclo de instruccin. En el ciclo de interrupcin se verifica si a ocurrido una interrupcin, por la presencia de una seal, si no hay interrupciones el procesador continua con el ciclo y trae la prxima instruccin del programa. Ciclo de instruccin. Tambin llamado ciclo de traer y ejecutar, es el periodo de tiempo durante el cual un ordenador lee y procesa, e l nombre del ciclo es usado comnmente, la instruccin debe ser trada de la memoria principal y luego ejecutada por la CPU esta puede tener ciclos diferentes: Traer la instruccin desde la memoria principal: la CPUpresenta el valor de la PC, trae la instruccin de la memoria principal, el valor de la MDRentonces es colocado en el registro instruccin actual un circuito que sostiene la instruccin de modo que puede ser descifrado y ejecutado. Decodificar la instruccin: interpreta y pone en prctica la instruccin. Registros que son crticos al ciclo ejecutar: mantiene la instruccin actual. La PC sostiene la direccin en la memoria de la siguiente instruccin. Traer archivos de la memoria principal: leer la direccin de la memoria traer requiere datos de la memoria principal para ser procesada. Ejecutar la instruccin: se descifran los datos que forman la instruccin, entonces pasa la informacin como una secuencia de seales que controla unidades de funcin de la CPU para realizar acciones requeridas por la instruccin como la lectura de valores de registros. Ciclo de ejecucin: los pasos 3 y 4 mencionados anteriormente forman parte de este ciclo. Diseo del registro del computador. En el diseo del computador encontramos algunos puntos muy importantes, los cuales se van a explicar brevemente, como lo son: Configuracin del Sistema: Esta configuracin supone que satisface la estructura del sistema final. Representa registros en bloques, excepto: * Unidad de memoria, El generador del reloj maestro y La lgica de control. En una situacin practica, el diseador comienza con una configuracin tentativa de un sistema y la modifica constantemente durante el proceso de diseo. El nombre de cada registro se escribe dentro del bloque, conjuntamente con la designacin simblica en parntesis. A continuacin se van a nombrar algunos registros para el computador: * Registro Acumulador (A), Registro Separador de Memoria (B), Contador de programa (PC), Flip-Flop de Extensin (E), Registro de instruccin (I), Registro Direccin de Memoria (MAR), Flip-Flop de bsqueda (F), Flip-Flop de Comienzo- Parada (S), Registro de Secuencia (G), Registro de Entrada (N) y el Registro de Salida (U). Instrucciones de Referencia de Memoria: El nmero de instrucciones disponibles en un computador y su eficiencia en resolver el problema entre manos, es una buena indicacin de lo bien que el diseador del sistema previ la aplicacin que se requera de la mquina. Las instrucciones se deben escoger con cuidado para imprimir las caractersticas suficientes del sistema con el fin de resolver un amplio rango de problemas de procesamiento de datos. Estas instrucciones se clasifican en: * And de A, Sumar a A (ADD), Almacenar en A (STORE), Incrementar y omitir en caso de cero (ISZ), Bifurcacin Incondicional (BUN), Bifurcar a la Subrutina (BSB), Instrucciones de referencia de registro y Instrucciones de entrada-salida. Sincronizacin de Tiempo y Control: Todas las operaciones del computador estn sincronizadas por un generador de tiempo maestro cuyos pulsos de reloj se aplican a todos los Flip-Flop del sistema. Estos pulsos ocurren una vez cada microsegundo. A su vez una operacin de lectura o escritura de memoria puede iniciarse con una de las variables de tiempo cuando sta se ponga de alta. La operacin de memoria se completar en el momento en que llegue el pulso siguiente de reloj. Ejecucin de Instrucciones: Una vez que se activa el interruptor de comienzo, la secuencia del computador sigue un patrn bsico. Una instruccin que est en el PC se lee de la memoria. Su parte de operacin se transfiere al registro I, el PC incrementa en 1 para prepararla para la direccin de la siguiente instruccin. Si la instruccin es del tipo referencia de memoria, podra ser necesario accesar de nuevo la memoria para leer el operando. Aqu encontramos 2 Ciclos como lo son: Ciclo de bsqueda (FETCH) y el Ciclo de Ejecucin. Y tambin 2 Instrucciones como lo son: Instrucciones de Referencia entre Registros: Estas instrucciones se reconocen en el terminal de salida del decodificador de operacin y son ejecutadas durante el tiempo del ciclo de bsqueda. Por conveniencia se define una nueva variable y se usa en todas las funciones de control de referencia entre registros. Instrucciones de entrada-salida: Estas nuevas instrucciones son reconocidas en el terminal de salida del decodificador de operacin y se ejecutan durante el ese mismo tiempo. A continuacin se define una nueva variable y se usa en todas las funciones de control de entrada-salida. Diseo del Registro del Computador: El diseo de un sistema digital sincrnico sigue un procedimiento prescrito. A partir del conocimiento de las necesidades del sistema se formula una red de control y se obtiene una lista de operaciones de transferencia entre registros del sistema. Algunas instalaciones utilizan tcnicas de automatizacin para el diseo de computador para traducir las proposiciones de trasferencia entre registros a un diagrama de circuitos compuesto de circuitos integrados. Aqu encontramos: Las Operaciones de Registros y el diseo del computador. Diseo del Control: La unidad de control del computador genera las variables de control para los registros y unidad de memoria. Hay 24 variables de control diferentes as como tambin 3 mtodos para el diseo de la lgica de control: Control con Componentes Alambrados: El registro de secuencia G en este caso es un contador y el decodificador de tiempo entrega cuatro estados de control para el sistema. Un segundo decodificador se usa para el cdigo de operacin almacenado en el registro I. A su vez el bloque de la red de lgica de control genera todas las funciones de control para el computador. Y la configuracin de la red de lgica completa el diseo del control con componentes alambrados. El Control PLA: Es similar al mtodo de registro de secuencia y decodificador, excepto que todos los circuitos de combinaciones se configuran dentro del PLA. Los dos decodificadores se incluyen dentro de la configuracin del PLA ya que ellos son circuitos de combinaciones. Es de inters aclarar que el nmero de salidas de control y el nmero total de terminales de entrada PLA son de 24. El Control del Microprograma: El control del microprograma no necesita los registros I, G y F. El cdigo de operacin est en B(OP) y al final del ciclo de bsqueda puede ser usado para especificar una direccin de macro operacin para la memoria de control sin necesidad de un registro I. Las variables de tiempo generadas en el registro de secuencia G pueden ser remplazadas por una secuencia de pulsos de reloj que leen microinstrucciones consecutivas de la memoria de control. La parte de secuencia de direccin del control del microprograma necesita solamente tres operaciones: 1. Incrementar el CAR para leer la siguiente microinstruccin en secuencia. 2. Borrar el CAR para iniciar el ciclo de bsqueda 3. Entregar la trasformacin de bits del B(OP) a una direccin externa del CAR Consola del Computador: Cualquier computador tiene un panel de control o consola con interruptores y lmparas para permitir comunicacin manual y visual entre el operador y el computador. Esta comunicacin es necesaria para comenzar la operacin del computador y para propsitos de mantenimiento. Las lmparas indican al operador la condicin de los registros del computador. Un conjunto de interruptores y sus funciones para la consola pueden incluir lo siguiente: 1. Diecisis interruptores de "palabra" para establecer manualmente los bits de una palabra. 2. Un interruptor de "comienzo" para preparar el Flip-Flop S. La seal de este interruptor borra el Flip-Flop F. 3. El interruptor de "parada" para borrar el Flip-Flop S. Para asegurar que se complete esta instruccin la seal que viene del interruptor se aplica conjuntamente con la funcin de Boole a una compuerta AND antes de que se aplique para el borrado de la compuerta S. 4. Un interruptor de "cargar direccin" para trasferir una direccin al registro PC. Cuando se activa este interruptor, el contenido de los 12 interruptores de "palabra" se trasfieren al PC. 5. Un interruptor de "depsito" para almacenar manualmente palabras en la memoria. Cuando se activa este interruptor, el contenido del PC se trasfiere al MAR y se inicia el ciclo de memoria. Despus de 1 us, el contenido de los 16 interruptores de "palabra" se trasfieren al registro B y se incrementa el PC en 1. 6. Un interruptor de "exposicin" para examinar el contenido de la palabra en la memoria. Cuando se activa este interruptor, el contenido del PC se trasfiere al MAR, se inicia un ciclo de memoria y se incrementa el PC en 1. El contenido de la palabra de memoria especificado por la direccin en el PC, est en el registro B y puede verse en las correspondientes lmparas indicadoras. Entonces, para asegurarse que el computador no est funcionando cuando la energa se aplica, el Flip-Flop S debe tener un crculo especial que lo forc a una posicin de borrado inmediatamente despus de aplicar energa a la mquina.