la arquitectura de john von neumannldm/mypage/data/oc/apuntes/2019...la organización multinivel de...

86
Organización de Computadoras Organización de Computadoras Depto. Cs. e Ing. de la Comp. Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur Universidad Nacional del Sur Módulo 08 Módulo 08 La Arquitectura de La Arquitectura de John von Neumann John von Neumann

Upload: others

Post on 25-Mar-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de ComputadorasDepto. Cs. e Ing. de la Comp.Depto. Cs. e Ing. de la Comp.Universidad Nacional del SurUniversidad Nacional del Sur

Módulo 08Módulo 08La Arquitectura deLa Arquitectura deJohn von NeumannJohn von Neumann

Page 2: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 22

CopyrightCopyrightCopyright © 2011-2015 A. G. Stankevicius

Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera.

Una copia de esta licencia está siempre disponible en la página http://www.gnu.org/copyleft/fdl.html.

Page 3: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 33

ContenidosContenidosOrganización multinivel.

Concepto de máquina virtual.

Niveles en una máquina contemporánea.

Evolución histórica de los niveles.

Tecnologías de memoria principal.

Organización del procesador.

Arquitecturas de n-direcciones.

Subsistema de Entrada/Salida.

Page 4: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 44

¿¿Qué hay ahí adentro?Qué hay ahí adentro?

Page 5: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 55

Organización en capasOrganización en capasUna computadora es una máquina que puede resolver problemas ejecutando las instrucciones que le van siendo indicadas.

La secuencia de instrucciones que describen cómo hacer una cierta tarea se denomina programa.

El conjunto de instrucciones que puede ejecutarun cierto procesador constituyen su lenguaje máquina.

El lenguaje coloquial empleado por las personas difiere considerablemente del lenguaje máquina.

Page 6: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 66

Organización en capasOrganización en capasHacer uso de una computadora implica quelas personas logren “hablar” con las máquinas.

¿Cómo podemos reconciliar estos lenguajestan diferentes?

Una posibilidad es hacer uso de una jerarquíade niveles en los que cada uno de éstos haga usode un lenguaje con un mayor nivel de abstracción.

La idea es que a medida que ascendamos enla jerarquía el lenguaje se vaya alejando dela máquina y al mismo tiempo se vaya acercandoa las personas.

Page 7: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 77

Visión multinivelVisión multinivelEl contar con múltiples niveles permite crear nuevas máquinas sobre un mismo hardware:

L1 estará compuesto de aquellas primitivasde uso conveniente.

Esto permite implementaciones flexibles, ya que independiza a la máquina del hardware subyacente.

hardwarelenguaje L1

lenguaje L2

Page 8: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 88

Visión multinivel (cont)Visión multinivel (cont)El contar con múltiples niveles permite crear nuevas máquinas sobre un mismo hardware:

L2 estará más próximo a los algoritmosque se quieren implementar.

Esto facilita la programación y también posibilitala resolución de problemas más complejos.

hardwarelenguaje L1

lenguaje L2

Page 9: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 99

Vinculación entre los nivelesVinculación entre los nivelesExisten esencialmente dos mecanismos quenos permiten vincular a los niveles entre sí:

Traducción: la traducción consiste en tomarun programa escrito en un cierto lenguaje para transformarlo en una secuencia de instrucciones equivalente de en un lenguaje de nivel inferior.

Interpretación: la interpretación consiste en tomar instrucción por instrucción de un cierto lenguajepara ir transformándolas en tiempo de ejecuciónen un conjunto de instrucciones equivalentedel lenguaje de nivel inferior.

Page 10: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1010

Mecanismo de traducciónMecanismo de traducciónCaracterísticas del mecanismo de traducción:

El programa que se utiliza para llevar adelantela traducción se denomina compilador y está compuesto de instrucciones del nivel inferior.

El programa original de nivel superior sólose utiliza durante la traducción.

Luego, la computadora se desentiende de este programa ya que en tiempo de ejecución sólo accederá al nuevo programa de nivel inferior.

Page 11: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1111

Mecanismo de interpretaciónMecanismo de interpretaciónCaracterísticas del mecanismode interpretación:

El programa que se utiliza para llevar adelantela traducción se denomina intérprete y tambiénestá compuesto de instrucciones del nivel inferior.

En contraste, este mecanismo no genera un nuevo programa en el nivel inferior, ya que la conversiónse hace dinámicamente en tiempo de ejecución.

Por esta razón, se debe conservar el programa original de nivel superior hasta el tiempo de ejecución, puesto que recién ahí se lleva adelante la conversión.

Page 12: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1212

Concepto de máquina virtualConcepto de máquina virtualMás que pensar en términos de compilación o de interpretación para vincular las distintas capas entre sí, es conveniente abstraerse completamente de las capas inferiores.

La idea es imaginar que existe una máquina virtual que directamente ejecuta las instrucciones de ese nivel superior.

El lenguaje de ese nivel superior se convierte enun nuevo lenguaje máquina, en esta ocasiónde una máquina virtual.

Page 13: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1313

Relación entre nivelesRelación entre nivelesCon el objeto de que la traducción y/ola interpretación resulten viables y eficienteses esencial que los niveles adyacentesno difieran en gran medida.

Recordemos nuestro objetivo inicial, cada nuevo nivel tiene por objeto acercarnos más a los usuarios.

En principio podemos ir incorporando nuevas capas, cada una con su respectivo lenguaje máquina, hasta que alcancemos un nivel cuyo lenguaje resulte satisfactorio, es decir, lo suficientemente próximoa los usuarios del sistema.

Page 14: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1414

Lenguajes vs. máquinasLenguajes vs. máquinasEn cada nivel de esta organización en capasse identifican dos componentes principales:

La máquina (virtual o no), caracterizada porel conjunto de instrucciones que puede ejecutar.

El lenguaje, caracterizado por las facilidades a disposición del programador en ese nivel.

Obsérvese que una máquina determinaa su lenguaje de la misma manera queun lenguaje determina a su máquina.

Page 15: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1515

Organización multinivelOrganización multinivel

máquina real M1, con lenguaje de máquina L1máquina real M1, con

lenguaje de máquina L1nivel 1

máquina virtual M2, con lenguaje de máquina L2

máquina virtual M2, con lenguaje de máquina L2nivel 2

máquina virtual M3, con lenguaje de máquina L3

máquina virtual M3, con lenguaje de máquina L3nivel 3

máquina virtual Mn, con lenguaje de máquina Ln

máquina virtual Mn, con lenguaje de máquina Lnnivel n

los programas en L1 deben serejecutados directamente porlos circuitos electrónicos

los programas en L2 pueden serinterpretados por programas quese ejecutan en M1, o bien sertraducidos directamente a L1

los programas en L3 pueden serinterpretados por programas quese ejecutan en M1 o en M2, o bienser traducidos a L1 o a L2

los programas en Ln son interpretadospor programas que se ejecutan en unnivel inferiores, o bien son traducidosal lenguaje de una máquina inferior

Page 16: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1616

Organización multinivelOrganización multinivelRecordemos que esta organización multinivel permite a su vez atacar el complicado problema de relacionar humanos con computadorasde una manera paulatina.

La idea es que cada capa seconstruya con las capacidadesprovistas por la capa inferior.

A su vez, cada capa proveeráde mayores capacidades alas capas superiores.

transistores

compuertas, etc.

lenguaje máquina

Page 17: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1717

Máquinas contemporáneasMáquinas contemporáneasLa organización multinivel de una máquina contemporánea se compone de dos o más niveles.

Más aun, es posible que en función de las nuevas tecnologías abarque hasta seis o incluso más niveles.

Nuestro repaso de los distintos niveles que usualmente componen estas máquinas comienza a nivel del hardware.

Un electrónico estaría en condiciones de concebir incluso varias capas adicionales por debajo.

Page 18: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1818

Máquinas contemporáneasMáquinas contemporáneasNivel 0 (la máquina real, no virtual):

Este es el nivel de corte de nuestro análisis,por debajo existen otros niveles cuyo estudioen detalle corresponde a otras ramas de la ciencia.

Está compuesto del conjunto de compuertas lógicas que implementa cada uno de las unidades funcionales que conforman la computadora.

Cabe destacar que se construye usando componentes analógicos los cuales, sin embargo, terminan evidenciando un comportamiento digital.

Page 19: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 1919

Máquinas contemporáneasMáquinas contemporáneasNivel 1 (microprogramación):

Es el verdadero lenguaje máquina, pues en el nivel anterior no existe el concepto de programa comouna secuencia de instrucciones a ser ejecutadas.

En este nivel corre un programa denominado microprograma el cual es capaz de interpretarlas instrucciones del nivel 2.

Puede tener más de un intérprete corriendo en este nivel, y naturalmente cada uno definirá un nuevo lenguaje de nivel 2 junto con su correspondientemáquina virtual.

Page 20: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2020

MicroprogramaciónMicroprogramaciónRecordemos que la microprogramación aparece como alternativa al hacer uso de la leyde equivalencia entre HW y SW.

Es decir, en este nivel es posible optarpor ejecutar directamente en hardwarelas instrucciones más simples y al mismotiempo resolver vía software las más complejas.

La idea de los diseñadores del sistema era alcanzar un adecuado balance entre costoy desempeño.

Page 21: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2121

MicroprogramaciónMicroprogramaciónRecordemos a su vez que la técnicade microprogramación floreció en la épocaen la que la memoria principal era muy lenta.

En ese contexto contar con un set de instrucciones complejo permitía generar programas más compactos y con menor requerimiento de ancho de banda.

Este tipo de arquitectura se denomina justamente Complex Instruction Set Computer (CISC).

La familia Intel x86 es posiblemente el ejemplomás conocido de arquitectura CISC.

Page 22: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2222

MicroprogramaciónMicroprogramaciónFinalmente, la utilidad de la microprogramación empezó a ceder de la mano de dos avances:

Por un lado el crecimiento exponencial de la cantidad de transistores disponibles permitió implementaren hardware más y más funcionalidad del nivel 2.

Naturalmente el mayor impacto vino de la mano dela mejora en el desempeño de la memoria principal.

Por esto, en la actualidad se opta por simplificar el set de instrucciones, dando a lugar a lo que hoy en día se conoce como arquitecturas RISC.

Page 23: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2323

Máquinas contemporáneasMáquinas contemporáneasNivel 2 (máquina convencional):

Este es el primer nivel al alcance del programador, más allá de que el verdadero lenguaje máquinasea el provisto por el nivel inmediato inferior.

Es posible que un mismo HW soporte múltiples máquinas convencionales (a través de múltiples intérpretes corriendo en el nivel anterior).

En las computadoras de tipo RISC se ejecutan las instrucciones de este nivel directamente en HW, es decir, no cuentan con la capa de microprogramación.

Page 24: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2424

Máquinas contemporáneasMáquinas contemporáneasNivel 3 (sistema operativo):

Se trata de un nivel híbrido, gran cantidadde las instrucciones de este nivel son las mismasque las del nivel inmediato inferior.

Existen muchas más variantes de máquinasen este nivel que en los niveles anteriores.

Las nuevas facilidades provistas por este nivel fueron incorporadas por un intérprete llamado sistema operativos por razones históricas como veremos.

En este nivel aparece la posibilidad de correr dos o más programas en simultáneo.

Page 25: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2525

Máquinas contemporáneasMáquinas contemporáneasExiste una separación fundamental entrelos niveles 3 y 4:

A diferencia de los niveles superiores, los niveles 1, 2 y 3 no fueron diseñados para ser usados directamente por el programador de aplicaciones.

Los primeros tres niveles tiene por objeto sustentara los intérpretes necesarios para que las máquinas virtuales de nivel superior funcionen correctamente.

Los encargados de implementar estos programasse denominan programadores de sistema.

Page 26: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2626

Máquinas contemporáneasMáquinas contemporáneasNivel 4 (lenguaje ensamblador):

Este es el primer nivel en donde se hace usode los programas traductores.

Por otra parte, es el primer nivel que cuenta con un lenguaje simbólico (los niveles inferiores sólo cuentan con un lenguaje numérico, compuesto de 1s y 0s).

Esta cambio hace que el nivel 4 sea el primer nivel inteligible por las personas.

El programa encargado de traducir los programasde este nivel se denomina ensamblador.

Page 27: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2727

Máquinas contemporáneasMáquinas contemporáneasNivel 5 (lenguajes de alto nivel):

Este nivel está compuesto por los distintos lenguajes de programación de alto nivel, tales como Java,Pascal y C entre otros.

Nótese que, como es usual, cada lenguaje defineuna máquina virtual diferente para este nivel.

Los programas escritos en estos lenguajes suelenser traducidos a instrucciones de los niveles 3 o 4 mediante compiladores, si bien también existen algunos lenguajes de programación que son directamente interpretados.

Page 28: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2828

SíntesisSíntesis

nivel de lógica digitalnivel de lógica digitalnivel 0

nivel de microprogramación

nivel de microprogramaciónnivel 1

nivel de máquina convencional

nivel de máquina convencionalnivel 2

nivel de máquina delsistema operativo

nivel de máquina delsistema operativonivel 3

nivel de lenguaje ensamblador

nivel de lenguaje ensambladornivel 4

nivel de los lenguajesde alto nivel

nivel de los lenguajesde alto nivelnivel 5

los microprogramas sonejecutados por el HW

interpretación o bienejecución directa

interpretación parcial(sistema operativo)

traducción(ensamblado)

traducción(compilación)

Page 29: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 2929

EjemploEjemploA manera de ilustración de las diferencias entre los lenguajes de las distintas capas, analicemos el siguiente problema:

Se desea mostrar por pantalla la sumade los cuadrados de los primeros 100 naturales.

Supongamos que el lenguaje del nivel 5es el lenguaje C, y que la arquitecturade los niveles inferiores es la MIPS.

MIPS fue la primer arquitectura RISC.

Page 30: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3030

EjemploEjemploEl programa de nivel 5 para resolver este problema podría ser:

#include <stdio.h>

int main(int argc, char *argv[]) {

int i, sum = 0;

for (i=0; i<=100; i++)

sum += i * i ;

printf("The sum from 0..100 is %d\n", sum);

}

Page 31: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3131

EjemploEjemploEste mismo programa expresado en el lenguajedel nivel 4 resulta:

Page 32: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3232

EjemploEjemploFinalmente, expresado en el lenguaje propiodel nivel 2 resulta:

Page 33: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3333

Evolución históricaEvolución históricaLas primeras computadoras allá por la década del '40 sólo contaban con dos niveles:

El nivel de la máquina convencional dondese realizaba la programación.

El nivel de la lógica digital donde eran ejecutadoslos programas.

No había manera alguna de que la computación en estos término se tornara masiva.

¡Los programadores eran en ocasiones los propios constructores de la computadora!

Page 34: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3434

Evolución históricaEvolución históricaEn 1951 Maurice Wilkes propuso una arquitectura con tres niveles, con el objetivode simplificar el hardware del nivel inferior.

Wilkes en esencia inventó la microprogramación.

Esta simplificación a nivel de HW se logra en virtudde que el repertorio de las microinstruccioneses menor que el de las instrucciones a nivelde la máquina convencional.

En esa época las computadoras todavía se construían con válvulas, por lo que esta simplificación a nivelde HW implicaba un cuantioso ahorro.

Page 35: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3535

Evolución históricaEvolución históricaEn la década de 1950 se desarrollan de los primeros lenguajes de programación:

Los lenguajes ensamblador de las distintas computadoras de la época (tales como la EDVAC,la primer computadora de programa almacenado).

Los lenguajes de programación imperativos:Fortran (Formula Translation) (1957)Cobol (Common Business-Oriented Language) (1959)

El lenguaje de programación funcional: LISP (LISt Processor) (1958), basado en la notación de cálculo Lambda creado por Church en la década de 1930.

Page 36: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3636

Evolución históricaEvolución históricaAlrededor de la década del 1960 se intentó automatizar las repetitivas tareas que tenían que llevar a cabo los operadores.

Recordemos lo enjundioso que resultaba ejecutarun programa escrito en alguno de estos lenguajesde programación en la época de las tarjetas perforadas y de las cintas de carrete abierto.

Un programa llamado sistema operativo cuyo propósito era asistir al operador se manteníaen ejecución todo el tiempo.

Page 37: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3737

Evolución históricaEvolución históricaContinúa:

Recordemos también que el lenguaje de este nuevo nivel es híbrido, está compuesto mayormente porlas instrucciones del nivel inmediato inferior ysólo una pocas nuevas instrucciones propias.

Las nuevas instrucciones se conocían como macros al sistema operativo o también llamadas al supervisor.

Un importante avance que incorporaron los sistemas operativos fue posibilitar el compartir el HW entre múltiples usuarios en simultáneo, introduciendo el concepto de sistemas de tiempo compartido.

Page 38: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3838

Arquitectura von NeumannArquitectura von Neumann

Unidad de Control

unidades periféricas

datos

unidad de entrada/salida

instrucciones

resultados

CPU

memoriaprincipal

unidadde control

unidadaritmético lógica

módulo de E/S módulo de E/S

Page 39: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 3939

MemoriaMemoriaRecordemos que en el modelo sugeridopor la arquitectura von Neumann, la memoria principal es utilizada para almacenar tanto programas como datos.

La memoria se clasifica en función de distintos aspectos:

Por la forma de acceso.

Por la forma de retención de los datos.

Por el grado de persistencia de la información.

Page 40: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4040

Tipos de memoriaTipos de memoriaPor la forma de acceso:

Memoria de acceso secuencial: este tipo de memoria estipula que los datos en ella almacenados debenser accedidos en un determinado orden secuencial.

Memoria de acceso aleatorio: esta es la memoria convencional, en la cual no existe restricción alguna en el orden en el cual se deban acceder los datosen ella almacenados.

Memoria de acceso por contenido: esta memoria, denominada asociativa, se caracteriza por ser capaz de resolver búsquedas por contenido.

Page 41: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4141

Tipos de memoriaTipos de memoriaPor la forma de retención de los datos:

Memoria estática: en este tipo de memoria una vez almacenado un dato el mismo queda retenido sin ser alterado hasta que vuelva a ser modificado. Logra este comportamiento insumiendo mayor cantidadde componentes por cada celda.

Memoria dinámica: en este tipo de memoria los datos son retenidos por breves intervalos de tiempo.Es decir, el sistema debe leer y volver a escribircada locación de memoria antes de que se pierdasu contenido. El beneficio es que insume una menor cantidad de componentes por cada celda.

Page 42: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4242

Tipos de memoriaTipos de memoriaPor el grado de permanencia de la información:

Volátiles: en este tipo de memoria la información almacenada se pierde en el mismo instante quese corte el suministro de corriente eléctrica.

No volátiles: en este tipo de memoria la información almacenada persiste en el tiempo, más allá de quese disponga o no de una fuente ininterrumpidade alimentación.

Page 43: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4343

Tecnologías de memoriaTecnologías de memoriaTecnologías para la memoria principal:

Memoria RAM (Random Access Memory).

Memoria ROM (Read-Only Memory).

Memoria PROM (Programmable ROM).

Memoria EPROM (Erasable PROM).

Memoria EEPROM (Electrically Erasable PROM).

Memoria MRAM (Magnetoresistively RAM)

Memoria estilo FLASH.

Page 44: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4444

Tecnologías de memoriaTecnologías de memoriaMemorias semiconductoras

Page 45: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4545

Organización de la memoriaOrganización de la memoriaLa memoria se organiza como un arreglode n celdas, cada una de k bits.

Cada celda o locación cuenta conun identificador de log2(n) bits quela caracteriza denominado dirección.

De igual forma, cada locación o celdaalmacena un contenido de k bits.

Nótese que la menor unidad direccionablees la celda, si bien la unidad básica es el bit.

El tamaño en bits de la celda es independientede la cantidad de bits de las direcciones.

011100100000:0001:0010:0011:0100:

1110:1111:

11100101000110010111001000100101

0011100110010110

… …

Page 46: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4646

Organización de la memoriaOrganización de la memoriaLa norma dicta que 8 bits componen un bytey que los bytes se agrupan en palabras.

Una palabra suele tener 8, 16, 32 o 64 bits.

La cantidad de bits por palabra está relacionada con el tamaño en bits de los registros del procesador.

Las instrucciones en general operan sobre palabras.

Las operaciones básicas sobre la memoria son:

Leer una palabra de la memoria.

Escribir una palabra a la memoria.

Page 47: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4747

Ordenamiento de los bytesOrdenamiento de los bytesEn caso de que una palabra esté compuesta por múltiples bytes, ¿cómo se deben ordenar?

El esquema big-endian postula que se debe numerar los bytes de izquierda a derecha.

En contraste, el esquema little-endian postula quese deben numerar los bytes derecha a izquierda.

La decisión respecto a qué esquema utilizar poco afecta el desempeño del procesador.

No obstante, resultará conflictivo transmitir palabras entre computadoras que no usen el mismo esquema.

Page 48: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4848

Ordenamiento de los bytesOrdenamiento de los bytestamaño de palabra: 32 bits

mensaje original: Hola Mundo! 01/10/2014

'H' 'o' 'l' 'a'' ' 'M' 'u' 'n''d' 'o' '!' 01 '/' 10 '/'222 7

big-endian little-endian

00 01 10 11 00 01 10 11

100 011 010 001 000

100 011 010 001 000 'H''o''l''a'

' ''M''u''n''d''o''!'01'/'10'/'2227

Page 49: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 4949

Interfaz con la memoriaInterfaz con la memoriaLa unidad controladora de la memoria cuenta esencialmente con dos registros:

El registro MAR el cual almacena la direcciónde una locación de memoria.

El registro MDR el cual almacena el contenidode una locación de memoria.

unidad controladorade la memoria

MAR MDR

Page 50: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5050

Interfaz con la memoriaInterfaz con la memoriaOperación de lectura (load):

El procesador escribe la locación que se desea acceder en el registro MAR, luego activa la señalde lectura y finalmente accede a la palabra en cuestión la cual estará disponible en el registro MDR

Operación de escritura (store):

El procesador escribe la locación que se desea acceder en el registro MAR y el contenido quese desea almacenar en el registro MDR y porúltimo activa la señal de escritura.

Page 51: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5151

Organización físicaOrganización físicacolumnas

filas

celdas

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

11 10 01 00

dirección(110110)

tamaño: (cant. filas) x (cant. cols) x (bits x celda)tamaño: (cant. filas) x (cant. cols) x (bits x celda)

Page 52: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5252

Diagrama lógico de detalleDiagrama lógico de detalle

Page 53: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5353

Organización del procesadorOrganización del procesadorEl procesador incluye otros dos componentes básicos de la arquitectura von Neumann:

La unidad aritmético lógica (ALU).

La unidad de control.

El procesador tiene como principal tarea orquestar el adecuado funcionamientode la computadora.

A través de la ALU lleva adelante el procesamientode los datos de la manera en que el programaen ejecución le va indicando.

Page 54: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5454

Organización del procesadorOrganización del procesadorInternamente el procesador se puede descomponer en cuatro partes:

La unidad de control.

La unidad aritmético lógica.

Los registros del procesador.

Las interconexiones entre estoscomponentes.

Nótese la similitud entre laorganización del procesadory de la computadora.

computadora

bus delsistema

memoria entradasalida

procesador

procesador

interconexióninterna delprocesador

unidadd decontrol ALU

registros

Page 55: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5555

Data path vs. control pathData path vs. control path

Page 56: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5656

Funciones del procesadorFunciones del procesadorFunciones desempeñadas por el procesador:

Traer de memoria principal la próxima instruccióndel programa en ejecución.

Determinar de qué instrucción se trata (decodificar).

Obtener todos los operandos referidos en la instrucción en curso.

Llevar adelante el procesamiento de datossancionado por esa instrucción.

Almacenar donde corresponda los resultados.

Page 57: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5757

Ciclo básico del CPUCiclo básico del CPUPara cumplir con las tareas asignadas el procesador repite infinitas veces el siguiente ciclo básico de operación:

Etapa Fetch: se almacena en el registro IRla instrucción apuntada por el registro PC.

Etapa Decode: durante esta etapa se determinade qué instrucción se trata.

Etapa Effective Address: se calcula la dirección efectiva referida por la instrucción (si es que alguna) y/o se recuperan los operandos necesarios para comenzar a ejecutar la instrucción en curso.

Page 58: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5858

Ciclo básico del CPUCiclo básico del CPUContinúa:

Etapa Execute: conociendo de qué instrucción se trata y contando con los operandos que sean necesarios, durante esta etapa se programa a la ALU para que lleve adelante el procesamiento correspondiente.

Etapa Memory: las arquitecturas RISC cuentan con una etapa específica donde se accede a memoria para leer o escribir una determinada locación.

Etapa Write-Back: usualmente el resultado obtenido se almacena en alguno de los registros del procesador durante esta etapa.

Page 59: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 5959

Ciclo básico del CPUCiclo básico del CPU

WRITEBACK

WRITEBACK

FETCHFETCH

MEMORYMEMORY

DECODEDECODE

EXECUTEEXECUTE

EFFECTIVEADDRESS

EFFECTIVEADDRESS

Page 60: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6060

EjemploEjemplo

add R1, R2, R3load R3, [R5]bnz fin, R3

analicemos la evolución dela computadora al ejecutareste fragmento de código

Page 61: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6161

EjemploEjemplo

add R1, R2, R3load R3, [R5]bnz fin, R3

13

4

R2

R3R12

Page 62: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6262

EjemploEjemplo

add R1, R2, R3load R3, [R5]bnz fin, R3

13

2

4

R5

5

R3

Page 63: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6363

EjemploEjemplo

add R1, R2, R3load R3, [R5]bnz fin, R3

13

24

R3

fin

Page 64: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6464

Direccionamiento simbólicoDireccionamiento simbólicoEn un lenguaje de alto nivel es frecuente ver expresiones simbólicas tales como x = y + z.

Al bajar de nivel, estas referencias simbólicas deben ser reemplazadas por la dirección en memoria donde se almacenen esas variables.

Debemos tener en cuenta que la dirección deuna locación de memoria es a su vez un número.

x = y + z → 123 = 15 + 83Para diferenciar una dirección de su contenido haremos uso de pares de paréntesis.

(123) = (15) + (83)

Page 65: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6565

Registros del procesadorRegistros del procesadorLos registros son un almacenamiento temporal de muy alta velocidad.

Se organizan en un banco de registros, el cual suele contar con múltiples puertos de lectura y/o escritura.

La cantidad de bits de los registros coincidecon el tamaño de palabra del procesador.

El tamaño de palabra nos da una idea aproximadade la capacidad de procesamiento del hardware(en particular, de la ALU).

Page 66: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6666

Registros del procesadorRegistros del procesadorLos registros del procesador se clasificanen dos categorías:

Registros accesibles por el usuario: estos registros puede ser accedidos por el usuario a travésde las distintas instrucciones.

Registros internos del procesador: estos registrosson utilizados exclusivamente por la unidad de control durante el desarrollo del ciclo básico del procesador.

Page 67: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6767

Registros del procesadorRegistros del procesadorLos registros accesibles al usuario se clasifican a su vez en otras dos categorías:

Registros de propósito general: estos registros están disponibles para que el programador haga un uso discrecional de los mismos (por caso, el registro acumulador EAX o el registro índice ECX).

Registros de propósito específico: estos registros usualmente tienen asignado un rol por defecto(por caso, el registro ESP que siempre apuntaal tope de la pila del programa)

Page 68: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6868

Registros del procesadorRegistros del procesadorUno de los registros internos del procesador es el PSW (processor status word), el cual codifica el estado actual del procesador.

Los registros internos del procesador sólo pueden ser alterados de manera indirecta.

Por caso, el devenir de la ejecución de un programava alterando los registros internos PC e IR.

De manera análoga, el resultado de la última operación realizada afectará al registro interno PSW.

Page 69: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 6969

Acceso a los operandosAcceso a los operandosUna de las etapas del ciclo básicodel procesador requiere ganar accesoa los operandos de la instrucción en curso.

A lo largo de la evolución de la computación se ensayaron muy diversas formas de especificar la ubicación de estos argumentos.

Estas marcadas diferencias permiten clasificara las distintas arquitecturas en función cuántas referencias a memoria tienen las instrucciones.

Page 70: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7070

Arquitectura 0-addressArquitectura 0-addressLa arquitectura 0-address sólo cuenta con instrucciones que refieren a sus operandosde manera implícita.

También se la conoce como arquitectura pila.

La pila del sistema es origen y destino implícitode todas las operaciones aritmético-lógicas.

Naturalmente, las instrucciones de acceso a memoria son una excepción, ya que sí explicitan la locación que se está accediendo.

Page 71: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7171

EjemploEjemploFragmento de código en una arquitectura0-address que evalúa la siguiente expresión:

A = B + C x D – C / E

push (B)push (C)push (D)mpypush (C)push (E)divsubaddpop (A)

se debe acordar el orden de apiladoen las operaciones no conmutativas

A, B, C, D y E son locaciones de memorialas cuales contienen los valores sobre

los cuales se desean operar

Page 72: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7272

Arquitectura 1-addressArquitectura 1-addressLa arquitectura 1-address cuenta con instrucciones en las que se especificasólo uno de los argumentos.

También se la conoce como arquitecturade acumulador único.

Existe un registro especial llamado acumulador el cual es origen y destino implícito de todas las operaciones aritmético-lógicas.

Puede contar con registros auxiliares los quese emplean para implementar modosde direccionamiento más complejos.

Page 73: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7373

EjemploEjemploFragmento de código en una arquitectura1-address que evalúa la siguiente expresión:

A = B + C x D – C / E

load Cmpy (D)store tmpload Cdiv (E)store Aload Badd (tmp)sub (A)store A

tmp es una locación arbitrariade memoria usada para almacenar

temporalmente un resultado intermedio

A también puede ser usado comoalmacenamiento intermedio puesto que

su contenido es destruido por la asignación

Page 74: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7474

Arquitectura 1-address + regArquitectura 1-address + regLa arquitectura 1-address + registro cuentacon instrucciones en las que está permitido especificar un registro general a la parde una dirección de memoria.

La arquitectura Intel x86 pertenece a esta categoría.

En las operaciones con dos operandos de entradael registro especificado dentro de la instrucciónse convierte en el destino implícito del resultado.

Este tipo de arquitectura cuenta con la instrucciónMOV para mover información desde y hacia memoriay también entre los registros.

Page 75: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7575

EjemploEjemploFragmento de código en una arquitectura1-address + reg para la siguiente expresión:

A = B + C x D – C / E

mov R0, [C]mov R1, R0mul R0, [D]div R1, [E]add R0, [B]sub R0, R1mov [A], R0

en algunas arquitecturas se utilizancorchetes en lugar de los paréntesis

asumiremos que el destino delas operaciones se indica primero

(al igual que en la arquitectura x86)

Page 76: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7676

Arquitectura 2-addressesArquitectura 2-addressesLa arquitectura 2-addresses cuenta con instrucciones en las que está permitido especificar hasta dos direcciones de memoria.

En las operaciones con dos operandos de entrada,uno de los argumentos especificado dentro dela instrucción se convierte en el destino implícito.

Este tipo de arquitectura también cuenta con la instrucción MOV para mover información libremente entre memoria y registros.

Page 77: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7777

EjemploEjemploFragmento de código en una arquitectura2-addresses para la siguiente expresión:

A = B + C x D – C / E

mov [A], [B]mov R0, [C]mov R1, R0mul R0, [D]div R1, [E]add [A], R0sub [A], R1

en esta arquitectura tambiénasumiremos que el destino de

las operaciones se indica primero

Page 78: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7878

Arquitectura 3-addressesArquitectura 3-addressesLa arquitectura 3-addresses cuenta con instrucciones en las que está permitido especificar hasta tres direcciones de memoria.

Este tipo de arquitectura evidentemente brindala máxima flexibilidad a los programadoresdel sistema que estén a cargo de implementarlos distintos compiladores.

No obstante, el tamaño de las instrucciones hade variar en gran medida en función de la cantidadde direcciones de memoria que se especifiquen.

Page 79: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 7979

EjemploEjemploFragmento de código en una arquitectura3-addresses para la siguiente expresión:

A = B + C x D – C / E

mul [A], [C], [D]div R0, [C], [E]add [A], [B], [A]sub [A], [A], R0

como se puede apreciar, este tipode arquitectura genera código

muy compacto... ¿pero a qué precio?

Page 80: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 8080

Arquitectura reg. a reg.Arquitectura reg. a reg.La arquitectura registro a registro cuenta con instrucciones que sólo operan sobre registros.

Todas las arquitecturas RISC adoptan esta configuración.

De manera análoga a la arquitectura pila, se cuenta con instrucciones especificas de acceso a memorialas cuales permiten especificar usualmentea lo sumo una dirección de memoria.

Los modos de direccionamiento más avanzadosse logran combinando esa dirección de memoriacon uno o más registros.

Page 81: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 8181

EjemploEjemploFragmento de código en una arquitecturaregistro a registro para la siguiente expresión:

A = B + C x D – C / E

lda R0, Bload R1, (R0)lda R0, Cload R2, (R0)lda R0, Dload R3, (R0)lda R0, Eload R4, (R0)mul R5, R2, R3div R6, R2, R4add R1, R1, R5sub R1, R1, R6lda R0, Astore (R0), R1

analizar este fragmento de códigoen busca de alguna posible optimización

extra en el uso de los registros

asumiremos que la única instrucción quepermite referir una dirección de memoria

es la instrucción lda (load address)

Page 82: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 8282

Subsistema de entrada/salidaSubsistema de entrada/salidaEl último componente de la arquitecturavon Neumann que nos resta abordar selo conoce como subsistema de entrada/salida.

Las computadoras rápidamente demandaron almacenar más información de la que se podía almacenar en la memoria principal.

En consecuencia, a lo largo del tiempose han ensayado distintas tecnologías para implementar esta memoria secundaria.

Page 83: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 8383

Bus del sistemaBus del sistemaLa arquitectura von Neumann presenta un serio cuello de botella: el canal de comunicación entre el procesador en resto de la computadora.

Las primeras computadoras adoptabanun esquema de bus único.

Por ejemplo, el Omnibus de la PDP-8:

Page 84: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 8484

Bus del sistemaBus del sistemaLas arquitecturas másrecientes empezaron ahacer uso de múltiplesbuses independientes.

Por caso, una típica PCde escritorio cuenta congran cantidad de busesde propósito específico.

Recientemente las funcionesdel northbridge se hanincorporado al procesador.

Page 85: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 8585

FSB vs. BSBFSB vs. BSBEn lo que al CPU respecta, cuenta básicamente con dos buses:

El Front Side Bus (FSB) para interconectarel procesador con el resto de la computadora.

El Back Side Bus (BSB) para interconectarlos componentes internos del procesador entre sí.

bus interface(cache L2)

core(cache L1)

core(cache L1)

core(cache L1)

core(cache L1)

Front Side Bus

Back Side Bus

Page 86: La arquitectura de John von Neumannldm/mypage/data/oc/apuntes/2019...La organización multinivel de una máquina contemporánea se compone de dos o más niveles. Más aun, es posible

Organización de ComputadorasOrganización de Computadoras 8686

¿¿Preguntas?Preguntas?