Articulo de referencia

PDP-10

Los sistemas PDP-10 en ARPANET están resaltados en amarillo. El PDP-10 de Digital Equipment Corporation (DEC) , comercializado posteriormente como DECsystem-10 , es una familia ...

Los sistemas PDP-10 en ARPANET están resaltados en amarillo.

El PDP-10 de Digital Equipment Corporation (DEC) , comercializado posteriormente como DECsystem-10 , es una familia de computadoras centrales [ 1 ] fabricadas desde 1966, [ 2 ] entregadas desde diciembre de 1967, [ 3 ] y descontinuadas en 1983. [ 4 ] [ 5 ] [ 6 ] Los modelos de la década de 1970 y posteriores se comercializaron bajo el nombre DECsystem-10, especialmente cuando el sistema operativo TOPS-10 se generalizó. [ a ]

La arquitectura del PDP-10 es casi idéntica a la del PDP-6 de DEC , con una longitud de palabra de 36 bits y un conjunto de instrucciones ligeramente ampliado. La principal diferencia radica en una implementación de hardware mucho más avanzada. Algunos aspectos del conjunto de instrucciones son inusuales, sobre todo las instrucciones de byte , que operan sobre campos de bits de cualquier tamaño, desde 1 hasta 36 bits inclusive, según la definición general de byte como una secuencia contigua de un número fijo de bits , en contraposición a su definición moderna de "ocho bits".

El PDP-10 se encontraba en muchos centros informáticos universitarios y laboratorios de investigación durante la década de 1970, entre los que destacan el Laboratorio de Computación Aiken de la Universidad de Harvard , el Laboratorio de IA y el Proyecto MAC del MIT , SAIL de Stanford , Computer Center Corporation (CCC), ETH (ZIR) y la Universidad Carnegie Mellon . Sus principales sistemas operativos , TOPS-10 y TENEX , y en menor medida ITS en un pequeño número de centros influyentes, se utilizaron para desarrollar la primera ARPANET . Las palabras de 36 bits eran especialmente adecuadas para Lisp en aquel entonces, ya que, al dividirse en dos partes de 18 bits cada una para usarse como punteros, podían direccionar objetos de 256K en lugar de 64K en una máquina equivalente de 32 bits. Por estas razones, el PDP-10 ocupa un lugar destacado en la historia de los primeros hackers .

Los proyectos para extender la línea PDP-10 quedaron eclipsados ​​por el éxito del superminiordenador VAX de DEC , que no guardaba relación con la anterior, y la cancelación de la línea PDP-10 se anunció en 1983. Según los informes, DEC vendió "alrededor de 1500 DECsystem-10 a finales de 1980". [ 7 ]

Modelos y evolución técnica

Módulo Flip-Chip de un DEC KA10, que contiene 9 transistores, 1971.
Terminador de bus de memoria de enganche rápido, utilizado en KI10, 1973.
Placa base de CPU con cableado envuelto KL10

El procesador original del PDP-10 es el KA10, presentado en 1968. [ 8 ] Utiliza transistores discretos empaquetados en la tecnología Flip-Chip de DEC, con placas base cableadas mediante un proceso de fabricación semiautomatizado. Su tiempo de ciclo es de 1  μs y su tiempo de suma de 2,1  μs. [ 9 ] En 1973, el KA10 fue reemplazado por el KI10, que utiliza lógica transistor-transistor (TTL) SSI . A este se unió en 1975 el KL10 más rápido que está construido con lógica acoplada por emisor (ECL), microprogramado y tiene memoria caché . El rendimiento del KL10 era de aproximadamente 1  megaflops utilizando números de punto flotante de 36 bits en la reducción de filas de matriz. Era ligeramente más rápido que el VAX-11/750 más nuevo , aunque más limitado en memoria.

En 1978 se presentó un modelo más pequeño y económico, el KS10, que utilizaba componentes TTL y Am2901 de división de bits e incluía el bus Unibus PDP-11 para conectar periféricos. El KS10 se comercializó como DECSYSTEM-2020, parte de la gama DECSYSTEM-20; fue la incursión de DEC en el ámbito del procesamiento distribuido y se presentó como "el sistema informático central de menor coste del mundo". [ 10 ]

KA10

El KA10 tiene una capacidad máxima de memoria principal (tanto virtual como física) de 256 kilopalabras (equivalente a 1152 kilobytes ); la memoria principal mínima requerida es de 16 kilopalabras. Tal como lo suministró DEC, no incluía hardware de paginación ; la gestión de memoria consiste en dos conjuntos de registros de protección y reubicación, llamados registros base y de límites . Esto permite que cada mitad del espacio de direcciones de un usuario se limite a una sección establecida de la memoria principal , designada por la dirección física base y el tamaño. Esto permite el modelo de segmento de código compartible de solo lectura separado (normalmente el segmento alto) y segmento de datos/ pila de lectura/escritura (normalmente el segmento bajo) utilizado por TOPS-10 y posteriormente adoptado por Unix . Algunas máquinas KA10, primero en el MIT y luego en Bolt, Beranek y Newman (BBN), fueron modificadas para agregar memoria virtual [ 11 ] [ 12 ] y soporte para paginación bajo demanda , [ 13 ] [ 14 ] y más memoria física.   

El KA10 pesa aproximadamente 1920 libras (870 kg) . [ 15 ] 

El 10/50 era la máquina KA monoprocesadora de gama alta [ 16 ] en el momento en que se introdujo el paquete de software PA1050 . Otros dos modelos KA10 eran el monoprocesador 10/40 y el procesador dual 10/55. [ 17 ] [ b ]

KI10

El KI10 introdujo soporte para la gestión de memoria paginada y para un espacio de direcciones físicas mayor de 4 megapalabras . Los modelos KI10 incluyen el 1060, el 1070 y el 1077, este último con dos CPU. 

KL10

KL10-DA 1090 CPU y 6 gabinetes de memoria

Los modelos originales KL10 PDP-10 (también comercializados como DECsystem-10) (1080, 1088, etc.) utilizan el bus de memoria original del PDP-10, con módulos de memoria externos. En este contexto, módulo se refería a un gabinete, con dimensiones aproximadas de 30 pulg. × 75 pulg. × 30 pulg . (ancho × alto × profundidad), con una capacidad de 32 a 256  kWords de memoria de núcleo magnético . Los procesadores utilizados en el DECSYSTEM-20 (2040, 2050, 2060, 2065), comúnmente pero incorrectamente llamados "KL20", utilizan memoria interna, montada en el mismo gabinete que la CPU . Los modelos 10xx también tienen un empaque diferente; vienen en los gabinetes altos originales del PDP-10, en lugar de los bajos utilizados posteriormente para el DECSYSTEM-20. Las diferencias entre los modelos 10xx y 20xx radicaban principalmente en el sistema operativo que utilizaban: TOPS-10 o TOPS-20 . Aparte de eso, las diferencias son más estéticas que reales; algunos sistemas 10xx tienen memoria interna y E/S al estilo TOPS-20, mientras que algunos sistemas 20xx tienen memoria externa y un bus de E/S al estilo TOPS-10. En particular, todos los sistemas ARPAnet TOPS-20 contaban con un bus de E/S, ya que la interfaz AN20 IMP era un dispositivo de bus de E/S. Ambos podían ejecutar microcódigo TOPS-10 o TOPS-20 y, por lo tanto, el sistema operativo correspondiente.

Modelo B

La versión posterior del modelo B de los procesadores 2060 elimina el límite de 256 kilopalabras en el espacio de direcciones virtuales al admitir hasta 32 "secciones" de hasta 256 kilopalabras cada una, junto con cambios sustanciales en el conjunto de instrucciones. En la práctica, ambas versiones son CPU diferentes. El primer sistema operativo que aprovecha las capacidades del modelo B es TOPS-20 versión 3, y el direccionamiento extendido en modo usuario se ofrece en TOPS-20 versión 4. Las versiones de TOPS-20 posteriores a la versión 4.1 solo se ejecutan en un modelo B.       

Las versiones 7.02 y 7.03 de TOPS-10 también utilizan direccionamiento extendido cuando se ejecutan en un  procesador 1090 (o 1091) Modelo B con microcódigo TOPS-20.

MCA25

La última actualización del KL10 fue la actualización MCA25 de un 2060 a un 2065 (o de un 1091 a un 1095), que proporcionó algunas mejoras de rendimiento para los programas que se ejecutan en varias secciones.

Autobús de Massachusetts

La arquitectura de E/S de las máquinas KL de la serie 20xx se basa en un diseño de bus de DEC llamado Massbus . Si bien muchos atribuyeron el éxito de la PDP-11 a la decisión de DEC de convertir la Unibus de la PDP-11 en una arquitectura abierta, DEC volvió a su filosofía anterior con la KL, lo que convirtió a Massbus en un sistema único y propietario. En consecuencia, no existían fabricantes de periféricos del mercado de accesorios que produjeran dispositivos para Massbus, y DEC optó por fijar el precio de sus propios dispositivos Massbus, en particular la unidad de disco RP06, con un sobreprecio considerable respecto a los dispositivos compatibles con IBM comparables. CompuServe , por ejemplo, diseñó su propio controlador de disco alternativo que podía operar en Massbus, pero conectarse a subsistemas de disco IBM estilo 3330.

Procesadores de interfaz

Interfaz KL10 PDP-11/40

Las máquinas de la clase KL cuentan con un procesador frontal PDP-11/40 para el arranque y la monitorización del sistema. El PDP-11 se inicia desde una unidad de disquete RP06 de doble puerto (o, alternativamente, desde una unidad de disquete de 8" o DECtape ), y a continuación se le pueden dar comandos para que inicie el procesador principal, que normalmente se inicia desde la misma unidad de disquete RP06 que el PDP-11. Una vez que el procesador principal está en funcionamiento, el PDP-11 realiza funciones de vigilancia.

La comunicación con los mainframes de IBM, incluida la entrada remota de trabajos (RJE), se realizaba a través de un procesador frontal DN61 o DN-64, utilizando un PDP-11/40 o PDP-11/34a. [ 18 ] [ 19 ]

KS10

KS10

El KS10 es un PDP-10 de menor costo construido con chips AMD 2901 de división de bits y un microprocesador Intel 8080A como procesador de control. [ 20 ] El diseño del KS10 se limitó a ser un Modelo  A, aunque la mayoría de las rutas de datos necesarias para soportar la  arquitectura del Modelo B están presentes. Sin duda, esto tenía como objetivo segmentar el mercado , pero acortó considerablemente la vida útil del KS10.

El sistema KS utiliza un procedimiento de arranque similar al del KL10. El procesador de control 8080 carga el microcódigo desde un disco o cinta magnética RM03, RM80 o RP06 y, a continuación, inicia el procesador principal. Tras el arranque del sistema operativo, el 8080 cambia de modo y controla la consola y los puertos serie de diagnóstico remoto.

Unidades de cinta magnética

El subsistema de control de cinta magnética TM10 admitía dos modelos de unidades de cinta :

  • Transporte de cinta magnética TU20 – 45 ips (pulgadas por segundo)
  • Transporte de cinta magnética TU30 – 75 ips (pulgadas por segundo)
  • Transporte de cinta magnética TU45 – 75 ips (pulgadas por segundo)

Se podía admitir una combinación de hasta ocho de estos dispositivos, utilizando unidades de 7 o 9 pistas . Los modelos TU20 y TU30 estaban disponibles en versiones A (9 pistas) y B (7 pistas), y todas las unidades de cinta mencionadas podían leer y escribir en cintas compatibles con IBM de 200 BPI , 556 BPI y 800 BPI.   

El controlador TM10 Magtape estaba disponible en dos submodelos:

  • El TM10A realizaba el robo de ciclos hacia/desde la memoria del PDP-10 utilizando el procesador aritmético KA10.
  • TM10B accedió a la memoria PDP-10 utilizando un canal de datos DF10, sin "robo de ciclo" del procesador aritmético KA10 [ 21 ] : 49

Arquitectura del conjunto de instrucciones

Desde los primeros PDP-6 hasta los KL-10 y KS-10, la arquitectura del conjunto de instrucciones en modo usuario se mantiene prácticamente sin cambios. Esta sección describe dicha arquitectura. El único cambio importante es la incorporación del direccionamiento extendido multisección en el KL-10; este direccionamiento, que modifica el proceso de generación de la dirección efectiva de una instrucción, se analiza brevemente al final. En general, el sistema utiliza palabras e instrucciones de 36 bits y direcciones de 18 bits.

Registros

Hay 16 registros de propósito general de 36 bits. La mitad derecha de estos registros (excepto el registro 0) puede usarse para indexación. Algunas instrucciones operan sobre pares de registros. El registro "PC Word" está dividido por la mitad; los 18 bits de la derecha contienen el contador de programa y los 13 bits de la izquierda contienen los indicadores de estado del procesador , con cinco ceros entre ambas secciones. Los bits del registro de condición, que registran los resultados de las operaciones aritméticas ( por ejemplo, desbordamiento), solo pueden ser accedidos por unas pocas instrucciones.

En los sistemas KA-10 originales, estos registros son simplemente las primeras 16 palabras de la memoria principal . La opción de hardware "registros rápidos" los implementa como registros en la CPU, que siguen siendo direccionables como las primeras 16 palabras de memoria. Algunos programas aprovechan esto utilizando los registros como caché de instrucciones , cargando código en ellos y luego saltando a la dirección correspondiente; esto se utiliza, por ejemplo, en Maclisp para implementar una versión del recolector de basura . [ 22 ] Los modelos posteriores tienen todos los registros en la CPU.

Modo supervisor

Existen dos modos de funcionamiento: modo supervisor y modo usuario. Además de la diferencia en el acceso a la memoria descrita anteriormente, los programas en modo supervisor pueden ejecutar operaciones de entrada/salida.

La comunicación entre el modo de usuario y el modo supervisor se realiza mediante Operaciones de Usuario No Implementadas (UUO): instrucciones que no están definidas por el hardware y que el supervisor intercepta. Este mecanismo también se utiliza para emular operaciones que, en modelos más económicos, podrían no tener implementaciones de hardware.

Tipos de datos

Los principales tipos de datos que admite directamente la arquitectura son la aritmética de enteros de 36 bits en complemento a dos (incluidas las operaciones bit a bit), el punto flotante de 36 bits y las medias palabras. El punto flotante extendido de 72 bits se admite mediante instrucciones especiales diseñadas para usarse en secuencias de múltiples instrucciones. Los punteros de byte se admiten mediante instrucciones especiales. Una palabra estructurada como una mitad de "conteo" y una mitad de "puntero" facilita el uso de regiones de memoria delimitadas, en particular las pilas .

Instrucciones

Las instrucciones se almacenan en palabras de 36 bits. Existen dos formatos: instrucciones generales e instrucciones de entrada/salida . [ 23 ]

En las instrucciones generales, los 9 bits más a la izquierda, del 0 al 8, contienen un código de operación de instrucción . Muchos de los posibles códigos 512 no están definidos en las máquinas del modelo base y están reservados para su expansión, como la adición de una unidad de punto flotante de hardware . Después del código de operación, en los bits del 9 al 12, se encuentra el número de registro que se utilizará para la instrucción. Todas las instrucciones de entrada/salida comienzan con los bits del 0 al 2 establecidos en 1 (valor decimal 7), los bits del 3 al 9 contienen un número de dispositivo y los bits del 10 al 12 el código de operación de la instrucción. [ 23 ]

En ambos formatos, los bits 13 a 35 se utilizan para formar la "dirección efectiva", E. Los bits 18 a 35 contienen una dirección numérica constante, Y. Esta dirección se puede modificar sumando el valor de 18 bits en un registro, X, el número de registro indicado en los bits 14 a 17. Si estos se establecen a cero, no se utiliza indexación, lo que significa que el registro 0 no se puede utilizar para indexar. El bit 13, I, indica indirección, lo que significa que la dirección efectiva final utilizada por la instrucción no es E, sino la dirección almacenada en la ubicación de memoria E. Cuando se utiliza la indirección, los datos en la palabra E se interpretan de la misma manera que la disposición de la instrucción; los bits 0 a 12 se ignoran, y los bits 13 a 35 forman I, X e Y como se indicó anteriormente.

La ejecución de la instrucción comienza calculando E. Se suma el contenido del registro X (si no es 0) al desplazamiento Y; luego, si el bit indirecto es 1, se obtiene el valor en E y se repite el cálculo de la dirección efectiva. Si I es 1 en el valor almacenado en E en la memoria, el sistema también realizará la indirección a través de esa dirección, posiblemente siguiendo muchos pasos de este tipo. [ 23 ] Este proceso continúa hasta que se alcanza una palabra indirecta con un bit indirecto cero. La indirección de este tipo era una característica común de los diseños de procesadores de esta época.

En modo supervisor, las direcciones corresponden directamente a la memoria física. En modo usuario, las direcciones se traducen a memoria física. Los modelos anteriores asignaban a cada proceso de usuario una memoria "alta" y una "baja": las direcciones con un bit superior 0 utilizaban un registro base y las que tenían un bit superior 1, otro. Cada segmento era contiguo. Las arquitecturas posteriores incorporaban acceso a memoria paginada, lo que permitía espacios de direcciones no contiguos. Los registros de propósito general de la CPU también podían direccionarse como ubicaciones de memoria del 0 al 15.

Instrucciones generales

Existen tres clases principales de instrucciones generales: aritméticas, lógicas y de movimiento; salto condicional; y salto condicional (que puede tener efectos secundarios). También existen varias clases más pequeñas.

Las operaciones aritméticas, lógicas y de movimiento incluyen variantes que operan de inmediato a registro, de memoria a registro, de registro a memoria, de registro y memoria a ambos, o de memoria a memoria. Dado que los registros pueden ser direccionados como parte de la memoria, también se definen operaciones de registro a registro. (No todas las variantes son útiles, aunque están bien definidas). Por ejemplo, la operación ADD tiene como variantes ADDI (sumar una constante inmediata de 18 bits a un registro), ADDM (sumar el contenido del registro a una ubicación de memoria), ADDB (sumar a ambos , es decir, sumar el contenido del registro a la memoria y colocar el resultado en el registro). Un ejemplo más elaborado es HLROM ( Mitad izquierda a derecha , unos a memoria ) , que toma la mitad izquierda del contenido del registro, la coloca en la mitad derecha de la ubicación de memoria y reemplaza la mitad izquierda de la ubicación de memoria con unos. Las instrucciones de media palabra también se utilizan para listas enlazadas: HLRZ es el operador CAR de Lisp; HRRZ es CDR.

Las operaciones de salto condicional examinan el contenido de los registros y saltan a una ubicación determinada según el resultado de la comparación. Los mnemónicos para estas instrucciones comienzan con JUMP, JUMPA significa "saltar siempre" y JUMP significa "saltar nunca"; como consecuencia del diseño simétrico del conjunto de instrucciones, contiene varias operaciones nulas como JUMP. Por ejemplo, JUMPN A,LOC salta a la dirección LOC si el contenido del registro A no es cero. También existen saltos condicionales basados ​​en el registro de condición del procesador mediante la instrucción JRST. En los procesadores KA10 y KI10, JRST es más rápido que JUMPA, por lo que el salto incondicional estándar es JRST.

Las operaciones de salto condicional comparan el contenido de los registros y la memoria, y omiten la siguiente instrucción (que suele ser un salto incondicional) según el resultado de la comparación. Un ejemplo sencillo es CAMN A,LOC, que compara el contenido del registro A con el de la ubicación LOC y omite la siguiente instrucción si no coinciden. Un ejemplo más elaborado es TLCE A,LOC (que se lee "Prueba de complemento a la izquierda, omitir si es igual"), que, utilizando el contenido de LOC como máscara, selecciona los bits correspondientes en la mitad izquierda del registro A. Si todos esos bits son iguales a cero, se omite la siguiente instrucción; en cualquier caso, se reemplazan esos bits por su complemento booleano.

Algunas clases de instrucciones más pequeñas incluyen las instrucciones de desplazamiento/rotación y las instrucciones de llamada a procedimiento. Son particularmente notables las instrucciones de pila PUSH y POP, y las correspondientes instrucciones de llamada a pila PUSHJ y POPJ. Las instrucciones de byte utilizan un formato especial de palabra indirecta para extraer y almacenar campos de bits de tamaño arbitrario, posiblemente avanzando un puntero a la siguiente unidad. [ c ]

Instrucciones de entrada/salida

El PDP-10 no utiliza dispositivos mapeados en memoria , a diferencia del PDP-11 y las máquinas DEC posteriores. Se utiliza un conjunto de instrucciones independiente para transferir datos hacia y desde dispositivos definidos por un número de dispositivo en la instrucción. Los bits 3 a 9 contienen el número de dispositivo, y los 7 bits permiten un total de 128 dispositivos. Las instrucciones permiten la transferencia de datos hacia y desde dispositivos palabra por palabra (DATAO y DATAI) o bloque por bloque (BLKO, BLKI). [ 24 ]

En el modo de bloque, el valor al que apunta E es una palabra en memoria que se divide en dos: los 18 bits de la derecha indican una dirección de inicio en memoria donde se encuentran (o se escriben) los datos, y los 18 bits de la izquierda son un contador. Las instrucciones de bloque incrementan ambos valores cada vez que se llaman, aumentando así el contador y avanzando a la siguiente ubicación en memoria. A continuación, se ejecuta DATAO o DATAI. Finalmente, se comprueba el lado del contador del valor en E; si es distinto de cero, se omite la siguiente instrucción. Si es cero, se ejecuta la siguiente instrucción, normalmente un JUMP que regresa al inicio del bucle. [ 25 ] Las instrucciones BLK son, en efecto, pequeños programas que iteran sobre instrucciones DATA e increment, pero al estar esto implementado en el propio procesador, se evita la necesidad de leer repetidamente la serie de instrucciones de la memoria principal y, por lo tanto, el bucle se ejecuta mucho más rápidamente. [ 26 ]

El conjunto final de instrucciones de E/S se utiliza para escribir y leer códigos de condición en el dispositivo, CONO y CONI. [ 27 ] Además, CONSZ realizará una operación CONI, aplicará una máscara de bits a los datos recuperados comparándolos con el valor en E, y luego omitirá la siguiente instrucción si es cero, de forma similar a los comandos BLK. Solo se comprueban los 18 bits de la derecha en CONSZ. [ 28 ]

Manejo de interrupciones

Un segundo uso de la instrucción CONO es establecer el nivel de prioridad del dispositivo para el manejo de interrupciones . La instrucción CONO tiene tres bits, del 33 al 35, que permiten configurar el dispositivo en los niveles 0 al 7. El nivel 1 es el más alto, lo que significa que si dos dispositivos generan una interrupción al mismo tiempo, el dispositivo con el número más bajo comenzará a procesar. El nivel 0 significa "sin interrupciones", por lo que un dispositivo configurado en el nivel 0 no detendrá el procesador incluso si genera una interrupción. [ 29 ]

Cada canal del dispositivo tiene dos ubicaciones de memoria asociadas, una en 40+2N y la otra en 41+2N, donde N es el número de canal. Por lo tanto, el canal 1 utiliza las ubicaciones 42 y 43. Cuando se recibe y acepta la interrupción, lo que significa que no hay ninguna interrupción de mayor prioridad en ejecución, el sistema se detiene en la siguiente parte de lectura de memoria del ciclo de instrucción y, en su lugar, comienza el procesamiento en la dirección almacenada en la primera de esas dos ubicaciones. Es responsabilidad del manejador de interrupciones desactivar el nivel de interrupción cuando se completa, lo que puede hacer ejecutando una instrucción CONO, DATA o BLK. [ 29 ] Como caso especial, si la instrucción es BLKI o BLKO, y el contador incrementado no es cero, la interrupción se descarta inmediatamente; de ​​lo contrario, se ejecuta la segunda instrucción para procesar la interrupción. Esto proporcionó una versión de bajo costo y rendimiento medio del acceso directo a memoria.

Dos de los números de dispositivo están reservados para fines especiales. El dispositivo 0 es la consola del panel frontal del ordenador; al leer este dispositivo se recuperan los ajustes de los interruptores del panel, mientras que al escribir se encienden los indicadores de estado. El dispositivo 4 es la "interrupción de prioridad", que se puede leer mediante CONI para obtener información adicional sobre una interrupción que se haya producido. [ 30 ]

Direccionamiento extendido

En los procesadores que admiten direccionamiento extendido, el espacio de direcciones se divide en "secciones". Una dirección de 18 bits es una "dirección local", que contiene un desplazamiento dentro de una sección, y una "dirección global" es de 30 bits, dividida en un número de sección de 12 bits en la parte inferior de los 18 bits izquierdos y un desplazamiento de 18 bits dentro de esa sección en los 18 bits derechos. Un registro puede contener un "índice local", con un desplazamiento sin signo de 18 bits o una dirección local en los 18 bits derechos, o un "índice global", con un desplazamiento sin signo de 30 bits o una dirección global en los 30 bits derechos. Una palabra indirecta puede ser una "palabra indirecta local", con su bit más alto activado, los siguientes 12 bits reservados y los bits restantes siendo un bit indirecto, un código de registro de 4 bits y un desplazamiento de 18 bits, o una "palabra indirecta global", con su bit más alto desactivado, el siguiente bit siendo un bit indirecto, los siguientes 4 bits siendo un código de registro y los 30 bits restantes siendo un desplazamiento. [ 31 ] : 1-26–1-30

El proceso de cálculo de la dirección efectiva genera un número de sección de 12 bits y un desplazamiento de 18 bits dentro de ese segmento. [ 31 ] : 1-26–1-30

Software

Sistemas operativos

El sistema operativo original del PDP-10 se llamaba simplemente "Monitor", pero más tarde se renombró como TOPS-10 . Finalmente, el propio sistema PDP-10 pasó a llamarse DECsystem-10. Las primeras versiones de Monitor y TOPS-10 sirvieron de base para el sistema operativo WAITS de Stanford y el sistema de tiempo compartido CompuServe .

Con el tiempo, algunos operadores de PDP-10 comenzaron a utilizar sistemas operativos ensamblados a partir de componentes principales desarrollados fuera de DEC. Por ejemplo, el planificador principal podía provenir de una universidad, el servicio de disco de otra, y así sucesivamente. Los servicios comerciales de tiempo compartido, como CompuServe , On-Line Systems, Inc. (OLS) y Rapidata , contaban con sofisticados grupos internos de programación de sistemas para poder modificar el sistema operativo según las necesidades de sus propios negocios, sin depender de DEC ni de terceros. También existen sólidas comunidades de usuarios, como DECUS, a través de las cuales los usuarios pueden compartir el software que han desarrollado.

BBN desarrolló su propio sistema operativo alternativo, TENEX , que rápidamente se popularizó en la comunidad de investigación. Posteriormente, DEC adaptó TENEX al KL10, lo mejoró considerablemente y lo denominó TOPS-20 , dando origen a la línea DECSYSTEM-20.

El MIT , que había desarrollado CTSS, un sistema de tiempo compartido compatible para ejecutarse en su IBM 709 (y posteriormente en un sistema IBM 7094 modificado), [ 32 ] también desarrolló ITS, un sistema de tiempo compartido incompatible [ 33 ] para ejecutarse en su PDP-6 (y posteriormente en un PDP-10 modificado).

Tymshare desarrolló TYMCOM-X , derivado de TOPS-10 pero utilizando un sistema de archivos basado en páginas como TOPS-20. [ 34 ]

Lenguajes de programación

DEC mantuvo DECsystem-10 FORTRAN IV (F40) para el PDP-10 desde 1967 hasta 1975 [ 35 ].

MACRO-10 (compilador de macros de lenguaje ensamblador), COBOL, BASIC y AID eran compatibles con los monitores de multiprocesamiento e intercambio. [ 36 ]

En la práctica, en el campus del Instituto Politécnico de Hatfield, alrededor de 1970, se disponía de otros entornos de programación, como LISP y SNOBOL.

Clones

Entre 1971 y 1972, los investigadores de Xerox PARC se sintieron frustrados por la negativa de la alta dirección de la empresa a permitirles comprar una PDP-10. Xerox acababa de adquirir Scientific Data Systems (SDS) en 1969 y quería que PARC utilizara una máquina de SDS. En su lugar, un grupo liderado por Charles P. Thacker diseñó y construyó dos sistemas clon de PDP-10 llamados MAXC (pronunciado como Max, en honor a Max Palevsky , quien había vendido SDS a Xerox) para su propio uso. MAXC también era un acrónimo inverso de Multiple Access Xerox Computer (Computadora Xerox de Acceso Múltiple). MAXC ejecutaba una versión modificada de TENEX. [ 37 ]

Los intentos de terceros por vender clones del PDP-10 no tuvieron mucho éxito; véanse Foonly , Systems Concepts y XKL .

Uso por parte de CompuServe

Una de las mayores colecciones de sistemas con arquitectura DECsystem-10 jamás reunidas se encontraba en CompuServe , que, en su apogeo, operaba más de 200 sistemas débilmente acoplados en tres centros de datos en Columbus, Ohio . CompuServe utilizaba estos sistemas como "hosts", proporcionando acceso a aplicaciones comerciales y al Servicio de Información de CompuServe. Si bien los primeros sistemas de este tipo se compraron a DEC, cuando DEC abandonó la arquitectura PDP-10 en favor de VAX , CompuServe y otros clientes de PDP-10 comenzaron a comprar computadoras compatibles de Systems Concepts. A partir de enero de 2007CompuServe utilizaba un pequeño número de máquinas con arquitectura PDP-10 para realizar algunas funciones de facturación y enrutamiento.

Las fuentes de alimentación principales de las máquinas de la serie KL eran tan ineficientes que los ingenieros de CompuServe diseñaron una fuente de alimentación de reemplazo que consumía aproximadamente la mitad de energía. CompuServe ofreció licenciar gratuitamente el diseño de su fuente de alimentación para la serie KL a DEC si esta se comprometía a instalar la fuente de alimentación más eficiente en cualquier máquina KL nueva que comprara CompuServe. DEC rechazó la oferta.

Panel de luz MF10 con lámparas LED

Otra modificación realizada al PDP-10 por los ingenieros de CompuServe fue la sustitución de los cientos de lámparas indicadoras incandescentes del gabinete del procesador KI10 por módulos de lámparas LED. El coste de la conversión se compensó fácilmente con el ahorro en el consumo eléctrico, la reducción del calor y la mano de obra necesaria para reemplazar las lámparas fundidas. Digital adoptó esta medida en todo el mundo. La imagen de la derecha muestra el panel de luces de la memoria MF10, contemporánea de la CPU KI10. Este componente forma parte de un museo de informática y se le instalaron LED en 2008 únicamente con fines demostrativos. Los procesadores KL y KS no contaban con bancos de lámparas indicadoras similares, solo en la memoria y los periféricos de generaciones anteriores.

Cancelación e influencia

El PDP-10 acabó siendo eclipsado por las superminicomputadoras VAX (descendientes del PDP-11 ) cuando DEC reconoció que las líneas de productos PDP-10 y VAX competían entre sí y decidió concentrar sus esfuerzos de desarrollo de software en la más rentable VAX. La cancelación de la línea de productos PDP-10 se anunció en 1983, incluyendo la cancelación del proyecto Jupiter, que tenía en marcha para producir un nuevo procesador PDP-10 de gama alta (a pesar de que dicho proyecto se encontraba en buen estado en el momento de la cancelación), y el proyecto Minnow, que pretendía producir un PDP-10 de escritorio, que posiblemente se encontraba entonces en fase de prototipo. [ 38 ]

Este suceso supuso el fin de ITS y de las culturas técnicas que habían dado origen al archivo de jerga original , pero en la década de 1990 se había convertido en una especie de insignia de honor entre los hackers veteranos el haber dado sus primeros pasos con un PDP-10.

Las instrucciones en lenguaje ensamblador LDB y DPB (cargar/depositar byte ) del PDP-10 siguen vigentes como funciones en el lenguaje de programación Common Lisp . Consulte la sección "Referencias" del artículo sobre LISP . El tamaño de palabra de 36 bits del PDP-6 y el PDP-10 se vio influenciado por la conveniencia de programación que suponía tener dos punteros LISP, de 18 bits cada uno, en una sola palabra.

Will Crowther creó Adventure , el prototipo de juego de aventuras para ordenador, para un PDP-10. Don Daglow creó el primer juego de béisbol para ordenador (1971) y Dungeon (1975), el primer videojuego de rol para PDP-10. Walter Bright creó originalmente Empire para el PDP-10. Roy Trubshaw y Richard Bartle crearon el primer MUD para PDP-10. Zork se programó para PDP-10. Infocom utilizó PDP-10 para el desarrollo y las pruebas de juegos. [ 39 ]

Bill Gates y Paul Allen escribieron originalmente Altair BASIC utilizando un simulador Intel 8080 que se ejecutaba en una PDP-10 en la Universidad de Harvard . Allen adaptó el ensamblador de la PDP-10 como ensamblador cruzado para el chip 8080. [ 40 ] Poco después fundaron Microsoft .

Emulación o simulación

El software para simulación de computadoras históricas, SIMH , contiene módulos para emular todos los modelos de CPU PDP-10 en una máquina basada en Windows o Unix. Las copias de las cintas de distribución originales de DEC están disponibles para su descarga desde Internet para que se pueda establecer un sistema TOPS-10 o TOPS-20 en funcionamiento. ITS y WAITS también están disponibles para SIMH. [ 41 ] [ 42 ] Una réplica del panel frontal PDP-10 [ 43 ] para el procesador KA10 está disponible para la emulación SIMH que se ejecuta en una Raspberry Pi .

El software KLH10 de Ken Harrenstien para sistemas tipo Unix emula un procesador KL10B con direccionamiento extendido y 4 MW de memoria o un procesador KS10 con 512 KW de memoria. La emulación del KL10 admite la versión 442 del microcódigo KL10, lo que le permite ejecutar las versiones finales de TOPS-10 y TOPS-20. La emulación del KS10 admite el microcódigo ITS v.262 para la versión final de KS10 ITS y el microcódigo DEC v.130 para las versiones finales de KS TOPS-10 y TOPS-20. [ 44 ]

Este artículo se basa en parte en el Jargon File , que es de dominio público.

Véase también

Notas

  1. El nombre TOPS-10 se anunció en 1970.
  2. También se comercializa como 1040, 1050, 1055, según los modelos KI/KL como 1060, 1070, etc.
  3. cf. Direccionamiento por bytes §  Sistemas híbridos

Referencias

  1. Ceruzzi 2003 , p. 208 : "Era grande ; incluso la propia literatura de DEC lo llamaba [al PDP-10] ordenador central". 
  2. Ceruzzi 2003 , pág. 139 
  3. "¡Apuesto a que todavía tienen que pagarlo!" . Computerworld . 13 de diciembre de 1967. pág.  7 . Consultado el 23 de septiembre de 2025 .
  4. Winstanley, Graham (1991). Inteligencia artificial en ingeniería . West Sussex, Inglaterra: Wiley, Chichester. pág. 391. ISBN  9780471926030El PDP-10... se dejó de fabricar en 1983 .
  5. "El PDP-10 se dejó de fabricar en 1983, pero el PDP-11 no se dejó de fabricar hasta 1997" . ... con terceros que siguen vendiendo piezas, así que en realidad no es tan...
  6. "Definiciones para pdp-10" . definitions.net . El PDP-10 fue una familia de computadoras centrales fabricadas... la cancelación de la línea PDP-10 se anunció en 1983.
  7. Larry Lettieri (noviembre de 1980). "Foonly desafía las patentes de DEC con un emulador". Mini-Micro Systems . págs. 15, 17. 
  8. Manual de Mantenimiento del Procesador Central PDP-10 KA10 Tomo I (PDF) . Diciembre de 1968. 10 DE DICIEMBRE-HMAA-D.
  9. Digital Equipment Corporation, Manual de computadoras pequeñas digitales , pág. 376.
  10. "DECSYSTEM-2020" . Cronología de la informática digital . 21 de abril de 1998.
  11. Strollo, Theodore R.; Burchflel, Jerry D.; Tomlinson, Raymond S. (22 de julio de 1970). "Detalles técnicos del buscapersonas BBN Modelo 701" (PDF) . Bolt, Beranek y Newman .
  12. McNamee, LP (1976). "Un sistema de memoria virtual para el procesador PDP-10 KA10" .
  13. Bobrow, Daniel G .; Burchfiel, Jerry D.; Murphy, Daniel L .; Tomlinson, Raymond S. (marzo de 1972). "TENEX, un sistema de tiempo compartido paginado para el PDP-10" (PDF) . Communications of the ACM . 15 (3): 135–143 . CiteSeerX 10.1.1.509.1454 . doi : 10.1145/361268.361271 . S2CID 52848167. Procesador PDP-10 aumentado con hardware de paginación especial .  
  14. "Manual de referencia del procesador DECsystem-10/DECSYSTEM-20" (PDF) . 1 de junio de 1982. DECsystem-10 ... paginación dinámica y gestión del conjunto de trabajo. 
  15. Manual de instalación del PDP-10 (PDF) . Digital Equipment Corporation. pág. 5. 
  16. Murphy, Dan (1989). "Orígenes y desarrollo de TOPS-20" .
  17. "Modelos PDP-10" . 30 de junio de 2001. Sistema PDP 1055 de doble procesador (1050) ... primeros monitores DEC-10
  18. "Publicaciones de USENET alt.sys.pdp10 sobre procesadores frontales PDP-10" .
  19. "Manual de mantenimiento DN60" . Digital Equipment Corporation. 31 de octubre de 1978. JBS-77-001-02-U.
  20. Manual técnico del DECSYSTEM-2020 basado en KS10 (PDF) (Segunda edición). Digital Equipment Corporation. Septiembre de 1979. EK-0KS10-TM-002. 
  21. Guía de preparación del sitio para PDP-10 (PDF) . Digital Equipment Corporation. Mayo de 1970.
  22. Shivers, Olin. "Historia de T" . Recuperado el 25 de octubre de 2019. Maclisp en el -10 había usado un GC de marcado y barrido (una versión del cual, como es bien sabido, "funcionaba en el conjunto de registros", aunque esa es otra historia).
  23. 1 2 3 Programación 1970 , pág. 13.
  24. Programación 1970 , págs. 87–88.
  25. Programación 1970 , pág. 88.
  26. Programación 1970 , pág. 89.
  27. Programación 1970 , pág. 86.
  28. Programación 1970 , pág. 87.
  29. 1 2 Programación 1970 , pág. 92.
  30. Programación 1970 , pág. 94.
  31. 1 2 "Manual de referencia del procesador DECsystem-10/DECSYSTEM-20" (PDF) . Digital Equipment Corporation. Junio ​​de 1982. AA-H391A-TK, AD-H391A-T1. Archivado del original (PDF) el 11 de octubre de 2015. Recuperado el 14 de noviembre de 2015 .
  32. "Tiempo compartido | IBM" . IBM .
  33. "Una breve historia del mundo hacker: Los primeros hackers" . MIT... construyó su propio sistema operativo, el legendario... Sistema de tiempo compartido incompatible
  34. "Software Tymshare" . inwap.com . Consultado el 24 de septiembre de 2023 .
  35. Digital Equipment Corp. "Manual de referencia para programadores de DECsystem-10 FORTRAN IV (F40)" (PDF) . Github . Digital Equipment Corporation . Consultado el 15 de abril de 2022 .
  36. Equipos digitales (1968). "Manual de referencia PDP-10" (PDF) . bitsavers.org .
  37. Thacker, Charles (29 de agosto de 2007). "Historia oral de Charles (Chuck) Thacker" (PDF) . Museo de Historia de la Computación (Entrevista). Entrevistado por Kossow, Al . Recuperado el 15 de noviembre de 2019 .
  38. "Computadoras de 36 bits de DEC" . Archivado del original el 16 de diciembre de 2009. Consultado el 4 de abril de 2009 .
  39. "Zork en el PDP-10" . Infocom desarrollaría Zork... PDP-10... alojado... Sistema de tiempo compartido incompatible... ARPANET... máquina de DMG... comunidad... una especie de equipo de pruebas beta extendido.
  40. Allen, Paul (2012). Idea Man: Memorias del cofundador de Microsoft . Portfolio/Penguin. pág. 74. ISBN  978-1-101-47645-1.
  41. "Sistema de tiempo compartido incompatible" . GitHub . 5 de enero de 2022.
  42. "Índice de /Dec/Esperas" .
  43. "PiDP-10: Recreando el PDP-10 en el Laboratorio del MIT" . 23 de septiembre de 2024.
  44. ^ Tim Shoppa "Anunciando KLH10" , 10 de noviembre de 2001. Consultado el 4 de abril de 2009.

Fuentes

  • Manual de referencia del sistema DECsystem10 (PDF) . DIC. 1974. Archivado del original (PDF) el 31 de agosto de 2007. Consultado el 26 de julio de 2017 .
  • Manual de referencia del procesador DECsystem-10/DECSYSTEM-20 (PDF) . DIC. 1982.
  • Programación con el conjunto de instrucciones del PDP-10 (PDF) . DIC. 1970.
  • Ceruzzi, Paul E. (2003). Una historia de la informática moderna (2  ed.). Prensa del MIT. ISBN 0-262-53203-4.

Lecturas adicionales

  • C. Gordon Bell , Alan Kotok , Thomas N. Hastings, Richard Hill, "La evolución del DECsystem 10", Communications of the ACM 21 :1:44 (enero de 1978) doi : 10.1145/359327.359335 , reimpresión en C. Gordon Bell, J. Craig Mudge, John E. McNamara, Computer Engineering: A DEC View of Hardware Systems Design (Digital Press, 1978, ISBN 0932376002)
  • ¡36 bits para siempre!
  • Modelos PDP-10 : muestra las CPU y los modelos.
  • Cosas de PDP-10
  • Página de Miscelánea de PDP10
  • La vida en los coches de aire acondicionado rápidos
  • Página del programa DEC PDP-10 de la Universidad de Columbia
  • Página TOPS-20 de Programación Panda
  • Sistemas PDP-10 y relacionados disponibles en línea en el Museo Provisional de Computación de SDF (incluye algunos sistemas que originalmente formaban parte de la colección de Paul Allen en Living Computers: Museum + Labs ).
  • Empire para PDP-10 (archivo zip con el código fuente FORTRAN -10 para descargar) de Classic Empire
  • Archivo de software PDP-10 en Trailing Edge
  • El anuncio de Personal Mainframe fue archivado el 6 de noviembre de 2018 en Wayback Machine .
  • Anuncio de Computer World sobre un ordenador central personal
  • Documentación del PDP-10 en Bitsavers

Grupos de noticias

  • alt.sys.pdp10
Obtenido de " https://en.wikipedia.org/w/index.php?title=PDP-10&oldid=1357116457 "