Академический Документы
Профессиональный Документы
Культура Документы
INVESTIGACION UNIDAD 4
MATERIA:
LENGUAJES Y AUTOMATAS II
CARRERA:
PRESENTA:
ASESOR:
1. El transporte de señales se realiza sobre tres buses, el bus de direcciones, el bus de datos, así como
el bus de control.
2. Régimen de interrupción uniforme, con la posibilidad de encadenar las prioridades de los circuitos
periféricos.
4. Reloj único.
Un sistema con Z80 se completa con el empleo de memorias estandard de lectura y memorias estáticas
o dinámicas de lectura y escritura, además pertenecen al sistema, puertos de entrada y salida paralelo,
interfaces de comunicación serie, sistemas contadores temporizadores y circuitos de acceso directo a
memoria.
El funcionamiento del sistema consiste en que las instrucciones del microprocesador, que están en la
memoria ROM, se ejecutan en una forma secuencial de operación, la fuente de datos es, la propia CPU,
los periféricos o las memorias, la transferencia interna de datos es a través del CPU, exceptuando la
transferencia de datos en el proceso de acceso directo a memoria.
El 8086 y el 8088 tienen internamente dos componentes, la Unidad de Interfaz del Bus y la Unidad de
ejecución (Bus Interface Unit (BIU) y Execution Unit (EU)).
La Unidad de Ejecución procesa las instrucciones del CPU. Está conformada por los registros
generales, los registros índice y apuntadores, los flags, la unidad aritmético lógica, y la lógica de control
que maneja todo el proceso para ejecutar las instrucciones.
La Unidad de Interfaz del Bus maneja la lectura y escritura desde y hacia la memoria y los puertos de
entrada/salida. Está conformada por los registros de segmento, una cola de 4 bytes para instrucciones
en el 8088 y de 6 en el 8086, y lógica para controlar los buses externos del microprocesador.
3 Sumador de direcciones.
4 Bus de direcciones interno.
Los registros de propósito general son el AX, BX, CX, y DX, de 16 bits. Cada uno de ellos se divide en
dos registros de 8 bits, llamados AH y AL, BH y BL, CH y CL, y, DH y DL, H significando High (alto) y L
significando Low (bajo), indicando la parte alta o la parte baja del registro correspondiente de 16 bits
(ver esquema). Un programa podía usar tanto los registros de 16 bits como los registros de 8 bits.
Aparte del uso general de los registros para hacer cálculos aritméticos y lógicos, existen instrucciones
que usan estos registros con un uso particular especializado, como se indica a continuación:
Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican
entrada/salida, multiplicación y división (estas dos últimas en conjunto con el registro DX).
Registro BX: El registro BX es el registro base, y es el único registro de propósito general que puede
ser un índice para direccionamiento indexado.
Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para
controlar el número de veces que un ciclo se repite o un valor para corrimiento de bits.
Registro DX: El registro DX es el registro de datos. En algunas operaciones se indica mediante este
registro el número de puerto de entrada/salida, y en las operaciones de multiplicación y división de 16
bits se utiliza junto con el acumulador AX.
Registros Índice
Los registros SI y DI están disponibles para direccionamiento indexado y para operaciones de cadenas
de caracteres.
Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas de
caracteres. El SI está asociado con el segmento DS.
Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de
caracteres. El DI está asociado con el segmento ES.
Registros Apuntadores
Los registros SP (apuntador de pila) y BP (apuntador base) están asociados con el registro SS y
permiten al sistema acceder a datos en el segmento de la pila.
Registro SP: El apuntador de pila de 16 bits está asociado con el segmento SS y proporciona un valor
de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila. El sistema
maneja de manera automática este registro, aunque el programa puede hacer ciertas manipulaciones
con él.
Registro BP: El apuntador base de 16 bits facilita la referencia de parámetros dentro de la pila.
Registros de Banderas
Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la máquina y el
resultado del procesamiento. Muchas instrucciones aritméticas y de comparación cambian el estado de
las banderas y apoyándose en ellas se pueden tomar decisiones para determinar la acción
subsecuente.
La tabla contiene 16 posiciones (de 0 a 15), que son los 16 bits del registro de banderas, numeradas de
derecha a izquierda. La posición 0 la encontraremos a la derecha y la posición 15 a la izquierda.
OF (overflow, desbordamiento): Indica desbordamiento del bit de mayor orden después de una
operación aritmética de números con signo (1=existe overflow; 0=no existe overflow). Para operaciones
sin signo, no se toma en cuenta esta bandera.
AF (acarreo auxiliar): Contiene el acarreo del bit 3. Esta bandera se prueba con las instrucciones DAA y
DAS para ajustar el valor de AL después de una suma o resta BCD.
PF (paridad): Indica si el número de bits 1, del byte menos significativos de una operación, es par
(0=número de bits 1 es impar; 1=número de bits 1 es par).
CF (acarreo): Contiene el acarreo del bit de mayor orden después de una operación aritmética; también
almacena el contenido del último bit en una operación de desplazamiento o de rotación.
Arquitectura RISC
En la arquitectura computacional, RISC (del inglés Reduced Instruction Set Computer) es un tipo de
microprocesador con las siguientes características fundamentales:
RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de
instrucciones pequeñas y simples que toman menor tiempo para ejecutarse.
El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC
en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a
instrucciones más simples basadas en RISC para uso interno antes de su ejecución.
Características:
En pocas palabras esto significa que, para cualquier nivel de desempeño dado, un chip RISC
típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores
una flexibilidad considerable; así pueden, por ejemplo:
Las características que generalmente son encontradas en los diseños RISC son:
Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio
y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en
contraposición a la arquitectura RISC.
Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la
mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas
instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente
microinstrucciones.
Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de
los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la
mayoría de las computadoras personales actuales.
Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos de reloj.
Es el algoritmo más sencillo dado que no requiere tener ninguna información, sin embargo, por no hacer
uso de dicha información sobre el comportamiento del proceso, no puede lograr un buen desempeño.
Este algoritmo debe de tener el menor índice de fallos de página de todos los algoritmos. En teoría, este
algoritmo debe de reemplazar la página que no va a ser usada por el periodo más largo de tiempo.
Tal algoritmo existe y ha sido llamado OPT o MIN, pero se usa únicamente para estudios de
comparaciones. Por ejemplo, puede resultar muy útil saber que, aunque algún nuevo algoritmo no sea
óptimo, está entre el 12.3% del óptimo y entre el 4.7% en promedio.
Este algoritmo hace uso de los dos bits de estado que están asociados a cada página. Estos bits son:
R, el cual se activa cuando se hace referencia (lectura / escritura) a la página asociada; y M, que se
activa cuando la página asociada es modificada (escritura). Estos bits deben de ser actualizado cada
vez que se haga referencia a la memoria, por esto es de suma importancia que sean activados por el
hardware. Una vez activado el bit, permanece en ese estado hasta que el sistema operativo, mediante
software, modifica su estado.
Estos bits pueden ser utilizados para desarrollar un algoritmo de reemplazo que cuando inicie el
proceso, el sistema operativo asigne un valor de 0 a ambos bits en todas las páginas. En cada
interrupción de reloj, limpie el bit R para distinguir cuáles páginas tuvieron referencia y cuáles no.
Cuando ocurre un fallo de página, el sistema operativo revisa ambos bits en todas las páginas y las
clasifica de la siguiente manera:
Una vez obtenida la clasificación, elimina una página de manera aleatoria de la primera clase no vacía
con el número más pequeño. Esto porque para el algoritmo es mejor eliminar una página modificada sin
referencias en al menos un intervalo de reloj, que una página en blanco de uso frecuente.
A pesar de que este algoritmo no es el óptimo, es fácil de implementar y de comprender y con mucha
frecuencia es el más adecuado.
El algoritmo más sencillo para remplazo de páginas es el FIFO (First In – First Out). Este algoritmo
asocia a cada página el momento en que ésta fue traída a memoria. Cuando una página debe ser
reemplazada se selecciona a la más antigua.
Al igual que el algoritmo aleatorio, este algoritmo es fácil de comprender y de programar. Sin embargo,
su desempeño no siempre es del todo bueno. La página reemplazada puede ser un módulo de
inicialización que fue usado hace mucho tiempo y ya no se tiene necesidad de él. Por otro lado, puede
contener una variable de uso muy frecuente que fue inicializada de manera temprana y está en uso
constante.
Este algoritmo es una modificación del FIFO. El algoritmo hace uso del bit de referencia de la página.
Cuando una página ha sido seleccionada para reemplazo, se revisa el bit de referencia. Si tiene valor
de 0, se procede a reemplazar la página. Si, por el contrario, el bit de referencia es 1 se le da a la
página una segunda oportunidad.
Cuando esto sucede, se le cambia el bit de referencia a 0 y se actualiza su tiempo de llegada al tiempo
actual para que la página se colocada al final de la cola. De esta manera, la página espera todo un ciclo
completo de páginas para ser entonces reemplazada.
Cuando se presenta un fallo de página, el algoritmo revisa la página a la que está apuntando la
manecilla. Si el bit de referencia es 0, la página es reemplazada con la nueva y la manecilla avanza una
posición. Si el bit es 1, entonces se limpia (cambia a 0) y la manecilla avanza a la siguiente página y así
sucesivamente hasta encontrar una con bit 0.
Este algoritmo es una buena aproximación al óptimo y se basa en al observación de que las páginas de
uso frecuente en las últimas instrucciones se utilizan con cierta probabilidad en las siguientes. De la
misma manera, es probable que las páginas que no hayan sido utilizadas durante mucho tiempo
permanezcan sin uso por bastante tiempo. Implementando el algoritmo con esta base, al ocurrir un fallo
de página, se elimina la página que no haya sido utilizada durante el tiempo más grande. De ahí su
denominación: menor uso reciente (LRU - Least Recent Use).
A diferencia de los algoritmos anteriores, el LRU tiene un mejor rendimiento en cuanto al tiempo de
aprovechamiento del CPU y del uso de la memoria. Sin embargo, el problema con este algoritmo es que
su implementación es muy cara, ya que requiere de una asistencia considerable de hardware. Otro
problema es el de determinar un orden para los marcos definido por el tiempo de menor uso. Para éste
último hay dos posibles implementaciones:
Contadores: En el caso más sencillo, se asocia cada entrada tabla-página un campo de tiempo-de-uso
y se le agrega al CPU un reloj lógico o contador. Este reloj es incrementado en cada referencia de
memoria. Siempre que se hace referencia a una página, el contenido del registro del reloj es copiado al
campo de tiempo-de-uso en la tabla de páginas para esa página. De esta forma, siempre se dispone del
"tiempo" de la última referencia a cada página. La página que se reemplaza es la del menor valor de
tiempo. Este esquema requiere de una búsqueda en toda la tabla de páginas para encontrar la página
LRU, y una escritura en memoria al campo de tiempo-de-uso en la tabla de páginas por cada acceso a
memoria. Los tiempos también se deben de mantener cuando las tablas de páginas son alteradas
(debido a organización del CPU). Se debe considerar la posibilidad de sobrecarga en el reloj.
Pilas: Otra aproximación para implementar el reemplazo LRU es la de tener una pila con los números
de páginas. Siempre que se hace referencia a una página, se quita de la pila y se pone en la parte
superior. De esta manera, la parte superior de la pila es la página de uso más reciente y la de abajo es
la LRU, tal como se muestra en la figura 12.
Conclusión:
Hoy en día, los programas cada vez más grandes y complejos demandan mayor velocidad en el
procesamiento de información, lo que implica la búsqueda de microprocesadores más rápidos y
eficientes.
Bibliografía
Anonimo. (13 de Noviembre de 2013). Blogspot.com. Obtenido de http://gaferz.blogspot.com/2013/11/tipos-de-
optimizacion.html