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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Занесение информации в память, а также извлечение её из памяти производится по адресам. Это свойство памяти называется адресуемостью.

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

История[править | править вики-текст]

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

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

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

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

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

Слова длиной n битов принимают численные (беззнаковые) значения от 0 до 2^n-1 включительно.

Размер машинного слова на различных архитектурах[править | править вики-текст]

Год Архитектура Размер слова
(w) в битах
Размер целого Размер чисел
с плавающей запятой
Размер инструкции
1952 IBM 701 36 ½w, w  — ½w
1954 IBM 704 36 w w w
1960 PDP-1 18 w  — w
1960 CDC 1604 48 w w ½w
1964 CDC 6600 60 w w ¼w, ½w, w
1965 IBM 360 32 ½w, w,
1d … 31d
w, 2w ½w, w, 1½w
1965 PDP-8 12 w  — w
1968 БЭСМ-6 48 w w, 2w ½w
1970 IBM 370 32 ½w, w,
1d … 31d
w, 2w, 4w ½w, w, 1½w
1970 PDP-11 16 ½w, w 2w, 4w w, 2w, 3w
1971 Intel 4004 4 w, d  — 2w, 4w
1972 Intel 8008 8 w, 2d  — w, 2w, 3w
1974 Intel 8080 8 w, 2w, 2d  — w, 2w, 3w
1975 Cray-1 64 24 b, w w ¼w, ½w
1975 MOS Tech. 6501
MOS Tech. 6502
8 w, 2d  — w, 2w, 3w
1976 Zilog Z80 8 w, 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
1978 VAX-11/780 32 ¼w, ½w, w, 1d, … 31d, 1b, … 32b w, 2w ¼w, … 14¼w
1979 Motorola 68000 32 ¼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
1985 ARM1 32 w  — w
1985 MIPS32 32 ¼w, ½w, w w, 2w w
1989 Intel 80486 16 (32)* ½w, w, 2w, 2d
w, 2w, 4w
2w, 4w, 5w, 17d ½w, w, … 7w
1989 Motorola 68040 32 ¼w, ½w, w, 2d w, 2w, 2½w ½w, w, … 7½w
1991 MIPS64 64 ¼w, ½w, w w, 2w w
1991 PowerPC 32 ¼w, ½w, w w, 2w w
1992 SPARC v8 32 ¼w, ½w, w w, 2w w
1994 SPARC v9 64 ¼w, ½w, w w, 2w w
2001 Itanium (IA-64) 64 8 b, ¼w, ½w, w ½w, w 41 b
2002 XScale 32 w w, 2w ½w, w
2003 x86-64 64 8b, ¼w, ½w, w ½w, w, 1¼w, 17d 8 b


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

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

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]