Historia de la informática: ¿Qué hizo el botón “turbo” en las PC de principios de los 90?

¿Qué hizo el botón “Turbo” en las PC de principios de los 90?
Bueno, el botón físico en la típica carcasa de escritorio era básicamente un botón de acción alternativa que se podía conectar a la placa base por 2 cables en un encabezado. Dependiendo de si estaba abierto o cerrado, el modo Turbo (el modo más rápido era normalmente el estado abierto) estaría habilitado.

Historia del botón Turbo
Mirando hacia atrás en la historia, en los primeros días de las computadoras clonadas para PC (1984 a alrededor de 1995), había muchas compañías que querían tener una ventaja sobre la PC IBM (8088 cpu) o XT (también 8088 cpu) y más tarde a finales de 1984, el IBM AT (80286 cpu). No hubo mucha diferencia en el hardware que usaban las personas, por lo que la mejora principal que se pudo hacer fue acelerar el reloj del sistema, haciendo que el código se ejecute más rápido.

Cuando los fabricantes de PC hicieron esto, hizo que la CPU fuera más rápida, pero también el bus ISA utilizado en ese momento también funcionó proporcionalmente más rápido, así como los requisitos de reloj de memoria. Muchas tarjetas en las ranuras de bus ISA no estaban disponibles para ir más rápido, por lo que fue un problema. La memoria en ese momento no podía funcionar a velocidades más altas sin estados de espera, por lo que los fabricantes agregarían los estados de espera a los accesos a la memoria (lo que los desaceleró lo suficiente como para funcionar).

PC y sistemas XT Turbo
En los sistemas de PC y XT, a menudo tenían botones que cambiaban entre dos velocidades de reloj, la estándar (4.77 Mhz) y una más rápida (7.15 Mhz, creo). Sin embargo, cambiar el botón de velocidad “Turbo” mientras el sistema estaba encendido a menudo bloqueaba la computadora (creo que aproximadamente el 50% del tiempo), porque al momento del cambio podría potencialmente crear ciclos de reloj de ancho corto.

Sistemas AT Turbo
Cuando salió el IBM AT (80286 cpu), la velocidad estándar era de 6 Mhz (este era un procesador de 16 bits, por lo que 6 Mhz era mucho más rápido que el típico 7.15 Mhz del turbo XT). Hubo una variedad de sistemas disponibles que ejecutarían (o intentarían ejecutar) la computadora a uno de 8, 10, 12 o 16 Mhz, agregando el número de estados de espera (de 1 a 3) a cada acceso a la memoria, esencialmente haciendo que la memoria no sea mucho más rápida que la AT estándar de 6 Mhz (que era 0 estados de espera).

Tenían un interruptor turbo que cambiaba entre los 6 Mhz estándar y cualquier velocidad más alta que crearan. Tenían todos los mismos problemas que la PC y XT, con ciertas tarjetas que no funcionaban a velocidades más altas (la mayoría de las tarjetas fallaban a más de 10 Mhz (y muchas a más de 8 Mhz también), y requerían chips de memoria que funcionarían a la velocidad más rápida , además de bloquear la computadora durante el cambio de velocidad.

Benchmarking de las velocidades
Había dos maneras en que los fabricantes medirían su velocidad efectiva para los derechos de fanfarronear en ese momento. Uno estaba usando el programa Norton Utilities (Symantec) SI (Información del sistema) que devolvería un número (aproximadamente 3 dígitos como 10.2). Este programa no era muy bueno (pero era la referencia estándar que la gente siempre preguntaba), y devolvería un número variable cuando lo ejecutaba, por lo que debe ejecutarlo varias veces para encontrar el valor correcto (generalmente el número más alto) . La otra forma fue ejecutar el Flight Simulator de Microsoft que devolvió un fps (cuadros por segundo, aproximadamente 6 fps en una PC estándar o XT, y recuerdo algo así como 15 fps para un número rápido de AT) para la frecuencia de actualización de la pantalla. ¡Cuanto más fps mejor!

Software “Problemas turbo”
Además de algunas tarjetas de ranura ISA complementarias que no funcionan a la velocidad más rápida del bus del sistema cuando se ejecuta “turbo”, muchos programas que eran específicos del tiempo funcionarían demasiado rápido o no funcionarían a la velocidad más alta. Estos eran típicamente videojuegos y aquellos que usaban métodos de protección de copia de disquete.

Hay formas en que un programa podría obtener una hora precisa utilizando la interrupción del reloj de 18.2 veces por segundo para temporización macro y leyendo los valores de un contador de reloj interno para obtener una temporización más precisa, pero muy pocos programas lo hicieron de la manera “correcta” . Y así, los juegos se ejecutarían tan rápido hasta el punto de ser imposible de jugar (en ese entonces, ¡un jugador podría haber dicho que no quiero una computadora rápida!).

Solución para velocidades “Turbo”
Por lo tanto, la solución tanto para el hardware de la tarjeta Complemento como para el software del juego era tener dos relojes del sistema y reducir la velocidad del sistema a su velocidad estándar (más lenta) cuando sea necesario, pero acelerarlo el resto de las veces .

La solución final y la desaparición del botón “Turbo”
A medida que evolucionamos hacia un mejor software escrito y computadoras más rápidas (aproximadamente 1995), la necesidad del interruptor “turbo” para ralentizar la PC para ejecutar hardware y software antiguo (que normalmente era DOS software basado, no Windows) se volvió innecesario.


La computadora AST 286 Premium (1987)
(Una computadora Turbo” AT antes de tiempo)

En mayo de 1986, AST Research , una compañía que producía tarjetas adicionales para computadoras Apple II, S-100 y PC, quería hacer su primera caja de sistema completa, un clon AT que era muy compatible, funcionaba muy rápido y podía funcionar a Velocidades de 6 Mhz y “turbo” de 8 y 10 Mhz. La velocidad de 8 Mhz era básicamente para permitir a algunos hardware y software que no funcionarían a 10 Mhz la posibilidad de operar a una velocidad intermedia.

AST también quería que pudiera ejecutar memoria EEMS (una especificación de memoria expandida paginada por hardware), que permitía que una PC (y AT) usara fácilmente mucho más que el máximo de 1 megabyte de memoria permitido en modo real (no protegido ) en el momento. Si bien el AT podía acceder a la memoria de hasta 16 megabytes, solo podía hacerlo en modo protegido, y había mucha sobrecarga para acceder a la memoria dirigida por encima de 1 Megabyte. Por lo tanto, en ese momento, se prefería (por los programadores de software) usar la memoria EEMS.

AST 286 Premium (arriba – alrededor de enero de 1987)

Entonces, en el diseño que hice para la placa base AT del AST 286 Premium , creé un interruptor de velocidad de 3 vías (controlable por software que fue integrado en el BIOS Phoenix – Ver Creación del BIOS Phoenix [1]) que utilizó (y cambiable por una combinación de teclado) que cambiaría entre 6, 8 y 10 Mhz y lo haría de una manera que nunca bloqueara la computadora (lo hizo asegurándose de que el ancho del reloj siempre fuera al menos el ancho de un ayuno completo) reloj – este fue un circuito muy “complicado”). Y 10 Mhz fue el más rápido que pudo ejecutar de manera confiable el bus ISA (no es que otros fabricantes no intenten impulsarlo más). El bus ISA para la placa base que diseñé utilizaba un método llamado terminación de bus activa , que lo hacía mucho más confiable a velocidades más rápidas.

AST 286 Velocidad premium
panel de visualización en el frente (arriba)

El espacio de memoria principal de 640k de la placa base (que usaba el chipset NEAT) de Chips & Technologies – una de las primeras placas base en tener un chipset) que diseñé funcionaría a 10 Mhz 0 estados de espera . AST diseñó e hizo una tarjeta complementaria EEMS especial (con un bus extendido especial al bus ISA) que, al igual que la memoria principal incorporada, funcionaba a 10 MHz 0 estados de espera. Esto fue un gran problema, porque los estados de espera de 10 Mhz 0 fueron más rápidos que los clones AT más rápidos y confiables que ejecutan la memoria en un estado de espera de 12 Mhz 1 (las máquinas de 16 Mhz generalmente ejecutaban 2 estados de espera, y las tarjetas adicionales no eran confiables en ese bus velocidad).

Estas características hicieron que el AST 286 Premium, 10 Mhz, 0 estados de espera sea la computadora AT más rápida (que funciona de manera confiable ) en el planeta (al menos para 1987).

Además, agregué un puerto de E / S especial en la placa base que permitiría que el procesador 80286 cambie muy rápidamente (alrededor de 25 microsegundos en total) del modo protegido al modo real , en comparación con la forma estándar de IBM (utilizaba el microcontrolador de teclado 8042 ) que tomó alrededor de 2 milisegundos (creo). Los pocos programas que usaban espacio de memoria protegido en ese momento aprovecharían este método más rápido (ya que la única forma de hacerlo requería una llamada al BIOS). Una vez que los sistemas se trasladaron al 80386 y superior, ese problema se resolvió mediante un método de software rápido agregado en el conjunto de instrucciones de la CPU 80386 (aunque las otras formas aún eran utilizables).

¿Por qué ahora nos importan los estados de espera de memoria?
En el momento de este diseño, el usuario típico no entendía el significado de los estados de espera y qué impacto tuvo. AST tenía un presupuesto de marketing de 1 millón de dólares. Alrededor de septiembre de 1986, mientras estábamos depurando el prototipo, le dije a la gente de marketing de AST que necesitaban explicar en la publicidad que eran 10 Mhz 0 estados de espera , con el 0 resaltado, y estados de espera explicados, junto con información de velocidad de referencia. . Varios de los primeros anuncios que salieron (creo que alrededor de diciembre de 1986) tenían un ” 0 ” gigante, ocupando la mitad del espacio publicitario y explicando los estados de espera simplemente (según recuerdo). La espera indica que las explicaciones continuaron durante varios años en los anuncios.

Después de esa campaña publicitaria de AST, el usuario típico de la computadora ya no solo pediría la velocidad del reloj del sistema, ¡sino que la cantidad de memoria en espera indica que tenía!

(Por supuesto, ahora nos preocupamos por los diversos números de velocidad, voltajes, ECC, unilateral, etc.)

Apéndice:
Me acabo de dar cuenta de que la AST 286 Premium fue la primera y última placa base compatible con CPU basada en AT 80286 que diseñé (verano de 1986). Con la llegada del 80386dx y 80386sx, y a precios comparables, ¡el 80286 estaba destinado a ser relegado a la historia! 🙁

Datos curiosos de AST 286 Premium:

  1. Normalmente diseño cualquier placa de circuito de alta velocidad con un mínimo de 4 capas, dos de las cuales son las capas Tierra y VCC (potencia), sin embargo, AST quería ahorrar dinero en la producción, por lo que distribuyeron la PCB (placa de circuito impreso) a mano . Entonces, en lugar de las 4 capas, terminó como una placa de 3 capas que combina los planos Ground y VCC (lo que me hizo infeliz ya que es eléctricamente más ruidoso y potencialmente un problema).
  2. Había muchos encabezados (puentes) que se diseñaron en la placa para permitir muchas configuraciones del hardware. AST había dicho que los querían para poder crear configuraciones especializadas para vender a las empresas. Sin embargo, una vez que se completó el diseño, dijeron que todos los encabezados eran demasiado caros, por lo que eliminaron tantos como pudieron para ahorrar costos, eliminando las opciones de configuración del usuario. La mayoría de los encabezados se convertirían en la opción más común cuando están despoblados (o abiertos).
  3. Originalmente utilizamos PAL (lógica de matriz programable) para hacer gran parte de los circuitos de “pegamento” , pero GAL (lógica de matriz genérica) estuvo disponible en ese momento y fue mucho más fácil de programar (y reprogramar), usó menos energía y tenía características adicionales.
  4. Toda la placa usó tecnología de agujeros sin embargo (aunque se discutió si deberíamos hacer un montaje en superficie). El montaje en superficie no comenzaría a ser popular por otros 6 años. Otra compañía con la que consulté en 1993 fue Lexicon , y les aconsejé usar la tecnología de montaje en superficie por primera vez en su procesador de audio digital PCM-80 (y también hice su BIOS del panel frontal).
  5. Este fue mi primer diseño de placa base (junio de 1986 a octubre de 1986) después de escribir las BIOS Phoenix originales (de mayo de 1984 a mayo de 1985) y las BIOS no cambiaron en mi código. Entonces, esencialmente, tanto la placa base como el BIOS fueron mis diseños.
  6. El trabajo de temporización del bus de alta velocidad AST 286 Premium y el próximo Micro Channel Bus alternativo de IBM y la falta de estándares de bus PC ISA llevaron a la formación del Comité de Estándares PCET (PC Extended Technology). El propósito era estandarizar el bus ISA y luego extenderlo para la operación de 32 bits. Como copresidente del comité junto con Carl Helmers, en realidad nunca despegó, pero más tarde condujo a mejoras en el tiempo del bus ISA y el bus EISA.

Referencias

  • La legalidad de la copia y el concepto de propiedad intelectual (IP) y la copia del BIOS de IBM se discuten en el libro The Invisible Edge: llevando su estrategia al siguiente nivel ( haga clic en el primer resultado de búsqueda ).
  • Para obtener una respuesta más completa sobre cómo escribir un BIOS, consulte
    ¿Cómo se escribe el BIOS para una placa base de computadora? ¿Cómo se escribió el primer BIOS?
  • Para ver una discusión sobre mi trabajo en la creación del BIOS Phoenix, vea
    ¿Qué es lo mejor que has creado solo como programador?
  • Esto explica por qué los únicos sistemas que quedan son PC, Apple Macintosh y procesadores ARM.
    ¿Por qué falló Digital Equipment Corporation (DEC)?
  • Esto explica la historia temprana de la PC y la creación del primer sistema informático S-100, la computadora MITS Altair
    ¿Subieron las ventas de computadoras después de la invención de los videojuegos?

Notas al pie

[1] La respuesta de Ira J Perlow a ¿Cuál es la cosa más genial que has creado solo como programador?

En realidad era un botón de subclock pero con lógica inversa.
Si el botón turbo estuviera activado, la CPU (generalmente una 286) funcionaría a toda velocidad.
Sin embargo, los primeros juegos de DOS dependían de la sincronización de la CPU, y eran prácticamente imposibles de jugar si la computadora era demasiado rápida. Por lo tanto, presionar “Turbo Off” desactivó la CPU, lo que hace que esas cosas sean factibles.

Mi primera PC fue una 486 DX2 50 con un botón turbo.

Básicamente, el bus del sistema funcionaba a 25MHz y la CPU podía ejecutarse en sincronización o, con el botón turbo habilitado, “reloj duplicado” ejecutando dos ciclos de instrucciones de la CPU para cada ciclo del bus del sistema. De ahí el “50” – la velocidad de la CPU y el “DX2” – el múltiplo de la velocidad del bus del sistema a la que corría la CPU.

Las mejores PC de la línea eran DX2 66 que ejecutaban un bus de sistema de 33 MHz y usaban el mismo botón turbo para duplicar la CPU. Creo que muchas de las PC de nuestra universidad eran 486 SX 25. No tenían botón turbo, por lo que el bus del sistema y la CPU se sincronizaron a 25MHz.

Las PC DX2 fueron las plataformas de juego del día. Los últimos juegos de VGA: Doom, X Wing, etc., no se podían jugar en nada menos.

En cuanto a por qué había un botón turbo, estoy menos seguro. Nunca lo apagué excepto para ver qué pasaba. Doom se volvió demasiado lento en el modo de alta resolución (320 × 240!). Tengo entendido que deshabilitar la duplicación del reloj era una característica de compatibilidad para el software anterior que hacía cosas raras si la CPU y el bus del sistema funcionaban a diferentes velocidades.

Un año más tarde, las CPU Pentium comenzaron a aparecer y el botón turbo comenzó a desaparecer en las PC más nuevas. Las CPU Pentium se ejecutaron en múltiplos del bus del sistema todo el tiempo y las computadoras con arquitectura Intel lo han hecho desde entonces.