Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentaciones Completas - Stallings PDF
Presentaciones Completas - Stallings PDF
Organización y Arquitectura
de Computadores
Capítulo 1
Introducción
Arquitectura y organización 1
Sistema de
transferen- Mecanismo
cia de de control
datos
Recurso de
procesa-
miento de
datos
Operaciones (1)
Transferencia de datos
Ejemplo: del teclado a la pantalla
Recurso de
almacena-
miento de
datos
Sistema de
transferen- Mecanismo
cia de de control
datos
Recurso de
procesa-
miento de
datos
Operaciones (2)
Almacenamiento
Ejemplo: descarga de Internet al disco
Recurso de
almacena-
miento de
datos
Sistema de
transferen- Mecanismo
cia de de control
datos
Recurso de
procesa-
miento de
datos
Operación (3)
Procesamiento desde/al almacén
Ejemplo: actualización de la declaración de un banco
Recurso de
almacena-
miento de
datos
Sistema de
transferen- Mecanismo
cia de de control
datos
Recurso de
procesa-
miento de
datos
Operación (4)
Sistema de
transferen- Mecanismo
cia de de control
datos
Recurso de
procesa-
miento de
datos
Estructura del nivel superior
Secundarios Computador
Unidad
central de Memoria
procesa- principal
miento
Computador
Sistemas de
interconexión
Entrada/
salida
Líneas de
comunicación
Estructura de la CPU
CPU
Computador Unidad
Registros aritmético-
E/S lógica
Bus del
CPU
sistema
Interconexión
Memoria interna de la
CPU
Unidad de
control
Estructura de la unidad de
control
Unidad de control
CPU
Lógica
ALU secuencial
Unidad
Bus de
interno control
Registros y
Registros decodificadores de
la unidad de control
Memoria
de control
Esquema del libro (1)
http://williamstallings.com/COA5e.html
Enlaces con sitios de interés.
Enlaces con sitios que realizan cursos con este libro.
Lista de erratas del libro.
Information sobre otros libros de W. Stallings.
Internet y recursos web
para buscar
comp.arch
comp.arch.arithmetic
comp.arch.storage
William Stallings
Organización y Arquitectura
de Computadores
Capítulo 2
Evolución y prestaciones de los
computadores
ENIAC: los orígenes
Unidad aritético-lógica
Equipos de E/S
Memoria
principal
Unidad de control
de programa
IAS: detalles
1.000 palabras de 40 bits
Números binarios
2 instrucciones de 20 bits
Conjunto de registros (almacenamiento en la
CPU)
Registro temporal de memoria
Registro de dirección de memoria
Registro de instrucción
Registro temporal de instrucción
Contador de programa
Acumulador
Multiplicador cociente
Estructura de IAS: detalle
Unidad central de procesamiento
Unidad aritmético-lógica
Acumulador MQ
Circuitos aritmético-lógicos
Equipo de MBR
E/S Instrucciones
y datos Memoria
principal
IBR PC
MAR
IR Circuitos
de control
Direcciones
Unidad de control de programa
Computadores comerciales
1964
Sustituidos por la serie 7000 (y no compatibles con
ella)
Primera “familia” planeada de computadores
Conjunto de instrucciones similar o idéntico
E/S similares o idénticas
Velocidad creciente
Número creciente de puertos de E/S (Ejemplo: más
terminales)
Tamaño de memoria creciente
Coste creciente
Estrucutra de conmutadores multiplexados
DEC PDP-8
1964
Primer minicomputador (¡en honor a la minifalda!)
No necesita una habitación con aire acondicionado
Lo bastante pequeño para colocarlo en una mesa
de laboratorio
16.000 dólares
100k dólares+ para IBM 360
Aplicaciones incrustadas y OEM
ESTRUCURA DE BUS
Estructura de bus PDP-8
OMNIBUS
Memoria semiconductora
1970
Fairchild
Tamaño de un núcleo de ferrita
Ejemplo: 1 bit de almacenamietno de núcleo
magnético
Tiene 256 bits
Lectura no destructiva
Mucho más rápida que el núcleo
La capacidad se duplica aproximadamente cada
año
Intel
1971: 4004
Primer microprocesador
Todos los componentes de la CPU en un solo chip
4 bits
En 1972 evoluciona al 8008
8 bits
Ambos diseñados para aplicaciones específicas
1974: 8080
Primer microprocesador de Intel de uso genérico
Aceleración
Canalización
Cache integrado en la tarjeta
Cache L1 y L2 integrados en la tarjeta
Predicción de ramificación
Análisis de flujo de datos
Ejecución especulativa
Diseño para conseguir mejores
prestaciones
Servidores
Estaciones
Número de DRAMS
de trabajo
PCs grandes
PCs pequeños
DRAM
tamaño
Organizaciones
predominantes
Soluciones
http://www.intel.com/
Buscar Intel Museum
http://www.ibm.com
http://www.dec.com
Instituto Charles Babbage
PowerPC
Intel Developer Home
William Stallings
Organización y Arquitectura
de Computadores
Capítulo 3
Buses del sistema
Concepto del programa
Y ya tenemos un computador.
Componentes
E/S BR Datos
Datos
Datos
Módulo de E/S
Datos
PC = Contador de programa
IR = Registro de instrucción
MAR = Registro de dirección de memoria
MBR = Registro de buffer de memoria
E/S AR = Registro de dirección de E / S
Registros
E/S BR = Registro buffer de E / S
Ciclo de instrucción básico
Dos pasos:
Captación
Ejecución
Captar la
siguiente Ejecutar la
INICIO instrucción PARADA
instrucción
Ciclo de captación
El contador de programa (PC) contiene la
dirección de la instrucción que se debe captar a
continuación.
El procesador capta la instrucción que indica el
PC desde la memoria.
El registro PC se incrementa,
a no ser que se indique lo contrario.
Esta instrucción se carga en el registro de
instrucción (IR).
El procesador interpreta la instrucción y lleva a
cabo la acción requerida.
Ciclo de ejecución
Procesador- memoria
Transferencia de datos desde la CPU a la memoria.
Procesador-E/S
Transferencias de datos entre la CPU y un módulo
de E/S.
Procesamiento de datos
Realización de alguna operación aritmética o lógica
con los datos.
Control
Alteración de la secuencia de ejecución.
Ejemplo: la instrucción de salto
Combinación de estas acciones
Ejemplo de ejecución de
programa
Memoria Registros de la CPU Memoria Registros de la CPU
300 1940 300 PC 300 1940 300 PC
940 0003
940 0003 316 + 216 = 516
941 0002
941 0002 Paso 4
Paso 3
940 0003
940 0003
941 0002
941 Paso 6
Paso 5 0002
Diagrama de estados del ciclo
de instrucción
Almacena-
Captación de Captación
miento del
de
instrucción operando
operando
Varios Varios
operandos resultados
Decodifica-
Cálculo de la Cálculo de la Operación Cálculo de la
ción de la
dirección de dirección de dirección de
operación de la con datos
instrucción operando operando
instrucción
Gestor de Gestor de
interrupción interrupción
(a) Sin interrupción (b) Interrupción, espera de E/S corta ( c) Interrupción, espera de E/S larga
Ciclo de interrupción
Añadido al ciclo de instrucción.
El procesador comprueba si se ha generado alguna
interrupción,
indicada por la presencia de una señal de interrupción.
Si no hay señales de interrupción, capta la siguiente
instrucción.
Si hay alguna interrupción pendiente:
Se suspende la ejecución del programa en curso
Guarda su contexto
Carga el PC con la dirección de comienzo de una rutina de gestión de
interrupción
Proceso interrumpido
Volver a almacenar el contexto y continuar con el programa interrupido
Diagrama de estados de un ciclo de
instrucción, con interrupciones
Captación
Captación Almacena-
de instrucción de miento del
operando operando
Operandos Resultados
múltiples múltiples
Cadena
Instrucción No
siguiente o vector interrupción
Interrupciones múltiples
Interrupciones inhabilitadas
El procesador puede y debe ignorar la señal de petición de
interrupción si se produce una interrupción en ese
momento.
La interrupción se mantiene pendiente y se examinará una
vez se haya activado la primera interrupción.
Las interrupciones se manejan en un orden secuencial
estricto.
Definir prioridades
Una interrupción de prioridad más alta puede interrumpir
a un gestor de interrupción de prioridad menor.
Cuando se ha generado la interrupción de prioridad más
alta, el procesador vuelve a la interrupción previa.
Procesamiento de una
secuencia de interrupciones
Gestor de
Programa de usuario interrupción X
Gestor de
interrupción Y
Procesamiento de
interrupciones anidadas
Gestor de
Programa de usuario interrupción X
Gestor de
interrupción Y
Estructuras de interconexión
Transmite datos.
Recuerde que a este nivel no existe diferencia alguna
entre “datos” y “instrucciones”.
La anchura del bus es un factor clave a la hora
de determinar las prestaciones.
8, 16, 32, 64 bits.
Bus de dirección
Líneas de control
Controlador
local de E/S
Memoria
principal
Bus de expansión
Arquitectura de altas prestaciones
Memoria
principal
Bus local
Cache/adaptador
Procesador Bus del sistema
Bus de expansión
Tipos de buses
Dedicados
Uso de líneas separadas para direcciones y para
datos.
Multipleados
Uso de las mismas líneas.
Línea de control de dirección válida o de datos
válida.
Ventaja: uso de menos líneas.
Desventajas:
Se necesita una circuitería más compleja.
Posible reducción de las prestaciones.
Arbitraje del bus
Reloj
Inicio
Lectura
Líneas de
dirección
Líneas de
datos
Reconocimiento
Temporización asíncrona
MSYN
SSYN
Lectura
Líneas de
dirección
Líneas
de datos
Bus PCI
Líneas de interrupción
línea no compartida.
Soporte de cache
Extensión a bus de 64 bits
32 líneas adicionales.
Líneas multiplexadas.
2 líneas para que los módulos puedan usar una
transferencia de 64 bits.
Líneas de test (JTAG/Boundary Scan)
Para la definición de procedimientos de test.
Órdenes del PCI
Fasedededirección
Fase dirección Fase de dato Fase de dato Fase de dato
Acceso A Acceso B
Lecturas recomendadas
Stallings, Capítulo 3.
www.pcguide.com/ref/mbsys/buses/
Capítulo 4
Memoria interna
Características
Ubicación
Capacidad
Unidad de transferencia
Método de acceso
Prestaciones
Dispositivo físico
Características físicas
Organización
Ubicación
CPU
Interna
Externa
Capacidad
Tamaño de la palabra
La unidad natural de organización.
Número 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 más
grande que una palabra.
Unidad direccionable
Ubicación mínima que sólo puede ser direccionable.
Palabras internas.
Unidad de asignación en los discos de M$.
Métodos de acceso (1)
Secuencial
Secuencia lineal: tras iniciarse, lee detenidamente y en
orden.
El tiempo de acceso depende de la ubicación actual de los
datos y de la distribución previa.
Ejemplo:una cinta.
Directo
Los bloques individuales tienen una dirección única.
Acceso a través de una vecindad, seguida de una
búsqueda secuencial.
El tiempo de acceso depende de la ubicación y de la
distribución previa.
Ejemplo: disco.
Métodos de acceso (2)
Aleatorio
Las direcciones individuales identifican sus posiciones
exactas.
El tiempo de acceso es independiente de la posición
o del acceso previo.
Ejemplo: RAM.
Asociativa
Los datos se recuperan, basándose en una porción
de los contenidos que están almacenados.
El tiempo de acceso es independiente de la posición
o del acceso previo.
Ejemplo: cache.
Jerarquía de memoria
Registros:
En la CPU.
Memoria interna o principal:
Puede incluir uno o más niveles de cache.
“RAM”.
Memoria externa:
Almacenamiento trasero.
Prestaciones
Tiempo de acceso
Tiempo que transcurre desde el instante en el que se
presenta una dirección hasta que se obtienen datos
válidos.
Tiempo de ciclo de memoria
El tiempo que se requiere para “recuperar” la
memoria antes del próximo acceso.
El tiempo de ciclo consiste en el tiempo de acceso +
recuperación.
Velocidad de transferencia
Velocidad a la que se pueden transferir datos.
Dispositivos físicos
Memorias semiconductoras
RAM
Memorias de superficie magnética
Discos y cintas
Memorias ópticas
CD y DVD
Otros
Memoria de burbujas
Hologramas
Características físicas
¿Cuánta capacidad?
¿Cómo de rápida?
EL tiempo es dinero.
¿De qué coste?
Jerarquía de memoria
Registros
Cache nivel 1
Cache nivel 2
Memoria principal
Cache de disco
Disco
Memoria óptica
Cintas
¿Quiere velocidad?
Almacenamiento permanente.
Microprogramación (se verá más adelante).
Subrutinas de biblioteca.
Programas del sistema (BIOS).
Tablas de funciones.
Tipos de ROM
Inserción de datos, mientras se fabrica.
Muy costoso para las pocas prestaciones que tiene.
Programable (sólo una vez).
PROM.
Necesita un equipo especial para programar.
Lectura “casi completa”.
Programable y borrable (EPROM)
Borrada mediante rayos ultravioleta.
Borrable eléctricamente (EEPROM)
Lleva mucho más tiempo escribir que leer.
Memoria flash
Borra toda la memoria eléctricamente.
Organización detallada
Temporización y control
Contador
de
refresco
Deco-
Buffer de difica-
dor Matriz
direcciones
de de memoria
de filas
filas (2048 x 2048 x 4)
Buffer
Buffer de de entrada
direcciones Amplificadores de datos
de columnas de lectura
y puerto de E/S Buffer
de salida
Descodificador de datos
de columnas
Chip encapsulado de memoria
Dip de 32
terminales
0,6’’
Vista
superior
1 entre 512
Decodifica
de memoria
en módulos
Chip # 1
(MAR) 512 palabras
por 512 bits
Decodifica 1 entre
512 y detección Registro
de bits buffer
de memoria
(MBR)
Decodifica 1 entre
512 y detección
de bits
Chip # 8
512 palabras
por 512 bits
Decodifica 1 entre
512 y detección
de bits
Organización en módulos (2)
Registro
de dirección
de memoria
(MAR)
Registro
buffer
de
memoria
(MBR)
Grupo
Habili-
tación
de grupo
de chips
Selecciona
1 de entre 4
grupos
Corrección de errores
Fallo permanente
Defecto permanente.
Error transitorio
Aleatorio, no destructivo.
No dañan a la memoria de forma permanente.
Se detectan por medio del código de Hamming,
es decir, un código corrector de errores.
Código corrector de errores
Señal de error
Salida de datos
Entrada de datos
Compara-
Memoria ción
Cache
Transferencia de bloques
Transferencia de palabras
Memoria
principal
Operación de la cache:
resumen
Tamaño
Función de correspondencia
Algoritmo de sustitución
Política de escritura
Tamaño del bloque
Número de caches
El tamaño importa
Coste
Un cache grande es costoso.
Velocidad
Cuanto más cache, más rapidez (hasta cierto punto).
Comprobar la cache para acceder a los datos, lleva
tiempo.
Organización típica de cache
Direcciones
Buffer
de direcciones
Procesador
Buffer
de datos
Datos
Función 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) líneas de 4 bytes.
Memoria principal de 16Mbytes.
Dirección de 24 bits:
(224=16M).
Correspondencia directa
Cada bloque de memoria principal se corresponde a
sólo una línea de cache.
Ejemplo: si un bloque se encuentra en la cache,
debería estar en un lugar específico.
La dirección está en dos partes.
Los w bits menos significativos identifican una sóla
palabra.
La mayoría de los s bits significativos especifican un
bloque de la memoria.
Los s bits significativos se distribuyen en un campo de
línea r en la cache y en una etiqueta de s - r (los más
significativos).
Correspondencia directa:
Estructura de la dirección
Etiqueta s-r Línea o ranura r Palabra w
8 14 2
Dirección 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 línea de 14 bits.
Ninguno de los dos bloques en la misma línea tiene el
mismo campo de etiqueta.
Compruebe los contenidos de la cache mediante la
búsqueda de la línea y la comprobación de la etiqueta.
Correspondencia directa:
Tabla de la línea de cache
Memoria
Cache principal
Etiqueta Datos
Dirección de memoria
Etiqueta Línea Palabra
Comparación
(Acierto de cache)
(Fallo de cache)
Ejemplo de correspondencia
directa
Línea +
Etiqueta Palabra Datos
Número
Etiqueta Datos de línea
Simple.
Poco costosa.
Hay una posición concreta para cada bloque
dado:
Si un programa accede a dos bloques que se
corresponden a la misma línea de forma repetida, las
pérdidas de cache son muy grandes.
Correspondencia asociativa
Memoria principal
Etiqueta Datos
Dirección de memoria
Etiqueta Palabra
Comparación
(Acierto de cache)
(Fallo de cache)
Ejemplo de correspondencia
asociativa
Dirección Datos
Número
Etiqueta Datos de línea
Memoria principal
Etiqueta Datos
Dirección de memoria
Etiqueta Conjunto Palabra
Conjunto 0
Comparación
Conjunto 1
(Acierto de cache)
(Fallo de cache)
Correspondencia asociativa por
conjuntos: Estructura de la
dirección
Etiqueta Palabra
de 9 bits Conjunto de 13 bits de 2 bits
N.º de
Etiqueta Datos Etiqueta Datos
conjunto
lectura recomendada.
Infórmese sobre los detalles de la organización
de la cache en el Pentium II.
No sólo por este libro.
Tecnología avanzada de memorias RAM (1)
Lógica de control
y máquina de
estados finitos
Banco B
DRAM
(2M x 8)
Amplificadores de
Registro lectura y puertos de
E/S
de modo
Lacht de
direcciones Contador Codificador
de columnas de ráfaga de columnas
Lacht de
direcciones
de filas
Amplificadores de
Multiplexor lectura y puertos de
de filas E/S
Contador de
refresco
Banco B
DRAM
(2M x 8)
Tecnología avanzada de memorias RAM (3)
Lectura recomendada.
Compruebe cualquier otra RAM que pueda
encontrar.
Sitio web recomendado:
The RAM Guide (La guía de RAM).
William Stallings
Organización y Arquitectura
de Computadores
Capítulo 5
Memoria externa
Tipos de memoria externa
Disco magnético
RAID
Extraíble
Óptico
CD-ROM
CD-de escritura (WORM)
CD-RW
DVD
Cinta magnética
Discos magnéticos
S1 S1
S4 S4
S3 S2
S3 S2
Interbloques
Disco extraíble
Se puede quitar de la unidad y sustituir por otro
disco.
Proporciona una capacidad ilimitada de
almacenamiento.
Fácil transferencia de datos entre sistemas.
Disco no extraíble
Se monta permanentemente en la unidad.
Disquetes
Universales.
Baratos.
Almacenamiento externo más rápido.
Aumentando cada vez más:
Ahora es normal que tenga varios gigabytes.
Discos extraíbles
ZIP
Barato.
Muy conocido.
Sólo 100M.
JAZ
Caro.
1G.
L-120 (unidad a:)
También lee los discos de 3,5”.
¿Se ha vuelto más conocido?
Búsqueda de sectores
Byte de Byte de
sincro. Pista Cabeza Sector
CRC Datos CRC
sincro.
Tiempo de búsqueda
Cuando se desplaza la cabeza hasta la pista
requerida.
Estado latente (y rotacional):
Esperar a que los datos roten bajo la cabeza.
Tiempo de acceso = búsqueda + estado latente.
Velocidad de transferencia.
RAID
Sin redundancia.
Datos organizados en tiras a través de todos los
discos.
Estructura en tiras organizada cíclicamente.
Incremento de velocidad:
La petición de datos múltiples probablemente no esté
en el mismo disco.
Búsqueda de discos en paralelo.
Es probable que un conjunto de datos esté
estructurado en tiras a través de los discos múltiples.
RAID 1
Discos con una estructura en espejo.
Datos estructuados en tiras a través de todos
los discos.
2 copias de cada tira en discos separados.
Lectura desde cualquiera de los discos.
Escritura en los dos.
Recuperación sencilla:
Sustituir el disco defectuoso y volver a estructurarlo
en espejo.
Sin tiempo de espera en la recuperación.
Caro.
RAID 2
Los discos están sincronizados.
Tiras muy pequeñas:
A menudo como un único byte o palabra.
La corrección de errores se calcula a partir de
los bits de cada disco.
Los distintos discos de paridad almacenan
códigos Hamming, los cuales permiten corregir
errores, en las correspondientes posiciones.
Gran capacidad de redundancia.
Caro.
No se utiliza.
RAID 3
Similar al RAID 2.
Un solo disco redundante, no importa lo grande
que sea el conjunto de discos.
Sencillos bits de paridad para todos los
conjuntos de bits correspondientes.
En caso de fallo en la unidad, se accede a la
misma y se reconstruyen los datos desde el
resto de los dispositivos.
Velocidad de transferencia muy alta.
RAID 4
Como el RAID 4.
Tiras de paridad distribuidas a lo largo de todos
los discos.
Distribución cíclica para las tiras de paridad.
El disco de paridad evita el cuello de botella
encontrado en RAID 4.
Utilizado normalmente en los servidores de la red.
Almacenamiento óptico del CD-ROM
SECTOR
MODO
ECC
SEG
FF
MIN
00 x 10 00 Datos de la
estructura
Difícil.
Mover la cabeza a una posición más difícil.
Ajustar la velocidad correcta.
Leer la dirección.
Realizar ajustes a la localizacion requerida.
Ventajas y desventajas del
CD-ROM
CD de escritura:
WORM.
Ahora disponible.
Compatible con las unidades de CD-ROM.
CD-RW:
Borrable.
Cada vez más barato.
Compatible con la mayoría de las unidades de CD-
ROM.
DVD, ¿qué encierra una palabra?
Muchas capas.
Alta capacidad (4,7G por capa).
Una pelícua entera en un solo disco:
Usa compresión MPEG.
Por fin normalizado.
Las películas tienen un código regional.
Los reproductores sólo reproducen las películas
con el código de la región correspondiente.
Se puede “fijar”.
DVD de escritura
Acceso en serie.
Lento.
Muy barato.
Copia de seguridad y archivo.
Cinta de audio digital (DAT)
Capítulo 6
Entrada/Salida
Problemas de Entrada/Salida
Control y temporización
Comunicación con la CPU
Comunicación con los dispositivos
Almacenamiento temporal de datos
Detección de errores
Pasos de la E/S
Líneas de
dirección Lógica del Datos
Lógica
interfaz a
Líneas de de E/S dispositivo Estado
control externo
Control
Decisiones de un módulo de E/S
Programada
Mediante interrupciones
Acesso directo a memoria (DMA)
E/S programada
8259A 8086
IRQ0
IRQ1
IRQ2
IRQ3 INTR
IRQ4
IRQ5
IRQ6
IRQ7
Sistema de interrupción
del bus ISA
http://www.pcguide.com/ref/mbsys/res/irq/func.htm
Módulo de
CPU DMA E/S E/S Memoria
Módulo de Módulo de
CPU Memoria
DMA DMA
E/S
E/S E/S
Bus único, DMA integrado.
El módulo puede controlar más de un dispositivo.
Cada transferencia usa el bus una vez.
Del DMA a la memoria.
La CPU se interrumpe solo una vez.
Configuraciones del DMA (3)
CPU Módulo
Memoria
de DMA
Interfaz paralela.
8, 16 o 32 líneas de datos.
Dispositivos encadenados (daisy chained).
Los dispositivos son independientes.
Los dispositivos pueden comunicarse entre sí y
también con el anfitrión (host).
SCSI - 1
A principios de los 80
8 líneas de datos
5MHz
Velocidad de datos de 5MBytes/s
Siete dispositivos
Ocho si incluimos el interfaz del anfitrión
SCSI - 2
1991
16 y 32 líneas de datos
10MHz
Velocidad de datos de 20 o 40 Mbytes/s
Orden,
Bus datos,
libre Arbitraje (Re)Selección
estado,
mensaje
Diagrama de tiempo SCSI
Retardo de
estabilización Retardo de bus libre
del bus Retardo de establecimiento del bus (Bus Set Delay)
Retardo de borrado del bus (Bus Clear Delay)
Retardo de arbitraje
Retardo de borrado del bus más retardo de estabilización del bus
El iniciador
activa El dispositivo seleccionado activa BSY
el BSY
Los sistemas sin arbitraje empiezan aquí
IDs Primer byte Último byte Byte de Byte de Byte de Orden completa
(Bus de datos)
Arb. IDs de la orden de la orden datos datos estado
Bus libre Arbitraje Inicio y Entrada de
Destino Orden Entrada de datos Estado mensaje
Bus libre
Selección
Configuración de SCSI
Terminador
Interfaz
CPU Disco magnético
estéreo
Física
Medio de trasmisión, características eléctricas y de
señalización.
Enlace
Transmisión de datos en paquetes.
Transacción
Protocolo de pregunta-respuesta
FireWire: Capa física
Primer canal
Segundo canal Tercer canal
Intervalo Intervalo
Intervalo isoc. isoc. Intervalo
isoc. isoc.
Capítulo 7
El soporte del sistema operativo
Objetivos y funciones del
sistema operativo
Comodidad
Hace que un computador sea más fácil de usar.
Eficiencia
Permite que los recursos del computador se
aprovechen mejor.
Capas y puntos de vista de un
computador
Usuario final
Programador
Programas de aplicación
Utilidades
Diseñador del
sistema operativo
Sistema operativo
Creación de programas
Ejecución de programas
Acceso a los dispositivos de E/S
Acceso controlado a los ficheros
Acceso al sistema
Detección de errores y respuesta
Contabilidad
El sistema operativo como
gestor de recursos
COMPUTADOR
Controles de
DISPOSITIVOS DE E/S
Memoria E/S
Software
del sistema
operativo
Programas
y datos
Almacenamiento
Procesador Procesador
S.O.
Programas
Datos
Tipos de sistemas operativos
Interactivos
Sistemas de colas
Un solo programa (monoprogramados)
Multiprogramados (multiárea)
Los primeros sistemas
Protección de memoria
Para proteger el monitor.
Temporización
Para evitar que un único trabajo monopolice el
sistema.
Instrucciones privilegiadas
Sólo pueden ser ejecutadas por el monitor.
Ejemplo: instrucciones de E/S.
Interrupciones
Permite al procesador ceder y recuperar el control.
Sistemas de colas
multiprogramados
Ejecución Ejecución
Espera Espera
Tiempo
Multiprogramación de dos
programas
Ejecución Ejecución
Programa A Espera Espera
Ejecución Ejecución
Programa B Espera Espera Espera
Ejecución Ejecución
A B A B
Combinado Espera Espera
Tiempo
Multiprogramación de tres
programas
Ejecución Ejecución
Programa A Espera Espera
Ejecución Ejecución
Programa B Espera Espera Espera
Ejecución Ejecución
Combinado A B C A B C
Tiempo
Sistemas de tiempo compartido
Asignar
procesador
Iniciar Salida
Nuevo Preparado En ejecución Salida
Suspender
Se produce
el evento
Esperar evento
En espera
Bloque de control de procesos
Identificador
Estado
Prioridad
Contador de programa
Punteros a memoria
Datos de contexto
Información del estado de las E/S
Información estadística
Elementos clave de un sistema
operativo
Sistema operativo
Interrupciones Colas de
desde procesos Gestor de E/S
interrupción Planificador
Interrupciones a corto
desde E/S plazo
Cede el control
Planificación del procesador
Solicitud FINAL
Cola a Cola a CPU
de proceso largo plazo corto plazo
Monoprogramación
La memoria se divide en dos partes.
Una para el sistema operativo (el monitor residente).
Otra para el programa que se está ejecutando.
Multiprogramación
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
comparación con el procesador que, incluso en
los sistemas multiprogramados, puede
permanecer inactivo la mayor parte del tiempo.
Soluciones:
Se puede ampliar la memoria principal.
Es caro.
Origina procesos mayores.
Otra solución es el intercambio.
¿Qué es el intercambio?
fijas
8M 8M
2M
8M 4M
6M
8M
8M
8M
8M
8M
12 M
8M
8M
16 M
8M
Página 0
de A
Página 3
de A
Tabla de páginas
del proceso A
Memoria virtual
Página # Desplazamiento
Tabla de páginas
(Dispersión)
Marco #
Marco # Desplazamiento
Capítulo 8
Aritmética del computador
La unidad aritmético-lógica (ALU)
Unidad
de Indicadores
control
Registros Registros
Representación de enteros
+3 = 00000011
+2 = 00000010
+1 = 00000001
+0 = 00000000
-1 = 11111111
-2 = 11111110
-3 = 11111101
Beneficios
Una representación de 0.
Facilita las operaciones aritméticas (véase a
continuación).
Facilita bastante las operaciones con números
negativos.
3 = 00000011
El complemento booleano tiene como resultado:
11111100.
Sumar 1 al patrón de bits resultante: 11111101.
Ilustración geométrica de los números
enteros en complemento a dos
Sustracción Adición de Sustracción de Adición de
de números números números números
positivos positivos positivos positivos
0= 00000000
Bit a bit sin signo 11111111
Sumarle 1 al bit menos significativo
(LSB) situado a la derecha +1
Resultado 1 00000000
Se ignora el desbordamiento, por lo tanto:
- 0 = 0
Caso especial de negación 2
-128 = 10000000
Bit a bit sin signo 01111111
Sumarle 1 al LSB +1
Resultado 10000000
De este modo:
-(-128) = -128 X
Controlar al bit más significativo o MSB (también
llamado bit de signo).
Debería cambiar durante la negación.
El rango de números
Registro B Registro A
Complementador
SW
SW = Conmutador (selecciona
suma o resta)
Multiplicación
Desplazar a derecha
C An-1 A0 Q n-1 Q0
Multiplicador
Ejemplo de cálculo
Valores iniciales
Suma
Desplazamiento Primer ciclo
Suma
Suma Tercer ciclo
Desplazamiento
Suma
Cuarto ciclo
Desplazamiento
Diagrama de flujo para la
multiplicación de binarios sin signo
INICIO
C, A 0
M Multiplicando
Q Multiplicador
Cuenta n
No Sí
¿Q0 = 1?
C, A A+M
Desplazar C, A, Q
Cuenta cuenta - 1
No Sí
¿Cuenta = 0? FIN Producto en A, Q
Multiplicación de números
negativos
A 0 Q-1 0
M Multiplicando
Q Multiplicador
Cuenta n
= 10 = 01
Q0 , Q -1
A A-M = 00 = 11 A A+M
Desplazamiento
aritmético a derecha:
A, Q, Q -1
Cuenta Cuenta - 1
No Sí
¿Cuenta = 0? INICIO
FIN
Ejemplo de algoritmo de Booth
Valores iniciales
AA AA++M M Tercer
Tercerciclo
Desplazamiento
Desplazamiento ciclo
00001101 Quotient
Cociente
Divisor
Divisor 1011 10010011 Dividend
Dividendo
1011
001110
Partial
Restos 1011
Parciales
Remainders
001111
1011
Resto
Remainder
100
Números reales
Fracciones.
Podría realizarse mediante el proceso binario:
1001.1010 = 24 + 20 +2-1 + 2-3 =9,625
¿Dónde está la coma binaria?
¿Es fija?
Pocas veces.
¿Se mueve?
¿Cómo se sabe dónde está?
Coma flotante
Bit de signo
a) Formato
b) Ejemplos
Signos en coma flotante
Enteros representables
Recta Real
Desbordamiento Desbordamiento a
a cero negativo cero positivo
Desbordamiento Números negativos Números positivos Desbordamiento
negativo representables representables positivo
Cero
Recta
0,5 X 0,5 X Real
en coma ¿X = 0?
No
¿Y = 0?
No Sumar
exponentes
flotante Sí
Z 0
Sí
Restar
sesgo
RETORNAR
¿Desborda- Sí Indicar
miento en desborda-
exponente?
miento
No
Sí Indicar
¿Desbordamiento desborda-
a cero en
exponente? miento a
cero
No
Multiplicar
mantisas
Normalizar
Redondear RETORNAR
División en DIVIDIR
coma ¿X = 0?
No
¿Y = 0? No Restar
exponentes
flotante Sí
Z 0
Sí
Z Sumar
sesgo
RETORNAR
¿Desborda- Sí Indicar
miento en
exponente? desborda-
miento
No
Indicar
¿Desborda- Sí desborda-
miento a cero
en exponente?
miento a
cero
No
Dividir
mantisas
Normalizar
Redondear RETORNAR
Lecturas y sitios web
recomendados
Capítulo 9
Repertorios de instrucciones:
características y funciones
¿Qué es un repertorio de
instrucciones?
Registro de la CPU
Dispositivo de E/S
Representación de las
instrucciones
Procesamiento de datos
Almacenamiento de datos (memoria principal)
Transferencia de datos (E/S)
Control del flujo del programa
Número de direcciones
Instrucciones de 2 direcciones:
Una dirección es, a su vez, operando y resultado.
a = a + b
Reduce la longitud de la instrucción.
Requiere trabajo adicional:
Almacenamiento temporal para albergar más resultados.
Número de direcciones
c = a + b
Cuántas direcciones
Repertorio de operaciones:
¿Cuántas operaciones hay que considerar?
¿Qué pueden hacer?
¿Son complejas?
Tipos de datos.
Formatos de instrucciones:
Longitud del campo del código de operaciones.
Número de direcciones.
Decisiones de diseño
Registros:
Número 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 contraposición a CISC
(Computador de conjunto complejo de
instrucciones).
Tipos de operandos
Direcciones.
Números:
Enteros o en coma flotante.
Caracteres:
ASCII (Código Estándar Americano para Intercambio
de Información), etc.
Datos lógicos:
Bits o flags (indicadores)
(Por otro lado: ¿Qué diferencia existe entre números y caracteres?)
Tipos de datos en Pentium
Byte (8 bits).
Palabra (16 bits).
Palabra doble (32 bits).
Palabra cuádruple (64 bits).
El direccionamiento se realizan mediante una
unidad de 8 bits.
Las palabras dobles de 32 bits se lee en
direcciones divisibles por 4.
Tipos de datos específicos
General: con contenido binario arbitrario.
Entero : un valor binario.
Ordinal : entero sin signo
BCD (decimal codificado en binario) desempaquetado:
un dígito en cada byte.
BCD empaquetado : 2 dígitos BCD en un byte.
Puntero de proximidad (puntero cercano) :
desplazamiento de 32 bits dentro dentro de un
segmento.
Campo de bits.
Cadena de bytes.
Coma flotante.
Tipos de datos de coma
flotante en el Pentium II
Transferencias de datos.
Aritméticas.
Lógicas.
Conversión.
Entrada/Salida.
Control del sistema.
Control de flujo.
Transferencia de datos
Especificar:
Fuente.
Destino.
Cantidad de datos.
Diferentes instrucciones para diferentes
movimientos:
Ejemplo: IBM 370.
O una instrucción y diferentes direcciones
Ejemplo: VAX.
Aritméticas
Bifurcación:
Ejemplo: saltar a la posición x, si el resultado es 0.
Salto implícito:
Ejemplo: incrementar y saltar, si es cero:
ISZ Registro 1
Saltar xxxx
ADD A
Llamada a procedimiento.
Frente a la llamada a interrupción.
Lecturas recomendadas
Capítulo 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
Instrucción
Codop Operando
Direccionamiento directo
El campo de dirección contiene la dirección real del
operando.
Dirección real (EA) = campo de dirección (A)
Ejemplo: ADD A
Añadir contenidos de la celda A al acumulador.
Buscar la dirección A en la memoria para el operando.
Tan sólo requiere una referencia a memoria para acceder a
los datos.
No necesita ningún cálculo especial para acceder a la
dirección real.
Proporciona un espacio de direcciones restringido.
Esquema de direccionamiento
directo
Instrucción
Codop Dirección A
Memoria
Operando
Direccionamiento indirecto
Instrucción
Codop Dirección A
Memoria
Operando
Direccionamiento
de registros
Instrucción
Codop Dirección de registro R
Registros
Operando
Direccionamiento indirecto con
registro
Instrucción
Codop Dirección de registro R
Memoria
Registros
EA = A + (R)
El campo de direcciones contiene dos valores:
A = valor básico.
R = registro que contiene el desplazamiento.
O viceversa.
Esquema de direccionamiento con
desplazamiento
Instrucción
Codop Registro R Dirección A
Memoria
Registros
A contiene un desplazamiento.
R contiene el indicador de la dirección base.
R puede estar explícito o implícito.
Por ejemplo, los segmentos se registran en
80x86.
Direccionamiento indexado
A = base
R = desplazamiento
EA = A + R
Esta técnica 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
Capítulo 11
Estructura y función de la CPU
Estructura de la CPU
Uso general
Datos
Direcciones
Códigos de condición
Registros de uso general (1)
Entre 8 y 32.
Menor cantidad = más referencias a memoria.
Más registros no reducen las referencias a
memoria y ocupan el estado real de procesador.
Tener en cuenta los sistemas RISC.
¿Cuál es su longitud?
Contador de programa
Registro de instrucción
Registro de dirección de memoria
Registro intermedio de memoria
Punteros e índices
Puntero de pila
Puntero base
Índice fuente
Registros de direcciones Índice destino
Estado del programa
Segmento Acumulador
Código Acumulador
Datos
Pila
Extra
Revisión.
Capítulo 3 del libro de Stallings.
El ciclo indirecto
Captación
Interrupción Indirecto
Ejecución
Diagrama de estados del ciclo
de instrucción
Indirección Indirección
Almacena-
Captación de Captación de
miento de
instrucción operando
operando
Más de un Más de un
operando resultado
No
Instrucción finalizada, interrupción
Volver a por otro dato de
captar la instrucción siguiente
una cadena o un vector
Flujo de datos (Captación de la
instrucción)
MAR
PC
Memoria
Unidad de
control
IR MBR
MAR
Memoria
Unidad de
control
MBR
Simple.
Predeci.ble
El contenido actual de PC tiene que ser salvado para
poder reanudar la actividad tras la interrupción.
El contenido de PC se transfiere a MBR.
La posición de memoria especial (ej: puntero de pila) se
carga en MAR.
MBR se escribe en la memoria.
PC se carga con la dirección de la rutina de interrupción.
Se podrá captar la siguiente instrucción (primer
manejador de instrucciones).
Flujo de datos (Ciclo de
interrupción)
CPU
PC MAR
Memoria
Unidad
de
control
MBR
Pero no se duplica:
El tiempo de captación es, por lo general, más corto
que el de ejecución.
¿Precaptar más de una instrucción?
Si se produce un salto o una bifurcación, significa
que las instrucciones precaptadas no son las
requeridas.
Anadir más etapas para mejorar la prestación.
Segmentación de cauce
(Pipelining)
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
Instrucción 6
Instrucción 7
Instrucción 8
Instrucción 9
Salto en la segmentación de
cauce (Pipeline)
Tiempo Penalización debida al salto
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
Instrucción 6
Instrucción 7
Instrucción 15
Instrucción 16
Tratamiento de saltos
Flujos múltiples
Precaptar el destino del salto
Buffer de bucles
Predicción de saltos
Salto retardado
Flujos múltiples
Salto retardado:
No hacer el salto hasta que sea necesario.
Reordenar las instrucciones.
Diagrama de estados de la
predicción de saltos
No se salta
Predicción: Predicción:
Se salta saltar saltar
Se salta
Se salta No se
salta
No se salta
Predicción: Predicción: No se salta
no saltar no saltar
Se salta
Lectura básica
Ejemplos de procesadores.
Organización y Arquitectura de Computadores,
W. Stallings, Capítulo 11.
Páginas web, etc.
William Stallings
Organización y Arquitectura
de Computadores
Capítulo 11
Estructura y función de la CPU
Estructura de la CPU
Uso general
Datos
Direcciones
Códigos de condición
Registros de uso general (1)
Entre 8 y 32.
Menor cantidad = más referencias a memoria.
Más registros no reducen las referencias a
memoria y ocupan el estado real de procesador.
Tener en cuenta los sistemas RISC.
¿Cuál es su longitud?
Contador de programa
Registro de instrucción
Registro de dirección de memoria
Registro intermedio de memoria
Punteros e índices
Puntero de pila
Puntero base
Índice fuente
Registros de direcciones Índice destino
Estado del programa
Segmento Acumulador
Código Acumulador
Datos
Pila
Extra
Revisión.
Capítulo 3 del libro de Stallings.
El ciclo indirecto
Captación
Interrupción Indirecto
Ejecución
Diagrama de estados del ciclo
de instrucción
Indirección Indirección
Almacena-
Captación de Captación de
miento de
instrucción operando
operando
Más de un Más de un
operando resultado
No
Instrucción finalizada, interrupción
Volver a por otro dato de
captar la instrucción siguiente
una cadena o un vector
Flujo de datos (Captación de la
instrucción)
MAR
PC
Memoria
Unidad de
control
IR MBR
MAR
Memoria
Unidad de
control
MBR
Simple.
Predeci.ble
El contenido actual de PC tiene que ser salvado para
poder reanudar la actividad tras la interrupción.
El contenido de PC se transfiere a MBR.
La posición de memoria especial (ej: puntero de pila) se
carga en MAR.
MBR se escribe en la memoria.
PC se carga con la dirección de la rutina de interrupción.
Se podrá captar la siguiente instrucción (primer
manejador de instrucciones).
Flujo de datos (Ciclo de
interrupción)
CPU
PC MAR
Memoria
Unidad
de
control
MBR
Pero no se duplica:
El tiempo de captación es, por lo general, más corto
que el de ejecución.
¿Precaptar más de una instrucción?
Si se produce un salto o una bifurcación, significa
que las instrucciones precaptadas no son las
requeridas.
Anadir más etapas para mejorar la prestación.
Segmentación de cauce
(Pipelining)
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
Instrucción 6
Instrucción 7
Instrucción 8
Instrucción 9
Salto en la segmentación de
cauce (Pipeline)
Tiempo Penalización debida al salto
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
Instrucción 6
Instrucción 7
Instrucción 15
Instrucción 16
Tratamiento de saltos
Flujos múltiples
Precaptar el destino del salto
Buffer de bucles
Predicción de saltos
Salto retardado
Flujos múltiples
Salto retardado:
No hacer el salto hasta que sea necesario.
Reordenar las instrucciones.
Diagrama de estados de la
predicción de saltos
No se salta
Predicción: Predicción:
Se salta saltar saltar
Se salta
Se salta No se
salta
No se salta
Predicción: Predicción: No se salta
no saltar no saltar
Se salta
Lectura básica
Ejemplos de procesadores.
Organización y Arquitectura de Computadores,
W. Stallings, Capítulo 11.
Páginas web, etc.
William Stallings
Organización y Arquitectura
de Computadores
Capítulo 12
Computadores
de repertorio reducido
de instrucciones
Principales avances en los
computadores (1)
Características principales:
Gran número de registros de uso genera, o el uso de
tecnología de compiladores para optimizar el uso de
los registros.
Repertorio de instrucciones limitado y sencillo.
Énfasis en la optimización de la segmentación de
instrucciones.
Comparación de procesadores
CISC RISC Superscalar
IBM DEC VAX Intel Motorola MIPS IBM Intel
370/168 11/780 486 88000 R4000 RS/6000 80960
1973 1978 1989 1988 1991 1990 1989
Número de instrucciones
208 303 235 51 94 184 62
Modos de direccionamiento
4 22 11 3 1 2 11
Operaciones realizadas.
Operandos usados.
Secuenciamiento de la ejecución.
Se han realizado estudios sobre programas
escritos en HLL.
Los estudios dinámicos se miden durante la
ejecución del programa.
Operaciones
Asignaciones:
Movimiento de datos.
Estamentos condicionales (IF, LOOP):
Control secuencial.
El procedimiento llamada/retorno consume
mucho tiempo.
Algunas instrucciones HLL conducen a muchas
operaciones de código máquina.
Frecuencia dinámica relativa
Pascal C Promedio
Constantes enteras 16 23 20
Variables escalares 58 53 55
Matrices/estructuras 26 24 25
Llamadas a procedimientos
Llamada/Retorno
Puntero de
ventana
salvada
Puntero de
ventana en
curso
Llamada
Retorno
Operación del buffer circular
Registros
Datos
Decodi-
ficador
Referencia a un dato escalar -
Cache
Instrucción
Etique-
tas Datos
Comparación Selección
Datos
Optimización de registros
basada en el compilador
Supongamos un pequeño número de registros (por ejemplo
16-32).
El uso optimizado es responsabilidad del compilador.
Los programas HLL no tienen referencias explícitas a los
registros.
Normalmente - pensando en C - registro int.
Cada cantidad del programa candidata se asigna a un registro
simbólico o virual.
Asignar el número ilimitado de registros simbólicos a un
número fijo de registros reales.
Registros simbólicos que no se solapan pueden compartir el
registro real.
Si se agotan los registros reales, algunas de las variables se
asignan a posiciones de memoria.
Coloreado de grafos
(a) Secuencia temporal de uso activo de registros simbólicos (b) Grafo de interferencias entre registros
¿Por qué CISC?
Salto retardado:
No tiene efecto hasta después de la ejecución de la
siguiente instrucción.
Dicha siguiente instrucción es el salto retardado.
Salto normal y retardado
Capítulo 13
Paralelismo a nivel de
instrucciones, y procesadores
superescalares
¿Qué es una implementación
superescalar?
Unidades
funcionales
segmentadas
Memoria
Supersegmentado
Superescalar Captación
de
instrucción
Decodifi
cación
Escritu
ra
frente a
supersegmentado Máquina base
Instrucciones consecutivas
Supersegmentada
Superescalar
Dependencia de datos
(i1 usa un dato calculado por i0)
Dependencia relativa
i1/bifurcación al procedimiento
Conflicto en un recurso
(i0 e i1 usan la misma
unidad funcional)
Dependencia de salida:
R3:= R3 + R5; (I1)
R4:= R3 + 1; (I2)
R3:= R5 + 1; (I3)
Ejemplo de dependencia de datos: I2 depende del
resultado de I1.
Dependencia de salida o escritura-escritura: si I3
finaliza antes que I1, el resultado de I1 será
incorrecto.
Esquema de emisión en orden y
finalización desordenada
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
Duplicación de recursos.
Emisión 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).
Predicción de saltos
Ventana de
ejecución
Implementación superescalar
Capítulo 14
Funcionamiento de la unidad de
control
Microoperaciones
OP OP OP OP OP
Ciclo de captación: cuatro
registros
Registro de dirección de memoria (MAR):
Está conectado a las líneas de dirección del bus del
sistema.
Especifica la dirección de memoria de una operación de
lectura o escritura.
Registro intermedio de memoria (MBR):
Está conectado a las líneas de datos del bus del sistema.
Contiene el valor a almacenar en memoria o el último
valor leído de memoria.
Contador de programa (PC):
Contiene la dirección de la siguiente instrucción a captar.
Registro de instrucción (IR):
Ciclo de captación
La dirección de la siguiente instrucción a ejecutar está
en el contador de programa (PC).
La dirección (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
captación de la memoria.
Transferir el contenido de MBR a IR.
Esto libera MBR para su uso durante un posible ciclo
indirecto.
Ciclo de captación simbólico
t1: MAR (PC)
t2: MBR (memoria)
PC (PC) + I
t3: IR (MBR)
tx = unidad de tiempo/ciclo de reloj.
o también:
t1: MAR (PC)
t2: MBR (memoria)
t3: PC (PC) + I
IR (MBR)
Reglas de agrupamientos de
microoperaciones
ALU
Registros
Caminos de datos internos
Caminos de datos externos
Unidad de control
Tipos de microoperaciones
Secuenciamiento:
La unidad de control hace que el porcesador avance
a través de una serie de microoperaciones en la
secuencia oportuna.
Ejecución:
La unidad de control hace que se ejecute cada
microoperación.
Se realiza mediante señales de control.
Señales de control
Reloj:
Una microinstrucción (o un conjunto de
microoperaciones simultáneas) en cada pulso de
reloj.
Registro de instrucción:
Código de operación de la instrucción en curso.
Determinar qué microoperaciones hay que realizar
durante el ciclo de ejecución.
Señales de control
Indicadores:
Determinar el estado del procesador.
Determinar el resultado de anteriores operaciones.
Señales de control del bus de control:
De interrupción.
De reconocimiento.
Señales de control: salidas
MAR (PC)
La unidad de control activa las señales para abrir las
puertas entre PC y MAR.
MBR (memoria)
Abre las puertas entre MAR y el bus de dirección.
La memoria lee la señal de control.
Abre las puertas entre el bus de datos y MBR.
Organización interna del
procesador
Reloj:
Emite una secuencia repetitiva de pulsos.
Es útil para delimitar la duración de las
microoperaciones.
Ha de ser suficientemente largo para emitir la
propagación de las señales.
Emite señales de control diferentes en unidades de
tiempo diferentes, dentro de un único ciclo de
instrucción.
Necesita un contador con señales de control
diferentes para t1, t2 etc.
Problemas con los diseños de
implementación cabelada
Capítulo 15
Control microprogramado
Unidad de control
microprogramado
Basado en 3 factores:
Activación del máximo número de microoperaciones
simultáneas.
La manera en que se representa o codifica la
información de control.
La manera en que se especifica la próxima dirección
de microinstrucción.
Tipos de microinstrucción
Microinstrucción vertical:
Cada microinstrucción especifica una sola
microoperación (o unas pocas) para que se realicen.
Microinstrucción horizontal:
Cada microinstrucción especifica muchas
microoperaciones diferentes para que se realicen en
paralelo.
Microprogramación vertical
Dirección de microinstrución
Códigos de
función
Condición
de salto
Microprogramación horizontal
Unidad de control
Decodificador
Indicadores
de la ALU Lógica de secuen-
Registro de dirección de control
Reloj ciamiento
Lectura Memoria de
control
Dirección de
control siguiente
Decodificador
Tamaño de la microinstrucción.
Tiempo de generación de la dirección:
Viene determinada por el registro de instrucción:
Una vez por ciclo, justo tras la captación de la instrucción.
Es la siguiente dirección secuencial:
La situación más común en la mayoría de los diseños.
Es el destino de un salto:
Tanto condicionales como incondicionales.
Técnicas de secuenciamiento
Explícitas Implícitas
Indicadores
Lógica de
de la ALU
secuencia- Registro de dirección de control
Reloj miento
Memoria
de control
Lógica de
control
Capítulo 16
Procesamiento paralelo
Organizaciones Con Varios
Procesadores
Monoprocesadores
Clusters
Multiprocesador Acceso no
simétrico (SMP) uniforme a
memoria
(NUMA)
Organización MIMD
SI SD
UC UP UM
Organizaciones paralelas
(SIMD)
SD
EP1 ML1
SD
EP2 ML2
SI
UC
SD
EPn MLn
Organizaciones paralelas
(MIMD de memoria compartida)
SI SD
UC1 EP1
SI SD
compartida
EP2
Memoria
UC2
SI SD
UCn EPn
Organizaciones paralelas
(MIMD de memoria distribuida)
SI SD
UC1 EP1 ML1
SD
interconexión
SI
UC2 EP2 ML2
Red de
SI SD
UCn EPn MLn
Multiprocesadores simétricos
Un SMP es un computador autónomo con las siguientes
características:
Hay dos o más procesadores similares de capacidades comparables.
Estos procesadores comparten la memoria principal y las E/S.
Están interconectados mediante un bus u otro tipo de sistema de
interconexión.
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
través de los mismos canales, o bien mediante canales distintos que
proporcionan caminos de acceso al mismo dispositivo.
Todos los procesadores pueden desempeñar las mismas funciones (de
ahí el término simétrico).
El sistema está controlado por un sistema operativo integrado, que
proporciona la interacción 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, añadiendo
más procesadores.
Escalado:
Los fabricantes pueden ofrecer una gama de productos con
precios y prestaciones diferentes, en función del número de
procesadores que configuran el sistema.
Diagrama de bloques genérico de
un multiprocesador fuertemente
acoplado
Procesador Procesador Procesador
E/S
Red de
E/S
interconexión
E/S
Memoria principal
Organización de los
multiprocesadores simétricos
Simplicidad.
Flexibilidad.
Fiabilidad.
Desventajas del bus de tiempo
compartido
Más compleja:
Se precisa añadir al sistema de memoria una buena
cantidad de lógica.
Se consiguen mejores prestaciones.
Cada procesador tiene un camino dedicado a cada
módulo de memoria.
Permite configurar partes de la memoria como
privadas para uno o más procesadores:
Incremento de la seguridad.
Se debe utilizar una estrategia de escritura
directa para controlar la cache.
Unidad de control central
Encauza las distintas secuencias de datos entre
los distintos módulos independientes.
Puede almacenar temporalmente peticiones.
Puede realizar las funciones de arbitraje y
temporización.
Puede transmitir mensajes de estado y control
entre los procesadores.
Puede alertar sobre los cambios en las caches.
Las interfaces de E/S, memoria y procesador no
sufren cambios esenciales.
Ejemplo: S/370 de IBM.
Puntos clave de diseño de un
sistema operativo
No Compar- No Compar-
válido tido válido tido
(a) Línea en el procesador que inicia la transferencia (a) Línea en una cache sondeando el bus
Escalabilidad absoluta.
Escalabilidad incremental.
Alta disponibilidad.
Mejor relación precio/prestaciones.
Configuraciones de “clusters”:
servidor sin disco compartido
Capítulo 16
Procesamiento paralelo
Organizaciones Con Varios
Procesadores
Monoprocesadores
Clusters
Multiprocesador Acceso no
simétrico (SMP) uniforme a
memoria
(NUMA)
Organización MIMD
SI SD
UC UP UM
Organizaciones paralelas
(SIMD)
SD
EP1 ML1
SD
EP2 ML2
SI
UC
SD
EPn MLn
Organizaciones paralelas
(MIMD de memoria compartida)
SI SD
UC1 EP1
SI SD
compartida
EP2
Memoria
UC2
SI SD
UCn EPn
Organizaciones paralelas
(MIMD de memoria distribuida)
SI SD
UC1 EP1 ML1
SD
interconexión
SI
UC2 EP2 ML2
Red de
SI SD
UCn EPn MLn
Multiprocesadores simétricos
Un SMP es un computador autónomo con las siguientes
características:
Hay dos o más procesadores similares de capacidades comparables.
Estos procesadores comparten la memoria principal y las E/S.
Están interconectados mediante un bus u otro tipo de sistema de
interconexión.
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
través de los mismos canales, o bien mediante canales distintos que
proporcionan caminos de acceso al mismo dispositivo.
Todos los procesadores pueden desempeñar las mismas funciones (de
ahí el término simétrico).
El sistema está controlado por un sistema operativo integrado, que
proporciona la interacción 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, añadiendo
más procesadores.
Escalado:
Los fabricantes pueden ofrecer una gama de productos con
precios y prestaciones diferentes, en función del número de
procesadores que configuran el sistema.
Diagrama de bloques genérico de
un multiprocesador fuertemente
acoplado
Procesador Procesador Procesador
E/S
Red de
E/S
interconexión
E/S
Memoria principal
Organización de los
multiprocesadores simétricos
Simplicidad.
Flexibilidad.
Fiabilidad.
Desventajas del bus de tiempo
compartido
Más compleja:
Se precisa añadir al sistema de memoria una buena
cantidad de lógica.
Se consiguen mejores prestaciones.
Cada procesador tiene un camino dedicado a cada
módulo de memoria.
Permite configurar partes de la memoria como
privadas para uno o más procesadores:
Incremento de la seguridad.
Se debe utilizar una estrategia de escritura
directa para controlar la cache.
Unidad de control central
Encauza las distintas secuencias de datos entre
los distintos módulos independientes.
Puede almacenar temporalmente peticiones.
Puede realizar las funciones de arbitraje y
temporización.
Puede transmitir mensajes de estado y control
entre los procesadores.
Puede alertar sobre los cambios en las caches.
Las interfaces de E/S, memoria y procesador no
sufren cambios esenciales.
Ejemplo: S/370 de IBM.
Puntos clave de diseño de un
sistema operativo
No Compar- No Compar-
válido tido válido tido
(a) Línea en el procesador que inicia la transferencia (a) Línea en una cache sondeando el bus
Escalabilidad absoluta.
Escalabilidad incremental.
Alta disponibilidad.
Mejor relación precio/prestaciones.
Configuraciones de “clusters”:
servidor sin disco compartido