organización del computador 1 máquina de von neumann jerarquía de niveles

44
Organización del Organización del Computador 1 Computador 1 Máquina de von Neumann Máquina de von Neumann Jerarquía de Niveles Jerarquía de Niveles

Upload: maximiliano-guiterrez

Post on 23-Jan-2016

249 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Organización del Computador 1Organización del Computador 1

Máquina de von NeumannMáquina de von Neumann

Jerarquía de NivelesJerarquía de Niveles

Page 2: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

El modelo de Von NeumannEl modelo de Von Neumann

Antes: programar era Antes: programar era conectar cables… conectar cables… (ENIAC)(ENIAC)

Hacer programas era Hacer programas era mas una cuestión de mas una cuestión de ingeniería electrónicaingeniería electrónica

Cada vez que había Cada vez que había que calcular algo que calcular algo distinto había que distinto había que reconectar todo.reconectar todo.

Imaginen eso !Imaginen eso !

Page 3: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

John Von NeumannJohn Von Neumann

1903 – 19571903 – 1957 MatemáticoMatemático Publicó y publicitó la idea de Publicó y publicitó la idea de

programa almacenado en programa almacenado en memoriamemoria

1945: 1945: “Primer Borrador de un “Primer Borrador de un Reporte sobre la EDVAC”Reporte sobre la EDVAC”

EDVAC = Electronic Discrete EDVAC = Electronic Discrete VAriable ComputerVAriable Computer

Page 4: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Lineamientos del modelo Von NeumannLineamientos del modelo Von Neumann

Los datos y programas se almacenan en una Los datos y programas se almacenan en una misma memoria de lectura-escrituramisma memoria de lectura-escritura

Los contenidos de esta memoria se acceden Los contenidos de esta memoria se acceden indicando su posición sin importar su tipo.indicando su posición sin importar su tipo.

Ejecución en secuencia (salvo que se indique Ejecución en secuencia (salvo que se indique lo contrario).lo contrario).

Representación BinariaRepresentación Binaria

Page 5: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Estructura de una máquina von NeumannEstructura de una máquina von Neumann

Page 6: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Características principalesCaracterísticas principales 3 componentes principales:3 componentes principales:

CPUCPU::• Unidad de Control, Unidad aritmético lógica (ALU), RegistrosUnidad de Control, Unidad aritmético lógica (ALU), Registros

Memoria principalMemoria principal::• Almacena programas y datosAlmacena programas y datos

Sistema de Entrada/SalidaSistema de Entrada/Salida• Conecta con el mundo exteriorConecta con el mundo exterior

Procesamiento secuencial de instruccionesProcesamiento secuencial de instrucciones Datos binariosDatos binarios Un sistema de interconexiónUn sistema de interconexión

Conecta la memoria y unidad de control mediante un camino único Conecta la memoria y unidad de control mediante un camino único (ya sea físico o lógico).(ya sea físico o lógico).

Este camino único fuerza la alternación entre ciclos de lectura y Este camino único fuerza la alternación entre ciclos de lectura y ejecución.ejecución.

Por eso se lo suele citar como el cuello de botella de Von NewmanPor eso se lo suele citar como el cuello de botella de Von Newman

Page 7: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

CPUCPUUnidad de Control (UC)Unidad de Control (UC) Controla todos los componentesControla todos los componentes Interpreta instrucciones Interpreta instrucciones

DecodificaDecodifica y y EjecutaEjecuta instrucciones. instrucciones. Transforma instrucciones en Transforma instrucciones en órdenes a otros componentesórdenes a otros componentes Puede ser programada por Puede ser programada por hardware (cableada) yhardware (cableada) y “ “microprogramada” (varias microprogramada” (varias microinstrucciones por microinstrucciones por instrucción)instrucción)

Unidad Aritmético Lógica (ALU)Unidad Aritmético Lógica (ALU) Realiza operaciones matemáticas Realiza operaciones matemáticas y lógicasy lógicas

Sumas, restas, multiplicacionesSumas, restas, multiplicaciones Operaciones lógicas: And, Or, XorOperaciones lógicas: And, Or, Xor Desplazamientos y rotaciones de datos Desplazamientos y rotaciones de datos

Page 8: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

CPU CPU RegistrosRegistros Almacenan datos binariosAlmacenan datos binarios Acceso rápidoAcceso rápido Tamaño fijo Tamaño fijo De propósito general De propósito general

(programas) (programas) Específicos Específicos

AcumuladorAcumulador Program counterProgram counter Puntero a memoriaPuntero a memoria

DataPathDataPath Conexionado interno que comunica la UC con las otras unidades y registros. Conexionado interno que comunica la UC con las otras unidades y registros. Mueve datos entre los diferentes componentesMueve datos entre los diferentes componentes Controlado por un reloj.Controlado por un reloj.

Page 9: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Ciclo de EjecuciónCiclo de Ejecución

1.1. UC obtiene la próxima instrucción de UC obtiene la próxima instrucción de memoria (usando el registro PC)memoria (usando el registro PC)

2.2. Se incrementa el PCSe incrementa el PC

3.3. La instrucción es decodificada a un La instrucción es decodificada a un lenguaje que entiende la ALUlenguaje que entiende la ALU

4.4. Obtiene de memoria los operandos Obtiene de memoria los operandos requeridos por la instrucciónrequeridos por la instrucción

5.5. La ALU ejecuta y deja los resultados La ALU ejecuta y deja los resultados en registros o en memoriaen registros o en memoria

6.6. Volver al paso 1Volver al paso 1

Page 10: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

La unidad de control levanta la próxima de memoria La unidad de control levanta la próxima de memoria usando el “contador de programa” (o RPI) que dice en usando el “contador de programa” (o RPI) que dice en que dirección esta la próxima instrucción.que dirección esta la próxima instrucción.

Ciclo de ejecuciónCiclo de ejecución

Page 11: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

La instrucción es decodificada a un lenguaje que La instrucción es decodificada a un lenguaje que entiende la ALU (unidad aritmética lógica).entiende la ALU (unidad aritmética lógica).

Ciclo de ejecuciónCiclo de ejecución

Page 12: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Cada operando requerido para ejecutar es levantado de Cada operando requerido para ejecutar es levantado de la memoria principal y ubicado en registros dentro de la la memoria principal y ubicado en registros dentro de la CPU.CPU.

Ciclo de ejecuciónCiclo de ejecución

Page 13: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

La ALU ejecuta la instrucción y coloca los resultados en La ALU ejecuta la instrucción y coloca los resultados en registros o en memoria.registros o en memoria.

Ciclo de ejecuciónCiclo de ejecución

Page 14: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Tipos de OperacionesTipos de Operaciones

Procesador-memoriaProcesador-memoria Transferencia de datos entre la CPU y la memoriaTransferencia de datos entre la CPU y la memoria

Procesador-E/SProcesador-E/S Transferencia de datos entre la CPU y un modulo de E/STransferencia de datos entre la CPU y un modulo de E/S

Procesamiento de datosProcesamiento de datos Alguna operación aritmética o lógica sobre los datosAlguna operación aritmética o lógica sobre los datos

ControlControl Alteración de la secuencia de operacionesAlteración de la secuencia de operaciones Ej.: jumpEj.: jump

Page 15: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Primer implementación de Von Newman: Primer implementación de Von Newman: La IASLa IAS

Page 16: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

IAS: Diagrama IAS: Diagrama

Page 17: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Estructura de la IASEstructura de la IAS

RegistrosRegistros MBR: Memory Buffer MBR: Memory Buffer

RegisterRegister MAR: Memory Address MAR: Memory Address

RegisterRegister IR: Instruction RegisterIR: Instruction Register IBR: Instruction Buffer IBR: Instruction Buffer

RegisterRegister PC: Program CounterPC: Program Counter AC: AccumulatorAC: Accumulator MQ: Multiplier QuotientMQ: Multiplier Quotient

(UC)

Page 18: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Representación de los datos en la IASRepresentación de los datos en la IAS Organización de la memoriaOrganización de la memoria

1000 x 40 bit words1000 x 40 bit words Número BinarioNúmero Binario 2 instrucciónes x 20 bit 2 instrucciónes x 20 bit

0 1 39

0 8 19 20 28 39

Codop Dirección Codop Dirección

Signo

Palabra número

Palabra instrucción

Page 19: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

InstrucciónInstrucción

0 8 19

Codop Dirección

Palabra instrucción

• La parte codop (los primeros 8 bits) especifican cuál instrucción será ejecutada.

• La parte de la dirección (los 12 bits restantes) especifican un operando (en memoria) que participa de la operación.

Page 20: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Máquina von Neumann

Detalles de la estructura

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.

(UC)

Page 21: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Máquina von Neumann

Detalles de la estructura

MAR:Memory Adress Register

Especifica la dirección en memoria de la palabra que va a ser escrita o leída en MBR.

(UC)

Page 22: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Máquina von Neumann

Detalles de la estructura

IR:Instruction Register

Contiene los 8 bits del código de operación de la instrucción que se va a ejecutar.

(UC)

Page 23: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Máquina von Neumann

Detalles de la estructura

IBR:Instruction Buffer Register

Empleado para almacenar temporalmente la instrucción contenida en la parte derecha de una palabra en memoria.

(UC)

Page 24: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Detalles de la estructura

PC:Program Counter

Contiene la dirección de la próxima pareja de instrucciones que van a ser captadas de la memoria.

(UC)

Page 25: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Detalles de la estructura

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.

(UC)

Page 26: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Registros en otras arquitecturasRegistros en otras arquitecturas

Page 27: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Modelo de von NeumannModelo de von NeumannBus del SistemaBus del Sistema

Page 28: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Una posible configuraciónUna posible configuración

Page 29: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

BusesBuses

Bus = Vía comunicación que conecta 2 o más Bus = Vía comunicación que conecta 2 o más dispositivosdispositivos

En general “broadcast” (todos lo ven)En general “broadcast” (todos lo ven) En general agrupadosEn general agrupados

Varios canales en un grupoVarios canales en un grupo Ej: Data bus de 32 bits, son 32 canales de 1 bitEj: Data bus de 32 bits, son 32 canales de 1 bit

Page 30: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Data BusData Bus

Transfieren informaciónTransfieren información Su tamaño es un punto clave en la Su tamaño es un punto clave en la

performance del sistemaperformance del sistema 8, 16, 32, 64 bits8, 16, 32, 64 bits

Page 31: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Address busAddress bus

Identifican la fuente o destino de un datoIdentifican la fuente o destino de un dato Ej: la CPU necesita leer una instrucción Ej: la CPU necesita leer una instrucción

(dato) de una locación en memoria(dato) de una locación en memoria Su tamaño determina la capacidad máxima Su tamaño determina la capacidad máxima

de memoria del sistemade memoria del sistema Ej: el Intel 8080 tiene 16 bit => 64k de espacio Ej: el Intel 8080 tiene 16 bit => 64k de espacio

direccionabledireccionable

Page 32: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Control BusControl Bus

Control y sincronización Control y sincronización Señal de lectura escritura a memoriaSeñal de lectura escritura a memoria Señales del relojSeñales del reloj Solicitud de interrupciónSolicitud de interrupción

Page 33: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

ModelosModelos no von Neumannno von Neumann

Cuello de von NeumannCuello de von Neumann El procesador ejecuta una instrucción por vez…El procesador ejecuta una instrucción por vez… Comunicación con Memoria y E/S empeoran la cosas..Comunicación con Memoria y E/S empeoran la cosas..

Mejoras:Mejoras: Buses especializados (DSP’s usan buses de address y datos Buses especializados (DSP’s usan buses de address y datos

separados para instrucciones y operandos)separados para instrucciones y operandos) InterrupcionesInterrupciones Unidades de punto flotanteUnidades de punto flotante Caches, Caches, PipelinesPipelines

Otro enfoque: apartarse de la arquitectura clásica de von Otro enfoque: apartarse de la arquitectura clásica de von Neumann.Neumann.

Agregar procesadores es una posibilidad…Agregar procesadores es una posibilidad…

Page 34: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Modelos no von NeumannModelos no von Neumann

A finales de los 60’ los sistemas de computo A finales de los 60’ los sistemas de computo “high-performance” fueron equipados con “high-performance” fueron equipados con procesadores duales para mejorar su procesadores duales para mejorar su desempeño.desempeño.

En los 70’ supercomputadoras con 32 En los 70’ supercomputadoras con 32 procesadores.procesadores.

En los 80’ con 1000 procesadoresEn los 80’ con 1000 procesadores

En 1999, IBM anuncio su sistema “Blue Gene” En 1999, IBM anuncio su sistema “Blue Gene” que contiene aprox. 1 millón de procesadores.que contiene aprox. 1 millón de procesadores.

Page 35: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Modelos no von NeumannModelos no von Neumann

El procesamiento paralelo es una de las El procesamiento paralelo es una de las formas de mejorar el poder de cómputo.formas de mejorar el poder de cómputo.

Otras ideas más radicales:Otras ideas más radicales: Computadoras genéticasComputadoras genéticas

Computadoras cuánticasComputadoras cuánticas

Sistemas Dataflow.Sistemas Dataflow.

Page 36: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

La jerarquía de niveles de una computadoraLa jerarquía de niveles de una computadora

Una computadora es mucho más que Una computadora es mucho más que chips.chips.

Para que la computadora haga “algo” Para que la computadora haga “algo” necesita softwarenecesita software

Para escribir programas complejos se Para escribir programas complejos se suele dividir el problema en módulos que suele dividir el problema en módulos que resuelven problemas mas simplesresuelven problemas mas simples

En las computadoras En las computadoras Varios niveles de máquinas “virtuales”Varios niveles de máquinas “virtuales”

Page 37: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Jerarquía de nivelesJerarquía de niveles

Cada capa es una máquina Cada capa es una máquina virtual que abstrae a las virtual que abstrae a las maquina del nivel inferior.maquina del nivel inferior.

Las máquinas, en su nivel, Las máquinas, en su nivel, “interpretan” sus “interpretan” sus instrucciones particulares, instrucciones particulares, utilizando servicios de su capa utilizando servicios de su capa inferior para implementarlas.inferior para implementarlas.

En última instancia En última instancia loslos circuitos terminan haciendo el circuitos terminan haciendo el trabajo…trabajo…

Page 38: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Jerarquía de nivelesJerarquía de niveles

Level 6: Nivel UsuarioLevel 6: Nivel Usuario Ejecución de programas e interfaces de usuario.Ejecución de programas e interfaces de usuario. Pensamos en terminos de la aplicación que se Pensamos en terminos de la aplicación que se

ejecutaejecuta Level 5: Lenguajes de alto nivelLevel 5: Lenguajes de alto nivel

El nivel donde interactuamos cuando escribimos El nivel donde interactuamos cuando escribimos programas en Haskell, C, Java, etc.programas en Haskell, C, Java, etc.

Pensamos el algoritmos, TADs, etc.Pensamos el algoritmos, TADs, etc.

Page 39: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Level 4: Nivel de Lenguaje EnsambladorLevel 4: Nivel de Lenguaje Ensamblador

Lenguaje ensamblador, en general producido por Lenguaje ensamblador, en general producido por compiladores, o escrito directamente por programadores. compiladores, o escrito directamente por programadores.

Muy cercano a la arquitectura de la computadora.Muy cercano a la arquitectura de la computadora.

Level 3: Nivel del software del SistemaLevel 3: Nivel del software del Sistema Controla la ejecución de los procesos del sistema.Controla la ejecución de los procesos del sistema. Protege los recursos.Protege los recursos. Brinda servicios para acceder a dispositivos de E/SBrinda servicios para acceder a dispositivos de E/S Muchas instrucciones en Assembler pasan este nivel sin Muchas instrucciones en Assembler pasan este nivel sin

modificación.modificación.

Jerarquía de nivelesJerarquía de niveles

Page 40: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Level 2: Nivel del Lenguaje de máquinaLevel 2: Nivel del Lenguaje de máquina

También conocido como nivel ISA También conocido como nivel ISA (Instruction Set Architecture).(Instruction Set Architecture).

Consiste en las instrucciones particulares Consiste en las instrucciones particulares para la arquitectura de la maquina.para la arquitectura de la maquina.

Los programas escritos en lenguaje de Los programas escritos en lenguaje de maquina no necesitan compilación ni maquina no necesitan compilación ni ensamblado.ensamblado.

Jerarquía de nivelesJerarquía de niveles

Page 41: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Level 1: Nivel de ControlLevel 1: Nivel de Control La unidad de control (UC) decodifica y La unidad de control (UC) decodifica y

ejecuta instrucciones y mueve datos a traves ejecuta instrucciones y mueve datos a traves del sistema.del sistema.

Puede ser microprogramada o “cableada”. Puede ser microprogramada o “cableada”. • Un Un microprogramamicroprograma es un programa escrito en un es un programa escrito en un

lenguaje de bajo nivel que puede ser lenguaje de bajo nivel que puede ser implementado enl hardware.implementado enl hardware.

• Las UC “cableadas” tienen hardware que ejecuta Las UC “cableadas” tienen hardware que ejecuta directamente las instrucciones en codigo de directamente las instrucciones en codigo de maquinamaquina

Jerarquía de nivelesJerarquía de niveles

Page 42: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Hardwired vs. Micro-programadaHardwired vs. Micro-programada

HardwiredHardwired Micro-programadaMicro-programada

Muy rápida, es un flujo Muy rápida, es un flujo directodirecto

Interpretar instrucciones Interpretar instrucciones toma tiempotoma tiempo

Redes muy complejas de Redes muy complejas de implementarimplementar

Programación estándar, Programación estándar, escalableescalable

No puede modificarseNo puede modificarse Es posible hacer upgrade Es posible hacer upgrade del programadel programa

Amarrado a la arquitecturaAmarrado a la arquitectura Flexible, varias Flexible, varias implementacionesimplementaciones

Page 43: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

Level 0: Nivel de Lógica DigitalLevel 0: Nivel de Lógica Digital Aquí encontramos los circuitos digitales Aquí encontramos los circuitos digitales

(chips).(chips). Son básicamente compuertas y cables.Son básicamente compuertas y cables. Implementan la lógica matemática de los Implementan la lógica matemática de los

niveles superiores.niveles superiores.

Jerarquía de nivelesJerarquía de niveles

Page 44: Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles

LinksLinks http://www.turing.org.uk John von Neumann, “First Draft of a John von Neumann, “First Draft of a

Report on the EDVAC”, 1946 (en sección Report on the EDVAC”, 1946 (en sección download)download)

Computer Architecture home page: Computer Architecture home page: www.cs.wisc.edu/~arch/www

Null, L. and J. Lobur. The Essentials of Null, L. and J. Lobur. The Essentials of Computer Organization and Architecture, Computer Organization and Architecture, Jones and Bartlett Publishers, Feb. 2003 Jones and Bartlett Publishers, Feb. 2003