Word (компьютерная архитектура)

редактировать
Базовый блок памяти, обрабатываемый компьютером

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

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

Некоторые из самых ранних компьютеров (а также несколько современных) использовали двоично-десятичное, а не обычное двоичное, обычно с размером слова 10 или 12 десятичные цифры, а некоторые ранние десятичные компьютеры вообще не имели фиксированной длины слова. Ранние двоичные системы имели тенденцию использовать длину слова, несколько кратную 6-битному, причем 36-битное слово было особенно распространено на мэйнфреймах компьютерах. Введение ASCII привело к переходу к системам с длиной слова, кратной 8-битной, с 16-битными машинами, которые были популярны в 1970-х годах до перехода на современные процессоры с 32 или 64 битами. Конструкции специального назначения, такие как процессоры цифровых сигналов, могут иметь любую длину слова от 4 до 80 бит.

Размер слова иногда может отличаться от ожидаемого из-за обратной совместимости с более ранними компьютерами. Если несколько совместимых вариантов или семейство процессоров имеют общую архитектуру и набор инструкций, но различаются размером слов, их документация и программное обеспечение могут стать сложными в системе обозначений, чтобы учесть разницу (см. Семейства размеров ниже).

Содержание

  • 1 Использование слов
  • 2 Выбор размера слова
    • 2.1 Архитектура переменных слов
    • 2.2 Адресация слов и байтов
    • 2.3 Степени двух
  • 3 Семейство размеров
  • 4 Таблица размеров слов
  • 5 См. Также
  • 6 Ссылки

Использование слов

В зависимости от того, как устроен компьютер, единицы размера слова могут использоваться для:

Фиксированной точки числа
Держатели для фиксированной точки, обычно целого числа, числовые значения могут быть доступны в одном или нескольких разных размерах, но один из доступных размеров почти всегда будет слово. Другие размеры, если таковые имеются, скорее всего, будут кратны или дроби размера слова. Меньшие размеры обычно используются только для эффективного использования памяти; при загрузке в процессор их значения обычно попадают в более крупный держатель размером с слово.
Числа с плавающей запятой
Держатели для числовых значений с плавающей запятой обычно либо слово или кратное слово.
Адреса
Держатели для адресов памяти должны иметь размер, способный выражать необходимый диапазон значений, но не быть чрезмерно большим, поэтому часто используемый размер слово, хотя оно также может быть кратным или дробной части размера слова.
Регистры
Регистры процессора имеют размер, соответствующий типу данных, которые они хранят, например целые числа, числа с плавающей запятой или адреса. Многие компьютерные архитектуры используют регистры общего назначения, которые могут хранить данные в нескольких представлениях.
Передача памяти и процессора
Когда процессор считывает данные из подсистемы памяти в зарегистрировать или записать значение регистра в память, объем передаваемых данных часто выражается словом. Исторически такое количество битов, которое могло быть передано за один цикл, в некоторых средах также называлось катеной (например, Bull GAMMA 60 [fr ]). В простых подсистемах памяти слово передается по шине данных памяти, которая обычно имеет ширину слова или полуслова. В подсистемах памяти, которые используют кеши, передача размером с слово - это передача между процессором и первым уровнем кеша; на более низких уровнях иерархии памяти обычно используются более крупные передачи (кратные размеру слова).
Единица разрешения адреса
В данной архитектуре, последовательные значения адреса обозначают последовательные единицы памяти; эта единица - единица разрешения адреса. На большинстве компьютеров единицей измерения является либо символ (например, байт), либо слово. (Некоторые компьютеры использовали битовое разрешение.) Если единицей измерения является слово, то можно получить доступ к большему объему памяти, используя адрес заданного размера за счет дополнительной сложности доступа к отдельным символам. С другой стороны, если единицей измерения является байт, то можно адресовать отдельные символы (т. Е. Выбирать во время операции с памятью).
Инструкции
Машинные команды обычно имеют размер слова архитектуры, например, в архитектурах RISC, или кратное размеру "char", составляющее его долю. Это естественный выбор, поскольку инструкции и данные обычно используют одну и ту же подсистему памяти. В гарвардской архитектуре размеры слов инструкций и данных не должны быть связаны, поскольку инструкции и данные хранятся в разных запоминающих устройствах; например, процессор в электронном телефонном коммутаторе 1ESS имел 37-битные инструкции и 23-битные слова данных.

Выбор размера слова

При проектировании компьютерной архитектуры выбор размер слова имеет существенное значение. Существуют конструктивные соображения, которые поощряют определенные размеры битовых групп для конкретных целей (например, для адресов), и эти соображения указывают на разные размеры для разных целей. Однако соображения экономии при проектировании настоятельно требуют использования одного размера или очень небольшого числа размеров, связанных кратными или дробными (частичными) размерами с основным размером. Этот предпочтительный размер становится размером слова архитектуры.

Размер символа был в прошлом (кодировка символов с предварительной переменной размером ) одно из влияний на единицу разрешения адреса и выбор размера слова. До середины 1960-х символы чаще всего хранились в шести битах; это позволяло использовать не более 64 символов, поэтому алфавит был ограничен прописными буквами. Поскольку во времени и пространстве эффективно иметь размер слова, кратный размеру символа, размеры слова в этот период обычно были кратны 6 битам (в двоичных машинах). Тогда обычным выбором было 36-битное слово, которое также является хорошим размером для числовых свойств формата с плавающей запятой.

После внедрения дизайна IBM System / 360, в котором использовались восьмибитные символы и поддерживались строчные буквы, стандартный размер символа (или более точно, байт ) стал восемью битами. После этого размер слов, естественно, был кратен восьми битам, причем обычно использовались 16, 32 и 64 бит.

Архитектуры с переменной длиной слова

Ранние разработки машин включали некоторые, в которых использовалось то, что часто называют переменной длиной слова. В этом типе организации числовой операнд не имеет фиксированной длины, а его конец обнаруживается при обнаружении символа со специальной маркировкой, часто называемой словесным знаком. Такие машины часто использовали десятичные дроби с двоичным кодом для чисел. К этому классу машин относились IBM 702, IBM 705, IBM 7080, IBM 7010, UNIVAC 1050, IBM 1401 и IBM 1620.

Большинство этих машин работают с одной единицей памяти за раз, и поскольку каждая инструкция или данные имеют длину в несколько единиц, каждая инструкция занимает несколько циклов только для доступ к памяти. Из-за этого эти машины часто довольно медленные. Например, выборка инструкций в IBM 1620 Model I занимает 8 циклов только для чтения 12 цифр инструкции (Model II сократила это до 6 циклов или 4 циклов, если инструкция не нуждалась в обоих адресных полях). Выполнение инструкции занимало совершенно разное количество циклов в зависимости от размера операндов.

Адресация слов и байтов

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

Когда обработка байтов должна составлять значительную часть рабочей нагрузки, обычно более выгодно использовать байт, а не слово в качестве единицы разрешения адреса. Значения адресов, которые отличаются на единицу, обозначают соседние байты в памяти. Это позволяет напрямую обращаться к произвольному символу в строке символов. Слово все еще может быть адресовано, но используемый адрес требует на несколько бит больше, чем альтернатива разрешения слова. Размер слова должен быть целым числом, кратным размеру символа в этой организации. Такой подход к адресации использовался в IBM 360 и с тех пор является наиболее распространенным подходом в машинах, разработанных.

В машине с побайтовой ориентацией (с байтовой адресацией ) перемещение одного байта из одного произвольного местоположения в другое обычно:

  1. ЗАГРУЗИТЬ исходный байт
  2. СОХРАНИТЕ результат обратно в целевой байт

. К отдельным байтам можно получить доступ на машине, ориентированной на слова, одним из двух способов. Байтами можно манипулировать с помощью комбинации операций сдвига и маски в регистрах. Для перемещения одного байта из одного произвольного места в другое может потребоваться эквивалент следующего:

  1. ЗАГРУЗИТЬ слово, содержащее исходный байт
  2. SHIFT исходное слово, чтобы выровнять желаемый байт с правильной позицией в целевом объекте слово
  3. И исходное слово с маской для обнуления всех битов, кроме желаемых
  4. ЗАГРУЗИТЬ слово, содержащее целевой байт
  5. И целевое слово с маской до нуля из целевого байта
  6. OR регистры, содержащие исходное и целевое слова, чтобы вставить исходный байт
  7. СОХРАНИТЬ результат обратно в целевое местоположение

В качестве альтернативы многие машины, ориентированные на слова, реализуют байтовые операции с инструкциями, используя специальные байтовые указатели в регистрах или в памяти. Например, указатель байта PDP-10 содержал размер байта в битах (позволяющий получить доступ к байтам разного размера), битовую позицию байта в слове и адрес слова данные. Инструкции могут автоматически настраивать указатель на следующий байт, например, при операциях загрузки и депонирования (сохранения).

Степени двух

Разные объемы памяти используются для хранения значений данных с разной степенью точности. Обычно используемые размеры - это степень двух, кратных единице разрешения адреса (байту или слову). Преобразование индекса элемента в массиве в адрес элемента требует только операции shift, а не умножения. В некоторых случаях эта связь позволяет избежать использования операций деления. В результате большинство современных компьютерных разработок имеют размеры слова (и другие размеры операндов), которые в два раза превышают размер байта.

Семейства размеров

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

В середине 1970-х годов DEC разработал VAX как 32-битный преемник 16-битного PDP-11. Они использовали слово для 16-битной величины, а длинное слово - для 32-битной величины. Это отличалось от более ранних машин, где естественная единица адресации памяти называлась словом, а величина, равная половине слова, называлась полусловом. В соответствии с этой схемой квадраслово VAX составляет 64 бита. Они продолжили эту терминологию слова / длинного слова / четверного слова с 64-битным Alpha.

Другим примером является семейство x86, в котором процессоры трех разных длин слов (16-бит, позже 32- и 64-бит), а слово продолжает обозначать 16-битное количество. Поскольку программное обеспечение обычно переносится с одного слова на другое, некоторые API и документация определяют или ссылаются на более старую (и, следовательно, более короткую) длину слова, чем полная длина слова на ЦП, для которого может быть скомпилировано программное обеспечение. Кроме того, аналогично тому, как байты используются для небольших чисел во многих программах, более короткое слово (16 или 32 бита) может использоваться в контекстах, где диапазон более широкого слова не требуется (особенно когда это может сэкономить значительное пространство стека или кеш пространство памяти). Например, Microsoft Windows API поддерживает определение WORD в языке программирования как 16-битное, несмотря на то, что API может использоваться на 32- или 64-битном процессоре x86, где стандартный размер слова будет 32 или 64 бита соответственно. Структуры данных, содержащие слова разного размера, называют их СЛОВО (16 бит / 2 байта), DWORD (32 бита / 4 байта) и QWORD (64 бит / 8 байтов) соответственно. Похожее явление развилось в языке ассемблера Intel x86 - из-за поддержки различных размеров (и обратной совместимости) в наборе команд некоторые мнемоники команд содержат "d" или "q". «идентификаторы, обозначающие« двойное »,« четверное »или« двойное четверное », которые соответствуют исходному 16-разрядному размеру слова архитектуры.

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

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

Таблица размеров слов

ключ: бит: биты, d: десятичные цифры, w: размер слова архитектуры, n: переменный размер
ГодКомпьютер. архитектураРазмер словаЦелочисленный. размерРазмер с плавающей запятой. размерИнструкция. размерыЕдиница адреса. разрешениеРазмер символа
1837Бэббидж. Аналитическая машина 50 dwПять разных карт были используется для различных функций, точный размер карт неизвестен.w
1941Цузе Z3 22 битаw8 битw
1942ABC 50 битw
1944Harvard Mark I 23 dw24 бит
1946. (1948). {1953}ENIAC. (с панелью №16). {с панелью №26}10 dw, 2w. (w). {w}—. (2 d, 4 d, 6 d, 8 d). {2 d, 4 d, 6 d, 8 d}—. —. {w}
1948Manchester Baby 32 bitwww
1951UNIVAC I 12 dw​⁄2ww1 d
1952Машина IAS 40 битw​⁄2ww5 бит
1952Быстрый универсальный цифровой компьютер M-2 34 битw?w34 бита = 4-битный код операции плюс 3 × 10-битный адрес10 бит
1952IBM 701 36 бит​⁄2w, w​⁄2w​⁄2w, w6 бит
1952UNIVAC 60 nd1 d,... 10 d2 d, 3 d
1952ARRA I 30 битwww5 бит
1953IBM 702 nd0 d,... 511 d5 dd1 d
1953UNIVAC 120 nd1 d,... 10 d2 d, 3 d
195330 битw2w​⁄2ww5 бит
1954. (1955)IBM 650. (w / IBM 653 )10 dw—. (w)ww2 d
1954IBM 704 36 битwwww6 бит
1954IBM 705 nd0 d,... 255 d5 dd1 d
1954IBM NORC 16 dww, 2www
1956IBM 305 nd1 d,... 100 d10 dd1 d
195634 битww​⁄2ww5 бит, 6 бит
195740 битw, 79 бит, 8 d, 15 d​⁄2w​⁄2w, w5 бит
1958UNIVAC II 12 dw​⁄2ww1 d
1958SAGE 32 бит​⁄2www6 бит
1958Autonetics Recomp II 40 битw, 79 бит, 8 d, 15 d2w​⁄2w​⁄2w, w5 бит
1958Setun 6 trit (~ 9,5 бит)до 6 tryte до 3 tryte4 trit
1958Electrologica X1 27 битw2www5 бит, 6 бит
1959IBM 1401 nd1 d,...1 d, 2 d, 4 d, 5 d, 7 d, 8 dd1 d
1959. (TBD)IBM 1620 nd2 d,...—. (4 d,... 102 d)12 dd2 d
1960LARC 12 dw, 2ww, 2www2 d
1960CDC 1604 48 битww​⁄2ww6 бит
1960IBM 1410 nd1 d,...1 d, 2 d, 6 d, 7 d, 11 d, 12 dd1 d
1960IBM 7070 10 dwwww, d2 d
1960PDP -1 18 битwww6 бит
1960Elliott 803 39 бит
1961IBM 7030. (Stretch)64 бит1 бит,... 64 бит,. 1 d,... 16 dw​⁄2w, wb, ⁄ 2 w, w1 бит,... 8 бит
1961IBM 7080 nd0 d,... 255 d5 dd1 д
1962GE-6xx 36 битw, 2 ww, 2 w, 80 битww6 бит, 9 бит
1962UNIVAC III 25 битw, 2w, 3w, 4w, 6 d, 12 dww6 бит
1962Autonetics D-17B. Minuteman I Компьютер навигации27 бит11 бит, 24 бит24 битw
1962UNIVAC 1107 36 бит​⁄6w, ⁄ 3 w, ⁄ 2 w, wwww6 бит
1962IBM 7010 nd1 d,...1 d, 2 d, 6 d, 7 d, 11 d, 12 dd1 d
1962IBM 7094 36 битww, 2www6 бит
1962SDS 9 Series 24 битw2www
1963. (1966)Компьютер управления Apollo 15 битww, 2ww
1963Цифровой компьютер ракеты-носителя Saturn 26 битw13 битw
1964/1966PDP-6 / PDP-10 36 битww, 2 www6 бит, 9 бит (типовое значение)
1964Titan 48 битwwwww
1964CDC 6600 60 битww​⁄4w, ⁄ 2ww6 бит
1964Autonetics D-37C. Minuteman II Компьютер навигации27 бит11 бит, 24 бит24 битw4 бит, 5 бит
1965Компьютер навигации Gemini 39 бит26 бит13 бит13 бит, 26- бит
1965IBM 360 32 бит​⁄2w, w,. 1 d,... 16 dw, 2w​⁄2w, w, 1 ⁄ 2w8 бит8 бит
1965UNIVAC 1108 36 бит​⁄6w, ⁄ 4 w, ⁄ 3 w, ⁄ 2 w, w, 2ww, 2www6 бит, 9 бит
1965PDP-8 12 битwww8 бит
1965Electrologica X8 27 битw2www6 бит, 7 бит
1966SDS Sigma 7 32 бит​⁄2w, ww, 2ww8 бит8 бит
1969Четырехфазные системы AL1 8 битw???
1970MP944 20 битw???
1970PDP-11 16 битw2w, 4ww, 2w, 3w8 бит8 бит
1971TMS1802NC 4 битw??
1971Intel 4004 4 битw, d2w, 4ww
1972Intel 8008 8 битw, 2 dw, 2w, 3ww8 бит
19729 битww, 2ww8 бит
1974Intel 8080 8 битw, 2w, 2 dw, 2w, 3ww8 бит
1975ILLIAC IV 64 битww, ⁄ 2www
1975Motorola 6800 8 битw, 2 dw, 2w, 3ww8 бит
1975MOS Tech. 6501. MOS Tech. 6502 8 битw, 2 dw, 2w, 3ww8 бит
1976Cray-1 64 бит24 бита, ww​⁄4w, ⁄ 2ww8 бит
1976Zilog Z80 8 битw, 2w, 2 dw, 2w, 3w, 4w, 5ww8 бит
1978. (1980)16-бит x86 (Intel 8086 ). (w / с плавающей точкой: Intel 8087 )16 бит​⁄2w, w, 2 d—. (2w, 4w, 5w, 17 d)​⁄2w, w,... 7w8 бит8 бит
1978VAX 32 бит​⁄4w, ⁄ 2 w, w, 1 d,... 31 d, 1 бит,... 32 битw, 2w​⁄4w,... 14 ⁄ 4w8 бит8 бит
1979. (1984)Motorola 68000 series. (с плавающей запятой)32-бит​⁄4w, ⁄ 2 w, w, 2 d—. (w, 2w, 2 ⁄ 2 w)​⁄2w, w,... 7 ⁄ 2w8 бит8 бит
1985IA-32 (Intel 80386 ) (с плавающей запятой)32-битный​⁄4w, ⁄ 2 w, w—. (w, 2w, 80 бит)8 бит,... 120 бит. ​⁄4w... 3 ⁄ 4w8 бит8 бит
1985ARMv1 32-битный​⁄4w, ww8-битный8 бит
1985MIPS 32 бит​⁄4w, ⁄ 2 w, ww, 2ww8 бит8 бит
1991Cray C90 64 бит32 бит, ww​⁄4w, ⁄ 2 w, 48 битw8 бит
1992Alpha 64 бит8 бит, ⁄ 4 w, ⁄ 2 w, w​⁄2w, w​⁄2w8 бит8 бит
1992PowerPC 32 бит​⁄4w, ⁄ 2 w, ww, 2ww8 бит8 бит
1996ARMv4. (w / Thumb )32 bit​⁄4w, ⁄ 2 w, ww. (⁄ 2 w, w)8 бит8 бит
2000IBM z / Architecture. (с векторной функцией)64-битная​⁄4w, ⁄ 2 w, w. 1 d,... 31 d​⁄2w, w, 2w​⁄4w, ⁄ 2 w, ⁄ 4w8 бит8 бит, UTF-16, UTF-32
2001IA-64 64 бит8 бит, ⁄ 4 w, ⁄ 2 w, w​⁄2w, w41 бит8 бит8 бит
2001ARMv6. (w / VFP)32 бит8 бит, ⁄ 2 w, w—. (w, 2w)​⁄2w, w8 бит8 бит
2003x86-64 64-битный8-битный, ⁄ 4 w, ⁄ 2 w, w​⁄2w, w, 80 бит8 бит,... 120 бит8 бит8 бит
2013ARMv8-A 64 бит8 бит, ⁄ 4 w, ⁄ 2 w, w​⁄2w, w​⁄2w8 бит8 бит
ГодКомпьютер. архитектураРазмер словаЦелочисленный. размерРазмер с плавающей запятой. размерИнструкция. размерыЕдиница адреса. разрешениеРазмер символа
ключ: бит: биты, d: десятичные цифры, w: размер слова архитектуры, n: переменный размер

См. Также

Ссылки

Последняя правка сделана 2021-06-21 03:29:11
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте