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

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

saccade.com

Se puede decir que la historia de la computación se divide en tres eras: la historia de las computadoras centrales, las microcomputadoras y las microcomputadoras. Las microcomputadoras proporcionaron un puente importante entre las primeras computadoras centrales y las omnipresentes microcomputadoras de la actualidad. Esta es la historia del PDP-11, el microordenador más influyente y exitoso de todos los tiempos.

Por el momento, las microcomputadoras se han utilizado en una variedad de aplicaciones. Sirvieron como controladores de comunicaciones, controladores de instrumentos, procesadores de sistemas grandes, calculadoras de escritorio y procesadores de adquisición de datos en tiempo real. Pero también sentaron las bases para importantes avances en la ingeniería de hardware y contribuyeron significativamente a los sistemas operativos modernos, los lenguajes de programación y la computación interactiva tal como los conocemos hoy.

En el mundo de la computación de hoy, donde cada computadora ejecuta alguna variante de Windows, Mac o Linux, es difícil saber qué CPU están bajo el sistema operativo. Pero hubo un momento en que las diferencias en la arquitectura de la CPU eran un problema importante. El PDP-11 ayuda a explicar por qué sucede esto.

El PDP-11 se introdujo en 1970, una época en la que la mayor parte de la informática se realizaba en costosas computadoras GE, CDC e IBM a las que pocas personas tenían acceso. No había computadoras portátiles, de escritorio ni computadoras personales. La programación la hacían unas pocas empresas, sobre todo en ensamblador, COBOL y Fortran. La entrada se hizo en tarjetas perforadas y los programas se ejecutaron en grupos no interactivos.

Aunque el primer PDP-11 fue modesto, sentó las bases para la conquista de las microcomputadoras que harían que una nueva generación de computadoras estuviera más disponible, esencialmente revolucionando la informática. PDP-11 ayudó a dar a luz sistema operativo UNIX Y el lenguaje de programación c. También afectará en gran medida a la próxima generación de arquitecturas informáticas. Durante los 22 años de vida útil del PDP-11, un período sin precedentes según los estándares actuales, se han vendido más de 600 000 PDP-11.

READ  Las pistas de Final Fantasy para Chocobo GP incluyen una que se parece sospechosamente a Mario Kart Fave

Los primeros prototipos del PDP-11 no eran demasiado impresionantes. El primer PDP-11 11/20 cuesta $ 20,000, pero se envía con solo unos 4 KB de RAM. Usé cinta de papel para el almacenamiento y tenía un controlador de impresora de teletipo ASR-33 que imprime 10 caracteres por segundo. Pero también tenía una impresionante 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 admitía futuros periféricos. Esta fue una combinación exitosa para su creador, Digital Equipment Corporation.

La implementación inicial del PDP-11 incluía control de instrumentación en tiempo real, automatización de planta y procesamiento de datos. A medida que el PDP-11 ha ganado reputación por su flexibilidad, programabilidad y asequibilidad, ha visto su uso en sistemas de control de semáforos, el sistema de defensa antimisiles Nike, control de tráfico aéreo, plantas de energía nuclear y sistemas de comunicación y entrenamiento de pilotos navales. También fue pionera en el procesamiento de textos y datos que ahora damos por sentado.

El efecto del PDP-11 se manifiesta notablemente en la programación del ensamblaje del dispositivo.

Conceptos básicos de programación en ensamblador

Antes de la invención de 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 un entorno en los primeros días de la informática.

El lenguaje ensamblador es un formato intermedio de bajo nivel que se convierte en un lenguaje de máquina que luego puede ejecutarse directamente en una computadora. Es discreto porque está 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 hizo que la programación del PDP-11 fuera diferente fue que el diseño de la microcomputadora era elegante. Cada instrucción tiene su lugar, y cada instrucción tiene sentido.

READ  Soy un trabajador de Amazon y "atrapado en un almacén por bots"

El espacio de direcciones de 16 bits significa que cada registro puede manejar hasta 64 KB de RAM, con los 4 KB más altos reservados para la entrada y salida asignadas a la memoria. Los PDP-11 pueden manejar un total de 128 KB de RAM usando clips de registro (más sobre esto 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.

programa en lenguaje ensamblador

Es más fácil entender este concepto con un ejemplo de un programa de lenguaje ensamblador PDP-11 simple, que discutiremos a continuación. Palabras clave que comienzan con «.» Son indicaciones para la asamblea. .globl Exporte una etiqueta como icono al enlace para que la use el sistema operativo. .text Especifica el inicio del segmento de código. .data Especifica el inicio de un segmento de datos separado. Las palabras clave que terminan en «:» son taxonomías. La programación ensambladora usa etiquetas para manipular la memoria simbólicamente. (Nota: con la terminología PDP-11 y la codificación, sin texto después/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 bloque de instrucciones donde se encuentra 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 en el registro 0 a la ubicación de memoria VAL1
_.datos Comienzo del segmento de datos donde se leen/escriben los datos
VAL1: .palabra $100 Mantenga 2 bytes de almacenamiento para contener Val1, configurado en 100
READ  Apoya a Ucrania comprando 572 juegos independientes por $10

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

La directiva del recopilador de datos coloca los datos en un segmento de memoria que se puede leer y escribir. La parte de la memoria del 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 y 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 al permitir 64K para código y 64K para datos; esto se consideró una gran innovación en ese momento. En consecuencia, las microcomputadoras X86 de Intel hicieron un uso extensivo de los sectores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.