Вы находитесь на странице: 1из 13

NOMBRE DEL PROYECTO:

INVESTIGACION UNIDAD 4

MATERIA:

LENGUAJES Y AUTOMATAS II

CARRERA:

INGENIERIA EN SISTEMAS COMPUTACIONALES

PRESENTA:

DARIO ALFONSO LOPEZ ESTRADA

ASESOR:

ING. MIGUEL ANGEL GALLEGOS DE LA CRUZ

Linares, N.L. 27 de mayo de 2019


INTRODUCCION
En el presente trabajo o investigación se tratará sobre los temas como arquitecturas para
procesador Z80, procesador Intel en general, arquitecturas CISC y RISC y por último se estará
hablando sobre los algoritmos computacionales para la administración de memoria.

Arquitecturas para el procesador Z80


El Z80 fue el primero de la tercera generación, sin embargo, es uno de los microprocesadores de 8 bits
más empleado hasta nuestros días, se encuentran versiones mejores del mismo tales como Z80A,
Z80B, Z80H, éstas se caracterizan por trabajar a frecuencias superiores de 4 Mcps, 6.5 Mcps y 8 Mcps
respectivamente, las características fundamentales del Z80 son:

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.

3. Alto grado de programabilidad.

4. Reloj único.

5. Fuente de voltaje única de +5 Volts.

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 Z80 es una versión apreciablemente mejorada tanto en circuiteria como en características de


programación del antiguo modelo INTEL 8080, el Z80 resulta ser un microprocesador más rápido y
sencillo en el desarrollo de sistemas ya que solo usa una fuente de alimentación de +5 Volts, contiene
íntegramente todo el conjunto de instrucciones del 8080, lo cual le permite ejecutar todos los programas
escritos para el CPU 8080, contiene el Z80 una expansión adicional de 80 instrucciones de ahí se
deriva su nombre, su repertorio suma un total de 156 instrucciones.

El microprocesador Z80 contiene las siguientes unidades funcionales;

1).- Unidad aritmética y lógica

2).- El contador de programa

3).- El apuntador del stack

4).- Registros de propósito general

5).- Registros de índice

6).- Registros de interrupciones

7).- Registro de banderas

8).- Registro para refrescar memorias dinámicas


Estructura de la base de Intel (Arquitectura 8086 y 8088).
 Unidad de interfaz del bus y unidad de ejecución

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.

En la figura de la derecha, la Unidad de Ejecución se encuentra en la parte de abajo y la Unidad de


Interfaz del Bus está en la parte superior. Las dos están interconectadas mediante un bus interno.

*Diagrama de bloque de los microprocesadores Intel 8086 y 8088.

1 Bloque de registros de propósito general.

2 Bloque de registros de segmento y registro IP.

3 Sumador de direcciones.
4 Bus de direcciones interno.

5 Cola de instrucciones (4 bytes para el 8088 y 6 bytes para el 8086).

6 Unidad de control (muy simplificada).

7 Interfaz del bus.

8 Bus de datos interno.

9 Unidad aritmético lógica (ALU).

10, 11, 12 Bus de direcciones, datos y control externos.

 Registros de Propósito General

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.

Los bits de las banderas son las siguientes:

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.

DF (dirección): Controla la selección de incremento o decremento de los registros SI y DI en las


operaciones con cadenas de caracteres (1=decremento automático; 0=incremento). La bandera DF se
controla con las instrucciones STD y CLD.

IF (interrupción): Controla el disparo de las interrupciones (1=habilita las interrupciones; 0=deshabilita


las interrupciones). La interrupción no enmascarable es la única que no puede ser bloqueada por esta
bandera. El estado de la bandera IF se controla con las instrucciones STI y CLI.
TF (trampa): Permite la operación del procesador en modo de depuración (paso a paso)

SF (signo): Contiene el signo resultante de una operación aritmética (0=positivo; 1=negativo).

ZF (cero): Indica el resultado de una operación aritmética o de comparación (0=resultado diferente de


cero; 1=resultado igual a cero).

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:

 Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.


 Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en


la ejecución de instrucciones y reducir los accesos a memoria.
Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC,
DEC Alpha, MIPS, ARM, SPARC... son ejemplos de algunos de ellos.

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:

1. Incrementar el tamaño del conjunto de registros.


2. Mayor velocidad en la ejecución de instrucciones.
3. Implementar medidas para aumentar el paralelismo interno.
4. Añadir cachés enormes.
5. Añadir otras funcionalidades, como E/S y relojes para minicontroladores.
6. Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables.
7. No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo
de energía o de tamaño limitado.

Las características que generalmente son encontradas en los diseños RISC son:

1. Codificación uniforme de instrucciones, lo que permite una de codificación más rápida.


2. Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en
cualquier contexto y así simplificar el diseño del compilador.
3. Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de
instrucciones aritméticas simples.
4. Los tipos de datos soportados en el hardware no se encuentran en una máquina RISC.
5. Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard,
donde los conjuntos de instrucciones y los conjuntos de datos están conceptualmente
separados.
Arquitectura CISC
En la arquitectura computacional, CISC (Complex Instruction Set Computer) es un modelo de
arquitectura de computadora.

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.

Entre las ventajas de CISC destacan las siguientes:

1. Reduce la dificultad de crear compiladores.


2. Permite reducir el costo total del sistema.
3. Reduce los costos de creación de sftware.
4. Mejora la compactación de código.
5. Facilita la depuración de errores.

Ejemplo de microprocesadores basados en la tecnología CISC:

1. Intel 8086, 8088, 80286, 80386, 80486.


2. Motorola 68000, 68010, 68020, 68030, 6840.
Ejemplo de microprocesadores basados en la tecnología CISC:

1. MIPS, Millions Instruction Per Second.


2. PA-RISC, Hewlett Packard.
3. SPARC, Scalable Processor Architecture, Sun Microsystems.
4. POWER PC, Apple, Motorola e IBM.

Algoritmos computacionales para la administración de memoria


 Algoritmo aleatorio

Este algoritmo consiste simplemente en reemplazar aleatoriamente cualquier página de la memoria


principal, sin hacer ningún esfuerzo de predicción.

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.

 Algoritmo de reemplazo de páginas óptimo

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.

Desafortunadamente, el algoritmo de reemplazo óptimo es fácil en teoría, pero prácticamente imposible


de implementar, dado que requiere conocer a futuro las necesidades del sistema.

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.

 Algoritmo de reemplazo de páginas según el uso no tan reciente

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:

Clase 0: La página no ha sido referenciada, ni modificada.

Clase 1: La página no ha sido referenciada, pero ha sido modificada.

Clase 2: La página ha sido referenciada, pero no ha sido modificada.

Clase 3: La página ha sido referenciada y también modificada.

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.

 Algoritmo de reemplazo "Primero en entrar, primero en salir" (FIFO)

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.

No es estrictamente necesario registrar el momento de entrada de la página a memoria, sino que se


puede crear una cola en la que se van agregando las páginas conforme van llegando a la memoria.
Cuando se debe eliminar una página, se selecciona la que está al frente de la lista (o sea, la más
antigua de la lista). Cuando llega una página nueva, se inserta en la parte trasera de la cola. En la figura
9 se representa el funcionamiento de éste algoritmo.

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.

 Algoritmo de reemplazo de páginas de la segunda oportunidad

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.

Si la página tiene un uso muy frecuente, el bit de referencia se mantendría constantemente en 1 y la


página no sería reemplazada.

 Algoritmo de reemplazo de páginas del reloj

Modificando el algoritmo de la segunda oportunidad (que a su vez es una modificación de FIFO)


obtenemos el algoritmo aumentado de la segunda oportunidad o algoritmo del reloj. Usamos la misma
clasificación vista en el algoritmo de uso no tan reciente.

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.

 Algoritmo de reemplazo de páginas "la de menor uso reciente" (LRU)

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

Camacho, R. (17 de Mayo de 2012). Blogspot. Obtenido de


http://rcmcomputointegrado.blogspot.com/2012/03/arquitectura-risc-y-cisc.html

Frrewha.com. (s.f.). Obtenido de http://sistel.xp3.biz/microprocesadores/tm_arquitectura_z80.html

Ramírez, R. T. (14 de Ocutubre de 2009). Monografias.com. Obtenido de


https://www.monografias.com/trabajos10/gesmem/gesmem2.shtml

Sotero, C. (23 de Noviembre de 2016). Blogspot.com. Obtenido de http://carlossotero.blogspot.com/

Suárez, J. G. (s.f.). galia.mx. Obtenido de


http://galia.fc.uaslp.mx/~cantocar/microprocesadores/TUTORIALES/EL_MICRO_Z80/ARQUITECTURA_DEL_MI
CROPROCE.HTM

Вам также может понравиться