В архитектуре компьютера 16-битные целые числа , адреса памяти или другие единицы данных — это те, которые имеют ширину 16 бит (2 октета ). Кроме того, 16-битные архитектуры центрального процессора (ЦП) и арифметико-логического устройства (АЛУ) — это те, которые основаны на регистрах , адресных шинах или шинах данных такого размера. 16-битные микрокомпьютеры — это микрокомпьютеры, которые используют 16-битные микропроцессоры .
16-битный регистр может хранить 2 16 различных значений. Диапазон целочисленных значений , которые могут храниться в 16 битах, зависит от используемого целочисленного представления . При двух наиболее распространенных представлениях диапазон составляет от 0 до 65 535 (2 16 − 1) для представления в виде ( беззнакового ) двоичного числа и от −32 768 (−1 × 2 15 ) до 32 767 (2 15 − 1) для представления в виде дополнения до двух . Поскольку 2 16 равно 65 536, процессор с 16-битными адресами памяти может напрямую обращаться к 64 КБ (65 536 байт) адресуемой побайтно памяти. Если система использует сегментацию с 16-битными смещениями сегментов, можно получить доступ к большему объему.
MIT Whirlwind ( ок. 1951) [1] [2] был, вполне возможно, первым в мире 16-битным компьютером. Это был необычный размер слова для той эпохи; большинство систем использовали шестибитный код символов и использовали длину слова, кратную 6 битам. Это изменилось с попытками ввести ASCII , который использовал 7-битный код и, естественно, привел к использованию 8-битного кратного, который мог хранить один символ ASCII или две двоично-кодированные десятичные цифры.
Таким образом, 16-битная длина слова стала более распространенной в 1960-х годах, особенно в мини-компьютерных системах. Ранние 16-битные компьютеры ( около 1965–70) включают IBM 1130 , [3] HP 2100 , [4] Data General Nova , [5] и DEC PDP-11 . [6] Ранние 16-битные микропроцессоры , часто смоделированные на основе одной из мини-платформ, начали появляться в 1970-х годах. Примерами ( около 1973–76) являются пятичиповый National Semiconductor IMP-16 (1973), [7] двухчиповый NEC μCOM-16 (1974), [8] [7] трехчиповый Western Digital MCP-1600 (1975) и пятичиповый Toshiba T-3412 (1976). [7]
Ранние однокристальные 16-битные микропроцессоры ( ок. 1975–76) включают Panafacom MN1610 (1975), [9] [10] [7] National Semiconductor PACE (1975), General Instrument CP1600 (1975), Texas Instruments TMS9900 (1976), [7] Ferranti F100-L и HP BPC . Другие известные 16-битные процессоры включают Intel 8086 , Intel 80286 , WDC 65C816 и Zilog Z8000 . Intel 8088 был двоично совместим с Intel 8086 и был 16-битным, поскольку его регистры имели ширину 16 бит, а арифметические инструкции могли работать с 16-битными величинами, хотя его внешняя шина имела ширину 8 бит.
16-разрядные процессоры почти полностью вытеснены из индустрии персональных компьютеров и используются реже, чем 32-разрядные (или 8-разрядные) процессоры во встраиваемых приложениях.
Motorola 68000 иногда называют 16-битным из-за способа обработки базовой арифметики. Набор инструкций был основан на 32-битных числах, а внутренние регистры были шириной 32 бита, поэтому по общепринятым определениям 68000 является 32-битной конструкцией. Внутренне 32-битная арифметика выполняется с использованием двух 16-битных операций, и это приводит к некоторым описаниям системы как 16-битной или «16/32».
Такие решения имеют долгую историю в компьютерной области, с различными конструкциями, выполняющими математику даже по одному биту за раз, известными как «последовательная арифметика», в то время как большинство конструкций к 1970-м годам обрабатывали по крайней мере несколько бит за раз. Распространенным примером является Data General Nova, которая была 16-битной конструкцией, которая выполняла 16-битную математику как серию из четырех 4-битных операций. 4 бита были размером слова широко доступного однокристального АЛУ и, таким образом, допускали недорогую реализацию. Используя определение, применяемое к 68000, Nova будет 4-битным компьютером, или 4/16. Вскоре после появления Nova была представлена вторая версия, SuperNova, которая включала четыре 4-битных АЛУ, работающих параллельно, для выполнения математики 16 бит за раз и, следовательно, предлагая более высокую производительность. Это было невидимо для пользователя и программ, которые всегда использовали 16-битные инструкции и данные. Аналогичным образом более поздние представители семейства 68000, начиная с Motorola 68020 , имели 32-битные АЛУ.
Можно также увидеть ссылки на системы, являющиеся или не являющиеся 16-битными, на основе какой-либо другой меры. Одна из распространенных — когда адресное пространство не имеет того же размера бит, что и внутренние регистры. Большинство 8-битных процессоров 1970-х годов попадают в эту категорию; MOS 6502 , Intel 8080 , Zilog Z80 и большинство других имели 16-битное адресное пространство, которое обеспечивало 64 КБ адресного пространства. Это также означало, что для обработки адресов требовалось два цикла инструкций. По этой причине большинство процессоров имели специальные 8-битные режимы адресации, нулевая страница , повышающие скорость. Такого рода разница между размером внутреннего регистра и размером внешнего адреса сохранялась в 1980-х годах, хотя часто менялась на противоположную, поскольку затраты на память той эпохи делали машину с 32-битной адресацией, 2 или 4 ГБ, практически невозможной. Например, 68000 предоставлял только 24 бита адресации на DIP , ограничивая его все еще огромными (для той эпохи) 16 МБ. [11]
Аналогичный анализ применим к замене процессора Intel 80286 , называемой 386SX , которая представляет собой 32-разрядный процессор с 32-разрядным АЛУ и внутренними 32-разрядными путями передачи данных с 16-разрядной внешней шиной и 24-разрядной адресацией процессора, который она заменила.
В контексте IBM PC-совместимых и Wintel- платформ 16-разрядное приложение — это любое программное обеспечение, написанное для MS-DOS , OS/2 1.x или ранних версий Microsoft Windows , которое изначально работало на 16-разрядных микропроцессорах Intel 8088 и Intel 80286. Такие приложения использовали 20- или 24-разрядный сегмент или представление адреса смещения селектора для расширения диапазона адресуемых ячеек памяти за пределы того, что было возможно при использовании только 16-разрядных адресов. Поэтому программы, содержащие более 2 16 байт (65 536 байт ) инструкций и данных, требовали специальных инструкций для переключения между их 64-килобайтными сегментами , что увеличивало сложность программирования 16-разрядных приложений.