# BESM

BESM, siglas de "Gran (o rápida) Máquina de Computación Electrónica" en ruso БЭСМ (Большая (или Быстродействующая) Электронно-Счётная Машина), hace referencia a una serie de computadoras de gran tamaño o computadoras centrales desarrolladas en la Unión de Repúblicas Socialistas Soviéticas en los años 1950 y 1960.
Se desarrollaron en el Instituto de Mecánica de Precisión e Ingeniería Informática S.A. Lébedev de la URSS (ITM y VT) en Moscú bajo la dirección de Serguéi Alekséievich Lébedev. Fue una máquina diseñada para propósito general y participó en importantes campos de investigación como la energía nuclear, el desarrollo aeroespacial y planificación económica.
Fue desarrollado a partir de la computadora MESM y tuvo seis versiones diferentes, desde el primer modelo realizado con válvulas termoiónicas hasta los realizados en circuitos semiconductores integrados. Fueron predecesoras de las modernas computadoras Elbrús.

## Historia

En 1950 se nombra a Mijaíl Lavréntiev, entonces vicepresidente de la Academia Ucraniana de Ciencias (AUC) y Director del Instituto de Matemáticas de Kiev, director del Instituto de Mecánica de Precisión e Ingeniería de la Computación de Moscú (ITM TC) y este invita a Serguéi Alekséievich Lébedev para dar impulso a nuevas investigaciones de computadores (hasta el momento se realizaban investigaciones con máquinas de calcular mecánicas).
Lébedev se incorpora en marzo de 1950 y se hace cargo de las investigaciones en el laboratorio N.º 1 del ITMiVT. Serguéi Lébedev llegó a Moscú con el plan de desarrollar una nueva computadora, la llamada "Máquina de Calcular Electrónica de Alta Velocidad" que en ruso corresponden a las siglas "BESM" (БЭСМ сокращение от Большая (или Быстродействующая)).
Para la BESM Lébedev estableció un sistema de trabajo y reparto de responsabilidades, asignó el diseño de la unidad aritmética a P. P. Golovístikov y la unidad de control la realizó K.S. Neslukhovskiy. Creó un grupo en el cual había un núcleo de experimentados asistentes-diseñadores y muchos científicos jóvenes con mucho entusiasmo, inventiva e iniciativa. Este método de formación de equipos sería una constante en sus trabajo.
En 1952 se terminó la construcción de la BESM y se empezó a poner a punto y a realizar las diferentes pruebas. En abril de 1953 recibe el permiso para su operación regular.
El rendimiento de la BESM fue menor del esperado al no poder utilizar como memoria RAM memorias basadas en el Tubo Williams (como el selectrón) teniendo que usar memoria de línea de retardo de mercurio era más lenta. En 1955 se implementó una RAM de tubos Williams y en 1957 de núcleos de ferrita, mejorando considerablemente su velocidad llegando a las 10 000 operaciones por segundo. Estas máquinas fueron las que utilizaron en los cálculos de las primeras misiones espaciales de la URSS. En la Conferencia Internacional de Darmstadt de octubre de 1956 la BESM resultó como la computadora más rápida de Europa.
La versión definitiva, a la que se denominó BESM-2, comenzó a ser producida en serie en 1958 en la Planta de Construcción de Máquinas Volodarskiy en Uliánovsk y duró hasta 1962, fueron producidas 67 unidades.
En 1964 comenzaron a realizar pruebas con elementos semiconductores. Bajo la dirección de O. P. Vasíliev se construyó la denominada BESM-3M que funcionó muy óptimamente. Con una arquitectura similar a la M-20 se realizó el desarrollo de la llamada BESM-4 que fue la primera computadora soviética realizada íntegramente en elementos semiconductores, que resultó ser muy popular entre los usuarios, ya que era pequeña, confiable y económica.
En 1966 se ultima el desarrollo de un nuevo ordenador que se denominaría BESM-6 cuyo prototipo se había probado en 1965. Su producción se inició en 1968, después de que en 1967 la Comisión Examinadora Estatal oficialmente recomendara la producción en serie, y se mantuvo hasta 1987. Inicialmente transistorizado fue integrándose, según avanzaban los desarrollos tecnológicos de circuitería integrada. Era capaz de realizar 1 000 000 de operaciones por segundo e implementaba elementos del álgebra booleana. Se realizaron 355 unidades.
La histórica decisión de realizar una copia de la máquina IBM S/360 con el fin de unificar criterios de software y hardware entre los diferentes centros de la URSS y de otros países de la órbita socialista, en especial con la República Democrática Alemana, tomada a finales de 1966 por el gobierno de la URSS, apoyada por el Ministro de MCI de la URSS V.D. Kalmykov y el presidente de la Academia de Ciencias de la URSS, Mstislav Kéldysh, y repudiada por A.A. Dorodnitsyn, Serguéi Lébedev y M.K. Sulim, frenó considerablemente el desarrollo de las investigaciones informáticas propias, perjudicando el proyecto de la serie BESM.
Los siguiente desarrollos de esta línea de máquinas fueron los denominados Elbrús de la que a su vez surgieron los microprocesadores para los actuales ordenadores.

## Modelos

El desarrollo de las máquinas BESM comenzó en el Instituto de Mecánica de Precisión y Ciencias de la Computación de la URSS (ITM y VT) en Moscú bajo la supervisión de Serguéi Lébedev en 1950 como una continuación de sus trabajos en Kiev con la computadora MESM. Esta serie de máquinas se dejaron de fabricar en 1987 y fueron destinadas a todo tipo de tareas entre las que destacaron las científicas, de hecho fue una máquina considerada como una calculadora científica. En ese tiempo se desarrollaron varios modelos en los cuales se iba implementando los avances tecnológicos que iban surgiendo. Se realizaron los siguientes modelos:

### BESM-1

Originalmente denominada como BESM o BESM AN ("BESM Akadémii Nauk", en ruso, БЭСМ Академии Наук (БЭСМ АН), BESM de la Academia de Ciencias), En abril de 1951 la Comisión Examinadora Estatal sobre computadoras dirigida por M. V. Kéldysh, da luz verde a las computadoras BESM y STRELÁ, se desarrolla en 1952 y en 1953 estaba ya montada y probada, en abril recibe el permiso para su operación regular. En el momento de su construcción, era el equipo más rápido en Europa. Se realizó con válvulas termoiónicas utilizándose unos 5000 triodos. Era capaz de realizar 10 000 operaciones por segundo. Consumía unos 35 kW. Solo se realizó una máquina de este tipo.
Era una computadora binaria con una palabra de 39 bits. Constaba de una ALU (Unidad Aritmético Lógica) que trabajaba en paralelo y empleaba una aritmética de coma flotante. La estructura de la palabra era 32 bits para la mantisa, 1 bit para el signo del número, 5 bits para el exponente y 1 bit para el signo del exponente y tenía un formato de instrucción de tres direcciones también con palabra de 39 bits con 6 bits de Opcade y tres punteros de 11 bits cada uno lo que le permitía direccionar 2048 posiciones de memoria. Era capaz de representar números en el rango 9^-9 a 10^10 con una exactitud en los cálculos de cerca de 9 cifras decimales.
En el conjunto de instrucciones de la máquina incluye nueve operaciones aritméticas, 8 operaciones de transmisión de códigos, 6 operaciones lógicas y 9 operaciones de gestión.
La máquina tenía una memoria común para datos e instrucciones (arquitectura de Von Neumann). Marcas especiales en el código de instrucciones para desactivar la normalización de un coma flotante y realizar operaciones aritméticas de dirección.
La memoria RAM de la máquina fue realizada en memoria de línea de retardo de tubos acústicos de mercurio, se usaron 70, que eran más lentos que las memorias de tubos Williams (estos se reservaron para la STRELÁ destinada a las necesidades de la defensa). Los tubos de acústicos de mercurio tenían una longitud de aproximadamente un metro, habían sido desarrollados en 1949 en el Instituto de Automatización por orden de Lébedev. Se usaban 64 eran para almacenar información, uno para la señal del reloj, y 5 de repuesto. Esta memoria era de 1024 palabras. A principios de 1955 se sustituyeron los tubos acústicos de mercurio por tubos Williams y en 1957 se usaron memorias de núcleos de ferrita ampliándose hasta 2047 palabras.
La memoria ROM era 1024 palabras basada en diodos semiconductores de germanio. Como almacenamiento externo tenía 4 unidades de cinta magnética de 30 000 palabras y un tambor magnético compuesto por 2 unidades de 5120 palabras, lector de cinta perforada e impresoras. La velocidad de escritura/lectura en el tambor era de 800 dígitos por segundo y la de la cinta era de 400 dígitos por segundo una vez posicionada. Podía imprimir a una velocidad de 20 dígitos por segundo. La entrada de datos se realizaba por cinta magnética a una velocidad de 20 códigos por segundo.
En octubre de 1953 (1956 según otras fuentes) se presenta en la Conferencia Internacional en Darmstadt en Alemania demostrando ser la más rápida de Europa pero inferior en velocidad y memoria a la IBM 701 estadounidense.

### BESM-2

Una vez finalizadas las pruebas con éxito de la BESM-1 se plantea la producción en serie de la máquina. Esta se realiza con el nombre de BESM-2. Entró en producción a principios de 1958 y se mantuvo hasta 1962. Fueron producidas 67 unidades. La fabricación se realizó en la Planta de Construcción de Máquinas Volodarskiy en la ciudad de Uliánovsk, sobre el Volga. La adecuación del proyecto estuvo en manos de los ingenieros K. S. Neslukhovsky, A. N. Zimariov, V. A. Mélnikov y A. V. Aváiev entre otros.
Técnicamente era igual a la BESM-1 aunque con menos tubos de vacío, tenía 4000 válvulas y 5000 diodos de germanio, y ya con memoria definitiva de núcleos de ferrita de 2048 palabras (tenía 200 000 núcleos de ferrita). El poder de cálculo era de 20 000 operaciones por segundo con palabras de 39 bits. Una característica de su construcción fue que los componentes principales se realizaron en bloques estándar intercambiables.
La BESM-2 era una computadora universal pensada para investigación y uso civil en ella se realizaron multitud de cálculos de muchísimos proyectos científicos, entre otros los espaciales que permitieron lanzar al espacio las primeras naves tripuladas y satélites de la URSS. En una de estas máquinas se realizaron los cálculos para la misión espacial que logró poner la bandera de la URSS en la superficie de la Luna.
Lébedev usó una BESM-2 para realizar parte del proyecto de la BESM-6.

### BESM-3M y BESM 4

En 1964 llegaron a los laboratorios del ITM-TC los primeros transistores que fueron probados y bajo la dirección de O. P. Vasíliev, se construyó con ellos una máquina a la que denominaron BESM-3M.
Poco después, basándose en la estructura de la M-20, construyeron una nueva computadora a la que llamaron BESM-4 íntegramente compuesta por elementos semiconductores. Fue la primera computadora soviética realizada con está tecnología. El académico A. Dorodnitsin propuso la máquina a la Comisión Examinadora Estatal, la cual realizó un informe muy positivo de la misma. La BESM-4 fue una computadora muy popular y estimada por los usuarios debido a su fiabilidad, economía y pequeño tamaño.
La MESM-4 operaba con una palabra de 45 bits y era capaz de realizar 20 000 operaciones por segundo. La memoria RAM estaba basada en núcleos de ferrita y organizada en dos bancos de 4Kb cada uno de ellos, lo que daba un total de 8192 palabras de 45 bits.
La configuración estándar de la máquina tenía 4 tambores magnéticos de 16K bites, entrada y salida de tarjetas perforadas, impresora alfanumérica de 128 columnas, 4 lectores de cinta magnética y capacidad de trabajo a distancia. Entró en producción en 1965 y fueron construidas 30 unidades.
Para el BESM-4, hay por lo menos 3 compiladores para ALGOL-60, Fortran y Compiler, y dos ensambladores distintos Dubna y Bayakovskogo el compilador del lenguaje original de Epsilon.

### BESM-6

Finalizados los trabajos con el BESM-2 y la M-20 se comienza a trabajar en el desarrollo de una máquina capaz de realizar 1 millón de operaciones por segundo. El desarrollo se realiza en el ITMiVT liderando el proyecto Serguéi Lébedev (está máquina sería considerada su obra maestra) junto a V. A. Mélnikov, L. N. Koroliov, L. A. Zak, V. N. Laut, V. I. Smirnov, A. A. Sokolov y M. V. Tyapkin. Junto a ellos A. N. Tomilin se encarga del sistema operativo. Estos científicos junto a V. A. Ivanov y V. Y. Semeshkin de la planta de fabricación SAM, recibieron por este trabajo el Premio Estatal de la Unión Soviética.
En 1965 está listo el prototipo que se prueba con éxito. Dos años más tarde la Comisión Examinadora Estatal, encabezada por el presidente de la Academia de Ciencias de la URSS M. V. Kéldysh, recomienda la producción en serie de la misma. En 1968 comienza la producción en serie de la máquina que se extendería hasta 1987 y en el transcurso de la cual se realizarían cambios significativos de la misma. Se fabricó en la Planta de Máquinas Calculadoras-Analíticas (en ruso “Zavod Schiotno-Analitícheskij Mashín”, o SAM) de Moscú, con una producción de unas 350 unidades.
Antes de realizar físicamente la máquina toda su estructura se expresó de forma virtual empleando elementos matemáticos del álgebra booleana. Esto se realizó utilizando una BESM-2 siendo la primera vez que se realizaba un diseño de una computadora utilizando otra (G. G. Ryabov llegó a crear el sistema de diseño llamado "PULS"). Se equipó a la máquina con un conjunto muy completo de software.
La BESM-6 fue un computador muy utilizado y muy popular, llegó a ser el elemento básico de los centros de cómputo que habían sido creados especialmente en algunas organizaciones científicas. Se realizaron en él todo tipo de investigaciones, simulación de complejos procesos físicos, en el área de control, robótica, visión por computadora, etc. También se utilizó para el desarrollo de nuevo software.
La BESM-6 se considera una computadora de segunda generación, estaba formada por 60 000 transistores y 180 000 diodos semiconductores. Fue integrando sus componentes y conformándose con circuitos integrados llegando a ser la base del desarrollo del Elbrús que se convertiría en el corazón de los ordenadores personales soviéticos y rusos.

#### Características

La computadora BESM-6 era una máquina binaria con una longitud de palabra de 48 bits con 2 más de control, operación en paralelo y aritmética de punto flotante. Su ALU (Unidad Arirmético Lógica) trabajaba con varios algoritmos especiales diseñados para aumentar su rendimiento acelerando las multiplicaciones y las divisiones. El formato de las instrucciones era de una sola dirección con palabra de 15 bits e instrucciones segmentadas, una parte para el control y otra para la aritmética. La potencia de computación era de 1 000 000 de operaciones por segundo. Consumo energético de unos 30 kW, sin tener en cuenta la refrigeración.
Tenía una velocidad de reloj de 10 MHz. La memoria RAM tenía una capacidad inicial de 32 000 palabras de 50 bits, fue ampliada posteriormente hasta las 128 000 palabras. Estaba realizada en núcleos de ferrita. La memoria estaba paginada en 8 capas realizada en módulos autónomos a los que se podía acceder de forma simultánea. Incorporaba un sistema de protección de la memoria y conversión de direcciones virtuales en direcciones físicas por hardware.
La unidad de memoria principal RAM, la unidad de control, y la unidad aritmética lógica operaban en paralelo y en forma asincrónica, mediante el uso de dispositivos buffer de almacenamiento intermedio de instrucciones y datos. Tenía memoria caché que reducía la cantidad de llamadas de extracción a RAM.
Podía ejecutar hasta 14 instrucciones simultáneamente mediante la utilización de un sistema de segmentación de cauce. Podía operar en modo multiprograma trabajando a la vez sobre varios problemas con un orden de prioridad preestablecido.
Se crearon varios sistemas operativos para trabajar con el BESM-6 tales como D68, ND-70, OS IPM, Dispak, Dubná OS, Feliks OS. También se diseñaron compiladores para los principales lenguajes de programación como para Algol-60, Fortran, Pascal, REFAL, Forth, C, etc. y versiones de Fortran, Algol y Pascal para este sistema.

#### BESM-6 y el CDC 1604

Algunos expertos informáticos han señalado que la BESM-6 reprodujo en gran medida la arquitectura de la computadora norteamericana de Control Data Corporation CDC-1604 que se había comenzado a producir en 1960 como, por ejemplo, que ambas utilizaran el mismo bus para direcciones e instrucciones, el uso de comando unicast con un registro de índice o la codificación de caracteres. También una arquitectura parecida tipo Atlas.
A nivel de los desarrolladores de aplicaciones, la adaptación para el compilador Fortran BESM-6, se ha encargado de garantizar la plena compatibilidad con el CDC en 1604.
Una comparación entre ambas máquinas da como resultado una gran número de diferentes características entre ellas, en particular:
* El conjunto de instrucciones es completamente diferente.
* El formato del comando es completamente diferente.
* La forma e de trabajar con números enteros es completamente diferente.
* Representación de la serie - excelente (36 bits para la mantisa de los CDC, 40 en BESM).
* El sistema de interrupciones de la BESM incluye muchas fuentes de interrupción diferentes y separadas.
* Índice de registros: 6 de la CDC, 15 en la BESM.
* BESM tiene una pila de modo de direccionamiento (el registro de índice 15), los CDC no se acumula.
* BESM hay un signo de "omega" que afecta a la operación de las instrucciones condicionales, en el CDC no hay nada parecido.
* En contraste con el CDC, la BESM-6 tenía una memoria virtual de modo de usuario y de supervisor, con la protección contra la ejecución de instrucciones privilegiadas en el modo de supervisor y un conjunto de operaciones para la ejecución de las llamadas al sistema (extracodes).
* BESM tiene una memoria caché, instrucciones de precargado en la memoria caché y escritura asincrona de resultados.
La cuestión de la arquitectura de la máquina en relación con los resultados de un programa de Fortran y las principales razones para las discrepancias de los resultados de los programas para los cálculos numéricos en los ordenadores con diferentes arquitecturas (en particular, la BESM-6 y UCS) examinados en el libro "capturar los errores en la programación en Fortran". Una pregunta similar acerca de los programas en Fortran para sistemas con los CDC y las arquitecturas de IBM se analiza en el libro "Optimización de Fortran".

## Desarrollos basados en la BESM

Bajo la dirección de G.G. Ryábova, M.V. Tyapkin desarrolló un sistema basado en módulos y otras mejoras que hicieron aumentar la productividad en 4 o 5 veces. Se modificó el tamaño de la palabra de direcciones que con sus 15 bits solo podía apuntar a 32 000 posiciones de memoria, se aumentó la representación de los números de 48-bit de código que era no es suficiente para el cálculo.
En 1973 bajo la dirección de V.A. Mélnikov se desarrolló el llamado "Hardware de interfaz a la BESM-6" (CA-6) - un sistema modular que permite combinar la BESM-6, los oradores FB-6, los módulos genéricos de memoria, varios equipos periféricos especializados (PM-6) y sus periféricos en un solo complejo.
En 1982 para el desarrollo de la EA-6 fue galardonado con el Premio Estatal de la Unión Soviética, cuyos ganadores fueron: V.A. Mélnikov, A. Sokolov, V. Ivánnikov P. y A.Yu. Byákov, W. L. Lee, V. Smirnov, Zak L., VS cubre.

## Software
### El A-68

Uno de los primeros sistemas operativos para el BESM-6 fue el Gerente-68 (D-68). De hecho, el D-68 - el núcleo del sistema operativo, multiprogramación tareas por lotes, gestión de memoria virtual, la gestión de dispositivos de almacenamiento externos y dispositivos de entrada-salida. D-68 fue la base para SO de tiempo real ND-70 ("El nuevo gerente-70").
Diseñado para ITM TC, bajo la dirección del profesor L. N. Reina con la participación de B. Ivánnikova P. y A. Tomilin.

### Sistema de Monitoreo "Dubná"

Sistema de Monitoreo "Dubná" fue creado en los años 1965-1966 por un equipo de personal del Instituto Conjunto de Investigación Nuclear, con la participación de especialistas de la República Democrática de Alemania, Corea del Norte, así como del Instituto Kurchátov.
Había compiladores de Fortran, Algol, MAGDALENA AutoCode, Larry Lisp. Además, era posible trabajar en la BESM-6 con el programa de la computadora M-6000 TPA.

### Otros programas

Por un amplio equipo de desarrolladores liderado por V. F. Tiurin fue creado el sistema operativo DISPAK, que resolvía con éxito los trabajos en tiempo compartido.
* IPM
* ND-70
* Bamos
* UNIOS
* Grafor