Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Facultad de Ingeniería de Sistemas e Informática PRIMERA UNIDAD ARQUITECTURA BASICA DE LA COMPUTADORA Asignatura: Electrónica Digital Docente: Alejandro Reategui Pezo Semestre 2020 - II 1 I. Inicios de la Computadora Turing y Church sientan las bases teóricas de la computación • Máquina de Turing – Máquina teórica compuesta por una cinta y una cabeza que puede leer y grabar símbolos en ella. – Un conjunto finito de estados – Un programa “cableado” del tipo (condición, acción) Church: Lambda calculo – Resultado equivalente para probar computabilidad – Base de los lenguajes funcionales • e la a lla. Inicios de la computación Turing y Church sientan las bases teóricas d computación • Maquina de Turing – Máquina teórica compuesta por una cinta y un cabeza que puede leer y grabar símbolos en e Un conjunto finito de estados Un programa “cableado” del tipo (condición, acción) – – • Máquina universal de Turing – Máquina (teórica) capaz de simular el comportamiento de cualquier maquina (de Turing) a partir de un programa ingresado en la cinta 1.1. El Modelo de Von Neumann Antes: Programar era conectar cables… Hacer programas era mas una cuestión ingeniería electrónica. Cada vez que había que calcular algo distinto había que reconectar todo. Imaginen eso ! John 1903 – 1957 Matemático Von Neumann • • • Publicó y publicitó la idea de programa almacenado en memoria 1945: “Primer Borrador de un Reporte sobre la EDVAC” • von Neumann • Los datos y programas se almacenan misma memoria de lectura-escritura Los contenidos de esta memoria se direccionan indicando su posición sin importar su tipo Ejecución en secuencia (salvo que se lo contrario) Representación Binaria en una • • indique • 1.2. ESTRUCTURA BASICA DE UNA COMPUTADORA Tres Componentes Principales 1) La Unidad de Proceso Central (CPU): Unidad de Control, Unidad aritmético lógica (ALU), Registros 2) La Unidad de Memoria (UM): Almacena programas y datos 3) La Unidad de Entrada/Salida (UE/S) Dos Componentes Secundarios: 4) La Unidad de Buses (UB): Es un sistema de interconexión: - Conecta la memoria y unidad de control - Fuerza la alternación entre ciclos de lectura y ejecución 5) El Programa Almacenado en UM - Es común referenciar a los primeros cuatro elementos como HARDWARE y al quinto como SOFTWARE. Estructura (computadora) Nivel Superior interconexión periféricos Computador Unidad Central de Memoria Proceso Principal CPU Computador Sistema de Entrada Salida Líneas de comunicación Estructura - La CPU Computer Arithmetic and Login Unit Control Unit Internal CPU Interconnection Registers CPU I/O Memory System Bus CPU 10 Estructura – La Unidad de Control CPU Control Memory Control Unit Registers and Decoders Sequencing Login Control Unit ALU Registers Internal Bus Control Unit 11 1.2.1 Estructura de la CPU I/O Lógica CPU Computer Unidad Registros Aritmética y System CPU Bus Interconexión Memory Interna de la CPU Unidad de Control CPU Unidad de Control (UC) • • Controla todos los componentes Interpreta instrucciones – Decodifica y Ejecuta instrucciones. Transforma instrucciones en órdenes a otros componentes – Puede ser programada por hardware (cableada) y “microprogramada” (varias microinstrucciones por instrucción) Unidad Aritmético Lógica (ALU) • Realiza operaciones matemáticas y lógicas – – – Sumas, restas, multiplicaciones And, Or, Xor Corrimientos CPU Registros • Almacenan datos binarios, acceso rápido De tamaño fijo De propósito general (programas) o específicos (acumulador, program counter, puntero a memoria, etc.) • • DataPath • Red interna que comunica la UC con las otras unidades y registros Mueve datos entre los diferentes componentes Controlada por un reloj. • • 1.3. Estructura de una Máquina de Von Neumann 1.3.1. Ciclo de Instrucción 3. Ejecutar la instrucción indicada en el registro de instrucción IR 2. Decodificar el patrón de bits en el registro de instrucción IR 1. Recuperar la siguiente instrucción desde memoria (apuntada por el program counter) y luego incrementar el program counter. de n s os 1.3.2. Ciclo de Ejecución 1. UC obtiene la próxima instrucción memoria (usando el registro PC) Se incrementa el PC La instrucción es decodificada a u lenguaje que entiende la ALU Obtiene de memoria los operando requeridos por la operación La ALU ejecuta y deja los resultad en registros o en memoria Repetir paso 1 2. 3. 4. 5. 6. Ciclo de ejecución • La unidad de control obtiene la próxima instrucción de memoria usando el “contador de programa” (o RPI) que dice en que dirección esta la próxima instrucción. Ciclo de ejecución • La instrucción es decodificada a un lenguaje que entiende la ALU (unidad aritmética lógica). Ciclo de ejecución • Cada operando requerido para ejecutar es obtenido de la memoria principal y ubicado en registros dentro de la CPU. Ciclo de ejecución • La ALU ejecuta la instrucción y coloca los resultados en registros o en memoria. 1.3.3. 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 • • • 1.3.4. Computadora de Von Neumann/Turing: EL IAS Concepto de Programa Almacenado La memoria principal almacena los datos y los programas El ALU opera con datos binarios La unidad de control interpreta instrucciones desde la memoria y los ejecuta El equipamiento de entrada y salida opera mediante la unidad de control Princeton Institute for Advanced Studies IAS Completado 1952 23 1.3.4.1. Estructura de la Maquina Von Neumann 24 1.3.4.2. El IAS: Detalles del Formato de Instrucciones 1000 x 40 bits por palabra Número binario 2 x 20 bits de instrucciones 0 1 39 0 8 19 20 28 39 Instrucción de Izquierda Instrucción de Derecha Codop Codop Dirección Dirección 25 1.3.4.3. El IAS: Detalles de los Registros Juego de registros (almacena en CPU) - Registro de Memoria Buffer MBR - Registro de Dirección de Memoria MAR - Registro de Instrucciones IR - Registro de Instrucción Buffer IBR - Contador de Programa PC - Acumulador AC - Multiplicador Cociente MQ 1.3.4.4. Estructura de la IAS (UC) 1.3.4.5. El IAS: Detalles del Ciclo de Instrucción El IAS opera ejecutando repetidamente un Ciclo de Instrucción, como se puede ver en la siguiente figura, cada ciclo de instrucción consta de dos subciclos. Durante el ciclo de captación, el Codop de la siguiente instrucción es cargado en el IR, y la parte que contiene la dirección es almacenada en el MAR, esta instrucción puede ser captada desde el IBR, o puede ser obtenida de la memoria cargando una palabra en el MBR, y luego en IBR, IR y MAR. Una vez que el Codop esta en el IR, se lleva a cabo el ciclo de ejecución. Los circuitos de control interpretan el Codop y ejecutan la instrucción, enviando las señales de control adecuadas para provocar que los datos se transfieran o que la ALU realice una operación ructura MBR: Memory Buffer Register Contiene una palabra que debe ser almacenada en la memoria, o es usado para recibir una palabra procedente de la memoria. ructura MAR: MemoryAdress Register Especifica la dirección en memoria de la palabra que va a ser escrita o leída en MBR. ructura IR: Instruction Register Contiene los 8 bits del código de operación de la instrucción que se va a ejecutar. ructura IBR: Instruction Buffer Register Empleado para almacenar temporalmente la instrucción contenida en la parte derecha de una palabra en memoria. ructura PC: Program Counter Contiene la dirección de la próxima pareja de instrucciones que van a ser captadas de la memoria. ructura AC y MQ: Accumulator y Multiplier Quotient Se emplean para almacenar operandos y resultados de operaciones de la ALU temporalmente. Por ejemplo, el resultado de multiplicar dos números de 40 bits es un número de 80 bits; los 40 bits más significativos se almacenan en AC y los menos significativos se almacenan en MQ. 1.3.4.6. Registros en otras Arquitecturas 1.3.4.7. Modelo de von Neumann Bus del Sistema 1.3.4.8. Una Posible Configuración La IAS (Institute for Advance Study, Princeton University) 1.4. Buses • Una vía comunicación que conecta 2 más dispositivos En general “broadcast” (todos lo ven) En general agrupados – Varios canales en un grupo o • • – Ej: Data bus de 32 bits, son 32 canales de bit 1 1.4.1. Bus de Datos • Transfieren información • Su tamaño es un punto clave performance del sistema – 8, 16, 32, 64 bits en la 1.4.2. Bus de Direcciones • • Identifican la fuente o destino de un dato Ej: la CPU necesita leer una instrucción (dato) de una locación en memoria • Su tamaño máxima de – Ej: el Intel determina la capacidad memoria del sistema 8080 tiene 16 bit => 64k de espacio direccionable 1.4.3.- Bus de Control • Control y sincronización – Señal de lectura escritura a memoria – Señales del reloj – Solicitud de interrupción 1.5. Modelos no Von Neumann • Cuello de von Neumann – El procesador ejecuta una instrucción por vez… – Comunicación con Memoria y E/S empeoran la cosas.. • Mejoras: – Buses especializados – Interrupciones – Unidades de punto flotante – Caches, – Pipelines • Otro enfoque: apartarse de la arquitectura clásica de von Neumann. • Agregar procesadores es una posibilidad… Modelos no von Neumann • A finales de los 60’ los sistemas de computo “high-performance” fueron equipados con procesadores duales para mejorar su desempeño. • En los 70’ supercomputadoras con 32 procesadores. • En los 80’ con 1000 procesadores • En 1999, IBM anuncio su sistema “Blue Gene” que contiene aprox. 1 millón de procesadores. Modelos no Von Neumann • El procesamiento paralelo es una de las formas de mejorar el poder de cómputo. • Otras ideas más radicales: – Computadoras genéticas – Computadoras cuánticas – Sistemas Dataflow. 1.6. La jerarquía de niveles de una computadora • Una computadora es mucho más que chips. • Para que la computadora haga “algo” necesita software • Para escribir programas complejos se suele dividir el problema en módulos que resuelven problemas mas simples • En las computadoras – Varios niveles de máquinas “virtuales” Jerarquía de niveles virtual que abstrae a las “interpretan” sus inferior para implementarlas. circuitos terminan haciendo el • Cada capa es una máquina maquina del nivel inferior. • Las máquinas, en su nivel, instrucciones particulares, utilizando servicios de su capa • En última instancia los trabajo… Jerarquía de niveles • Level 6: Nivel Usuario – Ejecución de programas e interfaces de usuario. – Pensamos en terminos de la aplicación que se ejecuta • Level 5: Lenguajes de alto nivel – El nivel donde interactuamos cuando escribimos programas en Haskell, C, Java, etc. – Pensamos el algoritmos, TADs, etc. Jerarquía de niveles • Level 4: Nivel de Lenguaje Ensamblador – Lenguaje ensamblador, en general producido por compiladores, o escrito directamente por programadores. – Muy cercano a la arquitectura de la computadora. • Level 3: Nivel del software del Sistema – Controla la ejecución de los procesos del sistema. – Protege los recursos. – Brinda servicios para acceder a dispositivos de E/S – Muchas instrucciones en Assembler pasan este nivel sin modificación. Jerarquía de niveles • Level 2: Nivel del Lenguaje de máquina – También conocido como nivel ISA (Instruction Set Architecture). – Consiste en las instrucciones particulares para la arquitectura de la maquina. – Los programas escritos en lenguaje de maquina no necesitan compilación ni ensamblado. Jerarquía de niveles • Level 1: Nivel de Control – La unidad de control (UC) decodifica y ejecuta instrucciones y mueve datos a traves del sistema. – Puede ser microprogramada o “cableada”. • Un microprograma es un programa escrito en un lenguaje de bajo nivel que puede ser implementado enl hardware. • Las UC “cableadas” tienen hardware que ejecuta directamente las instrucciones en codigo de maquina Hardwired vs. Micro-programada Jerarquía de niveles • Level 0: Nivel de Lógica Digital – Aquí encontramos los circuitos digitales (chips). – Son básicamente compuertas y cables. – Implementan la lógica matemática de los niveles superiores. 1.7. Arquitectura Harvard La arquitectura Harvard se caracteriza porque existen, a diferencia de la von Neumann, dos unidades de memoria separadas: una para los datos y otra para las instrucciones Muchas veces se presenta la arquitectura Harvard como algo diferente de la arquitectura von Neumann. Sin embargo en el fondo no cambia la esencia de la von Neumann: siguen existiendo “programas” formados por una secuencia lógica de “instrucciones” las que son ejecutadas por una “CPU”. Actualmente muchos procesadores implementan una arquitectura Harvard modificada, que consiste en mantener ciertos caminos separados y paralelos para acceder a las instrucciones en forma simultánea con los datos, pero permitiendo que los datos y las instrucciones están almacenados en una memoria común. Los detalles de estas implementaciones se verán más adelante en el curso. Arquitecturas (a) Von Neumann y (b) Harvard. La arquitectura von Neuman utiliza una memoria única que se conecta a la CPU mediante los buses de direcciones (BDIR), datos (BDAT) y control (BCON), La Arquitectura Harvard utiliza memorias separadas para instrucciones y datos, las cuales se conectan a la CPU mediante los buses de direcciones de instrucciones (BDIR-I) y de direcciones de datos (BDIR-D), los buses de instrucciones (BINST) y de datos (BDAT) y los buses de control de instrucciones (BCON-I) y de datos (BCON-D).
Compartir