Десятичные компьютеры - это компьютеры, которые могут представлять числа и адреса в десятичном виде, а также предоставлять инструкции для работы с этими числами и адресами непосредственно в десятичном виде, без преобразования в чисто двоичное представление. У некоторых также была переменная длина слова , что позволяло выполнять операции с числами с большим количеством цифр.
Ранние компьютеры
Ранние компьютеры, которые были исключительно десятичными, включают ENIAC , IBM NORC , IBM 650 , IBM 1620 , IBM 7070 , UNIVAC Solid State 80 . В этих машинах основной единицей данных была десятичная цифра, закодированная по одной из нескольких схем, включая двоично-десятичный код (BCD), двухзначный код и код два из пяти . За исключением IBM 1620 и 1710, эти машины использовали адресацию слов . Когда в этих машинах использовались нечисловые символы, они кодировались как две десятичные цифры.
Другие ранние компьютеры были ориентированы на символы, предоставляя инструкции для выполнения арифметических операций над символьными строками десятичных чисел, используя двоично-десятичный код или лишний-3 (XS-3) [1] для десятичных цифр. На этих машинах основным элементом данных был буквенно-цифровой символ, обычно кодируемый шестью битами . UNIVAC I и UNIVAC II использовали словесную адресацию с 12-символьными словами. Примеры IBM включают IBM 702 , IBM 705 , серию IBM 1400 , [2] IBM 7010 и IBM 7080 .
Поздние компьютеры
Систем IBM / 360 , введен в 1964 году , чтобы объединить линии продуктов IBM, используемые в двоичной адресации символов, а также включены инструкции для упакованной десятичной арифметики, а также двоичной целочисленной арифметики, и двоичной плавающей точки. Он использовал 8-битные символы и вводил кодировку EBCDIC , хотя также поддерживался ASCII . [3] Burroughs B2500 введен в 1966 году также использовал 8-битный EBCDIC или ASCII символы и может упаковать два десятичные цифры на байты, но он не обеспечивает двоичную арифметику, что делает его десятичной архитектурой.
Более современные компьютеры
Некоторые семейства микропроцессоров предлагают ограниченную поддержку десятичных чисел. Например, микропроцессоры семейства 80x86 предоставляют инструкции для преобразования однобайтовых чисел BCD (упакованных и распакованных) в двоичный формат до или после арифметических операций. [4] Эти операции не были расширены на более широкие форматы и, следовательно, теперь они медленнее, чем использование 32-битных или более широких «приемов» BCD для вычислений в BCD (см. [1] ). X87 FPU содержит инструкции для преобразования 10 байт (18 десятичных цифр) упакованы десятичных данных, хотя она затем работает на них в виде чисел с плавающей точкой.
Motorola 68000 приведены инструкции для того BCD и вычитание; [5] как и 6502 . В гораздо более поздних процессорах семейства 68000 эти инструкции были удалены, когда был определен набор инструкций Coldfire , и все мэйнфреймы IBM также обеспечивают аппаратную арифметику целых чисел BCD. Zilog Z80 , Motorola 6800 и его производные, а также другие 8-битные процессоры, а также семейство Intel x86 имеют специальные инструкции, которые поддерживают преобразование в BCD и обратно. Программное обеспечение карманного компьютера Psion Organizer I , поставляемое производителем, реализовало свои операции с плавающей запятой в программном обеспечении, полностью используя BCD. Все более поздние модели Psion использовали только двоичный код, а не BCD.
Десятичная арифметика сейчас становится все более распространенной; например, к стандарту IEEE 754r 2008 года были добавлены три десятичных типа с двумя двоичными кодировками с 7-, 16- и 34-значными десятичными значащими значениями . [6]
В процессоре IBM Power6 и IBM System z9 эти типы реализованы с использованием двоичного кодирования Densely Packed Decimal [7], первое - в аппаратном, а второе - в микрокоде.
Рекомендации
- ^ Справочное руководство для программистов расширенной системы UNIVAC 1005 (PDF) , Sperry Rand, p. 1–8, ФСД-1089р1
- ^ Система обработки данных IBM 1401: Справочное руководство (PDF) . IBM. Апрель 1962 г. с. 20. A24-1403-5.
- ^ IBM (1964). Принципы работы IBM System / 360 (PDF) . Первое издание. A22-6821-0.
- ^ «Руководство программиста MASM» . Microsoft. 1992. Архивировано из оригинала на 2007-07-15 . Проверено 1 июля 2007 .
- ^ «Справочное руководство для программистов семейства Motorola M68000» (PDF) . Проверено 1 июля 2007 .
- ^ «ПРОЕКТ стандарта для арифметики с плавающей запятой P754» (PDF) . 2006-10-04 . Проверено 1 июля 2007 .[ постоянная мертвая ссылка ]
- ^ Коулишоу, Майк Ф. (2015) [1981, 2008]. «Общая десятичная арифметика» . IBM . Проверено 2 января 2016 .
дальнейшее чтение
- Шмид, Герман (1974). Десятичные вычисления (1-е изд.). Бингемтон, Нью-Йорк, США: ISBN John Wiley & Sons, Inc. 0-471-76180-X. Проверено 3 января 2016 .(NB. В этом заголовке содержится подробное описание десятичных вычислений, включая объяснение двоично-десятичных знаков и алгоритмов .)
- Шмид, Герман (1983) [1974]. Десятичные вычисления (1 (переиздание) изд.). Малабар, Флорида, США: Издательство Роберта Кригера. ISBN 0-89874-318-4. Проверено 3 января 2016 .(NB. По крайней мере, некоторые партии этого переизданного издания были опечатками с дефектными страницами 115–146.)
- Джонс, Дуглас В. (2014-09-10) [1999]. «Учебники по арифметике» . Айова-Сити, штат Айова, США: Университет штата Айова, факультет компьютерных наук . Проверено 3 января 2016 .