stringtranslate.com

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

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

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

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

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

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

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

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

Числа с фиксированной точкой
Держатели для фиксированной точки , обычно целочисленных , числовых значений могут быть доступны в одном или нескольких различных размерах, но одним из доступных размеров почти всегда будет слово. Другие размеры, если таковые имеются, скорее всего, будут кратными или долями размера слова. Меньшие размеры обычно используются только для эффективного использования памяти; при загрузке в процессор их значения обычно помещаются в более крупный контейнер размером со слово.
Числа с плавающей запятой
Держателями числовых значений с плавающей запятой обычно являются слова или кратные им слова.
Адреса
Держатели адресов памяти должны иметь размер, способный выразить необходимый диапазон значений, но не быть чрезмерно большими, поэтому часто используемый размер - это слово, хотя он также может быть кратным или дробным размером слова.
Регистры
Регистры процессора имеют размер, соответствующий типу хранящихся в них данных, например целые числа, числа с плавающей запятой или адреса. Во многих компьютерных архитектурах используются регистры общего назначения , способные хранить данные в нескольких представлениях.
Передача памяти-процессора
Когда процессор считывает из подсистемы памяти регистр или записывает значение регистра в память, объем передаваемых данных часто равен слову. Исторически сложилось так, что это количество битов, которое можно было передать за один цикл, в некоторых средах также называлось катеной ( например, 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 I занимает 8 циклов (160 мкс) только для чтения 12 цифр инструкции (Модель II сократила это время до 6 циклов или 4 циклов, если команде не требовались оба поля адреса). . Выполнение инструкции занимает разное количество циклов, в зависимости от размера операндов.

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

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

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

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

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

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

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

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

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

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

[8] [9]

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

Примечания

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

Рекомендации

  1. ^ аб Биб, Нельсон HF (22 августа 2017 г.). «Глава I. Целочисленная арифметика». Справочник по математическим вычислениям - Программирование с использованием портативной библиотеки программного обеспечения MathCW (1-е изд.). Солт-Лейк-Сити, Юта, США: Springer International Publishing AG . п. 970. дои : 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) из оригинала 3 апреля 2017 г. Проверено 3 апреля 2017 г. [...] Используется внутренний код данных: Количественные (числовые) данные кодируются 4-битным десятичным кодом; качественные (буквенно-цифровые) данные кодируются 6-битным буквенно-цифровым кодом. Внутренний код инструкции означает, что инструкции закодированы в прямом двоичном коде. Что касается внутренней длины информации, то информационный квант называется « катеной » и состоит из 24 битов, представляющих либо 6 десятичных цифр, либо 4 буквенно-цифровых символа. Этот квант должен содержать разряды, кратные 4 и 6, чтобы представлять целое число десятичных или буквенно-цифровых символов. Было обнаружено, что двадцать четыре бита являются хорошим компромиссом между минимальными 12 битами, которые привели бы к слишком низкому потоку передачи из основной памяти параллельного считывания, и 36 битами или более, что было сочтено слишком большим квантом информации. Катену следует рассматривать как эквивалент символа в машинах с переменной длиной слова, но ее нельзя называть так, поскольку она может содержать несколько символов. Он передается последовательно в основную память и из нее. Не желая называть «квант» словом, а набор символов буквой (слово — это слово, а квант — это нечто иное), было создано новое слово, и оно получило название «катена». Это английское слово, оно существует в Webster's , хотя его нет во французском языке. Вебстер определяет слово катена как «связная серия»; следовательно, 24-битный информационный элемент. В дальнейшем будет использоваться слово катена. Таким образом, внутренний код определен. Каковы же коды внешних данных? Они зависят в первую очередь от используемого устройства обработки информации. Gamma 60  [fr] предназначен для обработки информации, относящейся к любой двоично-кодированной структуре. Таким образом, перфокарта с 80 столбцами рассматривается как 960-битный элемент информации; 12 строк, умноженные на 80 столбцов, равняются 960 возможным ударам; хранится в виде точного изображения в 960 магнитных сердечниках основной памяти с двумя карточными столбцами, занимающими одну катену. [...]


  3. ^ Блаау, Геррит Энн ; Брукс-младший, Фредерик Филлипс ; Бухгольц, Вернер (1962). «4: Естественные единицы данных» (PDF) . В Бухгольце, Вернер (ред.). Планирование компьютерной системы – расширенный проект . McGraw-Hill Book Company, Inc. / The Maple Press Company, Йорк, Пенсильвания. стр. 39–40. LCCN  61-10466. Архивировано (PDF) из оригинала 3 апреля 2017 г. Проверено 3 апреля 2017 г. [...] Термины, используемые здесь для описания структуры, заданной конструкцией машины, помимо бита , перечислены ниже. Байт обозначает группу битов, используемых для кодирования символа, или количество битов, передаваемых параллельно к блокам ввода-вывода и от них. Здесь используется термин, отличный от символа , поскольку данный символ может быть представлен в разных приложениях более чем одним кодом, а разные коды могут использовать разное количество битов (т. е. разные размеры байтов). При передаче ввода-вывода группировка битов может быть совершенно произвольной и не иметь никакого отношения к реальным символам. (Термин произошел от укуса , но был изменен во избежание случайной мутации на бит .) Слово состоит из количества битов данных, передаваемых параллельно из или в память за один цикл памяти . Таким образом, размер слова определяется как структурное свойство памяти. (Термин катена был придуман для этой цели разработчиками компьютера Bull GAMMA 60  [fr] .) Блок относится к количеству слов, передаваемых в или из устройства ввода-вывода в ответ на одну команду ввода-вывода. Размер блока — структурное свойство блока ввода-вывода; оно могло быть исправлено в проекте или оставлено для изменения в программе. [...]


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