stringtranslate.com

Ferranti F100-L

El Ferranti F100-L fue una familia de microprocesadores de 16 bits anunciada por Ferranti en 1976 que entró en producción en 1977. Fue una de las primeras CPU de un solo chip de 16 bits y el primer diseño de 16 bits diseñado en Europa. Fue diseñado con uso militar en mente, capaz de trabajar en un rango de temperatura muy amplio y reforzado contra la radiación . Para ofrecer estas capacidades, el F100 se implementó utilizando transistores de unión bipolar , en oposición al proceso de semiconductor de óxido metálico (MOS) utilizado por la mayoría de los demás procesadores de la época. La familia incluía una variedad de chips de soporte que incluían una unidad de multiplicación/división, varios chips de soporte de memoria, temporizadores y controladores de bus serie .

En 1978, el precio del F100 era de 39 libras esterlinas en cantidades de 100 unidades. Se ofrecieron tres modelos al mismo precio: el modelo comercial tenía una frecuencia de 8 MHz, el modelo industrial, de 6,5 MHz en un rango de temperatura extendido, y el modelo militar, de 3,5 o 5 MHz con un rango de temperatura de -55 C a +125 C. Era muy competitivo en cuanto a costos en los mercados industrial y militar, pero no tanto en el mercado comercial, donde procesadores como el MOS 6502 costaban alrededor de 11 dólares en la misma cantidad de 100 unidades.

La línea se actualizó con el F200-L en 1984. Este era compatible con el software del F100, pero incluía el procesador matemático en el mismo chip, ampliaba el direccionamiento a 128 kB y permitía hasta 1 MB de memoria cuando se combinaba con la nueva unidad de gestión de memoria F220 . Poco después de que el F200 saliera al mercado, en 1987 Ferranti compró International Signal and Control , una empresa que pronto se descubrió que estaba cometiendo grandes cantidades de fraude; esto llevó a Ferranti a la quiebra.

La división de chips fue adquirida por Plessey , que continuó produciendo algunos de los chips de soporte de la familia F100 hasta 1995. Debido a que se utiliza casi exclusivamente en el ámbito militar, el F100 es poco conocido en el campo más amplio de la retroinformática y quedan pocos ejemplares.

Historia

Computadoras anteriores

Ferranti fue una de las primeras empresas en introducir un ordenador comercial, el Ferranti Mark 1 de 1951. A esto le siguieron otros diseños comerciales, en particular el Ferranti Atlas de 1962, durante un tiempo el ordenador más rápido del mundo. En 1963 utilizaron el Ferranti-Packard 6000 , desarrollado independientemente en su división canadiense, como el "ladrillo de oro" en la venta de toda su línea de ordenadores comerciales a International Computers and Tabulators (ICT). ICT utilizó el FP6000 como base para su línea 1900, que se vendió durante años. Antes de la venta, Ferranti vendía alrededor del 24% de todo el hardware informático en el Reino Unido. [1]

Como parte del acuerdo con ICT, a Ferranti se le prohibió realizar ventas en el mercado de computadoras comerciales. Esto los dejó con dos arquitecturas existentes que habían sido desarrolladas para usos militares, el pequeño Ferranti Argus que ya se había convertido en un éxito en el mercado de controladores industriales, y el FM 1600, una máquina más grande utilizada para el manejo de datos en tiempo real, el control de armas y la simulación. [2] Ambos fueron construidos con transistores individuales y circuitos integrados de integración a pequeña escala utilizando el proceso de transistor bipolar MicroNor de Ferranti . Ambos tuvieron mucho éxito en el mercado, generando cientos de millones de libras de ventas hasta fines de la década de 1960. [1]

CDI

Un problema importante con el proceso MicroNor era que una puerta lógica implementada usando un diseño bipolar era significativamente más grande que una que usara el proceso MOSFET contemporáneo, aproximadamente seis veces más grande. [a] En los diseños típicos, el diseño bipolar también requería tres o cuatro pasos de enmascaramiento adicionales, cada uno de los cuales consumía mucho tiempo y aumentaba la posibilidad de que el chip se dañara durante el procesamiento. La experiencia con MicroNor sugirió que un máximo de aproximadamente 100 puertas era el límite para un solo chip, en contraste con MOS, que se usaba para diseños con miles de puertas. Sin embargo, el sistema MOS era más sensible a las impurezas en la materia prima del semiconductor, lo que generaba ruido eléctrico que reducía el rendimiento y también limitaba sus condiciones de funcionamiento. Ninguno de los dos era aceptable en el mercado militar. [4]

En 1971, Ferranti obtuvo la licencia del nuevo proceso de difusión por colector y aislamiento (CDI) de Fairchild Semiconductor . Este proceso, desarrollado originalmente en Bell Labs , produjo una compuerta bipolar drásticamente simplificada que requería menos pasos de enmascaramiento y era solo ligeramente más grande que el MOS equivalente. Esto no interesó mucho ni a Bell ni a Fairchild, que estaban contentos con sus procesos MOS y ninguno de ellos había desarrollado el sistema más allá de las pruebas de producción experimentales. [4]

Ferranti invirtió mucho en el proceso CDI, trabajando para elevar el voltaje operativo de 3 a 5 V para lograr compatibilidad con sus dispositivos de lógica transistor-transistor (TTL) existentes que ya se usaban ampliamente en aplicaciones militares. [3] Esto condujo a una serie de piezas de integración de escala media que utilizaban el proceso. La más conocida entre ellas era una serie de matrices lógicas no comprometidas (ULA, o matriz de compuertas), chips sin un diseño lógico preestablecido que podían ser programados por el desarrollador para producir cualquier circuito requerido. Estos se volvieron muy populares y, en 1986, la empresa tenía aproximadamente el 20% del mercado mundial de ULA. [3]

F100-L

La introducción de los primeros microprocesadores a principios de los años 70 afectó al negocio de computación militar de Ferranti. Si bien estos primeros diseños no eran competitivos en términos de rendimiento, su relación precio/rendimiento era mucho mejor que los diseños discretos de Ferranti, a pesar de varias rondas de reducción de costos en la línea MicroNor a fines de los años 60. Convencido de que el microprocesador representaba un cambio estratégico en las aplicaciones militares, en 1974 el Ministerio de Defensa del Reino Unido acordó patrocinar un esfuerzo de Ferranti para producir un diseño de microprocesador de grado militar utilizando el proceso CDI, cuyo alto manejo de potencia les permitía operar en entornos eléctricamente ruidosos. [1]

Una encuesta interna dentro de la empresa sugirió que una pieza de 8 bits no tendría la capacidad necesaria para las distintas divisiones, y se tomó la decisión de producir una pieza de 16 bits. [4] Basándose en estudios sobre la economía de la fabricación de chips, Ferranti concluyó que tenían un presupuesto de unas 1.000 puertas antes de que el diseño fuera demasiado caro. Para producir un diseño de 16 bits con este número limitado de puertas, la unidad aritmético lógica (ALU) utilizó una arquitectura de bits en serie . Esto ralentiza el rendimiento de las operaciones matemáticas, de modo que el tiempo mínimo necesario para completar una instrucción es de 36 ciclos de reloj. Esta pérdida de rendimiento se compensa en cierta medida con la velocidad de reloj de 8 MHz, aproximadamente el doble de la de las CPU basadas en MOS más rápidas de la época. [5]

Con datos de 16 bits y direcciones de 15 bits, normalmente se necesitarían 31 pines para interconectar el diseño con la computadora en su conjunto. Al desear una solución de bajo costo, tuvo que encajar en un encapsulado en línea dual (DIP) convencional de 40 pines. Para lograr esto, las líneas de datos y direcciones comparten pines y, por lo tanto, requieren múltiples ciclos para completar la lectura de una sola instrucción. [3] A modo de comparación, el Texas Instruments TMS9900 , otro diseño de 16 bits presentado el mismo año, tenía el doble de puertas y estaba empaquetado en un costoso DIP personalizado de 64 pines. [5]

Finalmente, la F100 no logró cumplir con su límite de 1000 compuertas y se construyó con aproximadamente 1500 compuertas en una superficie cuadrada de 5,8 mm. Esto era más grande que su sistema de producción de máscaras existente y requirió que desarrollaran una nueva versión con una relación de reducción óptica mayor. El momento del esfuerzo de diseño también produjo una ventaja; la F100 estaba comenzando a estar lista para la producción justo cuando el sistema Micralign estaba llegando al mercado, y Ferranti adoptó este sistema de alineación de proyección para la producción, mejorando así en gran medida los rendimientos. [6]

Como era habitual en aquella época, el F100 se presentó junto con una familia de chips de soporte, que incluían interfaces de bus de memoria, un controlador de interrupciones, un controlador de acceso directo a memoria y un controlador de bus serial básico . La mayoría de ellos se construyeron utilizando sus chips ULA. [7] Quizás el más interesante de ellos fue el F101-L, lanzado poco después de la CPU, que realizaba multiplicación y división de hardware. Esto se volvió tan común que la CPU pronto se ofreció con el F101 en el mismo chip, como el FBH5092. [7]

Mientras se desarrollaba el F100, Ferranti produjo una versión de la CPU para montaje en rack de varias tarjetas, la F100-M. Esta se utilizó como plataforma de desarrollo y también tuvo algún uso civil. Las herramientas de programación se escribieron inicialmente en FORTRAN , pero la mayoría de los proyectos se escribieron en CORAL una vez que estuvo disponible un compilador para ese lenguaje. [8]

Cuando se anunció por primera vez en 1977, los lotes de 100 unidades tenían un precio de £ 57, pero pronto ese precio se redujo a £ 39 en 1978. [3] Un conjunto que contenía un F100 junto con la interfaz de control F111-L y dos controladores DMA F112-L estaba disponible por £ 18 adicionales. [6] Si bien esto lo hizo poco competitivo con los procesadores comerciales basados ​​​​en MOS como el Zilog Z80 de $ 25 o el MOS 6502 de $ 11 en los mismos lotes de 100 unidades, fue muy competitivo con otros diseños de especificaciones militares como la unidad de clasificación militar del Z80 a $ 165. [9]

El F100 encontró rápidamente aplicación en proyectos de defensa del Reino Unido. Entre los éxitos más conocidos se encuentra la unidad de guía para el misil Sea Eagle . Otros ejemplos incluyen la computadora de artillería para el cañón antiaéreo autopropulsado Falcon , una variedad de computadoras balísticas utilizadas en varios tanques, la CPU para el satélite UoSAT-1 y una serie de aplicaciones informáticas navales. [8] También se utilizó en el campo civil en sistemas de gestión de motores de Ultra Electronic Controls, un limitador de velocidad de hélice de Dowty Group e incluso en el control de equipos de prueba nuclear utilizando el protocolo CAMAC . [9]

F200-L

La línea F100 se actualizó en 1984 con la introducción del F200-L, que era compatible en cuanto a software y pines con el F100. Los cambios principales fueron incluir el procesador matemático, anteriormente el F101, como parte de la CPU base. Las mejoras en la fabricación también permitieron que el F200-L funcionara hasta 20 MHz. El F200 también admitía el bit 16 en direcciones, lo que ampliaba la memoria a 64 kW (128 kB). La nueva unidad de gestión de memoria F220-L, lanzada al mismo tiempo, proporcionaba búsqueda de direcciones dentro de un espacio de memoria de 1 MW (2 MB). [7]

Compra de Plessey

Durante la década de 1980, Ferranti tuvo mucho éxito y disponía de abundante liquidez. Con el deseo de aumentar sus ventas en Estados Unidos, la empresa comenzó a buscar un proveedor militar estadounidense establecido que pudiera comprar y utilizar como base para su propia división en el país. Este proceso finalmente los llevó a comprar International Signal and Control (ISC) en 1987 y, junto con ello, a cambiar el nombre de la empresa a Ferranti International. [10]

Lamentablemente, el negocio principal de ISC, desconocido para Ferranti en ese momento, era la venta ilegal de armas. Esta fuente de ingresos se esfumó con la compra, dejándolos prácticamente sin negocio en marcha. Se produjo un largo proceso judicial y la carga de deuda de la compra junto con el costo del litigio llevaron a Ferranti a la quiebra en diciembre de 1993. [10]

Como parte de los procedimientos de quiebra, la empresa se dividió y la división de semiconductores fue adquirida por Plessey . Posteriormente, esta pasó a formar parte de la unidad Plessey de Siemens después de que Siemens comprara la empresa en 1989. La línea siguió produciéndose durante este período; la propia F100/200 se fabricó hasta al menos 1992 [9] y algunos de los otros miembros hasta 1995 [11].

Hoy

Utilizados principalmente en sistemas militares, hoy en día quedan pocos sistemas F100. Entre ellos, hay un chip F100-L con pantalla en el Museo de Ciencia e Industria de Manchester, también hay dos tipos de chips F100-L con pantalla y un libro DATA en el Museo de Computación ICL, y una pequeña cantidad de tarjetas de un microordenador F100 en el Centro de Historia de la Computación . [9]

Descripción

Registros

La mayoría de los microprocesadores de la década de 1970 utilizaban registros de procesador internos de 8 bits de ancho , un bus de datos de 8 bits y un bus de direcciones de 16 bits . El F100 usaba registros de 16 bits pero solo 15 bits en el bus de direcciones, pero estas direcciones representaban palabras de 16 bits, por lo que la memoria direccionable total era de 64 kB, como era el caso de la mayoría de los procesadores de 8 bits con direccionamiento de 16 bits. [6] En el momento en que se diseñó el F100, la memoria era extremadamente cara y las máquinas típicas de la época generalmente presentaban solo 4 kB de SRAM , por lo que el bit 16 faltante en la dirección no era una consideración importante. [9]

Existen tres registros de usuario principales. El ACC ( acumulador ) de 16 bits y el OR (registro de operandos) se utilizan para almacenar valores que la unidad aritmético lógica (ALU) manipula durante los cálculos y las comparaciones. Los resultados de estas operaciones establecen bits en el CR (registro de condición) de 7 bits. Se utilizan internamente dos registros adicionales; el PC ( contador de programa ) de 15 bits contiene la dirección de la instrucción que se está ejecutando actualmente y tiene una función de incremento automático, mientras que el IR (registro de instrucciones) de 16 bits se utiliza para almacenar la instrucción en sí. Si la instrucción opera en una dirección de memoria, el valor en el IR se mueve a pestillos internos y luego el IR se carga con el valor de la dirección. [9]

El CR contenía un conjunto de siete bits: [9]

Modos de direccionamiento

El F100 tenía un total de cuatro modos de direccionamiento : directo, inmediato, puntero e indirecto inmediato. [7]

El modo directo codificaba un valor constante directamente en la instrucción. Para ello, solo los cinco bits superiores estaban disponibles para el código de operación, lo que permitía un total de 32 instrucciones directas posibles, mientras que los 11 bits inferiores restantes almacenaban el valor numérico. [7] En los mnemónicos estándar del ensamblador, esto se indicaba colocando el valor directamente después de la instrucción. Por ejemplo, AND 0x444realizaría una operación AND bit a bit entre el valor actual en el ACC y la constante de 16 bits 0x444. El modo inmediato era similar al directo, pero el valor al que se accedería se colocaba en los 16 bits siguientes a la instrucción para permitir constantes más grandes. Esto se indicaba con una coma, por ejemplo, AND ,0x4444. [9]

Como era común en ese momento, el F100 presentaba una forma de direccionamiento de página cero a la que se referían como direccionamiento indirecto de puntero, o simplemente puntero. La dirección cero, una palabra de 16 bits, se usaba como puntero de pila , que carecía de su propio registro. Este debía establecerse en un número impar. Las ubicaciones 1 a 255 estaban disponibles para el usuario. El direccionamiento de puntero usaba los 8 bits inferiores de la instrucción para indicar una de las direcciones de página cero, cuyo valor se leería como una dirección, y luego se cargaría el valor en esa dirección. [7] El direccionamiento de puntero se indicaba con una barra, por ejemplo, AND /0x44. [9]

Además, el F100 tenía formas alternativas de las instrucciones de direccionamiento del puntero que realizaban un incremento previo o posterior al decremento del valor del puntero en la página cero. Esto facilita la realización de bucles sobre bloques de datos en la memoria principal sin necesidad de leer y realizar una operación de incremento independiente. [7] Estas se indicaban utilizando el + o - al final del valor del puntero, por ejemplo, AND /0x44+o AND /0x44-. [9]

Por último, el direccionamiento indirecto era similar al direccionamiento de puntero, pero permitía que cualquier valor en la memoria albergara el puntero, en lugar de solo la página cero. [7] Esto es más flexible, pero como la dirección se almacena en los 16 bits que siguen a la instrucción, el uso de este método es más lento que la página cero porque se deben leer dos direcciones de memoria en lugar de una. Este modo se especificaba con un punto, por ejemplo, AND .0x4444. [9]

Algunas de las instrucciones del modo de direccionamiento indirecto también tomaban un tercer valor, que indicaba otra ubicación en la memoria. Esto se usaba para comparaciones bit a bit; las instrucciones incluían qué bit se debía probar como primer operando, la ubicación en la memoria como segundo y la dirección a la que saltar como tercero. [7] Por ejemplo, JBS 0x2 0x4444 0x5555probaría el segundo bit del valor en la ubicación 0x4444 y luego saltaría a la ubicación 0x5555 si estaba establecida, o continuaría si no lo estaba. [9]

Como el formato de direccionamiento en las instrucciones variaba en longitud, la memoria se dividió naturalmente en segmentos. El primero era el puntero de pila en la posición cero, luego las 255 posiciones restantes de la página cero, luego las 2048 posiciones máximas del modo directo (que incluían la página cero) y, finalmente, la memoria restante a la que se podía acceder mediante las direcciones de 15 bits. [9]

Instrucciones

El F100 tenía un total de 29 instrucciones, que combinadas con los distintos modos de direccionamiento dan como resultado 153 códigos de operación. Las instrucciones generalmente se dividen en seis categorías principales: matemáticas y lógicas, matemáticas y lógicas de doble longitud (32 bits), pruebas de bits y bifurcaciones condicionales, manejo de interrupciones y funciones externas. Esta última permite que los bits no utilizados de la instrucción se pasen a chips externos para su procesamiento. [6]

Las instrucciones eran relativamente comunes, pero tenían algunas variaciones. Por ejemplo, ADDy SUBtenían versiones alternativas, ADSy SBS, que realizaban la operación y luego almacenaban el resultado en la dirección del operando. JMPrealizaban un salto incondicional, mientras que CALse denominaba subrutina, lo que la mayoría de los ensambladores llamarían una JSR, y RTNrealizaban un retorno. Las ramificaciones condicionales permitían realizar pruebas y saltos. [7]

El formato de instrucción utilizaba varios campos para codificar las clases de instrucciones. Los cuatro bits más significativos, del 15 al 12, seleccionaban la instrucción real; por ejemplo, 1001 era ADD. El resto de los bits variaba según el modo de direccionamiento. Por ejemplo, si se utilizaba el direccionamiento directo, el bit 11 se establecía en 0, el 10 y el 9 en 1, y los 11 bits restantes codificaban la dirección del operando. Si los 11 bits se establecían en cero, en su lugar se leía el operando de los siguientes 16 bits en la memoria. [9]

Puesta en marcha

Al iniciar o reiniciar, el procesador examina el pin AdSel (selección de dirección). Si el voltaje del pin representa un cero, salta a la posición 0x4000, o 16384 decimal, mientras que si el pin es 1, salta a 0x0800, 2048. Al colocar el código de inicio en la ROM en esas posiciones, se puede automatizar el proceso de arranque. [9]

Notas

  1. ^ Véase los diagramas, Evans p. 21. [3]

Referencias

Citas

  1. ^ abc Evans & Spittles 2019, pág. 20.
  2. ^ "Una historia de las AIO automatizadas" (PDF) . Marina Real . Archivado desde el original (PDF) el 18 de octubre de 2012.
  3. ^ abcde Evans & Spittles 2019, pág. 21.
  4. ^ abc Push 1977, pág. 448.
  5. ^ desde Evans & Spittles 2019, págs. 21-22.
  6. ^ abcd Push 1977, pág. 449.
  7. ^ abcdefghij Evans y Spittles 2019, pág. 22.
  8. ^ desde Evans & Spittles 2019, pág. 23.
  9. ^abcdefghijklmno Evans 2016.
  10. ^ ab "El escándalo ISC/Ferranti". Archivado desde el original el 17 de diciembre de 2017. Consultado el 13 de diciembre de 2008 .
  11. ^ Evans y Spittles 2019, pág. 25.

Bibliografía

Enlaces externos