Из Википедии, бесплатной энциклопедии
  (Перенаправлено с 32-битного слова )
Перейти к навигации Перейти к поиску

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

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

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

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

Использование слов [ править ]

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

Числа с фиксированной точкой
Держатели для фиксированной точки , обычно целочисленные , числовые значения могут быть доступны в одном или нескольких разных размерах, но один из доступных размеров почти всегда будет подходящим. Другие размеры, если таковые имеются, скорее всего, будут кратны или дроби размера слова. Меньшие размеры обычно используются только для эффективного использования памяти; при загрузке в процессор их значения обычно попадают в более крупный держатель размером с слово.
Числа с плавающей запятой
Держатели для числовых значений с плавающей запятой обычно представляют собой либо слово, либо кратное ему слово.
Адреса
Держатели адресов памяти должны иметь размер, способный выражать необходимый диапазон значений, но не быть чрезмерно большим, поэтому часто используется размер слова, хотя он также может быть кратным или долей размера слова.
Регистры
Регистры процессора разработаны с размером, соответствующим типу данных, которые они хранят, например, целые числа, числа с плавающей запятой или адреса. Многие компьютерные архитектуры используют регистры общего назначения , которые могут хранить данные в нескольких представлениях.
Перенос памяти и процессора
Когда процессор считывает из подсистемы памяти в регистр или записывает значение регистра в память, количество передаваемых данных часто является словом. Исторически такое количество битов, которое может быть передано за один цикл, в некоторых средах также называлось катеной (например, Bull GAMMA 60  [ fr ] ). [2] [3] В простых подсистемах памяти слово передается по шине данных памяти , которая обычно имеет ширину слова или полуслова. В подсистемах памяти, которые используют кеши , передача размером с слово - это передача между процессором и первым уровнем кеша; на более низких уровнях иерархии памяти обычно используются более крупные переводы (кратные размеру слова).
Единица разрешения адреса
В данной архитектуре последовательные значения адреса обозначают последовательные единицы памяти; эта единица - единица разрешения адреса. В большинстве компьютеров единицей измерения является либо символ (например, байт), либо слово. (Некоторые компьютеры использовали битовое разрешение.) Если единицей измерения является слово, то можно получить доступ к большему объему памяти, используя адрес заданного размера за счет дополнительной сложности доступа к отдельным символам. С другой стороны, если единица измерения - байт, то можно адресовать отдельные символы (т. Е. Выбирать во время операции с памятью).
инструкции
Машинные инструкции обычно имеют размер слова архитектуры, например, в архитектурах 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. СДВИГАЙТЕ исходное слово, чтобы выровнять желаемый байт с правильной позицией в целевом слове
  3. И исходное слово с маской, чтобы обнулить все, кроме желаемых битов
  4. ЗАГРУЗИТЬ слово, содержащее целевой байт
  5. И целевое слово с маской для обнуления целевого байта
  6. ИЛИ регистры, содержащие исходное и целевое слова, чтобы вставить исходный байт
  7. СОХРАНИТЬ результат обратно в целевое местоположение

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

Полномочия двух [ править ]

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

Семейства размеров [ править ]

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

В середине 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-битного размера слова архитектуры.

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

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

Таблица размеров слов [ править ]

[6] [7]

См. Также [ править ]

  • Целое число (информатика)

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

  1. ^ a b Биби, Нельсон Х.Ф. (22.08.2017). «Глава I. Целочисленная арифметика». Справочник по математическим вычислениям функций - Программирование с использованием переносимой программной библиотеки MathCW (1-е изд.). Солт-Лейк-Сити, Юта, США: Springer International Publishing AG . п. 970. DOI : 10.1007 / 978-3-319-64110-2 . ISBN 978-3-319-64109-6. LCCN  2017947446 . S2CID  30244721 .
  2. ^ Дрейфус, Филипп (1958-05-08) [1958-05-06]. Написано в Лос-Анджелесе, Калифорния, США. Системный дизайн Gamma 60 (PDF) . Совместная западная компьютерная конференция : контрасты в компьютерах. ACM, Нью-Йорк, Нью-Йорк, США. С. 130–133. IRE-ACM-AIEE '58 (западный). Архивировано (PDF) из оригинала на 2017-04-03 . Проверено 3 апреля 2017 . [...] Используется внутренний код данных: количественные (числовые) данные кодируются в 4-битном десятичном коде; качественные (буквенно-цифровые) данные кодируются в 6-битном буквенно-цифровом коде. Внутренний код инструкции означает, что инструкции закодированы в прямом двоичном коде.
    Что касается длины внутренней информации, квант информации называется « катеной » и состоит из 24 битов, представляющих либо 6 десятичных цифр, либо 4 буквенно-цифровых символа. Этот квант должен содержать число, кратное 4 и 6 битам, чтобы представлять целое число десятичных или буквенно-цифровых символов. Было обнаружено, что двадцать четыре бита являются хорошим компромиссом между минимальными 12 битами, которые привели бы к слишком низкому потоку передачи из параллельной памяти ядра считывания, и 36 битами или более, которые были сочтены слишком большим квантом информации. Катена должна рассматриваться как эквивалент символа в машинах с переменной длиной слова, но ее нельзя так называть, так как она может содержать несколько символов. Он передается последовательно в основную память и из нее.
    Не желая называть «квант» словом или набор символов буквой (слово - это слово, а квант - это что-то еще), было создано новое слово, которое было названо «катена». Это английское слово, которое существует в Webster's, хотя его нет во французском языке. Вебстер определяет слово «катена» как «связный ряд»; следовательно, 24-битный информационный элемент. Слово катена будет использоваться в дальнейшем.
    Таким образом, внутренний код был определен. Каковы же коды внешних данных? Они зависят в первую очередь от задействованного устройства обработки информации. Гамма - 60  [ FR ]предназначен для обработки информации, относящейся к любой структуре с двоичным кодом. Таким образом, перфокарта с 80 столбцами считается 960-битным информационным элементом; 12 строк, умноженных на 80 столбцов, равняются 960 возможным ударам; хранится в виде точного изображения в 960 магнитных сердечниках основной памяти с двумя столбцами карты, занимающими одну катену. [...]
  3. ^ Blaauw, Геррит Энн ; Брукс-младший, Фредерик Филлипс ; Бухгольц, Вернер (1962). «4: Единицы естественных данных» (PDF) . В Бухгольце, Вернер (ред.). Планирование компьютерной системы - Project Stretch . McGraw-Hill Book Company, Inc. / The Maple Press Company, Йорк, Пенсильвания. С. 39–40. LCCN 61-10466 . Архивировано (PDF) из оригинала на 2017-04-03 . Проверено 3 апреля 2017 . [...] Термины, используемые здесь для описания конструкции, обусловленной конструкцией машины, помимо долота , перечислены ниже. Байт  
    обозначает группу битов, используемых для кодирования символа, или количество битов, передаваемых параллельно в блоки ввода-вывода и из них. Здесь используется термин, отличный от символа , потому что данный символ может быть представлен в разных приложениях более чем одним кодом, а разные коды могут использовать разное количество битов (т. Е. Разные размеры байтов). При передаче ввода-вывода группировка битов может быть совершенно произвольной и не иметь отношения к реальным символам. (Термин придуман от укуса , но respelled , чтобы избежать случайной мутации к биту .) Слово состоит из числа бит данных , передаваемых параллельно от или к памяти в одном цикле памяти. Размер слова
    таким образом определяется как структурное свойство памяти. (Термин катена был придуман для этой цели разработчиками компьютера Bull GAMMA 60  [ fr ] .)
    Блок относится к количеству слов, переданных в или из устройства ввода-вывода в ответ на одну команду ввода-вывода. Размер блока - это структурное свойство устройства ввода-вывода; это могло быть исправлено разработкой или оставлено для изменения программой. [...]
  4. ^ Клиппингер, Ричард Ф. (1948-09-29). «Система логического кодирования, применяемая к ENIAC (электронный числовой интегратор и компьютер)» . Абердинский испытательный полигон, Мэриленд, США: лаборатории баллистических исследований . Отчет № 673; Проект № TB3-0007 Отдела исследований и разработок Управления боеприпасов . Проверено 5 апреля 2017 .
  5. ^ Клиппингер, Ричард Ф. (1948-09-29). «Система логического кодирования, применяемая к ENIAC» . Абердинский испытательный полигон, Мэриленд, США: лаборатории баллистических исследований . Раздел VIII: Модифицированный ENIAC . Проверено 5 апреля 2017 .
  6. ^ Blaauw, Геррит Энн ; Брукс-младший, Фредерик Филлипс (1997). Компьютерная архитектура: концепции и эволюция (1-е изд.). Эддисон-Уэсли . ISBN 0-201-10557-8. (1213 страниц) (NB. Это однотомное издание. Этот труд был также доступен в двухтомном варианте.)
  7. ^ Ральстон, Энтони; Рейли, Эдвин Д. (1993). Энциклопедия компьютерных наук (3-е изд.). Ван Ностранд Рейнхольд . ISBN 0-442-27679-6.