GIO es un estándar de bus de computadora desarrollado por SGI y utilizado en una variedad de sus productos en la década de 1990 como su sistema de expansión principal. GIO era similar en concepto a los estándares de la competencia como NuBus o (más tarde) PCI , pero tuvo poco uso fuera de SGI y, como resultado, limitó severamente los dispositivos disponibles en su plataforma. La mayoría de los dispositivos que usaban GIO eran tarjetas gráficas propias de SGI, aunque varias tarjetas que admitían acceso a datos de alta velocidad, como FDDI y Fibre Channel, estaban disponibles de terceros. Las máquinas SGI posteriores utilizan el bus XIO , que se presenta como una red informática en lugar de un bus.
Descripción
Como la mayoría de los buses de la época, GIO era un bus multiplexado de datos y direcciones de 32 bits que normalmente tenía una frecuencia de 25 o 33 MHz. Esto significó que el bus usa la misma ruta para direccionamiento y datos, por lo que normalmente se requieren tres ciclos para transferir un solo valor de 32 bits; un ciclo para enviar la dirección, el siguiente para enviar los datos y luego otro para leerlos o escribirlos. Esto limitó el bus a un rendimiento máximo de aproximadamente 16 Mbyte / sa 33 MHz para este tipo de transferencias pequeñas. Sin embargo, el sistema también incluía un modo de lectura / escritura de ráfagas largas que permitía transferencias continuas de hasta 4 kilobytes de datos (el tamaño de página fundamental en las máquinas SGI basadas en R3000); El uso de este modo aumentó drásticamente el rendimiento a 132 Mbyte / s (32 bits por ciclo * 33 MHz). GIO también incluyó una interrupción en "tiempo real" que permite a los dispositivos interrumpir estas largas transferencias si es necesario. El arbitraje de bus fue controlado por el controlador de interfaz de procesador ( PIC ) en los sistemas SGI Indigo originales basados en R3000 .
Físicamente, GIO usó un conector de 96 pines y tarjetas bastante pequeñas de 6.44 pulgadas (16.3576 cm) de largo por 3.375 pulgadas (8.5725 cm) de ancho. En la serie Indigo, las tarjetas se alinearon verticalmente una encima de la otra dentro de la carcasa, a diferencia de la disposición más común en la que las tarjetas se encuentran en ángulo recto con la placa base . Esto llevó a un diseño de caja "alto y delgado". Dado que las tarjetas estaban "encima" una de la otra en línea, fue posible construir una tarjeta que se conectara a ambos conectores en la placa base de la computadora, ofreciendo así más espacio.
GIO64
Posteriormente, GIO se expandió a un formato de 64 bits, GIO64 , y cambió el nombre retroactivo de la versión anterior GIO32 . El direccionamiento siguió siendo de 32 bits, pero ahora permitía el direccionamiento big-endian y little-endian como lo indica un nuevo pin de control, mientras que GIO32 solo admitía las direcciones big-endian estilo SGI. Los datos ahora se pueden transferir a 64 bits a la vez, duplicando así la velocidad. GIO64 también podría ejecutarse más rápido que GIO32, hasta 40 MHz, proporcionando un rendimiento de transmisión máximo de 320 Mbyte / s. Los tamaños de página también se ajustaron para permitir el cambio de CPU , comenzando en 4 kbyte para las máquinas basadas en R3000 y hasta 16 Mbyte para las basadas en R4400.
Físicamente, el bus GIO64 usó tarjetas mucho más grandes que generalmente eran similares en tamaño y diseño a las tarjetas EISA , una elección deliberada que facilitó un poco el desarrollo y permitió a SGI colocar ranuras EISA en las mismas máquinas. Específicamente, el conector externo (la brida de metal) era idéntico al EISA, pero la forma de la placa en sí era ligeramente diferente.
Se especificaron dos versiones de GIO64. El sistema "sin canalización" funcionaba de forma similar a la de GIO32, con transferencias que se configuraban directamente en el autobús. El sistema "canalizado" más nuevo era el que utilizaban las placas y, como su nombre lo indica, el sistema configuraba las transferencias en una operación de varios pasos que se decodificaba en el canal interno del controlador. Internamente, el bus sin canalización transfirió datos entre las diversas partes de la computadora, incluidas las tarjetas GIO, los dispositivos EISA, SCSI , etc. Las tarjetas GIO utilizaban el controlador canalizado para arbitrar y controlar la sincronización, y luego los datos se introducían en la memoria principal a través del lado interno no canalizado.
GIO32-bis
Un tercer estándar, GIO32-bis , utilizó las señales y la sincronización de GIO64, pero con los conectores de 32 bits de GIO32. Las tarjetas GIO32-bis correctamente diseñadas se pueden usar en las ranuras GIO64, GIO32 o GIO32-bis, diferenciando las dos últimas mirando un pin atado al suelo en el GIO32 original y atado "alto" en GIO32-bis. Para las tarjetas de bajo rendimiento, GIO32-bis permitía utilizar un solo dispositivo en cualquier máquina compatible con GIO, sin importar la generación.
Ver también
- Arquitectura estándar extendida de la industria (EISA)
- Arquitectura de microcanal (MCA)
- Bus local VESA (VESA)
- Interconexión de componentes periféricos (PCI)
- NuBus
- SBus
Referencias
- ESPECIFICACIÓN DE GIO BUS versión 1.1 : antes de la definición final, los detalles físicos del GIO64 aún no estaban configurados.
- Informe técnico de Indigo2 y POWER Indigo2 : detalla la forma en que GIO64 se conecta a placas GIO externas, EISA y otros dispositivos.