stringtranslate.com

Слово (архитектура компьютера)

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

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

Документация для старых компьютеров с фиксированным размером слова обычно указывает размеры памяти в словах, а не в байтах или символах. Иногда в документации правильно используются метрические префиксы , иногда с округлением, например, 65 килослов (кВт) означает 65536 слов, а иногда неправильно, когда килослова (кВт) означают 1024 слова (2 10 ), а мегаслова (МВт) — 1 048 576 слов (2 20 ). Со стандартизацией 8-битных байтов и байтовой адресуемости указание размеров памяти в байтах, килобайтах и ​​мегабайтах со степенями 1024, а не 1000 стало нормой, хотя в некоторой степени используются двоичные префиксы IEC .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Когда рабочая нагрузка включает обработку полей разных размеров, может быть выгодно обратиться к биту. Машины с битовой адресацией могут иметь некоторые инструкции, которые используют определяемый программистом размер байта, и другие инструкции, которые работают с фиксированными размерами данных. Например, на IBM 7030 [4] («Stretch») инструкция с плавающей точкой может адресовать только слова, в то время как целочисленная арифметическая инструкция может указывать длину поля 1–64 бита, размер байта 1–8 бит и смещение аккумулятора 0–127 бит.

В байт-адресуемой машине с инструкциями storage-to-storage (SS) обычно есть инструкции перемещения для копирования одного или нескольких байтов из одного произвольного места в другое. В байт-ориентированной ( байт-адресуемой ) машине без инструкций SS перемещение одного байта из одного произвольного места в другое обычно выполняется так:

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

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

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

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

Степени двойки

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

Размер семьи

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

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

Другим примером является семейство x86 , процессоры которого выпускались с тремя разными длинами слов (16 бит, позже 32- и 64-бит), в то время как word продолжает обозначать 16-битную величину. Поскольку программное обеспечение регулярно переносится с одной длины слова на другую, некоторые API и документация определяют или ссылаются на более старую (и, следовательно, более короткую) длину слова, чем полная длина слова на ЦП, для которого может быть скомпилировано программное обеспечение. Кроме того, подобно тому, как байты используются для небольших чисел во многих программах, более короткое слово (16 или 32 бита) может использоваться в контекстах, где диапазон более широкого слова не нужен (особенно там, где это может сэкономить значительное пространство стека или кэш-памяти). Например, API Windows от Microsoft поддерживает определение языка программирования WORD как 16 бит, несмотря на то, что API может использоваться на 32- или 64-битном процессоре x86, где стандартный размер слова будет 32 или 64 бита соответственно. Структуры данных, содержащие такие слова разного размера, называются:

Аналогичное явление возникло в языке ассемблера Intel x86 — из-за поддержки различных размеров (и обратной совместимости) в наборе инструкций некоторые мнемоники инструкций содержат идентификаторы «d» или «q», обозначающие «double-», «quad-» или «double-quad-», что соответствует исходному 16-битному размеру слова архитектуры.

Примером с другим размером слова является семейство IBM System/360 . В архитектуре System/360 , архитектуре System/370 и архитектуре System/390 существуют 8-битные байтовые s, 16-битные полуслова s, 32-битные слова s и 64-битные двойные слова s. Архитектура z/Architecture , которая является 64-битным членом этого семейства архитектур, продолжает ссылаться на 16-битные полуслова s, 32-битные слова s и 64-битные двойные слова s, а также дополнительно имеет 128-битные квадрослова s.

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

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

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

[8] [9]

Смотрите также

Примечания

  1. ^ Многие ранние компьютеры были десятичными , а некоторые — троичными.
  2. ^ UNIVAC 1005 адресует ядро, используя 5-битные коды Грея для строк и столбцов.
  3. ^ Битовый эквивалент вычисляется путем взятия количества информационной энтропии, предоставляемой тритом, которая составляет . Это дает эквивалент около 9,51 бита для 6 тритов.
  4. ^ Трехгосударственный знак
  5. ^ Хотя z/Architecture изначально является 64-битной архитектурой, термин слово по-прежнему относится к 32-битной величине. Однако в этой таблице размеры рассматриваются так, как если бы слово было 64-битным.

Ссылки

  1. ^ ab Beebe, Nelson HF (2017-08-22). "Глава 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. ^ Dreyfus, Phillippe (1958-05-08) [1958-05-06]. Написано в Лос-Анджелесе, Калифорния, США. Системная конструкция Gamma 60 (PDF) . Western Joint Computer Conference : Contrasts in Computers. ACM, Нью-Йорк, штат Нью-Йорк, США. стр. 130–133. IRE-ACM-AIEE '58 (Western). Архивировано (PDF) из оригинала 2017-04-03 . Получено 2017-04-03 . [...] Используется внутренний код данных: количественные (числовые) данные кодируются в 4-битном десятичном коде; качественные (буквенно-цифровые) данные кодируются в 6-битном буквенно-цифровом коде. Внутренний код инструкций означает, что инструкции кодируются в прямом двоичном коде. Что касается внутренней длины информации, квант информации называется « катена », и он состоит из 24 бит, представляющих либо 6 десятичных цифр, либо 4 буквенно-цифровых символа. Этот квант должен содержать кратное 4 и 6 бит, чтобы представлять целое число десятичных или буквенно-цифровых символов. Было обнаружено, что 24 бита являются хорошим компромиссом между минимальными 12 битами, которые привели бы к слишком низкому потоку передачи из параллельно считываемой основной памяти, и 36 битами или более, что было оценено как слишком большой квант информации. Катена должна рассматриваться как эквивалент символа в машинах с переменной длиной слова, но ее нельзя так назвать, поскольку она может содержать несколько символов. Она передается последовательно в основную память и из нее. Не желая называть «квант» словом, а набор символов буквой (слово — это слово, а квант — это что-то еще), было создано новое слово, и оно было названо «катена». Это английское слово, и оно есть в словаре Вебстера , хотя его нет во французском языке. Определение слова catena в словаре Вебстера — «связанная серия»; следовательно, 24-битный информационный элемент. Слово catena будет использоваться далее. Таким образом, был определен внутренний код. А что такое внешние коды данных? Они зависят в первую очередь от задействованного устройства обработки информации. Gamma 60  [fr] предназначена для обработки информации, относящейся к любой двоично-кодированной структуре. Таким образом, 80-колоночная перфокарта рассматривается как 960-битный информационный элемент; 12 строк, умноженные на 80 колонок, равны 960 возможным перфорациям; хранится как точное изображение в 960 магнитных сердечниках основной памяти, при этом 2 столбца карты занимают одну катену. [...]


  3. ^ Blaauw, Gerrit Anne ; Brooks, Jr., Frederick Phillips ; Buchholz, Werner (1962). "4: Natural Data Units" (PDF) . В Buchholz, Werner (ed.). Planning a Computer System – Project Stretch . McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA. стр. 39–40. LCCN  61-10466. Архивировано (PDF) из оригинала 2017-04-03 . Получено 2017-04-03 . [...] Термины, используемые здесь для описания структуры, налагаемой конструкцией машины, в дополнение к биту , перечислены ниже. Байт обозначает группу бит, используемых для кодирования символа, или количество бит, передаваемых параллельно на и из устройств ввода-вывода. Здесь используется термин, отличный от символа , поскольку данный символ может быть представлен в разных приложениях более чем одним кодом, а разные коды могут использовать разное количество бит (т. е. разные размеры байтов). При передаче ввода-вывода группировка бит может быть совершенно произвольной и не иметь никакого отношения к фактическим символам. ( Термин образован от bite , но изменен, чтобы избежать случайной мутации, на bit .) Слово состоит из количества бит данных, переданных параллельно из памяти или в память за один цикл памяти. Таким образом, размер слова определяется как структурное свойство памяти. (Термин catena был придуман для этой цели разработчиками компьютера Bull GAMMA 60  [fr] .) Блок относится к количеству слов, переданных в или из устройства ввода-вывода в ответ на одну инструкцию ввода-вывода. Размер блока является структурным свойством устройства ввода-вывода; он может быть фиксированным по конструкции или оставлен на усмотрение программы. [...]


  4. ^ "Формат" (PDF) . Справочное руководство 7030 Система обработки данных (PDF) . IBM. Август 1961. С. 50–57 . Получено 15.12.2021 .
  5. ^ Клиппингер, Ричард Ф. [на немецком языке] (1948-09-29). «Логическая система кодирования, применяемая к ENIAC (электронный числовой интегратор и компьютер)». Абердинский испытательный полигон, Мэриленд, США: Баллистические исследовательские лаборатории . Отчет № 673; Проект № TB3-0007 Отдела исследований и разработок, Департамент вооружений . Получено 05.04.2017 .
  6. ^ Клиппингер, Ричард Ф. [на немецком языке] (1948-09-29). «Логическая система кодирования, применяемая к ENIAC». Абердинский испытательный полигон, Мэриленд, США: Баллистические исследовательские лаборатории . Раздел VIII: Модифицированный ENIAC . Получено 2017-04-05 .
  7. ^ "4. Форматы инструкций" (PDF) . Руководство разработчика программного обеспечения для архитектуры Intel Itanium . Том 3: Справочник по набору инструкций Intel Itanium. стр. 3:293 . Получено 2022-04-25 . Три инструкции сгруппированы вместе в 128-битные и выровненные контейнеры, называемые пакетами . Каждый пакет содержит три 41-битных слота инструкций и 5-битное поле шаблона.
  8. ^ Блаау, Геррит Энн ; Брукс, младший, Фредерик Филлипс (1997). Архитектура компьютера: концепции и эволюция (1-е изд.). Addison-Wesley . ISBN 0-201-10557-8.(1213 страниц) (Примечание. Это однотомное издание. Эта работа также была доступна в двухтомной версии.)
  9. ^ Ралстон, Энтони; Рейлли, Эдвин Д. (1993). Энциклопедия компьютерных наук (3-е изд.). Ван Ностранд Рейнхольд . ISBN 0-442-27679-6.