Сколько бит в памяти компьютера потребуется для произнесения слова
Обновлено: 21.11.2024
Вероятно, вы знаете, что все на компьютере хранится в виде строк битов (двоичных цифр; вы можете думать о них как о множестве маленьких переключателей). Здесь мы объясним, как эти биты используются для представления букв и цифр, которые обрабатывает ваш компьютер.
Прежде чем мы приступим к этому, вам нужно понять размер слова вашего компьютера. Размер слова является предпочтительным размером компьютера для перемещения единиц информации; технически это ширина регистров вашего процессора, которые являются областями хранения, которые ваш процессор использует для выполнения арифметических и логических вычислений. Когда люди пишут о компьютерах с разрядностью (называя их, скажем, «32-битными» или «64-битными»), они имеют в виду именно это.
Большинство компьютеров теперь имеют размер слова 64 бита. В недавнем прошлом (начало 2000-х) многие ПК имели 32-битные слова. Старые машины 286 в 1980-х годах имели размер слова 16. В старых мейнфреймах часто использовались 36-битные слова.
Компьютер рассматривает вашу память как последовательность слов, пронумерованных от нуля до некоторого большого значения, зависящего от объема вашей памяти. Это значение ограничено размером вашего слова, поэтому программы на старых машинах, таких как 286, должны были пройти через болезненные искажения, чтобы адресовать большие объемы памяти. Я не буду описывать их здесь; они до сих пор вызывают кошмары у программистов постарше.
Целые числа представлены в виде слов или пар слов, в зависимости от размера слова вашего процессора. Одно 64-битное машинное слово является наиболее распространенным целочисленным представлением.
Целая арифметика близка к математической системе счисления по основанию два, но не совсем ей. Младший бит равен 1, затем 2, затем 4 и так далее, как в чистом двоичном коде. Но числа со знаком представлены в записи с дополнением до двух. Бит старшего разряда является битом знака, который делает величину отрицательной, и каждое отрицательное число может быть получено из соответствующего положительного значения путем инвертирования всех битов и добавления единицы. Вот почему целые числа на 64-битной машине имеют диапазон от -2 63 до 2 63 - 1. Этот 64-й бит используется для знака; 0 означает положительное число или ноль, 1 — отрицательное число.
Некоторые компьютерные языки предоставляют вам доступ к беззнаковым арифметическим операциям, которые представляют собой прямое основание 2 только с нулями и положительными числами.
Большинство процессоров и некоторые языки могут выполнять операции с числами с плавающей запятой (эта возможность встроена во все современные чипы процессоров). Числа с плавающей запятой дают гораздо более широкий диапазон значений, чем целые числа, и позволяют выражать дроби. Способы, которыми это делается, различны и слишком сложны, чтобы подробно обсуждать их здесь, но общая идея очень похожа на так называемую «научную нотацию», где можно записать, скажем, 1,234 * 10 23 ; кодирование числа разделено на мантисса (1,234) и экспоненциальную часть (23) для множителя степени десяти (что означает, что умноженное число будет иметь 20 нулей, 23 минус три десятичных знака).
Предыдущий абзац вводил в заблуждение по двум причинам. Второстепенным является то, что термин «октет» формально корректен, но на самом деле используется редко; большинство людей называют октет байтом и ожидают, что длина байта будет восемь бит. Строго говоря, термин «байт» является более общим; раньше были, например, 36-битные машины с 9-битными байтами (хотя, вероятно, их больше никогда не будет).
Главная из них заключается в том, что не во всем мире используется ASCII. На самом деле, большая часть мира не может - ASCII, хотя и подходит для американского английского, не имеет многих акцентированных и других специальных символов, необходимых пользователям других языков. Даже в британском английском есть проблемы с отсутствием знака фунта стерлингов.
Было несколько попыток решить эту проблему. Все они используют дополнительный старший бит, которого нет в ASCII, что делает его младшей половиной набора из 256 символов. Наиболее широко используемым из них является так называемый набор символов «Latin-1» (более формально называемый ISO 8859-1). Это набор символов по умолчанию для Linux, старых версий HTML и X. Microsoft Windows использует измененную версию Latin-1, которая добавляет набор символов, таких как правые и левые двойные кавычки, в тех местах, где правильный Latin-1 оставляет неназначенными для исторических данных. причинам (обзорный отчет о проблемах, которые это вызывает, см. на странице деморонизатора).
Latin-1 поддерживает западноевропейские языки, включая английский, французский, немецкий, испанский, итальянский, голландский, норвежский, шведский, датский и исландский. Однако этого тоже недостаточно, и в результате существует целая серия наборов символов от латиницы от 2 до -9 для обработки таких вещей, как греческий, арабский, иврит, эсперанто и сербско-хорватский. Подробности см. на странице супа с алфавитом ISO.
Наилучшее решение — огромный стандарт Unicode (и его аналог ISO/IEC 10646-1:1993). Unicode идентичен Latin-1 в самых нижних 256 слотах.Над ними в 16-битном пространстве он включает греческий, кириллический, армянский, иврит, арабский, деванагари, бенгальский, гурмукхи, гуджарати, ория, тамильский, телугу, каннада, малаялам, тайский, лаосский, грузинский, тибетский, японский Кана, полный набор современных корейских хангыль и единый набор китайских/японских/корейских (CJK) иероглифов. Дополнительные сведения см. на домашней странице Unicode. XML и XHTML используют этот набор символов.
Вероятно, вы знаете, что все на компьютере хранится в виде строк битов (двоичных цифр; вы можете думать о них как о множестве маленьких переключателей). Здесь мы объясним, как эти биты используются для представления букв и цифр, которые обрабатывает ваш компьютер.
Прежде чем мы приступим к этому, вам нужно понять размер слова вашего компьютера. Размер слова является предпочтительным размером компьютера для перемещения единиц информации; технически это ширина регистров вашего процессора, которые являются областями хранения, которые ваш процессор использует для выполнения арифметических и логических вычислений. Когда люди пишут о компьютерах с разрядностью (называя их, скажем, «32-битными» или «64-битными»), они имеют в виду именно это.
Большинство компьютеров теперь имеют размер слова 64 бита. В недавнем прошлом (начало 2000-х) многие ПК имели 32-битные слова. Старые машины 286 в 1980-х годах имели размер слова 16. В старых мейнфреймах часто использовались 36-битные слова.
Компьютер рассматривает вашу память как последовательность слов, пронумерованных от нуля до некоторого большого значения, зависящего от объема вашей памяти. Это значение ограничено размером вашего слова, поэтому программы на старых машинах, таких как 286, должны были пройти через болезненные искажения, чтобы адресовать большие объемы памяти. Я не буду описывать их здесь; они до сих пор вызывают кошмары у программистов постарше.
Целые числа представлены в виде слов или пар слов, в зависимости от размера слова вашего процессора. Одно 64-битное машинное слово является наиболее распространенным целочисленным представлением.
Целая арифметика близка к математической системе счисления по основанию два, но не совсем ей. Младший бит равен 1, затем 2, затем 4 и так далее, как в чистом двоичном коде. Но числа со знаком представлены в записи с дополнением до двух. Бит старшего разряда является битом знака, который делает величину отрицательной, и каждое отрицательное число может быть получено из соответствующего положительного значения путем инвертирования всех битов и добавления единицы. Вот почему целые числа на 64-битной машине имеют диапазон от -2 63 до 2 63 - 1. Этот 64-й бит используется для знака; 0 означает положительное число или ноль, 1 — отрицательное число.
Некоторые компьютерные языки предоставляют вам доступ к беззнаковым арифметическим операциям, которые представляют собой прямое основание 2 только с нулями и положительными числами.
Большинство процессоров и некоторые языки могут выполнять операции с числами с плавающей запятой (эта возможность встроена во все современные чипы процессоров). Числа с плавающей запятой дают гораздо более широкий диапазон значений, чем целые числа, и позволяют выражать дроби. Способы, которыми это делается, различны и слишком сложны, чтобы подробно обсуждать их здесь, но общая идея очень похожа на так называемую «научную нотацию», где можно записать, скажем, 1,234 * 10 23 ; кодирование числа разделено на мантисса (1,234) и экспоненциальную часть (23) для множителя степени десяти (что означает, что умноженное число будет иметь 20 нулей, 23 минус три десятичных знака).
Предыдущий абзац вводил в заблуждение по двум причинам. Второстепенным является то, что термин «октет» формально корректен, но на самом деле используется редко; большинство людей называют октет байтом и ожидают, что длина байта будет восемь бит. Строго говоря, термин «байт» является более общим; раньше были, например, 36-битные машины с 9-битными байтами (хотя, вероятно, их больше никогда не будет).
Главная из них заключается в том, что не во всем мире используется ASCII. На самом деле, большая часть мира не может - ASCII, хотя и подходит для американского английского, не имеет многих акцентированных и других специальных символов, необходимых пользователям других языков. Даже в британском английском есть проблемы с отсутствием знака фунта стерлингов.
Было несколько попыток решить эту проблему. Все они используют дополнительный старший бит, которого нет в ASCII, что делает его младшей половиной набора из 256 символов. Наиболее широко используемым из них является так называемый набор символов «Latin-1» (более формально называемый ISO 8859-1). Это набор символов по умолчанию для Linux, старых версий HTML и X. Microsoft Windows использует измененную версию Latin-1, которая добавляет набор символов, таких как правые и левые двойные кавычки, в тех местах, где правильный Latin-1 оставляет неназначенными для исторических данных. причинам (обзорный отчет о проблемах, которые это вызывает, см. на странице деморонизатора).
Latin-1 поддерживает западноевропейские языки, включая английский, французский, немецкий, испанский, итальянский, голландский, норвежский, шведский, датский и исландский. Однако этого тоже недостаточно, и в результате существует целая серия наборов символов от латиницы от 2 до -9 для обработки таких вещей, как греческий, арабский, иврит, эсперанто и сербско-хорватский. Подробности см. на странице супа с алфавитом ISO.
Наилучшее решение — огромный стандарт Unicode (и его аналог ISO/IEC 10646-1:1993). Unicode идентичен Latin-1 в самых нижних 256 слотах. Над ними в 16-битном пространстве он включает греческий, кириллический, армянский, иврит, арабский, деванагари, бенгальский, гурмукхи, гуджарати, ория, тамильский, телугу, каннада, малаялам, тайский, лаосский, грузинский, тибетский, японский Кана, полный набор современных корейских хангыль и единый набор китайских/японских/корейских (CJK) иероглифов. Дополнительные сведения см. на домашней странице Unicode. XML и XHTML используют этот набор символов.
«В вычислениях слово — это естественная единица данных, используемая процессором определенной конструкции. Слово — это фрагмент данных фиксированного размера, обрабатываемый как единое целое набором инструкций или аппаратным обеспечением процессора. Количество бит в слове (размер слова, ширина слова или длина слова) является важной характеристикой любой конкретной конструкции процессора или компьютерной архитектуры."
В вычислениях слово — это естественная единица данных, используемая процессором определенной конструкции. Слово — это фрагмент данных фиксированного размера, обрабатываемый как единое целое набором инструкций или оборудованием процессора. Количество битов в слове (размер слова, ширина слова или длина слова) является важной характеристикой любой конкретной конструкции процессора или архитектура компьютера.
Размер слова отражается во многих аспектах структуры и работы компьютера; большинство регистров в процессоре обычно имеют размер слова, и самый большой фрагмент данных, который может быть передан в рабочую память и из нее за одну операцию, во многих (не во всех) архитектурах является словом. Максимально возможный размер адреса, используемый для обозначения местоположения в памяти, обычно является аппаратным словом (здесь «аппаратное слово» означает полноразмерное естественное слово процессора, в отличие от любого другого используемого определения).
Современные процессоры, включая встроенные системы, обычно имеют размер слова 8, 16, 24, 32 или 64 бита, в то время как современные компьютеры общего назначения обычно используют 32 или 64 бита. Цифровые процессоры специального назначения, такие как, например, DSP, могут использовать другие размеры, и многие другие размеры использовались исторически, включая 9, 12, 18, 24, 26, 36, 39, 40, 48 и 60 бит. Плита является примером системы с более ранним размером слова. Некоторые из самых ранних компьютеров (а также некоторые современные) использовали двоично-десятичный формат, а не обычный двоичный код, обычно с размером слова 10 или 12 десятичных цифр, а некоторые ранние десятичные компьютеры вообще не имели фиксированной длины слова.
Размер слова иногда может отличаться от ожидаемого из-за обратной совместимости с более ранними компьютерами. Если несколько совместимых вариантов или семейств процессоров имеют общую архитектуру и набор инструкций, но различаются размерами слов, их документация и программное обеспечение могут стать сложными для записи, чтобы учесть разницу (см. Семейства размеров ниже).
Использование слов
В зависимости от того, как организован компьютер, единицы размера слова могут использоваться для:
Числа с фиксированной точкой Держатели для числовых значений с фиксированной точкой, обычно целочисленных, могут быть доступны в одном или нескольких различных размерах, но одним из доступных размеров почти всегда будет слово. Другие размеры, если они есть, скорее всего, будут кратными или дробными от размера слова. Меньшие размеры обычно используются только для эффективного использования памяти; при загрузке в процессор их значения обычно попадают в более крупный держатель размером со слово. Числа с плавающей запятой Держателями для числовых значений с плавающей запятой обычно являются либо слово, либо кратное слову. Адреса Держатели для адресов памяти должны иметь размер, способный выразить необходимый диапазон значений, но не быть чрезмерно большими, поэтому часто используемый размер - это слово, хотя он также может быть кратным или дробным от размера слова. Регистры Регистры процессора рассчитаны на размер, соответствующий типу данных, которые они содержат, т.е. целые числа, числа с плавающей запятой или адреса. Во многих компьютерных архитектурах используются «регистры общего назначения», которые могут хранить любой из нескольких типов данных, эти регистры должны иметь размер, чтобы хранить самые большие типы, исторически это размер слова архитектуры, хотя все более крупные регистры специального назначения имеют был добавлен для работы с новыми типами. Передача памяти процессору Когда процессор читает из подсистемы памяти в регистр или записывает значение регистра в память, объем передаваемых данных часто представляет собой слово. Исторически это количество битов, которое можно было передать за один цикл, также называлось catena в некоторых средах (например, Bull GAMMA 60 (fr)). В простых подсистемах памяти слово передается по шине данных памяти, ширина которой обычно равна слову или полуслову. В подсистемах памяти, использующих кеши, передача размером слова — это передача между процессором и первым уровнем кеша; на более низких уровнях иерархии памяти обычно используются более крупные передачи (кратные размеру слова).Единица разрешения адреса В данной архитектуре последовательные значения адреса обозначают последовательные единицы памяти; эта единица является единицей разрешения адреса. В большинстве компьютеров единицей измерения является либо символ (например, байт), либо слово. (Некоторые компьютеры использовали битовое разрешение.) Если единицей является слово, то можно получить доступ к большему объему памяти, используя адрес заданного размера за счет дополнительной сложности для доступа к отдельным символам. С другой стороны, если единицей измерения является байт, то можно адресовать отдельные символы (т. е. выбирать их во время работы с памятью). Инструкции Машинные инструкции обычно имеют размер слова архитектуры, например, в архитектуре RISC, или кратны размеру «символа», который составляет его часть. Это естественный выбор, поскольку инструкции и данные обычно используют одну и ту же подсистему памяти. В гарвардских архитектурах размер слов инструкций и данных не обязательно должен быть связан, поскольку инструкции и данные хранятся в разных памяти; например, процессор электронного телефонного коммутатора 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 циклов, если инструкции не нужны оба адресных поля). Выполнение инструкции занимало совершенно переменное количество циклов, в зависимости от размера операндов.
Адресация слов и байтов
На модель памяти архитектуры сильно влияет размер слова. В частности, в качестве слова часто выбирали разрешение адреса памяти, то есть наименьшую единицу, которую можно обозначить адресом. В этом подходе значения адреса, отличающиеся на единицу, обозначают соседние слова памяти. Это естественно для машин, которые почти всегда оперируют единицами слов (или нескольких слов), и имеет то преимущество, что позволяет инструкциям использовать поля минимального размера для содержания адресов, что может позволить меньший размер инструкции или большее разнообразие инструкций. /p>
Когда обработка байтов должна составлять значительную часть рабочей нагрузки, обычно более выгодно использовать байт, а не слово, в качестве единицы разрешения адреса. Это позволяет напрямую обращаться к произвольному символу в строке символов. Слово по-прежнему может быть адресовано, но используемый адрес требует на несколько бит больше, чем альтернатива разрешения слова. Размер слова должен быть целым числом, кратным размеру символа в этой организации. Этот подход к адресации использовался в IBM 360 и с тех пор является наиболее распространенным подходом в машинах, разработанных.
Доступ к отдельным байтам на компьютере, ориентированном на слова, можно получить одним из двух способов.Байтами можно манипулировать с помощью комбинации операций сдвига и маски в регистрах. Для перемещения одного байта из одного произвольного места в другое может потребоваться эквивалент следующего:
- ЗАГРУЗИТЬ слово, содержащее исходный байт
- Сдвиньте исходное слово, чтобы выровнять нужный байт по правильной позиции в целевом слове.
- И исходное слово с маской для обнуления всех битов, кроме нужных.
- ЗАГРУЗИТЬ слово, содержащее целевой байт
- И целевое слово с маской для обнуления целевого байта
- ИЛИ регистры, содержащие исходное и целевое слова, для вставки исходного байта
- СОХРАНИТЬ результат в целевом расположении
Кроме того, многие машины, ориентированные на слова, реализуют байтовые операции с инструкциями, используя специальные указатели байтов в регистрах или памяти. Например, указатель байта PDP-10 содержит размер байта в битах (что позволяет получить доступ к байтам разного размера), позицию бита байта в слове и адрес слова данных. Инструкции могут автоматически настраивать указатель на следующий байт, например, при операциях загрузки и размещения (сохранения).
Степени двойки
Для хранения значений данных с разной степенью точности используются разные объемы памяти. Обычно используемые размеры представляют собой степень двойки, кратную единице разрешения адреса (байт или слово). Преобразование индекса элемента в массиве в адрес элемента требует только операции сдвига, а не умножения. В некоторых случаях это отношение может также избежать использования операций деления. В результате большинство современных компьютерных систем имеют размеры слов (и других размеров операндов), которые в два раза превышают размер байта.
Размер семей
По мере усложнения конструкции компьютеров центральное значение размера одного слова для архитектуры уменьшилось. Хотя более мощное аппаратное обеспечение может использовать более широкий спектр размеров данных, рыночные силы вынуждают поддерживать обратную совместимость при расширении возможностей процессора. В результате то, что могло бы быть центральным размером слова в новом дизайне, должно сосуществовать в качестве альтернативного размера исходному размеру слова в обратно совместимом дизайне. Исходный размер слова остается доступным в будущих дизайнах, образуя основу семейства размеров.
В середине 1970-х компания DEC разработала модель VAX, которая должна была прийти на смену PDP-11. Они использовали word для 16-битной величины, а longword для 32-битной величины. Это отличалось от более ранних машин, где естественная единица адресации памяти называлась словом, а количество, равное половине слова, называлось полусловом. В соответствии с этой схемой четверное слово VAX имеет длину 64 бита.
Другим примером является семейство x86, в котором были выпущены процессоры с тремя разными длинами слов (16-разрядные, позже 32- и 64-разрядные). Поскольку программное обеспечение обычно переносится с одной длины слова на другую, некоторые API и документация определяют или ссылаются на более старую (и, следовательно, более короткую) длину слова, чем полная длина слова на ЦП, для которого может быть скомпилировано программное обеспечение. Кроме того, аналогично тому, как байты используются для небольших чисел во многих программах, более короткое слово (16 или 32 бита) может использоваться в контекстах, где диапазон более широкого слова не требуется (особенно когда это может сэкономить значительное пространство стека или кэша). пространство памяти). Например, Microsoft Windows API поддерживает определение языка программирования WORD как 16-битное, несмотря на то, что API может использоваться на 32- или 64-битном процессоре x86, где стандартный размер слова будет быть 32 или 64 бита соответственно. Структуры данных, содержащие слова такого разного размера, обозначаются как WORD (16 бит/2 байта), DWORD (32 бита/4 байта) и QWORD (64 бит/8 байт) соответственно. Аналогичное явление развилось в языке ассемблера Intel x86 - из-за поддержки различных размеров (и обратной совместимости) в наборе инструкций некоторые мнемоники инструкций содержат идентификаторы «d» или «q», обозначающие «двойной-», «квадратный-» или "двойной-четыре-", которые относятся к исходному 16-битному размеру слова архитектуры.
Как правило, новые процессоры должны использовать ту же длину слова данных и ширину виртуального адреса, что и старый процессор, чтобы иметь двоичную совместимость с этим старым процессором.
Часто тщательно написанный исходный код — написанный с учетом совместимости исходного кода и переносимости программного обеспечения — может быть перекомпилирован для работы на различных процессорах, даже с разной длиной слова данных или разной шириной адреса, или и тем, и другим.
С адресацией по слову – это термин в архитектуре компьютера.
Когда размер ячейки рассчитан на основе длины слова ЦП, тогда соответствующее адресное пространство называется адресуемым по словам.
В компьютерной архитектуре слово представляет собой упорядоченный набор байтов или битов, который является обычной единицей, в которой информация может храниться, передаваться или обрабатываться на данном компьютере.
Его также можно определить как слово памяти — это определенные байты, которые двунаправленная шина данных может передавать за один раз. Скажем, размер шины данных 16 бит, это означает, что она может передавать максимум 16 бит данных за раз. В таком случае мы можем сказать, что размер слова равен 2 байтам. Такой метод называется памятью с адресацией по словам. [1] В 32-битной машине размер шины данных составляет 32 бита или 4 байта. Итак, 32-битная машина имеет размер слова 4 байта. В такой машине процессор может считывать и записывать 4 байта данных за раз из основной памяти. Ссылка на адрес 0 будет читать/записывать первые 4 байта основной памяти, то есть от 0 до байтов 3. Точно так же адрес 1 будет извлекать байты 4-7 и так далее.
Для слова с адресацией нам нужны два регистра: регистр адреса памяти (MAR) и регистр данных памяти (MDR). Размер этих регистров зависит от архитектуры компьютера. Скажем, возьмем в качестве примера 32-битную машину с 4 ГБ ОЗУ. В этом случае размер MAR и MDR составляет 32 бита, и такой же размер шины данных. Когда процессор получает какие-либо данные или инструкции из памяти, он помещает 32-битный адрес памяти в MAR. Затем этот адрес используется для вычисления адреса слова памяти в основной памяти. Так как размер слова памяти составляет 4 байта. У оперативной памяти объемом 4 ГБ будет 1 ГБ слов памяти, а для адресации 1 ГБ слов памяти в основной памяти нам нужно всего 30 бит. Таким образом, два бита более высокого порядка 32-битного адреса памяти обычно отбрасываются, чтобы сделать его 30-битным адресом, и помещают его в MAR. Используя этот 30-битный адрес, выбирается определенное слово памяти. Адрес 0 указывает на первое слово памяти, состоящее из байтов 0-3, адрес 1 указывает на второе слово, то есть на байты 4-7 и так далее. После выборки соответствующего слова памяти оно помещается на шину данных и сохраняется в MDR. Теперь ЦП может работать с этими данными.
Если память компьютера адресуется по словам, то каждому слову в памяти назначается собственный адрес памяти. Это означает, что процессор может адресовать и извлекать из памяти только полные слова. Такие компьютеры иногда называют машинами слов [2] (в отличие от байтовых машин [3]).
Обычно, если процессор имеет набор инструкций фиксированной длины, длина инструкции равна длине слова.
Читайте также: