fbpx
Wikipedia

PDP-10

El PDP-10 fue un computador fabricado por Digital Equipment Corporation (DEC) desde finales de los años 1960 en adelante. El nombre significa "Programmed Data Processor model 10" (Procesador de Datos Programados modelo 10). Fue la máquina que hizo común el tiempo compartido. Es de mucha importancia en el folklore hacker debido a su adopción en los años 1970 por muchas instalaciones de computación universitarias y laboratorios de investigación, los más notables fueron el AI Lab del MIT, el SAIL de la Universidad de Stanford, y la Universidad Carnegie Mellon.

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

La arquitectura del PDP-10 era una versión casi idéntica de la arquitectura anterior del PDP-6, compartiendo la misma longitud de palabra de 36 bits y extendiendo levemente el conjunto de instrucciones (pero con una implementación de hardware mejorada). Algunos aspectos del conjunto de instrucciones son únicos, lo más notable fueron las instrucciones de "byte", que operaron en campos de bits de tamaño arbitrario (en aquella época el byte no era necesariamente de ocho bits).

Modelos y evolución técnica

 
Flip Chip de un DEC KA10, conteniendo 9 transistores, 1971
 
Cableado (Wire-Wrap) del panel trasero del CPU

El procesador original del PDP-10 fue el KA10, introducido en 1968. Usaba transistores discretos empaquetados con la tecnología Flip-Chip® de DEC, con alambrado en la parte trasera por medio de un proceso de fabricación semiautomatizado. En 1973, el KA10 fue substituido por el KI10, que usaba circuitos SSI TTL. A este se le unió, en 1975, el KL10 de alto desempeño (posteriormente el KL20), que fue construido con ECL, estaba microprogramado, y tenía memoria caché. Un modelo más pequeño y menos costoso, el KS10, fue introducido en 1978, usando componentes bit-slice TTL y Am2901 e incluyendo el Unibus del PDP-11 para conectar los periféricos.

En 1983, el desarrollo de un sucesor por el KL10 (Proyecto Júpiter) fue cancelada. Esta fue la primera señal para la cancelación de la línea de productos entera.

KA10

El KA10 tenía una máxima capacidad de memoria principal (tanto virtual como física) de 256 Kwords (equivalente a 1152 KB). Tal y como venía suministrado por DEC, no incluía hardware de paginación; manejo de la memoria que consiste en dos conjuntos de protección y relocalización, llamados los registros de "base and bounds". Esto permitía, a cada mitad del espacio de dirección de usuario, ser limitado a una sección prefijada del sistema de la memoria central, designada por la base de la dirección física y el tamaño. Esto permitió el modelo, usado posteriormente por Unix, de un segmento de código compartible de solo lectura (normalmente el segmento alto), separado de un segmento de datos/pila de lectura/escritura (normalmente el segmento bajo). Algunas máquinas KA10, ej. primero en el MIT, y más adelante en el BBN, fueron modificadas para agregar soporte para la paginación, así como más memoria física.

KI10

 
KS10

El KI10 y procesadores posteriores ofrecieron manejo de memoria paginada, y también soportaron un más grande espacio de dirección física de 4 Mwords.

KL10 y KL20

Los modelos originales del KL10 (1070, 1080, etc.) usaron el bus de memoria original del PDP-10, con módulos de memoria externos. Módulo, en este contexto significa un gabinete, las dimensiones aproximadamente (An. x Al. x Pr.) 80 x 200 x 80 cm con una capacidad de 32 a 256 kWords de memoria de núcleos magnéticos (la imagen en el lado derecho muestra seis de estos gabinetes). Los procesadores usados en el DECSystem-20 (2040, 2050, 2060, 2065), comúnmente pero incorrectamente llamado "KL20", usaban la memoria interna montada en el mismo gabinete que el CPU. Los modelos 10xx también tenían un empaquetado diferente; vinieron en los originales gabinetes altos del PDP-10, en vez de los cortos usados posteriormente para el DECSYSTEM-20. Las diferencias entre los modelos 10xx y 20xx eran más cosméticas que reales; algunos sistemas 10xx tenían la memoria interna y la I/O al "estilo 20", y algunos sistemas 20xx tenían la memoria externa y el bus de I/O al "estilo 10". En particular, todos los sistemas de ARPAnet TOPS-20 tenían un bus de I/O porque la interfaz AN20 IMP fue un dispositivo de I/O. Ambos podían correr el microcódigo del TOPS-10 o el TOPS-20 y por lo tanto el sistema operativo correspondiente.

MASSbus

La arquitectura de I/O de las máquinas 20xx de la serie KL fue basada en un nuevo diseño de bus de la DEC, llamado el MASSbus. Mientras muchos atribuyeron el éxito del PDP-11 a la decisión de la DEC en hacer una arquitectura abierta del Unibus del PDP-11. Con el KL, DEC se revirtió a la filosofía anterior, haciendo el MASSbus tanto único como propietario. Consecuentemente, no hubo fabricantes de periféricos del mercado de accesorios, que hicieran dispositivos para el MASSbus, y DEC decidió valorar sus propios dispositivos de MASSbus, notablemente la unidad de disco RP06, en un precio substancialmente alto sobre comparables dispositivos compatibles con IBM. CompuServe, diseñó su propio controlador de disco alternativo que podía operar en el MASSbus pero se conectaba con subsistemas de discos IBM estilo 3330.

Modelo B

Más adelante, la versión del "Modelo B" de los procesadores 2060 eliminaron la limitación de los 256 Kword en el espacio de dirección virtual, permitiendo el uso de hasta 32 "secciones" de hasta 256 Kwords cada una, junto con substanciales cambios al conjunto de instrucciones. Los procesadores KL10 "Modelo A" y "Modelo B" pueden ser considerados como diferentes CPUs. El primer sistema operativo que tomó ventajas de las capacidades del Modelo B fue el TOPS-20 release 3, y el direccionamiento extendido del modo usuario fue ofrecido en el TOPS-20 release 4. Las versiones del TOPS-20 después del release 4.1 solo corrían en el Modelo B.

KS10

El diseño KS10 fue lisiado para ser un Modelo A, aunque estaban presentes la mayoría de las rutas de datos necesarias para soportar la arquitectura del Modelo B cuando estaba presente. Sin duda, esto intentaba segmentar el mercado, pero acortó grandemente la tiempo de vida del KS10.

Mejora MCA25

La mejora final al KL10 fue la actualización MCA25 de un 2060 a un 2065, que dio algunos incrementos de desempeño para programas que corrían en secciones múltiples.

Arquitectura del conjunto de instrucciones

Desde el primer PDP-6 hasta el KL-10 Modelo A, la arquitectura del conjunto de instrucciones del modo-usuario en gran parte fue la misma. Esta sección cubre esa arquitectura.

Direccionamiento

El PDP-10 tenía palabras de 36 bits y direcciones de palabras de 18 bits. En el modo supervisor, las direcciones de instrucción corresponden directamente a la memoria física. En el modo de usuario, las direcciones son traducidas a memoria física. Los primeros modelos dieron una memoria "alta" y una "baja" a un proceso de usuario: las direcciones con el bit 0 en el tope usaron un registro base, y las direcciones más altas usaron otro. Cada segmento era contiguo. Las arquitecturas posteriores tuvieron acceso a memoria paginada, permitiendo espacios de direcciones no contiguos.

Registros

Había 16 registros de uso general, de 36 bits cada uno. Los registros también se podían direccionar como posiciones de memoria 0-15. Con excepción del registro 0, la mitad derecha de estos registros podría ser usada para indexación. Algunas instrucciones operaban en pares de registros.

Había también un registro de condición que almacenaba bits adicionales de los resultados de operaciones aritméticas (ej. desbordamiento) al que solo podían acceder algunas instrucciones.

Modo supervisor

Había dos modos operacionales, el modo supervisor y el modo de usuario. Además de la diferencia, descrita arriba, en la manera de referenciar la memoria, los programas del modo supervisor podían ejecutar operaciones de entrada/salida.

La comunicación del modo usuario con el modo supervisor era hecha con Unimplemented User Operations (UUOs) (Operaciones de Usuario No-Implementadas): las instrucciones que no estaban definidas por el hardware eran atrapadas por el supervisor. Este mecanismo también era usado para emular operaciones que no tenían implementación por hardware en los modelos más baratos.

Tipos de datos

Los principales tipos de datos que eran directamente soportados por la arquitectura, eran la aritmética entera de 36 bits de complemento a dos (incluyendo operaciones bitwise), punto flotante de 36 bits, y medias palabras. El punto flotante extendido de 72 bits era soportado por medio instrucciones especiales diseñadas para ser usadas en secuencias de multi-instrucciones. Los pointers de byte eran soportados por instrucciones especiales. Una palabra consistiendo de un medio "contador" y medio "pointer" soportaba regiones limitadas de memoria, notablemente las pilas.

Conjunto de instrucciones

El conjunto de instrucciones es muy simétrico. Cada instrucción consiste de 36 bits, repartidos de la siguiente manera:

  • un opcode de 9 bits,
  • un código de registro de 4 bits, y,
  • un campo de direccionamiento efectivo de 23 bits, que a su vez consiste en:
    • un bit de indirección,
    • un código de registro de 4 bits, y,
    • un desplazamiento (offset) de 18 bits.

La ejecución de la instrucción comienza calculando la dirección efectiva. Se agrega el contenido del registro dado (si no es cero) al offset, entonces si el bit indirecto es 1, se lee la palabra en la dirección calculada y se repite el cálculo del direccionamiento efectivo (posiblemente indefinidamente, pero de hecho terminará con un trap después de 32 iteraciones). La dirección efectiva resultante puede ser usada por la instrucción que trae el contenido de la memoria, o simplemente como una constante. Así, por ejemplo, MOVEI A,3(C) suma 3 a los 18 bits más bajos del registro C y pone el resultado en el registro A, sin tocar la memoria.

Hay tres clases principales de instrucciones: aritméticas, lógicas, y de movimiento; salto condicional (conditional jump); salto condicional (conditional skip) (que puede tener efectos secundarios); y varias pequeñas clases.

Las operaciones de aritmética, lógica, y movimiento incluyen variantes que operan de:

  • inmediato-a-registro,
  • memoria-a-registro,
  • registro-to-memoria, y
  • registro-y-memoria-a-ambos o memoria-a-memoria.

Dado que los registros actúan como parte de la memoria, operaciones de registro-a-registro también están definidas. (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 la Memoria), ADDB (sumar a Ambos (Both), es decir, sumar el contenido del registro a la memoria y también poner el resultado en el registro). Un ejemplo más elaborado es HLROM (Half Left to Right Ones to Memory) (mitad izquierda a derecha, unos a memoria), que toma la mitad izquierda del contenido del registro, y lo pone en la mitad derecha de la posición de memoria, y reemplazala mitad izquierda de la posición de memoria con unos.

Las operaciones condicionales de salto (conditional jump) examinan el contenido del registro y saltan a una localización dada dependiendo del resultado de la comparación. Por ejemplo, JUMPN A, LOC salta a LOC si A no es cero. Hay también saltos condicionales basados en el registro de condición del procesador.

Las operaciones condicionales de salto (conditional skip) comparan contenidos de registro y de memoria y, dependiendo del resultado de la comparación, saltan la siguiente instrucción (que a menudo es un salto incondicional). Un ejemplo simple es CAMN A, LOC que compara el contenido del registro A con el contenido de la localización LOC y salta la instrucción siguiente si no son iguales. Un ejemplo más elaborado es TLCE A, LOC (que significa "Test Left Complement, Skip if equal") (Prueba el complemento a dos, salta si es igual), que usando el contenido de LOC como una máscara, selecciona los bits correspondientes en la mitad izquierda del registro A. Si todos esos bits son Igual a cero, salta la siguiente instrucción; y en cualquier caso, Reemplaza esos bits por su complemento booleano.

Algunas clases de instrucción más pequeñas incluyen las instrucciones de shift/rotate y las instrucciones de llamada a procedimientos. Particularmente notables son las instrucciones de pila PUSH y POP y las correspondientes instrucciones de llamada a pila PUSHJ y POPJ. Las instrucciones de byte usan un formato especial de palabra indirecta para extraer y almacenar campos de bits de tamaño arbitrario, avanzando posiblemente el pointer a la unidad siguiente.

Software

El sistema operativo original del PDP-10 fue llamado simplemente "Monitor", pero posteriormente fue renombrado TOPS-10, para el momento en que el sistema comenzó a ser conocido como el DECsystem-10. Las primeras versiones del Monitor y del TOPS-10 formaron la base del sistema operativo WAITS de Stanford y del CompuServe time-sharing system.

Con el tiempo, algunos operadores del PDP-10 comenzaron a correr sistemas operativos ensamblados de -components- importantes desarrollados fuera de DEC. Por ejemplo, el Scheduler principal vino de una universidad, el Disk Service de otra, etc. Los servicios de tiempo compartido comerciales como CompuServe, Online Systems, y Rapidata mantuvieron sofisticados grupos internos de programación de sistemas, de manera de poder modificar el sistema operativo como fuera necesario para sus propios negocios sin ser dependientes en la DEC u otros. De algunas maneras, este fue uno de los primeros ambientes de fuente abierta, aunque los operadores comerciales tendieron a solamente tomar código de fuentes abiertas, guardando sus propias mejoras propietarias para ellos mismos.

BBN desarrolló su propio sistema operativo alternativo, TENEX, que se convirtió bastante rápidamente en el estándar de facto en la comunidad de investigación. Posteriormente DEC portó Tenex al KL10, mejorándolo considerablemente, y lo nombró TOPS-20, formando la línea DECSYSTEM-20. El MIT también había desarrollado su propio sistema influyente, ITS (nombrado así para parodiar al sistema operativo CTSS).

Clones

En los años 1970, los investigadores en Xerox PARC, frustrados por la denegación de la gerencia superior de la compañía para que los dejaran comprar un PDP-10 (Xerox acababa de comprar el SDS, y quería que PARC usara una máquina SDS), diseñaron y construyeron dos sistemas clones para su propio uso, que nombraron "MAXC" (pronunciado "Max", en honor de Max Palevsky, quien había vendido el SDS a Xerox). Corrían una versión modificada de TENEX.

Los intentos de terceros de vender clones del PDP-10 fueron relativamente fracasados; ver Foonly, System Concepts, y XKL.

Cancelación e influencia

El PDP-10 fue eventualmente eclipsado por las máquinas supermini de VAX (descendientes del PDP-11) cuando la DEC reconoció que las líneas de productos PDP-10 y VAX estaban compitiendo una con la otra y decidió concentrar su esfuerzo de desarrollo de software en el VAX, más provechoso económicamente. La cancelación de la línea de productos PDP-10 fue anunciada en 1983, incluyendo la cancelación del proyecto en curso Júpiter para producir un nuevo procesador del tope de la línea para el PDP-10 (a pesar de que ese proyecto estaba en buena forma a la hora de la cancelación).

Este acontecimiento escribió la condenación del ITS y las culturas técnicas que habían producido el Jargon File original, pero por los años 1990 se había convertido en algo como una divisa de honor entre hackers antiguos haber tenido su primera experiencia en un PDP-10.

Las instrucciones de lenguaje ensamblador LDB y DPB (load/deposit byte) sobreviven como funciones en el lenguaje de programación Common Lisp. Ver la sección de "notas" en el artículo LISP - el tamaño de la palabra de 36 bits del PDP-6 y el PDP-10 influyeron por la conveniencia de programación de tener 2 pointers del LISP, cada uno con 18 bits, en una palabra.

Will Crowther creó Adventure, el prototipo del juego de aventura de computadora, para un PDP-10. Don Daglow creó al primer juego de béisbol de computadora (1971) y Dungeon (1975), el primer videojuego de rol (RPG) en un PDP-10. Walter Bright originalmente creó Empire para el PDP-10. Roy Trubshaw y Richard Bartle crearon el primer MUD en un PDP-10. Adicionalmente, Zork fue escrito en el PDP-10, e Infocom usó varios PDP-10s para el desarrollo y prueba de juegos.

Trivia

Algo del CGI para la película de la ciencia ficción TRON, de Disney, fue renderizado en el Foonly F-1, un clon del PDP-10. Es también significativo que el PDP-10 tiene una instrucción TRON (Test Right-halfword Ones and skip if Not masked) en el opcode 666 (octal). Coincidentemente, los programadores anteriores del PDP-10 crearon los juegos de video TRON del Intellivision, que siguieron al lanzamiento de la película.

Una de las colecciones más grandes de todos los tiempos de sistemas de arquitectura DECsystem-10 ensamblados, estaba en CompuServe, que en su pico operó sobre 200 sistemas débilmente acoplados en tres centros de datos en Columbus, Ohio. CompuServe usaba estos sistemas como 'hosts', proporcionando acceso a aplicaciones comerciales así como al Servicio de Información CompuServe. Mientras que el primero de esos sistemas fueron comprados a la DEC, cuando DEC abandonó la arquitectura PDP-10 en favor del VAX, CompuServe y otros clientes del PDP-10 comenzaron a comprar las computadoras compatibles (a nivel de plugs) de Systems Concepts. En fecha enero de 2007, CompuServe continúa operando un pequeño número de máquinas con la arquitectura PDP-10 para realizar algunas funciones de facturación y encaminamiento.

Las fuentes de alimentación principales usadas en 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 alrededor de la mitad de energía. CompuServe ofreció licenciar el diseño de su fuente de alimentación del KL a DEC sin costo, si DEC prometía que cualquier nuevo KL comprado por CompuServe tendría instalada la fuente de alimentación más eficiente. La DEC declinó la oferta.

Otra modificación hecha al PDP-10 por los ingenieros de CompuServe fue el reemplazo, en el gabinete del procesador KI-10, de centenares de lámparas indicadoras incandescentes con módulos de lámparas led. El costo de la conversión fue compensado fácilmente por los ahorros en el consumo eléctrico, la reducción del calor, y la mano de obra requerida para reemplazar las lámparas quemadas. No había bancos similares de lámparas indicadoras en procesadores KL y KS.

Las máquinas de la clase KL no podían ser encendidas sin la asistencia de una computadora front end PDP-11/40 instalada en cada sistema. El PDP-11 era cargado (booted) desde una unidad de disco RP06 de dos puertos (o alternativamente de una unidad de Disquete de 8 " o un DECtape), y entonces los comandos se podían dar al PDP-11 para comenzar el procesador principal, que típicamente era cargado desde la misma unidad de disco RP06 que el PDP-11. El PDP-11 realizaría funciones guardián una vez que el procesador principal estaba corriendo.

El sistema de KS usaba un similar procedimiento de carga. Una CPU 8080 cargaba el microcódigo de un disco de RM03 o RP06, o una cinta magnética y entonces se iniciaba el procesador principal. El 8080 cambiaba modos después de que el sistema operativo hubiera arrancado y controlaba los puertos seriales remotos de diagnóstico de la consola.

Systems Concepts construyó un modelo de demostración de una versión de computadora portátil del PDP-10. No se sabe si todavía existe esta unidad.

En la película Operación Swordfish, Stanley, el hacker almacena el código para su gusano en un PDP-10 en un cuarto de archivo Cal Tech que había sido mantenido en línea, y en Internet, por "motivo histórico".

Este artículo parte está basado en el Jargon File, que está en el dominio público.

Ver: TOPS-10, ITS, Tenex, TOPS-20, WAITS.

Lectura adicional

  • C. Gordon Bell, Alan Kotok, Thomas N. Hastings, Richard Hill, The Evolution of the DECsystem-10, in C. Gordon Bell, J. Craig Mudge, John E. McNamara, Computer Engineering: A DEC View of Hardware Systems Design (Digital, Bedford, 1979)

Referencias

Enlaces externos

  • 36 Bits Forever!
  • PDP-10 stuff
  • PDP10 Miscellany Page
  • Life in the Fast AC's
  • Columbia University DEC PDP-10 page
  • PDP Planet, a portal into the Paul Allen collection of Digital Equipment Corporation mainframes, including an operational PDP-10
  • for the PDP-10 (zip file of FORTRAN-10 source code download) from Classic Empire
  • PDP-10 software archive at Trailing Edge
  • Computer World

Grupos de noticias

  • alt.sys.pdp10
  •   Datos: Q1568240
  •   Multimedia: PDP-10 / Q1568240

computador, fabricado, digital, equipment, corporation, desde, finales, años, 1960, adelante, nombre, significa, programmed, data, processor, model, procesador, datos, programados, modelo, máquina, hizo, común, tiempo, compartido, mucha, importancia, folklore,. El PDP 10 fue un computador fabricado por Digital Equipment Corporation DEC desde finales de los anos 1960 en adelante El nombre significa Programmed Data Processor model 10 Procesador de Datos Programados modelo 10 Fue la maquina que hizo comun el tiempo compartido Es de mucha importancia en el folklore hacker debido a su adopcion en los anos 1970 por muchas instalaciones de computacion universitarias y laboratorios de investigacion los mas notables fueron el AI Lab del MIT el SAIL de la Universidad de Stanford y la Universidad Carnegie Mellon El CPU KL10 DA 1090 y 6 modulos de memoria La arquitectura del PDP 10 era una version casi identica de la arquitectura anterior del PDP 6 compartiendo la misma longitud de palabra de 36 bits y extendiendo levemente el conjunto de instrucciones pero con una implementacion de hardware mejorada Algunos aspectos del conjunto de instrucciones son unicos lo mas notable fueron las instrucciones de byte que operaron en campos de bits de tamano arbitrario en aquella epoca el byte no era necesariamente de ocho bits Indice 1 Modelos y evolucion tecnica 1 1 KA10 1 2 KI10 1 3 KL10 y KL20 1 4 MASSbus 1 5 Modelo B 1 6 KS10 1 7 Mejora MCA25 2 Arquitectura del conjunto de instrucciones 2 1 Direccionamiento 2 2 Registros 2 3 Modo supervisor 2 4 Tipos de datos 2 5 Conjunto de instrucciones 3 Software 4 Clones 5 Cancelacion e influencia 6 Trivia 7 Lectura adicional 8 Referencias 9 Enlaces externos 9 1 Grupos de noticiasModelos y evolucion tecnica Editar Flip Chip de un DEC KA10 conteniendo 9 transistores 1971 Cableado Wire Wrap del panel trasero del CPU El procesador original del PDP 10 fue el KA10 introducido en 1968 Usaba transistores discretos empaquetados con la tecnologia Flip Chip de DEC con alambrado en la parte trasera por medio de un proceso de fabricacion semiautomatizado En 1973 el KA10 fue substituido por el KI10 que usaba circuitos SSI TTL A este se le unio en 1975 el KL10 de alto desempeno posteriormente el KL20 que fue construido con ECL estaba microprogramado y tenia memoria cache Un modelo mas pequeno y menos costoso el KS10 fue introducido en 1978 usando componentes bit slice TTL y Am2901 e incluyendo el Unibus del PDP 11 para conectar los perifericos En 1983 el desarrollo de un sucesor por el KL10 Proyecto Jupiter fue cancelada Esta fue la primera senal para la cancelacion de la linea de productos entera KA10 Editar El KA10 tenia una maxima capacidad de memoria principal tanto virtual como fisica de 256 Kwords equivalente a 1152 KB Tal y como venia suministrado por DEC no incluia hardware de paginacion manejo de la memoria que consiste en dos conjuntos de proteccion y relocalizacion llamados los registros de base and bounds Esto permitia a cada mitad del espacio de direccion de usuario ser limitado a una seccion prefijada del sistema de la memoria central designada por la base de la direccion fisica y el tamano Esto permitio el modelo usado posteriormente por Unix de un segmento de codigo compartible de solo lectura normalmente el segmento alto separado de un segmento de datos pila de lectura escritura normalmente el segmento bajo Algunas maquinas KA10 ej primero en el MIT y mas adelante en el BBN fueron modificadas para agregar soporte para la paginacion asi como mas memoria fisica KI10 Editar KS10 El KI10 y procesadores posteriores ofrecieron manejo de memoria paginada y tambien soportaron un mas grande espacio de direccion fisica de 4 Mwords KL10 y KL20 Editar Los modelos originales del KL10 1070 1080 etc usaron el bus de memoria original del PDP 10 con modulos de memoria externos Modulo en este contexto significa un gabinete las dimensiones aproximadamente An x Al x Pr 80 x 200 x 80 cm con una capacidad de 32 a 256 kWords de memoria de nucleos magneticos la imagen en el lado derecho muestra seis de estos gabinetes Los procesadores usados en el DECSystem 20 2040 2050 2060 2065 comunmente pero incorrectamente llamado KL20 usaban la memoria interna montada en el mismo gabinete que el CPU Los modelos 10xx tambien tenian un empaquetado diferente vinieron en los originales gabinetes altos del PDP 10 en vez de los cortos usados posteriormente para el DECSYSTEM 20 Las diferencias entre los modelos 10xx y 20xx eran mas cosmeticas que reales algunos sistemas 10xx tenian la memoria interna y la I O al estilo 20 y algunos sistemas 20xx tenian la memoria externa y el bus de I O al estilo 10 En particular todos los sistemas de ARPAnet TOPS 20 tenian un bus de I O porque la interfaz AN20 IMP fue un dispositivo de I O Ambos podian correr el microcodigo del TOPS 10 o el TOPS 20 y por lo tanto el sistema operativo correspondiente MASSbus Editar La arquitectura de I O de las maquinas 20xx de la serie KL fue basada en un nuevo diseno de bus de la DEC llamado el MASSbus Mientras muchos atribuyeron el exito del PDP 11 a la decision de la DEC en hacer una arquitectura abierta del Unibus del PDP 11 Con el KL DEC se revirtio a la filosofia anterior haciendo el MASSbus tanto unico como propietario Consecuentemente no hubo fabricantes de perifericos del mercado de accesorios que hicieran dispositivos para el MASSbus y DEC decidio valorar sus propios dispositivos de MASSbus notablemente la unidad de disco RP06 en un precio substancialmente alto sobre comparables dispositivos compatibles con IBM CompuServe diseno su propio controlador de disco alternativo que podia operar en el MASSbus pero se conectaba con subsistemas de discos IBM estilo 3330 Modelo B Editar Mas adelante la version del Modelo B de los procesadores 2060 eliminaron la limitacion de los 256 Kword en el espacio de direccion virtual permitiendo el uso de hasta 32 secciones de hasta 256 Kwords cada una junto con substanciales cambios al conjunto de instrucciones Los procesadores KL10 Modelo A y Modelo B pueden ser considerados como diferentes CPUs El primer sistema operativo que tomo ventajas de las capacidades del Modelo B fue el TOPS 20 release 3 y el direccionamiento extendido del modo usuario fue ofrecido en el TOPS 20 release 4 Las versiones del TOPS 20 despues del release 4 1 solo corrian en el Modelo B KS10 Editar El diseno KS10 fue lisiado para ser un Modelo A aunque estaban presentes la mayoria de las rutas de datos necesarias para soportar la arquitectura del Modelo B cuando estaba presente Sin duda esto intentaba segmentar el mercado pero acorto grandemente la tiempo de vida del KS10 Mejora MCA25 Editar La mejora final al KL10 fue la actualizacion MCA25 de un 2060 a un 2065 que dio algunos incrementos de desempeno para programas que corrian en secciones multiples Arquitectura del conjunto de instrucciones EditarDesde el primer PDP 6 hasta el KL 10 Modelo A la arquitectura del conjunto de instrucciones del modo usuario en gran parte fue la misma Esta seccion cubre esa arquitectura Direccionamiento Editar El PDP 10 tenia palabras de 36 bits y direcciones de palabras de 18 bits En el modo supervisor las direcciones de instruccion corresponden directamente a la memoria fisica En el modo de usuario las direcciones son traducidas a memoria fisica Los primeros modelos dieron una memoria alta y una baja a un proceso de usuario las direcciones con el bit 0 en el tope usaron un registro base y las direcciones mas altas usaron otro Cada segmento era contiguo Las arquitecturas posteriores tuvieron acceso a memoria paginada permitiendo espacios de direcciones no contiguos Registros Editar Habia 16 registros de uso general de 36 bits cada uno Los registros tambien se podian direccionar como posiciones de memoria 0 15 Con excepcion del registro 0 la mitad derecha de estos registros podria ser usada para indexacion Algunas instrucciones operaban en pares de registros Habia tambien un registro de condicion que almacenaba bits adicionales de los resultados de operaciones aritmeticas ej desbordamiento al que solo podian acceder algunas instrucciones Modo supervisor Editar Habia dos modos operacionales el modo supervisor y el modo de usuario Ademas de la diferencia descrita arriba en la manera de referenciar la memoria los programas del modo supervisor podian ejecutar operaciones de entrada salida La comunicacion del modo usuario con el modo supervisor era hecha con Unimplemented User Operations UUOs Operaciones de Usuario No Implementadas las instrucciones que no estaban definidas por el hardware eran atrapadas por el supervisor Este mecanismo tambien era usado para emular operaciones que no tenian implementacion por hardware en los modelos mas baratos Tipos de datos Editar Los principales tipos de datos que eran directamente soportados por la arquitectura eran la aritmetica entera de 36 bits de complemento a dos incluyendo operaciones bitwise punto flotante de 36 bits y medias palabras El punto flotante extendido de 72 bits era soportado por medio instrucciones especiales disenadas para ser usadas en secuencias de multi instrucciones Los pointers de byte eran soportados por instrucciones especiales Una palabra consistiendo de un medio contador y medio pointer soportaba regiones limitadas de memoria notablemente las pilas Conjunto de instrucciones Editar El conjunto de instrucciones es muy simetrico Cada instruccion consiste de 36 bits repartidos de la siguiente manera un opcode de 9 bits un codigo de registro de 4 bits y un campo de direccionamiento efectivo de 23 bits que a su vez consiste en un bit de indireccion un codigo de registro de 4 bits y un desplazamiento offset de 18 bits La ejecucion de la instruccion comienza calculando la direccion efectiva Se agrega el contenido del registro dado si no es cero al offset entonces si el bit indirecto es 1 se lee la palabra en la direccion calculada y se repite el calculo del direccionamiento efectivo posiblemente indefinidamente pero de hecho terminara con un trap despues de 32 iteraciones La direccion efectiva resultante puede ser usada por la instruccion que trae el contenido de la memoria o simplemente como una constante Asi por ejemplo MOVEI A 3 C suma 3 a los 18 bits mas bajos del registro C y pone el resultado en el registro A sin tocar la memoria Hay tres clases principales de instrucciones aritmeticas logicas y de movimiento salto condicional conditional jump salto condicional conditional skip que puede tener efectos secundarios y varias pequenas clases Las operaciones de aritmetica logica y movimiento incluyen variantes que operan de inmediato a registro memoria a registro registro to memoria y registro y memoria a ambos o memoria a memoria Dado que los registros actuan como parte de la memoria operaciones de registro a registro tambien estan definidas No todas las variantes son utiles aunque estan bien definidas Por ejemplo la operacion ADD tiene como variantes ADDI sumar una constante inmediata de 18 bits a un registro ADDM sumar el contenido del registro a la Memoria ADDB sumar a Ambos Both es decir sumar el contenido del registro a la memoria y tambien poner el resultado en el registro Un ejemplo mas elaborado es HLROM Half Left to Right Ones to Memory mitad izquierda a derecha unos a memoria que toma la mitad izquierda del contenido del registro y lo pone en la mitad derecha de la posicion de memoria y reemplazala mitad izquierda de la posicion de memoria con unos Las operaciones condicionales de salto conditional jump examinan el contenido del registro y saltan a una localizacion dada dependiendo del resultado de la comparacion Por ejemplo JUMPN A LOC salta a LOC si A no es cero Hay tambien saltos condicionales basados en el registro de condicion del procesador Las operaciones condicionales de salto conditional skip comparan contenidos de registro y de memoria y dependiendo del resultado de la comparacion saltan la siguiente instruccion que a menudo es un salto incondicional Un ejemplo simple es CAMN A LOC que compara el contenido del registro A con el contenido de la localizacion LOC y salta la instruccion siguiente si no son iguales Un ejemplo mas elaborado es TLCE A LOC que significa Test Left Complement Skip if equal Prueba el complemento a dos salta si es igual que usando el contenido de LOC como una mascara selecciona los bits correspondientes en la mitad izquierda del registro A Si todos esos bits son Igual a cero salta la siguiente instruccion y en cualquier caso Reemplaza esos bits por su complemento booleano Algunas clases de instruccion mas pequenas incluyen las instrucciones de shift rotate y las instrucciones de llamada a procedimientos Particularmente notables son las instrucciones de pila PUSH y POP y las correspondientes instrucciones de llamada a pila PUSHJ y POPJ Las instrucciones de byte usan un formato especial de palabra indirecta para extraer y almacenar campos de bits de tamano arbitrario avanzando posiblemente el pointer a la unidad siguiente Software EditarEl sistema operativo original del PDP 10 fue llamado simplemente Monitor pero posteriormente fue renombrado TOPS 10 para el momento en que el sistema comenzo a ser conocido como el DECsystem 10 Las primeras versiones del Monitor y del TOPS 10 formaron la base del sistema operativo WAITS de Stanford y del CompuServe time sharing system Con el tiempo algunos operadores del PDP 10 comenzaron a correr sistemas operativos ensamblados de components importantes desarrollados fuera de DEC Por ejemplo el Scheduler principal vino de una universidad el Disk Service de otra etc Los servicios de tiempo compartido comerciales como CompuServe Online Systems y Rapidata mantuvieron sofisticados grupos internos de programacion de sistemas de manera de poder modificar el sistema operativo como fuera necesario para sus propios negocios sin ser dependientes en la DEC u otros De algunas maneras este fue uno de los primeros ambientes de fuente abierta aunque los operadores comerciales tendieron a solamente tomar codigo de fuentes abiertas guardando sus propias mejoras propietarias para ellos mismos BBN desarrollo su propio sistema operativo alternativo TENEX que se convirtio bastante rapidamente en el estandar de facto en la comunidad de investigacion Posteriormente DEC porto Tenex al KL10 mejorandolo considerablemente y lo nombro TOPS 20 formando la linea DECSYSTEM 20 El MIT tambien habia desarrollado su propio sistema influyente ITS nombrado asi para parodiar al sistema operativo CTSS Clones EditarEn los anos 1970 los investigadores en Xerox PARC frustrados por la denegacion de la gerencia superior de la compania para que los dejaran comprar un PDP 10 Xerox acababa de comprar el SDS y queria que PARC usara una maquina SDS disenaron y construyeron dos sistemas clones para su propio uso que nombraron MAXC pronunciado Max en honor de Max Palevsky quien habia vendido el SDS a Xerox Corrian una version modificada de TENEX Los intentos de terceros de vender clones del PDP 10 fueron relativamente fracasados ver Foonly System Concepts y XKL Cancelacion e influencia EditarEl PDP 10 fue eventualmente eclipsado por las maquinas supermini de VAX descendientes del PDP 11 cuando la DEC reconocio que las lineas de productos PDP 10 y VAX estaban compitiendo una con la otra y decidio concentrar su esfuerzo de desarrollo de software en el VAX mas provechoso economicamente La cancelacion de la linea de productos PDP 10 fue anunciada en 1983 incluyendo la cancelacion del proyecto en curso Jupiter para producir un nuevo procesador del tope de la linea para el PDP 10 a pesar de que ese proyecto estaba en buena forma a la hora de la cancelacion Este acontecimiento escribio la condenacion del ITS y las culturas tecnicas que habian producido el Jargon File original pero por los anos 1990 se habia convertido en algo como una divisa de honor entre hackers antiguos haber tenido su primera experiencia en un PDP 10 Las instrucciones de lenguaje ensamblador LDB y DPB load deposit byte sobreviven como funciones en el lenguaje de programacion Common Lisp Ver la seccion de notas en el articulo LISP el tamano de la palabra de 36 bits del PDP 6 y el PDP 10 influyeron por la conveniencia de programacion de tener 2 pointers del LISP cada uno con 18 bits en una palabra Will Crowther creo Adventure el prototipo del juego de aventura de computadora para un PDP 10 Don Daglow creo al primer juego de beisbol de computadora 1971 y Dungeon 1975 el primer videojuego de rol RPG en un PDP 10 Walter Bright originalmente creo Empire para el PDP 10 Roy Trubshaw y Richard Bartle crearon el primer MUD en un PDP 10 Adicionalmente Zork fue escrito en el PDP 10 e Infocom uso varios PDP 10s para el desarrollo y prueba de juegos Trivia EditarAlgo del CGI para la pelicula de la ciencia ficcion TRON de Disney fue renderizado en el Foonly F 1 un clon del PDP 10 Es tambien significativo que el PDP 10 tiene una instruccion TRON Test Right halfword Ones and skip if Not masked en el opcode 666 octal Coincidentemente los programadores anteriores del PDP 10 crearon los juegos de video TRON del Intellivision que siguieron al lanzamiento de la pelicula Una de las colecciones mas grandes de todos los tiempos de sistemas de arquitectura DECsystem 10 ensamblados estaba en CompuServe que en su pico opero sobre 200 sistemas debilmente acoplados en tres centros de datos en Columbus Ohio CompuServe usaba estos sistemas como hosts proporcionando acceso a aplicaciones comerciales asi como al Servicio de Informacion CompuServe Mientras que el primero de esos sistemas fueron comprados a la DEC cuando DEC abandono la arquitectura PDP 10 en favor del VAX CompuServe y otros clientes del PDP 10 comenzaron a comprar las computadoras compatibles a nivel de plugs de Systems Concepts En fecha enero de 2007 CompuServe continua operando un pequeno numero de maquinas con la arquitectura PDP 10 para realizar algunas funciones de facturacion y encaminamiento Las fuentes de alimentacion principales usadas en las maquinas de la serie KL eran tan ineficientes que los ingenieros de CompuServe disenaron una fuente de alimentacion de reemplazo que consumia alrededor de la mitad de energia CompuServe ofrecio licenciar el diseno de su fuente de alimentacion del KL a DEC sin costo si DEC prometia que cualquier nuevo KL comprado por CompuServe tendria instalada la fuente de alimentacion mas eficiente La DEC declino la oferta Otra modificacion hecha al PDP 10 por los ingenieros de CompuServe fue el reemplazo en el gabinete del procesador KI 10 de centenares de lamparas indicadoras incandescentes con modulos de lamparas led El costo de la conversion fue compensado facilmente por los ahorros en el consumo electrico la reduccion del calor y la mano de obra requerida para reemplazar las lamparas quemadas No habia bancos similares de lamparas indicadoras en procesadores KL y KS Las maquinas de la clase KL no podian ser encendidas sin la asistencia de una computadora front end PDP 11 40 instalada en cada sistema El PDP 11 era cargado booted desde una unidad de disco RP06 de dos puertos o alternativamente de una unidad de Disquete de 8 o un DECtape y entonces los comandos se podian dar al PDP 11 para comenzar el procesador principal que tipicamente era cargado desde la misma unidad de disco RP06 que el PDP 11 El PDP 11 realizaria funciones guardian una vez que el procesador principal estaba corriendo El sistema de KS usaba un similar procedimiento de carga Una CPU 8080 cargaba el microcodigo de un disco de RM03 o RP06 o una cinta magnetica y entonces se iniciaba el procesador principal El 8080 cambiaba modos despues de que el sistema operativo hubiera arrancado y controlaba los puertos seriales remotos de diagnostico de la consola Systems Concepts construyo un modelo de demostracion de una version de computadora portatil del PDP 10 No se sabe si todavia existe esta unidad En la pelicula Operacion Swordfish Stanley el hacker almacena el codigo para su gusano en un PDP 10 en un cuarto de archivo Cal Tech que habia sido mantenido en linea y en Internet por motivo historico Este articulo parte esta basado en el Jargon File que esta en el dominio publico Ver TOPS 10 ITS Tenex TOPS 20 WAITS Lectura adicional EditarC Gordon Bell Alan Kotok Thomas N Hastings Richard Hill The Evolution of the DECsystem 10 in C Gordon Bell J Craig Mudge John E McNamara Computer Engineering A DEC View of Hardware Systems Design Digital Bedford 1979 Referencias EditarDECsystem10 System Reference Manual DEC 1968 1971 1974 DECsystem 10 DECSYSTEM 20 Processor Reference Manual DEC 1982 Enlaces externos Editar36 Bits Forever PDP 10 stuff PDP10 Miscellany Page Life in the Fast AC s Columbia University DEC PDP 10 page Panda Programming TOPS 20 page PDP Planet a portal into the Paul Allen collection of Digital Equipment Corporation mainframes including an operational PDP 10 Empire for the PDP 10 zip file of FORTRAN 10 source code download from Classic Empire PDP 10 software archive at Trailing Edge Computer World ad for Personal MainframeGrupos de noticias Editar alt sys pdp10 Datos Q1568240 Multimedia PDP 10 Q1568240 Obtenido de https es wikipedia org w index php title PDP 10 amp oldid 143397757, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos