Arquitectura de computadoras
Introducción Qué es un computador? [Hamacher 96]:”Un computador es una máquina de cálculo electrónica de alta velocidad que acepta información digitalizada, la procesa atendiendo a una lista de instrucciones que almacena internamente, y produce la correspondiente información de salida”
Funciones Procesamiento de datos Almacenamiento de datos Transferencias de datos entre el computador y el exterior Control de las anteriores operaciones La excesiva generalidad de estas funciones se debe a que la especialización funcional de un computador ocurre cuando se programa y no cuando se diseña
Componentes estructurales Procesador : controla el funcionamiento del computador y procesa los datos Subsistema de memoria: almacena datos Subsistema de entrada/salida Subsistema de interconexión: transfiere datos entre el computador y el entorno externo : proporciona un medio de comunicación entre el procesador, la memoria y la E/S
Niveles de descripción de un computador
Modelo Von Neuman
Elementos de la CPU
Modelo de Máquinas Virtuales Problema: Comunicación Hombre-Máquina Necesito resolver un problema!
Modelo de Máquinas Virtuales Relación Jerárquica de la máquina física y las capas superiores abstractas Para simplificar la complejidad de ésta relación cada capa se apoya en la capa inferior. Los computadores pueden estructurarse como una serie de abstracciones (niveles o máquinas virtuales) Cada Máquina Virtual (MV) posee su propio “lenguaje de máquina”. Por lo general el lenguaje de máquina es muy difícil de usar por los programadores, ya que consiste en una serie de ceros y unos (números binarios), por lo cual surgió la necesidad de incluir un nuevo conjunto de instrucciones más fáciles de usar que el lenguaje de máquina, claro está que debe existir un proceso de traducción de las instrucciones de este nuevo lenguaje más fácil de usar, a instrucciones en lenguaje de máquina. Por ello se inventaron programas para traducir la notación simbólica a números binarios; el primero de estos programas se llamó ensamblador (assembler). El lenguaje ensamblador requiere que el programador escriba una línea por cada instrucción que seguirá la máquina, forzando al programador a pensar igual que la máquina.
Modelo de Máquinas Virtuales Cada lenguaje se basa en su predecesor El nivel más bajo es el más simple y el más alto el más complejo
Modelo de Máquinas Virtuales Procesamiento de las instrucciones En una MV, una instrucción en un lenguaje de nivel n se ejecuta mediante una sucesión de instrucciones correspondientes en el lenguaje del nivel inferior (n-1) Existen dos métodos: Traducción e Interpretación
Modelo de Máquinas Virtuales TRADUCCIÓN INTERPRETACIÓN Genera un nuevo código NO Genera un nuevo código El proceso se realiza una sola vez El proceso de se realiza en cada ejecución La ejecución es muy rápida La ejecución es más lenta Nivel bajo de portabilidad pero mayor flexibilidad Nivel alto de portabilidad pero menor flexibilidad Una vez realizada la compilación no es necesario el código fuente por lo que permite “ocultar” el código original El código fuente es necesario en cada ejecución y por ende no puede “ocultarse” Los errores sintácticos se detectan durante la compilación Los errores sintácticos se detectan durante la ejecución Un programa compilado puede comprometer la ejecución de los otros procesos Un programa interpretado normalmente puede ser interrumpido sin dificultad
Modelo de Máquinas Virtuales
Máquinas Virtuales Multinivel Organización Estructurada 15