Байтовая адресация
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2017 г. ) |
Байтовая адресация в аппаратных архитектурах поддерживает доступ к отдельным байтам . Компьютеры с байтовой адресацией иногда называют байтовыми машинами , в отличие от архитектур с пословной адресацией , текстовыми машинами , которые обращаются к данным по словам . [1] [2]
Фон
[ редактировать ]Базовой единицей цифровой памяти является бит , в котором хранится один 0 или 1. Многие распространенные архитектуры набора команд могут одновременно адресовать более 8 бит данных. Например, 32-битные процессоры x86 имеют 32-битные регистры общего назначения и могут обрабатывать 32-битные (4-байтовые) данные в отдельных инструкциях. Однако данные в памяти могут иметь разную длину. Наборы инструкций, поддерживающие байтовую адресацию, поддерживают доступ к данным в единицах, которые уже длины слова. Восьмибитный процессор, такой как Intel 8008, адресует восемь бит, но, поскольку это полная ширина аккумулятора и других регистров, его можно рассматривать как с байтовой адресацией, так и с словесной адресацией. 32-битные процессоры x86, которые адресуют память 8-битными блоками, но имеют 32-битные регистры общего назначения и могут работать с 32-битными элементами с помощью одной инструкции, являются байт-адресуемыми.
Преимущество словной адресации состоит в том, что при том же количестве бит можно адресовать больший объем памяти. IBM 7094 имеет 15-битные адреса, поэтому может адресовать 32 768 слов по 36 бит. Машины часто имели полный набор адресуемой памяти. Адресация 32 768 байт по 6 бит была бы гораздо менее полезной для научных и инженерных пользователей. Или рассмотрим 32-битные процессоры x86. Их 32-битные линейные адреса могут адресовать 4 миллиарда различных объектов. Используя словесную адресацию, 32-битный процессор мог адресовать 4 гигаслова; или 16 гигабайт при использовании современного 8-битного байта. Если бы 386 и его преемники использовали словесную адресацию, ученые, инженеры и геймеры могли бы запускать программы, которые были бы в 4 раза больше на 32-битных машинах. Однако обработка текста, рендеринг HTML и все другие текстовые приложения работали бы медленнее.
Когда компьютеры были настолько дорогими, что их использовали только или в основном в науке и технике, очевидным способом была адресация по словам. Поскольку использование компьютеров для обработки текста стало экономически выгодным, разработчики оборудования перешли к байтовой адресации.
Чтобы проиллюстрировать, почему байтовая адресация полезна, рассмотрим IBM 7094 , который адресуется по словам и не имеет понятия байта. Он имеет 36-битные слова и хранит шестибитные коды символов по шесть в слове. Чтобы изменить 16-й символ в строке, программа должна определить, что это четвертый символ третьего слова в строке, извлечь третье слово, замаскировать старое значение четвертого символа из значения, хранящегося в регистре, побитно или в новом, а затем сохраните измененное слово. Не менее шести машинных инструкций. Обычно они относятся к подпрограмме, поэтому каждое сохранение или выборка одного символа включает в себя накладные расходы на вызов подпрограммы и возврат. При байтовой адресации этого можно добиться с помощью одной инструкции: сохранить этот код символа по этому байтовому адресу. Текстовые программы легче писать, они меньше по размеру и работают быстрее.
Гибридные системы
[ редактировать ]Некоторые системы со словной адресацией , такие как PDP-6/10 и серии GE-600 / Honeywell 6000 , имеют специальные механизмы для эффективного доступа к байтам.
В PDP-6/10 специальные инструкции оперировали указателем байта , который включал адрес слова, битовое смещение и разрядность. ЛДБ / Инструкции DPB загружают или сохраняют один байт, Инструкция IBP увеличила указатель байта, а ИЛДБ / Инструкции IDPB увеличивали указатель байта, а затем загружали или сохраняли следующий байт. Эти инструкции могут работать с битовыми полями произвольной ширины. [3] : 2-85–2-89 Программы воспользовались этой гибкостью: те, кому не требовались строчные буквы, использовали ограниченный набор символов из 6-битных байтов для эффективности ; наиболее используемый 7-битный ASCII , упакованный по 5 в слово с одним неиспользуемым битом; а реализация C использовала 9-битные байты, потому что C требует, чтобы вся память была с байтовой адресацией.
На машинах GE/Honeywell специальные режимы косвенной адресации могли использоваться для большинства типов инструкций и работать с байтовым указателем, который мог работать как с 6-битными, так и с 9-битными байтами. [4]
Ни одна из этих машин изначально не имела прямой машинной поддержки произвольного доступа к байтам; настройка указателя байта так, чтобы он указывал на N байтов до или после байта, на который он в данный момент указывал, требовала последовательности нескольких инструкций. Модель KL10 PDP-10 расширила возможности Инструкция IBP станет инструкцией «регулировки байтового указателя», ADJBP , который может корректировать указатель байта на произвольное количество байтов. [3] : 2-89–2-91
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Вортмашина» (на немецком языке). Архивировано из оригинала 9 апреля 2017 г. Проверено 9 апреля 2017 г.
- ^ Хансен, HR (1986). Бизнес-информатика (на немецком языке). Том I (5-е изд.). Штутгарт, Германия: Густав Фишер. п. 125.
- ^ Jump up to: а б Справочное руководство по процессору DECsystem-10/DECSYSTEM-20 (PDF) . Корпорация цифрового оборудования . Июнь 1982 г. AD-H391A-T1.
- ^ Справочное руководство по программированию GE-625/635 (PDF) . Дженерал Электрик . Июль 1969. стр. 169, 171–172.