Нумерация полей памяти


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

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

Нумерация бит и байт может производиться или со старших разрядов, или с младших разрядов (рис. 3.2).

 

Номера байт
  0 7 Номера бит
  Байт Байт
  0 7 8 15 Номера бит
  Старший байт Младший байт Слово
0 7 8 15 16 23 24 31 Номера бит
Старший байт     Младший байт Двойное слово
а) нумерация бит и байт со старших разрядов к младшим
Номера байт
7 0 Номера бит
  Байт Байт
  15 8 7 0 Номера бит
  Старший байт Младший байт Слово
31 24 23 16 15 8 7 0 Номера бит
Старший байт     Младший байт Двойное слово
b) нумерация бит и байт с младших разрядов к старшим
                   

Рис.3.2. Структуры данных и нумерации бит и байт.

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

Нумерация бит и байт с младших разрядов (рис. 3.2 b).При использовании нумерации бит и байт в многобайтном слове с младших разрядов, при последовательном выборе из памяти объекты на обработку поступают с младших байт и младшими разрядами "вперед". Это нумерация с младших разрядов. Распространение такой нумерации началось с появлением мини- и микропроцессоров. При последовательной (бит за битом) обработке цифровых данных для простейших арифметических операций (сложение/вычитание) это обеспечивало выигрыш в аппаратных средствах. Кроме того, при такой нумерации возрастание номеров бит совпадает с возрастанием их разрядных весов.

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

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

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

 

  Старшие байты в слове Младшие байты в слове  
Адреса слов Нечетные адреса байтов Содержимое байтов Четные адреса байтов Содержимое байтов  
a b Слово ab
c d Слово cd
Структуры словарной памяти с нумерацией байт со старших разрядов
Адреса байт  
  b a d c  
  Многобайтовый регистр  
 
             

Рис 3.3. Пример передачи могобайтового поля из памяти, с нумерацией начиная с младших разрядов, в регистр с нумерацией со старших разрядов

При переносе последовательности символов из памяти, с нумерацией начиная с младших разрядов, в регистр с нумерацией с младших разрядов также происходит перестановка, но уже слов в каждом двойном слове (рис.3.4.).

 

  Старшие байты в слове Младшие байты в слове  
Адреса слов Нечетные адреса байтов Содержимое байтов Четные адреса байтов Содержимое байтов  
a b Слово ab
c d Слово cd
Структуры словарной памяти с нумерацией байт с младших разрядов
Адреса байт  
  c d a b  
  Многобайтовый регистр  
 
             

Рис 3.4. Пример передачи могобайтового поля из памяти, с нумерацией начиная с младших разрядов, в регистр с нумерацией с младших разрядов

 

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

Например, в архитектуре PA-RISC корпорации HP (Hewlett Packard) предусмотрен такой программно управляемый обмен данными. Упорядочение байтов (к старшим или к младшим адресам) при записи и чтении определяется битом E в слове состояния процессора (PSW).

При Е = 0 загрузка многобайтного объекта упорядочивается, по терминологии фирмы, "к старшим адресам". При этом младший байт в памяти соответствует старшему байту в регистре (левая нумерация).

При Е = 1 загрузка многобайтного объекта упорядочивается "к младшим адресам". При этом младший байт в памяти соответствует младшему байту в регистре (правая нумерация).

Для этой же цели в МП Intel (начиная с 486) используется команда SWAP перестановки байт в регистре. Команда переставляет байты в четырех байтном регистре (первый байт с четвертым и второй байт с третьим).

Вопросы для самопроверки:

1. Байтовая ориентация памяти.

2. Расположение программного объекта в целочисленных границах.

3. Основные проблемы расположения программных объектов в нецелочисленных границах.

4. Адресация многобайтовых объектов в памяти.

5. Основные преимущества обратной нумерации байт в многобайтных программных объектах.

6. Основные недостатки обратной нумерации байт в многобайтных программных объектах.

 



Дата добавления: 2021-01-26; просмотров: 455;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.