Tema 5. Microprocesadores. Estructura. Tipos. Comunicación Con El Exterior
Tema 5. Microprocesadores. Estructura. Tipos. Comunicación Con El Exterior
Tema 5. Microprocesadores. Estructura. Tipos. Comunicación Con El Exterior
ÍNDICE
1. INTRODUCCIÓN.
5. EJEMPLOS DE MICROPROCESADORES
6. BIBLIOGRAFÍA
TM-5(1)
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.
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.
Dato/instrucción Dirección
RM DM
R A SP PC
CY
IR
AC
S
R SW Lógica
Z de
control
P
O
ALU
Reloj 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
El conjunto de estos biestables forma lo que se denomina palabra de estado (SW de “Status
Word”).
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.
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 80x86 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 80x86 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
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
20
microprocesador (2 = 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á:
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:
Se utiliza para transferir datos entre los elementos de la computadora central (formada
por la CPU junto con la memoria principal).
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
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.
6. BIBLIOGRAFÍA
Alberto Prieto
Introducción a la Informática
Mc Graw-Hill, 2ª edición, 1997