Обработка данных с помощью сопроцессора

Изобретение относится к системам обработки данных. Техническим результатом является повышение быстродействия. Система обработки данных содержит основной процессор и сопроцессор, включающий память, команды (USALD) загрузки, поступающие в сопроцессор, предназначены для загрузки изменяющегося значения данных после выравнивания, для задания операций обработки данных, осуществляемых над операндами в пределах загружаемых слов данных для формирования слов данных результата. Операции обработки обуславливают вычисление суммы абсолютных разностей для ряда значений байтов элементов изображения. Результат этого вычисления сохраняется в накапливающем регистре. 3 н. и 9 з.п. ф-лы, 7 ил.

 

Настоящее изобретение относится к системам обработки данных. Более конкретно, это изобретение относится к системам обработки данных, включающим в себя как основной процессор, так и сопроцессор.

Возможность создания систем обработки данных, включающих в себя как основной процессор, так и сопроцессор, известна. Примерами таких систем обработки данных являются системы, разрабатываемые фирмой ARM Limited, Кембридж, Англия, поставляющей такие основные процессоры, как ARM7 или ARM9, которые можно объединить с таким сопроцессором, как сопроцессор Piccolo, для выполнения таких функций, как специализированные операции цифровой обработки сигналов. В качестве других примеров сопроцессоров можно привести сопроцессоры для осуществления арифметических операций в режиме с плавающей точкой и т.д.

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

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

В одном аспекте настоящего изобретения предложено устройство для обработки данных, содержащее

основной процессор, реагирующий на команды программы для выполнения операций обработки данных, и

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

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

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

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

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

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

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

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

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

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

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

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

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

Ниже, лишь в качестве примера, приводится описание конкретного варианта осуществления изобретения со ссылками на чертежи, при этом:

на фиг.1 условно изображено желаемое вычисление суммы абсолютных значений;

на фиг.2 условно изображено сочетание основного процессора и сопроцессора;

на фиг.3 представлена схема последовательности операций, условно иллюстрирующая пример типа операций, которые может выполнять система, показанная на фиг.2;

на фиг.4 изображены три возможные команды загрузки в сопроцессор; и

на фиг.5-7 показаны дополнительные подробности сопроцессора в соответствии с одним возможным конкретным вариантом осуществления.

На фиг.1 изображен текущий блок 2 элементов изображения, для которого желательно найти наилучшее согласование в пределах опорного изображения. Этот текущий блок 2 элементов изображения содержит блок 8×8 из 8-битных значений байта элементов изображения. Этот текущий блок 2 элементов изображения сравнивают с эталонными блоками 4 элементов изображения, расположенными с различными векторными смещениями от текущего блока 2 элементов изображения. При каждом векторном смещении желательно провести тест на согласование, поэтому вычисляют выражение суммы абсолютных разностей, показанное на фиг.1. Это выражение определяет абсолютную разность между соответствующими значениями соответственных элементов изображения для обоих рассматриваемых блоков и отражает суммирование получаемых шестидесяти четырех значений абсолютных разностей. Хорошее согласование изображения в общем случае демонстрируется малым значением суммы абсолютных разностей. В пределах системы обработки изображений, например, системы, обеспечивающей обработку по стандарту типа MPEG, такое вычисление суммы абсолютных значений часто бывает необходимым и может приводить к появлению нежелательно большого объема служебных данных обработки для процессора общего назначения.

На фиг.2 изображена система 6 обработки данных, включающая в себя основной процессор 8, сопроцессор 10, кэш-память 12 и основную память 14. Основной процессор 8 включает в себя блок 16 регистров, хранящий значения регистров общего назначения, которые могут использоваться основным процессором 8. Основной процессор 8 может быть, например, одним из основных процессоров, разрабатываемых фирмой ARM Limited, Кембридж, Англия.

Основной процессор 8 подключен к кэш-памяти 12, которая служит для обеспечения высокоскоростного доступа к наиболее часто требующимся значениям данных. Вне кэш-памяти 12 предусмотрена менее скоростная, но более емкая основная память 14.

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

Более конкретно, сопроцессор 10 включает в себя память 18 сопроцессора, выравнивающий регистр 20, накапливающий регистр 22 и функциональный блок 24 управления и арифметических операций. Конкретные команды загрузки в сопроцессор можно использовать для загрузки шестнадцати тридцатидвухразрядных слов данных в память 18 сопроцессора. Каждое из этих шестнадцати слов данных содержит четыре восьмиразрядных значений элементов изображения и соответствует блоку размером 8х8 элементов изображения, который является текущим блоком 2, изображенным на фиг.1. Эти значения элементов изображения в пределах текущего блока 2 будут сравниваться в качестве блока - с использованием суммы абсолютных разностей - с эталонными блоками 4 элементов изображения, отбираемыми из множества различных положений в пределах эталонного изображения, для определения эталонного блока 4, который дает наименьшую сумму абсолютных разностей и поэтому соответствует наилучшему согласованию изображения. Локальное хранение часто используемых значений элементов изображения текущего блока 2 в памяти 18 сопроцессора представляет собой эффективное использование ресурсов обработки. Сразу же после загрузки текущего блока 2 в память 18 сопроцессора основной процессор 8 выполняет специальные команды загрузки в сопроцессор (команды USALD (ВЗсВСАРиНАК - команды выполнения загрузки с побайтным выравниванием восьми байтов из памяти, выполнения вычислений суммы абсолютных разностей (SAD (ВСАР)) и накопления в регистре накопления сопроцессора - CR_ACC (НАК_РС)), которые служат для загрузки либо двух, либо трех слов данных в сопроцессор 10, и обеспечивают вычисление значения суммы абсолютных разностей для операндов, представляющих собой восьмиразрядные значения элементов изображения, в пределах таких загружаемых слов данных. Команда USALD в потоке команд основного процессора 10 также проходит (либо напрямую, либо в форме одного или более сигналов управления) в сопроцессор 10, где она запускает логический функциональный блок 24 управления и арифметических операций, обеспечивая управление загрузкой требуемого количества слов данных либо из кэш-памяти 12, либо из основной памяти 14 через посредство основного процессора 8, а также последующее выполнение вычисления суммы абсолютных разностей с использованием упомянутых загруженных значений, а также значений их памяти 18 сопроцессора. Выравнивающий регистр 20 хранит значение выравнивания, которое заранее задается командой загрузки в регистр сопроцессора, выполняемой основным процессором 8. Логический функциональный блок 24 управления и арифметических операций реагирует на это значение выравнивания, осуществляя загрузку либо двух тридцатидвухразрядных слов данных, когда операнды выровнены с границами слов, либо трех тридцатидвухразрядных слов данных, когда такое выравнивание отсутствует. Сбоку от кэш-памяти 12 на фиг.2 изображены восемь желательных значений операндов элементов изображения, хранящихся в кэш-памяти и не выровненных с границами слов, вместе со значением смещения выравнивания из регистра CR_BYO (СМБ_РСО, это регистр сопроцессора, хранящий смещение в байтах, используемое для загрузки блока из эталонного кадра). В показанном примере три тридцатидвухразрядных слова данных нужно загрузить в сопроцессор 10 в ответ на значение адреса [Rn], хранящееся в одном из регистров, имеющихся в блоке 16 регистров, и указывающее на слово, совпадающее (выровненное) по адресу, как показано на чертеже. Когда осуществляется выборка трех тридцатидвухразрядных слов данных, логический функциональный блок 24 управления и арифметических операций осуществляет операцию мультиплексирования для выделения требуемых операндов из тех, которые имеются в пределах слов данных, в зависимости от указанного значения выравнивания. Значения операндов, извлекаемые из загружаемых слов данных, подвергаются вычислению суммы абсолютных разностей, которое образует часть вычисления, изображенного на фиг.1, с использованием стандартных арифметико-логических средств обработки, таких как блоки суммирования и вычитания. Следует по достоинству оценить тот факт, что в изображенном примере восьмибайтные операнды элементов изображения на самом деле представляют собой один ряд в рамках сравнения блоков, проводимого между текущим блоком 2 элементов изображения и эталонным блоком 4 элементов изображения, изображенными на фиг.1. Чтобы провести все вычисление, изображенное на фиг.1, потребуется поочередно выполнить восемь таких команд загрузки в сопроцессор. Сумма абсолютных разностей, вычисляемая по каждой из этих команд для сопроцессора, накапливается в накапливающем регистре 22. Следовательно, после выполнения всех восьми команд загрузки в сопроцессор, каждая из которых задает сумму абсолютных разностей для ряда, будет найдена сумма абсолютных разностей для блока, результат вычисления которой сохранится в накапливающем регистре 22. Это сохраненное знание можно затем возвратить в основной процессор 8, например, по командам основного процессора, предписывающим возврат значения регистра сопроцессора в один из регистров, имеющихся в блоке 16 регистров.

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

На фиг.3 представлена схема последовательности операций, условно иллюстрирующая один пример типа операций, которые может выполнять система, показанная на фиг.2. На этапе 26 шестнадцать слов, представляющих текущий блок 2 элементов изображения, загружаются из кэш-памяти 12 или основной памяти 14 в память 18 сопроцессора. На этапе 28 в регистр Rn, находящийся внутри основного процессора 8, загружается значение указателя, которое указывает начало эталонного блока 4 в памяти. На этапе 30 находящееся в выравнивающем регистре 20 сопроцессора 10 значение выравнивания загружается с использованием команды загрузки в регистр сопроцессора, выдаваемой основным процессором 8. Следует по достоинству оценить тот факт, что этапы 26, 28 и 30 обеспечивают установление среды обработки данных для выполнения команд загрузки в сопроцессор и вычисления суммы абсолютных разностей. Во многих ситуациях нужно осуществить это установление один раз, а потом остается лишь протестировать большое количество эталонных блоков 4 на соответствие конкретному текущему блоку 2. При этих обстоятельствах необходимость выдачи дополнительных служебных данных во время обработки, связанная с этапами 26, 28 и 30, относительно уменьшается.

Этап 32 представляет собой выполнение восьми команд USALD загрузки в сопроцессор, рассмотренных выше. Каждая из этих команд соответственно обеспечивает вычисление суммы абсолютных значений для некоторого ряда в пределах текущего блока 2 и эталонного блока 4, а также обновление накапливаемого значения в накапливающем регистре 22.

На этапе 34 можно осуществить выборку значения вычисленной суммы абсолютных разностей для всего эталонного блока 4 из накапливающего регистра 22 в основной процессор 8 по команде перемещения данных из регистра сопроцессора в регистр основного процессора. Это накопленное значение затем можно сравнить с предыдущими накопленными значениями или другими параметрами для идентификации наилучшего согласования изображения или для других целей.

На фиг.4 изображены три варианта команды USALD. В первом варианте не используется смещение, а посредством указателя, хранящегося в регистре Rn, просто указывается адрес, и при этом сама команда выполняется в зависимости от условных кодов, обозначаемых ниже символом {cond}. Во втором варианте используется указатель адреса, представленный в виде десятиразрядного значения смещения, которое можно либо прибавлять к начальному значению, либо вычитать из начального значения перед использованием этого значения или после такого использования, в зависимости от флага, обозначаемого ниже символом {!}. В третьем варианте опять используется значение смещения, которое применяется к значению указателя, находящемуся в регистре Rn, перед его использованием, причем значение указателя не изменяется.

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

1.1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ

В данном документе употребляются термины и определения, указанные ниже.

ТЕРМИНСМЫСЛ ТЕРМИНА
ASICИнтегральная схема прикладной ориентации (называемая также специализированной интегральной схемой), ИСПО (СИС)
BISTВстроенное самотестирование, ВстС
JTAGОбъединенная группа по автоматизации тестирования, ОГАТ

ОБЪЕМ ИЗЛОЖЕНИЯ

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

ВВЕДЕНИЕ

Сопроцессор модели Urchin (далее сокращенно именуемый UCP) представляет собой сопроцессор для процессора ARM9X6, предназначенный для ускорения выполнения операций вычисления суммы абсолютных разностей (далее сокращенно именуемых операциями SAD (ВСАР)). Операция SAD используется при реализации алгоритмов оценки движения в соответствии со стандартом MPEG при сравнении блока размером 8×8 из эталонного кадра с блоком размером 8×8 в текущем кадре. Этот алгоритм является частью приложения, обуславливающего кодирование видеоинформации в соответствии со стандартом MPEG4 (стандарт сжатия движущегося изображения и звука, предназначенный для передачи данных с низкой скоростью, например, по телефонным линиям).

1.2. СТРУКТУРА UCP

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

осуществлять передачу данных между UCP и памятью (с использованием команд загрузки в сопроцессор (далее сокращенно именуемых LDC) и команд хранения в сопроцессоре (далее сокращенно именуемых STC));

осуществлять передачу данных между регистрами UCP и процессора ARM (с использованием команд перемещения данных в сопроцессор (далее сокращенно именуемых MCR) и команд перемещения данных в процессор ARM (далее сокращенно именуемых MRC)).

Процессор ARM действует как блок генератора адреса и перекачивания данных для UCP.

UCP состоит из блока регистров и логического блока обеспечения канала данных и управления. Это показано на фиг.5, где изображена общая блок-схема UCP.

1.3. ИНТЕРФЕЙС СОПРОЦЕССОРА

Единственное соединение процессора ARM с UCP осуществляется через интерфейс сопроцессора. Все остальные системные соединения (такие, как AMBA или прерывания) поддерживаются через посредство процессора ARM.

1.4. КОНСТРУКТИВНЫЕ ОГРАНИЧЕНИЯ

С самого начала реализация UCP представляет собой целенаправленное решение, предназначавшееся для создания библиотеки с технологией 0,18um. Это позволит объединить UCP с процессором ARM926. UCP будет лишь сопроцессором в этой системе. Главным ограничением, накладываемым на конструкцию, являются жесткие требования временного масштаба, и на этом ограничении основаны все конструкторские решения.

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

1.4.1. КОЛИЧЕСТВО ЛОГИЧЕСКИХ ЭЛЕМЕНТОВ

Этот параграф изъят из данного описания, поскольку не имеет отношения к этой заявке на патент.

1.4.2. РАБОЧАЯ ЧАСТОТА

Этот параграф изъят из данного описания, поскольку не имеет отношения к этой заявке на патент.

1.4.3. ЭНЕРГОПОТРЕБЛЕНИЕ

Этот параграф изъят из данного описания, поскольку не имеет отношения к этой заявке на патент.

МОДЕЛЬ ПРОГРАММАТОРА

1.5. РЕГИСТРЫ

Сопроцессор UCP содержит два типа памяти для хранения данных:

регистры: они используются для обмена данными непосредственно между регистрами процессора ARM и сопроцессором; доступ в эти регистры можно получить посредством операций MCR и MRC;

буфер блока: это память с восемью строками по восемь байт (шестьдесят четыре бита), в которую можно лишь осуществлять загрузку или непосредственное сохранение из областей расширенной памяти (т.е. не из регистров процессора ARM). Доступ в буфер блока получают с помощью набора специальных команд для UCP (процессор ARM рассматривает соответствующие им операции как операции LDC и STC).

Ниже приведено краткое описание регистров, находящихся в UCP.

Название регистраЗначение возвратаНомер регистраОписание
CR_ACC

(НАК_РС)
07Хранит накопленные результаты операций ВСАР (SA)
CR_IDX

(ИНД_РС)
04Хранит индекс строки для буфера блока
CR_BYO

(СМБ_РСО)
02Хранит смещение в байтах, используемое для загрузки блока из эталонного кадра
CR_CFG

(КОНФ_РС)
01Хранит конфигурацию UCP
CR_ID

(ИД_РС)
*0Это регистр идентификатора (ИД) UCP (* значение возврата равно значению ИД)

Зарезервированные или неопределенные разряды регистров должны быть замаскированы при операциях считывания из регистров и иметь нулевые значения при операциях записи в регистры. Исключениями из этого правила являются регистры CR_ACC и CR_BYO. Эти регистры всегда будут возвращаться к нулевому значению при операциях считывания из неиспользуемых разрядов, а операции записи в эти регистры можно осуществлять, задавая любое значение для неиспользуемых двоичных разрядов (УСП будет игнорировать эти значения).

1.5.1. CR_ACC

Это 14-разрядный регистр считывания/записи. Его содержимое можно обновлять прямым путем - с помощью операций MCR, а также косвенным путем - с помощью операций SAD.

1.5.2. CR_IDX

Это трехразрядный регистр считывания/записи. Его содержимое можно обновлять прямым путем - с помощью операций MCR, а также косвенным путем - с помощью операций загрузки/считывания буфера блока с осуществлением приращения индекса строки.

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

Когда значение в регистре при приращении превышает значение 7, оно устанавливается в 0.

1.5.3. CR_BYO

Это двухразрядный регистр считывания/записи. Его содержимое можно обновлять с помощью операций MCR.

UCP поддерживает доступы к эталонному кадру из адресов с побайтным выравниванием. В этом регистре хранятся младшие два разряда шины адреса для таких загрузок.

Отметим, что сопроцессор не имеет возможности "непосредственно рассмотреть" значение адреса, используемое процессором ARM для осуществления доступов в память, и именно по этой причине программное обеспечение должно программно вводить смещение в байтах в регистр CR_BYO отдельно. Процессор ARM также не осуществляет непосредственную поддержку никаких пословно выровненных загрузок для сопроцессора, так что UCP приходится осуществлять три загрузки слов, а потом выделять из них восьмибайтные, если это необходимо.

1.5.4. CR_CFG

Это одноразрядный регистр считывания/записи. Его содержимое можно обновлять с помощью операций MCR.

Разряд IDX_INC (ПРИР_ИНД) обеспечивает контроль, чтобы выявить, получает ли регистр CR_IND (ИНД_РС) приращение, после операции загрузки/запоминания в буфер блока или операции SAD. Если бит установлен в "0", приращения нет. После его задания разряд IDX_INC получает приращение по завершении операции с буфером блока или операции SAD.

1.5.5. CR_ID

Этот четырнадцатиразрядный регистр только для считывания содержит код архитектуры UCP и версии.

31141387430
ЗарезервированныеАрхитектура0×FОбновление

Разряды [3:0] содержат номер версии для реализации.

Разряды [7:4] содержат значение 0xF для ARM-ориентированных реализаций.

Разряды [13:8] содержат версию архитектуры UCP, причем код 0х00 соответствует Версии 1.

1.6. НАБОР КОМАНД

Синтаксис ассемблера сопроцессора UCP использует тот же формат, что и синтаксис ассемблера процессора ARM.

Символ {} обозначает необязательное поле.

Символ поля cond обозначает код состояния команды процессора ARM.

dest обозначает код назначения UCP.

Rn обозначает регистр процессора ARM.

CRn обозначает регистр UCP.

! указывает, что вычисленный адрес должен быть записан в базовый регистр

Символ UCP обозначает номер сопроцессора семейства UCP.

10_bit_offset (смещение_10_разрядов) - это выражение, оценивающее смещение на десятиразрядное слово. Это смещение добавляют в базовый регистр для образования адреса загрузки. Отметим, что такое смещение должно быть кратным числу 4.

6_bit_offset (смещение_6_разрядов) - это выражение, оценивающее смещение на шестиразрядное слово. Это смещение добавляют в базовый регистр для образования адреса загрузки. Отметим, что такое смещение должно быть кратным числу 4.

Примечание. Допускается пост-индексация с обратной записью или без нее.

На нижеследующих страницах приводится описание набора команд UCP.

1.6.1. СВОДКА НАБОРА КОМАНД

Команда UCPОписание
UMCR

(ПДРПвРС)
Перемещение данных из регистра процессора ARM в регистр сопроцессора (UCP)
UMRC

(ПДРСвРП)
Перемещение данных из регистра сопроцессора (UCP) в регистр процессора ARM
UBBLD

(ЗДСиПвББ)
Загрузка двух слов из памяти в буфер блока
UBBST

(СДСиББвП)
Сохранение двух слов из буфера блока в памяти
USALD

(ВЗсВСАРиНАК)
Выполнение загрузки с побайтным выравниванием восьми байтов из памяти, выполнение SAD и накопление в CR_ACC

1.6.2. КОДИРОВАНИЕ КОМАНД

Команда UCPКод в сопроцессоре семейства UCP
UMCRMCR
UMRCMRC
UBBLDLDC (множественная загрузка)
UBBSTSTC (множественная загрузка)
USALDLDC (множественная загрузка)

cond: код состояния.

UCP: номер сопроцессора семейства UCP.

Rn: регистр процессора ARM, являющийся источником данных.

Rd: регистра процессора ARM, являющийся местом назначения информации.

CRd: регистр UCP, являющийся местом назначения информации.

8_bit_offset: восьмиразрядное число (0-256), используемое для указания смещения адреса.

P: бит индексации добавления смещения: =0 при добавлении смещения после передачи; =1 при добавлении смещения перед передачей.

U: бит направления отсчета: =0 при вычитании смещения из данных из базового регистра; =1 при прибавлении смещения к содержимому базового регистра.

W: бит обратной записи: =0 при отсутствии обратной записи в базовый регистр; =1 при проведении обратной записи в базовый регистр.

Примечание. Действительными для UCP являются только вышеупомянутые коды операций. Любые изменения этих кодов операцию (сохраняющие номер UCP в битах с 11 по 8) приведут к непредсказуемым последствиям.

1.6.3. UMCR

Команду UMCR используют для записи в регистры UCP. UMCR обеспечивает перемещение данных из регистра Rn процессора ARM в регистр CRd UCP.

ДЕЙСТВИЕ

1. Перемещение данных из регистра Rn процессора ARM в регистр CRd UCP.

МНЕМОНИКА

UMCR CRd, Rn, {cond}

ПРИМЕРЫ

UMCR CR_ID, R0; загрузка содержимого R0 в CR_ID.

1.6.4. UMRC

Команду UMRC используют для считывания из регистров UCP. UMRC обеспечивает перемещение данных из регистра CRn UCP в регистр Rd процессора ARM.

ДЕЙСТВИЕ

1. Перемещение данных из регистра CRn UCP в регистр Rd процессора ARM.

МНЕМОНИКА

UMRC Rd, CRn, {cond}

ПРИМЕРЫ

UMRC R6, CR_ID; загрузка содержимого регистра CR_ID в R6.

1.6.5. UBBLD

Команду UBBLD используют для загрузки данных в буфер блока.

ДЕЙСТВИЯ

1. Загрузка слова в буфер блока (CR_IDX, 0).

2. Загрузка слова в буфер блока (CR_IDX, 1).

3. Проверка условия (CR_IDX==1).

4. Приращение ++CR_IDX.

МНЕМОНИКА

UBBLD [Rn], #0, {cond}

UBBLD [Rn, #±10_bit_offset]{!), {cond}

UBBLD [Rn, #±10_bit_offset]{!), {cond}

ПРИМЕРЫ

UBBLD [R0], #320!; загрузка двух слов в буфер блока из памяти (R0) и последующее приращение содержимого (R0) для перехода к следующей строке.

1.6.6. UBBST

Команду UBBST используют для сохранения данных из буфера блока. Эта операция предназначена только для целей идентификации и не должна использоваться в наборе прикладных команд.

ДЕЙСТВИЯ

1. Сохранение слова в буфере блока (CR_IDX, 0).

2. Сохранение слова в буфере блока (CR_IDX, 1).

3. Проверка условия (CR_IDX==1).

4. Приращение ++CR_IDX.

МНЕМОНИКА

UBBST [Rn], #0, {cond}

UBBST [Rn, #±10_bit_offset]{!), {cond}

UBBST [Rn, #±10_bit_offset]{!), {cond}

ПРИМЕРЫ

UBBST [R3], #8!; загрузка двух слов из буфера блока в память, начиная с памяти (R3).

Примечание. UCP не поддерживает каскадное выполнение команд UBBST, когда IDX_INC==1. Каждая команда UBBST должна отделяться от другой, по меньшей мере, одной командой перехода в нерабочее состояние (NOP (ПНС)). Каскадное выполнение команд UBBST приведет к непредсказуемым последствиям.

1.6.7. USALD

Команду USALD используют для загрузки данных из эталонного блока и осуществления операции SAD с накоплением результата.

ДЕЙСТВИЯ

1. Проверка условия (CR_IDX==0).

2. Загрузка слова в шаблон первого слова (firstword_tmp).

3. Иначе

4. Загрузка слова в шаблон 1 мультиплексирования (mux1_tmp); загрузка слова в шаблон 2 мультиплексирования (mux2_tmp); на основании содержимого регистра CR_BYO, объединение шаблона 1 мультиплексирования и шаблона 2 мультиплексирования с образованием не выровненной пословно загрузки в шаблоне первого слова.

5. Для каждого байта в шаблоне первого слова и каждого соответствующего байта - при соблюдении условия (CR_IDX==0) в буфере блока - осуществление операции SAD. Накопление результатов в регистре CR_ACC.

6. Проверка условия (CR_IDX==0)).

7. Загрузка слова в шаблон второго слова (secondword_tmp).

8. Иначе

9. Загрузка слова в шаблон 3 мультиплексирования (mux3_tmp); на основании содержимого регистра CR_BYO, объединение шаблона 2 мультиплексирования и шаблона 3 мультиплексирования с образованием не выровненной пословно загрузки в шаблоне второго слова.

10. Для каждого байта в шаблоне второго слова и каждого соответствующего байта - при соблюдении условия (CR_IDX==0) в буфере блока - осуществление операции SAD. Накопление результатов в регистре CR_ACC.

11. Проверка условия (CR_IDX==1).

12. Приращение ++CR_IDX.

ПРИМЕЧАНИЕ. Арифметические действия проводятся без учета знака. Не введены средства обнаружения и отработки переполнения CR_ACC. Емкость CR_ACC выбрана с таким расчетом, чтобы при сравнении блоков размером 8×8 не могло произойти переполнение.

МНЕМОНИКА

USALD [Rn], #0, {cond}

USALD [Rn, #±10_bit_offset]{!), {cond}

USALD [Rn, #±10_bit_offset]{!), {cond}

ПРИМЕРЫ

USALD [R0], #320!; обработка двух слов из буфера памяти (R0), осуществление операции SAD и последующее приращение содержимого (R0) для перехода к следующей строке.

1.7. ВРЕМЕННЫЕ ПАРАМЕТРЫ ЦИКЛОВ КОМАНД

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

КомандаВремя выполнения в циклах
UMCR1
UMRC1
UBBLD2
UBBST2
USALDN циклов
Примечание. N=2 цикла, если содержимое СМБ_РС равно нулю, в противном случае N=3 цикла.

1.8. РИСКИ ДАННЫХ

Под рисками данных понимаются обстоятельства, в которых существующая между командами зависимость данных может привести к непредсказуемым последствиям.

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

Таблица 1
КомандаСледующая команда
UMCR1) Не команда UMRC, которая использует CRd в течение 2 циклов

2) Если CRd - это CR_IDX, то в течение двух циклов - не команда UBBST
UMRCЛюбая
UBBLD (когда разряд INC_IDX очищен)Не команда UBBST в течение 2 циклов
UBBLD (когда разряд INC_IDX задан)1) Не команда UBBST в течение 2 циклов

2) Не команда UMRC для CR_IDX в течение 2 циклов
UBBST (когда разряд INC_IDX очищен)Любая
UBBST (когда разряд INC_IDX задан)1) Не команда UBBST в течение 2 циклов

2) Не команда UMRC для CR_IDX в течение 2 циклов
USALD (когда разряд INC_IDX очищен)1) Не команда UMCR для CR_ACC в течение 1 цикла

2) Не команда UMRC для CR_ACC в течение 2 циклов
USALD (когда разряд INC_IDX задан)1) Не команда UMCR для CR_ACC в течение 1 цикла

2) Не команда UMRC для CR_ACC в течение 2 циклов

3) Не команда UBBST в течение 2 циклов

4) Не команда UMRC для CR_IND в течение 2 циклов

ФУНКЦИОНАЛЬНОЕ ОПИСАНИЕ

1.9. ОБЗОР СОПРОЦЕССОРА

Сопроцессор тесно связан с процессором ARM9X6. Каждая команда, которая предназначена для UCP, обрабатывается немедленно и так, как в случае, если бы ядро процессора само выполняло команду. UCP не является сопроцессором, работающим по принципу "сделал и забыл", команды для UCP выполняются немедленно, а получаемый результат доступен для следующей команды (на которую накладываются некоторые условия, см. параграф 1.8 выше). Это означает, что процессору ARM не нужно опрашивать состояние сопроцессора, а сопроцессору не требуется прерывание процессора ARM.

1.10. ФУНКЦИОНАЛЬНАЯ СХЕМА СОЕДИНЕНИЙ

Соединения UCP изображены на фиг.6.

1.11. БЛОК-СХЕМА

Основные блоки UCP изображены на фиг.7.

Логический блок управления считывает каждую команду, которая поступает из памяти и содержит конвейерный повторитель, так что UCP и процессор ARM синхронизированы. Конвейер сопроцессора состоит из следующих каскадов: выборки, декодирования, выполнения, запоминания, записи и накопления результатов SAD.

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

Канал данных содержит логический блок для операции USALD, включая манипулирование байтами, SAD и накопление результата. Канал данных также обеспечивает обработку выбора считывания из регистров и направления результатов с целью проведения внутренних операций - UMRC и UBBST.

СИСТЕМНЫЕ СОЕДИНЕНИЯ

UCP предназначен для подсоединения непосредственно к процессорам ARM9X6. В этой конфигурации сигналы вывода - CHSDE_С и CHSEX_C не используются. Для процессоров ARM966 и ARM946 такой сигнал вывода, как CPABORT, должен быть сигналом низкого уровня. В этой конфигурации UCP будет нуждаться в специальном коде обработки запрета выполнения для возврата из состояния запрета выполнения во время операции загрузки.

1.12. ПОДСОЕДИНЕНИЕ К ПРОЦЕССОРУ ARM920T

Интерфейс сопроцессора в конфигурации с процессором ARM920 функционально идентичен интерфейсу сопроцессора в конфигурации с процессором ARM9Х6. Однако по параметрам синхронизации сигналов этот интерфейс имеет значительные отличия. Чтобы использовать UCP с процессором ARM920, нужен отдельный внешний блок восстановления синхронизации. Подробные требования к этому блоку восстановления синхронизации выходят за рамки объема данной заявки, но ниже приводится краткий обзор конфигурации в этом случае.

Сигнал синхронизации, выдаваемый процессором ARM920, инвертируется перед пропусканием его в качестве CPCLK для UCP. Сигналы вывода, CHSDE и CHSEX не используются, вместо этого в прозрачную схему-защелку, которая срабатывает по синхроимпульсу процессора ARM920, пропускаются такие сигналы вывода, как CHSDE_С и CHSEX_C.

Сигнал ввода - CPABORT - получают из интерфейса ЕТМ.

1.13. ПОДСОЕДИНЕНИЕ ДОПОЛНИТЕЛЬНЫХ СОПРОЦЕССОРОВ

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

Если к интерфейсу приходится подсоединять несколько сопроцессоров, то сигналы установления соединений путем квитирования можно объединить с помощью логической операции "И" для первых разрядов и логической операции "ИЛИ" для нулевых разрядов. В случае двух сопроцессоров, которые имеют сигналы установления соединений путем квитирования, обозначаемые как CHSDE1, CHSEX1 и CHSDE2, CHSEX2, соответственно, будем иметь:

CHSDE[1]<=CHSDE1[1] AND CHSDE2[1]

CHSDE[0]<=CHSDE1[0] OR CHSDE2[0] CHSEX[1]<=CHSEX1[1] AND CHSEX2[1]

CHSEX[0]<=CHSDE1[0] OR CHSEX2[0]

СИНХРОНИЗАЦИЯ СИГНАЛОВ ПЕРЕМЕННОГО ТОКА

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

ПРИЛОЖЕНИЕ

1.14. ОПИСАНИЕ СИГНАЛОВ

В нижеследующей таблице описаны сигналы для сопряжения UCP с процессорами семейства ARM9 через интерфейс, соответствующий ARM9TDMI - протоколу взаимодействия с временным уплотнением для процессоров ARM. Следует отметить, что излагаемый ниже материал может изменяться по мере расширения возможностей реализации. Окончательная версия может отличаться от тех, которые приведены в нижеследующем списке.

1.14.1. СИГНАЛЫ ИНТЕРФЕЙСА ДЛЯ ВЫБОРКИ КОМАНД UCP

НазваниеНаправлениеОписание
nCPMREQ

(оЗПСП)
ВводОтсутствие запроса в память сопроцессора. Когда уровень переднего фронта сигнала CPCLK является высоким, а у сигнала CPCLKEN - высоким, команда по сигналу CPINSTR должна попадать в декодирующий каскад конвейерного повторителя. Вторая команда, ранее находившаяся в каскаде декодирования конвейерного повторителя, должна переходить в стадию выполнения.
CPINSTR[31:0]

(ДКОМСП[31:0])
ВводДанные команды сопроцессора. Этот сигнал проходит по шине данных команд сопроцессора, по которой команды передаются в конвейерный повторитель сопроцессора.
CPTBIT

(ББПСП)
ВводБит бегунка прокрутки сопроцессора. Если это сигнал высокого уровня, то интерфейс сопроцессора находится в состоянии прокрутки.

1.14.2. ШИНЫ ДАННЫХ UCP

НазваниеНаправлениеОписание
CPDOUT [31:0]

(ВЫВДИП [31:0])
ВводВывод данных из процессора ARM. Это шина данных сопроцессора для передачи данных команд MCR и LDC в сопроцессор.
CPDIN [31:0]

(ВВОДВП [31:0])
ВыводВвод данных в процессор ARM. Это шина данных сопроцессора для передачи данных команд MRC и STC в сопроцессор.

1.14.3. СИГНАЛЫ ИНТЕРФЕЙСА СОПРОЦЕССОРА ТИПА UCP

НазваниеНаправлениеОписание
CHSDE [1:0]

(ДКВСП [1:0])
ВыводДекодирование квитирования сопроцессора. Сигналы квитирования, выдаваемые из декодирующего каскада конвейерного повторителя сопроцессора.
CHSDE_C [1:0]

(ДКВСП_Ц [1:0])
ВыводКомбинаторная версия сигнала CHSDE, обеспечивающая выход из цикла до выдачи сигнала CHSDE (но действительная лишь до конца цикла). Эта версия предназначена для использования только с упаковщиком восстановления синхронизации процессора ARM920.
CHSEX [1:0]

(ВЫКВСП [1:0])
ВыводВыполнение квитирования сопроцессора. Сигналы квитирования, выдаваемые из исполнительного каскада конвейерного повторителя сопроцессора.
CHSEX_С [1:0]

(ВЫКВСП_Ц 1:0])
ВыводКомбинаторная версия сигнала CHSEX, обеспечивающая выход из цикла до выдачи сигнала CHSEX (но действительная лишь до конца цикла). Эта версия предназначена для использования только с упаковщиком восстановления синхронизации процессора ARM920.
CPLATECANCEL

(ПОИСКЛКСП)
ВводПозднее исключение команды для сопроцессора. Когда выполняется некоторая команда для сопроцессора, а этот сигнал имеет высокий уровень во время первого цикла запоминания, упомянутая команда для сопроцессора должна быть исключена без обновления параметра состояния сопроцессора.
CPPASS

(ПРОХКСП)
ВводПрохождение команды для сопроцессора. Этот сигнал указывает, что на исполнительном каскаде конвейера имеется команда для сопроцессора и что она должна быть выполнена.
CPABORT

(ОТРДСП)
ВводОтбрасывание рабочих данных сопроцессора. Этот сигнал используется сопроцессором для возврата из состояния преждевременного прекращения работы во время загрузок данных.

1.14.4. Смешанные сигналы UCP

НазваниеНаправлениеОписание
nRESET

(оСБРОС)
ВводОтсутствие сброса.

Это сигнал ввода, зависящий от уровня, который используется для сброса сопроцессора. Когда уровень сигнала nRESET является низким, происходит асинхронный сброс сопроцессора.
CPCLK

(СССП)
ВводСинхронизирующий сигнал сопроцессора. Этот синхронизирующий сигнал синхронизирует все доступы (как по поводу данных, так и по поводу команд) в память сопроцессора и внешние операции.
CPCLKEN

(РАЗРСССП)
ВводРазрешение синхронизирующего сигнала сопроцессора. Этим сигналом квалифицируется сигнал CPCLK сопроцессора.
BIGEND

(ФППБ)
ВводСтатический конфигурирующий сигнал. Высокий уровень этого сигнала используется для поддержки систем, работающих в формате, предусматривающем обратный порядок байтов, а низкий - для поддержки формата, предусматривающего прямой порядок байтов. Обычно подается из процессора (т.е. это сигнал BIGENDOUT из процессора ARM920).
SCANCLK

(СССКАН)
ВводСинхронизирующий сигнал, вводимый для проведения тестирования сканированием.
SCANMODE

(РЕЖИМСКАН)
ВводУправляющий сигнал режима тестирования, вводимый для проведения тестирования сканированием.

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

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

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

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

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

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

7. Устройство для обработки данных по п.6, в котором упомянутая сумма абсолютных разностей накапливается в накапливающем регистре упомянутого сопроцессора.

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

9. Устройство для обработки данных по п.4, в котором упомянутая команда загрузки в сопроцессор включает в себя значение смещения, добавляемое к упомянутому значению адреса при исполнении команды.

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

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

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



 

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

Изобретение относится к области вычислительной техники. .

Изобретение относится к вычислительной технике. .

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

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

Изобретение относится к устройствам цифровой обработки сигнала. .

Изобретение относится к системам обработки данных. .

Изобретение относится к области вычислительной техники. .

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

Изобретение относится к системам обработки данных. .

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

Изобретение относится к системам обработки данных. .

Изобретение относится к доставке контента, в частности к его загрузке

Изобретение относится к планированию доступа к устройству хранения и более конкретно к предотвращению работы программы, которая выполняется, от монополизации доступа к запоминающему устройству

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

Изобретение относится к области систем обработки данных, имеющих множество аппаратных режимов работы, а также к управлению доступом к памяти в зависимости от текущего аппаратного режима. Техническим результатом является обеспечение возможности осуществления процессором доступа к данным памяти даже в том случае, если эта возможность заблокирована в текущем режиме работы процессора. Устройство для обработки данных (2) включает в себя процессор (8), память (6) и схему (12) управления памятью. Процессор (8) работает во множестве аппаратных режимов, включающих в себя привилегированный режим и пользовательский режим. При работе в привилегированном режиме схема (12) управления памятью блокирует выборку команд процессором (8) из адресных зон (34, 38, 42) памяти в памяти (6), в которые можно производить запись в пользовательском режиме, если флаг безопасности в регистре (46) установлен таким образом, что указывает на то, что этот механизм блокировки действует. 4 н. и 9 з.п. ф-лы, 4 ил.

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

Изобретение относится к области функциональных возможностей команд процессора компьютерной системы. Техническим результатом является повышение эффективности выполнения неделимых операций. В заявке описана команда разделенной загрузки/сохранения, при выполнении которой ЦП осуществляется доступ к операндам из двух разделенных ячеек памяти, и устанавливаются индикаторы кода условия, указывающие, был ли осуществлен неделимый доступ к двум операндам посредством блочно-параллельного заблокированного выбираемого обращения к операндам без промежуточных операций обращения к запоминающему устройству из других ЦП. При использовании упомянутой команды в форме разделенной загрузки пары доступом является загрузка, а разделенные данные хранятся в общих регистрах. 3 н. и 13 з.п. ф-лы, 19 ил.

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

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

Изобретение относится к блокированию исходных регистров в устройстве обработки данных
Наверх