Professional Documents
Culture Documents
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?
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
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
William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 2
Evolucin y prestaciones de los
computadores
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
MQ
Circuitos aritmtico-lgicos
MBR
Equipo de
E/S
Instrucciones
Memoria
y datos
principal
IBR
PC
MAR
IR
Circuitos
de control
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
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
La ley de Moore
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
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
Intel
1971: 4004
Primer microprocesador
Todos los componentes de la CPU en un solo chip
4 bits
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
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
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
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
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
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
MBR
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.
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
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
Registros de la CPU
302
0005
2941
PC
AC
IR
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
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
Programa
de E/S
Orden de
E/S
Programa
de usuario
Programa
de E/S
Orden de
E/S
Gestor de
interrupcin
Programa
de usuario
Programa
de E/S
Orden de
E/S
Gestor de
interrupcin
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.
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
Entrada
Recibe datos del perifrico
Enva datos al computador
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
Bus de datos
Transmite datos.
Recuerde que a este nivel no existe diferencia alguna
entre datos y instrucciones.
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
Varias tarjetas.
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
Bus local
Cache/adaptador
Procesador
SCSI
FireWire
Grficos
Vdeo
LAN
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 centralizado
Un nico dispositivo hardware es responsable
de asignar tiempos en el bus:
Controlador del bus
rbitro
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.
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.
Fase de direccionamiento.
Una o ms fases de datos.
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
Direccin
Dato
Acceso A
Direccin
Acceso B
Dato
Lecturas recomendadas
Stallings, Captulo 3.
www.pcguide.com/ref/mbsys/buses/
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$.
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.
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 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.
Velocidad de transferencia
Velocidad a la que se pueden transferir datos.
Dispositivos fsicos
Memorias semiconductoras
RAM
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.
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?
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.
Tipos de ROM
Insercin de datos, mientras se fabrica.
Muy costoso para las pocas prestaciones que tiene.
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.
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
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)
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.
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.
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.
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.
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
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
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
Correspondencia asociativa:
Estructura de la direccin
Palabra
2 bits
Etiqueta 22 bits
Etiqueta
FFFFFC
Datos
24682468
Lnea de cache
3FFF
Direccin de memoria
Etiqueta
Conjunto
Datos
Palabra
Conjunto 0
Comparacin
Conjunto 1
(Acierto de cache)
(Fallo de cache)
Conjunto de 13 bits
Palabra
de 2 bits
Conj. +palabra
Datos
Etiqueta
Datos
N. de
Etiqueta
conjunto
Datos
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.
DRAM cache
Incluye una cache SRAM ms grande.
Se puede utilizar como cache o como buffer para
proporcionar accesos serie.
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)
William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 5
Memoria externa
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
S6
S6
Sectores
S5
SN
SN
S5
S1
S4
S1
S4
S3
S3
S2
S2
Interbloques
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 extrables
ZIP
Barato.
Muy conocido.
Slo 100M.
JAZ
Caro.
1G.
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
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.
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.
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.
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.
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
CD-RW:
Borrable.
Cada vez ms barato.
Compatible con la mayora de las unidades de CDROM.
Tecnologa DVD
Muchas capas.
Alta capacidad (4,7G por capa).
Una pelcua entera en un solo disco:
Usa compresin MPEG.
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.
Cinta magntica
Acceso en serie.
Lento.
Muy barato.
Copia de seguridad y archivo.
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.
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 comunicacin
Mdem
Tarjeta de la interfaz de red (NIC)
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.
Lneas
de datos
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
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
rdenes de E/S
La CPU proporciona una direccin
Especifica el mdulo (y el dispositivo si >1 por mdulo)
Lectura/Escritura
Transfiere datos desde y hacia el dispositivo a travs del bus
de datos.
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.
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.
Consulta software
La CPU consulta a cada mdulo
Resulta lenta
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.
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.
Incorporado en el chip.
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
El DMA es la solucin.
Adems...
Qu efecto tiene esa ocupacin de memoria en
el DMA?
Pista: En qu medida estn disponibles los
buses?
CPU
Mdulo de
DMA
E/S
E/S
Memoria
Mdulo de
DMA
Mdulo de
DMA
Memoria
E/S
E/S
E/S
Mdulo
de DMA
E/S
E/S
Memoria
E/S
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.
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)
Bus
libre
Arbitraje
(Re)Seleccin
Orden,
datos,
estado,
mensaje
El iniciador
activa
el BSY
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).
Comparacin entre
FireWire y SCSI
Disco magntico
Escner
ID= 6
CPU
CD ROM
ID= 2
ID= 3
ID= 7
Terminador
(puede ser interno)
Terminado
r
Interfaz
estreo
CD-ROM
CPU
Cmara digital
Disco magntico
Escner
Impresora
Enlace
Transmisin de datos en paquetes.
Transaccin
Protocolo de pregunta-respuesta
Arbitraje justo.
Arbitraje urgente.
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
Segundo canal
Intervalo
isoc.
Intervalo
isoc.
Arb
Paquete
Arb
Paquete
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
Eficiencia
Permite que los recursos del computador se
aprovechen mejor.
Programador
Programas de aplicacin
Utilidades
Sistema operativo
Hardware del computador
Diseador del
sistema operativo
Memoria
Controles de
E/S
DISPOSITIVOS DE E/S
Software
del sistema
operativo
Programas
y datos
Procesador
Procesador
Almacenamiento
S.O.
Programas
Datos
Instrucciones Fortran
Datos
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
Planificacin
Es la clave de la multiprogramacin
Planificacin a largo plazo
Planificacin a medio plazo
Planificacin a corto plazo
Planificacin de E/S
Nuevo
Iniciar
Preparado
En ejecucin
Suspender
Se produce
el evento
Esperar evento
En espera
Salida
Salida
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
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.
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
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).
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)
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.
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
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
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.
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.
Adicin de
nmeros
positivos
Sustraccin de
nmeros
positivos
Adicin de
nmeros
positivos
El rango de nmeros
8 bits en complemento a dos
+127 = 01111111 = 27 -1
-128 = 10000000 = -27
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)
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.
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
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
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.
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
Se mueve?
Cmo se sabe dnde est?
Bit de signo
Coma flotante
Exponente
sesgado
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
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.
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
Desbordamiento
positivo
Recta
Real
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
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.
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).
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.
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 operaciones
Transferencias de datos.
Aritmticas.
Lgicas.
Conversin.
Entrada/Salida.
Control del sistema.
Control de flujo.
Transferencia de datos
Especificar:
Fuente.
Destino.
Cantidad de datos.
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
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.
Valor (1)
12
34
56
78
Valor (2)
78
56
34
12
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.
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.
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)))
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.
Esquema de direccionamiento
de registros
Instruccin
Codop
Direccin de registro R
Registros
Operando
Esquema de direccionamiento
indirecto con registro
Instruccin
Codop
Direccin de registro R
Memoria
Registros
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.
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
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.
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.
Direcciones
Segmento
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
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?
Otros registros
Puede que haya registros que indiquen:
Bloques de control del proceso (ver Sistemas
Operativos)
Vectores de interrupcin (ver Sistemas Operativos)
Registros generales
Registros generales
Acumulador
Base
Contador
Datos
Punteros e ndices
Puntero de pila
Puntero base
ndice fuente
Registros de direcciones
ndice destino
Pila
Extra
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.
Interrupcin
Indirecto
Ejecucin
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
Clculo de
la direccin
del operando
No
interrupcin
Interrupcin
Interrupcin
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
MAR
Memoria
Unidad de
control
MBR
Bus de
direcciones
Bus de
datos
Bus de
control
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?
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
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.
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.
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.
Direcciones
Segmento
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
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?
Otros registros
Puede que haya registros que indiquen:
Bloques de control del proceso (ver Sistemas
Operativos)
Vectores de interrupcin (ver Sistemas Operativos)
Registros generales
Registros generales
Acumulador
Base
Contador
Datos
Punteros e ndices
Puntero de pila
Puntero base
ndice fuente
Registros de direcciones
ndice destino
Pila
Extra
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.
Interrupcin
Indirecto
Ejecucin
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
Clculo de
la direccin
del operando
No
interrupcin
Interrupcin
Interrupcin
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
MAR
Memoria
Unidad de
control
MBR
Bus de
direcciones
Bus de
datos
Bus de
control
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?
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
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.
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.
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
Memoria cache:
En 1968 en el IBM S/360 Modelo 85.
Microprocesadores:
Intel 4004 en 1971.
Segmentacin de cauce:
Introduce el paralelismo en el ciclo de ejecucin de
bsqueda.
Procesadores mltiples.
Comparacin de procesadores
CISC
IBM
370/168
1973
Nmero de instrucciones
208
303
235
51
94
184
62
32
4-8
Modos de direccionamiento
4
22
11
11
32
32
32
23-256
RISC
Motorola MIPS
88000
R4000
1988
1991
Superscalar
IBM
Intel
RS/6000 80960
1990
1989
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.
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.
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.
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
Salvaguarda
Puntero de
ventana
salvada
Puntero de
ventana en
curso
Llamada
Retorno
Variables globales
El compilador asigna posiciones de memoria a
las variables:
Ineficiente para variables locales a las que se accede
frecuentemente.
Cache
Variables individuales
Variables globales asignadas por
el compilador
Salvaguarda/restauracin basadas
en la profundidad de anidamiento
Direccionamiento de registro
Registros
Datos
Decodificador
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.
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.
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.
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.
D: Memoria.
Operacin registro a memoria o memoria a registro.
Efectos de la segmentacin
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
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
de las instrucciones
Cualitativa:
Revisin de soporte de lenguajes de alto nivel y uso ptimo de
los recursos VLSI.
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.
Organizacin superescalar
usual
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
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.
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)
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.
Ejecucin
Escritura
Ciclo
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.
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.
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.
Ciclo de instruccin
Captacin
OP
OP
Ciclo de instruccin
Indirecto
OP
Ejecucin
OP
OP
Ciclo de instruccin
Interrupcin
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.
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
memoria).
Tambin: PC
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.
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).
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.
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.
Ejecucin:
La unidad de control hace que se ejecute cada
microoperacin.
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.
Un ejemplo de seales de
control: captacin
MAR
(PC)
MBR
(memoria)
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.
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.
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
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
.
Salto a captacin
.
Salto a captacin o interrupcin
.
Salto a captacin o interrupcin
Unidad de control
Indicadores
de la ALU
Reloj
Lgica de secuen-
Decodificador
ciamiento
Lectura
Memoria de
control
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.
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 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
Memoria
de control
Lecturas recomendadas
Organizacin y Arquitectura de Computadores,
W. Stallings, Captulo 15.
William Stallings
Organizacin y Arquitectura
de Computadores
Captulo 16
Procesamiento paralelo
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.
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.
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.
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.
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.
Mdulo de
memoria 0
Mdulo de
memoria 1
Mdulo de
memoria 2
Mdulo de
memoria 3
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.
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
No
vlido
Compartido
Modificado
Exclusivo
Lectura-para-modificacin (RWITM)
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.
Configuraciones de clusters:
servidor sin disco compartido
E/S
E/S
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
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.
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.
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.
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.
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.
Mdulo de
memoria 0
Mdulo de
memoria 1
Mdulo de
memoria 2
Mdulo de
memoria 3
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.
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
No
vlido
Compartido
Modificado
Exclusivo
Lectura-para-modificacin (RWITM)
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.
Configuraciones de clusters:
servidor sin disco compartido
E/S
E/S
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