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

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

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

Некоторые из самых ранних компьютеров (а также несколько современных) использовали десятичную систему с двоичным кодом, а не простой двоичный код , обычно имеющий размер слова 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 цифр инструкции ( Модель 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]

See also[edit]

  • Integer (computer science)

References[edit]

  1. ^ a b Beebe, Nelson H. F. (2017-08-22). "Chapter I. Integer arithmetic". The Mathematical-Function Computation Handbook - Programming Using the MathCW Portable Software Library (1 ed.). Salt Lake City, UT, USA: Springer International Publishing AG. p. 970. doi:10.1007/978-3-319-64110-2. ISBN 978-3-319-64109-6. LCCN 2017947446. S2CID 30244721.
  2. ^ Dreyfus, Phillippe (1958-05-08) [1958-05-06]. Written at Los Angeles, California, USA. System design of the Gamma 60 (PDF). Western Joint Computer Conference: Contrasts in Computers. ACM, New York, NY, USA. pp. 130–133. IRE-ACM-AIEE '58 (Western). Archived (PDF) from the original on 2017-04-03. Retrieved 2017-04-03. [...] Internal data code is used: Quantitative (numerical) data are coded in a 4-bit decimal code; qualitative (alpha-numerical) data are coded in a 6-bit alphanumerical code. The internal instruction code means that the instructions are coded in straight binary code.
    As to the internal information length, the information quantum is called a "catena," and it is composed of 24 bits representing either 6 decimal digits, or 4 alphanumerical characters. This quantum must contain a multiple of 4 and 6 bits to represent a whole number of decimal or alphanumeric characters. Twenty-four bits was found to be a good compromise between the minimum 12 bits, which would lead to a too-low transfer flow from a parallel readout core memory, and 36 bits or more, which was judged as too large an information quantum. The catena is to be considered as the equivalent of a character in variable word length machines, but it cannot be called so, as it may contain several characters. It is transferred in series to and from the main memory.
    Not wanting to call a "quantum" a word, or a set of characters a letter, (a word is a word, and a quantum is something else), a new word was made, and it was called a "catena." It is an English word and exists in Webster's although it does not in French. Webster's definition of the word catena is, "a connected series;" therefore, a 24-bit information item. The word catena will be used hereafter.
    The internal code, therefore, has been defined. Now what are the external data codes? These depend primarily upon the information handling device involved. The Gamma 60 [fr] is designed to handle information relevant to any binary coded structure. Thus an 80-column punched card is considered as a 960-bit information item; 12 rows multiplied by 80 columns equals 960 possible punches; is stored as an exact image in 960 magnetic cores of the main memory with 2 card columns occupying one catena. [...]
  3. ^ Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips; Buchholz, Werner (1962). "4: Natural Data Units" (PDF). In Buchholz, Werner (ed.). Planning a Computer System – Project Stretch. McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA. pp. 39–40. LCCN 61-10466. Archived (PDF) from the original on 2017-04-03. Retrieved 2017-04-03. [...] Terms used here to describe the structure imposed by the machine design, in addition to bit, are listed below.
    Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (i.e., different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.)
    A word consists of the number of data bits transmitted in parallel from or to memory in one memory cycle. Word size is thus defined as a structural property of the memory. (The term catena was coined for this purpose by the designers of the Bull GAMMA 60 [fr] computer.)
    Block refers to the number of words transmitted to or from an input-output unit in response to a single input-output instruction. Block size is a structural property of an input-output unit; it may have been fixed by the design or left to be varied by the program. [...]
  4. ^ Clippinger, Richard F. (1948-09-29). "A Logical Coding System Applied to the ENIAC (Electronic Numerical Integrator and Computer)". Aberdeen Proving Ground, Maryland, US: Ballistic Research Laboratories. Report No. 673; Project No. TB3-0007 of the Research and Development Division, Ordnance Department. Retrieved 2017-04-05.
  5. ^ Clippinger, Richard F. (1948-09-29). "A Logical Coding System Applied to the ENIAC". Aberdeen Proving Ground, Maryland, US: Ballistic Research Laboratories. Section VIII: Modified ENIAC. Retrieved 2017-04-05.
  6. ^ Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips (1997). Computer Architecture: Concepts and Evolution (1 ed.). Addison-Wesley. ISBN 0-201-10557-8. (1213 pages) (NB. This is a single-volume edition. This work was also available in a two-volume version.)
  7. ^ Ralston, Anthony; Reilly, Edwin D. (1993). Encyclopedia of Computer Science (3rd ed.). Van Nostrand Reinhold. ISBN 0-442-27679-6.