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
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 !
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
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
Estructura de una máquina von NeumannEstructura de una máquina von Neumann
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
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
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.
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
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
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
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
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
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
Primer implementación de Von Newman: Primer implementación de Von Newman: La IASLa IAS
IAS: Diagrama IAS: Diagrama
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)
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
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.
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)
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)
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)
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)
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)
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)
Registros en otras arquitecturasRegistros en otras arquitecturas
Modelo de von NeumannModelo de von NeumannBus del SistemaBus del Sistema
Una posible configuraciónUna posible configuración
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
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
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
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
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…
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.
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.
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”
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…
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.
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
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
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
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
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
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
Top Related