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

ZIP архив

Текст

61) Дополнительное к авт. сви 22) Заявлено 17.08.76 398613/18 1) М. Кл. 15/О рисоеднненнем заявкиосударатаенный немнт СССР аа делам изобретений н отнритнй(Г 2) Авторы изобретенн аявитель 54) УСТРОЙСТ ПЕРЕДЛЯ ОБРАБОТКННОЙ ДЛИНЫ 2рована на обработку информации полны-ми словами, содержащими по четыребайта в слове. Наличие однобайтно об.рабатываюшей схемы в устройстве является вынужденной мерой, так как об работка полей переменной длины наполнословном оборудовании вызываетизвестные трудности, связанные с пробдемами компоновки исходных операндов.Операнды могут начинаться с любого О байта в оперативкой памяти и содержатьлюбое количество байтов в пределах258, причем начала полей обоих операндов в поеделах слова не совпадают,Для обработки полей переменной длины 5 необходимо выравнивание операндов пограницам, освобождение от "лишней"информации и т.п. операции подготовки.Применение однэбайтной обрабатывакьшей схемы в известном устройстве позволяет избавиться эт операций подготовки, но замедляет процесс обработкиприблизительно в четыре раза Крометого, дополнительно введены побайтные Изобретение относится к вычислительной технике, в частности к устройствам для обработки данных переменной длины, и может быть использовано при проектировании процессоров цифровых вычислительных машин.Известно устройство для обработки данных переменной длины, содержащее блок памяти, схему однобайтовых логических операций, первый вход которой подключен к четырем регистрам процессора, а второй вход к пятому регистру, управляющий вход подключен к двум счетчикам и регистру операций, выход соединен с первым, третьим, четвертым, пятым и шестым регистрами и входом блока памяти 11.Устройство осушествляет обработку полей переменной длины при выполнении логических операций. Обработка вы- полняется пэбайтно, одновременно обрабатывается только по одному байту операндов, хотя структура процессора я оперативной памяти модели ориентиКэнтарев, Г. И. Кренгель, И. Шетинин, В. Я. Кремлев . Ярмухаметовсвязи регистров со схемой обработки до 7 байтных связей), коммутатор входа, специальные микроприказы управления, Схема однобайтной обработки является инородным телэм в процессоре, нарушает регулчрность структуры, затрудняет реализацию процессора на больших интегральных схемах, ухудшает надежность,Известно также устройство для обработки данных, содержащее блок пакити, арифметическо-логическое устройство, разбитое на схемы, которые коммутируются схемой задания конфигурации, распределитель слов, связанный с кодовой шиной, блэк разбивки секций, распределитель символов, связанный через кодовую шину символа с блоком формирования символов, который подключен к блоку разбивки секций 2. 6 этом, устройстве логическая обработка выполняется также посимвольно, нэ в обработке участву 1 от несколько секций арифметическо-логического устройства. Информация из распределителя символов по кодовым шинам символа поступает на блок формирования символов, который через блок разбивки секций организует обьединение соответствующих секций арифметического и логического устройства для работы с символами, поступающими на эти секции с блока формирования символов, С этих секций обработанная информация поступает на блок формирования символов и кодовые шины символов на распределитель символов для пересылки ее в нужное устройство процессора и блок памяти.Это устройство имеет сугдественные преимушества перед предыдущим устройством, так как логическая обработка символов производится с использованием основного оборудования, а не на специальном оборудовании. Однако, обладая более высоким коэффициентом использования оборудования, оно не обладает высоким быстродействием, так как обработка производится посимвольно, т,е, процесс обработки одного слова разбивается на четыре этапа, выполняемых последовательно.Р 1 аиболее близким к изэбретению потехнической сущности и достигаемому положительному результату является устройство для обработки данных переменной длины, содержащее блок памяти, ,первый вход которого соединен с выходом арифметико-логического блока, коммутатор, первый и второй выходы которого соединены соответственно с первым и втэоым ьхэдамн арифметикэ-лэ: гического блэка, блок упраьпения, выход которого соединен с первым входомкоммутатора, вторым ьхэдэм блока патретьим входом арифме; икэ-лс- гического блэка, первую и вторую шины обмена, причем третий вход и первый выход блэка памяти, первые вход и выход устройства соединены с первойшиной обмена, четвертый ьход и втс- рой выход блэка памяти, вторые входи выход устройства соединены с второй шиной обмена, первый и второй входы - выходы комм-татора соединены соответственно с первой и второй шинами обмена 3.Однако полуслэвный формат пересылок значительно снижает быстродействие устройства, так как цикл обр.ццения в оперативную память обычно в 3-4 раза длительнее внутреннего цикла устройства, т.е. устрой=1 во будет простаивать в ожидании информации из памяти. Обращение в память за полным словом выгоднее, так как позволяет более пэлнэ использовать время обращения для загрузки оборудования обработкой, полученной в предыдуцем такте информацииНаличие байтной обработки символов также значительно снижает быстродействие устройства, вследствие расчле-. нения процесса обработки на выполняемые последовательные циклы 1 Кэмпэщф новка информации на входах арнфметико-логическогэ блока сводится к подключению правогэ или левого байтов. Расширение данной структуры до четырех байтов значительно усложнило бы как аппаратуру коммутатора, так и схемы управления имиеЦель изобретения - повьциение быстродействия.Достигается это тем, что устройство содержит регистр сдвига, узел управления сдвигом, блок формирования параметров сдвига, регистр маски и блок формирования маски, причем пер= вые ьходы блока формирования параметров сдвига и регистра маски соединены с первой шиной обмена, вторые входы блока формирования параметров сдвига и регистра маски соединены свторой шиной обмена, первый вход ивыход блэка формирования маски соединены соответственно с выходом ре гистра маски и с вторым входом коммутатора, выход блока формирования параметров сдвига соединен с первым входом узла управления сдвигом, выход которого соединен с входом регистра сдвига, 5 первый и второй входы - выходы которого соединены соответственно с первой и второй шинами обмена, а вторые входы блока формирования маски и узла управления сдвигом и третьи входы блока 1 О формирования параметров сдвига и регистра сдвига соединены с выходом блока управления.На фиг. 1 представлена структурная схема устройства; на фиг. 2 - пример 1% расположения данных переменной длины в оперативной памяти ЦВМ.Устройство для обработки данных переменной длины содержит арифметикологический блок 1 с выходом 2, блок памяти 3, коммутатор 4, первую шину обмена 5, вторую шину обмена 6, регистр сдвига 7, входы 8,9, выходы 10, 11, блок 12 формирования параметров сдвига, регистр маски 13, блок 142 э формирования маски, узел 15 управления сдвигом, блок управления 16, входы- выходы 17, 18 коммутатора, входы- выходы 19, 20 регистра сдвига.Данные переменной длины, могут быть расположены следующим образом (см. фиг. 2):21 - первое слово операнда, 22 - первый байт поля данных, 23 - лишние байты, 24 - последнее слово операнда, 25 - последние байты3 поля данных, 26 - второй операнд, коды "ОО", 01", "10", "11" - коды байтов.Адресуемой единицей информации в оперативной памяти ЦВМ является байтбО группа двоичных разрядов, сопровождаемая контрольным разрядом. Одно слово оперативной памяти содержит четыре байта, причем, поле данных может начинаться и заканчиваться на любом бай 45 те в пределах слова. При обращении за операндами информация извлекается из памяти целыми словами, и,если операнд начинается (или заканчивается) в прьЮ делах данного слова, то в устройство обработки поступыот как нужные байты, так и лишние байты, относящиеся к другим операциям (см фиг. 2).Поле данных определяется, например, адресом первого байта поля и его длиной (количеством байтов в поде), либо адресом первого и последнего байтов поля. При любом виде адресации фигу 984 6рирует понятие "адрес байта". Адрес байта складывается из адреса слова памяти и позиции байта внутри слова (кода байта) и определяется выражениемАБ= АС+КБ,где АБ - адрес байта;АС - адрес слова;КБ - код байта.Как правило, при обращении в память за словом последний компонентадреса (КБ) игнорируется.Код байта может принять численное значение 00, 01, 10 и 11, определяя соответственно первый, второй,третий и четвертый байты в слове.Коды байтов показаны на фиг. 2. Вэтом примере код крайнего левого байта первого операнда будет "01, кодкрайнего правого байта того.же операнда будет также "01, код крайнего левого байта второго операнда "10", аего крайнего правого байта "00".Очевидно, что перед пословицей обработкой операндов, они должны бьггьрасположены так, чтобы соответствующие байты операндов занимали одноименные позиции в слове, т.е. операнды должны бьггь выравнены. Большинство систем команд современных ЭВМуказывают только адреса исходных операндов, определяя адрес записи результата косвенно. Например, в системекоманд ЕС ЭВМ результат долженбыть записан по адресу первого операнда, т.е. занять его место в памятипосле обработки. Поэтому выгодно выравнивать один операнд по другому, например, по первому, чтобы результатоказался автоматически в той позиции,в которой он должен бьггь записан впамять, Как видно из фиг. 2, процессвыравнивания может бьггь осуществленпутем сдвига вправо всех байтов одного операнда до тех пор, пока крайнийправый байт этого операнда не займетпозицию крайнего правого байта другогооперанда при выравнивании по правойгранице или аналогичным процессомсдвига влево при выравнивании по левой границе, причем величина сдвигаопределяется разностью кодов байтов,а направление - их взаимным расположением,Устройство работает следующим образом.Адреса данньи, например адресакрайних правых байтов обоих операндов,.7 648 называются из блока памяти Э ца шццу обмена 5 и ца шину обмена 6. Входы блока 12 параметров сдвига ц регистра маски 13 подключены к тем разрядам шиц обмена 5 и 6, куда поступают коды байтов (КБ) при пересылке адресов по шинам обмена. По сигналу из блока управления 16 упомянутые коды байтов принимаются в блок 12 формирований параметров сдвига, где по взаимному расположению операндов ц разностц между кодами байтов вычисляется параметр сдвига и его направление согласно табл. 1. По сигналу из блокауправления 16 параметр сдвига, опре деляющий направление сдвига и егэ величину, подается на узел 15 управления сдвигом, где хранится до конца обработки, Параметр сдвига вычисляется относительно одного цз адресов, например адреса, вызываемого на шину обмена 5, При выравнивании по первому операнду его адрес вызывается на шину обмена 5, а адр" выравниваемого операнда на шину обмена 6. Следует отметить, что при выравнивании по правой границе ца шины обмена 5, 6 подаются адреса крайних правых байтов, а при выравнивании по левой границе (например, для операции сравнения) на шины обмена 5, 6 подаются адреса крайних левых байтов.Адрес второго операнда по одному из выходов, например 11, поступает в память ЦВМ (на фиг. 1 не показана). Извлеченное из памяти ЦВМ слово поступает на шины обмена 5, 6 пэ входу, например 8, ц записывается в блэк памяти 3. Адрес продвигается ца величину, равную количеству байтов в слове, и производится новый запрос за следующим словом данных, Полученное цз памяти ЦВМ слово вместе со словом, полученным в предыдущем такте, вызыва ся на шины обмена 5 ц 6, эти два слова сдвигаются на регистре сдвига 7 по сигналам из узла 15 управления сдвигом, который вырабатывает последовательность сигналов для обеспечения нужного сдвига, согласно зафиксированного параметра сдвига. Результат сдвига записывается в блок памяти 3. Тем временем производится обращение за следуюцим словом и т.д. пока все поле второго операнда не будет извлечено из памяти, выравнено по первому операнду и расположено в блоке памяти 3. Если длинный операнд не помещается в блоке памяти 3, выравнивание может бытьвыполнено пэ частям.Пэ экэцчацци извлечения цз памятиЦВМ ц выравнивания второго операнда5 начинается извлечение цз памяти ЦВМпервэгэ операнда пэ словам.Полученное из памяти ЦВМ по одному цз входов 18 илц 19 слово первогооперанда вызывается на одну из шин1 О обмена, например 5, а ца шину обмена6 из блока памяти 3 вызывается соответствующее ему слово второгооперанда. Блоком управления 16 арифметцкэ-лэгическэгэ блока 1 задается5 вид выполняемой операции. Через коммутатор 4 операнды с шин обмена 5ц 6 поступают на входы арцфметикэлэгическэ го бл ока 1, который преэбр азует операнды, согласно заданной блэкэм управления 16 функции. Результатпреобразования с выхода 2 арифметцкологцческэго блэка 1 записывается вблок памяти Э.Для того, чтобы в преобразэванияхне участвовала "лишняя" информация,извлеченная из памяти ЦВМ вместес цужнои в составе одного словаоперативной памяти, на поступаюшуючерез коммутатор 4 информацию накладывается байтная маска.Выработка байтной маски производится блоком 14 формирования маски в зависимости от кодов, присутствующих нарегистре маски 13. Наложение маскица информацию производится путем логцческэго умножения (функция "И") данных, передаваемых пэ шинам обмена5 ц 6, ц маскцруюьцей информации, вырабатываемой блэкэм 14 формированияомаски. Операция наложения маски осуществляется коммутатором 4 по сигналу цз блока управлецця 16.Виды масок приведены в табл. 2.Как видно из таблицы применяются45трц класса масок, Первый класс задается кодом 00 ца шине обмена 6.Маска предназначена для освобожденияэт "лишней" информации слева от обрабатываемого поля. Вид маски определя 50ется кодом крайнего левого байта операнда, пэступшэшего ца регистр маски13 с шины обмена 5,Второй класс масок задается кодом55 10" на шине обмена 6 и предназначендля освобождения от "лишней" информации справа от обрабатываемого поля.Вид маски определяется кодом крайнегоправого байта операнда.10 648984 Третий класс масок предназначендля выделения левой части одного операнда, выходящей за пределы другого операнда, если длина операндов разная, Выделенная часть операнда анализируется на зна чимость. Класс масок задается кодом"01", а вид маски - кодом крайнеголевого байта более короткого операнда,Возможнэсти байтного маскированияне исчерпываются приведенными примерами. Для простоты здесь рассмотреноприменение первого и второго классамасок,Загрузка регистра маски 13 производится в процессе пересылки адреса Иоперанда по шине обмена 5. В этовремя на шину обмена 6 вызываетсякод, соответствующий тому или иномуклассу масок. Наложение масок на передаваемую по шинам обмена 5, 6 ин Оформацию осуществляется по сигналамиз блока управления 16 в момент передачи по шинам обмена 5, 6 крайнихправых и крайних левых слов операнда,Таким образом, поступившая из памяти Таблица 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 О 1 1 1 1 1 11 0 О1 0 О 1 1 О 0 1 1 0 О 1 1 0 1 0 1 О 1 О 1 О 1 1 О 1 0 1 БВМ лишняя" информация не участвует в обработке.Результат обработки из блока памяти 3 записывается в память ЦВМ.Предлагаемое устройство имеет значительно большее быстродействие, чем известное, так как обработка данных осуществляется целыми словами, а не байтами. Как было указано выше, внут ренний цикл процессора ц 3-4 раза меньше цикла оперативной памяти. Поэтому процесс выравнивания одного операнда по другому операнду не требует дополнительного времени, так как производится "на фоне" выборки очередного слова. Первое слово вторэго операнда выравнивается вэ время выборки второго, второе слово выравнивается во время выборки третьего и т.д. Выравнпвапие последнего слова вторэгэ операнда производится во время выборки первого слова первого операнда, Действие над первыми словами операндов произвэднтся во время выборки второго слова первого операнда и т.д. Нет сдвигаВправо на 1 байтВправо на 2 байтаВправо на 3 бантаВлево на 1 байтНет сдвигаВправо на 1 байтВправо на 2 байтаВлево на 2 байтаВлево на 1 байтНет сдвигаВправо на 1 байтВлево на 3 байтаВлево на 2 байтаВлево на 1 байтНет сдвига12 Т аблида 2 Код байтапо шине обмена 5 Класс масок РР ГР ГГ РР РГ ГР ОО РР 00 00 00 00 ГР ОО РР РР ОО 00 00 00 ОО Оо РР ОО РР ГГ ОО РР ОО ОО ОО ОО РР ОО РГ РР ГГ ГР ГГ РР ОО ОО РГ ООРР ГГ ГР О О 0 1 О О О 1 О 0 1 0 0 0 1 1 1 О 0 0 3, , О 0 3, 3. 0 1 0 1 О 1 1 О 1 О 0 О 1 0 1 О 1 1 О О 1 1 3. Формула изобретения Устройство для обработки данных переменной длийы, содержащее блок памяти, первый ьход которого соединен с выходом арифметико-логического блока, коммутатор, первый и второй выходы котОрого соединены сООтВетстВенно с первым и вторым ьходами арнфметико-логического блока, блок управления, выход которого соединен с первым ьходом коммутатора, вторым входом блока памяти и третьим входом арифметикологического блока, первую и вторую шины обмена, причем третий вход и первый выход блока памяти, первые вход и выход устройства соединены с перВой шиной обмена, четвертый вход и второй выход блока памяти, вторые ьход и выход устройства соединены с второй шиной обмена, первый и второй входы-выходы коммутатора соединены соответственно с первой и второй шинами обмена, о т л и ч а ю щ е е с я тем, что, с целью повышения быстродействия, оно содержит регистр сдвига, узел управления сдвигом, блок формирования параметров сдвига, регистр маски и блок формирования маски, причем первые входы блока формйрования параВид маски(шестнадцатиричное значение) метров сдвига и регистра маски соедииены с первой шиной обмена, вторыевходы блока формирования параметровсдвига и регистре маски соединены свторой шиной обмена, первый вход и выход блока формирования маски соединены соответственно с выходом регистрамаски и с вторым входом коммутатора,выход блока формирования параметровсдвига соединен с первым входом узда3 ф управления сдвигом, выход которогосоединен с входом регистра сдвига, первый и второй входы-выходы которогосоединены соответственно с первой ивторой шинами обмена, а вторые входыблока формирования маски и узле уйравления сдвигом и третьи входы блокаформирования параметров сдвига и регистра сдвига соединены с выходомблокауправления.40Истопники информации, принятые вовнимание при экспертизе1. Хассон С. Микропрограммноеуправление, вып. 2, М., "Мир", 1974,Яс. 158-162,2. Авторское свидетельство СССРй 305477, кл. Я 06 Р 9/00, 1971.3. Флорес А. Органиэация вычислительных машин, МфМир, 1972,с. 391, рпс. 10.5.1.648984 Составитель И. ХазоваРедактор Е. Гончар Техред Ю, Ниймет Корректор Д,ниченк аказ 752/ иал ППП Патент", г, Ужгород ул. Проектн Тираж 779 ЦНИИПИ Государствен но делам изобрете035, Москва, Ж, Ра Подписноего комитета СССРй и открытийская наб., д. 4/5

Смотреть

Заявка

2398613, 17.08.1976

ПРЕДПРИЯТИЕ ПЯ В-2892, ПРЕДПРИЯТИЕ ПЯ А-3886

ГУСЕВ ВАЛЕРИЙ ФЕДОРОВИЧ, ИВАНОВ ГЕННАДИЙ НИКОЛАЕВИЧ, КОНТАРЕВ ВЛАДИМИР ЯКОВЛЕВИЧ, КРЕНГЕЛЬ ГЕНРИХ ИСАЕВИЧ, ПОЛИВОДА ЕВГЕНИЙ ОЛЕГОВИЧ, СКВОРЦОВ АЛЕКСАНДР НИКОЛАЕВИЧ, ЩЕТИНИН ЮРИЙ ИВАНОВИЧ, КРЕМЛЕВ ВЯЧЕСЛАВ ЯКОВЛЕВИЧ, ШАГИВАЛЕЕВ МАНСУР ЗАКИРОВИЧ, ЯРМУХАМЕТОВ АЗАТ УСМАНОВИЧ

МПК / Метки

МПК: G06F 15/00

Метки: данных, длины, переменной

Опубликовано: 25.02.1979

Код ссылки

<a href="https://patents.su/8-648984-ustrojjstvo-dlya-obrabotki-dannykh-peremennojj-dliny.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для обработки данных переменной длины</a>

Похожие патенты