You are on page 1of 647

William Stallings

Organizacin y Arquitectura
de Computadores
Captulo 1
Introduccin

Arquitectura y organizacin 1
La arquitectura son los atributos de un sistema que
son visibles para un programador.
Conjunto de instrucciones, nmero de bits usados
para represrentar datos, mecanismos de E/S,
tcnicas para direccionamiento de memoria.
Ejemplo: Hay una instruccin de multiplicar?

La organizacin se refiere a cmo se implementan


las caractersticas.
Seales de control, interfaces, tecnologa de
memoria.
Ejemplo: Hay una unidad de multiplicar o se hace
por sumas repetidas?

Arquitectura y organizacin 2
Toda la familia Intel x86 comparte la misma
arquitectura bsica.
La familia de IBM Sistema/370 comparte la
misma arquitectura bsica.
Esto proporciona una compatibilidad de cdigos.
Al menos al revs.
La organizacin vara en las diferentes versiones.

Estructura y funcionamiento
La estructura es el modo en que los
componentes estn interrelacionados.
El funcionamiento es la operacin de cada
componente individual como parte de la
estructura.

Funcionamiento
Las funciones del computador son:
Procesamiento de datos
Almacenamiento de datos
Transferencia de datos
Control

Visin funcional
Visin funcional de un computador
Recurso de
almacenamiento de
datos
Sistema de
transferencia de
datos

Mecanismo
de control

Recurso de
procesamiento de
datos

Operaciones (1)
Transferencia de datos
Ejemplo: del teclado a la pantalla
Recurso de
almacenamiento de
datos
Sistema de
transferencia de
datos

Mecanismo
de control

Recurso de
procesamiento de
datos

Operaciones (2)
Almacenamiento
Ejemplo: descarga de Internet al disco

Sistema de
transferencia de
datos

Recurso de
almacenamiento de
datos

Mecanismo
de control

Recurso de
procesamiento de
datos

Operacin (3)
Procesamiento desde/al almacn
Ejemplo: actualizacin de la declaracin de un banco
Recurso de
almacenamiento de
datos
Sistema de
transferencia de
datos

Mecanismo
de control

Recurso de
procesamiento de
datos

Operacin (4)
Procesamiento desde/al almacn a la E/S
Ejemplo: Impresin de la declaracin de un banco
Recurso de
almacenamiento de
datos
Sistema de
transferencia de
datos

Mecanismo
de control

Recurso de
procesamiento de
datos

Estructura del nivel superior

Secundarios

Computador
Unidad
central de
procesamiento

Computador

Memoria
principal

Sistemas de
interconexin

Entrada/
salida
Lneas de
comunicacin

Estructura de la CPU
CPU
Computador
E/S
Bus del
sistema
Memoria

Registros

Unidad
aritmticolgica

CPU

Interconexin
interna de la
CPU

Unidad de
control

Estructura de la unidad de
control
Unidad de control
CPU
ALU
Bus
interno
Registros

Unidad
de
control

Lgica
secuencial
Registros y
decodificadores de
la unidad de control

Memoria
de control

Esquema del libro (1)


Evolucin y prestaciones del computador
Estructuras de interconexin del computador
Memoria interna
Memoria externa
Entrada/Salida
Apoyo al sistema operativo
Aritmtica de computadores
Repertorios de instrucciones

Esquema del libro (2)


Estructura y funcionamiento de la CPU
Computadores de repertorio reducido de
instrucciones
Procesadores superscalares
Funcionamiento de la unidad de control
Control microprogramado
Multiprocesadores y procesamiento de vectores
Lgica digital (Apndice)

Internet y recursos web


de este libro
http://williamstallings.com/COA5e.html
Enlaces con sitios de inters.
Enlaces con sitios que realizan cursos con este libro.
Lista de erratas del libro.
Information sobre otros libros de W. Stallings.

Internet y recursos web


para buscar
Pgina principal de WWW Computer Arquitecture
CPU Info Center
ACM Special Interest Group on Computer
Arquitecture
IEEE Technical Committee on Computer
Arquitecture
Intel Technology Journal
Sitios de los fabricantes
Intel, IBM, etc.

Grupos de noticias USENET


comp.arch
comp.arch.arithmetic
comp.arch.storage

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 2
Evolucin y prestaciones de los
computadores

ENIAC: los orgenes


Electronic Numerical Integrator And Computer
Eckert y Mauchly
Universidad de Pennsylvania
Tablas de tiro para armas
Empez en 1943
Termin en 1946
Demasiado tarde para la guerra

Se us hasta 1955

ENIAC: detalles
Mquina decimal (no binaria)
20 acumuladores de 10 dgitos
Programada manualmente mediante
acumuladores
18.000 tubos de vaco
30 toneladas
1.500 pies cuadrados
140 kilowatios de potencia
5.000 sumas por segundo

Von Neumann/Turing
Concepto del programa-almacenando
Memoria principal que almacena datos y programas
ALU que opera con datos binarios
Unidad de control que interpreta las instrucciones
en memoria y las ejecuta
Equipo de entrada-salida dirigido por la unidad de
control
Instituto para Estudios Avanzados del IAS
Completado en 1952

Estructura de la mquina de
von Nuemann

Unidad arittico-lgica

Equipos de E/S
Memoria
principal

Unidad de control
de programa

IAS: detalles
1.000 palabras de 40 bits
Nmeros binarios
2 instrucciones de 20 bits

Conjunto de registros (almacenamiento en la


CPU)
Registro temporal de memoria
Registro de direccin de memoria
Registro de instruccin
Registro temporal de instruccin
Contador de programa
Acumulador
Multiplicador cociente

Estructura de IAS: detalle


Unidad central de procesamiento
Unidad aritmtico-lgica
Acumulador

MQ

Circuitos aritmtico-lgicos
MBR

Equipo de
E/S

Instrucciones
Memoria
y datos

principal
IBR

PC
MAR

IR

Circuitos
de control

Unidad de control de programa

Direcciones

Computadores comerciales
1947: Eckert-Mauchly Computer Corporation
UNIVAC I (Universal Automatic Computer)
Clculos de la oficina del censo de EE.UU. en
1950
Form parte de la Sperry-Rand Corporation
Finales de los 50: UNIVAC II
Ms rpido
Ms memoria

IBM
Equipos de procesamiento con tarjetas
perforadas
1953: el 701
Primer computador con programas almacenados de
IBM
Aplicaciones cientficas

1955: el 702
Aplicaciones de gestin

Primeros de una serie de computadores


700/7000

Transistores
Sustituyen a los tubos de vaco
Ms pequeos
Ms baratos
Disipan menos el calor
Dispositivos de estado slido
Hechos con silicio
Inventados en 1947 en los Laboratorios Bell
William Shockley y colaboradores

Computadores basados en
transistores
Mquinas de segunda generacin
NCR y RCA produjeron pequeas mquinas de
transistores
IBM 7000
DEC: 1957
Fabric el PDP-1

Microelectrnica
Literalmente significa: pequea electrnica
Un computador est formado por puertas,
celdas de memoria e interconexiones.
Se pueden fabricar a partir de un semiconductor
Ejemplo: oblea de silicio

Generaciones de computadores
Tubo de vaco: 1946-1957
Transistor: 1958-1964
Integracin a pequea escala: de 1965 en adelante
Ms de 100 componentes en un chip

Integracin a media escala: de 1971 en adelante


100-3.000 componentes por chip

Integracin a gran escala: 1971-1977


3.000 - 100.000 componentes por chip

Integracin a muy gran escala: de 1978 hasta la fecha


100.000 - 100 millones de componentes por chip

Integracin a ultra gran escala


Unos 100 millones de componentes por chip

La ley de Moore

Se incrementa la densidad de los componenetes del chip.


Gordon Moore: cofundador de Intel.
El nmero de transistores de un chip se duplica cada ao.
Desde los aos 70 el desarrollo se ralentiza un poco.
El nmero de transistores se duplica cada 18 meses.

El precio del chip permanece casi invariable.


Una alta densidad de encapsulado conlleva una menor
interconexin elctrica, lo que supone un mayor rendimiento.
La reduccin del tamao incrementa la flexibilidad.
Reduccin de las necesidades de potencia y de refrigeracin.
La reduccin de las interconexiones incrementa la
confiabilidad.

Evolucin del nmero de


transistores en los procesadores

Series de IBM 360


1964
Sustituidos por la serie 7000 (y no compatibles con
ella)
Primera familia planeada de computadores
Conjunto de instrucciones similar o idntico
E/S similares o idnticas
Velocidad creciente
Nmero creciente de puertos de E/S (Ejemplo: ms
terminales)
Tamao de memoria creciente
Coste creciente

Estrucutra de conmutadores multiplexados

DEC PDP-8
1964
Primer minicomputador (en honor a la minifalda!)
No necesita una habitacin con aire acondicionado
Lo bastante pequeo para colocarlo en una mesa
de laboratorio
16.000 dlares
100k dlares+ para IBM 360

Aplicaciones incrustadas y OEM


ESTRUCURA DE BUS

Estructura de bus PDP-8

Controlador
de consola

CPU

Memoria
principal

OMNIBUS

Mdulo
de E/S

Mdulo
de E/S

Memoria semiconductora
1970
Fairchild
Tamao de un ncleo de ferrita
Ejemplo: 1 bit de almacenamietno de ncleo
magntico

Tiene 256 bits


Lectura no destructiva
Mucho ms rpida que el ncleo
La capacidad se duplica aproximadamente cada
ao

Intel
1971: 4004
Primer microprocesador
Todos los componentes de la CPU en un solo chip
4 bits

En 1972 evoluciona al 8008


8 bits
Ambos diseados para aplicaciones especficas

1974: 8080
Primer microprocesador de Intel de uso genrico

Aceleracin
Canalizacin
Cache integrado en la tarjeta
Cache L1 y L2 integrados en la tarjeta
Prediccin de ramificacin
Anlisis de flujo de datos
Ejecucin especulativa

Diseo para conseguir mejores


prestaciones
Incremento de la velocidad del procesador
Incremento de la capacidad de la memoria
La velocidad del procesador supera la velocidad
de la memoria

Caractersticas de DRAM y del


procesador
Densidad de RAM dinmica

Velocidad del procesador

Velocidad de RAM dinmica

Tendencias en el uso de DRAM


Supercomputadores
Servidores

Nmero de DRAMS

Estaciones
de trabajo

PCs grandes

PCs pequeos

DRAM
tamao

Organizaciones
predominantes

Soluciones
Incrementar el nmero de bits recuperados de
una vez
Hacer DRAM ms ancho en vez de ms profundo

Cambiar la interfaz DRAM


Cache

Reducir la frecuencia del acceso a la memoria


Cache ms compleja y cache en chip

Incrementar el ancho de la banda


Buses de alta velociadad
Jerarqua de los buses

Recursos en Internet
http://www.intel.com/
Buscar Intel Museum

http://www.ibm.com
http://www.dec.com
Instituto Charles Babbage
PowerPC
Intel Developer Home

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 3
Buses del sistema

Concepto del programa


Los sistemas cableados no son flexibles.
El harware de uso general puede realizar
distintas funciones, segn las seales de
control aplicadas.
En lugar de configurar el hardware, se
proporciona un nuevo conjunto de seales de
control.

Qu es un programa?
Una secuencia de pasos.
Para cada paso, se realiza una operacin
aritmtica o lgica.
Para cada operacin, se necesita un nuevo
conjunto de seales de control.

Funcionamiento de la unidad de
control
Se proporciona un nico cdigo para cada
operacin.
Ejemplo: ADD, MOVE

Un segmento del hardware acepta el cdigo y


lanza las seales de control.

Y ya tenemos un computador.

Componentes
La unidad de control y la unidad aritmtica y
lgica constituyen la unidad central de
procesamiento (CPU).
Los datos y las instrucciones deben introducirse
en el sistema y se proporcionan los resultados
mediante:
Los componentes de entrada/salida

Se necesita un sitio para almacenar


temporalmente las instrucciones y los datos:
Memoria principal

Componentes del computador:


esquema de dos niveles
CPU

PC
IR

Memoria

MAR
Instruccin
Instruccin
Instruccin

MBR
E/S AR
E/S BR

Datos
Datos
Datos
Datos

Mdulo de E/S

Registros

PC

= Contador de programa

IR

= Registro de instruccin

MAR

= Registro de direccin de memoria

MBR

= Registro de buffer de memoria

E/S AR = Registro de direccin de E / S


E/S BR = Registro buffer de E / S

Ciclo de instruccin bsico


Dos pasos:
Captacin
Ejecucin
Ciclo de captacin

INICIO

Captar la
siguiente
instruccin

Ciclo de ejecucin

Ejecutar la
instruccin

PARADA

Ciclo de captacin
El contador de programa (PC) contiene la
direccin de la instruccin que se debe captar a
continuacin.
El procesador capta la instruccin que indica el
PC desde la memoria.
El registro PC se incrementa,
a no ser que se indique lo contrario.

Esta instruccin se carga en el registro de


instruccin (IR).
El procesador interpreta la instruccin y lleva a
cabo la accin requerida.

Ciclo de ejecucin
Procesador- memoria
Transferencia de datos desde la CPU a la memoria.

Procesador-E/S
Transferencias de datos entre la CPU y un mdulo
de E/S.

Procesamiento de datos
Realizacin de alguna operacin aritmtica o lgica
con los datos.

Control
Alteracin de la secuencia de ejecucin.
Ejemplo: la instruccin de salto

Combinacin de estas acciones

Ejemplo de ejecucin de
programa
Memoria

Paso 1

300

1940

301

5941

302

2941

940

0003

941

0002

Memoria

Paso 3

300

1940

Memoria
300

1940

AC

301

5941

0003

AC

IR

302

2941

1940

IR

940

0003

941

0002

Paso 2

Memoria

Registros de la CPU

1940

301

5941

0003

AC

302

2941

5941

IR

940

0003

941

PC

300

Paso 4

0002

300

1940

PC

301

5941

0005

AC

302

2941

2941

IR

940

0003

941

0002

Paso 6

PC

300

Registros de la CPU

300

1940

301

5941

0005

AC

302

2941

5941

IR

940

0003

941

0002
Memoria

Registros de la CPU

302

Registros de la CPU

PC

300

Memoria

Paso 5

Registros de la CPU

300

1940

301

5941

302

2941

940

0003

941

0002

PC

301

316 + 216 = 516

Registros de la CPU

302
0005
2941

PC
AC
IR

Diagrama de estados del ciclo


de instruccin

Captacin de
instruccin

Clculo de la
direccin de
instruccin

Almacenamiento del
operando

Captacin
de
operando

Decodificacin de la
operacin de la
instruccin

Varios

Varios

operandos

resultados

Clculo de la
direccin de
operando

Operacin
con datos

Instruccin completada,

Cadena o vector

captar siguiente instruccin

de datos

Clculo de la
direccin de
operando

Interrupciones
Mecanismo mediante el que otros mdulos
(Ejemplo: E/S) pueden interrumpir el
procesamiento normal de la CPU.
Programa
Ejemplo: desbordamiento aritmtico (overflow), divisin por
cero

Temporizacin
Generadas por un temporizador interno al procesador.
Permite realizar ciertas funciones de manera regular.

E/S
Generadas por un controlador E/S.

Fallo de hardware

Flujo de control de un programa


Programa
de usuario

Programa
de E/S

Orden de
E/S

Programa
de usuario

Programa
de E/S

Orden de
E/S

Gestor de
interrupcin

(a) Sin interrupcin

(b) Interrupcin, espera de E/S corta

Programa
de usuario

Programa
de E/S

Orden de
E/S

Gestor de
interrupcin

( c) Interrupcin, espera de E/S larga

Ciclo de interrupcin
Aadido al ciclo de instruccin.
El procesador comprueba si se ha generado alguna
interrupcin,
indicada por la presencia de una seal de interrupcin.

Si no hay seales de interrupcin, capta la siguiente


instruccin.
Si hay alguna interrupcin pendiente:
Se suspende la ejecucin del programa en curso
Guarda su contexto
Carga el PC con la direccin de comienzo de una rutina de gestin de
interrupcin
Proceso interrumpido
Volver a almacenar el contexto y continuar con el programa interrupido

Diagrama de estados de un ciclo de


instruccin, con interrupciones
Captacin

Captacin
de
operando

de instruccin

Almacenamiento del
operando

Operandos
mltiples
Clculo de la
direccin de
instruccin

Decodificacin de la
operacin de
la instruccin

Instruccin
siguiente

Clculo de
la direccin
del
operando

Operacin
con los
datos
Cadena
o vector

Resultados
mltiples
Clculo de
la direccin
del
operando

Comprobacin de
interrupcin

No
interrupcin

Interrupcin

Interrupciones mltiples
Interrupciones inhabilitadas
El procesador puede y debe ignorar la seal de peticin de
interrupcin si se produce una interrupcin en ese
momento.
La interrupcin se mantiene pendiente y se examinar una
vez se haya activado la primera interrupcin.
Las interrupciones se manejan en un orden secuencial
estricto.

Definir prioridades
Una interrupcin de prioridad ms alta puede interrumpir
a un gestor de interrupcin de prioridad menor.
Cuando se ha generado la interrupcin de prioridad ms
alta, el procesador vuelve a la interrupcin previa.

Procesamiento de una
secuencia de interrupciones
Programa de usuario

Gestor de
interrupcin X

Gestor de
interrupcin Y

Procesamiento de
interrupciones anidadas
Programa de usuario

Gestor de
interrupcin X

Gestor de
interrupcin Y

Estructuras de interconexin
Todas las unidades han de estar
interconectadas.
Existen distintos tipos de interconexiones para
los distintos tipos de unidades:
Memoria
Mdulo de E/S
Procesador

Interconexin de la memoria
Recibe y enva datos.
Recibe direcciones (sobre la situacin).
Recibe seales de control:
Leer
Escribir
Temporizar

Interconexin del mdulo E/S (1)


Desde un punto de vista interno (al
computador), la E/S es funcionalmente similar a
la memoria.
Salida
Recibe datos del computador
Enva datos al perifrico

Entrada
Recibe datos del perifrico
Enva datos al computador

Interconexin del mdulo E/S (2)


Recibe seales de control del computador.
Enva las seales de control a los perifricos.
Ejemplo: disco

Recibe direcciones del computador.


Ejemplo: el nmero del puerto para identificar el
perifrico

Enva seales de interrupcin (de control).

Interconexin del procesador


Lee instruciones y datos.
Escribe datos (una vez los ha procesado).
Enva seales de control a otras unidades.
Recibe (y utiliza) seales de interrupcin.

Buses
Existe una serie de sistemas de interconexin.
Las estructuras sencillas y mltiples son las ms
comunes.
Ejemplo: control/direccin/bus de datos (PC)
Ejemplo: unibus (DEC-PDP)

Qu es un bus?
Es un camino de comunicacin entre dos o ms
dispositivos.
Normalmente, medio de transmisin.
Suele constituirse en grupos:
Un bus est constituido por varios caminos de
comunicacin, o lneas.
Ejemplo: un dato de 8 bits puede transmitirse
mediante ocho lneas del bus

Puede que las lneas no sean visibles.

Bus de datos
Transmite datos.
Recuerde que a este nivel no existe diferencia alguna
entre datos y instrucciones.

La anchura del bus es un factor clave a la hora


de determinar las prestaciones.
8, 16, 32, 64 bits.

Bus de direccin
Designa la fuente o destino del dato.
Ejemplo: cuando el procesador desea leer una
palabra (datos) de una determinada parte en la
memoria.
La anchura del bus determina la mxima
capacidad de memoria posible en el sistema.
Ejemplo: 8080 tiene un bus de direccin de 16 bits,
lo que supone 64k de espacio para direcciones

Bus de control
Informacin sobre seales de control y sobre
temporizacin:
Seal de escritura/lectura en memoria.
Peticin de interrupcin.
Seales de reloj.

Esquema de interconexin
mediante un bus

CPU

Memoria

Memoria

E/S

E/S

Lneas de control
Lneas de direccin
Lneas de datos

Bus

Rojos y con ruedas?


Cmo son los buses?
Es un conjunto de conductores elctricos paralelos.
Lneas de metal
Estos conectores se graban en la placa madre.
Ejemplo: PCI

Varias tarjetas.

Problemas encontrados en el bus


Si se conecta un gran nmero de dispositivos al
bus se producen:
Retardos de propagacin
Si el control del bus pasa de un dispositivo a otro,
puede afectar sensiblemente a las prestaciones.

La mayora de los sistemas utilizan varios buses


para solucionar estos problemas.

Arquitectura de bus tradicional


Bus local

Procesador

Cache

Controlador
local de E/S

Memoria
principal
Bus del sistema

Red
SCSI

Interfaz con el
bus de
expansin

Bus de expansin

Serie
Modem

Arquitectura de altas prestaciones


Memoria
principal

Bus local

Cache/adaptador

Procesador

SCSI

FireWire

Grficos

Bus del sistema

Vdeo

LAN

Bus de alta velocidad

FAX

Interfaz con el
bus de
expansin

Bus de expansin

Serie
Modem

Tipos de buses
Dedicados
Uso de lneas separadas para direcciones y para
datos.

Multipleados
Uso de las mismas lneas.
Lnea de control de direccin vlida o de datos
vlida.
Ventaja: uso de menos lneas.
Desventajas:
Se necesita una circuitera ms compleja.
Posible reduccin de las prestaciones.

Arbitraje del bus


El control del bus puede necesitar ms de un
mdulo.
Ejemplo: La CPU y el controlador DMA
Slo una unidad puede transmitir a travs del
bus, en un instantes dado.
Los mtodos de arbitraje se pueden clasificar
como centralizados o distribuidos.

Arbitraje centralizado
Un nico dispositivo hardware es responsable
de asignar tiempos en el bus:
Controlador del bus
rbitro

Puede estar en un mdulo separado o ser parte


del procesador.

Arbitraje distribuido
Cada mdulo puede controlar el acceso al bus.
Cada mdulo dispone de lgica para controlar el
acceso.

Temporizacin
Forma de coordinar los eventos en el bus.
Temporizacin sncrona
La presencia de un evento est determinada por un
reloj.
El bus incluye una lnea de reloj.
Un nico intervalo a uno seguido de otro a cero se
conoce como ciclo de bus.
Todos los dispositivos del bus pueden leer la lnea de
reloj.
Suele sincronizar en el flanco de subida.
La mayora de los eventos se prolongan durante un
nico ciclo de reloj.

Temporizacin sncrona
Reloj

Inicio

Lectura

Lneas de
direccin

Lneas de
datos

Reconocimiento

Temporizacin asncrona

MSYN

SSYN

Lectura

Lneas de
direccin

Lneas
de datos

Bus PCI
Interconexin de componente perifrico.
Intel cedi sus patentes al dominio pblico.
32 o 64 bits.
50 lneas.

Lneas de seal PCI obligatorias


Lneas del sistema
Incluyen reloj y registro.

Terminales de direcciones y datos


32 lneas multiplexadas para direcciones y datos.
Lneas de interrupciones y lneas vlidas.

Terminales de control de la interfaz


Terminales de arbitraje
Lneas no compartidas.
Conexin directa al rbitro del bus PCI.

Terminales para seales de error

Lneas de seal PCI opcionales


Lneas de interrupcin
lnea no compartida.

Soporte de cache
Extensin a bus de 64 bits
32 lneas adicionales.
Lneas multiplexadas.
2 lneas para que los mdulos puedan usar una
transferencia de 64 bits.

Lneas de test (JTAG/Boundary Scan)


Para la definicin de procedimientos de test.

rdenes del PCI


Transaccin entre un iniciador (maestro) y un
objetivo.
El maestro adquiere el control del bus.
Determina el tipo de transaccin.
Ejemplo: lectura y escritura en E/S

Fase de direccionamiento.
Una o ms fases de datos.

Operacin de lectura PCI

Direccin

Fasedededireccin
direccin
Fase

Dato 1

Dato 2

Dato 3

Byte activo

Byte activo

Byte activo

Fase de dato

Fase de dato

Fase de dato

Estado de espera

Estado de espera
Transaccin del bus

Estado de espera

Arbitraje del bus PCI entre dos


maestros

Direccin

Dato
Acceso A

Direccin

Acceso B

Dato

Lecturas recomendadas
Stallings, Captulo 3.
www.pcguide.com/ref/mbsys/buses/

De hecho, visite y lea la pgina web entera


www.pcguide.com/

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 4
Memoria interna

Caractersticas
Ubicacin
Capacidad
Unidad de transferencia
Mtodo de acceso
Prestaciones
Dispositivo fsico
Caractersticas fsicas
Organizacin

Ubicacin
CPU
Interna
Externa

Capacidad
Tamao de la palabra
La unidad natural de organizacin.

Nmero de palabras
O bytes.

Unidad de transferencia
Interna
Normalmente controlado por los datos en la anchura
del bus.

Externa
Normalmente consiste en un bloque mucho ms
grande que una palabra.

Unidad direccionable
Ubicacin mnima que slo puede ser direccionable.
Palabras internas.
Unidad de asignacin en los discos de M$.

Mtodos de acceso (1)


Secuencial
Secuencia lineal: tras iniciarse, lee detenidamente y en
orden.
El tiempo de acceso depende de la ubicacin actual de los
datos y de la distribucin previa.
Ejemplo:una cinta.

Directo
Los bloques individuales tienen una direccin nica.
Acceso a travs de una vecindad, seguida de una
bsqueda secuencial.
El tiempo de acceso depende de la ubicacin y de la
distribucin previa.
Ejemplo: disco.

Mtodos de acceso (2)


Aleatorio
Las direcciones individuales identifican sus posiciones
exactas.
El tiempo de acceso es independiente de la posicin
o del acceso previo.
Ejemplo: RAM.

Asociativa
Los datos se recuperan, basndose en una porcin
de los contenidos que estn almacenados.
El tiempo de acceso es independiente de la posicin
o del acceso previo.
Ejemplo: cache.

Jerarqua de memoria
Registros:
En la CPU.

Memoria interna o principal:


Puede incluir uno o ms niveles de cache.
RAM.

Memoria externa:
Almacenamiento trasero.

Prestaciones
Tiempo de acceso
Tiempo que transcurre desde el instante en el que se
presenta una direccin hasta que se obtienen datos
vlidos.

Tiempo de ciclo de memoria


El tiempo que se requiere para recuperar la
memoria antes del prximo acceso.
El tiempo de ciclo consiste en el tiempo de acceso +
recuperacin.

Velocidad de transferencia
Velocidad a la que se pueden transferir datos.

Dispositivos fsicos
Memorias semiconductoras
RAM

Memorias de superficie magntica


Discos y cintas

Memorias pticas
CD y DVD

Otros
Memoria de burbujas
Hologramas

Caractersticas fsicas
La informacin se va perdiendo.
Volatilidad.
Borrables.
Fuente de alimentacin.

Organizacin
Disposicin o estructura fsica en bits para
formar palabras.
No siempre se utiliza la estructura ms obvia.
Ejemplo: memoria intercalada.

Caractersticas del diseo de


la memoria
Cunta capacidad?
Cmo de rpida?
EL tiempo es dinero.

De qu coste?

Jerarqua de memoria
Registros
Cache nivel 1
Cache nivel 2
Memoria principal
Cache de disco
Disco
Memoria ptica
Cintas

Quiere velocidad?
Es posible construir un computador que utilice
slo una RAM esttica (se ver ms adelante).
Sera muy rpido.
No necesitara cache.
Cmo se podra esconder la cache?

Sera muy caro.

Localidad de las referencias


En el curso de la ejecucin de un programa, las
referencias a memoria tienden a estar
agrupadas.
Ejemplo: bucles.

Memoria semiconductora
RAM (memoria de acceso aleatorio)
Mal uso del trmino, ya que como todas las
memorias semiconductoras, es de acceso aleatorio.
Memoria de lectura/escritura.
Voltil.
Almacenamiento temporal.
Variantes estticas o dinmicas.

RAM dinmica
Almacena bits como cargas en condensadores.
Tiende a descargar.
Necesita refrescos peridicos, incluso cuando est
funcionando.
Construccin ms simple.
Ms pequea por bit.
Ms econmica.
Necesita circuitera de refresco.
Ms lenta.
Memoria principal.

RAM esttica
Almacena bits como interruptores en on y off.
Tiende a no descargar.
No necesita refrescos, mientras funciona.
Construccin ms compleja.
Ms amplia por bit.
Ms cara.
No necesita circuitera de refresco.
Ms rpida.
Cache.

Memoria de slo lectura (ROM)


Almacenamiento permanente.
Microprogramacin (se ver ms adelante).
Subrutinas de biblioteca.
Programas del sistema (BIOS).
Tablas de funciones.

Tipos de ROM
Insercin de datos, mientras se fabrica.
Muy costoso para las pocas prestaciones que tiene.

Programable (slo una vez).


PROM.
Necesita un equipo especial para programar.

Lectura casi completa.


Programable y borrable (EPROM)
Borrada mediante rayos ultravioleta.

Borrable elctricamente (EEPROM)


Lleva mucho ms tiempo escribir que leer.

Memoria flash
Borra toda la memoria elctricamente.

Organizacin detallada
Un chip de 16Mbits podra estar estructurado en 1
Mpalabras de 16 bits.
Un sistema de un bit por chip tiene 16 lotes de un chip
de 1 Mbits, por lo que por cada chip corresponde 1bit de
cada palabra y as, sucesivamente.
Un chip de 16 Mbits puede estar estructurado en cuatro
matrices cuadradas de 2048 x 2048 elementos.
Reduce el nmero de terminales de direccin.
Direccionamiento de filas y de columna multiplexado.
11 terminales de direccin (211=2.048).
Una terminal ms duplica el rango de los valores, as que la
capacidad se multiplica por cuatro.

Refresco
Circuitera de refresco incluida en el chip.
Se inhabilita el chip.
El contador recorre todas las filas.
Lee y escribe de nuevo.
Lleva tiempo.
Reduce las prestaciones aparentes.

DRAM tpica de 16 Mb (4M x 4)


Temporizacin y control

Contador
de
refresco

Buffer de
direcciones
de filas

Buffer de
direcciones
de columnas

Decodificador
de
filas

Matriz
de memoria
(2048 x 2048 x 4)

Amplificadores
de lectura
y puerto de E/S
Descodificador
de columnas

Buffer
de entrada
de datos
Buffer
de salida
de datos

Chip encapsulado de memoria


x

Dip de 32
terminales

0,6

Vista
superior

EPROM de 8 Mbits.

DRAM de 16 Mbits.

Decodifica
1 entre 512

Organizacin
en mdulos

Registro
de direccin
de memoria
(MAR)

Chip # 1
512 palabras
por 512 bits

Decodifica 1 entre
512 y deteccin
de bits

Decodifica 1 entre
512 y deteccin
de bits

Chip # 8
512 palabras
por 512 bits

Decodifica 1 entre
512 y deteccin
de bits

Registro
buffer
de memoria
(MBR)

Organizacin en mdulos (2)


Registro
de direccin
de memoria
(MAR)
Registro
buffer
de
memoria
(MBR)
Todos los chips
de 512 palabras por 512 bits.
Celdas de dos terminales

Grupo
Habilitacin
de grupo
de chips

Selecciona
1 de entre 4
grupos

Correccin de errores
Fallo permanente
Defecto permanente.

Error transitorio
Aleatorio, no destructivo.
No daan a la memoria de forma permanente.

Se detectan por medio del cdigo de Hamming,


es decir, un cdigo corrector de errores.

Cdigo corrector de errores


Seal de error

Salida de datos

Entrada de datos
Memoria

Comparacin

Cache
Cantidad pequea de memoria rpida.
Est entre la memoria principal normal y la CPU.
Puede localizarse en el chip o mdulo de la CPU.
Transferencia de bloques
Transferencia de palabras

Memoria
principal

Operacin de la cache:
resumen
La CPU solicita contenidos de la localizacin de
memoria.
Comprueba la cache para estos datos.
Si est, la obtiene de la cache (rpidamente).
Si no est, lee el bloque requerido a partir de la
memoria principal hasta la cache.
Despus, de la cache los entrega a la CPU.
La cache incluye etiquetas para identificar qu
bloque de la memoria principal est en cada
ranura de la cache.

Diseo de la cache
Tamao
Funcin de correspondencia
Algoritmo de sustitucin
Poltica de escritura
Tamao del bloque
Nmero de caches

El tamao importa
Coste
Un cache grande es costoso.

Velocidad
Cuanto ms cache, ms rapidez (hasta cierto punto).
Comprobar la cache para acceder a los datos, lleva
tiempo.

Organizacin tpica de cache


Direcciones

Buffer
de direcciones

Procesador

Buffer
de datos

Datos

Funcin de correspondencia
Cache de 64 kbytes.
Los datos se transfieren en la cache en bloques
de 4 bytes.
Ejemplo: la cache es de 16k (214) lneas de 4 bytes.

Memoria principal de 16Mbytes.


Direccin de 24 bits:
(224=16M).

Correspondencia directa
Cada bloque de memoria principal se corresponde a
slo una lnea de cache.
Ejemplo: si un bloque se encuentra en la cache,
debera estar en un lugar especfico.
La direccin est en dos partes.
Los w bits menos significativos identifican una sla
palabra.
La mayora de los s bits significativos especifican un
bloque de la memoria.
Los s bits significativos se distribuyen en un campo de
lnea r en la cache y en una etiqueta de s - r (los ms
significativos).

Correspondencia directa:
Estructura de la direccin
Etiqueta s-r

Lnea o ranura r

Palabra w

14

Direccin de 24 bits.
Identificador de palabra de 2 bits (bloques de 4 bytes).
Identificador de bloque de 22 bits.
Etiqueta de 8 bits (=22-14).
Ranura o lnea de 14 bits.

Ninguno de los dos bloques en la misma lnea tiene el


mismo campo de etiqueta.
Compruebe los contenidos de la cache mediante la
bsqueda de la lnea y la comprobacin de la etiqueta.

Correspondencia directa:
Tabla de la lnea de cache
Lnea de cache
0
1

Bloques de memoria
principal asignados
0, m, 2m, 3m, , 2s-m
1, m+1, 2m+1, , 2s-m+1

m-1

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

Correspondencia directa:
Organizacin de cache
Cache
Etiqueta

Direccin de memoria
Etiqueta

Lnea

Palabra

Comparacin

(Acierto de cache)

(Fallo de cache)

Datos

Memoria
principal

Ejemplo de correspondencia
directa
Etiqueta

Lnea +
Palabra

Datos

Etiqueta

Datos

Nmero
de lnea

Cache de 16K palabras

Memoria principal de 16 Mbytes

Correspondencia directa:
ventajas y desventajas
Simple.
Poco costosa.
Hay una posicin concreta para cada bloque
dado:
Si un programa accede a dos bloques que se
corresponden a la misma lnea de forma repetida, las
prdidas de cache son muy grandes.

Correspondencia asociativa
Un bloque de memoria principal pueda cargarse
en cualquier lnea de la cache.
La direccin de memoria se interpreta como una
etiqueta y una palabra.
La etiqueta identifica unvocamente un bloque
de memoria.
Todas las etiquetas de lneas se examinan para
buscar una coincidencia.
La bsqueda de cache es costosa.

Organizacin de cache
totalmente asociativa
Memoria principal
Etiqueta

Direccin de memoria
Etiqueta

Palabra

Comparacin

(Acierto de cache)

(Fallo de cache)

Datos

Ejemplo de correspondencia
asociativa
Direccin

Datos

Etiqueta

Datos

Nmero
de lnea

Cache de 16K palabras

Memoria principal de 16 MBytes

Correspondencia asociativa:
Estructura de la direccin
Palabra
2 bits

Etiqueta 22 bits

La etiqueta de 22 bits est almacenada con cada bloque


de datos de 32 bits.
Compare el campo de etiqueta con la entrada de etiqueta
en la cache para comprobar si ha tenido xito.
La direccin de 2 bits menos significativa identifica qu
palabra de 16 bits se necesita en un bloque de datos de
32 bits.
Ejemplo:
Direccin
FFFFFC

Etiqueta
FFFFFC

Datos
24682468

Lnea de cache
3FFF

Correspondencia asociativa por


conjuntos
La cache se divide en un nmero de conjuntos.
Cada conjunto contiene un nmero de lneas.
Un bloque determinado se hace corresponder a
cualquier lnea en un conjunto determinado.
Ejemplo: El bloque B puede asignarse en cualquiera
de las lneas del conjunto i.

Ejemplo: 2 lneas por conjunto.


Correspondencia asociativa de 2 vas.
Un bloque determinado puede asignarse en una de
las dos lneas en un nico conjunto.

Correspondencia asociativa por


conjuntos
Nmero de conjunto de 13 bits.
El nmero del bloque de memoria principal es
mdulo 213.
000000, 00A000, 00B000, 00C000 se hacen
corresponder al mismo conjunto.

Estructura de cache asociativa


por conjuntos
Memoria principal
Etiqueta

Direccin de memoria
Etiqueta

Conjunto

Datos

Palabra

Conjunto 0

Comparacin

Conjunto 1

(Acierto de cache)

(Fallo de cache)

Correspondencia asociativa por


conjuntos: Estructura de la
direccin
Etiqueta
de 9 bits

Conjunto de 13 bits

Palabra
de 2 bits

Utilice los campos de conjunto a la hora de determinar el


conjunto de cache que necesita para poder verlo.
Compare los campos de etiqueta para ver si tenemos
xito:
Ejemplo:
Direccin
Etiqueta Datos
Nmero de conjuntos
1FF 7FFC
1FF
12345678 1FFF
001 7FFC
001
11223344 1FFF

Correspondencia asociativa por


conjuntos de dos vas
Etiqueta

Conj. +palabra

Datos

Etiqueta

Datos

N. de
Etiqueta
conjunto

Cache de 16K palabras

Memoria principal de 16Mbytes

Datos

Algoritmos de sustitucin (1):


Correspondencia directa
No hay eleccin posible.
Slo hay una posible lnea para cada bloque.
Se necesita una sustitucin de esa lnea.

Algoritmos de sustitucin (2):


Correspondencias asociativas y
asociativas por conjuntos
Los algoritmos deben implementarse en hardware (para
conseguir velocidad).
Utilizado menos recientemente (LRU).
Ejemplo: en correspondencias asociativas por conjuntos de
2 vas.
Cal de los 2 bloques es LRU?
Primero en entrar-primero en salir (FIFO).
Se sustituye aquel bloque que ha estado ms tiempo
en la cache.
Utilizado menos frecuentemente (LFU).
Se sustituye aquel bloque que ha experimentado
menos referencias.
Aleatoria (coger una lnea al azar).

Poltica de escritura
No se debe escribir sobre un bloque de cache, a
no ser que la memoria principal est
actualizada.
Las CPU mltiples pueden tener caches
individuales.
Un mdulo E/S puede tener acceso directo a la
memoria principal.

Escritura inmediata
Todas las operaciones de escritura se hacen,
tanto en memoria principal como en cache.
Las CPU pueden monitorizar el trfico a
memoria principal para mantener actualizada la
cache local (CPU).
Genera mucho trfico.
Retrasa la escritura.
Recuerde los caches de falsa escritura
inmediata.

Post-escritura
Las actualizaciones se hacen slo en la cache.
Cuando tiene lugar la actualizacin, se activa un bit
actualizar en la ranura de cache.
Cuando un bloque es sustituido, es escrito en
memoria principal, si el bit actualizar est activo.
Las otras caches no son sncronas.
Los mdulos de E/S slo pueden acceder a la
memoria principal a travs de la cache.
El porcentaje de referencias a memoria para
escritura es del orden del 15%.

La cache en el Pentium
lectura recomendada.
Infrmese sobre los detalles de la organizacin
de la cache en el Pentium II.
No slo por este libro.

Tecnologa avanzada de memorias RAM (1)


La DRAM bsica sigue siendo la misma desde
que aparecieron los primeros chips de RAM.
DRAM mejorada
Incluye tambin una pequea cache SRAM.
SRAM almacena la ltima lnea leda (en comparacin
con la cache).

DRAM cache
Incluye una cache SRAM ms grande.
Se puede utilizar como cache o como buffer para
proporcionar accesos serie.

Tecnologa avanzada de memorias RAM (2)

DRAM sncrona (SDRAM)


Actualmente en los DIMM.
Acceso sincronizado con una seal de reloj externa.
Presentacin de direcciones a la RAM
La Ram encuentra datos (la CPU espera en la DRAM
convencional).
Como la SDRAM mueve los datos sincronizada con el reloj
del sistema, la CPU sabe cundo estarn los datos listos.
La CPU no tiene que esperar, puede realizar otra
operacin.
El modo de rfagas permite a la SDRAM establecer una
corriente de datos y eliminarlos en bloque.

SDRAM
Buffer de
salida
de datos

Buffer de
entrada
de datos

Lgica de control
y mquina de
estados finitos
Banco B
DRAM
(2M x 8)

Amplificadores de
lectura y puertos de
E/S

Registro
de modo

Lacht de
direcciones
de columnas

Contador
de rfaga

Lacht de
direcciones
de filas
Multiplexor
de filas

Codificador
de columnas

Amplificadores de
lectura y puertos de
E/S

Contador de
refresco

Banco B
DRAM
(2M x 8)

Tecnologa avanzada de memorias RAM (3)


Lectura recomendada.
Compruebe cualquier otra RAM que pueda
encontrar.
Sitio web recomendado:
The RAM Guide (La gua de RAM).

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 5
Memoria externa

Tipos de memoria externa


Disco magntico
RAID
Extrable

ptico
CD-ROM
CD-de escritura (WORM)
CD-RW
DVD

Cinta magntica

Discos magnticos
Disco de metal o plstico, cubierto por un
material magnetizable (xido de hierro).
Gama de almacenamiento:
Disquetes
Disco duro Winchester
Disco duro extrable

Organizacin y formato de los


datos
Anillos concntricos o pistas:
Bandas vacas entre las pistas.
Reduccin de las bandas vacas para aumentar la
capacidad.
Mismo nmero de bits por pista (densidad de
almacenamiento variable).
Velocidad angular constante.

Pistas divididas en sectores.


El tamao mnimo de un bloque es de un sector.
Puede haber ms de un sector por bloque.

Diseo de un disco de datos


Pistas
Bandas de separacin
de pistas

S6
S6

Sectores
S5

SN

SN

S5
S1

S4

S1

S4

S3
S3

S2
S2

Interbloques

Figura 5.1. Organizacin de los datos en el disco

Discos de cabeza fija/mvil


Disco de cabeza fija
Hay una cabeza de lectura/escritura por pista.
Las cabezas se montan en un brazo rgido.

Disco de cabeza mvil


Una cabeza de lectura/escritura por cara.
Las cabezas se montan en un brazo mvil.

Discos con cabeza fija y mvil


Pistas

Cabeza fija

Cabeza mvil

Extrable o no
Disco extrable
Se puede quitar de la unidad y sustituir por otro
disco.
Proporciona una capacidad ilimitada de
almacenamiento.
Fcil transferencia de datos entre sistemas.

Disco no extrable
Se monta permanentemente en la unidad.

Disquetes
8, 5,25, 3,5.
Poca capacidad:
Ms de 1,44Mbyte (2,88M no muy usados).

Lentos.
Universales.
Baratos.

Discos Winchester (1)


Diseados por IBM en Winchester (EE.UU.).
Unidad montada.
Uno o ms platos (discos).
La presin del aire generada por el giro del
disco hace que las cabezas suban la hoja
encima de la superficie.
Cabezas demasiado pequeas para las bandas
vacas del disco.
Se estn mejorando.

Discos Winchester (2)


Universales.
Baratos.
Almacenamiento externo ms rpido.
Aumentando cada vez ms:
Ahora es normal que tenga varios gigabytes.

Discos extrables
ZIP
Barato.
Muy conocido.
Slo 100M.

JAZ
Caro.
1G.

L-120 (unidad a:)


Tambin lee los discos de 3,5.
Se ha vuelto ms conocido?

Bsqueda de sectores
Debe ser capaz de identificar el inicio de las
pistas y sectores.
Formato del disco:
Informacin adicional no disponible para el usuario.
Marca pistas y sectores.

Formato ST506
Gap1 ID Gap2 Datos Gap3 Gap1 ID Gap2 Datos Gap3

Byte de
CRC
sincro. Pista Cabeza Sector

Lectura en primer grado


Buscar otros

Byte de
Datos CRC
sincro.

Caractersticas
Cabeza fija (pocas veces) o mvil.
Extrables o no extrables.
De una sola superficie o de doble superficie
(normalmente).
De uno o varios platos.
Mecanismo de la cabeza:
Contacto (disquete)
Separacin fija
Separacin aerodinmica (Winchester)

Platos mltiples
Una cabeza por cada superficie.
Las cabezas estn unidas y alineadas.
Pistas alineadas en cada plato en forma de
cilindros.
Datos rayados por un cilindro:
Reduce el movimiento de la cabeza
Incrementa la velocidad (velocidad de transferencia)

Velocidad
Tiempo de bsqueda
Cuando se desplaza la cabeza hasta la pista
requerida.

Estado latente (y rotacional):


Esperar a que los datos roten bajo la cabeza.

Tiempo de acceso = bsqueda + estado latente.


Velocidad de transferencia.

RAID
Conjunto redundante de discos independientes.
Conjunto redundante de discos asequibles.
6 niveles de uso comn.
No jerarquizado.
Conjunto de unidades fsicas de disco vistas por
el sistema operativo como una nica unidad
lgica.
Datos distribuidos a travs de unidades fsicas.
La capacidad redundante se usa para almacenar
informacin de paridad.

RAID 0
Sin redundancia.
Datos organizados en tiras a travs de todos los
discos.
Estructura en tiras organizada cclicamente.
Incremento de velocidad:
La peticin de datos mltiples probablemente no est
en el mismo disco.
Bsqueda de discos en paralelo.
Es probable que un conjunto de datos est
estructurado en tiras a travs de los discos mltiples.

RAID 1
Discos con una estructura en espejo.
Datos estructuados en tiras a travs de todos
los discos.
2 copias de cada tira en discos separados.
Lectura desde cualquiera de los discos.
Escritura en los dos.
Recuperacin sencilla:
Sustituir el disco defectuoso y volver a estructurarlo
en espejo.
Sin tiempo de espera en la recuperacin.

Caro.

RAID 2
Los discos estn sincronizados.
Tiras muy pequeas:
A menudo como un nico byte o palabra.

La correccin de errores se calcula a partir de


los bits de cada disco.
Los distintos discos de paridad almacenan
cdigos Hamming, los cuales permiten corregir
errores, en las correspondientes posiciones.
Gran capacidad de redundancia.
Caro.
No se utiliza.

RAID 3
Similar al RAID 2.
Un solo disco redundante, no importa lo grande
que sea el conjunto de discos.
Sencillos bits de paridad para todos los
conjuntos de bits correspondientes.
En caso de fallo en la unidad, se accede a la
misma y se reconstruyen los datos desde el
resto de los dispositivos.
Velocidad de transferencia muy alta.

RAID 4
Cada disco opera independientemente.
Para aplicaciones que requieren velocidades de
peticin de E/S altas.
Tiras grandes.
Una tira de paridad se calcula bit a bit, a partir
de las correspondientes tiras de cada disco.
Bits de paridad almacenados en el disco de
paridad.

RAID 5
Como el RAID 4.
Tiras de paridad distribuidas a lo largo de todos
los discos.
Distribucin cclica para las tiras de paridad.
El disco de paridad evita el cuello de botella
encontrado en RAID 4.
Utilizado normalmente en los servidores de la red.

Almacenamiento ptico del CD-ROM


Originalmente para audio.
650Mbytes que almacenan alrededor de 70
minutos de audio.
Formado a partir de policarbonato cubierto con
una superficie altamente reflectante,
normalmente con aluminio.
Datos grabados como una serie de hoyos.
Lectura por medio de un lser reflectante.
Densidad de almacenamiento constante.
Velocidad lineal constante.

Velocidad de la unidad de
CD-ROM
Una sola velocidad de audio:
Velocidad lineal constante.
1,2 ms-1.
La pista (espiral) tiene 5,27km de longitud.
Proporciona 4.391 segundos = 73,2 minutos.

Otras velocidades se consideran mltiples:


Ejemplo:: 24x

12 Bytes
Sincr.

4 Bytes
ID

MODO

SECTOR

FF
00 x 10 00

MIN
SEG

Formato de un CD-ROM

Datos

2.048 Bytes

ECC
de la
estructura

288 Bytes

2.352 Bytes

Modo 0= campo de datos en blanco


Modo 1= datos de 2.048 Bytes + corrector de
errores
Modo 2= datos de 2.336 bytes

Acceso aleatorio al CD-ROM


Difcil.
Mover la cabeza a una posicin ms difcil.
Ajustar la velocidad correcta.
Leer la direccin.
Realizar ajustes a la localizacion requerida.

Ventajas y desventajas del


CD-ROM
Capacidad mayor (?).
Facilidad para producir en grandes cantidades.
Extrable.
Robusto.
Caro para las pocas prestaciones.
Lento.
Es slo de lectura.

Otros almacenamientos pticos


CD de escritura:
WORM.
Ahora disponible.
Compatible con las unidades de CD-ROM.

CD-RW:
Borrable.
Cada vez ms barato.
Compatible con la mayora de las unidades de CDROM.

DVD, qu encierra una palabra?


Digital Video Disk (disco vdeo digital)
Para designar un reproductor de pelculas.
Slo reproduce discos de vdeo.

Digital Versatile Disk (disco digital verstil)


Para designar la unidad de un computador.
Leer discos de computador y reproduce discos de vdeo.

Tecnologa DVD
Muchas capas.
Alta capacidad (4,7G por capa).
Una pelcua entera en un solo disco:
Usa compresin MPEG.

Por fin normalizado.


Las pelculas tienen un cdigo regional.
Los reproductores slo reproducen las pelculas
con el cdigo de la regin correspondiente.
Se puede fijar.

DVD de escritura
Muchos problemas con la normalizacin.
La primera generacin de unidades de DVD no
podan leer la primera generacin de discos de
DVD-W (de escritura).
La primera generacin de unidades de DVD no
poda leer los discos CD-RW (de lectura/escritura).
Antes de comprarlo, espere a que se implante.

Lectura en primer plano


Compruebe las opciones de almacenamiento del
disco ptico.
Compruebe el Mini Disk.

Cinta magntica
Acceso en serie.
Lento.
Muy barato.
Copia de seguridad y archivo.

Cinta de audio digital (DAT)


Utiliza cabezas rotatorias (como el vdeo).
Alta capacidad en una cinta pequea:
4Gbyte no comprimidos.
8Gbyte comprimidos.

Copia de seguridad del PC/ servidores de red.

William Stallings
Organizacin y Arquitectura
de computadores
Captulo 6
Entrada/Salida

Problemas de Entrada/Salida
Gran cantidad de perifricos
Trasmisin de diferentes cantidades de datos.
A diferentes velocidades.
En diferentes formatos.

Todos ms lentos que la CPU y la RAM


Necesidad de mdulos de E/S

Mdulo de E/S
Realiza la interfaz entre el procesador y la
memoria.
Realiza la interfaz entre uno o ms perifricos.
Ver Figura 6.1: Modelo genrico de un mdulo
de E/S.

Dispositivos externos
De interaccin con humanos
Pantalla, impresora, teclado

De interaccin con mquinas


Control y supervisacin

De comunicacin
Mdem
Tarjeta de la interfaz de red (NIC)

Funciones de un mdulo de E/S


Control y temporizacin
Comunicacin con la CPU
Comunicacin con los dispositivos
Almacenamiento temporal de datos
Deteccin de errores

Pasos de la E/S
La CPU comprueba el estado del dispositivo
preguntando al mdulo de E/S.
E/S devuelve el estado del dispositivo.
Si el dispositivo est preparado, la CPU solicita la
trasferencia de datos.
E/S obtiene el dato del dispositivo externo.
E/S transfiere los datos a la CPU.
Variaciones de salida, DMA, etc.

Diagrama de un mdulo de E/S


Interfaz al bus del sistema

Lneas
de datos

Interfaz a dispositivo externo

Registro de datos

Registro de estado/control

Lneas de
direccin

Lneas de
control

Lgica
de E/S

Lgica del
interfaz a
dispositivo
externo

Datos

Lgica del
interfaz a
dispositivo
externo

Datos

Estado
Control

Estado
Control

Decisiones de un mdulo de E/S


Ocultar o mostrar las propiedades del dispositivo
a la CPU.
Ocuparse de uno o varios dispositivos.
Controlar las funciones del dispositivo o
dejrselo a la CPU.
Tambin decisiones sobre sistemas operativos.
Ej: Unix considera como archivos todo lo que puede.

Tcnicas de E/S
Programada
Mediante interrupciones
Acesso directo a memoria (DMA)

E/S programada
La CPU tiene control directo sobre la E/S
Comprobacin del estado del dispositivo
rdenes de lectura/escritura
Transferencia de datos

La CPU espera a que el mdulo E/S acabe la


operacin
Hace perder tiempo a la CPU

Detalles de la E/S programada


La CPU solicita la operacin de E/S.
El mdulo E/S realiza la operacin.
El mdulo E/S activa los bits de estado.
La CPU comprueba peridicamente el estado de
los bits.
El mdulo E/S no informa a la CPU directamente.
El mdulo E/S no interrumpe a la CPU.
La CPU puede esperar o volver ms tarde.

rdenes de E/S
La CPU proporciona una direccin
Especifica el mdulo (y el dispositivo si >1 por mdulo)

La CPU da una orden


Control: indica al mdulo qu hacer
Ejemplo: rebobinar una cinta magntica.

Test: comprueba el estado


Ejemplo: est conectado? ha habido algn error?

Lectura/Escritura
Transfiere datos desde y hacia el dispositivo a travs del bus
de datos.

rdenes a dispositivos de E/S


La transferencia de datos con E/S programada es muy
parecida al acesso de memoria (desde el punto de vista
de la CPU).
Cada dispositivo tiene un nico identificador.
Las rdenes de la CPU contienen identificadores
(direcciones).

Instrucciones de E/S
E/S asignada en memoria
Dispositivos y memoria comparten un nico espacio de
direcciones.
E/S se parece a la memoria de lectura/escritura.
No hay rdenes especficas para E/S.
Gran variedad de rdenes de acceso a memoria.

E/S aislada
Espacios de direcciones separados.
Necesidad de lneas especiales de E/S o de memoria.
rdenes especficas para E/S.
Conjunto limitado de instrucciones.

E/S mediante interrupciones


La CPU no tiene que esperar.
No se repite la comprobacin del sistema.
El mdulo E/S enva una interrupcin cuando
est listo.

E/S mediante interrupciones:


operaciones bsicas
La CPU enva una orden READ de lectura.
El mdulo E/S obtiene los datos del perifrico
mientras que la CPU realiza otro trabajo.
El mdulo E/S interrumpe a la CPU.
La CPU solicita los datos.
El mdulo E/S transfiere los datos.

Punto de vista de la CPU


Genera una orden READ.
Pasa a realizar otro trabajo.
Comprueba las interrupciones al final de cada
ciclo de instruccin.
Si es interrumpida:
Guarda el contexto (registros).
Interrumpe el proceso.
Bsqueda y almacenamiento de instrucciones

Considera los sistemas operativos.

Cuestiones de diseo
Cmo saber qu dispositivo ha provocado la
interrupcin?
Cmo elegir la interrupcin que se debe
atender?
Ej. una rutina de interrupcin que es interrumpida.

Identificacin del mdulo que


interrumpe (1)
Diferentes lneas para cada mdulo
PC
Limita el nmero de dispositivos

Consulta software
La CPU consulta a cada mdulo
Resulta lenta

Identificacin del mdulo que


interrumpe (2)
Conexin en cadena o consulta hardware
La lnea de reconocimiento de interrupcin se
conecta encadenando los mdulos.
El mdulo que responde coloca un vector en el bus.
La CPU emplea el vector para identificar la rutina de
servicio.

Arbitraje de bus
El mdulo debe disponer del control del bus antes de
lograr la interrupcin.
Ej: bus PCI y puerto SCSI

Interrupciones mltiples
Todas las lneas de interrupcin tienen un orden
de prioridad.
Las lneas con ms prioridad pueden interrumpir
a las lneas con menos.
Si existe un maestro del bus, slo el maestro
puede interrumpir.

Ejemplo: bus de PC
El 80386 tiene slo una lnea de peticin de
interrupcin.
Los sistemas basados en el 80386 emplean un
rbitro de interrupciones 82C59A.
El 82C59A tiene 8 lneas de interrupcin.

Secuencia de acontecimientos
El 8259A acepta la interrupcin.
El 8259A determina la prioridad.
El 8259A activa la seal 8086 (sita la seal
INTR en la lnea adecuada).
El procesador reconoce la seal.
El 8259A coloca el vector apropiado en el bus de
datos.
El procesador procesa la interrupcin.

Diseo de interrupcin del PC


8259A
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7

8086

INTR

Sistema de interrupcin
del bus ISA
El bus ISA sirve de enlace entre dos 8259A.
El enlace se realiza con la seal de interrupcin
2.
Proporciona 15 lnes.
16 lneas menos una para el enlace.

IRQ 9 sirve para redirigir lo que intente utilizar


el IRQ 2.
Compatibilidad hacia atrs.

Incorporado en el chip.

Diseo de interrupcin ISA


(IRQ 2)

8259A
IRQ0 (8)
IRQ1 (9)
IRQ2 (10)
IRQ3 (11)
IRQ4 (12)
IRQ5 (13)
IRQ6 (14)
IRQ7 (15)

8259A
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7

80x86

INTR

Lecturas bsicas
http://www.pcguide.com/ref/mbsys/res/irq/func.htm

Visite tambin la pgina


http://www.pcguide.com/

Acceso directo a memoria


La E/S programada y con interupciones necesita
la intervencin directa de la CPU.
La velocidad de transferencia es limitada.
La CPU permanece ocupada mucho tiempo.

El DMA es la solucin.

Funcionamiento del DMA


Requiere un mdulo adicional (hardware) en el
bus.
El mdulo del DMA obtiene el control de la CPU
para transferir datos.

Mecanismo del DMA


La CPU envia una orden al mdulo de DMA:
Lectura/Escritura
Direccin del dispositivo
Direccin inicial de memoria para datos
Cantidad de datos que hay que transferir

La CPU continua con otro trabajo.


El mdulo del DMA realiza la transferencia.
El mdulo del DMA enva una seal de
interrupcin cuando ha acabado.

Transferencia del DMA


Robo de ciclo
El mdulo de DMA roba el bus durante un ciclo.
Transfiere una palabra.
No es una interrupcin.
El procesador no guarda el contexto.

El procesador se detiene justo antes de acceder


al bus.
Ejemplo: Antes de un operando o una carga de
datos.

La CPU es ms lenta pero no tanto como si


relizara la transferencia.

Adems...
Qu efecto tiene esa ocupacin de memoria en
el DMA?
Pista: En qu medida estn disponibles los
buses?

Configuraciones del DMA (1)

CPU

Mdulo de
DMA

E/S

E/S

Memoria

Bus nico, DMA independiente.


Cada transferencia utiliza dos veces el bus.
E/S va a DMA y el DMA a la memoria.

La CPU se interrumpe dos veces.

Configuraciones del DMA (2)


CPU

Mdulo de
DMA

Mdulo de
DMA

Memoria

E/S
E/S

E/S

Bus nico, DMA integrado.


El mdulo puede controlar ms de un dispositivo.
Cada transferencia usa el bus una vez.
Del DMA a la memoria.

La CPU se interrumpe solo una vez.

Configuraciones del DMA (3)


CPU

Mdulo
de DMA
E/S

E/S

Memoria

E/S

Bus de E/S separado.


El bus se encarga de todos los dispositivos.
activados del DMA.
Cada transferencia usa el bus una vez.
Del DMA a la memoria.

La CPU se interrumpe solo una vez.

E/S

Canales de E/S
Los dispositivos de E/S cada vez son ms
sofisticados.
Por ejemplo, las tarjetas grficas 3D.
La CPU ordena al mdulo E/S realizar la
transferencia.
El mdulo E/S realiza toda la transferencia.
Aumenta la velocidad.
Libera de carga a la CPU
El procesador especializado es ms rpido

Tipos de interfaces
Conecta los dispositivos entre s.
Hay un procesador, memoria o buses
especializados?
Ejemplos: SCSI, FireWire.

Interfaz SCSI (Small


Computer Systems Interface)
Interfaz paralela.
8, 16 o 32 lneas de datos.
Dispositivos encadenados (daisy chained).
Los dispositivos son independientes.
Los dispositivos pueden comunicarse entre s y
tambin con el anfitrin (host).

SCSI - 1
A principios de los 80
8 lneas de datos
5MHz
Velocidad de datos de 5MBytes/s
Siete dispositivos
Ocho si incluimos el interfaz del anfitrin

SCSI - 2
1991
16 y 32 lneas de datos
10MHz
Velocidad de datos de 20 o 40 Mbytes/s
(Se est investigando el Ultra/Wide SCSI)

Seal del SCSI (1)


Entre el dispositivo iniciador y el seleccionado
Normalmente anfitrin y dispositivo

Bus libre? (frente a Ethernet)


Arbitraje: un dispositivo toma el control del bus
(frente a PCI)
Seleccin de objetivo
Reseleccin
Permite la reconexin despus de la suspensin
Por ejemplo, si una orden tarda en ejecutarse, el bus
puede quear liberado

Seal del SCSI (2)


Orden: solicitar un objetivo al iniciador
Solicitud de datos
Solicitud de informacin de estado
Solicitud de mensaje (dos sentidos)

Fases del bus SCSI


Encendido

Bus
libre

Arbitraje

(Re)Seleccin

Orden,
datos,
estado,
mensaje

Diagrama de tiempo SCSI


Retardo de
estabilizacin
del bus

El iniciador
activa
el BSY

Retardo de bus libre

Retardo de establecimiento del bus (Bus Set Delay)


Retardo de borrado del bus (Bus Clear Delay)
Retardo de arbitraje
Retardo de borrado del bus ms retardo de estabilizacin del bus
El dispositivo seleccionado activa BSY
Los sistemas sin arbitraje empiezan aqu

Primer byte
ltimo byte
IDs
IDs
de
la
orden
de la orden
Arb.
Inicio y
Bus libre Arbitraje
Orden
Destino

(Bus de datos)

Seleccin

Byte de
datos

Byte de
datos

Entrada de datos

Byte de
estado
Estado

Orden completa
Entrada de
mensaje
Bus libre

Configuracin de SCSI
El bus debe haber finalizado en cada extremo.
Normalmente un extremo corresponde al adaptador
del host.
Conexin a un terminador o conmutador(es).

Debe establecerse la ID de SCSI.


Jumpers o conmutadores.
nico en cadena.
0 (cero) para el dispositivo de arranque.
El nmero mayor goza de prioridad en el arbitraje.

IEEE 1394 FireWire


Bus en serie de alta rendimiento.
Rpido.
Costes reducidos.
Fcil de implementar.
Tambin se emplea en cmaras digitales, VCR y
TV.

Configuracin del FireWire


Dispositivos encadenados (daisy chain).
Ms de 63 dispositivos en un solo puerto.
En realidad 64, de los cuales uno es la interfaz.

Pueden conectarse ms de 1.022 buses con


adaptadores.
Configuracin automtica.
No hay terminadores de bus.
Puede tener estructura de rbol.

Comparacin entre
FireWire y SCSI
Disco magntico

Escner

ID= 6

CPU

CD ROM

ID= 2

ID= 3

ID= 7

Terminador
(puede ser interno)

(a) Ejemplo de configuracin SCSI

Terminado
r
Interfaz
estreo

CD-ROM

CPU

Cmara digital

(b) Ejemplo de configuracin FireWire

Disco magntico

Escner

Impresora

Las tres capas de FireWire


Fsica
Medio de trasmisin, caractersticas elctricas y de
sealizacin.

Enlace
Transmisin de datos en paquetes.

Transaccin
Protocolo de pregunta-respuesta

FireWire: Capa fsica


Velocidad de datos entre 25 y 400Mb/s.
Dos formas de arbitraje.
Basado en la estructura de rbol.
Las races actan como rbitro.
El primero en llegar tiene preferencia.
La prioridad natural controla las demandas
simultneas.
Por ejempo, el que est ms cerca de la raz.

Arbitraje justo.
Arbitraje urgente.

FireWire: Capa de enlace


Dos tipos de transmisin
Asncrona
Se transfiere como paquete una cantidad variable de datos
y varios bytes de transaccin de datos.
A una direccin explcita.
Se devuelve informacin de reconocimiento.

Iscrona
Cantidad variable de datos en secuencias de paquetes de
tamao fijo a intervalos regulares.
Direccionamiento simplificado.
No utiliza reconocimiento.

Subacciones FireWire
Subaccin 1: peticin

Subaccin 2: respuesta

Intervalo de
subaccin

Intervalo de
subaccin

Intervalo de
subaccin

Arb

Reconocimiento

Paquete

Arb

Reconocimiento

Paquete

Intervalo de
reconocimiento

Intervalo de
reconocimiento
(a) Ejemplo de subaccin asncrona

Subaccin 1: peticin

Subaccin 2: respuesta

Intervalo de
subaccin

Intervalo de
subaccin

Arb

Reconocimiento

Paquete

Reconocimiento

Paquete

Intervalo de
reconocimiento

Intervalo de
reconocimiento

(b) Subaccin asncronas concatenadas


Primer canal

Segundo canal

Intervalo
isoc.

Intervalo
isoc.

Arb

Paquete

Arb

Paquete

(c) Ejemplo de subacciones iscronas

Tercer canal

Intervalo
isoc.

Intervalo
isoc.

Arb

Paquete

Lecturas bsicas
Busque ms informacin sobre el Universal
Serial Bus (USB).
Compare con otros modelos de comunicacin
habituales, como Ethernet.

William Stallings
Organizacin y arquitectura
de computadores
Captulo 7
El soporte del sistema operativo

Objetivos y funciones del


sistema operativo
Comodidad
Hace que un computador sea ms fcil de usar.

Eficiencia
Permite que los recursos del computador se
aprovechen mejor.

Capas y puntos de vista de un


computador
Usuario final

Programador
Programas de aplicacin
Utilidades
Sistema operativo
Hardware del computador

Diseador del
sistema operativo

Servicios del sistema operativo


Creacin de programas
Ejecucin de programas
Acceso a los dispositivos de E/S
Acceso controlado a los ficheros
Acceso al sistema
Deteccin de errores y respuesta
Contabilidad

El sistema operativo como


gestor de recursos
COMPUTADOR

Memoria

Controles de
E/S

DISPOSITIVOS DE E/S

Software
del sistema
operativo
Programas
y datos

Procesador

Procesador

Almacenamiento
S.O.
Programas
Datos

Tipos de sistemas operativos


Interactivos
Sistemas de colas
Un solo programa (monoprogramados)
Multiprogramados (multirea)

Los primeros sistemas


De finales de los 40 a mediados de los 50.
No eran sistemas operativos.
El programador interactuaba directamente con
el hardware.
Dos problemas fundamentales:
Planificacin
Tiempo de preparacin

Sistemas de colas simples


Programa monitor residente.
El ususario enva los trabajos a un operador.
El operador pone los trabajos en cola.
El monitor controla la secuencia de eventos para
procesar la cola.
Cuando el trabajo termina, se devuelve el
control al monitor, que inmediatamente lee el
siguiente trabajo.
El monitor se encarga de la planificacin.

Lenguaje de control de trabajos


Se utiliza para dar instrucciones al monitor.
Las instrucciones de control de trabajo
normalmente empiezan con $.
Por ejemplo:
$JOB
$FTN
...
$LOAD
$RUN
...
$END

Instrucciones Fortran

Datos

Funciones necesarias del


hardware
Proteccin de memoria
Para proteger el monitor.

Temporizacin
Para evitar que un nico trabajo monopolice el
sistema.

Instrucciones privilegiadas
Slo pueden ser ejecutadas por el monitor.
Ejemplo: instrucciones de E/S.

Interrupciones
Permite al procesador ceder y recuperar el control.

Sistemas de colas
multiprogramados
Los dispositivos de E/S son muy lentos.
Mientras que un programa est esperando una
instruccin de E/S, otro puede utilizar la CPU.

Monoprogramacin

Ejecucin

Ejecucin
Espera

Tiempo

Espera

Multiprogramacin de dos
programas

Programa A

Programa B

Ejecucin

Espera

Espera

Ejecucin

Ejecucin

Ejecucin

Espera

Ejecucin

Combinado

B
Tiempo

Espera

Espera

Ejecucin

Espera

Espera

Multiprogramacin de tres
programas
Programa A

Programa B

Programa C

Ejecucin

Espera

Ejecucin

Espera

Ejecucin

Espera

Ejecucin

Espera

Ejecucin

Espera

Ejecucin

Espera

Ejecucin
Combinado

B
Tiempo

Espera

Espera

Ejecucin
C

Sistemas de tiempo compartido


Permiten al usuario interactuar directamente
con el computador.
Ejemplo: en trabajos interactivos

La multiprogramacin permite a un determinado


nmero de usuarios interactuar con el
computador.

Planificacin
Es la clave de la multiprogramacin
Planificacin a largo plazo
Planificacin a medio plazo
Planificacin a corto plazo
Planificacin de E/S

Planificacin a largo plazo


Determina qu programas se admiten para ser
procesados.
De este modo, controla el grado de
multiprogramacin.
Una vez admitido, un trabajo pasa a ser un
proceso y se aade a una cola asociada al
planificador a corto plazo.
En algunos sistemas, se produce una funcin de
intercambio y el trabajo se aade a la cola del
planificador a medio plazo.

Planificacin a medio plazo


Es parte de la funcin de intercambio (descrita
en la Seccin 7.3.).
Normalmente se basa en la necesidad de
gestionar la multiprogramacin.
Si el sistema no utiliza memoria virtual, este
planificador tambin se encargar de la gestin
de la memoria.

Planificacin a corto plazo


Tambin llamado distribuidor.
Toma la decisin ms especfica: qu trabajo se
ejecuta a continuacin.
Es decir, qu trabajo utilizar el procesador
durante el prximo tiempo de espera.

Estados de los procesos


Asignar
procesador

Nuevo

Iniciar

Preparado

En ejecucin
Suspender

Se produce
el evento
Esperar evento

En espera

Salida

Salida

Bloque de control de procesos


Identificador
Estado
Prioridad
Contador de programa
Punteros a memoria
Datos de contexto
Informacin del estado de las E/S
Informacin estadstica

Elementos clave de un sistema


operativo
Sistema operativo

Llamadas a
servicios desde
procesos

Interrupciones
desde procesos

Interrupciones
desde E/S

Gestor de
llamadas a
servicios

Gestor de
interrupcin

Cola a
largo
plazo

Cola a
corto
plazo

Colas de
E/S
Planificador
a corto
plazo

Cede el control

Planificacin del procesador


Solicitud
de proceso

Cola a
largo plazo

Cola a
corto plazo

CPU

E/S

Cola de E/S

E/S

Cola de E/S

E/S

Cola de E/S

FINAL

Gestin de la memoria
Monoprogramacin
La memoria se divide en dos partes.
Una para el sistema operativo (el monitor residente).
Otra para el programa que se est ejecutando.

Multiprogramacin
La parte de usuario se subdivide y se comparte
entre los distintos procesos activos.

Intercambio (swapping)
Problema:
las actividades de E/S son tan lentas en
comparacin con el procesador que, incluso en
los sistemas multiprogramados, puede
permanecer inactivo la mayor parte del tiempo.
Soluciones:
Se puede ampliar la memoria principal.
Es caro.
Origina procesos mayores.

Otra solucin es el intercambio.

Qu es el intercambio?
Tenemos una cola a largo plazo de solicitudes de proceso
almacenadas en disco.
Los procesos se intercambian a medida que queda espacio
disponible.
Cuando un proceso ha concluido, se saca de la memoria principal.
Si ninguno de los procesos en la memoria est en el estado
preparado (por ejemplo, si todos estn esperando una operacin de
E/S):
El procesador intercambia uno de los procesos bloqueados, situndolo
en una cola intermedia.
A continuacin, acepta una nueva peticin de proceso.
Pero... el intercambio es una operacin de E/S.

Definicin de particiones
La memoria se divide en secciones a las que se
asignan los procesos (incluido el sistema
operativo).
Particiones de tamao fijo:
Pueden tener distinto tamao.
El proceso que se introduce en memoria se sita en
la particin ms pequea que puede incluirlo.
Se desperdicia algo de memoria.
Consecuencia:particiones de tamao variable.

Particiones
fijas

Sistema operativo
8M

Sistema operativo
8M
2M

8M

4M

6M
8M
8M
8M

8M
8M

8M

12 M

8M
16 M

8M

(a) Particiones de igual tamao

(b) Particiones de distinto tamao

Particiones de
tamao variable (1)
Se asigna al proceso exactamente la memoria que
necesita.
Esto deja un hueco al final de la memoria, demasiado
pequeo para poderse utilizar.
Tan slo queda un hueco pequeo (se desperdicia menos
meoria).

Cuando todos los procesos estn bloqueados, se saca


uno de la memoria y se carga otro nuevo.
Puede que el proceso nuevo ocupe menos espacio que
el que se ha retirado.
Entonces queda otro hueco.

Particiones de tamao variable


(2)
Al final quedan muchos huecos pequeos
(fragmentacin).
Soluciones:
Fusin: los huecos contiguos se unen en un hueco
ms grande.
Compactacin: de vez en cuando, el sistema
operativo desplaza los procesos en memoria para
juntar toda la memoria libre en un bloque (frente a la
defragmentacin de disco).

Efecto de la particin dinmica

Sistema
operativo

128K

Sistema
operativo
Proceso 1

Sistema
opeativo

Sistema
opeativo
320K

Proceso 1
Proceso 2

320K

Proceso 1

224K

Proceso 2

576K

Sistema
operativo

Sistema
operativo

Proceso 1

Proceso 1

224K
Proceso 3

288K
64K

224K

Proceso 3

896K

320K

320K

Proceso 4 128K
96K
Proceso 3

352K

Sistema
operativo

320K

288K
64K

288K
64K

Sistema
operativo
320K

Proceso 4 128K
96K
Proceso 3 288K
64K

Proceso 2 224K
96K
Proceso 4 128K
96K
Proceso 3 288K
64K

Reposicionamiento
No es seguro que el proceso se cargueen la misma
posicin de la memori.
Las instrucciones contienen direcciones:
Direcciones de datos
Direcciones de instrucciones (de salto)

Direccin lgica: indica una posicin relativa al comienzo


del programa.
Direccin fsica: indica la posicin actual en la memoria
principal.
Conversin automtica utilizando la direccin base.

Paginacin
La memoria se divide en partes iguales y relativamente
pequeas (marcos de pgina).
Los programas (procesos) tambin se dividen en partes
iguales y relativamente pequeas (pginas).
Se asigna el nmero de marcos de pgina que un
proceso necesita.
El sistema operativo mantiene una lista de tres marcos.
Un proceso no necesita marcos de pgina contiguos.
El procesador utiliza una tabla de pginas para cada
proceso.

Direccin lgica y fsica:


paginacin
Memoria
principal

Pgina 0
de A
Nmero Direccin relativa Nmero Direccin relativa
de pgina dentro de la pgina de pgina dentro del marco
Direccin
lgica

Direccin
fsica

Pgina 1
de A

Pgina 2
de A

Pgina 3
de A

Tabla de pginas
del proceso A

Memoria virtual
Paginacin por demanda
No es necesario que todas las pginas de un proceso se
encuentren en la memoria.
Cada pgina se introduce en la memoria slo cuando se
necesita.

Fallo de pgina
La pgina deseada no se encuentra en la memoria.
El sistema operativo debe cargar la pgina deseada.
Es posible que el sistema necesite sacar una pgina para dejar
un hueco libre.
Se selecciona la pgina que se va a sacar en funcin de su
historia reciente.

Hiperpaginacin
Una memoria pequea almacena demasiados procesos.
El sistema operativo pasa la mayor parte del tiempo
intercambiando pginas.
Apenas se realizan trabajos efectivos.
La luz del disco permanece encendida todo el tiempo.
Soluciones:
Un buen algoritmo que determine la pgina que se ha de remplazar.
Reducir la cantidad de procesos en curso.
Aumentar la memoria.

Ventajas
No es necesario que la memoria almacene todos
los procesos que se van a ejecutar.
Podemos intercambiar las pginas que
necesitemos.
Por lo tanto, podemos ejecutar procesos
mayores que toda la memoria.
La memoria principal recibe el nombre de
memoria real.
El programador o usuario percibe una memoria
mucho mayor (memoria virtual).

Estructura de la tabla de
pginas
Direccin virtual
Pgina #

Desplazamiento

Tabla de pginas
Pgina #

Elemento

Cadena

(Dispersin)

Marco #

Marco #
Tabla de dispersin

Tabla de pginas invertida

Desplazamiento

Direccin real

Segmentacin
Normalmente la paginacin es invisible para el
programador.
La segmentacin, en cambio, es visible.
Normalmente el programador asignar
segmentos distintos a programas y datos.
Puede haber distintos segmentos de programas
y de datos.

Ventajas de la segmentacin
Simplifica la gestin de estructuras crecientes de
datos.
Permite modificar los programas y recopilarlos
independientemente, sin que sea necesario
volver a enlazar y cargarlos todos.
Permite que varios procesos compartan
segmentos.
Se facilita la proteccin.
Algunos sistemas combinan la segmentacin y
la paginacin.

Lecturas recomendadas
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 7.
Operating Systems, Internals and Design
Principles, W. Stallings, Prentice Hall, 1998
Pginas web sobre sistemas operativos.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 8
Aritmtica del computador

La unidad aritmtico-lgica (ALU)


Realiza las operaciones aritmticas y lgicas.
El resto de elementos estn para suministrar datos a
esta unidad.
Representacin de enteros.
Puede expresar cantidades en coma flotante (reales).
Puede poner una unidad separada en las operaciones
con la unidad de coma flotante (coprocesador
matemtico).
En las operaciones de la unidad de coma flotante
puede incluir un chip en una unidad separada
(microprocesador 486DX +).

Entradas y salidas de la ALU

Unidad
de
control

Registros

Indicadores

Registros

Representacin de enteros
Para representar los nmeros, slo pueden
utilizarse los dgitos 1 y 0.
Los nmeros positivos se almacenan en el sistema
binario.
Ejemplo: 41= 00101001.

No dispone de signo menos.


No dispone de coma.
Representacin en signo-magnitud.
Representacin en complemento a dos.

Representacin en signo-magnitud
El bit ms a la izquierda de la palabra es un bit
de signo.
0 significa nmero positivo.
1 significa nmero negativo.
+18 = 00010010
-18 = 10010010
Problemas:
Se necesita tener en cuenta, tanto los signos de los
nmeros como sus magnitudes, si se emplea la
aritmtica en coma flotante.
Hay dos representaciones del nmero 0 (+0 y -0).

Representacin en
complemento a dos
+3 = 00000011
+2 = 00000010
+1 = 00000001
+0 = 00000000
-1 = 11111111
-2 = 11111110
-3 = 11111101

Beneficios
Una representacin de 0.
Facilita las operaciones aritmticas (vase a
continuacin).
Facilita bastante las operaciones con nmeros
negativos.
3 = 00000011
El complemento booleano tiene como resultado:
11111100.
Sumar 1 al patrn de bits resultante: 11111101.

Ilustracin geomtrica de los nmeros


enteros en complemento a dos
Sustraccin
de nmeros
positivos

Adicin de
nmeros
positivos

(a) Nmeros de 4 bits

Sustraccin de
nmeros
positivos

Adicin de
nmeros
positivos

(b) Nmeros de n bits

Caso especial de negacin 1


0=
00000000
Bit a bit sin signo
11111111
Sumarle 1 al bit menos significativo
(LSB) situado a la derecha
+1
Resultado
1 00000000
Se ignora el desbordamiento, por lo tanto:
- 0 = 0

Caso especial de negacin 2


-128 =
10000000
Bit a bit sin signo
01111111
Sumarle 1 al LSB
+1
Resultado
10000000
De este modo:
-(-128) = -128 X
Controlar al bit ms significativo o MSB (tambin
llamado bit de signo).
Debera cambiar durante la negacin.

El rango de nmeros
8 bits en complemento a dos
+127 = 01111111 = 27 -1
-128 = 10000000 = -27

16 bits en complemento a dos


+32767 = 011111111 11111111 = 215 - 1
-32768 = 100000000 00000000 = -215

Conversin entre longitudes de


bits diferentes
Para los nmeros positivos rellenar con ceros
+18 =
00010010
+18 = 00000000 00010010
Para los nmeros negativos rellenar con unos
-18 =
10010010
-18 = 11111111 10010010
Es decir, aadir los MSB (o bit de signo).

Suma y resta
Suma binaria normal.
Observar el bit de signo para detectar el
desbordamiento.
Se obtiene el complemento a dos del
substraendo y se le suma al minuendo:
es decir, a - b = a + (-b)

Por lo tanto, slo se necesita la suma y los


complementadores.

Hardware para la suma y la resta

Registro B

Registro A

Complementador

SW

OF = Bit de desbordamiento
SW = Conmutador (selecciona
suma o resta)

OF

Sumador

Multiplicacin
Es una operacin compleja.
Generar productos parciales para cada dgito.
Tener cuidado con la posicin de los valores (en
forma de columna).
Sumar los productos parciales.

Ejemplo de multiplicacin
1011 Multiplicando (11).
x 1101 Multiplicador (13).
1011 Productos parciales.
0000
Nota: Si el bit del multiplicador es 1, el producto parcial es el

1011
multiplicando (colocar el valor hacia la izquierda).
1011
De lo contrario es 0.
10001111 Producto (143).
Nota: Es necesario que el resultado sea de longitud
doble.

Multiplicacin de binarios sin


signo
Multiplicando
M n-1

M0

Sumar

Sumador de n-bits

Lgica de control de
desplazamientos y sumas

Desplazar a derecha

An-1

A0

Q n-1

Q0

Multiplicador

Ejemplo de clculo
Valores iniciales
Suma
Desplazamiento

Primer ciclo

Suma

Segundo ciclo

Suma
Suma
Desplazamiento

Tercer ciclo

Suma
Desplazamiento

Cuarto ciclo

Diagrama de flujo para la


multiplicacin de binarios sin signo
INICIO
C, A
0
M
Multiplicando
Q
Multiplicador
Cuenta
n
No

Q0 = 1?

C, A

A+M

Desplazar C, A, Q
Cuenta
cuenta - 1
No

Cuenta = 0?

FIN

Producto en A, Q

Multiplicacin de nmeros
negativos
No puede realizarse.
Solucin 1:
Convertirlos en nmeros positivos, si es necesario.
Multiplicar como se ha explicado anteriormente.
Si los signos son distintos, poner el signo menos al
resultado.

Solucin 2:
Algoritmo de Booth.

Algoritmo de Booth
INICIO

A
0
Q-1
0
M
Multiplicando
Q
Multiplicador
Cuenta n
= 10
A

A-M

= 01

Q0 , Q -1
= 00 = 11

A+M

Desplazamiento
aritmtico a derecha:
A, Q, Q -1
Cuenta
Cuenta - 1
No

Cuenta = 0?

INICIO
FIN

Ejemplo de algoritmo de Booth


Valores iniciales
A A-M
Desplazamiento

Primer ciclo

Desplazamiento

Segundo ciclo

AA AA++M
M
Desplazamiento
Desplazamiento

Tercer
Tercerciclo

Desplazamiento

Cuarto ciclo

ciclo

Divisin
Es algo ms compleja que la multiplicacin.
El proceso de divisin de nmeros negativos es
an ms complicado.
Est basada en el proceso de divisin larga.

Divisin de enteros binarios sin


signo
00001101

1011 10010011
1011
001110
Partial
Restos
1011
Parciales
Remainders
001111
1011
100
Divisor
Divisor

Cociente
Quotient
Dividendo
Dividend

Resto
Remainder

Nmeros reales
Fracciones.
Podra realizarse mediante el proceso binario:
1001.1010 = 24 + 20 +2-1 + 2-3 =9,625

Dnde est la coma binaria?


Es fija?
Pocas veces.

Se mueve?
Cmo se sabe dnde est?

Bit de signo

Coma flotante
Exponente
sesgado

Parte significativa o mantisa

+/- ,mantisa x 2exponente


Es un nombre inapropiado.
En realidad, la coma se sita entre el bit de
signo y la mantisa.
El exponente indica la colocacin del valor (es
decir, la posicin de la coma).

Ejemplos de coma flotante


Signo de la
mantisa

8 bits

32 bits

Exponente sesgado

Mantisa
a) Formato

0,11010001 x 2 10100 = 0
- 0,11010001 x 2 10100 = 1
0,11010001 x 2 -10100 = 0
- 0,11010001 x 1 -10100 = 1

10010011
10010011
01101011
01101011
b) Ejemplos

10100010000000000000000
10100010000000000000000
10100010000000000000000
10100010000000000000000

Signos en coma flotante


La mantisa se almacena en complemento a dos.
El exponente est en la representacin sesgada.
Ejemplo: Un sesgo de 128 comprende:
Un campo de 8 bits.
Los valores verdaderos que van desde 0 a 255.
La resta de 128 para obtener el resultado correcto.
El rango de -128 a +127.

Normalizacin
Los nmeros en coma flotante se suelen
normalizar.
Es decir, el exponente se ajusta para que el bit
ms significativo (MSB) de la mantisa sea 1.
Debido a que siempre es 1, no hay necesidad de
almacenarlo.
(En cambio, en la notacin cientfica los
nmeros estn normalizados de tal forma que
hay un dgito antes de la coma).
Ejemplo: 3,123 x 103.

Los rangos en coma flotante


Para un nmero de 32 bits:
Exponente de 8 bits.
+/- 2256 1,5 x 1077

Precisin:
Como consecuencia de haber cambiado la posicin
del bit menos significativo (LSB) en la mantisa.
Mantisa de 23 bits: 2-23 1,2 x 10-7 .
La coma estar situada en la sexta posicin.

Nmeros representables
Enteros representables

Recta Real
(a) Enteros en complemento a dos

Desbordamiento
negativo

Desbordamiento Desbordamiento a
a cero negativo cero positivo
Nmeros negativos
Nmeros positivos
representables
representables
Cero

0,5 X

0,5 X

(b) Nmeros en coma flotante

Desbordamiento
positivo

Recta
Real

Formato IEEE 754


Estndar para el almacenamiento en coma flotante.
Define los formatos tanto de 32 como de 64 bits.
Con exponentes de 8 y de 11 bits,
respectivamente.
Los formatos ampliados incluyen bits adicionales en
el exponente y en la mantisa para los resultados
intermedios.

Aritmtica en coma flotante:


Suma y resta
Comprobar valores cero.
Ajuste de mantisas (ajuste de exponentes).
Sumar o restar las mantisas.
Normalizar el resultado.

Aritmtica en coma flotante:


Multiplicacin y divisin
Comprobar valores cero.
Sumar y restar exponentes.
Multiplicar y dividir mantisas (teniendo en
cuenta el signo).
Normalizar.
Redondear.
Todos los resultados intermedios deben doblar
su longitud al ser almacenados.

Multiplicacin
en coma
flotante

MULTIPLICAR

X = 0?

S
Z

No

Y = 0?

No

Sumar
exponentes

S
0

Restar
sesgo

RETORNAR
Desbordamiento en
exponente?

Indicar
desbordamiento

No
Desbordamiento
a cero en
exponente?

Indicar
desbordamiento a
cero

No
Multiplicar
mantisas

Normalizar

Redondear

RETORNAR

Divisin en
coma
flotante

DIVIDIR

X = 0?

No

S
Z

Y = 0?

No

Restar
exponentes

S
0

RETORNAR

Sumar
sesgo

Desbordamiento en
exponente?

Indicar
desbordamiento

No
Desbordamiento a cero
en exponente?

Indicar
desbordamiento a
cero

No
Dividir
mantisas

Normalizar

Redondear

RETORNAR

Lecturas y sitios web


recomendados
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 8.
El formato IEEE 754 en la pgina web de IEEE.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 9
Repertorios de instrucciones:
caractersticas y funciones

Qu es un repertorio de
instrucciones?
El conjunto completo de instrucciones que se
realizan en la CPU.
Cdigo mquina.
Binario.
Generalmente representado por un conjunto de
cdigos de ensamblaje.

Elementos de una instruccin


Cdigo de operacin (Codop)
Referencia a operandos fuente

Referencia al operando resultado


Referencia a la siguiente instruccin

Dnde se almacenan los


operandos?
Memoria principal (o memoria virtual, o bien
cache)
Registro de la CPU
Dispositivo de E/S

Representacin de las
instrucciones
En el cdigo mquina, cada instruccin tiene
una nica secuencia de bits.
Las representaciones simblicas que se utilizan
son:
Ejemplo: ADD (sumar), SUB (restar), LOAD (cargar
datos de memoria).

Los operandos tambin pueden representarse


de la siguiente forma:
ADD A, B.

Tipos de instrucciones
Procesamiento de datos
Almacenamiento de datos (memoria principal)
Transferencia de datos (E/S)
Control del flujo del programa

Nmero de direcciones
Instrucciones de tres direcciones:
Operando 1, operando 2, resultado
a = b + c
Puede que haya otra instruccin ms adelante
(generalmente implcita).
No es comn.
Necesita palabras de gran longitud para albergar
todo:

Nmero de direcciones
Instrucciones de 2 direcciones:
Una direccin es, a su vez, operando y resultado.
a = a + b
Reduce la longitud de la instruccin.
Requiere trabajo adicional:
Almacenamiento temporal para albergar ms resultados.

Nmero de direcciones
Instrucciones de una direccin:
La segunda direccin est implcita.
Generalmente con un registro (acumulador).
Normalmente en las primeras mquinas.

Nmero de direcciones
Instrucciones de 0 (cero) direcciones:
Todas las direcciones estn implcitas.
Utiliza una pila (stack).
Ejemplo: push a

push b

add

pop c
c = a + b

Cuntas direcciones
Ms direcciones por instruccin:
Instrucciones ms complejas.
Ms registros:
Las operaciones entre los registros son ms rpidas.

Menos instrucciones por programa.

Menos direcciones por instruccin:


Instrucciones menos complejas.
Ms instrucciones por programa.
La captacin / ejecucin de las instrucciones es ms
rpida.

Decisiones en el diseo
Repertorio de operaciones:
Cuntas operaciones hay que considerar?
Qu pueden hacer?
Son complejas?

Tipos de datos.
Formatos de instrucciones:
Longitud del campo del cdigo de operaciones.
Nmero de direcciones.

Decisiones de diseo
Registros:
Nmero de registros de la CPU disponibles.
En qu tipo de registros se pueden ejecutar qu
tipo de operaciones?

Modos de direccionamiento.
RISC (Computador de conjunto reducido de
instrucciones), en contraposicin a CISC
(Computador de conjunto complejo de
instrucciones).

Tipos de operandos
Direcciones.
Nmeros:
Enteros o en coma flotante.

Caracteres:
ASCII (Cdigo Estndar Americano para Intercambio
de Informacin), etc.

Datos lgicos:
Bits o flags (indicadores)
(Por otro lado: Qu diferencia existe entre nmeros y caracteres?)

Tipos de datos en Pentium


Byte (8 bits).
Palabra (16 bits).
Palabra doble (32 bits).
Palabra cudruple (64 bits).
El direccionamiento se realizan mediante una
unidad de 8 bits.
Las palabras dobles de 32 bits se lee en
direcciones divisibles por 4.

Tipos de datos especficos


General: con contenido binario arbitrario.
Entero : un valor binario.
Ordinal : entero sin signo
BCD (decimal codificado en binario) desempaquetado:
un dgito en cada byte.
BCD empaquetado : 2 dgitos BCD en un byte.
Puntero de proximidad (puntero cercano) :
desplazamiento de 32 bits dentro dentro de un
segmento.
Campo de bits.
Cadena de bytes.
Coma flotante.

Tipos de datos de coma


flotante en el Pentium II
Consulte la pgina 322 del libro de Organizacin
y Arquitectura de Computadores de William
Stallings.

Tipos de operaciones
Transferencias de datos.
Aritmticas.
Lgicas.
Conversin.
Entrada/Salida.
Control del sistema.
Control de flujo.

Transferencia de datos
Especificar:
Fuente.
Destino.
Cantidad de datos.

Diferentes instrucciones para diferentes


movimientos:
Ejemplo: IBM 370.

O una instruccin y diferentes direcciones


Ejemplo: VAX.

Aritmticas
Add (sumar), Substract (restar), Multiply
(multiplicar), Divide (dividir).
Nmeros enteros con signo.
Nmeros en coma flotante?
Puede incluir:
Increment: incrementa en 1 el operando (a++).
Decrement: decrementa en 1 el operando (a--).
Negate: cambia el signo del operador (-a).

Lgicas
Operaciones bit a bit.
AND, OR, NOT.

Conversin
Ejemplo: conversin de binario a decimal.

Entrada/Salida
Pueden ser instrucciones especficas.
Se pueden realizar utilizando instrucciones de
movimiento de datos (asignadas en memoria).
Se pueden realizadar a travs de un controlador
aparte (DMA).

Control de sistemas
Instrucciones en zonas privilegiadas.
La CPU necesita estar en un estado concreto:
Anillo 0 en 80386+
Modo ncleo

Para la utilizacin del sistema operativo.

Control de flujo
Bifurcacin:
Ejemplo: saltar a la posicin x, si el resultado es 0.

Salto implcito:
Ejemplo: incrementar y saltar, si es cero:
ISZ Registro 1
Saltar xxxx
ADD A

Llamada a procedimiento.
Frente a la llamada a interrupcin.

Lecturas recomendadas
Tipos de operaciones en el Pentium II y el
PowerPC.
Consulte a partir de la pgina 326 del libro de
Stallings.

Orden de los bytes


En qu orden se leen aquellos nmeros que
ocupan ms de un byte?
Ejemplo:(un valor hexadecimal para que su
lectura sea ms fcil).
12345678 se puede almacenar en posiciones de
4x8 bits de la siguiente manera:

Ejemplos del orden de los bytes


Direccin
184
185
186
186

Valor (1)
12
34
56
78

Valor (2)
78
56
34
12

Entonces, debe leerse en sentido descendente


o ascendente?

Nombres del orden de los bytes


El problema se conoce como Endian.
El sistema de la izquierda almacena el byte ms
significativo en la direccin con valor numrico
ms bajo.
Este modo se denomina big-endian.
El sistema de la derecha almacena el byte
menos significativo en la direccin con valor
numrico ms bajo.
Este modo se denomina little-endian.

Estndar, qu tipo de
estndar?
Pentium (80x86), VAX son little-endian.
IBM 370, Moterola 680x0 (Mac), y la mayora de
los RISC son big-endian.
Internet es big-endian.
En el PC, hace que los programas de escritura de
Internet sean ms lentos.
WinSock facilita la conversin de las funciones htoi e
itoh (Host a Internet e Internet a Host).

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 10
Repertorios de instrucciones:
modos de direccionamiento y
formatos

Modos de direccionamiento
Inmediato
Directo
Indirecto
Registro
Indirecto con registro
Con Desplazamiento (indexado)
Pila

Direccionamiento inmediato
El operando es parte de la instruccin.
Operando = campo de direccin (A).
Ejemplo: ADD 5
Aadir 5 a los contenidos del acumulador.
5 es el operando.

No hace falta una referencia a memoria para


captar los datos.
Es rpido.
La magnitud del operando est limitada.

Esquema de direccionamiento
inmediato
Instruccin
Codop

Operando

Direccionamiento directo
El campo de direccin contiene la direccin real del
operando.
Direccin real (EA) = campo de direccin (A)
Ejemplo: ADD A
Aadir contenidos de la celda A al acumulador.
Buscar la direccin A en la memoria para el operando.
Tan slo requiere una referencia a memoria para acceder a
los datos.

No necesita ningn clculo especial para acceder a la


direccin real.

Proporciona un espacio de direcciones restringido.

Esquema de direccionamiento
directo
Instruccin
Codop

Direccin A
Memoria

Operando

Direccionamiento indirecto
La celda de la memoria referenciada por el
campo de direcciones contiene la direccin
completa del operando.
EA = (A)
Mirar en A, encontrar la direccin (A) y, all, buscar
el operando.
Ejemplo: ADD (A)
Aadir los contenidos de la celda referenciada por los
contenidos de A al acumulador.

Direccionamiento indirecto
Amplio espacio de direcciones.
2n, siendo n la longitud de palabra.
El direccionamiento puede ser anidado,
multinivel o en cascada.
Ejemplo: EA = (((A)))

Pueden requerirse varios accesos a memoria


para encontrar el operando.
Por lo tanto, es ms lento.

Esquema de direccionamiento
indirecto
Instruccin
Codop

Direccin A
Memoria
Indicador del operando

Operando

Direccionamiento
de registros
El operando se encuentra en el registro
nombrado en el campo de direcciones.
EA = R
El nmero de registros est limitado.
Se necesita un campo de direcciones muy
pequeo.
Instrucciones ms cortas.
Captacin de instrucciones ms rpida.

Direccionamiento
de registros
No hay acceso a la memoria.
Ejecucin muy rpida.
Espacio de direcciones est muy limitado.
Se mejoran las prestaciones con varios
registros.
Necesita un buen programador en lenguaje
ensamblador o un compilador de escritura.
Ejemplo: programacin en C.
Direccionamiento indirecto con registro.

Se opone al direccionamiento directo.

Esquema de direccionamiento
de registros
Instruccin
Codop

Direccin de registro R
Registros

Operando

Direccionamiento indirecto con


registro
Se opone al direccionamiento indirecto.
EA = (R)
El operando se encuentra en la celda de la
memoria referenciada por el contenido del
registro R.
Amplio espacio de direcciones (2n).
Cuenta con un acceso a memoria menor que en
el direccionamiento indirecto.

Esquema de direccionamiento
indirecto con registro
Instruccin
Codop

Direccin de registro R

Memoria

Registros

Indicador del operando

Operando

Direccionamiento con
desplazamiento
EA = A + (R)
El campo de direcciones contiene dos valores:
A = valor bsico.
R = registro que contiene el desplazamiento.
O viceversa.

Esquema de direccionamiento con


desplazamiento
Instruccin
Codop Registro R Direccin A
Memoria
Registros

Indicador del operando

Operando

Direccionamiento relativo
Es una variedad de direccionamiento con
desplazamiento.
R = contador de programa (PC)
EA = A + (PC)
Es decir, el operando se extrae de las celdas A,
que a su vez se extraen de la posicin actual
referenciada por el PC.
Se opone a la posicin de las referencias y a la
utilizacin de la cache.

Direccionamiento con
registro-base
A contiene un desplazamiento.
R contiene el indicador de la direccin base.
R puede estar explcito o implcito.
Por ejemplo, los segmentos se registran en
80x86.

Direccionamiento indexado
A = base
R = desplazamiento
EA = A + R
Esta tcnica se utiliza para acceder a la matriz:
EA = A + R
R++

Combinaciones
Post-indexado
EA = (A) + (R)
Pre-indexado
EA = (A+(R))

Direccionamiento de pila
El operando est (de forma implcita) en la
cabecera de la pila.
Ejemplo:
ADD

Se extraen dos objetos de la pila y se


aaden.

Formatos de instrucciones
Definen la descripcin en bits de una
instruccin.
Incluyen un cdigo de operacin (codop).
Incluyen (de forma implcita o explcita) ninguno
o algunos operandos.
Normalmente, en los repertorios de
instrucciones se emplea ms de un formato de
instruccin.

Longitud de instruccin
Esta decisin afecta, y se ve afectada por:
El tamao de la memoria.
La organizacin de la memoria.
La estructura del bus.
La complejidad de la CPU.
La velocidad de la CPU.

Se debe encontrar un equilibrio entre el deseo


de disponer de un repertorio de instrucciones
potente y la necesidad de ahorrar espacio.

Asignacin de los bits


Nmero de modos de direccionamiento.
Nmero de operandos.
Registros frente a memoria.
Nmero de conjuntos de registros.
Rango de direcciones.
Granularidad de las direcciones.

Lecturas recomendadas
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 10.
Pginas web sobre Intel y PowerPC.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 11
Estructura y funcin de la CPU

Estructura de la CPU
La CPU debe:
Captar instruccin
Interpretar instruccin
Captar datos
Procesar datos
Escribir datos

Registros
La CPU debe tener espacio para trabajar
(almacenamiento temporal).
Se conocen con el nombre de registros.
El nmero y la funcin vara de un diseo a otro
de procesador.
Son una de las principales decisiones de diseo.
Nivel ms alto de la jerarqua.

Registros visibles para el


usuario
Uso general
Datos
Direcciones
Cdigos de condicin

Registros de uso general (1)


Pueden ser de uso general real.
Pueden ser de uso restringido.
Pueden utilizarse para datos o direcciones.
Acumulador

Direcciones
Segmento

Registros de uso general (2)


Hacerlos de uso completamente general
Aumenta la flexibilidad y las opciones del
programador
Aumenta la complejidad y el tamao de la instruccin

Especializar su uso
Intrucciones de menor tamao (ms rpidas)
Menor flexibilidad

Cuntos registros
de uso general?
Entre 8 y 32.
Menor cantidad = ms referencias a memoria.
Ms registros no reducen las referencias a
memoria y ocupan el estado real de procesador.
Tener en cuenta los sistemas RISC.

Cul es su longitud?
Lo suficientemente grandes como para albergar
la direccin completa.
Lo suficientemente grandes como para albergar
la palabra ms grande.
A menudo es posible combinar dos registros de
datos:
Programacin C
double int a;
long int a;

Registros de cdigo de
condicin
Conjunto de bits individuales
Ejemplo: El resultado de la ltima operacin fue cero

Pueden ser ledos (implicitamente) por los


programas
Ejemplo : Saltar si el resultado es cero

Los programas (generalmente) no pueden


fijarlos.

Registros de control y de
estado
Contador de programa
Registro de instruccin
Registro de direccin de memoria
Registro intermedio de memoria
Revisin: qu hace cada uno de ellos?

Palabra de estado del programa


Un conjunto de bits
Incluye cdigos de condicin
Signo del ltimo resultado
Cero
Acarreo
Igual
Desbordamiento
Interrupciones habilitadas/inhabilitadas
Supervisor

Modo supervisor o usuario


Nivle de privilegio cero de Intel.
Modo Kernel.
Permite ejecutar ciertas instrucciones
privilegiadas.
Utilizado por el sistema operativo.
No est disponible para los programas de
usuarios.

Otros registros
Puede que haya registros que indiquen:
Bloques de control del proceso (ver Sistemas
Operativos)
Vectores de interrupcin (ver Sistemas Operativos)

Ejemplo: el diseo de la CPU y el diseo del


sistema operativo estn muy relacionados.

Ejemplos de organizaciones de registros


Registros de datos

Registros generales

Registros generales

Acumulador
Base
Contador

Datos

Punteros e ndices
Puntero de pila
Puntero base
ndice fuente

Registros de direcciones

ndice destino

Estado del programa


Segmento
Cdigo
Datos

Pila
Extra

Estado del programa


Ptr. instr.
Indicadores

Estado del programa


Contador de programa
Registro de estado

Acumulador
Acumulador

Lectura bsica
Captulo 11 del libro de Stallings.
Pginas web y specs (Standard Performance
Evaluation Corporations) de los fabricantes.

El ciclo de instruccin
Revisin.
Captulo 3 del libro de Stallings.

El ciclo indirecto
Puede necesitar acceso a memoria para captar
operandos.
El direccionarmiento indirecto necesita accesos
a memoria adicionales.
Se puede considerar como un subciclo de
instruccin ms.

Ciclo de instruccin indirecto


Captacin

Interrupcin

Indirecto

Ejecucin

Diagrama de estados del ciclo


de instruccin
Indireccin

Captacin de
instruccin

Indireccin

Almacenamiento de
operando

Captacin de
operando

Ms de un
resultado

Ms de un
operando

Clculo de
la direccin de
la instruccin

Decodificacin
de operacin
de la instruccin

Clculo de
la direccin
del operando

Instruccin finalizada,
captar la instruccin siguiente

Operacin
con los
datos

Volver a por otro dato de


una cadena o un vector

Clculo de
la direccin
del operando

No
interrupcin

Interrupcin

Interrupcin

Flujo de datos (Captacin de la


instruccin)
Depende del diseo de la CPU.
Captacin:
El PC contiene la direccin de la siguiente
instruccin.
Esta direccin es llevada a MAR.
Se coloca en el bus de direcciones.
La unidad de control solicita una lectura de memoria.
El resultado se pone en el bus de datos, se copia en
MBR y despus se lleva a IR.
Mientras tanto, PC se incrementa en 1.

Flujo de datos (Captacin de


datos)
Se examina IR.
Si hay direccionamiento indirecto, se lleva a
cabo un ciclo indirecto.
Los N bits ms a la derecha de MBR se transfieren a
MAR.
La unidad de control solicita una lectura de memoria.
El resultado (la direccin del operando) se lleva a
MBR.

Flujos de datos (Ciclo de


captacin)
CPU
PC

MAR

Memoria

Unidad de
control

IR

MBR

Bus de
direcciones
MBR = Registro intermedio de memoria
MAR = Registro de direccin de memoria
IR = Registro de instruccin
PC = Contador de programa

Bus de
datos

Bus de
control

Flujos de datos (Ciclo indirecto)


CPU

MAR

Memoria
Unidad de
control

MBR

Bus de
direcciones

Bus de
datos

Bus de
control

Flujo de datos (Ejecucin)


Adopta muchas formas.
Depende de la instruccin que se est
ejecutando.
Puede incluir:
Lectura o escritura de memoria
Entrada/Salida
Transferencias entre registros
Operaciones de la ALU

Flujo de datos (Interrupcin)


Simple.
Predeci.ble
El contenido actual de PC tiene que ser salvado para
poder reanudar la actividad tras la interrupcin.
El contenido de PC se transfiere a MBR.
La posicin de memoria especial (ej: puntero de pila) se
carga en MAR.
MBR se escribe en la memoria.
PC se carga con la direccin de la rutina de interrupcin.
Se podr captar la siguiente instruccin (primer
manejador de instrucciones).

Flujo de datos (Ciclo de


interrupcin)
CPU

PC

MAR
Memoria

Unidad
de
control

MBR

Bus de
direcciones

Bus de
datos

Bus de
control

Precaptar
Captacin a partir de la memoria principal
Generalmente la ejecucin no accede a la
memoria principal.
Puede captar la siguiente instruccin durante la
ejecucin de la instruccin actual.
Se denomina precaptacin de la instruccin.

La prestacin se mejora
Pero no se duplica:
El tiempo de captacin es, por lo general, ms corto
que el de ejecucin.
Precaptar ms de una instruccin?

Si se produce un salto o una bifurcacin, significa


que las instrucciones precaptadas no son las
requeridas.

Anadir ms etapas para mejorar la prestacin.

Segmentacin de cauce
(Pipelining)
Captar instruccin (Fetch instruction, FI)
Decodificar instruccin (Decode instruction, DI)
Calcular operandos (Calculate operands, CO)
Captar operandos (Fetch operands, FO)
Ejecutar instrucciones (Execute instructions, EI)
Escribir operando (Write result, WO)
Solapamiento de estas operaciones.

Diagrama de tiempos de la
segmentacin de cauce (Pipeline)
Tiempo

Instruccin 1
Instruccin 2
Instruccin 3
Instruccin 4
Instruccin 5
Instruccin 6
Instruccin 7

Instruccin 8
Instruccin 9

Salto en la segmentacin de
cauce (Pipeline)
Tiempo

Instruccin 1
Instruccin 2
Instruccin 3
Instruccin 4
Instruccin 5
Instruccin 6

Instruccin 7
Instruccin 15
Instruccin 16

Penalizacin debida al salto

Tratamiento de saltos
Flujos mltiples
Precaptar el destino del salto
Buffer de bucles
Prediccin de saltos
Salto retardado

Flujos mltiples
Tienen dos cauces.
Precaptan cada salto en diferentes cauces.
Hay que utilizar el cauce correcto.

Provoca retardos en el acceso al bus y a los


registros.
Si hay mltiples saltos, se necesita un mayor
nmero de cauces.

Precaptar el destino del salto


Se precapta la instruccin destino del salto,
adems de las instrucciones siguientes a la
bifurcacin.
La instruccin se guarda hasta que se ejecute la
instruccin de bifurcacin.
El IBM 360/91 usa este mtodo.

Buffer de bucles
Memoria muy rpida.
Gestionada por la etapa de captacin de
instruccin del cauce.
Comprueba el buffer antes de hacer la captacin
de memoria.
Muy eficaz para pequeos bucles y saltos.
Comparar con el cache.
CRAY-1 lo utiliza.

Prediccin de saltos (1)


Predecir que nunca se salta:
Asume que el salto no se producir.
Siempre capta la siguiente instruccin.
68020 y VAX 11/780.
VAX no precaptar la instruccin que viene detrs si
se produce un fallo de pgina (Sistema operativo
frenta al diseo de la CPU).

Predecir que siempre se salta:


Asume que el salto se producir.
Siempre capta la instruccin destino del salto.

Prediccin de saltos (2)


Predecir segn el cdigo de operacin:
Hay instrucciones que tienen ms probabilidades de
saltar que otras.
La tasa de acierto puede llegar a alcanzar un 75%.

Conmutador saltar/no saltar:


Basado en la historia de las instrucciones.
Eficaz para los bucles.

Prediccin de saltos (3)


Salto retardado:
No hacer el salto hasta que sea necesario.
Reordenar las instrucciones.

Diagrama de estados de la
prediccin de saltos
No se salta

Se salta

Prediccin:
saltar

Se salta

Se salta

Prediccin:
saltar

No se
salta

No se salta
Prediccin:
no saltar

Prediccin:
no saltar

Se salta

No se salta

Lectura bsica
Ejemplos de procesadores.
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 11.
Pginas web, etc.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 11
Estructura y funcin de la CPU

Estructura de la CPU
La CPU debe:
Captar instruccin
Interpretar instruccin
Captar datos
Procesar datos
Escribir datos

Registros
La CPU debe tener espacio para trabajar
(almacenamiento temporal).
Se conocen con el nombre de registros.
El nmero y la funcin vara de un diseo a otro
de procesador.
Son una de las principales decisiones de diseo.
Nivel ms alto de la jerarqua.

Registros visibles para el


usuario
Uso general
Datos
Direcciones
Cdigos de condicin

Registros de uso general (1)


Pueden ser de uso general real.
Pueden ser de uso restringido.
Pueden utilizarse para datos o direcciones.
Acumulador

Direcciones
Segmento

Registros de uso general (2)


Hacerlos de uso completamente general
Aumenta la flexibilidad y las opciones del
programador
Aumenta la complejidad y el tamao de la instruccin

Especializar su uso
Intrucciones de menor tamao (ms rpidas)
Menor flexibilidad

Cuntos registros
de uso general?
Entre 8 y 32.
Menor cantidad = ms referencias a memoria.
Ms registros no reducen las referencias a
memoria y ocupan el estado real de procesador.
Tener en cuenta los sistemas RISC.

Cul es su longitud?
Lo suficientemente grandes como para albergar
la direccin completa.
Lo suficientemente grandes como para albergar
la palabra ms grande.
A menudo es posible combinar dos registros de
datos:
Programacin C
double int a;
long int a;

Registros de cdigo de
condicin
Conjunto de bits individuales
Ejemplo: El resultado de la ltima operacin fue cero

Pueden ser ledos (implicitamente) por los


programas
Ejemplo : Saltar si el resultado es cero

Los programas (generalmente) no pueden


fijarlos.

Registros de control y de
estado
Contador de programa
Registro de instruccin
Registro de direccin de memoria
Registro intermedio de memoria
Revisin: qu hace cada uno de ellos?

Palabra de estado del programa


Un conjunto de bits
Incluye cdigos de condicin
Signo del ltimo resultado
Cero
Acarreo
Igual
Desbordamiento
Interrupciones habilitadas/inhabilitadas
Supervisor

Modo supervisor o usuario


Nivle de privilegio cero de Intel.
Modo Kernel.
Permite ejecutar ciertas instrucciones
privilegiadas.
Utilizado por el sistema operativo.
No est disponible para los programas de
usuarios.

Otros registros
Puede que haya registros que indiquen:
Bloques de control del proceso (ver Sistemas
Operativos)
Vectores de interrupcin (ver Sistemas Operativos)

Ejemplo: el diseo de la CPU y el diseo del


sistema operativo estn muy relacionados.

Ejemplos de organizaciones de registros


Registros de datos

Registros generales

Registros generales

Acumulador
Base
Contador

Datos

Punteros e ndices
Puntero de pila
Puntero base
ndice fuente

Registros de direcciones

ndice destino

Estado del programa


Segmento
Cdigo
Datos

Pila
Extra

Estado del programa


Ptr. instr.
Indicadores

Estado del programa


Contador de programa
Registro de estado

Acumulador
Acumulador

Lectura bsica
Captulo 11 del libro de Stallings.
Pginas web y specs (Standard Performance
Evaluation Corporations) de los fabricantes.

El ciclo de instruccin
Revisin.
Captulo 3 del libro de Stallings.

El ciclo indirecto
Puede necesitar acceso a memoria para captar
operandos.
El direccionarmiento indirecto necesita accesos
a memoria adicionales.
Se puede considerar como un subciclo de
instruccin ms.

Ciclo de instruccin indirecto


Captacin

Interrupcin

Indirecto

Ejecucin

Diagrama de estados del ciclo


de instruccin
Indireccin

Captacin de
instruccin

Indireccin

Almacenamiento de
operando

Captacin de
operando

Ms de un
resultado

Ms de un
operando

Clculo de
la direccin de
la instruccin

Decodificacin
de operacin
de la instruccin

Clculo de
la direccin
del operando

Instruccin finalizada,
captar la instruccin siguiente

Operacin
con los
datos

Volver a por otro dato de


una cadena o un vector

Clculo de
la direccin
del operando

No
interrupcin

Interrupcin

Interrupcin

Flujo de datos (Captacin de la


instruccin)
Depende del diseo de la CPU.
Captacin:
El PC contiene la direccin de la siguiente
instruccin.
Esta direccin es llevada a MAR.
Se coloca en el bus de direcciones.
La unidad de control solicita una lectura de memoria.
El resultado se pone en el bus de datos, se copia en
MBR y despus se lleva a IR.
Mientras tanto, PC se incrementa en 1.

Flujo de datos (Captacin de


datos)
Se examina IR.
Si hay direccionamiento indirecto, se lleva a
cabo un ciclo indirecto.
Los N bits ms a la derecha de MBR se transfieren a
MAR.
La unidad de control solicita una lectura de memoria.
El resultado (la direccin del operando) se lleva a
MBR.

Flujos de datos (Ciclo de


captacin)
CPU
PC

MAR

Memoria

Unidad de
control

IR

MBR

Bus de
direcciones
MBR = Registro intermedio de memoria
MAR = Registro de direccin de memoria
IR = Registro de instruccin
PC = Contador de programa

Bus de
datos

Bus de
control

Flujos de datos (Ciclo indirecto)


CPU

MAR

Memoria
Unidad de
control

MBR

Bus de
direcciones

Bus de
datos

Bus de
control

Flujo de datos (Ejecucin)


Adopta muchas formas.
Depende de la instruccin que se est
ejecutando.
Puede incluir:
Lectura o escritura de memoria
Entrada/Salida
Transferencias entre registros
Operaciones de la ALU

Flujo de datos (Interrupcin)


Simple.
Predeci.ble
El contenido actual de PC tiene que ser salvado para
poder reanudar la actividad tras la interrupcin.
El contenido de PC se transfiere a MBR.
La posicin de memoria especial (ej: puntero de pila) se
carga en MAR.
MBR se escribe en la memoria.
PC se carga con la direccin de la rutina de interrupcin.
Se podr captar la siguiente instruccin (primer
manejador de instrucciones).

Flujo de datos (Ciclo de


interrupcin)
CPU

PC

MAR
Memoria

Unidad
de
control

MBR

Bus de
direcciones

Bus de
datos

Bus de
control

Precaptar
Captacin a partir de la memoria principal
Generalmente la ejecucin no accede a la
memoria principal.
Puede captar la siguiente instruccin durante la
ejecucin de la instruccin actual.
Se denomina precaptacin de la instruccin.

La prestacin se mejora
Pero no se duplica:
El tiempo de captacin es, por lo general, ms corto
que el de ejecucin.
Precaptar ms de una instruccin?

Si se produce un salto o una bifurcacin, significa


que las instrucciones precaptadas no son las
requeridas.

Anadir ms etapas para mejorar la prestacin.

Segmentacin de cauce
(Pipelining)
Captar instruccin (Fetch instruction, FI)
Decodificar instruccin (Decode instruction, DI)
Calcular operandos (Calculate operands, CO)
Captar operandos (Fetch operands, FO)
Ejecutar instrucciones (Execute instructions, EI)
Escribir operando (Write result, WO)
Solapamiento de estas operaciones.

Diagrama de tiempos de la
segmentacin de cauce (Pipeline)
Tiempo

Instruccin 1
Instruccin 2
Instruccin 3
Instruccin 4
Instruccin 5
Instruccin 6
Instruccin 7

Instruccin 8
Instruccin 9

Salto en la segmentacin de
cauce (Pipeline)
Tiempo

Instruccin 1
Instruccin 2
Instruccin 3
Instruccin 4
Instruccin 5
Instruccin 6

Instruccin 7
Instruccin 15
Instruccin 16

Penalizacin debida al salto

Tratamiento de saltos
Flujos mltiples
Precaptar el destino del salto
Buffer de bucles
Prediccin de saltos
Salto retardado

Flujos mltiples
Tienen dos cauces.
Precaptan cada salto en diferentes cauces.
Hay que utilizar el cauce correcto.

Provoca retardos en el acceso al bus y a los


registros.
Si hay mltiples saltos, se necesita un mayor
nmero de cauces.

Precaptar el destino del salto


Se precapta la instruccin destino del salto,
adems de las instrucciones siguientes a la
bifurcacin.
La instruccin se guarda hasta que se ejecute la
instruccin de bifurcacin.
El IBM 360/91 usa este mtodo.

Buffer de bucles
Memoria muy rpida.
Gestionada por la etapa de captacin de
instruccin del cauce.
Comprueba el buffer antes de hacer la captacin
de memoria.
Muy eficaz para pequeos bucles y saltos.
Comparar con el cache.
CRAY-1 lo utiliza.

Prediccin de saltos (1)


Predecir que nunca se salta:
Asume que el salto no se producir.
Siempre capta la siguiente instruccin.
68020 y VAX 11/780.
VAX no precaptar la instruccin que viene detrs si
se produce un fallo de pgina (Sistema operativo
frenta al diseo de la CPU).

Predecir que siempre se salta:


Asume que el salto se producir.
Siempre capta la instruccin destino del salto.

Prediccin de saltos (2)


Predecir segn el cdigo de operacin:
Hay instrucciones que tienen ms probabilidades de
saltar que otras.
La tasa de acierto puede llegar a alcanzar un 75%.

Conmutador saltar/no saltar:


Basado en la historia de las instrucciones.
Eficaz para los bucles.

Prediccin de saltos (3)


Salto retardado:
No hacer el salto hasta que sea necesario.
Reordenar las instrucciones.

Diagrama de estados de la
prediccin de saltos
No se salta

Se salta

Prediccin:
saltar

Se salta

Se salta

Prediccin:
saltar

No se
salta

No se salta
Prediccin:
no saltar

Prediccin:
no saltar

Se salta

No se salta

Lectura bsica
Ejemplos de procesadores.
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 11.
Pginas web, etc.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 12
Computadores
de repertorio reducido
de instrucciones

Principales avances en los


computadores (1)
El concepto de familia:
Introducido por IBM en su System/360 en 1964.
DEC PDP-8.
Separa la arquitectura de la implementacin.

Unidad de control microprogramada:


Idea propuesta por Wilkes en 1951.
Introducida por IBM en la lnea S/360 en 1964.

Memoria cache:
En 1968 en el IBM S/360 Modelo 85.

Principales avanzes en los


computadores (2)
RAM de estado slido:
(Ver Manual de Recursos)

Microprocesadores:
Intel 4004 en 1971.

Segmentacin de cauce:
Introduce el paralelismo en el ciclo de ejecucin de
bsqueda.

Procesadores mltiples.

El paso siguiente - RISC


Computadores de repertorio reducido de
instrucciones.
Caractersticas principales:
Gran nmero de registros de uso genera, o el uso de
tecnologa de compiladores para optimizar el uso de
los registros.
Repertorio de instrucciones limitado y sencillo.
nfasis en la optimizacin de la segmentacin de
instrucciones.

Comparacin de procesadores

CISC
IBM
370/168
1973

Nmero de instrucciones
208
303
235

51

94

184

62

Tamao de instruccin (bytes)


2-6
2-57
1-11

32

4-8

Modos de direccionamiento
4
22
11

11

Registros de uso general


16
16
8

32

32

32

23-256

Memoria de control (kbits)


420
480
246

DEC VAX Intel


11/780
486
1978
1989

RISC
Motorola MIPS
88000
R4000
1988
1991

Superscalar
IBM
Intel
RS/6000 80960
1990
1989

Inconvenientes del CISC


El software resultaba mucho ms caro que el
hardware.
El nivel del lenguaje era cada vez ms
complicado.
Salto semntico.
Todo esto conduce a:
Repertorios de instrucciones grandes.
Ms modos de direccionamiento.
Varias sentencias de HLL implementadas en el Hardware.
Por ejemplo, el CASE del VAX.

Finalidad del CISC


Facilitar el trabajo del escritor de compiladores.
Mejorar la eficiencia de la ejecucin:
Secuencias complejas de operaciones en
microcdigo.

Dar soporte a HLL ms complejos.

Caractersticas de la ejecucin
Operaciones realizadas.
Operandos usados.
Secuenciamiento de la ejecucin.
Se han realizado estudios sobre programas
escritos en HLL.
Los estudios dinmicos se miden durante la
ejecucin del programa.

Operaciones
Asignaciones:
Movimiento de datos.

Estamentos condicionales (IF, LOOP):


Control secuencial.

El procedimiento llamada/retorno consume


mucho tiempo.
Algunas instrucciones HLL conducen a muchas
operaciones de cdigo mquina.

Frecuencia dinmica relativa

Assign
Loop
Call
If
GoTo
Otras

Aparicin
dinmica
Pascal C
45
38
5
3
15
12
29
43
3
6
1

Instruc. mquina
(Ponderadas)
Pascal C
13
13
42
32
31
33
11
21
3
1

Referencias a memoria
(Ponderadas)
Pascal C
14
15
33
26
44
45
7
13
2
1

Operandos
Principalmente variables escalares locales.
La optimizacin debe concentrarse en el acceso
a la variables locales.

Constantes enteras
Variables escalares
Matrices/estructuras

Pascal
16
58
26

C
23
53
24

Promedio
20
55
25

Llamadas a procedimientos
Se consume mucho tiempo.
Depende del nmero de parmetros tratados.
Depende del nivel de anidamiento.
La mayora de los programas no tienen una
larga secuencia de llamadas seguida por la
correspondiente secuencia de retornos.
La mayora de las variables son locales.
Las referencias a operandos estn muy
localizadas.

Consecuencias
Se puede ofrecer mejor soporte optimizando las
prestaciones de las caractersticas ms usadas y
que ms tiempo consumen.
Usar un gran nmero de registros:
Optimizar las referencias a operandos.

Prestar cuidadosa atencin al diseo de los


cauces de instrucciones:
Prediccin de bifurcaciones, etc.

Es recomendable un repertorio de intrucciones


simplificado (reducido).

Amplio banco de registros


Aproximacin por software:
El compilador es necesario para asignar registros.
Asignacin de registros a las variables que se usen
ms en un perodo de tiempo dado.
Requiere el uso de sofisticados algoritmos de anlisis
de programas.

Aproximacin por Hardware:


Utilizacin de ms registros.
De esta manera, ms variables pueden mantenerse
en registros durante periodos de tiempo ms largos.

Registros para variables locales


Almacenar las variables escalares locales en
registros.
Reduce el acceso a memoria.
Cada llamada de procedimiento (funcin)
cambia la localidad.
Los parmetros deben ser pasados.
Los resultados tienen que ser devueltos.
Las variables de los programas de llamada
tienen que ser restauradas.

Ventanas de registro
Contienen unas pocas activaciones de
procedimientos.
Limitacin de la profundidad de llamada.
Utilizacin de mltiples conjuntos pequeos de
registros.
La llamada cambia segn los diferentes
conjuntos de registro.
Los retornos vuelven a cambiar al anterior
conjunto de registros utilizado.

Ventanas de registro
Tres reas dentro de un conjunto de registro:
Registros de parmetros.
Registros de datos locales.
Registros temporales.
Los registros temporales de un conjunto se solapan
con los registros de parmetros del nivel ms bajo
adyacente.
Esto posibilita que los parmetros se pasen sin que
exista transferencia de datos.

Ventanas de registro solapadas

Registros de

Registros de

Registros

parmetros

datos locales

temporales

Nivel J

Llamada/Retorno

Registros de

Registros de

Registros

parmetros

datos locales

temporales

Nivel J + 1

Diagrama de buffer circular


Restauracin

Salvaguarda

Puntero de
ventana
salvada

Puntero de
ventana en
curso
Llamada
Retorno

Operacin del buffer circular


Cuando se realiza una llamada, el puntero de
ventana actual se mueve para mostrar la
ventana de registro activo en curso.
Si todas las ventanas estn en uso, tiene lugar
una interrupcin y la ventana ms vieja (la ms
antigua de las llamadas) se guarda en la
memoria.
Un puntero de ventana salvada indica dnde ha
de restablecerse la siguiente ventana salvada.

Variables globales
El compilador asigna posiciones de memoria a
las variables:
Ineficiente para variables locales a las que se accede
frecuentemente.

Incorporar al procesador un conjunto de


registros para variables globales.

Un amplio banco de registros


frente a una cache
Banco de registros amplio

Cache

Todos los datos escalares locales

Datos escalares locales


recientemente usados
Bloques de memoria
Variables locales usadas
recientemente
Salvaguarda/restauracin basadas
en el algoritmo de reemplazo
Direccionamiento de memoria

Variables individuales
Variables globales asignadas por
el compilador
Salvaguarda/restauracin basadas
en la profundidad de anidamiento
Direccionamiento de registro

Referencia a un dato escalar Banco de registros basado en


ventanas
Instruccin

Registros

Datos
Decodificador

Referencia a un dato escalar Cache


Instruccin

Etiquetas

Comparacin

Datos

Seleccin

Datos

Optimizacin de registros
basada en el compilador
Supongamos un pequeo nmero de registros (por ejemplo
16-32).
El uso optimizado es responsabilidad del compilador.
Los programas HLL no tienen referencias explcitas a los
registros.
Normalmente - pensando en C - registro int.

Cada cantidad del programa candidata se asigna a un registro


simblico o virual.
Asignar el nmero ilimitado de registros simblicos a un
nmero fijo de registros reales.
Registros simblicos que no se solapan pueden compartir el
registro real.
Si se agotan los registros reales, algunas de las variables se
asignan a posiciones de memoria.

Coloreado de grafos
Dado un grafo que consta de nodos y arcos.
Asignar colores a cada nodo.
Los nodos adyacentes tienen colores diferentes.
Minimizar el nmero de colores distintos.
Los nodos del grafo son los registros simblicos.
Dos registros que estn vivos durante el mismo
fragmento de programa se unen por un arco.
Se intenta colorear el grafo con n colores, donde n es el
nmero de registros.
Los nodos que no se pueden colorear se colocan en
memoria.

Tcnica de coloreado de grafos

(a) Secuencia temporal de uso activo de registros simblicos

(b) Grafo de interferencias entre registros

Por qu CISC?
Simplicacin del compilador?
Esta primera razn parece obvia
Instrucciones mquina complejas son difciles de
aprovechar.
La optimizacin es ms dificil.

Programas ms pequeos?
El programa ocupa menos memoria, pero la memoria hoy
da es muy barata.
l nmero de bits de memoria que ocupa no tiene por qu
ser ms pequeo, simplemente puede ser ms corto.
Ms instrucciones necesitan cdigos de operacion ms largos.
Las referencias a registros necesitan menos bits.

Por qu CISC?
Programas ms rpidos?
Propensin a usar las instrucciones ms sencillas.
Unidad de control ms compleja.
Memoria de control del microprograma ms grande.
Aumenta el tiempo de ejecucin de las instrucciones
simples.

No est nada claro que la tendencia hacia CISC


sea apropiada.

Caractersticas del RISC


Una instruccin por ciclo.
Operaciones registro a registro.
Modos de direccionamiento sencillos.
Formatos de instruccin sencillos.
Diseo cableado (sin microcdigo).
Formato de instruccin fijo.
Mayor tiempo/esfuerzo de compilacin.

Caractersticas RISC frente a


CISC
No existe una clara barrera diferenciadora.
Muchos diseos incluyen caractersticas de
ambos diseos.
Por ejemplo, PowerPC y Pentium II

Segmentacin de cauce en
RISC
La mayora de instrucciones son registro a
registro.
Dos fases de ejecucin:
I: Captacin de instruccin.
E: Ejecucin.
Operacin de la ALU con registros como entrada y salida.

Operaciones de carga y almacenamiento:


I: Captacin de instruccin.
E: Ejecucin.
Calcula una direccin de memoria.

D: Memoria.
Operacin registro a memoria o memoria a registro.

Efectos de la segmentacin

(a) Ejecucin secuencial


(b) Temporizacin con un cauce de dos vas

(c) Temporizacin con un cauce de tres vas

(d) Temporizacin con un cauce de cuatro vas

Optimizacin de la
segmentacin
Salto retardado:
No tiene efecto hasta despus de la ejecucin de la
siguiente instruccin.
Dicha siguiente instruccin es el salto retardado.

Salto normal y retardado


Direccin

Salto normal

Salto retardado

100
101
102
103
104
105
106

LOAD X,A
ADD 1,A
JUMP 105
ADD A,B
SUB C,B
STORE A,Z

LOAD X,A
ADD 1,A
JUMP 105
NOOP
ADD A,B
SUB C,B
STORE A,Z

Salto retardado
optimizado

LOAD X,A
JUMP 105
ADD 1,A
ADD A,B
SUB C,B
STORE A,Z

Uso del salto retardado

(b) Inversin del orden


(a) Insercin de NOOP

de las instrucciones

Controversia entre RISC y CISC


Cuantitativa:
Comparacin del tamao de los programas y su velocidad de
ejecucin.

Cualitativa:
Revisin de soporte de lenguajes de alto nivel y uso ptimo de
los recursos VLSI.

Problemas de las comparaciones:


No existe una pareja de mquinas RISC y CISC directamente
comparables.
No hay un conjunto de programas de prueba definitivo.
Dificultad para separar los efectos del hardware de los del
compilador.
Mayora de comparaciones con mquinas de juguete, no con
productos comerciales.
La mayora de las mquinas son una mezcla de ambas.

Lecturas recomendadas
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 12.
Pginas web de los fabricantes.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 13
Paralelismo a nivel de
instrucciones, y procesadores
superescalares

Qu es una implementacin
superescalar?
Las instrucciones comunes(aritmticas,
cargas/almacenamientos y bifurcaciones
condicionales) pueden iniciar su ejecucin
simultneamente y de manera independiente.
Puede utilizarse tanto en una arquitectura RISC
como en una CISC.
En la prctica, normalmente se utiliza en RISC.

Sentido del enfoque


superescalar
La mayora de las operaciones se realizan con
cantidades escalares (vanse los apuntes sobre
RISC).
Una mejora en estas operaciones, supone una
mejora en general.

Organizacin superescalar
usual

Banco de registros de enteros

Banco de registros de coma flotante

Unidades
funcionales
segmentadas

Memoria

Supersegmentado
Muchas etapas del cauce requieren menos de la
mitad de un ciclo de reloj.
La velocidad de reloj interna se dobla, lo que
permite la realizacin de dos tareas en un ciclo
de reloj externo.
La implementacin superescalar permite una
ejecucin en paralelo de varias instrucciones.

Clave

Superescalar
frente a
supersegmentado

Captacin
de
instruccin

Ejecucin
Decodifi
cacin

Escritu
ra

Instrucciones consecutivas

Mquina base

Supersegmentada

Superescalar

Tiempo en ciclos base

Limitaciones
Paralelismo a nivel de instrucciones.
Optimizaciones realizadas por el compilador.
Tcnicas hardware.
Limitaciones:
Dependencia de datos verdadera.
Dependencia relativa al procedimiento.
Conflictos en los recursos.
Dependencia de salida.
Antidependencia.

Dependencia de datos
verdadera
ADD r1, r2 (r1 := r1+r2;).
MOVE r3, r1 (r3 := r1;).
La segunda instruccin se puede captar y
decodificar en paralelo con la primera.
La segunda instruccin NO se puede ejecutar
hasta que finalice la ejecucin de la primera
instruccin.

Dependencia relativa al
procedimiento
Las instrucciones que siguen a una bifurcacin
no pueden ejecutarse en paralelo con las
instrucciones anteriores a la misma.
Si las instrucciones son de longitud variable,
stas tienen que decodificarse para averiguar
cuntas captaciones son necesarias.
Esto imposibilita la captacin simultnea.

Conflictos en los recursos


Un conflicto en los recursos es una pugna de
dos o ms instrucciones por el mismo recurso al
mismo tiempo.
Ejemplo: dos instrucciones aritmticas.

Los recursos pueden duplicarse.


Ejemplo: tener dos unidades aritmticas.

Clave
Captacin
de
instruccin

Dependencias

Ejecucin
Decodifi_
cacin

Escritura

Sin dependencia

Dependencia de datos
(i1 usa un dato calculado por i0)

i1/bifurcacin

Dependencia relativa
al procedimiento

Conflicto en un recurso
(i0 e i1 usan la misma
unidad funcional)

Tiempo en ciclos base

Cuestiones relacionadas con el


diseo
Paralelismo a nivel de instrucciones:
Las instrucciones de una secuencia son
independientes.
Pueden ejecutarse en paralelo solapndose.
Depende de la frecuencia de dependencias de datos
y dependencias relativas al procedimiento.

Paralelismo de la mquina:
Medida de la capacidad del procesador para sacar
partido al paralelismo a nivel de instrucciones.
Depende del nmero de cauces paralelos.

Polticas de emisin de
instrucciones
Orden en que se captan las instrucciones.
Orden en que se ejecutan las instrucciones.
Orden en que las instrucciones actualizan los
contenidos de los registros y de las posiciones
de memoria.

Emisin en orden y finalizacin


en orden
Emite instrucciones en el orden exacto en que
se producen.
No es muy eficaz.
Puede captar ms de una instruccin.
Las instrucciones deben detenerse en caso de
que sea necesario.

Esquema de emisin en orden y


finalizacin en orden
Decodificacin

Ejecucin

Escritura

Ciclo

Emisin en orden y finalizacin


desordenada
Dependencia de salida:
R3:= R3 + R5; (I1)
R4:= R3 + 1; (I2)
R3:= R5 + 1; (I3)
Ejemplo de dependencia de datos: I2 depende del
resultado de I1.
Dependencia de salida o escritura-escritura: si I3
finaliza antes que I1, el resultado de I1 ser
incorrecto.

Esquema de emisin en orden y


finalizacin desordenada
Decodificacin

Ejecucin

Escritura

Ciclo

Emisin desordenada y
finalizacin desordenada
Es necesario desacoplar las etapas del cauce de
decodificacin y ejecucin.
Mientras el buffer no se llene, el procesador
puede continuar captando y decodificando.
Cuando una unidad funcional queda disponible,
se puede ejecutar una instruccin.
Como las instrucciones ya han sido
decodificadas, el procesador tiene capacidad de
anticipacin.

Esquema de emisin desordenada y


finalizacin desordenada
Decodificacin

Ventana

Ejecucin

Escritura

Ciclo

Antidependencia
Dependencia lectura-escritura:
I1: R3
R3 op R5
I2: R4
R3 + 1
I3: R3
R5 + 1
I4: R7
R3 op R4
I3 no puede finalizar antes de que I2 comience, ya
que I2 necesita un valor en R3 e I3 modifica R3.

Renombramiento de registros
Las dependencias de salida y las
antidependencias surgen porque los valores de
los registros no pueden reflejar ya la secuencia
de valores dictada por el flujo del programa.
Esto puede detener alguna etapa del cauce.
Los registros se asignan dinmicamente:
Es decir, los registros no se nombran de forma
especfica.

Ejemplo de renombramiento de
registros
I1: R3b
R3a op R5a
I2: R4b
R3b + 1
I3: R3c
R5a + 1
I4: R7b
R3c op R4b
Sin el subndice, alude a una referencia a un
registro lgico encontrado en la instruccin.
Con el subndice, alude a un registro hardware
asignado.
Fjese en R3a R3b R3c.

Paralelismo de la mquina
Duplicacin de recursos.
Emisin desordenada.
Renombramiento.
No merece la pena duplicar unidades
funcionales sin renombramiento de registros.
Se necesita una ventana de instrucciones lo
suficientemente amplia (mayor de 8
instrucciones).

Prediccin de saltos
El Intel 80486 capta, tanto la siguiente
instruccin secuencial a la de bifurcacin, como
la instruccin destino del salto.
Esta estrategia incurre en un retardo de dos
ciclos cuando se produce el salto.

Las mquinas RISC y el salto


retardado
El procesador calcula el resultado de las instrucciones de
bifurcacin antes de que se precapte cualquier instruccin
inservible.
El procesador siempre ejecuta la instruccin que sigue
inmediatamente a la de bifurcacin.
Esto mantiene lleno el cauce mientras el procesador capta un nuevo
flujo de instrucciones.
Esta estrategia ha perdido inters con el desarrollo de las mquinas
superescalares:
Ejecutar mltiples instrucciones en el ciclo de retardo.
Problemas con las dependencias entre instrucciones.

Por eso, las mquinas superescalares han regresado a las tcnicas


de prediccin de saltos anteriores.

Ejecucin superescalar
Envo de
instrucciones

Programa
esttico

Emisin de
instrucciones

Captacin de
instrucciones y
prediccin de saltos

Ejecucin de
instrucciones

Ventana de
ejecucin

Reordenacin
y entrega de
instrucciones

Implementacin superescalar
Estrategias de captacin de instrucciones que capten
simultneamente mltiples instrucciones.
Lgica para determinar dependencias verdaderas entre
valores de registros.
Mecanismos para comunicar esos valores.
Mecanismos para iniciar mltiples instrucciones en
paralelo.
Recursos para la ejecucin en paralelo de mltiples
instrucciones.
Mecanismos para entregar el estado del procesador en
un orden correcto.

Lecturas recomendadas
Stallings, Captulo 13.
Pginas web de los fabricantes.
Pgina web IMPACT:
Investigacin sobre ejecucin con predicados.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 14
Funcionamiento de la unidad de
control

Microoperaciones
Un computador ejecuta un programa.
Ciclo de captacin/ejecucin.
Cada ciclo consta de una serie de pasos:
Vase segmentacin.

Estos pasos son microoperaciones.


Cada paso es muy sencillo y hace muy poco.
Son las operaciones atmicas de un
computador.

Elementos que constituyen la


ejecucin de un programa
Ejecucin de un programa

Ciclo de instruccin

Captacin

OP

OP

Ciclo de instruccin

Indirecto

OP

Ejecucin

OP

OP

Ciclo de instruccin

Interrupcin

Ciclo de captacin: cuatro


registros
Registro de direccin de memoria (MAR):
Est conectado a las lneas de direccin del bus del
sistema.
Especifica la direccin de memoria de una operacin de
lectura o escritura.

Registro intermedio de memoria (MBR):


Est conectado a las lneas de datos del bus del sistema.
Contiene el valor a almacenar en memoria o el ltimo
valor ledo de memoria.

Contador de programa (PC):


Contiene la direccin de la siguiente instruccin a captar.

Registro de instruccin (IR):

Ciclo de captacin
La direccin de la siguiente instruccin a ejecutar est
en el contador de programa (PC).
La direccin (MAR) se coloca en el bus de direcciones.
La unidad de control emite una orden READ.
El resultado aparece en el bus de datos.
El resultado se copia en el registro intermedio de
memoria (MBR).
Es necesario incrementar PC en I en paralelo con la
captacin de la memoria.
Transferir el contenido de MBR a IR.
Esto libera MBR para su uso durante un posible ciclo
indirecto.

Ciclo de captacin simblico


t1: MAR
t2: MBR

PC
t3: IR
tx = unidad
o tambin:
t1: MAR
t2: MBR
t3: PC

IR

(PC)
(memoria)
(PC) + I
(MBR)
de tiempo/ciclo de reloj.
(PC)
(memoria)
(PC) + I
(MBR)

Reglas de agrupamientos de
microoperaciones
Debe seguirse la secuencia correcta de eventos:
MAR

(PC) debe preceder a (MBR

memoria).

Deben evitarse los conflictos:


No se debe intentar leer y escribir en el mismo
registro en una unidad de tiempo.
(MBR memoria) e (IR MBR) no deberan tener
lugar en la misma unidad de tiempo.

Tambin: PC

(PC) +I incluye una suma:

Usar la ALU.
Puede implicar microoperaciones adicionales.

El ciclo indirecto
MAR (IRdireccin) - campo de direccin de IR
MBR (memoria)
IRdireccin (MBRdireccin)
MBR contiene una direccin.
IR tiene el mismo estado que si no se hubiera
usado direccionamiento indirecto.
Qu informacin nos aporta acerca del tamao
de IR?)

El ciclo de interrupcin
t1: MBR (PC)
t2: MAR Direccin de salvaguarda

PC
Direccin de la rutina
t3: Memoria (MBR)
Esta es una secuencia muy simple de eventos:
Pueden ser microoperaciones adicionales para
obtener direcciones.
Obsrvese que el almacenado se realiza a travs de
una rutina de interrupcin, no a travs de
microoperaciones.

El ciclo de ejecucin (ADD)


Es distinto para cada instruccin.
Ejemplo: ADD R1, X que suma el contenido de
la posicin X al registro R1.
t1: MAR
(IRdireccin)
t2: MBR
memoria
t3: R1
R1 + (MBR)
Observe que no se produce el solapamiento de
las microoperaciones.

El ciclo de ejecucin (ISZ)


Incrementar y saltar si cero (ISZ X):
t1:
t2:
t3:
t4:

MAR
(IRdireccin)
MBR
(memoria)
MBR
(MBR) + 1
memoria
(MBR)
si (MBR) == 0 entonces PC

(PC) + I

Notas:
Si se trata de una microoperacin.
Las microoperaciones se ejecutan durante la misma
unidad de tiempo (t4).

El ciclo de ejecucin (BSA)


Saltar y guardar la direccin (BSA X):
La direccin de la instruccin que viene a
continuacin de la instruccin BSA, se guarda en la
posicin X.
La ejecucin contina en la posicin X+I.
t1:
MAR
(IRdireccin)

MBR
(PC)
t2:
PC
(IRdireccin)

memoria
(MBR)
t3:
PC
(PC) + I

Requisitos funcionales
Definir los elementos bsicos del procesador.
Describir las microoperaciones que ejecuta el
procesador.
Determinar las funciones que debe realizar la
unidad de control para hacer que se ejecuten
las microoperaciones.

Elementos funcionales bsicos


del procesador
ALU
Registros
Caminos de datos internos
Caminos de datos externos
Unidad de control

Tipos de microoperaciones
Transferir datos de un registro a otro.
Transferir datos de un registro a una interfaz
externa.
Transferir datos de una interfaz externa a un
registro.
Realizar una operacin aritmtica o lgica.

Tareas de la unidad de control


Secuenciamiento:
La unidad de control hace que el porcesador avance
a travs de una serie de microoperaciones en la
secuencia oportuna.

Ejecucin:
La unidad de control hace que se ejecute cada
microoperacin.

Se realiza mediante seales de control.

Seales de control
Reloj:
Una microinstruccin (o un conjunto de
microoperaciones simultneas) en cada pulso de
reloj.

Registro de instruccin:
Cdigo de operacin de la instruccin en curso.
Determinar qu microoperaciones hay que realizar
durante el ciclo de ejecucin.

Seales de control
Indicadores:
Determinar el estado del procesador.
Determinar el resultado de anteriores operaciones.

Seales de control del bus de control:


De interrupcin.
De reconocimiento.

Seales de control: salidas


Seales de control internas al procesador:
Hacen que los datos se transfieran de un registro a
otro.
Activan funciones especficas.

Seales de control hacia el bus de control:


De la memoria.
De los mdulos de E/S.

Un ejemplo de seales de
control: captacin
MAR

(PC)

La unidad de control activa las seales para abrir las


puertas entre PC y MAR.

MBR

(memoria)

Abre las puertas entre MAR y el bus de direccin.


La memoria lee la seal de control.
Abre las puertas entre el bus de datos y MBR.

Organizacin interna del


procesador
Normalmente hay un nico bus interno.
Las puertas controlan la transferencia de datos
interna y externa.
Las seales de control controlan la transferencia
de datos hacia, y desde, el bus (externo) del
sistema.
Registros temporales para el correcto.
funcionamiento de la ALU.

Implementacin cableada
Entradas de la unidad de control.
Indicadores y seales de control del bus:
Cada bit individual tiene un significado.

Registro de instruccin:
El cdigo de operacin realiza seales de control
diferentes para cada instruccin.
Una entrada lgica nica para cada cdigo de
operacin.
El decodificador toma una entrada codificada y
produce una salida nica:
n entradas binarias y 2n salidas binarias.

Implementacin cableada
Reloj:
Emite una secuencia repetitiva de pulsos.
Es til para delimitar la duracin de las
microoperaciones.
Ha de ser suficientemente largo para emitir la
propagacin de las seales.
Emite seales de control diferentes en unidades de
tiempo diferentes, dentro de un nico ciclo de
instruccin.
Necesita un contador con seales de control
diferentes para t1, t2 etc.

Problemas con los diseos de


implementacin cabelada
Lgica de microoperaciones y secuencias
complejas.
Difcil de disear y de probar.
Diseo rgido.
Dificultad para aadir nuevas instrucciones.

Lectura bsica
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 14.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 15
Control microprogramado

Unidad de control
microprogramado
Utiliza las secuencias de instrucciones (ver notas
preliminares) para controlar las operaciones
complejas.
Una secuencia de microinstrucciones se conoce
como microprograma, o firmware.

Implementacin
Todo lo que la unidad de control puede hacer es
generar un conjunto de seales de control.
Cada lnea de control est activa o inactiva.
Cada lnea de control puede representarse con un dgito
binario.
Podramos construir una palabra de control para cada
microoperacin.
Tenga una secuencia de palabras de control para cada
instruccin de cdigo de mquina.
Aada un campo de direccin indicando la siguiente
microinstruccin, dependiendo de las condiciones.

Implementacin
El mayor microprocesador de nuestros das:
Muchas instrucciones y hardwares de nivel de
registro asociado.
Muchos puntos de control para manipular.

En la memoria de control, esto se traduce en:


La contencin de un gran nmero de palabras:
que corresponden al nmero de instrucciones que se
ejecutarn.

Una gran expansin mundial:


Debido al gran nmero de puntos de control que se
manipularn.

Formato de la microinstruccin o
palabra de control
Basado en 3 factores:
Activacin del mximo nmero de microoperaciones
simultneas.
La manera en que se representa o codifica la
informacin de control.
La manera en que se especifica la prxima direccin
de microinstruccin.

Tipos de microinstruccin
Microinstruccin vertical:
Cada microinstruccin especifica una sola
microoperacin (o unas pocas) para que se realicen.

Microinstruccin horizontal:
Cada microinstruccin especifica muchas
microoperaciones diferentes para que se realicen en
paralelo.

Microprogramacin vertical
La anchura es estrecha.
N controla seales codificadas en log2 n bits.
Habilidad limitada para expresar paralelismo.
La codificacin considerable de la informacin
de control requiere un decodificador de palabra
de memoria externa para identificar la lnea de
control exacta que se est manipulando.

Diagrama de microprogramacin
vertical

Direccin de microinstrucin

Cdigos de
funcin
Condicin
de salto

Microprogramacin horizontal
Gran longitud de palabras de memoria.
Alto grado de posibles operaciones en paralelo.
Escasa codificacin de informacin de control.

Diagrama de microprogramacin
horizontal

Seales de control internas a la CPU

Seales de control
del bus del sistema

Micro-instruction
Address
Direccin de microinstruccin

Condicin de salto

Alternativa
Dividir las seales de control en grupos
inconexos.
Implementarcada grupo como un campo
separado en la palabra de memoria.
Mantener niveles razonables de paralelismo sin
demasiada complejidad.

Organizacin de la memoria de
control
.
Salto a indirecto o ejecucin
.
Salto a ejecucin

Rutina del ciclo de captacin


Rutina del ciclo indirecto

.
Salto a captacin

Rutina del ciclo de intrerrupcin

Salto a una rutina segn el cd. de operacin

Comienzo del ciclo de ejecucin

.
Salto a captacin o interrupcin
.
Salto a captacin o interrupcin

Rutina de la instruccin AND

Rutina de la instruccin ADD

Funcionamiento de una unidad


de control microprogramada
Registro de instruccin

Unidad de control
Indicadores
de la ALU
Reloj

Lgica de secuen-

Decodificador

Registro de direccin de control

ciamiento

Lectura

Memoria de
control

Registro intermedio de control


Direccin de
control siguiente

Decodificador

Seales de control
hacia dentro de la CPU

Seales de control
hacia el bus del sistema

Funcionamiento de la unidad de
control
La unidad lgica de secuenciamiento emite una orden
de lectura a la memoria de control.
La palabra especificada en el registro de direccin de
control se lee en el registro intermedio de control.
Los contenidos del registro intermedio de control
generan seales de control y la informacin de direccin
siguiente.
La unidad lgica de secuenciamiento carga una nueva
direccin en el registro de direccin de control, basada
en la informacin de direccin siguiente del registro
intermedio de control y en los indicadores de la ALU.

Ventajas e inconvenientes
Simplifica el diseo de la unidad de control:
Implementacin ms barata.
Menos propensa a errores.

Ms lenta que una unidad cableada de


tecnologa comparable.

Tareas realizadas por una


unidad de control
microprogramada
Secuenciamiento de microinstrucciones.
Ejecucin de microinstrucciones.
Las dos taresas deben considerarse a la vez.

Consideraciones respecto al
diseo
Tamao de la microinstruccin.
Tiempo de generacin de la direccin:
Viene determinada por el registro de instruccin:
Una vez por ciclo, justo tras la captacin de la instruccin.

Es la siguiente direccin secuencial:


La situacin ms comn en la mayora de los diseos.

Es el destino de un salto:
Tanto condicionales como incondicionales.

Tcnicas de secuenciamiento
A partir de la microinstruccin en curso, de los
indicadores de condicin y del contenido del
registro de instruccin, hay que generar una
direccin de la memoria de control.
Categoras basadas en el formato de la
informacin de direccin de la microinstruccin:
Dos campos de direccin.
Un nico campo de direccin.
Formato variable.

Generacin de direcciones
Explcitas

Implcitas

Dos campos
Salto incondicional
Salto condicional

Traduccin
Adicin
Control residual

Ejecucin de
microinstrucciones
El ciclo es el evento bsico.
Cada ciclo se compone de dos partes:
Captacin:
Depende de la generacin de una direccin de
microinstruccin.

Ejecucin.

Ejecucin
El resultado es la generacin de seales de
control.
Algunas de estas seales controlan puntos
internos del procesador.
Las dems seales van al bus de control externo
o a otras interfaces externas.

Organizacin de la unidad de
control
Registro de
instruccin

Indicadores
de la ALU
Reloj

Lgica de
secuenciamiento

Registro de direccin de control

Memoria
de control

Registro intermedio de control


Lgica de
control
Seales de control internas

Seales de control externas

Lecturas recomendadas
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 15.

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 16
Procesamiento paralelo

Organizaciones Con Varios


Procesadores
SISD: una secuencia de instrucciones y una
secuencia de datos.
SIMD: una secuencia de instrucciones y
mltiples secuencias de datos.
MISD: mltiples secuencias de instrucciones y
una secuencia de datos.
MIMD: mltiples secuencias de instrucciones y
mltiples secuencias de datos.

Una secuencia de instrucciones y


una secuencia de datos (SISD)
Un nico procesador interpreta una nica
secuencia de instrucciones.
Datos almacenados en una nica memoria.
Computadores monoprocesador.

Una secuencia de instrucciones y


mltiples secuencias de datos (SIMD)
Una nica instruccin mquina controla paso a
paso la ejecucin simultnea de un cierto
nmero de elementos de proceso.
Cada elemento de proceso tiene una memoria
asociada.
Cada instruccin es ejecutada por cada
procesador, con un conjunto de datos
diferentes.
Procesadores vectoriales y matriciales.

Mltiples secuencias de
instrucciones y una secuencia
de datos (MISD)
Se transmite una secuencia de datos a un
conjunto de procesadores.
Cada procesador ejecuta una secuencia de
instrucciones diferente.
Esta estructura nunca ha sido implementada.

Mltiples secuencias de
instrucciones y mltiples
secuencias de datos (MIMD)
Un conjunto de procesadores ejecuta
simultneamente secuencias de instrucciones
diferentes.
Conjuntos de datos diferentes.
Los SMP, los clusters, y los sistemas NUMA
son ejemplos de esta categora.

Taxonoma de las arquitecturas


paralelas
Organizaciones de computadores

Una secuencia de
instruccin,
mltiples secuencias
de datos (SIMD)

Una secuencia de
instruccin, una
secuencia de datos
(SISD)

Mltiples secuencias
de instruccin, una
secuencia de datos
(MISD)

Mltiples secuencias
de instruccin,
mltiples secuencias
de datos (MIMD)

Monoprocesadores

Procesadores
vectoriales

Procesadores
matriciales

Memoria compartida
(fuertemente acoplada)

Memoria distribuida
(dbilmente acoplada)

Clusters
Multiprocesador
simtrico (SMP)

Acceso no
uniforme a
memoria
(NUMA)

Organizacin MIMD
Son procesadores de uso general.
Cada uno es capaz de procesar todas las
instrucciones necesarias para realizar las
transfromaciones apropiadas de los datos.
Se pueden subdividir, adems, segn la forma
que tienen los procesadores para comunicarse.

SMP (fuertemente acoplado)


Varios procesadores comparten una nica
memoria.
Los procesadores se comunican unos con otros
a travs de esa memoria compartida.
Caractersticas del multiprocesador simtrico
(SMP):
Comparten la memoria principal.
Comparten un bus para acceder a la memoria.
El tiempo de acceso a memoria es aproximadamente
el mismo para todos los procesadores.

NUMA (fuertemente acoplado)


Acceso no uniforme a memoria.
El tiempo de acceso a zonas de memoria
diferentes puede diferir en un computador
NUMA.

Clusters (memoria dbilmente


acoplada)
Un conjunto de computadores monoprocesador
independientes, o de SMP, pueden
interconectarse para formar un cluster.
La comunicacin entre los computadores se
realiza mediante conexiones fijas o mediante
algn tipo de red.

Organizaciones paralelas
(SISD)

SI
UC

SD
UP

UM

Organizaciones paralelas
(SIMD)
SD
EP1

ML1
SD

EP2

ML2

SI
UC
SD
EPn

MLn

Organizaciones paralelas
(MIMD de memoria compartida)
SI
EP1
SI

SD
EP2

UC2

SI
UCn

SD
EPn

Memoria
compartida

UC1

SD

Organizaciones paralelas
(MIMD de memoria distribuida)
UC1

SD

EP1
SD

SI
UC2

EP2

ML2

SD

SI
UCn

ML1

EPn

MLn

Red de
interconexin

SI

Multiprocesadores simtricos
Un SMP es un computador autnomo con las siguientes
caractersticas:
Hay dos o ms procesadores similares de capacidades comparables.
Estos procesadores comparten la memoria principal y las E/S.
Estn interconectados mediante un bus u otro tipo de sistema de
interconexin.
El tiempo de acceso a memoria es aproximadamente el mismo para
todos los procesadores.
Todos los procesadores comparten los dispositivos de E/S, bien a
travs de los mismos canales, o bien mediante canales distintos que
proporcionan caminos de acceso al mismo dispositivo.
Todos los procesadores pueden desempear las mismas funciones (de
ah el trmino simtrico).
El sistema est controlado por un sistema operativo integrado, que
proporciona la interaccin entre los procesadores y sus programas en
los niveles de trabajo, tarea, fichero y datos.

Ventajas de un SMP
Prestaciones:
Cuando el trabajo a realizar por un computador puede
organizarse en paralelo.

Disponibilidad:
Debido a que todos los procesadores pueden realizar las mismas
funciones, un fallo en un procesador no har que el computador
se detenga.

Crecimiento incremental:
Se pueden aumentar las prestaciones del sistema, aadiendo
ms procesadores.

Escalado:
Los fabricantes pueden ofrecer una gama de productos con
precios y prestaciones diferentes, en funcin del nmero de
procesadores que configuran el sistema.

Diagrama de bloques genrico de


un multiprocesador fuertemente
acoplado
Procesador

Procesador

Procesador

E/S

Red de

E/S

interconexin

E/S
Memoria principal

Organizacin de los
multiprocesadores simtricos
Bus de tiempo compartido o comn.
Memoria multipuerto.
Unidad de control central.

Bus de tiempo compartido


Es el mecanismo ms simple.
La estructura y las interfaces son bsicamente las
mismas que las de un sistema de un nico procesador.
Se proporcionan los siguientes elementos para el:
Direccionamiento: distincin de los mdulos del bus.
Arbitraje: cualquier mdulo puede funcionar temporalmente
como maestro.
Tiempo compartido: cuando un mdulo est controlando el bus,
los otros mdulos tienen que esperar y, si es necesario,
suspender su operacin.

Existen varios procesadores, adems de varios mdulos


de E/S.

Ventajas del bus de tiempo


compartido
Simplicidad.
Flexibilidad.
Fiabilidad.

Desventajas del bus de tiempo


compartido
La prestacin est limitada por el tiempo de
ciclo del bus.
Cada procesador debera estar equipado con
una memoria cache para mejorar las
prestaciones:
Se reducira el nmero de accesos.

Se pueden producir problemas de coherencia de


cache:
Este problema es resuelto por el hardware (ver
diapositiva 29).

Memoria multipuerto
Permite el acceso directo e independiente a los
mdulos de memoria desde cada uno de los
procesadores.
Se necesita una cierta lgica para resolver los
conflictos.
Se necesitan pocas o ninguna modificacin en
los procesadores o en los mdulos.

Ventajas y desventajas de la
memoria multipuerto
Ms compleja:
Se precisa aadir al sistema de memoria una buena
cantidad de lgica.
Se consiguen mejores prestaciones.
Cada procesador tiene un camino dedicado a cada
mdulo de memoria.

Permite configurar partes de la memoria como


privadas para uno o ms procesadores:
Incremento de la seguridad.

Se debe utilizar una estrategia de escritura


directa para controlar la cache.

Unidad de control central


Encauza las distintas secuencias de datos entre
los distintos mdulos independientes.
Puede almacenar temporalmente peticiones.
Puede realizar las funciones de arbitraje y
temporizacin.
Puede transmitir mensajes de estado y control
entre los procesadores.
Puede alertar sobre los cambios en las caches.
Las interfaces de E/S, memoria y procesador no
sufren cambios esenciales.
Ejemplo: S/370 de IBM.

Puntos clave de diseo de un


sistema operativo
Procesos concurrentes simultneos.
Planificacin.
Sincronizacin.
Gestin de memoria.
Fiabilidad y tolerancia ante los fallos.

Organizacin del SMP S/390 de


IBM

Mdulo de
memoria 0

Mdulo de
memoria 1

Mdulo de
memoria 2

Mdulo de
memoria 3

Componentes clave del SMP


S/390
Procesador (PU):
Microprocesador CISC.
Las instrucciones ms frecuentemente ejecutadas se
encuentran cableadas.
Cada PU incluye una cache L1 unificada de 64kbytes con un
tiempo de acceso de un slo ciclo.
Cache L2.
384kbytes.

Adaptador bus-red de interconexin (BSN):


Incluye 2 Mbytes de nivel 3 (L3).

Mdulos de memoria:
8 Gbytes por mdulo.

Coherencia de cache y
protocolo MESI
Problema: pueden existir varias copias del
mismo dato simultneamente en caches
diferentes.
Puede producirse una visin inconsistente de la
memoria.
La poltica de post-escritura puede ocasionar
inconsistencia.
La poltica de escritura directa tambin puede
producir problemas, a no ser que las otras
caches comprueben los accesos a la memoria
principal.

Soluciones software
El compilador y el sistema operativo se encargan del
problema de la necesidad de circuitera y lgica
hardware adicional.
La sobrecarga se transfiere para compilar el tiempo.
La complejidad del diseo se transfiere desde el
hardware al software.
Por otra parte, el software tiende a tomar ciertas
decisiones conservadoras:
Utilizacin ineficiente de la cache.

Analizan el cdigo para determinar periodos seguros


para las variables compartidas.

Soluciones hardware
Generalmente se denominan protocolos de
coherencia de cache.
Permiten reconocer dinmicamente, en el
momento de la ejecucin, problemas
potenciales.
Permiten un uso ms efectivo de las caches.
Aproximaciones transparentes para el
programador.
Protocolos de directorio.
Protocolos de sondeo.

Protocolos de directorio
Recogen y mantienen la informacin acerca de
las copias de las lneas en la cache.
El directorio se almacena en la memoria
principal.
Las peticiones se comprueban comparndose
con el directorio.
Se ejecutan las transferencias apropiadas.
Los esquemas de directorio tienen un cuello de
botella central.
Son efectivos en sistemas a gran escala que
poseen esquemas complejos de interconexin.

Protocolos de sondeo
Distribuyen la responsabilidad de mantener la
coherencia de cache entre todos los
controladores de cache.
Una cache reconoce cundo una lnea est
compartida con otras caches.
Las actualizaciones se anunucian a otras caches.
Se adaptan bien a multiprocesadores basados
en un bus.
Incremento en el trfico del bus.

Invalidar-si-escritura
Mltiples procesadores que leen, pero uno slo que
escribe.
Cuando se quiere hacer una escritura, se invalidan las
otras caches de la lnea.
El procesador que escribe tiene acceso exclusivo hasta
que la lnea sea requerida por otro procesador.
Se utiliza en los sistemas Pentium II y Power PC.
El estado de cada lnea se marca como modificado,
exclusivo, compartido, o no vlido.
El prtocolo de invalidar-si-escritura se llama MESI.

Actualizar-si-escritura
Varios procesadores que escriben y leen.
La palabra actualizada se distribuye a todos los
procesadores.
Algunos sistemas implementan un sistema
adaptativo con caractesticas de ambas
soluciones.

Diagrama de transicin de
estados MESI
No
vlido

Compartido

Modificado

Exclusivo

(a) Lnea en el procesador que inicia la transferencia


Acierto de lectura
Fallo de lectura, compartida
Fallo de lectura, exclusiva
Acierto de escritura
Fallo de escritura
Acierto de sondeo en lectura
Acierto de sondeo en escritura o
lectura-para-modificacin

No
vlido

Compartido

Modificado

Exclusivo

(a) Lnea en una cache sondeando el bus


Escribir en memoria la lnea de cache
modificada
Invalidar transaccin

Lectura-para-modificacin (RWITM)

Cargar lnea de cache

Clusters
Son la alternativa a los SMP.
Prestaciones y disponibilidad elevadas.
Aplicaciones propias de un servidor.
Un grupo de computadores completos
interconectados que trabajan conjuntamente
como un nico recurso de cmputo, crendose
la ilusin de que se trata de una sla mquina.
Cada computador se denomina nodo.

Beneficios del cluster


Escalabilidad absoluta.
Escalabilidad incremental.
Alta disponibilidad.
Mejor relacin precio/prestaciones.

Configuraciones de clusters:
servidor sin disco compartido

E/S

E/S

Enlace de alta velocidad para mensajes

E/S

E/S

Configuraciones de clusters:
disco compartido
Enlace de alta velocidad para mensajes

E/S

E/S

E/S

E/S

E/S

E/S

William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 16
Procesamiento paralelo

Organizaciones Con Varios


Procesadores
SISD: una secuencia de instrucciones y una
secuencia de datos.
SIMD: una secuencia de instrucciones y
mltiples secuencias de datos.
MISD: mltiples secuencias de instrucciones y
una secuencia de datos.
MIMD: mltiples secuencias de instrucciones y
mltiples secuencias de datos.

Una secuencia de instrucciones y


una secuencia de datos (SISD)
Un nico procesador interpreta una nica
secuencia de instrucciones.
Datos almacenados en una nica memoria.
Computadores monoprocesador.

Una secuencia de instrucciones y


mltiples secuencias de datos (SIMD)
Una nica instruccin mquina controla paso a
paso la ejecucin simultnea de un cierto
nmero de elementos de proceso.
Cada elemento de proceso tiene una memoria
asociada.
Cada instruccin es ejecutada por cada
procesador, con un conjunto de datos
diferentes.
Procesadores vectoriales y matriciales.

Mltiples secuencias de
instrucciones y una secuencia
de datos (MISD)
Se transmite una secuencia de datos a un
conjunto de procesadores.
Cada procesador ejecuta una secuencia de
instrucciones diferente.
Esta estructura nunca ha sido implementada.

Mltiples secuencias de
instrucciones y mltiples
secuencias de datos (MIMD)
Un conjunto de procesadores ejecuta
simultneamente secuencias de instrucciones
diferentes.
Conjuntos de datos diferentes.
Los SMP, los clusters, y los sistemas NUMA
son ejemplos de esta categora.

Taxonoma de las arquitecturas


paralelas
Organizaciones de computadores

Una secuencia de
instruccin,
mltiples secuencias
de datos (SIMD)

Una secuencia de
instruccin, una
secuencia de datos
(SISD)

Mltiples secuencias
de instruccin, una
secuencia de datos
(MISD)

Mltiples secuencias
de instruccin,
mltiples secuencias
de datos (MIMD)

Monoprocesadores

Procesadores
vectoriales

Procesadores
matriciales

Memoria compartida
(fuertemente acoplada)

Memoria distribuida
(dbilmente acoplada)

Clusters
Multiprocesador
simtrico (SMP)

Acceso no
uniforme a
memoria
(NUMA)

Organizacin MIMD
Son procesadores de uso general.
Cada uno es capaz de procesar todas las
instrucciones necesarias para realizar las
transfromaciones apropiadas de los datos.
Se pueden subdividir, adems, segn la forma
que tienen los procesadores para comunicarse.

SMP (fuertemente acoplado)


Varios procesadores comparten una nica
memoria.
Los procesadores se comunican unos con otros
a travs de esa memoria compartida.
Caractersticas del multiprocesador simtrico
(SMP):
Comparten la memoria principal.
Comparten un bus para acceder a la memoria.
El tiempo de acceso a memoria es aproximadamente
el mismo para todos los procesadores.

NUMA (fuertemente acoplado)


Acceso no uniforme a memoria.
El tiempo de acceso a zonas de memoria
diferentes puede diferir en un computador
NUMA.

Clusters (memoria dbilmente


acoplada)
Un conjunto de computadores monoprocesador
independientes, o de SMP, pueden
interconectarse para formar un cluster.
La comunicacin entre los computadores se
realiza mediante conexiones fijas o mediante
algn tipo de red.

Organizaciones paralelas
(SISD)

SI
UC

SD
UP

UM

Organizaciones paralelas
(SIMD)
SD
EP1

ML1
SD

EP2

ML2

SI
UC
SD
EPn

MLn

Organizaciones paralelas
(MIMD de memoria compartida)
SI
EP1
SI

SD
EP2

UC2

SI
UCn

SD
EPn

Memoria
compartida

UC1

SD

Organizaciones paralelas
(MIMD de memoria distribuida)
UC1

SD

EP1
SD

SI
UC2

EP2

ML2

SD

SI
UCn

ML1

EPn

MLn

Red de
interconexin

SI

Multiprocesadores simtricos
Un SMP es un computador autnomo con las siguientes
caractersticas:
Hay dos o ms procesadores similares de capacidades comparables.
Estos procesadores comparten la memoria principal y las E/S.
Estn interconectados mediante un bus u otro tipo de sistema de
interconexin.
El tiempo de acceso a memoria es aproximadamente el mismo para
todos los procesadores.
Todos los procesadores comparten los dispositivos de E/S, bien a
travs de los mismos canales, o bien mediante canales distintos que
proporcionan caminos de acceso al mismo dispositivo.
Todos los procesadores pueden desempear las mismas funciones (de
ah el trmino simtrico).
El sistema est controlado por un sistema operativo integrado, que
proporciona la interaccin entre los procesadores y sus programas en
los niveles de trabajo, tarea, fichero y datos.

Ventajas de un SMP
Prestaciones:
Cuando el trabajo a realizar por un computador puede
organizarse en paralelo.

Disponibilidad:
Debido a que todos los procesadores pueden realizar las mismas
funciones, un fallo en un procesador no har que el computador
se detenga.

Crecimiento incremental:
Se pueden aumentar las prestaciones del sistema, aadiendo
ms procesadores.

Escalado:
Los fabricantes pueden ofrecer una gama de productos con
precios y prestaciones diferentes, en funcin del nmero de
procesadores que configuran el sistema.

Diagrama de bloques genrico de


un multiprocesador fuertemente
acoplado
Procesador

Procesador

Procesador

E/S

Red de

E/S

interconexin

E/S
Memoria principal

Organizacin de los
multiprocesadores simtricos
Bus de tiempo compartido o comn.
Memoria multipuerto.
Unidad de control central.

Bus de tiempo compartido


Es el mecanismo ms simple.
La estructura y las interfaces son bsicamente las
mismas que las de un sistema de un nico procesador.
Se proporcionan los siguientes elementos para el:
Direccionamiento: distincin de los mdulos del bus.
Arbitraje: cualquier mdulo puede funcionar temporalmente
como maestro.
Tiempo compartido: cuando un mdulo est controlando el bus,
los otros mdulos tienen que esperar y, si es necesario,
suspender su operacin.

Existen varios procesadores, adems de varios mdulos


de E/S.

Ventajas del bus de tiempo


compartido
Simplicidad.
Flexibilidad.
Fiabilidad.

Desventajas del bus de tiempo


compartido
La prestacin est limitada por el tiempo de
ciclo del bus.
Cada procesador debera estar equipado con
una memoria cache para mejorar las
prestaciones:
Se reducira el nmero de accesos.

Se pueden producir problemas de coherencia de


cache:
Este problema es resuelto por el hardware (ver
diapositiva 29).

Memoria multipuerto
Permite el acceso directo e independiente a los
mdulos de memoria desde cada uno de los
procesadores.
Se necesita una cierta lgica para resolver los
conflictos.
Se necesitan pocas o ninguna modificacin en
los procesadores o en los mdulos.

Ventajas y desventajas de la
memoria multipuerto
Ms compleja:
Se precisa aadir al sistema de memoria una buena
cantidad de lgica.
Se consiguen mejores prestaciones.
Cada procesador tiene un camino dedicado a cada
mdulo de memoria.

Permite configurar partes de la memoria como


privadas para uno o ms procesadores:
Incremento de la seguridad.

Se debe utilizar una estrategia de escritura


directa para controlar la cache.

Unidad de control central


Encauza las distintas secuencias de datos entre
los distintos mdulos independientes.
Puede almacenar temporalmente peticiones.
Puede realizar las funciones de arbitraje y
temporizacin.
Puede transmitir mensajes de estado y control
entre los procesadores.
Puede alertar sobre los cambios en las caches.
Las interfaces de E/S, memoria y procesador no
sufren cambios esenciales.
Ejemplo: S/370 de IBM.

Puntos clave de diseo de un


sistema operativo
Procesos concurrentes simultneos.
Planificacin.
Sincronizacin.
Gestin de memoria.
Fiabilidad y tolerancia ante los fallos.

Organizacin del SMP S/390 de


IBM

Mdulo de
memoria 0

Mdulo de
memoria 1

Mdulo de
memoria 2

Mdulo de
memoria 3

Componentes clave del SMP


S/390
Procesador (PU):
Microprocesador CISC.
Las instrucciones ms frecuentemente ejecutadas se
encuentran cableadas.
Cada PU incluye una cache L1 unificada de 64kbytes con un
tiempo de acceso de un slo ciclo.
Cache L2.
384kbytes.

Adaptador bus-red de interconexin (BSN):


Incluye 2 Mbytes de nivel 3 (L3).

Mdulos de memoria:
8 Gbytes por mdulo.

Coherencia de cache y
protocolo MESI
Problema: pueden existir varias copias del
mismo dato simultneamente en caches
diferentes.
Puede producirse una visin inconsistente de la
memoria.
La poltica de post-escritura puede ocasionar
inconsistencia.
La poltica de escritura directa tambin puede
producir problemas, a no ser que las otras
caches comprueben los accesos a la memoria
principal.

Soluciones software
El compilador y el sistema operativo se encargan del
problema de la necesidad de circuitera y lgica
hardware adicional.
La sobrecarga se transfiere para compilar el tiempo.
La complejidad del diseo se transfiere desde el
hardware al software.
Por otra parte, el software tiende a tomar ciertas
decisiones conservadoras:
Utilizacin ineficiente de la cache.

Analizan el cdigo para determinar periodos seguros


para las variables compartidas.

Soluciones hardware
Generalmente se denominan protocolos de
coherencia de cache.
Permiten reconocer dinmicamente, en el
momento de la ejecucin, problemas
potenciales.
Permiten un uso ms efectivo de las caches.
Aproximaciones transparentes para el
programador.
Protocolos de directorio.
Protocolos de sondeo.

Protocolos de directorio
Recogen y mantienen la informacin acerca de
las copias de las lneas en la cache.
El directorio se almacena en la memoria
principal.
Las peticiones se comprueban comparndose
con el directorio.
Se ejecutan las transferencias apropiadas.
Los esquemas de directorio tienen un cuello de
botella central.
Son efectivos en sistemas a gran escala que
poseen esquemas complejos de interconexin.

Protocolos de sondeo
Distribuyen la responsabilidad de mantener la
coherencia de cache entre todos los
controladores de cache.
Una cache reconoce cundo una lnea est
compartida con otras caches.
Las actualizaciones se anunucian a otras caches.
Se adaptan bien a multiprocesadores basados
en un bus.
Incremento en el trfico del bus.

Invalidar-si-escritura
Mltiples procesadores que leen, pero uno slo que
escribe.
Cuando se quiere hacer una escritura, se invalidan las
otras caches de la lnea.
El procesador que escribe tiene acceso exclusivo hasta
que la lnea sea requerida por otro procesador.
Se utiliza en los sistemas Pentium II y Power PC.
El estado de cada lnea se marca como modificado,
exclusivo, compartido, o no vlido.
El prtocolo de invalidar-si-escritura se llama MESI.

Actualizar-si-escritura
Varios procesadores que escriben y leen.
La palabra actualizada se distribuye a todos los
procesadores.
Algunos sistemas implementan un sistema
adaptativo con caractesticas de ambas
soluciones.

Diagrama de transicin de
estados MESI
No
vlido

Compartido

Modificado

Exclusivo

(a) Lnea en el procesador que inicia la transferencia


Acierto de lectura
Fallo de lectura, compartida
Fallo de lectura, exclusiva
Acierto de escritura
Fallo de escritura
Acierto de sondeo en lectura
Acierto de sondeo en escritura o
lectura-para-modificacin

No
vlido

Compartido

Modificado

Exclusivo

(a) Lnea en una cache sondeando el bus


Escribir en memoria la lnea de cache
modificada
Invalidar transaccin

Lectura-para-modificacin (RWITM)

Cargar lnea de cache

Clusters
Son la alternativa a los SMP.
Prestaciones y disponibilidad elevadas.
Aplicaciones propias de un servidor.
Un grupo de computadores completos
interconectados que trabajan conjuntamente
como un nico recurso de cmputo, crendose
la ilusin de que se trata de una sla mquina.
Cada computador se denomina nodo.

Beneficios del cluster


Escalabilidad absoluta.
Escalabilidad incremental.
Alta disponibilidad.
Mejor relacin precio/prestaciones.

Configuraciones de clusters:
servidor sin disco compartido

E/S

E/S

Enlace de alta velocidad para mensajes

E/S

E/S

Configuraciones de clusters:
disco compartido
Enlace de alta velocidad para mensajes

E/S

E/S

E/S

E/S

E/S

E/S

You might also like