Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Aquitectura de Computadores I (2007/2008) Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina o ensamblador. Juego de instrucciones de máquina: Conjunto de instrucciones,, mecanismos de E/S, técnicas de direccionamiento de memoria. Ej. ¿Hay alguna instrucción de multiplicación? Tipos y formatos de los operandos: número de bits para representación de datos Mapas de memoria: depende de la arquitectura se pueden tener mas de un mapa de memoria. Von Neumann un solo mapa mientras que la arquitectura Harvard utiliza dos mapas, uno para datos y otro para instrucciones. Secuencia de ejecución: como se van seleccionando las instrucciones para ser ejecutadas. Resgistro contador de programa (PC) Diseñar de forma que se maximice el desempeño al tiempo que se cumplan las restricciones de costo y consumo Arquitectura del conjunto de instrucciones Conjunto de instrucciones visibles al programador El conjunto de instrucciones sirve de frontera entre SW y HW Ejemplos de ISAs (Instruction Set Architectures) Digital Alpha (v1, v3) HP PA-RISC (v1.1, v2.0) Sun Sparc (v8, v9) SGI MIPS (MIPS I, II, III, IV, V) Intel (8086,80286,80386, 80486,Pentium, MMX Aquitectura de Computadores I (2007/2008) Organización Se refiere a las unidades funcionales y sus interconexiones, que dan lugar a especificaciones arquitectónicas. Incluye aspectos de hardware transparentes al programador: Diseño de CPU Señales de control Tecnología de la memoria Estructura del bus Ej. ¿Existe alguna unidad hardware para realizar la multiplicación o se hace con sumas repetidas? Aquitectura de Computadores I (2007/2008) Arquitectura y Organización Toda la familia Intel x86 tienen la misma arquitectura básica. La familia IBM sistema /370 tienen la misma arquitectura básica. Esto provee compatibilidad de código – Al menos con sus versiones anteriores. La organización difiere entre versiones diferentes. Aquitectura de Computadores I (2007/2008) Funciones del computador Un computador es una máquina capaz de interpretar y ejecutar instrucciones de forma sencilla y rápida. Las funciones de la computadora son: Procesamiento de datos. Almacenamiento de datos. Movimiento de datos. Control. Aquitectura de Computadores I (2007/2008) Estructura del computador Es la forma en como se relacionan unos componentes con otros. Principales componentes hardware: Aquitectura de Computadores I (2007/2008) Unidad Central de Proceso (CPU) Controla el funcionamiento del computador y lleva a cabo sus funciones de procesamiento de datos (procesador). Aquitectura de Computadores I (2007/2008) Unidad Central de Proceso (CPU) Unidad de control (U.C.): Interpreta y controla la ejecución de instrucciones. Genera las señales adecuadas para que el procesador ejecute las instrucciones de forma correcta. Unidad aritmético-lógica (ALU): realiza las operaciones aritméticas y lógicas necesarias en la ejecución de un programa (procesamiento de datos).Modos de ejecución: Registro-Registro ADD .R1, .R2 ⇒ R1+R2 → R1 Registro-Memoria ADD .R1, /1000 ⇒ R1+M(1000) → R1 Memoria-Memoria ADD /1000, /1004 ⇒ M(1000)+M(1004) → M(1000) Registros: Proporcionan almacenamiento interno a la CPU: De propósito general: Banco de Resgistros (BR). Almacenan datos y resultados con los que trabaja la ALU De propósito específico: Contador de programa (PC) , registro de instrucción (IR), registro de datos (MDR), registro de dirección (MAR), registro de estado (SR), Acumulador. Interconexiones CPU: proporcionan comunicación entre la U.C., la ALU y registros. Aquitectura de Computadores I (2007/2008) Memoria principal Memoria: bloque fundamental del computador cuya misión consiste en almacenar los datos y las instrucciones de los programas en ejecución. Hay 2 tipos: ROM y RAM. Lleva asociados 2 registros: AR y DR. Señales de control: Operación de lectura CM: inicia ciclo de memoria. R: lectura. W: escritura. Activa CM. Activa R. AR almacena la dirección a la que se quiere acceder. DR obtiene la salida de la memoria. Operación de escritura Activa CM. Activa W. DR almacena los datos. AR carga la dirección de memoria principal donde escribir. Aquitectura de Computadores I (2007/2008) E/S y Buses Unidad de E/S: se encarga de realizar la conexión y adaptación de la CPU con los dispositivos periféricos a través de los controladores. De entrada: teclado… De salida: impresora… De entrada-salida: modem, discos… Mecanismos de E/S E/S programada: la CPU está infrautilizada; (por lotes) ya que se ejecuta una instrucción específica. E/S por interrupción: multiprogramación E/S por DMA (acceso directo a memoria): el controlador del periférico es el encargado de establecer comunicación con la memoria principal sin necesidad de la CPU. Buses: Bus de datos: Proporciona un camino para transmitir datos entre la CPU y la memoria o E/S Bus de direcciones: Se utiliza para enviar la dirección de memoria o la del registro de E/S que se quiere leer o escribir Bus de control: Proporciona un camino por el que viajan señales de control y temporización. Aquitectura de Computadores I (2007/2008) Fases de ejecución de una instrucción Toda instrucción puede ser ejecutada en 5 ciclos de reloj, siguiendo estas etapas: IF: Fetch: búsqueda de la instrucción ID: Decodificación (UC) EX: Realización de la operación (ALU) MEM: Acceso a memoria WB: Escritura de resultados Aquitectura de Computadores I (2007/2008) Estructura del computador •CPU (Unidad Central de Proceso) •Registros generales: Almacenamiento interno de la CPU. •Registros especiales: •PC (Contador de Programa) •DR (registro de datos) •AR (registro de dirección) •IR (Registro de Instrucción) •SR (Registro de Estado) •ALU: Procesa datos •U.C.: Controla el funcionamiento de la CPU •Interconexiones CPU: Proporcionan comunicación entre la UC, la ALU y los registros. •Memoria: Almacena datos e instrucciones •Entrada / Salida: Transfiere datos entre el computador y el entorno externo •Sistema de interconexiones: Proporciona la comunicación entre la CPU, la memoria y la E/S Aquitectura de Computadores I (2007/2008)