2.24k likes | 4.14k Views
Arquitectura de Computadoras. ITCR SSC – I Semestre 2012. Redes. Sistemas Operativos. Sistemas Información. Soporte Técnico. Hardware. ¿Para qué estudiamos la Arquitectura de las computadoras?. Usuario.
E N D
Arquitectura de Computadoras ITCR SSC – I Semestre 2012
Redes Sistemas Operativos Sistemas Información Soporte Técnico Hardware ¿Para qué estudiamos la Arquitectura de las computadoras? Usuario Para comprender los problemas fundamentales en el diseño de computadoras, las alternativas y los mecanismos de solución a dichos problemas. Comprender los retos que enfrenta esta área es de primordial importancia para cualquiera que pretenda dedicarse profesionalmente a la ciencia de la computación o carreras afines.
¿Cuáles son los conocimientos que el estudiante debe tener al llegar al curso? Dominio básico del lenguaje ensamblador y de la arquitectura del procesador 8086 de Intel. • Dominio de los sistemas numéricos binario, octal, hexadecimal y decimal. • Conversiones. • Interpretación de números en cualquiera de estas bases. 1 2 • Dominio básico de algebra booleana: • Operaciones AND, OR, XOR, NOT. • Simplificación algebraica: teoremas de asociatividad, conmutatividad, distribución, DeMorgan. 3
¿Qué vamos a aprender en el curso? • ¿Circuitos Digitales? • Ensamblaje y Desensamblaje de Instrucciones Ensamblador • ¿Utilización de Ensamblador con Lenguajes de Alto Nivel? • Pipelining • Procesadores de Alto Rendimiento • ¿Benchmarking? • Conceptos sobre Arquitecturas CISC y RISC • Diseño de la Jerarquía de Memorias • Aplicaciones del lenguaje ensamblador
Organización vs. Arquitectura de Computadoras • Arquitectura • Se refiere a los atributos de un sistema que son visibles a un programador • Aquellos atributos que tienen un impacto directo en la ejecución lógica de un programa • La computadora vista desde el programador • ¿Qué instrucciones y datos es capaz de procesar? ¿A qué velocidad?
Organización vs. Arquitectura de Computadoras • Organización • Se refiere a las unidades funcionales y sus interconexiones, que dan lugar a especificaciones arquitectónicas. • Como por ejemplo el conjunto de instrucciones, el número de bits usados para representar varios tipos de datos, mecanismos de E/S y técnicas para direccionamiento de memoria. • Es transparente a el programador, este no se preocupa por estos temas, señales del bus de control, interfaces entre periféricos y computador, tecnología usada en memoria, cantidad de caches, otros
Organización vs. Arquitectura de Computadoras • Organización • En general los fabricantes de máquinas producen familias de pc con una misma arquitectura y a medida que pasa el tiempo salen nuevos modelos con la misma arquitectura, pero con una organización diferente, con lo cual logran una compatibilidad de software. • ¿Cómo está organizada por dentro para procesar esos datos según esas instrucciones?
Ley de Moore El número de transistores se doblara cada 18 meses (Gordon Moore, cofundador de Intel)
Lo que ve un Arquitecto de computadores • Modelo de Von Neumann
Lo que ve un Arquitecto de computadores • La gran mayoría de las computadores actuales se han diseñado basándose en los conceptos desarrollados por John von Neumann en el Instituto de Estudios Avanzados de Princeton:
Componentes del computador – Hardware Específico En este diagrama se ejemplifica como el computador realizaba una tarea fija con los datos, el sistema acepta datos y produce resultados
Componentes del computador - Hardware de uso general En este diagrama vemos ejemplificado que por medio de instrucciones al procesador, se podía hacer que el computador sea de uso general y realizar distintas tareas. El sistema acepta datos y señales de control y produce resultados
Componentes del computador - Hardware de uso general Como se puede apreciar, la memoria y los datos provienen de la misma memoria. La idea es la siguiente, se leía una instrucción, esta pasaba a la unidad de control, dicha unidad realizaba las conexiones correspondientes para que la ALU realizara una tarea determinada, entraban los datos a la ALU, esta realizaba las operaciones, y el resultado salía por algún dispositivo de E/S
Componentes del computador - Hardware de uso general CPU Interprete de instrucciones Funciones lógicas y aritméticas de uso general
Componentes del computador - Hardware de uso general Interprete de instrucciones y módulo de uso general para las funciones aritmético y lógicas
Componentes del computador - Hardware de uso general Además se requieren varios elementos adicionales para que el computador funcione. Ya que los datos y las instrucciones deben introducirse en el sistema, para eso se necesita algún tipo de modulo de entrada y también se necesita un medio para proporcionar resultados el modulo de salida. E/S Modulo
Componentes del computador - Hardware de uso general Se necesita un componente más, como sabemos un programa no siempre ejecuta las instrucciones según una misma secuencia, puede saltarse ciertas instrucciones. Por ello debe existir un sitio para almacenar temporalmente tanto las instrucciones como los datos. MEMORIA PRINCIPAL
Componentes del computador - Hardware de uso general • Como interactúan todos los componentes CPU Se encarga del control Intercambia datos con la memoria
Componentes del computador - Hardware de uso general • Como interactúan todos los componentes Para esto usualmente utilizan dos registros internos de la CPU CPU Registro de dirección de Memoria Especifica la dirección de memoria que será accedida. Registro temporal de memoria (buffer) contiene el valor a almacenar o la palabra recibida de memoria.
Componentes del computador - Hardware de uso general • Como interactúan todos los componentes Igualmente un registro de direcciones de E/S especifica un dispositivo de entrada y salida Registro de dirección E/S Especifica un dispositivo de E/S CPU Registro de datos E/S Se utiliza para intercambiar datos entre el módulo de E/S y la CPU
Componentes del computador - Hardware de uso general • Como interactúan todos los componentes Un módulo de E/S transfiere datos desde los dispositivos externos a la CPU y a la memoria. Contiene los registros (buffers) internos para almacenar los datos temporalmente, hasta que puedan enviarse
Funcionamiento del computador La función básica que realiza un computador es la ejecución de un programa, constituidos por un conjunto de instrucciones almacenados en memoria. El procesador es el que se encarga de ejecutar las instrucciones especificadas en el programa.
Funcionamiento del computadorCiclos de búsqueda y ejecución EJECUCIÓN DE UN PROGRAMA CONSTA DE DOS CICLOS CICLOS DE BÚSQUEDA El procesador lee la instrucción de la memoria CICLOS DE EJECUCIÓN El procesador ejecuta la instrucción La ejecución de un programa consiste en la repetición del proceso de búsqueda y ejecución de instrucción
Funcionamiento del computadorCiclos de búsqueda y ejecución • Búsqueda (también conocida como captación) • Preparación de la siguiente instrucción • Decodificación • Ejecución La ejecución del programa se detiene solo si la maquina se desconecta, se produce algún tipo de error irrecuperable o ejecuta una instrucción del programa que detiene al computador
Funcionamiento del computadorCiclos de búsqueda y ejecución Como se dijo anteriormente la CPU interpreta la instrucción y lleva a cabo la acción requerida. En general, esta puede ser de 4 tipos: • Procesador – Memoria : Transferencia de datos desde o hacia memoria. • Procesador – E/S: Transferencia de datos desde o hacia el exterior a través de un modulo de E/S. • Procesamiento de Datos: Alguna operación aritmética o lógica con los datos. • Control: Una instrucción puede especificar que la secuencia de ejecución se altere • Por ejemplo una instrucción de salto, que lo único que requiere es que se cambie el valor del registro PC Las instrucciones requieren una combinación de algunas.
Funcionamiento del computadorCiclos de búsqueda y ejecución Se utiliza PC para seguir la pista de la instrucción que debe captarse a continuación. A no ser que se indique lo contrario La CPU siempre incrementa 1 a PC después de cada instrucción , de forma que captará la siguiente instrucción de secuencia Al comienzo de cada ciclo de instrucción la CPU capta la instrucción de memoria
Funcionamiento del computadorCiclo de Instrucción 1. Recuperar la siguiente instrucción desde memoria (apuntada por el program counter) y luego incrementar el program counter. 2. Decodificar el patrón de bits en el registro de instrucción IR 3. Ejecutar la instrucción indicada en el registro de instrucción IR
Funcionamiento del computadorCiclo de ejecución UC obtiene la próxima instrucción de memoria (usando el registro PC) Se incrementa el PC La instrucción es decodificada a un lenguaje que entiende la ALU Obtiene de memoria los operandos requeridos por la operación La ALU ejecuta y deja los resultados en registros o en memoria Repetir paso 1
Funcionamiento del computadorCiclo de ejecución La unidad de control levanta la próxima instrucción de memoria usando el “contador de programa” que dice en que dirección esta la próxima instrucción.
Funcionamiento del computadorCiclo de ejecución La instrucción es decodificada a un lenguaje que entiende la ALU (unidad aritmética lógica).
Funcionamiento del computadorCiclo de ejecución Cada operando requerido para ejecutar es levantado de la memoria principal y ubicado en registros dentro de la CPU.
Funcionamiento del computadorCiclo de ejecución La ALU ejecuta la instrucción y coloca los resultados en registros o en memoria.
Funcionamiento del computadorCiclo de ejecución ¿CUALES ERAN LOS TIPOS DE OPERACIONES? Procesador-memoria Transferencia de datos entre la CPU y la memoria Procesador-E/S Transferencia de datos entre la CPU y un modulo de E/S Procesamiento de datos Alguna operación aritmética o lógica sobre los datos Control Alteración de la secuencia de operaciones Ej.: jump
Funcionamiento del computadorCiclos de búsqueda y ejecución OPERACIONES ELEMENTALES SOBRE LA MEMORIA LEER EL CONTENIDO DE LA MEMORIA Decidir que celda se va leer (dar la dirección). Esperar a que se complete la operación de copia del dato. Recoger el dato y dar por terminada la operación. ESCRITURA Proporcionar el dato que se desea guardar. Proporcionar la dirección de la celda en donde sería guardado el dato. Esperar un tiempo fijo para que se haga el almacenamiento.
Funcionamiento del computadorCiclos de búsqueda y ejecución NECESIDAD DE LA CODIFICACIÓN • Un problema radica en cómo almacenar las instrucciones en la memoria. • Como en las celdas de memoria sólo caben números, entonces había que traducir las instrucciones a números para poder almacenarlas, que es el concepto de codificación. • Para codificar las instrucciones se debe considerar cuantas y cuales son las instrucciones disponibles y que esquema de codificación se emplearía. • La cantidad depende básicamente de la capacidad de la unidad de control del procesador central para hacer operaciones; a mayor complejidad –y costo–, mayor sería el número de instrucciones diferentes que podría efectuar. Se debe encontrar un código adecuado para que a cada instrucción le corresponda uno, y sólo un, valor numérico. Se usa una especie de diccionario electrónico.
Funcionamiento del computadorCiclos de búsqueda y ejecución LA UNIDAD DE CONTROL Su función principal es dirigir la secuencia de pasos de modo que la computadora lleve a cabo un ciclo completo de ejecución de una instrucción, y hacer esto con todas las instrucciones de que conste el programa. Los pasos son: Ir a la memoria y extraer el código de la siguiente instrucción (que estaría en la siguiente celda de memoria por leer). Decodificar la instrucción recién leída (determinar de qué instrucción se trata. Ejecutar la instrucción. Prepararse para leer la siguiente instrucción, y volver al primer paso para continuar. La unidad de control ejecutaría varias veces este ciclo de cuatro ”instrucciones alambradas”.
Funcionamiento del computadorCiclos de búsqueda y ejecución • CPU con un solo Acumulador (A), 16 bits • Memoria de 16 bits por posición • Suma (940) + (941) en (941) • Lenguaje simbólico Binario movA, (940) 1940 (H) add A, (941) 5941 (H) mov (941), A 2941 (H)
Funcionamiento del computadorCiclos de búsqueda y ejecución Memoria Registros del CPU
Funcionamiento del computadorCiclos de búsqueda y ejecución Memoria Registros del CPU
Funcionamiento del computadorCiclos de búsqueda y ejecución Memoria Especifica la dirección del dato que se va a cargar 940 contiene el dato 0003
Funcionamiento del computadorCiclos de búsqueda y ejecución La instrucción captada se almacena en un registro de la CPU conocido como Registro de instrucción IR El contador del PC se ubica en la primera instrucción (300) La instrucción que es un valor hexadecimal (1940) se carga en el registro de instrucción Memoria Registros del CPU
Funcionamiento del computadorCiclos de búsqueda y ejecución La CPU interpreta la instrucción y lleva a cabo la acción requerida Memoria Registros del CPU
Funcionamiento del computadorCiclos de búsqueda y ejecución El registro PC se incrementa, y se capta la siguiente instrucción (5941) desde la dirección 301 Memoria Registros del CPU
Funcionamiento del computadorCiclos de búsqueda y ejecución El contenido de AC y el de la posición de memoria 941 se suman y el resultado se almacena en AC Memoria Registros del CPU 3 + 2 = 5