Tema 5 – Microprocesadores. Estructura. Tipos. Comunicación con el exterior.

Tema 5 – Microprocesadores. Estructura. Tipos. Comunicación con el exterior.

ÍNDICE

1. INTRODUCCIÓN.

2. EL MICROPROCESADOR. ESTRUCTURA Y TIPOS.

3. GESTIÓN DE LA MEMORIA INTERNA.

3.1. Direccionamiento de la memoria.

4. COMUNICACIÓN CON EL EXTERIOR: BUSES

5. EJEMPLOS DE MICROPROCESADORES

6. BIBLIOGRAFÍA

1. INTRODUCCIÓN

El microprocesador nació mucho después de que lo hiciera el ordenador, ya que los procesadores de los primeros ordenadores eran enormes unidades de cálculo que componían casi todo el sistema, y un verdadero microprocesador es aquel que integra varios elementos de cómputo en un microespacio o chip. Los ordenadores primitivos tenían graves inconvenientes ya que se estropeaban con frecuencia y consumían mucha energía debido a que su principal componente era la válvula de vacío. A partir de 1956, con la invención del transistor, se empiezan a fabricar ordenadores más pequeños, más rápidos y con menor consumo de energía. Pero siguen siendo máquinas pesadas y lentas. No es hasta 1964, con la aparición de los primeros circuitos integrados, cuando se producen ordenadores capaces de procesar varios millones de instrucciones por segundo.

El microprocesador, tal y como lo conocemos hoy, nació realmente cuando esas máquinas comenzaron a extenderse a los hogares y a los centros de trabajo (4ª generación de ordenadores). Uno de los primeros microprocesadores fue el 4004 de Intel destinado fundamentalmente a calculadoras electrónicas. Un año más tarde, en 1972, Intel fabricó el 8008. Sin embargo, fue en 1974 cuando Intel sacaba al mercado el dispositivo que iniciaría la verdadera historia de los microprocesadores: el 8080, con cerca de 10.000 transistores en su interior.

2. EL MICROPROCESADOR. ESTRUCTURA Y TIPOS.

Se puede entender por microprocesador la parte del ordenador en la que esta contenida la Unidad Central de Proceso o CPU. Está formado por un circuito integrado o chip, lo cual hace posible la existencia de ordenadores miniaturizados y de elevada capacidad, obtenidos por la interconexión de un microprocesador y unidades asociadas en forma de circuitos integrados a gran escala.

En el caso de microordenadores, a la agrupación de la Unidad de Control y la Unidad Aritmético-Lógica se le puede denominar microprocesador.

El microprocesador tiene un oscilador o reloj que genera impulsos periódicos a partir de los que implementa el denominado ciclo de máquina. Normalmente una instrucción necesita varios ciclos máquina para poder ejecutarse.

La siguiente figura muestra algunos detalles de la CPU que son de gran importancia. La conexión de estos elementos dependerá de cada ordenador concreto.

Memoria (M)

Dato/instrucción Dirección

R/W

RM DM

R A SP PC

IR

CY

AC

S

Z

P

O

R SW

Lógica de control

ALU

clip_image001Reloj

CPU

El microprocesador suele disponer de un conjunto de registros, denominados registros de uso general (R0 a Rm en la figura). Estos registros se utilizan como almacén temporal de los datos con los que va a operar la ALU o de resultados intermedios. También pueden dedicarse a almacenar direcciones de memoria. La longitud de estos registros suele ser de una palabra, aunque es corriente que existan registros de distinta longitud. Con gran frecuencia, los lenguajes máquina incluyen instrucciones para operar entre un registro significado, denominado acumulador (A, R0 en la figura) y otro registro o el contenido de una posición de memoria, depositándose el resultado en el mismo acumulador.

Asociado al acumulador y a la ALU existen unos biestables indicadores o de condición (“flag flip-flops”), que se ponen a 1 o a 0 dependiendo de la última operación realizada en la ALU. Así, es normal que existan biestables tales como:

CY: Acarreo

AC: Acarreo auxiliar

S: Indicador de signo

Z: Indicador de cero

P: Indicador de paridad

O: Indicador de desbordamiento

Word”).

El conjunto de estos biestables forma lo que se denomina palabra de estado (SW de “Status

La memoria principal se conecta mediante dos buses; uno de direcciones y otro de datos,

además, dispone de una señal de control para especificar si debe leer o escribir. Para un buen funcionamiento del conjunto procesador-memoria, el primero dispone de un registro dirección de memoria (DM), donde deberá ubicarse la dirección del dato/instrucción a leer o escribir, y un registro de memoria (RM), donde se almacenará el dato a escribir en la memoria o la información leída de la memoria, dependiendo del caso.

Como se ha indicado con anterioridad, la CPU está formada por UC y la ALU. La UC además de la lógica de control, que está constituida por los circuitos que generan las distintas señales de control, contiene un registro denominado registro de instrucción (“Instruction Register” o IR), dedicado a memorizar temporalmente la instrucción del programa que la unidad de control está interpretando o ejecutando. Recordemos que el programa a ejecutar reside en la memoria principal, y la unidad de control va captando o buscando las instrucciones secuencialmente de la memoria principal, para poder interpretarlas y generar las órdenes de ejecución. La captación de instrucción implica leer la instrucción de memoria y almacenarla en el registro de instrucción. Pero para captar la instrucción, la UC debe, de alguna forma, saber el punto del programa que está en ejecución, o, en otras palabras, contabilizar la dirección de memoria donde se encuentra la instrucción en ejecución. Este es el objetivo del contador de programa (“Program Counter” o PC), que es un registro contador que actúa como un contador ascendente binario con posibilidad de carga paralela, y que contiene en todo momento la dirección de memoria donde se encuentra la instrucción siguiente a ejecutar.

2.1. Tipos de CPU

Básicamente nos encontramos con dos tipos de diseño de los microprocesadores: RISC (Reduced-Instruction-Set Computing) y CISC (complex-instruction-set computing).

Los microprocesadores RISC se basan en la idea de que la mayoría de las instrucciones para realizar procesos en el computador son relativamente simples por lo que se minimiza el número de instrucciones y su complejidad a la hora de diseñar la CPU. Algunos ejemplos de arquitectura RISC son el SPARC de Sun Microsystem’s, el microprocesador Alpha diseñado por la antigua Digital, hoy absorbida por Compaq y los Motorola 88000 y PowerPC. Estos procesadores se suelen emplear en aplicaciones industriales y profesionales por su gran rendimiento y fiabilidad.

Los microprocesadores CISC, al contrario, tienen una gran cantidad de instrucciones y por tanto son muy rápidos procesando código complejo. Las CPU´s CISC más extendidas son las de la familia 80×86 de Intel cuyo último micro es el Pentium III. Últimamente han aparecido otras compañías como Cyrix y AMD que fabrican procesadores con el juego de instrucciones 80×86 y a un precio sensiblemente inferior al de los microprocesadores de Intel. Además, tanto Intel con MMX como AMD con su especificación 3D-Now! están apostando por extender el conjunto de instrucciones de la CPU para que trabaje más eficientemente con tratamiento de imágenes y aplicaciones en 3 dimensiones.

3. GESTIÓN DE LA MEMORIA INTERNA

Un programa máquina es un conjunto ordenado de instrucciones en código máquina. Estas instrucciones, en el momento de ejecutarse, “encajan” en palabras de memoria que pueden numerarse correlativamente de la 0 a la n-1 (suponiendo que el programa ocupa n palabras de memoria). Estas direcciones se denominan direcciones virtuales o lógicas.

El programa anterior, al ser cargado en memoria, ocupará determinadas posiciones de la misma (en total n). Supongamos que las instrucciones del programa se almacenan consecutivamente; si se cargan a partir de la dirección N, quedará ubicado de la dirección N a la N+(n-1). A N se le suele denominar dirección base y a las direcciones f en que realmente se almacenan las instrucciones (con direcciones lógicas i, por ejemplo) se les denomina direcciones físicas. Se verifica que

f = N + i para todo 0 i n-1

En los sistemas operativos la memoria principal se puede organizar de diversas maneras, el sistema operativo puede ocupar las primeras posiciones de memoria o las últimas, o incluso parte del sistema puede estar en una zona de la RAM de direcciones bajas, y otra parte de él en direcciones altas.

Cuando un programa se carga en memoria para ser ejecutado (o continuar su ejecución), el sistema operativo, de acuerdo con los espacios libres de memoria, le asigna una dirección base, y transforma direcciones virtuales en direcciones físicas. Estas transformaciones suelen ser efectuadas por circuitos especializados que constituyen la unidad de gestión de memoria (MMU, “Memory Management Unit”), que en la actualidad se suele integrar en el mismo chip de la CPU.

Debemos imaginarnos la estructura de la memoria, no en términos de cuanta memoria física hay, sino en términos de cuantía numérica direccionable. Un microprocesador como el Intel 8088 es capaz de direccionar exclusivamente 1024 K de memoria, o, lo que es lo mismo, 1048576 bytes de memoria. Por byte se entiende aquella secuencia de bits considerada como unidad básica de información direccionable, para un sistema determinado. El byte puede estar formado por un número distinto de bits según el tipo del ordenador, pero suele asociarse al octeto (8 bits) por ser una unidad básica de información muy utilizada.

Dentro de la memoria, cada byte se referencia mediante una dirección numérica de 20 bits ya que, tenemos un bus de 20 bits. El envío de información a través del bus se suele hacer en formato hexadecimal, quedando reducidos esos 20 bits a 5 dígitos hexadecimales. Entonces la dirección más inferior a la que se puede acceder es la 00000 y la mayor la FFFFF (desde el byte 0 al 1048576 en decimal).

Hablando en términos de espacio direccionable, la memoria interna se divide en 16 bloques de 64 Bytes cada uno, identificando cada bloque de 64 K con el primer dígito hexadecimal de todas las direcciones de memoria que componen el bloque. Así, por ejemplo, el primer bloque irá desde las direcciones 00000 a la

0FFFF, y el último desde la F0000 a la FFFFF.

Desde el punto de vista real, no hay fronteras funcionales entre los diferentes bloques. Se hace esta división de la memoria en parte por conveniencia y en parte porque el esquema global formado por la memoria direccionable de todos los ordenadores asigna usos específicos a cada bloque.

3.1. Direccionamiento de la memoria

Con un microprocesador de 16 bits es evidente que no se puede trabajar con valores superiores a los 16 bits. Por ello, el valor decimal más grande que se puede representar es el 65535 o 64 K. Teóricamente esto significa que con este microprocesador sólo se podrá acceder a 64 K direcciones de memoria. Pero necesitamos poder acceder a 1024 K direcciones.

Esto se puede conseguir gracias al esquema de direccionamiento de 20 bits utilizados por el microprocesador (220 = 1048576 bytes = 1024 K).

El microprocesador divide el espacio de memoria direccionable en un número arbitrario de segmentos, cada uno de los cuales contiene como máximo 64 K. Cada segmento empieza en una localización cuya dirección es divisible por 16, y que se conoce como dirección del segmento. Para

acceder a los bytes individuales, o a las palabras, se emplea una dirección adicional denominada

desplazamiento y offset, que apunta a la posición de un byte exacto dentro del segmento de 64 K designado por la dirección del segmento. Las direcciones internas siempre son relativas al comienzo del segmento por lo que también se denominan direcciones relativas.

Las direcciones se crean y manipulan combinando la dirección del segmento de 16 bits y una dirección relativa de 16 bits. La dirección del segmento se trata como si estuviera desplazada a la izquierda 4 bits. Cuando se añade la dirección relativa, se obtiene una dirección completa de 20 bits.

Normalmente los 16 bits, compuestos por dos palabras, reciben usualmente el nombre de dirección segmentada, o también vector cuando se hace referencia a interrupciones.

Ejemplo:

Supongamos un ordenador que admite hasta 256 segmentos de 4 bytes como máximo cada uno. Las direcciones lógicas estarán compuestas de 20 bits (5 cifras hexadecimales), los 8 primeros bits (2 primeras cifras hexadecimales) identificarán el segmento, y los 12 bits restantes (3 cifras decimales) identificarán el desplazamiento dentro del segmento. La dirección lógica A37FF se transforma en una dirección física. Con la tabla de segmentos se obtiene la dirección base de memoria donde se almacena el segmento A3, que resulta ser A1400, con lo que la dirección física correspondiente será:

A1400 + 7FF = A1BFF

4. COMUNICACIÓN CON EL EXTERIOR: BUSES.

La conexión entre los elementos de un ordenador se realiza a través de buses: conjuntos de hilos que proporcionan un camino para el flujo de datos entre los distintos elementos y que permiten transmitir información simultánea en paralelo. Los buses que interconectan las distintas unidades funcionales de un ordenador pueden ser de tres tipos:

Bus de datos

Transporta los datos que se transfieren entre unidades. Suele ser bidireccional, es decir, los mismos hilos se utilizan para transmitir información hacia adentro o hacia fuera de una unidad, pero siempre en instantes diferentes. Conviene matizar la diferencia entre el bus de datos interno y el bus de datos externo:

– Bus de datos interno

Se utiliza para transferir datos entre los elementos de la computadora central (formada por la CPU junto con la memoria principal).

– Bus de datos externo

Se puede considerar como una prolongación del bus de datos interno. Pone en comunicación el procesador con el resto de unidades (periféricos).

Bus de direcciones

Transporta la dirección de la posición de memoria o del periférico que interviene en el tráfico de información (de dónde procede el dato o a donde se dirige). Permite la comunicación entre el procesador y las celdas de memoria RAM. Cuando el procesador quiere leer el contenido de una celda de memoria, envía por el bus de direcciones la dirección de la celda que quiere leer, recibiendo por el bus de datos el contenido de la misma. El tamaño de este bus define la cantidad de memoria RAM que la CPU puede gestionar (con 10 bits se pueden direccionar 210 Bytes =

1024 Bytes = 1 KByte; con 16 bits se pueden direccionar 216 Bytes = 65536 Bytes 65 Bytes; y con 32 bits unos 4 GBytes).

Bus de control

Contiene hilos que transportan señales de control y las señales de estado, indicando la dirección de la transferencia de datos, controlando la temporización de eventos durante la transferencia, transmitiendo las señales de interrupción, etc.

5. EJEMPLOS DE MICROPROCESADORES

El mayor fabricante actual de microprocesadores es Intel y se toma como referencia y estándar, aunque existen otros fabricantes que han desarrollado sus propios microprocesadores (como AMD y Cyrix).

8088:

Posee 16 bits, aunque el bus de datos es de 8 bits, por lo que únicamente podrá trabajar con datos de

16 bits consumiendo dos ciclos de reloj. Puede direccionar hasta 1 MByte.

8086:

Utiliza un bus de datos de 16 bits.

80286:

Compatible con los dos anteriores y con el mismo repertorio de instrucciones. Permite dos modos de

trabajo distintos, el Modo real, equivalente al modo de trabajo del 8088 y el 8086 y direccionando un máximo de 1 MByte, y el Modo protegido que permite la multitarea. Su esquema de direcciones de memoria le permite usar 24 bits para direccionar la memoria en lugar de los 20 de sus predecesores. Con ello puede direccionar hasta 16 MBytes de memoria.

80386:

Es un procesador de 32 bits, manipula datos internos de 32 bits y se comunica con otros dispositivos

a través de un bus de 32 bits. Además puede usar direcciones de memoria de 32 bits, lo que le permite acceder hasta un máximo de 4 GBytes de memoria. El modelo 80386SX utiliza un bus de datos de 16 bits.

80486:

Se puede considerar una mejora del 80386. Integra dentro del procesador una caché de 8 Bytes, un

controlador para la memoria caché y un coprocesador matemático. La combinación de estos componentes incrementa notoriamente la velocidad de proceso.

Pentium:

Posee un bus de datos de 64 bits, una caché interna de 256 Bytes y está diseñado con técnicas de bajo

consumo. Es capaz de ejecutar más de una instrucción por ciclo de reloj.

En los procesadores Pentium con tecnología MMX se amplía la caché interna y el número de registros, además de incluir nuevas instrucciones dedicadas exclusivamente al proceso de software multimedia.

Modelo

Año presentac.

Bus de datos

Palabra

Direcciona

Velocidad máx.

8088

1978

8 bits

16 bits

1MB

4,77 MHz

8086

1978

16 bits

16 bits

1MB

10 MHz

80286

1982

16 bits

16 bits

16 MB

16 MHz

80386DX

1985

32 bits

32 bits

4GB

40 MHz

80486DX

1989

32 bits

32 bits

4GB

66 MHz

Pentium

1993

64 bits

32 bits

4GB

200 MHz

6. BIBLIOGRAFÍA

Alberto Prieto

Introducción a la Informática

Mc Graw-Hill, 2ª edición, 1997

Alfonso Ureña López Fundamentos de Informática Ra-ma, 1997

Pc World 107, 108

Microprocesadores

IDG Communications, 1995