Un poco de la historia del

Laboratorio de Proyectos Especiales
en
Instrumentación, Telecomunicaciones y Tecnologías de la Información
del
Departamento de Procesamiento de Señales


3) El equipamiento del Laboratorio antes de 1986: La minicomputadora PDP 11/40

La siguiente fotografía fue tomada en 1984; nótese el equipo de sonido sobre la computadora, el cual se usaba para escuchar la salida de un convertidor D/A.





Fotografía 1984; Wu,
          Lepe, y la PDP.

Izquierda: F. Lepe-Casillas
Administrador del Sistema

Derecha: Wu Zhengyu
Alumno de la maestría



La minicomputadora mostrada es una PDP 11/40 de Digital Equipment Co. El Administrador del Sistema (y alumno de la Maestría en Control) señala la unidad de convertidores A/D y D/A empleados para realizar experimentos sobre señales de voz. El otro alumno del mismo programa (y becario de la República Popular de China), sentado frente al teletipo LA120, es Wu Zhenyu. Puede observarse una terminal gráfica GT-40, y un equipo de sonido para escuchar los resultados. También se observan varios discos RK05, cada uno con una capacidad de 2.4 Megabytes. En principio, esta máquina podía programarse, en código binario, mediante la serie de palanquillas dispuestas en el panel frontal.



Como puede verse en la fotografía, la forma principal de interacción con la computadora era el teletipo: éste consumía mucho papel especial, con los problemas consecuentes asociados al abastecimiento y desperdicio de papel. Dicho consumo no era ni ligero ni ecológico, y hoy día resultaría arcaico. No obstante, el papel de calidad y cuidado adecuadamente, es todavía uno de los medios de conservación de datos más durables [e1], [e2].

Toda la comunicación entre usuarios y máquina era mediante código ASCII 1 a través de puertos serie RS-232 2, con un diálogo parecido al de una sola ventana de la línea de comandos de Windows, o a la consola 3 de Linux. El «manager» no contaba con menús ni ayudas en pantalla, bueno, si no tenía ni pantalla ni ratón; por lo que le convenía memorizar muchos comandos y tener los manuales impresos al alcance. Sin embargo, estas incomodidades permitían que la máquina operara de manera muy eficiente. El procesador de la «P de P» tenía un apuntador de localidades de memoria 4 de 16 bits, así que cada programa disponía de un espacio de direcciones en memoria física de 64 Kbytes, o 32 K palabras de 16 bits: esto era la memoria virtual. Por otro lado, el bus de direcciones contaba con 18 líneas, por lo que esta máquina podía tener hasta 256 Kbytes de memoria física. Es decir, en estas máquinas la memoria virtual era ¡cuatro veces menor que la memoria física! 5

El procesador no podía por sí sólo acceder a toda la memoria física, pero con ayuda de la Unidad de Mapeo de Memoria (módulo KT-11 de Digital Co.), y el Sistema de Operación RSX-11M 6, el espacio virtual de cada programa se dividía en "páginas" o segmentos de 4K, y cada página virtual era colocada en alguna páginas físicas disponible, de manera transparente a los usuarios (estas páginas físicas eran bloques de 8 Kbytes de memoria contigua). Cualquier programa de usuario disponía realmente de 32K palabras de memoria física 7, pero el mapeo de páginas virtuales a páginas físicas permitía distribuir varios programas en la "extensa" memoria física. De esta manera, la PDP podía atender a múltiples usuarios simultáneamente, con sólo 128K palabras de 16 bits de memoria. Por supuesto, con suficientes usuarios las PDP se podían tornar lentas, según el tamaño de los programas y la intensidad de operaciones algebraicas y accesos a disco. Por esta razón, los programadores procuraban minimizar el número de líneas de código en lenguaje de máquina, es decir, minimizar el código objeto resultante de la compilación o ensamblado.

Otra diferencia mayor de una PDP con las computadoras modernas es que la memoria de la PDP era de núcleos de ferrita. Por ello, si fallaba el suministro de energía eléctrica, al recuperarse la alimentación de energía, la ejecución de un programa continuaba en el punto donde se había quedado al momento del apagón. Esto compensaba en parte la carencia de una planta generadora para emergencias y de Fuente sustituta de potencia 8 (o UPS) para la «P de P».

En la fotografía aquí arriba, el administrador del sistema señala la unidad de convertidores AD/DA. Aparte del tamaño, y peso, de las tarjetas con la electrónica, de la robustez del panel de conectores, del consumo de energía y del costo de adquisición, otras diferencias entre la unidad AD/DA antigua, y la tarjeta de sonido actual, son el número de canales y las facilidades de acceso a los bits de los registros de cualquier periférico en la «P de P», facilidad debida a que el sistema operativo de la «P de P» soportaba el manejo de sus periféricos mediante rutinas en ensamblador, o bien, usando los Macros 9 distribuidos junto con el Sistema de Operación e incluidos en las llamadas Macrotecas 10 (Macro-libraries) proporcionadas por DEC. Esto era natural, pues a diferencia de los Sistemas de Operación actuales, que generalmente se desarrollan en C, los Sistemas de Operación anteriores se escribían directamente en ensamblador. Por todo esto, aquella «P de P» se parecía mucho más a un microcontrolador actual con un Sistema para Operar en Tiempo Real 11, que a una PC provista de software empresarial y destinada al uso en un escritorio de una oficina, cuando no en una cafetería.

El principal lenguaje de programación empleado para cálculos, tanto por ingenieros como por físicos, fue el Fortran 77 12. Aún cuando el lenguaje Fortran de DEC incluía también programotecas bastante completas para manejar los periféricos, algunas veces era necesario recurrir al ensamblador, para manejar los registros de los periféricos a nivel de bits y acceder a direcciones reales de la página de entrada y salida de la memoria física. Un mecanismo muy interesante [e3] para acceder a los registros de los periféricos desde un programa en Fortran era transferir datos del programa principal en Fortran a unas co-rutinas en ensamblador y viceversa, comunicando apuntadores a través de la Pila del Procesador 13. También, ante lo limitado de los recursos físicos de la máquina, fueron críticas las técnicas para implantar los algoritmos usando un número mínimo de líneas de código. El lenguaje Fortran conserva importancia para cálculos científicos [e4], sobre todo en ambientes de supercómputo y en muchos centros de investigación europeos, entre otras razones, por la cantidad de código legado 14 escrito en él, y por la rapidez con la que ejecuta las operaciones numéricas.

_____________________________________________

1.- ASCII → Americana Standard Code for Information Interchange

2.- RS-232Recommended Standard (EIA232)

3.- La consola es la terminal donde se monitora y administra el sistema. http://www.linfo.org/console.html

4.- Apuntador de localidades de memoria, en inglés: Program Counter

5.- La cantidad de memoria virtual es el rango de direcciones que un programa puede usar tanto para almacenar sus instrucciones como para leer/escribir datos. El rango de direcciones indexadas con el «Program counter»

6.- RSX → Resource Sharing Extention

7.- En realidad sólo 28K , pues los 4K restantes para los 32K estaban destinos a las direcciones correspondientes a los registros de los periféricos, la así llamada página de entrada/salida. Un programa mayor a 28 K debía recurrir al manejo de "overlays".

8.- Batería e Inversor de Emergencia, en inglés: Uninterruptible power supply

9.- El nombre de Macro proviene de considerar que a una rutina de uso frecuente, armada con varias instrucciones elementales, constituye una Macro-instrucción o instrucción mayor para el procesador.

10.- En los 70's y 80's se usaban los términos programoteca y macrotecas para traducir libraries, pues la palabra se refiere a «librerías sin libros»

11.- Sistema para Operar en Tiempo RealReal-Time Operating System (RTOS)

12.- Fortran es una contracción de «Formula translation». Existen versiones de Fortran más modernas, pero la verdadera fortaleza del Fortran ya estaba, y sigue estando, en la eficacia con la que ejecuta cálculos numéricos. Hoy día uno se topa con el Fortran sobre todo en el "código heredado" para muchos cálculos de ingeniería, y en las super-computadoras diseñadas para cálculos intensivos.

13.- Pila en el sentido de una serie de objetos sobrepuestos; en inglés: Stack

14.- En inglés: legacy code

[e1] Margaret Hedstrom, Digital preservation: a time bomb for Digital Libraries (1998); versión PDF

[e2] Casey Morgan: Data storage lifespans: How long will media really last?; 2013-08-28

[e3] Juan Eduardo Vargas Ortega (Depto de Fisiología, Facultad de Medicina, UNAM, 1979)

[e4] Scientific-computings-future-can-any-coding-language-top-a-1950s-behemoth

Sitios para conocer más sobre "la P de P":

[e5]  Wikipedia: Programmed_Data_Processor

[e6] Wikipedia: PDP-11

[e7] Sitio dedicado a la PDP11

[e8] Sitio sobre la PDP en la Escuela de Psicología de la Universidad de Sydney, Autralia