| Artículos | 01 ENE 1998

La especificación LPC (low Pin Count)

Tags: Histórico
Susana Galán.

Cuando IBM diseño los primeros ordenadores PC y AT los dotó de los mecanismos necesarios para que el usuario pudiese añadir, de una forma relativamente sencilla, dispositivos hardware adicionales a su sistema. En los tiempos de los microprocesadores 8088 y 8086 el bus ISA disponía de un bus de datos con una anchura de ocho bits. Este era suficiente para las necesidades de la época, teniendo en cuenta sobre todo que el 8088 disponía de un bus externo de ocho bits y que el correspondiente al 8086 tan sólo tenía 16 bits.

Sin embargo, en relativamente poco tiempo, IBM lanzó al mercado los flamantes AT basados en el, por aquel entonces, poderoso microprocesador Intel 80286. Con este procesador se introdujeron en el mercado del ordenador personal algunos conceptos que en la actualidad se usan comúnmente, como por ejemplo modo protegido o gestión de memoria virtual. El 80286, con su bus de direcciones de 24 bits, era capaz de direccionar un total de 16 MB de memoria RAM. Evidentemente una arquitectura de este tipo necesitaba un sistema mejorado para acceder a los dispositivos conectados al todavía joven bus ISA. Para satisfacer estas necesidades surgió la versión de 16 bits del bus ISA, el cual funcionaba, y aún hoy sigue funcionando, a la espeluznante velocidad de 8 MHz.

Mientras ocurrían todos estos hechos los ingenieros de Intel trabajaban de manera frenética en la arquitectura de microprocesador que ha resultado ser a la postre la más popular, ya que incluso los actuales Pentium, Pentium Pro y Pentium II están basados en ella: el procesador Intel 386. Con la introducción en el mercado de esta CPU fue posible que los programadores de compatibles PC dispusieran de un espacio de direcciones lineal de hasta 4 GB, olvidándose en parte de las limitaciones del modelo de memoria segmentada hasta entonces utilizado una y otra vez por la arquitectura x86 de Intel.

La evolución de la familia x86

En no mucho tiempo estuvo disponible la siguiente generación de procesadores x86: la familia 486, con sus variantes SX, DX, DX2 y DX4. Este procesador era básicamente un 386 que contaba de forma integrada con un coprocesador matemático 387 y una memoria caché de 8 KB. Era evidente que para sacar a estos avanzados microprocesadores toda su potencia era preciso disponer de una arquitectura de bus que no limitara en modo alguno la velocidad de acceso del procesador a determinados elementos del hardware, que pueden convertirse en importantes cuellos de botella.

Todas estas necesidades llevaron a la aparición de lo que vino a denominarse bus local VESA. Básicamente se trataba de una conexión directa entre dos o tres dispositivos y el bus local del microprocesador. Esta solución era barata, de fácil implementación, y cuando se realizaba correctamente podía proporcionar velocidades de acceso de hasta 50 MHz. Rápidamente aparecieron en el mercado placas base con dos o tres ranuras de bus local VESA, las cuales tenían el aspecto físico de una extensión de las ranuras ISA de 16 bits ya ampliamente conocidas. Sin embargo, este bus pronto comenzó a dar problemas de compatibilidad, en especial en sistemas dotados de tres ranuras VESA. Los principales subsistemas que se beneficiaron de este tipo de tecnología fueron las tarjetas gráficas, las placas controladoras de disco duro (IDE y SCSI) y los adaptadores de red local.

Sin embargo, era evidente que resultaba preciso disponer de un bus de alta velocidad que a ser posible no dependiera de la arquitectura del microprocesador instalado en el ordenador en cuestión. Esto hizo que un consorcio del que formaban parte algunas de las empresas más importantes del mundo de la informática creara el bus PCI. Este bus se encuentra disponible en distintas versiones que soportan velocidades de funcionamiento de 33 y 66 MHz, así como anchuras de bus de 32 y 64 bits.

Como puede verse, mientras han ido evolucionando la mayoría de los dispositivos hardware, el bus ISA ha quedado anquilosado en sus orígenes técnicos. Tan sólo la especificación Plug and Play lo ha mejorado levemente, dotándolo de capacidades de auto-configuración que facilitan enormemente la instalación de nuevos dispositivos que se conectan a dicho bus. Sin embargo, en no mucho tiempo, los usuarios veremos como desaparece el bus ISA de las placas base y es sustituido por conectores que cumplen la especificación LPC o Low Pin Count.

Objetivos de la especificación LPC

Varios son los objetivos de la especificación conocida como LPC en su introducción en las placas bases. Estos son los que se mencionan a continuación:

- Hacer posible el diseño y fabricación de compatibles PC que carezcan del bus ISA.

- Reducir el coste que implican los dispositivos ISA.

- Su aplicación se centra en la placa base de los sistemas.

- Proporcionar unas tasas de transferencia similares a las obtenidas con el bus ISA y, en la mayoría de los casos, mejorarlas sustancialmente.

- Soportar los mismo tipos de ciclos de acceso utilizados en el bus ISA tradicional: de acceso a memoria, de entrada/salida, de acceso directo a memoria, o DMA, y bus master.

- Permitir el acceso a tamaños de memoria superiores de 16 MB.

- Diseño síncrono, de forma que todos los accesos se realicen de forma sincronizada con una señal de referencia bien conocida como, por ejemplo, la señal de reloj del bus PCI.

- Transparencia para el software, de forma que un mismo dispositivo sobre conexión LPC sea idéntico, desde el punto de vista del desarrollo de software, al dispositivo ISA equivalente.

- Debe soportar implementaciones de sobremesa y para sistemas móviles.

- Debe de ser capaz de soportar un número variable de estados de espera.

- Debe soportar diversas clases de estados de ahorro de energía.

Tipos de ciclos

Al igual que sucede con los bus ISA y PCI, la especificación LPC también define diversas clases de ciclos dependiendo de la función a la que sirven:

Lectura desde memoria. Es opcional tanto para los conjuntos de chips que implementen la funcionalidad del bus LPC como para los periféricos conectados a dicho bus.

Escritura en memoria. Con las mismas capacidades que el ciclo anterior, pero destinado a efectuar escrituras en la memoria del sistema.

Lectura en entrada/salida. Es opcional para los periféricos conectados al bus LPC. Propociona los mecanismos necesarios para realizar lecturas en el espacio de direcciones de los puertos de entrada/salida soportados por la arquitectura x86 de Intel.

Escritura en entrada/salida. Es opcional para los periféricos. Similar al tipo anterior de ciclo pero destinado a realizar escrituras en los puertos de entrada/salida.

Lectura DMA. Es opcional para los periféricos LPC y se encarga de realizar una operación de lectura a través de un canal DMA.

Escritura DMA. Similar al anterior pero implementando una operación de escritura a través de un canal DMA.

Lectura de memoria mediante bus master. Opcional tanto para periféricos como para conjuntos de chips, si bien se recomienda que sea soportado por estos últimos componentes.

Escritura en memoria mediante bus master. De funcionamiento similar al anterior, pero ofreciendo la posibilidad de realizar escrituras en la memoria del sistema.

Lectura y escritura en puertos de entrada/salida mediante bus master. Similar a los dos tipos anteriores pero trabaja sobre puertos de entrada/salida.

Tomando como base estos tipos de ciclos, hay que tener en cuenta que el host, el cual normalmente será un procesador conectado al bus LPC a través del conjunto de chips de la placa base, soportará todos los tipos de ciclos anteriormente mencionados. Por otra parte, los periféricos que hagan uso del bus LPC soportarán solamente los tipos de ciclos que sean imprescindibles para su funcionamien

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios