CG Bell, WD Strecker, "Computadora ¿Qué hemos aprendido del PDP-11?", El 3er Simposio Anual sobre los Procedimientos de la Conferencia de Arquitectura de Computadores, pp. l-14, 1976.Este artículo que seleccioné hoy es una retrospectiva del diseño por computadora. Este es uno de varios artículos de Gordon Bell con varios coautores que describen el desarrollo, el crecimiento y el reemplazo repentino de la línea de productos de culto de la compañía, las minicomputadoras PDP-11.
- CG Bell, R. Cady, H. McFarland, B. Delagi, J. O'Laughlin, R. Noonan y W. Wulf, "Una nueva arquitectura para mini-computadoras - El DEC PDP-11", Actas de Sprint Joint Conferencia informática, pp. 657-675, AFIPS Press, 1970.
- CG Bell, WD Strecker, "Computadora, ¿qué hemos aprendido del PDP-11?" l-14, 1976.
- WD Strecker, "VAX-11/780: una extensión de dirección virtual para la familia DEC PDP-11", Actas de la National Computer Conference, pp. 967-980, AFIPS Press, 1978.
- CG Bell, WD Strecker, "Retrospectiva: lo que hemos aprendido del PDP-11 - lo que hemos aprendido de VAX y Alpha", Actas del 25º Simposio internacional anual sobre arquitectura de computadoras, pp. 6-10, 1998.
Este año celebramos el 60 aniversario de la fundación de la compañía que fabricó el PDP-11. Han pasado 40 años desde el momento en que se escribió este artículo, y pensé que sería interesante retrospectivamente los artículos de Bell desde nuestro punto de vista moderno.

¿Qué era Digital Equipment Corporation?
Para imaginar el momento en que se escribió el artículo, primero debemos hablar un poco sobre la compañía que lanzó la PDP-11, Digital Equipment Corporation de Maynard, Massachusetts. Mejor conocido como DEC.

DEC fue fundada en 1957 por Ken Olsen y Harlan Anderson. Olsen y Anderson trabajaron juntos en el Laboratorio Lincoln del Instituto de Tecnología de Massachusetts, donde notaron que los estudiantes hacían cola durante horas para usar
TX-0 , una computadora interactiva experimental desarrollada por Wes Clark
1Clark continuó desarrollando TX-0 en TX-2 y luego se unió a DEC como jefe de LINC

Este es TX-0.

Comparémoslo con algo como el IBM 704, una computadora de la época que los estudiantes ignoraron en su mayoría.
2Después de la presentación, alguien sugirió que la antipatía de los estudiantes hacia IBM podría basarse en la falta de presupuesto para el tiempo de computadora de este sistema.
Lo que descubrieron Olsen y Anderson fue que el deseo de usar una computadora interactiva era tan fuerte que había un mercado para computadoras "pequeñas" diseñadas para este papel.

DEC inicialmente presentó el PDP-1, una versión comercial eficiente del TX-0.
Enmienda : Michael Cheponis, jefe del proyecto de recuperación PDP-1, amablemente me escribió lo siguiente:
Whirlwind y PDP-1 tienen un código de operación de 5 bits, TX-0 comenzó con un código de operación de 2 o 3 bits, pero este valor aumentó con un aumento en el tamaño de la memoria de TX-2. Una comparación del orden de los códigos PDP-1 y Whirlwind revela que PDP-1 es una versión más barata y algo mejorada de la arquitectura Whirlwind.
- Mejora: Agregado direccionamiento indirecto.
- Reducción de costos: se elimina el "registro en vivo" y se agrega la instrucción de llamada de subrutina, y se elimina el contador de turnos debido al hecho de que las instrucciones de multiplicación y división de enteros se reemplazan por las instrucciones del paso de multiplicación y división, que hacen un cambio de un dígito. La mayor disminución en el precio del PDP-1 en comparación con Whirlwind se debió a un cambio en el diseño de la lógica y el diseño.
El contraste entre el PDP-1 y el IBM 704 fue excelente, pero varios años antes ya habían aparecido computadoras interactivas pequeñas y lentas, como el Librascope LGP-30 y Bendix G-15, y se vendieron en cantidades similares.
También se debe tener en cuenta que el nombre PDP es un acrónimo de "procesador de datos programado", ya que las computadoras en ese momento significaban máquinas grandes, complejas y caras, y los capitalistas de riesgo podrían no admitir DEC si producían "computadoras"
3Uno de los primeros juegos de computadora, "
Spacewar " de Steve Russell, fue escrito para el PDP-1
Tras el éxito del PDP-1, DEC ofreció varias familias de computadoras, muchas de las cuales fueron diseñadas, al menos en parte, por Gordon Bell.
Introduccion
Una computadora no está completamente determinada por la arquitectura; refleja los aspectos tecnológicos, económicos y humanitarios del tiempo y el lugar donde fue diseñado y construido. Una computadora terminada es un producto de su época.Desde el principio, Bell nos hace saber que para el éxito de cualquier proyecto de computadora no es necesario construir una mejor computadora abstracta del mundo, sino construir la computadora correcta, teniendo en cuenta el contexto.
En este capítulo, veremos el PDP-11: los objetivos de creación, arquitectura, diversas implementaciones y las personas que lo crearon. Estudiaremos su diseño, comenzando con las especificaciones de la arquitectura, y consideraremos cómo fueron influenciados por la tecnología, la organización del desarrollo, las ventas, la aplicación, la organización de la producción y la naturaleza de los usuarios finales.En este momento, en 1976, Bell fue el jefe de desarrollo de DEC durante casi cuatro años. Está claro que él ve el éxito del PDP-11 en un contexto de mercado más amplio, cuyas necesidades se suponía que debían satisfacer, y que posteriormente influyeron en la evolución de toda la familia PDP-11.
Envejecida en el espíritu de las palabras de Bell, esta presentación se enfoca en dos aspectos del artículo, la tecnología y las personas.
Fundamentos: los pensamientos detrás del diseño
Bell comienza con tal observación:
por su naturaleza, la ingeniería informática está orientada hacia el objetivo de crear el producto final. Por lo tanto, es difícil construir planes a largo plazo en él.Estos son principios ágiles. En ese momento 25 años antes de Snowbird y escribiendo el manifiesto ágil. Cuando se escribió, DEC ya no era una startup que luchaba por su existencia, era una empresa madura con varias líneas de productos exitosas en el mercado, y Bell dijo que la necesidad de lanzar un producto mínimo demandado (producto mínimo viable) es más importante que todos los demás a largo plazo planes
Al igual que IBM / 360, el PDP-11 no se desarrolló como un modelo de computadora único, sino como una serie de modelos, mientras que el software escrito para el PDP-11 pequeño será compatible con el grande.
"El término" arquitectura "se utiliza aquí para describir los atributos del sistema, como lo ve el programador, es decir, "una estructura conceptual y un comportamiento funcional, y no para describir la organización de los flujos de datos y la gestión, el diseño lógico y la implementación física". - GM Amdahl GA Blaauw y FP Brooks Jr. Arquitectura del sistema IBM / 360, 1964Debido a la naturaleza abierta de PDP-11, todo lo que interpreta las instrucciones de acuerdo con las especificaciones del procesador es PDP-11, y DEC, tan pronto como el mercado PDP-11 se calentó, comenzó a construir implementaciones de esta arquitectura, tenían varios grupos, uno de los cuales construyeron computadoras rápidas y costosas, mientras que otras diseñaron computadoras más lentas por un precio más bajo.
A pesar de su estilo de planificación evolutiva, el PDP-11 tuvo éxito en el mercado: se vendieron más de 20,000 unidades en los seis años que estuvieron en el mercado (1970-1975). El diseño en este caso no es tan importante: una organización de marketing grande y agresiva, armada con un software para corregir fallas y omisiones arquitectónicas, puede guardar casi cualquier diseño.Aquí, Bell en su artículo hace la pregunta: ¿tenía el PDP-11 un buen diseño o simplemente obtuvo una ventaja a través del marketing hiperactivo? Para responder a su propia pregunta, Bell considera el producto en términos de los criterios de diseño que él y sus coautores identificaron seis años antes.
Espacio de direcciones
La primera debilidad de las microcomputadoras fue el espacio limitado de direcciones. El error más grande y más común fue diseñar una computadora que no tiene suficiente espacio de direcciones para direccionar y administrar la memoria.
Las minicomputadoras de esa época tenían un espacio de direcciones de 12 bits, que permitía que solo se direccionaran 4096 direcciones, cada una de las cuales almacenaba una palabra de 12 bits.
Vale la pena señalar que la palabra "minicomputadora", que más tarde se convirtió en el tamaño físico, se formó originalmente a partir de la frase "computadora mínima". El ejemplo canónico fue PDP-8, el modelo DEC anterior, que tenía solo ocho instrucciones.

La razón del pequeño espacio de direcciones fue el precio. La memoria era extremadamente costosa en los años 60 y principios de los 70, cuando cada bit consistía en un pequeño núcleo magnético, que se tejía en la red de cables de control.
Los núcleos se organizaron en un panel, en este caso 4096 bits cada uno, que se apilaron para obtener una palabra, por lo que 4096 palabras de memoria consistieron en 16 millones de anillos (
aquí, obviamente, un error en el texto original, 4096 palabras * 16 bits = 65536 anillos (aprox. transl. ), cada uno de los cuales fue, al menos en parte, ensamblado a mano. Ahora está claro por qué la memoria era tan cara.

Bell y otros diseñadores de PDP-11 sabían que los precios básicos continuarían cayendo, y que la memoria de semiconductores, aunque no tan rentable en ese momento, continuaría siendo más barata en función de un byte almacenado. Por lo tanto, la cantidad de memoria que el comprador puede comprar aumentará con el tiempo, ya que los usuarios tienden a comprar "sistemas por el mismo precio en dólares". Pero aun así
PDP-11 siguió esta mala tradición de guardar en bits de dirección, pero se salvó por el principio de que un buen diseño puede sobrevivir al menos a un cambio importante.Incluso teniendo en cuenta las predicciones de los desarrolladores, Bell señaló que han pasado menos de dos años desde la introducción de la arquitectura PDP-11, requirió la inclusión de un módulo de administración de memoria en la arquitectura para proporcionar acceso a un espacio de direcciones más grande de 18 bits a costa de aumentar la complejidad del software . Unos años más tarde se agregaron otros 4 bits.
Para ser justos, aunque Bell se reprochó a sí mismo por ser apresurado, la tradición de hacer un espacio de direcciones inadecuado continúa hasta nuestros días. ¿Recuerdas la limitación de 640K en DOS? ¿Recuerdas las batallas con himem.sys? ¿Ante una situación en la que un programa de 32 bits requiere más de 2 GB para datos?
Entonces nadie es perfecto.
No hay suficientes registros
La segunda debilidad de las minicomputadoras fue la tendencia a un número insuficiente de registros. Esto se solucionó en PDP-11, que tenía ocho registros de 16 bits. Más tarde, se agregaron seis registros de 32 bits para aritmética de coma flotante. Más registros podrían aumentar el tiempo de cambio de contexto de la tarea.No era inusual, incluso para los mainframes de la época, proporcionar solo un registro: la batería. Si se proporcionaron registros adicionales, se usaron solo como registros de índice, no como registros de propósito general.
También es interesante observar el comentario de Bell de que los registros adicionales pueden ser inconvenientes para el usuario. A principios de la década de 1970, lo más común era programar máquinas directamente en ensamblador.
Existe una fuerte correlación entre el número de registros en la arquitectura, el número de bits de dirección y el tamaño de la instrucción. Todos estos factores están causando memoria insuficiente, y tenía sentido pensar cuidadosamente a través del sistema de comando.
En las máquinas de Von Neumann (que eran prácticamente todas las computadoras de los años 60), el programa y los datos comparten el mismo espacio de direcciones limitado y un programa ineficaz no solo desperdició el tiempo de la computadora, sino también la memoria. Se puede tolerar un programa lento, pero si el programa no cabe en la memoria, fue fatal, es decir, el método de codificación de instrucciones debería ser lo más eficiente posible.
Veamos un caso muy común de pasar de una ubicación de memoria a otra. ¿Cuántos bits se necesitan para describir esta operación? Aquí hay una posible implementación:
MOV addr addr
Necesita 16 bits para la dirección de origen, otros 16 para la dirección de destino y una cierta cantidad de bits para codificar la instrucción MOV. Deje que haya un total de 40 bits, esto no es un múltiplo de 16, lo que significa una codificación compleja de instrucciones de 2.5 bits. Sin embargo, ¿qué pasa si cargamos la dirección en el registro?
MOV (R0), (R1)
En este caso, necesitamos describir solo los registros, PDP-11 tiene 8 registros, y solo 3 bits son suficientes para describir el registro, más unos pocos bits para describir el operador. Tal comando puede caber fácilmente en una palabra de 16 bits y no requiere una codificación compleja de instrucciones con longitud variable.

En realidad, el PDP-11 usa 6 bits por registro y 4 bits por operación si la instrucción tiene dos operandos.
Pila de hardware
La tercera debilidad de las minicomputadoras fue la falta de soporte de hardware para la pila. PDP-11 implementó un mecanismo de incremento automático y decremento automático para la dirección. Esta solución es exclusiva del PDP-11 y ha demostrado ser extremadamente útil. (Y esta solución fue copiada por desarrolladores de otros sistemas).Hoy en día, es difícil imaginar hardware que no tenga una pila, pero de hecho la pila no es muy importante si no está utilizando la recursividad.
El diseño de PDP-11 se remonta a 1969, y si miramos los lenguajes de programación de esa época, FORTRAN y COBOL, no admitían una llamada de función recursiva. La secuencia de la llamada a la función incluyó el almacenamiento de la dirección de retorno en una palabra vacía al comienzo del procedimiento, lo que hizo imposible la recursión.

PDP-11 define el puntero de pila como lo entendemos hoy, como un registro controlado por las operaciones PUSH y POP, pero PDP-11 fue más allá y permitió que cualquier registro funcionara como un puntero de pila al agregar un modificador de incremento / decremento automático a los registros de operandos.
Por ejemplo, una instrucción:
MOV R4, -(R6)
disminuirá el valor en R6 en dos, luego almacenará el valor de R4 en la dirección almacenada en R6. Por lo tanto, en el ensamblador PDP-11 colocamos el valor en la pila. Si alguno de ustedes programó para ARM, esto debería serle familiar.
Esto significa que no hay necesidad de instrucciones PUSH o POP dedicadas, esto ahorra espacio de instrucciones, le permite usar cualquier registro como un puntero de pila, aunque tradicionalmente el puntero de pila es R6, y el equipo lo usa al hacer una llamada de subprograma.
Retardo de interrupción
La cuarta debilidad de los minicomputadores de esa época fue el soporte limitado para las interrupciones y el cambio de contexto lento, y este problema se resolvió utilizando el controlador de interrupción vectorial UNIBUS con conexión directa de las interrupciones del dispositivo.En este punto de la vida de DEC, casi todos sus productos tenían la arquitectura PDP-10, el mainframe de DEC diseñado para aplicaciones interactivas, laboratorios y control de procesos. La respuesta a las interrupciones, el retraso entre la activación de la señal de interrupción y el inicio del procesamiento de la interrupción, es clave para obtener un alto rendimiento en tiempo real.
En PDP-11, el dispositivo que activó la interrupción proporciona la dirección del manejador de interrupciones. Bell escribe honestamente sobre esto:
El mecanismo principal es muy rápido, requiere solo cuatro ciclos de acceso a la memoria desde el momento en que se solicitó la interrupción hasta que se ejecutó la primera instrucción del manejador de interrupciones.Soporte de personaje
La quinta debilidad de la mayoría de las minicomputadoras era un pobre soporte de cadenas, que se resolvió en PDP-11 por la capacidad de direccionar directamente los bytes.La importancia de apoyar cadenas y caracteres comenzó a crecer durante la década de 1960 cuando comenzaron a aparecer soluciones para la ciencia y los negocios. El método de codificación dominante en ese momento era el conjunto de caracteres de 6 bits, que proporcionaba suficiente espacio para letras mayúsculas, números del 0 al 9, un espacio y varios signos de puntuación, suficientes para imprimir estados financieros.

Dado que la memoria era muy costosa, colocar un carácter en una palabra de 12 o 18 bits era simplemente inaceptable, y los caracteres se agruparon en palabras.
Esto mejora la eficiencia del almacenamiento, pero es difícil para operaciones como mover, comparar y combinar, que deben tener en cuenta que el carácter puede estar en la parte inferior o superior de la palabra, lo que aumenta la cantidad de memoria costosa ocupada por el programa.
El problema se resolvió en PDP-11, la máquina podía funcionar con palabras de 16 bits y bytes de 8 bits ganando popularidad. Extender la longitud de los caracteres en dos bits simplificó las operaciones de cadena y facilitó la adaptación al estándar ASCII de 7 bits cada vez más popular, que era compatible con DEC en ese momento. Bell termina este párrafo así:
A pesar del hecho de que las instrucciones para procesar cadenas no estaban en el equipo, las operaciones normales de cadenas (mover, comparar, concatenar) podrían programarse como un ciclo muy corto.Y esto es realmente así. Puede escribir un procedimiento de copia en solo dos instrucciones, suponiendo que las direcciones de origen y destino estén en registros.
loop: MOVB (src)+, (dst)+ BNE loop
Este código aprovecha el hecho de que el comando MOV establece las banderas. El ciclo continuará hasta que el valor en la dirección de origen sea cero, y en este punto el control pasa a la siguiente instrucción. Es por eso que las líneas C terminan en cero.
ROM
El sexto punto débil de las minicomputadoras era la incapacidad de usar ROM, y PDP-11 no tenía este inconveniente. La mayor parte del código escrito para PDP-11 era "limpio" y permitía el reingreso sin esfuerzos especiales del programador, lo que permitía el uso directo de ROM.En las aplicaciones de control de procesos, en las que los programas son relativamente fijos, deben descargar el programa cada vez desde una cinta magnética o una cinta perforada, lo cual es costoso. Debe comprar y mantener dispositivos de E / S poco utilizados. Es más conveniente cuando el programa siempre está presente en la computadora. Sin embargo, debido a las fuertes limitaciones en la cantidad de memoria y la falta de soporte de hardware para la pila, el código de auto modificación a menudo era inevitable, lo que limitaba severamente el uso de ROM. Bell dice con orgullo que el PDP-11 ha cambiado la situación.
E / S primitiva
La séptima debilidad de los minicomputadores fue la capacidad de E / S primitiva.A finales de los años 60, cuando se desarrolló el PDP-11, los dispositivos de E / S eran muy caros. Los mainframes de la época usaban el llamado canal de E / S, en el que el procesador central enviaba un pequeño programa al controlador del canal, que ejecutaba el programa e informaba el resultado. Un programa podría, por ejemplo, cargar datos de una cinta magnética o perforar una tarjeta perforada.
El canal de E / S era importante, permitía descargar el procesador de las operaciones de E / S y realizar acciones de E / S al mismo tiempo, lo que aumenta la utilización del procesador. La desventaja era que la E / S del canal requería una CPU separada en cada controlador de canal, lo que aumentaba el costo de todo el sistema de manera bastante significativa.

En el mundo de las minicomputadoras, la E / S generalmente se realizaba directamente a la CPU, generalmente utilizando instrucciones especializadas codificadas para cada dispositivo específico, como una unidad de cinta o una impresora de consola.
El PDP-11 introdujo algo inusual, E / S mapeadas. No era una E / S mapeada en memoria que se podía usar con la llamada al sistema mmap (2), sino solo un acuerdo de que algunas direcciones en la memoria no son solo celdas de memoria, y su contenido se muestra en placas insertadas en el plano posterior, que en DEC se llamaba UNIBUS.

Por ejemplo, el valor registrado en 777566
4 4Las direcciones se dan en octal, como era habitual en máquinas DEC de 12, 18 y 36 bits anteriores
se escribirá en un dispositivo conectado a la consola, generalmente un terminal de impresión.

Si lee el valor de la dirección 777570, recibió el valor ingresado por los interruptores en el panel frontal. Esto a menudo se usaba para configurar el gestor de arranque.

Del mismo modo, se accedió a la unidad RK05 escribiendo el número de sector al que desea acceder en la dirección 777412, la dirección donde desea escribir los datos en 777410 y el número de palabras en 777406. Luego, establezca el bit cero en 777404 en 1 ( bit GO), y la unidad transferirá el número deseado de palabras directamente a la memoria.

Mi dispositivo favorito era el KW11-L. Escribir el bit 6 en la dirección 777546 desencadena una interrupción cada 20 ms. ¿Por qué son 20 ms? Porque es un período de frecuencia AC
5 5Si ordenó un automóvil para una región con una frecuencia de red de 60 Hz, tenía un número diferente (número de pieza)
Sí, como un reloj doméstico, el PDP-11 contó el tiempo por períodos de voltaje en la red.
Alto costo de programación.
La novena debilidad de las minicomputadoras fue el alto costo de la programación. Muchos usuarios programaron en lenguaje ensamblador sin editores e IDE convenientes, sistemas de archivos y depuradores disponibles en sistemas grandes. PDP-11 no pudo superar este inconveniente, aunque PDP-11 construyó sistemas más complejos que los modelos anteriores, PDP-8 y PDP-15.Debido a su naturaleza minimalista, las minicomputadoras no proporcionaron un entorno conveniente para desarrollar programas. A menudo usaba el tedioso cambio de interruptores de palanca o, tal vez, editaba y ensamblaba programas en otra computadora grande y los transfería a una cinta de papel.
Era similar a cómo se programan los microcontroladores hoy, editamos el programa en una estación de trabajo grande, compilamos el archivo binario de destino y lo transferimos a la memoria flash del microcontrolador.

Sin embargo, parece que Bell no sabía sobre el trabajo de Thompson y Richie, que estaban ocupados construyendo su propio entorno de software en el PDP-11 en Nueva Jersey.
Personas que construyeron el diseño.
Pasemos a la segunda sección: personas
Esta sección es muy interesante para mí, como aficionado a la historia, porque estudiar la historia de las computadoras, como cualquier otro tema histórico, es básicamente estudiar la historia de las personas y el contexto en el que tomaron decisiones.
Bell señala que si bien las computadoras están basadas en la tecnología, están hechas por el hombre y, por lo tanto, dedicó esta sección a describir la dinámica del grupo DEC durante el desarrollo de PDP-11.
Los problemas que enfrentan los desarrolladores de computadoras se pueden dividir en dos partes: problemas debido a la inexperiencia y problemas de naturaleza sistémica.Aquí, Bell recuerda las palabras de Fred Brooks de su último libro en ese momento,
Mythical Man-Month .
Brooks, el jefe del proyecto OS / 360, ha luchado durante años para crear un único sistema operativo de propósito general que pueda ejecutarse en todos los modelos IBM / 360, que era el objetivo del proyecto. Las palabras de Brooks estaban frescas en la memoria de Bell cuando escribió este párrafo.
Cronología de diseño
Esta sección es una ventana al trabajo de DEC Corporation a fines de la década de 1960.
La organización interna de los equipos de diseño en DEC a lo largo de los años ha fluctuado entre la orientación al mercado y la orientación al producto. Cuando la empresa creció un 30 o 40% por año, había una necesidad de reorganización continua. En un momento dado, aproximadamente un tercio de los empleados trabajaron en la empresa durante menos de un año.
Levanta las manos si te resulta familiar.
Durante el desarrollo del PDP-11, la compañía se estructuró en torno a líneas de productos. Los desarrolladores de la compañía se organizaron en pequeños grupos: grupo PDP-10, grupo PDP-15 (máquina de 18 bits), grupo PDP-8, subgrupo PDP-8 / S, grupo LINC-8. Cada grupo incluía especialistas en marketing e ingenieros responsables del desarrollo de productos, software y hardware. Como resultado de tal organización, la experiencia en arquitectura se dividió en grupos.Bell dedica un tiempo a revisar cada grupo, enumerando sus fortalezas y debilidades, y su contribución a PDP-11. No enumeraré todo esto aquí, con una excepción.
El grupo PDP-10 fue el más fuerte de la compañía. construyeron máquinas grandes, potentes y de tiempo compartido. Era, en muchos sentidos, una división separada de la empresa, con un mínimo de interacciones con otros grupos. Aunque el grupo PDP-10 en su conjunto tenía la mejor comprensión de cómo funciona la arquitectura del sistema, no tenían idea de la gama de sistemas, estaban interesados en construir solo computadoras de alta velocidad.Recientemente trabajé para una compañía de software en la que uno o dos de los productos más antiguos obtuvieron casi todas las ganancias de la compañía, y entiendo muy bien la posición de Bell. El PDP-10 era una versión DEC del mainframe, muy rápido y disponible a un solo precio fijo.
El primer trabajo en la creación de una computadora de 16 bits comenzó bajo la supervisión de un gerente PDP-15, un vendedor con experiencia en ingeniería. El primer proyecto se llamó PDP-X e incluyó especificaciones para varias máquinas. Esta era la arquitectura de la familia de máquinas, y estaba mejor diseñada que la PDP-11 posterior, pero no era particularmente innovadora. Desafortunadamente, el gerente del grupo culpó a la administración de que su proyecto era potencialmente tan complejo como el PDP-10 (no lo era), y que estaba seguro del fracaso del proyecto y, por lo tanto, nadie más quería hacer otras computadoras grandes además de una sola computadora grande empresaY aquí Bell nos da una buena lección: si sus competencias están en la misma cadena que los proyectos de otros gerentes, tienen una herramienta efectiva para matar su proyecto antes de que entre al mercado.
En retrospectiva, las personas involucradas en el desarrollo de PDP-X parecen haber estado trabajando en el desarrollo de Data General al mismo tiempo.Esto podría no haber sido notado por el lector promedio, pero es una referencia a los "ocho traicioneros" de Shockley una década antes
6 6Este grupo incluía a Robert Noyce y Gordon Moore, quienes diez años después dejaron Fairchild y fundaron su propia compañía Intel.
Edson de Castro, gerente de producto PDP-8 y gerente de proyecto PDP-X dejó DEC, con varias personas de su equipo, para formar Data General. No está claro en los registros si De Castro se fue porque el PDP-X fue descontinuado, o si su partida fue la gota que colmó el vaso. En cualquier caso, el resultado fue obvio, como escribe Bell.
Cuando se cerró el proyecto PDP-X, comenzó el proyecto DCM (Desk Calculator Machine, nombre en clave elegido para privacidad). El diseño y la planificación fueron erráticos porque Data General compitió con su computadora muy pequeña de 16 bits.Data General no compitió con DEC con su computadora Nova de 16 bits en el mercado para el que se desarrolló el PDP-8 y que De Castro conocía como el dorso de su mano: equipo de laboratorio montado en bastidor

PDP-8 de 12 bits vs Nova de 16 bits de Data General

PDP-11: grados
La última parte del artículo compara PDP-11 con sus predecesores, y luego Bell procede a evaluar la propia arquitectura PDP-11. El mayor avance fue UNIBUS.
En general, el bus UNIBUS superó todas las expectativas. Se podrían conectar cientos de tipos de dispositivos de almacenamiento y periféricos; se convirtió en un componente arquitectónico estándar de sistemas en el rango de precios de $ 3K a $ 100K (1975).¿Qué es UNIBUS?

Las primeras computadoras comerciales fueron diseñadas como un conjunto de módulos conectados a un plano posterior con conexiones cableadas. En los días de las lámparas, esto era una necesidad porque las lámparas no eran confiables y los módulos debían reemplazarse rápidamente.

Más tarde, el deseo de construir una computadora a partir de módulos estándar condujo a la construcción de bloques lógicos generalizados conectados mediante un plano posterior complejo.
Aquí hay un ejemplo de los primeros módulos DEC.

Puede montarlos en un plano posterior complejo con conexiones por cable y construir una computadora a partir de ellos, en este caso PDP-8.
UNIBUS es un desarrollo de desarrollos DEC anteriores y es una abstracción de un bus de control idealizado. La disponibilidad de componentes de integración media elimina la necesidad de una placa posterior compleja y traslada la complejidad principal a los módulos que están instalados en la placa posterior. Esto hace posible construir módulos estándar que se conectan a una computadora.
El bus UNIBUS, como estándar, era un componente de la arquitectura que le permite construir sistemas fácilmente configurables. Cualquier empresa, no solo DEC, puede hacer fácilmente componentes que interactúen con el bus. Los buenos neumáticos crean un buen ambiente de ingeniería en el que las personas pueden concentrarse en un diseño estructurado. UNIBUS creó una industria secundaria que ofrecía fuentes alternativas de suministro de memoria y periféricos. Además del bus IBM 360, UNIBUS era el estándar de bus más común en la industria informática.Antes de la llegada de UNIBUS, los dispositivos de entrada / salida que la minicomputadora podía soportar solo los determinaban sus desarrolladores. La forma de interactuar con los dispositivos estaba codificada por circuitos lógicos de computadora. Con la llegada de UNIBUS, el usuario final abrió un campo amplio para personalizar la computadora y un campo para experimentos.
¿Qué nos enseñó el PDP-11?

La retrospectiva de Bell termina en el momento en que se escribió el artículo, es decir en 1976-77, pero desde nuestro punto de vista, cuarenta años después, la influencia de PDP-11 fue enorme.
RISC
Al principio, cuando el PDP-11 aún no se había desarrollado y, además, no se consideraba una máquina RISC, este término no existía antes de que John Coke lo introdujera en 1976 con respecto al IBM 801. Sin embargo, para todos los que tenían experiencia en programación. Procesadores ARM, procesadores RISC modernos, su similitud es obvia. Del mismo modo que el diseño de lenguajes de programación es un proceso de desarrollo evolutivo y de préstamo, lo mismo sucede con el diseño de un sistema de comando.
PDP-11 también llevó una estaca directamente al corazón de las instrucciones de E / S seleccionadas, aprobando el modelo de E / S mapeado en la memoria, que es el mecanismo más común en la actualidad. Los únicos procesadores que tienen instrucciones de E / S separadas son el Intel 8080 y su primo Z80.Unix
PDP-11 ha tenido un gran impacto en el software y los sistemas operativos. El PDP-11 fue la máquina que Ken Thompson y Dennis Ritchie desarrollaron UNIX en Bell Labs.7 7UNIX
PDP-7 . 1970 PDP-11/20, PDP-11/45.
Antes de PDP-11, UNIX no existía. Antes de PDP-11, C no existía; era la computadora para la cual C fue diseñada. Si desea saber por qué en el clásico C int tiene 16 bits, esto se debe a PDP-11.UNIX nos trajo la idea de las tuberías, "todo es un archivo" y la informática interactiva.VAX-11/780
En informática interactiva, el uso de memoria es ilimitado, y aunque PDP era bueno para el control de procesos, las demandas de la informática interactiva fueron la razón para crear un reemplazo para PDP-11.En el año en que salió Bell, 1977, se lanzó el seguidor de PDP-11, VAX-11, que significaba "extensión de dirección virtual".BSD
UNIX llegó a Berkeley en 1974, Ken Thompson trajo la cinta, que fue el comienzo del desarrollo en la costa oeste de BSD - Berkley Systems Distribution.Berkeley UNIX fue portado a VAX a principios de la década de 1980 y floreció como una alternativa contracultural al sistema operativo VMS de DEC. Berkeley UNIX generó una nueva generación de hackers que luego fundaron compañías como Sun Microsystems e idiomas como Self, lo que condujo directamente al advenimiento de Java.UNIX fue portado a una gran cantidad de sistemas informáticos durante los años 80, y como resultado de la "guerra UNIX", se han creado varios sistemas BSD que existen hasta el día de hoy.Siguiente
4BSD, un derivado de la distribución original de Berkeley, se convirtió en la base del sistema operativo de la familia de computadoras NeXT de Steve Jobs. Cuando Apple compró NeXT en 1997, NextSTEP y su derivado BSD se convirtieron en la base de Darwin, OSX e iOS.Windows NT
Como dijimos anteriormente, hablando de Edison de Castro, había traidores en DEC.Dave Cutler, arquitecto del sistema operativo VAX VMS, después de un intento fallido de iniciar un nuevo proyecto combinado del sistema operativo y el hardware diseñado para reemplazar el VAX, dejó Microsoft en 1988, trayendo a todo su equipo con él y lideró el desarrollo de Windows NT. Aquellos que conocen el interior de Windows y el sistema operativo VMS pueden notar características comunes.Xerox alto
Para concluir la charla sobre la historia de De Castro, la serie Data General Nova inspiró a Charles Tucker y Butler Lampson, desarrolladores de Xerox Alto, quienes a su vez inspiraron a los desarrolladores de Apple Macintosh.Datos generales nova
La rivalidad entre Data General y DEC continuó en la era de 32 bits, como Tracy Kidder, quien ganó el Premio Pulitzer en 1981, en su libro El alma de una nueva máquina .¿Qué hemos aprendido de PDP-11?
Aunque su desarrollo fue a veces caótico, y no sin fallas, PDP-11 es la intersección de muchos hilos de la historia.Hardware, software, lenguajes de programación, sistemas operativos, PDP-11 influyeron en todo esto.Vale la pena celebrarPublicaciones relacionadas
What did devops mean ?Introducing gb, a project based build tool for the Go programming languageavr11: how to add 256 kilobytes of ram to an ArduinoPadding is hard