Tecnología

Un breve recorrido por la PDP-11, la minicomputadora más influyente de todos los tiempos

sacada con

La historia de la informática se puede dividir en tres eras: mainframes, minicomputadoras y microcomputadoras. Las minicomputadoras proporcionaron un puente importante entre los primeros mainframes y las ubicuas PC de hoy. Esta es la historia de la PDP-11, la minicomputadora más influyente y exitosa de todos los tiempos.

En su día, las minicomputadoras se utilizaron en una variedad de aplicaciones. Sirvieron como controladores de comunicaciones, controladores de instrumentos, preprocesadores de grandes sistemas, calculadoras de escritorio y manejadores de adquisición de datos en tiempo real. Pero también sentaron las bases para avances significativos en la arquitectura de hardware y contribuyeron en gran medida a los sistemas operativos modernos, los lenguajes de programación y la computación interactiva tal como los conocemos hoy.

En el mundo actual de la informática, donde cada computadora ejecuta alguna variante de Windows, Mac o Linux, es difícil distinguir entre las CPU en el sistema operativo. Pero hubo un momento en que las diferencias en la arquitectura de la CPU eran un gran problema. El PDP-11 ayuda a explicar por qué fue así.

El PDP-11 se introdujo en la década de 1970, en un momento en que la mayor parte de la informática se realizaba en costosos mainframes de GE, CDC e IBM, a los que pocas personas tenían acceso. No había computadoras portátiles, de escritorio o computadoras personales. La programación la hacían pocas empresas, principalmente en ensamblador, COBOL y FORTRAN. La entrada se realizó en tarjetas perforadas y los programas se ejecutaron en lotes no interactivos.

Aunque el primer PDP-11 fue modesto, sentó las bases para una invasión de minicomputadoras que haría que una nueva generación de computadoras estuviera más disponible, esencialmente creando una revolución en la informática. El PDP-11 ayudó a crear el sistema operativo UNIX y el lenguaje de programación C. También influiría en gran medida en la próxima generación de arquitecturas informáticas. Durante los 22 años de vida útil de la PDP-11, una tenencia sin precedentes según los estándares actuales, se vendieron más de 600 000 PDP-11.

READ  Apple Watch y Fitbit identificados como criaderos de bacterias dañinas, muestra un estudio

Los primeros modelos PDP-11 no eran muy impresionantes. El primer PDP-11 11/20 costó $ 20,000 pero se envió con solo 4 KB de RAM. Usaba cinta de papel como almacenamiento y tenía una consola de impresora de teletipo ASR-33 que imprimía 10 caracteres por segundo. Pero también tenía una asombrosa arquitectura ortogonal de 16 bits, ocho registros, 65 KB de espacio de direcciones, un tiempo de ciclo de 1,25 MHz y un bus de hardware UNIBUS flexible que admitiría futuros periféricos de hardware. Esta fue una combinación ganadora para su creador, Digital Equipment Corporation.

La aplicación inicial del PDP-11 incluía control de hardware en tiempo real, automatización de fábrica y procesamiento de datos. A medida que el PDP-11 ganó reputación por su flexibilidad, programabilidad y asequibilidad, se usó en los sistemas de control de semáforos, el sistema de defensa antimisiles de Nike, el control del tráfico aéreo, las plantas de energía nuclear, los sistemas de entrenamiento de pilotos de la Armada y las telecomunicaciones. También fue pionero en el procesamiento de textos y datos que ahora damos por sentado.

Y la influencia del PDP-11 es más evidente en el cronograma de ensamblaje del dispositivo.

Conceptos básicos de la programación en ensamblador

Antes de que se inventaran los lenguajes de alto nivel como Python, Java y Fortran, la programación se hacía en lenguaje ensamblador. La programación en lenguaje ensamblador se puede realizar con muy poca RAM y almacenamiento, lo que es perfecto para los primeros días de la informática.

El lenguaje ensamblador es un formato intermedio de bajo nivel que se convierte en lenguaje de máquina que puede ser ejecutado directamente por la computadora. Es de bajo nivel porque estás manipulando directamente aspectos de la arquitectura de la computadora. En pocas palabras, la programación ensambladora mueve sus datos byte a byte a través de registros de memoria y hardware. Lo que diferenció a la línea de PDP-11 fue que el diseño de la minicomputadora era elegante. Cada instrucción tenía su lugar, y cada instrucción tenía sentido.

READ  El renderizado del Samsung Galaxy S21 FE muestra el teléfono desde todos los ángulos

Un espacio de direcciones de 16 bits significaba que cada registro podía direccionar directamente hasta 64 KB de RAM, con los 4 K superiores reservados para entrada y salida mapeada en memoria. Los PDP-11 pueden direccionar un total de 128 KB de RAM usando segmentos de registro (más sobre eso en un momento). Entonces, aunque los sistemas PDP-11 venían con solo 4 KB de RAM, aún eran productivos mediante el uso inteligente de las primeras técnicas de programación.

Un programa en lenguaje ensamblador

Es más fácil entender este concepto a través de un ejemplo de un programa simple en lenguaje ensamblador PDP-11, que veremos a continuación. Palabras clave que comienzan con «.» son directivas para el ensamblador. .globl exporta una etiqueta como un símbolo al enlazador para que la use el sistema operativo. .text define el comienzo del segmento de código. .data define el inicio de un segmento de datos separado. Las palabras clave que terminan en «:» son etiquetas. La programación de ensamblaje usa etiquetas para direccionar simbólicamente la memoria. (Nota: con la jerga y la codificación de PDP-11, cualquier texto después de / es un comentario).

Palabras clave Traducción
.globl _principal Exporte la etiqueta _main como punto de entrada para que la use el sistema operativo
.texto Comienzo del segmento de instrucción donde reside el código de solo lectura
_principal: MOV VAL1, R0 Copie el valor de la palabra en la ubicación de memoria VAL1 en el registro 0
AGREGAR $ 10, R0 Suma 10 al valor en el registro 0
MOV R0, VAL1 Copie el valor del registro 0 a la ubicación de memoria VAL1
_.Dado Inicio del segmento de datos donde residen los datos de lectura/escritura
VAL1: .palabra $100 Reserve 2 bytes de almacenamiento para almacenar Val1, inicializado a 100
READ  Apple busca una notebook plegable de 20 pulgadas y un iPhone plegable: informes

Si bien los valores numéricos se pueden usar para las direcciones de memoria, el uso de etiquetas en lugar de direcciones codificadas facilita la programación y hace que el código se pueda reubicar en la memoria. Esto le da flexibilidad al sistema operativo al ejecutar código, asegurando que cada programa sea rápido y eficiente.

La directiva del ensamblador .data coloca los datos en un segmento de memoria que se puede leer y escribir. El segmento de memoria para el código es de solo lectura para evitar que los errores de programación dañen el programa y provoquen bloqueos. Esta separación de instrucciones de datos en el PDP-11 se denomina «división de instrucciones y datos». Además de agregar estabilidad, esta característica también duplica el espacio de direcciones, lo que permite 64 KB para código y 64 KB para datos; esto se consideró una gran innovación en ese momento. Por lo tanto, las microcomputadoras X86 de Intel luego hicieron un uso extensivo de subprocesos.

Federico Pareja

"Escritora típica. Practicante de comida malvada. Genio zombi. Introvertido. Lector. Erudito de Internet. Entusiasta del café incondicional".

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba