Устройство для обработки данных переменной длины

Иллюстрации

Показать все

Реферат

 

Сова Соввтооа

Соцмалмстммескмх

Исвубпик

«648984 (6l) Дополнительное к авт. свид-ву (22) Заявлено 17.08.76(21) 2398613/18-24 с присоединением заявки № (23) Приоритет

Опубликовано 25.02.79.Бюллетень № 7

Дата опубликования описания 28.02.79

2 (51) М. Кл.

G 06 F 15/00

Всудерстеенньй немнтет

СССР а делам нзобретеннй н отнритнй (53) УДК 381.325. (088.8) В. Ф. Гусев, Г. H. Иванов, Б. Я. Кэнтарев, Г. И. Кренгель, Е. О. Поливода, A. H. Скворцов, Ю. И. Шетинин, B. Я. Кремлев, М. 3. Шагивалеев и A. У. Ярмухаметов (72) Авторы изобретения (71) Заявитель (54) УСТРОЙСТВО ДЛЯ ОЬРАВОтКИ ДАННЫХ

ПЕРЕМЕННОЙ ДЛИНЫ

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

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

Устройство осуптествляет обработку полей переменной длины при выполнении логических операций. Обработка вы полняется побайтно, одновременно обрабатывается только по одному байту операндов, хотя структура процессора я оперативной памяти модели ориенти2 рована HB обработку информации полны- ми словами, содержащими по четыре байта в слове. Наличие однобайтно об». рабатывыощей схемы в устройстве является вынужденной мерой, так как об5 работка полей переменной длины на полнословном оборудовании вызывает известные трудности, связанные с проблемами компоновки исходных операндов.

Операнды могут начинаться с любого

10 байта в оперативной памяти и содержать любое количество байтов в пределах

258, причем начала полей обоих опермщов в поеделах слова не совпадают.

Для обработки полей переменной длины

15 необходимо выравнивание операндов по границам, освобождение от "лишней" информации и т.п. операции подготовки.

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

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

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

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

Наиболее близким к изэбретению по технической сущности и достигаемому положительному результату является устройство для обработки данных переменной длины, содержащее блэк памяти,,первый вход которого соединен с выхэ;: дом арифметикологического блока, ком мутатор, первый и второй вьгхэды которого соединены сээтветственнэ c первым и вторым входами арифметикэ-лэ= гического блокað блок управленияа выход которого соединен с первым входом к оммут BT o pa BT DpbIM вх эд эм бл эк а п имяти H третьим в 4эдэм арифметикэлс гического блока, первую и вторую шины обмена, причем третий вход и первьп выход блока памяги, первые вход и выход устройства соединены с первой шиной обмена, четвертый вход и второй выход блока памяти, вторые вход и выход устройства соединены с второй шиной обмена, первый и второй входы — выходы комм-татора соединены соответственно с первой и второй шинами обмена (3).

0pHGKo полуслэвный формат пересылок значительно сни;кает быстродействие устройства, так как цикл обрушения в оперативную память обычно в 3 1 раза длительнее внутреннего цикла устройства, т.е. устроистBD будет простаивать в ожидании информации из памяти. Обращение в память за полным словом выгоднее, так как позволяет бэлее полно использовать время обращения для загрузки оборудования обработкой, полученной в предыдухцем такте информации.

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

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

Бель изобретения — пэвьциение быстродействия.

Достигается это тем, что устройство содер>кит регистр сдвига, узел управления сдвигом, блэк формирования параметров сдвига, регистр маски и блок формирования маски, причем пер= вые входы блока формирования параметров сдвига и регистра маски соединены с первой шиной обмена, вторые входы блока формирования параметров сдвига и регистра маски соединены с второй шиной обмена, первый вход и выход блэка формирования маски соединены соответственно с выходом регистра маски и с вторым входом коммутатора, Bblxoll блока формирования параметров сдвига соединен с первым входом узла управления сдвигом, выход которого соединен с входом регистра сдвига, первый и второй входы — выходы которого соединены соответственно с первой и второй шинами обмена, а вторые входы блока формирования маски и узла управления сдвигом и третьи входы блока 10 формирования параметров сдвига и регистра сдвига соединены с выходом блока управления.

На фиг. 1 представлена структурная схема устройства; на фиг. 2 — пример 1$ расположения данных переменной длины в оперативной памяти UBM.

Устройство для обработки данных переменной длины содержит арифметикологический блок 1 с выходом 2, блок памяти 3, коммутатор 4, первую шину обмена 5, вторую шину обмена 6, регистр сдвига 7, входы 8,9, выходы 10, ll, блок 12 формирования параметров сдвига, регистр маски 13, блок 14

25 формирования маски, узел 15 управления сдвигом, блок управления 16, входывыходы 17, 18 коммутатора, входывыходы 19, 20 регистра сдвига.

Данные переменной длины, могут быть расположены следующим образом (см. фиг. 2): 21 — первое слово операнда, 22 — первый байт поля данных, 23 — лишние байты, 24 - последнее слово операнда, 25 - последние байты

3$ поля данных, 26 - второй операнд, коды "00", 01 "10, "11 — коды байтов.

Адресуемой единицей информации в оперативной памяти БВМ является байт40 группа двоичных разрядов, сопровождаемая контрольным разрядом. Одно слово . оперативной памяти содержит четыре байта, причем, поле данных может начинаться и заканчиваться на любом бай45 те в пределах слова. При обращении за операндами информация извлекается из памяти целыми словами, и,если операнд начинается (или заканчивается) в пре50 делах данного слова, то в устройство обработки поступыот как нужные байты, так и лишние байты, относящиеся к другим операциям (см фиг. 2).

Поле данных определяется, например, адресом первого байта поля и его длиной (количеством байтов в поле), либо адресом первого и последнего байтов поля. При любом виде адресации фигу984 6 рирует понятие "адрес байта". Адрес байта складывается из адреса слова памяти и позиции байта внутри слова (кода байта) и определяется выражением

АБ АС+КБ, где АБ — адрес байта;

AC - адрес слова, КБ — код байта.

Как правило, при обращении в память за словом последний компонент адреса (КБ} игнорируется.

Код байта может принять численное значение 00, 01, 10 и 11, определяя соответственно первый, второй, третий и четвертый байты в слове.

Коды байтов показаны на фиг. 2. В этом примере код крайнего левого байта первого операнда будет "01 код крайнего правого байта того.же операнда будет также "01 код крайнего левого байта второго операнда "10", а его крайнего правого байта "00".

Очевидно, что перед пословцэ обработкой операндов, они должны бьггь расположены так, чтобы соответствующие байты операндов занимали одноименные позиции в слове, т.е. операнды должны бьггь выравнены. Большинст во систем команд современных ЭВМ указывают только адреса исходных операндов, определяя адрес записи результата косвенно. Например, в системе команд EC ЭВМ результат должен быть записан по адресу первого операнда, т.е. занять его место в памяти после обработки. Поэтому выгодно выравнивать один операнд по другому, например, по первому, чтобы результат оказался автоматически в той позиции, в которой он должен бьггь записан в память. Как видно из фиг. 2 процесс выравнивания может быть осуществлен путем сдвига вправо всех байтов одного операнда до тех пор, пока крайний правый байт этого операнда не займет позицию крайнего правого байта другого операнда при выравнивании по правой границе или аналогичным процессом сдвига влево при выравнивании по ле вой границе, причем величина сдвига определяется разностью кодов байтов, а направление — их взаимным расположением.

Устройство работает следующим образом.

Адреса данных, например адреса крайних правых байтов обоих операндов, 7 648 называются из блока памяти 3 на шину обмена 5 и на шину обмена 6. Входы блока 12 параметров сдвига и регистра маски 13 подключены к тем разрядам шин обмена 5 и 6, куда поступают коды байтов (КБ) при пересылке адресов по шинам обмена. По сигналу из блока управления 16 упомянутые коды байтов принимаются в блок 12 формирований параметров сдвига, где по взаимному расположению операндов и разности между кодами байтов вычисляется параметр сдвига и его направление согласно табл. 1. По сигналу из блока управления 16 параметр сдвига, опре деляющий направление сдвига и его величину, подается на узел 15 управления сдвигом, где хранится до конца обработки. Параметр сдвига вычисляется относительно одного из адресов, например адреса, вызываемого на шину обмена

5. При выравнивании по первому операнду его адрес вызывается на шину обмена 5 а адр",, выравниваемого операнда на шину обмена 6. Следует отметить, что при выравнивании по правой границе на шины обмена 5, 6 подаются адреса крайних правых байтов, а при выравнивании по левой границе (например, для операции сравнения) на шины обмена 5, 6 подаются адреса крайних левых байтов.

Адрес второго операнда по одному из выходов, например 11, поступает в память LIBN (на фиг. 1 не показана).

Извлеченное из памяти UBM слово поступает на шины обмена 5, 6 по входу, например 8, и записывается в блок памяти 3. Адрес продвигается на величину, равную количеству байтов в слове, и производится новый запрос за следующим словом данных. Полученное из памяти UBN слово вместе со словом, полученным в предыдущем такте, вызыва ся на шины обмена 5 и 6, эти два слова сдвигаются на регистре сдвига 7 по сигналам из узла 15 управления сдвигом, который вырабатывает последовательность сигналов для обеспечения нужного сдвига, согласно зафиксированного параметра сдвига. Результат сдвига записывается в блок памяти 3. Тем временем производится обращение за следующим словом и т.д. пока все поле второго операнда не будет извлечено из памяти, выравнено пб первому операнду и расположено в блоке памяти 3. Если длинный операнд не помещается в блоке палити 3, выравнивание может быть выполнено по частям.

По окэнч анни извлечения из памяти

ИВМ и выравнивания второго операнда

5 начинается извлечение из памяти IBM первого операнда по словам.

Полученное из памяти UBM no одному из входов 18 или 19 слово первого операнда вызывается на одну из шин

1О обмена, например 5, а на шину обмена

6 из блока памяти 3 вызывается соответствующее ему слово второго операнда. Блоком управления 16 арифметико-логического блока 1 задается вид выполняемой операции. Через коммутатор 4 операнды с шин обмена 5 и 6 поступают на входы арифметикологическогоо бл ока 1, который преобр азует операнды, согласно заданной блоком управления 16 функции. Результат преобразования с выхода 2 арифметикологического блока 1 записывается в блок памяти Э.

Для того, чтобы в преобразованиях не участвовала "лишняя" информация, извлеченная из памяти UBN вместе с нужнои в составе одного слова оперативной памяти, на поступающую через коммутатор 4 информацию наклад ыв а ется 6 айтн ая мас к а.

Выработка байтной маски производится блоком 14 формирования маски в зависимости от кодов, присутствующих на регистре маски 13. Наложение маски на информацию производится путем логического умножения (функция И") данных, передаваемых по шинам обмена

5 и 6» и МасКН p "þtöeé информации, Вырабатываемой блоком 1 1 формирования о маски. Операция наложения маски осуществляется коммутатором 4 по сигналу из блока управления 16.

Виды масок приведены в табл. 2.

Как видно из таблицы применяются

45 три класса масок. Первый класс задается кодом 00 на шине обмена 6.

Маска предназначена для освобождения от лишней" информации слева от обрабатываемого поля. Вид маски определя50 ется кодом крайнего левого байта операнда, поступшощего на регистр маски

13 с шины обмена 5, Второй класс масок задается кодом

55 10" на шине обмена 6 и предназначен для освобождения от "лишней информации справа от обрабатываемого полы.

Вид маски определяется кодом крайнего правого байта операнда.

6489R4

Третий класс мвсок предназначен для выделения левой части одного операнда, выходящей за пределы другого опервнда, если длина операндов разная. Выделенная часть операнда анализируется на зна-5 чимость. Класс масок задается кодом

"01, а вид маски — кодом крайнего левого байта более короткого операнда, Возмож н эсти б вйтн о го маскиров а ни я не исчерпываются приведенными приме- 10 рами. Для простоты здесь рассмотрено применение первого и второго класса масок

Загрузка регистра маски 13 производится в процессе пересылки адреса 35 операнда по шине обмена 5. В этэ время на шину обмена 6 вызывается код, соответствующий тому или иному классу масок. Кало>кение масок на передаваемую по шинам обмена 5, 6 информацию осуществляется по сигналам из блока управления 16 в момент передачи по шинам обмена 5, 6 крайних правых и крайних левых слов операнда.

Таким образом, поступившая из памяти

Т а б л и ц а 1

0 0

0

0 1

Q 1

1 0

1 1

0

1

0

1

0

1

0

0

0

0

Q

0

Q

0

0

UBN лишняя информация не участвует в обработке.

Результат обработки из блока памяти

3 записывается в память UBN.

Предлагаемое устройство имеет значительно большее быстродействие, чем известное, так квк обработка данных осуществляется целыми словами, в не байтами. Как было указано выше, внут ренний цикл процессора ц 3-4 раза меньше цикла оперативной памяти. Поэтому процесс выравнивания одного операнда по другому операнду не требует дополнительного времени, так как производится "на фоне выборки очередного слова. Первое слово вторэго операнда выравнивается вэ время выборки второго, ВТорое слово выравнивается во время выборки третьего и т.д. Выравнивание последнего слова второго операнда производится во время выборки первого слова первого операнда. ,действие нвд первыми словами операндов произвэднтся во время выборки второго слова первого операнда и т.д.

Нет сдвига

Вправо на 1 байт

Вправо HB 2 байта

Вправо на 3 байта

Влево па 1 б йт

Нет сдвигa

Вправо на 1 байт

Вправо на 2 байта

Влево на 2 байта

Влево на 1 байт

Нет сдвига

Вправо на 1 байт

Вчевэ на 3 байта

Влево на 2 байта

Влево на 1 бвйт

Нет сдвига

Т аблида 2

Код байта по шине обмена 5

Класс масок

FF FF

FF FF

FF FF

ОО FF

00 00

00 00

FF 00

FP

00 00

ОО 00

ОО 00

FF ОО

FP FF оо гр

00 00

ОО 00

FF 00

FF ГУ

F7 FF

FF FF

00 00

FF ОО

FF

FF FF

0 О О 1

О О 0 1

0 0 1 О

О О 1 1

О О О

О 0 1

1 0 1 О

1 О 1 1

0 1 0 О

0 1 О 1

О 1 1 О

О 1 1

Формула изобретения

Устройство для обработки данных переменной длийы, содержашее блок памяти, первый ьход которого соединен с выходом арифметико-логического блока, коммутатор, первый и второй выхоДЫ КОТОРОГО СОЕДПНЕНЫ СООТВЕТСТВЕННО с первым и вторым ьходами арнфметико-логического блока, блок управления, выход которого соединен с первым ьходом коммутатора, вторым входом блока памяти и третьим ьходом арифметикологического блока, первую и вторую шины обмена, причем третий вход и первый выход блока памяти, первые вход и выход устройства соединены с первой шиной обмена, четвертый вход и второй выход блока памяти, вторые вход и выход устройства соединены с второй шиной обмена, первый и втОрОй входы-выходы коммутатора соединены соответственно с первой и второй шинами обмена, о т л и ч а ю щ е е с я тем, что, с целью повышения быстродействия, оно содержит регистр сдвига, узел управления сдвигом, блок формирования параметров сдвига, регистр маски и блок формирования маски, причем первые входы блока формйрования параВид маски (шестнадцатиричное значение) метров сдвига и регистра маски соеди иены с первой шиной обмена, вторые входы блока формирования параметров сдвига и регистра маски соединены с второй шиной обмена, первый вход и выход блока формирования маски соединены соответственно с выходом регистра маски и с вторым входом коммутатора, выход блока формирования параметров сдвига соединен с первым входом узла управления сдвигом, выход которого соединен с входом регистра сдвига, первый и второй входы-выходы которого соединены соответственно с первой и второй шинами обмена, а вторые входы блока формирования маски и узла уйравления сдвигом и третьи входы блока формирования параметров сдвига и регистра сдвига соединены с выходом блока управления.

4{)

Источники информации, принятые во внимание при экспертизе

1. Хассон С. Микропрограммное управление, вып. 2, М., "Мир", 1974

45 с. 158-162.

2. Авторское свидетельство СССР

Ж 305477, кл. G 06 Р 9/00, 1971.

3. Флорес А. Органиэация вычисли-: тельных машин,.М., Мир, 1972, с. 391, рпс. 10.5.1.

648984

Составитель И. Хазова

Редактор Е. Гончар Техред Ю. Ниймет Корректор Д. Мельниченко

Заказ 752/31

Тираж 779 Подписное

ПНИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб., д. 4/5

Филиал ППП Патент, r» Ужгород, ул. Проектная, 4