Десятичная ЭВМ
Десятичная ЭВМ — это электронная вычислительная машина, в которой для представления чисел и выполнения арифметических операций используется десятичная система счисления, в отличие от подавляющего большинства современных компьютеров, работающих в двоичной системе. В десятичных ЭВМ каждый разряд числа кодируется, как правило, четырьмя двоичными разрядами (тетрадой, или полубайтом) по схеме «двоично-кодированный десятичный код» (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), используемый в некоторых финансовых и научных приложениях.
Таким образом, десятичные ЭВМ, хотя и уступили место двоичным, оставили значительное наследие в виде методов точных вычислений, которые продолжают применяться в областях, где ошибка округления недопустима.
Источники
- Ceruzzi, P. E. A History of Modern Computing. — MIT Press, 2003.
- IBM 650 Magnetic Drum Data-Processing Machine: Manual of Operation. — IBM, 1954.
- IBM 1401 Data Processing System: Reference Manual. — IBM, 1960.
- Китов, А. И. Электронные цифровые машины. — М.: Советское радио, 1956.
- Ляпунов, А. А. (ред.). Вычислительная техника в СССР. — М.: Наука, 1968.
- IEEE Standard for Floating-Point Arithmetic (IEEE 754-2008). — IEEE, 2008.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →