Documente Academic
Documente Profesional
Documente Cultură
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
CPU
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
Tipo de operandos
Según la tecnología empleada (marca el retardo de las puertas) pueden ser
- MOS
- BIPOLAR
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).
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.
#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
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
#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
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.
#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)
1.3.2 Propagador
Propagador de acarreo (RCA)
Gran retardo en la propagación del acarreo.
(Dibujo de evolución temporal)
· 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:
·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
Valor= M * rE
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
#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
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:
Ejemplo:
Truncación Redondeo LSB a 1
0,11001 10111 111 0,11001 10111 0,11001 11000 0,11001 10111
0,10001 00010 111 0,10001 00010 0,10001 00011 0,10001 00011
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
#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.
[Dibujado en el Hennesy-Patterson]
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.
#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.
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.
00111110
#UAHStyle
1.5.3 Multiplicación con signo
La multiplicación es muy sencilla en signo-magnitud
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
Es decir:
#UAHStyle
Algoritmo de Booth para “sumas y restas”
Vamos a ver este caso con otro ejemplo:
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
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,……
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
#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.
Comparativa modos de implantar los condicionales [tabla muy bonita y muy grande para
copiarla, columnas (tipo, ejemplo, modo de trabajar, pros, contras)]
Las operación es se realizan sobre operandos. Los operandos pueden estar en:
- Memoria principal
- Registro
- La propia instrucción
· 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
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
#UAHStyle
Clasificación:
- Inmediato
- Directo
[Mirar los modos de direccionamiento] IMPORTANTE
2.3.4 Codificación
Veamos los códigos de operación:
Con el fin de ahorrar espacio, se usa…
#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
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…
- …
· 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
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)
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
#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
· Banco de Registros:
- Es un enfoque …
- El esquema fue diseñado por Hennessy
- Lo implementan entre otros los procesadores MIPS o Alpha
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…
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.
3. La unidad de control
3.2 Fases de ejecución de una instrucción
Las instrucciones se ejecutan con…
#UAHStyle
- Activos por flanco (de bajada para nosotros
Buffers
.Separan los elementos del bus
.blablala…
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
#UAHStyle
Sea la siguiente ruta de datos:
ACCIÓN TIPO
Transferir CP a DIR Operación elemental de
- Establecer camino: TACP transferencia
- Salvar información: LDIR
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.
3. Operación de suma:
Descomposición en operaciones elementales
ACCIÓN TIPO
Sumar R1+R2→R3 Operación elemental de proceso
- 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
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
La unidad de control indica a la ruta de datos lo que tiene que hacer de noseu…
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
#UAHStyle
Cada palabra de control se llama microinstrucción y por eso las UC diseñadas de esta forma se
denominan así.
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
Señales excluyentes:
- Cuando un campo contiene señales que no se pueden activar simultáneamente…
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
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
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
#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.
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…
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
SRAM
- 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
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)
ROM
- Solo lectura
- De acceso aleatorio
- No volátiles o perteneces
- Existen variantes que permite realizar una escritura inicial
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.
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.
#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.
Paridad: Añadimos un bit más que examine la paridad del bit con el que estamos trabajando.
Usos típicos:
- Tablas de correspondencia
- Tablas de traducción de memoria virtual y memoria caché
#UAHStyle
Misma latencia de memoria.
Mayor ancho de banda.
#UAHStyle
Si la penalización es muy costosa lo que vamos a provocar es que el SO saque ese proceso en
ejecución.
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
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.
#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
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…
Ventajas e inconvenientes:
a. El campo conjunto determina aquel sobre el que se ha de buscar
asociativamente el bloque solicitado
b. …
Sea una memoria principal dividida en B bloques y una memoria caché compuesta de N líneas
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 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.
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 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
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.
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…
Detección de errores
#UAHStyle
Protocolo de transferencia
Mapa de E/S: Selección de periférico
Sincronización de CPU-Periférico
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.
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
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)
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
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.
6. Almacenamiento masivo
Grabación magnética:
- Sobre un soporte adecuado, se deposita un material magnético
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
7. Representación Visual
7.2 Modo Texto
Cada celda presenta un carácter mediante dos bytes:
- Byte de carácter
- Byte de atributo
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.
#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…
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.
Profundidad de color:
- 8 bits 256 colores
- 16 bits 65535 colores
- 24 bits 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”.
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
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)
8.1.2 Elementos
- Líneas de control
- Líneas de datos (separadas o multiplexadas)
#UAHStyle
- Longitud de bus
- Numero de dispositivos conectados
8. 2 Tipos de Buses
Bus de procesador-memoria
Síncrono
Entrada/salida
Asíncrono
Backplane
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.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
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á
#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.
Retardok=8 = 16 + 2 = 18 niveles
Sumador NO homogéneo
2 4 4 niveles adicionales = 1 conmutador + 1 red de puertas
2 8 12 niveles adicionales = 1 conmutador + 5 red de puertas
4 8 8 niveles adicionales = 1 conmutador + 3 red de puertas
Mem[a] mem[b]
#UAHStyle
56 + 64 = 120 operaciones
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Operación RA Desplazamiento
6 5 21
aquí 01 00 00 00h
allí 08 00 00 00h
PC 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
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?
n = 100 ( ) ( )
K = 830
( ) ( )
( )
#UAHStyle
El joven ingeniero tenía razón.
#UAHStyle