U.N.J.U. – F.I. INGENIERÍA INFORMÁTICA LABORATORIO DE COMPUTADORAS ARQUITECTURA BÁSICA DE LAS COMPUTADORAS TEMA: ARQUITECTURA Y MICROPROGRAMACIÓN Conceptos Básicos Computadora Digital: implica que la información en la computadora se representa por variables que toman un número limitado de estados discretos. Ing. David Sánchez Rivero Pág. 2 Concepto de Arquitectura Arquitectura de la computadora: se ocupa de la estructura y el comportamiento de la computadora desde el punto de vista del usuario. Incluye los formatos de instrucción, el conjunto de instrucciones y las técnicas para el direccionamiento de la memoria. El diseño de la arquitectura de un sistema de computadora se ocupa de las especificaciones de varios módulos funcionales (por ejemplo Procesador y Memoria) y de estructurarlos conjuntamente en un sistema de computadora. Ing. David Sánchez Rivero Pág. 3 Ejecución de Instrucciones (Ciclo de Instrucción) 1. 2. 3. 4. 5. 6. 7. Extrae de la memoria la siguiente instrucción y la lleva al registro de instrucción. Cambia el contador de programa de modo que señale la siguiente instrucción. Determina el tipo de instrucción que acaba de extraer. Verifica si la instrucción requiere datos de la memoria y, si es así, determina dónde están situados. Extrae los datos, si los hay, y los carga en los registros internos de la CPU. Ejecuta la instrucción. Vuelve al paso 1 para comenzar la ejecución de la instrucción siguiente. Ing. David Sánchez Rivero Pág. 4 Organización y diseño básico de computadoras Código de instrucción: es un grupo de bits que instruye a la computadora sobre cómo ejecutar una operación específica. La parte básica de un código de instrucción es la parte de operación. El código de operación de una instrucción es un grupo de bits que define operaciones como sumar, restar, mover, etc. El Nº de bits requerido para el código de operación de una instrucción depende de la cantidad de operaciones disponibles en la computadora. El código de operación debe estar formado por al menos n bits para un conjunto dado de 2n (o menos) operaciones diferentes. A veces un código de operación se denomina macrooperación porque especifica un grupo de microoperaciones. Ing. David Sánchez Rivero Pág. 5 Organización de un programa almacenado La manera más simple de organizar una computadora es tener un registro de procesador (Acc) y un formato de código de instrucción con dos partes: la 1º especifica la operación que se va a ejecutar y la 2º especifica una dirección. La dirección de memoria le dice al control dónde encontrar un operando en la memoria. Este operando se lee en la memoria y se utiliza como el dato que se va a operar o junto con el dato almacenado en el Acc. La ejecución de un código de instrucción no siempre requiere de un operando de memoria. Ing. David Sánchez Rivero Pág. 6 Concepto de Controlador Los controladores son sistemas secuenciales que suministran niveles lógicos apropiados en los tiempos apropiados para controlar una secuencia de operaciones lógicas sencillas que, en conjunto, realizan una operación compleja. Ing. David Sánchez Rivero Pág. 7 Ejemplo: diseño de un controlador para transferencia de registros Explicación: a) La puesta a 1 lógico, brevemente, del terminal de control “Mover A, B” transmite el contenido del registro A al B. b) Se añade un reloj para sincronizar la operación. Ing. David Sánchez Rivero Pág. 8 Arquitectura Sencilla Ing. David Sánchez Rivero Pág. 9 Glosario PC: registro contador de programa, contiene la dirección de la próxima instrucción a ejecutarse. MAR: registro de direcciones de memoria, contiene una dirección de memoria que puede ser la de una instrucción o la de un dato. RAM: memoria de lectura/escritura. RI: registro de instrucción, contiene, básicamente el código de operación de la instrucción a ejecutarse y otro tipo de información. ALU: unidad aritmética/lógica. Acc: registro acumulador, es un registro de propósito general. Controlador: circuito que controla la ejecución de las microoperaciones en el orden correcto, en el momento adecuado. Ing. David Sánchez Rivero Pág. 10 Ejemplo del contenido de la memoria Ing. David Sánchez Rivero Pág. 11 Ciclo de Búsqueda Explicación: 1- Transfiere el contenido del contador de programa al registro de direcciones de memoria. 2- Transfiere la instrucción direccionada al registro de instrucción mediante: a) habilitación de la memoria al conectarla al bus; b) poniendo a R/W! a 1 al leer memoria, y c) transfiriendo la palabra del bus al registro de instrucción, incrementando el contador de programa preparándolo para llamar a la siguiente instrucción cuando se haya completado la respuesta a la primera instrucción. Ing. David Sánchez Rivero Pág. 12 Ciclo de Ejecución Operación: sustracción (por complementación) Explicación: 3- Transfiere la parte dirección del registro RI al registro de direcciones de memoria. 4- Transfiere la palabra direccionada de memoria al bus y de ahí al registro CI. 5- Complementa CI. 6- Incrementa CI. 7- Salida del registro sumador al registro acumulador. Ing. David Sánchez Rivero Pág. 13 Arquitectura Básica Ing. David Sánchez Rivero Pág. 14 Componentes y Operaciones del Sistema Ing. David Sánchez Rivero Pág. 15 Componentes y Operaciones del Sistema Ing. David Sánchez Rivero Pág. 16 Ciclo de Búsqueda Ciclo de reloj Microoperación 1 PC MAR Transmitir la posición de la instrucción desde el PC al MAR. 2 M GPR Transmitir la palabra direccionada al GPR. Incrementar el PC. PC + 1 PC 3 Ing. David Sánchez Rivero GPR(OP) OPR Explicación Transmitir la parte operación de la instrucción al OPR. Pág. 17 Direccionamiento Directo e Indirecto Dirección de Memoria 00 Dirección de Memoria 00 01 01 02 03 02 ADD 3 7 03 ADD 3 7 04 Dirección de la Dirección del Operando Dirección de Operando 37 Operando 37 B6 Ing. David Sánchez Rivero X B 6 Operando Pág. 18 Ciclo de ejecución Operación: ADD, dirección (direccionamiento directo) Ciclo de reloj Microoperación 4 GPR(AD) MAR Transmitir la dirección del operando desde GPR(AD) a MAR. 5 M GPR Lee desde la memoria la palabra de la celda cuya dirección está en el MAR. 6 GPR + Acc Acc Suma el contenido del GPR al contenido del Acc, dejando la suma en el Acc. Ing. David Sánchez Rivero Explicación Pág. 19 Ciclo de ejecución Operación: ADD, dirección (direccionamiento indirecto) Ciclo de reloj Microoperación Explicación 4 GPR(AD) MAR Transmite la dirección desde GPR al MAR. 5 M GPR 6 GPR(AD) MAR 7 M GPR 8 GPR + Acc Acc Ing. David Sánchez Rivero Transmite el contenido de la celda de memoria direccionada al GPR (el GPR tendrá entonces la dirección del operando). Transmite la dirección del operando desde GPR(AD) al MAR. Transmite el operando direccionado al GPR. Suma el contenido del GPR al Acc. Pág. 20 Ciclo Fetch-Execute EJEMPLO: Escribir el microprograma del ciclo de ejecución de la siguiente instrucción: Mnemotécnico Direccionamiento Modo de Operación DEC Q Directo M’ <-- M - 8 Analizando a partir del instante en que termina la instrucción anterior, especificar en notación hexadecimal el contenido de cada registro usado en la arquitectura básica de una computadora después de cada ciclo de reloj hasta que se completa la ejecución de la instrucción. Suponer que: PC = 48h Acc = 021h Q = 18h Ing. David Sánchez Rivero Pág. 21 Sumario de Instrucciones Ing. David Sánchez Rivero Pág. 22 Microprogramación Ejemplo: ADD, dirección (Dir. Indirecto) Ing. David Sánchez Rivero Pág. 23 Bifurcación en Microprograma Ing. David Sánchez Rivero Pág. 24 Bifurcación Condicional Ing. David Sánchez Rivero Pág. 25 Controlador Microprogramado Ing. David Sánchez Rivero Pág. 26