Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Temario
Capítulo 0.- Evolución histórica de los Ordenadores
Capítulo 1.- El Procesador:
Estructura clásica de Von Neumann.
Unidades generales: Procesador, Memoria y Entrada/Salida y Unidad de Control.
Repertorio de instrucciones.
Tipos de direccionamiento.
Buses.
Capítulo 2.- Jerarquía de memoria y memorias caché:
Propiedad de localidad.
Memoria Virtual.
Paginación y Segmentación.
Algoritmos de reemplazamiento.
Tipos de memoria caché: Mapeado directo, Set asociativo. Bloques/líneas
Capítulo 3.- Unidad de Control:
Lógica cableada.
Lógica microprogramada.
Microórdenes.
Microinstrucciones.
Tipos.
Capítulo 4.- Repertorio de instrucciones y lenguaje ensamblador,familia 80x86.
Capítulo 5.- Unidad Aritmético-Lógica:
Algoritmos de multiplicación/división para enteros.
Operaciones en punto flotante.
Capítulo 6.- Unidad de Entrada/Salida:
Transferencia programada.
Sistema de interrupciones.
Acceso directo a memoria.
Bloques básicos de un controlador de periférico.
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
BIBLIOGRAFIA Y REFERENCIAS
Apuntes facilitados por Isidro Rodríguez Martín, alumno de Informática en La
Universidad de la Laguna.
@
ERA MECÁNICA:
SCHICKARD (1623): Creó la primera calculadora que se conoce. Permitía sumar y
restar de forma automática, y dividir y multiplicar de forma semiautomática.
PASCAL (1642): Creó la segunda calculadora, pero sólo permitía sumar.
LEIBNIZ (1671): Creó la tercera calculadora, permitía multiplicar. Se le ocurrió
utilizar el sistema binario para ello.
BABBAGE (1792-1871): Sienta las bases del ordenador moderno. Primero intenta
construir la máquina de diferencias, la cual permitía calcular polinomios a base de
hacer sumas y restas reiteradas, y podía aproximar funciones. Luego inventa la
máquina analítica que se quedó en un mero proyecto. Arquitectura de Von Neumann:
Control.
Unidad aritmética (Hill).
Memoria (Store).
ERA ELECTROMECÁNICA:
L. TORRES QUEVEDO (Relés): Aritmética en punto flotante.
HOLLERITH: Tarjetas perforadas.
KZUSE: Inventó el Z1, Z2, Z3(primer ordenador universal completo) sin saber nada de
los anteriores autores. Eran máquinas de relés. Fueron ordenadores de propósito
general.
AIKEN: Creó la Mark 1, con limitación de velocidad y poca fiabilidad. Su propósito era
resolver ecuaciones.
Tema 0 - Página 1
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
ERA ELECTRÓNICA:
1ª Generación: (1938 1957):
Tubo de vacío
Atanasoff ABC. Su propósito era resolver sistema ecuaciones en binario.
Hauchly/ Ecuert: Crearon en 1943 ENIAC.
J. Von Neumann: Cambió el ENAC. La memoria está cargada con los programas,
en lugar de usar aritmética decimal usó la aritmética binaria, y consiguió que se
pudiera romper las secuencias. Trabajaba en BCD.
CPU Dispositivos
Mundo exterior
Unidad aritmético- entrada / salida
lógica
El esquema anterior corresponde con la máquina IAS, que fue referencia para futuros fabricantes de ordenadores.
La memoria principal almacena tanto datos como programas sin distinción alguna.
Por eso hay que controlar lo que se ejecuta.
Las unidades trabajan secuencialmente y su almacenamiento es limitado. Al tener
todo controlado por la memoria principal, la velocidad de la máquina depende de
ella, a esto se le llama cuello de botella.
Tipos de instrucciones:
Transferencia de datos.
Salto incondicional.
Salto condicional.
Aritmética.
Modificación de direcciones.
WILKES: En 1949 construye el EDSAC (primer ordenador con arquitectura Von
Neumann)
HAUCHY / ECUERT: Crean el UNIVAC I en 1951 para empresas privadas. Fue el
primer ordenador que se fabricó en serie. La memoria principal estaba limitada por
las válvulas de vacío y se cambia en el UNIVAC II por la memoria de ferritas (a
través de anillos), la memoria no se borra, pero es destructiva, si se lee la
información y hay que reconstruirla. Soporta cintas magnéticas.
IBM: En 1953 entra en el mercado de los ordenadores con IBM 701, soporta
periféricos como cintas magnéticas. Su propósito era realizar aplicaciones de
cálculo. Soportaba tambor magnético. Le sigue el 704, 709 con punto flotante y
modos de direccionamiento potente. Salió también el 702 destinado a mercados de
gestión.
TECNOLOGÍA:
ms (tiempo típico)
MTBF: 2h (tiempo medio que tarda en volver a fallar)
SOFTWARE:
FORTRAN (1957): Lenguaje de alto nivel.
Tema 0 - Página 2
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
2ª Generación (1958-1964): Se introduce el transistor sustituyendo la válvula.
IBM (1960): IBM 7070 (con transistores) Orientado a los negocios de gran
envergadura. No era compatible con ordenadores anteriores. No tuvo éxito. Sin
embargo, el 7080 sí tuvo éxito.
UNIVAC: 1107
CDC
BURROUGHS: Crea la máquina de pilas, se aparta de la arquitectura de Von
Neumann.
DEC (DIGITAL): PDP (mini computador), que era más pequeño, mucho más
barato, aunque menos potente.
COBOL (1960)
TECNOLOGÍA:
Interrupciones.
Canales de E / S con procesador dedicado.
10-6 s.
Memoria de ferritas.
MTBF: ~ 10h
Tema 0 - Página 3
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
4ª Generación (1972 ?): Invención del microprocesador. (LSI;VLSI)
1ª Fase: 4 bits
Intel 4004 (2300 transistores) para calculadoras.
2ª Fase:8 bits (1974 - 1976):
Intel 8080 tipo S. O. CP/M (control program for microcomputers)
Motorola 6800
3ª Fase:8 bits mejorados
Z80 tipo S. O. CP/M
Intel 8085
4ª Fase:16 bits(1978)
8086 (8088)
5ª Fase:32 bits
Intel 386
Motorola 68000
TECNOLOGÍA:
ps
Tecnología láser
Tiempo medio de fallo: Millones de horas.
5ª Generación
CISC (Complex Instruction Set Computer)
RISC (Reducto Instruction Set Computer)
Pipelines:
Carga
Decodificación
Operación
Escritura de resultados
Superescalares: Capaces de hacer múltiples operaciones vectoriales.
VLIW: (Very Large Instruction Word)
R10000(1946) SGI
Intel: 8086 386
Introducción de instrucciones MMX
Microoperaciones ( Se verán de diferente forma a la que Intel nombre )
Tema 0 - Página 4
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
CONVENIO DE REPRESENTACIÓN:
Notación posicional: El peso de la cifra impone el peso que le corresponde al valor.
Enteros:
Naturales.
Signo.
Fraccionarios.
Naturales:
Binario Puro
n-1 ... 0 n bits
n 1
Rango: 0 M 2n 1 M Bi 2i
i 0
Tema 1 - Página 1
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Signo:
Signo y Magnitud: Siempre asignamos un bit fijo que nos indique el signo de
ese número, y el resto en binario puro.
n bits
1-Negativo
Signo ...
0-Positivo n - 1 bits
Rango: - 1) M 2 (2n-11 n-1
Punto flotante: En este caso la coma no ocupará un punto fijo y variará según
el caso. Guardaremos un lugar para el exponente que nos dirá donde se
guardará o encuentra el punto.
E
M B
Tema 1 - Página 2
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Normalización: Sistema que exige que todos los números tengan
representaciones similares. La mantisa siempre va a tener la siguiente forma
si está normalizada: 1.XXXX. Otra forma de normalizar sería 0.1XXXX
Para el 0 tenemos todos los bits de la mantisa a 0 con un exponente
muy negativo. Para ellos utilizaremos una representación en exceso z .
La mantisa se representa en magnitud y signo. Nos quedará 23 bits
para guardar la mantisa. En estos 23 bits únicamente se guarda lo que sigue
a continuación del punto .XXXX
Representación IEE 754 de 32 bits
N = (-1)S (1 + M) 2E 127
Sólo funcionará si E se encuentra entre los valores: 0 < E < 255. El 255 se
evita por valores reservados.
EXP(E) MANTISA Nº
0 0 Cero
= 255 0 (-1) (OVERFLOW)
255 No nula NaN(not a number)
0 No nula (-1)S*(0.M)*2-126
1-254 X (-1)S 1.M 2E-127
Tema 1 - Página 3
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
BCD (Binary Code Decimal)
0 1 2 3 4 5 6 7 8 9
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
CODIGO ALFANUMERICO.
ASCII (American Standard Code for Information Interchange) 7 bits (0..127)
0 ... 31 32 ... 47 48 ... 57 58 ... 64 65 ... 90 91 ... 96 97 ... 127
Caracteres de Control :
CR Retorno de Carro
Tema 1 - Página 4
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
TEMA 2: EL PROCESADOR
NOTA: Una línea de entrada y una de salida a cada dispositivo, nunca una línea
para más de una entrada
MEMORIA: (Vectores o matrices) Almacena datos. También pueden existir zonas
que sirven para guardar donde trabajar con E / S.
Componentes CPU:
Unidad de control: Controla el funcionamiento de la CPU.
ALU: Lleva a cabo funciones de procesamiento de datos.
Registros: Proporciona almacenamiento interno a CPU
Interconexiones: Mecanismos para comunicar UC,
registros y ALU
Tema 2 - Página 1
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
PC apunta a memoria donde hay guardadas instrucciones.
IR guarda la primera palabra de cada instrucción (código de operación) Las
instrucciones pueden ser de varias palabras
AC almacena los resultados. El programador puede acceder a él.
Antes del MDR también hay otro registro MBR, que es un registro temporal o de
intercamibo (MEMORY BUFFER REGISTER)
Registro de flags o acumulador de flags(banderas, indicadores): Se coordina con la
ALU. Se registra bit a bit. Nos muestra los resultados de las operaciones aritméticas,
el signo, el bit de acarreo, overflow, etc. en cada uno de los bits. Se guardan datos que
pueden condicionar los estados.
Registro SP (Stack Pointer): Puntero de pila. Se guardan los espacios de
almacenamiento y este puntero nos dice donde está guardado ese dato en memoria.
Registro que contiene la dirección en memoria principal de un dato a utilizar. Solo
muestra el dato que se encuentra en el tope de la pila.
Como las líneas de datos son las mismas para todos los dispositivo, cuando en un
dispositivo hay señal, no se sabe de quién es, por tanto se utilizan dispositivos tri-
estados para evitar conflictos entre dispositivos y así saber qué dispositivo envía la señal.
El tercer estado se llama estado de alta impedancia.
Para ejecutar una instrucción, hay que recorrer un ciclo, el llamado CICLO DE
INSTRUCCIÓN, que consta de varios ciclos:
Ciclo de búsqueda: Busca código de la operación a ejecutar en el Program Counter. La
búsqueda del código de operación se divide en: leer la instrucción y decodificarla.
Ciclo de ejecución: Llevar a cabo la operación y actualizar Program Counter.
Compilador
Prog. Alto Nivel Cádigo Máquina
CLASIFICACIÓN DE PROCESADOR:
Clasificación según número de referencia a memoria:
o 3 direcciones: Cada instrucción especifica dos posiciones de operandos y la
dirección del resultado. Ej: OP A, B, C A B OP C
o 2 direcciones: Una de las direcciones debe hacer el servicio doble de uno de los
operandos y el resultado. Ej: OP A, B A A OP B
o 1 dirección: Sólo trabajamos con un operando, y el otro es implícito, el
acumulador de la máquina, que se emplea como operando y como lugar para
almacenar el resultado.Ej: OP A AC AC OP A
o 0 direcciones: Trabajamos en una máquina que tiene una organización especial
de memoria, una pila que está en una posición conocida y al menos dos de los
elementos de la cabecera se encuentran en los registros de CPU. Ej: OP T
T OP (T 1) (T = cabecera de la pila)
Tema 2 - Página 3
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
CODIFICACIÓN DE LAS INSTRUCCIONES:
Una instrucción puede ser más corta, igual o mayor que una palabra de la
máquina. Dentro de una palabra podríamos encontrarnos dos instrucciones raramente,
ó en 3 palabras una instrucción.
En el 8086 tiene un bloque de 16 bits de datos tiene unas palabras de 16 bits.
Contaremos lo más posible las instrucciones en una sola palabra si se puede .
o Codificación en bloque:
N bits(palabras de n bits)
2n posibles instrucciones
Notas sobre la tabla: Los pares de configuraciones que aparecen rodeados por
elipses son las configuraciones que se abrevian(original = origen flecha y abreviada =
punta flecha) y, según apunta la flecha, los resultados de las abreviaciones en las
columnas siguientes. Sin embargo, las configuraciones que aparecen rodeadas por
rectángulos son las configuraciones que pasan a la siguiente columna sin alterarse.
Los pasos a seguir son:
1º) Ordenar las frecuencias de más frecuentes a menos frecuentes.
2º) Sumamos las dos últimas frecuencias de estas instrucciones y se meten en
orden en la tercera columna, y así sucesivamente hasta quedar sólo dos frecuencias:
Siendo fi la frecuencia de la instrucción, y li su tamaño, La longitud media viene
n
dada por: Longitud media li fi 2.75 bits
i 1
JUEGOS DE INSTRUCCIONES:
Ortogonalidad: Se puede combinar todos los modos de direccionamiento con todas las
operaciones de la máquina y con todos los registros de la máquina.
Tema 2 - Página 5
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Características de un repertorio de instrucciones:
Ser completo. Puede implementar cualquier operación computable.
Sea eficiente: Las instrucciones más usadas sean la más rápida.
Sea regular: Simetría entre los opcodes, juegos de direccionamientos, registros, etc,
más ortogonal.
Compatibilidad: (de arquitecturas)Con cualquier otro juego de instrucciones.
TIPOS DE INSTRUCCIONES:
Transferencia de datos: Para transferir datos entre memoria y registros.
o MOVE: Mueve a una dirección de memoria. [MOV, M]
o STORE, LOAD: Almacenan en la dirección de memoria.[ST, S], [LD]
o EXCHANGE: Intercambia los dos operandos.[XCHG}
o PUSH: Mete un valor en la pila.
o POP: Saca un valor de la pila.
Aritméticas: Proporcionan capacidad para procesar datos numéricos.
o ADD: Suma y deja el resultado en el primer operando.
o SUBSTRACT: Resta y deja el resultado en el primer operando. [SUB]
o MULTIPLY:[MUL]
o DIVIDE:[DIV]
o NEGATE: Complementa un valor C2
o INC: Incremento
o DEC: Decremento.
Lógicas: Opera sobre bits de una palabra, para así procesar cualquier tipo de datos.
o AND
o OR
o NOT
o XOR
o SHIFT: Desplazamiento de bits
o ROTATE: Rotación de bits. El bit que sale se inserta por el otro lado.
Control de flujo: Para variar la ejecución de instrucciones según alguna decisión
dentro del propio programa.
o JUMP: Salto. [J, JMP,...]
o BRANCH: Equivalente al JUMP. Sólo existe en algunos ensambladores.
o JUMP COND: Salto condicional. [JC, JZ]
o JUMP SUBRUTINE:= CALL: Salto a subrutina a través de la bios. Pone en la
pila la dirección de vuelta.
o RETURN: Volver, inverso del CALL. [RET]
o HALT: Parada.
Tema 2 - Página 6
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
o WAIT: Parada.
o NOP: No opera, no hace nada. En el 8086 es un nemónico alternativo para
intercambiar la X con la Y. MOV AX, AY
Entrada / Salida:
o INPUT [INP,...]
o OUTPUT [OUT, OUTP, ...]
Especiales: Controlan el comportamiento de la máquina. Depende de cada máquina.
Habilitan interrupciones. Ejecución paso a paso.
MODOS DE DIRECCIONAMIENTO: Método para entrar en la memoria.
Inmediato: El operando está presente en la propia instrucción. Este direccionamiento
es usado para definir y utilizar constantes, fijar valores iniciales. El tipo de
representación de los datos es Ca2. Cuando operando se carga en un registro de
datos, el bit de signo se replica hacia la izquierda hasta la longitud del bus de datos.
No hay referencia a memoria. El mayor inconveniente es que el tamaño del numero
está restringido a la longitud del campo de direcciones, que en la mayoría de los casos
es más pequeño que la longitud del bus de datos.
Directo: En el campo de dirección está la dirección efectiva del operando. Se hace sólo
una referencia a memoria. La limitación es que proporciona un espacio de direcciones
restringido porque la longitud del campo de dirección es menor que la longitud del
campo de datos.
Indirecto: En el campo de dirección se referencia a una dirección de una palabra de
memoria que contenga la dirección completa del operando. La desventaja es que se
hacen 2 referencias a memoria. Para una longitud de N bits disponemos de un
espacio de direcciones de 2N bits. El nº de direcciones efectivas diferentes que pueden
referenciarse en un instante es 2k con k como longitud de campo de direcciones.
Directo por registros: Similar al directo, pero en el campo de direcciones se referencia
a un registro, en lugar de una posición de memoria. Normalmente, un campo de
direcciones que referencia a un registro consta de 3 o 4 bits. Así se pueden
referenciar un total de 8 ó 16 registros de uso general. Las ventajas es que sólo es
necesario un campo pequeño de direcciones en una instrucción. No hace referencias
a memoria. La desventaja es que el espacio de direcciones está muy limitado.
Indirecto por registros: Análogo al indirecto. En el campo de direcciones hay una
referencia a un registro donde se referencia a una dirección de memoria. Sólo se hace
una referencia a memoria.
Con desplazamiento: Las instrucciones han de tener 2 campos de direcciones, al
menos uno explícito. El valor contenido en uno de los campos se utiliza directamente.
El otro se refiere a un registro cuyo contenido se suma a la dirección del anterior
campo para generar la dirección efectiva. Hay tres tipos:
Desplazamiento relativo: El registro referido es PC. Si las referencias a memoria están
próximas a instrucción en ejecución, se ahorran bits de direcciones.
Direccionamiento con registro base: el registro tiene la dirección de memoria y en el
campo de direcciones se encuentra el desplazamiento a partir de la dirección que
contiene el registro. La referencia al registro puede ser implícita o explícita.
Indexado: El campo de direcciones referencia a una dirección de memoria y el registro
contiene el desplazamiento. Ya que campo de direcciones es dirección de memoria,
Tema 2 - Página 7
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
(contiene + bits que campo dirección de instrucciones) hay más bits que direcciones
en una instrucción con registro base. Un uso importante del modo de
direccionamiento indexado es ejecutar operaciones iterativas.
SALTOS:
Absoluto: La dirección aparece directamente en el opcode. Cuando se va a realizar un
salto de este tipo, el programa consulta una tabla de direcciones que posee y luego
coge una dirección de memoria vacía y pone todos los saltos absolutos como relativos
a esa dirección.
Relativo: El operando contiene una dirección relativa o desplazamiento. El dato que
contiene el operando hay que sumarlo a algo
Un procesador es una máquina de m direcciones, si su procesador acepta
instrucciones de cómo máximo, m referencias explícitas a memoria. (operandos
explícitos).
8086: Tiene una gestión de memoria segmentada (para crear una dirección física
este aparato debe hacer una serie de instrucciones antes). Dirección de 20 bits y 1 M de
direcciones = 220. Orientada a utilizar registros de 16 bits. Los registros de segmento
(DS, SS, ES, CS) son todos de 16 bits. Una REG. SEGMENTO (16 BITS) 0000
00 ES
bits 01 CS
10 SS
11 DS
Tema 2 - Página 8
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
d (1 bit) bit de dirección, indica si los operandos son hacia o desde donde estamos
trabajando
w(1 bit) bit que indica el tamaño del operando
w=1 word = movimiento de un word (2 byte)
w=0 palabra = movimiento de un byte (1 byte)
Reg (3 bits) depende del valor de w para su interpretación. Representa los registros
disponibles en el sistema.
W= 1 0
000 AX AL Los registros AL, BL, CL, DL representan la parte baja de los
registros AX, BX, CX, DX, respectivamente, y AH, BH, CH, DH
001 BX BL
representan la parte alta de los mismos.
010 CX CL
Esta dependencia sobre el bit w es debida a que si w es 1 no
011 DX DL tendremos ningún problema, ya que trabajamos con palabras completas,
100 SP AH que tienen el mismo tamaño que los registros. Sin embargo, cuando w es
igual a 0, trabajamos con 1 byte, la mitad de un registro completo, por lo
101 BP BH que hay que direccionar la parte baja y alta, respectivamente con los bits
110 SI CH de REG.
111 DI DH
R / M(3 bits) Registro / Memoria. Indica los desplazamientos efectivos a realizar.
R/M Desp. efectivo
000 BX + SI + DESP (*) Si tenemos R/M = 110 y MOD = 00 el desplazamiento
efectivo es simplemente (desp_alto-desp_bajo)
001 BX + DI + DESP
MOD(2 bits)Indica las modificaciones en el desplazamiento
010 BP + SI + DESP
11 R/M se interpreta como un registro. No hay
011 BP + DI + DESP
desplazamiento.
100 SI + DESP
10 Desplazamiento completo (1 word)
101 DI + DESP
01 Desplazamiento corto (1 byte)
110 BP + DESP (*)
00 Desp = 0, No existe desplazamiento adicional.
111 BX + DESP
Codificación de instrucciones:
RISC: Delimitación de modos de direccionamiento.
o Número de instrucciones reducido.
o Codificación simple.
Tema 2 - Página 9
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
o Ejecución lo más eficiente posible.
o Control cableado.
RISC1:Arquitectura:
o 138 Registros: se asigna a ventana, y una subrutina ve una ventana de 32
registros. Es decir, están en grupos de 32, llamadas ventanas: R0 R31
o El acceso a memoria sólo se puede hacer a través de carga(LOAD) y descarga
(STORE) de datos.
o En un solo ciclo se hace una instrucción, la más compleja es la suma de dos
registros, y el resultado se transfiere a otro.
o No hay instrucciones específicas de entrada / salida. Se hacen con
direcciones de memoria (emular la entrada / salida)
o 32 bits: Todas las vías de datos, registros, direcciones, palabras, son de 32
bits.
o R0 = 0. No se puede cambiar
o Se ahorra simplificación, eficacia, más pequeños para tener más espacios.
Formato codificación:
o Una instrucción tiene un tamaño fijo que coincide en las palabras de la
máquina (32 bits).
Tema 2 - Página 10
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
BUSES. Estructuras de interconexión.
Un bus es un camino comunicación entre 2 o más dispositivos. Es un medio de
transmisión compartido. Al bus se conectan varios dispositivos, y cualquier señal
transmitida por uno de esos dispositivos está disponible para que los otros dispositivos
conectados al bus puedan acceder a ella. Si dos dispositivos transmiten a la vez, la
señales se solapan y distorsionan, por tanto, un solo dispositivo puede transmitir con
éxito en un momento dado. Un bus está constituido por varios caminos de comunicación
o líneas. Cada línea es capaz de transmitir señales binarias. Se pueden transmitir dígitos
por una única línea o transmitir esa cantidad de dígitos por lo ancho del bus.
Las líneas del bus se pueden clasificar en:
o Líneas de datos: En nº de líneas en el bus de datos determina el nº de bits a
transmitir cada vez al mismo tiempo.
o Líneas de direcciones: Utilizadas para designar la fuente o destino en la
transmisión de datos.
o Líneas de control: Controlan el uso y acceso de las líneas de datos y direcciones
porque éstas son compartidas.
El bus incluye, por lo general:
o La disposición física que puede ser manejada por el usuario
o Especificaciones eléctricas. El bus nos aconsejará las operaciones eléctricas
que debemos o no hacer.
o Lógica: El bus funciona siguiendo un determinado protocolo.
Tipos de buses:
o ISA: Bus de extensión de la máquina en dispositivos de E/S.
o PCI: Es un bus más avanzado, ya más independiente de la CPU. Afecta a las
líneas de E/S como el ISA, pero de forma más específica.
o SCSI: Dispositivo para conectar discos duros. Utilizados como
interface(conjunto de hardware necesario para conectar un disco duro al bus).
Criterios de organización de buses:
Como podemos hacer que por la misma línea de bus, viaje información de un lado a
otro y viceversa. Podríamos desdoblarlos todos, pero sería costoso y muy lioso.
Lo que hemos de hacer es que las puertas no escriban siempre en la misma línea,
para ello creamos un estado Z(alta impedancia) que desconecta una conexión de
una puerta al bus.
Clasificación de buses:
o Dedicados: Es aquel bus que está permanentemente asignado a una función
(funcionalmente dedicado) o destinado a unir dos dispositivos determinados
(físicamente dedicado)
Dedicado funcional: Uso de líneas separadas para direcciones y para
datos.
Dedicado físico: Uso de múltiples buses, cada uno de los cuales conecta
solo un subconjunto de módulos.
Tema 2 - Página 11
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
(a) Bus funcional y físicamente dedicado (direcciones)
(b) Bus funcional y físicamente dedicado (datos)
Tema 2 - Página 12
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Para insertar otro dispositivo tendría que hacer j enganches, para tener j interfaces.
CROSSBAR(compartido)
G1 = {m1, m2, . . ., mm} y G2 = {m 1, m 2, . . .,m n} Tendremos varios grupos de
comunicación entre sí, pero no comunicados dentro del mismo grupo. Se
da o no la conexión entre ellos.
En cada instante sólo puede estar activo un punto de cada fila y columna. Estaría
ocupada esa fila y columna.
Número de conexiones:
n (si n < m)
m (si m < n)
La tolerancia a fallo depende del único camino de comunicación. Si falla, una pareja
de unidades no podrá comunicarse. Si añadimos una unidad más habrá que hacer n o
m conexiones, depende del grupo en el que se añada
Combinación (Bus múltiple- CROSSBAR)
Tema 2 - Página 13
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
o Daisy-chaining,
o Polling (sondeo o muestreo),
o Peticiones independientes.
Control centralizado:
Daisy-Chaining:
Cuando un dispositivo quiere usar el bus utiliza unas líneas de petición: Bus
Request
Bus busy indica que el bus está ocupado (son líneas or cableadas)
Bus Grant (avaliable): Entra en el primer dispositivo y este lo propaga al segundo y
así sucesivamente. Los dispositivos están encadenados por estas líneas.
Si se tiene varias peticiones simultáneamente del bus, el controlador del bus no
sabe cuantos dispositivos lo piden, esto se resuelve por hardware, en el orden en el que
está encadenado cada dispositivo siendo prioritario el primer dispositivo.
Si un dispositivo falla en su propagación, falla toda la cadena. No es muy
conveniente la prioridad física.
Con una configuración de cableado. Dispositivo en el que se hace un puente. Así
podremos obtener la prioridades como queramos.
Polling (Sondeo):
En lugar de tener un bus Grant único, como en el caso del Daisy-Chaining, tenemos
varias líneas de sondeo: Poll Count. en estas líneas de sondeo indicamos la configuración
asociado o número del dispositivo que va a transmitir. Dicho número se compara con el
de los dispositivos y se activará para el que coincida. Entonces se activará el bus busy.
Cuando se finaliza la transmisión se pueden dar dos circunstancias:
1. Se recomienza la cuenta a 0 == Daisy-Chaining, y la prioridad viene designada
por el nº de disp. que le habríamos asignado, siendo el de mayor prioridad el
disp. con el nº más bajo.
2. Otra posibilidad es continuar la cuenta donde la habíamos dejado y en este
caso el más prioritario sería el siguiente, y la prioridad sería circular. Esta
forma de asignas prioridades se llama Round-Robin.
La secuencia del controlador puede ser configurada por el propio programador.
Peticiones Independientes:
Tema 2 - Página 14
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
La prioridad de los dispositivos se fijará dentro de la unidad de control del bus.
Cada unidad tiene su propia línea de petición (request) y de concesión o aceptación
(grant).
La ventaja es que es mucho más rápida, ya que se sabe inmediatamente cuál es la
unidad que ha pedido transmitir.
Una desventaja es que ha aumentado el coste al aumentar el número de líneas de
conexión.
NOTA:
El número de líneas que necesita cada técnica de control es:
1. Peticiones independientes 2N líneas.
2. Polling (Sondeo) log2 N
3. Daisy-Chaining 2
Polling (Sondeo):
Peticiones Independientes:
El Data Acknowledge se activa cuando los datos han sido admitidos y se han leído
correctamente. En consecuencia, el Data Ready se desactiva simultáneamente con la
terminación de la emisión de datos. Así se sabe si se terminó la transmisión de datos.
Puede existir la variación de que el destino sea
el que pide el bus:
FUENTE Data DESTINO
Data
Tema 2 - Página 16
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Tema 3 - Página 1
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Sumador / Restador en Ca1:
Al utilizar la salida
directamente en la
entrada corremos el
peligro de que se generen
oscilaciones.
Flags:
Carry
Zero: Bit con una AND negada para ver si es 0 o no.
Sign: Bit Sn-1
Overflow: x, y n bits s=y+y
CV Xn-1Yn-1 Xn-1 Xn-1 Yn-1 Sn-1
1 0 1 0
P=X Y + 1 0 1 0
1 0 0 0 0 0 1 0 Resultado P
Tema 3 - Página 2
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
o Multiplicación Combinacional:
F-A
o Multiplicación Secuencial:
Algoritmo:
repetir n veces
if q0 = 1
suma
else
no_suma;
desplazar;
Nota: El resultado queda en AQ.
Tema 3 - Página 3
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
CON SIGNO:
o Representación en Ca2:
1. Multiplicando negativo, multiplicador positivo:
Hacemos extensión de signo hasta 8 bits según sea positivo o
negativo. Es decir, (-6) = 1 1 1 1 0 1 0(Repetimos el bit de signo
varias veces hasta que cubramos los 8 bits de representación,
teniendo en cuenta el desp de multiplicación). El carry tenemos que
omitirlo porque se nos sale del rango de 8 bits.
Algoritmo de BOOTH:
Multiplicamos dos números de n bits en Ca2:
Para el multiplicando realizamos una tabla en la que colocamos la posición de cada bit y
su contenido. i+k+1 i+k i+k 1 I+k 2 ... i+1 i i-1
... 0 1 1 ... 1 1 0
Tema 3 - Página 4
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Algoritmo q0q-1
inic: A = 0, Q = mltpcdr, q-1= 0, M = mpcndo 0 00 Desplazamiento
iterar n veces 1 01 Suma + Desplazamiento
si q0q-1 = 10 1 10 Resta + Desplazamiento
restar (A A M) 0 11 Desplazamiento
si q0q-1 = 01
sumar (A A + M)
desplazar a dcha
Implementación Hardware:
Tema 3 - Página 5
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Algoritmo:
repetir n veces
desplazar AQ;
A := A M;
if signo(A) = 1
q0 = 0;
A := A + M; {Restauramos}
else
q0 = 1;
MULTIPLICACIÓN:
1.m1 2e1 1.m2 2e2 = (1.m1)(1.m2) 2e1 + e2
Resultado = 48 bits de los que solo nos interesan los 24 finales.
DIVISIÓN:
1.m1 2 e1 1.m1
2e1 e2
1.m 2 2 e2 1.m 2
Tema 3 - Página 7
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Alterabilidad de la Información:
ROM: (Read Only Memory) Dispositivos que solo podemos leer (acceso aleatorio).
PROM: (Programmable ROM) El usuario tiene opción de alterar la memoria,
pero sólo una vez.
EPROM: (Erasable PROM) Son capaces de ser borradas, pero con un proceso
muy complicado.
EEPROM: (Electronic EPROM) Para borrar la memoria, solamente hace falta
realizar un proceso eléctrico (FLASH).
RAM: (Random Access Memory) tiene como principal característica que se
pueden leer datos y escribir rápidamente nuevos datos en ellas. La RAM es volátil.
Debe estar contínuamente alimentada. Si se interrumpe la alimentación se pierden
los datos.
Tema 4 - Página 2
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Estructuras RAM estáticas:
Capacidad = 2m n bits
Funcionamiento asíncrono:
Mediante un cronograma podemos saber las posibilidades de activación de cada
dispositivo.
El cronograma nos mostrará que pasa durante un ciclo de lectura y escritura.
Los datos serán válidos mientras el chip esté activado. El fabricante nos tiene que
indicar el tiempo de retraso entre cada dispositivo.
También es necesario que las direcciones estén activados cierto tiempo más que el CS.
Implementación de la RAM:
Tema 4 - Página 3
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
-Decodificación por coincidencia: En este caso tendremos dos decodificadores con
n/2 entradas cada uno.
Significa que tenemos que conectar las 10 direcciones con las entradas de las
celdas. Con los bits que quedan tendremos que hacer que según las entradas; active un
banco determinado. Esto lo solucionamos con un decoder.
La memoria estaría situada distribuida entre los 16K, apareciendo
duplicados en varios casos. Esto hay que arreglarlo puesto que cada bit que
añadimos aparecerá duplicado.
Tema 4 - Página 4
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
PROCESADOR:
MODULOS RAM:
4 módulos 4K 4
Z Alta impedancia.
Tema 4 - Página 5
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Si la lectura es secuencial sólo tenemos que esperar un tiempo de acceso porque en
lo que volveremos a visitar un banco determinado ya este estará preparado después de
su última activación.
La principal ventaja del entrelazado frente al no entrelazado es que en el segundo el
tiempo de recuperación es menor, ya que hay cierto paralelismo debido a que accedemos
a la siguiente dirección en módulos distintos.
El entrelazado se usa sobre todo para acelerar la memoria CACHÉ.
ORGANIZACIONES DE MEMORIA:
Supongamos una memoria 6K 1, o sea que la dirección tiene 16 bits.
La dirección entra en la memoria de dos veces, por las mismas patillas, o sea
primero entra la mitad de la dirección y luego la otra mitad, pero entran por las mismas
patillas. Es decir, las direcciones se multiplexan en el tiempo. Tenemos menos líneas que
dirección y las ofrecemos en secuencias, particionándolas.
Esquema de la memoria:
Las señales RAS (Row Address Strobe) y CAS (Column Address Strobe) nos
especifican que parte de la dirección nos viene, la de filas o la de columnas.
Es un registro especial donde se guarda la fila seleccionada en la matriz.
Como se puede observar hay que restaurar la memoria. En este mecanismo de
refresco es externo a la memoria. Cuando accedemos a una posición dentro de una fila,
toda la fila pasa al registro de amplificadores y automáticamente se refrescan todas las
celdas de la fila. No se refresca celda a celda, sino fila a fila.
Algunos chips mantienen la fila en el registro de amplificadores, por eso si se
selecciona la misma fila en el siguiente paso, disminuye el tiempo que tarda en
recuperarse la fila.
El acceso de refresco es más rápido que el de lectura, pero para refrescar toda la
memoria, se necesitan 256 accesos. Se utiliza un contador que cuenta las filas
refrescadas, para poder saber cuales han sido refrescadas y cuales no.
Sabemos que cada línea del decoder de filas activa una fila completa de la memoria
de celdas.
Tema 4 - Página 6
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Existe una alteración de RAS (Row Address Strobe) y CAS (Column Address Strobe)
en el orden que se activan si colocamos la instrucción PAST PAGE MODE.
La memoria SDRAM es una excepción y se basa en que, sincronizada por un reloj es
capaz de suministrar todos los bits mediante un paso de reloj.
Tema 4 - Página 7
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Tema 5 - Página 1
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Es fundamental en la mayoría de las estrategias de administración de memoria, e
indica que los procesos tienden a hacer referencia a la memoria en patrones no
uniformes y altamente localizados.
Temporal:
Es probable que las localidades de memoria a las que se haya hecho referencia
recientemente sean objeto de otra referencia en un futuro cercano.
Especial:
Las referencias a memoria tienden a estar concentradas, y una vez que se hace
referencia a una localidad, es muy probable que se haga referencia a las
localidades cercanas.
ESTRATEGIAS DE MAPEADO:
Tema 5 - Página 2
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
La principal desventaja de mapeado directo es que si una línea de cache
corresponde a dos bloques distintos que están siendo referenciados repetidas veces,
éstos se estarían intercambiando contínuamente y la tasa de aciertos sería muy baja.
En este caso el campo TAG ocupa los 12 bits restantes del bus de datos.
Con este mapeado hay flexibilidad para reemplazar un bloque al escribir un bloque
nuevo en cache.
Nº fallos Nº aciertos
NOTA: Relación fallos Relación aciertos RAciertos + RFallos = 1
Nº accesos Nº accesos
ESTRATEGIAS DE REEMPLAZAMIENTO:
Cuando el caché o alguno de los conjuntos estén llenos, tendremos que reemplazar:
Tema 5 - Página 3
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Completamente Asociativo Caché lleno.
Asociativo por Conjuntos Conjunto del caché lleno.
Utilizaremos las siguientes estrategias:
FIFO: Quita el bloque que más tiempo lleva en el caché. Se implementa mediante
técnica circular.
LRU(Last Recently Used):Quita el bloque que lleva más tiempo en cache sin haber
sido referenciado. Se implementa de manera sencilla en asociativo por conjuntos:
mediante un bit USO que se pone a 1 cuando una línea es referenciada y a 0 las demás.
Cuando se va a reemplazar, se toma una línea que tenga el bit USO a 0.
LFU: Se sustituye el bloque referenciado menos frecuentemente. Se implementa
mediante contador de usos en cada línea.
Aleatorio:Se quita un bloque elegido aleatoriamente.
POLÍTICA DE ESCRITURA:
Antes de reemplazar un bloque que está en línea de cache, es necesario comprobar
si ha sido alterado en cache pero no en memoria principal. Si no lo ha sido, se puede
escribir sobre la línea de cahe. Si ha sido modificado, se ha realizado al menos una
operación de escritura sobre línea correspondiente de la cache y la memoria principal ha
de actualizarse.
Hemos de tener en cuenta si los dispositivos de E / S pueden o no escribir en
memoria. Si no escriben, sólo hemos de ver las modificaciones hechas en los datos que
están en cache y con ellos actualizar la memoria principal. Si los dispositivos de E / S
escriben directamente en memoria, hemos de comprobar cual ha sido la última
modificación, la hecha en cache, o la hecha por el dispositivo de E / S y actualizar o bien
la memoria principal o bien la cache, según el caso.
La técnica más sencilla para solucionar este tipo de problemas es la ESCRITURA
INMEDIATA. Con ella, todas las operaciones de escritura se hacen en cache y en
memoria principal, así aseguramos que el contenido de las memorias sea válido. Esta
técnica ralentiza las operaciones ya que existe mucho tráfico de memoria.
La técnica de POST-ESCRITURA lo que hace es únicamente actualiza la cache.
Cuando tiene lugar una actualización se activa un bit ACTUALIZAR asociado a cada
línea. Cuando el bloque es sustituido, es (post-)escrito en memoria principal si y solo si
ACTUALIZAR está activo. El problema es que a veces porciones de memoria no son
válidas y los accesos por parte de los módulos de E / S sólo podrían hacerse a través de
la cache, lo que conlleva complicación en la circuitería.
Si más de un dispositivo emplea cache, y la memoria principal es compartida, al
modificar los datos en una cache, se invalidan las caches que tengan esa palabra.
Para evitar todos los problemas, utilizamos un sistema que mantiene la coherencia
de cache, mediante:
Vigilancia del bus con escritura inmediata:
Cada controlador de cache monitoriza las líneas de dirección para detectar una
operación de escritura en memoria por parte de otros maestros del bus. Si otro maestro
escribe en una posición de memoria compartida, que también reside en memoria cache,
el controlador de cache invalida el elemento de la cache. Esta estrategia depende del uso
Tema 5 - Página 4
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
de una política de ESCRITURA INMEDIATA por parte de todos los controladores de
cache.
Transparencia hardware:
Se emplea hardware adicional para asegurar que todas las actualizaciones de
memoria principal vía cache quedan reflejadas en todas las caches. Si un proceso
modifica una palabra de su cache, esta actualización se escribe en memoria principal,
como en todas las caches que contengan la palabra.
Memoria excluida de cache:
Sólo una porción de memoria principal se comparte y esta no se puede transferir a
cache. Todos los accesos a memoria son fallos de cache, ya que no se copia en ella esta
memoria. La memoria excluida de cache se puede identificar utilizando lógica de
selección de chip o los bits más significativos de la dirección.
MEMORIA VIRTUAL:
Las dos razones por las que se utiliza memoria virtual son:
- compartir eficientemente y sin peligros la memoria entre múltiples programas.
- eliminar el inconveniente de tener un espacio de memoria principal pequeño y
limitado, ya que puede suceder que los programas necesiten más memoria que la
disponible en memoria principal.
En mefmoria virtual, los bloques de memoria, llamados páginas se traducen de un
conjunto de direcciones, direcciones virtuales a otro conjunto, direcciones físicas.
La CPU genera direcciones virtuales mientras que a memoria se entra con
direcciones físicas. Los dos tipos de memoria, virtual y principal. están divididas en
páginas, en consecuencia, las páginas virtuales están asignadas a páginas físicas.
Cuando se produce un fallo en memoria virtual se llama fallo de página. Evidentemente,
es posible que una página virtual no esté en memoria principal y no tenga asignada una
dirección física. En este caso, la página está en el disco. Las páginas físicas se pueden
compartir si hay dos direcciones virtuales apuntando a la misma dirección física. Esta
propiedad se usa para permitir a dos programas compartir código o datos.
Tema 5 - Página 5
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
-- El software: el sistema operativo va a ser el responsable.
Gestión de memoria: El sistema operativo tiene que administrar y gestionar la
memoria, compartiéndola entre los programas para que se puedan ejecutar
simultáneamente.
Protección: El sistema operativo tiene que hacer que los procesos que corren
simultáneamente no se perturben entre sí. No podemos permitir que un proceso invada
un área de memoria que no le corresponde.
-- El hardware: El programa no debe saber que está ocurriendo en la memoria
virtual. El programa tiene que utilizar una memoria más grande que la que tenemos en
memoria principal, por lo que se manejarán direcciones
virtuales.
No siempre todos los marcos de página están ocupados, cuando esto ocurre, la lista
de marcos libres es gestionada por el sistema operativo.
Como puede que no hayan suficientes marcos libres para cargar un proceso, el S.
O. dispone de una tabla de páginas para cada proceso, que lo que hace es decir en qué
marco de memoria se aloja cada página del proceso.
Así, dentro del programa, cada dirección lógica está formada por un número de
página y una dirección relativa dentro de la página.
La traducción de dirección lógica a dirección física la hace el procesador, que debe
saber como acceder a la tabla de páginas de un proceso, y partiendo de ahí, toma la
dirección lógica y la tabla de páginas para generar la dirección física.
En memoria virtual se emplea paginación por demanda, que significa que cada
página de un proceso se introduce en memoria sólo cuando se necesita. Con este método
lo que hacemos principalmente es un mejor uso de la memoria, ya que sólo se cargan en
un instante determinado de tiempo unas pocas páginas.
Tema 5 - Página 6
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Cuando el programa hace referencia a un dato o instrucción que no está en
memoria, se produce un fallo de página, que consiste en traer la página que contiene lo
que se pide de disco.
Como cargamos pocas páginas de un proceso y no todas, podemos utilizar el resto
del espacio para cargar otros procesos. Cuando hay que cargar una página nueva,
quitando alguna que esté ya cargada, se ha de tener cuidado con sacar páginas que van
a ser utilizadas de inmediato, ya que habrá que cargarla de nuevo, produciendo si ocurre
con frecuencia un fenómeno conocido como hiperpaginación, que no conviene, ya que el
procesador pasa la mayor parte del tiempo intercambiando páginas en lugar de ejecutar
instrucciones.
Para evitar la hiperpaginación se pueden elegir diversos algoritmos que intentan
predecir qué páginas tendrán menos probabilidad de ser utilizadas en un futuro
próximo.
Tema 5 - Página 9
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Tema 6 - Página 1
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
i. Decodificación de órdenes: El módulo de E/S acepta órdenes del procesador,
que se envían generalmente por las líneas del bus de control. Si las órdenes
requieren parámetro, éste se envía por el bus de datos.
ii. Datos: El procesador y el módulo de E / S intercambian datos a través del
bus de datos.
iii. Información de estado: cuando se le envía una orden a un módulo de E / S
puede que el periférico esté todavía ejecutando alguna orden anterior, para saber
si ocurre esto se usa una señal de estado.
iv. Reconocimiento de dirección: Como cada palabra de memoria, cada
dispositivo de E / S tiene una dirección. Así un módulo de E / S puede reconocer
una única dirección para cada periférico que controla.
3. Comunicarse con los dispositivos: Implica intercambiar órdenes, informaciones de
estado y datos.
4. Almacenamiento temporal de datos:
De recursos internos a dispositivo: Como la velocidad de los recursos internos es
muy alta, hay que almacenar la información que éstos envían a algún dispositivo
para que éste cuando termine lo que esté haciendo haga lo que se le pide y así no
tener a los recursos internos esperando a que el dispositivo lea lo que tiene que
hacer
De dispositivo a recursos internos: Almacena los datos para que no quede ocupada
la memoria en una operación de transferencia lenta.
5. Detección de errores: Hay que avisar constantemente de los errores que sucedan,
desde papel atascado o pista dañada a cambios en la información accidentales.
Estructura de un módulo de E / S:
Periférico (mínimo)
CPU E / S: Ordenes de E / S:
Al ejecutar alguna instrucción relacionada con E / S, el procesador proporciona la
dirección, especificando el módulo de E / S, el dispositivo externo y una orden de E / S.
Existen cuatro tipos de órdenes que puede recibir un módulo de E / S cuando es
direccionado por el procesador:
Control: Lo que hace es activar el periférico e indicarle que ha de hacer. Son
específicas para cada periférico.
Test: Son para comprobar las condiciones de estado asociadas al módulo y sus
periféricos.
Lectura: Hace que el módulo de E / S capte un dato de un periférico y lo sitúe en el
buffer interno, que suele ser el registro de datos del módulo. Después el procesador
puede obtener el dato solicitando que el módulo se lo ponga en el bus de datos.
Escritura: Hace que el módulo de E / S capte un dato del bus de datos y
posteriormente lo transmita al periférico.
E / S MEDIANTE INTERRUPCIONES:
Se basa en que el procesador envía una orden de E / S a un módulo y luego
continúa realizando algún trabajo útil. Cuando el módulo de E / S concluya con la orden
Tema 6 - Página 4
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
interrumpirá al procesador para intercambiar datos con él. Entonces el procesador
ejecuta la transferencia de los datos y luego continúa lo que estaba haciendo.
Procesamiento de interrupción:
Veamos el papel del procesador de una manera más detallada:
Cuando se produce una interrupción se disparan varios eventos en el procesador,
tanto hardware como software. La secuencia de estos eventos es:
El dispositivo envía una señal de interrupción al procesador.
El procesador termina la ejecución de la instrucción en curso antes de responder a la
interrupción.
El procesador comprueba si hay interrupción, y si es así envía señal de
reconocimiento, que hace que el dispositivo desactive la señal de interrupción.
Ahora el procesador se prepara para transferir el control a la rutina de
interrupciones.
1º Guarda la información necesaria para continuar el programa en curso en el
punto en que se interrumpió. La información necesaria es el estado del procesador, que
se almacena en PSW y la posición de la siguiente instrucción a ejecutar, que está en PC.
Luego se carga el PC con la posición de inicio del programa de gestión de interrupción
solicitada. Según la arquitectura y el sistema operativo puede haber o un solo
programa, un programa por cada tipo de interrupción o un programa por cada tipo de
interrupción y cada dispositivo.
Entonces, si hay más de una rutina de gestión de interrupciones, el procesador
debe determinar a que programa llamar. Esta información pudo haber sido incluida en
Tema 6 - Página 5
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
la señal de interrupción o el procesador puede tener que enviar la solicitud al dispositivo
que originó la interrupción para que éste responda con la información precisa.
Una vez que PC se ha cargado, el proceso continúa con el ciclo de instrucción
siguiente, que comienza con la captación de la instrucción. Como la instrucción
siguiente viene determinada por PC, el control se transfiere al programa de gestión de la
interrupción.
Hasta ahora se ha almacenado en la pila del sistema el PC y el PSW del programa
interrumpido, pero hay más información que guardar, como son los registros de CPU, ya
que con la rutina de interrupción pueden ser modificados. Es la rutina de gestión de la
interrupción la que almacena estos registros antes de hacer nada. Los pasos a seguir
son:
Guardamos todos los registros en la pila.
Guardamos la dirección de la siguiente instrucción, que está en PC.
Actualizamos el puntero de pila para que apunte a la nueva cabecera.
Actualizamos PC para que apunte al comienzo de la rutina de interrupción.
Cuando el procesador quiere leer o escribir bloques de datos, envía una ordena al
módulo DMA que incluye la siguiente información:
Si solicita lectura / escritura utiliza la línea de control de lectura / escritura entre el
procesador y el módulo DMA.
La dirección del dispositivo de E / S en cuestión la envía a través de las líneas de
datos.
La posición inicial de memoria a partir de donde se lee o escribe, a través de líneas de
datos, y es almacenada por el módulo DMA en el registro de direcciones.
El número de palabras a leer o escribir, indicado también a través de las líneas de
datos y es almacenado en el registro de cuenta de datos.
Luego el procesador se encarga de hacer otra tarea, y la operación de E / S es
delegada al módulo DMA, que se encargará de que se concluya por completo. También se
encargará de transferir el bloque de datos, palabra a palabra, directamente desde o hacia
memoria, sin que pase por el procesador. Cuando termina la transferencia envía una
señal de interrupción al procesador. Así, el procesador sólo interviene al comienzo y al
final de la transferencia.
Durante un ciclo de instrucción, cuando un módulo DMA está realizando una
operación de E/S, el procesador se detiene justo antes de necesitar el bus. A
continuación, el módulo DMA transfiere la palabra y devuelve el control al procesador.
No se trata de una interrupción, no se guarda contexto ni nada, pero el procesador
espera durante un cilo de bus. Por esta espera el procesador es más lento ejecutando
programas.
El mecanismo de DMA se puede configurar de varias formas.
Tema 6 - Página 8
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Con este esquema, cada transferencia de palabras consume dos ciclos de bus. El
módulo DMA actúa como procesador usando transferencia programada entre módulo de
E / S y memoria.
Con este esquema, se reducen el número de ciclos de bus necesarios para las
transferencias, ya que existe un camino entre el módulo DMA y uno o más módulos de E
/ S que no incluye al bus del sistema.
La lógica de DMA puede ser parte de un módulo de E / S o ser un módulo separado
que controla uno o varios módulos de E / S.
También se puede hacer que haya un módulo DMA y un bus de E / S, así se reduce
el número de interfaces de E / S en el módulo DMA.
La ventaja de este esquema es que sólo se usa el bus del sistema por parte del
módulo DMA para intercambiar los datos con la memoria.
CONTROLADOR DE DMA:
Tema 6 - Página 9
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
- Instrucciones de E / S explícitas: Las direcciones de los periféricos ya no coinciden
con las direcciones de memoria convencionales, sino que tienen su propio espacio de
direcciones llamado puertos de E / S( Direcciones perif Puertos E / S)
Tema 6 - Página 10
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Tema 7 - Página 1
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
El AC es un registro temporal que se usa como réplica de AC, pero el programador
nunca lo ve y no pertenece al juego de instrucciones.
La UC genera una -orden, que es una señal que gobernará una operación elemental
dentro de un ordenador (de la CPU en este caso): cargar un registro, realizar una
operación en la ALU. Cada una de estas instrucciones tendrán conexiones distintas.
El SP es un puntero a memoria donde está cima de la pila del sistema. Se usa para
hacer llamadas a subrutinas.
Read Write: Son operaciones externas que controlarán instrucciones elementales.
Ordenes de actuación del MAR con la entrada del bus A y el bus B (EMARA ó
EMARB).
Tendremos otro conjunto de -ordenes que se seleccionarán en la ALU para realizar
una operación.
También existirá una señal de habilitación de comunicación entre el acumulador y el
acumulador auxiliar.
Todas estas líneas de -ordenes parten de la unidad de control.
Los flags se encuentran dentro de los biestables de condición. Este se trata de un
vector de bits que necesita la unidad de control para realizar su trabajo.
Requisitos fundamentales de la UC:
Son aquellas funciones que debe llevar a cabo. Para caracterizar al UC son
necesarios tres pasos:
1- Definir los elementos básicos (ALU, Registros, Caminos de datos (internos y externos,
UC)
2- Describir las operaciones que ejecuta el procesador
3- Determinar las funciones que deber realizar la UC para hacer que se ejecuten las
operaciones.
Micro operaciones:
Son operaciones funcionales o atómicas:
CICLO DE BÚSQUEDA: Tiene lugar al principio de cada ciclo de instrucción y hace
que una instrucción sea captada de la memoria. Lo único que se capta de memoria en
Tema 7 - Página 2
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
este ciclo es el código de operación de la instrucción, no interesa nada acerca de los
operandos.
Hay cuatro tipos de registros implicados:
Los registros de direcciones del bus del sistema. Especifica la dirección de la
operación de lectura o escritura.
Los registros de datos y temporales del bus del sistema. Contiene el valor a
almacenar en memoria o el último valor leído de memoria.
PC: Contiene la dirección de la siguiente instrucción a captar.
IR: Contiene la última instrucción captada.
Desde el punto de vista de los efectos sobre los registros del procesador, la
secuencia de eventos sería:
Al comienzo del ciclo, la dirección de la siguiente instrucción a ejecutar está en PC.
1º paso: Llevar esta dirección a MAR
2º paso: Traer la instrucción: la dirección de MAR se coloca en el bus de
direcciones y la UC envía una orden READ por el bus de control, el resultado
aparece en el cbus de datos y se copia en MBR y se incrementa PC (en longitud de
la instrucción) para que esté preparado para la siguiente instrucción.
3º paso: Transferir el contenido de MBR a IR.
Suponiendo que cada paso se realiza en una unidad de tiempo, tenemos:
t1 : MAR [PC] 8086: SPCA, EMARA
t2 : MDR Mem
t3 : IR[Dirección] [MDR[Dirección]]
PC Dirección de la rutina
t3 : Mem [MDR]
Tema 7 - Página 3
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Explicación: El contenido de PC se guarda en MDR para el retorno de la
interrupción, luego, en MAR se carga la dirección en la que se guarda el contenido
de PC, y PC carga la dirección de comienzo de la rutina de procesamiento de la
interrupción y, finalmente, se carga el contenido de MDR, que es el antiguo
contenido de PC.
CICLO DE EJECUCIÓN: Como no ocurre en el resto de los ciclos, en una máquina
con N códigos de operación diferentes pueden ocurrir N secuencias diferentes de
microoperaciones, que dependen de la naturaleza y el objetivo de cada instrucción.
Hemos de tener en cuenta varios puntos concretos en lo referente a los ciclos de
una instrucción:
El ciclo de interrupción siempre viene seguido por del ciclo de búsqueda.
El ciclo indirecto siempre viene seguido por el ciclo de ejecución.
En el caso de los ciclos de búsqueda y ejecución, el siguiente ciclo depende del
estado del sistema.
LOGICA CABLEADA:
La UC tiene la misión de generar microoperaciones y depende de biestables de
condición, donde se encuentran las líneas del bus de control de estado.
Separaremos los biestables por un lado y por el otro los circuitos combinacionales.
Las unidades necesarias para que funcione el bus están contenidas en los
biestables de condición.
Tema 7 - Página 4
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Utilizaremos un contador para ir generando las -ordenes secuencialmente. Éste
tendrá el generador de
señales llamadas Ti.
Tema 7 - Página 5
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Tendríamos una indirección más que antes
MICROPROGRAMACIÓN:
Su función es hacer más modular el diseño de la unidad de control. Supongamos
que para cada microoperación, lo que la UC puede hacer es generar un conjunto de
señales de control de modo que, para cualquier microoperación, cada línea de control
procedente de la UC está activa o inactiva. Podríamos construir una palabra de control
en la que cada bit representa una línea de control cada microoperación se representa
mediante patrones diferentes de 1 s y 0 s en la palabra de control.
Generamos las líneas de control a partir de las líneas que salen del decoder y
representan tiempos.
VENTAJAS: Si quisieramos cambiar el orden de una -orden podríamos desconectar
y conectar en otro ciclo de tiempo.
En función del IR podríamos elegir a partir de la línea que va a comenzar la
ejecución.
En las líneas que hemos colocado perpendiculares al decoder podemos seleccionar
también la secuencia de la siguiente línea a activar. Debemos intentar que la secuencia
no sea siempre la misma.
La matriz de conexiones la vamos a sustituir por una memoria en la que cada bit
tendrá una -orden. El registro de direcciones de esa memoria será el registro de
direcciones de control.
Tema 7 - Página 6
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Tema 7 - Página 7
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
C = 0: INC PC C = 1: INC PC
INC PC SPC, EMAR, READ
SPC, EMAR, READ SPC, LOADA
SMDR, EIR, START SMDR, SUM
SAC, EPC
SPC, EMAR, READ
SMDR, EIR, START
Las dos primeras líneas harían un ciclo de búsqueda. El IR se estará cargando con
el opcode de la dirección 0 de memoria, al principio, donde apunta el PC.
El bit START carga los 8 bits más significativos y reserva los 4 bits inferiores del
registro de direcciones. Ahora en memoria de control tendría el OPCODE 0000 y
determinará la posición inicial donde comenzará la instrucción: A partir de ella
colocaremos las palabras de la instrucción completa.
Para un determinado OPCODE
tenemos un espacio concreto para
colocar las palabras que conforman
la instrucción. Tiene el espacio de
la variación de los últimos 4 bits.
Tema 7 - Página 8
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Para cada opcode diferente tenemos que obtener la dirección de memoria de control
con el generador de direcciones. Este también se encargará de que se ejecuten las -
ordenes que corresponden a la instrucción.
Parte de los bits del registro de instrucciones pueden tener información de la
siguiente instrucción a ejecutar. Entonces el generador de direcciones tendrá que buscar
información en los biestables de condición y el registro de instrucciones.
a) Dirección inicial
b) Secuenciar una palabra detrás de otra.
c) Ejecución condicional
Hemos resuelto entonces tres problemas que teníamos.
VENTAJAS: Podemos hacer las pruebas que queramos con la memoria alterando los
contenidos e incluso cambiar el juego de instrucciones.
Las máquinas nunca suelen ser completamente horizontales, sino que contienen
algunos campos codificados.
2)Instrucciones monofásicas o polifásicas: Una instrucción MONOFÁSICA atiende al
esquema que tenemos hecho anteriormente.
En las POLIFÁSICAS las -ordenes que están en la misma línea de memoria no
siempre actuarán en el mismo instante de tiempo. En una misma -instrucción puede
haber -ordenes que se ejecutan en tiempos distintos.
En las MONOFÁSICAS todas las palabras que contienen -ordenes se ejecutan en
un mismo instante de tiempo.
NANOPROGRAMACIÓN
Es un segundo nivel de programación. En un primer nivel, podemos simplificar las
instrucciones pero quizás no sea suficiente según el juego de instrucciones.
Tema 7 - Página 9
Delegación de Alumnos de Informática
Estructura y Tecnología de Computadores
http://alu.etsii.ull.es
Tema 7 - Página 10