Открыть сервис

Десятичная ЭВМ

Десятичная ЭВМ — это электронная вычислительная машина, в которой для представления чисел и выполнения арифметических операций используется десятичная система счисления, в отличие от подавляющего большинства современных компьютеров, работающих в двоичной системе. В десятичных ЭВМ каждый разряд числа кодируется, как правило, четырьмя двоичными разрядами (тетрадой, или полубайтом) по схеме «двоично-кодированный десятичный код» (BCD, Binary-Coded Decimal). Такие машины были особенно распространены в 1950–1960-х годах, когда основными задачами вычислительной техники были коммерческие расчёты, бухгалтерия и обработка больших массивов числовых данных, где точность и удобство десятичного ввода-вывода имели решающее значение.

История

Предпосылки и ранние проекты

Первые вычислительные машины (механические и электромеханические) — например, арифмометры, табуляторы Германа Холлерита, машина Чарльза Бэббиджа — изначально использовали десятичную систему, так как она была естественна для человека. С переходом к электронным схемам в середине 1940-х годов возникла дилемма: использовать привычную десятичную арифметику или более эффективную в электронике двоичную. Двоичная система требовала меньше элементов (два состояния вместо десяти), но усложняла ввод-вывод и округление.

Расцвет в 1950-е — 1960-е годы

В 1950-е годы, когда вычислительная техника только начинала применяться в бизнесе и государственном управлении, десятичные ЭВМ доминировали на рынке коммерческих вычислений. Ключевыми факторами стали:

  • Точность: десятичное представление исключает ошибки округления, свойственные двоично-десятичному преобразованию (например, 0,1 в двоичной системе — бесконечная дробь).
  • Удобство: данные (цены, суммы, проценты) изначально были десятичными, и не требовалось преобразование.
  • Совместимость с бухгалтерскими стандартами: финансовые операции требовали строгого соблюдения десятичных разрядов.

Первой коммерчески успешной десятичной ЭВМ стала UNIVAC I (1951, США), которая использовала десятичную арифметику с кодированием цифр в 7-битных кодах (позже — 6-битных). Вслед за ней появились IBM 650 (1953) — одна из самых массовых машин своего времени, работавшая с десятичными числами, и IBM 1401 (1959), ориентированная на обработку данных.

В СССР десятичные ЭВМ также разрабатывались, хотя и в меньшем масштабе. Примером служит «Урал-1» (1955) — малая ламповая машина, работавшая с десятичными числами, и «Минск-1» (1960), которая также поддерживала десятичную арифметику, хотя позже перешла на двоичную.

Упадок и переход к двоичной системе

К концу 1960-х годов, с развитием полупроводниковой технологии и ростом требований к быстродействию, двоичные ЭВМ (например, IBM System/360, 1964) начали вытеснять десятичные. Двоичная арифметика была проще в реализации на транзисторах и интегральных схемах, требовала меньше оборудования и позволяла выполнять операции быстрее. Однако десятичные вычисления не исчезли полностью: они сохранились в виде программной эмуляции (BCD-арифметика) и специализированных сопроцессоров (например, в мейнфреймах IBM z/Architecture).

Архитектура и принципы работы

Представление чисел

В десятичных ЭВМ каждое число хранится в виде последовательности десятичных цифр (0–9), каждая из которых кодируется четырьмя двоичными битами (тетрадой). Существует несколько вариантов кодирования:

  • Прямой BCD (8421): каждая цифра представляется её двоичным эквивалентом (0 = 0000, 1 = 0001, ..., 9 = 1001). Остальные комбинации (1010–1111) не используются.
  • Избыточные коды: например, код «с избытком 3» (Excess-3), где к цифре прибавляется 3 (0 = 0011, 9 = 1100), что упрощает сложение.
  • Код Грея или двухпятичный код (2-out-of-5) — использовался в некоторых машинах для обнаружения ошибок.

Числа могли быть фиксированной или плавающей точкой. В коммерческих машинах чаще применялась фиксированная точка с заданным количеством десятичных знаков (например, 9 целых и 2 дробных разряда — для денежных сумм).

Арифметико-логическое устройство (АЛУ)

АЛУ десятичной ЭВМ должно было выполнять сложение, вычитание, умножение и деление в десятичной системе. Сложение выполнялось по правилам десятичной арифметики с коррекцией: если результат сложения двух тетрад превышал 9, к нему прибавлялось 6 (0110) для переноса в следующий разряд. Умножение и деление реализовывались через последовательные сложения/вычитания или с помощью таблиц умножения, хранящихся в памяти.

Память

В ранних десятичных ЭВМ использовались:

  • Ртутные линии задержки (UNIVAC I) — память на основе акустических волн в ртути, где данные хранились в виде последовательности импульсов.
  • Магнитные барабаны (IBM 650) — вращающийся цилиндр с магнитным покрытием, обеспечивающий последовательный доступ.
  • Магнитные сердечники (IBM 1401) — более быстрая и надёжная память с произвольным доступом.

Объём памяти измерялся в тысячах десятичных разрядов (например, 2000 слов по 10 цифр в IBM 650).

Ввод-вывод

Ввод данных осуществлялся с перфокарт, перфолент, магнитных лент, а также с клавишных устройств (например, бухгалтерские клавиатуры). Вывод — на печатающие устройства (принтеры), перфокарты, ленты или табло. Ввод-вывод был десятичным, что исключало необходимость преобразования систем счисления.

Классификация

По назначению

  • Коммерческие (бухгалтерские) ЭВМ: UNIVAC I, IBM 650, IBM 1401, RCA 501. Ориентированы на обработку транзакций, расчёт зарплаты, учёт товаров.
  • Научные и инженерные ЭВМ: реже использовали десятичную арифметику, но некоторые (например, советская «Стрела») могли работать как с двоичными, так и с десятичными числами.
  • Специализированные: например, машины для управления банковскими счетами или системы резервирования авиабилетов (SABRE).

По элементной базе

  • Ламповые (1940–1950-е): UNIVAC I, IBM 650, «Урал-1».
  • Транзисторные (1960-е): IBM 1401, Honeywell 200, «Минск-1» (частично).
  • Интегральные (1970-е): некоторые мейнфреймы IBM (System/370) поддерживали десятичную арифметику аппаратно.

Применение

Коммерческие вычисления

Десятичные ЭВМ были незаменимы в банковском деле, страховании, бухгалтерии, государственном учёте. Они позволяли точно обрабатывать денежные суммы, проценты, налоги без ошибок округления. Например, IBM 1401 использовалась для расчёта заработной платы, ведения счетов и инвентаризации на многих предприятиях США и Европы.

Научные расчёты

В научных задачах десятичные машины применялись реже, но иногда — для задач, требующих высокой точности (например, астрономические таблицы, расчёты траекторий). Однако большинство научных ЭВМ (IBM 704, CDC 6600) уже в 1950-е перешли на двоичную арифметику.

Управление и обработка данных

Системы резервирования авиабилетов (например, SABRE, запущенная в 1964 году) изначально использовали десятичные мейнфреймы IBM. Также десятичные машины применялись в системах управления запасами, логистике и документообороте.

Примеры десятичных ЭВМ

UNIVAC I (1951)

Первая коммерческая ЭВМ в США. Использовала десятичную арифметику с 7-битным кодированием цифр. Память — ртутные линии задержки (1000 слов по 12 цифр). Применялась для переписи населения США (1950) и расчётов в страховой компании.

IBM 650 (1953)

Одна из самых массовых машин 1950-х (выпущено около 2000 экземпляров). Работала с десятичными числами фиксированной точки. Память — магнитный барабан (2000 слов по 10 цифр). Использовалась в основном для коммерческих расчётов.

IBM 1401 (1959)

Транзисторная машина, ориентированная на обработку данных. Поддерживала десятичную арифметику с переменной длиной слова (от 1 до 256 цифр). Память — магнитные сердечники (до 16 000 символов). Стала одной из самых популярных коммерческих ЭВМ 1960-х.

«Урал-1» (1955, СССР)

Малая ламповая ЭВМ с десятичной системой счисления. Память — магнитный барабан (1024 слова по 36 разрядов). Применялась для инженерных и экономических расчётов.

«Минск-1» (1960, СССР)

Полупроводниковая ЭВМ, поддерживавшая как двоичную, так и десятичную арифметику. Память — магнитные сердечники (1024 слова по 37 разрядов). Использовалась в научных и коммерческих целях.

Преимущества и недостатки

Преимущества

  • Точность: отсутствие ошибок округления при преобразовании десятичных чисел.
  • Удобство: данные вводятся и выводятся в привычной десятичной форме без преобразования.
  • Совместимость: соответствие финансовым и бухгалтерским стандартам.

Недостатки

  • Меньшее быстродействие: десятичные операции требуют больше тактов и более сложной логики (коррекция, переносы).
  • Больший расход памяти: для хранения десятичных чисел требуется больше битов (4 бита на цифру против 3,32 бита в среднем для двоичного представления).
  • Сложность схем: АЛУ десятичной машины сложнее и дороже аналогичного двоичного.
  • Ограниченность: десятичная арифметика менее эффективна для научных расчётов, где часто используются вещественные числа с плавающей точкой.

Наследие и современное состояние

Хотя десятичные ЭВМ как класс исчезли к 1970-м годам, десятичная арифметика продолжает использоваться в современных вычислительных системах:

  • BCD-арифметика поддерживается во многих процессорах (например, x86 имеет инструкции DAA, DAS, AAA, AAS для коррекции десятичного сложения/вычитания).
  • Мейнфреймы IBM z/Architecture имеют аппаратную поддержку десятичной арифметики с плавающей точкой (Decimal Floating Point, DFP), что важно для финансовых приложений.
  • Языки программирования (COBOL, PL/I, Python) предоставляют типы данных для десятичных чисел с фиксированной точкой (например, DECIMAL в SQL, decimal в Python).
  • Стандарт IEEE 754-2008 включает формат десятичной плавающей точки (Decimal64, Decimal128), используемый в некоторых финансовых и научных приложениях.

Таким образом, десятичные ЭВМ, хотя и уступили место двоичным, оставили значительное наследие в виде методов точных вычислений, которые продолжают применяться в областях, где ошибка округления недопустима.

Источники

  1. Ceruzzi, P. E. A History of Modern Computing. — MIT Press, 2003.
  2. IBM 650 Magnetic Drum Data-Processing Machine: Manual of Operation. — IBM, 1954.
  3. IBM 1401 Data Processing System: Reference Manual. — IBM, 1960.
  4. Китов, А. И. Электронные цифровые машины. — М.: Советское радио, 1956.
  5. Ляпунов, А. А. (ред.). Вычислительная техника в СССР. — М.: Наука, 1968.
  6. IEEE Standard for Floating-Point Arithmetic (IEEE 754-2008). — IEEE, 2008.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →