Arquitectura Interna de Los Microprocesadores [01]

38
1 ARQUITECTURA INTERNA DE LOS MICROPROCESADORES

description

una vision de la arquitectura en los microprocesadores

Transcript of Arquitectura Interna de Los Microprocesadores [01]

1

ARQUITECTURA INTERNA DE LOS

MICROPROCESADORES

2

Introducción

Un Computador es un sistema secuencial síncrono complejo.

Usa valores lógicos “1” y “0” que se corresponden con niveles de tensión TTL o CMOS.

Para analizar sistemas complejos se usan dos modelos: • Top-down: empieza en nivel superior y se

descompone en módulos de jerarquía inferior. • Bottom-up: empieza nivel inferior y se construye

hacia arriba.

3

Una posible clasificación botton-up sería: • Nivel de componente: leyes de la física (P-N). • Nivel electrónico: R, L, C, transistores, diodos, etc. • Nivel lógico: puertas lógicas y biestables. • Nivel RTL (Nivel de Transferencia de Registros):

Registros, módulos combinacionales y secuenciales.

• Nivel PMS (Processor Memory Switch): Buses, memorias y procesadores.

4

Elementos básicos de un sistema basado en uP

5

a. Arquitectura Von Neumann Las instrucciones y los datos comparten un solo

sistema de memoria.

Modelos Clásicos de Arquitecturas

6

b. Arquitectura Harvard Memoria de instrucciones y datos son

independientes, cada una con sus buses, propiciando el paralelismo.

Permite la adecuación del tamaño de las palabras y los buses a los requerimientos de las instrucciones y de los datos.

7

c. Arquitectura Multiusuario Integra el nuevo concepto DMA o “Direct Access

Memory” (Acceso directo a memoria). De forma habitual se trabaja bajo esta arquitectura

en sistemas monoproceso y multitarea (multiplexación en tiempo).

Bajo costo total de implementación del sistema aunque con fuerte inversion en el computador central que debe precisar de un potente rendimiento.

No debe confundirse el concepto de multiusuario con el de multiproceso.

8

9

d. Arquitectura Multiproceso Se diferencia de la arquitectura multiusuario en que

no se asigna tiempo a los usuarios del sistema, sino a los procesos que éstos realizan.

Esta arquitectura puede adoptar los estados, de ejecución (en uso), espera (para pasar al estado de ejecución), cancelado (detenido por la propia máquina o por el usuario durante el proceso de ejecución) o finalizado (terminado una vez que haya sido ejecutado).

Requiere un aumento cosiderable de memoria que eleva su costo de implemetación.

10

11

e. Arquitectura Basada en Memoria Virtual Utiliza un dispositvo de almacenamiento masivo de

información como si de memoria se tratase. Es bastante común este modo de trabajo en

sistemas operativos como Windows que calcula (basándose en el espacio libre del disco duro del usuario, la memoria y otros parámetros de rendimiento) cuál es el tamaño idóneo de disco duro para establecerlo como soporte de memoria (*.swp).

Si se diminuye el tamaño de este archivo disminuye las prestaciones del sistema; pero si se aumenta, no se aprovecha el espacio sobredimensionado.

12

13

f. Arquitectura LAN / HOST Se basa en la interconexión de máquinas entre sí en

las que se puede incluir o no un ordenador principal (denominado servidor o “HOST”).

Esta arquitectura abarata la instalación, ya que permite la compartición de recursos por parte de todas la máquinas sin tener que recurrir a soluciones específicas por cada ordenador.

Este tipo de arquitectura facilita el aprovechamiento de los sistemas y permite un mayor control de los usuarios y de la información manejada a través de la red.

14

15

g. Otras técnicas o tendencias Las nuevas necesidades rendimiento en los

ordenadores han obligado a la busqueda de alternativas a los modelos y arquitecturas clásicas. Algunas de estas son: • Máquinas RISC (Reduced Instruction Set Code)

Conjunto de códigos de instrucciones reducidas. • Máquinas CISC (Complex Instruction Set Code)

Conjunto de códigos de instrucciones complejas. • Máquinas SISC (Specific Instruction Set Code)

Conjunto de códigos de instrucciones específicas.

16

Paralelismo interno que queda embebido en la arquitectura del computador, basándose en la segmentación (“pipeline”) de funciones.

Paralelismo explícito, accesible al usuario ya que será él mismo quien se encargue de su explotación. Según Flynn: • SISD (Single Instruction Single Data):

Arquitectura de instrucción simple trabajando sobre dato simple.

• SIMD (Single Instruction Multiple Data): Arquitectura de múltiples flujos de datos por sólo uno de instrucciones.

17

• MISD (Multiple Instruction Single Data): Arquitectura inversa a SIMD, múltiples flujos de instrucciones y uno de datos.

• MIMD (Multiple Instruction Multiple Data): Arquitectura que soporta el multiproceso, múltiples flujos de instrucciones y datos.

La segmentación hace aumentar el rendimiento de los computadores, aunque en el fondo se sigue la misma estrategia de busqueda/ejecución secuencial.

18

Funcionamiento de las Unidades Internas del Microprocesador Funciones básicas de los sistemas computacionales Procesamiento de datos. Almacenamiento de datos. Transferencia de datos. Para llevar a cabo estas funciones existen las siguientes unidades:

19

Unidad Central de Procesos (CPU)

Controla el flujo de datos, los procesa, y gobierna el secuenciamiento de las acciones en todo el sistema.

El sistema, desde que se le alimenta, empieza a ejecutar instrucciones y no se detiene hasta que se apaga.

Las instrucciones forman programas mediante los cuales se realiza una determinada acción.

Estos programas no sólo son los del usuario, sino también los de gestión del sistema completo.

Para ello cuenta internamente con una unidad de control, la ALU y una serie de registros.

20

Unidad de Control

Se encarga de leer de memoria las instrucciones que ejecutará y de secuenciar el acceso a los datos y las operaciones a realizar por la unidad de proceso (Los datos e instrucciones están en memoria).

Una instrucción consta de un código de operación y un operando (datos para ejecutar la instrucción o la indicación de donde encontrarlos) que para algunas instrucciones no son necesarios o utilizados.

Una vez accedida la instrucción, la UC la almacena en el Registro de Instrucciones (IR), interpreta su código y ejecuta la secuencia de acciones adecuadas (decodificación de la instrucción).

21

Entonces, la ejecución de una instrucción pasa por las fases de búsqueda y decodificación de la instrucción, búsqueda de los operandos y finalmente la ejecución. Este proceso se le suele abreviar dividiéndolo en dos: el ciclo de búsqueda y el ciclo de instrucción o ejecución.

En el primero, la UC genera las señales adecuadas para acceder a la memoria y leer la instrucción. Este ciclo es el mismo para cualquier instrucción.

En el segundo, se ejecuta la instrucción. A diferencia del anterior, este ciclo depende de la instrucción.

22

23

Diseño de la unidad de control

Se puede considerar la UC como un circuito digital que a partir de las entradas genera una secuencia de señales de salida que se corresponden con las señales de control.

Existen dos formas fundamentales de abordar el diseño de una Unidad de Control: Unidad de Control Cableada y Unidad de Control Microprogramada.

24

REGISTRO DE INSTRUCCIONES

DECODIFICADOR DE INSTRUCCIONES

CIRCUITOS DE SECUENCIA

CIRCUITOS DE TIEMPO R

MANDO DIRECCIÓN

COMANDOSA TODAS LAS UNIDADES

DESDE UNIDAD DE MEMORIAO DESDE CONSOLA

D E S D ECONSOLA

25

1. Unidad de Control Cableada Utiliza lógica combinacional (lógica cableada equivalente

a puertas lógicas), para implementar las funciones lógica de las señales de control.

Las principales características de una Unidad de Control cableada se pueden resumir en: • Elevado costo; pero se reduce con el uso de VHDL. • Rediseño prácticamente completo, se optimiza

usando CAD. • Presenta la ventaja de la rapidez, se optimizan los

retrasos producidos en las compuertas. • Se le prefiere cuando se requiere una gran velocidad

o el diseño es muy sencillo.

26

27

2. Unidad de Control Microprogramada Contiene una memoria, llamada memoria de

control, que almacena todos los valores (microinstrucciones) que deben tomar las señales de control en cada periodo de reloj dentro de la ejecución de una instrucción.

Para realizar una instrucción completa la UC debe ejecutar varias microinstrucciones. El conjunto de todas estas forman una instrucción máquina que se le denomina microprograma.

El formato de las microinstrucciones indica cuántos bits forman una microinstrucción y qué información contiene cada uno de ellos.

28

29

30

Hay variedad en el formato de las microinstrucciones debido a la influencia de los elementos que componen la CPU. Por ejemplo, el número de señales de control que es necesario activar para cada microinstrucción limita el número mínimo de bits que forman una microinstrucción, que a su vez limita la longitud de palabra de la memoria de control que se utiliza para almacenarlas.

La microprogramación horizontal es un formato en el cual cada bit de la microinstrucción se corresponde con una señal de control, por lo que su gran desventaja es que requiere una gran memoria para implementarlo.

31

1. Para ejecutar esta microinstrucción, se debe activar todas las líneas de control correspondientes al bit "1" y desactivar todas las líneas de control correspondientes al bit "0".

2. Si la condición indicada por los bits de condición es falsa, se ejecuta la próxima instrucción en la secuencia.

3. Si la condición indicada por los bits de condición es verdadera, la próxima microinstrucción a ser ejecutada es la indicada en el campo de dirección.

32

La microprogramación vertical es un formato en el cual se agrupa las señales de control en campos. El valor de cada una de las señales de control pertenecientes a un campo se obtiene al decodificar el valor correspóndiente contenido en la microinstrucción. Este formato tiene la ventaja de reducir el número de bits de la microinstrucción, y por tanto de la memoria de control y, la mayor desventaja que presenta es la decodificación necesaria de los valores contenidos en la microinstrucción. El formato es más vertical cuanto mayor sea el grado de codificación es decir cuando las señales de control estén todas agrupadas en un número reducido de campos.

33

34

El secuenciamiento de microinstrucciones determina cual es la próxima microinstrucción que se va a leer, puede presentar tres casos: • La siguiente microinstrucción está contenida en la

siguiente posición de memoria. • La siguiente microinstrucción pertenece al

comienzo de una nueva instrucción. • Es necesario un salto a una posición de memoria

sin determinar.

35

Hay diseños donde el secuenciamiento de microinstrucciones se realiza sólo mediante los dos primeros casos. En este caso todas la microinstrucciones deben estar ordenadas una a continuación de la otra en la memoria de control y también el IR debe indicar la posición de la primera microinstrucción del microprograma correspondiente. Este tipo de secuenciamiento se denomina implícito, y presenta la limitación de que no es posible implementar microprogramas con saltos internos condicionales.

36

El secuenciamiento explícito, por el contrario, permite los tres casos y, por tanto, como a priori no se conoce la dirección, es necesario codificar en el campo de secuenciamiento la dirección de la próxima microinstrucción, con esto ya se permiten saltos condicionales dentro de un microprograma, pero se aumenta la longitud de palabra del formato de las microinstrucciones y por tanto de la memoria de control.

37

Ventajas y desventajas de la microprogramación La microprogramación presenta desventajas cuando

el procesador que se desea diseñar es muy simple (pocas instrucciones y poca circuitería interna) o cuando se requiera prestaciones elevadas.

La microprogramación se basa en el hecho de que las microinstrucciones están almacenadas en una memoria, lo que presenta las siguientes ventajas: • La UC microprogramada es más fácil de

reprogramar o rediseñar. • Se pueden incluir, sin grandes dificultades

hardware, instrucciones complejas que tengan muchos periodos de ejecución.

38

• Permite implementar a este nivel algunas instrucciones complejas que son muy usadas por el computador.

• Permite implementar procesadores con diversos juegos de instrucciones. Esto permite copiar en un computador un juego de instrucciones de otro computador para ejecutar sus programas (emulación).

• Permite hacer rutinas de diagnóstico del computador mucho mejores que las hechas en código máquina.