Vista de Alto Nivel del Funcionamiento del Computador Interconectividad Del capítulo 3 del libro “Organización y Arquitectura de Computadores” William Stallings Concepto de Programa Sistemas “cableados” son poco flexibles Hardware de propósito general puede realizar diferentes tareas con las señales de control apropiadas En vez de “re-cablear”, suministrar un nuevo conjunto de señales de control ¿Qué es un programa? Una secuencia de pasos En cada paso, se realiza una operación aritmética o lógica Para cada operación, se necesita un conjunto diferente de señales de control Unidad de control Para cada operación, se tiene un código único Ejemplo: ADD, MOVE Un módulo hardware “lee” el código y genera las señales de control apropiadas ¡Esto es un computador! Componentes Unidad de Control y Unidad AritméticoLógica constituyen la CPU Instrucciones y datos se tienen que introducir en el sistema y los resultados “salir” de él Entrada/Salida Se necesita almacenar las instrucciones y los datos Memoria Componentes Top Level View Ciclo de Instrucción Dos pasos: Captura (“Fetch”) Ejecución Ciclo de captura o búsqueda El Contador de Programa (Program Counter, PC) mantiene la dirección de la próxima instrucción que tiene que capturar El procesador “captura” la instrucción desde la posición de memoria a la que apunta el PC Se incrementa el PC A menos que se diga otra cosa (condiciones de salto) Se carga la instrucción en el Registro de Instrucción (Instruction Register, IR) El procesador “interpreta” la instrucción y realiza las acciones requeridas para su ejecución Ciclo de ejecución Procesador-memoria Transferencia de datos entre la CPU y la memoria Procesador-I/O Transferencia de datos entre la CPU y el módulo de I/O Procesado de datos Se realiza alguna operación aritmética o lógica sobre datos Control Se altera la secuencia de operaciones Ejemplo: salto Alguna combinación de las anteriores Ejemplo de ejecución de un programa Conectividad Todas las unidades deben estar conectadas Diferentes tipos de conexión para diferentes tipos de unidades Memoria Entrada/Salida CPU Módulos del Computador Conexionado de Memoria Recibe y envía “datos” Recibe “direcciones” (de localizaciones de datos) Recibe “señales de control” Read Write Conexionado I/O (I) Similar a la memoria (desde el punto de vista del procesador) Input Recibe “datos” desde el periférico Envía “datos” al procesador Output Recibe “datos” desde el procesador Envía “datos” al periférico Conexionado I/O (II) Recibe “señales de control” desde el procesador Envía “señales de control” a los periféricos Recibe “direcciones” desde el procesador Ejemplo: número de puerto para identificar al periférico Envía “señales de control” al procesador (interrupciones) Conexionado CPU Lee (recibe) “instrucciones” y “datos” Escribe (envía) “datos” de salida (después de procesados) Envía “señales de control” a las otras unidades Recibe (y actúa) “señales de control” (interrupciones) Buses Hay un determinado número de sistemas que se pueden interconectar Las estructuras de buses sencillas y múltiples son las más habituales Ejemplo: Bus de Control / Dirección / Datos ¿Qué es un Bus? Un camino de comunicación conectando dos o más dispositivos Las líneas de alimentación no se consideran buses Bus de datos Lleva “datos” Ojo, no hay diferencia entre “datos” e “instrucciones” a este nivel La “anchura” es clave para determinar las prestaciones del sistema 8, 16, 32, 64 bit Bus de direcciones Necesidad de identificar el origen y el destino de los datos Ejemplo: la CPU necesita leer una instrucción (datos) desde una determinada posición de memoria La anchura del bus determina la máxima capacidad de memoria del sistema Ejemplo: el 8080 tiene un bus de direcciones de 16 bits lo que significa un espacio de direcciones de 64k Bus de control Información de control y temporización Señales read/write de la memoria Interrupciones Señales de reloj Esquema de Interconexión Buses “físicos” ¿Cómo son los buses? Líneas paralelas en las placas de circuito impreso Cable plano Conectores paralelos en las placas madre Ejemplo: PCI En general, conjunto de hilos Arquitectura de Bus