3.2.1 Arquitectura del procesador: Conexiones exteriores
§1 Sinopsis
El procesador está conectado con el mundo que le rodea mediante una serie de líneas materializadas las patillas del chip, las cuales se alojan en un zócalo situado ex profeso en la placa-base. En la figura 1 de la página anterior las hemos simbolizado por una flecha señalando al "Exterior".
El número de estas conexiones exteriores ha aumentado paralelamente a la potencia y complejidad de los procesadores. Los 8088 se alojaban en un chip DIP ("Dual In-line Package") de 40 patillas, mientras que los actuales (2001) Pentium 4 disponen de 423 pines [2]. En estos contactos están las tensiones de alimentación; la de tierra; el bus de datos; el de direcciones y una serie de señales del bus de control, incluyendo las de reloj.
Nota: el 8086 y 8088 eran prácticamente idénticos. La diferencia estaba en un módulo denominado BIU ("Bus Interface Unit"), que manejaba las conexiones del procesador con el exterior. El 8086 tenía bus de datos de 16 bits, mientras que en el 8088 era de 8 bits.
En la tabla adjunta
se relacionan los nombres y usos de las 20 patillas del 8088
mostradas en la Fig. 1. La mayoría de ellas están relacionadas con
señales que aparecen de una u otra forma a lo largo de esta publicación dedicada a la tecnología del PC.
Hay que advertir que el bus de direcciones/datos del 8088 está multiplexado. Esto significa que la información contenida en algunas líneas (patillas) cambia según el momento. Estos cambios configuran el ciclo de máquina o ciclo del bus, que se extiende a lo largo de cuatro ciclos (tics) del reloj CLK ( 0.3.1), designados por T1; T2; T3 y T4 (esto explica que aún las instrucciones más cortas requieran 4 ciclos de reloj). El contenido de las líneas multiplexadas puede variar en cada uno de estos tics.
Las direcciones son transmitidas durante el ciclo T1, mientras que las transferencias de datos ocurren durante T3 y T4. El ciclo T2 se utiliza principalmente para los cambios de direcciones del bus durante las operaciones de lectura. El sistema prevé que el procesador pueda insertar tics de espera Tw, para dar tiempo extra a cualquier periférico que no esté preparado (READY ).
Este doble uso de las patillas (y del bus), permitió un diseño del chip con menos patillas (40); en otro caso se habría necesitado un mayor número para transportar todas las señales.
El bus del 8088 puede considerarse dividido en tres partes:
- La parte inferior, AD0/AD7, contiene 8 líneas que pueden contener direcciones (A0-A7) y datos (D0-D7).
- La parte media, A8-A15, contiene 8 líneas que solo contienen direcciones. Mantienen su valor a lo largo de todo el ciclo del bus.
- La parte superior contiene 4 líneas que pueden contener direcciones (A16-A19) y bits de estado (S6-S3).
§2 Asignación de patillas en el 8088:
El 8088 tiene dos modos de funcionamiento seleccionables por hardware (SSO ), de forma que algunas patillas tienen un uso o u otro (según el modo). En la tabla adjunta se relacionan los nombres y usos en la forma "máxima", que es como fue utilizado por IBM en el PC original. Las flechas simbolizan la dirección de las señales transportadas:
Desde el procesador al exterior (Salida)
Desde el exterior al procesador (Entrada)
Bidireccional; hacia y desde el procesador (E/S)
Num. | Nombre |
Uso |
1 |
GND | Masa ("Ground") |
2/8 |
A14/A8 | Líneas del bus de direcciones ("Addresses") no multplexadas. Junto con la patilla 39 mantienen su valor durante todo el ciclo de funcionamiento del bus. |
9/16 |
AD7/AD0 | Líneas compartidas (multiplexadas). Son las direcciones A0-A7durante los ciclos T1, y los 8 bits de datos D0-D7, durante los ciclos T2, T3, Tw y T4. |
17 |
NMI | Petición de Interrupción hardware no enmascarables ( 0.3.1d). Este tipo de interrupciones no puede ser enmascarada mediante software. Siempre que se recibe se genera una interrupción número 2. |
18 |
INTR | Petición de interrupción enmascarable hardware ( 0.3.1d). Estas señales pueden ser enmascaradas actuando sobre el bit S5 . |
19 |
CLK | Entrada de señal de reloj ("Clock" 0.3.1) |
20 |
GND | Masa |
21 |
RESET | Entrada de la señal de inicio del procesador ( 0.3.1). Esta señal está normalmente inactiva (baja). Después de mantenerse activa (alta) durante al menos cuatro ciclos de reloj, al volver a su estado inicial bajo, se detiene la instrucción en ejecución y se reinicia el procesador. |
22 |
READY | Esta señal
ayuda a sincronizar el procesador con sus periféricos. Cuando
un dispositivo necesita más tiempo para estar preparado, pone baja la
tensión de esta línea, para avisar al procesador. En este
caso, se insertan estados de espera Tw ("Wait states") entre
los ciclos T2 y T3.
El esquema de funcionamiento es como sigue: Durante el ciclo T1 el procesador siempre pone una dirección de memoria o puerto en el bus, que en este momento actúa como de direcciones (ver patillas 9/16 ); pero cuando entra en el ciclo T2 no avanza la instrucción directamente, sino que mira el estado de esta patilla. Si está alta, sigue en los ciclos T3 y T4, pero si está baja, entra en un estado de espera Tw sin hacer nada, salvo esperar que esta patilla vuelva a nivel alto. El tiempo de espera puede ser indefinido, cualquier número de ciclos CLK de reloj; durante todo este tiempo muestra al mundo su estado de espera elevando la señal de la patilla 23 a nivel alto. |
23 |
TEST | Esperar para comprobación ("Wait for test"). Después de cada instrucción el procesador setéa el estado de esta señal. Si es bajo (0) es que la ejecución continua normalmente; si es alto (1), es que permanece detenido en un estado de espera. |
24/25 |
QS1/QS0 | Estado de la
cola ("Queue Status"). Estas señales permiten que un
dispositivo externo pueda tener conocimiento del estado de la cola de
instrucciones del procesador. La interpretación es la
siguiente:
|
26/28 |
S2/S0 | Estado
("Status"). El estado 0 (bajo) o 1 (alto) de estas
patillas contiene información de lo que está ocurriendo en el
procesador. Hay momentos en que el controlador de bus 8288
( 0.3.1)
genera alguna de estas señales cuyo significado es el siguiente:
S2
S1 S0 Significado (1) Cuando se recibe una petición de interrupción enmascarable en la patilla INTR , el procesador responde enviando esta señal ("Interrupt Acknowledge" 0.3.1d) |
29 |
LOCK | La señal es activada (pasa a valor 0) por las instrucciones que tienen el prefijo LOCK (en ensamblador), y permanece activa hasta que es completada la siguiente instrucción. Durante este tiempo ningún otro dispositivo puede adquirir control del bus. |
30/31 |
RQ/GT | Señales de
petición/concesión ("Request/Grant") de control del bus
por cualquier dispositivo distinto del procesador capaz de asumir su
control ("Bus mastering") [3]. El proceso es el siguiente: a: Un pulso de un ciclo de reloj desde un dispositivo externo señala la petición de control del bus local desde otro "bus master". Esta señal es conocida com HRQ ("Hold Request") b: Un pulso de un ciclo del procesador durante los tics T4 o T1, es la señal al peticionario que el procesador está permitiendo "flotar" al bus [1], y que colocará la señal de reconocimiento de petición de control HLDA (Hold Acknowledge) en el próximo tic de reloj. Durante estos estados de "reconocimiento de control" la interfaz de bus es desconectada lógicamente del bus local. c: Finalmente, un pulso de un ciclo CLK del peticionario, indica al 8088 que el control solicitado va a terminar, de modo que el procesador puede recuperar el control del bus en el próximo ciclo de reloj. Es la señal EOP ("End of Process"). |
32 |
RD | Lectura ("Read"). Esta patilla indica que el procesador está realizando un ciclo de lectura de memoria o de puerto (según el estado de S2 ). |
33 |
MN/MX | La tensión, alta o baja (tierra), de esta patilla pone al procesador en dos estados de comportamiento ligeramente distintos, que se conocen como modo mínimo y máximo. En el PC original el 8088 era usado en modo máximo que significa que el procesador depende del controlador de bus 8288 para generar algunas señales del bus de control ( 0.3.1). |
34 |
SSO | Línea de estado. El estado alto o bajo de esta patilla determina cual es el modo de uso del procesador (en el modo máximo del PC su estado es siempre alto). |
35/38 |
S6/S3 |
Líneas compartidas (multiplexadas) de direcciones/estado.
Durante el ciclo T1 de las operaciones E/S con memoria, las líneas 35-38 contienen los 4 bits más significativos (A19-A16) del bus de direcciones (este bus tiene las líneas A0-A19). En cambio, si la operación es de E/S con un puerto, su valor es siempre 0 (por esta razón las operaciones con puertos del PC XT solo disponen de 16 bits, y solo se pueden utilizar 65.536 direcciones de puerto distintas 0.3.1e). Cualquiera que sea el tipo de operación (memoria o puerto), durante los ciclos T2, T3, Tw y T4 estas líneas contienen información del estado del procesador y de su propia actividad. Durante estos tics S6 es siempre cero; S5 indica el estado del bit de habilitación de interrupciones; por su parte S3 y S4 contienen información sobre lo que está tratando de hacer el procesador. Esta información es utilizada para controlar y dirigir los dispositivos externos a la UCP, por ejemplo la memoria y los puertos E/S. Su significado es el siguiente: S4 S3 Significado |
39 |
A15 | Línea del bus de direcciones ("Addresses") |
40 |
Vcc | Alimentación. + 5 V. c.c. +/- 10% |
[1] La expresión indica que el procesador no fuerza esta señal, permitiendo que su valor (alto o bajo), pueda ser establecido desde otro dispositivo.
[2] Sus patillas forman un cuadrado; esta disposición es un estándar denominado Socket 423.
[3] El "Bus mastering" está relacionado con el mecanismo de Acceso Directo a Memoria DMA ( 2.3)