estructura de computadores 3

69
Delegación de Alumnos de Informática Estructura y Tecnología de Computadores http://alu.etsii.ull.es 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.

Upload: samuellemes

Post on 08-Jun-2015

1.685 views

Category:

Documents


0 download

DESCRIPTION

Capítulo 0.- Evolución histórica de los OrdenadoresCapí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íneasCapí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.

TRANSCRIPT

Page 1: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

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.

Page 2: Estructura de Computadores 3

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.

@

@ Actualizado el 15 de Marzo de 2004

Page 3: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

TEMA 0.- EVOLUCIÓN HISTÓRICA DE LOS COMPUTADORES.

Antecedentes históricos:

Era Mecánica.

Era Electromecánica.

Era Electrónica:

1ª Generación.

2ª Generación.

3ª Generación.

4ª Generación.

5ª Generación.

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

Page 4: Estructura de Computadores 3

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.

Mundo exterior Dispositivos

entrada / salida

Memoria principal Unidad de control

CPU Unidad aritmético-

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

Page 5: Estructura de Computadores 3

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

3ª Generación(1965 1971): Se introducen componentes mínimos para crear circuitos integrados.

(SSI SMALL {12 puertas lógicas}; MSI MÉDIUM{100 puertas lógicas})

IBM 360 370 (Arquitectura)

(1967) 360/67 Memoria virtual

(1968) 360/85 Primer ordenador comercial con memoria caché.

DIGITAL (DEC) PDP 11 CISC

VAX

CDC: Precursora de los supercomputadores

TECNOLOGÍA:

ms

MTBF: ~ 100h (Cientos de horas)

Se mejoran las interrupciones

Memoria virtual y caché.

Circuito impreso.

Varias CPU multiusuario.

SOFTWARE:

Basic, Pascal.

Aparecen Sistemas Operativos

Tema 0 - Página 3

Page 6: Estructura de Computadores 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

Page 7: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

TEMA 1.- REPRESENTACIÓN DE LOS DATOS.

DATOS NUMERICOS:

Cada código tiene un peso, para el sistema binario, el peso es 2 (base 2) y para el sistema decimal, es 10 (base 10).

CARACTERÍSTICA DE REPRESENTACIÓN DE NÚMEROS:

Dimensión: Es un número fijo que determina el tamaño en bits de un determinado código.

Byte: 8 bits;

Palabra: Unidad privilegiada que es capaz de manejar la máquina, es decir, tamaño de datos que podemos manipular con una máquina determinada. Coincide con la anchura del bus de datos.

Las palabras suelen ser de 16, 32 ó 64 bits.

Podremos trabajar con medias palabras y dobles palabras. En el 8086 utilizaremos palabras de 16 bits.

Resolución: Precisión que se puede conseguir en la representación. Cantidad mínima de información que pueda manejar la máquina.

Precisión: Incremento más pequeño que se puede conseguir. Potencias negativas.

Rango: Intervalo de números distintos que se consiguen con una cantidad de bits. Potencias positivas.

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

1

0

2n

i

iBiMRango: 0 M 2n 1

0 n - 1 . . . n bits

Tema 1 - Página 1

Page 8: Estructura de Computadores 3

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

Un pequeño problema que tiene es la doble representación del cero. Rango: - (2n-1 1) M 2 n-1 1

Signo 1-Negativo

0-Positivo . . .

n - 1 bits

-0 1 0 0 0

+0 0 0 0 0

Complemento a Uno (C1):

Los números positivos se representan en binario puro, con el bit de signo a 0, pero para los negativos se cambian los ceros por uno y los uno por cero de toda la magnitud, con el bit de signo a 1. Existe problema de duplicidad del cero:

C1(x) = -x = (2n 1) x

-0 1 1 1 1

+0 0 0 0 0

Rango: - (2n-1 1) M 2 n-1 1

Complemento a Dos (C2):

Los positivos se representan en binario puro, con bit de signo a 0, y los negativos se busca el primer uno de derecha a izquierda, dejamos ese uno y cambiamos los 0 por 1 y viceversa a partir de ahí en adelante. Surgen problemas con configuraciones, ya que aparece la autocomplementariedad. 8 = 1000 = -8.

C2(x) = -x = (2n x) = C1(x) + 1

-8 1 0 0 0

+8 1 0 0 0

Rango: - (2n-1 1) M 2 n-1 1

Representación en exceso z

1282

1272

1n

1nz nº binario puro + z = nº exceso z

Representación de números fraccionarios:

Punto fijo:

Parte entera Parte fraccionaria

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.

EBM

Tema 1 - Página 2

Page 9: Estructura de Computadores 3

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

Mantisa (numero) 23 bits (binario puro)Exponente 8 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

A todos los valores de la tabla hay que quitarles el exceso 127

Rango: 1.0 · 2-126 1.111..1 · 2127

Supongamos que un nos da este resultado alguna operación:

M0000001XX 2-125 (UNDERFLOW)

0.00001xxx 2-126.

La configuración es tan próxima a 0 que la normalización de este número lleva al underflow.

Para convertir la representación en IEE 754 (32 bits).

N = 1320.025 105 N = 1.M 2P

log2 N = log2 (1.M) + log2 (2P)

log2 (1320.025 105) = 26,9759901, donde 26=p, y 9759901= 1.M

226 < N < 227 N 226 = M

M = 1.9759901 = (1.100101001110110010011101)2

E = 26 + 127 = (153)10 = (10011001)2

S = 0

(N) 754 = SEM = (01001001100101001110110010011101)2 = (4994EC9D)HEX

IEE 754 de 64 bits tiene: 1 bit signo, 11 bits de exponente (exceso 1023) y 52 bits de mantisa.

Tema 1 - Página 3

Page 10: Estructura de Computadores 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 :

LF Fin de Linea

TAB Tabulador

CR Retorno de Carro

... Números ... @ Letras Mayúsculas ... Letras Minúsculas

ISO: La organización ISO ha intentado realizar un código universal llamado LATIN-1, donde completan las cadenas especiales de las lenguas latinas.

UNICODE: La unificación definitiva sin alusión entre americanos y europeos ha sido la también realizada por ISO: UNICODE. Trata los caracteres de forma abstracta y luego hay dos formas de traducción:

UTF-8:Podemos utilizar más de un byte para representar caracteres según su tamaño. Los que se representan con un solo byte son compatibles con el ASCII.

UTF-16:Usa un formato de 16 bits con la posibilidad de representar más de 65000. Además tiene un mecanismo de extensión.

Se puede pasar de un formato a otro sin perder información.

Tema 1 - Página 4

Page 11: Estructura de Computadores 3

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.

ENTRADA / SALIDA: (E/S) transfiere datos entre computador y entorno externo.

Buses del Sistema (líneas de comunicación)

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

Page 12: Estructura de Computadores 3

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.

INTERRUPCIÓN: Son líneas que solicitan CPU: están en el bus de control.

CLASIFICACION DE PARALELISMO DE FLYNN:

Tiene en cuenta el paralelismo en ejecuciones y el paralelismo en datos.

SI: (SINGLE INSTRUCTION)

MI: (MULTIPLE INSTRUCTION)

SD: (SINGLE DATA)

MD: (MULTIPLE DATA)

SIMD: Una sola instrucción con muchos datos

MIMD: Varias instrucciones con muchos datos

Von Neumann: SISD Una sola instrucción y un solo dato.

Instrucciones: Código que el procesador puede realizar. No se puede parar.

Tema 2 - Página 2

La colección de todos las instrucciones es lo que se llama repertorio o juego de instrucciones de la máquina y está definida por la máquina, ya que cada máquina puede hacer una u otra función, por lo que puede realizar una u otra instrucción.

Page 13: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Puede tener un tamaño variado, depende del número de operandos que tenga, de 1 a más palabras.

Opcode: Código de una operación a realizar por la máquina.

Oper1, Oper2: Operandos No siempre se puede asociar una palabra a estos operandos. Son la fuente, destino de la información a procesar. Están en memoria principal, registros CPU, registros E / S,

Código máquina: Tenemos en memoria un código que representa una instrucción que la máquina realiza, suele ser un número en código binario.

Nemónico: Símbolo con el que se representan las instrucciones para evitar trabajar con números binarios.

Nemónico

Ensamblador Código Máquina

Prog. Alto Nivel Compilador

Cádigo Máquina

Ensamblado: Proceso que pasa del código nemónico al código máquina. La operación es 1 a 1.

Compilación: Proceso que pasa del programa de alto nivel al código máquina. La operación es mucho mayor que en el ensamblado y crea un programa. Nos permite escribir pseudo instrucciones como generar espacio para variables, macros, ....

Operandos:

Explícito: Operando que ocupa su propio lugar en memoria

Implícito: No ocupa siempre un lugar en memoria, forman parte del opcode, cabe registros, que operarían en la operación del opcode.

Los registros poseen pocos bits en el opcode

OP. EXPLICITOS OP. EXPLICITOS OPCODE OP.IMP

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

Page 14: Estructura de Computadores 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

o Codificación por expansión:

Hay que saber si hay operandos (registros) o no. También debemos conocer el número de operandos que tenemos. Indicamos el número de operandos distintos y olvidar el nº de bits para los datos y los operandos.

Opcode K

2n 2k

Elegimos el número de operandos que van a haber después y reservar su espacio, y así sucesivamente. Hay que conocer el nº de bits en que se divide el registro. Por ejemplo para n = 16 y k = 4. Tenemos:

Instrucciones con tres operandos: (15 instrucciones)

0000 xxxx yyyy zzzz

0001 xxxx yyyy zzzz

.

.

.

.

.

.

.

.

.

.

.

.

1110 xxxx yyyy zzzz

La última configuración la dejamos como prefijo para la siguiente.

Instrucciones con dos operandos: (14 instrucciones)

1111 0000 yyyy Zzzz

1111 0001 yyyy Zzzz

.

.

.

.

.

.

.

.

.

.

.

.

1111 1101 yyyy zzzz

Las dos últimas configuraciones para la siguiente.

Instrucciones con un único operando: (31 instrucciones)

1111 1110 0000 zzzz

1111 1110 0001 zzzz

.

.

.

.

.

.

.

.

.

.

.

. 1111 1110 1111 zzzz

1111 1111 0000 zzzz

1111 1111 0001 zzzz

.

.

.

.

.

.

.

.

.

.

.

. 1111 1111 1110 zzzz

Como antes dejamos la última configuración para la siguiente.

Tema 2 - Página 4

Page 15: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Instrucciones sin operadores, si los hay son implícitos: (16 instrucciones)

1111 1111 1111 0000

1111 1111 1111 0001

.

.

.

.

.

.

.

.

.

.

.

.

1111 1111 1111 1111

o Codificación Huffman: Consiste en codificar los códigos de cada operación con un número variable de bits. No importa el número de operandos.

Las instrucciones más frecuentes reciben el opcode más corto. Para ello hay que realizar un estudio previo.

Ej.:

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

dada por: Longitud n

1i

ii 75.2fl bits media

Al final, la asignación de la configuración para cada instrucción se hace desde el final de la tabla al principio, es decir, de derecha a izquierda.

Formato de los operandos:

Explícitos (Datos o direcciones)

Implícitos (Datos de registros)

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

Page 16: Estructura de Computadores 3

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

Page 17: Estructura de Computadores 3

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

Page 18: Estructura de Computadores 3

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 dirección de 20 bits se forma tomando un registro de segmento y se le añaden 4 ceros al final, se le suma un desplazamiento de 16 bits (offset) y se obtiene la dirección efectiva de 20 bits.

OFFSET (16 BITS)

0000 REG. SEGMENTO (16 BITS)

DESPLAZAMIENTO

DIRECC. EFECTIVA (20 BITS)

La dirección efectiva es la dirección que va por los buses.

Registros: son todos de 16 bits, pero hay algunos de 8 bits:

AX Acumulador AH, AL

BX Base BH, BL

CX Contador CH, CL

DX DH, DL

BP Puntero de base

SI SOURCE INDEX

DI DESTINATION INDEX

CS Segmento de codificación

DS Segmento de dato

SS Segmento de pila

ES Segmento de lo que haga falta

Tamaño instrucciones: Puede ser de 1 a 4 bits, y en algunos casos puede ser de 5 bits (el 8086 utiliza prefijos que indican el segmento de la instrucción).

001 Registro 110

Prefijo de selección de segmento: es un byte con el siguiente formato

bits

00 ES

01 CS

10 SS

11 DS

Tema 2 - Página 8

Page 19: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Codificación de instrucciones del 8086

Vamos a ver como se codifican algunas operaciones para el 8086. Tienen opcodes de 8 o 16 bits, la codificación de los opcodes es la siguiente:

16 bits

1 0 0 0 1 0 d w (8 bits) MOD(2) REG(3) R / M(3)

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

001 BX BL

010 CX CL

011 DX DL

100 SP AH

101 BP BH

110 SI CH

111 DI DH

Los registros AL, BL, CL, DL representan la parte baja de los registros AX, BX, CX, DX, respectivamente, y AH, BH, CH, DH representan la parte alta de los mismos.

Esta dependencia sobre el bit w es debida a que si w es 1 no tendremos ningún problema, ya que trabajamos con palabras completas, 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 que hay que direccionar la parte baja y alta, respectivamente con los bits de REG.

R / M(3 bits) Registro / Memoria. Indica los desplazamientos efectivos a realizar.

R/M Desp. efectivo

000 BX + SI + DESP

001 BX + DI + DESP

010 BP + SI + DESP

011 BP + DI + DESP

100 SI + DESP

101 DI + DESP

110 BP + DESP (*)

111 BX + DESP

(*) Si tenemos R/M = 110 y MOD = 00 el desplazamiento efectivo es simplemente (desp_alto-desp_bajo)

MOD(2 bits)Indica las modificaciones en el desplazamiento

11 R/M se interpreta como un registro. No hay desplazamiento.

10 Desplazamiento completo (1 word)

01 Desplazamiento corto (1 byte)

00 Desp = 0, No existe desplazamiento adicional.

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

Page 20: Estructura de Computadores 3

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).

(1) (2) (3) (4) (5) (6)

1.- Opcode: Ocupa 7 bits.

2.- Bit de condición(Reg. Status PSW): 1 bit.

3.- Dest Rd: 5 bits.

4.- Bits set inmediate (supone que el campo hay que tratarlo como de inmediato):1 bit.

5.- Source 2. S2: 13 bits.

Si set inmediate = 0, de los 13 bits de Source 2, sólo serían significativos los 5 últimos.

La dirección más complicada sería DIR_MEM[ Rs+S2 ].

Si set inmediate = 1 Estamos accediendo a una dirección absoluta directamente.

Si Rs(Base) y R2(Desplazamiento) Direccionamiento relativo.

Si s2 = 0 estaríamos yendo a la memoria a la dirección apuntada por Rs. Acceso indirecto por registro.

PIPELINE

Cola de instrucciones que el procesador va cogiendo para ejecutar y busca las que se pueden hacer en paralelo.

Tema 2 - Página 10

Page 21: Estructura de Computadores 3

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

Page 22: Estructura de Computadores 3

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)

Los dos buses están funcionalmente dedicados, pero no lo están físicamente dedicados porque las direcciones y los datos pueden ir a memorias diferentes.

La contención de acceso es el problema que se origina cuando varios dispositivos intentan acceder a un recurso compartido.

Para conectar n dispositivos utilizando buses físicamente dedicados necesitaría

2

)1n(nbusesºn

Esta es la desventaja de tener recursos dedicados, la organización se hace menos modular y aumenta el costo considerablemente. La principal ventaja es la gran velocidad de acceso entre los dispositivos.

o No dedicados (Compartidos o multiplexados en el tiempo). Consiste en utilizar un mismo bus para transferencias de diferentes tipos, como pueden ser datos y direcciones, etc. Para ello se utiliza una línea de control válida. Por ejemplo, al comienzo de una transferencia de datos, la dirección se sitúa en el bus y se activa la línea de dirección válida. En ese momento cada módulo dispone de un periodo de tiempo para copiar la dirección y determinar si es él el módulo direccionado. Después la dirección se quita del bus, y las misma conexiones se utilizan para la subsecuente transferencia de lectura o escritura de datos.

En el 8086 los datos y las direcciones están multiplexados en el tiempo.

Mecanismo de control:

Regula la composición de transferencia de los datos (arbitraje arbitro del bus)

Ventajas: Costo reducido.

Desventajas: El acceso será mucho más lento.

Contención en el bus.

Baja tolerancia a fallo, puesto que la información no tendrá comunicación.

Tipos de buses no dedicados (compartidos):

Buses múltiples (compartidos): Nº total de circuitos de enganche: i j

Tema 2 - Página 12

Page 23: Estructura de Computadores 3

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 columna. Estaría ocupada esa fila y columna.

sólo puede estar activo un punto de cada fila y

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)

Número de caminos (min(n, m))

Técnicas de control del bus:

Definición de Controlador del Bus: Controla el acceso a un recurso de todos los dispositivos que lo necesiten. Tiene que resolver las prioridades, si hay más de una conexión de acceso.

El control del bus puede hacerse de dos formas:

o Centralizado, el hardware destinado al control del bus se encuentra concentrado en un sitio, un solo dispositivo.

o Descentralizado, el hardware está repartido entre todos los módulos que intentan conectarse tienen esta tarea.

Además de las líneas de datos pueden llevar implícita la prioridad que tienen frente a otros dispositivos.

Algunos controladores standard son:

Tema 2 - Página 13

Page 24: Estructura de Computadores 3

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 c

Daisy-Chainin

entralizado:

g:

ando un dispositivo quiere usar el bus utiliza unas líneas de petición: Bus Requ

busy indica que el bus está ocupado (son líneas or cableadas)

aga al segundo y así s

dor del bus no sabe

. No es muy conv

cableado. Dispositivo en el que se hace un puente. Así podr

Polling (Sondeo):

n lugar de te g, tenemos varia

iene designada

2. nuar la cuenta donde la habíamos dejado y en este

La secuencia del controlador puede ser configurada por el propio programador.

Peticiones Independientes:

Cuest

Bus

Bus Grant (avaliable): Entra en el primer dispositivo y este lo propucesivamente. Los dispositivos están encadenados por estas líneas.

Si se tiene varias peticiones simultáneamente del bus, el controla 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 cadenaeniente la prioridad física.

Con una configuración de emos obtener la prioridades como queramos.

ner un bus Grant único, como en el caso del Daisy-Chainin

Es 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 vpor el nº de disp. que le habríamos asignado, siendo el de mayor prioridad el disp. con el nº más bajo.

Otra posibilidad es conticaso el más prioritario sería el siguiente, y la prioridad sería circular. Esta forma de asignas prioridades se llama Round-Robin.

Tema 2 - Página 14

Page 25: Estructura de Computadores 3

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

Control Descentralizado (distribuido):

Daisy Chaining:

Debe mantener la línea request activada mientras utiliza el bus.

Polling (Sondeo):

Todos son capaces de escribirlas y leerlas. Un dispositivo genera un código y el bus available se activa. Entonces si el código coincide con el de algún dispositivo y este quiere el bus activa el bus acept y desactiva el bus available. El papel de control del bus va pasando de un dispositivo a otro.

Peticiones Independientes:

Las peticiones simultáneas se resuelven con un sistema de prioridades predeterminado. Cada dispositivo puede leer las peticiones del resto de dispositivos.

Información de una transferencia:

1. Fuente

2. Destino

3. Clase (dato, comando, status, interrupción)

Clases de líneas:

1. Datos

Tema 2 - Página 15

Page 26: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

2. Direcciones (si el bus de E/S, no es necesario utilizar líneas de dirección)

3. Control

Formas de comunicación en el tiempo.

Hay dos tipos de comunicación en el tiempo:

1. Comunicación síncrona.

2. Comunicación asíncrona.

Comunicación Síncrona:

Cada dato se transfiere por el bus durante un determinado período de tiempo. Este es conocido por el origen y el destino de la transferencia. Dispositivos sincronizados. Se puede hacer de dos formas: o bien por una señal de reloj común, que va a todos los dispositivos que hacen la transferencia (CLK + común); o por señales de relojes distintos, pero de igual frecuencia, aunque no forzosamente sincronizados, cada uno en cada una de las partes que intervienen en la comunicación. De esta forma estamos restringiendo la posibilidad de que los dispositivos más rápidos vayan a su ritmo. Todos tendrán que ir al ritmo del dispositivo más lento.

Comunicación Asíncrona:

Evita el uso de un reloj global, incluyendo una señal que indique que hay un dato en el bus. Estas señales son generadas por los propios dispositivos y cada uno va a su ritmo.

Hay dos tipos de comunicación asíncrona: por control de una vía o por control de doble vía.

a. Control de una vía: Las señales son transmitidas únicamente por uno de los dispositivos que intervienen en la conexión. No se sabe cuando se termina la transmisión de datos.

Podría ser al revés, que el dispositivo de destino pueda hacer una petición del bus.

inació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

DESTINO Data

Data

. Control de doble vía:

l 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 term

b

E

Tema 2 - Página 16

Page 27: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

TEMA 3.- UNIDAD ARITMÉTICO LÓGICA ALU

Se usa como instrumento de cálculo para las propias instrucciones de acceso o dirección. Si tenemos punto flotante tendremos dos partes separadas. Es controlada y dirigida por la unidad de control. Es la parte que realiza realmente las operaciones artiméticas y lógicas. El resto de elementos, Unidad de control, registros, memoria y E/S suministran datos a la ALU.

ALU s discretas:

Son componentes separados de la CPU, componentes versátiles que hace varias operaciones según lo que le indiquemos en las líneas de selección. BIT SLICE.

El modelo 74181 hace operaciones con palabras de 4bits. Tiene dos entradas de 4 bits cada una, una sola salida de 4 bits, por donde sale el resultado de la operación elegida, una entrada de acarreo y una salida de acarreo.

ALU s integradas en CPU:

La ALU está relacionada con el registro de flags.

umérica que utilicemos.

S

La complejidad viene dada por la representación n

Influencia de la representación numérica:

umador / Restador en Ca2:

Tema 3 - Página 1

Page 28: Estructura de Computadores 3

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

1-n1-n1- S Y n1-n1-n1-n X X YX CV

Sumadores CSA (carry save address) A = 0 1 1 0 = 6

B = 1 0 0 1 = 9

C = 0 1 1 1 = 7

S = 1 0 0 0

C = 0 1 1 1

1 0 1 1 0

Es un bloque que hace la suma bit a bit produciendo un vector S, resultado de hacer la suma bit a bit produciendo acarreo y un vector C que nos devolverá todos los acarreos que hayan hecho falta.

Ahora tendríamos que hacer la suma S + C con un sumador normal para obtener el resultado (Sumador Convencional CPA = Carry Propagate Adder).

La ventaja de este dispositivo es que permite sumar más de dos vectores, 3 en concreto. Si queremos sumar más, por ejemplo cuatro:

Pero el vector si el vector que desplazamos no cabe perdemos algún bit en el desplazamiento.

MULTIPLICACIÓN:

SIN SIGNO: 1 0 1 0 Multiplicador Y de n bits

x 1 1 0 1 Multiplicador X de m bits

1 0 1 0

0 0 0 0

1 0 1 0

+ 1 0 1 0

1 0 0 0 0 0 1 0 Resultado P

Para asegurarnos que el resultado cabe en el espacio p tendremos que reservar un espacio de p = m + n

P = X Y

Tema 3 - Página 2

Page 29: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

o Multiplicación Combinacional:

o Multiplicación con bloques CSA:

bit

o Multiplicación Secuencial:

repetir n veces

if q0 = 1

suma

else

no_suma;

desplazar;

Nota: El resultado queda en AQ.

Realiza multiplicaciones bit a

Algoritmo:

F - A

Tema 3 - Página 3

Page 30: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Tema 3 - Página 4

bi bi-1 Recodificación Operacion

0 0 0 No hay que hacer nada

0 1 1 Operación para sumar

1 0 1 Operación para restar

1 1 0 Noy hay que hacer nada

CON S

ción en Ca2:

cando nega

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.

Extensión de Robertson para números con signo.

IGNO:

o

1. Multipli

Representa

tivo, multiplicador positivo:

La característica principal es que el bit de signo del multiplicador es de peso 1. Si el bit de signo está puesto a 1, lo que se hace es complementar el resultado parcial.

(*) Debería dar 1 0 1 0, pero como el bit de signo es 1, complementamos el resultado parcial.

Implementación hardware:

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.

Valor cadena = 2i+k -1+ 2i+k 2 + . . . + 2i+1 + 2i

Los valores que se suman son los que en la casilla del contenido hay un 1

i + k + 1 i + k i + k 1 I + k 2 . . . i + 1 i i - 1

. . . 0 1 1 . . . 1 1 0

ikikikin

rproggeom 2 - 2 1) - (2 2

1-2

1) - (22

1-r

1) - (r a S

Para el multiplicador B (bn-1, ...., b0) hacemos un proceso de recodificación de acuerdo con la tabla siguiente:

Ej: B = ( 0 1 1 1 0 1 1 0) Recodificación 1 0 0 1 1 1 0

Tema 3 - Página 4

Page 31: Estructura de Computadores 3

Delegación de Alumnos de InformátiEstructura y Tecnología de Computado

.etsii.u

ca res

ll.es http://alu

Desplazamiento

zamie

Tema 3 - Página 5

Los peores casos se darán cuando hayan combinaciones con 1 y 0 alternados,puesto que habrá que hacer una operación además del desplazamiento.

Ej: 0 1 0 1 0 1 0 1 1 1 1 1 1 1

íamos el doble de operaciones por lo que Para que

DIVI ÓN:

En este caso harno sería mejor que el algoritmo de Robertson.

funcione mejor, siempre BOOTH que en ROBERTSON es necesario hacer una recodificación a tres bits.

SI

X Divisor Z Resto

Y = X Q + Z 0 Z X

r n cociente y deshago lo que se ha hecho, esto se llama paso de restauración. Así se va creando un hueco en el registro Q. La U. C. va generando también el bit del cociente en el registro Q por la derecha.

A

inic: A = mpcndo

iterar n veces

si q0q-1 = 10

restar (A A

si q0q-1 = 01

sumar (A A

des

lgoritmo

0, Q = mltpcdr, q-1= 0, M =

CON SIGNO:

Y Dividendo Q Cociente

o División con restauración:

Si sale un nº negativo en la resta, sale un ce o e el

M)

+ M)

1 1 0 Resta + Desplazamiento

0 1 1 Desplazamiento

plazar a dcha

q0q-1

0 0 0

nto 1 0 1 Suma + Despla

Implementación Hardware:

Page 32: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

los pasos del algoritmo. Al final queda en Q el cociente y en A el resto. Q inicialmente es el dividendo, M el divisor y A = 0 0 0 0

o División con restauración:

Después de la resta:

A > 0 Desplazar y restar (A:=2A; A := A M;) 2A M

A < 0 Sumar, Desplazar y restar (A := A+ M; A := 2A; A := A M) 2A + M

Representación en Punto Flotante:

SUMA

A = 1.m1 2e1 B = 1.m2 2e2 1.m1 2e1 + 1.m2 2e2

e1 < e2 = 0.0....0(1m1 2e1 + 1m2 2e2)

e1 + d = e2

Si tenemos carry de 1 lo solucionamos con un desplazamiento a la derecha: 11.1 1.11

Ej: Para dividir 1 0 0 0 entre 0 0 1 1:

Primero hallamos Ca2(M)= 1 1 1 0 1, y vamos repitiendo

A

AQ;

M;

i

A := A + M; {Restauramos}

q = 1;

ar AQ;

A := A + M;

if signo(A) = 0

q0 = 1

els

q0 = 0;

if signo(A) = 1

A := A + M

lgoritmo:

repetir n veces

desplazar

A := A

f signo(A) = 1

q0 = 0;

else

0

Algoritmo:

repetir n veces

if signo(A) = 0

desplazar AQ;

A := A M

else

desplaz

e

;

Tema 3 - Página 6

Page 33: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Pero lu

1

2

MULTIPLICAC

1.m1 2e1

R

DIVISIÓN:

ego tenemos que tener en cuenta q e el exponente ha sido incrementado.

Si los números son de distinto signo:

- Restamos las mantisas: -1.m1 1.m2. Hemos de fijarnos si hay acarreo.

- Si hay acarreo, hallamos el Ca2 del resultado.

IÓN:

1.m2 2 = (1.m1)(1.m2) 2e1 + e2

esultado = 48 bits de los que olo nos interesan los 24 finales.

u

e2

s

e2 e1

2

1e2

e11 2

1.m

1.m

2 1.m

visor respectivamente.

2 2 1.m

Metemos los números directamente en el registro A y en el di

Tema 3 - Página 7

Page 34: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

TEMA 4.- UNIDAD DE MEMORIA I.

La memoria es la que nos restringe la velocidad. La memoria externa será más grande y más barata que la

Mem

interna.

oria principal:

Memoria secundaria: Memoria asociada a dispositivos periféricos E / S.

ada por Regi

NES:

ad natural de organización de memoria. Coincide con el nº de bits

os casos se

oria principal es el nº de bits que se leen o

CLASIFICACIÓN DE MEMORIAS:

rio: Cada posición direccionable de memoria tiene un único

be realizarse

mbién dispositivo de lectura / escritura, pero bloques

comparación de ciertas

Memoria interna al procesador: Es la memoria más rápida y más cara. Formstros.

DEFINICIO

Palabra: Unidusados para representar números y con la longitud de las instrucciones.

Unidades direccionables: En muchos casos es la palabra, pero en algunpermite direccionar a nivel de bytes.

Unidad de transferencia: Para memescriben en memoria a la vez. No tiene por que coincidir con palabra o unidad direccionable.

Modo de acceso:

Acceso Aleatomecanismo de acceso, cableado físicamente. El tiempo para acceder a una posición dada es constante. Cualquier posición puede seleccionarse aleatoriamente y puede ser direccionada y accedida directamente. Ej: Memoria ppal.

Acceso Secuencial: La memoria se organiza en registros. El acceso decon secuencia lineal específicea. Se hace uso de información almacenada de direccionamiento, que permite separar los registros y ayudar en el proceso de recuperación de datos. Se usa un mecanismo de lectura / escritura compartida, que debe ir trasladándose desde su posición actual a la deseada, pasando y obviando cada registro intermedio. El tiempo necesario es muy variable. Ej: Unidades de cinta.

Directo: Tienen taindividuales o registros tienen una dirección única basada en su dirección física. El acceso se lleva a cabo mediante directo a una vecindad dada, seguido de búsqueda secuencial, contando o esperando hasta alcanzar la posición final. El tiempo de acceso es muy variable. Ej: Unidades de disco.

Asociativo: Es de acceso aleatorio, que permite hacer posiciones de bits dentro de una palabra buscando las que coinciden con valores dados y hacerlo para todas las palabras simultáneamente. Una palabra es

Tema 4 - Página 1

Page 35: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

recuperada basándose en una porción de su contenido. Cada posición de memoria tiene su propio mecanismo de direccionamiento. El tiempo de recuperación es constante. Ej: Mem cache.

Alterabilidad de la Información:

PROM) Son capaces de ser borradas, pero con un proceso

nic EPROM) Para borrar la memoria, solamente hace falta

iene como principal característica que se

Permanencia de la información (Durante el uso normal de la memoria) (Sobre todo las

áticas: Los valores binarios se almacenan utilizando configuraciones de puertas

omo cargas en

Las RAM dinámicas son más densas y más económicas que las RAM estáticas. Aunq

iden estas prestaciones.

incipalmente para memorias de acceso aleatorio. Es el tiempo de

eden transfrerir datos a o desde

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 muy complicado.

EEPROM: (Electrorealizar un proceso eléctrico (FLASH).

RAM: (Random Access Memory) tpueden 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.

RAM)

Estque forman biestables. Retiene los datos mientras esté alimentada.

Dinámicas: Están hechas con celdas, que almacenan los datos ccondensadores. La presencia o ausencia de carga se representan como 1 ó 0 en binario. Ya que los condensadores tienen tendencia a descargarse, se necesitan refrescos periódicos para mantener memorizados los datos.

ue las dinámicas necesitan circuitería para el ciclo de refresco, el coste para ello se ve compensado por el menor coste de las celdas de memoria.

PRESTACIONES DE MEMORIA: Existen tres parámetros que m

Tiempo de acceso: Para memorias de acceso aleatorio es el tiempo que tarda enrealizarse una operación de lectura / escritura, es decir, desde que se presenta una dirección a la memoria hasta que el datos ha sido es leído / escrito. Para memorias de otro tipo, es el tiempo que se tarda en colocar el mecanismo de lectura / escritura en posición deseada.

Tiempo de ciclo: Pracceso sumado al tiempo que se requiere antes de que se pueda iniciar un segundo acceso a memoria. Es necesario para que finalicen transiciones en líneas de señal o regenerar los datos en caso de lecturas destructivas.

Velocidad de transferencia: Velocidad a la que se pumemoria. Para memorias de acceso aleatorio coincide con el inverso del tiempo de ciclo. Para otras memorias: Tmedio l/e = Tacceso medio + (N bits / Vel transf)

Tema 4 - Página 2

Page 36: Estructura de Computadores 3

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.

Ciclo de Lectura

Ciclo de 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:

El decodificador nos dice que

palabra de la memoria se

quiere leer.

CELDA:

Aunque existen muchos tipos, todas comparten ciertas propiedades:

Presentan dos estados que se emplean para representar 0 ó 1 binarios.

Puede escribirse en ellas para fijar su contenido.

Puede leerse para detectar su estado.

Ejemplo: RAM n n (decodificación lineal).

Tema 4 - Página 3

Page 37: Estructura de Computadores 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.

Si queremos utilizar RAMs mayores haremos conexiones que salen de los decodificadores y utilizaremos las mismas para todos las matrices de almacenamiento.

Diseño de la Unidad de Memoria.

Ej: Implementación de una memoria de 8K palabras con un bus de datos de 8 bits.

Disponemos de módulos de memoria diferentes 1K = 210 bits.

Con este módulo tendremos que construir la memoria.

ignifica 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

Si está a 1 el bit más significativo lo complementamos y se lo n

S

añadimos aparecerá duplicado.

decodificador y así solo activará la parte de direcciones cuyo ificativo indica..

pasamos albit más sig

Tema 4 - Página 4

Page 38: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Tema 4 - Página 5

PROCESADOR:

Z Alta impedancia.

La memoria tiene que estar en las siguientes direcciones y ocupar un determinado rango.

MEMORIA A000 H

BFFF H

ENTRELAZADO DE MEMORIA: Se utiliza para acelerar accesos de memoria a direcciones consecutivas.

No entrelazado:

ABR Address Buffer Register

En este caso para pa

módulo, con lo cual pasaríamos al siguiente (modulo ++, Dir en modulo = 0). Esperar ciclo de escritura y lectura.

Entrelazado:

En este caso direcciones consecutivas se encuentran en módulos distintos. Para buscar una dirección consecutiva aumentamos módulo en 1, hasta llegar al final, entonces ponemos módulo a 0 y dir ++.

sar a la dirección consecutiva aumentamos en uno la dirección del módulo, pero seguimos en el mismo módulo a no ser que lleguemos al final del

MODULOS RAM:

4 módulos 4K 4

Tema 4 - Página 5

Page 39: Estructura de Computadores 3

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.

se usa sobre todo para acelerar la memoria CACHÉ.

DE MEMORIA:

upongamos una memoria 6K 1, o sea que la dirección tiene 16 bits.

a dirección entra en la memoria de dos veces, por las mismas patillas, o sea

Esquema de la memoria:

Strobe) y CAS (Column Address Strobe) nos especifican que parte de la dirección nos viene, la de filas o la de columnas.

rvar 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 ificadores 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 recu

c una fila completa de la memoria de ce

El entrelazado

ORGANIZACIONES

S

Lprimero 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.

Las señales RAS (Row Address

Es un registro especial donde se guarda la fila seleccionada en la matriz.

Como se puede obse

la fila pasa al registro de ampl

perarse 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 ldas.

ada línea del decoder de filas activa

Tema 4 - Página 6

Page 40: Estructura de Computadores 3

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

Page 41: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

TEMA 5.- UNIDAD DE MEMORIA II. MEMORIA CACHE Y VIRTUAL

MEMORIA CACHE:

Su principal objetivo es hacer que la velocidad de la memoria sea lo más rápida posible y a la vez obtener mayor tamaño a menor coste.

Se hacen copias de lo que hay en memoria principal en la cache, así cuando el procesador intenta leer, si está en cache lo que busca, no hay que ir a memoria, si no, se transfiere un bloque de memoria (cierto número de palabras) a cache desde memoria ppal. y luego se le entrega al procesador lo que éste pedía. Debido al fenómeno de localidad de referencia, es muy probable que al transferir un bloque a cache para tomar una palabra, luego se hagan referencias a palabras del mismo bloque. Si la memoria principal tiene 2n palabras direccionables y cada palabra tiene una única dirección de n bits. La memoria principal la consideramos dividida en bloques de k palabras por bloque, con k fijo. Entonces hay 2n / k bloques. Si tenemos una cache de C líneas de k palabrtas cada una. Como el nº de líneas es mucho menor que el nº de bloquess en memoria principal, cada linea no se puede dedicar en exclusiva a un único bloque. Por tanto, cad línea incluye una etiqueta que indica el bloque que tiene almacenado. La etiqueta es una porción de la dirección en memoria principal.

Un proceso genera la dirección de la palabra a leer. Si está la palabra en cache, se termina, si no, el bloque de memoria principal que contiene la palabra es cargado en cache y la palabra es llevada al procesador de manera simultánea.

Cuando hay acierto de cache, los buffers se inhabilitan y así sólo se comunican la cache y el procesador, sin tráfico en el bus del sistema.

Cuando hay fallo de cache, la dirección se carga en el bus del sistema y el dato es llevado a través del buffer de datos, tanto a cache, como al procesador.

Si la cache se interpusiera físicamente entre el procesador y la memoria principal para todas las líneas de datos, direcciones y control, frente a fallo de cache, la palabra deseada es leída por la cache y de aquí transferida al procesador.

Localidad de Referencia:

Tema 5 - Página 1

Page 42: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Tema 5 - Página 2

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:

La memoria tendrá, como mucho 216 palabras = 64K palabras.

Los cuatro últimos bits del bus nos dicen de que tipo es la palabra y se llama BUS DE PALABRA.

Los 12 bits restantes representan el número de bloque en memoria principal.

MAPEADO DIRECTO:

Hacemos única línea posible de cache.

corresponder cada bloque de memoria principal con una

El mapeado se implementa fácilmente utilizando la dirección. Desde el punto de vista del acceso a cache, cada dirección de memoria principal puede verse como dividida en t

NOTA: El número total de bloques caché es 128.

res campos. Los w bits menos significativos identifican la palabra dentro de un bloque de memoria principal. Los s bits restantes especifican uno de los 2s bloques de memoria principal. La lógica de la cache interpreta los s bits como una etiqueta de (s r) bits más significativos y un campo de línea de r bits. Este último campo identifica una de las 2r líneas de cache.

Page 43: Estructura de Computadores 3

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 corre

a CPU va al campo TAG y comprueba si el bloque que está buscando se encuentra en es

MAPEADO COMPLETAMENTE ASOCIATIVO:

cipal pueda ser cargado en cualquier línea de cache. En este caso, la lógica de control de la cache interpreta una dirección de

n este caso el ca

on este mapeado hay flexibilidad para reemplazar un bloque al escribir un bloque nuev

IATIVO POR CONJUNTOS:

iene las ventajas de los otros mapeados, pero no sus desventajas.

juntos, cada uno de k líneas y tenemos que:

ignarse en cualquier línea del conjunto i. Se interpreta una dirección de memoria como tres campos: etiqueta, conjunto y palabra. Los d bits (6 en caso

NOTA:

sponde 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.

Le bloque de caché. Todo esto lo hace en un tiempo de respuesta HARDWARE.

Permite que cada bloque de memoria prin

memoria como una etiqueta (TAG) y un campo de palabra. La etiqueta identifica unívocamente un bloque de memoria principal. Para saber si un bloque está en cache se examinan en paralelo todas las líneas para buscar una coincidencia.

mpo TAG ocupa los 12 bits restantes del bus de datos.

E

Co en cache.

MAPEADO ASOC

T

En este caso, la cache se divide en v con

Nº lineas cache = k · v

Nº conjunto en cache = nº bloque memoria ppal. % v.

Así el bloque Bj puede as

8086) del conjunto especifican uno de los v = 2d conjuntos. Los s bits (12) de los campos etiqueta y de conjunto especifican uno de los 2s bloques de memoria principal.

accesos Nº

fallos Nº fallos Relación

accesosNº

aciertos Nº aciertos Relación RAciertos + RFallos = 1

ESTRATEGIAS DE REEMPLAZAMIENTO:

Cuando el caché o alguno de los conjuntos estén llenos, tendremos que reemplazar:

Tema 5 - Página 3

Page 44: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Completamente Asociativo Caché lleno.

hé. Se implementa mediante técn

. 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. Cuan

POLÍ

ntes de reemplazar un bloque que está en línea de cache, es necesario comprobar e 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 oper

scriben, 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 escri

escritura se hacen en cache y en memoria principal, así aseguramos que el contenido de las memorias sea válido. Esta técn

ociado a cada línea. Cuando el bloque es sustituido, es (post-)escrito en memoria principal si y solo si ACTU

s que tengan esa palabra.

r 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 co

Asociativo por Conjuntos Conjunto del caché lleno.

Utilizaremos las siguientes estrategias:

FIFO: Quita el bloque que más tiempo lleva en el cacica circular.

LRU(Last Recently Used):Quita el bloque que lleva más tiempo en cache sin haber sido referenciado

do 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.

TICA DE ESCRITURA:

Asi ha sido alterado en cach

ació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 e

ben 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

ica 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 as

ALIZAR 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 cache

Para evitar todos los problemas, utilizamos un sistema que mantiene la coherencia de cache, mediante:

Vigilancia del bus con escritura inmediata:

Cada controlado

ntrolador de cache invalida el elemento de la cache. Esta estrategia depende del uso

Tema 5 - Página 4

Page 45: Estructura de Computadores 3

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 mod

Sólo una porción de memoria principal se comparte y esta no se puede transferir a cach ria 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

Ej. : Tenemos un microprocesador con un caché de 8KB, es asociativo por conjunto. El bloque tiene 16 bytes de tamaño y el conjunto tiene 4 bloques. El bus de direcciones es de

Contenido final de los 2 primeros conjuntos caché para una traza dada.

Qué anchura tiene cada uno de los campos.

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 limit la disp

es virtuales a otro conjunto, direcciones físicas.

as en pági

Todas las partes del programa ocupan la misma zona en memoria.

Con la memoria virtual, la responsabilidad de las posiciones en memoria la

ifica 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:

e. Todos los accesos a memo

selección de chip o los bits más significativos de la dirección.

32 bits.

Indicar la estructura del caché, como funciona. Como se llena el bus de direcciones.

hacer a mano

ado, ya que puede suceder que los programas necesiten más memoria queonible en memoria principal.

En mefmoria virtual, los bloques de memoria, llamados páginas se traducen de un conjunto de direcciones, direccion

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 dividid

nas, 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.

comparten dos partes fundamentales, el hardware y el software (Sistema Operativo).

Tema 5 - Página 5

Page 46: Estructura de Computadores 3

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.

tar simu

a que no le corresponde.

ejarán direcciones virtuales.

físicas (espacio). Habrá que transformar las dir. virtuales en dir. físicas.

G

Si dividimos la memoria en trozos iguales y relativamente pequeños y cada proceso e divide en pequeños trozos de tamaño fijo, los trozos del programa (páginas) se asignan

, marcos, y de esta manera, el espacio de memoria desperdiciado es como mucho, una fracción de la última página.

a

O. dispone de una tabla de páginas para cada proceso, que lo que hace es decir en qué

sí, dentro del programa, cada dirección lógica está formada por un número de pági

a hace el procesador, que debe sabe

demanda, que significa que cada pági

memoria, ya que sólo se cargan en un instante determinado de tiempo unas pocas páginas.

Gestión de memoria: El sistema operativo tiene que administrar y gestionar la memoria, compartiéndola entre los programas para que se puedan ejecu

ltá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 memori

-- 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 man

Pero el programa corre en direcciones

MEMORIA VIRTUAL PA INADA:

sa trozos de memoria disponible

marco de memoria se aloja cada página del proceso.

No siempre todos los marcos de página están ocupados, cuando esto ocurre, la listde marcos libres es gestionada por el sistema operativo.

Como puede que no hayan suficientes marcos libres para cargar un proceso, el S.

Ana y una dirección relativa dentro de la página.

La traducción de dirección lógica a dirección física lr 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 porna 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

Tema 5 - Página 6

Page 47: Estructura de Computadores 3

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

rección lógica a

ra buscar

hay una tabla de páginas por proceso, pero puede suce

de dos niveles para organizar las tablas de p

nte la long

rte de la direc

memoria virtual. Por tanto se necesita una porción fija de memoria real para las tablas, independientemente del número de procesos o páginas virtuales que se admitan. Como

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.

Estructura de una tabla de páginas:

Para leer una palabra de memoria necesitamos una traducción de didirección física. Como la tabla de páginas suele ser muy grande, no se puede almacenaren registros, por tanto sólo almacenamos la dirección de inicio de la tabla de páginas. Elnº de página de la dirección lógica se utiliza como índice en la tabla pacorrespondiente número de marco. Combinando éste con el desplazamiento de la dirección virtual, obtenemos la dirección física.

- En la mayoría de los sistemas der que la cantidad de memoria necesaria para almacenar las tablas de página sea

excesivamente grande, por lo que se suelen almacenar las tablas de página en memoria virtual, lo que conlleva a que la tabla de páginas esté también sujeta a paginación.

Cuando un proceso se está ejecutando, al menos una parte de la tabla de páginas está en memoria, incluyendo el elemento a la página actualmente en ejecución.

- Algunos procesadores usan un esquema ágina. En el primer nivel está la página directorio, y en el segundo nivel están los

elementos que cuelgan de la página directorio y apuntan a una tabla de página. Por ejemplo, si tenemos una página directorio de longitud Y, y un tamaño máximo de tabla de página de Z, un proceso puede estar constituido por Y · Z páginas. Normalme

itud de una tabla de páginas se restringe a una página.

- También se utilizan tablas de páginas invertidas . Con este método, la pación virtual correspondiente al número de página se mapea en una tabla hash, que

contiene un puntero a una tabla de páginas invertida, que contiene elementos de tabal de página. Con esta estructura, para cada página de memoria real tenemos un elemento en la tabla hash y en la tabla de páginas invertida, en vez de para cada pagina de

Tema 5 - Página 7

Page 48: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Tema 5 - Página 8

ctura de datos, no es necesario presuponerlo. A la estructura se le asigna su propio segmento, y el S.O. lo expandirá o reducirá según sea necesario.

as y recompilarlos independientenecesario volver a enlazar y cargar el conjunto entero de programas. Esto se consigue

más de una dirección virtual puede apuntar al mismo elemento de página de dispersión, se utiliza encadenamiento para solucionar este problema.

Buffer de traducción anticipada (TLB):

En principio, toda referencia a memoria virtual puede ocasionar dos accesos a memoria física: uno para captar el elemento de la tabla de páginas y otro para captar el dato. Para reducir el tiempo de los accesos a disco se utiliza TLB, que es una cache que contiene los elementos de la tabla de página a los que se ha accedido recientemente. Por el principio de localidad, la mayoría de referencias a memoria corresponderán a posiciones de las páginas recientemente usadas. El mecanismo de memoria virtual debe interactuar con el sistema de cache de memoria principal. Para traducir con TLB se han de seguir los siguientes pasos:

oincidencias con algún elemento de la tabla de

ra al procesador, si no, se busca la palabra en memoria

ME

Apara proporcionar un espacio de direcciones mayor, de forma conveniente para organizar los programas y los datos, para los privilegios y los atributos de protección con instru

segme programador, o el S.O. asignarán los rogramas y los datos a segmentos distintos.

e hacen mediante número de segmento más desplazamiento.

tamaño de una estru

Permite modificar los program mente sin que sea

usando varios segmentos.

1. Consultar TLB para comprobar cpáginas incluido en él.

2. Si es así, generar la dirección física, combinando el número de marco con el desplazamiento. Si no, se accede al elemento de la tabla de páginas para luego generar la dirección física.

3. Cuando tenemos la dirección física, consultamos la cache de memoria principal para ver si está presente el bloque que contiene la palabra.

4. Si está, se envía la palabprincipal y se actualiza la tabla de páginas.

MORIA VIRTUAL SEGMENTADA:

l contrario de la paginación, es visible para el programador. La segmentación sirve

cciones y datos.

La memoria se ve constituída por múltiples espacios de direcciones llamados ntos, que tienen tamaño variable. O bien el

p

Las referencias a memoria s

Las principales ventajas son:

- Simplifica la gestión de estructuras crecientes de datos. Si no se conoce a priori el

-

Page 49: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

- Se facilita la protección ya que un segmento se construye con la posibilidad de asignarle privilegios de acceso de forma adecuada.

loque de memoria que sea igual a la suma de los espacios de memoria libres, pero estos no los podemos usar ya que no son continuos.

ue se comp

l registro apuntará ahora co mentos. No tenemos que desplazar el offset y obtener la dirección.

Puede que necesitemos un b

MEMORIA VIRTUAL SEGMENTADA PAGINADA:

La memoria ahora estará formada por segmentos de diferentes tamaños qondrán a su vez de páginas,

que sí tendrán el mismo tamaño.

UNIDAD DE GESTIÓN DE MEMOR

Es la unidad que gestiona las

IA MMV:

tablas de páginas.

n un índice a la tabla de seg

e se encuentra la tabla de segmen

E

El registro base nos dice dond tos.

Tema 5 - Página 9

Page 50: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

TEMA 6.- UNIDAD DE ENTRADA Y SALIDA

Los periféricos de E / S se conectan a un módulo de E / S, que no sólo es un conector mecánico, sino que posee capacidad para permitir la comunicación entre el periférico y el bus del sistema y hace la función de interface.

Los periféricos no se conectan directamente al bus por diversos motivos:

Cada periférico tiene su propia forma de funcionar, y hacer que el procesador pueda interpretar el funcionamiento de cada periférico resulta casi imposible.

La velocidad de transferencia de un periférico es menor que la de la memoria o el procesador.

Los formatos y el tamaño de datos que utilizan los periféricos es distintos a los del procesador.

Las funciones básicas del módulo de E / S son:

Hacer de interfaz entre el procesador y memoria a través del bus del sistema.

Realizar una interfaz entre uno o más dispositivos periféricos mediante enlaces de datos.

Las principales funciones y requisitos de un módulo de E / S se agrupan en:

1. Control y temporización: Cuando un procesador se quiere comunicar con uno o más dispositivos depende de las necesidades de E / S, los recursos internos deben compartirse entre distintas actividades. Así, la función de E / S incluye ciertos requisitos de control y temporización, para coordinar el tráfico entre recursos internos y los dispositivos periféricos. Por ejemplo, los pasos a seguir para el control de la transferencia de datos de un dispositivo externo al procesador serían:

i. El procesador interroga al módulo de E / S para comprobar el estado del dispositivo.

ii. El módulo devuelve el estado del dispositivo.

iii. Si el dispositivo está operativo y preparado para transmitir, el procesador solicita la transferencia del dato mediante una orden al módulo de E / S.

iv. El módulo de E / S obtiene el dato del dispositivo y lo transfiere al procesador.

2. Comunicación con el procesador: La comunicación con el procesador implica:

Tema 6 - Página 1

Page 51: Estructura de Computadores 3

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:

El módulo de E / S se conecta al resto del computador por un conjunto de líneas, por ejemplo, por el bus del sistema. Los datos que se transfieren a / desde el módulo se almacenan temporalmente en uno o más registros de datos.

Puede haber uno o más registros de estado que proporcionen información del estado presente. Un registro de estado puede también funcionar como registro de control para recibir información de control del procesador. La lógica que hay en el módulo interactúa con el procesador a través de las líneas de control, que también usa el procesador para proporcionar órdenes al módulo de E / S, y algunas de ellas son usadas por el módulo para, por ejemplo, señales de arbitraje y de estado. El módulo ha de ser capaz de reconocer y generar las direcciones asociadas a los dispositivos que controla. Cada módulo de E / S tiene una única dirección o conjunto de direcciones, dependiendo de si controla a un único o a un conjunto de dispositivos.

Tema 6 - Página 2

Page 52: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

El módulo de E / S posee lógica específica para la interfaz con cada dispositivo que controla. El funcionamiento del módulo de E / S se basa en hacer que el procesador, al trabajar con dispositivos periféricos sólo tenga que preocuparse del tipo de orden y donde, no de cómo hacerlos ni de los tiempos que tardará.

Esquema de un periférico (Arquitectura):

Periférico (mínimo)

Formas de direccionamiento de periféricos:

Mapeado en memoria:

Existe un único espacio de direcciones para las posiciones de memoria y para los dispositivos de E / S. La CPU considera los registros de estado y de datos de los módulos de E/S como posiciones de memoria y utiliza las mismas instrucciones máquina para acceder a memoria y a los dispositivos de E / S. Se necesita una sola línea de lectura y una sola línea de escritura en el bus. Se puede utilizar un amplio repertorio de instrucciones, permitiendo una programación más eficiente. La principal desventaja es que usa parte del valioso espacio de memoria.

E / S por puertos:

Con esta forma de direccionamiento, el bus dispone de líneas de lectura y escritura en memoria junto con líneas para las órdenes de entrada y salida. En este caso, las líneas de órdenes especifican si la dirección se refiere a posición de memoria o a un dispositivo de E / S. Existe un rango completo de direcciones disponibles para ambos.

Así, los puertos de E / S sólo son accesibles mediante una orden específica de E / S, que activa las líneas de órdenes de E / S del bus. (IO/M ). Sólo existen pocas instrucciones de E/S.

FILOSOFÍA DE ENTRADA / SALIDA:

TRANSFERENCIA PROGRAMADA:

Los datos se intercambian entre el procesador y el módulo de E / S. El procesador ejecuta un programa, que controla directamente las operaciones de E / S, incluyendo:

Comprobación del estado del dispositivo de forma periódica porque el módulo no envía esa información.

Envío de una orden de lectura / escritura.

Transferencia del dato.

Tema 6 - Página 3

Page 53: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Cuando se envía una orden al módulo de E / S se tiene que esperar hasta que la operación de E / S concluya.

Veamos la transferencia del datos desde dos puntos de vista, primero desde el punto de vista de la CPU al módulo de E / S y luego desde el del módulo de E / S a la CPU.

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 CPU: Instrucciones de E / S:

Entre las instrucciones de E / S y las órdenes de E / S existe una gran correspondencia. La forma de la instrucción depende de la manera de direccionar los dispositivos externos.

Cada dispositivo externo tiene asociado un identificador único (dirección). Cada orden de E/S que envía el procesador contiene la dirección del dispositivo asociado. Por eso, cada módulo de E/S debe interpretar las líneas de dirección para determinar si la orden es para él.

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

Page 54: Estructura de Computadores 3

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.

Funcionamiento de las E/S mediante interrupciones:

Desde el punto de vista del módulo de E/S:

Para una entrada, el módulo de E/S recibe una señal READ del procesador. Entonces el módulo procede a leer el dato desde el periférico asociado. Una vez que el dato está en el registro de datos del módulo de E/S, éste envía una interrupción al procesador a través de la línea de control y espera hasta que el procesador solicite el dato. Cuando recibe la solicitud, el módulo sitúa el dato en el bus de datos y pasa a estar preparado para otra operación de E/S.

Desde el punto de vista del procesador:

El procesador envía una orden READ, entonces pasa a realizar otro trabajo. Al final de cada ciclo de instrucción, el procesador comprueba las interrupciones. Cuando se pide interrupción desde el módulo de E / S, el procesador guarda el contexto, (program counter y registros de CPU) del programa en curso y procesa la interrupción. Lee palabra del módulo, la almacena en memoria y recupera el contexto del programa que estaba ejecutando. La principal ventaja es que es más eficiente que la E / S programada. La mayor desventaja es que consume gran cantidad de tiempo de procesador, ya que cada palabra de datos que va desde memoria al módulo de E / S o viceversa debe pasar a través del procesador.

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

Page 55: Estructura de Computadores 3

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.

La rutina de gestión continúa procesando la interrupción, que incluye información de estado relativa a la operación de E / S o cualquier evento que causa la interrupción. También puede implicar el envío al dispositivo de E / S de órdenes o señales de reconocimiento.

Cuando el procesamiento de la interrupción termina, se restauran los valores de los registros almacenados en la pila.

El paso final es recuperar los valores de PSW y PC desde la pila, así la siguiente instrucción ejecutada pertenecerá al programa previamente interrumpido.

En la implementación de E / S mediante interrupciones existen varias cuestiones, como determinar el dispositivo que provoca la interrupción o si existen varias interrupciones, decidir a qué interrupción atender.

Para identificar el dispositivo existen varias técnicas:

Múltiples líneas de interrupción: Se proporcionan varias líneas de interrupción entre el procesador y los módulos de E / S, pero no resulta práctico dedicar muchas líneas a líneas de interrupción, y aunque se dediquen unas pocas líneas, habría que conectar varios módulos a una línea y habría que usar otra técnica en cada línea.

Consulta Software (Soft polling): Cuando se detecta una interrupción se bifurca a una rutina de servicio de interrupción que se encarga de consultar a cada módulo para determinar el módulo que ha provocado la interrupción. Si la consulta se realiza por una línea (TEST), se activa y se sitúa la dirección del módulo en las líneas de dirección y así el módulo responde positivamente si solicitó la interrupción.

Si cada módulo dispone de un registro de estado direccionable, el procesador lee el estado del registro de cada módulo para identificar al que solicitó la interrupción. Cuando se identifica el módulo, se bifurca para que el procesador ejecute una rutina de servicio específica para este dispositivo. La mayor desventaja es que consume mucho tiempo.

Conexión en cadena (Daisy Chain): Todos los módulos de E / S comparten una línea común para solicitar interrupciones. La línea de reconocimiento de interrupciones se

Tema 6 - Página 6

Page 56: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

conecta encadenando los módulos de E / S uno tras otro. Cuando el procesador recibe una interrupción, activa el reconocimiento de la interrupción, que se propaga por los módulos hasta alcanzar el que solicitó la interrupción. Éste responde colocando su dirección en las líneas de datos o algún tipo de identificador específico. Con este método evitamos ejecutar la rutina de servicio general al principio.

Arbitraje de bus: Con esta técnica, un módulo de E / S debe, en primer lugar de disponer del control del bus antes de poder activar la línea de petición de interrupción. Así, un sólo módulo puede activar la línea en un mismo instante de tiempo. Cuando el procesador detecta la interrupcón, responde mediante la línea de reconocimiento de interrupción y después, el módulo que solicitó la interrupción sitúa su dirección en las líneas de datos.

Con estas técnicas de identificación del módulo de E / S, también se proporcionan formas de asignar prioridades cuando más de un dispositivo solicita que se le sirva su interrupción.

Múltiples líneas de interrupción: el procesador selecciona la línea con más prioridad.

Consulta software: el orden en que se consultan los módulos determina la prioridad.

Daisy Chain: el orden en que se conectan los módulos determina la prioridad.

Arbitraje de bus: Se uitiliza la misma prioridad para los dispositivos de E / S que para cualquier otro dispositivo interno del computador.

CASO PARTICULAR DEL 8086:

El PIC se conectará a las líneas de interrupción y se encargará de resolver el problema de las interrupciones.

Este chip es un conjunto de registros los cuales se pueden leer, escribir o elegir diferentes procedimientos.

El PIC resolverá las peticiones por prioridad de orden del IRQ. Las instrucciones CLI, STI activarán o no el bit de interrupción.

El PIC quedará esperando la respuesta de la CPU que le llegará por el IntAck, que es el que colocará en el bus de datos y saltará a la rutina pertinente, saltando al vector de direcciones.

IRR: Registro en el que quedan apuntadas las peticiones de interrupción. Tiene un procedimiento de prioridad programables.

ISR: Registro donde queda contemplado si el 8086 está ejecutando una interrupción. También existe la posibilidad de que cuando se esté ejecutando una interrupción y otro dispositivo realiza una petición, a su

Tema 6 - Página 7

Page 57: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

vez interrumpirá la ejecución de la interrupción menos privilegiada.

Los periféricos reconocen la interrupción que se está ejecutando por el software. Todos estos casos son programables.

ACCESO DIRECTO A MEMORIA (DMA):

Se requiere cuando hay que transferir grandes volúmenes de datos. El DMA requiere un módulo adicional en el bus del sistema, el módulo de DMA, que es capaz de imitar al procesador, y también es capaz de recibir el control del sistema cedido por el procesador. Necesita dicho control para transferir datos a y desde memoria a través del bus del sistema. Para hacerlo, el módulo de DMA debe utilizar el bus sólo cuando el procesador no lo necesite, o forzar a éste a que suspenda temporalmente su funcionamiento, lo que se llama robo de ciclo.

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

Page 58: Estructura de Computadores 3

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:

El DRQA es la línea que avisa al periférico para decirle si su petición ha sido aceptada. Con la línea HOLD, el controlador de DMA le dice a la CPU que se va a realizar una transferencia y que no tiene que utilizar el bus.

La CPU puede hacer caso o no, y le responderá por la línea de HOLD ACKNOWLEDGE si le dejará o no el control del bus. Cuando el controlador de DMA desactiva la línea HOLD significará que le devuelve a la CPU el control del bus.

Para enganchar los periféricos a la memoria tenemos diversas Modalidades de direccionamiento: Tenemos que asignar direcciones a esos periféricos de E / S:

- Instrucciones de E / S no explícitas: Direccionamiento periférico (E / S) mapeado en memoria.

Tema 6 - Página 9

Page 59: Estructura de Computadores 3

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

Page 60: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

TEMA 7.- UNIDAD DE CONTROL

La ejecución de una instrucción implica la ejecución de una secuencia de pasos más pequeños, normalmente llamados ciclos. Los ciclos son: ciclo de captación (búsqueda), de acceso indirecto a memoria, de ejecución y de interrupción.

El ciclo se compone de una serie de operaciones más elementales, las microoperaciones. Una única microoperación implica, por lo general, transferencia entre registros, transferencia entre registros y el bus o sencillamente una operación de ALU.

La Unidad de Control de un procesador realiza dos tareas:

Hace que el procesador ejecute las operaciones en la secuencia correcta, determinada por el programa que se está ejecutando,

Genera las señales de control que provocan la ejecución de cada operación.

Las señales de control generadas por la UC causan la apertura y el cierre de ciertas puertas lógicas, lo que da como resultado una transferencia de datos hacia o desde los registros y una operación de la ALU.

Una técnica para construir una UC es la lógica cableada, en la cual, la UC es un circuito combinacional. Sus señales lógicas de entrada, gobernadas por la instrucción máquina en curso, se transforman en un conjunto de señales de control de salida.

Estructura interna de la CPU:

El bus A y B son buses internos a la CPU ya que sirven para conectar los elementos de la CPU.

Con dos buses tenemos más posibilidades de mover cosas simultáneamente:

MAR: Direcciones que podrán salir a fuera de la CPU. De él sale el bus de direcciones.

MDR: De él partirá el bus de datos.

Tendremos el registro acumulador para realizar las operaciones sobre él.

Con multiplexores haremos que el MAR obtenga conexión con un bus o con otro.

A través del MDR podríamos pasar datos del bus A al bus B y viceversa.

(*) Son líneas de selección de la operación que queremos realizar.

Tema 7 - Página 1

Page 61: Estructura de Computadores 3

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.

La ejecución de un programa consta de operaciones que involucran los elementos básicos del procesador y consisten en una secuencia de operaciones.

Clasificación de operaciones:

Transferir datos entre registros

Transferir datos de registro a interfaz externa (bus del sistema)

Transferir datos de interfaz externa a registros.

Realizar operaciones aritméticas o lógicas, usando registros para e / s.

CÓMO EJECUTAR UNA INSTRUCCIÓN:

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

Page 62: Estructura de Computadores 3

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. ; Inc PC READ

t3 : IR [MDR] SMDRB, BTOA, EIRA

CICLO INDIRECTO: Cuando ya se ha captado la instrucción, lo que toca ahora es captar los operandos fuente. Supongamos un formato de instrucción de una dirección, que permite direccionamiento directo e indirecto. Si la instrucción especifica una dirección indirecta, un ciclo indirecto ha de preceder al ciclo de ejecución.

Para un ciclo indirecto hay que hacer las siguientes microoperaciones:

t1 : MAR [IR[Dirección]]

t2 : MDR Mem

t3 : IR[Dirección] [MDR[Dirección]]

El campo de dirección en la instrucción se transfiere a MAR. Éste se usa después para captar la dirección del operando. Por último, el campo de dirección de IR se actualiza con el contenido de MBR para que contenga una dirección directa, en lugar de indirecta. IR tiene ahora el mismo estado que si no se hubiera usado direccionamiento indirecto y está listo para el ciclo de ejecución.

CICLO DE INTERRUPCIÓN: Cuando termina un ciclo de ejecución, se comprueba si ha ocurrido alguna interrupción habilitada. Si es así, tiene lugar un ciclo de interrupción.

t1 : MDR [PC]

t2 : MAR Direcc de salvaguarda

PC Dirección de la rutina

Tema 7 - Página 3

t3 : Mem [MDR]

Page 63: Estructura de Computadores 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.

Sólo nos centraremos en los ciclos de ejecución y de búsqueda.

Por ejemplo, los pasos a seguir para una instrucción como: INC AC son:

CB: SPCA, EMARA Enviamos la dirección del opcode de PC a MAR

READ Activamos la lectura a memoria

SMDRB, BTOA, EIRA El contenido de la dirección de opcode en memoria se guarda en MDR, y luego se envía al IR y termina la búsqueda.

CE: INC

XAC

SPCA, LOADA

INC

SAC, EPCB

XAC

Otro ejemplo, salto incondicional absoluto: JMP DIR

CB : (Igual en todos, por tanto, mirar el de arriba)

CE : XAC

SPCA, LOADA

INC

SAC, EMARB

READ

SMDRB, EPCB, XAC

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

Page 64: Estructura de Computadores 3

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.

Pondremos n tiempos que corresponderán con la instrucción más compicada que tengamos. Por tanto surge el problema de que el tiempo de ejecución varía según la microorden. Y como solución ponemos una nueva microorden que resetee el generador de tiempos, de este modo no tenemos que esperar todos los tiempos

Muchas de las -ordenes estarán condicionadas a ciertas componentes de los biestables de condición, como los flags.

Ej.: INC AC

SPCA, EMARAREADSMDRA, EIRAINCXACSPCB, BTOA, EACAINCSACB, EPCBXAC

CB

CE

T0T1T2T3T4T5T6T7T8

SPCA, EMARAREADSMDRA, EIRAINCXACSPCB, BTOA, EACAINCSACB, EPCBXAC

CB

CE

T0T1T2T3T4T5T6T7T8

Escribir la microorden del incremento : inc = T3 · IINC A + T6 · IINC A + .......

Escribir la microorden del intercambio entre AC y AC : XAC = T4 · IINC A + T8 · IINC A + .......

Ej.: ¿Qué es lo que harían estas instrucciones?

a)Salto incondicional

Cambia el PC al destino del salto

CB destino del salto (DIR)

PC MAR

READ

MDR IR

Tendríamos que acceder al operando incrementando el PC, para leer nuestro destino del salto.

PC AC llevamos PC para leer el destinoINCAC MARREADMDR PC llevamos el dato al PC

CE

PC AC llevamos PC para leer el destinoINCAC MARREADMDR PC llevamos el dato al PC

CE

b)Carga de un registro de memoria.

Tema 7 - Página 5

Page 65: Estructura de Computadores 3

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

c)Salto incondicional, pero existe la posibilidad de volver a la posición original, entonces habrá que conservar la dirección de origen.

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

Page 66: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

Podríamos tener un dispositivo que fuera accediendo secuencialmente a las -ordenes necesarias para realizar una instrucción.

La secuencia necesaria de -ordenes para realizar o lograr la ejecución de una instrucción se llama microprogramación.

Ésta sería la manera más sencilla de programar una UC, además tiene la posibilidad de hacerse variada, lo que no ocurre con lógica cableada, pues la memoria programada se puede alterar

Ej.: programación.

PC: donde va a estar contenida la dirección de la instrucción a ejecutar.

29: Número de bits que hacen falta para almacenar todas las -ordenes.

Ej: Programar la CPU para: Salto condicional al carry y relativo jc DIR_RELAT (no es dir absoluta, sino relativa al contenido de PC)

INIC: Tenemos en IR el opcode dee la instrucción, para ello, una instrucción previa ha activado el bit START y poniendose a 0 los 4 bits inferiores, lo que tendríamos son direcciones múltiplos de 16, pues se ha hecho así.

Sale la dir del PC y se selecciona en MEMORIA de CONTROL el opcode de la dirección seleccionada, lo que van ordenes saldran a la máquina y harán su función. Si no se activa ninguno de los 3 últimos bits del MUX se activa el 0 y la dirección del PC se produce un INC y se accede a la siguiente posición de memoria. En caso contrario dependiendo si las FLAG está n a 0 o a 1 el PC se incrementará o se cargará el PC en este último caso se producirá un cero de un salto que se produce dentro de un rango de 16 palabras de control.

Para hacer jc DIR_RELAT:

Si C = 0 buscamos la siguiente instrucción de forma secuencial.

Si no leemos DIR_RELAT, saltamos en memoria y leemos siguiente opcode.

Tema 7 - Página 7

Page 67: Estructura de Computadores 3

Delegación de Alumnos de InformátiEstructura y Tecnología de Computado

http://alu.etsii.u

ca res

ll.es

NOTA: Las lineas subrayadas y en cursiva corresponden al ciclo de búsqueda

C = 0: INC PC

INC PC

SPC, EMAR, READ

SMDR, EIR, START

C = 1: INC PC

SPC, EMAR, READ

SPC, LOADA

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.

Cuando se termina de ejecutar la instrucción debemos dejar preparado con el ciclo de búsqueda para la siguiente instrucción dejando preparado el PC.

Las necesidades de ejecutar casos condicionalmente los soluciona el MUX.

00 Carga 0 INC 1. Cambia de dirección de forma secuencial dentro de la -instrucción.

MUX

1 1 ZERO1 0 OVERFLOW0 1 CARRY0 0 0

S1 S0

MUX

1 1 ZERO1 0 OVERFLOW0 1 CARRY0 0 0

S1 S0 01 En lugar de incrementarse se cargan los 4 bits, que vienen del registro de instrucción pudiendo controlar la

siguiente instrucción o lo que esté puesto en los 4 bits.

El registro de -instrucciones contiene todas las -ordenes que se van a ejecutar.

Tema 7 - Página 8

Page 68: Estructura de Computadores 3

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.

CLASIFICACIÓN DE LAS INSTRUCCIONES

1)Podemos clasificar las -instrucciones en verticales y horizontales. El concepto de ser HORIZONTAL es que cada bit contiene una -orden. Exige palabras o instrucciones grandes, pues puede hacer muchas cosas en palalelo. Una operación sencilla puede tener aproximadamente 60 bits. En las VERTICALES tendremos campos codificados y un paralelismo restringido. Las ortas.

instrucciones serían más c

n la entrada podríamos colocar el número de registro al que voy a entrar. Cada uno

as máquinas nunca suelen horizontales, sino que contienen algu

icas o polifásicas: Una instrucción MONOFÁSICA atiende al esqu

están en la misma línea de memoria no siem

ntienen -ordenes se ejecutan en un m

NANOPROGRAMACIÓN

l de programación. En un primer nivel, podemos simplificar las instr

Ede los campos necesitarán una decodificación.

ser completamente

Lnos campos codificados.

2)Instrucciones monofásema que tenemos hecho anteriormente.

En las POLIFÁSICAS las -ordenes quepre 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 coismo instante de tiempo.

Es un segundo niveucciones pero quizás no sea suficiente según el juego de instrucciones.

Tema 7 - Página 9

Page 69: Estructura de Computadores 3

Delegación de Alumnos de Informática Estructura y Tecnología de Computadores

http://alu.etsii.ull.es

La n-programación es mucho más lenta porque hay que acceder a la memoria en dos niveles.

Tema 7 - Página 10