Sie sind auf Seite 1von 210

SISTEMAS DIGITALES Y

ARQUITECTURA DE
COMPUTADORAS
Mquina de von Neumann

El modelo de Von Neumann

Antes: programar era


conectar cables
(ENIAC)
Hacer programas era
mas una cuestin de
ingeniera electrnica
Cada vez que haba
que calcular algo
distinto haba que
reconectar todo.
Imaginen eso !

John Von Neumann


1957
Matemtico
Public y publicit la idea de
programa almacenado en
memoria
1945: Primer Borrador de un
Reporte sobre la EDVAC
EDVAC = Electronic Discrete
VAriable Computer
1903

Lineamientos del modelo Von Neumann


Los

datos y programas se almacenan en una


misma memoria de lectura-escritura
Los contenidos de esta memoria se acceden
indicando su posicin sin importar su tipo.
Ejecucin en secuencia (salvo que se indique
lo contrario).
Representacin Binaria

Estructura de una mquina von Neumann

Caractersticas principales

3 componentes principales:

CPU:
Unidad de Control, Unidad aritmtico lgica (ALU), Registros

Memoria principal:
Almacena programas y datos

Sistema de Entrada/Salida
Conecta con el mundo exterior

Procesamiento secuencial de instrucciones


Datos binarios
Un sistema de interconexin

Conecta la memoria y unidad de control mediante un camino nico


(ya sea fsico o lgico).
Este camino nico fuerza la alternacin entre ciclos de lectura y
ejecucin.
Por eso se lo suele citar como el cuello de botella de Von Newman

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

Decodifica y Ejecuta instrucciones.


Transforma instrucciones en
rdenes a otros componentes
Puede ser programada por
hardware (cableada) y
microprogramada (varias
microinstrucciones por
instruccin)

Unidad Aritmtico Lgica (ALU)


Realiza operaciones matemticas
y lgicas

Sumas, restas, multiplicaciones


Operaciones lgicas: And, Or, Xor
Desplazamientos y rotaciones de datos

Registros
Almacenan datos binarios
Acceso rpido
Tamao fijo
De propsito general
(programas)
Especficos

CPU

Acumulador
Program counter
Puntero a memoria

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

Ciclo de Ejecucin
1.
2.

3.
4.
5.
6.

UC obtiene la prxima instruccin de


memoria (usando el registro PC)
Se incrementa el PC
La instruccin es decodificada a un
lenguaje que entiende la ALU
Obtiene de memoria los operandos
requeridos por la instruccin
La ALU ejecuta y deja los resultados
en registros o en memoria
Volver al paso 1

Ciclo de ejecucin

La unidad de control levanta la prxima de memoria


usando el contador de programa (o RPI) que dice en
que direccin esta la prxima instruccin.

Ciclo de ejecucin

La instruccin es decodificada a un lenguaje que


entiende la ALU (unidad aritmtica lgica).

Ciclo de ejecucin

Cada operando requerido para ejecutar es levantado de


la memoria principal y ubicado en registros dentro de la
CPU.

Ciclo de ejecucin

La ALU ejecuta la instruccin y coloca los resultados en


registros o en memoria.

Tipos de Operaciones

Procesador-memoria

Procesador-E/S

Transferencia de datos entre la CPU y un modulo de E/S

Procesamiento de datos

Transferencia de datos entre la CPU y la memoria

Alguna operacin aritmtica o lgica sobre los datos

Control

Alteracin de la secuencia de operaciones


Ej.: jump

Primer implementacin de Von Newman:


La IAS

IAS: Diagrama

Estructura de la IAS
Registros

MBR: Memory Buffer


Register
MAR: Memory Address
Register
IR: Instruction Register
IBR: Instruction Buffer
Register
PC: Program Counter
AC: Accumulator
MQ: Multiplier Quotient

(UC)

Representacin de los datos en la IAS


Organizacin

de la memoria

1000 x 40 bit words


Nmero Binario
2 instruccines x 20 bit

Palabra nmero

01

39

Signo

Palabra instruccin
0
Codop

19 20
Direccin

Codop

28

39
Direccin

Instruccin
Palabra instruccin
0
Codop

19
Direccin

La parte codop (los primeros 8 bits) especifican cul


instruccin ser ejecutada.
La parte de la direccin (los 12 bits restantes) especifican un
operando (en memoria) que participa de la operacin.

Mquina 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)

Mquina von Neumann


Detalles de la estructura
MAR:
Memory Adress Register
Especifica la direccin en
memoria de la palabra que va a
ser escrita o leda en MBR.

(UC)

Mquina von Neumann


Detalles de la estructura
IR:
Instruction Register
Contiene los 8 bits del cdigo de
operacin de la instruccin que se
va a ejecutar.

(UC)

Mquina von Neumann


Detalles de la estructura
IBR:
Instruction Buffer Register
Empleado para almacenar
temporalmente la instruccin
contenida en la parte derecha de
una palabra en memoria.

(UC)

Detalles de la estructura
PC:
Program Counter
Contiene la direccin de la prxima
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
nmeros de 40 bits es un nmero
de 80 bits; los 40 bits ms
significativos se almacenan en AC
y los menos significativos se
almacenan en MQ.

(UC)

Registros en otras arquitecturas

Modelo de von Neumann


Bus del Sistema

Una posible configuracin

Buses

Bus

= Va comunicacin que conecta 2 o ms


dispositivos
En general broadcast (todos lo ven)
En general agrupados

Varios canales en un grupo


Ej: Data bus de 32 bits, son 32 canales de 1 bit

Data Bus

Transfieren

informacin
Su tamao es un punto clave en la
performance del sistema

8, 16, 32, 64 bits

Address bus
Identifican

la fuente o destino de un dato


Ej: la CPU necesita leer una instruccin
(dato) de una locacin en memoria
Su tamao determina la capacidad mxima
de memoria del sistema

Ej: el Intel 8080 tiene 16 bit => 64k de espacio


direccionable

Control Bus

Control

y sincronizacin

Seal de lectura escritura a memoria


Seales del reloj
Solicitud de interrupcin

Modelos no von Neumann

Cuello de von Neumann

Mejoras:

El procesador ejecuta una instruccin por vez


Comunicacin con Memoria y E/S empeoran la cosas..

Buses especializados (DSPs usan buses de address y datos


separados para instrucciones y operandos)
Interrupciones
Unidades de punto flotante
Caches,
Pipelines

Otro enfoque: apartarse de la arquitectura clsica de von


Neumann.
Agregar procesadores es una posibilidad

Modelos no von Neumann

A finales de los 60 los sistemas de computo


high-performance fueron equipados con
procesadores duales para mejorar su
desempeo.

En los 70 supercomputadoras con 32


procesadores.

En los 80 con 1000 procesadores

En 1999, IBM anuncio su sistema Blue Gene


que contiene aprox. 1 milln de procesadores.

Modelos no von Neumann


El

procesamiento paralelo es una de las


formas de mejorar el poder de cmputo.

Otras

ideas ms radicales:

Computadoras genticas

Computadoras cunticas

Sistemas Dataflow.

La jerarqua de niveles de una computadora


Una

computadora es mucho ms que


chips.
Para que la computadora haga algo
necesita software
Para escribir programas complejos se
suele dividir el problema en mdulos que
resuelven problemas mas simples
En las computadoras

Varios niveles de mquinas virtuales

Jerarqua de niveles

Cada capa es una mquina


virtual que abstrae a las
maquina del nivel inferior.

Las mquinas, en su nivel,


interpretan sus
instrucciones particulares,
utilizando servicios de su capa
inferior para implementarlas.

En ltima instancia los


circuitos terminan haciendo el
trabajo

Jerarqua de niveles

Level 6: Nivel Usuario

Ejecucin de programas e interfaces de usuario.


Pensamos en terminos de la aplicacin que se
ejecuta

Level 5: Lenguajes de alto nivel

El nivel donde interactuamos cuando escribimos


programas en Haskell, C, Java, etc.
Pensamos el algoritmos, TADs, etc.

Jerarqua de niveles

Level 4: Nivel de Lenguaje Ensamblador

Lenguaje ensamblador, en general producido por


compiladores, o escrito directamente por programadores.
Muy cercano a la arquitectura de la computadora.

Level 3: Nivel del software del Sistema


Controla la ejecucin de los procesos del sistema.
Protege los recursos.
Brinda servicios para acceder a dispositivos de E/S
Muchas instrucciones en Assembler pasan este nivel sin
modificacin.

Jerarqua de niveles

Level 2: Nivel del Lenguaje de mquina

Tambin conocido como nivel ISA


(Instruction Set Architecture).
Consiste en las instrucciones particulares
para la arquitectura de la maquina.
Los programas escritos en lenguaje de
maquina no necesitan compilacin ni
ensamblado.

Jerarqua de niveles

Level 1: Nivel de Control


La unidad de control (UC) decodifica y
ejecuta instrucciones y mueve datos a traves
del sistema.
Puede ser microprogramada o cableada.
Un microprograma es un programa escrito en un
lenguaje de bajo nivel que puede ser
implementado enl hardware.
Las UC cableadas tienen hardware que ejecuta
directamente las instrucciones en codigo de
maquina

Hardwired vs. Micro-programada


Hardwired

Micro-programada

Muy rpida, es un flujo


directo

Interpretar instrucciones
toma tiempo

Redes muy complejas de


implementar

Programacin estndar,
escalable

No puede modificarse

Es posible hacer upgrade


del programa

Amarrado a la arquitectura

Flexible, varias
implementaciones

Jerarqua de niveles

Level 0: Nivel de Lgica Digital


Aqu encontramos los circuitos digitales
(chips).
Son bsicamente compuertas y cables.
Implementan la lgica matemtica de los
niveles superiores.

SISTEMAS DE ALMACENAMIENTO

Prsentat
ion

Sistemas de almacenamiento

Caractersticas

Localizacin
Capacidad
Unidad de transferencia
Mtodo de Acceso
Rendimiento
Tipo Fsico
Caractersticas Fsicas
Organizacin
Prsentat
ion

Sistemas de almacenamiento

Localizacin
CPU
Interna
Externa

Prsentat
ion

Sistemas de almacenamiento

Capacidad
Se refiere a la cantidad de datos que
pueden almacenarse en un dispositivo
de almacenamiento.
Esta capacidad puede ser medida en
bytes, kilobytes, megabytes, gigabytes,
terabytes.

Prsentat
ion

Sistemas de almacenamiento
UNIDAD DE TRANSFERENCIA
Interna
Normalmente gobernada por un bus ancho de datos.

Externa
Los datos se transfieren normalmente en bloques,
que son unidades mucho ms grandes que las
palabras.

Unidad Direccionable
La unidad ms pequea que puede ser accesada
Palabras o en algunos casos Bytes
Bloques en discos
Prsentat
ion

Sistemas de almacenamiento
MTODOS DE ACCESO

Secuencial
Iniciar al prinicipio y leer en orden
El tiempo de acceso depende de la localizacin de los datos
y de dnde se localizaban previamente.
Ejemplo: Cinta
Directo
en que la computadora accede a los datos de manera que
es necesario interactuar directamente con los datos
es la forma en que la computadora accede a los datos de
manera directa y veloz
Bloques individuales, tienen direcciones nicas
El acceso se hace mediante un acceso directo a una
vecinidad dada
El tiempo de acceso es variable
Prsentat
ion

Sistemas de almacenamiento

Mtodos de Acceso (2)


Random
Direcciones individuales identifican posiciones exactas.
El tiempo de acceso es independiente de la posicin o
acceso previo.
Ejemplo: RAM

Asociativa
Los datos se localizan por una comparacin con los
contenidos de una porcin del almacenamiento
El tiempo de acceso es independiente de la posicin o
acceso previo. Ejemplo: Memoria cach
Prsentat
ion

Sistemas de almacenamiento

Jerarqua de Memoria
Registros
Dentro del CPU

Memoria interna o principal


Puede incluir uno o ms niveles de cach.
RAM

Memoria Externa
Almacenamiento de respaldo
Prsentat
ion

Jerarqua de Memoria

Sistemas de almacenamiento

Rendimiento
Tiempo de Acceso
El tiempo transcurrido entre presentar la direccin
y obtener el dato

Tiempo del ciclo de memoria


El tiempo puede ser requerido por la memoria
para recuperar antes del siguiente acceso
El tiempo del ciclo es acceso + recuperacin

Tasa de transferencia
Velocidad a la cual los datos pueden ser movidos
Prsentat
ion

Sistemas de almacenamiento

Tipos Fsicos
Semiconductores
RAM, ROM

Magntico
Recubirta de un
Matrial magenetica
Sencible.
Disco duro y
Cinta magnetica

ptico usan la
presicion exacta que usan rayos laser
CD y DVD

Prsentat
ion

Sistemas de almacenamiento

Organizacin
Arreglo fsico de los bits en palabras
No siempre es obvio
Ejemplo. Intercalado

D.Mery

62

Arquitectura de Computadores
Prsentat
ion

MEMORIA
SEMICONDUCTORA

Sistemas de almacenamiento
MEMORIA SEMICONDUCTORA
RAM (Memoria de acceso aleatorio)
En realidad todas las memorias son de
acceso aleatorio
Lectura/Escritura
Voltil
Almacenamiento Temporal
Esttica o dinmica

Prsentat
ion

Sistemas de almacenamiento

RAM Esttica (SRAM)


Los bits se almacenan como interruptores
encendidos o apagados
Construcciones ms complejas
Ms grandes por bit
Ms cara
No necesita circuitos de refrescado
Ms rpida
Usualmente es la cach
no nesecita actualizarse, por que es mas rapida y
cara
Prsentat
ion

Sistemas de almacenamiento

RAM Esttica

Flip flop D (latch)

Prsentat
ion

Sistemas de almacenamiento

RAM Esttica

Registro de 8 bits
Prsentat
ion

Sistemas de almacenamiento

RAM 4 x 3
Prsentat
ion

Sistemas de almacenamiento

RAM Esttica

Prsentat
ion

Sistemas de almacenamiento

RAM Esttica

Una celda SRAM de un bit necesita 6 transistores


Prsentat
ion

Sistemas de almacenamiento
Seales de control SRAM

Prsentat
ion

Sistemas de almacenamiento

RAM Dinmica (DRAM)


Los bits se almacenan como carga en capacitores
Los condensadores tienden a descargarse
Requieren refrescos peridicos para mantener
almacenados los datos
Construccin sencilla
Ms pequea por bit
Ms econnica
Necesita circuitos de refrescado
Ms lenta
Usualmente es la memoria principal
Se nesecita actualizarse miles de veces

Prsentat
ion

Sistemas de almacenamiento

RAM Dinmica

Una celda DRAM de un bit necesita 1 transistore y 1


condensador ( 3 transistores)
Prsentat
ion

Sistemas de almacenamiento

SRAM

DRAM

Prsentat
ion

Sistemas de almacenamiento
Seales de control DRAM

Prsentat
ion

Sistemas de almacenamiento
DRAM tpica de 16Mb (4M x 4 )

Prsentat
ion

Sistemas de almacenamiento

RAM

Prsentat
ion

Sistemas de almacenamiento

Read Only Memory (ROM)

Almacenamiento Permanente
Microprogramacin
Subrutinas de libreras
Programas del Sistema (BIOS)

Prsentat
ion

Sistemas de almacenamiento

Tipos de ROM
Grabadas durante su fabricacin
Muy cara para correr pequeas rutinas

Programable (una vez)


PROM
Requieren equipo especial para programar

Programable borrable (EPROM)


Borrable mediante luz ultravioleta

Borrable elctricamente (EEPROM)


Lleva mucho ms tiempo escribirla que leerla

Memoria Flash
Borra toda la memoria con electricidad
Prsentat
ion

CODIFICACIN, COMPRESIN
E INTEGRIDAD

Prsentat
ion

Codificacin
La tecnologa electrnica empleada en las memorias permite
representar datos mediante elementos que slo admiten dos
estados (biestables).

Informacin binaria, se representa mediante la combinacin de


elementos que slo admiten dos estados (0 y 1). Cada elemento
de informacin recibe el nombre de bit (binary digit). Cualquier
dato en un computador digital estar representado por un cdigo
formado por una secuencia de ceros y unos.
Codificar es establecer reglas que definan una correspondencia
entre el elemento de informacin y la secuencia de bits de su
cdigo.
Los datos pueden ser numricos o alfabticos
Prsentat
ion

Codificacin
Sistemas de codificacin
A) Directa existe una correspondencia biunvoca entre un
conjunto de smbolos y un conjunto de cdigos mediante una
tabla. En el cdigo binario con n elementos podemos construir 2 n
combinaciones diferentes.

0
1
2
:
255

0000 0000
0000 0001
0000 0010
1111 1111

Prsentat
ion

Codificacin
Sistemas de codificacin
B) Por campos el cdigo se divide en varios campos, cada
uno de los cuales da una informacin diferente (ej: BCD con
campos de 4 bits c/u).

10
52
99

0001 0000
0101 0010
1001 1001

Prsentat
ion

Codificacin
Sistemas de codificacin
C) Por secuencia de cdigos varios cdigos consecutivos,
el primero indica que se trata de un cdigo especial y de que hay
que tener en cuenta lo que viene despus (ej: codificacin
diferencial).

Base:

45
+2
+3
+0
-1

45
47
50
50
49

Prsentat
ion

Codificacin
Cdigos numricos
Utilizando n bits para la representacin tenemos los siguientes
sistemas:
a) Decimal (base 10), 10 dgitos diferentes, del 0 al 9,
margen de representacin: 0 x< 10n
abc,de = ax102+bx101 +cx100+dx10-1+ex10-2

Prsentat
ion

Codificacin
Cdigos numricos
b) Binario (base 2), 2 dgitos, 0 y 1
margen de representacin: 0 x< 2n
abc,de = ax22+bx21 +cx20+dx2-1+ex2-2
c) Octal (base 8), 8 dgitos, del 0 al 7
margen de representacin: 0 x< 8n
abc,de = ax82+bx81 +cx80+dx8-1+ex8-2
d) Hexadecimal (base 16), 16 dgitos, del 0 al 9, A,B,C,D,E, y F
abc,de = ax162+bx161 +cx160+dx16-1+ex16-2

Prsentat
ion

Codificacin
Cdigos numricos
Sistema binario-decimal (BCD)
Es una codificacin por campos, cada campo contiene el cdigo
en binario de una cifra decimal (con 4 bits)
Ej:

53..........0101 0011

Exceso a 3

Cada nmero se representa con un exceso de 3 unidades


Ej:

5 se representa como (5+3).............1000


9 se representa como (9+3).............1100

Prsentat
ion

Codificacin
Representacin de nmeros negativos
Existen varias formas de representar nmeros negativos. Todas
ellas utilizan el 1er bit como bit de signo y el resto para el mdulo.
Es una codificacin por campos.

El primer bit nos indica que el nmero es positivo (negativo) si su


valor es 0 (1).
A) Signo-mdulo (SM). El mdulo se representa en binario puro.
Con n bits se puede representar desde el 0 hasta el 2 n-1 -1
Margen de representacin

-(2n-1 -1) x 2n-1 -1

Las operaciones de suma y resta son complicadas. Se ha de


tratar el signo y el mdulo independientemente.

Prsentat
ion

Codificacin
Representacin de nmeros negativos

B) Complemento a 1 (C1). El negativo de un nmero se obtiene


complementando todos sus dgitos, incluyendo el de signo.
Las operaciones de suma y resta son ms sencillas. Se hacen
directamente. Slo hay que corregir el resultado de la suma de 2
nmeros si existe acarreo. En ese caso se se suma al LSB.

Prsentat
ion

Codificacin
Representacin de nmeros negativos
C) Complemento a 2 (C2). Se hace el complemento a 1 del
nmero positivo y se le suma 1.
Las operaciones de suma y resta se hacen directamente. El
acarreo, si existe, se pierde.

Prsentat
ion

Codificacin
Representacin de nmeros reales
Incluyen los nmeros negativos y fraccionarios.

Coma fija la posicin de la coma es fija, lo que implica un


nmero fijo de dgitos para la parte entera y otro nmero fijo para
la parte fraccionaria. El MSB es el de signo.
Coma flotante basada en la notacin cientfica, vale tanto para
cantidades muy grandes como para cantidades muy pequeas. El
nmero se expresa formado por dos partes: mantisa y exponente.
La posicin de la coma depende del valor del exponente: n =m 2e.
Se trata de un sistema de codificacin por campos, el MSB de la
mantisa contiene el signo.

Prsentat
ion

Codificacin
Representacin de datos alfanumricos
Caractersticas de los cdigos alfanumricos:
1. Juego de caracteres
Letras del alfabeto
Dgitos numricos
Signos de puntuacin
Operaciones aritmticas
Caracteres de control
2. Longitud entre 6 y 16 bits
3. Sistema de codificacin directo
Ejemplos de cdigos: FIELDATA (6 bits), ASCII (7 bits),
EBCIC, ASCII extendido (8 bits), UNICODE (16 bits)

Prsentat
ion

Codificacin
Representacin de datos alfanumricos
Fieldata: 6 bits, 64 caracteres (26 letras maysculas, 10
cifras numricas, 28 caracteres especiales)

Prsentat
ion

Codificacin
ASCII (7 bits)
128 combinaciones:
64 para maysculas y cifras
32 cdigos de control
32 para minsculas y signos
especiales
No existe ,,, , etc.!!

Prsentat
ion

Codificacin
ASCII extendido
(8 bits)
256 combinaciones
se usa en los PCs y
minicomputadores

Si existe ,,, , etc.!!

Prsentat
ion

Codificacin
UNICODE: cdigo de 16 bits

Prsentat
ion

Compresin
COMPRESIN
El almacenamiento de grandes cantidades de datos en
soporte magntico u ptico tiene un coste elevado.
La transferencia de informacin entre computadores tiene un
coste proporcional a la cantidad de informacin transmitida.

Compresin: reduccin del tamao de los datos para que


ocupen menos espacio.

Prsentat
ion

Compresin

Tipos de compresin

Sin prdida: se puede recuperar al completo toda la


informacin.

Con prdida: se reduce el espacio ocupado pero la


informacin descartada es irrecuperable.

Prsentat
ion

Compresin

Tcnicas de compresin sin prdida


1. Codificacin diferencial
2. Codificacin estadstica (segn frecuencia de uso)
3. Mtodo basado en diccionarios

Prsentat
ion

Compresin
1. Codificacin diferencial
Se usa para almacenar secuencias de datos cuando la
diferencia entre datos consecutivos es pequea.

d0, d1, d2, d3,..... dn se guarda como


d0, d1- d0 , d2 -d1..... dn- dn-1

Cada dato se guarda con p bits


cada diferencia se guarda con q bits (con q < p)

La secuencia de datos ocupa menos que la original


Para conocer el valor del dato i-simo hay que hacer i sumas

Si se produce un error, ste se propaga


Ventajas y desventajas?
Prsentat
ion

Compresin

2. Codificacin estadstica
Se usa cuando se conocen las frecuencias de los datos
almacenados.
Se asignan cdigos cortos a los datos que aparecen ms
frecuentemente y cdigos largos a los que apenas aparecen.

Prsentat
ion

Compresin
3. Codificacin basada en diccionarios
Los cdigos tienen una longitud fija y cada cdigo representa
una secuencia concreta de datos presentes en la informacin
original
Tcnicas

1. Codificacin run-length (RLE)


2. Algoritmo LZW

Prsentat
ion

Compresin

1. RLE (run length)

Se emplea cuando en la informacin hay secuencias de datos


todos iguales (imgenes, grficos...)

Una secuencia de n bytes con el mismo contenido se codifica


mediante dos valores: longitud de la cadena (n) y contenido de

un dato (v)

Prsentat
ion

Compresin
2. LZW
Se usan cdigos extendidos de mayor longitud que los
originales.
i) Se reserva un cdigo por cada dato individual original
ii) Se usan cdigos adicionales para codificar secuencias de
datos frecuentes.
La primera vez que aparece una secuencia de datos, se

almacena la secuencia junto con el cdigo asignado.


Las siguientes veces que aparece la secuencia se escribe

slo su cdigo

Prsentat
ion

Compresin
Ejemplo de compresin con prdida:
jpeg, mpeg, mp3.

Ejemplo de compresin sin prdida:


zip, rar, arj, gz.
Cundo se puede codificar con/sin
prdida?
Prsentat
ion

Compresin
Ejemplo de fotografas:

Original 512 x 512


(256 KB)
Prsentat
ion

Compresin
Ejemplo de fotografas:

jpeg 512 x 512


(101 KB)
Prsentat
ion

Compresin
Ejemplo de fotografas:

jpeg 512 x 512


(57 KB)
Prsentat
ion

Compresin
Ejemplo de fotografas:

jpeg 512 x 512


(37 KB)
Prsentat
ion

Compresin
Ejemplo de fotografas:

jpeg 512 x 512


(25 KB)
Prsentat
ion

Compresin
Ejemplo de fotografas:

jpeg 512 x 512


(16 KB)
Prsentat
ion

[ ndice ]
4.1 Sistemas de almacenamiento

4.2 Codificacin, compresin e integridad


4.3 Jerarqua de memoria
4.4 Manejo de errores y fiabilidad

4.5 Organizacin de la memoria principal


4.6 Memorias cach
4.7 Memoria virtual

Prsentat
ion

[ Memoria ]

Jerarqua de memoria

Registros
Dentro del CPU

Memoria interna o principal


Puede incluir uno o ms niveles de cach.
RAM

Memoria Externa
Almacenamiento de respaldo

Prsentat
ion

[ Memoria ]

Jerarqua de memoria

Lista de Jerarqua

Registros
Cach de nivel 1 (L1)
Cach de nivel 2 (L2)
Memoria Principal
Cach de disco
Disco
ptico
Cinta
Prsentat
ion

[ Memoria ]

Jerarqua de memoria

Prsentat
ion

[ Memoria ]

Jerarqua de memoria

Prsentat
ion

[ Memoria ]

Jerarqua de memoria
Bits / US$

US$ /
0.01 US$

US$ / Gbyte

Prsentat
ion

[ ndice ]
4.1 Sistemas de almacenamiento

4.2 Codificacin, compresin e integridad


4.3 Jerarqua de memoria
4.4 Manejo de errores y fiabilidad

4.5 Organizacin de la memoria principal


4.6 Memorias cach
4.7 Memoria virtual

Prsentat
ion

[ Memoria ]

Manejo de errores

La probabilidad de error en una memoria es


alta. Las consecuencias de esto son serias:
error en los datos y/o
error en los programas.

Prsentat
ion

[ Memoria ]

Manejo de errores

Existen dos tipos de errores:


Error permanente: defecto fsico de tal forma
que la(s) celda(s) de memoria afectadas no
pueden almacenar datos de manera segura
(se queda en 0 en 1, o su valor no es
estable y oscila entre 0 y 1).

Prsentat
ion

[ Memoria ]

Manejo de errores

Existen dos tipos de errores (cont.):


Error transitorio: evento aleatorio no
destructivo que altera el contenido de una o
ms celdas de almacenamiento sin daar a
la memoria (problemas con la fuente de
alimentacin, partculas alfa, etc.).

Prsentat
ion

[ Memoria ]

Manejo de errores

Es necesario entonces contar con alguna forma


de detectar y corregir errores en la memoria.
Por esta razn se desarrollaron los EDAC:
Error detection and correction codes

Prsentat
ion

[ Memoria ]

Manejo de errores

Deteccin vs. Correccin


Deteccin de errores. Se puede
determinar que uno o ms bits de una
dato han sido alterados pero no se
sabe cules.
Correccin de errores. Se sabe cules
son los bits errneos, i.e., se pueden
cambiar y as corregir el error.
Prsentat
ion

Manejo de errores

[ Memoria ]

La deteccin (y correccin) de errores se basa en


aadir informacin redundante:
M

informacin

paridad

Se adhieren con
el objeto de detectar
o corregir errores
Prsentat
ion

Manejo de errores

[ Memoria ]

La deteccin de errores se basa en aadir informacin redundante:


Ejemplo:
Bit de paridad: En el sistema de paridad par/impar se aade un bit a la
informacin, de forma que el nmero de 1s totales ha de ser
par/impar.
Dato: 0010 0011

Bit de paridad (par): 1

Se almacena entonces: 0010 0011 1


Cuando se lee el dato (primeros 8 bits) se calcula el bit de paridad y se
compara con el bit de paridad ya almacenado. Si son iguales se
asume que no hay error, si no son iguales se detecta un error.
Es 100% seguro este mtodo?
Prsentat
ion

[ Memoria ]

Manejo de errores

Para detectar fallos dobles y corregir fallos simples, se usa


habitualmente la tcnica de Hamming (1950)
Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


1. Se usa el diagrama de Venn y se coloca en cada
interseccin un bit.

0
1
1

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


2. Las partes vacas se rellenan forzando que cada crculo
tenga un nmero par de unos.

1
1

0
1

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


3. El cdigo de Hamming es entonces 001,
se guarda: 0111 001

1
1

0
1

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


Qu pasa si se lee 0101 001?

1
1

0
0

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


Qu pasa si se lee 0101 001? Est bien?

1
1

0
0

1
Qu crculo no es par?

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


Qu pasa si se lee 0101 001? Cmo se corrige el dato?

Crculo impar
0

1
1

0
0

Crculo impar

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


Qu pasa si se lee 0101 001? Cmo se corrige el dato?

Crculo impar
0

1
1

0
0

Culpable, hay
que modificarlo.

Crculo impar

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


Qu pasa si se lee 0101 001? Cmo se corrige el dato?

Crculo impar
0

1
1

0
1

Bit modificado.

Crculo impar

Prsentat
ion

Manejo de errores

[ Memoria ]

Ejemplo: Cdigo de Hamming para la palabra de 4 bits: 0111


Qu pasa si se lee 0101 001? Cmo se corrige el dato?

Crculo impar
0

1
1

0
1

Bit modificado.

El dato es 0111.
1

Crculo impar

Prsentat
ion

Manejo de errores

[ Memoria ]

La deteccin (y correccin) de errores se basa en


aadir informacin redundante:
M

informacin

paridad

Se adhieren con
el objeto de detectar
o corregir errores
Prsentat
ion

[ Memoria ]

Manejo de errores

Estrategia para la correccin de errores.


Prsentat
ion

[ Memoria ]

Manejo de errores

Estrategia para la correccin de errores.


Al almacenar un dato D de M bits se utiliza una funcin
f(D) que calcula un cdigo de K bits. Se almacena
una palabra de M+K bits.

Al leer la palabra, se extrae D, los M primeros bits, y se


calcula el cdigo f(D). Se compara el cdigo
calculado con el almacenado. Se produce uno de
tres resultados:
1.
2.
3.

Son iguales, i.e., no hay error.


Se detecta un error y a partir del cdigo se puede
corregir.
No es posible corregir el error, se emite una seal
de error.
Prsentat
ion

[ Memoria ]

Manejo de errores

Posiciones de los bits de datos y de comprobacin.


12 1100
M8
11 1011
M7
10 1010
M6
09 1001
M5
08 1000
C8
07 0111
M4
06 0110
M3
05 0101
M2
04 0100
C4
03 0011
M1
02 0010
C2
01 0001
C1
00 0000
NO HAY ERROR
Prsentat
ion

[ Memoria ]

Manejo de errores
Cmo se calcula C1, C2, C4, y C8.
C1 = M1 + M2 + M4 + M5 + M7
C2 = M1 + M3 + M4 + M6 + M7
C4 = M2 + M3 + M4 + M8
C8 = M5 + M6 + M7 + M8

1.
2.

Calcular C1, C2, C4, C8 para 0011 1001


Calcular C1, C2, C4, C8 para 0011 1101

Qu sucede?
Prsentat
ion

[ ndice ]
4.1 Sistemas de almacenamiento

4.2 Codificacin, compresin e integridad


4.3 Jerarqua de memoria
4.4 Manejo de errores y fiabilidad

4.5 Organizacin de la memoria principal


4.6 Memorias cach
4.7 Memoria virtual

Prsentat
ion

[ ndice ]
4.1 Sistemas de almacenamiento

4.2 Codificacin, compresin e integridad


4.3 Jerarqua de memoria
4.4 Manejo de errores y fiabilidad

4.5 Organizacin de la memoria principal


4.6 Memorias cach
4.7 Memoria virtual

Prsentat
ion

[ Memoria ]

Organizacin

Las memorias consisten en varias celdas, cada una de las


cuales puede almacenar un elemento de informacin.

Cada celda tiene una direccin asociada, con los cuales los
programas pueden referirse a ella.
Todas las celdas de una memoria contienen el mismo
nmero de bits.
Histricamente ha aumentado el nmero de bits/celda: 1, 8,
12, 16, 18, 24, 27, 32, 36, 48, 60, 64 bits / celda.

Prsentat
ion

[ Memoria ]

Organizacin

Tres formas de organizar una


memoria de 96 bits

Prsentat
ion

[ Memoria ]

Memoria big endian

Organizacin

Memoria little endian

Prsentat
ion

[ Memoria ]

Organizacin

Ejemplo:
a) Registro en big endian,
b) registro en little endian,
c) resultado de transferir el registro de un big a un little endian,
d) intercambio de los bits de c)
Prsentat
ion

[ Memoria ]

Organizacin

Organizacin 2D:
Prsentat
ion

[ Memoria ]

Organizacin

Organizacin 2D:
Prsentat
ion

Organizacin

[ Memoria ]

Organizacin 3D:
Prsentat
ion

[ Memoria ]

Organizacin

Organizacin 3D:

Prsentat
ion

[ Memoria ]

Organizacin

Prsentat
ion

[ Memoria ]

Organizacin

Prsentat
ion

Organizacin

[ Memoria ]

En la organizacin tambin se decide en qu direcciones se


debe colocar la RAM y la ROM, y como se decodifican:

8000-8FFF

RAM-8

:
:
3000-3FFF

RAM-3

2000-2FFF

RAM-2

1000-1FFF

RAM-1

0000-0FFF

ROM
Prsentat
ion

[ ndice ]
4.1 Sistemas de almacenamiento

4.2 Codificacin, compresin e integridad


4.3 Jerarqua de memoria
4.4 Manejo de errores y fiabilidad

4.5 Organizacin de la memoria principal


4.6 Memorias cach
4.7 Memoria virtual

Prsentat
ion

[ Memoria ]

Cach

A medida que aumenta la velocidad de


las CPU es ms difcil crear un sistema
de memoria capaz de proporcionar datos
en uno o dos ciclos de reloj.

Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ Memoria ]

Cach

Para mejorar el desempeo, se desarroll la memoria


cach.
Una memoria cach es una memoria pequea y rpida
ubicada cerca de la CPU, en ella se almacena el cdigo y
los datos direccionados frecuentemente.

Su desarrollo se basa en el principio de referencias


localizadas, es decir, se usa ms frecuentemente slo
una porcin de la memoria.
[Cach: del francs cacher, que significa guardar o
esconder.]

Prsentat
ion

Cach

[ Memoria ]

1KB

256 KB

1ns

5 ns

1 GB

80 GB

100 ns

5 ms

Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ Memoria ]

Cach

Cach:
Mantiene las palabras (datos o instrucciones) de memoria
de mayor uso

Reduce tiempo de acceso promedio. Controlador adivina


aplicando localidad
Caractersticas:
Alta velocidad
Capacidad pequea
Fsicamente: SRAM (varias veces ms rpidas que DRAM)

Prsentat
ion

[ Memoria ]

Cach

Idea de una memoria Cach:


1. Cuando la CPU lee una posicin de memoria, primero
verifica si esta memoria se encuentra en la memoria
cach.

2. Si se encuentra en la cach la CPU la lee directamente de


ella.
3. Si no est en la memoria cach la CPU la busca en la
memoria principal, y la copia en la cach para futuras
lecturas.

Prsentat
ion

[ Memoria ]

Cach

Consideraciones de una memoria Cach:


1. Qu hacer cuando se escribe una posicin de memoria
que est en la cach? Se debe escribir instantneamente
en la memoria principal?

2. Qu pasa si la cach est llena y es necesario traer un


nuevo dato de la memoria principal? se debe borrar
algn dato de la cach? cul? por qu?

Prsentat
ion

[ Memoria ]

Cach

Elementos de diseo:
Tamao
Funcin de correspondencia
Algoritmo de sustitucin
Poltica de escritura
Tamao de lnea
Nmero de cachs
Prsentat
ion

[ Memoria ]

Cach

1. Tamao:

Solucin de compromiso:
Tamao pequeo rapidez,
costo,
direccionamiento
Tamao grande accesos a main memory
tiempo de acceso medio
Otros factores
Superficie disponible en el chip o tarjeta
Algunos estudios: 1K-512K
Prsentat
ion

Cach

[ Memoria ]
N

Etiqueta

Dir

Bloque

Datos

Bloque:
K palabras

Memoria principal:

Cach:

CK<<2n
C-1

K palabras

2n-1
Prsentat
ion

Cach

[ Memoria ]
N
0
1

2
3

Etiqueta

Dir

Bloque

Datos

0
Como hay menos lneas de cach que
bloques
de memoria principal, se necesita un1 algoritmo
2
que haga corresponder bloques de memoria
3
principal a lneas de cach.

Bloque:
K palabras

Memoria principal:

Cach:

Adems, se necesita determinar a qu bloque de


memoria principal corresponde una lnea dada
de cach.
CK<<2n
C-1

K palabras

2n-1
Prsentat
ion

[ Memoria ]

Cach

2. Funcin de correspondencia:
Algoritmo que hace corresponder bloques de
memoria con lneas de cach.
Existen tres formas de establecer esta
correspondencia:
directa,
asociativa y
asociativa por conjuntos.

Prsentat
ion

[ Memoria ]

Cach

Correspondencia directa:
Consiste en hacer corresponder cada bloque de memoria
principal a slo una lnea posible de cach.

Prsentat
ion

[ Memoria ]

Cach

Correspondencia directa:

Prsentat
ion

[ Memoria ]

Cach

Correspondencia directa:

Prsentat
ion

[ Memoria ]

Cach

Correspondencia directa:

Lnea cach
0
1

Bloques asignados
0, m, 2m, 3m2s-m
1,m+1, 2m+12s-m+1

m-1

m-1, 2m-1,3m-12s-1

Prsentat
ion

[ Memoria ]

Cach

Correspondencia directa:
Consiste en hacer corresponder cada bloque de memoria
principal a slo una lnea posible de cach.
Es fcil de implementar, sin embargo, hay una posicin
concreta de cach para cada bloque dado!
Si un programa hace referencias repetidas veces a palabras
de dos bloques diferentes asignados en la misma lnea se
estaran intercambiando continuamente en la cach, y la
tasa de aciertos sera baja.

Prsentat
ion

[ Memoria ]

Cach

Correspondencia asociativa:
Permite que cada bloque de memoria principal pueda
cargarse en cualquier lnea de la cach.
La etiqueta identifica unvocamente un bloque de la
memoria principal.
Para determinar si un bloque est en la cach se debe
examinar todas las etiquetas de las lneas para buscar
coincidencia. Esta bsqueda se hace en paralelo por
hardware.

Prsentat
ion

[ Memoria ]

Cach

Correspondencia asociativa:

Prsentat
ion

[ Memoria ]

Cach

Correspondencia asociativa:
La principal desventaja es la compleja circuitera necesaria
para examinar en paralelo las etiquetas de todas las lneas
de la cach.

Prsentat
ion

[ Memoria ]

Cach

Correspondencia asociativa por conjuntos:


Es una solucin que agrupa las ventajas de los mtodos
anteriores.
La cach se divide en v conjuntos de k lneas.

Prsentat
ion

[ Memoria ]

Cach

Correspondencia asociativa por conjuntos:

Prsentat
ion

[ Memoria ]

Cach

3. Algoritmos de reemplazo:

Para el esquema directo no hay eleccin ya que cada


bloque de memoria slo puede estar en un sitio.

Para los otros esquemas:

1.
2.
3.
4.

LRU (least recently used)


FIFO (first in first out)
LFU (least frequently used)
Random

Prsentat
ion

[ Memoria ]

Cach

LRU (least recently used: menos recientemente usada):


Probablemente los bloques ms usados seguirn usndose
en el futuro cercano.
Probablemente los bloques no muy usados no se usarn
mucho en el futuro cercano.
Con esta poltica se desaloja de la cach el bloque que
tiene ms tiempo sin usarse.
Implementacin por hardware: cada vez que se usa un
bloque se debe almacenar alguna referencia al tiempo. Se
sustituye aquel bloque que tenga la referencia ms antigua.
Prsentat
ion

[ Memoria ]

Cach

FIFO (first input first output):


Se hace una lista de la secuencia de la entrada de los
bloques a la memoria cach. Se desaloja la ms antigua.
Warning: no se desaloja aquella cuyo uso sea el ms
antiguo (eso es LRU), se desaloja aquella que su ingreso a
la cach es el ms antiguo. Es decir se sustituye aquel
bloque que ha estado ms tiempo en la cach.
Implementacin: se usa una lista circular con una manecilla
que indica el ms antiguo.

Prsentat
ion

[ Memoria ]

Cach

LFU (least frecuently used: utilizado menos frecuentemente):


Se sustituye aquel bloque que ha experimentado menos
referencias.
Implementacin: cada bloque posee un contador, el que se
incrementa cada vez que el bloque ha sido referenciado. Se
sustituye aquel que tenga su contador ms bajo.

Prsentat
ion

[ Memoria ]

Cach

Random (aleatorio):
Se sustituye un bloque cualquiera segn una funcin aleatoria.
Estudios realizados mediante simulacin han mostrado que la
sustitucin aleatoria proporciona un desempeo ligeramente
menor a un algoritmo de reemplazo como los anteriores
basados en el grado de utilizacin.

Prsentat
ion

[ Memoria ]

Cach

3. Polticas de escritura
Antes de que pueda ser reemplazado un bloque de la cach
es necesario comprobar si ha sido alterado en la cach y
no en la memoria principal. Si la memoria principal se
encuentra actualizada, el bloque puede ser sobreescrito. En caso contrario habr que actualizar la
memoria principal antes de sobre-escribir el bloque.

Prsentat
ion

Cach

[ Memoria ]
Problemas de diseo:

1KB

256 KB

1ns

5 ns

1 GB

80 GB

100 ns

5 ms

Que pasa cuando se escribe en la cach y no se actualiza


la memoria? Que lee el dispositivo I/O de la memoria?
Prsentat
ion

[ Memoria ]

Cach

3. Polticas de escritura
Cundo escribir (de la cach a la memoria principal):
Hay dos tcnicas principales
1.

Inmediatamente

2.

Post-escritura

Prsentat
ion

[ Memoria ]

Cach

Escritura inmediata:
Todas las operaciones de escritura se hacen tanto en la
cach como en la memoria principal inmediatamente. As se
asegura que el contenido de la memoria principal sea
siempre vlido.
Desventaja: se genera un trfico de sustancial a la memoria
principal que puede disminuir el desempeo.
Estudios sealan que el porcentaje de referencias a
memoria para escritura es del orden del 15%.

Prsentat
ion

[ Memoria ]

Cach

Post-escritura:
Cada bloque de la cach posee un bit de actualizacin que
se inicializa en 0 cuando se carga un bloque nuevo en la
cach.
Cada vez que se escriba en el bloque el bit de actualizacin
se pone en 1.
Cuando se desee reemplazar el bloque, el bloque se copia
a la memoria principal slo si el bit de actualizacin es 1.

Desventaja: muchas veces hay porciones de la memoria


principal que no son vlidos. Los mdulos de I/O deben
acceder a ella a travs de la cach.
Prsentat
ion

[ Memoria ]

Cach

4. Nmero de caches
Incialmente, se usaba slo una cach externa (off-chip) a
la CPU. Luego se desarrollaron caches on-chip.
Se hicieron estudios de performance para determinar si
una sola cache es suficiente. El resultado de estas
investigaciones indican que el desempeo aumenta si
se emplean distintos niveles de cach. Actualmente
se tienen sistemas de con caches on-chip y off-chip.

Prsentat
ion

[ Memoria ]

Cach

4. Nmero de caches
Adems, existe una clasificacin de cachs unificadas y
otras partidas:
Las unificadas tienen instrucciones y datos.
Las partidas tienen una cach dedicada a instrucciones y
otra dedicada a datos.
Las cachs partidas tiene la ventaja de la paralelizacin
ya que mientras se lee una instruccin se puede estar
leyendo un dato.
Prsentat
ion

[ Memoria ]

Cach

4. Nmero de caches

Prsentat
ion

Cach

[ Memoria ]
CPU

L1
CACHE

Instruction
Cache

Data
Cache

L2 Cache
L3 Cache
Main Memory
Prsentat
ion

[ Memoria ]

Cach

5. Tamao del bloque

Cuando se carga una palabra en la cach, se carga


tambin palabras contiguas con la idea de que
posteriormente van a ser tambin referenciadas.

Prsentat
ion

[ Memoria ]

Cach

5. Tamao del bloque


Qu tan grande debe ser el bloque? cuntas palabras
contiguas deben cargarse tambin en la cach?

Ni pocas, ni muchas!! La tasa de aciertos aumenta a


medida que aumenta el tamao del bloque, pero
empieza a disminiuir si aumenta demasiado esto
porque las palabras ya dejan de estar tan contiguas y
nunca o casi nunca son referenciadas.
Estudios sealan que lo mejor est entre 4 y 8 palabras.

Prsentat
ion

[ Memoria ]

Cach

L2 Cache is ultra-fast memory that buffers information being


transferred between the processor and the slower RAM in an
attempt to speed these types of transfers.
L3 Cache is ultra-fast memory that buffers information being
transferred between the processor and the slower RAM in an
attempt to speed these types of transfers. Integrated Level 3
cache provides a faster path to large data sets stored in cache
on the processor. This results in reduced average memory
latency and increased throughput for larger High-end Desktop
workloads.

Prsentat
ion

[ Memoria ]

Cach

Trace caches are essentially caches that store instructions either after they
have been decoded, or as they are retired. This allows the instruction fetch
unit of a processor to fetch several basic blocks, without having to worry about
branches in the execution flow. Trace lines are stored in the trace cache
based on the program counter of the first instruction in the trace and a set of
branch predictions. This allows for storing different trace paths that start on
the same address. In the instruction fetch stage of a pipeline, the current
program counter along with a set of branch predictions is checked in the trace
cache for a hit. If there is a hit, a trace line is supplied to fetch which does not
have to go to a regular cache or to memory for these instructions. The trace
cache continues to feed the fetch unit until the trace line ends or until there is
a misprediction in the pipeline. If there is a miss, a new trace starts to be build.
Because traces also contain different branch paths, a good multiple branch
predictor is essential to the success rate of trace caches.
Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ Memoria ]

Cach

Prsentat
ion

[ ndice ]
4.1 Sistemas de almacenamiento

4.2 Codificacin, compresin e integridad


4.3 Jerarqua de memoria
4.4 Manejo de errores y fiabilidad

4.5 Organizacin de la memoria principal


4.6 Memorias cach
4.7 Memoria virtual

Prsentat
ion

[ Memoria ]

Memoria virtual

El sistema operativo mantiene en la memoria principal las


partes del programa que se estn usando en ese
momento y el resto lo deja en el disco.
Para un solo programa o para varios.

Prsentat
ion

[ Memoria ]

Memoria virtual

Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

1
0
X
X
X
X
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

1
0
X
X
X
X
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Ejemplo: se desea leer el


contenido de la memoria 0

Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

1
0
X
X
X
X
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Ejemplo: se desea leer el


contenido de la memoria 0

La MMU recibe 0 y se da cuenta de que debe leer del marco


de pgina 2, o sea posiciones 4 a 6K, as es que pone la
direccin 4096 en el bus de direcciones.
Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

1
0
X
X
X
X
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Ejemplo: se desea leer el contenido


de la memoria 2050

Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

1
0
X
X
X
X
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Ejemplo: se desea leer el contenido


de la memoria 2050

2050 est en la porcin 2-4K, es decir en el marco de pgina 3


de la memoria fsica (6-8K). La MMU pone en el bus de
direcciones la direccin 6146.
Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

1
0
X
X
X
X
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Ejemplo: se desea leer el contenido


de la memoria 4100

Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

1
0
X
X
X
X
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Ejemplo: se desea leer el contenido


de la memoria 4100

Esta memoria no se encuentra en la memoria fsica ocurre


un fallo de pgina.
Prsentat
ion

Memoria virtual

[ Memoria ]
Memoria Virtual (16K)

14-16K
12-14K
10-12K
8-10K
6-8K
4-6K
2-4K
0-2K

X
0
X
X
X
1
3
2

Memoria fsica (8K)

3
2
1
0

6-8K
4-6K
2-4K
0-2K

Ejemplo: se desea leer el contenido


de la memoria 4100

Es necesario reemplazar algn marco y poner el marco


requerido en la memoria principal. Por ejemplo se reemplaza
el marco 14-16K por el 4-6K. Ahora se lee la memoria 2052
Prsentat
ion

Memoria virtual

[ Memoria ]
Ejemplo:
Memoria Virtual:

16 pginas de 4K
Direccin de 16 bits

Memoria fsica:

8 pginas de 4K
Direccin de 15 bits

Memoria Virtual
Memoria fsica
Prsentat
ion

[ Memoria ]

Memoria virtual

Cmo se hace?
1.

De la pgina virtual se
establece el nmero de la
pgina virtual.

2.

Del nmero de pgina


virtual se establece el
nmero de la pgina
fsica.

3.

Se debe leer la direccin


correspondiente en la
memoria fsica.

Prsentat
ion

Memoria virtual

[ Memoria ]
Cmo se hace?
1.

De la pgina virtual se
establece el nmero de la
pgina virtual.

2.

Del nmero de pgina


virtual se establece el
nmero de la pgina
fsica.

3.

Se debe leer la direccin


correspondiente en la
memoria fsica.

Direccin
virtual

MMU

Direccin
fsica

Prsentat
ion

[ Memoria ]

Memoria virtual

Tabla de pgina

Prsentat
ion

Links

http://www.turing.org.uk

John von Neumann, First Draft of a Report


on the EDVAC, 1946 (en seccin
download)
Computer Architecture home page:
www.cs.wisc.edu/~arch/www
Null, L. and J. Lobur. The Essentials of
Computer Organization and Architecture,
Jones and Bartlett Publishers, Feb. 2003

Das könnte Ihnen auch gefallen