Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Conceptos de Arquitectura de Computadoras (resumido de William Stallings)




Enviado por Juan Ramallo



Partes: 1, 2

  1. Repertorio de instrucciones,
    características y funciones
  2. Interrupciones P66 P221 P446
    P470
  3. Entrada/Salida P207
  4. Segmentación de instrucciones
    P449
  5. Posibles soluciones a
    atascos
  6. RISC
  7. Memoria
    P104
  8. Buses
    del sistema P75
  9. Procesadores superescalares
    P528
  10. Procesamiento paralelo P669

Clase 1

Repertorio de
instrucciones, características y
funciones

Elementos de las instrucciones:
código de operación, referencias a operandos origen
y destino y referencia a la siguiente
instrucción.

Las pilas se emplean para
gestionar las llamadas y retornos de procedimientos.

Las instrucciones se representan
por una secuencia de bits, la cual está dividida en
campos: codop de 4 bits y dos referencias a operandos de 6 bits
cada una.

Tipos de instrucciones:
procesamiento de datos, ya sean aritméticas o
lógicas; almacenamiento de datos, instrucciones de
memoria; transferencia de datos, instrucciones de E/S; de control
de flujo, instrucciones de comprobación y
bifurcación.

Tipos de datos: direcciones,
números, caracteres o datos lógicos.

Pilas: Apéndice 10A.
P396

Una pila es un conjunto ordenado de
elementos, en el que solo uno de ellos es accesible en un
instante dado. Cabecera de pila, el punto de acceso. Longitud de
pila, es el número de elementos en la pila y puede variar.
LIFO. Se usa para gestionar llamadas y retornos a/de subrutinas,
también para la evaluación de expresiones. Las
pilas usuales tienen un puntero de pila, base de pila,
límite de la pila.

Modos de direccionamiento y formatos
P408

Cómo especificar los operandos y las
operaciones de las instrucciones. Dos aspectos, primero
cómo especificar la dirección de un operando y
segundo cómo se organizan los bits de una
instrucción para definir las direcciones de los operandos
y la operación que realiza dicha instrucción. Modos
de direccionamiento más comunes:

  • Inmediato, el operando
    está presente en la propia instrucción, no
    requiere acceso a memoria por lo cual ahorra un ciclo en esa
    etapa pero el tamaño del número es restringido
    a la longitud del campo de direcciones.

  • Directo, se manda la
    dirección efectiva del operando, solo requiere una
    referencia a memoria y no necesita ningún
    cálculo especial, está limitado porque
    proporciona un espacio de direcciones restringido

  • Indirecto, requiere de dos
    referencias a memoria para captar el operando: una para
    captar su dirección y otra para obtener su valor; para
    una longitud de palabra de N bits, se dispone ahora de un
    espacio de direcciones de 2^N.

  • Registro, el campo de
    direcciones referencia un registro, solo es necesario un
    campo pequeño de direcciones en la instrucción,
    no se requieren referencias a memoria, el tiempo de acceso a
    un registro interno del procesador es mucho menor que para la
    memoria principal.

  • Indirecto con registro, el
    campo de direcciones de la instrucción referencia a
    una posición de una palabra completa (un registro) que
    contiene la dirección.

  • Con desplazamiento, requiere
    que las instrucciones tengan dos campos de direcciones, al
    menos unos de los cuales explícito, el valor de uno de
    los campos se utiliza directamente y el otro campo hace
    referencia implícita definida por el código de
    operación, se refiere a un registro cuyo contenido se
    suma al otro campo para generar la dirección
    efectiva

  • Direccionamiento relativo, se
    usa implícitamente como registro referenciado al
    contador de programa PC, ahorra bits de direcciones en la
    instrucción.

  • Direccionamiento con registro
    base
    , el registro referenciado contiene una
    dirección de memoria y el campo de dirección
    contiene un desplazamiento desde dicha
    dirección.

  • Indexado, el campo de
    dirección referencia una dirección de memoria
    principal y el registro referenciado contiene un
    desplazamiento positivo desde esa dirección, sirve
    para ejecutar operaciones iterativas, con un registro
    índice, tras cada operación, el registro
    índice se va modificando. Ya que se considera que el
    campo de direcciones es una dirección de memoria,
    generalmente contiene más bits que un campo de
    direcciones de una instrucción comparable que emplee
    direccionamiento con registro base.

  • Pila, es un bloque de
    posiciones reservado, los elementos se añaden en la
    cabecera, tiene asociado un puntero cuyo valor es la
    dirección de la cabecera; alternativamente los dos
    elementos de la cabecera de la pila pueden residir en
    registros del procesador, en cuyo caso el puntero de pila
    hace referencia al tercer elemento de la pila. El puntero de
    pila se mantiene en un registro. Así las referencias a
    posiciones de la pila en memoria son de hecho direcciones de
    acceso indirecto con registro. Es un modo de direccionamiento
    implícito, las instrucciones de máquina no
    necesitan incluir una referencia a memoria sino que operan
    implícitamente con la cabecera de la pila.

Formatos de instrucciones
P420

Define la descripción en bits de una
instrucción en términos de las distintas partes o
campos que la componen. Debe incluir un código de
operación (codop) e, implícita o
explícitamente, cero o más operandos. Cada operando
explícito se referencia utilizando uno de los modos de
direccionamiento descritos anteriormente. El formato debe indicar
el modo de direccionamiento para cada operando, implícita
o explícitamente. En la mayoría de los repertorios
de instrucciones se emplean más de un formato de
instrucción.

  • Longitud de
    instrucción
    , se ve afectada por el tamaño
    de la memoria, su organización, la estructura de
    buses, la complejidad del procesador y la velocidad del
    procesador. Se desea disponer de un repertorio de
    instrucciones de máquina potente y también
    ahorrar espacio. Una instrucción de 64 bits ocupa el
    doble de espacio que una de 32 bits pero probablemente no es
    el doble de útil. Así mismo, las instrucciones
    de 16 bits pueden captarse el doble de rápido que las
    de 32 bits, pero probablemente no pueden ejecutarse el doble
    de rápido.

  • Asignación de los
    bits
    :

  • Número de modos de
    direccionamiento
    los modos de direccionamiento son
    indicados de manera explícita usando uno o más
    bits de modo, aunque a veces puede indicarse de manera
    implícita.

  • Número de operandos,
    cada dirección de operando podría requerir su
    propio indicador de modo

  • Registros frente a memoria,
    una máquina debe disponer registros para traer los
    datos al procesador a fin de procesarlos. Es aconsejable
    disponer de 8 a 32 registros visibles para el
    usuario.

  • Número de conjuntos de
    registros,
    conjunto de registros de uso general, 8 a 16
    registros, pueden emplearse para guardar datos y para
    almacenar direcciones de direccionamiento con desplazamiento.
    Hoy en día se usan dos o más conjuntos (bancos)
    especializados, así se necesitarían menos bits
    para identificar un registro (banco de menor tamaño) y
    el codop determina de forma implícita qué
    conjunto de registros se está referenciando
    (bancos).

  • Rango de direcciones, para
    referencias a memoria, el rango de direcciones que puede
    utilizarse está relacionado con el número de
    bits de direccionamiento. Debido a esto raramente se emplea
    el direccionamiento directo. En direccionamiento con
    desplazamiento, el rango se amplía al definido por la
    longitud del registro de direcciones.

  • Granularidad de las
    direcciones,
    una dirección puede referenciar una
    palabra o un byte, según elija el diseñador; se
    quiere manipular caracteres por byte, esto requiere, para un
    tamaño de memoria dado, más bits de
    direcciones. (byte menor que palabra)

Organización de los registros
P440

Dentro del procesador hay un conjunto de
registros que funciona como un nivel de memoria por encima de la
memoria principal y de la caché en la jerarquía,
son de dos tipos:

  • Registros visibles por el
    usuario
    , permiten al programador de lenguaje de
    máquina minimizar las referencias a memoria usando
    registro. Es aquél que puede ser referenciado por
    medio del lenguaje de máquina que ejecuta el
    procesador. Pueden ser de:

  • Uso general, cualquier
    registro de uso general puede contener el operando para
    cualquier código de operación, también
    pueden usarse para funciones de direccionamiento.

  • Datos, pueden usarse
    únicamente para contener datos y no se pueden emplear
    en el cálculo de la dirección de un
    operando.

  • Direcciones, dedicados a un
    modo de direccionamiento particular:

  • Punteros de segmento, contiene
    la dirección de la base del segmento, múltiples
    registros.

  • Registros índice, para
    direccionamiento indexado y pueden ser
    autoindexados.

  • Puntero de pila, si existe la
    pila, hay un registro dedicado que apunta a la cabecera de la
    pila, permitiendo un direccionamiento implícito (push,
    pop)

  • Códigos de
    condición,
    indicadores o "flags", son bits
    fijados por el hardware del procesador como resultado de
    alguna operación. Pueden ser leídos por el
    programador pero no alterados. Muchos procesadores basados en
    IA-64 y MIPS, no usan códigos de condición en
    absoluto.

  • Registros de control y de
    estado
    , utilizados por la unidad de control para
    controlar el funcionamiento del procesador y por programas
    privilegiados del sistema operativo para controlar la
    ejecución de programas.

  • Son esenciales cuatro registros para la
    ejecución de una instrucción, se usan para la
    transferencia de datos entre el procesador y la
    memoria:

  • Contador de programa (PC): contiene la
    dirección de la instrucción a
    captar.

  • Registro de instrucción (IR):
    contiene la instrucción captada más
    recientemente.

  • Registro de dirección de memoria
    (MAR): contiene la dirección de una posición de
    memoria.

  • Registro intermedio de memoria (MBR):
    contiene la palabra de datos a escribir en memoria o la
    palabra más leída recientemente.

  • Conjunto de registros conocido como
    palabra de estado del programa:

  • Signo

  • Cero

  • Acarreo

  • Igual

  • Desbordamiento

  • Interrupciones
    habilitadas/inhabilitadas

  • Supervisor

Ciclo de captación
P602

Hace que una instrucción sea captada
de la memoria, usa cuatro registros:

  • Registro de dirección de
    memoria, conectado a las líneas de dirección
    del bus del sistema, especifica la dirección de
    memoria de una operación de lectura o
    escritura

  • Registro intermedio de memoria,
    conectado a las líneas de datos del bus del sistema,
    contiene el valor a almacenar en memoria o el último
    valor leído de memoria

  • Contador de programa, contiene la
    dirección de la siguiente instrucción a
    captar

  • Registro de instrucción,
    contiene la última instrucción
    captada

El ciclo consta de tres pasos:

  • Transferir el contenido de PC a
    MAR

  • Transferir el contenido de la
    posición de memoria especificada por MAR a MBR.
    Incrementar, en la longitud de la instrucción, el
    contenido del PC

  • Transferir el contenido de MBR a
    IR

Ciclo indirecto P604

El siguiente paso es captar los operando
fuente. Si la instrucción especifica una dirección
indirecta, un ciclo indirecto ha de preceder al ciclo de
ejecución. El campo de dirección en la
instrucción se transfiere a MAR, se usa después
para captar la dirección del operando, el campo de
dirección IR se actualiza con el contenido de MBR de modo
que tenga una dirección directa en lugar de una
indirecta.

Ciclo de interrupción
P604

Consiste en:

  • 1. El contenido de PC se
    transfiere a MBR, se guarda para el retorno de la
    interrupción

  • 2. MAR se carga con la
    dirección en la cual va a guardarse el contenido de
    PC

  • 3. PC se carga con la
    dirección de comienzo de la rutina de procesamiento de
    la interrupción

  • 4. Almacenar MBR, que contiene el
    antiguo valor de PC, en la memoria.

Ciclo de ejecución
P605

En una máquina con N
códigos de operación diferentes, pueden ocurrir
N secuencias diferentes de micro-operaciones en este
ciclo. Sumar de una dirección de memoria a un registro
puede implicar que en un principio IR contiene la
instrucción suma, la parte de dirección de IR se
carga en MAR, se lee la posición de memoria referenciada,
la ALU suma los contenidos del registro y MBR.

Ciclo de instrucción P446 P61
P606

Registro de dos bits llamado código
de ciclo de instrucción, designa el estado del procesador
en términos de en qué parte del ciclo se encuentra
este:

  • 00 Captación

  • 01 Indirecto

  • 10 Ejecución

  • 11 Interrupción

Incluye los siguientes sub-ciclos:
(más el indirecto)

  • Captación, llevar la
    siguiente instrucción a la memoria del
    procesador

  • Ejecución, interpretar
    el código de operación y llevar a cabo la
    operación indicada

  • Interrupción, si las
    interrupciones están habilitadas y ha ocurrido una
    interrupción, guardar el estado del proceso actual y
    atender la interrupción.

El ciclo de instrucción es el
procesamiento que requiere una instrucción. Al comienzo de
cada ciclo de instrucción, la CPU capta una
instrucción de memoria. Ésta se almacena en un
registro de la CPU conocido como registro de instrucción
(IR). La CPU interpreta la instrucción y lleva a cabo la
acción requerida. Pueden ser de cuatro tipos:

  • Procesador-Memoria: transferencia de
    datos entre ambos

  • Procesador-E/S: transferencia de datos
    entre la CPU y un módulo E/S

  • Procesamiento de datos: realiza alguna
    operación aritmética o lógica con los
    datos

  • Control: una instrucción
    especifica que la secuencia de ejecución se altere
    (saltos)

La ejecución de una
instrucción puede implicar una combinación de estas
acciones. Para un ciclo de instrucción dado, existen
varios estados y algunos pueden no darse y otros pueden visitarse
más de una vez:

  • Cálculo de la dirección
    de la instrucción

  • Captación de
    instrucción

  • Decodificación de la
    operación indicada en la instrucción

  • Cálculo de la dirección
    del operando

  • Captación de operando

  • Operación con los
    datos

  • Almacenamiento de operando

El ciclo indirecto se dice al sub-ciclo de
instrucción extra que se considera por captar las
direcciones indirectas de una instrucción.

Clase 2

Interrupciones
P66 P221 P446 P470

Las interrupciones proporcionan una forma
de mejorar la eficiencia del procesador. Éste es un
mecanismo mediante el que otros módulos (E/S, memoria)
pueden interrumpir el procesamiento normal de la CPU. Clases de
interrupciones:

  • Programa, generadas por alguna
    condición producida por algún resultado de
    alguna operación realizada, como el desbordamiento
    aritmético, división por cero, intento de
    ejecutar una instrucción máquina inexistente e
    intento de acceder fuera del espacio de memoria
    permitido.

  • Temporización,
    generadas por un temporizador interno al procesador, esto
    permite al sistema operativo realizar ciertas funciones de
    manera regular.

  • E/S, generadas por un
    controlador E/S, para indicar finalización de
    operaciones con condiciones de error o no.

  • Fallo de hardware, generadas
    por un fallo, como la falta de potencia de
    alimentación o un error de paridad en la
    memoria.

(*)Con el uso de interrupciones, el
procesador puede dedicarse a ejecutar otras instrucciones
mientras una operación de E/S está en curso. Dentro
del ciclo de interrupción, el procesador comprueba si se
ha generado alguna interrupción, indicada por la presencia
de una señal de interrupción. Si hay alguna
interrupción pendiente, el procesador hace:

  • Suspende la ejecución del
    programa en curso y guarda su contexto

  • Carga el contador de programa con la
    dirección de comienzo de una rutina de gestión
    de interrupción

Luego prosigue con el ciclo de
captación y accede a la primera instrucción del
programa de gestión de interrupción (forma parte
del sistema operativo). Con interrupciones múltiples se
pueden hacer dos cosas:

  • Desactivar las interrupciones mientras
    se está procesando una interrupción, el
    procesador puede y debe ignorar la señal de
    petición de interrupción. Luego de que termine
    de gestionar esta interrupción y antes de proseguir
    con el código, el procesador comprueba si se han
    producido interrupciones adicionales . Las interrupciones se
    manejan en un orden secuencial estricto. No tiene en cuenta
    la prioridad relativa ni las solicitudes con un tiempo
    crítico.

  • Definir prioridades para las
    interrupciones y permitir que una interrupción de
    prioridad más alta pueda interrumpir a un gestor de
    interrupción de prioridad menor. (Relacionado al ciclo
    de instrucción*)

Las interrupciones por software son
generalmente usadas para hacer llamadas a funciones del SO, no
requieren conocer la dirección de la rutina en tiempo de
ejecución. Afectan al procesador de la misma manera que
las interrupciones por hardware. Las interrupciones por hardware
son generadas por dispositivos E/S, son eventos
asincrónicos o no planeados, no están relacionadas
con el proceso en ejecución en ese momento, son conocidas
como pedidos de interrupción.

Ciclo de interrupción:

  • 1. Se comprueba si se ha
    solicitado alguna interrupción

  • 2. Si no hay señal se capta
    la siguiente instrucción

  • 3.  Si hay algún pedido de
    interrupción pendiente:

  • a.  Se suspende la
    ejecución del programa en curso

  • b.  Guarda su contexto
    (próxima instrucción a ejecutar y el estado del
    procesador)

  • c. Carga el PC con la
    dirección de comienzo de la rutina de gestión
    de la interrupción correspondiente

  • d. Finalizada la rutina de
    gestión, el procesador retoma la ejecución del
    programa del usuario en el punto de
    interrupción.

En el Pentium existen interrupciones, que
se generan por una señal del hardware y puede ocurrir
cuando sea, y excepciones, que se generan desde el software y son
provocadas por la ejecución de una
instrucción.

  • Interrupciones enmascarables, las
    recibe el procesador por el INTR y el procesador no reconoce
    una interrupción enmascarable a no ser que el
    indicador de habilitación de interrupciones
    esté a uno.

  • Interrupciones no enmascarables, las
    recibe el procesador por NMI, no se puede evitar el
    reconocimiento de estas interrupciones

  • Excepciones detectadas por el
    procesador, cuando el procesador encuentra un error mientras
    intenta ejecutar una instrucción

  • Excepciones programadas, hay
    instrucciones que generan excepciones

Tabla de vectores de interrupción,
cada tipo de interrupción tiene asignado un número,
que se usa para indexar en la tabla de vectores de
interrupción, cada vector de interrupción de 32
bits es la dirección de la rutina de servicio de
interrupción del numero de interrupción
correspondiente.

Clase 3

Entrada/Salida
P207

La arquitectura de E/S del computador es su
interfaz con el exterior.

Dispositivos externos, se conectan al
computador mediante un enlace a un módulo de E/S,
intercambian datos entre el exterior y el computador, son
denominados periféricos (teclado, monitor, impresora,
mouse, etc). La conexión con el módulo de E/S se
realiza a través de señales de control, estado y
datos. Los datos se intercambian en forma de un conjunto de bits
que son enviados a, o recibidos desde, el módulo de E/S.
Las señales de control determinan la función que
debe realizar el dispositivo (entrada, lectura, salida,
escritura, indicar el estado o algún control particular
del dispositivo). Los datos son el conjunto de bits a ser
enviados o recibidos del módulo de E/S. Las señales
de estado indican el estado del dispositivo (listo o no listo,
preparado para transferir datos o no).

Las principales funciones y requisitos de
un módulo de E/S son:

  • Control y
    temporización

  • Comunicación con el
    procesador

  • Comunicación con los
    dispositivos

  • Almacenamiento temporal de
    datos

  • Detección de errores

Son posibles tres técnicas para las
operaciones de E/S, las dos primeras técnicas implican al
procesador a ser responsable de extraer los datos de la memoria
principal en una salida y de almacenar los datos en la memoria
principal en una entrada; la tercer técnica se conoce como
acceso directo a memoria (el módulo E/S y la memoria
principal intercambian datos directamente sin el
procesador):

  • E/S programada, los datos se
    intercambian entre el procesador y el módulo de E/S.
    El procesador ejecuta un programa que controla la
    operación de E/S, incluyendo la comprobación
    del estado del dispositivo, el envío de una orden de
    lectura o escritura y la transferencia del dato. El
    procesador una vez que envió la orden al módulo
    de E/S debe esperar hasta que la operación de E/S
    concluya pero si el procesador es más rápido
    que el módulo de E/S, el procesador desperdicia este
    tiempo. Hay cuatro tipos de ordenes de E/S que puede recibir
    un módulo cuando es direccionado por el
    procesador:

  • Control, para activar el
    periférico e indicarle qué hacer

  • Test, para comprobar condiciones de
    estado

  • Lectura, hace que el módulo de
    E/S capte un dato de un periférico y lo sitúe
    en un buffer interno

  • Escritura, hace que el módulo de
    E/S capte un dato del bus de datos y lo transmita al
    periférico

Dos modos de direccionamiento cuando el
procesador, la memoria principal y las E/S comparten un bus
común:

  • Asignadas en memoria, existe un
    único espacio de direcciones para las posiciones de
    memoria y los dispositivos de E/S

  • Aislada, el espacio de direcciones de
    E/S está aislado del de memoria, dispone de
    líneas de lectura y escritura en memoria junto con
    líneas para órdenes de entrada y
    salida

  • E/S mediante interrupciones,
    el procesador luego de enviar una orden de E/S a un
    módulo continua realizando algún trabajo
    útil. Cuando un dispositivo E/S termina una
    operación se produce:

  • 1. El dispositivo envía una
    señal de interrupción al procesador

  • 2. El procesador termina la
    ejecución de la instrucción en curso antes de
    responder la interrupción

  • 3. El procesador comprueba si hay
    interrupciones, determina que hay una, y envía una
    señal de reconocimiento al dispositivo que la
    originó. El dispositivo desactiva su
    señal

  • 4. El procesador guarda la
    información necesaria para continuar el programa en
    curso en el punto en que se interrumpió. Se guarda el
    estado del procesador que se almacena en el registro Palabra
    de Estado del Programa, se guarda también la
    posición de la siguiente instrucción a ejecutar
    (PC)

  • 5. El procesador carga el contador
    de programa con la posición de inicio del programa de
    gestión de la interrupción solicitada.
    Continúa con el ciclo de instrucción
    siguiente.

  • 6. Se deben guardar los contenidos
    de los registros del procesador puesto que estos puede ser
    utilizados por la rutina de interrupción, se suele
    usar una pila.

  • 7. La rutina de gestión
    puede continuar procesando la interrupción

  • 8. Una vez terminado el
    procesamiento de la interrupción, se recuperan los
    valores de los registros y se los vuelve a almacenar en sus
    registros correspondientes.

  • 9. Paso final recuperar los
    valores de la Palabra de Estado del Programa y del contador
    de programa.

Problemas: habrá múltiples
módulos de E/S, cómo determina el procesador
qué dispositivo ha provocado la interrupción y si
hay varias interrupciones cómo decidir cuál
atender; existen cuatro técnicas:

  • Múltiples líneas de
    interrupción
    entre el procesador y los
    módulos de E/S, no es práctico dedicar
    más de unas pocas líneas del procesador a ser
    líneas de interrupción, y como algunas van a
    estar conectadas a varios módulos vuelve a ocurrir el
    problema.

  • Consulta de software, cuando
    se detecta una interrupción se produce una
    bifurcación a una rutina de servicio de
    interrupción que se encarga de consultar a cada
    módulo de E/S para determinar el módulo que ha
    provocado la interrupción. El procesador lee el estado
    de un registro de estado direccionable de cada módulo
    de E/S para identificar quién solicitó la
    interrupción. Una vez identificado se ejecuta la
    rutina de servicio específica para ese dispositivo.
    Una desventaja es el tiempo que consume.

  • Conexión en cadena de los
    módulos de E/S
    , consulta de hardware; todos los
    módulos de E/S comparten una línea común
    para solicitar interrupciones, la línea se conecta
    encadenando los módulos uno tras otro, cuando el
    pedido de interrupción es recibido se activa el
    reconocimiento de interrupción, siendo una
    señal que se propaga a través de la secuencia
    de módulos hasta que alcanza un módulo que
    solicitó la interrupción.

  • Interrupción
    vectorizada
    , el módulo que solicitó la
    interrupción responde a la señal propagada
    colocando una palabra en las líneas de datos, esta
    palabra se denomina vector y es la dirección del
    módulo de E/S. El procesador utiliza el vector como un
    puntero a la rutina de servicio de dispositivo apropiada,
    evitándose así de ejecutar una rutina de
    servicio general. Con el arbitraje de bus, que es
    otra técnica vectorizada, un módulo E/S debe
    disponer del control del bus antes de pedir
    interrupción, así sólo un módulo
    puede activar la línea en un instante.

Con varias líneas de
interrupción, el procesador simplemente selecciona la
línea con más prioridad. Con la consulta de
software, el orden en el que se consultan los módulos
determinan su prioridad. El orden de los módulos en la
conexión en cadena determina su prioridad. El arbitraje de
bus puede emplear un esquema de prioridad.

El Intel 8086 tiene sólo una
línea de petición de interrupción (INTReq) y
por lo tanto una sola de confirmación (INTAck), se utiliza
un árbitro o gestor de interrupciones externo (PIC), este
chip tiene ocho líneas de interrupción por lo tanto
podrá manejar ocho módulos de E/S; es útil
tener una interfaz programable de periféricos (PIO), es un
módulo de E/S de propósito general con veinticuatro
líneas de E/S programables.

  • Acceso directo a memoria
    (DMA
    ): inconvenientes entre las dos técnicas
    anteriores son que la velocidad de transferencia de E/S
    está limitada por la velocidad del procesador y que el
    procesador debe dedicarse a la gestión de las
    transferencias de E/S, cuando hay que transferir grandes
    volúmenes de datos se requiere una técnica
    más eficiente, el DMA. El DMA requiere un
    módulo adicional en el bus del sistema, éste es
    capaz de imitar al procesador y recibir el control del
    sistema cedido por el procesador, necesita el control para
    transferir datos a, y desde, memoria a través del bus
    del sistema. El DMA usa el bus sólo cuando el
    procesador no lo necesita y lo suelta sólo cuando
    termine de transferir los datos (modo ráfaga) lo
    cuál puede degradar el funcionamiento del procesador,
    o debe forzar al procesador a que suspenda su funcionamiento
    para transferir una sola palabra y luego devolver el uso del
    bus, robándole así un ciclo de bus al
    procesador (modo robo de ciclo), se transfiere más
    lento pero sin degradar al procesador.

Canales de E/S, pueden ejecutar
instrucciones de E/S, poseen control completo sobre las
operaciones de E/S, la CPU no ejecuta instrucciones de E/S. Las
instrucciones se almacenan en memoria principal para ser
ejecutadas por un procesador de uso específico contenido
en el canal de E/S. Tipos de canales:

  • Canal selector, controla
    varios dispositivos de velocidad elevada y transfiere datos a
    uno de esos, en instantes dados; el canal selecciona un
    dispositivo y efectúa la transferencia; los
    dispositivos son manejados por un controlador; el canal ocupa
    el lugar de la CPU para controlar estos controladores de
    E/S

  • Canal multiplexor, puede
    manejar la E/S de varios dispositivos al mismo tiempo; para
    dispositivos de velocidad reducida, un multiplexor de byte
    acepta o transmite caracteres tan rápido como es
    posible a varios dispositivos; para dispositivos de velocidad
    elevada, un multiplexor de bloque entrelaza bloques de datos
    de los distintos dispositivos.

Clase 4

Segmentación de instrucciones
P449

Es una forma efectiva de organizar el
hardware de la CPU para realizar más de una
operación al mismo tiempo, en un extremo acepta nuevas
entradas antes de que otras entradas aceptadas con anterioridad
aparezcan como salidas en el otro extremo. Esto consiste en
descomponer el proceso de ejecución de las instrucciones
en fases o etapas que permitan una ejecución
simultánea

Con un cauce de varias etapas se supone que
las etapas tendrán casi igual duración; no siempre
cada instrucción recorre todas las etapas del cauce; se
supone que todas las etapas pueden funcionar en paralelo,
conflictos de acceso a memoria; las etapas del cauce no tienen
todas la misma duración, habrá cierta espera en
algunas etapas; el salto condicional puede invalidar varias
captaciones de instrucciones; la llegada de una
interrupción es otro evento impredecible. Situaciones que
impiden la continua ejecución en el cauce:

  • Atascos estructurales,
    provocado por conflictos en los recursos, solución es
    un ciclo o ciclos de parada

  • Atascos por dependencia de
    datos
    , ocurren cuando dos instrucciones se comunican por
    medio de un dato; RAW, una instrucción genera un dato
    que lee otra posterior; WAW, una instrucción escribe
    un dato después que otra posterior, se da si las
    instrucciones se adelantan unas a otras; WAR, una
    instrucción modifica un valor antes que una
    instrucción anterior lo lea, por las etapas no se da
    en todos los cauces

  • Atascos por dependencia de
    control
    , ocurren cuando la ejecución de una
    instrucción depende de cómo se ejecuta otra;
    una instrucción que modifica el valor del PC no lo ha
    hecho cuando se tiene que comenzar la siguiente

La instrucción de salto condicional
es el principal obstáculo, tratamientos:

  • Flujos múltiples,
    duplica las partes iniciales del cauce y deja que este capte
    las dos instrucciones utilizando los dos caminos; hay
    retardos debido a la competencia por el acceso a los
    registros y a la memoria

  • Pre-captar el destino del
    salto
    , se pre-capta la instrucción destino del
    salto, además de la siguiente a la de salto. Se guarda
    hasta ejecutar el salto, si se produce el salto ya
    habrá sido pre-captado.

  • Buffer de bucles, es una
    memoria pequeña de gran velocidad gestionada por la
    etapa de captación de instrucción del cauce,
    contiene secuencialmente las n instrucciones
    captadas más recientemente. Si se va a producir un
    salto el hardware comprueba primeramente si el destino del
    salto está en el buffer. Tiene tres
    utilidades:

  • Con el uso de pre-captación, el
    buffer contendrá instrucciones que secuencialmente
    están después de la dirección de donde
    se capta la instrucción actual, estas instrucciones
    estarán disponibles sin necesitar el tiempo de acceso
    a memoria habitual

  • IF-THEN-ELSE, el destino ya
    estará en el buffer si son unas pocas posiciones
    más allá de la dirección de la
    instrucción de salto

  • Si el buffer es lo suficientemente
    grande como para guardar todas las instrucciones de un bucle,
    estas instrucciones solo se van a captar de la memoria la
    primera vez de la iteración

  • Predicción de
    saltos

  • Predecir que nunca se salta

  • Predecir que siempre se
    salta

  • Predecir según el código
    de operación

  • Conmutador saltar/no saltar

  • Tabla de historia de saltos

Las tres primeras son estáticas, las
dos últimas dependen de la historia de la
ejecución. A cada instrucción de salto pueden
asociarse uno o más bits que reflejen su historia
reciente, estos son consultados a modo de conmutador saltar/no
saltar que dirige al procesador a tomar una decisión. La
tabla de historia de saltos es una pequeña memoria
caché asociada a la etapa de captación de
instrucción del cauce, consta de la dirección de
una instrucción de salto, un determinado numero de bits de
historia que guardan el estado de uso de esa instrucción,
e información sobre la instrucción
destino.

  • Salto retardado, las
    instrucciones de salto tienen lugar después de lo
    deseado, se reordenan automáticamente las
    instrucciones del programa

El incremento potencial de la
segmentación del cauce es proporcional al número de
etapas del cauce. Incrementa la productividad, pero no reduce el
tiempo de ejecución de la instrucción.

Clase 5

Posibles
soluciones a atascos

Soluciones a riesgos de datos:

  • Técnica hardware,
    conocida como adelantamiento, consiste en pasar directamente
    el resultado obtenido con una instrucción a las
    instrucciones que lo necesitan como operando

  • Técnica software, evita
    los riesgos reordenando las instrucciones del código
    sin afectar los resultados, máxima separación
    de instrucciones con dependencia RAW, realizada por el
    compilador, instrucciones "nop", r

(* Resto del tema con respecto a saltos es
mencionado anteriormente)

Clase 6

RISC

Principales avances desde el nacimiento del
computador:

  • Concepto de familia, separa la
    arquitectura de una máquina de su
    implementación

  • Unidad de control micro-programada,
    propuesta por Wilkes en 1951, facilita la tarea de
    diseñar e implementar la unidad de control y da
    soporte al concepto de familia

  • Memoria caché, su
    introducción en la jerarquía de memoria
    mejoró las prestaciones de manera
    espectacular

  • Partes: 1, 2

Página siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter