PDP-10

Computadora de 36 bits de Digital (1966-1983)

PDP-10
Sistema DEC KI-10 en funcionamiento, anteriormente en Living Computers: Museum + Labs
También conocido comoSistema DEC-10
ReveladorCorporación de equipos digitales
Familia de productosProcesador de datos programado
TipoComputadora central
Fecha de lanzamiento1966 ; hace 58 años ( 1966 )
Interrumpido1983 ; hace 41 años ( 1983 )
Sistema operativoSistema de tiempo compartido ITS , TOPS-10 , TENEX , WAITS y CompuServe
PlataformaDEC de 36 bits
PredecesorPDP-6
RelacionadoSistema de descompresión-20
Los sistemas PDP-10 de ARPANET están resaltados en amarillo

El PDP-10 de Digital Equipment Corporation (DEC) , posteriormente comercializado como DECsystem-10 , es una familia de computadoras mainframe [1] fabricada a partir de 1966 [2] y descontinuada en 1983. [3] [4] [5] Los modelos de la década de 1970 y posteriores se comercializaron bajo el nombre DECsystem-10, especialmente cuando el sistema operativo TOPS-10 comenzó a usarse ampliamente. [a]

La arquitectura del PDP-10 es casi idéntica a la del anterior PDP-6 de DEC , ya que comparte la misma longitud de palabra de 36 bits y amplía ligeramente el conjunto de instrucciones. La principal diferencia fue una implementación de hardware muy mejorada. Algunos aspectos del conjunto de instrucciones son inusuales, en particular las instrucciones de bytes , que operan en campos de bits de cualquier tamaño desde 1 hasta 36 bits inclusive, de acuerdo con la definición general de un byte como una secuencia contigua de un número fijo de bits .

El PDP-10 se encontró en muchas instalaciones informáticas universitarias y laboratorios de investigación durante la década de 1970, siendo los más notables el Laboratorio de Computación Aiken de la Universidad de Harvard , el Laboratorio de Inteligencia Artificial 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 , se utilizaron para construir la ARPANET inicial . Por estas razones, el PDP-10 ocupa un lugar destacado en el folclore de los primeros hackers .

Los proyectos para ampliar la línea PDP-10 se vieron eclipsados ​​por el éxito de la superminicomputadora VAX , no relacionada con ella , 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 fines de 1980". [6]

Modelos y evolución técnica

Chip invertido de un DEC KA10, que contiene 9 transistores, 1971
Terminador de bus de memoria Quick Latch, utilizado en KI10, 1973
Placa base de CPU con envoltura de cables KL10

El procesador PDP-10 original es el KA10, introducido en 1968. [7] Utiliza transistores discretos empaquetados en la tecnología Flip-Chip de DEC, con placas base envueltas en alambre mediante un proceso de fabricación semiautomatizado. Su tiempo de ciclo es de 1 μs y su tiempo de adición de 2,1 μs. [8] En 1973, el KA10 fue reemplazado por el KI10, que utiliza lógica transistor-transistor (TTL) SSI . A este se le unió en 1975 el KL10 de mayor rendimiento (variantes posteriores más rápidas), que está construido a partir de lógica acoplada al 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 la matriz. Era ligeramente más rápido que el más nuevo VAX-11/750 , aunque más limitado en memoria.

En 1978 se presentó un modelo más pequeño y menos costoso, el KS10, que utilizaba componentes TTL y Am2901 bit-slice e incluía el PDP-11 Unibus para conectar periféricos. El KS10 se comercializó como DECSYSTEM-2020, parte de la gama DECSYSTEM-20; fue la entrada de DEC en el campo del procesamiento distribuido y se presentó como "el sistema de computadora mainframe de menor costo del mundo". [9]

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 consta de 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 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 pila /datos de lectura y escritura (normalmente el segmento bajo) utilizado por TOPS-10 y posteriormente adoptado por Unix . Algunas máquinas KA10, primero en el MIT y más tarde en Bolt, Beranek y Newman (BBN), se modificaron para agregar memoria virtual [10] [11] y soporte para paginación bajo demanda [ 12 ] [13] y más memoria física.

El KA10 pesa aproximadamente 1.920 libras (870 kg). [14]

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

KI10

El KI10 introdujo soporte para la gestión de memoria paginada y también admitió un espacio de direcciones físicas más grande de 4 megapalabras . Los modelos KI10 incluyen 1060, 1070 y 1077, este último incorporando dos CPU.

KL10

CPU KL10-DA 1090 y 6 módulos de memoria

Los modelos KL10 PDP-10 (también comercializados como DECsystem-10) originales (1080, 1088, etc.) utilizan el bus de memoria PDP-10 original, con módulos de memoria externos. Módulo en este contexto significaba un gabinete, con dimensiones aproximadas (Ancho x Alto x Profundidad) 30 x 75 x 30 pulgadas 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 más tarde para el DECSYSTEM-20. Las diferencias entre los modelos 10xx y 20xx eran principalmente el sistema operativo que ejecutaban, TOPS-10 o TOPS-20 . Aparte de eso, las diferencias son más cosméticas que reales; algunos sistemas 10xx tienen memoria interna y E/S "estilo 20", y algunos sistemas 20xx tienen memoria externa "estilo 10" y un bus de E/S. En particular, todos los sistemas ARPAnet TOPS-20 tenían un bus de E/S porque 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. Las dos versiones son, en efecto, 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 Modelo B 1090 (o 1091) que ejecuta microcódigo TOPS-20.

MCA25

La actualización final del KL10 fue la actualización MCA25 de un 2060 a un 2065 (o un 1091 a 1095), lo que proporcionó algunos aumentos de rendimiento para programas que se ejecutan en múltiples secciones.

autobús masivo

La arquitectura de E/S de las máquinas KL de la serie 20xx se basa en un diseño de bus DEC llamado Massbus . Si bien muchos atribuyeron el éxito del PDP-11 a la decisión de DEC de convertir el PDP-11 Unibus en una arquitectura abierta, DEC volvió a la filosofía anterior con el KL, haciendo que Massbus fuera único y propietario. En consecuencia, no hubo fabricantes de periféricos de posventa que fabricaran dispositivos para Massbus, y DEC decidió fijar el precio de sus propios dispositivos Massbus, en particular la unidad de disco RP06, a un precio sustancialmente superior al de los dispositivos compatibles con IBM comparables. CompuServe , por ejemplo, diseñó su propio controlador de disco alternativo que podía funcionar con Massbus, pero conectarse a subsistemas de disco 3330 de estilo IBM.

Procesadores front-end

Interfaz KL10 PDP-11/40

Las máquinas de la clase KL tienen un procesador frontal PDP-11/40 para el arranque y la supervisión del sistema. El PDP-11 se inicia desde una unidad de disco RP06 de dos puertos (o, alternativamente, desde una unidad de disquete de 8" o DECtape ) y, a continuación, se pueden dar comandos al PDP-11 para iniciar el procesador principal, que normalmente se inicia desde la misma unidad de disco RP06 que el PDP-11. El PDP-11 realiza funciones de vigilancia una vez que el procesador principal está en funcionamiento.

La comunicación con mainframes IBM, incluido Remote Job Entry (RJE), se logró a través de un procesador front-end DN61 o DN-64, utilizando un PDP-11/40 o PDP-11/34a. [17] [18]

KS10

KS10

El KS10 es un PDP-10 de menor costo construido con chips AMD 2901 bit-slice , con un microprocesador Intel 8080A como procesador de control. [19] El diseño del KS10 fue limitado para ser un Modelo A a pesar de que la mayoría de las rutas de datos necesarias para soportar la arquitectura del Modelo B están presentes. Sin duda, esto tenía la intención de segmentar el mercado , pero acortó en gran medida la vida útil del producto 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 luego inicia el procesador principal. El 8080 cambia de modo después de que se inicia el sistema operativo y controla la consola y los puertos seriales 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/segundo)
  • Transporte de cinta magnética TU30: 75 ips (pulgadas/segundo)
  • Cinta magnética TU45: 75 ips (pulgadas/segundo)

Se podía admitir una combinación de hasta ocho de estos dispositivos, utilizando dispositivos de siete o nueve pistas . El TU20 y el TU30 venían en versiones A (9 pistas) y B (7 pistas), y todas las unidades de cinta mencionadas anteriormente podían leer/escribir desde/hacia cintas compatibles con IBM de 200 BPI , 556 BPI y 800 BPI.

El controlador Magtape TM10 estaba disponible en dos submodelos:

  • TM10A realizó un robo de ciclos hacia/desde la memoria PDP-10 utilizando el procesador aritmético KA10
  • TM10B accedió a la memoria PDP-10 utilizando un canal de datos DF10, sin "robar ciclos" del procesador aritmético KA10 [20] : 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 es básicamente la misma. Esta sección cubre esa arquitectura. El único cambio importante en la arquitectura es la adición de direccionamiento extendido de múltiples secciones en el KL-10; el direccionamiento extendido, que cambia el proceso de generación de la dirección efectiva de una instrucción, se analiza brevemente al final. En general, el sistema tiene palabras e instrucciones de 36 bits y direcciones de 18 bits.

Registros

Registros DEC PDP-10
0 0. . .1 71 8. . .3 5(posición de bit)
Registros generales
 
A0
Registrarse 0
 AC1Regístrese 1
 AC2Registro 2
 AC3Registro 3
 AC4Regístrese 4
 AC5Regístrese 5
 AC6Registro 6
 AC7Regístrese 7
 AC10Regístrese 8
 AC11Registro 9
 AC12Regístrese 10
 AC13Regístrese 11
 AC14Regístrese 12
 AC15Registro 13
 AC16Registro 14
 AC17Regístrese 15
Contador de programa y indicadores de estado
Banderas del programa00000ordenador personalContador de programas​

Tenga en cuenta que el orden de numeración de bits es diferente al de otros procesadores DEC y a muchos procesadores más nuevos.

Hay 16 registros de propósito general de 36 bits. La mitad derecha de estos registros (excepto el registro 0) se puede utilizar para indexar. Unas pocas instrucciones operan en 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 las dos secciones. Se puede acceder a los bits del registro de condición, que registran los resultados de las operaciones aritméticas ( por ejemplo, desbordamiento), con solo 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 de "registros rápidos" los implementa como registros en la CPU, aún direccionables como las primeras 16 palabras de la memoria. Algunos programas aprovechan esto al usar los registros como caché de instrucciones al cargar código en los registros y luego saltar a la dirección apropiada; esto se usa, por ejemplo, en Maclisp para implementar una versión del recolector de basura . [21] Todos los modelos posteriores tienen registros en la CPU.

Modo supervisor

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

La comunicación del modo usuario al modo supervisor se realiza a través de operaciones de usuario no implementadas (UUO): instrucciones que no están definidas por el hardware y que son capturadas por el supervisor. Este mecanismo también se utiliza para emular operaciones que pueden no tener implementaciones de hardware en modelos más económicos.

Tipos de datos

Los principales tipos de datos que son directamente compatibles con la arquitectura son la aritmética de enteros de 36 bits en complemento a dos (incluidas las operaciones bit a bit), los de 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 bytes se admiten mediante instrucciones especiales. Una palabra estructurada como una mitad de "conteo" y una mitad de "puntero" facilita el uso de regiones limitadas de memoria, en particular las pilas .

Instrucciones

Formatos de instrucciones del DEC PDP-10
0 00 10 20 30 40 50 60 70 80 91 01 11 21 31 41 51 61 71 8. . .3 5(posición de bit)
Instrucciones generales
 
Código de operación
 
Número de cuenta
 
I
 
Índice #
 
Dirección de memoria
Instrucciones de E/S
 
7
 
Dispositivo #
Código de operación
 
I
 
Índice #
 
Dirección de memoria

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

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 512 códigos posibles no están definidos en las máquinas del modelo base y están reservados para la 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 9 a 12 se encuentra el número de un registro que se utilizará para la instrucción. Todas las instrucciones de entrada/salida comienzan con los bits 0 a 2 configurados en 1 (valor decimal 7), los bits 3 a 9 contienen un número de dispositivo y los bits 10 a 12 el código de operación de instrucción. [22]

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 constante numérica, Y. Esta dirección se puede modificar añadiendo 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 en cero, no se utiliza indexación, lo que significa que el registro 0 no se puede utilizar para indexación. 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 indirección, los datos en la palabra E se interpretan de la misma manera que el diseño 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. Suma el contenido del registro dado 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 operación indirecta a través de esa dirección, posiblemente siguiendo muchos pasos similares. [22] Este proceso continúa hasta que se alcanza una palabra indirecta con un bit indirecto cero. La operación indirecta de este tipo era una característica común de los diseños de procesadores de esta era.

En el modo supervisor, las direcciones corresponden directamente a la memoria física. En el modo usuario, las direcciones se traducen a la memoria física. Los modelos anteriores proporcionan a un proceso de usuario una memoria "alta" y una "baja": las direcciones con un bit superior 0 utilizan un registro base y las que tienen un 1 utilizan otro. Cada segmento es contiguo. Las arquitecturas posteriores tienen acceso a memoria paginada, lo que permite espacios de direcciones no contiguos. Los registros de propósito general de la CPU también se pueden direccionar como ubicaciones de memoria 0 a 15.

Instrucciones generales

Existen tres clases principales de instrucciones generales: aritméticas, lógicas y de movimiento; salto condicional; 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 (agregar una constante inmediata de 18 bits a un registro), ADDM (agregar contenido de registro a una ubicación de memoria), ADDB (agregar a ambos , es decir, agregar contenido de registro a memoria y también poner el resultado en el registro). Un ejemplo más elaborado es HLROM ( Half Left to Right , O nes to Memory ), que toma la mitad izquierda del contenido de registro, lo 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 de 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 sin efecto, como JUMP. Por ejemplo, JUMPN A,LOC salta a la dirección LOC si el contenido del registro A no es cero. También hay saltos condicionales basados ​​en el registro de condición del procesador que utilizan la instrucción JRST. En el KA10 y el 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 saltan la siguiente instrucción (que a menudo es un salto incondicional) dependiendo del resultado de la comparación. Un ejemplo simple es CAMN A,LOC que compara el contenido del registro A con el contenido de la ubicación LOC y salta la siguiente instrucción si no son iguales. Un ejemplo más elaborado es TLCE A,LOC (que se lee "Prueba el complemento izquierdo, salta si es igual"), que usando 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, salta la siguiente instrucción; y en cualquier caso, reemplaza 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 procedimientos. Particularmente notables son las instrucciones de pila PUSH y POP, y las instrucciones de llamada a pila correspondientes 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 separado de instrucciones para mover 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 el movimiento de datos hacia y desde dispositivos en forma de palabra a la vez (DATAO y DATAI) o bloque a la vez (BLKO, BLKI). [23]

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 la memoria donde se encuentran los datos (o se escriben en ellos) y los 18 bits de la izquierda son un contador. Las instrucciones de bloque incrementan ambos valores cada vez que se las llama, lo que aumenta el contador y se mueve a la siguiente ubicación en la memoria. Luego realiza un DATAO o DATAI. Finalmente, verifica el lado del contador del valor en E, si no es cero, se salta la siguiente instrucción. Si es cero, realiza la siguiente instrucción, normalmente un JUMP de regreso al principio del bucle. [24] Las instrucciones BLK son efectivamente pequeños programas que recorren un DATA e incrementan las instrucciones, pero al tener esto implementado en el propio procesador, evita la necesidad de leer repetidamente la serie de instrucciones desde la memoria principal y, por lo tanto, realiza el bucle mucho más rápidamente. [25]

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. [26] Además, CONSZ realizará una CONI, enmascarará los datos recuperados contra el valor en E y luego omitirá la siguiente instrucción si es cero, lo que se utiliza de manera similar a los comandos BLK. En CONSZ, solo se prueban los 18 bits correctos. [27]

Manejo de interrupciones

Un segundo uso de la instrucción CONO es establecer el nivel de prioridad del dispositivo para el manejo de interrupciones . Hay tres bits en la instrucción CONO, del 33 al 35, que permiten que el dispositivo se establezca en el nivel 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 establecido en el nivel 0 no detendrá el procesador incluso si genera una interrupción. [28]

Cada canal de dispositivo tiene dos posiciones 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 posiciones 42 y 43. Cuando se recibe y acepta la interrupción, es decir, cuando ya no se está ejecutando ninguna interrupción de mayor prioridad, el sistema se detiene en la siguiente parte de lectura de memoria del ciclo de instrucción y, en su lugar, comienza a procesar en la dirección almacenada en la primera de esas dos posiciones. Depende 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. [28]

Dos de los números de dispositivo se reservan para fines especiales. El dispositivo 0 es la consola del panel frontal de la computadora; al leer ese dispositivo se recuperan las configuraciones de los interruptores del panel mientras que al escribir se encienden las luces de estado. El dispositivo 4 es la "interrupción prioritaria", que se puede leer utilizando CONI para obtener información adicional sobre una interrupción que se ha producido. [29]

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" tiene 30 bits, divididos 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 superior establecido, 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 superior libre, 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. [30] : 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. [30] : 1-26–1-30 

Software

Sistemas operativos

El sistema operativo PDP-10 original se llamaba simplemente "Monitor", pero luego se lo renombró TOPS-10 . Finalmente, el sistema PDP-10 en sí mismo se renombró DECsystem-10. Las primeras versiones de Monitor y TOPS-10 formaron la base del sistema operativo WAITS de Stanford y del sistema de tiempo compartido CompuServe .

Con el tiempo, algunos operadores de PDP-10 comenzaron a ejecutar sistemas operativos ensamblados a partir de componentes principales desarrollados fuera de DEC. Por ejemplo, el Scheduler principal podría provenir de una universidad, el Disk Service de otra, y así sucesivamente. Los servicios comerciales de tiempo compartido como CompuServe , On-Line Systems, Inc. (OLS) y Rapidata mantenían sofisticados grupos de programación de sistemas internos para poder modificar el sistema operativo según fuera necesario para sus propios negocios sin depender de DEC u otros. 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 hizo popular en la comunidad de investigación. Más tarde, DEC adaptó TENEX al KL10, lo mejoró considerablemente y lo denominó TOPS-20 , formando así la línea DECSYSTEM-20.

El MIT , que había desarrollado CTSS, Compatible Time-Sharing System para funcionar en su IBM 709 (y más tarde en un sistema IBM 7094 modificado), también desarrolló ITS, Incompatible Timesharing System [31] para funcionar en su PDP-6 (y más tarde en un PDP-10 modificado); [ cita requerida ]

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

Lenguajes de programación

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

MACRO-10 (compilador de macros en lenguaje ensamblador), COBOL, BASIC y AID fueron soportados bajo los monitores de procesamiento múltiple e intercambio. [34]

En la práctica, alrededor de 1970, en el Politécnico de Hatfield existían otros entornos de programación disponibles, incluidos 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 comprar Scientific Data Systems (SDS) en 1969 y quería que PARC utilizara una máquina SDS. En su lugar, un grupo dirigido por Charles P. Thacker diseñó y construyó dos sistemas clon de PDP-10 llamados MAXC (pronunciado como Max, en honor a Max Palevsky , que había vendido SDS a Xerox) para su propio uso. MAXC también era un acrónimo de Multiple Access Xerox Computer. MAXC ejecutaba una versión modificada de TENEX. [35]

Los intentos de terceros de vender clones del PDP-10 fueron relativamente infructuosos; consulte Foonly , Systems Concepts y XKL .

Uso por parte de CompuServe

Una de las mayores colecciones de sistemas de arquitectura DECsystem-10 jamás reunidas fue la de CompuServe , que, en su apogeo, operaba más de 200 sistemas acoplados de forma flexible 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 a favor de VAX , CompuServe y otros clientes de PDP-10 comenzaron a comprar computadoras compatibles con conectores de Systems Concepts. A partir de enero de 2007 [actualizar], CompuServe operaba una pequeña cantidad de máquinas de arquitectura PDP-10 para realizar algunas funciones de facturación y enrutamiento.

Las fuentes de alimentación principales utilizadas en las máquinas de la serie KL eran tan ineficientes que los ingenieros de CompuServe diseñaron una fuente de repuesto que consumía aproximadamente la mitad de energía. CompuServe ofreció ceder a DEC la licencia del diseño de su fuente KL de forma gratuita si esta prometía que cualquier nueva KL que comprara CompuServe tendría instalada la fuente más eficiente. DEC rechazó la oferta.

Panel de luz MF10 con lámparas LED

Otra modificación que los ingenieros de CompuServe realizaron al PDP-10 fue reemplazar los cientos de lámparas indicadoras incandescentes en el gabinete del procesador KI10 con módulos de lámparas LED. El costo de la conversión se compensó fácilmente con el ahorro en el uso de electricidad, la reducción del calor y la mano de obra necesaria para reemplazar las lámparas fundidas. Digital siguió este paso en todo el mundo. La imagen del lado derecho muestra el panel de luz de la memoria MF10, que es contemporánea con la CPU KI10. Este elemento es parte de un museo de computadoras y se llenó de LED en 2008 solo con fines de demostración. No había bancos similares de lámparas indicadoras en los procesadores KL y KS, solo en la memoria heredada y los dispositivos periféricos.

Cancelación e influencia

El PDP-10 fue finalmente 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 su esfuerzo de desarrollo de software en el VAX más rentable. La cancelación de la línea de productos PDP-10 se anunció en 1983, incluida la cancelación del proyecto Jupiter en curso para producir un nuevo procesador PDP-10 de alta gama (a pesar de que ese proyecto estaba en buena forma en el momento de la cancelación) y el proyecto Minnow para producir un PDP-10 de escritorio, que puede haber estado en la etapa de prototipo. [36]

Este evento significó la ruina de ITS y las culturas técnicas que habían generado el 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 de vieja escuela 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" en el artículo 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 de tener 2 punteros LISP, cada uno de 18 bits, en una palabra.

Will Crowther creó Adventure , el juego de aventuras por ordenador prototípico, para una PDP-10. Don Daglow creó el primer juego de béisbol por ordenador (1971) y Dungeon (1975), el primer videojuego de rol en una PDP-10. Walter Bright creó originalmente Empire para la PDP-10. Roy Trubshaw y Richard Bartle crearon el primer MUD en una PDP-10. Zork fue escrito en la PDP-10. Infocom utilizó PDP-10 para el desarrollo y prueba de juegos. [37]

Bill Gates y Paul Allen escribieron originalmente Altair BASIC utilizando un simulador Intel 8080 que se ejecutaba en un PDP-10 en la Universidad de Harvard . Allen readaptó el ensamblador PDP-10 como un ensamblador cruzado para el chip 8080. [38] 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. Hay copias de las cintas de distribución originales de DEC disponibles para descargar desde Internet, de modo que se puede establecer un sistema TOPS-10 o TOPS-20 en funcionamiento. ITS y WAITS también están disponibles para SIMH. [39] [40] Hay disponible una réplica del panel frontal PDP-10 [41] para el procesador KA10 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 KL10 admite la versión v.442 del microcódigo KL10, lo que le permite ejecutar las versiones finales de TOPS-10 y TOPS-20. La emulación KS10 admite tanto el microcódigo ITS v.262 para la versión final de KS10 ITS como el microcódigo DEC v.130 para las versiones finales de KS TOPS-10 y TOPS-20. [42]

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 de bytes § Sistemas híbridos

Referencias

  1. ^ Ceruzzi, p. 208, "Era grande; incluso la propia literatura del DEC llamaba [al PDP-10] un mainframe".
  2. ^ Ceruzzi, pág. 139
  3. ^ Winstanley, Graham (1991). Inteligencia artificial en ingeniería . West Sussex, Inglaterra: Wiley, Chichester. p. 391. ISBN 9780471926030. PDP-10...se suspendió en 1983
  4. ^ "La PDP-10 se discontinuó en 1983, pero la PDP-11 no se discontinuó hasta 1997". ... con terceros que siguieron vendiendo piezas, así que en realidad no es tan...
  5. ^ "¿Qué significa pdp-10?". definition.net . El PDP-10 era una familia de computadoras mainframe fabricadas... la cancelación de la línea PDP-10 se anunció en 1983.
  6. ^ Larry Lettieri (noviembre de 1980). "Foonly desafía las patentes de DEC con un emulador". Mini-Micro Systems . págs. 15, 17.
  7. ^ "Manual del PDP10" (PDF) . Diciembre de 1968.
  8. ^ Digital Equipment Corporation, Manual de la pequeña computadora digital , pág. 376
  9. ^ "DECSYSTEM-2020". gordonbell.azurewebsites.net .
  10. ^ Strollo, Theodore R.; Burchflel, Jerry D.; Tomlinson, Raymond S. (22 de julio de 1970). "Detalles técnicos del modelo 701 de buscapersonas BBN" (PDF) . Bolt, Beranek y Newman .
  11. ^ McNamee, LP (1976). "Un sistema de memoria virtual para el procesador PDP-10 KA10".
  12. ^ Bobrow, Daniel G. ; Burchfiel, Jerry D.; Murphy, Daniel L. ; Tomlinson, Raymond S. (marzo de 1972). "TENEX, un sistema de paginación compartida para el PDP-10" (PDF) . Comunicaciones de la ACM . 15 (3): 135–143. CiteSeerX 10.1.1.509.1454 . doi :10.1145/361268.361271. S2CID  52848167. Procesador PDP-10 mejorado con hardware de paginación especial 
  13. ^ "Manual de referencia del procesador DECsystem-10/DECSYSTEM-20" (PDF) . 1 de junio de 1982. DECsystem-10 ... paginación dinámica y gestión de conjuntos de trabajo
  14. ^ Manual de instalación del PDP-10 (PDF) . Digital Equipment Corporation. pág. 5.
  15. ^ Murphy, Dan (1989). "Orígenes y desarrollo de TOPS-20".
  16. ^ "Modelos PDP-10". 30 de junio de 2001. Sistema de procesador dual PDP 1055 (1050) ... primeros monitores DEC-10
  17. ^ "Publicaciones de USENET alt.sys.pdp10 sobre procesadores front-end PDP-10".
  18. ^ "Manual de mantenimiento del DN60". Digital Equipment Corporation. 31 de octubre de 1978. JBS-77-001-02-U.
  19. ^ Manual técnico DECSYSTEM-2020 basado en KS10 (PDF) (segunda edición). Digital Equipment Corporation. Septiembre de 1979. EK-0KS10-TM-002.
  20. ^ Guía de preparación del sitio PDP-10 (PDF) . Digital Equipment Corporation. Mayo de 1970.
  21. ^ Shivers, Olin. "Historia de T" . Consultado el 25 de octubre de 2019. Maclisp en el -10 había usado un GC de marcación y barrido (una versión del cual, como es sabido, "funcionaba en el conjunto de registros", aunque esa es otra historia).
  22. ^ abc Programación 1970, pág. 13.
  23. ^ Programación 1970, págs. 87–88.
  24. ^ Programación 1970, pág. 88.
  25. ^ Programación 1970, pág. 89.
  26. ^ Programación 1970, pág. 86.
  27. ^ Programación 1970, pág. 87.
  28. ^ ab Programación 1970, pág. 92.
  29. ^ Programación 1970, pág. 94.
  30. ^ ab "DECsystem-10/DECSYSTEM-20 Processor Reference Manual" (PDF) . Digital Equipment Corporation. Junio ​​de 1982. AA-H391A-TK, AD-H391A-T1. Archivado desde el original (PDF) el 11 de octubre de 2015 . Consultado el 14 de noviembre de 2015 .
  31. ^ "Una breve historia del mundo hacker: los primeros hackers". El MIT... construyó su propio sistema operativo, el legendario... Sistema de tiempo compartido incompatible
  32. ^ "Tymshare Software". inwap.com . Consultado el 24 de septiembre de 2023 .
  33. ^ Digital Equipment Corp. "DECsystem-10 FORTRAN IV (F40) Programmers Reference Manual" (PDF) . Github . Digital Equipment Corporation . Consultado el 15 de abril de 2022 .
  34. ^ Equipo, Digital (1968). "Manual de referencia del PDP-10" (PDF) . bitsavers.org .
  35. ^ Thacker, Charles (29 de agosto de 2007). "Historia oral de Charles (Chuck) Thacker" (PDF) . Museo de Historia de la Computación (Entrevista). Entrevista realizada por Kossow, Al . Consultado el 15 de noviembre de 2019 .
  36. ^ "Ordenadores DEC de 36 bits". Archivado desde el original el 16 de diciembre de 2009. Consultado el 4 de abril de 2009 .
  37. ^ "Zork en el PDP-10". Infocom desarrollaría Zork... PDP-10... hospedado... Sistema de tiempo compartido incompatible... ARPANET... la máquina de DMG... comunidad... una especie de equipo de pruebas beta ampliado
  38. ^ Allen, Paul (2012). Idea Man: Memorias del cofundador de Microsoft . Portfolio/Penguin. pág. 74. ISBN 978-1-101-47645-1.
  39. ^ "Sistema de tiempo compartido incompatible". GitHub . 5 de enero de 2022.
  40. ^ "Índice de /Dec/Espera".
  41. ^ "PiDP-10: Recreación del PDP-10 en el laboratorio del MIT". 23 de septiembre de 2024.
  42. ^ Tim Shoppa "Anuncio de KLH10", 10 de noviembre de 2001. Consultado el 4 de abril de 2009.

Fuentes

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

Lectura adicional

  • C. Gordon Bell , Alan Kotok , Thomas N. Hastings, Richard Hill, "La evolución del sistema DEC 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, Ingeniería informática: una visión DEC del diseño de sistemas de hardware (Digital Press, 1978, ISBN 0932376002 ) 
  • ¡36 bits para siempre!
  • Modelos PDP-10: muestra CPU y modelos
  • Material del PDP-10
  • Página de miscelánea PDP10
  • La vida en los Fast AC
  • Página DEC PDP-10 de la Universidad de Columbia
  • Panda Programming TOPS-20 página
  • PDP-10 en línea y sistemas relacionados en el Museo Interino de Computación de SDF (incluye algunos sistemas que originalmente fueron parte de la colección Paul Allen en Living Computers: Museum + Labs ).
  • Empire para PDP-10 (archivo zip con el código fuente de FORTRAN -10 para descargar) de Classic Empire
  • Archivo de software PDP-10 en Trailing Edge
  • El anuncio de Mainframe personal Archivado el 6 de noviembre de 2018 en Wayback Machine.
  • Anuncio de Computer World para Personal Mainframe
  • Documentación del PDP-10 en Bitsavers

Grupos de noticias

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