Машинное слово

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

Определение

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

Размер машинного слова отражается во многих аспектах структуры и работы компьютера. Большинство регистров в процессоре обычно имеют размер равный размеру машинного слова, и наибольшая часть данных, которая может быть передана в рабочую память и из неё за одну операцию, является машинным словом во многих (не во всех) архитектурах. Наибольший возможный размер адреса, используемый для адресации памяти (как правило побайтной), обычно представляет собой аппаратное слово (здесь «аппаратное слово» означает полноразмерное натуральное слово процессора, в отличие от любого иного используемого определения).

История

На ранних компьютерах встречалась длина машинного слова, которая была довольно разной. В те времена компьютеры делились на бизнес-ориентированные и научно-технические. В бизнес-ориентированных компьютерах, занимавшихся экономическими и бухгалтерскими расчётами, не требовалась высокая точность вычислений, так как суммы всегда округлялись лишь до двух сотых. В научных же вычислениях наиболее часто проводятся операции с вещественными числами и точность вычислений (количество знаков после запятой/дробной точки) очень важна. Так как модули памяти для ранних компьютеров стоили дорого, выбор длины машинного слова напрямую влиял как на точности вычислений, выполняемых компьютером, так и на его стоимости. 48-битное машинное слово в научных-технически компьютерах пользовалось большой популярностью[1], потому что 32-битное слово позволяло выразить вещественные числа с 6−7 знаками после запятой, что было недостаточно из-за накопления ошибки округления при сложных расчётах (особенно инженерных), а 64-битное слово с 15−16 знаками после запятой выходило далеко за рамки требований к точности. 48-битное слово позволяло выразить вещественное число с 10 знаками после запятой (считалось приемлемым для научных и инженерных вычислений того времени).

В 19501960-х годах во многих компьютерах, производимых в США, длина слова была кратна 6 битам. Тогда использовалась шестибитная кодировка, — для представления всех цифр и всех букв английского алфавита достаточно было 6 бит: возможных комбинации позволяли закодировать 32 буквы (в верхнем регистре), 10 цифр и некоторые символы пунктуации.

Позднее требования к точности научных и инженерных вычислений возросли, и в 1974 году появилась первая машина с 64-битным словом — суперкомпьютер Cray-1.

В подавляющем большинстве современных компьютеров длина слова в битах равна степени двойки. При этом наиболее часто используются 8- и 16-битные символы.

На ранних компьютерах слово было минимально адресуемой ячейкой памяти. Ныне минимально адресуемой ячейкой памяти всегда является байт, а слово состоит из нескольких байтов. Это приводит к неоднозначному толкованию размера слова. Например, на процессорах 8086 и их потомках «словом» традиционно называют 16 бит (2 байта), хотя эти процессоры могут одновременно обрабатывать и более крупные блоки данных.

В общем случае слово длиной бит принимает беззнаковые целочисленные значения от 0 до включительно с общим количеством самих значений .

Размер машинного слова на различных архитектурах

Год Архитектура Размер слова (w) в битах Размер целого Размер чисел с плавающей запятой Размер инструкции
1952IBM 70136½w, w —½w
1954IBM 70436www
1960PDP-118w —w
1960CDC 160448ww½w
1964CDC 660060ww¼w, ½w, w
1965IBM 36032½w, w,
1d … 31d
w, 2w½w, w, 1½w
1965PDP-812w —w
1968БЭСМ-648ww, 2w½w
1970IBM 37032½w, w,
1d … 31d
w, 2w, 4w½w, w, 1½w
1970PDP-1116½w, w2w, 4ww, 2w, 3w
1971Intel 40044w, d —2w, 4w
1972Intel 80088w, 2d —w, 2w, 3w
1974Intel 80808w, 2w, 2d —w, 2w, 3w
1975Cray-16424 b, ww¼w, ½w
1975MOS Tech. 6501
MOS Tech. 6502
8w, 2d —w, 2w, 3w
1976Zilog Z808w, 2w, 2d —w, 2w, 3w, 4w
1978
(1980)
Intel 8086
(w/Intel 8087)
16½w, w, 2d
(w, 2w, 4w)

(2w, 4w, 5w, 17d)
½w, w, … 7w
1978VAX-11/78032¼w, ½w, w, 1d, … 31d, 1b, … 32bw, 2w¼w, … 14¼w
1979Motorola 6800032¼w, ½w, w, 2d —½w, w, … 7½w
1982
(1983)
Motorola 68020
(w/Motorola 68881)
32¼w, ½w, w, 2d
(w, 2w, 2½w)
½w, w, … 7½w
1985ARM132w —w
1985MIPS3232¼w, ½w, ww, 2ww
1989Intel 8048616 (32)*½w, w, 2w, 2d
w, 2w, 4w
2w, 4w, 5w, 17d½w, w, … 7w
1989Motorola 6804032¼w, ½w, w, 2dw, 2w, 2½w½w, w, … 7½w
1991MIPS6464¼w, ½w, ww, 2ww
1991PowerPC32¼w, ½w, ww, 2ww
1992SPARC v832¼w, ½w, ww, 2ww
1994SPARC v964¼w, ½w, ww, 2ww
2001Itanium (IA-64)648 b, ¼w, ½w, w½w, w41 b
2002XScale32ww, 2w½w, w
2003x86-64648b, ¼w, ½w, w½w, w, 1¼w, 17d8 b
2010RISC-V 32/64/12832¼w, ½w, w, 2w, 4ww, 2w, 4ww, ½w[2]

Обозначения:

  • b — бит (двоичная цифра);
  • d — децит (десятичная цифра);
  • w — размер машинного слова;
  • n — переменное значение.

Для 32-битных процессоров архитектуры x86: исторически машинным словом считается 16 бит, реально — 32 бита.

См. также

Примечания

  1. Real Machines with 24-bit and 48-bit words
  2. Только для сокращённых имён команд (Compressed Instructions)

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.