Estructura y Organización de Computadores

Anuncio
Estructura y Organización de
Computadores
Año 2013
Sinak
#UAHStyle
1. La ruta de datos
1.1. Introducción
1.1.1 La unidad aritmético-lógica
La Unidad Central de Proceso o CPU es el conjunto de:
- Ruta de datos o unidad de procesamiento
- Unidad de control
La ruta de datos procesa la información
[Ver relación entre la ruta de datos y la unidad de control]
[Ver flujo de instrucciones y flujo de datos]
CPU
Es la encargada de procesar la información.
Los componentes de la ruta de datos son:
- La ALU
- Los elementos de almacenamiento temporal
- El registro de estado (Dice como ha sido el resultado, en algunas no existe)
Procesa:
-
Operandos
En función de las señales de control
ALU
Conjunto de operadores, unidades funcionales, unidades de ejecución.
#UAHStyle
La ALU está formada por un conjunto de:
- Operadores
- Unidades funcionales
- Unidades de ejecución
Operador: Circuito capaz de realizar una operación lógica o aritmética
Los operadores se caracterizan por:
- Numero de operandos:
o Monádico
o Diádico
- Procesamiento:
o Serie (bit a bit)
o Paralelo (por palabras)
- El resultado depende de:
o Los operandos (combinacional)
o Operandos y el contador de estados (secuencial)
- Tecnología (marca la velocidad) -> Retardo
Tipo de operandos
Según la tecnología empleada (marca el retardo de las puertas) pueden ser
- MOS
- BIPOLAR
NAND, NOR, NOT 
AND, OR 
XOR XNOR 
retardo a
2a
3a
El valor de a varía según algunas tecnologías.
1.1.2 Almacenamiento temporal
Tanto los operandos como los resultados pueden tener un almacenamiento temporal en la
ruta de datos. Acelera el acceso evitando las latencias de memoria (de datos).
Puede estar constituido por:
- 1 único registro (Acumulador)
- Banco de Registros
- Sin registros: pila y memoria
1.1.2.1 Acumulador
El propio registro acumulador es uno de los operandos de entrada.
Corresponde a la arquitectura de las primeras maquinas
Almacenamiento temporal breve
Reutilización de datos
#UAHStyle
1.1.2.2 Banco de Registros
Puede ser:
- Por su función:
o Propósito general
o Especifico
- Para el programador:
o Visibles
o Arquitectónicos (el programador no puede acceder a ellos).
1.1.2.3 Sin Registros (almacenamiento en memoria)
No hay almacenamiento temporal: todas las variables están en memoria
Pila:
-
El acceso no es aleatorio sino de tipo LIFO
Los operandos están en la cima y son sustituidos por el resultado
Modo de trabajar de las calculadoras
Una ventaja: no se deben especificar operandos (ya que siempre se opera con el de encima de
la pila)
1.1.3 El estado
Señalan condiciones relativas a la última operación
El estado está disponible para la unidad de control y sirve para tomar decisiones.
Tomar decisiones: esta es la diferencia entre un computador y una calculadora
El estado puede ser más complicado, contiene el contexto de procesamiento.
1.2. Ruta de datos y velocidad de reloj
1.2.1 ¿Quién limita al reloj?
Simplificadamente:
Flujo de instrucciones: velocidad de decodificación en la unidad de control
Flujo de datos (latencia de los operadores y la impedancia de los cambios eléctricos)
Velocidad de reloj en la ruta de datos:
Retardo de los caminos (multiplexores, buses…)
Retardo del operador más usado (objetivo: que realice la operación en un ciclo)
1.2.2 Modos de llevar a cabo una operación
-
Unidad combinacional: Tiene un tiempo de transferencia de señales. Es casi inmediato.
Permite ejecutar varias cosas en paralelo. Es el más rápido y costoso.
#UAHStyle
-
Unidad secuencial: Ejecuta las operaciones en sucesivos pasos de comunicación. Requiere
más tiempo.
-
Microprograma: Mas barato que los anteriores, es más lento, no requiere hardware
adicional.
Programa (Emulación): Ejecuta el código que reside en memoria principal. Es el más lento
-
1.2.3 Operadores típicos
Los más rápidos son los operadores lógicos (NOT, OR AND XOR): Se denominan operaciones
de bit. Cada bit es tratado de manera individual, menor número de niveles lógicos.
Operadores de desplazamiento: Consiste en desplazar los bits de una palabra derecha o a la
izquierda. Los Computadores más sencillos solo realizan desplazamientos unitarios, mientras
que los complejos hacen muchos.
Circuitos desplazadores:
- Desplazador combinacional para 1 bit: cualquier longitud de desplazamiento, gran
número de puertas lógicas.
- Desplazador combinacional basado en multiplexores: Gran área de silicio. Más barato y
más lento.
- Barrer Shifter: desplaza o rota cualquier nº de bits en una única operación. Gran numero
de celdas aunque son pequeñas
Operaciones sobre signo:
-
Etapa de cambio de signo en complemento a 1:
#UAHStyle
-
Cambio de signo en complemento a 2: Se puede conectar en cascada pero
cuidado con la propagación de acarreos)
-
Si = ai XOR (E * Ci)
Ci = ai + Ci-1
-
-
Extensión de signo en diferentes representaciones. Hay tres casos:
o Complemento: Se repetirá el bit más significativo del origen para cubrir todas
las posiciones adicionales del destino.
o
Signo magnitud: Hay que desplazar el bit de signo a la izquierda del destino y
hay que llenar con ceros el resto de bits adicionales.
o
En exceso: Hay que añadir ceros a la izquierda.
Operaciones aritméticas: Enteros, coma flotante, suma-resta, multiplicación,
división y raíz cuadrada
#UAHStyle
1.3. El sumador
1.3.1 Sumador elemental
El sumador elemental es un circuito combinacional capaz de sumar dos bits más el posible
acarreo de la etapa anterior, produciendo el bit suma y el acarreo a la etapa siguiente.
- Sumador de 2 niveles lógicos
- 3 niveles pero menos puertas (dos semisumadores)
- 3 niveles (5 puertas)
3 niveles= 5 puertas.
Retardo= 6a (para suma)
Retardo= 3a+2a=5a (para acarreo)
Se pueden construir varios tipos de sumadores como por ejemplo:
- Operador secuencial: Un paso de computación por bit. [pg. 178 Anasagasti]
- Sumador paralelo: n bits simultáneamente.
1.3.2 Propagador
Propagador de acarreo (RCA)
Gran retardo en la propagación del acarreo.
(Dibujo de evolución temporal)
Evaluación del tiempo de retardo para 32 bits:
- Tiempo = 3a + 2(n-1)a + 3a = 68ª
- Sea a = 1ns  tiempo = 68ns  14 MHz (1/0,00000068)
- Niveles = 3 + 2(n-1) = 65
- Sea a = 1ns  tiempo = 65ns  15 MHz (1/0,00000065)
#UAHStyle
Retardo: se suele dar en niveles, se simplifica (niveles = 2n)
Área: se suele dar en celdas. Cada celda es un sumador elemental.
1.3.3 Sumador-restador en diferentes representaciones
·Restador paralelo:
Modificación del operador de suma
A – B-> cambio de signo de B y suma
Cambio de signo se puede hacer en cualquier sistema de representación.
· Sumador-Restador en binario puro:
La representación afecta al desbordamiento:
En suma -> el acarreo
En resta -> A-B = A + (2n – B) = 2n + A – B
A < B  negativo no representable; se “come” el acarreo 2n
· Sumador-Restador en complemento a 2:
La representación afecta al desbordamiento
[Ver imagen]
·Sumador-restador en signo-magnitud: S-R sin signo más circuito para tratar signo
· Sumador-Restador en exceso:
·Sumador BCD de 1 digito:
Sumador hexadecimal + circuito corrector
Restar 10 = sumar 6 (complemento a 16)
Colocando en cascada podemos operar con n dígitos BCD
·Resta en BCD:
Para restar  complementar a 9 (más o menos C-1)
A – B= A + (10n – B – 1) = 10n -1+ (a-B) = 10n + (A – B) – 1
- Si A – B < 0 -> correcto
- Si A – B > 0 -> Hay que recircular
#UAHStyle
· S-R BCD en aritmética de signo
· S-R en coma flotante
Se hace con enteros.
Los n bits de los operandos se dividen en p bits para la mantisa M y en q bits para el exponente
E. Siendo r la base del exponente (normalmente 2), el valor es:
Valor= M * rE
Las mantisas suelen estar normalizadas.
Sean A (MA, EA) y B (MB, EB) normalizados por r=2, p=q=4, mantisa en signo magnitud y
exponente en exceso 2q-1=8
A: 0100 1010 0,5 * 22 2
B: 0100
1011 0,5 * 23 4
La suma será:
A+B = 0.5*22 + 0.5*23 = 0.5*22 + 0.5*(22*21) = 0.5*22 + 1*22 = 1.5*22 = 6
Pero este resultado no se puede normalizar porque la mantisa es 1,… para normalizar tendrá
que ser 0,…
Si el exponente crece, la mantisa se divide:
A+B=0.5*22 + 0.5*23 = 0.25*23 + 0.5*23 = 0.75*23 = 6
Que en representación de coma flotante será:
R 0110 1011 0,75*23 6
Pasos que hay que seguir:
- Separar mantisas y exponentes:
o Separar mantisas y exponentes y extensión de signo a n bits (bits de guarda)
para información que se pierde al hacer las divisiones (desplazamientos)
- Restar los exponentes:
o Resta de los exponentes para obtener:
 Exponente mayor que será el del resultado salvo normalización
 Mantisa que hay que desplazar, que será la de menor exponente.
 Número total de desplazamientos que se necesita hacer
- Alineación de mantisas
- Se opera (Suma o resta) con las mantisas:
o Realización de la operación de suma o resta y redondeo (quitar bits de guarda)
si es necesario.
- Normalización del resultado:
o Normalización del resultado si es necesario (si el MSB del exponente es 0).
1.3.4 Dígitos de guarda
Ya que las operaciones en coma flotante generan más bits de los que caben en la
representación se mejora la precisión añadiendo una serie de bits que llamamos dígitos de
guarda.
#UAHStyle
En la resta hace falta un bit retenedor ya que al desplazar a la derecha una mantisa para
alinearla podemos perder acarreos de la parte sobrante
El bit retenedor será 1 cuando se detecte un 1 en la parte sobrante de la derecha
Al desplazar a la derecha el segundo operando perdemos el acarreo de los 4 bits que salen de
la representación. El bit retenedor se encargara de marcar este hecho para reflejarlo en el
resultado.
En general la representación de mantisas dentro de la ALU tiene m+3 bits repartidos de esta
forma:
1.3.5 Técnicas de redondeo
- La truncación consisten en eliminar los bits de la derecha; siempre da lugar a un
-
error por defecto
El redondeo propiamente dicho consiste en tomar el valor más próximo del
resultado obtenido
El método por el cual se fuerza el bit menos significativo de la representación
(LSB) a 1 es una transacción.
Ejemplo:
0,11001 10111 111
0,10001 00010 111
Truncación
0,11001 10111
0,10001 00010
Redondeo
0,11001 11000
0,10001 00011
LSB a 1
0,11001 10111
0,10001 00011
1.4. Acelerador de la suma entera
1.4.1 Introducción
·Propagación de acarreo o RCA
Sencillo, ocupa poco pero es lento
Un sumador es un circuito combinacional que se puede reducir a una formula lógica en forma
de sumas y productos en dos niveles:
- Muchas puertas gran área de silicio
- Problemas de fan-in, etc.
- Imposibilidad de implementación
1.4.2 Anticipador de acarreo (CLA)
Funciones lógica:
Construimos dos funciones a partir de esta observación (función generación y función
propagación)
#UAHStyle
Planteamiento (II)
De la misma manera que existe generación y propagación de acarreo para 1 bit podemos tener
generación y propagación para un bloque de m bits.
1.4.3 Anticipador de acarreo por bloques
Los operandos entran por la parte superior, viajan hacia abajo para combinarse con el acarreo
de entrada c-1 y vuelven a subir para generar los bits de sumas correctos.
Ventajas
 Es más fácil de implementar que el CLA
Inconvenientes  Ocupa un tamaño proporcional de n·log2n celdas.
1.4.4 Hibrido anticipador-propagador
Los operandos entran por la parte superior, viajan hacia abajo para combinarse…
[Dibujado en el Hennesy-Patterson]
1.4.5 Salto de acarreo
Planteamiento (I): Un sumador con salto de acarreo está a mitad de camino entre no de
propagación de acarreo y uno de anticipación en velocidad y coste
1.4.6 Selector de Acarreo
Planteamiento:
- En el sumador con selección de acarreo se realizan dos sumas en paralelo, una con
acarreo de entrada igual a 0 y otra con acarreo de entrada igual 1. Una vez que se
conoce el acarreo verdadero se selecciona la suma correcta.
- Se conoce como sumador condicional
Desventajas: Aumenta el coste de implementación y consumo. La señal selectora de los
multiplexores debe atacar a muchos de ellos (fan-out grande. Los multiplexores suelen ser
lentos.
Mejoras:
-
Dado que el tiempo de la operación lo marca los bloques …
El retardo total será el del primer bloque mas el asociado a las puertas lógicas que
hacen pasar el acarreo verdadero a los bloques sucesivos. Dado que esas puertas
lógicas introducen un retardo, tenemos tiempo para que los bloques propagadores
vayan siendo algo más grandes según bis aproximamos a los bits de mayor peso.
Retardo. El retardo viene dado por:
- Retardo del primer propagador: 2k niveles.
- Red de puertas 2(n/k - 2) niveles
- Ultimo multiplexor: 3 niveles.
#UAHStyle
1.5 Operación de multiplicación
1.5.1 Introducción a la multiplicación
Es una operación compleja y eso tiene su coste en tiempo y en área de silicio
Los compiladores intentan sustituir la multiplicación por secuencias de operaciones más
sencillas
Se suele hacer utilizando un sumador-restador de manera secuencial mediante un algoritmo
adecuado.
Solamente maquinas muy potentes utilizan un multiplicador combinacional.
Algunos procesadores utilizan un diseño hibrido entre multiplicación secuencial y la
combinacional.
1.5.2 Multiplicación sin signo
Algoritmo de sumas desplazamientos
Es una multiplicación binaria sin signo
Este algoritmo se basa en el método de multiplicar manualmente.
El registro A contiene el multiplicando mientras que el registro P contiene inicialmente el
multiplicador P0
El multiplicador se pierde siendo sustituido por el resultado sobre el doble de tamaño de
representación.
Genera 1 bit del resultado por paso de control. Es intrínsecamente lento.
Si evitamos la suma con 0 se hace más rápido pero depende del multiplicador (del numero de
0s que tenga)  Tiempo de computo variable: No es bueno para los compiladores, dificulta la
segmentación.
Algoritmo de sumas y restas
Se basa en: sea el número B que contiene una cadena de 1s que van de posición 1 a la 6.
00111110
B = 26 – 21 = 01000000 – 00000010 = 00111110
Por lo que A·26 – A·21
Que NO es un producto sino un conjunto de DESPLAZAMIENTOS
Generalizando: Restaremos A·2i cuando nos encontremos el primer 1 de una cadena y
sumaremos A·2j cuando se acabe, es decir, cuando alcancemos el siguiente 0.
#UAHStyle
1.5.3 Multiplicación con signo
La multiplicación es muy sencilla en signo-magnitud
Normalmente utilizamos el complemento a 2:
- En este caso un método sencillo para trabajar con signo puede ser:
o ….
Algoritmo de Booth para “sumas desplazamientos”
Se trabaja con un algoritmo para datos sin signo. Sin embargo, hay un problema.
Ejemplo:
-
Si multiplicamos 1011 (11) por 1101 (13), obtenemos 10001111 (143) → BIEN.
Si el número negativo está en el multiplicador solamente, también sale bien.
Pero si interpretamos los dos números como complemento a 2, tendríamos 1011
(-3) por 1101 (-5), obteniendo= 10001111
Por tanto, si tenemos un multiplicador negativo, se obtiene: R* = A * - B= A * (2n - |B|) -> MAL
Ya que lo que queremos es:
Por tanto, habrá que utilizar una corrección:
Es decir:
¡RESUMEN DE LO QUE HAY QUE HACER, SOLO PARA SUMAS DESPLAZAMIENTOS!:
Siempre que el bit n-1 de B sea 1, al resultado de la multiplicación normal, se le hace –A*2n-1,
es decir, se le resta A desplazado N-1 lugares.
#UAHStyle
Algoritmo de Booth para “sumas y restas”
Vamos a ver este caso con otro ejemplo:
Tenemos
A = 1101 1101
B = 1000 0011
En una multiplicación SIN signo
A = 221
B = 131
A*B = 28951
B = 1000 0011= -20 + 22 - 27 + 28
Sumas parciales sobre 22n
A*B = -A * 20 + A*22 – A*28 =28951  FUNCIONA
En una multiplicación CON signo
A= -35
B= -125
A*B= 4375
B= 1000 0011= -20 + 22 – 27 + 28
Con extensión de signo en todas las sumas parciales 22n
A*B = -A*20 + A*22 – A*28 = -4585  MAL
Por lo tanto, si aplicamos la corrección de Booth, tenemos que –A*28 = 8960 – 4585 + 8960 =
4375  FUNCIONA
En este caso no haría falta, pero si B<0 → B= -20 + 22 - 27, ya que eliminar el peso 28 (que es 2n)
es extender el número negativo a 22n, es decir, suponer que contiene 1’s a la izquierda:
B= 1111 1111 1000 0011
Multiplicadores combinacionales
- Son más rápidos que los métodos basados en algoritmos
- Ocupan mas
- Segmentables
- Por ejemplo: Multiplicador por árbol de Wallace
1.6 Operación de división
1.6.2 División con restauración
Circuito divisor con restauración
Inicialmente el dividendo esta en R-Q; al final R contiene el resto y Q el cociente
Sentido de la puerta OR: Cuando sale un 1 por la izq. se debe contabilizar como cabe aunque la
operación de prueba sobre el dividendo parcial genere “no cabe”.
#UAHStyle
· Se evitan las restauraciones gracias a lo siguiente:
Sea DP el dividendo parcial
Operación de prueba (DP – B)
Restauración si “no cabe” (DP – B + B) · 2  x 2 significa bajar uno mas
Nueva operación de prueba (DP – B + B) · 2 - B,……
1.6.3 División sin restauración
No hace falta restaurar, sólo cambiar de operación.
- Si no cabe, la siguiente operación de prueba es sumar.
-
Si sí cabe, la siguiente operación de prueba es restar.
Ventaja: El multiplexor, que era lo más costoso, te lo ahorras ya que en el circuito no está.
Resultado: Inviertes el bit de mayor peso de cada uno de los resultados parciales.
Pasos de computación: n pasos (n bits).
24/10/2011
2 El repertorio de instrucciones
2.1 Principios de diseño
2.1.1 Elementos de una instrucción maquina
El repertorio de instrucciones es la interfase entre la capa física y la capa programada
Representa el contrato entre el programador y el arquitecto diseñador del procesador
Manifiesta la arquitectura software (No tiene que coincidir con la arquitectura física real).
El diseño del repertorio de instrucciones responde a las siguientes preguntas Que hacer, con
quien registros, codificación
· Fases de ejecución de una instrucción
#UAHStyle
· La elección de las características del repertorio es una de las primeras decisiones a tomar el
proceso de diseño de un nuevo procesador.
2.1.2 Tipos de operaciones
· ¿Qué hacer?
¿Qué operaciones debe incluir el repertorio para procesar información?
Se deben cumplir dos condiciones:
- Capaz de realizar una tarea computable dentro de un tiempo finito
- Ser eficaz
Prescindiendo de la eficacia se ha demostrado que pueden diseñarse repertorio muy reducidos
(Maquina de Turing [Escribir, desplazar una posición y leer, parar] y Minsky [Decrementar…])
Una clasificación típica:
- Transferencia/movimiento:
o Copia información de un elemento de almacenamiento a otro
o Trabajan con dispositivos especiales(pila, E/S)
o Mueven palabras y fracciones de palabras
o Trabajan con 2 operandos
- Proceso:
o Aritméticas
 Coma fija
 Coma flotante
o Lógicas
o Comparación (resta o AND sin salvar resultado)
o Desplazamiento/rotaciones
o Trabajan con 3 operandos
- Bifurcación/salto/control de flujos:
o Modifican la secuencia normal de ejecución de un programa:
 Reutilizan de código
 Toma de decisiones
 Programación modular y estructurada
o Dado que dicha secuencia la controla la CP, actúan sobre este operando de
manera implícita
 Se pueden considerar como un caso especial de transferencia
donde el operando destino
o Clasificación:
 Saltos:
 Condicionales: evalúan una condición sobre: el registro de
estado, operando explicito
 incondicionales (se evalúa una condición)
 Subrutinas: salto incondicional a la dirección de las subrutinas
 Llamada y retorno de subrutina esta emparejado
 Puede llamarse desde cualquier posición
#UAHStyle



-
Puede llamar a otro subrutinas
Hay que salvar la dirección de retorno para poder retornar
a la secuencia principal
Es habitual pasar parámetros (En registros, pila…) El
conjunto de parámetros mas la dirección de retorno se
denomina marco de pila.[Foto de marco de pila en
Stallings]
Otras (instrucciones de bit…)
Comparativa modos de implantar los condicionales [tabla muy bonita y muy grande para
copiarla, columnas (tipo, ejemplo, modo de trabajar, pros, contras)]
Comentario acerca de las llamadas a procedimientos  Transferencia de control de estado:
- Antigua moda. Instrucciones de manejo de registro en bloque
- Hoy en día cada registro se almacena individualmente
Salvaguarda de registro potencialmente sobrescribidles
2.1.3 Las direcciones
¿Con quién?
Las operación es se realizan sobre operandos. Los operandos pueden estar en:
- Memoria principal
- Registro
- La propia instrucción
El modo de almacenamiento temporal en CPU es un aspecto destacado en el diseño de un
procesador
[Imagen de modo de almacenamiento temporal en CPU, supuestamente en el Hennesy
Patterson]
· Pila:
Instrucciones de 0 direcciones [En la pg. 398 de Stallings]
· Acumulador:
Instrucción de 1 dirección
·Banco de registros:
Instrucciones de 2 o 3 direcciones
Requieren de instrucciones de carga/almacenamiento
· Memoria-memoria:
Sin almacenamiento temporal
Recuento pequeño
Formato grande
· El almacenamiento temporal en registros es el más utilizado hoy en día
#UAHStyle
Los procesadores que lo implementa se conocen como maquinas: Registro-registro.
Carga/almacenamiento
· Los registros son rápidos
· Los compiladores lo maneja bien
2.1.4 Factores a considerar en el diseño
A saber:
Cuantas, que y cuan complejas deben ser
Tipo de datos
Longitud de la instrucción en bits, número de direcciones, longitud de cada uno de los
campos.
…
Existe una verdadera arquitectura del repertorio de instrucciones (ISA)
El ISA tiene un impacto decisivo en dos vertientes
- …
- …
2.1.5 Endianess
Aplaude a la ordenación de los bytes en memoria de un tipo de tamaño multibyte (Figuras
sacadas de Wikipedia)
BigEndian: Orden de escritura de izq. a der., las cadenas de caracteres se almacenan igual
LittleEndian: Orden de los pesos (el menor de dirección más baja)
Big-Endian
Little-Endian
Convenciones de Microsoft. Manejo de procedimientos (Buscar, tiene pinta de importante)
2.2 Modos de direccionamiento
2.2.1 Introducción
Posibles ubicaciones:
- Propia instrucción
- Elementos de almacenamiento (Registros, memoria)
#UAHStyle
Clasificación:
- Inmediato
- Directo
[Mirar los modos de direccionamiento] IMPORTANTE
2.2.2 Modos de redireccionamiento
Directo Absoluto (a registro, a memoria)
Directo relativo a registro [implícito, explicito] (La instrucción no contiene la
posición del operando sino un desplazamiento respecto a un puntero) Es el más usado, las
instrucciones son más compactas, muy útil para manejar estructuras de datos.
Indirecto
2.3 Codificación de las instrucciones
2.3.1 Principios
Codificación y compatibilidad binaria: Cuando dos maquinas distintas ejecutan el mismo
lenguaje maquina se dicen que son compatibles binarias.
La codificación tiene importante implicaciones: en cuanto al uso de memoria, en cuanto a….yo
que se T.T
Las instrucciones de maquinas son AUTOCONTENIDAS e independientes.
La secuencia de bits se divide en campos con diferentes tamaños y significados. Esto se conoce
como formato
Para que sea AUTOCONTENIDA se deben especificar….
2.3.2 Ortogonalidad
Propiedad de un repertorio de instrucciones de un microprocesador. Dicho repertorio será
Ortogonal si cada operación se puede realizar con cualquier tipo de operando y cualquier
modo de direccionamiento… Solo ha existido una maquina que haya sido ortogonal esa era el
VAX.
2.3.3. Criterios de diseño (Según Holmeremu y Bose)
Importantes es el TAMAÑO DE CODIGO ESTATICO y REGULARIDAD DE LA DECODIFICACION
Longitud de la instrucción (Múltiplo de byte, tamaño de palabra [muy extendido el formato de
32 bits])
2.3.4 Codificación
Veamos los códigos de operación:
Con el fin de ahorrar espacio, se usa…
Los códigos de mensaje pueden formar parte del OPCODE:
Este método…
[Mirarte OPCODE, el año pasado preguntó….]
#UAHStyle
Sean n (tamaño de código de operación), t (numero de códigos que son campos de extensión),
m (tamaño del código asicado al campo de extensión de yoquecoñose)
Numero de códigos pequeños: p 2n -1
Numero de códigos grandes: g = 2n·t
2.3.5 Formatos Comerciales
·80x86
· VAX
· Alpha
· PowerPC
2 El repertorio de instrucciones (bis?)
2.4 Planteamiento (Frecuencia de Uso)
Importancia de la frecuencia de uso:
De los modos de direccionamiento
De las operaciones
Ayuda a determinar: la anchura de banda requerida en…, …, ….
2.4.2 Modos de direccionamiento
Se van a utilizar 3 programas (TeX, Spice y Gcc)
TeX: procesador de textos, cadenas de caracteres
Spice: simulación
Gcc: compilador
· Operandos ubicados en memoria (Maquina VAX) [Grafica en el Henessy-Patterson]
Comentarios: Es un estudio de Henesy Patterson sobre un VAX (maquina con muchos modos
de direccionamiento de memoria)
- Relativo a base y a índice y base son casos relativos a…
- …
· Distribución de inmediatos por dos operandos (maquina MIPS R2000)
Comentario:
Los inmediatos se suelen usar en comparación
La mayor parte de las comparaciones…
…
· Resumen:
En los accesos a memoria el modo más usado es el relativo a registro
#UAHStyle
2.4.3 Operaciones
Dos tipos de distribuciones:
- Uso estático: recuento de operaciones sobre una imagen ejecutable
- Uso dinámico: recuento de operaciones en ejecución
o No coinciden ya que la traza de ejecución no tiene por que seguir todas las
posibles bifurcaciones escritas en el código y repite los bucles gran numero
de iteraciones.
Menos del 15% de las instrucciones son responsables del 90% de la ejecución.
· Comentarios:
- Las instrucciones más sencillas (rápidas) son las más usadas:
o El arquitecto se ha encargado de conseguir que sean rápidas debido a su
frecuencia de uso
o 10 instrucciones de x86 son responsables del 96% de la ejecución
· Frecuencia de uso de los saltos [en el Hennesy-Patterson]
Distancia de salto:
- Tamaño del desplazamiento sobre el PC
- Con 8 bits es suficiente para la mayor parte de los saltos saltos de longitud de
rango +- 128
· Caracterización de los saltos:
- Saltos hacia atrás suelen ser bucles
o Se toman el 90% de los casos
o Conocer esto ayuda a implementar predicciones de salto
- Se pueden hacer otras caracterizaciones combinando el destino del salto y el modo
de direccionamiento
· Resumen:
- Muy pocas instrucciones son responsables de la mayor parte de la ejecución de un
programa
- Las transferencias son la operaciones más abundantes
- Los saltos condicionales suponen alrededor del 20%
- ..
· Llamadas/retornos de procedimientos [en Stallings]:
- Se consume mucho tiempo en llamadas/retornos de procedimientos
o Aunque el porcentaje de uso entre saltos sea al torno del 15%
o No se suelen usar más de 6 argumentos
o No se suelen usar más de 6 variables locales
o No se hacen secuencias de llamadas muy profundas (alrededor de 5)
2.4.4 Eventos Dinámicos
· Distribución del uso dinámico de instrucciones para dos arquitecturas diferentes (memoriamemoria, registro-registro)
#UAHStyle
Comentarios:
- Porcentaje de saltos diferente, aunque es una constante, debido a la diferencia de
recuento
- En m-m hay menos trasferencia porque las operaciones de procesos llevan…
- En r-r …
· Distribución de evento dinámicos en maquinas de distintas arquitecturas
Comentarios
- El flujo de datos en memoria es menor en r-r ya que los datos están en CPU
- El recuento es mayor en registro-registro
2.5 CISC vs RISC
2.5.1 Salto semántico
Repertorio CISC:
- El desarrollo de los lenguajes de programación de alto nivel provoca el
denominado salto semántico
- Diferencia de complejidad entre las operaciones que pueden representar el
lenguaje (sofisticadas) y las que proporciona el computador (primitivas)
- El salto semántico se manifiesta en programas muy largos, compiladores muy
complejos
- Para evitar el salto semántico se diseñan ISAs con:
o Muchas operaciones
o Muchos modos de direccionamiento
o Sentencias HLL implementadas en hardware
 Secuencias complejas en microcódigo
- Los programas de repertorio CISC son mas compactos (imagen ejecutable)
o Consumen menos memoria (área de código)
- Los estudios acerca de la frecuencia de uso operaciones y modos de
direccionamiento DESMIENTEN la eficacia de las características introducidas para
evitar el salto semántico [los programas compactos NO son los programas más
rápidos]
2.5.2 Conclusiones acerca de la frecuencia de uso
Los estudios acerca de la frecuencia de uso de operaciones y modos de direccionamiento
desmienten la eficacia de las características introducidas para evitar el salto semántico.
2.5.3 Organización de los registros
Ventanas de registro:
- Asignación un conjunto pequeño de registros a cada procedimiento (se emplean
pocos parámetros y variables….)
- Los registro de salida de un conjunto se solapan con los de entrada del
procedimiento llamado [figura del Stallings]
#UAHStyle
-
En una llamada a un procedimiento, el procesador conmuta a una nueva ventana
de registros, sin necesidad de guardar los registros en la pila
Para asegurar cualquier profundidad de llamada, habría que implementar un
número ilimitado de registros
[Figura redondita tomada del Stallings de algo]
-
Para las variables globales, se utilizan un banco de registros adicionales que es
accesible desde cualquier procedimiento
· Banco de Registros:
- Es un enfoque …
- El esquema fue diseñado por Hennessy
- Lo implementan entre otros los procesadores MIPS o Alpha
2.5.4 Filosofía RISC
Repertorio limitado y sencillo
Operaciones de proceso entre registros (maquinas r-r)
Pocos modos de direccionamiento y sencillo:
- Se privilegia el acceso a memoria mediante el modo relatico a registro mas
desplazamientos
- No se direcciona más de un operando de memoria por instrucción
- Se deja de usar el indirecta
Formato:
- Un único tamaño de instrucción, suele ser de 32 bits
- Formato regular, campos situados en el mismo lugar siempre
Diseño hardware:
- Se simplifica la unidad de control  control mas rápido
- Uso de un gran número de registros de propósito general
- Énfasis en la optimización de la segmentación de las instrucciones
- Procesamiento de 1 instrucción por ciclo (lectura de operandos ejecución y
escritura del resultado en 1 ciclo de reloj)
- En cuanto al uso de memoria se intenta evitar: ambigüedades, tal y tal
- En cuto a paralelismo…
2.6 Compatibilidad binaria
Un procesador es compatible binario con otro si soporta, al menos, el mismo juego de
instrucciones que el otro con un formato idéntico o, al menos, coherente.
Problemática:
- Si los procesadores no son compatibles binarios se debe recompilar todo el
software utilizando compiladores nativos
- Para un único programa escrito en un lenguaje estándar esto es sencillo
#UAHStyle
-
Una aplicación compleja puede estar constituida por miles de pequeñas piezas de
código fuente desarrollada y compilada con herramientas diferentes.
Para correr código antiguo en computadores nuevos:
- Interprete software
- Emulador en microcódigo
- Traductor binario
- Compilador nativo
3. La unidad de control
3.2 Fases de ejecución de una instrucción
Las instrucciones se ejecutan con…
Las fases de ejecución son:
- Búsquedas (fetch o captación): Traer de memoria la instrucción a ejecutar
(apuntada por el CP)
- Decodificación: Interpretar la operación a realizar.
- Lectura de operandos: Buscar los operandos en función de los modos de
direccionamiento
- Operación: realizar la operación
- Escritura de resultado: escribir el resultado en la ubicación determinada del...
Entre las fases fetch y decodificación hay que actualizar el CP.
En estas fases son validas aunque la operación a realizar no sea de proceso:
- Si es una transferencia la fase de ejecución se reduce a la copia de un dato desde el
operando fuente a destino
- Si es una bifurcación la evaluación de la condición se suele llevar a cabo durante la
fase de decodificación:
o Si el salto se toma, se actualiza el contador de programa entre fases
o Si el salto no se toma, las fases siguiente no hacen nada
3.3 Operaciones elementales
Cada una de las fases de ejecución de una instrucción se descompone en una serie de
operaciones más sencillas como…blalblalblalabla.
Existen dos tipos:
- Operaciones elementales de transferencia.
- Operaciones elementales de proceso.
Descripción de los elementos hardware:
Registros
- Elementos de almacenamiento
- Dispositivos síncronos
#UAHStyle
-
Activos por flanco (de bajada para nosotros
Buffers
.Separan los elementos del bus
.blablala…
Nombrar las señales con una regla de construcción:
- Lxx -> cargas
- Txx ->transferencias
Los elementos de almacenamiento tienen dos bus conexiones al bus:
- Una para escribir
LOS BUSES NO ALMACENAN INFORMACION
Existen diferentes arquitecturas para alimentar la ALU:
- Sistema basado en multiplexores
- Sistema basado en dos buses
Las operaciones elementales de transferencia se encargan de mover datos entre registros
Las señales de control involucradas realizan 2 funciones:
- Establecer un camino entre el origen y el destino
- Copiar un dato en un registro
Transferencia entre registros:
- Establecer un registro
- Salvar en registro
3.3.3 De proceso
Las operaciones elementales de proceso se encargan de procesar datos en un operador
Las señales de control involucradas realizan 2 funciones:
Proporcionar operandos a un operador: Establecer un camino entre los operandos y
entradas del operador
Las señales…
Procesos:
- Establecer camino a través de un operador
- Salvar en registro
La velocidad de reloj la establece el retardo de que el dispositivo que queremos que
trabaje…blablablab
3.3.4 Cronogramas (suena apasionante #ironia)
#UAHStyle
Sea la siguiente ruta de datos:
Características de la arquitectura propuesta:
- Multiplicidad funcional (paralelismo posible), admite instrucciones de tamaño
variable.
- Unidad de actualización del contador de programa conectado a la unidad de
control.
- No es posible trabajar con dos datos de memoria por falta de buses de datos.
¡OJO! Si elimino TBUS se pueden provocar conflictos en el bus.
Algunos ejemplos en esa máquina:
1. Fase de búsqueda:
Descomposición en operaciones elementales.
ACCIÓN
Transferir CP a DIR
- Establecer camino: TACP
- Salvar información: LDIR
TIPO
Operación elemental de
transferencia
Transferir contenido de memoria a RI
- Establecer camino: TMEM, R/W, IO/M (con esta última se
especifica si la dirección es un puntero a memoria o a E/S)
- Salvar información: LRI
Operación elemental de
transferencia.
El acceso a la memoria SIEMPRE dura dos ciclos de reloj porque es un acceso lento. En todos
los cronogramas la carga se produce al final.
#UAHStyle
En total consume 3 ciclos, porque el acceso a memoria ocupa 2 ciclos. Si lo hiciésemos con
registros activos por flanco de bajada, se haría con 2 ciclos en total.
2. Actualización del contador de programa:
Descomposición en operaciones elementales
ACCIÓN
TIPO
Sumar CP con longitud
Operación elemental de proceso
- Transferir longitud desde UC: DIT
- Operación de suma: TR/SM
- Salvar nuevo CP: LCP
Se puede hacer en un ciclo de reloj.
3. Operación de suma:
Descomposición en operaciones elementales
ACCIÓN
Sumar R1+R2→R3
- Seleccionar R1, R2, R3: SA, SB, SC
- Establecer camino con la ALU: TA, TB
- Seleccionar operación de suma: SEL
- Establecer camino con el banco de registros:
TALU
- Salvar resultado y estado: LR, LF
TIPO
Operación elemental de proceso
Se puede realizar en un ciclo de reloj
3.4 Caracterización de la UC
3.4.1 Elementos
La unidad de control consta de…. T.T
- Registros de algo
3.4.2 Funciones
La UC es una maquina de estados
A cada estado le corresponde activar algunas señales de control (la decodificación no tiene
señales de control)
#UAHStyle
3.5 El diseño e la UC
3.5.1 Magnitud del problema
El diseño de la UC plantea carios retos:
- En primer lugar el diseño propiamente dicho: correcto, rápido y fácilmente
depurable
- El coste
- Optimización:
o Identificaron de estados adecuada
 Códigos similares a estados que realicen…
o Minimizar el CPI
Dado: El repertorio de instrucciones y la ruta de datos
La unidad de control indica a la ruta de datos lo que tiene que hacer de noseu…
Cada fase de ejecución es también una maquina de estados:
- Las fases de lectura de operandos y de escritura de resultados tienen una maquina
de estados para cada modo de direccionamiento
- La fase de ejecución que tiene la máquina de estados...
¡¡¡EXPLOSION DE ESTADOS!!! (No es coña, lo ponía en las diapositivas)
La UC genera señales de control…
3.5.2 Soluciones
Dos métodos de diseño:
- UC de lógica cableada (circuitos secuenciales): es el circuito más rápido, pero es
muy laborioso de diseñar, difícil de depurar.
- UC de lógica almacenada: fácil de depurar, simplifica la compatibilidad binaria. Es
lento y ocupa mucho sitio
Hoy en día todas las UC son cableadas
3.6 Unidad de control cableada
Hay tres tipos:
- Circuito secuencial
- Células de retardo
- Contador secuencial
3.7 Control microprogramado
Consiste en almacenar las distintas palabras de control correspondientes a cada periodo o fase
de ejecución de una instrucción en una memoria
D esta forma, generar señales de control es leer posiciones de memoria
#UAHStyle
Cada palabra de control se llama microinstrucción y por eso las UC diseñadas de esta forma se
denominan así.
El conjunto de microprogramas que ejecutan las instrucciones e llaman firmware o
microcódigo.
Una UC microprogramada ha de ser capaz de 3 cosas
- Retener en memoria todas las microinstrucciones posibles
- Hacer corresponder cada instrucción con su microprograma, es decir, hacer que
cada cogido de operación encuentre la dirección donde comienza en memoria el
microprograma
- Seguir la secuencia del microprograma y encadenar con el siguiente código de
operación.
3. 7.1 Formato de las microinstrucciones
Esto significa que está desperdiciando mucha memoria (hay muchos 0s).
De todas las posibles combinaciones solamente unas pocas palabras tienen un significado real
Se denomina Microprogramación horizontal si no se usa codidificación, mientras que
llamaremos microprogramación vertical al caso de microinstrucciones codificadas
Las microinstrucciones horizontales presentan formatos largos pero son rápidas mientras que
las verticales reducen el tamaño de la memoria pero son lentas ya que necesitan
descodificación
Las señales de control se pueden agrupar en campos:
- Señales que gobiernan el acceso al bus de datos
- … el acceso al bus de direcciones
- … de la ALU
- … del banco de registros
- …de la memoria
- …de la unidad de direccionamiento
Señales excluyentes:
- Cuando un campo contiene señales que no se pueden activar simultáneamente…
Optimización para reducir el CPI:
- Hacer varios microprogramas para la misma operación
- Añadir control cableado
- Hacer varias operaciones elementales en cada microinstrucción
Una primera aproximación a la solución del problema sería usar una memoria cuyos punteros
estuvieran formados por dos campos: campo de contador de fases, campo código de
operación
#UAHStyle
7.2 Secuenciamiento
Secuenciamiento explicito:
- Consiste en incluir en cada microinstrucción la dirección de la siguiente
- Los códigos de….
- Inconvenientes: El mayor inconveniente está en la gran cantidad de memoria que
emplea
- Ventaja: Permite reutilizar secuencias de microprogramas siempre que sean
finales… sin necesidad
Secuenciamiento implícito:
- Consiste en tener ordenadas secuencialmente todas las microinstrucciones…
7.3 Microbifuraciones
El mecanismo dependerá del tipo de secuenciamiento utilizado
En el secuenciamiento explicito:
- Cada microinstrucción lleva la dirección de la siguiente…
En el secuenciamiento implícito:
- Para poder elegir entre secuencia normal o….
7.4 Nanoprogramacion
Es un sistema que reduce el coste asociado en área de silicio
Es una estructura en dos niveles
1. Contiene secuencias de palabras de control que son puntero al segundo nivel
2. Contiene una ordenación arbitraria de palabras de control NO DUPLICADAS
Las eficiencias de esta estructura descansan en dos hechos
- El numero de palabras de control implementadas debe ser una fracción pequeña
del número total de las posibles
- Debe darse una cierta redundancia en el uso de las nanoistrucciones
[Comparación de tamaños entre microprogramación y nanoprogramacion]
A partir de aquí: Segundo Examen
4. La Memoria
4.1 Nociones fundamentales
La memoria “alimenta” al procesador durante la ejecución de manera que han de trabajar bien
SINCRONIZADOS si se desea un alto rendimiento
Procesador
Memoria


Muchas celdas activas
Muy pocas celdas activas
#UAHStyle
Existe una gran diferencia de rendimiento entre el procesador y la memoria.
El sistema de memoria almacena los programas y los datos que requiere el procesador
EL programador ve:
- Memoria principal: se reserva en memoria al programar
- Memoria secundaria: pertenece al sistema E/S y se accede a través del SO de
manera transparente.
Conviene distinguir la MEMORIA de los DISPOSITIVOS DE ALMACENAMIENTO (Discos duros por
ejemplo) que pertenecen al bloque de E/S.
La tecnología con la que se realiza la memoria puede cambiar pero siempre requiere
elementos capaces de retener uno entre varios estados.
El almacén básico es la celda que, cuando codificados en binario, puede retener entre uno o
dos estados (bit).
Sin embargo, la posibilidad de disponer de tecnologías que sean capaces de conmutar entre
dos estados daría lugar a dispositivos de menor tamaño.
Normalmente las memorias se referencian por un código que identifica de manera univoca un
conjunto de celdas
Las celdas se suelen reunir formado una unidad lógica que se conoce como palabra
A cada una de ellas le corresponde una posición o dirección. El número de palabras define el
número de líneas del bus de direcciones de memoria mientras que el tamaño de la palabra
define la longitud del bus de datos.
Propiedades de la memoria:
- Velocidad
- Capacidad de Transferencia
- Volatilidad
- Necesidad de recuperación
4.1.2 Parámetros:
- Capacidad
- Organización
- Capacidad de direccionamiento
- Tiempo de escritura
- Tiempo de lectura
- Tiempo de acceso
- Tiempo de ciclo: el tiempo que tenemos que esperar para volver a hacer una
operación de lectura o de escritura
- Velocidad de transferencia: tamaño de palabra accedida /tc
#UAHStyle
4.1.3 Clasificación
- Por su forma de acceso:
o Secuenciales
o Acceso aleatorio
o Por contenido
- Por su modo de almacenamiento:
o Volátil
o No volátil
- Por su función
o Memoria cache
o Memoria nosequé…
o ….
- Modo de interconexión
o Un único puerto
o Multipuerta
4.1.5 Las memorias de estado solido
RAM, SRAM, EPROM…
[Dibujo de una Estructura general de una memoria de semiconductor]
Señales de control típicas:
- CS o CE: Chip Select o Chup Enable
- OE: Output Enable
- WE: Write Enable
- RAS y CAS: Row Addess Strobe y Coluumn Addres Strobe
Cronogramas:
- Las especificación de cada memoria deben establecer los márgenes de tiempos
para que trabajen concretamente en escritura o lectura
RAM
-
Son memorias en las que se pueden leer y escribir
Son de acceso aleatorio
Volátiles
Estáticas o Dinámicas
-
Memoria RAM constituida por biestables
Rápida pero de elevado consumo energético
Ocupa gran área de silicio
Sencilla de manejar
Tiempo de acceso de más o menos 10 ns
SRAM
DRAM
#UAHStyle
-
Memoria RAM donde cada bit es un transistor funcionando como un condensador
Requiere un continuo refresco para no perder la carga
Tiempo de acceso más o menos de 60 ns
Ocupa poca superficie de silicio
Lenta pero consume poco
Multiplicación y refresco la hace más complicada de manejar que la estática
Su gran capacidad ha forzado la multiplicación de direcciones para reducir el
patillaje (RAS y CAS)
-
Solo lectura
De acceso aleatorio
No volátiles o perteneces
Existen variantes que permite realizar una escritura inicial
ROM
“Torre de Babel”
#Concepto
Aumento de prestaciones:
- Solapar etapas de acceso
- Acceso privilegiado a bloques
- Doblar el reloj (DDR)
SSRAM
-
Memorias SRAM síncronas
El tiempo de acceso que se consigue es de 7-12 ns
El funcionamiento segmentado está gobernado por un reloj sincronizado con el
procesador.
EDO (Extended Data Out Dynamic RAM)
FPM RAM
Direct RDRAM
[Mirar los dibujos de las memorias en el Anassagasti]
FLASH
-
Es un memoria RAM no volátil
Tiene la particularidad de que no puede ser accedida por palabras sino por bloques
Intel fabrica una memoria flash en la que se almacenan dos bits en lugar de uno en
cada celda de memoria.
4.1.5 Mapa de Memoria
Llamamos mapa de memoria a todo el espacio direccionable por un computador
Este espacio viene determinado por el tamaño de las direcciones ya que disponer de una
dirección de m bits supone tener un mapa de memoria 2m direcciones
#UAHStyle
Desde el punto de vista programador, el mapa de memoria se organiza en bytes y a cada byte
le corresponde por tanto una dirección.
Granularidad
Alineamiento: Los lenguajes de programación disponen de directivas para alinear los accesos o
sea forzar los punteros emitidos por el procesador sean múltiplos de números enteros de
bytes.
4.1.5 Mapa de Memoria (cont.)
Ampliación de memoria:
- Memoria expandida:
o Dirección física de memoria de 20 bits
o Se divide en dos campos 15 bits (menor peso) y 6 bits
o La tabla almacena un identificador de 11 bits para cada entrada que es una
etiqueta de un bloque de memoria expandida
o Se reserva en la memoria convencional un espacio de 64KB para 4 bloques
de memoria expandida
4.1.6 Verificación de la integridad de datos
Un aspecto importante en el diseño de la memoria es el control de errores o verificación de la
integridad de datos almacenados. Existes dos formas de conseguirlo
- Añadir un bit de paridad por cada 8 bits de datos
- Añadir un código de corrección de errores ECC que permite detectar y corregir
errores de bits individuales
Paridad: Añadimos un bit más que examine la paridad del bit con el que estamos trabajando.
ECC (Error correction code)
4.2 Organizaciones alternativas
4.2.1 Memorias Asociativas
- Memorias CAM (Content Access Memory)
- Memorias de acceso por contenido
Celdas de la matriz de búsqueda y celda de matriz de datos [imagen en Anasagasti]
Usos típicos:
- Tablas de correspondencia
- Tablas de traducción de memoria virtual y memoria caché
4.2.2 Memorias multipuerta
#UAHStyle
Misma latencia de memoria.
Mayor ancho de banda.
4.3 Jerarquía de Memoria
La memoria es un cuello de botella con dos facetas:
- Latencia de memoria (tiempos de acceso son muy grandes)
- Ancho de banda (capacidad de transferencia limitada)
El problema no tiene una solución fácil: Grande, rápido, barato
Dependencia circulares en las opciones de diseño:
- A mayor capacidad mayor tiempo de acceso…
- …
Solución

Jerarquía de memoria
Organización de memoria en varios niveles:
- Cada uno más pequeño, más rápido y más caro por byte que el anterior
- Todos los datos de un nivel se encuentran en el inferior.
La jerarquía es efectiva por el principio de localidad:
- Los programas no acceden al código y a los datos de manera uniforme, aleatoria o
equiprobable
- Los programas favorecen una parte del espacio de direcciones
Localidad temporal: si se referencia un elemento tenderá a ser referenciado pronto
Localidad espacial: si se referencia un elemento, los elementos cercanos a él tenderán a ser
referenciados pronto
En cada momento la jerarquía se gestiona entre 2 niveles adyacentes.
La mínima unidad de información es el bloque
Acierto (hit)
Fallo (miss)


éxito en la búsqueda de un bloque en un nivel superior
fracaso en la búsqueda
Lo importante es el rendimiento (velocidad de ejecución).
Tiempos:
- Tiempo de acierto: tiempo de acceso al nivel superior
- Penalización de fallo: tiempo de reemplazo + tiempo de entrega al dispositivo
Tmedio acceso a memoria = tacierto + tfallos · penalización
Tm = ta + (1-h) · p
#UAHStyle
Si la penalización es muy costosa lo que vamos a provocar es que el SO saque ese proceso en
ejecución.
Dependiendo de los niveles involucrados y del coste temporal de:
- Las búsquedas
- Los reemplazos
- Las transferencias de bloques
Su implementación puede ser: HW (caché) o SW (memoria virtual)
Las direcciones de memoria se dividen en campos que identifican:
- Un elemento de bloque
- Identificador de bloque
Hay que asegurar la coherencia o consistencia de la información almacenada cuando se escribe
en un bloque
Todos los datos de un nivel se encuentran en el inferior. Hay que diseñar sistemas que indique
la validad o no de un bloque
3.4 La memoria caché
3.4.1 Introducción
Es una memoria auxiliar de alta velocidad que se interpone entre la CPU y la memoria
principal para acelerar el funcionamiento del procesador
La cache está dividida en bloques de longitud fija llamados líneas que contienen
temporalmente copias de los bloques de memoria principal. Cada una de las líneas lleva
asociada una etiqueta que identifica
Dos zonas de memoria:
- Las líneas
- La tabla con las etiquetas de las líneas o tabla de correspondencia
Secuencia de operaciones:
- El procesador genera una dirección física de memoria y la envía a caché
- La memoria cache traduce la dirección física a dirección caché y comprueba la
referencia.
3.4.2 Tipos de organización
Organización de caché:
#UAHStyle
-
Correspondencia directa: Cada bloque de memoria principal solo puede cargarse en
una línea determinada en la memoria caché. Direcciones de 19 bits que se dividen en
tres campos:
a. Palabra (8 bits)
b. Línea (7 bits)
c. Etiqueta (4 bits)
Ventajas e inconvenientes:
a.
Existe una tabla de correspondencias propiamente dicha.
b.
La comparación de la etiqueta
-
Totalmente asociativa: un bloque de memoria principal puede colocarse en cualquier
línea de la memoria caché.
Ventajas e inconvenientes:
a. La etiqueta de la dirección debe compararse con todas las posibles entradas
de la tabla de correspondencias con el consiguiente retardo
b. La comparación se realiza por la búsqueda de…
-
Asociación por conjuntos: Organización combinación de las dos anteriores que
consiste en dividir el primero total de líneas de cache en C conjuntos de V líneas cada
uno y aplicar la correspondencia a nivel de conjuntos.
Ventajas e inconvenientes:
a. El campo conjunto determina aquel sobre el que se ha de buscar
asociativamente el bloque solicitado
b. …
3.4.2.1 Comparativa de costes y retardos
[Formulas anteriores]
Sea una memoria principal dividida en B bloques y una memoria caché compuesta de N líneas
Si la organización es totalmente asociativo el tamaño será:
TAMAÑOasoc_totaL = N (log2B + log2N)
Si la organización es asociativa por conjuntos de V vías tendré N/V conjuntos y para cada uno
de los la tabla de correspondencia ocupa:
V (log2 ((B·V)/N)+log2V)
El tamaño total de memoria asociativa:
TAMAÑOasoc_totaL = N(log2 ((B·V)/N)+log2V)
#UAHStyle
El retardo de una memoria asociativa viene dado por la siguiente expresión:
RETARDO = lg2B + N
3.4.3 Políticas de reemplazo
- Aleatorio
- FIFO
- LRU
El algoritmo que mejor rendimiento presenta es el LRU pero es el más costo de implementar.
El tipo de algoritmo tiene mayor importancia en caches pequeñas que en las grandes.
3.4.4 Políticas de escritura
Las políticas de escritura, también llamadas políticas de actualización, determinan en que
instante se actualiza la información….
Dos posibilidades:
- Escritura Directa: escribo en caché y en memoria principal
- Postescritura: escribo en memoria principal cuando reemplazo. Se necesita un
dirty bit.
La escritura directa es más sencilla y garantiza la coherencia en todo momento
La postescritura genera menos tráfico en el bus
3.4.4.1 Fallos de escritura
Si el acceso a memoria caché es para escritura y el bloque al que queremos acceder no se
encuentra nosequenoscuanto…
Ante n fallo podemos:
- Ubicar en escritura
- No ubicar en escritura.
La escritura directa suele estar acompañada de no ubicación ya que las posteriores referencias
a ese bloque que se deben escribir en memoria principal también y la postescritura suele
ubicar el bloque, esperando ser utilizado mas tarde (localidad temporal)
Formulas:
Acierto (faciertos/naccesos)·100
Fallos (fallos/naccesos)·100
[Formula importante] Tiempo de programa
tp = r (CPIejecución + fallos instrucción · pf) · periodo
3.4.5 Rendimiento de la memoria caché
#UAHStyle
Desagregación (mirar)
Fuentes de fallos de caché (las tres C)
- Forzosos
- Capacidad: cuando la caché no puede contener todos los bloques requeridos por el
problema
- Conflicto
5. Entrada Salida
5.1 Introducción
5.1.1 Concepto
Implementa la comunicación con el exterior. Algunas maquinas tienen un bloque de E/S
grande:
- Computadores sobremesa, consolas…
Mientras que otras lo tienen muy reducido: Supercomputadores dedicados a cálculo intensivo.
Cubre otros aspectos:
- Comunicación hombre-maquina
- Control de procesos
- Telemática
- Almacenamiento
Distinguimos:
- Periféricos: dispositivo que implementa un modo especifico de comunicar datos
entre
- Unidad o modulo de E/S
5.1.2 Elementos
¿Por qué los periféricos no se conectan directamente a los buses?
- Gran diversidad de periféricos
- La velocidad de transferencia de los periféricos es muy diferente al del procesador
- Los formatos de los datos de los dispositivos externos son muy diferentes a los del
computador.
5.2 Periféricos
Tipos de periféricos:
- Comunicación hombre-maquina
- Comunicación maquina-maquina
o Telemática
o Control de procesos
- Almacenamiento masivo
#UAHStyle
Partes de un periférico:
- Controlador
o Se relaciona con el procesador o CPU
o Su misión es doble:
 Protocolo de transferencia
 Transferencia propiamente dicha
- Dispositivo
o Se relaciona con el exterior
o Basado en un fenómeno físico o químico transforma en…
Operaciones de lectura de E/S:
- Requiere un buffer triestado para no cargar el bus de datos
- Además pueden tener un registro interno o una memoria buffer
Operaciones de escritura E/S:
- Requiere un registro donde almacenarse temporalmente hasta que el dispositivo
pueda darles curso
- Se debe a la lentitud del periférico respecto al procesador
- Este registro puede ser una memoria buffer organizada por una cola
5.3. Unidad de E/S
5.3.2 Funciones
Control y temporalizarían:
- La CPU puede comunicarse con varios periféricos simultáneamente
Comunicación con el procesador:
- Decodificar las ordenes
- Intercambio de datos
- Información de estado
- Reconocimiento de dirección
Comunicación con los periféricos:
- Intercambio de órdenes, estado y datos
Almacenamiento temporal de datos:
- Adaptación de velocidad
Detección de errores
5.3.3 Espacio de diseño
#UAHStyle
Protocolo de transferencia
Mapa de E/S: Selección de periférico
Sincronización de CPU-Periférico
5.3.4 Protocolos de transferencia
- Transferencia Síncrona
- Transferencia asíncrona
5.4 Mapa de Entrada/Salida
Los dispositivos de entrada/salida se identifican mediante un código que se suelen denominar
(dirección o puerto)
Cada periférico suele tener un rango de puertos con funciones diversas
Las direcciones de los puertos de E/S se emiten por el bus de direcciones
De manera análoga al mapa de memoria, el mapa de E/S es el conjunto de puertos que dan
acceso al dispositivo periférico.
La forma de direccionas puertos de E/S es similar a la de posiciones de memoria:
- Si los mapas son comunes, se suelen agrupar los puertos en un rango de
direcciones con objeto de no “participar” excesivamente la memoria
El mapa de E/S esta desdoblado: No hay una correspondencia univoca entre el elemento
accedido en escritura y lectura
Los accesos a un puerto de E/S en escritura no tienen porque ser sobre el mismo elemento
físico que en lectura, incluso pueden ser más de 2…
Depende:
- Tipo de accesos (lectura o escritura) y señales de control involucradas
- Combinación con valor de un determinado registro de control
- Secuencia de accesos
Cada periférico suele emplear un rango de puertos de E/S para su control y…
5.6 Sincronización
Dos aspectos a tener en cuenta:
- Inicio de la transferencia
- Transferencia propiamente dicha
Tipos de sincronización:
#UAHStyle
-
E/S programada
E/S por interrupción
Acceso directo a memoria (DMA)
5.6.1 E/S Programada
La CPU inicia la transferencia y la lleva a cabo. Existen dos tipos:
- Incondicional
- Condicional
5.6.2 E/S por interrupción
En las transferencias de E/S por interrupción el periférico realiza la petición de servicio.
Mirar la secuencia del procesamiento de la interrupción. Tiene dos bloques (una HW y otra
SW)
Mecanismos de interrupción: Para poder manejar la E/S por interrupción hemos de diseñar
mecanismos capaces de gestionar las siguientes situaciones:
- Aceptación de interrupciones
- Ubicación de la rutina en curso
- Identificación de la rutina de servicio
CPU con una única línea de interrupción.
CPU con varias líneas de interrupción
CPU con líneas de petición y de aceptación de la interrupción
Encadenamiento de periféricos o Daisy chain
Interrupciones vectorizadas
Gestión de interrupciones mediante controlador PIC
5.6.3 E/S por DMA
En el acceso directo a memoria el controlador del periférico se comunica directamente con la
memoria del computador.
Este tipo de transferencia de E/S tiene sentido solamente cuando se mueven bloques de datos
Requieren una programación previa del controlador de DMA que consume tiempo.
Secuencia:
1. El periférico envía una señal HW de solicitud al procesador
2. El procesador termina un ciclo de bus (no la ejecución de una instrucción) antes de
responder a la solicitudes de DMA
3. El procesador emita la señal HW de reconocimiento, cede los buses al controlador
de DMA y comienza la transferencia de datos.
Existen dos formas básicas para realizar el DMA:
- Por memoria multipuerta
- Por robo de ciclo:
o DMA por ráfagas
#UAHStyle
o
o
DMA transparente
DMA por robo de ciclo
6. Almacenamiento masivo
Grabación magnética:
- Sobre un soporte adecuado, se deposita un material magnético
Es un dispositivo de almacenamiento masivo no volátil
Es de acceso aleatorio por bloques y en principio cada bloque tiene el mismo tiempo de acceso
Platos finos, recubiertos por un material sensible a alteraciones magnético
Cada disco dispone de dos diminutos cabezales de lectura y escritura:
- Se encuentra flotando en la superficie
- Generan señales eléctricas que alteran los campos
- Durante el proceso de..
Las partículas orientadas magnéticamente en un sentido u otro pueden representar dos
estados, 0 y 1.
Se requiere un proceso de modulación:
- Por tanto, es un dispositivo analógico
- Se puede almacenar mas información trabajando con múltiples frecuencias
- Junto a…
La distancia entre el cabezal y el plato del disco también determina a densidad de
almacenamiento del mismo, ya que cuanto más cerca este el uno del otro…
6.2.3 Estructura lógica
En el caso de los paquetes de discos, las pistas del mismo diámetro en las diversas superficies…
Cada plato, cada pista y cada sector llevan un código escrito que los identifica de manera
univoca
Esta información está grabada y se llama formato de bajo nivel
Cada conjunto de datos lleva un identificador único formado por tres códigos (plato, pista,
sector). Ahora bien, no todos los fabricantes los organizan de la misma forma
La misma capacidad de almacenamiento puede conseguirse con diferentes combinaciones de
platos, pistas y sectores. Esto es ello que se conoce como geometría del disco duro.
Los sectores suelen agruparse en clusters o unidades de asignación. Un cluster es la mínima
unidad de lectura o escritura del disco
6.2.5 Formato de nivel alto
#UAHStyle
Proceso de lectura de un fichero:
- Buscar fichero en la tabla
- Leer los clusters donde se ubica
- Acceder a los clusters indicados
Proceso de escritura de un fichero:
- Asignar entrada en la tabla
- Buscar clusters libres
- Escribir los clusters libres y anotarlos en la tabla
Ver divisiones lógicas de alto nivel (S.O.):
- Paginas o segmentos de memoria virtual
- Cubetas en bases de datos
6.2.6 Tiempo de acceso
Tiempo medio de búsqueda + retardo rotacional (latencia) + tiempo de transferencia
6.3 Discos ópticos
7. Representación Visual
7.2 Modo Texto
Cada celda presenta un carácter mediante dos bytes:
- Byte de carácter
- Byte de atributo
Paleta de color en modo texto
- 8 colores combinación de 3 primarios (cada primario tiene valor 0 o 1)
- 8 colores con sobreintensidad que dan lugar a una paleta basada en la anterior
pero con tonalidades más claras (solo para el carácter)
La pantalla de video que vemos en cada instante esta almacenada en un área de memoria
(memoria de video). Por cada celda tenemos 2 bytes. La controladora de video lee la memoria
de video cada vez que refresca la imagen del monitor.
7.3 Modo grafico
#UAHStyle
La codificación del color se funda en la descomposición en colores primarios. La obtención de
cualquier color, tanto en video como impresa, se basa en composición de primarios. La
codificación de cada color es un problema…
7.3.1 Teoría del color
Existen 2 formas de considerar los colores según la fuente de la luz:
- Luz reflejada: colores sustantivo
- Luz emitida: colores aditivos
Sustantivo: hace referencia a la percepción de los colores al reflejarse la luz sobre un objeto, lo
que produce que este absorta de ciertas longitudes de onda, reflejando otras, una mezcla va a
dar lugar al color final del objeto. Colores primarios: amarillo, cian y magenta
Aditivos: Los colores se perciben como longitudes de onda que pasan directamente a nuestros
ojos, sin ser reflejadas previamente por ningún cuerpo, como es el caso de la luz directamente
percibida de una fuente luminosa (bombilla, pantalla). Colores primarios: Rojo, verde y azul.
A partir de la mezcla de colores primarios obtenemos los colores secundarios y mezclando
estos obtenemos los terciarios.
7.3.2 Codificación de color
La codificación del color se realiza en base a los colores aditivos primarios. RGB.
¿Qué variedad de colores deseamos representar? Profundidad del color
A mayor numero de niveles de intensidad mayor variedad de colores.
Profundidad de color:
- 8 bits

- 16 bits

- 24 bits

256 colores
65535 colores
16777216 colores
Casi todos los periféricos trabajan con color verdadero. Las profundidades de color de 8 y de
16 bits se constituyen con “paletas de color”.
Color verdadero: A cada color se le corresponde un código RGB
Paletas de color: cada color es un índice de entrada a una tabla (paleta) que devuelve como
salida un código RGB.
7.3.3 Resolución
Numero de pixels que se pueden distinguir por unidad de superficie
Cuanto más pequeño sea el pixel mayor es la calidad de imagen
7.4 Formatos gráficos
#UAHStyle
Dos enfoques:
- Mapa de Bits: gran volumen de información, resolución fija. V e I: carga de
almacenamiento grande, carga de computacional grande
- Vectorial: Describimos una imagen como una serie de líneas o figuras. V e I: Carga
computacional grande, carga de almacenamiento pequeña
Los ficheros gráficos se suelen comprimir.
Formatos de imagen:
- PCX: 3 partes (cabecera 128 bytes, bitmap y paleta)
- BMP: Es independiente del dispositivo, admite compresión, admite diferentes de
profundidades de color
Formatos de video:
- MPEG: Visión en tiempo real, solo información captable por el ojo humano, cuadro
base y diferencias con el anterior, fácil de transmitir, requieres mucho HW
- AVI: Bueno para pequeñas aplicaciones, compresión de CODEC
Impresión: a la hora de imprimir hay que efectuar una conversión de la codificación RGB a la
codificación CMYK (colores primarios sustractivos).
8. BUSES
8.1 Introducción
Dentro de un computador lo importante es mover datos:
- Información codificada a nivel de registro.
- Buses paralelos (conjunto de líneas cuyos extremos conectan varios dispositivos)
Fuera del computador se transfieren mensajes:
- Organización en tramas y/o transferencia de cadenas de caracteres
- Buses serie: mínimo canal de comunicación del que cuelgan otros dispositivos
o Bus USB
8.1.2 Elementos
- Líneas de control
- Líneas de datos (separadas o multiplexadas)
Una transacción de bus típica tendría:
1. Petición de bus
2. Obtención de bus
3. Envío de dirección
4. Envío/recepción de datos
8.1.3 Espacio de diseño
La velocidad está limitada por factores físicos:
#UAHStyle
-
Longitud de bus
Numero de dispositivos conectados
El ancho de banda del bus limita la productividad de los sistemas conectados a el
Ancho de banda y acceso rápido pueden ser 2 objetivos que entren en conflicto
Dar soporte a dispositivos muy diferentes en latencia y velocidad de transferencia complica el
diseño.
8. 2 Tipos de Buses
Bus de procesador-memoria
Síncrono
Entrada/salida
Asíncrono
Backplane
8.2.1 Bus procesador-memoria
Longitud pequeña, de alta velocidad, adaptado a la velocidad a la que trabaja la memoria. Se
conoce como bus local o FBS (front side bus)
8.2.2 Bus de entrada-salida
Longitud grande, da servicio a dispositivos con ancho de banda muy diferentes, no suelen estar
conectados directamente a la memoria (requieren un adaptador de bus [bridge]).
8.2.3 Bus de backplane
Están pensados para el procesador, la memoria y los dispositivos E/S coexistan en un único
bus. Hay equilibrio de requerimientos. Suelen estar en un chasis (Por ejemplo PCI)
8.2. (cont.)
Los buses de entrada/salida y backplane suelen estar estandarizados. Los diferentes tipos de
buses se pueden conectar mediante adaptadores adecuados. (Jerarquía de buses).
8.2.4 Bus síncrono
Entre las señales de control hay un reloj y el protocolo de comunicación están gobernado por
la señal de reloj (bus ISA, PCI)
El protocolo lo gobierna un autómata
8.2.5 Bus asíncrono
No tiene reloj y por tanto, no sufren problemas de clock skew:
Se establece un protocolo de handshaking para coordinar las transferencias de si ya
claro….
8.3 Rendimiento
#UAHStyle
8.3.1 Ancho de Banda
Depende de:
- Anchura del bus de datos
- Líneas de direcciones y datos separadas o multiplexadas
- Transferencia por bloques
Puede afectar al tiempo de respuesta.
8.3.2 Acceso al bus
Requiere de la participación de uno o varios maestros (Bus Master) que controlen el acceso y
las peticiones de accesos
El procesador siempre es maestro y la memoria esclavo
No es conveniente que el procesador sea el único maestro:
- Ya que se sobrecarga de trabajo
- Es necesario establecer un sistema de arbitraje de bus
8.4. Arbitraje de bus
Se encarga de gestionar:
- Petición de bus
- Concesiones de bus
- Liberaciones de bus
Mediante líneas separadas o dentro de las líneas
Tipos:
-
-
-
En serie (Daisy Chain): las concesiones se propagan de dispositivo en dispositivo
por orden de prioridad. Es un sistema simple pero no garantiza la imparcialidad.
Paralelo centralizado: Múltiples líneas de petición a un árbitro centralizado. Si hay
muchas peticiones el árbitro puede convertirse en cuello de botella. PCI usa este
sistema
Distribuido por autoselección: Múltiples líneas de petición
o Cada dispositivo pone un código sobre las líneas de petición
o Al leer las líneas de petición, los dispositivos conocen quien ha recibido la
concesión. El bus NuBus de Macintosh usa este esquema
Distribuido por detención de errores: Los dispositivos solicitan el bus
independientemente, si se produce una colisión…. Blablablá
8.5 Buses normalizados
8. 6 Papel del sistema operativo
#UAHStyle
Ejercicios
Tema 1
1. Realizar un circuito que convierta los números de 8 bits en signo-magnitud a
números en exceso 128. Incluye un circuito que detecte un posible desbordamiento
en caso necesario.
Signo-magnitud [-127, 127]
Exceso 128 [-128, 128]
(2n-1)
Positivos  MSB(s), y el resto
igual
NegativosMSB(s), y el resto se
cambia de signo en C-2
NO HAY DESBORDAMIENTO de Signo-Magnitud a Exceso 128
6. Queremos diseñar un sumador con selección de acarreo de 16 bits.. Podemos usar
bloques propagadores de 2, 4 y 8 bits. Construye el mejor sumador posible
suponiendo que los conmutadores tienen un retardo equivalente a 2 niveles.
Propagadores de tamaño homogéneo
K=2
Retardo = propagador + red de puertas + conmutador
retardoRCA = 2k + 1 (nivel)
retardoRCA
Retardok=2 = 2 · 2 + 12 + 2 = 18 niveles
2k
nº bloque = =
=8
Retardok=4 = 8 + 4 + 2 = 14 niveles
Retardok=8 = 16 + 2 = 18 niveles
Sumador NO homogéneo
2 4 4 niveles adicionales =
2 8 12 niveles adicionales =
4 8 8 niveles adicionales =
K = 2 (x4) K=4 (x2)
K = 2 (x2) K=4 (x3)
1 conmutador + 1 red de puertas
1 conmutador + 5 red de puertas
1 conmutador + 3 red de puertas
4 + (6 – 2) · 2 + 2 = 14 niveles
4 + 6 + 2 = 12 niveles
1. Disponemos de un computador de instrucción única, es decir, su repertorio se
reduce a la instrucción: resta y salto si negativo. Esta instrucción tiene tres operandos
que son, cada uno de ellos, direcciones de una palabra en memoria:
rsn a, b, c
Su funcionalidad es la siguiente:
mem[a] = mem[a] - mem[b];
si (mem[a]<0) entonces ir a c
#UAHStyle
La instrucción restará el número de la localización de memoria b del número en la
localización de memoria en a y situará el resultado en a, sobrescribiendo el valor
previo. Si el resultado es mayor o igual a 0, el computador tomará la siguiente
instrucción de la localización de memoria inmediatamente posterior a la instrucción
actual. Si el resultado es menor que 0, la siguiente instrucción se toma de la
localización de memoria c. Este computador no dispone de registros.
Escribe un programa para este computador que copie el valor contenido en la
localización de memoria a en la localización de memoria b.
Mem[a]
mem[b]
Inicio: rsn temp, temp, +1
rsn temp, a, +1
rsn b, b, +1
rsn b, temp, +1
;mem[temp]=0
;mem[temp]= -mem[a]
;mem[b]=0
;mem[b]= -mem[temp]=mem[a]
Inicio: rsn temp, temp, +1
rsn a, b, +1
rsn temp, a, +1
rsn b, temp, +1
2. El formato del repertorio de instrucciones de un procesador se ha diseñado con el
objetivo de minimizar el espacio de representación. De esta manera, se han
especificado dos formatos para los códigos de operación: uno “regular” y otro
“extendido”. El formato “regular” proporciona las operaciones sobre un campo de 6 bits
mientras que el “extendido” utiliza 8 campos de extensión, de entre los posibles
códigos de 6 bits del formato “regular”, para llamar a un campo código de operación
extendido de 3 bits. Sabemos que el formato “regular” se usa aproximadamente un
90% de las ocasiones en los programas de test de los que disponemos.
Sabiendo todo esto responder a las siguientes preguntas:
a) número de instrucciones del formato “regular”
26 – 8 = 56 operaciones
b) número de instrucciones del formato “extendido”
26 – 8 = 56 operaciones
c) número total de instrucciones distintas que se pueden codificar con este
sistema
#UAHStyle
56 + 64 = 120 operaciones
d) tamaño del campo código de operación en el caso de utilizar únicamente el
formato regular para el número de instrucciones que maneja este procesador
[
] 7 bits
e) tamaño medio del formato para las aplicaciones de test
6 · 0,9 + (6 + 3) * 0,1 = 6,3 bits
f)
tamaño medio si la distribución de instrucciones fuera equitativa
= 7,6 bits
g) porcentaje de uso del formato “extendido” que hace ineficaz el diseño.
6(1 – x) + (6 + 3)x = 7 bits ; x = =0,33
33%
6. Un procesador ejecuta saltos condicionales (BR cc) utilizando el modo de
direccionamiento relativo al PC. Los saltos incondicionales (JMP), sin embargo,
solamente admiten el modo de direccionamiento absoluto a memoria. El procesador
genera direcciones de 32 bits y los accesos a memoria están alineados a palabras de
32 bits, es decir, los dos bits de menor peso son siempre '00'. El formato de instrucción
del salto condicional relativo a PC es el siguiente:
31
30
29
28
27
Operación
6
26
25
24
23
RA
5
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
Desplazamiento
21
donde la condición de salto se evalúa sobre el registro especificado en el campo
registro (RA). Explíquese por qué el siguiente código hace que el compilador genere
error:
aquí: BRZ r1, allí
:::::::::::::::
:::::::::::::::
allí: ADD r1, r1, r1
#UAHStyle
2
1
0
siendo las posiciones de memoria etiquetadas las siguientes:
aquí 
allí 
01 00 00 00h
08 00 00 00h
y BRZ es la instrucción de salto si es cero el registro, en este caso r1.
¿Cómo se puede solucionar este problema?
(Los 2 bits de menor peso son siempre 0)
Realmente tenemos desplazamiento de 23
31
30
29
28
27
26
25
Operación
6
PC
24
23
22
21
20
19
18
17
16
RA
5
15
14
13
12
11
10
9
8
7
6
5
4
3
2
Desplazamiento
21
PC + def
Long 222
No puede llegar porque necesita 24 bits de salto. La solución sería usar un JMP.
2. Sobre la ruta de datos de la figura, construye los cronogramas correspondientes a
las siguientes operaciones:
- r4 ← r5 + [r6 + desplazamiento]
- Jxx CP + desplazamiento
- r3 ← [r12 + desplazamiento]
- [r9 + desplazamiento] ← r7
- r16 ← r10
- r4 ← r5 + [r6 + r7 + desplazamiento]
-
r4 ← r5 + [r6 + desplazamiento]
DIT, TA, SA, MUX, TAEA, LDR
(todo esto ha consumido 1 ciclo)
TMEN, R/W, IO/M, TA, SA, SEL, TALU, SC, LR, LC
(2 ciclos, porque los accesos a memoria
cumplen 1 ciclo)
#UAHStyle
1
0
00
8. La unidad de control de un procesador es microprogramada. Con el fin de disminuir
el coste en área de silicio se barajan 2 posibilidades: realizar nanoprogramación o
microprogramación vertical en un único nivel. Asumiendo que el número de señales de
control es n = 100, que el número total de palabras de control es k = 830, la tasa de
palabras de control no repetidas (ρ) es 2/3 de k y el secuenciamiento del primer nivel
de microprogramación de tipo explícito, determinar el factor de compresión de las
palabras de control que iguala ambas opciones de diseño.
n = 100
K = 830
(
)
(
(
)
)
(
)
¿c?
Si la compresión
Es factible
de un solo nivel es de 0,76 es igual a si uso nanoprogramacion.
6. La compañía Mintel Limited, líder en el sector de los microprocesadores, está a
punto de sacar al mercado un nuevo procesador cuya unidad de control es
microprogramada en un único nivel y con secuenciamiento explícito. Uno de sus
jóvenes ingenieros, titulado por la Universidad de Alcalá, le ha propuesto al director
jefe del proyecto una modificación en dicha unidad de control de manera que se
implemente en 2 niveles en lugar de uno. Argumenta que ese cambio hará posible
aumentar el tamaño de la caché de instrucciones de primer nivel haciendo que el
rendimiento final del producto se vea sensiblemente incrementado desbancando a la
competencia, AMB Enterprise, definitivamente.
El director del proyecto sabe que su procesador maneja n señales de control
diferentes y que k es el número total de microinstrucciones (palabras de control)
necesarias para implementar todas las instrucciones del repertorio aunque de ellas
solamente 2/3 son distintas entre sí. Está intentando evaluar si la propuesta de su
sagaz colaborador es conveniente o no. ¿Crees que nuestro joven ingeniero tiene
razón? Justifica tu respuesta cuantitativamente sabiendo que n = 100 y k = 830.
n = 100
K = 830
(
)
(
(
)
(
)
(
)
)
#UAHStyle
El joven ingeniero tenía razón.
#UAHStyle
Descargar