Байтовая адресация


Байтовая адресация относится к аппаратным архитектурам, поддерживающим доступ к отдельным байтам . Такие компьютеры иногда называют байтовыми машинами [1] . В отличие от архитектур с адресацией по словам, словесных машин , которые обращаются к данным в терминах более крупных единиц, называемых словами . [2]

Базовая единица цифровой памяти называется битом , хранящим один 0 или 1. Многие распространенные архитектуры могут одновременно адресовать более 8 битов данных. Например, процессор Intel 386SX может обрабатывать 16-битные (двухбайтовые) данные, поскольку данные передаются по 16-битной шине . Однако данные в памяти могут иметь различную длину. Память с байтовой адресацией относится к архитектурам, в которых данные могут быть доступны и адресованы в блоках, которые уже, чем шина. Восьмибитный процессор, такой как Intel 8008 , адресует восемь битов, но поскольку это полная ширина шины, она считается адресуемой по словам. 386SX, который адресует память 8-битными блоками, но может извлекать и сохранять ее по 16 бит за раз, называется байтово-адресуемым.

Преимущество адресации по словам состоит в том, что за то же количество битов можно адресовать больший объем памяти. IBM 7094 имеет 15-битные адреса, поэтому может адресовать 32 768 36-битных слов. Машины часто строились с полным набором адресуемой памяти. Адресация 32 768 байтов по 6 бит была бы гораздо менее полезной для ученых и инженеров. Или рассмотрим 32-битный Pentiumпроцессор. Его 32-битная адресная шина может адресовать 4 миллиарда различных элементов. Используя адресацию слов, 32-битная адресная шина может адресовать 4 гигаслова; или 16 гигабайт с использованием современного 8-битного байта. Если бы 386SX и его преемники использовали адресацию слов, ученые, инженеры и геймеры могли бы пользоваться программами, которые были бы в 4 раза больше на 32-битных машинах. С другой стороны, обработка текстов, рендеринг HTML и все другие текстовые приложения работали бы медленнее.

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

Чтобы проиллюстрировать, почему адресация байтов полезна, рассмотрим IBM 7094 ., адресуемый по словам и не имеющий понятия байта. Он имеет 36-битные слова и хранит свои шестибитные коды символов по шесть в слове. Чтобы изменить 16-й символ в строке, программа должна определить, что это четвертый символ третьего слова в строке, выбрать третье слово, замаскировать старое значение четвертого символа из значения, хранящегося в регистре, "или" в новом, а затем сохраните измененное слово. Не менее шести машинных инструкций. Обычно они относятся к подпрограмме, поэтому каждое сохранение или выборка одного символа включает накладные расходы на вызов подпрограммы и возврат. С помощью байтовой адресации этого можно добиться одной инструкцией: сохранить этот код символа по этому байтовому адресу. Текстовые программы легче писать, они меньше по размеру и работают быстрее.

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