Десяткові комп'ютери — електронні цифрові обчислювальні машини, що мають внутрішнє представлення даних і адрес у вигляді десяткових чисел, а також мають набір інструкцій, орієнтований на роботу з такими числами і адресами, без перетворення їх у двійкову форму. Деякі з таких машин мали також змінну довжину слова, що дозволяло працювати з числами великої розрядності.
Ранні представники Багато ранніх комп'ютерів, таких як ENIAC, IBM NORC, IBM 650, IBM 1620 і IBM 7070, були десятковими. У цих машинах базовою одиницею даних була десяткова цифра, закодована у тій чи іншій схемі, наприклад як двійково-десятковий код (BCD), бі-квінарний код, код або код . Ці машини мали адресацію слів, а не байтів (за винятком IBM 1620). Нецифрові дані (наприклад, символи) кодувалися двома десятковими цифрами.
Інші ранні комп'ютери були символ-орієнтованими, і реалізовували машинні інструкції для роботи з числами, представленими як послідовності (рядки) символів. У цих машинах одиницею інформації був алфавітно-цифровий символ, як правило закодований шістьма двійковими бітами. UNIVAC I and UNIVAC II мали адресацію 12-символьних слів. Серед машин IBM такими були IBM 702, IBM 705, серія IBM 1400, IBM 7010, а також IBM 7080.
Лінія комп'ютерів Burroughs B2500 (представлена 1966 року) використовувала 8-розрядне кодування EBCDIC або ASCII для символів, дві десяткові цифри пакувалися у один байт. Ці комп'ютери не мали операцій двійкової арифметики, отже їх теж можна вважати представниками десяткової архітектури.
Програмна підтримка у двійкових комп'ютерах У 1964 році IBM представила лінію IBM System/360, з виключно байтовою адресацією і стандартизованим означенням поняття «байт» (8 біт). Для полегшення роботи з десятковими даними машини S/360 мали операції над упакованими десятковими числами (на додачу до стандартних операцій над цілими), і операції з рухомою комою (двійкові). У S/360 було стандартизовано також кодування EBCDIC, хоча ASCII також підтримувалося.
Ранні мікропроцесори також забезпечували обмежену підтримку команд десяткової арифметики. Наприклад, процесори серій 8080 і 80x86 мають інструкції для перетворення однобайтних BCD-чисел (упакованих або неупакованих) у двійковий формат, перед або після арифметичних операцій. З розвитом процесорів дані інструкції залишилися без змін (іншими словами, їх не розширили для роботи, наприклад, з 32-розрядними BCD-числами), тому у разі потреби такі обчислення досить нескладно реалізувати програмно. Співпроцесори x87 мають інструкції для перетворення 10-байтових (18 десяткових цифр) упакованих десяткових даних, втім після такого перетворення співпроцесор оперує з такими числами як зі звичайними з рухомою комою.
Процесори Motorola, такі як 68000, мали інструкції додавання і віднімання чисел BCD, як і MOS Technology 6502 (у пізніших варіантах архітектури 68000 — наприклад, FreeScale ColdFire — інструкції BCD вилучили).
Сімейство процесорів IBM Power6 і процесори мейнфреймів IBM System z9 імплементують роботу з 7-, 16- і 34-розрядними десятковими числами (стандарт IEEE 754r, 2008 рік) з використанням пакування — у Power6 ці команди реалізовано апаратно, а у System z9 у мікрокоді.
Джерела